amis.define('node_modules/pdfjs-dist/build/pdf.worker.min.mjs', function(require, exports, module, define) { "use strict"; var _b; var _c, _Util_A, _Util_e, _DeviceCmykCS_instances, _DeviceCmykCS_t, _CalGrayCS_instances, _CalGrayCS_t, _LabCS_instances, _LabCS_f, _LabCS_p, _LabCS_t, _FlateStream_instances, _FlateStream_m, _Parser_instances, _Parser_w, _FileSpec_S, _StructTreeRoot_instances, _d, _StructTreeRoot_U, _StructTreeRoot_L, _StructTreeRoot_J, _StructTreeRoot_H, _Catalog_instances, _Catalog_Y, _Catalog_v, _XRef_K, _Page_instances, _Page_T, _PDFDocument_instances, _PDFDocument_q, _MessageHandler_instances, _MessageHandler_P, _MessageHandler_O, _MessageHandler_W; Object.defineProperty(exports, "__esModule", { value: true }); exports.WorkerMessageHandler = void 0; var tslib_1 = require("435f3f4"); /** * @licstart The following is the entire license notice for the * JavaScript code in this page * * Copyright 2023 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 */ var e = { d: function (t, i) { for (var a in i) e.o(i, a) && !e.o(t, a) && Object.defineProperty(t, a, { enumerable: !0, get: i[a] }); }, o: function (e, t) { return Object.prototype.hasOwnProperty.call(e, t); } }, __webpack_exports__ = globalThis.pdfjsWorker = {}; e.d(__webpack_exports__, { WorkerMessageHandler: function () { return WorkerMessageHandler; } }); var t = !("object" != "undefined" || process + "" != "[object process]" || process.versions.nw || process.versions.electron && process.type && "browser" !== process.type), i = [1, 0, 0, 1, 0, 0], a = [.001, 0, 0, .001, 0, 0], s = 1.35, r = .35, n = .25925925925925924, o = 1, g = 2, c = 4, h = 8, l = 16, C = 64, Q = 256, E = "pdfjs_internal_editor_", u = 3, d = 9, f = 13, p = 15, m = { PRINT: 4, MODIFY_CONTENTS: 8, COPY: 16, MODIFY_ANNOTATIONS: 32, FILL_INTERACTIVE_FORMS: 256, COPY_FOR_ACCESSIBILITY: 512, ASSEMBLE: 1024, PRINT_HIGH_QUALITY: 2048 }, y = 0, w = 4, b = 1, D = 2, F = 3, S = 1, k = 2, R = 3, N = 4, G = 5, x = 6, M = 7, U = 8, L = 9, J = 10, H = 11, Y = 12, v = 13, K = 14, T = 15, q = 16, O = 17, W = 20, X = "Group", j = "R", Z = 1, V = 2, z = 4, _ = 16, $ = 32, AA = 128, eA = 512, tA = 1, iA = 2, aA = 4096, sA = 8192, rA = 32768, nA = 65536, oA = 131072, gA = 1048576, IA = 2097152, cA = 8388608, hA = 16777216, lA = 1, CA = 2, BA = 3, QA = 4, EA = 5, uA = { 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" }, dA = { WC: "WillClose", WS: "WillSave", DS: "DidSave", WP: "WillPrint", DP: "DidPrint" }, fA = { O: "PageOpen", C: "PageClose" }, pA = { ERRORS: 0, WARNINGS: 1, INFOS: 5 }, mA = { NONE: 0, BINARY: 1 }, yA = 1, wA = 2, bA = 3, DA = 4, FA = 5, SA = 6, kA = 7, RA = 8, NA = 9, GA = 10, xA = 11, MA = 12, UA = 13, LA = 14, JA = 15, HA = 16, YA = 17, vA = 18, KA = 19, TA = 20, qA = 21, OA = 22, PA = 23, WA = 24, XA = 25, jA = 26, ZA = 27, VA = 28, zA = 29, _A = 30, $A = 31, Ae = 32, ee = 33, te = 34, ie = 35, ae = 36, se = 37, re = 38, ne = 39, oe = 40, ge = 41, Ie = 42, ce = 43, he = 44, le = 45, Ce = 46, Be = 47, Qe = 48, Ee = 49, ue = 50, de = 51, fe = 52, pe = 53, me = 54, ye = 55, we = 56, be = 57, De = 58, Fe = 59, Se = 60, ke = 61, Re = 62, Ne = 63, Ge = 64, xe = 65, Me = 66, Ue = 67, Le = 68, Je = 69, He = 70, Ye = 71, ve = 72, Ke = 73, Te = 74, qe = 75, Oe = 76, Pe = 77, We = 80, Xe = 81, je = 83, Ze = 84, Ve = 85, ze = 86, _e = 87, $e = 88, At = 89, et = 90, tt = 91, it = 1, at = 2; var st = pA.WARNINGS; function getVerbosityLevel() { return st; } function info(e) { st >= pA.INFOS && console.log("Info: ".concat(e)); } function warn(e) { st >= pA.WARNINGS && console.log("Warning: ".concat(e)); } function unreachable(e) { throw new Error(e); } function assert(e, t) { e || unreachable(t); } function createValidAbsoluteUrl(e, t, i) { if (t === void 0) { t = null; } if (i === void 0) { i = null; } if (!e) return null; try { if (i && "string" == typeof e) { if (i.addDefaultProtocol && e.startsWith("www.")) { var t_1 = e.match(/\./g); (t_1 === null || t_1 === void 0 ? void 0 : t_1.length) >= 2 && (e = "http://".concat(e)); } if (i.tryConvertEncoding) try { e = stringToUTF8String(e); } catch (_b) { } } var a_1 = t ? new URL(e, t) : new URL(e); if (function _isValidProtocol(e) { switch (e === null || e === void 0 ? void 0 : e.protocol) { case "http:": case "https:": case "ftp:": case "mailto:": case "tel:": return !0; default: return !1; } }(a_1)) return a_1; } catch (_f) { } return null; } function shadow(e, t, i, a) { if (a === void 0) { a = !1; } Object.defineProperty(e, t, { value: i, enumerable: !a, configurable: !0, writable: !1 }); return i; } var rt = function BaseExceptionClosure() { function BaseException(e, t) { this.constructor === BaseException && unreachable("Cannot initialize BaseException."); this.message = e; this.name = t; } BaseException.prototype = new Error; BaseException.constructor = BaseException; return BaseException; }(); var PasswordException = /** @class */ (function (_super) { tslib_1.__extends(PasswordException, _super); function PasswordException(e, t) { var _this = _super.call(this, e, "PasswordException") || this; _this.code = t; return _this; } return PasswordException; }(rt)); var UnknownErrorException = /** @class */ (function (_super) { tslib_1.__extends(UnknownErrorException, _super); function UnknownErrorException(e, t) { var _this = _super.call(this, e, "UnknownErrorException") || this; _this.details = t; return _this; } return UnknownErrorException; }(rt)); var InvalidPDFException = /** @class */ (function (_super) { tslib_1.__extends(InvalidPDFException, _super); function InvalidPDFException(e) { return _super.call(this, e, "InvalidPDFException") || this; } return InvalidPDFException; }(rt)); var MissingPDFException = /** @class */ (function (_super) { tslib_1.__extends(MissingPDFException, _super); function MissingPDFException(e) { return _super.call(this, e, "MissingPDFException") || this; } return MissingPDFException; }(rt)); var UnexpectedResponseException = /** @class */ (function (_super) { tslib_1.__extends(UnexpectedResponseException, _super); function UnexpectedResponseException(e, t) { var _this = _super.call(this, e, "UnexpectedResponseException") || this; _this.status = t; return _this; } return UnexpectedResponseException; }(rt)); var FormatError = /** @class */ (function (_super) { tslib_1.__extends(FormatError, _super); function FormatError(e) { return _super.call(this, e, "FormatError") || this; } return FormatError; }(rt)); var AbortException = /** @class */ (function (_super) { tslib_1.__extends(AbortException, _super); function AbortException(e) { return _super.call(this, e, "AbortException") || this; } return AbortException; }(rt)); function bytesToString(e) { "object" == typeof e && void 0 !== (e === null || e === void 0 ? void 0 : e.length) || unreachable("Invalid argument for bytesToString"); var t = e.length, i = 8192; if (t < i) return String.fromCharCode.apply(null, e); var a = []; for (var s_1 = 0; s_1 < t; s_1 += i) { var r_1 = Math.min(s_1 + i, t), n_1 = e.subarray(s_1, r_1); a.push(String.fromCharCode.apply(null, n_1)); } return a.join(""); } function stringToBytes(e) { "string" != typeof e && unreachable("Invalid argument for stringToBytes"); var t = e.length, i = new Uint8Array(t); for (var a_2 = 0; a_2 < t; ++a_2) i[a_2] = 255 & e.charCodeAt(a_2); return i; } function string32(e) { return String.fromCharCode(e >> 24 & 255, e >> 16 & 255, e >> 8 & 255, 255 & e); } function objectSize(e) { return Object.keys(e).length; } var FeatureTest = /** @class */ (function () { function FeatureTest() { } Object.defineProperty(FeatureTest, "isLittleEndian", { get: function () { return shadow(this, "isLittleEndian", function isLittleEndian() { var e = new Uint8Array(4); e[0] = 1; return 1 === new Uint32Array(e.buffer, 0, 1)[0]; }()); }, enumerable: false, configurable: true }); Object.defineProperty(FeatureTest, "isEvalSupported", { get: function () { return shadow(this, "isEvalSupported", function isEvalSupported() { try { new Function(""); return !0; } catch (_b) { return !1; } }()); }, enumerable: false, configurable: true }); Object.defineProperty(FeatureTest, "isOffscreenCanvasSupported", { get: function () { return shadow(this, "isOffscreenCanvasSupported", "undefined" != typeof OffscreenCanvas); }, enumerable: false, configurable: true }); Object.defineProperty(FeatureTest, "platform", { get: function () { return "undefined" != typeof navigator && "string" == typeof (navigator === null || navigator === void 0 ? void 0 : navigator.platform) ? shadow(this, "platform", { isMac: navigator.platform.includes("Mac") }) : shadow(this, "platform", { isMac: !1 }); }, enumerable: false, configurable: true }); Object.defineProperty(FeatureTest, "isCSSRoundSupported", { get: function () { var _b, _f; return shadow(this, "isCSSRoundSupported", (_f = (_b = globalThis.CSS) === null || _b === void 0 ? void 0 : _b.supports) === null || _f === void 0 ? void 0 : _f.call(_b, "width: round(1.5px, 1px)")); }, enumerable: false, configurable: true }); return FeatureTest; }()); var nt = Array.from(Array(256).keys(), (function (e) { return e.toString(16).padStart(2, "0"); })); var Util = /** @class */ (function () { function Util() { } Util.makeHexColor = function (e, t, i) { return "#".concat(nt[e]).concat(nt[t]).concat(nt[i]); }; Util.scaleMinMax = function (e, t) { var i; if (e[0]) { if (e[0] < 0) { i = t[0]; t[0] = t[2]; t[2] = i; } t[0] *= e[0]; t[2] *= e[0]; if (e[3] < 0) { i = t[1]; t[1] = t[3]; t[3] = i; } t[1] *= e[3]; t[3] *= e[3]; } else { i = t[0]; t[0] = t[1]; t[1] = i; i = t[2]; t[2] = t[3]; t[3] = i; if (e[1] < 0) { i = t[1]; t[1] = t[3]; t[3] = i; } t[1] *= e[1]; t[3] *= e[1]; if (e[2] < 0) { i = t[0]; t[0] = t[2]; t[2] = i; } t[0] *= e[2]; t[2] *= e[2]; } t[0] += e[4]; t[1] += e[5]; t[2] += e[4]; t[3] += e[5]; }; Util.transform = function (e, t) { return [e[0] * t[0] + e[2] * t[1], e[1] * t[0] + e[3] * t[1], e[0] * t[2] + e[2] * t[3], e[1] * t[2] + e[3] * t[3], e[0] * t[4] + e[2] * t[5] + e[4], e[1] * t[4] + e[3] * t[5] + e[5]]; }; Util.applyTransform = function (e, t) { return [e[0] * t[0] + e[1] * t[2] + t[4], e[0] * t[1] + e[1] * t[3] + t[5]]; }; Util.applyInverseTransform = function (e, t) { var i = t[0] * t[3] - t[1] * t[2]; return [(e[0] * t[3] - e[1] * t[2] + t[2] * t[5] - t[4] * t[3]) / i, (-e[0] * t[1] + e[1] * t[0] + t[4] * t[1] - t[5] * t[0]) / i]; }; Util.getAxialAlignedBoundingBox = function (e, t) { var i = this.applyTransform(e, t), a = this.applyTransform(e.slice(2, 4), t), s = this.applyTransform([e[0], e[3]], t), r = this.applyTransform([e[2], e[1]], t); return [Math.min(i[0], a[0], s[0], r[0]), Math.min(i[1], a[1], s[1], r[1]), Math.max(i[0], a[0], s[0], r[0]), Math.max(i[1], a[1], s[1], r[1])]; }; Util.inverseTransform = function (e) { var t = e[0] * e[3] - e[1] * e[2]; return [e[3] / t, -e[1] / t, -e[2] / t, e[0] / t, (e[2] * e[5] - e[4] * e[3]) / t, (e[4] * e[1] - e[5] * e[0]) / t]; }; Util.singularValueDecompose2dScale = function (e) { var t = [e[0], e[2], e[1], e[3]], i = e[0] * t[0] + e[1] * t[2], a = e[0] * t[1] + e[1] * t[3], s = e[2] * t[0] + e[3] * t[2], r = e[2] * t[1] + e[3] * t[3], n = (i + r) / 2, o = Math.sqrt(Math.pow((i + r), 2) - 4 * (i * r - s * a)) / 2, g = n + o || 1, c = n - o || 1; return [Math.sqrt(g), Math.sqrt(c)]; }; Util.normalizeRect = function (e) { var t = e.slice(0); if (e[0] > e[2]) { t[0] = e[2]; t[2] = e[0]; } if (e[1] > e[3]) { t[1] = e[3]; t[3] = e[1]; } return t; }; Util.intersect = function (e, t) { var i = Math.max(Math.min(e[0], e[2]), Math.min(t[0], t[2])), a = Math.min(Math.max(e[0], e[2]), Math.max(t[0], t[2])); if (i > a) return null; var s = Math.max(Math.min(e[1], e[3]), Math.min(t[1], t[3])), r = Math.min(Math.max(e[1], e[3]), Math.max(t[1], t[3])); return s > r ? null : [i, s, a, r]; }; Util.bezierBoundingBox = function (e, t, i, a, s, r, n, o, g) { if (g) { g[0] = Math.min(g[0], e, n); g[1] = Math.min(g[1], t, o); g[2] = Math.max(g[2], e, n); g[3] = Math.max(g[3], t, o); } else g = [Math.min(e, n), Math.min(t, o), Math.max(e, n), Math.max(t, o)]; tslib_1.__classPrivateFieldGet(this, _c, "m", _Util_e).call(this, e, i, s, n, t, a, r, o, 3 * (3 * (i - s) - e + n), 6 * (e - 2 * i + s), 3 * (i - e), g); tslib_1.__classPrivateFieldGet(this, _c, "m", _Util_e).call(this, e, i, s, n, t, a, r, o, 3 * (3 * (a - r) - t + o), 6 * (t - 2 * a + r), 3 * (a - t), g); return g; }; return Util; }()); _c = Util, _Util_A = function _Util_A(e, t, i, a, s, r, n, o, g, c) { if (g <= 0 || g >= 1) return; var h = 1 - g, l = g * g, C = l * g, Q = h * (h * (h * e + 3 * g * t) + 3 * l * i) + C * a, E = h * (h * (h * s + 3 * g * r) + 3 * l * n) + C * o; c[0] = Math.min(c[0], Q); c[1] = Math.min(c[1], E); c[2] = Math.max(c[2], Q); c[3] = Math.max(c[3], E); }, _Util_e = function _Util_e(e, t, i, a, s, r, n, o, g, c, h, l) { if (Math.abs(g) < 1e-12) { Math.abs(c) >= 1e-12 && tslib_1.__classPrivateFieldGet(this, _c, "m", _Util_A).call(this, e, t, i, a, s, r, n, o, -h / c, l); return; } var C = Math.pow(c, 2) - 4 * h * g; if (C < 0) return; var Q = Math.sqrt(C), E = 2 * g; tslib_1.__classPrivateFieldGet(this, _c, "m", _Util_A).call(this, e, t, i, a, s, r, n, o, (-c + Q) / E, l); tslib_1.__classPrivateFieldGet(this, _c, "m", _Util_A).call(this, e, t, i, a, s, r, n, o, (-c - Q) / E, l); }; var ot = [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 stringToPDFString(e) { if (e[0] >= "ï") { var t_2; if ("þ" === e[0] && "ÿ" === e[1]) { t_2 = "utf-16be"; e.length % 2 == 1 && (e = e.slice(0, -1)); } else if ("ÿ" === e[0] && "þ" === e[1]) { t_2 = "utf-16le"; e.length % 2 == 1 && (e = e.slice(0, -1)); } else "ï" === e[0] && "»" === e[1] && "¿" === e[2] && (t_2 = "utf-8"); if (t_2) try { var i_1 = new TextDecoder(t_2, { fatal: !0 }), a_3 = stringToBytes(e), s_2 = i_1.decode(a_3); return s_2.includes("") ? s_2.replaceAll(/\x1b[^\x1b]*(?:\x1b|$)/g, "") : s_2; } catch (e) { warn("stringToPDFString: \"".concat(e, "\".")); } } var t = []; for (var i_2 = 0, a_4 = e.length; i_2 < a_4; i_2++) { var s_3 = e.charCodeAt(i_2); if (27 === s_3) { for (; ++i_2 < a_4 && 27 !== e.charCodeAt(i_2);) ; continue; } var r_2 = ot[s_3]; t.push(r_2 ? String.fromCharCode(r_2) : e.charAt(i_2)); } return t.join(""); } function stringToUTF8String(e) { return decodeURIComponent(escape(e)); } function utf8StringToString(e) { return unescape(encodeURIComponent(e)); } function isArrayEqual(e, t) { if (e.length !== t.length) return !1; for (var i_3 = 0, a_5 = e.length; i_3 < a_5; i_3++) if (e[i_3] !== t[i_3]) return !1; return !0; } function getModificationDate(e) { if (e === void 0) { e = new Date; } return [e.getUTCFullYear().toString(), (e.getUTCMonth() + 1).toString().padStart(2, "0"), e.getUTCDate().toString().padStart(2, "0"), e.getUTCHours().toString().padStart(2, "0"), e.getUTCMinutes().toString().padStart(2, "0"), e.getUTCSeconds().toString().padStart(2, "0")].join(""); } var gt = null, It = null; var ct = 0, ht = 1, lt = 2, Ct = 3, Bt = 4, Qt = 5, Et = 6, ut = 7, dt = 8, ft = Symbol("CIRCULAR_REF"), pt = Symbol("EOF"); var mt = Object.create(null), yt = Object.create(null), wt = Object.create(null); var Name = /** @class */ (function () { function Name(e) { this.name = e; } Name.get = function (e) { return yt[e] || (yt[e] = new Name(e)); }; return Name; }()); var Cmd = /** @class */ (function () { function Cmd(e) { this.cmd = e; } Cmd.get = function (e) { return mt[e] || (mt[e] = new Cmd(e)); }; return Cmd; }()); var bt = function nonSerializableClosure() { return bt; }; var Dict = /** @class */ (function () { function Dict(e) { if (e === void 0) { e = null; } this._map = Object.create(null); this.xref = e; this.objId = null; this.suppressEncryption = !1; this.__nonSerializable__ = bt; } Dict.prototype.assignXref = function (e) { this.xref = e; }; Object.defineProperty(Dict.prototype, "size", { get: function () { return Object.keys(this._map).length; }, enumerable: false, configurable: true }); Dict.prototype.get = function (e, t, i) { var a = this._map[e]; if (void 0 === a && void 0 !== t) { a = this._map[t]; void 0 === a && void 0 !== i && (a = this._map[i]); } return a instanceof Ref && this.xref ? this.xref.fetch(a, this.suppressEncryption) : a; }; Dict.prototype.getAsync = function (e, t, i) { return tslib_1.__awaiter(this, void 0, void 0, function () { var a; return tslib_1.__generator(this, function (_b) { a = this._map[e]; if (void 0 === a && void 0 !== t) { a = this._map[t]; void 0 === a && void 0 !== i && (a = this._map[i]); } return [2 /*return*/, a instanceof Ref && this.xref ? this.xref.fetchAsync(a, this.suppressEncryption) : a]; }); }); }; Dict.prototype.getArray = function (e, t, i) { var a = this._map[e]; if (void 0 === a && void 0 !== t) { a = this._map[t]; void 0 === a && void 0 !== i && (a = this._map[i]); } a instanceof Ref && this.xref && (a = this.xref.fetch(a, this.suppressEncryption)); if (Array.isArray(a)) { a = a.slice(); for (var e_1 = 0, t_3 = a.length; e_1 < t_3; e_1++) a[e_1] instanceof Ref && this.xref && (a[e_1] = this.xref.fetch(a[e_1], this.suppressEncryption)); } return a; }; Dict.prototype.getRaw = function (e) { return this._map[e]; }; Dict.prototype.getKeys = function () { return Object.keys(this._map); }; Dict.prototype.getRawValues = function () { return Object.values(this._map); }; Dict.prototype.set = function (e, t) { this._map[e] = t; }; Dict.prototype.has = function (e) { return void 0 !== this._map[e]; }; Dict.prototype.forEach = function (e) { for (var t_4 in this._map) e(t_4, this.get(t_4)); }; Object.defineProperty(Dict, "empty", { get: function () { var e = new Dict(null); e.set = function (e, t) { unreachable("Should not call `set` on the empty dictionary."); }; return shadow(this, "empty", e); }, enumerable: false, configurable: true }); Dict.merge = function (_b) { var e = _b.xref, t = _b.dictArray, _f = _b.mergeSubDicts, i = _f === void 0 ? !1 : _f; var a = new Dict(e), s = new Map; for (var _g = 0, t_5 = t; _g < t_5.length; _g++) { var e_2 = t_5[_g]; if (e_2 instanceof Dict) for (var _h = 0, _j = Object.entries(e_2._map); _h < _j.length; _h++) { var _k = _j[_h], t_6 = _k[0], a_6 = _k[1]; var e_3 = s.get(t_6); if (void 0 === e_3) { e_3 = []; s.set(t_6, e_3); } else if (!(i && a_6 instanceof Dict)) continue; e_3.push(a_6); } } for (var _l = 0, s_4 = s; _l < s_4.length; _l++) { var _m = s_4[_l], t_7 = _m[0], i_5 = _m[1]; if (1 === i_5.length || !(i_5[0] instanceof Dict)) { a._map[t_7] = i_5[0]; continue; } var s_5 = new Dict(e); for (var _o = 0, i_4 = i_5; _o < i_4.length; _o++) { var e_4 = i_4[_o]; for (var _p = 0, _q = Object.entries(e_4._map); _p < _q.length; _p++) { var _u = _q[_p], t_8 = _u[0], i_6 = _u[1]; void 0 === s_5._map[t_8] && (s_5._map[t_8] = i_6); } } s_5.size > 0 && (a._map[t_7] = s_5); } s.clear(); return a.size > 0 ? a : Dict.empty; }; Dict.prototype.clone = function () { var e = new Dict(this.xref); for (var _b = 0, _f = this.getKeys(); _b < _f.length; _b++) { var t_9 = _f[_b]; e.set(t_9, this.getRaw(t_9)); } return e; }; return Dict; }()); var Ref = /** @class */ (function () { function Ref(e, t) { this.num = e; this.gen = t; } Ref.prototype.toString = function () { return 0 === this.gen ? "".concat(this.num, "R") : "".concat(this.num, "R").concat(this.gen); }; Ref.fromString = function (e) { var t = wt[e]; if (t) return t; var i = /^(\d+)R(\d*)$/.exec(e); return i && "0" !== i[1] ? wt[e] = new Ref(parseInt(i[1]), i[2] ? parseInt(i[2]) : 0) : null; }; Ref.get = function (e, t) { var i = 0 === t ? "".concat(e, "R") : "".concat(e, "R").concat(t); return wt[i] || (wt[i] = new Ref(e, t)); }; return Ref; }()); var RefSet = /** @class */ (function () { function RefSet(e) { if (e === void 0) { e = null; } this._set = new Set(e === null || e === void 0 ? void 0 : e._set); } RefSet.prototype.has = function (e) { return this._set.has(e.toString()); }; RefSet.prototype.put = function (e) { this._set.add(e.toString()); }; RefSet.prototype.remove = function (e) { this._set.delete(e.toString()); }; RefSet.prototype[Symbol.iterator] = function () { return this._set.values(); }; RefSet.prototype.clear = function () { this._set.clear(); }; return RefSet; }()); var RefSetCache = /** @class */ (function () { function RefSetCache() { this._map = new Map; } Object.defineProperty(RefSetCache.prototype, "size", { get: function () { return this._map.size; }, enumerable: false, configurable: true }); RefSetCache.prototype.get = function (e) { return this._map.get(e.toString()); }; RefSetCache.prototype.has = function (e) { return this._map.has(e.toString()); }; RefSetCache.prototype.put = function (e, t) { this._map.set(e.toString(), t); }; RefSetCache.prototype.putAlias = function (e, t) { this._map.set(e.toString(), this.get(t)); }; RefSetCache.prototype[Symbol.iterator] = function () { return this._map.values(); }; RefSetCache.prototype.clear = function () { this._map.clear(); }; RefSetCache.prototype.items = function () { var _b, _f, _g, e_5, t_10; return tslib_1.__generator(this, function (_h) { switch (_h.label) { case 0: _b = 0, _f = this._map; _h.label = 1; case 1: if (!(_b < _f.length)) return [3 /*break*/, 4]; _g = _f[_b], e_5 = _g[0], t_10 = _g[1]; return [4 /*yield*/, [Ref.fromString(e_5), t_10]]; case 2: _h.sent(); _h.label = 3; case 3: _b++; return [3 /*break*/, 1]; case 4: return [2 /*return*/]; } }); }; return RefSetCache; }()); function isName(e, t) { return e instanceof Name && (void 0 === t || e.name === t); } function isCmd(e, t) { return e instanceof Cmd && (void 0 === t || e.cmd === t); } function isDict(e, t) { return e instanceof Dict && (void 0 === t || isName(e.get("Type"), t)); } function isRefsEqual(e, t) { return e.num === t.num && e.gen === t.gen; } var BaseStream = /** @class */ (function () { function BaseStream() { this.constructor === BaseStream && unreachable("Cannot initialize BaseStream."); } Object.defineProperty(BaseStream.prototype, "length", { get: function () { unreachable("Abstract getter `length` accessed"); }, enumerable: false, configurable: true }); Object.defineProperty(BaseStream.prototype, "isEmpty", { get: function () { unreachable("Abstract getter `isEmpty` accessed"); }, enumerable: false, configurable: true }); Object.defineProperty(BaseStream.prototype, "isDataLoaded", { get: function () { return shadow(this, "isDataLoaded", !0); }, enumerable: false, configurable: true }); BaseStream.prototype.getByte = function () { unreachable("Abstract method `getByte` called"); }; BaseStream.prototype.getBytes = function (e) { unreachable("Abstract method `getBytes` called"); }; BaseStream.prototype.peekByte = function () { var e = this.getByte(); -1 !== e && this.pos--; return e; }; BaseStream.prototype.peekBytes = function (e) { var t = this.getBytes(e); this.pos -= t.length; return t; }; BaseStream.prototype.getUint16 = function () { var e = this.getByte(), t = this.getByte(); return -1 === e || -1 === t ? -1 : (e << 8) + t; }; BaseStream.prototype.getInt32 = function () { return (this.getByte() << 24) + (this.getByte() << 16) + (this.getByte() << 8) + this.getByte(); }; BaseStream.prototype.getByteRange = function (e, t) { unreachable("Abstract method `getByteRange` called"); }; BaseStream.prototype.getString = function (e) { return bytesToString(this.getBytes(e)); }; BaseStream.prototype.skip = function (e) { this.pos += e || 1; }; BaseStream.prototype.reset = function () { unreachable("Abstract method `reset` called"); }; BaseStream.prototype.moveStart = function () { unreachable("Abstract method `moveStart` called"); }; BaseStream.prototype.makeSubStream = function (e, t, i) { if (i === void 0) { i = null; } unreachable("Abstract method `makeSubStream` called"); }; BaseStream.prototype.getBaseStreams = function () { return null; }; return BaseStream; }()); var Dt = /^[1-9]\.\d$/; function getLookupTableFactory(e) { var t; return function () { if (e) { t = Object.create(null); e(t); e = null; } return t; }; } var MissingDataException = /** @class */ (function (_super) { tslib_1.__extends(MissingDataException, _super); function MissingDataException(e, t) { var _this = _super.call(this, "Missing data [".concat(e, ", ").concat(t, ")"), "MissingDataException") || this; _this.begin = e; _this.end = t; return _this; } return MissingDataException; }(rt)); var ParserEOFException = /** @class */ (function (_super) { tslib_1.__extends(ParserEOFException, _super); function ParserEOFException(e) { return _super.call(this, e, "ParserEOFException") || this; } return ParserEOFException; }(rt)); var XRefEntryException = /** @class */ (function (_super) { tslib_1.__extends(XRefEntryException, _super); function XRefEntryException(e) { return _super.call(this, e, "XRefEntryException") || this; } return XRefEntryException; }(rt)); var XRefParseException = /** @class */ (function (_super) { tslib_1.__extends(XRefParseException, _super); function XRefParseException(e) { return _super.call(this, e, "XRefParseException") || this; } return XRefParseException; }(rt)); function arrayBuffersToBytes(e) { var t = e.length; if (0 === t) return new Uint8Array(0); if (1 === t) return new Uint8Array(e[0]); var i = 0; for (var a_7 = 0; a_7 < t; a_7++) i += e[a_7].byteLength; var a = new Uint8Array(i); var s = 0; for (var i_7 = 0; i_7 < t; i_7++) { var t_11 = new Uint8Array(e[i_7]); a.set(t_11, s); s += t_11.byteLength; } return a; } function getInheritableProperty(_b) { var e = _b.dict, t = _b.key, _f = _b.getArray, i = _f === void 0 ? !1 : _f, _g = _b.stopWhenFound, a = _g === void 0 ? !0 : _g; var s; var r = new RefSet; for (; e instanceof Dict && (!e.objId || !r.has(e.objId));) { e.objId && r.put(e.objId); var n_2 = i ? e.getArray(t) : e.get(t); if (void 0 !== n_2) { if (a) return n_2; (s || (s = [])).push(n_2); } e = e.get("Parent"); } return s; } var Ft = ["", "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 toRomanNumerals(e, t) { if (t === void 0) { t = !1; } assert(Number.isInteger(e) && e > 0, "The number should be a positive integer."); var i = []; var a; for (; e >= 1e3;) { e -= 1e3; i.push("M"); } a = e / 100 | 0; e %= 100; i.push(Ft[a]); a = e / 10 | 0; e %= 10; i.push(Ft[10 + a]); i.push(Ft[20 + e]); var s = i.join(""); return t ? s.toLowerCase() : s; } function log2(e) { return e <= 0 ? 0 : Math.ceil(Math.log2(e)); } function readInt8(e, t) { return e[t] << 24 >> 24; } function readUint16(e, t) { return e[t] << 8 | e[t + 1]; } function readUint32(e, t) { return (e[t] << 24 | e[t + 1] << 16 | e[t + 2] << 8 | e[t + 3]) >>> 0; } function isWhiteSpace(e) { return 32 === e || 9 === e || 13 === e || 10 === e; } function isNumberArray(e, t) { return Array.isArray(e) && (null === t || e.length === t) && e.every((function (e) { return "number" == typeof e; })); } function lookupMatrix(e, t) { return isNumberArray(e, 6) ? e : t; } function lookupRect(e, t) { return isNumberArray(e, 4) ? e : t; } function lookupNormalRect(e, t) { return isNumberArray(e, 4) ? Util.normalizeRect(e) : t; } function parseXFAPath(e) { var t = /(.+)\[(\d+)\]$/; return e.split(".").map((function (e) { var i = e.match(t); return i ? { name: i[1], pos: parseInt(i[2], 10) } : { name: e, pos: 0 }; })); } function escapePDFName(e) { var t = []; var i = 0; for (var a_8 = 0, s_6 = e.length; a_8 < s_6; a_8++) { var s_7 = e.charCodeAt(a_8); if (s_7 < 33 || s_7 > 126 || 35 === s_7 || 40 === s_7 || 41 === s_7 || 60 === s_7 || 62 === s_7 || 91 === s_7 || 93 === s_7 || 123 === s_7 || 125 === s_7 || 47 === s_7 || 37 === s_7) { i < a_8 && t.push(e.substring(i, a_8)); t.push("#".concat(s_7.toString(16))); i = a_8 + 1; } } if (0 === t.length) return e; i < e.length && t.push(e.substring(i, e.length)); return t.join(""); } function escapeString(e) { return e.replaceAll(/([()\\\n\r])/g, (function (e) { return "\n" === e ? "\\n" : "\r" === e ? "\\r" : "\\".concat(e); })); } function _collectJS(e, t, i, a) { if (!e) return; var s = null; if (e instanceof Ref) { if (a.has(e)) return; s = e; a.put(s); e = t.fetch(e); } if (Array.isArray(e)) for (var _b = 0, e_6 = e; _b < e_6.length; _b++) { var s_8 = e_6[_b]; _collectJS(s_8, t, i, a); } else if (e instanceof Dict) { if (isName(e.get("S"), "JavaScript")) { var t_12 = e.get("JS"); var a_9; t_12 instanceof BaseStream ? a_9 = t_12.getString() : "string" == typeof t_12 && (a_9 = t_12); a_9 && (a_9 = stringToPDFString(a_9).replaceAll("\0", "")); a_9 && i.push(a_9); } _collectJS(e.getRaw("Next"), t, i, a); } s && a.remove(s); } function collectActions(e, t, i) { var a = Object.create(null), s = getInheritableProperty({ dict: t, key: "AA", stopWhenFound: !1 }); if (s) for (var t_13 = s.length - 1; t_13 >= 0; t_13--) { var r_3 = s[t_13]; if (r_3 instanceof Dict) for (var _b = 0, _f = r_3.getKeys(); _b < _f.length; _b++) { var t_14 = _f[_b]; var s_9 = i[t_14]; if (!s_9) continue; var n_3 = []; _collectJS(r_3.getRaw(t_14), e, n_3, new RefSet); n_3.length > 0 && (a[s_9] = n_3); } } if (t.has("A")) { var i_8 = []; _collectJS(t.get("A"), e, i_8, new RefSet); i_8.length > 0 && (a.Action = i_8); } return objectSize(a) > 0 ? a : null; } var St = { 60: "<", 62: ">", 38: "&", 34: """, 39: "'" }; function codePointIter(e) { var t_15, i_9, i_10; return tslib_1.__generator(this, function (_b) { switch (_b.label) { case 0: t_15 = 0, i_9 = e.length; _b.label = 1; case 1: if (!(t_15 < i_9)) return [3 /*break*/, 4]; i_10 = e.codePointAt(t_15); i_10 > 55295 && (i_10 < 57344 || i_10 > 65533) && t_15++; return [4 /*yield*/, i_10]; case 2: _b.sent(); _b.label = 3; case 3: t_15++; return [3 /*break*/, 1]; case 4: return [2 /*return*/]; } }); } function encodeToXmlString(e) { var t = []; var i = 0; for (var a_10 = 0, s_10 = e.length; a_10 < s_10; a_10++) { var s_11 = e.codePointAt(a_10); if (32 <= s_11 && s_11 <= 126) { var r_4 = St[s_11]; if (r_4) { i < a_10 && t.push(e.substring(i, a_10)); t.push(r_4); i = a_10 + 1; } } else { i < a_10 && t.push(e.substring(i, a_10)); t.push("&#x".concat(s_11.toString(16).toUpperCase(), ";")); s_11 > 55295 && (s_11 < 57344 || s_11 > 65533) && a_10++; i = a_10 + 1; } } if (0 === t.length) return e; i < e.length && t.push(e.substring(i, e.length)); return t.join(""); } function validateFontName(e, t) { if (t === void 0) { t = !1; } var i = /^("|').*("|')$/.exec(e); if (i && i[1] === i[2]) { if (new RegExp("[^\\\\]".concat(i[1])).test(e.slice(1, -1))) { t && warn("FontFamily contains unescaped ".concat(i[1], ": ").concat(e, ".")); return !1; } } else for (var _b = 0, _f = e.split(/[ \t]+/); _b < _f.length; _b++) { var i_11 = _f[_b]; if (/^(\d|(-(\d|-)))/.test(i_11) || !/^[\w-\\]+$/.test(i_11)) { t && warn("FontFamily contains invalid : ".concat(e, ".")); return !1; } } return !0; } function validateCSSFont(e) { var t = new Set(["100", "200", "300", "400", "500", "600", "700", "800", "900", "1000", "normal", "bold", "bolder", "lighter"]), i = e.fontFamily, a = e.fontWeight, s = e.italicAngle; if (!validateFontName(i, !0)) return !1; var r = a ? a.toString() : ""; e.fontWeight = t.has(r) ? r : "400"; var n = parseFloat(s); e.italicAngle = isNaN(n) || n < -90 || n > 90 ? "14" : s.toString(); return !0; } function recoverJsURL(e) { var t = new RegExp("^\\s*(" + ["app.launchURL", "window.open", "xfa.host.gotoURL"].join("|").replaceAll(".", "\\.") + ")\\((?:'|\")([^'\"]*)(?:'|\")(?:,\\s*(\\w+)\\)|\\))", "i").exec(e); if (t === null || t === void 0 ? void 0 : t[2]) { var e_7 = t[2]; var i_12 = !1; "true" === t[3] && "app.launchURL" === t[1] && (i_12 = !0); return { url: e_7, newWindow: i_12 }; } return null; } function numberToString(e) { if (Number.isInteger(e)) return e.toString(); var t = Math.round(100 * e); return t % 100 == 0 ? (t / 100).toString() : t % 10 == 0 ? e.toFixed(1) : e.toFixed(2); } function getNewAnnotationsMap(e) { if (!e) return null; var t = new Map; for (var _b = 0, e_8 = e; _b < e_8.length; _b++) { var _f = e_8[_b], i_13 = _f[0], a_11 = _f[1]; if (!i_13.startsWith(E)) continue; var e_9 = t.get(a_11.pageIndex); if (!e_9) { e_9 = []; t.set(a_11.pageIndex, e_9); } e_9.push(a_11); } return t.size > 0 ? t : null; } function isAscii(e) { return /^[\x00-\x7F]*$/.test(e); } function stringToUTF16HexString(e) { var t = []; for (var i_14 = 0, a_12 = e.length; i_14 < a_12; i_14++) { var a_13 = e.charCodeAt(i_14); t.push((a_13 >> 8 & 255).toString(16).padStart(2, "0"), (255 & a_13).toString(16).padStart(2, "0")); } return t.join(""); } function stringToUTF16String(e, t) { if (t === void 0) { t = !1; } var i = []; t && i.push("þÿ"); for (var t_16 = 0, a_14 = e.length; t_16 < a_14; t_16++) { var a_15 = e.charCodeAt(t_16); i.push(String.fromCharCode(a_15 >> 8 & 255), String.fromCharCode(255 & a_15)); } return i.join(""); } function getRotationMatrix(e, t, i) { switch (e) { case 90: return [0, 1, -1, 0, t, 0]; case 180: return [-1, 0, 0, -1, t, i]; case 270: return [0, -1, 1, 0, 0, i]; default: throw new Error("Invalid rotation"); } } function getSizeInBytes(e) { return Math.ceil(Math.ceil(Math.log2(1 + e)) / 8); } var Stream = /** @class */ (function (_super) { tslib_1.__extends(Stream, _super); function Stream(e, t, i, a) { var _this = _super.call(this) || this; _this.bytes = e instanceof Uint8Array ? e : new Uint8Array(e); _this.start = t || 0; _this.pos = _this.start; _this.end = t + i || _this.bytes.length; _this.dict = a; return _this; } Object.defineProperty(Stream.prototype, "length", { get: function () { return this.end - this.start; }, enumerable: false, configurable: true }); Object.defineProperty(Stream.prototype, "isEmpty", { get: function () { return 0 === this.length; }, enumerable: false, configurable: true }); Stream.prototype.getByte = function () { return this.pos >= this.end ? -1 : this.bytes[this.pos++]; }; Stream.prototype.getBytes = function (e) { var t = this.bytes, i = this.pos, a = this.end; if (!e) return t.subarray(i, a); var s = i + e; s > a && (s = a); this.pos = s; return t.subarray(i, s); }; Stream.prototype.getByteRange = function (e, t) { e < 0 && (e = 0); t > this.end && (t = this.end); return this.bytes.subarray(e, t); }; Stream.prototype.reset = function () { this.pos = this.start; }; Stream.prototype.moveStart = function () { this.start = this.pos; }; Stream.prototype.makeSubStream = function (e, t, i) { if (i === void 0) { i = null; } return new Stream(this.bytes.buffer, e, t, i); }; return Stream; }(BaseStream)); var StringStream = /** @class */ (function (_super) { tslib_1.__extends(StringStream, _super); function StringStream(e) { return _super.call(this, stringToBytes(e)) || this; } return StringStream; }(Stream)); var NullStream = /** @class */ (function (_super) { tslib_1.__extends(NullStream, _super); function NullStream() { return _super.call(this, new Uint8Array(0)) || this; } return NullStream; }(Stream)); var ChunkedStream = /** @class */ (function (_super) { tslib_1.__extends(ChunkedStream, _super); function ChunkedStream(e, t, i) { var _this = _super.call(this, new Uint8Array(e), 0, e, null) || this; _this.chunkSize = t; _this._loadedChunks = new Set; _this.numChunks = Math.ceil(e / t); _this.manager = i; _this.progressiveDataLength = 0; _this.lastSuccessfulEnsureByteChunk = -1; return _this; } ChunkedStream.prototype.getMissingChunks = function () { var e = []; for (var t_17 = 0, i_15 = this.numChunks; t_17 < i_15; ++t_17) this._loadedChunks.has(t_17) || e.push(t_17); return e; }; Object.defineProperty(ChunkedStream.prototype, "numChunksLoaded", { get: function () { return this._loadedChunks.size; }, enumerable: false, configurable: true }); Object.defineProperty(ChunkedStream.prototype, "isDataLoaded", { get: function () { return this.numChunksLoaded === this.numChunks; }, enumerable: false, configurable: true }); ChunkedStream.prototype.onReceiveData = function (e, t) { var i = this.chunkSize; if (e % i != 0) throw new Error("Bad begin offset: ".concat(e)); var a = e + t.byteLength; if (a % i != 0 && a !== this.bytes.length) throw new Error("Bad end offset: ".concat(a)); this.bytes.set(new Uint8Array(t), e); var s = Math.floor(e / i), r = Math.floor((a - 1) / i) + 1; for (var e_10 = s; e_10 < r; ++e_10) this._loadedChunks.add(e_10); }; ChunkedStream.prototype.onReceiveProgressiveData = function (e) { var t = this.progressiveDataLength; var i = Math.floor(t / this.chunkSize); this.bytes.set(new Uint8Array(e), t); t += e.byteLength; this.progressiveDataLength = t; var a = t >= this.end ? this.numChunks : Math.floor(t / this.chunkSize); for (var e_11 = i; e_11 < a; ++e_11) this._loadedChunks.add(e_11); }; ChunkedStream.prototype.ensureByte = function (e) { if (e < this.progressiveDataLength) return; var t = Math.floor(e / this.chunkSize); if (!(t > this.numChunks) && t !== this.lastSuccessfulEnsureByteChunk) { if (!this._loadedChunks.has(t)) throw new MissingDataException(e, e + 1); this.lastSuccessfulEnsureByteChunk = t; } }; ChunkedStream.prototype.ensureRange = function (e, t) { if (e >= t) return; if (t <= this.progressiveDataLength) return; var i = Math.floor(e / this.chunkSize); if (i > this.numChunks) return; var a = Math.min(Math.floor((t - 1) / this.chunkSize) + 1, this.numChunks); for (var s_12 = i; s_12 < a; ++s_12) if (!this._loadedChunks.has(s_12)) throw new MissingDataException(e, t); }; ChunkedStream.prototype.nextEmptyChunk = function (e) { var t = this.numChunks; for (var i_16 = 0; i_16 < t; ++i_16) { var a_16 = (e + i_16) % t; if (!this._loadedChunks.has(a_16)) return a_16; } return null; }; ChunkedStream.prototype.hasChunk = function (e) { return this._loadedChunks.has(e); }; ChunkedStream.prototype.getByte = function () { var e = this.pos; if (e >= this.end) return -1; e >= this.progressiveDataLength && this.ensureByte(e); return this.bytes[this.pos++]; }; ChunkedStream.prototype.getBytes = function (e) { var t = this.bytes, i = this.pos, a = this.end; if (!e) { a > this.progressiveDataLength && this.ensureRange(i, a); return t.subarray(i, a); } var s = i + e; s > a && (s = a); s > this.progressiveDataLength && this.ensureRange(i, s); this.pos = s; return t.subarray(i, s); }; ChunkedStream.prototype.getByteRange = function (e, t) { e < 0 && (e = 0); t > this.end && (t = this.end); t > this.progressiveDataLength && this.ensureRange(e, t); return this.bytes.subarray(e, t); }; ChunkedStream.prototype.makeSubStream = function (e, t, i) { if (i === void 0) { i = null; } t ? e + t > this.progressiveDataLength && this.ensureRange(e, e + t) : e >= this.progressiveDataLength && this.ensureByte(e); function ChunkedStreamSubstream() { } ChunkedStreamSubstream.prototype = Object.create(this); ChunkedStreamSubstream.prototype.getMissingChunks = function () { var e = this.chunkSize, t = Math.floor(this.start / e), i = Math.floor((this.end - 1) / e) + 1, a = []; for (var e_12 = t; e_12 < i; ++e_12) this._loadedChunks.has(e_12) || a.push(e_12); return a; }; Object.defineProperty(ChunkedStreamSubstream.prototype, "isDataLoaded", { get: function () { return this.numChunksLoaded === this.numChunks || 0 === this.getMissingChunks().length; }, configurable: !0 }); var a = new ChunkedStreamSubstream; a.pos = a.start = e; a.end = e + t || this.end; a.dict = i; return a; }; ChunkedStream.prototype.getBaseStreams = function () { return [this]; }; return ChunkedStream; }(Stream)); var ChunkedStreamManager = /** @class */ (function () { function ChunkedStreamManager(e, t) { this.length = t.length; this.chunkSize = t.rangeChunkSize; this.stream = new ChunkedStream(this.length, this.chunkSize, this); this.pdfNetworkStream = e; this.disableAutoFetch = t.disableAutoFetch; this.msgHandler = t.msgHandler; this.currRequestId = 0; this._chunksNeededByRequest = new Map; this._requestsByChunk = new Map; this._promisesByRequest = new Map; this.progressiveDataLength = 0; this.aborted = !1; this._loadedStreamCapability = Promise.withResolvers(); } ChunkedStreamManager.prototype.sendRequest = function (e, t) { var _this = this; var i = this.pdfNetworkStream.getRangeReader(e, t); i.isStreamingSupported || (i.onProgress = this.onProgress.bind(this)); var a = [], s = 0; return new Promise((function (e, t) { var readChunk = function (_b) { var r = _b.value, n = _b.done; try { if (n) { var t_18 = arrayBuffersToBytes(a); a = null; e(t_18); return; } s += r.byteLength; i.isStreamingSupported && _this.onProgress({ loaded: s }); a.push(r); i.read().then(readChunk, t); } catch (e) { t(e); } }; i.read().then(readChunk, t); })).then((function (t) { _this.aborted || _this.onReceiveData({ chunk: t, begin: e }); })); }; ChunkedStreamManager.prototype.requestAllChunks = function (e) { if (e === void 0) { e = !1; } if (!e) { var e_13 = this.stream.getMissingChunks(); this._requestChunks(e_13); } return this._loadedStreamCapability.promise; }; ChunkedStreamManager.prototype._requestChunks = function (e) { var _this = this; var t = this.currRequestId++, i = new Set; this._chunksNeededByRequest.set(t, i); for (var _b = 0, e_14 = e; _b < e_14.length; _b++) { var t_19 = e_14[_b]; this.stream.hasChunk(t_19) || i.add(t_19); } if (0 === i.size) return Promise.resolve(); var a = Promise.withResolvers(); this._promisesByRequest.set(t, a); var s = []; for (var _f = 0, i_17 = i; _f < i_17.length; _f++) { var e_16 = i_17[_f]; var i_18 = this._requestsByChunk.get(e_16); if (!i_18) { i_18 = []; this._requestsByChunk.set(e_16, i_18); s.push(e_16); } i_18.push(t); } if (s.length > 0) { var e_17 = this.groupChunks(s); for (var _g = 0, e_15 = e_17; _g < e_15.length; _g++) { var t_20 = e_15[_g]; var e_18 = t_20.beginChunk * this.chunkSize, i_19 = Math.min(t_20.endChunk * this.chunkSize, this.length); this.sendRequest(e_18, i_19).catch(a.reject); } } return a.promise.catch((function (e) { if (!_this.aborted) throw e; })); }; ChunkedStreamManager.prototype.getStream = function () { return this.stream; }; ChunkedStreamManager.prototype.requestRange = function (e, t) { t = Math.min(t, this.length); var i = this.getBeginChunk(e), a = this.getEndChunk(t), s = []; for (var e_19 = i; e_19 < a; ++e_19) s.push(e_19); return this._requestChunks(s); }; ChunkedStreamManager.prototype.requestRanges = function (e) { if (e === void 0) { e = []; } var t = []; for (var _b = 0, e_20 = e; _b < e_20.length; _b++) { var i_20 = e_20[_b]; var e_21 = this.getBeginChunk(i_20.begin), a_17 = this.getEndChunk(i_20.end); for (var i_21 = e_21; i_21 < a_17; ++i_21) t.includes(i_21) || t.push(i_21); } t.sort((function (e, t) { return e - t; })); return this._requestChunks(t); }; ChunkedStreamManager.prototype.groupChunks = function (e) { var t = []; var i = -1, a = -1; for (var s_13 = 0, r_5 = e.length; s_13 < r_5; ++s_13) { var r_6 = e[s_13]; i < 0 && (i = r_6); if (a >= 0 && a + 1 !== r_6) { t.push({ beginChunk: i, endChunk: a + 1 }); i = r_6; } s_13 + 1 === e.length && t.push({ beginChunk: i, endChunk: r_6 + 1 }); a = r_6; } return t; }; ChunkedStreamManager.prototype.onProgress = function (e) { this.msgHandler.send("DocProgress", { loaded: this.stream.numChunksLoaded * this.chunkSize + e.loaded, total: this.length }); }; ChunkedStreamManager.prototype.onReceiveData = function (e) { var t = e.chunk, i = void 0 === e.begin, a = i ? this.progressiveDataLength : e.begin, s = a + t.byteLength, r = Math.floor(a / this.chunkSize), n = s < this.length ? Math.floor(s / this.chunkSize) : Math.ceil(s / this.chunkSize); if (i) { this.stream.onReceiveProgressiveData(t); this.progressiveDataLength = s; } else this.stream.onReceiveData(a, t); this.stream.isDataLoaded && this._loadedStreamCapability.resolve(this.stream); var o = []; for (var e_22 = r; e_22 < n; ++e_22) { var t_22 = this._requestsByChunk.get(e_22); if (t_22) { this._requestsByChunk.delete(e_22); for (var _b = 0, t_21 = t_22; _b < t_21.length; _b++) { var i_22 = t_21[_b]; var t_23 = this._chunksNeededByRequest.get(i_22); t_23.has(e_22) && t_23.delete(e_22); t_23.size > 0 || o.push(i_22); } } } if (!this.disableAutoFetch && 0 === this._requestsByChunk.size) { var e_23; if (1 === this.stream.numChunksLoaded) { var t_24 = this.stream.numChunks - 1; this.stream.hasChunk(t_24) || (e_23 = t_24); } else e_23 = this.stream.nextEmptyChunk(n); Number.isInteger(e_23) && this._requestChunks([e_23]); } for (var _f = 0, o_1 = o; _f < o_1.length; _f++) { var e_24 = o_1[_f]; var t_25 = this._promisesByRequest.get(e_24); this._promisesByRequest.delete(e_24); t_25.resolve(); } this.msgHandler.send("DocProgress", { loaded: this.stream.numChunksLoaded * this.chunkSize, total: this.length }); }; ChunkedStreamManager.prototype.onError = function (e) { this._loadedStreamCapability.reject(e); }; ChunkedStreamManager.prototype.getBeginChunk = function (e) { return Math.floor(e / this.chunkSize); }; ChunkedStreamManager.prototype.getEndChunk = function (e) { return Math.floor((e - 1) / this.chunkSize) + 1; }; ChunkedStreamManager.prototype.abort = function (e) { var _b; this.aborted = !0; (_b = this.pdfNetworkStream) === null || _b === void 0 ? void 0 : _b.cancelAllRequests(e); for (var _f = 0, _g = this._promisesByRequest.values(); _f < _g.length; _f++) { var t_26 = _g[_f]; t_26.reject(e); } }; return ChunkedStreamManager; }()); var ColorSpace = /** @class */ (function () { function ColorSpace(e, t) { this.constructor === ColorSpace && unreachable("Cannot initialize ColorSpace."); this.name = e; this.numComps = t; } ColorSpace.prototype.getRgb = function (e, t) { var i = new Uint8ClampedArray(3); this.getRgbItem(e, t, i, 0); return i; }; ColorSpace.prototype.getRgbItem = function (e, t, i, a) { unreachable("Should not call ColorSpace.getRgbItem"); }; ColorSpace.prototype.getRgbBuffer = function (e, t, i, a, s, r, n) { unreachable("Should not call ColorSpace.getRgbBuffer"); }; ColorSpace.prototype.getOutputLength = function (e, t) { unreachable("Should not call ColorSpace.getOutputLength"); }; ColorSpace.prototype.isPassthrough = function (e) { return !1; }; ColorSpace.prototype.isDefaultDecode = function (e, t) { return ColorSpace.isDefaultDecode(e, this.numComps); }; ColorSpace.prototype.fillRgb = function (e, t, i, a, s, r, n, o, g) { var c = t * i; var h = null; var l = 1 << n, C = i !== s || t !== a; if (this.isPassthrough(n)) h = o; else if (1 === this.numComps && c > l && "DeviceGray" !== this.name && "DeviceRGB" !== this.name) { var t_27 = n <= 8 ? new Uint8Array(l) : new Uint16Array(l); for (var e_25 = 0; e_25 < l; e_25++) t_27[e_25] = e_25; var i_23 = new Uint8ClampedArray(3 * l); this.getRgbBuffer(t_27, 0, l, i_23, 0, n, 0); if (C) { h = new Uint8Array(3 * c); var e_26 = 0; for (var t_28 = 0; t_28 < c; ++t_28) { var a_18 = 3 * o[t_28]; h[e_26++] = i_23[a_18]; h[e_26++] = i_23[a_18 + 1]; h[e_26++] = i_23[a_18 + 2]; } } else { var t_29 = 0; for (var a_19 = 0; a_19 < c; ++a_19) { var s_14 = 3 * o[a_19]; e[t_29++] = i_23[s_14]; e[t_29++] = i_23[s_14 + 1]; e[t_29++] = i_23[s_14 + 2]; t_29 += g; } } } else if (C) { h = new Uint8ClampedArray(3 * c); this.getRgbBuffer(o, 0, c, h, 0, n, 0); } else this.getRgbBuffer(o, 0, a * r, e, 0, n, g); if (h) if (C) !function resizeRgbImage(e, t, i, a, s, r, n) { n = 1 !== n ? 0 : n; var o = i / s, g = a / r; var c, h = 0; var l = new Uint16Array(s), C = 3 * i; for (var e_27 = 0; e_27 < s; e_27++) l[e_27] = 3 * Math.floor(e_27 * o); for (var i_24 = 0; i_24 < r; i_24++) { var a_20 = Math.floor(i_24 * g) * C; for (var i_25 = 0; i_25 < s; i_25++) { c = a_20 + l[i_25]; t[h++] = e[c++]; t[h++] = e[c++]; t[h++] = e[c++]; h += n; } } }(h, e, t, i, a, s, g); else { var t_30 = 0, i_26 = 0; for (var s_15 = 0, n_4 = a * r; s_15 < n_4; s_15++) { e[t_30++] = h[i_26++]; e[t_30++] = h[i_26++]; e[t_30++] = h[i_26++]; t_30 += g; } } }; Object.defineProperty(ColorSpace.prototype, "usesZeroToOneRange", { get: function () { return shadow(this, "usesZeroToOneRange", !0); }, enumerable: false, configurable: true }); ColorSpace._cache = function (e, t, i, a) { if (!i) throw new Error('ColorSpace._cache - expected "localColorSpaceCache" argument.'); if (!a) throw new Error('ColorSpace._cache - expected "parsedColorSpace" argument.'); var s, r; if (e instanceof Ref) { r = e; e = t.fetch(e); } e instanceof Name && (s = e.name); (s || r) && i.set(s, r, a); }; ColorSpace.getCached = function (e, t, i) { if (!i) throw new Error('ColorSpace.getCached - expected "localColorSpaceCache" argument.'); if (e instanceof Ref) { var a_21 = i.getByRef(e); if (a_21) return a_21; try { e = t.fetch(e); } catch (e) { if (e instanceof MissingDataException) throw e; } } if (e instanceof Name) { var t_31 = i.getByName(e.name); if (t_31) return t_31; } return null; }; ColorSpace.parseAsync = function (_b) { var e = _b.cs, t = _b.xref, _f = _b.resources, i = _f === void 0 ? null : _f, a = _b.pdfFunctionFactory, s = _b.localColorSpaceCache; return tslib_1.__awaiter(this, void 0, void 0, function () { var r; return tslib_1.__generator(this, function (_g) { r = this._parse(e, t, i, a); this._cache(e, t, s, r); return [2 /*return*/, r]; }); }); }; ColorSpace.parse = function (_b) { var e = _b.cs, t = _b.xref, _f = _b.resources, i = _f === void 0 ? null : _f, a = _b.pdfFunctionFactory, s = _b.localColorSpaceCache; var r = this.getCached(e, t, s); if (r) return r; var n = this._parse(e, t, i, a); this._cache(e, t, s, n); return n; }; ColorSpace._parse = function (e, t, i, a) { if (i === void 0) { i = null; } if ((e = t.fetchIfRef(e)) instanceof Name) switch (e.name) { case "G": case "DeviceGray": return this.singletons.gray; case "RGB": case "DeviceRGB": return this.singletons.rgb; case "CMYK": case "DeviceCMYK": return this.singletons.cmyk; case "Pattern": return new PatternCS(null); default: if (i instanceof Dict) { var s_16 = i.get("ColorSpace"); if (s_16 instanceof Dict) { var r_7 = s_16.get(e.name); if (r_7) { if (r_7 instanceof Name) return this._parse(r_7, t, i, a); e = r_7; break; } } } throw new FormatError("Unrecognized ColorSpace: ".concat(e.name)); } if (Array.isArray(e)) { var s_17 = t.fetchIfRef(e[0]).name; var r_8, n_5, o_2, g_1, c_1, h_1; switch (s_17) { case "G": case "DeviceGray": return this.singletons.gray; case "RGB": case "DeviceRGB": return this.singletons.rgb; case "CMYK": case "DeviceCMYK": return this.singletons.cmyk; case "CalGray": r_8 = t.fetchIfRef(e[1]); g_1 = r_8.getArray("WhitePoint"); c_1 = r_8.getArray("BlackPoint"); h_1 = r_8.get("Gamma"); return new CalGrayCS(g_1, c_1, h_1); case "CalRGB": r_8 = t.fetchIfRef(e[1]); g_1 = r_8.getArray("WhitePoint"); c_1 = r_8.getArray("BlackPoint"); h_1 = r_8.getArray("Gamma"); var l_1 = r_8.getArray("Matrix"); return new CalRGBCS(g_1, c_1, h_1, l_1); case "ICCBased": var C_1 = t.fetchIfRef(e[1]).dict; n_5 = C_1.get("N"); var Q_1 = C_1.get("Alternate"); if (Q_1) { var e_28 = this._parse(Q_1, t, i, a); if (e_28.numComps === n_5) return e_28; warn("ICCBased color space: Ignoring incorrect /Alternate entry."); } if (1 === n_5) return this.singletons.gray; if (3 === n_5) return this.singletons.rgb; if (4 === n_5) return this.singletons.cmyk; break; case "Pattern": o_2 = e[1] || null; o_2 && (o_2 = this._parse(o_2, t, i, a)); return new PatternCS(o_2); case "I": case "Indexed": o_2 = this._parse(e[1], t, i, a); var E_1 = t.fetchIfRef(e[2]) + 1, u_1 = t.fetchIfRef(e[3]); return new IndexedCS(o_2, E_1, u_1); case "Separation": case "DeviceN": var d_1 = t.fetchIfRef(e[1]); n_5 = Array.isArray(d_1) ? d_1.length : 1; o_2 = this._parse(e[2], t, i, a); var f_1 = a.create(e[3]); return new AlternateCS(n_5, o_2, f_1); case "Lab": r_8 = t.fetchIfRef(e[1]); g_1 = r_8.getArray("WhitePoint"); c_1 = r_8.getArray("BlackPoint"); var p_1 = r_8.getArray("Range"); return new LabCS(g_1, c_1, p_1); default: throw new FormatError("Unimplemented ColorSpace object: ".concat(s_17)); } } throw new FormatError("Unrecognized ColorSpace object: ".concat(e)); }; ColorSpace.isDefaultDecode = function (e, t) { if (!Array.isArray(e)) return !0; if (2 * t !== e.length) { warn("The decode map is not the correct length"); return !0; } for (var t_32 = 0, i_27 = e.length; t_32 < i_27; t_32 += 2) if (0 !== e[t_32] || 1 !== e[t_32 + 1]) return !1; return !0; }; Object.defineProperty(ColorSpace, "singletons", { get: function () { return shadow(this, "singletons", { get gray() { return shadow(this, "gray", new DeviceGrayCS); }, get rgb() { return shadow(this, "rgb", new DeviceRgbCS); }, get cmyk() { return shadow(this, "cmyk", new DeviceCmykCS); } }); }, enumerable: false, configurable: true }); return ColorSpace; }()); var AlternateCS = /** @class */ (function (_super) { tslib_1.__extends(AlternateCS, _super); function AlternateCS(e, t, i) { var _this = _super.call(this, "Alternate", e) || this; _this.base = t; _this.tintFn = i; _this.tmpBuf = new Float32Array(t.numComps); return _this; } AlternateCS.prototype.getRgbItem = function (e, t, i, a) { var s = this.tmpBuf; this.tintFn(e, t, s, 0); this.base.getRgbItem(s, 0, i, a); }; AlternateCS.prototype.getRgbBuffer = function (e, t, i, a, s, r, n) { var o = this.tintFn, g = this.base, c = 1 / ((1 << r) - 1), h = g.numComps, l = g.usesZeroToOneRange, C = (g.isPassthrough(8) || !l) && 0 === n; var Q = C ? s : 0; var E = C ? a : new Uint8ClampedArray(h * i), u = this.numComps, d = new Float32Array(u), f = new Float32Array(h); var p, m; for (p = 0; p < i; p++) { for (m = 0; m < u; m++) d[m] = e[t++] * c; o(d, 0, f, 0); if (l) for (m = 0; m < h; m++) E[Q++] = 255 * f[m]; else { g.getRgbItem(f, 0, E, Q); Q += h; } } C || g.getRgbBuffer(E, 0, i, a, s, 8, n); }; AlternateCS.prototype.getOutputLength = function (e, t) { return this.base.getOutputLength(e * this.base.numComps / this.numComps, t); }; return AlternateCS; }(ColorSpace)); var PatternCS = /** @class */ (function (_super) { tslib_1.__extends(PatternCS, _super); function PatternCS(e) { var _this = _super.call(this, "Pattern", null) || this; _this.base = e; return _this; } PatternCS.prototype.isDefaultDecode = function (e, t) { unreachable("Should not call PatternCS.isDefaultDecode"); }; return PatternCS; }(ColorSpace)); var IndexedCS = /** @class */ (function (_super) { tslib_1.__extends(IndexedCS, _super); function IndexedCS(e, t, i) { var _this = _super.call(this, "Indexed", 1) || this; _this.base = e; _this.highVal = t; var a = e.numComps * t; _this.lookup = new Uint8Array(a); if (i instanceof BaseStream) { var e_29 = i.getBytes(a); _this.lookup.set(e_29); } else { if ("string" != typeof i) throw new FormatError("IndexedCS - unrecognized lookup table: ".concat(i)); for (var e_30 = 0; e_30 < a; ++e_30) _this.lookup[e_30] = 255 & i.charCodeAt(e_30); } return _this; } IndexedCS.prototype.getRgbItem = function (e, t, i, a) { var s = this.base.numComps, r = e[t] * s; this.base.getRgbBuffer(this.lookup, r, 1, i, a, 8, 0); }; IndexedCS.prototype.getRgbBuffer = function (e, t, i, a, s, r, n) { var o = this.base, g = o.numComps, c = o.getOutputLength(g, n), h = this.lookup; for (var r_9 = 0; r_9 < i; ++r_9) { var i_28 = e[t++] * g; o.getRgbBuffer(h, i_28, 1, a, s, 8, n); s += c; } }; IndexedCS.prototype.getOutputLength = function (e, t) { return this.base.getOutputLength(e * this.base.numComps, t); }; IndexedCS.prototype.isDefaultDecode = function (e, t) { if (!Array.isArray(e)) return !0; if (2 !== e.length) { warn("Decode map length is not correct"); return !0; } if (!Number.isInteger(t) || t < 1) { warn("Bits per component is not correct"); return !0; } return 0 === e[0] && e[1] === (1 << t) - 1; }; return IndexedCS; }(ColorSpace)); var DeviceGrayCS = /** @class */ (function (_super) { tslib_1.__extends(DeviceGrayCS, _super); function DeviceGrayCS() { return _super.call(this, "DeviceGray", 1) || this; } DeviceGrayCS.prototype.getRgbItem = function (e, t, i, a) { var s = 255 * e[t]; i[a] = i[a + 1] = i[a + 2] = s; }; DeviceGrayCS.prototype.getRgbBuffer = function (e, t, i, a, s, r, n) { var o = 255 / ((1 << r) - 1); var g = t, c = s; for (var t_33 = 0; t_33 < i; ++t_33) { var t_34 = o * e[g++]; a[c++] = t_34; a[c++] = t_34; a[c++] = t_34; c += n; } }; DeviceGrayCS.prototype.getOutputLength = function (e, t) { return e * (3 + t); }; return DeviceGrayCS; }(ColorSpace)); var DeviceRgbCS = /** @class */ (function (_super) { tslib_1.__extends(DeviceRgbCS, _super); function DeviceRgbCS() { return _super.call(this, "DeviceRGB", 3) || this; } DeviceRgbCS.prototype.getRgbItem = function (e, t, i, a) { i[a] = 255 * e[t]; i[a + 1] = 255 * e[t + 1]; i[a + 2] = 255 * e[t + 2]; }; DeviceRgbCS.prototype.getRgbBuffer = function (e, t, i, a, s, r, n) { if (8 === r && 0 === n) { a.set(e.subarray(t, t + 3 * i), s); return; } var o = 255 / ((1 << r) - 1); var g = t, c = s; for (var t_35 = 0; t_35 < i; ++t_35) { a[c++] = o * e[g++]; a[c++] = o * e[g++]; a[c++] = o * e[g++]; c += n; } }; DeviceRgbCS.prototype.getOutputLength = function (e, t) { return e * (3 + t) / 3 | 0; }; DeviceRgbCS.prototype.isPassthrough = function (e) { return 8 === e; }; return DeviceRgbCS; }(ColorSpace)); var DeviceCmykCS = /** @class */ (function (_super) { tslib_1.__extends(DeviceCmykCS, _super); function DeviceCmykCS() { var _this = _super.call(this, "DeviceCMYK", 4) || this; _DeviceCmykCS_instances.add(_this); return _this; } DeviceCmykCS.prototype.getRgbItem = function (e, t, i, a) { tslib_1.__classPrivateFieldGet(this, _DeviceCmykCS_instances, "m", _DeviceCmykCS_t).call(this, e, t, 1, i, a); }; DeviceCmykCS.prototype.getRgbBuffer = function (e, t, i, a, s, r, n) { var o = 1 / ((1 << r) - 1); for (var r_10 = 0; r_10 < i; r_10++) { tslib_1.__classPrivateFieldGet(this, _DeviceCmykCS_instances, "m", _DeviceCmykCS_t).call(this, e, t, o, a, s); t += 4; s += 3 + n; } }; DeviceCmykCS.prototype.getOutputLength = function (e, t) { return e / 4 * (3 + t) | 0; }; return DeviceCmykCS; }(ColorSpace)); _DeviceCmykCS_instances = new WeakSet(), _DeviceCmykCS_t = function _DeviceCmykCS_t(e, t, i, a, s) { var r = e[t] * i, n = e[t + 1] * i, o = e[t + 2] * i, g = e[t + 3] * i; a[s] = 255 + r * (-4.387332384609988 * r + 54.48615194189176 * n + 18.82290502165302 * o + 212.25662451639585 * g - 285.2331026137004) + n * (1.7149763477362134 * n - 5.6096736904047315 * o + -17.873870861415444 * g - 5.497006427196366) + o * (-2.5217340131683033 * o - 21.248923337353073 * g + 17.5119270841813) + g * (-21.86122147463605 * g - 189.48180835922747); a[s + 1] = 255 + r * (8.841041422036149 * r + 60.118027045597366 * n + 6.871425592049007 * o + 31.159100130055922 * g - 79.2970844816548) + n * (-15.310361306967817 * n + 17.575251261109482 * o + 131.35250912493976 * g - 190.9453302588951) + o * (4.444339102852739 * o + 9.8632861493405 * g - 24.86741582555878) + g * (-20.737325471181034 * g - 187.80453709719578); a[s + 2] = 255 + r * (.8842522430003296 * r + 8.078677503112928 * n + 30.89978309703729 * o - .23883238689178934 * g - 14.183576799673286) + n * (10.49593273432072 * n + 63.02378494754052 * o + 50.606957656360734 * g - 112.23884253719248) + o * (.03296041114873217 * o + 115.60384449646641 * g - 193.58209356861505) + g * (-22.33816807309886 * g - 180.12613974708367); }; var CalGrayCS = /** @class */ (function (_super) { tslib_1.__extends(CalGrayCS, _super); function CalGrayCS(e, t, i) { var _b; var _this = _super.call(this, "CalGray", 1) || this; _CalGrayCS_instances.add(_this); if (!e) throw new FormatError("WhitePoint missing - required for color space CalGray"); _this.XW = e[0], _this.YW = e[1], _this.ZW = e[2]; _b = t || [0, 0, 0], _this.XB = _b[0], _this.YB = _b[1], _this.ZB = _b[2]; _this.G = i || 1; if (_this.XW < 0 || _this.ZW < 0 || 1 !== _this.YW) throw new FormatError("Invalid WhitePoint components for ".concat(_this.name, ", no fallback available")); if (_this.XB < 0 || _this.YB < 0 || _this.ZB < 0) { info("Invalid BlackPoint for ".concat(_this.name, ", falling back to default.")); _this.XB = _this.YB = _this.ZB = 0; } 0 === _this.XB && 0 === _this.YB && 0 === _this.ZB || warn("".concat(_this.name, ", BlackPoint: XB: ").concat(_this.XB, ", YB: ").concat(_this.YB, ", ZB: ").concat(_this.ZB, ", only default values are supported.")); if (_this.G < 1) { info("Invalid Gamma: ".concat(_this.G, " for ").concat(_this.name, ", falling back to default.")); _this.G = 1; } return _this; } CalGrayCS.prototype.getRgbItem = function (e, t, i, a) { tslib_1.__classPrivateFieldGet(this, _CalGrayCS_instances, "m", _CalGrayCS_t).call(this, e, t, i, a, 1); }; CalGrayCS.prototype.getRgbBuffer = function (e, t, i, a, s, r, n) { var o = 1 / ((1 << r) - 1); for (var r_11 = 0; r_11 < i; ++r_11) { tslib_1.__classPrivateFieldGet(this, _CalGrayCS_instances, "m", _CalGrayCS_t).call(this, e, t, a, s, o); t += 1; s += 3 + n; } }; CalGrayCS.prototype.getOutputLength = function (e, t) { return e * (3 + t); }; return CalGrayCS; }(ColorSpace)); _CalGrayCS_instances = new WeakSet(), _CalGrayCS_t = function _CalGrayCS_t(e, t, i, a, s) { var r = Math.pow((e[t] * s), this.G), n = this.YW * r, o = Math.max(295.8 * Math.pow(n, .3333333333333333) - 40.8, 0); i[a] = o; i[a + 1] = o; i[a + 2] = o; }; var CalRGBCS = /** @class */ (function (_super) { tslib_1.__extends(CalRGBCS, _super); function CalRGBCS(e, t, i, a) { var _b, _g; var _this = _super.call(this, "CalRGB", 3) || this; _CalRGBCS_instances.add(_this); if (!e) throw new FormatError("WhitePoint missing - required for color space CalRGB"); var _h = _this.whitePoint = e, s = _h[0], r = _h[1], n = _h[2], _j = _this.blackPoint = t || new Float32Array(3), o = _j[0], g = _j[1], c = _j[2]; _b = i || new Float32Array([1, 1, 1]), _this.GR = _b[0], _this.GG = _b[1], _this.GB = _b[2]; _g = a || new Float32Array([1, 0, 0, 0, 1, 0, 0, 0, 1]), _this.MXA = _g[0], _this.MYA = _g[1], _this.MZA = _g[2], _this.MXB = _g[3], _this.MYB = _g[4], _this.MZB = _g[5], _this.MXC = _g[6], _this.MYC = _g[7], _this.MZC = _g[8]; if (s < 0 || n < 0 || 1 !== r) throw new FormatError("Invalid WhitePoint components for ".concat(_this.name, ", no fallback available")); if (o < 0 || g < 0 || c < 0) { info("Invalid BlackPoint for ".concat(_this.name, " [").concat(o, ", ").concat(g, ", ").concat(c, "], falling back to default.")); _this.blackPoint = new Float32Array(3); } if (_this.GR < 0 || _this.GG < 0 || _this.GB < 0) { info("Invalid Gamma [".concat(_this.GR, ", ").concat(_this.GG, ", ").concat(_this.GB, "] for ").concat(_this.name, ", falling back to default.")); _this.GR = _this.GG = _this.GB = 1; } return _this; } CalRGBCS.prototype.getRgbItem = function (e, t, i, a) { tslib_1.__classPrivateFieldGet(this, _CalRGBCS_instances, "m", _CalRGBCS_t).call(this, e, t, i, a, 1); }; CalRGBCS.prototype.getRgbBuffer = function (e, t, i, a, s, r, n) { var o = 1 / ((1 << r) - 1); for (var r_12 = 0; r_12 < i; ++r_12) { tslib_1.__classPrivateFieldGet(this, _CalRGBCS_instances, "m", _CalRGBCS_t).call(this, e, t, a, s, o); t += 3; s += 3 + n; } }; CalRGBCS.prototype.getOutputLength = function (e, t) { return e * (3 + t) / 3 | 0; }; var _CalRGBCS_instances, _f, _CalRGBCS_i, _CalRGBCS_a, _CalRGBCS_s, _CalRGBCS_r, _CalRGBCS_n, _CalRGBCS_o, _CalRGBCS_g, _CalRGBCS_I, _CalRGBCS_c, _CalRGBCS_h, _CalRGBCS_l, _CalRGBCS_C, _CalRGBCS_B, _CalRGBCS_Q, _CalRGBCS_E, _CalRGBCS_u, _CalRGBCS_d, _CalRGBCS_t; _f = CalRGBCS, _CalRGBCS_instances = new WeakSet(), _CalRGBCS_c = function _CalRGBCS_c(e, t, i) { i[0] = e[0] * t[0] + e[1] * t[1] + e[2] * t[2]; i[1] = e[3] * t[0] + e[4] * t[1] + e[5] * t[2]; i[2] = e[6] * t[0] + e[7] * t[1] + e[8] * t[2]; }, _CalRGBCS_h = function _CalRGBCS_h(e, t, i) { i[0] = 1 * t[0] / e[0]; i[1] = 1 * t[1] / e[1]; i[2] = 1 * t[2] / e[2]; }, _CalRGBCS_l = function _CalRGBCS_l(e, t, i) { i[0] = .95047 * t[0] / e[0]; i[1] = 1 * t[1] / e[1]; i[2] = 1.08883 * t[2] / e[2]; }, _CalRGBCS_C = function _CalRGBCS_C(e) { return e <= .0031308 ? tslib_1.__classPrivateFieldGet(this, _CalRGBCS_instances, "m", _CalRGBCS_B).call(this, 0, 1, 12.92 * e) : e >= .99554525 ? 1 : tslib_1.__classPrivateFieldGet(this, _CalRGBCS_instances, "m", _CalRGBCS_B).call(this, 0, 1, 1.055 * Math.pow(e, (1 / 2.4)) - .055); }, _CalRGBCS_B = function _CalRGBCS_B(e, t, i) { return Math.max(e, Math.min(t, i)); }, _CalRGBCS_Q = function _CalRGBCS_Q(e) { return e < 0 ? -tslib_1.__classPrivateFieldGet(this, _CalRGBCS_instances, "m", _CalRGBCS_Q).call(this, -e) : e > 8 ? Math.pow(((e + 16) / 116), 3) : e * tslib_1.__classPrivateFieldGet(CalRGBCS, _f, "f", _CalRGBCS_I); }, _CalRGBCS_E = function _CalRGBCS_E(e, t, i) { if (0 === e[0] && 0 === e[1] && 0 === e[2]) { i[0] = t[0]; i[1] = t[1]; i[2] = t[2]; return; } var a = tslib_1.__classPrivateFieldGet(this, _CalRGBCS_instances, "m", _CalRGBCS_Q).call(this, 0), s = (1 - a) / (1 - tslib_1.__classPrivateFieldGet(this, _CalRGBCS_instances, "m", _CalRGBCS_Q).call(this, e[0])), r = 1 - s, n = (1 - a) / (1 - tslib_1.__classPrivateFieldGet(this, _CalRGBCS_instances, "m", _CalRGBCS_Q).call(this, e[1])), o = 1 - n, g = (1 - a) / (1 - tslib_1.__classPrivateFieldGet(this, _CalRGBCS_instances, "m", _CalRGBCS_Q).call(this, e[2])), c = 1 - g; i[0] = t[0] * s + r; i[1] = t[1] * n + o; i[2] = t[2] * g + c; }, _CalRGBCS_u = function _CalRGBCS_u(e, t, i) { if (1 === e[0] && 1 === e[2]) { i[0] = t[0]; i[1] = t[1]; i[2] = t[2]; return; } var a = i; tslib_1.__classPrivateFieldGet(this, _CalRGBCS_instances, "m", _CalRGBCS_c).call(this, tslib_1.__classPrivateFieldGet(CalRGBCS, _f, "f", _CalRGBCS_i), t, a); var s = tslib_1.__classPrivateFieldGet(CalRGBCS, _f, "f", _CalRGBCS_n); tslib_1.__classPrivateFieldGet(this, _CalRGBCS_instances, "m", _CalRGBCS_h).call(this, e, a, s); tslib_1.__classPrivateFieldGet(this, _CalRGBCS_instances, "m", _CalRGBCS_c).call(this, tslib_1.__classPrivateFieldGet(CalRGBCS, _f, "f", _CalRGBCS_a), s, i); }, _CalRGBCS_d = function _CalRGBCS_d(e, t, i) { var a = i; tslib_1.__classPrivateFieldGet(this, _CalRGBCS_instances, "m", _CalRGBCS_c).call(this, tslib_1.__classPrivateFieldGet(CalRGBCS, _f, "f", _CalRGBCS_i), t, a); var s = tslib_1.__classPrivateFieldGet(CalRGBCS, _f, "f", _CalRGBCS_n); tslib_1.__classPrivateFieldGet(this, _CalRGBCS_instances, "m", _CalRGBCS_l).call(this, e, a, s); tslib_1.__classPrivateFieldGet(this, _CalRGBCS_instances, "m", _CalRGBCS_c).call(this, tslib_1.__classPrivateFieldGet(CalRGBCS, _f, "f", _CalRGBCS_a), s, i); }, _CalRGBCS_t = function _CalRGBCS_t(e, t, i, a, s) { var r = tslib_1.__classPrivateFieldGet(this, _CalRGBCS_instances, "m", _CalRGBCS_B).call(this, 0, 1, e[t] * s), n = tslib_1.__classPrivateFieldGet(this, _CalRGBCS_instances, "m", _CalRGBCS_B).call(this, 0, 1, e[t + 1] * s), o = tslib_1.__classPrivateFieldGet(this, _CalRGBCS_instances, "m", _CalRGBCS_B).call(this, 0, 1, e[t + 2] * s), g = 1 === r ? 1 : Math.pow(r, this.GR), c = 1 === n ? 1 : Math.pow(n, this.GG), h = 1 === o ? 1 : Math.pow(o, this.GB), l = this.MXA * g + this.MXB * c + this.MXC * h, C = this.MYA * g + this.MYB * c + this.MYC * h, Q = this.MZA * g + this.MZB * c + this.MZC * h, E = tslib_1.__classPrivateFieldGet(CalRGBCS, _f, "f", _CalRGBCS_o); E[0] = l; E[1] = C; E[2] = Q; var u = tslib_1.__classPrivateFieldGet(CalRGBCS, _f, "f", _CalRGBCS_g); tslib_1.__classPrivateFieldGet(this, _CalRGBCS_instances, "m", _CalRGBCS_u).call(this, this.whitePoint, E, u); var d = tslib_1.__classPrivateFieldGet(CalRGBCS, _f, "f", _CalRGBCS_o); tslib_1.__classPrivateFieldGet(this, _CalRGBCS_instances, "m", _CalRGBCS_E).call(this, this.blackPoint, u, d); var f = tslib_1.__classPrivateFieldGet(CalRGBCS, _f, "f", _CalRGBCS_g); tslib_1.__classPrivateFieldGet(this, _CalRGBCS_instances, "m", _CalRGBCS_d).call(this, tslib_1.__classPrivateFieldGet(CalRGBCS, _f, "f", _CalRGBCS_r), d, f); var p = tslib_1.__classPrivateFieldGet(CalRGBCS, _f, "f", _CalRGBCS_o); tslib_1.__classPrivateFieldGet(this, _CalRGBCS_instances, "m", _CalRGBCS_c).call(this, tslib_1.__classPrivateFieldGet(CalRGBCS, _f, "f", _CalRGBCS_s), f, p); i[a] = 255 * tslib_1.__classPrivateFieldGet(this, _CalRGBCS_instances, "m", _CalRGBCS_C).call(this, p[0]); i[a + 1] = 255 * tslib_1.__classPrivateFieldGet(this, _CalRGBCS_instances, "m", _CalRGBCS_C).call(this, p[1]); i[a + 2] = 255 * tslib_1.__classPrivateFieldGet(this, _CalRGBCS_instances, "m", _CalRGBCS_C).call(this, p[2]); }; _CalRGBCS_i = { value: new Float32Array([.8951, .2664, -.1614, -.7502, 1.7135, .0367, .0389, -.0685, 1.0296]) }; _CalRGBCS_a = { value: new Float32Array([.9869929, -.1470543, .1599627, .4323053, .5183603, .0492912, -.0085287, .0400428, .9684867]) }; _CalRGBCS_s = { value: new Float32Array([3.2404542, -1.5371385, -.4985314, -.969266, 1.8760108, .041556, .0556434, -.2040259, 1.0572252]) }; _CalRGBCS_r = { value: new Float32Array([1, 1, 1]) }; _CalRGBCS_n = { value: new Float32Array(3) }; _CalRGBCS_o = { value: new Float32Array(3) }; _CalRGBCS_g = { value: new Float32Array(3) }; _CalRGBCS_I = { value: Math.pow((24 / 116), 3) / 8 }; return CalRGBCS; }(ColorSpace)); var LabCS = /** @class */ (function (_super) { tslib_1.__extends(LabCS, _super); function LabCS(e, t, i) { var _b, _g; var _this = _super.call(this, "Lab", 3) || this; _LabCS_instances.add(_this); if (!e) throw new FormatError("WhitePoint missing - required for color space Lab"); _this.XW = e[0], _this.YW = e[1], _this.ZW = e[2]; _b = i || [-100, 100, -100, 100], _this.amin = _b[0], _this.amax = _b[1], _this.bmin = _b[2], _this.bmax = _b[3]; _g = t || [0, 0, 0], _this.XB = _g[0], _this.YB = _g[1], _this.ZB = _g[2]; if (_this.XW < 0 || _this.ZW < 0 || 1 !== _this.YW) throw new FormatError("Invalid WhitePoint components, no fallback available"); if (_this.XB < 0 || _this.YB < 0 || _this.ZB < 0) { info("Invalid BlackPoint, falling back to default"); _this.XB = _this.YB = _this.ZB = 0; } if (_this.amin > _this.amax || _this.bmin > _this.bmax) { info("Invalid Range, falling back to defaults"); _this.amin = -100; _this.amax = 100; _this.bmin = -100; _this.bmax = 100; } return _this; } LabCS.prototype.getRgbItem = function (e, t, i, a) { tslib_1.__classPrivateFieldGet(this, _LabCS_instances, "m", _LabCS_t).call(this, e, t, !1, i, a); }; LabCS.prototype.getRgbBuffer = function (e, t, i, a, s, r, n) { var o = (1 << r) - 1; for (var r_13 = 0; r_13 < i; r_13++) { tslib_1.__classPrivateFieldGet(this, _LabCS_instances, "m", _LabCS_t).call(this, e, t, o, a, s); t += 3; s += 3 + n; } }; LabCS.prototype.getOutputLength = function (e, t) { return e * (3 + t) / 3 | 0; }; LabCS.prototype.isDefaultDecode = function (e, t) { return !0; }; Object.defineProperty(LabCS.prototype, "usesZeroToOneRange", { get: function () { return shadow(this, "usesZeroToOneRange", !1); }, enumerable: false, configurable: true }); return LabCS; }(ColorSpace)); _LabCS_instances = new WeakSet(), _LabCS_f = function _LabCS_f(e) { return e >= 6 / 29 ? Math.pow(e, 3) : 108 / 841 * (e - 4 / 29); }, _LabCS_p = function _LabCS_p(e, t, i, a) { return i + e * (a - i) / t; }, _LabCS_t = function _LabCS_t(e, t, i, a, s) { var r = e[t], n = e[t + 1], o = e[t + 2]; if (!1 !== i) { r = tslib_1.__classPrivateFieldGet(this, _LabCS_instances, "m", _LabCS_p).call(this, r, i, 0, 100); n = tslib_1.__classPrivateFieldGet(this, _LabCS_instances, "m", _LabCS_p).call(this, n, i, this.amin, this.amax); o = tslib_1.__classPrivateFieldGet(this, _LabCS_instances, "m", _LabCS_p).call(this, o, i, this.bmin, this.bmax); } n > this.amax ? n = this.amax : n < this.amin && (n = this.amin); o > this.bmax ? o = this.bmax : o < this.bmin && (o = this.bmin); var g = (r + 16) / 116, c = g + n / 500, h = g - o / 200, l = this.XW * tslib_1.__classPrivateFieldGet(this, _LabCS_instances, "m", _LabCS_f).call(this, c), C = this.YW * tslib_1.__classPrivateFieldGet(this, _LabCS_instances, "m", _LabCS_f).call(this, g), Q = this.ZW * tslib_1.__classPrivateFieldGet(this, _LabCS_instances, "m", _LabCS_f).call(this, h); var E, u, d; if (this.ZW < 1) { E = 3.1339 * l + -1.617 * C + -.4906 * Q; u = -.9785 * l + 1.916 * C + .0333 * Q; d = .072 * l + -.229 * C + 1.4057 * Q; } else { E = 3.2406 * l + -1.5372 * C + -.4986 * Q; u = -.9689 * l + 1.8758 * C + .0415 * Q; d = .0557 * l + -.204 * C + 1.057 * Q; } a[s] = 255 * Math.sqrt(E); a[s + 1] = 255 * Math.sqrt(u); a[s + 2] = 255 * Math.sqrt(d); }; function hexToInt(e, t) { var i = 0; for (var a_22 = 0; a_22 <= t; a_22++) i = i << 8 | e[a_22]; return i >>> 0; } function hexToStr(e, t) { return 1 === t ? String.fromCharCode(e[0], e[1]) : 3 === t ? String.fromCharCode(e[0], e[1], e[2], e[3]) : String.fromCharCode.apply(String, e.subarray(0, t + 1)); } function addHex(e, t, i) { var a = 0; for (var s_18 = i; s_18 >= 0; s_18--) { a += e[s_18] + t[s_18]; e[s_18] = 255 & a; a >>= 8; } } function incHex(e, t) { var i = 1; for (var a_23 = t; a_23 >= 0 && i > 0; a_23--) { i += e[a_23]; e[a_23] = 255 & i; i >>= 8; } } var kt = 16; var BinaryCMapStream = /** @class */ (function () { function BinaryCMapStream(e) { this.buffer = e; this.pos = 0; this.end = e.length; this.tmpBuf = new Uint8Array(19); } BinaryCMapStream.prototype.readByte = function () { return this.pos >= this.end ? -1 : this.buffer[this.pos++]; }; BinaryCMapStream.prototype.readNumber = function () { var e, t = 0; do { var i_29 = this.readByte(); if (i_29 < 0) throw new FormatError("unexpected EOF in bcmap"); e = !(128 & i_29); t = t << 7 | 127 & i_29; } while (!e); return t; }; BinaryCMapStream.prototype.readSigned = function () { var e = this.readNumber(); return 1 & e ? ~(e >>> 1) : e >>> 1; }; BinaryCMapStream.prototype.readHex = function (e, t) { e.set(this.buffer.subarray(this.pos, this.pos + t + 1)); this.pos += t + 1; }; BinaryCMapStream.prototype.readHexNumber = function (e, t) { var i; var a = this.tmpBuf; var s = 0; do { var e_31 = this.readByte(); if (e_31 < 0) throw new FormatError("unexpected EOF in bcmap"); i = !(128 & e_31); a[s++] = 127 & e_31; } while (!i); var r = t, n = 0, o = 0; for (; r >= 0;) { for (; o < 8 && a.length > 0;) { n |= a[--s] << o; o += 7; } e[r] = 255 & n; r--; n >>= 8; o -= 8; } }; BinaryCMapStream.prototype.readHexSigned = function (e, t) { this.readHexNumber(e, t); var i = 1 & e[t] ? 255 : 0; var a = 0; for (var s_19 = 0; s_19 <= t; s_19++) { a = (1 & a) << 8 | e[s_19]; e[s_19] = a >> 1 ^ i; } }; BinaryCMapStream.prototype.readString = function () { var e = this.readNumber(), t = new Array(e); for (var i_30 = 0; i_30 < e; i_30++) t[i_30] = this.readNumber(); return String.fromCharCode.apply(String, t); }; return BinaryCMapStream; }()); var BinaryCMapReader = /** @class */ (function () { function BinaryCMapReader() { } BinaryCMapReader.prototype.process = function (e, t, i) { return tslib_1.__awaiter(this, void 0, void 0, function () { var a, s, r, n, o, g, c, h, l, C, e_32, i_31, s_20, Q_2, E_2, e_33, e_34, e_35, e_36, e_37, e_38; return tslib_1.__generator(this, function (_b) { a = new BinaryCMapStream(e), s = a.readByte(); t.vertical = !!(1 & s); r = null; n = new Uint8Array(kt), o = new Uint8Array(kt), g = new Uint8Array(kt), c = new Uint8Array(kt), h = new Uint8Array(kt); for (; (C = a.readByte()) >= 0;) { e_32 = C >> 5; if (7 === e_32) { switch (31 & C) { case 0: a.readString(); break; case 1: r = a.readString(); } continue; } i_31 = !!(16 & C), s_20 = 15 & C; if (s_20 + 1 > kt) throw new Error("BinaryCMapReader.process: Invalid dataSize."); Q_2 = 1, E_2 = a.readNumber(); switch (e_32) { case 0: a.readHex(n, s_20); a.readHexNumber(o, s_20); addHex(o, n, s_20); t.addCodespaceRange(s_20 + 1, hexToInt(n, s_20), hexToInt(o, s_20)); for (e_33 = 1; e_33 < E_2; e_33++) { incHex(o, s_20); a.readHexNumber(n, s_20); addHex(n, o, s_20); a.readHexNumber(o, s_20); addHex(o, n, s_20); t.addCodespaceRange(s_20 + 1, hexToInt(n, s_20), hexToInt(o, s_20)); } break; case 1: a.readHex(n, s_20); a.readHexNumber(o, s_20); addHex(o, n, s_20); a.readNumber(); for (e_34 = 1; e_34 < E_2; e_34++) { incHex(o, s_20); a.readHexNumber(n, s_20); addHex(n, o, s_20); a.readHexNumber(o, s_20); addHex(o, n, s_20); a.readNumber(); } break; case 2: a.readHex(g, s_20); l = a.readNumber(); t.mapOne(hexToInt(g, s_20), l); for (e_35 = 1; e_35 < E_2; e_35++) { incHex(g, s_20); if (!i_31) { a.readHexNumber(h, s_20); addHex(g, h, s_20); } l = a.readSigned() + (l + 1); t.mapOne(hexToInt(g, s_20), l); } break; case 3: a.readHex(n, s_20); a.readHexNumber(o, s_20); addHex(o, n, s_20); l = a.readNumber(); t.mapCidRange(hexToInt(n, s_20), hexToInt(o, s_20), l); for (e_36 = 1; e_36 < E_2; e_36++) { incHex(o, s_20); if (i_31) n.set(o); else { a.readHexNumber(n, s_20); addHex(n, o, s_20); } a.readHexNumber(o, s_20); addHex(o, n, s_20); l = a.readNumber(); t.mapCidRange(hexToInt(n, s_20), hexToInt(o, s_20), l); } break; case 4: a.readHex(g, Q_2); a.readHex(c, s_20); t.mapOne(hexToInt(g, Q_2), hexToStr(c, s_20)); for (e_37 = 1; e_37 < E_2; e_37++) { incHex(g, Q_2); if (!i_31) { a.readHexNumber(h, Q_2); addHex(g, h, Q_2); } incHex(c, s_20); a.readHexSigned(h, s_20); addHex(c, h, s_20); t.mapOne(hexToInt(g, Q_2), hexToStr(c, s_20)); } break; case 5: a.readHex(n, Q_2); a.readHexNumber(o, Q_2); addHex(o, n, Q_2); a.readHex(c, s_20); t.mapBfRange(hexToInt(n, Q_2), hexToInt(o, Q_2), hexToStr(c, s_20)); for (e_38 = 1; e_38 < E_2; e_38++) { incHex(o, Q_2); if (i_31) n.set(o); else { a.readHexNumber(n, Q_2); addHex(n, o, Q_2); } a.readHexNumber(o, Q_2); addHex(o, n, Q_2); a.readHex(c, s_20); t.mapBfRange(hexToInt(n, Q_2), hexToInt(o, Q_2), hexToStr(c, s_20)); } break; default: throw new Error("BinaryCMapReader.process - unknown type: ".concat(e_32)); } } return [2 /*return*/, r ? i(r) : t]; }); }); }; return BinaryCMapReader; }()); var Rt = new Uint8Array(0); var DecodeStream = /** @class */ (function (_super) { tslib_1.__extends(DecodeStream, _super); function DecodeStream(e) { var _this = _super.call(this) || this; _this._rawMinBufferLength = e || 0; _this.pos = 0; _this.bufferLength = 0; _this.eof = !1; _this.buffer = Rt; _this.minBufferLength = 512; if (e) for (; _this.minBufferLength < e;) _this.minBufferLength *= 2; return _this; } Object.defineProperty(DecodeStream.prototype, "isEmpty", { get: function () { for (; !this.eof && 0 === this.bufferLength;) this.readBlock(); return 0 === this.bufferLength; }, enumerable: false, configurable: true }); DecodeStream.prototype.ensureBuffer = function (e) { var t = this.buffer; if (e <= t.byteLength) return t; var i = this.minBufferLength; for (; i < e;) i *= 2; var a = new Uint8Array(i); a.set(t); return this.buffer = a; }; DecodeStream.prototype.getByte = function () { var e = this.pos; for (; this.bufferLength <= e;) { if (this.eof) return -1; this.readBlock(); } return this.buffer[this.pos++]; }; DecodeStream.prototype.getBytes = function (e, t) { if (t === void 0) { t = !1; } var i = this.pos; var a; if (e) { this.ensureBuffer(i + e); a = i + e; for (; !this.eof && this.bufferLength < a;) this.readBlock(t); var s_21 = this.bufferLength; a > s_21 && (a = s_21); } else { for (; !this.eof;) this.readBlock(t); a = this.bufferLength; } this.pos = a; return this.buffer.subarray(i, a); }; DecodeStream.prototype.reset = function () { this.pos = 0; }; DecodeStream.prototype.makeSubStream = function (e, t, i) { if (i === void 0) { i = null; } if (void 0 === t) for (; !this.eof;) this.readBlock(); else { var i_32 = e + t; for (; this.bufferLength <= i_32 && !this.eof;) this.readBlock(); } return new Stream(this.buffer, e, t, i); }; DecodeStream.prototype.getBaseStreams = function () { return this.str ? this.str.getBaseStreams() : null; }; return DecodeStream; }(BaseStream)); var StreamsSequenceStream = /** @class */ (function (_super) { tslib_1.__extends(StreamsSequenceStream, _super); function StreamsSequenceStream(e, t) { if (t === void 0) { t = null; } var _this = this; var i = 0; for (var _b = 0, e_39 = e; _b < e_39.length; _b++) { var t_36 = e_39[_b]; i += t_36 instanceof DecodeStream ? t_36._rawMinBufferLength : t_36.length; } _this = _super.call(this, i) || this; _this.streams = e; _this._onError = t; return _this; } StreamsSequenceStream.prototype.readBlock = function () { var _b; var e = this.streams; if (0 === e.length) { this.eof = !0; return; } var t = e.shift(); var i; try { i = t.getBytes(); } catch (e) { if (this._onError) { this._onError(e, (_b = t.dict) === null || _b === void 0 ? void 0 : _b.objId); return; } throw e; } var a = this.bufferLength, s = a + i.length; this.ensureBuffer(s).set(i, a); this.bufferLength = s; }; StreamsSequenceStream.prototype.getBaseStreams = function () { var e = []; for (var _b = 0, _g = this.streams; _b < _g.length; _b++) { var t_37 = _g[_b]; var i_33 = t_37.getBaseStreams(); i_33 && e.push.apply(e, i_33); } return e.length > 0 ? e : null; }; return StreamsSequenceStream; }(DecodeStream)); var Ascii85Stream = /** @class */ (function (_super) { tslib_1.__extends(Ascii85Stream, _super); function Ascii85Stream(e, t) { var _this = this; t && (t *= .8); _this = _super.call(this, t) || this; _this.str = e; _this.dict = e.dict; _this.input = new Uint8Array(5); return _this; } Ascii85Stream.prototype.readBlock = function () { var e = this.str; var t = e.getByte(); for (; isWhiteSpace(t);) t = e.getByte(); if (-1 === t || 126 === t) { this.eof = !0; return; } var i = this.bufferLength; var a, s; if (122 === t) { a = this.ensureBuffer(i + 4); for (s = 0; s < 4; ++s) a[i + s] = 0; this.bufferLength += 4; } else { var r_14 = this.input; r_14[0] = t; for (s = 1; s < 5; ++s) { t = e.getByte(); for (; isWhiteSpace(t);) t = e.getByte(); r_14[s] = t; if (-1 === t || 126 === t) break; } a = this.ensureBuffer(i + s - 1); this.bufferLength += s - 1; if (s < 5) { for (; s < 5; ++s) r_14[s] = 117; this.eof = !0; } var n_6 = 0; for (s = 0; s < 5; ++s) n_6 = 85 * n_6 + (r_14[s] - 33); for (s = 3; s >= 0; --s) { a[i + s] = 255 & n_6; n_6 >>= 8; } } }; return Ascii85Stream; }(DecodeStream)); var AsciiHexStream = /** @class */ (function (_super) { tslib_1.__extends(AsciiHexStream, _super); function AsciiHexStream(e, t) { var _this = this; t && (t *= .5); _this = _super.call(this, t) || this; _this.str = e; _this.dict = e.dict; _this.firstDigit = -1; return _this; } AsciiHexStream.prototype.readBlock = function () { var e = this.str.getBytes(8e3); if (!e.length) { this.eof = !0; return; } var t = e.length + 1 >> 1, i = this.ensureBuffer(this.bufferLength + t); var a = this.bufferLength, s = this.firstDigit; for (var _b = 0, e_40 = e; _b < e_40.length; _b++) { var t_38 = e_40[_b]; var e_41 = void 0; if (t_38 >= 48 && t_38 <= 57) e_41 = 15 & t_38; else { if (!(t_38 >= 65 && t_38 <= 70 || t_38 >= 97 && t_38 <= 102)) { if (62 === t_38) { this.eof = !0; break; } continue; } e_41 = 9 + (15 & t_38); } if (s < 0) s = e_41; else { i[a++] = s << 4 | e_41; s = -1; } } if (s >= 0 && this.eof) { i[a++] = s << 4; s = -1; } this.firstDigit = s; this.bufferLength = a; }; return AsciiHexStream; }(DecodeStream)); var Nt = -1, Gt = [[-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]], xt = [[-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]], Mt = [[-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]], Ut = [[-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]], Lt = [[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]], Jt = [[-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]]; var CCITTFaxDecoder = /** @class */ (function () { function CCITTFaxDecoder(e, t) { if (t === void 0) { t = {}; } var _b; if (!e || "function" != typeof e.next) throw new Error('CCITTFaxDecoder - invalid "source" parameter.'); this.source = e; this.eof = !1; this.encoding = t.K || 0; this.eoline = t.EndOfLine || !1; this.byteAlign = t.EncodedByteAlign || !1; this.columns = t.Columns || 1728; this.rows = t.Rows || 0; this.eoblock = (_b = t.EndOfBlock) !== null && _b !== void 0 ? _b : !0; this.black = t.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; var i; for (; 0 === (i = this._lookBits(12));) this._eatBits(1); 1 === i && this._eatBits(12); if (this.encoding > 0) { this.nextLine2D = !this._lookBits(1); this._eatBits(1); } } CCITTFaxDecoder.prototype.readNextChar = function () { if (this.eof) return -1; var e = this.refLine, t = this.codingLine, i = this.columns; var a, s, r, n, o; if (0 === this.outputBits) { this.rowsDone && (this.eof = !0); if (this.eof) return -1; this.err = !1; var r_15, o_3, g_2; if (this.nextLine2D) { for (n = 0; t[n] < i; ++n) e[n] = t[n]; e[n++] = i; e[n] = i; t[0] = 0; this.codingPos = 0; a = 0; s = 0; for (; t[this.codingPos] < i;) { r_15 = this._getTwoDimCode(); switch (r_15) { case 0: this._addPixels(e[a + 1], s); e[a + 1] < i && (a += 2); break; case 1: r_15 = o_3 = 0; if (s) { do { r_15 += g_2 = this._getBlackCode(); } while (g_2 >= 64); do { o_3 += g_2 = this._getWhiteCode(); } while (g_2 >= 64); } else { do { r_15 += g_2 = this._getWhiteCode(); } while (g_2 >= 64); do { o_3 += g_2 = this._getBlackCode(); } while (g_2 >= 64); } this._addPixels(t[this.codingPos] + r_15, s); t[this.codingPos] < i && this._addPixels(t[this.codingPos] + o_3, 1 ^ s); for (; e[a] <= t[this.codingPos] && e[a] < i;) a += 2; break; case 7: this._addPixels(e[a] + 3, s); s ^= 1; if (t[this.codingPos] < i) { ++a; for (; e[a] <= t[this.codingPos] && e[a] < i;) a += 2; } break; case 5: this._addPixels(e[a] + 2, s); s ^= 1; if (t[this.codingPos] < i) { ++a; for (; e[a] <= t[this.codingPos] && e[a] < i;) a += 2; } break; case 3: this._addPixels(e[a] + 1, s); s ^= 1; if (t[this.codingPos] < i) { ++a; for (; e[a] <= t[this.codingPos] && e[a] < i;) a += 2; } break; case 2: this._addPixels(e[a], s); s ^= 1; if (t[this.codingPos] < i) { ++a; for (; e[a] <= t[this.codingPos] && e[a] < i;) a += 2; } break; case 8: this._addPixelsNeg(e[a] - 3, s); s ^= 1; if (t[this.codingPos] < i) { a > 0 ? --a : ++a; for (; e[a] <= t[this.codingPos] && e[a] < i;) a += 2; } break; case 6: this._addPixelsNeg(e[a] - 2, s); s ^= 1; if (t[this.codingPos] < i) { a > 0 ? --a : ++a; for (; e[a] <= t[this.codingPos] && e[a] < i;) a += 2; } break; case 4: this._addPixelsNeg(e[a] - 1, s); s ^= 1; if (t[this.codingPos] < i) { a > 0 ? --a : ++a; for (; e[a] <= t[this.codingPos] && e[a] < i;) a += 2; } break; case Nt: this._addPixels(i, 0); this.eof = !0; break; default: info("bad 2d code"); this._addPixels(i, 0); this.err = !0; } } } else { t[0] = 0; this.codingPos = 0; s = 0; for (; t[this.codingPos] < i;) { r_15 = 0; if (s) do { r_15 += g_2 = this._getBlackCode(); } while (g_2 >= 64); else do { r_15 += g_2 = this._getWhiteCode(); } while (g_2 >= 64); this._addPixels(t[this.codingPos] + r_15, s); s ^= 1; } } var c_2 = !1; this.byteAlign && (this.inputBits &= -8); if (this.eoblock || this.row !== this.rows - 1) { r_15 = this._lookBits(12); if (this.eoline) for (; r_15 !== Nt && 1 !== r_15;) { this._eatBits(1); r_15 = this._lookBits(12); } else for (; 0 === r_15;) { this._eatBits(1); r_15 = this._lookBits(12); } if (1 === r_15) { this._eatBits(12); c_2 = !0; } else r_15 === Nt && (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 && c_2 && this.byteAlign) { r_15 = this._lookBits(12); if (1 === r_15) { this._eatBits(12); if (this.encoding > 0) { this._lookBits(1); this._eatBits(1); } if (this.encoding >= 0) for (n = 0; n < 4; ++n) { r_15 = this._lookBits(12); 1 !== r_15 && info("bad rtc code: " + r_15); this._eatBits(12); if (this.encoding > 0) { this._lookBits(1); this._eatBits(1); } } this.eof = !0; } } else if (this.err && this.eoline) { for (;;) { r_15 = this._lookBits(13); if (r_15 === Nt) { this.eof = !0; return -1; } if (r_15 >> 1 == 1) break; this._eatBits(1); } this._eatBits(12); if (this.encoding > 0) { this._eatBits(1); this.nextLine2D = !(1 & r_15); } } this.outputBits = t[0] > 0 ? t[this.codingPos = 0] : t[this.codingPos = 1]; this.row++; } if (this.outputBits >= 8) { o = 1 & this.codingPos ? 0 : 255; this.outputBits -= 8; if (0 === this.outputBits && t[this.codingPos] < i) { this.codingPos++; this.outputBits = t[this.codingPos] - t[this.codingPos - 1]; } } else { r = 8; o = 0; do { if ("number" != typeof this.outputBits) throw new FormatError('Invalid /CCITTFaxDecode data, "outputBits" must be a number.'); if (this.outputBits > r) { o <<= r; 1 & this.codingPos || (o |= 255 >> 8 - r); this.outputBits -= r; r = 0; } else { o <<= this.outputBits; 1 & this.codingPos || (o |= 255 >> 8 - this.outputBits); r -= this.outputBits; this.outputBits = 0; if (t[this.codingPos] < i) { this.codingPos++; this.outputBits = t[this.codingPos] - t[this.codingPos - 1]; } else if (r > 0) { o <<= r; r = 0; } } } while (r); } this.black && (o ^= 255); return o; }; CCITTFaxDecoder.prototype._addPixels = function (e, t) { var i = this.codingLine; var a = this.codingPos; if (e > i[a]) { if (e > this.columns) { info("row is wrong length"); this.err = !0; e = this.columns; } 1 & a ^ t && ++a; i[a] = e; } this.codingPos = a; }; CCITTFaxDecoder.prototype._addPixelsNeg = function (e, t) { var i = this.codingLine; var a = this.codingPos; if (e > i[a]) { if (e > this.columns) { info("row is wrong length"); this.err = !0; e = this.columns; } 1 & a ^ t && ++a; i[a] = e; } else if (e < i[a]) { if (e < 0) { info("invalid code"); this.err = !0; e = 0; } for (; a > 0 && e < i[a - 1];) --a; i[a] = e; } this.codingPos = a; }; CCITTFaxDecoder.prototype._findTableCode = function (e, t, i, a) { var s = a || 0; for (var a_24 = e; a_24 <= t; ++a_24) { var e_42 = this._lookBits(a_24); if (e_42 === Nt) return [!0, 1, !1]; a_24 < t && (e_42 <<= t - a_24); if (!s || e_42 >= s) { var t_39 = i[e_42 - s]; if (t_39[0] === a_24) { this._eatBits(a_24); return [!0, t_39[1], !0]; } } } return [!1, 0, !1]; }; CCITTFaxDecoder.prototype._getTwoDimCode = function () { var e, t = 0; if (this.eoblock) { t = this._lookBits(7); e = Gt[t]; if ((e === null || e === void 0 ? void 0 : e[0]) > 0) { this._eatBits(e[0]); return e[1]; } } else { var e_43 = this._findTableCode(1, 7, Gt); if (e_43[0] && e_43[2]) return e_43[1]; } info("Bad two dim code"); return Nt; }; CCITTFaxDecoder.prototype._getWhiteCode = function () { var e, t = 0; if (this.eoblock) { t = this._lookBits(12); if (t === Nt) return 1; e = t >> 5 == 0 ? xt[t] : Mt[t >> 3]; if (e[0] > 0) { this._eatBits(e[0]); return e[1]; } } else { var e_44 = this._findTableCode(1, 9, Mt); if (e_44[0]) return e_44[1]; e_44 = this._findTableCode(11, 12, xt); if (e_44[0]) return e_44[1]; } info("bad white code"); this._eatBits(1); return 1; }; CCITTFaxDecoder.prototype._getBlackCode = function () { var e, t; if (this.eoblock) { e = this._lookBits(13); if (e === Nt) return 1; t = e >> 7 == 0 ? Ut[e] : e >> 9 == 0 && e >> 7 != 0 ? Lt[(e >> 1) - 64] : Jt[e >> 7]; if (t[0] > 0) { this._eatBits(t[0]); return t[1]; } } else { var e_45 = this._findTableCode(2, 6, Jt); if (e_45[0]) return e_45[1]; e_45 = this._findTableCode(7, 12, Lt, 64); if (e_45[0]) return e_45[1]; e_45 = this._findTableCode(10, 13, Ut); if (e_45[0]) return e_45[1]; } info("bad black code"); this._eatBits(1); return 1; }; CCITTFaxDecoder.prototype._lookBits = function (e) { var t; for (; this.inputBits < e;) { if (-1 === (t = this.source.next())) return 0 === this.inputBits ? Nt : this.inputBuf << e - this.inputBits & 65535 >> 16 - e; this.inputBuf = this.inputBuf << 8 | t; this.inputBits += 8; } return this.inputBuf >> this.inputBits - e & 65535 >> 16 - e; }; CCITTFaxDecoder.prototype._eatBits = function (e) { (this.inputBits -= e) < 0 && (this.inputBits = 0); }; return CCITTFaxDecoder; }()); var CCITTFaxStream = /** @class */ (function (_super) { tslib_1.__extends(CCITTFaxStream, _super); function CCITTFaxStream(e, t, i) { var _this = _super.call(this, t) || this; _this.str = e; _this.dict = e.dict; i instanceof Dict || (i = Dict.empty); var a = { next: function () { return e.getByte(); } }; _this.ccittFaxDecoder = new CCITTFaxDecoder(a, { K: i.get("K"), EndOfLine: i.get("EndOfLine"), EncodedByteAlign: i.get("EncodedByteAlign"), Columns: i.get("Columns"), Rows: i.get("Rows"), EndOfBlock: i.get("EndOfBlock"), BlackIs1: i.get("BlackIs1") }); return _this; } CCITTFaxStream.prototype.readBlock = function () { for (; !this.eof;) { var e_46 = this.ccittFaxDecoder.readNextChar(); if (-1 === e_46) { this.eof = !0; return; } this.ensureBuffer(this.bufferLength + 1); this.buffer[this.bufferLength++] = e_46; } }; return CCITTFaxStream; }(DecodeStream)); var Ht = new Int32Array([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]), Yt = 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]), vt = 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]), Kt = [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], Tt = [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]; var FlateStream = /** @class */ (function (_super) { tslib_1.__extends(FlateStream, _super); function FlateStream(e, t) { var _this = _super.call(this, t) || this; _FlateStream_instances.add(_this); _this.str = e; _this.dict = e.dict; var i = e.getByte(), a = e.getByte(); if (-1 === i || -1 === a) throw new FormatError("Invalid header in flate stream: ".concat(i, ", ").concat(a)); if (8 != (15 & i)) throw new FormatError("Unknown compression method in flate stream: ".concat(i, ", ").concat(a)); if (((i << 8) + a) % 31 != 0) throw new FormatError("Bad FCHECK in flate stream: ".concat(i, ", ").concat(a)); if (32 & a) throw new FormatError("FDICT bit set in flate stream: ".concat(i, ", ").concat(a)); _this.codeSize = 0; _this.codeBuf = 0; return _this; } FlateStream.prototype.getBits = function (e) { var t = this.str; var i, a = this.codeSize, s = this.codeBuf; for (; a < e;) { if (-1 === (i = t.getByte())) throw new FormatError("Bad encoding in flate stream"); s |= i << a; a += 8; } i = s & (1 << e) - 1; this.codeBuf = s >> e; this.codeSize = a -= e; return i; }; FlateStream.prototype.getCode = function (e) { var t = this.str, i = e[0], a = e[1]; var s, r = this.codeSize, n = this.codeBuf; for (; r < a && -1 !== (s = t.getByte());) { n |= s << r; r += 8; } var o = i[n & (1 << a) - 1], g = o >> 16, c = 65535 & o; if (g < 1 || r < g) throw new FormatError("Bad encoding in flate stream"); this.codeBuf = n >> g; this.codeSize = r - g; return c; }; FlateStream.prototype.generateHuffmanTable = function (e) { var t = e.length; var i, a = 0; for (i = 0; i < t; ++i) e[i] > a && (a = e[i]); var s = 1 << a, r = new Int32Array(s); for (var n_7 = 1, o_4 = 0, g_3 = 2; n_7 <= a; ++n_7, o_4 <<= 1, g_3 <<= 1) for (var a_25 = 0; a_25 < t; ++a_25) if (e[a_25] === n_7) { var e_47 = 0, t_40 = o_4; for (i = 0; i < n_7; ++i) { e_47 = e_47 << 1 | 1 & t_40; t_40 >>= 1; } for (i = e_47; i < s; i += g_3) r[i] = n_7 << 16 | a_25; ++o_4; } return [r, a]; }; FlateStream.prototype.readBlock = function () { var e, t; var i = this.str; var a, s, r = this.getBits(3); 1 & r && (this.eof = !0); r >>= 1; if (0 === r) { var t_41; if (-1 === (t_41 = i.getByte())) { tslib_1.__classPrivateFieldGet(this, _FlateStream_instances, "m", _FlateStream_m).call(this, "Bad block header in flate stream"); return; } var a_26 = t_41; if (-1 === (t_41 = i.getByte())) { tslib_1.__classPrivateFieldGet(this, _FlateStream_instances, "m", _FlateStream_m).call(this, "Bad block header in flate stream"); return; } a_26 |= t_41 << 8; if (-1 === (t_41 = i.getByte())) { tslib_1.__classPrivateFieldGet(this, _FlateStream_instances, "m", _FlateStream_m).call(this, "Bad block header in flate stream"); return; } var s_22 = t_41; if (-1 === (t_41 = i.getByte())) { tslib_1.__classPrivateFieldGet(this, _FlateStream_instances, "m", _FlateStream_m).call(this, "Bad block header in flate stream"); return; } s_22 |= t_41 << 8; if (s_22 !== (65535 & ~a_26) && (0 !== a_26 || 0 !== s_22)) throw new FormatError("Bad uncompressed block length in flate stream"); this.codeBuf = 0; this.codeSize = 0; var r_16 = this.bufferLength, n_8 = r_16 + a_26; e = this.ensureBuffer(n_8); this.bufferLength = n_8; if (0 === a_26) -1 === i.peekByte() && (this.eof = !0); else { var t_42 = i.getBytes(a_26); e.set(t_42, r_16); t_42.length < a_26 && (this.eof = !0); } return; } if (1 === r) { a = Kt; s = Tt; } else { if (2 !== r) throw new FormatError("Unknown block type in flate stream"); { var e_48 = this.getBits(5) + 257, i_34 = this.getBits(5) + 1, r_17 = this.getBits(4) + 4, n_9 = new Uint8Array(Ht.length); var o_5; for (o_5 = 0; o_5 < r_17; ++o_5) n_9[Ht[o_5]] = this.getBits(3); var g_4 = this.generateHuffmanTable(n_9); t = 0; o_5 = 0; var c_3 = e_48 + i_34, h_2 = new Uint8Array(c_3); var l_2, C_2, Q_3; for (; o_5 < c_3;) { var e_49 = this.getCode(g_4); if (16 === e_49) { l_2 = 2; C_2 = 3; Q_3 = t; } else if (17 === e_49) { l_2 = 3; C_2 = 3; Q_3 = t = 0; } else { if (18 !== e_49) { h_2[o_5++] = t = e_49; continue; } l_2 = 7; C_2 = 11; Q_3 = t = 0; } var i_35 = this.getBits(l_2) + C_2; for (; i_35-- > 0;) h_2[o_5++] = Q_3; } a = this.generateHuffmanTable(h_2.subarray(0, e_48)); s = this.generateHuffmanTable(h_2.subarray(e_48, c_3)); } } e = this.buffer; var n = e ? e.length : 0, o = this.bufferLength; for (;;) { var i_36 = this.getCode(a); if (i_36 < 256) { if (o + 1 >= n) { e = this.ensureBuffer(o + 1); n = e.length; } e[o++] = i_36; continue; } if (256 === i_36) { this.bufferLength = o; return; } i_36 -= 257; i_36 = Yt[i_36]; var r_18 = i_36 >> 16; r_18 > 0 && (r_18 = this.getBits(r_18)); t = (65535 & i_36) + r_18; i_36 = this.getCode(s); i_36 = vt[i_36]; r_18 = i_36 >> 16; r_18 > 0 && (r_18 = this.getBits(r_18)); var g_5 = (65535 & i_36) + r_18; if (o + t >= n) { e = this.ensureBuffer(o + t); n = e.length; } for (var i_37 = 0; i_37 < t; ++i_37, ++o) e[o] = e[o - g_5]; } }; return FlateStream; }(DecodeStream)); _FlateStream_instances = new WeakSet(), _FlateStream_m = function _FlateStream_m(e) { info(e); this.eof = !0; }; var qt = [{ 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 }]; var ArithmeticDecoder = /** @class */ (function () { function ArithmeticDecoder(e, t, i) { this.data = e; this.bp = t; this.dataEnd = i; this.chigh = e[t]; 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; } ArithmeticDecoder.prototype.byteIn = function () { var e = this.data; var t = this.bp; if (255 === e[t]) if (e[t + 1] > 143) { this.clow += 65280; this.ct = 8; } else { t++; this.clow += e[t] << 9; this.ct = 7; this.bp = t; } else { t++; this.clow += t < this.dataEnd ? e[t] << 8 : 65280; this.ct = 8; this.bp = t; } if (this.clow > 65535) { this.chigh += this.clow >> 16; this.clow &= 65535; } }; ArithmeticDecoder.prototype.readBit = function (e, t) { var i = e[t] >> 1, a = 1 & e[t]; var s = qt[i], r = s.qe; var n, o = this.a - r; if (this.chigh < r) if (o < r) { o = r; n = a; i = s.nmps; } else { o = r; n = 1 ^ a; 1 === s.switchFlag && (a = n); i = s.nlps; } else { this.chigh -= r; if (0 != (32768 & o)) { this.a = o; return a; } if (o < r) { n = 1 ^ a; 1 === s.switchFlag && (a = n); i = s.nlps; } else { n = a; i = s.nmps; } } do { 0 === this.ct && this.byteIn(); o <<= 1; this.chigh = this.chigh << 1 & 65535 | this.clow >> 15 & 1; this.clow = this.clow << 1 & 65535; this.ct--; } while (0 == (32768 & o)); this.a = o; e[t] = i << 1 | a; return n; }; return ArithmeticDecoder; }()); var Jbig2Error = /** @class */ (function (_super) { tslib_1.__extends(Jbig2Error, _super); function Jbig2Error(e) { return _super.call(this, e, "Jbig2Error") || this; } return Jbig2Error; }(rt)); var ContextCache = /** @class */ (function () { function ContextCache() { } ContextCache.prototype.getContexts = function (e) { return e in this ? this[e] : this[e] = new Int8Array(65536); }; return ContextCache; }()); var DecodingContext = /** @class */ (function () { function DecodingContext(e, t, i) { this.data = e; this.start = t; this.end = i; } Object.defineProperty(DecodingContext.prototype, "decoder", { get: function () { return shadow(this, "decoder", new ArithmeticDecoder(this.data, this.start, this.end)); }, enumerable: false, configurable: true }); Object.defineProperty(DecodingContext.prototype, "contextCache", { get: function () { return shadow(this, "contextCache", new ContextCache); }, enumerable: false, configurable: true }); return DecodingContext; }()); var Ot = Math.pow(2, 31) - 1, Pt = -(Math.pow(2, 31)); function decodeInteger(e, t, i) { var a = e.getContexts(t); var s = 1; function readBits(e) { var t = 0; for (var r_19 = 0; r_19 < e; r_19++) { var e_50 = i.readBit(a, s); s = s < 256 ? s << 1 | e_50 : 511 & (s << 1 | e_50) | 256; t = t << 1 | e_50; } return t >>> 0; } var r = readBits(1), n = 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); var o; 0 === r ? o = n : n > 0 && (o = -n); return o >= Pt && o <= Ot ? o : null; } function decodeIAID(e, t, i) { var a = e.getContexts("IAID"); var s = 1; for (var e_51 = 0; e_51 < i; e_51++) { s = s << 1 | t.readBit(a, s); } return i < 31 ? s & (1 << i) - 1 : 2147483647 & s; } var Wt = ["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"], Xt = [[{ 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 }]], jt = [{ 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 }] }], Zt = [39717, 1941, 229, 405], Vt = [32, 8]; function decodeBitmap(e, t, i, a, s, r, n, o) { if (e) { return decodeMMRBitmap(new Reader(o.data, o.start, o.end), t, i, !1); } if (0 === a && !r && !s && 4 === n.length && 3 === n[0].x && -1 === n[0].y && -3 === n[1].x && -1 === n[1].y && 2 === n[2].x && -2 === n[2].y && -2 === n[3].x && -2 === n[3].y) return function decodeBitmapTemplate0(e, t, i) { var a = i.decoder, s = i.contextCache.getContexts("GB"), r = []; var n, o, g, c, h, l, C; for (o = 0; o < t; o++) { h = r[o] = new Uint8Array(e); l = o < 1 ? h : r[o - 1]; C = o < 2 ? h : r[o - 2]; n = C[0] << 13 | C[1] << 12 | C[2] << 11 | l[0] << 7 | l[1] << 6 | l[2] << 5 | l[3] << 4; for (g = 0; g < e; g++) { h[g] = c = a.readBit(s, n); n = (31735 & n) << 1 | (g + 3 < e ? C[g + 3] << 11 : 0) | (g + 4 < e ? l[g + 4] << 4 : 0) | c; } } return r; }(t, i, o); var g = !!r, c = Xt[a].concat(n); c.sort((function (e, t) { return e.y - t.y || e.x - t.x; })); var h = c.length, l = new Int8Array(h), C = new Int8Array(h), Q = []; var E, u, d = 0, f = 0, p = 0, m = 0; for (u = 0; u < h; u++) { l[u] = c[u].x; C[u] = c[u].y; f = Math.min(f, c[u].x); p = Math.max(p, c[u].x); m = Math.min(m, c[u].y); u < h - 1 && c[u].y === c[u + 1].y && c[u].x === c[u + 1].x - 1 ? d |= 1 << h - 1 - u : Q.push(u); } var y = Q.length, w = new Int8Array(y), b = new Int8Array(y), D = new Uint16Array(y); for (E = 0; E < y; E++) { u = Q[E]; w[E] = c[u].x; b[E] = c[u].y; D[E] = 1 << h - 1 - u; } var F = -f, S = -m, k = t - p, R = Zt[a]; var N = new Uint8Array(t); var G = [], x = o.decoder, M = o.contextCache.getContexts("GB"); var U, L, J, H, Y, v = 0, K = 0; for (var e_52 = 0; e_52 < i; e_52++) { if (s) { v ^= x.readBit(M, R); if (v) { G.push(N); continue; } } N = new Uint8Array(N); G.push(N); for (U = 0; U < t; U++) { if (g && r[e_52][U]) { N[U] = 0; continue; } if (U >= F && U < k && e_52 >= S) { K = K << 1 & d; for (u = 0; u < y; u++) { L = e_52 + b[u]; J = U + w[u]; H = G[L][J]; if (H) { H = D[u]; K |= H; } } } else { K = 0; Y = h - 1; for (u = 0; u < h; u++, Y--) { J = U + l[u]; if (J >= 0 && J < t) { L = e_52 + C[u]; if (L >= 0) { H = G[L][J]; H && (K |= H << Y); } } } } var i_38 = x.readBit(M, K); N[U] = i_38; } } return G; } function decodeRefinement(e, t, i, a, s, r, n, o, g) { var c = jt[i].coding; 0 === i && (c = c.concat([o[0]])); var h = c.length, l = new Int32Array(h), C = new Int32Array(h); var Q; for (Q = 0; Q < h; Q++) { l[Q] = c[Q].x; C[Q] = c[Q].y; } var E = jt[i].reference; 0 === i && (E = E.concat([o[1]])); var u = E.length, d = new Int32Array(u), f = new Int32Array(u); for (Q = 0; Q < u; Q++) { d[Q] = E[Q].x; f[Q] = E[Q].y; } var p = a[0].length, m = a.length, y = Vt[i], w = [], b = g.decoder, D = g.contextCache.getContexts("GR"); var F = 0; for (var i_39 = 0; i_39 < t; i_39++) { if (n) { F ^= b.readBit(D, y); if (F) throw new Jbig2Error("prediction is not supported"); } var t_43 = new Uint8Array(e); w.push(t_43); for (var n_10 = 0; n_10 < e; n_10++) { var o_6 = void 0, g_6 = void 0, c_4 = 0; for (Q = 0; Q < h; Q++) { o_6 = i_39 + C[Q]; g_6 = n_10 + l[Q]; o_6 < 0 || g_6 < 0 || g_6 >= e ? c_4 <<= 1 : c_4 = c_4 << 1 | w[o_6][g_6]; } for (Q = 0; Q < u; Q++) { o_6 = i_39 + f[Q] - r; g_6 = n_10 + d[Q] - s; o_6 < 0 || o_6 >= m || g_6 < 0 || g_6 >= p ? c_4 <<= 1 : c_4 = c_4 << 1 | a[o_6][g_6]; } var E_3 = b.readBit(D, c_4); t_43[n_10] = E_3; } } return w; } function decodeTextRegion(e, t, i, a, s, r, n, o, g, c, h, l, C, Q, E, u, d, f, p) { if (e && t) throw new Jbig2Error("refinement with Huffman is not supported"); var m = []; var y, w; for (y = 0; y < a; y++) { w = new Uint8Array(i); if (s) for (var e_53 = 0; e_53 < i; e_53++) w[e_53] = s; m.push(w); } var b = d.decoder, D = d.contextCache; var F = e ? -Q.tableDeltaT.decode(p) : -decodeInteger(D, "IADT", b), S = 0; y = 0; for (; y < r;) { F += e ? Q.tableDeltaT.decode(p) : decodeInteger(D, "IADT", b); S += e ? Q.tableFirstS.decode(p) : decodeInteger(D, "IAFS", b); var a_27 = S; for (;;) { var s_23 = 0; n > 1 && (s_23 = e ? p.readBits(f) : decodeInteger(D, "IAIT", b)); var r_20 = n * F + s_23, S_1 = e ? Q.symbolIDTable.decode(p) : decodeIAID(D, b, g), k_1 = t && (e ? p.readBit() : decodeInteger(D, "IARI", b)); var R_1 = o[S_1], N_1 = R_1[0].length, G_1 = R_1.length; if (k_1) { var e_54 = decodeInteger(D, "IARDW", b), t_44 = decodeInteger(D, "IARDH", b); N_1 += e_54; G_1 += t_44; R_1 = decodeRefinement(N_1, G_1, E, R_1, (e_54 >> 1) + decodeInteger(D, "IARDX", b), (t_44 >> 1) + decodeInteger(D, "IARDY", b), !1, u, d); } var x_1 = 0; c ? 1 & l ? x_1 = G_1 - 1 : a_27 += G_1 - 1 : l > 1 ? a_27 += N_1 - 1 : x_1 = N_1 - 1; var M_1 = r_20 - (1 & l ? 0 : G_1 - 1), U_1 = a_27 - (2 & l ? N_1 - 1 : 0); var L_1 = void 0, J_1 = void 0, H_1 = void 0; if (c) for (L_1 = 0; L_1 < G_1; L_1++) { w = m[U_1 + L_1]; if (!w) continue; H_1 = R_1[L_1]; var e_55 = Math.min(i - M_1, N_1); switch (C) { case 0: for (J_1 = 0; J_1 < e_55; J_1++) w[M_1 + J_1] |= H_1[J_1]; break; case 2: for (J_1 = 0; J_1 < e_55; J_1++) w[M_1 + J_1] ^= H_1[J_1]; break; default: throw new Jbig2Error("operator ".concat(C, " is not supported")); } } else for (J_1 = 0; J_1 < G_1; J_1++) { w = m[M_1 + J_1]; if (w) { H_1 = R_1[J_1]; switch (C) { case 0: for (L_1 = 0; L_1 < N_1; L_1++) w[U_1 + L_1] |= H_1[L_1]; break; case 2: for (L_1 = 0; L_1 < N_1; L_1++) w[U_1 + L_1] ^= H_1[L_1]; break; default: throw new Jbig2Error("operator ".concat(C, " is not supported")); } } } y++; var Y_1 = e ? Q.tableDeltaS.decode(p) : decodeInteger(D, "IADS", b); if (null === Y_1) break; a_27 += x_1 + Y_1 + h; } } return m; } function readSegmentHeader(e, t) { var i = {}; i.number = readUint32(e, t); var a = e[t + 4], s = 63 & a; if (!Wt[s]) throw new Jbig2Error("invalid segment type: " + s); i.type = s; i.typeName = Wt[s]; i.deferredNonRetain = !!(128 & a); var r = !!(64 & a), n = e[t + 5]; var o = n >> 5 & 7; var g = [31 & n]; var c = t + 6; if (7 === n) { o = 536870911 & readUint32(e, c - 1); c += 3; var t_45 = o + 7 >> 3; g[0] = e[c++]; for (; --t_45 > 0;) g.push(e[c++]); } else if (5 === n || 6 === n) throw new Jbig2Error("invalid referred-to flags"); i.retainBits = g; var h = 4; i.number <= 256 ? h = 1 : i.number <= 65536 && (h = 2); var l = []; var C, Q; for (C = 0; C < o; C++) { var t_46 = void 0; t_46 = 1 === h ? e[c] : 2 === h ? readUint16(e, c) : readUint32(e, c); l.push(t_46); c += h; } i.referredTo = l; if (r) { i.pageAssociation = readUint32(e, c); c += 4; } else i.pageAssociation = e[c++]; i.length = readUint32(e, c); c += 4; if (4294967295 === i.length) { if (38 !== s) throw new Jbig2Error("invalid unknown segment length"); { var t_47 = readRegionSegmentInformation(e, c), a_28 = !!(1 & e[c + zt]), s_24 = 6, r_21 = new Uint8Array(s_24); if (!a_28) { r_21[0] = 255; r_21[1] = 172; } r_21[2] = t_47.height >>> 24 & 255; r_21[3] = t_47.height >> 16 & 255; r_21[4] = t_47.height >> 8 & 255; r_21[5] = 255 & t_47.height; for (C = c, Q = e.length; C < Q; C++) { var t_48 = 0; for (; t_48 < s_24 && r_21[t_48] === e[C + t_48];) t_48++; if (t_48 === s_24) { i.length = C + s_24; break; } } if (4294967295 === i.length) throw new Jbig2Error("segment end was not found"); } } i.headerEnd = c; return i; } function readSegments(e, t, i, a) { var s = []; var r = i; for (; r < a;) { var i_40 = readSegmentHeader(t, r); r = i_40.headerEnd; var a_29 = { header: i_40, data: t }; if (!e.randomAccess) { a_29.start = r; r += i_40.length; a_29.end = r; } s.push(a_29); if (51 === i_40.type) break; } if (e.randomAccess) for (var e_56 = 0, t_49 = s.length; e_56 < t_49; e_56++) { s[e_56].start = r; r += s[e_56].header.length; s[e_56].end = r; } return s; } function readRegionSegmentInformation(e, t) { return { width: readUint32(e, t), height: readUint32(e, t + 4), x: readUint32(e, t + 8), y: readUint32(e, t + 12), combinationOperator: 7 & e[t + 16] }; } var zt = 17; function processSegment(e, t) { var i = e.header, a = e.data, s = e.end; var r, n, o, g, c = e.start; switch (i.type) { case 0: var e_57 = {}, t_50 = readUint16(a, c); e_57.huffman = !!(1 & t_50); e_57.refinement = !!(2 & t_50); e_57.huffmanDHSelector = t_50 >> 2 & 3; e_57.huffmanDWSelector = t_50 >> 4 & 3; e_57.bitmapSizeSelector = t_50 >> 6 & 1; e_57.aggregationInstancesSelector = t_50 >> 7 & 1; e_57.bitmapCodingContextUsed = !!(256 & t_50); e_57.bitmapCodingContextRetained = !!(512 & t_50); e_57.template = t_50 >> 10 & 3; e_57.refinementTemplate = t_50 >> 12 & 1; c += 2; if (!e_57.huffman) { g = 0 === e_57.template ? 4 : 1; n = []; for (o = 0; o < g; o++) { n.push({ x: readInt8(a, c), y: readInt8(a, c + 1) }); c += 2; } e_57.at = n; } if (e_57.refinement && !e_57.refinementTemplate) { n = []; for (o = 0; o < 2; o++) { n.push({ x: readInt8(a, c), y: readInt8(a, c + 1) }); c += 2; } e_57.refinementAt = n; } e_57.numberOfExportedSymbols = readUint32(a, c); c += 4; e_57.numberOfNewSymbols = readUint32(a, c); c += 4; r = [e_57, i.number, i.referredTo, a, c, s]; break; case 6: case 7: var h_3 = {}; h_3.info = readRegionSegmentInformation(a, c); c += zt; var l_3 = readUint16(a, c); c += 2; h_3.huffman = !!(1 & l_3); h_3.refinement = !!(2 & l_3); h_3.logStripSize = l_3 >> 2 & 3; h_3.stripSize = 1 << h_3.logStripSize; h_3.referenceCorner = l_3 >> 4 & 3; h_3.transposed = !!(64 & l_3); h_3.combinationOperator = l_3 >> 7 & 3; h_3.defaultPixelValue = l_3 >> 9 & 1; h_3.dsOffset = l_3 << 17 >> 27; h_3.refinementTemplate = l_3 >> 15 & 1; if (h_3.huffman) { var e_58 = readUint16(a, c); c += 2; h_3.huffmanFS = 3 & e_58; h_3.huffmanDS = e_58 >> 2 & 3; h_3.huffmanDT = e_58 >> 4 & 3; h_3.huffmanRefinementDW = e_58 >> 6 & 3; h_3.huffmanRefinementDH = e_58 >> 8 & 3; h_3.huffmanRefinementDX = e_58 >> 10 & 3; h_3.huffmanRefinementDY = e_58 >> 12 & 3; h_3.huffmanRefinementSizeSelector = !!(16384 & e_58); } if (h_3.refinement && !h_3.refinementTemplate) { n = []; for (o = 0; o < 2; o++) { n.push({ x: readInt8(a, c), y: readInt8(a, c + 1) }); c += 2; } h_3.refinementAt = n; } h_3.numberOfSymbolInstances = readUint32(a, c); c += 4; r = [h_3, i.referredTo, a, c, s]; break; case 16: var C_3 = {}, Q_4 = a[c++]; C_3.mmr = !!(1 & Q_4); C_3.template = Q_4 >> 1 & 3; C_3.patternWidth = a[c++]; C_3.patternHeight = a[c++]; C_3.maxPatternIndex = readUint32(a, c); c += 4; r = [C_3, i.number, a, c, s]; break; case 22: case 23: var E_4 = {}; E_4.info = readRegionSegmentInformation(a, c); c += zt; var u_2 = a[c++]; E_4.mmr = !!(1 & u_2); E_4.template = u_2 >> 1 & 3; E_4.enableSkip = !!(8 & u_2); E_4.combinationOperator = u_2 >> 4 & 7; E_4.defaultPixelValue = u_2 >> 7 & 1; E_4.gridWidth = readUint32(a, c); c += 4; E_4.gridHeight = readUint32(a, c); c += 4; E_4.gridOffsetX = 4294967295 & readUint32(a, c); c += 4; E_4.gridOffsetY = 4294967295 & readUint32(a, c); c += 4; E_4.gridVectorX = readUint16(a, c); c += 2; E_4.gridVectorY = readUint16(a, c); c += 2; r = [E_4, i.referredTo, a, c, s]; break; case 38: case 39: var d_2 = {}; d_2.info = readRegionSegmentInformation(a, c); c += zt; var f_2 = a[c++]; d_2.mmr = !!(1 & f_2); d_2.template = f_2 >> 1 & 3; d_2.prediction = !!(8 & f_2); if (!d_2.mmr) { g = 0 === d_2.template ? 4 : 1; n = []; for (o = 0; o < g; o++) { n.push({ x: readInt8(a, c), y: readInt8(a, c + 1) }); c += 2; } d_2.at = n; } r = [d_2, a, c, s]; break; case 48: var p_2 = { width: readUint32(a, c), height: readUint32(a, c + 4), resolutionX: readUint32(a, c + 8), resolutionY: readUint32(a, c + 12) }; 4294967295 === p_2.height && delete p_2.height; var m_1 = a[c + 16]; readUint16(a, c + 17); p_2.lossless = !!(1 & m_1); p_2.refinement = !!(2 & m_1); p_2.defaultPixelValue = m_1 >> 2 & 1; p_2.combinationOperator = m_1 >> 3 & 3; p_2.requiresBuffer = !!(32 & m_1); p_2.combinationOperatorOverride = !!(64 & m_1); r = [p_2]; break; case 49: case 50: case 51: case 62: break; case 53: r = [i.number, a, c, s]; break; default: throw new Jbig2Error("segment type ".concat(i.typeName, "(").concat(i.type, ") is not implemented")); } var h = "on" + i.typeName; h in t && t[h].apply(t, r); } function processSegments(e, t) { for (var i_41 = 0, a_30 = e.length; i_41 < a_30; i_41++) processSegment(e[i_41], t); } var SimpleSegmentVisitor = /** @class */ (function () { function SimpleSegmentVisitor() { } SimpleSegmentVisitor.prototype.onPageInformation = function (e) { this.currentPageInfo = e; var t = e.width + 7 >> 3, i = new Uint8ClampedArray(t * e.height); e.defaultPixelValue && i.fill(255); this.buffer = i; }; SimpleSegmentVisitor.prototype.drawBitmap = function (e, t) { var i = this.currentPageInfo, a = e.width, s = e.height, r = i.width + 7 >> 3, n = i.combinationOperatorOverride ? e.combinationOperator : i.combinationOperator, o = this.buffer, g = 128 >> (7 & e.x); var c, h, l, C, Q = e.y * r + (e.x >> 3); switch (n) { case 0: for (c = 0; c < s; c++) { l = g; C = Q; for (h = 0; h < a; h++) { t[c][h] && (o[C] |= l); l >>= 1; if (!l) { l = 128; C++; } } Q += r; } break; case 2: for (c = 0; c < s; c++) { l = g; C = Q; for (h = 0; h < a; h++) { t[c][h] && (o[C] ^= l); l >>= 1; if (!l) { l = 128; C++; } } Q += r; } break; default: throw new Jbig2Error("operator ".concat(n, " is not supported")); } }; SimpleSegmentVisitor.prototype.onImmediateGenericRegion = function (e, t, i, a) { var s = e.info, r = new DecodingContext(t, i, a), n = decodeBitmap(e.mmr, s.width, s.height, e.template, e.prediction, null, e.at, r); this.drawBitmap(s, n); }; SimpleSegmentVisitor.prototype.onImmediateLosslessGenericRegion = function () { this.onImmediateGenericRegion.apply(this, arguments); }; SimpleSegmentVisitor.prototype.onSymbolDictionary = function (e, t, i, a, s, r) { var n, o; if (e.huffman) { n = function getSymbolDictionaryHuffmanTables(e, t, i) { var a, s, r, n, o = 0; switch (e.huffmanDHSelector) { case 0: case 1: a = getStandardTable(e.huffmanDHSelector + 4); break; case 3: a = getCustomHuffmanTable(o, t, i); o++; break; default: throw new Jbig2Error("invalid Huffman DH selector"); } switch (e.huffmanDWSelector) { case 0: case 1: s = getStandardTable(e.huffmanDWSelector + 2); break; case 3: s = getCustomHuffmanTable(o, t, i); o++; break; default: throw new Jbig2Error("invalid Huffman DW selector"); } if (e.bitmapSizeSelector) { r = getCustomHuffmanTable(o, t, i); o++; } else r = getStandardTable(1); n = e.aggregationInstancesSelector ? getCustomHuffmanTable(o, t, i) : getStandardTable(1); return { tableDeltaHeight: a, tableDeltaWidth: s, tableBitmapSize: r, tableAggregateInstances: n }; }(e, i, this.customTables); o = new Reader(a, s, r); } var g = this.symbols; g || (this.symbols = g = {}); var c = []; for (var _b = 0, i_42 = i; _b < i_42.length; _b++) { var e_59 = i_42[_b]; var t_51 = g[e_59]; t_51 && c.push.apply(c, t_51); } var h = new DecodingContext(a, s, r); g[t] = function decodeSymbolDictionary(e, t, i, a, s, r, n, o, g, c, h, l) { if (e && t) throw new Jbig2Error("symbol refinement with Huffman is not supported"); var C = []; var Q = 0, E = log2(i.length + a); var u = h.decoder, d = h.contextCache; var f, p; if (e) { f = getStandardTable(1); p = []; E = Math.max(E, 1); } for (; C.length < a;) { Q += e ? r.tableDeltaHeight.decode(l) : decodeInteger(d, "IADH", u); var a_31 = 0, s_25 = 0; var f_3 = e ? p.length : 0; for (;;) { var f_4 = e ? r.tableDeltaWidth.decode(l) : decodeInteger(d, "IADW", u); if (null === f_4) break; a_31 += f_4; s_25 += a_31; var m_2 = void 0; if (t) { var s_26 = decodeInteger(d, "IAAI", u); if (s_26 > 1) m_2 = decodeTextRegion(e, t, a_31, Q, 0, s_26, 1, i.concat(C), E, 0, 0, 1, 0, r, g, c, h, 0, l); else { var e_60 = decodeIAID(d, u, E), t_52 = decodeInteger(d, "IARDX", u), s_27 = decodeInteger(d, "IARDY", u); m_2 = decodeRefinement(a_31, Q, g, e_60 < i.length ? i[e_60] : C[e_60 - i.length], t_52, s_27, !1, c, h); } C.push(m_2); } else if (e) p.push(a_31); else { m_2 = decodeBitmap(!1, a_31, Q, n, !1, null, o, h); C.push(m_2); } } if (e && !t) { var e_61 = r.tableBitmapSize.decode(l); l.byteAlign(); var t_53 = void 0; if (0 === e_61) t_53 = readUncompressedBitmap(l, s_25, Q); else { var i_43 = l.end, a_32 = l.position + e_61; l.end = a_32; t_53 = decodeMMRBitmap(l, s_25, Q, !1); l.end = i_43; l.position = a_32; } var i_44 = p.length; if (f_3 === i_44 - 1) C.push(t_53); else { var e_62 = void 0, a_33 = void 0, s_28 = void 0, r_22 = void 0, n_11 = void 0, o_7 = 0; for (e_62 = f_3; e_62 < i_44; e_62++) { r_22 = p[e_62]; s_28 = o_7 + r_22; n_11 = []; for (a_33 = 0; a_33 < Q; a_33++) n_11.push(t_53[a_33].subarray(o_7, s_28)); C.push(n_11); o_7 = s_28; } } } } var m = [], y = []; var w, b, D = !1; var F = i.length + a; for (; y.length < F;) { var t_54 = e ? f.decode(l) : decodeInteger(d, "IAEX", u); for (; t_54--;) y.push(D); D = !D; } for (w = 0, b = i.length; w < b; w++) y[w] && m.push(i[w]); for (var e_63 = 0; e_63 < a; w++, e_63++) y[w] && m.push(C[e_63]); return m; }(e.huffman, e.refinement, c, e.numberOfNewSymbols, e.numberOfExportedSymbols, n, e.template, e.at, e.refinementTemplate, e.refinementAt, h, o); }; SimpleSegmentVisitor.prototype.onImmediateTextRegion = function (e, t, i, a, s) { var r = e.info; var n, o; var g = this.symbols, c = []; for (var _b = 0, t_55 = t; _b < t_55.length; _b++) { var e_64 = t_55[_b]; var t_56 = g[e_64]; t_56 && c.push.apply(c, t_56); } var h = log2(c.length); if (e.huffman) { o = new Reader(i, a, s); n = function getTextRegionHuffmanTables(e, t, i, a, s) { var r = []; for (var e_65 = 0; e_65 <= 34; e_65++) { var t_57 = s.readBits(4); r.push(new HuffmanLine([e_65, t_57, 0, 0])); } var n = new HuffmanTable(r, !1); r.length = 0; for (var e_66 = 0; e_66 < a;) { var t_58 = n.decode(s); if (t_58 >= 32) { var i_45 = void 0, a_34 = void 0, n_12 = void 0; switch (t_58) { case 32: if (0 === e_66) throw new Jbig2Error("no previous value in symbol ID table"); a_34 = s.readBits(2) + 3; i_45 = r[e_66 - 1].prefixLength; break; case 33: a_34 = s.readBits(3) + 3; i_45 = 0; break; case 34: a_34 = s.readBits(7) + 11; i_45 = 0; break; default: throw new Jbig2Error("invalid code length in symbol ID table"); } for (n_12 = 0; n_12 < a_34; n_12++) { r.push(new HuffmanLine([e_66, i_45, 0, 0])); e_66++; } } else { r.push(new HuffmanLine([e_66, t_58, 0, 0])); e_66++; } } s.byteAlign(); var o = new HuffmanTable(r, !1); var g, c, h, l = 0; switch (e.huffmanFS) { case 0: case 1: g = getStandardTable(e.huffmanFS + 6); break; case 3: g = getCustomHuffmanTable(l, t, i); l++; break; default: throw new Jbig2Error("invalid Huffman FS selector"); } switch (e.huffmanDS) { case 0: case 1: case 2: c = getStandardTable(e.huffmanDS + 8); break; case 3: c = getCustomHuffmanTable(l, t, i); l++; break; default: throw new Jbig2Error("invalid Huffman DS selector"); } switch (e.huffmanDT) { case 0: case 1: case 2: h = getStandardTable(e.huffmanDT + 11); break; case 3: h = getCustomHuffmanTable(l, t, i); l++; break; default: throw new Jbig2Error("invalid Huffman DT selector"); } if (e.refinement) throw new Jbig2Error("refinement with Huffman is not supported"); return { symbolIDTable: o, tableFirstS: g, tableDeltaS: c, tableDeltaT: h }; }(e, t, this.customTables, c.length, o); } var l = new DecodingContext(i, a, s), C = decodeTextRegion(e.huffman, e.refinement, r.width, r.height, e.defaultPixelValue, e.numberOfSymbolInstances, e.stripSize, c, h, e.transposed, e.dsOffset, e.referenceCorner, e.combinationOperator, n, e.refinementTemplate, e.refinementAt, l, e.logStripSize, o); this.drawBitmap(r, C); }; SimpleSegmentVisitor.prototype.onImmediateLosslessTextRegion = function () { this.onImmediateTextRegion.apply(this, arguments); }; SimpleSegmentVisitor.prototype.onPatternDictionary = function (e, t, i, a, s) { var r = this.patterns; r || (this.patterns = r = {}); var n = new DecodingContext(i, a, s); r[t] = function decodePatternDictionary(e, t, i, a, s, r) { var n = []; if (!e) { n.push({ x: -t, y: 0 }); 0 === s && n.push({ x: -3, y: -1 }, { x: 2, y: -2 }, { x: -2, y: -2 }); } var o = decodeBitmap(e, (a + 1) * t, i, s, !1, null, n, r), g = []; for (var e_67 = 0; e_67 <= a; e_67++) { var a_35 = [], s_29 = t * e_67, r_23 = s_29 + t; for (var e_68 = 0; e_68 < i; e_68++) a_35.push(o[e_68].subarray(s_29, r_23)); g.push(a_35); } return g; }(e.mmr, e.patternWidth, e.patternHeight, e.maxPatternIndex, e.template, n); }; SimpleSegmentVisitor.prototype.onImmediateHalftoneRegion = function (e, t, i, a, s) { var r = this.patterns[t[0]], n = e.info, o = new DecodingContext(i, a, s), g = function decodeHalftoneRegion(e, t, i, a, s, r, n, o, g, c, h, l, C, Q, E) { if (n) throw new Jbig2Error("skip is not supported"); if (0 !== o) throw new Jbig2Error("operator \"".concat(o, "\" is not supported in halftone region")); var u = []; var d, f, p; for (d = 0; d < s; d++) { p = new Uint8Array(a); if (r) for (f = 0; f < a; f++) p[f] = r; u.push(p); } var m = t.length, y = t[0], w = y[0].length, b = y.length, D = log2(m), F = []; if (!e) { F.push({ x: i <= 1 ? 3 : 2, y: -1 }); 0 === i && F.push({ x: -3, y: -1 }, { x: 2, y: -2 }, { x: -2, y: -2 }); } var S = []; var k, R, N, G, x, M, U, L, J, H, Y; e && (k = new Reader(E.data, E.start, E.end)); for (d = D - 1; d >= 0; d--) { R = e ? decodeMMRBitmap(k, g, c, !0) : decodeBitmap(!1, g, c, i, !1, null, F, E); S[d] = R; } for (N = 0; N < c; N++) for (G = 0; G < g; G++) { x = 0; M = 0; for (f = D - 1; f >= 0; f--) { x ^= S[f][N][G]; M |= x << f; } U = t[M]; L = h + N * Q + G * C >> 8; J = l + N * C - G * Q >> 8; if (L >= 0 && L + w <= a && J >= 0 && J + b <= s) for (d = 0; d < b; d++) { Y = u[J + d]; H = U[d]; for (f = 0; f < w; f++) Y[L + f] |= H[f]; } else { var e_69 = void 0, t_59 = void 0; for (d = 0; d < b; d++) { t_59 = J + d; if (!(t_59 < 0 || t_59 >= s)) { Y = u[t_59]; H = U[d]; for (f = 0; f < w; f++) { e_69 = L + f; e_69 >= 0 && e_69 < a && (Y[e_69] |= H[f]); } } } } } return u; }(e.mmr, r, e.template, n.width, n.height, e.defaultPixelValue, e.enableSkip, e.combinationOperator, e.gridWidth, e.gridHeight, e.gridOffsetX, e.gridOffsetY, e.gridVectorX, e.gridVectorY, o); this.drawBitmap(n, g); }; SimpleSegmentVisitor.prototype.onImmediateLosslessHalftoneRegion = function () { this.onImmediateHalftoneRegion.apply(this, arguments); }; SimpleSegmentVisitor.prototype.onTables = function (e, t, i, a) { var s = this.customTables; s || (this.customTables = s = {}); s[e] = function decodeTablesSegment(e, t, i) { var a = e[t], s = 4294967295 & readUint32(e, t + 1), r = 4294967295 & readUint32(e, t + 5), n = new Reader(e, t + 9, i), o = 1 + (a >> 1 & 7), g = 1 + (a >> 4 & 7), c = []; var h, l, C = s; do { h = n.readBits(o); l = n.readBits(g); c.push(new HuffmanLine([C, h, l, 0])); C += 1 << l; } while (C < r); h = n.readBits(o); c.push(new HuffmanLine([s - 1, h, 32, 0, "lower"])); h = n.readBits(o); c.push(new HuffmanLine([r, h, 32, 0])); if (1 & a) { h = n.readBits(o); c.push(new HuffmanLine([h, 0])); } return new HuffmanTable(c, !1); }(t, i, a); }; return SimpleSegmentVisitor; }()); var HuffmanLine = /** @class */ (function () { function HuffmanLine(e) { if (2 === e.length) { this.isOOB = !0; this.rangeLow = 0; this.prefixLength = e[0]; this.rangeLength = 0; this.prefixCode = e[1]; this.isLowerRange = !1; } else { this.isOOB = !1; this.rangeLow = e[0]; this.prefixLength = e[1]; this.rangeLength = e[2]; this.prefixCode = e[3]; this.isLowerRange = "lower" === e[4]; } } return HuffmanLine; }()); var HuffmanTreeNode = /** @class */ (function () { function HuffmanTreeNode(e) { this.children = []; if (e) { this.isLeaf = !0; this.rangeLength = e.rangeLength; this.rangeLow = e.rangeLow; this.isLowerRange = e.isLowerRange; this.isOOB = e.isOOB; } else this.isLeaf = !1; } HuffmanTreeNode.prototype.buildTree = function (e, t) { var i = e.prefixCode >> t & 1; if (t <= 0) this.children[i] = new HuffmanTreeNode(e); else { var a_36 = this.children[i]; a_36 || (this.children[i] = a_36 = new HuffmanTreeNode(null)); a_36.buildTree(e, t - 1); } }; HuffmanTreeNode.prototype.decodeNode = function (e) { if (this.isLeaf) { if (this.isOOB) return null; var t_60 = e.readBits(this.rangeLength); return this.rangeLow + (this.isLowerRange ? -t_60 : t_60); } var t = this.children[e.readBit()]; if (!t) throw new Jbig2Error("invalid Huffman data"); return t.decodeNode(e); }; return HuffmanTreeNode; }()); var HuffmanTable = /** @class */ (function () { function HuffmanTable(e, t) { t || this.assignPrefixCodes(e); this.rootNode = new HuffmanTreeNode(null); for (var t_61 = 0, i_46 = e.length; t_61 < i_46; t_61++) { var i_47 = e[t_61]; i_47.prefixLength > 0 && this.rootNode.buildTree(i_47, i_47.prefixLength - 1); } } HuffmanTable.prototype.decode = function (e) { return this.rootNode.decodeNode(e); }; HuffmanTable.prototype.assignPrefixCodes = function (e) { var t = e.length; var i = 0; for (var a_37 = 0; a_37 < t; a_37++) i = Math.max(i, e[a_37].prefixLength); var a = new Uint32Array(i + 1); for (var i_48 = 0; i_48 < t; i_48++) a[e[i_48].prefixLength]++; var s, r, n, o = 1, g = 0; a[0] = 0; for (; o <= i;) { g = g + a[o - 1] << 1; s = g; r = 0; for (; r < t;) { n = e[r]; if (n.prefixLength === o) { n.prefixCode = s; s++; } r++; } o++; } }; return HuffmanTable; }()); var _t = {}; function getStandardTable(e) { var t, i = _t[e]; if (i) return i; switch (e) { case 1: t = [[0, 1, 4, 0], [16, 2, 8, 2], [272, 3, 16, 6], [65808, 3, 32, 7]]; break; case 2: t = [[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: t = [[-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: t = [[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: t = [[-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: t = [[-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: t = [[-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: t = [[-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: t = [[-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: t = [[-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: t = [[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: t = [[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: t = [[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: t = [[-2, 3, 0, 4], [-1, 3, 0, 5], [0, 1, 0, 0], [1, 3, 0, 6], [2, 3, 0, 7]]; break; case 15: t = [[-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 Jbig2Error("standard table B.".concat(e, " does not exist")); } for (var e_70 = 0, i_49 = t.length; e_70 < i_49; e_70++) t[e_70] = new HuffmanLine(t[e_70]); i = new HuffmanTable(t, !0); _t[e] = i; return i; } var Reader = /** @class */ (function () { function Reader(e, t, i) { this.data = e; this.start = t; this.end = i; this.position = t; this.shift = -1; this.currentByte = 0; } Reader.prototype.readBit = function () { if (this.shift < 0) { if (this.position >= this.end) throw new Jbig2Error("end of data while reading bit"); this.currentByte = this.data[this.position++]; this.shift = 7; } var e = this.currentByte >> this.shift & 1; this.shift--; return e; }; Reader.prototype.readBits = function (e) { var t, i = 0; for (t = e - 1; t >= 0; t--) i |= this.readBit() << t; return i; }; Reader.prototype.byteAlign = function () { this.shift = -1; }; Reader.prototype.next = function () { return this.position >= this.end ? -1 : this.data[this.position++]; }; return Reader; }()); function getCustomHuffmanTable(e, t, i) { var a = 0; for (var s_30 = 0, r_24 = t.length; s_30 < r_24; s_30++) { var r_25 = i[t[s_30]]; if (r_25) { if (e === a) return r_25; a++; } } throw new Jbig2Error("can't find custom Huffman table"); } function readUncompressedBitmap(e, t, i) { var a = []; for (var s_31 = 0; s_31 < i; s_31++) { var i_50 = new Uint8Array(t); a.push(i_50); for (var a_38 = 0; a_38 < t; a_38++) i_50[a_38] = e.readBit(); e.byteAlign(); } return a; } function decodeMMRBitmap(e, t, i, a) { var s = new CCITTFaxDecoder(e, { K: -1, Columns: t, Rows: i, BlackIs1: !0, EndOfBlock: a }), r = []; var n, o = !1; for (var e_71 = 0; e_71 < i; e_71++) { var e_72 = new Uint8Array(t); r.push(e_72); var i_51 = -1; for (var a_39 = 0; a_39 < t; a_39++) { if (i_51 < 0) { n = s.readNextChar(); if (-1 === n) { n = 0; o = !0; } i_51 = 7; } e_72[a_39] = n >> i_51 & 1; i_51--; } } if (a && !o) { var e_73 = 5; for (var t_62 = 0; t_62 < e_73 && -1 !== s.readNextChar(); t_62++) ; } return r; } var Jbig2Image = /** @class */ (function () { function Jbig2Image() { } Jbig2Image.prototype.parseChunks = function (e) { return function parseJbig2Chunks(e) { var t = new SimpleSegmentVisitor; for (var i_52 = 0, a_40 = e.length; i_52 < a_40; i_52++) { var a_41 = e[i_52]; processSegments(readSegments({}, a_41.data, a_41.start, a_41.end), t); } return t.buffer; }(e); }; Jbig2Image.prototype.parse = function (e) { throw new Error("Not implemented: Jbig2Image.parse"); }; return Jbig2Image; }()); var Jbig2Stream = /** @class */ (function (_super) { tslib_1.__extends(Jbig2Stream, _super); function Jbig2Stream(e, t, i) { var _this = _super.call(this, t) || this; _this.stream = e; _this.dict = e.dict; _this.maybeLength = t; _this.params = i; return _this; } Object.defineProperty(Jbig2Stream.prototype, "bytes", { get: function () { return shadow(this, "bytes", this.stream.getBytes(this.maybeLength)); }, enumerable: false, configurable: true }); Jbig2Stream.prototype.ensureBuffer = function (e) { }; Jbig2Stream.prototype.readBlock = function () { if (this.eof) return; var e = new Jbig2Image, t = []; if (this.params instanceof Dict) { var e_74 = this.params.get("JBIG2Globals"); if (e_74 instanceof BaseStream) { var i_53 = e_74.getBytes(); t.push({ data: i_53, start: 0, end: i_53.length }); } } t.push({ data: this.bytes, start: 0, end: this.bytes.length }); var i = e.parseChunks(t), a = i.length; for (var e_75 = 0; e_75 < a; e_75++) i[e_75] ^= 255; this.buffer = i; this.bufferLength = a; this.eof = !0; }; return Jbig2Stream; }(DecodeStream)); function convertToRGBA(e) { switch (e.kind) { case b: return convertBlackAndWhiteToRGBA(e); case D: return function convertRGBToRGBA(_b) { var e = _b.src, _g = _b.srcPos, t = _g === void 0 ? 0 : _g, i = _b.dest, _h = _b.destPos, a = _h === void 0 ? 0 : _h, s = _b.width, r = _b.height; var n = 0; var o = e.length >> 2, g = new Uint32Array(e.buffer, t, o); if (FeatureTest.isLittleEndian) { for (; n < o - 2; n += 3, a += 4) { var e_76 = g[n], t_63 = g[n + 1], s_32 = g[n + 2]; i[a] = 4278190080 | e_76; i[a + 1] = e_76 >>> 24 | t_63 << 8 | 4278190080; i[a + 2] = t_63 >>> 16 | s_32 << 16 | 4278190080; i[a + 3] = s_32 >>> 8 | 4278190080; } for (var t_64 = 4 * n, s_33 = e.length; t_64 < s_33; t_64 += 3) i[a++] = e[t_64] | e[t_64 + 1] << 8 | e[t_64 + 2] << 16 | 4278190080; } else { for (; n < o - 2; n += 3, a += 4) { var e_77 = g[n], t_65 = g[n + 1], s_34 = g[n + 2]; i[a] = 255 | e_77; i[a + 1] = e_77 << 24 | t_65 >>> 8 | 255; i[a + 2] = t_65 << 16 | s_34 >>> 16 | 255; i[a + 3] = s_34 << 8 | 255; } for (var t_66 = 4 * n, s_35 = e.length; t_66 < s_35; t_66 += 3) i[a++] = e[t_66] << 24 | e[t_66 + 1] << 16 | e[t_66 + 2] << 8 | 255; } return { srcPos: t, destPos: a }; }(e); } return null; } function convertBlackAndWhiteToRGBA(_b) { var e = _b.src, _g = _b.srcPos, t = _g === void 0 ? 0 : _g, i = _b.dest, a = _b.width, s = _b.height, _h = _b.nonBlackColor, r = _h === void 0 ? 4294967295 : _h, _j = _b.inverseDecode, n = _j === void 0 ? !1 : _j; var o = FeatureTest.isLittleEndian ? 4278190080 : 255, _k = n ? [r, o] : [o, r], g = _k[0], c = _k[1], h = a >> 3, l = 7 & a, C = e.length; i = new Uint32Array(i.buffer); var Q = 0; for (var a_42 = 0; a_42 < s; a_42++) { for (var a_43 = t + h; t < a_43; t++) { var a_44 = t < C ? e[t] : 255; i[Q++] = 128 & a_44 ? c : g; i[Q++] = 64 & a_44 ? c : g; i[Q++] = 32 & a_44 ? c : g; i[Q++] = 16 & a_44 ? c : g; i[Q++] = 8 & a_44 ? c : g; i[Q++] = 4 & a_44 ? c : g; i[Q++] = 2 & a_44 ? c : g; i[Q++] = 1 & a_44 ? c : g; } if (0 === l) continue; var a_45 = t < C ? e[t++] : 255; for (var e_78 = 0; e_78 < l; e_78++) i[Q++] = a_45 & 1 << 7 - e_78 ? c : g; } return { srcPos: t, destPos: Q }; } var JpegError = /** @class */ (function (_super) { tslib_1.__extends(JpegError, _super); function JpegError(e) { return _super.call(this, e, "JpegError") || this; } return JpegError; }(rt)); var DNLMarkerError = /** @class */ (function (_super) { tslib_1.__extends(DNLMarkerError, _super); function DNLMarkerError(e, t) { var _this = _super.call(this, e, "DNLMarkerError") || this; _this.scanLines = t; return _this; } return DNLMarkerError; }(rt)); var EOIMarkerError = /** @class */ (function (_super) { tslib_1.__extends(EOIMarkerError, _super); function EOIMarkerError(e) { return _super.call(this, e, "EOIMarkerError") || this; } return EOIMarkerError; }(rt)); var $t = 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]), Ai = 4017, ei = 799, ti = 3406, ii = 2276, ai = 1567, si = 3784, ri = 5793, ni = 2896; function buildHuffmanTable(e, t) { var i, a, s = 0, r = 16; for (; r > 0 && !e[r - 1];) r--; var n = [{ children: [], index: 0 }]; var o, g = n[0]; for (i = 0; i < r; i++) { for (a = 0; a < e[i]; a++) { g = n.pop(); g.children[g.index] = t[s]; for (; g.index > 0;) g = n.pop(); g.index++; n.push(g); for (; n.length <= i;) { n.push(o = { children: [], index: 0 }); g.children[g.index] = o.children; g = o; } s++; } if (i + 1 < r) { n.push(o = { children: [], index: 0 }); g.children[g.index] = o.children; g = o; } } return n[0].children; } function getBlockBufferOffset(e, t, i) { return 64 * ((e.blocksPerLine + 1) * t + i); } function decodeScan(e, t, i, a, s, r, n, o, g, c) { if (c === void 0) { c = !1; } var h = i.mcusPerLine, l = i.progressive, C = t; var Q = 0, E = 0; function readBit() { if (E > 0) { E--; return Q >> E & 1; } Q = e[t++]; if (255 === Q) { var a_46 = e[t++]; if (a_46) { if (220 === a_46 && c) { var a_47 = readUint16(e, t += 2); t += 2; if (a_47 > 0 && a_47 !== i.scanLines) throw new DNLMarkerError("Found DNL marker (0xFFDC) while parsing scan data", a_47); } else if (217 === a_46) { if (c) { var e_79 = p * (8 === i.precision ? 8 : 0); if (e_79 > 0 && Math.round(i.scanLines / e_79) >= 5) throw new DNLMarkerError("Found EOI marker (0xFFD9) while parsing scan data, possibly caused by incorrect `scanLines` parameter", e_79); } throw new EOIMarkerError("Found EOI marker (0xFFD9) while parsing scan data"); } throw new JpegError("unexpected marker ".concat((Q << 8 | a_46).toString(16))); } } E = 7; return Q >>> 7; } function decodeHuffman(e) { var t = e; for (;;) { t = t[readBit()]; switch (typeof t) { case "number": return t; case "object": continue; } throw new JpegError("invalid huffman sequence"); } } function receive(e) { var t = 0; for (; e > 0;) { t = t << 1 | readBit(); e--; } return t; } function receiveAndExtend(e) { if (1 === e) return 1 === readBit() ? 1 : -1; var t = receive(e); return t >= 1 << e - 1 ? t : t + (-1 << e) + 1; } var u = 0; var d, f = 0; var p = 0; function decodeMcu(e, t, i, a, s) { var r = i % h; p = (i / h | 0) * e.v + a; var n = r * e.h + s; t(e, getBlockBufferOffset(e, p, n)); } function decodeBlock(e, t, i) { p = i / e.blocksPerLine | 0; var a = i % e.blocksPerLine; t(e, getBlockBufferOffset(e, p, a)); } var m = a.length; var y, w, b, D, F, S; S = l ? 0 === r ? 0 === o ? function decodeDCFirst(e, t) { var i = decodeHuffman(e.huffmanTableDC), a = 0 === i ? 0 : receiveAndExtend(i) << g; e.blockData[t] = e.pred += a; } : function decodeDCSuccessive(e, t) { e.blockData[t] |= readBit() << g; } : 0 === o ? function decodeACFirst(e, t) { if (u > 0) { u--; return; } var i = r; var a = n; for (; i <= a;) { var a_48 = decodeHuffman(e.huffmanTableAC), s_36 = 15 & a_48, r_26 = a_48 >> 4; if (0 === s_36) { if (r_26 < 15) { u = receive(r_26) + (1 << r_26) - 1; break; } i += 16; continue; } i += r_26; var n_13 = $t[i]; e.blockData[t + n_13] = receiveAndExtend(s_36) * (1 << g); i++; } } : function decodeACSuccessive(e, t) { var i = r; var a = n; var s, o, c = 0; for (; i <= a;) { var a_49 = t + $t[i], r_27 = e.blockData[a_49] < 0 ? -1 : 1; switch (f) { case 0: o = decodeHuffman(e.huffmanTableAC); s = 15 & o; c = o >> 4; if (0 === s) if (c < 15) { u = receive(c) + (1 << c); f = 4; } else { c = 16; f = 1; } else { if (1 !== s) throw new JpegError("invalid ACn encoding"); d = receiveAndExtend(s); f = c ? 2 : 3; } continue; case 1: case 2: if (e.blockData[a_49]) e.blockData[a_49] += r_27 * (readBit() << g); else { c--; 0 === c && (f = 2 === f ? 3 : 0); } break; case 3: if (e.blockData[a_49]) e.blockData[a_49] += r_27 * (readBit() << g); else { e.blockData[a_49] = d << g; f = 0; } break; case 4: e.blockData[a_49] && (e.blockData[a_49] += r_27 * (readBit() << g)); } i++; } if (4 === f) { u--; 0 === u && (f = 0); } } : function decodeBaseline(e, t) { var i = decodeHuffman(e.huffmanTableDC), a = 0 === i ? 0 : receiveAndExtend(i); e.blockData[t] = e.pred += a; var s = 1; for (; s < 64;) { var i_54 = decodeHuffman(e.huffmanTableAC), a_50 = 15 & i_54, r_28 = i_54 >> 4; if (0 === a_50) { if (r_28 < 15) break; s += 16; continue; } s += r_28; var n_14 = $t[s]; e.blockData[t + n_14] = receiveAndExtend(a_50); s++; } }; var k, R = 0; var N = 1 === m ? a[0].blocksPerLine * a[0].blocksPerColumn : h * i.mcusPerColumn; var G, x; for (; R <= N;) { var i_55 = s ? Math.min(N - R, s) : N; if (i_55 > 0) { for (w = 0; w < m; w++) a[w].pred = 0; u = 0; if (1 === m) { y = a[0]; for (F = 0; F < i_55; F++) { decodeBlock(y, S, R); R++; } } else for (F = 0; F < i_55; F++) { for (w = 0; w < m; w++) { y = a[w]; G = y.h; x = y.v; for (b = 0; b < x; b++) for (D = 0; D < G; D++) decodeMcu(y, S, R, b, D); } R++; } } E = 0; k = findNextFileMarker(e, t); if (!k) break; if (k.invalid) { warn("decodeScan - ".concat(i_55 > 0 ? "unexpected" : "excessive", " MCU data, current marker is: ").concat(k.invalid)); t = k.offset; } if (!(k.marker >= 65488 && k.marker <= 65495)) break; t += 2; } return t - C; } function quantizeAndInverse(e, t, i) { var a = e.quantizationTable, s = e.blockData; var r, n, o, g, c, h, l, C, Q, E, u, d, f, p, m, y, w; if (!a) throw new JpegError("missing required Quantization Table."); for (var e_80 = 0; e_80 < 64; e_80 += 8) { Q = s[t + e_80]; E = s[t + e_80 + 1]; u = s[t + e_80 + 2]; d = s[t + e_80 + 3]; f = s[t + e_80 + 4]; p = s[t + e_80 + 5]; m = s[t + e_80 + 6]; y = s[t + e_80 + 7]; Q *= a[e_80]; if (0 != (E | u | d | f | p | m | y)) { E *= a[e_80 + 1]; u *= a[e_80 + 2]; d *= a[e_80 + 3]; f *= a[e_80 + 4]; p *= a[e_80 + 5]; m *= a[e_80 + 6]; y *= a[e_80 + 7]; r = ri * Q + 128 >> 8; n = ri * f + 128 >> 8; o = u; g = m; c = ni * (E - y) + 128 >> 8; C = ni * (E + y) + 128 >> 8; h = d << 4; l = p << 4; r = r + n + 1 >> 1; n = r - n; w = o * si + g * ai + 128 >> 8; o = o * ai - g * si + 128 >> 8; g = w; c = c + l + 1 >> 1; l = c - l; C = C + h + 1 >> 1; h = C - h; r = r + g + 1 >> 1; g = r - g; n = n + o + 1 >> 1; o = n - o; w = c * ii + C * ti + 2048 >> 12; c = c * ti - C * ii + 2048 >> 12; C = w; w = h * ei + l * Ai + 2048 >> 12; h = h * Ai - l * ei + 2048 >> 12; l = w; i[e_80] = r + C; i[e_80 + 7] = r - C; i[e_80 + 1] = n + l; i[e_80 + 6] = n - l; i[e_80 + 2] = o + h; i[e_80 + 5] = o - h; i[e_80 + 3] = g + c; i[e_80 + 4] = g - c; } else { w = ri * Q + 512 >> 10; i[e_80] = w; i[e_80 + 1] = w; i[e_80 + 2] = w; i[e_80 + 3] = w; i[e_80 + 4] = w; i[e_80 + 5] = w; i[e_80 + 6] = w; i[e_80 + 7] = w; } } for (var e_81 = 0; e_81 < 8; ++e_81) { Q = i[e_81]; E = i[e_81 + 8]; u = i[e_81 + 16]; d = i[e_81 + 24]; f = i[e_81 + 32]; p = i[e_81 + 40]; m = i[e_81 + 48]; y = i[e_81 + 56]; if (0 != (E | u | d | f | p | m | y)) { r = ri * Q + 2048 >> 12; n = ri * f + 2048 >> 12; o = u; g = m; c = ni * (E - y) + 2048 >> 12; C = ni * (E + y) + 2048 >> 12; h = d; l = p; r = 4112 + (r + n + 1 >> 1); n = r - n; w = o * si + g * ai + 2048 >> 12; o = o * ai - g * si + 2048 >> 12; g = w; c = c + l + 1 >> 1; l = c - l; C = C + h + 1 >> 1; h = C - h; r = r + g + 1 >> 1; g = r - g; n = n + o + 1 >> 1; o = n - o; w = c * ii + C * ti + 2048 >> 12; c = c * ti - C * ii + 2048 >> 12; C = w; w = h * ei + l * Ai + 2048 >> 12; h = h * Ai - l * ei + 2048 >> 12; l = w; Q = r + C; y = r - C; E = n + l; m = n - l; u = o + h; p = o - h; d = g + c; f = g - c; Q < 16 ? Q = 0 : Q >= 4080 ? Q = 255 : Q >>= 4; E < 16 ? E = 0 : E >= 4080 ? E = 255 : E >>= 4; u < 16 ? u = 0 : u >= 4080 ? u = 255 : u >>= 4; d < 16 ? d = 0 : d >= 4080 ? d = 255 : d >>= 4; f < 16 ? f = 0 : f >= 4080 ? f = 255 : f >>= 4; p < 16 ? p = 0 : p >= 4080 ? p = 255 : p >>= 4; m < 16 ? m = 0 : m >= 4080 ? m = 255 : m >>= 4; y < 16 ? y = 0 : y >= 4080 ? y = 255 : y >>= 4; s[t + e_81] = Q; s[t + e_81 + 8] = E; s[t + e_81 + 16] = u; s[t + e_81 + 24] = d; s[t + e_81 + 32] = f; s[t + e_81 + 40] = p; s[t + e_81 + 48] = m; s[t + e_81 + 56] = y; } else { w = ri * Q + 8192 >> 14; w = w < -2040 ? 0 : w >= 2024 ? 255 : w + 2056 >> 4; s[t + e_81] = w; s[t + e_81 + 8] = w; s[t + e_81 + 16] = w; s[t + e_81 + 24] = w; s[t + e_81 + 32] = w; s[t + e_81 + 40] = w; s[t + e_81 + 48] = w; s[t + e_81 + 56] = w; } } } function buildComponentData(e, t) { var i = t.blocksPerLine, a = t.blocksPerColumn, s = new Int16Array(64); for (var e_82 = 0; e_82 < a; e_82++) for (var a_51 = 0; a_51 < i; a_51++) { quantizeAndInverse(t, getBlockBufferOffset(t, e_82, a_51), s); } return t.blockData; } function findNextFileMarker(e, t, i) { if (i === void 0) { i = t; } var a = e.length - 1; var s = i < t ? i : t; if (t >= a) return null; var r = readUint16(e, t); if (r >= 65472 && r <= 65534) return { invalid: null, marker: r, offset: t }; var n = readUint16(e, s); for (; !(n >= 65472 && n <= 65534);) { if (++s >= a) return null; n = readUint16(e, s); } return { invalid: r.toString(16), marker: n, offset: s }; } var JpegImage = /** @class */ (function () { function JpegImage(_b) { var _g = _b === void 0 ? {} : _b, _h = _g.decodeTransform, e = _h === void 0 ? null : _h, _j = _g.colorTransform, t = _j === void 0 ? -1 : _j; this._decodeTransform = e; this._colorTransform = t; } JpegImage.prototype.parse = function (e, _b) { var _g = _b === void 0 ? {} : _b, _h = _g.dnlScanLines, t = _h === void 0 ? null : _h; function readDataBlock() { var t = readUint16(e, s); s += 2; var i = s + t - 2; var a = findNextFileMarker(e, i, s); if (a === null || a === void 0 ? void 0 : a.invalid) { warn("readDataBlock - incorrect length, current marker is: " + a.invalid); i = a.offset; } var r = e.subarray(s, i); s += r.length; return r; } function prepareComponents(e) { var t = Math.ceil(e.samplesPerLine / 8 / e.maxH), i = Math.ceil(e.scanLines / 8 / e.maxV); for (var _b = 0, _g = e.components; _b < _g.length; _b++) { var a_52 = _g[_b]; var s_37 = Math.ceil(Math.ceil(e.samplesPerLine / 8) * a_52.h / e.maxH), r_29 = Math.ceil(Math.ceil(e.scanLines / 8) * a_52.v / e.maxV), n_15 = t * a_52.h, o_8 = 64 * (i * a_52.v) * (n_15 + 1); a_52.blockData = new Int16Array(o_8); a_52.blocksPerLine = s_37; a_52.blocksPerColumn = r_29; } e.mcusPerLine = t; e.mcusPerColumn = i; } var i, a, s = 0, r = null, n = null, o = 0; var g = [], c = [], h = []; var l = readUint16(e, s); s += 2; if (65496 !== l) throw new JpegError("SOI not found"); l = readUint16(e, s); s += 2; A: for (; 65497 !== l;) { var C_4 = void 0, Q_5 = void 0, E_5 = void 0; switch (l) { 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 u_3 = readDataBlock(); 65504 === l && 74 === u_3[0] && 70 === u_3[1] && 73 === u_3[2] && 70 === u_3[3] && 0 === u_3[4] && (r = { version: { major: u_3[5], minor: u_3[6] }, densityUnits: u_3[7], xDensity: u_3[8] << 8 | u_3[9], yDensity: u_3[10] << 8 | u_3[11], thumbWidth: u_3[12], thumbHeight: u_3[13], thumbData: u_3.subarray(14, 14 + 3 * u_3[12] * u_3[13]) }); 65518 === l && 65 === u_3[0] && 100 === u_3[1] && 111 === u_3[2] && 98 === u_3[3] && 101 === u_3[4] && (n = { version: u_3[5] << 8 | u_3[6], flags0: u_3[7] << 8 | u_3[8], flags1: u_3[9] << 8 | u_3[10], transformCode: u_3[11] }); break; case 65499: var d_3 = readUint16(e, s); s += 2; var f_5 = d_3 + s - 2; var p_3 = void 0; for (; s < f_5;) { var t_67 = e[s++], i_56 = new Uint16Array(64); if (t_67 >> 4 == 0) for (Q_5 = 0; Q_5 < 64; Q_5++) { p_3 = $t[Q_5]; i_56[p_3] = e[s++]; } else { if (t_67 >> 4 != 1) throw new JpegError("DQT - invalid table spec"); for (Q_5 = 0; Q_5 < 64; Q_5++) { p_3 = $t[Q_5]; i_56[p_3] = readUint16(e, s); s += 2; } } g[15 & t_67] = i_56; } break; case 65472: case 65473: case 65474: if (i) throw new JpegError("Only single frame JPEGs supported"); s += 2; i = {}; i.extended = 65473 === l; i.progressive = 65474 === l; i.precision = e[s++]; var m_3 = readUint16(e, s); s += 2; i.scanLines = t || m_3; i.samplesPerLine = readUint16(e, s); s += 2; i.components = []; i.componentIds = {}; var y_1 = e[s++]; var w_1 = 0, b_1 = 0; for (C_4 = 0; C_4 < y_1; C_4++) { var t_68 = e[s], a_53 = e[s + 1] >> 4, r_30 = 15 & e[s + 1]; w_1 < a_53 && (w_1 = a_53); b_1 < r_30 && (b_1 = r_30); var n_16 = e[s + 2]; E_5 = i.components.push({ h: a_53, v: r_30, quantizationId: n_16, quantizationTable: null }); i.componentIds[t_68] = E_5 - 1; s += 3; } i.maxH = w_1; i.maxV = b_1; prepareComponents(i); break; case 65476: var D_1 = readUint16(e, s); s += 2; for (C_4 = 2; C_4 < D_1;) { var t_69 = e[s++], i_57 = new Uint8Array(16); var a_54 = 0; for (Q_5 = 0; Q_5 < 16; Q_5++, s++) a_54 += i_57[Q_5] = e[s]; var r_31 = new Uint8Array(a_54); for (Q_5 = 0; Q_5 < a_54; Q_5++, s++) r_31[Q_5] = e[s]; C_4 += 17 + a_54; (t_69 >> 4 == 0 ? h : c)[15 & t_69] = buildHuffmanTable(i_57, r_31); } break; case 65501: s += 2; a = readUint16(e, s); s += 2; break; case 65498: var F_1 = 1 == ++o && !t; s += 2; var S_2 = e[s++], k_2 = []; for (C_4 = 0; C_4 < S_2; C_4++) { var t_70 = e[s++], a_55 = i.componentIds[t_70], r_32 = i.components[a_55]; r_32.index = t_70; var n_17 = e[s++]; r_32.huffmanTableDC = h[n_17 >> 4]; r_32.huffmanTableAC = c[15 & n_17]; k_2.push(r_32); } var R_2 = e[s++], N_2 = e[s++], G_2 = e[s++]; try { var t_71 = decodeScan(e, s, i, k_2, a, R_2, N_2, G_2 >> 4, 15 & G_2, F_1); s += t_71; } catch (t) { if (t instanceof DNLMarkerError) { warn("".concat(t.message, " -- attempting to re-parse the JPEG image.")); return this.parse(e, { dnlScanLines: t.scanLines }); } if (t instanceof EOIMarkerError) { warn("".concat(t.message, " -- ignoring the rest of the image data.")); break A; } throw t; } break; case 65500: s += 4; break; case 65535: 255 !== e[s] && s--; break; default: var x_2 = findNextFileMarker(e, s - 2, s - 3); if (x_2 === null || x_2 === void 0 ? void 0 : x_2.invalid) { warn("JpegImage.parse - unexpected data, current marker is: " + x_2.invalid); s = x_2.offset; break; } if (!x_2 || s >= e.length - 1) { warn("JpegImage.parse - reached the end of the image data without finding an EOI marker (0xFFD9)."); break A; } throw new JpegError("JpegImage.parse - unknown marker: " + l.toString(16)); } l = readUint16(e, s); s += 2; } if (!i) throw new JpegError("JpegImage.parse - no frame data found."); this.width = i.samplesPerLine; this.height = i.scanLines; this.jfif = r; this.adobe = n; this.components = []; for (var _j = 0, _k = i.components; _j < _k.length; _j++) { var e_83 = _k[_j]; var t_72 = g[e_83.quantizationId]; t_72 && (e_83.quantizationTable = t_72); this.components.push({ index: e_83.index, output: buildComponentData(0, e_83), scaleX: e_83.h / i.maxH, scaleY: e_83.v / i.maxV, blocksPerLine: e_83.blocksPerLine, blocksPerColumn: e_83.blocksPerColumn }); } this.numComponents = this.components.length; }; JpegImage.prototype._getLinearizedBlockData = function (e, t, i) { if (i === void 0) { i = !1; } var a = this.width / e, s = this.height / t; var r, n, o, g, c, h, l, C, Q, E, u, d = 0; var f = this.components.length, p = e * t * f, m = new Uint8ClampedArray(p), y = new Uint32Array(e), w = 4294967288; var b; for (l = 0; l < f; l++) { r = this.components[l]; n = r.scaleX * a; o = r.scaleY * s; d = l; u = r.output; g = r.blocksPerLine + 1 << 3; if (n !== b) { for (c = 0; c < e; c++) { C = 0 | c * n; y[c] = (C & w) << 3 | 7 & C; } b = n; } for (h = 0; h < t; h++) { C = 0 | h * o; E = g * (C & w) | (7 & C) << 3; for (c = 0; c < e; c++) { m[d] = u[E + y[c]]; d += f; } } } var D = this._decodeTransform; i || 4 !== f || D || (D = new Int32Array([-256, 255, -256, 255, -256, 255, -256, 255])); if (D) for (l = 0; l < p;) for (C = 0, Q = 0; C < f; C++, l++, Q += 2) m[l] = (m[l] * D[Q] >> 8) + D[Q + 1]; return m; }; Object.defineProperty(JpegImage.prototype, "_isColorConversionNeeded", { get: function () { 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; }, enumerable: false, configurable: true }); JpegImage.prototype._convertYccToRgb = function (e) { var t, i, a; for (var s_38 = 0, r_33 = e.length; s_38 < r_33; s_38 += 3) { t = e[s_38]; i = e[s_38 + 1]; a = e[s_38 + 2]; e[s_38] = t - 179.456 + 1.402 * a; e[s_38 + 1] = t + 135.459 - .344 * i - .714 * a; e[s_38 + 2] = t - 226.816 + 1.772 * i; } return e; }; JpegImage.prototype._convertYccToRgba = function (e, t) { for (var i_58 = 0, a_56 = 0, s_39 = e.length; i_58 < s_39; i_58 += 3, a_56 += 4) { var s_40 = e[i_58], r_34 = e[i_58 + 1], n_18 = e[i_58 + 2]; t[a_56] = s_40 - 179.456 + 1.402 * n_18; t[a_56 + 1] = s_40 + 135.459 - .344 * r_34 - .714 * n_18; t[a_56 + 2] = s_40 - 226.816 + 1.772 * r_34; t[a_56 + 3] = 255; } return t; }; JpegImage.prototype._convertYcckToRgb = function (e) { var t, i, a, s, r = 0; for (var n_19 = 0, o_9 = e.length; n_19 < o_9; n_19 += 4) { t = e[n_19]; i = e[n_19 + 1]; a = e[n_19 + 2]; s = e[n_19 + 3]; e[r++] = i * (-660635669420364e-19 * i + .000437130475926232 * a - 54080610064599e-18 * t + .00048449797120281 * s - .154362151871126) - 122.67195406894 + a * (-.000957964378445773 * a + .000817076911346625 * t - .00477271405408747 * s + 1.53380253221734) + t * (.000961250184130688 * t - .00266257332283933 * s + .48357088451265) + s * (-.000336197177618394 * s + .484791561490776); e[r++] = 107.268039397724 + i * (219927104525741e-19 * i - .000640992018297945 * a + .000659397001245577 * t + .000426105652938837 * s - .176491792462875) + a * (-.000778269941513683 * a + .00130872261408275 * t + .000770482631801132 * s - .151051492775562) + t * (.00126935368114843 * t - .00265090189010898 * s + .25802910206845) + s * (-.000318913117588328 * s - .213742400323665); e[r++] = i * (-.000570115196973677 * i - 263409051004589e-19 * a + .0020741088115012 * t - .00288260236853442 * s + .814272968359295) - 20.810012546947 + a * (-153496057440975e-19 * a - .000132689043961446 * t + .000560833691242812 * s - .195152027534049) + t * (.00174418132927582 * t - .00255243321439347 * s + .116935020465145) + s * (-.000343531996510555 * s + .24165260232407); } return e.subarray(0, r); }; JpegImage.prototype._convertYcckToRgba = function (e) { for (var t_73 = 0, i_59 = e.length; t_73 < i_59; t_73 += 4) { var i_60 = e[t_73], a_57 = e[t_73 + 1], s_41 = e[t_73 + 2], r_35 = e[t_73 + 3]; e[t_73] = a_57 * (-660635669420364e-19 * a_57 + .000437130475926232 * s_41 - 54080610064599e-18 * i_60 + .00048449797120281 * r_35 - .154362151871126) - 122.67195406894 + s_41 * (-.000957964378445773 * s_41 + .000817076911346625 * i_60 - .00477271405408747 * r_35 + 1.53380253221734) + i_60 * (.000961250184130688 * i_60 - .00266257332283933 * r_35 + .48357088451265) + r_35 * (-.000336197177618394 * r_35 + .484791561490776); e[t_73 + 1] = 107.268039397724 + a_57 * (219927104525741e-19 * a_57 - .000640992018297945 * s_41 + .000659397001245577 * i_60 + .000426105652938837 * r_35 - .176491792462875) + s_41 * (-.000778269941513683 * s_41 + .00130872261408275 * i_60 + .000770482631801132 * r_35 - .151051492775562) + i_60 * (.00126935368114843 * i_60 - .00265090189010898 * r_35 + .25802910206845) + r_35 * (-.000318913117588328 * r_35 - .213742400323665); e[t_73 + 2] = a_57 * (-.000570115196973677 * a_57 - 263409051004589e-19 * s_41 + .0020741088115012 * i_60 - .00288260236853442 * r_35 + .814272968359295) - 20.810012546947 + s_41 * (-153496057440975e-19 * s_41 - .000132689043961446 * i_60 + .000560833691242812 * r_35 - .195152027534049) + i_60 * (.00174418132927582 * i_60 - .00255243321439347 * r_35 + .116935020465145) + r_35 * (-.000343531996510555 * r_35 + .24165260232407); e[t_73 + 3] = 255; } return e; }; JpegImage.prototype._convertYcckToCmyk = function (e) { var t, i, a; for (var s_42 = 0, r_36 = e.length; s_42 < r_36; s_42 += 4) { t = e[s_42]; i = e[s_42 + 1]; a = e[s_42 + 2]; e[s_42] = 434.456 - t - 1.402 * a; e[s_42 + 1] = 119.541 - t + .344 * i + .714 * a; e[s_42 + 2] = 481.816 - t - 1.772 * i; } return e; }; JpegImage.prototype._convertCmykToRgb = function (e) { var t, i, a, s, r = 0; for (var n_20 = 0, o_10 = e.length; n_20 < o_10; n_20 += 4) { t = e[n_20]; i = e[n_20 + 1]; a = e[n_20 + 2]; s = e[n_20 + 3]; e[r++] = 255 + t * (-6747147073602441e-20 * t + .0008379262121013727 * i + .0002894718188643294 * a + .003264231057537806 * s - 1.1185611867203937) + i * (26374107616089405e-21 * i - 8626949158638572e-20 * a - .0002748769067499491 * s - .02155688794978967) + a * (-3878099212869363e-20 * a - .0003267808279485286 * s + .0686742238595345) - s * (.0003361971776183937 * s + .7430659151342254); e[r++] = 255 + t * (.00013596372813588848 * t + .000924537132573585 * i + .00010567359618683593 * a + .0004791864687436512 * s - .3109689587515875) + i * (-.00023545346108370344 * i + .0002702845253534714 * a + .0020200308977307156 * s - .7488052167015494) + a * (6834815998235662e-20 * a + .00015168452363460973 * s - .09751927774728933) - s * (.0003189131175883281 * s + .7364883807733168); e[r++] = 255 + t * (13598650411385307e-21 * t + .00012423956175490851 * i + .0004751985097583589 * a - 36729317476630422e-22 * s - .05562186980264034) + i * (.00016141380598724676 * i + .0009692239130725186 * a + .0007782692450036253 * s - .44015232367526463) + a * (5.068882914068769e-7 * a + .0017778369011375071 * s - .7591454649749609) - s * (.0003435319965105553 * s + .7063770186160144); } return e.subarray(0, r); }; JpegImage.prototype._convertCmykToRgba = function (e) { for (var t_74 = 0, i_61 = e.length; t_74 < i_61; t_74 += 4) { var i_62 = e[t_74], a_58 = e[t_74 + 1], s_43 = e[t_74 + 2], r_37 = e[t_74 + 3]; e[t_74] = 255 + i_62 * (-6747147073602441e-20 * i_62 + .0008379262121013727 * a_58 + .0002894718188643294 * s_43 + .003264231057537806 * r_37 - 1.1185611867203937) + a_58 * (26374107616089405e-21 * a_58 - 8626949158638572e-20 * s_43 - .0002748769067499491 * r_37 - .02155688794978967) + s_43 * (-3878099212869363e-20 * s_43 - .0003267808279485286 * r_37 + .0686742238595345) - r_37 * (.0003361971776183937 * r_37 + .7430659151342254); e[t_74 + 1] = 255 + i_62 * (.00013596372813588848 * i_62 + .000924537132573585 * a_58 + .00010567359618683593 * s_43 + .0004791864687436512 * r_37 - .3109689587515875) + a_58 * (-.00023545346108370344 * a_58 + .0002702845253534714 * s_43 + .0020200308977307156 * r_37 - .7488052167015494) + s_43 * (6834815998235662e-20 * s_43 + .00015168452363460973 * r_37 - .09751927774728933) - r_37 * (.0003189131175883281 * r_37 + .7364883807733168); e[t_74 + 2] = 255 + i_62 * (13598650411385307e-21 * i_62 + .00012423956175490851 * a_58 + .0004751985097583589 * s_43 - 36729317476630422e-22 * r_37 - .05562186980264034) + a_58 * (.00016141380598724676 * a_58 + .0009692239130725186 * s_43 + .0007782692450036253 * r_37 - .44015232367526463) + s_43 * (5.068882914068769e-7 * s_43 + .0017778369011375071 * r_37 - .7591454649749609) - r_37 * (.0003435319965105553 * r_37 + .7063770186160144); e[t_74 + 3] = 255; } return e; }; JpegImage.prototype.getData = function (_b) { var e = _b.width, t = _b.height, _g = _b.forceRGBA, i = _g === void 0 ? !1 : _g, _h = _b.forceRGB, a = _h === void 0 ? !1 : _h, _j = _b.isSourcePDF, s = _j === void 0 ? !1 : _j; if (this.numComponents > 4) throw new JpegError("Unsupported color mode"); var r = this._getLinearizedBlockData(e, t, s); if (1 === this.numComponents && (i || a)) { var e_84 = r.length * (i ? 4 : 3), t_75 = new Uint8ClampedArray(e_84); var a_59 = 0; if (i) !function grayToRGBA(e, t) { if (FeatureTest.isLittleEndian) for (var i_63 = 0, a_60 = e.length; i_63 < a_60; i_63++) t[i_63] = 65793 * e[i_63] | 4278190080; else for (var i_64 = 0, a_61 = e.length; i_64 < a_61; i_64++) t[i_64] = 16843008 * e[i_64] | 255; }(r, new Uint32Array(t_75.buffer)); else for (var _k = 0, r_38 = r; _k < r_38.length; _k++) { var e_85 = r_38[_k]; t_75[a_59++] = e_85; t_75[a_59++] = e_85; t_75[a_59++] = e_85; } return t_75; } if (3 === this.numComponents && this._isColorConversionNeeded) { if (i) { var e_86 = new Uint8ClampedArray(r.length / 3 * 4); return this._convertYccToRgba(r, e_86); } return this._convertYccToRgb(r); } if (4 === this.numComponents) { if (this._isColorConversionNeeded) return i ? this._convertYcckToRgba(r) : a ? this._convertYcckToRgb(r) : this._convertYcckToCmyk(r); if (i) return this._convertCmykToRgba(r); if (a) return this._convertCmykToRgb(r); } return r; }; return JpegImage; }()); var JpegStream = /** @class */ (function (_super) { tslib_1.__extends(JpegStream, _super); function JpegStream(e, t, i) { var _this = this; var a; for (; -1 !== (a = e.getByte());) if (255 === a) { e.skip(-1); break; } _this = _super.call(this, t) || this; _this.stream = e; _this.dict = e.dict; _this.maybeLength = t; _this.params = i; return _this; } Object.defineProperty(JpegStream.prototype, "bytes", { get: function () { return shadow(this, "bytes", this.stream.getBytes(this.maybeLength)); }, enumerable: false, configurable: true }); JpegStream.prototype.ensureBuffer = function (e) { }; JpegStream.prototype.readBlock = function () { if (this.eof) return; var e = { decodeTransform: void 0, colorTransform: void 0 }, t = this.dict.getArray("D", "Decode"); if ((this.forceRGBA || this.forceRGB) && Array.isArray(t)) { var i_65 = this.dict.get("BPC", "BitsPerComponent") || 8, a_62 = t.length, s_44 = new Int32Array(a_62); var r_39 = !1; var n_21 = (1 << i_65) - 1; for (var e_87 = 0; e_87 < a_62; e_87 += 2) { s_44[e_87] = 256 * (t[e_87 + 1] - t[e_87]) | 0; s_44[e_87 + 1] = t[e_87] * n_21 | 0; 256 === s_44[e_87] && 0 === s_44[e_87 + 1] || (r_39 = !0); } r_39 && (e.decodeTransform = s_44); } if (this.params instanceof Dict) { var t_76 = this.params.get("ColorTransform"); Number.isInteger(t_76) && (e.colorTransform = t_76); } var i = new JpegImage(e); i.parse(this.bytes); var a = i.getData({ width: this.drawWidth, height: this.drawHeight, forceRGBA: this.forceRGBA, forceRGB: this.forceRGB, isSourcePDF: !0 }); this.buffer = a; this.bufferLength = a.length; this.eof = !0; }; return JpegStream; }(DecodeStream)); var oi, gi = (oi = "undefined" != typeof document ? (_b = document.currentScript) === null || _b === void 0 ? void 0 : _b.src : void 0, function (e) { if (e === void 0) { e = {}; } var t, i, a = Object.assign({}, e); new Promise((function (e, a) { t = e; i = a; })); a.decode = function (e, t) { var i = e.length, s = a._malloc(i); a.HEAPU8.set(e, s); var r = a._jp2_decode(s, i, t ? 1 : 0); a._free(s); if (r) { var e_88 = a.errorMessages; if (e_88) { delete a.errorMessages; return e_88; } return "Unknown error"; } var n = a.imageData; a.imageData = null; return n; }; var s, r = Object.assign({}, a), n = "./this.program", o = ""; "undefined" != typeof document && document.currentScript && (o = document.currentScript.src); oi && (o = oi); o = o.startsWith("blob:") ? "" : o.substr(0, o.replace(/[?#].*/, "").lastIndexOf("/") + 1); var g, c, h, l, C, Q = a.print || console.log.bind(console), E = a.printErr || console.error.bind(console); Object.assign(a, r); r = null; a.arguments && a.arguments; a.thisProgram && (n = a.thisProgram); a.quit && a.quit; a.wasmBinary && (g = a.wasmBinary); function tryParseAsDataURI(e) { if (isDataURI(e)) return function intArrayFromBase64(e) { for (var t = atob(e), i = new Uint8Array(t.length), a = 0; a < t.length; ++a) i[a] = t.charCodeAt(a); return i; }(e.slice(b.length)); } function updateMemoryViews() { var e = c.buffer; a.HEAP8 = h = new Int8Array(e); a.HEAP16 = new Int16Array(e); a.HEAPU8 = l = new Uint8Array(e); a.HEAPU16 = new Uint16Array(e); a.HEAP32 = new Int32Array(e); a.HEAPU32 = C = new Uint32Array(e); a.HEAPF32 = new Float32Array(e); a.HEAPF64 = new Float64Array(e); } var u, d = [], f = [], p = [], m = 0, y = null, w = null, b = "data:application/octet-stream;base64,", isDataURI = function (e) { return e.startsWith(b); }; function instantiateSync(e, t) { var i, a = function getBinarySync(e) { if (e == u && g) return new Uint8Array(g); var t = tryParseAsDataURI(e); if (t) return t; if (s) return s(e); throw 'sync fetching of the wasm failed: you can preload it to Module["wasmBinary"] manually, or emcc.py will do that for you when generating HTML (but not JS)'; }(e); i = new WebAssembly.Module(a); return [new WebAssembly.Instance(i, t), i]; } var D, callRuntimeCallbacks = function (e) { for (; e.length > 0;) e.shift()(a); }, F = (a.noExitRuntime, function (e) { var t = (e - c.buffer.byteLength + 65535) / 65536; try { c.grow(t); updateMemoryViews(); return 1; } catch (e) { } }), S = {}, getEnvStrings = function () { if (!getEnvStrings.strings) { var e = { USER: "web_user", LOGNAME: "web_user", PATH: "/", PWD: "/", HOME: "/home/web_user", LANG: ("object" == typeof navigator && navigator.languages && navigator.languages[0] || "C").replace("-", "_") + ".UTF-8", _: n || "./this.program" }; for (var t in S) void 0 === S[t] ? delete e[t] : e[t] = S[t]; var i = []; for (var t in e) i.push("".concat(t, "=").concat(e[t])); getEnvStrings.strings = i; } return getEnvStrings.strings; }, k = [null, [], []], R = "undefined" != typeof TextDecoder ? new TextDecoder("utf8") : void 0, UTF8ArrayToString = function (e, t, i) { for (var a = t + i, s = t; e[s] && !(s >= a);) ++s; if (s - t > 16 && e.buffer && R) return R.decode(e.subarray(t, s)); for (var r = ""; t < s;) { var n = e[t++]; if (128 & n) { var o = 63 & e[t++]; if (192 != (224 & n)) { var g = 63 & e[t++]; if ((n = 224 == (240 & n) ? (15 & n) << 12 | o << 6 | g : (7 & n) << 18 | o << 12 | g << 6 | 63 & e[t++]) < 65536) r += String.fromCharCode(n); else { var c = n - 65536; r += String.fromCharCode(55296 | c >> 10, 56320 | 1023 & c); } } else r += String.fromCharCode((31 & n) << 6 | o); } else r += String.fromCharCode(n); } return r; }, printChar = function (e, t) { var i = k[e]; if (0 === t || 10 === t) { (1 === e ? Q : E)(UTF8ArrayToString(i, 0)); i.length = 0; } else i.push(t); }, UTF8ToString = function (e, t) { return e ? UTF8ArrayToString(l, e, t) : ""; }, N = { f: function (e, t, i) { return l.copyWithin(e, t, t + i); }, b: function (e) { var t = l.length, i = 2147483648; if ((e >>>= 0) > i) return !1; for (var a, s, r = 1; r <= 4; r *= 2) { var n = t * (1 + .2 / r); n = Math.min(n, e + 100663296); var o = Math.min(i, (a = Math.max(e, n)) + ((s = 65536) - a % s) % s); if (F(o)) return !0; } return !1; }, c: function (e, t) { var i = 0; getEnvStrings().forEach((function (a, s) { var r = t + i; C[e + 4 * s >> 2] = r; (function (e, t) { for (var i = 0; i < e.length; ++i) h[t++] = e.charCodeAt(i); h[t] = 0; })(a, r); i += a.length + 1; })); return 0; }, d: function (e, t) { var i = getEnvStrings(); C[e >> 2] = i.length; var a = 0; i.forEach((function (e) { return a += e.length + 1; })); C[t >> 2] = a; return 0; }, e: function (e, t, i, a) { for (var s = 0, r = 0; r < i; r++) { var n = C[t >> 2], o = C[t + 4 >> 2]; t += 8; for (var g = 0; g < o; g++) printChar(e, l[n + g]); s += o; } C[a >> 2] = s; return 0; }, g: function _jsPrintWarning(e) { var t = UTF8ToString(e); (a.warn || console.warn)("OpenJPEG: ".concat(t)); }, h: function _setImageData(e, t) { a.imageData = new Uint8ClampedArray(a.HEAPU8.subarray(e, e + t)); }, a: function _storeErrorMessage(e) { var t = UTF8ToString(e); a.errorMessages ? a.errorMessages += "\n" + t : a.errorMessages = t; } }, G = function createWasm() { var e = function getWasmImports() { return { a: N }; }(); function receiveInstance(e, t) { G = e.exports; c = G.i; updateMemoryViews(); !function addOnInit(e) { f.unshift(e); }(G.j); !function removeRunDependency(e) { var _b; m--; (_b = a.monitorRunDependencies) === null || _b === void 0 ? void 0 : _b.call(a, m); if (0 == m) { if (null !== y) { clearInterval(y); y = null; } if (w) { var t = w; w = null; t(); } } }(); return G; } !function addRunDependency(e) { var _b; m++; (_b = a.monitorRunDependencies) === null || _b === void 0 ? void 0 : _b.call(a, m); }(); if (a.instantiateWasm) try { return a.instantiateWasm(e, receiveInstance); } catch (e) { E("Module.instantiateWasm callback failed with error: ".concat(e)); i(e); } u || (u = "data:application/octet-stream;base64,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dEGwnQFqKAIAIQICfiAAKQMIIg5CAFMEQEEMIAFBAWogAUELThshBCADQQFrIQNBfyACdEF/c0EBdCEBQgEMAQsgAUEBa0EAIAFBAUobIQQgDkE/IAJrrYinQX8gAnRBf3NxQQF0QQFyIQEgAyACQQFqIgJrIQMgAq0LIQ8gACADNgIQIAAgBDYCHCAAIA4gD4Y3AwggACAAKQMoQv//////QIMgAa1CI4aENwMoQQYhBSADQQZIDQAgACgCHCIBQQJ0QbCdAWooAgAhAgJ+IAApAwgiDkIAUwRAQQwgAUEBaiABQQtOGyEEIANBAWshA0F/IAJ0QX9zQQF0IQFCAQwBCyABQQFrQQAgAUEBShshBCAOQT8gAmutiKdBfyACdEF/c3FBAXRBAXIhASADIAJBAWoiAmshAyACrQshDyAAIAM2AhAgACAENgIcIAAgDiAPhjcDCCAAIAApAyhC////////QIMgAa1CKoaENwMoQQchBSADQQZIDQAgACgCHCIBQQJ0QbCdAWooAgAhAgJ+IAApAwgiDkIAUwRAQQwgAUEBaiABQQtOGyEEIANBAWshA0F/IAJ0QX9zQQF0IQFCAQwBCyABQQFrQQAgAUEBShshBCAOQT8gAmutiKdBfyACdEF/c3FBAXRBAXIhASADIAJBAWoiAmshAyACrQshDyAAIAM2AhAgACAENgIcIAAgDiAPhjcDCCAAIAApAyhC/////////0CDIAGtQjGGhDcDKEEIIQULIAAgBUEBazYCICAAIAApAygiDkIHiDcDKCAOp0H/AHELIgEBfyAABEAgACgCDCIBBEAgARAJIABBADYCDAsgABAJCwuFAQIFfwF+AkAgAEKAgICAEFQEQCAAIQcMAQsDQCABQQFrIgEgAEIKgCIHQvYBfiAAfKdBMHI6AAAgAEL/////nwFWIQUgByEAIAUNAAsLIAenIgIEQANAIAFBAWsiASACQQpuIgNB9gFsIAJqQTByOgAAIAJBCUshBiADIQIgBg0ACwsgAQv54gEEen8Gewh+AX0jAEEQayJOJAACQCAALQAIQYABcUUNACAAKALMASABRw0AIAAoApwBIAFBjCxsaiJPKALcKyIVRQRAIE8QKQwBCyAAKALIARogACgC0AEhGSAAKAJMIgdFBEAgACgCSCEHCyAHKAIAIQYgBygCBCELIAco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AAACAAAA/a4BQQL9rAH9sQH9CwIAIAEiBkEBaiIBIA9HDQALIA8hBwsgByAbTg0AA0AgB0EDdCEBIAcgLEghBgJAIAdBAEwEQCA2KAIAIQogB0EATgRAIBQgAUECdCIBaiIyIDIoAgAgCiABIDZqIEUgBhsoAgBqQQJqQQJ1azYCACABICRqIgogCigCACAgKAIAIAEgIGogPCAGGygCAGpBAmpBAnVrNgIAIAEgKmoiCiAKKAIAIB8oAgAgASAfaiA6IAYbKAIAakECakECdWs2AgAgQygCACABIENqICYgBhsoAgBqQQJqIQYgASApaiEBDAILIBQgAUECdCIBaiIGIAYoAgAgCkEBdEECakECdWs2AgAgASAkaiIGIAYoAgAgFCgCFEEBdEECakECdWs2AgAgASAqaiIGIAYoAgAgFCgCGEEBdEECakECdWs2AgAgASApaiEBIBQoAhxBAXRBAmohBgwBCyAUIAcgLCAGG0EDdEEEa0ECdCIKaigCACEyIAZFBEAgFCABQQJ0IgFqIgYgBigCACAyIEUoAgBqQQJqQQJ1azYCACABICRqIgYgBigCACAKICRqKAIAIDwoAgBqQQJqQQJ1azYCACABICpqIgYgBigCACAKICpqKAIAIDooAgBqQQJqQQJ1azYCACABIClqIQEgCiApaigCACAmKAIAakECaiEGDAELIBQgAUECdCIBaiIGIAYoAgAgMiAGKAIQakECakECdWs2AgAgASAkaiIGIAYoAgAgCiAkaigCACAGKAIQakECakECdWs2AgAgASAqaiIGIAYoAgAgCiAqaigCACAGKAIQakECakECdWs2AgAgCiApaigCACABIClqIgEoAhBqQQJqIQYLIAEgASgCACAGQQJ1azYCACAHQQFqIgcgG0cNAAsLIA4gHE4NACAMIA4iASIHSgRAA0AgFCABQQV0aiIHIAf9AAIgIAf9AAIA/a4BQQH9rAEgB/0AAhD9rgH9CwIQIAFBAWoiASAMRw0ACyAMIQcLIAcgHE4NAANAIEMgB0EDdCIBQQJ0aiIyAn8gB0EASARAIBQoAgAhBiAHQX9HBEAgNiABQQJ0IgFqIgogCigCACAGajYCACABICBqIgYgBigCACAkKAIAajYCACABIB9qIgEgASgCACAqKAIAajYCACApKAIADAILIDYgAUECdCIB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LQAAQYD+A3I2AgwLIABBADYCEEEBCwtJAQF/AkBBAUEsEAwiAQRAIAFBADYCEAJAIABBAEwEQCABQQFBCBAMIgA2AiQgAEUNAQwDCyABQQA2AgwLIAEQCQtBACEBCyABC34CAX8BfiAAvSIDQjSIp0H/D3EiAkH/D0cEfCACRQRAIAEgAEQAAAAAAAAAAGEEf0EABSAARAAAAAAAAPBDoiABEF8hACABKAIAQUBqCzYCACAADwsgASACQf4HazYCACADQv////////+HgH+DQoCAgICAgIDwP4S/BSAACwuRAgAgAEUEQEEADwsCfwJAIAFB/wBNDQACQEGUzwEoAgAoAgBFBEAgAUGAf3FBgL8DRg0CDAELIAFB/w9NBEAgACABQT9xQYABcjoAASAAIAFBBnZBwAFyOgAAQQIMAwsgAUGAQHFBgMADRyABQYCwA09xRQRAIAAgAUE/cUGAAXI6AAIgACABQQx2QeABcjoAACAAIAFBBnZBP3FBgAFyOgABQQMMAwsgAUGAgARrQf//P00EQCAAIAFBP3FBgAFyOgADIAAgAUESdkHwAXI6AAAgACABQQZ2QT9xQYABcjoAAiAAIAFBDHZBP3FBgAFyOgABQQQMAwsLQZTGAUEZNgIAQX8MAQsgACABOgAAQQELC7wCAAJAAkACQAJAAkACQAJAAkACQAJAAkAgAUEJaw4SAAgJCggJAQIDBAoJCgoICQUGBwsgAiACKAIAIgFBBGo2AgAgACABKAIANgIADwsgAiACKAIAIgFBBGo2AgAgACABMgEANwMADwsgAiACKAIAIgFBBGo2AgAgACABMwEANwMADwsgAiACKAIAIgFBBGo2AgAgACABMAAANwMADwsgAiACKAIAIgFBBGo2AgAgACABMQAANwMADwsgAiACKAIAQQdqQXhxIgFBCGo2AgAgACABKwMAOQMADwsgACACIAMRAwALDwsgAiACKAIAIgFBBGo2AgAgACABNAIANwMADwsgAiACKAIAIgFBBGo2AgAgACABNQIANwMADwsgAiACKAIAQQdqQXhxIgFBCGo2AgAgACABKQMANwMAC3MBBn8gACgCACIDLAAAQTBrIgFBCUsEQEEADwsDQEF/IQQgAkHMmbPmAE0EQEF/IAEgAkEKbCIFaiABIAVB/////wdzSxshBAsgACADQQFqIgU2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VP0gAiACKgJ0/SAD/QsCACABIAMgF2pBAnRqIAL9CQIYIAIqAjj9IAEgAioCWP0gAiACKgJ4/SAD/QsCACABIAMgFmpBAnRqIAL9CQIcIAIqAjz9IAEgAioCXP0gAiACKgJ8/SAD/QsCACADQQRqIgMgBEcNAAsgBCALRg0BCwNAIAEgBCAbakECdGogBiAEQQV0aiIDKgIQOAIAIAEgBCAYakECdGogAyoCFDgCACABIAQgF2pBAnRqIAMqAhg4AgAgASAEIBZqQQJ0aiADKgIcOAIAIARBAWoiBCALRw0ACwsgHUEBaiEdIAEgJEECdGohASAcQQhqIhwgACgCLE0NAAsLIAAoAgAQCSAAEAkLcwECfyAAKAIcIgFBCGoiAyAAKAIgIgJNBEADQCAAIAAoAhggAUECdGogACgCFEEIECsgAyIBQQhqIgMgACgCICICTQ0ACwsgASACSQRAIAAgACgCGCABQQJ0aiAAKAIUIAIgAWsQKwsgACgCABAJIAAQCQtEACAAKAIcIgEgACgCIEkEQANAIAAgACgCGCAAKAIUIAFsQQJ0ahBWIAFBAWoiASAAKAIgSQ0ACwsgACgCABAJIAAQCQuoAQEFfyAAKAJUIgMoAgAhBSADKAIEIgQgACgCFCAAKAIcIgdrIgYgBCAGSRsiBgRAIAUgByAGEAsaIAMgAygCACAGaiIFNgIAIAMgAygCBCAGayIENgIECyAEIAIgAiAESxsiBARAIAUgASAEEAsaIAMgAygCACAEaiIFNgIAIAMgAygCBCAEazYCBAsgBUEAOgAAIAAgACgCLCIBNgIcIAAgATYCFCACC54FAgZ+BH8gASABKAIAQQdqQXhxIgFBEGo2AgAgACELIAEpAwAhAyABKQMIIQcjAEEgayIIJAAgB0L///////8/gyEEAn4gB0IwiEL//wGDIgWnIgpBgfgAa0H9D00EQCAEQgSGIANCPIiEIQIgCkGA+ABrrSEFAkAgA0L//////////w+DIgNCgYCAgICAgIAIWgRAIAJCAXwhAgwBCyADQoCAgICAgICACFINACACQgGDIAJ8IQILQgAgAiACQv////////8HViIAGyECIACtIAV8DAELAkAgAyAEhFANACAFQv//AVINACAEQgSGIANCPIiEQoCAgICAgIAEhCECQv8PDAELQv8PIApB/ocB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JWQpIAAlc30KAAkJIH0KAFtERVZdIER1bXAgYW4gaW1hZ2VfY29tcF9oZWFkZXIgc3RydWN0IHsKAFtERVZdIER1bXAgYW4gaW1hZ2VfaGVhZGVyIHN0cnVjdCB7CgBJbWFnZSBpbmZvIHsKAAkgZGVmYXVsdCB0aWxlIHsKACVzCSBjb21wb25lbnQgJWQgewoACQkgY29tcCAlZCB7CgAJIFRpbGUgaW5kZXg6IHsKAAkgTWFya2VyIGxpc3Q6IHsKAENvZGVzdHJlYW0gaW5kZXggZnJvbSBtYWluIGhlYWRlcjogewoAQ29kZXN0cmVhbSBpbmZvIGZyb20gbWFpbiBoZWFkZXI6IHsKAFN0cmVhbSBlcnJvciB3aGlsZSByZWFkaW5nIEpQMiBIZWFkZXIgYm94CgBGb3VuZCBhIG1pc3BsYWNlZCAnJWMlYyVjJWMnIGJveCBvdXRzaWRlIGpwMmggYm94CgBNYWxmb3JtZWQgSlAyIGZpbGUgZm9ybWF0OiBmaXJzdCBib3ggbXVzdCBiZSBKUEVHIDIwMDAgc2lnbmF0dXJlIGJveAoATWFsZm9ybWVkIEpQMiBmaWxlIGZvcm1hdDogc2Vjb25kIGJveCBtdXN0IGJlIGZpbGUgdHlwZSBib3gKAE5vdCBlbm91Z2ggbWVtb3J5IHRvIGhhbmRsZSBqcGVnMjAwMCBib3gKAE5vdCBlbm91Z2ggbWVtb3J5IHdpdGggRlRZUCBCb3gKAEEgbWFya2VyIElEIHdhcyBleHBlY3RlZCAoMHhmZi0tKSBpbnN0ZWFkIG9mICUuOHgKAAkJIG1jdD0leAoACQkJIGNibGtzdHk9JSN4CgAJCQkgY3N0eT0lI3gKAAkJIHByZz0lI3gKAEludGVnZXIgb3ZlcmZsb3cKAAkgdGR4PSV1LCB0ZHk9JXUKAAkgdHc9JXUsIHRoPSV1CgAJIHR4MD0ldSwgdHkwPSV1CgBJbnZhbGlkIGNvbXBvbmVudCBpbmRleDogJXUKAFN0cmVhbSB0b28gc2hvcnQKAE1hcmtlciBoYW5kbGVyIGZ1bmN0aW9uIGZhaWxlZCB0byByZWFkIHRoZSBtYXJrZXIgc2VnbWVudAoATm90IGVub3VnaCBtZW1vcnkgZm9yIGN1cnJlbnQgcHJlY2luY3QgY29kZWJsb2NrIGVsZW1lbnQKAEVycm9yIHJlYWRpbmcgU1BDb2QgU1BDb2MgZWxlbWVudAoARXJyb3IgcmVhZGluZyBTUWNkIG9yIFNRY2MgZWxlbWVudAoAQSBCUENDIGhlYWRlciBib3ggaXMgYXZhaWxhYmxlIGFsdGhvdWdoIEJQQyBnaXZlbiBieSB0aGUgSUhEUiBib3ggKCVkKSBpbmRpY2F0ZSBjb21wb25lbnRzIGJpdCBkZXB0aCBpcyBjb25zdGFudAoARXJyb3Igd2l0aCBTSVogbWFya2VyOiBpbGxlZ2FsIHRpbGUgb2Zmc2V0CgBJbnZhbGlkIHByZWNpbmN0CgBOb3QgZW5vdWdoIG1lbW9yeSB0byBoYW5kbGUgYmFuZCBwcmVjaW50cwoARmFpbGVkIHRvIGRlY29kZSBhbGwgdXNlZCBjb21wb25lbnRzCgBTaXplIG9mIGNvZGUgYmxvY2sgZGF0YSBleGNlZWRzIHN5c3RlbSBsaW1pdHMKAFNpemUgb2YgdGlsZSBkYXRhIGV4Y2VlZHMgc3lzdGVtIGxpbWl0cwoAQ2Fubm90IHRha2UgaW4gY2hhcmdlIG11bHRpcGxlIE1DVCBtYXJrZXJzCgBDb3JydXB0ZWQgUFBNIG1hcmtlcnMKAE5vdCBlbm91Z2ggbWVtb3J5IGZvciB0aWxlIHJlc29sdXRpb25zCgBDYW5ub3QgdGFrZSBpbiBjaGFyZ2UgbXVsdGlwbGUgY29sbGVjdGlvbnMKAEludmFsaWQgUENMUiBib3guIFJlcG9ydHMgMCBwYWxldHRlIGNvbHVtbnMKAFdlIGRvIG5vdCBzdXBwb3J0IFJPSSBpbiBkZWNvZGluZyBIVCBjb2RlYmxvY2tzCgBDYW5ub3QgaGFuZGxlIGJveCBvZiB1bmRlZmluZWQgc2l6ZXMKAENhbm5vdCB0YWtlIGluIGNoYXJnZSBjb2xsZWN0aW9ucyB3aXRob3V0IHNhbWUgbnVtYmVyIG9mIGluZGl4ZXMKAEludmFsaWQgdGlsZWMtPndpbl94eHggdmFsdWVzCgBDYW5ub3QgaGFuZGxlIGJveCBvZiBsZXNzIHRoYW4gOCBieXRlcwoAQ2Fubm90IGhhbmRsZSBYTCBib3ggb2YgbGVzcyB0aGFuIDE2IGJ5dGVzCgBDb21wb25lbnQgaW5kZXggJXUgdXNlZCBzZXZlcmFsIHRpbWVzCgBJbnZhbGlkIFBDTFIgYm94LiBSZXBvcnRzICVkIGVudHJpZXMKAE5vdCBlbm91Z2ggbWVtb3J5IHRvIGNyZWF0ZSBUYWctdHJlZSBub2RlcwoAQ2Fubm90IHRha2UgaW4gY2hhcmdlIG1jdCBkYXRhIHdpdGhpbiBtdWx0aXBsZSBNQ1QgcmVjb3JkcwoAQ2Fubm90IGRlY29kZSB0aWxlLCBtZW1vcnkgZXJyb3IKAG9wal9qMmtfYXBwbHlfbmJfdGlsZV9wYXJ0c19jb3JyZWN0aW9uIGVycm9yCgBQcm9ibGVtIHdpdGggc2tpcHBpbmcgSlBFRzIwMDAgYm94LCBzdHJlYW0gZXJyb3IKAFByb2JsZW0gd2l0aCByZWFkaW5nIEpQRUcyMDAwIGJveCwgc3RyZWFtIGVycm9yCgBVbmtub3duIG1hcmtlcgoATm90IGVub3VnaCBtZW1vcnkgdG8gYWRkIHRsIG1hcmtlcgoATm90IGVub3VnaCBtZW1vcnkgdG8gYWRkIG1oIG1hcmtlcgoATm90IGVub3VnaCBtZW1vcnkgdG8gdGFrZSBpbiBjaGFyZ2UgU0laIG1hcmtlcgoARXJyb3IgcmVhZGluZyBQUFQgbWFya2VyCgBOb3QgZW5vdWdoIG1lbW9yeSB0byByZWFkIFBQVCBtYXJrZXIKAEVycm9yIHJlYWRpbmcgU09UIG1hcmtlcgoARXJyb3IgcmVhZGluZyBQTFQgbWFya2VyCgBFcnJvciByZWFkaW5nIE1DVCBtYXJrZXIKAE5vdCBlbm91Z2ggbWVtb3J5IHRvIHJlYWQgTUNUIG1hcmtlcgoATm90IGVub3VnaCBzcGFjZSBmb3IgZXhwZWN0ZWQgU09QIG1hcmtlcgoARXhwZWN0ZWQgU09QIG1hcmtlcgoARXJyb3IgcmVhZGluZyBNQ08gbWFya2VyCgBFcnJvciByZWFkaW5nIFJHTiBtYXJrZXIKAEVycm9yIHJlYWRpbmcgUFBNIG1hcmtlcgoATm90IGVub3VnaCBtZW1vcnkgdG8gcmVhZCBQUE0gbWFya2VyCgBFcnJvciByZWFkaW5nIFRMTSBtYXJrZXIKAEVycm9yIHJlYWRpbmcgUExNIG1hcmtlcgoATm90IGVub3VnaCBzcGFjZSBmb3IgZXhwZWN0ZWQgRVBIIG1hcmtlcgoARXhwZWN0ZWQgRVBIIG1hcmtlcgoARXJyb3IgcmVhZGluZyBDUkcgbWFya2VyCgBVbmtub3duIHByb2dyZXNzaW9uIG9yZGVyIGluIENPRCBtYXJrZXIKAFVua25vd24gU2NvZCB2YWx1ZSBpbiBDT0QgbWFya2VyCgBFcnJvciByZWFkaW5nIENPRCBtYXJrZXIKAEVycm9yIHJlYWRpbmcgUUNEIG1hcmtlcgoAQ3Jyb3IgcmVhZGluZyBDQkQgbWFya2VyCgBFcnJvciByZWFkaW5nIFBPQyBtYXJrZXIKAEVycm9yIHJlYWRpbmcgQ09DIG1hcmtlcgoARXJyb3IgcmVhZGluZyBRQ0MgbWFya2VyCgBFcnJvciByZWFkaW5nIE1DQyBtYXJrZXIKAE5vdCBlbm91Z2ggbWVtb3J5IHRvIHJlYWQgTUNDIG1hcmtlcgoAcmVxdWlyZWQgU0laIG1hcmtlciBub3QgZm91bmQgaW4gbWFpbiBoZWFkZXIKAHJlcXVpcmVkIENPRCBtYXJrZXIgbm90IGZvdW5kIGluIG1haW4gaGVhZGVyCgByZXF1aXJlZCBRQ0QgbWFya2VyIG5vdCBmb3VuZCBpbiBtYWluIGhlYWRlcgoATm90IGVub3VnaCBtZW1vcnkgdG8gaGFuZGxlIGpwZWcyMDAwIGZpbGUgaGVhZGVyCgBOb3QgZW5vdWdoIG1lbW9yeSB0byByZWFkIGhlYWRlcgoARXJyb3Igd2l0aCBKUCBTaWduYXR1cmUgOiBiYWQgbWFnaWMgbnVtYmVyCgBJbiBTT1QgbWFya2VyLCBUUFNvdCAoJWQpIGlzIG5vdCB2YWxpZCByZWdhcmRzIHRvIHRoZSBjdXJyZW50IG51bWJlciBvZiB0aWxlLXBhcnQgKCVkKSwgZ2l2aW5nIHVwCgBJbiBTT1QgbWFya2VyLCBUUFNvdCAoJWQpIGlzIG5vdCB2YWxpZCByZWdhcmRzIHRvIHRoZSBwcmV2aW91cyBudW1iZXIgb2YgdGlsZS1wYXJ0ICglZCksIGdpdmluZyB1cAoASW4gU09UIG1hcmtlciwgVFBTb3QgKCVkKSBpcyBub3QgdmFsaWQgcmVnYXJkcyB0byB0aGUgY3VycmVudCBudW1iZXIgb2YgdGlsZS1wYXJ0IChoZWFkZXIpICglZCksIGdpdmluZyB1cAoAdGlsZXMgcmVxdWlyZSBhdCBsZWFzdCBvbmUgcmVzb2x1dGlvbgoATWFya2VyIGlzIG5vdCBjb21wbGlhbnQgd2l0aCBpdHMgcG9zaXRpb24KAFByb2JsZW0gd2l0aCBzZWVrIGZ1bmN0aW9uCgBFcnJvciByZWFkaW5nIFNQQ29kIFNQQ29jIGVsZW1lbnQsIEludmFsaWQgY2Jsa3cvY2Jsa2ggY29tYmluYXRpb24KAEludmFsaWQgbXVsdGlwbGUgY29tcG9uZW50IHRyYW5zZm9ybWF0aW9uCgBDYW5ub3QgdGFrZSBpbiBjaGFyZ2UgY29sbGVjdGlvbnMgb3RoZXIgdGhhbiBhcnJheSBkZWNvcnJlbGF0aW9uCgBUb28gbGFyZ2UgdmFsdWUgZm9yIE5wcG0KAE5vdCBlbm91Z2ggYnl0ZXMgdG8gcmVhZCBOcHBtCgBiYWQgcGxhY2VkIGpwZWcgY29kZXN0cmVhbQoACSBNYWluIGhlYWRlciBzdGFydCBwb3NpdGlvbj0lbGxpCgkgTWFpbiBoZWFkZXIgZW5kIHBvc2l0aW9uPSVsbGkKAE1hcmtlciBzaXplIGluY29uc2lzdGVudCB3aXRoIHN0cmVhbSBsZW5ndGgKAFRpbGUgcGFydCBsZW5ndGggc2l6ZSBpbmNvbnNpc3RlbnQgd2l0aCBzdHJlYW0gbGVuZ3RoCgBDYW5ub3QgdGFrZSBpbiBjaGFyZ2UgbXVsdGlwbGUgZGF0YSBzcGFubmluZwoAV3JvbmcgZmxhZwoARXJyb3Igd2l0aCBGVFlQIHNpZ25hdHVyZSBCb3ggc2l6ZQoARXJyb3Igd2l0aCBKUCBzaWduYXR1cmUgQm94IHNpemUKAEludmFsaWQgcHJlY2luY3Qgc2l6ZQoASW5jb25zaXN0ZW50IG1hcmtlciBzaXplCgBJbnZhbGlkIG1hcmtlciBzaXplCgBFcnJvciB3aXRoIFNJWiBtYXJrZXIgc2l6ZQoATm90IGVub3VnaCBtZW1vcnkgdG8gYWRkIGEgbmV3IHZhbGlkYXRpb24gcHJvY2VkdXJlCgBOb3QgZW5vdWdoIG1lbW9yeSB0byBkZWNvZGUgdGlsZQoARmFpbGVkIHRvIGRlY29kZSB0aGUgY29kZXN0cmVhbSBpbiB0aGUgSlAyIGZpbGUKAENhbm5vdCB0YWtlIGluIGNoYXJnZSBjb2xsZWN0aW9ucyB3aXRoIGluZGl4IHNodWZmbGUKAENhbm5vdCBhbGxvY2F0ZSBUaWVyIDEgaGFuZGxlCgBObyBkZWNvZGVkIGFyZWEgcGFyYW1ldGVycywgc2V0IHRoZSBkZWNvZGVkIGFyZWEgdG8gdGhlIHdob2xlIGltYWdlCgBOb3QgZW5vdWdoIG1lbW9yeSB0byBjcmVhdGUgVGFnLXRyZWUKAE5vdCBlbm91Z2ggbWVtb3J5IHRvIHJlaW5pdGlhbGl6ZSB0aGUgdGFnIHRyZWUKAEVycm9yIHJlYWRpbmcgU1BDb2QgU1BDb2MgZWxlbWVudCwgSW52YWxpZCB0cmFuc2Zvcm1hdGlvbiBmb3VuZAoARXJyb3IgcmVhZGluZyBTUENvZCBTUENvYyBlbGVtZW50LiBVbnN1cHBvcnRlZCBNaXhlZCBIVCBjb2RlLWJsb2NrIHN0eWxlIGZvdW5kCgBUaWxlIFkgY29vcmRpbmF0ZXMgYXJlIG5vdCBzdXBwb3J0ZWQKAFRpbGUgWCBjb29yZGluYXRlcyBhcmUgbm90IHN1cHBvcnRlZAoASW1hZ2UgY29vcmRpbmF0ZXMgYWJvdmUgSU5UX01BWCBhcmUgbm90IHN1cHBvcnRlZAoASlBFRzIwMDAgSGVhZGVyIGJveCBub3QgcmVhZCB5ZXQsICclYyVjJWMlYycgYm94IHdpbGwgYmUgaWdub3JlZAoAb3BqX2oya19tZXJnZV9wcHQoKSBoYXMgYWxyZWFkeSBiZWVuIGNhbGxlZAoATm90IGVub3VnaCBtZW1vcnkgdG8gcmVhZCBTT1QgbWFya2VyLiBUaWxlIGluZGV4IGFsbG9jYXRpb24gZmFpbGVkCgBJZ25vcmluZyBpaGRyIGJveC4gRmlyc3QgaWhkciBib3ggYWxyZWFkeSByZWFkCgBacHB0ICV1IGFscmVhZHkgcmVhZAoAWnBwbSAldSBhbHJlYWR5IHJlYWQKAFBURVJNIGNoZWNrIGZhaWx1cmU6ICVkIHN5bnRoZXRpemVkIDB4RkYgbWFya2VycyByZWFkCgAJCQkgY2Jsa3c9Ml4lZAoACQkJIGNibGtoPTJeJWQKAAkJCSBxbnRzdHk9JWQKACVzIGR4PSVkLCBkeT0lZAoACQkJIHJvaXNoaWZ0PSVkCgAJCQkgbnVtZ2JpdHM9JWQKAAkJIG51bWxheWVycz0lZAoAJXMgbnVtY29tcHM9JWQKAG9wal9qcDJfYXBwbHlfY2RlZjogYWNuPSVkLCBudW1jb21wcz0lZAoAb3BqX2pwMl9hcHBseV9jZGVmOiBjbj0lZCwgbnVtY29tcHM9JWQKAAkJCSBudW1yZXNvbHV0aW9ucz0lZAoACQkgdHlwZT0lI3gsIHBvcz0lbGxpLCBsZW49JWQKACVzIHNnbmQ9JWQKAAkJCSBxbWZiaWQ9JWQKACVzIHByZWM9JWQKAAkJIG5iIG9mIHRpbGUtcGFydCBpbiB0aWxlIFslZF09JWQKACVzIHgxPSVkLCB5MT0lZAoAJXMgeDA9JWQsIHkwPSVkCgBGYWlsZWQgdG8gZGVjb2RlIHRpbGUgJWQvJWQKAFNldHRpbmcgZGVjb2RpbmcgYXJlYSB0byAlZCwlZCwlZCwlZAoARmFpbGVkIHRvIGRlY29kZSBjb21wb25lbnQgJWQKAEludmFsaWQgdmFsdWUgZm9yIG51bXJlc29sdXRpb25zIDogJWQsIG1heCB2YWx1ZSBpcyBzZXQgaW4gb3BlbmpwZWcuaCBhdCAlZAoASW52YWxpZCBjb21wb25lbnQgbnVtYmVyOiAlZCwgcmVnYXJkaW5nIHRoZSBudW1iZXIgb2YgY29tcG9uZW50cyAlZAoAVG9vIG1hbnkgUE9DcyAlZAoASW52YWxpZCB0aWxlIG51bWJlciAlZAoASW52YWxpZCB0aWxlIHBhcnQgaW5kZXggZm9yIHRpbGUgbnVtYmVyICVkLiBHb3QgJWQsIGV4cGVjdGVkICVkCgBFcnJvciB3aXRoIFNJWiBtYXJrZXI6IG51bWJlciBvZiBjb21wb25lbnQgaXMgaWxsZWdhbCAtPiAlZAoATm90IGVub3VnaCBtZW1vcnkgZm9yIGNpZWxhYgoAQ2Fubm90IGFsbG9jYXRlIGNibGstPmRlY29kZWRfZGF0YQoARmFpbGVkIHRvIG1lcmdlIFBQVCBkYXRhCgBGYWlsZWQgdG8gbWVyZ2UgUFBNIGRhdGEKAEludmFsaWQgbnVtYmVyIG9mIGxheWVycyBpbiBDT0QgbWFya2VyIDogJWQgbm90IGluIHJhbmdlIFsxLTY1NTM1XQoAU3RyZWFtIHRvbyBzaG9ydCwgZXhwZWN0ZWQgU09UCgBVbmFibGUgdG8gc2V0IHQxIGhhbmRsZSBhcyBUTFMKAFN0cmVhbSBkb2VzIG5vdCBlbmQgd2l0aCBFT0MKAENhbm5vdCBoYW5kbGUgYm94IHNpemVzIGhpZ2hlciB0aGFuIDJeMzIKAG9wal9waV9uZXh0X2xyY3AoKTogaW52YWxpZCBjb21wbm8wL2NvbXBubzEKAG9wal9waV9uZXh0X3JsY3AoKTogaW52YWxpZCBjb21wbm8wL2NvbXBubzEKAG9wal9waV9uZXh0X2NwcmwoKTogaW52YWxpZCBjb21wbm8wL2NvbXBubzEKAG9wal9waV9uZXh0X3BjcmwoKTogaW52YWxpZCBjb21wbm8wL2NvbXBubzEKAG9wal9waV9uZXh0X3JwY2woKTogaW52YWxpZCBjb21wbm8wL2NvbXBubzEKAG9wal90MV9kZWNvZGVfY2JsaygpOiB1bnN1cHBvcnRlZCBicG5vX3BsdXNfb25lID0gJWQgPj0gMzEKAEZhaWxlZCB0byBkZWNvZGUgdGlsZSAxLzEKAEluc3VmZmljaWVudCBkYXRhIGZvciBDTUFQIGJveC4KAE5lZWQgdG8gcmVhZCBhIFBDTFIgYm94IGJlZm9yZSB0aGUgQ01BUCBib3guCgBJbnN1ZmZpY2llbnQgZGF0YSBmb3IgQ0RFRiBib3guCgBOdW1iZXIgb2YgY2hhbm5lbCBkZXNjcmlwdGlvbiBpcyBlcXVhbCB0byB6ZXJvIGluIENERUYgYm94LgoAU3RyZWFtIGVycm9yIHdoaWxlIHJlYWRpbmcgSlAyIEhlYWRlciBib3g6IG5vICdpaGRyJyBib3guCgBOb24gY29uZm9ybWFudCBjb2Rlc3RyZWFtIFRQc290PT1UTnNvdC4KAFN0cmVhbSBlcnJvciB3aGlsZSByZWFkaW5nIEpQMiBIZWFkZXIgYm94OiBib3ggbGVuZ3RoIGlzIGluY29uc2lzdGVudC4KAEJveCBsZW5ndGggaXMgaW5jb25zaXN0ZW50LgoAUmVzb2x1dGlvbiBmYWN0b3IgaXMgZ3JlYXRlciB0aGFuIHRoZSBtYXhpbXVtIHJlc29sdXRpb24gaW4gdGhlIGNvbXBvbmVudC4KAENvbXBvbmVudCBtYXBwaW5nIHNlZW1zIHdyb25nLiBUcnlpbmcgdG8gY29ycmVjdC4KAEluY29tcGxldGUgY2hhbm5lbCBkZWZpbml0aW9ucy4KAE1hbGZvcm1lZCBIVCBjb2RlYmxvY2suIEludmFsaWQgY29kZWJsb2NrIGxlbmd0aCB2YWx1ZXMuCgBXZSBkbyBub3Qgc3VwcG9ydCBtb3JlIHRoYW4gMyBjb2RpbmcgcGFzc2VzIGluIGFuIEhUIGNvZGVibG9jazsgVGhpcyBjb2RlYmxvY2tzIGhhcyAlZCBwYXNzZXMuCgBNYWxmb3JtZWQgSFQgY29kZWJsb2NrLiBEZWNvZGluZyB0aGlzIGNvZGVibG9jayBpcyBzdG9wcGVkLiBUaGVyZSBhcmUgJWQgemVybyBiaXRwbGFuZXMgaW4gJWQgYml0cGxhbmVzLgoAQ2Fubm90IHRha2UgaW4gY2hhcmdlIG11bHRpcGxlIHRyYW5zZm9ybWF0aW9uIHN0YWdlcy4KAFVua25vd24gbWFya2VyIGhhcyBiZWVuIGRldGVjdGVkIGFuZCBnZW5lcmF0ZWQgZXJyb3IuCgBDb2RlYyBwcm92aWRlZCB0byB0aGUgb3BqX3NldF9kZWNvZGVkX2NvbXBvbmVudHMgZnVuY3Rpb24gaXMgbm90IGEgZGVjb21wcmVzc29yIGhhbmRsZXIuCgBDb2RlYyBwcm92aWRlZCB0byB0aGUgb3BqX3NldHVwX2RlY29kZXIgZnVuY3Rpb24gaXMgbm90IGEgZGVjb21wcmVzc29yIGhhbmRsZXIuCgBDb2RlYyBwcm92aWRlZCB0byB0aGUgb3BqX3JlYWRfaGVhZGVyIGZ1bmN0aW9uIGlzIG5vdCBhIGRlY29tcHJlc3NvciBoYW5kbGVyLgoAVGlsZXMgZG9uJ3QgYWxsIGhhdmUgdGhlIHNhbWUgZGltZW5zaW9uLiBTa2lwIHRoZSBNQ1Qgc3RlcC4KAE51bWJlciBvZiBjb21wb25lbnRzICglZCkgaXMgaW5jb25zaXN0ZW50IHdpdGggYSBNQ1QuIFNraXAgdGhlIE1DVCBzdGVwLgoASlAyIGJveCB3aGljaCBhcmUgYWZ0ZXIgdGhlIGNvZGVzdHJlYW0gd2lsbCBub3QgYmUgcmVhZCBieSB0aGlzIGZ1bmN0aW9uLgoATWFsZm9ybWVkIEhUIGNvZGVibG9jay4gV2hlbiB0aGUgbnVtYmVyIG9mIHplcm8gcGxhbmVzIGJpdHBsYW5lcyBpcyBlcXVhbCB0byB0aGUgbnVtYmVyIG9mIGJpdHBsYW5lcywgb25seSB0aGUgY2xlYW51cCBwYXNzIG1ha2VzIHNlbnNlLCBidXQgd2UgaGF2ZSAlZCBwYXNzZXMgaW4gdGhpcyBjb2RlYmxvY2suIFRoZXJlZm9yZSwgb25seSB0aGUgY2xlYW51cCBwYXNzIHdpbGwgYmUgZGVjb2RlZC4gVGhpcyBtZXNzYWdlIHdpbGwgbm90IGJlIGRpc3BsYXllZCBhZ2Fpbi4KAEltYWdlIGhhcyBsZXNzIGNvbXBvbmVudHMgdGhhbiBjb2Rlc3RyZWFtLgoATmVlZCB0byBkZWNvZGUgdGhlIG1haW4gaGVhZGVyIGJlZm9yZSBiZWdpbiB0byBkZWNvZGUgdGhlIHJlbWFpbmluZyBjb2Rlc3RyZWFtLgoAUHNvdCB2YWx1ZSBvZiB0aGUgY3VycmVudCB0aWxlLXBhcnQgaXMgZXF1YWwgdG8gemVybywgd2UgYXNzdW1pbmcgaXQgaXMgdGhlIGxhc3QgdGlsZS1wYXJ0IG9mIHRoZSBjb2Rlc3RyZWFtLgoAQSBtYWxmb3JtZWQgY29kZWJsb2NrIHRoYXQgaGFzIG1vcmUgdGhhbiBvbmUgY29kaW5nIHBhc3MsIGJ1dCB6ZXJvIGxlbmd0aCBmb3IgMm5kIGFuZCBwb3RlbnRpYWxseSB0aGUgM3JkIHBhc3MgaW4gYW4gSFQgY29kZWJsb2NrLgoACQkJIHRpbGUtcGFydFslZF06IHN0YXJfcG9zPSVsbGksIGVuZF9oZWFkZXI9JWxsaSwgZW5kX3Bvcz0lbGxpLgoAVGlsZSAldSBoYXMgVFBzb3QgPT0gMCBhbmQgVE5zb3QgPT0gMCwgYnV0IG5vIG90aGVyIHRpbGUtcGFydHMgd2VyZSBmb3VuZC4gRU9DIGlzIGFsc28gbWlzc2luZy4KAENvbXBvbmVudCAlZCBkb2Vzbid0IGhhdmUgYSBtYXBwaW5nLgoAQSBjb25mb3JtaW5nIEpQMiByZWFkZXIgc2hhbGwgaWdub3JlIGFsbCBDb2xvdXIgU3BlY2lmaWNhdGlvbiBib3hlcyBhZnRlciB0aGUgZmlyc3QsIHNvIHdlIGlnbm9yZSB0aGlzIG9uZS4KAFRoZSBzaWduYXR1cmUgYm94IG11c3QgYmUgdGhlIGZpcnN0IGJveCBpbiB0aGUgZmlsZS4KAFRoZSAgYm94IG11c3QgYmUgdGhlIGZpcnN0IGJveCBpbiB0aGUgZmlsZS4KAFRoZSBmdHlwIGJveCBtdXN0IGJlIHRoZSBzZWNvbmQgYm94IGluIHRoZSBmaWxlLgoARmFpbGVkIHRvIGRlY29kZS4KAE1hbGZvcm1lZCBIVCBjb2RlYmxvY2suIEluY29ycmVjdCBNRUwgc2VnbWVudCBzZXF1ZW5jZS4KAENvbXBvbmVudCAlZCBpcyBtYXBwZWQgdHdpY2UuCgBPbmx5IG9uZSBDTUFQIGJveCBpcyBhbGxvd2VkLgoAYXBwbHlfY29sb3JfdHJhbnNmb3JtcyA9IE9QSl9UUlVFIGlzIG5vdCBzdXBwb3J0ZWQuCgBXZSBuZWVkIGFuIGltYWdlIHByZXZpb3VzbHkgY3JlYXRlZC4KAElIRFIgYm94X21pc3NpbmcuIFJlcXVpcmVkLgoASlAySCBib3ggbWlzc2luZy4gUmVxdWlyZWQuCgBOb3Qgc3VyZSBob3cgdGhhdCBoYXBwZW5lZC4KAE1haW4gaGVhZGVyIGhhcyBiZWVuIGNvcnJlY3RseSBkZWNvZGVkLgoAVGlsZSAlZC8lZCBoYXMgYmVlbiBkZWNvZGVkLgoASGVhZGVyIG9mIHRpbGUgJWQgLyAlZCBoYXMgYmVlbiByZWFkLgoARW1wdHkgU09UIG1hcmtlciBkZXRlY3RlZDogUHNvdD0lZC4KAERpcmVjdCB1c2UgYXQgIyVkIGhvd2V2ZXIgcGNvbD0lZC4KAEltcGxlbWVudGF0aW9uIGxpbWl0YXRpb246IGZvciBwYWxldHRlIG1hcHBpbmcsIHBjb2xbJWRdIHNob3VsZCBiZSBlcXVhbCB0byAlZCwgYnV0IGlzIGVxdWFsIHRvICVkLgoASW52YWxpZCBjb21wb25lbnQvcGFsZXR0ZSBpbmRleCBmb3IgZGlyZWN0IG1hcHBpbmcgJWQuCgBJbnZhbGlkIHZhbHVlIGZvciBjbWFwWyVkXS5tdHlwID0gJWQuCgBQc290IHZhbHVlIGlzIG5vdCBjb3JyZWN0IHJlZ2FyZHMgdG8gdGhlIEpQRUcyMDAwIG5vcm06ICVkLgoATWFsZm9ybWVkIEhUIGNvZGVibG9jay4gVkxDIGNvZGUgcHJvZHVjZXMgc2lnbmlmaWNhbnQgc2FtcGxlcyBvdXRzaWRlIHRoZSBjb2RlYmxvY2sgYXJlYS4KAFVuZXhwZWN0ZWQgT09NLgoAMzIgYml0cyBhcmUgbm90IGVub3VnaCB0byBkZWNvZGUgdGhpcyBjb2RlYmxvY2ssIHNpbmNlIHRoZSBudW1iZXIgb2YgYml0cGxhbmUsICVkLCBpcyBsYXJnZXIgdGhhbiAzMC4KAEJvdHRvbSBwb3NpdGlvbiBvZiB0aGUgZGVjb2RlZCBhcmVhIChyZWdpb25feTE9JWQpIHNob3VsZCBiZSA+IDAuCgBSaWdodCBwb3NpdGlvbiBvZiB0aGUgZGVjb2RlZCBhcmVhIChyZWdpb25feDE9JWQpIHNob3VsZCBiZSA+IDAuCgBVcCBwb3NpdGlvbiBvZiB0aGUgZGVjb2RlZCBhcmVhIChyZWdpb25feTA9JWQpIHNob3VsZCBiZSA+PSAwLgoATGVmdCBwb3NpdGlvbiBvZiB0aGUgZGVjb2RlZCBhcmVhIChyZWdpb25feDA9JWQpIHNob3VsZCBiZSA+PSAwLgoARXJyb3IgcmVhZGluZyBQUFQgbWFya2VyOiBwYWNrZXQgaGVhZGVyIGhhdmUgYmVlbiBwcmV2aW91c2x5IGZvdW5kIGluIHRoZSBtYWluIGhlYWRlciAoUFBNIG1hcmtlcikuCgBTdGFydCB0byByZWFkIGoyayBtYWluIGhlYWRlciAoJWxsZCkuCgBCb3R0b20gcG9zaXRpb24gb2YgdGhlIGRlY29kZWQgYXJlYSAocmVnaW9uX3kxPSVkKSBpcyBvdXRzaWRlIHRoZSBpbWFnZSBhcmVhIChZc2l6PSVkKS4KAFVwIHBvc2l0aW9uIG9mIHRoZSBkZWNvZGVkIGFyZWEgKHJlZ2lvbl95MD0lZCkgaXMgb3V0c2lkZSB0aGUgaW1hZ2UgYXJlYSAoWXNpej0lZCkuCgBSaWdodCBwb3NpdGlvbiBvZiB0aGUgZGVjb2RlZCBhcmVhIChyZWdpb25feDE9JWQpIGlzIG91dHNpZGUgdGhlIGltYWdlIGFyZWEgKFhzaXo9JWQpLgoATGVmdCBwb3NpdGlvbiBvZiB0aGUgZGVjb2RlZCBhcmVhIChyZWdpb25feDA9JWQpIGlzIG91dHNpZGUgdGhlIGltYWdlIGFyZWEgKFhzaXo9JWQpLgoAQm90dG9tIHBvc2l0aW9uIG9mIHRoZSBkZWNvZGVkIGFyZWEgKHJlZ2lvbl95MT0lZCkgaXMgb3V0c2lkZSB0aGUgaW1hZ2UgYXJlYSAoWU9zaXo9JWQpLgoAVXAgcG9zaXRpb24gb2YgdGhlIGRlY29kZWQgYXJlYSAocmVnaW9uX3kwPSVkKSBpcyBvdXRzaWRlIHRoZSBpbWFnZSBhcmVhIChZT3Npej0lZCkuCgBSaWdodCBwb3NpdGlvbiBvZiB0aGUgZGVjb2RlZCBhcmVhIChyZWdpb25feDE9JWQpIGlzIG91dHNpZGUgdGhlIGltYWdlIGFyZWEgKFhPc2l6PSVkKS4KAExlZnQgcG9zaXRpb24gb2YgdGhlIGRlY29kZWQgYXJlYSAocmVnaW9uX3gwPSVkKSBpcyBvdXRzaWRlIHRoZSBpbWFnZSBhcmVhIChYT3Npej0lZCkuCgBTaXplIHggb2YgdGhlIGRlY29kZWQgY29tcG9uZW50IGltYWdlIGlzIGluY29ycmVjdCAoY29tcFslZF0udz0lZCkuCgBTaXplIHkgb2YgdGhlIGRlY29kZWQgY29tcG9uZW50IGltYWdlIGlzIGluY29ycmVjdCAoY29tcFslZF0uaD0lZCkuCgBUaWxlIHJlYWQsIGRlY29kZWQgYW5kIHVwZGF0ZWQgaXMgbm90IHRoZSBkZXNpcmVkIG9uZSAoJWQgdnMgJWQpLgoASW52YWxpZCBjb21wb25lbnQgaW5kZXggJWQgKD49ICVkKS4KAG9wal9yZWFkX2hlYWRlcigpIHNob3VsZCBiZSBjYWxsZWQgYmVmb3JlIG9wal9zZXRfZGVjb2RlZF9jb21wb25lbnRzKCkuCgBNZW1vcnkgYWxsb2NhdGlvbiBmYWlsdXJlIGluIG9wal9qcDJfYXBwbHlfcGNscigpLgoAaW1hZ2UtPmNvbXBzWyVkXS5kYXRhID09IE5VTEwgaW4gb3BqX2pwMl9hcHBseV9wY2xyKCkuCgBpbnZhbGlkIGJveCBzaXplICVkICgleCkKAEZhaWwgdG8gcmVhZCB0aGUgY3VycmVudCBtYXJrZXIgc2VnbWVudCAoJSN4KQoARXJyb3Igd2l0aCBTSVogbWFya2VyOiBJSERSIHcoJXUpIGgoJXUpIHZzLiBTSVogdygldSkgaCgldSkKAEVycm9yIHJlYWRpbmcgQ09DIG1hcmtlciAoYmFkIG51bWJlciBvZiBjb21wb25lbnRzKQoASW52YWxpZCBudW1iZXIgb2YgdGlsZXMgOiAldSB4ICV1IChtYXhpbXVtIGZpeGVkIGJ5IGpwZWcyMDAwIG5vcm0gaXMgNjU1MzUgdGlsZXMpCgBJbnZhbGlkIG51bWJlciBvZiBjb21wb25lbnRzIChpaGRyKQoATm90IGVub3VnaCBtZW1vcnkgdG8gaGFuZGxlIGltYWdlIGhlYWRlciAoaWhkcikKAFdyb25nIHZhbHVlcyBmb3I6IHcoJWQpIGgoJWQpIG51bWNvbXBzKCVkKSAoaWhkcikKAEludmFsaWQgdmFsdWVzIGZvciBjb21wID0gJWQgOiBkeD0ldSBkeT0ldSAoc2hvdWxkIGJlIGJldHdlZW4gMSBhbmQgMjU1IGFjY29yZGluZyB0byB0aGUgSlBFRzIwMDAgbm9ybSkKAEJhZCBpbWFnZSBoZWFkZXIgYm94IChiYWQgc2l6ZSkKAEJhZCBDT0xSIGhlYWRlciBib3ggKGJhZCBzaXplKQoAQmFkIEJQQ0MgaGVhZGVyIGJveCAoYmFkIHNpemUpCgBFcnJvciB3aXRoIFNJWiBtYXJrZXI6IG5lZ2F0aXZlIG9yIHplcm8gaW1hZ2Ugc2l6ZSAoJWxsZCB4ICVsbGQpCgBza2lwOiBzZWdtZW50IHRvbyBsb25nICglZCkgd2l0aCBtYXggKCVkKSBmb3IgY29kZWJsb2NrICVkIChwPSVkLCBiPSVkLCByPSVkLCBjPSVkKQoAcmVhZDogc2VnbWVudCB0b28gbG9uZyAoJWQpIHdpdGggbWF4ICglZCkgZm9yIGNvZGVibG9jayAlZCAocD0lZCwgYj0lZCwgcj0lZCwgYz0lZCkKAERlc3BpdGUgSlAyIEJQQyE9MjU1LCBwcmVjaXNpb24gYW5kL29yIHNnbmQgdmFsdWVzIGZvciBjb21wWyVkXSBpcyBkaWZmZXJlbnQgdGhhbiBjb21wWzBdOgogICAgICAgIFswXSBwcmVjKCVkKSBzZ25kKCVkKSBbJWRdIHByZWMoJWQpIHNnbmQoJWQpCgBiYWQgY29tcG9uZW50IG51bWJlciBpbiBSR04gKCVkIHdoZW4gdGhlcmUgYXJlIG9ubHkgJWQpCgBFcnJvciB3aXRoIFNJWiBtYXJrZXI6IG51bWJlciBvZiBjb21wb25lbnQgaXMgbm90IGNvbXBhdGlibGUgd2l0aCB0aGUgcmVtYWluaW5nIG51bWJlciBvZiBwYXJhbWV0ZXJzICggJWQgdnMgJWQpCgBFcnJvciB3aXRoIFNJWiBtYXJrZXI6IGludmFsaWQgdGlsZSBzaXplICh0ZHg6ICVkLCB0ZHk6ICVkKQoAQmFkIENPTFIgaGVhZGVyIGJveCAoYmFkIHNpemU6ICVkKQoAQmFkIENPTFIgaGVhZGVyIGJveCAoQ0lFTGFiLCBiYWQgc2l6ZTogJWQpCgBQVEVSTSBjaGVjayBmYWlsdXJlOiAlZCByZW1haW5pbmcgYnl0ZXMgaW4gY29kZSBibG9jayAoJWQgdXNlZCAvICVkKQoATWFsZm9ybWVkIEhUIGNvZGVibG9jay4gT25lIG9mIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uIGlzIG5vdCBtZXQ6IDIgPD0gU2N1cCA8PSBtaW4oTGN1cCwgNDA3OSkKAEludmFsaWQgdmFsdWVzIGZvciBjb21wID0gJWQgOiBwcmVjPSV1IChzaG91bGQgYmUgYmV0d2VlbiAxIGFuZCAzOCBhY2NvcmRpbmcgdG8gdGhlIEpQRUcyMDAwIG5vcm0uIE9wZW5KcGVnIG9ubHkgc3VwcG9ydHMgdXAgdG8gMzEpCgBJbnZhbGlkIGJpdCBudW1iZXIgJWQgaW4gb3BqX3QyX3JlYWRfcGFja2V0X2hlYWRlcigpCgBTdHJlYW0gZXJyb3IhCgBFcnJvciBvbiB3cml0aW5nIHN0cmVhbSEKAFN0cmVhbSByZWFjaGVkIGl0cyBlbmQgIQoARXhwZWN0ZWQgYSBTT0MgbWFya2VyIAoASW52YWxpZCBib3ggc2l6ZSAlZCBmb3IgYm94ICclYyVjJWMlYycuIE5lZWQgJWQgYnl0ZXMsICVkIGJ5dGVzIHJlbWFpbmluZyAKAE1hbGZvcm1lZCBIVCBjb2RlYmxvY2suIERlY29kaW5nIHRoaXMgY29kZWJsb2NrIGlzIHN0b3BwZWQuIFVfcSBpcyBsYXJnZXIgdGhhbiB6ZXJvIGJpdHBsYW5lcyArIDEgCgBNYWxmb3JtZWQgSFQgY29kZWJsb2NrLiBEZWNvZGluZyB0aGlzIGNvZGVibG9jayBpcyBzdG9wcGVkLiBVX3EgaXNsYXJnZXIgdGhhbiBiaXRwbGFuZXMgKyAxIAoAQ09MUiBCT1ggbWV0aCB2YWx1ZSBpcyBub3QgYSByZWd1bGFyIHZhbHVlICglZCksIHNvIHdlIHdpbGwgaWdub3JlIHRoZSBlbnRpcmUgQ29sb3VyIFNwZWNpZmljYXRpb24gYm94LiAKAFdoaWxlIHJlYWRpbmcgQ0NQX1FOVFNUWSBlbGVtZW50IGluc2lkZSBRQ0Qgb3IgUUNDIG1hcmtlciBzZWdtZW50LCBudW1iZXIgb2Ygc3ViYmFuZHMgKCVkKSBpcyBncmVhdGVyIHRvIE9QSl9KMktfTUFYQkFORFMgKCVkKS4gU28gd2UgbGltaXQgdGhlIG51bWJlciBvZiBlbGVtZW50cyBzdG9yZWQgdG8gT1BKX0oyS19NQVhCQU5EUyAoJWQpIGFuZCBza2lwIHRoZSByZXN0LiAKAEpQMiBJSERSIGJveDogY29tcHJlc3Npb24gdHlwZSBpbmRpY2F0ZSB0aGF0IHRoZSBmaWxlIGlzIG5vdCBhIGNvbmZvcm1pbmcgSlAyIGZpbGUgKCVkKSAKAFRpbGUgaW5kZXggcHJvdmlkZWQgYnkgdGhlIHVzZXIgaXMgaW5jb3JyZWN0ICVkIChtYXggPSAlZCkgCgBFcnJvciBkZWNvZGluZyBjb21wb25lbnQgJWQuClRoZSBudW1iZXIgb2YgcmVzb2x1dGlvbnMgdG8gcmVtb3ZlICglZCkgaXMgZ3JlYXRlciBvciBlcXVhbCB0aGFuIHRoZSBudW1iZXIgb2YgcmVzb2x1dGlvbnMgb2YgdGhpcyBjb21wb25lbnQg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AAABVAAAAQAAABBQAADQUAAAAUgAAAAAAAAgUAAAwFAAAAFIAAABAAAAMFAAANBQAAABOAAAAAAAAEBQAADAUAAAATgAAAEAAABQUAAA0FAAAAEwAAAAAAAAYFAAACBRAAABMAAAAQAAAHBQAAAwUQAAASQAAAAAAACAUAAAQFEAAAEkAAABAAAAkFAAAFBRAAABHAAAAAAAAKBQAACAUQAAARwAAAEAAACwUAAAkFEAAAEWAAAAAAAAoFIAAKBRAAABFgAAAQAAALBSAACwUQAAAVYAAAAAAADgUAAA0FAAAAFWAAABAAAA8FAAAMBQAAABVAAAAAAAAABRAADAUAAAAVQAAAEAAAAQUQAA0FAAAAFRAAAAAAAAIFEAAOBQAAABUQAAAQAAADBRAADwUAAAAUgAAAAAAABAUQAAAFEAAAFIAAABAAAAUFEAABBRAAABOAAAAAAAAGBRAAAgUQAAATgAAAEAAABwUQAAMFEAAAE0AAAAAAAAgFEAAEBRAAABNAAAAQAAAJBRAABQUQAAATAAAAAAAACgUQAAYFEAAAEwAAABAAAAsFEAAHBRAAABKAAAAAAAAMBRAABgUQAAASgAAAEAAADQUQAAcFEAAAEkAAAAAAAA4FEAAIBRAAABJAAAAQAAAPBRAACQUQAAASIAAAAAAAAAUgAAoFEAAAEiAAABAAAAEFIAALBRAAABHAAAAAAAACBSAADAUQAAARwAAAEAAAAwUgAA0FEAAAEYAAAAAAAAQFIAAOBRAAABGAAAAQAAAFBSAADwUQAAARYAAAAAAABgUgAAAFIAAAEWAAABAAAAcFIAABBSAAABFAAAAAAAAIBSAAAgUgAAARQAAAEAAACQUgAAMFIAAAESAAAAAAAAoFIAAEBSAAABEgAAAQAAALBSAABQUgAAAREAAAAAAADAUgAAYFIAAAERAAABAAAA0FIAAHBSAADBCgAAAAAAAOBSAACAUgAAwQoAAAEAAADwUgAAkFIAAMEJAAAAAAAAAFMAAKBSAADBCQAAAQAAABBTAACwUgAAoQgAAAAAAAAgUwAAwFIAAKEIAAABAAAAMFMAANBSAAAhBQAAAAAAAEBTAADgUgAAIQUAAAEAAABQUwAA8FIAAEEEAAAAAAAAYFMAAABTAABBBAAAAQAAAHBTAAAQUwAAoQIAAAAAAACAUwAAIFMAAKECAAABAAAAkFMAADBTAAAhAgAAAAAAAKBTAABAUwAAIQIAAAEAAACwUwAAUFMAAEEBAAAAAAAAwFMAAGBTAABBAQAAAQAAANBTAABwUwAAEQEAAAAAAADgUwAAgFMAABEBAAABAAAA8FMAAJBTAACFAAAAAAAAAABUAACgUwAAhQAAAAEAAAAQVAAAsFMAAEkAAAAAAAAAIFQAAMBTAABJAAAAAQAAADBUAADQUwAAJQAAAAAAAABAVAAA4FMAACUAAAABAAAAUFQAAPBTAAAVAAAAAAAAAGBUAAAAVAAAFQAAAAEAAABwVAAAEFQAAAkAAAAAAAAAgFQAACBUAAAJAAAAAQAAAJBUAAAwVAAABQAAAAAAAACgVAAAQFQAAAUAAAABAAAAsFQAAFBUAAABAAAAAAAAAKBUAABgVAAAAQAAAAEAAACwVAAAcFQAAAFWAAAAAAAAwFQAAMBUAAABVgAAAQAAANBUAADQVAAAAAEDAwECAwMFBgcHBgYHBwABAwMBAgMDBQYHBwYGBwcFBgcHBgYHBwgICAgICAgIBQYHBwYGBwcICAgICAgICAECAwMCAgMDBgYHBwYGBwcBAgMDAgIDAwYGBwcGBgcHBgYHBwYGBwcICAgICAgICAYGBwcGBgcHCAgICAgICAgDAwQEAwMEBAcHBwcHBwcHAwMEBAMDBAQHBwcHBwcHBwcHBwcHBwcHCAgICAgICAgHBwcHBwcHBwgICAgICAgIAwMEBAMDBAQHBwcHBwcHBwMDBAQDAwQEBwcHBwcHBwcHBwcHBwcHBwgICAgICAgIBwcHBwcHBwcICAgICAgICAECAwMCAgMDBgYHBwYGBwcBAgMDAgIDAwYGBwcGBgcHBgYHBwYGBwcICAgICAgICAYGBwcGBgcHCAgICAgICAgCAgMDAgIDAwYGBwcGBgcHAgIDAwICAwMGBgcHBgYHBwYGBwcGBgcHCAgICAgICAgGBgcHBgYHBwgICAgICAgIAwMEBAMDBAQHBwcHBwcHBwMDBAQDAwQEBwcHBwcHBwcHBwcHBwcHBwgICAgICAgIBwcHBwcHBwcICAgICAgICAMDBAQDAwQEBwcHBwcHBwcDAwQEAwMEBAcHBwcHBwcHBwcHBwcHBwcICAgICAgICAcHBwcHBwcHCAgICAgICAgAAQUGAQIGBgMDBwcDAwcHAAEFBgECBgYDAwcHAwMHBwMDBwcDAwcHBAQHBwQEBwcDAwcHAwMHBwQEBwcEBAcHAQIGBgICBgYDAwcHAwMHBwECBgYCAgYGAwMHBwMDBwcDAwcHAwMHBwQEBwcEBAcHAwMHBwMDBwcEBAcHBAQHBwUGCAgGBggIBwcICAcHCAgFBggIBgYICAcHCAgHBwgIBwcICAcHCAgHBwgIBwcICAcHCAgHBwgIBwcICAcHCAgGBggIBgYICAcHCAgHBwgIBgYICAYGCAgHBwgIBwcICAcHCAgHBwgIBwcICAcHCAgHBwgIBwcICAcHCAgHBwgIAQIGBgICBgYDAwcHAwMHBwECBgYCAgYGAwMHBwMDBwcDAwcHAwMHBwQEBwcEBAcHAwMHBwMDBwcEBAcHBAQHBwICBgYCAgYGAwMHBwMDBwcCAgYGAgIGBgMDBwcDAwcHAwMHBwMDBwcEBAcHBAQHBwMDBwcDAwcHBAQHBwQEBwcGBggIBgYICAcHCAgHBwgIBgYICAYGCAgHBwgIBwcICAcHCAgHBwgIBwcICAcHCAgHBwgIBwcICAcHCAgHBwgIBgYICAYGCAgHBwgIBwcICAYGCAgGBggIBwcICAcHCAgHBwgIBwcICAcHCAgHBwgIBwcICAcHCAgHBwgIBwcICAABAwMBAgMDBQYHBwYGBwcAAQMDAQIDAwUGBwcGBgcHBQYHBwYGBwcICAgICAgICAUGBwcGBgcHCAgICAgICAgBAgMDAgIDAwYGBwcGBgcHAQIDAwICAwMGBgcHBgYHBwYGBwcGBgcHCAgICAgICAgGBgcHBgYHBwgICAgICAgIAwMEBAMDBAQHBwcHBwcHBwMDBAQDAwQEBwcHBwcHBwcHBwcHBwcHBwgICAgICAgIBwcHBwcHBwcICAgICAgICAMDBAQDAwQEBwcHBwcHBwcDAwQEAwMEBAcHBwcHBwcHBwcHBwcHBwcICAgICAgICAcHBwcHBwcHCAgICAgICAgBAgMDAgIDAwYGBwcGBgcHAQIDAwICAwMGBgcHBgYHBwYGBwcGBgcHCAgICAgICAgGBgcHBgYHBwgICAgICAgIAgIDAwICAwMGBgcHBgYHBwICAwMCAgMDBgYHBwYGBwcGBgcHBgYHBwgICAgICAgIBgYHBwYGBwcICAgICAgICAMDBAQDAwQEBwcHBwcHBwcDAwQEAwMEBAcHBwcHBwcHBwcHBwcHBwcICAgICAgICAcHBwcHBwcHCAgICAgICAgDAwQEAwMEBAcHBwcHBwcHAwMEBAMDBAQHBwcHBwcHBwcHBwcHBwcHCAgICAgICAgHBwcHBwcHBwgICAgICAgIAAMBBAMGBAcBBAIFBAcFBwADAQQDBgQHAQQCBQQHBQcBBAIFBAcFBwIFAgUFBwUHAQQCBQQHBQcCBQIFBQcFBwMGBAcGCAcIBAcFBwcIBwgDBgQHBggHCAQHBQcHCAcIBAcFBwcIBwgFBwUHBwgHCAQHBQcHCAcIBQcFBwcIBwgBBAIFBAcFBwIFAgUFBwUHAQQCBQQHBQcCBQIFBQcFBwIFAgUFBwUHAgUCBQUHBQcCBQIFBQcFBwIFAgUFBwUHBAcFBwcIBwgFBwUHBwgHCAQHBQcHCAcIBQcFBwcIBwgFBwUHBwgHCAUHBQcHCAcIBQcFBwcIBwgFBwUHBwgHCAMGBAcGCAcIBAcFBwcIBwgDBgQHBggHCAQHBQcHCAcIBAcFBwcIBwgFBwUHBwgHCAQHBQcHCAcIBQcFBwcIBwgGCAcICAgICAcIBwgICAgIBggHCAgICAgHCAcICAgICAcIBwgICAgIBwgHCAgICAgHCAcICAgICAcIBwgICAgIBAcFBwcIBwgFBwUHBwgHCAQHBQcHCAcIBQcFBwcIBwgFBwUHBwgHCAUHBQcHCAcIBQcFBwcIBwgFBwUHBwgHCAcIBwgICAgIBwgHCAgICAgHCAcICAgICAcIBwgICAgIBwgHCAgICAgHCAcICAgICAcIBwgICAgIBwgHCAgICAgJCQoKCQkKCgwMDQsMDA0LCQkKCgkJCgoMDAsNDAwLDQwMDQ0MDAsLDAkNCgkMCgsMDAsLDAwNDQwJCwoJDAoNCQkKCgkJCgoMDA0LDAwNCwkJCgoJCQoKDAwLDQwMCw0MDA0NDAwLCwwJDQoJDAoLDAwLCwwMDQ0MCQsKCQwKDQoKCgoKCgoKDQsNCw0LDQsKCgkJCgoJCQ0LDAwNCwwMDQ0NDQsLCwsNCg0KCgsKCw0NDAwLCwwMDQoMCQoLCQwKCgkJCgoJCQsNDAwLDQwMCgoKCgoKCgoLDQsNCw0LDQsLDAwNDQwMCwoMCQoNCQwLCwsLDQ0NDQsKCwoKDQoNAEHpuwELNwEAAQABAAEAAAEBAAABAQABAAEAAQABAAAAAAEBAQEAAAAAAAEAAQAAAAABAQEBAAAAAQABAQEAQam8AQs3AQABAAEAAQAAAQEAAAEBAAEAAQABAAEAAAAAAQEBAQAAAAAAAQABAAAAAAEBAQEAAAABAAEBAQBB6bwBCwcBAAEAAQABAEH5vAELlQIBAAEAAQABAAAAAAEBAQEAAAAAAAEAAQAAAAABAQEBAAAAAAABAAEBAQAAAQEAAAABAAEAAQABAQEBAQEBAQEAAQABAAEAAQAAAAABAQEBAAEAAAEBAAEAAAAAAQEBAQABAAEBAQEBAgAAAAQAAAAEAAAACAAAAJD/AAAMAAAAGAAAAFL/AAAUAAAAGQAAAFP/AAAUAAAAGgAAAF7/AAAUAAAAGwAAAFz/AAAUAAAAHAAAAF3/AAAUAAAAHQAAAF//AAAUAAAAHgAAAFH/AAACAAAAHwAAAFX/AAAEAAAAIAAAAFf/AAAEAAAAIQAAAFj/AAAQAAAAIgAAAGD/AAAEAAAAIwAAAGH/AAAQAAAAJAAAAJH/AEGYvwELZWP/AAAEAAAAJQAAAGT/AAAUAAAAJgAAAHT/AAAUAAAAJwAAAHj/AAAEAAAAKAAAAFD/AAAEAAAAKQAAAFn/AAAEAAAAKgAAAHX/AAAUAAAAKwAAAHf/AAAUAAAALAAAAAAAAAAUAEGQwAELNS0AAAAuAAAALwAAADAAAAAxAAAAMgAAADMAAAA0AAAAICBQajYAAABweXRmNwAAAGgycGo4AEHQwAELMnJkaGk5AAAAcmxvYzoAAABjY3BiOwAAAHJsY3A8AAAAcGFtYz0AAABmZWRjPgAAAHhiAEGQwQELQRkACwAZGRkAAAAABQAAAAAAAAkAAAAACwAAAAAAAAAAGQAKChkZGQMKBwABAAkLGAAACQYLAAALAAYZAAAAGRkZAEHhwQELIQ4AAAAAAAAAABkACw0ZGRkADQAAAgAJDgAAAAkADgAADgBBm8IBCwEMAEGnwgELFRMAAAAAEwAAAAAJDAAAAAAADAAADABB1cIBCwEQAEHhwgELFQ8AAAAEDwAAAAAJEAAAAAAAEAAAEABBj8MBCwESAEGbwwELHhEAAAAAEQAAAAAJEgAAAAAAEgAAEgAAGgAAABoaGgBB0sMBCw4aAAAAGhoaAAAAAAAACQBBg8QBCwEUAEGPxAELFRcAAAAAFwAAAAAJFAAAAAAAFAAAFABBvcQBCwEWAEHJxAELJxUAAAAAFQAAAAAJFgAAAAAAFgAAFgAAMDEyMzQ1Njc4OUFCQ0RFRgBB8cQBCwhsAQAAAAAABQBBhMUBCwFpAEGcxQELDmoAAABrAAAA+GcAAAAEAEG0xQELAQEAQcTFAQsF/////wo="); return receiveInstance(instantiateSync(u, e)[0]); }(); G.j, a._malloc = G.k, a._free = G.l, a._jp2_decode = G.n, G._emscripten_stack_restore, G._emscripten_stack_alloc, G.emscripten_stack_get_current; w = function runCaller() { D || run(); D || (w = runCaller); }; function run() { if (!(m > 0)) { !function preRun() { if (a.preRun) { "function" == typeof a.preRun && (a.preRun = [a.preRun]); for (; a.preRun.length;) e = a.preRun.shift(), d.unshift(e); } var e; callRuntimeCallbacks(d); }(); if (!(m > 0)) if (a.setStatus) { a.setStatus("Running..."); setTimeout((function () { setTimeout((function () { a.setStatus(""); }), 1); doRun(); }), 1); } else doRun(); } function doRun() { if (!D) { D = !0; a.calledRun = !0; !function initRuntime() { callRuntimeCallbacks(f); }(); t(a); a.onRuntimeInitialized && a.onRuntimeInitialized(); !function postRun() { if (a.postRun) { "function" == typeof a.postRun && (a.postRun = [a.postRun]); for (; a.postRun.length;) e = a.postRun.shift(), p.unshift(e); } var e; callRuntimeCallbacks(p); }(); } } } if (a.preInit) { "function" == typeof a.preInit && (a.preInit = [a.preInit]); for (; a.preInit.length > 0;) a.preInit.pop()(); } run(); return a; }); var Ii = gi; var JpxError = /** @class */ (function (_super) { tslib_1.__extends(JpxError, _super); function JpxError(e) { return _super.call(this, e, "JpxError") || this; } return JpxError; }(rt)); var JpxImage = /** @class */ (function () { function JpxImage() { } JpxImage.decode = function (e, t) { if (t === void 0) { t = !1; } tslib_1.__classPrivateFieldSet(this, _g, tslib_1.__classPrivateFieldGet(this, _g, "f", _JpxImage_y) || Ii({ warn: warn }), "f", _JpxImage_y); var i = tslib_1.__classPrivateFieldGet(this, _g, "f", _JpxImage_y).decode(e, t); if ("string" == typeof i) throw new JpxError(i); return i; }; JpxImage.cleanup = function () { tslib_1.__classPrivateFieldSet(this, _g, null, "f", _JpxImage_y); }; JpxImage.parseImageProperties = function (e) { var t = e.getByte(); for (; t >= 0;) { var i_66 = t; t = e.getByte(); if (65361 === (i_66 << 8 | t)) { e.skip(4); var t_77 = e.getInt32() >>> 0, i_67 = e.getInt32() >>> 0, a_63 = e.getInt32() >>> 0, s_45 = e.getInt32() >>> 0; e.skip(16); return { width: t_77 - a_63, height: i_67 - s_45, bitsPerComponent: 8, componentsCount: e.getUint16() }; } } throw new JpxError("No size marker found in JPX stream"); }; var _g, _JpxImage_y; _g = JpxImage; _JpxImage_y = { value: null }; return JpxImage; }()); var JpxStream = /** @class */ (function (_super) { tslib_1.__extends(JpxStream, _super); function JpxStream(e, t, i) { var _this = _super.call(this, t) || this; _this.stream = e; _this.dict = e.dict; _this.maybeLength = t; _this.params = i; return _this; } Object.defineProperty(JpxStream.prototype, "bytes", { get: function () { return shadow(this, "bytes", this.stream.getBytes(this.maybeLength)); }, enumerable: false, configurable: true }); JpxStream.prototype.ensureBuffer = function (e) { }; JpxStream.prototype.readBlock = function (e) { if (!this.eof) { this.buffer = JpxImage.decode(this.bytes, e); this.bufferLength = this.buffer.length; this.eof = !0; } }; return JpxStream; }(DecodeStream)); var LZWStream = /** @class */ (function (_super) { tslib_1.__extends(LZWStream, _super); function LZWStream(e, t, i) { var _this = _super.call(this, t) || this; _this.str = e; _this.dict = e.dict; _this.cachedData = 0; _this.bitsCached = 0; var a = 4096, s = { earlyChange: i, codeLength: 9, nextCode: 258, dictionaryValues: new Uint8Array(a), dictionaryLengths: new Uint16Array(a), dictionaryPrevCodes: new Uint16Array(a), currentSequence: new Uint8Array(a), currentSequenceLength: 0 }; for (var e_89 = 0; e_89 < 256; ++e_89) { s.dictionaryValues[e_89] = e_89; s.dictionaryLengths[e_89] = 1; } _this.lzwState = s; return _this; } LZWStream.prototype.readBits = function (e) { var t = this.bitsCached, i = this.cachedData; for (; t < e;) { var e_90 = this.str.getByte(); if (-1 === e_90) { this.eof = !0; return null; } i = i << 8 | e_90; t += 8; } this.bitsCached = t -= e; this.cachedData = i; this.lastCode = null; return i >>> t & (1 << e) - 1; }; LZWStream.prototype.readBlock = function () { var e, t, i, a = 1024; var s = this.lzwState; if (!s) return; var r = s.earlyChange; var n = s.nextCode; var o = s.dictionaryValues, g = s.dictionaryLengths, c = s.dictionaryPrevCodes; var h = s.codeLength, l = s.prevCode; var C = s.currentSequence; var Q = s.currentSequenceLength, E = 0, u = this.bufferLength, d = this.ensureBuffer(this.bufferLength + a); for (e = 0; e < 512; e++) { var e_91 = this.readBits(h), s_46 = Q > 0; if (e_91 < 256) { C[0] = e_91; Q = 1; } else { if (!(e_91 >= 258)) { if (256 === e_91) { h = 9; n = 258; Q = 0; continue; } this.eof = !0; delete this.lzwState; break; } if (e_91 < n) { Q = g[e_91]; for (t = Q - 1, i = e_91; t >= 0; t--) { C[t] = o[i]; i = c[i]; } } else C[Q++] = C[0]; } if (s_46) { c[n] = l; g[n] = g[l] + 1; o[n] = C[0]; n++; h = n + r & n + r - 1 ? h : 0 | Math.min(Math.log(n + r) / .6931471805599453 + 1, 12); } l = e_91; E += Q; if (a < E) { do { a += 512; } while (a < E); d = this.ensureBuffer(this.bufferLength + a); } for (t = 0; t < Q; t++) d[u++] = C[t]; } s.nextCode = n; s.codeLength = h; s.prevCode = l; s.currentSequenceLength = Q; this.bufferLength = u; }; return LZWStream; }(DecodeStream)); var PredictorStream = /** @class */ (function (_super) { tslib_1.__extends(PredictorStream, _super); function PredictorStream(e, t, i) { var _this = _super.call(this, t) || this; if (!(i instanceof Dict)) return e; var a = _this.predictor = i.get("Predictor") || 1; if (a <= 1) return e; if (2 !== a && (a < 10 || a > 15)) throw new FormatError("Unsupported predictor: ".concat(a)); _this.readBlock = 2 === a ? _this.readBlockTiff : _this.readBlockPng; _this.str = e; _this.dict = e.dict; var s = _this.colors = i.get("Colors") || 1, r = _this.bits = i.get("BPC", "BitsPerComponent") || 8, n = _this.columns = i.get("Columns") || 1; _this.pixBytes = s * r + 7 >> 3; _this.rowBytes = n * s * r + 7 >> 3; return _this; } PredictorStream.prototype.readBlockTiff = function () { var e = this.rowBytes, t = this.bufferLength, i = this.ensureBuffer(t + e), a = this.bits, s = this.colors, r = this.str.getBytes(e); this.eof = !r.length; if (this.eof) return; var n, o = 0, g = 0, c = 0, h = 0, l = t; if (1 === a && 1 === s) for (n = 0; n < e; ++n) { var e_92 = r[n] ^ o; e_92 ^= e_92 >> 1; e_92 ^= e_92 >> 2; e_92 ^= e_92 >> 4; o = (1 & e_92) << 7; i[l++] = e_92; } else if (8 === a) { for (n = 0; n < s; ++n) i[l++] = r[n]; for (; n < e; ++n) { i[l] = i[l - s] + r[n]; l++; } } else if (16 === a) { var t_78 = 2 * s; for (n = 0; n < t_78; ++n) i[l++] = r[n]; for (; n < e; n += 2) { var e_93 = ((255 & r[n]) << 8) + (255 & r[n + 1]) + ((255 & i[l - t_78]) << 8) + (255 & i[l - t_78 + 1]); i[l++] = e_93 >> 8 & 255; i[l++] = 255 & e_93; } } else { var e_94 = new Uint8Array(s + 1), l_4 = (1 << a) - 1; var C_5 = 0, Q_6 = t; var E_6 = this.columns; for (n = 0; n < E_6; ++n) for (var t_79 = 0; t_79 < s; ++t_79) { if (c < a) { o = o << 8 | 255 & r[C_5++]; c += 8; } e_94[t_79] = e_94[t_79] + (o >> c - a) & l_4; c -= a; g = g << a | e_94[t_79]; h += a; if (h >= 8) { i[Q_6++] = g >> h - 8 & 255; h -= 8; } } h > 0 && (i[Q_6++] = (g << 8 - h) + (o & (1 << 8 - h) - 1)); } this.bufferLength += e; }; PredictorStream.prototype.readBlockPng = function () { var e = this.rowBytes, t = this.pixBytes, i = this.str.getByte(), a = this.str.getBytes(e); this.eof = !a.length; if (this.eof) return; var s = this.bufferLength, r = this.ensureBuffer(s + e); var n = r.subarray(s - e, s); 0 === n.length && (n = new Uint8Array(e)); var o, g, c, h = s; switch (i) { case 0: for (o = 0; o < e; ++o) r[h++] = a[o]; break; case 1: for (o = 0; o < t; ++o) r[h++] = a[o]; for (; o < e; ++o) { r[h] = r[h - t] + a[o] & 255; h++; } break; case 2: for (o = 0; o < e; ++o) r[h++] = n[o] + a[o] & 255; break; case 3: for (o = 0; o < t; ++o) r[h++] = (n[o] >> 1) + a[o]; for (; o < e; ++o) { r[h] = (n[o] + r[h - t] >> 1) + a[o] & 255; h++; } break; case 4: for (o = 0; o < t; ++o) { g = n[o]; c = a[o]; r[h++] = g + c; } for (; o < e; ++o) { g = n[o]; var e_95 = n[o - t], i_68 = r[h - t], s_47 = i_68 + g - e_95; var l_5 = s_47 - i_68; l_5 < 0 && (l_5 = -l_5); var C_6 = s_47 - g; C_6 < 0 && (C_6 = -C_6); var Q_7 = s_47 - e_95; Q_7 < 0 && (Q_7 = -Q_7); c = a[o]; r[h++] = l_5 <= C_6 && l_5 <= Q_7 ? i_68 + c : C_6 <= Q_7 ? g + c : e_95 + c; } break; default: throw new FormatError("Unsupported predictor: ".concat(i)); } this.bufferLength += e; }; return PredictorStream; }(DecodeStream)); var RunLengthStream = /** @class */ (function (_super) { tslib_1.__extends(RunLengthStream, _super); function RunLengthStream(e, t) { var _this = _super.call(this, t) || this; _this.str = e; _this.dict = e.dict; return _this; } RunLengthStream.prototype.readBlock = function () { var e = this.str.getBytes(2); if (!e || e.length < 2 || 128 === e[0]) { this.eof = !0; return; } var t, i = this.bufferLength, a = e[0]; if (a < 128) { t = this.ensureBuffer(i + a + 1); t[i++] = e[1]; if (a > 0) { var e_96 = this.str.getBytes(a); t.set(e_96, i); i += a; } } else { a = 257 - a; var s_48 = e[1]; t = this.ensureBuffer(i + a + 1); for (var e_97 = 0; e_97 < a; e_97++) t[i++] = s_48; } this.bufferLength = i; }; return RunLengthStream; }(DecodeStream)); var Parser = /** @class */ (function () { function Parser(_b) { var e = _b.lexer, t = _b.xref, _h = _b.allowStreams, i = _h === void 0 ? !1 : _h, _j = _b.recoveryMode, a = _j === void 0 ? !1 : _j; _Parser_instances.add(this); this.lexer = e; this.xref = t; this.allowStreams = i; this.recoveryMode = a; this.imageCache = Object.create(null); this._imageId = 0; this.refill(); } Parser.prototype.refill = function () { this.buf1 = this.lexer.getObj(); this.buf2 = this.lexer.getObj(); }; Parser.prototype.shift = function () { if (this.buf2 instanceof Cmd && "ID" === this.buf2.cmd) { this.buf1 = this.buf2; this.buf2 = null; } else { this.buf1 = this.buf2; this.buf2 = this.lexer.getObj(); } }; Parser.prototype.tryShift = function () { try { this.shift(); return !0; } catch (e) { if (e instanceof MissingDataException) throw e; return !1; } }; Parser.prototype.getObj = function (e) { if (e === void 0) { e = null; } var t = this.buf1; this.shift(); if (t instanceof Cmd) switch (t.cmd) { case "BI": return this.makeInlineImage(e); case "[": var i_69 = []; for (; !isCmd(this.buf1, "]") && this.buf1 !== pt;) i_69.push(this.getObj(e)); if (this.buf1 === pt) { if (this.recoveryMode) return i_69; throw new ParserEOFException("End of file inside array."); } this.shift(); return i_69; case "<<": var a_64 = new Dict(this.xref); for (; !isCmd(this.buf1, ">>") && this.buf1 !== pt;) { if (!(this.buf1 instanceof Name)) { info("Malformed dictionary: key must be a name object"); this.shift(); continue; } var t_80 = this.buf1.name; this.shift(); if (this.buf1 === pt) break; a_64.set(t_80, this.getObj(e)); } if (this.buf1 === pt) { if (this.recoveryMode) return a_64; throw new ParserEOFException("End of file inside dictionary."); } if (isCmd(this.buf2, "stream")) return this.allowStreams ? this.makeStream(a_64, e) : a_64; this.shift(); return a_64; default: return t; } if (Number.isInteger(t)) { if (Number.isInteger(this.buf1) && isCmd(this.buf2, "R")) { var e_98 = Ref.get(t, this.buf1); this.shift(); this.shift(); return e_98; } return t; } return "string" == typeof t && e ? e.decryptString(t) : t; }; Parser.prototype.findDefaultInlineStreamEnd = function (e) { var t = this.lexer.knownCommands, i = e.pos; var a, s, r = 0; for (; -1 !== (a = e.getByte());) if (0 === r) r = 69 === a ? 1 : 0; else if (1 === r) r = 73 === a ? 2 : 0; else if (32 === a || 10 === a || 13 === a) { s = e.pos; var i_70 = e.peekBytes(15), n_22 = i_70.length; if (0 === n_22) break; for (var e_99 = 0; e_99 < n_22; e_99++) { a = i_70[e_99]; if ((0 !== a || 0 === i_70[e_99 + 1]) && (10 !== a && 13 !== a && (a < 32 || a > 127))) { r = 0; break; } } if (2 !== r) continue; if (!t) { warn("findDefaultInlineStreamEnd - `lexer.knownCommands` is undefined."); continue; } var o_11 = new Lexer(new Stream(i_70.slice()), t); o_11._hexStringWarn = function () { }; var g_7 = 0; for (;;) { var e_100 = o_11.getObj(); if (e_100 === pt) { r = 0; break; } if (e_100 instanceof Cmd) { var i_71 = t[e_100.cmd]; if (!i_71) { r = 0; break; } if (i_71.variableArgs ? g_7 <= i_71.numArgs : g_7 === i_71.numArgs) break; g_7 = 0; } else g_7++; } if (2 === r) break; } else r = 0; if (-1 === a) { warn("findDefaultInlineStreamEnd: Reached the end of the stream without finding a valid EI marker"); if (s) { warn('... trying to recover by using the last "EI" occurrence.'); e.skip(-(e.pos - s)); } } var n = 4; e.skip(-n); a = e.peekByte(); e.skip(n); isWhiteSpace(a) || n--; return e.pos - n - i; }; Parser.prototype.findDCTDecodeInlineStreamEnd = function (e) { var t = e.pos; var i, a, s = !1; for (; -1 !== (i = e.getByte());) if (255 === i) { switch (e.getByte()) { case 0: break; case 255: e.skip(-1); break; case 217: s = !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: a = e.getUint16(); a > 2 ? e.skip(a - 2) : e.skip(-2); } if (s) break; } var r = e.pos - t; if (-1 === i) { warn("Inline DCTDecode image stream: EOI marker not found, searching for /EI/ instead."); e.skip(-r); return this.findDefaultInlineStreamEnd(e); } this.inlineStreamSkipEI(e); return r; }; Parser.prototype.findASCII85DecodeInlineStreamEnd = function (e) { var t = e.pos; var i; for (; -1 !== (i = e.getByte());) if (126 === i) { var t_81 = e.pos; i = e.peekByte(); for (; isWhiteSpace(i);) { e.skip(); i = e.peekByte(); } if (62 === i) { e.skip(); break; } if (e.pos > t_81) { var t_82 = e.peekBytes(2); if (69 === t_82[0] && 73 === t_82[1]) break; } } var a = e.pos - t; if (-1 === i) { warn("Inline ASCII85Decode image stream: EOD marker not found, searching for /EI/ instead."); e.skip(-a); return this.findDefaultInlineStreamEnd(e); } this.inlineStreamSkipEI(e); return a; }; Parser.prototype.findASCIIHexDecodeInlineStreamEnd = function (e) { var t = e.pos; var i; for (; -1 !== (i = e.getByte()) && 62 !== i;) ; var a = e.pos - t; if (-1 === i) { warn("Inline ASCIIHexDecode image stream: EOD marker not found, searching for /EI/ instead."); e.skip(-a); return this.findDefaultInlineStreamEnd(e); } this.inlineStreamSkipEI(e); return a; }; Parser.prototype.inlineStreamSkipEI = function (e) { var t, i = 0; for (; -1 !== (t = e.getByte());) if (0 === i) i = 69 === t ? 1 : 0; else if (1 === i) i = 73 === t ? 2 : 0; else if (2 === i) break; }; Parser.prototype.makeInlineImage = function (e) { var t = this.lexer, i = t.stream, a = Object.create(null); var s; for (; !isCmd(this.buf1, "ID") && this.buf1 !== pt;) { if (!(this.buf1 instanceof Name)) throw new FormatError("Dictionary key must be a name object"); var t_83 = this.buf1.name; this.shift(); if (this.buf1 === pt) break; a[t_83] = this.getObj(e); } -1 !== t.beginInlineImagePos && (s = i.pos - t.beginInlineImagePos); var r = this.xref.fetchIfRef(a.F || a.Filter); var n; if (r instanceof Name) n = r.name; else if (Array.isArray(r)) { var e_101 = this.xref.fetchIfRef(r[0]); e_101 instanceof Name && (n = e_101.name); } var o = i.pos; var g, c; switch (n) { case "DCT": case "DCTDecode": g = this.findDCTDecodeInlineStreamEnd(i); break; case "A85": case "ASCII85Decode": g = this.findASCII85DecodeInlineStreamEnd(i); break; case "AHx": case "ASCIIHexDecode": g = this.findASCIIHexDecodeInlineStreamEnd(i); break; default: g = this.findDefaultInlineStreamEnd(i); } if (g < 1e3 && s > 0) { var e_102 = i.pos; i.pos = t.beginInlineImagePos; c = function getInlineImageCacheKey(e) { var t = [], i = e.length; var a = 0; for (; a < i - 1;) t.push(e[a++] << 8 | e[a++]); a < i && t.push(e[a]); return i + "_" + String.fromCharCode.apply(null, t); }(i.getBytes(s + g)); i.pos = e_102; var a_65 = this.imageCache[c]; if (void 0 !== a_65) { this.buf2 = Cmd.get("EI"); this.shift(); a_65.reset(); return a_65; } } var h = new Dict(this.xref); for (var e_103 in a) h.set(e_103, a[e_103]); var l = i.makeSubStream(o, g, h); e && (l = e.createStream(l, g)); l = this.filter(l, h, g); l.dict = h; if (void 0 !== c) { l.cacheKey = "inline_img_" + ++this._imageId; this.imageCache[c] = l; } this.buf2 = Cmd.get("EI"); this.shift(); return l; }; Parser.prototype.makeStream = function (e, t) { var i = this.lexer; var a = i.stream; i.skipToNextLine(); var s = a.pos - 1; var r = e.get("Length"); if (!Number.isInteger(r)) { info("Bad length \"".concat(r && r.toString(), "\" in stream.")); r = 0; } a.pos = s + r; i.nextChar(); if (this.tryShift() && isCmd(this.buf2, "endstream")) this.shift(); else { r = tslib_1.__classPrivateFieldGet(this, _Parser_instances, "m", _Parser_w).call(this, s); if (r < 0) throw new FormatError("Missing endstream command."); i.nextChar(); this.shift(); this.shift(); } this.shift(); a = a.makeSubStream(s, r, e); t && (a = t.createStream(a, r)); a = this.filter(a, e, r); a.dict = e; return a; }; Parser.prototype.filter = function (e, t, i) { var a = t.get("F", "Filter"), s = t.get("DP", "DecodeParms"); if (a instanceof Name) { Array.isArray(s) && warn("/DecodeParms should not be an Array, when /Filter is a Name."); return this.makeFilter(e, a.name, i, s); } var r = i; if (Array.isArray(a)) { var t_84 = a, i_72 = s; for (var n_23 = 0, o_12 = t_84.length; n_23 < o_12; ++n_23) { a = this.xref.fetchIfRef(t_84[n_23]); if (!(a instanceof Name)) throw new FormatError("Bad filter name \"".concat(a, "\"")); s = null; Array.isArray(i_72) && n_23 in i_72 && (s = this.xref.fetchIfRef(i_72[n_23])); e = this.makeFilter(e, a.name, r, s); r = null; } } return e; }; Parser.prototype.makeFilter = function (e, t, i, a) { if (0 === i) { warn("Empty \"".concat(t, "\" stream.")); return new NullStream; } try { switch (t) { case "Fl": case "FlateDecode": return a ? new PredictorStream(new FlateStream(e, i), i, a) : new FlateStream(e, i); case "LZW": case "LZWDecode": var t_85 = 1; if (a) { a.has("EarlyChange") && (t_85 = a.get("EarlyChange")); return new PredictorStream(new LZWStream(e, i, t_85), i, a); } return new LZWStream(e, i, t_85); case "DCT": case "DCTDecode": return new JpegStream(e, i, a); case "JPX": case "JPXDecode": return new JpxStream(e, i, a); case "A85": case "ASCII85Decode": return new Ascii85Stream(e, i); case "AHx": case "ASCIIHexDecode": return new AsciiHexStream(e, i); case "CCF": case "CCITTFaxDecode": return new CCITTFaxStream(e, i, a); case "RL": case "RunLengthDecode": return new RunLengthStream(e, i); case "JBIG2Decode": return new Jbig2Stream(e, i, a); } warn("Filter \"".concat(t, "\" is not supported.")); return e; } catch (e) { if (e instanceof MissingDataException) throw e; warn("Invalid stream: \"".concat(e, "\"")); return new NullStream; } }; return Parser; }()); _Parser_instances = new WeakSet(), _Parser_w = function _Parser_w(e) { var t = this.lexer.stream; t.pos = e; var i = new Uint8Array([101, 110, 100]), a = i.length, s = [new Uint8Array([115, 116, 114, 101, 97, 109]), new Uint8Array([115, 116, 101, 97, 109]), new Uint8Array([115, 116, 114, 101, 97])], r = 9 - a; for (; t.pos < t.end;) { var n_24 = t.peekBytes(2048), o_13 = n_24.length - 9; if (o_13 <= 0) break; var g_8 = 0; for (; g_8 < o_13;) { var o_14 = 0; for (; o_14 < a && n_24[g_8 + o_14] === i[o_14];) o_14++; if (o_14 >= a) { var a_66 = !1; for (var _b = 0, s_49 = s; _b < s_49.length; _b++) { var e_104 = s_49[_b]; var t_86 = e_104.length; var s_50 = 0; for (; s_50 < t_86 && n_24[g_8 + o_14 + s_50] === e_104[s_50];) s_50++; if (s_50 >= r) { a_66 = !0; break; } if (s_50 >= t_86) { if (isWhiteSpace(n_24[g_8 + o_14 + s_50])) { info("Found \"".concat(bytesToString(tslib_1.__spreadArray(tslib_1.__spreadArray([], i, true), e_104, true)), "\" when searching for endstream command.")); a_66 = !0; } break; } } if (a_66) { t.pos += g_8; return t.pos - e; } } g_8++; } t.pos += o_13; } return -1; }; var ci = [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(e) { return e >= 48 && e <= 57 ? 15 & e : e >= 65 && e <= 70 || e >= 97 && e <= 102 ? 9 + (15 & e) : -1; } var Lexer = /** @class */ (function () { function Lexer(e, t) { if (t === void 0) { t = null; } this.stream = e; this.nextChar(); this.strBuf = []; this.knownCommands = t; this._hexStringNumWarn = 0; this.beginInlineImagePos = -1; } Lexer.prototype.nextChar = function () { return this.currentChar = this.stream.getByte(); }; Lexer.prototype.peekChar = function () { return this.stream.peekByte(); }; Lexer.prototype.getNumber = function () { var e = this.currentChar, t = !1, i = 0, a = 1; if (45 === e) { a = -1; e = this.nextChar(); 45 === e && (e = this.nextChar()); } else 43 === e && (e = this.nextChar()); if (10 === e || 13 === e) do { e = this.nextChar(); } while (10 === e || 13 === e); if (46 === e) { i = 10; e = this.nextChar(); } if (e < 48 || e > 57) { var t_87 = "Invalid number: ".concat(String.fromCharCode(e), " (charCode ").concat(e, ")"); if (isWhiteSpace(e) || -1 === e) { info("Lexer.getNumber - \"".concat(t_87, "\".")); return 0; } throw new FormatError(t_87); } var s = e - 48, r = 0, n = 1; for (; (e = this.nextChar()) >= 0;) if (e >= 48 && e <= 57) { var a_67 = e - 48; if (t) r = 10 * r + a_67; else { 0 !== i && (i *= 10); s = 10 * s + a_67; } } else if (46 === e) { if (0 !== i) break; i = 1; } else if (45 === e) warn("Badly formatted number: minus sign in the middle"); else { if (69 !== e && 101 !== e) break; e = this.peekChar(); if (43 === e || 45 === e) { n = 45 === e ? -1 : 1; this.nextChar(); } else if (e < 48 || e > 57) break; t = !0; } 0 !== i && (s /= i); t && (s *= Math.pow(10, (n * r))); return a * s; }; Lexer.prototype.getString = function () { var e = 1, t = !1; var i = this.strBuf; i.length = 0; var a = this.nextChar(); for (;;) { var s_51 = !1; switch (0 | a) { case -1: warn("Unterminated string"); t = !0; break; case 40: ++e; i.push("("); break; case 41: if (0 == --e) { this.nextChar(); t = !0; } else i.push(")"); break; case 92: a = this.nextChar(); switch (a) { case -1: warn("Unterminated string"); t = !0; break; case 110: i.push("\n"); break; case 114: i.push("\r"); break; case 116: i.push("\t"); break; case 98: i.push("\b"); break; case 102: i.push("\f"); break; case 92: case 40: case 41: i.push(String.fromCharCode(a)); break; case 48: case 49: case 50: case 51: case 52: case 53: case 54: case 55: var e_105 = 15 & a; a = this.nextChar(); s_51 = !0; if (a >= 48 && a <= 55) { e_105 = (e_105 << 3) + (15 & a); a = this.nextChar(); if (a >= 48 && a <= 55) { s_51 = !1; e_105 = (e_105 << 3) + (15 & a); } } i.push(String.fromCharCode(e_105)); break; case 13: 10 === this.peekChar() && this.nextChar(); break; case 10: break; default: i.push(String.fromCharCode(a)); } break; default: i.push(String.fromCharCode(a)); } if (t) break; s_51 || (a = this.nextChar()); } return i.join(""); }; Lexer.prototype.getName = function () { var e, t; var i = this.strBuf; i.length = 0; for (; (e = this.nextChar()) >= 0 && !ci[e];) if (35 === e) { e = this.nextChar(); if (ci[e]) { warn("Lexer_getName: NUMBER SIGN (#) should be followed by a hexadecimal number."); i.push("#"); break; } var a_68 = toHexDigit(e); if (-1 !== a_68) { t = e; e = this.nextChar(); var s_52 = toHexDigit(e); if (-1 === s_52) { warn("Lexer_getName: Illegal digit (".concat(String.fromCharCode(e), ") in hexadecimal number.")); i.push("#", String.fromCharCode(t)); if (ci[e]) break; i.push(String.fromCharCode(e)); continue; } i.push(String.fromCharCode(a_68 << 4 | s_52)); } else i.push("#", String.fromCharCode(e)); } else i.push(String.fromCharCode(e)); i.length > 127 && warn("Name token is longer than allowed by the spec: ".concat(i.length)); return Name.get(i.join("")); }; Lexer.prototype._hexStringWarn = function (e) { 5 != this._hexStringNumWarn++ ? this._hexStringNumWarn > 5 || warn("getHexString - ignoring invalid character: ".concat(e)) : warn("getHexString - ignoring additional invalid characters."); }; Lexer.prototype.getHexString = function () { var e = this.strBuf; e.length = 0; var t, i, a = this.currentChar, s = !0; this._hexStringNumWarn = 0; for (;;) { if (a < 0) { warn("Unterminated hex string"); break; } if (62 === a) { this.nextChar(); break; } if (1 !== ci[a]) { if (s) { t = toHexDigit(a); if (-1 === t) { this._hexStringWarn(a); a = this.nextChar(); continue; } } else { i = toHexDigit(a); if (-1 === i) { this._hexStringWarn(a); a = this.nextChar(); continue; } e.push(String.fromCharCode(t << 4 | i)); } s = !s; a = this.nextChar(); } else a = this.nextChar(); } return e.join(""); }; Lexer.prototype.getObj = function () { var e = !1, t = this.currentChar; for (;;) { if (t < 0) return pt; if (e) 10 !== t && 13 !== t || (e = !1); else if (37 === t) e = !0; else if (1 !== ci[t]) break; t = this.nextChar(); } switch (0 | t) { 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 Cmd.get("["); case 93: this.nextChar(); return Cmd.get("]"); case 60: t = this.nextChar(); if (60 === t) { this.nextChar(); return Cmd.get("<<"); } return this.getHexString(); case 62: t = this.nextChar(); if (62 === t) { this.nextChar(); return Cmd.get(">>"); } return Cmd.get(">"); case 123: this.nextChar(); return Cmd.get("{"); case 125: this.nextChar(); return Cmd.get("}"); case 41: this.nextChar(); throw new FormatError("Illegal character: ".concat(t)); } var i = String.fromCharCode(t); if (t < 32 || t > 127) { var e_106 = this.peekChar(); if (e_106 >= 32 && e_106 <= 127) { this.nextChar(); return Cmd.get(i); } } var a = this.knownCommands; var s = void 0 !== (a === null || a === void 0 ? void 0 : a[i]); for (; (t = this.nextChar()) >= 0 && !ci[t];) { var e_107 = i + String.fromCharCode(t); if (s && void 0 === a[e_107]) break; if (128 === i.length) throw new FormatError("Command token too long: ".concat(i.length)); i = e_107; s = void 0 !== (a === null || a === void 0 ? void 0 : a[i]); } if ("true" === i) return !0; if ("false" === i) return !1; if ("null" === i) return null; "BI" === i && (this.beginInlineImagePos = this.stream.pos); return Cmd.get(i); }; Lexer.prototype.skipToNextLine = function () { var e = this.currentChar; for (; e >= 0;) { if (13 === e) { e = this.nextChar(); 10 === e && this.nextChar(); break; } if (10 === e) { this.nextChar(); break; } e = this.nextChar(); } }; return Lexer; }()); var Linearization = /** @class */ (function () { function Linearization() { } Linearization.create = function (e) { function getInt(e, t, i) { if (i === void 0) { i = !1; } var a = e.get(t); if (Number.isInteger(a) && (i ? a >= 0 : a > 0)) return a; throw new Error("The \"".concat(t, "\" parameter in the linearization dictionary is invalid.")); } var t = new Parser({ lexer: new Lexer(e), xref: null }), i = t.getObj(), a = t.getObj(), s = t.getObj(), r = t.getObj(); var n, o; if (!(Number.isInteger(i) && Number.isInteger(a) && isCmd(s, "obj") && r instanceof Dict && "number" == typeof (n = r.get("Linearized")) && n > 0)) return null; if ((o = getInt(r, "L")) !== e.length) throw new Error('The "L" parameter in the linearization dictionary does not equal the stream length.'); return { length: o, hints: function getHints(e) { var t = e.get("H"); var i; if (Array.isArray(t) && (2 === (i = t.length) || 4 === i)) { for (var e_108 = 0; e_108 < i; e_108++) { var i_73 = t[e_108]; if (!(Number.isInteger(i_73) && i_73 > 0)) throw new Error("Hint (".concat(e_108, ") in the linearization dictionary is invalid.")); } return t; } throw new Error("Hint array in the linearization dictionary is invalid."); }(r), objectNumberFirst: getInt(r, "O"), endFirst: getInt(r, "E"), numPages: getInt(r, "N"), mainXRefEntriesOffset: getInt(r, "T"), pageFirst: r.has("P") ? getInt(r, "P", !0) : 0 }; }; return Linearization; }()); var hi = ["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"], li = Math.pow(2, 24) - 1; var CMap = /** @class */ (function () { function CMap(e) { if (e === void 0) { e = !1; } this.codespaceRanges = [[], [], [], []]; this.numCodespaceRanges = 0; this._map = []; this.name = ""; this.vertical = !1; this.useCMap = null; this.builtInCMap = e; } CMap.prototype.addCodespaceRange = function (e, t, i) { this.codespaceRanges[e - 1].push(t, i); this.numCodespaceRanges++; }; CMap.prototype.mapCidRange = function (e, t, i) { if (t - e > li) throw new Error("mapCidRange - ignoring data above MAX_MAP_RANGE."); for (; e <= t;) this._map[e++] = i++; }; CMap.prototype.mapBfRange = function (e, t, i) { if (t - e > li) throw new Error("mapBfRange - ignoring data above MAX_MAP_RANGE."); var a = i.length - 1; for (; e <= t;) { this._map[e++] = i; var t_88 = i.charCodeAt(a) + 1; t_88 > 255 ? i = i.substring(0, a - 1) + String.fromCharCode(i.charCodeAt(a - 1) + 1) + "\0" : i = i.substring(0, a) + String.fromCharCode(t_88); } }; CMap.prototype.mapBfRangeToArray = function (e, t, i) { if (t - e > li) throw new Error("mapBfRangeToArray - ignoring data above MAX_MAP_RANGE."); var a = i.length; var s = 0; for (; e <= t && s < a;) { this._map[e] = i[s++]; ++e; } }; CMap.prototype.mapOne = function (e, t) { this._map[e] = t; }; CMap.prototype.lookup = function (e) { return this._map[e]; }; CMap.prototype.contains = function (e) { return void 0 !== this._map[e]; }; CMap.prototype.forEach = function (e) { var t = this._map, i = t.length; if (i <= 65536) for (var a_69 = 0; a_69 < i; a_69++) void 0 !== t[a_69] && e(a_69, t[a_69]); else for (var i_74 in t) e(i_74, t[i_74]); }; CMap.prototype.charCodeOf = function (e) { var t = this._map; if (t.length <= 65536) return t.indexOf(e); for (var i_75 in t) if (t[i_75] === e) return 0 | i_75; return -1; }; CMap.prototype.getMap = function () { return this._map; }; CMap.prototype.readCharCode = function (e, t, i) { var a = 0; var s = this.codespaceRanges; for (var r_40 = 0, n_25 = s.length; r_40 < n_25; r_40++) { a = (a << 8 | e.charCodeAt(t + r_40)) >>> 0; var n_26 = s[r_40]; for (var e_109 = 0, t_89 = n_26.length; e_109 < t_89;) { var t_90 = n_26[e_109++], s_53 = n_26[e_109++]; if (a >= t_90 && a <= s_53) { i.charcode = a; i.length = r_40 + 1; return; } } } i.charcode = 0; i.length = 1; }; CMap.prototype.getCharCodeLength = function (e) { var t = this.codespaceRanges; for (var i_76 = 0, a_70 = t.length; i_76 < a_70; i_76++) { var a_71 = t[i_76]; for (var t_91 = 0, s_54 = a_71.length; t_91 < s_54;) { var s_55 = a_71[t_91++], r_41 = a_71[t_91++]; if (e >= s_55 && e <= r_41) return i_76 + 1; } } return 1; }; Object.defineProperty(CMap.prototype, "length", { get: function () { return this._map.length; }, enumerable: false, configurable: true }); Object.defineProperty(CMap.prototype, "isIdentityCMap", { get: function () { if ("Identity-H" !== this.name && "Identity-V" !== this.name) return !1; if (65536 !== this._map.length) return !1; for (var e_110 = 0; e_110 < 65536; e_110++) if (this._map[e_110] !== e_110) return !1; return !0; }, enumerable: false, configurable: true }); return CMap; }()); var IdentityCMap = /** @class */ (function (_super) { tslib_1.__extends(IdentityCMap, _super); function IdentityCMap(e, t) { var _this = _super.call(this) || this; _this.vertical = e; _this.addCodespaceRange(t, 0, 65535); return _this; } IdentityCMap.prototype.mapCidRange = function (e, t, i) { unreachable("should not call mapCidRange"); }; IdentityCMap.prototype.mapBfRange = function (e, t, i) { unreachable("should not call mapBfRange"); }; IdentityCMap.prototype.mapBfRangeToArray = function (e, t, i) { unreachable("should not call mapBfRangeToArray"); }; IdentityCMap.prototype.mapOne = function (e, t) { unreachable("should not call mapCidOne"); }; IdentityCMap.prototype.lookup = function (e) { return Number.isInteger(e) && e <= 65535 ? e : void 0; }; IdentityCMap.prototype.contains = function (e) { return Number.isInteger(e) && e <= 65535; }; IdentityCMap.prototype.forEach = function (e) { for (var t_92 = 0; t_92 <= 65535; t_92++) e(t_92, t_92); }; IdentityCMap.prototype.charCodeOf = function (e) { return Number.isInteger(e) && e <= 65535 ? e : -1; }; IdentityCMap.prototype.getMap = function () { var e = new Array(65536); for (var t_93 = 0; t_93 <= 65535; t_93++) e[t_93] = t_93; return e; }; Object.defineProperty(IdentityCMap.prototype, "length", { get: function () { return 65536; }, enumerable: false, configurable: true }); Object.defineProperty(IdentityCMap.prototype, "isIdentityCMap", { get: function () { unreachable("should not access .isIdentityCMap"); }, enumerable: false, configurable: true }); return IdentityCMap; }(CMap)); function strToInt(e) { var t = 0; for (var i_77 = 0; i_77 < e.length; i_77++) t = t << 8 | e.charCodeAt(i_77); return t >>> 0; } function expectString(e) { if ("string" != typeof e) throw new FormatError("Malformed CMap: expected string."); } function expectInt(e) { if (!Number.isInteger(e)) throw new FormatError("Malformed CMap: expected int."); } function parseBfChar(e, t) { for (;;) { var i_78 = t.getObj(); if (i_78 === pt) break; if (isCmd(i_78, "endbfchar")) return; expectString(i_78); var a_72 = strToInt(i_78); i_78 = t.getObj(); expectString(i_78); var s_56 = i_78; e.mapOne(a_72, s_56); } } function parseBfRange(e, t) { for (;;) { var i_79 = t.getObj(); if (i_79 === pt) break; if (isCmd(i_79, "endbfrange")) return; expectString(i_79); var a_73 = strToInt(i_79); i_79 = t.getObj(); expectString(i_79); var s_57 = strToInt(i_79); i_79 = t.getObj(); if (Number.isInteger(i_79) || "string" == typeof i_79) { var t_94 = Number.isInteger(i_79) ? String.fromCharCode(i_79) : i_79; e.mapBfRange(a_73, s_57, t_94); } else { if (!isCmd(i_79, "[")) break; { i_79 = t.getObj(); var r_42 = []; for (; !isCmd(i_79, "]") && i_79 !== pt;) { r_42.push(i_79); i_79 = t.getObj(); } e.mapBfRangeToArray(a_73, s_57, r_42); } } } throw new FormatError("Invalid bf range."); } function parseCidChar(e, t) { for (;;) { var i_80 = t.getObj(); if (i_80 === pt) break; if (isCmd(i_80, "endcidchar")) return; expectString(i_80); var a_74 = strToInt(i_80); i_80 = t.getObj(); expectInt(i_80); var s_58 = i_80; e.mapOne(a_74, s_58); } } function parseCidRange(e, t) { for (;;) { var i_81 = t.getObj(); if (i_81 === pt) break; if (isCmd(i_81, "endcidrange")) return; expectString(i_81); var a_75 = strToInt(i_81); i_81 = t.getObj(); expectString(i_81); var s_59 = strToInt(i_81); i_81 = t.getObj(); expectInt(i_81); var r_43 = i_81; e.mapCidRange(a_75, s_59, r_43); } } function parseCodespaceRange(e, t) { for (;;) { var i_82 = t.getObj(); if (i_82 === pt) break; if (isCmd(i_82, "endcodespacerange")) return; if ("string" != typeof i_82) break; var a_76 = strToInt(i_82); i_82 = t.getObj(); if ("string" != typeof i_82) break; var s_60 = strToInt(i_82); e.addCodespaceRange(i_82.length, a_76, s_60); } throw new FormatError("Invalid codespace range."); } function parseWMode(e, t) { var i = t.getObj(); Number.isInteger(i) && (e.vertical = !!i); } function parseCMapName(e, t) { var i = t.getObj(); i instanceof Name && (e.name = i.name); } function parseCMap(e, t, i, a) { return tslib_1.__awaiter(this, void 0, void 0, function () { var s, r, i_83; return tslib_1.__generator(this, function (_b) { A: for (;;) try { i_83 = t.getObj(); if (i_83 === pt) break; if (i_83 instanceof Name) { "WMode" === i_83.name ? parseWMode(e, t) : "CMapName" === i_83.name && parseCMapName(e, t); s = i_83; } else if (i_83 instanceof Cmd) switch (i_83.cmd) { case "endcmap": break A; case "usecmap": s instanceof Name && (r = s.name); break; case "begincodespacerange": parseCodespaceRange(e, t); break; case "beginbfchar": parseBfChar(e, t); break; case "begincidchar": parseCidChar(e, t); break; case "beginbfrange": parseBfRange(e, t); break; case "begincidrange": parseCidRange(e, t); } } catch (e) { if (e instanceof MissingDataException) throw e; warn("Invalid cMap data: " + e); continue; } !a && r && (a = r); return [2 /*return*/, a ? extendCMap(e, i, a) : e]; }); }); } function extendCMap(e, t, i) { return tslib_1.__awaiter(this, void 0, void 0, function () { var _b, t_95, i_84; return tslib_1.__generator(this, function (_h) { switch (_h.label) { case 0: _b = e; return [4 /*yield*/, createBuiltInCMap(i, t)]; case 1: _b.useCMap = _h.sent(); if (0 === e.numCodespaceRanges) { t_95 = e.useCMap.codespaceRanges; for (i_84 = 0; i_84 < t_95.length; i_84++) e.codespaceRanges[i_84] = t_95[i_84].slice(); e.numCodespaceRanges = e.useCMap.numCodespaceRanges; } e.useCMap.forEach((function (t, i) { e.contains(t) || e.mapOne(t, e.useCMap.lookup(t)); })); return [2 /*return*/, e]; } }); }); } function createBuiltInCMap(e, t) { return tslib_1.__awaiter(this, void 0, void 0, function () { var _b, i, a, s, e_111; return tslib_1.__generator(this, function (_h) { switch (_h.label) { case 0: if ("Identity-H" === e) return [2 /*return*/, new IdentityCMap(!1, 2)]; if ("Identity-V" === e) return [2 /*return*/, new IdentityCMap(!0, 2)]; if (!hi.includes(e)) throw new Error("Unknown CMap name: " + e); if (!t) throw new Error("Built-in CMap parameters are not provided."); return [4 /*yield*/, t(e)]; case 1: _b = _h.sent(), i = _b.cMapData, a = _b.compressionType, s = new CMap(!0); if (a === mA.BINARY) return [2 /*return*/, (new BinaryCMapReader).process(i, s, (function (e) { return extendCMap(s, t, e); }))]; if (a === mA.NONE) { e_111 = new Lexer(new Stream(i)); return [2 /*return*/, parseCMap(s, e_111, t, null)]; } throw new Error("Invalid CMap \"compressionType\" value: ".concat(a)); } }); }); } var CMapFactory = /** @class */ (function () { function CMapFactory() { } CMapFactory.create = function (_b) { var e = _b.encoding, t = _b.fetchBuiltInCMap, i = _b.useCMap; return tslib_1.__awaiter(this, void 0, void 0, function () { var a_77; return tslib_1.__generator(this, function (_h) { switch (_h.label) { case 0: if (e instanceof Name) return [2 /*return*/, createBuiltInCMap(e.name, t)]; if (!(e instanceof BaseStream)) return [3 /*break*/, 2]; return [4 /*yield*/, parseCMap(new CMap, new Lexer(e), t, i)]; case 1: a_77 = _h.sent(); return [2 /*return*/, a_77.isIdentityCMap ? createBuiltInCMap(a_77.name, t) : a_77]; case 2: throw new Error("Encoding required."); } }); }); }; return CMapFactory; }()); var Ci = [".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"], Bi = [".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"], Qi = [".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"], Ei = ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "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"], ui = ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "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", "", "", "", ""], di = ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "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"], fi = ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "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", "", "", "", ""], pi = ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "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"], mi = ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "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", ""], yi = ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "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", ""]; function getEncoding(e) { switch (e) { case "WinAnsiEncoding": return pi; case "StandardEncoding": return fi; case "MacRomanEncoding": return di; case "SymbolSetEncoding": return mi; case "ZapfDingbatsEncoding": return yi; case "ExpertEncoding": return Ei; case "MacExpertEncoding": return ui; default: return null; } } var wi = [".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"], bi = 391, Di = [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 }], Fi = [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 (e, t) { e[t - 2] = e[t - 2] + e[t - 1]; } }, { id: "sub", min: 2, stackDelta: -1, stackFn: function (e, t) { e[t - 2] = e[t - 2] - e[t - 1]; } }, { id: "div", min: 2, stackDelta: -1, stackFn: function (e, t) { e[t - 2] = e[t - 2] / e[t - 1]; } }, null, { id: "neg", min: 1, stackDelta: 0, stackFn: function (e, t) { e[t - 1] = -e[t - 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 (e, t) { e[t - 2] = e[t - 2] * e[t - 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 }]; var CFFParser = /** @class */ (function () { function CFFParser(e, t, i) { this.bytes = e.getBytes(); this.properties = t; this.seacAnalysisEnabled = !!i; } CFFParser.prototype.parse = function () { var e = this.properties, t = new CFF; this.cff = t; var i = this.parseHeader(), a = this.parseIndex(i.endPos), s = this.parseIndex(a.endPos), r = this.parseIndex(s.endPos), n = this.parseIndex(r.endPos), o = this.parseDict(s.obj.get(0)), g = this.createDict(CFFTopDict, o, t.strings); t.header = i.obj; t.names = this.parseNameIndex(a.obj); t.strings = this.parseStringIndex(r.obj); t.topDict = g; t.globalSubrIndex = n.obj; this.parsePrivateDict(t.topDict); t.isCIDFont = g.hasName("ROS"); var c = g.getByName("CharStrings"), h = this.parseIndex(c).obj, l = g.getByName("FontMatrix"); l && (e.fontMatrix = l); var C = g.getByName("FontBBox"); if (C) { e.ascent = Math.max(C[3], C[1]); e.descent = Math.min(C[1], C[3]); e.ascentScaled = !0; } var Q, E; if (t.isCIDFont) { var e_112 = this.parseIndex(g.getByName("FDArray")).obj; for (var i_85 = 0, a_78 = e_112.count; i_85 < a_78; ++i_85) { var a_79 = e_112.get(i_85), s_61 = this.createDict(CFFTopDict, this.parseDict(a_79), t.strings); this.parsePrivateDict(s_61); t.fdArray.push(s_61); } E = null; Q = this.parseCharsets(g.getByName("charset"), h.count, t.strings, !0); t.fdSelect = this.parseFDSelect(g.getByName("FDSelect"), h.count); } else { Q = this.parseCharsets(g.getByName("charset"), h.count, t.strings, !1); E = this.parseEncoding(g.getByName("Encoding"), e, t.strings, Q.charset); } t.charset = Q; t.encoding = E; var u = this.parseCharStrings({ charStrings: h, localSubrIndex: g.privateDict.subrsIndex, globalSubrIndex: n.obj, fdSelect: t.fdSelect, fdArray: t.fdArray, privateDict: g.privateDict }); t.charStrings = u.charStrings; t.seacs = u.seacs; t.widths = u.widths; return t; }; CFFParser.prototype.parseHeader = function () { var e = this.bytes; var t = e.length; var i = 0; for (; i < t && 1 !== e[i];) ++i; if (i >= t) throw new FormatError("Invalid CFF header"); if (0 !== i) { info("cff data is shifted"); e = e.subarray(i); this.bytes = e; } var a = e[0], s = e[1], r = e[2], n = e[3]; return { obj: new CFFHeader(a, s, r, n), endPos: r }; }; CFFParser.prototype.parseDict = function (e) { var t = 0; function parseOperand() { var i = e[t++]; if (30 === i) return function parseFloatOperand() { var i = ""; var a = 15, s = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", ".", "E", "E-", null, "-"], r = e.length; for (; t < r;) { var r_44 = e[t++], n_27 = r_44 >> 4, o_15 = 15 & r_44; if (n_27 === a) break; i += s[n_27]; if (o_15 === a) break; i += s[o_15]; } return parseFloat(i); }(); if (28 === i) { i = e[t++]; i = (i << 24 | e[t++] << 16) >> 16; return i; } if (29 === i) { i = e[t++]; i = i << 8 | e[t++]; i = i << 8 | e[t++]; i = i << 8 | e[t++]; return i; } if (i >= 32 && i <= 246) return i - 139; if (i >= 247 && i <= 250) return 256 * (i - 247) + e[t++] + 108; if (i >= 251 && i <= 254) return -256 * (i - 251) - e[t++] - 108; warn('CFFParser_parseDict: "' + i + '" is a reserved command.'); return NaN; } var i = []; var a = []; t = 0; var s = e.length; for (; t < s;) { var s_62 = e[t]; if (s_62 <= 21) { 12 === s_62 && (s_62 = s_62 << 8 | e[++t]); a.push([s_62, i]); i = []; ++t; } else i.push(parseOperand()); } return a; }; CFFParser.prototype.parseIndex = function (e) { var t = new CFFIndex, i = this.bytes, a = i[e++] << 8 | i[e++], s = []; var r, n, o = e; if (0 !== a) { var t_96 = i[e++], g_9 = e + (a + 1) * t_96 - 1; for (r = 0, n = a + 1; r < n; ++r) { var a_80 = 0; for (var s_63 = 0; s_63 < t_96; ++s_63) { a_80 <<= 8; a_80 += i[e++]; } s.push(g_9 + a_80); } o = s[a]; } for (r = 0, n = s.length - 1; r < n; ++r) { var e_113 = s[r], a_81 = s[r + 1]; t.add(i.subarray(e_113, a_81)); } return { obj: t, endPos: o }; }; CFFParser.prototype.parseNameIndex = function (e) { var t = []; for (var i_86 = 0, a_82 = e.count; i_86 < a_82; ++i_86) { var a_83 = e.get(i_86); t.push(bytesToString(a_83)); } return t; }; CFFParser.prototype.parseStringIndex = function (e) { var t = new CFFStrings; for (var i_87 = 0, a_84 = e.count; i_87 < a_84; ++i_87) { var a_85 = e.get(i_87); t.add(bytesToString(a_85)); } return t; }; CFFParser.prototype.createDict = function (e, t, i) { var a = new e(i); for (var _b = 0, t_97 = t; _b < t_97.length; _b++) { var _h = t_97[_b], e_114 = _h[0], i_88 = _h[1]; a.setByKey(e_114, i_88); } return a; }; CFFParser.prototype.parseCharString = function (e, t, i, a) { if (!t || e.callDepth > 10) return !1; var s = e.stackSize; var r = e.stack; var n = t.length; for (var o_16 = 0; o_16 < n;) { var g_10 = t[o_16++]; var c_5 = null; if (12 === g_10) { var e_115 = t[o_16++]; if (0 === e_115) { t[o_16 - 2] = 139; t[o_16 - 1] = 22; s = 0; } else c_5 = Fi[e_115]; } else if (28 === g_10) { r[s] = (t[o_16] << 24 | t[o_16 + 1] << 16) >> 16; o_16 += 2; s++; } else if (14 === g_10) { if (s >= 4) { s -= 4; if (this.seacAnalysisEnabled) { e.seac = r.slice(s, s + 4); return !1; } } c_5 = Di[g_10]; } else if (g_10 >= 32 && g_10 <= 246) { r[s] = g_10 - 139; s++; } else if (g_10 >= 247 && g_10 <= 254) { r[s] = g_10 < 251 ? (g_10 - 247 << 8) + t[o_16] + 108 : -(g_10 - 251 << 8) - t[o_16] - 108; o_16++; s++; } else if (255 === g_10) { r[s] = (t[o_16] << 24 | t[o_16 + 1] << 16 | t[o_16 + 2] << 8 | t[o_16 + 3]) / 65536; o_16 += 4; s++; } else if (19 === g_10 || 20 === g_10) { e.hints += s >> 1; if (0 === e.hints) { t.copyWithin(o_16 - 1, o_16, -1); o_16 -= 1; n -= 1; continue; } o_16 += e.hints + 7 >> 3; s %= 2; c_5 = Di[g_10]; } else { if (10 === g_10 || 29 === g_10) { var t_98 = 10 === g_10 ? i : a; if (!t_98) { c_5 = Di[g_10]; warn("Missing subrsIndex for " + c_5.id); return !1; } var n_28 = 32768; t_98.count < 1240 ? n_28 = 107 : t_98.count < 33900 && (n_28 = 1131); var o_17 = r[--s] + n_28; if (o_17 < 0 || o_17 >= t_98.count || isNaN(o_17)) { c_5 = Di[g_10]; warn("Out of bounds subrIndex for " + c_5.id); return !1; } e.stackSize = s; e.callDepth++; if (!this.parseCharString(e, t_98.get(o_17), i, a)) return !1; e.callDepth--; s = e.stackSize; continue; } if (11 === g_10) { e.stackSize = s; return !0; } if (0 === g_10 && o_16 === t.length) { t[o_16 - 1] = 14; c_5 = Di[14]; } else { if (9 === g_10) { t.copyWithin(o_16 - 1, o_16, -1); o_16 -= 1; n -= 1; continue; } c_5 = Di[g_10]; } } if (c_5) { if (c_5.stem) { e.hints += s >> 1; if (3 === g_10 || 23 === g_10) e.hasVStems = !0; else if (e.hasVStems && (1 === g_10 || 18 === g_10)) { warn("CFF stem hints are in wrong order"); t[o_16 - 1] = 1 === g_10 ? 3 : 23; } } if ("min" in c_5 && !e.undefStack && s < c_5.min) { warn("Not enough parameters for " + c_5.id + "; actual: " + s + ", expected: " + c_5.min); if (0 === s) { t[o_16 - 1] = 14; return !0; } return !1; } if (e.firstStackClearing && c_5.stackClearing) { e.firstStackClearing = !1; s -= c_5.min; s >= 2 && c_5.stem ? s %= 2 : s > 1 && warn("Found too many parameters for stack-clearing command"); s > 0 && (e.width = r[s - 1]); } if ("stackDelta" in c_5) { "stackFn" in c_5 && c_5.stackFn(r, s); s += c_5.stackDelta; } else if (c_5.stackClearing) s = 0; else if (c_5.resetStack) { s = 0; e.undefStack = !1; } else if (c_5.undefStack) { s = 0; e.undefStack = !0; e.firstStackClearing = !1; } } } n < t.length && t.fill(14, n); e.stackSize = s; return !0; }; CFFParser.prototype.parseCharStrings = function (_b) { var e = _b.charStrings, t = _b.localSubrIndex, i = _b.globalSubrIndex, a = _b.fdSelect, s = _b.fdArray, r = _b.privateDict; var n = [], o = [], g = e.count; for (var c_6 = 0; c_6 < g; c_6++) { var g_11 = e.get(c_6), h_4 = { callDepth: 0, stackSize: 0, stack: [], undefStack: !0, hints: 0, firstStackClearing: !0, seac: null, width: null, hasVStems: !1 }; var l_6 = !0, C_7 = null, Q_8 = r; if (a && s.length) { var e_116 = a.getFDIndex(c_6); if (-1 === e_116) { warn("Glyph index is not in fd select."); l_6 = !1; } if (e_116 >= s.length) { warn("Invalid fd index for glyph index."); l_6 = !1; } if (l_6) { Q_8 = s[e_116].privateDict; C_7 = Q_8.subrsIndex; } } else t && (C_7 = t); l_6 && (l_6 = this.parseCharString(h_4, g_11, C_7, i)); if (null !== h_4.width) { var e_117 = Q_8.getByName("nominalWidthX"); o[c_6] = e_117 + h_4.width; } else { var e_118 = Q_8.getByName("defaultWidthX"); o[c_6] = e_118; } null !== h_4.seac && (n[c_6] = h_4.seac); l_6 || e.set(c_6, new Uint8Array([14])); } return { charStrings: e, seacs: n, widths: o }; }; CFFParser.prototype.emptyPrivateDictionary = function (e) { var t = this.createDict(CFFPrivateDict, [], e.strings); e.setByKey(18, [0, 0]); e.privateDict = t; }; CFFParser.prototype.parsePrivateDict = function (e) { if (!e.hasName("Private")) { this.emptyPrivateDictionary(e); return; } var t = e.getByName("Private"); if (!Array.isArray(t) || 2 !== t.length) { e.removeByName("Private"); return; } var i = t[0], a = t[1]; if (0 === i || a >= this.bytes.length) { this.emptyPrivateDictionary(e); return; } var s = a + i, r = this.bytes.subarray(a, s), n = this.parseDict(r), o = this.createDict(CFFPrivateDict, n, e.strings); e.privateDict = o; 0 === o.getByName("ExpansionFactor") && o.setByName("ExpansionFactor", .06); if (!o.getByName("Subrs")) return; var g = o.getByName("Subrs"), c = a + g; if (0 === g || c >= this.bytes.length) { this.emptyPrivateDictionary(e); return; } var h = this.parseIndex(c); o.subrsIndex = h.obj; }; CFFParser.prototype.parseCharsets = function (e, t, i, a) { if (0 === e) return new CFFCharset(!0, Ri.ISO_ADOBE, Ci); if (1 === e) return new CFFCharset(!0, Ri.EXPERT, Bi); if (2 === e) return new CFFCharset(!0, Ri.EXPERT_SUBSET, Qi); var s = this.bytes, r = e, n = s[e++], o = [a ? 0 : ".notdef"]; var g, c, h; t -= 1; switch (n) { case 0: for (h = 0; h < t; h++) { g = s[e++] << 8 | s[e++]; o.push(a ? g : i.get(g)); } break; case 1: for (; o.length <= t;) { g = s[e++] << 8 | s[e++]; c = s[e++]; for (h = 0; h <= c; h++) o.push(a ? g++ : i.get(g++)); } break; case 2: for (; o.length <= t;) { g = s[e++] << 8 | s[e++]; c = s[e++] << 8 | s[e++]; for (h = 0; h <= c; h++) o.push(a ? g++ : i.get(g++)); } break; default: throw new FormatError("Unknown charset format"); } var l = e, C = s.subarray(r, l); return new CFFCharset(!1, n, o, C); }; CFFParser.prototype.parseEncoding = function (e, t, i, a) { var s = Object.create(null), r = this.bytes; var n, o, g, c = !1, h = null; if (0 === e || 1 === e) { c = !0; n = e; var t_99 = e ? Ei : fi; for (o = 0, g = a.length; o < g; o++) { var e_119 = t_99.indexOf(a[o]); -1 !== e_119 && (s[e_119] = o); } } else { var t_100 = e; n = r[e++]; switch (127 & n) { case 0: var t_101 = r[e++]; for (o = 1; o <= t_101; o++) s[r[e++]] = o; break; case 1: var i_89 = r[e++]; var a_86 = 1; for (o = 0; o < i_89; o++) { var t_102 = r[e++], i_90 = r[e++]; for (var e_120 = t_102; e_120 <= t_102 + i_90; e_120++) s[e_120] = a_86++; } break; default: throw new FormatError("Unknown encoding format: ".concat(n, " in CFF")); } var g_12 = e; if (128 & n) { r[t_100] &= 127; !function readSupplement() { var t = r[e++]; for (o = 0; o < t; o++) { var t_103 = r[e++], n_29 = (r[e++] << 8) + (255 & r[e++]); s[t_103] = a.indexOf(i.get(n_29)); } }(); } h = r.subarray(t_100, g_12); } n &= 127; return new CFFEncoding(c, n, s, h); }; CFFParser.prototype.parseFDSelect = function (e, t) { var i = this.bytes, a = i[e++], s = []; var r; switch (a) { case 0: for (r = 0; r < t; ++r) { var t_104 = i[e++]; s.push(t_104); } break; case 3: var n_30 = i[e++] << 8 | i[e++]; for (r = 0; r < n_30; ++r) { var t_105 = i[e++] << 8 | i[e++]; if (0 === r && 0 !== t_105) { warn("parseFDSelect: The first range must have a first GID of 0 -- trying to recover."); t_105 = 0; } var a_87 = i[e++], n_31 = i[e] << 8 | i[e + 1]; for (var e_121 = t_105; e_121 < n_31; ++e_121) s.push(a_87); } e += 2; break; default: throw new FormatError("parseFDSelect: Unknown format \"".concat(a, "\".")); } if (s.length !== t) throw new FormatError("parseFDSelect: Invalid font data."); return new CFFFDSelect(a, s); }; return CFFParser; }()); var CFF = /** @class */ (function () { function CFF() { this.header = null; this.names = []; this.topDict = null; this.strings = new CFFStrings; this.globalSubrIndex = null; this.encoding = null; this.charset = null; this.charStrings = null; this.fdArray = []; this.fdSelect = null; this.isCIDFont = !1; } CFF.prototype.duplicateFirstGlyph = function () { if (this.charStrings.count >= 65535) { warn("Not enough space in charstrings to duplicate first glyph."); return; } var e = this.charStrings.get(0); this.charStrings.add(e); this.isCIDFont && this.fdSelect.fdSelect.push(this.fdSelect.fdSelect[0]); }; CFF.prototype.hasGlyphId = function (e) { if (e < 0 || e >= this.charStrings.count) return !1; return this.charStrings.get(e).length > 0; }; return CFF; }()); var CFFHeader = /** @class */ (function () { function CFFHeader(e, t, i, a) { this.major = e; this.minor = t; this.hdrSize = i; this.offSize = a; } return CFFHeader; }()); var CFFStrings = /** @class */ (function () { function CFFStrings() { this.strings = []; } CFFStrings.prototype.get = function (e) { return e >= 0 && e <= 390 ? wi[e] : e - bi <= this.strings.length ? this.strings[e - bi] : wi[0]; }; CFFStrings.prototype.getSID = function (e) { var t = wi.indexOf(e); if (-1 !== t) return t; t = this.strings.indexOf(e); return -1 !== t ? t + bi : -1; }; CFFStrings.prototype.add = function (e) { this.strings.push(e); }; Object.defineProperty(CFFStrings.prototype, "count", { get: function () { return this.strings.length; }, enumerable: false, configurable: true }); return CFFStrings; }()); var CFFIndex = /** @class */ (function () { function CFFIndex() { this.objects = []; this.length = 0; } CFFIndex.prototype.add = function (e) { this.length += e.length; this.objects.push(e); }; CFFIndex.prototype.set = function (e, t) { this.length += t.length - this.objects[e].length; this.objects[e] = t; }; CFFIndex.prototype.get = function (e) { return this.objects[e]; }; Object.defineProperty(CFFIndex.prototype, "count", { get: function () { return this.objects.length; }, enumerable: false, configurable: true }); return CFFIndex; }()); var CFFDict = /** @class */ (function () { function CFFDict(e, t) { this.keyToNameMap = e.keyToNameMap; this.nameToKeyMap = e.nameToKeyMap; this.defaults = e.defaults; this.types = e.types; this.opcodes = e.opcodes; this.order = e.order; this.strings = t; this.values = Object.create(null); } CFFDict.prototype.setByKey = function (e, t) { if (!(e in this.keyToNameMap)) return !1; if (0 === t.length) return !0; for (var _b = 0, t_106 = t; _b < t_106.length; _b++) { var i_91 = t_106[_b]; if (isNaN(i_91)) { warn("Invalid CFFDict value: \"".concat(t, "\" for key \"").concat(e, "\".")); return !0; } } var i = this.types[e]; "num" !== i && "sid" !== i && "offset" !== i || (t = t[0]); this.values[e] = t; return !0; }; CFFDict.prototype.setByName = function (e, t) { if (!(e in this.nameToKeyMap)) throw new FormatError("Invalid dictionary name \"".concat(e, "\"")); this.values[this.nameToKeyMap[e]] = t; }; CFFDict.prototype.hasName = function (e) { return this.nameToKeyMap[e] in this.values; }; CFFDict.prototype.getByName = function (e) { if (!(e in this.nameToKeyMap)) throw new FormatError("Invalid dictionary name ".concat(e, "\"")); var t = this.nameToKeyMap[e]; return t in this.values ? this.values[t] : this.defaults[t]; }; CFFDict.prototype.removeByName = function (e) { delete this.values[this.nameToKeyMap[e]]; }; CFFDict.createTables = function (e) { var t = { keyToNameMap: {}, nameToKeyMap: {}, defaults: {}, types: {}, opcodes: {}, order: [] }; for (var _b = 0, e_122 = e; _b < e_122.length; _b++) { var i_92 = e_122[_b]; var e_123 = Array.isArray(i_92[0]) ? (i_92[0][0] << 8) + i_92[0][1] : i_92[0]; t.keyToNameMap[e_123] = i_92[1]; t.nameToKeyMap[i_92[1]] = e_123; t.types[e_123] = i_92[2]; t.defaults[e_123] = i_92[3]; t.opcodes[e_123] = Array.isArray(i_92[0]) ? i_92[0] : [i_92[0]]; t.order.push(e_123); } return t; }; return CFFDict; }()); var Si = [[[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]]; var CFFTopDict = /** @class */ (function (_super) { tslib_1.__extends(CFFTopDict, _super); function CFFTopDict(e) { var _this = _super.call(this, CFFTopDict.tables, e) || this; _this.privateDict = null; return _this; } Object.defineProperty(CFFTopDict, "tables", { get: function () { return shadow(this, "tables", this.createTables(Si)); }, enumerable: false, configurable: true }); return CFFTopDict; }(CFFDict)); var ki = [[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]]; var CFFPrivateDict = /** @class */ (function (_super) { tslib_1.__extends(CFFPrivateDict, _super); function CFFPrivateDict(e) { var _this = _super.call(this, CFFPrivateDict.tables, e) || this; _this.subrsIndex = null; return _this; } Object.defineProperty(CFFPrivateDict, "tables", { get: function () { return shadow(this, "tables", this.createTables(ki)); }, enumerable: false, configurable: true }); return CFFPrivateDict; }(CFFDict)); var Ri = { ISO_ADOBE: 0, EXPERT: 1, EXPERT_SUBSET: 2 }; var CFFCharset = /** @class */ (function () { function CFFCharset(e, t, i, a) { this.predefined = e; this.format = t; this.charset = i; this.raw = a; } return CFFCharset; }()); var CFFEncoding = /** @class */ (function () { function CFFEncoding(e, t, i, a) { this.predefined = e; this.format = t; this.encoding = i; this.raw = a; } return CFFEncoding; }()); var CFFFDSelect = /** @class */ (function () { function CFFFDSelect(e, t) { this.format = e; this.fdSelect = t; } CFFFDSelect.prototype.getFDIndex = function (e) { return e < 0 || e >= this.fdSelect.length ? -1 : this.fdSelect[e]; }; return CFFFDSelect; }()); var CFFOffsetTracker = /** @class */ (function () { function CFFOffsetTracker() { this.offsets = Object.create(null); } CFFOffsetTracker.prototype.isTracking = function (e) { return e in this.offsets; }; CFFOffsetTracker.prototype.track = function (e, t) { if (e in this.offsets) throw new FormatError("Already tracking location of ".concat(e)); this.offsets[e] = t; }; CFFOffsetTracker.prototype.offset = function (e) { for (var t_107 in this.offsets) this.offsets[t_107] += e; }; CFFOffsetTracker.prototype.setEntryLocation = function (e, t, i) { if (!(e in this.offsets)) throw new FormatError("Not tracking location of ".concat(e)); var a = i.data, s = this.offsets[e]; for (var e_124 = 0, i_93 = t.length; e_124 < i_93; ++e_124) { var i_94 = 5 * e_124 + s, r_45 = i_94 + 1, n_32 = i_94 + 2, o_18 = i_94 + 3, g_13 = i_94 + 4; if (29 !== a[i_94] || 0 !== a[r_45] || 0 !== a[n_32] || 0 !== a[o_18] || 0 !== a[g_13]) throw new FormatError("writing to an offset that is not empty"); var c_7 = t[e_124]; a[i_94] = 29; a[r_45] = c_7 >> 24 & 255; a[n_32] = c_7 >> 16 & 255; a[o_18] = c_7 >> 8 & 255; a[g_13] = 255 & c_7; } }; return CFFOffsetTracker; }()); var CFFCompiler = /** @class */ (function () { function CFFCompiler(e) { this.cff = e; } CFFCompiler.prototype.compile = function () { var e = this.cff, t = { data: [], length: 0, add: function (e) { var _b; try { (_b = this.data).push.apply(_b, e); } catch (_h) { this.data = this.data.concat(e); } this.length = this.data.length; } }, i = this.compileHeader(e.header); t.add(i); var a = this.compileNameIndex(e.names); t.add(a); if (e.isCIDFont && e.topDict.hasName("FontMatrix")) { var t_108 = e.topDict.getByName("FontMatrix"); e.topDict.removeByName("FontMatrix"); for (var _b = 0, _h = e.fdArray; _b < _h.length; _b++) { var i_95 = _h[_b]; var e_125 = t_108.slice(0); i_95.hasName("FontMatrix") && (e_125 = Util.transform(e_125, i_95.getByName("FontMatrix"))); i_95.setByName("FontMatrix", e_125); } } var s = e.topDict.getByName("XUID"); (s === null || s === void 0 ? void 0 : s.length) > 16 && e.topDict.removeByName("XUID"); e.topDict.setByName("charset", 0); var r = this.compileTopDicts([e.topDict], t.length, e.isCIDFont); t.add(r.output); var n = r.trackers[0], o = this.compileStringIndex(e.strings.strings); t.add(o); var g = this.compileIndex(e.globalSubrIndex); t.add(g); if (e.encoding && e.topDict.hasName("Encoding")) if (e.encoding.predefined) n.setEntryLocation("Encoding", [e.encoding.format], t); else { var i_96 = this.compileEncoding(e.encoding); n.setEntryLocation("Encoding", [t.length], t); t.add(i_96); } var c = this.compileCharset(e.charset, e.charStrings.count, e.strings, e.isCIDFont); n.setEntryLocation("charset", [t.length], t); t.add(c); var h = this.compileCharStrings(e.charStrings); n.setEntryLocation("CharStrings", [t.length], t); t.add(h); if (e.isCIDFont) { n.setEntryLocation("FDSelect", [t.length], t); var i_97 = this.compileFDSelect(e.fdSelect); t.add(i_97); r = this.compileTopDicts(e.fdArray, t.length, !0); n.setEntryLocation("FDArray", [t.length], t); t.add(r.output); var a_88 = r.trackers; this.compilePrivateDicts(e.fdArray, a_88, t); } this.compilePrivateDicts([e.topDict], [n], t); t.add([0]); return t.data; }; CFFCompiler.prototype.encodeNumber = function (e) { return Number.isInteger(e) ? this.encodeInteger(e) : this.encodeFloat(e); }; Object.defineProperty(CFFCompiler, "EncodeFloatRegExp", { get: function () { return shadow(this, "EncodeFloatRegExp", /\.(\d*?)(?:9{5,20}|0{5,20})\d{0,2}(?:e(.+)|$)/); }, enumerable: false, configurable: true }); CFFCompiler.prototype.encodeFloat = function (e) { var t = e.toString(); var i = CFFCompiler.EncodeFloatRegExp.exec(t); if (i) { var a_89 = parseFloat("1e" + ((i[2] ? +i[2] : 0) + i[1].length)); t = (Math.round(e * a_89) / a_89).toString(); } var a, s, r = ""; for (a = 0, s = t.length; a < s; ++a) { var e_126 = t[a]; r += "e" === e_126 ? "-" === t[++a] ? "c" : "b" : "." === e_126 ? "a" : "-" === e_126 ? "e" : e_126; } r += 1 & r.length ? "f" : "ff"; var n = [30]; for (a = 0, s = r.length; a < s; a += 2) n.push(parseInt(r.substring(a, a + 2), 16)); return n; }; CFFCompiler.prototype.encodeInteger = function (e) { var t; t = e >= -107 && e <= 107 ? [e + 139] : e >= 108 && e <= 1131 ? [247 + ((e -= 108) >> 8), 255 & e] : e >= -1131 && e <= -108 ? [251 + ((e = -e - 108) >> 8), 255 & e] : e >= -32768 && e <= 32767 ? [28, e >> 8 & 255, 255 & e] : [29, e >> 24 & 255, e >> 16 & 255, e >> 8 & 255, 255 & e]; return t; }; CFFCompiler.prototype.compileHeader = function (e) { return [e.major, e.minor, 4, e.offSize]; }; CFFCompiler.prototype.compileNameIndex = function (e) { var t = new CFFIndex; for (var _b = 0, e_127 = e; _b < e_127.length; _b++) { var i_98 = e_127[_b]; var e_128 = Math.min(i_98.length, 127); var a_90 = new Array(e_128); for (var t_109 = 0; t_109 < e_128; t_109++) { var e_129 = i_98[t_109]; (e_129 < "!" || e_129 > "~" || "[" === e_129 || "]" === e_129 || "(" === e_129 || ")" === e_129 || "{" === e_129 || "}" === e_129 || "<" === e_129 || ">" === e_129 || "/" === e_129 || "%" === e_129) && (e_129 = "_"); a_90[t_109] = e_129; } a_90 = a_90.join(""); "" === a_90 && (a_90 = "Bad_Font_Name"); t.add(stringToBytes(a_90)); } return this.compileIndex(t); }; CFFCompiler.prototype.compileTopDicts = function (e, t, i) { var a = []; var s = new CFFIndex; for (var _b = 0, e_130 = e; _b < e_130.length; _b++) { var r_46 = e_130[_b]; if (i) { r_46.removeByName("CIDFontVersion"); r_46.removeByName("CIDFontRevision"); r_46.removeByName("CIDFontType"); r_46.removeByName("CIDCount"); r_46.removeByName("UIDBase"); } var e_131 = new CFFOffsetTracker, n_33 = this.compileDict(r_46, e_131); a.push(e_131); s.add(n_33); e_131.offset(t); } s = this.compileIndex(s, a); return { trackers: a, output: s }; }; CFFCompiler.prototype.compilePrivateDicts = function (e, t, i) { for (var a_91 = 0, s_64 = e.length; a_91 < s_64; ++a_91) { var s_65 = e[a_91], r_47 = s_65.privateDict; if (!r_47 || !s_65.hasName("Private")) throw new FormatError("There must be a private dictionary."); var n_34 = new CFFOffsetTracker, o_19 = this.compileDict(r_47, n_34); var g_14 = i.length; n_34.offset(g_14); o_19.length || (g_14 = 0); t[a_91].setEntryLocation("Private", [o_19.length, g_14], i); i.add(o_19); if (r_47.subrsIndex && r_47.hasName("Subrs")) { var e_132 = this.compileIndex(r_47.subrsIndex); n_34.setEntryLocation("Subrs", [o_19.length], i); i.add(e_132); } } }; CFFCompiler.prototype.compileDict = function (e, t) { var i = []; for (var _b = 0, _h = e.order; _b < _h.length; _b++) { var a_92 = _h[_b]; if (!(a_92 in e.values)) continue; var s_66 = e.values[a_92], r_48 = e.types[a_92]; Array.isArray(r_48) || (r_48 = [r_48]); Array.isArray(s_66) || (s_66 = [s_66]); if (0 !== s_66.length) { for (var n_35 = 0, o_20 = r_48.length; n_35 < o_20; ++n_35) { var o_21 = r_48[n_35], g_15 = s_66[n_35]; switch (o_21) { case "num": case "sid": i.push.apply(i, this.encodeNumber(g_15)); break; case "offset": var r_49 = e.keyToNameMap[a_92]; t.isTracking(r_49) || t.track(r_49, i.length); i.push(29, 0, 0, 0, 0); break; case "array": case "delta": i.push.apply(i, this.encodeNumber(g_15)); for (var e_133 = 1, t_110 = s_66.length; e_133 < t_110; ++e_133) i.push.apply(i, this.encodeNumber(s_66[e_133])); break; default: throw new FormatError("Unknown data type of ".concat(o_21)); } } i.push.apply(i, e.opcodes[a_92]); } } return i; }; CFFCompiler.prototype.compileStringIndex = function (e) { var t = new CFFIndex; for (var _b = 0, e_134 = e; _b < e_134.length; _b++) { var i_99 = e_134[_b]; t.add(stringToBytes(i_99)); } return this.compileIndex(t); }; CFFCompiler.prototype.compileCharStrings = function (e) { var t = new CFFIndex; for (var i_100 = 0; i_100 < e.count; i_100++) { var a_93 = e.get(i_100); 0 !== a_93.length ? t.add(a_93) : t.add(new Uint8Array([139, 14])); } return this.compileIndex(t); }; CFFCompiler.prototype.compileCharset = function (e, t, i, a) { var s; var r = t - 1; if (a) s = new Uint8Array([2, 0, 0, r >> 8 & 255, 255 & r]); else { s = new Uint8Array(1 + 2 * r); s[0] = 0; var t_111 = 0; var a_94 = e.charset.length; var n_36 = !1; for (var r_50 = 1; r_50 < s.length; r_50 += 2) { var o_22 = 0; if (t_111 < a_94) { var a_95 = e.charset[t_111++]; o_22 = i.getSID(a_95); if (-1 === o_22) { o_22 = 0; if (!n_36) { n_36 = !0; warn("Couldn't find ".concat(a_95, " in CFF strings")); } } } s[r_50] = o_22 >> 8 & 255; s[r_50 + 1] = 255 & o_22; } } return this.compileTypedArray(s); }; CFFCompiler.prototype.compileEncoding = function (e) { return this.compileTypedArray(e.raw); }; CFFCompiler.prototype.compileFDSelect = function (e) { var t = e.format; var i, a; switch (t) { case 0: i = new Uint8Array(1 + e.fdSelect.length); i[0] = t; for (a = 0; a < e.fdSelect.length; a++) i[a + 1] = e.fdSelect[a]; break; case 3: var s_67 = 0; var r_51 = e.fdSelect[0]; var n_37 = [t, 0, 0, s_67 >> 8 & 255, 255 & s_67, r_51]; for (a = 1; a < e.fdSelect.length; a++) { var t_112 = e.fdSelect[a]; if (t_112 !== r_51) { n_37.push(a >> 8 & 255, 255 & a, t_112); r_51 = t_112; } } var o_23 = (n_37.length - 3) / 3; n_37[1] = o_23 >> 8 & 255; n_37[2] = 255 & o_23; n_37.push(a >> 8 & 255, 255 & a); i = new Uint8Array(n_37); } return this.compileTypedArray(i); }; CFFCompiler.prototype.compileTypedArray = function (e) { return Array.from(e); }; CFFCompiler.prototype.compileIndex = function (e, t) { if (t === void 0) { t = []; } var i = e.objects, a = i.length; if (0 === a) return [0, 0]; var s = [a >> 8 & 255, 255 & a]; var r, n, o = 1; for (r = 0; r < a; ++r) o += i[r].length; n = o < 256 ? 1 : o < 65536 ? 2 : o < 16777216 ? 3 : 4; s.push(n); var g = 1; for (r = 0; r < a + 1; r++) { 1 === n ? s.push(255 & g) : 2 === n ? s.push(g >> 8 & 255, 255 & g) : 3 === n ? s.push(g >> 16 & 255, g >> 8 & 255, 255 & g) : s.push(g >>> 24 & 255, g >> 16 & 255, g >> 8 & 255, 255 & g); i[r] && (g += i[r].length); } for (r = 0; r < a; r++) { t[r] && t[r].offset(s.length); s.push.apply(s, i[r]); } return s; }; return CFFCompiler; }()); var Ni = getLookupTableFactory((function (e) { e.A = 65; e.AE = 198; e.AEacute = 508; e.AEmacron = 482; e.AEsmall = 63462; e.Aacute = 193; e.Aacutesmall = 63457; e.Abreve = 258; e.Abreveacute = 7854; e.Abrevecyrillic = 1232; e.Abrevedotbelow = 7862; e.Abrevegrave = 7856; e.Abrevehookabove = 7858; e.Abrevetilde = 7860; e.Acaron = 461; e.Acircle = 9398; e.Acircumflex = 194; e.Acircumflexacute = 7844; e.Acircumflexdotbelow = 7852; e.Acircumflexgrave = 7846; e.Acircumflexhookabove = 7848; e.Acircumflexsmall = 63458; e.Acircumflextilde = 7850; e.Acute = 63177; e.Acutesmall = 63412; e.Acyrillic = 1040; e.Adblgrave = 512; e.Adieresis = 196; e.Adieresiscyrillic = 1234; e.Adieresismacron = 478; e.Adieresissmall = 63460; e.Adotbelow = 7840; e.Adotmacron = 480; e.Agrave = 192; e.Agravesmall = 63456; e.Ahookabove = 7842; e.Aiecyrillic = 1236; e.Ainvertedbreve = 514; e.Alpha = 913; e.Alphatonos = 902; e.Amacron = 256; e.Amonospace = 65313; e.Aogonek = 260; e.Aring = 197; e.Aringacute = 506; e.Aringbelow = 7680; e.Aringsmall = 63461; e.Asmall = 63329; e.Atilde = 195; e.Atildesmall = 63459; e.Aybarmenian = 1329; e.B = 66; e.Bcircle = 9399; e.Bdotaccent = 7682; e.Bdotbelow = 7684; e.Becyrillic = 1041; e.Benarmenian = 1330; e.Beta = 914; e.Bhook = 385; e.Blinebelow = 7686; e.Bmonospace = 65314; e.Brevesmall = 63220; e.Bsmall = 63330; e.Btopbar = 386; e.C = 67; e.Caarmenian = 1342; e.Cacute = 262; e.Caron = 63178; e.Caronsmall = 63221; e.Ccaron = 268; e.Ccedilla = 199; e.Ccedillaacute = 7688; e.Ccedillasmall = 63463; e.Ccircle = 9400; e.Ccircumflex = 264; e.Cdot = 266; e.Cdotaccent = 266; e.Cedillasmall = 63416; e.Chaarmenian = 1353; e.Cheabkhasiancyrillic = 1212; e.Checyrillic = 1063; e.Chedescenderabkhasiancyrillic = 1214; e.Chedescendercyrillic = 1206; e.Chedieresiscyrillic = 1268; e.Cheharmenian = 1347; e.Chekhakassiancyrillic = 1227; e.Cheverticalstrokecyrillic = 1208; e.Chi = 935; e.Chook = 391; e.Circumflexsmall = 63222; e.Cmonospace = 65315; e.Coarmenian = 1361; e.Csmall = 63331; e.D = 68; e.DZ = 497; e.DZcaron = 452; e.Daarmenian = 1332; e.Dafrican = 393; e.Dcaron = 270; e.Dcedilla = 7696; e.Dcircle = 9401; e.Dcircumflexbelow = 7698; e.Dcroat = 272; e.Ddotaccent = 7690; e.Ddotbelow = 7692; e.Decyrillic = 1044; e.Deicoptic = 1006; e.Delta = 8710; e.Deltagreek = 916; e.Dhook = 394; e.Dieresis = 63179; e.DieresisAcute = 63180; e.DieresisGrave = 63181; e.Dieresissmall = 63400; e.Digammagreek = 988; e.Djecyrillic = 1026; e.Dlinebelow = 7694; e.Dmonospace = 65316; e.Dotaccentsmall = 63223; e.Dslash = 272; e.Dsmall = 63332; e.Dtopbar = 395; e.Dz = 498; e.Dzcaron = 453; e.Dzeabkhasiancyrillic = 1248; e.Dzecyrillic = 1029; e.Dzhecyrillic = 1039; e.E = 69; e.Eacute = 201; e.Eacutesmall = 63465; e.Ebreve = 276; e.Ecaron = 282; e.Ecedillabreve = 7708; e.Echarmenian = 1333; e.Ecircle = 9402; e.Ecircumflex = 202; e.Ecircumflexacute = 7870; e.Ecircumflexbelow = 7704; e.Ecircumflexdotbelow = 7878; e.Ecircumflexgrave = 7872; e.Ecircumflexhookabove = 7874; e.Ecircumflexsmall = 63466; e.Ecircumflextilde = 7876; e.Ecyrillic = 1028; e.Edblgrave = 516; e.Edieresis = 203; e.Edieresissmall = 63467; e.Edot = 278; e.Edotaccent = 278; e.Edotbelow = 7864; e.Efcyrillic = 1060; e.Egrave = 200; e.Egravesmall = 63464; e.Eharmenian = 1335; e.Ehookabove = 7866; e.Eightroman = 8551; e.Einvertedbreve = 518; e.Eiotifiedcyrillic = 1124; e.Elcyrillic = 1051; e.Elevenroman = 8554; e.Emacron = 274; e.Emacronacute = 7702; e.Emacrongrave = 7700; e.Emcyrillic = 1052; e.Emonospace = 65317; e.Encyrillic = 1053; e.Endescendercyrillic = 1186; e.Eng = 330; e.Enghecyrillic = 1188; e.Enhookcyrillic = 1223; e.Eogonek = 280; e.Eopen = 400; e.Epsilon = 917; e.Epsilontonos = 904; e.Ercyrillic = 1056; e.Ereversed = 398; e.Ereversedcyrillic = 1069; e.Escyrillic = 1057; e.Esdescendercyrillic = 1194; e.Esh = 425; e.Esmall = 63333; e.Eta = 919; e.Etarmenian = 1336; e.Etatonos = 905; e.Eth = 208; e.Ethsmall = 63472; e.Etilde = 7868; e.Etildebelow = 7706; e.Euro = 8364; e.Ezh = 439; e.Ezhcaron = 494; e.Ezhreversed = 440; e.F = 70; e.Fcircle = 9403; e.Fdotaccent = 7710; e.Feharmenian = 1366; e.Feicoptic = 996; e.Fhook = 401; e.Fitacyrillic = 1138; e.Fiveroman = 8548; e.Fmonospace = 65318; e.Fourroman = 8547; e.Fsmall = 63334; e.G = 71; e.GBsquare = 13191; e.Gacute = 500; e.Gamma = 915; e.Gammaafrican = 404; e.Gangiacoptic = 1002; e.Gbreve = 286; e.Gcaron = 486; e.Gcedilla = 290; e.Gcircle = 9404; e.Gcircumflex = 284; e.Gcommaaccent = 290; e.Gdot = 288; e.Gdotaccent = 288; e.Gecyrillic = 1043; e.Ghadarmenian = 1346; e.Ghemiddlehookcyrillic = 1172; e.Ghestrokecyrillic = 1170; e.Gheupturncyrillic = 1168; e.Ghook = 403; e.Gimarmenian = 1331; e.Gjecyrillic = 1027; e.Gmacron = 7712; e.Gmonospace = 65319; e.Grave = 63182; e.Gravesmall = 63328; e.Gsmall = 63335; e.Gsmallhook = 667; e.Gstroke = 484; e.H = 72; e.H18533 = 9679; e.H18543 = 9642; e.H18551 = 9643; e.H22073 = 9633; e.HPsquare = 13259; e.Haabkhasiancyrillic = 1192; e.Hadescendercyrillic = 1202; e.Hardsigncyrillic = 1066; e.Hbar = 294; e.Hbrevebelow = 7722; e.Hcedilla = 7720; e.Hcircle = 9405; e.Hcircumflex = 292; e.Hdieresis = 7718; e.Hdotaccent = 7714; e.Hdotbelow = 7716; e.Hmonospace = 65320; e.Hoarmenian = 1344; e.Horicoptic = 1e3; e.Hsmall = 63336; e.Hungarumlaut = 63183; e.Hungarumlautsmall = 63224; e.Hzsquare = 13200; e.I = 73; e.IAcyrillic = 1071; e.IJ = 306; e.IUcyrillic = 1070; e.Iacute = 205; e.Iacutesmall = 63469; e.Ibreve = 300; e.Icaron = 463; e.Icircle = 9406; e.Icircumflex = 206; e.Icircumflexsmall = 63470; e.Icyrillic = 1030; e.Idblgrave = 520; e.Idieresis = 207; e.Idieresisacute = 7726; e.Idieresiscyrillic = 1252; e.Idieresissmall = 63471; e.Idot = 304; e.Idotaccent = 304; e.Idotbelow = 7882; e.Iebrevecyrillic = 1238; e.Iecyrillic = 1045; e.Ifraktur = 8465; e.Igrave = 204; e.Igravesmall = 63468; e.Ihookabove = 7880; e.Iicyrillic = 1048; e.Iinvertedbreve = 522; e.Iishortcyrillic = 1049; e.Imacron = 298; e.Imacroncyrillic = 1250; e.Imonospace = 65321; e.Iniarmenian = 1339; e.Iocyrillic = 1025; e.Iogonek = 302; e.Iota = 921; e.Iotaafrican = 406; e.Iotadieresis = 938; e.Iotatonos = 906; e.Ismall = 63337; e.Istroke = 407; e.Itilde = 296; e.Itildebelow = 7724; e.Izhitsacyrillic = 1140; e.Izhitsadblgravecyrillic = 1142; e.J = 74; e.Jaarmenian = 1345; e.Jcircle = 9407; e.Jcircumflex = 308; e.Jecyrillic = 1032; e.Jheharmenian = 1355; e.Jmonospace = 65322; e.Jsmall = 63338; e.K = 75; e.KBsquare = 13189; e.KKsquare = 13261; e.Kabashkircyrillic = 1184; e.Kacute = 7728; e.Kacyrillic = 1050; e.Kadescendercyrillic = 1178; e.Kahookcyrillic = 1219; e.Kappa = 922; e.Kastrokecyrillic = 1182; e.Kaverticalstrokecyrillic = 1180; e.Kcaron = 488; e.Kcedilla = 310; e.Kcircle = 9408; e.Kcommaaccent = 310; e.Kdotbelow = 7730; e.Keharmenian = 1364; e.Kenarmenian = 1343; e.Khacyrillic = 1061; e.Kheicoptic = 998; e.Khook = 408; e.Kjecyrillic = 1036; e.Klinebelow = 7732; e.Kmonospace = 65323; e.Koppacyrillic = 1152; e.Koppagreek = 990; e.Ksicyrillic = 1134; e.Ksmall = 63339; e.L = 76; e.LJ = 455; e.LL = 63167; e.Lacute = 313; e.Lambda = 923; e.Lcaron = 317; e.Lcedilla = 315; e.Lcircle = 9409; e.Lcircumflexbelow = 7740; e.Lcommaaccent = 315; e.Ldot = 319; e.Ldotaccent = 319; e.Ldotbelow = 7734; e.Ldotbelowmacron = 7736; e.Liwnarmenian = 1340; e.Lj = 456; e.Ljecyrillic = 1033; e.Llinebelow = 7738; e.Lmonospace = 65324; e.Lslash = 321; e.Lslashsmall = 63225; e.Lsmall = 63340; e.M = 77; e.MBsquare = 13190; e.Macron = 63184; e.Macronsmall = 63407; e.Macute = 7742; e.Mcircle = 9410; e.Mdotaccent = 7744; e.Mdotbelow = 7746; e.Menarmenian = 1348; e.Mmonospace = 65325; e.Msmall = 63341; e.Mturned = 412; e.Mu = 924; e.N = 78; e.NJ = 458; e.Nacute = 323; e.Ncaron = 327; e.Ncedilla = 325; e.Ncircle = 9411; e.Ncircumflexbelow = 7754; e.Ncommaaccent = 325; e.Ndotaccent = 7748; e.Ndotbelow = 7750; e.Nhookleft = 413; e.Nineroman = 8552; e.Nj = 459; e.Njecyrillic = 1034; e.Nlinebelow = 7752; e.Nmonospace = 65326; e.Nowarmenian = 1350; e.Nsmall = 63342; e.Ntilde = 209; e.Ntildesmall = 63473; e.Nu = 925; e.O = 79; e.OE = 338; e.OEsmall = 63226; e.Oacute = 211; e.Oacutesmall = 63475; e.Obarredcyrillic = 1256; e.Obarreddieresiscyrillic = 1258; e.Obreve = 334; e.Ocaron = 465; e.Ocenteredtilde = 415; e.Ocircle = 9412; e.Ocircumflex = 212; e.Ocircumflexacute = 7888; e.Ocircumflexdotbelow = 7896; e.Ocircumflexgrave = 7890; e.Ocircumflexhookabove = 7892; e.Ocircumflexsmall = 63476; e.Ocircumflextilde = 7894; e.Ocyrillic = 1054; e.Odblacute = 336; e.Odblgrave = 524; e.Odieresis = 214; e.Odieresiscyrillic = 1254; e.Odieresissmall = 63478; e.Odotbelow = 7884; e.Ogoneksmall = 63227; e.Ograve = 210; e.Ogravesmall = 63474; e.Oharmenian = 1365; e.Ohm = 8486; e.Ohookabove = 7886; e.Ohorn = 416; e.Ohornacute = 7898; e.Ohorndotbelow = 7906; e.Ohorngrave = 7900; e.Ohornhookabove = 7902; e.Ohorntilde = 7904; e.Ohungarumlaut = 336; e.Oi = 418; e.Oinvertedbreve = 526; e.Omacron = 332; e.Omacronacute = 7762; e.Omacrongrave = 7760; e.Omega = 8486; e.Omegacyrillic = 1120; e.Omegagreek = 937; e.Omegaroundcyrillic = 1146; e.Omegatitlocyrillic = 1148; e.Omegatonos = 911; e.Omicron = 927; e.Omicrontonos = 908; e.Omonospace = 65327; e.Oneroman = 8544; e.Oogonek = 490; e.Oogonekmacron = 492; e.Oopen = 390; e.Oslash = 216; e.Oslashacute = 510; e.Oslashsmall = 63480; e.Osmall = 63343; e.Ostrokeacute = 510; e.Otcyrillic = 1150; e.Otilde = 213; e.Otildeacute = 7756; e.Otildedieresis = 7758; e.Otildesmall = 63477; e.P = 80; e.Pacute = 7764; e.Pcircle = 9413; e.Pdotaccent = 7766; e.Pecyrillic = 1055; e.Peharmenian = 1354; e.Pemiddlehookcyrillic = 1190; e.Phi = 934; e.Phook = 420; e.Pi = 928; e.Piwrarmenian = 1363; e.Pmonospace = 65328; e.Psi = 936; e.Psicyrillic = 1136; e.Psmall = 63344; e.Q = 81; e.Qcircle = 9414; e.Qmonospace = 65329; e.Qsmall = 63345; e.R = 82; e.Raarmenian = 1356; e.Racute = 340; e.Rcaron = 344; e.Rcedilla = 342; e.Rcircle = 9415; e.Rcommaaccent = 342; e.Rdblgrave = 528; e.Rdotaccent = 7768; e.Rdotbelow = 7770; e.Rdotbelowmacron = 7772; e.Reharmenian = 1360; e.Rfraktur = 8476; e.Rho = 929; e.Ringsmall = 63228; e.Rinvertedbreve = 530; e.Rlinebelow = 7774; e.Rmonospace = 65330; e.Rsmall = 63346; e.Rsmallinverted = 641; e.Rsmallinvertedsuperior = 694; e.S = 83; e.SF010000 = 9484; e.SF020000 = 9492; e.SF030000 = 9488; e.SF040000 = 9496; e.SF050000 = 9532; e.SF060000 = 9516; e.SF070000 = 9524; e.SF080000 = 9500; e.SF090000 = 9508; e.SF100000 = 9472; e.SF110000 = 9474; e.SF190000 = 9569; e.SF200000 = 9570; e.SF210000 = 9558; e.SF220000 = 9557; e.SF230000 = 9571; e.SF240000 = 9553; e.SF250000 = 9559; e.SF260000 = 9565; e.SF270000 = 9564; e.SF280000 = 9563; e.SF360000 = 9566; e.SF370000 = 9567; e.SF380000 = 9562; e.SF390000 = 9556; e.SF400000 = 9577; e.SF410000 = 9574; e.SF420000 = 9568; e.SF430000 = 9552; e.SF440000 = 9580; e.SF450000 = 9575; e.SF460000 = 9576; e.SF470000 = 9572; e.SF480000 = 9573; e.SF490000 = 9561; e.SF500000 = 9560; e.SF510000 = 9554; e.SF520000 = 9555; e.SF530000 = 9579; e.SF540000 = 9578; e.Sacute = 346; e.Sacutedotaccent = 7780; e.Sampigreek = 992; e.Scaron = 352; e.Scarondotaccent = 7782; e.Scaronsmall = 63229; e.Scedilla = 350; e.Schwa = 399; e.Schwacyrillic = 1240; e.Schwadieresiscyrillic = 1242; e.Scircle = 9416; e.Scircumflex = 348; e.Scommaaccent = 536; e.Sdotaccent = 7776; e.Sdotbelow = 7778; e.Sdotbelowdotaccent = 7784; e.Seharmenian = 1357; e.Sevenroman = 8550; e.Shaarmenian = 1351; e.Shacyrillic = 1064; e.Shchacyrillic = 1065; e.Sheicoptic = 994; e.Shhacyrillic = 1210; e.Shimacoptic = 1004; e.Sigma = 931; e.Sixroman = 8549; e.Smonospace = 65331; e.Softsigncyrillic = 1068; e.Ssmall = 63347; e.Stigmagreek = 986; e.T = 84; e.Tau = 932; e.Tbar = 358; e.Tcaron = 356; e.Tcedilla = 354; e.Tcircle = 9417; e.Tcircumflexbelow = 7792; e.Tcommaaccent = 354; e.Tdotaccent = 7786; e.Tdotbelow = 7788; e.Tecyrillic = 1058; e.Tedescendercyrillic = 1196; e.Tenroman = 8553; e.Tetsecyrillic = 1204; e.Theta = 920; e.Thook = 428; e.Thorn = 222; e.Thornsmall = 63486; e.Threeroman = 8546; e.Tildesmall = 63230; e.Tiwnarmenian = 1359; e.Tlinebelow = 7790; e.Tmonospace = 65332; e.Toarmenian = 1337; e.Tonefive = 444; e.Tonesix = 388; e.Tonetwo = 423; e.Tretroflexhook = 430; e.Tsecyrillic = 1062; e.Tshecyrillic = 1035; e.Tsmall = 63348; e.Twelveroman = 8555; e.Tworoman = 8545; e.U = 85; e.Uacute = 218; e.Uacutesmall = 63482; e.Ubreve = 364; e.Ucaron = 467; e.Ucircle = 9418; e.Ucircumflex = 219; e.Ucircumflexbelow = 7798; e.Ucircumflexsmall = 63483; e.Ucyrillic = 1059; e.Udblacute = 368; e.Udblgrave = 532; e.Udieresis = 220; e.Udieresisacute = 471; e.Udieresisbelow = 7794; e.Udieresiscaron = 473; e.Udieresiscyrillic = 1264; e.Udieresisgrave = 475; e.Udieresismacron = 469; e.Udieresissmall = 63484; e.Udotbelow = 7908; e.Ugrave = 217; e.Ugravesmall = 63481; e.Uhookabove = 7910; e.Uhorn = 431; e.Uhornacute = 7912; e.Uhorndotbelow = 7920; e.Uhorngrave = 7914; e.Uhornhookabove = 7916; e.Uhorntilde = 7918; e.Uhungarumlaut = 368; e.Uhungarumlautcyrillic = 1266; e.Uinvertedbreve = 534; e.Ukcyrillic = 1144; e.Umacron = 362; e.Umacroncyrillic = 1262; e.Umacrondieresis = 7802; e.Umonospace = 65333; e.Uogonek = 370; e.Upsilon = 933; e.Upsilon1 = 978; e.Upsilonacutehooksymbolgreek = 979; e.Upsilonafrican = 433; e.Upsilondieresis = 939; e.Upsilondieresishooksymbolgreek = 980; e.Upsilonhooksymbol = 978; e.Upsilontonos = 910; e.Uring = 366; e.Ushortcyrillic = 1038; e.Usmall = 63349; e.Ustraightcyrillic = 1198; e.Ustraightstrokecyrillic = 1200; e.Utilde = 360; e.Utildeacute = 7800; e.Utildebelow = 7796; e.V = 86; e.Vcircle = 9419; e.Vdotbelow = 7806; e.Vecyrillic = 1042; e.Vewarmenian = 1358; e.Vhook = 434; e.Vmonospace = 65334; e.Voarmenian = 1352; e.Vsmall = 63350; e.Vtilde = 7804; e.W = 87; e.Wacute = 7810; e.Wcircle = 9420; e.Wcircumflex = 372; e.Wdieresis = 7812; e.Wdotaccent = 7814; e.Wdotbelow = 7816; e.Wgrave = 7808; e.Wmonospace = 65335; e.Wsmall = 63351; e.X = 88; e.Xcircle = 9421; e.Xdieresis = 7820; e.Xdotaccent = 7818; e.Xeharmenian = 1341; e.Xi = 926; e.Xmonospace = 65336; e.Xsmall = 63352; e.Y = 89; e.Yacute = 221; e.Yacutesmall = 63485; e.Yatcyrillic = 1122; e.Ycircle = 9422; e.Ycircumflex = 374; e.Ydieresis = 376; e.Ydieresissmall = 63487; e.Ydotaccent = 7822; e.Ydotbelow = 7924; e.Yericyrillic = 1067; e.Yerudieresiscyrillic = 1272; e.Ygrave = 7922; e.Yhook = 435; e.Yhookabove = 7926; e.Yiarmenian = 1349; e.Yicyrillic = 1031; e.Yiwnarmenian = 1362; e.Ymonospace = 65337; e.Ysmall = 63353; e.Ytilde = 7928; e.Yusbigcyrillic = 1130; e.Yusbigiotifiedcyrillic = 1132; e.Yuslittlecyrillic = 1126; e.Yuslittleiotifiedcyrillic = 1128; e.Z = 90; e.Zaarmenian = 1334; e.Zacute = 377; e.Zcaron = 381; e.Zcaronsmall = 63231; e.Zcircle = 9423; e.Zcircumflex = 7824; e.Zdot = 379; e.Zdotaccent = 379; e.Zdotbelow = 7826; e.Zecyrillic = 1047; e.Zedescendercyrillic = 1176; e.Zedieresiscyrillic = 1246; e.Zeta = 918; e.Zhearmenian = 1338; e.Zhebrevecyrillic = 1217; e.Zhecyrillic = 1046; e.Zhedescendercyrillic = 1174; e.Zhedieresiscyrillic = 1244; e.Zlinebelow = 7828; e.Zmonospace = 65338; e.Zsmall = 63354; e.Zstroke = 437; e.a = 97; e.aabengali = 2438; e.aacute = 225; e.aadeva = 2310; e.aagujarati = 2694; e.aagurmukhi = 2566; e.aamatragurmukhi = 2622; e.aarusquare = 13059; e.aavowelsignbengali = 2494; e.aavowelsigndeva = 2366; e.aavowelsigngujarati = 2750; e.abbreviationmarkarmenian = 1375; e.abbreviationsigndeva = 2416; e.abengali = 2437; e.abopomofo = 12570; e.abreve = 259; e.abreveacute = 7855; e.abrevecyrillic = 1233; e.abrevedotbelow = 7863; e.abrevegrave = 7857; e.abrevehookabove = 7859; e.abrevetilde = 7861; e.acaron = 462; e.acircle = 9424; e.acircumflex = 226; e.acircumflexacute = 7845; e.acircumflexdotbelow = 7853; e.acircumflexgrave = 7847; e.acircumflexhookabove = 7849; e.acircumflextilde = 7851; e.acute = 180; e.acutebelowcmb = 791; e.acutecmb = 769; e.acutecomb = 769; e.acutedeva = 2388; e.acutelowmod = 719; e.acutetonecmb = 833; e.acyrillic = 1072; e.adblgrave = 513; e.addakgurmukhi = 2673; e.adeva = 2309; e.adieresis = 228; e.adieresiscyrillic = 1235; e.adieresismacron = 479; e.adotbelow = 7841; e.adotmacron = 481; e.ae = 230; e.aeacute = 509; e.aekorean = 12624; e.aemacron = 483; e.afii00208 = 8213; e.afii08941 = 8356; e.afii10017 = 1040; e.afii10018 = 1041; e.afii10019 = 1042; e.afii10020 = 1043; e.afii10021 = 1044; e.afii10022 = 1045; e.afii10023 = 1025; e.afii10024 = 1046; e.afii10025 = 1047; e.afii10026 = 1048; e.afii10027 = 1049; e.afii10028 = 1050; e.afii10029 = 1051; e.afii10030 = 1052; e.afii10031 = 1053; e.afii10032 = 1054; e.afii10033 = 1055; e.afii10034 = 1056; e.afii10035 = 1057; e.afii10036 = 1058; e.afii10037 = 1059; e.afii10038 = 1060; e.afii10039 = 1061; e.afii10040 = 1062; e.afii10041 = 1063; e.afii10042 = 1064; e.afii10043 = 1065; e.afii10044 = 1066; e.afii10045 = 1067; e.afii10046 = 1068; e.afii10047 = 1069; e.afii10048 = 1070; e.afii10049 = 1071; e.afii10050 = 1168; e.afii10051 = 1026; e.afii10052 = 1027; e.afii10053 = 1028; e.afii10054 = 1029; e.afii10055 = 1030; e.afii10056 = 1031; e.afii10057 = 1032; e.afii10058 = 1033; e.afii10059 = 1034; e.afii10060 = 1035; e.afii10061 = 1036; e.afii10062 = 1038; e.afii10063 = 63172; e.afii10064 = 63173; e.afii10065 = 1072; e.afii10066 = 1073; e.afii10067 = 1074; e.afii10068 = 1075; e.afii10069 = 1076; e.afii10070 = 1077; e.afii10071 = 1105; e.afii10072 = 1078; e.afii10073 = 1079; e.afii10074 = 1080; e.afii10075 = 1081; e.afii10076 = 1082; e.afii10077 = 1083; e.afii10078 = 1084; e.afii10079 = 1085; e.afii10080 = 1086; e.afii10081 = 1087; e.afii10082 = 1088; e.afii10083 = 1089; e.afii10084 = 1090; e.afii10085 = 1091; e.afii10086 = 1092; e.afii10087 = 1093; e.afii10088 = 1094; e.afii10089 = 1095; e.afii10090 = 1096; e.afii10091 = 1097; e.afii10092 = 1098; e.afii10093 = 1099; e.afii10094 = 1100; e.afii10095 = 1101; e.afii10096 = 1102; e.afii10097 = 1103; e.afii10098 = 1169; e.afii10099 = 1106; e.afii10100 = 1107; e.afii10101 = 1108; e.afii10102 = 1109; e.afii10103 = 1110; e.afii10104 = 1111; e.afii10105 = 1112; e.afii10106 = 1113; e.afii10107 = 1114; e.afii10108 = 1115; e.afii10109 = 1116; e.afii10110 = 1118; e.afii10145 = 1039; e.afii10146 = 1122; e.afii10147 = 1138; e.afii10148 = 1140; e.afii10192 = 63174; e.afii10193 = 1119; e.afii10194 = 1123; e.afii10195 = 1139; e.afii10196 = 1141; e.afii10831 = 63175; e.afii10832 = 63176; e.afii10846 = 1241; e.afii299 = 8206; e.afii300 = 8207; e.afii301 = 8205; e.afii57381 = 1642; e.afii57388 = 1548; e.afii57392 = 1632; e.afii57393 = 1633; e.afii57394 = 1634; e.afii57395 = 1635; e.afii57396 = 1636; e.afii57397 = 1637; e.afii57398 = 1638; e.afii57399 = 1639; e.afii57400 = 1640; e.afii57401 = 1641; e.afii57403 = 1563; e.afii57407 = 1567; e.afii57409 = 1569; e.afii57410 = 1570; e.afii57411 = 1571; e.afii57412 = 1572; e.afii57413 = 1573; e.afii57414 = 1574; e.afii57415 = 1575; e.afii57416 = 1576; e.afii57417 = 1577; e.afii57418 = 1578; e.afii57419 = 1579; e.afii57420 = 1580; e.afii57421 = 1581; e.afii57422 = 1582; e.afii57423 = 1583; e.afii57424 = 1584; e.afii57425 = 1585; e.afii57426 = 1586; e.afii57427 = 1587; e.afii57428 = 1588; e.afii57429 = 1589; e.afii57430 = 1590; e.afii57431 = 1591; e.afii57432 = 1592; e.afii57433 = 1593; e.afii57434 = 1594; e.afii57440 = 1600; e.afii57441 = 1601; e.afii57442 = 1602; e.afii57443 = 1603; e.afii57444 = 1604; e.afii57445 = 1605; e.afii57446 = 1606; e.afii57448 = 1608; e.afii57449 = 1609; e.afii57450 = 1610; e.afii57451 = 1611; e.afii57452 = 1612; e.afii57453 = 1613; e.afii57454 = 1614; e.afii57455 = 1615; e.afii57456 = 1616; e.afii57457 = 1617; e.afii57458 = 1618; e.afii57470 = 1607; e.afii57505 = 1700; e.afii57506 = 1662; e.afii57507 = 1670; e.afii57508 = 1688; e.afii57509 = 1711; e.afii57511 = 1657; e.afii57512 = 1672; e.afii57513 = 1681; e.afii57514 = 1722; e.afii57519 = 1746; e.afii57534 = 1749; e.afii57636 = 8362; e.afii57645 = 1470; e.afii57658 = 1475; e.afii57664 = 1488; e.afii57665 = 1489; e.afii57666 = 1490; e.afii57667 = 1491; e.afii57668 = 1492; e.afii57669 = 1493; e.afii57670 = 1494; e.afii57671 = 1495; e.afii57672 = 1496; e.afii57673 = 1497; e.afii57674 = 1498; e.afii57675 = 1499; e.afii57676 = 1500; e.afii57677 = 1501; e.afii57678 = 1502; e.afii57679 = 1503; e.afii57680 = 1504; e.afii57681 = 1505; e.afii57682 = 1506; e.afii57683 = 1507; e.afii57684 = 1508; e.afii57685 = 1509; e.afii57686 = 1510; e.afii57687 = 1511; e.afii57688 = 1512; e.afii57689 = 1513; e.afii57690 = 1514; e.afii57694 = 64298; e.afii57695 = 64299; e.afii57700 = 64331; e.afii57705 = 64287; e.afii57716 = 1520; e.afii57717 = 1521; e.afii57718 = 1522; e.afii57723 = 64309; e.afii57793 = 1460; e.afii57794 = 1461; e.afii57795 = 1462; e.afii57796 = 1467; e.afii57797 = 1464; e.afii57798 = 1463; e.afii57799 = 1456; e.afii57800 = 1458; e.afii57801 = 1457; e.afii57802 = 1459; e.afii57803 = 1474; e.afii57804 = 1473; e.afii57806 = 1465; e.afii57807 = 1468; e.afii57839 = 1469; e.afii57841 = 1471; e.afii57842 = 1472; e.afii57929 = 700; e.afii61248 = 8453; e.afii61289 = 8467; e.afii61352 = 8470; e.afii61573 = 8236; e.afii61574 = 8237; e.afii61575 = 8238; e.afii61664 = 8204; e.afii63167 = 1645; e.afii64937 = 701; e.agrave = 224; e.agujarati = 2693; e.agurmukhi = 2565; e.ahiragana = 12354; e.ahookabove = 7843; e.aibengali = 2448; e.aibopomofo = 12574; e.aideva = 2320; e.aiecyrillic = 1237; e.aigujarati = 2704; e.aigurmukhi = 2576; e.aimatragurmukhi = 2632; e.ainarabic = 1593; e.ainfinalarabic = 65226; e.aininitialarabic = 65227; e.ainmedialarabic = 65228; e.ainvertedbreve = 515; e.aivowelsignbengali = 2504; e.aivowelsigndeva = 2376; e.aivowelsigngujarati = 2760; e.akatakana = 12450; e.akatakanahalfwidth = 65393; e.akorean = 12623; e.alef = 1488; e.alefarabic = 1575; e.alefdageshhebrew = 64304; e.aleffinalarabic = 65166; e.alefhamzaabovearabic = 1571; e.alefhamzaabovefinalarabic = 65156; e.alefhamzabelowarabic = 1573; e.alefhamzabelowfinalarabic = 65160; e.alefhebrew = 1488; e.aleflamedhebrew = 64335; e.alefmaddaabovearabic = 1570; e.alefmaddaabovefinalarabic = 65154; e.alefmaksuraarabic = 1609; e.alefmaksurafinalarabic = 65264; e.alefmaksurainitialarabic = 65267; e.alefmaksuramedialarabic = 65268; e.alefpatahhebrew = 64302; e.alefqamatshebrew = 64303; e.aleph = 8501; e.allequal = 8780; e.alpha = 945; e.alphatonos = 940; e.amacron = 257; e.amonospace = 65345; e.ampersand = 38; e.ampersandmonospace = 65286; e.ampersandsmall = 63270; e.amsquare = 13250; e.anbopomofo = 12578; e.angbopomofo = 12580; e.angbracketleft = 12296; e.angbracketright = 12297; e.angkhankhuthai = 3674; e.angle = 8736; e.anglebracketleft = 12296; e.anglebracketleftvertical = 65087; e.anglebracketright = 12297; e.anglebracketrightvertical = 65088; e.angleleft = 9001; e.angleright = 9002; e.angstrom = 8491; e.anoteleia = 903; e.anudattadeva = 2386; e.anusvarabengali = 2434; e.anusvaradeva = 2306; e.anusvaragujarati = 2690; e.aogonek = 261; e.apaatosquare = 13056; e.aparen = 9372; e.apostrophearmenian = 1370; e.apostrophemod = 700; e.apple = 63743; e.approaches = 8784; e.approxequal = 8776; e.approxequalorimage = 8786; e.approximatelyequal = 8773; e.araeaekorean = 12686; e.araeakorean = 12685; e.arc = 8978; e.arighthalfring = 7834; e.aring = 229; e.aringacute = 507; e.aringbelow = 7681; e.arrowboth = 8596; e.arrowdashdown = 8675; e.arrowdashleft = 8672; e.arrowdashright = 8674; e.arrowdashup = 8673; e.arrowdblboth = 8660; e.arrowdbldown = 8659; e.arrowdblleft = 8656; e.arrowdblright = 8658; e.arrowdblup = 8657; e.arrowdown = 8595; e.arrowdownleft = 8601; e.arrowdownright = 8600; e.arrowdownwhite = 8681; e.arrowheaddownmod = 709; e.arrowheadleftmod = 706; e.arrowheadrightmod = 707; e.arrowheadupmod = 708; e.arrowhorizex = 63719; e.arrowleft = 8592; e.arrowleftdbl = 8656; e.arrowleftdblstroke = 8653; e.arrowleftoverright = 8646; e.arrowleftwhite = 8678; e.arrowright = 8594; e.arrowrightdblstroke = 8655; e.arrowrightheavy = 10142; e.arrowrightoverleft = 8644; e.arrowrightwhite = 8680; e.arrowtableft = 8676; e.arrowtabright = 8677; e.arrowup = 8593; e.arrowupdn = 8597; e.arrowupdnbse = 8616; e.arrowupdownbase = 8616; e.arrowupleft = 8598; e.arrowupleftofdown = 8645; e.arrowupright = 8599; e.arrowupwhite = 8679; e.arrowvertex = 63718; e.asciicircum = 94; e.asciicircummonospace = 65342; e.asciitilde = 126; e.asciitildemonospace = 65374; e.ascript = 593; e.ascriptturned = 594; e.asmallhiragana = 12353; e.asmallkatakana = 12449; e.asmallkatakanahalfwidth = 65383; e.asterisk = 42; e.asteriskaltonearabic = 1645; e.asteriskarabic = 1645; e.asteriskmath = 8727; e.asteriskmonospace = 65290; e.asterisksmall = 65121; e.asterism = 8258; e.asuperior = 63209; e.asymptoticallyequal = 8771; e.at = 64; e.atilde = 227; e.atmonospace = 65312; e.atsmall = 65131; e.aturned = 592; e.aubengali = 2452; e.aubopomofo = 12576; e.audeva = 2324; e.augujarati = 2708; e.augurmukhi = 2580; e.aulengthmarkbengali = 2519; e.aumatragurmukhi = 2636; e.auvowelsignbengali = 2508; e.auvowelsigndeva = 2380; e.auvowelsigngujarati = 2764; e.avagrahadeva = 2365; e.aybarmenian = 1377; e.ayin = 1506; e.ayinaltonehebrew = 64288; e.ayinhebrew = 1506; e.b = 98; e.babengali = 2476; e.backslash = 92; e.backslashmonospace = 65340; e.badeva = 2348; e.bagujarati = 2732; e.bagurmukhi = 2604; e.bahiragana = 12400; e.bahtthai = 3647; e.bakatakana = 12496; e.bar = 124; e.barmonospace = 65372; e.bbopomofo = 12549; e.bcircle = 9425; e.bdotaccent = 7683; e.bdotbelow = 7685; e.beamedsixteenthnotes = 9836; e.because = 8757; e.becyrillic = 1073; e.beharabic = 1576; e.behfinalarabic = 65168; e.behinitialarabic = 65169; e.behiragana = 12409; e.behmedialarabic = 65170; e.behmeeminitialarabic = 64671; e.behmeemisolatedarabic = 64520; e.behnoonfinalarabic = 64621; e.bekatakana = 12505; e.benarmenian = 1378; e.bet = 1489; e.beta = 946; e.betasymbolgreek = 976; e.betdagesh = 64305; e.betdageshhebrew = 64305; e.bethebrew = 1489; e.betrafehebrew = 64332; e.bhabengali = 2477; e.bhadeva = 2349; e.bhagujarati = 2733; e.bhagurmukhi = 2605; e.bhook = 595; e.bihiragana = 12403; e.bikatakana = 12499; e.bilabialclick = 664; e.bindigurmukhi = 2562; e.birusquare = 13105; e.blackcircle = 9679; e.blackdiamond = 9670; e.blackdownpointingtriangle = 9660; e.blackleftpointingpointer = 9668; e.blackleftpointingtriangle = 9664; e.blacklenticularbracketleft = 12304; e.blacklenticularbracketleftvertical = 65083; e.blacklenticularbracketright = 12305; e.blacklenticularbracketrightvertical = 65084; e.blacklowerlefttriangle = 9699; e.blacklowerrighttriangle = 9698; e.blackrectangle = 9644; e.blackrightpointingpointer = 9658; e.blackrightpointingtriangle = 9654; e.blacksmallsquare = 9642; e.blacksmilingface = 9787; e.blacksquare = 9632; e.blackstar = 9733; e.blackupperlefttriangle = 9700; e.blackupperrighttriangle = 9701; e.blackuppointingsmalltriangle = 9652; e.blackuppointingtriangle = 9650; e.blank = 9251; e.blinebelow = 7687; e.block = 9608; e.bmonospace = 65346; e.bobaimaithai = 3610; e.bohiragana = 12412; e.bokatakana = 12508; e.bparen = 9373; e.bqsquare = 13251; e.braceex = 63732; e.braceleft = 123; e.braceleftbt = 63731; e.braceleftmid = 63730; e.braceleftmonospace = 65371; e.braceleftsmall = 65115; e.bracelefttp = 63729; e.braceleftvertical = 65079; e.braceright = 125; e.bracerightbt = 63742; e.bracerightmid = 63741; e.bracerightmonospace = 65373; e.bracerightsmall = 65116; e.bracerighttp = 63740; e.bracerightvertical = 65080; e.bracketleft = 91; e.bracketleftbt = 63728; e.bracketleftex = 63727; e.bracketleftmonospace = 65339; e.bracketlefttp = 63726; e.bracketright = 93; e.bracketrightbt = 63739; e.bracketrightex = 63738; e.bracketrightmonospace = 65341; e.bracketrighttp = 63737; e.breve = 728; e.brevebelowcmb = 814; e.brevecmb = 774; e.breveinvertedbelowcmb = 815; e.breveinvertedcmb = 785; e.breveinverteddoublecmb = 865; e.bridgebelowcmb = 810; e.bridgeinvertedbelowcmb = 826; e.brokenbar = 166; e.bstroke = 384; e.bsuperior = 63210; e.btopbar = 387; e.buhiragana = 12406; e.bukatakana = 12502; e.bullet = 8226; e.bulletinverse = 9688; e.bulletoperator = 8729; e.bullseye = 9678; e.c = 99; e.caarmenian = 1390; e.cabengali = 2458; e.cacute = 263; e.cadeva = 2330; e.cagujarati = 2714; e.cagurmukhi = 2586; e.calsquare = 13192; e.candrabindubengali = 2433; e.candrabinducmb = 784; e.candrabindudeva = 2305; e.candrabindugujarati = 2689; e.capslock = 8682; e.careof = 8453; e.caron = 711; e.caronbelowcmb = 812; e.caroncmb = 780; e.carriagereturn = 8629; e.cbopomofo = 12568; e.ccaron = 269; e.ccedilla = 231; e.ccedillaacute = 7689; e.ccircle = 9426; e.ccircumflex = 265; e.ccurl = 597; e.cdot = 267; e.cdotaccent = 267; e.cdsquare = 13253; e.cedilla = 184; e.cedillacmb = 807; e.cent = 162; e.centigrade = 8451; e.centinferior = 63199; e.centmonospace = 65504; e.centoldstyle = 63394; e.centsuperior = 63200; e.chaarmenian = 1401; e.chabengali = 2459; e.chadeva = 2331; e.chagujarati = 2715; e.chagurmukhi = 2587; e.chbopomofo = 12564; e.cheabkhasiancyrillic = 1213; e.checkmark = 10003; e.checyrillic = 1095; e.chedescenderabkhasiancyrillic = 1215; e.chedescendercyrillic = 1207; e.chedieresiscyrillic = 1269; e.cheharmenian = 1395; e.chekhakassiancyrillic = 1228; e.cheverticalstrokecyrillic = 1209; e.chi = 967; e.chieuchacirclekorean = 12919; e.chieuchaparenkorean = 12823; e.chieuchcirclekorean = 12905; e.chieuchkorean = 12618; e.chieuchparenkorean = 12809; e.chochangthai = 3594; e.chochanthai = 3592; e.chochingthai = 3593; e.chochoethai = 3596; e.chook = 392; e.cieucacirclekorean = 12918; e.cieucaparenkorean = 12822; e.cieuccirclekorean = 12904; e.cieuckorean = 12616; e.cieucparenkorean = 12808; e.cieucuparenkorean = 12828; e.circle = 9675; e.circlecopyrt = 169; e.circlemultiply = 8855; e.circleot = 8857; e.circleplus = 8853; e.circlepostalmark = 12342; e.circlewithlefthalfblack = 9680; e.circlewithrighthalfblack = 9681; e.circumflex = 710; e.circumflexbelowcmb = 813; e.circumflexcmb = 770; e.clear = 8999; e.clickalveolar = 450; e.clickdental = 448; e.clicklateral = 449; e.clickretroflex = 451; e.club = 9827; e.clubsuitblack = 9827; e.clubsuitwhite = 9831; e.cmcubedsquare = 13220; e.cmonospace = 65347; e.cmsquaredsquare = 13216; e.coarmenian = 1409; e.colon = 58; e.colonmonetary = 8353; e.colonmonospace = 65306; e.colonsign = 8353; e.colonsmall = 65109; e.colontriangularhalfmod = 721; e.colontriangularmod = 720; e.comma = 44; e.commaabovecmb = 787; e.commaaboverightcmb = 789; e.commaaccent = 63171; e.commaarabic = 1548; e.commaarmenian = 1373; e.commainferior = 63201; e.commamonospace = 65292; e.commareversedabovecmb = 788; e.commareversedmod = 701; e.commasmall = 65104; e.commasuperior = 63202; e.commaturnedabovecmb = 786; e.commaturnedmod = 699; e.compass = 9788; e.congruent = 8773; e.contourintegral = 8750; e.control = 8963; e.controlACK = 6; e.controlBEL = 7; e.controlBS = 8; e.controlCAN = 24; e.controlCR = 13; e.controlDC1 = 17; e.controlDC2 = 18; e.controlDC3 = 19; e.controlDC4 = 20; e.controlDEL = 127; e.controlDLE = 16; e.controlEM = 25; e.controlENQ = 5; e.controlEOT = 4; e.controlESC = 27; e.controlETB = 23; e.controlETX = 3; e.controlFF = 12; e.controlFS = 28; e.controlGS = 29; e.controlHT = 9; e.controlLF = 10; e.controlNAK = 21; e.controlNULL = 0; e.controlRS = 30; e.controlSI = 15; e.controlSO = 14; e.controlSOT = 2; e.controlSTX = 1; e.controlSUB = 26; e.controlSYN = 22; e.controlUS = 31; e.controlVT = 11; e.copyright = 169; e.copyrightsans = 63721; e.copyrightserif = 63193; e.cornerbracketleft = 12300; e.cornerbracketlefthalfwidth = 65378; e.cornerbracketleftvertical = 65089; e.cornerbracketright = 12301; e.cornerbracketrighthalfwidth = 65379; e.cornerbracketrightvertical = 65090; e.corporationsquare = 13183; e.cosquare = 13255; e.coverkgsquare = 13254; e.cparen = 9374; e.cruzeiro = 8354; e.cstretched = 663; e.curlyand = 8911; e.curlyor = 8910; e.currency = 164; e.cyrBreve = 63185; e.cyrFlex = 63186; e.cyrbreve = 63188; e.cyrflex = 63189; e.d = 100; e.daarmenian = 1380; e.dabengali = 2470; e.dadarabic = 1590; e.dadeva = 2342; e.dadfinalarabic = 65214; e.dadinitialarabic = 65215; e.dadmedialarabic = 65216; e.dagesh = 1468; e.dageshhebrew = 1468; e.dagger = 8224; e.daggerdbl = 8225; e.dagujarati = 2726; e.dagurmukhi = 2598; e.dahiragana = 12384; e.dakatakana = 12480; e.dalarabic = 1583; e.dalet = 1491; e.daletdagesh = 64307; e.daletdageshhebrew = 64307; e.dalethebrew = 1491; e.dalfinalarabic = 65194; e.dammaarabic = 1615; e.dammalowarabic = 1615; e.dammatanaltonearabic = 1612; e.dammatanarabic = 1612; e.danda = 2404; e.dargahebrew = 1447; e.dargalefthebrew = 1447; e.dasiapneumatacyrilliccmb = 1157; e.dblGrave = 63187; e.dblanglebracketleft = 12298; e.dblanglebracketleftvertical = 65085; e.dblanglebracketright = 12299; e.dblanglebracketrightvertical = 65086; e.dblarchinvertedbelowcmb = 811; e.dblarrowleft = 8660; e.dblarrowright = 8658; e.dbldanda = 2405; e.dblgrave = 63190; e.dblgravecmb = 783; e.dblintegral = 8748; e.dbllowline = 8215; e.dbllowlinecmb = 819; e.dbloverlinecmb = 831; e.dblprimemod = 698; e.dblverticalbar = 8214; e.dblverticallineabovecmb = 782; e.dbopomofo = 12553; e.dbsquare = 13256; e.dcaron = 271; e.dcedilla = 7697; e.dcircle = 9427; e.dcircumflexbelow = 7699; e.dcroat = 273; e.ddabengali = 2465; e.ddadeva = 2337; e.ddagujarati = 2721; e.ddagurmukhi = 2593; e.ddalarabic = 1672; e.ddalfinalarabic = 64393; e.dddhadeva = 2396; e.ddhabengali = 2466; e.ddhadeva = 2338; e.ddhagujarati = 2722; e.ddhagurmukhi = 2594; e.ddotaccent = 7691; e.ddotbelow = 7693; e.decimalseparatorarabic = 1643; e.decimalseparatorpersian = 1643; e.decyrillic = 1076; e.degree = 176; e.dehihebrew = 1453; e.dehiragana = 12391; e.deicoptic = 1007; e.dekatakana = 12487; e.deleteleft = 9003; e.deleteright = 8998; e.delta = 948; e.deltaturned = 397; e.denominatorminusonenumeratorbengali = 2552; e.dezh = 676; e.dhabengali = 2471; e.dhadeva = 2343; e.dhagujarati = 2727; e.dhagurmukhi = 2599; e.dhook = 599; e.dialytikatonos = 901; e.dialytikatonoscmb = 836; e.diamond = 9830; e.diamondsuitwhite = 9826; e.dieresis = 168; e.dieresisacute = 63191; e.dieresisbelowcmb = 804; e.dieresiscmb = 776; e.dieresisgrave = 63192; e.dieresistonos = 901; e.dihiragana = 12386; e.dikatakana = 12482; e.dittomark = 12291; e.divide = 247; e.divides = 8739; e.divisionslash = 8725; e.djecyrillic = 1106; e.dkshade = 9619; e.dlinebelow = 7695; e.dlsquare = 13207; e.dmacron = 273; e.dmonospace = 65348; e.dnblock = 9604; e.dochadathai = 3598; e.dodekthai = 3604; e.dohiragana = 12393; e.dokatakana = 12489; e.dollar = 36; e.dollarinferior = 63203; e.dollarmonospace = 65284; e.dollaroldstyle = 63268; e.dollarsmall = 65129; e.dollarsuperior = 63204; e.dong = 8363; e.dorusquare = 13094; e.dotaccent = 729; e.dotaccentcmb = 775; e.dotbelowcmb = 803; e.dotbelowcomb = 803; e.dotkatakana = 12539; e.dotlessi = 305; e.dotlessj = 63166; e.dotlessjstrokehook = 644; e.dotmath = 8901; e.dottedcircle = 9676; e.doubleyodpatah = 64287; e.doubleyodpatahhebrew = 64287; e.downtackbelowcmb = 798; e.downtackmod = 725; e.dparen = 9375; e.dsuperior = 63211; e.dtail = 598; e.dtopbar = 396; e.duhiragana = 12389; e.dukatakana = 12485; e.dz = 499; e.dzaltone = 675; e.dzcaron = 454; e.dzcurl = 677; e.dzeabkhasiancyrillic = 1249; e.dzecyrillic = 1109; e.dzhecyrillic = 1119; e.e = 101; e.eacute = 233; e.earth = 9793; e.ebengali = 2447; e.ebopomofo = 12572; e.ebreve = 277; e.ecandradeva = 2317; e.ecandragujarati = 2701; e.ecandravowelsigndeva = 2373; e.ecandravowelsigngujarati = 2757; e.ecaron = 283; e.ecedillabreve = 7709; e.echarmenian = 1381; e.echyiwnarmenian = 1415; e.ecircle = 9428; e.ecircumflex = 234; e.ecircumflexacute = 7871; e.ecircumflexbelow = 7705; e.ecircumflexdotbelow = 7879; e.ecircumflexgrave = 7873; e.ecircumflexhookabove = 7875; e.ecircumflextilde = 7877; e.ecyrillic = 1108; e.edblgrave = 517; e.edeva = 2319; e.edieresis = 235; e.edot = 279; e.edotaccent = 279; e.edotbelow = 7865; e.eegurmukhi = 2575; e.eematragurmukhi = 2631; e.efcyrillic = 1092; e.egrave = 232; e.egujarati = 2703; e.eharmenian = 1383; e.ehbopomofo = 12573; e.ehiragana = 12360; e.ehookabove = 7867; e.eibopomofo = 12575; e.eight = 56; e.eightarabic = 1640; e.eightbengali = 2542; e.eightcircle = 9319; e.eightcircleinversesansserif = 10129; e.eightdeva = 2414; e.eighteencircle = 9329; e.eighteenparen = 9349; e.eighteenperiod = 9369; e.eightgujarati = 2798; e.eightgurmukhi = 2670; e.eighthackarabic = 1640; e.eighthangzhou = 12328; e.eighthnotebeamed = 9835; e.eightideographicparen = 12839; e.eightinferior = 8328; e.eightmonospace = 65304; e.eightoldstyle = 63288; e.eightparen = 9339; e.eightperiod = 9359; e.eightpersian = 1784; e.eightroman = 8567; e.eightsuperior = 8312; e.eightthai = 3672; e.einvertedbreve = 519; e.eiotifiedcyrillic = 1125; e.ekatakana = 12456; e.ekatakanahalfwidth = 65396; e.ekonkargurmukhi = 2676; e.ekorean = 12628; e.elcyrillic = 1083; e.element = 8712; e.elevencircle = 9322; e.elevenparen = 9342; e.elevenperiod = 9362; e.elevenroman = 8570; e.ellipsis = 8230; e.ellipsisvertical = 8942; e.emacron = 275; e.emacronacute = 7703; e.emacrongrave = 7701; e.emcyrillic = 1084; e.emdash = 8212; e.emdashvertical = 65073; e.emonospace = 65349; e.emphasismarkarmenian = 1371; e.emptyset = 8709; e.enbopomofo = 12579; e.encyrillic = 1085; e.endash = 8211; e.endashvertical = 65074; e.endescendercyrillic = 1187; e.eng = 331; e.engbopomofo = 12581; e.enghecyrillic = 1189; e.enhookcyrillic = 1224; e.enspace = 8194; e.eogonek = 281; e.eokorean = 12627; e.eopen = 603; e.eopenclosed = 666; e.eopenreversed = 604; e.eopenreversedclosed = 606; e.eopenreversedhook = 605; e.eparen = 9376; e.epsilon = 949; e.epsilontonos = 941; e.equal = 61; e.equalmonospace = 65309; e.equalsmall = 65126; e.equalsuperior = 8316; e.equivalence = 8801; e.erbopomofo = 12582; e.ercyrillic = 1088; e.ereversed = 600; e.ereversedcyrillic = 1101; e.escyrillic = 1089; e.esdescendercyrillic = 1195; e.esh = 643; e.eshcurl = 646; e.eshortdeva = 2318; e.eshortvowelsigndeva = 2374; e.eshreversedloop = 426; e.eshsquatreversed = 645; e.esmallhiragana = 12359; e.esmallkatakana = 12455; e.esmallkatakanahalfwidth = 65386; e.estimated = 8494; e.esuperior = 63212; e.eta = 951; e.etarmenian = 1384; e.etatonos = 942; e.eth = 240; e.etilde = 7869; e.etildebelow = 7707; e.etnahtafoukhhebrew = 1425; e.etnahtafoukhlefthebrew = 1425; e.etnahtahebrew = 1425; e.etnahtalefthebrew = 1425; e.eturned = 477; e.eukorean = 12641; e.euro = 8364; e.evowelsignbengali = 2503; e.evowelsigndeva = 2375; e.evowelsigngujarati = 2759; e.exclam = 33; e.exclamarmenian = 1372; e.exclamdbl = 8252; e.exclamdown = 161; e.exclamdownsmall = 63393; e.exclammonospace = 65281; e.exclamsmall = 63265; e.existential = 8707; e.ezh = 658; e.ezhcaron = 495; e.ezhcurl = 659; e.ezhreversed = 441; e.ezhtail = 442; e.f = 102; e.fadeva = 2398; e.fagurmukhi = 2654; e.fahrenheit = 8457; e.fathaarabic = 1614; e.fathalowarabic = 1614; e.fathatanarabic = 1611; e.fbopomofo = 12552; e.fcircle = 9429; e.fdotaccent = 7711; e.feharabic = 1601; e.feharmenian = 1414; e.fehfinalarabic = 65234; e.fehinitialarabic = 65235; e.fehmedialarabic = 65236; e.feicoptic = 997; e.female = 9792; e.ff = 64256; e.f_f = 64256; e.ffi = 64259; e.f_f_i = 64259; e.ffl = 64260; e.f_f_l = 64260; e.fi = 64257; e.f_i = 64257; e.fifteencircle = 9326; e.fifteenparen = 9346; e.fifteenperiod = 9366; e.figuredash = 8210; e.filledbox = 9632; e.filledrect = 9644; e.finalkaf = 1498; e.finalkafdagesh = 64314; e.finalkafdageshhebrew = 64314; e.finalkafhebrew = 1498; e.finalmem = 1501; e.finalmemhebrew = 1501; e.finalnun = 1503; e.finalnunhebrew = 1503; e.finalpe = 1507; e.finalpehebrew = 1507; e.finaltsadi = 1509; e.finaltsadihebrew = 1509; e.firsttonechinese = 713; e.fisheye = 9673; e.fitacyrillic = 1139; e.five = 53; e.fivearabic = 1637; e.fivebengali = 2539; e.fivecircle = 9316; e.fivecircleinversesansserif = 10126; e.fivedeva = 2411; e.fiveeighths = 8541; e.fivegujarati = 2795; e.fivegurmukhi = 2667; e.fivehackarabic = 1637; e.fivehangzhou = 12325; e.fiveideographicparen = 12836; e.fiveinferior = 8325; e.fivemonospace = 65301; e.fiveoldstyle = 63285; e.fiveparen = 9336; e.fiveperiod = 9356; e.fivepersian = 1781; e.fiveroman = 8564; e.fivesuperior = 8309; e.fivethai = 3669; e.fl = 64258; e.f_l = 64258; e.florin = 402; e.fmonospace = 65350; e.fmsquare = 13209; e.fofanthai = 3615; e.fofathai = 3613; e.fongmanthai = 3663; e.forall = 8704; e.four = 52; e.fourarabic = 1636; e.fourbengali = 2538; e.fourcircle = 9315; e.fourcircleinversesansserif = 10125; e.fourdeva = 2410; e.fourgujarati = 2794; e.fourgurmukhi = 2666; e.fourhackarabic = 1636; e.fourhangzhou = 12324; e.fourideographicparen = 12835; e.fourinferior = 8324; e.fourmonospace = 65300; e.fournumeratorbengali = 2551; e.fouroldstyle = 63284; e.fourparen = 9335; e.fourperiod = 9355; e.fourpersian = 1780; e.fourroman = 8563; e.foursuperior = 8308; e.fourteencircle = 9325; e.fourteenparen = 9345; e.fourteenperiod = 9365; e.fourthai = 3668; e.fourthtonechinese = 715; e.fparen = 9377; e.fraction = 8260; e.franc = 8355; e.g = 103; e.gabengali = 2455; e.gacute = 501; e.gadeva = 2327; e.gafarabic = 1711; e.gaffinalarabic = 64403; e.gafinitialarabic = 64404; e.gafmedialarabic = 64405; e.gagujarati = 2711; e.gagurmukhi = 2583; e.gahiragana = 12364; e.gakatakana = 12460; e.gamma = 947; e.gammalatinsmall = 611; e.gammasuperior = 736; e.gangiacoptic = 1003; e.gbopomofo = 12557; e.gbreve = 287; e.gcaron = 487; e.gcedilla = 291; e.gcircle = 9430; e.gcircumflex = 285; e.gcommaaccent = 291; e.gdot = 289; e.gdotaccent = 289; e.gecyrillic = 1075; e.gehiragana = 12370; e.gekatakana = 12466; e.geometricallyequal = 8785; e.gereshaccenthebrew = 1436; e.gereshhebrew = 1523; e.gereshmuqdamhebrew = 1437; e.germandbls = 223; e.gershayimaccenthebrew = 1438; e.gershayimhebrew = 1524; e.getamark = 12307; e.ghabengali = 2456; e.ghadarmenian = 1394; e.ghadeva = 2328; e.ghagujarati = 2712; e.ghagurmukhi = 2584; e.ghainarabic = 1594; e.ghainfinalarabic = 65230; e.ghaininitialarabic = 65231; e.ghainmedialarabic = 65232; e.ghemiddlehookcyrillic = 1173; e.ghestrokecyrillic = 1171; e.gheupturncyrillic = 1169; e.ghhadeva = 2394; e.ghhagurmukhi = 2650; e.ghook = 608; e.ghzsquare = 13203; e.gihiragana = 12366; e.gikatakana = 12462; e.gimarmenian = 1379; e.gimel = 1490; e.gimeldagesh = 64306; e.gimeldageshhebrew = 64306; e.gimelhebrew = 1490; e.gjecyrillic = 1107; e.glottalinvertedstroke = 446; e.glottalstop = 660; e.glottalstopinverted = 662; e.glottalstopmod = 704; e.glottalstopreversed = 661; e.glottalstopreversedmod = 705; e.glottalstopreversedsuperior = 740; e.glottalstopstroke = 673; e.glottalstopstrokereversed = 674; e.gmacron = 7713; e.gmonospace = 65351; e.gohiragana = 12372; e.gokatakana = 12468; e.gparen = 9378; e.gpasquare = 13228; e.gradient = 8711; e.grave = 96; e.gravebelowcmb = 790; e.gravecmb = 768; e.gravecomb = 768; e.gravedeva = 2387; e.gravelowmod = 718; e.gravemonospace = 65344; e.gravetonecmb = 832; e.greater = 62; e.greaterequal = 8805; e.greaterequalorless = 8923; e.greatermonospace = 65310; e.greaterorequivalent = 8819; e.greaterorless = 8823; e.greateroverequal = 8807; e.greatersmall = 65125; e.gscript = 609; e.gstroke = 485; e.guhiragana = 12368; e.guillemotleft = 171; e.guillemotright = 187; e.guilsinglleft = 8249; e.guilsinglright = 8250; e.gukatakana = 12464; e.guramusquare = 13080; e.gysquare = 13257; e.h = 104; e.haabkhasiancyrillic = 1193; e.haaltonearabic = 1729; e.habengali = 2489; e.hadescendercyrillic = 1203; e.hadeva = 2361; e.hagujarati = 2745; e.hagurmukhi = 2617; e.haharabic = 1581; e.hahfinalarabic = 65186; e.hahinitialarabic = 65187; e.hahiragana = 12399; e.hahmedialarabic = 65188; e.haitusquare = 13098; e.hakatakana = 12495; e.hakatakanahalfwidth = 65418; e.halantgurmukhi = 2637; e.hamzaarabic = 1569; e.hamzalowarabic = 1569; e.hangulfiller = 12644; e.hardsigncyrillic = 1098; e.harpoonleftbarbup = 8636; e.harpoonrightbarbup = 8640; e.hasquare = 13258; e.hatafpatah = 1458; e.hatafpatah16 = 1458; e.hatafpatah23 = 1458; e.hatafpatah2f = 1458; e.hatafpatahhebrew = 1458; e.hatafpatahnarrowhebrew = 1458; e.hatafpatahquarterhebrew = 1458; e.hatafpatahwidehebrew = 1458; e.hatafqamats = 1459; e.hatafqamats1b = 1459; e.hatafqamats28 = 1459; e.hatafqamats34 = 1459; e.hatafqamatshebrew = 1459; e.hatafqamatsnarrowhebrew = 1459; e.hatafqamatsquarterhebrew = 1459; e.hatafqamatswidehebrew = 1459; e.hatafsegol = 1457; e.hatafsegol17 = 1457; e.hatafsegol24 = 1457; e.hatafsegol30 = 1457; e.hatafsegolhebrew = 1457; e.hatafsegolnarrowhebrew = 1457; e.hatafsegolquarterhebrew = 1457; e.hatafsegolwidehebrew = 1457; e.hbar = 295; e.hbopomofo = 12559; e.hbrevebelow = 7723; e.hcedilla = 7721; e.hcircle = 9431; e.hcircumflex = 293; e.hdieresis = 7719; e.hdotaccent = 7715; e.hdotbelow = 7717; e.he = 1492; e.heart = 9829; e.heartsuitblack = 9829; e.heartsuitwhite = 9825; e.hedagesh = 64308; e.hedageshhebrew = 64308; e.hehaltonearabic = 1729; e.heharabic = 1607; e.hehebrew = 1492; e.hehfinalaltonearabic = 64423; e.hehfinalalttwoarabic = 65258; e.hehfinalarabic = 65258; e.hehhamzaabovefinalarabic = 64421; e.hehhamzaaboveisolatedarabic = 64420; e.hehinitialaltonearabic = 64424; e.hehinitialarabic = 65259; e.hehiragana = 12408; e.hehmedialaltonearabic = 64425; e.hehmedialarabic = 65260; e.heiseierasquare = 13179; e.hekatakana = 12504; e.hekatakanahalfwidth = 65421; e.hekutaarusquare = 13110; e.henghook = 615; e.herutusquare = 13113; e.het = 1495; e.hethebrew = 1495; e.hhook = 614; e.hhooksuperior = 689; e.hieuhacirclekorean = 12923; e.hieuhaparenkorean = 12827; e.hieuhcirclekorean = 12909; e.hieuhkorean = 12622; e.hieuhparenkorean = 12813; e.hihiragana = 12402; e.hikatakana = 12498; e.hikatakanahalfwidth = 65419; e.hiriq = 1460; e.hiriq14 = 1460; e.hiriq21 = 1460; e.hiriq2d = 1460; e.hiriqhebrew = 1460; e.hiriqnarrowhebrew = 1460; e.hiriqquarterhebrew = 1460; e.hiriqwidehebrew = 1460; e.hlinebelow = 7830; e.hmonospace = 65352; e.hoarmenian = 1392; e.hohipthai = 3627; e.hohiragana = 12411; e.hokatakana = 12507; e.hokatakanahalfwidth = 65422; e.holam = 1465; e.holam19 = 1465; e.holam26 = 1465; e.holam32 = 1465; e.holamhebrew = 1465; e.holamnarrowhebrew = 1465; e.holamquarterhebrew = 1465; e.holamwidehebrew = 1465; e.honokhukthai = 3630; e.hookabovecomb = 777; e.hookcmb = 777; e.hookpalatalizedbelowcmb = 801; e.hookretroflexbelowcmb = 802; e.hoonsquare = 13122; e.horicoptic = 1001; e.horizontalbar = 8213; e.horncmb = 795; e.hotsprings = 9832; e.house = 8962; e.hparen = 9379; e.hsuperior = 688; e.hturned = 613; e.huhiragana = 12405; e.huiitosquare = 13107; e.hukatakana = 12501; e.hukatakanahalfwidth = 65420; e.hungarumlaut = 733; e.hungarumlautcmb = 779; e.hv = 405; e.hyphen = 45; e.hypheninferior = 63205; e.hyphenmonospace = 65293; e.hyphensmall = 65123; e.hyphensuperior = 63206; e.hyphentwo = 8208; e.i = 105; e.iacute = 237; e.iacyrillic = 1103; e.ibengali = 2439; e.ibopomofo = 12583; e.ibreve = 301; e.icaron = 464; e.icircle = 9432; e.icircumflex = 238; e.icyrillic = 1110; e.idblgrave = 521; e.ideographearthcircle = 12943; e.ideographfirecircle = 12939; e.ideographicallianceparen = 12863; e.ideographiccallparen = 12858; e.ideographiccentrecircle = 12965; e.ideographicclose = 12294; e.ideographiccomma = 12289; e.ideographiccommaleft = 65380; e.ideographiccongratulationparen = 12855; e.ideographiccorrectcircle = 12963; e.ideographicearthparen = 12847; e.ideographicenterpriseparen = 12861; e.ideographicexcellentcircle = 12957; e.ideographicfestivalparen = 12864; e.ideographicfinancialcircle = 12950; e.ideographicfinancialparen = 12854; e.ideographicfireparen = 12843; e.ideographichaveparen = 12850; e.ideographichighcircle = 12964; e.ideographiciterationmark = 12293; e.ideographiclaborcircle = 12952; e.ideographiclaborparen = 12856; e.ideographicleftcircle = 12967; e.ideographiclowcircle = 12966; e.ideographicmedicinecircle = 12969; e.ideographicmetalparen = 12846; e.ideographicmoonparen = 12842; e.ideographicnameparen = 12852; e.ideographicperiod = 12290; e.ideographicprintcircle = 12958; e.ideographicreachparen = 12867; e.ideographicrepresentparen = 12857; e.ideographicresourceparen = 12862; e.ideographicrightcircle = 12968; e.ideographicsecretcircle = 12953; e.ideographicselfparen = 12866; e.ideographicsocietyparen = 12851; e.ideographicspace = 12288; e.ideographicspecialparen = 12853; e.ideographicstockparen = 12849; e.ideographicstudyparen = 12859; e.ideographicsunparen = 12848; e.ideographicsuperviseparen = 12860; e.ideographicwaterparen = 12844; e.ideographicwoodparen = 12845; e.ideographiczero = 12295; e.ideographmetalcircle = 12942; e.ideographmooncircle = 12938; e.ideographnamecircle = 12948; e.ideographsuncircle = 12944; e.ideographwatercircle = 12940; e.ideographwoodcircle = 12941; e.ideva = 2311; e.idieresis = 239; e.idieresisacute = 7727; e.idieresiscyrillic = 1253; e.idotbelow = 7883; e.iebrevecyrillic = 1239; e.iecyrillic = 1077; e.ieungacirclekorean = 12917; e.ieungaparenkorean = 12821; e.ieungcirclekorean = 12903; e.ieungkorean = 12615; e.ieungparenkorean = 12807; e.igrave = 236; e.igujarati = 2695; e.igurmukhi = 2567; e.ihiragana = 12356; e.ihookabove = 7881; e.iibengali = 2440; e.iicyrillic = 1080; e.iideva = 2312; e.iigujarati = 2696; e.iigurmukhi = 2568; e.iimatragurmukhi = 2624; e.iinvertedbreve = 523; e.iishortcyrillic = 1081; e.iivowelsignbengali = 2496; e.iivowelsigndeva = 2368; e.iivowelsigngujarati = 2752; e.ij = 307; e.ikatakana = 12452; e.ikatakanahalfwidth = 65394; e.ikorean = 12643; e.ilde = 732; e.iluyhebrew = 1452; e.imacron = 299; e.imacroncyrillic = 1251; e.imageorapproximatelyequal = 8787; e.imatragurmukhi = 2623; e.imonospace = 65353; e.increment = 8710; e.infinity = 8734; e.iniarmenian = 1387; e.integral = 8747; e.integralbottom = 8993; e.integralbt = 8993; e.integralex = 63733; e.integraltop = 8992; e.integraltp = 8992; e.intersection = 8745; e.intisquare = 13061; e.invbullet = 9688; e.invcircle = 9689; e.invsmileface = 9787; e.iocyrillic = 1105; e.iogonek = 303; e.iota = 953; e.iotadieresis = 970; e.iotadieresistonos = 912; e.iotalatin = 617; e.iotatonos = 943; e.iparen = 9380; e.irigurmukhi = 2674; e.ismallhiragana = 12355; e.ismallkatakana = 12451; e.ismallkatakanahalfwidth = 65384; e.issharbengali = 2554; e.istroke = 616; e.isuperior = 63213; e.iterationhiragana = 12445; e.iterationkatakana = 12541; e.itilde = 297; e.itildebelow = 7725; e.iubopomofo = 12585; e.iucyrillic = 1102; e.ivowelsignbengali = 2495; e.ivowelsigndeva = 2367; e.ivowelsigngujarati = 2751; e.izhitsacyrillic = 1141; e.izhitsadblgravecyrillic = 1143; e.j = 106; e.jaarmenian = 1393; e.jabengali = 2460; e.jadeva = 2332; e.jagujarati = 2716; e.jagurmukhi = 2588; e.jbopomofo = 12560; e.jcaron = 496; e.jcircle = 9433; e.jcircumflex = 309; e.jcrossedtail = 669; e.jdotlessstroke = 607; e.jecyrillic = 1112; e.jeemarabic = 1580; e.jeemfinalarabic = 65182; e.jeeminitialarabic = 65183; e.jeemmedialarabic = 65184; e.jeharabic = 1688; e.jehfinalarabic = 64395; e.jhabengali = 2461; e.jhadeva = 2333; e.jhagujarati = 2717; e.jhagurmukhi = 2589; e.jheharmenian = 1403; e.jis = 12292; e.jmonospace = 65354; e.jparen = 9381; e.jsuperior = 690; e.k = 107; e.kabashkircyrillic = 1185; e.kabengali = 2453; e.kacute = 7729; e.kacyrillic = 1082; e.kadescendercyrillic = 1179; e.kadeva = 2325; e.kaf = 1499; e.kafarabic = 1603; e.kafdagesh = 64315; e.kafdageshhebrew = 64315; e.kaffinalarabic = 65242; e.kafhebrew = 1499; e.kafinitialarabic = 65243; e.kafmedialarabic = 65244; e.kafrafehebrew = 64333; e.kagujarati = 2709; e.kagurmukhi = 2581; e.kahiragana = 12363; e.kahookcyrillic = 1220; e.kakatakana = 12459; e.kakatakanahalfwidth = 65398; e.kappa = 954; e.kappasymbolgreek = 1008; e.kapyeounmieumkorean = 12657; e.kapyeounphieuphkorean = 12676; e.kapyeounpieupkorean = 12664; e.kapyeounssangpieupkorean = 12665; e.karoriisquare = 13069; e.kashidaautoarabic = 1600; e.kashidaautonosidebearingarabic = 1600; e.kasmallkatakana = 12533; e.kasquare = 13188; e.kasraarabic = 1616; e.kasratanarabic = 1613; e.kastrokecyrillic = 1183; e.katahiraprolongmarkhalfwidth = 65392; e.kaverticalstrokecyrillic = 1181; e.kbopomofo = 12558; e.kcalsquare = 13193; e.kcaron = 489; e.kcedilla = 311; e.kcircle = 9434; e.kcommaaccent = 311; e.kdotbelow = 7731; e.keharmenian = 1412; e.kehiragana = 12369; e.kekatakana = 12465; e.kekatakanahalfwidth = 65401; e.kenarmenian = 1391; e.kesmallkatakana = 12534; e.kgreenlandic = 312; e.khabengali = 2454; e.khacyrillic = 1093; e.khadeva = 2326; e.khagujarati = 2710; e.khagurmukhi = 2582; e.khaharabic = 1582; e.khahfinalarabic = 65190; e.khahinitialarabic = 65191; e.khahmedialarabic = 65192; e.kheicoptic = 999; e.khhadeva = 2393; e.khhagurmukhi = 2649; e.khieukhacirclekorean = 12920; e.khieukhaparenkorean = 12824; e.khieukhcirclekorean = 12906; e.khieukhkorean = 12619; e.khieukhparenkorean = 12810; e.khokhaithai = 3586; e.khokhonthai = 3589; e.khokhuatthai = 3587; e.khokhwaithai = 3588; e.khomutthai = 3675; e.khook = 409; e.khorakhangthai = 3590; e.khzsquare = 13201; e.kihiragana = 12365; e.kikatakana = 12461; e.kikatakanahalfwidth = 65399; e.kiroguramusquare = 13077; e.kiromeetorusquare = 13078; e.kirosquare = 13076; e.kiyeokacirclekorean = 12910; e.kiyeokaparenkorean = 12814; e.kiyeokcirclekorean = 12896; e.kiyeokkorean = 12593; e.kiyeokparenkorean = 12800; e.kiyeoksioskorean = 12595; e.kjecyrillic = 1116; e.klinebelow = 7733; e.klsquare = 13208; e.kmcubedsquare = 13222; e.kmonospace = 65355; e.kmsquaredsquare = 13218; e.kohiragana = 12371; e.kohmsquare = 13248; e.kokaithai = 3585; e.kokatakana = 12467; e.kokatakanahalfwidth = 65402; e.kooposquare = 13086; e.koppacyrillic = 1153; e.koreanstandardsymbol = 12927; e.koroniscmb = 835; e.kparen = 9382; e.kpasquare = 13226; e.ksicyrillic = 1135; e.ktsquare = 13263; e.kturned = 670; e.kuhiragana = 12367; e.kukatakana = 12463; e.kukatakanahalfwidth = 65400; e.kvsquare = 13240; e.kwsquare = 13246; e.l = 108; e.labengali = 2482; e.lacute = 314; e.ladeva = 2354; e.lagujarati = 2738; e.lagurmukhi = 2610; e.lakkhangyaothai = 3653; e.lamaleffinalarabic = 65276; e.lamalefhamzaabovefinalarabic = 65272; e.lamalefhamzaaboveisolatedarabic = 65271; e.lamalefhamzabelowfinalarabic = 65274; e.lamalefhamzabelowisolatedarabic = 65273; e.lamalefisolatedarabic = 65275; e.lamalefmaddaabovefinalarabic = 65270; e.lamalefmaddaaboveisolatedarabic = 65269; e.lamarabic = 1604; e.lambda = 955; e.lambdastroke = 411; e.lamed = 1500; e.lameddagesh = 64316; e.lameddageshhebrew = 64316; e.lamedhebrew = 1500; e.lamfinalarabic = 65246; e.lamhahinitialarabic = 64714; e.laminitialarabic = 65247; e.lamjeeminitialarabic = 64713; e.lamkhahinitialarabic = 64715; e.lamlamhehisolatedarabic = 65010; e.lammedialarabic = 65248; e.lammeemhahinitialarabic = 64904; e.lammeeminitialarabic = 64716; e.largecircle = 9711; e.lbar = 410; e.lbelt = 620; e.lbopomofo = 12556; e.lcaron = 318; e.lcedilla = 316; e.lcircle = 9435; e.lcircumflexbelow = 7741; e.lcommaaccent = 316; e.ldot = 320; e.ldotaccent = 320; e.ldotbelow = 7735; e.ldotbelowmacron = 7737; e.leftangleabovecmb = 794; e.lefttackbelowcmb = 792; e.less = 60; e.lessequal = 8804; e.lessequalorgreater = 8922; e.lessmonospace = 65308; e.lessorequivalent = 8818; e.lessorgreater = 8822; e.lessoverequal = 8806; e.lesssmall = 65124; e.lezh = 622; e.lfblock = 9612; e.lhookretroflex = 621; e.lira = 8356; e.liwnarmenian = 1388; e.lj = 457; e.ljecyrillic = 1113; e.ll = 63168; e.lladeva = 2355; e.llagujarati = 2739; e.llinebelow = 7739; e.llladeva = 2356; e.llvocalicbengali = 2529; e.llvocalicdeva = 2401; e.llvocalicvowelsignbengali = 2531; e.llvocalicvowelsigndeva = 2403; e.lmiddletilde = 619; e.lmonospace = 65356; e.lmsquare = 13264; e.lochulathai = 3628; e.logicaland = 8743; e.logicalnot = 172; e.logicalnotreversed = 8976; e.logicalor = 8744; e.lolingthai = 3621; e.longs = 383; e.lowlinecenterline = 65102; e.lowlinecmb = 818; e.lowlinedashed = 65101; e.lozenge = 9674; e.lparen = 9383; e.lslash = 322; e.lsquare = 8467; e.lsuperior = 63214; e.ltshade = 9617; e.luthai = 3622; e.lvocalicbengali = 2444; e.lvocalicdeva = 2316; e.lvocalicvowelsignbengali = 2530; e.lvocalicvowelsigndeva = 2402; e.lxsquare = 13267; e.m = 109; e.mabengali = 2478; e.macron = 175; e.macronbelowcmb = 817; e.macroncmb = 772; e.macronlowmod = 717; e.macronmonospace = 65507; e.macute = 7743; e.madeva = 2350; e.magujarati = 2734; e.magurmukhi = 2606; e.mahapakhhebrew = 1444; e.mahapakhlefthebrew = 1444; e.mahiragana = 12414; e.maichattawalowleftthai = 63637; e.maichattawalowrightthai = 63636; e.maichattawathai = 3659; e.maichattawaupperleftthai = 63635; e.maieklowleftthai = 63628; e.maieklowrightthai = 63627; e.maiekthai = 3656; e.maiekupperleftthai = 63626; e.maihanakatleftthai = 63620; e.maihanakatthai = 3633; e.maitaikhuleftthai = 63625; e.maitaikhuthai = 3655; e.maitholowleftthai = 63631; e.maitholowrightthai = 63630; e.maithothai = 3657; e.maithoupperleftthai = 63629; e.maitrilowleftthai = 63634; e.maitrilowrightthai = 63633; e.maitrithai = 3658; e.maitriupperleftthai = 63632; e.maiyamokthai = 3654; e.makatakana = 12510; e.makatakanahalfwidth = 65423; e.male = 9794; e.mansyonsquare = 13127; e.maqafhebrew = 1470; e.mars = 9794; e.masoracirclehebrew = 1455; e.masquare = 13187; e.mbopomofo = 12551; e.mbsquare = 13268; e.mcircle = 9436; e.mcubedsquare = 13221; e.mdotaccent = 7745; e.mdotbelow = 7747; e.meemarabic = 1605; e.meemfinalarabic = 65250; e.meeminitialarabic = 65251; e.meemmedialarabic = 65252; e.meemmeeminitialarabic = 64721; e.meemmeemisolatedarabic = 64584; e.meetorusquare = 13133; e.mehiragana = 12417; e.meizierasquare = 13182; e.mekatakana = 12513; e.mekatakanahalfwidth = 65426; e.mem = 1502; e.memdagesh = 64318; e.memdageshhebrew = 64318; e.memhebrew = 1502; e.menarmenian = 1396; e.merkhahebrew = 1445; e.merkhakefulahebrew = 1446; e.merkhakefulalefthebrew = 1446; e.merkhalefthebrew = 1445; e.mhook = 625; e.mhzsquare = 13202; e.middledotkatakanahalfwidth = 65381; e.middot = 183; e.mieumacirclekorean = 12914; e.mieumaparenkorean = 12818; e.mieumcirclekorean = 12900; e.mieumkorean = 12609; e.mieumpansioskorean = 12656; e.mieumparenkorean = 12804; e.mieumpieupkorean = 12654; e.mieumsioskorean = 12655; e.mihiragana = 12415; e.mikatakana = 12511; e.mikatakanahalfwidth = 65424; e.minus = 8722; e.minusbelowcmb = 800; e.minuscircle = 8854; e.minusmod = 727; e.minusplus = 8723; e.minute = 8242; e.miribaarusquare = 13130; e.mirisquare = 13129; e.mlonglegturned = 624; e.mlsquare = 13206; e.mmcubedsquare = 13219; e.mmonospace = 65357; e.mmsquaredsquare = 13215; e.mohiragana = 12418; e.mohmsquare = 13249; e.mokatakana = 12514; e.mokatakanahalfwidth = 65427; e.molsquare = 13270; e.momathai = 3617; e.moverssquare = 13223; e.moverssquaredsquare = 13224; e.mparen = 9384; e.mpasquare = 13227; e.mssquare = 13235; e.msuperior = 63215; e.mturned = 623; e.mu = 181; e.mu1 = 181; e.muasquare = 13186; e.muchgreater = 8811; e.muchless = 8810; e.mufsquare = 13196; e.mugreek = 956; e.mugsquare = 13197; e.muhiragana = 12416; e.mukatakana = 12512; e.mukatakanahalfwidth = 65425; e.mulsquare = 13205; e.multiply = 215; e.mumsquare = 13211; e.munahhebrew = 1443; e.munahlefthebrew = 1443; e.musicalnote = 9834; e.musicalnotedbl = 9835; e.musicflatsign = 9837; e.musicsharpsign = 9839; e.mussquare = 13234; e.muvsquare = 13238; e.muwsquare = 13244; e.mvmegasquare = 13241; e.mvsquare = 13239; e.mwmegasquare = 13247; e.mwsquare = 13245; e.n = 110; e.nabengali = 2472; e.nabla = 8711; e.nacute = 324; e.nadeva = 2344; e.nagujarati = 2728; e.nagurmukhi = 2600; e.nahiragana = 12394; e.nakatakana = 12490; e.nakatakanahalfwidth = 65413; e.napostrophe = 329; e.nasquare = 13185; e.nbopomofo = 12555; e.nbspace = 160; e.ncaron = 328; e.ncedilla = 326; e.ncircle = 9437; e.ncircumflexbelow = 7755; e.ncommaaccent = 326; e.ndotaccent = 7749; e.ndotbelow = 7751; e.nehiragana = 12397; e.nekatakana = 12493; e.nekatakanahalfwidth = 65416; e.newsheqelsign = 8362; e.nfsquare = 13195; e.ngabengali = 2457; e.ngadeva = 2329; e.ngagujarati = 2713; e.ngagurmukhi = 2585; e.ngonguthai = 3591; e.nhiragana = 12435; e.nhookleft = 626; e.nhookretroflex = 627; e.nieunacirclekorean = 12911; e.nieunaparenkorean = 12815; e.nieuncieuckorean = 12597; e.nieuncirclekorean = 12897; e.nieunhieuhkorean = 12598; e.nieunkorean = 12596; e.nieunpansioskorean = 12648; e.nieunparenkorean = 12801; e.nieunsioskorean = 12647; e.nieuntikeutkorean = 12646; e.nihiragana = 12395; e.nikatakana = 12491; e.nikatakanahalfwidth = 65414; e.nikhahitleftthai = 63641; e.nikhahitthai = 3661; e.nine = 57; e.ninearabic = 1641; e.ninebengali = 2543; e.ninecircle = 9320; e.ninecircleinversesansserif = 10130; e.ninedeva = 2415; e.ninegujarati = 2799; e.ninegurmukhi = 2671; e.ninehackarabic = 1641; e.ninehangzhou = 12329; e.nineideographicparen = 12840; e.nineinferior = 8329; e.ninemonospace = 65305; e.nineoldstyle = 63289; e.nineparen = 9340; e.nineperiod = 9360; e.ninepersian = 1785; e.nineroman = 8568; e.ninesuperior = 8313; e.nineteencircle = 9330; e.nineteenparen = 9350; e.nineteenperiod = 9370; e.ninethai = 3673; e.nj = 460; e.njecyrillic = 1114; e.nkatakana = 12531; e.nkatakanahalfwidth = 65437; e.nlegrightlong = 414; e.nlinebelow = 7753; e.nmonospace = 65358; e.nmsquare = 13210; e.nnabengali = 2467; e.nnadeva = 2339; e.nnagujarati = 2723; e.nnagurmukhi = 2595; e.nnnadeva = 2345; e.nohiragana = 12398; e.nokatakana = 12494; e.nokatakanahalfwidth = 65417; e.nonbreakingspace = 160; e.nonenthai = 3603; e.nonuthai = 3609; e.noonarabic = 1606; e.noonfinalarabic = 65254; e.noonghunnaarabic = 1722; e.noonghunnafinalarabic = 64415; e.nooninitialarabic = 65255; e.noonjeeminitialarabic = 64722; e.noonjeemisolatedarabic = 64587; e.noonmedialarabic = 65256; e.noonmeeminitialarabic = 64725; e.noonmeemisolatedarabic = 64590; e.noonnoonfinalarabic = 64653; e.notcontains = 8716; e.notelement = 8713; e.notelementof = 8713; e.notequal = 8800; e.notgreater = 8815; e.notgreaternorequal = 8817; e.notgreaternorless = 8825; e.notidentical = 8802; e.notless = 8814; e.notlessnorequal = 8816; e.notparallel = 8742; e.notprecedes = 8832; e.notsubset = 8836; e.notsucceeds = 8833; e.notsuperset = 8837; e.nowarmenian = 1398; e.nparen = 9385; e.nssquare = 13233; e.nsuperior = 8319; e.ntilde = 241; e.nu = 957; e.nuhiragana = 12396; e.nukatakana = 12492; e.nukatakanahalfwidth = 65415; e.nuktabengali = 2492; e.nuktadeva = 2364; e.nuktagujarati = 2748; e.nuktagurmukhi = 2620; e.numbersign = 35; e.numbersignmonospace = 65283; e.numbersignsmall = 65119; e.numeralsigngreek = 884; e.numeralsignlowergreek = 885; e.numero = 8470; e.nun = 1504; e.nundagesh = 64320; e.nundageshhebrew = 64320; e.nunhebrew = 1504; e.nvsquare = 13237; e.nwsquare = 13243; e.nyabengali = 2462; e.nyadeva = 2334; e.nyagujarati = 2718; e.nyagurmukhi = 2590; e.o = 111; e.oacute = 243; e.oangthai = 3629; e.obarred = 629; e.obarredcyrillic = 1257; e.obarreddieresiscyrillic = 1259; e.obengali = 2451; e.obopomofo = 12571; e.obreve = 335; e.ocandradeva = 2321; e.ocandragujarati = 2705; e.ocandravowelsigndeva = 2377; e.ocandravowelsigngujarati = 2761; e.ocaron = 466; e.ocircle = 9438; e.ocircumflex = 244; e.ocircumflexacute = 7889; e.ocircumflexdotbelow = 7897; e.ocircumflexgrave = 7891; e.ocircumflexhookabove = 7893; e.ocircumflextilde = 7895; e.ocyrillic = 1086; e.odblacute = 337; e.odblgrave = 525; e.odeva = 2323; e.odieresis = 246; e.odieresiscyrillic = 1255; e.odotbelow = 7885; e.oe = 339; e.oekorean = 12634; e.ogonek = 731; e.ogonekcmb = 808; e.ograve = 242; e.ogujarati = 2707; e.oharmenian = 1413; e.ohiragana = 12362; e.ohookabove = 7887; e.ohorn = 417; e.ohornacute = 7899; e.ohorndotbelow = 7907; e.ohorngrave = 7901; e.ohornhookabove = 7903; e.ohorntilde = 7905; e.ohungarumlaut = 337; e.oi = 419; e.oinvertedbreve = 527; e.okatakana = 12458; e.okatakanahalfwidth = 65397; e.okorean = 12631; e.olehebrew = 1451; e.omacron = 333; e.omacronacute = 7763; e.omacrongrave = 7761; e.omdeva = 2384; e.omega = 969; e.omega1 = 982; e.omegacyrillic = 1121; e.omegalatinclosed = 631; e.omegaroundcyrillic = 1147; e.omegatitlocyrillic = 1149; e.omegatonos = 974; e.omgujarati = 2768; e.omicron = 959; e.omicrontonos = 972; e.omonospace = 65359; e.one = 49; e.onearabic = 1633; e.onebengali = 2535; e.onecircle = 9312; e.onecircleinversesansserif = 10122; e.onedeva = 2407; e.onedotenleader = 8228; e.oneeighth = 8539; e.onefitted = 63196; e.onegujarati = 2791; e.onegurmukhi = 2663; e.onehackarabic = 1633; e.onehalf = 189; e.onehangzhou = 12321; e.oneideographicparen = 12832; e.oneinferior = 8321; e.onemonospace = 65297; e.onenumeratorbengali = 2548; e.oneoldstyle = 63281; e.oneparen = 9332; e.oneperiod = 9352; e.onepersian = 1777; e.onequarter = 188; e.oneroman = 8560; e.onesuperior = 185; e.onethai = 3665; e.onethird = 8531; e.oogonek = 491; e.oogonekmacron = 493; e.oogurmukhi = 2579; e.oomatragurmukhi = 2635; e.oopen = 596; e.oparen = 9386; e.openbullet = 9702; e.option = 8997; e.ordfeminine = 170; e.ordmasculine = 186; e.orthogonal = 8735; e.oshortdeva = 2322; e.oshortvowelsigndeva = 2378; e.oslash = 248; e.oslashacute = 511; e.osmallhiragana = 12361; e.osmallkatakana = 12457; e.osmallkatakanahalfwidth = 65387; e.ostrokeacute = 511; e.osuperior = 63216; e.otcyrillic = 1151; e.otilde = 245; e.otildeacute = 7757; e.otildedieresis = 7759; e.oubopomofo = 12577; e.overline = 8254; e.overlinecenterline = 65098; e.overlinecmb = 773; e.overlinedashed = 65097; e.overlinedblwavy = 65100; e.overlinewavy = 65099; e.overscore = 175; e.ovowelsignbengali = 2507; e.ovowelsigndeva = 2379; e.ovowelsigngujarati = 2763; e.p = 112; e.paampssquare = 13184; e.paasentosquare = 13099; e.pabengali = 2474; e.pacute = 7765; e.padeva = 2346; e.pagedown = 8671; e.pageup = 8670; e.pagujarati = 2730; e.pagurmukhi = 2602; e.pahiragana = 12401; e.paiyannoithai = 3631; e.pakatakana = 12497; e.palatalizationcyrilliccmb = 1156; e.palochkacyrillic = 1216; e.pansioskorean = 12671; e.paragraph = 182; e.parallel = 8741; e.parenleft = 40; e.parenleftaltonearabic = 64830; e.parenleftbt = 63725; e.parenleftex = 63724; e.parenleftinferior = 8333; e.parenleftmonospace = 65288; e.parenleftsmall = 65113; e.parenleftsuperior = 8317; e.parenlefttp = 63723; e.parenleftvertical = 65077; e.parenright = 41; e.parenrightaltonearabic = 64831; e.parenrightbt = 63736; e.parenrightex = 63735; e.parenrightinferior = 8334; e.parenrightmonospace = 65289; e.parenrightsmall = 65114; e.parenrightsuperior = 8318; e.parenrighttp = 63734; e.parenrightvertical = 65078; e.partialdiff = 8706; e.paseqhebrew = 1472; e.pashtahebrew = 1433; e.pasquare = 13225; e.patah = 1463; e.patah11 = 1463; e.patah1d = 1463; e.patah2a = 1463; e.patahhebrew = 1463; e.patahnarrowhebrew = 1463; e.patahquarterhebrew = 1463; e.patahwidehebrew = 1463; e.pazerhebrew = 1441; e.pbopomofo = 12550; e.pcircle = 9439; e.pdotaccent = 7767; e.pe = 1508; e.pecyrillic = 1087; e.pedagesh = 64324; e.pedageshhebrew = 64324; e.peezisquare = 13115; e.pefinaldageshhebrew = 64323; e.peharabic = 1662; e.peharmenian = 1402; e.pehebrew = 1508; e.pehfinalarabic = 64343; e.pehinitialarabic = 64344; e.pehiragana = 12410; e.pehmedialarabic = 64345; e.pekatakana = 12506; e.pemiddlehookcyrillic = 1191; e.perafehebrew = 64334; e.percent = 37; e.percentarabic = 1642; e.percentmonospace = 65285; e.percentsmall = 65130; e.period = 46; e.periodarmenian = 1417; e.periodcentered = 183; e.periodhalfwidth = 65377; e.periodinferior = 63207; e.periodmonospace = 65294; e.periodsmall = 65106; e.periodsuperior = 63208; e.perispomenigreekcmb = 834; e.perpendicular = 8869; e.perthousand = 8240; e.peseta = 8359; e.pfsquare = 13194; e.phabengali = 2475; e.phadeva = 2347; e.phagujarati = 2731; e.phagurmukhi = 2603; e.phi = 966; e.phi1 = 981; e.phieuphacirclekorean = 12922; e.phieuphaparenkorean = 12826; e.phieuphcirclekorean = 12908; e.phieuphkorean = 12621; e.phieuphparenkorean = 12812; e.philatin = 632; e.phinthuthai = 3642; e.phisymbolgreek = 981; e.phook = 421; e.phophanthai = 3614; e.phophungthai = 3612; e.phosamphaothai = 3616; e.pi = 960; e.pieupacirclekorean = 12915; e.pieupaparenkorean = 12819; e.pieupcieuckorean = 12662; e.pieupcirclekorean = 12901; e.pieupkiyeokkorean = 12658; e.pieupkorean = 12610; e.pieupparenkorean = 12805; e.pieupsioskiyeokkorean = 12660; e.pieupsioskorean = 12612; e.pieupsiostikeutkorean = 12661; e.pieupthieuthkorean = 12663; e.pieuptikeutkorean = 12659; e.pihiragana = 12404; e.pikatakana = 12500; e.pisymbolgreek = 982; e.piwrarmenian = 1411; e.planckover2pi = 8463; e.planckover2pi1 = 8463; e.plus = 43; e.plusbelowcmb = 799; e.pluscircle = 8853; e.plusminus = 177; e.plusmod = 726; e.plusmonospace = 65291; e.plussmall = 65122; e.plussuperior = 8314; e.pmonospace = 65360; e.pmsquare = 13272; e.pohiragana = 12413; e.pointingindexdownwhite = 9759; e.pointingindexleftwhite = 9756; e.pointingindexrightwhite = 9758; e.pointingindexupwhite = 9757; e.pokatakana = 12509; e.poplathai = 3611; e.postalmark = 12306; e.postalmarkface = 12320; e.pparen = 9387; e.precedes = 8826; e.prescription = 8478; e.primemod = 697; e.primereversed = 8245; e.product = 8719; e.projective = 8965; e.prolongedkana = 12540; e.propellor = 8984; e.propersubset = 8834; e.propersuperset = 8835; e.proportion = 8759; e.proportional = 8733; e.psi = 968; e.psicyrillic = 1137; e.psilipneumatacyrilliccmb = 1158; e.pssquare = 13232; e.puhiragana = 12407; e.pukatakana = 12503; e.pvsquare = 13236; e.pwsquare = 13242; e.q = 113; e.qadeva = 2392; e.qadmahebrew = 1448; e.qafarabic = 1602; e.qaffinalarabic = 65238; e.qafinitialarabic = 65239; e.qafmedialarabic = 65240; e.qamats = 1464; e.qamats10 = 1464; e.qamats1a = 1464; e.qamats1c = 1464; e.qamats27 = 1464; e.qamats29 = 1464; e.qamats33 = 1464; e.qamatsde = 1464; e.qamatshebrew = 1464; e.qamatsnarrowhebrew = 1464; e.qamatsqatanhebrew = 1464; e.qamatsqatannarrowhebrew = 1464; e.qamatsqatanquarterhebrew = 1464; e.qamatsqatanwidehebrew = 1464; e.qamatsquarterhebrew = 1464; e.qamatswidehebrew = 1464; e.qarneyparahebrew = 1439; e.qbopomofo = 12561; e.qcircle = 9440; e.qhook = 672; e.qmonospace = 65361; e.qof = 1511; e.qofdagesh = 64327; e.qofdageshhebrew = 64327; e.qofhebrew = 1511; e.qparen = 9388; e.quarternote = 9833; e.qubuts = 1467; e.qubuts18 = 1467; e.qubuts25 = 1467; e.qubuts31 = 1467; e.qubutshebrew = 1467; e.qubutsnarrowhebrew = 1467; e.qubutsquarterhebrew = 1467; e.qubutswidehebrew = 1467; e.question = 63; e.questionarabic = 1567; e.questionarmenian = 1374; e.questiondown = 191; e.questiondownsmall = 63423; e.questiongreek = 894; e.questionmonospace = 65311; e.questionsmall = 63295; e.quotedbl = 34; e.quotedblbase = 8222; e.quotedblleft = 8220; e.quotedblmonospace = 65282; e.quotedblprime = 12318; e.quotedblprimereversed = 12317; e.quotedblright = 8221; e.quoteleft = 8216; e.quoteleftreversed = 8219; e.quotereversed = 8219; e.quoteright = 8217; e.quoterightn = 329; e.quotesinglbase = 8218; e.quotesingle = 39; e.quotesinglemonospace = 65287; e.r = 114; e.raarmenian = 1404; e.rabengali = 2480; e.racute = 341; e.radeva = 2352; e.radical = 8730; e.radicalex = 63717; e.radoverssquare = 13230; e.radoverssquaredsquare = 13231; e.radsquare = 13229; e.rafe = 1471; e.rafehebrew = 1471; e.ragujarati = 2736; e.ragurmukhi = 2608; e.rahiragana = 12425; e.rakatakana = 12521; e.rakatakanahalfwidth = 65431; e.ralowerdiagonalbengali = 2545; e.ramiddlediagonalbengali = 2544; e.ramshorn = 612; e.ratio = 8758; e.rbopomofo = 12566; e.rcaron = 345; e.rcedilla = 343; e.rcircle = 9441; e.rcommaaccent = 343; e.rdblgrave = 529; e.rdotaccent = 7769; e.rdotbelow = 7771; e.rdotbelowmacron = 7773; e.referencemark = 8251; e.reflexsubset = 8838; e.reflexsuperset = 8839; e.registered = 174; e.registersans = 63720; e.registerserif = 63194; e.reharabic = 1585; e.reharmenian = 1408; e.rehfinalarabic = 65198; e.rehiragana = 12428; e.rekatakana = 12524; e.rekatakanahalfwidth = 65434; e.resh = 1512; e.reshdageshhebrew = 64328; e.reshhebrew = 1512; e.reversedtilde = 8765; e.reviahebrew = 1431; e.reviamugrashhebrew = 1431; e.revlogicalnot = 8976; e.rfishhook = 638; e.rfishhookreversed = 639; e.rhabengali = 2525; e.rhadeva = 2397; e.rho = 961; e.rhook = 637; e.rhookturned = 635; e.rhookturnedsuperior = 693; e.rhosymbolgreek = 1009; e.rhotichookmod = 734; e.rieulacirclekorean = 12913; e.rieulaparenkorean = 12817; e.rieulcirclekorean = 12899; e.rieulhieuhkorean = 12608; e.rieulkiyeokkorean = 12602; e.rieulkiyeoksioskorean = 12649; e.rieulkorean = 12601; e.rieulmieumkorean = 12603; e.rieulpansioskorean = 12652; e.rieulparenkorean = 12803; e.rieulphieuphkorean = 12607; e.rieulpieupkorean = 12604; e.rieulpieupsioskorean = 12651; e.rieulsioskorean = 12605; e.rieulthieuthkorean = 12606; e.rieultikeutkorean = 12650; e.rieulyeorinhieuhkorean = 12653; e.rightangle = 8735; e.righttackbelowcmb = 793; e.righttriangle = 8895; e.rihiragana = 12426; e.rikatakana = 12522; e.rikatakanahalfwidth = 65432; e.ring = 730; e.ringbelowcmb = 805; e.ringcmb = 778; e.ringhalfleft = 703; e.ringhalfleftarmenian = 1369; e.ringhalfleftbelowcmb = 796; e.ringhalfleftcentered = 723; e.ringhalfright = 702; e.ringhalfrightbelowcmb = 825; e.ringhalfrightcentered = 722; e.rinvertedbreve = 531; e.rittorusquare = 13137; e.rlinebelow = 7775; e.rlongleg = 636; e.rlonglegturned = 634; e.rmonospace = 65362; e.rohiragana = 12429; e.rokatakana = 12525; e.rokatakanahalfwidth = 65435; e.roruathai = 3619; e.rparen = 9389; e.rrabengali = 2524; e.rradeva = 2353; e.rragurmukhi = 2652; e.rreharabic = 1681; e.rrehfinalarabic = 64397; e.rrvocalicbengali = 2528; e.rrvocalicdeva = 2400; e.rrvocalicgujarati = 2784; e.rrvocalicvowelsignbengali = 2500; e.rrvocalicvowelsigndeva = 2372; e.rrvocalicvowelsigngujarati = 2756; e.rsuperior = 63217; e.rtblock = 9616; e.rturned = 633; e.rturnedsuperior = 692; e.ruhiragana = 12427; e.rukatakana = 12523; e.rukatakanahalfwidth = 65433; e.rupeemarkbengali = 2546; e.rupeesignbengali = 2547; e.rupiah = 63197; e.ruthai = 3620; e.rvocalicbengali = 2443; e.rvocalicdeva = 2315; e.rvocalicgujarati = 2699; e.rvocalicvowelsignbengali = 2499; e.rvocalicvowelsigndeva = 2371; e.rvocalicvowelsigngujarati = 2755; e.s = 115; e.sabengali = 2488; e.sacute = 347; e.sacutedotaccent = 7781; e.sadarabic = 1589; e.sadeva = 2360; e.sadfinalarabic = 65210; e.sadinitialarabic = 65211; e.sadmedialarabic = 65212; e.sagujarati = 2744; e.sagurmukhi = 2616; e.sahiragana = 12373; e.sakatakana = 12469; e.sakatakanahalfwidth = 65403; e.sallallahoualayhewasallamarabic = 65018; e.samekh = 1505; e.samekhdagesh = 64321; e.samekhdageshhebrew = 64321; e.samekhhebrew = 1505; e.saraaathai = 3634; e.saraaethai = 3649; e.saraaimaimalaithai = 3652; e.saraaimaimuanthai = 3651; e.saraamthai = 3635; e.saraathai = 3632; e.saraethai = 3648; e.saraiileftthai = 63622; e.saraiithai = 3637; e.saraileftthai = 63621; e.saraithai = 3636; e.saraothai = 3650; e.saraueeleftthai = 63624; e.saraueethai = 3639; e.saraueleftthai = 63623; e.sarauethai = 3638; e.sarauthai = 3640; e.sarauuthai = 3641; e.sbopomofo = 12569; e.scaron = 353; e.scarondotaccent = 7783; e.scedilla = 351; e.schwa = 601; e.schwacyrillic = 1241; e.schwadieresiscyrillic = 1243; e.schwahook = 602; e.scircle = 9442; e.scircumflex = 349; e.scommaaccent = 537; e.sdotaccent = 7777; e.sdotbelow = 7779; e.sdotbelowdotaccent = 7785; e.seagullbelowcmb = 828; e.second = 8243; e.secondtonechinese = 714; e.section = 167; e.seenarabic = 1587; e.seenfinalarabic = 65202; e.seeninitialarabic = 65203; e.seenmedialarabic = 65204; e.segol = 1462; e.segol13 = 1462; e.segol1f = 1462; e.segol2c = 1462; e.segolhebrew = 1462; e.segolnarrowhebrew = 1462; e.segolquarterhebrew = 1462; e.segoltahebrew = 1426; e.segolwidehebrew = 1462; e.seharmenian = 1405; e.sehiragana = 12379; e.sekatakana = 12475; e.sekatakanahalfwidth = 65406; e.semicolon = 59; e.semicolonarabic = 1563; e.semicolonmonospace = 65307; e.semicolonsmall = 65108; e.semivoicedmarkkana = 12444; e.semivoicedmarkkanahalfwidth = 65439; e.sentisquare = 13090; e.sentosquare = 13091; e.seven = 55; e.sevenarabic = 1639; e.sevenbengali = 2541; e.sevencircle = 9318; e.sevencircleinversesansserif = 10128; e.sevendeva = 2413; e.seveneighths = 8542; e.sevengujarati = 2797; e.sevengurmukhi = 2669; e.sevenhackarabic = 1639; e.sevenhangzhou = 12327; e.sevenideographicparen = 12838; e.seveninferior = 8327; e.sevenmonospace = 65303; e.sevenoldstyle = 63287; e.sevenparen = 9338; e.sevenperiod = 9358; e.sevenpersian = 1783; e.sevenroman = 8566; e.sevensuperior = 8311; e.seventeencircle = 9328; e.seventeenparen = 9348; e.seventeenperiod = 9368; e.seventhai = 3671; e.sfthyphen = 173; e.shaarmenian = 1399; e.shabengali = 2486; e.shacyrillic = 1096; e.shaddaarabic = 1617; e.shaddadammaarabic = 64609; e.shaddadammatanarabic = 64606; e.shaddafathaarabic = 64608; e.shaddakasraarabic = 64610; e.shaddakasratanarabic = 64607; e.shade = 9618; e.shadedark = 9619; e.shadelight = 9617; e.shademedium = 9618; e.shadeva = 2358; e.shagujarati = 2742; e.shagurmukhi = 2614; e.shalshelethebrew = 1427; e.shbopomofo = 12565; e.shchacyrillic = 1097; e.sheenarabic = 1588; e.sheenfinalarabic = 65206; e.sheeninitialarabic = 65207; e.sheenmedialarabic = 65208; e.sheicoptic = 995; e.sheqel = 8362; e.sheqelhebrew = 8362; e.sheva = 1456; e.sheva115 = 1456; e.sheva15 = 1456; e.sheva22 = 1456; e.sheva2e = 1456; e.shevahebrew = 1456; e.shevanarrowhebrew = 1456; e.shevaquarterhebrew = 1456; e.shevawidehebrew = 1456; e.shhacyrillic = 1211; e.shimacoptic = 1005; e.shin = 1513; e.shindagesh = 64329; e.shindageshhebrew = 64329; e.shindageshshindot = 64300; e.shindageshshindothebrew = 64300; e.shindageshsindot = 64301; e.shindageshsindothebrew = 64301; e.shindothebrew = 1473; e.shinhebrew = 1513; e.shinshindot = 64298; e.shinshindothebrew = 64298; e.shinsindot = 64299; e.shinsindothebrew = 64299; e.shook = 642; e.sigma = 963; e.sigma1 = 962; e.sigmafinal = 962; e.sigmalunatesymbolgreek = 1010; e.sihiragana = 12375; e.sikatakana = 12471; e.sikatakanahalfwidth = 65404; e.siluqhebrew = 1469; e.siluqlefthebrew = 1469; e.similar = 8764; e.sindothebrew = 1474; e.siosacirclekorean = 12916; e.siosaparenkorean = 12820; e.sioscieuckorean = 12670; e.sioscirclekorean = 12902; e.sioskiyeokkorean = 12666; e.sioskorean = 12613; e.siosnieunkorean = 12667; e.siosparenkorean = 12806; e.siospieupkorean = 12669; e.siostikeutkorean = 12668; e.six = 54; e.sixarabic = 1638; e.sixbengali = 2540; e.sixcircle = 9317; e.sixcircleinversesansserif = 10127; e.sixdeva = 2412; e.sixgujarati = 2796; e.sixgurmukhi = 2668; e.sixhackarabic = 1638; e.sixhangzhou = 12326; e.sixideographicparen = 12837; e.sixinferior = 8326; e.sixmonospace = 65302; e.sixoldstyle = 63286; e.sixparen = 9337; e.sixperiod = 9357; e.sixpersian = 1782; e.sixroman = 8565; e.sixsuperior = 8310; e.sixteencircle = 9327; e.sixteencurrencydenominatorbengali = 2553; e.sixteenparen = 9347; e.sixteenperiod = 9367; e.sixthai = 3670; e.slash = 47; e.slashmonospace = 65295; e.slong = 383; e.slongdotaccent = 7835; e.smileface = 9786; e.smonospace = 65363; e.sofpasuqhebrew = 1475; e.softhyphen = 173; e.softsigncyrillic = 1100; e.sohiragana = 12381; e.sokatakana = 12477; e.sokatakanahalfwidth = 65407; e.soliduslongoverlaycmb = 824; e.solidusshortoverlaycmb = 823; e.sorusithai = 3625; e.sosalathai = 3624; e.sosothai = 3595; e.sosuathai = 3626; e.space = 32; e.spacehackarabic = 32; e.spade = 9824; e.spadesuitblack = 9824; e.spadesuitwhite = 9828; e.sparen = 9390; e.squarebelowcmb = 827; e.squarecc = 13252; e.squarecm = 13213; e.squarediagonalcrosshatchfill = 9641; e.squarehorizontalfill = 9636; e.squarekg = 13199; e.squarekm = 13214; e.squarekmcapital = 13262; e.squareln = 13265; e.squarelog = 13266; e.squaremg = 13198; e.squaremil = 13269; e.squaremm = 13212; e.squaremsquared = 13217; e.squareorthogonalcrosshatchfill = 9638; e.squareupperlefttolowerrightfill = 9639; e.squareupperrighttolowerleftfill = 9640; e.squareverticalfill = 9637; e.squarewhitewithsmallblack = 9635; e.srsquare = 13275; e.ssabengali = 2487; e.ssadeva = 2359; e.ssagujarati = 2743; e.ssangcieuckorean = 12617; e.ssanghieuhkorean = 12677; e.ssangieungkorean = 12672; e.ssangkiyeokkorean = 12594; e.ssangnieunkorean = 12645; e.ssangpieupkorean = 12611; e.ssangsioskorean = 12614; e.ssangtikeutkorean = 12600; e.ssuperior = 63218; e.sterling = 163; e.sterlingmonospace = 65505; e.strokelongoverlaycmb = 822; e.strokeshortoverlaycmb = 821; e.subset = 8834; e.subsetnotequal = 8842; e.subsetorequal = 8838; e.succeeds = 8827; e.suchthat = 8715; e.suhiragana = 12377; e.sukatakana = 12473; e.sukatakanahalfwidth = 65405; e.sukunarabic = 1618; e.summation = 8721; e.sun = 9788; e.superset = 8835; e.supersetnotequal = 8843; e.supersetorequal = 8839; e.svsquare = 13276; e.syouwaerasquare = 13180; e.t = 116; e.tabengali = 2468; e.tackdown = 8868; e.tackleft = 8867; e.tadeva = 2340; e.tagujarati = 2724; e.tagurmukhi = 2596; e.taharabic = 1591; e.tahfinalarabic = 65218; e.tahinitialarabic = 65219; e.tahiragana = 12383; e.tahmedialarabic = 65220; e.taisyouerasquare = 13181; e.takatakana = 12479; e.takatakanahalfwidth = 65408; e.tatweelarabic = 1600; e.tau = 964; e.tav = 1514; e.tavdages = 64330; e.tavdagesh = 64330; e.tavdageshhebrew = 64330; e.tavhebrew = 1514; e.tbar = 359; e.tbopomofo = 12554; e.tcaron = 357; e.tccurl = 680; e.tcedilla = 355; e.tcheharabic = 1670; e.tchehfinalarabic = 64379; e.tchehinitialarabic = 64380; e.tchehmedialarabic = 64381; e.tcircle = 9443; e.tcircumflexbelow = 7793; e.tcommaaccent = 355; e.tdieresis = 7831; e.tdotaccent = 7787; e.tdotbelow = 7789; e.tecyrillic = 1090; e.tedescendercyrillic = 1197; e.teharabic = 1578; e.tehfinalarabic = 65174; e.tehhahinitialarabic = 64674; e.tehhahisolatedarabic = 64524; e.tehinitialarabic = 65175; e.tehiragana = 12390; e.tehjeeminitialarabic = 64673; e.tehjeemisolatedarabic = 64523; e.tehmarbutaarabic = 1577; e.tehmarbutafinalarabic = 65172; e.tehmedialarabic = 65176; e.tehmeeminitialarabic = 64676; e.tehmeemisolatedarabic = 64526; e.tehnoonfinalarabic = 64627; e.tekatakana = 12486; e.tekatakanahalfwidth = 65411; e.telephone = 8481; e.telephoneblack = 9742; e.telishagedolahebrew = 1440; e.telishaqetanahebrew = 1449; e.tencircle = 9321; e.tenideographicparen = 12841; e.tenparen = 9341; e.tenperiod = 9361; e.tenroman = 8569; e.tesh = 679; e.tet = 1496; e.tetdagesh = 64312; e.tetdageshhebrew = 64312; e.tethebrew = 1496; e.tetsecyrillic = 1205; e.tevirhebrew = 1435; e.tevirlefthebrew = 1435; e.thabengali = 2469; e.thadeva = 2341; e.thagujarati = 2725; e.thagurmukhi = 2597; e.thalarabic = 1584; e.thalfinalarabic = 65196; e.thanthakhatlowleftthai = 63640; e.thanthakhatlowrightthai = 63639; e.thanthakhatthai = 3660; e.thanthakhatupperleftthai = 63638; e.theharabic = 1579; e.thehfinalarabic = 65178; e.thehinitialarabic = 65179; e.thehmedialarabic = 65180; e.thereexists = 8707; e.therefore = 8756; e.theta = 952; e.theta1 = 977; e.thetasymbolgreek = 977; e.thieuthacirclekorean = 12921; e.thieuthaparenkorean = 12825; e.thieuthcirclekorean = 12907; e.thieuthkorean = 12620; e.thieuthparenkorean = 12811; e.thirteencircle = 9324; e.thirteenparen = 9344; e.thirteenperiod = 9364; e.thonangmonthothai = 3601; e.thook = 429; e.thophuthaothai = 3602; e.thorn = 254; e.thothahanthai = 3607; e.thothanthai = 3600; e.thothongthai = 3608; e.thothungthai = 3606; e.thousandcyrillic = 1154; e.thousandsseparatorarabic = 1644; e.thousandsseparatorpersian = 1644; e.three = 51; e.threearabic = 1635; e.threebengali = 2537; e.threecircle = 9314; e.threecircleinversesansserif = 10124; e.threedeva = 2409; e.threeeighths = 8540; e.threegujarati = 2793; e.threegurmukhi = 2665; e.threehackarabic = 1635; e.threehangzhou = 12323; e.threeideographicparen = 12834; e.threeinferior = 8323; e.threemonospace = 65299; e.threenumeratorbengali = 2550; e.threeoldstyle = 63283; e.threeparen = 9334; e.threeperiod = 9354; e.threepersian = 1779; e.threequarters = 190; e.threequartersemdash = 63198; e.threeroman = 8562; e.threesuperior = 179; e.threethai = 3667; e.thzsquare = 13204; e.tihiragana = 12385; e.tikatakana = 12481; e.tikatakanahalfwidth = 65409; e.tikeutacirclekorean = 12912; e.tikeutaparenkorean = 12816; e.tikeutcirclekorean = 12898; e.tikeutkorean = 12599; e.tikeutparenkorean = 12802; e.tilde = 732; e.tildebelowcmb = 816; e.tildecmb = 771; e.tildecomb = 771; e.tildedoublecmb = 864; e.tildeoperator = 8764; e.tildeoverlaycmb = 820; e.tildeverticalcmb = 830; e.timescircle = 8855; e.tipehahebrew = 1430; e.tipehalefthebrew = 1430; e.tippigurmukhi = 2672; e.titlocyrilliccmb = 1155; e.tiwnarmenian = 1407; e.tlinebelow = 7791; e.tmonospace = 65364; e.toarmenian = 1385; e.tohiragana = 12392; e.tokatakana = 12488; e.tokatakanahalfwidth = 65412; e.tonebarextrahighmod = 741; e.tonebarextralowmod = 745; e.tonebarhighmod = 742; e.tonebarlowmod = 744; e.tonebarmidmod = 743; e.tonefive = 445; e.tonesix = 389; e.tonetwo = 424; e.tonos = 900; e.tonsquare = 13095; e.topatakthai = 3599; e.tortoiseshellbracketleft = 12308; e.tortoiseshellbracketleftsmall = 65117; e.tortoiseshellbracketleftvertical = 65081; e.tortoiseshellbracketright = 12309; e.tortoiseshellbracketrightsmall = 65118; e.tortoiseshellbracketrightvertical = 65082; e.totaothai = 3605; e.tpalatalhook = 427; e.tparen = 9391; e.trademark = 8482; e.trademarksans = 63722; e.trademarkserif = 63195; e.tretroflexhook = 648; e.triagdn = 9660; e.triaglf = 9668; e.triagrt = 9658; e.triagup = 9650; e.ts = 678; e.tsadi = 1510; e.tsadidagesh = 64326; e.tsadidageshhebrew = 64326; e.tsadihebrew = 1510; e.tsecyrillic = 1094; e.tsere = 1461; e.tsere12 = 1461; e.tsere1e = 1461; e.tsere2b = 1461; e.tserehebrew = 1461; e.tserenarrowhebrew = 1461; e.tserequarterhebrew = 1461; e.tserewidehebrew = 1461; e.tshecyrillic = 1115; e.tsuperior = 63219; e.ttabengali = 2463; e.ttadeva = 2335; e.ttagujarati = 2719; e.ttagurmukhi = 2591; e.tteharabic = 1657; e.ttehfinalarabic = 64359; e.ttehinitialarabic = 64360; e.ttehmedialarabic = 64361; e.tthabengali = 2464; e.tthadeva = 2336; e.tthagujarati = 2720; e.tthagurmukhi = 2592; e.tturned = 647; e.tuhiragana = 12388; e.tukatakana = 12484; e.tukatakanahalfwidth = 65410; e.tusmallhiragana = 12387; e.tusmallkatakana = 12483; e.tusmallkatakanahalfwidth = 65391; e.twelvecircle = 9323; e.twelveparen = 9343; e.twelveperiod = 9363; e.twelveroman = 8571; e.twentycircle = 9331; e.twentyhangzhou = 21316; e.twentyparen = 9351; e.twentyperiod = 9371; e.two = 50; e.twoarabic = 1634; e.twobengali = 2536; e.twocircle = 9313; e.twocircleinversesansserif = 10123; e.twodeva = 2408; e.twodotenleader = 8229; e.twodotleader = 8229; e.twodotleadervertical = 65072; e.twogujarati = 2792; e.twogurmukhi = 2664; e.twohackarabic = 1634; e.twohangzhou = 12322; e.twoideographicparen = 12833; e.twoinferior = 8322; e.twomonospace = 65298; e.twonumeratorbengali = 2549; e.twooldstyle = 63282; e.twoparen = 9333; e.twoperiod = 9353; e.twopersian = 1778; e.tworoman = 8561; e.twostroke = 443; e.twosuperior = 178; e.twothai = 3666; e.twothirds = 8532; e.u = 117; e.uacute = 250; e.ubar = 649; e.ubengali = 2441; e.ubopomofo = 12584; e.ubreve = 365; e.ucaron = 468; e.ucircle = 9444; e.ucircumflex = 251; e.ucircumflexbelow = 7799; e.ucyrillic = 1091; e.udattadeva = 2385; e.udblacute = 369; e.udblgrave = 533; e.udeva = 2313; e.udieresis = 252; e.udieresisacute = 472; e.udieresisbelow = 7795; e.udieresiscaron = 474; e.udieresiscyrillic = 1265; e.udieresisgrave = 476; e.udieresismacron = 470; e.udotbelow = 7909; e.ugrave = 249; e.ugujarati = 2697; e.ugurmukhi = 2569; e.uhiragana = 12358; e.uhookabove = 7911; e.uhorn = 432; e.uhornacute = 7913; e.uhorndotbelow = 7921; e.uhorngrave = 7915; e.uhornhookabove = 7917; e.uhorntilde = 7919; e.uhungarumlaut = 369; e.uhungarumlautcyrillic = 1267; e.uinvertedbreve = 535; e.ukatakana = 12454; e.ukatakanahalfwidth = 65395; e.ukcyrillic = 1145; e.ukorean = 12636; e.umacron = 363; e.umacroncyrillic = 1263; e.umacrondieresis = 7803; e.umatragurmukhi = 2625; e.umonospace = 65365; e.underscore = 95; e.underscoredbl = 8215; e.underscoremonospace = 65343; e.underscorevertical = 65075; e.underscorewavy = 65103; e.union = 8746; e.universal = 8704; e.uogonek = 371; e.uparen = 9392; e.upblock = 9600; e.upperdothebrew = 1476; e.upsilon = 965; e.upsilondieresis = 971; e.upsilondieresistonos = 944; e.upsilonlatin = 650; e.upsilontonos = 973; e.uptackbelowcmb = 797; e.uptackmod = 724; e.uragurmukhi = 2675; e.uring = 367; e.ushortcyrillic = 1118; e.usmallhiragana = 12357; e.usmallkatakana = 12453; e.usmallkatakanahalfwidth = 65385; e.ustraightcyrillic = 1199; e.ustraightstrokecyrillic = 1201; e.utilde = 361; e.utildeacute = 7801; e.utildebelow = 7797; e.uubengali = 2442; e.uudeva = 2314; e.uugujarati = 2698; e.uugurmukhi = 2570; e.uumatragurmukhi = 2626; e.uuvowelsignbengali = 2498; e.uuvowelsigndeva = 2370; e.uuvowelsigngujarati = 2754; e.uvowelsignbengali = 2497; e.uvowelsigndeva = 2369; e.uvowelsigngujarati = 2753; e.v = 118; e.vadeva = 2357; e.vagujarati = 2741; e.vagurmukhi = 2613; e.vakatakana = 12535; e.vav = 1493; e.vavdagesh = 64309; e.vavdagesh65 = 64309; e.vavdageshhebrew = 64309; e.vavhebrew = 1493; e.vavholam = 64331; e.vavholamhebrew = 64331; e.vavvavhebrew = 1520; e.vavyodhebrew = 1521; e.vcircle = 9445; e.vdotbelow = 7807; e.vecyrillic = 1074; e.veharabic = 1700; e.vehfinalarabic = 64363; e.vehinitialarabic = 64364; e.vehmedialarabic = 64365; e.vekatakana = 12537; e.venus = 9792; e.verticalbar = 124; e.verticallineabovecmb = 781; e.verticallinebelowcmb = 809; e.verticallinelowmod = 716; e.verticallinemod = 712; e.vewarmenian = 1406; e.vhook = 651; e.vikatakana = 12536; e.viramabengali = 2509; e.viramadeva = 2381; e.viramagujarati = 2765; e.visargabengali = 2435; e.visargadeva = 2307; e.visargagujarati = 2691; e.vmonospace = 65366; e.voarmenian = 1400; e.voicediterationhiragana = 12446; e.voicediterationkatakana = 12542; e.voicedmarkkana = 12443; e.voicedmarkkanahalfwidth = 65438; e.vokatakana = 12538; e.vparen = 9393; e.vtilde = 7805; e.vturned = 652; e.vuhiragana = 12436; e.vukatakana = 12532; e.w = 119; e.wacute = 7811; e.waekorean = 12633; e.wahiragana = 12431; e.wakatakana = 12527; e.wakatakanahalfwidth = 65436; e.wakorean = 12632; e.wasmallhiragana = 12430; e.wasmallkatakana = 12526; e.wattosquare = 13143; e.wavedash = 12316; e.wavyunderscorevertical = 65076; e.wawarabic = 1608; e.wawfinalarabic = 65262; e.wawhamzaabovearabic = 1572; e.wawhamzaabovefinalarabic = 65158; e.wbsquare = 13277; e.wcircle = 9446; e.wcircumflex = 373; e.wdieresis = 7813; e.wdotaccent = 7815; e.wdotbelow = 7817; e.wehiragana = 12433; e.weierstrass = 8472; e.wekatakana = 12529; e.wekorean = 12638; e.weokorean = 12637; e.wgrave = 7809; e.whitebullet = 9702; e.whitecircle = 9675; e.whitecircleinverse = 9689; e.whitecornerbracketleft = 12302; e.whitecornerbracketleftvertical = 65091; e.whitecornerbracketright = 12303; e.whitecornerbracketrightvertical = 65092; e.whitediamond = 9671; e.whitediamondcontainingblacksmalldiamond = 9672; e.whitedownpointingsmalltriangle = 9663; e.whitedownpointingtriangle = 9661; e.whiteleftpointingsmalltriangle = 9667; e.whiteleftpointingtriangle = 9665; e.whitelenticularbracketleft = 12310; e.whitelenticularbracketright = 12311; e.whiterightpointingsmalltriangle = 9657; e.whiterightpointingtriangle = 9655; e.whitesmallsquare = 9643; e.whitesmilingface = 9786; e.whitesquare = 9633; e.whitestar = 9734; e.whitetelephone = 9743; e.whitetortoiseshellbracketleft = 12312; e.whitetortoiseshellbracketright = 12313; e.whiteuppointingsmalltriangle = 9653; e.whiteuppointingtriangle = 9651; e.wihiragana = 12432; e.wikatakana = 12528; e.wikorean = 12639; e.wmonospace = 65367; e.wohiragana = 12434; e.wokatakana = 12530; e.wokatakanahalfwidth = 65382; e.won = 8361; e.wonmonospace = 65510; e.wowaenthai = 3623; e.wparen = 9394; e.wring = 7832; e.wsuperior = 695; e.wturned = 653; e.wynn = 447; e.x = 120; e.xabovecmb = 829; e.xbopomofo = 12562; e.xcircle = 9447; e.xdieresis = 7821; e.xdotaccent = 7819; e.xeharmenian = 1389; e.xi = 958; e.xmonospace = 65368; e.xparen = 9395; e.xsuperior = 739; e.y = 121; e.yaadosquare = 13134; e.yabengali = 2479; e.yacute = 253; e.yadeva = 2351; e.yaekorean = 12626; e.yagujarati = 2735; e.yagurmukhi = 2607; e.yahiragana = 12420; e.yakatakana = 12516; e.yakatakanahalfwidth = 65428; e.yakorean = 12625; e.yamakkanthai = 3662; e.yasmallhiragana = 12419; e.yasmallkatakana = 12515; e.yasmallkatakanahalfwidth = 65388; e.yatcyrillic = 1123; e.ycircle = 9448; e.ycircumflex = 375; e.ydieresis = 255; e.ydotaccent = 7823; e.ydotbelow = 7925; e.yeharabic = 1610; e.yehbarreearabic = 1746; e.yehbarreefinalarabic = 64431; e.yehfinalarabic = 65266; e.yehhamzaabovearabic = 1574; e.yehhamzaabovefinalarabic = 65162; e.yehhamzaaboveinitialarabic = 65163; e.yehhamzaabovemedialarabic = 65164; e.yehinitialarabic = 65267; e.yehmedialarabic = 65268; e.yehmeeminitialarabic = 64733; e.yehmeemisolatedarabic = 64600; e.yehnoonfinalarabic = 64660; e.yehthreedotsbelowarabic = 1745; e.yekorean = 12630; e.yen = 165; e.yenmonospace = 65509; e.yeokorean = 12629; e.yeorinhieuhkorean = 12678; e.yerahbenyomohebrew = 1450; e.yerahbenyomolefthebrew = 1450; e.yericyrillic = 1099; e.yerudieresiscyrillic = 1273; e.yesieungkorean = 12673; e.yesieungpansioskorean = 12675; e.yesieungsioskorean = 12674; e.yetivhebrew = 1434; e.ygrave = 7923; e.yhook = 436; e.yhookabove = 7927; e.yiarmenian = 1397; e.yicyrillic = 1111; e.yikorean = 12642; e.yinyang = 9775; e.yiwnarmenian = 1410; e.ymonospace = 65369; e.yod = 1497; e.yoddagesh = 64313; e.yoddageshhebrew = 64313; e.yodhebrew = 1497; e.yodyodhebrew = 1522; e.yodyodpatahhebrew = 64287; e.yohiragana = 12424; e.yoikorean = 12681; e.yokatakana = 12520; e.yokatakanahalfwidth = 65430; e.yokorean = 12635; e.yosmallhiragana = 12423; e.yosmallkatakana = 12519; e.yosmallkatakanahalfwidth = 65390; e.yotgreek = 1011; e.yoyaekorean = 12680; e.yoyakorean = 12679; e.yoyakthai = 3618; e.yoyingthai = 3597; e.yparen = 9396; e.ypogegrammeni = 890; e.ypogegrammenigreekcmb = 837; e.yr = 422; e.yring = 7833; e.ysuperior = 696; e.ytilde = 7929; e.yturned = 654; e.yuhiragana = 12422; e.yuikorean = 12684; e.yukatakana = 12518; e.yukatakanahalfwidth = 65429; e.yukorean = 12640; e.yusbigcyrillic = 1131; e.yusbigiotifiedcyrillic = 1133; e.yuslittlecyrillic = 1127; e.yuslittleiotifiedcyrillic = 1129; e.yusmallhiragana = 12421; e.yusmallkatakana = 12517; e.yusmallkatakanahalfwidth = 65389; e.yuyekorean = 12683; e.yuyeokorean = 12682; e.yyabengali = 2527; e.yyadeva = 2399; e.z = 122; e.zaarmenian = 1382; e.zacute = 378; e.zadeva = 2395; e.zagurmukhi = 2651; e.zaharabic = 1592; e.zahfinalarabic = 65222; e.zahinitialarabic = 65223; e.zahiragana = 12374; e.zahmedialarabic = 65224; e.zainarabic = 1586; e.zainfinalarabic = 65200; e.zakatakana = 12470; e.zaqefgadolhebrew = 1429; e.zaqefqatanhebrew = 1428; e.zarqahebrew = 1432; e.zayin = 1494; e.zayindagesh = 64310; e.zayindageshhebrew = 64310; e.zayinhebrew = 1494; e.zbopomofo = 12567; e.zcaron = 382; e.zcircle = 9449; e.zcircumflex = 7825; e.zcurl = 657; e.zdot = 380; e.zdotaccent = 380; e.zdotbelow = 7827; e.zecyrillic = 1079; e.zedescendercyrillic = 1177; e.zedieresiscyrillic = 1247; e.zehiragana = 12380; e.zekatakana = 12476; e.zero = 48; e.zeroarabic = 1632; e.zerobengali = 2534; e.zerodeva = 2406; e.zerogujarati = 2790; e.zerogurmukhi = 2662; e.zerohackarabic = 1632; e.zeroinferior = 8320; e.zeromonospace = 65296; e.zerooldstyle = 63280; e.zeropersian = 1776; e.zerosuperior = 8304; e.zerothai = 3664; e.zerowidthjoiner = 65279; e.zerowidthnonjoiner = 8204; e.zerowidthspace = 8203; e.zeta = 950; e.zhbopomofo = 12563; e.zhearmenian = 1386; e.zhebrevecyrillic = 1218; e.zhecyrillic = 1078; e.zhedescendercyrillic = 1175; e.zhedieresiscyrillic = 1245; e.zihiragana = 12376; e.zikatakana = 12472; e.zinorhebrew = 1454; e.zlinebelow = 7829; e.zmonospace = 65370; e.zohiragana = 12382; e.zokatakana = 12478; e.zparen = 9397; e.zretroflexhook = 656; e.zstroke = 438; e.zuhiragana = 12378; e.zukatakana = 12474; e[".notdef"] = 0; e.angbracketleftbig = 9001; e.angbracketleftBig = 9001; e.angbracketleftbigg = 9001; e.angbracketleftBigg = 9001; e.angbracketrightBig = 9002; e.angbracketrightbig = 9002; e.angbracketrightBigg = 9002; e.angbracketrightbigg = 9002; e.arrowhookleft = 8618; e.arrowhookright = 8617; e.arrowlefttophalf = 8636; e.arrowleftbothalf = 8637; e.arrownortheast = 8599; e.arrownorthwest = 8598; e.arrowrighttophalf = 8640; e.arrowrightbothalf = 8641; e.arrowsoutheast = 8600; e.arrowsouthwest = 8601; e.backslashbig = 8726; e.backslashBig = 8726; e.backslashBigg = 8726; e.backslashbigg = 8726; e.bardbl = 8214; e.bracehtipdownleft = 65079; e.bracehtipdownright = 65079; e.bracehtipupleft = 65080; e.bracehtipupright = 65080; e.braceleftBig = 123; e.braceleftbig = 123; e.braceleftbigg = 123; e.braceleftBigg = 123; e.bracerightBig = 125; e.bracerightbig = 125; e.bracerightbigg = 125; e.bracerightBigg = 125; e.bracketleftbig = 91; e.bracketleftBig = 91; e.bracketleftbigg = 91; e.bracketleftBigg = 91; e.bracketrightBig = 93; e.bracketrightbig = 93; e.bracketrightbigg = 93; e.bracketrightBigg = 93; e.ceilingleftbig = 8968; e.ceilingleftBig = 8968; e.ceilingleftBigg = 8968; e.ceilingleftbigg = 8968; e.ceilingrightbig = 8969; e.ceilingrightBig = 8969; e.ceilingrightbigg = 8969; e.ceilingrightBigg = 8969; e.circledotdisplay = 8857; e.circledottext = 8857; e.circlemultiplydisplay = 8855; e.circlemultiplytext = 8855; e.circleplusdisplay = 8853; e.circleplustext = 8853; e.contintegraldisplay = 8750; e.contintegraltext = 8750; e.coproductdisplay = 8720; e.coproducttext = 8720; e.floorleftBig = 8970; e.floorleftbig = 8970; e.floorleftbigg = 8970; e.floorleftBigg = 8970; e.floorrightbig = 8971; e.floorrightBig = 8971; e.floorrightBigg = 8971; e.floorrightbigg = 8971; e.hatwide = 770; e.hatwider = 770; e.hatwidest = 770; e.intercal = 7488; e.integraldisplay = 8747; e.integraltext = 8747; e.intersectiondisplay = 8898; e.intersectiontext = 8898; e.logicalanddisplay = 8743; e.logicalandtext = 8743; e.logicalordisplay = 8744; e.logicalortext = 8744; e.parenleftBig = 40; e.parenleftbig = 40; e.parenleftBigg = 40; e.parenleftbigg = 40; e.parenrightBig = 41; e.parenrightbig = 41; e.parenrightBigg = 41; e.parenrightbigg = 41; e.prime = 8242; e.productdisplay = 8719; e.producttext = 8719; e.radicalbig = 8730; e.radicalBig = 8730; e.radicalBigg = 8730; e.radicalbigg = 8730; e.radicalbt = 8730; e.radicaltp = 8730; e.radicalvertex = 8730; e.slashbig = 47; e.slashBig = 47; e.slashBigg = 47; e.slashbigg = 47; e.summationdisplay = 8721; e.summationtext = 8721; e.tildewide = 732; e.tildewider = 732; e.tildewidest = 732; e.uniondisplay = 8899; e.unionmultidisplay = 8846; e.unionmultitext = 8846; e.unionsqdisplay = 8852; e.unionsqtext = 8852; e.uniontext = 8899; e.vextenddouble = 8741; e.vextendsingle = 8739; })), Gi = getLookupTableFactory((function (e) { e.space = 32; e.a1 = 9985; e.a2 = 9986; e.a202 = 9987; e.a3 = 9988; e.a4 = 9742; e.a5 = 9990; e.a119 = 9991; e.a118 = 9992; e.a117 = 9993; e.a11 = 9755; e.a12 = 9758; e.a13 = 9996; e.a14 = 9997; e.a15 = 9998; e.a16 = 9999; e.a105 = 1e4; e.a17 = 10001; e.a18 = 10002; e.a19 = 10003; e.a20 = 10004; e.a21 = 10005; e.a22 = 10006; e.a23 = 10007; e.a24 = 10008; e.a25 = 10009; e.a26 = 10010; e.a27 = 10011; e.a28 = 10012; e.a6 = 10013; e.a7 = 10014; e.a8 = 10015; e.a9 = 10016; e.a10 = 10017; e.a29 = 10018; e.a30 = 10019; e.a31 = 10020; e.a32 = 10021; e.a33 = 10022; e.a34 = 10023; e.a35 = 9733; e.a36 = 10025; e.a37 = 10026; e.a38 = 10027; e.a39 = 10028; e.a40 = 10029; e.a41 = 10030; e.a42 = 10031; e.a43 = 10032; e.a44 = 10033; e.a45 = 10034; e.a46 = 10035; e.a47 = 10036; e.a48 = 10037; e.a49 = 10038; e.a50 = 10039; e.a51 = 10040; e.a52 = 10041; e.a53 = 10042; e.a54 = 10043; e.a55 = 10044; e.a56 = 10045; e.a57 = 10046; e.a58 = 10047; e.a59 = 10048; e.a60 = 10049; e.a61 = 10050; e.a62 = 10051; e.a63 = 10052; e.a64 = 10053; e.a65 = 10054; e.a66 = 10055; e.a67 = 10056; e.a68 = 10057; e.a69 = 10058; e.a70 = 10059; e.a71 = 9679; e.a72 = 10061; e.a73 = 9632; e.a74 = 10063; e.a203 = 10064; e.a75 = 10065; e.a204 = 10066; e.a76 = 9650; e.a77 = 9660; e.a78 = 9670; e.a79 = 10070; e.a81 = 9687; e.a82 = 10072; e.a83 = 10073; e.a84 = 10074; e.a97 = 10075; e.a98 = 10076; e.a99 = 10077; e.a100 = 10078; e.a101 = 10081; e.a102 = 10082; e.a103 = 10083; e.a104 = 10084; e.a106 = 10085; e.a107 = 10086; e.a108 = 10087; e.a112 = 9827; e.a111 = 9830; e.a110 = 9829; e.a109 = 9824; e.a120 = 9312; e.a121 = 9313; e.a122 = 9314; e.a123 = 9315; e.a124 = 9316; e.a125 = 9317; e.a126 = 9318; e.a127 = 9319; e.a128 = 9320; e.a129 = 9321; e.a130 = 10102; e.a131 = 10103; e.a132 = 10104; e.a133 = 10105; e.a134 = 10106; e.a135 = 10107; e.a136 = 10108; e.a137 = 10109; e.a138 = 10110; e.a139 = 10111; e.a140 = 10112; e.a141 = 10113; e.a142 = 10114; e.a143 = 10115; e.a144 = 10116; e.a145 = 10117; e.a146 = 10118; e.a147 = 10119; e.a148 = 10120; e.a149 = 10121; e.a150 = 10122; e.a151 = 10123; e.a152 = 10124; e.a153 = 10125; e.a154 = 10126; e.a155 = 10127; e.a156 = 10128; e.a157 = 10129; e.a158 = 10130; e.a159 = 10131; e.a160 = 10132; e.a161 = 8594; e.a163 = 8596; e.a164 = 8597; e.a196 = 10136; e.a165 = 10137; e.a192 = 10138; e.a166 = 10139; e.a167 = 10140; e.a168 = 10141; e.a169 = 10142; e.a170 = 10143; e.a171 = 10144; e.a172 = 10145; e.a173 = 10146; e.a162 = 10147; e.a174 = 10148; e.a175 = 10149; e.a176 = 10150; e.a177 = 10151; e.a178 = 10152; e.a179 = 10153; e.a193 = 10154; e.a180 = 10155; e.a199 = 10156; e.a181 = 10157; e.a200 = 10158; e.a182 = 10159; e.a201 = 10161; e.a183 = 10162; e.a184 = 10163; e.a197 = 10164; e.a185 = 10165; e.a194 = 10166; e.a198 = 10167; e.a186 = 10168; e.a195 = 10169; e.a187 = 10170; e.a188 = 10171; e.a189 = 10172; e.a190 = 10173; e.a191 = 10174; e.a89 = 10088; e.a90 = 10089; e.a93 = 10090; e.a94 = 10091; e.a91 = 10092; e.a92 = 10093; e.a205 = 10094; e.a85 = 10095; e.a206 = 10096; e.a86 = 10097; e.a87 = 10098; e.a88 = 10099; e.a95 = 10100; e.a96 = 10101; e[".notdef"] = 0; })), xi = getLookupTableFactory((function (e) { e[63721] = 169; e[63193] = 169; e[63720] = 174; e[63194] = 174; e[63722] = 8482; e[63195] = 8482; e[63729] = 9127; e[63730] = 9128; e[63731] = 9129; e[63740] = 9131; e[63741] = 9132; e[63742] = 9133; e[63726] = 9121; e[63727] = 9122; e[63728] = 9123; e[63737] = 9124; e[63738] = 9125; e[63739] = 9126; e[63723] = 9115; e[63724] = 9116; e[63725] = 9117; e[63734] = 9118; e[63735] = 9119; e[63736] = 9120; })); function getUnicodeForGlyph(e, t) { var i = t[e]; if (void 0 !== i) return i; if (!e) return -1; if ("u" === e[0]) { var t_113 = e.length; var a_96; if (7 === t_113 && "n" === e[1] && "i" === e[2]) a_96 = e.substring(3); else { if (!(t_113 >= 5 && t_113 <= 7)) return -1; a_96 = e.substring(1); } if (a_96 === a_96.toUpperCase()) { i = parseInt(a_96, 16); if (i >= 0) return i; } } return -1; } var Mi = [[0, 127], [128, 255], [256, 383], [384, 591], [592, 687, 7424, 7551, 7552, 7615], [688, 767, 42752, 42783], [768, 879, 7616, 7679], [880, 1023], [11392, 11519], [1024, 1279, 1280, 1327, 11744, 11775, 42560, 42655], [1328, 1423], [1424, 1535], [42240, 42559], [1536, 1791, 1872, 1919], [1984, 2047], [2304, 2431], [2432, 2559], [2560, 2687], [2688, 2815], [2816, 2943], [2944, 3071], [3072, 3199], [3200, 3327], [3328, 3455], [3584, 3711], [3712, 3839], [4256, 4351, 11520, 11567], [6912, 7039], [4352, 4607], [7680, 7935, 11360, 11391, 42784, 43007], [7936, 8191], [8192, 8303, 11776, 11903], [8304, 8351], [8352, 8399], [8400, 8447], [8448, 8527], [8528, 8591], [8592, 8703, 10224, 10239, 10496, 10623, 11008, 11263], [8704, 8959, 10752, 11007, 10176, 10223, 10624, 10751], [8960, 9215], [9216, 9279], [9280, 9311], [9312, 9471], [9472, 9599], [9600, 9631], [9632, 9727], [9728, 9983], [9984, 10175], [12288, 12351], [12352, 12447], [12448, 12543, 12784, 12799], [12544, 12591, 12704, 12735], [12592, 12687], [43072, 43135], [12800, 13055], [13056, 13311], [44032, 55215], [55296, 57343], [67840, 67871], [19968, 40959, 11904, 12031, 12032, 12255, 12272, 12287, 13312, 19903, 131072, 173791, 12688, 12703], [57344, 63743], [12736, 12783, 63744, 64255, 194560, 195103], [64256, 64335], [64336, 65023], [65056, 65071], [65040, 65055], [65104, 65135], [65136, 65279], [65280, 65519], [65520, 65535], [3840, 4095], [1792, 1871], [1920, 1983], [3456, 3583], [4096, 4255], [4608, 4991, 4992, 5023, 11648, 11743], [5024, 5119], [5120, 5759], [5760, 5791], [5792, 5887], [6016, 6143], [6144, 6319], [10240, 10495], [40960, 42127], [5888, 5919, 5920, 5951, 5952, 5983, 5984, 6015], [66304, 66351], [66352, 66383], [66560, 66639], [118784, 119039, 119040, 119295, 119296, 119375], [119808, 120831], [1044480, 1048573], [65024, 65039, 917760, 917999], [917504, 917631], [6400, 6479], [6480, 6527], [6528, 6623], [6656, 6687], [11264, 11359], [11568, 11647], [19904, 19967], [43008, 43055], [65536, 65663, 65664, 65791, 65792, 65855], [65856, 65935], [66432, 66463], [66464, 66527], [66640, 66687], [66688, 66735], [67584, 67647], [68096, 68191], [119552, 119647], [73728, 74751, 74752, 74879], [119648, 119679], [7040, 7103], [7168, 7247], [7248, 7295], [43136, 43231], [43264, 43311], [43312, 43359], [43520, 43615], [65936, 65999], [66e3, 66047], [66208, 66271, 66176, 66207, 67872, 67903], [127024, 127135, 126976, 127023]]; function getUnicodeRangeFor(e, t) { if (t === void 0) { t = -1; } if (-1 !== t) { var i_101 = Mi[t]; for (var a_97 = 0, s_68 = i_101.length; a_97 < s_68; a_97 += 2) if (e >= i_101[a_97] && e <= i_101[a_97 + 1]) return t; } for (var t_114 = 0, i_102 = Mi.length; t_114 < i_102; t_114++) { var i_103 = Mi[t_114]; for (var a_98 = 0, s_69 = i_103.length; a_98 < s_69; a_98 += 2) if (e >= i_103[a_98] && e <= i_103[a_98 + 1]) return t_114; } return -1; } var Ji = new RegExp("^(\\s)|(\\p{Mn})|(\\p{Cf})$", "u"), Hi = new Map; var Yi = !0, vi = 1, Ki = 2, Ti = 4, qi = 32, Oi = [".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(e, t) { if (void 0 !== t[e]) return e; var i = getUnicodeForGlyph(e, t); if (-1 !== i) for (var e_135 in t) if (t[e_135] === i) return e_135; info("Unable to recover a standard glyph name for: " + e); return e; } function type1FontGlyphMapping(e, t, i) { var a = Object.create(null); var s, r, n; var o = !!(e.flags & Ti); if (e.isInternalFont) { n = t; for (r = 0; r < n.length; r++) { s = i.indexOf(n[r]); a[r] = s >= 0 ? s : 0; } } else if (e.baseEncodingName) { n = getEncoding(e.baseEncodingName); for (r = 0; r < n.length; r++) { s = i.indexOf(n[r]); a[r] = s >= 0 ? s : 0; } } else if (o) for (r in t) a[r] = t[r]; else { n = fi; for (r = 0; r < n.length; r++) { s = i.indexOf(n[r]); a[r] = s >= 0 ? s : 0; } } var g = e.differences; var c; if (g) for (r in g) { var e_136 = g[r]; s = i.indexOf(e_136); if (-1 === s) { c || (c = Ni()); var t_115 = recoverGlyphName(e_136, c); t_115 !== e_136 && (s = i.indexOf(t_115)); } a[r] = s >= 0 ? s : 0; } return a; } function normalizeFontName(e) { return e.replaceAll(/[,_]/g, "-").replaceAll(/\s/g, ""); } var Pi = getLookupTableFactory((function (e) { e["Times-Roman"] = "Times-Roman"; e.Helvetica = "Helvetica"; e.Courier = "Courier"; e.Symbol = "Symbol"; e["Times-Bold"] = "Times-Bold"; e["Helvetica-Bold"] = "Helvetica-Bold"; e["Courier-Bold"] = "Courier-Bold"; e.ZapfDingbats = "ZapfDingbats"; e["Times-Italic"] = "Times-Italic"; e["Helvetica-Oblique"] = "Helvetica-Oblique"; e["Courier-Oblique"] = "Courier-Oblique"; e["Times-BoldItalic"] = "Times-BoldItalic"; e["Helvetica-BoldOblique"] = "Helvetica-BoldOblique"; e["Courier-BoldOblique"] = "Courier-BoldOblique"; e.ArialNarrow = "Helvetica"; e["ArialNarrow-Bold"] = "Helvetica-Bold"; e["ArialNarrow-BoldItalic"] = "Helvetica-BoldOblique"; e["ArialNarrow-Italic"] = "Helvetica-Oblique"; e.ArialBlack = "Helvetica"; e["ArialBlack-Bold"] = "Helvetica-Bold"; e["ArialBlack-BoldItalic"] = "Helvetica-BoldOblique"; e["ArialBlack-Italic"] = "Helvetica-Oblique"; e["Arial-Black"] = "Helvetica"; e["Arial-Black-Bold"] = "Helvetica-Bold"; e["Arial-Black-BoldItalic"] = "Helvetica-BoldOblique"; e["Arial-Black-Italic"] = "Helvetica-Oblique"; e.Arial = "Helvetica"; e["Arial-Bold"] = "Helvetica-Bold"; e["Arial-BoldItalic"] = "Helvetica-BoldOblique"; e["Arial-Italic"] = "Helvetica-Oblique"; e.ArialMT = "Helvetica"; e["Arial-BoldItalicMT"] = "Helvetica-BoldOblique"; e["Arial-BoldMT"] = "Helvetica-Bold"; e["Arial-ItalicMT"] = "Helvetica-Oblique"; e["Arial-BoldItalicMT-BoldItalic"] = "Helvetica-BoldOblique"; e["Arial-BoldMT-Bold"] = "Helvetica-Bold"; e["Arial-ItalicMT-Italic"] = "Helvetica-Oblique"; e.ArialUnicodeMS = "Helvetica"; e["ArialUnicodeMS-Bold"] = "Helvetica-Bold"; e["ArialUnicodeMS-BoldItalic"] = "Helvetica-BoldOblique"; e["ArialUnicodeMS-Italic"] = "Helvetica-Oblique"; e["Courier-BoldItalic"] = "Courier-BoldOblique"; e["Courier-Italic"] = "Courier-Oblique"; e.CourierNew = "Courier"; e["CourierNew-Bold"] = "Courier-Bold"; e["CourierNew-BoldItalic"] = "Courier-BoldOblique"; e["CourierNew-Italic"] = "Courier-Oblique"; e["CourierNewPS-BoldItalicMT"] = "Courier-BoldOblique"; e["CourierNewPS-BoldMT"] = "Courier-Bold"; e["CourierNewPS-ItalicMT"] = "Courier-Oblique"; e.CourierNewPSMT = "Courier"; e["Helvetica-BoldItalic"] = "Helvetica-BoldOblique"; e["Helvetica-Italic"] = "Helvetica-Oblique"; e["Symbol-Bold"] = "Symbol"; e["Symbol-BoldItalic"] = "Symbol"; e["Symbol-Italic"] = "Symbol"; e.TimesNewRoman = "Times-Roman"; e["TimesNewRoman-Bold"] = "Times-Bold"; e["TimesNewRoman-BoldItalic"] = "Times-BoldItalic"; e["TimesNewRoman-Italic"] = "Times-Italic"; e.TimesNewRomanPS = "Times-Roman"; e["TimesNewRomanPS-Bold"] = "Times-Bold"; e["TimesNewRomanPS-BoldItalic"] = "Times-BoldItalic"; e["TimesNewRomanPS-BoldItalicMT"] = "Times-BoldItalic"; e["TimesNewRomanPS-BoldMT"] = "Times-Bold"; e["TimesNewRomanPS-Italic"] = "Times-Italic"; e["TimesNewRomanPS-ItalicMT"] = "Times-Italic"; e.TimesNewRomanPSMT = "Times-Roman"; e["TimesNewRomanPSMT-Bold"] = "Times-Bold"; e["TimesNewRomanPSMT-BoldItalic"] = "Times-BoldItalic"; e["TimesNewRomanPSMT-Italic"] = "Times-Italic"; })), Wi = getLookupTableFactory((function (e) { e.Courier = "FoxitFixed.pfb"; e["Courier-Bold"] = "FoxitFixedBold.pfb"; e["Courier-BoldOblique"] = "FoxitFixedBoldItalic.pfb"; e["Courier-Oblique"] = "FoxitFixedItalic.pfb"; e.Helvetica = "LiberationSans-Regular.ttf"; e["Helvetica-Bold"] = "LiberationSans-Bold.ttf"; e["Helvetica-BoldOblique"] = "LiberationSans-BoldItalic.ttf"; e["Helvetica-Oblique"] = "LiberationSans-Italic.ttf"; e["Times-Roman"] = "FoxitSerif.pfb"; e["Times-Bold"] = "FoxitSerifBold.pfb"; e["Times-BoldItalic"] = "FoxitSerifBoldItalic.pfb"; e["Times-Italic"] = "FoxitSerifItalic.pfb"; e.Symbol = "FoxitSymbol.pfb"; e.ZapfDingbats = "FoxitDingbats.pfb"; e["LiberationSans-Regular"] = "LiberationSans-Regular.ttf"; e["LiberationSans-Bold"] = "LiberationSans-Bold.ttf"; e["LiberationSans-Italic"] = "LiberationSans-Italic.ttf"; e["LiberationSans-BoldItalic"] = "LiberationSans-BoldItalic.ttf"; })), Xi = getLookupTableFactory((function (e) { e.Calibri = "Helvetica"; e["Calibri-Bold"] = "Helvetica-Bold"; e["Calibri-BoldItalic"] = "Helvetica-BoldOblique"; e["Calibri-Italic"] = "Helvetica-Oblique"; e.CenturyGothic = "Helvetica"; e["CenturyGothic-Bold"] = "Helvetica-Bold"; e["CenturyGothic-BoldItalic"] = "Helvetica-BoldOblique"; e["CenturyGothic-Italic"] = "Helvetica-Oblique"; e.ComicSansMS = "Comic Sans MS"; e["ComicSansMS-Bold"] = "Comic Sans MS-Bold"; e["ComicSansMS-BoldItalic"] = "Comic Sans MS-BoldItalic"; e["ComicSansMS-Italic"] = "Comic Sans MS-Italic"; e.Impact = "Helvetica"; e["ItcSymbol-Bold"] = "Helvetica-Bold"; e["ItcSymbol-BoldItalic"] = "Helvetica-BoldOblique"; e["ItcSymbol-Book"] = "Helvetica"; e["ItcSymbol-BookItalic"] = "Helvetica-Oblique"; e["ItcSymbol-Medium"] = "Helvetica"; e["ItcSymbol-MediumItalic"] = "Helvetica-Oblique"; e.LucidaConsole = "Courier"; e["LucidaConsole-Bold"] = "Courier-Bold"; e["LucidaConsole-BoldItalic"] = "Courier-BoldOblique"; e["LucidaConsole-Italic"] = "Courier-Oblique"; e["LucidaSans-Demi"] = "Helvetica-Bold"; e["MS-Gothic"] = "MS Gothic"; e["MS-Gothic-Bold"] = "MS Gothic-Bold"; e["MS-Gothic-BoldItalic"] = "MS Gothic-BoldItalic"; e["MS-Gothic-Italic"] = "MS Gothic-Italic"; e["MS-Mincho"] = "MS Mincho"; e["MS-Mincho-Bold"] = "MS Mincho-Bold"; e["MS-Mincho-BoldItalic"] = "MS Mincho-BoldItalic"; e["MS-Mincho-Italic"] = "MS Mincho-Italic"; e["MS-PGothic"] = "MS PGothic"; e["MS-PGothic-Bold"] = "MS PGothic-Bold"; e["MS-PGothic-BoldItalic"] = "MS PGothic-BoldItalic"; e["MS-PGothic-Italic"] = "MS PGothic-Italic"; e["MS-PMincho"] = "MS PMincho"; e["MS-PMincho-Bold"] = "MS PMincho-Bold"; e["MS-PMincho-BoldItalic"] = "MS PMincho-BoldItalic"; e["MS-PMincho-Italic"] = "MS PMincho-Italic"; e.NuptialScript = "Times-Italic"; e.SegoeUISymbol = "Helvetica"; })), ji = getLookupTableFactory((function (e) { e["Adobe Jenson"] = !0; e["Adobe Text"] = !0; e.Albertus = !0; e.Aldus = !0; e.Alexandria = !0; e.Algerian = !0; e["American Typewriter"] = !0; e.Antiqua = !0; e.Apex = !0; e.Arno = !0; e.Aster = !0; e.Aurora = !0; e.Baskerville = !0; e.Bell = !0; e.Bembo = !0; e["Bembo Schoolbook"] = !0; e.Benguiat = !0; e["Berkeley Old Style"] = !0; e["Bernhard Modern"] = !0; e["Berthold City"] = !0; e.Bodoni = !0; e["Bauer Bodoni"] = !0; e["Book Antiqua"] = !0; e.Bookman = !0; e["Bordeaux Roman"] = !0; e["Californian FB"] = !0; e.Calisto = !0; e.Calvert = !0; e.Capitals = !0; e.Cambria = !0; e.Cartier = !0; e.Caslon = !0; e.Catull = !0; e.Centaur = !0; e["Century Old Style"] = !0; e["Century Schoolbook"] = !0; e.Chaparral = !0; e["Charis SIL"] = !0; e.Cheltenham = !0; e["Cholla Slab"] = !0; e.Clarendon = !0; e.Clearface = !0; e.Cochin = !0; e.Colonna = !0; e["Computer Modern"] = !0; e["Concrete Roman"] = !0; e.Constantia = !0; e["Cooper Black"] = !0; e.Corona = !0; e.Ecotype = !0; e.Egyptienne = !0; e.Elephant = !0; e.Excelsior = !0; e.Fairfield = !0; e["FF Scala"] = !0; e.Folkard = !0; e.Footlight = !0; e.FreeSerif = !0; e["Friz Quadrata"] = !0; e.Garamond = !0; e.Gentium = !0; e.Georgia = !0; e.Gloucester = !0; e["Goudy Old Style"] = !0; e["Goudy Schoolbook"] = !0; e["Goudy Pro Font"] = !0; e.Granjon = !0; e["Guardian Egyptian"] = !0; e.Heather = !0; e.Hercules = !0; e["High Tower Text"] = !0; e.Hiroshige = !0; e["Hoefler Text"] = !0; e["Humana Serif"] = !0; e.Imprint = !0; e["Ionic No. 5"] = !0; e.Janson = !0; e.Joanna = !0; e.Korinna = !0; e.Lexicon = !0; e.LiberationSerif = !0; e["Liberation Serif"] = !0; e["Linux Libertine"] = !0; e.Literaturnaya = !0; e.Lucida = !0; e["Lucida Bright"] = !0; e.Melior = !0; e.Memphis = !0; e.Miller = !0; e.Minion = !0; e.Modern = !0; e["Mona Lisa"] = !0; e["Mrs Eaves"] = !0; e["MS Serif"] = !0; e["Museo Slab"] = !0; e["New York"] = !0; e["Nimbus Roman"] = !0; e["NPS Rawlinson Roadway"] = !0; e.NuptialScript = !0; e.Palatino = !0; e.Perpetua = !0; e.Plantin = !0; e["Plantin Schoolbook"] = !0; e.Playbill = !0; e["Poor Richard"] = !0; e["Rawlinson Roadway"] = !0; e.Renault = !0; e.Requiem = !0; e.Rockwell = !0; e.Roman = !0; e["Rotis Serif"] = !0; e.Sabon = !0; e.Scala = !0; e.Seagull = !0; e.Sistina = !0; e.Souvenir = !0; e.STIX = !0; e["Stone Informal"] = !0; e["Stone Serif"] = !0; e.Sylfaen = !0; e.Times = !0; e.Trajan = !0; e["Trinité"] = !0; e["Trump Mediaeval"] = !0; e.Utopia = !0; e["Vale Type"] = !0; e["Bitstream Vera"] = !0; e["Vera Serif"] = !0; e.Versailles = !0; e.Wanted = !0; e.Weiss = !0; e["Wide Latin"] = !0; e.Windsor = !0; e.XITS = !0; })), Zi = getLookupTableFactory((function (e) { e.Dingbats = !0; e.Symbol = !0; e.ZapfDingbats = !0; e.Wingdings = !0; e["Wingdings-Bold"] = !0; e["Wingdings-Regular"] = !0; })), Vi = getLookupTableFactory((function (e) { e[2] = 10; e[3] = 32; e[4] = 33; e[5] = 34; e[6] = 35; e[7] = 36; e[8] = 37; e[9] = 38; e[10] = 39; e[11] = 40; e[12] = 41; e[13] = 42; e[14] = 43; e[15] = 44; e[16] = 45; e[17] = 46; e[18] = 47; e[19] = 48; e[20] = 49; e[21] = 50; e[22] = 51; e[23] = 52; e[24] = 53; e[25] = 54; e[26] = 55; e[27] = 56; e[28] = 57; e[29] = 58; e[30] = 894; e[31] = 60; e[32] = 61; e[33] = 62; e[34] = 63; e[35] = 64; e[36] = 65; e[37] = 66; e[38] = 67; e[39] = 68; e[40] = 69; e[41] = 70; e[42] = 71; e[43] = 72; e[44] = 73; e[45] = 74; e[46] = 75; e[47] = 76; e[48] = 77; e[49] = 78; e[50] = 79; e[51] = 80; e[52] = 81; e[53] = 82; e[54] = 83; e[55] = 84; e[56] = 85; e[57] = 86; e[58] = 87; e[59] = 88; e[60] = 89; e[61] = 90; e[62] = 91; e[63] = 92; e[64] = 93; e[65] = 94; e[66] = 95; e[67] = 96; e[68] = 97; e[69] = 98; e[70] = 99; e[71] = 100; e[72] = 101; e[73] = 102; e[74] = 103; e[75] = 104; e[76] = 105; e[77] = 106; e[78] = 107; e[79] = 108; e[80] = 109; e[81] = 110; e[82] = 111; e[83] = 112; e[84] = 113; e[85] = 114; e[86] = 115; e[87] = 116; e[88] = 117; e[89] = 118; e[90] = 119; e[91] = 120; e[92] = 121; e[93] = 122; e[94] = 123; e[95] = 124; e[96] = 125; e[97] = 126; e[98] = 196; e[99] = 197; e[100] = 199; e[101] = 201; e[102] = 209; e[103] = 214; e[104] = 220; e[105] = 225; e[106] = 224; e[107] = 226; e[108] = 228; e[109] = 227; e[110] = 229; e[111] = 231; e[112] = 233; e[113] = 232; e[114] = 234; e[115] = 235; e[116] = 237; e[117] = 236; e[118] = 238; e[119] = 239; e[120] = 241; e[121] = 243; e[122] = 242; e[123] = 244; e[124] = 246; e[125] = 245; e[126] = 250; e[127] = 249; e[128] = 251; e[129] = 252; e[130] = 8224; e[131] = 176; e[132] = 162; e[133] = 163; e[134] = 167; e[135] = 8226; e[136] = 182; e[137] = 223; e[138] = 174; e[139] = 169; e[140] = 8482; e[141] = 180; e[142] = 168; e[143] = 8800; e[144] = 198; e[145] = 216; e[146] = 8734; e[147] = 177; e[148] = 8804; e[149] = 8805; e[150] = 165; e[151] = 181; e[152] = 8706; e[153] = 8721; e[154] = 8719; e[156] = 8747; e[157] = 170; e[158] = 186; e[159] = 8486; e[160] = 230; e[161] = 248; e[162] = 191; e[163] = 161; e[164] = 172; e[165] = 8730; e[166] = 402; e[167] = 8776; e[168] = 8710; e[169] = 171; e[170] = 187; e[171] = 8230; e[179] = 8220; e[180] = 8221; e[181] = 8216; e[182] = 8217; e[200] = 193; e[203] = 205; e[207] = 211; e[210] = 218; e[223] = 711; e[224] = 321; e[225] = 322; e[226] = 352; e[227] = 353; e[228] = 381; e[229] = 382; e[233] = 221; e[234] = 253; e[252] = 263; e[253] = 268; e[254] = 269; e[258] = 258; e[260] = 260; e[261] = 261; e[265] = 280; e[266] = 281; e[267] = 282; e[268] = 283; e[269] = 313; e[275] = 323; e[276] = 324; e[278] = 328; e[283] = 344; e[284] = 345; e[285] = 346; e[286] = 347; e[292] = 367; e[295] = 377; e[296] = 378; e[298] = 380; e[305] = 963; e[306] = 964; e[307] = 966; e[308] = 8215; e[309] = 8252; e[310] = 8319; e[311] = 8359; e[312] = 8592; e[313] = 8593; e[337] = 9552; e[493] = 1039; e[494] = 1040; e[672] = 1488; e[673] = 1489; e[674] = 1490; e[675] = 1491; e[676] = 1492; e[677] = 1493; e[678] = 1494; e[679] = 1495; e[680] = 1496; e[681] = 1497; e[682] = 1498; e[683] = 1499; e[684] = 1500; e[685] = 1501; e[686] = 1502; e[687] = 1503; e[688] = 1504; e[689] = 1505; e[690] = 1506; e[691] = 1507; e[692] = 1508; e[693] = 1509; e[694] = 1510; e[695] = 1511; e[696] = 1512; e[697] = 1513; e[698] = 1514; e[705] = 1524; e[706] = 8362; e[710] = 64288; e[711] = 64298; e[759] = 1617; e[761] = 1776; e[763] = 1778; e[775] = 1652; e[777] = 1764; e[778] = 1780; e[779] = 1781; e[780] = 1782; e[782] = 771; e[783] = 64726; e[786] = 8363; e[788] = 8532; e[790] = 768; e[791] = 769; e[792] = 768; e[795] = 803; e[797] = 64336; e[798] = 64337; e[799] = 64342; e[800] = 64343; e[801] = 64344; e[802] = 64345; e[803] = 64362; e[804] = 64363; e[805] = 64364; e[2424] = 7821; e[2425] = 7822; e[2426] = 7823; e[2427] = 7824; e[2428] = 7825; e[2429] = 7826; e[2430] = 7827; e[2433] = 7682; e[2678] = 8045; e[2679] = 8046; e[2830] = 1552; e[2838] = 686; e[2840] = 751; e[2842] = 753; e[2843] = 754; e[2844] = 755; e[2846] = 757; e[2856] = 767; e[2857] = 848; e[2858] = 849; e[2862] = 853; e[2863] = 854; e[2864] = 855; e[2865] = 861; e[2866] = 862; e[2906] = 7460; e[2908] = 7462; e[2909] = 7463; e[2910] = 7464; e[2912] = 7466; e[2913] = 7467; e[2914] = 7468; e[2916] = 7470; e[2917] = 7471; e[2918] = 7472; e[2920] = 7474; e[2921] = 7475; e[2922] = 7476; e[2924] = 7478; e[2925] = 7479; e[2926] = 7480; e[2928] = 7482; e[2929] = 7483; e[2930] = 7484; e[2932] = 7486; e[2933] = 7487; e[2934] = 7488; e[2936] = 7490; e[2937] = 7491; e[2938] = 7492; e[2940] = 7494; e[2941] = 7495; e[2942] = 7496; e[2944] = 7498; e[2946] = 7500; e[2948] = 7502; e[2950] = 7504; e[2951] = 7505; e[2952] = 7506; e[2954] = 7508; e[2955] = 7509; e[2956] = 7510; e[2958] = 7512; e[2959] = 7513; e[2960] = 7514; e[2962] = 7516; e[2963] = 7517; e[2964] = 7518; e[2966] = 7520; e[2967] = 7521; e[2968] = 7522; e[2970] = 7524; e[2971] = 7525; e[2972] = 7526; e[2974] = 7528; e[2975] = 7529; e[2976] = 7530; e[2978] = 1537; e[2979] = 1538; e[2980] = 1539; e[2982] = 1549; e[2983] = 1551; e[2984] = 1552; e[2986] = 1554; e[2987] = 1555; e[2988] = 1556; e[2990] = 1623; e[2991] = 1624; e[2995] = 1775; e[2999] = 1791; e[3002] = 64290; e[3003] = 64291; e[3004] = 64292; e[3006] = 64294; e[3007] = 64295; e[3008] = 64296; e[3011] = 1900; e[3014] = 8223; e[3015] = 8244; e[3017] = 7532; e[3018] = 7533; e[3019] = 7534; e[3075] = 7590; e[3076] = 7591; e[3079] = 7594; e[3080] = 7595; e[3083] = 7598; e[3084] = 7599; e[3087] = 7602; e[3088] = 7603; e[3091] = 7606; e[3092] = 7607; e[3095] = 7610; e[3096] = 7611; e[3099] = 7614; e[3100] = 7615; e[3103] = 7618; e[3104] = 7619; e[3107] = 8337; e[3108] = 8338; e[3116] = 1884; e[3119] = 1885; e[3120] = 1885; e[3123] = 1886; e[3124] = 1886; e[3127] = 1887; e[3128] = 1887; e[3131] = 1888; e[3132] = 1888; e[3135] = 1889; e[3136] = 1889; e[3139] = 1890; e[3140] = 1890; e[3143] = 1891; e[3144] = 1891; e[3147] = 1892; e[3148] = 1892; e[3153] = 580; e[3154] = 581; e[3157] = 584; e[3158] = 585; e[3161] = 588; e[3162] = 589; e[3165] = 891; e[3166] = 892; e[3169] = 1274; e[3170] = 1275; e[3173] = 1278; e[3174] = 1279; e[3181] = 7622; e[3182] = 7623; e[3282] = 11799; e[3316] = 578; e[3379] = 42785; e[3393] = 1159; e[3416] = 8377; })), zi = getLookupTableFactory((function (e) { e[227] = 322; e[264] = 261; e[291] = 346; })), _i = getLookupTableFactory((function (e) { e[1] = 32; e[4] = 65; e[5] = 192; e[6] = 193; e[9] = 196; e[17] = 66; e[18] = 67; e[21] = 268; e[24] = 68; e[28] = 69; e[29] = 200; e[30] = 201; e[32] = 282; e[38] = 70; e[39] = 71; e[44] = 72; e[47] = 73; e[48] = 204; e[49] = 205; e[58] = 74; e[60] = 75; e[62] = 76; e[68] = 77; e[69] = 78; e[75] = 79; e[76] = 210; e[80] = 214; e[87] = 80; e[89] = 81; e[90] = 82; e[92] = 344; e[94] = 83; e[97] = 352; e[100] = 84; e[104] = 85; e[109] = 220; e[115] = 86; e[116] = 87; e[121] = 88; e[122] = 89; e[124] = 221; e[127] = 90; e[129] = 381; e[258] = 97; e[259] = 224; e[260] = 225; e[263] = 228; e[268] = 261; e[271] = 98; e[272] = 99; e[273] = 263; e[275] = 269; e[282] = 100; e[286] = 101; e[287] = 232; e[288] = 233; e[290] = 283; e[295] = 281; e[296] = 102; e[336] = 103; e[346] = 104; e[349] = 105; e[350] = 236; e[351] = 237; e[361] = 106; e[364] = 107; e[367] = 108; e[371] = 322; e[373] = 109; e[374] = 110; e[381] = 111; e[382] = 242; e[383] = 243; e[386] = 246; e[393] = 112; e[395] = 113; e[396] = 114; e[398] = 345; e[400] = 115; e[401] = 347; e[403] = 353; e[410] = 116; e[437] = 117; e[442] = 252; e[448] = 118; e[449] = 119; e[454] = 120; e[455] = 121; e[457] = 253; e[460] = 122; e[462] = 382; e[463] = 380; e[853] = 44; e[855] = 58; e[856] = 46; e[876] = 47; e[878] = 45; e[882] = 45; e[894] = 40; e[895] = 41; e[896] = 91; e[897] = 93; e[923] = 64; e[1004] = 48; e[1005] = 49; e[1006] = 50; e[1007] = 51; e[1008] = 52; e[1009] = 53; e[1010] = 54; e[1011] = 55; e[1012] = 56; e[1013] = 57; e[1081] = 37; e[1085] = 43; e[1086] = 45; })); function getStandardFontName(e) { var t = normalizeFontName(e); return Pi()[t]; } function isKnownFontName(e) { var t = normalizeFontName(e); return !!(Pi()[t] || Xi()[t] || ji()[t] || Zi()[t]); } var ToUnicodeMap = /** @class */ (function () { function ToUnicodeMap(e) { if (e === void 0) { e = []; } this._map = e; } Object.defineProperty(ToUnicodeMap.prototype, "length", { get: function () { return this._map.length; }, enumerable: false, configurable: true }); ToUnicodeMap.prototype.forEach = function (e) { for (var t_116 in this._map) e(t_116, this._map[t_116].charCodeAt(0)); }; ToUnicodeMap.prototype.has = function (e) { return void 0 !== this._map[e]; }; ToUnicodeMap.prototype.get = function (e) { return this._map[e]; }; ToUnicodeMap.prototype.charCodeOf = function (e) { var t = this._map; if (t.length <= 65536) return t.indexOf(e); for (var i_104 in t) if (t[i_104] === e) return 0 | i_104; return -1; }; ToUnicodeMap.prototype.amend = function (e) { for (var t_117 in e) this._map[t_117] = e[t_117]; }; return ToUnicodeMap; }()); var IdentityToUnicodeMap = /** @class */ (function () { function IdentityToUnicodeMap(e, t) { this.firstChar = e; this.lastChar = t; } Object.defineProperty(IdentityToUnicodeMap.prototype, "length", { get: function () { return this.lastChar + 1 - this.firstChar; }, enumerable: false, configurable: true }); IdentityToUnicodeMap.prototype.forEach = function (e) { for (var t_118 = this.firstChar, i_105 = this.lastChar; t_118 <= i_105; t_118++) e(t_118, t_118); }; IdentityToUnicodeMap.prototype.has = function (e) { return this.firstChar <= e && e <= this.lastChar; }; IdentityToUnicodeMap.prototype.get = function (e) { if (this.firstChar <= e && e <= this.lastChar) return String.fromCharCode(e); }; IdentityToUnicodeMap.prototype.charCodeOf = function (e) { return Number.isInteger(e) && e >= this.firstChar && e <= this.lastChar ? e : -1; }; IdentityToUnicodeMap.prototype.amend = function (e) { unreachable("Should not call amend()"); }; return IdentityToUnicodeMap; }()); var CFFFont = /** @class */ (function () { function CFFFont(e, t) { this.properties = t; var i = new CFFParser(e, t, Yi); this.cff = i.parse(); this.cff.duplicateFirstGlyph(); var a = new CFFCompiler(this.cff); this.seacs = this.cff.seacs; try { this.data = a.compile(); } catch (_b) { warn("Failed to compile font " + t.loadedName); this.data = e; } this._createBuiltInEncoding(); } Object.defineProperty(CFFFont.prototype, "numGlyphs", { get: function () { return this.cff.charStrings.count; }, enumerable: false, configurable: true }); CFFFont.prototype.getCharset = function () { return this.cff.charset.charset; }; CFFFont.prototype.getGlyphMapping = function () { var e = this.cff, t = this.properties, i = t.cidToGidMap, a = t.cMap, s = e.charset.charset; var r, n; if (t.composite) { var t_119, o_24; if ((i === null || i === void 0 ? void 0 : i.length) > 0) { t_119 = Object.create(null); for (var e_137 = 0, a_99 = i.length; e_137 < a_99; e_137++) { var a_100 = i[e_137]; void 0 !== a_100 && (t_119[a_100] = e_137); } } r = Object.create(null); if (e.isCIDFont) for (n = 0; n < s.length; n++) { var e_138 = s[n]; o_24 = a.charCodeOf(e_138); void 0 !== (t_119 === null || t_119 === void 0 ? void 0 : t_119[o_24]) && (o_24 = t_119[o_24]); r[o_24] = n; } else for (n = 0; n < e.charStrings.count; n++) { o_24 = a.charCodeOf(n); r[o_24] = n; } return r; } var o = e.encoding ? e.encoding.encoding : null; t.isInternalFont && (o = t.defaultEncoding); r = type1FontGlyphMapping(t, o, s); return r; }; CFFFont.prototype.hasGlyphId = function (e) { return this.cff.hasGlyphId(e); }; CFFFont.prototype._createBuiltInEncoding = function () { var _b = this.cff, e = _b.charset, t = _b.encoding; if (!e || !t) return; var i = e.charset, a = t.encoding, s = []; for (var e_139 in a) { var t_120 = a[e_139]; if (t_120 >= 0) { var a_101 = i[t_120]; a_101 && (s[e_139] = a_101); } } s.length > 0 && (this.properties.builtInEncoding = s); }; return CFFFont; }()); function getUint32(e, t) { return (e[t] << 24 | e[t + 1] << 16 | e[t + 2] << 8 | e[t + 3]) >>> 0; } function getUint16(e, t) { return e[t] << 8 | e[t + 1]; } function getInt16(e, t) { return (e[t] << 24 | e[t + 1] << 16) >> 16; } function getInt8(e, t) { return e[t] << 24 >> 24; } function getFloat214(e, t) { return getInt16(e, t) / 16384; } function getSubroutineBias(e) { var t = e.length; var i = 32768; t < 1240 ? i = 107 : t < 33900 && (i = 1131); return i; } function parseCmap(e, t, i) { var a = 1 === getUint16(e, t + 2) ? getUint32(e, t + 8) : getUint32(e, t + 16), s = getUint16(e, t + a); var r, n, o; if (4 === s) { getUint16(e, t + a + 2); var i_106 = getUint16(e, t + a + 6) >> 1; n = t + a + 14; r = []; for (o = 0; o < i_106; o++, n += 2) r[o] = { end: getUint16(e, n) }; n += 2; for (o = 0; o < i_106; o++, n += 2) r[o].start = getUint16(e, n); for (o = 0; o < i_106; o++, n += 2) r[o].idDelta = getUint16(e, n); for (o = 0; o < i_106; o++, n += 2) { var t_121 = getUint16(e, n); if (0 !== t_121) { r[o].ids = []; for (var i_107 = 0, a_102 = r[o].end - r[o].start + 1; i_107 < a_102; i_107++) { r[o].ids[i_107] = getUint16(e, n + t_121); t_121 += 2; } } } return r; } if (12 === s) { var i_108 = getUint32(e, t + a + 12); n = t + a + 16; r = []; for (o = 0; o < i_108; o++) { t = getUint32(e, n); r.push({ start: t, end: getUint32(e, n + 4), idDelta: getUint32(e, n + 8) - t }); n += 12; } return r; } throw new FormatError("unsupported cmap: ".concat(s)); } function parseCff(e, t, i, a) { var _b, _h, _j; var s = new CFFParser(new Stream(e, t, i - t), {}, a).parse(); return { glyphs: s.charStrings.objects, subrs: (_h = (_b = s.topDict.privateDict) === null || _b === void 0 ? void 0 : _b.subrsIndex) === null || _h === void 0 ? void 0 : _h.objects, gsubrs: (_j = s.globalSubrIndex) === null || _j === void 0 ? void 0 : _j.objects, isCFFCIDFont: s.isCIDFont, fdSelect: s.fdSelect, fdArray: s.fdArray }; } function lookupCmap(e, t) { var i = t.codePointAt(0); var a = 0, s = 0, r = e.length - 1; for (; s < r;) { var t_122 = s + r + 1 >> 1; i < e[t_122].start ? r = t_122 - 1 : s = t_122; } e[s].start <= i && i <= e[s].end && (a = e[s].idDelta + (e[s].ids ? e[s].ids[i - e[s].start] : i) & 65535); return { charCode: i, glyphId: a }; } function compileGlyf(e, t, i) { function moveTo(e, i) { t.add(ht, [e, i]); } function lineTo(e, i) { t.add(lt, [e, i]); } function quadraticCurveTo(e, i, a, s) { t.add(Ct, [e, i, a, s]); } var a = 0; var s = getInt16(e, a); var r, n = 0, o = 0; a += 10; if (s < 0) do { r = getUint16(e, a); var s_70 = getUint16(e, a + 2); a += 4; var g_16 = void 0, c_8 = void 0; if (1 & r) { if (2 & r) { g_16 = getInt16(e, a); c_8 = getInt16(e, a + 2); } else { g_16 = getUint16(e, a); c_8 = getUint16(e, a + 2); } a += 4; } else if (2 & r) { g_16 = getInt8(e, a++); c_8 = getInt8(e, a++); } else { g_16 = e[a++]; c_8 = e[a++]; } if (2 & r) { n = g_16; o = c_8; } else { n = 0; o = 0; } var h_5 = 1, l_7 = 1, C_8 = 0, Q_9 = 0; if (8 & r) { h_5 = l_7 = getFloat214(e, a); a += 2; } else if (64 & r) { h_5 = getFloat214(e, a); l_7 = getFloat214(e, a + 2); a += 4; } else if (128 & r) { h_5 = getFloat214(e, a); C_8 = getFloat214(e, a + 2); Q_9 = getFloat214(e, a + 4); l_7 = getFloat214(e, a + 6); a += 8; } var E_7 = i.glyphs[s_70]; if (E_7) { t.add(Qt); t.add(ut, [h_5, C_8, Q_9, l_7, n, o]); compileGlyf(E_7, t, i); t.add(Bt); } } while (32 & r); else { var t_123 = []; var i_109, g_17; for (i_109 = 0; i_109 < s; i_109++) { t_123.push(getUint16(e, a)); a += 2; } a += 2 + getUint16(e, a); var c_9 = t_123.at(-1) + 1, h_6 = []; for (; h_6.length < c_9;) { r = e[a++]; var t_124 = 1; 8 & r && (t_124 += e[a++]); for (; t_124-- > 0;) h_6.push({ flags: r }); } for (i_109 = 0; i_109 < c_9; i_109++) { switch (18 & h_6[i_109].flags) { case 0: n += getInt16(e, a); a += 2; break; case 2: n -= e[a++]; break; case 18: n += e[a++]; } h_6[i_109].x = n; } for (i_109 = 0; i_109 < c_9; i_109++) { switch (36 & h_6[i_109].flags) { case 0: o += getInt16(e, a); a += 2; break; case 4: o -= e[a++]; break; case 36: o += e[a++]; } h_6[i_109].y = o; } var l_8 = 0; for (a = 0; a < s; a++) { var e_140 = t_123[a], s_71 = h_6.slice(l_8, e_140 + 1); if (1 & s_71[0].flags) s_71.push(s_71[0]); else if (1 & s_71.at(-1).flags) s_71.unshift(s_71.at(-1)); else { var e_141 = { flags: 1, x: (s_71[0].x + s_71.at(-1).x) / 2, y: (s_71[0].y + s_71.at(-1).y) / 2 }; s_71.unshift(e_141); s_71.push(e_141); } moveTo(s_71[0].x, s_71[0].y); for (i_109 = 1, g_17 = s_71.length; i_109 < g_17; i_109++) if (1 & s_71[i_109].flags) lineTo(s_71[i_109].x, s_71[i_109].y); else if (1 & s_71[i_109 + 1].flags) { quadraticCurveTo(s_71[i_109].x, s_71[i_109].y, s_71[i_109 + 1].x, s_71[i_109 + 1].y); i_109++; } else quadraticCurveTo(s_71[i_109].x, s_71[i_109].y, (s_71[i_109].x + s_71[i_109 + 1].x) / 2, (s_71[i_109].y + s_71[i_109 + 1].y) / 2); l_8 = e_140 + 1; } } } function compileCharString(e, t, i, a) { function moveTo(e, i) { t.add(ht, [e, i]); } function lineTo(e, i) { t.add(lt, [e, i]); } function bezierCurveTo(e, i, a, s, r, n) { t.add(ct, [e, i, a, s, r, n]); } var s = []; var r = 0, n = 0, o = 0; !function parse(e) { var _b; var g = 0; for (; g < e.length;) { var c_10 = void 0, h_7 = void 0, l_9 = void 0, C_9 = void 0, Q_10 = void 0, E_8 = void 0, u_4 = void 0, d_4 = void 0, f_6 = void 0, p_4 = !1, m_4 = e[g++]; switch (m_4) { case 1: case 3: case 18: case 23: o += s.length >> 1; p_4 = !0; break; case 4: n += s.pop(); moveTo(r, n); p_4 = !0; break; case 5: for (; s.length > 0;) { r += s.shift(); n += s.shift(); lineTo(r, n); } break; case 6: for (; s.length > 0;) { r += s.shift(); lineTo(r, n); if (0 === s.length) break; n += s.shift(); lineTo(r, n); } break; case 7: for (; s.length > 0;) { n += s.shift(); lineTo(r, n); if (0 === s.length) break; r += s.shift(); lineTo(r, n); } break; case 8: for (; s.length > 0;) { c_10 = r + s.shift(); l_9 = n + s.shift(); h_7 = c_10 + s.shift(); C_9 = l_9 + s.shift(); r = h_7 + s.shift(); n = C_9 + s.shift(); bezierCurveTo(c_10, l_9, h_7, C_9, r, n); } break; case 10: d_4 = s.pop(); f_6 = null; if (i.isCFFCIDFont) { var e_142 = i.fdSelect.getFDIndex(a); if (e_142 >= 0 && e_142 < i.fdArray.length) { var t_125 = i.fdArray[e_142]; var a_103 = void 0; ((_b = t_125.privateDict) === null || _b === void 0 ? void 0 : _b.subrsIndex) && (a_103 = t_125.privateDict.subrsIndex.objects); if (a_103) { d_4 += getSubroutineBias(a_103); f_6 = a_103[d_4]; } } else warn("Invalid fd index for glyph index."); } else f_6 = i.subrs[d_4 + i.subrsBias]; f_6 && parse(f_6); break; case 11: return; case 12: m_4 = e[g++]; switch (m_4) { case 34: c_10 = r + s.shift(); h_7 = c_10 + s.shift(); Q_10 = n + s.shift(); r = h_7 + s.shift(); bezierCurveTo(c_10, n, h_7, Q_10, r, Q_10); c_10 = r + s.shift(); h_7 = c_10 + s.shift(); r = h_7 + s.shift(); bezierCurveTo(c_10, Q_10, h_7, n, r, n); break; case 35: c_10 = r + s.shift(); l_9 = n + s.shift(); h_7 = c_10 + s.shift(); C_9 = l_9 + s.shift(); r = h_7 + s.shift(); n = C_9 + s.shift(); bezierCurveTo(c_10, l_9, h_7, C_9, r, n); c_10 = r + s.shift(); l_9 = n + s.shift(); h_7 = c_10 + s.shift(); C_9 = l_9 + s.shift(); r = h_7 + s.shift(); n = C_9 + s.shift(); bezierCurveTo(c_10, l_9, h_7, C_9, r, n); s.pop(); break; case 36: c_10 = r + s.shift(); Q_10 = n + s.shift(); h_7 = c_10 + s.shift(); E_8 = Q_10 + s.shift(); r = h_7 + s.shift(); bezierCurveTo(c_10, Q_10, h_7, E_8, r, E_8); c_10 = r + s.shift(); h_7 = c_10 + s.shift(); u_4 = E_8 + s.shift(); r = h_7 + s.shift(); bezierCurveTo(c_10, E_8, h_7, u_4, r, n); break; case 37: var e_143 = r, t_126 = n; c_10 = r + s.shift(); l_9 = n + s.shift(); h_7 = c_10 + s.shift(); C_9 = l_9 + s.shift(); r = h_7 + s.shift(); n = C_9 + s.shift(); bezierCurveTo(c_10, l_9, h_7, C_9, r, n); c_10 = r + s.shift(); l_9 = n + s.shift(); h_7 = c_10 + s.shift(); C_9 = l_9 + s.shift(); r = h_7; n = C_9; Math.abs(r - e_143) > Math.abs(n - t_126) ? r += s.shift() : n += s.shift(); bezierCurveTo(c_10, l_9, h_7, C_9, r, n); break; default: throw new FormatError("unknown operator: 12 ".concat(m_4)); } break; case 14: if (s.length >= 4) { var e_144 = s.pop(), a_104 = s.pop(); n = s.pop(); r = s.pop(); t.add(Qt); t.add(dt, [r, n]); var o_25 = lookupCmap(i.cmap, String.fromCharCode(i.glyphNameMap[fi[e_144]])); compileCharString(i.glyphs[o_25.glyphId], t, i, o_25.glyphId); t.add(Bt); o_25 = lookupCmap(i.cmap, String.fromCharCode(i.glyphNameMap[fi[a_104]])); compileCharString(i.glyphs[o_25.glyphId], t, i, o_25.glyphId); } return; case 19: case 20: o += s.length >> 1; g += o + 7 >> 3; p_4 = !0; break; case 21: n += s.pop(); r += s.pop(); moveTo(r, n); p_4 = !0; break; case 22: r += s.pop(); moveTo(r, n); p_4 = !0; break; case 24: for (; s.length > 2;) { c_10 = r + s.shift(); l_9 = n + s.shift(); h_7 = c_10 + s.shift(); C_9 = l_9 + s.shift(); r = h_7 + s.shift(); n = C_9 + s.shift(); bezierCurveTo(c_10, l_9, h_7, C_9, r, n); } r += s.shift(); n += s.shift(); lineTo(r, n); break; case 25: for (; s.length > 6;) { r += s.shift(); n += s.shift(); lineTo(r, n); } c_10 = r + s.shift(); l_9 = n + s.shift(); h_7 = c_10 + s.shift(); C_9 = l_9 + s.shift(); r = h_7 + s.shift(); n = C_9 + s.shift(); bezierCurveTo(c_10, l_9, h_7, C_9, r, n); break; case 26: s.length % 2 && (r += s.shift()); for (; s.length > 0;) { c_10 = r; l_9 = n + s.shift(); h_7 = c_10 + s.shift(); C_9 = l_9 + s.shift(); r = h_7; n = C_9 + s.shift(); bezierCurveTo(c_10, l_9, h_7, C_9, r, n); } break; case 27: s.length % 2 && (n += s.shift()); for (; s.length > 0;) { c_10 = r + s.shift(); l_9 = n; h_7 = c_10 + s.shift(); C_9 = l_9 + s.shift(); r = h_7 + s.shift(); n = C_9; bezierCurveTo(c_10, l_9, h_7, C_9, r, n); } break; case 28: s.push((e[g] << 24 | e[g + 1] << 16) >> 16); g += 2; break; case 29: d_4 = s.pop() + i.gsubrsBias; f_6 = i.gsubrs[d_4]; f_6 && parse(f_6); break; case 30: for (; s.length > 0;) { c_10 = r; l_9 = n + s.shift(); h_7 = c_10 + s.shift(); C_9 = l_9 + s.shift(); r = h_7 + s.shift(); n = C_9 + (1 === s.length ? s.shift() : 0); bezierCurveTo(c_10, l_9, h_7, C_9, r, n); if (0 === s.length) break; c_10 = r + s.shift(); l_9 = n; h_7 = c_10 + s.shift(); C_9 = l_9 + s.shift(); n = C_9 + s.shift(); r = h_7 + (1 === s.length ? s.shift() : 0); bezierCurveTo(c_10, l_9, h_7, C_9, r, n); } break; case 31: for (; s.length > 0;) { c_10 = r + s.shift(); l_9 = n; h_7 = c_10 + s.shift(); C_9 = l_9 + s.shift(); n = C_9 + s.shift(); r = h_7 + (1 === s.length ? s.shift() : 0); bezierCurveTo(c_10, l_9, h_7, C_9, r, n); if (0 === s.length) break; c_10 = r; l_9 = n + s.shift(); h_7 = c_10 + s.shift(); C_9 = l_9 + s.shift(); r = h_7 + s.shift(); n = C_9 + (1 === s.length ? s.shift() : 0); bezierCurveTo(c_10, l_9, h_7, C_9, r, n); } break; default: if (m_4 < 32) throw new FormatError("unknown operator: ".concat(m_4)); if (m_4 < 247) s.push(m_4 - 139); else if (m_4 < 251) s.push(256 * (m_4 - 247) + e[g++] + 108); else if (m_4 < 255) s.push(256 * -(m_4 - 251) - e[g++] - 108); else { s.push((e[g] << 24 | e[g + 1] << 16 | e[g + 2] << 8 | e[g + 3]) / 65536); g += 4; } } p_4 && (s.length = 0); } }(e); } var $i = []; var Commands = /** @class */ (function () { function Commands() { this.cmds = []; } Commands.prototype.add = function (e, t) { var _b, _h; if (t) if (isNumberArray(t, null)) (_b = this.cmds).push.apply(_b, tslib_1.__spreadArray([e], t, false)); else { warn("Commands.add - \"".concat(e, "\" has at least one non-number arg: \"").concat(t, "\".")); var i_110 = t.map((function (e) { return "number" == typeof e ? e : 0; })); (_h = this.cmds).push.apply(_h, tslib_1.__spreadArray([e], i_110, false)); } else this.cmds.push(e); }; return Commands; }()); var CompiledFont = /** @class */ (function () { function CompiledFont(e) { this.constructor === CompiledFont && unreachable("Cannot initialize CompiledFont."); this.fontMatrix = e; this.compiledGlyphs = Object.create(null); this.compiledCharCodeToGlyphId = Object.create(null); } CompiledFont.prototype.getPathJs = function (e) { var _b; var _h; var _j = lookupCmap(this.cmap, e), t = _j.charCode, i = _j.glyphId; var a, s = this.compiledGlyphs[i]; if (!s) { try { s = this.compileGlyph(this.glyphs[i], i); } catch (e) { s = $i; a = e; } this.compiledGlyphs[i] = s; } (_b = (_h = this.compiledCharCodeToGlyphId)[t]) !== null && _b !== void 0 ? _b : (_h[t] = i); if (a) throw a; return s; }; CompiledFont.prototype.compileGlyph = function (e, t) { if (!e || 0 === e.length || 14 === e[0]) return $i; var i = this.fontMatrix; if (this.isCFFCIDFont) { var e_145 = this.fdSelect.getFDIndex(t); if (e_145 >= 0 && e_145 < this.fdArray.length) { i = this.fdArray[e_145].getByName("FontMatrix") || a; } else warn("Invalid fd index for glyph index."); } var s = new Commands; s.add(Qt); s.add(ut, i.slice()); s.add(Et); this.compileGlyphImpl(e, s, t); s.add(Bt); return s.cmds; }; CompiledFont.prototype.compileGlyphImpl = function () { unreachable("Children classes should implement this."); }; CompiledFont.prototype.hasBuiltPath = function (e) { var _b = lookupCmap(this.cmap, e), t = _b.charCode, i = _b.glyphId; return void 0 !== this.compiledGlyphs[i] && void 0 !== this.compiledCharCodeToGlyphId[t]; }; return CompiledFont; }()); var TrueTypeCompiled = /** @class */ (function (_super) { tslib_1.__extends(TrueTypeCompiled, _super); function TrueTypeCompiled(e, t, i) { var _this = _super.call(this, i || [488e-6, 0, 0, 488e-6, 0, 0]) || this; _this.glyphs = e; _this.cmap = t; return _this; } TrueTypeCompiled.prototype.compileGlyphImpl = function (e, t) { compileGlyf(e, t, this); }; return TrueTypeCompiled; }(CompiledFont)); var Type2Compiled = /** @class */ (function (_super) { tslib_1.__extends(Type2Compiled, _super); function Type2Compiled(e, t, i, a) { var _this = _super.call(this, i || [.001, 0, 0, .001, 0, 0]) || this; _this.glyphs = e.glyphs; _this.gsubrs = e.gsubrs || []; _this.subrs = e.subrs || []; _this.cmap = t; _this.glyphNameMap = a || Ni(); _this.gsubrsBias = getSubroutineBias(_this.gsubrs); _this.subrsBias = getSubroutineBias(_this.subrs); _this.isCFFCIDFont = e.isCFFCIDFont; _this.fdSelect = e.fdSelect; _this.fdArray = e.fdArray; return _this; } Type2Compiled.prototype.compileGlyphImpl = function (e, t, i) { compileCharString(e, t, this, i); }; return Type2Compiled; }(CompiledFont)); var FontRendererFactory = /** @class */ (function () { function FontRendererFactory() { } FontRendererFactory.create = function (e, t) { var i = new Uint8Array(e.data); var a, s, r, n, o, g; var c = getUint16(i, 4); for (var e_146 = 0, h_8 = 12; e_146 < c; e_146++, h_8 += 16) { var e_147 = bytesToString(i.subarray(h_8, h_8 + 4)), c_11 = getUint32(i, h_8 + 8), l_10 = getUint32(i, h_8 + 12); switch (e_147) { case "cmap": a = parseCmap(i, c_11); break; case "glyf": s = i.subarray(c_11, c_11 + l_10); break; case "loca": r = i.subarray(c_11, c_11 + l_10); break; case "head": g = getUint16(i, c_11 + 18); o = getUint16(i, c_11 + 50); break; case "CFF ": n = parseCff(i, c_11, c_11 + l_10, t); } } if (s) { var t_127 = g ? [1 / g, 0, 0, 1 / g, 0, 0] : e.fontMatrix; return new TrueTypeCompiled(function parseGlyfTable(e, t, i) { var a, s; if (i) { a = 4; s = getUint32; } else { a = 2; s = function (e, t) { return 2 * getUint16(e, t); }; } var r = []; var n = s(t, 0); for (var i_111 = a; i_111 < t.length; i_111 += a) { var a_105 = s(t, i_111); r.push(e.subarray(n, a_105)); n = a_105; } return r; }(s, r, o), a, t_127); } return new Type2Compiled(n, a, e.fontMatrix, e.glyphNameMap); }; return FontRendererFactory; }()); var Aa = getLookupTableFactory((function (e) { e.Courier = 600; e["Courier-Bold"] = 600; e["Courier-BoldOblique"] = 600; e["Courier-Oblique"] = 600; e.Helvetica = getLookupTableFactory((function (e) { e.space = 278; e.exclam = 278; e.quotedbl = 355; e.numbersign = 556; e.dollar = 556; e.percent = 889; e.ampersand = 667; e.quoteright = 222; e.parenleft = 333; e.parenright = 333; e.asterisk = 389; e.plus = 584; e.comma = 278; e.hyphen = 333; e.period = 278; e.slash = 278; e.zero = 556; e.one = 556; e.two = 556; e.three = 556; e.four = 556; e.five = 556; e.six = 556; e.seven = 556; e.eight = 556; e.nine = 556; e.colon = 278; e.semicolon = 278; e.less = 584; e.equal = 584; e.greater = 584; e.question = 556; e.at = 1015; e.A = 667; e.B = 667; e.C = 722; e.D = 722; e.E = 667; e.F = 611; e.G = 778; e.H = 722; e.I = 278; e.J = 500; e.K = 667; e.L = 556; e.M = 833; e.N = 722; e.O = 778; e.P = 667; e.Q = 778; e.R = 722; e.S = 667; e.T = 611; e.U = 722; e.V = 667; e.W = 944; e.X = 667; e.Y = 667; e.Z = 611; e.bracketleft = 278; e.backslash = 278; e.bracketright = 278; e.asciicircum = 469; e.underscore = 556; e.quoteleft = 222; e.a = 556; e.b = 556; e.c = 500; e.d = 556; e.e = 556; e.f = 278; e.g = 556; e.h = 556; e.i = 222; e.j = 222; e.k = 500; e.l = 222; e.m = 833; e.n = 556; e.o = 556; e.p = 556; e.q = 556; e.r = 333; e.s = 500; e.t = 278; e.u = 556; e.v = 500; e.w = 722; e.x = 500; e.y = 500; e.z = 500; e.braceleft = 334; e.bar = 260; e.braceright = 334; e.asciitilde = 584; e.exclamdown = 333; e.cent = 556; e.sterling = 556; e.fraction = 167; e.yen = 556; e.florin = 556; e.section = 556; e.currency = 556; e.quotesingle = 191; e.quotedblleft = 333; e.guillemotleft = 556; e.guilsinglleft = 333; e.guilsinglright = 333; e.fi = 500; e.fl = 500; e.endash = 556; e.dagger = 556; e.daggerdbl = 556; e.periodcentered = 278; e.paragraph = 537; e.bullet = 350; e.quotesinglbase = 222; e.quotedblbase = 333; e.quotedblright = 333; e.guillemotright = 556; e.ellipsis = 1e3; e.perthousand = 1e3; e.questiondown = 611; e.grave = 333; e.acute = 333; e.circumflex = 333; e.tilde = 333; e.macron = 333; e.breve = 333; e.dotaccent = 333; e.dieresis = 333; e.ring = 333; e.cedilla = 333; e.hungarumlaut = 333; e.ogonek = 333; e.caron = 333; e.emdash = 1e3; e.AE = 1e3; e.ordfeminine = 370; e.Lslash = 556; e.Oslash = 778; e.OE = 1e3; e.ordmasculine = 365; e.ae = 889; e.dotlessi = 278; e.lslash = 222; e.oslash = 611; e.oe = 944; e.germandbls = 611; e.Idieresis = 278; e.eacute = 556; e.abreve = 556; e.uhungarumlaut = 556; e.ecaron = 556; e.Ydieresis = 667; e.divide = 584; e.Yacute = 667; e.Acircumflex = 667; e.aacute = 556; e.Ucircumflex = 722; e.yacute = 500; e.scommaaccent = 500; e.ecircumflex = 556; e.Uring = 722; e.Udieresis = 722; e.aogonek = 556; e.Uacute = 722; e.uogonek = 556; e.Edieresis = 667; e.Dcroat = 722; e.commaaccent = 250; e.copyright = 737; e.Emacron = 667; e.ccaron = 500; e.aring = 556; e.Ncommaaccent = 722; e.lacute = 222; e.agrave = 556; e.Tcommaaccent = 611; e.Cacute = 722; e.atilde = 556; e.Edotaccent = 667; e.scaron = 500; e.scedilla = 500; e.iacute = 278; e.lozenge = 471; e.Rcaron = 722; e.Gcommaaccent = 778; e.ucircumflex = 556; e.acircumflex = 556; e.Amacron = 667; e.rcaron = 333; e.ccedilla = 500; e.Zdotaccent = 611; e.Thorn = 667; e.Omacron = 778; e.Racute = 722; e.Sacute = 667; e.dcaron = 643; e.Umacron = 722; e.uring = 556; e.threesuperior = 333; e.Ograve = 778; e.Agrave = 667; e.Abreve = 667; e.multiply = 584; e.uacute = 556; e.Tcaron = 611; e.partialdiff = 476; e.ydieresis = 500; e.Nacute = 722; e.icircumflex = 278; e.Ecircumflex = 667; e.adieresis = 556; e.edieresis = 556; e.cacute = 500; e.nacute = 556; e.umacron = 556; e.Ncaron = 722; e.Iacute = 278; e.plusminus = 584; e.brokenbar = 260; e.registered = 737; e.Gbreve = 778; e.Idotaccent = 278; e.summation = 600; e.Egrave = 667; e.racute = 333; e.omacron = 556; e.Zacute = 611; e.Zcaron = 611; e.greaterequal = 549; e.Eth = 722; e.Ccedilla = 722; e.lcommaaccent = 222; e.tcaron = 317; e.eogonek = 556; e.Uogonek = 722; e.Aacute = 667; e.Adieresis = 667; e.egrave = 556; e.zacute = 500; e.iogonek = 222; e.Oacute = 778; e.oacute = 556; e.amacron = 556; e.sacute = 500; e.idieresis = 278; e.Ocircumflex = 778; e.Ugrave = 722; e.Delta = 612; e.thorn = 556; e.twosuperior = 333; e.Odieresis = 778; e.mu = 556; e.igrave = 278; e.ohungarumlaut = 556; e.Eogonek = 667; e.dcroat = 556; e.threequarters = 834; e.Scedilla = 667; e.lcaron = 299; e.Kcommaaccent = 667; e.Lacute = 556; e.trademark = 1e3; e.edotaccent = 556; e.Igrave = 278; e.Imacron = 278; e.Lcaron = 556; e.onehalf = 834; e.lessequal = 549; e.ocircumflex = 556; e.ntilde = 556; e.Uhungarumlaut = 722; e.Eacute = 667; e.emacron = 556; e.gbreve = 556; e.onequarter = 834; e.Scaron = 667; e.Scommaaccent = 667; e.Ohungarumlaut = 778; e.degree = 400; e.ograve = 556; e.Ccaron = 722; e.ugrave = 556; e.radical = 453; e.Dcaron = 722; e.rcommaaccent = 333; e.Ntilde = 722; e.otilde = 556; e.Rcommaaccent = 722; e.Lcommaaccent = 556; e.Atilde = 667; e.Aogonek = 667; e.Aring = 667; e.Otilde = 778; e.zdotaccent = 500; e.Ecaron = 667; e.Iogonek = 278; e.kcommaaccent = 500; e.minus = 584; e.Icircumflex = 278; e.ncaron = 556; e.tcommaaccent = 278; e.logicalnot = 584; e.odieresis = 556; e.udieresis = 556; e.notequal = 549; e.gcommaaccent = 556; e.eth = 556; e.zcaron = 500; e.ncommaaccent = 556; e.onesuperior = 333; e.imacron = 278; e.Euro = 556; })); e["Helvetica-Bold"] = getLookupTableFactory((function (e) { e.space = 278; e.exclam = 333; e.quotedbl = 474; e.numbersign = 556; e.dollar = 556; e.percent = 889; e.ampersand = 722; e.quoteright = 278; e.parenleft = 333; e.parenright = 333; e.asterisk = 389; e.plus = 584; e.comma = 278; e.hyphen = 333; e.period = 278; e.slash = 278; e.zero = 556; e.one = 556; e.two = 556; e.three = 556; e.four = 556; e.five = 556; e.six = 556; e.seven = 556; e.eight = 556; e.nine = 556; e.colon = 333; e.semicolon = 333; e.less = 584; e.equal = 584; e.greater = 584; e.question = 611; e.at = 975; e.A = 722; e.B = 722; e.C = 722; e.D = 722; e.E = 667; e.F = 611; e.G = 778; e.H = 722; e.I = 278; e.J = 556; e.K = 722; e.L = 611; e.M = 833; e.N = 722; e.O = 778; e.P = 667; e.Q = 778; e.R = 722; e.S = 667; e.T = 611; e.U = 722; e.V = 667; e.W = 944; e.X = 667; e.Y = 667; e.Z = 611; e.bracketleft = 333; e.backslash = 278; e.bracketright = 333; e.asciicircum = 584; e.underscore = 556; e.quoteleft = 278; e.a = 556; e.b = 611; e.c = 556; e.d = 611; e.e = 556; e.f = 333; e.g = 611; e.h = 611; e.i = 278; e.j = 278; e.k = 556; e.l = 278; e.m = 889; e.n = 611; e.o = 611; e.p = 611; e.q = 611; e.r = 389; e.s = 556; e.t = 333; e.u = 611; e.v = 556; e.w = 778; e.x = 556; e.y = 556; e.z = 500; e.braceleft = 389; e.bar = 280; e.braceright = 389; e.asciitilde = 584; e.exclamdown = 333; e.cent = 556; e.sterling = 556; e.fraction = 167; e.yen = 556; e.florin = 556; e.section = 556; e.currency = 556; e.quotesingle = 238; e.quotedblleft = 500; e.guillemotleft = 556; e.guilsinglleft = 333; e.guilsinglright = 333; e.fi = 611; e.fl = 611; e.endash = 556; e.dagger = 556; e.daggerdbl = 556; e.periodcentered = 278; e.paragraph = 556; e.bullet = 350; e.quotesinglbase = 278; e.quotedblbase = 500; e.quotedblright = 500; e.guillemotright = 556; e.ellipsis = 1e3; e.perthousand = 1e3; e.questiondown = 611; e.grave = 333; e.acute = 333; e.circumflex = 333; e.tilde = 333; e.macron = 333; e.breve = 333; e.dotaccent = 333; e.dieresis = 333; e.ring = 333; e.cedilla = 333; e.hungarumlaut = 333; e.ogonek = 333; e.caron = 333; e.emdash = 1e3; e.AE = 1e3; e.ordfeminine = 370; e.Lslash = 611; e.Oslash = 778; e.OE = 1e3; e.ordmasculine = 365; e.ae = 889; e.dotlessi = 278; e.lslash = 278; e.oslash = 611; e.oe = 944; e.germandbls = 611; e.Idieresis = 278; e.eacute = 556; e.abreve = 556; e.uhungarumlaut = 611; e.ecaron = 556; e.Ydieresis = 667; e.divide = 584; e.Yacute = 667; e.Acircumflex = 722; e.aacute = 556; e.Ucircumflex = 722; e.yacute = 556; e.scommaaccent = 556; e.ecircumflex = 556; e.Uring = 722; e.Udieresis = 722; e.aogonek = 556; e.Uacute = 722; e.uogonek = 611; e.Edieresis = 667; e.Dcroat = 722; e.commaaccent = 250; e.copyright = 737; e.Emacron = 667; e.ccaron = 556; e.aring = 556; e.Ncommaaccent = 722; e.lacute = 278; e.agrave = 556; e.Tcommaaccent = 611; e.Cacute = 722; e.atilde = 556; e.Edotaccent = 667; e.scaron = 556; e.scedilla = 556; e.iacute = 278; e.lozenge = 494; e.Rcaron = 722; e.Gcommaaccent = 778; e.ucircumflex = 611; e.acircumflex = 556; e.Amacron = 722; e.rcaron = 389; e.ccedilla = 556; e.Zdotaccent = 611; e.Thorn = 667; e.Omacron = 778; e.Racute = 722; e.Sacute = 667; e.dcaron = 743; e.Umacron = 722; e.uring = 611; e.threesuperior = 333; e.Ograve = 778; e.Agrave = 722; e.Abreve = 722; e.multiply = 584; e.uacute = 611; e.Tcaron = 611; e.partialdiff = 494; e.ydieresis = 556; e.Nacute = 722; e.icircumflex = 278; e.Ecircumflex = 667; e.adieresis = 556; e.edieresis = 556; e.cacute = 556; e.nacute = 611; e.umacron = 611; e.Ncaron = 722; e.Iacute = 278; e.plusminus = 584; e.brokenbar = 280; e.registered = 737; e.Gbreve = 778; e.Idotaccent = 278; e.summation = 600; e.Egrave = 667; e.racute = 389; e.omacron = 611; e.Zacute = 611; e.Zcaron = 611; e.greaterequal = 549; e.Eth = 722; e.Ccedilla = 722; e.lcommaaccent = 278; e.tcaron = 389; e.eogonek = 556; e.Uogonek = 722; e.Aacute = 722; e.Adieresis = 722; e.egrave = 556; e.zacute = 500; e.iogonek = 278; e.Oacute = 778; e.oacute = 611; e.amacron = 556; e.sacute = 556; e.idieresis = 278; e.Ocircumflex = 778; e.Ugrave = 722; e.Delta = 612; e.thorn = 611; e.twosuperior = 333; e.Odieresis = 778; e.mu = 611; e.igrave = 278; e.ohungarumlaut = 611; e.Eogonek = 667; e.dcroat = 611; e.threequarters = 834; e.Scedilla = 667; e.lcaron = 400; e.Kcommaaccent = 722; e.Lacute = 611; e.trademark = 1e3; e.edotaccent = 556; e.Igrave = 278; e.Imacron = 278; e.Lcaron = 611; e.onehalf = 834; e.lessequal = 549; e.ocircumflex = 611; e.ntilde = 611; e.Uhungarumlaut = 722; e.Eacute = 667; e.emacron = 556; e.gbreve = 611; e.onequarter = 834; e.Scaron = 667; e.Scommaaccent = 667; e.Ohungarumlaut = 778; e.degree = 400; e.ograve = 611; e.Ccaron = 722; e.ugrave = 611; e.radical = 549; e.Dcaron = 722; e.rcommaaccent = 389; e.Ntilde = 722; e.otilde = 611; e.Rcommaaccent = 722; e.Lcommaaccent = 611; e.Atilde = 722; e.Aogonek = 722; e.Aring = 722; e.Otilde = 778; e.zdotaccent = 500; e.Ecaron = 667; e.Iogonek = 278; e.kcommaaccent = 556; e.minus = 584; e.Icircumflex = 278; e.ncaron = 611; e.tcommaaccent = 333; e.logicalnot = 584; e.odieresis = 611; e.udieresis = 611; e.notequal = 549; e.gcommaaccent = 611; e.eth = 611; e.zcaron = 500; e.ncommaaccent = 611; e.onesuperior = 333; e.imacron = 278; e.Euro = 556; })); e["Helvetica-BoldOblique"] = getLookupTableFactory((function (e) { e.space = 278; e.exclam = 333; e.quotedbl = 474; e.numbersign = 556; e.dollar = 556; e.percent = 889; e.ampersand = 722; e.quoteright = 278; e.parenleft = 333; e.parenright = 333; e.asterisk = 389; e.plus = 584; e.comma = 278; e.hyphen = 333; e.period = 278; e.slash = 278; e.zero = 556; e.one = 556; e.two = 556; e.three = 556; e.four = 556; e.five = 556; e.six = 556; e.seven = 556; e.eight = 556; e.nine = 556; e.colon = 333; e.semicolon = 333; e.less = 584; e.equal = 584; e.greater = 584; e.question = 611; e.at = 975; e.A = 722; e.B = 722; e.C = 722; e.D = 722; e.E = 667; e.F = 611; e.G = 778; e.H = 722; e.I = 278; e.J = 556; e.K = 722; e.L = 611; e.M = 833; e.N = 722; e.O = 778; e.P = 667; e.Q = 778; e.R = 722; e.S = 667; e.T = 611; e.U = 722; e.V = 667; e.W = 944; e.X = 667; e.Y = 667; e.Z = 611; e.bracketleft = 333; e.backslash = 278; e.bracketright = 333; e.asciicircum = 584; e.underscore = 556; e.quoteleft = 278; e.a = 556; e.b = 611; e.c = 556; e.d = 611; e.e = 556; e.f = 333; e.g = 611; e.h = 611; e.i = 278; e.j = 278; e.k = 556; e.l = 278; e.m = 889; e.n = 611; e.o = 611; e.p = 611; e.q = 611; e.r = 389; e.s = 556; e.t = 333; e.u = 611; e.v = 556; e.w = 778; e.x = 556; e.y = 556; e.z = 500; e.braceleft = 389; e.bar = 280; e.braceright = 389; e.asciitilde = 584; e.exclamdown = 333; e.cent = 556; e.sterling = 556; e.fraction = 167; e.yen = 556; e.florin = 556; e.section = 556; e.currency = 556; e.quotesingle = 238; e.quotedblleft = 500; e.guillemotleft = 556; e.guilsinglleft = 333; e.guilsinglright = 333; e.fi = 611; e.fl = 611; e.endash = 556; e.dagger = 556; e.daggerdbl = 556; e.periodcentered = 278; e.paragraph = 556; e.bullet = 350; e.quotesinglbase = 278; e.quotedblbase = 500; e.quotedblright = 500; e.guillemotright = 556; e.ellipsis = 1e3; e.perthousand = 1e3; e.questiondown = 611; e.grave = 333; e.acute = 333; e.circumflex = 333; e.tilde = 333; e.macron = 333; e.breve = 333; e.dotaccent = 333; e.dieresis = 333; e.ring = 333; e.cedilla = 333; e.hungarumlaut = 333; e.ogonek = 333; e.caron = 333; e.emdash = 1e3; e.AE = 1e3; e.ordfeminine = 370; e.Lslash = 611; e.Oslash = 778; e.OE = 1e3; e.ordmasculine = 365; e.ae = 889; e.dotlessi = 278; e.lslash = 278; e.oslash = 611; e.oe = 944; e.germandbls = 611; e.Idieresis = 278; e.eacute = 556; e.abreve = 556; e.uhungarumlaut = 611; e.ecaron = 556; e.Ydieresis = 667; e.divide = 584; e.Yacute = 667; e.Acircumflex = 722; e.aacute = 556; e.Ucircumflex = 722; e.yacute = 556; e.scommaaccent = 556; e.ecircumflex = 556; e.Uring = 722; e.Udieresis = 722; e.aogonek = 556; e.Uacute = 722; e.uogonek = 611; e.Edieresis = 667; e.Dcroat = 722; e.commaaccent = 250; e.copyright = 737; e.Emacron = 667; e.ccaron = 556; e.aring = 556; e.Ncommaaccent = 722; e.lacute = 278; e.agrave = 556; e.Tcommaaccent = 611; e.Cacute = 722; e.atilde = 556; e.Edotaccent = 667; e.scaron = 556; e.scedilla = 556; e.iacute = 278; e.lozenge = 494; e.Rcaron = 722; e.Gcommaaccent = 778; e.ucircumflex = 611; e.acircumflex = 556; e.Amacron = 722; e.rcaron = 389; e.ccedilla = 556; e.Zdotaccent = 611; e.Thorn = 667; e.Omacron = 778; e.Racute = 722; e.Sacute = 667; e.dcaron = 743; e.Umacron = 722; e.uring = 611; e.threesuperior = 333; e.Ograve = 778; e.Agrave = 722; e.Abreve = 722; e.multiply = 584; e.uacute = 611; e.Tcaron = 611; e.partialdiff = 494; e.ydieresis = 556; e.Nacute = 722; e.icircumflex = 278; e.Ecircumflex = 667; e.adieresis = 556; e.edieresis = 556; e.cacute = 556; e.nacute = 611; e.umacron = 611; e.Ncaron = 722; e.Iacute = 278; e.plusminus = 584; e.brokenbar = 280; e.registered = 737; e.Gbreve = 778; e.Idotaccent = 278; e.summation = 600; e.Egrave = 667; e.racute = 389; e.omacron = 611; e.Zacute = 611; e.Zcaron = 611; e.greaterequal = 549; e.Eth = 722; e.Ccedilla = 722; e.lcommaaccent = 278; e.tcaron = 389; e.eogonek = 556; e.Uogonek = 722; e.Aacute = 722; e.Adieresis = 722; e.egrave = 556; e.zacute = 500; e.iogonek = 278; e.Oacute = 778; e.oacute = 611; e.amacron = 556; e.sacute = 556; e.idieresis = 278; e.Ocircumflex = 778; e.Ugrave = 722; e.Delta = 612; e.thorn = 611; e.twosuperior = 333; e.Odieresis = 778; e.mu = 611; e.igrave = 278; e.ohungarumlaut = 611; e.Eogonek = 667; e.dcroat = 611; e.threequarters = 834; e.Scedilla = 667; e.lcaron = 400; e.Kcommaaccent = 722; e.Lacute = 611; e.trademark = 1e3; e.edotaccent = 556; e.Igrave = 278; e.Imacron = 278; e.Lcaron = 611; e.onehalf = 834; e.lessequal = 549; e.ocircumflex = 611; e.ntilde = 611; e.Uhungarumlaut = 722; e.Eacute = 667; e.emacron = 556; e.gbreve = 611; e.onequarter = 834; e.Scaron = 667; e.Scommaaccent = 667; e.Ohungarumlaut = 778; e.degree = 400; e.ograve = 611; e.Ccaron = 722; e.ugrave = 611; e.radical = 549; e.Dcaron = 722; e.rcommaaccent = 389; e.Ntilde = 722; e.otilde = 611; e.Rcommaaccent = 722; e.Lcommaaccent = 611; e.Atilde = 722; e.Aogonek = 722; e.Aring = 722; e.Otilde = 778; e.zdotaccent = 500; e.Ecaron = 667; e.Iogonek = 278; e.kcommaaccent = 556; e.minus = 584; e.Icircumflex = 278; e.ncaron = 611; e.tcommaaccent = 333; e.logicalnot = 584; e.odieresis = 611; e.udieresis = 611; e.notequal = 549; e.gcommaaccent = 611; e.eth = 611; e.zcaron = 500; e.ncommaaccent = 611; e.onesuperior = 333; e.imacron = 278; e.Euro = 556; })); e["Helvetica-Oblique"] = getLookupTableFactory((function (e) { e.space = 278; e.exclam = 278; e.quotedbl = 355; e.numbersign = 556; e.dollar = 556; e.percent = 889; e.ampersand = 667; e.quoteright = 222; e.parenleft = 333; e.parenright = 333; e.asterisk = 389; e.plus = 584; e.comma = 278; e.hyphen = 333; e.period = 278; e.slash = 278; e.zero = 556; e.one = 556; e.two = 556; e.three = 556; e.four = 556; e.five = 556; e.six = 556; e.seven = 556; e.eight = 556; e.nine = 556; e.colon = 278; e.semicolon = 278; e.less = 584; e.equal = 584; e.greater = 584; e.question = 556; e.at = 1015; e.A = 667; e.B = 667; e.C = 722; e.D = 722; e.E = 667; e.F = 611; e.G = 778; e.H = 722; e.I = 278; e.J = 500; e.K = 667; e.L = 556; e.M = 833; e.N = 722; e.O = 778; e.P = 667; e.Q = 778; e.R = 722; e.S = 667; e.T = 611; e.U = 722; e.V = 667; e.W = 944; e.X = 667; e.Y = 667; e.Z = 611; e.bracketleft = 278; e.backslash = 278; e.bracketright = 278; e.asciicircum = 469; e.underscore = 556; e.quoteleft = 222; e.a = 556; e.b = 556; e.c = 500; e.d = 556; e.e = 556; e.f = 278; e.g = 556; e.h = 556; e.i = 222; e.j = 222; e.k = 500; e.l = 222; e.m = 833; e.n = 556; e.o = 556; e.p = 556; e.q = 556; e.r = 333; e.s = 500; e.t = 278; e.u = 556; e.v = 500; e.w = 722; e.x = 500; e.y = 500; e.z = 500; e.braceleft = 334; e.bar = 260; e.braceright = 334; e.asciitilde = 584; e.exclamdown = 333; e.cent = 556; e.sterling = 556; e.fraction = 167; e.yen = 556; e.florin = 556; e.section = 556; e.currency = 556; e.quotesingle = 191; e.quotedblleft = 333; e.guillemotleft = 556; e.guilsinglleft = 333; e.guilsinglright = 333; e.fi = 500; e.fl = 500; e.endash = 556; e.dagger = 556; e.daggerdbl = 556; e.periodcentered = 278; e.paragraph = 537; e.bullet = 350; e.quotesinglbase = 222; e.quotedblbase = 333; e.quotedblright = 333; e.guillemotright = 556; e.ellipsis = 1e3; e.perthousand = 1e3; e.questiondown = 611; e.grave = 333; e.acute = 333; e.circumflex = 333; e.tilde = 333; e.macron = 333; e.breve = 333; e.dotaccent = 333; e.dieresis = 333; e.ring = 333; e.cedilla = 333; e.hungarumlaut = 333; e.ogonek = 333; e.caron = 333; e.emdash = 1e3; e.AE = 1e3; e.ordfeminine = 370; e.Lslash = 556; e.Oslash = 778; e.OE = 1e3; e.ordmasculine = 365; e.ae = 889; e.dotlessi = 278; e.lslash = 222; e.oslash = 611; e.oe = 944; e.germandbls = 611; e.Idieresis = 278; e.eacute = 556; e.abreve = 556; e.uhungarumlaut = 556; e.ecaron = 556; e.Ydieresis = 667; e.divide = 584; e.Yacute = 667; e.Acircumflex = 667; e.aacute = 556; e.Ucircumflex = 722; e.yacute = 500; e.scommaaccent = 500; e.ecircumflex = 556; e.Uring = 722; e.Udieresis = 722; e.aogonek = 556; e.Uacute = 722; e.uogonek = 556; e.Edieresis = 667; e.Dcroat = 722; e.commaaccent = 250; e.copyright = 737; e.Emacron = 667; e.ccaron = 500; e.aring = 556; e.Ncommaaccent = 722; e.lacute = 222; e.agrave = 556; e.Tcommaaccent = 611; e.Cacute = 722; e.atilde = 556; e.Edotaccent = 667; e.scaron = 500; e.scedilla = 500; e.iacute = 278; e.lozenge = 471; e.Rcaron = 722; e.Gcommaaccent = 778; e.ucircumflex = 556; e.acircumflex = 556; e.Amacron = 667; e.rcaron = 333; e.ccedilla = 500; e.Zdotaccent = 611; e.Thorn = 667; e.Omacron = 778; e.Racute = 722; e.Sacute = 667; e.dcaron = 643; e.Umacron = 722; e.uring = 556; e.threesuperior = 333; e.Ograve = 778; e.Agrave = 667; e.Abreve = 667; e.multiply = 584; e.uacute = 556; e.Tcaron = 611; e.partialdiff = 476; e.ydieresis = 500; e.Nacute = 722; e.icircumflex = 278; e.Ecircumflex = 667; e.adieresis = 556; e.edieresis = 556; e.cacute = 500; e.nacute = 556; e.umacron = 556; e.Ncaron = 722; e.Iacute = 278; e.plusminus = 584; e.brokenbar = 260; e.registered = 737; e.Gbreve = 778; e.Idotaccent = 278; e.summation = 600; e.Egrave = 667; e.racute = 333; e.omacron = 556; e.Zacute = 611; e.Zcaron = 611; e.greaterequal = 549; e.Eth = 722; e.Ccedilla = 722; e.lcommaaccent = 222; e.tcaron = 317; e.eogonek = 556; e.Uogonek = 722; e.Aacute = 667; e.Adieresis = 667; e.egrave = 556; e.zacute = 500; e.iogonek = 222; e.Oacute = 778; e.oacute = 556; e.amacron = 556; e.sacute = 500; e.idieresis = 278; e.Ocircumflex = 778; e.Ugrave = 722; e.Delta = 612; e.thorn = 556; e.twosuperior = 333; e.Odieresis = 778; e.mu = 556; e.igrave = 278; e.ohungarumlaut = 556; e.Eogonek = 667; e.dcroat = 556; e.threequarters = 834; e.Scedilla = 667; e.lcaron = 299; e.Kcommaaccent = 667; e.Lacute = 556; e.trademark = 1e3; e.edotaccent = 556; e.Igrave = 278; e.Imacron = 278; e.Lcaron = 556; e.onehalf = 834; e.lessequal = 549; e.ocircumflex = 556; e.ntilde = 556; e.Uhungarumlaut = 722; e.Eacute = 667; e.emacron = 556; e.gbreve = 556; e.onequarter = 834; e.Scaron = 667; e.Scommaaccent = 667; e.Ohungarumlaut = 778; e.degree = 400; e.ograve = 556; e.Ccaron = 722; e.ugrave = 556; e.radical = 453; e.Dcaron = 722; e.rcommaaccent = 333; e.Ntilde = 722; e.otilde = 556; e.Rcommaaccent = 722; e.Lcommaaccent = 556; e.Atilde = 667; e.Aogonek = 667; e.Aring = 667; e.Otilde = 778; e.zdotaccent = 500; e.Ecaron = 667; e.Iogonek = 278; e.kcommaaccent = 500; e.minus = 584; e.Icircumflex = 278; e.ncaron = 556; e.tcommaaccent = 278; e.logicalnot = 584; e.odieresis = 556; e.udieresis = 556; e.notequal = 549; e.gcommaaccent = 556; e.eth = 556; e.zcaron = 500; e.ncommaaccent = 556; e.onesuperior = 333; e.imacron = 278; e.Euro = 556; })); e.Symbol = getLookupTableFactory((function (e) { e.space = 250; e.exclam = 333; e.universal = 713; e.numbersign = 500; e.existential = 549; e.percent = 833; e.ampersand = 778; e.suchthat = 439; e.parenleft = 333; e.parenright = 333; e.asteriskmath = 500; e.plus = 549; e.comma = 250; e.minus = 549; e.period = 250; e.slash = 278; e.zero = 500; e.one = 500; e.two = 500; e.three = 500; e.four = 500; e.five = 500; e.six = 500; e.seven = 500; e.eight = 500; e.nine = 500; e.colon = 278; e.semicolon = 278; e.less = 549; e.equal = 549; e.greater = 549; e.question = 444; e.congruent = 549; e.Alpha = 722; e.Beta = 667; e.Chi = 722; e.Delta = 612; e.Epsilon = 611; e.Phi = 763; e.Gamma = 603; e.Eta = 722; e.Iota = 333; e.theta1 = 631; e.Kappa = 722; e.Lambda = 686; e.Mu = 889; e.Nu = 722; e.Omicron = 722; e.Pi = 768; e.Theta = 741; e.Rho = 556; e.Sigma = 592; e.Tau = 611; e.Upsilon = 690; e.sigma1 = 439; e.Omega = 768; e.Xi = 645; e.Psi = 795; e.Zeta = 611; e.bracketleft = 333; e.therefore = 863; e.bracketright = 333; e.perpendicular = 658; e.underscore = 500; e.radicalex = 500; e.alpha = 631; e.beta = 549; e.chi = 549; e.delta = 494; e.epsilon = 439; e.phi = 521; e.gamma = 411; e.eta = 603; e.iota = 329; e.phi1 = 603; e.kappa = 549; e.lambda = 549; e.mu = 576; e.nu = 521; e.omicron = 549; e.pi = 549; e.theta = 521; e.rho = 549; e.sigma = 603; e.tau = 439; e.upsilon = 576; e.omega1 = 713; e.omega = 686; e.xi = 493; e.psi = 686; e.zeta = 494; e.braceleft = 480; e.bar = 200; e.braceright = 480; e.similar = 549; e.Euro = 750; e.Upsilon1 = 620; e.minute = 247; e.lessequal = 549; e.fraction = 167; e.infinity = 713; e.florin = 500; e.club = 753; e.diamond = 753; e.heart = 753; e.spade = 753; e.arrowboth = 1042; e.arrowleft = 987; e.arrowup = 603; e.arrowright = 987; e.arrowdown = 603; e.degree = 400; e.plusminus = 549; e.second = 411; e.greaterequal = 549; e.multiply = 549; e.proportional = 713; e.partialdiff = 494; e.bullet = 460; e.divide = 549; e.notequal = 549; e.equivalence = 549; e.approxequal = 549; e.ellipsis = 1e3; e.arrowvertex = 603; e.arrowhorizex = 1e3; e.carriagereturn = 658; e.aleph = 823; e.Ifraktur = 686; e.Rfraktur = 795; e.weierstrass = 987; e.circlemultiply = 768; e.circleplus = 768; e.emptyset = 823; e.intersection = 768; e.union = 768; e.propersuperset = 713; e.reflexsuperset = 713; e.notsubset = 713; e.propersubset = 713; e.reflexsubset = 713; e.element = 713; e.notelement = 713; e.angle = 768; e.gradient = 713; e.registerserif = 790; e.copyrightserif = 790; e.trademarkserif = 890; e.product = 823; e.radical = 549; e.dotmath = 250; e.logicalnot = 713; e.logicaland = 603; e.logicalor = 603; e.arrowdblboth = 1042; e.arrowdblleft = 987; e.arrowdblup = 603; e.arrowdblright = 987; e.arrowdbldown = 603; e.lozenge = 494; e.angleleft = 329; e.registersans = 790; e.copyrightsans = 790; e.trademarksans = 786; e.summation = 713; e.parenlefttp = 384; e.parenleftex = 384; e.parenleftbt = 384; e.bracketlefttp = 384; e.bracketleftex = 384; e.bracketleftbt = 384; e.bracelefttp = 494; e.braceleftmid = 494; e.braceleftbt = 494; e.braceex = 494; e.angleright = 329; e.integral = 274; e.integraltp = 686; e.integralex = 686; e.integralbt = 686; e.parenrighttp = 384; e.parenrightex = 384; e.parenrightbt = 384; e.bracketrighttp = 384; e.bracketrightex = 384; e.bracketrightbt = 384; e.bracerighttp = 494; e.bracerightmid = 494; e.bracerightbt = 494; e.apple = 790; })); e["Times-Roman"] = getLookupTableFactory((function (e) { e.space = 250; e.exclam = 333; e.quotedbl = 408; e.numbersign = 500; e.dollar = 500; e.percent = 833; e.ampersand = 778; e.quoteright = 333; e.parenleft = 333; e.parenright = 333; e.asterisk = 500; e.plus = 564; e.comma = 250; e.hyphen = 333; e.period = 250; e.slash = 278; e.zero = 500; e.one = 500; e.two = 500; e.three = 500; e.four = 500; e.five = 500; e.six = 500; e.seven = 500; e.eight = 500; e.nine = 500; e.colon = 278; e.semicolon = 278; e.less = 564; e.equal = 564; e.greater = 564; e.question = 444; e.at = 921; e.A = 722; e.B = 667; e.C = 667; e.D = 722; e.E = 611; e.F = 556; e.G = 722; e.H = 722; e.I = 333; e.J = 389; e.K = 722; e.L = 611; e.M = 889; e.N = 722; e.O = 722; e.P = 556; e.Q = 722; e.R = 667; e.S = 556; e.T = 611; e.U = 722; e.V = 722; e.W = 944; e.X = 722; e.Y = 722; e.Z = 611; e.bracketleft = 333; e.backslash = 278; e.bracketright = 333; e.asciicircum = 469; e.underscore = 500; e.quoteleft = 333; e.a = 444; e.b = 500; e.c = 444; e.d = 500; e.e = 444; e.f = 333; e.g = 500; e.h = 500; e.i = 278; e.j = 278; e.k = 500; e.l = 278; e.m = 778; e.n = 500; e.o = 500; e.p = 500; e.q = 500; e.r = 333; e.s = 389; e.t = 278; e.u = 500; e.v = 500; e.w = 722; e.x = 500; e.y = 500; e.z = 444; e.braceleft = 480; e.bar = 200; e.braceright = 480; e.asciitilde = 541; e.exclamdown = 333; e.cent = 500; e.sterling = 500; e.fraction = 167; e.yen = 500; e.florin = 500; e.section = 500; e.currency = 500; e.quotesingle = 180; e.quotedblleft = 444; e.guillemotleft = 500; e.guilsinglleft = 333; e.guilsinglright = 333; e.fi = 556; e.fl = 556; e.endash = 500; e.dagger = 500; e.daggerdbl = 500; e.periodcentered = 250; e.paragraph = 453; e.bullet = 350; e.quotesinglbase = 333; e.quotedblbase = 444; e.quotedblright = 444; e.guillemotright = 500; e.ellipsis = 1e3; e.perthousand = 1e3; e.questiondown = 444; e.grave = 333; e.acute = 333; e.circumflex = 333; e.tilde = 333; e.macron = 333; e.breve = 333; e.dotaccent = 333; e.dieresis = 333; e.ring = 333; e.cedilla = 333; e.hungarumlaut = 333; e.ogonek = 333; e.caron = 333; e.emdash = 1e3; e.AE = 889; e.ordfeminine = 276; e.Lslash = 611; e.Oslash = 722; e.OE = 889; e.ordmasculine = 310; e.ae = 667; e.dotlessi = 278; e.lslash = 278; e.oslash = 500; e.oe = 722; e.germandbls = 500; e.Idieresis = 333; e.eacute = 444; e.abreve = 444; e.uhungarumlaut = 500; e.ecaron = 444; e.Ydieresis = 722; e.divide = 564; e.Yacute = 722; e.Acircumflex = 722; e.aacute = 444; e.Ucircumflex = 722; e.yacute = 500; e.scommaaccent = 389; e.ecircumflex = 444; e.Uring = 722; e.Udieresis = 722; e.aogonek = 444; e.Uacute = 722; e.uogonek = 500; e.Edieresis = 611; e.Dcroat = 722; e.commaaccent = 250; e.copyright = 760; e.Emacron = 611; e.ccaron = 444; e.aring = 444; e.Ncommaaccent = 722; e.lacute = 278; e.agrave = 444; e.Tcommaaccent = 611; e.Cacute = 667; e.atilde = 444; e.Edotaccent = 611; e.scaron = 389; e.scedilla = 389; e.iacute = 278; e.lozenge = 471; e.Rcaron = 667; e.Gcommaaccent = 722; e.ucircumflex = 500; e.acircumflex = 444; e.Amacron = 722; e.rcaron = 333; e.ccedilla = 444; e.Zdotaccent = 611; e.Thorn = 556; e.Omacron = 722; e.Racute = 667; e.Sacute = 556; e.dcaron = 588; e.Umacron = 722; e.uring = 500; e.threesuperior = 300; e.Ograve = 722; e.Agrave = 722; e.Abreve = 722; e.multiply = 564; e.uacute = 500; e.Tcaron = 611; e.partialdiff = 476; e.ydieresis = 500; e.Nacute = 722; e.icircumflex = 278; e.Ecircumflex = 611; e.adieresis = 444; e.edieresis = 444; e.cacute = 444; e.nacute = 500; e.umacron = 500; e.Ncaron = 722; e.Iacute = 333; e.plusminus = 564; e.brokenbar = 200; e.registered = 760; e.Gbreve = 722; e.Idotaccent = 333; e.summation = 600; e.Egrave = 611; e.racute = 333; e.omacron = 500; e.Zacute = 611; e.Zcaron = 611; e.greaterequal = 549; e.Eth = 722; e.Ccedilla = 667; e.lcommaaccent = 278; e.tcaron = 326; e.eogonek = 444; e.Uogonek = 722; e.Aacute = 722; e.Adieresis = 722; e.egrave = 444; e.zacute = 444; e.iogonek = 278; e.Oacute = 722; e.oacute = 500; e.amacron = 444; e.sacute = 389; e.idieresis = 278; e.Ocircumflex = 722; e.Ugrave = 722; e.Delta = 612; e.thorn = 500; e.twosuperior = 300; e.Odieresis = 722; e.mu = 500; e.igrave = 278; e.ohungarumlaut = 500; e.Eogonek = 611; e.dcroat = 500; e.threequarters = 750; e.Scedilla = 556; e.lcaron = 344; e.Kcommaaccent = 722; e.Lacute = 611; e.trademark = 980; e.edotaccent = 444; e.Igrave = 333; e.Imacron = 333; e.Lcaron = 611; e.onehalf = 750; e.lessequal = 549; e.ocircumflex = 500; e.ntilde = 500; e.Uhungarumlaut = 722; e.Eacute = 611; e.emacron = 444; e.gbreve = 500; e.onequarter = 750; e.Scaron = 556; e.Scommaaccent = 556; e.Ohungarumlaut = 722; e.degree = 400; e.ograve = 500; e.Ccaron = 667; e.ugrave = 500; e.radical = 453; e.Dcaron = 722; e.rcommaaccent = 333; e.Ntilde = 722; e.otilde = 500; e.Rcommaaccent = 667; e.Lcommaaccent = 611; e.Atilde = 722; e.Aogonek = 722; e.Aring = 722; e.Otilde = 722; e.zdotaccent = 444; e.Ecaron = 611; e.Iogonek = 333; e.kcommaaccent = 500; e.minus = 564; e.Icircumflex = 333; e.ncaron = 500; e.tcommaaccent = 278; e.logicalnot = 564; e.odieresis = 500; e.udieresis = 500; e.notequal = 549; e.gcommaaccent = 500; e.eth = 500; e.zcaron = 444; e.ncommaaccent = 500; e.onesuperior = 300; e.imacron = 278; e.Euro = 500; })); e["Times-Bold"] = getLookupTableFactory((function (e) { e.space = 250; e.exclam = 333; e.quotedbl = 555; e.numbersign = 500; e.dollar = 500; e.percent = 1e3; e.ampersand = 833; e.quoteright = 333; e.parenleft = 333; e.parenright = 333; e.asterisk = 500; e.plus = 570; e.comma = 250; e.hyphen = 333; e.period = 250; e.slash = 278; e.zero = 500; e.one = 500; e.two = 500; e.three = 500; e.four = 500; e.five = 500; e.six = 500; e.seven = 500; e.eight = 500; e.nine = 500; e.colon = 333; e.semicolon = 333; e.less = 570; e.equal = 570; e.greater = 570; e.question = 500; e.at = 930; e.A = 722; e.B = 667; e.C = 722; e.D = 722; e.E = 667; e.F = 611; e.G = 778; e.H = 778; e.I = 389; e.J = 500; e.K = 778; e.L = 667; e.M = 944; e.N = 722; e.O = 778; e.P = 611; e.Q = 778; e.R = 722; e.S = 556; e.T = 667; e.U = 722; e.V = 722; e.W = 1e3; e.X = 722; e.Y = 722; e.Z = 667; e.bracketleft = 333; e.backslash = 278; e.bracketright = 333; e.asciicircum = 581; e.underscore = 500; e.quoteleft = 333; e.a = 500; e.b = 556; e.c = 444; e.d = 556; e.e = 444; e.f = 333; e.g = 500; e.h = 556; e.i = 278; e.j = 333; e.k = 556; e.l = 278; e.m = 833; e.n = 556; e.o = 500; e.p = 556; e.q = 556; e.r = 444; e.s = 389; e.t = 333; e.u = 556; e.v = 500; e.w = 722; e.x = 500; e.y = 500; e.z = 444; e.braceleft = 394; e.bar = 220; e.braceright = 394; e.asciitilde = 520; e.exclamdown = 333; e.cent = 500; e.sterling = 500; e.fraction = 167; e.yen = 500; e.florin = 500; e.section = 500; e.currency = 500; e.quotesingle = 278; e.quotedblleft = 500; e.guillemotleft = 500; e.guilsinglleft = 333; e.guilsinglright = 333; e.fi = 556; e.fl = 556; e.endash = 500; e.dagger = 500; e.daggerdbl = 500; e.periodcentered = 250; e.paragraph = 540; e.bullet = 350; e.quotesinglbase = 333; e.quotedblbase = 500; e.quotedblright = 500; e.guillemotright = 500; e.ellipsis = 1e3; e.perthousand = 1e3; e.questiondown = 500; e.grave = 333; e.acute = 333; e.circumflex = 333; e.tilde = 333; e.macron = 333; e.breve = 333; e.dotaccent = 333; e.dieresis = 333; e.ring = 333; e.cedilla = 333; e.hungarumlaut = 333; e.ogonek = 333; e.caron = 333; e.emdash = 1e3; e.AE = 1e3; e.ordfeminine = 300; e.Lslash = 667; e.Oslash = 778; e.OE = 1e3; e.ordmasculine = 330; e.ae = 722; e.dotlessi = 278; e.lslash = 278; e.oslash = 500; e.oe = 722; e.germandbls = 556; e.Idieresis = 389; e.eacute = 444; e.abreve = 500; e.uhungarumlaut = 556; e.ecaron = 444; e.Ydieresis = 722; e.divide = 570; e.Yacute = 722; e.Acircumflex = 722; e.aacute = 500; e.Ucircumflex = 722; e.yacute = 500; e.scommaaccent = 389; e.ecircumflex = 444; e.Uring = 722; e.Udieresis = 722; e.aogonek = 500; e.Uacute = 722; e.uogonek = 556; e.Edieresis = 667; e.Dcroat = 722; e.commaaccent = 250; e.copyright = 747; e.Emacron = 667; e.ccaron = 444; e.aring = 500; e.Ncommaaccent = 722; e.lacute = 278; e.agrave = 500; e.Tcommaaccent = 667; e.Cacute = 722; e.atilde = 500; e.Edotaccent = 667; e.scaron = 389; e.scedilla = 389; e.iacute = 278; e.lozenge = 494; e.Rcaron = 722; e.Gcommaaccent = 778; e.ucircumflex = 556; e.acircumflex = 500; e.Amacron = 722; e.rcaron = 444; e.ccedilla = 444; e.Zdotaccent = 667; e.Thorn = 611; e.Omacron = 778; e.Racute = 722; e.Sacute = 556; e.dcaron = 672; e.Umacron = 722; e.uring = 556; e.threesuperior = 300; e.Ograve = 778; e.Agrave = 722; e.Abreve = 722; e.multiply = 570; e.uacute = 556; e.Tcaron = 667; e.partialdiff = 494; e.ydieresis = 500; e.Nacute = 722; e.icircumflex = 278; e.Ecircumflex = 667; e.adieresis = 500; e.edieresis = 444; e.cacute = 444; e.nacute = 556; e.umacron = 556; e.Ncaron = 722; e.Iacute = 389; e.plusminus = 570; e.brokenbar = 220; e.registered = 747; e.Gbreve = 778; e.Idotaccent = 389; e.summation = 600; e.Egrave = 667; e.racute = 444; e.omacron = 500; e.Zacute = 667; e.Zcaron = 667; e.greaterequal = 549; e.Eth = 722; e.Ccedilla = 722; e.lcommaaccent = 278; e.tcaron = 416; e.eogonek = 444; e.Uogonek = 722; e.Aacute = 722; e.Adieresis = 722; e.egrave = 444; e.zacute = 444; e.iogonek = 278; e.Oacute = 778; e.oacute = 500; e.amacron = 500; e.sacute = 389; e.idieresis = 278; e.Ocircumflex = 778; e.Ugrave = 722; e.Delta = 612; e.thorn = 556; e.twosuperior = 300; e.Odieresis = 778; e.mu = 556; e.igrave = 278; e.ohungarumlaut = 500; e.Eogonek = 667; e.dcroat = 556; e.threequarters = 750; e.Scedilla = 556; e.lcaron = 394; e.Kcommaaccent = 778; e.Lacute = 667; e.trademark = 1e3; e.edotaccent = 444; e.Igrave = 389; e.Imacron = 389; e.Lcaron = 667; e.onehalf = 750; e.lessequal = 549; e.ocircumflex = 500; e.ntilde = 556; e.Uhungarumlaut = 722; e.Eacute = 667; e.emacron = 444; e.gbreve = 500; e.onequarter = 750; e.Scaron = 556; e.Scommaaccent = 556; e.Ohungarumlaut = 778; e.degree = 400; e.ograve = 500; e.Ccaron = 722; e.ugrave = 556; e.radical = 549; e.Dcaron = 722; e.rcommaaccent = 444; e.Ntilde = 722; e.otilde = 500; e.Rcommaaccent = 722; e.Lcommaaccent = 667; e.Atilde = 722; e.Aogonek = 722; e.Aring = 722; e.Otilde = 778; e.zdotaccent = 444; e.Ecaron = 667; e.Iogonek = 389; e.kcommaaccent = 556; e.minus = 570; e.Icircumflex = 389; e.ncaron = 556; e.tcommaaccent = 333; e.logicalnot = 570; e.odieresis = 500; e.udieresis = 556; e.notequal = 549; e.gcommaaccent = 500; e.eth = 500; e.zcaron = 444; e.ncommaaccent = 556; e.onesuperior = 300; e.imacron = 278; e.Euro = 500; })); e["Times-BoldItalic"] = getLookupTableFactory((function (e) { e.space = 250; e.exclam = 389; e.quotedbl = 555; e.numbersign = 500; e.dollar = 500; e.percent = 833; e.ampersand = 778; e.quoteright = 333; e.parenleft = 333; e.parenright = 333; e.asterisk = 500; e.plus = 570; e.comma = 250; e.hyphen = 333; e.period = 250; e.slash = 278; e.zero = 500; e.one = 500; e.two = 500; e.three = 500; e.four = 500; e.five = 500; e.six = 500; e.seven = 500; e.eight = 500; e.nine = 500; e.colon = 333; e.semicolon = 333; e.less = 570; e.equal = 570; e.greater = 570; e.question = 500; e.at = 832; e.A = 667; e.B = 667; e.C = 667; e.D = 722; e.E = 667; e.F = 667; e.G = 722; e.H = 778; e.I = 389; e.J = 500; e.K = 667; e.L = 611; e.M = 889; e.N = 722; e.O = 722; e.P = 611; e.Q = 722; e.R = 667; e.S = 556; e.T = 611; e.U = 722; e.V = 667; e.W = 889; e.X = 667; e.Y = 611; e.Z = 611; e.bracketleft = 333; e.backslash = 278; e.bracketright = 333; e.asciicircum = 570; e.underscore = 500; e.quoteleft = 333; e.a = 500; e.b = 500; e.c = 444; e.d = 500; e.e = 444; e.f = 333; e.g = 500; e.h = 556; e.i = 278; e.j = 278; e.k = 500; e.l = 278; e.m = 778; e.n = 556; e.o = 500; e.p = 500; e.q = 500; e.r = 389; e.s = 389; e.t = 278; e.u = 556; e.v = 444; e.w = 667; e.x = 500; e.y = 444; e.z = 389; e.braceleft = 348; e.bar = 220; e.braceright = 348; e.asciitilde = 570; e.exclamdown = 389; e.cent = 500; e.sterling = 500; e.fraction = 167; e.yen = 500; e.florin = 500; e.section = 500; e.currency = 500; e.quotesingle = 278; e.quotedblleft = 500; e.guillemotleft = 500; e.guilsinglleft = 333; e.guilsinglright = 333; e.fi = 556; e.fl = 556; e.endash = 500; e.dagger = 500; e.daggerdbl = 500; e.periodcentered = 250; e.paragraph = 500; e.bullet = 350; e.quotesinglbase = 333; e.quotedblbase = 500; e.quotedblright = 500; e.guillemotright = 500; e.ellipsis = 1e3; e.perthousand = 1e3; e.questiondown = 500; e.grave = 333; e.acute = 333; e.circumflex = 333; e.tilde = 333; e.macron = 333; e.breve = 333; e.dotaccent = 333; e.dieresis = 333; e.ring = 333; e.cedilla = 333; e.hungarumlaut = 333; e.ogonek = 333; e.caron = 333; e.emdash = 1e3; e.AE = 944; e.ordfeminine = 266; e.Lslash = 611; e.Oslash = 722; e.OE = 944; e.ordmasculine = 300; e.ae = 722; e.dotlessi = 278; e.lslash = 278; e.oslash = 500; e.oe = 722; e.germandbls = 500; e.Idieresis = 389; e.eacute = 444; e.abreve = 500; e.uhungarumlaut = 556; e.ecaron = 444; e.Ydieresis = 611; e.divide = 570; e.Yacute = 611; e.Acircumflex = 667; e.aacute = 500; e.Ucircumflex = 722; e.yacute = 444; e.scommaaccent = 389; e.ecircumflex = 444; e.Uring = 722; e.Udieresis = 722; e.aogonek = 500; e.Uacute = 722; e.uogonek = 556; e.Edieresis = 667; e.Dcroat = 722; e.commaaccent = 250; e.copyright = 747; e.Emacron = 667; e.ccaron = 444; e.aring = 500; e.Ncommaaccent = 722; e.lacute = 278; e.agrave = 500; e.Tcommaaccent = 611; e.Cacute = 667; e.atilde = 500; e.Edotaccent = 667; e.scaron = 389; e.scedilla = 389; e.iacute = 278; e.lozenge = 494; e.Rcaron = 667; e.Gcommaaccent = 722; e.ucircumflex = 556; e.acircumflex = 500; e.Amacron = 667; e.rcaron = 389; e.ccedilla = 444; e.Zdotaccent = 611; e.Thorn = 611; e.Omacron = 722; e.Racute = 667; e.Sacute = 556; e.dcaron = 608; e.Umacron = 722; e.uring = 556; e.threesuperior = 300; e.Ograve = 722; e.Agrave = 667; e.Abreve = 667; e.multiply = 570; e.uacute = 556; e.Tcaron = 611; e.partialdiff = 494; e.ydieresis = 444; e.Nacute = 722; e.icircumflex = 278; e.Ecircumflex = 667; e.adieresis = 500; e.edieresis = 444; e.cacute = 444; e.nacute = 556; e.umacron = 556; e.Ncaron = 722; e.Iacute = 389; e.plusminus = 570; e.brokenbar = 220; e.registered = 747; e.Gbreve = 722; e.Idotaccent = 389; e.summation = 600; e.Egrave = 667; e.racute = 389; e.omacron = 500; e.Zacute = 611; e.Zcaron = 611; e.greaterequal = 549; e.Eth = 722; e.Ccedilla = 667; e.lcommaaccent = 278; e.tcaron = 366; e.eogonek = 444; e.Uogonek = 722; e.Aacute = 667; e.Adieresis = 667; e.egrave = 444; e.zacute = 389; e.iogonek = 278; e.Oacute = 722; e.oacute = 500; e.amacron = 500; e.sacute = 389; e.idieresis = 278; e.Ocircumflex = 722; e.Ugrave = 722; e.Delta = 612; e.thorn = 500; e.twosuperior = 300; e.Odieresis = 722; e.mu = 576; e.igrave = 278; e.ohungarumlaut = 500; e.Eogonek = 667; e.dcroat = 500; e.threequarters = 750; e.Scedilla = 556; e.lcaron = 382; e.Kcommaaccent = 667; e.Lacute = 611; e.trademark = 1e3; e.edotaccent = 444; e.Igrave = 389; e.Imacron = 389; e.Lcaron = 611; e.onehalf = 750; e.lessequal = 549; e.ocircumflex = 500; e.ntilde = 556; e.Uhungarumlaut = 722; e.Eacute = 667; e.emacron = 444; e.gbreve = 500; e.onequarter = 750; e.Scaron = 556; e.Scommaaccent = 556; e.Ohungarumlaut = 722; e.degree = 400; e.ograve = 500; e.Ccaron = 667; e.ugrave = 556; e.radical = 549; e.Dcaron = 722; e.rcommaaccent = 389; e.Ntilde = 722; e.otilde = 500; e.Rcommaaccent = 667; e.Lcommaaccent = 611; e.Atilde = 667; e.Aogonek = 667; e.Aring = 667; e.Otilde = 722; e.zdotaccent = 389; e.Ecaron = 667; e.Iogonek = 389; e.kcommaaccent = 500; e.minus = 606; e.Icircumflex = 389; e.ncaron = 556; e.tcommaaccent = 278; e.logicalnot = 606; e.odieresis = 500; e.udieresis = 556; e.notequal = 549; e.gcommaaccent = 500; e.eth = 500; e.zcaron = 389; e.ncommaaccent = 556; e.onesuperior = 300; e.imacron = 278; e.Euro = 500; })); e["Times-Italic"] = getLookupTableFactory((function (e) { e.space = 250; e.exclam = 333; e.quotedbl = 420; e.numbersign = 500; e.dollar = 500; e.percent = 833; e.ampersand = 778; e.quoteright = 333; e.parenleft = 333; e.parenright = 333; e.asterisk = 500; e.plus = 675; e.comma = 250; e.hyphen = 333; e.period = 250; e.slash = 278; e.zero = 500; e.one = 500; e.two = 500; e.three = 500; e.four = 500; e.five = 500; e.six = 500; e.seven = 500; e.eight = 500; e.nine = 500; e.colon = 333; e.semicolon = 333; e.less = 675; e.equal = 675; e.greater = 675; e.question = 500; e.at = 920; e.A = 611; e.B = 611; e.C = 667; e.D = 722; e.E = 611; e.F = 611; e.G = 722; e.H = 722; e.I = 333; e.J = 444; e.K = 667; e.L = 556; e.M = 833; e.N = 667; e.O = 722; e.P = 611; e.Q = 722; e.R = 611; e.S = 500; e.T = 556; e.U = 722; e.V = 611; e.W = 833; e.X = 611; e.Y = 556; e.Z = 556; e.bracketleft = 389; e.backslash = 278; e.bracketright = 389; e.asciicircum = 422; e.underscore = 500; e.quoteleft = 333; e.a = 500; e.b = 500; e.c = 444; e.d = 500; e.e = 444; e.f = 278; e.g = 500; e.h = 500; e.i = 278; e.j = 278; e.k = 444; e.l = 278; e.m = 722; e.n = 500; e.o = 500; e.p = 500; e.q = 500; e.r = 389; e.s = 389; e.t = 278; e.u = 500; e.v = 444; e.w = 667; e.x = 444; e.y = 444; e.z = 389; e.braceleft = 400; e.bar = 275; e.braceright = 400; e.asciitilde = 541; e.exclamdown = 389; e.cent = 500; e.sterling = 500; e.fraction = 167; e.yen = 500; e.florin = 500; e.section = 500; e.currency = 500; e.quotesingle = 214; e.quotedblleft = 556; e.guillemotleft = 500; e.guilsinglleft = 333; e.guilsinglright = 333; e.fi = 500; e.fl = 500; e.endash = 500; e.dagger = 500; e.daggerdbl = 500; e.periodcentered = 250; e.paragraph = 523; e.bullet = 350; e.quotesinglbase = 333; e.quotedblbase = 556; e.quotedblright = 556; e.guillemotright = 500; e.ellipsis = 889; e.perthousand = 1e3; e.questiondown = 500; e.grave = 333; e.acute = 333; e.circumflex = 333; e.tilde = 333; e.macron = 333; e.breve = 333; e.dotaccent = 333; e.dieresis = 333; e.ring = 333; e.cedilla = 333; e.hungarumlaut = 333; e.ogonek = 333; e.caron = 333; e.emdash = 889; e.AE = 889; e.ordfeminine = 276; e.Lslash = 556; e.Oslash = 722; e.OE = 944; e.ordmasculine = 310; e.ae = 667; e.dotlessi = 278; e.lslash = 278; e.oslash = 500; e.oe = 667; e.germandbls = 500; e.Idieresis = 333; e.eacute = 444; e.abreve = 500; e.uhungarumlaut = 500; e.ecaron = 444; e.Ydieresis = 556; e.divide = 675; e.Yacute = 556; e.Acircumflex = 611; e.aacute = 500; e.Ucircumflex = 722; e.yacute = 444; e.scommaaccent = 389; e.ecircumflex = 444; e.Uring = 722; e.Udieresis = 722; e.aogonek = 500; e.Uacute = 722; e.uogonek = 500; e.Edieresis = 611; e.Dcroat = 722; e.commaaccent = 250; e.copyright = 760; e.Emacron = 611; e.ccaron = 444; e.aring = 500; e.Ncommaaccent = 667; e.lacute = 278; e.agrave = 500; e.Tcommaaccent = 556; e.Cacute = 667; e.atilde = 500; e.Edotaccent = 611; e.scaron = 389; e.scedilla = 389; e.iacute = 278; e.lozenge = 471; e.Rcaron = 611; e.Gcommaaccent = 722; e.ucircumflex = 500; e.acircumflex = 500; e.Amacron = 611; e.rcaron = 389; e.ccedilla = 444; e.Zdotaccent = 556; e.Thorn = 611; e.Omacron = 722; e.Racute = 611; e.Sacute = 500; e.dcaron = 544; e.Umacron = 722; e.uring = 500; e.threesuperior = 300; e.Ograve = 722; e.Agrave = 611; e.Abreve = 611; e.multiply = 675; e.uacute = 500; e.Tcaron = 556; e.partialdiff = 476; e.ydieresis = 444; e.Nacute = 667; e.icircumflex = 278; e.Ecircumflex = 611; e.adieresis = 500; e.edieresis = 444; e.cacute = 444; e.nacute = 500; e.umacron = 500; e.Ncaron = 667; e.Iacute = 333; e.plusminus = 675; e.brokenbar = 275; e.registered = 760; e.Gbreve = 722; e.Idotaccent = 333; e.summation = 600; e.Egrave = 611; e.racute = 389; e.omacron = 500; e.Zacute = 556; e.Zcaron = 556; e.greaterequal = 549; e.Eth = 722; e.Ccedilla = 667; e.lcommaaccent = 278; e.tcaron = 300; e.eogonek = 444; e.Uogonek = 722; e.Aacute = 611; e.Adieresis = 611; e.egrave = 444; e.zacute = 389; e.iogonek = 278; e.Oacute = 722; e.oacute = 500; e.amacron = 500; e.sacute = 389; e.idieresis = 278; e.Ocircumflex = 722; e.Ugrave = 722; e.Delta = 612; e.thorn = 500; e.twosuperior = 300; e.Odieresis = 722; e.mu = 500; e.igrave = 278; e.ohungarumlaut = 500; e.Eogonek = 611; e.dcroat = 500; e.threequarters = 750; e.Scedilla = 500; e.lcaron = 300; e.Kcommaaccent = 667; e.Lacute = 556; e.trademark = 980; e.edotaccent = 444; e.Igrave = 333; e.Imacron = 333; e.Lcaron = 611; e.onehalf = 750; e.lessequal = 549; e.ocircumflex = 500; e.ntilde = 500; e.Uhungarumlaut = 722; e.Eacute = 611; e.emacron = 444; e.gbreve = 500; e.onequarter = 750; e.Scaron = 500; e.Scommaaccent = 500; e.Ohungarumlaut = 722; e.degree = 400; e.ograve = 500; e.Ccaron = 667; e.ugrave = 500; e.radical = 453; e.Dcaron = 722; e.rcommaaccent = 389; e.Ntilde = 667; e.otilde = 500; e.Rcommaaccent = 611; e.Lcommaaccent = 556; e.Atilde = 611; e.Aogonek = 611; e.Aring = 611; e.Otilde = 722; e.zdotaccent = 389; e.Ecaron = 611; e.Iogonek = 333; e.kcommaaccent = 444; e.minus = 675; e.Icircumflex = 333; e.ncaron = 500; e.tcommaaccent = 278; e.logicalnot = 675; e.odieresis = 500; e.udieresis = 500; e.notequal = 549; e.gcommaaccent = 500; e.eth = 500; e.zcaron = 389; e.ncommaaccent = 500; e.onesuperior = 300; e.imacron = 278; e.Euro = 500; })); e.ZapfDingbats = getLookupTableFactory((function (e) { e.space = 278; e.a1 = 974; e.a2 = 961; e.a202 = 974; e.a3 = 980; e.a4 = 719; e.a5 = 789; e.a119 = 790; e.a118 = 791; e.a117 = 690; e.a11 = 960; e.a12 = 939; e.a13 = 549; e.a14 = 855; e.a15 = 911; e.a16 = 933; e.a105 = 911; e.a17 = 945; e.a18 = 974; e.a19 = 755; e.a20 = 846; e.a21 = 762; e.a22 = 761; e.a23 = 571; e.a24 = 677; e.a25 = 763; e.a26 = 760; e.a27 = 759; e.a28 = 754; e.a6 = 494; e.a7 = 552; e.a8 = 537; e.a9 = 577; e.a10 = 692; e.a29 = 786; e.a30 = 788; e.a31 = 788; e.a32 = 790; e.a33 = 793; e.a34 = 794; e.a35 = 816; e.a36 = 823; e.a37 = 789; e.a38 = 841; e.a39 = 823; e.a40 = 833; e.a41 = 816; e.a42 = 831; e.a43 = 923; e.a44 = 744; e.a45 = 723; e.a46 = 749; e.a47 = 790; e.a48 = 792; e.a49 = 695; e.a50 = 776; e.a51 = 768; e.a52 = 792; e.a53 = 759; e.a54 = 707; e.a55 = 708; e.a56 = 682; e.a57 = 701; e.a58 = 826; e.a59 = 815; e.a60 = 789; e.a61 = 789; e.a62 = 707; e.a63 = 687; e.a64 = 696; e.a65 = 689; e.a66 = 786; e.a67 = 787; e.a68 = 713; e.a69 = 791; e.a70 = 785; e.a71 = 791; e.a72 = 873; e.a73 = 761; e.a74 = 762; e.a203 = 762; e.a75 = 759; e.a204 = 759; e.a76 = 892; e.a77 = 892; e.a78 = 788; e.a79 = 784; e.a81 = 438; e.a82 = 138; e.a83 = 277; e.a84 = 415; e.a97 = 392; e.a98 = 392; e.a99 = 668; e.a100 = 668; e.a89 = 390; e.a90 = 390; e.a93 = 317; e.a94 = 317; e.a91 = 276; e.a92 = 276; e.a205 = 509; e.a85 = 509; e.a206 = 410; e.a86 = 410; e.a87 = 234; e.a88 = 234; e.a95 = 334; e.a96 = 334; e.a101 = 732; e.a102 = 544; e.a103 = 544; e.a104 = 910; e.a106 = 667; e.a107 = 760; e.a108 = 760; e.a112 = 776; e.a111 = 595; e.a110 = 694; e.a109 = 626; e.a120 = 788; e.a121 = 788; e.a122 = 788; e.a123 = 788; e.a124 = 788; e.a125 = 788; e.a126 = 788; e.a127 = 788; e.a128 = 788; e.a129 = 788; e.a130 = 788; e.a131 = 788; e.a132 = 788; e.a133 = 788; e.a134 = 788; e.a135 = 788; e.a136 = 788; e.a137 = 788; e.a138 = 788; e.a139 = 788; e.a140 = 788; e.a141 = 788; e.a142 = 788; e.a143 = 788; e.a144 = 788; e.a145 = 788; e.a146 = 788; e.a147 = 788; e.a148 = 788; e.a149 = 788; e.a150 = 788; e.a151 = 788; e.a152 = 788; e.a153 = 788; e.a154 = 788; e.a155 = 788; e.a156 = 788; e.a157 = 788; e.a158 = 788; e.a159 = 788; e.a160 = 894; e.a161 = 838; e.a163 = 1016; e.a164 = 458; e.a196 = 748; e.a165 = 924; e.a192 = 748; e.a166 = 918; e.a167 = 927; e.a168 = 928; e.a169 = 928; e.a170 = 834; e.a171 = 873; e.a172 = 828; e.a173 = 924; e.a162 = 924; e.a174 = 917; e.a175 = 930; e.a176 = 931; e.a177 = 463; e.a178 = 883; e.a179 = 836; e.a193 = 836; e.a180 = 867; e.a199 = 867; e.a181 = 696; e.a200 = 696; e.a182 = 874; e.a201 = 874; e.a183 = 760; e.a184 = 946; e.a197 = 771; e.a185 = 865; e.a194 = 771; e.a198 = 888; e.a186 = 967; e.a195 = 888; e.a187 = 831; e.a188 = 873; e.a189 = 927; e.a190 = 970; e.a191 = 918; })); })), ea = getLookupTableFactory((function (e) { e.Courier = { ascent: 629, descent: -157, capHeight: 562, xHeight: -426 }; e["Courier-Bold"] = { ascent: 629, descent: -157, capHeight: 562, xHeight: 439 }; e["Courier-Oblique"] = { ascent: 629, descent: -157, capHeight: 562, xHeight: 426 }; e["Courier-BoldOblique"] = { ascent: 629, descent: -157, capHeight: 562, xHeight: 426 }; e.Helvetica = { ascent: 718, descent: -207, capHeight: 718, xHeight: 523 }; e["Helvetica-Bold"] = { ascent: 718, descent: -207, capHeight: 718, xHeight: 532 }; e["Helvetica-Oblique"] = { ascent: 718, descent: -207, capHeight: 718, xHeight: 523 }; e["Helvetica-BoldOblique"] = { ascent: 718, descent: -207, capHeight: 718, xHeight: 532 }; e["Times-Roman"] = { ascent: 683, descent: -217, capHeight: 662, xHeight: 450 }; e["Times-Bold"] = { ascent: 683, descent: -217, capHeight: 676, xHeight: 461 }; e["Times-Italic"] = { ascent: 683, descent: -217, capHeight: 653, xHeight: 441 }; e["Times-BoldItalic"] = { ascent: 683, descent: -217, capHeight: 669, xHeight: 462 }; e.Symbol = { ascent: Math.NaN, descent: Math.NaN, capHeight: Math.NaN, xHeight: Math.NaN }; e.ZapfDingbats = { ascent: Math.NaN, descent: Math.NaN, capHeight: Math.NaN, xHeight: Math.NaN }; })); var GlyfTable = /** @class */ (function () { function GlyfTable(_b) { var e = _b.glyfTable, t = _b.isGlyphLocationsLong, i = _b.locaTable, a = _b.numGlyphs; this.glyphs = []; var s = new DataView(i.buffer, i.byteOffset, i.byteLength), r = new DataView(e.buffer, e.byteOffset, e.byteLength), n = t ? 4 : 2; var o = t ? s.getUint32(0) : 2 * s.getUint16(0), g = 0; for (var e_148 = 0; e_148 < a; e_148++) { g += n; var e_149 = t ? s.getUint32(g) : 2 * s.getUint16(g); if (e_149 === o) { this.glyphs.push(new Glyph({})); continue; } var i_112 = Glyph.parse(o, r); this.glyphs.push(i_112); o = e_149; } } GlyfTable.prototype.getSize = function () { return this.glyphs.reduce((function (e, t) { return e + (t.getSize() + 3 & -4); }), 0); }; GlyfTable.prototype.write = function () { var e = this.getSize(), t = new DataView(new ArrayBuffer(e)), i = e > 131070, a = i ? 4 : 2, s = new DataView(new ArrayBuffer((this.glyphs.length + 1) * a)); i ? s.setUint32(0, 0) : s.setUint16(0, 0); var r = 0, n = 0; for (var _b = 0, _h = this.glyphs; _b < _h.length; _b++) { var e_150 = _h[_b]; r += e_150.write(r, t); r = r + 3 & -4; n += a; i ? s.setUint32(n, r) : s.setUint16(n, r >> 1); } return { isLocationLong: i, loca: new Uint8Array(s.buffer), glyf: new Uint8Array(t.buffer) }; }; GlyfTable.prototype.scale = function (e) { for (var t_128 = 0, i_113 = this.glyphs.length; t_128 < i_113; t_128++) this.glyphs[t_128].scale(e[t_128]); }; return GlyfTable; }()); var Glyph = /** @class */ (function () { function Glyph(_b) { var _h = _b.header, e = _h === void 0 ? null : _h, _j = _b.simple, t = _j === void 0 ? null : _j, _k = _b.composites, i = _k === void 0 ? null : _k; this.header = e; this.simple = t; this.composites = i; } Glyph.parse = function (e, t) { var _b = GlyphHeader.parse(e, t), i = _b[0], a = _b[1]; e += i; if (a.numberOfContours < 0) { var i_114 = []; for (;;) { var _h = CompositeGlyph.parse(e, t), a_106 = _h[0], s_72 = _h[1]; e += a_106; i_114.push(s_72); if (!(32 & s_72.flags)) break; } return new Glyph({ header: a, composites: i_114 }); } var s = SimpleGlyph.parse(e, t, a.numberOfContours); return new Glyph({ header: a, simple: s }); }; Glyph.prototype.getSize = function () { if (!this.header) return 0; var e = this.simple ? this.simple.getSize() : this.composites.reduce((function (e, t) { return e + t.getSize(); }), 0); return this.header.getSize() + e; }; Glyph.prototype.write = function (e, t) { if (!this.header) return 0; var i = e; e += this.header.write(e, t); if (this.simple) e += this.simple.write(e, t); else for (var _b = 0, _h = this.composites; _b < _h.length; _b++) { var i_115 = _h[_b]; e += i_115.write(e, t); } return e - i; }; Glyph.prototype.scale = function (e) { if (!this.header) return; var t = (this.header.xMin + this.header.xMax) / 2; this.header.scale(t, e); if (this.simple) this.simple.scale(t, e); else for (var _b = 0, _h = this.composites; _b < _h.length; _b++) { var i_116 = _h[_b]; i_116.scale(t, e); } }; return Glyph; }()); var GlyphHeader = /** @class */ (function () { function GlyphHeader(_b) { var e = _b.numberOfContours, t = _b.xMin, i = _b.yMin, a = _b.xMax, s = _b.yMax; this.numberOfContours = e; this.xMin = t; this.yMin = i; this.xMax = a; this.yMax = s; } GlyphHeader.parse = function (e, t) { return [10, new GlyphHeader({ numberOfContours: t.getInt16(e), xMin: t.getInt16(e + 2), yMin: t.getInt16(e + 4), xMax: t.getInt16(e + 6), yMax: t.getInt16(e + 8) })]; }; GlyphHeader.prototype.getSize = function () { return 10; }; GlyphHeader.prototype.write = function (e, t) { t.setInt16(e, this.numberOfContours); t.setInt16(e + 2, this.xMin); t.setInt16(e + 4, this.yMin); t.setInt16(e + 6, this.xMax); t.setInt16(e + 8, this.yMax); return 10; }; GlyphHeader.prototype.scale = function (e, t) { this.xMin = Math.round(e + (this.xMin - e) * t); this.xMax = Math.round(e + (this.xMax - e) * t); }; return GlyphHeader; }()); var Contour = /** @class */ (function () { function Contour(_b) { var e = _b.flags, t = _b.xCoordinates, i = _b.yCoordinates; this.xCoordinates = t; this.yCoordinates = i; this.flags = e; } return Contour; }()); var SimpleGlyph = /** @class */ (function () { function SimpleGlyph(_b) { var e = _b.contours, t = _b.instructions; this.contours = e; this.instructions = t; } SimpleGlyph.parse = function (e, t, i) { var a = []; for (var s_73 = 0; s_73 < i; s_73++) { var i_117 = t.getUint16(e); e += 2; a.push(i_117); } var s = a[i - 1] + 1, r = t.getUint16(e); e += 2; var n = new Uint8Array(t).slice(e, e + r); e += r; var o = []; for (var i_118 = 0; i_118 < s; e++, i_118++) { var a_107 = t.getUint8(e); o.push(a_107); if (8 & a_107) { var s_74 = t.getUint8(++e); a_107 ^= 8; for (var e_151 = 0; e_151 < s_74; e_151++) o.push(a_107); i_118 += s_74; } } var g = []; var c = [], h = [], l = []; var C = []; var Q = 0, E = 0; for (var i_119 = 0; i_119 < s; i_119++) { var s_75 = o[i_119]; if (2 & s_75) { var i_120 = t.getUint8(e++); E += 16 & s_75 ? i_120 : -i_120; c.push(E); } else if (16 & s_75) c.push(E); else { E += t.getInt16(e); e += 2; c.push(E); } if (a[Q] === i_119) { Q++; g.push(c); c = []; } } E = 0; Q = 0; for (var i_121 = 0; i_121 < s; i_121++) { var s_76 = o[i_121]; if (4 & s_76) { var i_122 = t.getUint8(e++); E += 32 & s_76 ? i_122 : -i_122; h.push(E); } else if (32 & s_76) h.push(E); else { E += t.getInt16(e); e += 2; h.push(E); } l.push(1 & s_76 | 64 & s_76); if (a[Q] === i_121) { c = g[Q]; Q++; C.push(new Contour({ flags: l, xCoordinates: c, yCoordinates: h })); h = []; l = []; } } return new SimpleGlyph({ contours: C, instructions: n }); }; SimpleGlyph.prototype.getSize = function () { var e = 2 * this.contours.length + 2 + this.instructions.length, t = 0, i = 0; for (var _b = 0, _h = this.contours; _b < _h.length; _b++) { var a_108 = _h[_b]; e += a_108.flags.length; for (var s_77 = 0, r_52 = a_108.xCoordinates.length; s_77 < r_52; s_77++) { var r_53 = a_108.xCoordinates[s_77], n_38 = a_108.yCoordinates[s_77]; var o_26 = Math.abs(r_53 - t); o_26 > 255 ? e += 2 : o_26 > 0 && (e += 1); t = r_53; o_26 = Math.abs(n_38 - i); o_26 > 255 ? e += 2 : o_26 > 0 && (e += 1); i = n_38; } } return e; }; SimpleGlyph.prototype.write = function (e, t) { var i = e, a = [], s = [], r = []; var n = 0, o = 0; for (var _b = 0, _h = this.contours; _b < _h.length; _b++) { var i_123 = _h[_b]; for (var e_152 = 0, t_129 = i_123.xCoordinates.length; e_152 < t_129; e_152++) { var t_130 = i_123.flags[e_152]; var g_18 = i_123.xCoordinates[e_152]; var c_12 = g_18 - n; if (0 === c_12) { t_130 |= 16; a.push(0); } else { var e_153 = Math.abs(c_12); if (e_153 <= 255) { t_130 |= c_12 >= 0 ? 18 : 2; a.push(e_153); } else a.push(c_12); } n = g_18; var h_9 = i_123.yCoordinates[e_152]; c_12 = h_9 - o; if (0 === c_12) { t_130 |= 32; s.push(0); } else { var e_154 = Math.abs(c_12); if (e_154 <= 255) { t_130 |= c_12 >= 0 ? 36 : 4; s.push(e_154); } else s.push(c_12); } o = h_9; r.push(t_130); } t.setUint16(e, a.length - 1); e += 2; } t.setUint16(e, this.instructions.length); e += 2; if (this.instructions.length) { new Uint8Array(t.buffer, 0, t.buffer.byteLength).set(this.instructions, e); e += this.instructions.length; } for (var _j = 0, r_54 = r; _j < r_54.length; _j++) { var i_124 = r_54[_j]; t.setUint8(e++, i_124); } for (var i_125 = 0, s_78 = a.length; i_125 < s_78; i_125++) { var s_79 = a[i_125], n_39 = r[i_125]; if (2 & n_39) t.setUint8(e++, s_79); else if (!(16 & n_39)) { t.setInt16(e, s_79); e += 2; } } for (var i_126 = 0, a_109 = s.length; i_126 < a_109; i_126++) { var a_110 = s[i_126], n_40 = r[i_126]; if (4 & n_40) t.setUint8(e++, a_110); else if (!(32 & n_40)) { t.setInt16(e, a_110); e += 2; } } return e - i; }; SimpleGlyph.prototype.scale = function (e, t) { for (var _b = 0, _h = this.contours; _b < _h.length; _b++) { var i_127 = _h[_b]; if (0 !== i_127.xCoordinates.length) for (var a_111 = 0, s_80 = i_127.xCoordinates.length; a_111 < s_80; a_111++) i_127.xCoordinates[a_111] = Math.round(e + (i_127.xCoordinates[a_111] - e) * t); } }; return SimpleGlyph; }()); var CompositeGlyph = /** @class */ (function () { function CompositeGlyph(_b) { var e = _b.flags, t = _b.glyphIndex, i = _b.argument1, a = _b.argument2, s = _b.transf, r = _b.instructions; this.flags = e; this.glyphIndex = t; this.argument1 = i; this.argument2 = a; this.transf = s; this.instructions = r; } CompositeGlyph.parse = function (e, t) { var i = e, a = []; var s = t.getUint16(e); var r = t.getUint16(e + 2); e += 4; var n, o; if (1 & s) { if (2 & s) { n = t.getInt16(e); o = t.getInt16(e + 2); } else { n = t.getUint16(e); o = t.getUint16(e + 2); } e += 4; s ^= 1; } else { if (2 & s) { n = t.getInt8(e); o = t.getInt8(e + 1); } else { n = t.getUint8(e); o = t.getUint8(e + 1); } e += 2; } if (8 & s) { a.push(t.getUint16(e)); e += 2; } else if (64 & s) { a.push(t.getUint16(e), t.getUint16(e + 2)); e += 4; } else if (128 & s) { a.push(t.getUint16(e), t.getUint16(e + 2), t.getUint16(e + 4), t.getUint16(e + 6)); e += 8; } var g = null; if (256 & s) { var i_128 = t.getUint16(e); e += 2; g = new Uint8Array(t).slice(e, e + i_128); e += i_128; } return [e - i, new CompositeGlyph({ flags: s, glyphIndex: r, argument1: n, argument2: o, transf: a, instructions: g })]; }; CompositeGlyph.prototype.getSize = function () { var e = 4 + 2 * this.transf.length; 256 & this.flags && (e += 2 + this.instructions.length); e += 2; 2 & this.flags ? this.argument1 >= -128 && this.argument1 <= 127 && this.argument2 >= -128 && this.argument2 <= 127 || (e += 2) : this.argument1 >= 0 && this.argument1 <= 255 && this.argument2 >= 0 && this.argument2 <= 255 || (e += 2); return e; }; CompositeGlyph.prototype.write = function (e, t) { var i = e; 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); t.setUint16(e, this.flags); t.setUint16(e + 2, this.glyphIndex); e += 4; if (1 & this.flags) { if (2 & this.flags) { t.setInt16(e, this.argument1); t.setInt16(e + 2, this.argument2); } else { t.setUint16(e, this.argument1); t.setUint16(e + 2, this.argument2); } e += 4; } else { t.setUint8(e, this.argument1); t.setUint8(e + 1, this.argument2); e += 2; } if (256 & this.flags) { t.setUint16(e, this.instructions.length); e += 2; if (this.instructions.length) { new Uint8Array(t.buffer, 0, t.buffer.byteLength).set(this.instructions, e); e += this.instructions.length; } } return e - i; }; CompositeGlyph.prototype.scale = function (e, t) { }; return CompositeGlyph; }()); function writeInt16(e, t, i) { e[t] = i >> 8 & 255; e[t + 1] = 255 & i; } function writeInt32(e, t, i) { e[t] = i >> 24 & 255; e[t + 1] = i >> 16 & 255; e[t + 2] = i >> 8 & 255; e[t + 3] = 255 & i; } function writeData(e, t, i) { if (i instanceof Uint8Array) e.set(i, t); else if ("string" == typeof i) for (var a_112 = 0, s_81 = i.length; a_112 < s_81; a_112++) e[t++] = 255 & i.charCodeAt(a_112); else for (var _b = 0, i_129 = i; _b < i_129.length; _b++) { var a_113 = i_129[_b]; e[t++] = 255 & a_113; } } var OpenTypeFileBuilder = /** @class */ (function () { function OpenTypeFileBuilder(e) { this.sfnt = e; this.tables = Object.create(null); } OpenTypeFileBuilder.getSearchParams = function (e, t) { var i = 1, a = 0; for (; (i ^ e) > i;) { i <<= 1; a++; } var s = i * t; return { range: s, entry: a, rangeShift: t * e - s }; }; OpenTypeFileBuilder.prototype.toArray = function () { var e = this.sfnt; var t = this.tables, i = Object.keys(t); i.sort(); var a = i.length; var s, r, n, o, g, c = 12 + 16 * a; var h = [c]; for (s = 0; s < a; s++) { o = t[i[s]]; c += (o.length + 3 & -4) >>> 0; h.push(c); } var l = new Uint8Array(c); for (s = 0; s < a; s++) { o = t[i[s]]; writeData(l, h[s], o); } "true" === e && (e = string32(65536)); l[0] = 255 & e.charCodeAt(0); l[1] = 255 & e.charCodeAt(1); l[2] = 255 & e.charCodeAt(2); l[3] = 255 & e.charCodeAt(3); writeInt16(l, 4, a); var C = OpenTypeFileBuilder.getSearchParams(a, 16); writeInt16(l, 6, C.range); writeInt16(l, 8, C.entry); writeInt16(l, 10, C.rangeShift); c = 12; for (s = 0; s < a; s++) { g = i[s]; l[c] = 255 & g.charCodeAt(0); l[c + 1] = 255 & g.charCodeAt(1); l[c + 2] = 255 & g.charCodeAt(2); l[c + 3] = 255 & g.charCodeAt(3); var e_155 = 0; for (r = h[s], n = h[s + 1]; r < n; r += 4) { e_155 = e_155 + readUint32(l, r) >>> 0; } writeInt32(l, c + 4, e_155); writeInt32(l, c + 8, h[s]); writeInt32(l, c + 12, t[g].length); c += 16; } return l; }; OpenTypeFileBuilder.prototype.addTable = function (e, t) { if (e in this.tables) throw new Error("Table " + e + " already exists"); this.tables[e] = t; }; return OpenTypeFileBuilder; }()); var ta = [4], ia = [5], aa = [6], sa = [7], ra = [8], na = [12, 35], oa = [14], ga = [21], Ia = [22], ca = [30], ha = [31]; var Type1CharString = /** @class */ (function () { function Type1CharString() { this.width = 0; this.lsb = 0; this.flexing = !1; this.output = []; this.stack = []; } Type1CharString.prototype.convert = function (e, t, i) { var a = e.length; var s, r, n, o = !1; for (var g_19 = 0; g_19 < a; g_19++) { var a_114 = e[g_19]; if (a_114 < 32) { 12 === a_114 && (a_114 = (a_114 << 8) + e[++g_19]); switch (a_114) { case 1: case 3: case 9: case 3072: case 3073: case 3074: case 3105: this.stack = []; break; case 4: if (this.flexing) { if (this.stack.length < 1) { o = !0; break; } var e_156 = this.stack.pop(); this.stack.push(0, e_156); break; } o = this.executeCommand(1, ta); break; case 5: o = this.executeCommand(2, ia); break; case 6: o = this.executeCommand(1, aa); break; case 7: o = this.executeCommand(1, sa); break; case 8: o = this.executeCommand(6, ra); break; case 10: if (this.stack.length < 1) { o = !0; break; } n = this.stack.pop(); if (!t[n]) { o = !0; break; } o = this.convert(t[n], t, i); break; case 11: return o; case 13: if (this.stack.length < 2) { o = !0; break; } s = this.stack.pop(); r = this.stack.pop(); this.lsb = r; this.width = s; this.stack.push(s, r); o = this.executeCommand(2, Ia); break; case 14: this.output.push(oa[0]); break; case 21: if (this.flexing) break; o = this.executeCommand(2, ga); break; case 22: if (this.flexing) { this.stack.push(0); break; } o = this.executeCommand(1, Ia); break; case 30: o = this.executeCommand(4, ca); break; case 31: o = this.executeCommand(4, ha); break; case 3078: if (i) { var e_157 = this.stack.at(-5); this.seac = this.stack.splice(-4, 4); this.seac[0] += this.lsb - e_157; o = this.executeCommand(0, oa); } else o = this.executeCommand(4, oa); break; case 3079: if (this.stack.length < 4) { o = !0; break; } this.stack.pop(); s = this.stack.pop(); var e_158 = this.stack.pop(); r = this.stack.pop(); this.lsb = r; this.width = s; this.stack.push(s, r, e_158); o = this.executeCommand(3, ga); break; case 3084: if (this.stack.length < 2) { o = !0; break; } var g_20 = this.stack.pop(), c_13 = this.stack.pop(); this.stack.push(c_13 / g_20); break; case 3088: if (this.stack.length < 2) { o = !0; break; } n = this.stack.pop(); var h_10 = this.stack.pop(); if (0 === n && 3 === h_10) { var e_159 = this.stack.splice(-17, 17); this.stack.push(e_159[2] + e_159[0], e_159[3] + e_159[1], e_159[4], e_159[5], e_159[6], e_159[7], e_159[8], e_159[9], e_159[10], e_159[11], e_159[12], e_159[13], e_159[14]); o = this.executeCommand(13, na, !0); this.flexing = !1; this.stack.push(e_159[15], e_159[16]); } else 1 === n && 0 === h_10 && (this.flexing = !0); break; case 3089: break; default: warn('Unknown type 1 charstring command of "' + a_114 + '"'); } if (o) break; } else { a_114 <= 246 ? a_114 -= 139 : a_114 = a_114 <= 250 ? 256 * (a_114 - 247) + e[++g_19] + 108 : a_114 <= 254 ? -256 * (a_114 - 251) - e[++g_19] - 108 : (255 & e[++g_19]) << 24 | (255 & e[++g_19]) << 16 | (255 & e[++g_19]) << 8 | (255 & e[++g_19]) << 0; this.stack.push(a_114); } } return o; }; Type1CharString.prototype.executeCommand = function (e, t, i) { var _b; var a = this.stack.length; if (e > a) return !0; var s = a - e; for (var e_160 = s; e_160 < a; e_160++) { var t_131 = this.stack[e_160]; if (Number.isInteger(t_131)) this.output.push(28, t_131 >> 8 & 255, 255 & t_131); else { t_131 = 65536 * t_131 | 0; this.output.push(255, t_131 >> 24 & 255, t_131 >> 16 & 255, t_131 >> 8 & 255, 255 & t_131); } } (_b = this.output).push.apply(_b, t); i ? this.stack.splice(s, e) : this.stack.length = 0; return !1; }; return Type1CharString; }()); function isHexDigit(e) { return e >= 48 && e <= 57 || e >= 65 && e <= 70 || e >= 97 && e <= 102; } function decrypt(e, t, i) { if (i >= e.length) return new Uint8Array(0); var a, s, r = 0 | t; for (a = 0; a < i; a++) r = 52845 * (e[a] + r) + 22719 & 65535; var n = e.length - i, o = new Uint8Array(n); for (a = i, s = 0; s < n; a++, s++) { var t_132 = e[a]; o[s] = t_132 ^ r >> 8; r = 52845 * (t_132 + r) + 22719 & 65535; } return o; } function isSpecial(e) { return 47 === e || 91 === e || 93 === e || 123 === e || 125 === e || 40 === e || 41 === e; } var Type1Parser = /** @class */ (function () { function Type1Parser(e, t, i) { if (t) { var t_133 = e.getBytes(), i_130 = !((isHexDigit(t_133[0]) || isWhiteSpace(t_133[0])) && isHexDigit(t_133[1]) && isHexDigit(t_133[2]) && isHexDigit(t_133[3]) && isHexDigit(t_133[4]) && isHexDigit(t_133[5]) && isHexDigit(t_133[6]) && isHexDigit(t_133[7])); e = new Stream(i_130 ? decrypt(t_133, 55665, 4) : function decryptAscii(e, t, i) { var a = 0 | t; var s = e.length, r = new Uint8Array(s >>> 1); var n, o; for (n = 0, o = 0; n < s; n++) { var t_134 = e[n]; if (!isHexDigit(t_134)) continue; n++; var i_131 = void 0; for (; n < s && !isHexDigit(i_131 = e[n]);) n++; if (n < s) { var e_161 = parseInt(String.fromCharCode(t_134, i_131), 16); r[o++] = e_161 ^ a >> 8; a = 52845 * (e_161 + a) + 22719 & 65535; } } return r.slice(i, o); }(t_133, 55665, 4)); } this.seacAnalysisEnabled = !!i; this.stream = e; this.nextChar(); } Type1Parser.prototype.readNumberArray = function () { this.getToken(); var e = []; for (;;) { var t_135 = this.getToken(); if (null === t_135 || "]" === t_135 || "}" === t_135) break; e.push(parseFloat(t_135 || 0)); } return e; }; Type1Parser.prototype.readNumber = function () { var e = this.getToken(); return parseFloat(e || 0); }; Type1Parser.prototype.readInt = function () { var e = this.getToken(); return 0 | parseInt(e || 0, 10); }; Type1Parser.prototype.readBoolean = function () { return "true" === this.getToken() ? 1 : 0; }; Type1Parser.prototype.nextChar = function () { return this.currentChar = this.stream.getByte(); }; Type1Parser.prototype.prevChar = function () { this.stream.skip(-2); return this.currentChar = this.stream.getByte(); }; Type1Parser.prototype.getToken = function () { var e = !1, t = this.currentChar; for (;;) { if (-1 === t) return null; if (e) 10 !== t && 13 !== t || (e = !1); else if (37 === t) e = !0; else if (!isWhiteSpace(t)) break; t = this.nextChar(); } if (isSpecial(t)) { this.nextChar(); return String.fromCharCode(t); } var i = ""; do { i += String.fromCharCode(t); t = this.nextChar(); } while (t >= 0 && !isWhiteSpace(t) && !isSpecial(t)); return i; }; Type1Parser.prototype.readCharStrings = function (e, t) { return -1 === t ? e : decrypt(e, 4330, t); }; Type1Parser.prototype.extractFontProgram = function (e) { var t = this.stream, i = [], a = [], s = Object.create(null); s.lenIV = 4; var r = { subrs: [], charstrings: [], properties: { privateData: s } }; var n, o, g, c; for (; null !== (n = this.getToken());) if ("/" === n) { n = this.getToken(); switch (n) { case "CharStrings": this.getToken(); this.getToken(); this.getToken(); this.getToken(); for (;;) { n = this.getToken(); if (null === n || "end" === n) break; if ("/" !== n) continue; var e_162 = this.getToken(); o = this.readInt(); this.getToken(); g = o > 0 ? t.getBytes(o) : new Uint8Array(0); c = r.properties.privateData.lenIV; var i_132 = this.readCharStrings(g, c); this.nextChar(); n = this.getToken(); "noaccess" === n ? this.getToken() : "/" === n && this.prevChar(); a.push({ glyph: e_162, encoded: i_132 }); } break; case "Subrs": this.readInt(); this.getToken(); for (; "dup" === this.getToken();) { var e_163 = this.readInt(); o = this.readInt(); this.getToken(); g = o > 0 ? t.getBytes(o) : new Uint8Array(0); c = r.properties.privateData.lenIV; var a_116 = this.readCharStrings(g, c); this.nextChar(); n = this.getToken(); "noaccess" === n && this.getToken(); i[e_163] = a_116; } break; case "BlueValues": case "OtherBlues": case "FamilyBlues": case "FamilyOtherBlues": var e_164 = this.readNumberArray(); e_164.length > 0 && e_164.length, 0; break; case "StemSnapH": case "StemSnapV": r.properties.privateData[n] = this.readNumberArray(); break; case "StdHW": case "StdVW": r.properties.privateData[n] = this.readNumberArray()[0]; break; case "BlueShift": case "lenIV": case "BlueFuzz": case "BlueScale": case "LanguageGroup": r.properties.privateData[n] = this.readNumber(); break; case "ExpansionFactor": r.properties.privateData[n] = this.readNumber() || .06; break; case "ForceBold": r.properties.privateData[n] = this.readBoolean(); } } for (var _b = 0, a_115 = a; _b < a_115.length; _b++) { var _h = a_115[_b], t_136 = _h.encoded, s_82 = _h.glyph; var a_117 = new Type1CharString, n_41 = a_117.convert(t_136, i, this.seacAnalysisEnabled); var o_27 = a_117.output; n_41 && (o_27 = [14]); var g_21 = { glyphName: s_82, charstring: o_27, width: a_117.width, lsb: a_117.lsb, seac: a_117.seac }; ".notdef" === s_82 ? r.charstrings.unshift(g_21) : r.charstrings.push(g_21); if (e.builtInEncoding) { var t_137 = e.builtInEncoding.indexOf(s_82); t_137 > -1 && void 0 === e.widths[t_137] && t_137 >= e.firstChar && t_137 <= e.lastChar && (e.widths[t_137] = a_117.width); } } return r; }; Type1Parser.prototype.extractFontHeader = function (e) { var t; for (; null !== (t = this.getToken());) if ("/" === t) { t = this.getToken(); switch (t) { case "FontMatrix": var i_133 = this.readNumberArray(); e.fontMatrix = i_133; break; case "Encoding": var a_118 = this.getToken(); var s_83 = void 0; if (/^\d+$/.test(a_118)) { s_83 = []; var e_165 = 0 | parseInt(a_118, 10); this.getToken(); for (var i_134 = 0; i_134 < e_165; i_134++) { t = this.getToken(); for (; "dup" !== t && "def" !== t;) { t = this.getToken(); if (null === t) return; } if ("def" === t) break; var e_166 = this.readInt(); this.getToken(); var i_135 = this.getToken(); s_83[e_166] = i_135; this.getToken(); } } else s_83 = getEncoding(a_118); e.builtInEncoding = s_83; break; case "FontBBox": var r_55 = this.readNumberArray(); e.ascent = Math.max(r_55[3], r_55[1]); e.descent = Math.min(r_55[1], r_55[3]); e.ascentScaled = !0; } } }; return Type1Parser; }()); function findBlock(e, t, i) { var a = e.length, s = t.length, r = a - s; var n = i, o = !1; for (; n < r;) { var i_136 = 0; for (; i_136 < s && e[n + i_136] === t[i_136];) i_136++; if (i_136 >= s) { n += i_136; for (; n < a && isWhiteSpace(e[n]);) n++; o = !0; break; } n++; } return { found: o, length: n }; } var Type1Font = /** @class */ (function () { function Type1Font(e, t, i) { var a = i.length1, s = i.length2, r = t.peekBytes(6); var n = 128 === r[0] && 1 === r[1]; if (n) { t.skip(6); a = r[5] << 24 | r[4] << 16 | r[3] << 8 | r[2]; } var o = function getHeaderBlock(e, t) { var i = [101, 101, 120, 101, 99], a = e.pos; var s, r, n, o; try { s = e.getBytes(t); r = s.length; } catch (_b) { } if (r === t) { n = findBlock(s, i, t - 2 * i.length); if (n.found && n.length === t) return { stream: new Stream(s), length: t }; } warn('Invalid "Length1" property in Type1 font -- trying to recover.'); e.pos = a; for (;;) { n = findBlock(e.peekBytes(2048), i, 0); if (0 === n.length) break; e.pos += n.length; if (n.found) { o = e.pos - a; break; } } e.pos = a; if (o) return { stream: new Stream(e.getBytes(o)), length: o }; warn('Unable to recover "Length1" property in Type1 font -- using as is.'); return { stream: new Stream(e.getBytes(t)), length: t }; }(t, a); new Type1Parser(o.stream, !1, Yi).extractFontHeader(i); if (n) { r = t.getBytes(6); s = r[5] << 24 | r[4] << 16 | r[3] << 8 | r[2]; } var g = function getEexecBlock(e, t) { var i = e.getBytes(); if (0 === i.length) throw new FormatError("getEexecBlock - no font program found."); return { stream: new Stream(i), length: i.length }; }(t), c = new Type1Parser(g.stream, !0, Yi).extractFontProgram(i); for (var e_167 in c.properties) i[e_167] = c.properties[e_167]; var h = c.charstrings, l = this.getType2Charstrings(h), C = this.getType2Subrs(c.subrs); this.charstrings = h; this.data = this.wrap(e, l, this.charstrings, C, i); this.seacs = this.getSeacs(c.charstrings); } Object.defineProperty(Type1Font.prototype, "numGlyphs", { get: function () { return this.charstrings.length + 1; }, enumerable: false, configurable: true }); Type1Font.prototype.getCharset = function () { var e = [".notdef"]; for (var _b = 0, _h = this.charstrings; _b < _h.length; _b++) { var t_138 = _h[_b].glyphName; e.push(t_138); } return e; }; Type1Font.prototype.getGlyphMapping = function (e) { var t = this.charstrings; if (e.composite) { var i_137 = Object.create(null); for (var a_119 = 0, s_84 = t.length; a_119 < s_84; a_119++) { i_137[e.cMap.charCodeOf(a_119)] = a_119 + 1; } return i_137; } var i = [".notdef"]; var a, s; for (s = 0; s < t.length; s++) i.push(t[s].glyphName); var r = e.builtInEncoding; if (r) { a = Object.create(null); for (var e_168 in r) { s = i.indexOf(r[e_168]); s >= 0 && (a[e_168] = s); } } return type1FontGlyphMapping(e, a, i); }; Type1Font.prototype.hasGlyphId = function (e) { if (e < 0 || e >= this.numGlyphs) return !1; if (0 === e) return !0; return this.charstrings[e - 1].charstring.length > 0; }; Type1Font.prototype.getSeacs = function (e) { var t = []; for (var i_138 = 0, a_120 = e.length; i_138 < a_120; i_138++) { var a_121 = e[i_138]; a_121.seac && (t[i_138 + 1] = a_121.seac); } return t; }; Type1Font.prototype.getType2Charstrings = function (e) { var t = []; for (var _b = 0, e_169 = e; _b < e_169.length; _b++) { var i_139 = e_169[_b]; t.push(i_139.charstring); } return t; }; Type1Font.prototype.getType2Subrs = function (e) { var t = 0; var i = e.length; t = i < 1133 ? 107 : i < 33769 ? 1131 : 32768; var a = []; var s; for (s = 0; s < t; s++) a.push([11]); for (s = 0; s < i; s++) a.push(e[s]); return a; }; Type1Font.prototype.wrap = function (e, t, i, a, s) { var r = new CFF; r.header = new CFFHeader(1, 0, 4, 4); r.names = [e]; var n = new CFFTopDict; n.setByName("version", 391); n.setByName("Notice", 392); n.setByName("FullName", 393); n.setByName("FamilyName", 394); n.setByName("Weight", 395); n.setByName("Encoding", null); n.setByName("FontMatrix", s.fontMatrix); n.setByName("FontBBox", s.bbox); n.setByName("charset", null); n.setByName("CharStrings", null); n.setByName("Private", null); r.topDict = n; var o = new CFFStrings; o.add("Version 0.11"); o.add("See original notice"); o.add(e); o.add(e); o.add("Medium"); r.strings = o; r.globalSubrIndex = new CFFIndex; var g = t.length, c = [".notdef"]; var h, l; for (h = 0; h < g; h++) { var e_170 = i[h].glyphName; -1 === wi.indexOf(e_170) && o.add(e_170); c.push(e_170); } r.charset = new CFFCharset(!1, 0, c); var C = new CFFIndex; C.add([139, 14]); for (h = 0; h < g; h++) C.add(t[h]); r.charStrings = C; var Q = new CFFPrivateDict; Q.setByName("Subrs", null); var E = ["BlueValues", "OtherBlues", "FamilyBlues", "FamilyOtherBlues", "StemSnapH", "StemSnapV", "BlueShift", "BlueFuzz", "BlueScale", "LanguageGroup", "ExpansionFactor", "ForceBold", "StdHW", "StdVW"]; for (h = 0, l = E.length; h < l; h++) { var e_171 = E[h]; if (!(e_171 in s.privateData)) continue; var t_139 = s.privateData[e_171]; if (Array.isArray(t_139)) for (var e_172 = t_139.length - 1; e_172 > 0; e_172--) t_139[e_172] -= t_139[e_172 - 1]; Q.setByName(e_171, t_139); } r.topDict.privateDict = Q; var u = new CFFIndex; for (h = 0, l = a.length; h < l; h++) u.add(a[h]); Q.subrsIndex = u; return new CFFCompiler(r).compile(); }; return Type1Font; }()); var la = [[57344, 63743], [1048576, 1114109]], Ca = 1e3, Ba = ["ascent", "bbox", "black", "bold", "charProcOperatorList", "composite", "cssFontInfo", "data", "defaultVMetrics", "defaultWidth", "descent", "fallbackName", "fontMatrix", "isInvalidPDFjsFont", "isType3Font", "italic", "loadedName", "mimetype", "missingFile", "name", "remeasure", "subtype", "systemFontInfo", "type", "vertical"], Qa = ["cMap", "defaultEncoding", "differences", "isMonospace", "isSerifFont", "isSymbolicFont", "seacMap", "toFontChar", "toUnicode", "vmetrics", "widths"]; function adjustWidths(e) { if (!e.fontMatrix) return; if (e.fontMatrix[0] === a[0]) return; var t = .001 / e.fontMatrix[0], i = e.widths; for (var e_173 in i) i[e_173] *= t; e.defaultWidth *= t; } function amendFallbackToUnicode(e) { if (!e.fallbackToUnicode) return; if (e.toUnicode instanceof IdentityToUnicodeMap) return; var t = []; for (var i_140 in e.fallbackToUnicode) e.toUnicode.has(i_140) || (t[i_140] = e.fallbackToUnicode[i_140]); t.length > 0 && e.toUnicode.amend(t); } var fonts_Glyph = /** @class */ (function () { function fonts_Glyph(e, t, i, a, s, r, n, o, g) { this.originalCharCode = e; this.fontChar = t; this.unicode = i; this.accent = a; this.width = s; this.vmetric = r; this.operatorListId = n; this.isSpace = o; this.isInFont = g; } Object.defineProperty(fonts_Glyph.prototype, "category", { get: function () { return shadow(this, "category", function getCharUnicodeCategory(e) { var t = Hi.get(e); if (t) return t; var i = e.match(Ji), a = { isWhitespace: !!(i === null || i === void 0 ? void 0 : i[1]), isZeroWidthDiacritic: !!(i === null || i === void 0 ? void 0 : i[2]), isInvisibleFormatMark: !!(i === null || i === void 0 ? void 0 : i[3]) }; Hi.set(e, a); return a; }(this.unicode), !0); }, enumerable: false, configurable: true }); return fonts_Glyph; }()); function int16(e, t) { return (e << 8) + t; } function writeSignedInt16(e, t, i) { e[t + 1] = i; e[t] = i >>> 8; } function signedInt16(e, t) { var i = (e << 8) + t; return 32768 & i ? i - 65536 : i; } function string16(e) { return String.fromCharCode(e >> 8 & 255, 255 & e); } function safeString16(e) { e > 32767 ? e = 32767 : e < -32768 && (e = -32768); return String.fromCharCode(e >> 8 & 255, 255 & e); } function isTrueTypeCollectionFile(e) { return "ttcf" === bytesToString(e.peekBytes(4)); } function getFontFileType(e, _b) { var t = _b.type, i = _b.subtype, a = _b.composite; var s, r; if (function isTrueTypeFile(e) { var t = e.peekBytes(4); return 65536 === readUint32(t, 0) || "true" === bytesToString(t); }(e) || isTrueTypeCollectionFile(e)) s = a ? "CIDFontType2" : "TrueType"; else if (function isOpenTypeFile(e) { return "OTTO" === bytesToString(e.peekBytes(4)); }(e)) s = a ? "CIDFontType2" : "OpenType"; else if (function isType1File(e) { var t = e.peekBytes(2); return 37 === t[0] && 33 === t[1] || 128 === t[0] && 1 === t[1]; }(e)) s = a ? "CIDFontType0" : "MMType1" === t ? "MMType1" : "Type1"; else if (function isCFFFile(e) { var t = e.peekBytes(4); return t[0] >= 1 && t[3] >= 1 && t[3] <= 4; }(e)) if (a) { s = "CIDFontType0"; r = "CIDFontType0C"; } else { s = "MMType1" === t ? "MMType1" : "Type1"; r = "Type1C"; } else { warn("getFontFileType: Unable to detect correct font file Type/Subtype."); s = t; r = i; } return [s, r]; } function applyStandardFontGlyphMap(e, t) { for (var i_141 in t) e[+i_141] = t[i_141]; } function buildToFontChar(e, t, i) { var a = []; var s; for (var i_142 = 0, r_56 = e.length; i_142 < r_56; i_142++) { s = getUnicodeForGlyph(e[i_142], t); -1 !== s && (a[i_142] = s); } for (var e_174 in i) { s = getUnicodeForGlyph(i[e_174], t); -1 !== s && (a[+e_174] = s); } return a; } function isMacNameRecord(e) { return 1 === e.platform && 0 === e.encoding && 0 === e.language; } function isWinNameRecord(e) { return 3 === e.platform && 1 === e.encoding && 1033 === e.language; } function convertCidString(e, t, i) { if (i === void 0) { i = !1; } switch (t.length) { case 1: return t.charCodeAt(0); case 2: return t.charCodeAt(0) << 8 | t.charCodeAt(1); } var a = "Unsupported CID string (charCode ".concat(e, "): \"").concat(t, "\"."); if (i) throw new FormatError(a); warn(a); return t; } function adjustMapping(e, t, i, a) { var s = Object.create(null), r = new Map, n = [], o = new Set; var g = 0; var c = la[g][0], h = la[g][1]; for (var C_10 in e) { var Q_11 = e[C_10]; if (!t(Q_11)) continue; if (c > h) { g++; if (g >= la.length) { warn("Ran out of space in font private use area."); break; } c = la[g][0]; h = la[g][1]; } var E_9 = c++; 0 === Q_11 && (Q_11 = i); var u_5 = a.get(C_10); "string" == typeof u_5 && (u_5 = u_5.codePointAt(0)); if (u_5 && !(l = u_5, la[0][0] <= l && l <= la[0][1] || la[1][0] <= l && l <= la[1][1]) && !o.has(Q_11)) { r.set(u_5, Q_11); o.add(Q_11); } s[E_9] = Q_11; n[C_10] = E_9; } var l; return { toFontChar: n, charCodeToGlyphId: s, toUnicodeExtraMap: r, nextAvailableFontCharCode: c }; } function createCmapTable(e, t, i) { var a = function getRanges(e, t, i) { var a = []; for (var t_141 in e) e[t_141] >= i || a.push({ fontCharCode: 0 | t_141, glyphId: e[t_141] }); if (t) for (var _b = 0, t_140 = t; _b < t_140.length; _b++) { var _h = t_140[_b], e_175 = _h[0], s_85 = _h[1]; s_85 >= i || a.push({ fontCharCode: e_175, glyphId: s_85 }); } 0 === a.length && a.push({ fontCharCode: 0, glyphId: 0 }); a.sort((function fontGetRangesSort(e, t) { return e.fontCharCode - t.fontCharCode; })); var s = [], r = a.length; for (var e_176 = 0; e_176 < r;) { var t_142 = a[e_176].fontCharCode, i_143 = [a[e_176].glyphId]; ++e_176; var n_42 = t_142; for (; e_176 < r && n_42 + 1 === a[e_176].fontCharCode;) { i_143.push(a[e_176].glyphId); ++n_42; ++e_176; if (65535 === n_42) break; } s.push([t_142, n_42, i_143]); } return s; }(e, t, i), s = a.at(-1)[1] > 65535 ? 2 : 1; var r, n, o, g, c = "\0\0" + string16(s) + "\0\0" + string32(4 + 8 * s); for (r = a.length - 1; r >= 0 && !(a[r][0] <= 65535); --r) ; var h = r + 1; a[r][0] < 65535 && 65535 === a[r][1] && (a[r][1] = 65534); var l = a[r][1] < 65535 ? 1 : 0, C = h + l, Q = OpenTypeFileBuilder.getSearchParams(C, 2); var E, u, d, f, p = "", m = "", y = "", w = "", b = "", D = 0; for (r = 0, n = h; r < n; r++) { E = a[r]; u = E[0]; d = E[1]; p += string16(u); m += string16(d); f = E[2]; var e_177 = !0; for (o = 1, g = f.length; o < g; ++o) if (f[o] !== f[o - 1] + 1) { e_177 = !1; break; } if (e_177) { y += string16(f[0] - u & 65535); w += string16(0); } else { var e_178 = 2 * (C - r) + 2 * D; D += d - u + 1; y += string16(0); w += string16(e_178); for (o = 0, g = f.length; o < g; ++o) b += string16(f[o]); } } if (l > 0) { m += "ÿÿ"; p += "ÿÿ"; y += "\0"; w += "\0\0"; } var F = "\0\0" + string16(2 * C) + string16(Q.range) + string16(Q.entry) + string16(Q.rangeShift) + m + "\0\0" + p + y + w + b; var S = "", k = ""; if (s > 1) { c += "\0\0\n" + string32(4 + 8 * s + 4 + F.length); S = ""; for (r = 0, n = a.length; r < n; r++) { E = a[r]; u = E[0]; f = E[2]; var e_179 = f[0]; for (o = 1, g = f.length; o < g; ++o) if (f[o] !== f[o - 1] + 1) { d = E[0] + o - 1; S += string32(u) + string32(d) + string32(e_179); u = d + 1; e_179 = f[o]; } S += string32(u) + string32(E[1]) + string32(e_179); } k = "\0\f\0\0" + string32(S.length + 16) + "\0\0\0\0" + string32(S.length / 12); } return c + "\0" + string16(F.length + 4) + F + k + S; } function createOS2Table(e, t, i) { i || (i = { unitsPerEm: 0, yMax: 0, yMin: 0, ascent: 0, descent: 0 }); var s = 0, r = 0, n = 0, o = 0, g = null, c = 0, h = -1; if (t) { for (var e_180 in t) { e_180 |= 0; (g > e_180 || !g) && (g = e_180); c < e_180 && (c = e_180); h = getUnicodeRangeFor(e_180, h); if (h < 32) s |= 1 << h; else if (h < 64) r |= 1 << h - 32; else if (h < 96) n |= 1 << h - 64; else { if (!(h < 123)) throw new FormatError("Unicode ranges Bits > 123 are reserved for internal usage"); o |= 1 << h - 96; } } c > 65535 && (c = 65535); } else { g = 0; c = 255; } var l = e.bbox || [0, 0, 0, 0], C = i.unitsPerEm || 1 / (e.fontMatrix || a)[0], Q = e.ascentScaled ? 1 : C / Ca, E = i.ascent || Math.round(Q * (e.ascent || l[3])); var u = i.descent || Math.round(Q * (e.descent || l[1])); u > 0 && e.descent > 0 && l[1] < 0 && (u = -u); var d = i.yMax || E, f = -i.yMin || -u; return "\0$ô\0\0\0Š»\0\0\0ŒŠ»\0\0ß\x001\0\0\0\0" + String.fromCharCode(e.fixedPitch ? 9 : 0) + "\0\0\0\0\0\0" + string32(s) + string32(r) + string32(n) + string32(o) + "*21*" + string16(e.italicAngle ? 1 : 0) + string16(g || e.firstChar) + string16(c || e.lastChar) + string16(E) + string16(u) + "\0d" + string16(d) + string16(f) + "\0\0\0\0\0\0\0\0" + string16(e.xHeight) + string16(e.capHeight) + string16(0) + string16(g || e.firstChar) + "\0"; } function createPostTable(e) { return "\0\0\0" + string32(Math.floor(65536 * e.italicAngle)) + "\0\0\0\0" + string32(e.fixedPitch ? 1 : 0) + "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"; } function createPostscriptName(e) { return e.replaceAll(/[^\x21-\x7E]|[[\](){}<>/%]/g, "").slice(0, 63); } function createNameTable(e, t) { t || (t = [[], []]); var i = [t[0][0] || "Original licence", t[0][1] || e, t[0][2] || "Unknown", t[0][3] || "uniqueID", t[0][4] || e, t[0][5] || "Version 0.11", t[0][6] || createPostscriptName(e), t[0][7] || "Unknown", t[0][8] || "Unknown", t[0][9] || "Unknown"], a = []; var s, r, n, o, g; for (s = 0, r = i.length; s < r; s++) { g = t[1][s] || i[s]; var e_181 = []; for (n = 0, o = g.length; n < o; n++) e_181.push(string16(g.charCodeAt(n))); a.push(e_181.join("")); } var c = [i, a], h = ["\0", "\0"], l = ["\0\0", "\0"], C = ["\0\0", "\t"], Q = i.length * h.length; var E = "\0\0" + string16(Q) + string16(12 * Q + 6), u = 0; for (s = 0, r = h.length; s < r; s++) { var e_182 = c[s]; for (n = 0, o = e_182.length; n < o; n++) { g = e_182[n]; E += h[s] + l[s] + C[s] + string16(n) + string16(g.length) + string16(u); u += g.length; } } E += i.join("") + a.join(""); return E; } var Font = /** @class */ (function () { function Font(e, t, i) { var _b; var _h; this.name = e; this.psName = null; this.mimetype = null; this.disableFontFace = !1; this.loadedName = i.loadedName; this.isType3Font = i.isType3Font; this.missingFile = !1; this.cssFontInfo = i.cssFontInfo; this._charsCache = Object.create(null); this._glyphCache = Object.create(null); var a = !!(i.flags & Ki); if (!a && !i.isSimulatedFlags) { var t_143 = e.replaceAll(/[,_]/g, "-").split("-", 1)[0], i_144 = ji(); for (var _j = 0, _k = t_143.split("+"); _j < _k.length; _j++) { var e_183 = _k[_j]; if (i_144[e_183]) { a = !0; break; } } } this.isSerifFont = a; this.isSymbolicFont = !!(i.flags & Ti); this.isMonospace = !!(i.flags & vi); var s = i.type, r = i.subtype; this.type = s; this.subtype = r; this.systemFontInfo = i.systemFontInfo; var n = e.match(/^InvalidPDFjsFont_(.*)_\d+$/); this.isInvalidPDFjsFont = !!n; this.isInvalidPDFjsFont ? this.fallbackName = n[1] : this.isMonospace ? this.fallbackName = "monospace" : this.isSerifFont ? this.fallbackName = "serif" : this.fallbackName = "sans-serif"; if ((_h = this.systemFontInfo) === null || _h === void 0 ? void 0 : _h.guessFallback) { this.systemFontInfo.guessFallback = !1; this.systemFontInfo.css += ",".concat(this.fallbackName); } this.differences = i.differences; this.widths = i.widths; this.defaultWidth = i.defaultWidth; this.composite = i.composite; this.cMap = i.cMap; this.capHeight = i.capHeight / Ca; this.ascent = i.ascent / Ca; this.descent = i.descent / Ca; this.lineHeight = this.ascent - this.descent; this.fontMatrix = i.fontMatrix; this.bbox = i.bbox; this.defaultEncoding = i.defaultEncoding; this.toUnicode = i.toUnicode; this.toFontChar = []; if ("Type3" === i.type) { for (var e_184 = 0; e_184 < 256; e_184++) this.toFontChar[e_184] = this.differences[e_184] || i.defaultEncoding[e_184]; return; } this.cidEncoding = i.cidEncoding || ""; this.vertical = !!i.vertical; if (this.vertical) { this.vmetrics = i.vmetrics; this.defaultVMetrics = i.defaultVMetrics; } if (!t || t.isEmpty) { t && warn('Font file is empty in "' + e + '" (' + this.loadedName + ")"); this.fallbackToSystemFont(i); return; } _b = getFontFileType(t, i), s = _b[0], r = _b[1]; s === this.type && r === this.subtype || info("Inconsistent font file Type/SubType, expected: ".concat(this.type, "/").concat(this.subtype, " but found: ").concat(s, "/").concat(r, ".")); var o; try { switch (s) { case "MMType1": info("MMType1 font (" + e + "), falling back to Type1."); case "Type1": case "CIDFontType0": this.mimetype = "font/opentype"; var a_122 = "Type1C" === r || "CIDFontType0C" === r ? new CFFFont(t, i) : new Type1Font(e, t, i); adjustWidths(i); o = this.convert(e, a_122, i); break; case "OpenType": case "TrueType": case "CIDFontType2": this.mimetype = "font/opentype"; o = this.checkAndRepair(e, t, i); if (this.isOpenType) { adjustWidths(i); s = "OpenType"; } break; default: throw new FormatError("Font ".concat(s, " is not supported")); } } catch (e) { warn(e); this.fallbackToSystemFont(i); return; } amendFallbackToUnicode(i); this.data = o; this.type = s; this.subtype = r; this.fontMatrix = i.fontMatrix; this.widths = i.widths; this.defaultWidth = i.defaultWidth; this.toUnicode = i.toUnicode; this.seacMap = i.seacMap; } Object.defineProperty(Font.prototype, "renderer", { get: function () { return shadow(this, "renderer", FontRendererFactory.create(this, Yi)); }, enumerable: false, configurable: true }); Font.prototype.exportData = function (e) { if (e === void 0) { e = !1; } var t = e ? tslib_1.__spreadArray(tslib_1.__spreadArray([], Ba, true), Qa, true) : Ba, i = Object.create(null); var a, s; for (var _b = 0, t_144 = t; _b < t_144.length; _b++) { a = t_144[_b]; s = this[a]; void 0 !== s && (i[a] = s); } return i; }; Font.prototype.fallbackToSystemFont = function (e) { var _this = this; this.missingFile = !0; var _b = this, t = _b.name, i = _b.type; var a = normalizeFontName(t); var s = Pi(), r = Xi(), n = !!s[a], o = !(!r[a] || !s[r[a]]); a = s[a] || r[a] || a; var g = ea()[a]; if (g) { isNaN(this.ascent) && (this.ascent = g.ascent / Ca); isNaN(this.descent) && (this.descent = g.descent / Ca); isNaN(this.capHeight) && (this.capHeight = g.capHeight / Ca); } this.bold = /bold/gi.test(a); this.italic = /oblique|italic/gi.test(a); this.black = /Black/g.test(t); var c = /Narrow/g.test(t); this.remeasure = (!n || c) && Object.keys(this.widths).length > 0; if ((n || o) && "CIDFontType2" === i && this.cidEncoding.startsWith("Identity-")) { var i_145 = e.cidToGidMap, a_123 = []; applyStandardFontGlyphMap(a_123, Vi()); /Arial-?Black/i.test(t) ? applyStandardFontGlyphMap(a_123, zi()) : /Calibri/i.test(t) && applyStandardFontGlyphMap(a_123, _i()); if (i_145) { for (var e_185 in a_123) { var t_145 = a_123[e_185]; void 0 !== i_145[t_145] && (a_123[+e_185] = i_145[t_145]); } i_145.length !== this.toUnicode.length && e.hasIncludedToUnicodeMap && this.toUnicode instanceof IdentityToUnicodeMap && this.toUnicode.forEach((function (e, t) { var s = a_123[e]; void 0 === i_145[s] && (a_123[+e] = t); })); } this.toUnicode instanceof IdentityToUnicodeMap || this.toUnicode.forEach((function (e, t) { a_123[+e] = t; })); this.toFontChar = a_123; this.toUnicode = new ToUnicodeMap(a_123); } else if (/Symbol/i.test(a)) this.toFontChar = buildToFontChar(mi, Ni(), this.differences); else if (/Dingbats/i.test(a)) this.toFontChar = buildToFontChar(yi, Gi(), this.differences); else if (n) { var e_186 = buildToFontChar(this.defaultEncoding, Ni(), this.differences); "CIDFontType2" !== i || this.cidEncoding.startsWith("Identity-") || this.toUnicode instanceof IdentityToUnicodeMap || this.toUnicode.forEach((function (t, i) { e_186[+t] = i; })); this.toFontChar = e_186; } else { var e_187 = Ni(), i_146 = []; this.toUnicode.forEach((function (t, a) { if (!_this.composite) { var i_147 = getUnicodeForGlyph(_this.differences[t] || _this.defaultEncoding[t], e_187); -1 !== i_147 && (a = i_147); } i_146[+t] = a; })); this.composite && this.toUnicode instanceof IdentityToUnicodeMap && /Tahoma|Verdana/i.test(t) && applyStandardFontGlyphMap(i_146, Vi()); this.toFontChar = i_146; } amendFallbackToUnicode(e); this.loadedName = a.split("-", 1)[0]; }; Font.prototype.checkAndRepair = function (e, t, i) { var _b, _h, _j; var a = ["OS/2", "cmap", "head", "hhea", "hmtx", "maxp", "name", "post", "loca", "glyf", "fpgm", "prep", "cvt ", "CFF "]; function readTables(e, t) { var i = Object.create(null); i["OS/2"] = null; i.cmap = null; i.head = null; i.hhea = null; i.hmtx = null; i.maxp = null; i.name = null; i.post = null; for (var s_86 = 0; s_86 < t; s_86++) { var t_146 = readTableEntry(e); a.includes(t_146.tag) && (0 !== t_146.length && (i[t_146.tag] = t_146)); } return i; } function readTableEntry(e) { var t = e.getString(4), i = e.getInt32() >>> 0, a = e.getInt32() >>> 0, s = e.getInt32() >>> 0, r = e.pos; e.pos = e.start || 0; e.skip(a); var n = e.getBytes(s); e.pos = r; if ("head" === t) { n[8] = n[9] = n[10] = n[11] = 0; n[17] |= 32; } return { tag: t, checksum: i, length: s, offset: a, data: n }; } function readOpenTypeHeader(e) { return { version: e.getString(4), numTables: e.getUint16(), searchRange: e.getUint16(), entrySelector: e.getUint16(), rangeShift: e.getUint16() }; } function sanitizeGlyph(e, t, i, a, s, r) { var n = { length: 0, sizeOfInstructions: 0 }; if (t < 0 || t >= e.length || i > e.length || i - t <= 12) return n; var o = e.subarray(t, i), g = signedInt16(o[2], o[3]), c = signedInt16(o[4], o[5]), h = signedInt16(o[6], o[7]), l = signedInt16(o[8], o[9]); if (g > h) { writeSignedInt16(o, 2, h); writeSignedInt16(o, 6, g); } if (c > l) { writeSignedInt16(o, 4, l); writeSignedInt16(o, 8, c); } var C = signedInt16(o[0], o[1]); if (C < 0) { if (C < -1) return n; a.set(o, s); n.length = o.length; return n; } var Q, E = 10, u = 0; for (Q = 0; Q < C; Q++) { u = (o[E] << 8 | o[E + 1]) + 1; E += 2; } var d = E, f = o[E] << 8 | o[E + 1]; n.sizeOfInstructions = f; E += 2 + f; var p = E; var m = 0; for (Q = 0; Q < u; Q++) { var e_188 = o[E++]; 192 & e_188 && (o[E - 1] = 63 & e_188); var t_147 = 2; 2 & e_188 ? t_147 = 1 : 16 & e_188 && (t_147 = 0); var i_148 = 2; 4 & e_188 ? i_148 = 1 : 32 & e_188 && (i_148 = 0); var a_124 = t_147 + i_148; m += a_124; if (8 & e_188) { var e_189 = o[E++]; 0 === e_189 && (o[E - 1] ^= 8); Q += e_189; m += e_189 * a_124; } } if (0 === m) return n; var y = E + m; if (y > o.length) return n; if (!r && f > 0) { a.set(o.subarray(0, d), s); a.set([0, 0], s + d); a.set(o.subarray(p, y), s + d + 2); y -= f; o.length - y > 3 && (y = y + 3 & -4); n.length = y; return n; } if (o.length - y > 3) { y = y + 3 & -4; a.set(o.subarray(0, y), s); n.length = y; return n; } a.set(o, s); n.length = o.length; return n; } function readNameTable(e) { var i = (t.start || 0) + e.offset; t.pos = i; var a = [[], []], s = [], r = e.length, n = i + r; if (0 !== t.getUint16() || r < 6) return [a, s]; var o = t.getUint16(), g = t.getUint16(); var c, h; for (c = 0; c < o && t.pos + 12 <= n; c++) { var e_190 = { platform: t.getUint16(), encoding: t.getUint16(), language: t.getUint16(), name: t.getUint16(), length: t.getUint16(), offset: t.getUint16() }; (isMacNameRecord(e_190) || isWinNameRecord(e_190)) && s.push(e_190); } for (c = 0, h = s.length; c < h; c++) { var e_191 = s[c]; if (e_191.length <= 0) continue; var r_61 = i + g + e_191.offset; if (r_61 + e_191.length > n) continue; t.pos = r_61; var o_28 = e_191.name; if (e_191.encoding) { var i_149 = ""; for (var a_125 = 0, s_87 = e_191.length; a_125 < s_87; a_125 += 2) i_149 += String.fromCharCode(t.getUint16()); a[1][o_28] = i_149; } else a[0][o_28] = t.getString(e_191.length); } return [a, s]; } var s = [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(e, t) { var i, a, r, n, o, g = e.data, c = 0, h = 0, l = 0; var C = [], Q = [], E = []; var u = t.tooComplexToFollowFunctions, d = !1, f = 0, p = 0; for (var e_192 = g.length; c < e_192;) { var e_193 = g[c++]; if (64 === e_193) { a = g[c++]; if (d || p) c += a; else for (i = 0; i < a; i++) C.push(g[c++]); } else if (65 === e_193) { a = g[c++]; if (d || p) c += 2 * a; else for (i = 0; i < a; i++) { r = g[c++]; C.push(r << 8 | g[c++]); } } else if (176 == (248 & e_193)) { a = e_193 - 176 + 1; if (d || p) c += a; else for (i = 0; i < a; i++) C.push(g[c++]); } else if (184 == (248 & e_193)) { a = e_193 - 184 + 1; if (d || p) c += 2 * a; else for (i = 0; i < a; i++) { r = g[c++]; C.push(r << 8 | g[c++]); } } else if (43 !== e_193 || u) if (44 !== e_193 || u) { if (45 === e_193) if (d) { d = !1; h = c; } else { o = Q.pop(); if (!o) { warn("TT: ENDF bad stack"); t.hintsValid = !1; return; } n = E.pop(); g = o.data; c = o.i; t.functionsStackDeltas[n] = C.length - o.stackTop; } else if (137 === e_193) { if (d || p) { warn("TT: nested IDEFs not allowed"); u = !0; } d = !0; l = c; } else if (88 === e_193) ++f; else if (27 === e_193) p = f; else if (89 === e_193) { p === f && (p = 0); --f; } else if (28 === e_193 && !d && !p) { var e_194 = C.at(-1); e_194 > 0 && (c += e_194 - 1); } } else { if (d || p) { warn("TT: nested FDEFs not allowed"); u = !0; } d = !0; l = c; n = C.pop(); t.functionsDefined[n] = { data: g, i: c }; } else if (!d && !p) { n = C.at(-1); if (isNaN(n)) info("TT: CALL empty stack (or invalid entry)."); else { t.functionsUsed[n] = !0; if (n in t.functionsStackDeltas) { var e_195 = C.length + t.functionsStackDeltas[n]; if (e_195 < 0) { warn("TT: CALL invalid functions stack delta."); t.hintsValid = !1; return; } C.length = e_195; } else if (n in t.functionsDefined && !E.includes(n)) { Q.push({ data: g, i: c, stackTop: C.length - 1 }); E.push(n); o = t.functionsDefined[n]; if (!o) { warn("TT: CALL non-existent function"); t.hintsValid = !1; return; } g = o.data; c = o.i; } } } if (!d && !p) { var t_148 = 0; e_193 <= 142 ? t_148 = s[e_193] : e_193 >= 192 && e_193 <= 223 ? t_148 = -1 : e_193 >= 224 && (t_148 = -2); if (e_193 >= 113 && e_193 <= 117) { a = C.pop(); isNaN(a) || (t_148 = 2 * -a); } for (; t_148 < 0 && C.length > 0;) { C.pop(); t_148++; } for (; t_148 > 0;) { C.push(NaN); t_148--; } } } t.tooComplexToFollowFunctions = u; var m = [g]; c > g.length && m.push(new Uint8Array(c - g.length)); if (l > h) { warn("TT: complementing a missing function tail"); m.push(new Uint8Array([34, 45])); } !function foldTTTable(e, t) { if (t.length > 1) { var i_150, a_126, s_88 = 0; for (i_150 = 0, a_126 = t.length; i_150 < a_126; i_150++) s_88 += t[i_150].length; s_88 = s_88 + 3 & -4; var r_62 = new Uint8Array(s_88); var n_43 = 0; for (i_150 = 0, a_126 = t.length; i_150 < a_126; i_150++) { r_62.set(t[i_150], n_43); n_43 += t[i_150].length; } e.data = r_62; e.length = s_88; } }(e, m); } var r, n, o, g; if (isTrueTypeCollectionFile(t = new Stream(new Uint8Array(t.getBytes())))) { var e_196 = function readTrueTypeCollectionData(e, t) { var _b; var _h = function readTrueTypeCollectionHeader(e) { var t = e.getString(4); assert("ttcf" === t, "Must be a TrueType Collection font."); var i = e.getUint16(), a = e.getUint16(), s = e.getInt32() >>> 0, r = []; for (var t_149 = 0; t_149 < s; t_149++) r.push(e.getInt32() >>> 0); var n = { ttcTag: t, majorVersion: i, minorVersion: a, numFonts: s, offsetTable: r }; switch (i) { case 1: return n; case 2: n.dsigTag = e.getInt32() >>> 0; n.dsigLength = e.getInt32() >>> 0; n.dsigOffset = e.getInt32() >>> 0; return n; } throw new FormatError("Invalid TrueType Collection majorVersion: ".concat(i, ".")); }(e), i = _h.numFonts, a = _h.offsetTable, s = t.split("+"); var r; for (var n_44 = 0; n_44 < i; n_44++) { e.pos = (e.start || 0) + a[n_44]; var i_151 = readOpenTypeHeader(e), o_29 = readTables(e, i_151.numTables); if (!o_29.name) throw new FormatError('TrueType Collection font must contain a "name" table.'); var g_22 = readNameTable(o_29.name)[0]; for (var e_197 = 0, a_127 = g_22.length; e_197 < a_127; e_197++) for (var a_128 = 0, n_45 = g_22[e_197].length; a_128 < n_45; a_128++) { var n_46 = (_b = g_22[e_197][a_128]) === null || _b === void 0 ? void 0 : _b.replaceAll(/\s/g, ""); if (n_46) { if (n_46 === t) return { header: i_151, tables: o_29 }; if (!(s.length < 2)) for (var _j = 0, s_89 = s; _j < s_89.length; _j++) { var e_198 = s_89[_j]; n_46 === e_198 && (r = { name: e_198, header: i_151, tables: o_29 }); } } } } if (r) { warn("TrueType Collection does not contain \"".concat(t, "\" font, falling back to \"").concat(r.name, "\" font instead.")); return { header: r.header, tables: r.tables }; } throw new FormatError("TrueType Collection does not contain \"".concat(t, "\" font.")); }(t, this.name); r = e_196.header; n = e_196.tables; } else { r = readOpenTypeHeader(t); n = readTables(t, r.numTables); } var c = !n["CFF "]; if (c) { if (!n.loca) throw new FormatError('Required "loca" table is not found'); if (!n.glyf) { warn('Required "glyf" table is not found -- trying to recover.'); n.glyf = { tag: "glyf", data: new Uint8Array(0) }; } this.isOpenType = !1; } else { var t_150 = i.composite && (((_b = i.cidToGidMap) === null || _b === void 0 ? void 0 : _b.length) > 0 || !(i.cMap instanceof IdentityCMap)); if ("OTTO" === r.version && !t_150 || !n.head || !n.hhea || !n.maxp || !n.post) { g = new Stream(n["CFF "].data); o = new CFFFont(g, i); adjustWidths(i); return this.convert(e, o, i); } delete n.glyf; delete n.loca; delete n.fpgm; delete n.prep; delete n["cvt "]; this.isOpenType = !0; } if (!n.maxp) throw new FormatError('Required "maxp" table is not found'); t.pos = (t.start || 0) + n.maxp.offset; var h = t.getInt32(); var l = t.getUint16(); if (65536 !== h && 20480 !== h) { if (6 === n.maxp.length) h = 20480; else { if (!(n.maxp.length >= 32)) throw new FormatError('"maxp" table has a wrong version number'); h = 65536; } !function writeUint32(e, t, i) { e[t + 3] = 255 & i; e[t + 2] = i >>> 8; e[t + 1] = i >>> 16; e[t] = i >>> 24; }(n.maxp.data, 0, h); } if (((_h = i.scaleFactors) === null || _h === void 0 ? void 0 : _h.length) === l && c) { var e_199 = i.scaleFactors, t_151 = int16(n.head.data[50], n.head.data[51]), a_129 = new GlyfTable({ glyfTable: n.glyf.data, isGlyphLocationsLong: t_151, locaTable: n.loca.data, numGlyphs: l }); a_129.scale(e_199); var _k = a_129.write(), s_90 = _k.glyf, r_63 = _k.loca, o_30 = _k.isLocationLong; n.glyf.data = s_90; n.loca.data = r_63; if (o_30 !== !!t_151) { n.head.data[50] = 0; n.head.data[51] = o_30 ? 1 : 0; } var g_23 = n.hmtx.data; for (var t_152 = 0; t_152 < l; t_152++) { var i_152 = 4 * t_152, a_130 = Math.round(e_199[t_152] * int16(g_23[i_152], g_23[i_152 + 1])); g_23[i_152] = a_130 >> 8 & 255; g_23[i_152 + 1] = 255 & a_130; writeSignedInt16(g_23, i_152 + 2, Math.round(e_199[t_152] * signedInt16(g_23[i_152 + 2], g_23[i_152 + 3]))); } } var C = l + 1, Q = !0; if (C > 65535) { Q = !1; C = l; warn("Not enough space in glyfs to duplicate first glyph."); } var E = 0, u = 0; if (h >= 65536 && n.maxp.length >= 32) { t.pos += 8; if (t.getUint16() > 2) { n.maxp.data[14] = 0; n.maxp.data[15] = 2; } t.pos += 4; E = t.getUint16(); t.pos += 4; u = t.getUint16(); } n.maxp.data[4] = C >> 8; n.maxp.data[5] = 255 & C; var d = function sanitizeTTPrograms(e, t, i, a) { var s = { functionsDefined: [], functionsUsed: [], functionsStackDeltas: [], tooComplexToFollowFunctions: !1, hintsValid: !0 }; e && sanitizeTTProgram(e, s); t && sanitizeTTProgram(t, s); e && function checkInvalidFunctions(e, t) { if (!e.tooComplexToFollowFunctions) if (e.functionsDefined.length > t) { warn("TT: more functions defined than expected"); e.hintsValid = !1; } else for (var i_153 = 0, a_131 = e.functionsUsed.length; i_153 < a_131; i_153++) { if (i_153 > t) { warn("TT: invalid function id: " + i_153); e.hintsValid = !1; return; } if (e.functionsUsed[i_153] && !e.functionsDefined[i_153]) { warn("TT: undefined function: " + i_153); e.hintsValid = !1; return; } } }(s, a); if (i && 1 & i.length) { var e_200 = new Uint8Array(i.length + 1); e_200.set(i.data); i.data = e_200; } return s.hintsValid; }(n.fpgm, n.prep, n["cvt "], E); if (!d) { delete n.fpgm; delete n.prep; delete n["cvt "]; } !function sanitizeMetrics(e, t, i, a, s, r) { if (!t) { i && (i.data = null); return; } e.pos = (e.start || 0) + t.offset; e.pos += 4; e.pos += 2; e.pos += 2; e.pos += 2; e.pos += 2; e.pos += 2; e.pos += 2; e.pos += 2; e.pos += 2; e.pos += 2; var n = e.getUint16(); e.pos += 8; e.pos += 2; var o = e.getUint16(); if (0 !== n) { if (!(2 & int16(a.data[44], a.data[45]))) { t.data[22] = 0; t.data[23] = 0; } } if (o > s) { info("The numOfMetrics (".concat(o, ") should not be greater than the numGlyphs (").concat(s, ").")); o = s; t.data[34] = (65280 & o) >> 8; t.data[35] = 255 & o; } var g = s - o - (i.length - 4 * o >> 1); if (g > 0) { var e_201 = new Uint8Array(i.length + 2 * g); e_201.set(i.data); if (r) { e_201[i.length] = i.data[2]; e_201[i.length + 1] = i.data[3]; } i.data = e_201; } }(t, n.hhea, n.hmtx, n.head, C, Q); if (!n.head) throw new FormatError('Required "head" table is not found'); !function sanitizeHead(e, t, i) { var a = e.data, s = function int32(e, t, i, a) { return (e << 24) + (t << 16) + (i << 8) + a; }(a[0], a[1], a[2], a[3]); if (s >> 16 != 1) { info("Attempting to fix invalid version in head table: " + s); a[0] = 0; a[1] = 1; a[2] = 0; a[3] = 0; } var r = int16(a[50], a[51]); if (r < 0 || r > 1) { info("Attempting to fix invalid indexToLocFormat in head table: " + r); var e_202 = t + 1; if (i === e_202 << 1) { a[50] = 0; a[51] = 0; } else { if (i !== e_202 << 2) throw new FormatError("Could not fix indexToLocFormat: " + r); a[50] = 0; a[51] = 1; } } }(n.head, l, c ? n.loca.length : 0); var f = Object.create(null); if (c) { var e_203 = int16(n.head.data[50], n.head.data[51]), t_153 = function sanitizeGlyphLocations(e, t, i, a, s, r, n) { var o, g, c; if (a) { o = 4; g = function fontItemDecodeLong(e, t) { return e[t] << 24 | e[t + 1] << 16 | e[t + 2] << 8 | e[t + 3]; }; c = function fontItemEncodeLong(e, t, i) { e[t] = i >>> 24 & 255; e[t + 1] = i >> 16 & 255; e[t + 2] = i >> 8 & 255; e[t + 3] = 255 & i; }; } else { o = 2; g = function fontItemDecode(e, t) { return e[t] << 9 | e[t + 1] << 1; }; c = function fontItemEncode(e, t, i) { e[t] = i >> 9 & 255; e[t + 1] = i >> 1 & 255; }; } var h = r ? i + 1 : i, l = o * (1 + h), C = new Uint8Array(l); C.set(e.data.subarray(0, l)); e.data = C; var Q = t.data, E = Q.length, u = new Uint8Array(E); var d, f; var p = []; for (d = 0, f = 0; d < i + 1; d++, f += o) { var e_204 = g(C, f); e_204 > E && (e_204 = E); p.push({ index: d, offset: e_204, endOffset: 0 }); } p.sort((function (e, t) { return e.offset - t.offset; })); for (d = 0; d < i; d++) p[d].endOffset = p[d + 1].offset; p.sort((function (e, t) { return e.index - t.index; })); for (d = 0; d < i; d++) { var _b = p[d], e_205 = _b.offset, t_154 = _b.endOffset; if (0 !== e_205 || 0 !== t_154) break; var i_154 = p[d + 1].offset; if (0 !== i_154) { p[d].endOffset = i_154; break; } } var m = p.at(-2); 0 !== m.offset && 0 === m.endOffset && (m.endOffset = E); var y = Object.create(null); var w = 0; c(C, 0, w); for (d = 0, f = o; d < i; d++, f += o) { var e_206 = sanitizeGlyph(Q, p[d].offset, p[d].endOffset, u, w, s), t_155 = e_206.length; 0 === t_155 && (y[d] = !0); e_206.sizeOfInstructions > n && (n = e_206.sizeOfInstructions); w += t_155; c(C, f, w); } if (0 === w) { var e_207 = new Uint8Array([0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 0]); for (d = 0, f = o; d < h; d++, f += o) c(C, f, e_207.length); t.data = e_207; } else if (r) { var i_155 = g(C, o); if (u.length > i_155 + w) t.data = u.subarray(0, i_155 + w); else { t.data = new Uint8Array(i_155 + w); t.data.set(u.subarray(0, w)); } t.data.set(u.subarray(0, i_155), w); c(e.data, C.length - o, w + i_155); } else t.data = u.subarray(0, w); return { missingGlyphs: y, maxSizeOfInstructions: n }; }(n.loca, n.glyf, l, e_203, d, Q, u); f = t_153.missingGlyphs; if (h >= 65536 && n.maxp.length >= 32) { n.maxp.data[26] = t_153.maxSizeOfInstructions >> 8; n.maxp.data[27] = 255 & t_153.maxSizeOfInstructions; } } if (!n.hhea) throw new FormatError('Required "hhea" table is not found'); if (0 === n.hhea.data[10] && 0 === n.hhea.data[11]) { n.hhea.data[10] = 255; n.hhea.data[11] = 255; } var p = { unitsPerEm: int16(n.head.data[18], n.head.data[19]), yMax: signedInt16(n.head.data[42], n.head.data[43]), yMin: signedInt16(n.head.data[38], n.head.data[39]), ascent: signedInt16(n.hhea.data[4], n.hhea.data[5]), descent: signedInt16(n.hhea.data[6], n.hhea.data[7]), lineGap: signedInt16(n.hhea.data[8], n.hhea.data[9]) }; this.ascent = p.ascent / p.unitsPerEm; this.descent = p.descent / p.unitsPerEm; this.lineGap = p.lineGap / p.unitsPerEm; if ((_j = this.cssFontInfo) === null || _j === void 0 ? void 0 : _j.lineHeight) { this.lineHeight = this.cssFontInfo.metrics.lineHeight; this.lineGap = this.cssFontInfo.metrics.lineGap; } else this.lineHeight = this.ascent - this.descent + this.lineGap; n.post && function readPostScriptTable(e, i, a) { var s = (t.start || 0) + e.offset; t.pos = s; var r = s + e.length, n = t.getInt32(); t.skip(28); var o, g, c = !0; switch (n) { case 65536: o = Oi; break; case 131072: var e_208 = t.getUint16(); if (e_208 !== a) { c = !1; break; } var s_91 = []; for (g = 0; g < e_208; ++g) { var e_209 = t.getUint16(); if (e_209 >= 32768) { c = !1; break; } s_91.push(e_209); } if (!c) break; var h_11 = [], l_11 = []; for (; t.pos < r;) { var e_210 = t.getByte(); l_11.length = e_210; for (g = 0; g < e_210; ++g) l_11[g] = String.fromCharCode(t.getByte()); h_11.push(l_11.join("")); } o = []; for (g = 0; g < e_208; ++g) { var e_211 = s_91[g]; e_211 < 258 ? o.push(Oi[e_211]) : o.push(h_11[e_211 - 258]); } break; case 196608: break; default: warn("Unknown/unsupported post table version " + n); c = !1; i.defaultEncoding && (o = i.defaultEncoding); } i.glyphNames = o; return c; }(n.post, i, l); n.post = { tag: "post", data: createPostTable(i) }; var m = Object.create(null); function hasGlyph(e) { return !f[e]; } if (i.composite) { var e_212 = i.cidToGidMap || [], t_156 = 0 === e_212.length; i.cMap.forEach((function (i, a) { "string" == typeof a && (a = convertCidString(i, a, !0)); if (a > 65535) throw new FormatError("Max size of CID is 65,535"); var s = -1; t_156 ? s = a : void 0 !== e_212[a] && (s = e_212[a]); s >= 0 && s < l && hasGlyph(s) && (m[i] = s); })); } else { var e_213 = function readCmapTable(e, t, i, a) { if (!e) { warn("No cmap table available."); return { platformId: -1, encodingId: -1, mappings: [], hasShortCmap: !1 }; } var s, r = (t.start || 0) + e.offset; t.pos = r; t.skip(2); var n = t.getUint16(); var o, g = !1; for (var e_214 = 0; e_214 < n; e_214++) { var s_92 = t.getUint16(), r_64 = t.getUint16(), c_14 = t.getInt32() >>> 0; var h_12 = !1; if ((o === null || o === void 0 ? void 0 : o.platformId) !== s_92 || (o === null || o === void 0 ? void 0 : o.encodingId) !== r_64) { if (0 !== s_92 || 0 !== r_64 && 1 !== r_64 && 3 !== r_64) if (1 === s_92 && 0 === r_64) h_12 = !0; else if (3 !== s_92 || 1 !== r_64 || !a && o) { if (i && 3 === s_92 && 0 === r_64) { h_12 = !0; var i_156 = !0; if (e_214 < n - 1) { var e_215 = t.peekBytes(2); int16(e_215[0], e_215[1]) < s_92 && (i_156 = !1); } i_156 && (g = !0); } } else { h_12 = !0; i || (g = !0); } else h_12 = !0; h_12 && (o = { platformId: s_92, encodingId: r_64, offset: c_14 }); if (g) break; } } o && (t.pos = r + o.offset); if (!o || -1 === t.peekByte()) { warn("Could not find a preferred cmap table."); return { platformId: -1, encodingId: -1, mappings: [], hasShortCmap: !1 }; } var c = t.getUint16(); var h = !1; var l = []; var C, Q; if (0 === c) { t.skip(4); for (C = 0; C < 256; C++) { var e_216 = t.getByte(); e_216 && l.push({ charCode: C, glyphId: e_216 }); } h = !0; } else if (2 === c) { t.skip(4); var e_217 = []; var i_157 = 0; for (var a_132 = 0; a_132 < 256; a_132++) { var a_133 = t.getUint16() >> 3; e_217.push(a_133); i_157 = Math.max(a_133, i_157); } var a_134 = []; for (var e_218 = 0; e_218 <= i_157; e_218++) a_134.push({ firstCode: t.getUint16(), entryCount: t.getUint16(), idDelta: signedInt16(t.getByte(), t.getByte()), idRangePos: t.pos + t.getUint16() }); for (var i_158 = 0; i_158 < 256; i_158++) if (0 === e_217[i_158]) { t.pos = a_134[0].idRangePos + 2 * i_158; Q = t.getUint16(); l.push({ charCode: i_158, glyphId: Q }); } else { var s_93 = a_134[e_217[i_158]]; for (C = 0; C < s_93.entryCount; C++) { var e_219 = (i_158 << 8) + C + s_93.firstCode; t.pos = s_93.idRangePos + 2 * C; Q = t.getUint16(); 0 !== Q && (Q = (Q + s_93.idDelta) % 65536); l.push({ charCode: e_219, glyphId: Q }); } } } else if (4 === c) { t.skip(4); var e_220 = t.getUint16() >> 1; t.skip(6); var i_159 = []; var a_135; for (a_135 = 0; a_135 < e_220; a_135++) i_159.push({ end: t.getUint16() }); t.skip(2); for (a_135 = 0; a_135 < e_220; a_135++) i_159[a_135].start = t.getUint16(); for (a_135 = 0; a_135 < e_220; a_135++) i_159[a_135].delta = t.getUint16(); var n_47, o_31 = 0; for (a_135 = 0; a_135 < e_220; a_135++) { s = i_159[a_135]; var r_65 = t.getUint16(); if (r_65) { n_47 = (r_65 >> 1) - (e_220 - a_135); s.offsetIndex = n_47; o_31 = Math.max(o_31, n_47 + s.end - s.start + 1); } else s.offsetIndex = -1; } var g_24 = []; for (C = 0; C < o_31; C++) g_24.push(t.getUint16()); for (a_135 = 0; a_135 < e_220; a_135++) { s = i_159[a_135]; r = s.start; var e_221 = s.end, t_157 = s.delta; n_47 = s.offsetIndex; for (C = r; C <= e_221; C++) if (65535 !== C) { Q = n_47 < 0 ? C : g_24[n_47 + C - r]; Q = Q + t_157 & 65535; l.push({ charCode: C, glyphId: Q }); } } } else if (6 === c) { t.skip(4); var e_222 = t.getUint16(), i_160 = t.getUint16(); for (C = 0; C < i_160; C++) { Q = t.getUint16(); var i_161 = e_222 + C; l.push({ charCode: i_161, glyphId: Q }); } } else { if (12 !== c) { warn("cmap table has unsupported format: " + c); return { platformId: -1, encodingId: -1, mappings: [], hasShortCmap: !1 }; } { t.skip(10); var e_223 = t.getInt32() >>> 0; for (C = 0; C < e_223; C++) { var e_224 = t.getInt32() >>> 0, i_162 = t.getInt32() >>> 0; var a_136 = t.getInt32() >>> 0; for (var t_158 = e_224; t_158 <= i_162; t_158++) l.push({ charCode: t_158, glyphId: a_136++ }); } } } l.sort((function (e, t) { return e.charCode - t.charCode; })); for (var e_225 = 1; e_225 < l.length; e_225++) if (l[e_225 - 1].charCode === l[e_225].charCode) { l.splice(e_225, 1); e_225--; } return { platformId: o.platformId, encodingId: o.encodingId, mappings: l, hasShortCmap: h }; }(n.cmap, t, this.isSymbolicFont, i.hasEncoding), a_137 = e_213.platformId, s_94 = e_213.encodingId, r_66 = e_213.mappings; var o_32 = [], g_25 = !1; !i.hasEncoding || "MacRomanEncoding" !== i.baseEncodingName && "WinAnsiEncoding" !== i.baseEncodingName || (o_32 = getEncoding(i.baseEncodingName)); if (i.hasEncoding && !this.isSymbolicFont && (3 === a_137 && 1 === s_94 || 1 === a_137 && 0 === s_94)) { var e_226 = Ni(); for (var t_159 = 0; t_159 < 256; t_159++) { var n_48 = void 0; n_48 = void 0 !== this.differences[t_159] ? this.differences[t_159] : o_32.length && "" !== o_32[t_159] ? o_32[t_159] : fi[t_159]; if (!n_48) continue; var g_26 = recoverGlyphName(n_48, e_226); var c_15 = void 0; 3 === a_137 && 1 === s_94 ? c_15 = e_226[g_26] : 1 === a_137 && 0 === s_94 && (c_15 = di.indexOf(g_26)); if (void 0 === c_15) { if (!i.glyphNames && i.hasIncludedToUnicodeMap && !(this.toUnicode instanceof IdentityToUnicodeMap)) { var e_227 = this.toUnicode.get(t_159); e_227 && (c_15 = e_227.codePointAt(0)); } if (void 0 === c_15) continue; } for (var _l = 0, r_57 = r_66; _l < r_57.length; _l++) { var e_228 = r_57[_l]; if (e_228.charCode === c_15) { m[t_159] = e_228.glyphId; break; } } } } else if (0 === a_137) { for (var _m = 0, r_58 = r_66; _m < r_58.length; _m++) { var e_229 = r_58[_m]; m[e_229.charCode] = e_229.glyphId; } g_25 = !0; } else if (3 === a_137 && 0 === s_94) for (var _o = 0, r_59 = r_66; _o < r_59.length; _o++) { var e_230 = r_59[_o]; var t_160 = e_230.charCode; t_160 >= 61440 && t_160 <= 61695 && (t_160 &= 255); m[t_160] = e_230.glyphId; } else for (var _p = 0, r_60 = r_66; _p < r_60.length; _p++) { var e_231 = r_60[_p]; m[e_231.charCode] = e_231.glyphId; } if (i.glyphNames && (o_32.length || this.differences.length)) for (var e_232 = 0; e_232 < 256; ++e_232) { if (!g_25 && void 0 !== m[e_232]) continue; var t_161 = this.differences[e_232] || o_32[e_232]; if (!t_161) continue; var a_138 = i.glyphNames.indexOf(t_161); a_138 > 0 && hasGlyph(a_138) && (m[e_232] = a_138); } } 0 === m.length && (m[0] = 0); var y = C - 1; Q || (y = 0); if (!i.cssFontInfo) { var e_233 = adjustMapping(m, hasGlyph, y, this.toUnicode); this.toFontChar = e_233.toFontChar; n.cmap = { tag: "cmap", data: createCmapTable(e_233.charCodeToGlyphId, e_233.toUnicodeExtraMap, C) }; n["OS/2"] && function validateOS2Table(e, t) { t.pos = (t.start || 0) + e.offset; var i = t.getUint16(); t.skip(60); var a = t.getUint16(); if (i < 4 && 768 & a) return !1; if (t.getUint16() > t.getUint16()) return !1; t.skip(6); if (0 === t.getUint16()) return !1; e.data[8] = e.data[9] = 0; return !0; }(n["OS/2"], t) || (n["OS/2"] = { tag: "OS/2", data: createOS2Table(i, e_233.charCodeToGlyphId, p) }); } if (!c) try { g = new Stream(n["CFF "].data); o = new CFFParser(g, i, Yi).parse(); o.duplicateFirstGlyph(); var e_234 = new CFFCompiler(o); n["CFF "].data = e_234.compile(); } catch (_q) { warn("Failed to compile font " + i.loadedName); } if (n.name) { var _u = readNameTable(n.name), t_162 = _u[0], a_139 = _u[1]; n.name.data = createNameTable(e, t_162); this.psName = t_162[0][6] || null; i.composite || function adjustTrueTypeToUnicode(e, t, i) { if (e.isInternalFont) return; if (e.hasIncludedToUnicodeMap) return; if (e.hasEncoding) return; if (e.toUnicode instanceof IdentityToUnicodeMap) return; if (!t) return; if (0 === i.length) return; if (e.defaultEncoding === pi) return; for (var _b = 0, i_163 = i; _b < i_163.length; _b++) { var e_235 = i_163[_b]; if (!isWinNameRecord(e_235)) return; } var a = pi, s = [], r = Ni(); for (var e_236 in a) { var t_163 = a[e_236]; if ("" === t_163) continue; var i_164 = r[t_163]; void 0 !== i_164 && (s[e_236] = String.fromCharCode(i_164)); } s.length > 0 && e.toUnicode.amend(s); }(i, this.isSymbolicFont, a_139); } else n.name = { tag: "name", data: createNameTable(this.name) }; var w = new OpenTypeFileBuilder(r.version); for (var e_237 in n) w.addTable(e_237, n[e_237].data); return w.toArray(); }; Font.prototype.convert = function (e, t, i) { i.fixedPitch = !1; i.builtInEncoding && function adjustType1ToUnicode(e, t) { if (e.isInternalFont) return; if (e.hasIncludedToUnicodeMap) return; if (t === e.defaultEncoding) return; if (e.toUnicode instanceof IdentityToUnicodeMap) return; var i = [], a = Ni(); for (var s_95 in t) { if (e.hasEncoding && (e.baseEncodingName || void 0 !== e.differences[s_95])) continue; var r_67 = getUnicodeForGlyph(t[s_95], a); -1 !== r_67 && (i[s_95] = String.fromCharCode(r_67)); } i.length > 0 && e.toUnicode.amend(i); }(i, i.builtInEncoding); var s = 1; t instanceof CFFFont && (s = t.numGlyphs - 1); var r = t.getGlyphMapping(i); var n = null, o = r, g = null; if (!i.cssFontInfo) { n = adjustMapping(r, t.hasGlyphId.bind(t), s, this.toUnicode); this.toFontChar = n.toFontChar; o = n.charCodeToGlyphId; g = n.toUnicodeExtraMap; } var c = t.numGlyphs; function getCharCodes(e, t) { var i = null; for (var a_140 in e) t === e[a_140] && (i || (i = [])).push(0 | a_140); return i; } function createCharCode(e, t) { for (var i_165 in e) if (t === e[i_165]) return 0 | i_165; n.charCodeToGlyphId[n.nextAvailableFontCharCode] = t; return n.nextAvailableFontCharCode++; } var h = t.seacs; if (n && (h === null || h === void 0 ? void 0 : h.length)) { var e_238 = i.fontMatrix || a, s_96 = t.getCharset(), o_33 = Object.create(null); for (var t_164 in h) { t_164 |= 0; var i_166 = h[t_164], a_141 = fi[i_166[2]], g_27 = fi[i_166[3]], c_16 = s_96.indexOf(a_141), l_12 = s_96.indexOf(g_27); if (c_16 < 0 || l_12 < 0) continue; var C_11 = { x: i_166[0] * e_238[0] + i_166[1] * e_238[2] + e_238[4], y: i_166[0] * e_238[1] + i_166[1] * e_238[3] + e_238[5] }, Q_13 = getCharCodes(r, t_164); if (Q_13) for (var _b = 0, Q_12 = Q_13; _b < Q_12.length; _b++) { var e_239 = Q_12[_b]; var t_165 = n.charCodeToGlyphId, i_167 = createCharCode(t_165, c_16), a_142 = createCharCode(t_165, l_12); o_33[e_239] = { baseFontCharCode: i_167, accentFontCharCode: a_142, accentOffset: C_11 }; } } i.seacMap = o_33; } var l = 1 / (i.fontMatrix || a)[0], C = new OpenTypeFileBuilder("OTTO"); C.addTable("CFF ", t.data); C.addTable("OS/2", createOS2Table(i, o)); C.addTable("cmap", createCmapTable(o, g, c)); C.addTable("head", "\0\0\0\0\0\0\0\0\0\0_<õ\0\0" + safeString16(l) + "\0\0\0\0ž\v~'\0\0\0\0ž\v~'\0\0" + safeString16(i.descent) + "ÿ" + safeString16(i.ascent) + string16(i.italicAngle ? 2 : 0) + "\0\0\0\0\0\0\0"); C.addTable("hhea", "\0\0\0" + safeString16(i.ascent) + safeString16(i.descent) + "\0\0ÿÿ\0\0\0\0\0\0" + safeString16(i.capHeight) + safeString16(Math.tan(i.italicAngle) * i.xHeight) + "\0\0\0\0\0\0\0\0\0\0\0\0" + string16(c)); C.addTable("hmtx", function fontFieldsHmtx() { var e = t.charstrings, i = t.cff ? t.cff.widths : null; var a = "\0\0\0\0"; for (var t_166 = 1, s_97 = c; t_166 < s_97; t_166++) { var s_98 = 0; if (e) { var i_168 = e[t_166 - 1]; s_98 = "width" in i_168 ? i_168.width : 0; } else i && (s_98 = Math.ceil(i[t_166] || 0)); a += string16(s_98) + string16(0); } return a; }()); C.addTable("maxp", "\0\0P\0" + string16(c)); C.addTable("name", createNameTable(e)); C.addTable("post", createPostTable(i)); return C.toArray(); }; Font.prototype._charToGlyph = function (e, t) { var _b, _h, _j; if (t === void 0) { t = !1; } var i, a, s, r = this._glyphCache[e]; if ((r === null || r === void 0 ? void 0 : r.isSpace) === t) return r; var n = e; if ((_b = this.cMap) === null || _b === void 0 ? void 0 : _b.contains(e)) { n = this.cMap.lookup(e); "string" == typeof n && (n = convertCidString(e, n)); } a = this.widths[n]; "number" != typeof a && (a = this.defaultWidth); var o = (_h = this.vmetrics) === null || _h === void 0 ? void 0 : _h[n]; var g = this.toUnicode.get(e) || e; "number" == typeof g && (g = String.fromCharCode(g)); var c = void 0 !== this.toFontChar[e]; i = this.toFontChar[e] || e; if (this.missingFile) { var t_167 = this.differences[e] || this.defaultEncoding[e]; ".notdef" !== t_167 && "" !== t_167 || "Type1" !== this.type || (i = 32); i = function mapSpecialUnicodeValues(e) { return e >= 65520 && e <= 65535 ? 0 : e >= 62976 && e <= 63743 ? xi()[e] || e : 173 === e ? 45 : e; }(i); } this.isType3Font && (s = i); var h = null; if ((_j = this.seacMap) === null || _j === void 0 ? void 0 : _j[e]) { c = !0; var t_168 = this.seacMap[e]; i = t_168.baseFontCharCode; h = { fontChar: String.fromCodePoint(t_168.accentFontCharCode), offset: t_168.accentOffset }; } var l = ""; "number" == typeof i && (i <= 1114111 ? l = String.fromCodePoint(i) : warn("charToGlyph - invalid fontCharCode: ".concat(i))); r = new fonts_Glyph(e, l, g, h, a, o, s, t, c); return this._glyphCache[e] = r; }; Font.prototype.charsToGlyphs = function (e) { var t = this._charsCache[e]; if (t) return t; t = []; if (this.cMap) { var i_169 = Object.create(null), a_143 = e.length; var s_99 = 0; for (; s_99 < a_143;) { this.cMap.readCharCode(e, s_99, i_169); var a_144 = i_169.charcode, r_68 = i_169.length; s_99 += r_68; var n_49 = this._charToGlyph(a_144, 1 === r_68 && 32 === e.charCodeAt(s_99 - 1)); t.push(n_49); } } else for (var i_170 = 0, a_145 = e.length; i_170 < a_145; ++i_170) { var a_146 = e.charCodeAt(i_170), s_100 = this._charToGlyph(a_146, 32 === a_146); t.push(s_100); } return this._charsCache[e] = t; }; Font.prototype.getCharPositions = function (e) { var t = []; if (this.cMap) { var i_171 = Object.create(null); var a_147 = 0; for (; a_147 < e.length;) { this.cMap.readCharCode(e, a_147, i_171); var s_101 = i_171.length; t.push([a_147, a_147 + s_101]); a_147 += s_101; } } else for (var i_172 = 0, a_148 = e.length; i_172 < a_148; ++i_172) t.push([i_172, i_172 + 1]); return t; }; Object.defineProperty(Font.prototype, "glyphCacheValues", { get: function () { return Object.values(this._glyphCache); }, enumerable: false, configurable: true }); Font.prototype.encodeString = function (e) { var _this = this; var t = [], i = [], hasCurrentBufErrors = function () { return t.length % 2 == 1; }, a = this.toUnicode instanceof IdentityToUnicodeMap ? function (e) { return _this.toUnicode.charCodeOf(e); } : function (e) { return _this.toUnicode.charCodeOf(String.fromCodePoint(e)); }; for (var s_102 = 0, r_69 = e.length; s_102 < r_69; s_102++) { var r_70 = e.codePointAt(s_102); r_70 > 55295 && (r_70 < 57344 || r_70 > 65533) && s_102++; if (this.toUnicode) { var e_240 = a(r_70); if (-1 !== e_240) { if (hasCurrentBufErrors()) { t.push(i.join("")); i.length = 0; } for (var t_169 = (this.cMap ? this.cMap.getCharCodeLength(e_240) : 1) - 1; t_169 >= 0; t_169--) i.push(String.fromCharCode(e_240 >> 8 * t_169 & 255)); continue; } } if (!hasCurrentBufErrors()) { t.push(i.join("")); i.length = 0; } i.push(String.fromCodePoint(r_70)); } t.push(i.join("")); return t; }; return Font; }()); var ErrorFont = /** @class */ (function () { function ErrorFont(e) { this.error = e; this.loadedName = "g_font_error"; this.missingFile = !0; } ErrorFont.prototype.charsToGlyphs = function () { return []; }; ErrorFont.prototype.encodeString = function (e) { return [e]; }; ErrorFont.prototype.exportData = function (e) { if (e === void 0) { e = !1; } return { error: this.error }; }; return ErrorFont; }()); var Ea = 2, ua = 3, da = 4, fa = 5, pa = 6, ma = 7; var Pattern = /** @class */ (function () { function Pattern() { unreachable("Cannot initialize Pattern."); } Pattern.parseShading = function (e, t, i, a, s) { var r = e instanceof BaseStream ? e.dict : e, n = r.get("ShadingType"); try { switch (n) { case Ea: case ua: return new RadialAxialShading(r, t, i, a, s); case da: case fa: case pa: case ma: return new MeshShading(e, t, i, a, s); default: throw new FormatError("Unsupported ShadingType: " + n); } } catch (e) { if (e instanceof MissingDataException) throw e; warn(e); return new DummyShading; } }; return Pattern; }()); var BaseShading = /** @class */ (function () { function BaseShading() { this.constructor === BaseShading && unreachable("Cannot initialize BaseShading."); } BaseShading.prototype.getIR = function () { unreachable("Abstract method `getIR` called."); }; BaseShading.SMALL_NUMBER = 1e-6; return BaseShading; }()); var RadialAxialShading = /** @class */ (function (_super) { tslib_1.__extends(RadialAxialShading, _super); function RadialAxialShading(e, t, i, a, s) { var _this = _super.call(this) || this; _this.shadingType = e.get("ShadingType"); var r = 0; _this.shadingType === Ea ? r = 4 : _this.shadingType === ua && (r = 6); _this.coordsArr = e.getArray("Coords"); if (!isNumberArray(_this.coordsArr, r)) throw new FormatError("RadialAxialShading: Invalid /Coords array."); var n = ColorSpace.parse({ cs: e.getRaw("CS") || e.getRaw("ColorSpace"), xref: t, resources: i, pdfFunctionFactory: a, localColorSpaceCache: s }); _this.bbox = lookupNormalRect(e.getArray("BBox"), null); var o = 0, g = 1; var c = e.getArray("Domain"); isNumberArray(c, 2) && (o = c[0], g = c[1], c); var h = !1, l = !1; var C = e.getArray("Extend"); (function isBooleanArray(e, t) { return Array.isArray(e) && (null === t || e.length === t) && e.every((function (e) { return "boolean" == typeof e; })); })(C, 2) && (h = C[0], l = C[1], C); if (!(_this.shadingType !== ua || h && l)) { var _b = _this.coordsArr, e_241 = _b[0], t_170 = _b[1], i_173 = _b[2], a_149 = _b[3], s_103 = _b[4], r_71 = _b[5], n_50 = Math.hypot(e_241 - a_149, t_170 - s_103); i_173 <= r_71 + n_50 && r_71 <= i_173 + n_50 && warn("Unsupported radial gradient."); } _this.extendStart = h; _this.extendEnd = l; var Q = e.getRaw("Function"), E = a.createFromArray(Q), u = (g - o) / 840, d = _this.colorStops = []; if (o >= g || u <= 0) { info("Bad shading domain."); return _this; } var f = new Float32Array(n.numComps), p = new Float32Array(1); var m, y = 0; p[0] = o; E(p, 0, f, 0); var w = n.getRgb(f, 0); var b = Util.makeHexColor(w[0], w[1], w[2]); d.push([0, b]); var D = 1; p[0] = o + u; E(p, 0, f, 0); var F = n.getRgb(f, 0), S = F[0] - w[0] + 1, k = F[1] - w[1] + 1, R = F[2] - w[2] + 1, N = F[0] - w[0] - 1, G = F[1] - w[1] - 1, x = F[2] - w[2] - 1; for (var e_242 = 2; e_242 < 840; e_242++) { p[0] = o + e_242 * u; E(p, 0, f, 0); m = n.getRgb(f, 0); var t_171 = e_242 - y; S = Math.min(S, (m[0] - w[0] + 1) / t_171); k = Math.min(k, (m[1] - w[1] + 1) / t_171); R = Math.min(R, (m[2] - w[2] + 1) / t_171); N = Math.max(N, (m[0] - w[0] - 1) / t_171); G = Math.max(G, (m[1] - w[1] - 1) / t_171); x = Math.max(x, (m[2] - w[2] - 1) / t_171); if (!(N <= S && G <= k && x <= R)) { var e_243 = Util.makeHexColor(F[0], F[1], F[2]); d.push([D / 840, e_243]); S = m[0] - F[0] + 1; k = m[1] - F[1] + 1; R = m[2] - F[2] + 1; N = m[0] - F[0] - 1; G = m[1] - F[1] - 1; x = m[2] - F[2] - 1; y = D; w = F; } D = e_242; F = m; } var M = Util.makeHexColor(F[0], F[1], F[2]); d.push([1, M]); var U = "transparent"; if (e.has("Background")) { m = n.getRgb(e.get("Background"), 0); U = Util.makeHexColor(m[0], m[1], m[2]); } if (!h) { d.unshift([0, U]); d[1][0] += BaseShading.SMALL_NUMBER; } if (!l) { d.at(-1)[0] -= BaseShading.SMALL_NUMBER; d.push([1, U]); } _this.colorStops = d; return _this; } RadialAxialShading.prototype.getIR = function () { var _b = this, e = _b.coordsArr, t = _b.shadingType; var i, a, s, r, n; if (t === Ea) { a = [e[0], e[1]]; s = [e[2], e[3]]; r = null; n = null; i = "axial"; } else if (t === ua) { a = [e[0], e[1]]; s = [e[3], e[4]]; r = e[2]; n = e[5]; i = "radial"; } else unreachable("getPattern type unknown: ".concat(t)); return ["RadialAxial", i, this.bbox, this.colorStops, a, s, r, n]; }; return RadialAxialShading; }(BaseShading)); var MeshStreamReader = /** @class */ (function () { function MeshStreamReader(e, t) { this.stream = e; this.context = t; this.buffer = 0; this.bufferLength = 0; var i = t.numComps; this.tmpCompsBuf = new Float32Array(i); var a = t.colorSpace.numComps; this.tmpCsCompsBuf = t.colorFn ? new Float32Array(a) : this.tmpCompsBuf; } Object.defineProperty(MeshStreamReader.prototype, "hasData", { get: function () { if (this.stream.end) return this.stream.pos < this.stream.end; if (this.bufferLength > 0) return !0; var e = this.stream.getByte(); if (e < 0) return !1; this.buffer = e; this.bufferLength = 8; return !0; }, enumerable: false, configurable: true }); MeshStreamReader.prototype.readBits = function (e) { var t = this.buffer, i = this.bufferLength; if (32 === e) { if (0 === i) return (this.stream.getByte() << 24 | this.stream.getByte() << 16 | this.stream.getByte() << 8 | this.stream.getByte()) >>> 0; t = t << 24 | this.stream.getByte() << 16 | this.stream.getByte() << 8 | this.stream.getByte(); var e_244 = this.stream.getByte(); this.buffer = e_244 & (1 << i) - 1; return (t << 8 - i | (255 & e_244) >> i) >>> 0; } if (8 === e && 0 === i) return this.stream.getByte(); for (; i < e;) { t = t << 8 | this.stream.getByte(); i += 8; } i -= e; this.bufferLength = i; this.buffer = t & (1 << i) - 1; return t >> i; }; MeshStreamReader.prototype.align = function () { this.buffer = 0; this.bufferLength = 0; }; MeshStreamReader.prototype.readFlag = function () { return this.readBits(this.context.bitsPerFlag); }; MeshStreamReader.prototype.readCoordinate = function () { var e = this.context.bitsPerCoordinate, t = this.readBits(e), i = this.readBits(e), a = this.context.decode, s = e < 32 ? 1 / ((1 << e) - 1) : 2.3283064365386963e-10; return [t * s * (a[1] - a[0]) + a[0], i * s * (a[3] - a[2]) + a[2]]; }; MeshStreamReader.prototype.readComponents = function () { var e = this.context.numComps, t = this.context.bitsPerComponent, i = t < 32 ? 1 / ((1 << t) - 1) : 2.3283064365386963e-10, a = this.context.decode, s = this.tmpCompsBuf; for (var r_72 = 0, n_51 = 4; r_72 < e; r_72++, n_51 += 2) { var e_245 = this.readBits(t); s[r_72] = e_245 * i * (a[n_51 + 1] - a[n_51]) + a[n_51]; } var r = this.tmpCsCompsBuf; this.context.colorFn && this.context.colorFn(s, 0, r, 0); return this.context.colorSpace.getRgb(r, 0); }; return MeshStreamReader; }()); var ya = Object.create(null); function getB(e) { return ya[e] || (ya[e] = function buildB(e) { var t = []; for (var i_174 = 0; i_174 <= e; i_174++) { var a_150 = i_174 / e, s_104 = 1 - a_150; t.push(new Float32Array([Math.pow(s_104, 3), 3 * a_150 * Math.pow(s_104, 2), 3 * Math.pow(a_150, 2) * s_104, Math.pow(a_150, 3)])); } return t; }(e)); } var MeshShading = /** @class */ (function (_super) { tslib_1.__extends(MeshShading, _super); function MeshShading(e, t, i, a, s) { var _this = _super.call(this) || this; if (!(e instanceof BaseStream)) throw new FormatError("Mesh data is not a stream"); var r = e.dict; _this.shadingType = r.get("ShadingType"); _this.bbox = lookupNormalRect(r.getArray("BBox"), null); var n = ColorSpace.parse({ cs: r.getRaw("CS") || r.getRaw("ColorSpace"), xref: t, resources: i, pdfFunctionFactory: a, localColorSpaceCache: s }); _this.background = r.has("Background") ? n.getRgb(r.get("Background"), 0) : null; var o = r.getRaw("Function"), g = o ? a.createFromArray(o) : null; _this.coords = []; _this.colors = []; _this.figures = []; var c = { bitsPerCoordinate: r.get("BitsPerCoordinate"), bitsPerComponent: r.get("BitsPerComponent"), bitsPerFlag: r.get("BitsPerFlag"), decode: r.getArray("Decode"), colorFn: g, colorSpace: n, numComps: g ? 1 : n.numComps }, h = new MeshStreamReader(e, c); var l = !1; switch (_this.shadingType) { case da: _this._decodeType4Shading(h); break; case fa: var e_246 = 0 | r.get("VerticesPerRow"); if (e_246 < 2) throw new FormatError("Invalid VerticesPerRow"); _this._decodeType5Shading(h, e_246); break; case pa: _this._decodeType6Shading(h); l = !0; break; case ma: _this._decodeType7Shading(h); l = !0; break; default: unreachable("Unsupported mesh type."); } if (l) { _this._updateBounds(); for (var e_247 = 0, t_172 = _this.figures.length; e_247 < t_172; e_247++) _this._buildFigureFromPatch(e_247); } _this._updateBounds(); _this._packData(); return _this; } MeshShading.prototype._decodeType4Shading = function (e) { var t = this.coords, i = this.colors, a = [], s = []; var r = 0; for (; e.hasData;) { var n_52 = e.readFlag(), o_34 = e.readCoordinate(), g_28 = e.readComponents(); if (0 === r) { if (!(0 <= n_52 && n_52 <= 2)) throw new FormatError("Unknown type4 flag"); switch (n_52) { case 0: r = 3; break; case 1: s.push(s.at(-2), s.at(-1)); r = 1; break; case 2: s.push(s.at(-3), s.at(-1)); r = 1; } a.push(n_52); } s.push(t.length); t.push(o_34); i.push(g_28); r--; e.align(); } this.figures.push({ type: "triangles", coords: new Int32Array(s), colors: new Int32Array(s) }); }; MeshShading.prototype._decodeType5Shading = function (e, t) { var i = this.coords, a = this.colors, s = []; for (; e.hasData;) { var t_173 = e.readCoordinate(), r_73 = e.readComponents(); s.push(i.length); i.push(t_173); a.push(r_73); } this.figures.push({ type: "lattice", coords: new Int32Array(s), colors: new Int32Array(s), verticesPerRow: t }); }; MeshShading.prototype._decodeType6Shading = function (e) { var t = this.coords, i = this.colors, a = new Int32Array(16), s = new Int32Array(4); for (; e.hasData;) { var r_74 = e.readFlag(); if (!(0 <= r_74 && r_74 <= 3)) throw new FormatError("Unknown type6 flag"); var n_53 = t.length; for (var i_175 = 0, a_151 = 0 !== r_74 ? 8 : 12; i_175 < a_151; i_175++) t.push(e.readCoordinate()); var o_35 = i.length; for (var t_174 = 0, a_152 = 0 !== r_74 ? 2 : 4; t_174 < a_152; t_174++) i.push(e.readComponents()); var g_29 = void 0, c_17 = void 0, h_13 = void 0, l_13 = void 0; switch (r_74) { case 0: a[12] = n_53 + 3; a[13] = n_53 + 4; a[14] = n_53 + 5; a[15] = n_53 + 6; a[8] = n_53 + 2; a[11] = n_53 + 7; a[4] = n_53 + 1; a[7] = n_53 + 8; a[0] = n_53; a[1] = n_53 + 11; a[2] = n_53 + 10; a[3] = n_53 + 9; s[2] = o_35 + 1; s[3] = o_35 + 2; s[0] = o_35; s[1] = o_35 + 3; break; case 1: g_29 = a[12]; c_17 = a[13]; h_13 = a[14]; l_13 = a[15]; a[12] = l_13; a[13] = n_53 + 0; a[14] = n_53 + 1; a[15] = n_53 + 2; a[8] = h_13; a[11] = n_53 + 3; a[4] = c_17; a[7] = n_53 + 4; a[0] = g_29; a[1] = n_53 + 7; a[2] = n_53 + 6; a[3] = n_53 + 5; g_29 = s[2]; c_17 = s[3]; s[2] = c_17; s[3] = o_35; s[0] = g_29; s[1] = o_35 + 1; break; case 2: g_29 = a[15]; c_17 = a[11]; a[12] = a[3]; a[13] = n_53 + 0; a[14] = n_53 + 1; a[15] = n_53 + 2; a[8] = a[7]; a[11] = n_53 + 3; a[4] = c_17; a[7] = n_53 + 4; a[0] = g_29; a[1] = n_53 + 7; a[2] = n_53 + 6; a[3] = n_53 + 5; g_29 = s[3]; s[2] = s[1]; s[3] = o_35; s[0] = g_29; s[1] = o_35 + 1; break; case 3: a[12] = a[0]; a[13] = n_53 + 0; a[14] = n_53 + 1; a[15] = n_53 + 2; a[8] = a[1]; a[11] = n_53 + 3; a[4] = a[2]; a[7] = n_53 + 4; a[0] = a[3]; a[1] = n_53 + 7; a[2] = n_53 + 6; a[3] = n_53 + 5; s[2] = s[0]; s[3] = o_35; s[0] = s[1]; s[1] = o_35 + 1; } a[5] = t.length; t.push([(-4 * t[a[0]][0] - t[a[15]][0] + 6 * (t[a[4]][0] + t[a[1]][0]) - 2 * (t[a[12]][0] + t[a[3]][0]) + 3 * (t[a[13]][0] + t[a[7]][0])) / 9, (-4 * t[a[0]][1] - t[a[15]][1] + 6 * (t[a[4]][1] + t[a[1]][1]) - 2 * (t[a[12]][1] + t[a[3]][1]) + 3 * (t[a[13]][1] + t[a[7]][1])) / 9]); a[6] = t.length; t.push([(-4 * t[a[3]][0] - t[a[12]][0] + 6 * (t[a[2]][0] + t[a[7]][0]) - 2 * (t[a[0]][0] + t[a[15]][0]) + 3 * (t[a[4]][0] + t[a[14]][0])) / 9, (-4 * t[a[3]][1] - t[a[12]][1] + 6 * (t[a[2]][1] + t[a[7]][1]) - 2 * (t[a[0]][1] + t[a[15]][1]) + 3 * (t[a[4]][1] + t[a[14]][1])) / 9]); a[9] = t.length; t.push([(-4 * t[a[12]][0] - t[a[3]][0] + 6 * (t[a[8]][0] + t[a[13]][0]) - 2 * (t[a[0]][0] + t[a[15]][0]) + 3 * (t[a[11]][0] + t[a[1]][0])) / 9, (-4 * t[a[12]][1] - t[a[3]][1] + 6 * (t[a[8]][1] + t[a[13]][1]) - 2 * (t[a[0]][1] + t[a[15]][1]) + 3 * (t[a[11]][1] + t[a[1]][1])) / 9]); a[10] = t.length; t.push([(-4 * t[a[15]][0] - t[a[0]][0] + 6 * (t[a[11]][0] + t[a[14]][0]) - 2 * (t[a[12]][0] + t[a[3]][0]) + 3 * (t[a[2]][0] + t[a[8]][0])) / 9, (-4 * t[a[15]][1] - t[a[0]][1] + 6 * (t[a[11]][1] + t[a[14]][1]) - 2 * (t[a[12]][1] + t[a[3]][1]) + 3 * (t[a[2]][1] + t[a[8]][1])) / 9]); this.figures.push({ type: "patch", coords: new Int32Array(a), colors: new Int32Array(s) }); } }; MeshShading.prototype._decodeType7Shading = function (e) { var t = this.coords, i = this.colors, a = new Int32Array(16), s = new Int32Array(4); for (; e.hasData;) { var r_75 = e.readFlag(); if (!(0 <= r_75 && r_75 <= 3)) throw new FormatError("Unknown type7 flag"); var n_54 = t.length; for (var i_176 = 0, a_153 = 0 !== r_75 ? 12 : 16; i_176 < a_153; i_176++) t.push(e.readCoordinate()); var o_36 = i.length; for (var t_175 = 0, a_154 = 0 !== r_75 ? 2 : 4; t_175 < a_154; t_175++) i.push(e.readComponents()); var g_30 = void 0, c_18 = void 0, h_14 = void 0, l_14 = void 0; switch (r_75) { case 0: a[12] = n_54 + 3; a[13] = n_54 + 4; a[14] = n_54 + 5; a[15] = n_54 + 6; a[8] = n_54 + 2; a[9] = n_54 + 13; a[10] = n_54 + 14; a[11] = n_54 + 7; a[4] = n_54 + 1; a[5] = n_54 + 12; a[6] = n_54 + 15; a[7] = n_54 + 8; a[0] = n_54; a[1] = n_54 + 11; a[2] = n_54 + 10; a[3] = n_54 + 9; s[2] = o_36 + 1; s[3] = o_36 + 2; s[0] = o_36; s[1] = o_36 + 3; break; case 1: g_30 = a[12]; c_18 = a[13]; h_14 = a[14]; l_14 = a[15]; a[12] = l_14; a[13] = n_54 + 0; a[14] = n_54 + 1; a[15] = n_54 + 2; a[8] = h_14; a[9] = n_54 + 9; a[10] = n_54 + 10; a[11] = n_54 + 3; a[4] = c_18; a[5] = n_54 + 8; a[6] = n_54 + 11; a[7] = n_54 + 4; a[0] = g_30; a[1] = n_54 + 7; a[2] = n_54 + 6; a[3] = n_54 + 5; g_30 = s[2]; c_18 = s[3]; s[2] = c_18; s[3] = o_36; s[0] = g_30; s[1] = o_36 + 1; break; case 2: g_30 = a[15]; c_18 = a[11]; a[12] = a[3]; a[13] = n_54 + 0; a[14] = n_54 + 1; a[15] = n_54 + 2; a[8] = a[7]; a[9] = n_54 + 9; a[10] = n_54 + 10; a[11] = n_54 + 3; a[4] = c_18; a[5] = n_54 + 8; a[6] = n_54 + 11; a[7] = n_54 + 4; a[0] = g_30; a[1] = n_54 + 7; a[2] = n_54 + 6; a[3] = n_54 + 5; g_30 = s[3]; s[2] = s[1]; s[3] = o_36; s[0] = g_30; s[1] = o_36 + 1; break; case 3: a[12] = a[0]; a[13] = n_54 + 0; a[14] = n_54 + 1; a[15] = n_54 + 2; a[8] = a[1]; a[9] = n_54 + 9; a[10] = n_54 + 10; a[11] = n_54 + 3; a[4] = a[2]; a[5] = n_54 + 8; a[6] = n_54 + 11; a[7] = n_54 + 4; a[0] = a[3]; a[1] = n_54 + 7; a[2] = n_54 + 6; a[3] = n_54 + 5; s[2] = s[0]; s[3] = o_36; s[0] = s[1]; s[1] = o_36 + 1; } this.figures.push({ type: "patch", coords: new Int32Array(a), colors: new Int32Array(s) }); } }; MeshShading.prototype._buildFigureFromPatch = function (e) { var t = this.figures[e]; assert("patch" === t.type, "Unexpected patch mesh figure"); var i = this.coords, a = this.colors, s = t.coords, r = t.colors, n = Math.min(i[s[0]][0], i[s[3]][0], i[s[12]][0], i[s[15]][0]), o = Math.min(i[s[0]][1], i[s[3]][1], i[s[12]][1], i[s[15]][1]), g = Math.max(i[s[0]][0], i[s[3]][0], i[s[12]][0], i[s[15]][0]), c = Math.max(i[s[0]][1], i[s[3]][1], i[s[12]][1], i[s[15]][1]); var h = Math.ceil((g - n) * MeshShading.TRIANGLE_DENSITY / (this.bounds[2] - this.bounds[0])); h = Math.max(MeshShading.MIN_SPLIT_PATCH_CHUNKS_AMOUNT, Math.min(MeshShading.MAX_SPLIT_PATCH_CHUNKS_AMOUNT, h)); var l = Math.ceil((c - o) * MeshShading.TRIANGLE_DENSITY / (this.bounds[3] - this.bounds[1])); l = Math.max(MeshShading.MIN_SPLIT_PATCH_CHUNKS_AMOUNT, Math.min(MeshShading.MAX_SPLIT_PATCH_CHUNKS_AMOUNT, l)); var C = h + 1, Q = new Int32Array((l + 1) * C), E = new Int32Array((l + 1) * C); var u = 0; var d = new Uint8Array(3), f = new Uint8Array(3), p = a[r[0]], m = a[r[1]], y = a[r[2]], w = a[r[3]], b = getB(l), D = getB(h); for (var e_248 = 0; e_248 <= l; e_248++) { d[0] = (p[0] * (l - e_248) + y[0] * e_248) / l | 0; d[1] = (p[1] * (l - e_248) + y[1] * e_248) / l | 0; d[2] = (p[2] * (l - e_248) + y[2] * e_248) / l | 0; f[0] = (m[0] * (l - e_248) + w[0] * e_248) / l | 0; f[1] = (m[1] * (l - e_248) + w[1] * e_248) / l | 0; f[2] = (m[2] * (l - e_248) + w[2] * e_248) / l | 0; for (var t_176 = 0; t_176 <= h; t_176++, u++) { if (!(0 !== e_248 && e_248 !== l || 0 !== t_176 && t_176 !== h)) continue; var r_76 = 0, n_55 = 0, o_37 = 0; for (var a_155 = 0; a_155 <= 3; a_155++) for (var g_31 = 0; g_31 <= 3; g_31++, o_37++) { var c_19 = b[e_248][a_155] * D[t_176][g_31]; r_76 += i[s[o_37]][0] * c_19; n_55 += i[s[o_37]][1] * c_19; } Q[u] = i.length; i.push([r_76, n_55]); E[u] = a.length; var g_32 = new Uint8Array(3); g_32[0] = (d[0] * (h - t_176) + f[0] * t_176) / h | 0; g_32[1] = (d[1] * (h - t_176) + f[1] * t_176) / h | 0; g_32[2] = (d[2] * (h - t_176) + f[2] * t_176) / h | 0; a.push(g_32); } } Q[0] = s[0]; E[0] = r[0]; Q[h] = s[3]; E[h] = r[1]; Q[C * l] = s[12]; E[C * l] = r[2]; Q[C * l + h] = s[15]; E[C * l + h] = r[3]; this.figures[e] = { type: "lattice", coords: Q, colors: E, verticesPerRow: C }; }; MeshShading.prototype._updateBounds = function () { var e = this.coords[0][0], t = this.coords[0][1], i = e, a = t; for (var s_105 = 1, r_77 = this.coords.length; s_105 < r_77; s_105++) { var r_78 = this.coords[s_105][0], n_56 = this.coords[s_105][1]; e = e > r_78 ? r_78 : e; t = t > n_56 ? n_56 : t; i = i < r_78 ? r_78 : i; a = a < n_56 ? n_56 : a; } this.bounds = [e, t, i, a]; }; MeshShading.prototype._packData = function () { var e, t, i, a; var s = this.coords, r = new Float32Array(2 * s.length); for (e = 0, i = 0, t = s.length; e < t; e++) { var t_177 = s[e]; r[i++] = t_177[0]; r[i++] = t_177[1]; } this.coords = r; var n = this.colors, o = new Uint8Array(3 * n.length); for (e = 0, i = 0, t = n.length; e < t; e++) { var t_178 = n[e]; o[i++] = t_178[0]; o[i++] = t_178[1]; o[i++] = t_178[2]; } this.colors = o; var g = this.figures; for (e = 0, t = g.length; e < t; e++) { var t_179 = g[e], s_106 = t_179.coords, r_79 = t_179.colors; for (i = 0, a = s_106.length; i < a; i++) { s_106[i] *= 2; r_79[i] *= 3; } } }; MeshShading.prototype.getIR = function () { var e = this.bounds; if (e[2] - e[0] == 0 || e[3] - e[1] == 0) throw new FormatError("Invalid MeshShading bounds: [".concat(e, "].")); return ["Mesh", this.shadingType, this.coords, this.colors, this.figures, e, this.bbox, this.background]; }; MeshShading.MIN_SPLIT_PATCH_CHUNKS_AMOUNT = 3; MeshShading.MAX_SPLIT_PATCH_CHUNKS_AMOUNT = 20; MeshShading.TRIANGLE_DENSITY = 20; return MeshShading; }(BaseShading)); var DummyShading = /** @class */ (function (_super) { tslib_1.__extends(DummyShading, _super); function DummyShading() { return _super !== null && _super.apply(this, arguments) || this; } DummyShading.prototype.getIR = function () { return ["Dummy"]; }; return DummyShading; }(BaseShading)); function getTilingPatternIR(e, t, a) { var s = lookupMatrix(t.getArray("Matrix"), i), r = lookupNormalRect(t.getArray("BBox"), null); if (!r || r[2] - r[0] == 0 || r[3] - r[1] == 0) throw new FormatError("Invalid getTilingPatternIR /BBox array."); var n = t.get("XStep"); if ("number" != typeof n) throw new FormatError("Invalid getTilingPatternIR /XStep value."); var o = t.get("YStep"); if ("number" != typeof o) throw new FormatError("Invalid getTilingPatternIR /YStep value."); var g = t.get("PaintType"); if (!Number.isInteger(g)) throw new FormatError("Invalid getTilingPatternIR /PaintType value."); var c = t.get("TilingType"); if (!Number.isInteger(c)) throw new FormatError("Invalid getTilingPatternIR /TilingType value."); return ["TilingPattern", a, e, s, r, n, o, g, c]; } var wa = [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], ba = { lineHeight: 1.2207, lineGap: .2207 }, Da = [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], Fa = { lineHeight: 1.2207, lineGap: .2207 }, Sa = [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], ka = { lineHeight: 1.2207, lineGap: .2207 }, Ra = [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], Na = { lineHeight: 1.2207, lineGap: .2207 }, Ga = [.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], xa = { lineHeight: 1.2, lineGap: .2 }, Ma = [.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], Ua = { lineHeight: 1.35, lineGap: .2 }, La = [.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], Ja = { lineHeight: 1.35, lineGap: .2 }, Ha = [.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], Ya = { lineHeight: 1.2, lineGap: .2 }, va = [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], Ka = [-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], Ta = [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], qa = [-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], Oa = [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], Pa = [-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], Wa = [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], Xa = [-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], ja = [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], Za = { lineHeight: 1.2, lineGap: .2 }, Va = [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], za = { lineHeight: 1.2, lineGap: .2 }, _a = [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], $a = { lineHeight: 1.2, lineGap: .2 }, As = [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], es = { lineHeight: 1.2, lineGap: .2 }, ts = [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], is = { lineHeight: 1.33008, lineGap: 0 }, as = [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], ss = { lineHeight: 1.33008, lineGap: 0 }, rs = [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], ns = { lineHeight: 1.33008, lineGap: 0 }, os = [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], gs = { lineHeight: 1.33008, lineGap: 0 }, Is = getLookupTableFactory((function (e) { e["MyriadPro-Regular"] = e["PdfJS-Fallback-Regular"] = { name: "LiberationSans-Regular", factors: As, baseWidths: Wa, baseMapping: Xa, metrics: es }; e["MyriadPro-Bold"] = e["PdfJS-Fallback-Bold"] = { name: "LiberationSans-Bold", factors: ja, baseWidths: va, baseMapping: Ka, metrics: Za }; e["MyriadPro-It"] = e["MyriadPro-Italic"] = e["PdfJS-Fallback-Italic"] = { name: "LiberationSans-Italic", factors: _a, baseWidths: Oa, baseMapping: Pa, metrics: $a }; e["MyriadPro-BoldIt"] = e["MyriadPro-BoldItalic"] = e["PdfJS-Fallback-BoldItalic"] = { name: "LiberationSans-BoldItalic", factors: Va, baseWidths: Ta, baseMapping: qa, metrics: za }; e.ArialMT = e.Arial = e["Arial-Regular"] = { name: "LiberationSans-Regular", baseWidths: Wa, baseMapping: Xa }; e["Arial-BoldMT"] = e["Arial-Bold"] = { name: "LiberationSans-Bold", baseWidths: va, baseMapping: Ka }; e["Arial-ItalicMT"] = e["Arial-Italic"] = { name: "LiberationSans-Italic", baseWidths: Oa, baseMapping: Pa }; e["Arial-BoldItalicMT"] = e["Arial-BoldItalic"] = { name: "LiberationSans-BoldItalic", baseWidths: Ta, baseMapping: qa }; e["Calibri-Regular"] = { name: "LiberationSans-Regular", factors: Ra, baseWidths: Wa, baseMapping: Xa, metrics: Na }; e["Calibri-Bold"] = { name: "LiberationSans-Bold", factors: wa, baseWidths: va, baseMapping: Ka, metrics: ba }; e["Calibri-Italic"] = { name: "LiberationSans-Italic", factors: Sa, baseWidths: Oa, baseMapping: Pa, metrics: ka }; e["Calibri-BoldItalic"] = { name: "LiberationSans-BoldItalic", factors: Da, baseWidths: Ta, baseMapping: qa, metrics: Fa }; e["Segoeui-Regular"] = { name: "LiberationSans-Regular", factors: os, baseWidths: Wa, baseMapping: Xa, metrics: gs }; e["Segoeui-Bold"] = { name: "LiberationSans-Bold", factors: ts, baseWidths: va, baseMapping: Ka, metrics: is }; e["Segoeui-Italic"] = { name: "LiberationSans-Italic", factors: rs, baseWidths: Oa, baseMapping: Pa, metrics: ns }; e["Segoeui-BoldItalic"] = { name: "LiberationSans-BoldItalic", factors: as, baseWidths: Ta, baseMapping: qa, metrics: ss }; e["Helvetica-Regular"] = e.Helvetica = { name: "LiberationSans-Regular", factors: Ha, baseWidths: Wa, baseMapping: Xa, metrics: Ya }; e["Helvetica-Bold"] = { name: "LiberationSans-Bold", factors: Ga, baseWidths: va, baseMapping: Ka, metrics: xa }; e["Helvetica-Italic"] = { name: "LiberationSans-Italic", factors: La, baseWidths: Oa, baseMapping: Pa, metrics: Ja }; e["Helvetica-BoldItalic"] = { name: "LiberationSans-BoldItalic", factors: Ma, baseWidths: Ta, baseMapping: qa, metrics: Ua }; })); function getXfaFontName(e) { var t = normalizeFontName(e); return Is()[t]; } function getXfaFontDict(e) { var t = function getXfaFontWidths(e) { var t = getXfaFontName(e); if (!t) return null; var i = t.baseWidths, a = t.baseMapping, s = t.factors, r = s ? i.map((function (e, t) { return e * s[t]; })) : i; var n, o = -2; var g = []; for (var _b = 0, _h = a.map((function (e, t) { return [e, t]; })).sort((function (_b, _h) { var e = _b[0]; var t = _h[0]; return e - t; })); _b < _h.length; _b++) { var _j = _h[_b], e_249 = _j[0], t_180 = _j[1]; if (-1 !== e_249) if (e_249 === o + 1) { n.push(r[t_180]); o += 1; } else { o = e_249; n = [r[t_180]]; g.push(e_249, n); } } return g; }(e), i = new Dict(null); i.set("BaseFont", Name.get(e)); i.set("Type", Name.get("Font")); i.set("Subtype", Name.get("CIDFontType2")); i.set("Encoding", Name.get("Identity-H")); i.set("CIDToGIDMap", Name.get("Identity")); i.set("W", t); i.set("FirstChar", t[0]); i.set("LastChar", t.at(-2) + t.at(-1).length - 1); var a = new Dict(null); i.set("FontDescriptor", a); var s = new Dict(null); s.set("Ordering", "Identity"); s.set("Registry", "Adobe"); s.set("Supplement", 0); i.set("CIDSystemInfo", s); return i; } var PostScriptParser = /** @class */ (function () { function PostScriptParser(e) { this.lexer = e; this.operators = []; this.token = null; this.prev = null; } PostScriptParser.prototype.nextToken = function () { this.prev = this.token; this.token = this.lexer.getToken(); }; PostScriptParser.prototype.accept = function (e) { if (this.token.type === e) { this.nextToken(); return !0; } return !1; }; PostScriptParser.prototype.expect = function (e) { if (this.accept(e)) return !0; throw new FormatError("Unexpected symbol: found ".concat(this.token.type, " expected ").concat(e, ".")); }; PostScriptParser.prototype.parse = function () { this.nextToken(); this.expect(cs.LBRACE); this.parseBlock(); this.expect(cs.RBRACE); return this.operators; }; PostScriptParser.prototype.parseBlock = function () { for (;;) if (this.accept(cs.NUMBER)) this.operators.push(this.prev.value); else if (this.accept(cs.OPERATOR)) this.operators.push(this.prev.value); else { if (!this.accept(cs.LBRACE)) return; this.parseCondition(); } }; PostScriptParser.prototype.parseCondition = function () { var e = this.operators.length; this.operators.push(null, null); this.parseBlock(); this.expect(cs.RBRACE); if (this.accept(cs.IF)) { this.operators[e] = this.operators.length; this.operators[e + 1] = "jz"; } else { if (!this.accept(cs.LBRACE)) throw new FormatError("PS Function: error parsing conditional."); { var t_181 = this.operators.length; this.operators.push(null, null); var i_177 = this.operators.length; this.parseBlock(); this.expect(cs.RBRACE); this.expect(cs.IFELSE); this.operators[t_181] = this.operators.length; this.operators[t_181 + 1] = "j"; this.operators[e] = i_177; this.operators[e + 1] = "jz"; } } }; return PostScriptParser; }()); var cs = { LBRACE: 0, RBRACE: 1, NUMBER: 2, OPERATOR: 3, IF: 4, IFELSE: 5 }; var PostScriptToken = /** @class */ (function () { function PostScriptToken(e, t) { this.type = e; this.value = t; } Object.defineProperty(PostScriptToken, "opCache", { get: function () { return shadow(this, "opCache", Object.create(null)); }, enumerable: false, configurable: true }); PostScriptToken.getOperator = function (e) { var _b; return (_b = PostScriptToken.opCache)[e] || (_b[e] = new PostScriptToken(cs.OPERATOR, e)); }; Object.defineProperty(PostScriptToken, "LBRACE", { get: function () { return shadow(this, "LBRACE", new PostScriptToken(cs.LBRACE, "{")); }, enumerable: false, configurable: true }); Object.defineProperty(PostScriptToken, "RBRACE", { get: function () { return shadow(this, "RBRACE", new PostScriptToken(cs.RBRACE, "}")); }, enumerable: false, configurable: true }); Object.defineProperty(PostScriptToken, "IF", { get: function () { return shadow(this, "IF", new PostScriptToken(cs.IF, "IF")); }, enumerable: false, configurable: true }); Object.defineProperty(PostScriptToken, "IFELSE", { get: function () { return shadow(this, "IFELSE", new PostScriptToken(cs.IFELSE, "IFELSE")); }, enumerable: false, configurable: true }); return PostScriptToken; }()); var PostScriptLexer = /** @class */ (function () { function PostScriptLexer(e) { this.stream = e; this.nextChar(); this.strBuf = []; } PostScriptLexer.prototype.nextChar = function () { return this.currentChar = this.stream.getByte(); }; PostScriptLexer.prototype.getToken = function () { var e = !1, t = this.currentChar; for (;;) { if (t < 0) return pt; if (e) 10 !== t && 13 !== t || (e = !1); else if (37 === t) e = !0; else if (!isWhiteSpace(t)) break; t = this.nextChar(); } switch (0 | t) { 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 PostScriptToken(cs.NUMBER, this.getNumber()); case 123: this.nextChar(); return PostScriptToken.LBRACE; case 125: this.nextChar(); return PostScriptToken.RBRACE; } var i = this.strBuf; i.length = 0; i[0] = String.fromCharCode(t); for (; (t = this.nextChar()) >= 0 && (t >= 65 && t <= 90 || t >= 97 && t <= 122);) i.push(String.fromCharCode(t)); var a = i.join(""); switch (a.toLowerCase()) { case "if": return PostScriptToken.IF; case "ifelse": return PostScriptToken.IFELSE; default: return PostScriptToken.getOperator(a); } }; PostScriptLexer.prototype.getNumber = function () { var e = this.currentChar; var t = this.strBuf; t.length = 0; t[0] = String.fromCharCode(e); for (; (e = this.nextChar()) >= 0 && (e >= 48 && e <= 57 || 45 === e || 46 === e);) t.push(String.fromCharCode(e)); var i = parseFloat(t.join("")); if (isNaN(i)) throw new FormatError("Invalid floating point number: ".concat(i)); return i; }; return PostScriptLexer; }()); var BaseLocalCache = /** @class */ (function () { function BaseLocalCache(e) { this.constructor === BaseLocalCache && unreachable("Cannot initialize BaseLocalCache."); this._onlyRefs = !0 === (e === null || e === void 0 ? void 0 : e.onlyRefs); if (!this._onlyRefs) { this._nameRefMap = new Map; this._imageMap = new Map; } this._imageCache = new RefSetCache; } BaseLocalCache.prototype.getByName = function (e) { this._onlyRefs && unreachable("Should not call `getByName` method."); var t = this._nameRefMap.get(e); return t ? this.getByRef(t) : this._imageMap.get(e) || null; }; BaseLocalCache.prototype.getByRef = function (e) { return this._imageCache.get(e) || null; }; BaseLocalCache.prototype.set = function (e, t, i) { unreachable("Abstract method `set` called."); }; return BaseLocalCache; }()); var LocalImageCache = /** @class */ (function (_super) { tslib_1.__extends(LocalImageCache, _super); function LocalImageCache() { return _super !== null && _super.apply(this, arguments) || this; } LocalImageCache.prototype.set = function (e, t, i) { if (t === void 0) { t = null; } if ("string" != typeof e) throw new Error('LocalImageCache.set - expected "name" argument.'); if (t) { if (this._imageCache.has(t)) return; this._nameRefMap.set(e, t); this._imageCache.put(t, i); } else this._imageMap.has(e) || this._imageMap.set(e, i); }; return LocalImageCache; }(BaseLocalCache)); var LocalColorSpaceCache = /** @class */ (function (_super) { tslib_1.__extends(LocalColorSpaceCache, _super); function LocalColorSpaceCache() { return _super !== null && _super.apply(this, arguments) || this; } LocalColorSpaceCache.prototype.set = function (e, t, i) { if (e === void 0) { e = null; } if (t === void 0) { t = null; } if ("string" != typeof e && !t) throw new Error('LocalColorSpaceCache.set - expected "name" and/or "ref" argument.'); if (t) { if (this._imageCache.has(t)) return; null !== e && this._nameRefMap.set(e, t); this._imageCache.put(t, i); } else this._imageMap.has(e) || this._imageMap.set(e, i); }; return LocalColorSpaceCache; }(BaseLocalCache)); var LocalFunctionCache = /** @class */ (function (_super) { tslib_1.__extends(LocalFunctionCache, _super); function LocalFunctionCache(e) { return _super.call(this, { onlyRefs: !0 }) || this; } LocalFunctionCache.prototype.set = function (e, t, i) { if (e === void 0) { e = null; } if (!t) throw new Error('LocalFunctionCache.set - expected "ref" argument.'); this._imageCache.has(t) || this._imageCache.put(t, i); }; return LocalFunctionCache; }(BaseLocalCache)); var LocalGStateCache = /** @class */ (function (_super) { tslib_1.__extends(LocalGStateCache, _super); function LocalGStateCache() { return _super !== null && _super.apply(this, arguments) || this; } LocalGStateCache.prototype.set = function (e, t, i) { if (t === void 0) { t = null; } if ("string" != typeof e) throw new Error('LocalGStateCache.set - expected "name" argument.'); if (t) { if (this._imageCache.has(t)) return; this._nameRefMap.set(e, t); this._imageCache.put(t, i); } else this._imageMap.has(e) || this._imageMap.set(e, i); }; return LocalGStateCache; }(BaseLocalCache)); var LocalTilingPatternCache = /** @class */ (function (_super) { tslib_1.__extends(LocalTilingPatternCache, _super); function LocalTilingPatternCache(e) { return _super.call(this, { onlyRefs: !0 }) || this; } LocalTilingPatternCache.prototype.set = function (e, t, i) { if (e === void 0) { e = null; } if (!t) throw new Error('LocalTilingPatternCache.set - expected "ref" argument.'); this._imageCache.has(t) || this._imageCache.put(t, i); }; return LocalTilingPatternCache; }(BaseLocalCache)); var RegionalImageCache = /** @class */ (function (_super) { tslib_1.__extends(RegionalImageCache, _super); function RegionalImageCache(e) { return _super.call(this, { onlyRefs: !0 }) || this; } RegionalImageCache.prototype.set = function (e, t, i) { if (e === void 0) { e = null; } if (!t) throw new Error('RegionalImageCache.set - expected "ref" argument.'); this._imageCache.has(t) || this._imageCache.put(t, i); }; return RegionalImageCache; }(BaseLocalCache)); var GlobalImageCache = /** @class */ (function () { function GlobalImageCache() { _GlobalImageCache_instances.add(this); _GlobalImageCache_b.set(this, new RefSet); this._refCache = new RefSetCache; this._imageCache = new RefSetCache; } GlobalImageCache.prototype.shouldCache = function (e, t) { var i = this._refCache.get(e); if (!i) { i = new Set; this._refCache.put(e, i); } i.add(t); return !(i.size < GlobalImageCache.NUM_PAGES_THRESHOLD) && !(!this._imageCache.has(e) && tslib_1.__classPrivateFieldGet(this, _GlobalImageCache_instances, "a", _GlobalImageCache_F_get)); }; GlobalImageCache.prototype.addDecodeFailed = function (e) { tslib_1.__classPrivateFieldGet(this, _GlobalImageCache_b, "f").put(e); }; GlobalImageCache.prototype.hasDecodeFailed = function (e) { return tslib_1.__classPrivateFieldGet(this, _GlobalImageCache_b, "f").has(e); }; GlobalImageCache.prototype.addByteSize = function (e, t) { var i = this._imageCache.get(e); i && (i.byteSize || (i.byteSize = t)); }; GlobalImageCache.prototype.getData = function (e, t) { var i = this._refCache.get(e); if (!i) return null; if (i.size < GlobalImageCache.NUM_PAGES_THRESHOLD) return null; var a = this._imageCache.get(e); if (!a) return null; i.add(t); return a; }; GlobalImageCache.prototype.setData = function (e, t) { if (!this._refCache.has(e)) throw new Error('GlobalImageCache.setData - expected "shouldCache" to have been called.'); this._imageCache.has(e) || (tslib_1.__classPrivateFieldGet(this, _GlobalImageCache_instances, "a", _GlobalImageCache_F_get) ? warn("GlobalImageCache.setData - cache limit reached.") : this._imageCache.put(e, t)); }; GlobalImageCache.prototype.clear = function (e) { if (e === void 0) { e = !1; } if (!e) { tslib_1.__classPrivateFieldGet(this, _GlobalImageCache_b, "f").clear(); this._refCache.clear(); } this._imageCache.clear(); }; var _GlobalImageCache_instances, _GlobalImageCache_b, _GlobalImageCache_D_get, _GlobalImageCache_F_get; _GlobalImageCache_b = new WeakMap(), _GlobalImageCache_instances = new WeakSet(), _GlobalImageCache_D_get = function _GlobalImageCache_D_get() { var e = 0; for (var _b = 0, _h = this._imageCache; _b < _h.length; _b++) { var t_182 = _h[_b]; e += t_182.byteSize; } return e; }, _GlobalImageCache_F_get = function _GlobalImageCache_F_get() { return !(this._imageCache.size < GlobalImageCache.MIN_IMAGES_TO_CACHE) && !(tslib_1.__classPrivateFieldGet(this, _GlobalImageCache_instances, "a", _GlobalImageCache_D_get) < GlobalImageCache.MAX_BYTE_SIZE); }; GlobalImageCache.NUM_PAGES_THRESHOLD = 2; GlobalImageCache.MIN_IMAGES_TO_CACHE = 10; GlobalImageCache.MAX_BYTE_SIZE = 5e7; return GlobalImageCache; }()); var PDFFunctionFactory = /** @class */ (function () { function PDFFunctionFactory(_b) { var e = _b.xref, _h = _b.isEvalSupported, t = _h === void 0 ? !0 : _h; this.xref = e; this.isEvalSupported = !1 !== t; } PDFFunctionFactory.prototype.create = function (e) { var t = this.getCached(e); if (t) return t; var i = PDFFunction.parse({ xref: this.xref, isEvalSupported: this.isEvalSupported, fn: e instanceof Ref ? this.xref.fetch(e) : e }); this._cache(e, i); return i; }; PDFFunctionFactory.prototype.createFromArray = function (e) { var t = this.getCached(e); if (t) return t; var i = PDFFunction.parseArray({ xref: this.xref, isEvalSupported: this.isEvalSupported, fnObj: e instanceof Ref ? this.xref.fetch(e) : e }); this._cache(e, i); return i; }; PDFFunctionFactory.prototype.getCached = function (e) { var _b; var t; e instanceof Ref ? t = e : e instanceof Dict ? t = e.objId : e instanceof BaseStream && (t = (_b = e.dict) === null || _b === void 0 ? void 0 : _b.objId); if (t) { var e_250 = this._localFunctionCache.getByRef(t); if (e_250) return e_250; } return null; }; PDFFunctionFactory.prototype._cache = function (e, t) { var _b; if (!t) throw new Error('PDFFunctionFactory._cache - expected "parsedFunction" argument.'); var i; e instanceof Ref ? i = e : e instanceof Dict ? i = e.objId : e instanceof BaseStream && (i = (_b = e.dict) === null || _b === void 0 ? void 0 : _b.objId); i && this._localFunctionCache.set(null, i, t); }; Object.defineProperty(PDFFunctionFactory.prototype, "_localFunctionCache", { get: function () { return shadow(this, "_localFunctionCache", new LocalFunctionCache); }, enumerable: false, configurable: true }); return PDFFunctionFactory; }()); function toNumberArray(e) { return Array.isArray(e) ? isNumberArray(e, null) ? e : e.map((function (e) { return +e; })) : null; } var PDFFunction = /** @class */ (function () { function PDFFunction() { } PDFFunction.getSampleArray = function (e, t, i, a) { var s, r, n = 1; for (s = 0, r = e.length; s < r; s++) n *= e[s]; n *= t; var o = new Array(n); var g = 0, c = 0; var h = 1 / (Math.pow(2, i) - 1), l = a.getBytes((n * i + 7) / 8); var C = 0; for (s = 0; s < n; s++) { for (; g < i;) { c <<= 8; c |= l[C++]; g += 8; } g -= i; o[s] = (c >> g) * h; c &= (1 << g) - 1; } return o; }; PDFFunction.parse = function (_b) { var e = _b.xref, t = _b.isEvalSupported, i = _b.fn; var a = i.dict || i; switch (a.get("FunctionType")) { case 0: return this.constructSampled({ xref: e, isEvalSupported: t, fn: i, dict: a }); case 1: break; case 2: return this.constructInterpolated({ xref: e, isEvalSupported: t, dict: a }); case 3: return this.constructStiched({ xref: e, isEvalSupported: t, dict: a }); case 4: return this.constructPostScript({ xref: e, isEvalSupported: t, fn: i, dict: a }); } throw new FormatError("Unknown type of function"); }; PDFFunction.parseArray = function (_b) { var e = _b.xref, t = _b.isEvalSupported, i = _b.fnObj; if (!Array.isArray(i)) return this.parse({ xref: e, isEvalSupported: t, fn: i }); var a = []; for (var _h = 0, i_178 = i; _h < i_178.length; _h++) { var s_107 = i_178[_h]; a.push(this.parse({ xref: e, isEvalSupported: t, fn: e.fetchIfRef(s_107) })); } return function (e, t, i, s) { for (var r_80 = 0, n_57 = a.length; r_80 < n_57; r_80++) a[r_80](e, t, i, s + r_80); }; }; PDFFunction.constructSampled = function (_b) { var e = _b.xref, t = _b.isEvalSupported, i = _b.fn, a = _b.dict; function toMultiArray(e) { var t = e.length, i = []; var a = 0; for (var s_108 = 0; s_108 < t; s_108 += 2) i[a++] = [e[s_108], e[s_108 + 1]]; return i; } function interpolate(e, t, i, a, s) { return a + (s - a) / (i - t) * (e - t); } var s = toNumberArray(a.getArray("Domain")), r = toNumberArray(a.getArray("Range")); if (!s || !r) throw new FormatError("No domain or range"); var n = s.length / 2, o = r.length / 2; s = toMultiArray(s); r = toMultiArray(r); var g = toNumberArray(a.getArray("Size")), c = a.get("BitsPerSample"), h = a.get("Order") || 1; 1 !== h && info("No support for cubic spline interpolation: " + h); var l = toNumberArray(a.getArray("Encode")); if (l) l = toMultiArray(l); else { l = []; for (var e_251 = 0; e_251 < n; ++e_251) l.push([0, g[e_251] - 1]); } var C = toNumberArray(a.getArray("Decode")); C = C ? toMultiArray(C) : r; var Q = this.getSampleArray(g, o, c, i); return function constructSampledFn(e, t, i, a) { var c = 1 << n, h = new Float64Array(c), E = new Uint32Array(c); var u, d; for (d = 0; d < c; d++) h[d] = 1; var f = o, p = 1; for (u = 0; u < n; ++u) { var i_179 = s[u][0], a_156 = s[u][1]; var r_81 = interpolate(Math.min(Math.max(e[t + u], i_179), a_156), i_179, a_156, l[u][0], l[u][1]); var n_58 = g[u]; r_81 = Math.min(Math.max(r_81, 0), n_58 - 1); var o_38 = r_81 < n_58 - 1 ? Math.floor(r_81) : r_81 - 1, C_12 = o_38 + 1 - r_81, Q_14 = r_81 - o_38, m_5 = o_38 * f, y_2 = m_5 + f; for (d = 0; d < c; d++) if (d & p) { h[d] *= Q_14; E[d] += y_2; } else { h[d] *= C_12; E[d] += m_5; } f *= n_58; p <<= 1; } for (d = 0; d < o; ++d) { var e_252 = 0; for (u = 0; u < c; u++) e_252 += Q[E[u] + d] * h[u]; e_252 = interpolate(e_252, 0, 1, C[d][0], C[d][1]); i[a + d] = Math.min(Math.max(e_252, r[d][0]), r[d][1]); } }; }; PDFFunction.constructInterpolated = function (_b) { var e = _b.xref, t = _b.isEvalSupported, i = _b.dict; var a = toNumberArray(i.getArray("C0")) || [0], s = toNumberArray(i.getArray("C1")) || [1], r = i.get("N"), n = []; for (var e_253 = 0, t_183 = a.length; e_253 < t_183; ++e_253) n.push(s[e_253] - a[e_253]); var o = n.length; return function constructInterpolatedFn(e, t, i, s) { var g = 1 === r ? e[t] : Math.pow(e[t], r); for (var e_254 = 0; e_254 < o; ++e_254) i[s + e_254] = a[e_254] + g * n[e_254]; }; }; PDFFunction.constructStiched = function (_b) { var e = _b.xref, t = _b.isEvalSupported, i = _b.dict; var a = toNumberArray(i.getArray("Domain")); if (!a) throw new FormatError("No domain"); if (1 !== a.length / 2) throw new FormatError("Bad domain for stiched function"); var s = []; for (var _h = 0, _j = i.get("Functions"); _h < _j.length; _h++) { var a_157 = _j[_h]; s.push(this.parse({ xref: e, isEvalSupported: t, fn: e.fetchIfRef(a_157) })); } var r = toNumberArray(i.getArray("Bounds")), n = toNumberArray(i.getArray("Encode")), o = new Float32Array(1); return function constructStichedFn(e, t, i, g) { var c = function constructStichedFromIRClip(e, t, i) { e > i ? e = i : e < t && (e = t); return e; }(e[t], a[0], a[1]), h = r.length; var l; for (l = 0; l < h && !(c < r[l]); ++l) ; var C = a[0]; l > 0 && (C = r[l - 1]); var Q = a[1]; l < r.length && (Q = r[l]); var E = n[2 * l], u = n[2 * l + 1]; o[0] = C === Q ? E : E + (c - C) * (u - E) / (Q - C); s[l](o, 0, i, g); }; }; PDFFunction.constructPostScript = function (_b) { var e = _b.xref, t = _b.isEvalSupported, i = _b.fn, a = _b.dict; var s = toNumberArray(a.getArray("Domain")), r = toNumberArray(a.getArray("Range")); if (!s) throw new FormatError("No domain."); if (!r) throw new FormatError("No range."); var n = new PostScriptLexer(i), o = new PostScriptParser(n).parse(); if (t && FeatureTest.isEvalSupported) { var e_255 = (new PostScriptCompiler).compile(o, s, r); if (e_255) return new Function("src", "srcOffset", "dest", "destOffset", e_255); } info("Unable to compile PS function"); var g = r.length >> 1, c = s.length >> 1, h = new PostScriptEvaluator(o), l = Object.create(null); var C = 8192; var Q = new Float32Array(c); return function constructPostScriptFn(e, t, i, a) { var s, n, o = ""; var E = Q; for (s = 0; s < c; s++) { n = e[t + s]; E[s] = n; o += n + "_"; } var u = l[o]; if (void 0 !== u) { i.set(u, a); return; } var d = new Float32Array(g), f = h.execute(E), p = f.length - g; for (s = 0; s < g; s++) { n = f[p + s]; var e_256 = r[2 * s]; if (n < e_256) n = e_256; else { e_256 = r[2 * s + 1]; n > e_256 && (n = e_256); } d[s] = n; } if (C > 0) { C--; l[o] = d; } i.set(d, a); }; }; return PDFFunction; }()); function isPDFFunction(e) { var t; if (e instanceof Dict) t = e; else { if (!(e instanceof BaseStream)) return !1; t = e.dict; } return t.has("FunctionType"); } var PostScriptStack = /** @class */ (function () { function PostScriptStack(e) { this.stack = e ? Array.from(e) : []; } PostScriptStack.prototype.push = function (e) { if (this.stack.length >= PostScriptStack.MAX_STACK_SIZE) throw new Error("PostScript function stack overflow."); this.stack.push(e); }; PostScriptStack.prototype.pop = function () { if (this.stack.length <= 0) throw new Error("PostScript function stack underflow."); return this.stack.pop(); }; PostScriptStack.prototype.copy = function (e) { if (this.stack.length + e >= PostScriptStack.MAX_STACK_SIZE) throw new Error("PostScript function stack overflow."); var t = this.stack; for (var i_180 = t.length - e, a_158 = e - 1; a_158 >= 0; a_158--, i_180++) t.push(t[i_180]); }; PostScriptStack.prototype.index = function (e) { this.push(this.stack[this.stack.length - e - 1]); }; PostScriptStack.prototype.roll = function (e, t) { var i = this.stack, a = i.length - e, s = i.length - 1, r = a + (t - Math.floor(t / e) * e); for (var e_257 = a, t_184 = s; e_257 < t_184; e_257++, t_184--) { var a_159 = i[e_257]; i[e_257] = i[t_184]; i[t_184] = a_159; } for (var e_258 = a, t_185 = r - 1; e_258 < t_185; e_258++, t_185--) { var a_160 = i[e_258]; i[e_258] = i[t_185]; i[t_185] = a_160; } for (var e_259 = r, t_186 = s; e_259 < t_186; e_259++, t_186--) { var a_161 = i[e_259]; i[e_259] = i[t_186]; i[t_186] = a_161; } }; PostScriptStack.MAX_STACK_SIZE = 100; return PostScriptStack; }()); var PostScriptEvaluator = /** @class */ (function () { function PostScriptEvaluator(e) { this.operators = e; } PostScriptEvaluator.prototype.execute = function (e) { var t = new PostScriptStack(e); var i = 0; var a = this.operators, s = a.length; var r, n, o; for (; i < s;) { r = a[i++]; if ("number" != typeof r) switch (r) { case "jz": o = t.pop(); n = t.pop(); n || (i = o); break; case "j": n = t.pop(); i = n; break; case "abs": n = t.pop(); t.push(Math.abs(n)); break; case "add": o = t.pop(); n = t.pop(); t.push(n + o); break; case "and": o = t.pop(); n = t.pop(); "boolean" == typeof n && "boolean" == typeof o ? t.push(n && o) : t.push(n & o); break; case "atan": o = t.pop(); n = t.pop(); n = Math.atan2(n, o) / Math.PI * 180; n < 0 && (n += 360); t.push(n); break; case "bitshift": o = t.pop(); n = t.pop(); n > 0 ? t.push(n << o) : t.push(n >> o); break; case "ceiling": n = t.pop(); t.push(Math.ceil(n)); break; case "copy": n = t.pop(); t.copy(n); break; case "cos": n = t.pop(); t.push(Math.cos(n % 360 / 180 * Math.PI)); break; case "cvi": n = 0 | t.pop(); t.push(n); break; case "cvr": break; case "div": o = t.pop(); n = t.pop(); t.push(n / o); break; case "dup": t.copy(1); break; case "eq": o = t.pop(); n = t.pop(); t.push(n === o); break; case "exch": t.roll(2, 1); break; case "exp": o = t.pop(); n = t.pop(); t.push(Math.pow(n, o)); break; case "false": t.push(!1); break; case "floor": n = t.pop(); t.push(Math.floor(n)); break; case "ge": o = t.pop(); n = t.pop(); t.push(n >= o); break; case "gt": o = t.pop(); n = t.pop(); t.push(n > o); break; case "idiv": o = t.pop(); n = t.pop(); t.push(n / o | 0); break; case "index": n = t.pop(); t.index(n); break; case "le": o = t.pop(); n = t.pop(); t.push(n <= o); break; case "ln": n = t.pop(); t.push(Math.log(n)); break; case "log": n = t.pop(); t.push(Math.log10(n)); break; case "lt": o = t.pop(); n = t.pop(); t.push(n < o); break; case "mod": o = t.pop(); n = t.pop(); t.push(n % o); break; case "mul": o = t.pop(); n = t.pop(); t.push(n * o); break; case "ne": o = t.pop(); n = t.pop(); t.push(n !== o); break; case "neg": n = t.pop(); t.push(-n); break; case "not": n = t.pop(); "boolean" == typeof n ? t.push(!n) : t.push(~n); break; case "or": o = t.pop(); n = t.pop(); "boolean" == typeof n && "boolean" == typeof o ? t.push(n || o) : t.push(n | o); break; case "pop": t.pop(); break; case "roll": o = t.pop(); n = t.pop(); t.roll(n, o); break; case "round": n = t.pop(); t.push(Math.round(n)); break; case "sin": n = t.pop(); t.push(Math.sin(n % 360 / 180 * Math.PI)); break; case "sqrt": n = t.pop(); t.push(Math.sqrt(n)); break; case "sub": o = t.pop(); n = t.pop(); t.push(n - o); break; case "true": t.push(!0); break; case "truncate": n = t.pop(); n = n < 0 ? Math.ceil(n) : Math.floor(n); t.push(n); break; case "xor": o = t.pop(); n = t.pop(); "boolean" == typeof n && "boolean" == typeof o ? t.push(n !== o) : t.push(n ^ o); break; default: throw new FormatError("Unknown operator ".concat(r)); } else t.push(r); } return t.stack; }; return PostScriptEvaluator; }()); var AstNode = /** @class */ (function () { function AstNode(e) { this.type = e; } AstNode.prototype.visit = function (e) { unreachable("abstract method"); }; return AstNode; }()); var AstArgument = /** @class */ (function (_super) { tslib_1.__extends(AstArgument, _super); function AstArgument(e, t, i) { var _this = _super.call(this, "args") || this; _this.index = e; _this.min = t; _this.max = i; return _this; } AstArgument.prototype.visit = function (e) { e.visitArgument(this); }; return AstArgument; }(AstNode)); var AstLiteral = /** @class */ (function (_super) { tslib_1.__extends(AstLiteral, _super); function AstLiteral(e) { var _this = _super.call(this, "literal") || this; _this.number = e; _this.min = e; _this.max = e; return _this; } AstLiteral.prototype.visit = function (e) { e.visitLiteral(this); }; return AstLiteral; }(AstNode)); var AstBinaryOperation = /** @class */ (function (_super) { tslib_1.__extends(AstBinaryOperation, _super); function AstBinaryOperation(e, t, i, a, s) { var _this = _super.call(this, "binary") || this; _this.op = e; _this.arg1 = t; _this.arg2 = i; _this.min = a; _this.max = s; return _this; } AstBinaryOperation.prototype.visit = function (e) { e.visitBinaryOperation(this); }; return AstBinaryOperation; }(AstNode)); var AstMin = /** @class */ (function (_super) { tslib_1.__extends(AstMin, _super); function AstMin(e, t) { var _this = _super.call(this, "max") || this; _this.arg = e; _this.min = e.min; _this.max = t; return _this; } AstMin.prototype.visit = function (e) { e.visitMin(this); }; return AstMin; }(AstNode)); var AstVariable = /** @class */ (function (_super) { tslib_1.__extends(AstVariable, _super); function AstVariable(e, t, i) { var _this = _super.call(this, "var") || this; _this.index = e; _this.min = t; _this.max = i; return _this; } AstVariable.prototype.visit = function (e) { e.visitVariable(this); }; return AstVariable; }(AstNode)); var AstVariableDefinition = /** @class */ (function (_super) { tslib_1.__extends(AstVariableDefinition, _super); function AstVariableDefinition(e, t) { var _this = _super.call(this, "definition") || this; _this.variable = e; _this.arg = t; return _this; } AstVariableDefinition.prototype.visit = function (e) { e.visitVariableDefinition(this); }; return AstVariableDefinition; }(AstNode)); var ExpressionBuilderVisitor = /** @class */ (function () { function ExpressionBuilderVisitor() { this.parts = []; } ExpressionBuilderVisitor.prototype.visitArgument = function (e) { this.parts.push("Math.max(", e.min, ", Math.min(", e.max, ", src[srcOffset + ", e.index, "]))"); }; ExpressionBuilderVisitor.prototype.visitVariable = function (e) { this.parts.push("v", e.index); }; ExpressionBuilderVisitor.prototype.visitLiteral = function (e) { this.parts.push(e.number); }; ExpressionBuilderVisitor.prototype.visitBinaryOperation = function (e) { this.parts.push("("); e.arg1.visit(this); this.parts.push(" ", e.op, " "); e.arg2.visit(this); this.parts.push(")"); }; ExpressionBuilderVisitor.prototype.visitVariableDefinition = function (e) { this.parts.push("var "); e.variable.visit(this); this.parts.push(" = "); e.arg.visit(this); this.parts.push(";"); }; ExpressionBuilderVisitor.prototype.visitMin = function (e) { this.parts.push("Math.min("); e.arg.visit(this); this.parts.push(", ", e.max, ")"); }; ExpressionBuilderVisitor.prototype.toString = function () { return this.parts.join(""); }; return ExpressionBuilderVisitor; }()); function buildAddOperation(e, t) { return "literal" === t.type && 0 === t.number ? e : "literal" === e.type && 0 === e.number ? t : "literal" === t.type && "literal" === e.type ? new AstLiteral(e.number + t.number) : new AstBinaryOperation("+", e, t, e.min + t.min, e.max + t.max); } function buildMulOperation(e, t) { if ("literal" === t.type) { if (0 === t.number) return new AstLiteral(0); if (1 === t.number) return e; if ("literal" === e.type) return new AstLiteral(e.number * t.number); } if ("literal" === e.type) { if (0 === e.number) return new AstLiteral(0); if (1 === e.number) return t; } var i = Math.min(e.min * t.min, e.min * t.max, e.max * t.min, e.max * t.max), a = Math.max(e.min * t.min, e.min * t.max, e.max * t.min, e.max * t.max); return new AstBinaryOperation("*", e, t, i, a); } function buildSubOperation(e, t) { if ("literal" === t.type) { if (0 === t.number) return e; if ("literal" === e.type) return new AstLiteral(e.number - t.number); } return "binary" === t.type && "-" === t.op && "literal" === e.type && 1 === e.number && "literal" === t.arg1.type && 1 === t.arg1.number ? t.arg2 : new AstBinaryOperation("-", e, t, e.min - t.max, e.max - t.min); } function buildMinOperation(e, t) { return e.min >= t ? new AstLiteral(t) : e.max <= t ? e : new AstMin(e, t); } var PostScriptCompiler = /** @class */ (function () { function PostScriptCompiler() { } PostScriptCompiler.prototype.compile = function (e, t, i) { var a = [], s = [], r = t.length >> 1, n = i.length >> 1; var o, g, c, h, l, C, Q, E, u = 0; for (var e_260 = 0; e_260 < r; e_260++) a.push(new AstArgument(e_260, t[2 * e_260], t[2 * e_260 + 1])); for (var t_187 = 0, i_181 = e.length; t_187 < i_181; t_187++) { E = e[t_187]; if ("number" != typeof E) switch (E) { case "add": if (a.length < 2) return null; h = a.pop(); c = a.pop(); a.push(buildAddOperation(c, h)); break; case "cvr": if (a.length < 1) return null; break; case "mul": if (a.length < 2) return null; h = a.pop(); c = a.pop(); a.push(buildMulOperation(c, h)); break; case "sub": if (a.length < 2) return null; h = a.pop(); c = a.pop(); a.push(buildSubOperation(c, h)); break; case "exch": if (a.length < 2) return null; l = a.pop(); C = a.pop(); a.push(l, C); break; case "pop": if (a.length < 1) return null; a.pop(); break; case "index": if (a.length < 1) return null; c = a.pop(); if ("literal" !== c.type) return null; o = c.number; if (o < 0 || !Number.isInteger(o) || a.length < o) return null; l = a[a.length - o - 1]; if ("literal" === l.type || "var" === l.type) { a.push(l); break; } Q = new AstVariable(u++, l.min, l.max); a[a.length - o - 1] = Q; a.push(Q); s.push(new AstVariableDefinition(Q, l)); break; case "dup": if (a.length < 1) return null; if ("number" == typeof e[t_187 + 1] && "gt" === e[t_187 + 2] && e[t_187 + 3] === t_187 + 7 && "jz" === e[t_187 + 4] && "pop" === e[t_187 + 5] && e[t_187 + 6] === e[t_187 + 1]) { c = a.pop(); a.push(buildMinOperation(c, e[t_187 + 1])); t_187 += 6; break; } l = a.at(-1); if ("literal" === l.type || "var" === l.type) { a.push(l); break; } Q = new AstVariable(u++, l.min, l.max); a[a.length - 1] = Q; a.push(Q); s.push(new AstVariableDefinition(Q, l)); break; case "roll": if (a.length < 2) return null; h = a.pop(); c = a.pop(); if ("literal" !== h.type || "literal" !== c.type) return null; g = h.number; o = c.number; if (o <= 0 || !Number.isInteger(o) || !Number.isInteger(g) || a.length < o) return null; g = (g % o + o) % o; if (0 === g) break; a.push.apply(a, a.splice(a.length - o, o - g)); break; default: return null; } else a.push(new AstLiteral(E)); } if (a.length !== n) return null; var d = []; for (var _b = 0, s_109 = s; _b < s_109.length; _b++) { var e_261 = s_109[_b]; var t_188 = new ExpressionBuilderVisitor; e_261.visit(t_188); d.push(t_188.toString()); } for (var e_262 = 0, t_189 = a.length; e_262 < t_189; e_262++) { var t_190 = a[e_262], s_110 = new ExpressionBuilderVisitor; t_190.visit(s_110); var r_82 = i[2 * e_262], n_59 = i[2 * e_262 + 1], o_39 = [s_110.toString()]; if (r_82 > t_190.min) { o_39.unshift("Math.max(", r_82, ", "); o_39.push(")"); } if (n_59 < t_190.max) { o_39.unshift("Math.min(", n_59, ", "); o_39.push(")"); } o_39.unshift("dest[destOffset + ", e_262, "] = "); o_39.push(";"); d.push(o_39.join("")); } return d.join("\n"); }; return PostScriptCompiler; }()); var hs = ["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"], ls = ["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(e) { return 0 != (1 & e); } function isEven(e) { return 0 == (1 & e); } function findUnequal(e, t, i) { var a, s; for (a = t, s = e.length; a < s; ++a) if (e[a] !== i) return a; return a; } function setValues(e, t, i, a) { for (var s_111 = t; s_111 < i; ++s_111) e[s_111] = a; } function reverseValues(e, t, i) { for (var a_162 = t, s_112 = i - 1; a_162 < s_112; ++a_162, --s_112) { var t_191 = e[a_162]; e[a_162] = e[s_112]; e[s_112] = t_191; } } function createBidiText(e, t, i) { if (i === void 0) { i = !1; } var a = "ltr"; i ? a = "ttb" : t || (a = "rtl"); return { str: e, dir: a }; } var Cs = [], Bs = []; function bidi(e, t, i) { if (t === void 0) { t = -1; } if (i === void 0) { i = !1; } var a = !0; var s = e.length; if (0 === s || i) return createBidiText(e, a, i); Cs.length = s; Bs.length = s; var r, n, o = 0; for (r = 0; r < s; ++r) { Cs[r] = e.charAt(r); var t_192 = e.charCodeAt(r); var i_182 = "L"; if (t_192 <= 255) i_182 = hs[t_192]; else if (1424 <= t_192 && t_192 <= 1524) i_182 = "R"; else if (1536 <= t_192 && t_192 <= 1791) { i_182 = ls[255 & t_192]; i_182 || warn("Bidi: invalid Unicode character " + t_192.toString(16)); } else (1792 <= t_192 && t_192 <= 2220 || 64336 <= t_192 && t_192 <= 65023 || 65136 <= t_192 && t_192 <= 65279) && (i_182 = "AL"); "R" !== i_182 && "AL" !== i_182 && "AN" !== i_182 || o++; Bs[r] = i_182; } if (0 === o) { a = !0; return createBidiText(e, a); } if (-1 === t) if (o / s < .3 && s > 4) { a = !0; t = 0; } else { a = !1; t = 1; } var g = []; for (r = 0; r < s; ++r) g[r] = t; var c = isOdd(t) ? "R" : "L", h = c, l = h; var C, Q = h; for (r = 0; r < s; ++r) "NSM" === Bs[r] ? Bs[r] = Q : Q = Bs[r]; Q = h; for (r = 0; r < s; ++r) { C = Bs[r]; "EN" === C ? Bs[r] = "AL" === Q ? "AN" : "EN" : "R" !== C && "L" !== C && "AL" !== C || (Q = C); } for (r = 0; r < s; ++r) { C = Bs[r]; "AL" === C && (Bs[r] = "R"); } for (r = 1; r < s - 1; ++r) { "ES" === Bs[r] && "EN" === Bs[r - 1] && "EN" === Bs[r + 1] && (Bs[r] = "EN"); "CS" !== Bs[r] || "EN" !== Bs[r - 1] && "AN" !== Bs[r - 1] || Bs[r + 1] !== Bs[r - 1] || (Bs[r] = Bs[r - 1]); } for (r = 0; r < s; ++r) if ("EN" === Bs[r]) { for (var e_263 = r - 1; e_263 >= 0 && "ET" === Bs[e_263]; --e_263) Bs[e_263] = "EN"; for (var e_264 = r + 1; e_264 < s && "ET" === Bs[e_264]; ++e_264) Bs[e_264] = "EN"; } for (r = 0; r < s; ++r) { C = Bs[r]; "WS" !== C && "ES" !== C && "ET" !== C && "CS" !== C || (Bs[r] = "ON"); } Q = h; for (r = 0; r < s; ++r) { C = Bs[r]; "EN" === C ? Bs[r] = "L" === Q ? "L" : "EN" : "R" !== C && "L" !== C || (Q = C); } for (r = 0; r < s; ++r) if ("ON" === Bs[r]) { var e_265 = findUnequal(Bs, r + 1, "ON"); var t_193 = h; r > 0 && (t_193 = Bs[r - 1]); var i_183 = l; e_265 + 1 < s && (i_183 = Bs[e_265 + 1]); "L" !== t_193 && (t_193 = "R"); "L" !== i_183 && (i_183 = "R"); t_193 === i_183 && setValues(Bs, r, e_265, t_193); r = e_265 - 1; } for (r = 0; r < s; ++r) "ON" === Bs[r] && (Bs[r] = c); for (r = 0; r < s; ++r) { C = Bs[r]; isEven(g[r]) ? "R" === C ? g[r] += 1 : "AN" !== C && "EN" !== C || (g[r] += 2) : "L" !== C && "AN" !== C && "EN" !== C || (g[r] += 1); } var E, u = -1, d = 99; for (r = 0, n = g.length; r < n; ++r) { E = g[r]; u < E && (u = E); d > E && isOdd(E) && (d = E); } for (E = u; E >= d; --E) { var e_266 = -1; for (r = 0, n = g.length; r < n; ++r) if (g[r] < E) { if (e_266 >= 0) { reverseValues(Cs, e_266, r); e_266 = -1; } } else e_266 < 0 && (e_266 = r); e_266 >= 0 && reverseValues(Cs, e_266, g.length); } for (r = 0, n = Cs.length; r < n; ++r) { var e_267 = Cs[r]; "<" !== e_267 && ">" !== e_267 || (Cs[r] = ""); } return createBidiText(Cs.join(""), a); } var Qs = { style: "normal", weight: "normal" }, Es = { style: "normal", weight: "bold" }, us = { style: "italic", weight: "normal" }, ds = { style: "italic", weight: "bold" }, fs = new Map([["Times-Roman", { local: ["Times New Roman", "Times-Roman", "Times", "Liberation Serif", "Nimbus Roman", "Nimbus Roman L", "Tinos", "Thorndale", "TeX Gyre Termes", "FreeSerif", "Linux Libertine O", "Libertinus Serif", "DejaVu Serif", "Bitstream Vera Serif", "Ubuntu"], style: Qs, ultimate: "serif" }], ["Times-Bold", { alias: "Times-Roman", style: Es, ultimate: "serif" }], ["Times-Italic", { alias: "Times-Roman", style: us, ultimate: "serif" }], ["Times-BoldItalic", { alias: "Times-Roman", style: ds, ultimate: "serif" }], ["Helvetica", { local: ["Helvetica", "Helvetica Neue", "Arial", "Arial Nova", "Liberation Sans", "Arimo", "Nimbus Sans", "Nimbus Sans L", "A030", "TeX Gyre Heros", "FreeSans", "DejaVu Sans", "Albany", "Bitstream Vera Sans", "Arial Unicode MS", "Microsoft Sans Serif", "Apple Symbols", "Cantarell"], path: "LiberationSans-Regular.ttf", style: Qs, ultimate: "sans-serif" }], ["Helvetica-Bold", { alias: "Helvetica", path: "LiberationSans-Bold.ttf", style: Es, ultimate: "sans-serif" }], ["Helvetica-Oblique", { alias: "Helvetica", path: "LiberationSans-Italic.ttf", style: us, ultimate: "sans-serif" }], ["Helvetica-BoldOblique", { alias: "Helvetica", path: "LiberationSans-BoldItalic.ttf", style: ds, ultimate: "sans-serif" }], ["Courier", { local: ["Courier", "Courier New", "Liberation Mono", "Nimbus Mono", "Nimbus Mono L", "Cousine", "Cumberland", "TeX Gyre Cursor", "FreeMono", "Linux Libertine Mono O", "Libertinus Mono"], style: Qs, ultimate: "monospace" }], ["Courier-Bold", { alias: "Courier", style: Es, ultimate: "monospace" }], ["Courier-Oblique", { alias: "Courier", style: us, ultimate: "monospace" }], ["Courier-BoldOblique", { alias: "Courier", style: ds, ultimate: "monospace" }], ["ArialBlack", { local: ["Arial Black"], style: { style: "normal", weight: "900" }, fallback: "Helvetica-Bold" }], ["ArialBlack-Bold", { alias: "ArialBlack" }], ["ArialBlack-Italic", { alias: "ArialBlack", style: { style: "italic", weight: "900" }, fallback: "Helvetica-BoldOblique" }], ["ArialBlack-BoldItalic", { alias: "ArialBlack-Italic" }], ["ArialNarrow", { local: ["Arial Narrow", "Liberation Sans Narrow", "Helvetica Condensed", "Nimbus Sans Narrow", "TeX Gyre Heros Cn"], style: Qs, fallback: "Helvetica" }], ["ArialNarrow-Bold", { alias: "ArialNarrow", style: Es, fallback: "Helvetica-Bold" }], ["ArialNarrow-Italic", { alias: "ArialNarrow", style: us, fallback: "Helvetica-Oblique" }], ["ArialNarrow-BoldItalic", { alias: "ArialNarrow", style: ds, fallback: "Helvetica-BoldOblique" }], ["Calibri", { local: ["Calibri", "Carlito"], style: Qs, fallback: "Helvetica" }], ["Calibri-Bold", { alias: "Calibri", style: Es, fallback: "Helvetica-Bold" }], ["Calibri-Italic", { alias: "Calibri", style: us, fallback: "Helvetica-Oblique" }], ["Calibri-BoldItalic", { alias: "Calibri", style: ds, fallback: "Helvetica-BoldOblique" }], ["Wingdings", { local: ["Wingdings", "URW Dingbats"], style: Qs }], ["Wingdings-Regular", { alias: "Wingdings" }], ["Wingdings-Bold", { alias: "Wingdings" }]]), ps = new Map([["Arial-Black", "ArialBlack"]]); function getFamilyName(e) { var t = new Set(["thin", "extralight", "ultralight", "demilight", "semilight", "light", "book", "regular", "normal", "medium", "demibold", "semibold", "bold", "extrabold", "ultrabold", "black", "heavy", "extrablack", "ultrablack", "roman", "italic", "oblique", "ultracondensed", "extracondensed", "condensed", "semicondensed", "normal", "semiexpanded", "expanded", "extraexpanded", "ultraexpanded", "bolditalic"]); return e.split(/[- ,+]+/g).filter((function (e) { return !t.has(e.toLowerCase()); })).join(" "); } function generateFont(_b, n, o, g, c, h) { var e = _b.alias, t = _b.local, i = _b.path, a = _b.fallback, s = _b.style, r = _b.ultimate; if (g === void 0) { g = !0; } if (c === void 0) { c = !0; } if (h === void 0) { h = ""; } var l = { style: null, ultimate: null }; if (t) { var e_268 = h ? " ".concat(h) : ""; for (var _h = 0, t_194 = t; _h < t_194.length; _h++) { var i_184 = t_194[_h]; n.push("local(".concat(i_184).concat(e_268, ")")); } } if (e) { var t_195 = fs.get(e), r_83 = h || function getStyleToAppend(e) { switch (e) { case Es: return "Bold"; case us: return "Italic"; case ds: return "Bold Italic"; default: if ("bold" === (e === null || e === void 0 ? void 0 : e.weight)) return "Bold"; if ("italic" === (e === null || e === void 0 ? void 0 : e.style)) return "Italic"; } return ""; }(s); Object.assign(l, generateFont(t_195, n, o, g && !a, c && !i, r_83)); } s && (l.style = s); r && (l.ultimate = r); if (g && a) { var e_269 = fs.get(a), t_196 = generateFont(e_269, n, o, g, c && !i, h).ultimate; l.ultimate || (l.ultimate = t_196); } c && i && o && n.push("url(".concat(o).concat(i, ")")); return l; } function getFontSubstitution(e, t, i, a, s, r) { if (a.startsWith("InvalidPDFjsFont_")) return null; "TrueType" !== r && "Type1" !== r || !/^[A-Z]{6}\+/.test(a) || (a = a.slice(7)); var n = a = normalizeFontName(a); var o = e.get(n); if (o) return o; var g = fs.get(a); if (!g) for (var _b = 0, ps_1 = ps; _b < ps_1.length; _b++) { var _h = ps_1[_b], e_270 = _h[0], t_197 = _h[1]; if (a.startsWith(e_270)) { a = "".concat(t_197).concat(a.substring(e_270.length)); g = fs.get(a); break; } } var c = !1; if (!g) { g = fs.get(s); c = !0; } var h = "".concat(t.getDocId(), "_s").concat(t.createFontId()); if (!g) { if (!validateFontName(a)) { warn("Cannot substitute the font because of its name: ".concat(a)); e.set(n, null); return null; } var t_198 = /bold/gi.test(a), i_185 = /oblique|italic/gi.test(a), s_113 = t_198 && i_185 && ds || t_198 && Es || i_185 && us || Qs; o = { css: "\"".concat(getFamilyName(a), "\",").concat(h), guessFallback: !0, loadedName: h, baseFontName: a, src: "local(".concat(a, ")"), style: s_113 }; e.set(n, o); return o; } var l = []; c && validateFontName(a) && l.push("local(".concat(a, ")")); var _j = generateFont(g, l, i), C = _j.style, Q = _j.ultimate, E = null === Q, u = E ? "" : ",".concat(Q); o = { css: "\"".concat(getFamilyName(a), "\",").concat(h).concat(u), guessFallback: E, loadedName: h, baseFontName: a, src: l.join(","), style: C }; e.set(n, o); return o; } var ImageResizer = /** @class */ (function () { function ImageResizer(e, t) { this._imgData = e; this._isMask = t; } ImageResizer.needsToBeResized = function (e, t) { if (e <= this._goodSquareLength && t <= this._goodSquareLength) return !1; var i = this.MAX_DIM; if (e > i || t > i) return !0; var a = e * t; if (this._hasMaxArea) return a > this.MAX_AREA; if (a < Math.pow(this._goodSquareLength, 2)) return !1; if (this._areGoodDims(e, t)) { this._goodSquareLength = Math.max(this._goodSquareLength, Math.floor(Math.sqrt(e * t))); return !1; } this._goodSquareLength = this._guessMax(this._goodSquareLength, i, 128, 0); return a > (this.MAX_AREA = Math.pow(this._goodSquareLength, 2)); }; Object.defineProperty(ImageResizer, "MAX_DIM", { get: function () { return shadow(this, "MAX_DIM", this._guessMax(2048, 65537, 0, 1)); }, enumerable: false, configurable: true }); Object.defineProperty(ImageResizer, "MAX_AREA", { get: function () { this._hasMaxArea = !0; return shadow(this, "MAX_AREA", Math.pow(this._guessMax(ImageResizer._goodSquareLength, this.MAX_DIM, 128, 0), 2)); }, set: function (e) { if (e >= 0) { this._hasMaxArea = !0; shadow(this, "MAX_AREA", e); } }, enumerable: false, configurable: true }); ImageResizer.setMaxArea = function (e) { this._hasMaxArea || (this.MAX_AREA = e >> 2); }; ImageResizer._areGoodDims = function (e, t) { try { var i_186 = new OffscreenCanvas(e, t), a_163 = i_186.getContext("2d"); a_163.fillRect(0, 0, 1, 1); var s_114 = a_163.getImageData(0, 0, 1, 1).data[3]; i_186.width = i_186.height = 1; return 0 !== s_114; } catch (_b) { return !1; } }; ImageResizer._guessMax = function (e, t, i, a) { for (; e + i + 1 < t;) { var i_187 = Math.floor((e + t) / 2), s_115 = a || i_187; this._areGoodDims(i_187, s_115) ? e = i_187 : t = i_187; } return e; }; ImageResizer.createImage = function (e, t) { if (t === void 0) { t = !1; } return tslib_1.__awaiter(this, void 0, void 0, function () { return tslib_1.__generator(this, function (_b) { return [2 /*return*/, new ImageResizer(e, t)._createImage()]; }); }); }; ImageResizer.prototype._createImage = function () { return tslib_1.__awaiter(this, void 0, void 0, function () { var e, t, i, a, s, r, n, o, g, c, h, l, C, Q, E, u, _b, C_13, e_271, t_199, i_188, a_164; return tslib_1.__generator(this, function (_h) { switch (_h.label) { case 0: e = this._encodeBMP(), t = new Blob([e.buffer], { type: "image/bmp" }), i = createImageBitmap(t), a = ImageResizer.MAX_AREA, s = ImageResizer.MAX_DIM, r = this._imgData, n = r.width, o = r.height, g = Math.max(n / s, o / s, Math.sqrt(n * o / a)), c = Math.max(g, 2), h = Math.round(10 * (g + 1.25)) / 10 / c, l = Math.floor(Math.log2(h)), C = new Array(l + 2).fill(2); C[0] = c; C.splice(-1, 1, h / (1 << l)); Q = n, E = o; return [4 /*yield*/, i]; case 1: u = _h.sent(); for (_b = 0, C_13 = C; _b < C_13.length; _b++) { e_271 = C_13[_b]; t_199 = Q, i_188 = E; Q = Math.floor(Q / e_271) - 1; E = Math.floor(E / e_271) - 1; a_164 = new OffscreenCanvas(Q, E); a_164.getContext("2d").drawImage(u, 0, 0, t_199, i_188, 0, 0, Q, E); u = a_164.transferToImageBitmap(); } r.data = null; r.bitmap = u; r.width = Q; r.height = E; return [2 /*return*/, r]; } }); }); }; ImageResizer.prototype._encodeBMP = function () { var _b = this._imgData, e = _b.width, t = _b.height, i = _b.kind; var a, s = this._imgData.data, r = new Uint8Array(0), n = r, o = 0; switch (i) { case b: { a = 1; r = new Uint8Array(this._isMask ? [255, 255, 255, 255, 0, 0, 0, 0] : [0, 0, 0, 0, 255, 255, 255, 255]); var i_189 = e + 7 >> 3, n_60 = i_189 + 3 & -4; if (i_189 !== n_60) { var e_272 = new Uint8Array(n_60 * t); var a_165 = 0; for (var r_84 = 0, o_40 = t * i_189; r_84 < o_40; r_84 += i_189, a_165 += n_60) e_272.set(s.subarray(r_84, r_84 + i_189), a_165); s = e_272; } break; } case D: a = 24; if (3 & e) { var i_190 = 3 * e, a_166 = i_190 + 3 & -4, r_85 = a_166 - i_190, n_61 = new Uint8Array(a_166 * t); var o_41 = 0; for (var e_273 = 0, a_167 = t * i_190; e_273 < a_167; e_273 += i_190) { var t_200 = s.subarray(e_273, e_273 + i_190); for (var e_274 = 0; e_274 < i_190; e_274 += 3) { n_61[o_41++] = t_200[e_274 + 2]; n_61[o_41++] = t_200[e_274 + 1]; n_61[o_41++] = t_200[e_274]; } o_41 += r_85; } s = n_61; } else for (var e_275 = 0, t_201 = s.length; e_275 < t_201; e_275 += 3) { var t_202 = s[e_275]; s[e_275] = s[e_275 + 2]; s[e_275 + 2] = t_202; } break; case F: a = 32; o = 3; n = new Uint8Array(68); var i_191 = new DataView(n.buffer); if (FeatureTest.isLittleEndian) { i_191.setUint32(0, 255, !0); i_191.setUint32(4, 65280, !0); i_191.setUint32(8, 16711680, !0); i_191.setUint32(12, 4278190080, !0); } else { i_191.setUint32(0, 4278190080, !0); i_191.setUint32(4, 16711680, !0); i_191.setUint32(8, 65280, !0); i_191.setUint32(12, 255, !0); } break; default: throw new Error("invalid format"); } var g = 0; var c = 40 + n.length, h = 14 + c + r.length + s.length, l = new Uint8Array(h), C = new DataView(l.buffer); C.setUint16(g, 19778, !0); g += 2; C.setUint32(g, h, !0); g += 4; C.setUint32(g, 0, !0); g += 4; C.setUint32(g, 14 + c + r.length, !0); g += 4; C.setUint32(g, c, !0); g += 4; C.setInt32(g, e, !0); g += 4; C.setInt32(g, -t, !0); g += 4; C.setUint16(g, 1, !0); g += 2; C.setUint16(g, a, !0); g += 2; C.setUint32(g, o, !0); g += 4; C.setUint32(g, 0, !0); g += 4; C.setInt32(g, 0, !0); g += 4; C.setInt32(g, 0, !0); g += 4; C.setUint32(g, r.length / 4, !0); g += 4; C.setUint32(g, 0, !0); g += 4; l.set(n, g); g += n.length; l.set(r, g); g += r.length; l.set(s, g); return l; }; return ImageResizer; }()); ImageResizer._goodSquareLength = 2048; var ms = 3285377520, ys = 4294901760, ws = 65535; var MurmurHash3_64 = /** @class */ (function () { function MurmurHash3_64(e) { this.h1 = e ? 4294967295 & e : ms; this.h2 = e ? 4294967295 & e : ms; } MurmurHash3_64.prototype.update = function (e) { var t, i; if ("string" == typeof e) { t = new Uint8Array(2 * e.length); i = 0; for (var a_168 = 0, s_116 = e.length; a_168 < s_116; a_168++) { var s_117 = e.charCodeAt(a_168); if (s_117 <= 255) t[i++] = s_117; else { t[i++] = s_117 >>> 8; t[i++] = 255 & s_117; } } } else { if (!ArrayBuffer.isView(e)) throw new Error("Invalid data format, must be a string or TypedArray."); t = e.slice(); i = t.byteLength; } var a = i >> 2, s = i - 4 * a, r = new Uint32Array(t.buffer, 0, a); var n = 0, o = 0, g = this.h1, c = this.h2; var h = 3432918353, l = 461845907, C = 11601, Q = 13715; for (var e_276 = 0; e_276 < a; e_276++) if (1 & e_276) { n = r[e_276]; n = n * h & ys | n * C & ws; n = n << 15 | n >>> 17; n = n * l & ys | n * Q & ws; g ^= n; g = g << 13 | g >>> 19; g = 5 * g + 3864292196; } else { o = r[e_276]; o = o * h & ys | o * C & ws; o = o << 15 | o >>> 17; o = o * l & ys | o * Q & ws; c ^= o; c = c << 13 | c >>> 19; c = 5 * c + 3864292196; } n = 0; switch (s) { case 3: n ^= t[4 * a + 2] << 16; case 2: n ^= t[4 * a + 1] << 8; case 1: n ^= t[4 * a]; n = n * h & ys | n * C & ws; n = n << 15 | n >>> 17; n = n * l & ys | n * Q & ws; 1 & a ? g ^= n : c ^= n; } this.h1 = g; this.h2 = c; }; MurmurHash3_64.prototype.hexdigest = function () { var e = this.h1, t = this.h2; e ^= t >>> 1; e = 3981806797 * e & ys | 36045 * e & ws; t = 4283543511 * t & ys | (2950163797 * (t << 16 | e >>> 16) & ys) >>> 16; e ^= t >>> 1; e = 444984403 * e & ys | 60499 * e & ws; t = 3301882366 * t & ys | (3120437893 * (t << 16 | e >>> 16) & ys) >>> 16; e ^= t >>> 1; return (e >>> 0).toString(16).padStart(8, "0") + (t >>> 0).toString(16).padStart(8, "0"); }; return MurmurHash3_64; }()); function addState(e, t, i, a, s) { var r = e; for (var e_277 = 0, i_192 = t.length - 1; e_277 < i_192; e_277++) { var i_193 = t[e_277]; r = r[i_193] || (r[i_193] = []); } r[t.at(-1)] = { checkFn: i, iterateFn: a, processFn: s }; } var bs = []; addState(bs, [GA, MA, ze, xA], null, (function iterateInlineImageGroup(e, t) { var i = e.fnArray, a = (t - (e.iCurr - 3)) % 4; switch (a) { case 0: return i[t] === GA; case 1: return i[t] === MA; case 2: return i[t] === ze; case 3: return i[t] === xA; } throw new Error("iterateInlineImageGroup - invalid pos: ".concat(a)); }), (function foundInlineImageGroup(e, t) { var i = e.fnArray, a = e.argsArray, s = e.iCurr, r = s - 3, n = s - 2, o = s - 1, g = Math.min(Math.floor((t - r) / 4), 200); if (g < 10) return t - (t - r) % 4; var c = 0; var h = []; var l = 0, C = 1, Q = 1; for (var e_278 = 0; e_278 < g; e_278++) { var t_203 = a[n + (e_278 << 2)], i_194 = a[o + (e_278 << 2)][0]; if (C + i_194.width > 1e3) { c = Math.max(c, C); Q += l + 2; C = 0; l = 0; } h.push({ transform: t_203, x: C, y: Q, w: i_194.width, h: i_194.height }); C += i_194.width + 2; l = Math.max(l, i_194.height); } var E = Math.max(c, C) + 1, u = Q + l + 1, d = new Uint8Array(E * u * 4), f = E << 2; for (var e_279 = 0; e_279 < g; e_279++) { var t_204 = a[o + (e_279 << 2)][0].data, i_195 = h[e_279].w << 2; var s_118 = 0, r_86 = h[e_279].x + h[e_279].y * E << 2; d.set(t_204.subarray(0, i_195), r_86 - f); for (var a_169 = 0, n_62 = h[e_279].h; a_169 < n_62; a_169++) { d.set(t_204.subarray(s_118, s_118 + i_195), r_86); s_118 += i_195; r_86 += f; } d.set(t_204.subarray(s_118 - i_195, s_118), r_86); for (; r_86 >= 0;) { t_204[r_86 - 4] = t_204[r_86]; t_204[r_86 - 3] = t_204[r_86 + 1]; t_204[r_86 - 2] = t_204[r_86 + 2]; t_204[r_86 - 1] = t_204[r_86 + 3]; t_204[r_86 + i_195] = t_204[r_86 + i_195 - 4]; t_204[r_86 + i_195 + 1] = t_204[r_86 + i_195 - 3]; t_204[r_86 + i_195 + 2] = t_204[r_86 + i_195 - 2]; t_204[r_86 + i_195 + 3] = t_204[r_86 + i_195 - 1]; r_86 -= f; } } var p = { width: E, height: u }; if (e.isOffscreenCanvasSupported) { var e_280 = new OffscreenCanvas(E, u); e_280.getContext("2d").putImageData(new ImageData(new Uint8ClampedArray(d.buffer), E, u), 0, 0); p.bitmap = e_280.transferToImageBitmap(); p.data = null; } else { p.kind = F; p.data = d; } i.splice(r, 4 * g, _e); a.splice(r, 4 * g, [p, h]); return r + 1; })); addState(bs, [GA, MA, je, xA], null, (function iterateImageMaskGroup(e, t) { var i = e.fnArray, a = (t - (e.iCurr - 3)) % 4; switch (a) { case 0: return i[t] === GA; case 1: return i[t] === MA; case 2: return i[t] === je; case 3: return i[t] === xA; } throw new Error("iterateImageMaskGroup - invalid pos: ".concat(a)); }), (function foundImageMaskGroup(e, t) { var i = e.fnArray, a = e.argsArray, s = e.iCurr, r = s - 3, n = s - 2, o = s - 1; var g = Math.floor((t - r) / 4); if (g < 10) return t - (t - r) % 4; var c, h, l = !1; var C = a[o][0], Q = a[n][0], E = a[n][1], u = a[n][2], d = a[n][3]; if (E === u) { l = !0; c = n + 4; var e_281 = o + 4; for (var t_205 = 1; t_205 < g; t_205++, c += 4, e_281 += 4) { h = a[c]; if (a[e_281][0] !== C || h[0] !== Q || h[1] !== E || h[2] !== u || h[3] !== d) { t_205 < 10 ? l = !1 : g = t_205; break; } } } if (l) { g = Math.min(g, 1e3); var e_282 = new Float32Array(2 * g); c = n; for (var t_206 = 0; t_206 < g; t_206++, c += 4) { h = a[c]; e_282[t_206 << 1] = h[4]; e_282[1 + (t_206 << 1)] = h[5]; } i.splice(r, 4 * g, At); a.splice(r, 4 * g, [C, Q, E, u, d, e_282]); } else { g = Math.min(g, 100); var e_283 = []; for (var t_207 = 0; t_207 < g; t_207++) { h = a[n + (t_207 << 2)]; var i_196 = a[o + (t_207 << 2)][0]; e_283.push({ data: i_196.data, width: i_196.width, height: i_196.height, interpolate: i_196.interpolate, count: i_196.count, transform: h }); } i.splice(r, 4 * g, Ze); a.splice(r, 4 * g, [e_283]); } return r + 1; })); addState(bs, [GA, MA, Ve, xA], (function (e) { var t = e.argsArray, i = e.iCurr - 2; return 0 === t[i][1] && 0 === t[i][2]; }), (function iterateImageGroup(e, t) { var i = e.fnArray, a = e.argsArray, s = (t - (e.iCurr - 3)) % 4; switch (s) { case 0: return i[t] === GA; case 1: if (i[t] !== MA) return !1; var s_119 = e.iCurr - 2, r_87 = a[s_119][0], n_63 = a[s_119][3]; return a[t][0] === r_87 && 0 === a[t][1] && 0 === a[t][2] && a[t][3] === n_63; case 2: if (i[t] !== Ve) return !1; var o_42 = a[e.iCurr - 1][0]; return a[t][0] === o_42; case 3: return i[t] === xA; } throw new Error("iterateImageGroup - invalid pos: ".concat(s)); }), (function (e, t) { var i = e.fnArray, a = e.argsArray, s = e.iCurr, r = s - 3, n = s - 2, o = a[s - 1][0], g = a[n][0], c = a[n][3], h = Math.min(Math.floor((t - r) / 4), 1e3); if (h < 3) return t - (t - r) % 4; var l = new Float32Array(2 * h); var C = n; for (var e_284 = 0; e_284 < h; e_284++, C += 4) { var t_208 = a[C]; l[e_284 << 1] = t_208[4]; l[1 + (e_284 << 1)] = t_208[5]; } var Q = [o, g, c, l]; i.splice(r, 4 * h, $e); a.splice(r, 4 * h, Q); return r + 1; })); addState(bs, [$A, se, Ie, he, Ae], null, (function iterateShowTextGroup(e, t) { var i = e.fnArray, a = e.argsArray, s = (t - (e.iCurr - 4)) % 5; switch (s) { case 0: return i[t] === $A; case 1: return i[t] === se; case 2: return i[t] === Ie; case 3: if (i[t] !== he) return !1; var s_120 = e.iCurr - 3, r_88 = a[s_120][0], n_64 = a[s_120][1]; return a[t][0] === r_88 && a[t][1] === n_64; case 4: return i[t] === Ae; } throw new Error("iterateShowTextGroup - invalid pos: ".concat(s)); }), (function (e, t) { var i = e.fnArray, a = e.argsArray, s = e.iCurr, r = s - 4, n = s - 3, o = s - 2, g = s - 1, c = s, h = a[n][0], l = a[n][1]; var C = Math.min(Math.floor((t - r) / 5), 1e3); if (C < 3) return t - (t - r) % 5; var Q = r; if (r >= 4 && i[r - 4] === i[n] && i[r - 3] === i[o] && i[r - 2] === i[g] && i[r - 1] === i[c] && a[r - 4][0] === h && a[r - 4][1] === l) { C++; Q -= 5; } var E = Q + 4; for (var e_285 = 1; e_285 < C; e_285++) { i.splice(E, 3); a.splice(E, 3); E += 2; } return E + 1; })); var NullOptimizer = /** @class */ (function () { function NullOptimizer(e) { this.queue = e; } NullOptimizer.prototype._optimize = function () { }; NullOptimizer.prototype.push = function (e, t) { this.queue.fnArray.push(e); this.queue.argsArray.push(t); this._optimize(); }; NullOptimizer.prototype.flush = function () { }; NullOptimizer.prototype.reset = function () { }; return NullOptimizer; }()); var QueueOptimizer = /** @class */ (function (_super) { tslib_1.__extends(QueueOptimizer, _super); function QueueOptimizer(e) { var _this = _super.call(this, e) || this; _this.state = null; _this.context = { iCurr: 0, fnArray: e.fnArray, argsArray: e.argsArray, isOffscreenCanvasSupported: !1 }; _this.match = null; _this.lastProcessed = 0; return _this; } Object.defineProperty(QueueOptimizer.prototype, "isOffscreenCanvasSupported", { set: function (e) { this.context.isOffscreenCanvasSupported = e; }, enumerable: false, configurable: true }); QueueOptimizer.prototype._optimize = function () { var e = this.queue.fnArray; var t = this.lastProcessed, i = e.length, a = this.state, s = this.match; if (!a && !s && t + 1 === i && !bs[e[t]]) { this.lastProcessed = i; return; } var r = this.context; for (; t < i;) { if (s) { if ((0, s.iterateFn)(r, t)) { t++; continue; } t = (0, s.processFn)(r, t + 1); i = e.length; s = null; a = null; if (t >= i) break; } a = (a || bs)[e[t]]; if (a && !Array.isArray(a)) { r.iCurr = t; t++; if (!a.checkFn || (0, a.checkFn)(r)) { s = a; a = null; } else a = null; } else t++; } this.state = a; this.match = s; this.lastProcessed = t; }; QueueOptimizer.prototype.flush = function () { for (; this.match;) { var e_286 = this.queue.fnArray.length; this.lastProcessed = (0, this.match.processFn)(this.context, e_286); this.match = null; this.state = null; this._optimize(); } }; QueueOptimizer.prototype.reset = function () { this.state = null; this.match = null; this.lastProcessed = 0; }; return QueueOptimizer; }(NullOptimizer)); var OperatorList = /** @class */ (function () { function OperatorList(e, t) { if (e === void 0) { e = 0; } this._streamSink = t; this.fnArray = []; this.argsArray = []; this.optimizer = !t || e & Q ? new NullOptimizer(this) : new QueueOptimizer(this); this.dependencies = new Set; this._totalLength = 0; this.weight = 0; this._resolved = t ? null : Promise.resolve(); } Object.defineProperty(OperatorList.prototype, "isOffscreenCanvasSupported", { set: function (e) { this.optimizer.isOffscreenCanvasSupported = e; }, enumerable: false, configurable: true }); Object.defineProperty(OperatorList.prototype, "length", { get: function () { return this.argsArray.length; }, enumerable: false, configurable: true }); Object.defineProperty(OperatorList.prototype, "ready", { get: function () { return this._resolved || this._streamSink.ready; }, enumerable: false, configurable: true }); Object.defineProperty(OperatorList.prototype, "totalLength", { get: function () { return this._totalLength + this.length; }, enumerable: false, configurable: true }); OperatorList.prototype.addOp = function (e, t) { this.optimizer.push(e, t); this.weight++; this._streamSink && (this.weight >= OperatorList.CHUNK_SIZE || this.weight >= OperatorList.CHUNK_SIZE_ABOUT && (e === xA || e === Ae)) && this.flush(); }; OperatorList.prototype.addImageOps = function (e, t, i) { void 0 !== i && this.addOp(He, ["OC", i]); this.addOp(e, t); void 0 !== i && this.addOp(Ye, []); }; OperatorList.prototype.addDependency = function (e) { if (!this.dependencies.has(e)) { this.dependencies.add(e); this.addOp(yA, [e]); } }; OperatorList.prototype.addDependencies = function (e) { for (var _b = 0, e_287 = e; _b < e_287.length; _b++) { var t_209 = e_287[_b]; this.addDependency(t_209); } }; OperatorList.prototype.addOpList = function (e) { if (e instanceof OperatorList) { for (var _b = 0, _j = e.dependencies; _b < _j.length; _b++) { var t_210 = _j[_b]; this.dependencies.add(t_210); } for (var t_211 = 0, i_197 = e.length; t_211 < i_197; t_211++) this.addOp(e.fnArray[t_211], e.argsArray[t_211]); } else warn('addOpList - ignoring invalid "opList" parameter.'); }; OperatorList.prototype.getIR = function () { return { fnArray: this.fnArray, argsArray: this.argsArray, length: this.length }; }; Object.defineProperty(OperatorList.prototype, "_transfers", { get: function () { var _b; var e = [], _j = this, t = _j.fnArray, i = _j.argsArray, a = _j.length; for (var s_121 = 0; s_121 < a; s_121++) switch (t[s_121]) { case ze: case _e: case je: var t_212 = i[s_121][0]; !t_212.cached && ((_b = t_212.data) === null || _b === void 0 ? void 0 : _b.buffer) instanceof ArrayBuffer && e.push(t_212.data.buffer); } return e; }, enumerable: false, configurable: true }); OperatorList.prototype.flush = function (e, t) { if (e === void 0) { e = !1; } if (t === void 0) { t = null; } this.optimizer.flush(); var i = this.length; this._totalLength += i; this._streamSink.enqueue({ fnArray: this.fnArray, argsArray: this.argsArray, lastChunk: e, separateAnnots: t, length: i }, 1, this._transfers); this.dependencies.clear(); this.fnArray.length = 0; this.argsArray.length = 0; this.weight = 0; this.optimizer.reset(); }; var _h; _h = OperatorList; OperatorList.CHUNK_SIZE = 1e3; OperatorList.CHUNK_SIZE_ABOUT = _h.CHUNK_SIZE - 5; return OperatorList; }()); function decodeAndClamp(e, t, i, a) { (e = t + e * i) < 0 ? e = 0 : e > a && (e = a); return e; } function resizeImageMask(e, t, i, a, s, r) { var n = s * r; var o; o = t <= 8 ? new Uint8Array(n) : t <= 16 ? new Uint16Array(n) : new Uint32Array(n); var g = i / s, c = a / r; var h, l, C, Q, E = 0; var u = new Uint16Array(s), d = i; for (h = 0; h < s; h++) u[h] = Math.floor(h * g); for (h = 0; h < r; h++) { C = Math.floor(h * c) * d; for (l = 0; l < s; l++) { Q = C + u[l]; o[E++] = e[Q]; } } return o; } var PDFImage = /** @class */ (function () { function PDFImage(_b) { var _j; var e = _b.xref, t = _b.res, i = _b.image, _k = _b.isInline, a = _k === void 0 ? !1 : _k, _l = _b.smask, s = _l === void 0 ? null : _l, _m = _b.mask, r = _m === void 0 ? null : _m, _o = _b.isMask, n = _o === void 0 ? !1 : _o, o = _b.pdfFunctionFactory, g = _b.localColorSpaceCache; var _p; this.image = i; var c = !1; var h = i.dict, l = h.get("F", "Filter"); var C; if (l instanceof Name) C = l.name; else if (Array.isArray(l)) { var t_213 = e.fetchIfRef(l[0]); t_213 instanceof Name && (C = t_213.name); } switch (C) { case "JPXDecode": (_j = JpxImage.parseImageProperties(i.stream), i.width = _j.width, i.height = _j.height, i.numComps = _j.componentsCount, i.bitsPerComponent = _j.bitsPerComponent); i.stream.reset(); c = !0; break; case "JBIG2Decode": i.bitsPerComponent = 1; i.numComps = 1; } var Q = h.get("W", "Width"), E = h.get("H", "Height"); if (Number.isInteger(i.width) && i.width > 0 && Number.isInteger(i.height) && i.height > 0 && (i.width !== Q || i.height !== E)) { warn("PDFImage - using the Width/Height of the image data, rather than the image dictionary."); Q = i.width; E = i.height; } if (Q < 1 || E < 1) throw new FormatError("Invalid image width: ".concat(Q, " or height: ").concat(E)); this.width = Q; this.height = E; this.interpolate = h.get("I", "Interpolate"); this.imageMask = h.get("IM", "ImageMask") || !1; this.matte = h.get("Matte") || !1; var u = i.bitsPerComponent; if (!u) { u = h.get("BPC", "BitsPerComponent"); if (!u) { if (!this.imageMask) throw new FormatError("Bits per component missing in image: ".concat(this.imageMask)); u = 1; } } this.bpc = u; if (!this.imageMask) { var s_122 = h.getRaw("CS") || h.getRaw("ColorSpace"); if (!s_122) { info("JPX images (which do not require color spaces)"); switch (i.numComps) { case 1: s_122 = Name.get("DeviceGray"); break; case 3: s_122 = Name.get("DeviceRGB"); break; case 4: s_122 = Name.get("DeviceCMYK"); break; default: throw new Error("JPX images with ".concat(i.numComps, " color components not supported.")); } } this.colorSpace = ColorSpace.parse({ cs: s_122, xref: e, resources: a ? t : null, pdfFunctionFactory: o, localColorSpaceCache: g }); this.numComps = this.colorSpace.numComps; this.ignoreColorSpace = c && "Indexed" === this.colorSpace.name; } this.decode = h.getArray("D", "Decode"); this.needsDecode = !1; if (this.decode && (this.colorSpace && !this.colorSpace.isDefaultDecode(this.decode, u) || n && !ColorSpace.isDefaultDecode(this.decode, 1))) { this.needsDecode = !0; var e_288 = (1 << u) - 1; this.decodeCoefficients = []; this.decodeAddends = []; var t_214 = "Indexed" === ((_p = this.colorSpace) === null || _p === void 0 ? void 0 : _p.name); for (var i_198 = 0, a_170 = 0; i_198 < this.decode.length; i_198 += 2, ++a_170) { var s_123 = this.decode[i_198], r_89 = this.decode[i_198 + 1]; this.decodeCoefficients[a_170] = t_214 ? (r_89 - s_123) / e_288 : r_89 - s_123; this.decodeAddends[a_170] = t_214 ? s_123 : e_288 * s_123; } } if (s) this.smask = new PDFImage({ xref: e, res: t, image: s, isInline: a, pdfFunctionFactory: o, localColorSpaceCache: g }); else if (r) if (r instanceof BaseStream) { r.dict.get("IM", "ImageMask") ? this.mask = new PDFImage({ xref: e, res: t, image: r, isInline: a, isMask: !0, pdfFunctionFactory: o, localColorSpaceCache: g }) : warn("Ignoring /Mask in image without /ImageMask."); } else this.mask = r; } PDFImage.buildImage = function (_b) { var e = _b.xref, t = _b.res, i = _b.image, _j = _b.isInline, a = _j === void 0 ? !1 : _j, s = _b.pdfFunctionFactory, r = _b.localColorSpaceCache; return tslib_1.__awaiter(this, void 0, void 0, function () { var n, o, g, c, h; return tslib_1.__generator(this, function (_k) { n = i; o = null, g = null; c = i.dict.get("SMask"), h = i.dict.get("Mask"); c ? c instanceof BaseStream ? o = c : warn("Unsupported /SMask format.") : h && (h instanceof BaseStream || Array.isArray(h) ? g = h : warn("Unsupported /Mask format.")); return [2 /*return*/, new PDFImage({ xref: e, res: t, image: n, isInline: a, smask: o, mask: g, pdfFunctionFactory: s, localColorSpaceCache: r })]; }); }); }; PDFImage.createRawMask = function (_b) { var e = _b.imgArray, t = _b.width, i = _b.height, a = _b.imageIsFromDecodeStream, s = _b.inverseDecode, r = _b.interpolate; var n = (t + 7 >> 3) * i, o = e.byteLength; var g, c; if (!a || s && !(n === o)) if (s) { g = new Uint8Array(n); g.set(e); g.fill(255, o); } else g = new Uint8Array(e); else g = e; if (s) for (c = 0; c < o; c++) g[c] ^= 255; return { data: g, width: t, height: i, interpolate: r }; }; PDFImage.createMask = function (_b) { var e = _b.imgArray, t = _b.width, i = _b.height, a = _b.imageIsFromDecodeStream, s = _b.inverseDecode, r = _b.interpolate, _j = _b.isOffscreenCanvasSupported, n = _j === void 0 ? !1 : _j; return tslib_1.__awaiter(this, void 0, void 0, function () { var o, a_171, a_172, n_65, o_43; return tslib_1.__generator(this, function (_k) { o = 1 === t && 1 === i && s === (0 === e.length || !!(128 & e[0])); if (o) return [2 /*return*/, { isSingleOpaquePixel: o }]; if (n) { if (ImageResizer.needsToBeResized(t, i)) { a_171 = new Uint8ClampedArray(t * i * 4); convertBlackAndWhiteToRGBA({ src: e, dest: a_171, width: t, height: i, nonBlackColor: 0, inverseDecode: s }); return [2 /*return*/, ImageResizer.createImage({ kind: F, data: a_171, width: t, height: i, interpolate: r })]; } a_172 = new OffscreenCanvas(t, i), n_65 = a_172.getContext("2d"), o_43 = n_65.createImageData(t, i); convertBlackAndWhiteToRGBA({ src: e, dest: o_43.data, width: t, height: i, nonBlackColor: 0, inverseDecode: s }); n_65.putImageData(o_43, 0, 0); return [2 /*return*/, { data: null, width: t, height: i, interpolate: r, bitmap: a_172.transferToImageBitmap() }]; } return [2 /*return*/, this.createRawMask({ imgArray: e, width: t, height: i, inverseDecode: s, imageIsFromDecodeStream: a, interpolate: r })]; }); }); }; Object.defineProperty(PDFImage.prototype, "drawWidth", { get: function () { var _b, _j; return Math.max(this.width, ((_b = this.smask) === null || _b === void 0 ? void 0 : _b.width) || 0, ((_j = this.mask) === null || _j === void 0 ? void 0 : _j.width) || 0); }, enumerable: false, configurable: true }); Object.defineProperty(PDFImage.prototype, "drawHeight", { get: function () { var _b, _j; return Math.max(this.height, ((_b = this.smask) === null || _b === void 0 ? void 0 : _b.height) || 0, ((_j = this.mask) === null || _j === void 0 ? void 0 : _j.height) || 0); }, enumerable: false, configurable: true }); PDFImage.prototype.decodeBuffer = function (e) { var t = this.bpc, i = this.numComps, a = this.decodeAddends, s = this.decodeCoefficients, r = (1 << t) - 1; var n, o; if (1 === t) { for (n = 0, o = e.length; n < o; n++) e[n] = +!e[n]; return; } var g = 0; for (n = 0, o = this.width * this.height; n < o; n++) for (var t_215 = 0; t_215 < i; t_215++) { e[g] = decodeAndClamp(e[g], a[t_215], s[t_215], r); g++; } }; PDFImage.prototype.getComponents = function (e) { var t = this.bpc; if (8 === t) return e; var i = this.width, a = this.height, s = this.numComps, r = i * a * s; var n, o = 0; n = t <= 8 ? new Uint8Array(r) : t <= 16 ? new Uint16Array(r) : new Uint32Array(r); var g = i * s, c = (1 << t) - 1; var h, l, C = 0; if (1 === t) { var t_216, i_199, s_124; for (var r_90 = 0; r_90 < a; r_90++) { i_199 = C + (-8 & g); s_124 = C + g; for (; C < i_199;) { l = e[o++]; n[C] = l >> 7 & 1; n[C + 1] = l >> 6 & 1; n[C + 2] = l >> 5 & 1; n[C + 3] = l >> 4 & 1; n[C + 4] = l >> 3 & 1; n[C + 5] = l >> 2 & 1; n[C + 6] = l >> 1 & 1; n[C + 7] = 1 & l; C += 8; } if (C < s_124) { l = e[o++]; t_216 = 128; for (; C < s_124;) { n[C++] = +!!(l & t_216); t_216 >>= 1; } } } } else { var i_200 = 0; l = 0; for (C = 0, h = r; C < h; ++C) { if (C % g == 0) { l = 0; i_200 = 0; } for (; i_200 < t;) { l = l << 8 | e[o++]; i_200 += 8; } var a_173 = i_200 - t; var s_125 = l >> a_173; s_125 < 0 ? s_125 = 0 : s_125 > c && (s_125 = c); n[C] = s_125; l &= (1 << a_173) - 1; i_200 = a_173; } } return n; }; PDFImage.prototype.fillOpacity = function (e, t, i, a, s) { var r = this.smask, n = this.mask; var o, g, c, h, l, C; if (r) { g = r.width; c = r.height; o = new Uint8ClampedArray(g * c); r.fillGrayBuffer(o); g === t && c === i || (o = resizeImageMask(o, r.bpc, g, c, t, i)); } else if (n) if (n instanceof PDFImage) { g = n.width; c = n.height; o = new Uint8ClampedArray(g * c); n.numComps = 1; n.fillGrayBuffer(o); for (h = 0, l = g * c; h < l; ++h) o[h] = 255 - o[h]; g === t && c === i || (o = resizeImageMask(o, n.bpc, g, c, t, i)); } else { if (!Array.isArray(n)) throw new FormatError("Unknown mask format."); { o = new Uint8ClampedArray(t * i); var e_289 = this.numComps; for (h = 0, l = t * i; h < l; ++h) { var t_217 = 0; var i_201 = h * e_289; for (C = 0; C < e_289; ++C) { var e_290 = s[i_201 + C], a_174 = 2 * C; if (e_290 < n[a_174] || e_290 > n[a_174 + 1]) { t_217 = 255; break; } } o[h] = t_217; } } } if (o) for (h = 0, C = 3, l = t * a; h < l; ++h, C += 4) e[C] = o[h]; else for (h = 0, C = 3, l = t * a; h < l; ++h, C += 4) e[C] = 255; }; PDFImage.prototype.undoPreblend = function (e, t, i) { var _b; var a = (_b = this.smask) === null || _b === void 0 ? void 0 : _b.matte; if (!a) return; var s = this.colorSpace.getRgb(a, 0), r = s[0], n = s[1], o = s[2], g = t * i * 4; for (var t_218 = 0; t_218 < g; t_218 += 4) { var i_202 = e[t_218 + 3]; if (0 === i_202) { e[t_218] = 255; e[t_218 + 1] = 255; e[t_218 + 2] = 255; continue; } var a_175 = 255 / i_202; e[t_218] = (e[t_218] - r) * a_175 + r; e[t_218 + 1] = (e[t_218 + 1] - n) * a_175 + n; e[t_218 + 2] = (e[t_218 + 2] - o) * a_175 + o; } }; PDFImage.prototype.createImageData = function (e, t) { if (e === void 0) { e = !1; } if (t === void 0) { t = !1; } return tslib_1.__awaiter(this, void 0, void 0, function () { var i, a, s, r, n, o, g, c, h, e_291, r_91, t_219, e_292, i_203, e_293, t_220, t_221, l, C, Q, E, u, d, f, p, m; return tslib_1.__generator(this, function (_b) { i = this.drawWidth, a = this.drawHeight, s = { width: i, height: a, interpolate: this.interpolate, kind: 0, data: null }, r = this.numComps, n = this.width, o = this.height, g = this.bpc, c = n * r * g + 7 >> 3, h = t && ImageResizer.needsToBeResized(i, a); if (!e) { "DeviceGray" === this.colorSpace.name && 1 === g ? e_291 = b : "DeviceRGB" !== this.colorSpace.name || 8 !== g || this.needsDecode || (e_291 = D); if (e_291 && !this.smask && !this.mask && i === n && a === o) { r_91 = this.getImageBytes(o * c, {}); if (t) return [2 /*return*/, h ? ImageResizer.createImage({ data: r_91, kind: e_291, width: i, height: a, interpolate: this.interpolate }, this.needsDecode) : this.createBitmap(e_291, n, o, r_91)]; s.kind = e_291; s.data = r_91; if (this.needsDecode) { assert(e_291 === b, "PDFImage.createImageData: The image must be grayscale."); t_219 = s.data; for (e_292 = 0, i_203 = t_219.length; e_292 < i_203; e_292++) t_219[e_292] ^= 255; } return [2 /*return*/, s]; } if (this.image instanceof JpegStream && !this.smask && !this.mask && !this.needsDecode) { e_293 = o * c; if (t && !h) { t_220 = !1; switch (this.colorSpace.name) { case "DeviceGray": e_293 *= 4; t_220 = !0; break; case "DeviceRGB": e_293 = e_293 / 3 * 4; t_220 = !0; break; case "DeviceCMYK": t_220 = !0; } if (t_220) { t_221 = this.getImageBytes(e_293, { drawWidth: i, drawHeight: a, forceRGBA: !0 }); return [2 /*return*/, this.createBitmap(F, i, a, t_221)]; } } else switch (this.colorSpace.name) { case "DeviceGray": e_293 *= 3; case "DeviceRGB": case "DeviceCMYK": s.kind = D; s.data = this.getImageBytes(e_293, { drawWidth: i, drawHeight: a, forceRGB: !0 }); return [2 /*return*/, h ? ImageResizer.createImage(s) : s]; } } } l = this.getImageBytes(o * c, { internal: !0 }), C = 0 | l.length / c * a / o, Q = this.getComponents(l); if (t && !h) { d = new OffscreenCanvas(i, a); f = d.getContext("2d"); p = f.createImageData(i, a); m = p.data; } s.kind = F; if (e || this.smask || this.mask) { t && !h || (m = new Uint8ClampedArray(i * a * 4)); E = 1; u = !0; this.fillOpacity(m, i, a, C, Q); } else { if (!t || h) { s.kind = D; m = new Uint8ClampedArray(i * a * 3); E = 0; } else { new Uint32Array(m.buffer).fill(FeatureTest.isLittleEndian ? 4278190080 : 255); E = 1; } u = !1; } this.needsDecode && this.decodeBuffer(Q); this.colorSpace.fillRgb(m, n, o, i, a, C, g, Q, E); u && this.undoPreblend(m, i, C); if (t && !h) { f.putImageData(p, 0, 0); return [2 /*return*/, { data: null, width: i, height: a, bitmap: d.transferToImageBitmap(), interpolate: this.interpolate }]; } s.data = m; return [2 /*return*/, h ? ImageResizer.createImage(s) : s]; }); }); }; PDFImage.prototype.fillGrayBuffer = function (e) { var t = this.numComps; if (1 !== t) throw new FormatError("Reading gray scale from a color image: ".concat(t)); var i = this.width, a = this.height, s = this.bpc, r = i * t * s + 7 >> 3, n = this.getImageBytes(a * r, { internal: !0 }), o = this.getComponents(n); var g, c; if (1 === s) { c = i * a; if (this.needsDecode) for (g = 0; g < c; ++g) e[g] = o[g] - 1 & 255; else for (g = 0; g < c; ++g) e[g] = 255 & -o[g]; return; } this.needsDecode && this.decodeBuffer(o); c = i * a; var h = 255 / ((1 << s) - 1); for (g = 0; g < c; ++g) e[g] = h * o[g]; }; PDFImage.prototype.createBitmap = function (e, t, i, a) { var s = new OffscreenCanvas(t, i), r = s.getContext("2d"); var n; if (e === F) n = new ImageData(a, t, i); else { n = r.createImageData(t, i); convertToRGBA({ kind: e, src: a, dest: new Uint32Array(n.data.buffer), width: t, height: i, inverseDecode: this.needsDecode }); } r.putImageData(n, 0, 0); return { data: null, width: t, height: i, bitmap: s.transferToImageBitmap(), interpolate: this.interpolate }; }; PDFImage.prototype.getImageBytes = function (e, _b) { var t = _b.drawWidth, i = _b.drawHeight, _j = _b.forceRGBA, a = _j === void 0 ? !1 : _j, _k = _b.forceRGB, s = _k === void 0 ? !1 : _k, _l = _b.internal, r = _l === void 0 ? !1 : _l; this.image.reset(); this.image.drawWidth = t || this.width; this.image.drawHeight = i || this.height; this.image.forceRGBA = !!a; this.image.forceRGB = !!s; var n = this.image.getBytes(e, this.ignoreColorSpace); if (r || this.image instanceof DecodeStream) return n; assert(n instanceof Uint8Array, 'PDFImage.getImageBytes: Unsupported "imageBytes" type.'); return new Uint8Array(n); }; return PDFImage; }()); var Ds = Object.freeze({ maxImageSize: -1, disableFontFace: !1, ignoreErrors: !1, isEvalSupported: !0, isOffscreenCanvasSupported: !1, canvasMaxAreaInBytes: -1, fontExtraProperties: !1, useSystemFonts: !0, cMapUrl: null, standardFontDataUrl: null }), Fs = 1, Ss = 2, ks = Promise.resolve(); function normalizeBlendMode(e, t) { if (t === void 0) { t = !1; } if (Array.isArray(e)) { for (var _b = 0, e_294 = e; _b < e_294.length; _b++) { var t_222 = e_294[_b]; var e_295 = normalizeBlendMode(t_222, !0); if (e_295) return e_295; } warn("Unsupported blend mode Array: ".concat(e)); return "source-over"; } if (!(e instanceof Name)) return t ? null : "source-over"; switch (e.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 (t) return null; warn("Unsupported blend mode: ".concat(e.name)); return "source-over"; } function incrementCachedImageMaskCount(e) { var _b; e.fn === je && ((_b = e.args[0]) === null || _b === void 0 ? void 0 : _b.count) > 0 && e.args[0].count++; } var TimeSlotManager = /** @class */ (function () { function TimeSlotManager() { this.reset(); } TimeSlotManager.prototype.check = function () { if (++this.checked < TimeSlotManager.CHECK_TIME_EVERY) return !1; this.checked = 0; return this.endTime <= Date.now(); }; TimeSlotManager.prototype.reset = function () { this.endTime = Date.now() + TimeSlotManager.TIME_SLOT_DURATION_MS; this.checked = 0; }; TimeSlotManager.TIME_SLOT_DURATION_MS = 20; TimeSlotManager.CHECK_TIME_EVERY = 100; return TimeSlotManager; }()); var PartialEvaluator = /** @class */ (function () { function PartialEvaluator(_b) { var e = _b.xref, t = _b.handler, i = _b.pageIndex, a = _b.idFactory, s = _b.fontCache, r = _b.builtInCMapCache, n = _b.standardFontDataCache, o = _b.globalImageCache, g = _b.systemFontCache, _j = _b.options, c = _j === void 0 ? null : _j; this.xref = e; this.handler = t; this.pageIndex = i; this.idFactory = a; this.fontCache = s; this.builtInCMapCache = r; this.standardFontDataCache = n; this.globalImageCache = o; this.systemFontCache = g; this.options = c || Ds; this.type3FontRefs = null; this._regionalImageCache = new RegionalImageCache; this._fetchBuiltInCMapBound = this.fetchBuiltInCMap.bind(this); ImageResizer.setMaxArea(this.options.canvasMaxAreaInBytes); } Object.defineProperty(PartialEvaluator.prototype, "_pdfFunctionFactory", { get: function () { return shadow(this, "_pdfFunctionFactory", new PDFFunctionFactory({ xref: this.xref, isEvalSupported: this.options.isEvalSupported })); }, enumerable: false, configurable: true }); Object.defineProperty(PartialEvaluator.prototype, "parsingType3Font", { get: function () { return !!this.type3FontRefs; }, enumerable: false, configurable: true }); PartialEvaluator.prototype.clone = function (e) { if (e === void 0) { e = null; } var t = Object.create(this); t.options = Object.assign(Object.create(null), this.options, e); return t; }; PartialEvaluator.prototype.hasBlendModes = function (e, t) { if (!(e instanceof Dict)) return !1; if (e.objId && t.has(e.objId)) return !1; var i = new RefSet(t); e.objId && i.put(e.objId); var a = [e], s = this.xref; for (; a.length;) { var e_296 = a.shift(), t_224 = e_296.get("ExtGState"); if (t_224 instanceof Dict) for (var _b = 0, _j = t_224.getRawValues(); _b < _j.length; _b++) { var e_297 = _j[_b]; if (e_297 instanceof Ref) { if (i.has(e_297)) continue; try { e_297 = s.fetch(e_297); } catch (t) { i.put(e_297); info("hasBlendModes - ignoring ExtGState: \"".concat(t, "\".")); continue; } } if (!(e_297 instanceof Dict)) continue; e_297.objId && i.put(e_297.objId); var t_225 = e_297.get("BM"); if (t_225 instanceof Name) { if ("Normal" !== t_225.name) return !0; } else if (void 0 !== t_225 && Array.isArray(t_225)) for (var _k = 0, t_223 = t_225; _k < t_223.length; _k++) { var e_298 = t_223[_k]; if (e_298 instanceof Name && "Normal" !== e_298.name) return !0; } } var r_92 = e_296.get("XObject"); if (r_92 instanceof Dict) for (var _l = 0, _m = r_92.getRawValues(); _l < _m.length; _l++) { var e_299 = _m[_l]; if (e_299 instanceof Ref) { if (i.has(e_299)) continue; try { e_299 = s.fetch(e_299); } catch (t) { i.put(e_299); info("hasBlendModes - ignoring XObject: \"".concat(t, "\".")); continue; } } if (!(e_299 instanceof BaseStream)) continue; e_299.dict.objId && i.put(e_299.dict.objId); var t_226 = e_299.dict.get("Resources"); if (t_226 instanceof Dict && (!t_226.objId || !i.has(t_226.objId))) { a.push(t_226); t_226.objId && i.put(t_226.objId); } } } for (var _o = 0, i_204 = i; _o < i_204.length; _o++) { var e_300 = i_204[_o]; t.put(e_300); } return !1; }; PartialEvaluator.prototype.fetchBuiltInCMap = function (e) { return tslib_1.__awaiter(this, void 0, void 0, function () { var t, i, t_227, a_176, _b; var _j; return tslib_1.__generator(this, function (_k) { switch (_k.label) { case 0: t = this.builtInCMapCache.get(e); if (t) return [2 /*return*/, t]; if (!(null !== this.options.cMapUrl)) return [3 /*break*/, 3]; t_227 = "".concat(this.options.cMapUrl).concat(e, ".bcmap"); return [4 /*yield*/, fetch(t_227)]; case 1: a_176 = _k.sent(); if (!a_176.ok) throw new Error("fetchBuiltInCMap: failed to fetch file \"".concat(t_227, "\" with \"").concat(a_176.statusText, "\".")); _j = {}; _b = Uint8Array.bind; return [4 /*yield*/, a_176.arrayBuffer()]; case 2: i = (_j.cMapData = new (_b.apply(Uint8Array, [void 0, _k.sent()]))(), _j.compressionType = mA.BINARY, _j); return [3 /*break*/, 5]; case 3: return [4 /*yield*/, this.handler.sendWithPromise("FetchBuiltInCMap", { name: e })]; case 4: i = _k.sent(); _k.label = 5; case 5: i.compressionType !== mA.NONE && this.builtInCMapCache.set(e, i); return [2 /*return*/, i]; } }); }); }; PartialEvaluator.prototype.fetchStandardFontData = function (e) { return tslib_1.__awaiter(this, void 0, void 0, function () { var t, i, a, e_302, t_228, _b, _j, e_301; return tslib_1.__generator(this, function (_k) { switch (_k.label) { case 0: t = this.standardFontDataCache.get(e); if (t) return [2 /*return*/, new Stream(t)]; if (this.options.useSystemFonts && "Symbol" !== e && "ZapfDingbats" !== e) return [2 /*return*/, null]; i = Wi()[e]; if (!(null !== this.options.standardFontDataUrl)) return [3 /*break*/, 5]; e_302 = "".concat(this.options.standardFontDataUrl).concat(i); return [4 /*yield*/, fetch(e_302)]; case 1: t_228 = _k.sent(); if (!t_228.ok) return [3 /*break*/, 3]; _j = Uint8Array.bind; return [4 /*yield*/, t_228.arrayBuffer()]; case 2: _b = a = new (_j.apply(Uint8Array, [void 0, _k.sent()]))(); return [3 /*break*/, 4]; case 3: _b = warn("fetchStandardFontData: failed to fetch file \"".concat(e_302, "\" with \"").concat(t_228.statusText, "\".")); _k.label = 4; case 4: _b; return [3 /*break*/, 8]; case 5: _k.trys.push([5, 7, , 8]); return [4 /*yield*/, this.handler.sendWithPromise("FetchStandardFontData", { filename: i })]; case 6: a = _k.sent(); return [3 /*break*/, 8]; case 7: e_301 = _k.sent(); warn("fetchStandardFontData: failed to fetch file \"".concat(i, "\" with \"").concat(e_301, "\".")); return [3 /*break*/, 8]; case 8: if (!a) return [2 /*return*/, null]; this.standardFontDataCache.set(e, a); return [2 /*return*/, new Stream(a)]; } }); }); }; PartialEvaluator.prototype.buildFormXObject = function (e, t, i, a, s, r, n) { return tslib_1.__awaiter(this, void 0, void 0, function () { var o, g, c, h, l, _b, C, t_229, i_205, a_177, _j, Q; return tslib_1.__generator(this, function (_k) { switch (_k.label) { case 0: o = t.dict, g = lookupMatrix(o.getArray("Matrix"), null), c = lookupNormalRect(o.getArray("BBox"), null); _b = o.has("OC"); if (!_b) return [3 /*break*/, 2]; return [4 /*yield*/, this.parseMarkedContentProps(o.get("OC"), e)]; case 1: _b = (h = _k.sent()); _k.label = 2; case 2: _b; void 0 !== h && a.addOp(He, ["OC", h]); C = o.get("Group"); if (!C) return [3 /*break*/, 6]; l = { matrix: g, bbox: c, smask: i, isolated: !1, knockout: !1 }; t_229 = null; if (!isName(C.get("S"), "Transparency")) return [3 /*break*/, 5]; l.isolated = C.get("I") || !1; l.knockout = C.get("K") || !1; if (!C.has("CS")) return [3 /*break*/, 5]; i_205 = C.getRaw("CS"), a_177 = ColorSpace.getCached(i_205, this.xref, n); _j = a_177; if (_j) return [3 /*break*/, 4]; return [4 /*yield*/, this.parseColorSpace({ cs: i_205, resources: e, localColorSpaceCache: n })]; case 3: _j = (_k.sent()); _k.label = 4; case 4: t_229 = _j; _k.label = 5; case 5: if (i === null || i === void 0 ? void 0 : i.backdrop) { t_229 || (t_229 = ColorSpace.singletons.rgb); i.backdrop = t_229.getRgb(i.backdrop, 0); } a.addOp(Oe, [l]); _k.label = 6; case 6: Q = C ? [g, null] : [g, c]; a.addOp(Te, Q); return [4 /*yield*/, this.getOperatorList({ stream: t, task: s, resources: o.get("Resources") || e, operatorList: a, initialState: r })]; case 7: _k.sent(); a.addOp(qe, []); C && a.addOp(Pe, [l]); void 0 !== h && a.addOp(Ye, []); return [2 /*return*/]; } }); }); }; PartialEvaluator.prototype._sendImgData = function (e, t, i) { if (i === void 0) { i = !1; } var a = t ? [t.bitmap || t.data.buffer] : null; return this.parsingType3Font || i ? this.handler.send("commonobj", [e, "Image", t], a) : this.handler.send("obj", [e, this.pageIndex, "Image", t], a); }; PartialEvaluator.prototype.buildPaintImageXObject = function (_b) { var e = _b.resources, t = _b.image, _j = _b.isInline, i = _j === void 0 ? !1 : _j, a = _b.operatorList, s = _b.cacheKey, r = _b.localImageCache, n = _b.localColorSpaceCache; return tslib_1.__awaiter(this, void 0, void 0, function () { var o, g, c, h, l, e_304, C, _k, Q, E, e_305, i_206, n_66, l_15, e_306, e_307, u_6, e_308, s_126, e_303, t_230, u, d, e_309, e_310; var _this = this; return tslib_1.__generator(this, function (_l) { switch (_l.label) { case 0: o = t.dict, g = o.objId, c = o.get("W", "Width"), h = o.get("H", "Height"); if (!c || "number" != typeof c || !h || "number" != typeof h) { warn("Image dimensions are missing, or not numbers."); return [2 /*return*/]; } l = this.options.maxImageSize; if (-1 !== l && c * h > l) { e_304 = "Image exceeded maximum allowed size and was removed."; if (this.options.ignoreErrors) { warn(e_304); return [2 /*return*/]; } throw new Error(e_304); } _k = o.has("OC"); if (!_k) return [3 /*break*/, 2]; return [4 /*yield*/, this.parseMarkedContentProps(o.get("OC"), e)]; case 1: _k = (C = _l.sent()); _l.label = 2; case 2: _k; if (!(o.get("IM", "ImageMask") || !1)) return [3 /*break*/, 4]; e_305 = o.get("I", "Interpolate"), i_206 = c + 7 >> 3, n_66 = t.getBytes(i_206 * h), l_15 = o.getArray("D", "Decode"); if (this.parsingType3Font) { Q = PDFImage.createRawMask({ imgArray: n_66, width: c, height: h, imageIsFromDecodeStream: t instanceof DecodeStream, inverseDecode: (l_15 === null || l_15 === void 0 ? void 0 : l_15[0]) > 0, interpolate: e_305 }); Q.cached = !!s; E = [Q]; a.addImageOps(je, E, C); if (s) { e_306 = { fn: je, args: E, optionalContent: C }; r.set(s, g, e_306); g && this._regionalImageCache.set(null, g, e_306); } return [2 /*return*/]; } return [4 /*yield*/, PDFImage.createMask({ imgArray: n_66, width: c, height: h, imageIsFromDecodeStream: t instanceof DecodeStream, inverseDecode: (l_15 === null || l_15 === void 0 ? void 0 : l_15[0]) > 0, interpolate: e_305, isOffscreenCanvasSupported: this.options.isOffscreenCanvasSupported })]; case 3: Q = _l.sent(); if (Q.isSingleOpaquePixel) { a.addImageOps(et, [], C); if (s) { e_307 = { fn: et, args: [], optionalContent: C }; r.set(s, g, e_307); g && this._regionalImageCache.set(null, g, e_307); } return [2 /*return*/]; } u_6 = "mask_".concat(this.idFactory.createObjId()); a.addDependency(u_6); Q.dataLen = Q.bitmap ? Q.width * Q.height * 4 : Q.data.length; this._sendImgData(u_6, Q); E = [{ data: u_6, width: Q.width, height: Q.height, interpolate: Q.interpolate, count: 1 }]; a.addImageOps(je, E, C); if (s) { e_308 = { fn: je, args: E, optionalContent: C }; r.set(s, g, e_308); g && this._regionalImageCache.set(null, g, e_308); } return [2 /*return*/]; case 4: if (!(i && c + h < 200 && !o.has("SMask") && !o.has("Mask"))) return [3 /*break*/, 9]; _l.label = 5; case 5: _l.trys.push([5, 7, , 8]); s_126 = new PDFImage({ xref: this.xref, res: e, image: t, isInline: i, pdfFunctionFactory: this._pdfFunctionFactory, localColorSpaceCache: n }); return [4 /*yield*/, s_126.createImageData(!0, !1)]; case 6: Q = _l.sent(); a.isOffscreenCanvasSupported = this.options.isOffscreenCanvasSupported; a.addImageOps(ze, [Q], C); return [3 /*break*/, 8]; case 7: e_303 = _l.sent(); t_230 = "Unable to decode inline image: \"".concat(e_303, "\"."); if (!this.options.ignoreErrors) throw new Error(t_230); warn(t_230); return [3 /*break*/, 8]; case 8: return [2 /*return*/]; case 9: u = "img_".concat(this.idFactory.createObjId()), d = !1; if (this.parsingType3Font) u = "".concat(this.idFactory.getDocId(), "_type3_").concat(u); else if (s && g) { d = this.globalImageCache.shouldCache(g, this.pageIndex); if (d) { assert(!i, "Cannot cache an inline image globally."); u = "".concat(this.idFactory.getDocId(), "_").concat(u); } } a.addDependency(u); E = [u, c, h]; a.addImageOps(Ve, E, C); if (!d) return [3 /*break*/, 11]; if (this.globalImageCache.hasDecodeFailed(g)) { this.globalImageCache.setData(g, { objId: u, fn: Ve, args: E, optionalContent: C, byteSize: 0 }); this._sendImgData(u, null, d); return [2 /*return*/]; } if (!(c * h > 25e4 || o.has("SMask") || o.has("Mask"))) return [3 /*break*/, 11]; return [4 /*yield*/, this.handler.sendWithPromise("commonobj", [u, "CopyLocalImage", { imageRef: g }])]; case 10: e_309 = _l.sent(); if (e_309) { this.globalImageCache.setData(g, { objId: u, fn: Ve, args: E, optionalContent: C, byteSize: 0 }); this.globalImageCache.addByteSize(g, e_309); return [2 /*return*/]; } _l.label = 11; case 11: PDFImage.buildImage({ xref: this.xref, res: e, image: t, isInline: i, pdfFunctionFactory: this._pdfFunctionFactory, localColorSpaceCache: n }).then((function (e) { return tslib_1.__awaiter(_this, void 0, void 0, function () { return tslib_1.__generator(this, function (_b) { switch (_b.label) { case 0: return [4 /*yield*/, e.createImageData(!1, this.options.isOffscreenCanvasSupported)]; case 1: Q = _b.sent(); Q.dataLen = Q.bitmap ? Q.width * Q.height * 4 : Q.data.length; Q.ref = g; d && this.globalImageCache.addByteSize(g, Q.dataLen); return [2 /*return*/, this._sendImgData(u, Q, d)]; } }); }); })).catch((function (e) { warn("Unable to decode image \"".concat(u, "\": \"").concat(e, "\".")); g && _this.globalImageCache.addDecodeFailed(g); return _this._sendImgData(u, null, d); })); if (s) { e_310 = { fn: Ve, args: E, optionalContent: C }; r.set(s, g, e_310); if (g) { this._regionalImageCache.set(null, g, e_310); d && this.globalImageCache.setData(g, { objId: u, fn: Ve, args: E, optionalContent: C, byteSize: 0 }); } } return [2 /*return*/]; } }); }); }; PartialEvaluator.prototype.handleSMask = function (e, t, i, a, s, r) { var n = e.get("G"), o = { subtype: e.get("S").name, backdrop: e.get("BC") }, g = e.get("TR"); if (isPDFFunction(g)) { var e_311 = this._pdfFunctionFactory.create(g), t_231 = new Uint8Array(256), i_207 = new Float32Array(1); for (var a_178 = 0; a_178 < 256; a_178++) { i_207[0] = a_178 / 255; e_311(i_207, 0, i_207, 0); t_231[a_178] = 255 * i_207[0] | 0; } o.transferMap = t_231; } return this.buildFormXObject(t, n, o, i, a, s.state.clone(), r); }; PartialEvaluator.prototype.handleTransferFunction = function (e) { var t; if (Array.isArray(e)) t = e; else { if (!isPDFFunction(e)) return null; t = [e]; } var i = []; var a = 0, s = 0; for (var _b = 0, t_232 = t; _b < t_232.length; _b++) { var e_312 = t_232[_b]; var t_233 = this.xref.fetchIfRef(e_312); a++; if (isName(t_233, "Identity")) { i.push(null); continue; } if (!isPDFFunction(t_233)) return null; var r_93 = this._pdfFunctionFactory.create(t_233), n_67 = new Uint8Array(256), o_44 = new Float32Array(1); for (var e_313 = 0; e_313 < 256; e_313++) { o_44[0] = e_313 / 255; r_93(o_44, 0, o_44, 0); n_67[e_313] = 255 * o_44[0] | 0; } i.push(n_67); s++; } return 1 !== a && 4 !== a || 0 === s ? null : i; }; PartialEvaluator.prototype.handleTilingType = function (e, t, i, a, s, r, n, o) { var _this = this; var g = new OperatorList, c = Dict.merge({ xref: this.xref, dictArray: [s.get("Resources"), i] }); return this.getOperatorList({ stream: a, task: n, resources: c, operatorList: g }).then((function () { var i = g.getIR(), a = getTilingPatternIR(i, s, t); r.addDependencies(g.dependencies); r.addOp(e, a); s.objId && o.set(null, s.objId, { operatorListIR: i, dict: s }); })).catch((function (e) { if (!(e instanceof AbortException)) { if (!_this.options.ignoreErrors) throw e; warn("handleTilingType - ignoring pattern: \"".concat(e, "\".")); } })); }; PartialEvaluator.prototype.handleSetFont = function (e, t, i, a, s, r, n, o) { if (n === void 0) { n = null; } if (o === void 0) { o = null; } return tslib_1.__awaiter(this, void 0, void 0, function () { var g, c, e_314; return tslib_1.__generator(this, function (_b) { switch (_b.label) { case 0: g = (t === null || t === void 0 ? void 0 : t[0]) instanceof Name ? t[0].name : null; return [4 /*yield*/, this.loadFont(g, i, e, n, o)]; case 1: c = _b.sent(); if (!c.font.isType3Font) return [3 /*break*/, 5]; _b.label = 2; case 2: _b.trys.push([2, 4, , 5]); return [4 /*yield*/, c.loadType3Data(this, e, s)]; case 3: _b.sent(); a.addDependencies(c.type3Dependencies); return [3 /*break*/, 5]; case 4: e_314 = _b.sent(); c = new TranslatedFont({ loadedName: "g_font_error", font: new ErrorFont("Type3 font load error: ".concat(e_314)), dict: c.font, evaluatorOptions: this.options }); return [3 /*break*/, 5]; case 5: r.font = c.font; c.send(this.handler); return [2 /*return*/, c.loadedName]; } }); }); }; PartialEvaluator.prototype.handleText = function (e, t) { var i = t.font, a = i.charsToGlyphs(e); if (i.data) { (!!(t.textRenderingMode & w) || "Pattern" === t.fillColorSpace.name || i.disableFontFace || this.options.disableFontFace) && PartialEvaluator.buildFontPaths(i, a, this.handler, this.options); } return a; }; PartialEvaluator.prototype.ensureStateFont = function (e) { if (e.font) return; var t = new FormatError("Missing setFont (Tf) operator before text rendering operator."); if (!this.options.ignoreErrors) throw t; warn("ensureStateFont: \"".concat(t, "\".")); }; PartialEvaluator.prototype.setGState = function (_b) { var e = _b.resources, t = _b.gState, i = _b.operatorList, a = _b.cacheKey, s = _b.task, r = _b.stateManager, n = _b.localGStateCache, o = _b.localColorSpaceCache; return tslib_1.__awaiter(this, void 0, void 0, function () { var g, c, h, l, _loop_1, this_1, _j, _k, a_179; var _this = this; return tslib_1.__generator(this, function (_l) { switch (_l.label) { case 0: g = t.objId; c = !0; h = []; l = Promise.resolve(); _loop_1 = function (a_179) { var n_68 = t.get(a_179); switch (a_179) { case "Type": break; case "LW": case "LC": case "LJ": case "ML": case "D": case "RI": case "FL": case "CA": case "ca": h.push([a_179, n_68]); break; case "Font": c = !1; l = l.then((function () { return _this.handleSetFont(e, null, n_68[0], i, s, r.state).then((function (e) { i.addDependency(e); h.push([a_179, [e, n_68[1]]]); })); })); break; case "BM": h.push([a_179, normalizeBlendMode(n_68)]); break; case "SMask": if (isName(n_68, "None")) { h.push([a_179, !1]); break; } if (n_68 instanceof Dict) { c = !1; l = l.then((function () { return _this.handleSMask(n_68, e, i, s, r, o); })); h.push([a_179, !0]); } else warn("Unsupported SMask type"); break; case "TR": var t_234 = this_1.handleTransferFunction(n_68); h.push([a_179, t_234]); 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": info("graphic state operator " + a_179); break; default: info("Unknown graphic state operator " + a_179); } }; this_1 = this; for (_j = 0, _k = t.getKeys(); _j < _k.length; _j++) { a_179 = _k[_j]; _loop_1(a_179); } return [4 /*yield*/, l]; case 1: _l.sent(); h.length > 0 && i.addOp(NA, [h]); c && n.set(a, g, h); return [2 /*return*/]; } }); }); }; PartialEvaluator.prototype.loadFont = function (e, t, i, a, s) { var _this = this; var _b; if (a === void 0) { a = null; } if (s === void 0) { s = null; } var errorFont = function () { return tslib_1.__awaiter(_this, void 0, void 0, function () { return tslib_1.__generator(this, function (_b) { return [2 /*return*/, new TranslatedFont({ loadedName: "g_font_error", font: new ErrorFont("Font \"".concat(e, "\" is not available.")), dict: t, evaluatorOptions: this.options })]; }); }); }; var r; if (t) t instanceof Ref && (r = t); else { var t_235 = i.get("Font"); t_235 && (r = t_235.getRaw(e)); } if (r) { if ((_b = this.type3FontRefs) === null || _b === void 0 ? void 0 : _b.has(r)) return errorFont(); if (this.fontCache.has(r)) return this.fontCache.get(r); try { t = this.xref.fetchIfRef(r); } catch (e) { warn("loadFont - lookup failed: \"".concat(e, "\".")); } } if (!(t instanceof Dict)) { if (!this.options.ignoreErrors && !this.parsingType3Font) { warn("Font \"".concat(e, "\" is not available.")); return errorFont(); } warn("Font \"".concat(e, "\" is not available -- attempting to fallback to a default font.")); t = a || PartialEvaluator.fallbackFontDict; } if (t.cacheKey && this.fontCache.has(t.cacheKey)) return this.fontCache.get(t.cacheKey); var _j = Promise.withResolvers(), n = _j.promise, o = _j.resolve; var g; try { g = this.preEvaluateFont(t); g.cssFontInfo = s; } catch (e) { warn("loadFont - preEvaluateFont failed: \"".concat(e, "\".")); return errorFont(); } var c = g.descriptor, h = g.hash, l = r instanceof Ref; var C; if (h && c instanceof Dict) { var e_315 = c.fontAliases || (c.fontAliases = Object.create(null)); if (e_315[h]) { var t_236 = e_315[h].aliasRef; if (l && t_236 && this.fontCache.has(t_236)) { this.fontCache.putAlias(r, t_236); return this.fontCache.get(r); } } else e_315[h] = { fontID: this.idFactory.createFontId() }; l && (e_315[h].aliasRef = r); C = e_315[h].fontID; } else C = this.idFactory.createFontId(); assert(C === null || C === void 0 ? void 0 : C.startsWith("f"), 'The "fontID" must be (correctly) defined.'); if (l) this.fontCache.put(r, n); else { t.cacheKey = "cacheKey_".concat(C); this.fontCache.put(t.cacheKey, n); } t.loadedName = "".concat(this.idFactory.getDocId(), "_").concat(C); this.translateFont(g).then((function (e) { o(new TranslatedFont({ loadedName: t.loadedName, font: e, dict: t, evaluatorOptions: _this.options })); })).catch((function (e) { warn("loadFont - translateFont failed: \"".concat(e, "\".")); o(new TranslatedFont({ loadedName: t.loadedName, font: new ErrorFont(e instanceof Error ? e.message : e), dict: t, evaluatorOptions: _this.options })); })); return n; }; PartialEvaluator.prototype.buildPath = function (e, t, i, a) { var _b; if (a === void 0) { a = !1; } var s = e.length - 1; i || (i = []); if (s < 0 || e.fnArray[s] !== tt) { if (a) { warn("Encountered path operator \"".concat(t, "\" inside of a text object.")); e.addOp(GA, null); } var s_127; switch (t) { case KA: var e_316 = i[0] + i[2], t_237 = i[1] + i[3]; s_127 = [Math.min(i[0], e_316), Math.min(i[1], t_237), Math.max(i[0], e_316), Math.max(i[1], t_237)]; break; case UA: case LA: s_127 = [i[0], i[1], i[0], i[1]]; break; default: s_127 = [1 / 0, 1 / 0, -1 / 0, -1 / 0]; } e.addOp(tt, [[t], i, s_127]); a && e.addOp(xA, null); } else { var a_180 = e.argsArray[s]; a_180[0].push(t); (_b = a_180[1]).push.apply(_b, i); var r_94 = a_180[2]; switch (t) { case KA: var e_317 = i[0] + i[2], t_238 = i[1] + i[3]; r_94[0] = Math.min(r_94[0], i[0], e_317); r_94[1] = Math.min(r_94[1], i[1], t_238); r_94[2] = Math.max(r_94[2], i[0], e_317); r_94[3] = Math.max(r_94[3], i[1], t_238); break; case UA: case LA: r_94[0] = Math.min(r_94[0], i[0]); r_94[1] = Math.min(r_94[1], i[1]); r_94[2] = Math.max(r_94[2], i[0]); r_94[3] = Math.max(r_94[3], i[1]); } } }; PartialEvaluator.prototype.parseColorSpace = function (_b) { var _this = this; var e = _b.cs, t = _b.resources, i = _b.localColorSpaceCache; return ColorSpace.parseAsync({ cs: e, xref: this.xref, resources: t, pdfFunctionFactory: this._pdfFunctionFactory, localColorSpaceCache: i }).catch((function (e) { if (e instanceof AbortException) return null; if (_this.options.ignoreErrors) { warn("parseColorSpace - ignoring ColorSpace: \"".concat(e, "\".")); return null; } throw e; })); }; PartialEvaluator.prototype.parseShading = function (_b) { var e = _b.shading, t = _b.resources, i = _b.localColorSpaceCache, a = _b.localShadingPatternCache; var s, r = a.get(e); if (r) return r; try { s = Pattern.parseShading(e, this.xref, t, this._pdfFunctionFactory, i).getIR(); } catch (t) { if (t instanceof AbortException) return null; if (this.options.ignoreErrors) { warn("parseShading - ignoring shading: \"".concat(t, "\".")); a.set(e, null); return null; } throw t; } r = "pattern_".concat(this.idFactory.createObjId()); this.parsingType3Font && (r = "".concat(this.idFactory.getDocId(), "_type3_").concat(r)); a.set(e, r); this.parsingType3Font ? this.handler.send("commonobj", [r, "Pattern", s]) : this.handler.send("obj", [r, this.pageIndex, "Pattern", s]); return r; }; PartialEvaluator.prototype.handleColorN = function (e, t, i, a, s, r, n, o, g, c) { var h = i.pop(); if (h instanceof Name) { var l_16 = s.getRaw(h.name), C_14 = l_16 instanceof Ref && g.getByRef(l_16); if (C_14) try { var s_128 = a.base ? a.base.getRgb(i, 0) : null, r_95 = getTilingPatternIR(C_14.operatorListIR, C_14.dict, s_128); e.addOp(t, r_95); return; } catch (_b) { } var Q_15 = this.xref.fetchIfRef(l_16); if (Q_15) { var s_129 = Q_15 instanceof BaseStream ? Q_15.dict : Q_15, h_15 = s_129.get("PatternType"); if (h_15 === Fs) { var o_45 = a.base ? a.base.getRgb(i, 0) : null; return this.handleTilingType(t, o_45, r, Q_15, s_129, e, n, g); } if (h_15 === Ss) { var i_208 = s_129.get("Shading"), a_181 = this.parseShading({ shading: i_208, resources: r, localColorSpaceCache: o, localShadingPatternCache: c }); if (a_181) { var i_209 = lookupMatrix(s_129.getArray("Matrix"), null); e.addOp(t, ["Shading", a_181, i_209]); } return; } throw new FormatError("Unknown PatternType: ".concat(h_15)); } } throw new FormatError("Unknown PatternName: ".concat(h)); }; PartialEvaluator.prototype._parseVisibilityExpression = function (e, t, i) { if (++t > 10) { warn("Visibility expression is too deeply nested"); return; } var a = e.length, s = this.xref.fetchIfRef(e[0]); if (!(a < 2) && s instanceof Name) { switch (s.name) { case "And": case "Or": case "Not": i.push(s.name); break; default: warn("Invalid operator ".concat(s.name, " in visibility expression")); return; } for (var s_130 = 1; s_130 < a; s_130++) { var a_182 = e[s_130], r_96 = this.xref.fetchIfRef(a_182); if (Array.isArray(r_96)) { var e_318 = []; i.push(e_318); this._parseVisibilityExpression(r_96, t, e_318); } else a_182 instanceof Ref && i.push(a_182.toString()); } } else warn("Invalid visibility expression"); }; PartialEvaluator.prototype.parseMarkedContentProps = function (e, t) { var _b; return tslib_1.__awaiter(this, void 0, void 0, function () { var i, a, e_319, t_240, t_241, e_320, _j, t_239, i_210; return tslib_1.__generator(this, function (_k) { if (e instanceof Name) { i = t.get("Properties").get(e.name); } else { if (!(e instanceof Dict)) throw new FormatError("Optional content properties malformed."); i = e; } a = (_b = i.get("Type")) === null || _b === void 0 ? void 0 : _b.name; if ("OCG" === a) return [2 /*return*/, { type: a, id: i.objId }]; if ("OCMD" === a) { e_319 = i.get("VE"); if (Array.isArray(e_319)) { t_240 = []; this._parseVisibilityExpression(e_319, 0, t_240); if (t_240.length > 0) return [2 /*return*/, { type: "OCMD", expression: t_240 }]; } t_241 = i.get("OCGs"); if (Array.isArray(t_241) || t_241 instanceof Dict) { e_320 = []; if (Array.isArray(t_241)) for (_j = 0, t_239 = t_241; _j < t_239.length; _j++) { i_210 = t_239[_j]; e_320.push(i_210.toString()); } else e_320.push(t_241.objId); return [2 /*return*/, { type: a, ids: e_320, policy: i.get("P") instanceof Name ? i.get("P").name : null, expression: null }]; } if (t_241 instanceof Ref) return [2 /*return*/, { type: a, id: t_241.toString() }]; } return [2 /*return*/, null]; }); }); }; PartialEvaluator.prototype.getOperatorList = function (_b) { var _this = this; var e = _b.stream, t = _b.task, i = _b.resources, a = _b.operatorList, _j = _b.initialState, s = _j === void 0 ? null : _j, _k = _b.fallbackFontDict, r = _k === void 0 ? null : _k; i || (i = Dict.empty); s || (s = new EvalState); if (!a) throw new Error('getOperatorList: missing "operatorList" parameter'); var n = this, o = this.xref; var g = !1; var c = new LocalImageCache, h = new LocalColorSpaceCache, l = new LocalGStateCache, C = new LocalTilingPatternCache, Q = new Map, E = i.get("XObject") || Dict.empty, u = i.get("Pattern") || Dict.empty, d = new StateManager(s), f = new EvaluatorPreprocessor(e, o, d), p = new TimeSlotManager; function closePendingRestoreOPS(e) { for (var e_321 = 0, t_242 = f.savedStatesDepth; e_321 < t_242; e_321++) a.addOp(xA, []); } return new Promise((function promiseBody(e, s) { var next = function (t) { Promise.all([t, a.ready]).then((function () { try { promiseBody(e, s); } catch (e) { s(e); } }), s); }; t.ensureNotTerminated(); p.reset(); var m = {}; var y, w, b, D, F, S; for (; !(y = p.check());) { m.args = null; if (!f.read(m)) break; var e_322 = m.args, s_131 = m.fn; switch (0 | s_131) { case Me: S = e_322[0] instanceof Name; F = e_322[0].name; if (S) { var t_243 = c.getByName(F); if (t_243) { a.addImageOps(t_243.fn, t_243.args, t_243.optionalContent); incrementCachedImageMaskCount(t_243); e_322 = null; continue; } } next(new Promise((function (e, s) { if (!S) throw new FormatError("XObject must be referred to by name."); var r = E.getRaw(F); if (r instanceof Ref) { var t_244 = c.getByRef(r) || n._regionalImageCache.getByRef(r); if (t_244) { a.addImageOps(t_244.fn, t_244.args, t_244.optionalContent); incrementCachedImageMaskCount(t_244); e(); return; } var i_211 = n.globalImageCache.getData(r, n.pageIndex); if (i_211) { a.addDependency(i_211.objId); a.addImageOps(i_211.fn, i_211.args, i_211.optionalContent); e(); return; } r = o.fetch(r); } if (!(r instanceof BaseStream)) throw new FormatError("XObject should be a stream"); var g = r.dict.get("Subtype"); if (!(g instanceof Name)) throw new FormatError("XObject should have a Name subtype"); if ("Form" !== g.name) if ("Image" !== g.name) { if ("PS" !== g.name) throw new FormatError("Unhandled XObject subtype ".concat(g.name)); info("Ignored XObject subtype PS"); e(); } else n.buildPaintImageXObject({ resources: i, image: r, operatorList: a, cacheKey: F, localImageCache: c, localColorSpaceCache: h }).then(e, s); else { d.save(); n.buildFormXObject(i, r, null, a, t, d.state.clone(), h).then((function () { d.restore(); e(); }), s); } })).catch((function (e) { if (!(e instanceof AbortException)) { if (!n.options.ignoreErrors) throw e; warn("getOperatorList - ignoring XObject: \"".concat(e, "\".")); } }))); return; case se: var k = e_322[1]; next(n.handleSetFont(i, e_322, null, a, t, d.state, r).then((function (e) { a.addDependency(e); a.addOp(se, [e, k]); }))); return; case $A: g = !0; break; case Ae: g = !1; break; case xe: var R = e_322[0].cacheKey; if (R) { var t_245 = c.getByName(R); if (t_245) { a.addImageOps(t_245.fn, t_245.args, t_245.optionalContent); incrementCachedImageMaskCount(t_245); e_322 = null; continue; } } next(n.buildPaintImageXObject({ resources: i, image: e_322[0], isInline: !0, operatorList: a, cacheKey: R, localImageCache: c, localColorSpaceCache: h })); return; case he: if (!d.state.font) { n.ensureStateFont(d.state); continue; } e_322[0] = n.handleText(e_322[0], d.state); break; case le: if (!d.state.font) { n.ensureStateFont(d.state); continue; } var N = [], G = d.state; for (var _b = 0, _j = e_322[0]; _b < _j.length; _b++) { var t_246 = _j[_b]; "string" == typeof t_246 ? N.push.apply(N, n.handleText(t_246, G)) : "number" == typeof t_246 && N.push(t_246); } e_322[0] = N; s_131 = he; break; case Ce: if (!d.state.font) { n.ensureStateFont(d.state); continue; } a.addOp(ce); e_322[0] = n.handleText(e_322[0], d.state); s_131 = he; break; case Be: if (!d.state.font) { n.ensureStateFont(d.state); continue; } a.addOp(ce); a.addOp(te, [e_322.shift()]); a.addOp(ee, [e_322.shift()]); e_322[0] = n.handleText(e_322[0], d.state); s_131 = he; break; case re: d.state.textRenderingMode = e_322[0]; break; case de: { var t_247 = ColorSpace.getCached(e_322[0], o, h); if (t_247) { d.state.fillColorSpace = t_247; continue; } next(n.parseColorSpace({ cs: e_322[0], resources: i, localColorSpaceCache: h }).then((function (e) { e && (d.state.fillColorSpace = e); }))); return; } case ue: { var t_248 = ColorSpace.getCached(e_322[0], o, h); if (t_248) { d.state.strokeColorSpace = t_248; continue; } next(n.parseColorSpace({ cs: e_322[0], resources: i, localColorSpaceCache: h }).then((function (e) { e && (d.state.strokeColorSpace = e); }))); return; } case me: D = d.state.fillColorSpace; e_322 = D.getRgb(e_322, 0); s_131 = Fe; break; case fe: D = d.state.strokeColorSpace; e_322 = D.getRgb(e_322, 0); s_131 = De; break; case be: d.state.fillColorSpace = ColorSpace.singletons.gray; e_322 = ColorSpace.singletons.gray.getRgb(e_322, 0); s_131 = Fe; break; case we: d.state.strokeColorSpace = ColorSpace.singletons.gray; e_322 = ColorSpace.singletons.gray.getRgb(e_322, 0); s_131 = De; break; case ke: d.state.fillColorSpace = ColorSpace.singletons.cmyk; e_322 = ColorSpace.singletons.cmyk.getRgb(e_322, 0); s_131 = Fe; break; case Se: d.state.strokeColorSpace = ColorSpace.singletons.cmyk; e_322 = ColorSpace.singletons.cmyk.getRgb(e_322, 0); s_131 = De; break; case Fe: d.state.fillColorSpace = ColorSpace.singletons.rgb; e_322 = ColorSpace.singletons.rgb.getRgb(e_322, 0); break; case De: d.state.strokeColorSpace = ColorSpace.singletons.rgb; e_322 = ColorSpace.singletons.rgb.getRgb(e_322, 0); break; case ye: D = d.state.fillColorSpace; if ("Pattern" === D.name) { next(n.handleColorN(a, ye, e_322, D, u, i, t, h, C, Q)); return; } e_322 = D.getRgb(e_322, 0); s_131 = Fe; break; case pe: D = d.state.strokeColorSpace; if ("Pattern" === D.name) { next(n.handleColorN(a, pe, e_322, D, u, i, t, h, C, Q)); return; } e_322 = D.getRgb(e_322, 0); s_131 = De; break; case Re: var x = i.get("Shading"); if (!x) throw new FormatError("No shading resource found"); var M = x.get(e_322[0].name); if (!M) throw new FormatError("No shading object found"); var f_7 = n.parseShading({ shading: M, resources: i, localColorSpaceCache: h, localShadingPatternCache: Q }); if (!f_7) continue; e_322 = [f_7]; s_131 = Re; break; case NA: S = e_322[0] instanceof Name; F = e_322[0].name; if (S) { var t_249 = l.getByName(F); if (t_249) { t_249.length > 0 && a.addOp(NA, [t_249]); e_322 = null; continue; } } next(new Promise((function (e, s) { if (!S) throw new FormatError("GState must be referred to by name."); var r = i.get("ExtGState"); if (!(r instanceof Dict)) throw new FormatError("ExtGState should be a dictionary."); var o = r.get(F); if (!(o instanceof Dict)) throw new FormatError("GState should be a dictionary."); n.setGState({ resources: i, gState: o, operatorList: a, cacheKey: F, task: t, stateManager: d, localGStateCache: l, localColorSpaceCache: h }).then(e, s); })).catch((function (e) { if (!(e instanceof AbortException)) { if (!n.options.ignoreErrors) throw e; warn("getOperatorList - ignoring ExtGState: \"".concat(e, "\".")); } }))); return; case UA: case LA: case JA: case HA: case YA: case vA: case KA: n.buildPath(a, s_131, e_322, g); continue; case Ue: case Le: case ve: case Ke: continue; case He: if (!(e_322[0] instanceof Name)) { warn("Expected name for beginMarkedContentProps arg0=".concat(e_322[0])); a.addOp(He, ["OC", null]); continue; } if ("OC" === e_322[0].name) { next(n.parseMarkedContentProps(e_322[1], i).then((function (e) { a.addOp(He, ["OC", e]); })).catch((function (e) { if (!(e instanceof AbortException)) { if (!n.options.ignoreErrors) throw e; warn("getOperatorList - ignoring beginMarkedContentProps: \"".concat(e, "\".")); a.addOp(He, ["OC", null]); } }))); return; } e_322 = [e_322[0].name, e_322[1] instanceof Dict ? e_322[1].get("MCID") : null]; break; default: if (null !== e_322) { for (w = 0, b = e_322.length; w < b && !(e_322[w] instanceof Dict); w++) ; if (w < b) { warn("getOperatorList - ignoring operator: " + s_131); continue; } } } a.addOp(s_131, e_322); } if (y) next(ks); else { closePendingRestoreOPS(); e(); } })).catch((function (e) { if (!(e instanceof AbortException)) { if (!_this.options.ignoreErrors) throw e; warn("getOperatorList - ignoring errors during \"".concat(t.name, "\" task: \"").concat(e, "\".")); closePendingRestoreOPS(); } })); }; PartialEvaluator.prototype.getTextContent = function (_b) { var _this = this; var e = _b.stream, t = _b.task, s = _b.resources, _j = _b.stateManager, r = _j === void 0 ? null : _j, _k = _b.includeMarkedContent, n = _k === void 0 ? !1 : _k, o = _b.sink, _l = _b.seenStyles, g = _l === void 0 ? new Set : _l, c = _b.viewBox, _m = _b.lang, h = _m === void 0 ? null : _m, _o = _b.markedContentData, l = _o === void 0 ? null : _o, _p = _b.disableNormalization, C = _p === void 0 ? !1 : _p, _q = _b.keepWhiteSpace, Q = _q === void 0 ? !1 : _q; s || (s = Dict.empty); r || (r = new StateManager(new TextState)); n && (l || (l = { level: 0 })); var E = { items: [], styles: Object.create(null), lang: h }, u = { initialized: !1, str: [], totalWidth: 0, totalHeight: 0, width: 0, height: 0, vertical: !1, prevTransform: null, textAdvanceScale: 0, spaceInFlowMin: 0, spaceInFlowMax: 0, trackingSpaceMin: 1 / 0, negativeSpaceMax: -1 / 0, notASpace: -1 / 0, transform: null, fontName: null, hasEOL: !1 }, d = [" ", " "]; var f = 0; function saveLastChar(e) { var t = (f + 1) % 2, i = " " !== d[f] && " " === d[t]; d[f] = e; f = t; return !Q && i; } function shouldAddWhitepsace() { return !Q && " " !== d[f] && " " === d[(f + 1) % 2]; } function resetLastChars() { d[0] = d[1] = " "; f = 0; } var p = this, m = this.xref, y = []; var w = null; var b = new LocalImageCache, D = new LocalGStateCache, F = new EvaluatorPreprocessor(e, m, r); var S; function pushWhitespace(_b) { var _j = _b.width, e = _j === void 0 ? 0 : _j, _k = _b.height, t = _k === void 0 ? 0 : _k, _l = _b.transform, i = _l === void 0 ? u.prevTransform : _l, _m = _b.fontName, a = _m === void 0 ? u.fontName : _m; E.items.push({ str: " ", dir: "ltr", width: e, height: t, transform: i, fontName: a, hasEOL: !1 }); } function getCurrentTextTransform() { var e = S.font, t = [S.fontSize * S.textHScale, 0, 0, S.fontSize, 0, S.textRise]; if (e.isType3Font && (S.fontSize <= 1 || e.isCharBBox) && !isArrayEqual(S.fontMatrix, a)) { var i_212 = e.bbox[3] - e.bbox[1]; i_212 > 0 && (t[3] *= i_212 * S.fontMatrix[3]); } return Util.transform(S.ctm, Util.transform(S.textMatrix, t)); } function ensureTextContentItem() { if (u.initialized) return u; var e = S.font, t = S.loadedName; if (!g.has(t)) { g.add(t); E.styles[t] = { fontFamily: e.fallbackName, ascent: e.ascent, descent: e.descent, vertical: e.vertical }; if (p.options.fontExtraProperties && e.systemFontInfo) { var i_213 = E.styles[t]; i_213.fontSubstitution = e.systemFontInfo.css; i_213.fontSubstitutionLoadedName = e.systemFontInfo.loadedName; } } u.fontName = t; var i = u.transform = getCurrentTextTransform(); if (e.vertical) { u.width = u.totalWidth = Math.hypot(i[0], i[1]); u.height = u.totalHeight = 0; u.vertical = !0; } else { u.width = u.totalWidth = 0; u.height = u.totalHeight = Math.hypot(i[2], i[3]); u.vertical = !1; } var a = Math.hypot(S.textLineMatrix[0], S.textLineMatrix[1]), s = Math.hypot(S.ctm[0], S.ctm[1]); u.textAdvanceScale = s * a; var r = S.fontSize; u.trackingSpaceMin = .102 * r; u.notASpace = .03 * r; u.negativeSpaceMax = -.2 * r; u.spaceInFlowMin = .102 * r; u.spaceInFlowMax = .6 * r; u.hasEOL = !1; u.initialized = !0; return u; } function updateAdvanceScale() { if (!u.initialized) return; var e = Math.hypot(S.textLineMatrix[0], S.textLineMatrix[1]), t = Math.hypot(S.ctm[0], S.ctm[1]) * e; if (t !== u.textAdvanceScale) { if (u.vertical) { u.totalHeight += u.height * u.textAdvanceScale; u.height = 0; } else { u.totalWidth += u.width * u.textAdvanceScale; u.width = 0; } u.textAdvanceScale = t; } } function runBidiTransform(e) { var t = e.str.join(""); C || (t = function normalizeUnicode(e) { if (!gt) { gt = /([\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; It = new Map([["ſt", "ſt"]]); } return e.replaceAll(gt, (function (e, t, i) { return t ? t.normalize("NFKC") : It.get(i); })); }(t)); var i = bidi(t, -1, e.vertical); return { str: i.str, dir: i.dir, width: Math.abs(e.totalWidth), height: Math.abs(e.totalHeight), transform: e.transform, fontName: e.fontName, hasEOL: e.hasEOL }; } function handleSetFont(e, i) { return tslib_1.__awaiter(this, void 0, void 0, function () { var r, _b; return tslib_1.__generator(this, function (_j) { switch (_j.label) { case 0: return [4 /*yield*/, p.loadFont(e, i, s)]; case 1: r = _j.sent(); if (!r.font.isType3Font) return [3 /*break*/, 5]; _j.label = 2; case 2: _j.trys.push([2, 4, , 5]); return [4 /*yield*/, r.loadType3Data(p, s, t)]; case 3: _j.sent(); return [3 /*break*/, 5]; case 4: _b = _j.sent(); return [3 /*break*/, 5]; case 5: S.loadedName = r.loadedName; S.font = r.font; S.fontMatrix = r.font.fontMatrix || a; return [2 /*return*/]; } }); }); } function applyInverseRotation(e, t, i) { var a = Math.hypot(i[0], i[1]); return [(i[0] * e + i[1] * t) / a, (i[2] * e + i[3] * t) / a]; } function compareWithLastPosition(e) { var _b, _j, _k, _l, _m, _o, _p; var _q; var t = getCurrentTextTransform(); var i = t[4], a = t[5]; if ((_q = S.font) === null || _q === void 0 ? void 0 : _q.vertical) { if (i < c[0] || i > c[2] || a + e < c[1] || a > c[3]) return !1; } else if (i + e < c[0] || i > c[2] || a < c[1] || a > c[3]) return !1; if (!S.font || !u.prevTransform) return !0; var s = u.prevTransform[4], r = u.prevTransform[5]; if (s === i && r === a) return !0; var n = -1; t[0] && 0 === t[1] && 0 === t[2] ? n = t[0] > 0 ? 0 : 180 : t[1] && 0 === t[0] && 0 === t[3] && (n = t[1] > 0 ? 90 : 270); switch (n) { case 0: break; case 90: _b = [a, i], i = _b[0], a = _b[1]; _j = [r, s], s = _j[0], r = _j[1]; break; case 180: _k = [-i, -a, -s, -r], i = _k[0], a = _k[1], s = _k[2], r = _k[3]; break; case 270: _l = [-a, -i], i = _l[0], a = _l[1]; _m = [-r, -s], s = _m[0], r = _m[1]; break; default: _o = applyInverseRotation(i, a, t), i = _o[0], a = _o[1]; _p = applyInverseRotation(s, r, u.prevTransform), s = _p[0], r = _p[1]; } if (S.font.vertical) { var e_323 = (r - a) / u.textAdvanceScale, t_250 = i - s, n_69 = Math.sign(u.height); if (e_323 < n_69 * u.negativeSpaceMax) { if (Math.abs(t_250) > .5 * u.width) { appendEOL(); return !0; } resetLastChars(); flushTextContentItem(); return !0; } if (Math.abs(t_250) > u.width) { appendEOL(); return !0; } e_323 <= n_69 * u.notASpace && resetLastChars(); if (e_323 <= n_69 * u.trackingSpaceMin) if (shouldAddWhitepsace()) { resetLastChars(); flushTextContentItem(); pushWhitespace({ height: Math.abs(e_323) }); } else u.height += e_323; else if (!addFakeSpaces(e_323, u.prevTransform, n_69)) if (0 === u.str.length) { resetLastChars(); pushWhitespace({ height: Math.abs(e_323) }); } else u.height += e_323; Math.abs(t_250) > .25 * u.width && flushTextContentItem(); return !0; } var o = (i - s) / u.textAdvanceScale, g = a - r, h = Math.sign(u.width); if (o < h * u.negativeSpaceMax) { if (Math.abs(g) > .5 * u.height) { appendEOL(); return !0; } resetLastChars(); flushTextContentItem(); return !0; } if (Math.abs(g) > u.height) { appendEOL(); return !0; } o <= h * u.notASpace && resetLastChars(); if (o <= h * u.trackingSpaceMin) if (shouldAddWhitepsace()) { resetLastChars(); flushTextContentItem(); pushWhitespace({ width: Math.abs(o) }); } else u.width += o; else if (!addFakeSpaces(o, u.prevTransform, h)) if (0 === u.str.length) { resetLastChars(); pushWhitespace({ width: Math.abs(o) }); } else u.width += o; Math.abs(g) > .25 * u.height && flushTextContentItem(); return !0; } function buildTextContentItem(_b) { var e = _b.chars, t = _b.extraSpacing; var i = S.font; if (!e) { var e_324 = S.charSpacing + t; e_324 && (i.vertical ? S.translateTextMatrix(0, -e_324) : S.translateTextMatrix(e_324 * S.textHScale, 0)); Q && compareWithLastPosition(0); return; } var a = i.charsToGlyphs(e), s = S.fontMatrix[0] * S.fontSize; for (var e_325 = 0, r_97 = a.length; e_325 < r_97; e_325++) { var n_70 = a[e_325], o_46 = n_70.category; if (o_46.isInvisibleFormatMark) continue; var g_33 = S.charSpacing + (e_325 + 1 === r_97 ? t : 0), c_20 = n_70.width; i.vertical && (c_20 = n_70.vmetric ? n_70.vmetric[0] : -c_20); var h_16 = c_20 * s; if (!Q && o_46.isWhitespace) { if (i.vertical) { g_33 += -h_16 + S.wordSpacing; S.translateTextMatrix(0, -g_33); } else { g_33 += h_16 + S.wordSpacing; S.translateTextMatrix(g_33 * S.textHScale, 0); } saveLastChar(" "); continue; } if (!o_46.isZeroWidthDiacritic && !compareWithLastPosition(h_16)) { i.vertical ? S.translateTextMatrix(0, h_16) : S.translateTextMatrix(h_16 * S.textHScale, 0); continue; } var l_17 = ensureTextContentItem(); o_46.isZeroWidthDiacritic && (h_16 = 0); if (i.vertical) { S.translateTextMatrix(0, h_16); h_16 = Math.abs(h_16); l_17.height += h_16; } else { h_16 *= S.textHScale; S.translateTextMatrix(h_16, 0); l_17.width += h_16; } h_16 && (l_17.prevTransform = getCurrentTextTransform()); var C_15 = n_70.unicode; saveLastChar(C_15) && l_17.str.push(" "); l_17.str.push(C_15); g_33 && (i.vertical ? S.translateTextMatrix(0, -g_33) : S.translateTextMatrix(g_33 * S.textHScale, 0)); } } function appendEOL() { resetLastChars(); if (u.initialized) { u.hasEOL = !0; flushTextContentItem(); } else E.items.push({ str: "", dir: "ltr", width: 0, height: 0, transform: getCurrentTextTransform(), fontName: S.loadedName, hasEOL: !0 }); } function addFakeSpaces(e, t, i) { if (i * u.spaceInFlowMin <= e && e <= i * u.spaceInFlowMax) { if (u.initialized) { resetLastChars(); u.str.push(" "); } return !1; } var a = u.fontName; var s = 0; if (u.vertical) { s = e; e = 0; } flushTextContentItem(); resetLastChars(); pushWhitespace({ width: Math.abs(e), height: Math.abs(s), transform: t || getCurrentTextTransform(), fontName: a }); return !0; } function flushTextContentItem() { if (u.initialized && u.str) { u.vertical ? u.totalHeight += u.height * u.textAdvanceScale : u.totalWidth += u.width * u.textAdvanceScale; E.items.push(runBidiTransform(u)); u.initialized = !1; u.str.length = 0; } } function enqueueChunk(e) { if (e === void 0) { e = !1; } var t = E.items.length; if (0 !== t && !(e && t < 10)) { o.enqueue(E, t); E.items = []; E.styles = Object.create(null); } } var k = new TimeSlotManager; return new Promise((function promiseBody(e, a) { var next = function (t) { enqueueChunk(!0); Promise.all([t, o.ready]).then((function () { try { promiseBody(e, a); } catch (e) { a(e); } }), a); }; t.ensureNotTerminated(); k.reset(); var u = {}; var d, f = []; for (; !(d = k.check());) { f.length = 0; u.args = f; if (!F.read(u)) break; var e_326 = S; S = r.state; var a_183 = u.fn; f = u.args; switch (0 | a_183) { case se: var R = f[0].name, N = f[1]; if (S.font && R === S.fontName && N === S.fontSize) break; flushTextContentItem(); S.fontName = R; S.fontSize = N; next(handleSetFont(R, null)); return; case ne: S.textRise = f[0]; break; case ie: S.textHScale = f[0] / 100; break; case ae: S.leading = f[0]; break; case oe: S.translateTextLineMatrix(f[0], f[1]); S.textMatrix = S.textLineMatrix.slice(); break; case ge: S.leading = -f[1]; S.translateTextLineMatrix(f[0], f[1]); S.textMatrix = S.textLineMatrix.slice(); break; case ce: S.carriageReturn(); break; case Ie: S.setTextMatrix(f[0], f[1], f[2], f[3], f[4], f[5]); S.setTextLineMatrix(f[0], f[1], f[2], f[3], f[4], f[5]); updateAdvanceScale(); break; case ee: S.charSpacing = f[0]; break; case te: S.wordSpacing = f[0]; break; case $A: S.textMatrix = i.slice(); S.textLineMatrix = i.slice(); break; case le: if (!r.state.font) { p.ensureStateFont(r.state); continue; } var a_184 = (S.font.vertical ? 1 : -1) * S.fontSize / 1e3, u_7 = f[0]; for (var e_327 = 0, t_251 = u_7.length; e_327 < t_251; e_327++) { var t_252 = u_7[e_327]; if ("string" == typeof t_252) y.push(t_252); else if ("number" == typeof t_252 && 0 !== t_252) { var e_328 = y.join(""); y.length = 0; buildTextContentItem({ chars: e_328, extraSpacing: t_252 * a_184 }); } } if (y.length > 0) { var e_329 = y.join(""); y.length = 0; buildTextContentItem({ chars: e_329, extraSpacing: 0 }); } break; case he: if (!r.state.font) { p.ensureStateFont(r.state); continue; } buildTextContentItem({ chars: f[0], extraSpacing: 0 }); break; case Ce: if (!r.state.font) { p.ensureStateFont(r.state); continue; } S.carriageReturn(); buildTextContentItem({ chars: f[0], extraSpacing: 0 }); break; case Be: if (!r.state.font) { p.ensureStateFont(r.state); continue; } S.wordSpacing = f[0]; S.charSpacing = f[1]; S.carriageReturn(); buildTextContentItem({ chars: f[2], extraSpacing: 0 }); break; case Me: flushTextContentItem(); w || (w = s.get("XObject") || Dict.empty); var G = f[0] instanceof Name, x = f[0].name; if (G && b.getByName(x)) break; next(new Promise((function (e, i) { if (!G) throw new FormatError("XObject must be referred to by name."); var a = w.getRaw(x); if (a instanceof Ref) { if (b.getByRef(a)) { e(); return; } if (p.globalImageCache.getData(a, p.pageIndex)) { e(); return; } a = m.fetch(a); } if (!(a instanceof BaseStream)) throw new FormatError("XObject should be a stream"); var E = a.dict.get("Subtype"); if (!(E instanceof Name)) throw new FormatError("XObject should have a Name subtype"); if ("Form" !== E.name) { b.set(x, a.dict.objId, !0); e(); return; } var u = r.state.clone(), d = new StateManager(u), f = lookupMatrix(a.dict.getArray("Matrix"), null); f && d.transform(f); enqueueChunk(); var y = { enqueueInvoked: !1, enqueue: function (e, t) { this.enqueueInvoked = !0; o.enqueue(e, t); }, get desiredSize() { return o.desiredSize; }, get ready() { return o.ready; } }; p.getTextContent({ stream: a, task: t, resources: a.dict.get("Resources") || s, stateManager: d, includeMarkedContent: n, sink: y, seenStyles: g, viewBox: c, lang: h, markedContentData: l, disableNormalization: C, keepWhiteSpace: Q }).then((function () { y.enqueueInvoked || b.set(x, a.dict.objId, !0); e(); }), i); })).catch((function (e) { if (!(e instanceof AbortException)) { if (!p.options.ignoreErrors) throw e; warn("getTextContent - ignoring XObject: \"".concat(e, "\".")); } }))); return; case NA: G = f[0] instanceof Name; x = f[0].name; if (G && D.getByName(x)) break; next(new Promise((function (e, t) { if (!G) throw new FormatError("GState must be referred to by name."); var i = s.get("ExtGState"); if (!(i instanceof Dict)) throw new FormatError("ExtGState should be a dictionary."); var a = i.get(x); if (!(a instanceof Dict)) throw new FormatError("GState should be a dictionary."); var r = a.get("Font"); if (r) { flushTextContentItem(); S.fontName = null; S.fontSize = r[1]; handleSetFont(null, r[0]).then(e, t); } else { D.set(x, a.objId, !0); e(); } })).catch((function (e) { if (!(e instanceof AbortException)) { if (!p.options.ignoreErrors) throw e; warn("getTextContent - ignoring ExtGState: \"".concat(e, "\".")); } }))); return; case Je: flushTextContentItem(); if (n) { l.level++; E.items.push({ type: "beginMarkedContent", tag: f[0] instanceof Name ? f[0].name : null }); } break; case He: flushTextContentItem(); if (n) { l.level++; var e_330 = null; f[1] instanceof Dict && (e_330 = f[1].get("MCID")); E.items.push({ type: "beginMarkedContentProps", id: Number.isInteger(e_330) ? "".concat(p.idFactory.getPageObjId(), "_mc").concat(e_330) : null, tag: f[0] instanceof Name ? f[0].name : null }); } break; case Ye: flushTextContentItem(); if (n) { if (0 === l.level) break; l.level--; E.items.push({ type: "endMarkedContent" }); } break; case xA: !e_326 || e_326.font === S.font && e_326.fontSize === S.fontSize && e_326.fontName === S.fontName || flushTextContentItem(); } if (E.items.length >= o.desiredSize) { d = !0; break; } } if (d) next(ks); else { flushTextContentItem(); enqueueChunk(); e(); } })).catch((function (e) { if (!(e instanceof AbortException)) { if (!_this.options.ignoreErrors) throw e; warn("getTextContent - ignoring errors during \"".concat(t.name, "\" task: \"").concat(e, "\".")); flushTextContentItem(); enqueueChunk(); } })); }; PartialEvaluator.prototype.extractDataStructures = function (e, t) { return tslib_1.__awaiter(this, void 0, void 0, function () { var i, a, s, i_214, t_253, r, n, o, e_332, t_254, _b, e_331, a_185, e_333, e_334, g, c, e_335, i_215, _j, h; return tslib_1.__generator(this, function (_k) { switch (_k.label) { case 0: i = this.xref; s = this.readToUnicode(t.toUnicode); if (t.composite) { i_214 = e.get("CIDSystemInfo"); i_214 instanceof Dict && (t.cidSystemInfo = { registry: stringToPDFString(i_214.get("Registry")), ordering: stringToPDFString(i_214.get("Ordering")), supplement: i_214.get("Supplement") }); try { t_253 = e.get("CIDToGIDMap"); t_253 instanceof BaseStream && (a = t_253.getBytes()); } catch (e) { if (!this.options.ignoreErrors) throw e; warn("extractDataStructures - ignoring CIDToGIDMap data: \"".concat(e, "\".")); } } r = []; o = null; if (e.has("Encoding")) { n = e.get("Encoding"); if (n instanceof Dict) { o = n.get("BaseEncoding"); o = o instanceof Name ? o.name : null; if (n.has("Differences")) { e_332 = n.get("Differences"); t_254 = 0; for (_b = 0, e_331 = e_332; _b < e_331.length; _b++) { a_185 = e_331[_b]; e_333 = i.fetchIfRef(a_185); if ("number" == typeof e_333) t_254 = e_333; else { if (!(e_333 instanceof Name)) throw new FormatError("Invalid entry in 'Differences' array: ".concat(e_333)); r[t_254++] = e_333.name; } } } } else if (n instanceof Name) o = n.name; else { e_334 = "Encoding is not a Name nor a Dict"; if (!this.options.ignoreErrors) throw new FormatError(e_334); warn(e_334); } "MacRomanEncoding" !== o && "MacExpertEncoding" !== o && "WinAnsiEncoding" !== o && (o = null); } g = !t.file || t.isInternalFont, c = Zi()[t.name]; o && g && c && (o = null); if (o) t.defaultEncoding = getEncoding(o); else { e_335 = !!(t.flags & Ti), i_215 = !!(t.flags & qi); n = fi; "TrueType" !== t.type || i_215 || (n = pi); if (e_335 || c) { n = di; g && (/Symbol/i.test(t.name) ? n = mi : /Dingbats/i.test(t.name) ? n = yi : /Wingdings/i.test(t.name) && (n = pi)); } t.defaultEncoding = n; } t.differences = r; t.baseEncodingName = o; t.hasEncoding = !!o || r.length > 0; t.dict = e; _j = t; return [4 /*yield*/, s]; case 1: _j.toUnicode = _k.sent(); return [4 /*yield*/, this.buildToUnicode(t)]; case 2: h = _k.sent(); t.toUnicode = h; a && (t.cidToGidMap = this.readCidToGidMap(a, h)); return [2 /*return*/, t]; } }); }); }; PartialEvaluator.prototype._simpleFontToUnicode = function (e, t) { if (t === void 0) { t = !1; } assert(!e.composite, "Must be a simple font."); var i = [], a = e.defaultEncoding.slice(), s = e.baseEncodingName, r = e.differences; for (var e_336 in r) { var t_255 = r[e_336]; ".notdef" !== t_255 && (a[e_336] = t_255); } var n = Ni(); for (var r_98 in a) { var o_47 = a[r_98]; if ("" === o_47) continue; var g_34 = n[o_47]; if (void 0 !== g_34) { i[r_98] = String.fromCharCode(g_34); continue; } var c_21 = 0; switch (o_47[0]) { case "G": 3 === o_47.length && (c_21 = parseInt(o_47.substring(1), 16)); break; case "g": 5 === o_47.length && (c_21 = parseInt(o_47.substring(1), 16)); break; case "C": case "c": if (o_47.length >= 3 && o_47.length <= 4) { var i_216 = o_47.substring(1); if (t) { c_21 = parseInt(i_216, 16); break; } c_21 = +i_216; if (Number.isNaN(c_21) && Number.isInteger(parseInt(i_216, 16))) return this._simpleFontToUnicode(e, !0); } break; case "u": g_34 = getUnicodeForGlyph(o_47, n); -1 !== g_34 && (c_21 = g_34); break; default: switch (o_47) { case "f_h": case "f_t": case "T_h": i[r_98] = o_47.replaceAll("_", ""); continue; } } if (c_21 > 0 && c_21 <= 1114111 && Number.isInteger(c_21)) { if (s && c_21 === +r_98) { var e_337 = getEncoding(s); if (e_337 && (o_47 = e_337[r_98])) { i[r_98] = String.fromCharCode(n[o_47]); continue; } } i[r_98] = String.fromCodePoint(c_21); } } return i; }; PartialEvaluator.prototype.buildToUnicode = function (e) { var _b, _j; return tslib_1.__awaiter(this, void 0, void 0, function () { var _k, t_256, i_217, a_186, s_132, r_99, n_71; return tslib_1.__generator(this, function (_l) { switch (_l.label) { case 0: e.hasIncludedToUnicodeMap = ((_b = e.toUnicode) === null || _b === void 0 ? void 0 : _b.length) > 0; if (e.hasIncludedToUnicodeMap) { !e.composite && e.hasEncoding && (e.fallbackToUnicode = this._simpleFontToUnicode(e)); return [2 /*return*/, e.toUnicode]; } if (!e.composite) return [2 /*return*/, new ToUnicodeMap(this._simpleFontToUnicode(e))]; if (!(e.composite && (e.cMap.builtInCMap && !(e.cMap instanceof IdentityCMap) || "Adobe" === ((_j = e.cidSystemInfo) === null || _j === void 0 ? void 0 : _j.registry) && ("GB1" === e.cidSystemInfo.ordering || "CNS1" === e.cidSystemInfo.ordering || "Japan1" === e.cidSystemInfo.ordering || "Korea1" === e.cidSystemInfo.ordering)))) return [3 /*break*/, 2]; _k = e.cidSystemInfo, t_256 = _k.registry, i_217 = _k.ordering, a_186 = Name.get("".concat(t_256, "-").concat(i_217, "-UCS2")); return [4 /*yield*/, CMapFactory.create({ encoding: a_186, fetchBuiltInCMap: this._fetchBuiltInCMapBound, useCMap: null })]; case 1: s_132 = _l.sent(), r_99 = [], n_71 = []; e.cMap.forEach((function (e, t) { if (t > 65535) throw new FormatError("Max size of CID is 65,535"); var i = s_132.lookup(t); if (i) { n_71.length = 0; for (var e_338 = 0, t_257 = i.length; e_338 < t_257; e_338 += 2) n_71.push((i.charCodeAt(e_338) << 8) + i.charCodeAt(e_338 + 1)); r_99[e] = String.fromCharCode.apply(String, n_71); } })); return [2 /*return*/, new ToUnicodeMap(r_99)]; case 2: return [2 /*return*/, new IdentityToUnicodeMap(e.firstChar, e.lastChar)]; } }); }); }; PartialEvaluator.prototype.readToUnicode = function (e) { return tslib_1.__awaiter(this, void 0, void 0, function () { var t_258, t_259, i_218, e_339; return tslib_1.__generator(this, function (_b) { switch (_b.label) { case 0: if (!e) return [2 /*return*/, null]; if (!(e instanceof Name)) return [3 /*break*/, 2]; return [4 /*yield*/, CMapFactory.create({ encoding: e, fetchBuiltInCMap: this._fetchBuiltInCMapBound, useCMap: null })]; case 1: t_258 = _b.sent(); return [2 /*return*/, t_258 instanceof IdentityCMap ? new IdentityToUnicodeMap(0, 65535) : new ToUnicodeMap(t_258.getMap())]; case 2: if (!(e instanceof BaseStream)) return [3 /*break*/, 6]; _b.label = 3; case 3: _b.trys.push([3, 5, , 6]); return [4 /*yield*/, CMapFactory.create({ encoding: e, fetchBuiltInCMap: this._fetchBuiltInCMapBound, useCMap: null })]; case 4: t_259 = _b.sent(); if (t_259 instanceof IdentityCMap) return [2 /*return*/, new IdentityToUnicodeMap(0, 65535)]; i_218 = new Array(t_259.length); t_259.forEach((function (e, t) { if ("number" == typeof t) { i_218[e] = String.fromCodePoint(t); return; } var a = []; for (var e_340 = 0; e_340 < t.length; e_340 += 2) { var i_219 = t.charCodeAt(e_340) << 8 | t.charCodeAt(e_340 + 1); if (55296 != (63488 & i_219)) { a.push(i_219); continue; } e_340 += 2; var s_133 = t.charCodeAt(e_340) << 8 | t.charCodeAt(e_340 + 1); a.push(((1023 & i_219) << 10) + (1023 & s_133) + 65536); } i_218[e] = String.fromCodePoint.apply(String, a); })); return [2 /*return*/, new ToUnicodeMap(i_218)]; case 5: e_339 = _b.sent(); if (e_339 instanceof AbortException) return [2 /*return*/, null]; if (this.options.ignoreErrors) { warn("readToUnicode - ignoring ToUnicode data: \"".concat(e_339, "\".")); return [2 /*return*/, null]; } throw e_339; case 6: return [2 /*return*/, null]; } }); }); }; PartialEvaluator.prototype.readCidToGidMap = function (e, t) { var i = []; for (var a_187 = 0, s_134 = e.length; a_187 < s_134; a_187++) { var s_135 = e[a_187++] << 8 | e[a_187], r_100 = a_187 >> 1; (0 !== s_135 || t.has(r_100)) && (i[r_100] = s_135); } return i; }; PartialEvaluator.prototype.extractWidths = function (e, t, i) { var a = this.xref; var s = [], r = 0; var n = []; var o; if (i.composite) { var t_260 = e.get("DW"); r = Number.isInteger(t_260) ? t_260 : 1e3; var g_35 = e.get("W"); if (Array.isArray(g_35)) for (var e_341 = 0, t_261 = g_35.length; e_341 < t_261; e_341++) { var t_262 = a.fetchIfRef(g_35[e_341++]); if (!Number.isInteger(t_262)) break; var i_221 = a.fetchIfRef(g_35[e_341]); if (Array.isArray(i_221)) for (var _b = 0, i_220 = i_221; _b < i_220.length; _b++) { var e_342 = i_220[_b]; var i_222 = a.fetchIfRef(e_342); "number" == typeof i_222 && (s[t_262] = i_222); t_262++; } else { if (!Number.isInteger(i_221)) break; { var r_101 = a.fetchIfRef(g_35[++e_341]); if ("number" != typeof r_101) continue; for (var e_343 = t_262; e_343 <= i_221; e_343++) s[e_343] = r_101; } } } if (i.vertical) { var t_263 = e.getArray("DW2"); var i_223 = isNumberArray(t_263, 2) ? t_263 : [880, -1e3]; o = [i_223[1], .5 * r, i_223[0]]; i_223 = e.get("W2"); if (Array.isArray(i_223)) for (var e_344 = 0, t_264 = i_223.length; e_344 < t_264; e_344++) { var t_265 = a.fetchIfRef(i_223[e_344++]); if (!Number.isInteger(t_265)) break; var s_136 = a.fetchIfRef(i_223[e_344]); if (Array.isArray(s_136)) for (var e_345 = 0, i_224 = s_136.length; e_345 < i_224; e_345++) { var i_225 = [a.fetchIfRef(s_136[e_345++]), a.fetchIfRef(s_136[e_345++]), a.fetchIfRef(s_136[e_345])]; isNumberArray(i_225, null) && (n[t_265] = i_225); t_265++; } else { if (!Number.isInteger(s_136)) break; { var r_102 = [a.fetchIfRef(i_223[++e_344]), a.fetchIfRef(i_223[++e_344]), a.fetchIfRef(i_223[++e_344])]; if (!isNumberArray(r_102, null)) continue; for (var e_346 = t_265; e_346 <= s_136; e_346++) n[e_346] = r_102; } } } } } else { var n_73 = e.get("Widths"); if (Array.isArray(n_73)) { var e_347 = i.firstChar; for (var _j = 0, n_72 = n_73; _j < n_72.length; _j++) { var t_266 = n_72[_j]; var i_226 = a.fetchIfRef(t_266); "number" == typeof i_226 && (s[e_347] = i_226); e_347++; } var o_48 = t.get("MissingWidth"); r = "number" == typeof o_48 ? o_48 : 0; } else { var t_267 = e.get("BaseFont"); if (t_267 instanceof Name) { var e_348 = this.getBaseFontMetrics(t_267.name); s = this.buildCharCodeToWidth(e_348.widths, i); r = e_348.defaultWidth; } } } var g = !0, c = r; for (var e_349 in s) { var t_268 = s[e_349]; if (t_268) if (c) { if (c !== t_268) { g = !1; break; } } else c = t_268; } g ? i.flags |= vi : i.flags &= ~vi; i.defaultWidth = r; i.widths = s; i.defaultVMetrics = o; i.vmetrics = n; }; PartialEvaluator.prototype.isSerifFont = function (e) { var t = e.split("-", 1)[0]; return t in ji() || /serif/gi.test(t); }; PartialEvaluator.prototype.getBaseFontMetrics = function (e) { var t = 0, i = Object.create(null), a = !1; var s = Pi()[e] || e; var r = Aa(); s in r || (s = this.isSerifFont(e) ? "Times-Roman" : "Helvetica"); var n = r[s]; if ("number" == typeof n) { t = n; a = !0; } else i = n(); return { defaultWidth: t, monospace: a, widths: i }; }; PartialEvaluator.prototype.buildCharCodeToWidth = function (e, t) { var i = Object.create(null), a = t.differences, s = t.defaultEncoding; for (var t_269 = 0; t_269 < 256; t_269++) t_269 in a && e[a[t_269]] ? i[t_269] = e[a[t_269]] : t_269 in s && e[s[t_269]] && (i[t_269] = e[s[t_269]]); return i; }; PartialEvaluator.prototype.preEvaluateFont = function (e) { var t = e; var i = e.get("Subtype"); if (!(i instanceof Name)) throw new FormatError("invalid font Subtype"); var a, s = !1; if ("Type0" === i.name) { var t_271 = e.get("DescendantFonts"); if (!t_271) throw new FormatError("Descendant fonts are not specified"); if (!((e = Array.isArray(t_271) ? this.xref.fetchIfRef(t_271[0]) : t_271) instanceof Dict)) throw new FormatError("Descendant font is not a dictionary."); i = e.get("Subtype"); if (!(i instanceof Name)) throw new FormatError("invalid font Subtype"); s = !0; } var r = e.get("FirstChar"); Number.isInteger(r) || (r = 0); var n = e.get("LastChar"); Number.isInteger(n) || (n = s ? 65535 : 255); var o = e.get("FontDescriptor"), g = e.get("ToUnicode") || t.get("ToUnicode"); if (o) { a = new MurmurHash3_64; var i_228 = t.getRaw("Encoding"); if (i_228 instanceof Name) a.update(i_228.name); else if (i_228 instanceof Ref) a.update(i_228.toString()); else if (i_228 instanceof Dict) for (var _b = 0, _j = i_228.getRawValues(); _b < _j.length; _b++) { var e_350 = _j[_b]; if (e_350 instanceof Name) a.update(e_350.name); else if (e_350 instanceof Ref) a.update(e_350.toString()); else if (Array.isArray(e_350)) { var t_272 = e_350.length, i_229 = new Array(t_272); for (var a_188 = 0; a_188 < t_272; a_188++) { var t_273 = e_350[a_188]; t_273 instanceof Name ? i_229[a_188] = t_273.name : ("number" == typeof t_273 || t_273 instanceof Ref) && (i_229[a_188] = t_273.toString()); } a.update(i_229.join()); } } a.update("".concat(r, "-").concat(n)); if (g instanceof BaseStream) { var e_351 = g.str || g, t_274 = e_351.buffer ? new Uint8Array(e_351.buffer.buffer, 0, e_351.bufferLength) : new Uint8Array(e_351.bytes.buffer, e_351.start, e_351.end - e_351.start); a.update(t_274); } else g instanceof Name && a.update(g.name); var o_50 = e.get("Widths") || t.get("Widths"); if (Array.isArray(o_50)) { var e_352 = []; for (var _k = 0, o_49 = o_50; _k < o_49.length; _k++) { var t_275 = o_49[_k]; ("number" == typeof t_275 || t_275 instanceof Ref) && e_352.push(t_275.toString()); } a.update(e_352.join()); } if (s) { a.update("compositeFont"); var i_230 = e.get("W") || t.get("W"); if (Array.isArray(i_230)) { var e_353 = []; for (var _l = 0, i_227 = i_230; _l < i_227.length; _l++) { var t_276 = i_227[_l]; if ("number" == typeof t_276 || t_276 instanceof Ref) e_353.push(t_276.toString()); else if (Array.isArray(t_276)) { var i_231 = []; for (var _m = 0, t_270 = t_276; _m < t_270.length; _m++) { var e_354 = t_270[_m]; ("number" == typeof e_354 || e_354 instanceof Ref) && i_231.push(e_354.toString()); } e_353.push("[".concat(i_231.join(), "]")); } } a.update(e_353.join()); } var s_137 = e.getRaw("CIDToGIDMap") || t.getRaw("CIDToGIDMap"); s_137 instanceof Name ? a.update(s_137.name) : s_137 instanceof Ref ? a.update(s_137.toString()) : s_137 instanceof BaseStream && a.update(s_137.peekBytes()); } } return { descriptor: o, dict: e, baseDict: t, composite: s, type: i.name, firstChar: r, lastChar: n, toUnicode: g, hash: a ? a.hexdigest() : "" }; }; PartialEvaluator.prototype.translateFont = function (_b) { var e = _b.descriptor, t = _b.dict, i = _b.baseDict, s = _b.composite, r = _b.type, n = _b.firstChar, o = _b.lastChar, g = _b.toUnicode, c = _b.cssFontInfo; return tslib_1.__awaiter(this, void 0, void 0, function () { var h, e_355, a_189, s_138, c_22, l_18, C_17, Q_16, E_10, u_8, e_356, t_277, _j, C_16, i_232, a_190, i_233, l, C, Q, E, u, d, f, p, m, y, w, b, e_357, e_358, e_359, D, F, S, k, R, N, G, x, M, e_360, t_278, U; return tslib_1.__generator(this, function (_k) { switch (_k.label) { case 0: h = "Type3" === r; if (!!e) return [3 /*break*/, 5]; if (!!h) return [3 /*break*/, 4]; e_355 = t.get("BaseFont"); if (!(e_355 instanceof Name)) throw new FormatError("Base font is not specified"); e_355 = e_355.name.replaceAll(/[,_]/g, "-"); a_189 = this.getBaseFontMetrics(e_355), s_138 = e_355.split("-", 1)[0], c_22 = (this.isSerifFont(s_138) ? Ki : 0) | (a_189.monospace ? vi : 0) | (Zi()[s_138] ? Ti : qi), l_18 = { type: r, name: e_355, loadedName: i.loadedName, systemFontInfo: null, widths: a_189.widths, defaultWidth: a_189.defaultWidth, isSimulatedFlags: !0, flags: c_22, firstChar: n, lastChar: o, toUnicode: g, xHeight: 0, capHeight: 0, italicAngle: 0, isType3Font: h }, C_17 = t.get("Widths"), Q_16 = getStandardFontName(e_355); E_10 = null; if (!Q_16) return [3 /*break*/, 2]; return [4 /*yield*/, this.fetchStandardFontData(Q_16)]; case 1: E_10 = _k.sent(); l_18.isInternalFont = !!E_10; _k.label = 2; case 2: !l_18.isInternalFont && this.options.useSystemFonts && (l_18.systemFontInfo = getFontSubstitution(this.systemFontCache, this.idFactory, this.options.standardFontDataUrl, e_355, Q_16, r)); return [4 /*yield*/, this.extractDataStructures(t, l_18)]; case 3: u_8 = _k.sent(); if (Array.isArray(C_17)) { e_356 = []; t_277 = n; for (_j = 0, C_16 = C_17; _j < C_16.length; _j++) { i_232 = C_16[_j]; a_190 = this.xref.fetchIfRef(i_232); "number" == typeof a_190 && (e_356[t_277] = a_190); t_277++; } u_8.widths = e_356; } else u_8.widths = this.buildCharCodeToWidth(a_189.widths, u_8); return [2 /*return*/, new Font(e_355, E_10, u_8)]; case 4: { i_233 = lookupNormalRect(t.getArray("FontBBox"), [0, 0, 0, 0]); (e = new Dict(null)).set("FontName", Name.get(r)); e.set("FontBBox", i_233); } _k.label = 5; case 5: l = e.get("FontName"), C = t.get("BaseFont"); "string" == typeof l && (l = Name.get(l)); "string" == typeof C && (C = Name.get(C)); Q = l === null || l === void 0 ? void 0 : l.name, E = C === null || C === void 0 ? void 0 : C.name; if (!h && Q !== E) { info("The FontDescriptor's FontName is \"".concat(Q, "\" but should be the same as the Font's BaseFont \"").concat(E, "\".")); Q && E && (E.startsWith(Q) || !isKnownFontName(Q) && isKnownFontName(E)) && (l = null); } l || (l = C); if (!(l instanceof Name)) throw new FormatError("invalid font name"); try { u = e.get("FontFile", "FontFile2", "FontFile3"); } catch (e) { if (!this.options.ignoreErrors) throw e; warn("translateFont - fetching \"".concat(l.name, "\" font file: \"").concat(e, "\".")); u = new NullStream; } y = !1, w = null, b = null; if (!u) return [3 /*break*/, 6]; if (u.dict) { e_357 = u.dict.get("Subtype"); e_357 instanceof Name && (d = e_357.name); f = u.dict.get("Length1"); p = u.dict.get("Length2"); m = u.dict.get("Length3"); } return [3 /*break*/, 12]; case 6: if (!c) return [3 /*break*/, 9]; e_358 = getXfaFontName(l.name); if (!e_358) return [3 /*break*/, 8]; c.fontFamily = "".concat(c.fontFamily, "-PdfJS-XFA"); c.metrics = e_358.metrics || null; w = e_358.factors || null; return [4 /*yield*/, this.fetchStandardFontData(e_358.name)]; case 7: u = _k.sent(); y = !!u; i = t = getXfaFontDict(l.name); s = !0; _k.label = 8; case 8: return [3 /*break*/, 12]; case 9: if (!!h) return [3 /*break*/, 12]; e_359 = getStandardFontName(l.name); if (!e_359) return [3 /*break*/, 11]; return [4 /*yield*/, this.fetchStandardFontData(e_359)]; case 10: u = _k.sent(); y = !!u; _k.label = 11; case 11: !y && this.options.useSystemFonts && (b = getFontSubstitution(this.systemFontCache, this.idFactory, this.options.standardFontDataUrl, l.name, e_359, r)); _k.label = 12; case 12: D = lookupMatrix(t.getArray("FontMatrix"), a), F = lookupNormalRect(e.getArray("FontBBox") || t.getArray("FontBBox"), void 0); S = e.get("Ascent"); "number" != typeof S && (S = void 0); k = e.get("Descent"); "number" != typeof k && (k = void 0); R = e.get("XHeight"); "number" != typeof R && (R = 0); N = e.get("CapHeight"); "number" != typeof N && (N = 0); G = e.get("Flags"); Number.isInteger(G) || (G = 0); x = e.get("ItalicAngle"); "number" != typeof x && (x = 0); M = { type: r, name: l.name, subtype: d, file: u, length1: f, length2: p, length3: m, isInternalFont: y, loadedName: i.loadedName, composite: s, fixedPitch: !1, fontMatrix: D, firstChar: n, lastChar: o, toUnicode: g, bbox: F, ascent: S, descent: k, xHeight: R, capHeight: N, flags: G, italicAngle: x, isType3Font: h, cssFontInfo: c, scaleFactors: w, systemFontInfo: b }; if (!s) return [3 /*break*/, 14]; e_360 = i.get("Encoding"); e_360 instanceof Name && (M.cidEncoding = e_360.name); return [4 /*yield*/, CMapFactory.create({ encoding: e_360, fetchBuiltInCMap: this._fetchBuiltInCMapBound, useCMap: null })]; case 13: t_278 = _k.sent(); M.cMap = t_278; M.vertical = M.cMap.vertical; _k.label = 14; case 14: return [4 /*yield*/, this.extractDataStructures(t, M)]; case 15: U = _k.sent(); this.extractWidths(t, e, U); return [2 /*return*/, new Font(l.name, u, U)]; } }); }); }; PartialEvaluator.buildFontPaths = function (e, t, i, a) { function buildPath(t) { var s = "".concat(e.loadedName, "_path_").concat(t); try { if (e.renderer.hasBuiltPath(t)) return; i.send("commonobj", [s, "FontPath", e.renderer.getPathJs(t)]); } catch (e) { if (a.ignoreErrors) { warn("buildFontPaths - ignoring ".concat(s, " glyph: \"").concat(e, "\".")); return; } throw e; } } for (var _b = 0, t_279 = t; _b < t_279.length; _b++) { var e_361 = t_279[_b]; buildPath(e_361.fontChar); var t_280 = e_361.accent; (t_280 === null || t_280 === void 0 ? void 0 : t_280.fontChar) && buildPath(t_280.fontChar); } }; Object.defineProperty(PartialEvaluator, "fallbackFontDict", { get: function () { var e = new Dict; e.set("BaseFont", Name.get("Helvetica")); e.set("Type", Name.get("FallbackType")); e.set("Subtype", Name.get("FallbackType")); e.set("Encoding", Name.get("WinAnsiEncoding")); return shadow(this, "fallbackFontDict", e); }, enumerable: false, configurable: true }); return PartialEvaluator; }()); var TranslatedFont = /** @class */ (function () { function TranslatedFont(_b) { var e = _b.loadedName, t = _b.font, i = _b.dict, a = _b.evaluatorOptions; this.loadedName = e; this.font = t; this.dict = i; this._evaluatorOptions = a || Ds; this.type3Loaded = null; this.type3Dependencies = t.isType3Font ? new Set : null; this.sent = !1; } TranslatedFont.prototype.send = function (e) { if (!this.sent) { this.sent = !0; e.send("commonobj", [this.loadedName, "Font", this.font.exportData(this._evaluatorOptions.fontExtraProperties)]); } }; TranslatedFont.prototype.fallback = function (e) { if (this.font.data) { this.font.disableFontFace = !0; PartialEvaluator.buildFontPaths(this.font, this.font.glyphCacheValues, e, this._evaluatorOptions); } }; TranslatedFont.prototype.loadType3Data = function (e, t, i) { var _this = this; if (this.type3Loaded) return this.type3Loaded; if (!this.font.isType3Font) throw new Error("Must be a Type3 font."); var a = e.clone({ ignoreErrors: !1 }), s = new RefSet(e.type3FontRefs); this.dict.objId && !s.has(this.dict.objId) && s.put(this.dict.objId); a.type3FontRefs = s; var r = this.font, n = this.type3Dependencies; var o = Promise.resolve(); var g = this.dict.get("CharProcs"), c = this.dict.get("Resources") || t, h = Object.create(null), l = Util.normalizeRect(r.bbox || [0, 0, 0, 0]), C = l[2] - l[0], Q = l[3] - l[1], E = Math.hypot(C, Q); var _loop_2 = function (e_362) { o = o.then((function () { var t = g.get(e_362), s = new OperatorList; return a.getOperatorList({ stream: t, task: i, resources: c, operatorList: s }).then((function () { s.fnArray[0] === Ee && _this._removeType3ColorOperators(s, E); h[e_362] = s.getIR(); for (var _b = 0, _j = s.dependencies; _b < _j.length; _b++) { var e_363 = _j[_b]; n.add(e_363); } })).catch((function (t) { warn("Type3 font resource \"".concat(e_362, "\" is not available.")); var i = new OperatorList; h[e_362] = i.getIR(); })); })); }; for (var _b = 0, _j = g.getKeys(); _b < _j.length; _b++) { var e_362 = _j[_b]; _loop_2(e_362); } this.type3Loaded = o.then((function () { r.charProcOperatorList = h; if (_this._bbox) { r.isCharBBox = !0; r.bbox = _this._bbox; } })); return this.type3Loaded; }; TranslatedFont.prototype._removeType3ColorOperators = function (e, t) { if (t === void 0) { t = NaN; } var i = Util.normalizeRect(e.argsArray[0].slice(2)), a = i[2] - i[0], s = i[3] - i[1], r = Math.hypot(a, s); if (0 === a || 0 === s) { e.fnArray.splice(0, 1); e.argsArray.splice(0, 1); } else if (0 === t || Math.round(r / t) >= 10) { this._bbox || (this._bbox = [1 / 0, 1 / 0, -1 / 0, -1 / 0]); this._bbox[0] = Math.min(this._bbox[0], i[0]); this._bbox[1] = Math.min(this._bbox[1], i[1]); this._bbox[2] = Math.max(this._bbox[2], i[2]); this._bbox[3] = Math.max(this._bbox[3], i[3]); } var n = 0, o = e.length; for (; n < o;) { switch (e.fnArray[n]) { case Ee: break; case ue: case de: case fe: case pe: case me: case ye: case we: case be: case De: case Fe: case Se: case ke: case Re: case kA: e.fnArray.splice(n, 1); e.argsArray.splice(n, 1); o--; continue; case NA: var t_281 = e.argsArray[n][0]; var i_234 = 0, a_191 = t_281.length; for (; i_234 < a_191;) { var e_364 = t_281[i_234][0]; switch (e_364) { case "TR": case "TR2": case "HT": case "BG": case "BG2": case "UCR": case "UCR2": t_281.splice(i_234, 1); a_191--; continue; } i_234++; } } n++; } }; return TranslatedFont; }()); var StateManager = /** @class */ (function () { function StateManager(e) { if (e === void 0) { e = new EvalState; } this.state = e; this.stateStack = []; } StateManager.prototype.save = function () { var e = this.state; this.stateStack.push(this.state); this.state = e.clone(); }; StateManager.prototype.restore = function () { var e = this.stateStack.pop(); e && (this.state = e); }; StateManager.prototype.transform = function (e) { this.state.ctm = Util.transform(this.state.ctm, e); }; return StateManager; }()); var TextState = /** @class */ (function () { function TextState() { this.ctm = new Float32Array(i); this.fontName = null; this.fontSize = 0; this.loadedName = null; this.font = null; this.fontMatrix = a; this.textMatrix = i.slice(); this.textLineMatrix = i.slice(); this.charSpacing = 0; this.wordSpacing = 0; this.leading = 0; this.textHScale = 1; this.textRise = 0; } TextState.prototype.setTextMatrix = function (e, t, i, a, s, r) { var n = this.textMatrix; n[0] = e; n[1] = t; n[2] = i; n[3] = a; n[4] = s; n[5] = r; }; TextState.prototype.setTextLineMatrix = function (e, t, i, a, s, r) { var n = this.textLineMatrix; n[0] = e; n[1] = t; n[2] = i; n[3] = a; n[4] = s; n[5] = r; }; TextState.prototype.translateTextMatrix = function (e, t) { var i = this.textMatrix; i[4] = i[0] * e + i[2] * t + i[4]; i[5] = i[1] * e + i[3] * t + i[5]; }; TextState.prototype.translateTextLineMatrix = function (e, t) { var i = this.textLineMatrix; i[4] = i[0] * e + i[2] * t + i[4]; i[5] = i[1] * e + i[3] * t + i[5]; }; TextState.prototype.carriageReturn = function () { this.translateTextLineMatrix(0, -this.leading); this.textMatrix = this.textLineMatrix.slice(); }; TextState.prototype.clone = function () { var e = Object.create(this); e.textMatrix = this.textMatrix.slice(); e.textLineMatrix = this.textLineMatrix.slice(); e.fontMatrix = this.fontMatrix.slice(); return e; }; return TextState; }()); var EvalState = /** @class */ (function () { function EvalState() { this.ctm = new Float32Array(i); this.font = null; this.textRenderingMode = y; this.fillColorSpace = ColorSpace.singletons.gray; this.strokeColorSpace = ColorSpace.singletons.gray; } EvalState.prototype.clone = function () { return Object.create(this); }; return EvalState; }()); var EvaluatorPreprocessor = /** @class */ (function () { function EvaluatorPreprocessor(e, t, i) { if (i === void 0) { i = new StateManager; } this.parser = new Parser({ lexer: new Lexer(e, EvaluatorPreprocessor.opMap), xref: t }); this.stateManager = i; this.nonProcessedArgs = []; this._isPathOp = !1; this._numInvalidPathOPS = 0; } Object.defineProperty(EvaluatorPreprocessor, "opMap", { get: function () { return shadow(this, "opMap", Object.assign(Object.create(null), { w: { id: wA, numArgs: 1, variableArgs: !1 }, J: { id: bA, numArgs: 1, variableArgs: !1 }, j: { id: DA, numArgs: 1, variableArgs: !1 }, M: { id: FA, numArgs: 1, variableArgs: !1 }, d: { id: SA, numArgs: 2, variableArgs: !1 }, ri: { id: kA, numArgs: 1, variableArgs: !1 }, i: { id: RA, numArgs: 1, variableArgs: !1 }, gs: { id: NA, numArgs: 1, variableArgs: !1 }, q: { id: GA, numArgs: 0, variableArgs: !1 }, Q: { id: xA, numArgs: 0, variableArgs: !1 }, cm: { id: MA, numArgs: 6, variableArgs: !1 }, m: { id: UA, numArgs: 2, variableArgs: !1 }, l: { id: LA, numArgs: 2, variableArgs: !1 }, c: { id: JA, numArgs: 6, variableArgs: !1 }, v: { id: HA, numArgs: 4, variableArgs: !1 }, y: { id: YA, numArgs: 4, variableArgs: !1 }, h: { id: vA, numArgs: 0, variableArgs: !1 }, re: { id: KA, numArgs: 4, variableArgs: !1 }, S: { id: TA, numArgs: 0, variableArgs: !1 }, s: { id: qA, numArgs: 0, variableArgs: !1 }, f: { id: OA, numArgs: 0, variableArgs: !1 }, F: { id: OA, numArgs: 0, variableArgs: !1 }, "f*": { id: PA, numArgs: 0, variableArgs: !1 }, B: { id: WA, numArgs: 0, variableArgs: !1 }, "B*": { id: XA, numArgs: 0, variableArgs: !1 }, b: { id: jA, numArgs: 0, variableArgs: !1 }, "b*": { id: ZA, numArgs: 0, variableArgs: !1 }, n: { id: VA, numArgs: 0, variableArgs: !1 }, W: { id: zA, numArgs: 0, variableArgs: !1 }, "W*": { id: _A, numArgs: 0, variableArgs: !1 }, BT: { id: $A, numArgs: 0, variableArgs: !1 }, ET: { id: Ae, numArgs: 0, variableArgs: !1 }, Tc: { id: ee, numArgs: 1, variableArgs: !1 }, Tw: { id: te, numArgs: 1, variableArgs: !1 }, Tz: { id: ie, numArgs: 1, variableArgs: !1 }, TL: { id: ae, numArgs: 1, variableArgs: !1 }, Tf: { id: se, numArgs: 2, variableArgs: !1 }, Tr: { id: re, numArgs: 1, variableArgs: !1 }, Ts: { id: ne, numArgs: 1, variableArgs: !1 }, Td: { id: oe, numArgs: 2, variableArgs: !1 }, TD: { id: ge, numArgs: 2, variableArgs: !1 }, Tm: { id: Ie, numArgs: 6, variableArgs: !1 }, "T*": { id: ce, numArgs: 0, variableArgs: !1 }, Tj: { id: he, numArgs: 1, variableArgs: !1 }, TJ: { id: le, numArgs: 1, variableArgs: !1 }, "'": { id: Ce, numArgs: 1, variableArgs: !1 }, '"': { id: Be, numArgs: 3, variableArgs: !1 }, d0: { id: Qe, numArgs: 2, variableArgs: !1 }, d1: { id: Ee, numArgs: 6, variableArgs: !1 }, CS: { id: ue, numArgs: 1, variableArgs: !1 }, cs: { id: de, numArgs: 1, variableArgs: !1 }, SC: { id: fe, numArgs: 4, variableArgs: !0 }, SCN: { id: pe, numArgs: 33, variableArgs: !0 }, sc: { id: me, numArgs: 4, variableArgs: !0 }, scn: { id: ye, numArgs: 33, variableArgs: !0 }, G: { id: we, numArgs: 1, variableArgs: !1 }, g: { id: be, numArgs: 1, variableArgs: !1 }, RG: { id: De, numArgs: 3, variableArgs: !1 }, rg: { id: Fe, numArgs: 3, variableArgs: !1 }, K: { id: Se, numArgs: 4, variableArgs: !1 }, k: { id: ke, numArgs: 4, variableArgs: !1 }, sh: { id: Re, numArgs: 1, variableArgs: !1 }, BI: { id: Ne, numArgs: 0, variableArgs: !1 }, ID: { id: Ge, numArgs: 0, variableArgs: !1 }, EI: { id: xe, numArgs: 1, variableArgs: !1 }, Do: { id: Me, numArgs: 1, variableArgs: !1 }, MP: { id: Ue, numArgs: 1, variableArgs: !1 }, DP: { id: Le, numArgs: 2, variableArgs: !1 }, BMC: { id: Je, numArgs: 1, variableArgs: !1 }, BDC: { id: He, numArgs: 2, variableArgs: !1 }, EMC: { id: Ye, numArgs: 0, variableArgs: !1 }, BX: { id: ve, numArgs: 0, variableArgs: !1 }, EX: { id: Ke, numArgs: 0, variableArgs: !1 }, BM: null, BD: null, true: null, fa: null, fal: null, fals: null, false: null, nu: null, nul: null, null: null })); }, enumerable: false, configurable: true }); Object.defineProperty(EvaluatorPreprocessor.prototype, "savedStatesDepth", { get: function () { return this.stateManager.stateStack.length; }, enumerable: false, configurable: true }); EvaluatorPreprocessor.prototype.read = function (e) { var t = e.args; for (;;) { var i_235 = this.parser.getObj(); if (i_235 instanceof Cmd) { var a_192 = i_235.cmd, s_139 = EvaluatorPreprocessor.opMap[a_192]; if (!s_139) { warn("Unknown command \"".concat(a_192, "\".")); continue; } var r_103 = s_139.id, n_74 = s_139.numArgs; var o_51 = null !== t ? t.length : 0; this._isPathOp || (this._numInvalidPathOPS = 0); this._isPathOp = r_103 >= UA && r_103 <= VA; if (s_139.variableArgs) o_51 > n_74 && info("Command ".concat(a_192, ": expected [0, ").concat(n_74, "] args, but received ").concat(o_51, " args.")); else { if (o_51 !== n_74) { var e_365 = this.nonProcessedArgs; for (; o_51 > n_74;) { e_365.push(t.shift()); o_51--; } for (; o_51 < n_74 && 0 !== e_365.length;) { null === t && (t = []); t.unshift(e_365.pop()); o_51++; } } if (o_51 < n_74) { var e_366 = "command ".concat(a_192, ": expected ").concat(n_74, " args, but received ").concat(o_51, " args."); if (this._isPathOp && ++this._numInvalidPathOPS > EvaluatorPreprocessor.MAX_INVALID_PATH_OPS) throw new FormatError("Invalid ".concat(e_366)); warn("Skipping ".concat(e_366)); null !== t && (t.length = 0); continue; } } this.preprocessCommand(r_103, t); e.fn = r_103; e.args = t; return !0; } if (i_235 === pt) return !1; if (null !== i_235) { null === t && (t = []); t.push(i_235); if (t.length > 33) throw new FormatError("Too many arguments"); } } }; EvaluatorPreprocessor.prototype.preprocessCommand = function (e, t) { switch (0 | e) { case GA: this.stateManager.save(); break; case xA: this.stateManager.restore(); break; case MA: this.stateManager.transform(t); } }; EvaluatorPreprocessor.MAX_INVALID_PATH_OPS = 10; return EvaluatorPreprocessor; }()); var DefaultAppearanceEvaluator = /** @class */ (function (_super) { tslib_1.__extends(DefaultAppearanceEvaluator, _super); function DefaultAppearanceEvaluator(e) { return _super.call(this, new StringStream(e)) || this; } DefaultAppearanceEvaluator.prototype.parse = function () { var e = { fn: 0, args: [] }, t = { fontSize: 0, fontName: "", fontColor: new Uint8ClampedArray(3) }; try { for (;;) { e.args.length = 0; if (!this.read(e)) break; if (0 !== this.savedStatesDepth) continue; var i_236 = e.fn, a_193 = e.args; switch (0 | i_236) { case se: var e_367 = a_193[0], i_237 = a_193[1]; e_367 instanceof Name && (t.fontName = e_367.name); "number" == typeof i_237 && i_237 > 0 && (t.fontSize = i_237); break; case Fe: ColorSpace.singletons.rgb.getRgbItem(a_193, 0, t.fontColor, 0); break; case be: ColorSpace.singletons.gray.getRgbItem(a_193, 0, t.fontColor, 0); break; case ke: ColorSpace.singletons.cmyk.getRgbItem(a_193, 0, t.fontColor, 0); } } } catch (e) { warn("parseDefaultAppearance - ignoring errors: \"".concat(e, "\".")); } return t; }; return DefaultAppearanceEvaluator; }(EvaluatorPreprocessor)); function parseDefaultAppearance(e) { return new DefaultAppearanceEvaluator(e).parse(); } var AppearanceStreamEvaluator = /** @class */ (function (_super) { tslib_1.__extends(AppearanceStreamEvaluator, _super); function AppearanceStreamEvaluator(e, t, i) { var _this = this; var _b; _this = _super.call(this, e) || this; _this.stream = e; _this.evaluatorOptions = t; _this.xref = i; _this.resources = (_b = e.dict) === null || _b === void 0 ? void 0 : _b.get("Resources"); return _this; } AppearanceStreamEvaluator.prototype.parse = function () { var e = { fn: 0, args: [] }; var t = { scaleFactor: 1, fontSize: 0, fontName: "", fontColor: new Uint8ClampedArray(3), fillColorSpace: ColorSpace.singletons.gray }, i = !1; var a = []; try { for (;;) { e.args.length = 0; if (i || !this.read(e)) break; var s_140 = e.fn, r_104 = e.args; switch (0 | s_140) { case GA: a.push({ scaleFactor: t.scaleFactor, fontSize: t.fontSize, fontName: t.fontName, fontColor: t.fontColor.slice(), fillColorSpace: t.fillColorSpace }); break; case xA: t = a.pop() || t; break; case Ie: t.scaleFactor *= Math.hypot(r_104[0], r_104[1]); break; case se: var e_368 = r_104[0], s_141 = r_104[1]; e_368 instanceof Name && (t.fontName = e_368.name); "number" == typeof s_141 && s_141 > 0 && (t.fontSize = s_141 * t.scaleFactor); break; case de: t.fillColorSpace = ColorSpace.parse({ cs: r_104[0], xref: this.xref, resources: this.resources, pdfFunctionFactory: this._pdfFunctionFactory, localColorSpaceCache: this._localColorSpaceCache }); break; case me: t.fillColorSpace.getRgbItem(r_104, 0, t.fontColor, 0); break; case Fe: ColorSpace.singletons.rgb.getRgbItem(r_104, 0, t.fontColor, 0); break; case be: ColorSpace.singletons.gray.getRgbItem(r_104, 0, t.fontColor, 0); break; case ke: ColorSpace.singletons.cmyk.getRgbItem(r_104, 0, t.fontColor, 0); break; case he: case le: case Ce: case Be: i = !0; } } } catch (e) { warn("parseAppearanceStream - ignoring errors: \"".concat(e, "\".")); } this.stream.reset(); delete t.scaleFactor; delete t.fillColorSpace; return t; }; Object.defineProperty(AppearanceStreamEvaluator.prototype, "_localColorSpaceCache", { get: function () { return shadow(this, "_localColorSpaceCache", new LocalColorSpaceCache); }, enumerable: false, configurable: true }); Object.defineProperty(AppearanceStreamEvaluator.prototype, "_pdfFunctionFactory", { get: function () { return shadow(this, "_pdfFunctionFactory", new PDFFunctionFactory({ xref: this.xref, isEvalSupported: this.evaluatorOptions.isEvalSupported })); }, enumerable: false, configurable: true }); return AppearanceStreamEvaluator; }(EvaluatorPreprocessor)); function getPdfColor(e, t) { if (e[0] === e[1] && e[1] === e[2]) { return "".concat(numberToString(e[0] / 255), " ").concat(t ? "g" : "G"); } return Array.from(e, (function (e) { return numberToString(e / 255); })).join(" ") + " " + (t ? "rg" : "RG"); } var FakeUnicodeFont = /** @class */ (function () { function FakeUnicodeFont(e, t) { this.xref = e; this.widths = null; this.firstChar = 1 / 0; this.lastChar = -1 / 0; this.fontFamily = t; var i = new OffscreenCanvas(1, 1); this.ctxMeasure = i.getContext("2d"); FakeUnicodeFont._fontNameId || (FakeUnicodeFont._fontNameId = 1); this.fontName = Name.get("InvalidPDFjsFont_".concat(t, "_").concat(FakeUnicodeFont._fontNameId++)); } Object.defineProperty(FakeUnicodeFont.prototype, "fontDescriptorRef", { get: function () { if (!FakeUnicodeFont._fontDescriptorRef) { var e_369 = new Dict(this.xref); e_369.set("Type", Name.get("FontDescriptor")); e_369.set("FontName", this.fontName); e_369.set("FontFamily", "MyriadPro Regular"); e_369.set("FontBBox", [0, 0, 0, 0]); e_369.set("FontStretch", Name.get("Normal")); e_369.set("FontWeight", 400); e_369.set("ItalicAngle", 0); FakeUnicodeFont._fontDescriptorRef = this.xref.getNewPersistentRef(e_369); } return FakeUnicodeFont._fontDescriptorRef; }, enumerable: false, configurable: true }); Object.defineProperty(FakeUnicodeFont.prototype, "descendantFontRef", { get: function () { var e = new Dict(this.xref); e.set("BaseFont", this.fontName); e.set("Type", Name.get("Font")); e.set("Subtype", Name.get("CIDFontType0")); e.set("CIDToGIDMap", Name.get("Identity")); e.set("FirstChar", this.firstChar); e.set("LastChar", this.lastChar); e.set("FontDescriptor", this.fontDescriptorRef); e.set("DW", 1e3); var t = [], i = tslib_1.__spreadArray([], this.widths.entries(), true).sort(); var a = null, s = null; for (var _b = 0, i_238 = i; _b < i_238.length; _b++) { var _j = i_238[_b], e_370 = _j[0], r_105 = _j[1]; if (a) if (e_370 === a + s.length) s.push(r_105); else { t.push(a, s); a = e_370; s = [r_105]; } else { a = e_370; s = [r_105]; } } a && t.push(a, s); e.set("W", t); var r = new Dict(this.xref); r.set("Ordering", "Identity"); r.set("Registry", "Adobe"); r.set("Supplement", 0); e.set("CIDSystemInfo", r); return this.xref.getNewPersistentRef(e); }, enumerable: false, configurable: true }); Object.defineProperty(FakeUnicodeFont.prototype, "baseFontRef", { get: function () { var e = new Dict(this.xref); e.set("BaseFont", this.fontName); e.set("Type", Name.get("Font")); e.set("Subtype", Name.get("Type0")); e.set("Encoding", Name.get("Identity-H")); e.set("DescendantFonts", [this.descendantFontRef]); e.set("ToUnicode", Name.get("Identity-H")); return this.xref.getNewPersistentRef(e); }, enumerable: false, configurable: true }); Object.defineProperty(FakeUnicodeFont.prototype, "resources", { get: function () { var e = new Dict(this.xref), t = new Dict(this.xref); t.set(this.fontName.name, this.baseFontRef); e.set("Font", t); return e; }, enumerable: false, configurable: true }); FakeUnicodeFont.prototype._createContext = function () { this.widths = new Map; this.ctxMeasure.font = "1000px ".concat(this.fontFamily); return this.ctxMeasure; }; FakeUnicodeFont.prototype.createFontResources = function (e) { var t = this._createContext(); for (var _b = 0, _j = e.split(/\r\n?|\n/); _b < _j.length; _b++) { var i_239 = _j[_b]; for (var _k = 0, _l = i_239.split(""); _k < _l.length; _k++) { var e_371 = _l[_k]; var i_240 = e_371.charCodeAt(0); if (this.widths.has(i_240)) continue; var a_194 = t.measureText(e_371), s_142 = Math.ceil(a_194.width); this.widths.set(i_240, s_142); this.firstChar = Math.min(i_240, this.firstChar); this.lastChar = Math.max(i_240, this.lastChar); } } return this.resources; }; FakeUnicodeFont.getFirstPositionInfo = function (e, t, i) { var _b; var a = e[0], n = e[1], o = e[2], g = e[3]; var c = o - a, h = g - n; t % 180 != 0 && (_b = [h, c], c = _b[0], h = _b[1], _b); var l = s * i; return { coords: [0, h + r * i - l], bbox: [0, 0, c, h], matrix: 0 !== t ? getRotationMatrix(t, h, l) : void 0 }; }; FakeUnicodeFont.prototype.createAppearance = function (e, t, i, a, n, o) { var _b; var g = this._createContext(), c = []; var h = -1 / 0; for (var _j = 0, _k = e.split(/\r\n?|\n/); _j < _k.length; _j++) { var t_282 = _k[_j]; c.push(t_282); var e_372 = g.measureText(t_282).width; h = Math.max(h, e_372); for (var _l = 0, _m = codePointIter(t_282); _l < _m.length; _l++) { var e_373 = _m[_l]; var t_283 = String.fromCodePoint(e_373); var i_241 = this.widths.get(e_373); if (void 0 === i_241) { var a_195 = g.measureText(t_283); i_241 = Math.ceil(a_195.width); this.widths.set(e_373, i_241); this.firstChar = Math.min(e_373, this.firstChar); this.lastChar = Math.max(e_373, this.lastChar); } } } h *= a / 1e3; var l = t[0], C = t[1], Q = t[2], E = t[3]; var u = Q - l, d = E - C; i % 180 != 0 && (_b = [d, u], u = _b[0], d = _b[1], _b); var f = 1; h > u && (f = u / h); var p = 1; var m = s * a, y = r * a, w = m * c.length; w > d && (p = d / w); var b = a * Math.min(f, p), D = ["q", "0 0 ".concat(numberToString(u), " ").concat(numberToString(d), " re W n"), "BT", "1 0 0 1 0 ".concat(numberToString(d + y), " Tm 0 Tc ").concat(getPdfColor(n, !0)), "/".concat(this.fontName.name, " ").concat(numberToString(b), " Tf")], F = this.resources; if (1 !== (o = "number" == typeof o && o >= 0 && o <= 1 ? o : 1)) { D.push("/R0 gs"); var e_374 = new Dict(this.xref), t_284 = new Dict(this.xref); t_284.set("ca", o); t_284.set("CA", o); t_284.set("Type", Name.get("ExtGState")); e_374.set("R0", t_284); F.set("ExtGState", e_374); } var S = numberToString(m); for (var _o = 0, c_23 = c; _o < c_23.length; _o++) { var e_375 = c_23[_o]; D.push("0 -".concat(S, " Td <").concat(stringToUTF16HexString(e_375), "> Tj")); } D.push("ET", "Q"); var k = D.join("\n"), R = new Dict(this.xref); R.set("Subtype", Name.get("Form")); R.set("Type", Name.get("XObject")); R.set("BBox", [0, 0, u, d]); R.set("Length", k.length); R.set("Resources", F); if (i) { var e_376 = getRotationMatrix(i, u, d); R.set("Matrix", e_376); } var N = new StringStream(k); N.dict = R; return N; }; return FakeUnicodeFont; }()); var NameOrNumberTree = /** @class */ (function () { function NameOrNumberTree(e, t, i) { this.constructor === NameOrNumberTree && unreachable("Cannot initialize NameOrNumberTree."); this.root = e; this.xref = t; this._type = i; } NameOrNumberTree.prototype.getAll = function () { var e = new Map; if (!this.root) return e; var t = this.xref, i = new RefSet; i.put(this.root); var a = [this.root]; for (; a.length > 0;) { var s_143 = t.fetchIfRef(a.shift()); if (!(s_143 instanceof Dict)) continue; if (s_143.has("Kids")) { var e_378 = s_143.get("Kids"); if (!Array.isArray(e_378)) continue; for (var _b = 0, e_377 = e_378; _b < e_377.length; _b++) { var t_285 = e_377[_b]; if (i.has(t_285)) throw new FormatError("Duplicate entry in \"".concat(this._type, "\" tree.")); a.push(t_285); i.put(t_285); } continue; } var r_106 = s_143.get(this._type); if (Array.isArray(r_106)) for (var i_242 = 0, a_196 = r_106.length; i_242 < a_196; i_242 += 2) e.set(t.fetchIfRef(r_106[i_242]), t.fetchIfRef(r_106[i_242 + 1])); } return e; }; NameOrNumberTree.prototype.get = function (e) { if (!this.root) return null; var t = this.xref; var i = t.fetchIfRef(this.root), a = 0; for (; i.has("Kids");) { if (++a > 10) { warn("Search depth limit reached for \"".concat(this._type, "\" tree.")); return null; } var s_144 = i.get("Kids"); if (!Array.isArray(s_144)) return null; var r_107 = 0, n_75 = s_144.length - 1; for (; r_107 <= n_75;) { var a_197 = r_107 + n_75 >> 1, o_52 = t.fetchIfRef(s_144[a_197]), g_36 = o_52.get("Limits"); if (e < t.fetchIfRef(g_36[0])) n_75 = a_197 - 1; else { if (!(e > t.fetchIfRef(g_36[1]))) { i = o_52; break; } r_107 = a_197 + 1; } } if (r_107 > n_75) return null; } var s = i.get(this._type); if (Array.isArray(s)) { var i_243 = 0, a_198 = s.length - 2; for (; i_243 <= a_198;) { var r_108 = i_243 + a_198 >> 1, n_76 = r_108 + (1 & r_108), o_53 = t.fetchIfRef(s[n_76]); if (e < o_53) a_198 = n_76 - 2; else { if (!(e > o_53)) return t.fetchIfRef(s[n_76 + 1]); i_243 = n_76 + 2; } } } return null; }; return NameOrNumberTree; }()); var NameTree = /** @class */ (function (_super) { tslib_1.__extends(NameTree, _super); function NameTree(e, t) { return _super.call(this, e, t, "Names") || this; } return NameTree; }(NameOrNumberTree)); var NumberTree = /** @class */ (function (_super) { tslib_1.__extends(NumberTree, _super); function NumberTree(e, t) { return _super.call(this, e, t, "Nums") || this; } return NumberTree; }(NameOrNumberTree)); function clearGlobalCaches() { !function clearPatternCaches() { ya = Object.create(null); }(); !function clearPrimitiveCaches() { mt = Object.create(null); yt = Object.create(null); wt = Object.create(null); }(); !function clearUnicodeCaches() { Hi.clear(); }(); JpxImage.cleanup(); } function pickPlatformItem(e) { return e instanceof Dict ? e.has("UF") ? e.get("UF") : e.has("F") ? e.get("F") : e.has("Unix") ? e.get("Unix") : e.has("Mac") ? e.get("Mac") : e.has("DOS") ? e.get("DOS") : null : null; } var FileSpec = /** @class */ (function () { function FileSpec(e, t, i) { if (i === void 0) { i = !1; } _FileSpec_S.set(this, !1); if (e instanceof Dict) { this.xref = t; this.root = e; e.has("FS") && (this.fs = e.get("FS")); e.has("RF") && warn("Related file specifications are not supported"); i || (e.has("EF") ? tslib_1.__classPrivateFieldSet(this, _FileSpec_S, !0, "f") : warn("Non-embedded file specifications are not supported")); } } Object.defineProperty(FileSpec.prototype, "filename", { get: function () { var e = ""; var t = pickPlatformItem(this.root); t && "string" == typeof t && (e = stringToPDFString(t).replaceAll("\\\\", "\\").replaceAll("\\/", "/").replaceAll("\\", "/")); return shadow(this, "filename", e || "unnamed"); }, enumerable: false, configurable: true }); Object.defineProperty(FileSpec.prototype, "content", { get: function () { var _b; if (!tslib_1.__classPrivateFieldGet(this, _FileSpec_S, "f")) return null; this._contentRef || (this._contentRef = pickPlatformItem((_b = this.root) === null || _b === void 0 ? void 0 : _b.get("EF"))); var e = null; if (this._contentRef) { var t_286 = this.xref.fetchIfRef(this._contentRef); t_286 instanceof BaseStream ? e = t_286.getBytes() : warn("Embedded file specification points to non-existing/invalid content"); } else warn("Embedded file specification does not have any content"); return e; }, enumerable: false, configurable: true }); Object.defineProperty(FileSpec.prototype, "description", { get: function () { var _b; var e = ""; var t = (_b = this.root) === null || _b === void 0 ? void 0 : _b.get("Desc"); t && "string" == typeof t && (e = stringToPDFString(t)); return shadow(this, "description", e); }, enumerable: false, configurable: true }); Object.defineProperty(FileSpec.prototype, "serializable", { get: function () { return { rawFilename: this.filename, filename: (e = this.filename, e.substring(e.lastIndexOf("/") + 1)), content: this.content, description: this.description }; var e; }, enumerable: false, configurable: true }); return FileSpec; }()); _FileSpec_S = new WeakMap(); var Rs = 0, Ns = -2, Gs = -3, xs = -4, Ms = -5, Us = -6, Ls = -9; function isWhitespace(e, t) { var i = e[t]; return " " === i || "\n" === i || "\r" === i || "\t" === i; } var XMLParserBase = /** @class */ (function () { function XMLParserBase() { } XMLParserBase.prototype._resolveEntities = function (e) { var _this = this; return e.replaceAll(/&([^;]+);/g, (function (e, t) { if ("#x" === t.substring(0, 2)) return String.fromCodePoint(parseInt(t.substring(2), 16)); if ("#" === t.substring(0, 1)) return String.fromCodePoint(parseInt(t.substring(1), 10)); switch (t) { case "lt": return "<"; case "gt": return ">"; case "amp": return "&"; case "quot": return '"'; case "apos": return "'"; } return _this.onResolveEntity(t); })); }; XMLParserBase.prototype._parseContent = function (e, t) { var i = []; var a = t; function skipWs() { for (; a < e.length && isWhitespace(e, a);) ++a; } for (; a < e.length && !isWhitespace(e, a) && ">" !== e[a] && "/" !== e[a];) ++a; var s = e.substring(t, a); skipWs(); for (; a < e.length && ">" !== e[a] && "/" !== e[a] && "?" !== e[a];) { skipWs(); var t_287 = "", s_145 = ""; for (; a < e.length && !isWhitespace(e, a) && "=" !== e[a];) { t_287 += e[a]; ++a; } skipWs(); if ("=" !== e[a]) return null; ++a; skipWs(); var r_109 = e[a]; if ('"' !== r_109 && "'" !== r_109) return null; var n_77 = e.indexOf(r_109, ++a); if (n_77 < 0) return null; s_145 = e.substring(a, n_77); i.push({ name: t_287, value: this._resolveEntities(s_145) }); a = n_77 + 1; skipWs(); } return { name: s, attributes: i, parsed: a - t }; }; XMLParserBase.prototype._parseProcessingInstruction = function (e, t) { var i = t; for (; i < e.length && !isWhitespace(e, i) && ">" !== e[i] && "?" !== e[i] && "/" !== e[i];) ++i; var a = e.substring(t, i); !function skipWs() { for (; i < e.length && isWhitespace(e, i);) ++i; }(); var s = i; for (; i < e.length && ("?" !== e[i] || ">" !== e[i + 1]);) ++i; return { name: a, value: e.substring(s, i), parsed: i - t }; }; XMLParserBase.prototype.parseXml = function (e) { var t = 0; for (; t < e.length;) { var i_244 = t; if ("<" === e[t]) { ++i_244; var t_288 = void 0; switch (e[i_244]) { case "/": ++i_244; t_288 = e.indexOf(">", i_244); if (t_288 < 0) { this.onError(Ls); return; } this.onEndElement(e.substring(i_244, t_288)); i_244 = t_288 + 1; break; case "?": ++i_244; var a_199 = this._parseProcessingInstruction(e, i_244); if ("?>" !== e.substring(i_244 + a_199.parsed, i_244 + a_199.parsed + 2)) { this.onError(Gs); return; } this.onPi(a_199.name, a_199.value); i_244 += a_199.parsed + 2; break; case "!": if ("--" === e.substring(i_244 + 1, i_244 + 3)) { t_288 = e.indexOf("--\x3e", i_244 + 3); if (t_288 < 0) { this.onError(Ms); return; } this.onComment(e.substring(i_244 + 3, t_288)); i_244 = t_288 + 3; } else if ("[CDATA[" === e.substring(i_244 + 1, i_244 + 8)) { t_288 = e.indexOf("]]>", i_244 + 8); if (t_288 < 0) { this.onError(Ns); return; } this.onCdata(e.substring(i_244 + 8, t_288)); i_244 = t_288 + 3; } else { if ("DOCTYPE" !== e.substring(i_244 + 1, i_244 + 8)) { this.onError(Us); return; } { var a_200 = e.indexOf("[", i_244 + 8); var s_146 = !1; t_288 = e.indexOf(">", i_244 + 8); if (t_288 < 0) { this.onError(xs); return; } if (a_200 > 0 && t_288 > a_200) { t_288 = e.indexOf("]>", i_244 + 8); if (t_288 < 0) { this.onError(xs); return; } s_146 = !0; } var r_110 = e.substring(i_244 + 8, t_288 + (s_146 ? 1 : 0)); this.onDoctype(r_110); i_244 = t_288 + (s_146 ? 2 : 1); } } break; default: var s_147 = this._parseContent(e, i_244); if (null === s_147) { this.onError(Us); return; } var r_111 = !1; if ("/>" === e.substring(i_244 + s_147.parsed, i_244 + s_147.parsed + 2)) r_111 = !0; else if (">" !== e.substring(i_244 + s_147.parsed, i_244 + s_147.parsed + 1)) { this.onError(Ls); return; } this.onBeginElement(s_147.name, s_147.attributes, r_111); i_244 += s_147.parsed + (r_111 ? 2 : 1); } } else { for (; i_244 < e.length && "<" !== e[i_244];) i_244++; var a_201 = e.substring(t, i_244); this.onText(this._resolveEntities(a_201)); } t = i_244; } }; XMLParserBase.prototype.onResolveEntity = function (e) { return "&".concat(e, ";"); }; XMLParserBase.prototype.onPi = function (e, t) { }; XMLParserBase.prototype.onComment = function (e) { }; XMLParserBase.prototype.onCdata = function (e) { }; XMLParserBase.prototype.onDoctype = function (e) { }; XMLParserBase.prototype.onText = function (e) { }; XMLParserBase.prototype.onBeginElement = function (e, t, i) { }; XMLParserBase.prototype.onEndElement = function (e) { }; XMLParserBase.prototype.onError = function (e) { }; return XMLParserBase; }()); var SimpleDOMNode = /** @class */ (function () { function SimpleDOMNode(e, t) { this.nodeName = e; this.nodeValue = t; Object.defineProperty(this, "parentNode", { value: null, writable: !0 }); } Object.defineProperty(SimpleDOMNode.prototype, "firstChild", { get: function () { var _b; return (_b = this.childNodes) === null || _b === void 0 ? void 0 : _b[0]; }, enumerable: false, configurable: true }); Object.defineProperty(SimpleDOMNode.prototype, "nextSibling", { get: function () { var e = this.parentNode.childNodes; if (!e) return; var t = e.indexOf(this); return -1 !== t ? e[t + 1] : void 0; }, enumerable: false, configurable: true }); Object.defineProperty(SimpleDOMNode.prototype, "textContent", { get: function () { return this.childNodes ? this.childNodes.map((function (e) { return e.textContent; })).join("") : this.nodeValue || ""; }, enumerable: false, configurable: true }); Object.defineProperty(SimpleDOMNode.prototype, "children", { get: function () { return this.childNodes || []; }, enumerable: false, configurable: true }); SimpleDOMNode.prototype.hasChildNodes = function () { var _b; return ((_b = this.childNodes) === null || _b === void 0 ? void 0 : _b.length) > 0; }; SimpleDOMNode.prototype.searchNode = function (e, t) { var _b; if (t >= e.length) return this; var i = e[t]; if (i.name.startsWith("#") && t < e.length - 1) return this.searchNode(e, t + 1); var a = []; var s = this; for (;;) { if (i.name === s.nodeName) { if (0 !== i.pos) { if (0 === a.length) return null; { var r_112 = a.pop()[0]; var n_78 = 0; for (var _j = 0, _k = r_112.childNodes; _j < _k.length; _j++) { var a_202 = _k[_j]; if (i.name === a_202.nodeName) { if (n_78 === i.pos) return a_202.searchNode(e, t + 1); n_78++; } } return s.searchNode(e, t + 1); } } { var i_245 = s.searchNode(e, t + 1); if (null !== i_245) return i_245; } } if (((_b = s.childNodes) === null || _b === void 0 ? void 0 : _b.length) > 0) { a.push([s, 0]); s = s.childNodes[0]; } else { if (0 === a.length) return null; for (; 0 !== a.length;) { var _l = a.pop(), e_379 = _l[0], t_289 = _l[1], i_246 = t_289 + 1; if (i_246 < e_379.childNodes.length) { a.push([e_379, i_246]); s = e_379.childNodes[i_246]; break; } } if (0 === a.length) return null; } } }; SimpleDOMNode.prototype.dump = function (e) { if ("#text" !== this.nodeName) { e.push("<".concat(this.nodeName)); if (this.attributes) for (var _b = 0, _j = this.attributes; _b < _j.length; _b++) { var t_290 = _j[_b]; e.push(" ".concat(t_290.name, "=\"").concat(encodeToXmlString(t_290.value), "\"")); } if (this.hasChildNodes()) { e.push(">"); for (var _k = 0, _l = this.childNodes; _k < _l.length; _k++) { var t_291 = _l[_k]; t_291.dump(e); } e.push("")); } else this.nodeValue ? e.push(">".concat(encodeToXmlString(this.nodeValue), "")) : e.push("/>"); } else e.push(encodeToXmlString(this.nodeValue)); }; return SimpleDOMNode; }()); var SimpleXMLParser = /** @class */ (function (_super) { tslib_1.__extends(SimpleXMLParser, _super); function SimpleXMLParser(_b) { var _j = _b.hasAttributes, e = _j === void 0 ? !1 : _j, _k = _b.lowerCaseName, t = _k === void 0 ? !1 : _k; var _this = _super.call(this) || this; _this._currentFragment = null; _this._stack = null; _this._errorCode = Rs; _this._hasAttributes = e; _this._lowerCaseName = t; return _this; } SimpleXMLParser.prototype.parseFromString = function (e) { this._currentFragment = []; this._stack = []; this._errorCode = Rs; this.parseXml(e); if (this._errorCode !== Rs) return; var t = this._currentFragment[0]; return t ? { documentElement: t } : void 0; }; SimpleXMLParser.prototype.onText = function (e) { if (function isWhitespaceString(e) { for (var t_292 = 0, i_247 = e.length; t_292 < i_247; t_292++) if (!isWhitespace(e, t_292)) return !1; return !0; }(e)) return; var t = new SimpleDOMNode("#text", e); this._currentFragment.push(t); }; SimpleXMLParser.prototype.onCdata = function (e) { var t = new SimpleDOMNode("#text", e); this._currentFragment.push(t); }; SimpleXMLParser.prototype.onBeginElement = function (e, t, i) { this._lowerCaseName && (e = e.toLowerCase()); var a = new SimpleDOMNode(e); a.childNodes = []; this._hasAttributes && (a.attributes = t); this._currentFragment.push(a); if (!i) { this._stack.push(this._currentFragment); this._currentFragment = a.childNodes; } }; SimpleXMLParser.prototype.onEndElement = function (e) { this._currentFragment = this._stack.pop() || []; var t = this._currentFragment.at(-1); if (!t) return null; for (var _b = 0, _j = t.childNodes; _b < _j.length; _b++) { var e_380 = _j[_b]; e_380.parentNode = t; } return t; }; SimpleXMLParser.prototype.onError = function (e) { this._errorCode = e; }; return SimpleXMLParser; }(XMLParserBase)); var MetadataParser = /** @class */ (function () { function MetadataParser(e) { e = this._repair(e); var t = new SimpleXMLParser({ lowerCaseName: !0 }).parseFromString(e); this._metadataMap = new Map; this._data = e; t && this._parse(t); } MetadataParser.prototype._repair = function (e) { return e.replace(/^[^<]+/, "").replaceAll(/>\\376\\377([^<]+)/g, (function (e, t) { var i = t.replaceAll(/\\([0-3])([0-7])([0-7])/g, (function (e, t, i, a) { return String.fromCharCode(64 * t + 8 * i + 1 * a); })).replaceAll(/&(amp|apos|gt|lt|quot);/g, (function (e, t) { switch (t) { case "amp": return "&"; case "apos": return "'"; case "gt": return ">"; case "lt": return "<"; case "quot": return '"'; } throw new Error("_repair: ".concat(t, " isn't defined.")); })), a = [">"]; for (var e_381 = 0, t_293 = i.length; e_381 < t_293; e_381 += 2) { var t_294 = 256 * i.charCodeAt(e_381) + i.charCodeAt(e_381 + 1); t_294 >= 32 && t_294 < 127 && 60 !== t_294 && 62 !== t_294 && 38 !== t_294 ? a.push(String.fromCharCode(t_294)) : a.push("&#x" + (65536 + t_294).toString(16).substring(1) + ";"); } return a.join(""); })); }; MetadataParser.prototype._getSequence = function (e) { var t = e.nodeName; return "rdf:bag" !== t && "rdf:seq" !== t && "rdf:alt" !== t ? null : e.childNodes.filter((function (e) { return "rdf:li" === e.nodeName; })); }; MetadataParser.prototype._parseArray = function (e) { if (!e.hasChildNodes()) return; var t = e.childNodes[0], i = this._getSequence(t) || []; this._metadataMap.set(e.nodeName, i.map((function (e) { return e.textContent.trim(); }))); }; MetadataParser.prototype._parse = function (e) { var t = e.documentElement; if ("rdf:rdf" !== t.nodeName) { t = t.firstChild; for (; t && "rdf:rdf" !== t.nodeName;) t = t.nextSibling; } if (t && "rdf:rdf" === t.nodeName && t.hasChildNodes()) for (var _b = 0, _j = t.childNodes; _b < _j.length; _b++) { var e_382 = _j[_b]; if ("rdf:description" === e_382.nodeName) for (var _k = 0, _l = e_382.childNodes; _k < _l.length; _k++) { var t_295 = _l[_k]; var e_383 = t_295.nodeName; switch (e_383) { case "#text": continue; case "dc:creator": case "dc:subject": this._parseArray(t_295); continue; } this._metadataMap.set(e_383, t_295.textContent.trim()); } } }; Object.defineProperty(MetadataParser.prototype, "serializable", { get: function () { return { parsedData: this._metadataMap, rawData: this._data }; }, enumerable: false, configurable: true }); return MetadataParser; }()); var DecryptStream = /** @class */ (function (_super) { tslib_1.__extends(DecryptStream, _super); function DecryptStream(e, t, i) { var _this = _super.call(this, t) || this; _this.str = e; _this.dict = e.dict; _this.decrypt = i; _this.nextChunk = null; _this.initialized = !1; return _this; } DecryptStream.prototype.readBlock = function () { var _b; var e; if (this.initialized) e = this.nextChunk; else { e = this.str.getBytes(512); this.initialized = !0; } if (!e || 0 === e.length) { this.eof = !0; return; } this.nextChunk = this.str.getBytes(512); var t = ((_b = this.nextChunk) === null || _b === void 0 ? void 0 : _b.length) > 0; e = (0, this.decrypt)(e, !t); var i = this.bufferLength, a = i + e.length; this.ensureBuffer(a).set(e, i); this.bufferLength = a; }; return DecryptStream; }(DecodeStream)); var ARCFourCipher = /** @class */ (function () { function ARCFourCipher(e) { this.a = 0; this.b = 0; var t = new Uint8Array(256), i = e.length; for (var e_384 = 0; e_384 < 256; ++e_384) t[e_384] = e_384; for (var a_203 = 0, s_148 = 0; a_203 < 256; ++a_203) { var r_113 = t[a_203]; s_148 = s_148 + r_113 + e[a_203 % i] & 255; t[a_203] = t[s_148]; t[s_148] = r_113; } this.s = t; } ARCFourCipher.prototype.encryptBlock = function (e) { var t = this.a, i = this.b; var a = this.s, s = e.length, r = new Uint8Array(s); for (var n_79 = 0; n_79 < s; ++n_79) { t = t + 1 & 255; var s_149 = a[t]; i = i + s_149 & 255; var o_54 = a[i]; a[t] = o_54; a[i] = s_149; r[n_79] = e[n_79] ^ a[s_149 + o_54 & 255]; } this.a = t; this.b = i; return r; }; ARCFourCipher.prototype.decryptBlock = function (e) { return this.encryptBlock(e); }; ARCFourCipher.prototype.encrypt = function (e) { return this.encryptBlock(e); }; return ARCFourCipher; }()); var Js = function calculateMD5Closure() { var e = 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]), t = 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(i, a, s) { var r = 1732584193, n = -271733879, o = -1732584194, g = 271733878; var c = s + 72 & -64, h = new Uint8Array(c); var l, C; for (l = 0; l < s; ++l) h[l] = i[a++]; h[l++] = 128; var Q = c - 8; for (; l < Q;) h[l++] = 0; h[l++] = s << 3 & 255; h[l++] = s >> 5 & 255; h[l++] = s >> 13 & 255; h[l++] = s >> 21 & 255; h[l++] = s >>> 29 & 255; h[l++] = 0; h[l++] = 0; h[l++] = 0; var E = new Int32Array(16); for (l = 0; l < c;) { for (C = 0; C < 16; ++C, l += 4) E[C] = h[l] | h[l + 1] << 8 | h[l + 2] << 16 | h[l + 3] << 24; var i_248 = void 0, a_204 = void 0, s_150 = r, c_24 = n, Q_17 = o, u_9 = g; for (C = 0; C < 64; ++C) { if (C < 16) { i_248 = c_24 & Q_17 | ~c_24 & u_9; a_204 = C; } else if (C < 32) { i_248 = u_9 & c_24 | ~u_9 & Q_17; a_204 = 5 * C + 1 & 15; } else if (C < 48) { i_248 = c_24 ^ Q_17 ^ u_9; a_204 = 3 * C + 5 & 15; } else { i_248 = Q_17 ^ (c_24 | ~u_9); a_204 = 7 * C & 15; } var r_114 = u_9, n_80 = s_150 + i_248 + t[C] + E[a_204] | 0, o_55 = e[C]; u_9 = Q_17; Q_17 = c_24; c_24 = c_24 + (n_80 << o_55 | n_80 >>> 32 - o_55) | 0; s_150 = r_114; } r = r + s_150 | 0; n = n + c_24 | 0; o = o + Q_17 | 0; g = g + u_9 | 0; } return new Uint8Array([255 & r, r >> 8 & 255, r >> 16 & 255, r >>> 24 & 255, 255 & n, n >> 8 & 255, n >> 16 & 255, n >>> 24 & 255, 255 & o, o >> 8 & 255, o >> 16 & 255, o >>> 24 & 255, 255 & g, g >> 8 & 255, g >> 16 & 255, g >>> 24 & 255]); }; }(); var Word64 = /** @class */ (function () { function Word64(e, t) { this.high = 0 | e; this.low = 0 | t; } Word64.prototype.and = function (e) { this.high &= e.high; this.low &= e.low; }; Word64.prototype.xor = function (e) { this.high ^= e.high; this.low ^= e.low; }; Word64.prototype.or = function (e) { this.high |= e.high; this.low |= e.low; }; Word64.prototype.shiftRight = function (e) { if (e >= 32) { this.low = this.high >>> e - 32 | 0; this.high = 0; } else { this.low = this.low >>> e | this.high << 32 - e; this.high = this.high >>> e | 0; } }; Word64.prototype.shiftLeft = function (e) { if (e >= 32) { this.high = this.low << e - 32; this.low = 0; } else { this.high = this.high << e | this.low >>> 32 - e; this.low <<= e; } }; Word64.prototype.rotateRight = function (e) { var t, i; if (32 & e) { i = this.low; t = this.high; } else { t = this.low; i = this.high; } e &= 31; this.low = t >>> e | i << 32 - e; this.high = i >>> e | t << 32 - e; }; Word64.prototype.not = function () { this.high = ~this.high; this.low = ~this.low; }; Word64.prototype.add = function (e) { var t = (this.low >>> 0) + (e.low >>> 0); var i = (this.high >>> 0) + (e.high >>> 0); t > 4294967295 && (i += 1); this.low = 0 | t; this.high = 0 | i; }; Word64.prototype.copyTo = function (e, t) { e[t] = this.high >>> 24 & 255; e[t + 1] = this.high >> 16 & 255; e[t + 2] = this.high >> 8 & 255; e[t + 3] = 255 & this.high; e[t + 4] = this.low >>> 24 & 255; e[t + 5] = this.low >> 16 & 255; e[t + 6] = this.low >> 8 & 255; e[t + 7] = 255 & this.low; }; Word64.prototype.assign = function (e) { this.high = e.high; this.low = e.low; }; return Word64; }()); var Hs = function calculateSHA256Closure() { function rotr(e, t) { return e >>> t | e << 32 - t; } function ch(e, t, i) { return e & t ^ ~e & i; } function maj(e, t, i) { return e & t ^ e & i ^ t & i; } function sigma(e) { return rotr(e, 2) ^ rotr(e, 13) ^ rotr(e, 22); } function sigmaPrime(e) { return rotr(e, 6) ^ rotr(e, 11) ^ rotr(e, 25); } function littleSigma(e) { return rotr(e, 7) ^ rotr(e, 18) ^ e >>> 3; } var e = [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(t, i, a) { var s = 1779033703, r = 3144134277, n = 1013904242, o = 2773480762, g = 1359893119, c = 2600822924, h = 528734635, l = 1541459225; var C = 64 * Math.ceil((a + 9) / 64), Q = new Uint8Array(C); var E, u; for (E = 0; E < a; ++E) Q[E] = t[i++]; Q[E++] = 128; var d = C - 8; for (; E < d;) Q[E++] = 0; Q[E++] = 0; Q[E++] = 0; Q[E++] = 0; Q[E++] = a >>> 29 & 255; Q[E++] = a >> 21 & 255; Q[E++] = a >> 13 & 255; Q[E++] = a >> 5 & 255; Q[E++] = a << 3 & 255; var f = new Uint32Array(64); for (E = 0; E < C;) { for (u = 0; u < 16; ++u) { f[u] = Q[E] << 24 | Q[E + 1] << 16 | Q[E + 2] << 8 | Q[E + 3]; E += 4; } for (u = 16; u < 64; ++u) f[u] = (rotr(p = f[u - 2], 17) ^ rotr(p, 19) ^ p >>> 10) + f[u - 7] + littleSigma(f[u - 15]) + f[u - 16] | 0; var t_296 = void 0, i_249 = void 0, a_205 = s, C_18 = r, d_5 = n, m_6 = o, y_3 = g, w_2 = c, b_2 = h, D_2 = l; for (u = 0; u < 64; ++u) { t_296 = D_2 + sigmaPrime(y_3) + ch(y_3, w_2, b_2) + e[u] + f[u]; i_249 = sigma(a_205) + maj(a_205, C_18, d_5); D_2 = b_2; b_2 = w_2; w_2 = y_3; y_3 = m_6 + t_296 | 0; m_6 = d_5; d_5 = C_18; C_18 = a_205; a_205 = t_296 + i_249 | 0; } s = s + a_205 | 0; r = r + C_18 | 0; n = n + d_5 | 0; o = o + m_6 | 0; g = g + y_3 | 0; c = c + w_2 | 0; h = h + b_2 | 0; l = l + D_2 | 0; } var p; return new Uint8Array([s >> 24 & 255, s >> 16 & 255, s >> 8 & 255, 255 & s, r >> 24 & 255, r >> 16 & 255, r >> 8 & 255, 255 & r, n >> 24 & 255, n >> 16 & 255, n >> 8 & 255, 255 & n, o >> 24 & 255, o >> 16 & 255, o >> 8 & 255, 255 & o, g >> 24 & 255, g >> 16 & 255, g >> 8 & 255, 255 & g, c >> 24 & 255, c >> 16 & 255, c >> 8 & 255, 255 & c, h >> 24 & 255, h >> 16 & 255, h >> 8 & 255, 255 & h, l >> 24 & 255, l >> 16 & 255, l >> 8 & 255, 255 & l]); }; }(), Ys = function calculateSHA512Closure() { function ch(e, t, i, a, s) { e.assign(t); e.and(i); s.assign(t); s.not(); s.and(a); e.xor(s); } function maj(e, t, i, a, s) { e.assign(t); e.and(i); s.assign(t); s.and(a); e.xor(s); s.assign(i); s.and(a); e.xor(s); } function sigma(e, t, i) { e.assign(t); e.rotateRight(28); i.assign(t); i.rotateRight(34); e.xor(i); i.assign(t); i.rotateRight(39); e.xor(i); } function sigmaPrime(e, t, i) { e.assign(t); e.rotateRight(14); i.assign(t); i.rotateRight(18); e.xor(i); i.assign(t); i.rotateRight(41); e.xor(i); } function littleSigma(e, t, i) { e.assign(t); e.rotateRight(1); i.assign(t); i.rotateRight(8); e.xor(i); i.assign(t); i.shiftRight(7); e.xor(i); } function littleSigmaPrime(e, t, i) { e.assign(t); e.rotateRight(19); i.assign(t); i.rotateRight(61); e.xor(i); i.assign(t); i.shiftRight(6); e.xor(i); } var e = [new Word64(1116352408, 3609767458), new Word64(1899447441, 602891725), new Word64(3049323471, 3964484399), new Word64(3921009573, 2173295548), new Word64(961987163, 4081628472), new Word64(1508970993, 3053834265), new Word64(2453635748, 2937671579), new Word64(2870763221, 3664609560), new Word64(3624381080, 2734883394), new Word64(310598401, 1164996542), new Word64(607225278, 1323610764), new Word64(1426881987, 3590304994), new Word64(1925078388, 4068182383), new Word64(2162078206, 991336113), new Word64(2614888103, 633803317), new Word64(3248222580, 3479774868), new Word64(3835390401, 2666613458), new Word64(4022224774, 944711139), new Word64(264347078, 2341262773), new Word64(604807628, 2007800933), new Word64(770255983, 1495990901), new Word64(1249150122, 1856431235), new Word64(1555081692, 3175218132), new Word64(1996064986, 2198950837), new Word64(2554220882, 3999719339), new Word64(2821834349, 766784016), new Word64(2952996808, 2566594879), new Word64(3210313671, 3203337956), new Word64(3336571891, 1034457026), new Word64(3584528711, 2466948901), new Word64(113926993, 3758326383), new Word64(338241895, 168717936), new Word64(666307205, 1188179964), new Word64(773529912, 1546045734), new Word64(1294757372, 1522805485), new Word64(1396182291, 2643833823), new Word64(1695183700, 2343527390), new Word64(1986661051, 1014477480), new Word64(2177026350, 1206759142), new Word64(2456956037, 344077627), new Word64(2730485921, 1290863460), new Word64(2820302411, 3158454273), new Word64(3259730800, 3505952657), new Word64(3345764771, 106217008), new Word64(3516065817, 3606008344), new Word64(3600352804, 1432725776), new Word64(4094571909, 1467031594), new Word64(275423344, 851169720), new Word64(430227734, 3100823752), new Word64(506948616, 1363258195), new Word64(659060556, 3750685593), new Word64(883997877, 3785050280), new Word64(958139571, 3318307427), new Word64(1322822218, 3812723403), new Word64(1537002063, 2003034995), new Word64(1747873779, 3602036899), new Word64(1955562222, 1575990012), new Word64(2024104815, 1125592928), new Word64(2227730452, 2716904306), new Word64(2361852424, 442776044), new Word64(2428436474, 593698344), new Word64(2756734187, 3733110249), new Word64(3204031479, 2999351573), new Word64(3329325298, 3815920427), new Word64(3391569614, 3928383900), new Word64(3515267271, 566280711), new Word64(3940187606, 3454069534), new Word64(4118630271, 4000239992), new Word64(116418474, 1914138554), new Word64(174292421, 2731055270), new Word64(289380356, 3203993006), new Word64(460393269, 320620315), new Word64(685471733, 587496836), new Word64(852142971, 1086792851), new Word64(1017036298, 365543100), new Word64(1126000580, 2618297676), new Word64(1288033470, 3409855158), new Word64(1501505948, 4234509866), new Word64(1607167915, 987167468), new Word64(1816402316, 1246189591)]; return function hash(t, i, a, s) { if (s === void 0) { s = !1; } var r, n, o, g, c, h, l, C; if (s) { r = new Word64(3418070365, 3238371032); n = new Word64(1654270250, 914150663); o = new Word64(2438529370, 812702999); g = new Word64(355462360, 4144912697); c = new Word64(1731405415, 4290775857); h = new Word64(2394180231, 1750603025); l = new Word64(3675008525, 1694076839); C = new Word64(1203062813, 3204075428); } else { r = new Word64(1779033703, 4089235720); n = new Word64(3144134277, 2227873595); o = new Word64(1013904242, 4271175723); g = new Word64(2773480762, 1595750129); c = new Word64(1359893119, 2917565137); h = new Word64(2600822924, 725511199); l = new Word64(528734635, 4215389547); C = new Word64(1541459225, 327033209); } var Q = 128 * Math.ceil((a + 17) / 128), E = new Uint8Array(Q); var u, d; for (u = 0; u < a; ++u) E[u] = t[i++]; E[u++] = 128; var f = Q - 16; for (; u < f;) E[u++] = 0; E[u++] = 0; E[u++] = 0; E[u++] = 0; E[u++] = 0; E[u++] = 0; E[u++] = 0; E[u++] = 0; E[u++] = 0; E[u++] = 0; E[u++] = 0; E[u++] = 0; E[u++] = a >>> 29 & 255; E[u++] = a >> 21 & 255; E[u++] = a >> 13 & 255; E[u++] = a >> 5 & 255; E[u++] = a << 3 & 255; var p = new Array(80); for (u = 0; u < 80; u++) p[u] = new Word64(0, 0); var m = new Word64(0, 0), y = new Word64(0, 0), w = new Word64(0, 0), b = new Word64(0, 0), D = new Word64(0, 0), F = new Word64(0, 0), S = new Word64(0, 0), k = new Word64(0, 0); var R = new Word64(0, 0), N = new Word64(0, 0), G = new Word64(0, 0), x = new Word64(0, 0); var M, U; for (u = 0; u < Q;) { for (d = 0; d < 16; ++d) { p[d].high = E[u] << 24 | E[u + 1] << 16 | E[u + 2] << 8 | E[u + 3]; p[d].low = E[u + 4] << 24 | E[u + 5] << 16 | E[u + 6] << 8 | E[u + 7]; u += 8; } for (d = 16; d < 80; ++d) { M = p[d]; littleSigmaPrime(M, p[d - 2], x); M.add(p[d - 7]); littleSigma(G, p[d - 15], x); M.add(G); M.add(p[d - 16]); } m.assign(r); y.assign(n); w.assign(o); b.assign(g); D.assign(c); F.assign(h); S.assign(l); k.assign(C); for (d = 0; d < 80; ++d) { R.assign(k); sigmaPrime(G, D, x); R.add(G); ch(G, D, F, S, x); R.add(G); R.add(e[d]); R.add(p[d]); sigma(N, m, x); maj(G, m, y, w, x); N.add(G); M = k; k = S; S = F; F = D; b.add(R); D = b; b = w; w = y; y = m; M.assign(R); M.add(N); m = M; } r.add(m); n.add(y); o.add(w); g.add(b); c.add(D); h.add(F); l.add(S); C.add(k); } if (s) { U = new Uint8Array(48); r.copyTo(U, 0); n.copyTo(U, 8); o.copyTo(U, 16); g.copyTo(U, 24); c.copyTo(U, 32); h.copyTo(U, 40); } else { U = new Uint8Array(64); r.copyTo(U, 0); n.copyTo(U, 8); o.copyTo(U, 16); g.copyTo(U, 24); c.copyTo(U, 32); h.copyTo(U, 40); l.copyTo(U, 48); C.copyTo(U, 56); } return U; }; }(); var NullCipher = /** @class */ (function () { function NullCipher() { } NullCipher.prototype.decryptBlock = function (e) { return e; }; NullCipher.prototype.encrypt = function (e) { return e; }; return NullCipher; }()); var AESBaseCipher = /** @class */ (function () { function AESBaseCipher() { this.constructor === AESBaseCipher && 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 e_385 = 0; e_385 < 256; e_385++) this._mixCol[e_385] = e_385 < 128 ? e_385 << 1 : e_385 << 1 ^ 27; this.buffer = new Uint8Array(16); this.bufferPosition = 0; } AESBaseCipher.prototype._expandKey = function (e) { unreachable("Cannot call `_expandKey` on the base class"); }; AESBaseCipher.prototype._decrypt = function (e, t) { var i, a, s; var r = new Uint8Array(16); r.set(e); for (var e_386 = 0, i_250 = this._keySize; e_386 < 16; ++e_386, ++i_250) r[e_386] ^= t[i_250]; for (var e_387 = this._cyclesOfRepetition - 1; e_387 >= 1; --e_387) { i = r[13]; r[13] = r[9]; r[9] = r[5]; r[5] = r[1]; r[1] = i; i = r[14]; a = r[10]; r[14] = r[6]; r[10] = r[2]; r[6] = i; r[2] = a; i = r[15]; a = r[11]; s = r[7]; r[15] = r[3]; r[11] = i; r[7] = a; r[3] = s; for (var e_388 = 0; e_388 < 16; ++e_388) r[e_388] = this._inv_s[r[e_388]]; for (var i_251 = 0, a_206 = 16 * e_387; i_251 < 16; ++i_251, ++a_206) r[i_251] ^= t[a_206]; for (var e_389 = 0; e_389 < 16; e_389 += 4) { var t_297 = this._mix[r[e_389]], a_207 = this._mix[r[e_389 + 1]], s_151 = this._mix[r[e_389 + 2]], n_81 = this._mix[r[e_389 + 3]]; i = t_297 ^ a_207 >>> 8 ^ a_207 << 24 ^ s_151 >>> 16 ^ s_151 << 16 ^ n_81 >>> 24 ^ n_81 << 8; r[e_389] = i >>> 24 & 255; r[e_389 + 1] = i >> 16 & 255; r[e_389 + 2] = i >> 8 & 255; r[e_389 + 3] = 255 & i; } } i = r[13]; r[13] = r[9]; r[9] = r[5]; r[5] = r[1]; r[1] = i; i = r[14]; a = r[10]; r[14] = r[6]; r[10] = r[2]; r[6] = i; r[2] = a; i = r[15]; a = r[11]; s = r[7]; r[15] = r[3]; r[11] = i; r[7] = a; r[3] = s; for (var e_390 = 0; e_390 < 16; ++e_390) { r[e_390] = this._inv_s[r[e_390]]; r[e_390] ^= t[e_390]; } return r; }; AESBaseCipher.prototype._encrypt = function (e, t) { var i = this._s; var a, s, r; var n = new Uint8Array(16); n.set(e); for (var e_391 = 0; e_391 < 16; ++e_391) n[e_391] ^= t[e_391]; for (var e_392 = 1; e_392 < this._cyclesOfRepetition; e_392++) { for (var e_393 = 0; e_393 < 16; ++e_393) n[e_393] = i[n[e_393]]; r = n[1]; n[1] = n[5]; n[5] = n[9]; n[9] = n[13]; n[13] = r; r = n[2]; s = n[6]; n[2] = n[10]; n[6] = n[14]; n[10] = r; n[14] = s; r = n[3]; s = n[7]; a = n[11]; n[3] = n[15]; n[7] = r; n[11] = s; n[15] = a; for (var e_394 = 0; e_394 < 16; e_394 += 4) { var t_298 = n[e_394 + 0], i_252 = n[e_394 + 1], s_152 = n[e_394 + 2], r_115 = n[e_394 + 3]; a = t_298 ^ i_252 ^ s_152 ^ r_115; n[e_394 + 0] ^= a ^ this._mixCol[t_298 ^ i_252]; n[e_394 + 1] ^= a ^ this._mixCol[i_252 ^ s_152]; n[e_394 + 2] ^= a ^ this._mixCol[s_152 ^ r_115]; n[e_394 + 3] ^= a ^ this._mixCol[r_115 ^ t_298]; } for (var i_253 = 0, a_208 = 16 * e_392; i_253 < 16; ++i_253, ++a_208) n[i_253] ^= t[a_208]; } for (var e_395 = 0; e_395 < 16; ++e_395) n[e_395] = i[n[e_395]]; r = n[1]; n[1] = n[5]; n[5] = n[9]; n[9] = n[13]; n[13] = r; r = n[2]; s = n[6]; n[2] = n[10]; n[6] = n[14]; n[10] = r; n[14] = s; r = n[3]; s = n[7]; a = n[11]; n[3] = n[15]; n[7] = r; n[11] = s; n[15] = a; for (var e_396 = 0, i_254 = this._keySize; e_396 < 16; ++e_396, ++i_254) n[e_396] ^= t[i_254]; return n; }; AESBaseCipher.prototype._decryptBlock2 = function (e, t) { var i = e.length; var a = this.buffer, s = this.bufferPosition; var r = []; var n = this.iv; for (var t_299 = 0; t_299 < i; ++t_299) { a[s] = e[t_299]; ++s; if (s < 16) continue; var i_255 = this._decrypt(a, this._key); for (var e_397 = 0; e_397 < 16; ++e_397) i_255[e_397] ^= n[e_397]; n = a; r.push(i_255); a = new Uint8Array(16); s = 0; } this.buffer = a; this.bufferLength = s; this.iv = n; if (0 === r.length) return new Uint8Array(0); var o = 16 * r.length; if (t) { var e_398 = r.at(-1); var t_300 = e_398[15]; if (t_300 <= 16) { for (var i_256 = 15, a_209 = 16 - t_300; i_256 >= a_209; --i_256) if (e_398[i_256] !== t_300) { t_300 = 0; break; } o -= t_300; r[r.length - 1] = e_398.subarray(0, 16 - t_300); } } var g = new Uint8Array(o); for (var e_399 = 0, t_301 = 0, i_257 = r.length; e_399 < i_257; ++e_399, t_301 += 16) g.set(r[e_399], t_301); return g; }; AESBaseCipher.prototype.decryptBlock = function (e, t, i) { if (i === void 0) { i = null; } var a = e.length, s = this.buffer; var r = this.bufferPosition; if (i) this.iv = i; else { for (var t_302 = 0; r < 16 && t_302 < a; ++t_302, ++r) s[r] = e[t_302]; if (r < 16) { this.bufferLength = r; return new Uint8Array(0); } this.iv = s; e = e.subarray(16); } this.buffer = new Uint8Array(16); this.bufferLength = 0; this.decryptBlock = this._decryptBlock2; return this.decryptBlock(e, t); }; AESBaseCipher.prototype.encrypt = function (e, t) { var i = e.length; var a = this.buffer, s = this.bufferPosition; var r = []; t || (t = new Uint8Array(16)); for (var n_82 = 0; n_82 < i; ++n_82) { a[s] = e[n_82]; ++s; if (s < 16) continue; for (var e_400 = 0; e_400 < 16; ++e_400) a[e_400] ^= t[e_400]; var i_258 = this._encrypt(a, this._key); t = i_258; r.push(i_258); a = new Uint8Array(16); s = 0; } this.buffer = a; this.bufferLength = s; this.iv = t; if (0 === r.length) return new Uint8Array(0); var n = 16 * r.length, o = new Uint8Array(n); for (var e_401 = 0, t_303 = 0, i_259 = r.length; e_401 < i_259; ++e_401, t_303 += 16) o.set(r[e_401], t_303); return o; }; return AESBaseCipher; }()); var AES128Cipher = /** @class */ (function (_super) { tslib_1.__extends(AES128Cipher, _super); function AES128Cipher(e) { var _this = _super.call(this) || this; _this._cyclesOfRepetition = 10; _this._keySize = 160; _this._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]); _this._key = _this._expandKey(e); return _this; } AES128Cipher.prototype._expandKey = function (e) { var t = this._s, i = this._rcon, a = new Uint8Array(176); a.set(e); for (var e_402 = 16, s_153 = 1; e_402 < 176; ++s_153) { var r_116 = a[e_402 - 3], n_83 = a[e_402 - 2], o_56 = a[e_402 - 1], g_37 = a[e_402 - 4]; r_116 = t[r_116]; n_83 = t[n_83]; o_56 = t[o_56]; g_37 = t[g_37]; r_116 ^= i[s_153]; for (var t_304 = 0; t_304 < 4; ++t_304) { a[e_402] = r_116 ^= a[e_402 - 16]; e_402++; a[e_402] = n_83 ^= a[e_402 - 16]; e_402++; a[e_402] = o_56 ^= a[e_402 - 16]; e_402++; a[e_402] = g_37 ^= a[e_402 - 16]; e_402++; } } return a; }; return AES128Cipher; }(AESBaseCipher)); var AES256Cipher = /** @class */ (function (_super) { tslib_1.__extends(AES256Cipher, _super); function AES256Cipher(e) { var _this = _super.call(this) || this; _this._cyclesOfRepetition = 14; _this._keySize = 224; _this._key = _this._expandKey(e); return _this; } AES256Cipher.prototype._expandKey = function (e) { var t = this._s, i = new Uint8Array(240); i.set(e); var a, s, r, n, o = 1; for (var e_403 = 32, g_38 = 1; e_403 < 240; ++g_38) { if (e_403 % 32 == 16) { a = t[a]; s = t[s]; r = t[r]; n = t[n]; } else if (e_403 % 32 == 0) { a = i[e_403 - 3]; s = i[e_403 - 2]; r = i[e_403 - 1]; n = i[e_403 - 4]; a = t[a]; s = t[s]; r = t[r]; n = t[n]; a ^= o; (o <<= 1) >= 256 && (o = 255 & (27 ^ o)); } for (var t_305 = 0; t_305 < 4; ++t_305) { i[e_403] = a ^= i[e_403 - 32]; e_403++; i[e_403] = s ^= i[e_403 - 32]; e_403++; i[e_403] = r ^= i[e_403 - 32]; e_403++; i[e_403] = n ^= i[e_403 - 32]; e_403++; } } return i; }; return AES256Cipher; }(AESBaseCipher)); var PDF17 = /** @class */ (function () { function PDF17() { } PDF17.prototype.checkOwnerPassword = function (e, t, i, a) { var s = new Uint8Array(e.length + 56); s.set(e, 0); s.set(t, e.length); s.set(i, e.length + t.length); return isArrayEqual(Hs(s, 0, s.length), a); }; PDF17.prototype.checkUserPassword = function (e, t, i) { var a = new Uint8Array(e.length + 8); a.set(e, 0); a.set(t, e.length); return isArrayEqual(Hs(a, 0, a.length), i); }; PDF17.prototype.getOwnerKey = function (e, t, i, a) { var s = new Uint8Array(e.length + 56); s.set(e, 0); s.set(t, e.length); s.set(i, e.length + t.length); var r = Hs(s, 0, s.length); return new AES256Cipher(r).decryptBlock(a, !1, new Uint8Array(16)); }; PDF17.prototype.getUserKey = function (e, t, i) { var a = new Uint8Array(e.length + 8); a.set(e, 0); a.set(t, e.length); var s = Hs(a, 0, a.length); return new AES256Cipher(s).decryptBlock(i, !1, new Uint8Array(16)); }; return PDF17; }()); var PDF20 = /** @class */ (function () { function PDF20() { } PDF20.prototype._hash = function (e, t, i) { var a = Hs(t, 0, t.length).subarray(0, 32), s = [0], r = 0; for (; r < 64 || s.at(-1) > r - 32;) { var t_306 = e.length + a.length + i.length, c_25 = new Uint8Array(t_306); var h_17 = 0; c_25.set(e, h_17); h_17 += e.length; c_25.set(a, h_17); h_17 += a.length; c_25.set(i, h_17); var l_19 = new Uint8Array(64 * t_306); for (var e_404 = 0, i_260 = 0; e_404 < 64; e_404++, i_260 += t_306) l_19.set(c_25, i_260); s = new AES128Cipher(a.subarray(0, 16)).encrypt(l_19, a.subarray(16, 32)); var C_19 = s.slice(0, 16).reduce((function (e, t) { return e + t; }), 0) % 3; 0 === C_19 ? a = Hs(s, 0, s.length) : 1 === C_19 ? a = (n = s, o = 0, g = s.length, Ys(n, o, g, !0)) : 2 === C_19 && (a = Ys(s, 0, s.length)); r++; } var n, o, g; return a.subarray(0, 32); }; PDF20.prototype.checkOwnerPassword = function (e, t, i, a) { var s = new Uint8Array(e.length + 56); s.set(e, 0); s.set(t, e.length); s.set(i, e.length + t.length); return isArrayEqual(this._hash(e, s, i), a); }; PDF20.prototype.checkUserPassword = function (e, t, i) { var a = new Uint8Array(e.length + 8); a.set(e, 0); a.set(t, e.length); return isArrayEqual(this._hash(e, a, []), i); }; PDF20.prototype.getOwnerKey = function (e, t, i, a) { var s = new Uint8Array(e.length + 56); s.set(e, 0); s.set(t, e.length); s.set(i, e.length + t.length); var r = this._hash(e, s, i); return new AES256Cipher(r).decryptBlock(a, !1, new Uint8Array(16)); }; PDF20.prototype.getUserKey = function (e, t, i) { var a = new Uint8Array(e.length + 8); a.set(e, 0); a.set(t, e.length); var s = this._hash(e, a, []); return new AES256Cipher(s).decryptBlock(i, !1, new Uint8Array(16)); }; return PDF20; }()); var CipherTransform = /** @class */ (function () { function CipherTransform(e, t) { this.StringCipherConstructor = e; this.StreamCipherConstructor = t; } CipherTransform.prototype.createStream = function (e, t) { var i = new this.StreamCipherConstructor; return new DecryptStream(e, t, (function cipherTransformDecryptStream(e, t) { return i.decryptBlock(e, t); })); }; CipherTransform.prototype.decryptString = function (e) { var t = new this.StringCipherConstructor; var i = stringToBytes(e); i = t.decryptBlock(i, !0); return bytesToString(i); }; CipherTransform.prototype.encryptString = function (e) { var t = new this.StringCipherConstructor; if (t instanceof AESBaseCipher) { var i_261 = 16 - e.length % 16; e += String.fromCharCode(i_261).repeat(i_261); var a_210 = new Uint8Array(16); if ("undefined" != typeof crypto) crypto.getRandomValues(a_210); else for (var e_405 = 0; e_405 < 16; e_405++) a_210[e_405] = Math.floor(256 * Math.random()); var s_154 = stringToBytes(e); s_154 = t.encrypt(s_154, a_210); var r_117 = new Uint8Array(16 + s_154.length); r_117.set(a_210); r_117.set(s_154, 16); return bytesToString(r_117); } var i = stringToBytes(e); i = t.encrypt(i); return bytesToString(i); }; return CipherTransform; }()); var CipherTransformFactory = /** @class */ (function () { function CipherTransformFactory(e, t, i) { _CipherTransformFactory_instances.add(this); var a = e.get("Filter"); if (!isName(a, "Standard")) throw new FormatError("unknown encryption method"); this.filterName = a.name; this.dict = e; var s = e.get("V"); if (!Number.isInteger(s) || 1 !== s && 2 !== s && 4 !== s && 5 !== s) throw new FormatError("unsupported encryption algorithm"); this.algorithm = s; var r = e.get("Length"); if (!r) if (s <= 3) r = 40; else { var t_307 = e.get("CF"), i_262 = e.get("StmF"); if (t_307 instanceof Dict && i_262 instanceof Name) { t_307.suppressEncryption = !0; var e_406 = t_307.get(i_262.name); r = (e_406 === null || e_406 === void 0 ? void 0 : e_406.get("Length")) || 128; r < 40 && (r <<= 3); } } if (!Number.isInteger(r) || r < 40 || r % 8 != 0) throw new FormatError("invalid key length"); var n = stringToBytes(e.get("O")), o = stringToBytes(e.get("U")), g = n.subarray(0, 32), c = o.subarray(0, 32), h = e.get("P"), l = e.get("R"), C = (4 === s || 5 === s) && !1 !== e.get("EncryptMetadata"); this.encryptMetadata = C; var Q = stringToBytes(t); var E, u; if (i) { if (6 === l) try { i = utf8StringToString(i); } catch (_b) { warn("CipherTransformFactory: Unable to convert UTF8 encoded password."); } E = stringToBytes(i); } if (5 !== s) u = tslib_1.__classPrivateFieldGet(this, _CipherTransformFactory_instances, "m", _CipherTransformFactory_N).call(this, Q, E, g, c, h, l, r, C); else { var t_308 = n.subarray(32, 40), i_263 = n.subarray(40, 48), a_211 = o.subarray(0, 48), s_155 = o.subarray(32, 40), r_118 = o.subarray(40, 48), h_18 = stringToBytes(e.get("OE")), C_20 = stringToBytes(e.get("UE")), Q_18 = stringToBytes(e.get("Perms")); u = tslib_1.__classPrivateFieldGet(this, _CipherTransformFactory_instances, "m", _CipherTransformFactory_R).call(this, l, E, g, t_308, i_263, a_211, c, s_155, r_118, h_18, C_20, Q_18); } if (!u && !i) throw new PasswordException("No password given", it); if (!u && i) { var e_407 = tslib_1.__classPrivateFieldGet(this, _CipherTransformFactory_instances, "m", _CipherTransformFactory_G).call(this, E, g, l, r); u = tslib_1.__classPrivateFieldGet(this, _CipherTransformFactory_instances, "m", _CipherTransformFactory_N).call(this, Q, e_407, g, c, h, l, r, C); } if (!u) throw new PasswordException("Incorrect Password", at); this.encryptionKey = u; if (s >= 4) { var t_309 = e.get("CF"); t_309 instanceof Dict && (t_309.suppressEncryption = !0); this.cf = t_309; this.stmf = e.get("StmF") || Name.get("Identity"); this.strf = e.get("StrF") || Name.get("Identity"); this.eff = e.get("EFF") || this.stmf; } } CipherTransformFactory.prototype.createCipherTransform = function (e, t) { if (4 === this.algorithm || 5 === this.algorithm) return new CipherTransform(tslib_1.__classPrivateFieldGet(this, _CipherTransformFactory_instances, "m", _CipherTransformFactory_M).call(this, this.cf, this.strf, e, t, this.encryptionKey), tslib_1.__classPrivateFieldGet(this, _CipherTransformFactory_instances, "m", _CipherTransformFactory_M).call(this, this.cf, this.stmf, e, t, this.encryptionKey)); var i = tslib_1.__classPrivateFieldGet(this, _CipherTransformFactory_instances, "m", _CipherTransformFactory_x).call(this, e, t, this.encryptionKey, !1), cipherConstructor = function () { return new ARCFourCipher(i); }; return new CipherTransform(cipherConstructor, cipherConstructor); }; var _CipherTransformFactory_instances, _j, _CipherTransformFactory_k, _CipherTransformFactory_R, _CipherTransformFactory_N, _CipherTransformFactory_G, _CipherTransformFactory_x, _CipherTransformFactory_M; _j = CipherTransformFactory, _CipherTransformFactory_instances = new WeakSet(), _CipherTransformFactory_R = function _CipherTransformFactory_R(e, t, i, a, s, r, n, o, g, c, h, l) { if (t) { var e_408 = Math.min(127, t.length); t = t.subarray(0, e_408); } else t = []; var C = 6 === e ? new PDF20 : new PDF17; return C.checkUserPassword(t, o, n) ? C.getUserKey(t, g, h) : t.length && C.checkOwnerPassword(t, a, r, i) ? C.getOwnerKey(t, s, r, c) : null; }, _CipherTransformFactory_N = function _CipherTransformFactory_N(e, t, i, a, s, r, n, o) { var g = 40 + i.length + e.length, c = new Uint8Array(g); var h, l, C = 0; if (t) { l = Math.min(32, t.length); for (; C < l; ++C) c[C] = t[C]; } h = 0; for (; C < 32;) c[C++] = tslib_1.__classPrivateFieldGet(CipherTransformFactory, _j, "f", _CipherTransformFactory_k)[h++]; for (h = 0, l = i.length; h < l; ++h) c[C++] = i[h]; c[C++] = 255 & s; c[C++] = s >> 8 & 255; c[C++] = s >> 16 & 255; c[C++] = s >>> 24 & 255; for (h = 0, l = e.length; h < l; ++h) c[C++] = e[h]; if (r >= 4 && !o) { c[C++] = 255; c[C++] = 255; c[C++] = 255; c[C++] = 255; } var Q = Js(c, 0, C); var E = n >> 3; if (r >= 3) for (h = 0; h < 50; ++h) Q = Js(Q, 0, E); var u = Q.subarray(0, E); var d, f; if (r >= 3) { for (C = 0; C < 32; ++C) c[C] = tslib_1.__classPrivateFieldGet(CipherTransformFactory, _j, "f", _CipherTransformFactory_k)[C]; for (h = 0, l = e.length; h < l; ++h) c[C++] = e[h]; d = new ARCFourCipher(u); f = d.encryptBlock(Js(c, 0, C)); l = u.length; var t_310 = new Uint8Array(l); for (h = 1; h <= 19; ++h) { for (var e_409 = 0; e_409 < l; ++e_409) t_310[e_409] = u[e_409] ^ h; d = new ARCFourCipher(t_310); f = d.encryptBlock(f); } for (h = 0, l = f.length; h < l; ++h) if (a[h] !== f[h]) return null; } else { d = new ARCFourCipher(u); f = d.encryptBlock(tslib_1.__classPrivateFieldGet(CipherTransformFactory, _j, "f", _CipherTransformFactory_k)); for (h = 0, l = f.length; h < l; ++h) if (a[h] !== f[h]) return null; } return u; }, _CipherTransformFactory_G = function _CipherTransformFactory_G(e, t, i, a) { var s = new Uint8Array(32); var r = 0; var n = Math.min(32, e.length); for (; r < n; ++r) s[r] = e[r]; var o = 0; for (; r < 32;) s[r++] = tslib_1.__classPrivateFieldGet(CipherTransformFactory, _j, "f", _CipherTransformFactory_k)[o++]; var g = Js(s, 0, r); var c = a >> 3; if (i >= 3) for (o = 0; o < 50; ++o) g = Js(g, 0, g.length); var h, l; if (i >= 3) { l = t; var e_410 = new Uint8Array(c); for (o = 19; o >= 0; o--) { for (var t_311 = 0; t_311 < c; ++t_311) e_410[t_311] = g[t_311] ^ o; h = new ARCFourCipher(e_410); l = h.encryptBlock(l); } } else { h = new ARCFourCipher(g.subarray(0, c)); l = h.encryptBlock(t); } return l; }, _CipherTransformFactory_x = function _CipherTransformFactory_x(e, t, i, a) { if (a === void 0) { a = !1; } var s = new Uint8Array(i.length + 9), r = i.length; var n; for (n = 0; n < r; ++n) s[n] = i[n]; s[n++] = 255 & e; s[n++] = e >> 8 & 255; s[n++] = e >> 16 & 255; s[n++] = 255 & t; s[n++] = t >> 8 & 255; if (a) { s[n++] = 115; s[n++] = 65; s[n++] = 108; s[n++] = 84; } return Js(s, 0, n).subarray(0, Math.min(i.length + 5, 16)); }, _CipherTransformFactory_M = function _CipherTransformFactory_M(e, t, i, a, s) { if (!(t instanceof Name)) throw new FormatError("Invalid crypt filter name."); var r = this, n = e.get(t.name), o = n === null || n === void 0 ? void 0 : n.get("CFM"); if (!o || "None" === o.name) return function () { return new NullCipher; }; if ("V2" === o.name) return function () { return new ARCFourCipher(tslib_1.__classPrivateFieldGet(r, _CipherTransformFactory_instances, "m", _CipherTransformFactory_x).call(r, i, a, s, !1)); }; if ("AESV2" === o.name) return function () { return new AES128Cipher(tslib_1.__classPrivateFieldGet(r, _CipherTransformFactory_instances, "m", _CipherTransformFactory_x).call(r, i, a, s, !0)); }; if ("AESV3" === o.name) return function () { return new AES256Cipher(s); }; throw new FormatError("Unknown crypto method"); }; _CipherTransformFactory_k = { value: 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]) }; return CipherTransformFactory; }()); function writeObject(e, t, i, _b) { var _k = _b.encrypt, a = _k === void 0 ? null : _k; return tslib_1.__awaiter(this, void 0, void 0, function () { var s, _l, _m, _o; return tslib_1.__generator(this, function (_p) { switch (_p.label) { case 0: s = a === null || a === void 0 ? void 0 : a.createCipherTransform(e.num, e.gen); i.push("".concat(e.num, " ").concat(e.gen, " obj\n")); if (!(t instanceof Dict)) return [3 /*break*/, 2]; return [4 /*yield*/, writeDict(t, i, s)]; case 1: _l = _p.sent(); return [3 /*break*/, 8]; case 2: if (!(t instanceof BaseStream)) return [3 /*break*/, 4]; return [4 /*yield*/, writeStream(t, i, s)]; case 3: _m = _p.sent(); return [3 /*break*/, 7]; case 4: _o = (Array.isArray(t) || ArrayBuffer.isView(t)); if (!_o) return [3 /*break*/, 6]; return [4 /*yield*/, writeArray(t, i, s)]; case 5: _o = (_p.sent()); _p.label = 6; case 6: _m = _o; _p.label = 7; case 7: _l = _m; _p.label = 8; case 8: _l; i.push("\nendobj\n"); return [2 /*return*/]; } }); }); } function writeDict(e, t, i) { return tslib_1.__awaiter(this, void 0, void 0, function () { var _b, _k, a_212; return tslib_1.__generator(this, function (_l) { switch (_l.label) { case 0: t.push("<<"); _b = 0, _k = e.getKeys(); _l.label = 1; case 1: if (!(_b < _k.length)) return [3 /*break*/, 4]; a_212 = _k[_b]; t.push(" /".concat(escapePDFName(a_212), " ")); return [4 /*yield*/, writeValue(e.getRaw(a_212), t, i)]; case 2: _l.sent(); _l.label = 3; case 3: _b++; return [3 /*break*/, 1]; case 4: t.push(">>"); return [2 /*return*/]; } }); }); } function writeStream(e, t, i) { return tslib_1.__awaiter(this, void 0, void 0, function () { var a, s, _b, r, n, o, _k, _l, e_412, t_312, i_264, g_39, c_26, e_411, g; return tslib_1.__generator(this, function (_m) { switch (_m.label) { case 0: a = e.getBytes(); s = e.dict; return [4 /*yield*/, Promise.all([s.getAsync("Filter"), s.getAsync("DecodeParms")])]; case 1: _b = _m.sent(), r = _b[0], n = _b[1]; _k = isName; if (!Array.isArray(r)) return [3 /*break*/, 3]; return [4 /*yield*/, s.xref.fetchIfRefAsync(r[0])]; case 2: _l = _m.sent(); return [3 /*break*/, 4]; case 3: _l = r; _m.label = 4; case 4: o = _k.apply(void 0, [_l, "FlateDecode"]); if (!(a.length >= 256 || o)) return [3 /*break*/, 8]; _m.label = 5; case 5: _m.trys.push([5, 7, , 8]); e_412 = new CompressionStream("deflate"), t_312 = e_412.writable.getWriter(); t_312.write(a); t_312.close(); return [4 /*yield*/, new Response(e_412.readable).arrayBuffer()]; case 6: i_264 = _m.sent(); a = new Uint8Array(i_264); if (r) { if (!o) { g_39 = Array.isArray(r) ? tslib_1.__spreadArray([Name.get("FlateDecode")], r, true) : [Name.get("FlateDecode"), r]; n && (c_26 = Array.isArray(n) ? tslib_1.__spreadArray([null], n, true) : [null, n]); } } else g_39 = Name.get("FlateDecode"); g_39 && s.set("Filter", g_39); c_26 && s.set("DecodeParms", c_26); return [3 /*break*/, 8]; case 7: e_411 = _m.sent(); info("writeStream - cannot compress data: \"".concat(e_411, "\".")); return [3 /*break*/, 8]; case 8: g = bytesToString(a); i && (g = i.encryptString(g)); s.set("Length", g.length); return [4 /*yield*/, writeDict(s, t, i)]; case 9: _m.sent(); t.push(" stream\n", g, "\nendstream"); return [2 /*return*/]; } }); }); } function writeArray(e, t, i) { return tslib_1.__awaiter(this, void 0, void 0, function () { var a, _b, e_413, s_156; return tslib_1.__generator(this, function (_k) { switch (_k.label) { case 0: t.push("["); a = !0; _b = 0, e_413 = e; _k.label = 1; case 1: if (!(_b < e_413.length)) return [3 /*break*/, 4]; s_156 = e_413[_b]; a ? a = !1 : t.push(" "); return [4 /*yield*/, writeValue(s_156, t, i)]; case 2: _k.sent(); _k.label = 3; case 3: _b++; return [3 /*break*/, 1]; case 4: t.push("]"); return [2 /*return*/]; } }); }); } function writeValue(e, t, i) { return tslib_1.__awaiter(this, void 0, void 0, function () { var _b, _k, _l, _m; return tslib_1.__generator(this, function (_o) { switch (_o.label) { case 0: if (!(e instanceof Name)) return [3 /*break*/, 1]; t.push("/".concat(escapePDFName(e.name))); return [3 /*break*/, 16]; case 1: if (!(e instanceof Ref)) return [3 /*break*/, 2]; t.push("".concat(e.num, " ").concat(e.gen, " R")); return [3 /*break*/, 16]; case 2: if (!(Array.isArray(e) || ArrayBuffer.isView(e))) return [3 /*break*/, 4]; return [4 /*yield*/, writeArray(e, t, i)]; case 3: _o.sent(); return [3 /*break*/, 16]; case 4: if (!("string" == typeof e)) return [3 /*break*/, 5]; i && (e = i.encryptString(e)); t.push("(".concat(escapeString(e), ")")); return [3 /*break*/, 16]; case 5: if (!("number" == typeof e)) return [3 /*break*/, 6]; _b = t.push(numberToString(e)); return [3 /*break*/, 15]; case 6: if (!("boolean" == typeof e)) return [3 /*break*/, 7]; _k = t.push(e.toString()); return [3 /*break*/, 14]; case 7: if (!(e instanceof Dict)) return [3 /*break*/, 9]; return [4 /*yield*/, writeDict(e, t, i)]; case 8: _l = _o.sent(); return [3 /*break*/, 13]; case 9: if (!(e instanceof BaseStream)) return [3 /*break*/, 11]; return [4 /*yield*/, writeStream(e, t, i)]; case 10: _m = _o.sent(); return [3 /*break*/, 12]; case 11: _m = null === e ? t.push("null") : warn("Unhandled value in writer: ".concat(typeof e, ", please file a bug.")); _o.label = 12; case 12: _l = _m; _o.label = 13; case 13: _k = _l; _o.label = 14; case 14: _b = _k; _o.label = 15; case 15: _b; _o.label = 16; case 16: return [2 /*return*/]; } }); }); } function writeInt(e, t, i, a) { for (var s_157 = t + i - 1; s_157 > i - 1; s_157--) { a[s_157] = 255 & e; e >>= 8; } return i + t; } function writeString(e, t, i) { for (var a_213 = 0, s_158 = e.length; a_213 < s_158; a_213++) i[t + a_213] = 255 & e.charCodeAt(a_213); } function updateXFA(_b) { var e = _b.xfaData, t = _b.xfaDatasetsRef, i = _b.newRefs, a = _b.xref; if (null === e) { e = function writeXFADataForAcroform(e, t) { var i = new SimpleXMLParser({ hasAttributes: !0 }).parseFromString(e); for (var _b = 0, t_313 = t; _b < t_313.length; _b++) { var e_414 = t_313[_b].xfa; if (!e_414) continue; var t_314 = e_414.path, a_214 = e_414.value; if (!t_314) continue; var s_159 = parseXFAPath(t_314); var r_119 = i.documentElement.searchNode(s_159, 0); !r_119 && s_159.length > 1 && (r_119 = i.documentElement.searchNode([s_159.at(-1)], 0)); r_119 ? r_119.childNodes = Array.isArray(a_214) ? a_214.map((function (e) { return new SimpleDOMNode("value", e); })) : [new SimpleDOMNode("#text", a_214)] : warn("Node not found for path: ".concat(t_314)); } var a = []; i.documentElement.dump(a); return a.join(""); }(a.fetchIfRef(t).getString(), i); } var s = a.encrypt; if (s) { e = s.createCipherTransform(t.num, t.gen).encryptString(e); } var r = "".concat(t.num, " ").concat(t.gen, " obj\n<< /Type /EmbeddedFile /Length ").concat(e.length, ">>\nstream\n") + e + "\nendstream\nendobj\n"; i.push({ ref: t, data: r }); } function getIndexes(e) { var t = []; for (var _b = 0, e_415 = e; _b < e_415.length; _b++) { var i_265 = e_415[_b].ref; i_265.num === t.at(-2) + t.at(-1) ? t[t.length - 1] += 1 : t.push(i_265.num, 1); } return t; } function computeIDs(e, t, i) { if (Array.isArray(t.fileIds) && t.fileIds.length > 0) { var a_215 = function computeMD5(e, t) { var i = Math.floor(Date.now() / 1e3), a = t.filename || "", s = [i.toString(), a, e.toString()]; var r = s.reduce((function (e, t) { return e + t.length; }), 0); for (var _b = 0, _k = Object.values(t.info); _b < _k.length; _b++) { var e_416 = _k[_b]; s.push(e_416); r += e_416.length; } var n = new Uint8Array(r); var o = 0; for (var _l = 0, s_160 = s; _l < s_160.length; _l++) { var e_417 = s_160[_l]; writeString(e_417, o, n); o += e_417.length; } return bytesToString(Js(n)); }(e, t); i.set("ID", [t.fileIds[0], a_215]); } } function incrementalUpdate(_b) { var e = _b.originalData, t = _b.xrefInfo, i = _b.newRefs, _k = _b.xref, a = _k === void 0 ? null : _k, _l = _b.hasXfa, s = _l === void 0 ? !1 : _l, _m = _b.xfaDatasetsRef, r = _m === void 0 ? null : _m, _o = _b.hasXfaDatasetsEntry, n = _o === void 0 ? !1 : _o, o = _b.needAppearances, _p = _b.acroFormRef, g = _p === void 0 ? null : _p, _q = _b.acroForm, c = _q === void 0 ? null : _q, _u = _b.xfaData, h = _u === void 0 ? null : _u, _v = _b.useXrefStream, l = _v === void 0 ? !1 : _v; return tslib_1.__awaiter(this, void 0, void 0, function () { var C, Q, E, u, _w, i_266, e_418, d, f, p, _x, C_21, e_419; return tslib_1.__generator(this, function (_y) { switch (_y.label) { case 0: return [4 /*yield*/, function updateAcroform(_b) { var e = _b.xref, t = _b.acroForm, i = _b.acroFormRef, a = _b.hasXfa, s = _b.hasXfaDatasetsEntry, r = _b.xfaDatasetsRef, n = _b.needAppearances, o = _b.newRefs; return tslib_1.__awaiter(this, void 0, void 0, function () { var g, e_420, c; return tslib_1.__generator(this, function (_k) { switch (_k.label) { case 0: !a || s || r || warn("XFA - Cannot save it"); if (!n && (!a || !r || s)) return [2 /*return*/]; g = t.clone(); if (a && !s) { e_420 = t.get("XFA").slice(); e_420.splice(2, 0, "datasets"); e_420.splice(3, 0, r); g.set("XFA", e_420); } n && g.set("NeedAppearances", !0); c = []; return [4 /*yield*/, writeObject(i, g, c, e)]; case 1: _k.sent(); o.push({ ref: i, data: c.join("") }); return [2 /*return*/]; } }); }); }({ xref: a, acroForm: c, acroFormRef: g, hasXfa: s, hasXfaDatasetsEntry: n, xfaDatasetsRef: r, needAppearances: o, newRefs: i })]; case 1: _y.sent(); s && updateXFA({ xfaData: h, xfaDatasetsRef: r, newRefs: i, xref: a }); C = []; Q = e.length; E = e.at(-1); if (10 !== E && 13 !== E) { C.push("\n"); Q += 1; } u = function getTrailerDict(e, t, i) { var a = new Dict(null); a.set("Prev", e.startXRef); var s = e.newRef; if (i) { t.push({ ref: s, data: "" }); a.set("Size", s.num + 1); a.set("Type", Name.get("XRef")); } else a.set("Size", s.num); null !== e.rootRef && a.set("Root", e.rootRef); null !== e.infoRef && a.set("Info", e.infoRef); null !== e.encryptRef && a.set("Encrypt", e.encryptRef); return a; }(t, i, l); i = i.sort((function (e, t) { return e.ref.num - t.ref.num; })); for (_w = 0, i_266 = i; _w < i_266.length; _w++) { e_418 = i_266[_w].data; null !== e_418 && C.push(e_418); } return [4 /*yield*/, (l ? function getXRefStreamTable(e, t, i, a, s) { return tslib_1.__awaiter(this, void 0, void 0, function () { var r, n, o, _b, i_267, _k, e_421, a_216, i_268, g, c, h, l, C, _l, r_120, _m, e_422, t_315, i_269; return tslib_1.__generator(this, function (_o) { switch (_o.label) { case 0: r = []; n = 0, o = 0; for (_b = 0, i_267 = i; _b < i_267.length; _b++) { _k = i_267[_b], e_421 = _k.ref, a_216 = _k.data; i_268 = void 0; n = Math.max(n, t); if (null !== a_216) { i_268 = Math.min(e_421.gen, 65535); r.push([1, t, i_268]); t += a_216.length; } else { i_268 = Math.min(e_421.gen + 1, 65535); r.push([0, 0, i_268]); } o = Math.max(o, i_268); } a.set("Index", getIndexes(i)); g = [1, getSizeInBytes(n), getSizeInBytes(o)]; a.set("W", g); computeIDs(t, e, a); c = g.reduce((function (e, t) { return e + t; }), 0), h = new Uint8Array(c * r.length), l = new Stream(h); l.dict = a; C = 0; for (_l = 0, r_120 = r; _l < r_120.length; _l++) { _m = r_120[_l], e_422 = _m[0], t_315 = _m[1], i_269 = _m[2]; C = writeInt(e_422, g[0], C, h); C = writeInt(t_315, g[1], C, h); C = writeInt(i_269, g[2], C, h); } return [4 /*yield*/, writeObject(e.newRef, l, s, {})]; case 1: _o.sent(); s.push("startxref\n", t.toString(), "\n%%EOF\n"); return [2 /*return*/]; } }); }); }(t, Q, i, u, C) : function getXRefTable(e, t, i, a, s) { return tslib_1.__awaiter(this, void 0, void 0, function () { var r, n, _b, i_270, _k, e_423, a_217; return tslib_1.__generator(this, function (_l) { switch (_l.label) { case 0: s.push("xref\n"); r = getIndexes(i); n = 0; for (_b = 0, i_270 = i; _b < i_270.length; _b++) { _k = i_270[_b], e_423 = _k.ref, a_217 = _k.data; if (e_423.num === r[n]) { s.push("".concat(r[n], " ").concat(r[n + 1], "\n")); n += 2; } if (null !== a_217) { s.push("".concat(t.toString().padStart(10, "0"), " ").concat(Math.min(e_423.gen, 65535).toString().padStart(5, "0"), " n\r\n")); t += a_217.length; } else s.push("0000000000 ".concat(Math.min(e_423.gen + 1, 65535).toString().padStart(5, "0"), " f\r\n")); } computeIDs(t, e, a); s.push("trailer\n"); return [4 /*yield*/, writeDict(a, s)]; case 1: _l.sent(); s.push("\nstartxref\n", t.toString(), "\n%%EOF\n"); return [2 /*return*/]; } }); }); }(t, Q, i, u, C))]; case 2: _y.sent(); d = C.reduce((function (e, t) { return e + t.length; }), e.length), f = new Uint8Array(d); f.set(e); p = e.length; for (_x = 0, C_21 = C; _x < C_21.length; _x++) { e_419 = C_21[_x]; writeString(e_419, p, f); p += e_419.length; } return [2 /*return*/, f]; } }); }); } var vs = 1, Ks = 2, Ts = 3, qs = 4, Os = 5; var StructTreeRoot = /** @class */ (function () { function StructTreeRoot(e, t) { _StructTreeRoot_instances.add(this); this.dict = e; this.ref = t instanceof Ref ? t : null; this.roleMap = new Map; this.structParentIds = null; } StructTreeRoot.prototype.init = function () { this.readRoleMap(); }; StructTreeRoot.prototype.addAnnotationIdToPage = function (e, t) { tslib_1.__classPrivateFieldGet(this, _StructTreeRoot_instances, "m", _StructTreeRoot_U).call(this, e, t, qs); }; StructTreeRoot.prototype.readRoleMap = function () { var _this = this; var e = this.dict.get("RoleMap"); e instanceof Dict && e.forEach((function (e, t) { t instanceof Name && _this.roleMap.set(e, t.name); })); }; StructTreeRoot.canCreateStructureTree = function (_b) { var _k; var e = _b.catalogRef, t = _b.pdfManager, i = _b.newAnnotationsByPage; return tslib_1.__awaiter(this, void 0, void 0, function () { var a, s, _l, i_271, _m, e_425, r_122, i_272, _o, r_121, e_426, _p, _q, e_427, _u, e_424, t_316; return tslib_1.__generator(this, function (_v) { switch (_v.label) { case 0: if (!(e instanceof Ref)) { warn("Cannot save the struct tree: no catalog reference."); return [2 /*return*/, !1]; } a = 0, s = !0; _l = 0, i_271 = i; _v.label = 1; case 1: if (!(_l < i_271.length)) return [3 /*break*/, 4]; _m = i_271[_l], e_425 = _m[0], r_122 = _m[1]; return [4 /*yield*/, t.getPage(e_425)]; case 2: i_272 = (_v.sent()).ref; if (!(i_272 instanceof Ref)) { warn("Cannot save the struct tree: page ".concat(e_425, " has no ref.")); s = !0; return [3 /*break*/, 4]; } for (_o = 0, r_121 = r_122; _o < r_121.length; _o++) { e_426 = r_121[_o]; if ((_k = e_426.accessibilityData) === null || _k === void 0 ? void 0 : _k.type) { e_426.parentTreeId = a++; s = !1; } } _v.label = 3; case 3: _l++; return [3 /*break*/, 1]; case 4: if (s) { for (_p = 0, _q = i.values(); _p < _q.length; _p++) { e_427 = _q[_p]; for (_u = 0, e_424 = e_427; _u < e_424.length; _u++) { t_316 = e_424[_u]; delete t_316.parentTreeId; } } return [2 /*return*/, !1]; } return [2 /*return*/, !0]; } }); }); }; StructTreeRoot.createStructureTree = function (_b) { var e = _b.newAnnotationsByPage, t = _b.xref, i = _b.catalogRef, a = _b.pdfManager, s = _b.newRefs; return tslib_1.__awaiter(this, void 0, void 0, function () { var r, n, o, g, c, h, l, C, Q, E, _k, _l, _m, e_428, i_273; return tslib_1.__generator(this, function (_o) { switch (_o.label) { case 0: r = a.catalog.cloneDict(), n = new RefSetCache; n.put(i, r); o = t.getNewTemporaryRef(); r.set("StructTreeRoot", o); g = new Dict(t); g.set("Type", Name.get("StructTreeRoot")); c = t.getNewTemporaryRef(); g.set("ParentTree", c); h = []; g.set("K", h); n.put(o, g); l = new Dict(t), C = []; l.set("Nums", C); return [4 /*yield*/, tslib_1.__classPrivateFieldGet(this, _d, "m", _StructTreeRoot_L).call(this, { newAnnotationsByPage: e, structTreeRootRef: o, kids: h, nums: C, xref: t, pdfManager: a, cache: n })]; case 1: Q = _o.sent(); g.set("ParentTreeNextKey", Q); n.put(c, l); E = []; _k = 0, _l = n.items(); _o.label = 2; case 2: if (!(_k < _l.length)) return [3 /*break*/, 5]; _m = _l[_k], e_428 = _m[0], i_273 = _m[1]; E.length = 0; return [4 /*yield*/, writeObject(e_428, i_273, E, t)]; case 3: _o.sent(); s.push({ ref: e_428, data: E.join("") }); _o.label = 4; case 4: _k++; return [3 /*break*/, 2]; case 5: return [2 /*return*/]; } }); }); }; StructTreeRoot.prototype.canUpdateStructTree = function (_b) { var _k; var e = _b.pdfManager, t = _b.xref, i = _b.newAnnotationsByPage; return tslib_1.__awaiter(this, void 0, void 0, function () { var a, s, r, n, _l, _m, t_317, i_275, a_218, o, _o, i_274, _p, t_318, s_162, i_276, _q, s_161, e_430, _u, _v, e_431, _w, e_429, t_319; return tslib_1.__generator(this, function (_x) { switch (_x.label) { case 0: if (!this.ref) { warn("Cannot update the struct tree: no root reference."); return [2 /*return*/, !1]; } a = this.dict.get("ParentTreeNextKey"); if (!Number.isInteger(a) || a < 0) { warn("Cannot update the struct tree: invalid next key."); return [2 /*return*/, !1]; } s = this.dict.get("ParentTree"); if (!(s instanceof Dict)) { warn("Cannot update the struct tree: ParentTree isn't a dict."); return [2 /*return*/, !1]; } r = s.get("Nums"); if (!Array.isArray(r)) { warn("Cannot update the struct tree: nums isn't an array."); return [2 /*return*/, !1]; } n = new NumberTree(s, t); _l = 0, _m = i.keys(); _x.label = 1; case 1: if (!(_l < _m.length)) return [3 /*break*/, 4]; t_317 = _m[_l]; return [4 /*yield*/, e.getPage(t_317)]; case 2: i_275 = (_x.sent()).pageDict; if (!i_275.has("StructParents")) return [3 /*break*/, 3]; a_218 = i_275.get("StructParents"); if (!Number.isInteger(a_218) || !Array.isArray(n.get(a_218))) { warn("Cannot save the struct tree: page ".concat(t_317, " has a wrong id.")); return [2 /*return*/, !1]; } _x.label = 3; case 3: _l++; return [3 /*break*/, 1]; case 4: o = !0; _o = 0, i_274 = i; _x.label = 5; case 5: if (!(_o < i_274.length)) return [3 /*break*/, 8]; _p = i_274[_o], t_318 = _p[0], s_162 = _p[1]; return [4 /*yield*/, e.getPage(t_318)]; case 6: i_276 = (_x.sent()).pageDict; tslib_1.__classPrivateFieldGet(StructTreeRoot, _d, "m", _StructTreeRoot_J).call(StructTreeRoot, { elements: s_162, xref: this.dict.xref, pageDict: i_276, numberTree: n }); for (_q = 0, s_161 = s_162; _q < s_161.length; _q++) { e_430 = s_161[_q]; if ((_k = e_430.accessibilityData) === null || _k === void 0 ? void 0 : _k.type) { e_430.parentTreeId = a++; o = !1; } } _x.label = 7; case 7: _o++; return [3 /*break*/, 5]; case 8: if (o) { for (_u = 0, _v = i.values(); _u < _v.length; _u++) { e_431 = _v[_u]; for (_w = 0, e_429 = e_431; _w < e_429.length; _w++) { t_319 = e_429[_w]; delete t_319.parentTreeId; delete t_319.structTreeParent; } } return [2 /*return*/, !1]; } return [2 /*return*/, !0]; } }); }); }; StructTreeRoot.prototype.updateStructureTree = function (_b) { var e = _b.newAnnotationsByPage, t = _b.pdfManager, i = _b.newRefs; return tslib_1.__awaiter(this, void 0, void 0, function () { var a, s, r, n, o, g, c, h, l, C, _k, _l, _m, e_432, t_320; return tslib_1.__generator(this, function (_o) { switch (_o.label) { case 0: a = this.dict.xref, s = this.dict.clone(), r = this.ref, n = new RefSetCache; n.put(r, s); g = s.getRaw("ParentTree"); if (g instanceof Ref) o = a.fetch(g); else { o = g; g = a.getNewTemporaryRef(); s.set("ParentTree", g); } o = o.clone(); n.put(g, o); c = o.getRaw("Nums"), h = null; if (c instanceof Ref) { h = c; c = a.fetch(h); } c = c.slice(); h || o.set("Nums", c); return [4 /*yield*/, tslib_1.__classPrivateFieldGet(StructTreeRoot, _d, "m", _StructTreeRoot_L).call(StructTreeRoot, { newAnnotationsByPage: e, structTreeRootRef: r, kids: null, nums: c, xref: a, pdfManager: t, cache: n })]; case 1: l = _o.sent(); s.set("ParentTreeNextKey", l); h && n.put(h, c); C = []; _k = 0, _l = n.items(); _o.label = 2; case 2: if (!(_k < _l.length)) return [3 /*break*/, 5]; _m = _l[_k], e_432 = _m[0], t_320 = _m[1]; C.length = 0; return [4 /*yield*/, writeObject(e_432, t_320, C, a)]; case 3: _o.sent(); i.push({ ref: e_432, data: C.join("") }); _o.label = 4; case 4: _k++; return [3 /*break*/, 2]; case 5: return [2 /*return*/]; } }); }); }; return StructTreeRoot; }()); _d = StructTreeRoot, _StructTreeRoot_instances = new WeakSet(), _StructTreeRoot_U = function _StructTreeRoot_U(e, t, i) { if (!(e instanceof Ref) || t < 0) return; this.structParentIds || (this.structParentIds = new RefSetCache); var a = this.structParentIds.get(e); if (!a) { a = []; this.structParentIds.put(e, a); } a.push([t, i]); }, _StructTreeRoot_L = function _StructTreeRoot_L(_b) { var e = _b.newAnnotationsByPage, t = _b.structTreeRootRef, i = _b.kids, a = _b.nums, s = _b.xref, r = _b.pdfManager, n = _b.cache; return tslib_1.__awaiter(this, void 0, void 0, function () { var o, g, _k, e_433, _l, c_27, h_20, e_434, l_20, _m, h_19, _o, r_123, c_28, C_22, Q_19, h_21, E_11, u_10, d_6, f_8, p_5, m_7, y_4, w_3; return tslib_1.__generator(this, function (_p) { switch (_p.label) { case 0: o = Name.get("OBJR"); g = -1 / 0; _k = 0, e_433 = e; _p.label = 1; case 1: if (!(_k < e_433.length)) return [3 /*break*/, 7]; _l = e_433[_k], c_27 = _l[0], h_20 = _l[1]; return [4 /*yield*/, r.getPage(c_27)]; case 2: e_434 = (_p.sent()).ref, l_20 = e_434 instanceof Ref; _m = 0, h_19 = h_20; _p.label = 3; case 3: if (!(_m < h_19.length)) return [3 /*break*/, 6]; _o = h_19[_m], r_123 = _o.accessibilityData, c_28 = _o.ref, C_22 = _o.parentTreeId, Q_19 = _o.structTreeParent; if (!(r_123 === null || r_123 === void 0 ? void 0 : r_123.type)) return [3 /*break*/, 5]; h_21 = r_123.type, E_11 = r_123.title, u_10 = r_123.lang, d_6 = r_123.alt, f_8 = r_123.expanded, p_5 = r_123.actualText; g = Math.max(g, C_22); m_7 = s.getNewTemporaryRef(), y_4 = new Dict(s); y_4.set("S", Name.get(h_21)); E_11 && y_4.set("T", E_11); u_10 && y_4.set("Lang", u_10); d_6 && y_4.set("Alt", d_6); f_8 && y_4.set("E", f_8); p_5 && y_4.set("ActualText", p_5); return [4 /*yield*/, tslib_1.__classPrivateFieldGet(this, _d, "m", _StructTreeRoot_H).call(this, { structTreeParent: Q_19, tagDict: y_4, newTagRef: m_7, structTreeRootRef: t, fallbackKids: i, xref: s, cache: n })]; case 4: _p.sent(); w_3 = new Dict(s); y_4.set("K", w_3); w_3.set("Type", o); l_20 && w_3.set("Pg", e_434); w_3.set("Obj", c_28); n.put(m_7, y_4); a.push(C_22, m_7); _p.label = 5; case 5: _m++; return [3 /*break*/, 3]; case 6: _k++; return [3 /*break*/, 1]; case 7: return [2 /*return*/, g + 1]; } }); }); }, _StructTreeRoot_J = function _StructTreeRoot_J(_b) { var e = _b.elements, t = _b.xref, i = _b.pageDict, a = _b.numberTree; var s = new Map; for (var _k = 0, e_435 = e; _k < e_435.length; _k++) { var t_321 = e_435[_k]; if (t_321.structTreeParentId) { var e_436 = parseInt(t_321.structTreeParentId.split("_mc")[1], 10); var i_277 = s.get(e_436); if (!i_277) { i_277 = []; s.set(e_436, i_277); } i_277.push(t_321); } } var r = i.get("StructParents"); if (!Number.isInteger(r)) return; var n = a.get(r), updateElement = function (e, i, a) { var r = s.get(e); if (r) { var e_437 = i.getRaw("P"), s_163 = t.fetchIfRef(e_437); if (e_437 instanceof Ref && s_163 instanceof Dict) { var e_438 = { ref: a, dict: i }; for (var _b = 0, r_124 = r; _b < r_124.length; _b++) { var t_322 = r_124[_b]; t_322.structTreeParent = e_438; } } return !0; } return !1; }; for (var _l = 0, n_84 = n; _l < n_84.length; _l++) { var e_439 = n_84[_l]; if (!(e_439 instanceof Ref)) continue; var i_278 = t.fetch(e_439), a_220 = i_278.get("K"); if (Number.isInteger(a_220)) updateElement(a_220, i_278, e_439); else if (Array.isArray(a_220)) for (var _m = 0, a_219 = a_220; _m < a_219.length; _m++) { var s_164 = a_219[_m]; s_164 = t.fetchIfRef(s_164); if (Number.isInteger(s_164) && updateElement(s_164, i_278, e_439)) break; if (!(s_164 instanceof Dict)) continue; if (!isName(s_164.get("Type"), "MCR")) break; var a_221 = s_164.get("MCID"); if (Number.isInteger(a_221) && updateElement(a_221, i_278, e_439)) break; } } }, _StructTreeRoot_H = function _StructTreeRoot_H(_b) { var e = _b.structTreeParent, t = _b.tagDict, i = _b.newTagRef, a = _b.structTreeRootRef, s = _b.fallbackKids, r = _b.xref, n = _b.cache; return tslib_1.__awaiter(this, void 0, void 0, function () { var o, g, c, h, l, C, e_440, Q; return tslib_1.__generator(this, function (_k) { g = null; if (e) { (g = e.ref); o = e.dict.getRaw("P") || a; } else o = a; t.set("P", o); c = r.fetchIfRef(o); if (!c) { s.push(i); return [2 /*return*/]; } h = n.get(o); if (!h) { h = c.clone(); n.put(o, h); } l = h.getRaw("K"); C = l instanceof Ref ? n.get(l) : null; if (!C) { C = r.fetchIfRef(l); C = Array.isArray(C) ? C.slice() : [l]; e_440 = r.getNewTemporaryRef(); h.set("K", e_440); n.put(e_440, C); } Q = C.indexOf(g); C.splice(Q >= 0 ? Q + 1 : C.length, 0, i); return [2 /*return*/]; }); }); }; var StructElementNode = /** @class */ (function () { function StructElementNode(e, t) { this.tree = e; this.dict = t; this.kids = []; this.parseKids(); } Object.defineProperty(StructElementNode.prototype, "role", { get: function () { var e = this.dict.get("S"), t = e instanceof Name ? e.name : "", i = this.tree.root; return i.roleMap.has(t) ? i.roleMap.get(t) : t; }, enumerable: false, configurable: true }); StructElementNode.prototype.parseKids = function () { var e = null; var t = this.dict.getRaw("Pg"); t instanceof Ref && (e = t.toString()); var i = this.dict.get("K"); if (Array.isArray(i)) for (var _b = 0, i_279 = i; _b < i_279.length; _b++) { var t_323 = i_279[_b]; var i_280 = this.parseKid(e, t_323); i_280 && this.kids.push(i_280); } else { var t_324 = this.parseKid(e, i); t_324 && this.kids.push(t_324); } }; StructElementNode.prototype.parseKid = function (e, t) { if (Number.isInteger(t)) return this.tree.pageDict.objId !== e ? null : new StructElement({ type: vs, mcid: t, pageObjId: e }); var i = null; t instanceof Ref ? i = this.dict.xref.fetch(t) : t instanceof Dict && (i = t); if (!i) return null; var a = i.getRaw("Pg"); a instanceof Ref && (e = a.toString()); var s = i.get("Type") instanceof Name ? i.get("Type").name : null; if ("MCR" === s) { if (this.tree.pageDict.objId !== e) return null; var t_325 = i.getRaw("Stm"); return new StructElement({ type: Ks, refObjId: t_325 instanceof Ref ? t_325.toString() : null, pageObjId: e, mcid: i.get("MCID") }); } if ("OBJR" === s) { if (this.tree.pageDict.objId !== e) return null; var t_326 = i.getRaw("Obj"); return new StructElement({ type: Ts, refObjId: t_326 instanceof Ref ? t_326.toString() : null, pageObjId: e }); } return new StructElement({ type: Os, dict: i }); }; return StructElementNode; }()); var StructElement = /** @class */ (function () { function StructElement(_b) { var e = _b.type, _k = _b.dict, t = _k === void 0 ? null : _k, _l = _b.mcid, i = _l === void 0 ? null : _l, _m = _b.pageObjId, a = _m === void 0 ? null : _m, _o = _b.refObjId, s = _o === void 0 ? null : _o; this.type = e; this.dict = t; this.mcid = i; this.pageObjId = a; this.refObjId = s; this.parentNode = null; } return StructElement; }()); var StructTreePage = /** @class */ (function () { function StructTreePage(e, t) { this.root = e; this.rootDict = e ? e.dict : null; this.pageDict = t; this.nodes = []; } StructTreePage.prototype.parse = function (e) { var _b, _k; if (!this.root || !this.rootDict) return; var t = this.rootDict.get("ParentTree"); if (!t) return; var i = this.pageDict.get("StructParents"), a = e instanceof Ref && ((_b = this.root.structParentIds) === null || _b === void 0 ? void 0 : _b.get(e)); if (!Number.isInteger(i) && !a) return; var s = new Map, r = new NumberTree(t, this.rootDict.xref); if (Number.isInteger(i)) { var e_442 = r.get(i); if (Array.isArray(e_442)) for (var _l = 0, e_441 = e_442; _l < e_441.length; _l++) { var t_327 = e_441[_l]; t_327 instanceof Ref && this.addNode(this.rootDict.xref.fetch(t_327), s); } } if (a) for (var _m = 0, a_222 = a; _m < a_222.length; _m++) { var _o = a_222[_m], e_443 = _o[0], t_328 = _o[1]; var i_281 = r.get(e_443); if (i_281) { var e_444 = this.addNode(this.rootDict.xref.fetchIfRef(i_281), s); 1 === ((_k = e_444 === null || e_444 === void 0 ? void 0 : e_444.kids) === null || _k === void 0 ? void 0 : _k.length) && e_444.kids[0].type === Ts && (e_444.kids[0].type = t_328); } } }; StructTreePage.prototype.addNode = function (e, t, i) { if (i === void 0) { i = 0; } if (i > 40) { warn("StructTree MAX_DEPTH reached."); return null; } if (t.has(e)) return t.get(e); var a = new StructElementNode(this, e); t.set(e, a); var s = e.get("P"); if (!s || isName(s.get("Type"), "StructTreeRoot")) { this.addTopLevelNode(e, a) || t.delete(e); return a; } var r = this.addNode(s, t, i + 1); if (!r) return a; var n = !1; for (var _b = 0, _k = r.kids; _b < _k.length; _b++) { var t_329 = _k[_b]; if (t_329.type === Os && t_329.dict === e) { t_329.parentNode = a; n = !0; } } n || t.delete(e); return a; }; StructTreePage.prototype.addTopLevelNode = function (e, t) { var i = this.rootDict.get("K"); if (!i) return !1; if (i instanceof Dict) { if (i.objId !== e.objId) return !1; this.nodes[0] = t; return !0; } if (!Array.isArray(i)) return !0; var a = !1; for (var s_165 = 0; s_165 < i.length; s_165++) { var r_125 = i[s_165]; if ((r_125 === null || r_125 === void 0 ? void 0 : r_125.toString()) === e.objId) { this.nodes[s_165] = t; a = !0; } } return a; }; Object.defineProperty(StructTreePage.prototype, "serializable", { get: function () { function nodeToSerializable(e, t, i) { if (i === void 0) { i = 0; } if (i > 40) { warn("StructTree too deep to be fully serialized."); return; } var a = Object.create(null); a.role = e.role; a.children = []; t.children.push(a); var s = e.dict.get("Alt"); "string" == typeof s && (a.alt = stringToPDFString(s)); var r = e.dict.get("Lang"); "string" == typeof r && (a.lang = stringToPDFString(r)); for (var _b = 0, _k = e.kids; _b < _k.length; _b++) { var t_330 = _k[_b]; var e_445 = t_330.type === Os ? t_330.parentNode : null; e_445 ? nodeToSerializable(e_445, a, i + 1) : t_330.type === vs || t_330.type === Ks ? a.children.push({ type: "content", id: "p".concat(t_330.pageObjId, "_mc").concat(t_330.mcid) }) : t_330.type === Ts ? a.children.push({ type: "object", id: t_330.refObjId }) : t_330.type === qs && a.children.push({ type: "annotation", id: "pdfjs_internal_id_".concat(t_330.refObjId) }); } } var e = Object.create(null); e.children = []; e.role = "Root"; for (var _b = 0, _k = this.nodes; _b < _k.length; _b++) { var t_331 = _k[_b]; t_331 && nodeToSerializable(t_331, e); } return e; }, enumerable: false, configurable: true }); return StructTreePage; }()); function isValidExplicitDest(e) { if (!Array.isArray(e) || e.length < 2) return !1; var t = e[0], i = e[1], a = e.slice(2); if (!(t instanceof Ref || Number.isInteger(t))) return !1; if (!(i instanceof Name)) return !1; var s = !0; switch (i.name) { case "XYZ": if (3 !== a.length) return !1; break; case "Fit": case "FitB": return 0 === a.length; case "FitH": case "FitBH": case "FitV": case "FitBV": if (1 !== a.length) return !1; break; case "FitR": if (4 !== a.length) return !1; s = !1; break; default: return !1; } for (var _b = 0, a_223 = a; _b < a_223.length; _b++) { var e_446 = a_223[_b]; if (!("number" == typeof e_446 || s && null === e_446)) return !1; } return !0; } function fetchDest(e) { e instanceof Dict && (e = e.get("D")); return isValidExplicitDest(e) ? e : null; } function fetchRemoteDest(e) { var t = e.get("D"); if (t) { t instanceof Name && (t = t.name); if ("string" == typeof t) return stringToPDFString(t); if (isValidExplicitDest(t)) return JSON.stringify(t); } return null; } var Catalog = /** @class */ (function () { function Catalog(e, t) { _Catalog_instances.add(this); this.pdfManager = e; this.xref = t; this._catDict = t.getCatalogObj(); if (!(this._catDict instanceof Dict)) throw new FormatError("Catalog object is not a dictionary."); this.toplevelPagesDict; this._actualNumPages = null; this.fontCache = new RefSetCache; this.builtInCMapCache = new Map; this.standardFontDataCache = new Map; this.globalImageCache = new GlobalImageCache; this.pageKidsCountCache = new RefSetCache; this.pageIndexCache = new RefSetCache; this.nonBlendModesSet = new RefSet; this.systemFontCache = new Map; } Catalog.prototype.cloneDict = function () { return this._catDict.clone(); }; Object.defineProperty(Catalog.prototype, "version", { get: function () { var e = this._catDict.get("Version"); if (e instanceof Name) { if (Dt.test(e.name)) return shadow(this, "version", e.name); warn("Invalid PDF catalog version: ".concat(e.name)); } return shadow(this, "version", null); }, enumerable: false, configurable: true }); Object.defineProperty(Catalog.prototype, "lang", { get: function () { var e = this._catDict.get("Lang"); return shadow(this, "lang", e && "string" == typeof e ? stringToPDFString(e) : null); }, enumerable: false, configurable: true }); Object.defineProperty(Catalog.prototype, "needsRendering", { get: function () { var e = this._catDict.get("NeedsRendering"); return shadow(this, "needsRendering", "boolean" == typeof e && e); }, enumerable: false, configurable: true }); Object.defineProperty(Catalog.prototype, "collection", { get: function () { var e = null; try { var t_332 = this._catDict.get("Collection"); t_332 instanceof Dict && t_332.size > 0 && (e = t_332); } catch (e) { if (e instanceof MissingDataException) throw e; info("Cannot fetch Collection entry; assuming no collection is present."); } return shadow(this, "collection", e); }, enumerable: false, configurable: true }); Object.defineProperty(Catalog.prototype, "acroForm", { get: function () { var e = null; try { var t_333 = this._catDict.get("AcroForm"); t_333 instanceof Dict && t_333.size > 0 && (e = t_333); } catch (e) { if (e instanceof MissingDataException) throw e; info("Cannot fetch AcroForm entry; assuming no forms are present."); } return shadow(this, "acroForm", e); }, enumerable: false, configurable: true }); Object.defineProperty(Catalog.prototype, "acroFormRef", { get: function () { var e = this._catDict.getRaw("AcroForm"); return shadow(this, "acroFormRef", e instanceof Ref ? e : null); }, enumerable: false, configurable: true }); Object.defineProperty(Catalog.prototype, "metadata", { get: function () { var _b; var e = this._catDict.getRaw("Metadata"); if (!(e instanceof Ref)) return shadow(this, "metadata", null); var t = null; try { var i_282 = this.xref.fetch(e, !((_b = this.xref.encrypt) === null || _b === void 0 ? void 0 : _b.encryptMetadata)); if (i_282 instanceof BaseStream && i_282.dict instanceof Dict) { var e_447 = i_282.dict.get("Type"), a_224 = i_282.dict.get("Subtype"); if (isName(e_447, "Metadata") && isName(a_224, "XML")) { var e_448 = stringToUTF8String(i_282.getString()); e_448 && (t = new MetadataParser(e_448).serializable); } } } catch (e) { if (e instanceof MissingDataException) throw e; info("Skipping invalid Metadata: \"".concat(e, "\".")); } return shadow(this, "metadata", t); }, enumerable: false, configurable: true }); Object.defineProperty(Catalog.prototype, "markInfo", { get: function () { var e = null; try { e = this._readMarkInfo(); } catch (e) { if (e instanceof MissingDataException) throw e; warn("Unable to read mark info."); } return shadow(this, "markInfo", e); }, enumerable: false, configurable: true }); Catalog.prototype._readMarkInfo = function () { var e = this._catDict.get("MarkInfo"); if (!(e instanceof Dict)) return null; var t = { Marked: !1, UserProperties: !1, Suspects: !1 }; for (var i_283 in t) { var a_225 = e.get(i_283); "boolean" == typeof a_225 && (t[i_283] = a_225); } return t; }; Object.defineProperty(Catalog.prototype, "structTreeRoot", { get: function () { var e = null; try { e = this._readStructTreeRoot(); } catch (e) { if (e instanceof MissingDataException) throw e; warn("Unable read to structTreeRoot info."); } return shadow(this, "structTreeRoot", e); }, enumerable: false, configurable: true }); Catalog.prototype._readStructTreeRoot = function () { var e = this._catDict.getRaw("StructTreeRoot"), t = this.xref.fetchIfRef(e); if (!(t instanceof Dict)) return null; var i = new StructTreeRoot(t, e); i.init(); return i; }; Object.defineProperty(Catalog.prototype, "toplevelPagesDict", { get: function () { var e = this._catDict.get("Pages"); if (!(e instanceof Dict)) throw new FormatError("Invalid top-level pages dictionary."); return shadow(this, "toplevelPagesDict", e); }, enumerable: false, configurable: true }); Object.defineProperty(Catalog.prototype, "documentOutline", { get: function () { var e = null; try { e = this._readDocumentOutline(); } catch (e) { if (e instanceof MissingDataException) throw e; warn("Unable to read document outline."); } return shadow(this, "documentOutline", e); }, enumerable: false, configurable: true }); Catalog.prototype._readDocumentOutline = function () { var e = this._catDict.get("Outlines"); if (!(e instanceof Dict)) return null; e = e.getRaw("First"); if (!(e instanceof Ref)) return null; var t = { items: [] }, i = [{ obj: e, parent: t }], a = new RefSet; a.put(e); var s = this.xref, r = new Uint8ClampedArray(3); for (; i.length > 0;) { var t_334 = i.shift(), n_85 = s.fetchIfRef(t_334.obj); if (null === n_85) continue; n_85.has("Title") || warn("Invalid outline item encountered."); var o_57 = { url: null, dest: null, action: null }; Catalog.parseDestDictionary({ destDict: n_85, resultObj: o_57, docBaseUrl: this.baseUrl, docAttachments: this.attachments }); var g_40 = n_85.get("Title"), c_29 = n_85.get("F") || 0, h_22 = n_85.getArray("C"), l_21 = n_85.get("Count"); var C_23 = r; !isNumberArray(h_22, 3) || 0 === h_22[0] && 0 === h_22[1] && 0 === h_22[2] || (C_23 = ColorSpace.singletons.rgb.getRgb(h_22, 0)); var Q_20 = { action: o_57.action, attachment: o_57.attachment, dest: o_57.dest, url: o_57.url, unsafeUrl: o_57.unsafeUrl, newWindow: o_57.newWindow, setOCGState: o_57.setOCGState, title: "string" == typeof g_40 ? stringToPDFString(g_40) : "", color: C_23, count: Number.isInteger(l_21) ? l_21 : void 0, bold: !!(2 & c_29), italic: !!(1 & c_29), items: [] }; t_334.parent.items.push(Q_20); e = n_85.getRaw("First"); if (e instanceof Ref && !a.has(e)) { i.push({ obj: e, parent: Q_20 }); a.put(e); } e = n_85.getRaw("Next"); if (e instanceof Ref && !a.has(e)) { i.push({ obj: e, parent: t_334.parent }); a.put(e); } } return t.items.length > 0 ? t.items : null; }; Object.defineProperty(Catalog.prototype, "permissions", { get: function () { var e = null; try { e = this._readPermissions(); } catch (e) { if (e instanceof MissingDataException) throw e; warn("Unable to read permissions."); } return shadow(this, "permissions", e); }, enumerable: false, configurable: true }); Catalog.prototype._readPermissions = function () { var e = this.xref.trailer.get("Encrypt"); if (!(e instanceof Dict)) return null; var t = e.get("P"); if ("number" != typeof t) return null; t += Math.pow(2, 32); var i = []; for (var e_449 in m) { var a_226 = m[e_449]; t & a_226 && i.push(a_226); } return i; }; Object.defineProperty(Catalog.prototype, "optionalContentConfig", { get: function () { var e = null; try { var t_335 = this._catDict.get("OCProperties"); if (!t_335) return shadow(this, "optionalContentConfig", null); var i_284 = t_335.get("D"); if (!i_284) return shadow(this, "optionalContentConfig", null); var a_228 = t_335.get("OCGs"); if (!Array.isArray(a_228)) return shadow(this, "optionalContentConfig", null); var s_166 = [], r_126 = new RefSet; for (var _b = 0, a_227 = a_228; _b < a_227.length; _b++) { var e_450 = a_227[_b]; if (e_450 instanceof Ref && !r_126.has(e_450)) { r_126.put(e_450); s_166.push(tslib_1.__classPrivateFieldGet(this, _Catalog_instances, "m", _Catalog_Y).call(this, e_450)); } } e = tslib_1.__classPrivateFieldGet(this, _Catalog_instances, "m", _Catalog_v).call(this, i_284, r_126); e.groups = s_166; } catch (e) { if (e instanceof MissingDataException) throw e; warn("Unable to read optional content config: ".concat(e)); } return shadow(this, "optionalContentConfig", e); }, enumerable: false, configurable: true }); Catalog.prototype.setActualNumPages = function (e) { if (e === void 0) { e = null; } this._actualNumPages = e; }; Object.defineProperty(Catalog.prototype, "hasActualNumPages", { get: function () { return null !== this._actualNumPages; }, enumerable: false, configurable: true }); Object.defineProperty(Catalog.prototype, "_pagesCount", { get: function () { var e = this.toplevelPagesDict.get("Count"); if (!Number.isInteger(e)) throw new FormatError("Page count in top-level pages dictionary is not an integer."); return shadow(this, "_pagesCount", e); }, enumerable: false, configurable: true }); Object.defineProperty(Catalog.prototype, "numPages", { get: function () { return this.hasActualNumPages ? this._actualNumPages : this._pagesCount; }, enumerable: false, configurable: true }); Object.defineProperty(Catalog.prototype, "destinations", { get: function () { var e = this._readDests(), t = Object.create(null); if (e instanceof NameTree) for (var _b = 0, _k = e.getAll(); _b < _k.length; _b++) { var _l = _k[_b], i_285 = _l[0], a_229 = _l[1]; var e_451 = fetchDest(a_229); e_451 && (t[stringToPDFString(i_285)] = e_451); } else e instanceof Dict && e.forEach((function (e, i) { var a = fetchDest(i); a && (t[e] = a); })); return shadow(this, "destinations", t); }, enumerable: false, configurable: true }); Catalog.prototype.getDestination = function (e) { var t = this._readDests(); if (t instanceof NameTree) { var i_286 = fetchDest(t.get(e)); if (i_286) return i_286; var a_230 = this.destinations[e]; if (a_230) { warn("Found \"".concat(e, "\" at an incorrect position in the NameTree.")); return a_230; } } else if (t instanceof Dict) { var i_287 = fetchDest(t.get(e)); if (i_287) return i_287; } return null; }; Catalog.prototype._readDests = function () { var e = this._catDict.get("Names"); return (e === null || e === void 0 ? void 0 : e.has("Dests")) ? new NameTree(e.getRaw("Dests"), this.xref) : this._catDict.has("Dests") ? this._catDict.get("Dests") : void 0; }; Object.defineProperty(Catalog.prototype, "pageLabels", { get: function () { var e = null; try { e = this._readPageLabels(); } catch (e) { if (e instanceof MissingDataException) throw e; warn("Unable to read page labels."); } return shadow(this, "pageLabels", e); }, enumerable: false, configurable: true }); Catalog.prototype._readPageLabels = function () { var e = this._catDict.getRaw("PageLabels"); if (!e) return null; var t = new Array(this.numPages); var i = null, a = ""; var s = new NumberTree(e, this.xref).getAll(); var r = "", n = 1; for (var e_452 = 0, o_58 = this.numPages; e_452 < o_58; e_452++) { var o_59 = s.get(e_452); if (void 0 !== o_59) { if (!(o_59 instanceof Dict)) throw new FormatError("PageLabel is not a dictionary."); if (o_59.has("Type") && !isName(o_59.get("Type"), "PageLabel")) throw new FormatError("Invalid type in PageLabel dictionary."); if (o_59.has("S")) { var e_453 = o_59.get("S"); if (!(e_453 instanceof Name)) throw new FormatError("Invalid style in PageLabel dictionary."); i = e_453.name; } else i = null; if (o_59.has("P")) { var e_454 = o_59.get("P"); if ("string" != typeof e_454) throw new FormatError("Invalid prefix in PageLabel dictionary."); a = stringToPDFString(e_454); } else a = ""; if (o_59.has("St")) { var e_455 = o_59.get("St"); if (!(Number.isInteger(e_455) && e_455 >= 1)) throw new FormatError("Invalid start in PageLabel dictionary."); n = e_455; } else n = 1; } switch (i) { case "D": r = n; break; case "R": case "r": r = toRomanNumerals(n, "r" === i); break; case "A": case "a": var e_456 = 26, t_336 = "a" === i ? 97 : 65, a_231 = n - 1; r = String.fromCharCode(t_336 + a_231 % e_456).repeat(Math.floor(a_231 / e_456) + 1); break; default: if (i) throw new FormatError("Invalid style \"".concat(i, "\" in PageLabel dictionary.")); r = ""; } t[e_452] = a + r; n++; } return t; }; Object.defineProperty(Catalog.prototype, "pageLayout", { get: function () { var e = this._catDict.get("PageLayout"); var t = ""; if (e instanceof Name) switch (e.name) { case "SinglePage": case "OneColumn": case "TwoColumnLeft": case "TwoColumnRight": case "TwoPageLeft": case "TwoPageRight": t = e.name; } return shadow(this, "pageLayout", t); }, enumerable: false, configurable: true }); Object.defineProperty(Catalog.prototype, "pageMode", { get: function () { var e = this._catDict.get("PageMode"); var t = "UseNone"; if (e instanceof Name) switch (e.name) { case "UseNone": case "UseOutlines": case "UseThumbs": case "FullScreen": case "UseOC": case "UseAttachments": t = e.name; } return shadow(this, "pageMode", t); }, enumerable: false, configurable: true }); Object.defineProperty(Catalog.prototype, "viewerPreferences", { get: function () { var _this = this; var e = this._catDict.get("ViewerPreferences"); if (!(e instanceof Dict)) return shadow(this, "viewerPreferences", null); var t = null; for (var _b = 0, _k = e.getKeys(); _b < _k.length; _b++) { var i_288 = _k[_b]; var a_232 = e.get(i_288); var s_167 = void 0; switch (i_288) { case "HideToolbar": case "HideMenubar": case "HideWindowUI": case "FitWindow": case "CenterWindow": case "DisplayDocTitle": case "PickTrayByPDFSize": "boolean" == typeof a_232 && (s_167 = a_232); break; case "NonFullScreenPageMode": if (a_232 instanceof Name) switch (a_232.name) { case "UseNone": case "UseOutlines": case "UseThumbs": case "UseOC": s_167 = a_232.name; break; default: s_167 = "UseNone"; } break; case "Direction": if (a_232 instanceof Name) switch (a_232.name) { case "L2R": case "R2L": s_167 = a_232.name; break; default: s_167 = "L2R"; } break; case "ViewArea": case "ViewClip": case "PrintArea": case "PrintClip": if (a_232 instanceof Name) switch (a_232.name) { case "MediaBox": case "CropBox": case "BleedBox": case "TrimBox": case "ArtBox": s_167 = a_232.name; break; default: s_167 = "CropBox"; } break; case "PrintScaling": if (a_232 instanceof Name) switch (a_232.name) { case "None": case "AppDefault": s_167 = a_232.name; break; default: s_167 = "AppDefault"; } break; case "Duplex": if (a_232 instanceof Name) switch (a_232.name) { case "Simplex": case "DuplexFlipShortEdge": case "DuplexFlipLongEdge": s_167 = a_232.name; break; default: s_167 = "None"; } break; case "PrintPageRange": if (Array.isArray(a_232) && a_232.length % 2 == 0) { a_232.every((function (e, t, i) { return Number.isInteger(e) && e > 0 && (0 === t || e >= i[t - 1]) && e <= _this.numPages; })) && (s_167 = a_232); } break; case "NumCopies": Number.isInteger(a_232) && a_232 > 0 && (s_167 = a_232); break; default: warn("Ignoring non-standard key in ViewerPreferences: ".concat(i_288, ".")); continue; } if (void 0 !== s_167) { t || (t = Object.create(null)); t[i_288] = s_167; } else warn("Bad value, for key \"".concat(i_288, "\", in ViewerPreferences: ").concat(a_232, ".")); } return shadow(this, "viewerPreferences", t); }, enumerable: false, configurable: true }); Object.defineProperty(Catalog.prototype, "openAction", { get: function () { var e = this._catDict.get("OpenAction"), t = Object.create(null); if (e instanceof Dict) { var i_289 = new Dict(this.xref); i_289.set("A", e); var a_233 = { url: null, dest: null, action: null }; Catalog.parseDestDictionary({ destDict: i_289, resultObj: a_233 }); Array.isArray(a_233.dest) ? t.dest = a_233.dest : a_233.action && (t.action = a_233.action); } else Array.isArray(e) && (t.dest = e); return shadow(this, "openAction", objectSize(t) > 0 ? t : null); }, enumerable: false, configurable: true }); Object.defineProperty(Catalog.prototype, "attachments", { get: function () { var e = this._catDict.get("Names"); var t = null; if (e instanceof Dict && e.has("EmbeddedFiles")) { var i_290 = new NameTree(e.getRaw("EmbeddedFiles"), this.xref); for (var _b = 0, _k = i_290.getAll(); _b < _k.length; _b++) { var _l = _k[_b], e_457 = _l[0], a_234 = _l[1]; var i_291 = new FileSpec(a_234, this.xref); t || (t = Object.create(null)); t[stringToPDFString(e_457)] = i_291.serializable; } } return shadow(this, "attachments", t); }, enumerable: false, configurable: true }); Object.defineProperty(Catalog.prototype, "xfaImages", { get: function () { var e = this._catDict.get("Names"); var t = null; if (e instanceof Dict && e.has("XFAImages")) { var i_292 = new NameTree(e.getRaw("XFAImages"), this.xref); for (var _b = 0, _k = i_292.getAll(); _b < _k.length; _b++) { var _l = _k[_b], e_458 = _l[0], a_235 = _l[1]; t || (t = new Dict(this.xref)); t.set(stringToPDFString(e_458), a_235); } } return shadow(this, "xfaImages", t); }, enumerable: false, configurable: true }); Catalog.prototype._collectJavaScript = function () { var e = this._catDict.get("Names"); var t = null; function appendIfJavaScriptDict(e, i) { if (!(i instanceof Dict)) return; if (!isName(i.get("S"), "JavaScript")) return; var a = i.get("JS"); if (a instanceof BaseStream) a = a.getString(); else if ("string" != typeof a) return; a = stringToPDFString(a).replaceAll("\0", ""); a && (t || (t = new Map)).set(e, a); } if (e instanceof Dict && e.has("JavaScript")) { var t_337 = new NameTree(e.getRaw("JavaScript"), this.xref); for (var _b = 0, _k = t_337.getAll(); _b < _k.length; _b++) { var _l = _k[_b], e_459 = _l[0], i_293 = _l[1]; appendIfJavaScriptDict(stringToPDFString(e_459), i_293); } } var i = this._catDict.get("OpenAction"); i && appendIfJavaScriptDict("OpenAction", i); return t; }; Object.defineProperty(Catalog.prototype, "jsActions", { get: function () { var e = this._collectJavaScript(); var t = collectActions(this.xref, this._catDict, dA); if (e) { t || (t = Object.create(null)); for (var _b = 0, e_460 = e; _b < e_460.length; _b++) { var _k = e_460[_b], i_294 = _k[0], a_236 = _k[1]; i_294 in t ? t[i_294].push(a_236) : t[i_294] = [a_236]; } } return shadow(this, "jsActions", t); }, enumerable: false, configurable: true }); Catalog.prototype.fontFallback = function (e, t) { return tslib_1.__awaiter(this, void 0, void 0, function () { var i, _b, i_295, a_237; return tslib_1.__generator(this, function (_k) { switch (_k.label) { case 0: return [4 /*yield*/, Promise.all(this.fontCache)]; case 1: i = _k.sent(); for (_b = 0, i_295 = i; _b < i_295.length; _b++) { a_237 = i_295[_b]; if (a_237.loadedName === e) { a_237.fallback(t); return [2 /*return*/]; } } return [2 /*return*/]; } }); }); }; Catalog.prototype.cleanup = function (e) { if (e === void 0) { e = !1; } return tslib_1.__awaiter(this, void 0, void 0, function () { var t, _b, t_338, e_461; return tslib_1.__generator(this, function (_k) { switch (_k.label) { case 0: clearGlobalCaches(); this.globalImageCache.clear(e); this.pageKidsCountCache.clear(); this.pageIndexCache.clear(); this.nonBlendModesSet.clear(); return [4 /*yield*/, Promise.all(this.fontCache)]; case 1: t = _k.sent(); for (_b = 0, t_338 = t; _b < t_338.length; _b++) { e_461 = t_338[_b].dict; delete e_461.cacheKey; } this.fontCache.clear(); this.builtInCMapCache.clear(); this.standardFontDataCache.clear(); this.systemFontCache.clear(); return [2 /*return*/]; } }); }); }; Catalog.prototype.getPageDict = function (e) { return tslib_1.__awaiter(this, void 0, void 0, function () { var t, i, a, s, r, n, o, a_238, g_41, c_30, t_339, _b, g_42, c_31, _k, h_23, _l, t_340, _m, e_462; return tslib_1.__generator(this, function (_o) { switch (_o.label) { case 0: t = [this.toplevelPagesDict], i = new RefSet, a = this._catDict.getRaw("Pages"); a instanceof Ref && i.put(a); s = this.xref, r = this.pageKidsCountCache, n = this.pageIndexCache; o = 0; _o.label = 1; case 1: if (!t.length) return [3 /*break*/, 15]; a_238 = t.pop(); if (!(a_238 instanceof Ref)) return [3 /*break*/, 6]; g_41 = r.get(a_238); if (g_41 >= 0 && o + g_41 <= e) { o += g_41; return [3 /*break*/, 14]; } if (i.has(a_238)) throw new FormatError("Pages tree contains circular reference."); i.put(a_238); return [4 /*yield*/, s.fetchAsync(a_238)]; case 2: c_30 = _o.sent(); if (!(c_30 instanceof Dict)) return [3 /*break*/, 5]; t_339 = c_30.getRaw("Type"); _b = t_339 instanceof Ref; if (!_b) return [3 /*break*/, 4]; return [4 /*yield*/, s.fetchAsync(t_339)]; case 3: _b = (t_339 = _o.sent()); _o.label = 4; case 4: _b; if (isName(t_339, "Page") || !c_30.has("Kids")) { r.has(a_238) || r.put(a_238, 1); n.has(a_238) || n.put(a_238, o); if (o === e) return [2 /*return*/, [c_30, a_238]]; o++; return [3 /*break*/, 14]; } _o.label = 5; case 5: t.push(c_30); return [3 /*break*/, 14]; case 6: if (!(a_238 instanceof Dict)) throw new FormatError("Page dictionary kid reference points to wrong type of object."); g_42 = a_238.objId; c_31 = a_238.getRaw("Count"); _k = c_31 instanceof Ref; if (!_k) return [3 /*break*/, 8]; return [4 /*yield*/, s.fetchAsync(c_31)]; case 7: _k = (c_31 = _o.sent()); _o.label = 8; case 8: _k; if (Number.isInteger(c_31) && c_31 >= 0) { g_42 && !r.has(g_42) && r.put(g_42, c_31); if (o + c_31 <= e) { o += c_31; return [3 /*break*/, 14]; } } h_23 = a_238.getRaw("Kids"); _l = h_23 instanceof Ref; if (!_l) return [3 /*break*/, 10]; return [4 /*yield*/, s.fetchAsync(h_23)]; case 9: _l = (h_23 = _o.sent()); _o.label = 10; case 10: _l; if (!!Array.isArray(h_23)) return [3 /*break*/, 13]; t_340 = a_238.getRaw("Type"); _m = t_340 instanceof Ref; if (!_m) return [3 /*break*/, 12]; return [4 /*yield*/, s.fetchAsync(t_340)]; case 11: _m = (t_340 = _o.sent()); _o.label = 12; case 12: _m; if (isName(t_340, "Page") || !a_238.has("Kids")) { if (o === e) return [2 /*return*/, [a_238, null]]; o++; return [3 /*break*/, 14]; } throw new FormatError("Page dictionary kids object is not an array."); case 13: for (e_462 = h_23.length - 1; e_462 >= 0; e_462--) t.push(h_23[e_462]); _o.label = 14; case 14: return [3 /*break*/, 1]; case 15: throw new Error("Page index ".concat(e, " not found.")); } }); }); }; Catalog.prototype.getAllPageDicts = function (e) { if (e === void 0) { e = !1; } return tslib_1.__awaiter(this, void 0, void 0, function () { function addPageDict(e, t) { t && !o.has(t) && o.put(t, g); r.set(g++, [e, t]); } function addPageError(i) { if (i instanceof XRefEntryException && !e) throw i; if (e && t && 0 === g) { warn("getAllPageDicts - Skipping invalid first page: \"".concat(i, "\".")); i = Dict.empty; } r.set(g++, [i, null]); } var t, i, a, s, r, n, o, g, e_466, t_341, s_168, r_127, e_463, o_60, g_43, e_464, c_32, e_465; return tslib_1.__generator(this, function (_b) { switch (_b.label) { case 0: t = this.pdfManager.evaluatorOptions.ignoreErrors, i = [{ currentNode: this.toplevelPagesDict, posInKids: 0 }], a = new RefSet, s = this._catDict.getRaw("Pages"); s instanceof Ref && a.put(s); r = new Map, n = this.xref, o = this.pageIndexCache; g = 0; _b.label = 1; case 1: if (!(i.length > 0)) return [3 /*break*/, 17]; e_466 = i.at(-1), t_341 = e_466.currentNode, s_168 = e_466.posInKids; r_127 = t_341.getRaw("Kids"); if (!(r_127 instanceof Ref)) return [3 /*break*/, 5]; _b.label = 2; case 2: _b.trys.push([2, 4, , 5]); return [4 /*yield*/, n.fetchAsync(r_127)]; case 3: r_127 = _b.sent(); return [3 /*break*/, 5]; case 4: e_463 = _b.sent(); addPageError(e_463); return [3 /*break*/, 17]; case 5: if (!Array.isArray(r_127)) { addPageError(new FormatError("Page dictionary kids object is not an array.")); return [3 /*break*/, 17]; } if (s_168 >= r_127.length) { i.pop(); return [3 /*break*/, 16]; } o_60 = r_127[s_168]; g_43 = void 0; if (!(o_60 instanceof Ref)) return [3 /*break*/, 10]; if (a.has(o_60)) { addPageError(new FormatError("Pages tree contains circular reference.")); return [3 /*break*/, 17]; } a.put(o_60); _b.label = 6; case 6: _b.trys.push([6, 8, , 9]); return [4 /*yield*/, n.fetchAsync(o_60)]; case 7: g_43 = _b.sent(); return [3 /*break*/, 9]; case 8: e_464 = _b.sent(); addPageError(e_464); return [3 /*break*/, 17]; case 9: return [3 /*break*/, 11]; case 10: g_43 = o_60; _b.label = 11; case 11: if (!(g_43 instanceof Dict)) { addPageError(new FormatError("Page dictionary kid reference points to wrong type of object.")); return [3 /*break*/, 17]; } c_32 = g_43.getRaw("Type"); if (!(c_32 instanceof Ref)) return [3 /*break*/, 15]; _b.label = 12; case 12: _b.trys.push([12, 14, , 15]); return [4 /*yield*/, n.fetchAsync(c_32)]; case 13: c_32 = _b.sent(); return [3 /*break*/, 15]; case 14: e_465 = _b.sent(); addPageError(e_465); return [3 /*break*/, 17]; case 15: isName(c_32, "Page") || !g_43.has("Kids") ? addPageDict(g_43, o_60 instanceof Ref ? o_60 : null) : i.push({ currentNode: g_43, posInKids: 0 }); e_466.posInKids++; _b.label = 16; case 16: return [3 /*break*/, 1]; case 17: return [2 /*return*/, r]; } }); }); }; Catalog.prototype.getPageIndex = function (e) { var _this = this; var t = this.pageIndexCache.get(e); if (void 0 !== t) return Promise.resolve(t); var i = this.xref; var a = 0; var next = function (t) { return function pagesBeforeRef(t) { var a, s = 0; return i.fetchAsync(t).then((function (i) { if (isRefsEqual(t, e) && !isDict(i, "Page") && !(i instanceof Dict && !i.has("Type") && i.has("Contents"))) throw new FormatError("The reference does not point to a /Page dictionary."); if (!i) return null; if (!(i instanceof Dict)) throw new FormatError("Node must be a dictionary."); a = i.getRaw("Parent"); return i.getAsync("Parent"); })).then((function (e) { if (!e) return null; if (!(e instanceof Dict)) throw new FormatError("Parent must be a dictionary."); return e.getAsync("Kids"); })).then((function (e) { if (!e) return null; var r = []; var n = !1; for (var _b = 0, e_467 = e; _b < e_467.length; _b++) { var a_239 = e_467[_b]; if (!(a_239 instanceof Ref)) throw new FormatError("Kid must be a reference."); if (isRefsEqual(a_239, t)) { n = !0; break; } r.push(i.fetchAsync(a_239).then((function (e) { if (!(e instanceof Dict)) throw new FormatError("Kid node must be a dictionary."); e.has("Count") ? s += e.get("Count") : s++; }))); } if (!n) throw new FormatError("Kid reference not found in parent's kids."); return Promise.all(r).then((function () { return [s, a]; })); })); }(t).then((function (t) { if (!t) { _this.pageIndexCache.put(e, a); return a; } var i = t[0], s = t[1]; a += i; return next(s); })); }; return next(e); }; Object.defineProperty(Catalog.prototype, "baseUrl", { get: function () { var e = this._catDict.get("URI"); if (e instanceof Dict) { var t_342 = e.get("Base"); if ("string" == typeof t_342) { var e_468 = createValidAbsoluteUrl(t_342, null, { tryConvertEncoding: !0 }); if (e_468) return shadow(this, "baseUrl", e_468.href); } } return shadow(this, "baseUrl", this.pdfManager.docBaseUrl); }, enumerable: false, configurable: true }); Catalog.parseDestDictionary = function (_b) { var e = _b.destDict, t = _b.resultObj, _k = _b.docBaseUrl, i = _k === void 0 ? null : _k, _l = _b.docAttachments, a = _l === void 0 ? null : _l; if (!(e instanceof Dict)) { warn("parseDestDictionary: `destDict` must be a dictionary."); return; } var s, r, n = e.get("A"); if (!(n instanceof Dict)) if (e.has("Dest")) n = e.get("Dest"); else { n = e.get("AA"); n instanceof Dict && (n.has("D") ? n = n.get("D") : n.has("U") && (n = n.get("U"))); } if (n instanceof Dict) { var e_469 = n.get("S"); if (!(e_469 instanceof Name)) { warn("parseDestDictionary: Invalid type in Action dictionary."); return; } var i_296 = e_469.name; switch (i_296) { case "ResetForm": var e_470 = n.get("Flags"), o_61 = 0 == (1 & ("number" == typeof e_470 ? e_470 : 0)), g_44 = [], c_33 = []; for (var _m = 0, _o = n.get("Fields") || []; _m < _o.length; _m++) { var e_471 = _o[_m]; e_471 instanceof Ref ? c_33.push(e_471.toString()) : "string" == typeof e_471 && g_44.push(stringToPDFString(e_471)); } t.resetForm = { fields: g_44, refs: c_33, include: o_61 }; break; case "URI": s = n.get("URI"); s instanceof Name && (s = "/" + s.name); break; case "GoTo": r = n.get("D"); break; case "Launch": case "GoToR": var h_24 = n.get("F"); if (h_24 instanceof Dict) { var e_472 = new FileSpec(h_24, null, !0), t_343 = e_472.serializable.rawFilename; s = t_343; } else "string" == typeof h_24 && (s = h_24); var l_22 = fetchRemoteDest(n); l_22 && "string" == typeof s && (s = s.split("#", 1)[0] + "#" + l_22); var C_24 = n.get("NewWindow"); "boolean" == typeof C_24 && (t.newWindow = C_24); break; case "GoToE": var Q_21 = n.get("T"); var E_12; if (a && Q_21 instanceof Dict) { var e_473 = Q_21.get("R"), t_344 = Q_21.get("N"); isName(e_473, "C") && "string" == typeof t_344 && (E_12 = a[stringToPDFString(t_344)]); } if (E_12) { t.attachment = E_12; var e_474 = fetchRemoteDest(n); e_474 && (t.attachmentDest = e_474); } else warn('parseDestDictionary - unimplemented "GoToE" action.'); break; case "Named": var u_11 = n.get("N"); u_11 instanceof Name && (t.action = u_11.name); break; case "SetOCGState": var d_8 = n.get("State"), f_9 = n.get("PreserveRB"); if (!Array.isArray(d_8) || 0 === d_8.length) break; var p_6 = []; for (var _p = 0, d_7 = d_8; _p < d_7.length; _p++) { var e_475 = d_7[_p]; if (e_475 instanceof Name) switch (e_475.name) { case "ON": case "OFF": case "Toggle": p_6.push(e_475.name); } else e_475 instanceof Ref && p_6.push(e_475.toString()); } if (p_6.length !== d_8.length) break; t.setOCGState = { state: p_6, preserveRB: "boolean" != typeof f_9 || f_9 }; break; case "JavaScript": var m_8 = n.get("JS"); var y_5; m_8 instanceof BaseStream ? y_5 = m_8.getString() : "string" == typeof m_8 && (y_5 = m_8); var w_4 = y_5 && recoverJsURL(stringToPDFString(y_5)); if (w_4) { s = w_4.url; t.newWindow = w_4.newWindow; break; } default: if ("JavaScript" === i_296 || "SubmitForm" === i_296) break; warn("parseDestDictionary - unsupported action: \"".concat(i_296, "\".")); } } else e.has("Dest") && (r = e.get("Dest")); if ("string" == typeof s) { var e_476 = createValidAbsoluteUrl(s, i, { addDefaultProtocol: !0, tryConvertEncoding: !0 }); e_476 && (t.url = e_476.href); t.unsafeUrl = s; } if (r) { r instanceof Name && (r = r.name); "string" == typeof r ? t.dest = stringToPDFString(r) : isValidExplicitDest(r) && (t.dest = r); } }; return Catalog; }()); _Catalog_instances = new WeakSet(), _Catalog_Y = function _Catalog_Y(e) { var t = this.xref.fetch(e), i = { id: e.toString(), name: null, intent: null, usage: { print: null, view: null } }, a = t.get("Name"); "string" == typeof a && (i.name = stringToPDFString(a)); var s = t.getArray("Intent"); Array.isArray(s) || (s = [s]); s.every((function (e) { return e instanceof Name; })) && (i.intent = s.map((function (e) { return e.name; }))); var r = t.get("Usage"); if (!(r instanceof Dict)) return i; var n = i.usage, o = r.get("Print"); if (o instanceof Dict) { var e_477 = o.get("PrintState"); if (e_477 instanceof Name) switch (e_477.name) { case "ON": case "OFF": n.print = { printState: e_477.name }; } } var g = r.get("View"); if (g instanceof Dict) { var e_478 = g.get("ViewState"); if (e_478 instanceof Name) switch (e_478.name) { case "ON": case "OFF": n.view = { viewState: e_478.name }; } } return i; }, _Catalog_v = function _Catalog_v(e, t) { function parseOnOff(e) { var i = []; if (Array.isArray(e)) for (var _b = 0, e_479 = e; _b < e_479.length; _b++) { var a_240 = e_479[_b]; a_240 instanceof Ref && t.has(a_240) && i.push(a_240.toString()); } return i; } function parseOrder(e, i) { if (i === void 0) { i = 0; } if (!Array.isArray(e)) return null; var s = []; for (var _b = 0, e_480 = e; _b < e_480.length; _b++) { var r_128 = e_480[_b]; if (r_128 instanceof Ref && t.has(r_128)) { a.put(r_128); s.push(r_128.toString()); continue; } var e_481 = parseNestedOrder(r_128, i); e_481 && s.push(e_481); } if (i > 0) return s; var r = []; for (var _k = 0, t_345 = t; _k < t_345.length; _k++) { var e_482 = t_345[_k]; a.has(e_482) || r.push(e_482.toString()); } r.length && s.push({ name: null, order: r }); return s; } function parseNestedOrder(e, t) { if (++t > s) { warn("parseNestedOrder - reached MAX_NESTED_LEVELS."); return null; } var a = i.fetchIfRef(e); if (!Array.isArray(a)) return null; var r = i.fetchIfRef(a[0]); if ("string" != typeof r) return null; var n = parseOrder(a.slice(1), t); return n && n.length ? { name: stringToPDFString(r), order: n } : null; } var i = this.xref, a = new RefSet, s = 10; return { name: "string" == typeof e.get("Name") ? stringToPDFString(e.get("Name")) : null, creator: "string" == typeof e.get("Creator") ? stringToPDFString(e.get("Creator")) : null, baseState: e.get("BaseState") instanceof Name ? e.get("BaseState").name : null, on: parseOnOff(e.get("ON")), off: parseOnOff(e.get("OFF")), order: parseOrder(e.get("Order")), groups: null }; }; function addChildren(e, t) { if (e instanceof Dict) e = e.getRawValues(); else if (e instanceof BaseStream) e = e.dict.getRawValues(); else if (!Array.isArray(e)) return; for (var _b = 0, e_483 = e; _b < e_483.length; _b++) { var a_241 = e_483[_b]; ((i = a_241) instanceof Ref || i instanceof Dict || i instanceof BaseStream || Array.isArray(i)) && t.push(a_241); } var i; } var ObjectLoader = /** @class */ (function () { function ObjectLoader(e, t, i) { this.dict = e; this.keys = t; this.xref = i; this.refSet = null; } ObjectLoader.prototype.load = function () { return tslib_1.__awaiter(this, void 0, void 0, function () { var _b, e, t, i, _k, e_484, a_242, e_485; return tslib_1.__generator(this, function (_l) { if (this.xref.stream.isDataLoaded) return [2 /*return*/]; _b = this, e = _b.keys, t = _b.dict; this.refSet = new RefSet; i = []; for (_k = 0, e_484 = e; _k < e_484.length; _k++) { a_242 = e_484[_k]; e_485 = t.getRaw(a_242); void 0 !== e_485 && i.push(e_485); } return [2 /*return*/, this._walk(i)]; }); }); }; ObjectLoader.prototype._walk = function (e) { return tslib_1.__awaiter(this, void 0, void 0, function () { var t, i, a_243, t_347, e_487, s_169, _b, e_486, t_348, _k, t_346, e_488; return tslib_1.__generator(this, function (_l) { switch (_l.label) { case 0: t = [], i = []; for (; e.length;) { a_243 = e.pop(); if (a_243 instanceof Ref) { if (this.refSet.has(a_243)) continue; try { this.refSet.put(a_243); a_243 = this.xref.fetch(a_243); } catch (e) { if (!(e instanceof MissingDataException)) { warn("ObjectLoader._walk - requesting all data: \"".concat(e, "\".")); this.refSet = null; t_347 = this.xref.stream.manager; return [2 /*return*/, t_347.requestAllChunks()]; } t.push(a_243); i.push({ begin: e.begin, end: e.end }); } } if (a_243 instanceof BaseStream) { e_487 = a_243.getBaseStreams(); if (e_487) { s_169 = !1; for (_b = 0, e_486 = e_487; _b < e_486.length; _b++) { t_348 = e_486[_b]; if (!t_348.isDataLoaded) { s_169 = !0; i.push({ begin: t_348.start, end: t_348.end }); } } s_169 && t.push(a_243); } } addChildren(a_243, e); } if (!i.length) return [3 /*break*/, 2]; return [4 /*yield*/, this.xref.stream.manager.requestRanges(i)]; case 1: _l.sent(); for (_k = 0, t_346 = t; _k < t_346.length; _k++) { e_488 = t_346[_k]; e_488 instanceof Ref && this.refSet.remove(e_488); } return [2 /*return*/, this._walk(t)]; case 2: this.refSet = null; return [2 /*return*/]; } }); }); }; return ObjectLoader; }()); var Ws = Symbol(), Xs = Symbol(), js = Symbol(), Zs = Symbol(), Vs = Symbol(), zs = Symbol(), _s = Symbol(), $s = Symbol(), Ar = Symbol(), er = Symbol("content"), tr = Symbol("data"), ir = Symbol(), ar = Symbol("extra"), sr = Symbol(), rr = Symbol(), nr = Symbol(), or = Symbol(), gr = Symbol(), Ir = Symbol(), cr = Symbol(), hr = Symbol(), lr = Symbol(), Cr = Symbol(), Qr = Symbol(), Er = Symbol(), ur = Symbol(), dr = Symbol(), fr = Symbol(), pr = Symbol(), mr = Symbol(), yr = Symbol(), wr = Symbol(), br = Symbol(), Dr = Symbol(), Fr = Symbol(), Sr = Symbol(), kr = Symbol(), Rr = Symbol(), Nr = Symbol(), Gr = Symbol(), xr = Symbol(), Mr = Symbol(), Ur = Symbol(), Lr = Symbol(), Jr = Symbol(), Hr = Symbol("namespaceId"), Yr = Symbol("nodeName"), vr = Symbol(), Kr = Symbol(), Tr = Symbol(), qr = Symbol(), Or = Symbol(), Pr = Symbol(), Wr = Symbol(), Xr = Symbol(), jr = Symbol("root"), Zr = Symbol(), Vr = Symbol(), zr = Symbol(), _r = Symbol(), $r = Symbol(), An = Symbol(), en = Symbol(), tn = Symbol(), an = Symbol(), sn = Symbol(), rn = Symbol(), nn = Symbol("uid"), on = Symbol(), gn = { config: { id: 0, check: function (e) { return e.startsWith("http://www.xfa.org/schema/xci/"); } }, connectionSet: { id: 1, check: function (e) { return e.startsWith("http://www.xfa.org/schema/xfa-connection-set/"); } }, datasets: { id: 2, check: function (e) { return e.startsWith("http://www.xfa.org/schema/xfa-data/"); } }, form: { id: 3, check: function (e) { return e.startsWith("http://www.xfa.org/schema/xfa-form/"); } }, localeSet: { id: 4, check: function (e) { return e.startsWith("http://www.xfa.org/schema/xfa-locale-set/"); } }, pdf: { id: 5, check: function (e) { return "http://ns.adobe.com/xdp/pdf/" === e; } }, signature: { id: 6, check: function (e) { return "http://www.w3.org/2000/09/xmldsig#" === e; } }, sourceSet: { id: 7, check: function (e) { return e.startsWith("http://www.xfa.org/schema/xfa-source-set/"); } }, stylesheet: { id: 8, check: function (e) { return "http://www.w3.org/1999/XSL/Transform" === e; } }, template: { id: 9, check: function (e) { return e.startsWith("http://www.xfa.org/schema/xfa-template/"); } }, xdc: { id: 10, check: function (e) { return e.startsWith("http://www.xfa.org/schema/xdc/"); } }, xdp: { id: 11, check: function (e) { return "http://ns.adobe.com/xdp/" === e; } }, xfdf: { id: 12, check: function (e) { return "http://ns.adobe.com/xfdf/" === e; } }, xhtml: { id: 13, check: function (e) { return "http://www.w3.org/1999/xhtml" === e; } }, xmpmeta: { id: 14, check: function (e) { return "http://ns.adobe.com/xmpmeta/" === e; } } }, In = { pt: function (e) { return e; }, cm: function (e) { return e / 2.54 * 72; }, mm: function (e) { return e / 25.4 * 72; }, in: function (e) { return 72 * e; }, px: function (e) { return e; } }, cn = /([+-]?\d+\.?\d*)(.*)/; function stripQuotes(e) { return e.startsWith("'") || e.startsWith('"') ? e.slice(1, -1) : e; } function getInteger(_b) { var e = _b.data, t = _b.defaultValue, i = _b.validate; if (!e) return t; e = e.trim(); var a = parseInt(e, 10); return !isNaN(a) && i(a) ? a : t; } function getFloat(_b) { var e = _b.data, t = _b.defaultValue, i = _b.validate; if (!e) return t; e = e.trim(); var a = parseFloat(e); return !isNaN(a) && i(a) ? a : t; } function getKeyword(_b) { var e = _b.data, t = _b.defaultValue, i = _b.validate; return e && i(e = e.trim()) ? e : t; } function getStringOption(e, t) { return getKeyword({ data: e, defaultValue: t[0], validate: function (e) { return t.includes(e); } }); } function getMeasurement(e, t) { if (t === void 0) { t = "0"; } t || (t = "0"); if (!e) return getMeasurement(t); var i = e.trim().match(cn); if (!i) return getMeasurement(t); var a = i[1], s = i[2], r = parseFloat(a); if (isNaN(r)) return getMeasurement(t); if (0 === r) return 0; var n = In[s]; return n ? n(r) : r; } function getRatio(e) { if (!e) return { num: 1, den: 1 }; var t = e.trim().split(/\s*:\s*/).map((function (e) { return parseFloat(e); })).filter((function (e) { return !isNaN(e); })); 1 === t.length && t.push(1); if (0 === t.length) return { num: 1, den: 1 }; var i = t[0], a = t[1]; return { num: i, den: a }; } function getRelevant(e) { return e ? e.trim().split(/\s+/).map((function (e) { return ({ excluded: "-" === e[0], viewname: e.substring(1) }); })) : []; } var HTMLResult = /** @class */ (function () { function HTMLResult(e, t, i, a) { this.success = e; this.html = t; this.bbox = i; this.breakNode = a; } Object.defineProperty(HTMLResult, "FAILURE", { get: function () { return shadow(this, "FAILURE", new HTMLResult(!1, null, null, null)); }, enumerable: false, configurable: true }); Object.defineProperty(HTMLResult, "EMPTY", { get: function () { return shadow(this, "EMPTY", new HTMLResult(!0, null, null, null)); }, enumerable: false, configurable: true }); HTMLResult.prototype.isBreak = function () { return !!this.breakNode; }; HTMLResult.breakNode = function (e) { return new HTMLResult(!1, null, null, e); }; HTMLResult.success = function (e, t) { if (t === void 0) { t = null; } return new HTMLResult(!0, e, t, null); }; return HTMLResult; }()); var FontFinder = /** @class */ (function () { function FontFinder(e) { this.fonts = new Map; this.cache = new Map; this.warned = new Set; this.defaultFont = null; this.add(e); } FontFinder.prototype.add = function (e, t) { if (t === void 0) { t = null; } for (var _b = 0, e_489 = e; _b < e_489.length; _b++) { var t_350 = e_489[_b]; this.addPdfFont(t_350); } for (var _k = 0, _l = this.fonts.values(); _k < _l.length; _k++) { var e_490 = _l[_k]; e_490.regular || (e_490.regular = e_490.italic || e_490.bold || e_490.bolditalic); } if (!t || 0 === t.size) return; var i = this.fonts.get("PdfJS-Fallback-PdfJS-XFA"); for (var _m = 0, t_349 = t; _m < t_349.length; _m++) { var e_491 = t_349[_m]; this.fonts.set(e_491, i); } }; FontFinder.prototype.addPdfFont = function (e) { var _b, _k, _l; var t = e.cssFontInfo, i = t.fontFamily; var a = this.fonts.get(i); if (!a) { a = Object.create(null); this.fonts.set(i, a); this.defaultFont || (this.defaultFont = a); } var s = ""; var r = parseFloat(t.fontWeight); 0 !== parseFloat(t.italicAngle) ? s = r >= 700 ? "bolditalic" : "italic" : r >= 700 && (s = "bold"); if (!s) { (e.name.includes("Bold") || ((_b = e.psName) === null || _b === void 0 ? void 0 : _b.includes("Bold"))) && (s = "bold"); (e.name.includes("Italic") || e.name.endsWith("It") || ((_k = e.psName) === null || _k === void 0 ? void 0 : _k.includes("Italic")) || ((_l = e.psName) === null || _l === void 0 ? void 0 : _l.endsWith("It"))) && (s += "italic"); } s || (s = "regular"); a[s] = e; }; FontFinder.prototype.getDefault = function () { return this.defaultFont; }; FontFinder.prototype.find = function (e, t) { var _b, _k; if (t === void 0) { t = !0; } var i = this.fonts.get(e) || this.cache.get(e); if (i) return i; var a = /,|-|_| |bolditalic|bold|italic|regular|it/gi; var s = e.replaceAll(a, ""); i = this.fonts.get(s); if (i) { this.cache.set(e, i); return i; } s = s.toLowerCase(); var r = []; for (var _l = 0, _m = this.fonts.entries(); _l < _m.length; _l++) { var _o = _m[_l], e_492 = _o[0], t_351 = _o[1]; e_492.replaceAll(a, "").toLowerCase().startsWith(s) && r.push(t_351); } if (0 === r.length) for (var _p = 0, _q = this.fonts.entries(); _p < _q.length; _p++) { var _u = _q[_p], e_493 = _u[1]; ((_b = e_493.regular.name) === null || _b === void 0 ? void 0 : _b.replaceAll(a, "").toLowerCase().startsWith(s)) && r.push(e_493); } if (0 === r.length) { s = s.replaceAll(/psmt|mt/gi, ""); for (var _v = 0, _w = this.fonts.entries(); _v < _w.length; _v++) { var _x = _w[_v], e_494 = _x[0], t_352 = _x[1]; e_494.replaceAll(a, "").toLowerCase().startsWith(s) && r.push(t_352); } } if (0 === r.length) for (var _y = 0, _z = this.fonts.values(); _y < _z.length; _y++) { var e_495 = _z[_y]; ((_k = e_495.regular.name) === null || _k === void 0 ? void 0 : _k.replaceAll(a, "").toLowerCase().startsWith(s)) && r.push(e_495); } if (r.length >= 1) { 1 !== r.length && t && warn("XFA - Too many choices to guess the correct font: ".concat(e)); this.cache.set(e, r[0]); return r[0]; } if (t && !this.warned.has(e)) { this.warned.add(e); warn("XFA - Cannot find the font: ".concat(e)); } return null; }; return FontFinder; }()); function selectFont(e, t) { return "italic" === e.posture ? "bold" === e.weight ? t.bolditalic : t.italic : "bold" === e.weight ? t.bold : t.regular; } var FontInfo = /** @class */ (function () { function FontInfo(e, t, i, a) { var _b, _k, _l; this.lineHeight = i; this.paraMargin = t || { top: 0, bottom: 0, left: 0, right: 0 }; if (!e) { _b = this.defaultFont(a), this.pdfFont = _b[0], this.xfaFont = _b[1]; return; } this.xfaFont = { typeface: e.typeface, posture: e.posture, weight: e.weight, size: e.size, letterSpacing: e.letterSpacing }; var s = a.find(e.typeface); if (s) { this.pdfFont = selectFont(e, s); this.pdfFont || (_k = this.defaultFont(a), this.pdfFont = _k[0], this.xfaFont = _k[1], _k); } else _l = this.defaultFont(a), this.pdfFont = _l[0], this.xfaFont = _l[1]; } FontInfo.prototype.defaultFont = function (e) { var t = e.find("Helvetica", !1) || e.find("Myriad Pro", !1) || e.find("Arial", !1) || e.getDefault(); if (t === null || t === void 0 ? void 0 : t.regular) { var e_496 = t.regular; return [e_496, { typeface: e_496.cssFontInfo.fontFamily, posture: "normal", weight: "normal", size: 10, letterSpacing: 0 }]; } return [null, { typeface: "Courier", posture: "normal", weight: "normal", size: 10, letterSpacing: 0 }]; }; return FontInfo; }()); var FontSelector = /** @class */ (function () { function FontSelector(e, t, i, a) { this.fontFinder = a; this.stack = [new FontInfo(e, t, i, a)]; } FontSelector.prototype.pushData = function (e, t, i) { var a = this.stack.at(-1); for (var _b = 0, _k = ["typeface", "posture", "weight", "size", "letterSpacing"]; _b < _k.length; _b++) { var t_353 = _k[_b]; e[t_353] || (e[t_353] = a.xfaFont[t_353]); } for (var _l = 0, _m = ["top", "bottom", "left", "right"]; _l < _m.length; _l++) { var e_497 = _m[_l]; isNaN(t[e_497]) && (t[e_497] = a.paraMargin[e_497]); } var s = new FontInfo(e, t, i || a.lineHeight, this.fontFinder); s.pdfFont || (s.pdfFont = a.pdfFont); this.stack.push(s); }; FontSelector.prototype.popFont = function () { this.stack.pop(); }; FontSelector.prototype.topFont = function () { return this.stack.at(-1); }; return FontSelector; }()); var TextMeasure = /** @class */ (function () { function TextMeasure(e, t, i, a) { this.glyphs = []; this.fontSelector = new FontSelector(e, t, i, a); this.extraHeight = 0; } TextMeasure.prototype.pushData = function (e, t, i) { this.fontSelector.pushData(e, t, i); }; TextMeasure.prototype.popFont = function (e) { return this.fontSelector.popFont(); }; TextMeasure.prototype.addPara = function () { var e = this.fontSelector.topFont(); this.extraHeight += e.paraMargin.top + e.paraMargin.bottom; }; TextMeasure.prototype.addString = function (e) { if (!e) return; var t = this.fontSelector.topFont(), i = t.xfaFont.size; if (t.pdfFont) { var a_244 = t.xfaFont.letterSpacing, s_170 = t.pdfFont, r_129 = s_170.lineHeight || 1.2, n_86 = t.lineHeight || Math.max(1.2, r_129) * i, o_62 = r_129 - (void 0 === s_170.lineGap ? .2 : s_170.lineGap), g_45 = Math.max(1, o_62) * i, c_34 = i / 1e3, h_25 = s_170.defaultWidth || s_170.charsToGlyphs(" ")[0].width; for (var _b = 0, _k = e.split(/[\u2029\n]/); _b < _k.length; _b++) { var t_354 = _k[_b]; var e_498 = s_170.encodeString(t_354).join(""), i_298 = s_170.charsToGlyphs(e_498); for (var _l = 0, i_297 = i_298; _l < i_297.length; _l++) { var e_499 = i_297[_l]; var t_355 = e_499.width || h_25; this.glyphs.push([t_355 * c_34 + a_244, n_86, g_45, e_499.unicode, !1]); } this.glyphs.push([0, 0, 0, "\n", !0]); } this.glyphs.pop(); } else { for (var _m = 0, _o = e.split(/[\u2029\n]/); _m < _o.length; _m++) { var t_356 = _o[_m]; for (var _p = 0, _q = t_356.split(""); _p < _q.length; _p++) { var e_500 = _q[_p]; this.glyphs.push([i, 1.2 * i, i, e_500, !1]); } this.glyphs.push([0, 0, 0, "\n", !0]); } this.glyphs.pop(); } }; TextMeasure.prototype.compute = function (e) { var t = -1, i = 0, a = 0, s = 0, r = 0, n = 0, o = !1, g = !0; for (var c_35 = 0, h_26 = this.glyphs.length; c_35 < h_26; c_35++) { var _b = this.glyphs[c_35], h_27 = _b[0], l_23 = _b[1], C_25 = _b[2], Q_22 = _b[3], E_13 = _b[4], u_12 = " " === Q_22, d_9 = g ? C_25 : l_23; if (E_13) { a = Math.max(a, r); r = 0; s += n; n = d_9; t = -1; i = 0; g = !1; } else if (u_12) if (r + h_27 > e) { a = Math.max(a, r); r = 0; s += n; n = d_9; t = -1; i = 0; o = !0; g = !1; } else { n = Math.max(d_9, n); i = r; r += h_27; t = c_35; } else if (r + h_27 > e) { s += n; n = d_9; if (-1 !== t) { c_35 = t; a = Math.max(a, i); r = 0; t = -1; i = 0; } else { a = Math.max(a, r); r = h_27; } o = !0; g = !1; } else { r += h_27; n = Math.max(d_9, n); } } a = Math.max(a, r); s += n + this.extraHeight; return { width: 1.02 * a, height: s, isBroken: o }; }; return TextMeasure; }()); var hn = /^[^.[]+/, ln = /^[^\]]+/, Cn = { dot: 0, dotDot: 1, dotHash: 2, dotBracket: 3, dotParen: 4 }, Bn = new Map([["$data", function (e, t) { return e.datasets ? e.datasets.data : e; }], ["$record", function (e, t) { return (e.datasets ? e.datasets.data : e)[Er]()[0]; }], ["$template", function (e, t) { return e.template; }], ["$connectionSet", function (e, t) { return e.connectionSet; }], ["$form", function (e, t) { return e.form; }], ["$layout", function (e, t) { return e.layout; }], ["$host", function (e, t) { return e.host; }], ["$dataWindow", function (e, t) { return e.dataWindow; }], ["$event", function (e, t) { return e.event; }], ["!", function (e, t) { return e.datasets; }], ["$xfa", function (e, t) { return e; }], ["xfa", function (e, t) { return e; }], ["$", function (e, t) { return t; }]]), Qn = new WeakMap; function parseExpression(e, t, i) { if (i === void 0) { i = !0; } var a = e.match(hn); if (!a) return null; var s = a[0]; var r = [{ name: s, cacheName: "." + s, index: 0, js: null, formCalc: null, operator: Cn.dot }]; var n = s.length; for (; n < e.length;) { var g_46 = n; if ("[" === e.charAt(n++)) { a = e.slice(n).match(ln); if (!a) { warn("XFA - Invalid index in SOM expression"); return null; } r.at(-1).index = "*" === (o = (o = a[0]).trim()) ? 1 / 0 : parseInt(o, 10) || 0; n += a[0].length + 1; continue; } var c_36 = void 0; switch (e.charAt(n)) { case ".": if (!t) return null; n++; c_36 = Cn.dotDot; break; case "#": n++; c_36 = Cn.dotHash; break; case "[": if (i) { warn("XFA - SOM expression contains a FormCalc subexpression which is not supported for now."); return null; } c_36 = Cn.dotBracket; break; case "(": if (i) { warn("XFA - SOM expression contains a JavaScript subexpression which is not supported for now."); return null; } c_36 = Cn.dotParen; break; default: c_36 = Cn.dot; } a = e.slice(n).match(hn); if (!a) break; s = a[0]; n += s.length; r.push({ name: s, cacheName: e.slice(g_46, n), operator: c_36, index: 0, js: null, formCalc: null }); } var o; return r; } function searchNode(e, t, i, a, s) { if (a === void 0) { a = !0; } if (s === void 0) { s = !0; } var r = parseExpression(i, a); if (!r) return null; var n = Bn.get(r[0].name); var o, g = 0; if (n) { o = !0; e = [n(e, t)]; g = 1; } else { o = null === t; e = [t || e]; } var _loop_3 = function (i_299) { var _b = r[g], i_300 = _b.name, a_245 = _b.cacheName, n_87 = _b.operator, c_37 = _b.index, h_28 = []; for (var _k = 0, e_501 = e; _k < e_501.length; _k++) { var t_357 = e_501[_k]; if (!t_357.isXFAObject) continue; var e_502 = void 0, r_130 = void 0; if (s) { r_130 = Qn.get(t_357); if (!r_130) { r_130 = new Map; Qn.set(t_357, r_130); } e_502 = r_130.get(a_245); } if (!e_502) { switch (n_87) { case Cn.dot: e_502 = t_357[cr](i_300, !1); break; case Cn.dotDot: e_502 = t_357[cr](i_300, !0); break; case Cn.dotHash: e_502 = t_357[Ir](i_300); e_502 = e_502.isXFAObjectArray ? e_502.children : [e_502]; } s && r_130.set(a_245, e_502); } e_502.length > 0 && h_28.push(e_502); } if (0 !== h_28.length || o || 0 !== g) e = isFinite(c_37) ? h_28.filter((function (e) { return c_37 < e.length; })).map((function (e) { return e[c_37]; })) : h_28.flat(); else { var i_301 = t[pr](); if (!(t = i_301)) return { value: null }; g = -1; e = [t]; } }; for (var i_299 = r.length; g < i_299; g++) { var state_1 = _loop_3(i_299); if (typeof state_1 === "object") return state_1.value; } return 0 === e.length ? null : e; } function createDataNode(e, t, i) { var a = parseExpression(i); if (!a) return null; if (a.some((function (e) { return e.operator === Cn.dotDot; }))) return null; var s = Bn.get(a[0].name); var r = 0; if (s) { e = s(e, t); r = 1; } else e = t || e; for (var t_358 = a.length; r < t_358; r++) { var _b = a[r], t_359 = _b.name, i_302 = _b.operator, s_171 = _b.index; if (!isFinite(s_171)) { a[r].index = 0; return e.createNodes(a.slice(r)); } var n_88 = void 0; switch (i_302) { case Cn.dot: n_88 = e[cr](t_359, !1); break; case Cn.dotDot: n_88 = e[cr](t_359, !0); break; case Cn.dotHash: n_88 = e[Ir](t_359); n_88 = n_88.isXFAObjectArray ? n_88.children : [n_88]; } if (0 === n_88.length) return e.createNodes(a.slice(r)); if (!(s_171 < n_88.length)) { a[r].index = s_171 - n_88.length; return e.createNodes(a.slice(r)); } { var t_360 = n_88[s_171]; if (!t_360.isXFAObject) { warn("XFA - Cannot create a node."); return null; } e = t_360; } } return null; } var En = Symbol(), un = Symbol(), dn = Symbol(), fn = Symbol("_children"), pn = Symbol(), mn = Symbol(), yn = Symbol(), wn = Symbol(), bn = Symbol(), Dn = Symbol(), Fn = Symbol(), Sn = Symbol(), kn = Symbol(), Rn = Symbol("parent"), Nn = Symbol(), Gn = Symbol(), xn = Symbol(); var Mn = 0; var Un = gn.datasets.id; var XFAObject = /** @class */ (function () { function XFAObject(e, t, i) { if (i === void 0) { i = !1; } this[Hr] = e; this[Yr] = t; this[Fn] = i; this[Rn] = null; this[fn] = []; this[nn] = "".concat(t).concat(Mn++); this[yr] = null; } Object.defineProperty(XFAObject.prototype, "isXFAObject", { get: function () { return !0; }, enumerable: false, configurable: true }); Object.defineProperty(XFAObject.prototype, "isXFAObjectArray", { get: function () { return !1; }, enumerable: false, configurable: true }); XFAObject.prototype.createNodes = function (e) { var t = this, i = null; for (var _b = 0, e_503 = e; _b < e_503.length; _b++) { var _k = e_503[_b], a_246 = _k.name, s_172 = _k.index; for (var e_504 = 0, r_131 = isFinite(s_172) ? s_172 : 0; e_504 <= r_131; e_504++) { var e_505 = t[Hr] === Un ? -1 : t[Hr]; i = new XmlObject(e_505, a_246); t[js](i); } t = i; } return i; }; XFAObject.prototype[Kr] = function (e) { if (!this[Fn] || !this[Tr](e)) return !1; var t = e[Yr], i = this[t]; if (!(i instanceof XFAObjectArray)) { null !== i && this[Xr](i); this[t] = e; this[js](e); return !0; } if (i.push(e)) { this[js](e); return !0; } var a = ""; this.id ? a = " (id: ".concat(this.id, ")") : this.name && (a = " (name: ".concat(this.name, " ").concat(this.h.value, ")")); warn("XFA - node \"".concat(this[Yr], "\"").concat(a, " has already enough \"").concat(t, "\"!")); return !1; }; XFAObject.prototype[Tr] = function (e) { return this.hasOwnProperty(e[Yr]) && e[Hr] === this[Hr]; }; XFAObject.prototype[Gr] = function () { return !1; }; XFAObject.prototype[Ws] = function () { return !1; }; XFAObject.prototype[Sr] = function () { return !1; }; XFAObject.prototype[kr] = function () { return !1; }; XFAObject.prototype[Pr] = function () { this.para && this[mr]()[ar].paraStack.pop(); }; XFAObject.prototype[Wr] = function () { this[mr]()[ar].paraStack.push(this.para); }; XFAObject.prototype[zr] = function (e) { this.id && this[Hr] === gn.template.id && e.set(this.id, this); }; XFAObject.prototype[mr] = function () { return this[yr].template; }; XFAObject.prototype[xr] = function () { return !1; }; XFAObject.prototype[Mr] = function () { return !1; }; XFAObject.prototype[js] = function (e) { e[Rn] = this; this[fn].push(e); !e[yr] && this[yr] && (e[yr] = this[yr]); }; XFAObject.prototype[Xr] = function (e) { var t = this[fn].indexOf(e); this[fn].splice(t, 1); }; XFAObject.prototype[wr] = function () { return this.hasOwnProperty("value"); }; XFAObject.prototype[$r] = function (e) { }; XFAObject.prototype[qr] = function (e) { }; XFAObject.prototype[sr] = function () { }; XFAObject.prototype[Vs] = function (e) { delete this[Fn]; if (this[_s]) { e.clean(this[_s]); delete this[_s]; } }; XFAObject.prototype[Dr] = function (e) { return this[fn].indexOf(e); }; XFAObject.prototype[Fr] = function (e, t) { t[Rn] = this; this[fn].splice(e, 0, t); !t[yr] && this[yr] && (t[yr] = this[yr]); }; XFAObject.prototype[Ur] = function () { return !this.name; }; XFAObject.prototype[Jr] = function () { return ""; }; XFAObject.prototype[en] = function () { return 0 === this[fn].length ? this[er] : this[fn].map((function (e) { return e[en](); })).join(""); }; Object.defineProperty(XFAObject.prototype, dn, { get: function () { var e = Object.getPrototypeOf(this); if (!e._attributes) { var t_361 = e._attributes = new Set; for (var _b = 0, _k = Object.getOwnPropertyNames(this); _b < _k.length; _b++) { var e_506 = _k[_b]; if (null === this[e_506] || this[e_506] instanceof XFAObject || this[e_506] instanceof XFAObjectArray) break; t_361.add(e_506); } } return shadow(this, dn, e._attributes); }, enumerable: false, configurable: true }); XFAObject.prototype[Nr] = function (e) { var t = this; for (; t;) { if (t === e) return !0; t = t[pr](); } return !1; }; XFAObject.prototype[pr] = function () { return this[Rn]; }; XFAObject.prototype[fr] = function () { return this[pr](); }; XFAObject.prototype[Er] = function (e) { if (e === void 0) { e = null; } return e ? this[e] : this[fn]; }; XFAObject.prototype[ir] = function () { var e = Object.create(null); this[er] && (e.$content = this[er]); for (var _b = 0, _k = Object.getOwnPropertyNames(this); _b < _k.length; _b++) { var t_362 = _k[_b]; var i_303 = this[t_362]; null !== i_303 && (i_303 instanceof XFAObject ? e[t_362] = i_303[ir]() : i_303 instanceof XFAObjectArray ? i_303.isEmpty() || (e[t_362] = i_303.dump()) : e[t_362] = i_303); } return e; }; XFAObject.prototype[rn] = function () { return null; }; XFAObject.prototype[an] = function () { return HTMLResult.EMPTY; }; XFAObject.prototype[ur] = function () { var _b, _k, e_507; return tslib_1.__generator(this, function (_l) { switch (_l.label) { case 0: _b = 0, _k = this[Er](); _l.label = 1; case 1: if (!(_b < _k.length)) return [3 /*break*/, 4]; e_507 = _k[_b]; return [4 /*yield*/, e_507]; case 2: _l.sent(); _l.label = 3; case 3: _b++; return [3 /*break*/, 1]; case 4: return [2 /*return*/]; } }); }; XFAObject.prototype[wn] = function (e, t) { var _b, _k, i_304, e_508, t_363; return tslib_1.__generator(this, function (_l) { switch (_l.label) { case 0: _b = 0, _k = this[ur](); _l.label = 1; case 1: if (!(_b < _k.length)) return [3 /*break*/, 4]; i_304 = _k[_b]; if (!(!e || t === e.has(i_304[Yr]))) return [3 /*break*/, 3]; e_508 = this[gr](), t_363 = i_304[an](e_508); t_363.success || (this[ar].failingNode = i_304); return [4 /*yield*/, t_363]; case 2: _l.sent(); _l.label = 3; case 3: _b++; return [3 /*break*/, 1]; case 4: return [2 /*return*/]; } }); }; XFAObject.prototype[rr] = function () { return null; }; XFAObject.prototype[Xs] = function (e, t) { this[ar].children.push(e); }; XFAObject.prototype[gr] = function () { }; XFAObject.prototype[Zs] = function (_b) { var _k = _b.filter, e = _k === void 0 ? null : _k, _l = _b.include, t = _l === void 0 ? !0 : _l; if (this[ar].generator) { var e_509 = this[gr](), t_364 = this[ar].failingNode[an](e_509); if (!t_364.success) return t_364; t_364.html && this[Xs](t_364.html, t_364.bbox); delete this[ar].failingNode; } else this[ar].generator = this[wn](e, t); for (;;) { var e_510 = this[ar].generator.next(); if (e_510.done) break; var t_365 = e_510.value; if (!t_365.success) return t_365; t_365.html && this[Xs](t_365.html, t_365.bbox); } this[ar].generator = null; return HTMLResult.EMPTY; }; XFAObject.prototype[_r] = function (e) { this[Gn] = new Set(Object.keys(e)); }; XFAObject.prototype[Dn] = function (e) { var t = this[dn], i = this[Gn]; return tslib_1.__spreadArray([], e, true).filter((function (e) { return t.has(e) && !i.has(e); })); }; XFAObject.prototype[Zr] = function (e, t) { if (t === void 0) { t = new Set; } for (var _b = 0, _k = this[fn]; _b < _k.length; _b++) { var i_305 = _k[_b]; i_305[Nn](e, t); } }; XFAObject.prototype[Nn] = function (e, t) { var i = this[bn](e, t); i ? this[En](i, e, t) : this[Zr](e, t); }; XFAObject.prototype[bn] = function (e, t) { var _b = this, i = _b.use, a = _b.usehref; if (!i && !a) return null; var s = null, r = null, n = null, o = i; if (a) { o = a; a.startsWith("#som(") && a.endsWith(")") ? r = a.slice(5, -1) : a.startsWith(".#som(") && a.endsWith(")") ? r = a.slice(6, -1) : a.startsWith("#") ? n = a.slice(1) : a.startsWith(".#") && (n = a.slice(2)); } else i.startsWith("#") ? n = i.slice(1) : r = i; this.use = this.usehref = ""; if (n) s = e.get(n); else { s = searchNode(e.get(jr), this, r, !0, !1); s && (s = s[0]); } if (!s) { warn("XFA - Invalid prototype reference: ".concat(o, ".")); return null; } if (s[Yr] !== this[Yr]) { warn("XFA - Incompatible prototype: ".concat(s[Yr], " !== ").concat(this[Yr], ".")); return null; } if (t.has(s)) { warn("XFA - Cycle detected in prototypes use."); return null; } t.add(s); var g = s[bn](e, t); g && s[En](g, e, t); s[Zr](e, t); t.delete(s); return s; }; XFAObject.prototype[En] = function (e, t, i) { if (i.has(e)) { warn("XFA - Cycle detected in prototypes use."); return; } !this[er] && e[er] && (this[er] = e[er]); new Set(i).add(e); for (var _b = 0, _k = this[Dn](e[Gn]); _b < _k.length; _b++) { var t_366 = _k[_b]; this[t_366] = e[t_366]; this[Gn] && this[Gn].add(t_366); } for (var _l = 0, _m = Object.getOwnPropertyNames(this); _l < _m.length; _l++) { var a_247 = _m[_l]; if (this[dn].has(a_247)) continue; var s_173 = this[a_247], r_132 = e[a_247]; if (s_173 instanceof XFAObjectArray) { for (var _o = 0, _p = s_173[fn]; _o < _p.length; _o++) { var e_511 = _p[_o]; e_511[Nn](t, i); } for (var a_248 = s_173[fn].length, n_89 = r_132[fn].length; a_248 < n_89; a_248++) { var r_133 = e[fn][a_248][$s](); if (!s_173.push(r_133)) break; r_133[Rn] = this; this[fn].push(r_133); r_133[Nn](t, i); } } else if (null === s_173) { if (null !== r_132) { var e_512 = r_132[$s](); e_512[Rn] = this; this[a_247] = e_512; this[fn].push(e_512); e_512[Nn](t, i); } } else { s_173[Zr](t, i); r_132 && s_173[En](r_132, t, i); } } }; XFAObject[pn] = function (e) { return Array.isArray(e) ? e.map((function (e) { return XFAObject[pn](e); })) : "object" == typeof e && null !== e ? Object.assign({}, e) : e; }; XFAObject.prototype[$s] = function () { var e = Object.create(Object.getPrototypeOf(this)); for (var _b = 0, _k = Object.getOwnPropertySymbols(this); _b < _k.length; _b++) { var t_367 = _k[_b]; try { e[t_367] = this[t_367]; } catch (_l) { shadow(e, t_367, this[t_367]); } } e[nn] = "".concat(e[Yr]).concat(Mn++); e[fn] = []; for (var _m = 0, _o = Object.getOwnPropertyNames(this); _m < _o.length; _m++) { var t_368 = _o[_m]; if (this[dn].has(t_368)) { e[t_368] = XFAObject[pn](this[t_368]); continue; } var i_306 = this[t_368]; e[t_368] = i_306 instanceof XFAObjectArray ? new XFAObjectArray(i_306[Sn]) : null; } for (var _p = 0, _q = this[fn]; _p < _q.length; _p++) { var t_369 = _q[_p]; var i_307 = t_369[Yr], a_249 = t_369[$s](); e[fn].push(a_249); a_249[Rn] = e; null === e[i_307] ? e[i_307] = a_249 : e[i_307][fn].push(a_249); } return e; }; XFAObject.prototype[Er] = function (e) { if (e === void 0) { e = null; } return e ? this[fn].filter((function (t) { return t[Yr] === e; })) : this[fn]; }; XFAObject.prototype[Ir] = function (e) { return this[e]; }; XFAObject.prototype[cr] = function (e, t, i) { if (i === void 0) { i = !0; } return Array.from(this[hr](e, t, i)); }; XFAObject.prototype[hr] = function (e, t, i) { var _b, _k, i_308, _l, _m, _o, _p; if (i === void 0) { i = !0; } return tslib_1.__generator(this, function (_q) { switch (_q.label) { case 0: if (!("parent" !== e)) return [3 /*break*/, 12]; _b = 0, _k = this[fn]; _q.label = 1; case 1: if (!(_b < _k.length)) return [3 /*break*/, 9]; i_308 = _k[_b]; _l = i_308[Yr] === e; if (!_l) return [3 /*break*/, 3]; return [4 /*yield*/, i_308]; case 2: _l = (_q.sent()); _q.label = 3; case 3: _l; _m = i_308.name === e; if (!_m) return [3 /*break*/, 5]; return [4 /*yield*/, i_308]; case 4: _m = (_q.sent()); _q.label = 5; case 5: _m; _o = (t || i_308[Ur]()); if (!_o) return [3 /*break*/, 7]; return [5 /*yield**/, tslib_1.__values(i_308[hr](e, t, !1))]; case 6: _o = (_q.sent()); _q.label = 7; case 7: _o; _q.label = 8; case 8: _b++; return [3 /*break*/, 1]; case 9: _p = i && this[dn].has(e); if (!_p) return [3 /*break*/, 11]; return [4 /*yield*/, new XFAAttribute(this, e, this[e])]; case 10: _p = (_q.sent()); _q.label = 11; case 11: _p; return [3 /*break*/, 14]; case 12: return [4 /*yield*/, this[Rn]]; case 13: _q.sent(); _q.label = 14; case 14: return [2 /*return*/]; } }); }; return XFAObject; }()); var XFAObjectArray = /** @class */ (function () { function XFAObjectArray(e) { if (e === void 0) { e = 1 / 0; } this[Sn] = e; this[fn] = []; } Object.defineProperty(XFAObjectArray.prototype, "isXFAObject", { get: function () { return !1; }, enumerable: false, configurable: true }); Object.defineProperty(XFAObjectArray.prototype, "isXFAObjectArray", { get: function () { return !0; }, enumerable: false, configurable: true }); XFAObjectArray.prototype.push = function (e) { if (this[fn].length <= this[Sn]) { this[fn].push(e); return !0; } warn("XFA - node \"".concat(e[Yr], "\" accepts no more than ").concat(this[Sn], " children")); return !1; }; XFAObjectArray.prototype.isEmpty = function () { return 0 === this[fn].length; }; XFAObjectArray.prototype.dump = function () { return 1 === this[fn].length ? this[fn][0][ir]() : this[fn].map((function (e) { return e[ir](); })); }; XFAObjectArray.prototype[$s] = function () { var e = new XFAObjectArray(this[Sn]); e[fn] = this[fn].map((function (e) { return e[$s](); })); return e; }; Object.defineProperty(XFAObjectArray.prototype, "children", { get: function () { return this[fn]; }, enumerable: false, configurable: true }); XFAObjectArray.prototype.clear = function () { this[fn].length = 0; }; return XFAObjectArray; }()); var XFAAttribute = /** @class */ (function () { function XFAAttribute(e, t, i) { this[Rn] = e; this[Yr] = t; this[er] = i; this[Ar] = !1; this[nn] = "attribute" + Mn++; } XFAAttribute.prototype[pr] = function () { return this[Rn]; }; XFAAttribute.prototype[Rr] = function () { return !0; }; XFAAttribute.prototype[lr] = function () { return this[er].trim(); }; XFAAttribute.prototype[$r] = function (e) { e = e.value || ""; this[er] = e.toString(); }; XFAAttribute.prototype[en] = function () { return this[er]; }; XFAAttribute.prototype[Nr] = function (e) { return this[Rn] === e || this[Rn][Nr](e); }; return XFAAttribute; }()); var XmlObject = /** @class */ (function (_super) { tslib_1.__extends(XmlObject, _super); function XmlObject(e, t, i) { if (i === void 0) { i = {}; } var _this = _super.call(this, e, t) || this; _this[er] = ""; _this[mn] = null; if ("#text" !== t) { var e_513 = new Map; _this[un] = e_513; for (var _b = 0, _k = Object.entries(i); _b < _k.length; _b++) { var _l = _k[_b], t_370 = _l[0], a_250 = _l[1]; e_513.set(t_370, new XFAAttribute(_this, t_370, a_250)); } if (i.hasOwnProperty(vr)) { var e_514 = i[vr].xfa.dataNode; void 0 !== e_514 && ("dataGroup" === e_514 ? _this[mn] = !1 : "dataValue" === e_514 && (_this[mn] = !0)); } } _this[Ar] = !1; return _this; } XmlObject.prototype[sn] = function (e) { var t = this[Yr]; if ("#text" === t) { e.push(encodeToXmlString(this[er])); return; } var i = utf8StringToString(t), a = this[Hr] === Un ? "xfa:" : ""; e.push("<".concat(a).concat(i)); for (var _b = 0, _k = this[un].entries(); _b < _k.length; _b++) { var _l = _k[_b], t_371 = _l[0], i_309 = _l[1]; var a_251 = utf8StringToString(t_371); e.push(" ".concat(a_251, "=\"").concat(encodeToXmlString(i_309[er]), "\"")); } null !== this[mn] && (this[mn] ? e.push(' xfa:dataNode="dataValue"') : e.push(' xfa:dataNode="dataGroup"')); if (this[er] || 0 !== this[fn].length) { e.push(">"); if (this[er]) "string" == typeof this[er] ? e.push(encodeToXmlString(this[er])) : this[er][sn](e); else for (var _m = 0, _o = this[fn]; _m < _o.length; _m++) { var t_372 = _o[_m]; t_372[sn](e); } e.push("")); } else e.push("/>"); }; XmlObject.prototype[Kr] = function (e) { if (this[er]) { var e_515 = new XmlObject(this[Hr], "#text"); this[js](e_515); e_515[er] = this[er]; this[er] = ""; } this[js](e); return !0; }; XmlObject.prototype[qr] = function (e) { this[er] += e; }; XmlObject.prototype[sr] = function () { if (this[er] && this[fn].length > 0) { var e_516 = new XmlObject(this[Hr], "#text"); this[js](e_516); e_516[er] = this[er]; delete this[er]; } }; XmlObject.prototype[an] = function () { return "#text" === this[Yr] ? HTMLResult.success({ name: "#text", value: this[er] }) : HTMLResult.EMPTY; }; XmlObject.prototype[Er] = function (e) { if (e === void 0) { e = null; } return e ? this[fn].filter((function (t) { return t[Yr] === e; })) : this[fn]; }; XmlObject.prototype[or] = function () { return this[un]; }; XmlObject.prototype[Ir] = function (e) { var t = this[un].get(e); return void 0 !== t ? t : this[Er](e); }; XmlObject.prototype[hr] = function (e, t) { var i, _b, _k, _l, i_310, _m, _o; return tslib_1.__generator(this, function (_p) { switch (_p.label) { case 0: i = this[un].get(e); _b = i; if (!_b) return [3 /*break*/, 2]; return [4 /*yield*/, i]; case 1: _b = (_p.sent()); _p.label = 2; case 2: _b; _k = 0, _l = this[fn]; _p.label = 3; case 3: if (!(_k < _l.length)) return [3 /*break*/, 9]; i_310 = _l[_k]; _m = i_310[Yr] === e; if (!_m) return [3 /*break*/, 5]; return [4 /*yield*/, i_310]; case 4: _m = (_p.sent()); _p.label = 5; case 5: _m; _o = t; if (!_o) return [3 /*break*/, 7]; return [5 /*yield**/, tslib_1.__values(i_310[hr](e, t))]; case 6: _o = (_p.sent()); _p.label = 7; case 7: _o; _p.label = 8; case 8: _k++; return [3 /*break*/, 3]; case 9: return [2 /*return*/]; } }); }; XmlObject.prototype[nr] = function (e, t) { var i, _b, _k, _l, i_311; return tslib_1.__generator(this, function (_m) { switch (_m.label) { case 0: i = this[un].get(e); _b = !i || t && i[Ar]; if (_b) return [3 /*break*/, 2]; return [4 /*yield*/, i]; case 1: _b = (_m.sent()); _m.label = 2; case 2: _b; _k = 0, _l = this[fn]; _m.label = 3; case 3: if (!(_k < _l.length)) return [3 /*break*/, 6]; i_311 = _l[_k]; return [5 /*yield**/, tslib_1.__values(i_311[nr](e, t))]; case 4: _m.sent(); _m.label = 5; case 5: _k++; return [3 /*break*/, 3]; case 6: return [2 /*return*/]; } }); }; XmlObject.prototype[Qr] = function (e, t, i) { var _b, _k, a_252, _l, _m; return tslib_1.__generator(this, function (_o) { switch (_o.label) { case 0: _b = 0, _k = this[fn]; _o.label = 1; case 1: if (!(_b < _k.length)) return [3 /*break*/, 7]; a_252 = _k[_b]; _l = a_252[Yr] !== e || i && a_252[Ar]; if (_l) return [3 /*break*/, 3]; return [4 /*yield*/, a_252]; case 2: _l = (_o.sent()); _o.label = 3; case 3: _l; _m = t; if (!_m) return [3 /*break*/, 5]; return [5 /*yield**/, tslib_1.__values(a_252[Qr](e, t, i))]; case 4: _m = (_o.sent()); _o.label = 5; case 5: _m; _o.label = 6; case 6: _b++; return [3 /*break*/, 1]; case 7: return [2 /*return*/]; } }); }; XmlObject.prototype[Rr] = function () { return null === this[mn] ? 0 === this[fn].length || this[fn][0][Hr] === gn.xhtml.id : this[mn]; }; XmlObject.prototype[lr] = function () { return null === this[mn] ? 0 === this[fn].length ? this[er].trim() : this[fn][0][Hr] === gn.xhtml.id ? this[fn][0][en]().trim() : null : this[er].trim(); }; XmlObject.prototype[$r] = function (e) { e = e.value || ""; this[er] = e.toString(); }; XmlObject.prototype[ir] = function (e) { if (e === void 0) { e = !1; } var t = Object.create(null); e && (t.$ns = this[Hr]); this[er] && (t.$content = this[er]); t.$name = this[Yr]; t.children = []; for (var _b = 0, _k = this[fn]; _b < _k.length; _b++) { var i_312 = _k[_b]; t.children.push(i_312[ir](e)); } t.attributes = Object.create(null); for (var _l = 0, _m = this[un]; _l < _m.length; _l++) { var _o = _m[_l], e_517 = _o[0], i_313 = _o[1]; t.attributes[e_517] = i_313[er]; } return t; }; return XmlObject; }(XFAObject)); var ContentObject = /** @class */ (function (_super) { tslib_1.__extends(ContentObject, _super); function ContentObject(e, t) { var _this = _super.call(this, e, t) || this; _this[er] = ""; return _this; } ContentObject.prototype[qr] = function (e) { this[er] += e; }; ContentObject.prototype[sr] = function () { }; return ContentObject; }(XFAObject)); var OptionObject = /** @class */ (function (_super) { tslib_1.__extends(OptionObject, _super); function OptionObject(e, t, i) { var _this = _super.call(this, e, t) || this; _this[kn] = i; return _this; } OptionObject.prototype[sr] = function () { var _this = this; this[er] = getKeyword({ data: this[er], defaultValue: this[kn][0], validate: function (e) { return _this[kn].includes(e); } }); }; OptionObject.prototype[Vs] = function (e) { _super.prototype[Vs].call(this, e); delete this[kn]; }; return OptionObject; }(ContentObject)); var StringObject = /** @class */ (function (_super) { tslib_1.__extends(StringObject, _super); function StringObject() { return _super !== null && _super.apply(this, arguments) || this; } StringObject.prototype[sr] = function () { this[er] = this[er].trim(); }; return StringObject; }(ContentObject)); var IntegerObject = /** @class */ (function (_super) { tslib_1.__extends(IntegerObject, _super); function IntegerObject(e, t, i, a) { var _this = _super.call(this, e, t) || this; _this[yn] = i; _this[xn] = a; return _this; } IntegerObject.prototype[sr] = function () { this[er] = getInteger({ data: this[er], defaultValue: this[yn], validate: this[xn] }); }; IntegerObject.prototype[Vs] = function (e) { _super.prototype[Vs].call(this, e); delete this[yn]; delete this[xn]; }; return IntegerObject; }(ContentObject)); var Option01 = /** @class */ (function (_super) { tslib_1.__extends(Option01, _super); function Option01(e, t) { return _super.call(this, e, t, 0, (function (e) { return 1 === e; })) || this; } return Option01; }(IntegerObject)); var Option10 = /** @class */ (function (_super) { tslib_1.__extends(Option10, _super); function Option10(e, t) { return _super.call(this, e, t, 1, (function (e) { return 0 === e; })) || this; } return Option10; }(IntegerObject)); function measureToString(e) { return "string" == typeof e ? "0px" : Number.isInteger(e) ? "".concat(e, "px") : "".concat(e.toFixed(2), "px"); } var Ln = { anchorType: function (e, t) { var i = e[fr](); if (i && (!i.layout || "position" === i.layout)) { "transform" in t || (t.transform = ""); switch (e.anchorType) { case "bottomCenter": t.transform += "translate(-50%, -100%)"; break; case "bottomLeft": t.transform += "translate(0,-100%)"; break; case "bottomRight": t.transform += "translate(-100%,-100%)"; break; case "middleCenter": t.transform += "translate(-50%,-50%)"; break; case "middleLeft": t.transform += "translate(0,-50%)"; break; case "middleRight": t.transform += "translate(-100%,-50%)"; break; case "topCenter": t.transform += "translate(-50%,0)"; break; case "topRight": t.transform += "translate(-100%,0)"; } } }, dimensions: function (e, t) { var _b; var i = e[fr](); var a = e.w; var s = e.h; if ((_b = i.layout) === null || _b === void 0 ? void 0 : _b.includes("row")) { var t_373 = i[ar], s_174 = e.colSpan; var r_134; if (-1 === s_174) { r_134 = t_373.columnWidths.slice(t_373.currentColumn).reduce((function (e, t) { return e + t; }), 0); t_373.currentColumn = 0; } else { r_134 = t_373.columnWidths.slice(t_373.currentColumn, t_373.currentColumn + s_174).reduce((function (e, t) { return e + t; }), 0); t_373.currentColumn = (t_373.currentColumn + e.colSpan) % t_373.columnWidths.length; } isNaN(r_134) || (a = e.w = r_134); } t.width = "" !== a ? measureToString(a) : "auto"; t.height = "" !== s ? measureToString(s) : "auto"; }, position: function (e, t) { var i = e[fr](); if (!(i === null || i === void 0 ? void 0 : i.layout) || "position" === i.layout) { t.position = "absolute"; t.left = measureToString(e.x); t.top = measureToString(e.y); } }, rotate: function (e, t) { if (e.rotate) { "transform" in t || (t.transform = ""); t.transform += "rotate(-".concat(e.rotate, "deg)"); t.transformOrigin = "top left"; } }, presence: function (e, t) { switch (e.presence) { case "invisible": t.visibility = "hidden"; break; case "hidden": case "inactive": t.display = "none"; } }, hAlign: function (e, t) { if ("para" === e[Yr]) switch (e.hAlign) { case "justifyAll": t.textAlign = "justify-all"; break; case "radix": t.textAlign = "left"; break; default: t.textAlign = e.hAlign; } else switch (e.hAlign) { case "left": t.alignSelf = "start"; break; case "center": t.alignSelf = "center"; break; case "right": t.alignSelf = "end"; } }, margin: function (e, t) { e.margin && (t.margin = e.margin[rn]().margin); } }; function setMinMaxDimensions(e, t) { if ("position" === e[fr]().layout) { e.minW > 0 && (t.minWidth = measureToString(e.minW)); e.maxW > 0 && (t.maxWidth = measureToString(e.maxW)); e.minH > 0 && (t.minHeight = measureToString(e.minH)); e.maxH > 0 && (t.maxHeight = measureToString(e.maxH)); } } function layoutText(e, t, i, a, s, r) { var n = new TextMeasure(t, i, a, s); "string" == typeof e ? n.addString(e) : e[Or](n); return n.compute(r); } function layoutNode(e, t) { var i = null, a = null, s = !1; if ((!e.w || !e.h) && e.value) { var r_135 = 0, n_90 = 0; if (e.margin) { r_135 = e.margin.leftInset + e.margin.rightInset; n_90 = e.margin.topInset + e.margin.bottomInset; } var o_63 = null, g_47 = null; if (e.para) { g_47 = Object.create(null); o_63 = "" === e.para.lineHeight ? null : e.para.lineHeight; g_47.top = "" === e.para.spaceAbove ? 0 : e.para.spaceAbove; g_47.bottom = "" === e.para.spaceBelow ? 0 : e.para.spaceBelow; g_47.left = "" === e.para.marginLeft ? 0 : e.para.marginLeft; g_47.right = "" === e.para.marginRight ? 0 : e.para.marginRight; } var c_38 = e.font; if (!c_38) { var t_374 = e[mr](); var i_314 = e[pr](); for (; i_314 && i_314 !== t_374;) { if (i_314.font) { c_38 = i_314.font; break; } i_314 = i_314[pr](); } } var h_29 = (e.w || t.width) - r_135, l_24 = e[yr].fontFinder; if (e.value.exData && e.value.exData[er] && "text/html" === e.value.exData.contentType) { var t_375 = layoutText(e.value.exData[er], c_38, g_47, o_63, l_24, h_29); a = t_375.width; i = t_375.height; s = t_375.isBroken; } else { var t_376 = e.value[en](); if (t_376) { var e_518 = layoutText(t_376, c_38, g_47, o_63, l_24, h_29); a = e_518.width; i = e_518.height; s = e_518.isBroken; } } null === a || e.w || (a += r_135); null === i || e.h || (i += n_90); } return { w: a, h: i, isBroken: s }; } function computeBbox(e, t, i) { var a; if ("" !== e.w && "" !== e.h) a = [e.x, e.y, e.w, e.h]; else { if (!i) return null; var s_175 = e.w; if ("" === s_175) { if (0 === e.maxW) { var t_377 = e[fr](); s_175 = "position" === t_377.layout && "" !== t_377.w ? 0 : e.minW; } else s_175 = Math.min(e.maxW, i.width); t.attributes.style.width = measureToString(s_175); } var r_136 = e.h; if ("" === r_136) { if (0 === e.maxH) { var t_378 = e[fr](); r_136 = "position" === t_378.layout && "" !== t_378.h ? 0 : e.minH; } else r_136 = Math.min(e.maxH, i.height); t.attributes.style.height = measureToString(r_136); } a = [e.x, e.y, s_175, r_136]; } return a; } function fixDimensions(e) { var _b; var t = e[fr](); if ((_b = t.layout) === null || _b === void 0 ? void 0 : _b.includes("row")) { var i_315 = t[ar], a_253 = e.colSpan; var s_176; s_176 = -1 === a_253 ? i_315.columnWidths.slice(i_315.currentColumn).reduce((function (e, t) { return e + t; }), 0) : i_315.columnWidths.slice(i_315.currentColumn, i_315.currentColumn + a_253).reduce((function (e, t) { return e + t; }), 0); isNaN(s_176) || (e.w = s_176); } t.layout && "position" !== t.layout && (e.x = e.y = 0); "table" === e.layout && "" === e.w && Array.isArray(e.columnWidths) && (e.w = e.columnWidths.reduce((function (e, t) { return e + t; }), 0)); } function layoutClass(e) { switch (e.layout) { case "position": default: 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"; } } function toStyle(e) { var t = []; for (var _b = 1; _b < arguments.length; _b++) { t[_b - 1] = arguments[_b]; } var i = Object.create(null); for (var _k = 0, t_379 = t; _k < t_379.length; _k++) { var a_254 = t_379[_k]; var t_380 = e[a_254]; if (null !== t_380) if (Ln.hasOwnProperty(a_254)) Ln[a_254](e, i); else if (t_380 instanceof XFAObject) { var e_519 = t_380[rn](); e_519 ? Object.assign(i, e_519) : warn("(DEBUG) - XFA - style for ".concat(a_254, " not implemented yet")); } } return i; } function createWrapper(e, t) { var i = t.attributes, a = i.style, s = { name: "div", attributes: { class: ["xfaWrapper"], style: Object.create(null) }, children: [] }; i.class.push("xfaWrapped"); if (e.border) { var _b = e.border[ar], i_316 = _b.widths, r_137 = _b.insets; var n_91, o_64, g_48 = r_137[0], c_39 = r_137[3]; var h_30 = r_137[0] + r_137[2], l_25 = r_137[1] + r_137[3]; switch (e.border.hand) { case "even": g_48 -= i_316[0] / 2; c_39 -= i_316[3] / 2; n_91 = "calc(100% + ".concat((i_316[1] + i_316[3]) / 2 - l_25, "px)"); o_64 = "calc(100% + ".concat((i_316[0] + i_316[2]) / 2 - h_30, "px)"); break; case "left": g_48 -= i_316[0]; c_39 -= i_316[3]; n_91 = "calc(100% + ".concat(i_316[1] + i_316[3] - l_25, "px)"); o_64 = "calc(100% + ".concat(i_316[0] + i_316[2] - h_30, "px)"); break; case "right": n_91 = l_25 ? "calc(100% - ".concat(l_25, "px)") : "100%"; o_64 = h_30 ? "calc(100% - ".concat(h_30, "px)") : "100%"; } var C_26 = ["xfaBorder"]; isPrintOnly(e.border) && C_26.push("xfaPrintOnly"); var Q_23 = { name: "div", attributes: { class: C_26, style: { top: "".concat(g_48, "px"), left: "".concat(c_39, "px"), width: n_91, height: o_64 } }, children: [] }; for (var _k = 0, _l = ["border", "borderWidth", "borderColor", "borderRadius", "borderStyle"]; _k < _l.length; _k++) { var e_520 = _l[_k]; if (void 0 !== a[e_520]) { Q_23.attributes.style[e_520] = a[e_520]; delete a[e_520]; } } s.children.push(Q_23, t); } else s.children.push(t); for (var _m = 0, _o = ["background", "backgroundClip", "top", "left", "width", "height", "minWidth", "minHeight", "maxWidth", "maxHeight", "transform", "transformOrigin", "visibility"]; _m < _o.length; _m++) { var e_521 = _o[_m]; if (void 0 !== a[e_521]) { s.attributes.style[e_521] = a[e_521]; delete a[e_521]; } } s.attributes.style.position = "absolute" === a.position ? "absolute" : "relative"; delete a.position; if (a.alignSelf) { s.attributes.style.alignSelf = a.alignSelf; delete a.alignSelf; } return s; } function fixTextIndent(e) { var t = getMeasurement(e.textIndent, "0px"); if (t >= 0) return; var i = "padding" + ("left" === ("right" === e.textAlign ? "right" : "left") ? "Left" : "Right"), a = getMeasurement(e[i], "0px"); e[i] = a - t + "px"; } function setAccess(e, t) { switch (e.access) { case "nonInteractive": t.push("xfaNonInteractive"); break; case "readOnly": t.push("xfaReadOnly"); break; case "protected": t.push("xfaDisabled"); } } function isPrintOnly(e) { return e.relevant.length > 0 && !e.relevant[0].excluded && "print" === e.relevant[0].viewname; } function getCurrentPara(e) { var t = e[mr]()[ar].paraStack; return t.length ? t.at(-1) : null; } function setPara(e, t, i) { var _b; if ((_b = i.attributes.class) === null || _b === void 0 ? void 0 : _b.includes("xfaRich")) { if (t) { "" === e.h && (t.height = "auto"); "" === e.w && (t.width = "auto"); } var a_255 = getCurrentPara(e); if (a_255) { var e_522 = i.attributes.style; e_522.display = "flex"; e_522.flexDirection = "column"; switch (a_255.vAlign) { case "top": e_522.justifyContent = "start"; break; case "bottom": e_522.justifyContent = "end"; break; case "middle": e_522.justifyContent = "center"; } var t_381 = a_255[rn](); for (var _k = 0, _l = Object.entries(t_381); _k < _l.length; _k++) { var _m = _l[_k], i_317 = _m[0], a_256 = _m[1]; i_317 in e_522 || (e_522[i_317] = a_256); } } } } function setFontFamily(e, t, i, a) { if (!i) { delete a.fontFamily; return; } var s = stripQuotes(e.typeface); a.fontFamily = "\"".concat(s, "\""); var r = i.find(s); if (r) { var i_318 = r.regular.cssFontInfo.fontFamily; i_318 !== s && (a.fontFamily = "\"".concat(i_318, "\"")); var n_92 = getCurrentPara(t); if (n_92 && "" !== n_92.lineHeight) return; if (a.lineHeight) return; var o_65 = selectFont(e, r); o_65 && (a.lineHeight = Math.max(1.2, o_65.lineHeight)); } } function fixURL(e) { var t = createValidAbsoluteUrl(e, null, { addDefaultProtocol: !0, tryConvertEncoding: !0 }); return t ? t.href : null; } function createLine(e, t) { return { name: "div", attributes: { class: ["lr-tb" === e.layout ? "xfaLr" : "xfaRl"] }, children: t }; } function flushHTML(e) { if (!e[ar]) return null; var t = { name: "div", attributes: e[ar].attributes, children: e[ar].children }; if (e[ar].failingNode) { var i_319 = e[ar].failingNode[rr](); i_319 && (e.layout.endsWith("-tb") ? t.children.push(createLine(e, [i_319])) : t.children.push(i_319)); } return 0 === t.children.length ? null : t; } function addHTML(e, t, i) { var a = e[ar], s = a.availableSpace, r = i[0], n = i[1], o = i[2], g = i[3]; switch (e.layout) { case "position": a.width = Math.max(a.width, r + o); a.height = Math.max(a.height, n + g); a.children.push(t); break; case "lr-tb": case "rl-tb": if (!a.line || 1 === a.attempt) { a.line = createLine(e, []); a.children.push(a.line); a.numberInLine = 0; } a.numberInLine += 1; a.line.children.push(t); if (0 === a.attempt) { a.currentWidth += o; a.height = Math.max(a.height, a.prevHeight + g); } else { a.currentWidth = o; a.prevHeight = a.height; a.height += g; a.attempt = 0; } a.width = Math.max(a.width, a.currentWidth); break; case "rl-row": case "row": { a.children.push(t); a.width += o; a.height = Math.max(a.height, g); var e_523 = measureToString(a.height); for (var _b = 0, _k = a.children; _b < _k.length; _b++) { var t_382 = _k[_b]; t_382.attributes.style.height = e_523; } break; } case "table": case "tb": a.width = Math.min(s.width, Math.max(a.width, o)); a.height += g; a.children.push(t); } } function getAvailableSpace(e) { var t = e[ar].availableSpace, i = e.margin ? e.margin.topInset + e.margin.bottomInset : 0, a = e.margin ? e.margin.leftInset + e.margin.rightInset : 0; switch (e.layout) { case "lr-tb": case "rl-tb": return 0 === e[ar].attempt ? { width: t.width - a - e[ar].currentWidth, height: t.height - i - e[ar].prevHeight } : { width: t.width - a, height: t.height - i - e[ar].height }; case "rl-row": case "row": return { width: e[ar].columnWidths.slice(e[ar].currentColumn).reduce((function (e, t) { return e + t; })), height: t.height - a }; case "table": case "tb": return { width: t.width - a, height: t.height - i - e[ar].height }; default: return t; } } function checkDimensions(e, t) { var _b; if (null === e[mr]()[ar].firstUnsplittable) return !0; if (0 === e.w || 0 === e.h) return !0; var i = e[fr](), a = ((_b = i[ar]) === null || _b === void 0 ? void 0 : _b.attempt) || 0, _k = function getTransformedBBox(e) { var _b, _k, _l, _m, _o, _p, _q, _u, _v, _w, _x, _y, _z, _0, _1; var t, i, a = "" === e.w ? NaN : e.w, s = "" === e.h ? NaN : e.h, _2 = [0, 0], r = _2[0], n = _2[1]; switch (e.anchorType || "") { case "bottomCenter": _b = [a / 2, s], r = _b[0], n = _b[1]; break; case "bottomLeft": _k = [0, s], r = _k[0], n = _k[1]; break; case "bottomRight": _l = [a, s], r = _l[0], n = _l[1]; break; case "middleCenter": _m = [a / 2, s / 2], r = _m[0], n = _m[1]; break; case "middleLeft": _o = [0, s / 2], r = _o[0], n = _o[1]; break; case "middleRight": _p = [a, s / 2], r = _p[0], n = _p[1]; break; case "topCenter": _q = [a / 2, 0], r = _q[0], n = _q[1]; break; case "topRight": _u = [a, 0], r = _u[0], n = _u[1]; } switch (e.rotate || 0) { case 0: _v = [-r, -n], t = _v[0], i = _v[1]; break; case 90: _w = [-n, r], t = _w[0], i = _w[1]; _x = [s, -a], a = _x[0], s = _x[1]; break; case 180: _y = [r, n], t = _y[0], i = _y[1]; _z = [-a, -s], a = _z[0], s = _z[1]; break; case 270: _0 = [n, -r], t = _0[0], i = _0[1]; _1 = [-s, a], a = _1[0], s = _1[1]; } return [e.x + t + Math.min(0, a), e.y + i + Math.min(0, s), Math.abs(a), Math.abs(s)]; }(e), s = _k[1], r = _k[2], n = _k[3]; switch (i.layout) { case "lr-tb": case "rl-tb": return 0 === a ? e[mr]()[ar].noLayoutFailure ? "" !== e.w ? Math.round(r - t.width) <= 2 : t.width > 2 : !("" !== e.h && Math.round(n - t.height) > 2) && ("" !== e.w ? Math.round(r - t.width) <= 2 || 0 === i[ar].numberInLine && t.height > 2 : t.width > 2) : !!e[mr]()[ar].noLayoutFailure || !("" !== e.h && Math.round(n - t.height) > 2) && (("" === e.w || Math.round(r - t.width) <= 2 || !i[Mr]()) && t.height > 2); case "table": case "tb": return !!e[mr]()[ar].noLayoutFailure || ("" === e.h || e[xr]() ? ("" === e.w || Math.round(r - t.width) <= 2 || !i[Mr]()) && t.height > 2 : Math.round(n - t.height) <= 2); case "position": if (e[mr]()[ar].noLayoutFailure) return !0; if ("" === e.h || Math.round(n + s - t.height) <= 2) return !0; return n + s > e[mr]()[ar].currentContentArea.h; case "rl-row": case "row": return !!e[mr]()[ar].noLayoutFailure || ("" === e.h || Math.round(n - t.height) <= 2); default: return !0; } } var Jn = gn.template.id, Hn = "http://www.w3.org/2000/svg", Yn = /^H(\d+)$/, vn = 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", "application/octet-stream"]), Kn = [[[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(e) { if (!e || !e.border) return { w: 0, h: 0 }; var t = e.border[Cr](); return t ? { w: t.widths[0] + t.widths[2] + t.insets[0] + t.insets[2], h: t.widths[1] + t.widths[3] + t.insets[1] + t.insets[3] } : { w: 0, h: 0 }; } function hasMargin(e) { return e.margin && (e.margin.topInset || e.margin.rightInset || e.margin.bottomInset || e.margin.leftInset); } function _setValue(e, t) { if (!e.value) { var t_383 = new Value({}); e[js](t_383); e.value = t_383; } e.value[$r](t); } function getContainedChildren(e) { var _b, _k, t_384, _l; return tslib_1.__generator(this, function (_m) { switch (_m.label) { case 0: _b = 0, _k = e[Er](); _m.label = 1; case 1: if (!(_b < _k.length)) return [3 /*break*/, 7]; t_384 = _k[_b]; if (!(t_384 instanceof SubformSet)) return [3 /*break*/, 3]; return [5 /*yield**/, tslib_1.__values(t_384[ur]())]; case 2: _l = _m.sent(); return [3 /*break*/, 5]; case 3: return [4 /*yield*/, t_384]; case 4: _l = _m.sent(); _m.label = 5; case 5: _l; _m.label = 6; case 6: _b++; return [3 /*break*/, 1]; case 7: return [2 /*return*/]; } }); } function isRequired(e) { var _b; return "error" === ((_b = e.validate) === null || _b === void 0 ? void 0 : _b.nullTest); } function setTabIndex(e) { for (; e;) { if (!e.traversal) { e[An] = e[pr]()[An]; return; } if (e[An]) return; var t_385 = null; for (var _b = 0, _k = e.traversal[Er](); _b < _k.length; _b++) { var i_320 = _k[_b]; if ("next" === i_320.operation) { t_385 = i_320; break; } } if (!t_385 || !t_385.ref) { e[An] = e[pr]()[An]; return; } var i_321 = e[mr](); e[An] = ++i_321[An]; var a_257 = i_321[Vr](t_385.ref, e); if (!a_257) return; e = a_257[0]; } } function applyAssist(e, t) { var _b; var i = e.assist; if (i) { var e_524 = i[an](); e_524 && (t.title = e_524); var a_258 = i.role.match(Yn); if (a_258) { var e_525 = "heading", i_322 = a_258[1]; t.role = e_525; t["aria-level"] = i_322; } } if ("table" === e.layout) t.role = "table"; else if ("row" === e.layout) t.role = "row"; else { var i_323 = e[pr](); "row" === i_323.layout && (t.role = "TH" === ((_b = i_323.assist) === null || _b === void 0 ? void 0 : _b.role) ? "columnheader" : "cell"); } } function ariaLabel(e) { if (!e.assist) return null; var t = e.assist; return t.speak && "" !== t.speak[er] ? t.speak[er] : t.toolTip ? t.toolTip[er] : null; } function valueToHtml(e) { return HTMLResult.success({ name: "div", attributes: { class: ["xfaRich"], style: Object.create(null) }, children: [{ name: "span", attributes: { style: Object.create(null) }, value: e }] }); } function setFirstUnsplittable(e) { var t = e[mr](); if (null === t[ar].firstUnsplittable) { t[ar].firstUnsplittable = e; t[ar].noLayoutFailure = !0; } } function unsetFirstUnsplittable(e) { var t = e[mr](); t[ar].firstUnsplittable === e && (t[ar].noLayoutFailure = !1); } function handleBreak(e) { if (e[ar]) return !1; e[ar] = Object.create(null); if ("auto" === e.targetType) return !1; var t = e[mr](); var i = null; if (e.target) { i = t[Vr](e.target, e[pr]()); if (!i) return !1; i = i[0]; } var _b = t[ar], a = _b.currentPageArea, s = _b.currentContentArea; if ("pageArea" === e.targetType) { i instanceof PageArea || (i = null); if (e.startNew) { e[ar].target = i || a; return !0; } if (i && i !== a) { e[ar].target = i; return !0; } return !1; } i instanceof ContentArea || (i = null); var r = i && i[pr](); var n, o = r; if (e.startNew) if (i) { var e_526 = r.contentArea.children, t_386 = e_526.indexOf(s), a_259 = e_526.indexOf(i); -1 !== t_386 && t_386 < a_259 && (o = null); n = a_259 - 1; } else n = a.contentArea.children.indexOf(s); else { if (!i || i === s) return !1; n = r.contentArea.children.indexOf(i) - 1; o = r === a ? null : r; } e[ar].target = o; e[ar].index = n; return !0; } function handleOverflow(e, t, i) { var a = e[mr](), s = a[ar].noLayoutFailure, r = t[fr]; t[fr] = function () { return e; }; a[ar].noLayoutFailure = !0; var n = t[an](i); e[Xs](n.html, n.bbox); a[ar].noLayoutFailure = s; t[fr] = r; } var AppearanceFilter = /** @class */ (function (_super) { tslib_1.__extends(AppearanceFilter, _super); function AppearanceFilter(e) { var _this = _super.call(this, Jn, "appearanceFilter") || this; _this.id = e.id || ""; _this.type = getStringOption(e.type, ["optional", "required"]); _this.use = e.use || ""; _this.usehref = e.usehref || ""; return _this; } return AppearanceFilter; }(StringObject)); var Arc = /** @class */ (function (_super) { tslib_1.__extends(Arc, _super); function Arc(e) { var _this = _super.call(this, Jn, "arc", !0) || this; _this.circular = getInteger({ data: e.circular, defaultValue: 0, validate: function (e) { return 1 === e; } }); _this.hand = getStringOption(e.hand, ["even", "left", "right"]); _this.id = e.id || ""; _this.startAngle = getFloat({ data: e.startAngle, defaultValue: 0, validate: function (e) { return !0; } }); _this.sweepAngle = getFloat({ data: e.sweepAngle, defaultValue: 360, validate: function (e) { return !0; } }); _this.use = e.use || ""; _this.usehref = e.usehref || ""; _this.edge = null; _this.fill = null; return _this; } Arc.prototype[an] = function () { var _b; var e = this.edge || new Edge({}), t = e[rn](), i = Object.create(null); "visible" === ((_b = this.fill) === null || _b === void 0 ? void 0 : _b.presence) ? Object.assign(i, this.fill[rn]()) : i.fill = "transparent"; i.strokeWidth = measureToString("visible" === e.presence ? e.thickness : 0); i.stroke = t.color; var a; var s = { xmlns: Hn, style: { width: "100%", height: "100%", overflow: "visible" } }; if (360 === this.sweepAngle) a = { name: "ellipse", attributes: { xmlns: Hn, cx: "50%", cy: "50%", rx: "50%", ry: "50%", style: i } }; else { var e_527 = this.startAngle * Math.PI / 180, t_387 = this.sweepAngle * Math.PI / 180, r_138 = this.sweepAngle > 180 ? 1 : 0, _k = [50 * (1 + Math.cos(e_527)), 50 * (1 - Math.sin(e_527)), 50 * (1 + Math.cos(e_527 + t_387)), 50 * (1 - Math.sin(e_527 + t_387))], n_93 = _k[0], o_66 = _k[1], g_49 = _k[2], c_40 = _k[3]; a = { name: "path", attributes: { xmlns: Hn, d: "M ".concat(n_93, " ").concat(o_66, " A 50 50 0 ").concat(r_138, " 0 ").concat(g_49, " ").concat(c_40), vectorEffect: "non-scaling-stroke", style: i } }; Object.assign(s, { viewBox: "0 0 100 100", preserveAspectRatio: "none" }); } var r = { name: "svg", children: [a], attributes: s }; if (hasMargin(this[pr]()[pr]())) return HTMLResult.success({ name: "div", attributes: { style: { display: "inline", width: "100%", height: "100%" } }, children: [r] }); r.attributes.style.position = "absolute"; return HTMLResult.success(r); }; return Arc; }(XFAObject)); var Area = /** @class */ (function (_super) { tslib_1.__extends(Area, _super); function Area(e) { var _this = _super.call(this, Jn, "area", !0) || this; _this.colSpan = getInteger({ data: e.colSpan, defaultValue: 1, validate: function (e) { return e >= 1 || -1 === e; } }); _this.id = e.id || ""; _this.name = e.name || ""; _this.relevant = getRelevant(e.relevant); _this.use = e.use || ""; _this.usehref = e.usehref || ""; _this.x = getMeasurement(e.x, "0pt"); _this.y = getMeasurement(e.y, "0pt"); _this.desc = null; _this.extras = null; _this.area = new XFAObjectArray; _this.draw = new XFAObjectArray; _this.exObject = new XFAObjectArray; _this.exclGroup = new XFAObjectArray; _this.field = new XFAObjectArray; _this.subform = new XFAObjectArray; _this.subformSet = new XFAObjectArray; return _this; } Area.prototype[ur] = function () { return tslib_1.__generator(this, function (_b) { switch (_b.label) { case 0: return [5 /*yield**/, tslib_1.__values(getContainedChildren(this))]; case 1: _b.sent(); return [2 /*return*/]; } }); }; Area.prototype[Ur] = function () { return !0; }; Area.prototype[kr] = function () { return !0; }; Area.prototype[Xs] = function (e, t) { var i = t[0], a = t[1], s = t[2], r = t[3]; this[ar].width = Math.max(this[ar].width, i + s); this[ar].height = Math.max(this[ar].height, a + r); this[ar].children.push(e); }; Area.prototype[gr] = function () { return this[ar].availableSpace; }; Area.prototype[an] = function (e) { var t = toStyle(this, "position"), i = { style: t, id: this[nn], class: ["xfaArea"] }; isPrintOnly(this) && i.class.push("xfaPrintOnly"); this.name && (i.xfaName = this.name); var a = []; this[ar] = { children: a, width: 0, height: 0, availableSpace: e }; var s = this[Zs]({ filter: new Set(["area", "draw", "field", "exclGroup", "subform", "subformSet"]), include: !0 }); if (!s.success) { if (s.isBreak()) return s; delete this[ar]; return HTMLResult.FAILURE; } t.width = measureToString(this[ar].width); t.height = measureToString(this[ar].height); var r = { name: "div", attributes: i, children: a }, n = [this.x, this.y, this[ar].width, this[ar].height]; delete this[ar]; return HTMLResult.success(r, n); }; return Area; }(XFAObject)); var Assist = /** @class */ (function (_super) { tslib_1.__extends(Assist, _super); function Assist(e) { var _this = _super.call(this, Jn, "assist", !0) || this; _this.id = e.id || ""; _this.role = e.role || ""; _this.use = e.use || ""; _this.usehref = e.usehref || ""; _this.speak = null; _this.toolTip = null; return _this; } Assist.prototype[an] = function () { var _b; return ((_b = this.toolTip) === null || _b === void 0 ? void 0 : _b[er]) || null; }; return Assist; }(XFAObject)); var Barcode = /** @class */ (function (_super) { tslib_1.__extends(Barcode, _super); function Barcode(e) { var _this = _super.call(this, Jn, "barcode", !0) || this; _this.charEncoding = getKeyword({ data: e.charEncoding ? e.charEncoding.toLowerCase() : "", defaultValue: "", validate: function (e) { return ["utf-8", "big-five", "fontspecific", "gbk", "gb-18030", "gb-2312", "ksc-5601", "none", "shift-jis", "ucs-2", "utf-16"].includes(e) || e.match(/iso-8859-\d{2}/); } }); _this.checksum = getStringOption(e.checksum, ["none", "1mod10", "1mod10_1mod11", "2mod10", "auto"]); _this.dataColumnCount = getInteger({ data: e.dataColumnCount, defaultValue: -1, validate: function (e) { return e >= 0; } }); _this.dataLength = getInteger({ data: e.dataLength, defaultValue: -1, validate: function (e) { return e >= 0; } }); _this.dataPrep = getStringOption(e.dataPrep, ["none", "flateCompress"]); _this.dataRowCount = getInteger({ data: e.dataRowCount, defaultValue: -1, validate: function (e) { return e >= 0; } }); _this.endChar = e.endChar || ""; _this.errorCorrectionLevel = getInteger({ data: e.errorCorrectionLevel, defaultValue: -1, validate: function (e) { return e >= 0 && e <= 8; } }); _this.id = e.id || ""; _this.moduleHeight = getMeasurement(e.moduleHeight, "5mm"); _this.moduleWidth = getMeasurement(e.moduleWidth, "0.25mm"); _this.printCheckDigit = getInteger({ data: e.printCheckDigit, defaultValue: 0, validate: function (e) { return 1 === e; } }); _this.rowColumnRatio = getRatio(e.rowColumnRatio); _this.startChar = e.startChar || ""; _this.textLocation = getStringOption(e.textLocation, ["below", "above", "aboveEmbedded", "belowEmbedded", "none"]); _this.truncate = getInteger({ data: e.truncate, defaultValue: 0, validate: function (e) { return 1 === e; } }); _this.type = getStringOption(e.type ? e.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"]); _this.upsMode = getStringOption(e.upsMode, ["usCarrier", "internationalCarrier", "secureSymbol", "standardSymbol"]); _this.use = e.use || ""; _this.usehref = e.usehref || ""; _this.wideNarrowRatio = getRatio(e.wideNarrowRatio); _this.encrypt = null; _this.extras = null; return _this; } return Barcode; }(XFAObject)); var Bind = /** @class */ (function (_super) { tslib_1.__extends(Bind, _super); function Bind(e) { var _this = _super.call(this, Jn, "bind", !0) || this; _this.match = getStringOption(e.match, ["once", "dataRef", "global", "none"]); _this.ref = e.ref || ""; _this.picture = null; return _this; } return Bind; }(XFAObject)); var BindItems = /** @class */ (function (_super) { tslib_1.__extends(BindItems, _super); function BindItems(e) { var _this = _super.call(this, Jn, "bindItems") || this; _this.connection = e.connection || ""; _this.labelRef = e.labelRef || ""; _this.ref = e.ref || ""; _this.valueRef = e.valueRef || ""; return _this; } return BindItems; }(XFAObject)); var Bookend = /** @class */ (function (_super) { tslib_1.__extends(Bookend, _super); function Bookend(e) { var _this = _super.call(this, Jn, "bookend") || this; _this.id = e.id || ""; _this.leader = e.leader || ""; _this.trailer = e.trailer || ""; _this.use = e.use || ""; _this.usehref = e.usehref || ""; return _this; } return Bookend; }(XFAObject)); var BooleanElement = /** @class */ (function (_super) { tslib_1.__extends(BooleanElement, _super); function BooleanElement(e) { var _this = _super.call(this, Jn, "boolean") || this; _this.id = e.id || ""; _this.name = e.name || ""; _this.use = e.use || ""; _this.usehref = e.usehref || ""; return _this; } BooleanElement.prototype[an] = function (e) { return valueToHtml(1 === this[er] ? "1" : "0"); }; return BooleanElement; }(Option01)); var Border = /** @class */ (function (_super) { tslib_1.__extends(Border, _super); function Border(e) { var _this = _super.call(this, Jn, "border", !0) || this; _this.break = getStringOption(e.break, ["close", "open"]); _this.hand = getStringOption(e.hand, ["even", "left", "right"]); _this.id = e.id || ""; _this.presence = getStringOption(e.presence, ["visible", "hidden", "inactive", "invisible"]); _this.relevant = getRelevant(e.relevant); _this.use = e.use || ""; _this.usehref = e.usehref || ""; _this.corner = new XFAObjectArray(4); _this.edge = new XFAObjectArray(4); _this.extras = null; _this.fill = null; _this.margin = null; return _this; } Border.prototype[Cr] = function () { if (!this[ar]) { var e_528 = this.edge.children.slice(); if (e_528.length < 4) { var t_388 = e_528.at(-1) || new Edge({}); for (var i_324 = e_528.length; i_324 < 4; i_324++) e_528.push(t_388); } var t_389 = e_528.map((function (e) { return e.thickness; })), i_325 = [0, 0, 0, 0]; if (this.margin) { i_325[0] = this.margin.topInset; i_325[1] = this.margin.rightInset; i_325[2] = this.margin.bottomInset; i_325[3] = this.margin.leftInset; } this[ar] = { widths: t_389, insets: i_325, edges: e_528 }; } return this[ar]; }; Border.prototype[rn] = function () { var _b; var e = this[Cr]().edges, t = e.map((function (e) { var t = e[rn](); t.color || (t.color = "#000000"); return t; })), i = Object.create(null); this.margin && Object.assign(i, this.margin[rn]()); "visible" === ((_b = this.fill) === null || _b === void 0 ? void 0 : _b.presence) && Object.assign(i, this.fill[rn]()); if (this.corner.children.some((function (e) { return 0 !== e.radius; }))) { var e_529 = this.corner.children.map((function (e) { return e[rn](); })); if (2 === e_529.length || 3 === e_529.length) { var t_390 = e_529.at(-1); for (var i_326 = e_529.length; i_326 < 4; i_326++) e_529.push(t_390); } i.borderRadius = e_529.map((function (e) { return e.radius; })).join(" "); } switch (this.presence) { case "invisible": case "hidden": i.borderStyle = ""; break; case "inactive": i.borderStyle = "none"; break; default: i.borderStyle = t.map((function (e) { return e.style; })).join(" "); } i.borderWidth = t.map((function (e) { return e.width; })).join(" "); i.borderColor = t.map((function (e) { return e.color; })).join(" "); return i; }; return Border; }(XFAObject)); var Break = /** @class */ (function (_super) { tslib_1.__extends(Break, _super); function Break(e) { var _this = _super.call(this, Jn, "break", !0) || this; _this.after = getStringOption(e.after, ["auto", "contentArea", "pageArea", "pageEven", "pageOdd"]); _this.afterTarget = e.afterTarget || ""; _this.before = getStringOption(e.before, ["auto", "contentArea", "pageArea", "pageEven", "pageOdd"]); _this.beforeTarget = e.beforeTarget || ""; _this.bookendLeader = e.bookendLeader || ""; _this.bookendTrailer = e.bookendTrailer || ""; _this.id = e.id || ""; _this.overflowLeader = e.overflowLeader || ""; _this.overflowTarget = e.overflowTarget || ""; _this.overflowTrailer = e.overflowTrailer || ""; _this.startNew = getInteger({ data: e.startNew, defaultValue: 0, validate: function (e) { return 1 === e; } }); _this.use = e.use || ""; _this.usehref = e.usehref || ""; _this.extras = null; return _this; } return Break; }(XFAObject)); var BreakAfter = /** @class */ (function (_super) { tslib_1.__extends(BreakAfter, _super); function BreakAfter(e) { var _this = _super.call(this, Jn, "breakAfter", !0) || this; _this.id = e.id || ""; _this.leader = e.leader || ""; _this.startNew = getInteger({ data: e.startNew, defaultValue: 0, validate: function (e) { return 1 === e; } }); _this.target = e.target || ""; _this.targetType = getStringOption(e.targetType, ["auto", "contentArea", "pageArea"]); _this.trailer = e.trailer || ""; _this.use = e.use || ""; _this.usehref = e.usehref || ""; _this.script = null; return _this; } return BreakAfter; }(XFAObject)); var BreakBefore = /** @class */ (function (_super) { tslib_1.__extends(BreakBefore, _super); function BreakBefore(e) { var _this = _super.call(this, Jn, "breakBefore", !0) || this; _this.id = e.id || ""; _this.leader = e.leader || ""; _this.startNew = getInteger({ data: e.startNew, defaultValue: 0, validate: function (e) { return 1 === e; } }); _this.target = e.target || ""; _this.targetType = getStringOption(e.targetType, ["auto", "contentArea", "pageArea"]); _this.trailer = e.trailer || ""; _this.use = e.use || ""; _this.usehref = e.usehref || ""; _this.script = null; return _this; } BreakBefore.prototype[an] = function (e) { this[ar] = {}; return HTMLResult.FAILURE; }; return BreakBefore; }(XFAObject)); var Button = /** @class */ (function (_super) { tslib_1.__extends(Button, _super); function Button(e) { var _this = _super.call(this, Jn, "button", !0) || this; _this.highlight = getStringOption(e.highlight, ["inverted", "none", "outline", "push"]); _this.id = e.id || ""; _this.use = e.use || ""; _this.usehref = e.usehref || ""; _this.extras = null; return _this; } Button.prototype[an] = function (e) { var t = this[pr]()[pr](), i = { name: "button", attributes: { id: this[nn], class: ["xfaButton"], style: {} }, children: [] }; for (var _b = 0, _k = t.event.children; _b < _k.length; _b++) { var e_530 = _k[_b]; if ("click" !== e_530.activity || !e_530.script) continue; var t_391 = recoverJsURL(e_530.script[er]); if (!t_391) continue; var a_260 = fixURL(t_391.url); a_260 && i.children.push({ name: "a", attributes: { id: "link" + this[nn], href: a_260, newWindow: t_391.newWindow, class: ["xfaLink"], style: {} }, children: [] }); } return HTMLResult.success(i); }; return Button; }(XFAObject)); var Calculate = /** @class */ (function (_super) { tslib_1.__extends(Calculate, _super); function Calculate(e) { var _this = _super.call(this, Jn, "calculate", !0) || this; _this.id = e.id || ""; _this.override = getStringOption(e.override, ["disabled", "error", "ignore", "warning"]); _this.use = e.use || ""; _this.usehref = e.usehref || ""; _this.extras = null; _this.message = null; _this.script = null; return _this; } return Calculate; }(XFAObject)); var Caption = /** @class */ (function (_super) { tslib_1.__extends(Caption, _super); function Caption(e) { var _this = _super.call(this, Jn, "caption", !0) || this; _this.id = e.id || ""; _this.placement = getStringOption(e.placement, ["left", "bottom", "inline", "right", "top"]); _this.presence = getStringOption(e.presence, ["visible", "hidden", "inactive", "invisible"]); _this.reserve = Math.ceil(getMeasurement(e.reserve)); _this.use = e.use || ""; _this.usehref = e.usehref || ""; _this.extras = null; _this.font = null; _this.margin = null; _this.para = null; _this.value = null; return _this; } Caption.prototype[$r] = function (e) { _setValue(this, e); }; Caption.prototype[Cr] = function (e) { if (!this[ar]) { var t_392 = e.width, i_327 = e.height; switch (this.placement) { case "left": case "right": case "inline": t_392 = this.reserve <= 0 ? t_392 : this.reserve; break; case "top": case "bottom": i_327 = this.reserve <= 0 ? i_327 : this.reserve; } this[ar] = layoutNode(this, { width: t_392, height: i_327 }); } return this[ar]; }; Caption.prototype[an] = function (e) { if (!this.value) return HTMLResult.EMPTY; this[Wr](); var t = this.value[an](e).html; if (!t) { this[Pr](); return HTMLResult.EMPTY; } var i = this.reserve; if (this.reserve <= 0) { var _b = this[Cr](e), t_393 = _b.w, i_328 = _b.h; switch (this.placement) { case "left": case "right": case "inline": this.reserve = t_393; break; case "top": case "bottom": this.reserve = i_328; } } var a = []; "string" == typeof t ? a.push({ name: "#text", value: t }) : a.push(t); var s = toStyle(this, "font", "margin", "visibility"); switch (this.placement) { case "left": case "right": this.reserve > 0 && (s.width = measureToString(this.reserve)); break; case "top": case "bottom": this.reserve > 0 && (s.height = measureToString(this.reserve)); } setPara(this, null, t); this[Pr](); this.reserve = i; return HTMLResult.success({ name: "div", attributes: { style: s, class: ["xfaCaption"] }, children: a }); }; return Caption; }(XFAObject)); var Certificate = /** @class */ (function (_super) { tslib_1.__extends(Certificate, _super); function Certificate(e) { var _this = _super.call(this, Jn, "certificate") || this; _this.id = e.id || ""; _this.name = e.name || ""; _this.use = e.use || ""; _this.usehref = e.usehref || ""; return _this; } return Certificate; }(StringObject)); var Certificates = /** @class */ (function (_super) { tslib_1.__extends(Certificates, _super); function Certificates(e) { var _this = _super.call(this, Jn, "certificates", !0) || this; _this.credentialServerPolicy = getStringOption(e.credentialServerPolicy, ["optional", "required"]); _this.id = e.id || ""; _this.url = e.url || ""; _this.urlPolicy = e.urlPolicy || ""; _this.use = e.use || ""; _this.usehref = e.usehref || ""; _this.encryption = null; _this.issuers = null; _this.keyUsage = null; _this.oids = null; _this.signing = null; _this.subjectDNs = null; return _this; } return Certificates; }(XFAObject)); var CheckButton = /** @class */ (function (_super) { tslib_1.__extends(CheckButton, _super); function CheckButton(e) { var _this = _super.call(this, Jn, "checkButton", !0) || this; _this.id = e.id || ""; _this.mark = getStringOption(e.mark, ["default", "check", "circle", "cross", "diamond", "square", "star"]); _this.shape = getStringOption(e.shape, ["square", "round"]); _this.size = getMeasurement(e.size, "10pt"); _this.use = e.use || ""; _this.usehref = e.usehref || ""; _this.border = null; _this.extras = null; _this.margin = null; return _this; } CheckButton.prototype[an] = function (e) { var _b, _k, _l; var t = toStyle("margin"), i = measureToString(this.size); t.width = t.height = i; var a, s, r; var n = this[pr]()[pr](), o = n.items.children.length && n.items.children[0][an]().html || [], g = { on: (void 0 !== o[0] ? o[0] : "on").toString(), off: (void 0 !== o[1] ? o[1] : "off").toString() }, c = (((_b = n.value) === null || _b === void 0 ? void 0 : _b[en]()) || "off") === g.on || void 0, h = n[fr](), l = n[nn]; var C; if (h instanceof ExclGroup) { r = h[nn]; a = "radio"; s = "xfaRadio"; C = ((_k = h[tr]) === null || _k === void 0 ? void 0 : _k[nn]) || h[nn]; } else { a = "checkbox"; s = "xfaCheckbox"; C = ((_l = n[tr]) === null || _l === void 0 ? void 0 : _l[nn]) || n[nn]; } var Q = { name: "input", attributes: { class: [s], style: t, fieldId: l, dataId: C, type: a, checked: c, xfaOn: g.on, xfaOff: g.off, "aria-label": ariaLabel(n), "aria-required": !1 } }; r && (Q.attributes.name = r); if (isRequired(n)) { Q.attributes["aria-required"] = !0; Q.attributes.required = !0; } return HTMLResult.success({ name: "label", attributes: { class: ["xfaLabel"] }, children: [Q] }); }; return CheckButton; }(XFAObject)); var ChoiceList = /** @class */ (function (_super) { tslib_1.__extends(ChoiceList, _super); function ChoiceList(e) { var _this = _super.call(this, Jn, "choiceList", !0) || this; _this.commitOn = getStringOption(e.commitOn, ["select", "exit"]); _this.id = e.id || ""; _this.open = getStringOption(e.open, ["userControl", "always", "multiSelect", "onEntry"]); _this.textEntry = getInteger({ data: e.textEntry, defaultValue: 0, validate: function (e) { return 1 === e; } }); _this.use = e.use || ""; _this.usehref = e.usehref || ""; _this.border = null; _this.extras = null; _this.margin = null; return _this; } ChoiceList.prototype[an] = function (e) { var _b, _k, _l; var t = toStyle(this, "border", "margin"), i = this[pr]()[pr](), a = { fontSize: "calc(".concat(((_b = i.font) === null || _b === void 0 ? void 0 : _b.size) || 10, "px * var(--scale-factor))") }, s = []; if (i.items.children.length > 0) { var e_531 = i.items; var t_394 = 0, r_139 = 0; if (2 === e_531.children.length) { t_394 = e_531.children[0].save; r_139 = 1 - t_394; } var n_94 = e_531.children[t_394][an]().html, o_67 = e_531.children[r_139][an]().html; var g_50 = !1; var c_41 = ((_k = i.value) === null || _k === void 0 ? void 0 : _k[en]()) || ""; for (var e_532 = 0, t_395 = n_94.length; e_532 < t_395; e_532++) { var t_396 = { name: "option", attributes: { value: o_67[e_532] || n_94[e_532], style: a }, value: n_94[e_532] }; o_67[e_532] === c_41 && (t_396.attributes.selected = g_50 = !0); s.push(t_396); } g_50 || s.splice(0, 0, { name: "option", attributes: { hidden: !0, selected: !0 }, value: " " }); } var r = { class: ["xfaSelect"], fieldId: i[nn], dataId: ((_l = i[tr]) === null || _l === void 0 ? void 0 : _l[nn]) || i[nn], style: t, "aria-label": ariaLabel(i), "aria-required": !1 }; if (isRequired(i)) { r["aria-required"] = !0; r.required = !0; } "multiSelect" === this.open && (r.multiple = !0); return HTMLResult.success({ name: "label", attributes: { class: ["xfaLabel"] }, children: [{ name: "select", children: s, attributes: r }] }); }; return ChoiceList; }(XFAObject)); var Color = /** @class */ (function (_super) { tslib_1.__extends(Color, _super); function Color(e) { var _this = _super.call(this, Jn, "color", !0) || this; _this.cSpace = getStringOption(e.cSpace, ["SRGB"]); _this.id = e.id || ""; _this.use = e.use || ""; _this.usehref = e.usehref || ""; _this.value = e.value ? function getColor(e, t) { if (t === void 0) { t = [0, 0, 0]; } var i = t[0], a = t[1], s = t[2]; if (!e) return { r: i, g: a, b: s }; var r = e.trim().split(/\s*,\s*/).map((function (e) { return Math.min(Math.max(0, parseInt(e.trim(), 10)), 255); })).map((function (e) { return isNaN(e) ? 0 : e; })); if (r.length < 3) return { r: i, g: a, b: s }; i = r[0], a = r[1], s = r[2]; return { r: i, g: a, b: s }; }(e.value) : ""; _this.extras = null; return _this; } Color.prototype[wr] = function () { return !1; }; Color.prototype[rn] = function () { return this.value ? Util.makeHexColor(this.value.r, this.value.g, this.value.b) : null; }; return Color; }(XFAObject)); var Comb = /** @class */ (function (_super) { tslib_1.__extends(Comb, _super); function Comb(e) { var _this = _super.call(this, Jn, "comb") || this; _this.id = e.id || ""; _this.numberOfCells = getInteger({ data: e.numberOfCells, defaultValue: 0, validate: function (e) { return e >= 0; } }); _this.use = e.use || ""; _this.usehref = e.usehref || ""; return _this; } return Comb; }(XFAObject)); var Connect = /** @class */ (function (_super) { tslib_1.__extends(Connect, _super); function Connect(e) { var _this = _super.call(this, Jn, "connect", !0) || this; _this.connection = e.connection || ""; _this.id = e.id || ""; _this.ref = e.ref || ""; _this.usage = getStringOption(e.usage, ["exportAndImport", "exportOnly", "importOnly"]); _this.use = e.use || ""; _this.usehref = e.usehref || ""; _this.picture = null; return _this; } return Connect; }(XFAObject)); var ContentArea = /** @class */ (function (_super) { tslib_1.__extends(ContentArea, _super); function ContentArea(e) { var _this = _super.call(this, Jn, "contentArea", !0) || this; _this.h = getMeasurement(e.h); _this.id = e.id || ""; _this.name = e.name || ""; _this.relevant = getRelevant(e.relevant); _this.use = e.use || ""; _this.usehref = e.usehref || ""; _this.w = getMeasurement(e.w); _this.x = getMeasurement(e.x, "0pt"); _this.y = getMeasurement(e.y, "0pt"); _this.desc = null; _this.extras = null; return _this; } ContentArea.prototype[an] = function (e) { var t = { left: measureToString(this.x), top: measureToString(this.y), width: measureToString(this.w), height: measureToString(this.h) }, i = ["xfaContentarea"]; isPrintOnly(this) && i.push("xfaPrintOnly"); return HTMLResult.success({ name: "div", children: [], attributes: { style: t, class: i, id: this[nn] } }); }; return ContentArea; }(XFAObject)); var Corner = /** @class */ (function (_super) { tslib_1.__extends(Corner, _super); function Corner(e) { var _this = _super.call(this, Jn, "corner", !0) || this; _this.id = e.id || ""; _this.inverted = getInteger({ data: e.inverted, defaultValue: 0, validate: function (e) { return 1 === e; } }); _this.join = getStringOption(e.join, ["square", "round"]); _this.presence = getStringOption(e.presence, ["visible", "hidden", "inactive", "invisible"]); _this.radius = getMeasurement(e.radius); _this.stroke = getStringOption(e.stroke, ["solid", "dashDot", "dashDotDot", "dashed", "dotted", "embossed", "etched", "lowered", "raised"]); _this.thickness = getMeasurement(e.thickness, "0.5pt"); _this.use = e.use || ""; _this.usehref = e.usehref || ""; _this.color = null; _this.extras = null; return _this; } Corner.prototype[rn] = function () { var e = toStyle(this, "visibility"); e.radius = measureToString("square" === this.join ? 0 : this.radius); return e; }; return Corner; }(XFAObject)); var DateElement = /** @class */ (function (_super) { tslib_1.__extends(DateElement, _super); function DateElement(e) { var _this = _super.call(this, Jn, "date") || this; _this.id = e.id || ""; _this.name = e.name || ""; _this.use = e.use || ""; _this.usehref = e.usehref || ""; return _this; } DateElement.prototype[sr] = function () { var e = this[er].trim(); this[er] = e ? new Date(e) : null; }; DateElement.prototype[an] = function (e) { return valueToHtml(this[er] ? this[er].toString() : ""); }; return DateElement; }(ContentObject)); var DateTime = /** @class */ (function (_super) { tslib_1.__extends(DateTime, _super); function DateTime(e) { var _this = _super.call(this, Jn, "dateTime") || this; _this.id = e.id || ""; _this.name = e.name || ""; _this.use = e.use || ""; _this.usehref = e.usehref || ""; return _this; } DateTime.prototype[sr] = function () { var e = this[er].trim(); this[er] = e ? new Date(e) : null; }; DateTime.prototype[an] = function (e) { return valueToHtml(this[er] ? this[er].toString() : ""); }; return DateTime; }(ContentObject)); var DateTimeEdit = /** @class */ (function (_super) { tslib_1.__extends(DateTimeEdit, _super); function DateTimeEdit(e) { var _this = _super.call(this, Jn, "dateTimeEdit", !0) || this; _this.hScrollPolicy = getStringOption(e.hScrollPolicy, ["auto", "off", "on"]); _this.id = e.id || ""; _this.picker = getStringOption(e.picker, ["host", "none"]); _this.use = e.use || ""; _this.usehref = e.usehref || ""; _this.border = null; _this.comb = null; _this.extras = null; _this.margin = null; return _this; } DateTimeEdit.prototype[an] = function (e) { var _b; var t = toStyle(this, "border", "font", "margin"), i = this[pr]()[pr](), a = { name: "input", attributes: { type: "text", fieldId: i[nn], dataId: ((_b = i[tr]) === null || _b === void 0 ? void 0 : _b[nn]) || i[nn], class: ["xfaTextfield"], style: t, "aria-label": ariaLabel(i), "aria-required": !1 } }; if (isRequired(i)) { a.attributes["aria-required"] = !0; a.attributes.required = !0; } return HTMLResult.success({ name: "label", attributes: { class: ["xfaLabel"] }, children: [a] }); }; return DateTimeEdit; }(XFAObject)); var Decimal = /** @class */ (function (_super) { tslib_1.__extends(Decimal, _super); function Decimal(e) { var _this = _super.call(this, Jn, "decimal") || this; _this.fracDigits = getInteger({ data: e.fracDigits, defaultValue: 2, validate: function (e) { return !0; } }); _this.id = e.id || ""; _this.leadDigits = getInteger({ data: e.leadDigits, defaultValue: -1, validate: function (e) { return !0; } }); _this.name = e.name || ""; _this.use = e.use || ""; _this.usehref = e.usehref || ""; return _this; } Decimal.prototype[sr] = function () { var e = parseFloat(this[er].trim()); this[er] = isNaN(e) ? null : e; }; Decimal.prototype[an] = function (e) { return valueToHtml(null !== this[er] ? this[er].toString() : ""); }; return Decimal; }(ContentObject)); var DefaultUi = /** @class */ (function (_super) { tslib_1.__extends(DefaultUi, _super); function DefaultUi(e) { var _this = _super.call(this, Jn, "defaultUi", !0) || this; _this.id = e.id || ""; _this.use = e.use || ""; _this.usehref = e.usehref || ""; _this.extras = null; return _this; } return DefaultUi; }(XFAObject)); var Desc = /** @class */ (function (_super) { tslib_1.__extends(Desc, _super); function Desc(e) { var _this = _super.call(this, Jn, "desc", !0) || this; _this.id = e.id || ""; _this.use = e.use || ""; _this.usehref = e.usehref || ""; _this.boolean = new XFAObjectArray; _this.date = new XFAObjectArray; _this.dateTime = new XFAObjectArray; _this.decimal = new XFAObjectArray; _this.exData = new XFAObjectArray; _this.float = new XFAObjectArray; _this.image = new XFAObjectArray; _this.integer = new XFAObjectArray; _this.text = new XFAObjectArray; _this.time = new XFAObjectArray; return _this; } return Desc; }(XFAObject)); var DigestMethod = /** @class */ (function (_super) { tslib_1.__extends(DigestMethod, _super); function DigestMethod(e) { var _this = _super.call(this, Jn, "digestMethod", ["", "SHA1", "SHA256", "SHA512", "RIPEMD160"]) || this; _this.id = e.id || ""; _this.use = e.use || ""; _this.usehref = e.usehref || ""; return _this; } return DigestMethod; }(OptionObject)); var DigestMethods = /** @class */ (function (_super) { tslib_1.__extends(DigestMethods, _super); function DigestMethods(e) { var _this = _super.call(this, Jn, "digestMethods", !0) || this; _this.id = e.id || ""; _this.type = getStringOption(e.type, ["optional", "required"]); _this.use = e.use || ""; _this.usehref = e.usehref || ""; _this.digestMethod = new XFAObjectArray; return _this; } return DigestMethods; }(XFAObject)); var Draw = /** @class */ (function (_super) { tslib_1.__extends(Draw, _super); function Draw(e) { var _this = _super.call(this, Jn, "draw", !0) || this; _this.anchorType = getStringOption(e.anchorType, ["topLeft", "bottomCenter", "bottomLeft", "bottomRight", "middleCenter", "middleLeft", "middleRight", "topCenter", "topRight"]); _this.colSpan = getInteger({ data: e.colSpan, defaultValue: 1, validate: function (e) { return e >= 1 || -1 === e; } }); _this.h = e.h ? getMeasurement(e.h) : ""; _this.hAlign = getStringOption(e.hAlign, ["left", "center", "justify", "justifyAll", "radix", "right"]); _this.id = e.id || ""; _this.locale = e.locale || ""; _this.maxH = getMeasurement(e.maxH, "0pt"); _this.maxW = getMeasurement(e.maxW, "0pt"); _this.minH = getMeasurement(e.minH, "0pt"); _this.minW = getMeasurement(e.minW, "0pt"); _this.name = e.name || ""; _this.presence = getStringOption(e.presence, ["visible", "hidden", "inactive", "invisible"]); _this.relevant = getRelevant(e.relevant); _this.rotate = getInteger({ data: e.rotate, defaultValue: 0, validate: function (e) { return e % 90 == 0; } }); _this.use = e.use || ""; _this.usehref = e.usehref || ""; _this.w = e.w ? getMeasurement(e.w) : ""; _this.x = getMeasurement(e.x, "0pt"); _this.y = getMeasurement(e.y, "0pt"); _this.assist = null; _this.border = null; _this.caption = null; _this.desc = null; _this.extras = null; _this.font = null; _this.keep = null; _this.margin = null; _this.para = null; _this.traversal = null; _this.ui = null; _this.value = null; _this.setProperty = new XFAObjectArray; return _this; } Draw.prototype[$r] = function (e) { _setValue(this, e); }; Draw.prototype[an] = function (e) { setTabIndex(this); if ("hidden" === this.presence || "inactive" === this.presence) return HTMLResult.EMPTY; fixDimensions(this); this[Wr](); var t = this.w, i = this.h, _b = layoutNode(this, e), a = _b.w, s = _b.h, r = _b.isBroken; if (a && "" === this.w) { if (r && this[fr]()[Mr]()) { this[Pr](); return HTMLResult.FAILURE; } this.w = a; } s && "" === this.h && (this.h = s); setFirstUnsplittable(this); if (!checkDimensions(this, e)) { this.w = t; this.h = i; this[Pr](); return HTMLResult.FAILURE; } unsetFirstUnsplittable(this); var n = toStyle(this, "font", "hAlign", "dimensions", "position", "presence", "rotate", "anchorType", "border", "margin"); setMinMaxDimensions(this, n); if (n.margin) { n.padding = n.margin; delete n.margin; } var o = ["xfaDraw"]; this.font && o.push("xfaFont"); isPrintOnly(this) && o.push("xfaPrintOnly"); var g = { style: n, id: this[nn], class: o }; this.name && (g.xfaName = this.name); var c = { name: "div", attributes: g, children: [] }; applyAssist(this, g); var h = computeBbox(this, c, e), l = this.value ? this.value[an](e).html : null; if (null === l) { this.w = t; this.h = i; this[Pr](); return HTMLResult.success(createWrapper(this, c), h); } c.children.push(l); setPara(this, n, l); this.w = t; this.h = i; this[Pr](); return HTMLResult.success(createWrapper(this, c), h); }; return Draw; }(XFAObject)); var Edge = /** @class */ (function (_super) { tslib_1.__extends(Edge, _super); function Edge(e) { var _this = _super.call(this, Jn, "edge", !0) || this; _this.cap = getStringOption(e.cap, ["square", "butt", "round"]); _this.id = e.id || ""; _this.presence = getStringOption(e.presence, ["visible", "hidden", "inactive", "invisible"]); _this.stroke = getStringOption(e.stroke, ["solid", "dashDot", "dashDotDot", "dashed", "dotted", "embossed", "etched", "lowered", "raised"]); _this.thickness = getMeasurement(e.thickness, "0.5pt"); _this.use = e.use || ""; _this.usehref = e.usehref || ""; _this.color = null; _this.extras = null; return _this; } Edge.prototype[rn] = function () { var e = toStyle(this, "visibility"); Object.assign(e, { linecap: this.cap, width: measureToString(this.thickness), color: this.color ? this.color[rn]() : "#000000", style: "" }); if ("visible" !== this.presence) e.style = "none"; else switch (this.stroke) { case "solid": e.style = "solid"; break; case "dashDot": case "dashDotDot": case "dashed": e.style = "dashed"; break; case "dotted": e.style = "dotted"; break; case "embossed": e.style = "ridge"; break; case "etched": e.style = "groove"; break; case "lowered": e.style = "inset"; break; case "raised": e.style = "outset"; } return e; }; return Edge; }(XFAObject)); var Encoding = /** @class */ (function (_super) { tslib_1.__extends(Encoding, _super); function Encoding(e) { var _this = _super.call(this, Jn, "encoding", ["adbe.x509.rsa_sha1", "adbe.pkcs7.detached", "adbe.pkcs7.sha1"]) || this; _this.id = e.id || ""; _this.use = e.use || ""; _this.usehref = e.usehref || ""; return _this; } return Encoding; }(OptionObject)); var Encodings = /** @class */ (function (_super) { tslib_1.__extends(Encodings, _super); function Encodings(e) { var _this = _super.call(this, Jn, "encodings", !0) || this; _this.id = e.id || ""; _this.type = getStringOption(e.type, ["optional", "required"]); _this.use = e.use || ""; _this.usehref = e.usehref || ""; _this.encoding = new XFAObjectArray; return _this; } return Encodings; }(XFAObject)); var Encrypt = /** @class */ (function (_super) { tslib_1.__extends(Encrypt, _super); function Encrypt(e) { var _this = _super.call(this, Jn, "encrypt", !0) || this; _this.id = e.id || ""; _this.use = e.use || ""; _this.usehref = e.usehref || ""; _this.certificate = null; return _this; } return Encrypt; }(XFAObject)); var EncryptData = /** @class */ (function (_super) { tslib_1.__extends(EncryptData, _super); function EncryptData(e) { var _this = _super.call(this, Jn, "encryptData", !0) || this; _this.id = e.id || ""; _this.operation = getStringOption(e.operation, ["encrypt", "decrypt"]); _this.target = e.target || ""; _this.use = e.use || ""; _this.usehref = e.usehref || ""; _this.filter = null; _this.manifest = null; return _this; } return EncryptData; }(XFAObject)); var Encryption = /** @class */ (function (_super) { tslib_1.__extends(Encryption, _super); function Encryption(e) { var _this = _super.call(this, Jn, "encryption", !0) || this; _this.id = e.id || ""; _this.type = getStringOption(e.type, ["optional", "required"]); _this.use = e.use || ""; _this.usehref = e.usehref || ""; _this.certificate = new XFAObjectArray; return _this; } return Encryption; }(XFAObject)); var EncryptionMethod = /** @class */ (function (_super) { tslib_1.__extends(EncryptionMethod, _super); function EncryptionMethod(e) { var _this = _super.call(this, Jn, "encryptionMethod", ["", "AES256-CBC", "TRIPLEDES-CBC", "AES128-CBC", "AES192-CBC"]) || this; _this.id = e.id || ""; _this.use = e.use || ""; _this.usehref = e.usehref || ""; return _this; } return EncryptionMethod; }(OptionObject)); var EncryptionMethods = /** @class */ (function (_super) { tslib_1.__extends(EncryptionMethods, _super); function EncryptionMethods(e) { var _this = _super.call(this, Jn, "encryptionMethods", !0) || this; _this.id = e.id || ""; _this.type = getStringOption(e.type, ["optional", "required"]); _this.use = e.use || ""; _this.usehref = e.usehref || ""; _this.encryptionMethod = new XFAObjectArray; return _this; } return EncryptionMethods; }(XFAObject)); var Event = /** @class */ (function (_super) { tslib_1.__extends(Event, _super); function Event(e) { var _this = _super.call(this, Jn, "event", !0) || this; _this.activity = getStringOption(e.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"]); _this.id = e.id || ""; _this.listen = getStringOption(e.listen, ["refOnly", "refAndDescendents"]); _this.name = e.name || ""; _this.ref = e.ref || ""; _this.use = e.use || ""; _this.usehref = e.usehref || ""; _this.extras = null; _this.encryptData = null; _this.execute = null; _this.script = null; _this.signData = null; _this.submit = null; return _this; } return Event; }(XFAObject)); var ExData = /** @class */ (function (_super) { tslib_1.__extends(ExData, _super); function ExData(e) { var _this = _super.call(this, Jn, "exData") || this; _this.contentType = e.contentType || ""; _this.href = e.href || ""; _this.id = e.id || ""; _this.maxLength = getInteger({ data: e.maxLength, defaultValue: -1, validate: function (e) { return e >= -1; } }); _this.name = e.name || ""; _this.rid = e.rid || ""; _this.transferEncoding = getStringOption(e.transferEncoding, ["none", "base64", "package"]); _this.use = e.use || ""; _this.usehref = e.usehref || ""; return _this; } ExData.prototype[Sr] = function () { return "text/html" === this.contentType; }; ExData.prototype[Kr] = function (e) { if ("text/html" === this.contentType && e[Hr] === gn.xhtml.id) { this[er] = e; return !0; } if ("text/xml" === this.contentType) { this[er] = e; return !0; } return !1; }; ExData.prototype[an] = function (e) { return "text/html" === this.contentType && this[er] ? this[er][an](e) : HTMLResult.EMPTY; }; return ExData; }(ContentObject)); var ExObject = /** @class */ (function (_super) { tslib_1.__extends(ExObject, _super); function ExObject(e) { var _this = _super.call(this, Jn, "exObject", !0) || this; _this.archive = e.archive || ""; _this.classId = e.classId || ""; _this.codeBase = e.codeBase || ""; _this.codeType = e.codeType || ""; _this.id = e.id || ""; _this.name = e.name || ""; _this.use = e.use || ""; _this.usehref = e.usehref || ""; _this.extras = null; _this.boolean = new XFAObjectArray; _this.date = new XFAObjectArray; _this.dateTime = new XFAObjectArray; _this.decimal = new XFAObjectArray; _this.exData = new XFAObjectArray; _this.exObject = new XFAObjectArray; _this.float = new XFAObjectArray; _this.image = new XFAObjectArray; _this.integer = new XFAObjectArray; _this.text = new XFAObjectArray; _this.time = new XFAObjectArray; return _this; } return ExObject; }(XFAObject)); var ExclGroup = /** @class */ (function (_super) { tslib_1.__extends(ExclGroup, _super); function ExclGroup(e) { var _this = _super.call(this, Jn, "exclGroup", !0) || this; _this.access = getStringOption(e.access, ["open", "nonInteractive", "protected", "readOnly"]); _this.accessKey = e.accessKey || ""; _this.anchorType = getStringOption(e.anchorType, ["topLeft", "bottomCenter", "bottomLeft", "bottomRight", "middleCenter", "middleLeft", "middleRight", "topCenter", "topRight"]); _this.colSpan = getInteger({ data: e.colSpan, defaultValue: 1, validate: function (e) { return e >= 1 || -1 === e; } }); _this.h = e.h ? getMeasurement(e.h) : ""; _this.hAlign = getStringOption(e.hAlign, ["left", "center", "justify", "justifyAll", "radix", "right"]); _this.id = e.id || ""; _this.layout = getStringOption(e.layout, ["position", "lr-tb", "rl-row", "rl-tb", "row", "table", "tb"]); _this.maxH = getMeasurement(e.maxH, "0pt"); _this.maxW = getMeasurement(e.maxW, "0pt"); _this.minH = getMeasurement(e.minH, "0pt"); _this.minW = getMeasurement(e.minW, "0pt"); _this.name = e.name || ""; _this.presence = getStringOption(e.presence, ["visible", "hidden", "inactive", "invisible"]); _this.relevant = getRelevant(e.relevant); _this.use = e.use || ""; _this.usehref = e.usehref || ""; _this.w = e.w ? getMeasurement(e.w) : ""; _this.x = getMeasurement(e.x, "0pt"); _this.y = getMeasurement(e.y, "0pt"); _this.assist = null; _this.bind = null; _this.border = null; _this.calculate = null; _this.caption = null; _this.desc = null; _this.extras = null; _this.margin = null; _this.para = null; _this.traversal = null; _this.validate = null; _this.connect = new XFAObjectArray; _this.event = new XFAObjectArray; _this.field = new XFAObjectArray; _this.setProperty = new XFAObjectArray; return _this; } ExclGroup.prototype[kr] = function () { return !0; }; ExclGroup.prototype[wr] = function () { return !0; }; ExclGroup.prototype[$r] = function (e) { for (var _b = 0, _k = this.field.children; _b < _k.length; _b++) { var t_397 = _k[_b]; if (!t_397.value) { var e_533 = new Value({}); t_397[js](e_533); t_397.value = e_533; } t_397.value[$r](e); } }; ExclGroup.prototype[Mr] = function () { return this.layout.endsWith("-tb") && 0 === this[ar].attempt && this[ar].numberInLine > 0 || this[pr]()[Mr](); }; ExclGroup.prototype[xr] = function () { var _b; var e = this[fr](); if (!e[xr]()) return !1; if (void 0 !== this[ar]._isSplittable) return this[ar]._isSplittable; if ("position" === this.layout || this.layout.includes("row")) { this[ar]._isSplittable = !1; return !1; } if (((_b = e.layout) === null || _b === void 0 ? void 0 : _b.endsWith("-tb")) && 0 !== e[ar].numberInLine) return !1; this[ar]._isSplittable = !0; return !0; }; ExclGroup.prototype[rr] = function () { return flushHTML(this); }; ExclGroup.prototype[Xs] = function (e, t) { addHTML(this, e, t); }; ExclGroup.prototype[gr] = function () { return getAvailableSpace(this); }; ExclGroup.prototype[an] = function (e) { setTabIndex(this); if ("hidden" === this.presence || "inactive" === this.presence || 0 === this.h || 0 === this.w) return HTMLResult.EMPTY; fixDimensions(this); var t = [], i = { id: this[nn], class: [] }; setAccess(this, i.class); this[ar] || (this[ar] = Object.create(null)); Object.assign(this[ar], { children: t, attributes: i, attempt: 0, line: null, numberInLine: 0, availableSpace: { width: Math.min(this.w || 1 / 0, e.width), height: Math.min(this.h || 1 / 0, e.height) }, width: 0, height: 0, prevHeight: 0, currentWidth: 0 }); var a = this[xr](); a || setFirstUnsplittable(this); if (!checkDimensions(this, e)) return HTMLResult.FAILURE; var s = new Set(["field"]); if (this.layout.includes("row")) { var e_534 = this[fr]().columnWidths; if (Array.isArray(e_534) && e_534.length > 0) { this[ar].columnWidths = e_534; this[ar].currentColumn = 0; } } var r = toStyle(this, "anchorType", "dimensions", "position", "presence", "border", "margin", "hAlign"), n = ["xfaExclgroup"], o = layoutClass(this); o && n.push(o); isPrintOnly(this) && n.push("xfaPrintOnly"); i.style = r; i.class = n; this.name && (i.xfaName = this.name); this[Wr](); var g = "lr-tb" === this.layout || "rl-tb" === this.layout, c = g ? 2 : 1; for (; this[ar].attempt < c; this[ar].attempt++) { g && 1 === this[ar].attempt && (this[ar].numberInLine = 0); var e_535 = this[Zs]({ filter: s, include: !0 }); if (e_535.success) break; if (e_535.isBreak()) { this[Pr](); return e_535; } if (g && 0 === this[ar].attempt && 0 === this[ar].numberInLine && !this[mr]()[ar].noLayoutFailure) { this[ar].attempt = c; break; } } this[Pr](); a || unsetFirstUnsplittable(this); if (this[ar].attempt === c) { a || delete this[ar]; return HTMLResult.FAILURE; } var h = 0, l = 0; if (this.margin) { h = this.margin.leftInset + this.margin.rightInset; l = this.margin.topInset + this.margin.bottomInset; } var C = Math.max(this[ar].width + h, this.w || 0), Q = Math.max(this[ar].height + l, this.h || 0), E = [this.x, this.y, C, Q]; "" === this.w && (r.width = measureToString(C)); "" === this.h && (r.height = measureToString(Q)); var u = { name: "div", attributes: i, children: t }; applyAssist(this, i); delete this[ar]; return HTMLResult.success(createWrapper(this, u), E); }; return ExclGroup; }(XFAObject)); var Execute = /** @class */ (function (_super) { tslib_1.__extends(Execute, _super); function Execute(e) { var _this = _super.call(this, Jn, "execute") || this; _this.connection = e.connection || ""; _this.executeType = getStringOption(e.executeType, ["import", "remerge"]); _this.id = e.id || ""; _this.runAt = getStringOption(e.runAt, ["client", "both", "server"]); _this.use = e.use || ""; _this.usehref = e.usehref || ""; return _this; } return Execute; }(XFAObject)); var Extras = /** @class */ (function (_super) { tslib_1.__extends(Extras, _super); function Extras(e) { var _this = _super.call(this, Jn, "extras", !0) || this; _this.id = e.id || ""; _this.name = e.name || ""; _this.use = e.use || ""; _this.usehref = e.usehref || ""; _this.boolean = new XFAObjectArray; _this.date = new XFAObjectArray; _this.dateTime = new XFAObjectArray; _this.decimal = new XFAObjectArray; _this.exData = new XFAObjectArray; _this.extras = new XFAObjectArray; _this.float = new XFAObjectArray; _this.image = new XFAObjectArray; _this.integer = new XFAObjectArray; _this.text = new XFAObjectArray; _this.time = new XFAObjectArray; return _this; } return Extras; }(XFAObject)); var Field = /** @class */ (function (_super) { tslib_1.__extends(Field, _super); function Field(e) { var _this = _super.call(this, Jn, "field", !0) || this; _this.access = getStringOption(e.access, ["open", "nonInteractive", "protected", "readOnly"]); _this.accessKey = e.accessKey || ""; _this.anchorType = getStringOption(e.anchorType, ["topLeft", "bottomCenter", "bottomLeft", "bottomRight", "middleCenter", "middleLeft", "middleRight", "topCenter", "topRight"]); _this.colSpan = getInteger({ data: e.colSpan, defaultValue: 1, validate: function (e) { return e >= 1 || -1 === e; } }); _this.h = e.h ? getMeasurement(e.h) : ""; _this.hAlign = getStringOption(e.hAlign, ["left", "center", "justify", "justifyAll", "radix", "right"]); _this.id = e.id || ""; _this.locale = e.locale || ""; _this.maxH = getMeasurement(e.maxH, "0pt"); _this.maxW = getMeasurement(e.maxW, "0pt"); _this.minH = getMeasurement(e.minH, "0pt"); _this.minW = getMeasurement(e.minW, "0pt"); _this.name = e.name || ""; _this.presence = getStringOption(e.presence, ["visible", "hidden", "inactive", "invisible"]); _this.relevant = getRelevant(e.relevant); _this.rotate = getInteger({ data: e.rotate, defaultValue: 0, validate: function (e) { return e % 90 == 0; } }); _this.use = e.use || ""; _this.usehref = e.usehref || ""; _this.w = e.w ? getMeasurement(e.w) : ""; _this.x = getMeasurement(e.x, "0pt"); _this.y = getMeasurement(e.y, "0pt"); _this.assist = null; _this.bind = null; _this.border = null; _this.calculate = null; _this.caption = null; _this.desc = null; _this.extras = null; _this.font = null; _this.format = null; _this.items = new XFAObjectArray(2); _this.keep = null; _this.margin = null; _this.para = null; _this.traversal = null; _this.ui = null; _this.validate = null; _this.value = null; _this.bindItems = new XFAObjectArray; _this.connect = new XFAObjectArray; _this.event = new XFAObjectArray; _this.setProperty = new XFAObjectArray; return _this; } Field.prototype[kr] = function () { return !0; }; Field.prototype[$r] = function (e) { _setValue(this, e); }; Field.prototype[an] = function (e) { var _b; var _k, _l, _m; setTabIndex(this); if (!this.ui) { this.ui = new Ui({}); this.ui[yr] = this[yr]; this[js](this.ui); var e_536; switch (this.items.children.length) { case 0: e_536 = new TextEdit({}); this.ui.textEdit = e_536; break; case 1: e_536 = new CheckButton({}); this.ui.checkButton = e_536; break; case 2: e_536 = new ChoiceList({}); this.ui.choiceList = e_536; } this.ui[js](e_536); } if (!this.ui || "hidden" === this.presence || "inactive" === this.presence || 0 === this.h || 0 === this.w) return HTMLResult.EMPTY; this.caption && delete this.caption[ar]; this[Wr](); var t = this.caption ? this.caption[an](e).html : null, i = this.w, a = this.h; var s = 0, r = 0; if (this.margin) { s = this.margin.leftInset + this.margin.rightInset; r = this.margin.topInset + this.margin.bottomInset; } var n = null; if ("" === this.w || "" === this.h) { var t_398 = null, i_329 = null, a_261 = 0, o_68 = 0; if (this.ui.checkButton) a_261 = o_68 = this.ui.checkButton.size; else { var _o = layoutNode(this, e), t_399 = _o.w, i_330 = _o.h; if (null !== t_399) { a_261 = t_399; o_68 = i_330; } else o_68 = function fonts_getMetrics(e, t) { if (t === void 0) { t = !1; } var i = null; if (e) { var t_400 = stripQuotes(e.typeface), a_262 = e[yr].fontFinder.find(t_400); i = selectFont(e, a_262); } if (!i) return { lineHeight: 12, lineGap: 2, lineNoGap: 10 }; var a = e.size || 10, s = i.lineHeight ? Math.max(t ? 0 : 1.2, i.lineHeight) : 1.2, r = void 0 === i.lineGap ? .2 : i.lineGap; return { lineHeight: s * a, lineGap: r * a, lineNoGap: Math.max(1, s - r) * a }; }(this.font, !0).lineNoGap; } n = getBorderDims(this.ui[Cr]()); a_261 += n.w; o_68 += n.h; if (this.caption) { var _p = this.caption[Cr](e), s_177 = _p.w, r_140 = _p.h, n_95 = _p.isBroken; if (n_95 && this[fr]()[Mr]()) { this[Pr](); return HTMLResult.FAILURE; } t_398 = s_177; i_329 = r_140; switch (this.caption.placement) { case "left": case "right": case "inline": t_398 += a_261; break; case "top": case "bottom": i_329 += o_68; } } else { t_398 = a_261; i_329 = o_68; } if (t_398 && "" === this.w) { t_398 += s; this.w = Math.min(this.maxW <= 0 ? 1 / 0 : this.maxW, this.minW + 1 < t_398 ? t_398 : this.minW); } if (i_329 && "" === this.h) { i_329 += r; this.h = Math.min(this.maxH <= 0 ? 1 / 0 : this.maxH, this.minH + 1 < i_329 ? i_329 : this.minH); } } this[Pr](); fixDimensions(this); setFirstUnsplittable(this); if (!checkDimensions(this, e)) { this.w = i; this.h = a; this[Pr](); return HTMLResult.FAILURE; } unsetFirstUnsplittable(this); var o = toStyle(this, "font", "dimensions", "position", "rotate", "anchorType", "presence", "margin", "hAlign"); setMinMaxDimensions(this, o); var g = ["xfaField"]; this.font && g.push("xfaFont"); isPrintOnly(this) && g.push("xfaPrintOnly"); var c = { style: o, id: this[nn], class: g }; if (o.margin) { o.padding = o.margin; delete o.margin; } setAccess(this, g); this.name && (c.xfaName = this.name); var h = [], l = { name: "div", attributes: c, children: h }; applyAssist(this, c); var C = this.border ? this.border[rn]() : null, Q = computeBbox(this, l, e), E = this.ui[an]().html; if (!E) { Object.assign(o, C); return HTMLResult.success(createWrapper(this, l), Q); } this[An] && (((_k = E.children) === null || _k === void 0 ? void 0 : _k[0]) ? E.children[0].attributes.tabindex = this[An] : E.attributes.tabindex = this[An]); E.attributes.style || (E.attributes.style = Object.create(null)); var u = null; if (this.ui.button) { 1 === E.children.length && (_b = E.children.splice(0, 1), u = _b[0], _b); Object.assign(E.attributes.style, C); } else Object.assign(o, C); h.push(E); if (this.value) if (this.ui.imageEdit) E.children.push(this.value[an]().html); else if (!this.ui.button) { var e_537 = ""; if (this.value.exData) e_537 = this.value.exData[en](); else if (this.value.text) e_537 = this.value.text[Cr](); else { var t_401 = this.value[an]().html; null !== t_401 && (e_537 = t_401.children[0].value); } this.ui.textEdit && ((_l = this.value.text) === null || _l === void 0 ? void 0 : _l.maxChars) && (E.children[0].attributes.maxLength = this.value.text.maxChars); if (e_537) { if (this.ui.numericEdit) { e_537 = parseFloat(e_537); e_537 = isNaN(e_537) ? "" : e_537.toString(); } "textarea" === E.children[0].name ? E.children[0].attributes.textContent = e_537 : E.children[0].attributes.value = e_537; } } if (!this.ui.imageEdit && ((_m = E.children) === null || _m === void 0 ? void 0 : _m[0]) && this.h) { n = n || getBorderDims(this.ui[Cr]()); var t_402 = 0; if (this.caption && ["top", "bottom"].includes(this.caption.placement)) { t_402 = this.caption.reserve; t_402 <= 0 && (t_402 = this.caption[Cr](e).h); var i_331 = this.h - t_402 - r - n.h; E.children[0].attributes.style.height = measureToString(i_331); } else E.children[0].attributes.style.height = "100%"; } u && E.children.push(u); if (!t) { E.attributes.class && E.attributes.class.push("xfaLeft"); this.w = i; this.h = a; return HTMLResult.success(createWrapper(this, l), Q); } if (this.ui.button) { o.padding && delete o.padding; "div" === t.name && (t.name = "span"); E.children.push(t); return HTMLResult.success(l, Q); } this.ui.checkButton && (t.attributes.class[0] = "xfaCaptionForCheckButton"); E.attributes.class || (E.attributes.class = []); E.children.splice(0, 0, t); switch (this.caption.placement) { case "left": case "inline": E.attributes.class.push("xfaLeft"); break; case "right": E.attributes.class.push("xfaRight"); break; case "top": E.attributes.class.push("xfaTop"); break; case "bottom": E.attributes.class.push("xfaBottom"); } this.w = i; this.h = a; return HTMLResult.success(createWrapper(this, l), Q); }; return Field; }(XFAObject)); var Fill = /** @class */ (function (_super) { tslib_1.__extends(Fill, _super); function Fill(e) { var _this = _super.call(this, Jn, "fill", !0) || this; _this.id = e.id || ""; _this.presence = getStringOption(e.presence, ["visible", "hidden", "inactive", "invisible"]); _this.use = e.use || ""; _this.usehref = e.usehref || ""; _this.color = null; _this.extras = null; _this.linear = null; _this.pattern = null; _this.radial = null; _this.solid = null; _this.stipple = null; return _this; } Fill.prototype[rn] = function () { var _b; var e = this[pr](), t = e[pr]()[pr](), i = Object.create(null); var a = "color", s = a; if (e instanceof Border) { a = "background-color"; s = "background"; t instanceof Ui && (i.backgroundColor = "white"); } if (e instanceof Rectangle || e instanceof Arc) { a = s = "fill"; i.fill = "white"; } for (var _k = 0, _l = Object.getOwnPropertyNames(this); _k < _l.length; _k++) { var e_538 = _l[_k]; if ("extras" === e_538 || "color" === e_538) continue; var t_403 = this[e_538]; if (!(t_403 instanceof XFAObject)) continue; var r_141 = t_403[rn](this.color); r_141 && (i[r_141.startsWith("#") ? a : s] = r_141); return i; } if ((_b = this.color) === null || _b === void 0 ? void 0 : _b.value) { var e_539 = this.color[rn](); i[e_539.startsWith("#") ? a : s] = e_539; } return i; }; return Fill; }(XFAObject)); var Filter = /** @class */ (function (_super) { tslib_1.__extends(Filter, _super); function Filter(e) { var _this = _super.call(this, Jn, "filter", !0) || this; _this.addRevocationInfo = getStringOption(e.addRevocationInfo, ["", "required", "optional", "none"]); _this.id = e.id || ""; _this.name = e.name || ""; _this.use = e.use || ""; _this.usehref = e.usehref || ""; _this.version = getInteger({ data: _this.version, defaultValue: 5, validate: function (e) { return e >= 1 && e <= 5; } }); _this.appearanceFilter = null; _this.certificates = null; _this.digestMethods = null; _this.encodings = null; _this.encryptionMethods = null; _this.handler = null; _this.lockDocument = null; _this.mdp = null; _this.reasons = null; _this.timeStamp = null; return _this; } return Filter; }(XFAObject)); var Float = /** @class */ (function (_super) { tslib_1.__extends(Float, _super); function Float(e) { var _this = _super.call(this, Jn, "float") || this; _this.id = e.id || ""; _this.name = e.name || ""; _this.use = e.use || ""; _this.usehref = e.usehref || ""; return _this; } Float.prototype[sr] = function () { var e = parseFloat(this[er].trim()); this[er] = isNaN(e) ? null : e; }; Float.prototype[an] = function (e) { return valueToHtml(null !== this[er] ? this[er].toString() : ""); }; return Float; }(ContentObject)); var template_Font = /** @class */ (function (_super) { tslib_1.__extends(template_Font, _super); function template_Font(e) { var _this = _super.call(this, Jn, "font", !0) || this; _this.baselineShift = getMeasurement(e.baselineShift); _this.fontHorizontalScale = getFloat({ data: e.fontHorizontalScale, defaultValue: 100, validate: function (e) { return e >= 0; } }); _this.fontVerticalScale = getFloat({ data: e.fontVerticalScale, defaultValue: 100, validate: function (e) { return e >= 0; } }); _this.id = e.id || ""; _this.kerningMode = getStringOption(e.kerningMode, ["none", "pair"]); _this.letterSpacing = getMeasurement(e.letterSpacing, "0"); _this.lineThrough = getInteger({ data: e.lineThrough, defaultValue: 0, validate: function (e) { return 1 === e || 2 === e; } }); _this.lineThroughPeriod = getStringOption(e.lineThroughPeriod, ["all", "word"]); _this.overline = getInteger({ data: e.overline, defaultValue: 0, validate: function (e) { return 1 === e || 2 === e; } }); _this.overlinePeriod = getStringOption(e.overlinePeriod, ["all", "word"]); _this.posture = getStringOption(e.posture, ["normal", "italic"]); _this.size = getMeasurement(e.size, "10pt"); _this.typeface = e.typeface || "Courier"; _this.underline = getInteger({ data: e.underline, defaultValue: 0, validate: function (e) { return 1 === e || 2 === e; } }); _this.underlinePeriod = getStringOption(e.underlinePeriod, ["all", "word"]); _this.use = e.use || ""; _this.usehref = e.usehref || ""; _this.weight = getStringOption(e.weight, ["normal", "bold"]); _this.extras = null; _this.fill = null; return _this; } template_Font.prototype[Vs] = function (e) { _super.prototype[Vs].call(this, e); this[yr].usedTypefaces.add(this.typeface); }; template_Font.prototype[rn] = function () { var e = toStyle(this, "fill"), t = e.color; if (t) if ("#000000" === t) delete e.color; else if (!t.startsWith("#")) { e.background = t; e.backgroundClip = "text"; e.color = "transparent"; } this.baselineShift && (e.verticalAlign = measureToString(this.baselineShift)); e.fontKerning = "none" === this.kerningMode ? "none" : "normal"; e.letterSpacing = measureToString(this.letterSpacing); if (0 !== this.lineThrough) { e.textDecoration = "line-through"; 2 === this.lineThrough && (e.textDecorationStyle = "double"); } if (0 !== this.overline) { e.textDecoration = "overline"; 2 === this.overline && (e.textDecorationStyle = "double"); } e.fontStyle = this.posture; e.fontSize = measureToString(.99 * this.size); setFontFamily(this, this, this[yr].fontFinder, e); if (0 !== this.underline) { e.textDecoration = "underline"; 2 === this.underline && (e.textDecorationStyle = "double"); } e.fontWeight = this.weight; return e; }; return template_Font; }(XFAObject)); var Format = /** @class */ (function (_super) { tslib_1.__extends(Format, _super); function Format(e) { var _this = _super.call(this, Jn, "format", !0) || this; _this.id = e.id || ""; _this.use = e.use || ""; _this.usehref = e.usehref || ""; _this.extras = null; _this.picture = null; return _this; } return Format; }(XFAObject)); var Handler = /** @class */ (function (_super) { tslib_1.__extends(Handler, _super); function Handler(e) { var _this = _super.call(this, Jn, "handler") || this; _this.id = e.id || ""; _this.type = getStringOption(e.type, ["optional", "required"]); _this.use = e.use || ""; _this.usehref = e.usehref || ""; return _this; } return Handler; }(StringObject)); var Hyphenation = /** @class */ (function (_super) { tslib_1.__extends(Hyphenation, _super); function Hyphenation(e) { var _this = _super.call(this, Jn, "hyphenation") || this; _this.excludeAllCaps = getInteger({ data: e.excludeAllCaps, defaultValue: 0, validate: function (e) { return 1 === e; } }); _this.excludeInitialCap = getInteger({ data: e.excludeInitialCap, defaultValue: 0, validate: function (e) { return 1 === e; } }); _this.hyphenate = getInteger({ data: e.hyphenate, defaultValue: 0, validate: function (e) { return 1 === e; } }); _this.id = e.id || ""; _this.pushCharacterCount = getInteger({ data: e.pushCharacterCount, defaultValue: 3, validate: function (e) { return e >= 0; } }); _this.remainCharacterCount = getInteger({ data: e.remainCharacterCount, defaultValue: 3, validate: function (e) { return e >= 0; } }); _this.use = e.use || ""; _this.usehref = e.usehref || ""; _this.wordCharacterCount = getInteger({ data: e.wordCharacterCount, defaultValue: 7, validate: function (e) { return e >= 0; } }); return _this; } return Hyphenation; }(XFAObject)); var Image = /** @class */ (function (_super) { tslib_1.__extends(Image, _super); function Image(e) { var _this = _super.call(this, Jn, "image") || this; _this.aspect = getStringOption(e.aspect, ["fit", "actual", "height", "none", "width"]); _this.contentType = e.contentType || ""; _this.href = e.href || ""; _this.id = e.id || ""; _this.name = e.name || ""; _this.transferEncoding = getStringOption(e.transferEncoding, ["base64", "none", "package"]); _this.use = e.use || ""; _this.usehref = e.usehref || ""; return _this; } Image.prototype[an] = function () { if (this.contentType && !vn.has(this.contentType.toLowerCase())) return HTMLResult.EMPTY; var e = this[yr].images && this[yr].images.get(this.href); if (!e && (this.href || !this[er])) return HTMLResult.EMPTY; e || "base64" !== this.transferEncoding || (e = stringToBytes(atob(this[er]))); if (!e) return HTMLResult.EMPTY; if (!this.contentType) { for (var _b = 0, Kn_1 = Kn; _b < Kn_1.length; _b++) { var _k = Kn_1[_b], t_404 = _k[0], i_332 = _k[1]; if (e.length > t_404.length && t_404.every((function (t, i) { return t === e[i]; }))) { this.contentType = i_332; break; } } if (!this.contentType) return HTMLResult.EMPTY; } var t = new Blob([e], { type: this.contentType }); var i; switch (this.aspect) { case "fit": case "actual": break; case "height": i = { height: "100%", objectFit: "fill" }; break; case "none": i = { width: "100%", height: "100%", objectFit: "fill" }; break; case "width": i = { width: "100%", objectFit: "fill" }; } var a = this[pr](); return HTMLResult.success({ name: "img", attributes: { class: ["xfaImage"], style: i, src: URL.createObjectURL(t), alt: a ? ariaLabel(a[pr]()) : null } }); }; return Image; }(StringObject)); var ImageEdit = /** @class */ (function (_super) { tslib_1.__extends(ImageEdit, _super); function ImageEdit(e) { var _this = _super.call(this, Jn, "imageEdit", !0) || this; _this.data = getStringOption(e.data, ["link", "embed"]); _this.id = e.id || ""; _this.use = e.use || ""; _this.usehref = e.usehref || ""; _this.border = null; _this.extras = null; _this.margin = null; return _this; } ImageEdit.prototype[an] = function (e) { return "embed" === this.data ? HTMLResult.success({ name: "div", children: [], attributes: {} }) : HTMLResult.EMPTY; }; return ImageEdit; }(XFAObject)); var Integer = /** @class */ (function (_super) { tslib_1.__extends(Integer, _super); function Integer(e) { var _this = _super.call(this, Jn, "integer") || this; _this.id = e.id || ""; _this.name = e.name || ""; _this.use = e.use || ""; _this.usehref = e.usehref || ""; return _this; } Integer.prototype[sr] = function () { var e = parseInt(this[er].trim(), 10); this[er] = isNaN(e) ? null : e; }; Integer.prototype[an] = function (e) { return valueToHtml(null !== this[er] ? this[er].toString() : ""); }; return Integer; }(ContentObject)); var Issuers = /** @class */ (function (_super) { tslib_1.__extends(Issuers, _super); function Issuers(e) { var _this = _super.call(this, Jn, "issuers", !0) || this; _this.id = e.id || ""; _this.type = getStringOption(e.type, ["optional", "required"]); _this.use = e.use || ""; _this.usehref = e.usehref || ""; _this.certificate = new XFAObjectArray; return _this; } return Issuers; }(XFAObject)); var Items = /** @class */ (function (_super) { tslib_1.__extends(Items, _super); function Items(e) { var _this = _super.call(this, Jn, "items", !0) || this; _this.id = e.id || ""; _this.name = e.name || ""; _this.presence = getStringOption(e.presence, ["visible", "hidden", "inactive", "invisible"]); _this.ref = e.ref || ""; _this.save = getInteger({ data: e.save, defaultValue: 0, validate: function (e) { return 1 === e; } }); _this.use = e.use || ""; _this.usehref = e.usehref || ""; _this.boolean = new XFAObjectArray; _this.date = new XFAObjectArray; _this.dateTime = new XFAObjectArray; _this.decimal = new XFAObjectArray; _this.exData = new XFAObjectArray; _this.float = new XFAObjectArray; _this.image = new XFAObjectArray; _this.integer = new XFAObjectArray; _this.text = new XFAObjectArray; _this.time = new XFAObjectArray; return _this; } Items.prototype[an] = function () { var e = []; for (var _b = 0, _k = this[Er](); _b < _k.length; _b++) { var t_405 = _k[_b]; e.push(t_405[en]()); } return HTMLResult.success(e); }; return Items; }(XFAObject)); var Keep = /** @class */ (function (_super) { tslib_1.__extends(Keep, _super); function Keep(e) { var _this = _super.call(this, Jn, "keep", !0) || this; _this.id = e.id || ""; var t = ["none", "contentArea", "pageArea"]; _this.intact = getStringOption(e.intact, t); _this.next = getStringOption(e.next, t); _this.previous = getStringOption(e.previous, t); _this.use = e.use || ""; _this.usehref = e.usehref || ""; _this.extras = null; return _this; } return Keep; }(XFAObject)); var KeyUsage = /** @class */ (function (_super) { tslib_1.__extends(KeyUsage, _super); function KeyUsage(e) { var _this = _super.call(this, Jn, "keyUsage") || this; var t = ["", "yes", "no"]; _this.crlSign = getStringOption(e.crlSign, t); _this.dataEncipherment = getStringOption(e.dataEncipherment, t); _this.decipherOnly = getStringOption(e.decipherOnly, t); _this.digitalSignature = getStringOption(e.digitalSignature, t); _this.encipherOnly = getStringOption(e.encipherOnly, t); _this.id = e.id || ""; _this.keyAgreement = getStringOption(e.keyAgreement, t); _this.keyCertSign = getStringOption(e.keyCertSign, t); _this.keyEncipherment = getStringOption(e.keyEncipherment, t); _this.nonRepudiation = getStringOption(e.nonRepudiation, t); _this.type = getStringOption(e.type, ["optional", "required"]); _this.use = e.use || ""; _this.usehref = e.usehref || ""; return _this; } return KeyUsage; }(XFAObject)); var Line = /** @class */ (function (_super) { tslib_1.__extends(Line, _super); function Line(e) { var _this = _super.call(this, Jn, "line", !0) || this; _this.hand = getStringOption(e.hand, ["even", "left", "right"]); _this.id = e.id || ""; _this.slope = getStringOption(e.slope, ["\\", "/"]); _this.use = e.use || ""; _this.usehref = e.usehref || ""; _this.edge = null; return _this; } Line.prototype[an] = function () { var _b, _k, _l, _m; var e = this[pr]()[pr](), t = this.edge || new Edge({}), i = t[rn](), a = Object.create(null), s = "visible" === t.presence ? t.thickness : 0; a.strokeWidth = measureToString(s); a.stroke = i.color; var r, n, o, g, c = "100%", h = "100%"; if (e.w <= s) { _b = ["50%", 0, "50%", "100%"], r = _b[0], n = _b[1], o = _b[2], g = _b[3]; c = a.strokeWidth; } else if (e.h <= s) { _k = [0, "50%", "100%", "50%"], r = _k[0], n = _k[1], o = _k[2], g = _k[3]; h = a.strokeWidth; } else "\\" === this.slope ? (_l = [0, 0, "100%", "100%"], r = _l[0], n = _l[1], o = _l[2], g = _l[3], _l) : (_m = [0, "100%", "100%", 0], r = _m[0], n = _m[1], o = _m[2], g = _m[3], _m); var l = { name: "svg", children: [{ name: "line", attributes: { xmlns: Hn, x1: r, y1: n, x2: o, y2: g, style: a } }], attributes: { xmlns: Hn, width: c, height: h, style: { overflow: "visible" } } }; if (hasMargin(e)) return HTMLResult.success({ name: "div", attributes: { style: { display: "inline", width: "100%", height: "100%" } }, children: [l] }); l.attributes.style.position = "absolute"; return HTMLResult.success(l); }; return Line; }(XFAObject)); var Linear = /** @class */ (function (_super) { tslib_1.__extends(Linear, _super); function Linear(e) { var _this = _super.call(this, Jn, "linear", !0) || this; _this.id = e.id || ""; _this.type = getStringOption(e.type, ["toRight", "toBottom", "toLeft", "toTop"]); _this.use = e.use || ""; _this.usehref = e.usehref || ""; _this.color = null; _this.extras = null; return _this; } Linear.prototype[rn] = function (e) { e = e ? e[rn]() : "#FFFFFF"; return "linear-gradient(".concat(this.type.replace(/([RBLT])/, " $1").toLowerCase(), ", ").concat(e, ", ").concat(this.color ? this.color[rn]() : "#000000", ")"); }; return Linear; }(XFAObject)); var LockDocument = /** @class */ (function (_super) { tslib_1.__extends(LockDocument, _super); function LockDocument(e) { var _this = _super.call(this, Jn, "lockDocument") || this; _this.id = e.id || ""; _this.type = getStringOption(e.type, ["optional", "required"]); _this.use = e.use || ""; _this.usehref = e.usehref || ""; return _this; } LockDocument.prototype[sr] = function () { this[er] = getStringOption(this[er], ["auto", "0", "1"]); }; return LockDocument; }(ContentObject)); var Manifest = /** @class */ (function (_super) { tslib_1.__extends(Manifest, _super); function Manifest(e) { var _this = _super.call(this, Jn, "manifest", !0) || this; _this.action = getStringOption(e.action, ["include", "all", "exclude"]); _this.id = e.id || ""; _this.name = e.name || ""; _this.use = e.use || ""; _this.usehref = e.usehref || ""; _this.extras = null; _this.ref = new XFAObjectArray; return _this; } return Manifest; }(XFAObject)); var Margin = /** @class */ (function (_super) { tslib_1.__extends(Margin, _super); function Margin(e) { var _this = _super.call(this, Jn, "margin", !0) || this; _this.bottomInset = getMeasurement(e.bottomInset, "0"); _this.id = e.id || ""; _this.leftInset = getMeasurement(e.leftInset, "0"); _this.rightInset = getMeasurement(e.rightInset, "0"); _this.topInset = getMeasurement(e.topInset, "0"); _this.use = e.use || ""; _this.usehref = e.usehref || ""; _this.extras = null; return _this; } Margin.prototype[rn] = function () { return { margin: measureToString(this.topInset) + " " + measureToString(this.rightInset) + " " + measureToString(this.bottomInset) + " " + measureToString(this.leftInset) }; }; return Margin; }(XFAObject)); var Mdp = /** @class */ (function (_super) { tslib_1.__extends(Mdp, _super); function Mdp(e) { var _this = _super.call(this, Jn, "mdp") || this; _this.id = e.id || ""; _this.permissions = getInteger({ data: e.permissions, defaultValue: 2, validate: function (e) { return 1 === e || 3 === e; } }); _this.signatureType = getStringOption(e.signatureType, ["filler", "author"]); _this.use = e.use || ""; _this.usehref = e.usehref || ""; return _this; } return Mdp; }(XFAObject)); var Medium = /** @class */ (function (_super) { tslib_1.__extends(Medium, _super); function Medium(e) { var _this = _super.call(this, Jn, "medium") || this; _this.id = e.id || ""; _this.imagingBBox = function getBBox(e) { var t = -1; if (!e) return { x: t, y: t, width: t, height: t }; var i = e.trim().split(/\s*,\s*/).map((function (e) { return getMeasurement(e, "-1"); })); if (i.length < 4 || i[2] < 0 || i[3] < 0) return { x: t, y: t, width: t, height: t }; var a = i[0], s = i[1], r = i[2], n = i[3]; return { x: a, y: s, width: r, height: n }; }(e.imagingBBox); _this.long = getMeasurement(e.long); _this.orientation = getStringOption(e.orientation, ["portrait", "landscape"]); _this.short = getMeasurement(e.short); _this.stock = e.stock || ""; _this.trayIn = getStringOption(e.trayIn, ["auto", "delegate", "pageFront"]); _this.trayOut = getStringOption(e.trayOut, ["auto", "delegate"]); _this.use = e.use || ""; _this.usehref = e.usehref || ""; return _this; } return Medium; }(XFAObject)); var Message = /** @class */ (function (_super) { tslib_1.__extends(Message, _super); function Message(e) { var _this = _super.call(this, Jn, "message", !0) || this; _this.id = e.id || ""; _this.use = e.use || ""; _this.usehref = e.usehref || ""; _this.text = new XFAObjectArray; return _this; } return Message; }(XFAObject)); var NumericEdit = /** @class */ (function (_super) { tslib_1.__extends(NumericEdit, _super); function NumericEdit(e) { var _this = _super.call(this, Jn, "numericEdit", !0) || this; _this.hScrollPolicy = getStringOption(e.hScrollPolicy, ["auto", "off", "on"]); _this.id = e.id || ""; _this.use = e.use || ""; _this.usehref = e.usehref || ""; _this.border = null; _this.comb = null; _this.extras = null; _this.margin = null; return _this; } NumericEdit.prototype[an] = function (e) { var _b; var t = toStyle(this, "border", "font", "margin"), i = this[pr]()[pr](), a = { name: "input", attributes: { type: "text", fieldId: i[nn], dataId: ((_b = i[tr]) === null || _b === void 0 ? void 0 : _b[nn]) || i[nn], class: ["xfaTextfield"], style: t, "aria-label": ariaLabel(i), "aria-required": !1 } }; if (isRequired(i)) { a.attributes["aria-required"] = !0; a.attributes.required = !0; } return HTMLResult.success({ name: "label", attributes: { class: ["xfaLabel"] }, children: [a] }); }; return NumericEdit; }(XFAObject)); var Occur = /** @class */ (function (_super) { tslib_1.__extends(Occur, _super); function Occur(e) { var _this = _super.call(this, Jn, "occur", !0) || this; _this.id = e.id || ""; _this.initial = "" !== e.initial ? getInteger({ data: e.initial, defaultValue: "", validate: function (e) { return !0; } }) : ""; _this.max = "" !== e.max ? getInteger({ data: e.max, defaultValue: 1, validate: function (e) { return !0; } }) : ""; _this.min = "" !== e.min ? getInteger({ data: e.min, defaultValue: 1, validate: function (e) { return !0; } }) : ""; _this.use = e.use || ""; _this.usehref = e.usehref || ""; _this.extras = null; return _this; } Occur.prototype[Vs] = function () { var e = this[pr](), t = this.min; "" === this.min && (this.min = e instanceof PageArea || e instanceof PageSet ? 0 : 1); "" === this.max && (this.max = "" === t ? e instanceof PageArea || e instanceof PageSet ? -1 : 1 : this.min); -1 !== this.max && this.max < this.min && (this.max = this.min); "" === this.initial && (this.initial = e instanceof Template ? 1 : this.min); }; return Occur; }(XFAObject)); var Oid = /** @class */ (function (_super) { tslib_1.__extends(Oid, _super); function Oid(e) { var _this = _super.call(this, Jn, "oid") || this; _this.id = e.id || ""; _this.name = e.name || ""; _this.use = e.use || ""; _this.usehref = e.usehref || ""; return _this; } return Oid; }(StringObject)); var Oids = /** @class */ (function (_super) { tslib_1.__extends(Oids, _super); function Oids(e) { var _this = _super.call(this, Jn, "oids", !0) || this; _this.id = e.id || ""; _this.type = getStringOption(e.type, ["optional", "required"]); _this.use = e.use || ""; _this.usehref = e.usehref || ""; _this.oid = new XFAObjectArray; return _this; } return Oids; }(XFAObject)); var Overflow = /** @class */ (function (_super) { tslib_1.__extends(Overflow, _super); function Overflow(e) { var _this = _super.call(this, Jn, "overflow") || this; _this.id = e.id || ""; _this.leader = e.leader || ""; _this.target = e.target || ""; _this.trailer = e.trailer || ""; _this.use = e.use || ""; _this.usehref = e.usehref || ""; return _this; } Overflow.prototype[Cr] = function () { if (!this[ar]) { var e_540 = this[pr](), t_406 = this[mr](), i_333 = t_406[Vr](this.target, e_540), a_263 = t_406[Vr](this.leader, e_540), s_178 = t_406[Vr](this.trailer, e_540); this[ar] = { target: (i_333 === null || i_333 === void 0 ? void 0 : i_333[0]) || null, leader: (a_263 === null || a_263 === void 0 ? void 0 : a_263[0]) || null, trailer: (s_178 === null || s_178 === void 0 ? void 0 : s_178[0]) || null, addLeader: !1, addTrailer: !1 }; } return this[ar]; }; return Overflow; }(XFAObject)); var PageArea = /** @class */ (function (_super) { tslib_1.__extends(PageArea, _super); function PageArea(e) { var _this = _super.call(this, Jn, "pageArea", !0) || this; _this.blankOrNotBlank = getStringOption(e.blankOrNotBlank, ["any", "blank", "notBlank"]); _this.id = e.id || ""; _this.initialNumber = getInteger({ data: e.initialNumber, defaultValue: 1, validate: function (e) { return !0; } }); _this.name = e.name || ""; _this.numbered = getInteger({ data: e.numbered, defaultValue: 1, validate: function (e) { return !0; } }); _this.oddOrEven = getStringOption(e.oddOrEven, ["any", "even", "odd"]); _this.pagePosition = getStringOption(e.pagePosition, ["any", "first", "last", "only", "rest"]); _this.relevant = getRelevant(e.relevant); _this.use = e.use || ""; _this.usehref = e.usehref || ""; _this.desc = null; _this.extras = null; _this.medium = null; _this.occur = null; _this.area = new XFAObjectArray; _this.contentArea = new XFAObjectArray; _this.draw = new XFAObjectArray; _this.exclGroup = new XFAObjectArray; _this.field = new XFAObjectArray; _this.subform = new XFAObjectArray; return _this; } PageArea.prototype[Lr] = function () { if (!this[ar]) { this[ar] = { numberOfUse: 0 }; return !0; } return !this.occur || -1 === this.occur.max || this[ar].numberOfUse < this.occur.max; }; PageArea.prototype[zs] = function () { delete this[ar]; }; PageArea.prototype[dr] = function () { this[ar] || (this[ar] = { numberOfUse: 0 }); var e = this[pr](); if ("orderedOccurrence" === e.relation && this[Lr]()) { this[ar].numberOfUse += 1; return this; } return e[dr](); }; PageArea.prototype[gr] = function () { return this[ar].space || { width: 0, height: 0 }; }; PageArea.prototype[an] = function () { this[ar] || (this[ar] = { numberOfUse: 1 }); var e = []; this[ar].children = e; var t = Object.create(null); if (this.medium && this.medium.short && this.medium.long) { t.width = measureToString(this.medium.short); t.height = measureToString(this.medium.long); this[ar].space = { width: this.medium.short, height: this.medium.long }; if ("landscape" === this.medium.orientation) { var e_541 = t.width; t.width = t.height; t.height = e_541; this[ar].space = { width: this.medium.long, height: this.medium.short }; } } else warn("XFA - No medium specified in pageArea: please file a bug."); this[Zs]({ filter: new Set(["area", "draw", "field", "subform"]), include: !0 }); this[Zs]({ filter: new Set(["contentArea"]), include: !0 }); return HTMLResult.success({ name: "div", children: e, attributes: { class: ["xfaPage"], id: this[nn], style: t, xfaName: this.name } }); }; return PageArea; }(XFAObject)); var PageSet = /** @class */ (function (_super) { tslib_1.__extends(PageSet, _super); function PageSet(e) { var _this = _super.call(this, Jn, "pageSet", !0) || this; _this.duplexImposition = getStringOption(e.duplexImposition, ["longEdge", "shortEdge"]); _this.id = e.id || ""; _this.name = e.name || ""; _this.relation = getStringOption(e.relation, ["orderedOccurrence", "duplexPaginated", "simplexPaginated"]); _this.relevant = getRelevant(e.relevant); _this.use = e.use || ""; _this.usehref = e.usehref || ""; _this.extras = null; _this.occur = null; _this.pageArea = new XFAObjectArray; _this.pageSet = new XFAObjectArray; return _this; } PageSet.prototype[zs] = function () { for (var _b = 0, _k = this.pageArea.children; _b < _k.length; _b++) { var e_542 = _k[_b]; e_542[zs](); } for (var _l = 0, _m = this.pageSet.children; _l < _m.length; _l++) { var e_543 = _m[_l]; e_543[zs](); } }; PageSet.prototype[Lr] = function () { return !this.occur || -1 === this.occur.max || this[ar].numberOfUse < this.occur.max; }; PageSet.prototype[dr] = function () { this[ar] || (this[ar] = { numberOfUse: 1, pageIndex: -1, pageSetIndex: -1 }); if ("orderedOccurrence" === this.relation) { if (this[ar].pageIndex + 1 < this.pageArea.children.length) { this[ar].pageIndex += 1; return this.pageArea.children[this[ar].pageIndex][dr](); } if (this[ar].pageSetIndex + 1 < this.pageSet.children.length) { this[ar].pageSetIndex += 1; return this.pageSet.children[this[ar].pageSetIndex][dr](); } if (this[Lr]()) { this[ar].numberOfUse += 1; this[ar].pageIndex = -1; this[ar].pageSetIndex = -1; return this[dr](); } var e_544 = this[pr](); if (e_544 instanceof PageSet) return e_544[dr](); this[zs](); return this[dr](); } var e = this[mr]()[ar].pageNumber, t = e % 2 == 0 ? "even" : "odd", i = 0 === e ? "first" : "rest"; var a = this.pageArea.children.find((function (e) { return e.oddOrEven === t && e.pagePosition === i; })); if (a) return a; a = this.pageArea.children.find((function (e) { return "any" === e.oddOrEven && e.pagePosition === i; })); if (a) return a; a = this.pageArea.children.find((function (e) { return "any" === e.oddOrEven && "any" === e.pagePosition; })); return a || this.pageArea.children[0]; }; return PageSet; }(XFAObject)); var Para = /** @class */ (function (_super) { tslib_1.__extends(Para, _super); function Para(e) { var _this = _super.call(this, Jn, "para", !0) || this; _this.hAlign = getStringOption(e.hAlign, ["left", "center", "justify", "justifyAll", "radix", "right"]); _this.id = e.id || ""; _this.lineHeight = e.lineHeight ? getMeasurement(e.lineHeight, "0pt") : ""; _this.marginLeft = e.marginLeft ? getMeasurement(e.marginLeft, "0pt") : ""; _this.marginRight = e.marginRight ? getMeasurement(e.marginRight, "0pt") : ""; _this.orphans = getInteger({ data: e.orphans, defaultValue: 0, validate: function (e) { return e >= 0; } }); _this.preserve = e.preserve || ""; _this.radixOffset = e.radixOffset ? getMeasurement(e.radixOffset, "0pt") : ""; _this.spaceAbove = e.spaceAbove ? getMeasurement(e.spaceAbove, "0pt") : ""; _this.spaceBelow = e.spaceBelow ? getMeasurement(e.spaceBelow, "0pt") : ""; _this.tabDefault = e.tabDefault ? getMeasurement(_this.tabDefault) : ""; _this.tabStops = (e.tabStops || "").trim().split(/\s+/).map((function (e, t) { return t % 2 == 1 ? getMeasurement(e) : e; })); _this.textIndent = e.textIndent ? getMeasurement(e.textIndent, "0pt") : ""; _this.use = e.use || ""; _this.usehref = e.usehref || ""; _this.vAlign = getStringOption(e.vAlign, ["top", "bottom", "middle"]); _this.widows = getInteger({ data: e.widows, defaultValue: 0, validate: function (e) { return e >= 0; } }); _this.hyphenation = null; return _this; } Para.prototype[rn] = function () { var e = toStyle(this, "hAlign"); "" !== this.marginLeft && (e.paddingLeft = measureToString(this.marginLeft)); "" !== this.marginRight && (e.paddingight = measureToString(this.marginRight)); "" !== this.spaceAbove && (e.paddingTop = measureToString(this.spaceAbove)); "" !== this.spaceBelow && (e.paddingBottom = measureToString(this.spaceBelow)); if ("" !== this.textIndent) { e.textIndent = measureToString(this.textIndent); fixTextIndent(e); } this.lineHeight > 0 && (e.lineHeight = measureToString(this.lineHeight)); "" !== this.tabDefault && (e.tabSize = measureToString(this.tabDefault)); this.tabStops.length; this.hyphenatation && Object.assign(e, this.hyphenatation[rn]()); return e; }; return Para; }(XFAObject)); var PasswordEdit = /** @class */ (function (_super) { tslib_1.__extends(PasswordEdit, _super); function PasswordEdit(e) { var _this = _super.call(this, Jn, "passwordEdit", !0) || this; _this.hScrollPolicy = getStringOption(e.hScrollPolicy, ["auto", "off", "on"]); _this.id = e.id || ""; _this.passwordChar = e.passwordChar || "*"; _this.use = e.use || ""; _this.usehref = e.usehref || ""; _this.border = null; _this.extras = null; _this.margin = null; return _this; } return PasswordEdit; }(XFAObject)); var template_Pattern = /** @class */ (function (_super) { tslib_1.__extends(template_Pattern, _super); function template_Pattern(e) { var _this = _super.call(this, Jn, "pattern", !0) || this; _this.id = e.id || ""; _this.type = getStringOption(e.type, ["crossHatch", "crossDiagonal", "diagonalLeft", "diagonalRight", "horizontal", "vertical"]); _this.use = e.use || ""; _this.usehref = e.usehref || ""; _this.color = null; _this.extras = null; return _this; } template_Pattern.prototype[rn] = function (e) { e = e ? e[rn]() : "#FFFFFF"; var t = this.color ? this.color[rn]() : "#000000", i = "repeating-linear-gradient", a = "".concat(e, ",").concat(e, " 5px,").concat(t, " 5px,").concat(t, " 10px"); switch (this.type) { case "crossHatch": return "".concat(i, "(to top,").concat(a, ") ").concat(i, "(to right,").concat(a, ")"); case "crossDiagonal": return "".concat(i, "(45deg,").concat(a, ") ").concat(i, "(-45deg,").concat(a, ")"); case "diagonalLeft": return "".concat(i, "(45deg,").concat(a, ")"); case "diagonalRight": return "".concat(i, "(-45deg,").concat(a, ")"); case "horizontal": return "".concat(i, "(to top,").concat(a, ")"); case "vertical": return "".concat(i, "(to right,").concat(a, ")"); } return ""; }; return template_Pattern; }(XFAObject)); var Picture = /** @class */ (function (_super) { tslib_1.__extends(Picture, _super); function Picture(e) { var _this = _super.call(this, Jn, "picture") || this; _this.id = e.id || ""; _this.use = e.use || ""; _this.usehref = e.usehref || ""; return _this; } return Picture; }(StringObject)); var Proto = /** @class */ (function (_super) { tslib_1.__extends(Proto, _super); function Proto(e) { var _this = _super.call(this, Jn, "proto", !0) || this; _this.appearanceFilter = new XFAObjectArray; _this.arc = new XFAObjectArray; _this.area = new XFAObjectArray; _this.assist = new XFAObjectArray; _this.barcode = new XFAObjectArray; _this.bindItems = new XFAObjectArray; _this.bookend = new XFAObjectArray; _this.boolean = new XFAObjectArray; _this.border = new XFAObjectArray; _this.break = new XFAObjectArray; _this.breakAfter = new XFAObjectArray; _this.breakBefore = new XFAObjectArray; _this.button = new XFAObjectArray; _this.calculate = new XFAObjectArray; _this.caption = new XFAObjectArray; _this.certificate = new XFAObjectArray; _this.certificates = new XFAObjectArray; _this.checkButton = new XFAObjectArray; _this.choiceList = new XFAObjectArray; _this.color = new XFAObjectArray; _this.comb = new XFAObjectArray; _this.connect = new XFAObjectArray; _this.contentArea = new XFAObjectArray; _this.corner = new XFAObjectArray; _this.date = new XFAObjectArray; _this.dateTime = new XFAObjectArray; _this.dateTimeEdit = new XFAObjectArray; _this.decimal = new XFAObjectArray; _this.defaultUi = new XFAObjectArray; _this.desc = new XFAObjectArray; _this.digestMethod = new XFAObjectArray; _this.digestMethods = new XFAObjectArray; _this.draw = new XFAObjectArray; _this.edge = new XFAObjectArray; _this.encoding = new XFAObjectArray; _this.encodings = new XFAObjectArray; _this.encrypt = new XFAObjectArray; _this.encryptData = new XFAObjectArray; _this.encryption = new XFAObjectArray; _this.encryptionMethod = new XFAObjectArray; _this.encryptionMethods = new XFAObjectArray; _this.event = new XFAObjectArray; _this.exData = new XFAObjectArray; _this.exObject = new XFAObjectArray; _this.exclGroup = new XFAObjectArray; _this.execute = new XFAObjectArray; _this.extras = new XFAObjectArray; _this.field = new XFAObjectArray; _this.fill = new XFAObjectArray; _this.filter = new XFAObjectArray; _this.float = new XFAObjectArray; _this.font = new XFAObjectArray; _this.format = new XFAObjectArray; _this.handler = new XFAObjectArray; _this.hyphenation = new XFAObjectArray; _this.image = new XFAObjectArray; _this.imageEdit = new XFAObjectArray; _this.integer = new XFAObjectArray; _this.issuers = new XFAObjectArray; _this.items = new XFAObjectArray; _this.keep = new XFAObjectArray; _this.keyUsage = new XFAObjectArray; _this.line = new XFAObjectArray; _this.linear = new XFAObjectArray; _this.lockDocument = new XFAObjectArray; _this.manifest = new XFAObjectArray; _this.margin = new XFAObjectArray; _this.mdp = new XFAObjectArray; _this.medium = new XFAObjectArray; _this.message = new XFAObjectArray; _this.numericEdit = new XFAObjectArray; _this.occur = new XFAObjectArray; _this.oid = new XFAObjectArray; _this.oids = new XFAObjectArray; _this.overflow = new XFAObjectArray; _this.pageArea = new XFAObjectArray; _this.pageSet = new XFAObjectArray; _this.para = new XFAObjectArray; _this.passwordEdit = new XFAObjectArray; _this.pattern = new XFAObjectArray; _this.picture = new XFAObjectArray; _this.radial = new XFAObjectArray; _this.reason = new XFAObjectArray; _this.reasons = new XFAObjectArray; _this.rectangle = new XFAObjectArray; _this.ref = new XFAObjectArray; _this.script = new XFAObjectArray; _this.setProperty = new XFAObjectArray; _this.signData = new XFAObjectArray; _this.signature = new XFAObjectArray; _this.signing = new XFAObjectArray; _this.solid = new XFAObjectArray; _this.speak = new XFAObjectArray; _this.stipple = new XFAObjectArray; _this.subform = new XFAObjectArray; _this.subformSet = new XFAObjectArray; _this.subjectDN = new XFAObjectArray; _this.subjectDNs = new XFAObjectArray; _this.submit = new XFAObjectArray; _this.text = new XFAObjectArray; _this.textEdit = new XFAObjectArray; _this.time = new XFAObjectArray; _this.timeStamp = new XFAObjectArray; _this.toolTip = new XFAObjectArray; _this.traversal = new XFAObjectArray; _this.traverse = new XFAObjectArray; _this.ui = new XFAObjectArray; _this.validate = new XFAObjectArray; _this.value = new XFAObjectArray; _this.variables = new XFAObjectArray; return _this; } return Proto; }(XFAObject)); var Radial = /** @class */ (function (_super) { tslib_1.__extends(Radial, _super); function Radial(e) { var _this = _super.call(this, Jn, "radial", !0) || this; _this.id = e.id || ""; _this.type = getStringOption(e.type, ["toEdge", "toCenter"]); _this.use = e.use || ""; _this.usehref = e.usehref || ""; _this.color = null; _this.extras = null; return _this; } Radial.prototype[rn] = function (e) { e = e ? e[rn]() : "#FFFFFF"; var t = this.color ? this.color[rn]() : "#000000"; return "radial-gradient(circle at center, ".concat("toEdge" === this.type ? "".concat(e, ",").concat(t) : "".concat(t, ",").concat(e), ")"); }; return Radial; }(XFAObject)); var Reason = /** @class */ (function (_super) { tslib_1.__extends(Reason, _super); function Reason(e) { var _this = _super.call(this, Jn, "reason") || this; _this.id = e.id || ""; _this.name = e.name || ""; _this.use = e.use || ""; _this.usehref = e.usehref || ""; return _this; } return Reason; }(StringObject)); var Reasons = /** @class */ (function (_super) { tslib_1.__extends(Reasons, _super); function Reasons(e) { var _this = _super.call(this, Jn, "reasons", !0) || this; _this.id = e.id || ""; _this.type = getStringOption(e.type, ["optional", "required"]); _this.use = e.use || ""; _this.usehref = e.usehref || ""; _this.reason = new XFAObjectArray; return _this; } return Reasons; }(XFAObject)); var Rectangle = /** @class */ (function (_super) { tslib_1.__extends(Rectangle, _super); function Rectangle(e) { var _this = _super.call(this, Jn, "rectangle", !0) || this; _this.hand = getStringOption(e.hand, ["even", "left", "right"]); _this.id = e.id || ""; _this.use = e.use || ""; _this.usehref = e.usehref || ""; _this.corner = new XFAObjectArray(4); _this.edge = new XFAObjectArray(4); _this.fill = null; return _this; } Rectangle.prototype[an] = function () { var _b; var e = this.edge.children.length ? this.edge.children[0] : new Edge({}), t = e[rn](), i = Object.create(null); "visible" === ((_b = this.fill) === null || _b === void 0 ? void 0 : _b.presence) ? Object.assign(i, this.fill[rn]()) : i.fill = "transparent"; i.strokeWidth = measureToString("visible" === e.presence ? e.thickness : 0); i.stroke = t.color; var a = (this.corner.children.length ? this.corner.children[0] : new Corner({}))[rn](), s = { name: "svg", children: [{ name: "rect", attributes: { xmlns: Hn, width: "100%", height: "100%", x: 0, y: 0, rx: a.radius, ry: a.radius, style: i } }], attributes: { xmlns: Hn, style: { overflow: "visible" }, width: "100%", height: "100%" } }; if (hasMargin(this[pr]()[pr]())) return HTMLResult.success({ name: "div", attributes: { style: { display: "inline", width: "100%", height: "100%" } }, children: [s] }); s.attributes.style.position = "absolute"; return HTMLResult.success(s); }; return Rectangle; }(XFAObject)); var RefElement = /** @class */ (function (_super) { tslib_1.__extends(RefElement, _super); function RefElement(e) { var _this = _super.call(this, Jn, "ref") || this; _this.id = e.id || ""; _this.use = e.use || ""; _this.usehref = e.usehref || ""; return _this; } return RefElement; }(StringObject)); var Script = /** @class */ (function (_super) { tslib_1.__extends(Script, _super); function Script(e) { var _this = _super.call(this, Jn, "script") || this; _this.binding = e.binding || ""; _this.contentType = e.contentType || ""; _this.id = e.id || ""; _this.name = e.name || ""; _this.runAt = getStringOption(e.runAt, ["client", "both", "server"]); _this.use = e.use || ""; _this.usehref = e.usehref || ""; return _this; } return Script; }(StringObject)); var SetProperty = /** @class */ (function (_super) { tslib_1.__extends(SetProperty, _super); function SetProperty(e) { var _this = _super.call(this, Jn, "setProperty") || this; _this.connection = e.connection || ""; _this.ref = e.ref || ""; _this.target = e.target || ""; return _this; } return SetProperty; }(XFAObject)); var SignData = /** @class */ (function (_super) { tslib_1.__extends(SignData, _super); function SignData(e) { var _this = _super.call(this, Jn, "signData", !0) || this; _this.id = e.id || ""; _this.operation = getStringOption(e.operation, ["sign", "clear", "verify"]); _this.ref = e.ref || ""; _this.target = e.target || ""; _this.use = e.use || ""; _this.usehref = e.usehref || ""; _this.filter = null; _this.manifest = null; return _this; } return SignData; }(XFAObject)); var Signature = /** @class */ (function (_super) { tslib_1.__extends(Signature, _super); function Signature(e) { var _this = _super.call(this, Jn, "signature", !0) || this; _this.id = e.id || ""; _this.type = getStringOption(e.type, ["PDF1.3", "PDF1.6"]); _this.use = e.use || ""; _this.usehref = e.usehref || ""; _this.border = null; _this.extras = null; _this.filter = null; _this.manifest = null; _this.margin = null; return _this; } return Signature; }(XFAObject)); var Signing = /** @class */ (function (_super) { tslib_1.__extends(Signing, _super); function Signing(e) { var _this = _super.call(this, Jn, "signing", !0) || this; _this.id = e.id || ""; _this.type = getStringOption(e.type, ["optional", "required"]); _this.use = e.use || ""; _this.usehref = e.usehref || ""; _this.certificate = new XFAObjectArray; return _this; } return Signing; }(XFAObject)); var Solid = /** @class */ (function (_super) { tslib_1.__extends(Solid, _super); function Solid(e) { var _this = _super.call(this, Jn, "solid", !0) || this; _this.id = e.id || ""; _this.use = e.use || ""; _this.usehref = e.usehref || ""; _this.extras = null; return _this; } Solid.prototype[rn] = function (e) { return e ? e[rn]() : "#FFFFFF"; }; return Solid; }(XFAObject)); var Speak = /** @class */ (function (_super) { tslib_1.__extends(Speak, _super); function Speak(e) { var _this = _super.call(this, Jn, "speak") || this; _this.disable = getInteger({ data: e.disable, defaultValue: 0, validate: function (e) { return 1 === e; } }); _this.id = e.id || ""; _this.priority = getStringOption(e.priority, ["custom", "caption", "name", "toolTip"]); _this.rid = e.rid || ""; _this.use = e.use || ""; _this.usehref = e.usehref || ""; return _this; } return Speak; }(StringObject)); var Stipple = /** @class */ (function (_super) { tslib_1.__extends(Stipple, _super); function Stipple(e) { var _this = _super.call(this, Jn, "stipple", !0) || this; _this.id = e.id || ""; _this.rate = getInteger({ data: e.rate, defaultValue: 50, validate: function (e) { return e >= 0 && e <= 100; } }); _this.use = e.use || ""; _this.usehref = e.usehref || ""; _this.color = null; _this.extras = null; return _this; } Stipple.prototype[rn] = function (e) { var t = this.rate / 100; return Util.makeHexColor(Math.round(e.value.r * (1 - t) + this.value.r * t), Math.round(e.value.g * (1 - t) + this.value.g * t), Math.round(e.value.b * (1 - t) + this.value.b * t)); }; return Stipple; }(XFAObject)); var Subform = /** @class */ (function (_super) { tslib_1.__extends(Subform, _super); function Subform(e) { var _this = _super.call(this, Jn, "subform", !0) || this; _this.access = getStringOption(e.access, ["open", "nonInteractive", "protected", "readOnly"]); _this.allowMacro = getInteger({ data: e.allowMacro, defaultValue: 0, validate: function (e) { return 1 === e; } }); _this.anchorType = getStringOption(e.anchorType, ["topLeft", "bottomCenter", "bottomLeft", "bottomRight", "middleCenter", "middleLeft", "middleRight", "topCenter", "topRight"]); _this.colSpan = getInteger({ data: e.colSpan, defaultValue: 1, validate: function (e) { return e >= 1 || -1 === e; } }); _this.columnWidths = (e.columnWidths || "").trim().split(/\s+/).map((function (e) { return "-1" === e ? -1 : getMeasurement(e); })); _this.h = e.h ? getMeasurement(e.h) : ""; _this.hAlign = getStringOption(e.hAlign, ["left", "center", "justify", "justifyAll", "radix", "right"]); _this.id = e.id || ""; _this.layout = getStringOption(e.layout, ["position", "lr-tb", "rl-row", "rl-tb", "row", "table", "tb"]); _this.locale = e.locale || ""; _this.maxH = getMeasurement(e.maxH, "0pt"); _this.maxW = getMeasurement(e.maxW, "0pt"); _this.mergeMode = getStringOption(e.mergeMode, ["consumeData", "matchTemplate"]); _this.minH = getMeasurement(e.minH, "0pt"); _this.minW = getMeasurement(e.minW, "0pt"); _this.name = e.name || ""; _this.presence = getStringOption(e.presence, ["visible", "hidden", "inactive", "invisible"]); _this.relevant = getRelevant(e.relevant); _this.restoreState = getStringOption(e.restoreState, ["manual", "auto"]); _this.scope = getStringOption(e.scope, ["name", "none"]); _this.use = e.use || ""; _this.usehref = e.usehref || ""; _this.w = e.w ? getMeasurement(e.w) : ""; _this.x = getMeasurement(e.x, "0pt"); _this.y = getMeasurement(e.y, "0pt"); _this.assist = null; _this.bind = null; _this.bookend = null; _this.border = null; _this.break = null; _this.calculate = null; _this.desc = null; _this.extras = null; _this.keep = null; _this.margin = null; _this.occur = null; _this.overflow = null; _this.pageSet = null; _this.para = null; _this.traversal = null; _this.validate = null; _this.variables = null; _this.area = new XFAObjectArray; _this.breakAfter = new XFAObjectArray; _this.breakBefore = new XFAObjectArray; _this.connect = new XFAObjectArray; _this.draw = new XFAObjectArray; _this.event = new XFAObjectArray; _this.exObject = new XFAObjectArray; _this.exclGroup = new XFAObjectArray; _this.field = new XFAObjectArray; _this.proto = new XFAObjectArray; _this.setProperty = new XFAObjectArray; _this.subform = new XFAObjectArray; _this.subformSet = new XFAObjectArray; return _this; } Subform.prototype[fr] = function () { var e = this[pr](); return e instanceof SubformSet ? e[fr]() : e; }; Subform.prototype[kr] = function () { return !0; }; Subform.prototype[Mr] = function () { return this.layout.endsWith("-tb") && 0 === this[ar].attempt && this[ar].numberInLine > 0 || this[pr]()[Mr](); }; Subform.prototype[ur] = function () { return tslib_1.__generator(this, function (_b) { switch (_b.label) { case 0: return [5 /*yield**/, tslib_1.__values(getContainedChildren(this))]; case 1: _b.sent(); return [2 /*return*/]; } }); }; Subform.prototype[rr] = function () { return flushHTML(this); }; Subform.prototype[Xs] = function (e, t) { addHTML(this, e, t); }; Subform.prototype[gr] = function () { return getAvailableSpace(this); }; Subform.prototype[xr] = function () { var _b; var e = this[fr](); if (!e[xr]()) return !1; if (void 0 !== this[ar]._isSplittable) return this[ar]._isSplittable; if ("position" === this.layout || this.layout.includes("row")) { this[ar]._isSplittable = !1; return !1; } if (this.keep && "none" !== this.keep.intact) { this[ar]._isSplittable = !1; return !1; } if (((_b = e.layout) === null || _b === void 0 ? void 0 : _b.endsWith("-tb")) && 0 !== e[ar].numberInLine) return !1; this[ar]._isSplittable = !0; return !0; }; Subform.prototype[an] = function (e) { var _b; setTabIndex(this); if (this.break) { if ("auto" !== this.break.after || "" !== this.break.afterTarget) { var e_545 = new BreakAfter({ targetType: this.break.after, target: this.break.afterTarget, startNew: this.break.startNew.toString() }); e_545[yr] = this[yr]; this[js](e_545); this.breakAfter.push(e_545); } if ("auto" !== this.break.before || "" !== this.break.beforeTarget) { var e_546 = new BreakBefore({ targetType: this.break.before, target: this.break.beforeTarget, startNew: this.break.startNew.toString() }); e_546[yr] = this[yr]; this[js](e_546); this.breakBefore.push(e_546); } if ("" !== this.break.overflowTarget) { var e_547 = new Overflow({ target: this.break.overflowTarget, leader: this.break.overflowLeader, trailer: this.break.overflowTrailer }); e_547[yr] = this[yr]; this[js](e_547); this.overflow.push(e_547); } this[Xr](this.break); this.break = null; } if ("hidden" === this.presence || "inactive" === this.presence) return HTMLResult.EMPTY; (this.breakBefore.children.length > 1 || this.breakAfter.children.length > 1) && warn("XFA - Several breakBefore or breakAfter in subforms: please file a bug."); if (this.breakBefore.children.length >= 1) { var e_548 = this.breakBefore.children[0]; if (handleBreak(e_548)) return HTMLResult.breakNode(e_548); } if ((_b = this[ar]) === null || _b === void 0 ? void 0 : _b.afterBreakAfter) return HTMLResult.EMPTY; fixDimensions(this); var t = [], i = { id: this[nn], class: [] }; setAccess(this, i.class); this[ar] || (this[ar] = Object.create(null)); Object.assign(this[ar], { children: t, line: null, attributes: i, attempt: 0, numberInLine: 0, availableSpace: { width: Math.min(this.w || 1 / 0, e.width), height: Math.min(this.h || 1 / 0, e.height) }, width: 0, height: 0, prevHeight: 0, currentWidth: 0 }); var a = this[mr](), s = a[ar].noLayoutFailure, r = this[xr](); r || setFirstUnsplittable(this); if (!checkDimensions(this, e)) return HTMLResult.FAILURE; var n = new Set(["area", "draw", "exclGroup", "field", "subform", "subformSet"]); if (this.layout.includes("row")) { var e_549 = this[fr]().columnWidths; if (Array.isArray(e_549) && e_549.length > 0) { this[ar].columnWidths = e_549; this[ar].currentColumn = 0; } } var o = toStyle(this, "anchorType", "dimensions", "position", "presence", "border", "margin", "hAlign"), g = ["xfaSubform"], c = layoutClass(this); c && g.push(c); i.style = o; i.class = g; this.name && (i.xfaName = this.name); if (this.overflow) { var t_407 = this.overflow[Cr](); if (t_407.addLeader) { t_407.addLeader = !1; handleOverflow(this, t_407.leader, e); } } this[Wr](); var h = "lr-tb" === this.layout || "rl-tb" === this.layout, l = h ? 2 : 1; for (; this[ar].attempt < l; this[ar].attempt++) { h && 1 === this[ar].attempt && (this[ar].numberInLine = 0); var e_550 = this[Zs]({ filter: n, include: !0 }); if (e_550.success) break; if (e_550.isBreak()) { this[Pr](); return e_550; } if (h && 0 === this[ar].attempt && 0 === this[ar].numberInLine && !a[ar].noLayoutFailure) { this[ar].attempt = l; break; } } this[Pr](); r || unsetFirstUnsplittable(this); a[ar].noLayoutFailure = s; if (this[ar].attempt === l) { this.overflow && (this[mr]()[ar].overflowNode = this.overflow); r || delete this[ar]; return HTMLResult.FAILURE; } if (this.overflow) { var t_408 = this.overflow[Cr](); if (t_408.addTrailer) { t_408.addTrailer = !1; handleOverflow(this, t_408.trailer, e); } } var C = 0, Q = 0; if (this.margin) { C = this.margin.leftInset + this.margin.rightInset; Q = this.margin.topInset + this.margin.bottomInset; } var E = Math.max(this[ar].width + C, this.w || 0), u = Math.max(this[ar].height + Q, this.h || 0), d = [this.x, this.y, E, u]; "" === this.w && (o.width = measureToString(E)); "" === this.h && (o.height = measureToString(u)); if (("0px" === o.width || "0px" === o.height) && 0 === t.length) return HTMLResult.EMPTY; var f = { name: "div", attributes: i, children: t }; applyAssist(this, i); var p = HTMLResult.success(createWrapper(this, f), d); if (this.breakAfter.children.length >= 1) { var e_551 = this.breakAfter.children[0]; if (handleBreak(e_551)) { this[ar].afterBreakAfter = p; return HTMLResult.breakNode(e_551); } } delete this[ar]; return p; }; return Subform; }(XFAObject)); var SubformSet = /** @class */ (function (_super) { tslib_1.__extends(SubformSet, _super); function SubformSet(e) { var _this = _super.call(this, Jn, "subformSet", !0) || this; _this.id = e.id || ""; _this.name = e.name || ""; _this.relation = getStringOption(e.relation, ["ordered", "choice", "unordered"]); _this.relevant = getRelevant(e.relevant); _this.use = e.use || ""; _this.usehref = e.usehref || ""; _this.bookend = null; _this.break = null; _this.desc = null; _this.extras = null; _this.occur = null; _this.overflow = null; _this.breakAfter = new XFAObjectArray; _this.breakBefore = new XFAObjectArray; _this.subform = new XFAObjectArray; _this.subformSet = new XFAObjectArray; return _this; } SubformSet.prototype[ur] = function () { return tslib_1.__generator(this, function (_b) { switch (_b.label) { case 0: return [5 /*yield**/, tslib_1.__values(getContainedChildren(this))]; case 1: _b.sent(); return [2 /*return*/]; } }); }; SubformSet.prototype[fr] = function () { var e = this[pr](); for (; !(e instanceof Subform);) e = e[pr](); return e; }; SubformSet.prototype[kr] = function () { return !0; }; return SubformSet; }(XFAObject)); var SubjectDN = /** @class */ (function (_super) { tslib_1.__extends(SubjectDN, _super); function SubjectDN(e) { var _this = _super.call(this, Jn, "subjectDN") || this; _this.delimiter = e.delimiter || ","; _this.id = e.id || ""; _this.name = e.name || ""; _this.use = e.use || ""; _this.usehref = e.usehref || ""; return _this; } SubjectDN.prototype[sr] = function () { this[er] = new Map(this[er].split(this.delimiter).map((function (e) { (e = e.split("=", 2))[0] = e[0].trim(); return e; }))); }; return SubjectDN; }(ContentObject)); var SubjectDNs = /** @class */ (function (_super) { tslib_1.__extends(SubjectDNs, _super); function SubjectDNs(e) { var _this = _super.call(this, Jn, "subjectDNs", !0) || this; _this.id = e.id || ""; _this.type = getStringOption(e.type, ["optional", "required"]); _this.use = e.use || ""; _this.usehref = e.usehref || ""; _this.subjectDN = new XFAObjectArray; return _this; } return SubjectDNs; }(XFAObject)); var Submit = /** @class */ (function (_super) { tslib_1.__extends(Submit, _super); function Submit(e) { var _this = _super.call(this, Jn, "submit", !0) || this; _this.embedPDF = getInteger({ data: e.embedPDF, defaultValue: 0, validate: function (e) { return 1 === e; } }); _this.format = getStringOption(e.format, ["xdp", "formdata", "pdf", "urlencoded", "xfd", "xml"]); _this.id = e.id || ""; _this.target = e.target || ""; _this.textEncoding = getKeyword({ data: e.textEncoding ? e.textEncoding.toLowerCase() : "", defaultValue: "", validate: function (e) { return ["utf-8", "big-five", "fontspecific", "gbk", "gb-18030", "gb-2312", "ksc-5601", "none", "shift-jis", "ucs-2", "utf-16"].includes(e) || e.match(/iso-8859-\d{2}/); } }); _this.use = e.use || ""; _this.usehref = e.usehref || ""; _this.xdpContent = e.xdpContent || ""; _this.encrypt = null; _this.encryptData = new XFAObjectArray; _this.signData = new XFAObjectArray; return _this; } return Submit; }(XFAObject)); var Template = /** @class */ (function (_super) { tslib_1.__extends(Template, _super); function Template(e) { var _this = _super.call(this, Jn, "template", !0) || this; _this.baseProfile = getStringOption(e.baseProfile, ["full", "interactiveForms"]); _this.extras = null; _this.subform = new XFAObjectArray; return _this; } Template.prototype[sr] = function () { 0 === this.subform.children.length && warn("XFA - No subforms in template node."); this.subform.children.length >= 2 && warn("XFA - Several subforms in template node: please file a bug."); this[An] = 5e3; }; Template.prototype[xr] = function () { return !0; }; Template.prototype[Vr] = function (e, t) { return e.startsWith("#") ? [this[br].get(e.slice(1))] : searchNode(this, t, e, !0, !0); }; Template.prototype[tn] = function () { var e, t, i, a, s, r, e_552, n, o, g, c, h, l, C, _loop_4, this_2, state_2; var _b, _k, _l; return tslib_1.__generator(this, function (_m) { switch (_m.label) { case 0: if (!this.subform.children.length) return [2 /*return*/, HTMLResult.success({ name: "div", children: [] })]; this[ar] = { overflowNode: null, firstUnsplittable: null, currentContentArea: null, currentPageArea: null, noLayoutFailure: !1, pageNumber: 1, pagePosition: "first", oddOrEven: "odd", blankOrNotBlank: "nonBlank", paraStack: [] }; e = this.subform.children[0]; e.pageSet[zs](); t = e.pageSet.pageArea.children, i = { name: "div", children: [] }; a = null, s = null, r = null; if (e.breakBefore.children.length >= 1) { s = e.breakBefore.children[0]; r = s.target; } else if (e.subform.children.length >= 1 && e.subform.children[0].breakBefore.children.length >= 1) { s = e.subform.children[0].breakBefore.children[0]; r = s.target; } else if ((_b = e.break) === null || _b === void 0 ? void 0 : _b.beforeTarget) { s = e.break; r = s.beforeTarget; } else if (e.subform.children.length >= 1 && ((_k = e.subform.children[0].break) === null || _k === void 0 ? void 0 : _k.beforeTarget)) { s = e.subform.children[0].break; r = s.beforeTarget; } if (s) { e_552 = this[Vr](r, s[pr]()); if (e_552 instanceof PageArea) { a = e_552; s[ar] = {}; } } a || (a = t[0]); a[ar] = { numberOfUse: 1 }; n = a[pr](); n[ar] = { numberOfUse: 1, pageIndex: n.pageArea.children.indexOf(a), pageSetIndex: 0 }; g = null, c = null, h = !0, l = 0, C = 0; _loop_4 = function () { var t_409, s_179, r_142, flush, t_410, a_264, a_265, n_96, l_26, e_553, e_554, i_334, a_266, r_143, e_555; return tslib_1.__generator(this, function (_o) { switch (_o.label) { case 0: if (h) l = 0; else { i.children.pop(); if (3 == ++l) { warn("XFA - Something goes wrong: please file a bug."); return [2 /*return*/, { value: i }]; } } o = null; this_2[ar].currentPageArea = a; t_409 = a[an]().html; i.children.push(t_409); if (g) { this_2[ar].noLayoutFailure = !0; t_409.children.push(g[an](a[ar].space).html); g = null; } if (c) { this_2[ar].noLayoutFailure = !0; t_409.children.push(c[an](a[ar].space).html); c = null; } s_179 = a.contentArea.children, r_142 = t_409.children.filter((function (e) { return e.attributes.class.includes("xfaContentarea"); })); h = !1; this_2[ar].firstUnsplittable = null; this_2[ar].noLayoutFailure = !1; flush = function (t) { var _b; var i = e[rr](); if (i) { h || (h = ((_b = i.children) === null || _b === void 0 ? void 0 : _b.length) > 0); r_142[t].children.push(i); } }; for (t_410 = C, a_264 = s_179.length; t_410 < a_264; t_410++) { a_265 = this_2[ar].currentContentArea = s_179[t_410], n_96 = { width: a_265.w, height: a_265.h }; C = 0; if (g) { r_142[t_410].children.push(g[an](n_96).html); g = null; } if (c) { r_142[t_410].children.push(c[an](n_96).html); c = null; } l_26 = e[an](n_96); if (l_26.success) { if (l_26.html) { h || (h = ((_l = l_26.html.children) === null || _l === void 0 ? void 0 : _l.length) > 0); r_142[t_410].children.push(l_26.html); } else !h && i.children.length > 1 && i.children.pop(); return [2 /*return*/, { value: i }]; } if (l_26.isBreak()) { e_553 = l_26.breakNode; flush(t_410); if ("auto" === e_553.targetType) continue; if (e_553.leader) { g = this_2[Vr](e_553.leader, e_553[pr]()); g = g ? g[0] : null; } if (e_553.trailer) { c = this_2[Vr](e_553.trailer, e_553[pr]()); c = c ? c[0] : null; } if ("pageArea" === e_553.targetType) { o = e_553[ar].target; t_410 = 1 / 0; } else if (e_553[ar].target) { o = e_553[ar].target; C = e_553[ar].index + 1; t_410 = 1 / 0; } else t_410 = e_553[ar].index; } else if (this_2[ar].overflowNode) { e_554 = this_2[ar].overflowNode; this_2[ar].overflowNode = null; i_334 = e_554[Cr](), a_266 = i_334.target; i_334.addLeader = null !== i_334.leader; i_334.addTrailer = null !== i_334.trailer; flush(t_410); r_143 = t_410; t_410 = 1 / 0; if (a_266 instanceof PageArea) o = a_266; else if (a_266 instanceof ContentArea) { e_555 = s_179.indexOf(a_266); if (-1 !== e_555) e_555 > r_143 ? t_410 = e_555 - 1 : C = e_555; else { o = a_266[pr](); C = o.contentArea.children.indexOf(a_266); } } } else flush(t_410); } this_2[ar].pageNumber += 1; o && (o[Lr]() ? o[ar].numberOfUse += 1 : o = null); a = o || a[dr](); return [4 /*yield*/, null]; case 1: _o.sent(); return [2 /*return*/]; } }); }; this_2 = this; _m.label = 1; case 1: return [5 /*yield**/, _loop_4()]; case 2: state_2 = _m.sent(); if (typeof state_2 === "object") return [2 /*return*/, state_2.value]; _m.label = 3; case 3: return [3 /*break*/, 1]; case 4: return [2 /*return*/]; } }); }; return Template; }(XFAObject)); var Text = /** @class */ (function (_super) { tslib_1.__extends(Text, _super); function Text(e) { var _this = _super.call(this, Jn, "text") || this; _this.id = e.id || ""; _this.maxChars = getInteger({ data: e.maxChars, defaultValue: 0, validate: function (e) { return e >= 0; } }); _this.name = e.name || ""; _this.rid = e.rid || ""; _this.use = e.use || ""; _this.usehref = e.usehref || ""; return _this; } Text.prototype[Ws] = function () { return !0; }; Text.prototype[Kr] = function (e) { if (e[Hr] === gn.xhtml.id) { this[er] = e; return !0; } warn("XFA - Invalid content in Text: ".concat(e[Yr], ".")); return !1; }; Text.prototype[qr] = function (e) { this[er] instanceof XFAObject || _super.prototype[qr].call(this, e); }; Text.prototype[sr] = function () { "string" == typeof this[er] && (this[er] = this[er].replaceAll("\r\n", "\n")); }; Text.prototype[Cr] = function () { return "string" == typeof this[er] ? this[er].split(/[\u2029\u2028\n]/).reduce((function (e, t) { t && e.push(t); return e; }), []).join("\n") : this[er][en](); }; Text.prototype[an] = function (e) { if ("string" == typeof this[er]) { var e_556 = valueToHtml(this[er]).html; if (this[er].includes("\u2029")) { e_556.name = "div"; e_556.children = []; this[er].split("\u2029").map((function (e) { return e.split(/[\u2028\n]/).reduce((function (e, t) { e.push({ name: "span", value: t }, { name: "br" }); return e; }), []); })).forEach((function (t) { e_556.children.push({ name: "p", children: t }); })); } else if (/[\u2028\n]/.test(this[er])) { e_556.name = "div"; e_556.children = []; this[er].split(/[\u2028\n]/).forEach((function (t) { e_556.children.push({ name: "span", value: t }, { name: "br" }); })); } return HTMLResult.success(e_556); } return this[er][an](e); }; return Text; }(ContentObject)); var TextEdit = /** @class */ (function (_super) { tslib_1.__extends(TextEdit, _super); function TextEdit(e) { var _this = _super.call(this, Jn, "textEdit", !0) || this; _this.allowRichText = getInteger({ data: e.allowRichText, defaultValue: 0, validate: function (e) { return 1 === e; } }); _this.hScrollPolicy = getStringOption(e.hScrollPolicy, ["auto", "off", "on"]); _this.id = e.id || ""; _this.multiLine = getInteger({ data: e.multiLine, defaultValue: "", validate: function (e) { return 0 === e || 1 === e; } }); _this.use = e.use || ""; _this.usehref = e.usehref || ""; _this.vScrollPolicy = getStringOption(e.vScrollPolicy, ["auto", "off", "on"]); _this.border = null; _this.comb = null; _this.extras = null; _this.margin = null; return _this; } TextEdit.prototype[an] = function (e) { var _b, _k; var t = toStyle(this, "border", "font", "margin"); var i; var a = this[pr]()[pr](); "" === this.multiLine && (this.multiLine = a instanceof Draw ? 1 : 0); i = 1 === this.multiLine ? { name: "textarea", attributes: { dataId: ((_b = a[tr]) === null || _b === void 0 ? void 0 : _b[nn]) || a[nn], fieldId: a[nn], class: ["xfaTextfield"], style: t, "aria-label": ariaLabel(a), "aria-required": !1 } } : { name: "input", attributes: { type: "text", dataId: ((_k = a[tr]) === null || _k === void 0 ? void 0 : _k[nn]) || a[nn], fieldId: a[nn], class: ["xfaTextfield"], style: t, "aria-label": ariaLabel(a), "aria-required": !1 } }; if (isRequired(a)) { i.attributes["aria-required"] = !0; i.attributes.required = !0; } return HTMLResult.success({ name: "label", attributes: { class: ["xfaLabel"] }, children: [i] }); }; return TextEdit; }(XFAObject)); var Time = /** @class */ (function (_super) { tslib_1.__extends(Time, _super); function Time(e) { var _this = _super.call(this, Jn, "time") || this; _this.id = e.id || ""; _this.name = e.name || ""; _this.use = e.use || ""; _this.usehref = e.usehref || ""; return _this; } Time.prototype[sr] = function () { var e = this[er].trim(); this[er] = e ? new Date(e) : null; }; Time.prototype[an] = function (e) { return valueToHtml(this[er] ? this[er].toString() : ""); }; return Time; }(StringObject)); var TimeStamp = /** @class */ (function (_super) { tslib_1.__extends(TimeStamp, _super); function TimeStamp(e) { var _this = _super.call(this, Jn, "timeStamp") || this; _this.id = e.id || ""; _this.server = e.server || ""; _this.type = getStringOption(e.type, ["optional", "required"]); _this.use = e.use || ""; _this.usehref = e.usehref || ""; return _this; } return TimeStamp; }(XFAObject)); var ToolTip = /** @class */ (function (_super) { tslib_1.__extends(ToolTip, _super); function ToolTip(e) { var _this = _super.call(this, Jn, "toolTip") || this; _this.id = e.id || ""; _this.rid = e.rid || ""; _this.use = e.use || ""; _this.usehref = e.usehref || ""; return _this; } return ToolTip; }(StringObject)); var Traversal = /** @class */ (function (_super) { tslib_1.__extends(Traversal, _super); function Traversal(e) { var _this = _super.call(this, Jn, "traversal", !0) || this; _this.id = e.id || ""; _this.use = e.use || ""; _this.usehref = e.usehref || ""; _this.extras = null; _this.traverse = new XFAObjectArray; return _this; } return Traversal; }(XFAObject)); var Traverse = /** @class */ (function (_super) { tslib_1.__extends(Traverse, _super); function Traverse(e) { var _this = _super.call(this, Jn, "traverse", !0) || this; _this.id = e.id || ""; _this.operation = getStringOption(e.operation, ["next", "back", "down", "first", "left", "right", "up"]); _this.ref = e.ref || ""; _this.use = e.use || ""; _this.usehref = e.usehref || ""; _this.extras = null; _this.script = null; return _this; } Object.defineProperty(Traverse.prototype, "name", { get: function () { return this.operation; }, enumerable: false, configurable: true }); Traverse.prototype[Ur] = function () { return !1; }; return Traverse; }(XFAObject)); var Ui = /** @class */ (function (_super) { tslib_1.__extends(Ui, _super); function Ui(e) { var _this = _super.call(this, Jn, "ui", !0) || this; _this.id = e.id || ""; _this.use = e.use || ""; _this.usehref = e.usehref || ""; _this.extras = null; _this.picture = null; _this.barcode = null; _this.button = null; _this.checkButton = null; _this.choiceList = null; _this.dateTimeEdit = null; _this.defaultUi = null; _this.imageEdit = null; _this.numericEdit = null; _this.passwordEdit = null; _this.signature = null; _this.textEdit = null; return _this; } Ui.prototype[Cr] = function () { if (void 0 === this[ar]) { for (var _b = 0, _k = Object.getOwnPropertyNames(this); _b < _k.length; _b++) { var e_557 = _k[_b]; if ("extras" === e_557 || "picture" === e_557) continue; var t_411 = this[e_557]; if (t_411 instanceof XFAObject) { this[ar] = t_411; return t_411; } } this[ar] = null; } return this[ar]; }; Ui.prototype[an] = function (e) { var t = this[Cr](); return t ? t[an](e) : HTMLResult.EMPTY; }; return Ui; }(XFAObject)); var Validate = /** @class */ (function (_super) { tslib_1.__extends(Validate, _super); function Validate(e) { var _this = _super.call(this, Jn, "validate", !0) || this; _this.formatTest = getStringOption(e.formatTest, ["warning", "disabled", "error"]); _this.id = e.id || ""; _this.nullTest = getStringOption(e.nullTest, ["disabled", "error", "warning"]); _this.scriptTest = getStringOption(e.scriptTest, ["error", "disabled", "warning"]); _this.use = e.use || ""; _this.usehref = e.usehref || ""; _this.extras = null; _this.message = null; _this.picture = null; _this.script = null; return _this; } return Validate; }(XFAObject)); var Value = /** @class */ (function (_super) { tslib_1.__extends(Value, _super); function Value(e) { var _this = _super.call(this, Jn, "value", !0) || this; _this.id = e.id || ""; _this.override = getInteger({ data: e.override, defaultValue: 0, validate: function (e) { return 1 === e; } }); _this.relevant = getRelevant(e.relevant); _this.use = e.use || ""; _this.usehref = e.usehref || ""; _this.arc = null; _this.boolean = null; _this.date = null; _this.dateTime = null; _this.decimal = null; _this.exData = null; _this.float = null; _this.image = null; _this.integer = null; _this.line = null; _this.rectangle = null; _this.text = null; _this.time = null; return _this; } Value.prototype[$r] = function (e) { var _b; var t = this[pr](); if (t instanceof Field && ((_b = t.ui) === null || _b === void 0 ? void 0 : _b.imageEdit)) { if (!this.image) { this.image = new Image({}); this[js](this.image); } this.image[er] = e[er]; return; } var i = e[Yr]; if (null === this[i]) { for (var _k = 0, _l = Object.getOwnPropertyNames(this); _k < _l.length; _k++) { var e_558 = _l[_k]; var t_412 = this[e_558]; if (t_412 instanceof XFAObject) { this[e_558] = null; this[Xr](t_412); } } this[e[Yr]] = e; this[js](e); } else this[i][er] = e[er]; }; Value.prototype[en] = function () { if (this.exData) return "string" == typeof this.exData[er] ? this.exData[er].trim() : this.exData[er][en]().trim(); for (var _b = 0, _k = Object.getOwnPropertyNames(this); _b < _k.length; _b++) { var e_559 = _k[_b]; if ("image" === e_559) continue; var t_413 = this[e_559]; if (t_413 instanceof XFAObject) return (t_413[er] || "").toString().trim(); } return null; }; Value.prototype[an] = function (e) { for (var _b = 0, _k = Object.getOwnPropertyNames(this); _b < _k.length; _b++) { var t_414 = _k[_b]; var i_335 = this[t_414]; if (i_335 instanceof XFAObject) return i_335[an](e); } return HTMLResult.EMPTY; }; return Value; }(XFAObject)); var Variables = /** @class */ (function (_super) { tslib_1.__extends(Variables, _super); function Variables(e) { var _this = _super.call(this, Jn, "variables", !0) || this; _this.id = e.id || ""; _this.use = e.use || ""; _this.usehref = e.usehref || ""; _this.boolean = new XFAObjectArray; _this.date = new XFAObjectArray; _this.dateTime = new XFAObjectArray; _this.decimal = new XFAObjectArray; _this.exData = new XFAObjectArray; _this.float = new XFAObjectArray; _this.image = new XFAObjectArray; _this.integer = new XFAObjectArray; _this.manifest = new XFAObjectArray; _this.script = new XFAObjectArray; _this.text = new XFAObjectArray; _this.time = new XFAObjectArray; return _this; } Variables.prototype[Ur] = function () { return !0; }; return Variables; }(XFAObject)); var TemplateNamespace = /** @class */ (function () { function TemplateNamespace() { } TemplateNamespace[on] = function (e, t) { if (TemplateNamespace.hasOwnProperty(e)) { var i_336 = TemplateNamespace[e](t); i_336[_r](t); return i_336; } }; TemplateNamespace.appearanceFilter = function (e) { return new AppearanceFilter(e); }; TemplateNamespace.arc = function (e) { return new Arc(e); }; TemplateNamespace.area = function (e) { return new Area(e); }; TemplateNamespace.assist = function (e) { return new Assist(e); }; TemplateNamespace.barcode = function (e) { return new Barcode(e); }; TemplateNamespace.bind = function (e) { return new Bind(e); }; TemplateNamespace.bindItems = function (e) { return new BindItems(e); }; TemplateNamespace.bookend = function (e) { return new Bookend(e); }; TemplateNamespace.boolean = function (e) { return new BooleanElement(e); }; TemplateNamespace.border = function (e) { return new Border(e); }; TemplateNamespace.break = function (e) { return new Break(e); }; TemplateNamespace.breakAfter = function (e) { return new BreakAfter(e); }; TemplateNamespace.breakBefore = function (e) { return new BreakBefore(e); }; TemplateNamespace.button = function (e) { return new Button(e); }; TemplateNamespace.calculate = function (e) { return new Calculate(e); }; TemplateNamespace.caption = function (e) { return new Caption(e); }; TemplateNamespace.certificate = function (e) { return new Certificate(e); }; TemplateNamespace.certificates = function (e) { return new Certificates(e); }; TemplateNamespace.checkButton = function (e) { return new CheckButton(e); }; TemplateNamespace.choiceList = function (e) { return new ChoiceList(e); }; TemplateNamespace.color = function (e) { return new Color(e); }; TemplateNamespace.comb = function (e) { return new Comb(e); }; TemplateNamespace.connect = function (e) { return new Connect(e); }; TemplateNamespace.contentArea = function (e) { return new ContentArea(e); }; TemplateNamespace.corner = function (e) { return new Corner(e); }; TemplateNamespace.date = function (e) { return new DateElement(e); }; TemplateNamespace.dateTime = function (e) { return new DateTime(e); }; TemplateNamespace.dateTimeEdit = function (e) { return new DateTimeEdit(e); }; TemplateNamespace.decimal = function (e) { return new Decimal(e); }; TemplateNamespace.defaultUi = function (e) { return new DefaultUi(e); }; TemplateNamespace.desc = function (e) { return new Desc(e); }; TemplateNamespace.digestMethod = function (e) { return new DigestMethod(e); }; TemplateNamespace.digestMethods = function (e) { return new DigestMethods(e); }; TemplateNamespace.draw = function (e) { return new Draw(e); }; TemplateNamespace.edge = function (e) { return new Edge(e); }; TemplateNamespace.encoding = function (e) { return new Encoding(e); }; TemplateNamespace.encodings = function (e) { return new Encodings(e); }; TemplateNamespace.encrypt = function (e) { return new Encrypt(e); }; TemplateNamespace.encryptData = function (e) { return new EncryptData(e); }; TemplateNamespace.encryption = function (e) { return new Encryption(e); }; TemplateNamespace.encryptionMethod = function (e) { return new EncryptionMethod(e); }; TemplateNamespace.encryptionMethods = function (e) { return new EncryptionMethods(e); }; TemplateNamespace.event = function (e) { return new Event(e); }; TemplateNamespace.exData = function (e) { return new ExData(e); }; TemplateNamespace.exObject = function (e) { return new ExObject(e); }; TemplateNamespace.exclGroup = function (e) { return new ExclGroup(e); }; TemplateNamespace.execute = function (e) { return new Execute(e); }; TemplateNamespace.extras = function (e) { return new Extras(e); }; TemplateNamespace.field = function (e) { return new Field(e); }; TemplateNamespace.fill = function (e) { return new Fill(e); }; TemplateNamespace.filter = function (e) { return new Filter(e); }; TemplateNamespace.float = function (e) { return new Float(e); }; TemplateNamespace.font = function (e) { return new template_Font(e); }; TemplateNamespace.format = function (e) { return new Format(e); }; TemplateNamespace.handler = function (e) { return new Handler(e); }; TemplateNamespace.hyphenation = function (e) { return new Hyphenation(e); }; TemplateNamespace.image = function (e) { return new Image(e); }; TemplateNamespace.imageEdit = function (e) { return new ImageEdit(e); }; TemplateNamespace.integer = function (e) { return new Integer(e); }; TemplateNamespace.issuers = function (e) { return new Issuers(e); }; TemplateNamespace.items = function (e) { return new Items(e); }; TemplateNamespace.keep = function (e) { return new Keep(e); }; TemplateNamespace.keyUsage = function (e) { return new KeyUsage(e); }; TemplateNamespace.line = function (e) { return new Line(e); }; TemplateNamespace.linear = function (e) { return new Linear(e); }; TemplateNamespace.lockDocument = function (e) { return new LockDocument(e); }; TemplateNamespace.manifest = function (e) { return new Manifest(e); }; TemplateNamespace.margin = function (e) { return new Margin(e); }; TemplateNamespace.mdp = function (e) { return new Mdp(e); }; TemplateNamespace.medium = function (e) { return new Medium(e); }; TemplateNamespace.message = function (e) { return new Message(e); }; TemplateNamespace.numericEdit = function (e) { return new NumericEdit(e); }; TemplateNamespace.occur = function (e) { return new Occur(e); }; TemplateNamespace.oid = function (e) { return new Oid(e); }; TemplateNamespace.oids = function (e) { return new Oids(e); }; TemplateNamespace.overflow = function (e) { return new Overflow(e); }; TemplateNamespace.pageArea = function (e) { return new PageArea(e); }; TemplateNamespace.pageSet = function (e) { return new PageSet(e); }; TemplateNamespace.para = function (e) { return new Para(e); }; TemplateNamespace.passwordEdit = function (e) { return new PasswordEdit(e); }; TemplateNamespace.pattern = function (e) { return new template_Pattern(e); }; TemplateNamespace.picture = function (e) { return new Picture(e); }; TemplateNamespace.proto = function (e) { return new Proto(e); }; TemplateNamespace.radial = function (e) { return new Radial(e); }; TemplateNamespace.reason = function (e) { return new Reason(e); }; TemplateNamespace.reasons = function (e) { return new Reasons(e); }; TemplateNamespace.rectangle = function (e) { return new Rectangle(e); }; TemplateNamespace.ref = function (e) { return new RefElement(e); }; TemplateNamespace.script = function (e) { return new Script(e); }; TemplateNamespace.setProperty = function (e) { return new SetProperty(e); }; TemplateNamespace.signData = function (e) { return new SignData(e); }; TemplateNamespace.signature = function (e) { return new Signature(e); }; TemplateNamespace.signing = function (e) { return new Signing(e); }; TemplateNamespace.solid = function (e) { return new Solid(e); }; TemplateNamespace.speak = function (e) { return new Speak(e); }; TemplateNamespace.stipple = function (e) { return new Stipple(e); }; TemplateNamespace.subform = function (e) { return new Subform(e); }; TemplateNamespace.subformSet = function (e) { return new SubformSet(e); }; TemplateNamespace.subjectDN = function (e) { return new SubjectDN(e); }; TemplateNamespace.subjectDNs = function (e) { return new SubjectDNs(e); }; TemplateNamespace.submit = function (e) { return new Submit(e); }; TemplateNamespace.template = function (e) { return new Template(e); }; TemplateNamespace.text = function (e) { return new Text(e); }; TemplateNamespace.textEdit = function (e) { return new TextEdit(e); }; TemplateNamespace.time = function (e) { return new Time(e); }; TemplateNamespace.timeStamp = function (e) { return new TimeStamp(e); }; TemplateNamespace.toolTip = function (e) { return new ToolTip(e); }; TemplateNamespace.traversal = function (e) { return new Traversal(e); }; TemplateNamespace.traverse = function (e) { return new Traverse(e); }; TemplateNamespace.ui = function (e) { return new Ui(e); }; TemplateNamespace.validate = function (e) { return new Validate(e); }; TemplateNamespace.value = function (e) { return new Value(e); }; TemplateNamespace.variables = function (e) { return new Variables(e); }; return TemplateNamespace; }()); var Tn = gn.datasets.id; function createText(e) { var t = new Text({}); t[er] = e; return t; } var Binder = /** @class */ (function () { function Binder(e) { var _b; this.root = e; this.datasets = e.datasets; this.data = ((_b = e.datasets) === null || _b === void 0 ? void 0 : _b.data) || new XmlObject(gn.datasets.id, "data"); this.emptyMerge = 0 === this.data[Er]().length; this.root.form = this.form = e.template[$s](); } Binder.prototype._isConsumeData = function () { return !this.emptyMerge && this._mergeMode; }; Binder.prototype._isMatchTemplate = function () { return !this._isConsumeData(); }; Binder.prototype.bind = function () { this._bindElement(this.form, this.data); return this.form; }; Binder.prototype.getData = function () { return this.data; }; Binder.prototype._bindValue = function (e, t, i) { var _b, _k; e[tr] = t; if (e[wr]()) if (t[Rr]()) { var i_337 = t[lr](); e[$r](createText(i_337)); } else if (e instanceof Field && "multiSelect" === ((_k = (_b = e.ui) === null || _b === void 0 ? void 0 : _b.choiceList) === null || _k === void 0 ? void 0 : _k.open)) { var i_338 = t[Er]().map((function (e) { return e[er].trim(); })).join("\n"); e[$r](createText(i_338)); } else this._isConsumeData() && warn("XFA - Nodes haven't the same type."); else !t[Rr]() || this._isMatchTemplate() ? this._bindElement(e, t) : warn("XFA - Nodes haven't the same type."); }; Binder.prototype._findDataByNameToConsume = function (e, t, i, a) { if (!e) return null; var s, r; for (var a_267 = 0; a_267 < 3; a_267++) { s = i[Qr](e, !1, !0); for (;;) { r = s.next().value; if (!r) break; if (t === r[Rr]()) return r; } if (i[Hr] === gn.datasets.id && "data" === i[Yr]) break; i = i[pr](); } if (!a) return null; s = this.data[Qr](e, !0, !1); r = s.next().value; if (r) return r; s = this.data[nr](e, !0); r = s.next().value; return (r === null || r === void 0 ? void 0 : r[Rr]()) ? r : null; }; Binder.prototype._setProperties = function (e, t) { if (e.hasOwnProperty("setProperty")) for (var _b = 0, _k = e.setProperty.children; _b < _k.length; _b++) { var _l = _k[_b], i_339 = _l.ref, a_268 = _l.target, s_180 = _l.connection; if (s_180) continue; if (!i_339) continue; var r_144 = searchNode(this.root, t, i_339, !1, !1); if (!r_144) { warn("XFA - Invalid reference: ".concat(i_339, ".")); continue; } var n_97 = r_144[0]; if (!n_97[Nr](this.data)) { warn("XFA - Invalid node: must be a data node."); continue; } var o_69 = searchNode(this.root, e, a_268, !1, !1); if (!o_69) { warn("XFA - Invalid target: ".concat(a_268, ".")); continue; } var g_51 = o_69[0]; if (!g_51[Nr](e)) { warn("XFA - Invalid target: must be a property or subproperty."); continue; } var c_42 = g_51[pr](); if (g_51 instanceof SetProperty || c_42 instanceof SetProperty) { warn("XFA - Invalid target: cannot be a setProperty or one of its properties."); continue; } if (g_51 instanceof BindItems || c_42 instanceof BindItems) { warn("XFA - Invalid target: cannot be a bindItems or one of its properties."); continue; } var h_31 = n_97[en](), l_27 = g_51[Yr]; if (g_51 instanceof XFAAttribute) { var e_560 = Object.create(null); e_560[l_27] = h_31; var t_415 = Reflect.construct(Object.getPrototypeOf(c_42).constructor, [e_560]); c_42[l_27] = t_415[l_27]; } else if (g_51.hasOwnProperty(er)) { g_51[tr] = n_97; g_51[er] = h_31; g_51[sr](); } else warn("XFA - Invalid node to use in setProperty"); } }; Binder.prototype._bindItems = function (e, t) { if (!e.hasOwnProperty("items") || !e.hasOwnProperty("bindItems") || e.bindItems.isEmpty()) return; for (var _b = 0, _k = e.items.children; _b < _k.length; _b++) { var t_416 = _k[_b]; e[Xr](t_416); } e.items.clear(); var i = new Items({}), a = new Items({}); e[js](i); e.items.push(i); e[js](a); e.items.push(a); for (var _l = 0, _m = e.bindItems.children; _l < _m.length; _l++) { var _o = _m[_l], s_181 = _o.ref, r_145 = _o.labelRef, n_98 = _o.valueRef, o_70 = _o.connection; if (o_70) continue; if (!s_181) continue; var e_562 = searchNode(this.root, t, s_181, !1, !1); if (e_562) for (var _p = 0, e_561 = e_562; _p < e_561.length; _p++) { var t_417 = e_561[_p]; if (!t_417[Nr](this.datasets)) { warn("XFA - Invalid ref (".concat(s_181, "): must be a datasets child.")); continue; } var e_563 = searchNode(this.root, t_417, r_145, !0, !1); if (!e_563) { warn("XFA - Invalid label: ".concat(r_145, ".")); continue; } var o_71 = e_563[0]; if (!o_71[Nr](this.datasets)) { warn("XFA - Invalid label: must be a datasets child."); continue; } var g_52 = searchNode(this.root, t_417, n_98, !0, !1); if (!g_52) { warn("XFA - Invalid value: ".concat(n_98, ".")); continue; } var c_43 = g_52[0]; if (!c_43[Nr](this.datasets)) { warn("XFA - Invalid value: must be a datasets child."); continue; } var h_32 = createText(o_71[en]()), l_28 = createText(c_43[en]()); i[js](h_32); i.text.push(h_32); a[js](l_28); a.text.push(l_28); } else warn("XFA - Invalid reference: ".concat(s_181, ".")); } }; Binder.prototype._bindOccurrences = function (e, t, i) { var a; if (t.length > 1) { a = e[$s](); a[Xr](a.occur); a.occur = null; } this._bindValue(e, t[0], i); this._setProperties(e, t[0]); this._bindItems(e, t[0]); if (1 === t.length) return; var s = e[pr](), r = e[Yr], n = s[Dr](e); for (var e_564 = 1, o_72 = t.length; e_564 < o_72; e_564++) { var o_73 = t[e_564], g_53 = a[$s](); s[r].push(g_53); s[Fr](n + e_564, g_53); this._bindValue(g_53, o_73, i); this._setProperties(g_53, o_73); this._bindItems(g_53, o_73); } }; Binder.prototype._createOccurrences = function (e) { if (!this.emptyMerge) return; var t = e.occur; if (!t || t.initial <= 1) return; var i = e[pr](), a = e[Yr]; if (!(i[a] instanceof XFAObjectArray)) return; var s; s = e.name ? i[a].children.filter((function (t) { return t.name === e.name; })).length : i[a].children.length; var r = i[Dr](e) + 1, n = t.initial - s; if (n) { var t_418 = e[$s](); t_418[Xr](t_418.occur); t_418.occur = null; i[a].push(t_418); i[Fr](r, t_418); for (var e_565 = 1; e_565 < n; e_565++) { var s_182 = t_418[$s](); i[a].push(s_182); i[Fr](r + e_565, s_182); } } }; Binder.prototype._getOccurInfo = function (e) { var t = e.name, i = e.occur; if (!i || !t) return [1, 1]; var a = -1 === i.max ? 1 / 0 : i.max; return [i.min, a]; }; Binder.prototype._setAndBind = function (e, t) { this._setProperties(e, t); this._bindItems(e, t); this._bindElement(e, t); }; Binder.prototype._bindElement = function (e, t) { var i = []; this._createOccurrences(e); for (var _b = 0, _k = e[Er](); _b < _k.length; _b++) { var a_269 = _k[_b]; if (a_269[tr]) continue; if (void 0 === this._mergeMode && "subform" === a_269[Yr]) { this._mergeMode = "consumeData" === a_269.mergeMode; var e_566 = t[Er](); if (e_566.length > 0) this._bindOccurrences(a_269, [e_566[0]], null); else if (this.emptyMerge) { var e_567 = t[Hr] === Tn ? -1 : t[Hr], i_340 = a_269[tr] = new XmlObject(e_567, a_269.name || "root"); t[js](i_340); this._bindElement(a_269, i_340); } continue; } if (!a_269[kr]()) continue; var e_568 = !1, s_183 = null, r_146 = null, n_99 = null; if (a_269.bind) { switch (a_269.bind.match) { case "none": this._setAndBind(a_269, t); continue; case "global": e_568 = !0; break; case "dataRef": if (!a_269.bind.ref) { warn("XFA - ref is empty in node ".concat(a_269[Yr], ".")); this._setAndBind(a_269, t); continue; } r_146 = a_269.bind.ref; } a_269.bind.picture && (s_183 = a_269.bind.picture[er]); } var _l = this._getOccurInfo(a_269), o_74 = _l[0], g_54 = _l[1]; if (r_146) { n_99 = searchNode(this.root, t, r_146, !0, !1); if (null === n_99) { n_99 = createDataNode(this.data, t, r_146); if (!n_99) continue; this._isConsumeData() && (n_99[Ar] = !0); this._setAndBind(a_269, n_99); continue; } this._isConsumeData() && (n_99 = n_99.filter((function (e) { return !e[Ar]; }))); n_99.length > g_54 ? n_99 = n_99.slice(0, g_54) : 0 === n_99.length && (n_99 = null); n_99 && this._isConsumeData() && n_99.forEach((function (e) { e[Ar] = !0; })); } else { if (!a_269.name) { this._setAndBind(a_269, t); continue; } if (this._isConsumeData()) { var i_341 = []; for (; i_341.length < g_54;) { var s_184 = this._findDataByNameToConsume(a_269.name, a_269[wr](), t, e_568); if (!s_184) break; s_184[Ar] = !0; i_341.push(s_184); } n_99 = i_341.length > 0 ? i_341 : null; } else { n_99 = t[Qr](a_269.name, !1, this.emptyMerge).next().value; if (!n_99) { if (0 === o_74) { i.push(a_269); continue; } var e_569 = t[Hr] === Tn ? -1 : t[Hr]; n_99 = a_269[tr] = new XmlObject(e_569, a_269.name); this.emptyMerge && (n_99[Ar] = !0); t[js](n_99); this._setAndBind(a_269, n_99); continue; } this.emptyMerge && (n_99[Ar] = !0); n_99 = [n_99]; } } n_99 ? this._bindOccurrences(a_269, n_99, s_183) : o_74 > 0 ? this._setAndBind(a_269, t) : i.push(a_269); } i.forEach((function (e) { return e[pr]()[Xr](e); })); }; return Binder; }()); var DataHandler = /** @class */ (function () { function DataHandler(e, t) { this.data = t; this.dataset = e.datasets || null; } DataHandler.prototype.serialize = function (e) { var t = [[-1, this.data[Er]()]]; for (; t.length > 0;) { var i_342 = t.at(-1), a_270 = i_342[0], s_185 = i_342[1]; if (a_270 + 1 === s_185.length) { t.pop(); continue; } var r_147 = s_185[++i_342[0]], n_100 = e.get(r_147[nn]); if (n_100) r_147[$r](n_100); else { var t_419 = r_147[or](); for (var _b = 0, _k = t_419.values(); _b < _k.length; _b++) { var i_343 = _k[_b]; var t_420 = e.get(i_343[nn]); if (t_420) { i_343[$r](t_420); break; } } } var o_75 = r_147[Er](); o_75.length > 0 && t.push([-1, o_75]); } var i = ['']; if (this.dataset) for (var _l = 0, _m = this.dataset[Er](); _l < _m.length; _l++) { var e_570 = _m[_l]; "data" !== e_570[Yr] && e_570[sn](i); } this.data[sn](i); i.push(""); return i.join(""); }; return DataHandler; }()); var qn = gn.config.id; var Acrobat = /** @class */ (function (_super) { tslib_1.__extends(Acrobat, _super); function Acrobat(e) { var _this = _super.call(this, qn, "acrobat", !0) || this; _this.acrobat7 = null; _this.autoSave = null; _this.common = null; _this.validate = null; _this.validateApprovalSignatures = null; _this.submitUrl = new XFAObjectArray; return _this; } return Acrobat; }(XFAObject)); var Acrobat7 = /** @class */ (function (_super) { tslib_1.__extends(Acrobat7, _super); function Acrobat7(e) { var _this = _super.call(this, qn, "acrobat7", !0) || this; _this.dynamicRender = null; return _this; } return Acrobat7; }(XFAObject)); var ADBE_JSConsole = /** @class */ (function (_super) { tslib_1.__extends(ADBE_JSConsole, _super); function ADBE_JSConsole(e) { return _super.call(this, qn, "ADBE_JSConsole", ["delegate", "Enable", "Disable"]) || this; } return ADBE_JSConsole; }(OptionObject)); var ADBE_JSDebugger = /** @class */ (function (_super) { tslib_1.__extends(ADBE_JSDebugger, _super); function ADBE_JSDebugger(e) { return _super.call(this, qn, "ADBE_JSDebugger", ["delegate", "Enable", "Disable"]) || this; } return ADBE_JSDebugger; }(OptionObject)); var AddSilentPrint = /** @class */ (function (_super) { tslib_1.__extends(AddSilentPrint, _super); function AddSilentPrint(e) { return _super.call(this, qn, "addSilentPrint") || this; } return AddSilentPrint; }(Option01)); var AddViewerPreferences = /** @class */ (function (_super) { tslib_1.__extends(AddViewerPreferences, _super); function AddViewerPreferences(e) { return _super.call(this, qn, "addViewerPreferences") || this; } return AddViewerPreferences; }(Option01)); var AdjustData = /** @class */ (function (_super) { tslib_1.__extends(AdjustData, _super); function AdjustData(e) { return _super.call(this, qn, "adjustData") || this; } return AdjustData; }(Option10)); var AdobeExtensionLevel = /** @class */ (function (_super) { tslib_1.__extends(AdobeExtensionLevel, _super); function AdobeExtensionLevel(e) { return _super.call(this, qn, "adobeExtensionLevel", 0, (function (e) { return e >= 1 && e <= 8; })) || this; } return AdobeExtensionLevel; }(IntegerObject)); var Agent = /** @class */ (function (_super) { tslib_1.__extends(Agent, _super); function Agent(e) { var _this = _super.call(this, qn, "agent", !0) || this; _this.name = e.name ? e.name.trim() : ""; _this.common = new XFAObjectArray; return _this; } return Agent; }(XFAObject)); var AlwaysEmbed = /** @class */ (function (_super) { tslib_1.__extends(AlwaysEmbed, _super); function AlwaysEmbed(e) { return _super.call(this, qn, "alwaysEmbed") || this; } return AlwaysEmbed; }(ContentObject)); var Amd = /** @class */ (function (_super) { tslib_1.__extends(Amd, _super); function Amd(e) { return _super.call(this, qn, "amd") || this; } return Amd; }(StringObject)); var config_Area = /** @class */ (function (_super) { tslib_1.__extends(config_Area, _super); function config_Area(e) { var _this = _super.call(this, qn, "area") || this; _this.level = getInteger({ data: e.level, defaultValue: 0, validate: function (e) { return e >= 1 && e <= 3; } }); _this.name = getStringOption(e.name, ["", "barcode", "coreinit", "deviceDriver", "font", "general", "layout", "merge", "script", "signature", "sourceSet", "templateCache"]); return _this; } return config_Area; }(XFAObject)); var Attributes = /** @class */ (function (_super) { tslib_1.__extends(Attributes, _super); function Attributes(e) { return _super.call(this, qn, "attributes", ["preserve", "delegate", "ignore"]) || this; } return Attributes; }(OptionObject)); var AutoSave = /** @class */ (function (_super) { tslib_1.__extends(AutoSave, _super); function AutoSave(e) { return _super.call(this, qn, "autoSave", ["disabled", "enabled"]) || this; } return AutoSave; }(OptionObject)); var Base = /** @class */ (function (_super) { tslib_1.__extends(Base, _super); function Base(e) { return _super.call(this, qn, "base") || this; } return Base; }(StringObject)); var BatchOutput = /** @class */ (function (_super) { tslib_1.__extends(BatchOutput, _super); function BatchOutput(e) { var _this = _super.call(this, qn, "batchOutput") || this; _this.format = getStringOption(e.format, ["none", "concat", "zip", "zipCompress"]); return _this; } return BatchOutput; }(XFAObject)); var BehaviorOverride = /** @class */ (function (_super) { tslib_1.__extends(BehaviorOverride, _super); function BehaviorOverride(e) { return _super.call(this, qn, "behaviorOverride") || this; } BehaviorOverride.prototype[sr] = function () { this[er] = new Map(this[er].trim().split(/\s+/).filter((function (e) { return e.includes(":"); })).map((function (e) { return e.split(":", 2); }))); }; return BehaviorOverride; }(ContentObject)); var Cache = /** @class */ (function (_super) { tslib_1.__extends(Cache, _super); function Cache(e) { var _this = _super.call(this, qn, "cache", !0) || this; _this.templateCache = null; return _this; } return Cache; }(XFAObject)); var Change = /** @class */ (function (_super) { tslib_1.__extends(Change, _super); function Change(e) { return _super.call(this, qn, "change") || this; } return Change; }(Option01)); var Common = /** @class */ (function (_super) { tslib_1.__extends(Common, _super); function Common(e) { var _this = _super.call(this, qn, "common", !0) || this; _this.data = null; _this.locale = null; _this.localeSet = null; _this.messaging = null; _this.suppressBanner = null; _this.template = null; _this.validationMessaging = null; _this.versionControl = null; _this.log = new XFAObjectArray; return _this; } return Common; }(XFAObject)); var Compress = /** @class */ (function (_super) { tslib_1.__extends(Compress, _super); function Compress(e) { var _this = _super.call(this, qn, "compress") || this; _this.scope = getStringOption(e.scope, ["imageOnly", "document"]); return _this; } return Compress; }(XFAObject)); var CompressLogicalStructure = /** @class */ (function (_super) { tslib_1.__extends(CompressLogicalStructure, _super); function CompressLogicalStructure(e) { return _super.call(this, qn, "compressLogicalStructure") || this; } return CompressLogicalStructure; }(Option01)); var CompressObjectStream = /** @class */ (function (_super) { tslib_1.__extends(CompressObjectStream, _super); function CompressObjectStream(e) { return _super.call(this, qn, "compressObjectStream") || this; } return CompressObjectStream; }(Option10)); var Compression = /** @class */ (function (_super) { tslib_1.__extends(Compression, _super); function Compression(e) { var _this = _super.call(this, qn, "compression", !0) || this; _this.compressLogicalStructure = null; _this.compressObjectStream = null; _this.level = null; _this.type = null; return _this; } return Compression; }(XFAObject)); var Config = /** @class */ (function (_super) { tslib_1.__extends(Config, _super); function Config(e) { var _this = _super.call(this, qn, "config", !0) || this; _this.acrobat = null; _this.present = null; _this.trace = null; _this.agent = new XFAObjectArray; return _this; } return Config; }(XFAObject)); var Conformance = /** @class */ (function (_super) { tslib_1.__extends(Conformance, _super); function Conformance(e) { return _super.call(this, qn, "conformance", ["A", "B"]) || this; } return Conformance; }(OptionObject)); var ContentCopy = /** @class */ (function (_super) { tslib_1.__extends(ContentCopy, _super); function ContentCopy(e) { return _super.call(this, qn, "contentCopy") || this; } return ContentCopy; }(Option01)); var Copies = /** @class */ (function (_super) { tslib_1.__extends(Copies, _super); function Copies(e) { return _super.call(this, qn, "copies", 1, (function (e) { return e >= 1; })) || this; } return Copies; }(IntegerObject)); var Creator = /** @class */ (function (_super) { tslib_1.__extends(Creator, _super); function Creator(e) { return _super.call(this, qn, "creator") || this; } return Creator; }(StringObject)); var CurrentPage = /** @class */ (function (_super) { tslib_1.__extends(CurrentPage, _super); function CurrentPage(e) { return _super.call(this, qn, "currentPage", 0, (function (e) { return e >= 0; })) || this; } return CurrentPage; }(IntegerObject)); var Data = /** @class */ (function (_super) { tslib_1.__extends(Data, _super); function Data(e) { var _this = _super.call(this, qn, "data", !0) || this; _this.adjustData = null; _this.attributes = null; _this.incrementalLoad = null; _this.outputXSL = null; _this.range = null; _this.record = null; _this.startNode = null; _this.uri = null; _this.window = null; _this.xsl = null; _this.excludeNS = new XFAObjectArray; _this.transform = new XFAObjectArray; return _this; } return Data; }(XFAObject)); var Debug = /** @class */ (function (_super) { tslib_1.__extends(Debug, _super); function Debug(e) { var _this = _super.call(this, qn, "debug", !0) || this; _this.uri = null; return _this; } return Debug; }(XFAObject)); var DefaultTypeface = /** @class */ (function (_super) { tslib_1.__extends(DefaultTypeface, _super); function DefaultTypeface(e) { var _this = _super.call(this, qn, "defaultTypeface") || this; _this.writingScript = getStringOption(e.writingScript, ["*", "Arabic", "Cyrillic", "EastEuropeanRoman", "Greek", "Hebrew", "Japanese", "Korean", "Roman", "SimplifiedChinese", "Thai", "TraditionalChinese", "Vietnamese"]); return _this; } return DefaultTypeface; }(ContentObject)); var Destination = /** @class */ (function (_super) { tslib_1.__extends(Destination, _super); function Destination(e) { return _super.call(this, qn, "destination", ["pdf", "pcl", "ps", "webClient", "zpl"]) || this; } return Destination; }(OptionObject)); var DocumentAssembly = /** @class */ (function (_super) { tslib_1.__extends(DocumentAssembly, _super); function DocumentAssembly(e) { return _super.call(this, qn, "documentAssembly") || this; } return DocumentAssembly; }(Option01)); var Driver = /** @class */ (function (_super) { tslib_1.__extends(Driver, _super); function Driver(e) { var _this = _super.call(this, qn, "driver", !0) || this; _this.name = e.name ? e.name.trim() : ""; _this.fontInfo = null; _this.xdc = null; return _this; } return Driver; }(XFAObject)); var DuplexOption = /** @class */ (function (_super) { tslib_1.__extends(DuplexOption, _super); function DuplexOption(e) { return _super.call(this, qn, "duplexOption", ["simplex", "duplexFlipLongEdge", "duplexFlipShortEdge"]) || this; } return DuplexOption; }(OptionObject)); var DynamicRender = /** @class */ (function (_super) { tslib_1.__extends(DynamicRender, _super); function DynamicRender(e) { return _super.call(this, qn, "dynamicRender", ["forbidden", "required"]) || this; } return DynamicRender; }(OptionObject)); var Embed = /** @class */ (function (_super) { tslib_1.__extends(Embed, _super); function Embed(e) { return _super.call(this, qn, "embed") || this; } return Embed; }(Option01)); var config_Encrypt = /** @class */ (function (_super) { tslib_1.__extends(config_Encrypt, _super); function config_Encrypt(e) { return _super.call(this, qn, "encrypt") || this; } return config_Encrypt; }(Option01)); var config_Encryption = /** @class */ (function (_super) { tslib_1.__extends(config_Encryption, _super); function config_Encryption(e) { var _this = _super.call(this, qn, "encryption", !0) || this; _this.encrypt = null; _this.encryptionLevel = null; _this.permissions = null; return _this; } return config_Encryption; }(XFAObject)); var EncryptionLevel = /** @class */ (function (_super) { tslib_1.__extends(EncryptionLevel, _super); function EncryptionLevel(e) { return _super.call(this, qn, "encryptionLevel", ["40bit", "128bit"]) || this; } return EncryptionLevel; }(OptionObject)); var Enforce = /** @class */ (function (_super) { tslib_1.__extends(Enforce, _super); function Enforce(e) { return _super.call(this, qn, "enforce") || this; } return Enforce; }(StringObject)); var Equate = /** @class */ (function (_super) { tslib_1.__extends(Equate, _super); function Equate(e) { var _this = _super.call(this, qn, "equate") || this; _this.force = getInteger({ data: e.force, defaultValue: 1, validate: function (e) { return 0 === e; } }); _this.from = e.from || ""; _this.to = e.to || ""; return _this; } return Equate; }(XFAObject)); var EquateRange = /** @class */ (function (_super) { tslib_1.__extends(EquateRange, _super); function EquateRange(e) { var _this = _super.call(this, qn, "equateRange") || this; _this.from = e.from || ""; _this.to = e.to || ""; _this._unicodeRange = e.unicodeRange || ""; return _this; } Object.defineProperty(EquateRange.prototype, "unicodeRange", { get: function () { var e = [], t = /U\+([0-9a-fA-F]+)/, i = this._unicodeRange; for (var _b = 0, _k = i.split(",").map((function (e) { return e.trim(); })).filter((function (e) { return !!e; })); _b < _k.length; _b++) { var a_271 = _k[_b]; a_271 = a_271.split("-", 2).map((function (e) { var i = e.match(t); return i ? parseInt(i[1], 16) : 0; })); 1 === a_271.length && a_271.push(a_271[0]); e.push(a_271); } return shadow(this, "unicodeRange", e); }, enumerable: false, configurable: true }); return EquateRange; }(XFAObject)); var Exclude = /** @class */ (function (_super) { tslib_1.__extends(Exclude, _super); function Exclude(e) { return _super.call(this, qn, "exclude") || this; } Exclude.prototype[sr] = function () { this[er] = this[er].trim().split(/\s+/).filter((function (e) { return e && ["calculate", "close", "enter", "exit", "initialize", "ready", "validate"].includes(e); })); }; return Exclude; }(ContentObject)); var ExcludeNS = /** @class */ (function (_super) { tslib_1.__extends(ExcludeNS, _super); function ExcludeNS(e) { return _super.call(this, qn, "excludeNS") || this; } return ExcludeNS; }(StringObject)); var FlipLabel = /** @class */ (function (_super) { tslib_1.__extends(FlipLabel, _super); function FlipLabel(e) { return _super.call(this, qn, "flipLabel", ["usePrinterSetting", "on", "off"]) || this; } return FlipLabel; }(OptionObject)); var config_FontInfo = /** @class */ (function (_super) { tslib_1.__extends(config_FontInfo, _super); function config_FontInfo(e) { var _this = _super.call(this, qn, "fontInfo", !0) || this; _this.embed = null; _this.map = null; _this.subsetBelow = null; _this.alwaysEmbed = new XFAObjectArray; _this.defaultTypeface = new XFAObjectArray; _this.neverEmbed = new XFAObjectArray; return _this; } return config_FontInfo; }(XFAObject)); var FormFieldFilling = /** @class */ (function (_super) { tslib_1.__extends(FormFieldFilling, _super); function FormFieldFilling(e) { return _super.call(this, qn, "formFieldFilling") || this; } return FormFieldFilling; }(Option01)); var GroupParent = /** @class */ (function (_super) { tslib_1.__extends(GroupParent, _super); function GroupParent(e) { return _super.call(this, qn, "groupParent") || this; } return GroupParent; }(StringObject)); var IfEmpty = /** @class */ (function (_super) { tslib_1.__extends(IfEmpty, _super); function IfEmpty(e) { return _super.call(this, qn, "ifEmpty", ["dataValue", "dataGroup", "ignore", "remove"]) || this; } return IfEmpty; }(OptionObject)); var IncludeXDPContent = /** @class */ (function (_super) { tslib_1.__extends(IncludeXDPContent, _super); function IncludeXDPContent(e) { return _super.call(this, qn, "includeXDPContent") || this; } return IncludeXDPContent; }(StringObject)); var IncrementalLoad = /** @class */ (function (_super) { tslib_1.__extends(IncrementalLoad, _super); function IncrementalLoad(e) { return _super.call(this, qn, "incrementalLoad", ["none", "forwardOnly"]) || this; } return IncrementalLoad; }(OptionObject)); var IncrementalMerge = /** @class */ (function (_super) { tslib_1.__extends(IncrementalMerge, _super); function IncrementalMerge(e) { return _super.call(this, qn, "incrementalMerge") || this; } return IncrementalMerge; }(Option01)); var Interactive = /** @class */ (function (_super) { tslib_1.__extends(Interactive, _super); function Interactive(e) { return _super.call(this, qn, "interactive") || this; } return Interactive; }(Option01)); var Jog = /** @class */ (function (_super) { tslib_1.__extends(Jog, _super); function Jog(e) { return _super.call(this, qn, "jog", ["usePrinterSetting", "none", "pageSet"]) || this; } return Jog; }(OptionObject)); var LabelPrinter = /** @class */ (function (_super) { tslib_1.__extends(LabelPrinter, _super); function LabelPrinter(e) { var _this = _super.call(this, qn, "labelPrinter", !0) || this; _this.name = getStringOption(e.name, ["zpl", "dpl", "ipl", "tcpl"]); _this.batchOutput = null; _this.flipLabel = null; _this.fontInfo = null; _this.xdc = null; return _this; } return LabelPrinter; }(XFAObject)); var Layout = /** @class */ (function (_super) { tslib_1.__extends(Layout, _super); function Layout(e) { return _super.call(this, qn, "layout", ["paginate", "panel"]) || this; } return Layout; }(OptionObject)); var Level = /** @class */ (function (_super) { tslib_1.__extends(Level, _super); function Level(e) { return _super.call(this, qn, "level", 0, (function (e) { return e > 0; })) || this; } return Level; }(IntegerObject)); var Linearized = /** @class */ (function (_super) { tslib_1.__extends(Linearized, _super); function Linearized(e) { return _super.call(this, qn, "linearized") || this; } return Linearized; }(Option01)); var Locale = /** @class */ (function (_super) { tslib_1.__extends(Locale, _super); function Locale(e) { return _super.call(this, qn, "locale") || this; } return Locale; }(StringObject)); var LocaleSet = /** @class */ (function (_super) { tslib_1.__extends(LocaleSet, _super); function LocaleSet(e) { return _super.call(this, qn, "localeSet") || this; } return LocaleSet; }(StringObject)); var Log = /** @class */ (function (_super) { tslib_1.__extends(Log, _super); function Log(e) { var _this = _super.call(this, qn, "log", !0) || this; _this.mode = null; _this.threshold = null; _this.to = null; _this.uri = null; return _this; } return Log; }(XFAObject)); var MapElement = /** @class */ (function (_super) { tslib_1.__extends(MapElement, _super); function MapElement(e) { var _this = _super.call(this, qn, "map", !0) || this; _this.equate = new XFAObjectArray; _this.equateRange = new XFAObjectArray; return _this; } return MapElement; }(XFAObject)); var MediumInfo = /** @class */ (function (_super) { tslib_1.__extends(MediumInfo, _super); function MediumInfo(e) { var _this = _super.call(this, qn, "mediumInfo", !0) || this; _this.map = null; return _this; } return MediumInfo; }(XFAObject)); var config_Message = /** @class */ (function (_super) { tslib_1.__extends(config_Message, _super); function config_Message(e) { var _this = _super.call(this, qn, "message", !0) || this; _this.msgId = null; _this.severity = null; return _this; } return config_Message; }(XFAObject)); var Messaging = /** @class */ (function (_super) { tslib_1.__extends(Messaging, _super); function Messaging(e) { var _this = _super.call(this, qn, "messaging", !0) || this; _this.message = new XFAObjectArray; return _this; } return Messaging; }(XFAObject)); var Mode = /** @class */ (function (_super) { tslib_1.__extends(Mode, _super); function Mode(e) { return _super.call(this, qn, "mode", ["append", "overwrite"]) || this; } return Mode; }(OptionObject)); var ModifyAnnots = /** @class */ (function (_super) { tslib_1.__extends(ModifyAnnots, _super); function ModifyAnnots(e) { return _super.call(this, qn, "modifyAnnots") || this; } return ModifyAnnots; }(Option01)); var MsgId = /** @class */ (function (_super) { tslib_1.__extends(MsgId, _super); function MsgId(e) { return _super.call(this, qn, "msgId", 1, (function (e) { return e >= 1; })) || this; } return MsgId; }(IntegerObject)); var NameAttr = /** @class */ (function (_super) { tslib_1.__extends(NameAttr, _super); function NameAttr(e) { return _super.call(this, qn, "nameAttr") || this; } return NameAttr; }(StringObject)); var NeverEmbed = /** @class */ (function (_super) { tslib_1.__extends(NeverEmbed, _super); function NeverEmbed(e) { return _super.call(this, qn, "neverEmbed") || this; } return NeverEmbed; }(ContentObject)); var NumberOfCopies = /** @class */ (function (_super) { tslib_1.__extends(NumberOfCopies, _super); function NumberOfCopies(e) { return _super.call(this, qn, "numberOfCopies", null, (function (e) { return e >= 2 && e <= 5; })) || this; } return NumberOfCopies; }(IntegerObject)); var OpenAction = /** @class */ (function (_super) { tslib_1.__extends(OpenAction, _super); function OpenAction(e) { var _this = _super.call(this, qn, "openAction", !0) || this; _this.destination = null; return _this; } return OpenAction; }(XFAObject)); var Output = /** @class */ (function (_super) { tslib_1.__extends(Output, _super); function Output(e) { var _this = _super.call(this, qn, "output", !0) || this; _this.to = null; _this.type = null; _this.uri = null; return _this; } return Output; }(XFAObject)); var OutputBin = /** @class */ (function (_super) { tslib_1.__extends(OutputBin, _super); function OutputBin(e) { return _super.call(this, qn, "outputBin") || this; } return OutputBin; }(StringObject)); var OutputXSL = /** @class */ (function (_super) { tslib_1.__extends(OutputXSL, _super); function OutputXSL(e) { var _this = _super.call(this, qn, "outputXSL", !0) || this; _this.uri = null; return _this; } return OutputXSL; }(XFAObject)); var Overprint = /** @class */ (function (_super) { tslib_1.__extends(Overprint, _super); function Overprint(e) { return _super.call(this, qn, "overprint", ["none", "both", "draw", "field"]) || this; } return Overprint; }(OptionObject)); var Packets = /** @class */ (function (_super) { tslib_1.__extends(Packets, _super); function Packets(e) { return _super.call(this, qn, "packets") || this; } Packets.prototype[sr] = function () { "*" !== this[er] && (this[er] = this[er].trim().split(/\s+/).filter((function (e) { return ["config", "datasets", "template", "xfdf", "xslt"].includes(e); }))); }; return Packets; }(StringObject)); var PageOffset = /** @class */ (function (_super) { tslib_1.__extends(PageOffset, _super); function PageOffset(e) { var _this = _super.call(this, qn, "pageOffset") || this; _this.x = getInteger({ data: e.x, defaultValue: "useXDCSetting", validate: function (e) { return !0; } }); _this.y = getInteger({ data: e.y, defaultValue: "useXDCSetting", validate: function (e) { return !0; } }); return _this; } return PageOffset; }(XFAObject)); var PageRange = /** @class */ (function (_super) { tslib_1.__extends(PageRange, _super); function PageRange(e) { return _super.call(this, qn, "pageRange") || this; } PageRange.prototype[sr] = function () { var e = this[er].trim().split(/\s+/).map((function (e) { return parseInt(e, 10); })), t = []; for (var i_344 = 0, a_272 = e.length; i_344 < a_272; i_344 += 2) t.push(e.slice(i_344, i_344 + 2)); this[er] = t; }; return PageRange; }(StringObject)); var Pagination = /** @class */ (function (_super) { tslib_1.__extends(Pagination, _super); function Pagination(e) { return _super.call(this, qn, "pagination", ["simplex", "duplexShortEdge", "duplexLongEdge"]) || this; } return Pagination; }(OptionObject)); var PaginationOverride = /** @class */ (function (_super) { tslib_1.__extends(PaginationOverride, _super); function PaginationOverride(e) { return _super.call(this, qn, "paginationOverride", ["none", "forceDuplex", "forceDuplexLongEdge", "forceDuplexShortEdge", "forceSimplex"]) || this; } return PaginationOverride; }(OptionObject)); var Part = /** @class */ (function (_super) { tslib_1.__extends(Part, _super); function Part(e) { return _super.call(this, qn, "part", 1, (function (e) { return !1; })) || this; } return Part; }(IntegerObject)); var Pcl = /** @class */ (function (_super) { tslib_1.__extends(Pcl, _super); function Pcl(e) { var _this = _super.call(this, qn, "pcl", !0) || this; _this.name = e.name || ""; _this.batchOutput = null; _this.fontInfo = null; _this.jog = null; _this.mediumInfo = null; _this.outputBin = null; _this.pageOffset = null; _this.staple = null; _this.xdc = null; return _this; } return Pcl; }(XFAObject)); var Pdf = /** @class */ (function (_super) { tslib_1.__extends(Pdf, _super); function Pdf(e) { var _this = _super.call(this, qn, "pdf", !0) || this; _this.name = e.name || ""; _this.adobeExtensionLevel = null; _this.batchOutput = null; _this.compression = null; _this.creator = null; _this.encryption = null; _this.fontInfo = null; _this.interactive = null; _this.linearized = null; _this.openAction = null; _this.pdfa = null; _this.producer = null; _this.renderPolicy = null; _this.scriptModel = null; _this.silentPrint = null; _this.submitFormat = null; _this.tagged = null; _this.version = null; _this.viewerPreferences = null; _this.xdc = null; return _this; } return Pdf; }(XFAObject)); var Pdfa = /** @class */ (function (_super) { tslib_1.__extends(Pdfa, _super); function Pdfa(e) { var _this = _super.call(this, qn, "pdfa", !0) || this; _this.amd = null; _this.conformance = null; _this.includeXDPContent = null; _this.part = null; return _this; } return Pdfa; }(XFAObject)); var Permissions = /** @class */ (function (_super) { tslib_1.__extends(Permissions, _super); function Permissions(e) { var _this = _super.call(this, qn, "permissions", !0) || this; _this.accessibleContent = null; _this.change = null; _this.contentCopy = null; _this.documentAssembly = null; _this.formFieldFilling = null; _this.modifyAnnots = null; _this.plaintextMetadata = null; _this.print = null; _this.printHighQuality = null; return _this; } return Permissions; }(XFAObject)); var PickTrayByPDFSize = /** @class */ (function (_super) { tslib_1.__extends(PickTrayByPDFSize, _super); function PickTrayByPDFSize(e) { return _super.call(this, qn, "pickTrayByPDFSize") || this; } return PickTrayByPDFSize; }(Option01)); var config_Picture = /** @class */ (function (_super) { tslib_1.__extends(config_Picture, _super); function config_Picture(e) { return _super.call(this, qn, "picture") || this; } return config_Picture; }(StringObject)); var PlaintextMetadata = /** @class */ (function (_super) { tslib_1.__extends(PlaintextMetadata, _super); function PlaintextMetadata(e) { return _super.call(this, qn, "plaintextMetadata") || this; } return PlaintextMetadata; }(Option01)); var Presence = /** @class */ (function (_super) { tslib_1.__extends(Presence, _super); function Presence(e) { return _super.call(this, qn, "presence", ["preserve", "dissolve", "dissolveStructure", "ignore", "remove"]) || this; } return Presence; }(OptionObject)); var Present = /** @class */ (function (_super) { tslib_1.__extends(Present, _super); function Present(e) { var _this = _super.call(this, qn, "present", !0) || this; _this.behaviorOverride = null; _this.cache = null; _this.common = null; _this.copies = null; _this.destination = null; _this.incrementalMerge = null; _this.layout = null; _this.output = null; _this.overprint = null; _this.pagination = null; _this.paginationOverride = null; _this.script = null; _this.validate = null; _this.xdp = null; _this.driver = new XFAObjectArray; _this.labelPrinter = new XFAObjectArray; _this.pcl = new XFAObjectArray; _this.pdf = new XFAObjectArray; _this.ps = new XFAObjectArray; _this.submitUrl = new XFAObjectArray; _this.webClient = new XFAObjectArray; _this.zpl = new XFAObjectArray; return _this; } return Present; }(XFAObject)); var Print = /** @class */ (function (_super) { tslib_1.__extends(Print, _super); function Print(e) { return _super.call(this, qn, "print") || this; } return Print; }(Option01)); var PrintHighQuality = /** @class */ (function (_super) { tslib_1.__extends(PrintHighQuality, _super); function PrintHighQuality(e) { return _super.call(this, qn, "printHighQuality") || this; } return PrintHighQuality; }(Option01)); var PrintScaling = /** @class */ (function (_super) { tslib_1.__extends(PrintScaling, _super); function PrintScaling(e) { return _super.call(this, qn, "printScaling", ["appdefault", "noScaling"]) || this; } return PrintScaling; }(OptionObject)); var PrinterName = /** @class */ (function (_super) { tslib_1.__extends(PrinterName, _super); function PrinterName(e) { return _super.call(this, qn, "printerName") || this; } return PrinterName; }(StringObject)); var Producer = /** @class */ (function (_super) { tslib_1.__extends(Producer, _super); function Producer(e) { return _super.call(this, qn, "producer") || this; } return Producer; }(StringObject)); var Ps = /** @class */ (function (_super) { tslib_1.__extends(Ps, _super); function Ps(e) { var _this = _super.call(this, qn, "ps", !0) || this; _this.name = e.name || ""; _this.batchOutput = null; _this.fontInfo = null; _this.jog = null; _this.mediumInfo = null; _this.outputBin = null; _this.staple = null; _this.xdc = null; return _this; } return Ps; }(XFAObject)); var Range = /** @class */ (function (_super) { tslib_1.__extends(Range, _super); function Range(e) { return _super.call(this, qn, "range") || this; } Range.prototype[sr] = function () { this[er] = this[er].trim().split(/\s*,\s*/, 2).map((function (e) { return e.split("-").map((function (e) { return parseInt(e.trim(), 10); })); })).filter((function (e) { return e.every((function (e) { return !isNaN(e); })); })).map((function (e) { 1 === e.length && e.push(e[0]); return e; })); }; return Range; }(ContentObject)); var Record = /** @class */ (function (_super) { tslib_1.__extends(Record, _super); function Record(e) { return _super.call(this, qn, "record") || this; } Record.prototype[sr] = function () { this[er] = this[er].trim(); var e = parseInt(this[er], 10); !isNaN(e) && e >= 0 && (this[er] = e); }; return Record; }(ContentObject)); var Relevant = /** @class */ (function (_super) { tslib_1.__extends(Relevant, _super); function Relevant(e) { return _super.call(this, qn, "relevant") || this; } Relevant.prototype[sr] = function () { this[er] = this[er].trim().split(/\s+/); }; return Relevant; }(ContentObject)); var Rename = /** @class */ (function (_super) { tslib_1.__extends(Rename, _super); function Rename(e) { return _super.call(this, qn, "rename") || this; } Rename.prototype[sr] = function () { this[er] = this[er].trim(); (this[er].toLowerCase().startsWith("xml") || new RegExp("[\\p{L}_][\\p{L}\\d._\\p{M}-]*", "u").test(this[er])) && warn("XFA - Rename: invalid XFA name"); }; return Rename; }(ContentObject)); var RenderPolicy = /** @class */ (function (_super) { tslib_1.__extends(RenderPolicy, _super); function RenderPolicy(e) { return _super.call(this, qn, "renderPolicy", ["server", "client"]) || this; } return RenderPolicy; }(OptionObject)); var RunScripts = /** @class */ (function (_super) { tslib_1.__extends(RunScripts, _super); function RunScripts(e) { return _super.call(this, qn, "runScripts", ["both", "client", "none", "server"]) || this; } return RunScripts; }(OptionObject)); var config_Script = /** @class */ (function (_super) { tslib_1.__extends(config_Script, _super); function config_Script(e) { var _this = _super.call(this, qn, "script", !0) || this; _this.currentPage = null; _this.exclude = null; _this.runScripts = null; return _this; } return config_Script; }(XFAObject)); var ScriptModel = /** @class */ (function (_super) { tslib_1.__extends(ScriptModel, _super); function ScriptModel(e) { return _super.call(this, qn, "scriptModel", ["XFA", "none"]) || this; } return ScriptModel; }(OptionObject)); var Severity = /** @class */ (function (_super) { tslib_1.__extends(Severity, _super); function Severity(e) { return _super.call(this, qn, "severity", ["ignore", "error", "information", "trace", "warning"]) || this; } return Severity; }(OptionObject)); var SilentPrint = /** @class */ (function (_super) { tslib_1.__extends(SilentPrint, _super); function SilentPrint(e) { var _this = _super.call(this, qn, "silentPrint", !0) || this; _this.addSilentPrint = null; _this.printerName = null; return _this; } return SilentPrint; }(XFAObject)); var Staple = /** @class */ (function (_super) { tslib_1.__extends(Staple, _super); function Staple(e) { var _this = _super.call(this, qn, "staple") || this; _this.mode = getStringOption(e.mode, ["usePrinterSetting", "on", "off"]); return _this; } return Staple; }(XFAObject)); var StartNode = /** @class */ (function (_super) { tslib_1.__extends(StartNode, _super); function StartNode(e) { return _super.call(this, qn, "startNode") || this; } return StartNode; }(StringObject)); var StartPage = /** @class */ (function (_super) { tslib_1.__extends(StartPage, _super); function StartPage(e) { return _super.call(this, qn, "startPage", 0, (function (e) { return !0; })) || this; } return StartPage; }(IntegerObject)); var SubmitFormat = /** @class */ (function (_super) { tslib_1.__extends(SubmitFormat, _super); function SubmitFormat(e) { return _super.call(this, qn, "submitFormat", ["html", "delegate", "fdf", "xml", "pdf"]) || this; } return SubmitFormat; }(OptionObject)); var SubmitUrl = /** @class */ (function (_super) { tslib_1.__extends(SubmitUrl, _super); function SubmitUrl(e) { return _super.call(this, qn, "submitUrl") || this; } return SubmitUrl; }(StringObject)); var SubsetBelow = /** @class */ (function (_super) { tslib_1.__extends(SubsetBelow, _super); function SubsetBelow(e) { return _super.call(this, qn, "subsetBelow", 100, (function (e) { return e >= 0 && e <= 100; })) || this; } return SubsetBelow; }(IntegerObject)); var SuppressBanner = /** @class */ (function (_super) { tslib_1.__extends(SuppressBanner, _super); function SuppressBanner(e) { return _super.call(this, qn, "suppressBanner") || this; } return SuppressBanner; }(Option01)); var Tagged = /** @class */ (function (_super) { tslib_1.__extends(Tagged, _super); function Tagged(e) { return _super.call(this, qn, "tagged") || this; } return Tagged; }(Option01)); var config_Template = /** @class */ (function (_super) { tslib_1.__extends(config_Template, _super); function config_Template(e) { var _this = _super.call(this, qn, "template", !0) || this; _this.base = null; _this.relevant = null; _this.startPage = null; _this.uri = null; _this.xsl = null; return _this; } return config_Template; }(XFAObject)); var Threshold = /** @class */ (function (_super) { tslib_1.__extends(Threshold, _super); function Threshold(e) { return _super.call(this, qn, "threshold", ["trace", "error", "information", "warning"]) || this; } return Threshold; }(OptionObject)); var To = /** @class */ (function (_super) { tslib_1.__extends(To, _super); function To(e) { return _super.call(this, qn, "to", ["null", "memory", "stderr", "stdout", "system", "uri"]) || this; } return To; }(OptionObject)); var TemplateCache = /** @class */ (function (_super) { tslib_1.__extends(TemplateCache, _super); function TemplateCache(e) { var _this = _super.call(this, qn, "templateCache") || this; _this.maxEntries = getInteger({ data: e.maxEntries, defaultValue: 5, validate: function (e) { return e >= 0; } }); return _this; } return TemplateCache; }(XFAObject)); var Trace = /** @class */ (function (_super) { tslib_1.__extends(Trace, _super); function Trace(e) { var _this = _super.call(this, qn, "trace", !0) || this; _this.area = new XFAObjectArray; return _this; } return Trace; }(XFAObject)); var Transform = /** @class */ (function (_super) { tslib_1.__extends(Transform, _super); function Transform(e) { var _this = _super.call(this, qn, "transform", !0) || this; _this.groupParent = null; _this.ifEmpty = null; _this.nameAttr = null; _this.picture = null; _this.presence = null; _this.rename = null; _this.whitespace = null; return _this; } return Transform; }(XFAObject)); var Type = /** @class */ (function (_super) { tslib_1.__extends(Type, _super); function Type(e) { return _super.call(this, qn, "type", ["none", "ascii85", "asciiHex", "ccittfax", "flate", "lzw", "runLength", "native", "xdp", "mergedXDP"]) || this; } return Type; }(OptionObject)); var Uri = /** @class */ (function (_super) { tslib_1.__extends(Uri, _super); function Uri(e) { return _super.call(this, qn, "uri") || this; } return Uri; }(StringObject)); var config_Validate = /** @class */ (function (_super) { tslib_1.__extends(config_Validate, _super); function config_Validate(e) { return _super.call(this, qn, "validate", ["preSubmit", "prePrint", "preExecute", "preSave"]) || this; } return config_Validate; }(OptionObject)); var ValidateApprovalSignatures = /** @class */ (function (_super) { tslib_1.__extends(ValidateApprovalSignatures, _super); function ValidateApprovalSignatures(e) { return _super.call(this, qn, "validateApprovalSignatures") || this; } ValidateApprovalSignatures.prototype[sr] = function () { this[er] = this[er].trim().split(/\s+/).filter((function (e) { return ["docReady", "postSign"].includes(e); })); }; return ValidateApprovalSignatures; }(ContentObject)); var ValidationMessaging = /** @class */ (function (_super) { tslib_1.__extends(ValidationMessaging, _super); function ValidationMessaging(e) { return _super.call(this, qn, "validationMessaging", ["allMessagesIndividually", "allMessagesTogether", "firstMessageOnly", "noMessages"]) || this; } return ValidationMessaging; }(OptionObject)); var Version = /** @class */ (function (_super) { tslib_1.__extends(Version, _super); function Version(e) { return _super.call(this, qn, "version", ["1.7", "1.6", "1.5", "1.4", "1.3", "1.2"]) || this; } return Version; }(OptionObject)); var VersionControl = /** @class */ (function (_super) { tslib_1.__extends(VersionControl, _super); function VersionControl(e) { var _this = _super.call(this, qn, "VersionControl") || this; _this.outputBelow = getStringOption(e.outputBelow, ["warn", "error", "update"]); _this.sourceAbove = getStringOption(e.sourceAbove, ["warn", "error"]); _this.sourceBelow = getStringOption(e.sourceBelow, ["update", "maintain"]); return _this; } return VersionControl; }(XFAObject)); var ViewerPreferences = /** @class */ (function (_super) { tslib_1.__extends(ViewerPreferences, _super); function ViewerPreferences(e) { var _this = _super.call(this, qn, "viewerPreferences", !0) || this; _this.ADBE_JSConsole = null; _this.ADBE_JSDebugger = null; _this.addViewerPreferences = null; _this.duplexOption = null; _this.enforce = null; _this.numberOfCopies = null; _this.pageRange = null; _this.pickTrayByPDFSize = null; _this.printScaling = null; return _this; } return ViewerPreferences; }(XFAObject)); var WebClient = /** @class */ (function (_super) { tslib_1.__extends(WebClient, _super); function WebClient(e) { var _this = _super.call(this, qn, "webClient", !0) || this; _this.name = e.name ? e.name.trim() : ""; _this.fontInfo = null; _this.xdc = null; return _this; } return WebClient; }(XFAObject)); var Whitespace = /** @class */ (function (_super) { tslib_1.__extends(Whitespace, _super); function Whitespace(e) { return _super.call(this, qn, "whitespace", ["preserve", "ltrim", "normalize", "rtrim", "trim"]) || this; } return Whitespace; }(OptionObject)); var Window = /** @class */ (function (_super) { tslib_1.__extends(Window, _super); function Window(e) { return _super.call(this, qn, "window") || this; } Window.prototype[sr] = function () { var e = this[er].trim().split(/\s*,\s*/, 2).map((function (e) { return parseInt(e, 10); })); if (e.some((function (e) { return isNaN(e); }))) this[er] = [0, 0]; else { 1 === e.length && e.push(e[0]); this[er] = e; } }; return Window; }(ContentObject)); var Xdc = /** @class */ (function (_super) { tslib_1.__extends(Xdc, _super); function Xdc(e) { var _this = _super.call(this, qn, "xdc", !0) || this; _this.uri = new XFAObjectArray; _this.xsl = new XFAObjectArray; return _this; } return Xdc; }(XFAObject)); var Xdp = /** @class */ (function (_super) { tslib_1.__extends(Xdp, _super); function Xdp(e) { var _this = _super.call(this, qn, "xdp", !0) || this; _this.packets = null; return _this; } return Xdp; }(XFAObject)); var Xsl = /** @class */ (function (_super) { tslib_1.__extends(Xsl, _super); function Xsl(e) { var _this = _super.call(this, qn, "xsl", !0) || this; _this.debug = null; _this.uri = null; return _this; } return Xsl; }(XFAObject)); var Zpl = /** @class */ (function (_super) { tslib_1.__extends(Zpl, _super); function Zpl(e) { var _this = _super.call(this, qn, "zpl", !0) || this; _this.name = e.name ? e.name.trim() : ""; _this.batchOutput = null; _this.flipLabel = null; _this.fontInfo = null; _this.xdc = null; return _this; } return Zpl; }(XFAObject)); var ConfigNamespace = /** @class */ (function () { function ConfigNamespace() { } ConfigNamespace[on] = function (e, t) { if (ConfigNamespace.hasOwnProperty(e)) return ConfigNamespace[e](t); }; ConfigNamespace.acrobat = function (e) { return new Acrobat(e); }; ConfigNamespace.acrobat7 = function (e) { return new Acrobat7(e); }; ConfigNamespace.ADBE_JSConsole = function (e) { return new ADBE_JSConsole(e); }; ConfigNamespace.ADBE_JSDebugger = function (e) { return new ADBE_JSDebugger(e); }; ConfigNamespace.addSilentPrint = function (e) { return new AddSilentPrint(e); }; ConfigNamespace.addViewerPreferences = function (e) { return new AddViewerPreferences(e); }; ConfigNamespace.adjustData = function (e) { return new AdjustData(e); }; ConfigNamespace.adobeExtensionLevel = function (e) { return new AdobeExtensionLevel(e); }; ConfigNamespace.agent = function (e) { return new Agent(e); }; ConfigNamespace.alwaysEmbed = function (e) { return new AlwaysEmbed(e); }; ConfigNamespace.amd = function (e) { return new Amd(e); }; ConfigNamespace.area = function (e) { return new config_Area(e); }; ConfigNamespace.attributes = function (e) { return new Attributes(e); }; ConfigNamespace.autoSave = function (e) { return new AutoSave(e); }; ConfigNamespace.base = function (e) { return new Base(e); }; ConfigNamespace.batchOutput = function (e) { return new BatchOutput(e); }; ConfigNamespace.behaviorOverride = function (e) { return new BehaviorOverride(e); }; ConfigNamespace.cache = function (e) { return new Cache(e); }; ConfigNamespace.change = function (e) { return new Change(e); }; ConfigNamespace.common = function (e) { return new Common(e); }; ConfigNamespace.compress = function (e) { return new Compress(e); }; ConfigNamespace.compressLogicalStructure = function (e) { return new CompressLogicalStructure(e); }; ConfigNamespace.compressObjectStream = function (e) { return new CompressObjectStream(e); }; ConfigNamespace.compression = function (e) { return new Compression(e); }; ConfigNamespace.config = function (e) { return new Config(e); }; ConfigNamespace.conformance = function (e) { return new Conformance(e); }; ConfigNamespace.contentCopy = function (e) { return new ContentCopy(e); }; ConfigNamespace.copies = function (e) { return new Copies(e); }; ConfigNamespace.creator = function (e) { return new Creator(e); }; ConfigNamespace.currentPage = function (e) { return new CurrentPage(e); }; ConfigNamespace.data = function (e) { return new Data(e); }; ConfigNamespace.debug = function (e) { return new Debug(e); }; ConfigNamespace.defaultTypeface = function (e) { return new DefaultTypeface(e); }; ConfigNamespace.destination = function (e) { return new Destination(e); }; ConfigNamespace.documentAssembly = function (e) { return new DocumentAssembly(e); }; ConfigNamespace.driver = function (e) { return new Driver(e); }; ConfigNamespace.duplexOption = function (e) { return new DuplexOption(e); }; ConfigNamespace.dynamicRender = function (e) { return new DynamicRender(e); }; ConfigNamespace.embed = function (e) { return new Embed(e); }; ConfigNamespace.encrypt = function (e) { return new config_Encrypt(e); }; ConfigNamespace.encryption = function (e) { return new config_Encryption(e); }; ConfigNamespace.encryptionLevel = function (e) { return new EncryptionLevel(e); }; ConfigNamespace.enforce = function (e) { return new Enforce(e); }; ConfigNamespace.equate = function (e) { return new Equate(e); }; ConfigNamespace.equateRange = function (e) { return new EquateRange(e); }; ConfigNamespace.exclude = function (e) { return new Exclude(e); }; ConfigNamespace.excludeNS = function (e) { return new ExcludeNS(e); }; ConfigNamespace.flipLabel = function (e) { return new FlipLabel(e); }; ConfigNamespace.fontInfo = function (e) { return new config_FontInfo(e); }; ConfigNamespace.formFieldFilling = function (e) { return new FormFieldFilling(e); }; ConfigNamespace.groupParent = function (e) { return new GroupParent(e); }; ConfigNamespace.ifEmpty = function (e) { return new IfEmpty(e); }; ConfigNamespace.includeXDPContent = function (e) { return new IncludeXDPContent(e); }; ConfigNamespace.incrementalLoad = function (e) { return new IncrementalLoad(e); }; ConfigNamespace.incrementalMerge = function (e) { return new IncrementalMerge(e); }; ConfigNamespace.interactive = function (e) { return new Interactive(e); }; ConfigNamespace.jog = function (e) { return new Jog(e); }; ConfigNamespace.labelPrinter = function (e) { return new LabelPrinter(e); }; ConfigNamespace.layout = function (e) { return new Layout(e); }; ConfigNamespace.level = function (e) { return new Level(e); }; ConfigNamespace.linearized = function (e) { return new Linearized(e); }; ConfigNamespace.locale = function (e) { return new Locale(e); }; ConfigNamespace.localeSet = function (e) { return new LocaleSet(e); }; ConfigNamespace.log = function (e) { return new Log(e); }; ConfigNamespace.map = function (e) { return new MapElement(e); }; ConfigNamespace.mediumInfo = function (e) { return new MediumInfo(e); }; ConfigNamespace.message = function (e) { return new config_Message(e); }; ConfigNamespace.messaging = function (e) { return new Messaging(e); }; ConfigNamespace.mode = function (e) { return new Mode(e); }; ConfigNamespace.modifyAnnots = function (e) { return new ModifyAnnots(e); }; ConfigNamespace.msgId = function (e) { return new MsgId(e); }; ConfigNamespace.nameAttr = function (e) { return new NameAttr(e); }; ConfigNamespace.neverEmbed = function (e) { return new NeverEmbed(e); }; ConfigNamespace.numberOfCopies = function (e) { return new NumberOfCopies(e); }; ConfigNamespace.openAction = function (e) { return new OpenAction(e); }; ConfigNamespace.output = function (e) { return new Output(e); }; ConfigNamespace.outputBin = function (e) { return new OutputBin(e); }; ConfigNamespace.outputXSL = function (e) { return new OutputXSL(e); }; ConfigNamespace.overprint = function (e) { return new Overprint(e); }; ConfigNamespace.packets = function (e) { return new Packets(e); }; ConfigNamespace.pageOffset = function (e) { return new PageOffset(e); }; ConfigNamespace.pageRange = function (e) { return new PageRange(e); }; ConfigNamespace.pagination = function (e) { return new Pagination(e); }; ConfigNamespace.paginationOverride = function (e) { return new PaginationOverride(e); }; ConfigNamespace.part = function (e) { return new Part(e); }; ConfigNamespace.pcl = function (e) { return new Pcl(e); }; ConfigNamespace.pdf = function (e) { return new Pdf(e); }; ConfigNamespace.pdfa = function (e) { return new Pdfa(e); }; ConfigNamespace.permissions = function (e) { return new Permissions(e); }; ConfigNamespace.pickTrayByPDFSize = function (e) { return new PickTrayByPDFSize(e); }; ConfigNamespace.picture = function (e) { return new config_Picture(e); }; ConfigNamespace.plaintextMetadata = function (e) { return new PlaintextMetadata(e); }; ConfigNamespace.presence = function (e) { return new Presence(e); }; ConfigNamespace.present = function (e) { return new Present(e); }; ConfigNamespace.print = function (e) { return new Print(e); }; ConfigNamespace.printHighQuality = function (e) { return new PrintHighQuality(e); }; ConfigNamespace.printScaling = function (e) { return new PrintScaling(e); }; ConfigNamespace.printerName = function (e) { return new PrinterName(e); }; ConfigNamespace.producer = function (e) { return new Producer(e); }; ConfigNamespace.ps = function (e) { return new Ps(e); }; ConfigNamespace.range = function (e) { return new Range(e); }; ConfigNamespace.record = function (e) { return new Record(e); }; ConfigNamespace.relevant = function (e) { return new Relevant(e); }; ConfigNamespace.rename = function (e) { return new Rename(e); }; ConfigNamespace.renderPolicy = function (e) { return new RenderPolicy(e); }; ConfigNamespace.runScripts = function (e) { return new RunScripts(e); }; ConfigNamespace.script = function (e) { return new config_Script(e); }; ConfigNamespace.scriptModel = function (e) { return new ScriptModel(e); }; ConfigNamespace.severity = function (e) { return new Severity(e); }; ConfigNamespace.silentPrint = function (e) { return new SilentPrint(e); }; ConfigNamespace.staple = function (e) { return new Staple(e); }; ConfigNamespace.startNode = function (e) { return new StartNode(e); }; ConfigNamespace.startPage = function (e) { return new StartPage(e); }; ConfigNamespace.submitFormat = function (e) { return new SubmitFormat(e); }; ConfigNamespace.submitUrl = function (e) { return new SubmitUrl(e); }; ConfigNamespace.subsetBelow = function (e) { return new SubsetBelow(e); }; ConfigNamespace.suppressBanner = function (e) { return new SuppressBanner(e); }; ConfigNamespace.tagged = function (e) { return new Tagged(e); }; ConfigNamespace.template = function (e) { return new config_Template(e); }; ConfigNamespace.templateCache = function (e) { return new TemplateCache(e); }; ConfigNamespace.threshold = function (e) { return new Threshold(e); }; ConfigNamespace.to = function (e) { return new To(e); }; ConfigNamespace.trace = function (e) { return new Trace(e); }; ConfigNamespace.transform = function (e) { return new Transform(e); }; ConfigNamespace.type = function (e) { return new Type(e); }; ConfigNamespace.uri = function (e) { return new Uri(e); }; ConfigNamespace.validate = function (e) { return new config_Validate(e); }; ConfigNamespace.validateApprovalSignatures = function (e) { return new ValidateApprovalSignatures(e); }; ConfigNamespace.validationMessaging = function (e) { return new ValidationMessaging(e); }; ConfigNamespace.version = function (e) { return new Version(e); }; ConfigNamespace.versionControl = function (e) { return new VersionControl(e); }; ConfigNamespace.viewerPreferences = function (e) { return new ViewerPreferences(e); }; ConfigNamespace.webClient = function (e) { return new WebClient(e); }; ConfigNamespace.whitespace = function (e) { return new Whitespace(e); }; ConfigNamespace.window = function (e) { return new Window(e); }; ConfigNamespace.xdc = function (e) { return new Xdc(e); }; ConfigNamespace.xdp = function (e) { return new Xdp(e); }; ConfigNamespace.xsl = function (e) { return new Xsl(e); }; ConfigNamespace.zpl = function (e) { return new Zpl(e); }; return ConfigNamespace; }()); var On = gn.connectionSet.id; var ConnectionSet = /** @class */ (function (_super) { tslib_1.__extends(ConnectionSet, _super); function ConnectionSet(e) { var _this = _super.call(this, On, "connectionSet", !0) || this; _this.wsdlConnection = new XFAObjectArray; _this.xmlConnection = new XFAObjectArray; _this.xsdConnection = new XFAObjectArray; return _this; } return ConnectionSet; }(XFAObject)); var EffectiveInputPolicy = /** @class */ (function (_super) { tslib_1.__extends(EffectiveInputPolicy, _super); function EffectiveInputPolicy(e) { var _this = _super.call(this, On, "effectiveInputPolicy") || this; _this.id = e.id || ""; _this.name = e.name || ""; _this.use = e.use || ""; _this.usehref = e.usehref || ""; return _this; } return EffectiveInputPolicy; }(XFAObject)); var EffectiveOutputPolicy = /** @class */ (function (_super) { tslib_1.__extends(EffectiveOutputPolicy, _super); function EffectiveOutputPolicy(e) { var _this = _super.call(this, On, "effectiveOutputPolicy") || this; _this.id = e.id || ""; _this.name = e.name || ""; _this.use = e.use || ""; _this.usehref = e.usehref || ""; return _this; } return EffectiveOutputPolicy; }(XFAObject)); var Operation = /** @class */ (function (_super) { tslib_1.__extends(Operation, _super); function Operation(e) { var _this = _super.call(this, On, "operation") || this; _this.id = e.id || ""; _this.input = e.input || ""; _this.name = e.name || ""; _this.output = e.output || ""; _this.use = e.use || ""; _this.usehref = e.usehref || ""; return _this; } return Operation; }(StringObject)); var RootElement = /** @class */ (function (_super) { tslib_1.__extends(RootElement, _super); function RootElement(e) { var _this = _super.call(this, On, "rootElement") || this; _this.id = e.id || ""; _this.name = e.name || ""; _this.use = e.use || ""; _this.usehref = e.usehref || ""; return _this; } return RootElement; }(StringObject)); var SoapAction = /** @class */ (function (_super) { tslib_1.__extends(SoapAction, _super); function SoapAction(e) { var _this = _super.call(this, On, "soapAction") || this; _this.id = e.id || ""; _this.name = e.name || ""; _this.use = e.use || ""; _this.usehref = e.usehref || ""; return _this; } return SoapAction; }(StringObject)); var SoapAddress = /** @class */ (function (_super) { tslib_1.__extends(SoapAddress, _super); function SoapAddress(e) { var _this = _super.call(this, On, "soapAddress") || this; _this.id = e.id || ""; _this.name = e.name || ""; _this.use = e.use || ""; _this.usehref = e.usehref || ""; return _this; } return SoapAddress; }(StringObject)); var connection_set_Uri = /** @class */ (function (_super) { tslib_1.__extends(connection_set_Uri, _super); function connection_set_Uri(e) { var _this = _super.call(this, On, "uri") || this; _this.id = e.id || ""; _this.name = e.name || ""; _this.use = e.use || ""; _this.usehref = e.usehref || ""; return _this; } return connection_set_Uri; }(StringObject)); var WsdlAddress = /** @class */ (function (_super) { tslib_1.__extends(WsdlAddress, _super); function WsdlAddress(e) { var _this = _super.call(this, On, "wsdlAddress") || this; _this.id = e.id || ""; _this.name = e.name || ""; _this.use = e.use || ""; _this.usehref = e.usehref || ""; return _this; } return WsdlAddress; }(StringObject)); var WsdlConnection = /** @class */ (function (_super) { tslib_1.__extends(WsdlConnection, _super); function WsdlConnection(e) { var _this = _super.call(this, On, "wsdlConnection", !0) || this; _this.dataDescription = e.dataDescription || ""; _this.name = e.name || ""; _this.effectiveInputPolicy = null; _this.effectiveOutputPolicy = null; _this.operation = null; _this.soapAction = null; _this.soapAddress = null; _this.wsdlAddress = null; return _this; } return WsdlConnection; }(XFAObject)); var XmlConnection = /** @class */ (function (_super) { tslib_1.__extends(XmlConnection, _super); function XmlConnection(e) { var _this = _super.call(this, On, "xmlConnection", !0) || this; _this.dataDescription = e.dataDescription || ""; _this.name = e.name || ""; _this.uri = null; return _this; } return XmlConnection; }(XFAObject)); var XsdConnection = /** @class */ (function (_super) { tslib_1.__extends(XsdConnection, _super); function XsdConnection(e) { var _this = _super.call(this, On, "xsdConnection", !0) || this; _this.dataDescription = e.dataDescription || ""; _this.name = e.name || ""; _this.rootElement = null; _this.uri = null; return _this; } return XsdConnection; }(XFAObject)); var ConnectionSetNamespace = /** @class */ (function () { function ConnectionSetNamespace() { } ConnectionSetNamespace[on] = function (e, t) { if (ConnectionSetNamespace.hasOwnProperty(e)) return ConnectionSetNamespace[e](t); }; ConnectionSetNamespace.connectionSet = function (e) { return new ConnectionSet(e); }; ConnectionSetNamespace.effectiveInputPolicy = function (e) { return new EffectiveInputPolicy(e); }; ConnectionSetNamespace.effectiveOutputPolicy = function (e) { return new EffectiveOutputPolicy(e); }; ConnectionSetNamespace.operation = function (e) { return new Operation(e); }; ConnectionSetNamespace.rootElement = function (e) { return new RootElement(e); }; ConnectionSetNamespace.soapAction = function (e) { return new SoapAction(e); }; ConnectionSetNamespace.soapAddress = function (e) { return new SoapAddress(e); }; ConnectionSetNamespace.uri = function (e) { return new connection_set_Uri(e); }; ConnectionSetNamespace.wsdlAddress = function (e) { return new WsdlAddress(e); }; ConnectionSetNamespace.wsdlConnection = function (e) { return new WsdlConnection(e); }; ConnectionSetNamespace.xmlConnection = function (e) { return new XmlConnection(e); }; ConnectionSetNamespace.xsdConnection = function (e) { return new XsdConnection(e); }; return ConnectionSetNamespace; }()); var Pn = gn.datasets.id; var datasets_Data = /** @class */ (function (_super) { tslib_1.__extends(datasets_Data, _super); function datasets_Data(e) { return _super.call(this, Pn, "data", e) || this; } datasets_Data.prototype[Gr] = function () { return !0; }; return datasets_Data; }(XmlObject)); var Datasets = /** @class */ (function (_super) { tslib_1.__extends(Datasets, _super); function Datasets(e) { var _this = _super.call(this, Pn, "datasets", !0) || this; _this.data = null; _this.Signature = null; return _this; } Datasets.prototype[Kr] = function (e) { var t = e[Yr]; ("data" === t && e[Hr] === Pn || "Signature" === t && e[Hr] === gn.signature.id) && (this[t] = e); this[js](e); }; return Datasets; }(XFAObject)); var DatasetsNamespace = /** @class */ (function () { function DatasetsNamespace() { } DatasetsNamespace[on] = function (e, t) { if (DatasetsNamespace.hasOwnProperty(e)) return DatasetsNamespace[e](t); }; DatasetsNamespace.datasets = function (e) { return new Datasets(e); }; DatasetsNamespace.data = function (e) { return new datasets_Data(e); }; return DatasetsNamespace; }()); var Wn = gn.localeSet.id; var CalendarSymbols = /** @class */ (function (_super) { tslib_1.__extends(CalendarSymbols, _super); function CalendarSymbols(e) { var _this = _super.call(this, Wn, "calendarSymbols", !0) || this; _this.name = "gregorian"; _this.dayNames = new XFAObjectArray(2); _this.eraNames = null; _this.meridiemNames = null; _this.monthNames = new XFAObjectArray(2); return _this; } return CalendarSymbols; }(XFAObject)); var CurrencySymbol = /** @class */ (function (_super) { tslib_1.__extends(CurrencySymbol, _super); function CurrencySymbol(e) { var _this = _super.call(this, Wn, "currencySymbol") || this; _this.name = getStringOption(e.name, ["symbol", "isoname", "decimal"]); return _this; } return CurrencySymbol; }(StringObject)); var CurrencySymbols = /** @class */ (function (_super) { tslib_1.__extends(CurrencySymbols, _super); function CurrencySymbols(e) { var _this = _super.call(this, Wn, "currencySymbols", !0) || this; _this.currencySymbol = new XFAObjectArray(3); return _this; } return CurrencySymbols; }(XFAObject)); var DatePattern = /** @class */ (function (_super) { tslib_1.__extends(DatePattern, _super); function DatePattern(e) { var _this = _super.call(this, Wn, "datePattern") || this; _this.name = getStringOption(e.name, ["full", "long", "med", "short"]); return _this; } return DatePattern; }(StringObject)); var DatePatterns = /** @class */ (function (_super) { tslib_1.__extends(DatePatterns, _super); function DatePatterns(e) { var _this = _super.call(this, Wn, "datePatterns", !0) || this; _this.datePattern = new XFAObjectArray(4); return _this; } return DatePatterns; }(XFAObject)); var DateTimeSymbols = /** @class */ (function (_super) { tslib_1.__extends(DateTimeSymbols, _super); function DateTimeSymbols(e) { return _super.call(this, Wn, "dateTimeSymbols") || this; } return DateTimeSymbols; }(ContentObject)); var Day = /** @class */ (function (_super) { tslib_1.__extends(Day, _super); function Day(e) { return _super.call(this, Wn, "day") || this; } return Day; }(StringObject)); var DayNames = /** @class */ (function (_super) { tslib_1.__extends(DayNames, _super); function DayNames(e) { var _this = _super.call(this, Wn, "dayNames", !0) || this; _this.abbr = getInteger({ data: e.abbr, defaultValue: 0, validate: function (e) { return 1 === e; } }); _this.day = new XFAObjectArray(7); return _this; } return DayNames; }(XFAObject)); var Era = /** @class */ (function (_super) { tslib_1.__extends(Era, _super); function Era(e) { return _super.call(this, Wn, "era") || this; } return Era; }(StringObject)); var EraNames = /** @class */ (function (_super) { tslib_1.__extends(EraNames, _super); function EraNames(e) { var _this = _super.call(this, Wn, "eraNames", !0) || this; _this.era = new XFAObjectArray(2); return _this; } return EraNames; }(XFAObject)); var locale_set_Locale = /** @class */ (function (_super) { tslib_1.__extends(locale_set_Locale, _super); function locale_set_Locale(e) { var _this = _super.call(this, Wn, "locale", !0) || this; _this.desc = e.desc || ""; _this.name = "isoname"; _this.calendarSymbols = null; _this.currencySymbols = null; _this.datePatterns = null; _this.dateTimeSymbols = null; _this.numberPatterns = null; _this.numberSymbols = null; _this.timePatterns = null; _this.typeFaces = null; return _this; } return locale_set_Locale; }(XFAObject)); var locale_set_LocaleSet = /** @class */ (function (_super) { tslib_1.__extends(locale_set_LocaleSet, _super); function locale_set_LocaleSet(e) { var _this = _super.call(this, Wn, "localeSet", !0) || this; _this.locale = new XFAObjectArray; return _this; } return locale_set_LocaleSet; }(XFAObject)); var Meridiem = /** @class */ (function (_super) { tslib_1.__extends(Meridiem, _super); function Meridiem(e) { return _super.call(this, Wn, "meridiem") || this; } return Meridiem; }(StringObject)); var MeridiemNames = /** @class */ (function (_super) { tslib_1.__extends(MeridiemNames, _super); function MeridiemNames(e) { var _this = _super.call(this, Wn, "meridiemNames", !0) || this; _this.meridiem = new XFAObjectArray(2); return _this; } return MeridiemNames; }(XFAObject)); var Month = /** @class */ (function (_super) { tslib_1.__extends(Month, _super); function Month(e) { return _super.call(this, Wn, "month") || this; } return Month; }(StringObject)); var MonthNames = /** @class */ (function (_super) { tslib_1.__extends(MonthNames, _super); function MonthNames(e) { var _this = _super.call(this, Wn, "monthNames", !0) || this; _this.abbr = getInteger({ data: e.abbr, defaultValue: 0, validate: function (e) { return 1 === e; } }); _this.month = new XFAObjectArray(12); return _this; } return MonthNames; }(XFAObject)); var NumberPattern = /** @class */ (function (_super) { tslib_1.__extends(NumberPattern, _super); function NumberPattern(e) { var _this = _super.call(this, Wn, "numberPattern") || this; _this.name = getStringOption(e.name, ["full", "long", "med", "short"]); return _this; } return NumberPattern; }(StringObject)); var NumberPatterns = /** @class */ (function (_super) { tslib_1.__extends(NumberPatterns, _super); function NumberPatterns(e) { var _this = _super.call(this, Wn, "numberPatterns", !0) || this; _this.numberPattern = new XFAObjectArray(4); return _this; } return NumberPatterns; }(XFAObject)); var NumberSymbol = /** @class */ (function (_super) { tslib_1.__extends(NumberSymbol, _super); function NumberSymbol(e) { var _this = _super.call(this, Wn, "numberSymbol") || this; _this.name = getStringOption(e.name, ["decimal", "grouping", "percent", "minus", "zero"]); return _this; } return NumberSymbol; }(StringObject)); var NumberSymbols = /** @class */ (function (_super) { tslib_1.__extends(NumberSymbols, _super); function NumberSymbols(e) { var _this = _super.call(this, Wn, "numberSymbols", !0) || this; _this.numberSymbol = new XFAObjectArray(5); return _this; } return NumberSymbols; }(XFAObject)); var TimePattern = /** @class */ (function (_super) { tslib_1.__extends(TimePattern, _super); function TimePattern(e) { var _this = _super.call(this, Wn, "timePattern") || this; _this.name = getStringOption(e.name, ["full", "long", "med", "short"]); return _this; } return TimePattern; }(StringObject)); var TimePatterns = /** @class */ (function (_super) { tslib_1.__extends(TimePatterns, _super); function TimePatterns(e) { var _this = _super.call(this, Wn, "timePatterns", !0) || this; _this.timePattern = new XFAObjectArray(4); return _this; } return TimePatterns; }(XFAObject)); var TypeFace = /** @class */ (function (_super) { tslib_1.__extends(TypeFace, _super); function TypeFace(e) { var _this = _super.call(this, Wn, "typeFace", !0) || this; _this.name = "" | e.name; return _this; } return TypeFace; }(XFAObject)); var TypeFaces = /** @class */ (function (_super) { tslib_1.__extends(TypeFaces, _super); function TypeFaces(e) { var _this = _super.call(this, Wn, "typeFaces", !0) || this; _this.typeFace = new XFAObjectArray; return _this; } return TypeFaces; }(XFAObject)); var LocaleSetNamespace = /** @class */ (function () { function LocaleSetNamespace() { } LocaleSetNamespace[on] = function (e, t) { if (LocaleSetNamespace.hasOwnProperty(e)) return LocaleSetNamespace[e](t); }; LocaleSetNamespace.calendarSymbols = function (e) { return new CalendarSymbols(e); }; LocaleSetNamespace.currencySymbol = function (e) { return new CurrencySymbol(e); }; LocaleSetNamespace.currencySymbols = function (e) { return new CurrencySymbols(e); }; LocaleSetNamespace.datePattern = function (e) { return new DatePattern(e); }; LocaleSetNamespace.datePatterns = function (e) { return new DatePatterns(e); }; LocaleSetNamespace.dateTimeSymbols = function (e) { return new DateTimeSymbols(e); }; LocaleSetNamespace.day = function (e) { return new Day(e); }; LocaleSetNamespace.dayNames = function (e) { return new DayNames(e); }; LocaleSetNamespace.era = function (e) { return new Era(e); }; LocaleSetNamespace.eraNames = function (e) { return new EraNames(e); }; LocaleSetNamespace.locale = function (e) { return new locale_set_Locale(e); }; LocaleSetNamespace.localeSet = function (e) { return new locale_set_LocaleSet(e); }; LocaleSetNamespace.meridiem = function (e) { return new Meridiem(e); }; LocaleSetNamespace.meridiemNames = function (e) { return new MeridiemNames(e); }; LocaleSetNamespace.month = function (e) { return new Month(e); }; LocaleSetNamespace.monthNames = function (e) { return new MonthNames(e); }; LocaleSetNamespace.numberPattern = function (e) { return new NumberPattern(e); }; LocaleSetNamespace.numberPatterns = function (e) { return new NumberPatterns(e); }; LocaleSetNamespace.numberSymbol = function (e) { return new NumberSymbol(e); }; LocaleSetNamespace.numberSymbols = function (e) { return new NumberSymbols(e); }; LocaleSetNamespace.timePattern = function (e) { return new TimePattern(e); }; LocaleSetNamespace.timePatterns = function (e) { return new TimePatterns(e); }; LocaleSetNamespace.typeFace = function (e) { return new TypeFace(e); }; LocaleSetNamespace.typeFaces = function (e) { return new TypeFaces(e); }; return LocaleSetNamespace; }()); var Xn = gn.signature.id; var signature_Signature = /** @class */ (function (_super) { tslib_1.__extends(signature_Signature, _super); function signature_Signature(e) { return _super.call(this, Xn, "signature", !0) || this; } return signature_Signature; }(XFAObject)); var SignatureNamespace = /** @class */ (function () { function SignatureNamespace() { } SignatureNamespace[on] = function (e, t) { if (SignatureNamespace.hasOwnProperty(e)) return SignatureNamespace[e](t); }; SignatureNamespace.signature = function (e) { return new signature_Signature(e); }; return SignatureNamespace; }()); var jn = gn.stylesheet.id; var Stylesheet = /** @class */ (function (_super) { tslib_1.__extends(Stylesheet, _super); function Stylesheet(e) { return _super.call(this, jn, "stylesheet", !0) || this; } return Stylesheet; }(XFAObject)); var StylesheetNamespace = /** @class */ (function () { function StylesheetNamespace() { } StylesheetNamespace[on] = function (e, t) { if (StylesheetNamespace.hasOwnProperty(e)) return StylesheetNamespace[e](t); }; StylesheetNamespace.stylesheet = function (e) { return new Stylesheet(e); }; return StylesheetNamespace; }()); var Zn = gn.xdp.id; var xdp_Xdp = /** @class */ (function (_super) { tslib_1.__extends(xdp_Xdp, _super); function xdp_Xdp(e) { var _this = _super.call(this, Zn, "xdp", !0) || this; _this.uuid = e.uuid || ""; _this.timeStamp = e.timeStamp || ""; _this.config = null; _this.connectionSet = null; _this.datasets = null; _this.localeSet = null; _this.stylesheet = new XFAObjectArray; _this.template = null; return _this; } xdp_Xdp.prototype[Tr] = function (e) { var t = gn[e[Yr]]; return t && e[Hr] === t.id; }; return xdp_Xdp; }(XFAObject)); var XdpNamespace = /** @class */ (function () { function XdpNamespace() { } XdpNamespace[on] = function (e, t) { if (XdpNamespace.hasOwnProperty(e)) return XdpNamespace[e](t); }; XdpNamespace.xdp = function (e) { return new xdp_Xdp(e); }; return XdpNamespace; }()); var Vn = gn.xhtml.id, zn = Symbol(), _n = 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"]), $n = new Map([["page-break-after", "breakAfter"], ["page-break-before", "breakBefore"], ["page-break-inside", "breakInside"], ["kerning-mode", function (e) { return "none" === e ? "none" : "normal"; }], ["xfa-font-horizontal-scale", function (e) { return "scaleX(".concat(Math.max(0, Math.min(parseInt(e) / 100)).toFixed(2), ")"); }], ["xfa-font-vertical-scale", function (e) { return "scaleY(".concat(Math.max(0, Math.min(parseInt(e) / 100)).toFixed(2), ")"); }], ["xfa-spacerun", ""], ["xfa-tab-stops", ""], ["font-size", function (e, t) { return measureToString(.99 * (e = t.fontSize = getMeasurement(e))); }], ["letter-spacing", function (e) { return measureToString(getMeasurement(e)); }], ["line-height", function (e) { return measureToString(getMeasurement(e)); }], ["margin", function (e) { return measureToString(getMeasurement(e)); }], ["margin-bottom", function (e) { return measureToString(getMeasurement(e)); }], ["margin-left", function (e) { return measureToString(getMeasurement(e)); }], ["margin-right", function (e) { return measureToString(getMeasurement(e)); }], ["margin-top", function (e) { return measureToString(getMeasurement(e)); }], ["text-indent", function (e) { return measureToString(getMeasurement(e)); }], ["font-family", function (e) { return e; }], ["vertical-align", function (e) { return measureToString(getMeasurement(e)); }]]), Ao = /\s+/g, eo = /[\r\n]+/g, to = /\r\n?/g; function mapStyle(e, t, i) { var a = Object.create(null); if (!e) return a; var s = Object.create(null); for (var _b = 0, _k = e.split(";").map((function (e) { return e.split(":", 2); })); _b < _k.length; _b++) { var _l = _k[_b], t_421 = _l[0], i_345 = _l[1]; var e_571 = $n.get(t_421); if ("" === e_571) continue; var r_148 = i_345; e_571 && (r_148 = "string" == typeof e_571 ? e_571 : e_571(i_345, s)); t_421.endsWith("scale") ? a.transform = a.transform ? "".concat(a[t_421], " ").concat(r_148) : r_148 : a[t_421.replaceAll(/-([a-zA-Z])/g, (function (e, t) { return t.toUpperCase(); }))] = r_148; } a.fontFamily && setFontFamily({ typeface: a.fontFamily, weight: a.fontWeight || "normal", posture: a.fontStyle || "normal", size: s.fontSize || 0 }, t, t[yr].fontFinder, a); if (i && a.verticalAlign && "0px" !== a.verticalAlign && a.fontSize) { var e_572 = .583, t_422 = .333, i_346 = getMeasurement(a.fontSize); a.fontSize = measureToString(i_346 * e_572); a.verticalAlign = measureToString(Math.sign(getMeasurement(a.verticalAlign)) * i_346 * t_422); } i && a.fontSize && (a.fontSize = "calc(".concat(a.fontSize, " * var(--scale-factor))")); fixTextIndent(a); return a; } var io = new Set(["body", "html"]); var XhtmlObject = /** @class */ (function (_super) { tslib_1.__extends(XhtmlObject, _super); function XhtmlObject(e, t) { var _this = _super.call(this, Vn, t) || this; _this[zn] = !1; _this.style = e.style || ""; return _this; } XhtmlObject.prototype[Vs] = function (e) { _super.prototype[Vs].call(this, e); this.style = function checkStyle(e) { return e.style ? e.style.trim().split(/\s*;\s*/).filter((function (e) { return !!e; })).map((function (e) { return e.split(/\s*:\s*/, 2); })).filter((function (_b) { var t = _b[0], i = _b[1]; "font-family" === t && e[yr].usedTypefaces.add(i); return _n.has(t); })).map((function (e) { return e.join(":"); })).join(";") : ""; }(this); }; XhtmlObject.prototype[Ws] = function () { return !io.has(this[Yr]); }; XhtmlObject.prototype[qr] = function (e, t) { if (t === void 0) { t = !1; } if (t) this[zn] = !0; else { e = e.replaceAll(eo, ""); this.style.includes("xfa-spacerun:yes") || (e = e.replaceAll(Ao, " ")); } e && (this[er] += e); }; XhtmlObject.prototype[Or] = function (e, t) { if (t === void 0) { t = !0; } var i = Object.create(null), a = { top: NaN, bottom: NaN, left: NaN, right: NaN }; var s = null; for (var _b = 0, _k = this.style.split(";").map((function (e) { return e.split(":", 2); })); _b < _k.length; _b++) { var _l = _k[_b], e_573 = _l[0], t_423 = _l[1]; switch (e_573) { case "font-family": i.typeface = stripQuotes(t_423); break; case "font-size": i.size = getMeasurement(t_423); break; case "font-weight": i.weight = t_423; break; case "font-style": i.posture = t_423; break; case "letter-spacing": i.letterSpacing = getMeasurement(t_423); break; case "margin": var e_574 = t_423.split(/ \t/).map((function (e) { return getMeasurement(e); })); switch (e_574.length) { case 1: a.top = a.bottom = a.left = a.right = e_574[0]; break; case 2: a.top = a.bottom = e_574[0]; a.left = a.right = e_574[1]; break; case 3: a.top = e_574[0]; a.bottom = e_574[2]; a.left = a.right = e_574[1]; break; case 4: a.top = e_574[0]; a.left = e_574[1]; a.bottom = e_574[2]; a.right = e_574[3]; } break; case "margin-top": a.top = getMeasurement(t_423); break; case "margin-bottom": a.bottom = getMeasurement(t_423); break; case "margin-left": a.left = getMeasurement(t_423); break; case "margin-right": a.right = getMeasurement(t_423); break; case "line-height": s = getMeasurement(t_423); } } e.pushData(i, a, s); if (this[er]) e.addString(this[er]); else for (var _m = 0, _o = this[Er](); _m < _o.length; _m++) { var t_424 = _o[_m]; "#text" !== t_424[Yr] ? t_424[Or](e) : e.addString(t_424[er]); } t && e.popFont(); }; XhtmlObject.prototype[an] = function (e) { var t = []; this[ar] = { children: t }; this[Zs]({}); if (0 === t.length && !this[er]) return HTMLResult.EMPTY; var i; i = this[zn] ? this[er] ? this[er].replaceAll(to, "\n") : void 0 : this[er] || void 0; return HTMLResult.success({ name: this[Yr], attributes: { href: this.href, style: mapStyle(this.style, this, this[zn]) }, children: t, value: i }); }; return XhtmlObject; }(XmlObject)); var A = /** @class */ (function (_super) { tslib_1.__extends(A, _super); function A(e) { var _this = _super.call(this, e, "a") || this; _this.href = fixURL(e.href) || ""; return _this; } return A; }(XhtmlObject)); var B = /** @class */ (function (_super) { tslib_1.__extends(B, _super); function B(e) { return _super.call(this, e, "b") || this; } B.prototype[Or] = function (e) { e.pushFont({ weight: "bold" }); _super.prototype[Or].call(this, e); e.popFont(); }; return B; }(XhtmlObject)); var Body = /** @class */ (function (_super) { tslib_1.__extends(Body, _super); function Body(e) { return _super.call(this, e, "body") || this; } Body.prototype[an] = function (e) { var t = _super.prototype[an].call(this, e), i = t.html; if (!i) return HTMLResult.EMPTY; i.name = "div"; i.attributes.class = ["xfaRich"]; return t; }; return Body; }(XhtmlObject)); var Br = /** @class */ (function (_super) { tslib_1.__extends(Br, _super); function Br(e) { return _super.call(this, e, "br") || this; } Br.prototype[en] = function () { return "\n"; }; Br.prototype[Or] = function (e) { e.addString("\n"); }; Br.prototype[an] = function (e) { return HTMLResult.success({ name: "br" }); }; return Br; }(XhtmlObject)); var Html = /** @class */ (function (_super) { tslib_1.__extends(Html, _super); function Html(e) { return _super.call(this, e, "html") || this; } Html.prototype[an] = function (e) { var _b; var t = []; this[ar] = { children: t }; this[Zs]({}); if (0 === t.length) return HTMLResult.success({ name: "div", attributes: { class: ["xfaRich"], style: {} }, value: this[er] || "" }); if (1 === t.length) { var e_575 = t[0]; if ((_b = e_575.attributes) === null || _b === void 0 ? void 0 : _b.class.includes("xfaRich")) return HTMLResult.success(e_575); } return HTMLResult.success({ name: "div", attributes: { class: ["xfaRich"], style: {} }, children: t }); }; return Html; }(XhtmlObject)); var I = /** @class */ (function (_super) { tslib_1.__extends(I, _super); function I(e) { return _super.call(this, e, "i") || this; } I.prototype[Or] = function (e) { e.pushFont({ posture: "italic" }); _super.prototype[Or].call(this, e); e.popFont(); }; return I; }(XhtmlObject)); var Li = /** @class */ (function (_super) { tslib_1.__extends(Li, _super); function Li(e) { return _super.call(this, e, "li") || this; } return Li; }(XhtmlObject)); var Ol = /** @class */ (function (_super) { tslib_1.__extends(Ol, _super); function Ol(e) { return _super.call(this, e, "ol") || this; } return Ol; }(XhtmlObject)); var P = /** @class */ (function (_super) { tslib_1.__extends(P, _super); function P(e) { return _super.call(this, e, "p") || this; } P.prototype[Or] = function (e) { _super.prototype[Or].call(this, e, !1); e.addString("\n"); e.addPara(); e.popFont(); }; P.prototype[en] = function () { return this[pr]()[Er]().at(-1) === this ? _super.prototype[en].call(this) : _super.prototype[en].call(this) + "\n"; }; return P; }(XhtmlObject)); var Span = /** @class */ (function (_super) { tslib_1.__extends(Span, _super); function Span(e) { return _super.call(this, e, "span") || this; } return Span; }(XhtmlObject)); var Sub = /** @class */ (function (_super) { tslib_1.__extends(Sub, _super); function Sub(e) { return _super.call(this, e, "sub") || this; } return Sub; }(XhtmlObject)); var Sup = /** @class */ (function (_super) { tslib_1.__extends(Sup, _super); function Sup(e) { return _super.call(this, e, "sup") || this; } return Sup; }(XhtmlObject)); var Ul = /** @class */ (function (_super) { tslib_1.__extends(Ul, _super); function Ul(e) { return _super.call(this, e, "ul") || this; } return Ul; }(XhtmlObject)); var XhtmlNamespace = /** @class */ (function () { function XhtmlNamespace() { } XhtmlNamespace[on] = function (e, t) { if (XhtmlNamespace.hasOwnProperty(e)) return XhtmlNamespace[e](t); }; XhtmlNamespace.a = function (e) { return new A(e); }; XhtmlNamespace.b = function (e) { return new B(e); }; XhtmlNamespace.body = function (e) { return new Body(e); }; XhtmlNamespace.br = function (e) { return new Br(e); }; XhtmlNamespace.html = function (e) { return new Html(e); }; XhtmlNamespace.i = function (e) { return new I(e); }; XhtmlNamespace.li = function (e) { return new Li(e); }; XhtmlNamespace.ol = function (e) { return new Ol(e); }; XhtmlNamespace.p = function (e) { return new P(e); }; XhtmlNamespace.span = function (e) { return new Span(e); }; XhtmlNamespace.sub = function (e) { return new Sub(e); }; XhtmlNamespace.sup = function (e) { return new Sup(e); }; XhtmlNamespace.ul = function (e) { return new Ul(e); }; return XhtmlNamespace; }()); var ao = { config: ConfigNamespace, connection: ConnectionSetNamespace, datasets: DatasetsNamespace, localeSet: LocaleSetNamespace, signature: SignatureNamespace, stylesheet: StylesheetNamespace, template: TemplateNamespace, xdp: XdpNamespace, xhtml: XhtmlNamespace }; var UnknownNamespace = /** @class */ (function () { function UnknownNamespace(e) { this.namespaceId = e; } UnknownNamespace.prototype[on] = function (e, t) { return new XmlObject(this.namespaceId, e, t); }; return UnknownNamespace; }()); var Root = /** @class */ (function (_super) { tslib_1.__extends(Root, _super); function Root(e) { var _this = _super.call(this, -1, "root", Object.create(null)) || this; _this.element = null; _this[br] = e; return _this; } Root.prototype[Kr] = function (e) { this.element = e; return !0; }; Root.prototype[sr] = function () { _super.prototype[sr].call(this); if (this.element.template instanceof Template) { this[br].set(jr, this.element); this.element.template[Zr](this[br]); this.element.template[br] = this[br]; } }; return Root; }(XFAObject)); var Empty = /** @class */ (function (_super) { tslib_1.__extends(Empty, _super); function Empty() { return _super.call(this, -1, "", Object.create(null)) || this; } Empty.prototype[Kr] = function (e) { return !1; }; return Empty; }(XFAObject)); var Builder = /** @class */ (function () { function Builder(e) { if (e === void 0) { e = null; } this._namespaceStack = []; this._nsAgnosticLevel = 0; this._namespacePrefixes = new Map; this._namespaces = new Map; this._nextNsId = Math.max.apply(Math, Object.values(gn).map((function (_b) { var e = _b.id; return e; }))); this._currentNamespace = e || new UnknownNamespace(++this._nextNsId); } Builder.prototype.buildRoot = function (e) { return new Root(e); }; Builder.prototype.build = function (_b) { var e = _b.nsPrefix, t = _b.name, i = _b.attributes, a = _b.namespace, s = _b.prefixes; var r = null !== a; if (r) { this._namespaceStack.push(this._currentNamespace); this._currentNamespace = this._searchNamespace(a); } s && this._addNamespacePrefix(s); if (i.hasOwnProperty(vr)) { var e_576 = ao.datasets, t_425 = i[vr]; var a_273 = null; for (var _k = 0, _l = Object.entries(t_425); _k < _l.length; _k++) { var _m = _l[_k], i_347 = _m[0], s_186 = _m[1]; if (this._getNamespaceToUse(i_347) === e_576) { a_273 = { xfa: s_186 }; break; } } a_273 ? i[vr] = a_273 : delete i[vr]; } var n = this._getNamespaceToUse(e), o = (n === null || n === void 0 ? void 0 : n[on](t, i)) || new Empty; o[Gr]() && this._nsAgnosticLevel++; (r || s || o[Gr]()) && (o[_s] = { hasNamespace: r, prefixes: s, nsAgnostic: o[Gr]() }); return o; }; Builder.prototype.isNsAgnostic = function () { return this._nsAgnosticLevel > 0; }; Builder.prototype._searchNamespace = function (e) { var t = this._namespaces.get(e); if (t) return t; for (var _b = 0, _k = Object.entries(gn); _b < _k.length; _b++) { var _l = _k[_b], i_348 = _l[0], a_274 = _l[1].check; if (a_274(e)) { t = ao[i_348]; if (t) { this._namespaces.set(e, t); return t; } break; } } t = new UnknownNamespace(++this._nextNsId); this._namespaces.set(e, t); return t; }; Builder.prototype._addNamespacePrefix = function (e) { for (var _b = 0, e_577 = e; _b < e_577.length; _b++) { var _k = e_577[_b], t_426 = _k.prefix, i_349 = _k.value; var e_578 = this._searchNamespace(i_349); var a_275 = this._namespacePrefixes.get(t_426); if (!a_275) { a_275 = []; this._namespacePrefixes.set(t_426, a_275); } a_275.push(e_578); } }; Builder.prototype._getNamespaceToUse = function (e) { if (!e) return this._currentNamespace; var t = this._namespacePrefixes.get(e); if ((t === null || t === void 0 ? void 0 : t.length) > 0) return t.at(-1); warn("Unknown namespace prefix: ".concat(e, ".")); return null; }; Builder.prototype.clean = function (e) { var _this = this; var t = e.hasNamespace, i = e.prefixes, a = e.nsAgnostic; t && (this._currentNamespace = this._namespaceStack.pop()); i && i.forEach((function (_b) { var e = _b.prefix; _this._namespacePrefixes.get(e).pop(); })); a && this._nsAgnosticLevel--; }; return Builder; }()); var XFAParser = /** @class */ (function (_super) { tslib_1.__extends(XFAParser, _super); function XFAParser(e, t) { if (e === void 0) { e = null; } if (t === void 0) { t = !1; } var _this = _super.call(this) || this; _this._builder = new Builder(e); _this._stack = []; _this._globalData = { usedTypefaces: new Set }; _this._ids = new Map; _this._current = _this._builder.buildRoot(_this._ids); _this._errorCode = Rs; _this._whiteRegex = /^\s+$/; _this._nbsps = /\xa0+/g; _this._richText = t; return _this; } XFAParser.prototype.parse = function (e) { this.parseXml(e); if (this._errorCode === Rs) { this._current[sr](); return this._current.element; } }; XFAParser.prototype.onText = function (e) { e = e.replace(this._nbsps, (function (e) { return e.slice(1) + " "; })); this._richText || this._current[Ws]() ? this._current[qr](e, this._richText) : this._whiteRegex.test(e) || this._current[qr](e.trim()); }; XFAParser.prototype.onCdata = function (e) { this._current[qr](e); }; XFAParser.prototype._mkAttributes = function (e, t) { var i = null, a = null; var s = Object.create({}); for (var _b = 0, e_579 = e; _b < e_579.length; _b++) { var _k = e_579[_b], r_149 = _k.name, n_101 = _k.value; if ("xmlns" === r_149) i ? warn("XFA - multiple namespace definition in <".concat(t, ">")) : i = n_101; else if (r_149.startsWith("xmlns:")) { var e_580 = r_149.substring(6); a || (a = []); a.push({ prefix: e_580, value: n_101 }); } else { var e_581 = r_149.indexOf(":"); if (-1 === e_581) s[r_149] = n_101; else { var t_427 = s[vr]; t_427 || (t_427 = s[vr] = Object.create(null)); var _l = [r_149.slice(0, e_581), r_149.slice(e_581 + 1)], i_350 = _l[0], a_276 = _l[1]; (t_427[i_350] || (t_427[i_350] = Object.create(null)))[a_276] = n_101; } } } return [i, a, s]; }; XFAParser.prototype._getNameAndPrefix = function (e, t) { var i = e.indexOf(":"); return -1 === i ? [e, null] : [e.substring(i + 1), t ? "" : e.substring(0, i)]; }; XFAParser.prototype.onBeginElement = function (e, t, i) { var _b = this._mkAttributes(t, e), a = _b[0], s = _b[1], r = _b[2], _k = this._getNameAndPrefix(e, this._builder.isNsAgnostic()), n = _k[0], o = _k[1], g = this._builder.build({ nsPrefix: o, name: n, attributes: r, namespace: a, prefixes: s }); g[yr] = this._globalData; if (i) { g[sr](); this._current[Kr](g) && g[zr](this._ids); g[Vs](this._builder); } else { this._stack.push(this._current); this._current = g; } }; XFAParser.prototype.onEndElement = function (e) { var t = this._current; if (t[Sr]() && "string" == typeof t[er]) { var e_582 = new XFAParser; e_582._globalData = this._globalData; var i_351 = e_582.parse(t[er]); t[er] = null; t[Kr](i_351); } t[sr](); this._current = this._stack.pop(); this._current[Kr](t) && t[zr](this._ids); t[Vs](this._builder); }; XFAParser.prototype.onError = function (e) { this._errorCode = e; }; return XFAParser; }(XMLParserBase)); var XFAFactory = /** @class */ (function () { function XFAFactory(e) { try { this.root = (new XFAParser).parse(XFAFactory._createDocument(e)); var t_428 = new Binder(this.root); this.form = t_428.bind(); this.dataHandler = new DataHandler(this.root, t_428.getData()); this.form[yr].template = this.form; } catch (e) { warn("XFA - an error occurred during parsing and binding: ".concat(e)); } } XFAFactory.prototype.isValid = function () { return this.root && this.form; }; XFAFactory.prototype._createPagesHelper = function () { var e = this.form[tn](); return new Promise((function (t, i) { var nextIteration = function () { try { var i_352 = e.next(); i_352.done ? t(i_352.value) : setTimeout(nextIteration, 0); } catch (e) { i(e); } }; setTimeout(nextIteration, 0); })); }; XFAFactory.prototype._createPages = function () { return tslib_1.__awaiter(this, void 0, void 0, function () { var _b, e_583; return tslib_1.__generator(this, function (_k) { switch (_k.label) { case 0: _k.trys.push([0, 2, , 3]); _b = this; return [4 /*yield*/, this._createPagesHelper()]; case 1: _b.pages = _k.sent(); this.dims = this.pages.children.map((function (e) { var _b = e.attributes.style, t = _b.width, i = _b.height; return [0, 0, parseInt(t), parseInt(i)]; })); return [3 /*break*/, 3]; case 2: e_583 = _k.sent(); warn("XFA - an error occurred during layout: ".concat(e_583)); return [3 /*break*/, 3]; case 3: return [2 /*return*/]; } }); }); }; XFAFactory.prototype.getBoundingBox = function (e) { return this.dims[e]; }; XFAFactory.prototype.getNumPages = function () { return tslib_1.__awaiter(this, void 0, void 0, function () { var _b; return tslib_1.__generator(this, function (_k) { switch (_k.label) { case 0: _b = this.pages; if (_b) return [3 /*break*/, 2]; return [4 /*yield*/, this._createPages()]; case 1: _b = (_k.sent()); _k.label = 2; case 2: _b; return [2 /*return*/, this.dims.length]; } }); }); }; XFAFactory.prototype.setImages = function (e) { this.form[yr].images = e; }; XFAFactory.prototype.setFonts = function (e) { this.form[yr].fontFinder = new FontFinder(e); var t = []; for (var _b = 0, _k = this.form[yr].usedTypefaces; _b < _k.length; _b++) { var e_584 = _k[_b]; e_584 = stripQuotes(e_584); this.form[yr].fontFinder.find(e_584) || t.push(e_584); } return t.length > 0 ? t : null; }; XFAFactory.prototype.appendFonts = function (e, t) { this.form[yr].fontFinder.add(e, t); }; XFAFactory.prototype.getPages = function () { return tslib_1.__awaiter(this, void 0, void 0, function () { var _b, e; return tslib_1.__generator(this, function (_k) { switch (_k.label) { case 0: _b = this.pages; if (_b) return [3 /*break*/, 2]; return [4 /*yield*/, this._createPages()]; case 1: _b = (_k.sent()); _k.label = 2; case 2: _b; e = this.pages; this.pages = null; return [2 /*return*/, e]; } }); }); }; XFAFactory.prototype.serializeData = function (e) { return this.dataHandler.serialize(e); }; XFAFactory._createDocument = function (e) { return e["/xdp:xdp"] ? Object.values(e).join("") : e["xdp:xdp"]; }; XFAFactory.getRichTextAsHtml = function (e) { if (!e || "string" != typeof e) return null; try { var t_429 = new XFAParser(XhtmlNamespace, !0).parse(e); if (!["body", "xhtml"].includes(t_429[Yr])) { var e_585 = XhtmlNamespace.body({}); e_585[js](t_429); t_429 = e_585; } var i_353 = t_429[an](); if (!i_353.success) return null; var a_277 = i_353.html, s_187 = a_277.attributes; if (s_187) { s_187.class && (s_187.class = s_187.class.filter((function (e) { return !e.startsWith("xfa"); }))); s_187.dir = "auto"; } return { html: a_277, str: t_429[en]() }; } catch (e) { warn("XFA - an error occurred during parsing of rich text: ".concat(e)); } return null; }; return XFAFactory; }()); var AnnotationFactory = /** @class */ (function () { function AnnotationFactory() { } AnnotationFactory.createGlobals = function (e) { return Promise.all([e.ensureCatalog("acroForm"), e.ensureDoc("xfaDatasets"), e.ensureCatalog("structTreeRoot"), e.ensureCatalog("baseUrl"), e.ensureCatalog("attachments")]).then((function (_b) { var t = _b[0], i = _b[1], a = _b[2], s = _b[3], r = _b[4]; return ({ pdfManager: e, acroForm: t instanceof Dict ? t : Dict.empty, xfaDatasets: i, structTreeRoot: a, baseUrl: s, attachments: r }); }), (function (e) { warn("createGlobals: \"".concat(e, "\".")); return null; })); }; AnnotationFactory.create = function (e, t, i, a, s, r) { return tslib_1.__awaiter(this, void 0, void 0, function () { var n, _b; return tslib_1.__generator(this, function (_k) { switch (_k.label) { case 0: if (!s) return [3 /*break*/, 2]; return [4 /*yield*/, this._getPageIndex(e, t, i.pdfManager)]; case 1: _b = _k.sent(); return [3 /*break*/, 3]; case 2: _b = null; _k.label = 3; case 3: n = _b; return [2 /*return*/, i.pdfManager.ensure(this, "_create", [e, t, i, a, s, n, r])]; } }); }); }; AnnotationFactory._create = function (e, t, i, a, s, r, n) { if (s === void 0) { s = !1; } if (r === void 0) { r = null; } if (n === void 0) { n = null; } var o = e.fetchIfRef(t); if (!(o instanceof Dict)) return; var g = i.acroForm, c = i.pdfManager, h = t instanceof Ref ? t.toString() : "annot_".concat(a.createObjId()); var l = o.get("Subtype"); l = l instanceof Name ? l.name : null; var C = { xref: e, ref: t, dict: o, subtype: l, id: h, annotationGlobals: i, collectFields: s, needAppearances: !s && !0 === g.get("NeedAppearances"), pageIndex: r, evaluatorOptions: c.evaluatorOptions, pageRef: n }; switch (l) { case "Link": return new LinkAnnotation(C); case "Text": return new TextAnnotation(C); case "Widget": var e_586 = getInheritableProperty({ dict: o, key: "FT" }); e_586 = e_586 instanceof Name ? e_586.name : null; switch (e_586) { case "Tx": return new TextWidgetAnnotation(C); case "Btn": return new ButtonWidgetAnnotation(C); case "Ch": return new ChoiceWidgetAnnotation(C); case "Sig": return new SignatureWidgetAnnotation(C); } warn("Unimplemented widget field type \"".concat(e_586, "\", falling back to base field type.")); return new WidgetAnnotation(C); case "Popup": return new PopupAnnotation(C); case "FreeText": return new FreeTextAnnotation(C); case "Line": return new LineAnnotation(C); case "Square": return new SquareAnnotation(C); case "Circle": return new CircleAnnotation(C); case "PolyLine": return new PolylineAnnotation(C); case "Polygon": return new PolygonAnnotation(C); case "Caret": return new CaretAnnotation(C); case "Ink": return new InkAnnotation(C); case "Highlight": return new HighlightAnnotation(C); case "Underline": return new UnderlineAnnotation(C); case "Squiggly": return new SquigglyAnnotation(C); case "StrikeOut": return new StrikeOutAnnotation(C); case "Stamp": return new StampAnnotation(C); case "FileAttachment": return new FileAttachmentAnnotation(C); default: s || warn(l ? "Unimplemented annotation type \"".concat(l, "\", falling back to base annotation.") : "Annotation is missing the required /Subtype."); return new Annotation(C); } }; AnnotationFactory._getPageIndex = function (e, t, i) { return tslib_1.__awaiter(this, void 0, void 0, function () { var a_278, s_189, e_587, r_150, e_589, a_279, s_190, _b, s_188, i_354, e_588; return tslib_1.__generator(this, function (_k) { switch (_k.label) { case 0: _k.trys.push([0, 12, , 13]); return [4 /*yield*/, e.fetchIfRefAsync(t)]; case 1: a_278 = _k.sent(); if (!(a_278 instanceof Dict)) return [2 /*return*/, -1]; s_189 = a_278.getRaw("P"); if (!(s_189 instanceof Ref)) return [3 /*break*/, 5]; _k.label = 2; case 2: _k.trys.push([2, 4, , 5]); return [4 /*yield*/, i.ensureCatalog("getPageIndex", [s_189])]; case 3: return [2 /*return*/, _k.sent()]; case 4: e_587 = _k.sent(); info("_getPageIndex -- not a valid page reference: \"".concat(e_587, "\".")); return [3 /*break*/, 5]; case 5: if (a_278.has("Kids")) return [2 /*return*/, -1]; return [4 /*yield*/, i.ensureDoc("numPages")]; case 6: r_150 = _k.sent(); e_589 = 0; _k.label = 7; case 7: if (!(e_589 < r_150)) return [3 /*break*/, 11]; return [4 /*yield*/, i.getPage(e_589)]; case 8: a_279 = _k.sent(); return [4 /*yield*/, i.ensure(a_279, "annotations")]; case 9: s_190 = _k.sent(); for (_b = 0, s_188 = s_190; _b < s_188.length; _b++) { i_354 = s_188[_b]; if (i_354 instanceof Ref && isRefsEqual(i_354, t)) return [2 /*return*/, e_589]; } _k.label = 10; case 10: e_589++; return [3 /*break*/, 7]; case 11: return [3 /*break*/, 13]; case 12: e_588 = _k.sent(); warn("_getPageIndex: \"".concat(e_588, "\".")); return [3 /*break*/, 13]; case 13: return [2 /*return*/, -1]; } }); }); }; AnnotationFactory.generateImages = function (e, t, i) { if (!i) { warn("generateImages: OffscreenCanvas is not supported, cannot save or print some annotations with images."); return null; } var a; for (var _b = 0, e_590 = e; _b < e_590.length; _b++) { var _k = e_590[_b], i_355 = _k.bitmapId, s_191 = _k.bitmap; if (s_191) { a || (a = new Map); a.set(i_355, StampAnnotation.createImage(s_191, t)); } } return a; }; AnnotationFactory.saveNewAnnotations = function (e, t, i, a) { return tslib_1.__awaiter(this, void 0, void 0, function () { var s, r, n, o, g, _b, i_356, c_44, _k, e_591, t_430, i_357, e_592, t_431, a_280, i_358, r_151; var _l; return tslib_1.__generator(this, function (_m) { switch (_m.label) { case 0: s = e.xref; n = [], o = [], g = e.options.isOffscreenCanvasSupported; _b = 0, i_356 = i; _m.label = 1; case 1: if (!(_b < i_356.length)) return [3 /*break*/, 14]; c_44 = i_356[_b]; if (!!c_44.deleted) return [3 /*break*/, 13]; _k = c_44.annotationType; switch (_k) { case u: return [3 /*break*/, 2]; case d: return [3 /*break*/, 5]; case p: return [3 /*break*/, 6]; case f: return [3 /*break*/, 7]; } return [3 /*break*/, 13]; case 2: if (!!r) return [3 /*break*/, 4]; e_591 = new Dict(s); e_591.set("BaseFont", Name.get("Helvetica")); e_591.set("Type", Name.get("Font")); e_591.set("Subtype", Name.get("Type1")); e_591.set("Encoding", Name.get("WinAnsiEncoding")); t_430 = []; r = s.getNewTemporaryRef(); return [4 /*yield*/, writeObject(r, e_591, t_430, s)]; case 3: _m.sent(); n.push({ ref: r, data: t_430.join("") }); _m.label = 4; case 4: o.push(FreeTextAnnotation.createNewAnnotation(s, c_44, n, { evaluator: e, task: t, baseFontRef: r })); return [3 /*break*/, 13]; case 5: c_44.quadPoints ? o.push(HighlightAnnotation.createNewAnnotation(s, c_44, n)) : o.push(InkAnnotation.createNewAnnotation(s, c_44, n)); return [3 /*break*/, 13]; case 6: o.push(InkAnnotation.createNewAnnotation(s, c_44, n)); return [3 /*break*/, 13]; case 7: if (!g) return [3 /*break*/, 13]; return [4 /*yield*/, a.get(c_44.bitmapId)]; case 8: i_357 = _m.sent(); if (!i_357.imageStream) return [3 /*break*/, 12]; e_592 = i_357.imageStream, t_431 = i_357.smaskStream, a_280 = []; if (!t_431) return [3 /*break*/, 10]; i_358 = s.getNewTemporaryRef(); return [4 /*yield*/, writeObject(i_358, t_431, a_280, s)]; case 9: _m.sent(); n.push({ ref: i_358, data: a_280.join("") }); e_592.dict.set("SMask", i_358); a_280.length = 0; _m.label = 10; case 10: r_151 = i_357.imageRef = s.getNewTemporaryRef(); return [4 /*yield*/, writeObject(r_151, e_592, a_280, s)]; case 11: _m.sent(); n.push({ ref: r_151, data: a_280.join("") }); i_357.imageStream = i_357.smaskStream = null; _m.label = 12; case 12: o.push(StampAnnotation.createNewAnnotation(s, c_44, n, { image: i_357 })); _m.label = 13; case 13: _b++; return [3 /*break*/, 1]; case 14: _l = {}; return [4 /*yield*/, Promise.all(o)]; case 15: return [2 /*return*/, (_l.annotations = _m.sent(), _l.dependencies = n, _l)]; } }); }); }; AnnotationFactory.printNewAnnotations = function (e, t, i, a, s) { return tslib_1.__awaiter(this, void 0, void 0, function () { var r, n, o, _b, a_281, g_55, _k, a_282, e_593, t_432; return tslib_1.__generator(this, function (_l) { switch (_l.label) { case 0: if (!a) return [2 /*return*/, null]; r = t.options, n = t.xref, o = []; _b = 0, a_281 = a; _l.label = 1; case 1: if (!(_b < a_281.length)) return [3 /*break*/, 8]; g_55 = a_281[_b]; if (!!g_55.deleted) return [3 /*break*/, 7]; _k = g_55.annotationType; switch (_k) { case u: return [3 /*break*/, 2]; case d: return [3 /*break*/, 3]; case p: return [3 /*break*/, 4]; case f: return [3 /*break*/, 5]; } return [3 /*break*/, 7]; case 2: o.push(FreeTextAnnotation.createNewPrintAnnotation(e, n, g_55, { evaluator: t, task: i, evaluatorOptions: r })); return [3 /*break*/, 7]; case 3: g_55.quadPoints ? o.push(HighlightAnnotation.createNewPrintAnnotation(e, n, g_55, { evaluatorOptions: r })) : o.push(InkAnnotation.createNewPrintAnnotation(e, n, g_55, { evaluatorOptions: r })); return [3 /*break*/, 7]; case 4: o.push(InkAnnotation.createNewPrintAnnotation(e, n, g_55, { evaluatorOptions: r })); return [3 /*break*/, 7]; case 5: if (!r.isOffscreenCanvasSupported) return [3 /*break*/, 7]; return [4 /*yield*/, s.get(g_55.bitmapId)]; case 6: a_282 = _l.sent(); if (a_282.imageStream) { e_593 = a_282.imageStream, t_432 = a_282.smaskStream; t_432 && e_593.dict.set("SMask", t_432); a_282.imageRef = new JpegStream(e_593, e_593.length); a_282.imageStream = a_282.smaskStream = null; } o.push(StampAnnotation.createNewPrintAnnotation(e, n, g_55, { image: a_282, evaluatorOptions: r })); _l.label = 7; case 7: _b++; return [3 /*break*/, 1]; case 8: return [2 /*return*/, Promise.all(o)]; } }); }); }; return AnnotationFactory; }()); function getRgbColor(e, t) { if (t === void 0) { t = new Uint8ClampedArray(3); } if (!Array.isArray(e)) return t; var i = t || new Uint8ClampedArray(3); switch (e.length) { case 0: return null; case 1: ColorSpace.singletons.gray.getRgbItem(e, 0, i, 0); return i; case 3: ColorSpace.singletons.rgb.getRgbItem(e, 0, i, 0); return i; case 4: ColorSpace.singletons.cmyk.getRgbItem(e, 0, i, 0); return i; default: return t; } } function getPdfColorArray(e) { return Array.from(e, (function (e) { return e / 255; })); } function getQuadPoints(e, t) { var i = e.getArray("QuadPoints"); if (!isNumberArray(i, null) || 0 === i.length || i.length % 8 > 0) return null; var a = []; for (var e_594 = 0, s_192 = i.length / 8; e_594 < s_192; e_594++) { var s_193 = 1 / 0, r_152 = -1 / 0, n_102 = 1 / 0, o_76 = -1 / 0; for (var t_433 = 8 * e_594, a_283 = 8 * e_594 + 8; t_433 < a_283; t_433 += 2) { var e_595 = i[t_433], a_284 = i[t_433 + 1]; s_193 = Math.min(e_595, s_193); r_152 = Math.max(e_595, r_152); n_102 = Math.min(a_284, n_102); o_76 = Math.max(a_284, o_76); } if (null !== t && (s_193 < t[0] || r_152 > t[2] || n_102 < t[1] || o_76 > t[3])) return null; a.push([{ x: s_193, y: o_76 }, { x: r_152, y: o_76 }, { x: s_193, y: n_102 }, { x: r_152, y: n_102 }]); } return a; } function getTransformMatrix(e, t, i) { var _b = Util.getAxialAlignedBoundingBox(t, i), a = _b[0], s = _b[1], r = _b[2], n = _b[3]; if (a === r || s === n) return [1, 0, 0, 1, e[0], e[1]]; var o = (e[2] - e[0]) / (r - a), g = (e[3] - e[1]) / (n - s); return [o, 0, 0, g, e[0] - a * o, e[1] - s * g]; } var Annotation = /** @class */ (function () { function Annotation(e) { var t = e.dict, i = e.xref, a = e.annotationGlobals; this.setTitle(t.get("T")); this.setContents(t.get("Contents")); this.setModificationDate(t.get("M")); this.setFlags(t.get("F")); this.setRectangle(t.getArray("Rect")); this.setColor(t.getArray("C")); this.setBorderStyle(t); this.setAppearance(t); this.setOptionalContent(t); var s = t.get("MK"); this.setBorderAndBackgroundColors(s); this.setRotation(s, t); this.ref = e.ref instanceof Ref ? e.ref : null; this._streams = []; this.appearance && this._streams.push(this.appearance); var r = !!(this.flags & AA), n = !!(this.flags & eA); if (a.structTreeRoot) { var i_359 = t.get("StructParent"); i_359 = Number.isInteger(i_359) && i_359 >= 0 ? i_359 : -1; a.structTreeRoot.addAnnotationIdToPage(e.pageRef, i_359); } this.data = { annotationFlags: this.flags, borderStyle: this.borderStyle, color: this.color, backgroundColor: this.backgroundColor, borderColor: this.borderColor, rotation: this.rotation, contentsObj: this._contents, hasAppearance: !!this.appearance, id: e.id, modificationDate: this.modificationDate, rect: this.rectangle, subtype: e.subtype, hasOwnCanvas: !1, noRotate: !!(this.flags & _), noHTML: r && n }; if (e.collectFields) { var a_286 = t.get("Kids"); if (Array.isArray(a_286)) { var e_596 = []; for (var _b = 0, a_285 = a_286; _b < a_285.length; _b++) { var t_434 = a_285[_b]; t_434 instanceof Ref && e_596.push(t_434.toString()); } 0 !== e_596.length && (this.data.kidIds = e_596); } this.data.actions = collectActions(i, t, uA); this.data.fieldName = this._constructFieldName(t); this.data.pageIndex = e.pageIndex; } this._isOffscreenCanvasSupported = e.evaluatorOptions.isOffscreenCanvasSupported; this._fallbackFontDict = null; this._needAppearances = !1; } Annotation.prototype._hasFlag = function (e, t) { return !!(e & t); }; Annotation.prototype._isViewable = function (e) { return !this._hasFlag(e, Z) && !this._hasFlag(e, $); }; Annotation.prototype._isPrintable = function (e) { return this._hasFlag(e, z) && !this._hasFlag(e, V) && !this._hasFlag(e, Z); }; Annotation.prototype.mustBeViewed = function (e, t) { var _b; var i = (_b = e === null || e === void 0 ? void 0 : e.get(this.data.id)) === null || _b === void 0 ? void 0 : _b.noView; return void 0 !== i ? !i : this.viewable && !this._hasFlag(this.flags, V); }; Annotation.prototype.mustBePrinted = function (e) { var _b; var t = (_b = e === null || e === void 0 ? void 0 : e.get(this.data.id)) === null || _b === void 0 ? void 0 : _b.noPrint; return void 0 !== t ? !t : this.printable; }; Object.defineProperty(Annotation.prototype, "viewable", { get: function () { return null !== this.data.quadPoints && (0 === this.flags || this._isViewable(this.flags)); }, enumerable: false, configurable: true }); Object.defineProperty(Annotation.prototype, "printable", { get: function () { return null !== this.data.quadPoints && (0 !== this.flags && this._isPrintable(this.flags)); }, enumerable: false, configurable: true }); Annotation.prototype._parseStringHelper = function (e) { var t = "string" == typeof e ? stringToPDFString(e) : ""; return { str: t, dir: t && "rtl" === bidi(t).dir ? "rtl" : "ltr" }; }; Annotation.prototype.setDefaultAppearance = function (e) { var t = e.dict, i = e.annotationGlobals, a = getInheritableProperty({ dict: t, key: "DA" }) || i.acroForm.get("DA"); this._defaultAppearance = "string" == typeof a ? a : ""; this.data.defaultAppearanceData = parseDefaultAppearance(this._defaultAppearance); }; Annotation.prototype.setTitle = function (e) { this._title = this._parseStringHelper(e); }; Annotation.prototype.setContents = function (e) { this._contents = this._parseStringHelper(e); }; Annotation.prototype.setModificationDate = function (e) { this.modificationDate = "string" == typeof e ? e : null; }; Annotation.prototype.setFlags = function (e) { this.flags = Number.isInteger(e) && e > 0 ? e : 0; this.flags & Z && "Annotation" !== this.constructor.name && (this.flags ^= Z); }; Annotation.prototype.hasFlag = function (e) { return this._hasFlag(this.flags, e); }; Annotation.prototype.setRectangle = function (e) { this.rectangle = lookupNormalRect(e, [0, 0, 0, 0]); }; Annotation.prototype.setColor = function (e) { this.color = getRgbColor(e); }; Annotation.prototype.setLineEndings = function (e) { this.lineEndings = ["None", "None"]; if (Array.isArray(e) && 2 === e.length) for (var t_435 = 0; t_435 < 2; t_435++) { var i_360 = e[t_435]; if (i_360 instanceof Name) switch (i_360.name) { case "None": continue; case "Square": case "Circle": case "Diamond": case "OpenArrow": case "ClosedArrow": case "Butt": case "ROpenArrow": case "RClosedArrow": case "Slash": this.lineEndings[t_435] = i_360.name; continue; } warn("Ignoring invalid lineEnding: ".concat(i_360)); } }; Annotation.prototype.setRotation = function (e, t) { this.rotation = 0; var i = e instanceof Dict ? e.get("R") || 0 : t.get("Rotate") || 0; if (Number.isInteger(i) && 0 !== i) { i %= 360; i < 0 && (i += 360); i % 90 == 0 && (this.rotation = i); } }; Annotation.prototype.setBorderAndBackgroundColors = function (e) { if (e instanceof Dict) { this.borderColor = getRgbColor(e.getArray("BC"), null); this.backgroundColor = getRgbColor(e.getArray("BG"), null); } else this.borderColor = this.backgroundColor = null; }; Annotation.prototype.setBorderStyle = function (e) { this.borderStyle = new AnnotationBorderStyle; if (e instanceof Dict) if (e.has("BS")) { var t_436 = e.get("BS"); if (t_436 instanceof Dict) { var e_597 = t_436.get("Type"); if (!e_597 || isName(e_597, "Border")) { this.borderStyle.setWidth(t_436.get("W"), this.rectangle); this.borderStyle.setStyle(t_436.get("S")); this.borderStyle.setDashArray(t_436.getArray("D")); } } } else if (e.has("Border")) { var t_437 = e.getArray("Border"); if (Array.isArray(t_437) && t_437.length >= 3) { this.borderStyle.setHorizontalCornerRadius(t_437[0]); this.borderStyle.setVerticalCornerRadius(t_437[1]); this.borderStyle.setWidth(t_437[2], this.rectangle); 4 === t_437.length && this.borderStyle.setDashArray(t_437[3], !0); } } else this.borderStyle.setWidth(0); }; Annotation.prototype.setAppearance = function (e) { this.appearance = null; var t = e.get("AP"); if (!(t instanceof Dict)) return; var i = t.get("N"); if (i instanceof BaseStream) { this.appearance = i; return; } if (!(i instanceof Dict)) return; var a = e.get("AS"); if (!(a instanceof Name && i.has(a.name))) return; var s = i.get(a.name); s instanceof BaseStream && (this.appearance = s); }; Annotation.prototype.setOptionalContent = function (e) { this.oc = null; var t = e.get("OC"); t instanceof Name ? warn("setOptionalContent: Support for /Name-entry is not implemented.") : t instanceof Dict && (this.oc = t); }; Annotation.prototype.loadResources = function (e, t) { return t.dict.getAsync("Resources").then((function (t) { if (!t) return; return new ObjectLoader(t, e, t.xref).load().then((function () { return t; })); })); }; Annotation.prototype.getOperatorList = function (e, t, a, s, r) { return tslib_1.__awaiter(this, void 0, void 0, function () { var _b, n, o, c, h, l, C, Q, E, u, d, f, p, _k; return tslib_1.__generator(this, function (_l) { switch (_l.label) { case 0: _b = this.data, n = _b.hasOwnCanvas, o = _b.id, c = _b.rect; h = this.appearance; l = !!(n && a & g); if (l && (c[0] === c[2] || c[1] === c[3])) { this.data.hasOwnCanvas = !1; return [2 /*return*/, { opList: new OperatorList, separateForm: !1, separateCanvas: !1 }]; } if (!h) { if (!l) return [2 /*return*/, { opList: new OperatorList, separateForm: !1, separateCanvas: !1 }]; h = new StringStream(""); h.dict = new Dict; } C = h.dict; return [4 /*yield*/, this.loadResources(["ExtGState", "ColorSpace", "Pattern", "Shading", "XObject", "Font"], h)]; case 1: Q = _l.sent(), E = lookupRect(C.getArray("BBox"), [0, 0, 1, 1]), u = lookupMatrix(C.getArray("Matrix"), i), d = getTransformMatrix(c, E, u), f = new OperatorList; _k = this.oc; if (!_k) return [3 /*break*/, 3]; return [4 /*yield*/, e.parseMarkedContentProps(this.oc, null)]; case 2: _k = (p = _l.sent()); _l.label = 3; case 3: _k; void 0 !== p && f.addOp(He, ["OC", p]); f.addOp(We, [o, c, d, u, l]); return [4 /*yield*/, e.getOperatorList({ stream: h, task: t, resources: Q, operatorList: f, fallbackFontDict: this._fallbackFontDict })]; case 4: _l.sent(); f.addOp(Xe, []); void 0 !== p && f.addOp(Ye, []); this.reset(); return [2 /*return*/, { opList: f, separateForm: !1, separateCanvas: l }]; } }); }); }; Annotation.prototype.save = function (e, t, i) { return tslib_1.__awaiter(this, void 0, void 0, function () { return tslib_1.__generator(this, function (_b) { return [2 /*return*/, null]; }); }); }; Object.defineProperty(Annotation.prototype, "hasTextContent", { get: function () { return !1; }, enumerable: false, configurable: true }); Annotation.prototype.extractTextContent = function (e, t, i) { return tslib_1.__awaiter(this, void 0, void 0, function () { var a, s, r, n, o, e_598, t_438, i_361; return tslib_1.__generator(this, function (_b) { switch (_b.label) { case 0: if (!this.appearance) return [2 /*return*/]; return [4 /*yield*/, this.loadResources(["ExtGState", "Font", "Properties", "XObject"], this.appearance)]; case 1: a = _b.sent(), s = [], r = []; n = null; o = { desiredSize: Math.Infinity, ready: !0, enqueue: function (e, t) { for (var _b = 0, _k = e.items; _b < _k.length; _b++) { var t_439 = _k[_b]; if (void 0 !== t_439.str) { n || (n = t_439.transform.slice(-2)); r.push(t_439.str); if (t_439.hasEOL) { s.push(r.join("").trimEnd()); r.length = 0; } } } } }; return [4 /*yield*/, e.getTextContent({ stream: this.appearance, task: t, resources: a, includeMarkedContent: !0, keepWhiteSpace: !0, sink: o, viewBox: i })]; case 2: _b.sent(); this.reset(); r.length && s.push(r.join("").trimEnd()); if (s.length > 1 || s[0]) { e_598 = this.appearance.dict, t_438 = lookupRect(e_598.getArray("BBox"), null), i_361 = lookupMatrix(e_598.getArray("Matrix"), null); this.data.textPosition = this._transformPoint(n, t_438, i_361); this.data.textContent = s; } return [2 /*return*/]; } }); }); }; Annotation.prototype._transformPoint = function (e, t, i) { var a = this.data.rect; t || (t = [0, 0, 1, 1]); i || (i = [1, 0, 0, 1, 0, 0]); var s = getTransformMatrix(a, t, i); s[4] -= a[0]; s[5] -= a[1]; e = Util.applyTransform(e, s); return Util.applyTransform(e, i); }; Annotation.prototype.getFieldObject = function () { 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, rotation: this.rotation } : null; }; Annotation.prototype.reset = function () { for (var _b = 0, _k = this._streams; _b < _k.length; _b++) { var e_599 = _k[_b]; e_599.reset(); } }; Annotation.prototype._constructFieldName = function (e) { if (!e.has("T") && !e.has("Parent")) { warn("Unknown field name, falling back to empty field name."); return ""; } if (!e.has("Parent")) return stringToPDFString(e.get("T")); var t = []; e.has("T") && t.unshift(stringToPDFString(e.get("T"))); var i = e; var a = new RefSet; e.objId && a.put(e.objId); for (; i.has("Parent");) { i = i.get("Parent"); if (!(i instanceof Dict) || i.objId && a.has(i.objId)) break; i.objId && a.put(i.objId); i.has("T") && t.unshift(stringToPDFString(i.get("T"))); } return t.join("."); }; return Annotation; }()); var AnnotationBorderStyle = /** @class */ (function () { function AnnotationBorderStyle() { this.width = 1; this.style = lA; this.dashArray = [3]; this.horizontalCornerRadius = 0; this.verticalCornerRadius = 0; } AnnotationBorderStyle.prototype.setWidth = function (e, t) { if (t === void 0) { t = [0, 0, 0, 0]; } if (e instanceof Name) this.width = 0; else if ("number" == typeof e) { if (e > 0) { var i_362 = (t[2] - t[0]) / 2, a_287 = (t[3] - t[1]) / 2; if (i_362 > 0 && a_287 > 0 && (e > i_362 || e > a_287)) { warn("AnnotationBorderStyle.setWidth - ignoring width: ".concat(e)); e = 1; } } this.width = e; } }; AnnotationBorderStyle.prototype.setStyle = function (e) { if (e instanceof Name) switch (e.name) { case "S": this.style = lA; break; case "D": this.style = CA; break; case "B": this.style = BA; break; case "I": this.style = QA; break; case "U": this.style = EA; } }; AnnotationBorderStyle.prototype.setDashArray = function (e, t) { if (t === void 0) { t = !1; } if (Array.isArray(e)) { var i_363 = !0, a_288 = !0; for (var _b = 0, e_600 = e; _b < e_600.length; _b++) { var t_440 = e_600[_b]; if (!(+t_440 >= 0)) { i_363 = !1; break; } t_440 > 0 && (a_288 = !1); } if (0 === e.length || i_363 && !a_288) { this.dashArray = e; t && this.setStyle(Name.get("D")); } else this.width = 0; } else e && (this.width = 0); }; AnnotationBorderStyle.prototype.setHorizontalCornerRadius = function (e) { Number.isInteger(e) && (this.horizontalCornerRadius = e); }; AnnotationBorderStyle.prototype.setVerticalCornerRadius = function (e) { Number.isInteger(e) && (this.verticalCornerRadius = e); }; return AnnotationBorderStyle; }()); var MarkupAnnotation = /** @class */ (function (_super) { tslib_1.__extends(MarkupAnnotation, _super); function MarkupAnnotation(e) { var _this = _super.call(this, e) || this; var t = e.dict; if (t.has("IRT")) { var e_601 = t.getRaw("IRT"); _this.data.inReplyTo = e_601 instanceof Ref ? e_601.toString() : null; var i_364 = t.get("RT"); _this.data.replyType = i_364 instanceof Name ? i_364.name : j; } var i = null; if (_this.data.replyType === X) { var e_602 = t.get("IRT"); _this.setTitle(e_602.get("T")); _this.data.titleObj = _this._title; _this.setContents(e_602.get("Contents")); _this.data.contentsObj = _this._contents; if (e_602.has("CreationDate")) { _this.setCreationDate(e_602.get("CreationDate")); _this.data.creationDate = _this.creationDate; } else _this.data.creationDate = null; if (e_602.has("M")) { _this.setModificationDate(e_602.get("M")); _this.data.modificationDate = _this.modificationDate; } else _this.data.modificationDate = null; i = e_602.getRaw("Popup"); if (e_602.has("C")) { _this.setColor(e_602.getArray("C")); _this.data.color = _this.color; } else _this.data.color = null; } else { _this.data.titleObj = _this._title; _this.setCreationDate(t.get("CreationDate")); _this.data.creationDate = _this.creationDate; i = t.getRaw("Popup"); t.has("C") || (_this.data.color = null); } _this.data.popupRef = i instanceof Ref ? i.toString() : null; t.has("RC") && (_this.data.richText = XFAFactory.getRichTextAsHtml(t.get("RC"))); return _this; } MarkupAnnotation.prototype.setCreationDate = function (e) { this.creationDate = "string" == typeof e ? e : null; }; MarkupAnnotation.prototype._setDefaultAppearance = function (_b) { var e = _b.xref, t = _b.extra, i = _b.strokeColor, a = _b.fillColor, s = _b.blendMode, r = _b.strokeAlpha, n = _b.fillAlpha, o = _b.pointsCallback; var g = Number.MAX_VALUE, c = Number.MAX_VALUE, h = Number.MIN_VALUE, l = Number.MIN_VALUE; var C = ["q"]; t && C.push(t); i && C.push("".concat(i[0], " ").concat(i[1], " ").concat(i[2], " RG")); a && C.push("".concat(a[0], " ").concat(a[1], " ").concat(a[2], " rg")); var Q = this.data.quadPoints; Q || (Q = [[{ 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] }]]); for (var _k = 0, Q_24 = Q; _k < Q_24.length; _k++) { var e_603 = Q_24[_k]; var _l = o(C, e_603), t_441 = _l[0], i_365 = _l[1], a_289 = _l[2], s_194 = _l[3]; g = Math.min(g, t_441); h = Math.max(h, i_365); c = Math.min(c, a_289); l = Math.max(l, s_194); } C.push("Q"); var E = new Dict(e), u = new Dict(e); u.set("Subtype", Name.get("Form")); var d = new StringStream(C.join(" ")); d.dict = u; E.set("Fm0", d); var f = new Dict(e); s && f.set("BM", Name.get(s)); "number" == typeof r && f.set("CA", r); "number" == typeof n && f.set("ca", n); var p = new Dict(e); p.set("GS0", f); var m = new Dict(e); m.set("ExtGState", p); m.set("XObject", E); var y = new Dict(e); y.set("Resources", m); var w = this.data.rect = [g, c, h, l]; y.set("BBox", w); this.appearance = new StringStream("/GS0 gs /Fm0 Do"); this.appearance.dict = y; this._streams.push(this.appearance, d); }; MarkupAnnotation.createNewAnnotation = function (e, t, i, a) { return tslib_1.__awaiter(this, void 0, void 0, function () { var s, r, n, o, a_290; return tslib_1.__generator(this, function (_b) { switch (_b.label) { case 0: s = t.ref || (t.ref = e.getNewTemporaryRef()); return [4 /*yield*/, this.createNewAppearanceStream(t, e, a)]; case 1: r = _b.sent(), n = []; if (!r) return [3 /*break*/, 3]; a_290 = e.getNewTemporaryRef(); o = this.createNewDict(t, e, { apRef: a_290 }); return [4 /*yield*/, writeObject(a_290, r, n, e)]; case 2: _b.sent(); i.push({ ref: a_290, data: n.join("") }); return [3 /*break*/, 4]; case 3: o = this.createNewDict(t, e, {}); _b.label = 4; case 4: Number.isInteger(t.parentTreeId) && o.set("StructParent", t.parentTreeId); n.length = 0; return [4 /*yield*/, writeObject(s, o, n, e)]; case 5: _b.sent(); return [2 /*return*/, { ref: s, data: n.join("") }]; } }); }); }; MarkupAnnotation.createNewPrintAnnotation = function (e, t, i, a) { return tslib_1.__awaiter(this, void 0, void 0, function () { var s, r, n; return tslib_1.__generator(this, function (_b) { switch (_b.label) { case 0: return [4 /*yield*/, this.createNewAppearanceStream(i, t, a)]; case 1: s = _b.sent(), r = this.createNewDict(i, t, { ap: s }), n = new this.prototype.constructor({ dict: r, xref: t, annotationGlobals: e, evaluatorOptions: a.evaluatorOptions }); i.ref && (n.ref = n.refToReplace = i.ref); return [2 /*return*/, n]; } }); }); }; return MarkupAnnotation; }(Annotation)); var WidgetAnnotation = /** @class */ (function (_super) { tslib_1.__extends(WidgetAnnotation, _super); function WidgetAnnotation(e) { var _this = this; var _b; _this = _super.call(this, e) || this; var t = e.dict, i = e.xref, a = e.annotationGlobals, s = _this.data; _this._needAppearances = e.needAppearances; s.annotationType = W; void 0 === s.fieldName && (s.fieldName = _this._constructFieldName(t)); void 0 === s.actions && (s.actions = collectActions(i, t, uA)); var r = getInheritableProperty({ dict: t, key: "V", getArray: !0 }); s.fieldValue = _this._decodeFormValue(r); var n = getInheritableProperty({ dict: t, key: "DV", getArray: !0 }); s.defaultFieldValue = _this._decodeFormValue(n); if (void 0 === r && a.xfaDatasets) { var e_604 = _this._title.str; if (e_604) { _this._hasValueFromXFA = !0; s.fieldValue = r = a.xfaDatasets.getValue(e_604); } } void 0 === r && null !== s.defaultFieldValue && (s.fieldValue = s.defaultFieldValue); s.alternativeText = stringToPDFString(t.get("TU") || ""); _this.setDefaultAppearance(e); s.hasAppearance || (s.hasAppearance = _this._needAppearances && void 0 !== s.fieldValue && null !== s.fieldValue); var o = getInheritableProperty({ dict: t, key: "FT" }); s.fieldType = o instanceof Name ? o.name : null; var g = getInheritableProperty({ dict: t, key: "DR" }), c = a.acroForm.get("DR"), h = (_b = _this.appearance) === null || _b === void 0 ? void 0 : _b.dict.get("Resources"); _this._fieldResources = { localResources: g, acroFormResources: c, appearanceResources: h, mergedResources: Dict.merge({ xref: i, dictArray: [g, h, c], mergeSubDicts: !0 }) }; s.fieldFlags = getInheritableProperty({ dict: t, key: "Ff" }); (!Number.isInteger(s.fieldFlags) || s.fieldFlags < 0) && (s.fieldFlags = 0); s.readOnly = _this.hasFieldFlag(tA); s.required = _this.hasFieldFlag(iA); s.hidden = _this._hasFlag(s.annotationFlags, V) || _this._hasFlag(s.annotationFlags, $); return _this; } WidgetAnnotation.prototype._decodeFormValue = function (e) { return Array.isArray(e) ? e.filter((function (e) { return "string" == typeof e; })).map((function (e) { return stringToPDFString(e); })) : e instanceof Name ? stringToPDFString(e.name) : "string" == typeof e ? stringToPDFString(e) : null; }; WidgetAnnotation.prototype.hasFieldFlag = function (e) { return !!(this.data.fieldFlags & e); }; WidgetAnnotation.prototype._isViewable = function (e) { return !0; }; WidgetAnnotation.prototype.mustBeViewed = function (e, t) { return t ? this.viewable : _super.prototype.mustBeViewed.call(this, e, t) && !this._hasFlag(this.flags, $); }; WidgetAnnotation.prototype.getRotationMatrix = function (e) { var _b; var t = (_b = e === null || e === void 0 ? void 0 : e.get(this.data.id)) === null || _b === void 0 ? void 0 : _b.rotation; void 0 === t && (t = this.rotation); if (0 === t) return i; return getRotationMatrix(t, this.data.rect[2] - this.data.rect[0], this.data.rect[3] - this.data.rect[1]); }; WidgetAnnotation.prototype.getBorderAndBackgroundAppearances = function (e) { var _b; var t = (_b = e === null || e === void 0 ? void 0 : e.get(this.data.id)) === null || _b === void 0 ? void 0 : _b.rotation; void 0 === t && (t = this.rotation); if (!this.backgroundColor && !this.borderColor) return ""; var i = this.data.rect[2] - this.data.rect[0], a = this.data.rect[3] - this.data.rect[1], s = 0 === t || 180 === t ? "0 0 ".concat(i, " ").concat(a, " re") : "0 0 ".concat(a, " ").concat(i, " re"); var r = ""; this.backgroundColor && (r = "".concat(getPdfColor(this.backgroundColor, !0), " ").concat(s, " f ")); if (this.borderColor) { r += "".concat(this.borderStyle.width || 1, " w ").concat(getPdfColor(this.borderColor, !1), " ").concat(s, " S "); } return r; }; WidgetAnnotation.prototype.getOperatorList = function (e, t, i, a, s) { return tslib_1.__awaiter(this, void 0, void 0, function () { var r, n, o, c, h, l, _b, C; return tslib_1.__generator(this, function (_k) { switch (_k.label) { case 0: if (a && !(this instanceof SignatureWidgetAnnotation) && !this.data.noHTML && !this.data.hasOwnCanvas) return [2 /*return*/, { opList: new OperatorList, separateForm: !0, separateCanvas: !1 }]; if (!this._hasText) return [2 /*return*/, _super.prototype.getOperatorList.call(this, e, t, i, a, s)]; return [4 /*yield*/, this._getAppearance(e, t, i, s)]; case 1: r = _k.sent(); if (this.appearance && null === r) return [2 /*return*/, _super.prototype.getOperatorList.call(this, e, t, i, a, s)]; n = new OperatorList; if (!this._defaultAppearance || null === r) return [2 /*return*/, { opList: n, separateForm: !1, separateCanvas: !1 }]; o = !!(this.data.hasOwnCanvas && i & g), c = [0, 0, this.data.rect[2] - this.data.rect[0], this.data.rect[3] - this.data.rect[1]], h = getTransformMatrix(this.data.rect, c, [1, 0, 0, 1, 0, 0]); _b = this.oc; if (!_b) return [3 /*break*/, 3]; return [4 /*yield*/, e.parseMarkedContentProps(this.oc, null)]; case 2: _b = (l = _k.sent()); _k.label = 3; case 3: _b; void 0 !== l && n.addOp(He, ["OC", l]); n.addOp(We, [this.data.id, this.data.rect, h, this.getRotationMatrix(s), o]); C = new StringStream(r); return [4 /*yield*/, e.getOperatorList({ stream: C, task: t, resources: this._fieldResources.mergedResources, operatorList: n })]; case 4: _k.sent(); n.addOp(Xe, []); void 0 !== l && n.addOp(Ye, []); return [2 /*return*/, { opList: n, separateForm: !1, separateCanvas: o }]; } }); }); }; WidgetAnnotation.prototype._getMKDict = function (e) { var t = new Dict(null); e && t.set("R", e); this.borderColor && t.set("BC", getPdfColorArray(this.borderColor)); this.backgroundColor && t.set("BG", getPdfColorArray(this.backgroundColor)); return t.size > 0 ? t : null; }; WidgetAnnotation.prototype.amendSavedDict = function (e, t) { }; WidgetAnnotation.prototype.save = function (e, t, a) { return tslib_1.__awaiter(this, void 0, void 0, function () { var s, r, n, o, g, c, l, C, _b, _k, e_605, Q, encoder, E, u, d, e_606, t_442, s_195, r_153, n_103, g_56; var _this = this; return tslib_1.__generator(this, function (_l) { switch (_l.label) { case 0: s = a === null || a === void 0 ? void 0 : a.get(this.data.id); r = s === null || s === void 0 ? void 0 : s.value, n = s === null || s === void 0 ? void 0 : s.rotation; if (r === this.data.fieldValue || void 0 === r) { if (!this._hasValueFromXFA && void 0 === n) return [2 /*return*/, null]; r || (r = this.data.fieldValue); } if (void 0 === n && !this._hasValueFromXFA && Array.isArray(r) && Array.isArray(this.data.fieldValue) && r.length === this.data.fieldValue.length && r.every((function (e, t) { return e === _this.data.fieldValue[t]; }))) return [2 /*return*/, null]; void 0 === n && (n = this.rotation); o = null; if (!!this._needAppearances) return [3 /*break*/, 2]; return [4 /*yield*/, this._getAppearance(e, t, h, a)]; case 1: o = _l.sent(); if (null === o) return [2 /*return*/, null]; _l.label = 2; case 2: g = !1; if (o === null || o === void 0 ? void 0 : o.needAppearances) { g = !0; o = null; } c = e.xref, l = c.fetchIfRef(this.ref); if (!(l instanceof Dict)) return [2 /*return*/, null]; C = new Dict(c); for (_b = 0, _k = l.getKeys(); _b < _k.length; _b++) { e_605 = _k[_b]; "AP" !== e_605 && C.set(e_605, l.getRaw(e_605)); } Q = { path: this.data.fieldName, value: r }, encoder = function (e) { return isAscii(e) ? e : stringToUTF16String(e, !0); }; C.set("V", Array.isArray(r) ? r.map(encoder) : encoder(r)); this.amendSavedDict(a, C); E = this._getMKDict(n); E && C.set("MK", E); u = [], d = [{ ref: this.ref, data: "", xfa: Q, needAppearances: g }]; if (!(null !== o)) return [3 /*break*/, 4]; e_606 = c.getNewTemporaryRef(), t_442 = new Dict(c); C.set("AP", t_442); t_442.set("N", e_606); s_195 = this._getSaveFieldResources(c), r_153 = new StringStream(o), n_103 = r_153.dict = new Dict(c); n_103.set("Subtype", Name.get("Form")); n_103.set("Resources", s_195); n_103.set("BBox", [0, 0, this.data.rect[2] - this.data.rect[0], this.data.rect[3] - this.data.rect[1]]); g_56 = this.getRotationMatrix(a); g_56 !== i && n_103.set("Matrix", g_56); return [4 /*yield*/, writeObject(e_606, r_153, u, c)]; case 3: _l.sent(); d.push({ ref: e_606, data: u.join(""), xfa: null, needAppearances: !1 }); u.length = 0; _l.label = 4; case 4: C.set("M", "D:".concat(getModificationDate())); return [4 /*yield*/, writeObject(this.ref, C, u, c)]; case 5: _l.sent(); d[0].data = u.join(""); return [2 /*return*/, d]; } }); }); }; WidgetAnnotation.prototype._getAppearance = function (e, t, i, a) { return tslib_1.__awaiter(this, void 0, void 0, function () { var s, r, o, g, e_607, c, l, C, Q, E, u, d, f, p, m, _b, c_45, e_608, t_443, i_366, a_291, s_196, n_104, e_609, _k, _l, t_444, o_77, e_610, t_445, g_57, y, w, b, D; var _m, _o, _p; return tslib_1.__generator(this, function (_q) { switch (_q.label) { case 0: if (this.hasFieldFlag(sA)) return [2 /*return*/, null]; s = a === null || a === void 0 ? void 0 : a.get(this.data.id); if (s) { r = s.formattedValue || s.value; o = s.rotation; } if (void 0 === o && void 0 === r && !this._needAppearances && (!this._hasValueFromXFA || this.appearance)) return [2 /*return*/, null]; g = this.getBorderAndBackgroundAppearances(a); if (void 0 === r) { r = this.data.fieldValue; if (!r) return [2 /*return*/, "/Tx BMC q ".concat(g, "Q EMC")]; } Array.isArray(r) && 1 === r.length && (r = r[0]); assert("string" == typeof r, "Expected `value` to be a string."); r = r.trim(); if (this.data.combo) { e_607 = this.data.options.find((function (_b) { var e = _b.exportValue; return r === e; })); r = (e_607 === null || e_607 === void 0 ? void 0 : e_607.displayValue) || r; } if ("" === r) return [2 /*return*/, "/Tx BMC q ".concat(g, "Q EMC")]; void 0 === o && (o = this.rotation); l = -1; if (this.data.multiLine) { c = r.split(/\r\n?|\n/).map((function (e) { return e.normalize("NFC"); })); l = c.length; } else c = [r.replace(/\r\n?|\n/, "").normalize("NFC")]; C = this.data.rect[3] - this.data.rect[1], Q = this.data.rect[2] - this.data.rect[0]; 90 !== o && 270 !== o || (_m = [C, Q], Q = _m[0], C = _m[1], _m); this._defaultAppearance || (this.data.defaultAppearanceData = parseDefaultAppearance(this._defaultAppearance = "/Helvetica 0 Tf 0 g")); return [4 /*yield*/, WidgetAnnotation._getFontData(e, t, this.data.defaultAppearanceData, this._fieldResources.mergedResources)]; case 1: f = _q.sent(); p = []; m = !1; for (_b = 0, c_45 = c; _b < c_45.length; _b++) { e_608 = c_45[_b]; t_443 = f.encodeString(e_608); t_443.length > 1 && (m = !0); p.push(t_443.join("")); } if (m && i & h) return [2 /*return*/, { needAppearances: !0 }]; if (!(m && this._isOffscreenCanvasSupported)) return [3 /*break*/, 3]; i_366 = this.data.comb ? "monospace" : "sans-serif", a_291 = new FakeUnicodeFont(e.xref, i_366), s_196 = a_291.createFontResources(c.join("")), n_104 = s_196.getRaw("Font"); if (this._fieldResources.mergedResources.has("Font")) { e_609 = this._fieldResources.mergedResources.get("Font"); for (_k = 0, _l = n_104.getKeys(); _k < _l.length; _k++) { t_444 = _l[_k]; e_609.set(t_444, n_104.getRaw(t_444)); } } else this._fieldResources.mergedResources.set("Font", n_104); o_77 = a_291.fontName.name; return [4 /*yield*/, WidgetAnnotation._getFontData(e, t, { fontName: o_77, fontSize: 0 }, s_196)]; case 2: f = _q.sent(); for (e_610 = 0, t_445 = p.length; e_610 < t_445; e_610++) p[e_610] = stringToUTF16String(c[e_610]); g_57 = Object.assign(Object.create(null), this.data.defaultAppearanceData); this.data.defaultAppearanceData.fontSize = 0; this.data.defaultAppearanceData.fontName = o_77; _o = this._computeFontSize(C - 2, Q - 4, r, f, l), E = _o[0], u = _o[1], d = _o[2]; this.data.defaultAppearanceData = g_57; return [3 /*break*/, 4]; case 3: this._isOffscreenCanvasSupported || warn("_getAppearance: OffscreenCanvas is not supported, annotation may not render correctly."); _p = this._computeFontSize(C - 2, Q - 4, r, f, l), E = _p[0], u = _p[1], d = _p[2]; _q.label = 4; case 4: y = f.descent; y = isNaN(y) ? n * d : Math.max(n * d, Math.abs(y) * u); w = Math.min(Math.floor((C - u) / 2), 1), b = this.data.textAlignment; if (this.data.multiLine) return [2 /*return*/, this._getMultilineAppearance(E, p, f, u, Q, C, b, 2, w, y, d, a)]; if (this.data.comb) return [2 /*return*/, this._getCombAppearance(E, f, p[0], u, Q, C, 2, w, y, d, a)]; D = w + y; if (0 === b || b > 2) return [2 /*return*/, "/Tx BMC q ".concat(g, "BT ") + E + " 1 0 0 1 ".concat(numberToString(2), " ").concat(numberToString(D), " Tm (").concat(escapeString(p[0]), ") Tj ET Q EMC")]; return [2 /*return*/, "/Tx BMC q ".concat(g, "BT ") + E + " 1 0 0 1 0 0 Tm ".concat(this._renderText(p[0], f, u, Q, b, { shift: 0 }, 2, D), " ET Q EMC")]; } }); }); }; WidgetAnnotation._getFontData = function (e, t, i, a) { return tslib_1.__awaiter(this, void 0, void 0, function () { var s, r, n, o; return tslib_1.__generator(this, function (_b) { switch (_b.label) { case 0: s = new OperatorList, r = { font: null, clone: function () { return this; } }, n = i.fontName, o = i.fontSize; return [4 /*yield*/, e.handleSetFont(a, [n && Name.get(n), o], null, s, t, r, null)]; case 1: _b.sent(); return [2 /*return*/, r.font]; } }); }); }; WidgetAnnotation.prototype._getTextWidth = function (e, t) { return t.charsToGlyphs(e).reduce((function (e, t) { return e + t.width; }), 0) / 1e3; }; WidgetAnnotation.prototype._computeFontSize = function (e, t, i, a, r) { var _this = this; var n = this.data.defaultAppearanceData.fontSize, o = (n || 12) * s, g = Math.round(e / o); if (!n) { var roundWithTwoDigits = function (e) { return Math.floor(100 * e) / 100; }; if (-1 === r) { var r_154 = this._getTextWidth(i, a); n = roundWithTwoDigits(Math.min(e / s, r_154 > t ? t / r_154 : 1 / 0)); g = 1; } else { var c_47 = i.split(/\r\n?|\n/), h_33 = []; for (var _b = 0, c_46 = c_47; _b < c_46.length; _b++) { var e_611 = c_46[_b]; var t_446 = a.encodeString(e_611).join(""), i_367 = a.charsToGlyphs(t_446), s_197 = a.getCharPositions(t_446); h_33.push({ line: t_446, glyphs: i_367, positions: s_197 }); } var isTooBig = function (i) { var s = 0; for (var _b = 0, h_34 = h_33; _b < h_34.length; _b++) { var r_155 = h_34[_b]; s += _this._splitLine(null, a, i, t, r_155).length * i; if (s > e) return !0; } return !1; }; g = Math.max(g, r); for (;;) { o = e / g; n = roundWithTwoDigits(o / s); if (!isTooBig(n)) break; g++; } } var _k = this.data.defaultAppearanceData, c_48 = _k.fontName, h_35 = _k.fontColor; this._defaultAppearance = function createDefaultAppearance(_b) { var e = _b.fontSize, t = _b.fontName, i = _b.fontColor; return "/".concat(escapePDFName(t), " ").concat(e, " Tf ").concat(getPdfColor(i, !0)); }({ fontSize: n, fontName: c_48, fontColor: h_35 }); } return [this._defaultAppearance, n, e / g]; }; WidgetAnnotation.prototype._renderText = function (e, t, i, a, s, r, n, o) { var g; if (1 === s) { g = (a - this._getTextWidth(e, t) * i) / 2; } else if (2 === s) { g = a - this._getTextWidth(e, t) * i - n; } else g = n; var c = numberToString(g - r.shift); r.shift = g; return "".concat(c, " ").concat(o = numberToString(o), " Td (").concat(escapeString(e), ") Tj"); }; WidgetAnnotation.prototype._getSaveFieldResources = function (e) { var _b; var _k = this._fieldResources, t = _k.localResources, i = _k.appearanceResources, a = _k.acroFormResources, s = (_b = this.data.defaultAppearanceData) === null || _b === void 0 ? void 0 : _b.fontName; if (!s) return t || Dict.empty; for (var _l = 0, _m = [t, i]; _l < _m.length; _l++) { var e_612 = _m[_l]; if (e_612 instanceof Dict) { var t_447 = e_612.get("Font"); if (t_447 instanceof Dict && t_447.has(s)) return e_612; } } if (a instanceof Dict) { var i_368 = a.get("Font"); if (i_368 instanceof Dict && i_368.has(s)) { var a_292 = new Dict(e); a_292.set(s, i_368.getRaw(s)); var r_156 = new Dict(e); r_156.set("Font", a_292); return Dict.merge({ xref: e, dictArray: [r_156, t], mergeSubDicts: !0 }); } } return t || Dict.empty; }; WidgetAnnotation.prototype.getFieldObject = function () { return null; }; return WidgetAnnotation; }(Annotation)); var TextWidgetAnnotation = /** @class */ (function (_super) { tslib_1.__extends(TextWidgetAnnotation, _super); function TextWidgetAnnotation(e) { var _this = _super.call(this, e) || this; _this.data.hasOwnCanvas = _this.data.readOnly && !_this.data.noHTML; _this._hasText = !0; var t = e.dict; "string" != typeof _this.data.fieldValue && (_this.data.fieldValue = ""); var i = getInheritableProperty({ dict: t, key: "Q" }); (!Number.isInteger(i) || i < 0 || i > 2) && (i = null); _this.data.textAlignment = i; var a = getInheritableProperty({ dict: t, key: "MaxLen" }); (!Number.isInteger(a) || a < 0) && (a = 0); _this.data.maxLen = a; _this.data.multiLine = _this.hasFieldFlag(aA); _this.data.comb = _this.hasFieldFlag(hA) && !_this.hasFieldFlag(aA) && !_this.hasFieldFlag(sA) && !_this.hasFieldFlag(gA) && 0 !== _this.data.maxLen; _this.data.doNotScroll = _this.hasFieldFlag(cA); return _this; } Object.defineProperty(TextWidgetAnnotation.prototype, "hasTextContent", { get: function () { return !!this.appearance && !this._needAppearances; }, enumerable: false, configurable: true }); TextWidgetAnnotation.prototype._getCombAppearance = function (e, t, i, a, s, r, n, o, g, c, h) { var l = s / this.data.maxLen, C = this.getBorderAndBackgroundAppearances(h), Q = [], E = t.getCharPositions(i); for (var _b = 0, E_14 = E; _b < E_14.length; _b++) { var _k = E_14[_b], e_613 = _k[0], t_448 = _k[1]; Q.push("(".concat(escapeString(i.substring(e_613, t_448)), ") Tj")); } var u = Q.join(" ".concat(numberToString(l), " 0 Td ")); return "/Tx BMC q ".concat(C, "BT ") + e + " 1 0 0 1 ".concat(numberToString(n), " ").concat(numberToString(o + g), " Tm ").concat(u, " ET Q EMC"); }; TextWidgetAnnotation.prototype._getMultilineAppearance = function (e, t, i, a, s, r, n, o, g, c, h, l) { var C = [], Q = s - 2 * o, E = { shift: 0 }; for (var e_614 = 0, r_157 = t.length; e_614 < r_157; e_614++) { var r_158 = t[e_614], l_29 = this._splitLine(r_158, i, a, Q); for (var t_449 = 0, r_159 = l_29.length; t_449 < r_159; t_449++) { var r_160 = l_29[t_449], Q_25 = 0 === e_614 && 0 === t_449 ? -g - (h - c) : -h; C.push(this._renderText(r_160, i, a, s, n, E, o, Q_25)); } } var u = this.getBorderAndBackgroundAppearances(l), d = C.join("\n"); return "/Tx BMC q ".concat(u, "BT ") + e + " 1 0 0 1 0 ".concat(numberToString(r), " Tm ").concat(d, " ET Q EMC"); }; TextWidgetAnnotation.prototype._splitLine = function (e, t, i, a, s) { if (s === void 0) { s = {}; } e = s.line || e; var r = s.glyphs || t.charsToGlyphs(e); if (r.length <= 1) return [e]; var n = s.positions || t.getCharPositions(e), o = i / 1e3, g = []; var c = -1, h = -1, l = -1, C = 0, Q = 0; for (var t_450 = 0, i_369 = r.length; t_450 < i_369; t_450++) { var _b = n[t_450], i_370 = _b[0], s_198 = _b[1], E_15 = r[t_450], u_13 = E_15.width * o; if (" " === E_15.unicode) if (Q + u_13 > a) { g.push(e.substring(C, i_370)); C = i_370; Q = u_13; c = -1; l = -1; } else { Q += u_13; c = i_370; h = s_198; l = t_450; } else if (Q + u_13 > a) if (-1 !== c) { g.push(e.substring(C, h)); C = h; t_450 = l + 1; c = -1; Q = 0; } else { g.push(e.substring(C, i_370)); C = i_370; Q = u_13; } else Q += u_13; } C < e.length && g.push(e.substring(C, e.length)); return g; }; TextWidgetAnnotation.prototype.getFieldObject = function () { return { id: this.data.id, value: this.data.fieldValue, defaultValue: this.data.defaultFieldValue || "", multiline: this.data.multiLine, password: this.hasFieldFlag(sA), 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, rotation: this.rotation, type: "text" }; }; return TextWidgetAnnotation; }(WidgetAnnotation)); var ButtonWidgetAnnotation = /** @class */ (function (_super) { tslib_1.__extends(ButtonWidgetAnnotation, _super); function ButtonWidgetAnnotation(e) { var _this = _super.call(this, e) || this; _this.checkedAppearance = null; _this.uncheckedAppearance = null; _this.data.checkBox = !_this.hasFieldFlag(rA) && !_this.hasFieldFlag(nA); _this.data.radioButton = _this.hasFieldFlag(rA) && !_this.hasFieldFlag(nA); _this.data.pushButton = _this.hasFieldFlag(nA); _this.data.isTooltipOnly = !1; if (_this.data.checkBox) _this._processCheckBox(e); else if (_this.data.radioButton) _this._processRadioButton(e); else if (_this.data.pushButton) { _this.data.hasOwnCanvas = !0; _this.data.noHTML = !1; _this._processPushButton(e); } else warn("Invalid field flags for button widget annotation"); return _this; } ButtonWidgetAnnotation.prototype.getOperatorList = function (e, t, a, s, r) { return tslib_1.__awaiter(this, void 0, void 0, function () { var n, o, e_615, g, n_105, c_49, h_36; return tslib_1.__generator(this, function (_b) { if (this.data.pushButton) return [2 /*return*/, _super.prototype.getOperatorList.call(this, e, t, a, !1, r)]; n = null, o = null; if (r) { e_615 = r.get(this.data.id); n = e_615 ? e_615.value : null; o = e_615 ? e_615.rotation : null; } if (null === n && this.appearance) return [2 /*return*/, _super.prototype.getOperatorList.call(this, e, t, a, s, r)]; null == n && (n = this.data.checkBox ? this.data.fieldValue === this.data.exportValue : this.data.fieldValue === this.data.buttonValue); g = n ? this.checkedAppearance : this.uncheckedAppearance; if (g) { n_105 = this.appearance, c_49 = lookupMatrix(g.dict.getArray("Matrix"), i); o && g.dict.set("Matrix", this.getRotationMatrix(r)); this.appearance = g; h_36 = _super.prototype.getOperatorList.call(this, e, t, a, s, r); this.appearance = n_105; g.dict.set("Matrix", c_49); return [2 /*return*/, h_36]; } return [2 /*return*/, { opList: new OperatorList, separateForm: !1, separateCanvas: !1 }]; }); }); }; ButtonWidgetAnnotation.prototype.save = function (e, t, i) { return tslib_1.__awaiter(this, void 0, void 0, function () { return tslib_1.__generator(this, function (_b) { return [2 /*return*/, this.data.checkBox ? this._saveCheckbox(e, t, i) : this.data.radioButton ? this._saveRadioButton(e, t, i) : null]; }); }); }; ButtonWidgetAnnotation.prototype._saveCheckbox = function (e, t, i) { return tslib_1.__awaiter(this, void 0, void 0, function () { var a, s, r, n, o, g, c, h; return tslib_1.__generator(this, function (_b) { switch (_b.label) { case 0: if (!i) return [2 /*return*/, null]; a = i.get(this.data.id); s = a === null || a === void 0 ? void 0 : a.rotation, r = a === null || a === void 0 ? void 0 : a.value; if (void 0 === s) { if (void 0 === r) return [2 /*return*/, null]; if (this.data.fieldValue === this.data.exportValue === r) return [2 /*return*/, null]; } n = e.xref.fetchIfRef(this.ref); if (!(n instanceof Dict)) return [2 /*return*/, null]; void 0 === s && (s = this.rotation); void 0 === r && (r = this.data.fieldValue === this.data.exportValue); o = { path: this.data.fieldName, value: r ? this.data.exportValue : "" }, g = Name.get(r ? this.data.exportValue : "Off"); n.set("V", g); n.set("AS", g); n.set("M", "D:".concat(getModificationDate())); c = this._getMKDict(s); c && n.set("MK", c); h = []; return [4 /*yield*/, writeObject(this.ref, n, h, e.xref)]; case 1: _b.sent(); return [2 /*return*/, [{ ref: this.ref, data: h.join(""), xfa: o }]]; } }); }); }; ButtonWidgetAnnotation.prototype._saveRadioButton = function (e, t, i) { return tslib_1.__awaiter(this, void 0, void 0, function () { var a, s, r, n, o, g, c, h, t_451, l, C; return tslib_1.__generator(this, function (_b) { switch (_b.label) { case 0: if (!i) return [2 /*return*/, null]; a = i.get(this.data.id); s = a === null || a === void 0 ? void 0 : a.rotation, r = a === null || a === void 0 ? void 0 : a.value; if (void 0 === s) { if (void 0 === r) return [2 /*return*/, null]; if (this.data.fieldValue === this.data.buttonValue === r) return [2 /*return*/, null]; } n = e.xref.fetchIfRef(this.ref); if (!(n instanceof Dict)) return [2 /*return*/, null]; void 0 === r && (r = this.data.fieldValue === this.data.buttonValue); void 0 === s && (s = this.rotation); o = { path: this.data.fieldName, value: r ? this.data.buttonValue : "" }, g = Name.get(r ? this.data.buttonValue : "Off"), c = []; h = null; if (!r) return [3 /*break*/, 3]; if (!(this.parent instanceof Ref)) return [3 /*break*/, 2]; t_451 = e.xref.fetch(this.parent); t_451.set("V", g); return [4 /*yield*/, writeObject(this.parent, t_451, c, e.xref)]; case 1: _b.sent(); h = c.join(""); c.length = 0; return [3 /*break*/, 3]; case 2: this.parent instanceof Dict && this.parent.set("V", g); _b.label = 3; case 3: n.set("AS", g); n.set("M", "D:".concat(getModificationDate())); l = this._getMKDict(s); l && n.set("MK", l); return [4 /*yield*/, writeObject(this.ref, n, c, e.xref)]; case 4: _b.sent(); C = [{ ref: this.ref, data: c.join(""), xfa: o }]; h && C.push({ ref: this.parent, data: h, xfa: null }); return [2 /*return*/, C]; } }); }); }; ButtonWidgetAnnotation.prototype._getDefaultCheckedAppearance = function (e, t) { var i = this.data.rect[2] - this.data.rect[0], a = this.data.rect[3] - this.data.rect[1], s = [0, 0, i, a], r = .8 * Math.min(i, a); var n, o; if ("check" === t) { n = { width: .755 * r, height: .705 * r }; o = "3"; } else if ("disc" === t) { n = { width: .791 * r, height: .705 * r }; o = "l"; } else unreachable("_getDefaultCheckedAppearance - unsupported type: ".concat(t)); var g = "q BT /PdfJsZaDb ".concat(r, " Tf 0 g ").concat(numberToString((i - n.width) / 2), " ").concat(numberToString((a - n.height) / 2), " Td (").concat(o, ") Tj ET Q"), c = new Dict(e.xref); c.set("FormType", 1); c.set("Subtype", Name.get("Form")); c.set("Type", Name.get("XObject")); c.set("BBox", s); c.set("Matrix", [1, 0, 0, 1, 0, 0]); c.set("Length", g.length); var h = new Dict(e.xref), l = new Dict(e.xref); l.set("PdfJsZaDb", this.fallbackFontDict); h.set("Font", l); c.set("Resources", h); this.checkedAppearance = new StringStream(g); this.checkedAppearance.dict = c; this._streams.push(this.checkedAppearance); }; ButtonWidgetAnnotation.prototype._processCheckBox = function (e) { var t = e.dict.get("AP"); if (!(t instanceof Dict)) return; var i = t.get("N"); if (!(i instanceof Dict)) return; var a = this._decodeFormValue(e.dict.get("AS")); "string" == typeof a && (this.data.fieldValue = a); var s = null !== this.data.fieldValue && "Off" !== this.data.fieldValue ? this.data.fieldValue : "Yes", r = i.getKeys(); if (0 === r.length) r.push("Off", s); else if (1 === r.length) "Off" === r[0] ? r.push(s) : r.unshift("Off"); else if (r.includes(s)) { r.length = 0; r.push("Off", s); } else { var e_616 = r.find((function (e) { return "Off" !== e; })); r.length = 0; r.push("Off", e_616); } r.includes(this.data.fieldValue) || (this.data.fieldValue = "Off"); this.data.exportValue = r[1]; var n = i.get(this.data.exportValue); this.checkedAppearance = n instanceof BaseStream ? n : null; var o = i.get("Off"); this.uncheckedAppearance = o instanceof BaseStream ? o : null; this.checkedAppearance ? this._streams.push(this.checkedAppearance) : this._getDefaultCheckedAppearance(e, "check"); this.uncheckedAppearance && this._streams.push(this.uncheckedAppearance); this._fallbackFontDict = this.fallbackFontDict; null === this.data.defaultFieldValue && (this.data.defaultFieldValue = "Off"); }; ButtonWidgetAnnotation.prototype._processRadioButton = function (e) { this.data.buttonValue = null; var t = e.dict.get("Parent"); if (t instanceof Dict) { this.parent = e.dict.getRaw("Parent"); var i_371 = t.get("V"); i_371 instanceof Name && (this.data.fieldValue = this._decodeFormValue(i_371)); } var i = e.dict.get("AP"); if (!(i instanceof Dict)) return; var a = i.get("N"); if (!(a instanceof Dict)) return; for (var _b = 0, _k = a.getKeys(); _b < _k.length; _b++) { var e_617 = _k[_b]; if ("Off" !== e_617) { this.data.buttonValue = this._decodeFormValue(e_617); break; } } var s = a.get(this.data.buttonValue); this.checkedAppearance = s instanceof BaseStream ? s : null; var r = a.get("Off"); this.uncheckedAppearance = r instanceof BaseStream ? r : null; this.checkedAppearance ? this._streams.push(this.checkedAppearance) : this._getDefaultCheckedAppearance(e, "disc"); this.uncheckedAppearance && this._streams.push(this.uncheckedAppearance); this._fallbackFontDict = this.fallbackFontDict; null === this.data.defaultFieldValue && (this.data.defaultFieldValue = "Off"); }; ButtonWidgetAnnotation.prototype._processPushButton = function (e) { var t = e.dict, i = e.annotationGlobals; if (t.has("A") || t.has("AA") || this.data.alternativeText) { this.data.isTooltipOnly = !t.has("A") && !t.has("AA"); Catalog.parseDestDictionary({ destDict: t, resultObj: this.data, docBaseUrl: i.baseUrl, docAttachments: i.attachments }); } else warn("Push buttons without action dictionaries are not supported"); }; ButtonWidgetAnnotation.prototype.getFieldObject = function () { var e, t = "button"; if (this.data.checkBox) { t = "checkbox"; e = this.data.exportValue; } else if (this.data.radioButton) { t = "radiobutton"; e = this.data.buttonValue; } return { id: this.data.id, value: this.data.fieldValue || "Off", defaultValue: this.data.defaultFieldValue, exportValues: e, 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, rotation: this.rotation, type: t }; }; Object.defineProperty(ButtonWidgetAnnotation.prototype, "fallbackFontDict", { get: function () { var e = new Dict; e.set("BaseFont", Name.get("ZapfDingbats")); e.set("Type", Name.get("FallbackType")); e.set("Subtype", Name.get("FallbackType")); e.set("Encoding", Name.get("ZapfDingbatsEncoding")); return shadow(this, "fallbackFontDict", e); }, enumerable: false, configurable: true }); return ButtonWidgetAnnotation; }(WidgetAnnotation)); var ChoiceWidgetAnnotation = /** @class */ (function (_super) { tslib_1.__extends(ChoiceWidgetAnnotation, _super); function ChoiceWidgetAnnotation(e) { var _this = _super.call(this, e) || this; var t = e.dict, i = e.xref; _this.indices = t.getArray("I"); _this.hasIndices = Array.isArray(_this.indices) && _this.indices.length > 0; _this.data.options = []; var a = getInheritableProperty({ dict: t, key: "Opt" }); if (Array.isArray(a)) for (var e_618 = 0, t_452 = a.length; e_618 < t_452; e_618++) { var t_453 = i.fetchIfRef(a[e_618]), s_199 = Array.isArray(t_453); _this.data.options[e_618] = { exportValue: _this._decodeFormValue(s_199 ? i.fetchIfRef(t_453[0]) : t_453), displayValue: _this._decodeFormValue(s_199 ? i.fetchIfRef(t_453[1]) : t_453) }; } if (_this.hasIndices) { _this.data.fieldValue = []; var e_619 = _this.data.options.length; for (var _b = 0, _k = _this.indices; _b < _k.length; _b++) { var t_454 = _k[_b]; Number.isInteger(t_454) && t_454 >= 0 && t_454 < e_619 && _this.data.fieldValue.push(_this.data.options[t_454].exportValue); } } else "string" == typeof _this.data.fieldValue ? _this.data.fieldValue = [_this.data.fieldValue] : _this.data.fieldValue || (_this.data.fieldValue = []); _this.data.combo = _this.hasFieldFlag(oA); _this.data.multiSelect = _this.hasFieldFlag(IA); _this._hasText = !0; return _this; } ChoiceWidgetAnnotation.prototype.getFieldObject = function () { var e = this.data.combo ? "combobox" : "listbox", t = this.data.fieldValue.length > 0 ? this.data.fieldValue[0] : null; return { id: this.data.id, value: t, 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, rotation: this.rotation, type: e }; }; ChoiceWidgetAnnotation.prototype.amendSavedDict = function (e, t) { var _b; if (!this.hasIndices) return; var i = (_b = e === null || e === void 0 ? void 0 : e.get(this.data.id)) === null || _b === void 0 ? void 0 : _b.value; Array.isArray(i) || (i = [i]); var a = [], s = this.data.options; for (var e_620 = 0, t_455 = 0, r_161 = s.length; e_620 < r_161; e_620++) if (s[e_620].exportValue === i[t_455]) { a.push(e_620); t_455 += 1; } t.set("I", a); }; ChoiceWidgetAnnotation.prototype._getAppearance = function (e, t, i, a) { return tslib_1.__awaiter(this, void 0, void 0, function () { var r, n, o, g, c, h, l, e_621, t_456, C, Q, E, e_622, t_457, i_372, _b, _k, e_623, a_293, u, d, f, p, e_624, t_458, m, y, _l, l_30, e_625, w, e_626, t_459, i_373; var _m, _o; return tslib_1.__generator(this, function (_p) { switch (_p.label) { case 0: if (this.data.combo) return [2 /*return*/, _super.prototype._getAppearance.call(this, e, t, i, a)]; o = a === null || a === void 0 ? void 0 : a.get(this.data.id); if (o) { n = o.rotation; r = o.value; } if (void 0 === n && void 0 === r && !this._needAppearances) return [2 /*return*/, null]; void 0 === r ? r = this.data.fieldValue : Array.isArray(r) || (r = [r]); g = this.data.rect[3] - this.data.rect[1], c = this.data.rect[2] - this.data.rect[0]; 90 !== n && 270 !== n || (_m = [g, c], c = _m[0], g = _m[1], _m); h = this.data.options.length, l = []; for (e_621 = 0; e_621 < h; e_621++) { t_456 = this.data.options[e_621].exportValue; r.includes(t_456) && l.push(e_621); } this._defaultAppearance || (this.data.defaultAppearanceData = parseDefaultAppearance(this._defaultAppearance = "/Helvetica 0 Tf 0 g")); return [4 /*yield*/, WidgetAnnotation._getFontData(e, t, this.data.defaultAppearanceData, this._fieldResources.mergedResources)]; case 1: C = _p.sent(); E = this.data.defaultAppearanceData.fontSize; if (E) Q = this._defaultAppearance; else { e_622 = (g - 1) / h; i_372 = -1; for (_b = 0, _k = this.data.options; _b < _k.length; _b++) { e_623 = _k[_b].displayValue; a_293 = this._getTextWidth(e_623, C); if (a_293 > i_372) { i_372 = a_293; t_457 = e_623; } } _o = this._computeFontSize(e_622, c - 4, t_457, C, -1), Q = _o[0], E = _o[1]; } u = E * s, d = (u - E) / 2, f = Math.floor(g / u); p = 0; if (l.length > 0) { e_624 = Math.min.apply(Math, l), t_458 = Math.max.apply(Math, l); p = Math.max(0, t_458 - f + 1); p > e_624 && (p = e_624); } m = Math.min(p + f + 1, h), y = ["/Tx BMC q", "1 1 ".concat(c, " ").concat(g, " re W n")]; if (l.length) { y.push("0.600006 0.756866 0.854904 rg"); for (_l = 0, l_30 = l; _l < l_30.length; _l++) { e_625 = l_30[_l]; p <= e_625 && e_625 < m && y.push("1 ".concat(g - (e_625 - p + 1) * u, " ").concat(c, " ").concat(u, " re f")); } } y.push("BT", Q, "1 0 0 1 0 ".concat(g, " Tm")); w = { shift: 0 }; for (e_626 = p; e_626 < m; e_626++) { t_459 = this.data.options[e_626].displayValue, i_373 = e_626 === p ? d : 0; y.push(this._renderText(t_459, C, E, c, 0, w, 2, -u + i_373)); } y.push("ET Q EMC"); return [2 /*return*/, y.join("\n")]; } }); }); }; return ChoiceWidgetAnnotation; }(WidgetAnnotation)); var SignatureWidgetAnnotation = /** @class */ (function (_super) { tslib_1.__extends(SignatureWidgetAnnotation, _super); function SignatureWidgetAnnotation(e) { var _this = _super.call(this, e) || this; _this.data.fieldValue = null; _this.data.hasOwnCanvas = _this.data.noRotate; _this.data.noHTML = !_this.data.hasOwnCanvas; return _this; } SignatureWidgetAnnotation.prototype.getFieldObject = function () { return { id: this.data.id, value: null, page: this.data.pageIndex, type: "signature" }; }; return SignatureWidgetAnnotation; }(WidgetAnnotation)); var TextAnnotation = /** @class */ (function (_super) { tslib_1.__extends(TextAnnotation, _super); function TextAnnotation(e) { var _this = _super.call(this, e) || this; _this.data.noRotate = !0; _this.data.hasOwnCanvas = _this.data.noRotate; _this.data.noHTML = !1; var t = e.dict; _this.data.annotationType = S; if (_this.data.hasAppearance) _this.data.name = "NoIcon"; else { _this.data.rect[1] = _this.data.rect[3] - 22; _this.data.rect[2] = _this.data.rect[0] + 22; _this.data.name = t.has("Name") ? t.get("Name").name : "Note"; } if (t.has("State")) { _this.data.state = t.get("State") || null; _this.data.stateModel = t.get("StateModel") || null; } else { _this.data.state = null; _this.data.stateModel = null; } return _this; } return TextAnnotation; }(MarkupAnnotation)); var LinkAnnotation = /** @class */ (function (_super) { tslib_1.__extends(LinkAnnotation, _super); function LinkAnnotation(e) { var _this = this; var _b; _this = _super.call(this, e) || this; var t = e.dict, i = e.annotationGlobals; _this.data.annotationType = k; _this.data.noHTML = !1; var a = getQuadPoints(t, _this.rectangle); a && (_this.data.quadPoints = a); (_b = _this.data).borderColor || (_b.borderColor = _this.data.color); Catalog.parseDestDictionary({ destDict: t, resultObj: _this.data, docBaseUrl: i.baseUrl, docAttachments: i.attachments }); return _this; } return LinkAnnotation; }(Annotation)); var PopupAnnotation = /** @class */ (function (_super) { tslib_1.__extends(PopupAnnotation, _super); function PopupAnnotation(e) { var _this = _super.call(this, e) || this; var t = e.dict; _this.data.annotationType = q; _this.data.noHTML = !1; _this.data.rect[0] !== _this.data.rect[2] && _this.data.rect[1] !== _this.data.rect[3] || (_this.data.rect = null); var i = t.get("Parent"); if (!i) { warn("Popup annotation has a missing or invalid parent annotation."); return _this; } _this.data.parentRect = lookupNormalRect(i.getArray("Rect"), null); isName(i.get("RT"), X) && (i = i.get("IRT")); if (i.has("M")) { _this.setModificationDate(i.get("M")); _this.data.modificationDate = _this.modificationDate; } else _this.data.modificationDate = null; if (i.has("C")) { _this.setColor(i.getArray("C")); _this.data.color = _this.color; } else _this.data.color = null; if (!_this.viewable) { var e_627 = i.get("F"); _this._isViewable(e_627) && _this.setFlags(e_627); } _this.setTitle(i.get("T")); _this.data.titleObj = _this._title; _this.setContents(i.get("Contents")); _this.data.contentsObj = _this._contents; i.has("RC") && (_this.data.richText = XFAFactory.getRichTextAsHtml(i.get("RC"))); _this.data.open = !!t.get("Open"); return _this; } return PopupAnnotation; }(Annotation)); var FreeTextAnnotation = /** @class */ (function (_super) { tslib_1.__extends(FreeTextAnnotation, _super); function FreeTextAnnotation(e) { var _this = this; var _b; _this = _super.call(this, e) || this; _this.data.hasOwnCanvas = !_this.data.noHTML; _this.data.noHTML = !1; var t = e.evaluatorOptions, i = e.xref; _this.data.annotationType = R; _this.setDefaultAppearance(e); _this._hasAppearance = !!_this.appearance; if (_this._hasAppearance) { var _k = function parseAppearanceStream(e, t, i) { return new AppearanceStreamEvaluator(e, t, i).parse(); }(_this.appearance, t, i), e_628 = _k.fontColor, a_294 = _k.fontSize; _this.data.defaultAppearanceData.fontColor = e_628; _this.data.defaultAppearanceData.fontSize = a_294 || 10; } else { (_b = _this.data.defaultAppearanceData).fontSize || (_b.fontSize = 10); var _l = _this.data.defaultAppearanceData, t_460 = _l.fontColor, a_295 = _l.fontSize; if (_this._contents.str) { _this.data.textContent = _this._contents.str.split(/\r\n?|\n/).map((function (e) { return e.trimEnd(); })); var _m = FakeUnicodeFont.getFirstPositionInfo(_this.rectangle, _this.rotation, a_295), e_629 = _m.coords, t_461 = _m.bbox, i_374 = _m.matrix; _this.data.textPosition = _this._transformPoint(e_629, t_461, i_374); } if (_this._isOffscreenCanvasSupported) { var s_200 = e.dict.get("CA"), r_162 = new FakeUnicodeFont(i, "sans-serif"); _this.appearance = r_162.createAppearance(_this._contents.str, _this.rectangle, _this.rotation, a_295, t_460, s_200); _this._streams.push(_this.appearance); } else warn("FreeTextAnnotation: OffscreenCanvas is not supported, annotation may not render correctly."); } return _this; } Object.defineProperty(FreeTextAnnotation.prototype, "hasTextContent", { get: function () { return this._hasAppearance; }, enumerable: false, configurable: true }); FreeTextAnnotation.createNewDict = function (e, t, _b) { var i = _b.apRef, a = _b.ap; var s = e.color, r = e.fontSize, n = e.rect, o = e.rotation, g = e.user, c = e.value, h = new Dict(t); h.set("Type", Name.get("Annot")); h.set("Subtype", Name.get("FreeText")); h.set("CreationDate", "D:".concat(getModificationDate())); h.set("Rect", n); var l = "/Helv ".concat(r, " Tf ").concat(getPdfColor(s, !0)); h.set("DA", l); h.set("Contents", isAscii(c) ? c : stringToUTF16String(c, !0)); h.set("F", 4); h.set("Border", [0, 0, 0]); h.set("Rotate", o); g && h.set("T", isAscii(g) ? g : stringToUTF16String(g, !0)); if (i || a) { var e_630 = new Dict(t); h.set("AP", e_630); i ? e_630.set("N", i) : e_630.set("N", a); } return h; }; FreeTextAnnotation.createNewAppearanceStream = function (e, t, i) { return tslib_1.__awaiter(this, void 0, void 0, function () { var a, r, n, o, g, c, h, l, C, Q, e_631, E, u, d, f, p, m, y, w, b, D, F, _b, w_5, e_632, t_462, i_375, a_297, _k, a_296, e_633, S, k, R, N, G, x, M, U, L, J, H, e_634, t_463, t_464, Y, v, K; var _l; return tslib_1.__generator(this, function (_m) { switch (_m.label) { case 0: a = i.baseFontRef, r = i.evaluator, n = i.task, o = e.color, g = e.fontSize, c = e.rect, h = e.rotation, l = e.value, C = new Dict(t), Q = new Dict(t); if (a) Q.set("Helv", a); else { e_631 = new Dict(t); e_631.set("BaseFont", Name.get("Helvetica")); e_631.set("Type", Name.get("Font")); e_631.set("Subtype", Name.get("Type1")); e_631.set("Encoding", Name.get("WinAnsiEncoding")); Q.set("Helv", e_631); } C.set("Font", Q); return [4 /*yield*/, WidgetAnnotation._getFontData(r, n, { fontName: "Helv", fontSize: g }, C)]; case 1: E = _m.sent(), u = c[0], d = c[1], f = c[2], p = c[3]; m = f - u, y = p - d; h % 180 != 0 && (_l = [y, m], m = _l[0], y = _l[1], _l); w = l.split("\n"), b = g / 1e3; D = -1 / 0; F = []; for (_b = 0, w_5 = w; _b < w_5.length; _b++) { e_632 = w_5[_b]; t_462 = E.encodeString(e_632); if (t_462.length > 1) return [2 /*return*/, null]; e_632 = t_462.join(""); F.push(e_632); i_375 = 0; a_297 = E.charsToGlyphs(e_632); for (_k = 0, a_296 = a_297; _k < a_296.length; _k++) { e_633 = a_296[_k]; i_375 += e_633.width * b; } D = Math.max(D, i_375); } S = 1; D > m && (S = m / D); k = 1; R = s * g, N = 1 * g, G = R * w.length; G > y && (k = y / G); x = g * Math.min(S, k); switch (h) { case 0: L = [1, 0, 0, 1]; U = [c[0], c[1], m, y]; M = [c[0], c[3] - N]; break; case 90: L = [0, 1, -1, 0]; U = [c[1], -c[2], m, y]; M = [c[1], -c[0] - N]; break; case 180: L = [-1, 0, 0, -1]; U = [-c[2], -c[3], m, y]; M = [-c[2], -c[1] - N]; break; case 270: L = [0, -1, 1, 0]; U = [-c[3], c[0], m, y]; M = [-c[3], c[2] - N]; } J = ["q", "".concat(L.join(" "), " 0 0 cm"), "".concat(U.join(" "), " re W n"), "BT", "".concat(getPdfColor(o, !0)), "0 Tc /Helv ".concat(numberToString(x), " Tf")]; J.push("".concat(M.join(" "), " Td (").concat(escapeString(F[0]), ") Tj")); H = numberToString(R); for (e_634 = 1, t_463 = F.length; e_634 < t_463; e_634++) { t_464 = F[e_634]; J.push("0 -".concat(H, " Td (").concat(escapeString(t_464), ") Tj")); } J.push("ET", "Q"); Y = J.join("\n"), v = new Dict(t); v.set("FormType", 1); v.set("Subtype", Name.get("Form")); v.set("Type", Name.get("XObject")); v.set("BBox", c); v.set("Resources", C); v.set("Matrix", [1, 0, 0, 1, -c[0], -c[1]]); K = new StringStream(Y); K.dict = v; return [2 /*return*/, K]; } }); }); }; return FreeTextAnnotation; }(MarkupAnnotation)); var LineAnnotation = /** @class */ (function (_super) { tslib_1.__extends(LineAnnotation, _super); function LineAnnotation(e) { var _this = _super.call(this, e) || this; var t = e.dict, i = e.xref; _this.data.annotationType = N; _this.data.hasOwnCanvas = _this.data.noRotate; _this.data.noHTML = !1; var a = lookupRect(t.getArray("L"), [0, 0, 0, 0]); _this.data.lineCoordinates = Util.normalizeRect(a); _this.setLineEndings(t.getArray("LE")); _this.data.lineEndings = _this.lineEndings; if (!_this.appearance) { var e_635 = _this.color ? getPdfColorArray(_this.color) : [0, 0, 0], s_201 = t.get("CA"), r_163 = getRgbColor(t.getArray("IC"), null), n_106 = r_163 ? getPdfColorArray(r_163) : null, o_78 = n_106 ? s_201 : null, g_58 = _this.borderStyle.width || 1, c_50 = 2 * g_58, h_37 = [_this.data.lineCoordinates[0] - c_50, _this.data.lineCoordinates[1] - c_50, _this.data.lineCoordinates[2] + c_50, _this.data.lineCoordinates[3] + c_50]; Util.intersect(_this.rectangle, h_37) || (_this.rectangle = h_37); _this._setDefaultAppearance({ xref: i, extra: "".concat(g_58, " w"), strokeColor: e_635, fillColor: n_106, strokeAlpha: s_201, fillAlpha: o_78, pointsCallback: function (e, t) { e.push("".concat(a[0], " ").concat(a[1], " m"), "".concat(a[2], " ").concat(a[3], " l"), "S"); return [t[0].x - g_58, t[1].x + g_58, t[3].y - g_58, t[1].y + g_58]; } }); } return _this; } return LineAnnotation; }(MarkupAnnotation)); var SquareAnnotation = /** @class */ (function (_super) { tslib_1.__extends(SquareAnnotation, _super); function SquareAnnotation(e) { var _this = _super.call(this, e) || this; var t = e.dict, i = e.xref; _this.data.annotationType = G; _this.data.hasOwnCanvas = _this.data.noRotate; _this.data.noHTML = !1; if (!_this.appearance) { var e_636 = _this.color ? getPdfColorArray(_this.color) : [0, 0, 0], a_298 = t.get("CA"), s_202 = getRgbColor(t.getArray("IC"), null), r_164 = s_202 ? getPdfColorArray(s_202) : null, n_107 = r_164 ? a_298 : null; if (0 === _this.borderStyle.width && !r_164) return _this; _this._setDefaultAppearance({ xref: i, extra: "".concat(_this.borderStyle.width, " w"), strokeColor: e_636, fillColor: r_164, strokeAlpha: a_298, fillAlpha: n_107, pointsCallback: function (e, t) { var i = t[2].x + _this.borderStyle.width / 2, a = t[2].y + _this.borderStyle.width / 2, s = t[3].x - t[2].x - _this.borderStyle.width, n = t[1].y - t[3].y - _this.borderStyle.width; e.push("".concat(i, " ").concat(a, " ").concat(s, " ").concat(n, " re")); r_164 ? e.push("B") : e.push("S"); return [t[0].x, t[1].x, t[3].y, t[1].y]; } }); } return _this; } return SquareAnnotation; }(MarkupAnnotation)); var CircleAnnotation = /** @class */ (function (_super) { tslib_1.__extends(CircleAnnotation, _super); function CircleAnnotation(e) { var _this = _super.call(this, e) || this; var t = e.dict, i = e.xref; _this.data.annotationType = x; if (!_this.appearance) { var e_637 = _this.color ? getPdfColorArray(_this.color) : [0, 0, 0], a_299 = t.get("CA"), s_203 = getRgbColor(t.getArray("IC"), null), r_165 = s_203 ? getPdfColorArray(s_203) : null, n_108 = r_165 ? a_299 : null; if (0 === _this.borderStyle.width && !r_165) return _this; var o_79 = 4 / 3 * Math.tan(Math.PI / 8); _this._setDefaultAppearance({ xref: i, extra: "".concat(_this.borderStyle.width, " w"), strokeColor: e_637, fillColor: r_165, strokeAlpha: a_299, fillAlpha: n_108, pointsCallback: function (e, t) { var i = t[0].x + _this.borderStyle.width / 2, a = t[0].y - _this.borderStyle.width / 2, s = t[3].x - _this.borderStyle.width / 2, n = t[3].y + _this.borderStyle.width / 2, g = i + (s - i) / 2, c = a + (n - a) / 2, h = (s - i) / 2 * o_79, l = (n - a) / 2 * o_79; e.push("".concat(g, " ").concat(n, " m"), "".concat(g + h, " ").concat(n, " ").concat(s, " ").concat(c + l, " ").concat(s, " ").concat(c, " c"), "".concat(s, " ").concat(c - l, " ").concat(g + h, " ").concat(a, " ").concat(g, " ").concat(a, " c"), "".concat(g - h, " ").concat(a, " ").concat(i, " ").concat(c - l, " ").concat(i, " ").concat(c, " c"), "".concat(i, " ").concat(c + l, " ").concat(g - h, " ").concat(n, " ").concat(g, " ").concat(n, " c"), "h"); r_165 ? e.push("B") : e.push("S"); return [t[0].x, t[1].x, t[3].y, t[1].y]; } }); } return _this; } return CircleAnnotation; }(MarkupAnnotation)); var PolylineAnnotation = /** @class */ (function (_super) { tslib_1.__extends(PolylineAnnotation, _super); function PolylineAnnotation(e) { var _this = _super.call(this, e) || this; var t = e.dict, i = e.xref; _this.data.annotationType = U; _this.data.hasOwnCanvas = _this.data.noRotate; _this.data.noHTML = !1; _this.data.vertices = []; if (!(_this instanceof PolygonAnnotation)) { _this.setLineEndings(t.getArray("LE")); _this.data.lineEndings = _this.lineEndings; } var a = t.getArray("Vertices"); if (isNumberArray(a, null)) { for (var e_638 = 0, t_465 = a.length; e_638 < t_465; e_638 += 2) _this.data.vertices.push({ x: a[e_638], y: a[e_638 + 1] }); if (!_this.appearance) { var e_639 = _this.color ? getPdfColorArray(_this.color) : [0, 0, 0], a_300 = t.get("CA"), s_204 = _this.borderStyle.width || 1, r_166 = 2 * s_204, n_109 = [1 / 0, 1 / 0, -1 / 0, -1 / 0]; for (var _b = 0, _k = _this.data.vertices; _b < _k.length; _b++) { var e_640 = _k[_b]; n_109[0] = Math.min(n_109[0], e_640.x - r_166); n_109[1] = Math.min(n_109[1], e_640.y - r_166); n_109[2] = Math.max(n_109[2], e_640.x + r_166); n_109[3] = Math.max(n_109[3], e_640.y + r_166); } Util.intersect(_this.rectangle, n_109) || (_this.rectangle = n_109); _this._setDefaultAppearance({ xref: i, extra: "".concat(s_204, " w"), strokeColor: e_639, strokeAlpha: a_300, pointsCallback: function (e, t) { var i = _this.data.vertices; for (var t_466 = 0, a_301 = i.length; t_466 < a_301; t_466++) e.push("".concat(i[t_466].x, " ").concat(i[t_466].y, " ").concat(0 === t_466 ? "m" : "l")); e.push("S"); return [t[0].x, t[1].x, t[3].y, t[1].y]; } }); } } return _this; } return PolylineAnnotation; }(MarkupAnnotation)); var PolygonAnnotation = /** @class */ (function (_super) { tslib_1.__extends(PolygonAnnotation, _super); function PolygonAnnotation(e) { var _this = _super.call(this, e) || this; _this.data.annotationType = M; return _this; } return PolygonAnnotation; }(PolylineAnnotation)); var CaretAnnotation = /** @class */ (function (_super) { tslib_1.__extends(CaretAnnotation, _super); function CaretAnnotation(e) { var _this = _super.call(this, e) || this; _this.data.annotationType = K; return _this; } return CaretAnnotation; }(MarkupAnnotation)); var InkAnnotation = /** @class */ (function (_super) { tslib_1.__extends(InkAnnotation, _super); function InkAnnotation(e) { var _this = _super.call(this, e) || this; _this.data.hasOwnCanvas = _this.data.noRotate; _this.data.noHTML = !1; var t = e.dict, i = e.xref; _this.data.annotationType = T; _this.data.inkLists = []; var a = t.getArray("InkList"); if (Array.isArray(a)) { for (var e_642 = 0, t_467 = a.length; e_642 < t_467; ++e_642) { _this.data.inkLists.push([]); if (Array.isArray(a[e_642])) for (var t_468 = 0, s_205 = a[e_642].length; t_468 < s_205; t_468 += 2) { var s_206 = i.fetchIfRef(a[e_642][t_468]), r_167 = i.fetchIfRef(a[e_642][t_468 + 1]); "number" == typeof s_206 && "number" == typeof r_167 && _this.data.inkLists[e_642].push({ x: s_206, y: r_167 }); } } if (!_this.appearance) { var e_643 = _this.color ? getPdfColorArray(_this.color) : [0, 0, 0], a_302 = t.get("CA"), s_207 = _this.borderStyle.width || 1, r_168 = 2 * s_207, n_110 = [1 / 0, 1 / 0, -1 / 0, -1 / 0]; for (var _b = 0, _k = _this.data.inkLists; _b < _k.length; _b++) { var e_644 = _k[_b]; for (var _l = 0, e_641 = e_644; _l < e_641.length; _l++) { var t_469 = e_641[_l]; n_110[0] = Math.min(n_110[0], t_469.x - r_168); n_110[1] = Math.min(n_110[1], t_469.y - r_168); n_110[2] = Math.max(n_110[2], t_469.x + r_168); n_110[3] = Math.max(n_110[3], t_469.y + r_168); } } Util.intersect(_this.rectangle, n_110) || (_this.rectangle = n_110); _this._setDefaultAppearance({ xref: i, extra: "".concat(s_207, " w"), strokeColor: e_643, strokeAlpha: a_302, pointsCallback: function (e, t) { for (var _b = 0, _k = _this.data.inkLists; _b < _k.length; _b++) { var t_470 = _k[_b]; for (var i_376 = 0, a_303 = t_470.length; i_376 < a_303; i_376++) e.push("".concat(t_470[i_376].x, " ").concat(t_470[i_376].y, " ").concat(0 === i_376 ? "m" : "l")); e.push("S"); } return [t[0].x, t[1].x, t[3].y, t[1].y]; } }); } } return _this; } InkAnnotation.createNewDict = function (e, t, _b) { var i = _b.apRef, a = _b.ap; var s = e.color, r = e.opacity, n = e.paths, o = e.outlines, g = e.rect, c = e.rotation, h = e.thickness, l = new Dict(t); l.set("Type", Name.get("Annot")); l.set("Subtype", Name.get("Ink")); l.set("CreationDate", "D:".concat(getModificationDate())); l.set("Rect", g); l.set("InkList", (o === null || o === void 0 ? void 0 : o.points) || n.map((function (e) { return e.points; }))); l.set("F", 4); l.set("Rotate", c); o && l.set("IT", Name.get("InkHighlight")); var C = new Dict(t); l.set("BS", C); C.set("W", h); l.set("C", Array.from(s, (function (e) { return e / 255; }))); l.set("CA", r); var Q = new Dict(t); l.set("AP", Q); i ? Q.set("N", i) : Q.set("N", a); return l; }; InkAnnotation.createNewAppearanceStream = function (e, t, i) { return tslib_1.__awaiter(this, void 0, void 0, function () { var a, s, r, n, o, g, c, _b, r_169, e_645, t_471, i_377, i_378, h, l, e_646, i_379, a_304, C; return tslib_1.__generator(this, function (_k) { if (e.outlines) return [2 /*return*/, this.createNewAppearanceStreamForHighlight(e, t, i)]; a = e.color, s = e.rect, r = e.paths, n = e.thickness, o = e.opacity, g = ["".concat(n, " w 1 J 1 j"), "".concat(getPdfColor(a, !1))]; 1 !== o && g.push("/R0 gs"); c = []; for (_b = 0, r_169 = r; _b < r_169.length; _b++) { e_645 = r_169[_b].bezier; c.length = 0; c.push("".concat(numberToString(e_645[0]), " ").concat(numberToString(e_645[1]), " m")); if (2 === e_645.length) c.push("".concat(numberToString(e_645[0]), " ").concat(numberToString(e_645[1]), " l S")); else { for (t_471 = 2, i_377 = e_645.length; t_471 < i_377; t_471 += 6) { i_378 = e_645.slice(t_471, t_471 + 6).map(numberToString).join(" "); c.push("".concat(i_378, " c")); } c.push("S"); } g.push(c.join("\n")); } h = g.join("\n"), l = new Dict(t); l.set("FormType", 1); l.set("Subtype", Name.get("Form")); l.set("Type", Name.get("XObject")); l.set("BBox", s); l.set("Length", h.length); if (1 !== o) { e_646 = new Dict(t), i_379 = new Dict(t), a_304 = new Dict(t); a_304.set("CA", o); a_304.set("Type", Name.get("ExtGState")); i_379.set("R0", a_304); e_646.set("ExtGState", i_379); l.set("Resources", e_646); } C = new StringStream(h); C.dict = l; return [2 /*return*/, C]; }); }); }; InkAnnotation.createNewAppearanceStreamForHighlight = function (e, t, i) { return tslib_1.__awaiter(this, void 0, void 0, function () { var a, s, r, n, o, e_647, t_472, t_473, g, c, h, l, C, Q; return tslib_1.__generator(this, function (_b) { a = e.color, s = e.rect, r = e.outlines.outline, n = e.opacity, o = ["".concat(getPdfColor(a, !0)), "/R0 gs"]; o.push("".concat(numberToString(r[4]), " ").concat(numberToString(r[5]), " m")); for (e_647 = 6, t_472 = r.length; e_647 < t_472; e_647 += 6) if (isNaN(r[e_647]) || null === r[e_647]) o.push("".concat(numberToString(r[e_647 + 4]), " ").concat(numberToString(r[e_647 + 5]), " l")); else { t_473 = r.slice(e_647, e_647 + 6).map(numberToString).join(" "); o.push("".concat(t_473, " c")); } o.push("h f"); g = o.join("\n"), c = new Dict(t); c.set("FormType", 1); c.set("Subtype", Name.get("Form")); c.set("Type", Name.get("XObject")); c.set("BBox", s); c.set("Length", g.length); h = new Dict(t), l = new Dict(t); h.set("ExtGState", l); c.set("Resources", h); C = new Dict(t); l.set("R0", C); C.set("BM", Name.get("Multiply")); if (1 !== n) { C.set("ca", n); C.set("Type", Name.get("ExtGState")); } Q = new StringStream(g); Q.dict = c; return [2 /*return*/, Q]; }); }); }; return InkAnnotation; }(MarkupAnnotation)); var HighlightAnnotation = /** @class */ (function (_super) { tslib_1.__extends(HighlightAnnotation, _super); function HighlightAnnotation(e) { var _this = this; var _b; _this = _super.call(this, e) || this; var t = e.dict, i = e.xref; _this.data.annotationType = L; if (_this.data.quadPoints = getQuadPoints(t, null)) { var e_648 = (_b = _this.appearance) === null || _b === void 0 ? void 0 : _b.dict.get("Resources"); if (!_this.appearance || !(e_648 === null || e_648 === void 0 ? void 0 : e_648.has("ExtGState"))) { _this.appearance && warn("HighlightAnnotation - ignoring built-in appearance stream."); var e_649 = _this.color ? getPdfColorArray(_this.color) : [1, 1, 0], a_305 = t.get("CA"); _this._setDefaultAppearance({ xref: i, fillColor: e_649, blendMode: "Multiply", fillAlpha: a_305, pointsCallback: function (e, t) { e.push("".concat(t[0].x, " ").concat(t[0].y, " m"), "".concat(t[1].x, " ").concat(t[1].y, " l"), "".concat(t[3].x, " ").concat(t[3].y, " l"), "".concat(t[2].x, " ").concat(t[2].y, " l"), "f"); return [t[0].x, t[1].x, t[3].y, t[1].y]; } }); } } else _this.data.popupRef = null; return _this; } HighlightAnnotation.createNewDict = function (e, t, _b) { var i = _b.apRef, a = _b.ap; var s = e.color, r = e.opacity, n = e.rect, o = e.rotation, g = e.user, c = e.quadPoints, h = new Dict(t); h.set("Type", Name.get("Annot")); h.set("Subtype", Name.get("Highlight")); h.set("CreationDate", "D:".concat(getModificationDate())); h.set("Rect", n); h.set("F", 4); h.set("Border", [0, 0, 0]); h.set("Rotate", o); h.set("QuadPoints", c); h.set("C", Array.from(s, (function (e) { return e / 255; }))); h.set("CA", r); g && h.set("T", isAscii(g) ? g : stringToUTF16String(g, !0)); if (i || a) { var e_650 = new Dict(t); h.set("AP", e_650); e_650.set("N", i || a); } return h; }; HighlightAnnotation.createNewAppearanceStream = function (e, t, i) { return tslib_1.__awaiter(this, void 0, void 0, function () { var a, s, r, n, o, g, _b, r_170, e_651, t_474, i_380, c, h, l, C, Q, E; return tslib_1.__generator(this, function (_k) { a = e.color, s = e.rect, r = e.outlines, n = e.opacity, o = ["".concat(getPdfColor(a, !0)), "/R0 gs"], g = []; for (_b = 0, r_170 = r; _b < r_170.length; _b++) { e_651 = r_170[_b]; g.length = 0; g.push("".concat(numberToString(e_651[0]), " ").concat(numberToString(e_651[1]), " m")); for (t_474 = 2, i_380 = e_651.length; t_474 < i_380; t_474 += 2) g.push("".concat(numberToString(e_651[t_474]), " ").concat(numberToString(e_651[t_474 + 1]), " l")); g.push("h"); o.push(g.join("\n")); } o.push("f*"); c = o.join("\n"), h = new Dict(t); h.set("FormType", 1); h.set("Subtype", Name.get("Form")); h.set("Type", Name.get("XObject")); h.set("BBox", s); h.set("Length", c.length); l = new Dict(t), C = new Dict(t); l.set("ExtGState", C); h.set("Resources", l); Q = new Dict(t); C.set("R0", Q); Q.set("BM", Name.get("Multiply")); if (1 !== n) { Q.set("ca", n); Q.set("Type", Name.get("ExtGState")); } E = new StringStream(c); E.dict = h; return [2 /*return*/, E]; }); }); }; return HighlightAnnotation; }(MarkupAnnotation)); var UnderlineAnnotation = /** @class */ (function (_super) { tslib_1.__extends(UnderlineAnnotation, _super); function UnderlineAnnotation(e) { var _this = _super.call(this, e) || this; var t = e.dict, i = e.xref; _this.data.annotationType = J; if (_this.data.quadPoints = getQuadPoints(t, null)) { if (!_this.appearance) { var e_652 = _this.color ? getPdfColorArray(_this.color) : [0, 0, 0], a_306 = t.get("CA"); _this._setDefaultAppearance({ xref: i, extra: "[] 0 d 0.571 w", strokeColor: e_652, strokeAlpha: a_306, pointsCallback: function (e, t) { e.push("".concat(t[2].x, " ").concat(t[2].y + 1.3, " m"), "".concat(t[3].x, " ").concat(t[3].y + 1.3, " l"), "S"); return [t[0].x, t[1].x, t[3].y, t[1].y]; } }); } } else _this.data.popupRef = null; return _this; } return UnderlineAnnotation; }(MarkupAnnotation)); var SquigglyAnnotation = /** @class */ (function (_super) { tslib_1.__extends(SquigglyAnnotation, _super); function SquigglyAnnotation(e) { var _this = _super.call(this, e) || this; var t = e.dict, i = e.xref; _this.data.annotationType = H; if (_this.data.quadPoints = getQuadPoints(t, null)) { if (!_this.appearance) { var e_653 = _this.color ? getPdfColorArray(_this.color) : [0, 0, 0], a_307 = t.get("CA"); _this._setDefaultAppearance({ xref: i, extra: "[] 0 d 1 w", strokeColor: e_653, strokeAlpha: a_307, pointsCallback: function (e, t) { var i = (t[0].y - t[2].y) / 6; var a = i, s = t[2].x; var r = t[2].y, n = t[3].x; e.push("".concat(s, " ").concat(r + a, " m")); do { s += 2; a = 0 === a ? i : 0; e.push("".concat(s, " ").concat(r + a, " l")); } while (s < n); e.push("S"); return [t[2].x, n, r - 2 * i, r + 2 * i]; } }); } } else _this.data.popupRef = null; return _this; } return SquigglyAnnotation; }(MarkupAnnotation)); var StrikeOutAnnotation = /** @class */ (function (_super) { tslib_1.__extends(StrikeOutAnnotation, _super); function StrikeOutAnnotation(e) { var _this = _super.call(this, e) || this; var t = e.dict, i = e.xref; _this.data.annotationType = Y; if (_this.data.quadPoints = getQuadPoints(t, null)) { if (!_this.appearance) { var e_654 = _this.color ? getPdfColorArray(_this.color) : [0, 0, 0], a_308 = t.get("CA"); _this._setDefaultAppearance({ xref: i, extra: "[] 0 d 1 w", strokeColor: e_654, strokeAlpha: a_308, pointsCallback: function (e, t) { e.push((t[0].x + t[2].x) / 2 + " " + (t[0].y + t[2].y) / 2 + " m", (t[1].x + t[3].x) / 2 + " " + (t[1].y + t[3].y) / 2 + " l", "S"); return [t[0].x, t[1].x, t[3].y, t[1].y]; } }); } } else _this.data.popupRef = null; return _this; } return StrikeOutAnnotation; }(MarkupAnnotation)); var StampAnnotation = /** @class */ (function (_super) { tslib_1.__extends(StampAnnotation, _super); function StampAnnotation(e) { var _this = _super.call(this, e) || this; _this.data.annotationType = v; _this.data.hasOwnCanvas = _this.data.noRotate; _this.data.noHTML = !1; return _this; } StampAnnotation.createImage = function (e, t) { return tslib_1.__awaiter(this, void 0, void 0, function () { var i, a, s, r, n, o, g, c, h, l, C, Q, e_655, t_475, i_381, t_476, i_382, s_208, _b; var _k; return tslib_1.__generator(this, function (_l) { switch (_l.label) { case 0: i = e.width, a = e.height, s = new OffscreenCanvas(i, a), r = s.getContext("2d", { alpha: !0 }); r.drawImage(e, 0, 0); n = r.getImageData(0, 0, i, a).data, o = new Uint32Array(n.buffer), g = o.some(FeatureTest.isLittleEndian ? function (e) { return e >>> 24 != 255; } : function (e) { return 255 != (255 & e); }); if (g) { r.fillStyle = "white"; r.fillRect(0, 0, i, a); r.drawImage(e, 0, 0); } c = s.convertToBlob({ type: "image/jpeg", quality: 1 }).then((function (e) { return e.arrayBuffer(); })), h = Name.get("XObject"), l = Name.get("Image"), C = new Dict(t); C.set("Type", h); C.set("Subtype", l); C.set("BitsPerComponent", 8); C.set("ColorSpace", Name.get("DeviceRGB")); C.set("Filter", Name.get("DCTDecode")); C.set("BBox", [0, 0, i, a]); C.set("Width", i); C.set("Height", a); Q = null; if (g) { e_655 = new Uint8Array(o.length); if (FeatureTest.isLittleEndian) for (t_475 = 0, i_381 = o.length; t_475 < i_381; t_475++) e_655[t_475] = o[t_475] >>> 24; else for (t_476 = 0, i_382 = o.length; t_476 < i_382; t_476++) e_655[t_476] = 255 & o[t_476]; s_208 = new Dict(t); s_208.set("Type", h); s_208.set("Subtype", l); s_208.set("BitsPerComponent", 8); s_208.set("ColorSpace", Name.get("DeviceGray")); s_208.set("Width", i); s_208.set("Height", a); Q = new Stream(e_655, 0, 0, s_208); } _k = {}; _b = Stream.bind; return [4 /*yield*/, c]; case 1: return [2 /*return*/, (_k.imageStream = new (_b.apply(Stream, [void 0, _l.sent(), 0, 0, C]))(), _k.smaskStream = Q, _k.width = i, _k.height = a, _k)]; } }); }); }; StampAnnotation.createNewDict = function (e, t, _b) { var i = _b.apRef, a = _b.ap; var s = e.rect, r = e.rotation, n = e.user, o = new Dict(t); o.set("Type", Name.get("Annot")); o.set("Subtype", Name.get("Stamp")); o.set("CreationDate", "D:".concat(getModificationDate())); o.set("Rect", s); o.set("F", 4); o.set("Border", [0, 0, 0]); o.set("Rotate", r); n && o.set("T", isAscii(n) ? n : stringToUTF16String(n, !0)); if (i || a) { var e_656 = new Dict(t); o.set("AP", e_656); i ? e_656.set("N", i) : e_656.set("N", a); } return o; }; StampAnnotation.createNewAppearanceStream = function (e, t, i) { return tslib_1.__awaiter(this, void 0, void 0, function () { var a, _b, s, r, n, o, g, c, h, e_657, l; return tslib_1.__generator(this, function (_k) { a = e.rotation, _b = i.image, s = _b.imageRef, r = _b.width, n = _b.height, o = new Dict(t), g = new Dict(t); o.set("XObject", g); g.set("Im0", s); c = "q ".concat(r, " 0 0 ").concat(n, " 0 0 cm /Im0 Do Q"), h = new Dict(t); h.set("FormType", 1); h.set("Subtype", Name.get("Form")); h.set("Type", Name.get("XObject")); h.set("BBox", [0, 0, r, n]); h.set("Resources", o); if (a) { e_657 = getRotationMatrix(a, r, n); h.set("Matrix", e_657); } l = new StringStream(c); l.dict = h; return [2 /*return*/, l]; }); }); }; return StampAnnotation; }(MarkupAnnotation)); var FileAttachmentAnnotation = /** @class */ (function (_super) { tslib_1.__extends(FileAttachmentAnnotation, _super); function FileAttachmentAnnotation(e) { var _this = _super.call(this, e) || this; var t = e.dict, i = e.xref, a = new FileSpec(t.get("FS"), i); _this.data.annotationType = O; _this.data.hasOwnCanvas = _this.data.noRotate; _this.data.noHTML = !1; _this.data.file = a.serializable; var s = t.get("Name"); _this.data.name = s instanceof Name ? stringToPDFString(s.name) : "PushPin"; var r = t.get("ca"); _this.data.fillAlpha = "number" == typeof r && r >= 0 && r <= 1 ? r : null; return _this; } return FileAttachmentAnnotation; }(MarkupAnnotation)); function decodeString(e) { try { return stringToUTF8String(e); } catch (t) { warn("UTF-8 decoding failed: \"".concat(t, "\".")); return e; } } var DatasetXMLParser = /** @class */ (function (_super) { tslib_1.__extends(DatasetXMLParser, _super); function DatasetXMLParser(e) { var _this = _super.call(this, e) || this; _this.node = null; return _this; } DatasetXMLParser.prototype.onEndElement = function (e) { var t = _super.prototype.onEndElement.call(this, e); if (t && "xfa:datasets" === e) { this.node = t; throw new Error("Aborting DatasetXMLParser."); } }; return DatasetXMLParser; }(SimpleXMLParser)); var DatasetReader = /** @class */ (function () { function DatasetReader(e) { if (e.datasets) this.node = new SimpleXMLParser({ hasAttributes: !0 }).parseFromString(e.datasets).documentElement; else { var t_477 = new DatasetXMLParser({ hasAttributes: !0 }); try { t_477.parseFromString(e["xdp:xdp"]); } catch (_b) { } this.node = t_477.node; } } DatasetReader.prototype.getValue = function (e) { if (!this.node || !e) return ""; var t = this.node.searchNode(parseXFAPath(e), 0); if (!t) return ""; var i = t.firstChild; return "value" === (i === null || i === void 0 ? void 0 : i.nodeName) ? t.children.map((function (e) { return decodeString(e.textContent); })) : decodeString(t.textContent); }; return DatasetReader; }()); var XRef = /** @class */ (function () { function XRef(e, t) { _XRef_K.set(this, null); this.stream = e; this.pdfManager = t; this.entries = []; this._xrefStms = new Set; this._cacheMap = new Map; this._pendingRefs = new RefSet; this._newPersistentRefNum = null; this._newTemporaryRefNum = null; this._persistentRefsCache = null; } XRef.prototype.getNewPersistentRef = function (e) { null === this._newPersistentRefNum && (this._newPersistentRefNum = this.entries.length || 1); var t = this._newPersistentRefNum++; this._cacheMap.set(t, e); return Ref.get(t, 0); }; XRef.prototype.getNewTemporaryRef = function () { if (null === this._newTemporaryRefNum) { this._newTemporaryRefNum = this.entries.length || 1; if (this._newPersistentRefNum) { this._persistentRefsCache = new Map; for (var e_658 = this._newTemporaryRefNum; e_658 < this._newPersistentRefNum; e_658++) { this._persistentRefsCache.set(e_658, this._cacheMap.get(e_658)); this._cacheMap.delete(e_658); } } } return Ref.get(this._newTemporaryRefNum++, 0); }; XRef.prototype.resetNewTemporaryRef = function () { this._newTemporaryRefNum = null; if (this._persistentRefsCache) for (var _b = 0, _k = this._persistentRefsCache; _b < _k.length; _b++) { var _l = _k[_b], e_659 = _l[0], t_478 = _l[1]; this._cacheMap.set(e_659, t_478); } this._persistentRefsCache = null; }; XRef.prototype.setStartXRef = function (e) { this.startXRefQueue = [e]; }; XRef.prototype.parse = function (e) { if (e === void 0) { e = !1; } var t, i, a; if (e) { warn("Indexing all PDF objects"); t = this.indexObjects(); } else t = this.readXRef(); t.assignXref(this); this.trailer = t; try { i = t.get("Encrypt"); } catch (e) { if (e instanceof MissingDataException) throw e; warn("XRef.parse - Invalid \"Encrypt\" reference: \"".concat(e, "\".")); } if (i instanceof Dict) { var e_660 = t.get("ID"), a_309 = (e_660 === null || e_660 === void 0 ? void 0 : e_660.length) ? e_660[0] : ""; i.suppressEncryption = !0; this.encrypt = new CipherTransformFactory(i, a_309, this.pdfManager.password); } try { a = t.get("Root"); } catch (e) { if (e instanceof MissingDataException) throw e; warn("XRef.parse - Invalid \"Root\" reference: \"".concat(e, "\".")); } if (a instanceof Dict) try { if (a.get("Pages") instanceof Dict) { this.root = a; return; } } catch (e) { if (e instanceof MissingDataException) throw e; warn("XRef.parse - Invalid \"Pages\" reference: \"".concat(e, "\".")); } if (!e) throw new XRefParseException; throw new InvalidPDFException("Invalid Root reference."); }; XRef.prototype.processXRefTable = function (e) { "tableState" in this || (this.tableState = { entryNum: 0, streamPos: e.lexer.stream.pos, parserBuf1: e.buf1, parserBuf2: e.buf2 }); if (!isCmd(this.readXRefTable(e), "trailer")) throw new FormatError("Invalid XRef table: could not find trailer dictionary"); var t = e.getObj(); t instanceof Dict || !t.dict || (t = t.dict); if (!(t instanceof Dict)) throw new FormatError("Invalid XRef table: could not parse trailer dictionary"); delete this.tableState; return t; }; XRef.prototype.readXRefTable = function (e) { var t = e.lexer.stream, i = this.tableState; t.pos = i.streamPos; e.buf1 = i.parserBuf1; e.buf2 = i.parserBuf2; var a; for (;;) { if (!("firstEntryNum" in i) || !("entryCount" in i)) { if (isCmd(a = e.getObj(), "trailer")) break; i.firstEntryNum = a; i.entryCount = e.getObj(); } var s_209 = i.firstEntryNum; var r_171 = i.entryCount; if (!Number.isInteger(s_209) || !Number.isInteger(r_171)) throw new FormatError("Invalid XRef table: wrong types in subsection header"); for (var a_310 = i.entryNum; a_310 < r_171; a_310++) { i.streamPos = t.pos; i.entryNum = a_310; i.parserBuf1 = e.buf1; i.parserBuf2 = e.buf2; var n_111 = {}; n_111.offset = e.getObj(); n_111.gen = e.getObj(); var o_80 = e.getObj(); if (o_80 instanceof Cmd) switch (o_80.cmd) { case "f": n_111.free = !0; break; case "n": n_111.uncompressed = !0; } if (!Number.isInteger(n_111.offset) || !Number.isInteger(n_111.gen) || !n_111.free && !n_111.uncompressed) throw new FormatError("Invalid entry in XRef subsection: ".concat(s_209, ", ").concat(r_171)); 0 === a_310 && n_111.free && 1 === s_209 && (s_209 = 0); this.entries[a_310 + s_209] || (this.entries[a_310 + s_209] = n_111); } i.entryNum = 0; i.streamPos = t.pos; i.parserBuf1 = e.buf1; i.parserBuf2 = e.buf2; delete i.firstEntryNum; delete i.entryCount; } if (this.entries[0] && !this.entries[0].free) throw new FormatError("Invalid XRef table: unexpected first object"); return a; }; XRef.prototype.processXRefStream = function (e) { if (!("streamState" in this)) { var t_479 = e.dict, i_383 = t_479.get("W"); var a_311 = t_479.get("Index"); a_311 || (a_311 = [0, t_479.get("Size")]); this.streamState = { entryRanges: a_311, byteWidths: i_383, entryNum: 0, streamPos: e.pos }; } this.readXRefStream(e); delete this.streamState; return e.dict; }; XRef.prototype.readXRefStream = function (e) { var t = this.streamState; e.pos = t.streamPos; var _b = t.byteWidths, i = _b[0], a = _b[1], s = _b[2], r = t.entryRanges; for (; r.length > 0;) { var n_112 = r[0], o_81 = r[1]; if (!Number.isInteger(n_112) || !Number.isInteger(o_81)) throw new FormatError("Invalid XRef range fields: ".concat(n_112, ", ").concat(o_81)); if (!Number.isInteger(i) || !Number.isInteger(a) || !Number.isInteger(s)) throw new FormatError("Invalid XRef entry fields length: ".concat(n_112, ", ").concat(o_81)); for (var r_172 = t.entryNum; r_172 < o_81; ++r_172) { t.entryNum = r_172; t.streamPos = e.pos; var o_82 = 0, g_59 = 0, c_51 = 0; for (var t_480 = 0; t_480 < i; ++t_480) { var t_481 = e.getByte(); if (-1 === t_481) throw new FormatError("Invalid XRef byteWidths 'type'."); o_82 = o_82 << 8 | t_481; } 0 === i && (o_82 = 1); for (var t_482 = 0; t_482 < a; ++t_482) { var t_483 = e.getByte(); if (-1 === t_483) throw new FormatError("Invalid XRef byteWidths 'offset'."); g_59 = g_59 << 8 | t_483; } for (var t_484 = 0; t_484 < s; ++t_484) { var t_485 = e.getByte(); if (-1 === t_485) throw new FormatError("Invalid XRef byteWidths 'generation'."); c_51 = c_51 << 8 | t_485; } var h_38 = {}; h_38.offset = g_59; h_38.gen = c_51; switch (o_82) { case 0: h_38.free = !0; break; case 1: h_38.uncompressed = !0; break; case 2: break; default: throw new FormatError("Invalid XRef entry type: ".concat(o_82)); } this.entries[n_112 + r_172] || (this.entries[n_112 + r_172] = h_38); } t.entryNum = 0; t.streamPos = e.pos; r.splice(0, 2); } }; XRef.prototype.indexObjects = function () { function readToken(e, t) { var i = "", a = e[t]; for (; 10 !== a && 13 !== a && 60 !== a && !(++t >= e.length);) { i += String.fromCharCode(a); a = e[t]; } return i; } function skipUntil(e, t, i) { var a = i.length, s = e.length; var r = 0; for (; t < s;) { var s_210 = 0; for (; s_210 < a && e[t + s_210] === i[s_210];) ++s_210; if (s_210 >= a) break; t++; r++; } return r; } var e = /\b(endobj|\d+\s+\d+\s+obj|xref|trailer\s*<<)\b/g, t = /\b(startxref|\d+\s+\d+\s+obj)\b/g, i = /^(\d+)\s+(\d+)\s+obj\b/, a = new Uint8Array([116, 114, 97, 105, 108, 101, 114]), s = new Uint8Array([115, 116, 97, 114, 116, 120, 114, 101, 102]), r = new Uint8Array([47, 88, 82, 101, 102]); this.entries.length = 0; this._cacheMap.clear(); var n = this.stream; n.pos = 0; var o = n.getBytes(), g = bytesToString(o), c = o.length; var h = n.start; var l = [], C = []; for (; h < c;) { var Q_26 = o[h]; if (9 === Q_26 || 10 === Q_26 || 13 === Q_26 || 32 === Q_26) { ++h; continue; } if (37 === Q_26) { do { ++h; if (h >= c) break; Q_26 = o[h]; } while (10 !== Q_26 && 13 !== Q_26); continue; } var E_16 = readToken(o, h); var u_14 = void 0; if (E_16.startsWith("xref") && (4 === E_16.length || /\s/.test(E_16[4]))) { h += skipUntil(o, h, a); l.push(h); h += skipUntil(o, h, s); } else if (u_14 = i.exec(E_16)) { var t_486 = 0 | u_14[1], i_384 = 0 | u_14[2], a_312 = h + E_16.length; var s_211 = void 0, l_32 = !1; if (this.entries[t_486]) { if (this.entries[t_486].gen === i_384) try { new Parser({ lexer: new Lexer(n.makeSubStream(a_312)) }).getObj(); l_32 = !0; } catch (e) { e instanceof ParserEOFException ? warn("indexObjects -- checking object (".concat(E_16, "): \"").concat(e, "\".")) : l_32 = !0; } } else l_32 = !0; l_32 && (this.entries[t_486] = { offset: h - n.start, gen: i_384, uncompressed: !0 }); e.lastIndex = a_312; var Q_27 = e.exec(g); if (Q_27) { s_211 = e.lastIndex + 1 - h; if ("endobj" !== Q_27[1]) { warn("indexObjects: Found \"".concat(Q_27[1], "\" inside of another \"obj\", caused by missing \"endobj\" -- trying to recover.")); s_211 -= Q_27[1].length + 1; } } else s_211 = c - h; var d_10 = o.subarray(h, h + s_211), f_10 = skipUntil(d_10, 0, r); if (f_10 < s_211 && d_10[f_10 + 5] < 64) { C.push(h - n.start); this._xrefStms.add(h - n.start); } h += s_211; } else if (E_16.startsWith("trailer") && (7 === E_16.length || /\s/.test(E_16[7]))) { l.push(h); var e_661 = h + E_16.length; var i_385 = void 0; t.lastIndex = e_661; var a_313 = t.exec(g); if (a_313) { i_385 = t.lastIndex + 1 - h; if ("startxref" !== a_313[1]) { warn("indexObjects: Found \"".concat(a_313[1], "\" after \"trailer\", caused by missing \"startxref\" -- trying to recover.")); i_385 -= a_313[1].length + 1; } } else i_385 = c - h; h += i_385; } else h += E_16.length + 1; } for (var _b = 0, C_27 = C; _b < C_27.length; _b++) { var e_662 = C_27[_b]; this.startXRefQueue.push(e_662); this.readXRef(!0); } var Q = []; var E, u, d = !1; for (var _k = 0, l_31 = l; _k < l_31.length; _k++) { var e_663 = l_31[_k]; n.pos = e_663; var t_487 = new Parser({ lexer: new Lexer(n), xref: this, allowStreams: !0, recoveryMode: !0 }); if (!isCmd(t_487.getObj(), "trailer")) continue; var i_386 = t_487.getObj(); if (i_386 instanceof Dict) { Q.push(i_386); i_386.has("Encrypt") && (d = !0); } } for (var _l = 0, _m = tslib_1.__spreadArray(tslib_1.__spreadArray(tslib_1.__spreadArray([], Q, true), ["genFallback"], false), Q, true); _l < _m.length; _l++) { var e_664 = _m[_l]; if ("genFallback" === e_664) { if (!u) break; this._generationFallback = !0; continue; } var t_488 = !1; try { var i_387 = e_664.get("Root"); if (!(i_387 instanceof Dict)) continue; var a_314 = i_387.get("Pages"); if (!(a_314 instanceof Dict)) continue; var s_212 = a_314.get("Count"); Number.isInteger(s_212) && (t_488 = !0); } catch (e) { u = e; continue; } if (t_488 && (!d || e_664.has("Encrypt")) && e_664.has("ID")) return e_664; E = e_664; } if (E) return E; if (this.topDict) return this.topDict; throw new InvalidPDFException("Invalid PDF structure."); }; XRef.prototype.readXRef = function (e) { var _b; if (e === void 0) { e = !1; } var t = this.stream, i = new Set; for (; this.startXRefQueue.length;) { try { var e_665 = this.startXRefQueue[0]; if (i.has(e_665)) { warn("readXRef - skipping XRef table since it was already parsed."); this.startXRefQueue.shift(); continue; } i.add(e_665); t.pos = e_665 + t.start; var a_315 = new Parser({ lexer: new Lexer(t), xref: this, allowStreams: !0 }); var s_213 = void 0, r_173 = a_315.getObj(); if (isCmd(r_173, "xref")) { s_213 = this.processXRefTable(a_315); this.topDict || (this.topDict = s_213); r_173 = s_213.get("XRefStm"); if (Number.isInteger(r_173) && !this._xrefStms.has(r_173)) { this._xrefStms.add(r_173); this.startXRefQueue.push(r_173); tslib_1.__classPrivateFieldSet(this, _XRef_K, (_b = tslib_1.__classPrivateFieldGet(this, _XRef_K, "f")) !== null && _b !== void 0 ? _b : r_173, "f"); } } else { if (!Number.isInteger(r_173)) throw new FormatError("Invalid XRef stream header"); if (!(Number.isInteger(a_315.getObj()) && isCmd(a_315.getObj(), "obj") && (r_173 = a_315.getObj()) instanceof BaseStream)) throw new FormatError("Invalid XRef stream"); s_213 = this.processXRefStream(r_173); this.topDict || (this.topDict = s_213); if (!s_213) throw new FormatError("Failed to read XRef stream"); } r_173 = s_213.get("Prev"); Number.isInteger(r_173) ? this.startXRefQueue.push(r_173) : r_173 instanceof Ref && this.startXRefQueue.push(r_173.num); } catch (e) { if (e instanceof MissingDataException) throw e; info("(while reading XRef): " + e); } this.startXRefQueue.shift(); } if (this.topDict) return this.topDict; if (!e) throw new XRefParseException; }; Object.defineProperty(XRef.prototype, "lastXRefStreamPos", { get: function () { var _b; return (_b = tslib_1.__classPrivateFieldGet(this, _XRef_K, "f")) !== null && _b !== void 0 ? _b : (this._xrefStms.size > 0 ? Math.max.apply(Math, this._xrefStms) : null); }, enumerable: false, configurable: true }); XRef.prototype.getEntry = function (e) { var t = this.entries[e]; return t && !t.free && t.offset ? t : null; }; XRef.prototype.fetchIfRef = function (e, t) { if (t === void 0) { t = !1; } return e instanceof Ref ? this.fetch(e, t) : e; }; XRef.prototype.fetch = function (e, t) { if (t === void 0) { t = !1; } if (!(e instanceof Ref)) throw new Error("ref object is not a reference"); var i = e.num, a = this._cacheMap.get(i); if (void 0 !== a) { a instanceof Dict && !a.objId && (a.objId = e.toString()); return a; } var s = this.getEntry(i); if (null === s) { this._cacheMap.set(i, s); return s; } if (this._pendingRefs.has(e)) { this._pendingRefs.remove(e); warn("Ignoring circular reference: ".concat(e, ".")); return ft; } this._pendingRefs.put(e); try { s = s.uncompressed ? this.fetchUncompressed(e, s, t) : this.fetchCompressed(e, s, t); this._pendingRefs.remove(e); } catch (t) { this._pendingRefs.remove(e); throw t; } s instanceof Dict ? s.objId = e.toString() : s instanceof BaseStream && (s.dict.objId = e.toString()); return s; }; XRef.prototype.fetchUncompressed = function (e, t, i) { if (i === void 0) { i = !1; } var a = e.gen; var s = e.num; if (t.gen !== a) { var r_174 = "Inconsistent generation in XRef: ".concat(e); if (this._generationFallback && t.gen < a) { warn(r_174); return this.fetchUncompressed(Ref.get(s, t.gen), t, i); } throw new XRefEntryException(r_174); } var r = this.stream.makeSubStream(t.offset + this.stream.start), n = new Parser({ lexer: new Lexer(r), xref: this, allowStreams: !0 }), o = n.getObj(), g = n.getObj(), c = n.getObj(); if (o !== s || g !== a || !(c instanceof Cmd)) throw new XRefEntryException("Bad (uncompressed) XRef entry: ".concat(e)); if ("obj" !== c.cmd) { if (c.cmd.startsWith("obj")) { s = parseInt(c.cmd.substring(3), 10); if (!Number.isNaN(s)) return s; } throw new XRefEntryException("Bad (uncompressed) XRef entry: ".concat(e)); } (t = this.encrypt && !i ? n.getObj(this.encrypt.createCipherTransform(s, a)) : n.getObj()) instanceof BaseStream || this._cacheMap.set(s, t); return t; }; XRef.prototype.fetchCompressed = function (e, t, i) { if (i === void 0) { i = !1; } var a = t.offset, s = this.fetch(Ref.get(a, 0)); if (!(s instanceof BaseStream)) throw new FormatError("bad ObjStm stream"); var r = s.dict.get("First"), n = s.dict.get("N"); if (!Number.isInteger(r) || !Number.isInteger(n)) throw new FormatError("invalid first and n parameters for ObjStm stream"); var o = new Parser({ lexer: new Lexer(s), xref: this, allowStreams: !0 }); var g = new Array(n), c = new Array(n); for (var e_666 = 0; e_666 < n; ++e_666) { var t_489 = o.getObj(); if (!Number.isInteger(t_489)) throw new FormatError("invalid object number in the ObjStm stream: ".concat(t_489)); var i_388 = o.getObj(); if (!Number.isInteger(i_388)) throw new FormatError("invalid object offset in the ObjStm stream: ".concat(i_388)); g[e_666] = t_489; c[e_666] = i_388; } var h = (s.start || 0) + r, l = new Array(n); for (var e_667 = 0; e_667 < n; ++e_667) { var t_490 = e_667 < n - 1 ? c[e_667 + 1] - c[e_667] : void 0; if (t_490 < 0) throw new FormatError("Invalid offset in the ObjStm stream."); o = new Parser({ lexer: new Lexer(s.makeSubStream(h + c[e_667], t_490, s.dict)), xref: this, allowStreams: !0 }); var i_389 = o.getObj(); l[e_667] = i_389; if (i_389 instanceof BaseStream) continue; var r_175 = g[e_667], C_28 = this.entries[r_175]; C_28 && C_28.offset === a && C_28.gen === e_667 && this._cacheMap.set(r_175, i_389); } if (void 0 === (t = l[t.gen])) throw new XRefEntryException("Bad (compressed) XRef entry: ".concat(e)); return t; }; XRef.prototype.fetchIfRefAsync = function (e, t) { return tslib_1.__awaiter(this, void 0, void 0, function () { return tslib_1.__generator(this, function (_b) { return [2 /*return*/, e instanceof Ref ? this.fetchAsync(e, t) : e]; }); }); }; XRef.prototype.fetchAsync = function (e, t) { return tslib_1.__awaiter(this, void 0, void 0, function () { var i_390; return tslib_1.__generator(this, function (_b) { switch (_b.label) { case 0: _b.trys.push([0, 1, , 3]); return [2 /*return*/, this.fetch(e, t)]; case 1: i_390 = _b.sent(); if (!(i_390 instanceof MissingDataException)) throw i_390; return [4 /*yield*/, this.pdfManager.requestRange(i_390.begin, i_390.end)]; case 2: _b.sent(); return [2 /*return*/, this.fetchAsync(e, t)]; case 3: return [2 /*return*/]; } }); }); }; XRef.prototype.getCatalogObj = function () { return this.root; }; return XRef; }()); _XRef_K = new WeakMap(); var so = [0, 0, 612, 792]; var Page = /** @class */ (function () { function Page(_b) { var e = _b.pdfManager, t = _b.xref, i = _b.pageIndex, a = _b.pageDict, s = _b.ref, r = _b.globalIdFactory, n = _b.fontCache, o = _b.builtInCMapCache, g = _b.standardFontDataCache, c = _b.globalImageCache, h = _b.systemFontCache, l = _b.nonBlendModesSet, C = _b.xfaFactory; _Page_instances.add(this); this.pdfManager = e; this.pageIndex = i; this.pageDict = a; this.xref = t; this.ref = s; this.fontCache = n; this.builtInCMapCache = o; this.standardFontDataCache = g; this.globalImageCache = c; this.systemFontCache = h; this.nonBlendModesSet = l; this.evaluatorOptions = e.evaluatorOptions; this.resourcesPromise = null; this.xfaFactory = C; var Q = { obj: 0 }; this._localIdFactory = /** @class */ (function (_super) { tslib_1.__extends(_localIdFactory, _super); function _localIdFactory() { return _super !== null && _super.apply(this, arguments) || this; } _localIdFactory.createObjId = function () { return "p".concat(i, "_").concat(++Q.obj); }; _localIdFactory.getPageObjId = function () { return "p".concat(s.toString()); }; return _localIdFactory; }(r)); } Page.prototype._getInheritableProperty = function (e, t) { if (t === void 0) { t = !1; } var i = getInheritableProperty({ dict: this.pageDict, key: e, getArray: t, stopWhenFound: !1 }); return Array.isArray(i) ? 1 !== i.length && i[0] instanceof Dict ? Dict.merge({ xref: this.xref, dictArray: i }) : i[0] : i; }; Object.defineProperty(Page.prototype, "content", { get: function () { return this.pageDict.getArray("Contents"); }, enumerable: false, configurable: true }); Object.defineProperty(Page.prototype, "resources", { get: function () { var e = this._getInheritableProperty("Resources"); return shadow(this, "resources", e instanceof Dict ? e : Dict.empty); }, enumerable: false, configurable: true }); Page.prototype._getBoundingBox = function (e) { if (this.xfaData) return this.xfaData.bbox; var t = lookupNormalRect(this._getInheritableProperty(e, !0), null); if (t) { if (t[2] - t[0] > 0 && t[3] - t[1] > 0) return t; warn("Empty, or invalid, /".concat(e, " entry.")); } return null; }; Object.defineProperty(Page.prototype, "mediaBox", { get: function () { return shadow(this, "mediaBox", this._getBoundingBox("MediaBox") || so); }, enumerable: false, configurable: true }); Object.defineProperty(Page.prototype, "cropBox", { get: function () { return shadow(this, "cropBox", this._getBoundingBox("CropBox") || this.mediaBox); }, enumerable: false, configurable: true }); Object.defineProperty(Page.prototype, "userUnit", { get: function () { var e = this.pageDict.get("UserUnit"); ("number" != typeof e || e <= 0) && (e = 1); return shadow(this, "userUnit", e); }, enumerable: false, configurable: true }); Object.defineProperty(Page.prototype, "view", { get: function () { var _b = this, e = _b.cropBox, t = _b.mediaBox; if (e !== t && !isArrayEqual(e, t)) { var i_391 = Util.intersect(e, t); if (i_391 && i_391[2] - i_391[0] > 0 && i_391[3] - i_391[1] > 0) return shadow(this, "view", i_391); warn("Empty /CropBox and /MediaBox intersection."); } return shadow(this, "view", t); }, enumerable: false, configurable: true }); Object.defineProperty(Page.prototype, "rotate", { get: function () { var e = this._getInheritableProperty("Rotate") || 0; e % 90 != 0 ? e = 0 : e >= 360 ? e %= 360 : e < 0 && (e = (e % 360 + 360) % 360); return shadow(this, "rotate", e); }, enumerable: false, configurable: true }); Page.prototype._onSubStreamError = function (e, t) { if (!this.evaluatorOptions.ignoreErrors) throw e; warn("getContentStream - ignoring sub-stream (".concat(t, "): \"").concat(e, "\".")); }; Page.prototype.getContentStream = function () { var _this = this; return this.pdfManager.ensure(this, "content").then((function (e) { return e instanceof BaseStream ? e : Array.isArray(e) ? new StreamsSequenceStream(e, _this._onSubStreamError.bind(_this)) : new NullStream; })); }; Object.defineProperty(Page.prototype, "xfaData", { get: function () { return shadow(this, "xfaData", this.xfaFactory ? { bbox: this.xfaFactory.getBoundingBox(this.pageIndex) } : null); }, enumerable: false, configurable: true }); Page.prototype.saveNewAnnotations = function (e, t, i, a) { return tslib_1.__awaiter(this, void 0, void 0, function () { var s, r, n, o, g, c, _b, _k, e_668, h, l, C, _l, r_176, e_669; return tslib_1.__generator(this, function (_m) { switch (_m.label) { case 0: if (this.xfaFactory) throw new Error("XFA: Cannot save new annotations."); s = new PartialEvaluator({ xref: this.xref, handler: e, pageIndex: this.pageIndex, idFactory: this._localIdFactory, fontCache: this.fontCache, builtInCMapCache: this.builtInCMapCache, standardFontDataCache: this.standardFontDataCache, globalImageCache: this.globalImageCache, systemFontCache: this.systemFontCache, options: this.evaluatorOptions }), r = new RefSetCache, n = new RefSet; tslib_1.__classPrivateFieldGet(this, _Page_instances, "m", _Page_T).call(this, i, r, n); o = this.pageDict, g = this.annotations.filter((function (e) { return !(e instanceof Ref && r.has(e)); })); return [4 /*yield*/, AnnotationFactory.saveNewAnnotations(s, t, i, a)]; case 1: c = _m.sent(); for (_b = 0, _k = c.annotations; _b < _k.length; _b++) { e_668 = _k[_b].ref; e_668 instanceof Ref && !n.has(e_668) && g.push(e_668); } h = o.get("Annots"); o.set("Annots", g); l = []; return [4 /*yield*/, writeObject(this.ref, o, l, this.xref)]; case 2: _m.sent(); h && o.set("Annots", h); C = c.dependencies; C.push.apply(C, tslib_1.__spreadArray([{ ref: this.ref, data: l.join("") }], c.annotations, false)); for (_l = 0, r_176 = r; _l < r_176.length; _l++) { e_669 = r_176[_l]; C.push({ ref: e_669, data: null }); } return [2 /*return*/, C]; } }); }); }; Page.prototype.save = function (e, t, i) { var a = new PartialEvaluator({ xref: this.xref, handler: e, pageIndex: this.pageIndex, idFactory: this._localIdFactory, fontCache: this.fontCache, builtInCMapCache: this.builtInCMapCache, standardFontDataCache: this.standardFontDataCache, globalImageCache: this.globalImageCache, systemFontCache: this.systemFontCache, options: this.evaluatorOptions }); return this._parsedAnnotations.then((function (e) { var s = []; for (var _b = 0, e_670 = e; _b < e_670.length; _b++) { var r_177 = e_670[_b]; r_177.mustBePrinted(i) && s.push(r_177.save(a, t, i).catch((function (e) { warn("save - ignoring annotation data during \"".concat(t.name, "\" task: \"").concat(e, "\".")); return null; }))); } return Promise.all(s).then((function (e) { return e.filter((function (e) { return !!e; })); })); })); }; Page.prototype.loadResources = function (e) { var _this = this; this.resourcesPromise || (this.resourcesPromise = this.pdfManager.ensure(this, "resources")); return this.resourcesPromise.then((function () { return new ObjectLoader(_this.resources, e, _this.xref).load(); })); }; Page.prototype.getOperatorList = function (_b) { var _this = this; var e = _b.handler, t = _b.sink, i = _b.task, a = _b.intent, s = _b.cacheKey, _k = _b.annotationStorage, r = _k === void 0 ? null : _k; var n = this.getContentStream(), h = this.loadResources(["ColorSpace", "ExtGState", "Font", "Pattern", "Properties", "Shading", "XObject"]), Q = new PartialEvaluator({ xref: this.xref, handler: e, pageIndex: this.pageIndex, idFactory: this._localIdFactory, fontCache: this.fontCache, builtInCMapCache: this.builtInCMapCache, standardFontDataCache: this.standardFontDataCache, globalImageCache: this.globalImageCache, systemFontCache: this.systemFontCache, options: this.evaluatorOptions }), u = this.xfaFactory ? null : getNewAnnotationsMap(r), d = u === null || u === void 0 ? void 0 : u.get(this.pageIndex); var f = Promise.resolve(null), p = null; if (d) { var e_671 = this.pdfManager.ensureDoc("annotationGlobals"); var t_491; var a_316 = new Set; for (var _l = 0, d_11 = d; _l < d_11.length; _l++) { var _m = d_11[_l], e_672 = _m.bitmapId, t_492 = _m.bitmap; !e_672 || t_492 || a_316.has(e_672) || a_316.add(e_672); } var s_214 = this.evaluatorOptions.isOffscreenCanvasSupported; if (a_316.size > 0) { var e_673 = d.slice(); for (var _o = 0, r_178 = r; _o < r_178.length; _o++) { var _p = r_178[_o], t_493 = _p[0], i_392 = _p[1]; t_493.startsWith(E) && i_392.bitmap && a_316.has(i_392.bitmapId) && e_673.push(i_392); } t_491 = AnnotationFactory.generateImages(e_673, this.xref, s_214); } else t_491 = AnnotationFactory.generateImages(d, this.xref, s_214); p = new RefSet; tslib_1.__classPrivateFieldGet(this, _Page_instances, "m", _Page_T).call(this, d, p, null); f = e_671.then((function (e) { return e ? AnnotationFactory.printNewAnnotations(e, Q, i, d, t_491) : null; })); } var m = Promise.all([n, h]).then((function (_b) { var r = _b[0]; var n = new OperatorList(a, t); e.send("StartRenderPage", { transparency: Q.hasBlendModes(_this.resources, _this.nonBlendModesSet), pageIndex: _this.pageIndex, cacheKey: s }); return Q.getOperatorList({ stream: r, task: i, resources: _this.resources, operatorList: n }).then((function () { return n; })); })); return Promise.all([m, this._parsedAnnotations, f]).then((function (_b) { var e = _b[0], t = _b[1], s = _b[2]; if (s) { t = t.filter((function (e) { return !(e.ref && p.has(e.ref)); })); var _loop_5 = function (e_674, i_393) { var a_317 = s[e_674]; if (a_317.refToReplace) { var r_179 = t.findIndex((function (e) { return e.ref && isRefsEqual(e.ref, a_317.refToReplace); })); if (r_179 >= 0) { t.splice(r_179, 1, a_317); s.splice(e_674--, 1); i_393--; } } out_e_1 = e_674; out_i_1 = i_393; }; var out_e_1, out_i_1; for (var e_674 = 0, i_393 = s.length; e_674 < i_393; e_674++) { _loop_5(e_674, i_393); e_674 = out_e_1; i_393 = out_i_1; } t = t.concat(s); } if (0 === t.length || a & C) { e.flush(!0); return { length: e.totalLength }; } var n = !!(a & l), h = !!(a & o), E = !!(a & g), u = !!(a & c), d = []; for (var _k = 0, t_494 = t; _k < t_494.length; _k++) { var e_675 = t_494[_k]; (h || E && e_675.mustBeViewed(r, n) || u && e_675.mustBePrinted(r)) && d.push(e_675.getOperatorList(Q, i, a, n, r).catch((function (e) { warn("getOperatorList - ignoring annotation data during \"".concat(i.name, "\" task: \"").concat(e, "\".")); return { opList: null, separateForm: !1, separateCanvas: !1 }; }))); } return Promise.all(d).then((function (t) { var i = !1, a = !1; for (var _b = 0, t_495 = t; _b < t_495.length; _b++) { var _k = t_495[_b], s_215 = _k.opList, r_180 = _k.separateForm, n_113 = _k.separateCanvas; e.addOpList(s_215); i || (i = r_180); a || (a = n_113); } e.flush(!0, { form: i, canvas: a }); return { length: e.totalLength }; })); })); }; Page.prototype.extractTextContent = function (_b) { var e = _b.handler, t = _b.task, i = _b.includeMarkedContent, a = _b.disableNormalization, s = _b.sink; return tslib_1.__awaiter(this, void 0, void 0, function () { var r, n, o, _k, g, c; return tslib_1.__generator(this, function (_l) { switch (_l.label) { case 0: r = this.getContentStream(), n = this.loadResources(["ExtGState", "Font", "Properties", "XObject"]), o = this.pdfManager.ensureCatalog("lang"); return [4 /*yield*/, Promise.all([r, n, o])]; case 1: _k = _l.sent(), g = _k[0], c = _k[2]; return [2 /*return*/, new PartialEvaluator({ xref: this.xref, handler: e, pageIndex: this.pageIndex, idFactory: this._localIdFactory, fontCache: this.fontCache, builtInCMapCache: this.builtInCMapCache, standardFontDataCache: this.standardFontDataCache, globalImageCache: this.globalImageCache, systemFontCache: this.systemFontCache, options: this.evaluatorOptions }).getTextContent({ stream: g, task: t, resources: this.resources, includeMarkedContent: i, disableNormalization: a, sink: s, viewBox: this.view, lang: c })]; } }); }); }; Page.prototype.getStructTree = function () { return tslib_1.__awaiter(this, void 0, void 0, function () { var e; return tslib_1.__generator(this, function (_b) { switch (_b.label) { case 0: return [4 /*yield*/, this.pdfManager.ensureCatalog("structTreeRoot")]; case 1: e = _b.sent(); if (!e) return [2 /*return*/, null]; return [4 /*yield*/, this._parsedAnnotations]; case 2: _b.sent(); return [4 /*yield*/, this.pdfManager.ensure(this, "_parseStructTree", [e])]; case 3: return [2 /*return*/, (_b.sent()).serializable]; } }); }); }; Page.prototype._parseStructTree = function (e) { var t = new StructTreePage(e, this.pageDict); t.parse(this.ref); return t; }; Page.prototype.getAnnotationsData = function (e, t, i) { return tslib_1.__awaiter(this, void 0, void 0, function () { var a, s, r, n, h, l, C, _b, a_318, i_394, a_319; return tslib_1.__generator(this, function (_k) { switch (_k.label) { case 0: return [4 /*yield*/, this._parsedAnnotations]; case 1: a = _k.sent(); if (0 === a.length) return [2 /*return*/, a]; s = [], r = []; h = !!(i & o), l = !!(i & g), C = !!(i & c); for (_b = 0, a_318 = a; _b < a_318.length; _b++) { i_394 = a_318[_b]; a_319 = h || l && i_394.viewable; (a_319 || C && i_394.printable) && s.push(i_394.data); if (i_394.hasTextContent && a_319) { n || (n = new PartialEvaluator({ xref: this.xref, handler: e, pageIndex: this.pageIndex, idFactory: this._localIdFactory, fontCache: this.fontCache, builtInCMapCache: this.builtInCMapCache, standardFontDataCache: this.standardFontDataCache, globalImageCache: this.globalImageCache, systemFontCache: this.systemFontCache, options: this.evaluatorOptions })); r.push(i_394.extractTextContent(n, t, [-1 / 0, -1 / 0, 1 / 0, 1 / 0]).catch((function (e) { warn("getAnnotationsData - ignoring textContent during \"".concat(t.name, "\" task: \"").concat(e, "\".")); }))); } } return [4 /*yield*/, Promise.all(r)]; case 2: _k.sent(); return [2 /*return*/, s]; } }); }); }; Object.defineProperty(Page.prototype, "annotations", { get: function () { var e = this._getInheritableProperty("Annots"); return shadow(this, "annotations", Array.isArray(e) ? e : []); }, enumerable: false, configurable: true }); Object.defineProperty(Page.prototype, "_parsedAnnotations", { get: function () { var _this = this; return shadow(this, "_parsedAnnotations", this.pdfManager.ensure(this, "annotations").then((function (e) { return tslib_1.__awaiter(_this, void 0, void 0, function () { var t, i, _b, e_676, a_320, a, s, r, _k, _l, e_677; return tslib_1.__generator(this, function (_m) { switch (_m.label) { case 0: if (0 === e.length) return [2 /*return*/, e]; return [4 /*yield*/, this.pdfManager.ensureDoc("annotationGlobals")]; case 1: t = _m.sent(); if (!t) return [2 /*return*/, []]; i = []; for (_b = 0, e_676 = e; _b < e_676.length; _b++) { a_320 = e_676[_b]; i.push(AnnotationFactory.create(this.xref, a_320, t, this._localIdFactory, !1, this.ref).catch((function (e) { warn("_parsedAnnotations: \"".concat(e, "\".")); return null; }))); } a = []; _k = 0; return [4 /*yield*/, Promise.all(i)]; case 2: _l = _m.sent(); _m.label = 3; case 3: if (!(_k < _l.length)) return [3 /*break*/, 5]; e_677 = _l[_k]; e_677 && (e_677 instanceof WidgetAnnotation ? (r || (r = [])).push(e_677) : e_677 instanceof PopupAnnotation ? (s || (s = [])).push(e_677) : a.push(e_677)); _m.label = 4; case 4: _k++; return [3 /*break*/, 3]; case 5: r && a.push.apply(a, r); s && a.push.apply(a, s); return [2 /*return*/, a]; } }); }); }))); }, enumerable: false, configurable: true }); Object.defineProperty(Page.prototype, "jsActions", { get: function () { return shadow(this, "jsActions", collectActions(this.xref, this.pageDict, fA)); }, enumerable: false, configurable: true }); return Page; }()); _Page_instances = new WeakSet(), _Page_T = function _Page_T(e, t, i) { for (var _b = 0, e_678 = e; _b < e_678.length; _b++) { var a_321 = e_678[_b]; if (a_321.id) { var e_679 = Ref.fromString(a_321.id); if (!e_679) { warn("A non-linked annotation cannot be modified: ".concat(a_321.id)); continue; } if (a_321.deleted) { t.put(e_679, e_679); continue; } i === null || i === void 0 ? void 0 : i.put(e_679); a_321.ref = e_679; delete a_321.id; } } }; var ro = new Uint8Array([37, 80, 68, 70, 45]), no = new Uint8Array([115, 116, 97, 114, 116, 120, 114, 101, 102]), oo = new Uint8Array([101, 110, 100, 111, 98, 106]); function find(e, t, i, a) { if (i === void 0) { i = 1024; } if (a === void 0) { a = !1; } var s = t.length, r = e.peekBytes(i), n = r.length - s; if (n <= 0) return !1; if (a) { var i_395 = s - 1; var a_322 = r.length - 1; for (; a_322 >= i_395;) { var n_114 = 0; for (; n_114 < s && r[a_322 - n_114] === t[i_395 - n_114];) n_114++; if (n_114 >= s) { e.pos += a_322 - i_395; return !0; } a_322--; } } else { var i_396 = 0; for (; i_396 <= n;) { var a_323 = 0; for (; a_323 < s && r[i_396 + a_323] === t[a_323];) a_323++; if (a_323 >= s) { e.pos += i_396; return !0; } i_396++; } } return !1; } var PDFDocument = /** @class */ (function () { function PDFDocument(e, t) { _PDFDocument_instances.add(this); if (t.length <= 0) throw new InvalidPDFException("The PDF file is empty, i.e. its size is zero bytes."); this.pdfManager = e; this.stream = t; this.xref = new XRef(t, e); this._pagePromises = new Map; this._version = null; var i = { font: 0 }; this._globalIdFactory = /** @class */ (function () { function _globalIdFactory() { } _globalIdFactory.getDocId = function () { return "g_".concat(e.docId); }; _globalIdFactory.createFontId = function () { return "f" + ++i.font; }; _globalIdFactory.createObjId = function () { unreachable("Abstract method `createObjId` called."); }; _globalIdFactory.getPageObjId = function () { unreachable("Abstract method `getPageObjId` called."); }; return _globalIdFactory; }()); } PDFDocument.prototype.parse = function (e) { this.xref.parse(e); this.catalog = new Catalog(this.pdfManager, this.xref); }; Object.defineProperty(PDFDocument.prototype, "linearization", { get: function () { var e = null; try { e = Linearization.create(this.stream); } catch (e) { if (e instanceof MissingDataException) throw e; info(e); } return shadow(this, "linearization", e); }, enumerable: false, configurable: true }); Object.defineProperty(PDFDocument.prototype, "startXRef", { get: function () { var e = this.stream; var t = 0; if (this.linearization) { e.reset(); if (find(e, oo)) { e.skip(6); var i_397 = e.peekByte(); for (; isWhiteSpace(i_397);) { e.pos++; i_397 = e.peekByte(); } t = e.pos - e.start; } } else { var i_398 = 1024, a_324 = no.length; var s_216 = !1, r_181 = e.end; for (; !s_216 && r_181 > 0;) { r_181 -= i_398 - a_324; r_181 < 0 && (r_181 = 0); e.pos = r_181; s_216 = find(e, no, i_398, !0); } if (s_216) { e.skip(9); var i_399; do { i_399 = e.getByte(); } while (isWhiteSpace(i_399)); var a_325 = ""; for (; i_399 >= 32 && i_399 <= 57;) { a_325 += String.fromCharCode(i_399); i_399 = e.getByte(); } t = parseInt(a_325, 10); isNaN(t) && (t = 0); } } return shadow(this, "startXRef", t); }, enumerable: false, configurable: true }); PDFDocument.prototype.checkHeader = function () { var e = this.stream; e.reset(); if (!find(e, ro)) return; e.moveStart(); e.skip(ro.length); var t, i = ""; for (; (t = e.getByte()) > 32 && i.length < 7;) i += String.fromCharCode(t); Dt.test(i) ? this._version = i : warn("Invalid PDF header version: ".concat(i)); }; PDFDocument.prototype.parseStartXRef = function () { this.xref.setStartXRef(this.startXRef); }; Object.defineProperty(PDFDocument.prototype, "numPages", { get: function () { var e = 0; e = this.catalog.hasActualNumPages ? this.catalog.numPages : this.xfaFactory ? this.xfaFactory.getNumPages() : this.linearization ? this.linearization.numPages : this.catalog.numPages; return shadow(this, "numPages", e); }, enumerable: false, configurable: true }); PDFDocument.prototype._hasOnlyDocumentSignatures = function (e, t) { var _this = this; if (t === void 0) { t = 0; } return !!Array.isArray(e) && e.every((function (e) { if (!((e = _this.xref.fetchIfRef(e)) instanceof Dict)) return !1; if (e.has("Kids")) { if (++t > 10) { warn("_hasOnlyDocumentSignatures: maximum recursion depth reached"); return !1; } return _this._hasOnlyDocumentSignatures(e.get("Kids"), t); } var i = isName(e.get("FT"), "Sig"), a = e.get("Rect"), s = Array.isArray(a) && a.every((function (e) { return 0 === e; })); return i && s; })); }; Object.defineProperty(PDFDocument.prototype, "_xfaStreams", { get: function () { var e = this.catalog.acroForm; if (!e) return null; var t = e.get("XFA"), i = { "xdp:xdp": "", template: "", datasets: "", config: "", connectionSet: "", localeSet: "", stylesheet: "", "/xdp:xdp": "" }; if (t instanceof BaseStream && !t.isEmpty) { i["xdp:xdp"] = t; return i; } if (!Array.isArray(t) || 0 === t.length) return null; for (var e_680 = 0, a_326 = t.length; e_680 < a_326; e_680 += 2) { var s_217 = void 0; s_217 = 0 === e_680 ? "xdp:xdp" : e_680 === a_326 - 2 ? "/xdp:xdp" : t[e_680]; if (!i.hasOwnProperty(s_217)) continue; var r_182 = this.xref.fetchIfRef(t[e_680 + 1]); r_182 instanceof BaseStream && !r_182.isEmpty && (i[s_217] = r_182); } return i; }, enumerable: false, configurable: true }); Object.defineProperty(PDFDocument.prototype, "xfaDatasets", { get: function () { var _b; var e = this._xfaStreams; if (!e) return shadow(this, "xfaDatasets", null); for (var _k = 0, _l = ["datasets", "xdp:xdp"]; _k < _l.length; _k++) { var t_496 = _l[_k]; var i_400 = e[t_496]; if (i_400) try { var e_681 = stringToUTF8String(i_400.getString()); return shadow(this, "xfaDatasets", new DatasetReader((_b = {}, _b[t_496] = e_681, _b))); } catch (_m) { warn("XFA - Invalid utf-8 string."); break; } } return shadow(this, "xfaDatasets", null); }, enumerable: false, configurable: true }); Object.defineProperty(PDFDocument.prototype, "xfaData", { get: function () { var e = this._xfaStreams; if (!e) return null; var t = Object.create(null); for (var _b = 0, _k = Object.entries(e); _b < _k.length; _b++) { var _l = _k[_b], i_401 = _l[0], a_327 = _l[1]; if (a_327) try { t[i_401] = stringToUTF8String(a_327.getString()); } catch (_m) { warn("XFA - Invalid utf-8 string."); return null; } } return t; }, enumerable: false, configurable: true }); Object.defineProperty(PDFDocument.prototype, "xfaFactory", { get: function () { var e; this.pdfManager.enableXfa && this.catalog.needsRendering && this.formInfo.hasXfa && !this.formInfo.hasAcroForm && (e = this.xfaData); return shadow(this, "xfaFactory", e ? new XFAFactory(e) : null); }, enumerable: false, configurable: true }); Object.defineProperty(PDFDocument.prototype, "isPureXfa", { get: function () { return !!this.xfaFactory && this.xfaFactory.isValid(); }, enumerable: false, configurable: true }); Object.defineProperty(PDFDocument.prototype, "htmlForXfa", { get: function () { return this.xfaFactory ? this.xfaFactory.getPages() : null; }, enumerable: false, configurable: true }); PDFDocument.prototype.loadXfaImages = function () { return tslib_1.__awaiter(this, void 0, void 0, function () { var e, t, i, a, _b, t_497, i_402, t_498; return tslib_1.__generator(this, function (_k) { switch (_k.label) { case 0: return [4 /*yield*/, this.pdfManager.ensureCatalog("xfaImages")]; case 1: e = _k.sent(); if (!e) return [2 /*return*/]; t = e.getKeys(), i = new ObjectLoader(e, t, this.xref); return [4 /*yield*/, i.load()]; case 2: _k.sent(); a = new Map; for (_b = 0, t_497 = t; _b < t_497.length; _b++) { i_402 = t_497[_b]; t_498 = e.get(i_402); t_498 instanceof BaseStream && a.set(i_402, t_498.getBytes()); } this.xfaFactory.setImages(a); return [2 /*return*/]; } }); }); }; PDFDocument.prototype.loadXfaFonts = function (e, t) { return tslib_1.__awaiter(this, void 0, void 0, function () { var i, a, s, r, n, o, g, c, h, l, C, _b, l_33, _k, e_682, i_403, s_218, r_183, n_115, Q, E, _l, Q_28, e_683, _m, Q_29, e_684, _o, _p, i_404, s_219, r_184; return tslib_1.__generator(this, function (_q) { switch (_q.label) { case 0: return [4 /*yield*/, this.pdfManager.ensureCatalog("acroForm")]; case 1: i = _q.sent(); if (!i) return [2 /*return*/]; return [4 /*yield*/, i.getAsync("DR")]; case 2: a = _q.sent(); if (!(a instanceof Dict)) return [2 /*return*/]; s = new ObjectLoader(a, ["Font"], this.xref); return [4 /*yield*/, s.load()]; case 3: _q.sent(); r = a.get("Font"); if (!(r instanceof Dict)) return [2 /*return*/]; n = Object.assign(Object.create(null), this.pdfManager.evaluatorOptions); n.useSystemFonts = !1; o = new PartialEvaluator({ xref: this.xref, handler: e, pageIndex: -1, idFactory: this._globalIdFactory, fontCache: this.catalog.fontCache, builtInCMapCache: this.catalog.builtInCMapCache, standardFontDataCache: this.catalog.standardFontDataCache, options: n }), g = new OperatorList, c = [], h = { get font() { return c.at(-1); }, set font(e) { c.push(e); }, clone: function () { return this; } }, l = new Map; r.forEach((function (e, t) { l.set(e, t); })); C = []; for (_b = 0, l_33 = l; _b < l_33.length; _b++) { _k = l_33[_b], e_682 = _k[0], i_403 = _k[1]; s_218 = i_403.get("FontDescriptor"); if (!(s_218 instanceof Dict)) continue; r_183 = s_218.get("FontFamily"); r_183 = r_183.replaceAll(/[ ]+(\d)/g, "$1"); n_115 = { fontFamily: r_183, fontWeight: s_218.get("FontWeight"), italicAngle: -s_218.get("ItalicAngle") }; validateCSSFont(n_115) && C.push(o.handleSetFont(a, [Name.get(e_682), 1], null, g, t, h, null, n_115).catch((function (e) { warn("loadXfaFonts: \"".concat(e, "\".")); return null; }))); } return [4 /*yield*/, Promise.all(C)]; case 4: _q.sent(); Q = this.xfaFactory.setFonts(c); if (!Q) return [2 /*return*/]; n.ignoreErrors = !0; C.length = 0; c.length = 0; E = new Set; for (_l = 0, Q_28 = Q; _l < Q_28.length; _l++) { e_683 = Q_28[_l]; getXfaFontName("".concat(e_683, "-Regular")) || E.add(e_683); } E.size && Q.push("PdfJS-Fallback"); for (_m = 0, Q_29 = Q; _m < Q_29.length; _m++) { e_684 = Q_29[_m]; if (!E.has(e_684)) for (_o = 0, _p = [{ name: "Regular", fontWeight: 400, italicAngle: 0 }, { name: "Bold", fontWeight: 700, italicAngle: 0 }, { name: "Italic", fontWeight: 400, italicAngle: 12 }, { name: "BoldItalic", fontWeight: 700, italicAngle: 12 }]; _o < _p.length; _o++) { i_404 = _p[_o]; s_219 = "".concat(e_684, "-").concat(i_404.name), r_184 = getXfaFontDict(s_219); C.push(o.handleSetFont(a, [Name.get(s_219), 1], null, g, t, h, r_184, { fontFamily: e_684, fontWeight: i_404.fontWeight, italicAngle: i_404.italicAngle }).catch((function (e) { warn("loadXfaFonts: \"".concat(e, "\".")); return null; }))); } } return [4 /*yield*/, Promise.all(C)]; case 5: _q.sent(); this.xfaFactory.appendFonts(c, E); return [2 /*return*/]; } }); }); }; PDFDocument.prototype.serializeXfaData = function (e) { return tslib_1.__awaiter(this, void 0, void 0, function () { return tslib_1.__generator(this, function (_b) { return [2 /*return*/, this.xfaFactory ? this.xfaFactory.serializeData(e) : null]; }); }); }; Object.defineProperty(PDFDocument.prototype, "version", { get: function () { return this.catalog.version || this._version; }, enumerable: false, configurable: true }); Object.defineProperty(PDFDocument.prototype, "formInfo", { get: function () { var e = { hasFields: !1, hasAcroForm: !1, hasXfa: !1, hasSignatures: !1 }, t = this.catalog.acroForm; if (!t) return shadow(this, "formInfo", e); try { var i_405 = t.get("Fields"), a_328 = Array.isArray(i_405) && i_405.length > 0; e.hasFields = a_328; var s_220 = t.get("XFA"); e.hasXfa = Array.isArray(s_220) && s_220.length > 0 || s_220 instanceof BaseStream && !s_220.isEmpty; var r_185 = !!(1 & t.get("SigFlags")), n_116 = r_185 && this._hasOnlyDocumentSignatures(i_405); e.hasAcroForm = a_328 && !n_116; e.hasSignatures = r_185; } catch (e) { if (e instanceof MissingDataException) throw e; warn("Cannot fetch form information: \"".concat(e, "\".")); } return shadow(this, "formInfo", e); }, enumerable: false, configurable: true }); Object.defineProperty(PDFDocument.prototype, "documentInfo", { get: function () { var e = { PDFFormatVersion: this.version, Language: this.catalog.lang, EncryptFilterName: this.xref.encrypt ? this.xref.encrypt.filterName : null, IsLinearized: !!this.linearization, IsAcroFormPresent: this.formInfo.hasAcroForm, IsXFAPresent: this.formInfo.hasXfa, IsCollectionPresent: !!this.catalog.collection, IsSignaturesPresent: this.formInfo.hasSignatures }; var t; try { t = this.xref.trailer.get("Info"); } catch (e) { if (e instanceof MissingDataException) throw e; info("The document information dictionary is invalid."); } if (!(t instanceof Dict)) return shadow(this, "documentInfo", e); for (var _b = 0, _k = t.getKeys(); _b < _k.length; _b++) { var i_406 = _k[_b]; var a_329 = t.get(i_406); switch (i_406) { case "Title": case "Author": case "Subject": case "Keywords": case "Creator": case "Producer": case "CreationDate": case "ModDate": if ("string" == typeof a_329) { e[i_406] = stringToPDFString(a_329); continue; } break; case "Trapped": if (a_329 instanceof Name) { e[i_406] = a_329; continue; } break; default: var t_499 = void 0; switch (typeof a_329) { case "string": t_499 = stringToPDFString(a_329); break; case "number": case "boolean": t_499 = a_329; break; default: a_329 instanceof Name && (t_499 = a_329); } if (void 0 === t_499) { warn("Bad value, for custom key \"".concat(i_406, "\", in Info: ").concat(a_329, ".")); continue; } e.Custom || (e.Custom = Object.create(null)); e.Custom[i_406] = t_499; continue; } warn("Bad value, for key \"".concat(i_406, "\", in Info: ").concat(a_329, ".")); } return shadow(this, "documentInfo", e); }, enumerable: false, configurable: true }); Object.defineProperty(PDFDocument.prototype, "fingerprints", { get: function () { function validate(e) { return "string" == typeof e && e.length > 0 && "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" !== e; } function hexString(e) { var t = []; for (var _b = 0, e_685 = e; _b < e_685.length; _b++) { var i_407 = e_685[_b]; var e_686 = i_407.toString(16); t.push(e_686.padStart(2, "0")); } return t.join(""); } var e = this.xref.trailer.get("ID"); var t, i; if (Array.isArray(e) && validate(e[0])) { t = stringToBytes(e[0]); e[1] !== e[0] && validate(e[1]) && (i = stringToBytes(e[1])); } else t = Js(this.stream.getByteRange(0, 1024), 0, 1024); return shadow(this, "fingerprints", [hexString(t), i ? hexString(i) : null]); }, enumerable: false, configurable: true }); PDFDocument.prototype._getLinearizationPage = function (e) { return tslib_1.__awaiter(this, void 0, void 0, function () { var _b, t, i, a, s, e_687, i_409, _k, i_408; return tslib_1.__generator(this, function (_l) { switch (_l.label) { case 0: _b = this, t = _b.catalog, i = _b.linearization, a = _b.xref, s = Ref.get(i.objectNumberFirst, 0); _l.label = 1; case 1: _l.trys.push([1, 6, , 7]); return [4 /*yield*/, a.fetchAsync(s)]; case 2: e_687 = _l.sent(); if (!(e_687 instanceof Dict)) return [3 /*break*/, 5]; i_409 = e_687.getRaw("Type"); _k = i_409 instanceof Ref; if (!_k) return [3 /*break*/, 4]; return [4 /*yield*/, a.fetchAsync(i_409)]; case 3: _k = (i_409 = _l.sent()); _l.label = 4; case 4: _k; if (isName(i_409, "Page") || !e_687.has("Type") && !e_687.has("Kids") && e_687.has("Contents")) { t.pageKidsCountCache.has(s) || t.pageKidsCountCache.put(s, 1); t.pageIndexCache.has(s) || t.pageIndexCache.put(s, 0); return [2 /*return*/, [e_687, s]]; } _l.label = 5; case 5: throw new FormatError("The Linearization dictionary doesn't point to a valid Page dictionary."); case 6: i_408 = _l.sent(); warn("_getLinearizationPage: \"".concat(i_408.message, "\".")); return [2 /*return*/, t.getPageDict(e)]; case 7: return [2 /*return*/]; } }); }); }; PDFDocument.prototype.getPage = function (e) { var _this = this; var t = this._pagePromises.get(e); if (t) return t; var _b = this, i = _b.catalog, a = _b.linearization, s = _b.xfaFactory; var r; r = s ? Promise.resolve([Dict.empty, null]) : (a === null || a === void 0 ? void 0 : a.pageFirst) === e ? this._getLinearizationPage(e) : i.getPageDict(e); r = r.then((function (_b) { var t = _b[0], a = _b[1]; return new Page({ pdfManager: _this.pdfManager, xref: _this.xref, pageIndex: e, pageDict: t, ref: a, globalIdFactory: _this._globalIdFactory, fontCache: i.fontCache, builtInCMapCache: i.builtInCMapCache, standardFontDataCache: i.standardFontDataCache, globalImageCache: i.globalImageCache, systemFontCache: i.systemFontCache, nonBlendModesSet: i.nonBlendModesSet, xfaFactory: s }); })); this._pagePromises.set(e, r); return r; }; PDFDocument.prototype.checkFirstPage = function (e) { if (e === void 0) { e = !1; } return tslib_1.__awaiter(this, void 0, void 0, function () { var e_688; return tslib_1.__generator(this, function (_b) { switch (_b.label) { case 0: if (!!e) return [3 /*break*/, 6]; _b.label = 1; case 1: _b.trys.push([1, 3, , 6]); return [4 /*yield*/, this.getPage(0)]; case 2: _b.sent(); return [3 /*break*/, 6]; case 3: e_688 = _b.sent(); if (!(e_688 instanceof XRefEntryException)) return [3 /*break*/, 5]; this._pagePromises.delete(0); return [4 /*yield*/, this.cleanup()]; case 4: _b.sent(); throw new XRefParseException; case 5: return [3 /*break*/, 6]; case 6: return [2 /*return*/]; } }); }); }; PDFDocument.prototype.checkLastPage = function (e) { if (e === void 0) { e = !1; } return tslib_1.__awaiter(this, void 0, void 0, function () { var _b, t, i, a, s_221, r_187, i_410, _k, r_186, _l, e_689, _m, a_330, s_222, r_188; return tslib_1.__generator(this, function (_o) { switch (_o.label) { case 0: _b = this, t = _b.catalog, i = _b.pdfManager; t.setActualNumPages(); _o.label = 1; case 1: _o.trys.push([1, 4, , 10]); return [4 /*yield*/, Promise.all([i.ensureDoc("xfaFactory"), i.ensureDoc("linearization"), i.ensureCatalog("numPages")])]; case 2: _o.sent(); if (this.xfaFactory) return [2 /*return*/]; a = this.linearization ? this.linearization.numPages : t.numPages; if (!Number.isInteger(a)) throw new FormatError("Page count is not an integer."); if (a <= 1) return [2 /*return*/]; return [4 /*yield*/, this.getPage(a - 1)]; case 3: _o.sent(); return [3 /*break*/, 10]; case 4: s_221 = _o.sent(); this._pagePromises.delete(a - 1); return [4 /*yield*/, this.cleanup()]; case 5: _o.sent(); if (s_221 instanceof XRefEntryException && !e) throw new XRefParseException; warn("checkLastPage - invalid /Pages tree /Count: ".concat(a, ".")); _o.label = 6; case 6: _o.trys.push([6, 8, , 9]); return [4 /*yield*/, t.getAllPageDicts(e)]; case 7: r_187 = _o.sent(); return [3 /*break*/, 9]; case 8: i_410 = _o.sent(); if (i_410 instanceof XRefEntryException && !e) throw new XRefParseException; t.setActualNumPages(1); return [2 /*return*/]; case 9: for (_k = 0, r_186 = r_187; _k < r_186.length; _k++) { _l = r_186[_k], e_689 = _l[0], _m = _l[1], a_330 = _m[0], s_222 = _m[1]; r_188 = void 0; if (a_330 instanceof Error) { r_188 = Promise.reject(a_330); r_188.catch((function () { })); } else r_188 = Promise.resolve(new Page({ pdfManager: i, xref: this.xref, pageIndex: e_689, pageDict: a_330, ref: s_222, globalIdFactory: this._globalIdFactory, fontCache: t.fontCache, builtInCMapCache: t.builtInCMapCache, standardFontDataCache: t.standardFontDataCache, globalImageCache: t.globalImageCache, systemFontCache: t.systemFontCache, nonBlendModesSet: t.nonBlendModesSet, xfaFactory: null })); this._pagePromises.set(e_689, r_188); } t.setActualNumPages(r_187.size); return [3 /*break*/, 10]; case 10: return [2 /*return*/]; } }); }); }; PDFDocument.prototype.fontFallback = function (e, t) { return this.catalog.fontFallback(e, t); }; PDFDocument.prototype.cleanup = function (e) { if (e === void 0) { e = !1; } return tslib_1.__awaiter(this, void 0, void 0, function () { return tslib_1.__generator(this, function (_b) { return [2 /*return*/, this.catalog ? this.catalog.cleanup(e) : clearGlobalCaches()]; }); }); }; Object.defineProperty(PDFDocument.prototype, "fieldObjects", { get: function () { var _this = this; if (!this.formInfo.hasFields) return shadow(this, "fieldObjects", Promise.resolve(null)); return shadow(this, "fieldObjects", Promise.all([this.pdfManager.ensureDoc("annotationGlobals"), this.pdfManager.ensureCatalog("acroForm")]).then((function (_b) { var e = _b[0], t = _b[1]; return tslib_1.__awaiter(_this, void 0, void 0, function () { var i, a, s, _k, _l, a_331, r, _loop_6, _m, s_223, _o, e_690, t_500; return tslib_1.__generator(this, function (_p) { switch (_p.label) { case 0: if (!e) return [2 /*return*/, null]; i = new RefSet, a = Object.create(null), s = new Map; _k = 0; return [4 /*yield*/, t.getAsync("Fields")]; case 1: _l = _p.sent(); _p.label = 2; case 2: if (!(_k < _l.length)) return [3 /*break*/, 5]; a_331 = _l[_k]; return [4 /*yield*/, tslib_1.__classPrivateFieldGet(this, _PDFDocument_instances, "m", _PDFDocument_q).call(this, "", a_331, s, e, i)]; case 3: _p.sent(); _p.label = 4; case 4: _k++; return [3 /*break*/, 2]; case 5: r = []; _loop_6 = function (e_690, t_500) { r.push(Promise.all(t_500).then((function (t) { (t = t.filter((function (e) { return !!e; }))).length > 0 && (a[e_690] = t); }))); }; for (_m = 0, s_223 = s; _m < s_223.length; _m++) { _o = s_223[_m], e_690 = _o[0], t_500 = _o[1]; _loop_6(e_690, t_500); } return [4 /*yield*/, Promise.all(r)]; case 6: _p.sent(); return [2 /*return*/, a]; } }); }); }))); }, enumerable: false, configurable: true }); Object.defineProperty(PDFDocument.prototype, "hasJSActions", { get: function () { return shadow(this, "hasJSActions", this.pdfManager.ensureDoc("_parseHasJSActions")); }, enumerable: false, configurable: true }); PDFDocument.prototype._parseHasJSActions = function () { return tslib_1.__awaiter(this, void 0, void 0, function () { var _b, e, t; return tslib_1.__generator(this, function (_k) { switch (_k.label) { case 0: return [4 /*yield*/, Promise.all([this.pdfManager.ensureCatalog("jsActions"), this.pdfManager.ensureDoc("fieldObjects")])]; case 1: _b = _k.sent(), e = _b[0], t = _b[1]; return [2 /*return*/, !!e || !!t && Object.values(t).some((function (e) { return e.some((function (e) { return null !== e.actions; })); }))]; } }); }); }; Object.defineProperty(PDFDocument.prototype, "calculationOrderIds", { get: function () { var e = this.catalog.acroForm; if (!(e === null || e === void 0 ? void 0 : e.has("CO"))) return shadow(this, "calculationOrderIds", null); var t = e.get("CO"); if (!Array.isArray(t) || 0 === t.length) return shadow(this, "calculationOrderIds", null); var i = []; for (var _b = 0, t_501 = t; _b < t_501.length; _b++) { var e_691 = t_501[_b]; e_691 instanceof Ref && i.push(e_691.toString()); } return 0 === i.length ? shadow(this, "calculationOrderIds", null) : shadow(this, "calculationOrderIds", i); }, enumerable: false, configurable: true }); Object.defineProperty(PDFDocument.prototype, "annotationGlobals", { get: function () { return shadow(this, "annotationGlobals", AnnotationFactory.createGlobals(this.pdfManager)); }, enumerable: false, configurable: true }); return PDFDocument; }()); _PDFDocument_instances = new WeakSet(), _PDFDocument_q = function _PDFDocument_q(e, t, i, a, s) { return tslib_1.__awaiter(this, void 0, void 0, function () { var r, n, t_502, _b, t_503, i_411, _k, o, _l, o_83, t_504; return tslib_1.__generator(this, function (_m) { switch (_m.label) { case 0: r = this.xref; if (!(t instanceof Ref) || s.has(t)) return [2 /*return*/]; s.put(t); return [4 /*yield*/, r.fetchAsync(t)]; case 1: n = _m.sent(); if (!(n instanceof Dict)) return [2 /*return*/]; if (!n.has("T")) return [3 /*break*/, 3]; _b = stringToPDFString; return [4 /*yield*/, n.getAsync("T")]; case 2: t_502 = _b.apply(void 0, [_m.sent()]); e = "" === e ? t_502 : "".concat(e, ".").concat(t_502); return [3 /*break*/, 9]; case 3: t_503 = n; _m.label = 4; case 4: t_503 = t_503.getRaw("Parent"); if (!(t_503 instanceof Ref)) return [3 /*break*/, 6]; if (s.has(t_503)) return [3 /*break*/, 9]; return [4 /*yield*/, r.fetchAsync(t_503)]; case 5: t_503 = _m.sent(); _m.label = 6; case 6: if (!(t_503 instanceof Dict)) return [3 /*break*/, 9]; if (!t_503.has("T")) return [3 /*break*/, 8]; _k = stringToPDFString; return [4 /*yield*/, t_503.getAsync("T")]; case 7: i_411 = _k.apply(void 0, [_m.sent()]); e = "" === e ? i_411 : "".concat(e, ".").concat(i_411); return [3 /*break*/, 9]; case 8: return [3 /*break*/, 4]; case 9: i.has(e) || i.set(e, []); i.get(e).push(AnnotationFactory.create(r, t, a, null, !0, null).then((function (e) { return e === null || e === void 0 ? void 0 : e.getFieldObject(); })).catch((function (e) { warn("#collectFieldObjects: \"".concat(e, "\".")); return null; }))); if (!n.has("Kids")) return [2 /*return*/]; return [4 /*yield*/, n.getAsync("Kids")]; case 10: o = _m.sent(); if (!Array.isArray(o)) return [3 /*break*/, 14]; _l = 0, o_83 = o; _m.label = 11; case 11: if (!(_l < o_83.length)) return [3 /*break*/, 14]; t_504 = o_83[_l]; return [4 /*yield*/, tslib_1.__classPrivateFieldGet(this, _PDFDocument_instances, "m", _PDFDocument_q).call(this, e, t_504, i, a, s)]; case 12: _m.sent(); _m.label = 13; case 13: _l++; return [3 /*break*/, 11]; case 14: return [2 /*return*/]; } }); }); }; var BasePdfManager = /** @class */ (function () { function BasePdfManager(e) { var _b; this.constructor === BasePdfManager && unreachable("Cannot initialize BasePdfManager."); this._docBaseUrl = function parseDocBaseUrl(e) { if (e) { var t_505 = createValidAbsoluteUrl(e); if (t_505) return t_505.href; warn("Invalid absolute docBaseUrl: \"".concat(e, "\".")); } return null; }(e.docBaseUrl); this._docId = e.docId; this._password = e.password; this.enableXfa = e.enableXfa; (_b = e.evaluatorOptions).isOffscreenCanvasSupported && (_b.isOffscreenCanvasSupported = FeatureTest.isOffscreenCanvasSupported); this.evaluatorOptions = Object.freeze(e.evaluatorOptions); } Object.defineProperty(BasePdfManager.prototype, "docId", { get: function () { return this._docId; }, enumerable: false, configurable: true }); Object.defineProperty(BasePdfManager.prototype, "password", { get: function () { return this._password; }, enumerable: false, configurable: true }); Object.defineProperty(BasePdfManager.prototype, "docBaseUrl", { get: function () { return this._docBaseUrl; }, enumerable: false, configurable: true }); Object.defineProperty(BasePdfManager.prototype, "catalog", { get: function () { return this.pdfDocument.catalog; }, enumerable: false, configurable: true }); BasePdfManager.prototype.ensureDoc = function (e, t) { return this.ensure(this.pdfDocument, e, t); }; BasePdfManager.prototype.ensureXRef = function (e, t) { return this.ensure(this.pdfDocument.xref, e, t); }; BasePdfManager.prototype.ensureCatalog = function (e, t) { return this.ensure(this.pdfDocument.catalog, e, t); }; BasePdfManager.prototype.getPage = function (e) { return this.pdfDocument.getPage(e); }; BasePdfManager.prototype.fontFallback = function (e, t) { return this.pdfDocument.fontFallback(e, t); }; BasePdfManager.prototype.loadXfaFonts = function (e, t) { return this.pdfDocument.loadXfaFonts(e, t); }; BasePdfManager.prototype.loadXfaImages = function () { return this.pdfDocument.loadXfaImages(); }; BasePdfManager.prototype.serializeXfaData = function (e) { return this.pdfDocument.serializeXfaData(e); }; BasePdfManager.prototype.cleanup = function (e) { if (e === void 0) { e = !1; } return this.pdfDocument.cleanup(e); }; BasePdfManager.prototype.ensure = function (e, t, i) { return tslib_1.__awaiter(this, void 0, void 0, function () { return tslib_1.__generator(this, function (_b) { unreachable("Abstract method `ensure` called"); return [2 /*return*/]; }); }); }; BasePdfManager.prototype.requestRange = function (e, t) { unreachable("Abstract method `requestRange` called"); }; BasePdfManager.prototype.requestLoadedStream = function (e) { if (e === void 0) { e = !1; } unreachable("Abstract method `requestLoadedStream` called"); }; BasePdfManager.prototype.sendProgressiveData = function (e) { unreachable("Abstract method `sendProgressiveData` called"); }; BasePdfManager.prototype.updatePassword = function (e) { this._password = e; }; BasePdfManager.prototype.terminate = function (e) { unreachable("Abstract method `terminate` called"); }; return BasePdfManager; }()); var LocalPdfManager = /** @class */ (function (_super) { tslib_1.__extends(LocalPdfManager, _super); function LocalPdfManager(e) { var _this = _super.call(this, e) || this; var t = new Stream(e.source); _this.pdfDocument = new PDFDocument(_this, t); _this._loadedStreamPromise = Promise.resolve(t); return _this; } LocalPdfManager.prototype.ensure = function (e, t, i) { return tslib_1.__awaiter(this, void 0, void 0, function () { var a; return tslib_1.__generator(this, function (_b) { a = e[t]; return [2 /*return*/, "function" == typeof a ? a.apply(e, i) : a]; }); }); }; LocalPdfManager.prototype.requestRange = function (e, t) { return Promise.resolve(); }; LocalPdfManager.prototype.requestLoadedStream = function (e) { if (e === void 0) { e = !1; } return this._loadedStreamPromise; }; LocalPdfManager.prototype.terminate = function (e) { }; return LocalPdfManager; }(BasePdfManager)); var NetworkPdfManager = /** @class */ (function (_super) { tslib_1.__extends(NetworkPdfManager, _super); function NetworkPdfManager(e) { var _this = _super.call(this, e) || this; _this.streamManager = new ChunkedStreamManager(e.source, { msgHandler: e.handler, length: e.length, disableAutoFetch: e.disableAutoFetch, rangeChunkSize: e.rangeChunkSize }); _this.pdfDocument = new PDFDocument(_this, _this.streamManager.getStream()); return _this; } NetworkPdfManager.prototype.ensure = function (e, t, i) { return tslib_1.__awaiter(this, void 0, void 0, function () { var a_333, a_332; return tslib_1.__generator(this, function (_b) { switch (_b.label) { case 0: _b.trys.push([0, 1, , 3]); a_333 = e[t]; return [2 /*return*/, "function" == typeof a_333 ? a_333.apply(e, i) : a_333]; case 1: a_332 = _b.sent(); if (!(a_332 instanceof MissingDataException)) throw a_332; return [4 /*yield*/, this.requestRange(a_332.begin, a_332.end)]; case 2: _b.sent(); return [2 /*return*/, this.ensure(e, t, i)]; case 3: return [2 /*return*/]; } }); }); }; NetworkPdfManager.prototype.requestRange = function (e, t) { return this.streamManager.requestRange(e, t); }; NetworkPdfManager.prototype.requestLoadedStream = function (e) { if (e === void 0) { e = !1; } return this.streamManager.requestAllChunks(e); }; NetworkPdfManager.prototype.sendProgressiveData = function (e) { this.streamManager.onReceiveData({ chunk: e }); }; NetworkPdfManager.prototype.terminate = function (e) { this.streamManager.abort(e); }; return NetworkPdfManager; }(BasePdfManager)); var go = 1, Io = 2, co = 1, ho = 2, lo = 3, Co = 4, Bo = 5, Qo = 6, Eo = 7, uo = 8; function wrapReason(e) { e instanceof Error || "object" == typeof e && null !== e || unreachable('wrapReason: Expected "reason" to be a (possibly cloned) Error.'); switch (e.name) { case "AbortException": return new AbortException(e.message); case "MissingPDFException": return new MissingPDFException(e.message); case "PasswordException": return new PasswordException(e.message, e.code); case "UnexpectedResponseException": return new UnexpectedResponseException(e.message, e.status); case "UnknownErrorException": return new UnknownErrorException(e.message, e.details); default: return new UnknownErrorException(e.message, e.toString()); } } var MessageHandler = /** @class */ (function () { function MessageHandler(e, t, i) { var _this = this; _MessageHandler_instances.add(this); this.sourceName = e; this.targetName = t; this.comObj = i; this.callbackId = 1; this.streamId = 1; this.streamSinks = Object.create(null); this.streamControllers = Object.create(null); this.callbackCapabilities = Object.create(null); this.actionHandler = Object.create(null); this._onComObjOnMessage = function (e) { var t = e.data; if (t.targetName !== _this.sourceName) return; if (t.stream) { tslib_1.__classPrivateFieldGet(_this, _MessageHandler_instances, "m", _MessageHandler_O).call(_this, t); return; } if (t.callback) { var e_692 = t.callbackId, i_412 = _this.callbackCapabilities[e_692]; if (!i_412) throw new Error("Cannot resolve callback ".concat(e_692)); delete _this.callbackCapabilities[e_692]; if (t.callback === go) i_412.resolve(t.data); else { if (t.callback !== Io) throw new Error("Unexpected callback case"); i_412.reject(wrapReason(t.reason)); } return; } var a = _this.actionHandler[t.action]; if (!a) throw new Error("Unknown action from worker: ".concat(t.action)); if (t.callbackId) { var e_693 = _this.sourceName, s_224 = t.sourceName; new Promise((function (e) { e(a(t.data)); })).then((function (a) { i.postMessage({ sourceName: e_693, targetName: s_224, callback: go, callbackId: t.callbackId, data: a }); }), (function (a) { i.postMessage({ sourceName: e_693, targetName: s_224, callback: Io, callbackId: t.callbackId, reason: wrapReason(a) }); })); } else t.streamId ? tslib_1.__classPrivateFieldGet(_this, _MessageHandler_instances, "m", _MessageHandler_P).call(_this, t) : a(t.data); }; i.addEventListener("message", this._onComObjOnMessage); } MessageHandler.prototype.on = function (e, t) { var i = this.actionHandler; if (i[e]) throw new Error("There is already an actionName called \"".concat(e, "\"")); i[e] = t; }; MessageHandler.prototype.send = function (e, t, i) { this.comObj.postMessage({ sourceName: this.sourceName, targetName: this.targetName, action: e, data: t }, i); }; MessageHandler.prototype.sendWithPromise = function (e, t, i) { var a = this.callbackId++, s = Promise.withResolvers(); this.callbackCapabilities[a] = s; try { this.comObj.postMessage({ sourceName: this.sourceName, targetName: this.targetName, action: e, callbackId: a, data: t }, i); } catch (e) { s.reject(e); } return s.promise; }; MessageHandler.prototype.sendWithStream = function (e, t, i, a) { var _this = this; var s = this.streamId++, r = this.sourceName, n = this.targetName, o = this.comObj; return new ReadableStream({ start: function (i) { var g = Promise.withResolvers(); _this.streamControllers[s] = { controller: i, startCall: g, pullCall: null, cancelCall: null, isClosed: !1 }; o.postMessage({ sourceName: r, targetName: n, action: e, streamId: s, data: t, desiredSize: i.desiredSize }, a); return g.promise; }, pull: function (e) { var t = Promise.withResolvers(); _this.streamControllers[s].pullCall = t; o.postMessage({ sourceName: r, targetName: n, stream: Qo, streamId: s, desiredSize: e.desiredSize }); return t.promise; }, cancel: function (e) { assert(e instanceof Error, "cancel must have a valid reason"); var t = Promise.withResolvers(); _this.streamControllers[s].cancelCall = t; _this.streamControllers[s].isClosed = !0; o.postMessage({ sourceName: r, targetName: n, stream: co, streamId: s, reason: wrapReason(e) }); return t.promise; } }, i); }; MessageHandler.prototype.destroy = function () { this.comObj.removeEventListener("message", this._onComObjOnMessage); }; return MessageHandler; }()); _MessageHandler_instances = new WeakSet(), _MessageHandler_P = function _MessageHandler_P(e) { var t = e.streamId, i = this.sourceName, a = e.sourceName, s = this.comObj, r = this, n = this.actionHandler[e.action], o = { enqueue: function (e, r, n) { if (r === void 0) { r = 1; } if (this.isCancelled) return; var o = this.desiredSize; this.desiredSize -= r; if (o > 0 && this.desiredSize <= 0) { this.sinkCapability = Promise.withResolvers(); this.ready = this.sinkCapability.promise; } s.postMessage({ sourceName: i, targetName: a, stream: Co, streamId: t, chunk: e }, n); }, close: function () { if (!this.isCancelled) { this.isCancelled = !0; s.postMessage({ sourceName: i, targetName: a, stream: lo, streamId: t }); delete r.streamSinks[t]; } }, error: function (e) { assert(e instanceof Error, "error must have a valid reason"); if (!this.isCancelled) { this.isCancelled = !0; s.postMessage({ sourceName: i, targetName: a, stream: Bo, streamId: t, reason: wrapReason(e) }); } }, sinkCapability: Promise.withResolvers(), onPull: null, onCancel: null, isCancelled: !1, desiredSize: e.desiredSize, ready: null }; o.sinkCapability.resolve(); o.ready = o.sinkCapability.promise; this.streamSinks[t] = o; new Promise((function (t) { t(n(e.data, o)); })).then((function () { s.postMessage({ sourceName: i, targetName: a, stream: uo, streamId: t, success: !0 }); }), (function (e) { s.postMessage({ sourceName: i, targetName: a, stream: uo, streamId: t, reason: wrapReason(e) }); })); }, _MessageHandler_O = function _MessageHandler_O(e) { var t = e.streamId, i = this.sourceName, a = e.sourceName, s = this.comObj, r = this.streamControllers[t], n = this.streamSinks[t]; switch (e.stream) { case uo: e.success ? r.startCall.resolve() : r.startCall.reject(wrapReason(e.reason)); break; case Eo: e.success ? r.pullCall.resolve() : r.pullCall.reject(wrapReason(e.reason)); break; case Qo: if (!n) { s.postMessage({ sourceName: i, targetName: a, stream: Eo, streamId: t, success: !0 }); break; } n.desiredSize <= 0 && e.desiredSize > 0 && n.sinkCapability.resolve(); n.desiredSize = e.desiredSize; new Promise((function (e) { var _b; e((_b = n.onPull) === null || _b === void 0 ? void 0 : _b.call(n)); })).then((function () { s.postMessage({ sourceName: i, targetName: a, stream: Eo, streamId: t, success: !0 }); }), (function (e) { s.postMessage({ sourceName: i, targetName: a, stream: Eo, streamId: t, reason: wrapReason(e) }); })); break; case Co: assert(r, "enqueue should have stream controller"); if (r.isClosed) break; r.controller.enqueue(e.chunk); break; case lo: assert(r, "close should have stream controller"); if (r.isClosed) break; r.isClosed = !0; r.controller.close(); tslib_1.__classPrivateFieldGet(this, _MessageHandler_instances, "m", _MessageHandler_W).call(this, r, t); break; case Bo: assert(r, "error should have stream controller"); r.controller.error(wrapReason(e.reason)); tslib_1.__classPrivateFieldGet(this, _MessageHandler_instances, "m", _MessageHandler_W).call(this, r, t); break; case ho: e.success ? r.cancelCall.resolve() : r.cancelCall.reject(wrapReason(e.reason)); tslib_1.__classPrivateFieldGet(this, _MessageHandler_instances, "m", _MessageHandler_W).call(this, r, t); break; case co: if (!n) break; new Promise((function (t) { var _b; t((_b = n.onCancel) === null || _b === void 0 ? void 0 : _b.call(n, wrapReason(e.reason))); })).then((function () { s.postMessage({ sourceName: i, targetName: a, stream: ho, streamId: t, success: !0 }); }), (function (e) { s.postMessage({ sourceName: i, targetName: a, stream: ho, streamId: t, reason: wrapReason(e) }); })); n.sinkCapability.reject(wrapReason(e.reason)); n.isCancelled = !0; delete this.streamSinks[t]; break; default: throw new Error("Unexpected stream case"); } }, _MessageHandler_W = function _MessageHandler_W(e, t) { var _b, _k, _l; return tslib_1.__awaiter(this, void 0, void 0, function () { return tslib_1.__generator(this, function (_m) { switch (_m.label) { case 0: return [4 /*yield*/, Promise.allSettled([(_b = e.startCall) === null || _b === void 0 ? void 0 : _b.promise, (_k = e.pullCall) === null || _k === void 0 ? void 0 : _k.promise, (_l = e.cancelCall) === null || _l === void 0 ? void 0 : _l.promise])]; case 1: _m.sent(); delete this.streamControllers[t]; return [2 /*return*/]; } }); }); }; var PDFWorkerStream = /** @class */ (function () { function PDFWorkerStream(e) { this._msgHandler = e; this._contentLength = null; this._fullRequestReader = null; this._rangeRequestReaders = []; } PDFWorkerStream.prototype.getFullReader = function () { assert(!this._fullRequestReader, "PDFWorkerStream.getFullReader can only be called once."); this._fullRequestReader = new PDFWorkerStreamReader(this._msgHandler); return this._fullRequestReader; }; PDFWorkerStream.prototype.getRangeReader = function (e, t) { var i = new PDFWorkerStreamRangeReader(e, t, this._msgHandler); this._rangeRequestReaders.push(i); return i; }; PDFWorkerStream.prototype.cancelAllRequests = function (e) { var _b; (_b = this._fullRequestReader) === null || _b === void 0 ? void 0 : _b.cancel(e); for (var _k = 0, _l = this._rangeRequestReaders.slice(0); _k < _l.length; _k++) { var t_506 = _l[_k]; t_506.cancel(e); } }; return PDFWorkerStream; }()); var PDFWorkerStreamReader = /** @class */ (function () { function PDFWorkerStreamReader(e) { var _this = this; this._msgHandler = e; this.onProgress = null; this._contentLength = null; this._isRangeSupported = !1; this._isStreamingSupported = !1; var t = this._msgHandler.sendWithStream("GetReader"); this._reader = t.getReader(); this._headersReady = this._msgHandler.sendWithPromise("ReaderHeadersReady").then((function (e) { _this._isStreamingSupported = e.isStreamingSupported; _this._isRangeSupported = e.isRangeSupported; _this._contentLength = e.contentLength; })); } Object.defineProperty(PDFWorkerStreamReader.prototype, "headersReady", { get: function () { return this._headersReady; }, enumerable: false, configurable: true }); Object.defineProperty(PDFWorkerStreamReader.prototype, "contentLength", { get: function () { return this._contentLength; }, enumerable: false, configurable: true }); Object.defineProperty(PDFWorkerStreamReader.prototype, "isStreamingSupported", { get: function () { return this._isStreamingSupported; }, enumerable: false, configurable: true }); Object.defineProperty(PDFWorkerStreamReader.prototype, "isRangeSupported", { get: function () { return this._isRangeSupported; }, enumerable: false, configurable: true }); PDFWorkerStreamReader.prototype.read = function () { return tslib_1.__awaiter(this, void 0, void 0, function () { var _b, e, t; return tslib_1.__generator(this, function (_k) { switch (_k.label) { case 0: return [4 /*yield*/, this._reader.read()]; case 1: _b = _k.sent(), e = _b.value, t = _b.done; return [2 /*return*/, t ? { value: void 0, done: !0 } : { value: e.buffer, done: !1 }]; } }); }); }; PDFWorkerStreamReader.prototype.cancel = function (e) { this._reader.cancel(e); }; return PDFWorkerStreamReader; }()); var PDFWorkerStreamRangeReader = /** @class */ (function () { function PDFWorkerStreamRangeReader(e, t, i) { this._msgHandler = i; this.onProgress = null; var a = this._msgHandler.sendWithStream("GetRangeReader", { begin: e, end: t }); this._reader = a.getReader(); } Object.defineProperty(PDFWorkerStreamRangeReader.prototype, "isStreamingSupported", { get: function () { return !1; }, enumerable: false, configurable: true }); PDFWorkerStreamRangeReader.prototype.read = function () { return tslib_1.__awaiter(this, void 0, void 0, function () { var _b, e, t; return tslib_1.__generator(this, function (_k) { switch (_k.label) { case 0: return [4 /*yield*/, this._reader.read()]; case 1: _b = _k.sent(), e = _b.value, t = _b.done; return [2 /*return*/, t ? { value: void 0, done: !0 } : { value: e.buffer, done: !1 }]; } }); }); }; PDFWorkerStreamRangeReader.prototype.cancel = function (e) { this._reader.cancel(e); }; return PDFWorkerStreamRangeReader; }()); var WorkerTask = /** @class */ (function () { function WorkerTask(e) { this.name = e; this.terminated = !1; this._capability = Promise.withResolvers(); } Object.defineProperty(WorkerTask.prototype, "finished", { get: function () { return this._capability.promise; }, enumerable: false, configurable: true }); WorkerTask.prototype.finish = function () { this._capability.resolve(); }; WorkerTask.prototype.terminate = function () { this.terminated = !0; }; WorkerTask.prototype.ensureNotTerminated = function () { if (this.terminated) throw new Error("Worker task was terminated"); }; return WorkerTask; }()); var WorkerMessageHandler = /** @class */ (function () { function WorkerMessageHandler() { } WorkerMessageHandler.setup = function (e, t) { var i = !1; e.on("test", (function (t) { if (!i) { i = !0; e.send("test", t instanceof Uint8Array); } })); e.on("configure", (function (e) { !function setVerbosityLevel(e) { Number.isInteger(e) && (st = e); }(e.verbosity); })); e.on("GetDocRequest", (function (e) { return WorkerMessageHandler.createDocumentHandler(e, t); })); }; WorkerMessageHandler.createDocumentHandler = function (e, t) { var i, a = !1, s = null; var r = new Set, n = getVerbosityLevel(), o = e.docId, g = e.apiVersion, c = "4.3.136"; if (g !== c) throw new Error("The API version \"".concat(g, "\" does not match the Worker version \"").concat(c, "\".")); var h = []; for (var e_694 in []) h.push(e_694); if (h.length) throw new Error("The `Array.prototype` contains unexpected enumerable properties: " + h.join(", ") + "; thus breaking e.g. `for...in` iteration of `Array`s."); var l = o + "_worker"; var C = new MessageHandler(l, o, t); function ensureNotTerminated() { if (a) throw new Error("Worker was terminated"); } function startWorkerTask(e) { r.add(e); } function finishWorkerTask(e) { e.finish(); r.delete(e); } function loadDocument(e) { return tslib_1.__awaiter(this, void 0, void 0, function () { var t, e_695, _b, a, s, _k; var _l; return tslib_1.__generator(this, function (_m) { switch (_m.label) { case 0: return [4 /*yield*/, i.ensureDoc("checkHeader")]; case 1: _m.sent(); return [4 /*yield*/, i.ensureDoc("parseStartXRef")]; case 2: _m.sent(); return [4 /*yield*/, i.ensureDoc("parse", [e])]; case 3: _m.sent(); return [4 /*yield*/, i.ensureDoc("checkFirstPage", [e])]; case 4: _m.sent(); return [4 /*yield*/, i.ensureDoc("checkLastPage", [e])]; case 5: _m.sent(); return [4 /*yield*/, i.ensureDoc("isPureXfa")]; case 6: t = _m.sent(); if (!t) return [3 /*break*/, 8]; e_695 = new WorkerTask("loadXfaFonts"); startWorkerTask(e_695); return [4 /*yield*/, Promise.all([i.loadXfaFonts(C, e_695).catch((function (e) { })).then((function () { return finishWorkerTask(e_695); })), i.loadXfaImages()])]; case 7: _m.sent(); _m.label = 8; case 8: return [4 /*yield*/, Promise.all([i.ensureDoc("numPages"), i.ensureDoc("fingerprints")])]; case 9: _b = _m.sent(), a = _b[0], s = _b[1]; _l = { numPages: a, fingerprints: s }; if (!t) return [3 /*break*/, 11]; return [4 /*yield*/, i.ensureDoc("htmlForXfa")]; case 10: _k = _m.sent(); return [3 /*break*/, 12]; case 11: _k = null; _m.label = 12; case 12: return [2 /*return*/, (_l.htmlForXfa = _k, _l)]; } }); }); } function getPdfManager(_b) { var e = _b.data, t = _b.password, i = _b.disableAutoFetch, a = _b.rangeChunkSize, r = _b.length, n = _b.docBaseUrl, g = _b.enableXfa, c = _b.evaluatorOptions; var h = { source: null, disableAutoFetch: i, docBaseUrl: n, docId: o, enableXfa: g, evaluatorOptions: c, handler: C, length: r, password: t, rangeChunkSize: a }, l = Promise.withResolvers(); var Q; if (e) { try { h.source = e; Q = new LocalPdfManager(h); l.resolve(Q); } catch (e) { l.reject(e); } return l.promise; } var E, u = []; try { E = new PDFWorkerStream(C); } catch (e) { l.reject(e); return l.promise; } var d = E.getFullReader(); d.headersReady.then((function () { if (d.isRangeSupported) { h.source = E; h.length = d.contentLength; h.disableAutoFetch || (h.disableAutoFetch = d.isStreamingSupported); Q = new NetworkPdfManager(h); for (var _b = 0, u_15 = u; _b < u_15.length; _b++) { var e_696 = u_15[_b]; Q.sendProgressiveData(e_696); } u = []; l.resolve(Q); s = null; } })).catch((function (e) { l.reject(e); s = null; })); var f = 0; new Promise((function (e, t) { var readChunk = function (_b) { var e = _b.value, i = _b.done; try { ensureNotTerminated(); if (i) { Q || function () { var e = arrayBuffersToBytes(u); r && e.length !== r && warn("reported HTTP length is different from actual"); try { h.source = e; Q = new LocalPdfManager(h); l.resolve(Q); } catch (e) { l.reject(e); } u = []; }(); s = null; return; } f += e.byteLength; d.isStreamingSupported || C.send("DocProgress", { loaded: f, total: Math.max(f, d.contentLength || 0) }); Q ? Q.sendProgressiveData(e) : u.push(e); d.read().then(readChunk, t); } catch (e) { t(e); } }; d.read().then(readChunk, t); })).catch((function (e) { l.reject(e); s = null; })); s = function (e) { E.cancelAllRequests(e); }; return l.promise; } C.on("GetPage", (function (e) { return i.getPage(e.pageIndex).then((function (e) { return Promise.all([i.ensure(e, "rotate"), i.ensure(e, "ref"), i.ensure(e, "userUnit"), i.ensure(e, "view")]).then((function (_b) { var _k; var e = _b[0], t = _b[1], i = _b[2], a = _b[3]; return { rotate: e, ref: t, refStr: (_k = t === null || t === void 0 ? void 0 : t.toString()) !== null && _k !== void 0 ? _k : null, userUnit: i, view: a }; })); })); })); C.on("GetPageIndex", (function (e) { var t = Ref.get(e.num, e.gen); return i.ensureCatalog("getPageIndex", [t]); })); C.on("GetDestinations", (function (e) { return i.ensureCatalog("destinations"); })); C.on("GetDestination", (function (e) { return i.ensureCatalog("getDestination", [e.id]); })); C.on("GetPageLabels", (function (e) { return i.ensureCatalog("pageLabels"); })); C.on("GetPageLayout", (function (e) { return i.ensureCatalog("pageLayout"); })); C.on("GetPageMode", (function (e) { return i.ensureCatalog("pageMode"); })); C.on("GetViewerPreferences", (function (e) { return i.ensureCatalog("viewerPreferences"); })); C.on("GetOpenAction", (function (e) { return i.ensureCatalog("openAction"); })); C.on("GetAttachments", (function (e) { return i.ensureCatalog("attachments"); })); C.on("GetDocJSActions", (function (e) { return i.ensureCatalog("jsActions"); })); C.on("GetPageJSActions", (function (_b) { var e = _b.pageIndex; return i.getPage(e).then((function (e) { return i.ensure(e, "jsActions"); })); })); C.on("GetOutline", (function (e) { return i.ensureCatalog("documentOutline"); })); C.on("GetOptionalContentConfig", (function (e) { return i.ensureCatalog("optionalContentConfig"); })); C.on("GetPermissions", (function (e) { return i.ensureCatalog("permissions"); })); C.on("GetMetadata", (function (e) { return Promise.all([i.ensureDoc("documentInfo"), i.ensureCatalog("metadata")]); })); C.on("GetMarkInfo", (function (e) { return i.ensureCatalog("markInfo"); })); C.on("GetData", (function (e) { return i.requestLoadedStream().then((function (e) { return e.bytes; })); })); C.on("GetAnnotations", (function (_b) { var e = _b.pageIndex, t = _b.intent; return i.getPage(e).then((function (i) { var a = new WorkerTask("GetAnnotations: page ".concat(e)); startWorkerTask(a); return i.getAnnotationsData(C, a, t).then((function (e) { finishWorkerTask(a); return e; }), (function (e) { finishWorkerTask(a); throw e; })); })); })); C.on("GetFieldObjects", (function (e) { return i.ensureDoc("fieldObjects"); })); C.on("HasJSActions", (function (e) { return i.ensureDoc("hasJSActions"); })); C.on("GetCalculationOrderIds", (function (e) { return i.ensureDoc("calculationOrderIds"); })); C.on("SaveDocument", (function (_b) { var _k; var e = _b.isPureXfa, t = _b.numPages, a = _b.annotationStorage, s = _b.filename; return tslib_1.__awaiter(this, void 0, void 0, function () { var r, n, o, _l, g, c, h, l, Q, E, u, d, f, _m, e_697, t_507, _loop_7, _o, o_84, _p, a_334, s_225, _loop_8, e_698, p, m, y, w, b, D, F, e_699, t_508, S, e_700, t_509; var _this = this; return tslib_1.__generator(this, function (_q) { switch (_q.label) { case 0: r = [i.requestLoadedStream(), i.ensureCatalog("acroForm"), i.ensureCatalog("acroFormRef"), i.ensureDoc("startXRef"), i.ensureDoc("xref"), i.ensureDoc("linearization"), i.ensureCatalog("structTreeRoot")], n = [], o = e ? null : getNewAnnotationsMap(a); return [4 /*yield*/, Promise.all(r)]; case 1: _l = _q.sent(), g = _l[0], c = _l[1], h = _l[2], l = _l[3], Q = _l[4], E = _l[5], u = _l[6], d = Q.trailer.getRaw("Root") || null; if (!o) return [3 /*break*/, 6]; if (!u) return [3 /*break*/, 3]; return [4 /*yield*/, u.canUpdateStructTree({ pdfManager: i, xref: Q, newAnnotationsByPage: o })]; case 2: _m = (_q.sent()) && (f = u); return [3 /*break*/, 5]; case 3: return [4 /*yield*/, StructTreeRoot.canCreateStructureTree({ catalogRef: d, pdfManager: i, newAnnotationsByPage: o })]; case 4: _m = (_q.sent()) && (f = null); _q.label = 5; case 5: _m; e_697 = AnnotationFactory.generateImages(a.values(), Q, i.evaluatorOptions.isOffscreenCanvasSupported), t_507 = void 0 === f ? n : []; _loop_7 = function (a_334, s_225) { t_507.push(i.getPage(a_334).then((function (t) { var i = new WorkerTask("Save (editor): page ".concat(a_334)); return t.saveNewAnnotations(C, i, s_225, e_697).finally((function () { finishWorkerTask(i); })); }))); }; for (_o = 0, o_84 = o; _o < o_84.length; _o++) { _p = o_84[_o], a_334 = _p[0], s_225 = _p[1]; _loop_7(a_334, s_225); } null === f ? n.push(Promise.all(t_507).then((function (e) { return tslib_1.__awaiter(_this, void 0, void 0, function () { return tslib_1.__generator(this, function (_b) { switch (_b.label) { case 0: return [4 /*yield*/, StructTreeRoot.createStructureTree({ newAnnotationsByPage: o, xref: Q, catalogRef: d, pdfManager: i, newRefs: e })]; case 1: _b.sent(); return [2 /*return*/, e]; } }); }); }))) : f && n.push(Promise.all(t_507).then((function (e) { return tslib_1.__awaiter(_this, void 0, void 0, function () { return tslib_1.__generator(this, function (_b) { switch (_b.label) { case 0: return [4 /*yield*/, f.updateStructureTree({ newAnnotationsByPage: o, pdfManager: i, newRefs: e })]; case 1: _b.sent(); return [2 /*return*/, e]; } }); }); }))); _q.label = 6; case 6: if (e) n.push(i.serializeXfaData(a)); else { _loop_8 = function (e_698) { n.push(i.getPage(e_698).then((function (t) { var i = new WorkerTask("Save: page ".concat(e_698)); return t.save(C, i, a).finally((function () { finishWorkerTask(i); })); }))); }; for (e_698 = 0; e_698 < t; e_698++) { _loop_8(e_698); } } return [4 /*yield*/, Promise.all(n)]; case 7: p = _q.sent(); m = [], y = null; if (e) { y = p[0]; if (!y) return [2 /*return*/, g.bytes]; } else { m = p.flat(2); if (0 === m.length) return [2 /*return*/, g.bytes]; } w = h && c instanceof Dict && m.some((function (e) { return e.needAppearances; })), b = c instanceof Dict && c.get("XFA") || null; D = null, F = !1; if (Array.isArray(b)) { for (e_699 = 0, t_508 = b.length; e_699 < t_508; e_699 += 2) if ("datasets" === b[e_699]) { D = b[e_699 + 1]; F = !0; } null === D && (D = Q.getNewTemporaryRef()); } else b && warn("Unsupported XFA type."); S = Object.create(null); if (Q.trailer) { e_700 = Object.create(null), t_509 = Q.trailer.get("Info") || null; t_509 instanceof Dict && t_509.forEach((function (t, i) { "string" == typeof i && (e_700[t] = stringToPDFString(i)); })); S = { rootRef: d, encryptRef: Q.trailer.getRaw("Encrypt") || null, newRef: Q.getNewTemporaryRef(), infoRef: Q.trailer.getRaw("Info") || null, info: e_700, fileIds: Q.trailer.get("ID") || null, startXRef: E ? l : (_k = Q.lastXRefStreamPos) !== null && _k !== void 0 ? _k : l, filename: s }; } return [2 /*return*/, incrementalUpdate({ originalData: g.bytes, xrefInfo: S, newRefs: m, xref: Q, hasXfa: !!b, xfaDatasetsRef: D, hasXfaDatasetsEntry: F, needAppearances: w, acroFormRef: h, acroForm: c, xfaData: y, useXrefStream: isDict(Q.topDict, "XRef") }).finally((function () { Q.resetNewTemporaryRef(); }))]; } }); }); })); C.on("GetOperatorList", (function (e, t) { var a = e.pageIndex; i.getPage(a).then((function (i) { var s = new WorkerTask("GetOperatorList: page ".concat(a)); startWorkerTask(s); var r = n >= pA.INFOS ? Date.now() : 0; i.getOperatorList({ handler: C, sink: t, task: s, intent: e.intent, cacheKey: e.cacheKey, annotationStorage: e.annotationStorage }).then((function (e) { finishWorkerTask(s); r && info("page=".concat(a + 1, " - getOperatorList: time=").concat(Date.now() - r, "ms, len=").concat(e.length)); t.close(); }), (function (e) { finishWorkerTask(s); s.terminated || t.error(e); })); })); })); C.on("GetTextContent", (function (e, t) { var a = e.pageIndex, s = e.includeMarkedContent, r = e.disableNormalization; i.getPage(a).then((function (e) { var i = new WorkerTask("GetTextContent: page " + a); startWorkerTask(i); var o = n >= pA.INFOS ? Date.now() : 0; e.extractTextContent({ handler: C, task: i, sink: t, includeMarkedContent: s, disableNormalization: r }).then((function () { finishWorkerTask(i); o && info("page=".concat(a + 1, " - getTextContent: time=") + (Date.now() - o) + "ms"); t.close(); }), (function (e) { finishWorkerTask(i); i.terminated || t.error(e); })); })); })); C.on("GetStructTree", (function (e) { return i.getPage(e.pageIndex).then((function (e) { return i.ensure(e, "getStructTree"); })); })); C.on("FontFallback", (function (e) { return i.fontFallback(e.id, C); })); C.on("Cleanup", (function (e) { return i.cleanup(!0); })); C.on("Terminate", (function (e) { a = !0; var t = []; if (i) { i.terminate(new AbortException("Worker was terminated.")); var e_701 = i.cleanup(); t.push(e_701); i = null; } else clearGlobalCaches(); s && s(new AbortException("Worker was terminated.")); for (var _b = 0, r_189 = r; _b < r_189.length; _b++) { var e_702 = r_189[_b]; t.push(e_702.finished); e_702.terminate(); } return Promise.all(t).then((function () { C.destroy(); C = null; })); })); C.on("Ready", (function (t) { !function setupDoc(e) { function onSuccess(e) { ensureNotTerminated(); C.send("GetDoc", { pdfInfo: e }); } function onFailure(e) { ensureNotTerminated(); if (e instanceof PasswordException) { var t_510 = new WorkerTask("PasswordException: response ".concat(e.code)); startWorkerTask(t_510); C.sendWithPromise("PasswordRequest", e).then((function (_b) { var e = _b.password; finishWorkerTask(t_510); i.updatePassword(e); pdfManagerReady(); })).catch((function () { finishWorkerTask(t_510); C.send("DocException", e); })); } else e instanceof InvalidPDFException || e instanceof MissingPDFException || e instanceof UnexpectedResponseException || e instanceof UnknownErrorException ? C.send("DocException", e) : C.send("DocException", new UnknownErrorException(e.message, e.toString())); } function pdfManagerReady() { ensureNotTerminated(); loadDocument(!1).then(onSuccess, (function (e) { ensureNotTerminated(); e instanceof XRefParseException ? i.requestLoadedStream().then((function () { ensureNotTerminated(); loadDocument(!0).then(onSuccess, onFailure); })) : onFailure(e); })); } ensureNotTerminated(); getPdfManager(e).then((function (e) { if (a) { e.terminate(new AbortException("Worker was terminated.")); throw new Error("Worker was terminated"); } i = e; i.requestLoadedStream(!0).then((function (e) { C.send("DataLoaded", { length: e.bytes.byteLength }); })); })).then(pdfManagerReady, onFailure); }(e); e = null; })); return l; }; WorkerMessageHandler.initializeFromPort = function (e) { var t = new MessageHandler("worker", "main", e); WorkerMessageHandler.setup(t, e); t.send("ready", null); }; return WorkerMessageHandler; }()); "undefined" == typeof window && !t && "undefined" != typeof self && function isMessagePort(e) { return "function" == typeof e.postMessage && "onmessage" in e; }(self) && WorkerMessageHandler.initializeFromPort(self); var fo = __webpack_exports__.WorkerMessageHandler; exports.WorkerMessageHandler = fo; });