1/*! 2 * html2canvas 1.4.1 <https://html2canvas.hertzen.com> 3 * Copyright (c) 2022 Niklas von Hertzen <https://hertzen.com> 4 * Released under MIT License 5 */ 6/*! ***************************************************************************** 7Copyright (c) Microsoft Corporation. 8 9Permission to use, copy, modify, and/or distribute this software for any 10purpose with or without fee is hereby granted. 11 12THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH 13REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY 14AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, 15INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM 16LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR 17OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 18PERFORMANCE OF THIS SOFTWARE. 19***************************************************************************** */ 20var extendStatics = function(d, b) { 21 extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) { 22 d2.__proto__ = b2; 23 } || function(d2, b2) { 24 for (var p in b2) if (Object.prototype.hasOwnProperty.call(b2, p)) d2[p] = b2[p]; 25 }; 26 return extendStatics(d, b); 27}; 28function __extends(d, b) { 29 if (typeof b !== "function" && b !== null) 30 throw new TypeError("Class extends value " + String(b) + " is not a constructor or null"); 31 extendStatics(d, b); 32 function __() { 33 this.constructor = d; 34 } 35 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); 36} 37var __assign = function() { 38 __assign = Object.assign || function __assign2(t) { 39 for (var s, i = 1, n = arguments.length; i < n; i++) { 40 s = arguments[i]; 41 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; 42 } 43 return t; 44 }; 45 return __assign.apply(this, arguments); 46}; 47function __awaiter(thisArg, _arguments, P, generator) { 48 function adopt(value) { 49 return value instanceof P ? value : new P(function(resolve) { 50 resolve(value); 51 }); 52 } 53 return new (P || (P = Promise))(function(resolve, reject) { 54 function fulfilled(value) { 55 try { 56 step(generator.next(value)); 57 } catch (e2) { 58 reject(e2); 59 } 60 } 61 function rejected(value) { 62 try { 63 step(generator["throw"](value)); 64 } catch (e2) { 65 reject(e2); 66 } 67 } 68 function step(result) { 69 result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); 70 } 71 step((generator = generator.apply(thisArg, [])).next()); 72 }); 73} 74function __generator(thisArg, body) { 75 var _ = { label: 0, sent: function() { 76 if (t[0] & 1) throw t[1]; 77 return t[1]; 78 }, trys: [], ops: [] }, f2, y, t, g; 79 return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { 80 return this; 81 }), g; 82 function verb(n) { 83 return function(v) { 84 return step([n, v]); 85 }; 86 } 87 function step(op) { 88 if (f2) throw new TypeError("Generator is already executing."); 89 while (_) try { 90 if (f2 = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; 91 if (y = 0, t) op = [op[0] & 2, t.value]; 92 switch (op[0]) { 93 case 0: 94 case 1: 95 t = op; 96 break; 97 case 4: 98 _.label++; 99 return { value: op[1], done: false }; 100 case 5: 101 _.label++; 102 y = op[1]; 103 op = [0]; 104 continue; 105 case 7: 106 op = _.ops.pop(); 107 _.trys.pop(); 108 continue; 109 default: 110 if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { 111 _ = 0; 112 continue; 113 } 114 if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) { 115 _.label = op[1]; 116 break; 117 } 118 if (op[0] === 6 && _.label < t[1]) { 119 _.label = t[1]; 120 t = op; 121 break; 122 } 123 if (t && _.label < t[2]) { 124 _.label = t[2];
vendor: 4,196 bytes, lines 125-247
125 _.ops.push(op); 126 break; 127 } 128 if (t[2]) _.ops.pop(); 129 _.trys.pop(); 130 continue; 131 } 132 op = body.call(thisArg, _); 133 } catch (e2) { 134 op = [6, e2]; 135 y = 0; 136 } finally { 137 f2 = t = 0; 138 } 139 if (op[0] & 5) throw op[1]; 140 return { value: op[0] ? op[1] : void 0, done: true }; 141 } 142} 143function __spreadArray(to, from, pack2) { 144 if (arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { 145 if (ar || !(i in from)) { 146 if (!ar) ar = Array.prototype.slice.call(from, 0, i); 147 ar[i] = from[i]; 148 } 149 } 150 return to.concat(ar || from); 151} 152var Bounds = ( 153 /** @class */ 154 function() { 155 function Bounds2(left, top, width, height) { 156 this.left = left; 157 this.top = top; 158 this.width = width; 159 this.height = height; 160 } 161 Bounds2.prototype.add = function(x, y, w, h) { 162 return new Bounds2(this.left + x, this.top + y, this.width + w, this.height + h); 163 }; 164 Bounds2.fromClientRect = function(context, clientRect) { 165 return new Bounds2(clientRect.left + context.windowBounds.left, clientRect.top + context.windowBounds.top, clientRect.width, clientRect.height); 166 }; 167 Bounds2.fromDOMRectList = function(context, domRectList) { 168 var domRect = Array.from(domRectList).find(function(rect) { 169 return rect.width !== 0; 170 }); 171 return domRect ? new Bounds2(domRect.left + context.windowBounds.left, domRect.top + context.windowBounds.top, domRect.width, domRect.height) : Bounds2.EMPTY; 172 }; 173 Bounds2.EMPTY = new Bounds2(0, 0, 0, 0); 174 return Bounds2; 175 }() 176); 177var parseBounds = function(context, node) { 178 return Bounds.fromClientRect(context, node.getBoundingClientRect()); 179}; 180var parseDocumentSize = function(document2) { 181 var body = document2.body; 182 var documentElement = document2.documentElement; 183 if (!body || !documentElement) { 184 throw new Error("Unable to get document size"); 185 } 186 var width = Math.max(Math.max(body.scrollWidth, documentElement.scrollWidth), Math.max(body.offsetWidth, documentElement.offsetWidth), Math.max(body.clientWidth, documentElement.clientWidth)); 187 var height = Math.max(Math.max(body.scrollHeight, documentElement.scrollHeight), Math.max(body.offsetHeight, documentElement.offsetHeight), Math.max(body.clientHeight, documentElement.clientHeight)); 188 return new Bounds(0, 0, width, height); 189}; 190var toCodePoints$1 = function(str) { 191 var codePoints = []; 192 var i = 0; 193 var length = str.length; 194 while (i < length) { 195 var value = str.charCodeAt(i++); 196 if (value >= 55296 && value <= 56319 && i < length) { 197 var extra = str.charCodeAt(i++); 198 if ((extra & 64512) === 56320) { 199 codePoints.push(((value & 1023) << 10) + (extra & 1023) + 65536); 200 } else { 201 codePoints.push(value); 202 i--; 203 } 204 } else { 205 codePoints.push(value); 206 } 207 } 208 return codePoints; 209}; 210var fromCodePoint$1 = function() { 211 var codePoints = []; 212 for (var _i = 0; _i < arguments.length; _i++) { 213 codePoints[_i] = arguments[_i]; 214 } 215 if (String.fromCodePoint) { 216 return String.fromCodePoint.apply(String, codePoints); 217 } 218 var length = codePoints.length; 219 if (!length) { 220 return ""; 221 } 222 var codeUnits = []; 223 var index = -1; 224 var result = ""; 225 while (++index < length) { 226 var codePoint = codePoints[index]; 227 if (codePoint <= 65535) { 228 codeUnits.push(codePoint); 229 } else { 230 codePoint -= 65536; 231 codeUnits.push((codePoint >> 10) + 55296, codePoint % 1024 + 56320); 232 } 233 if (index + 1 === length || codeUnits.length > 16384) { 234 result += String.fromCharCode.apply(String, codeUnits); 235 codeUnits.length = 0; 236 } 237 } 238 return result; 239}; 240var chars$2 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; 241var lookup$2 = typeof Uint8Array === "undefined" ? [] : new Uint8Array(256); 242for (var i$2 = 0; i$2 < chars$2.length; i$2++) { 243 lookup$2[chars$2.charCodeAt(i$2)] = i$2; 244} 245var chars$1$1 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; 246var lookup$1$1 = typeof Uint8Array === "undefined" ? [] : new Uint8Array(256); 247for (var i$1$1 = 0; i$1$1 < chars$1$1.length; i$1$1++) {
vendor: 5,117 bytes, lines 248-369
248 lookup$1$1[chars$1$1.charCodeAt(i$1$1)] = i$1$1; 249} 250var decode$1 = function(base642) { 251 var bufferLength = base642.length * 0.75, len = base642.length, i, p = 0, encoded1, encoded2, encoded3, encoded4; 252 if (base642[base642.length - 1] === "=") { 253 bufferLength--; 254 if (base642[base642.length - 2] === "=") { 255 bufferLength--; 256 } 257 } 258 var buffer = typeof ArrayBuffer !== "undefined" && typeof Uint8Array !== "undefined" && typeof Uint8Array.prototype.slice !== "undefined" ? new ArrayBuffer(bufferLength) : new Array(bufferLength); 259 var bytes = Array.isArray(buffer) ? buffer : new Uint8Array(buffer); 260 for (i = 0; i < len; i += 4) { 261 encoded1 = lookup$1$1[base642.charCodeAt(i)]; 262 encoded2 = lookup$1$1[base642.charCodeAt(i + 1)]; 263 encoded3 = lookup$1$1[base642.charCodeAt(i + 2)]; 264 encoded4 = lookup$1$1[base642.charCodeAt(i + 3)]; 265 bytes[p++] = encoded1 << 2 | encoded2 >> 4; 266 bytes[p++] = (encoded2 & 15) << 4 | encoded3 >> 2; 267 bytes[p++] = (encoded3 & 3) << 6 | encoded4 & 63; 268 } 269 return buffer; 270}; 271var polyUint16Array$1 = function(buffer) { 272 var length = buffer.length; 273 var bytes = []; 274 for (var i = 0; i < length; i += 2) { 275 bytes.push(buffer[i + 1] << 8 | buffer[i]); 276 } 277 return bytes; 278}; 279var polyUint32Array$1 = function(buffer) { 280 var length = buffer.length; 281 var bytes = []; 282 for (var i = 0; i < length; i += 4) { 283 bytes.push(buffer[i + 3] << 24 | buffer[i + 2] << 16 | buffer[i + 1] << 8 | buffer[i]); 284 } 285 return bytes; 286}; 287var UTRIE2_SHIFT_2$1 = 5; 288var UTRIE2_SHIFT_1$1 = 6 + 5; 289var UTRIE2_INDEX_SHIFT$1 = 2; 290var UTRIE2_SHIFT_1_2$1 = UTRIE2_SHIFT_1$1 - UTRIE2_SHIFT_2$1; 291var UTRIE2_LSCP_INDEX_2_OFFSET$1 = 65536 >> UTRIE2_SHIFT_2$1; 292var UTRIE2_DATA_BLOCK_LENGTH$1 = 1 << UTRIE2_SHIFT_2$1; 293var UTRIE2_DATA_MASK$1 = UTRIE2_DATA_BLOCK_LENGTH$1 - 1; 294var UTRIE2_LSCP_INDEX_2_LENGTH$1 = 1024 >> UTRIE2_SHIFT_2$1; 295var UTRIE2_INDEX_2_BMP_LENGTH$1 = UTRIE2_LSCP_INDEX_2_OFFSET$1 + UTRIE2_LSCP_INDEX_2_LENGTH$1; 296var UTRIE2_UTF8_2B_INDEX_2_OFFSET$1 = UTRIE2_INDEX_2_BMP_LENGTH$1; 297var UTRIE2_UTF8_2B_INDEX_2_LENGTH$1 = 2048 >> 6; 298var UTRIE2_INDEX_1_OFFSET$1 = UTRIE2_UTF8_2B_INDEX_2_OFFSET$1 + UTRIE2_UTF8_2B_INDEX_2_LENGTH$1; 299var UTRIE2_OMITTED_BMP_INDEX_1_LENGTH$1 = 65536 >> UTRIE2_SHIFT_1$1; 300var UTRIE2_INDEX_2_BLOCK_LENGTH$1 = 1 << UTRIE2_SHIFT_1_2$1; 301var UTRIE2_INDEX_2_MASK$1 = UTRIE2_INDEX_2_BLOCK_LENGTH$1 - 1; 302var slice16$1 = function(view, start, end) { 303 if (view.slice) { 304 return view.slice(start, end); 305 } 306 return new Uint16Array(Array.prototype.slice.call(view, start, end)); 307}; 308var slice32$1 = function(view, start, end) { 309 if (view.slice) { 310 return view.slice(start, end); 311 } 312 return new Uint32Array(Array.prototype.slice.call(view, start, end)); 313}; 314var createTrieFromBase64$1 = function(base642, _byteLength) { 315 var buffer = decode$1(base642); 316 var view32 = Array.isArray(buffer) ? polyUint32Array$1(buffer) : new Uint32Array(buffer); 317 var view16 = Array.isArray(buffer) ? polyUint16Array$1(buffer) : new Uint16Array(buffer); 318 var headerLength = 24; 319 var index = slice16$1(view16, headerLength / 2, view32[4] / 2); 320 var data = view32[5] === 2 ? slice16$1(view16, (headerLength + view32[4]) / 2) : slice32$1(view32, Math.ceil((headerLength + view32[4]) / 4)); 321 return new Trie$1(view32[0], view32[1], view32[2], view32[3], index, data); 322}; 323var Trie$1 = ( 324 /** @class */ 325 function() { 326 function Trie2(initialValue, errorValue, highStart, highValueIndex, index, data) { 327 this.initialValue = initialValue; 328 this.errorValue = errorValue; 329 this.highStart = highStart; 330 this.highValueIndex = highValueIndex; 331 this.index = index; 332 this.data = data; 333 } 334 Trie2.prototype.get = function(codePoint) { 335 var ix; 336 if (codePoint >= 0) { 337 if (codePoint < 55296 || codePoint > 56319 && codePoint <= 65535) { 338 ix = this.index[codePoint >> UTRIE2_SHIFT_2$1]; 339 ix = (ix << UTRIE2_INDEX_SHIFT$1) + (codePoint & UTRIE2_DATA_MASK$1); 340 return this.data[ix]; 341 } 342 if (codePoint <= 65535) { 343 ix = this.index[UTRIE2_LSCP_INDEX_2_OFFSET$1 + (codePoint - 55296 >> UTRIE2_SHIFT_2$1)]; 344 ix = (ix << UTRIE2_INDEX_SHIFT$1) + (codePoint & UTRIE2_DATA_MASK$1); 345 return this.data[ix]; 346 } 347 if (codePoint < this.highStart) { 348 ix = UTRIE2_INDEX_1_OFFSET$1 - UTRIE2_OMITTED_BMP_INDEX_1_LENGTH$1 + (codePoint >> UTRIE2_SHIFT_1$1); 349 ix = this.index[ix]; 350 ix += codePoint >> UTRIE2_SHIFT_2$1 & UTRIE2_INDEX_2_MASK$1; 351 ix = this.index[ix]; 352 ix = (ix << UTRIE2_INDEX_SHIFT$1) + (codePoint & UTRIE2_DATA_MASK$1); 353 return this.data[ix]; 354 } 355 if (codePoint <= 1114111) { 356 return this.data[this.highValueIndex]; 357 } 358 } 359 return this.errorValue; 360 }; 361 return Trie2; 362 }() 363); 364var chars$3 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; 365var lookup$3 = typeof Uint8Array === "undefined" ? [] : new Uint8Array(256); 366for (var i$3 = 0; i$3 < chars$3.length; i$3++) { 367 lookup$3[chars$3.charCodeAt(i$3)] = i$3; 368} 369var base64$1
vendor: 51,801 bytes, line 369
369 = "KwAAAAAAAAAACA4AUD0AADAgAAACAAAAAAAIABAAGABAAEgAUABYAGAAaABgAGgAYgBqAF8AZwBgAGgAcQB5AHUAfQCFAI0AlQCdAKIAqgCyALoAYABoAGAAaABgAGgAwgDKAGAAaADGAM4A0wDbAOEA6QDxAPkAAQEJAQ8BFwF1AH0AHAEkASwBNAE6AUIBQQFJAVEBWQFhAWgBcAF4ATAAgAGGAY4BlQGXAZ8BpwGvAbUBvQHFAc0B0wHbAeMB6wHxAfkBAQIJAvEBEQIZAiECKQIxAjgCQAJGAk4CVgJeAmQCbAJ0AnwCgQKJApECmQKgAqgCsAK4ArwCxAIwAMwC0wLbAjAA4wLrAvMC+AIAAwcDDwMwABcDHQMlAy0DNQN1AD0DQQNJA0kDSQNRA1EDVwNZA1kDdQB1AGEDdQBpA20DdQN1AHsDdQCBA4kDkQN1AHUAmQOhA3UAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AKYDrgN1AHUAtgO+A8YDzgPWAxcD3gPjA+sD8wN1AHUA+wMDBAkEdQANBBUEHQQlBCoEFwMyBDgEYABABBcDSARQBFgEYARoBDAAcAQzAXgEgASIBJAEdQCXBHUAnwSnBK4EtgS6BMIEyAR1AHUAdQB1AHUAdQCVANAEYABgAGAAYABgAGAAYABgANgEYADcBOQEYADsBPQE/AQEBQwFFAUcBSQFLAU0BWQEPAVEBUsFUwVbBWAAYgVgAGoFcgV6BYIFigWRBWAAmQWfBaYFYABgAGAAYABgAKoFYACxBbAFuQW6BcEFwQXHBcEFwQXPBdMF2wXjBeoF8gX6BQIGCgYSBhoGIgYqBjIGOgZgAD4GRgZMBmAAUwZaBmAAYABgAGAAYABgAGAAYABgAGAAYABgAGIGYABpBnAGYABgAGAAYABgAGAAYABgAGAAYAB4Bn8GhQZgAGAAYAB1AHcDFQSLBmAAYABgAJMGdQA9A3UAmwajBqsGqwaVALMGuwbDBjAAywbSBtIG1QbSBtIG0gbSBtIG0gbdBuMG6wbzBvsGAwcLBxMHAwcbByMHJwcsBywHMQcsB9IGOAdAB0gHTgfSBkgHVgfSBtIG0gbSBtIG0gbSBtIG0gbSBiwHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAdgAGAALAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAdbB2MHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsB2kH0gZwB64EdQB1AHUAdQB1AHUAdQB1AHUHfQdgAIUHjQd1AHUAlQedB2AAYAClB6sHYACzB7YHvgfGB3UAzgfWBzMB3gfmB1EB7gf1B/0HlQENAQUIDQh1ABUIHQglCBcDLQg1CD0IRQhNCEEDUwh1AHUAdQBbCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIaQhjCGQIZQhmCGcIaAhpCGMIZAhlCGYIZwhoCGkIYwhkCGUIZghnCGgIcAh3CHoIMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIgggwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAALAcsBywHLAcsBywHLAcsBywHLAcsB4oILAcsB44I0gaWCJ4Ipgh1AHUAqgiyCHUAdQB1AHUAdQB1AHUAdQB1AHUAtwh8AXUAvwh1AMUIyQjRCNkI4AjoCHUAdQB1AO4I9gj+CAYJDgkTCS0HGwkjCYIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiCCIIIggiAAIAAAAFAAYABgAGIAXwBgAHEAdQBFAJUAogCyAKAAYABgAEIA4ABGANMA4QDxAMEBDwE1AFwBLAE6AQEBUQF4QkhCmEKoQrhCgAHIQsAB0MLAAcABwAHAAeDC6ABoAHDCwMMAAcABwAHAAdDDGMMAAcAB6MM4wwjDWMNow3jDaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAEjDqABWw6bDqABpg6gAaABoAHcDvwOPA+gAaABfA/8DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DvwO/A78DpcPAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcAB9cPKwkyCToJMAB1AHUAdQBCCUoJTQl1AFUJXAljCWcJawkwADAAMAAwAHMJdQB2CX4JdQCECYoJjgmWCXUAngkwAGAAYABxAHUApgn3A64JtAl1ALkJdQDACTAAMAAwADAAdQB1AHUAdQB1AHUAdQB1AHUAowYNBMUIMAAwADAAMADICcsJ0wnZCRUE4QkwAOkJ8An4CTAAMAB1AAAKvwh1AAgKDwoXCh8KdQAwACcKLgp1ADYKqAmICT4KRgowADAAdQB1AE4KMAB1AFYKdQBeCnUAZQowADAAMAAwADAAMAAwADAAMAAVBHUAbQowADAAdQC5CXUKMAAwAHwBxAijBogEMgF9CoQKiASMCpQKmgqIBKIKqgquCogEDQG2Cr4KxgrLCjAAMADTCtsKCgHjCusK8Qr5CgELMAAwADAAMAB1AIsECQsRC3UANAEZCzAAMAAwADAAMAB1ACELKQswAHUANAExCzkLdQBBC0kLMABRC1kLMAAwADAAMAAwADAAdQBhCzAAMAAwAGAAYABpC3ELdwt/CzAAMACHC4sLkwubC58Lpwt1AK4Ltgt1APsDMAAwADAAMAAwADAAMAAwAL4LwwvLC9IL1wvdCzAAMADlC+kL8Qv5C/8LSQswADAAMAAwADAAMAAwADAAMAAHDDAAMAAwADAAMAAODBYMHgx1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1ACYMMAAwADAAdQB1AHUALgx1AHUAdQB1AHUAdQA2DDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AD4MdQBGDHUAdQB1AHUAdQB1AEkMdQB1AHUAdQB1AFAMMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQBYDHUAdQB1AF8MMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUA+wMVBGcMMAAwAHwBbwx1AHcMfwyHDI8MMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAYABgAJcMMAAwADAAdQB1AJ8MlQClDDAAMACtDCwHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsB7UMLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHdQB1AHUAdQB1AHUAdQB1AHUAdQB1AHUAdQB1AA0EMAC9DDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAsBywHLAcsBywHLAcsBywHLQcwAMEMyAwsBywHLAcsBywHLAcsBywHLAcsBywHzAwwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAHUAdQB1ANQM2QzhDDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMABgAGAAYABgAGAAYABgAOkMYADxDGAA+AwADQYNYABhCWAAYAAODTAAMAAwADAAFg1gAGAAHg37AzAAMAAwADAAYABgACYNYAAsDTQNPA1gAEMNPg1LDWAAYABgAGAAYABgAGAAYABgAGAAUg1aDYsGVglhDV0NcQBnDW0NdQ15DWAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAlQCBDZUAiA2PDZcNMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAnw2nDTAAMAAwADAAMAAwAHUArw23DTAAMAAwADAAMAAwADAAMAAwADAAMAB1AL8NMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAB1AHUAdQB1AHUAdQDHDTAAYABgAM8NMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAA1w11ANwNMAAwAD0B5A0wADAAMAAwADAAMADsDfQN/A0EDgwOFA4wABsOMAAwADAAMAAwADAAMAAwANIG0gbSBtIG0gbSBtIG0gYjDigOwQUuDsEFMw7SBjoO0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGQg5KDlIOVg7SBtIGXg5lDm0OdQ7SBtIGfQ6EDooOjQ6UDtIGmg6hDtIG0gaoDqwO0ga0DrwO0gZgAGAAYADEDmAAYAAkBtIGzA5gANIOYADaDokO0gbSBt8O5w7SBu8O0gb1DvwO0gZgAGAAxA7SBtIG0gbSBtIGYABgAGAAYAAED2AAsAUMD9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGFA8sBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAccD9IGLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHJA8sBywHLAcsBywHLAccDywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywPLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAc0D9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAccD9IG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIGFA8sBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHLAcsBywHPA/SBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gbSBtIG0gYUD0QPlQCVAJUAMAAwADAAMACVAJUAlQCVAJUAlQCVAEwPMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAA//8EAAQABAAEAAQABAAEAAQABAANAAMAAQABAAIABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQACgATABcAHgAbABoAHgAXABYAEgAeABsAGAAPABgAHABLAEsASwBLAEsASwBLAEsASwBLABgAGAAeAB4AHgATAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQABYAGwASAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAWAA0AEQAeAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAFAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAJABYAGgAbABsAGwAeAB0AHQAeAE8AFwAeAA0AHgAeABoAGwBPAE8ADgBQAB0AHQAdAE8ATwAXAE8ATwBPABYAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAFAAUABQAFAAUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AHgAeAFAATwBAAE8ATwBPAEAATwBQAFAATwBQAB4AHgAeAB4AHgAeAB0AHQAdAB0AHgAdAB4ADgBQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgBQAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAJAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAkACQAJAAkACQAJAAkABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAFAAHgAeAB4AKwArAFAAUABQAFAAGABQACsAKwArACsAHgAeAFAAHgBQAFAAUAArAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAUAAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAYAA0AKwArAB4AHgAbACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQADQAEAB4ABAAEAB4ABAAEABMABAArACsAKwArACsAKwArACsAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAKwArACsAKwBWAFYAVgBWAB4AHgArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AGgAaABoAGAAYAB4AHgAEAAQABAAEAAQABAAEAAQABAAEAAQAEwAEACsAEwATAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABLAEsASwBLAEsASwBLAEsASwBLABoAGQAZAB4AUABQAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQABMAUAAEAAQABAAEAAQABAAEAB4AHgAEAAQABAAEAAQABABQAFAABAAEAB4ABAAEAAQABABQAFAASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUAAeAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAFAABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQAUABQAB4AHgAYABMAUAArACsABAAbABsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAFAABAAEAAQABAAEAFAABAAEAAQAUAAEAAQABAAEAAQAKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAArACsAHgArAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAUAAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAABAAEAA0ADQBLAEsASwBLAEsASwBLAEsASwBLAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUAArACsAKwBQAFAAUABQACsAKwAEAFAABAAEAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABABQACsAKwArACsAKwArACsAKwAEACsAKwArACsAUABQACsAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAFAAUAAaABoAUABQAFAAUABQAEwAHgAbAFAAHgAEACsAKwAEAAQABAArAFAAUABQAFAAUABQACsAKwArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQACsAUABQACsAKwAEACsABAAEAAQABAAEACsAKwArACsABAAEACsAKwAEAAQABAArACsAKwAEACsAKwArACsAKwArACsAUABQAFAAUAArAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLAAQABABQAFAAUAAEAB4AKwArACsAKwArACsAKwArACsAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQACsAKwAEAFAABAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAArACsAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAB4AGwArACsAKwArACsAKwArAFAABAAEAAQABAAEAAQAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABAArACsAKwArACsAKwArAAQABAAEACsAKwArACsAUABQACsAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAB4AUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAAQAUAArAFAAUABQAFAAUABQACsAKwArAFAAUABQACsAUABQAFAAUAArACsAKwBQAFAAKwBQACsAUABQACsAKwArAFAAUAArACsAKwBQAFAAUAArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArAAQABAAEAAQABAArACsAKwAEAAQABAArAAQABAAEAAQAKwArAFAAKwArACsAKwArACsABAArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAHgAeAB4AHgAeAB4AGwAeACsAKwArACsAKwAEAAQABAAEAAQAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAUAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAAEACsAKwArACsAKwArACsABAAEACsAUABQAFAAKwArACsAKwArAFAAUAAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAKwAOAFAAUABQAFAAUABQAFAAHgBQAAQABAAEAA4AUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAKwArAAQAUAAEAAQABAAEAAQABAAEACsABAAEAAQAKwAEAAQABAAEACsAKwArACsAKwArACsABAAEACsAKwArACsAKwArACsAUAArAFAAUAAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwBQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAFAABAAEAAQABAAEAAQABAArAAQABAAEACsABAAEAAQABABQAB4AKwArACsAKwBQAFAAUAAEAFAAUABQAFAAUABQAFAAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAFAAUABQAFAAUABQAFAAUABQABoAUABQAFAAUABQAFAAKwAEAAQABAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQACsAUAArACsAUABQAFAAUABQAFAAUAArACsAKwAEACsAKwArACsABAAEAAQABAAEAAQAKwAEACsABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArAAQABAAeACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAAqAFwAXAAqACoAKgAqACoAKgAqACsAKwArACsAGwBcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAeAEsASwBLAEsASwBLAEsASwBLAEsADQANACsAKwArACsAKwBcAFwAKwBcACsAXABcAFwAXABcACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACsAXAArAFwAXABcAFwAXABcAFwAXABcAFwAKgBcAFwAKgAqACoAKgAqACoAKgAqACoAXAArACsAXABcAFwAXABcACsAXAArACoAKgAqACoAKgAqACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwBcAFwAXABcAFAADgAOAA4ADgAeAA4ADgAJAA4ADgANAAkAEwATABMAEwATAAkAHgATAB4AHgAeAAQABAAeAB4AHgAeAB4AHgBLAEsASwBLAEsASwBLAEsASwBLAFAAUABQAFAAUABQAFAAUABQAFAADQAEAB4ABAAeAAQAFgARABYAEQAEAAQAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQADQAEAAQABAAEAAQADQAEAAQAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArAA0ADQAeAB4AHgAeAB4AHgAEAB4AHgAeAB4AHgAeACsAHgAeAA4ADgANAA4AHgAeAB4AHgAeAAkACQArACsAKwArACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgBcAEsASwBLAEsASwBLAEsASwBLAEsADQANAB4AHgAeAB4AXABcAFwAXABcAFwAKgAqACoAKgBcAFwAXABcACoAKgAqAFwAKgAqACoAXABcACoAKgAqACoAKgAqACoAXABcAFwAKgAqACoAKgBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKgAqAFwAKgBLAEsASwBLAEsASwBLAEsASwBLACoAKgAqACoAKgAqAFAAUABQAFAAUABQACsAUAArACsAKwArACsAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgBQAFAAUABQAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUAArACsAUABQAFAAUABQAFAAUAArAFAAKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAKwBQACsAUABQAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsABAAEAAQAHgANAB4AHgAeAB4AHgAeAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUAArACsADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAANAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAWABEAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAA0ADQANAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAANAA0AKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUAArAAQABAArACsAKwArACsAKwArACsAKwArACsAKwBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqAA0ADQAVAFwADQAeAA0AGwBcACoAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwAeAB4AEwATAA0ADQAOAB4AEwATAB4ABAAEAAQACQArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUAAEAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAHgArACsAKwATABMASwBLAEsASwBLAEsASwBLAEsASwBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAArACsAXABcAFwAXABcACsAKwArACsAKwArACsAKwArACsAKwBcAFwAXABcAFwAXABcAFwAXABcAFwAXAArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAXAArACsAKwAqACoAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAArACsAHgAeAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAqACoAKwAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKwArAAQASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArACoAKgAqACoAKgAqACoAXAAqACoAKgAqACoAKgArACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABABQAFAAUABQAFAAUABQACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwANAA0AHgANAA0ADQANAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAEAAQAHgAeAB4AHgAeAB4AHgAeAB4AKwArACsABAAEAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwAeAB4AHgAeAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArAA0ADQANAA0ADQBLAEsASwBLAEsASwBLAEsASwBLACsAKwArAFAAUABQAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAA0ADQBQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUAAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArAAQABAAEAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAAQAUABQAFAAUABQAFAABABQAFAABAAEAAQAUAArACsAKwArACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsABAAEAAQABAAEAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAKwBQACsAUAArAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgBQAB4AHgAeAFAAUABQACsAHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQACsAKwAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQACsAHgAeAB4AHgAeAB4AHgAOAB4AKwANAA0ADQANAA0ADQANAAkADQANAA0ACAAEAAsABAAEAA0ACQANAA0ADAAdAB0AHgAXABcAFgAXABcAFwAWABcAHQAdAB4AHgAUABQAFAANAAEAAQAEAAQABAAEAAQACQAaABoAGgAaABoAGgAaABoAHgAXABcAHQAVABUAHgAeAB4AHgAeAB4AGAAWABEAFQAVABUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ADQAeAA0ADQANAA0AHgANAA0ADQAHAB4AHgAeAB4AKwAEAAQABAAEAAQABAAEAAQABAAEAFAAUAArACsATwBQAFAAUABQAFAAHgAeAB4AFgARAE8AUABPAE8ATwBPAFAAUABQAFAAUAAeAB4AHgAWABEAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArABsAGwAbABsAGwAbABsAGgAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGgAbABsAGwAbABoAGwAbABoAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAHgAeAFAAGgAeAB0AHgBQAB4AGgAeAB4AHgAeAB4AHgAeAB4AHgBPAB4AUAAbAB4AHgBQAFAAUABQAFAAHgAeAB4AHQAdAB4AUAAeAFAAHgBQAB4AUABPAFAAUAAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAHgBQAFAAUABQAE8ATwBQAFAAUABQAFAATwBQAFAATwBQAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAFAAUABQAFAATwBPAE8ATwBPAE8ATwBPAE8ATwBQAFAAUABQAFAAUABQAFAAUAAeAB4AUABQAFAAUABPAB4AHgArACsAKwArAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHQAdAB4AHgAeAB0AHQAeAB4AHQAeAB4AHgAdAB4AHQAbABsAHgAdAB4AHgAeAB4AHQAeAB4AHQAdAB0AHQAeAB4AHQAeAB0AHgAdAB0AHQAdAB0AHQAeAB0AHgAeAB4AHgAeAB0AHQAdAB0AHgAeAB4AHgAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHgAeAB0AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHgAeAB0AHQAdAB0AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAeAB4AHgAdAB4AHgAeAB4AHgAeAB4AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABYAEQAWABEAHgAeAB4AHgAeAB4AHQAeAB4AHgAeAB4AHgAeACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAWABEAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAFAAHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAeAB4AHQAdAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB4AHQAdAB4AHgAeAB4AHQAdAB4AHgAeAB4AHQAdAB0AHgAeAB0AHgAeAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlAB4AHQAdAB4AHgAdAB4AHgAeAB4AHQAdAB4AHgAeAB4AJQAlAB0AHQAlAB4AJQAlACUAIAAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAeAB4AHgAeAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHgAdAB0AHQAeAB0AJQAdAB0AHgAdAB0AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAdAB0AHQAdACUAHgAlACUAJQAdACUAJQAdAB0AHQAlACUAHQAdACUAHQAdACUAJQAlAB4AHQAeAB4AHgAeAB0AHQAlAB0AHQAdAB0AHQAdACUAJQAlACUAJQAdACUAJQAgACUAHQAdACUAJQAlACUAJQAlACUAJQAeAB4AHgAlACUAIAAgACAAIAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AFwAXABcAFwAXABcAHgATABMAJQAeAB4AHgAWABEAFgARABYAEQAWABEAFgARABYAEQAWABEATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABYAEQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAWABEAFgARABYAEQAWABEAFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFgARABYAEQAWABEAFgARABYAEQAWABEAFgARABYAEQAWABEAFgARABYAEQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAWABEAFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAEAAQABAAeAB4AKwArACsAKwArABMADQANAA0AUAATAA0AUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAUAANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAA0ADQANAA0ADQANAA0ADQAeAA0AFgANAB4AHgAXABcAHgAeABcAFwAWABEAFgARABYAEQAWABEADQANAA0ADQATAFAADQANAB4ADQANAB4AHgAeAB4AHgAMAAwADQANAA0AHgANAA0AFgANAA0ADQANAA0ADQANAA0AHgANAB4ADQANAB4AHgAeACsAKwArACsAKwArACsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwArACsAKwArACsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArAA0AEQARACUAJQBHAFcAVwAWABEAFgARABYAEQAWABEAFgARACUAJQAWABEAFgARABYAEQAWABEAFQAWABEAEQAlAFcAVwBXAFcAVwBXAFcAVwBXAAQABAAEAAQABAAEACUAVwBXAFcAVwA2ACUAJQBXAFcAVwBHAEcAJQAlACUAKwBRAFcAUQBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFEAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBRAFcAUQBXAFEAVwBXAFcAVwBXAFcAUQBXAFcAVwBXAFcAVwBRAFEAKwArAAQABAAVABUARwBHAFcAFQBRAFcAUQBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBRAFcAVwBXAFcAVwBXAFEAUQBXAFcAVwBXABUAUQBHAEcAVwArACsAKwArACsAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwAlACUAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACsAKwArACsAKwArACsAKwArACsAKwArAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBPAE8ATwBPAE8ATwBPAE8AJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAEcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAADQATAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABLAEsASwBLAEsASwBLAEsASwBLAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAABAAEAAQABAAeAAQABAAEAAQABAAEAAQABAAEAAQAHgBQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUABQAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAeAA0ADQANAA0ADQArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAB4AHgAeAB4AHgAeAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AUABQAFAAUABQAFAAUABQAFAAUABQAAQAUABQAFAABABQAFAAUABQAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAeAB4AHgAeAAQAKwArACsAUABQAFAAUABQAFAAHgAeABoAHgArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAADgAOABMAEwArACsAKwArACsAKwArACsABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwANAA0ASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAFAAUAAeAB4AHgBQAA4AUABQAAQAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAA0ADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArAB4AWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYACsAKwArAAQAHgAeAB4AHgAeAB4ADQANAA0AHgAeAB4AHgArAFAASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArAB4AHgBcAFwAXABcAFwAKgBcAFwAXABcAFwAXABcAFwAXABcAEsASwBLAEsASwBLAEsASwBLAEsAXABcAFwAXABcACsAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArAFAAUABQAAQAUABQAFAAUABQAFAAUABQAAQABAArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAHgANAA0ADQBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAXAAqACoAKgBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAAqAFwAKgAqACoAXABcACoAKgBcAFwAXABcAFwAKgAqAFwAKgBcACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcACoAKgBQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAA0ADQBQAFAAUAAEAAQAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUAArACsAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQADQAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAVABVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBUAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVACsAKwArACsAKwArACsAKwArACsAKwArAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAKwArACsAKwBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAKwArACsAKwAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAKwArACsAKwArAFYABABWAFYAVgBWAFYAVgBWAFYAVgBWAB4AVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgArAFYAVgBWAFYAVgArAFYAKwBWAFYAKwBWAFYAKwBWAFYAVgBWAFYAVgBWAFYAVgBWAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAEQAWAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAaAB4AKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAGAARABEAGAAYABMAEwAWABEAFAArACsAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACUAJQAlACUAJQAWABEAFgARABYAEQAWABEAFgARABYAEQAlACUAFgARACUAJQAlACUAJQAlACUAEQAlABEAKwAVABUAEwATACUAFgARABYAEQAWABEAJQAlACUAJQAlACUAJQAlACsAJQAbABoAJQArACsAKwArAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAcAKwATACUAJQAbABoAJQAlABYAEQAlACUAEQAlABEAJQBXAFcAVwBXAFcAVwBXAFcAVwBXABUAFQAlACUAJQATACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXABYAJQARACUAJQAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAWACUAEQAlABYAEQARABYAEQARABUAVwBRAFEAUQBRAFEAUQBRAFEAUQBRAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAEcARwArACsAVwBXAFcAVwBXAFcAKwArAFcAVwBXAFcAVwBXACsAKwBXAFcAVwBXAFcAVwArACsAVwBXAFcAKwArACsAGgAbACUAJQAlABsAGwArAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwAEAAQABAAQAB0AKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsADQANAA0AKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAAQAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAA0AUABQAFAAUAArACsAKwArAFAAUABQAFAAUABQAFAAUAANAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwAeACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAKwArAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUAArACsAKwBQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwANAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAUABQAFAAUABQAAQABAAEACsABAAEACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAKwBQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEACsAKwArACsABABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAA0ADQANAA0ADQANAA0ADQAeACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAArACsAKwArAFAAUABQAFAAUAANAA0ADQANAA0ADQAUACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsADQANAA0ADQANAA0ADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAAQABAAEAAQAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArAAQABAANACsAKwBQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAB4AHgAeAB4AHgArACsAKwArACsAKwAEAAQABAAEAAQABAAEAA0ADQAeAB4AHgAeAB4AKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwAeACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsASwBLAEsASwBLAEsASwBLAEsASwANAA0ADQANAFAABAAEAFAAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAeAA4AUAArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAADQANAB4ADQAEAAQABAAEAB4ABAAEAEsASwBLAEsASwBLAEsASwBLAEsAUAAOAFAADQANAA0AKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAANAA0AHgANAA0AHgAEACsAUABQAFAAUABQAFAAUAArAFAAKwBQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAA0AKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsABAAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQACsABAAEAFAABAAEAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABAArACsAUAArACsAKwArACsAKwAEACsAKwArACsAKwBQAFAAUABQAFAABAAEACsAKwAEAAQABAAEAAQABAAEACsAKwArAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAAQABABQAFAAUABQAA0ADQANAA0AHgBLAEsASwBLAEsASwBLAEsASwBLAA0ADQArAB4ABABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAFAAUAAeAFAAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAArACsABAAEAAQABAAEAAQABAAEAAQADgANAA0AEwATAB4AHgAeAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAFAAUABQAFAABAAEACsAKwAEAA0ADQAeAFAAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKwArACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBcAFwADQANAA0AKgBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAKwArAFAAKwArAFAAUABQAFAAUABQAFAAUAArAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQAKwAEAAQAKwArAAQABAAEAAQAUAAEAFAABAAEAA0ADQANACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAArACsABAAEAAQABAAEAAQABABQAA4AUAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAFAABAAEAAQABAAOAB4ADQANAA0ADQAOAB4ABAArACsAKwArACsAKwArACsAUAAEAAQABAAEAAQABAAEAAQABAAEAAQAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAA0ADQANAFAADgAOAA4ADQANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEACsABAAEAAQABAAEAAQABAAEAFAADQANAA0ADQANACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwAOABMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAArACsAKwAEACsABAAEACsABAAEAAQABAAEAAQABABQAAQAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAKwBQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQAKwAEAAQAKwAEAAQABAAEAAQAUAArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAaABoAGgAaAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsADQANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAASABIAEgAQwBDAEMAUABQAFAAUABDAFAAUABQAEgAQwBIAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAASABDAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwAJAAkACQAJAAkACQAJABYAEQArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABIAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwANAA0AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEAAQABAANACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAA0ADQANAB4AHgAeAB4AHgAeAFAAUABQAFAADQAeACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAANAA0AHgAeACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwAEAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwAEAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAARwBHABUARwAJACsAKwArACsAKwArACsAKwArACsAKwAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACsAKwArACsAKwArACsAKwBXAFcAVwBXAFcAVwBXAFcAVwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUQBRAFEAKwArACsAKwArACsAKwArACsAKwArACsAKwBRAFEAUQBRACsAKwArACsAKwArACsAKwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUAArACsAHgAEAAQADQAEAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArAB4AHgAeAB4AHgAeAB4AKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAAQABAAEAAQABAAeAB4AHgAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAB4AHgAEAAQABAAEAAQABAAEAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQAHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwBQAFAAKwArAFAAKwArAFAAUAArACsAUABQAFAAUAArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAUAArAFAAUABQAFAAUABQAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAHgAeAFAAUABQAFAAUAArAFAAKwArACsAUABQAFAAUABQAFAAUAArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeACsAKwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4ABAAeAB4AHgAeAB4AHgAeAB4AHgAeAAQAHgAeAA0ADQANAA0AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAAQABAAEAAQAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArAAQABAAEAAQABAAEAAQAKwAEAAQAKwAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwAEAAQABAAEAAQABAAEAFAAUABQAFAAUABQAFAAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwBQAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArABsAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArAB4AHgAeAB4ABAAEAAQABAAEAAQABABQACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArABYAFgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAGgBQAFAAUAAaAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAKwBQACsAKwBQACsAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwBQACsAUAArACsAKwArACsAKwBQACsAKwArACsAUAArAFAAKwBQACsAUABQAFAAKwBQAFAAKwBQACsAKwBQACsAUAArAFAAKwBQACsAUAArAFAAUAArAFAAKwArAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUAArAFAAUABQAFAAKwBQACsAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAUABQAFAAKwBQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8AJQAlACUAHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB4AHgAeACUAJQAlAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAlACUAJQAlACUAHgAlACUAJQAlACUAIAAgACAAJQAlACAAJQAlACAAIAAgACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACEAIQAhACEAIQAlACUAIAAgACUAJQAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlACUAIAAlACUAJQAlACAAIAAgACUAIAAgACAAJQAlACUAJQAlACUAJQAgACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAlAB4AJQAeACUAJQAlACUAJQAgACUAJQAlACUAHgAlAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAgACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACAAIAAgACUAJQAlACAAIAAgACAAIAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABcAFwAXABUAFQAVAB4AHgAeAB4AJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAgACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAgACUAJQAgACUAJQAlACUAJQAlACUAJQAgACAAIAAgACAAIAAgACAAJQAlACUAJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAgACAAIAAgACAAIAAgACAAIAAgACUAJQAgACAAIAAlA
vendor: 10,875 bytes, lines 369-706
369CUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAgACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAlACAAIAAlACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAgACAAIAAlACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwArAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACUAVwBXACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAA=="; 370var LETTER_NUMBER_MODIFIER = 50; 371var BK = 1; 372var CR$1 = 2; 373var LF$1 = 3; 374var CM = 4; 375var NL = 5; 376var WJ = 7; 377var ZW = 8; 378var GL = 9; 379var SP = 10; 380var ZWJ$1 = 11; 381var B2 = 12; 382var BA = 13; 383var BB = 14; 384var HY = 15; 385var CB = 16; 386var CL = 17; 387var CP = 18; 388var EX = 19; 389var IN = 20; 390var NS = 21; 391var OP = 22; 392var QU = 23; 393var IS = 24; 394var NU = 25; 395var PO = 26; 396var PR = 27; 397var SY = 28; 398var AI = 29; 399var AL = 30; 400var CJ = 31; 401var EB = 32; 402var EM = 33; 403var H2 = 34; 404var H3 = 35; 405var HL = 36; 406var ID = 37; 407var JL = 38; 408var JV = 39; 409var JT = 40; 410var RI$1 = 41; 411var SA = 42; 412var XX = 43; 413var ea_OP = [9001, 65288]; 414var BREAK_MANDATORY = "!"; 415var BREAK_NOT_ALLOWED$1 = "Ã"; 416var BREAK_ALLOWED$1 = "÷"; 417var UnicodeTrie$1 = createTrieFromBase64$1(base64$1); 418var ALPHABETICS = [AL, HL]; 419var HARD_LINE_BREAKS = [BK, CR$1, LF$1, NL]; 420var SPACE$1 = [SP, ZW]; 421var PREFIX_POSTFIX = [PR, PO]; 422var LINE_BREAKS = HARD_LINE_BREAKS.concat(SPACE$1); 423var KOREAN_SYLLABLE_BLOCK = [JL, JV, JT, H2, H3]; 424var HYPHEN = [HY, BA]; 425var codePointsToCharacterClasses = function(codePoints, lineBreak2) { 426 if (lineBreak2 === void 0) { 427 lineBreak2 = "strict"; 428 } 429 var types = []; 430 var indices = []; 431 var categories = []; 432 codePoints.forEach(function(codePoint, index) { 433 var classType = UnicodeTrie$1.get(codePoint); 434 if (classType > LETTER_NUMBER_MODIFIER) { 435 categories.push(true); 436 classType -= LETTER_NUMBER_MODIFIER; 437 } else { 438 categories.push(false); 439 } 440 if (["normal", "auto", "loose"].indexOf(lineBreak2) !== -1) { 441 if ([8208, 8211, 12316, 12448].indexOf(codePoint) !== -1) { 442 indices.push(index); 443 return types.push(CB); 444 } 445 } 446 if (classType === CM || classType === ZWJ$1) { 447 if (index === 0) { 448 indices.push(index); 449 return types.push(AL); 450 } 451 var prev = types[index - 1]; 452 if (LINE_BREAKS.indexOf(prev) === -1) { 453 indices.push(indices[index - 1]); 454 return types.push(prev); 455 } 456 indices.push(index); 457 return types.push(AL); 458 } 459 indices.push(index); 460 if (classType === CJ) { 461 return types.push(lineBreak2 === "strict" ? NS : ID); 462 } 463 if (classType === SA) { 464 return types.push(AL); 465 } 466 if (classType === AI) { 467 return types.push(AL); 468 } 469 if (classType === XX) { 470 if (codePoint >= 131072 && codePoint <= 196605 || codePoint >= 196608 && codePoint <= 262141) { 471 return types.push(ID); 472 } else { 473 return types.push(AL); 474 } 475 } 476 types.push(classType); 477 }); 478 return [indices, types, categories]; 479}; 480var isAdjacentWithSpaceIgnored = function(a2, b, currentIndex, classTypes) { 481 var current = classTypes[currentIndex]; 482 if (Array.isArray(a2) ? a2.indexOf(current) !== -1 : a2 === current) { 483 var i = currentIndex; 484 while (i <= classTypes.length) { 485 i++; 486 var next = classTypes[i]; 487 if (next === b) { 488 return true; 489 } 490 if (next !== SP) { 491 break; 492 } 493 } 494 } 495 if (current === SP) { 496 var i = currentIndex; 497 while (i > 0) { 498 i--; 499 var prev = classTypes[i]; 500 if (Array.isArray(a2) ? a2.indexOf(prev) !== -1 : a2 === prev) { 501 var n = currentIndex; 502 while (n <= classTypes.length) { 503 n++; 504 var next = classTypes[n]; 505 if (next === b) { 506 return true; 507 } 508 if (next !== SP) { 509 break; 510 } 511 } 512 } 513 if (prev !== SP) { 514 break; 515 } 516 } 517 } 518 return false; 519}; 520var previousNonSpaceClassType = function(currentIndex, classTypes) { 521 var i = currentIndex; 522 while (i >= 0) { 523 var type = classTypes[i]; 524 if (type === SP) { 525 i--; 526 } else { 527 return type; 528 } 529 } 530 return 0; 531}; 532var _lineBreakAtIndex = function(codePoints, classTypes, indicies, index, forbiddenBreaks) { 533 if (indicies[index] === 0) { 534 return BREAK_NOT_ALLOWED$1; 535 } 536 var currentIndex = index - 1; 537 if (Array.isArray(forbiddenBreaks) && forbiddenBreaks[currentIndex] === true) { 538 return BREAK_NOT_ALLOWED$1; 539 } 540 var beforeIndex = currentIndex - 1; 541 var afterIndex = currentIndex + 1; 542 var current = classTypes[currentIndex]; 543 var before = beforeIndex >= 0 ? classTypes[beforeIndex] : 0; 544 var next = classTypes[afterIndex]; 545 if (current === CR$1 && next === LF$1) { 546 return BREAK_NOT_ALLOWED$1; 547 } 548 if (HARD_LINE_BREAKS.indexOf(current) !== -1) { 549 return BREAK_MANDATORY; 550 } 551 if (HARD_LINE_BREAKS.indexOf(next) !== -1) { 552 return BREAK_NOT_ALLOWED$1; 553 } 554 if (SPACE$1.indexOf(next) !== -1) { 555 return BREAK_NOT_ALLOWED$1; 556 } 557 if (previousNonSpaceClassType(currentIndex, classTypes) === ZW) { 558 return BREAK_ALLOWED$1; 559 } 560 if (UnicodeTrie$1.get(codePoints[currentIndex]) === ZWJ$1) { 561 return BREAK_NOT_ALLOWED$1; 562 } 563 if ((current === EB || current === EM) && UnicodeTrie$1.get(codePoints[afterIndex]) === ZWJ$1) { 564 return BREAK_NOT_ALLOWED$1; 565 } 566 if (current === WJ || next === WJ) { 567 return BREAK_NOT_ALLOWED$1; 568 } 569 if (current === GL) { 570 return BREAK_NOT_ALLOWED$1; 571 } 572 if ([SP, BA, HY].indexOf(current) === -1 && next === GL) { 573 return BREAK_NOT_ALLOWED$1; 574 } 575 if ([CL, CP, EX, IS, SY].indexOf(next) !== -1) { 576 return BREAK_NOT_ALLOWED$1; 577 } 578 if (previousNonSpaceClassType(currentIndex, classTypes) === OP) { 579 return BREAK_NOT_ALLOWED$1; 580 } 581 if (isAdjacentWithSpaceIgnored(QU, OP, currentIndex, classTypes)) { 582 return BREAK_NOT_ALLOWED$1; 583 } 584 if (isAdjacentWithSpaceIgnored([CL, CP], NS, currentIndex, classTypes)) { 585 return BREAK_NOT_ALLOWED$1; 586 } 587 if (isAdjacentWithSpaceIgnored(B2, B2, currentIndex, classTypes)) { 588 return BREAK_NOT_ALLOWED$1; 589 } 590 if (current === SP) { 591 return BREAK_ALLOWED$1; 592 } 593 if (current === QU || next === QU) { 594 return BREAK_NOT_ALLOWED$1; 595 } 596 if (next === CB || current === CB) { 597 return BREAK_ALLOWED$1; 598 } 599 if ([BA, HY, NS].indexOf(next) !== -1 || current === BB) { 600 return BREAK_NOT_ALLOWED$1; 601 } 602 if (before === HL && HYPHEN.indexOf(current) !== -1) { 603 return BREAK_NOT_ALLOWED$1; 604 } 605 if (current === SY && next === HL) { 606 return BREAK_NOT_ALLOWED$1; 607 } 608 if (next === IN) { 609 return BREAK_NOT_ALLOWED$1; 610 } 611 if (ALPHABETICS.indexOf(next) !== -1 && current === NU || ALPHABETICS.indexOf(current) !== -1 && next === NU) { 612 return BREAK_NOT_ALLOWED$1; 613 } 614 if (current === PR && [ID, EB, EM].indexOf(next) !== -1 || [ID, EB, EM].indexOf(current) !== -1 && next === PO) { 615 return BREAK_NOT_ALLOWED$1; 616 } 617 if (ALPHABETICS.indexOf(current) !== -1 && PREFIX_POSTFIX.indexOf(next) !== -1 || PREFIX_POSTFIX.indexOf(current) !== -1 && ALPHABETICS.indexOf(next) !== -1) { 618 return BREAK_NOT_ALLOWED$1; 619 } 620 if ( 621 // (PR | PO) à ( OP | HY )? NU 622 [PR, PO].indexOf(current) !== -1 && (next === NU || [OP, HY].indexOf(next) !== -1 && classTypes[afterIndex + 1] === NU) || // ( OP | HY ) à NU 623 [OP, HY].indexOf(current) !== -1 && next === NU || // NU à (NU | SY | IS) 624 current === NU && [NU, SY, IS].indexOf(next) !== -1 625 ) { 626 return BREAK_NOT_ALLOWED$1; 627 } 628 if ([NU, SY, IS, CL, CP].indexOf(next) !== -1) { 629 var prevIndex = currentIndex; 630 while (prevIndex >= 0) { 631 var type = classTypes[prevIndex]; 632 if (type === NU) { 633 return BREAK_NOT_ALLOWED$1; 634 } else if ([SY, IS].indexOf(type) !== -1) { 635 prevIndex--; 636 } else { 637 break; 638 } 639 } 640 } 641 if ([PR, PO].indexOf(next) !== -1) { 642 var prevIndex = [CL, CP].indexOf(current) !== -1 ? beforeIndex : currentIndex; 643 while (prevIndex >= 0) { 644 var type = classTypes[prevIndex]; 645 if (type === NU) { 646 return BREAK_NOT_ALLOWED$1; 647 } else if ([SY, IS].indexOf(type) !== -1) { 648 prevIndex--; 649 } else { 650 break; 651 } 652 } 653 } 654 if (JL === current && [JL, JV, H2, H3].indexOf(next) !== -1 || [JV, H2].indexOf(current) !== -1 && [JV, JT].indexOf(next) !== -1 || [JT, H3].indexOf(current) !== -1 && next === JT) { 655 return BREAK_NOT_ALLOWED$1; 656 } 657 if (KOREAN_SYLLABLE_BLOCK.indexOf(current) !== -1 && [IN, PO].indexOf(next) !== -1 || KOREAN_SYLLABLE_BLOCK.indexOf(next) !== -1 && current === PR) { 658 return BREAK_NOT_ALLOWED$1; 659 } 660 if (ALPHABETICS.indexOf(current) !== -1 && ALPHABETICS.indexOf(next) !== -1) { 661 return BREAK_NOT_ALLOWED$1; 662 } 663 if (current === IS && ALPHABETICS.indexOf(next) !== -1) { 664 return BREAK_NOT_ALLOWED$1; 665 } 666 if (ALPHABETICS.concat(NU).indexOf(current) !== -1 && next === OP && ea_OP.indexOf(codePoints[afterIndex]) === -1 || ALPHABETICS.concat(NU).indexOf(next) !== -1 && current === CP) { 667 return BREAK_NOT_ALLOWED$1; 668 } 669 if (current === RI$1 && next === RI$1) { 670 var i = indicies[currentIndex]; 671 var count = 1; 672 while (i > 0) { 673 i--; 674 if (classTypes[i] === RI$1) { 675 count++; 676 } else { 677 break; 678 } 679 } 680 if (count % 2 !== 0) { 681 return BREAK_NOT_ALLOWED$1; 682 } 683 } 684 if (current === EB && next === EM) { 685 return BREAK_NOT_ALLOWED$1; 686 } 687 return BREAK_ALLOWED$1; 688}; 689var cssFormattedClasses = function(codePoints, options) { 690 if (!options) { 691 options = { lineBreak: "normal", wordBreak: "normal" }; 692 } 693 var _a = codePointsToCharacterClasses(codePoints, options.lineBreak), indicies = _a[0], classTypes = _a[1], isLetterNumber = _a[2]; 694 if (options.wordBreak === "break-all" || options.wordBreak === "break-word") { 695 classTypes = classTypes.map(function(type) { 696 return [NU, AL, SA].indexOf(type) !== -1 ? ID : type; 697 }); 698 } 699 var forbiddenBreakpoints = options.wordBreak === "keep-all" ? isLetterNumber.map(function(letterNumber, i) { 700 return letterNumber && codePoints[i] >= 19968 && codePoints[i] <= 40959; 701 }) : void 0; 702 return [indicies, classTypes, forbiddenBreakpoints]; 703}; 704var Break = ( 705 /** @class */ 706
706function() { 707 function Break2(codePoints, lineBreak2, start, end) { 708 this.codePoints = codePoints; 709 this.required = lineBreak2 === BREAK_MANDATORY; 710 this.start = start; 711 this.end = end; 712 } 713 Break2.prototype.slice = function() { 714 return fromCodePoint$1.apply(void 0, this.codePoints.slice(this.start, this.end)); 715 }; 716 return Break2; 717 }
vendor: 22,123 bytes, lines 717-1413
717() 718); 719var LineBreaker = function(str, options) { 720 var codePoints = toCodePoints$1(str); 721 var _a = cssFormattedClasses(codePoints, options), indicies = _a[0], classTypes = _a[1], forbiddenBreakpoints = _a[2]; 722 var length = codePoints.length; 723 var lastEnd = 0; 724 var nextIndex = 0; 725 return { 726 next: function() { 727 if (nextIndex >= length) { 728 return { done: true, value: null }; 729 } 730 var lineBreak2 = BREAK_NOT_ALLOWED$1; 731 while (nextIndex < length && (lineBreak2 = _lineBreakAtIndex(codePoints, classTypes, indicies, ++nextIndex, forbiddenBreakpoints)) === BREAK_NOT_ALLOWED$1) { 732 } 733 if (lineBreak2 !== BREAK_NOT_ALLOWED$1 || nextIndex === length) { 734 var value = new Break(codePoints, lineBreak2, lastEnd, nextIndex); 735 lastEnd = nextIndex; 736 return { value, done: false }; 737 } 738 return { done: true, value: null }; 739 } 740 }; 741}; 742var FLAG_UNRESTRICTED = 1 << 0; 743var FLAG_ID = 1 << 1; 744var FLAG_INTEGER = 1 << 2; 745var FLAG_NUMBER = 1 << 3; 746var LINE_FEED = 10; 747var SOLIDUS = 47; 748var REVERSE_SOLIDUS = 92; 749var CHARACTER_TABULATION = 9; 750var SPACE = 32; 751var QUOTATION_MARK = 34; 752var EQUALS_SIGN = 61; 753var NUMBER_SIGN = 35; 754var DOLLAR_SIGN = 36; 755var PERCENTAGE_SIGN = 37; 756var APOSTROPHE = 39; 757var LEFT_PARENTHESIS = 40; 758var RIGHT_PARENTHESIS = 41; 759var LOW_LINE = 95; 760var HYPHEN_MINUS = 45; 761var EXCLAMATION_MARK = 33; 762var LESS_THAN_SIGN = 60; 763var GREATER_THAN_SIGN = 62; 764var COMMERCIAL_AT = 64; 765var LEFT_SQUARE_BRACKET = 91; 766var RIGHT_SQUARE_BRACKET = 93; 767var CIRCUMFLEX_ACCENT = 61; 768var LEFT_CURLY_BRACKET = 123; 769var QUESTION_MARK = 63; 770var RIGHT_CURLY_BRACKET = 125; 771var VERTICAL_LINE = 124; 772var TILDE = 126; 773var CONTROL = 128; 774var REPLACEMENT_CHARACTER = 65533; 775var ASTERISK = 42; 776var PLUS_SIGN = 43; 777var COMMA = 44; 778var COLON = 58; 779var SEMICOLON = 59; 780var FULL_STOP = 46; 781var NULL = 0; 782var BACKSPACE = 8; 783var LINE_TABULATION = 11; 784var SHIFT_OUT = 14; 785var INFORMATION_SEPARATOR_ONE = 31; 786var DELETE = 127; 787var EOF = -1; 788var ZERO = 48; 789var a = 97; 790var e = 101; 791var f = 102; 792var u = 117; 793var z = 122; 794var A = 65; 795var E = 69; 796var F = 70; 797var U = 85; 798var Z = 90; 799var isDigit = function(codePoint) { 800 return codePoint >= ZERO && codePoint <= 57; 801}; 802var isSurrogateCodePoint = function(codePoint) { 803 return codePoint >= 55296 && codePoint <= 57343; 804}; 805var isHex = function(codePoint) { 806 return isDigit(codePoint) || codePoint >= A && codePoint <= F || codePoint >= a && codePoint <= f; 807}; 808var isLowerCaseLetter = function(codePoint) { 809 return codePoint >= a && codePoint <= z; 810}; 811var isUpperCaseLetter = function(codePoint) { 812 return codePoint >= A && codePoint <= Z; 813}; 814var isLetter = function(codePoint) { 815 return isLowerCaseLetter(codePoint) || isUpperCaseLetter(codePoint); 816}; 817var isNonASCIICodePoint = function(codePoint) { 818 return codePoint >= CONTROL; 819}; 820var isWhiteSpace = function(codePoint) { 821 return codePoint === LINE_FEED || codePoint === CHARACTER_TABULATION || codePoint === SPACE; 822}; 823var isNameStartCodePoint = function(codePoint) { 824 return isLetter(codePoint) || isNonASCIICodePoint(codePoint) || codePoint === LOW_LINE; 825}; 826var isNameCodePoint = function(codePoint) { 827 return isNameStartCodePoint(codePoint) || isDigit(codePoint) || codePoint === HYPHEN_MINUS; 828}; 829var isNonPrintableCodePoint = function(codePoint) { 830 return codePoint >= NULL && codePoint <= BACKSPACE || codePoint === LINE_TABULATION || codePoint >= SHIFT_OUT && codePoint <= INFORMATION_SEPARATOR_ONE || codePoint === DELETE; 831}; 832var isValidEscape = function(c1, c2) { 833 if (c1 !== REVERSE_SOLIDUS) { 834 return false; 835 } 836 return c2 !== LINE_FEED; 837}; 838var isIdentifierStart = function(c1, c2, c3) { 839 if (c1 === HYPHEN_MINUS) { 840 return isNameStartCodePoint(c2) || isValidEscape(c2, c3); 841 } else if (isNameStartCodePoint(c1)) { 842 return true; 843 } else if (c1 === REVERSE_SOLIDUS && isValidEscape(c1, c2)) { 844 return true; 845 } 846 return false; 847}; 848var isNumberStart = function(c1, c2, c3) { 849 if (c1 === PLUS_SIGN || c1 === HYPHEN_MINUS) { 850 if (isDigit(c2)) { 851 return true; 852 } 853 return c2 === FULL_STOP && isDigit(c3); 854 } 855 if (c1 === FULL_STOP) { 856 return isDigit(c2); 857 } 858 return isDigit(c1); 859}; 860var stringToNumber = function(codePoints) { 861 var c = 0; 862 var sign = 1; 863 if (codePoints[c] === PLUS_SIGN || codePoints[c] === HYPHEN_MINUS) { 864 if (codePoints[c] === HYPHEN_MINUS) { 865 sign = -1; 866 } 867 c++; 868 } 869 var integers = []; 870 while (isDigit(codePoints[c])) { 871 integers.push(codePoints[c++]); 872 } 873 var int = integers.length ? parseInt(fromCodePoint$1.apply(void 0, integers), 10) : 0; 874 if (codePoints[c] === FULL_STOP) { 875 c++; 876 } 877 var fraction = []; 878 while (isDigit(codePoints[c])) { 879 fraction.push(codePoints[c++]); 880 } 881 var fracd = fraction.length; 882 var frac = fracd ? parseInt(fromCodePoint$1.apply(void 0, fraction), 10) : 0; 883 if (codePoints[c] === E || codePoints[c] === e) { 884 c++; 885 } 886 var expsign = 1; 887 if (codePoints[c] === PLUS_SIGN || codePoints[c] === HYPHEN_MINUS) { 888 if (codePoints[c] === HYPHEN_MINUS) { 889 expsign = -1; 890 } 891 c++; 892 } 893 var exponent = []; 894 while (isDigit(codePoints[c])) { 895 exponent.push(codePoints[c++]); 896 } 897 var exp = exponent.length ? parseInt(fromCodePoint$1.apply(void 0, exponent), 10) : 0; 898 return sign * (int + frac * Math.pow(10, -fracd)) * Math.pow(10, expsign * exp); 899}; 900var LEFT_PARENTHESIS_TOKEN = { 901 type: 2 902 /* LEFT_PARENTHESIS_TOKEN */ 903}; 904var RIGHT_PARENTHESIS_TOKEN = { 905 type: 3 906 /* RIGHT_PARENTHESIS_TOKEN */ 907}; 908var COMMA_TOKEN = { 909 type: 4 910 /* COMMA_TOKEN */ 911}; 912var SUFFIX_MATCH_TOKEN = { 913 type: 13 914 /* SUFFIX_MATCH_TOKEN */ 915}; 916var PREFIX_MATCH_TOKEN = { 917 type: 8 918 /* PREFIX_MATCH_TOKEN */ 919}; 920var COLUMN_TOKEN = { 921 type: 21 922 /* COLUMN_TOKEN */ 923}; 924var DASH_MATCH_TOKEN = { 925 type: 9 926 /* DASH_MATCH_TOKEN */ 927}; 928var INCLUDE_MATCH_TOKEN = { 929 type: 10 930 /* INCLUDE_MATCH_TOKEN */ 931}; 932var LEFT_CURLY_BRACKET_TOKEN = { 933 type: 11 934 /* LEFT_CURLY_BRACKET_TOKEN */ 935}; 936var RIGHT_CURLY_BRACKET_TOKEN = { 937 type: 12 938 /* RIGHT_CURLY_BRACKET_TOKEN */ 939}; 940var SUBSTRING_MATCH_TOKEN = { 941 type: 14 942 /* SUBSTRING_MATCH_TOKEN */ 943}; 944var BAD_URL_TOKEN = { 945 type: 23 946 /* BAD_URL_TOKEN */ 947}; 948var BAD_STRING_TOKEN = { 949 type: 1 950 /* BAD_STRING_TOKEN */ 951}; 952var CDO_TOKEN = { 953 type: 25 954 /* CDO_TOKEN */ 955}; 956var CDC_TOKEN = { 957 type: 24 958 /* CDC_TOKEN */ 959}; 960var COLON_TOKEN = { 961 type: 26 962 /* COLON_TOKEN */ 963}; 964var SEMICOLON_TOKEN = { 965 type: 27 966 /* SEMICOLON_TOKEN */ 967}; 968var LEFT_SQUARE_BRACKET_TOKEN = { 969 type: 28 970 /* LEFT_SQUARE_BRACKET_TOKEN */ 971}; 972var RIGHT_SQUARE_BRACKET_TOKEN = { 973 type: 29 974 /* RIGHT_SQUARE_BRACKET_TOKEN */ 975}; 976var WHITESPACE_TOKEN = { 977 type: 31 978 /* WHITESPACE_TOKEN */ 979}; 980var EOF_TOKEN = { 981 type: 32 982 /* EOF_TOKEN */ 983}; 984var Tokenizer = ( 985 /** @class */ 986 function() { 987 function Tokenizer2() { 988 this._value = []; 989 } 990 Tokenizer2.prototype.write = function(chunk) { 991 this._value = this._value.concat(toCodePoints$1(chunk)); 992 }; 993 Tokenizer2.prototype.read = function() { 994 var tokens = []; 995 var token = this.consumeToken(); 996 while (token !== EOF_TOKEN) { 997 tokens.push(token); 998 token = this.consumeToken(); 999 } 1000 return tokens; 1001 }; 1002 Tokenizer2.prototype.consumeToken = function() { 1003 var codePoint = this.consumeCodePoint(); 1004 switch (codePoint) { 1005 case QUOTATION_MARK: 1006 return this.consumeStringToken(QUOTATION_MARK); 1007 case NUMBER_SIGN: 1008 var c1 = this.peekCodePoint(0); 1009 var c2 = this.peekCodePoint(1); 1010 var c3 = this.peekCodePoint(2); 1011 if (isNameCodePoint(c1) || isValidEscape(c2, c3)) { 1012 var flags = isIdentifierStart(c1, c2, c3) ? FLAG_ID : FLAG_UNRESTRICTED; 1013 var value = this.consumeName(); 1014 return { type: 5, value, flags }; 1015 } 1016 break; 1017 case DOLLAR_SIGN: 1018 if (this.peekCodePoint(0) === EQUALS_SIGN) { 1019 this.consumeCodePoint(); 1020 return SUFFIX_MATCH_TOKEN; 1021 } 1022 break; 1023 case APOSTROPHE: 1024 return this.consumeStringToken(APOSTROPHE); 1025 case LEFT_PARENTHESIS: 1026 return LEFT_PARENTHESIS_TOKEN; 1027 case RIGHT_PARENTHESIS: 1028 return RIGHT_PARENTHESIS_TOKEN; 1029 case ASTERISK: 1030 if (this.peekCodePoint(0) === EQUALS_SIGN) { 1031 this.consumeCodePoint(); 1032 return SUBSTRING_MATCH_TOKEN; 1033 } 1034 break; 1035 case PLUS_SIGN: 1036 if (isNumberStart(codePoint, this.peekCodePoint(0), this.peekCodePoint(1))) { 1037 this.reconsumeCodePoint(codePoint); 1038 return this.consumeNumericToken(); 1039 } 1040 break; 1041 case COMMA: 1042 return COMMA_TOKEN; 1043 case HYPHEN_MINUS: 1044 var e1 = codePoint; 1045 var e2 = this.peekCodePoint(0); 1046 var e3 = this.peekCodePoint(1); 1047 if (isNumberStart(e1, e2, e3)) { 1048 this.reconsumeCodePoint(codePoint); 1049 return this.consumeNumericToken(); 1050 } 1051 if (isIdentifierStart(e1, e2, e3)) { 1052 this.reconsumeCodePoint(codePoint); 1053 return this.consumeIdentLikeToken(); 1054 } 1055 if (e2 === HYPHEN_MINUS && e3 === GREATER_THAN_SIGN) { 1056 this.consumeCodePoint(); 1057 this.consumeCodePoint(); 1058 return CDC_TOKEN; 1059 } 1060 break; 1061 case FULL_STOP: 1062 if (isNumberStart(codePoint, this.peekCodePoint(0), this.peekCodePoint(1))) { 1063 this.reconsumeCodePoint(codePoint); 1064 return this.consumeNumericToken(); 1065 } 1066 break; 1067 case SOLIDUS: 1068 if (this.peekCodePoint(0) === ASTERISK) { 1069 this.consumeCodePoint(); 1070 while (true) { 1071 var c = this.consumeCodePoint(); 1072 if (c === ASTERISK) { 1073 c = this.consumeCodePoint(); 1074 if (c === SOLIDUS) { 1075 return this.consumeToken(); 1076 } 1077 } 1078 if (c === EOF) { 1079 return this.consumeToken(); 1080 } 1081 } 1082 } 1083 break; 1084 case COLON: 1085 return COLON_TOKEN; 1086 case SEMICOLON: 1087 return SEMICOLON_TOKEN; 1088 case LESS_THAN_SIGN: 1089 if (this.peekCodePoint(0) === EXCLAMATION_MARK && this.peekCodePoint(1) === HYPHEN_MINUS && this.peekCodePoint(2) === HYPHEN_MINUS) { 1090 this.consumeCodePoint(); 1091 this.consumeCodePoint(); 1092 return CDO_TOKEN; 1093 } 1094 break; 1095 case COMMERCIAL_AT: 1096 var a1 = this.peekCodePoint(0); 1097 var a2 = this.peekCodePoint(1); 1098 var a3 = this.peekCodePoint(2); 1099 if (isIdentifierStart(a1, a2, a3)) { 1100 var value = this.consumeName(); 1101 return { type: 7, value }; 1102 } 1103 break; 1104 case LEFT_SQUARE_BRACKET: 1105 return LEFT_SQUARE_BRACKET_TOKEN; 1106 case REVERSE_SOLIDUS: 1107 if (isValidEscape(codePoint, this.peekCodePoint(0))) { 1108 this.reconsumeCodePoint(codePoint); 1109 return this.consumeIdentLikeToken(); 1110 } 1111 break; 1112 case RIGHT_SQUARE_BRACKET: 1113 return RIGHT_SQUARE_BRACKET_TOKEN; 1114 case CIRCUMFLEX_ACCENT: 1115 if (this.peekCodePoint(0) === EQUALS_SIGN) { 1116 this.consumeCodePoint(); 1117 return PREFIX_MATCH_TOKEN; 1118 } 1119 break; 1120 case LEFT_CURLY_BRACKET: 1121 return LEFT_CURLY_BRACKET_TOKEN; 1122 case RIGHT_CURLY_BRACKET: 1123 return RIGHT_CURLY_BRACKET_TOKEN; 1124 case u: 1125 case U: 1126 var u1 = this.peekCodePoint(0); 1127 var u2 = this.peekCodePoint(1); 1128 if (u1 === PLUS_SIGN && (isHex(u2) || u2 === QUESTION_MARK)) { 1129 this.consumeCodePoint(); 1130 this.consumeUnicodeRangeToken(); 1131 } 1132 this.reconsumeCodePoint(codePoint); 1133 return this.consumeIdentLikeToken(); 1134 case VERTICAL_LINE: 1135 if (this.peekCodePoint(0) === EQUALS_SIGN) { 1136 this.consumeCodePoint(); 1137 return DASH_MATCH_TOKEN; 1138 } 1139 if (this.peekCodePoint(0) === VERTICAL_LINE) { 1140 this.consumeCodePoint(); 1141 return COLUMN_TOKEN; 1142 } 1143 break; 1144 case TILDE: 1145 if (this.peekCodePoint(0) === EQUALS_SIGN) { 1146 this.consumeCodePoint(); 1147 return INCLUDE_MATCH_TOKEN; 1148 } 1149 break; 1150 case EOF: 1151 return EOF_TOKEN; 1152 } 1153 if (isWhiteSpace(codePoint)) { 1154 this.consumeWhiteSpace(); 1155 return WHITESPACE_TOKEN; 1156 } 1157 if (isDigit(codePoint)) { 1158 this.reconsumeCodePoint(codePoint); 1159 return this.consumeNumericToken(); 1160 } 1161 if (isNameStartCodePoint(codePoint)) { 1162 this.reconsumeCodePoint(codePoint); 1163 return this.consumeIdentLikeToken(); 1164 } 1165 return { type: 6, value: fromCodePoint$1(codePoint) }; 1166 }; 1167 Tokenizer2.prototype.consumeCodePoint = function() { 1168 var value = this._value.shift(); 1169 return typeof value === "undefined" ? -1 : value; 1170 }; 1171 Tokenizer2.prototype.reconsumeCodePoint = function(codePoint) { 1172 this._value.unshift(codePoint); 1173 }; 1174 Tokenizer2.prototype.peekCodePoint = function(delta) { 1175 if (delta >= this._value.length) { 1176 return -1; 1177 } 1178 return this._value[delta]; 1179 }; 1180 Tokenizer2.prototype.consumeUnicodeRangeToken = function() { 1181 var digits = []; 1182 var codePoint = this.consumeCodePoint(); 1183 while (isHex(codePoint) && digits.length < 6) { 1184 digits.push(codePoint); 1185 codePoint = this.consumeCodePoint(); 1186 } 1187 var questionMarks = false; 1188 while (codePoint === QUESTION_MARK && digits.length < 6) { 1189 digits.push(codePoint); 1190 codePoint = this.consumeCodePoint(); 1191 questionMarks = true; 1192 } 1193 if (questionMarks) { 1194 var start_1 = parseInt(fromCodePoint$1.apply(void 0, digits.map(function(digit) { 1195 return digit === QUESTION_MARK ? ZERO : digit; 1196 })), 16); 1197 var end = parseInt(fromCodePoint$1.apply(void 0, digits.map(function(digit) { 1198 return digit === QUESTION_MARK ? F : digit; 1199 })), 16); 1200 return { type: 30, start: start_1, end }; 1201 } 1202 var start = parseInt(fromCodePoint$1.apply(void 0, digits), 16); 1203 if (this.peekCodePoint(0) === HYPHEN_MINUS && isHex(this.peekCodePoint(1))) { 1204 this.consumeCodePoint(); 1205 codePoint = this.consumeCodePoint(); 1206 var endDigits = []; 1207 while (isHex(codePoint) && endDigits.length < 6) { 1208 endDigits.push(codePoint); 1209 codePoint = this.consumeCodePoint(); 1210 } 1211 var end = parseInt(fromCodePoint$1.apply(void 0, endDigits), 16); 1212 return { type: 30, start, end }; 1213 } else { 1214 return { type: 30, start, end: start }; 1215 } 1216 }; 1217 Tokenizer2.prototype.consumeIdentLikeToken = function() { 1218 var value = this.consumeName(); 1219 if (value.toLowerCase() === "url" && this.peekCodePoint(0) === LEFT_PARENTHESIS) { 1220 this.consumeCodePoint(); 1221 return this.consumeUrlToken(); 1222 } else if (this.peekCodePoint(0) === LEFT_PARENTHESIS) { 1223 this.consumeCodePoint(); 1224 return { type: 19, value }; 1225 } 1226 return { type: 20, value }; 1227 }; 1228 Tokenizer2.prototype.consumeUrlToken = function() { 1229 var value = []; 1230 this.consumeWhiteSpace(); 1231 if (this.peekCodePoint(0) === EOF) { 1232 return { type: 22, value: "" }; 1233 } 1234 var next = this.peekCodePoint(0); 1235 if (next === APOSTROPHE || next === QUOTATION_MARK) { 1236 var stringToken = this.consumeStringToken(this.consumeCodePoint()); 1237 if (stringToken.type === 0) { 1238 this.consumeWhiteSpace(); 1239 if (this.peekCodePoint(0) === EOF || this.peekCodePoint(0) === RIGHT_PARENTHESIS) { 1240 this.consumeCodePoint(); 1241 return { type: 22, value: stringToken.value }; 1242 } 1243 } 1244 this.consumeBadUrlRemnants(); 1245 return BAD_URL_TOKEN; 1246 } 1247 while (true) { 1248 var codePoint = this.consumeCodePoint(); 1249 if (codePoint === EOF || codePoint === RIGHT_PARENTHESIS) { 1250 return { type: 22, value: fromCodePoint$1.apply(void 0, value) }; 1251 } else if (isWhiteSpace(codePoint)) { 1252 this.consumeWhiteSpace(); 1253 if (this.peekCodePoint(0) === EOF || this.peekCodePoint(0) === RIGHT_PARENTHESIS) { 1254 this.consumeCodePoint(); 1255 return { type: 22, value: fromCodePoint$1.apply(void 0, value) }; 1256 } 1257 this.consumeBadUrlRemnants(); 1258 return BAD_URL_TOKEN; 1259 } else if (codePoint === QUOTATION_MARK || codePoint === APOSTROPHE || codePoint === LEFT_PARENTHESIS || isNonPrintableCodePoint(codePoint)) { 1260 this.consumeBadUrlRemnants(); 1261 return BAD_URL_TOKEN; 1262 } else if (codePoint === REVERSE_SOLIDUS) { 1263 if (isValidEscape(codePoint, this.peekCodePoint(0))) { 1264 value.push(this.consumeEscapedCodePoint()); 1265 } else { 1266 this.consumeBadUrlRemnants(); 1267 return BAD_URL_TOKEN; 1268 } 1269 } else { 1270 value.push(codePoint); 1271 } 1272 } 1273 }; 1274 Tokenizer2.prototype.consumeWhiteSpace = function() { 1275 while (isWhiteSpace(this.peekCodePoint(0))) { 1276 this.consumeCodePoint(); 1277 } 1278 }; 1279 Tokenizer2.prototype.consumeBadUrlRemnants = function() { 1280 while (true) { 1281 var codePoint = this.consumeCodePoint(); 1282 if (codePoint === RIGHT_PARENTHESIS || codePoint === EOF) { 1283 return; 1284 } 1285 if (isValidEscape(codePoint, this.peekCodePoint(0))) { 1286 this.consumeEscapedCodePoint(); 1287 } 1288 } 1289 }; 1290 Tokenizer2.prototype.consumeStringSlice = function(count) { 1291 var SLICE_STACK_SIZE = 5e4; 1292 var value = ""; 1293 while (count > 0) { 1294 var amount = Math.min(SLICE_STACK_SIZE, count); 1295 value += fromCodePoint$1.apply(void 0, this._value.splice(0, amount)); 1296 count -= amount; 1297 } 1298 this._value.shift(); 1299 return value; 1300 }; 1301 Tokenizer2.prototype.consumeStringToken = function(endingCodePoint) { 1302 var value = ""; 1303 var i = 0; 1304 do { 1305 var codePoint = this._value[i]; 1306 if (codePoint === EOF || codePoint === void 0 || codePoint === endingCodePoint) { 1307 value += this.consumeStringSlice(i); 1308 return { type: 0, value }; 1309 } 1310 if (codePoint === LINE_FEED) { 1311 this._value.splice(0, i); 1312 return BAD_STRING_TOKEN; 1313 } 1314 if (codePoint === REVERSE_SOLIDUS) { 1315 var next = this._value[i + 1]; 1316 if (next !== EOF && next !== void 0) { 1317 if (next === LINE_FEED) { 1318 value += this.consumeStringSlice(i); 1319 i = -1; 1320 this._value.shift(); 1321 } else if (isValidEscape(codePoint, next)) { 1322 value += this.consumeStringSlice(i); 1323 value += fromCodePoint$1(this.consumeEscapedCodePoint()); 1324 i = -1; 1325 } 1326 } 1327 } 1328 i++; 1329 } while (true); 1330 }; 1331 Tokenizer2.prototype.consumeNumber = function() { 1332 var repr = []; 1333 var type = FLAG_INTEGER; 1334 var c1 = this.peekCodePoint(0); 1335 if (c1 === PLUS_SIGN || c1 === HYPHEN_MINUS) { 1336 repr.push(this.consumeCodePoint()); 1337 } 1338 while (isDigit(this.peekCodePoint(0))) { 1339 repr.push(this.consumeCodePoint()); 1340 } 1341 c1 = this.peekCodePoint(0); 1342 var c2 = this.peekCodePoint(1); 1343 if (c1 === FULL_STOP && isDigit(c2)) { 1344 repr.push(this.consumeCodePoint(), this.consumeCodePoint()); 1345 type = FLAG_NUMBER; 1346 while (isDigit(this.peekCodePoint(0))) { 1347 repr.push(this.consumeCodePoint()); 1348 } 1349 } 1350 c1 = this.peekCodePoint(0); 1351 c2 = this.peekCodePoint(1); 1352 var c3 = this.peekCodePoint(2); 1353 if ((c1 === E || c1 === e) && ((c2 === PLUS_SIGN || c2 === HYPHEN_MINUS) && isDigit(c3) || isDigit(c2))) { 1354 repr.push(this.consumeCodePoint(), this.consumeCodePoint()); 1355 type = FLAG_NUMBER; 1356 while (isDigit(this.peekCodePoint(0))) { 1357 repr.push(this.consumeCodePoint()); 1358 } 1359 } 1360 return [stringToNumber(repr), type]; 1361 }; 1362 Tokenizer2.prototype.consumeNumericToken = function() { 1363 var _a = this.consumeNumber(), number = _a[0], flags = _a[1]; 1364 var c1 = this.peekCodePoint(0); 1365 var c2 = this.peekCodePoint(1); 1366 var c3 = this.peekCodePoint(2); 1367 if (isIdentifierStart(c1, c2, c3)) { 1368 var unit = this.consumeName(); 1369 return { type: 15, number, flags, unit }; 1370 } 1371 if (c1 === PERCENTAGE_SIGN) { 1372 this.consumeCodePoint(); 1373 return { type: 16, number, flags }; 1374 } 1375 return { type: 17, number, flags }; 1376 }; 1377 Tokenizer2.prototype.consumeEscapedCodePoint = function() { 1378 var codePoint = this.consumeCodePoint(); 1379 if (isHex(codePoint)) { 1380 var hex = fromCodePoint$1(codePoint); 1381 while (isHex(this.peekCodePoint(0)) && hex.length < 6) { 1382 hex += fromCodePoint$1(this.consumeCodePoint()); 1383 } 1384 if (isWhiteSpace(this.peekCodePoint(0))) { 1385 this.consumeCodePoint(); 1386 } 1387 var hexCodePoint = parseInt(hex, 16); 1388 if (hexCodePoint === 0 || isSurrogateCodePoint(hexCodePoint) || hexCodePoint > 1114111) { 1389 return REPLACEMENT_CHARACTER; 1390 } 1391 return hexCodePoint; 1392 } 1393 if (codePoint === EOF) { 1394 return REPLACEMENT_CHARACTER; 1395 } 1396 return codePoint; 1397 }; 1398 Tokenizer2.prototype.consumeName = function() { 1399 var result = ""; 1400 while (true) { 1401 var codePoint = this.consumeCodePoint(); 1402 if (isNameCodePoint(codePoint)) { 1403 result += fromCodePoint$1(codePoint); 1404 } else if (isValidEscape(codePoint, this.peekCodePoint(0))) { 1405 result += fromCodePoint$1(this.consumeEscapedCodePoint()); 1406 } else { 1407 this.reconsumeCodePoint(codePoint); 1408 return result; 1409 } 1410 } 1411 }; 1412 return Tokenizer2; 1413 }
vendor: 2,905 bytes, lines 1413-1509
1413() 1414); 1415var Parser = ( 1416 /** @class */ 1417 function() { 1418 function Parser2(tokens) { 1419 this._tokens = tokens; 1420 } 1421 Parser2.create = function(value) { 1422 var tokenizer = new Tokenizer(); 1423 tokenizer.write(value); 1424 return new Parser2(tokenizer.read()); 1425 }; 1426 Parser2.parseValue = function(value) { 1427 return Parser2.create(value).parseComponentValue(); 1428 }; 1429 Parser2.parseValues = function(value) { 1430 return Parser2.create(value).parseComponentValues(); 1431 }; 1432 Parser2.prototype.parseComponentValue = function() { 1433 var token = this.consumeToken(); 1434 while (token.type === 31) { 1435 token = this.consumeToken(); 1436 } 1437 if (token.type === 32) { 1438 throw new SyntaxError("Error parsing CSS component value, unexpected EOF"); 1439 } 1440 this.reconsumeToken(token); 1441 var value = this.consumeComponentValue(); 1442 do { 1443 token = this.consumeToken(); 1444 } while (token.type === 31); 1445 if (token.type === 32) { 1446 return value; 1447 } 1448 throw new SyntaxError("Error parsing CSS component value, multiple values found when expecting only one"); 1449 }; 1450 Parser2.prototype.parseComponentValues = function() { 1451 var values = []; 1452 while (true) { 1453 var value = this.consumeComponentValue(); 1454 if (value.type === 32) { 1455 return values; 1456 } 1457 values.push(value); 1458 values.push(); 1459 } 1460 }; 1461 Parser2.prototype.consumeComponentValue = function() { 1462 var token = this.consumeToken(); 1463 switch (token.type) { 1464 case 11: 1465 case 28: 1466 case 2: 1467 return this.consumeSimpleBlock(token.type); 1468 case 19: 1469 return this.consumeFunction(token); 1470 } 1471 return token; 1472 }; 1473 Parser2.prototype.consumeSimpleBlock = function(type) { 1474 var block = { type, values: [] }; 1475 var token = this.consumeToken(); 1476 while (true) { 1477 if (token.type === 32 || isEndingTokenFor(token, type)) { 1478 return block; 1479 } 1480 this.reconsumeToken(token); 1481 block.values.push(this.consumeComponentValue()); 1482 token = this.consumeToken(); 1483 } 1484 }; 1485 Parser2.prototype.consumeFunction = function(functionToken) { 1486 var cssFunction = { 1487 name: functionToken.value, 1488 values: [], 1489 type: 18 1490 /* FUNCTION */ 1491 }; 1492 while (true) { 1493 var token = this.consumeToken(); 1494 if (token.type === 32 || token.type === 3) { 1495 return cssFunction; 1496 } 1497 this.reconsumeToken(token); 1498 cssFunction.values.push(this.consumeComponentValue()); 1499 } 1500 }; 1501 Parser2.prototype.consumeToken = function() { 1502 var token = this._tokens.shift(); 1503 return typeof token === "undefined" ? EOF_TOKEN : token; 1504 }; 1505 Parser2.prototype.reconsumeToken = function(token) { 1506 this._tokens.unshift(token); 1507 }; 1508 return Parser2; 1509 }
vendor: 52,086 bytes, lines 1509-3560
1509() 1510); 1511var isDimensionToken = function(token) { 1512 return token.type === 15; 1513}; 1514var isNumberToken = function(token) { 1515 return token.type === 17; 1516}; 1517var isIdentToken = function(token) { 1518 return token.type === 20; 1519}; 1520var isStringToken = function(token) { 1521 return token.type === 0; 1522}; 1523var isIdentWithValue = function(token, value) { 1524 return isIdentToken(token) && token.value === value; 1525}; 1526var nonWhiteSpace = function(token) { 1527 return token.type !== 31; 1528}; 1529var nonFunctionArgSeparator = function(token) { 1530 return token.type !== 31 && token.type !== 4; 1531}; 1532var parseFunctionArgs = function(tokens) { 1533 var args = []; 1534 var arg = []; 1535 tokens.forEach(function(token) { 1536 if (token.type === 4) { 1537 if (arg.length === 0) { 1538 throw new Error("Error parsing function args, zero tokens for arg"); 1539 } 1540 args.push(arg); 1541 arg = []; 1542 return; 1543 } 1544 if (token.type !== 31) { 1545 arg.push(token); 1546 } 1547 }); 1548 if (arg.length) { 1549 args.push(arg); 1550 } 1551 return args; 1552}; 1553var isEndingTokenFor = function(token, type) { 1554 if (type === 11 && token.type === 12) { 1555 return true; 1556 } 1557 if (type === 28 && token.type === 29) { 1558 return true; 1559 } 1560 return type === 2 && token.type === 3; 1561}; 1562var isLength = function(token) { 1563 return token.type === 17 || token.type === 15; 1564}; 1565var isLengthPercentage = function(token) { 1566 return token.type === 16 || isLength(token); 1567}; 1568var parseLengthPercentageTuple = function(tokens) { 1569 return tokens.length > 1 ? [tokens[0], tokens[1]] : [tokens[0]]; 1570}; 1571var ZERO_LENGTH = { 1572 type: 17, 1573 number: 0, 1574 flags: FLAG_INTEGER 1575}; 1576var FIFTY_PERCENT = { 1577 type: 16, 1578 number: 50, 1579 flags: FLAG_INTEGER 1580}; 1581var HUNDRED_PERCENT = { 1582 type: 16, 1583 number: 100, 1584 flags: FLAG_INTEGER 1585}; 1586var getAbsoluteValueForTuple = function(tuple, width, height) { 1587 var x = tuple[0], y = tuple[1]; 1588 return [getAbsoluteValue(x, width), getAbsoluteValue(typeof y !== "undefined" ? y : x, height)]; 1589}; 1590var getAbsoluteValue = function(token, parent) { 1591 if (token.type === 16) { 1592 return token.number / 100 * parent; 1593 } 1594 if (isDimensionToken(token)) { 1595 switch (token.unit) { 1596 case "rem": 1597 case "em": 1598 return 16 * token.number; 1599 // TODO use correct font-size 1600 case "px": 1601 default: 1602 return token.number; 1603 } 1604 } 1605 return token.number; 1606}; 1607var DEG = "deg"; 1608var GRAD = "grad"; 1609var RAD = "rad"; 1610var TURN = "turn"; 1611var angle = { 1612 name: "angle", 1613 parse: function(_context, value) { 1614 if (value.type === 15) { 1615 switch (value.unit) { 1616 case DEG: 1617 return Math.PI * value.number / 180; 1618 case GRAD: 1619 return Math.PI / 200 * value.number; 1620 case RAD: 1621 return value.number; 1622 case TURN: 1623 return Math.PI * 2 * value.number; 1624 } 1625 } 1626 throw new Error("Unsupported angle type"); 1627 } 1628}; 1629var isAngle = function(value) { 1630 if (value.type === 15) { 1631 if (value.unit === DEG || value.unit === GRAD || value.unit === RAD || value.unit === TURN) { 1632 return true; 1633 } 1634 } 1635 return false; 1636}; 1637var parseNamedSide = function(tokens) { 1638 var sideOrCorner = tokens.filter(isIdentToken).map(function(ident) { 1639 return ident.value; 1640 }).join(" "); 1641 switch (sideOrCorner) { 1642 case "to bottom right": 1643 case "to right bottom": 1644 case "left top": 1645 case "top left": 1646 return [ZERO_LENGTH, ZERO_LENGTH]; 1647 case "to top": 1648 case "bottom": 1649 return deg(0); 1650 case "to bottom left": 1651 case "to left bottom": 1652 case "right top": 1653 case "top right": 1654 return [ZERO_LENGTH, HUNDRED_PERCENT]; 1655 case "to right": 1656 case "left": 1657 return deg(90); 1658 case "to top left": 1659 case "to left top": 1660 case "right bottom": 1661 case "bottom right": 1662 return [HUNDRED_PERCENT, HUNDRED_PERCENT]; 1663 case "to bottom": 1664 case "top": 1665 return deg(180); 1666 case "to top right": 1667 case "to right top": 1668 case "left bottom": 1669 case "bottom left": 1670 return [HUNDRED_PERCENT, ZERO_LENGTH]; 1671 case "to left": 1672 case "right": 1673 return deg(270); 1674 } 1675 return 0; 1676}; 1677var deg = function(deg2) { 1678 return Math.PI * deg2 / 180; 1679}; 1680var color$1 = { 1681 name: "color", 1682 parse: function(context, value) { 1683 if (value.type === 18) { 1684 var colorFunction = SUPPORTED_COLOR_FUNCTIONS[value.name]; 1685 if (typeof colorFunction === "undefined") { 1686 throw new Error('Attempting to parse an unsupported color function "' + value.name + '"'); 1687 } 1688 return colorFunction(context, value.values); 1689 } 1690 if (value.type === 5) { 1691 if (value.value.length === 3) { 1692 var r = value.value.substring(0, 1); 1693 var g = value.value.substring(1, 2); 1694 var b = value.value.substring(2, 3); 1695 return pack(parseInt(r + r, 16), parseInt(g + g, 16), parseInt(b + b, 16), 1); 1696 } 1697 if (value.value.length === 4) { 1698 var r = value.value.substring(0, 1); 1699 var g = value.value.substring(1, 2); 1700 var b = value.value.substring(2, 3); 1701 var a2 = value.value.substring(3, 4); 1702 return pack(parseInt(r + r, 16), parseInt(g + g, 16), parseInt(b + b, 16), parseInt(a2 + a2, 16) / 255); 1703 } 1704 if (value.value.length === 6) { 1705 var r = value.value.substring(0, 2); 1706 var g = value.value.substring(2, 4); 1707 var b = value.value.substring(4, 6); 1708 return pack(parseInt(r, 16), parseInt(g, 16), parseInt(b, 16), 1); 1709 } 1710 if (value.value.length === 8) { 1711 var r = value.value.substring(0, 2); 1712 var g = value.value.substring(2, 4); 1713 var b = value.value.substring(4, 6); 1714 var a2 = value.value.substring(6, 8); 1715 return pack(parseInt(r, 16), parseInt(g, 16), parseInt(b, 16), parseInt(a2, 16) / 255); 1716 } 1717 } 1718 if (value.type === 20) { 1719 var namedColor = COLORS[value.value.toUpperCase()]; 1720 if (typeof namedColor !== "undefined") { 1721 return namedColor; 1722 } 1723 } 1724 return COLORS.TRANSPARENT; 1725 } 1726}; 1727var isTransparent = function(color2) { 1728 return (255 & color2) === 0; 1729}; 1730var asString = function(color2) { 1731 var alpha = 255 & color2; 1732 var blue = 255 & color2 >> 8; 1733 var green = 255 & color2 >> 16; 1734 var red = 255 & color2 >> 24; 1735 return alpha < 255 ? "rgba(" + red + "," + green + "," + blue + "," + alpha / 255 + ")" : "rgb(" + red + "," + green + "," + blue + ")"; 1736}; 1737var pack = function(r, g, b, a2) { 1738 return (r << 24 | g << 16 | b << 8 | Math.round(a2 * 255) << 0) >>> 0; 1739}; 1740var getTokenColorValue = function(token, i) { 1741 if (token.type === 17) { 1742 return token.number; 1743 } 1744 if (token.type === 16) { 1745 var max = i === 3 ? 1 : 255; 1746 return i === 3 ? token.number / 100 * max : Math.round(token.number / 100 * max); 1747 } 1748 return 0; 1749}; 1750var rgb = function(_context, args) { 1751 var tokens = args.filter(nonFunctionArgSeparator); 1752 if (tokens.length === 3) { 1753 var _a = tokens.map(getTokenColorValue), r = _a[0], g = _a[1], b = _a[2]; 1754 return pack(r, g, b, 1); 1755 } 1756 if (tokens.length === 4) { 1757 var _b = tokens.map(getTokenColorValue), r = _b[0], g = _b[1], b = _b[2], a2 = _b[3]; 1758 return pack(r, g, b, a2); 1759 } 1760 return 0; 1761}; 1762function hue2rgb(t1, t2, hue) { 1763 if (hue < 0) { 1764 hue += 1; 1765 } 1766 if (hue >= 1) { 1767 hue -= 1; 1768 } 1769 if (hue < 1 / 6) { 1770 return (t2 - t1) * hue * 6 + t1; 1771 } else if (hue < 1 / 2) { 1772 return t2; 1773 } else if (hue < 2 / 3) { 1774 return (t2 - t1) * 6 * (2 / 3 - hue) + t1; 1775 } else { 1776 return t1; 1777 } 1778} 1779var hsl = function(context, args) { 1780 var tokens = args.filter(nonFunctionArgSeparator); 1781 var hue = tokens[0], saturation = tokens[1], lightness = tokens[2], alpha = tokens[3]; 1782 var h = (hue.type === 17 ? deg(hue.number) : angle.parse(context, hue)) / (Math.PI * 2); 1783 var s = isLengthPercentage(saturation) ? saturation.number / 100 : 0; 1784 var l = isLengthPercentage(lightness) ? lightness.number / 100 : 0; 1785 var a2 = typeof alpha !== "undefined" && isLengthPercentage(alpha) ? getAbsoluteValue(alpha, 1) : 1; 1786 if (s === 0) { 1787 return pack(l * 255, l * 255, l * 255, 1); 1788 } 1789 var t2 = l <= 0.5 ? l * (s + 1) : l + s - l * s; 1790 var t1 = l * 2 - t2; 1791 var r = hue2rgb(t1, t2, h + 1 / 3); 1792 var g = hue2rgb(t1, t2, h); 1793 var b = hue2rgb(t1, t2, h - 1 / 3); 1794 return pack(r * 255, g * 255, b * 255, a2); 1795}; 1796var SUPPORTED_COLOR_FUNCTIONS = { 1797 hsl, 1798 hsla: hsl, 1799 rgb, 1800 rgba: rgb 1801}; 1802var parseColor = function(context, value) { 1803 return color$1.parse(context, Parser.create(value).parseComponentValue()); 1804}; 1805var COLORS = { 1806 ALICEBLUE: 4042850303, 1807 ANTIQUEWHITE: 4209760255, 1808 AQUA: 16777215, 1809 AQUAMARINE: 2147472639, 1810 AZURE: 4043309055, 1811 BEIGE: 4126530815, 1812 BISQUE: 4293182719, 1813 BLACK: 255, 1814 BLANCHEDALMOND: 4293643775, 1815 BLUE: 65535, 1816 BLUEVIOLET: 2318131967, 1817 BROWN: 2771004159, 1818 BURLYWOOD: 3736635391, 1819 CADETBLUE: 1604231423, 1820 CHARTREUSE: 2147418367, 1821 CHOCOLATE: 3530104575, 1822 CORAL: 4286533887, 1823 CORNFLOWERBLUE: 1687547391, 1824 CORNSILK: 4294499583, 1825 CRIMSON: 3692313855, 1826 CYAN: 16777215, 1827 DARKBLUE: 35839, 1828 DARKCYAN: 9145343, 1829 DARKGOLDENROD: 3095837695, 1830 DARKGRAY: 2846468607, 1831 DARKGREEN: 6553855, 1832 DARKGREY: 2846468607, 1833 DARKKHAKI: 3182914559, 1834 DARKMAGENTA: 2332068863, 1835 DARKOLIVEGREEN: 1433087999, 1836 DARKORANGE: 4287365375, 1837 DARKORCHID: 2570243327, 1838 DARKRED: 2332033279, 1839 DARKSALMON: 3918953215, 1840 DARKSEAGREEN: 2411499519, 1841 DARKSLATEBLUE: 1211993087, 1842 DARKSLATEGRAY: 793726975, 1843 DARKSLATEGREY: 793726975, 1844 DARKTURQUOISE: 13554175, 1845 DARKVIOLET: 2483082239, 1846 DEEPPINK: 4279538687, 1847 DEEPSKYBLUE: 12582911, 1848 DIMGRAY: 1768516095, 1849 DIMGREY: 1768516095, 1850 DODGERBLUE: 512819199, 1851 FIREBRICK: 2988581631, 1852 FLORALWHITE: 4294635775, 1853 FORESTGREEN: 579543807, 1854 FUCHSIA: 4278255615, 1855 GAINSBORO: 3705462015, 1856 GHOSTWHITE: 4177068031, 1857 GOLD: 4292280575, 1858 GOLDENROD: 3668254975, 1859 GRAY: 2155905279, 1860 GREEN: 8388863, 1861 GREENYELLOW: 2919182335, 1862 GREY: 2155905279, 1863 HONEYDEW: 4043305215, 1864 HOTPINK: 4285117695, 1865 INDIANRED: 3445382399, 1866 INDIGO: 1258324735, 1867 IVORY: 4294963455, 1868 KHAKI: 4041641215, 1869 LAVENDER: 3873897215, 1870 LAVENDERBLUSH: 4293981695, 1871 LAWNGREEN: 2096890111, 1872 LEMONCHIFFON: 4294626815, 1873 LIGHTBLUE: 2916673279, 1874 LIGHTCORAL: 4034953471, 1875 LIGHTCYAN: 3774873599, 1876 LIGHTGOLDENRODYELLOW: 4210742015, 1877 LIGHTGRAY: 3553874943, 1878 LIGHTGREEN: 2431553791, 1879 LIGHTGREY: 3553874943, 1880 LIGHTPINK: 4290167295, 1881 LIGHTSALMON: 4288707327, 1882 LIGHTSEAGREEN: 548580095, 1883 LIGHTSKYBLUE: 2278488831, 1884 LIGHTSLATEGRAY: 2005441023, 1885 LIGHTSLATEGREY: 2005441023, 1886 LIGHTSTEELBLUE: 2965692159, 1887 LIGHTYELLOW: 4294959359, 1888 LIME: 16711935, 1889 LIMEGREEN: 852308735, 1890 LINEN: 4210091775, 1891 MAGENTA: 4278255615, 1892 MAROON: 2147483903, 1893 MEDIUMAQUAMARINE: 1724754687, 1894 MEDIUMBLUE: 52735, 1895 MEDIUMORCHID: 3126187007, 1896 MEDIUMPURPLE: 2473647103, 1897 MEDIUMSEAGREEN: 1018393087, 1898 MEDIUMSLATEBLUE: 2070474495, 1899 MEDIUMSPRINGGREEN: 16423679, 1900 MEDIUMTURQUOISE: 1221709055, 1901 MEDIUMVIOLETRED: 3340076543, 1902 MIDNIGHTBLUE: 421097727, 1903 MINTCREAM: 4127193855, 1904 MISTYROSE: 4293190143, 1905 MOCCASIN: 4293178879, 1906 NAVAJOWHITE: 4292783615, 1907 NAVY: 33023, 1908 OLDLACE: 4260751103, 1909 OLIVE: 2155872511, 1910 OLIVEDRAB: 1804477439, 1911 ORANGE: 4289003775, 1912 ORANGERED: 4282712319, 1913 ORCHID: 3664828159, 1914 PALEGOLDENROD: 4008225535, 1915 PALEGREEN: 2566625535, 1916 PALETURQUOISE: 2951671551, 1917 PALEVIOLETRED: 3681588223, 1918 PAPAYAWHIP: 4293907967, 1919 PEACHPUFF: 4292524543, 1920 PERU: 3448061951, 1921 PINK: 4290825215, 1922 PLUM: 3718307327, 1923 POWDERBLUE: 2967529215, 1924 PURPLE: 2147516671, 1925 REBECCAPURPLE: 1714657791, 1926 RED: 4278190335, 1927 ROSYBROWN: 3163525119, 1928 ROYALBLUE: 1097458175, 1929 SADDLEBROWN: 2336560127, 1930 SALMON: 4202722047, 1931 SANDYBROWN: 4104413439, 1932 SEAGREEN: 780883967, 1933 SEASHELL: 4294307583, 1934 SIENNA: 2689740287, 1935 SILVER: 3233857791, 1936 SKYBLUE: 2278484991, 1937 SLATEBLUE: 1784335871, 1938 SLATEGRAY: 1887473919, 1939 SLATEGREY: 1887473919, 1940 SNOW: 4294638335, 1941 SPRINGGREEN: 16744447, 1942 STEELBLUE: 1182971135, 1943 TAN: 3535047935, 1944 TEAL: 8421631, 1945 THISTLE: 3636451583, 1946 TOMATO: 4284696575, 1947 TRANSPARENT: 0, 1948 TURQUOISE: 1088475391, 1949 VIOLET: 4001558271, 1950 WHEAT: 4125012991, 1951 WHITE: 4294967295, 1952 WHITESMOKE: 4126537215, 1953 YELLOW: 4294902015, 1954 YELLOWGREEN: 2597139199 1955}; 1956var backgroundClip = { 1957 name: "background-clip", 1958 initialValue: "border-box", 1959 prefix: false, 1960 type: 1, 1961 parse: function(_context, tokens) { 1962 return tokens.map(function(token) { 1963 if (isIdentToken(token)) { 1964 switch (token.value) { 1965 case "padding-box": 1966 return 1; 1967 case "content-box": 1968 return 2; 1969 } 1970 } 1971 return 0; 1972 }); 1973 } 1974}; 1975var backgroundColor = { 1976 name: "background-color", 1977 initialValue: "transparent", 1978 prefix: false, 1979 type: 3, 1980 format: "color" 1981}; 1982var parseColorStop = function(context, args) { 1983 var color2 = color$1.parse(context, args[0]); 1984 var stop = args[1]; 1985 return stop && isLengthPercentage(stop) ? { color: color2, stop } : { color: color2, stop: null }; 1986}; 1987var processColorStops = function(stops, lineLength) { 1988 var first = stops[0]; 1989 var last = stops[stops.length - 1]; 1990 if (first.stop === null) { 1991 first.stop = ZERO_LENGTH; 1992 } 1993 if (last.stop === null) { 1994 last.stop = HUNDRED_PERCENT; 1995 } 1996 var processStops = []; 1997 var previous = 0; 1998 for (var i = 0; i < stops.length; i++) { 1999 var stop_1 = stops[i].stop; 2000 if (stop_1 !== null) { 2001 var absoluteValue = getAbsoluteValue(stop_1, lineLength); 2002 if (absoluteValue > previous) { 2003 processStops.push(absoluteValue); 2004 } else { 2005 processStops.push(previous); 2006 } 2007 previous = absoluteValue; 2008 } else { 2009 processStops.push(null); 2010 } 2011 } 2012 var gapBegin = null; 2013 for (var i = 0; i < processStops.length; i++) { 2014 var stop_2 = processStops[i]; 2015 if (stop_2 === null) { 2016 if (gapBegin === null) { 2017 gapBegin = i; 2018 } 2019 } else if (gapBegin !== null) { 2020 var gapLength = i - gapBegin; 2021 var beforeGap = processStops[gapBegin - 1]; 2022 var gapValue = (stop_2 - beforeGap) / (gapLength + 1); 2023 for (var g = 1; g <= gapLength; g++) { 2024 processStops[gapBegin + g - 1] = gapValue * g; 2025 } 2026 gapBegin = null; 2027 } 2028 } 2029 return stops.map(function(_a, i2) { 2030 var color2 = _a.color; 2031 return { color: color2, stop: Math.max(Math.min(1, processStops[i2] / lineLength), 0) }; 2032 }); 2033}; 2034var getAngleFromCorner = function(corner, width, height) { 2035 var centerX = width / 2; 2036 var centerY = height / 2; 2037 var x = getAbsoluteValue(corner[0], width) - centerX; 2038 var y = centerY - getAbsoluteValue(corner[1], height); 2039 return (Math.atan2(y, x) + Math.PI * 2) % (Math.PI * 2); 2040}; 2041var calculateGradientDirection = function(angle2, width, height) { 2042 var radian = typeof angle2 === "number" ? angle2 : getAngleFromCorner(angle2, width, height); 2043 var lineLength = Math.abs(width * Math.sin(radian)) + Math.abs(height * Math.cos(radian)); 2044 var halfWidth = width / 2; 2045 var halfHeight = height / 2; 2046 var halfLineLength = lineLength / 2; 2047 var yDiff = Math.sin(radian - Math.PI / 2) * halfLineLength; 2048 var xDiff = Math.cos(radian - Math.PI / 2) * halfLineLength; 2049 return [lineLength, halfWidth - xDiff, halfWidth + xDiff, halfHeight - yDiff, halfHeight + yDiff]; 2050}; 2051var distance = function(a2, b) { 2052 return Math.sqrt(a2 * a2 + b * b); 2053}; 2054var findCorner = function(width, height, x, y, closest) { 2055 var corners = [ 2056 [0, 0], 2057 [0, height], 2058 [width, 0], 2059 [width, height] 2060 ]; 2061 return corners.reduce(function(stat, corner) { 2062 var cx = corner[0], cy = corner[1]; 2063 var d = distance(x - cx, y - cy); 2064 if (closest ? d < stat.optimumDistance : d > stat.optimumDistance) { 2065 return { 2066 optimumCorner: corner, 2067 optimumDistance: d 2068 }; 2069 } 2070 return stat; 2071 }, { 2072 optimumDistance: closest ? Infinity : -Infinity, 2073 optimumCorner: null 2074 }).optimumCorner; 2075}; 2076var calculateRadius = function(gradient, x, y, width, height) { 2077 var rx = 0; 2078 var ry = 0; 2079 switch (gradient.size) { 2080 case 0: 2081 if (gradient.shape === 0) { 2082 rx = ry = Math.min(Math.abs(x), Math.abs(x - width), Math.abs(y), Math.abs(y - height)); 2083 } else if (gradient.shape === 1) { 2084 rx = Math.min(Math.abs(x), Math.abs(x - width)); 2085 ry = Math.min(Math.abs(y), Math.abs(y - height)); 2086 } 2087 break; 2088 case 2: 2089 if (gradient.shape === 0) { 2090 rx = ry = Math.min(distance(x, y), distance(x, y - height), distance(x - width, y), distance(x - width, y - height)); 2091 } else if (gradient.shape === 1) { 2092 var c = Math.min(Math.abs(y), Math.abs(y - height)) / Math.min(Math.abs(x), Math.abs(x - width)); 2093 var _a = findCorner(width, height, x, y, true), cx = _a[0], cy = _a[1]; 2094 rx = distance(cx - x, (cy - y) / c); 2095 ry = c * rx; 2096 } 2097 break; 2098 case 1: 2099 if (gradient.shape === 0) { 2100 rx = ry = Math.max(Math.abs(x), Math.abs(x - width), Math.abs(y), Math.abs(y - height)); 2101 } else if (gradient.shape === 1) { 2102 rx = Math.max(Math.abs(x), Math.abs(x - width)); 2103 ry = Math.max(Math.abs(y), Math.abs(y - height)); 2104 } 2105 break; 2106 case 3: 2107 if (gradient.shape === 0) { 2108 rx = ry = Math.max(distance(x, y), distance(x, y - height), distance(x - width, y), distance(x - width, y - height)); 2109 } else if (gradient.shape === 1) { 2110 var c = Math.max(Math.abs(y), Math.abs(y - height)) / Math.max(Math.abs(x), Math.abs(x - width)); 2111 var _b = findCorner(width, height, x, y, false), cx = _b[0], cy = _b[1]; 2112 rx = distance(cx - x, (cy - y) / c); 2113 ry = c * rx; 2114 } 2115 break; 2116 } 2117 if (Array.isArray(gradient.size)) { 2118 rx = getAbsoluteValue(gradient.size[0], width); 2119 ry = gradient.size.length === 2 ? getAbsoluteValue(gradient.size[1], height) : rx; 2120 } 2121 return [rx, ry]; 2122}; 2123var linearGradient = function(context, tokens) { 2124 var angle$1 = deg(180); 2125 var stops = []; 2126 parseFunctionArgs(tokens).forEach(function(arg, i) { 2127 if (i === 0) { 2128 var firstToken = arg[0]; 2129 if (firstToken.type === 20 && firstToken.value === "to") { 2130 angle$1 = parseNamedSide(arg); 2131 return; 2132 } else if (isAngle(firstToken)) { 2133 angle$1 = angle.parse(context, firstToken); 2134 return; 2135 } 2136 } 2137 var colorStop = parseColorStop(context, arg); 2138 stops.push(colorStop); 2139 }); 2140 return { 2141 angle: angle$1, 2142 stops, 2143 type: 1 2144 /* LINEAR_GRADIENT */ 2145 }; 2146}; 2147var prefixLinearGradient = function(context, tokens) { 2148 var angle$1 = deg(180); 2149 var stops = []; 2150 parseFunctionArgs(tokens).forEach(function(arg, i) { 2151 if (i === 0) { 2152 var firstToken = arg[0]; 2153 if (firstToken.type === 20 && ["top", "left", "right", "bottom"].indexOf(firstToken.value) !== -1) { 2154 angle$1 = parseNamedSide(arg); 2155 return; 2156 } else if (isAngle(firstToken)) { 2157 angle$1 = (angle.parse(context, firstToken) + deg(270)) % deg(360); 2158 return; 2159 } 2160 } 2161 var colorStop = parseColorStop(context, arg); 2162 stops.push(colorStop); 2163 }); 2164 return { 2165 angle: angle$1, 2166 stops, 2167 type: 1 2168 /* LINEAR_GRADIENT */ 2169 }; 2170}; 2171var webkitGradient = function(context, tokens) { 2172 var angle2 = deg(180); 2173 var stops = []; 2174 var type = 1; 2175 var shape = 0; 2176 var size = 3; 2177 var position2 = []; 2178 parseFunctionArgs(tokens).forEach(function(arg, i) { 2179 var firstToken = arg[0]; 2180 if (i === 0) { 2181 if (isIdentToken(firstToken) && firstToken.value === "linear") { 2182 type = 1; 2183 return; 2184 } else if (isIdentToken(firstToken) && firstToken.value === "radial") { 2185 type = 2; 2186 return; 2187 } 2188 } 2189 if (firstToken.type === 18) { 2190 if (firstToken.name === "from") { 2191 var color2 = color$1.parse(context, firstToken.values[0]); 2192 stops.push({ stop: ZERO_LENGTH, color: color2 }); 2193 } else if (firstToken.name === "to") { 2194 var color2 = color$1.parse(context, firstToken.values[0]); 2195 stops.push({ stop: HUNDRED_PERCENT, color: color2 }); 2196 } else if (firstToken.name === "color-stop") { 2197 var values = firstToken.values.filter(nonFunctionArgSeparator); 2198 if (values.length === 2) { 2199 var color2 = color$1.parse(context, values[1]); 2200 var stop_1 = values[0]; 2201 if (isNumberToken(stop_1)) { 2202 stops.push({ 2203 stop: { type: 16, number: stop_1.number * 100, flags: stop_1.flags }, 2204 color: color2 2205 }); 2206 } 2207 } 2208 } 2209 } 2210 }); 2211 return type === 1 ? { 2212 angle: (angle2 + deg(180)) % deg(360), 2213 stops, 2214 type 2215 } : { size, shape, stops, position: position2, type }; 2216}; 2217var CLOSEST_SIDE = "closest-side"; 2218var FARTHEST_SIDE = "farthest-side"; 2219var CLOSEST_CORNER = "closest-corner"; 2220var FARTHEST_CORNER = "farthest-corner"; 2221var CIRCLE = "circle"; 2222var ELLIPSE = "ellipse"; 2223var COVER = "cover"; 2224var CONTAIN = "contain"; 2225var radialGradient = function(context, tokens) { 2226 var shape = 0; 2227 var size = 3; 2228 var stops = []; 2229 var position2 = []; 2230 parseFunctionArgs(tokens).forEach(function(arg, i) { 2231 var isColorStop = true; 2232 if (i === 0) { 2233 var isAtPosition_1 = false; 2234 isColorStop = arg.reduce(function(acc, token) { 2235 if (isAtPosition_1) { 2236 if (isIdentToken(token)) { 2237 switch (token.value) { 2238 case "center": 2239 position2.push(FIFTY_PERCENT); 2240 return acc; 2241 case "top": 2242 case "left": 2243 position2.push(ZERO_LENGTH); 2244 return acc; 2245 case "right": 2246 case "bottom": 2247 position2.push(HUNDRED_PERCENT); 2248 return acc; 2249 } 2250 } else if (isLengthPercentage(token) || isLength(token)) { 2251 position2.push(token); 2252 } 2253 } else if (isIdentToken(token)) { 2254 switch (token.value) { 2255 case CIRCLE: 2256 shape = 0; 2257 return false; 2258 case ELLIPSE: 2259 shape = 1; 2260 return false; 2261 case "at": 2262 isAtPosition_1 = true; 2263 return false; 2264 case CLOSEST_SIDE: 2265 size = 0; 2266 return false; 2267 case COVER: 2268 case FARTHEST_SIDE: 2269 size = 1; 2270 return false; 2271 case CONTAIN: 2272 case CLOSEST_CORNER: 2273 size = 2; 2274 return false; 2275 case FARTHEST_CORNER: 2276 size = 3; 2277 return false; 2278 } 2279 } else if (isLength(token) || isLengthPercentage(token)) { 2280 if (!Array.isArray(size)) { 2281 size = []; 2282 } 2283 size.push(token); 2284 return false; 2285 } 2286 return acc; 2287 }, isColorStop); 2288 } 2289 if (isColorStop) { 2290 var colorStop = parseColorStop(context, arg); 2291 stops.push(colorStop); 2292 } 2293 }); 2294 return { 2295 size, 2296 shape, 2297 stops, 2298 position: position2, 2299 type: 2 2300 /* RADIAL_GRADIENT */ 2301 }; 2302}; 2303var prefixRadialGradient = function(context, tokens) { 2304 var shape = 0; 2305 var size = 3; 2306 var stops = []; 2307 var position2 = []; 2308 parseFunctionArgs(tokens).forEach(function(arg, i) { 2309 var isColorStop = true; 2310 if (i === 0) { 2311 isColorStop = arg.reduce(function(acc, token) { 2312 if (isIdentToken(token)) { 2313 switch (token.value) { 2314 case "center": 2315 position2.push(FIFTY_PERCENT); 2316 return false; 2317 case "top": 2318 case "left": 2319 position2.push(ZERO_LENGTH); 2320 return false; 2321 case "right": 2322 case "bottom": 2323 position2.push(HUNDRED_PERCENT); 2324 return false; 2325 } 2326 } else if (isLengthPercentage(token) || isLength(token)) { 2327 position2.push(token); 2328 return false; 2329 } 2330 return acc; 2331 }, isColorStop); 2332 } else if (i === 1) { 2333 isColorStop = arg.reduce(function(acc, token) { 2334 if (isIdentToken(token)) { 2335 switch (token.value) { 2336 case CIRCLE: 2337 shape = 0; 2338 return false; 2339 case ELLIPSE: 2340 shape = 1; 2341 return false; 2342 case CONTAIN: 2343 case CLOSEST_SIDE: 2344 size = 0; 2345 return false; 2346 case FARTHEST_SIDE: 2347 size = 1; 2348 return false; 2349 case CLOSEST_CORNER: 2350 size = 2; 2351 return false; 2352 case COVER: 2353 case FARTHEST_CORNER: 2354 size = 3; 2355 return false; 2356 } 2357 } else if (isLength(token) || isLengthPercentage(token)) { 2358 if (!Array.isArray(size)) { 2359 size = []; 2360 } 2361 size.push(token); 2362 return false; 2363 } 2364 return acc; 2365 }, isColorStop); 2366 } 2367 if (isColorStop) { 2368 var colorStop = parseColorStop(context, arg); 2369 stops.push(colorStop); 2370 } 2371 }); 2372 return { 2373 size, 2374 shape, 2375 stops, 2376 position: position2, 2377 type: 2 2378 /* RADIAL_GRADIENT */ 2379 }; 2380}; 2381var isLinearGradient = function(background) { 2382 return background.type === 1; 2383}; 2384var isRadialGradient = function(background) { 2385 return background.type === 2; 2386}; 2387var image = { 2388 name: "image", 2389 parse: function(context, value) { 2390 if (value.type === 22) { 2391 var image_1 = { 2392 url: value.value, 2393 type: 0 2394 /* URL */ 2395 }; 2396 context.cache.addImage(value.value); 2397 return image_1; 2398 } 2399 if (value.type === 18) { 2400 var imageFunction = SUPPORTED_IMAGE_FUNCTIONS[value.name]; 2401 if (typeof imageFunction === "undefined") { 2402 throw new Error('Attempting to parse an unsupported image function "' + value.name + '"'); 2403 } 2404 return imageFunction(context, value.values); 2405 } 2406 throw new Error("Unsupported image type " + value.type); 2407 } 2408}; 2409function isSupportedImage(value) { 2410 return !(value.type === 20 && value.value === "none") && (value.type !== 18 || !!SUPPORTED_IMAGE_FUNCTIONS[value.name]); 2411} 2412var SUPPORTED_IMAGE_FUNCTIONS = { 2413 "linear-gradient": linearGradient, 2414 "-moz-linear-gradient": prefixLinearGradient, 2415 "-ms-linear-gradient": prefixLinearGradient, 2416 "-o-linear-gradient": prefixLinearGradient, 2417 "-webkit-linear-gradient": prefixLinearGradient, 2418 "radial-gradient": radialGradient, 2419 "-moz-radial-gradient": prefixRadialGradient, 2420 "-ms-radial-gradient": prefixRadialGradient, 2421 "-o-radial-gradient": prefixRadialGradient, 2422 "-webkit-radial-gradient": prefixRadialGradient, 2423 "-webkit-gradient": webkitGradient 2424}; 2425var backgroundImage = { 2426 name: "background-image", 2427 initialValue: "none", 2428 type: 1, 2429 prefix: false, 2430 parse: function(context, tokens) { 2431 if (tokens.length === 0) { 2432 return []; 2433 } 2434 var first = tokens[0]; 2435 if (first.type === 20 && first.value === "none") { 2436 return []; 2437 } 2438 return tokens.filter(function(value) { 2439 return nonFunctionArgSeparator(value) && isSupportedImage(value); 2440 }).map(function(value) { 2441 return image.parse(context, value); 2442 }); 2443 } 2444}; 2445var backgroundOrigin = { 2446 name: "background-origin", 2447 initialValue: "border-box", 2448 prefix: false, 2449 type: 1, 2450 parse: function(_context, tokens) { 2451 return tokens.map(function(token) { 2452 if (isIdentToken(token)) { 2453 switch (token.value) { 2454 case "padding-box": 2455 return 1; 2456 case "content-box": 2457 return 2; 2458 } 2459 } 2460 return 0; 2461 }); 2462 } 2463}; 2464var backgroundPosition = { 2465 name: "background-position", 2466 initialValue: "0% 0%", 2467 type: 1, 2468 prefix: false, 2469 parse: function(_context, tokens) { 2470 return parseFunctionArgs(tokens).map(function(values) { 2471 return values.filter(isLengthPercentage); 2472 }).map(parseLengthPercentageTuple); 2473 } 2474}; 2475var backgroundRepeat = { 2476 name: "background-repeat", 2477 initialValue: "repeat", 2478 prefix: false, 2479 type: 1, 2480 parse: function(_context, tokens) { 2481 return parseFunctionArgs(tokens).map(function(values) { 2482 return values.filter(isIdentToken).map(function(token) { 2483 return token.value; 2484 }).join(" "); 2485 }).map(parseBackgroundRepeat); 2486 } 2487}; 2488var parseBackgroundRepeat = function(value) { 2489 switch (value) { 2490 case "no-repeat": 2491 return 1; 2492 case "repeat-x": 2493 case "repeat no-repeat": 2494 return 2; 2495 case "repeat-y": 2496 case "no-repeat repeat": 2497 return 3; 2498 case "repeat": 2499 default: 2500 return 0; 2501 } 2502}; 2503var BACKGROUND_SIZE; 2504(function(BACKGROUND_SIZE2) { 2505 BACKGROUND_SIZE2["AUTO"] = "auto"; 2506 BACKGROUND_SIZE2["CONTAIN"] = "contain"; 2507 BACKGROUND_SIZE2["COVER"] = "cover"; 2508})(BACKGROUND_SIZE || (BACKGROUND_SIZE = {})); 2509var backgroundSize = { 2510 name: "background-size", 2511 initialValue: "0", 2512 prefix: false, 2513 type: 1, 2514 parse: function(_context, tokens) { 2515 return parseFunctionArgs(tokens).map(function(values) { 2516 return values.filter(isBackgroundSizeInfoToken); 2517 }); 2518 } 2519}; 2520var isBackgroundSizeInfoToken = function(value) { 2521 return isIdentToken(value) || isLengthPercentage(value); 2522}; 2523var borderColorForSide = function(side) { 2524 return { 2525 name: "border-" + side + "-color", 2526 initialValue: "transparent", 2527 prefix: false, 2528 type: 3, 2529 format: "color" 2530 }; 2531}; 2532var borderTopColor = borderColorForSide("top"); 2533var borderRightColor = borderColorForSide("right"); 2534var borderBottomColor = borderColorForSide("bottom"); 2535var borderLeftColor = borderColorForSide("left"); 2536var borderRadiusForSide = function(side) { 2537 return { 2538 name: "border-radius-" + side, 2539 initialValue: "0 0", 2540 prefix: false, 2541 type: 1, 2542 parse: function(_context, tokens) { 2543 return parseLengthPercentageTuple(tokens.filter(isLengthPercentage)); 2544 } 2545 }; 2546}; 2547var borderTopLeftRadius = borderRadiusForSide("top-left"); 2548var borderTopRightRadius = borderRadiusForSide("top-right"); 2549var borderBottomRightRadius = borderRadiusForSide("bottom-right"); 2550var borderBottomLeftRadius = borderRadiusForSide("bottom-left"); 2551var borderStyleForSide = function(side) { 2552 return { 2553 name: "border-" + side + "-style", 2554 initialValue: "solid", 2555 prefix: false, 2556 type: 2, 2557 parse: function(_context, style) { 2558 switch (style) { 2559 case "none": 2560 return 0; 2561 case "dashed": 2562 return 2; 2563 case "dotted": 2564 return 3; 2565 case "double": 2566 return 4; 2567 } 2568 return 1; 2569 } 2570 }; 2571}; 2572var borderTopStyle = borderStyleForSide("top"); 2573var borderRightStyle = borderStyleForSide("right"); 2574var borderBottomStyle = borderStyleForSide("bottom"); 2575var borderLeftStyle = borderStyleForSide("left"); 2576var borderWidthForSide = function(side) { 2577 return { 2578 name: "border-" + side + "-width", 2579 initialValue: "0", 2580 type: 0, 2581 prefix: false, 2582 parse: function(_context, token) { 2583 if (isDimensionToken(token)) { 2584 return token.number; 2585 } 2586 return 0; 2587 } 2588 }; 2589}; 2590var borderTopWidth = borderWidthForSide("top"); 2591var borderRightWidth = borderWidthForSide("right"); 2592var borderBottomWidth = borderWidthForSide("bottom"); 2593var borderLeftWidth = borderWidthForSide("left"); 2594var color = { 2595 name: "color", 2596 initialValue: "transparent", 2597 prefix: false, 2598 type: 3, 2599 format: "color" 2600}; 2601var direction = { 2602 name: "direction", 2603 initialValue: "ltr", 2604 prefix: false, 2605 type: 2, 2606 parse: function(_context, direction2) { 2607 switch (direction2) { 2608 case "rtl": 2609 return 1; 2610 case "ltr": 2611 default: 2612 return 0; 2613 } 2614 } 2615}; 2616var display = { 2617 name: "display", 2618 initialValue: "inline-block", 2619 prefix: false, 2620 type: 1, 2621 parse: function(_context, tokens) { 2622 return tokens.filter(isIdentToken).reduce( 2623 function(bit, token) { 2624 return bit | parseDisplayValue(token.value); 2625 }, 2626 0 2627 /* NONE */ 2628 ); 2629 } 2630}; 2631var parseDisplayValue = function(display2) { 2632 switch (display2) { 2633 case "block": 2634 case "-webkit-box": 2635 return 2; 2636 case "inline": 2637 return 4; 2638 case "run-in": 2639 return 8; 2640 case "flow": 2641 return 16; 2642 case "flow-root": 2643 return 32; 2644 case "table": 2645 return 64; 2646 case "flex": 2647 case "-webkit-flex": 2648 return 128; 2649 case "grid": 2650 case "-ms-grid": 2651 return 256; 2652 case "ruby": 2653 return 512; 2654 case "subgrid": 2655 return 1024; 2656 case "list-item": 2657 return 2048; 2658 case "table-row-group": 2659 return 4096; 2660 case "table-header-group": 2661 return 8192; 2662 case "table-footer-group": 2663 return 16384; 2664 case "table-row": 2665 return 32768; 2666 case "table-cell": 2667 return 65536; 2668 case "table-column-group": 2669 return 131072; 2670 case "table-column": 2671 return 262144; 2672 case "table-caption": 2673 return 524288; 2674 case "ruby-base": 2675 return 1048576; 2676 case "ruby-text": 2677 return 2097152; 2678 case "ruby-base-container": 2679 return 4194304; 2680 case "ruby-text-container": 2681 return 8388608; 2682 case "contents": 2683 return 16777216; 2684 case "inline-block": 2685 return 33554432; 2686 case "inline-list-item": 2687 return 67108864; 2688 case "inline-table": 2689 return 134217728; 2690 case "inline-flex": 2691 return 268435456; 2692 case "inline-grid": 2693 return 536870912; 2694 } 2695 return 0; 2696}; 2697var float = { 2698 name: "float", 2699 initialValue: "none", 2700 prefix: false, 2701 type: 2, 2702 parse: function(_context, float2) { 2703 switch (float2) { 2704 case "left": 2705 return 1; 2706 case "right": 2707 return 2; 2708 case "inline-start": 2709 return 3; 2710 case "inline-end": 2711 return 4; 2712 } 2713 return 0; 2714 } 2715}; 2716var letterSpacing = { 2717 name: "letter-spacing", 2718 initialValue: "0", 2719 prefix: false, 2720 type: 0, 2721 parse: function(_context, token) { 2722 if (token.type === 20 && token.value === "normal") { 2723 return 0; 2724 } 2725 if (token.type === 17) { 2726 return token.number; 2727 } 2728 if (token.type === 15) { 2729 return token.number; 2730 } 2731 return 0; 2732 } 2733}; 2734var LINE_BREAK; 2735(function(LINE_BREAK2) { 2736 LINE_BREAK2["NORMAL"] = "normal"; 2737 LINE_BREAK2["STRICT"] = "strict"; 2738})(LINE_BREAK || (LINE_BREAK = {})); 2739var lineBreak = { 2740 name: "line-break", 2741 initialValue: "normal", 2742 prefix: false, 2743 type: 2, 2744 parse: function(_context, lineBreak2) { 2745 switch (lineBreak2) { 2746 case "strict": 2747 return LINE_BREAK.STRICT; 2748 case "normal": 2749 default: 2750 return LINE_BREAK.NORMAL; 2751 } 2752 } 2753}; 2754var lineHeight = { 2755 name: "line-height", 2756 initialValue: "normal", 2757 prefix: false, 2758 type: 4 2759 /* TOKEN_VALUE */ 2760}; 2761var computeLineHeight = function(token, fontSize2) { 2762 if (isIdentToken(token) && token.value === "normal") { 2763 return 1.2 * fontSize2; 2764 } else if (token.type === 17) { 2765 return fontSize2 * token.number; 2766 } else if (isLengthPercentage(token)) { 2767 return getAbsoluteValue(token, fontSize2); 2768 } 2769 return fontSize2; 2770}; 2771var listStyleImage = { 2772 name: "list-style-image", 2773 initialValue: "none", 2774 type: 0, 2775 prefix: false, 2776 parse: function(context, token) { 2777 if (token.type === 20 && token.value === "none") { 2778 return null; 2779 } 2780 return image.parse(context, token); 2781 } 2782}; 2783var listStylePosition = { 2784 name: "list-style-position", 2785 initialValue: "outside", 2786 prefix: false, 2787 type: 2, 2788 parse: function(_context, position2) { 2789 switch (position2) { 2790 case "inside": 2791 return 0; 2792 case "outside": 2793 default: 2794 return 1; 2795 } 2796 } 2797}; 2798var listStyleType = { 2799 name: "list-style-type", 2800 initialValue: "none", 2801 prefix: false, 2802 type: 2, 2803 parse: function(_context, type) { 2804 switch (type) { 2805 case "disc": 2806 return 0; 2807 case "circle": 2808 return 1; 2809 case "square": 2810 return 2; 2811 case "decimal": 2812 return 3; 2813 case "cjk-decimal": 2814 return 4; 2815 case "decimal-leading-zero": 2816 return 5; 2817 case "lower-roman": 2818 return 6; 2819 case "upper-roman": 2820 return 7; 2821 case "lower-greek": 2822 return 8; 2823 case "lower-alpha": 2824 return 9; 2825 case "upper-alpha": 2826 return 10; 2827 case "arabic-indic": 2828 return 11; 2829 case "armenian": 2830 return 12; 2831 case "bengali": 2832 return 13; 2833 case "cambodian": 2834 return 14; 2835 case "cjk-earthly-branch": 2836 return 15; 2837 case "cjk-heavenly-stem": 2838 return 16; 2839 case "cjk-ideographic": 2840 return 17; 2841 case "devanagari": 2842 return 18; 2843 case "ethiopic-numeric": 2844 return 19; 2845 case "georgian": 2846 return 20; 2847 case "gujarati": 2848 return 21; 2849 case "gurmukhi": 2850 return 22; 2851 case "hebrew": 2852 return 22; 2853 case "hiragana": 2854 return 23; 2855 case "hiragana-iroha": 2856 return 24; 2857 case "japanese-formal": 2858 return 25; 2859 case "japanese-informal": 2860 return 26; 2861 case "kannada": 2862 return 27; 2863 case "katakana": 2864 return 28; 2865 case "katakana-iroha": 2866 return 29; 2867 case "khmer": 2868 return 30; 2869 case "korean-hangul-formal": 2870 return 31; 2871 case "korean-hanja-formal": 2872 return 32; 2873 case "korean-hanja-informal": 2874 return 33; 2875 case "lao": 2876 return 34; 2877 case "lower-armenian": 2878 return 35; 2879 case "malayalam": 2880 return 36; 2881 case "mongolian": 2882 return 37; 2883 case "myanmar": 2884 return 38; 2885 case "oriya": 2886 return 39; 2887 case "persian": 2888 return 40; 2889 case "simp-chinese-formal": 2890 return 41; 2891 case "simp-chinese-informal": 2892 return 42; 2893 case "tamil": 2894 return 43; 2895 case "telugu": 2896 return 44; 2897 case "thai": 2898 return 45; 2899 case "tibetan": 2900 return 46; 2901 case "trad-chinese-formal": 2902 return 47; 2903 case "trad-chinese-informal": 2904 return 48; 2905 case "upper-armenian": 2906 return 49; 2907 case "disclosure-open": 2908 return 50; 2909 case "disclosure-closed": 2910 return 51; 2911 case "none": 2912 default: 2913 return -1; 2914 } 2915 } 2916}; 2917var marginForSide = function(side) { 2918 return { 2919 name: "margin-" + side, 2920 initialValue: "0", 2921 prefix: false, 2922 type: 4 2923 /* TOKEN_VALUE */ 2924 }; 2925}; 2926var marginTop = marginForSide("top"); 2927var marginRight = marginForSide("right"); 2928var marginBottom = marginForSide("bottom"); 2929var marginLeft = marginForSide("left"); 2930var overflow = { 2931 name: "overflow", 2932 initialValue: "visible", 2933 prefix: false, 2934 type: 1, 2935 parse: function(_context, tokens) { 2936 return tokens.filter(isIdentToken).map(function(overflow2) { 2937 switch (overflow2.value) { 2938 case "hidden": 2939 return 1; 2940 case "scroll": 2941 return 2; 2942 case "clip": 2943 return 3; 2944 case "auto": 2945 return 4; 2946 case "visible": 2947 default: 2948 return 0; 2949 } 2950 }); 2951 } 2952}; 2953var overflowWrap = { 2954 name: "overflow-wrap", 2955 initialValue: "normal", 2956 prefix: false, 2957 type: 2, 2958 parse: function(_context, overflow2) { 2959 switch (overflow2) { 2960 case "break-word": 2961 return "break-word"; 2962 case "normal": 2963 default: 2964 return "normal"; 2965 } 2966 } 2967}; 2968var paddingForSide = function(side) { 2969 return { 2970 name: "padding-" + side, 2971 initialValue: "0", 2972 prefix: false, 2973 type: 3, 2974 format: "length-percentage" 2975 }; 2976}; 2977var paddingTop = paddingForSide("top"); 2978var paddingRight = paddingForSide("right"); 2979var paddingBottom = paddingForSide("bottom"); 2980var paddingLeft = paddingForSide("left"); 2981var textAlign = { 2982 name: "text-align", 2983 initialValue: "left", 2984 prefix: false, 2985 type: 2, 2986 parse: function(_context, textAlign2) { 2987 switch (textAlign2) { 2988 case "right": 2989 return 2; 2990 case "center": 2991 case "justify": 2992 return 1; 2993 case "left": 2994 default: 2995 return 0; 2996 } 2997 } 2998}; 2999var position = { 3000 name: "position", 3001 initialValue: "static", 3002 prefix: false, 3003 type: 2, 3004 parse: function(_context, position2) { 3005 switch (position2) { 3006 case "relative": 3007 return 1; 3008 case "absolute": 3009 return 2; 3010 case "fixed": 3011 return 3; 3012 case "sticky": 3013 return 4; 3014 } 3015 return 0; 3016 } 3017}; 3018var textShadow = { 3019 name: "text-shadow", 3020 initialValue: "none", 3021 type: 1, 3022 prefix: false, 3023 parse: function(context, tokens) { 3024 if (tokens.length === 1 && isIdentWithValue(tokens[0], "none")) { 3025 return []; 3026 } 3027 return parseFunctionArgs(tokens).map(function(values) { 3028 var shadow = { 3029 color: COLORS.TRANSPARENT, 3030 offsetX: ZERO_LENGTH, 3031 offsetY: ZERO_LENGTH, 3032 blur: ZERO_LENGTH 3033 }; 3034 var c = 0; 3035 for (var i = 0; i < values.length; i++) { 3036 var token = values[i]; 3037 if (isLength(token)) { 3038 if (c === 0) { 3039 shadow.offsetX = token; 3040 } else if (c === 1) { 3041 shadow.offsetY = token; 3042 } else { 3043 shadow.blur = token; 3044 } 3045 c++; 3046 } else { 3047 shadow.color = color$1.parse(context, token); 3048 } 3049 } 3050 return shadow; 3051 }); 3052 } 3053}; 3054var textTransform = { 3055 name: "text-transform", 3056 initialValue: "none", 3057 prefix: false, 3058 type: 2, 3059 parse: function(_context, textTransform2) { 3060 switch (textTransform2) { 3061 case "uppercase": 3062 return 2; 3063 case "lowercase": 3064 return 1; 3065 case "capitalize": 3066 return 3; 3067 } 3068 return 0; 3069 } 3070}; 3071var transform$1 = { 3072 name: "transform", 3073 initialValue: "none", 3074 prefix: true, 3075 type: 0, 3076 parse: function(_context, token) { 3077 if (token.type === 20 && token.value === "none") { 3078 return null; 3079 } 3080 if (token.type === 18) { 3081 var transformFunction = SUPPORTED_TRANSFORM_FUNCTIONS[token.name]; 3082 if (typeof transformFunction === "undefined") { 3083 throw new Error('Attempting to parse an unsupported transform function "' + token.name + '"'); 3084 } 3085 return transformFunction(token.values); 3086 } 3087 return null; 3088 } 3089}; 3090var matrix = function(args) { 3091 var values = args.filter(function(arg) { 3092 return arg.type === 17; 3093 }).map(function(arg) { 3094 return arg.number; 3095 }); 3096 return values.length === 6 ? values : null; 3097}; 3098var matrix3d = function(args) { 3099 var values = args.filter(function(arg) { 3100 return arg.type === 17; 3101 }).map(function(arg) { 3102 return arg.number; 3103 }); 3104 var a1 = values[0], b1 = values[1]; 3105 values[2]; 3106 values[3]; 3107 var a2 = values[4], b2 = values[5]; 3108 values[6]; 3109 values[7]; 3110 values[8]; 3111 values[9]; 3112 values[10]; 3113 values[11]; 3114 var a4 = values[12], b4 = values[13]; 3115 values[14]; 3116 values[15]; 3117 return values.length === 16 ? [a1, b1, a2, b2, a4, b4] : null; 3118}; 3119var SUPPORTED_TRANSFORM_FUNCTIONS = { 3120 matrix, 3121 matrix3d 3122}; 3123var DEFAULT_VALUE = { 3124 type: 16, 3125 number: 50, 3126 flags: FLAG_INTEGER 3127}; 3128var DEFAULT = [DEFAULT_VALUE, DEFAULT_VALUE]; 3129var transformOrigin = { 3130 name: "transform-origin", 3131 initialValue: "50% 50%", 3132 prefix: true, 3133 type: 1, 3134 parse: function(_context, tokens) { 3135 var origins = tokens.filter(isLengthPercentage); 3136 if (origins.length !== 2) { 3137 return DEFAULT; 3138 } 3139 return [origins[0], origins[1]]; 3140 } 3141}; 3142var visibility = { 3143 name: "visible", 3144 initialValue: "none", 3145 prefix: false, 3146 type: 2, 3147 parse: function(_context, visibility2) { 3148 switch (visibility2) { 3149 case "hidden": 3150 return 1; 3151 case "collapse": 3152 return 2; 3153 case "visible": 3154 default: 3155 return 0; 3156 } 3157 } 3158}; 3159var WORD_BREAK; 3160(function(WORD_BREAK2) { 3161 WORD_BREAK2["NORMAL"] = "normal"; 3162 WORD_BREAK2["BREAK_ALL"] = "break-all"; 3163 WORD_BREAK2["KEEP_ALL"] = "keep-all"; 3164})(WORD_BREAK || (WORD_BREAK = {})); 3165var wordBreak = { 3166 name: "word-break", 3167 initialValue: "normal", 3168 prefix: false, 3169 type: 2, 3170 parse: function(_context, wordBreak2) { 3171 switch (wordBreak2) { 3172 case "break-all": 3173 return WORD_BREAK.BREAK_ALL; 3174 case "keep-all": 3175 return WORD_BREAK.KEEP_ALL; 3176 case "normal": 3177 default: 3178 return WORD_BREAK.NORMAL; 3179 } 3180 } 3181}; 3182var zIndex = { 3183 name: "z-index", 3184 initialValue: "auto", 3185 prefix: false, 3186 type: 0, 3187 parse: function(_context, token) { 3188 if (token.type === 20) { 3189 return { auto: true, order: 0 }; 3190 } 3191 if (isNumberToken(token)) { 3192 return { auto: false, order: token.number }; 3193 } 3194 throw new Error("Invalid z-index number parsed"); 3195 } 3196}; 3197var time = { 3198 name: "time", 3199 parse: function(_context, value) { 3200 if (value.type === 15) { 3201 switch (value.unit.toLowerCase()) { 3202 case "s": 3203 return 1e3 * value.number; 3204 case "ms": 3205 return value.number; 3206 } 3207 } 3208 throw new Error("Unsupported time type"); 3209 } 3210}; 3211var opacity = { 3212 name: "opacity", 3213 initialValue: "1", 3214 type: 0, 3215 prefix: false, 3216 parse: function(_context, token) { 3217 if (isNumberToken(token)) { 3218 return token.number; 3219 } 3220 return 1; 3221 } 3222}; 3223var textDecorationColor = { 3224 name: "text-decoration-color", 3225 initialValue: "transparent", 3226 prefix: false, 3227 type: 3, 3228 format: "color" 3229}; 3230var textDecorationLine = { 3231 name: "text-decoration-line", 3232 initialValue: "none", 3233 prefix: false, 3234 type: 1, 3235 parse: function(_context, tokens) { 3236 return tokens.filter(isIdentToken).map(function(token) { 3237 switch (token.value) { 3238 case "underline": 3239 return 1; 3240 case "overline": 3241 return 2; 3242 case "line-through": 3243 return 3; 3244 case "none": 3245 return 4; 3246 } 3247 return 0; 3248 }).filter(function(line) { 3249 return line !== 0; 3250 }); 3251 } 3252}; 3253var fontFamily = { 3254 name: "font-family", 3255 initialValue: "", 3256 prefix: false, 3257 type: 1, 3258 parse: function(_context, tokens) { 3259 var accumulator = []; 3260 var results = []; 3261 tokens.forEach(function(token) { 3262 switch (token.type) { 3263 case 20: 3264 case 0: 3265 accumulator.push(token.value); 3266 break; 3267 case 17: 3268 accumulator.push(token.number.toString()); 3269 break; 3270 case 4: 3271 results.push(accumulator.join(" ")); 3272 accumulator.length = 0; 3273 break; 3274 } 3275 }); 3276 if (accumulator.length) { 3277 results.push(accumulator.join(" ")); 3278 } 3279 return results.map(function(result) { 3280 return result.indexOf(" ") === -1 ? result : "'" + result + "'"; 3281 }); 3282 } 3283}; 3284var fontSize = { 3285 name: "font-size", 3286 initialValue: "0", 3287 prefix: false, 3288 type: 3, 3289 format: "length" 3290}; 3291var fontWeight = { 3292 name: "font-weight", 3293 initialValue: "normal", 3294 type: 0, 3295 prefix: false, 3296 parse: function(_context, token) { 3297 if (isNumberToken(token)) { 3298 return token.number; 3299 } 3300 if (isIdentToken(token)) { 3301 switch (token.value) { 3302 case "bold": 3303 return 700; 3304 case "normal": 3305 default: 3306 return 400; 3307 } 3308 } 3309 return 400; 3310 } 3311}; 3312var fontVariant = { 3313 name: "font-variant", 3314 initialValue: "none", 3315 type: 1, 3316 prefix: false, 3317 parse: function(_context, tokens) { 3318 return tokens.filter(isIdentToken).map(function(token) { 3319 return token.value; 3320 }); 3321 } 3322}; 3323var fontStyle = { 3324 name: "font-style", 3325 initialValue: "normal", 3326 prefix: false, 3327 type: 2, 3328 parse: function(_context, overflow2) { 3329 switch (overflow2) { 3330 case "oblique": 3331 return "oblique"; 3332 case "italic": 3333 return "italic"; 3334 case "normal": 3335 default: 3336 return "normal"; 3337 } 3338 } 3339}; 3340var contains = function(bit, value) { 3341 return (bit & value) !== 0; 3342}; 3343var content = { 3344 name: "content", 3345 initialValue: "none", 3346 type: 1, 3347 prefix: false, 3348 parse: function(_context, tokens) { 3349 if (tokens.length === 0) { 3350 return []; 3351 } 3352 var first = tokens[0]; 3353 if (first.type === 20 && first.value === "none") { 3354 return []; 3355 } 3356 return tokens; 3357 } 3358}; 3359var counterIncrement = { 3360 name: "counter-increment", 3361 initialValue: "none", 3362 prefix: true, 3363 type: 1, 3364 parse: function(_context, tokens) { 3365 if (tokens.length === 0) { 3366 return null; 3367 } 3368 var first = tokens[0]; 3369 if (first.type === 20 && first.value === "none") { 3370 return null; 3371 } 3372 var increments = []; 3373 var filtered = tokens.filter(nonWhiteSpace); 3374 for (var i = 0; i < filtered.length; i++) { 3375 var counter = filtered[i]; 3376 var next = filtered[i + 1]; 3377 if (counter.type === 20) { 3378 var increment = next && isNumberToken(next) ? next.number : 1; 3379 increments.push({ counter: counter.value, increment }); 3380 } 3381 } 3382 return increments; 3383 } 3384}; 3385var counterReset = { 3386 name: "counter-reset", 3387 initialValue: "none", 3388 prefix: true, 3389 type: 1, 3390 parse: function(_context, tokens) { 3391 if (tokens.length === 0) { 3392 return []; 3393 } 3394 var resets = []; 3395 var filtered = tokens.filter(nonWhiteSpace); 3396 for (var i = 0; i < filtered.length; i++) { 3397 var counter = filtered[i]; 3398 var next = filtered[i + 1]; 3399 if (isIdentToken(counter) && counter.value !== "none") { 3400 var reset = next && isNumberToken(next) ? next.number : 0; 3401 resets.push({ counter: counter.value, reset }); 3402 } 3403 } 3404 return resets; 3405 } 3406}; 3407var duration = { 3408 name: "duration", 3409 initialValue: "0s", 3410 prefix: false, 3411 type: 1, 3412 parse: function(context, tokens) { 3413 return tokens.filter(isDimensionToken).map(function(token) { 3414 return time.parse(context, token); 3415 }); 3416 } 3417}; 3418var quotes = { 3419 name: "quotes", 3420 initialValue: "none", 3421 prefix: true, 3422 type: 1, 3423 parse: function(_context, tokens) { 3424 if (tokens.length === 0) { 3425 return null; 3426 } 3427 var first = tokens[0]; 3428 if (first.type === 20 && first.value === "none") { 3429 return null; 3430 } 3431 var quotes2 = []; 3432 var filtered = tokens.filter(isStringToken); 3433 if (filtered.length % 2 !== 0) { 3434 return null; 3435 } 3436 for (var i = 0; i < filtered.length; i += 2) { 3437 var open_1 = filtered[i].value; 3438 var close_1 = filtered[i + 1].value; 3439 quotes2.push({ open: open_1, close: close_1 }); 3440 } 3441 return quotes2; 3442 } 3443}; 3444var getQuote = function(quotes2, depth, open) { 3445 if (!quotes2) { 3446 return ""; 3447 } 3448 var quote = quotes2[Math.min(depth, quotes2.length - 1)]; 3449 if (!quote) { 3450 return ""; 3451 } 3452 return open ? quote.open : quote.close; 3453}; 3454var boxShadow = { 3455 name: "box-shadow", 3456 initialValue: "none", 3457 type: 1, 3458 prefix: false, 3459 parse: function(context, tokens) { 3460 if (tokens.length === 1 && isIdentWithValue(tokens[0], "none")) { 3461 return []; 3462 } 3463 return parseFunctionArgs(tokens).map(function(values) { 3464 var shadow = { 3465 color: 255, 3466 offsetX: ZERO_LENGTH, 3467 offsetY: ZERO_LENGTH, 3468 blur: ZERO_LENGTH, 3469 spread: ZERO_LENGTH, 3470 inset: false 3471 }; 3472 var c = 0; 3473 for (var i = 0; i < values.length; i++) { 3474 var token = values[i]; 3475 if (isIdentWithValue(token, "inset")) { 3476 shadow.inset = true; 3477 } else if (isLength(token)) { 3478 if (c === 0) { 3479 shadow.offsetX = token; 3480 } else if (c === 1) { 3481 shadow.offsetY = token; 3482 } else if (c === 2) { 3483 shadow.blur = token; 3484 } else { 3485 shadow.spread = token; 3486 } 3487 c++; 3488 } else { 3489 shadow.color = color$1.parse(context, token); 3490 } 3491 } 3492 return shadow; 3493 }); 3494 } 3495}; 3496var paintOrder = { 3497 name: "paint-order", 3498 initialValue: "normal", 3499 prefix: false, 3500 type: 1, 3501 parse: function(_context, tokens) { 3502 var DEFAULT_VALUE2 = [ 3503 0, 3504 1, 3505 2 3506 /* MARKERS */ 3507 ]; 3508 var layers = []; 3509 tokens.filter(isIdentToken).forEach(function(token) { 3510 switch (token.value) { 3511 case "stroke": 3512 layers.push( 3513 1 3514 /* STROKE */ 3515 ); 3516 break; 3517 case "fill": 3518 layers.push( 3519 0 3520 /* FILL */ 3521 ); 3522 break; 3523 case "markers": 3524 layers.push( 3525 2 3526 /* MARKERS */ 3527 ); 3528 break; 3529 } 3530 }); 3531 DEFAULT_VALUE2.forEach(function(value) { 3532 if (layers.indexOf(value) === -1) { 3533 layers.push(value); 3534 } 3535 }); 3536 return layers; 3537 } 3538}; 3539var webkitTextStrokeColor = { 3540 name: "-webkit-text-stroke-color", 3541 initialValue: "currentcolor", 3542 prefix: false, 3543 type: 3, 3544 format: "color" 3545}; 3546var webkitTextStrokeWidth = { 3547 name: "-webkit-text-stroke-width", 3548 initialValue: "0", 3549 type: 0, 3550 prefix: false, 3551 parse: function(_context, token) { 3552 if (isDimensionToken(token)) { 3553 return token.number; 3554 } 3555 return 0; 3556 } 3557}; 3558var CSSParsedDeclaration = ( 3559 /** @class */ 3560
vendor: 10,839 bytes, lines 3560-3792
3560function() { 3561 function CSSParsedDeclaration2(context, declaration) { 3562 var _a, _b; 3563 this.animationDuration = parse(context, duration, declaration.animationDuration); 3564 this.backgroundClip = parse(context, backgroundClip, declaration.backgroundClip); 3565 this.backgroundColor = parse(context, backgroundColor, declaration.backgroundColor); 3566 this.backgroundImage = parse(context, backgroundImage, declaration.backgroundImage); 3567 this.backgroundOrigin = parse(context, backgroundOrigin, declaration.backgroundOrigin); 3568 this.backgroundPosition = parse(context, backgroundPosition, declaration.backgroundPosition); 3569 this.backgroundRepeat = parse(context, backgroundRepeat, declaration.backgroundRepeat); 3570 this.backgroundSize = parse(context, backgroundSize, declaration.backgroundSize); 3571 this.borderTopColor = parse(context, borderTopColor, declaration.borderTopColor); 3572 this.borderRightColor = parse(context, borderRightColor, declaration.borderRightColor); 3573 this.borderBottomColor = parse(context, borderBottomColor, declaration.borderBottomColor); 3574 this.borderLeftColor = parse(context, borderLeftColor, declaration.borderLeftColor); 3575 this.borderTopLeftRadius = parse(context, borderTopLeftRadius, declaration.borderTopLeftRadius); 3576 this.borderTopRightRadius = parse(context, borderTopRightRadius, declaration.borderTopRightRadius); 3577 this.borderBottomRightRadius = parse(context, borderBottomRightRadius, declaration.borderBottomRightRadius); 3578 this.borderBottomLeftRadius = parse(context, borderBottomLeftRadius, declaration.borderBottomLeftRadius); 3579 this.borderTopStyle = parse(context, borderTopStyle, declaration.borderTopStyle); 3580 this.borderRightStyle = parse(context, borderRightStyle, declaration.borderRightStyle); 3581 this.borderBottomStyle = parse(context, borderBottomStyle, declaration.borderBottomStyle); 3582 this.borderLeftStyle = parse(context, borderLeftStyle, declaration.borderLeftStyle); 3583 this.borderTopWidth = parse(context, borderTopWidth, declaration.borderTopWidth); 3584 this.borderRightWidth = parse(context, borderRightWidth, declaration.borderRightWidth); 3585 this.borderBottomWidth = parse(context, borderBottomWidth, declaration.borderBottomWidth); 3586 this.borderLeftWidth = parse(context, borderLeftWidth, declaration.borderLeftWidth); 3587 this.boxShadow = parse(context, boxShadow, declaration.boxShadow); 3588 this.color = parse(context, color, declaration.color); 3589 this.direction = parse(context, direction, declaration.direction); 3590 this.display = parse(context, display, declaration.display); 3591 this.float = parse(context, float, declaration.cssFloat); 3592 this.fontFamily = parse(context, fontFamily, declaration.fontFamily); 3593 this.fontSize = parse(context, fontSize, declaration.fontSize); 3594 this.fontStyle = parse(context, fontStyle, declaration.fontStyle); 3595 this.fontVariant = parse(context, fontVariant, declaration.fontVariant); 3596 this.fontWeight = parse(context, fontWeight, declaration.fontWeight); 3597 this.letterSpacing = parse(context, letterSpacing, declaration.letterSpacing); 3598 this.lineBreak = parse(context, lineBreak, declaration.lineBreak); 3599 this.lineHeight = parse(context, lineHeight, declaration.lineHeight); 3600 this.listStyleImage = parse(context, listStyleImage, declaration.listStyleImage); 3601 this.listStylePosition = parse(context, listStylePosition, declaration.listStylePosition); 3602 this.listStyleType = parse(context, listStyleType, declaration.listStyleType); 3603 this.marginTop = parse(context, marginTop, declaration.marginTop); 3604 this.marginRight = parse(context, marginRight, declaration.marginRight); 3605 this.marginBottom = parse(context, marginBottom, declaration.marginBottom); 3606 this.marginLeft = parse(context, marginLeft, declaration.marginLeft); 3607 this.opacity = parse(context, opacity, declaration.opacity); 3608 var overflowTuple = parse(context, overflow, declaration.overflow); 3609 this.overflowX = overflowTuple[0]; 3610 this.overflowY = overflowTuple[overflowTuple.length > 1 ? 1 : 0]; 3611 this.overflowWrap = parse(context, overflowWrap, declaration.overflowWrap); 3612 this.paddingTop = parse(context, paddingTop, declaration.paddingTop); 3613 this.paddingRight = parse(context, paddingRight, declaration.paddingRight); 3614 this.paddingBottom = parse(context, paddingBottom, declaration.paddingBottom); 3615 this.paddingLeft = parse(context, paddingLeft, declaration.paddingLeft); 3616 this.paintOrder = parse(context, paintOrder, declaration.paintOrder); 3617 this.position = parse(context, position, declaration.position); 3618 this.textAlign = parse(context, textAlign, declaration.textAlign); 3619 this.textDecorationColor = parse(context, textDecorationColor, (_a = declaration.textDecorationColor) !== null && _a !== void 0 ? _a : declaration.color); 3620 this.textDecorationLine = parse(context, textDecorationLine, (_b = declaration.textDecorationLine) !== null && _b !== void 0 ? _b : declaration.textDecoration); 3621 this.textShadow = parse(context, textShadow, declaration.textShadow); 3622 this.textTransform = parse(context, textTransform, declaration.textTransform); 3623 this.transform = parse(context, transform$1, declaration.transform); 3624 this.transformOrigin = parse(context, transformOrigin, declaration.transformOrigin); 3625 this.visibility = parse(context, visibility, declaration.visibility); 3626 this.webkitTextStrokeColor = parse(context, webkitTextStrokeColor, declaration.webkitTextStrokeColor); 3627 this.webkitTextStrokeWidth = parse(context, webkitTextStrokeWidth, declaration.webkitTextStrokeWidth); 3628 this.wordBreak = parse(context, wordBreak, declaration.wordBreak); 3629 this.zIndex = parse(context, zIndex, declaration.zIndex); 3630 } 3631 CSSParsedDeclaration2.prototype.isVisible = function() { 3632 return this.display > 0 && this.opacity > 0 && this.visibility === 0; 3633 }; 3634 CSSParsedDeclaration2.prototype.isTransparent = function() { 3635 return isTransparent(this.backgroundColor); 3636 }; 3637 CSSParsedDeclaration2.prototype.isTransformed = function() { 3638 return this.transform !== null; 3639 }; 3640 CSSParsedDeclaration2.prototype.isPositioned = function() { 3641 return this.position !== 0; 3642 }; 3643 CSSParsedDeclaration2.prototype.isPositionedWithZIndex = function() { 3644 return this.isPositioned() && !this.zIndex.auto; 3645 }; 3646 CSSParsedDeclaration2.prototype.isFloating = function() { 3647 return this.float !== 0; 3648 }; 3649 CSSParsedDeclaration2.prototype.isInlineLevel = function() { 3650 return contains( 3651 this.display, 3652 4 3653 /* INLINE */ 3654 ) || contains( 3655 this.display, 3656 33554432 3657 /* INLINE_BLOCK */ 3658 ) || contains( 3659 this.display, 3660 268435456 3661 /* INLINE_FLEX */ 3662 ) || contains( 3663 this.display, 3664 536870912 3665 /* INLINE_GRID */ 3666 ) || contains( 3667 this.display, 3668 67108864 3669 /* INLINE_LIST_ITEM */ 3670 ) || contains( 3671 this.display, 3672 134217728 3673 /* INLINE_TABLE */ 3674 ); 3675 }; 3676 return CSSParsedDeclaration2; 3677 }() 3678); 3679var CSSParsedPseudoDeclaration = ( 3680 /** @class */ 3681 /* @__PURE__ */ function() { 3682 function CSSParsedPseudoDeclaration2(context, declaration) { 3683 this.content = parse(context, content, declaration.content); 3684 this.quotes = parse(context, quotes, declaration.quotes); 3685 } 3686 return CSSParsedPseudoDeclaration2; 3687 }() 3688); 3689var CSSParsedCounterDeclaration = ( 3690 /** @class */ 3691 /* @__PURE__ */ function() { 3692 function CSSParsedCounterDeclaration2(context, declaration) { 3693 this.counterIncrement = parse(context, counterIncrement, declaration.counterIncrement); 3694 this.counterReset = parse(context, counterReset, declaration.counterReset); 3695 } 3696 return CSSParsedCounterDeclaration2; 3697 }() 3698); 3699var parse = function(context, descriptor, style) { 3700 var tokenizer = new Tokenizer(); 3701 var value = style !== null && typeof style !== "undefined" ? style.toString() : descriptor.initialValue; 3702 tokenizer.write(value); 3703 var parser = new Parser(tokenizer.read()); 3704 switch (descriptor.type) { 3705 case 2: 3706 var token = parser.parseComponentValue(); 3707 return descriptor.parse(context, isIdentToken(token) ? token.value : descriptor.initialValue); 3708 case 0: 3709 return descriptor.parse(context, parser.parseComponentValue()); 3710 case 1: 3711 return descriptor.parse(context, parser.parseComponentValues()); 3712 case 4: 3713 return parser.parseComponentValue(); 3714 case 3: 3715 switch (descriptor.format) { 3716 case "angle": 3717 return angle.parse(context, parser.parseComponentValue()); 3718 case "color": 3719 return color$1.parse(context, parser.parseComponentValue()); 3720 case "image": 3721 return image.parse(context, parser.parseComponentValue()); 3722 case "length": 3723 var length_1 = parser.parseComponentValue(); 3724 return isLength(length_1) ? length_1 : ZERO_LENGTH; 3725 case "length-percentage": 3726 var value_1 = parser.parseComponentValue(); 3727 return isLengthPercentage(value_1) ? value_1 : ZERO_LENGTH; 3728 case "time": 3729 return time.parse(context, parser.parseComponentValue()); 3730 } 3731 break; 3732 } 3733}; 3734var elementDebuggerAttribute = "data-html2canvas-debug"; 3735var getElementDebugType = function(element) { 3736 var attribute = element.getAttribute(elementDebuggerAttribute); 3737 switch (attribute) { 3738 case "all": 3739 return 1; 3740 case "clone": 3741 return 2; 3742 case "parse": 3743 return 3; 3744 case "render": 3745 return 4; 3746 default: 3747 return 0; 3748 } 3749}; 3750var isDebugging = function(element, type) { 3751 var elementType = getElementDebugType(element); 3752 return elementType === 1 || type === elementType; 3753}; 3754var ElementContainer = ( 3755 /** @class */ 3756 /* @__PURE__ */ function() { 3757 function ElementContainer2(context, element) { 3758 this.context = context; 3759 this.textNodes = []; 3760 this.elements = []; 3761 this.flags = 0; 3762 if (isDebugging( 3763 element, 3764 3 3765 /* PARSE */ 3766 )) { 3767 debugger; 3768 } 3769 this.styles = new CSSParsedDeclaration(context, window.getComputedStyle(element, null)); 3770 if (isHTMLElementNode(element)) { 3771 if (this.styles.animationDuration.some(function(duration2) { 3772 return duration2 > 0; 3773 })) { 3774 element.style.animationDuration = "0s"; 3775 } 3776 if (this.styles.transform !== null) { 3777 element.style.transform = "none"; 3778 } 3779 } 3780 this.bounds = parseBounds(this.context, element); 3781 if (isDebugging( 3782 element, 3783 4 3784 /* RENDER */ 3785 )) { 3786 this.flags |= 16; 3787 } 3788 } 3789 return ElementContainer2; 3790 }() 3791); 3792var base64
vendor: 18,221 bytes, line 3792
3792 = "AAAAAAAAAAAAEA4AGBkAAFAaAAACAAAAAAAIABAAGAAwADgACAAQAAgAEAAIABAACAAQAAgAEAAIABAACAAQAAgAEAAIABAAQABIAEQATAAIABAACAAQAAgAEAAIABAAVABcAAgAEAAIABAACAAQAGAAaABwAHgAgACIAI4AlgAIABAAmwCjAKgAsAC2AL4AvQDFAMoA0gBPAVYBWgEIAAgACACMANoAYgFkAWwBdAF8AX0BhQGNAZUBlgGeAaMBlQGWAasBswF8AbsBwwF0AcsBYwHTAQgA2wG/AOMBdAF8AekB8QF0AfkB+wHiAHQBfAEIAAMC5gQIAAsCEgIIAAgAFgIeAggAIgIpAggAMQI5AkACygEIAAgASAJQAlgCYAIIAAgACAAKBQoFCgUTBRMFGQUrBSsFCAAIAAgACAAIAAgACAAIAAgACABdAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABoAmgCrwGvAQgAbgJ2AggAHgEIAAgACADnAXsCCAAIAAgAgwIIAAgACAAIAAgACACKAggAkQKZAggAPADJAAgAoQKkAqwCsgK6AsICCADJAggA0AIIAAgACAAIANYC3gIIAAgACAAIAAgACABAAOYCCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAkASoB+QIEAAgACAA8AEMCCABCBQgACABJBVAFCAAIAAgACAAIAAgACAAIAAgACABTBVoFCAAIAFoFCABfBWUFCAAIAAgACAAIAAgAbQUIAAgACAAIAAgACABzBXsFfQWFBYoFigWKBZEFigWKBYoFmAWfBaYFrgWxBbkFCAAIAAgACAAIAAgACAAIAAgACAAIAMEFCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAMgFCADQBQgACAAIAAgACAAIAAgACAAIAAgACAAIAO4CCAAIAAgAiQAIAAgACABAAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAD0AggACAD8AggACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIANYFCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAMDvwAIAAgAJAIIAAgACAAIAAgACAAIAAgACwMTAwgACAB9BOsEGwMjAwgAKwMyAwsFYgE3A/MEPwMIAEUDTQNRAwgAWQOsAGEDCAAIAAgACAAIAAgACABpAzQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFOgU0BTUFNgU3BTgFOQU6BTQFNQU2BTcFOAU5BToFNAU1BTYFNwU4BTkFIQUoBSwFCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABtAwgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABMAEwACAAIAAgACAAIABgACAAIAAgACAC/AAgACAAyAQgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACACAAIAAwAAgACAAIAAgACAAIAAgACAAIAAAARABIAAgACAAIABQASAAIAAgAIABwAEAAjgCIABsAqAC2AL0AigDQAtwC+IJIQqVAZUBWQqVAZUBlQGVAZUBlQGrC5UBlQGVAZUBlQGVAZUBlQGVAXsKlQGVAbAK6wsrDGUMpQzlDJUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAZUBlQGVAfAKAAuZA64AtwCJALoC6ADwAAgAuACgA/oEpgO6AqsD+AAIAAgAswMIAAgACAAIAIkAuwP5AfsBwwPLAwgACAAIAAgACADRA9kDCAAIAOED6QMIAAgACAAIAAgACADuA/YDCAAIAP4DyQAIAAgABgQIAAgAXQAOBAgACAAIAAgACAAIABMECAAIAAgACAAIAAgACAD8AAQBCAAIAAgAGgQiBCoECAExBAgAEAEIAAgACAAIAAgACAAIAAgACAAIAAgACAA4BAgACABABEYECAAIAAgATAQYAQgAVAQIAAgACAAIAAgACAAIAAgACAAIAFoECAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAOQEIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAB+BAcACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAEABhgSMBAgACAAIAAgAlAQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAwAEAAQABAADAAMAAwADAAQABAAEAAQABAAEAAQABHATAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAdQMIAAgACAAIAAgACAAIAMkACAAIAAgAfQMIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACACFA4kDCAAIAAgACAAIAOcBCAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAIcDCAAIAAgACAAIAAgACAAIAAgACAAIAJEDCAAIAAgACADFAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABgBAgAZgQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAbAQCBXIECAAIAHkECAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACABAAJwEQACjBKoEsgQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAC6BMIECAAIAAgACAAIAAgACABmBAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAxwQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAGYECAAIAAgAzgQIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAigWKBYoFigWKBYoFigWKBd0FXwUIAOIF6gXxBYoF3gT5BQAGCAaKBYoFigWKBYoFigWKBYoFigWKBYoFigXWBIoFigWKBYoFigWKBYoFigWKBYsFEAaKBYoFigWKBYoFigWKBRQGCACKBYoFigWKBQgACAAIANEECAAIABgGigUgBggAJgYIAC4GMwaKBYoF0wQ3Bj4GigWKBYoFigWKBYoFigWKBYoFigWKBYoFigUIAAgACAAIAAgACAAIAAgAigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWKBYoFigWLBf///////wQABAAEAAQABAAEAAQABAAEAAQAAwAEAAQAAgAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAQADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAUAAAAFAAUAAAAFAAUAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUAAQAAAAUABQAFAAUABQAFAAAAAAAFAAUAAAAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAFAAUAAQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABwAFAAUABQAFAAAABwAHAAcAAAAHAAcABwAFAAEAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAcABwAFAAUAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAQABAAAAAAAAAAAAAAAFAAUABQAFAAAABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAcABwAHAAcAAAAHAAcAAAAAAAUABQAHAAUAAQAHAAEABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABwABAAUABQAFAAUAAAAAAAAAAAAAAAEAAQABAAEAAQABAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABwAFAAUAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUAAQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABQANAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAEAAQABAAEAAQABAAEAAQABAAEAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAABQAHAAUABQAFAAAAAAAAAAcABQAFAAUABQAFAAQABAAEAAQABAAEAAQABAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUAAAAFAAUABQAFAAUAAAAFAAUABQAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAAAAAAAAAAAAUABQAFAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAUAAAAHAAcABwAFAAUABQAFAAUABQAFAAUABwAHAAcABwAFAAcABwAAAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAUABwAHAAUABQAFAAUAAAAAAAcABwAAAAAABwAHAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAABQAFAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAABwAHAAcABQAFAAAAAAAAAAAABQAFAAAAAAAFAAUABQAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAFAAUABQAFAAUAAAAFAAUABwAAAAcABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAFAAUABwAFAAUABQAFAAAAAAAHAAcAAAAAAAcABwAFAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAcABwAAAAAAAAAHAAcABwAAAAcABwAHAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAABQAHAAcABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAHAAcABwAAAAUABQAFAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAcABQAHAAcABQAHAAcAAAAFAAcABwAAAAcABwAFAAUAAAAAAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAUABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAFAAcABwAFAAUABQAAAAUAAAAHAAcABwAHAAcABwAHAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAHAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAABwAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAUAAAAFAAAAAAAAAAAABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABwAFAAUABQAFAAUAAAAFAAUAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABwAFAAUABQAFAAUABQAAAAUABQAHAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABQAFAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAcABQAFAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAHAAUABQAFAAUABQAFAAUABwAHAAcABwAHAAcABwAHAAUABwAHAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABwAHAAcABwAFAAUABwAHAAcAAAAAAAAAAAAHAAcABQAHAAcABwAHAAcABwAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAcABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAHAAUABQAFAAUABQAFAAUAAAAFAAAABQAAAAAABQAFAAUABQAFAAUABQAFAAcABwAHAAcABwAHAAUABQAFAAUABQAFAAUABQAFAAUAAAAAAAUABQAFAAUABQAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABwAFAAcABwAHAAcABwAFAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAUABQAFAAUABwAHAAUABQAHAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAcABQAFAAcABwAHAAUABwAFAAUABQAHAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABwAHAAcABwAHAAUABQAFAAUABQAFAAUABQAHAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAcABQAFAAUABQAFAAUABQAAAAAAAAAAAAUAAAAAAAAAAAAAAAAABQAAAAAABwAFAAUAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUAAAAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAABQAAAAAAAAAFAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAUABQAHAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAHAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAUABQAFAAUABQAHAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAcABwAFAAUABQAFAAcABwAFAAUABwAHAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAFAAcABwAFAAUABwAHAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAFAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAFAAUABQAAAAAAB
vendor: 11,413 bytes, lines 3792-3873
3792QAFAAAAAAAAAAAAAAAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAFAAcABwAAAAAAAAAAAAAABwAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAFAAcABwAFAAcABwAAAAcABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAFAAUABQAAAAUABQAAAAAAAAAAAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABwAFAAUABQAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABQAFAAUABQAFAAUABQAFAAUABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAHAAcABQAHAAUABQAAAAAAAAAAAAAAAAAFAAAABwAHAAcABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAHAAcABwAAAAAABwAHAAAAAAAHAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAAAAAAFAAUABQAFAAUABQAFAAAAAAAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAUABQAFAAUABwAHAAUABQAFAAcABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAcABQAFAAUABQAFAAUABwAFAAcABwAFAAcABQAFAAcABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAHAAcABQAFAAUABQAAAAAABwAHAAcABwAFAAUABwAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAHAAUABQAFAAUABQAFAAUABQAHAAcABQAHAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABwAFAAcABwAFAAUABQAFAAUABQAHAAUAAAAAAAAAAAAAAAAAAAAAAAcABwAFAAUABQAFAAcABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAUABQAFAAUABQAHAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAFAAUABQAFAAAAAAAFAAUABwAHAAcABwAFAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABwAHAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABQAFAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAcABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAAAHAAUABQAFAAUABQAFAAUABwAFAAUABwAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUAAAAAAAAABQAAAAUABQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAcABwAHAAcAAAAFAAUAAAAHAAcABQAHAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAAAAAAAAAAAAAAAAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAAAAUABQAFAAAAAAAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAAAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAAAAABQAFAAUABQAFAAUABQAAAAUABQAAAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAUABQAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAFAAUABQAFAAUABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAFAAUABQAFAAUADgAOAA4ADgAOAA4ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAA8ADwAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAAAAAAAAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAMAAwADAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAAAAAAAAAAAAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAKAAoACgAAAAAAAAAAAAsADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwACwAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAADgAOAA4AAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAAAA4ADgAOAA4ADgAOAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAAAA4AAAAOAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAADgAAAAAAAAAAAA4AAAAOAAAAAAAAAAAADgAOAA4AAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAA4ADgAOAA4ADgAOAA4ADgAOAAAADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4ADgAOAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAOAA4ADgAOAA4AAAAAAAAAAAAAAAAAAAAAAA4ADgAOAA4ADgAOAA4ADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAOAA4ADgAOAA4ADgAAAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOAA4AAAAAAAAAAAA="; 3793var chars$1 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; 3794var lookup$1 = typeof Uint8Array === "undefined" ? [] : new Uint8Array(256); 3795for (var i$1 = 0; i$1 < chars$1.length; i$1++) { 3796 lookup$1[chars$1.charCodeAt(i$1)] = i$1; 3797} 3798var decode = function(base642) { 3799 var bufferLength = base642.length * 0.75, len = base642.length, i, p = 0, encoded1, encoded2, encoded3, encoded4; 3800 if (base642[base642.length - 1] === "=") { 3801 bufferLength--; 3802 if (base642[base642.length - 2] === "=") { 3803 bufferLength--; 3804 } 3805 } 3806 var buffer = typeof ArrayBuffer !== "undefined" && typeof Uint8Array !== "undefined" && typeof Uint8Array.prototype.slice !== "undefined" ? new ArrayBuffer(bufferLength) : new Array(bufferLength); 3807 var bytes = Array.isArray(buffer) ? buffer : new Uint8Array(buffer); 3808 for (i = 0; i < len; i += 4) { 3809 encoded1 = lookup$1[base642.charCodeAt(i)]; 3810 encoded2 = lookup$1[base642.charCodeAt(i + 1)]; 3811 encoded3 = lookup$1[base642.charCodeAt(i + 2)]; 3812 encoded4 = lookup$1[base642.charCodeAt(i + 3)]; 3813 bytes[p++] = encoded1 << 2 | encoded2 >> 4; 3814 bytes[p++] = (encoded2 & 15) << 4 | encoded3 >> 2; 3815 bytes[p++] = (encoded3 & 3) << 6 | encoded4 & 63; 3816 } 3817 return buffer; 3818}; 3819var polyUint16Array = function(buffer) { 3820 var length = buffer.length; 3821 var bytes = []; 3822 for (var i = 0; i < length; i += 2) { 3823 bytes.push(buffer[i + 1] << 8 | buffer[i]); 3824 } 3825 return bytes; 3826}; 3827var polyUint32Array = function(buffer) { 3828 var length = buffer.length; 3829 var bytes = []; 3830 for (var i = 0; i < length; i += 4) { 3831 bytes.push(buffer[i + 3] << 24 | buffer[i + 2] << 16 | buffer[i + 1] << 8 | buffer[i]); 3832 } 3833 return bytes; 3834}; 3835var UTRIE2_SHIFT_2 = 5; 3836var UTRIE2_SHIFT_1 = 6 + 5; 3837var UTRIE2_INDEX_SHIFT = 2; 3838var UTRIE2_SHIFT_1_2 = UTRIE2_SHIFT_1 - UTRIE2_SHIFT_2; 3839var UTRIE2_LSCP_INDEX_2_OFFSET = 65536 >> UTRIE2_SHIFT_2; 3840var UTRIE2_DATA_BLOCK_LENGTH = 1 << UTRIE2_SHIFT_2; 3841var UTRIE2_DATA_MASK = UTRIE2_DATA_BLOCK_LENGTH - 1; 3842var UTRIE2_LSCP_INDEX_2_LENGTH = 1024 >> UTRIE2_SHIFT_2; 3843var UTRIE2_INDEX_2_BMP_LENGTH = UTRIE2_LSCP_INDEX_2_OFFSET + UTRIE2_LSCP_INDEX_2_LENGTH; 3844var UTRIE2_UTF8_2B_INDEX_2_OFFSET = UTRIE2_INDEX_2_BMP_LENGTH; 3845var UTRIE2_UTF8_2B_INDEX_2_LENGTH = 2048 >> 6; 3846var UTRIE2_INDEX_1_OFFSET = UTRIE2_UTF8_2B_INDEX_2_OFFSET + UTRIE2_UTF8_2B_INDEX_2_LENGTH; 3847var UTRIE2_OMITTED_BMP_INDEX_1_LENGTH = 65536 >> UTRIE2_SHIFT_1; 3848var UTRIE2_INDEX_2_BLOCK_LENGTH = 1 << UTRIE2_SHIFT_1_2; 3849var UTRIE2_INDEX_2_MASK = UTRIE2_INDEX_2_BLOCK_LENGTH - 1; 3850var slice16 = function(view, start, end) { 3851 if (view.slice) { 3852 return view.slice(start, end); 3853 } 3854 return new Uint16Array(Array.prototype.slice.call(view, start, end)); 3855}; 3856var slice32 = function(view, start, end) { 3857 if (view.slice) { 3858 return view.slice(start, end); 3859 } 3860 return new Uint32Array(Array.prototype.slice.call(view, start, end)); 3861}; 3862var createTrieFromBase64 = function(base642, _byteLength) { 3863 var buffer = decode(base642); 3864 var view32 = Array.isArray(buffer) ? polyUint32Array(buffer) : new Uint32Array(buffer); 3865 var view16 = Array.isArray(buffer) ? polyUint16Array(buffer) : new Uint16Array(buffer); 3866 var headerLength = 24; 3867 var index = slice16(view16, headerLength / 2, view32[4] / 2); 3868 var data = view32[5] === 2 ? slice16(view16, (headerLength + view32[4]) / 2) : slice32(view32, Math.ceil((headerLength + view32[4]) / 4)); 3869 return new Trie(view32[0], view32[1], view32[2], view32[3], index, data); 3870}; 3871var Trie = ( 3872 /** @class */ 3873
vendor: 1,453 bytes, lines 3873-3910
3873function() { 3874 function Trie2(initialValue, errorValue, highStart, highValueIndex, index, data) { 3875 this.initialValue = initialValue; 3876 this.errorValue = errorValue; 3877 this.highStart = highStart; 3878 this.highValueIndex = highValueIndex; 3879 this.index = index; 3880 this.data = data; 3881 } 3882 Trie2.prototype.get = function(codePoint) { 3883 var ix; 3884 if (codePoint >= 0) { 3885 if (codePoint < 55296 || codePoint > 56319 && codePoint <= 65535) { 3886 ix = this.index[codePoint >> UTRIE2_SHIFT_2]; 3887 ix = (ix << UTRIE2_INDEX_SHIFT) + (codePoint & UTRIE2_DATA_MASK); 3888 return this.data[ix]; 3889 } 3890 if (codePoint <= 65535) { 3891 ix = this.index[UTRIE2_LSCP_INDEX_2_OFFSET + (codePoint - 55296 >> UTRIE2_SHIFT_2)]; 3892 ix = (ix << UTRIE2_INDEX_SHIFT) + (codePoint & UTRIE2_DATA_MASK); 3893 return this.data[ix]; 3894 } 3895 if (codePoint < this.highStart) { 3896 ix = UTRIE2_INDEX_1_OFFSET - UTRIE2_OMITTED_BMP_INDEX_1_LENGTH + (codePoint >> UTRIE2_SHIFT_1); 3897 ix = this.index[ix]; 3898 ix += codePoint >> UTRIE2_SHIFT_2 & UTRIE2_INDEX_2_MASK; 3899 ix = this.index[ix]; 3900 ix = (ix << UTRIE2_INDEX_SHIFT) + (codePoint & UTRIE2_DATA_MASK); 3901 return this.data[ix]; 3902 } 3903 if (codePoint <= 1114111) { 3904 return this.data[this.highValueIndex]; 3905 } 3906 } 3907 return this.errorValue; 3908 }; 3909 return Trie2; 3910 }
vendor: 10,674 bytes, lines 3910-4251
3910() 3911); 3912var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; 3913var lookup = typeof Uint8Array === "undefined" ? [] : new Uint8Array(256); 3914for (var i = 0; i < chars.length; i++) { 3915 lookup[chars.charCodeAt(i)] = i; 3916} 3917var Prepend = 1; 3918var CR = 2; 3919var LF = 3; 3920var Control = 4; 3921var Extend = 5; 3922var SpacingMark = 7; 3923var L = 8; 3924var V = 9; 3925var T = 10; 3926var LV = 11; 3927var LVT = 12; 3928var ZWJ = 13; 3929var Extended_Pictographic = 14; 3930var RI = 15; 3931var toCodePoints = function(str) { 3932 var codePoints = []; 3933 var i = 0; 3934 var length = str.length; 3935 while (i < length) { 3936 var value = str.charCodeAt(i++); 3937 if (value >= 55296 && value <= 56319 && i < length) { 3938 var extra = str.charCodeAt(i++); 3939 if ((extra & 64512) === 56320) { 3940 codePoints.push(((value & 1023) << 10) + (extra & 1023) + 65536); 3941 } else { 3942 codePoints.push(value); 3943 i--; 3944 } 3945 } else { 3946 codePoints.push(value); 3947 } 3948 } 3949 return codePoints; 3950}; 3951var fromCodePoint = function() { 3952 var codePoints = []; 3953 for (var _i = 0; _i < arguments.length; _i++) { 3954 codePoints[_i] = arguments[_i]; 3955 } 3956 if (String.fromCodePoint) { 3957 return String.fromCodePoint.apply(String, codePoints); 3958 } 3959 var length = codePoints.length; 3960 if (!length) { 3961 return ""; 3962 } 3963 var codeUnits = []; 3964 var index = -1; 3965 var result = ""; 3966 while (++index < length) { 3967 var codePoint = codePoints[index]; 3968 if (codePoint <= 65535) { 3969 codeUnits.push(codePoint); 3970 } else { 3971 codePoint -= 65536; 3972 codeUnits.push((codePoint >> 10) + 55296, codePoint % 1024 + 56320); 3973 } 3974 if (index + 1 === length || codeUnits.length > 16384) { 3975 result += String.fromCharCode.apply(String, codeUnits); 3976 codeUnits.length = 0; 3977 } 3978 } 3979 return result; 3980}; 3981var UnicodeTrie = createTrieFromBase64(base64); 3982var BREAK_NOT_ALLOWED = "Ã"; 3983var BREAK_ALLOWED = "÷"; 3984var codePointToClass = function(codePoint) { 3985 return UnicodeTrie.get(codePoint); 3986}; 3987var _graphemeBreakAtIndex = function(_codePoints, classTypes, index) { 3988 var prevIndex = index - 2; 3989 var prev = classTypes[prevIndex]; 3990 var current = classTypes[index - 1]; 3991 var next = classTypes[index]; 3992 if (current === CR && next === LF) { 3993 return BREAK_NOT_ALLOWED; 3994 } 3995 if (current === CR || current === LF || current === Control) { 3996 return BREAK_ALLOWED; 3997 } 3998 if (next === CR || next === LF || next === Control) { 3999 return BREAK_ALLOWED; 4000 } 4001 if (current === L && [L, V, LV, LVT].indexOf(next) !== -1) { 4002 return BREAK_NOT_ALLOWED; 4003 } 4004 if ((current === LV || current === V) && (next === V || next === T)) { 4005 return BREAK_NOT_ALLOWED; 4006 } 4007 if ((current === LVT || current === T) && next === T) { 4008 return BREAK_NOT_ALLOWED; 4009 } 4010 if (next === ZWJ || next === Extend) { 4011 return BREAK_NOT_ALLOWED; 4012 } 4013 if (next === SpacingMark) { 4014 return BREAK_NOT_ALLOWED; 4015 } 4016 if (current === Prepend) { 4017 return BREAK_NOT_ALLOWED; 4018 } 4019 if (current === ZWJ && next === Extended_Pictographic) { 4020 while (prev === Extend) { 4021 prev = classTypes[--prevIndex]; 4022 } 4023 if (prev === Extended_Pictographic) { 4024 return BREAK_NOT_ALLOWED; 4025 } 4026 } 4027 if (current === RI && next === RI) { 4028 var countRI = 0; 4029 while (prev === RI) { 4030 countRI++; 4031 prev = classTypes[--prevIndex]; 4032 } 4033 if (countRI % 2 === 0) { 4034 return BREAK_NOT_ALLOWED; 4035 } 4036 } 4037 return BREAK_ALLOWED; 4038}; 4039var GraphemeBreaker = function(str) { 4040 var codePoints = toCodePoints(str); 4041 var length = codePoints.length; 4042 var index = 0; 4043 var lastEnd = 0; 4044 var classTypes = codePoints.map(codePointToClass); 4045 return { 4046 next: function() { 4047 if (index >= length) { 4048 return { done: true, value: null }; 4049 } 4050 var graphemeBreak = BREAK_NOT_ALLOWED; 4051 while (index < length && (graphemeBreak = _graphemeBreakAtIndex(codePoints, classTypes, ++index)) === BREAK_NOT_ALLOWED) { 4052 } 4053 if (graphemeBreak !== BREAK_NOT_ALLOWED || index === length) { 4054 var value = fromCodePoint.apply(null, codePoints.slice(lastEnd, index)); 4055 lastEnd = index; 4056 return { value, done: false }; 4057 } 4058 return { done: true, value: null }; 4059 } 4060 }; 4061}; 4062var splitGraphemes = function(str) { 4063 var breaker = GraphemeBreaker(str); 4064 var graphemes = []; 4065 var bk; 4066 while (!(bk = breaker.next()).done) { 4067 if (bk.value) { 4068 graphemes.push(bk.value.slice()); 4069 } 4070 } 4071 return graphemes; 4072}; 4073var testRangeBounds = function(document2) { 4074 var TEST_HEIGHT = 123; 4075 if (document2.createRange) { 4076 var range = document2.createRange(); 4077 if (range.getBoundingClientRect) { 4078 var testElement = document2.createElement("boundtest"); 4079 testElement.style.height = TEST_HEIGHT + "px"; 4080 testElement.style.display = "block"; 4081 document2.body.appendChild(testElement); 4082 range.selectNode(testElement); 4083 var rangeBounds = range.getBoundingClientRect(); 4084 var rangeHeight = Math.round(rangeBounds.height); 4085 document2.body.removeChild(testElement); 4086 if (rangeHeight === TEST_HEIGHT) { 4087 return true; 4088 } 4089 } 4090 } 4091 return false; 4092}; 4093var testIOSLineBreak = function(document2) { 4094 var testElement = document2.createElement("boundtest"); 4095 testElement.style.width = "50px"; 4096 testElement.style.display = "block"; 4097 testElement.style.fontSize = "12px"; 4098 testElement.style.letterSpacing = "0px"; 4099 testElement.style.wordSpacing = "0px"; 4100 document2.body.appendChild(testElement); 4101 var range = document2.createRange(); 4102 testElement.innerHTML = typeof "".repeat === "function" ? "👨".repeat(10) : ""; 4103 var node = testElement.firstChild; 4104 var textList = toCodePoints$1(node.data).map(function(i) { 4105 return fromCodePoint$1(i); 4106 }); 4107 var offset = 0; 4108 var prev = {}; 4109 var supports = textList.every(function(text, i) { 4110 range.setStart(node, offset); 4111 range.setEnd(node, offset + text.length); 4112 var rect = range.getBoundingClientRect(); 4113 offset += text.length; 4114 var boundAhead = rect.x > prev.x || rect.y > prev.y; 4115 prev = rect; 4116 if (i === 0) { 4117 return true; 4118 } 4119 return boundAhead; 4120 }); 4121 document2.body.removeChild(testElement); 4122 return supports; 4123}; 4124var testCORS = function() { 4125 return typeof new Image().crossOrigin !== "undefined"; 4126}; 4127var testResponseType = function() { 4128 return typeof new XMLHttpRequest().responseType === "string"; 4129}; 4130var testSVG = function(document2) { 4131 var img = new Image(); 4132 var canvas = document2.createElement("canvas"); 4133 var ctx = canvas.getContext("2d"); 4134 if (!ctx) { 4135 return false; 4136 } 4137 img.src = "data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg'></svg>"; 4138 try { 4139 ctx.drawImage(img, 0, 0); 4140 canvas.toDataURL(); 4141 } catch (e2) { 4142 return false; 4143 } 4144 return true; 4145}; 4146var isGreenPixel = function(data) { 4147 return data[0] === 0 && data[1] === 255 && data[2] === 0 && data[3] === 255; 4148}; 4149var testForeignObject = function(document2) { 4150 var canvas = document2.createElement("canvas"); 4151 var size = 100; 4152 canvas.width = size; 4153 canvas.height = size; 4154 var ctx = canvas.getContext("2d"); 4155 if (!ctx) { 4156 return Promise.reject(false); 4157 } 4158 ctx.fillStyle = "rgb(0, 255, 0)"; 4159 ctx.fillRect(0, 0, size, size); 4160 var img = new Image(); 4161 var greenImageSrc = canvas.toDataURL(); 4162 img.src = greenImageSrc; 4163 var svg = createForeignObjectSVG(size, size, 0, 0, img); 4164 ctx.fillStyle = "red"; 4165 ctx.fillRect(0, 0, size, size); 4166 return loadSerializedSVG$1(svg).then(function(img2) { 4167 ctx.drawImage(img2, 0, 0); 4168 var data = ctx.getImageData(0, 0, size, size).data; 4169 ctx.fillStyle = "red"; 4170 ctx.fillRect(0, 0, size, size); 4171 var node = document2.createElement("div"); 4172 node.style.backgroundImage = "url(" + greenImageSrc + ")"; 4173 node.style.height = size + "px"; 4174 return isGreenPixel(data) ? loadSerializedSVG$1(createForeignObjectSVG(size, size, 0, 0, node)) : Promise.reject(false); 4175 }).then(function(img2) { 4176 ctx.drawImage(img2, 0, 0); 4177 return isGreenPixel(ctx.getImageData(0, 0, size, size).data); 4178 }).catch(function() { 4179 return false; 4180 }); 4181}; 4182var createForeignObjectSVG = function(width, height, x, y, node) { 4183 var xmlns = "http://www.w3.org/2000/svg"; 4184 var svg = document.createElementNS(xmlns, "svg"); 4185 var foreignObject = document.createElementNS(xmlns, "foreignObject"); 4186 svg.setAttributeNS(null, "width", width.toString()); 4187 svg.setAttributeNS(null, "height", height.toString()); 4188 foreignObject.setAttributeNS(null, "width", "100%"); 4189 foreignObject.setAttributeNS(null, "height", "100%"); 4190 foreignObject.setAttributeNS(null, "x", x.toString()); 4191 foreignObject.setAttributeNS(null, "y", y.toString()); 4192 foreignObject.setAttributeNS(null, "externalResourcesRequired", "true"); 4193 svg.appendChild(foreignObject); 4194 foreignObject.appendChild(node); 4195 return svg; 4196}; 4197var loadSerializedSVG$1 = function(svg) { 4198 return new Promise(function(resolve, reject) { 4199 var img = new Image(); 4200 img.onload = function() { 4201 return resolve(img); 4202 }; 4203 img.onerror = reject; 4204 img.src = "data:image/svg+xml;charset=utf-8," + encodeURIComponent(new XMLSerializer().serializeToString(svg)); 4205 }); 4206}; 4207var FEATURES = { 4208 get SUPPORT_RANGE_BOUNDS() { 4209 var value = testRangeBounds(document); 4210 Object.defineProperty(FEATURES, "SUPPORT_RANGE_BOUNDS", { value }); 4211 return value; 4212 }, 4213 get SUPPORT_WORD_BREAKING() { 4214 var value = FEATURES.SUPPORT_RANGE_BOUNDS && testIOSLineBreak(document); 4215 Object.defineProperty(FEATURES, "SUPPORT_WORD_BREAKING", { value }); 4216 return value; 4217 }, 4218 get SUPPORT_SVG_DRAWING() { 4219 var value = testSVG(document); 4220 Object.defineProperty(FEATURES, "SUPPORT_SVG_DRAWING", { value }); 4221 return value; 4222 }, 4223 get SUPPORT_FOREIGNOBJECT_DRAWING() { 4224 var value = typeof Array.from === "function" && typeof window.fetch === "function" ? testForeignObject(document) : Promise.resolve(false); 4225 Object.defineProperty(FEATURES, "SUPPORT_FOREIGNOBJECT_DRAWING", { value }); 4226 return value; 4227 }, 4228 get SUPPORT_CORS_IMAGES() { 4229 var value = testCORS(); 4230 Object.defineProperty(FEATURES, "SUPPORT_CORS_IMAGES", { value }); 4231 return value; 4232 }, 4233 get SUPPORT_RESPONSE_TYPE() { 4234 var value = testResponseType(); 4235 Object.defineProperty(FEATURES, "SUPPORT_RESPONSE_TYPE", { value }); 4236 return value; 4237 }, 4238 get SUPPORT_CORS_XHR() { 4239 var value = "withCredentials" in new XMLHttpRequest(); 4240 Object.defineProperty(FEATURES, "SUPPORT_CORS_XHR", { value }); 4241 return value; 4242 }, 4243 get SUPPORT_NATIVE_TEXT_SEGMENTATION() { 4244 var value = !!(typeof Intl !== "undefined" && Intl.Segmenter); 4245 Object.defineProperty(FEATURES, "SUPPORT_NATIVE_TEXT_SEGMENTATION", { value }); 4246 return value; 4247 } 4248}; 4249var TextBounds = ( 4250 /** @class */ 4251 /* @__PURE__ */
vendor: 21,359 bytes, lines 4251-5049
4251function() { 4252 function TextBounds2(text, bounds) { 4253 this.text = text; 4254 this.bounds = bounds; 4255 } 4256 return TextBounds2; 4257 }() 4258); 4259var parseTextBounds = function(context, value, styles, node) { 4260 var textList = breakText(value, styles); 4261 var textBounds = []; 4262 var offset = 0; 4263 textList.forEach(function(text) { 4264 if (styles.textDecorationLine.length || text.trim().length > 0) { 4265 if (FEATURES.SUPPORT_RANGE_BOUNDS) { 4266 var clientRects = createRange(node, offset, text.length).getClientRects(); 4267 if (clientRects.length > 1) { 4268 var subSegments = segmentGraphemes(text); 4269 var subOffset_1 = 0; 4270 subSegments.forEach(function(subSegment) { 4271 textBounds.push(new TextBounds(subSegment, Bounds.fromDOMRectList(context, createRange(node, subOffset_1 + offset, subSegment.length).getClientRects()))); 4272 subOffset_1 += subSegment.length; 4273 }); 4274 } else { 4275 textBounds.push(new TextBounds(text, Bounds.fromDOMRectList(context, clientRects))); 4276 } 4277 } else { 4278 var replacementNode = node.splitText(text.length); 4279 textBounds.push(new TextBounds(text, getWrapperBounds(context, node))); 4280 node = replacementNode; 4281 } 4282 } else if (!FEATURES.SUPPORT_RANGE_BOUNDS) { 4283 node = node.splitText(text.length); 4284 } 4285 offset += text.length; 4286 }); 4287 return textBounds; 4288}; 4289var getWrapperBounds = function(context, node) { 4290 var ownerDocument = node.ownerDocument; 4291 if (ownerDocument) { 4292 var wrapper = ownerDocument.createElement("html2canvaswrapper"); 4293 wrapper.appendChild(node.cloneNode(true)); 4294 var parentNode = node.parentNode; 4295 if (parentNode) { 4296 parentNode.replaceChild(wrapper, node); 4297 var bounds = parseBounds(context, wrapper); 4298 if (wrapper.firstChild) { 4299 parentNode.replaceChild(wrapper.firstChild, wrapper); 4300 } 4301 return bounds; 4302 } 4303 } 4304 return Bounds.EMPTY; 4305}; 4306var createRange = function(node, offset, length) { 4307 var ownerDocument = node.ownerDocument; 4308 if (!ownerDocument) { 4309 throw new Error("Node has no owner document"); 4310 } 4311 var range = ownerDocument.createRange(); 4312 range.setStart(node, offset); 4313 range.setEnd(node, offset + length); 4314 return range; 4315}; 4316var segmentGraphemes = function(value) { 4317 if (FEATURES.SUPPORT_NATIVE_TEXT_SEGMENTATION) { 4318 var segmenter = new Intl.Segmenter(void 0, { granularity: "grapheme" }); 4319 return Array.from(segmenter.segment(value)).map(function(segment) { 4320 return segment.segment; 4321 }); 4322 } 4323 return splitGraphemes(value); 4324}; 4325var segmentWords = function(value, styles) { 4326 if (FEATURES.SUPPORT_NATIVE_TEXT_SEGMENTATION) { 4327 var segmenter = new Intl.Segmenter(void 0, { 4328 granularity: "word" 4329 }); 4330 return Array.from(segmenter.segment(value)).map(function(segment) { 4331 return segment.segment; 4332 }); 4333 } 4334 return breakWords(value, styles); 4335}; 4336var breakText = function(value, styles) { 4337 return styles.letterSpacing !== 0 ? segmentGraphemes(value) : segmentWords(value, styles); 4338}; 4339var wordSeparators = [32, 160, 4961, 65792, 65793, 4153, 4241]; 4340var breakWords = function(str, styles) { 4341 var breaker = LineBreaker(str, { 4342 lineBreak: styles.lineBreak, 4343 wordBreak: styles.overflowWrap === "break-word" ? "break-word" : styles.wordBreak 4344 }); 4345 var words = []; 4346 var bk; 4347 var _loop_1 = function() { 4348 if (bk.value) { 4349 var value = bk.value.slice(); 4350 var codePoints = toCodePoints$1(value); 4351 var word_1 = ""; 4352 codePoints.forEach(function(codePoint) { 4353 if (wordSeparators.indexOf(codePoint) === -1) { 4354 word_1 += fromCodePoint$1(codePoint); 4355 } else { 4356 if (word_1.length) { 4357 words.push(word_1); 4358 } 4359 words.push(fromCodePoint$1(codePoint)); 4360 word_1 = ""; 4361 } 4362 }); 4363 if (word_1.length) { 4364 words.push(word_1); 4365 } 4366 } 4367 }; 4368 while (!(bk = breaker.next()).done) { 4369 _loop_1(); 4370 } 4371 return words; 4372}; 4373var TextContainer = ( 4374 /** @class */ 4375 /* @__PURE__ */ function() { 4376 function TextContainer2(context, node, styles) { 4377 this.text = transform(node.data, styles.textTransform); 4378 this.textBounds = parseTextBounds(context, this.text, styles, node); 4379 } 4380 return TextContainer2; 4381 }() 4382); 4383var transform = function(text, transform2) { 4384 switch (transform2) { 4385 case 1: 4386 return text.toLowerCase(); 4387 case 3: 4388 return text.replace(CAPITALIZE, capitalize); 4389 case 2: 4390 return text.toUpperCase(); 4391 default: 4392 return text; 4393 } 4394}; 4395var CAPITALIZE = /(^|\s|:|-|\(|\))([a-z])/g; 4396var capitalize = function(m, p1, p2) { 4397 if (m.length > 0) { 4398 return p1 + p2.toUpperCase(); 4399 } 4400 return m; 4401}; 4402var ImageElementContainer = ( 4403 /** @class */ 4404 function(_super) { 4405 __extends(ImageElementContainer2, _super); 4406 function ImageElementContainer2(context, img) { 4407 var _this = _super.call(this, context, img) || this; 4408 _this.src = img.currentSrc || img.src; 4409 _this.intrinsicWidth = img.naturalWidth; 4410 _this.intrinsicHeight = img.naturalHeight; 4411 _this.context.cache.addImage(_this.src); 4412 return _this; 4413 } 4414 return ImageElementContainer2; 4415 }(ElementContainer) 4416); 4417var CanvasElementContainer = ( 4418 /** @class */ 4419 function(_super) { 4420 __extends(CanvasElementContainer2, _super); 4421 function CanvasElementContainer2(context, canvas) { 4422 var _this = _super.call(this, context, canvas) || this; 4423 _this.canvas = canvas; 4424 _this.intrinsicWidth = canvas.width; 4425 _this.intrinsicHeight = canvas.height; 4426 return _this; 4427 } 4428 return CanvasElementContainer2; 4429 }(ElementContainer) 4430); 4431var SVGElementContainer = ( 4432 /** @class */ 4433 function(_super) { 4434 __extends(SVGElementContainer2, _super); 4435 function SVGElementContainer2(context, img) { 4436 var _this = _super.call(this, context, img) || this; 4437 var s = new XMLSerializer(); 4438 var bounds = parseBounds(context, img); 4439 img.setAttribute("width", bounds.width + "px"); 4440 img.setAttribute("height", bounds.height + "px"); 4441 _this.svg = "data:image/svg+xml," + encodeURIComponent(s.serializeToString(img)); 4442 _this.intrinsicWidth = img.width.baseVal.value; 4443 _this.intrinsicHeight = img.height.baseVal.value; 4444 _this.context.cache.addImage(_this.svg); 4445 return _this; 4446 } 4447 return SVGElementContainer2; 4448 }(ElementContainer) 4449); 4450var LIElementContainer = ( 4451 /** @class */ 4452 function(_super) { 4453 __extends(LIElementContainer2, _super); 4454 function LIElementContainer2(context, element) { 4455 var _this = _super.call(this, context, element) || this; 4456 _this.value = element.value; 4457 return _this; 4458 } 4459 return LIElementContainer2; 4460 }(ElementContainer) 4461); 4462var OLElementContainer = ( 4463 /** @class */ 4464 function(_super) { 4465 __extends(OLElementContainer2, _super); 4466 function OLElementContainer2(context, element) { 4467 var _this = _super.call(this, context, element) || this; 4468 _this.start = element.start; 4469 _this.reversed = typeof element.reversed === "boolean" && element.reversed === true; 4470 return _this; 4471 } 4472 return OLElementContainer2; 4473 }(ElementContainer) 4474); 4475var CHECKBOX_BORDER_RADIUS = [ 4476 { 4477 type: 15, 4478 flags: 0, 4479 unit: "px", 4480 number: 3 4481 } 4482]; 4483var RADIO_BORDER_RADIUS = [ 4484 { 4485 type: 16, 4486 flags: 0, 4487 number: 50 4488 } 4489]; 4490var reformatInputBounds = function(bounds) { 4491 if (bounds.width > bounds.height) { 4492 return new Bounds(bounds.left + (bounds.width - bounds.height) / 2, bounds.top, bounds.height, bounds.height); 4493 } else if (bounds.width < bounds.height) { 4494 return new Bounds(bounds.left, bounds.top + (bounds.height - bounds.width) / 2, bounds.width, bounds.width); 4495 } 4496 return bounds; 4497}; 4498var getInputValue = function(node) { 4499 var value = node.type === PASSWORD ? new Array(node.value.length + 1).join("â¢") : node.value; 4500 return value.length === 0 ? node.placeholder || "" : value; 4501}; 4502var CHECKBOX = "checkbox"; 4503var RADIO = "radio"; 4504var PASSWORD = "password"; 4505var INPUT_COLOR = 707406591; 4506var InputElementContainer = ( 4507 /** @class */ 4508 function(_super) { 4509 __extends(InputElementContainer2, _super); 4510 function InputElementContainer2(context, input) { 4511 var _this = _super.call(this, context, input) || this; 4512 _this.type = input.type.toLowerCase(); 4513 _this.checked = input.checked; 4514 _this.value = getInputValue(input); 4515 if (_this.type === CHECKBOX || _this.type === RADIO) { 4516 _this.styles.backgroundColor = 3739148031; 4517 _this.styles.borderTopColor = _this.styles.borderRightColor = _this.styles.borderBottomColor = _this.styles.borderLeftColor = 2779096575; 4518 _this.styles.borderTopWidth = _this.styles.borderRightWidth = _this.styles.borderBottomWidth = _this.styles.borderLeftWidth = 1; 4519 _this.styles.borderTopStyle = _this.styles.borderRightStyle = _this.styles.borderBottomStyle = _this.styles.borderLeftStyle = 1; 4520 _this.styles.backgroundClip = [ 4521 0 4522 /* BORDER_BOX */ 4523 ]; 4524 _this.styles.backgroundOrigin = [ 4525 0 4526 /* BORDER_BOX */ 4527 ]; 4528 _this.bounds = reformatInputBounds(_this.bounds); 4529 } 4530 switch (_this.type) { 4531 case CHECKBOX: 4532 _this.styles.borderTopRightRadius = _this.styles.borderTopLeftRadius = _this.styles.borderBottomRightRadius = _this.styles.borderBottomLeftRadius = CHECKBOX_BORDER_RADIUS; 4533 break; 4534 case RADIO: 4535 _this.styles.borderTopRightRadius = _this.styles.borderTopLeftRadius = _this.styles.borderBottomRightRadius = _this.styles.borderBottomLeftRadius = RADIO_BORDER_RADIUS; 4536 break; 4537 } 4538 return _this; 4539 } 4540 return InputElementContainer2; 4541 }(ElementContainer) 4542); 4543var SelectElementContainer = ( 4544 /** @class */ 4545 function(_super) { 4546 __extends(SelectElementContainer2, _super); 4547 function SelectElementContainer2(context, element) { 4548 var _this = _super.call(this, context, element) || this; 4549 var option = element.options[element.selectedIndex || 0]; 4550 _this.value = option ? option.text || "" : ""; 4551 return _this; 4552 } 4553 return SelectElementContainer2; 4554 }(ElementContainer) 4555); 4556var TextareaElementContainer = ( 4557 /** @class */ 4558 function(_super) { 4559 __extends(TextareaElementContainer2, _super); 4560 function TextareaElementContainer2(context, element) { 4561 var _this = _super.call(this, context, element) || this; 4562 _this.value = element.value; 4563 return _this; 4564 } 4565 return TextareaElementContainer2; 4566 }(ElementContainer) 4567); 4568var IFrameElementContainer = ( 4569 /** @class */ 4570 function(_super) { 4571 __extends(IFrameElementContainer2, _super); 4572 function IFrameElementContainer2(context, iframe) { 4573 var _this = _super.call(this, context, iframe) || this; 4574 _this.src = iframe.src; 4575 _this.width = parseInt(iframe.width, 10) || 0; 4576 _this.height = parseInt(iframe.height, 10) || 0; 4577 _this.backgroundColor = _this.styles.backgroundColor; 4578 try { 4579 if (iframe.contentWindow && iframe.contentWindow.document && iframe.contentWindow.document.documentElement) { 4580 _this.tree = parseTree(context, iframe.contentWindow.document.documentElement); 4581 var documentBackgroundColor = iframe.contentWindow.document.documentElement ? parseColor(context, getComputedStyle(iframe.contentWindow.document.documentElement).backgroundColor) : COLORS.TRANSPARENT; 4582 var bodyBackgroundColor = iframe.contentWindow.document.body ? parseColor(context, getComputedStyle(iframe.contentWindow.document.body).backgroundColor) : COLORS.TRANSPARENT; 4583 _this.backgroundColor = isTransparent(documentBackgroundColor) ? isTransparent(bodyBackgroundColor) ? _this.styles.backgroundColor : bodyBackgroundColor : documentBackgroundColor; 4584 } 4585 } catch (e2) { 4586 } 4587 return _this; 4588 } 4589 return IFrameElementContainer2; 4590 }(ElementContainer) 4591); 4592var LIST_OWNERS = ["OL", "UL", "MENU"]; 4593var parseNodeTree = function(context, node, parent, root) { 4594 for (var childNode = node.firstChild, nextNode = void 0; childNode; childNode = nextNode) { 4595 nextNode = childNode.nextSibling; 4596 if (isTextNode(childNode) && childNode.data.trim().length > 0) { 4597 parent.textNodes.push(new TextContainer(context, childNode, parent.styles)); 4598 } else if (isElementNode(childNode)) { 4599 if (isSlotElement(childNode) && childNode.assignedNodes) { 4600 childNode.assignedNodes().forEach(function(childNode2) { 4601 return parseNodeTree(context, childNode2, parent, root); 4602 }); 4603 } else { 4604 var container = createContainer(context, childNode); 4605 if (container.styles.isVisible()) { 4606 if (createsRealStackingContext(childNode, container, root)) { 4607 container.flags |= 4; 4608 } else if (createsStackingContext(container.styles)) { 4609 container.flags |= 2; 4610 } 4611 if (LIST_OWNERS.indexOf(childNode.tagName) !== -1) { 4612 container.flags |= 8; 4613 } 4614 parent.elements.push(container); 4615 childNode.slot; 4616 if (childNode.shadowRoot) { 4617 parseNodeTree(context, childNode.shadowRoot, container, root); 4618 } else if (!isTextareaElement(childNode) && !isSVGElement(childNode) && !isSelectElement(childNode)) { 4619 parseNodeTree(context, childNode, container, root); 4620 } 4621 } 4622 } 4623 } 4624 } 4625}; 4626var createContainer = function(context, element) { 4627 if (isImageElement(element)) { 4628 return new ImageElementContainer(context, element); 4629 } 4630 if (isCanvasElement(element)) { 4631 return new CanvasElementContainer(context, element); 4632 } 4633 if (isSVGElement(element)) { 4634 return new SVGElementContainer(context, element); 4635 } 4636 if (isLIElement(element)) { 4637 return new LIElementContainer(context, element); 4638 } 4639 if (isOLElement(element)) { 4640 return new OLElementContainer(context, element); 4641 } 4642 if (isInputElement(element)) { 4643 return new InputElementContainer(context, element); 4644 } 4645 if (isSelectElement(element)) { 4646 return new SelectElementContainer(context, element); 4647 } 4648 if (isTextareaElement(element)) { 4649 return new TextareaElementContainer(context, element); 4650 } 4651 if (isIFrameElement(element)) { 4652 return new IFrameElementContainer(context, element); 4653 } 4654 return new ElementContainer(context, element); 4655}; 4656var parseTree = function(context, element) { 4657 var container = createContainer(context, element); 4658 container.flags |= 4; 4659 parseNodeTree(context, element, container, container); 4660 return container; 4661}; 4662var createsRealStackingContext = function(node, container, root) { 4663 return container.styles.isPositionedWithZIndex() || container.styles.opacity < 1 || container.styles.isTransformed() || isBodyElement(node) && root.styles.isTransparent(); 4664}; 4665var createsStackingContext = function(styles) { 4666 return styles.isPositioned() || styles.isFloating(); 4667}; 4668var isTextNode = function(node) { 4669 return node.nodeType === Node.TEXT_NODE; 4670}; 4671var isElementNode = function(node) { 4672 return node.nodeType === Node.ELEMENT_NODE; 4673}; 4674var isHTMLElementNode = function(node) { 4675 return isElementNode(node) && typeof node.style !== "undefined" && !isSVGElementNode(node); 4676}; 4677var isSVGElementNode = function(element) { 4678 return typeof element.className === "object"; 4679}; 4680var isLIElement = function(node) { 4681 return node.tagName === "LI"; 4682}; 4683var isOLElement = function(node) { 4684 return node.tagName === "OL"; 4685}; 4686var isInputElement = function(node) { 4687 return node.tagName === "INPUT"; 4688}; 4689var isHTMLElement = function(node) { 4690 return node.tagName === "HTML"; 4691}; 4692var isSVGElement = function(node) { 4693 return node.tagName === "svg"; 4694}; 4695var isBodyElement = function(node) { 4696 return node.tagName === "BODY"; 4697}; 4698var isCanvasElement = function(node) { 4699 return node.tagName === "CANVAS"; 4700}; 4701var isVideoElement = function(node) { 4702 return node.tagName === "VIDEO"; 4703}; 4704var isImageElement = function(node) { 4705 return node.tagName === "IMG"; 4706}; 4707var isIFrameElement = function(node) { 4708 return node.tagName === "IFRAME"; 4709}; 4710var isStyleElement = function(node) { 4711 return node.tagName === "STYLE"; 4712}; 4713var isScriptElement = function(node) { 4714 return node.tagName === "SCRIPT"; 4715}; 4716var isTextareaElement = function(node) { 4717 return node.tagName === "TEXTAREA"; 4718}; 4719var isSelectElement = function(node) { 4720 return node.tagName === "SELECT"; 4721}; 4722var isSlotElement = function(node) { 4723 return node.tagName === "SLOT"; 4724}; 4725var isCustomElement = function(node) { 4726 return node.tagName.indexOf("-") > 0; 4727}; 4728var CounterState = ( 4729 /** @class */ 4730 function() { 4731 function CounterState2() { 4732 this.counters = {}; 4733 } 4734 CounterState2.prototype.getCounterValue = function(name) { 4735 var counter = this.counters[name]; 4736 if (counter && counter.length) { 4737 return counter[counter.length - 1]; 4738 } 4739 return 1; 4740 }; 4741 CounterState2.prototype.getCounterValues = function(name) { 4742 var counter = this.counters[name]; 4743 return counter ? counter : []; 4744 }; 4745 CounterState2.prototype.pop = function(counters) { 4746 var _this = this; 4747 counters.forEach(function(counter) { 4748 return _this.counters[counter].pop(); 4749 }); 4750 }; 4751 CounterState2.prototype.parse = function(style) { 4752 var _this = this; 4753 var counterIncrement2 = style.counterIncrement; 4754 var counterReset2 = style.counterReset; 4755 var canReset = true; 4756 if (counterIncrement2 !== null) { 4757 counterIncrement2.forEach(function(entry) { 4758 var counter = _this.counters[entry.counter]; 4759 if (counter && entry.increment !== 0) { 4760 canReset = false; 4761 if (!counter.length) { 4762 counter.push(1); 4763 } 4764 counter[Math.max(0, counter.length - 1)] += entry.increment; 4765 } 4766 }); 4767 } 4768 var counterNames = []; 4769 if (canReset) { 4770 counterReset2.forEach(function(entry) { 4771 var counter = _this.counters[entry.counter]; 4772 counterNames.push(entry.counter); 4773 if (!counter) { 4774 counter = _this.counters[entry.counter] = []; 4775 } 4776 counter.push(entry.reset); 4777 }); 4778 } 4779 return counterNames; 4780 }; 4781 return CounterState2; 4782 }() 4783); 4784var ROMAN_UPPER = { 4785 integers: [1e3, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1], 4786 values: ["M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I"] 4787}; 4788var ARMENIAN = { 4789 integers: [ 4790 9e3, 4791 8e3, 4792 7e3, 4793 6e3, 4794 5e3, 4795 4e3, 4796 3e3, 4797 2e3, 4798 1e3, 4799 900, 4800 800, 4801 700, 4802 600, 4803 500, 4804 400, 4805 300, 4806 200, 4807 100, 4808 90, 4809 80, 4810 70, 4811 60, 4812 50, 4813 40, 4814 30, 4815 20, 4816 10, 4817 9, 4818 8, 4819 7, 4820 6, 4821 5, 4822 4, 4823 3, 4824 2, 4825 1 4826 ], 4827 values: [ 4828 "Õ", 4829 "Õ", 4830 "Õ", 4831 "Õ", 4832 "Õ", 4833 "Õ", 4834 "Õ", 4835 "Õ", 4836 "Õ", 4837 "Õ", 4838 "Õ", 4839 "Õ", 4840 "Õ", 4841 "Õ", 4842 "Õ", 4843 "Õ ", 4844 "Õ", 4845 "Õ", 4846 "Õ", 4847 "Õ", 4848 "Õ", 4849 "Ô¿", 4850 "Ô¾", 4851 "Ô½", 4852 "Ô¼", 4853 "Ô»", 4854 "Ôº", 4855 "Ô¹", 4856 "Ô¸", 4857 "Ô·", 4858 "Ô¶", 4859 "Ôµ", 4860 "Ô´", 4861 "Ô³", 4862 "Ô²", 4863 "Ô±" 4864 ] 4865}; 4866var HEBREW = { 4867 integers: [ 4868 1e4, 4869 9e3, 4870 8e3, 4871 7e3, 4872 6e3, 4873 5e3, 4874 4e3, 4875 3e3, 4876 2e3, 4877 1e3, 4878 400, 4879 300, 4880 200, 4881 100, 4882 90, 4883 80, 4884 70, 4885 60, 4886 50, 4887 40, 4888 30, 4889 20, 4890 19, 4891 18, 4892 17, 4893 16, 4894 15, 4895 10, 4896 9, 4897 8, 4898 7, 4899 6, 4900 5, 4901 4, 4902 3, 4903 2, 4904 1 4905 ], 4906 values: [ 4907 "×׳", 4908 "×׳", 4909 "×׳", 4910 "×׳", 4911 "×׳", 4912 "×׳", 4913 "×׳", 4914 "×׳", 4915 "×׳", 4916 "×׳", 4917 "ת", 4918 "ש", 4919 "ר", 4920 "×§", 4921 "צ", 4922 "פ", 4923 "×¢", 4924 "ס", 4925 "× ", 4926 "×", 4927 "×", 4928 "×", 4929 "××", 4930 "××", 4931 "××", 4932 "××", 4933 "××", 4934 "×", 4935 "×", 4936 "×", 4937 "×", 4938 "×", 4939 "×", 4940 "×", 4941 "×", 4942 "×", 4943 "×" 4944 ] 4945}; 4946var GEORGIAN = { 4947 integers: [ 4948 1e4, 4949 9e3, 4950 8e3, 4951 7e3, 4952 6e3, 4953 5e3, 4954 4e3, 4955 3e3, 4956 2e3, 4957 1e3, 4958 900, 4959 800, 4960 700, 4961 600, 4962 500, 4963 400, 4964 300, 4965 200, 4966 100, 4967 90, 4968 80, 4969 70, 4970 60, 4971 50, 4972 40, 4973 30, 4974 20, 4975 10, 4976 9, 4977 8, 4978 7, 4979 6, 4980 5, 4981 4, 4982 3, 4983 2, 4984 1 4985 ], 4986 values: [ 4987 "áµ", 4988 "á°", 4989 "á¯", 4990 "á´", 4991 "á®", 4992 "á", 4993 "á¬", 4994 "á«", 4995 "áª", 4996 "á©", 4997 "á¨", 4998 "á§", 4999 "á¦", 5000 "á¥", 5001 "á¤", 5002 "á³", 5003 "á¢", 5004 "á¡", 5005 "á ", 5006 "á", 5007 "á", 5008 "á", 5009 "á²", 5010 "á", 5011 "á", 5012 "á", 5013 "á", 5014 "á", 5015 "á", 5016 "á±", 5017 "á", 5018 "á", 5019 "á", 5020 "á", 5021 "á", 5022 "á", 5023 "á" 5024 ] 5025}; 5026var createAdditiveCounter = function(value, min, max, symbols, fallback, suffix) { 5027 if (value < min || value > max) { 5028 return createCounterText(value, fallback, suffix.length > 0); 5029 } 5030 return symbols.integers.reduce(function(string, integer, index) { 5031 while (value >= integer) { 5032 value -= integer; 5033 string += symbols.values[index]; 5034 } 5035 return string; 5036 }, "") + suffix; 5037}; 5038var createCounterStyleWithSymbolResolver = function(value, codePointRangeLength, isNumeric, resolver) { 5039 var string = ""; 5040 do { 5041 if (!isNumeric) { 5042 value--; 5043 } 5044 string = resolver(value) + string; 5045 value /= codePointRangeLength; 5046 } while (value * codePointRangeLength >= codePointRangeLength); 5047 return string; 5048}; 5049var createCounterStyleFromRange = function(value, codePointRangeStart, co
vendor: 8,253 bytes, lines 5049-5202
5049dePointRangeEnd, isNumeric, suffix) { 5050 var codePointRangeLength = codePointRangeEnd - codePointRangeStart + 1; 5051 return (value < 0 ? "-" : "") + (createCounterStyleWithSymbolResolver(Math.abs(value), codePointRangeLength, isNumeric, function(codePoint) { 5052 return fromCodePoint$1(Math.floor(codePoint % codePointRangeLength) + codePointRangeStart); 5053 }) + suffix); 5054}; 5055var createCounterStyleFromSymbols = function(value, symbols, suffix) { 5056 if (suffix === void 0) { 5057 suffix = ". "; 5058 } 5059 var codePointRangeLength = symbols.length; 5060 return createCounterStyleWithSymbolResolver(Math.abs(value), codePointRangeLength, false, function(codePoint) { 5061 return symbols[Math.floor(codePoint % codePointRangeLength)]; 5062 }) + suffix; 5063}; 5064var CJK_ZEROS = 1 << 0; 5065var CJK_TEN_COEFFICIENTS = 1 << 1; 5066var CJK_TEN_HIGH_COEFFICIENTS = 1 << 2; 5067var CJK_HUNDRED_COEFFICIENTS = 1 << 3; 5068var createCJKCounter = function(value, numbers, multipliers, negativeSign, suffix, flags) { 5069 if (value < -9999 || value > 9999) { 5070 return createCounterText(value, 4, suffix.length > 0); 5071 } 5072 var tmp = Math.abs(value); 5073 var string = suffix; 5074 if (tmp === 0) { 5075 return numbers[0] + string; 5076 } 5077 for (var digit = 0; tmp > 0 && digit <= 4; digit++) { 5078 var coefficient = tmp % 10; 5079 if (coefficient === 0 && contains(flags, CJK_ZEROS) && string !== "") { 5080 string = numbers[coefficient] + string; 5081 } else if (coefficient > 1 || coefficient === 1 && digit === 0 || coefficient === 1 && digit === 1 && contains(flags, CJK_TEN_COEFFICIENTS) || coefficient === 1 && digit === 1 && contains(flags, CJK_TEN_HIGH_COEFFICIENTS) && value > 100 || coefficient === 1 && digit > 1 && contains(flags, CJK_HUNDRED_COEFFICIENTS)) { 5082 string = numbers[coefficient] + (digit > 0 ? multipliers[digit - 1] : "") + string; 5083 } else if (coefficient === 1 && digit > 0) { 5084 string = multipliers[digit - 1] + string; 5085 } 5086 tmp = Math.floor(tmp / 10); 5087 } 5088 return (value < 0 ? negativeSign : "") + string; 5089}; 5090var CHINESE_INFORMAL_MULTIPLIERS = "åç¾åè¬"; 5091var CHINESE_FORMAL_MULTIPLIERS = "æ¾ä½°ä»è¬"; 5092var JAPANESE_NEGATIVE = "ãã¤ãã¹"; 5093var KOREAN_NEGATIVE = "ë§ì´ëì¤"; 5094var createCounterText = function(value, type, appendSuffix) { 5095 var defaultSuffix = appendSuffix ? ". " : ""; 5096 var cjkSuffix = appendSuffix ? "ã" : ""; 5097 var koreanSuffix = appendSuffix ? ", " : ""; 5098 var spaceSuffix = appendSuffix ? " " : ""; 5099 switch (type) { 5100 case 0: 5101 return "â¢" + spaceSuffix; 5102 case 1: 5103 return "â¦" + spaceSuffix; 5104 case 2: 5105 return "â¾" + spaceSuffix; 5106 case 5: 5107 var string = createCounterStyleFromRange(value, 48, 57, true, defaultSuffix); 5108 return string.length < 4 ? "0" + string : string; 5109 case 4: 5110 return createCounterStyleFromSymbols(value, "ãä¸äºä¸åäºå ä¸å «ä¹", cjkSuffix); 5111 case 6: 5112 return createAdditiveCounter(value, 1, 3999, ROMAN_UPPER, 3, defaultSuffix).toLowerCase(); 5113 case 7: 5114 return createAdditiveCounter(value, 1, 3999, ROMAN_UPPER, 3, defaultSuffix); 5115 case 8: 5116 return createCounterStyleFromRange(value, 945, 969, false, defaultSuffix); 5117 case 9: 5118 return createCounterStyleFromRange(value, 97, 122, false, defaultSuffix); 5119 case 10: 5120 return createCounterStyleFromRange(value, 65, 90, false, defaultSuffix); 5121 case 11: 5122 return createCounterStyleFromRange(value, 1632, 1641, true, defaultSuffix); 5123 case 12: 5124 case 49: 5125 return createAdditiveCounter(value, 1, 9999, ARMENIAN, 3, defaultSuffix); 5126 case 35: 5127 return createAdditiveCounter(value, 1, 9999, ARMENIAN, 3, defaultSuffix).toLowerCase(); 5128 case 13: 5129 return createCounterStyleFromRange(value, 2534, 2543, true, defaultSuffix); 5130 case 14: 5131 case 30: 5132 return createCounterStyleFromRange(value, 6112, 6121, true, defaultSuffix); 5133 case 15: 5134 return createCounterStyleFromSymbols(value, "åä¸å¯ å¯è¾°å·³åæªç³é æäº¥", cjkSuffix); 5135 case 16: 5136 return createCounterStyleFromSymbols(value, "ç²ä¹ä¸ä¸æå·±åºè¾å£¬ç¸", cjkSuffix); 5137 case 17: 5138 case 48: 5139 return createCJKCounter(value, "é¶ä¸äºä¸åäºå ä¸å «ä¹", CHINESE_INFORMAL_MULTIPLIERS, "è² ", cjkSuffix, CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS | CJK_HUNDRED_COEFFICIENTS); 5140 case 47: 5141 return createCJKCounter(value, "é¶å£¹è²³åèä¼é¸ææç", CHINESE_FORMAL_MULTIPLIERS, "è² ", cjkSuffix, CJK_ZEROS | CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS | CJK_HUNDRED_COEFFICIENTS); 5142 case 42: 5143 return createCJKCounter(value, "é¶ä¸äºä¸åäºå ä¸å «ä¹", CHINESE_INFORMAL_MULTIPLIERS, "è´", cjkSuffix, CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS | CJK_HUNDRED_COEFFICIENTS); 5144 case 41: 5145 return createCJKCounter(value, "é¶å£¹è´°åèä¼éææç", CHINESE_FORMAL_MULTIPLIERS, "è´", cjkSuffix, CJK_ZEROS | CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS | CJK_HUNDRED_COEFFICIENTS); 5146 case 26: 5147 return createCJKCounter(value, "ãä¸äºä¸åäºå ä¸å «ä¹", "åç¾åä¸", JAPANESE_NEGATIVE, cjkSuffix, 0); 5148 case 25: 5149 return createCJKCounter(value, "é¶å£±å¼ååä¼å ä¸å «ä¹", "æ¾ç¾åä¸", JAPANESE_NEGATIVE, cjkSuffix, CJK_ZEROS | CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS); 5150 case 31: 5151 return createCJKCounter(value, "ìì¼ì´ì¼ì¬ì¤ì¡ì¹ í구", "ìë°±ì²ë§", KOREAN_NEGATIVE, koreanSuffix, CJK_ZEROS | CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS); 5152 case 33: 5153 return createCJKCounter(value, "é¶ä¸äºä¸åäºå ä¸å «ä¹", "åç¾åè¬", KOREAN_NEGATIVE, koreanSuffix, 0); 5154 case 32: 5155 return createCJKCounter(value, "é¶å£¹è²³ååäºå ä¸å «ä¹", "æ¾ç¾å", KOREAN_NEGATIVE, koreanSuffix, CJK_ZEROS | CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS); 5156 case 18: 5157 return createCounterStyleFromRange(value, 2406, 2415, true, defaultSuffix); 5158 case 20: 5159 return createAdditiveCounter(value, 1, 19999, GEORGIAN, 3, defaultSuffix); 5160 case 21: 5161 return createCounterStyleFromRange(value, 2790, 2799, true, defaultSuffix); 5162 case 22: 5163 return createCounterStyleFromRange(value, 2662, 2671, true, defaultSuffix); 5164 case 22: 5165 return createAdditiveCounter(value, 1, 10999, HEBREW, 3, defaultSuffix); 5166 case 23: 5167 return createCounterStyleFromSymbols(value, "ããããããããããããããããã¡ã¤ã¦ã¨ãªã«ã¬ãã®ã¯ã²ãµã¸ã»ã¾ã¿ãããããããããããããããã"); 5168 case 24: 5169 return createCounterStyleFromSymbols(value, "ããã¯ã«ã»ã¸ã¨ã¡ãã¬ããããããããã¤ããªããããã®ãããã¾ããµããã¦ãããããã¿ããã²ããã"); 5170 case 27: 5171 return createCounterStyleFromRange(value, 3302, 3311, true, defaultSuffix); 5172 case 28: 5173 return createCounterStyleFromSymbols(value, "ã¢ã¤ã¦ã¨ãªã«ãã¯ã±ã³ãµã·ã¹ã»ã½ã¿ããããããããããããããããã ã¡ã¢ã¤ã¦ã¨ã©ãªã«ã¬ãã¯ã°ã±ã²ã³", cjkSuffix); 5174 case 29: 5175 return createCounterStyleFromSymbols(value, "ã¤ããããããããªãã«ã²ã¯ã«ã¨ã¿ã¬ã½ãããã©ã ã¦ã°ããªã¯ã¤ãã±ãã³ã¨ãã¢ãµãã¦ã¡ãã·ã±ãã¢ã»ã¹", cjkSuffix); 5176 case 34: 5177 return createCounterStyleFromRange(value, 3792, 3801, true, defaultSuffix); 5178 case 37: 5179 return createCounterStyleFromRange(value, 6160, 6169, true, defaultSuffix); 5180 case 38: 5181 return createCounterStyleFromRange(value, 4160, 4169, true, defaultSuffix); 5182 case 39: 5183 return createCounterStyleFromRange(value, 2918, 2927, true, defaultSuffix); 5184 case 40: 5185 return createCounterStyleFromRange(value, 1776, 1785, true, defaultSuffix); 5186 case 43: 5187 return createCounterStyleFromRange(value, 3046, 3055, true, defaultSuffix); 5188 case 44: 5189 return createCounterStyleFromRange(value, 3174, 3183, true, defaultSuffix); 5190 case 45: 5191 return createCounterStyleFromRange(value, 3664, 3673, true, defaultSuffix); 5192 case 46: 5193 return createCounterStyleFromRange(value, 3872, 3881, true, defaultSuffix); 5194 case 3: 5195 default: 5196 return createCounterStyleFromRange(value, 48, 57, true, defaultSuffix); 5197 } 5198}; 5199var IGNORE_ATTRIBUTE = "data-html2canvas-ignore"; 5200var DocumentCloner = ( 5201 /** @class */ 5202
vendor: 14,927 bytes, lines 5202-5540
5202function() { 5203 function DocumentCloner2(context, element, options) { 5204 this.context = context; 5205 this.options = options; 5206 this.scrolledElements = []; 5207 this.referenceElement = element; 5208 this.counters = new CounterState(); 5209 this.quoteDepth = 0; 5210 if (!element.ownerDocument) { 5211 throw new Error("Cloned element does not have an owner document"); 5212 } 5213 this.documentElement = this.cloneNode(element.ownerDocument.documentElement, false); 5214 } 5215 DocumentCloner2.prototype.toIFrame = function(ownerDocument, windowSize) { 5216 var _this = this; 5217 var iframe = createIFrameContainer(ownerDocument, windowSize); 5218 if (!iframe.contentWindow) { 5219 return Promise.reject("Unable to find iframe window"); 5220 } 5221 var scrollX = ownerDocument.defaultView.pageXOffset; 5222 var scrollY = ownerDocument.defaultView.pageYOffset; 5223 var cloneWindow = iframe.contentWindow; 5224 var documentClone = cloneWindow.document; 5225 var iframeLoad = iframeLoader(iframe).then(function() { 5226 return __awaiter(_this, void 0, void 0, function() { 5227 var onclone, referenceElement; 5228 return __generator(this, function(_a) { 5229 switch (_a.label) { 5230 case 0: 5231 this.scrolledElements.forEach(restoreNodeScroll); 5232 if (cloneWindow) { 5233 cloneWindow.scrollTo(windowSize.left, windowSize.top); 5234 if (/(iPad|iPhone|iPod)/g.test(navigator.userAgent) && (cloneWindow.scrollY !== windowSize.top || cloneWindow.scrollX !== windowSize.left)) { 5235 this.context.logger.warn("Unable to restore scroll position for cloned document"); 5236 this.context.windowBounds = this.context.windowBounds.add(cloneWindow.scrollX - windowSize.left, cloneWindow.scrollY - windowSize.top, 0, 0); 5237 } 5238 } 5239 onclone = this.options.onclone; 5240 referenceElement = this.clonedReferenceElement; 5241 if (typeof referenceElement === "undefined") { 5242 return [2, Promise.reject("Error finding the " + this.referenceElement.nodeName + " in the cloned document")]; 5243 } 5244 if (!(documentClone.fonts && documentClone.fonts.ready)) return [3, 2]; 5245 return [4, documentClone.fonts.ready]; 5246 case 1: 5247 _a.sent(); 5248 _a.label = 2; 5249 case 2: 5250 if (!/(AppleWebKit)/g.test(navigator.userAgent)) return [3, 4]; 5251 return [4, imagesReady(documentClone)]; 5252 case 3: 5253 _a.sent(); 5254 _a.label = 4; 5255 case 4: 5256 if (typeof onclone === "function") { 5257 return [2, Promise.resolve().then(function() { 5258 return onclone(documentClone, referenceElement); 5259 }).then(function() { 5260 return iframe; 5261 })]; 5262 } 5263 return [2, iframe]; 5264 } 5265 }); 5266 }); 5267 }); 5268 documentClone.open(); 5269 documentClone.write(serializeDoctype(document.doctype) + "<html></html>"); 5270 restoreOwnerScroll(this.referenceElement.ownerDocument, scrollX, scrollY); 5271 documentClone.replaceChild(documentClone.adoptNode(this.documentElement), documentClone.documentElement); 5272 documentClone.close(); 5273 return iframeLoad; 5274 }; 5275 DocumentCloner2.prototype.createElementClone = function(node) { 5276 if (isDebugging( 5277 node, 5278 2 5279 /* CLONE */ 5280 )) { 5281 debugger; 5282 } 5283 if (isCanvasElement(node)) { 5284 return this.createCanvasClone(node); 5285 } 5286 if (isVideoElement(node)) { 5287 return this.createVideoClone(node); 5288 } 5289 if (isStyleElement(node)) { 5290 return this.createStyleClone(node); 5291 } 5292 var clone = node.cloneNode(false); 5293 if (isImageElement(clone)) { 5294 if (isImageElement(node) && node.currentSrc && node.currentSrc !== node.src) { 5295 clone.src = node.currentSrc; 5296 clone.srcset = ""; 5297 } 5298 if (clone.loading === "lazy") { 5299 clone.loading = "eager"; 5300 } 5301 } 5302 if (isCustomElement(clone)) { 5303 return this.createCustomElementClone(clone); 5304 } 5305 return clone; 5306 }; 5307 DocumentCloner2.prototype.createCustomElementClone = function(node) { 5308 var clone = document.createElement("html2canvascustomelement"); 5309 copyCSSStyles(node.style, clone); 5310 return clone; 5311 }; 5312 DocumentCloner2.prototype.createStyleClone = function(node) { 5313 try { 5314 var sheet = node.sheet; 5315 if (sheet && sheet.cssRules) { 5316 var css = [].slice.call(sheet.cssRules, 0).reduce(function(css2, rule) { 5317 if (rule && typeof rule.cssText === "string") { 5318 return css2 + rule.cssText; 5319 } 5320 return css2; 5321 }, ""); 5322 var style = node.cloneNode(false); 5323 style.textContent = css; 5324 return style; 5325 } 5326 } catch (e2) { 5327 this.context.logger.error("Unable to access cssRules property", e2); 5328 if (e2.name !== "SecurityError") { 5329 throw e2; 5330 } 5331 } 5332 return node.cloneNode(false); 5333 }; 5334 DocumentCloner2.prototype.createCanvasClone = function(canvas) { 5335 var _a; 5336 if (this.options.inlineImages && canvas.ownerDocument) { 5337 var img = canvas.ownerDocument.createElement("img"); 5338 try { 5339 img.src = canvas.toDataURL(); 5340 return img; 5341 } catch (e2) { 5342 this.context.logger.info("Unable to inline canvas contents, canvas is tainted", canvas); 5343 } 5344 } 5345 var clonedCanvas = canvas.cloneNode(false); 5346 try { 5347 clonedCanvas.width = canvas.width; 5348 clonedCanvas.height = canvas.height; 5349 var ctx = canvas.getContext("2d"); 5350 var clonedCtx = clonedCanvas.getContext("2d"); 5351 if (clonedCtx) { 5352 if (!this.options.allowTaint && ctx) { 5353 clonedCtx.putImageData(ctx.getImageData(0, 0, canvas.width, canvas.height), 0, 0); 5354 } else { 5355 var gl = (_a = canvas.getContext("webgl2")) !== null && _a !== void 0 ? _a : canvas.getContext("webgl"); 5356 if (gl) { 5357 var attribs = gl.getContextAttributes(); 5358 if ((attribs === null || attribs === void 0 ? void 0 : attribs.preserveDrawingBuffer) === false) { 5359 this.context.logger.warn("Unable to clone WebGL context as it has preserveDrawingBuffer=false", canvas); 5360 } 5361 } 5362 clonedCtx.drawImage(canvas, 0, 0); 5363 } 5364 } 5365 return clonedCanvas; 5366 } catch (e2) { 5367 this.context.logger.info("Unable to clone canvas as it is tainted", canvas); 5368 } 5369 return clonedCanvas; 5370 }; 5371 DocumentCloner2.prototype.createVideoClone = function(video) { 5372 var canvas = video.ownerDocument.createElement("canvas"); 5373 canvas.width = video.offsetWidth; 5374 canvas.height = video.offsetHeight; 5375 var ctx = canvas.getContext("2d"); 5376 try { 5377 if (ctx) { 5378 ctx.drawImage(video, 0, 0, canvas.width, canvas.height); 5379 if (!this.options.allowTaint) { 5380 ctx.getImageData(0, 0, canvas.width, canvas.height); 5381 } 5382 } 5383 return canvas; 5384 } catch (e2) { 5385 this.context.logger.info("Unable to clone video as it is tainted", video); 5386 } 5387 var blankCanvas = video.ownerDocument.createElement("canvas"); 5388 blankCanvas.width = video.offsetWidth; 5389 blankCanvas.height = video.offsetHeight; 5390 return blankCanvas; 5391 }; 5392 DocumentCloner2.prototype.appendChildNode = function(clone, child, copyStyles) { 5393 if (!isElementNode(child) || !isScriptElement(child) && !child.hasAttribute(IGNORE_ATTRIBUTE) && (typeof this.options.ignoreElements !== "function" || !this.options.ignoreElements(child))) { 5394 if (!this.options.copyStyles || !isElementNode(child) || !isStyleElement(child)) { 5395 clone.appendChild(this.cloneNode(child, copyStyles)); 5396 } 5397 } 5398 }; 5399 DocumentCloner2.prototype.cloneChildNodes = function(node, clone, copyStyles) { 5400 var _this = this; 5401 for (var child = node.shadowRoot ? node.shadowRoot.firstChild : node.firstChild; child; child = child.nextSibling) { 5402 if (isElementNode(child) && isSlotElement(child) && typeof child.assignedNodes === "function") { 5403 var assignedNodes = child.assignedNodes(); 5404 if (assignedNodes.length) { 5405 assignedNodes.forEach(function(assignedNode) { 5406 return _this.appendChildNode(clone, assignedNode, copyStyles); 5407 }); 5408 } 5409 } else { 5410 this.appendChildNode(clone, child, copyStyles); 5411 } 5412 } 5413 }; 5414 DocumentCloner2.prototype.cloneNode = function(node, copyStyles) { 5415 if (isTextNode(node)) { 5416 return document.createTextNode(node.data); 5417 } 5418 if (!node.ownerDocument) { 5419 return node.cloneNode(false); 5420 } 5421 var window2 = node.ownerDocument.defaultView; 5422 if (window2 && isElementNode(node) && (isHTMLElementNode(node) || isSVGElementNode(node))) { 5423 var clone = this.createElementClone(node); 5424 clone.style.transitionProperty = "none"; 5425 var style = window2.getComputedStyle(node); 5426 var styleBefore = window2.getComputedStyle(node, ":before"); 5427 var styleAfter = window2.getComputedStyle(node, ":after"); 5428 if (this.referenceElement === node && isHTMLElementNode(clone)) { 5429 this.clonedReferenceElement = clone; 5430 } 5431 if (isBodyElement(clone)) { 5432 createPseudoHideStyles(clone); 5433 } 5434 var counters = this.counters.parse(new CSSParsedCounterDeclaration(this.context, style)); 5435 var before = this.resolvePseudoContent(node, clone, styleBefore, PseudoElementType.BEFORE); 5436 if (isCustomElement(node)) { 5437 copyStyles = true; 5438 } 5439 if (!isVideoElement(node)) { 5440 this.cloneChildNodes(node, clone, copyStyles); 5441 } 5442 if (before) { 5443 clone.insertBefore(before, clone.firstChild); 5444 } 5445 var after = this.resolvePseudoContent(node, clone, styleAfter, PseudoElementType.AFTER); 5446 if (after) { 5447 clone.appendChild(after); 5448 } 5449 this.counters.pop(counters); 5450 if (style && (this.options.copyStyles || isSVGElementNode(node)) && !isIFrameElement(node) || copyStyles) { 5451 copyCSSStyles(style, clone); 5452 } 5453 if (node.scrollTop !== 0 || node.scrollLeft !== 0) { 5454 this.scrolledElements.push([clone, node.scrollLeft, node.scrollTop]); 5455 } 5456 if ((isTextareaElement(node) || isSelectElement(node)) && (isTextareaElement(clone) || isSelectElement(clone))) { 5457 clone.value = node.value; 5458 } 5459 return clone; 5460 } 5461 return node.cloneNode(false); 5462 }; 5463 DocumentCloner2.prototype.resolvePseudoContent = function(node, clone, style, pseudoElt) { 5464 var _this = this; 5465 if (!style) { 5466 return; 5467 } 5468 var value = style.content; 5469 var document2 = clone.ownerDocument; 5470 if (!document2 || !value || value === "none" || value === "-moz-alt-content" || style.display === "none") { 5471 return; 5472 } 5473 this.counters.parse(new CSSParsedCounterDeclaration(this.context, style)); 5474 var declaration = new CSSParsedPseudoDeclaration(this.context, style); 5475 var anonymousReplacedElement = document2.createElement("html2canvaspseudoelement"); 5476 copyCSSStyles(style, anonymousReplacedElement); 5477 declaration.content.forEach(function(token) { 5478 if (token.type === 0) { 5479 anonymousReplacedElement.appendChild(document2.createTextNode(token.value)); 5480 } else if (token.type === 22) { 5481 var img = document2.createElement("img"); 5482 img.src = token.value; 5483 img.style.opacity = "1"; 5484 anonymousReplacedElement.appendChild(img); 5485 } else if (token.type === 18) { 5486 if (token.name === "attr") { 5487 var attr = token.values.filter(isIdentToken); 5488 if (attr.length) { 5489 anonymousReplacedElement.appendChild(document2.createTextNode(node.getAttribute(attr[0].value) || "")); 5490 } 5491 } else if (token.name === "counter") { 5492 var _a = token.values.filter(nonFunctionArgSeparator), counter = _a[0], counterStyle = _a[1]; 5493 if (counter && isIdentToken(counter)) { 5494 var counterState = _this.counters.getCounterValue(counter.value); 5495 var counterType = counterStyle && isIdentToken(counterStyle) ? listStyleType.parse(_this.context, counterStyle.value) : 3; 5496 anonymousReplacedElement.appendChild(document2.createTextNode(createCounterText(counterState, counterType, false))); 5497 } 5498 } else if (token.name === "counters") { 5499 var _b = token.values.filter(nonFunctionArgSeparator), counter = _b[0], delim = _b[1], counterStyle = _b[2]; 5500 if (counter && isIdentToken(counter)) { 5501 var counterStates = _this.counters.getCounterValues(counter.value); 5502 var counterType_1 = counterStyle && isIdentToken(counterStyle) ? listStyleType.parse(_this.context, counterStyle.value) : 3; 5503 var separator = delim && delim.type === 0 ? delim.value : ""; 5504 var text = counterStates.map(function(value2) { 5505 return createCounterText(value2, counterType_1, false); 5506 }).join(separator); 5507 anonymousReplacedElement.appendChild(document2.createTextNode(text)); 5508 } 5509 } else ; 5510 } else if (token.type === 20) { 5511 switch (token.value) { 5512 case "open-quote": 5513 anonymousReplacedElement.appendChild(document2.createTextNode(getQuote(declaration.quotes, _this.quoteDepth++, true))); 5514 break; 5515 case "close-quote": 5516 anonymousReplacedElement.appendChild(document2.createTextNode(getQuote(declaration.quotes, --_this.quoteDepth, false))); 5517 break; 5518 default: 5519 anonymousReplacedElement.appendChild(document2.createTextNode(token.value)); 5520 } 5521 } 5522 }); 5523 anonymousReplacedElement.className = PSEUDO_HIDE_ELEMENT_CLASS_BEFORE + " " + PSEUDO_HIDE_ELEMENT_CLASS_AFTER; 5524 var newClassName = pseudoElt === PseudoElementType.BEFORE ? " " + PSEUDO_HIDE_ELEMENT_CLASS_BEFORE : " " + PSEUDO_HIDE_ELEMENT_CLASS_AFTER; 5525 if (isSVGElementNode(clone)) { 5526 clone.className.baseValue += newClassName; 5527 } else { 5528 clone.className += newClassName; 5529 } 5530 return anonymousReplacedElement; 5531 }; 5532 DocumentCloner2.destroy = function(container) { 5533 if (container.parentNode) { 5534 container.parentNode.removeChild(container); 5535 return true; 5536 } 5537 return false; 5538 }; 5539 return DocumentCloner2; 5540 }
vendor: 11,592 bytes, lines 5540-5877
5540() 5541); 5542var PseudoElementType; 5543(function(PseudoElementType2) { 5544 PseudoElementType2[PseudoElementType2["BEFORE"] = 0] = "BEFORE"; 5545 PseudoElementType2[PseudoElementType2["AFTER"] = 1] = "AFTER"; 5546})(PseudoElementType || (PseudoElementType = {})); 5547var createIFrameContainer = function(ownerDocument, bounds) { 5548 var cloneIframeContainer = ownerDocument.createElement("iframe"); 5549 cloneIframeContainer.className = "html2canvas-container"; 5550 cloneIframeContainer.style.visibility = "hidden"; 5551 cloneIframeContainer.style.position = "fixed"; 5552 cloneIframeContainer.style.left = "-10000px"; 5553 cloneIframeContainer.style.top = "0px"; 5554 cloneIframeContainer.style.border = "0"; 5555 cloneIframeContainer.width = bounds.width.toString(); 5556 cloneIframeContainer.height = bounds.height.toString(); 5557 cloneIframeContainer.scrolling = "no"; 5558 cloneIframeContainer.setAttribute(IGNORE_ATTRIBUTE, "true"); 5559 ownerDocument.body.appendChild(cloneIframeContainer); 5560 return cloneIframeContainer; 5561}; 5562var imageReady = function(img) { 5563 return new Promise(function(resolve) { 5564 if (img.complete) { 5565 resolve(); 5566 return; 5567 } 5568 if (!img.src) { 5569 resolve(); 5570 return; 5571 } 5572 img.onload = resolve; 5573 img.onerror = resolve; 5574 }); 5575}; 5576var imagesReady = function(document2) { 5577 return Promise.all([].slice.call(document2.images, 0).map(imageReady)); 5578}; 5579var iframeLoader = function(iframe) { 5580 return new Promise(function(resolve, reject) { 5581 var cloneWindow = iframe.contentWindow; 5582 if (!cloneWindow) { 5583 return reject("No window assigned for iframe"); 5584 } 5585 var documentClone = cloneWindow.document; 5586 cloneWindow.onload = iframe.onload = function() { 5587 cloneWindow.onload = iframe.onload = null; 5588 var interval = setInterval(function() { 5589 if (documentClone.body.childNodes.length > 0 && documentClone.readyState === "complete") { 5590 clearInterval(interval); 5591 resolve(iframe); 5592 } 5593 }, 50); 5594 }; 5595 }); 5596}; 5597var ignoredStyleProperties = [ 5598 "all", 5599 "d", 5600 "content" 5601 // Safari shows pseudoelements if content is set 5602]; 5603var copyCSSStyles = function(style, target) { 5604 for (var i = style.length - 1; i >= 0; i--) { 5605 var property = style.item(i); 5606 if (ignoredStyleProperties.indexOf(property) === -1) { 5607 target.style.setProperty(property, style.getPropertyValue(property)); 5608 } 5609 } 5610 return target; 5611}; 5612var serializeDoctype = function(doctype) { 5613 var str = ""; 5614 if (doctype) { 5615 str += "<!DOCTYPE "; 5616 if (doctype.name) { 5617 str += doctype.name; 5618 } 5619 if (doctype.internalSubset) { 5620 str += doctype.internalSubset; 5621 } 5622 if (doctype.publicId) { 5623 str += '"' + doctype.publicId + '"'; 5624 } 5625 if (doctype.systemId) { 5626 str += '"' + doctype.systemId + '"'; 5627 } 5628 str += ">"; 5629 } 5630 return str; 5631}; 5632var restoreOwnerScroll = function(ownerDocument, x, y) { 5633 if (ownerDocument && ownerDocument.defaultView && (x !== ownerDocument.defaultView.pageXOffset || y !== ownerDocument.defaultView.pageYOffset)) { 5634 ownerDocument.defaultView.scrollTo(x, y); 5635 } 5636}; 5637var restoreNodeScroll = function(_a) { 5638 var element = _a[0], x = _a[1], y = _a[2]; 5639 element.scrollLeft = x; 5640 element.scrollTop = y; 5641}; 5642var PSEUDO_BEFORE = ":before"; 5643var PSEUDO_AFTER = ":after"; 5644var PSEUDO_HIDE_ELEMENT_CLASS_BEFORE = "___html2canvas___pseudoelement_before"; 5645var PSEUDO_HIDE_ELEMENT_CLASS_AFTER = "___html2canvas___pseudoelement_after"; 5646var PSEUDO_HIDE_ELEMENT_STYLE = '{\n content: "" !important;\n display: none !important;\n}'; 5647var createPseudoHideStyles = function(body) { 5648 createStyles(body, "." + PSEUDO_HIDE_ELEMENT_CLASS_BEFORE + PSEUDO_BEFORE + PSEUDO_HIDE_ELEMENT_STYLE + "\n ." + PSEUDO_HIDE_ELEMENT_CLASS_AFTER + PSEUDO_AFTER + PSEUDO_HIDE_ELEMENT_STYLE); 5649}; 5650var createStyles = function(body, styles) { 5651 var document2 = body.ownerDocument; 5652 if (document2) { 5653 var style = document2.createElement("style"); 5654 style.textContent = styles; 5655 body.appendChild(style); 5656 } 5657}; 5658var CacheStorage = ( 5659 /** @class */ 5660 function() { 5661 function CacheStorage2() { 5662 } 5663 CacheStorage2.getOrigin = function(url) { 5664 var link = CacheStorage2._link; 5665 if (!link) { 5666 return "about:blank"; 5667 } 5668 link.href = url; 5669 link.href = link.href; 5670 return link.protocol + link.hostname + link.port; 5671 }; 5672 CacheStorage2.isSameOrigin = function(src) { 5673 return CacheStorage2.getOrigin(src) === CacheStorage2._origin; 5674 }; 5675 CacheStorage2.setContext = function(window2) { 5676 CacheStorage2._link = window2.document.createElement("a"); 5677 CacheStorage2._origin = CacheStorage2.getOrigin(window2.location.href); 5678 }; 5679 CacheStorage2._origin = "about:blank"; 5680 return CacheStorage2; 5681 }() 5682); 5683var Cache = ( 5684 /** @class */ 5685 function() { 5686 function Cache2(context, _options) { 5687 this.context = context; 5688 this._options = _options; 5689 this._cache = {}; 5690 } 5691 Cache2.prototype.addImage = function(src) { 5692 var result = Promise.resolve(); 5693 if (this.has(src)) { 5694 return result; 5695 } 5696 if (isBlobImage(src) || isRenderable(src)) { 5697 (this._cache[src] = this.loadImage(src)).catch(function() { 5698 }); 5699 return result; 5700 } 5701 return result; 5702 }; 5703 Cache2.prototype.match = function(src) { 5704 return this._cache[src]; 5705 }; 5706 Cache2.prototype.loadImage = function(key) { 5707 return __awaiter(this, void 0, void 0, function() { 5708 var isSameOrigin, useCORS, useProxy, src; 5709 var _this = this; 5710 return __generator(this, function(_a) { 5711 switch (_a.label) { 5712 case 0: 5713 isSameOrigin = CacheStorage.isSameOrigin(key); 5714 useCORS = !isInlineImage(key) && this._options.useCORS === true && FEATURES.SUPPORT_CORS_IMAGES && !isSameOrigin; 5715 useProxy = !isInlineImage(key) && !isSameOrigin && !isBlobImage(key) && typeof this._options.proxy === "string" && FEATURES.SUPPORT_CORS_XHR && !useCORS; 5716 if (!isSameOrigin && this._options.allowTaint === false && !isInlineImage(key) && !isBlobImage(key) && !useProxy && !useCORS) { 5717 return [ 5718 2 5719 /*return*/ 5720 ]; 5721 } 5722 src = key; 5723 if (!useProxy) return [3, 2]; 5724 return [4, this.proxy(src)]; 5725 case 1: 5726 src = _a.sent(); 5727 _a.label = 2; 5728 case 2: 5729 this.context.logger.debug("Added image " + key.substring(0, 256)); 5730 return [4, new Promise(function(resolve, reject) { 5731 var img = new Image(); 5732 img.onload = function() { 5733 return resolve(img); 5734 }; 5735 img.onerror = reject; 5736 if (isInlineBase64Image(src) || useCORS) { 5737 img.crossOrigin = "anonymous"; 5738 } 5739 img.src = src; 5740 if (img.complete === true) { 5741 setTimeout(function() { 5742 return resolve(img); 5743 }, 500); 5744 } 5745 if (_this._options.imageTimeout > 0) { 5746 setTimeout(function() { 5747 return reject("Timed out (" + _this._options.imageTimeout + "ms) loading image"); 5748 }, _this._options.imageTimeout); 5749 } 5750 })]; 5751 case 3: 5752 return [2, _a.sent()]; 5753 } 5754 }); 5755 }); 5756 }; 5757 Cache2.prototype.has = function(key) { 5758 return typeof this._cache[key] !== "undefined"; 5759 }; 5760 Cache2.prototype.keys = function() { 5761 return Promise.resolve(Object.keys(this._cache)); 5762 }; 5763 Cache2.prototype.proxy = function(src) { 5764 var _this = this; 5765 var proxy = this._options.proxy; 5766 if (!proxy) { 5767 throw new Error("No proxy defined"); 5768 } 5769 var key = src.substring(0, 256); 5770 return new Promise(function(resolve, reject) { 5771 var responseType = FEATURES.SUPPORT_RESPONSE_TYPE ? "blob" : "text"; 5772 var xhr = new XMLHttpRequest(); 5773 xhr.onload = function() { 5774 if (xhr.status === 200) { 5775 if (responseType === "text") { 5776 resolve(xhr.response); 5777 } else { 5778 var reader_1 = new FileReader(); 5779 reader_1.addEventListener("load", function() { 5780 return resolve(reader_1.result); 5781 }, false); 5782 reader_1.addEventListener("error", function(e2) { 5783 return reject(e2); 5784 }, false); 5785 reader_1.readAsDataURL(xhr.response); 5786 } 5787 } else { 5788 reject("Failed to proxy resource " + key + " with status code " + xhr.status); 5789 } 5790 }; 5791 xhr.onerror = reject; 5792 var queryString = proxy.indexOf("?") > -1 ? "&" : "?"; 5793 xhr.open("GET", "" + proxy + queryString + "url=" + encodeURIComponent(src) + "&responseType=" + responseType); 5794 if (responseType !== "text" && xhr instanceof XMLHttpRequest) { 5795 xhr.responseType = responseType; 5796 } 5797 if (_this._options.imageTimeout) { 5798 var timeout_1 = _this._options.imageTimeout; 5799 xhr.timeout = timeout_1; 5800 xhr.ontimeout = function() { 5801 return reject("Timed out (" + timeout_1 + "ms) proxying " + key); 5802 }; 5803 } 5804 xhr.send(); 5805 }); 5806 }; 5807 return Cache2; 5808 }() 5809); 5810var INLINE_SVG = /^data:image\/svg\+xml/i; 5811var INLINE_BASE64 = /^data:image\/.*;base64,/i; 5812var INLINE_IMG = /^data:image\/.*/i; 5813var isRenderable = function(src) { 5814 return FEATURES.SUPPORT_SVG_DRAWING || !isSVG(src); 5815}; 5816var isInlineImage = function(src) { 5817 return INLINE_IMG.test(src); 5818}; 5819var isInlineBase64Image = function(src) { 5820 return INLINE_BASE64.test(src); 5821}; 5822var isBlobImage = function(src) { 5823 return src.substr(0, 4) === "blob"; 5824}; 5825var isSVG = function(src) { 5826 return src.substr(-3).toLowerCase() === "svg" || INLINE_SVG.test(src); 5827}; 5828var Vector = ( 5829 /** @class */ 5830 function() { 5831 function Vector2(x, y) { 5832 this.type = 0; 5833 this.x = x; 5834 this.y = y; 5835 } 5836 Vector2.prototype.add = function(deltaX, deltaY) { 5837 return new Vector2(this.x + deltaX, this.y + deltaY); 5838 }; 5839 return Vector2; 5840 }() 5841); 5842var lerp = function(a2, b, t) { 5843 return new Vector(a2.x + (b.x - a2.x) * t, a2.y + (b.y - a2.y) * t); 5844}; 5845var BezierCurve = ( 5846 /** @class */ 5847 function() { 5848 function BezierCurve2(start, startControl, endControl, end) { 5849 this.type = 1; 5850 this.start = start; 5851 this.startControl = startControl; 5852 this.endControl = endControl; 5853 this.end = end; 5854 } 5855 BezierCurve2.prototype.subdivide = function(t, firstHalf) { 5856 var ab = lerp(this.start, this.startControl, t); 5857 var bc = lerp(this.startControl, this.endControl, t); 5858 var cd = lerp(this.endControl, this.end, t); 5859 var abbc = lerp(ab, bc, t); 5860 var bccd = lerp(bc, cd, t); 5861 var dest = lerp(abbc, bccd, t); 5862 return firstHalf ? new BezierCurve2(this.start, ab, abbc, dest) : new BezierCurve2(dest, bccd, cd, this.end); 5863 }; 5864 BezierCurve2.prototype.add = function(deltaX, deltaY) { 5865 return new BezierCurve2(this.start.add(deltaX, deltaY), this.startControl.add(deltaX, deltaY), this.endControl.add(deltaX, deltaY), this.end.add(deltaX, deltaY)); 5866 }; 5867 BezierCurve2.prototype.reverse = function() { 5868 return new BezierCurve2(this.end, this.endControl, this.startControl, this.start); 5869 }; 5870 return BezierCurve2; 5871 }() 5872); 5873var isBezierCurve = function(path) { 5874 return path.type === 1; 5875}; 5876var BoundCurves = ( 5877 /** @class */
vendor: 11,464 bytes, lines 5878-5987
5878 /* @__PURE__ */ function() { 5879 function BoundCurves2(element) { 5880 var styles = element.styles; 5881 var bounds = element.bounds; 5882 var _a = getAbsoluteValueForTuple(styles.borderTopLeftRadius, bounds.width, bounds.height), tlh = _a[0], tlv = _a[1]; 5883 var _b = getAbsoluteValueForTuple(styles.borderTopRightRadius, bounds.width, bounds.height), trh = _b[0], trv = _b[1]; 5884 var _c = getAbsoluteValueForTuple(styles.borderBottomRightRadius, bounds.width, bounds.height), brh = _c[0], brv = _c[1]; 5885 var _d = getAbsoluteValueForTuple(styles.borderBottomLeftRadius, bounds.width, bounds.height), blh = _d[0], blv = _d[1]; 5886 var factors = []; 5887 factors.push((tlh + trh) / bounds.width); 5888 factors.push((blh + brh) / bounds.width); 5889 factors.push((tlv + blv) / bounds.height); 5890 factors.push((trv + brv) / bounds.height); 5891 var maxFactor = Math.max.apply(Math, factors); 5892 if (maxFactor > 1) { 5893 tlh /= maxFactor; 5894 tlv /= maxFactor; 5895 trh /= maxFactor; 5896 trv /= maxFactor; 5897 brh /= maxFactor; 5898 brv /= maxFactor; 5899 blh /= maxFactor; 5900 blv /= maxFactor; 5901 } 5902 var topWidth = bounds.width - trh; 5903 var rightHeight = bounds.height - brv; 5904 var bottomWidth = bounds.width - brh; 5905 var leftHeight = bounds.height - blv; 5906 var borderTopWidth2 = styles.borderTopWidth; 5907 var borderRightWidth2 = styles.borderRightWidth; 5908 var borderBottomWidth2 = styles.borderBottomWidth; 5909 var borderLeftWidth2 = styles.borderLeftWidth; 5910 var paddingTop2 = getAbsoluteValue(styles.paddingTop, element.bounds.width); 5911 var paddingRight2 = getAbsoluteValue(styles.paddingRight, element.bounds.width); 5912 var paddingBottom2 = getAbsoluteValue(styles.paddingBottom, element.bounds.width); 5913 var paddingLeft2 = getAbsoluteValue(styles.paddingLeft, element.bounds.width); 5914 this.topLeftBorderDoubleOuterBox = tlh > 0 || tlv > 0 ? getCurvePoints(bounds.left + borderLeftWidth2 / 3, bounds.top + borderTopWidth2 / 3, tlh - borderLeftWidth2 / 3, tlv - borderTopWidth2 / 3, CORNER.TOP_LEFT) : new Vector(bounds.left + borderLeftWidth2 / 3, bounds.top + borderTopWidth2 / 3); 5915 this.topRightBorderDoubleOuterBox = tlh > 0 || tlv > 0 ? getCurvePoints(bounds.left + topWidth, bounds.top + borderTopWidth2 / 3, trh - borderRightWidth2 / 3, trv - borderTopWidth2 / 3, CORNER.TOP_RIGHT) : new Vector(bounds.left + bounds.width - borderRightWidth2 / 3, bounds.top + borderTopWidth2 / 3); 5916 this.bottomRightBorderDoubleOuterBox = brh > 0 || brv > 0 ? getCurvePoints(bounds.left + bottomWidth, bounds.top + rightHeight, brh - borderRightWidth2 / 3, brv - borderBottomWidth2 / 3, CORNER.BOTTOM_RIGHT) : new Vector(bounds.left + bounds.width - borderRightWidth2 / 3, bounds.top + bounds.height - borderBottomWidth2 / 3); 5917 this.bottomLeftBorderDoubleOuterBox = blh > 0 || blv > 0 ? getCurvePoints(bounds.left + borderLeftWidth2 / 3, bounds.top + leftHeight, blh - borderLeftWidth2 / 3, blv - borderBottomWidth2 / 3, CORNER.BOTTOM_LEFT) : new Vector(bounds.left + borderLeftWidth2 / 3, bounds.top + bounds.height - borderBottomWidth2 / 3); 5918 this.topLeftBorderDoubleInnerBox = tlh > 0 || tlv > 0 ? getCurvePoints(bounds.left + borderLeftWidth2 * 2 / 3, bounds.top + borderTopWidth2 * 2 / 3, tlh - borderLeftWidth2 * 2 / 3, tlv - borderTopWidth2 * 2 / 3, CORNER.TOP_LEFT) : new Vector(bounds.left + borderLeftWidth2 * 2 / 3, bounds.top + borderTopWidth2 * 2 / 3); 5919 this.topRightBorderDoubleInnerBox = tlh > 0 || tlv > 0 ? getCurvePoints(bounds.left + topWidth, bounds.top + borderTopWidth2 * 2 / 3, trh - borderRightWidth2 * 2 / 3, trv - borderTopWidth2 * 2 / 3, CORNER.TOP_RIGHT) : new Vector(bounds.left + bounds.width - borderRightWidth2 * 2 / 3, bounds.top + borderTopWidth2 * 2 / 3); 5920 this.bottomRightBorderDoubleInnerBox = brh > 0 || brv > 0 ? getCurvePoints(bounds.left + bottomWidth, bounds.top + rightHeight, brh - borderRightWidth2 * 2 / 3, brv - borderBottomWidth2 * 2 / 3, CORNER.BOTTOM_RIGHT) : new Vector(bounds.left + bounds.width - borderRightWidth2 * 2 / 3, bounds.top + bounds.height - borderBottomWidth2 * 2 / 3); 5921 this.bottomLeftBorderDoubleInnerBox = blh > 0 || blv > 0 ? getCurvePoints(bounds.left + borderLeftWidth2 * 2 / 3, bounds.top + leftHeight, blh - borderLeftWidth2 * 2 / 3, blv - borderBottomWidth2 * 2 / 3, CORNER.BOTTOM_LEFT) : new Vector(bounds.left + borderLeftWidth2 * 2 / 3, bounds.top + bounds.height - borderBottomWidth2 * 2 / 3); 5922 this.topLeftBorderStroke = tlh > 0 || tlv > 0 ? getCurvePoints(bounds.left + borderLeftWidth2 / 2, bounds.top + borderTopWidth2 / 2, tlh - borderLeftWidth2 / 2, tlv - borderTopWidth2 / 2, CORNER.TOP_LEFT) : new Vector(bounds.left + borderLeftWidth2 / 2, bounds.top + borderTopWidth2 / 2); 5923 this.topRightBorderStroke = tlh > 0 || tlv > 0 ? getCurvePoints(bounds.left + topWidth, bounds.top + borderTopWidth2 / 2, trh - borderRightWidth2 / 2, trv - borderTopWidth2 / 2, CORNER.TOP_RIGHT) : new Vector(bounds.left + bounds.width - borderRightWidth2 / 2, bounds.top + borderTopWidth2 / 2); 5924 this.bottomRightBorderStroke = brh > 0 || brv > 0 ? getCurvePoints(bounds.left + bottomWidth, bounds.top + rightHeight, brh - borderRightWidth2 / 2, brv - borderBottomWidth2 / 2, CORNER.BOTTOM_RIGHT) : new Vector(bounds.left + bounds.width - borderRightWidth2 / 2, bounds.top + bounds.height - borderBottomWidth2 / 2); 5925 this.bottomLeftBorderStroke = blh > 0 || blv > 0 ? getCurvePoints(bounds.left + borderLeftWidth2 / 2, bounds.top + leftHeight, blh - borderLeftWidth2 / 2, blv - borderBottomWidth2 / 2, CORNER.BOTTOM_LEFT) : new Vector(bounds.left + borderLeftWidth2 / 2, bounds.top + bounds.height - borderBottomWidth2 / 2); 5926 this.topLeftBorderBox = tlh > 0 || tlv > 0 ? getCurvePoints(bounds.left, bounds.top, tlh, tlv, CORNER.TOP_LEFT) : new Vector(bounds.left, bounds.top); 5927 this.topRightBorderBox = trh > 0 || trv > 0 ? getCurvePoints(bounds.left + topWidth, bounds.top, trh, trv, CORNER.TOP_RIGHT) : new Vector(bounds.left + bounds.width, bounds.top); 5928 this.bottomRightBorderBox = brh > 0 || brv > 0 ? getCurvePoints(bounds.left + bottomWidth, bounds.top + rightHeight, brh, brv, CORNER.BOTTOM_RIGHT) : new Vector(bounds.left + bounds.width, bounds.top + bounds.height); 5929 this.bottomLeftBorderBox = blh > 0 || blv > 0 ? getCurvePoints(bounds.left, bounds.top + leftHeight, blh, blv, CORNER.BOTTOM_LEFT) : new Vector(bounds.left, bounds.top + bounds.height); 5930 this.topLeftPaddingBox = tlh > 0 || tlv > 0 ? getCurvePoints(bounds.left + borderLeftWidth2, bounds.top + borderTopWidth2, Math.max(0, tlh - borderLeftWidth2), Math.max(0, tlv - borderTopWidth2), CORNER.TOP_LEFT) : new Vector(bounds.left + borderLeftWidth2, bounds.top + borderTopWidth2); 5931 this.topRightPaddingBox = trh > 0 || trv > 0 ? getCurvePoints(bounds.left + Math.min(topWidth, bounds.width - borderRightWidth2), bounds.top + borderTopWidth2, topWidth > bounds.width + borderRightWidth2 ? 0 : Math.max(0, trh - borderRightWidth2), Math.max(0, trv - borderTopWidth2), CORNER.TOP_RIGHT) : new Vector(bounds.left + bounds.width - borderRightWidth2, bounds.top + borderTopWidth2); 5932 this.bottomRightPaddingBox = brh > 0 || brv > 0 ? getCurvePoints(bounds.left + Math.min(bottomWidth, bounds.width - borderLeftWidth2), bounds.top + Math.min(rightHeight, bounds.height - borderBottomWidth2), Math.max(0, brh - borderRightWidth2), Math.max(0, brv - borderBottomWidth2), CORNER.BOTTOM_RIGHT) : new Vector(bounds.left + bounds.width - borderRightWidth2, bounds.top + bounds.height - borderBottomWidth2); 5933 this.bottomLeftPaddingBox = blh > 0 || blv > 0 ? getCurvePoints(bounds.left + borderLeftWidth2, bounds.top + Math.min(leftHeight, bounds.height - borderBottomWidth2), Math.max(0, blh - borderLeftWidth2), Math.max(0, blv - borderBottomWidth2), CORNER.BOTTOM_LEFT) : new Vector(bounds.left + borderLeftWidth2, bounds.top + bounds.height - borderBottomWidth2); 5934 this.topLeftContentBox = tlh > 0 || tlv > 0 ? getCurvePoints(bounds.left + borderLeftWidth2 + paddingLeft2, bounds.top + borderTopWidth2 + paddingTop2, Math.max(0, tlh - (borderLeftWidth2 + paddingLeft2)), Math.max(0, tlv - (borderTopWidth2 + paddingTop2)), CORNER.TOP_LEFT) : new Vector(bounds.left + borderLeftWidth2 + paddingLeft2, bounds.top + borderTopWidth2 + paddingTop2); 5935 this.topRightContentBox = trh > 0 || trv > 0 ? getCurvePoints(bounds.left + Math.min(topWidth, bounds.width + borderLeftWidth2 + paddingLeft2), bounds.top + borderTopWidth2 + paddingTop2, topWidth > bounds.width + borderLeftWidth2 + paddingLeft2 ? 0 : trh - borderLeftWidth2 + paddingLeft2, trv - (borderTopWidth2 + paddingTop2), CORNER.TOP_RIGHT) : new Vector(bounds.left + bounds.width - (borderRightWidth2 + paddingRight2), bounds.top + borderTopWidth2 + paddingTop2); 5936 this.bottomRightContentBox = brh > 0 || brv > 0 ? getCurvePoints(bounds.left + Math.min(bottomWidth, bounds.width - (borderLeftWidth2 + paddingLeft2)), bounds.top + Math.min(rightHeight, bounds.height + borderTopWidth2 + paddingTop2), Math.max(0, brh - (borderRightWidth2 + paddingRight2)), brv - (borderBottomWidth2 + paddingBottom2), CORNER.BOTTOM_RIGHT) : new Vector(bounds.left + bounds.width - (borderRightWidth2 + paddingRight2), bounds.top + bounds.height - (borderBottomWidth2 + paddingBottom2)); 5937 this.bottomLeftContentBox = blh > 0 || blv > 0 ? getCurvePoints(bounds.left + borderLeftWidth2 + paddingLeft2, bounds.top + leftHeight, Math.max(0, blh - (borderLeftWidth2 + paddingLeft2)), blv - (borderBottomWidth2 + paddingBottom2), CORNER.BOTTOM_LEFT) : new Vector(bounds.left + borderLeftWidth2 + paddingLeft2, bounds.top + bounds.height - (borderBottomWidth2 + paddingBottom2)); 5938 } 5939 return BoundCurves2; 5940 }() 5941); 5942var CORNER; 5943(function(CORNER2) { 5944 CORNER2[CORNER2["TOP_LEFT"] = 0] = "TOP_LEFT"; 5945 CORNER2[CORNER2["TOP_RIGHT"] = 1] = "TOP_RIGHT"; 5946 CORNER2[CORNER2["BOTTOM_RIGHT"] = 2] = "BOTTOM_RIGHT"; 5947 CORNER2[CORNER2["BOTTOM_LEFT"] = 3] = "BOTTOM_LEFT"; 5948})(CORNER || (CORNER = {})); 5949var getCurvePoints = function(x, y, r1, r2, position2) { 5950 var kappa = 4 * ((Math.sqrt(2) - 1) / 3); 5951 var ox = r1 * kappa; 5952 var oy = r2 * kappa; 5953 var xm = x + r1; 5954 var ym = y + r2; 5955 switch (position2) { 5956 case CORNER.TOP_LEFT: 5957 return new BezierCurve(new Vector(x, ym), new Vector(x, ym - oy), new Vector(xm - ox, y), new Vector(xm, y)); 5958 case CORNER.TOP_RIGHT: 5959 return new BezierCurve(new Vector(x, y), new Vector(x + ox, y), new Vector(xm, ym - oy), new Vector(xm, ym)); 5960 case CORNER.BOTTOM_RIGHT: 5961 return new BezierCurve(new Vector(xm, y), new Vector(xm, y + oy), new Vector(x + ox, ym), new Vector(x, ym)); 5962 case CORNER.BOTTOM_LEFT: 5963 default: 5964 return new BezierCurve(new Vector(xm, ym), new Vector(xm - ox, ym), new Vector(x, y + oy), new Vector(x, y)); 5965 } 5966}; 5967var calculateBorderBoxPath = function(curves) { 5968 return [curves.topLeftBorderBox, curves.topRightBorderBox, curves.bottomRightBorderBox, curves.bottomLeftBorderBox]; 5969}; 5970var calculateContentBoxPath = function(curves) { 5971 return [ 5972 curves.topLeftContentBox, 5973 curves.topRightContentBox, 5974 curves.bottomRightContentBox, 5975 curves.bottomLeftContentBox 5976 ]; 5977}; 5978var calculatePaddingBoxPath = function(curves) { 5979 return [ 5980 curves.topLeftPaddingBox, 5981 curves.topRightPaddingBox, 5982 curves.bottomRightPaddingBox, 5983 curves.bottomLeftPaddingBox 5984 ]; 5985}; 5986var TransformEffect = ( 5987 /** @class */
vendor: 4,740 bytes, lines 5988-6149
5988 /* @__PURE__ */ function() { 5989 function TransformEffect2(offsetX, offsetY, matrix2) { 5990 this.offsetX = offsetX; 5991 this.offsetY = offsetY; 5992 this.matrix = matrix2; 5993 this.type = 0; 5994 this.target = 2 | 4; 5995 } 5996 return TransformEffect2; 5997 }() 5998); 5999var ClipEffect = ( 6000 /** @class */ 6001 /* @__PURE__ */ function() { 6002 function ClipEffect2(path, target) { 6003 this.path = path; 6004 this.target = target; 6005 this.type = 1; 6006 } 6007 return ClipEffect2; 6008 }() 6009); 6010var OpacityEffect = ( 6011 /** @class */ 6012 /* @__PURE__ */ function() { 6013 function OpacityEffect2(opacity2) { 6014 this.opacity = opacity2; 6015 this.type = 2; 6016 this.target = 2 | 4; 6017 } 6018 return OpacityEffect2; 6019 }() 6020); 6021var isTransformEffect = function(effect) { 6022 return effect.type === 0; 6023}; 6024var isClipEffect = function(effect) { 6025 return effect.type === 1; 6026}; 6027var isOpacityEffect = function(effect) { 6028 return effect.type === 2; 6029}; 6030var equalPath = function(a2, b) { 6031 if (a2.length === b.length) { 6032 return a2.some(function(v, i) { 6033 return v === b[i]; 6034 }); 6035 } 6036 return false; 6037}; 6038var transformPath = function(path, deltaX, deltaY, deltaW, deltaH) { 6039 return path.map(function(point, index) { 6040 switch (index) { 6041 case 0: 6042 return point.add(deltaX, deltaY); 6043 case 1: 6044 return point.add(deltaX + deltaW, deltaY); 6045 case 2: 6046 return point.add(deltaX + deltaW, deltaY + deltaH); 6047 case 3: 6048 return point.add(deltaX, deltaY + deltaH); 6049 } 6050 return point; 6051 }); 6052}; 6053var StackingContext = ( 6054 /** @class */ 6055 /* @__PURE__ */ function() { 6056 function StackingContext2(container) { 6057 this.element = container; 6058 this.inlineLevel = []; 6059 this.nonInlineLevel = []; 6060 this.negativeZIndex = []; 6061 this.zeroOrAutoZIndexOrTransformedOrOpacity = []; 6062 this.positiveZIndex = []; 6063 this.nonPositionedFloats = []; 6064 this.nonPositionedInlineLevel = []; 6065 } 6066 return StackingContext2; 6067 }() 6068); 6069var ElementPaint = ( 6070 /** @class */ 6071 function() { 6072 function ElementPaint2(container, parent) { 6073 this.container = container; 6074 this.parent = parent; 6075 this.effects = []; 6076 this.curves = new BoundCurves(this.container); 6077 if (this.container.styles.opacity < 1) { 6078 this.effects.push(new OpacityEffect(this.container.styles.opacity)); 6079 } 6080 if (this.container.styles.transform !== null) { 6081 var offsetX = this.container.bounds.left + this.container.styles.transformOrigin[0].number; 6082 var offsetY = this.container.bounds.top + this.container.styles.transformOrigin[1].number; 6083 var matrix2 = this.container.styles.transform; 6084 this.effects.push(new TransformEffect(offsetX, offsetY, matrix2)); 6085 } 6086 if (this.container.styles.overflowX !== 0) { 6087 var borderBox = calculateBorderBoxPath(this.curves); 6088 var paddingBox2 = calculatePaddingBoxPath(this.curves); 6089 if (equalPath(borderBox, paddingBox2)) { 6090 this.effects.push(new ClipEffect( 6091 borderBox, 6092 2 | 4 6093 /* CONTENT */ 6094 )); 6095 } else { 6096 this.effects.push(new ClipEffect( 6097 borderBox, 6098 2 6099 /* BACKGROUND_BORDERS */ 6100 )); 6101 this.effects.push(new ClipEffect( 6102 paddingBox2, 6103 4 6104 /* CONTENT */ 6105 )); 6106 } 6107 } 6108 } 6109 ElementPaint2.prototype.getEffects = function(target) { 6110 var inFlow = [ 6111 2, 6112 3 6113 /* FIXED */ 6114 ].indexOf(this.container.styles.position) === -1; 6115 var parent = this.parent; 6116 var effects = this.effects.slice(0); 6117 while (parent) { 6118 var croplessEffects = parent.effects.filter(function(effect) { 6119 return !isClipEffect(effect); 6120 }); 6121 if (inFlow || parent.container.styles.position !== 0 || !parent.parent) { 6122 effects.unshift.apply(effects, croplessEffects); 6123 inFlow = [ 6124 2, 6125 3 6126 /* FIXED */ 6127 ].indexOf(parent.container.styles.position) === -1; 6128 if (parent.container.styles.overflowX !== 0) { 6129 var borderBox = calculateBorderBoxPath(parent.curves); 6130 var paddingBox2 = calculatePaddingBoxPath(parent.curves); 6131 if (!equalPath(borderBox, paddingBox2)) { 6132 effects.unshift(new ClipEffect( 6133 paddingBox2, 6134 2 | 4 6135 /* CONTENT */ 6136 )); 6137 } 6138 } 6139 } else { 6140 effects.unshift.apply(effects, croplessEffects); 6141 } 6142 parent = parent.parent; 6143 } 6144 return effects.filter(function(effect) { 6145 return contains(effect.target, target); 6146 }); 6147 }; 6148 return ElementPaint2; 6149 }
vendor: 16,241 bytes, lines 6149-6506
6149() 6150); 6151var parseStackTree = function(parent, stackingContext, realStackingContext, listItems) { 6152 parent.container.elements.forEach(function(child) { 6153 var treatAsRealStackingContext = contains( 6154 child.flags, 6155 4 6156 /* CREATES_REAL_STACKING_CONTEXT */ 6157 ); 6158 var createsStackingContext2 = contains( 6159 child.flags, 6160 2 6161 /* CREATES_STACKING_CONTEXT */ 6162 ); 6163 var paintContainer = new ElementPaint(child, parent); 6164 if (contains( 6165 child.styles.display, 6166 2048 6167 /* LIST_ITEM */ 6168 )) { 6169 listItems.push(paintContainer); 6170 } 6171 var listOwnerItems = contains( 6172 child.flags, 6173 8 6174 /* IS_LIST_OWNER */ 6175 ) ? [] : listItems; 6176 if (treatAsRealStackingContext || createsStackingContext2) { 6177 var parentStack = treatAsRealStackingContext || child.styles.isPositioned() ? realStackingContext : stackingContext; 6178 var stack = new StackingContext(paintContainer); 6179 if (child.styles.isPositioned() || child.styles.opacity < 1 || child.styles.isTransformed()) { 6180 var order_1 = child.styles.zIndex.order; 6181 if (order_1 < 0) { 6182 var index_1 = 0; 6183 parentStack.negativeZIndex.some(function(current, i) { 6184 if (order_1 > current.element.container.styles.zIndex.order) { 6185 index_1 = i; 6186 return false; 6187 } else if (index_1 > 0) { 6188 return true; 6189 } 6190 return false; 6191 }); 6192 parentStack.negativeZIndex.splice(index_1, 0, stack); 6193 } else if (order_1 > 0) { 6194 var index_2 = 0; 6195 parentStack.positiveZIndex.some(function(current, i) { 6196 if (order_1 >= current.element.container.styles.zIndex.order) { 6197 index_2 = i + 1; 6198 return false; 6199 } else if (index_2 > 0) { 6200 return true; 6201 } 6202 return false; 6203 }); 6204 parentStack.positiveZIndex.splice(index_2, 0, stack); 6205 } else { 6206 parentStack.zeroOrAutoZIndexOrTransformedOrOpacity.push(stack); 6207 } 6208 } else { 6209 if (child.styles.isFloating()) { 6210 parentStack.nonPositionedFloats.push(stack); 6211 } else { 6212 parentStack.nonPositionedInlineLevel.push(stack); 6213 } 6214 } 6215 parseStackTree(paintContainer, stack, treatAsRealStackingContext ? stack : realStackingContext, listOwnerItems); 6216 } else { 6217 if (child.styles.isInlineLevel()) { 6218 stackingContext.inlineLevel.push(paintContainer); 6219 } else { 6220 stackingContext.nonInlineLevel.push(paintContainer); 6221 } 6222 parseStackTree(paintContainer, stackingContext, realStackingContext, listOwnerItems); 6223 } 6224 if (contains( 6225 child.flags, 6226 8 6227 /* IS_LIST_OWNER */ 6228 )) { 6229 processListItems(child, listOwnerItems); 6230 } 6231 }); 6232}; 6233var processListItems = function(owner, elements) { 6234 var numbering = owner instanceof OLElementContainer ? owner.start : 1; 6235 var reversed = owner instanceof OLElementContainer ? owner.reversed : false; 6236 for (var i = 0; i < elements.length; i++) { 6237 var item = elements[i]; 6238 if (item.container instanceof LIElementContainer && typeof item.container.value === "number" && item.container.value !== 0) { 6239 numbering = item.container.value; 6240 } 6241 item.listValue = createCounterText(numbering, item.container.styles.listStyleType, true); 6242 numbering += reversed ? -1 : 1; 6243 } 6244}; 6245var parseStackingContexts = function(container) { 6246 var paintContainer = new ElementPaint(container, null); 6247 var root = new StackingContext(paintContainer); 6248 var listItems = []; 6249 parseStackTree(paintContainer, root, root, listItems); 6250 processListItems(paintContainer.container, listItems); 6251 return root; 6252}; 6253var parsePathForBorder = function(curves, borderSide) { 6254 switch (borderSide) { 6255 case 0: 6256 return createPathFromCurves(curves.topLeftBorderBox, curves.topLeftPaddingBox, curves.topRightBorderBox, curves.topRightPaddingBox); 6257 case 1: 6258 return createPathFromCurves(curves.topRightBorderBox, curves.topRightPaddingBox, curves.bottomRightBorderBox, curves.bottomRightPaddingBox); 6259 case 2: 6260 return createPathFromCurves(curves.bottomRightBorderBox, curves.bottomRightPaddingBox, curves.bottomLeftBorderBox, curves.bottomLeftPaddingBox); 6261 case 3: 6262 default: 6263 return createPathFromCurves(curves.bottomLeftBorderBox, curves.bottomLeftPaddingBox, curves.topLeftBorderBox, curves.topLeftPaddingBox); 6264 } 6265}; 6266var parsePathForBorderDoubleOuter = function(curves, borderSide) { 6267 switch (borderSide) { 6268 case 0: 6269 return createPathFromCurves(curves.topLeftBorderBox, curves.topLeftBorderDoubleOuterBox, curves.topRightBorderBox, curves.topRightBorderDoubleOuterBox); 6270 case 1: 6271 return createPathFromCurves(curves.topRightBorderBox, curves.topRightBorderDoubleOuterBox, curves.bottomRightBorderBox, curves.bottomRightBorderDoubleOuterBox); 6272 case 2: 6273 return createPathFromCurves(curves.bottomRightBorderBox, curves.bottomRightBorderDoubleOuterBox, curves.bottomLeftBorderBox, curves.bottomLeftBorderDoubleOuterBox); 6274 case 3: 6275 default: 6276 return createPathFromCurves(curves.bottomLeftBorderBox, curves.bottomLeftBorderDoubleOuterBox, curves.topLeftBorderBox, curves.topLeftBorderDoubleOuterBox); 6277 } 6278}; 6279var parsePathForBorderDoubleInner = function(curves, borderSide) { 6280 switch (borderSide) { 6281 case 0: 6282 return createPathFromCurves(curves.topLeftBorderDoubleInnerBox, curves.topLeftPaddingBox, curves.topRightBorderDoubleInnerBox, curves.topRightPaddingBox); 6283 case 1: 6284 return createPathFromCurves(curves.topRightBorderDoubleInnerBox, curves.topRightPaddingBox, curves.bottomRightBorderDoubleInnerBox, curves.bottomRightPaddingBox); 6285 case 2: 6286 return createPathFromCurves(curves.bottomRightBorderDoubleInnerBox, curves.bottomRightPaddingBox, curves.bottomLeftBorderDoubleInnerBox, curves.bottomLeftPaddingBox); 6287 case 3: 6288 default: 6289 return createPathFromCurves(curves.bottomLeftBorderDoubleInnerBox, curves.bottomLeftPaddingBox, curves.topLeftBorderDoubleInnerBox, curves.topLeftPaddingBox); 6290 } 6291}; 6292var parsePathForBorderStroke = function(curves, borderSide) { 6293 switch (borderSide) { 6294 case 0: 6295 return createStrokePathFromCurves(curves.topLeftBorderStroke, curves.topRightBorderStroke); 6296 case 1: 6297 return createStrokePathFromCurves(curves.topRightBorderStroke, curves.bottomRightBorderStroke); 6298 case 2: 6299 return createStrokePathFromCurves(curves.bottomRightBorderStroke, curves.bottomLeftBorderStroke); 6300 case 3: 6301 default: 6302 return createStrokePathFromCurves(curves.bottomLeftBorderStroke, curves.topLeftBorderStroke); 6303 } 6304}; 6305var createStrokePathFromCurves = function(outer1, outer2) { 6306 var path = []; 6307 if (isBezierCurve(outer1)) { 6308 path.push(outer1.subdivide(0.5, false)); 6309 } else { 6310 path.push(outer1); 6311 } 6312 if (isBezierCurve(outer2)) { 6313 path.push(outer2.subdivide(0.5, true)); 6314 } else { 6315 path.push(outer2); 6316 } 6317 return path; 6318}; 6319var createPathFromCurves = function(outer1, inner1, outer2, inner2) { 6320 var path = []; 6321 if (isBezierCurve(outer1)) { 6322 path.push(outer1.subdivide(0.5, false)); 6323 } else { 6324 path.push(outer1); 6325 } 6326 if (isBezierCurve(outer2)) { 6327 path.push(outer2.subdivide(0.5, true)); 6328 } else { 6329 path.push(outer2); 6330 } 6331 if (isBezierCurve(inner2)) { 6332 path.push(inner2.subdivide(0.5, true).reverse()); 6333 } else { 6334 path.push(inner2); 6335 } 6336 if (isBezierCurve(inner1)) { 6337 path.push(inner1.subdivide(0.5, false).reverse()); 6338 } else { 6339 path.push(inner1); 6340 } 6341 return path; 6342}; 6343var paddingBox = function(element) { 6344 var bounds = element.bounds; 6345 var styles = element.styles; 6346 return bounds.add(styles.borderLeftWidth, styles.borderTopWidth, -(styles.borderRightWidth + styles.borderLeftWidth), -(styles.borderTopWidth + styles.borderBottomWidth)); 6347}; 6348var contentBox = function(element) { 6349 var styles = element.styles; 6350 var bounds = element.bounds; 6351 var paddingLeft2 = getAbsoluteValue(styles.paddingLeft, bounds.width); 6352 var paddingRight2 = getAbsoluteValue(styles.paddingRight, bounds.width); 6353 var paddingTop2 = getAbsoluteValue(styles.paddingTop, bounds.width); 6354 var paddingBottom2 = getAbsoluteValue(styles.paddingBottom, bounds.width); 6355 return bounds.add(paddingLeft2 + styles.borderLeftWidth, paddingTop2 + styles.borderTopWidth, -(styles.borderRightWidth + styles.borderLeftWidth + paddingLeft2 + paddingRight2), -(styles.borderTopWidth + styles.borderBottomWidth + paddingTop2 + paddingBottom2)); 6356}; 6357var calculateBackgroundPositioningArea = function(backgroundOrigin2, element) { 6358 if (backgroundOrigin2 === 0) { 6359 return element.bounds; 6360 } 6361 if (backgroundOrigin2 === 2) { 6362 return contentBox(element); 6363 } 6364 return paddingBox(element); 6365}; 6366var calculateBackgroundPaintingArea = function(backgroundClip2, element) { 6367 if (backgroundClip2 === 0) { 6368 return element.bounds; 6369 } 6370 if (backgroundClip2 === 2) { 6371 return contentBox(element); 6372 } 6373 return paddingBox(element); 6374}; 6375var calculateBackgroundRendering = function(container, index, intrinsicSize) { 6376 var backgroundPositioningArea = calculateBackgroundPositioningArea(getBackgroundValueForIndex(container.styles.backgroundOrigin, index), container); 6377 var backgroundPaintingArea = calculateBackgroundPaintingArea(getBackgroundValueForIndex(container.styles.backgroundClip, index), container); 6378 var backgroundImageSize = calculateBackgroundSize(getBackgroundValueForIndex(container.styles.backgroundSize, index), intrinsicSize, backgroundPositioningArea); 6379 var sizeWidth = backgroundImageSize[0], sizeHeight = backgroundImageSize[1]; 6380 var position2 = getAbsoluteValueForTuple(getBackgroundValueForIndex(container.styles.backgroundPosition, index), backgroundPositioningArea.width - sizeWidth, backgroundPositioningArea.height - sizeHeight); 6381 var path = calculateBackgroundRepeatPath(getBackgroundValueForIndex(container.styles.backgroundRepeat, index), position2, backgroundImageSize, backgroundPositioningArea, backgroundPaintingArea); 6382 var offsetX = Math.round(backgroundPositioningArea.left + position2[0]); 6383 var offsetY = Math.round(backgroundPositioningArea.top + position2[1]); 6384 return [path, offsetX, offsetY, sizeWidth, sizeHeight]; 6385}; 6386var isAuto = function(token) { 6387 return isIdentToken(token) && token.value === BACKGROUND_SIZE.AUTO; 6388}; 6389var hasIntrinsicValue = function(value) { 6390 return typeof value === "number"; 6391}; 6392var calculateBackgroundSize = function(size, _a, bounds) { 6393 var intrinsicWidth = _a[0], intrinsicHeight = _a[1], intrinsicProportion = _a[2]; 6394 var first = size[0], second = size[1]; 6395 if (!first) { 6396 return [0, 0]; 6397 } 6398 if (isLengthPercentage(first) && second && isLengthPercentage(second)) { 6399 return [getAbsoluteValue(first, bounds.width), getAbsoluteValue(second, bounds.height)]; 6400 } 6401 var hasIntrinsicProportion = hasIntrinsicValue(intrinsicProportion); 6402 if (isIdentToken(first) && (first.value === BACKGROUND_SIZE.CONTAIN || first.value === BACKGROUND_SIZE.COVER)) { 6403 if (hasIntrinsicValue(intrinsicProportion)) { 6404 var targetRatio = bounds.width / bounds.height; 6405 return targetRatio < intrinsicProportion !== (first.value === BACKGROUND_SIZE.COVER) ? [bounds.width, bounds.width / intrinsicProportion] : [bounds.height * intrinsicProportion, bounds.height]; 6406 } 6407 return [bounds.width, bounds.height]; 6408 } 6409 var hasIntrinsicWidth = hasIntrinsicValue(intrinsicWidth); 6410 var hasIntrinsicHeight = hasIntrinsicValue(intrinsicHeight); 6411 var hasIntrinsicDimensions = hasIntrinsicWidth || hasIntrinsicHeight; 6412 if (isAuto(first) && (!second || isAuto(second))) { 6413 if (hasIntrinsicWidth && hasIntrinsicHeight) { 6414 return [intrinsicWidth, intrinsicHeight]; 6415 } 6416 if (!hasIntrinsicProportion && !hasIntrinsicDimensions) { 6417 return [bounds.width, bounds.height]; 6418 } 6419 if (hasIntrinsicDimensions && hasIntrinsicProportion) { 6420 var width_1 = hasIntrinsicWidth ? intrinsicWidth : intrinsicHeight * intrinsicProportion; 6421 var height_1 = hasIntrinsicHeight ? intrinsicHeight : intrinsicWidth / intrinsicProportion; 6422 return [width_1, height_1]; 6423 } 6424 var width_2 = hasIntrinsicWidth ? intrinsicWidth : bounds.width; 6425 var height_2 = hasIntrinsicHeight ? intrinsicHeight : bounds.height; 6426 return [width_2, height_2]; 6427 } 6428 if (hasIntrinsicProportion) { 6429 var width_3 = 0; 6430 var height_3 = 0; 6431 if (isLengthPercentage(first)) { 6432 width_3 = getAbsoluteValue(first, bounds.width); 6433 } else if (isLengthPercentage(second)) { 6434 height_3 = getAbsoluteValue(second, bounds.height); 6435 } 6436 if (isAuto(first)) { 6437 width_3 = height_3 * intrinsicProportion; 6438 } else if (!second || isAuto(second)) { 6439 height_3 = width_3 / intrinsicProportion; 6440 } 6441 return [width_3, height_3]; 6442 } 6443 var width = null; 6444 var height = null; 6445 if (isLengthPercentage(first)) { 6446 width = getAbsoluteValue(first, bounds.width); 6447 } else if (second && isLengthPercentage(second)) { 6448 height = getAbsoluteValue(second, bounds.height); 6449 } 6450 if (width !== null && (!second || isAuto(second))) { 6451 height = hasIntrinsicWidth && hasIntrinsicHeight ? width / intrinsicWidth * intrinsicHeight : bounds.height; 6452 } 6453 if (height !== null && isAuto(first)) { 6454 width = hasIntrinsicWidth && hasIntrinsicHeight ? height / intrinsicHeight * intrinsicWidth : bounds.width; 6455 } 6456 if (width !== null && height !== null) { 6457 return [width, height]; 6458 } 6459 throw new Error("Unable to calculate background-size for element"); 6460}; 6461var getBackgroundValueForIndex = function(values, index) { 6462 var value = values[index]; 6463 if (typeof value === "undefined") { 6464 return values[0]; 6465 } 6466 return value; 6467}; 6468var calculateBackgroundRepeatPath = function(repeat, _a, _b, backgroundPositioningArea, backgroundPaintingArea) { 6469 var x = _a[0], y = _a[1]; 6470 var width = _b[0], height = _b[1]; 6471 switch (repeat) { 6472 case 2: 6473 return [ 6474 new Vector(Math.round(backgroundPositioningArea.left), Math.round(backgroundPositioningArea.top + y)), 6475 new Vector(Math.round(backgroundPositioningArea.left + backgroundPositioningArea.width), Math.round(backgroundPositioningArea.top + y)), 6476 new Vector(Math.round(backgroundPositioningArea.left + backgroundPositioningArea.width), Math.round(height + backgroundPositioningArea.top + y)), 6477 new Vector(Math.round(backgroundPositioningArea.left), Math.round(height + backgroundPositioningArea.top + y)) 6478 ]; 6479 case 3: 6480 return [ 6481 new Vector(Math.round(backgroundPositioningArea.left + x), Math.round(backgroundPositioningArea.top)), 6482 new Vector(Math.round(backgroundPositioningArea.left + x + width), Math.round(backgroundPositioningArea.top)), 6483 new Vector(Math.round(backgroundPositioningArea.left + x + width), Math.round(backgroundPositioningArea.height + backgroundPositioningArea.top)), 6484 new Vector(Math.round(backgroundPositioningArea.left + x), Math.round(backgroundPositioningArea.height + backgroundPositioningArea.top)) 6485 ]; 6486 case 1: 6487 return [ 6488 new Vector(Math.round(backgroundPositioningArea.left + x), Math.round(backgroundPositioningArea.top + y)), 6489 new Vector(Math.round(backgroundPositioningArea.left + x + width), Math.round(backgroundPositioningArea.top + y)), 6490 new Vector(Math.round(backgroundPositioningArea.left + x + width), Math.round(backgroundPositioningArea.top + y + height)), 6491 new Vector(Math.round(backgroundPositioningArea.left + x), Math.round(backgroundPositioningArea.top + y + height)) 6492 ]; 6493 default: 6494 return [ 6495 new Vector(Math.round(backgroundPaintingArea.left), Math.round(backgroundPaintingArea.top)), 6496 new Vector(Math.round(backgroundPaintingArea.left + backgroundPaintingArea.width), Math.round(backgroundPaintingArea.top)), 6497 new Vector(Math.round(backgroundPaintingArea.left + backgroundPaintingArea.width), Math.round(backgroundPaintingArea.height + backgroundPaintingArea.top)), 6498 new Vector(Math.round(backgroundPaintingArea.left), Math.round(backgroundPaintingArea.height + backgroundPaintingArea.top)) 6499 ]; 6500 } 6501}; 6502var SMALL_IMAGE = "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7"; 6503var SAMPLE_TEXT = "Hidden Text"; 6504var FontMetrics = ( 6505 /** @class */ 6506
vendor: 1,889 bytes, lines 6506-6556
6506function() { 6507 function FontMetrics2(document2) { 6508 this._data = {}; 6509 this._document = document2; 6510 } 6511 FontMetrics2.prototype.parseMetrics = function(fontFamily2, fontSize2) { 6512 var container = this._document.createElement("div"); 6513 var img = this._document.createElement("img"); 6514 var span = this._document.createElement("span"); 6515 var body = this._document.body; 6516 container.style.visibility = "hidden"; 6517 container.style.fontFamily = fontFamily2; 6518 container.style.fontSize = fontSize2; 6519 container.style.margin = "0"; 6520 container.style.padding = "0"; 6521 container.style.whiteSpace = "nowrap"; 6522 body.appendChild(container); 6523 img.src = SMALL_IMAGE; 6524 img.width = 1; 6525 img.height = 1; 6526 img.style.margin = "0"; 6527 img.style.padding = "0"; 6528 img.style.verticalAlign = "baseline"; 6529 span.style.fontFamily = fontFamily2; 6530 span.style.fontSize = fontSize2; 6531 span.style.margin = "0"; 6532 span.style.padding = "0"; 6533 span.appendChild(this._document.createTextNode(SAMPLE_TEXT)); 6534 container.appendChild(span); 6535 container.appendChild(img); 6536 var baseline = img.offsetTop - span.offsetTop + 2; 6537 container.removeChild(span); 6538 container.appendChild(this._document.createTextNode(SAMPLE_TEXT)); 6539 container.style.lineHeight = "normal"; 6540 img.style.verticalAlign = "super"; 6541 var middle = img.offsetTop - container.offsetTop + 2; 6542 body.removeChild(container); 6543 return { baseline, middle }; 6544 }; 6545 FontMetrics2.prototype.getMetrics = function(fontFamily2, fontSize2) { 6546 var key = fontFamily2 + " " + fontSize2; 6547 if (typeof this._data[key] === "undefined") { 6548 this._data[key] = this.parseMetrics(fontFamily2, fontSize2); 6549 } 6550 return this._data[key]; 6551 }; 6552 return FontMetrics2; 6553 }() 6554); 6555var Renderer = ( 6556 /** @class */
6557 /* @__PURE__ */ function() { 6558 function Renderer2(context, options) { 6559 this.context = context; 6560 this.options = options; 6561 } 6562 return Renderer2; 6563 }() 6564); 6565var MASK_OFFSET = 1e4; 6566var CanvasRenderer = ( 6567 /** @class */ 6568
vendor: 40,413 bytes, lines 6568-7513
6568function(_super) { 6569 __extends(CanvasRenderer2, _super); 6570 function CanvasRenderer2(context, options) { 6571 var _this = _super.call(this, context, options) || this; 6572 _this._activeEffects = []; 6573 _this.canvas = options.canvas ? options.canvas : document.createElement("canvas"); 6574 _this.ctx = _this.canvas.getContext("2d"); 6575 if (!options.canvas) { 6576 _this.canvas.width = Math.floor(options.width * options.scale); 6577 _this.canvas.height = Math.floor(options.height * options.scale); 6578 _this.canvas.style.width = options.width + "px"; 6579 _this.canvas.style.height = options.height + "px"; 6580 } 6581 _this.fontMetrics = new FontMetrics(document); 6582 _this.ctx.scale(_this.options.scale, _this.options.scale); 6583 _this.ctx.translate(-options.x, -options.y); 6584 _this.ctx.textBaseline = "bottom"; 6585 _this._activeEffects = []; 6586 _this.context.logger.debug("Canvas renderer initialized (" + options.width + "x" + options.height + ") with scale " + options.scale); 6587 return _this; 6588 } 6589 CanvasRenderer2.prototype.applyEffects = function(effects) { 6590 var _this = this; 6591 while (this._activeEffects.length) { 6592 this.popEffect(); 6593 } 6594 effects.forEach(function(effect) { 6595 return _this.applyEffect(effect); 6596 }); 6597 }; 6598 CanvasRenderer2.prototype.applyEffect = function(effect) { 6599 this.ctx.save(); 6600 if (isOpacityEffect(effect)) { 6601 this.ctx.globalAlpha = effect.opacity; 6602 } 6603 if (isTransformEffect(effect)) { 6604 this.ctx.translate(effect.offsetX, effect.offsetY); 6605 this.ctx.transform(effect.matrix[0], effect.matrix[1], effect.matrix[2], effect.matrix[3], effect.matrix[4], effect.matrix[5]); 6606 this.ctx.translate(-effect.offsetX, -effect.offsetY); 6607 } 6608 if (isClipEffect(effect)) { 6609 this.path(effect.path); 6610 this.ctx.clip(); 6611 } 6612 this._activeEffects.push(effect); 6613 }; 6614 CanvasRenderer2.prototype.popEffect = function() { 6615 this._activeEffects.pop(); 6616 this.ctx.restore(); 6617 }; 6618 CanvasRenderer2.prototype.renderStack = function(stack) { 6619 return __awaiter(this, void 0, void 0, function() { 6620 var styles; 6621 return __generator(this, function(_a) { 6622 switch (_a.label) { 6623 case 0: 6624 styles = stack.element.container.styles; 6625 if (!styles.isVisible()) return [3, 2]; 6626 return [4, this.renderStackContent(stack)]; 6627 case 1: 6628 _a.sent(); 6629 _a.label = 2; 6630 case 2: 6631 return [ 6632 2 6633 /*return*/ 6634 ]; 6635 } 6636 }); 6637 }); 6638 }; 6639 CanvasRenderer2.prototype.renderNode = function(paint) { 6640 return __awaiter(this, void 0, void 0, function() { 6641 return __generator(this, function(_a) { 6642 switch (_a.label) { 6643 case 0: 6644 if (contains( 6645 paint.container.flags, 6646 16 6647 /* DEBUG_RENDER */ 6648 )) { 6649 debugger; 6650 } 6651 if (!paint.container.styles.isVisible()) return [3, 3]; 6652 return [4, this.renderNodeBackgroundAndBorders(paint)]; 6653 case 1: 6654 _a.sent(); 6655 return [4, this.renderNodeContent(paint)]; 6656 case 2: 6657 _a.sent(); 6658 _a.label = 3; 6659 case 3: 6660 return [ 6661 2 6662 /*return*/ 6663 ]; 6664 } 6665 }); 6666 }); 6667 }; 6668 CanvasRenderer2.prototype.renderTextWithLetterSpacing = function(text, letterSpacing2, baseline) { 6669 var _this = this; 6670 if (letterSpacing2 === 0) { 6671 this.ctx.fillText(text.text, text.bounds.left, text.bounds.top + baseline); 6672 } else { 6673 var letters = segmentGraphemes(text.text); 6674 letters.reduce(function(left, letter) { 6675 _this.ctx.fillText(letter, left, text.bounds.top + baseline); 6676 return left + _this.ctx.measureText(letter).width; 6677 }, text.bounds.left); 6678 } 6679 }; 6680 CanvasRenderer2.prototype.createFontStyle = function(styles) { 6681 var fontVariant2 = styles.fontVariant.filter(function(variant) { 6682 return variant === "normal" || variant === "small-caps"; 6683 }).join(""); 6684 var fontFamily2 = fixIOSSystemFonts(styles.fontFamily).join(", "); 6685 var fontSize2 = isDimensionToken(styles.fontSize) ? "" + styles.fontSize.number + styles.fontSize.unit : styles.fontSize.number + "px"; 6686 return [ 6687 [styles.fontStyle, fontVariant2, styles.fontWeight, fontSize2, fontFamily2].join(" "), 6688 fontFamily2, 6689 fontSize2 6690 ]; 6691 }; 6692 CanvasRenderer2.prototype.renderTextNode = function(text, styles) { 6693 return __awaiter(this, void 0, void 0, function() { 6694 var _a, font, fontFamily2, fontSize2, _b, baseline, middle, paintOrder2; 6695 var _this = this; 6696 return __generator(this, function(_c) { 6697 _a = this.createFontStyle(styles), font = _a[0], fontFamily2 = _a[1], fontSize2 = _a[2]; 6698 this.ctx.font = font; 6699 this.ctx.direction = styles.direction === 1 ? "rtl" : "ltr"; 6700 this.ctx.textAlign = "left"; 6701 this.ctx.textBaseline = "alphabetic"; 6702 _b = this.fontMetrics.getMetrics(fontFamily2, fontSize2), baseline = _b.baseline, middle = _b.middle; 6703 paintOrder2 = styles.paintOrder; 6704 text.textBounds.forEach(function(text2) { 6705 paintOrder2.forEach(function(paintOrderLayer) { 6706 switch (paintOrderLayer) { 6707 case 0: 6708 _this.ctx.fillStyle = asString(styles.color); 6709 _this.renderTextWithLetterSpacing(text2, styles.letterSpacing, baseline); 6710 var textShadows = styles.textShadow; 6711 if (textShadows.length && text2.text.trim().length) { 6712 textShadows.slice(0).reverse().forEach(function(textShadow2) { 6713 _this.ctx.shadowColor = asString(textShadow2.color); 6714 _this.ctx.shadowOffsetX = textShadow2.offsetX.number * _this.options.scale; 6715 _this.ctx.shadowOffsetY = textShadow2.offsetY.number * _this.options.scale; 6716 _this.ctx.shadowBlur = textShadow2.blur.number; 6717 _this.renderTextWithLetterSpacing(text2, styles.letterSpacing, baseline); 6718 }); 6719 _this.ctx.shadowColor = ""; 6720 _this.ctx.shadowOffsetX = 0; 6721 _this.ctx.shadowOffsetY = 0; 6722 _this.ctx.shadowBlur = 0; 6723 } 6724 if (styles.textDecorationLine.length) { 6725 _this.ctx.fillStyle = asString(styles.textDecorationColor || styles.color); 6726 styles.textDecorationLine.forEach(function(textDecorationLine2) { 6727 switch (textDecorationLine2) { 6728 case 1: 6729 _this.ctx.fillRect(text2.bounds.left, Math.round(text2.bounds.top + baseline), text2.bounds.width, 1); 6730 break; 6731 case 2: 6732 _this.ctx.fillRect(text2.bounds.left, Math.round(text2.bounds.top), text2.bounds.width, 1); 6733 break; 6734 case 3: 6735 _this.ctx.fillRect(text2.bounds.left, Math.ceil(text2.bounds.top + middle), text2.bounds.width, 1); 6736 break; 6737 } 6738 }); 6739 } 6740 break; 6741 case 1: 6742 if (styles.webkitTextStrokeWidth && text2.text.trim().length) { 6743 _this.ctx.strokeStyle = asString(styles.webkitTextStrokeColor); 6744 _this.ctx.lineWidth = styles.webkitTextStrokeWidth; 6745 _this.ctx.lineJoin = !!window.chrome ? "miter" : "round"; 6746 _this.ctx.strokeText(text2.text, text2.bounds.left, text2.bounds.top + baseline); 6747 } 6748 _this.ctx.strokeStyle = ""; 6749 _this.ctx.lineWidth = 0; 6750 _this.ctx.lineJoin = "miter"; 6751 break; 6752 } 6753 }); 6754 }); 6755 return [ 6756 2 6757 /*return*/ 6758 ]; 6759 }); 6760 }); 6761 }; 6762 CanvasRenderer2.prototype.renderReplacedElement = function(container, curves, image2) { 6763 if (image2 && container.intrinsicWidth > 0 && container.intrinsicHeight > 0) { 6764 var box = contentBox(container); 6765 var path = calculatePaddingBoxPath(curves); 6766 this.path(path); 6767 this.ctx.save(); 6768 this.ctx.clip(); 6769 this.ctx.drawImage(image2, 0, 0, container.intrinsicWidth, container.intrinsicHeight, box.left, box.top, box.width, box.height); 6770 this.ctx.restore(); 6771 } 6772 }; 6773 CanvasRenderer2.prototype.renderNodeContent = function(paint) { 6774 return __awaiter(this, void 0, void 0, function() { 6775 var container, curves, styles, _i, _a, child, image2, image2, iframeRenderer, canvas, size, _b, fontFamily2, fontSize2, baseline, bounds, x, textBounds, img, image2, url, fontFamily2, bounds; 6776 return __generator(this, function(_c) { 6777 switch (_c.label) { 6778 case 0: 6779 this.applyEffects(paint.getEffects( 6780 4 6781 /* CONTENT */ 6782 )); 6783 container = paint.container; 6784 curves = paint.curves; 6785 styles = container.styles; 6786 _i = 0, _a = container.textNodes; 6787 _c.label = 1; 6788 case 1: 6789 if (!(_i < _a.length)) return [3, 4]; 6790 child = _a[_i]; 6791 return [4, this.renderTextNode(child, styles)]; 6792 case 2: 6793 _c.sent(); 6794 _c.label = 3; 6795 case 3: 6796 _i++; 6797 return [3, 1]; 6798 case 4: 6799 if (!(container instanceof ImageElementContainer)) return [3, 8]; 6800 _c.label = 5; 6801 case 5: 6802 _c.trys.push([5, 7, , 8]); 6803 return [4, this.context.cache.match(container.src)]; 6804 case 6: 6805 image2 = _c.sent(); 6806 this.renderReplacedElement(container, curves, image2); 6807 return [3, 8]; 6808 case 7: 6809 _c.sent(); 6810 this.context.logger.error("Error loading image " + container.src); 6811 return [3, 8]; 6812 case 8: 6813 if (container instanceof CanvasElementContainer) { 6814 this.renderReplacedElement(container, curves, container.canvas); 6815 } 6816 if (!(container instanceof SVGElementContainer)) return [3, 12]; 6817 _c.label = 9; 6818 case 9: 6819 _c.trys.push([9, 11, , 12]); 6820 return [4, this.context.cache.match(container.svg)]; 6821 case 10: 6822 image2 = _c.sent(); 6823 this.renderReplacedElement(container, curves, image2); 6824 return [3, 12]; 6825 case 11: 6826 _c.sent(); 6827 this.context.logger.error("Error loading svg " + container.svg.substring(0, 255)); 6828 return [3, 12]; 6829 case 12: 6830 if (!(container instanceof IFrameElementContainer && container.tree)) return [3, 14]; 6831 iframeRenderer = new CanvasRenderer2(this.context, { 6832 scale: this.options.scale, 6833 backgroundColor: container.backgroundColor, 6834 x: 0, 6835 y: 0, 6836 width: container.width, 6837 height: container.height 6838 }); 6839 return [4, iframeRenderer.render(container.tree)]; 6840 case 13: 6841 canvas = _c.sent(); 6842 if (container.width && container.height) { 6843 this.ctx.drawImage(canvas, 0, 0, container.width, container.height, container.bounds.left, container.bounds.top, container.bounds.width, container.bounds.height); 6844 } 6845 _c.label = 14; 6846 case 14: 6847 if (container instanceof InputElementContainer) { 6848 size = Math.min(container.bounds.width, container.bounds.height); 6849 if (container.type === CHECKBOX) { 6850 if (container.checked) { 6851 this.ctx.save(); 6852 this.path([ 6853 new Vector(container.bounds.left + size * 0.39363, container.bounds.top + size * 0.79), 6854 new Vector(container.bounds.left + size * 0.16, container.bounds.top + size * 0.5549), 6855 new Vector(container.bounds.left + size * 0.27347, container.bounds.top + size * 0.44071), 6856 new Vector(container.bounds.left + size * 0.39694, container.bounds.top + size * 0.5649), 6857 new Vector(container.bounds.left + size * 0.72983, container.bounds.top + size * 0.23), 6858 new Vector(container.bounds.left + size * 0.84, container.bounds.top + size * 0.34085), 6859 new Vector(container.bounds.left + size * 0.39363, container.bounds.top + size * 0.79) 6860 ]); 6861 this.ctx.fillStyle = asString(INPUT_COLOR); 6862 this.ctx.fill(); 6863 this.ctx.restore(); 6864 } 6865 } else if (container.type === RADIO) { 6866 if (container.checked) { 6867 this.ctx.save(); 6868 this.ctx.beginPath(); 6869 this.ctx.arc(container.bounds.left + size / 2, container.bounds.top + size / 2, size / 4, 0, Math.PI * 2, true); 6870 this.ctx.fillStyle = asString(INPUT_COLOR); 6871 this.ctx.fill(); 6872 this.ctx.restore(); 6873 } 6874 } 6875 } 6876 if (isTextInputElement(container) && container.value.length) { 6877 _b = this.createFontStyle(styles), fontFamily2 = _b[0], fontSize2 = _b[1]; 6878 baseline = this.fontMetrics.getMetrics(fontFamily2, fontSize2).baseline; 6879 this.ctx.font = fontFamily2; 6880 this.ctx.fillStyle = asString(styles.color); 6881 this.ctx.textBaseline = "alphabetic"; 6882 this.ctx.textAlign = canvasTextAlign(container.styles.textAlign); 6883 bounds = contentBox(container); 6884 x = 0; 6885 switch (container.styles.textAlign) { 6886 case 1: 6887 x += bounds.width / 2; 6888 break; 6889 case 2: 6890 x += bounds.width; 6891 break; 6892 } 6893 textBounds = bounds.add(x, 0, 0, -bounds.height / 2 + 1); 6894 this.ctx.save(); 6895 this.path([ 6896 new Vector(bounds.left, bounds.top), 6897 new Vector(bounds.left + bounds.width, bounds.top), 6898 new Vector(bounds.left + bounds.width, bounds.top + bounds.height), 6899 new Vector(bounds.left, bounds.top + bounds.height) 6900 ]); 6901 this.ctx.clip(); 6902 this.renderTextWithLetterSpacing(new TextBounds(container.value, textBounds), styles.letterSpacing, baseline); 6903 this.ctx.restore(); 6904 this.ctx.textBaseline = "alphabetic"; 6905 this.ctx.textAlign = "left"; 6906 } 6907 if (!contains( 6908 container.styles.display, 6909 2048 6910 /* LIST_ITEM */ 6911 )) return [3, 20]; 6912 if (!(container.styles.listStyleImage !== null)) return [3, 19]; 6913 img = container.styles.listStyleImage; 6914 if (!(img.type === 0)) return [3, 18]; 6915 image2 = void 0; 6916 url = img.url; 6917 _c.label = 15; 6918 case 15: 6919 _c.trys.push([15, 17, , 18]); 6920 return [4, this.context.cache.match(url)]; 6921 case 16: 6922 image2 = _c.sent(); 6923 this.ctx.drawImage(image2, container.bounds.left - (image2.width + 10), container.bounds.top); 6924 return [3, 18]; 6925 case 17: 6926 _c.sent(); 6927 this.context.logger.error("Error loading list-style-image " + url); 6928 return [3, 18]; 6929 case 18: 6930 return [3, 20]; 6931 case 19: 6932 if (paint.listValue && container.styles.listStyleType !== -1) { 6933 fontFamily2 = this.createFontStyle(styles)[0]; 6934 this.ctx.font = fontFamily2; 6935 this.ctx.fillStyle = asString(styles.color); 6936 this.ctx.textBaseline = "middle"; 6937 this.ctx.textAlign = "right"; 6938 bounds = new Bounds(container.bounds.left, container.bounds.top + getAbsoluteValue(container.styles.paddingTop, container.bounds.width), container.bounds.width, computeLineHeight(styles.lineHeight, styles.fontSize.number) / 2 + 1); 6939 this.renderTextWithLetterSpacing(new TextBounds(paint.listValue, bounds), styles.letterSpacing, computeLineHeight(styles.lineHeight, styles.fontSize.number) / 2 + 2); 6940 this.ctx.textBaseline = "bottom"; 6941 this.ctx.textAlign = "left"; 6942 } 6943 _c.label = 20; 6944 case 20: 6945 return [ 6946 2 6947 /*return*/ 6948 ]; 6949 } 6950 }); 6951 }); 6952 }; 6953 CanvasRenderer2.prototype.renderStackContent = function(stack) { 6954 return __awaiter(this, void 0, void 0, function() { 6955 var _i, _a, child, _b, _c, child, _d, _e, child, _f, _g, child, _h, _j, child, _k, _l, child, _m, _o, child; 6956 return __generator(this, function(_p) { 6957 switch (_p.label) { 6958 case 0: 6959 if (contains( 6960 stack.element.container.flags, 6961 16 6962 /* DEBUG_RENDER */ 6963 )) { 6964 debugger; 6965 } 6966 return [4, this.renderNodeBackgroundAndBorders(stack.element)]; 6967 case 1: 6968 _p.sent(); 6969 _i = 0, _a = stack.negativeZIndex; 6970 _p.label = 2; 6971 case 2: 6972 if (!(_i < _a.length)) return [3, 5]; 6973 child = _a[_i]; 6974 return [4, this.renderStack(child)]; 6975 case 3: 6976 _p.sent(); 6977 _p.label = 4; 6978 case 4: 6979 _i++; 6980 return [3, 2]; 6981 case 5: 6982 return [4, this.renderNodeContent(stack.element)]; 6983 case 6: 6984 _p.sent(); 6985 _b = 0, _c = stack.nonInlineLevel; 6986 _p.label = 7; 6987 case 7: 6988 if (!(_b < _c.length)) return [3, 10]; 6989 child = _c[_b]; 6990 return [4, this.renderNode(child)]; 6991 case 8: 6992 _p.sent(); 6993 _p.label = 9; 6994 case 9: 6995 _b++; 6996 return [3, 7]; 6997 case 10: 6998 _d = 0, _e = stack.nonPositionedFloats; 6999 _p.label = 11; 7000 case 11: 7001 if (!(_d < _e.length)) return [3, 14]; 7002 child = _e[_d]; 7003 return [4, this.renderStack(child)]; 7004 case 12: 7005 _p.sent(); 7006 _p.label = 13; 7007 case 13: 7008 _d++; 7009 return [3, 11]; 7010 case 14: 7011 _f = 0, _g = stack.nonPositionedInlineLevel; 7012 _p.label = 15; 7013 case 15: 7014 if (!(_f < _g.length)) return [3, 18]; 7015 child = _g[_f]; 7016 return [4, this.renderStack(child)]; 7017 case 16: 7018 _p.sent(); 7019 _p.label = 17; 7020 case 17: 7021 _f++; 7022 return [3, 15]; 7023 case 18: 7024 _h = 0, _j = stack.inlineLevel; 7025 _p.label = 19; 7026 case 19: 7027 if (!(_h < _j.length)) return [3, 22]; 7028 child = _j[_h]; 7029 return [4, this.renderNode(child)]; 7030 case 20: 7031 _p.sent(); 7032 _p.label = 21; 7033 case 21: 7034 _h++; 7035 return [3, 19]; 7036 case 22: 7037 _k = 0, _l = stack.zeroOrAutoZIndexOrTransformedOrOpacity; 7038 _p.label = 23; 7039 case 23: 7040 if (!(_k < _l.length)) return [3, 26]; 7041 child = _l[_k]; 7042 return [4, this.renderStack(child)]; 7043 case 24: 7044 _p.sent(); 7045 _p.label = 25; 7046 case 25: 7047 _k++; 7048 return [3, 23]; 7049 case 26: 7050 _m = 0, _o = stack.positiveZIndex; 7051 _p.label = 27; 7052 case 27: 7053 if (!(_m < _o.length)) return [3, 30]; 7054 child = _o[_m]; 7055 return [4, this.renderStack(child)]; 7056 case 28: 7057 _p.sent(); 7058 _p.label = 29; 7059 case 29: 7060 _m++; 7061 return [3, 27]; 7062 case 30: 7063 return [ 7064 2 7065 /*return*/ 7066 ]; 7067 } 7068 }); 7069 }); 7070 }; 7071 CanvasRenderer2.prototype.mask = function(paths) { 7072 this.ctx.beginPath(); 7073 this.ctx.moveTo(0, 0); 7074 this.ctx.lineTo(this.canvas.width, 0); 7075 this.ctx.lineTo(this.canvas.width, this.canvas.height); 7076 this.ctx.lineTo(0, this.canvas.height); 7077 this.ctx.lineTo(0, 0); 7078 this.formatPath(paths.slice(0).reverse()); 7079 this.ctx.closePath(); 7080 }; 7081 CanvasRenderer2.prototype.path = function(paths) { 7082 this.ctx.beginPath(); 7083 this.formatPath(paths); 7084 this.ctx.closePath(); 7085 }; 7086 CanvasRenderer2.prototype.formatPath = function(paths) { 7087 var _this = this; 7088 paths.forEach(function(point, index) { 7089 var start = isBezierCurve(point) ? point.start : point; 7090 if (index === 0) { 7091 _this.ctx.moveTo(start.x, start.y); 7092 } else { 7093 _this.ctx.lineTo(start.x, start.y); 7094 } 7095 if (isBezierCurve(point)) { 7096 _this.ctx.bezierCurveTo(point.startControl.x, point.startControl.y, point.endControl.x, point.endControl.y, point.end.x, point.end.y); 7097 } 7098 }); 7099 }; 7100 CanvasRenderer2.prototype.renderRepeat = function(path, pattern, offsetX, offsetY) { 7101 this.path(path); 7102 this.ctx.fillStyle = pattern; 7103 this.ctx.translate(offsetX, offsetY); 7104 this.ctx.fill(); 7105 this.ctx.translate(-offsetX, -offsetY); 7106 }; 7107 CanvasRenderer2.prototype.resizeImage = function(image2, width, height) { 7108 var _a; 7109 if (image2.width === width && image2.height === height) { 7110 return image2; 7111 } 7112 var ownerDocument = (_a = this.canvas.ownerDocument) !== null && _a !== void 0 ? _a : document; 7113 var canvas = ownerDocument.createElement("canvas"); 7114 canvas.width = Math.max(1, width); 7115 canvas.height = Math.max(1, height); 7116 var ctx = canvas.getContext("2d"); 7117 ctx.drawImage(image2, 0, 0, image2.width, image2.height, 0, 0, width, height); 7118 return canvas; 7119 }; 7120 CanvasRenderer2.prototype.renderBackgroundImage = function(container) { 7121 return __awaiter(this, void 0, void 0, function() { 7122 var index, _loop_1, this_1, _i, _a, backgroundImage2; 7123 return __generator(this, function(_b) { 7124 switch (_b.label) { 7125 case 0: 7126 index = container.styles.backgroundImage.length - 1; 7127 _loop_1 = function(backgroundImage3) { 7128 var image2, url, _c, path, x, y, width, height, pattern, _d, path, x, y, width, height, _e, lineLength, x0, x1, y0, y1, canvas, ctx, gradient_1, pattern, _f, path, left, top_1, width, height, position2, x, y, _g, rx, ry, radialGradient_1, midX, midY, f2, invF; 7129 return __generator(this, function(_h) { 7130 switch (_h.label) { 7131 case 0: 7132 if (!(backgroundImage3.type === 0)) return [3, 5]; 7133 image2 = void 0; 7134 url = backgroundImage3.url; 7135 _h.label = 1; 7136 case 1: 7137 _h.trys.push([1, 3, , 4]); 7138 return [4, this_1.context.cache.match(url)]; 7139 case 2: 7140 image2 = _h.sent(); 7141 return [3, 4]; 7142 case 3: 7143 _h.sent(); 7144 this_1.context.logger.error("Error loading background-image " + url); 7145 return [3, 4]; 7146 case 4: 7147 if (image2) { 7148 _c = calculateBackgroundRendering(container, index, [ 7149 image2.width, 7150 image2.height, 7151 image2.width / image2.height 7152 ]), path = _c[0], x = _c[1], y = _c[2], width = _c[3], height = _c[4]; 7153 pattern = this_1.ctx.createPattern(this_1.resizeImage(image2, width, height), "repeat"); 7154 this_1.renderRepeat(path, pattern, x, y); 7155 } 7156 return [3, 6]; 7157 case 5: 7158 if (isLinearGradient(backgroundImage3)) { 7159 _d = calculateBackgroundRendering(container, index, [null, null, null]), path = _d[0], x = _d[1], y = _d[2], width = _d[3], height = _d[4]; 7160 _e = calculateGradientDirection(backgroundImage3.angle, width, height), lineLength = _e[0], x0 = _e[1], x1 = _e[2], y0 = _e[3], y1 = _e[4]; 7161 canvas = document.createElement("canvas"); 7162 canvas.width = width; 7163 canvas.height = height; 7164 ctx = canvas.getContext("2d"); 7165 gradient_1 = ctx.createLinearGradient(x0, y0, x1, y1); 7166 processColorStops(backgroundImage3.stops, lineLength).forEach(function(colorStop) { 7167 return gradient_1.addColorStop(colorStop.stop, asString(colorStop.color)); 7168 }); 7169 ctx.fillStyle = gradient_1; 7170 ctx.fillRect(0, 0, width, height); 7171 if (width > 0 && height > 0) { 7172 pattern = this_1.ctx.createPattern(canvas, "repeat"); 7173 this_1.renderRepeat(path, pattern, x, y); 7174 } 7175 } else if (isRadialGradient(backgroundImage3)) { 7176 _f = calculateBackgroundRendering(container, index, [ 7177 null, 7178 null, 7179 null 7180 ]), path = _f[0], left = _f[1], top_1 = _f[2], width = _f[3], height = _f[4]; 7181 position2 = backgroundImage3.position.length === 0 ? [FIFTY_PERCENT] : backgroundImage3.position; 7182 x = getAbsoluteValue(position2[0], width); 7183 y = getAbsoluteValue(position2[position2.length - 1], height); 7184 _g = calculateRadius(backgroundImage3, x, y, width, height), rx = _g[0], ry = _g[1]; 7185 if (rx > 0 && ry > 0) { 7186 radialGradient_1 = this_1.ctx.createRadialGradient(left + x, top_1 + y, 0, left + x, top_1 + y, rx); 7187 processColorStops(backgroundImage3.stops, rx * 2).forEach(function(colorStop) { 7188 return radialGradient_1.addColorStop(colorStop.stop, asString(colorStop.color)); 7189 }); 7190 this_1.path(path); 7191 this_1.ctx.fillStyle = radialGradient_1; 7192 if (rx !== ry) { 7193 midX = container.bounds.left + 0.5 * container.bounds.width; 7194 midY = container.bounds.top + 0.5 * container.bounds.height; 7195 f2 = ry / rx; 7196 invF = 1 / f2; 7197 this_1.ctx.save(); 7198 this_1.ctx.translate(midX, midY); 7199 this_1.ctx.transform(1, 0, 0, f2, 0, 0); 7200 this_1.ctx.translate(-midX, -midY); 7201 this_1.ctx.fillRect(left, invF * (top_1 - midY) + midY, width, height * invF); 7202 this_1.ctx.restore(); 7203 } else { 7204 this_1.ctx.fill(); 7205 } 7206 } 7207 } 7208 _h.label = 6; 7209 case 6: 7210 index--; 7211 return [ 7212 2 7213 /*return*/ 7214 ]; 7215 } 7216 }); 7217 }; 7218 this_1 = this; 7219 _i = 0, _a = container.styles.backgroundImage.slice(0).reverse(); 7220 _b.label = 1; 7221 case 1: 7222 if (!(_i < _a.length)) return [3, 4]; 7223 backgroundImage2 = _a[_i]; 7224 return [5, _loop_1(backgroundImage2)]; 7225 case 2: 7226 _b.sent(); 7227 _b.label = 3; 7228 case 3: 7229 _i++; 7230 return [3, 1]; 7231 case 4: 7232 return [ 7233 2 7234 /*return*/ 7235 ]; 7236 } 7237 }); 7238 }); 7239 }; 7240 CanvasRenderer2.prototype.renderSolidBorder = function(color2, side, curvePoints) { 7241 return __awaiter(this, void 0, void 0, function() { 7242 return __generator(this, function(_a) { 7243 this.path(parsePathForBorder(curvePoints, side)); 7244 this.ctx.fillStyle = asString(color2); 7245 this.ctx.fill(); 7246 return [ 7247 2 7248 /*return*/ 7249 ]; 7250 }); 7251 }); 7252 }; 7253 CanvasRenderer2.prototype.renderDoubleBorder = function(color2, width, side, curvePoints) { 7254 return __awaiter(this, void 0, void 0, function() { 7255 var outerPaths, innerPaths; 7256 return __generator(this, function(_a) { 7257 switch (_a.label) { 7258 case 0: 7259 if (!(width < 3)) return [3, 2]; 7260 return [4, this.renderSolidBorder(color2, side, curvePoints)]; 7261 case 1: 7262 _a.sent(); 7263 return [ 7264 2 7265 /*return*/ 7266 ]; 7267 case 2: 7268 outerPaths = parsePathForBorderDoubleOuter(curvePoints, side); 7269 this.path(outerPaths); 7270 this.ctx.fillStyle = asString(color2); 7271 this.ctx.fill(); 7272 innerPaths = parsePathForBorderDoubleInner(curvePoints, side); 7273 this.path(innerPaths); 7274 this.ctx.fill(); 7275 return [ 7276 2 7277 /*return*/ 7278 ]; 7279 } 7280 }); 7281 }); 7282 }; 7283 CanvasRenderer2.prototype.renderNodeBackgroundAndBorders = function(paint) { 7284 return __awaiter(this, void 0, void 0, function() { 7285 var styles, hasBackground, borders, backgroundPaintingArea, side, _i, borders_1, border; 7286 var _this = this; 7287 return __generator(this, function(_a) { 7288 switch (_a.label) { 7289 case 0: 7290 this.applyEffects(paint.getEffects( 7291 2 7292 /* BACKGROUND_BORDERS */ 7293 )); 7294 styles = paint.container.styles; 7295 hasBackground = !isTransparent(styles.backgroundColor) || styles.backgroundImage.length; 7296 borders = [ 7297 { style: styles.borderTopStyle, color: styles.borderTopColor, width: styles.borderTopWidth }, 7298 { style: styles.borderRightStyle, color: styles.borderRightColor, width: styles.borderRightWidth }, 7299 { style: styles.borderBottomStyle, color: styles.borderBottomColor, width: styles.borderBottomWidth }, 7300 { style: styles.borderLeftStyle, color: styles.borderLeftColor, width: styles.borderLeftWidth } 7301 ]; 7302 backgroundPaintingArea = calculateBackgroundCurvedPaintingArea(getBackgroundValueForIndex(styles.backgroundClip, 0), paint.curves); 7303 if (!(hasBackground || styles.boxShadow.length)) return [3, 2]; 7304 this.ctx.save(); 7305 this.path(backgroundPaintingArea); 7306 this.ctx.clip(); 7307 if (!isTransparent(styles.backgroundColor)) { 7308 this.ctx.fillStyle = asString(styles.backgroundColor); 7309 this.ctx.fill(); 7310 } 7311 return [4, this.renderBackgroundImage(paint.container)]; 7312 case 1: 7313 _a.sent(); 7314 this.ctx.restore(); 7315 styles.boxShadow.slice(0).reverse().forEach(function(shadow) { 7316 _this.ctx.save(); 7317 var borderBoxArea = calculateBorderBoxPath(paint.curves); 7318 var maskOffset = shadow.inset ? 0 : MASK_OFFSET; 7319 var shadowPaintingArea = transformPath(borderBoxArea, -maskOffset + (shadow.inset ? 1 : -1) * shadow.spread.number, (shadow.inset ? 1 : -1) * shadow.spread.number, shadow.spread.number * (shadow.inset ? -2 : 2), shadow.spread.number * (shadow.inset ? -2 : 2)); 7320 if (shadow.inset) { 7321 _this.path(borderBoxArea); 7322 _this.ctx.clip(); 7323 _this.mask(shadowPaintingArea); 7324 } else { 7325 _this.mask(borderBoxArea); 7326 _this.ctx.clip(); 7327 _this.path(shadowPaintingArea); 7328 } 7329 _this.ctx.shadowOffsetX = shadow.offsetX.number + maskOffset; 7330 _this.ctx.shadowOffsetY = shadow.offsetY.number; 7331 _this.ctx.shadowColor = asString(shadow.color); 7332 _this.ctx.shadowBlur = shadow.blur.number; 7333 _this.ctx.fillStyle = shadow.inset ? asString(shadow.color) : "rgba(0,0,0,1)"; 7334 _this.ctx.fill(); 7335 _this.ctx.restore(); 7336 }); 7337 _a.label = 2; 7338 case 2: 7339 side = 0; 7340 _i = 0, borders_1 = borders; 7341 _a.label = 3; 7342 case 3: 7343 if (!(_i < borders_1.length)) return [3, 13]; 7344 border = borders_1[_i]; 7345 if (!(border.style !== 0 && !isTransparent(border.color) && border.width > 0)) return [3, 11]; 7346 if (!(border.style === 2)) return [3, 5]; 7347 return [4, this.renderDashedDottedBorder( 7348 border.color, 7349 border.width, 7350 side, 7351 paint.curves, 7352 2 7353 /* DASHED */ 7354 )]; 7355 case 4: 7356 _a.sent(); 7357 return [3, 11]; 7358 case 5: 7359 if (!(border.style === 3)) return [3, 7]; 7360 return [4, this.renderDashedDottedBorder( 7361 border.color, 7362 border.width, 7363 side, 7364 paint.curves, 7365 3 7366 /* DOTTED */ 7367 )]; 7368 case 6: 7369 _a.sent(); 7370 return [3, 11]; 7371 case 7: 7372 if (!(border.style === 4)) return [3, 9]; 7373 return [4, this.renderDoubleBorder(border.color, border.width, side, paint.curves)]; 7374 case 8: 7375 _a.sent(); 7376 return [3, 11]; 7377 case 9: 7378 return [4, this.renderSolidBorder(border.color, side, paint.curves)]; 7379 case 10: 7380 _a.sent(); 7381 _a.label = 11; 7382 case 11: 7383 side++; 7384 _a.label = 12; 7385 case 12: 7386 _i++; 7387 return [3, 3]; 7388 case 13: 7389 return [ 7390 2 7391 /*return*/ 7392 ]; 7393 } 7394 }); 7395 }); 7396 }; 7397 CanvasRenderer2.prototype.renderDashedDottedBorder = function(color2, width, side, curvePoints, style) { 7398 return __awaiter(this, void 0, void 0, function() { 7399 var strokePaths, boxPaths, startX, startY, endX, endY, length, dashLength, spaceLength, useLineDash, multiplier, numberOfDashes, minSpace, maxSpace, path1, path2, path1, path2; 7400 return __generator(this, function(_a) { 7401 this.ctx.save(); 7402 strokePaths = parsePathForBorderStroke(curvePoints, side); 7403 boxPaths = parsePathForBorder(curvePoints, side); 7404 if (style === 2) { 7405 this.path(boxPaths); 7406 this.ctx.clip(); 7407 } 7408 if (isBezierCurve(boxPaths[0])) { 7409 startX = boxPaths[0].start.x; 7410 startY = boxPaths[0].start.y; 7411 } else { 7412 startX = boxPaths[0].x; 7413 startY = boxPaths[0].y; 7414 } 7415 if (isBezierCurve(boxPaths[1])) { 7416 endX = boxPaths[1].end.x; 7417 endY = boxPaths[1].end.y; 7418 } else { 7419 endX = boxPaths[1].x; 7420 endY = boxPaths[1].y; 7421 } 7422 if (side === 0 || side === 2) { 7423 length = Math.abs(startX - endX); 7424 } else { 7425 length = Math.abs(startY - endY); 7426 } 7427 this.ctx.beginPath(); 7428 if (style === 3) { 7429 this.formatPath(strokePaths); 7430 } else { 7431 this.formatPath(boxPaths.slice(0, 2)); 7432 } 7433 dashLength = width < 3 ? width * 3 : width * 2; 7434 spaceLength = width < 3 ? width * 2 : width; 7435 if (style === 3) { 7436 dashLength = width; 7437 spaceLength = width; 7438 } 7439 useLineDash = true; 7440 if (length <= dashLength * 2) { 7441 useLineDash = false; 7442 } else if (length <= dashLength * 2 + spaceLength) { 7443 multiplier = length / (2 * dashLength + spaceLength); 7444 dashLength *= multiplier; 7445 spaceLength *= multiplier; 7446 } else { 7447 numberOfDashes = Math.floor((length + spaceLength) / (dashLength + spaceLength)); 7448 minSpace = (length - numberOfDashes * dashLength) / (numberOfDashes - 1); 7449 maxSpace = (length - (numberOfDashes + 1) * dashLength) / numberOfDashes; 7450 spaceLength = maxSpace <= 0 || Math.abs(spaceLength - minSpace) < Math.abs(spaceLength - maxSpace) ? minSpace : maxSpace; 7451 } 7452 if (useLineDash) { 7453 if (style === 3) { 7454 this.ctx.setLineDash([0, dashLength + spaceLength]); 7455 } else { 7456 this.ctx.setLineDash([dashLength, spaceLength]); 7457 } 7458 } 7459 if (style === 3) { 7460 this.ctx.lineCap = "round"; 7461 this.ctx.lineWidth = width; 7462 } else { 7463 this.ctx.lineWidth = width * 2 + 1.1; 7464 } 7465 this.ctx.strokeStyle = asString(color2); 7466 this.ctx.stroke(); 7467 this.ctx.setLineDash([]); 7468 if (style === 2) { 7469 if (isBezierCurve(boxPaths[0])) { 7470 path1 = boxPaths[3]; 7471 path2 = boxPaths[0]; 7472 this.ctx.beginPath(); 7473 this.formatPath([new Vector(path1.end.x, path1.end.y), new Vector(path2.start.x, path2.start.y)]); 7474 this.ctx.stroke(); 7475 } 7476 if (isBezierCurve(boxPaths[1])) { 7477 path1 = boxPaths[1]; 7478 path2 = boxPaths[2]; 7479 this.ctx.beginPath(); 7480 this.formatPath([new Vector(path1.end.x, path1.end.y), new Vector(path2.start.x, path2.start.y)]); 7481 this.ctx.stroke(); 7482 } 7483 } 7484 this.ctx.restore(); 7485 return [ 7486 2 7487 /*return*/ 7488 ]; 7489 }); 7490 }); 7491 }; 7492 CanvasRenderer2.prototype.render = function(element) { 7493 return __awaiter(this, void 0, void 0, function() { 7494 var stack; 7495 return __generator(this, function(_a) { 7496 switch (_a.label) { 7497 case 0: 7498 if (this.options.backgroundColor) { 7499 this.ctx.fillStyle = asString(this.options.backgroundColor); 7500 this.ctx.fillRect(this.options.x, this.options.y, this.options.width, this.options.height); 7501 } 7502 stack = parseStackingContexts(element); 7503 return [4, this.renderStack(stack)]; 7504 case 1: 7505 _a.sent(); 7506 this.applyEffects([]); 7507 return [2, this.canvas]; 7508 } 7509 }); 7510 }); 7511 }; 7512 return CanvasRenderer2; 7513 }
vendor: 6,082 bytes, lines 7513-7682
7513(Renderer) 7514); 7515var isTextInputElement = function(container) { 7516 if (container instanceof TextareaElementContainer) { 7517 return true; 7518 } else if (container instanceof SelectElementContainer) { 7519 return true; 7520 } else if (container instanceof InputElementContainer && container.type !== RADIO && container.type !== CHECKBOX) { 7521 return true; 7522 } 7523 return false; 7524}; 7525var calculateBackgroundCurvedPaintingArea = function(clip, curves) { 7526 switch (clip) { 7527 case 0: 7528 return calculateBorderBoxPath(curves); 7529 case 2: 7530 return calculateContentBoxPath(curves); 7531 case 1: 7532 default: 7533 return calculatePaddingBoxPath(curves); 7534 } 7535}; 7536var canvasTextAlign = function(textAlign2) { 7537 switch (textAlign2) { 7538 case 1: 7539 return "center"; 7540 case 2: 7541 return "right"; 7542 case 0: 7543 default: 7544 return "left"; 7545 } 7546}; 7547var iOSBrokenFonts = ["-apple-system", "system-ui"]; 7548var fixIOSSystemFonts = function(fontFamilies) { 7549 return /iPhone OS 15_(0|1)/.test(window.navigator.userAgent) ? fontFamilies.filter(function(fontFamily2) { 7550 return iOSBrokenFonts.indexOf(fontFamily2) === -1; 7551 }) : fontFamilies; 7552}; 7553var ForeignObjectRenderer = ( 7554 /** @class */ 7555 function(_super) { 7556 __extends(ForeignObjectRenderer2, _super); 7557 function ForeignObjectRenderer2(context, options) { 7558 var _this = _super.call(this, context, options) || this; 7559 _this.canvas = options.canvas ? options.canvas : document.createElement("canvas"); 7560 _this.ctx = _this.canvas.getContext("2d"); 7561 _this.options = options; 7562 _this.canvas.width = Math.floor(options.width * options.scale); 7563 _this.canvas.height = Math.floor(options.height * options.scale); 7564 _this.canvas.style.width = options.width + "px"; 7565 _this.canvas.style.height = options.height + "px"; 7566 _this.ctx.scale(_this.options.scale, _this.options.scale); 7567 _this.ctx.translate(-options.x, -options.y); 7568 _this.context.logger.debug("EXPERIMENTAL ForeignObject renderer initialized (" + options.width + "x" + options.height + " at " + options.x + "," + options.y + ") with scale " + options.scale); 7569 return _this; 7570 } 7571 ForeignObjectRenderer2.prototype.render = function(element) { 7572 return __awaiter(this, void 0, void 0, function() { 7573 var svg, img; 7574 return __generator(this, function(_a) { 7575 switch (_a.label) { 7576 case 0: 7577 svg = createForeignObjectSVG(this.options.width * this.options.scale, this.options.height * this.options.scale, this.options.scale, this.options.scale, element); 7578 return [4, loadSerializedSVG(svg)]; 7579 case 1: 7580 img = _a.sent(); 7581 if (this.options.backgroundColor) { 7582 this.ctx.fillStyle = asString(this.options.backgroundColor); 7583 this.ctx.fillRect(0, 0, this.options.width * this.options.scale, this.options.height * this.options.scale); 7584 } 7585 this.ctx.drawImage(img, -this.options.x * this.options.scale, -this.options.y * this.options.scale); 7586 return [2, this.canvas]; 7587 } 7588 }); 7589 }); 7590 }; 7591 return ForeignObjectRenderer2; 7592 }(Renderer) 7593); 7594var loadSerializedSVG = function(svg) { 7595 return new Promise(function(resolve, reject) { 7596 var img = new Image(); 7597 img.onload = function() { 7598 resolve(img); 7599 }; 7600 img.onerror = reject; 7601 img.src = "data:image/svg+xml;charset=utf-8," + encodeURIComponent(new XMLSerializer().serializeToString(svg)); 7602 }); 7603}; 7604var Logger = ( 7605 /** @class */ 7606 function() { 7607 function Logger2(_a) { 7608 var id = _a.id, enabled = _a.enabled; 7609 this.id = id; 7610 this.enabled = enabled; 7611 this.start = Date.now(); 7612 } 7613 Logger2.prototype.debug = function() { 7614 var args = []; 7615 for (var _i = 0; _i < arguments.length; _i++) { 7616 args[_i] = arguments[_i]; 7617 } 7618 if (this.enabled) { 7619 if (typeof window !== "undefined" && window.console && typeof console.debug === "function") { 7620 console.debug.apply(console, __spreadArray([this.id, this.getTime() + "ms"], args)); 7621 } else { 7622 this.info.apply(this, args); 7623 } 7624 } 7625 }; 7626 Logger2.prototype.getTime = function() { 7627 return Date.now() - this.start; 7628 }; 7629 Logger2.prototype.info = function() { 7630 var args = []; 7631 for (var _i = 0; _i < arguments.length; _i++) { 7632 args[_i] = arguments[_i]; 7633 } 7634 if (this.enabled) { 7635 if (typeof window !== "undefined" && window.console && typeof console.info === "function") { 7636 console.info.apply(console, __spreadArray([this.id, this.getTime() + "ms"], args)); 7637 } 7638 } 7639 }; 7640 Logger2.prototype.warn = function() { 7641 var args = []; 7642 for (var _i = 0; _i < arguments.length; _i++) { 7643 args[_i] = arguments[_i]; 7644 } 7645 if (this.enabled) { 7646 if (typeof window !== "undefined" && window.console && typeof console.warn === "function") { 7647 console.warn.apply(console, __spreadArray([this.id, this.getTime() + "ms"], args)); 7648 } else { 7649 this.info.apply(this, args); 7650 } 7651 } 7652 }; 7653 Logger2.prototype.error = function() { 7654 var args = []; 7655 for (var _i = 0; _i < arguments.length; _i++) { 7656 args[_i] = arguments[_i]; 7657 } 7658 if (this.enabled) { 7659 if (typeof window !== "undefined" && window.console && typeof console.error === "function") { 7660 console.error.apply(console, __spreadArray([this.id, this.getTime() + "ms"], args)); 7661 } else { 7662 this.info.apply(this, args); 7663 } 7664 } 7665 }; 7666 Logger2.instances = {}; 7667 return Logger2; 7668 }() 7669); 7670var Context = ( 7671 /** @class */ 7672 function() { 7673 function Context2(options, windowBounds) { 7674 var _a; 7675 this.windowBounds = windowBounds; 7676 this.instanceName = "#" + Context2.instanceCount++; 7677 this.logger = new Logger({ id: this.instanceName, enabled: options.logging }); 7678 this.cache = (_a = options.cache) !== null && _a !== void 0 ? _a : new Cache(this, options); 7679 } 7680 Context2.instanceCount = 1; 7681 return Context2; 7682 }
vendor: 6,700 bytes, lines 7682-7795
7682() 7683); 7684var html2canvas = function(element, options) { 7685 if (options === void 0) { 7686 options = {}; 7687 } 7688 return renderElement(element, options); 7689}; 7690if (typeof window !== "undefined") { 7691 CacheStorage.setContext(window); 7692} 7693var renderElement = function(element, opts) { 7694 return __awaiter(void 0, void 0, void 0, function() { 7695 var ownerDocument, defaultView, resourceOptions, contextOptions, windowOptions, windowBounds, context, foreignObjectRendering, cloneOptions, documentCloner, clonedElement, container, _a, width, height, left, top, backgroundColor2, renderOptions, canvas, renderer, root, renderer; 7696 var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t; 7697 return __generator(this, function(_u) { 7698 switch (_u.label) { 7699 case 0: 7700 if (!element || typeof element !== "object") { 7701 return [2, Promise.reject("Invalid element provided as first argument")]; 7702 } 7703 ownerDocument = element.ownerDocument; 7704 if (!ownerDocument) { 7705 throw new Error("Element is not attached to a Document"); 7706 } 7707 defaultView = ownerDocument.defaultView; 7708 if (!defaultView) { 7709 throw new Error("Document is not attached to a Window"); 7710 } 7711 resourceOptions = { 7712 allowTaint: (_b = opts.allowTaint) !== null && _b !== void 0 ? _b : false, 7713 imageTimeout: (_c = opts.imageTimeout) !== null && _c !== void 0 ? _c : 15e3, 7714 proxy: opts.proxy, 7715 useCORS: (_d = opts.useCORS) !== null && _d !== void 0 ? _d : false 7716 }; 7717 contextOptions = __assign({ logging: (_e = opts.logging) !== null && _e !== void 0 ? _e : true, cache: opts.cache }, resourceOptions); 7718 windowOptions = { 7719 windowWidth: (_f = opts.windowWidth) !== null && _f !== void 0 ? _f : defaultView.innerWidth, 7720 windowHeight: (_g = opts.windowHeight) !== null && _g !== void 0 ? _g : defaultView.innerHeight, 7721 scrollX: (_h = opts.scrollX) !== null && _h !== void 0 ? _h : defaultView.pageXOffset, 7722 scrollY: (_j = opts.scrollY) !== null && _j !== void 0 ? _j : defaultView.pageYOffset 7723 }; 7724 windowBounds = new Bounds(windowOptions.scrollX, windowOptions.scrollY, windowOptions.windowWidth, windowOptions.windowHeight); 7725 context = new Context(contextOptions, windowBounds); 7726 foreignObjectRendering = (_k = opts.foreignObjectRendering) !== null && _k !== void 0 ? _k : false; 7727 cloneOptions = { 7728 allowTaint: (_l = opts.allowTaint) !== null && _l !== void 0 ? _l : false, 7729 onclone: opts.onclone, 7730 ignoreElements: opts.ignoreElements, 7731 inlineImages: foreignObjectRendering, 7732 copyStyles: foreignObjectRendering 7733 }; 7734 context.logger.debug("Starting document clone with size " + windowBounds.width + "x" + windowBounds.height + " scrolled to " + -windowBounds.left + "," + -windowBounds.top); 7735 documentCloner = new DocumentCloner(context, element, cloneOptions); 7736 clonedElement = documentCloner.clonedReferenceElement; 7737 if (!clonedElement) { 7738 return [2, Promise.reject("Unable to find element in cloned iframe")]; 7739 } 7740 return [4, documentCloner.toIFrame(ownerDocument, windowBounds)]; 7741 case 1: 7742 container = _u.sent(); 7743 _a = isBodyElement(clonedElement) || isHTMLElement(clonedElement) ? parseDocumentSize(clonedElement.ownerDocument) : parseBounds(context, clonedElement), width = _a.width, height = _a.height, left = _a.left, top = _a.top; 7744 backgroundColor2 = parseBackgroundColor(context, clonedElement, opts.backgroundColor); 7745 renderOptions = { 7746 canvas: opts.canvas, 7747 backgroundColor: backgroundColor2, 7748 scale: (_o = (_m = opts.scale) !== null && _m !== void 0 ? _m : defaultView.devicePixelRatio) !== null && _o !== void 0 ? _o : 1, 7749 x: ((_p = opts.x) !== null && _p !== void 0 ? _p : 0) + left, 7750 y: ((_q = opts.y) !== null && _q !== void 0 ? _q : 0) + top, 7751 width: (_r = opts.width) !== null && _r !== void 0 ? _r : Math.ceil(width), 7752 height: (_s = opts.height) !== null && _s !== void 0 ? _s : Math.ceil(height) 7753 }; 7754 if (!foreignObjectRendering) return [3, 3]; 7755 context.logger.debug("Document cloned, using foreign object rendering"); 7756 renderer = new ForeignObjectRenderer(context, renderOptions); 7757 return [4, renderer.render(clonedElement)]; 7758 case 2: 7759 canvas = _u.sent(); 7760 return [3, 5]; 7761 case 3: 7762 context.logger.debug("Document cloned, element located at " + left + "," + top + " with size " + width + "x" + height + " using computed rendering"); 7763 context.logger.debug("Starting DOM parsing"); 7764 root = parseTree(context, clonedElement); 7765 if (backgroundColor2 === root.styles.backgroundColor) { 7766 root.styles.backgroundColor = COLORS.TRANSPARENT; 7767 } 7768 context.logger.debug("Starting renderer for element at " + renderOptions.x + "," + renderOptions.y + " with size " + renderOptions.width + "x" + renderOptions.height); 7769 renderer = new CanvasRenderer(context, renderOptions); 7770 return [4, renderer.render(root)]; 7771 case 4: 7772 canvas = _u.sent(); 7773 _u.label = 5; 7774 case 5: 7775 if ((_t = opts.removeContainer) !== null && _t !== void 0 ? _t : true) { 7776 if (!DocumentCloner.destroy(container)) { 7777 context.logger.error("Cannot detach cloned iframe as it is not in the DOM anymore"); 7778 } 7779 } 7780 context.logger.debug("Finished rendering"); 7781 return [2, canvas]; 7782 } 7783 }); 7784 }); 7785}; 7786var parseBackgroundColor = function(context, element, backgroundColorOverride) { 7787 var ownerDocument = element.ownerDocument; 7788 var documentBackgroundColor = ownerDocument.documentElement ? parseColor(context, getComputedStyle(ownerDocument.documentElement).backgroundColor) : COLORS.TRANSPARENT; 7789 var bodyBackgroundColor = ownerDocument.body ? parseColor(context, getComputedStyle(ownerDocument.body).backgroundColor) : COLORS.TRANSPARENT; 7790 var defaultBackgroundColor = typeof backgroundColorOverride === "string" ? parseColor(context, backgroundColorOverride) : backgroundColorOverride === null ? COLORS.TRANSPARENT : 4294967295; 7791 return element === ownerDocument.documentElement ? isTransparent(documentBackgroundColor) ? isTransparent(bodyBackgroundColor) ? defaultBackgroundColor : bodyBackgroundColor : documentBackgroundColor : defaultBackgroundColor; 7792}; 7793export { 7794 html2canvas as default 7795};
7796//# sourceMappingURL=html2canvas.esm-j4r7SAt4.js.map
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.