{"version":3,"file":"pixi-gif.js","sources":["../node_modules/tslib/tslib.es6.js","../node_modules/js-binary-schema-parser/lib/index.js","../node_modules/js-binary-schema-parser/lib/parsers/uint8.js","../node_modules/js-binary-schema-parser/lib/schemas/gif.js","../node_modules/gifuct-js/lib/deinterlace.js","../node_modules/gifuct-js/lib/lzw.js","../node_modules/gifuct-js/lib/index.js","../src/AnimatedGIF.ts","../src/AnimatedGIFLoader.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 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;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.loop = exports.conditional = exports.parse = void 0;\n\nvar parse = function parse(stream, schema) {\n var result = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var parent = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : result;\n\n if (Array.isArray(schema)) {\n schema.forEach(function (partSchema) {\n return parse(stream, partSchema, result, parent);\n });\n } else if (typeof schema === 'function') {\n schema(stream, result, parent, parse);\n } else {\n var key = Object.keys(schema)[0];\n\n if (Array.isArray(schema[key])) {\n parent[key] = {};\n parse(stream, schema[key], result, parent[key]);\n } else {\n parent[key] = schema[key](stream, result, parent, parse);\n }\n }\n\n return result;\n};\n\nexports.parse = parse;\n\nvar conditional = function conditional(schema, conditionFunc) {\n return function (stream, result, parent, parse) {\n if (conditionFunc(stream, result, parent)) {\n parse(stream, schema, result, parent);\n }\n };\n};\n\nexports.conditional = conditional;\n\nvar loop = function loop(schema, continueFunc) {\n return function (stream, result, parent, parse) {\n var arr = [];\n var lastStreamPos = stream.pos;\n\n while (continueFunc(stream, result, parent)) {\n var newParent = {};\n parse(stream, schema, result, newParent); // cases when whole file is parsed but no termination is there and stream position is not getting updated as well\n // it falls into infinite recursion, null check to avoid the same\n\n if (stream.pos === lastStreamPos) {\n break;\n }\n\n lastStreamPos = stream.pos;\n arr.push(newParent);\n }\n\n return arr;\n };\n};\n\nexports.loop = loop;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.readBits = exports.readArray = exports.readUnsigned = exports.readString = exports.peekBytes = exports.readBytes = exports.peekByte = exports.readByte = exports.buildStream = void 0;\n\n// Default stream and parsers for Uint8TypedArray data type\nvar buildStream = function buildStream(uint8Data) {\n return {\n data: uint8Data,\n pos: 0\n };\n};\n\nexports.buildStream = buildStream;\n\nvar readByte = function readByte() {\n return function (stream) {\n return stream.data[stream.pos++];\n };\n};\n\nexports.readByte = readByte;\n\nvar peekByte = function peekByte() {\n var offset = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n return function (stream) {\n return stream.data[stream.pos + offset];\n };\n};\n\nexports.peekByte = peekByte;\n\nvar readBytes = function readBytes(length) {\n return function (stream) {\n return stream.data.subarray(stream.pos, stream.pos += length);\n };\n};\n\nexports.readBytes = readBytes;\n\nvar peekBytes = function peekBytes(length) {\n return function (stream) {\n return stream.data.subarray(stream.pos, stream.pos + length);\n };\n};\n\nexports.peekBytes = peekBytes;\n\nvar readString = function readString(length) {\n return function (stream) {\n return Array.from(readBytes(length)(stream)).map(function (value) {\n return String.fromCharCode(value);\n }).join('');\n };\n};\n\nexports.readString = readString;\n\nvar readUnsigned = function readUnsigned(littleEndian) {\n return function (stream) {\n var bytes = readBytes(2)(stream);\n return littleEndian ? (bytes[1] << 8) + bytes[0] : (bytes[0] << 8) + bytes[1];\n };\n};\n\nexports.readUnsigned = readUnsigned;\n\nvar readArray = function readArray(byteSize, totalOrFunc) {\n return function (stream, result, parent) {\n var total = typeof totalOrFunc === 'function' ? totalOrFunc(stream, result, parent) : totalOrFunc;\n var parser = readBytes(byteSize);\n var arr = new Array(total);\n\n for (var i = 0; i < total; i++) {\n arr[i] = parser(stream);\n }\n\n return arr;\n };\n};\n\nexports.readArray = readArray;\n\nvar subBitsTotal = function subBitsTotal(bits, startIndex, length) {\n var result = 0;\n\n for (var i = 0; i < length; i++) {\n result += bits[startIndex + i] && Math.pow(2, length - i - 1);\n }\n\n return result;\n};\n\nvar readBits = function readBits(schema) {\n return function (stream) {\n var _byte = readByte()(stream); // convert the byte to bit array\n\n\n var bits = new Array(8);\n\n for (var i = 0; i < 8; i++) {\n bits[7 - i] = !!(_byte & 1 << i);\n } // convert the bit array to values based on the schema\n\n\n return Object.keys(schema).reduce(function (res, key) {\n var def = schema[key];\n\n if (def.length) {\n res[key] = subBitsTotal(bits, def.index, def.length);\n } else {\n res[key] = bits[def.index];\n }\n\n return res;\n }, {});\n };\n};\n\nexports.readBits = readBits;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _ = require(\"../\");\n\nvar _uint = require(\"../parsers/uint8\");\n\n// a set of 0x00 terminated subblocks\nvar subBlocksSchema = {\n blocks: function blocks(stream) {\n var terminator = 0x00;\n var chunks = [];\n var streamSize = stream.data.length;\n var total = 0;\n\n for (var size = (0, _uint.readByte)()(stream); size !== terminator; size = (0, _uint.readByte)()(stream)) {\n // size becomes undefined for some case when file is corrupted and terminator is not proper \n // null check to avoid recursion\n if (!size) break; // catch corrupted files with no terminator\n\n if (stream.pos + size >= streamSize) {\n var availableSize = streamSize - stream.pos;\n chunks.push((0, _uint.readBytes)(availableSize)(stream));\n total += availableSize;\n break;\n }\n\n chunks.push((0, _uint.readBytes)(size)(stream));\n total += size;\n }\n\n var result = new Uint8Array(total);\n var offset = 0;\n\n for (var i = 0; i < chunks.length; i++) {\n result.set(chunks[i], offset);\n offset += chunks[i].length;\n }\n\n return result;\n }\n}; // global control extension\n\nvar gceSchema = (0, _.conditional)({\n gce: [{\n codes: (0, _uint.readBytes)(2)\n }, {\n byteSize: (0, _uint.readByte)()\n }, {\n extras: (0, _uint.readBits)({\n future: {\n index: 0,\n length: 3\n },\n disposal: {\n index: 3,\n length: 3\n },\n userInput: {\n index: 6\n },\n transparentColorGiven: {\n index: 7\n }\n })\n }, {\n delay: (0, _uint.readUnsigned)(true)\n }, {\n transparentColorIndex: (0, _uint.readByte)()\n }, {\n terminator: (0, _uint.readByte)()\n }]\n}, function (stream) {\n var codes = (0, _uint.peekBytes)(2)(stream);\n return codes[0] === 0x21 && codes[1] === 0xf9;\n}); // image pipeline block\n\nvar imageSchema = (0, _.conditional)({\n image: [{\n code: (0, _uint.readByte)()\n }, {\n descriptor: [{\n left: (0, _uint.readUnsigned)(true)\n }, {\n top: (0, _uint.readUnsigned)(true)\n }, {\n width: (0, _uint.readUnsigned)(true)\n }, {\n height: (0, _uint.readUnsigned)(true)\n }, {\n lct: (0, _uint.readBits)({\n exists: {\n index: 0\n },\n interlaced: {\n index: 1\n },\n sort: {\n index: 2\n },\n future: {\n index: 3,\n length: 2\n },\n size: {\n index: 5,\n length: 3\n }\n })\n }]\n }, (0, _.conditional)({\n lct: (0, _uint.readArray)(3, function (stream, result, parent) {\n return Math.pow(2, parent.descriptor.lct.size + 1);\n })\n }, function (stream, result, parent) {\n return parent.descriptor.lct.exists;\n }), {\n data: [{\n minCodeSize: (0, _uint.readByte)()\n }, subBlocksSchema]\n }]\n}, function (stream) {\n return (0, _uint.peekByte)()(stream) === 0x2c;\n}); // plain text block\n\nvar textSchema = (0, _.conditional)({\n text: [{\n codes: (0, _uint.readBytes)(2)\n }, {\n blockSize: (0, _uint.readByte)()\n }, {\n preData: function preData(stream, result, parent) {\n return (0, _uint.readBytes)(parent.text.blockSize)(stream);\n }\n }, subBlocksSchema]\n}, function (stream) {\n var codes = (0, _uint.peekBytes)(2)(stream);\n return codes[0] === 0x21 && codes[1] === 0x01;\n}); // application block\n\nvar applicationSchema = (0, _.conditional)({\n application: [{\n codes: (0, _uint.readBytes)(2)\n }, {\n blockSize: (0, _uint.readByte)()\n }, {\n id: function id(stream, result, parent) {\n return (0, _uint.readString)(parent.blockSize)(stream);\n }\n }, subBlocksSchema]\n}, function (stream) {\n var codes = (0, _uint.peekBytes)(2)(stream);\n return codes[0] === 0x21 && codes[1] === 0xff;\n}); // comment block\n\nvar commentSchema = (0, _.conditional)({\n comment: [{\n codes: (0, _uint.readBytes)(2)\n }, subBlocksSchema]\n}, function (stream) {\n var codes = (0, _uint.peekBytes)(2)(stream);\n return codes[0] === 0x21 && codes[1] === 0xfe;\n});\nvar schema = [{\n header: [{\n signature: (0, _uint.readString)(3)\n }, {\n version: (0, _uint.readString)(3)\n }]\n}, {\n lsd: [{\n width: (0, _uint.readUnsigned)(true)\n }, {\n height: (0, _uint.readUnsigned)(true)\n }, {\n gct: (0, _uint.readBits)({\n exists: {\n index: 0\n },\n resolution: {\n index: 1,\n length: 3\n },\n sort: {\n index: 4\n },\n size: {\n index: 5,\n length: 3\n }\n })\n }, {\n backgroundColorIndex: (0, _uint.readByte)()\n }, {\n pixelAspectRatio: (0, _uint.readByte)()\n }]\n}, (0, _.conditional)({\n gct: (0, _uint.readArray)(3, function (stream, result) {\n return Math.pow(2, result.lsd.gct.size + 1);\n })\n}, function (stream, result) {\n return result.lsd.gct.exists;\n}), // content frames\n{\n frames: (0, _.loop)([gceSchema, applicationSchema, commentSchema, imageSchema, textSchema], function (stream) {\n var nextCode = (0, _uint.peekByte)()(stream); // rather than check for a terminator, we should check for the existence\n // of an ext or image block to avoid infinite loops\n //var terminator = 0x3B;\n //return nextCode !== terminator;\n\n return nextCode === 0x21 || nextCode === 0x2c;\n })\n}];\nvar _default = schema;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.deinterlace = void 0;\n\n/**\r\n * Deinterlace function from https://github.com/shachaf/jsgif\r\n */\nvar deinterlace = function deinterlace(pixels, width) {\n var newPixels = new Array(pixels.length);\n var rows = pixels.length / width;\n\n var cpRow = function cpRow(toRow, fromRow) {\n var fromPixels = pixels.slice(fromRow * width, (fromRow + 1) * width);\n newPixels.splice.apply(newPixels, [toRow * width, width].concat(fromPixels));\n }; // See appendix E.\n\n\n var offsets = [0, 4, 2, 1];\n var steps = [8, 8, 4, 2];\n var fromRow = 0;\n\n for (var pass = 0; pass < 4; pass++) {\n for (var toRow = offsets[pass]; toRow < rows; toRow += steps[pass]) {\n cpRow(toRow, fromRow);\n fromRow++;\n }\n }\n\n return newPixels;\n};\n\nexports.deinterlace = deinterlace;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.lzw = void 0;\n\n/**\r\n * javascript port of java LZW decompression\r\n * Original java author url: https://gist.github.com/devunwired/4479231\r\n */\nvar lzw = function lzw(minCodeSize, data, pixelCount) {\n var MAX_STACK_SIZE = 4096;\n var nullCode = -1;\n var npix = pixelCount;\n var available, clear, code_mask, code_size, end_of_information, in_code, old_code, bits, code, i, datum, data_size, first, top, bi, pi;\n var dstPixels = new Array(pixelCount);\n var prefix = new Array(MAX_STACK_SIZE);\n var suffix = new Array(MAX_STACK_SIZE);\n var pixelStack = new Array(MAX_STACK_SIZE + 1); // Initialize GIF data stream decoder.\n\n data_size = minCodeSize;\n clear = 1 << data_size;\n end_of_information = clear + 1;\n available = clear + 2;\n old_code = nullCode;\n code_size = data_size + 1;\n code_mask = (1 << code_size) - 1;\n\n for (code = 0; code < clear; code++) {\n prefix[code] = 0;\n suffix[code] = code;\n } // Decode GIF pixel stream.\n\n\n var datum, bits, count, first, top, pi, bi;\n datum = bits = count = first = top = pi = bi = 0;\n\n for (i = 0; i < npix;) {\n if (top === 0) {\n if (bits < code_size) {\n // get the next byte\n datum += data[bi] << bits;\n bits += 8;\n bi++;\n continue;\n } // Get the next code.\n\n\n code = datum & code_mask;\n datum >>= code_size;\n bits -= code_size; // Interpret the code\n\n if (code > available || code == end_of_information) {\n break;\n }\n\n if (code == clear) {\n // Reset decoder.\n code_size = data_size + 1;\n code_mask = (1 << code_size) - 1;\n available = clear + 2;\n old_code = nullCode;\n continue;\n }\n\n if (old_code == nullCode) {\n pixelStack[top++] = suffix[code];\n old_code = code;\n first = code;\n continue;\n }\n\n in_code = code;\n\n if (code == available) {\n pixelStack[top++] = first;\n code = old_code;\n }\n\n while (code > clear) {\n pixelStack[top++] = suffix[code];\n code = prefix[code];\n }\n\n first = suffix[code] & 0xff;\n pixelStack[top++] = first; // add a new string to the table, but only if space is available\n // if not, just continue with current table until a clear code is found\n // (deferred clear code implementation as per GIF spec)\n\n if (available < MAX_STACK_SIZE) {\n prefix[available] = old_code;\n suffix[available] = first;\n available++;\n\n if ((available & code_mask) === 0 && available < MAX_STACK_SIZE) {\n code_size++;\n code_mask += available;\n }\n }\n\n old_code = in_code;\n } // Pop a pixel off the pixel stack.\n\n\n top--;\n dstPixels[pi++] = pixelStack[top];\n i++;\n }\n\n for (i = pi; i < npix; i++) {\n dstPixels[i] = 0; // clear missing pixels\n }\n\n return dstPixels;\n};\n\nexports.lzw = lzw;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.decompressFrames = exports.decompressFrame = exports.parseGIF = void 0;\n\nvar _gif = _interopRequireDefault(require(\"js-binary-schema-parser/lib/schemas/gif\"));\n\nvar _jsBinarySchemaParser = require(\"js-binary-schema-parser\");\n\nvar _uint = require(\"js-binary-schema-parser/lib/parsers/uint8\");\n\nvar _deinterlace = require(\"./deinterlace\");\n\nvar _lzw = require(\"./lzw\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar parseGIF = function parseGIF(arrayBuffer) {\n var byteData = new Uint8Array(arrayBuffer);\n return (0, _jsBinarySchemaParser.parse)((0, _uint.buildStream)(byteData), _gif[\"default\"]);\n};\n\nexports.parseGIF = parseGIF;\n\nvar generatePatch = function generatePatch(image) {\n var totalPixels = image.pixels.length;\n var patchData = new Uint8ClampedArray(totalPixels * 4);\n\n for (var i = 0; i < totalPixels; i++) {\n var pos = i * 4;\n var colorIndex = image.pixels[i];\n var color = image.colorTable[colorIndex] || [0, 0, 0];\n patchData[pos] = color[0];\n patchData[pos + 1] = color[1];\n patchData[pos + 2] = color[2];\n patchData[pos + 3] = colorIndex !== image.transparentIndex ? 255 : 0;\n }\n\n return patchData;\n};\n\nvar decompressFrame = function decompressFrame(frame, gct, buildImagePatch) {\n if (!frame.image) {\n console.warn('gif frame does not have associated image.');\n return;\n }\n\n var image = frame.image; // get the number of pixels\n\n var totalPixels = image.descriptor.width * image.descriptor.height; // do lzw decompression\n\n var pixels = (0, _lzw.lzw)(image.data.minCodeSize, image.data.blocks, totalPixels); // deal with interlacing if necessary\n\n if (image.descriptor.lct.interlaced) {\n pixels = (0, _deinterlace.deinterlace)(pixels, image.descriptor.width);\n }\n\n var resultImage = {\n pixels: pixels,\n dims: {\n top: frame.image.descriptor.top,\n left: frame.image.descriptor.left,\n width: frame.image.descriptor.width,\n height: frame.image.descriptor.height\n }\n }; // color table\n\n if (image.descriptor.lct && image.descriptor.lct.exists) {\n resultImage.colorTable = image.lct;\n } else {\n resultImage.colorTable = gct;\n } // add per frame relevant gce information\n\n\n if (frame.gce) {\n resultImage.delay = (frame.gce.delay || 10) * 10; // convert to ms\n\n resultImage.disposalType = frame.gce.extras.disposal; // transparency\n\n if (frame.gce.extras.transparentColorGiven) {\n resultImage.transparentIndex = frame.gce.transparentColorIndex;\n }\n } // create canvas usable imagedata if desired\n\n\n if (buildImagePatch) {\n resultImage.patch = generatePatch(resultImage);\n }\n\n return resultImage;\n};\n\nexports.decompressFrame = decompressFrame;\n\nvar decompressFrames = function decompressFrames(parsedGif, buildImagePatches) {\n return parsedGif.frames.filter(function (f) {\n return f.image;\n }).map(function (f) {\n return decompressFrame(f, parsedGif.gct, buildImagePatches);\n });\n};\n\nexports.decompressFrames = decompressFrames;","import { Sprite } from '@pixi/sprite';\nimport { Texture, Renderer } from '@pixi/core';\nimport { settings } from '@pixi/settings';\nimport { SCALE_MODES } from '@pixi/constants';\nimport { Ticker, UPDATE_PRIORITY } from '@pixi/ticker';\nimport { parseGIF, decompressFrames } from 'gifuct-js';\n\n/**\n * Represents a single frame of a GIF. Includes image and timing data.\n * @memberof PIXI.gif\n */\ninterface FrameObject {\n /** Image data for the current frame */\n imageData: ImageData;\n /** The start of the current frame, in milliseconds */\n start: number;\n /** The end of the current frame, in milliseconds */\n end: number;\n}\n\n/**\n * Default options for all AnimatedGIF objects.\n * @memberof PIXI.gif\n */\ninterface AnimatedGIFOptions {\n /** Whether to start playing right away */\n autoPlay: boolean;\n /**\n * Scale Mode to use for the texture\n * @type {PIXI.SCALE_MODES}\n */\n scaleMode: SCALE_MODES;\n /** To enable looping */\n loop: boolean;\n /** Speed of the animation */\n animationSpeed: number;\n /** Set to `false` to manage updates yourself */\n autoUpdate: boolean;\n /** The completed callback, optional */\n onComplete: () => void;\n /** The loop callback, optional */\n onLoop: () => void;\n /** The frame callback, optional */\n onFrameChange: (currentFrame: number) => void;\n /** Fallback FPS if GIF contains no time information */\n fps?: number;\n}\n\n/**\n * Options for the AnimatedGIF constructor.\n * @memberof PIXI.gif\n */\ninterface AnimatedGIFSize {\n /** Width of the GIF image */\n width: number;\n /** Height of the GIF image */\n height: number;\n}\n\n/**\n * Runtime object to play animated GIFs. This object is similar to an AnimatedSprite.\n * It support playback (seek, play, stop) as well as animation speed and looping.\n * @memberof PIXI.gif\n * @see Thanks to {@link https://github.com/matt-way/gifuct-js/ gifuct-js}\n */\nclass AnimatedGIF extends Sprite\n{\n /**\n * Default options for all AnimatedGIF objects.\n * @property {PIXI.SCALE_MODES} [scaleMode=PIXI.SCALE_MODES.LINEAR] - Scale mode to use for the texture.\n * @property {boolean} [loop=true] - To enable looping.\n * @property {number} [animationSpeed=1] - Speed of the animation.\n * @property {boolean} [autoUpdate=true] - Set to `false` to manage updates yourself.\n * @property {boolean} [autoPlay=true] - To start playing right away.\n * @property {Function} [onComplete=null] - The completed callback, optional.\n * @property {Function} [onLoop=null] - The loop callback, optional.\n * @property {Function} [onFrameChange=null] - The frame callback, optional.\n * @property {number} [fps=PIXI.Ticker.shared.FPS] - Default FPS.\n */\n public static defaultOptions: AnimatedGIFOptions = {\n scaleMode: SCALE_MODES.LINEAR,\n fps: Ticker.shared.FPS,\n loop: true,\n animationSpeed: 1,\n autoPlay: true,\n autoUpdate: true,\n onComplete: null,\n onFrameChange: null,\n onLoop: null,\n };\n\n /**\n * The speed that the animation will play at. Higher is faster, lower is slower.\n * @default 1\n */\n public animationSpeed: number;\n\n /**\n * Whether or not the animate sprite repeats after playing.\n * @default true\n */\n public loop: boolean;\n\n /**\n * User-assigned function to call when animation finishes playing. This only happens\n * if loop is set to `false`.\n *\n * @example\n * animation.onComplete = () => {\n * // finished!\n * };\n */\n public onComplete?: () => void;\n\n /**\n * User-assigned function to call when animation changes which texture is being rendered.\n *\n * @example\n * animation.onFrameChange = () => {\n * // updated!\n * };\n */\n public onFrameChange?: (currentFrame: number) => void;\n\n /**\n * User-assigned function to call when `loop` is true, and animation is played and\n * loops around to start again. This only happens if loop is set to `true`.\n *\n * @example\n * animation.onLoop = () => {\n * // looped!\n * };\n */\n public onLoop?: () => void;\n\n /** The total duration of animation in milliseconds. */\n public readonly duration: number;\n\n /** Whether to play the animation after constructing. */\n public readonly autoPlay: boolean;\n\n /** Collection of frame to render. */\n private _frames: FrameObject[];\n\n /** Drawing context reference. */\n private _context: CanvasRenderingContext2D;\n\n /** Dirty means the image needs to be redrawn. Set to `true` to force redraw. */\n public dirty: boolean;\n\n /** The current frame number (zero-based index). */\n private _currentFrame: number;\n\n /** `true` uses PIXI.Ticker.shared to auto update animation time.*/\n private _autoUpdate: boolean;\n\n /** `true` if the instance is currently connected to PIXI.Ticker.shared to auto update animation time. */\n private _isConnectedToTicker: boolean;\n\n /** If animation is currently playing. */\n private _playing: boolean;\n\n /** Current playback position in milliseconds. */\n private _currentTime: number;\n\n /**\n * Create an animated GIF animation from a GIF image's ArrayBuffer. The easiest way to get\n * the buffer is to use the Loader.\n * @example\n * const loader = new PIXI.Loader();\n * loader.add('myFile', 'file.gif');\n * loader.load((loader, resources) => {\n * const gif = resources.myFile.animation;\n * // add to the stage...\n * });\n * @param buffer - GIF image arraybuffer from loader.\n * @param options - Options to use.\n * @returns\n */\n static fromBuffer(buffer: ArrayBuffer, options?: Partial): AnimatedGIF\n {\n if (!buffer || buffer.byteLength === 0)\n {\n throw new Error('Invalid buffer');\n }\n\n // fix https://github.com/matt-way/gifuct-js/issues/30\n const validateAndFix = (gif: any): void =>\n {\n let currentGce = null;\n\n for (const frame of gif.frames)\n {\n currentGce = frame.gce ?? currentGce;\n\n // fix loosing graphic control extension for same frames\n if ('image' in frame && !('gce' in frame))\n {\n frame.gce = currentGce;\n }\n }\n };\n\n const gif = parseGIF(buffer);\n\n validateAndFix(gif);\n const gifFrames = decompressFrames(gif, true);\n const frames: FrameObject[] = [];\n\n // Temporary canvases required for compositing frames\n const canvas = document.createElement('canvas');\n const context = canvas.getContext('2d');\n const patchCanvas = document.createElement('canvas');\n const patchContext = patchCanvas.getContext('2d');\n\n canvas.width = gif.lsd.width;\n canvas.height = gif.lsd.height;\n\n let time = 0;\n\n // Some GIFs have a non-zero frame delay, so we need to calculate the fallback\n const { fps } = Object.assign({}, AnimatedGIF.defaultOptions, options);\n const defaultDelay = 1000 / fps;\n\n // Precompute each frame and store as ImageData\n for (let i = 0; i < gifFrames.length; i++)\n {\n // Some GIF's omit the disposalType, so let's assume clear if missing\n const { disposalType = 2, delay = defaultDelay, patch, dims: { width, height, left, top } } = gifFrames[i];\n\n patchCanvas.width = width;\n patchCanvas.height = height;\n patchContext.clearRect(0, 0, width, height);\n const patchData = patchContext.createImageData(width, height);\n\n patchData.data.set(patch);\n patchContext.putImageData(patchData, 0, 0);\n\n context.drawImage(patchCanvas, left, top);\n const imageData = context.getImageData(0, 0, canvas.width, canvas.height);\n\n if (disposalType === 2 || disposalType === 3)\n {\n context.clearRect(0, 0, canvas.width, canvas.height);\n }\n\n frames.push({\n start: time,\n end: time + delay,\n imageData,\n });\n time += delay;\n }\n\n // clear the canvases\n canvas.width = canvas.height = 0;\n patchCanvas.width = patchCanvas.height = 0;\n const { width, height } = gif.lsd;\n\n return new AnimatedGIF(frames, { width, height, ...options });\n }\n\n /**\n * @param frames - Data of the GIF image.\n * @param options - Options for the AnimatedGIF\n */\n constructor(frames: FrameObject[], options: Partial & AnimatedGIFSize)\n {\n // Get the options, apply defaults\n const { scaleMode, width, height, ...rest } = Object.assign({},\n AnimatedGIF.defaultOptions,\n options\n );\n\n // Create the texture\n const canvas = document.createElement('canvas');\n const context = canvas.getContext('2d');\n\n canvas.width = width;\n canvas.height = height;\n\n super(Texture.from(canvas, { scaleMode }));\n\n this.duration = frames[frames.length - 1].end;\n this._frames = frames;\n this._context = context;\n this._playing = false;\n this._currentTime = 0;\n this._isConnectedToTicker = false;\n Object.assign(this, rest);\n\n // Draw the first frame\n this.currentFrame = 0;\n if (this.autoPlay)\n {\n this.play();\n }\n }\n\n /** Stops the animation. */\n public stop(): void\n {\n if (!this._playing)\n {\n return;\n }\n\n this._playing = false;\n if (this._autoUpdate && this._isConnectedToTicker)\n {\n Ticker.shared.remove(this.update, this);\n this._isConnectedToTicker = false;\n }\n }\n\n /** Plays the animation. */\n public play(): void\n {\n if (this._playing)\n {\n return;\n }\n\n this._playing = true;\n if (this._autoUpdate && !this._isConnectedToTicker)\n {\n Ticker.shared.add(this.update, this, UPDATE_PRIORITY.HIGH);\n this._isConnectedToTicker = true;\n }\n\n // If were on the last frame and stopped, play should resume from beginning\n if (!this.loop && this.currentFrame === this._frames.length - 1)\n {\n this._currentTime = 0;\n }\n }\n\n /**\n * Get the current progress of the animation from 0 to 1.\n * @readonly\n */\n public get progress(): number\n {\n return this._currentTime / this.duration;\n }\n\n /** `true` if the current animation is playing */\n public get playing(): boolean\n {\n return this._playing;\n }\n\n /**\n * Updates the object transform for rendering. You only need to call this\n * if the `autoUpdate` property is set to `false`.\n *\n * @param deltaTime - Time since last tick.\n */\n update(deltaTime: number): void\n {\n if (!this._playing)\n {\n return;\n }\n\n const elapsed = this.animationSpeed * deltaTime / settings.TARGET_FPMS;\n const currentTime = this._currentTime + elapsed;\n const localTime = currentTime % this.duration;\n\n const localFrame = this._frames.findIndex((frame) =>\n frame.start <= localTime && frame.end > localTime);\n\n if (currentTime >= this.duration)\n {\n if (this.loop)\n {\n this._currentTime = localTime;\n this.updateFrameIndex(localFrame);\n this.onLoop?.();\n }\n else\n {\n this._currentTime = this.duration;\n this.updateFrameIndex(this._frames.length - 1);\n this.onComplete?.();\n this.stop();\n }\n }\n else\n {\n this._currentTime = localTime;\n this.updateFrameIndex(localFrame);\n }\n }\n\n /**\n * Redraw the current frame, is necessary for the animation to work when\n */\n private updateFrame(): void\n {\n if (!this.dirty)\n {\n return;\n }\n\n // Update the current frame\n const { imageData } = this._frames[this._currentFrame];\n\n this._context.putImageData(imageData, 0, 0);\n\n // Workaround hack for Safari & iOS\n // which fails to upload canvas after putImageData\n // See: https://bugs.webkit.org/show_bug.cgi?id=229986\n this._context.fillStyle = 'transparent';\n this._context.fillRect(0, 0, 0, 1);\n\n this.texture.update();\n\n // Mark as clean\n this.dirty = false;\n }\n\n /**\n * Renders the object using the WebGL renderer\n *\n * @param {PIXI.Renderer} renderer - The renderer\n * @private\n */\n _render(renderer: Renderer): void\n {\n this.updateFrame();\n\n super._render(renderer);\n }\n\n /**\n * Renders the object using the WebGL renderer\n *\n * @param {PIXI.CanvasRenderer} renderer - The renderer\n * @private\n */\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\n _renderCanvas(renderer: any): void\n {\n this.updateFrame();\n\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n super._renderCanvas(renderer);\n }\n\n /**\n * Whether to use PIXI.Ticker.shared to auto update animation time.\n * @default true\n */\n get autoUpdate(): boolean\n {\n return this._autoUpdate;\n }\n\n set autoUpdate(value: boolean)\n {\n if (value !== this._autoUpdate)\n {\n this._autoUpdate = value;\n\n if (!this._autoUpdate && this._isConnectedToTicker)\n {\n Ticker.shared.remove(this.update, this);\n this._isConnectedToTicker = false;\n }\n else if (this._autoUpdate && !this._isConnectedToTicker && this._playing)\n {\n Ticker.shared.add(this.update, this);\n this._isConnectedToTicker = true;\n }\n }\n }\n\n /** Set the current frame number */\n get currentFrame(): number\n {\n return this._currentFrame;\n }\n set currentFrame(value: number)\n {\n this.updateFrameIndex(value);\n this._currentTime = this._frames[value].start;\n }\n\n /** Internally handle updating the frame index */\n private updateFrameIndex(value: number): void\n {\n if (value < 0 || value >= this._frames.length)\n {\n throw new Error(`Frame index out of range, expecting 0 to ${this.totalFrames}, got ${value}`);\n }\n if (this._currentFrame !== value)\n {\n this._currentFrame = value;\n this.dirty = true;\n this.onFrameChange?.(value);\n }\n }\n\n /**\n * Get the total number of frame in the GIF.\n */\n get totalFrames(): number\n {\n return this._frames.length;\n }\n\n /** Destroy and don't use after this. */\n destroy(): void\n {\n this.stop();\n super.destroy(true);\n this._context = null;\n this._frames = null;\n this.onComplete = null;\n this.onFrameChange = null;\n this.onLoop = null;\n }\n\n /**\n * Cloning the animation is a useful way to create a duplicate animation.\n * This maintains all the properties of the original animation but allows\n * you to control playback independent of the original animation.\n * If you want to create a simple copy, and not control independently,\n * then you can simply create a new Sprite, e.g. `const sprite = new Sprite(animation.texture)`.\n */\n clone(): AnimatedGIF\n {\n return new AnimatedGIF([...this._frames], {\n autoUpdate: this._autoUpdate,\n loop: this.loop,\n autoPlay: this.autoPlay,\n scaleMode: this.texture.baseTexture.scaleMode,\n animationSpeed: this.animationSpeed,\n width: this._context.canvas.width,\n height: this._context.canvas.height,\n onComplete: this.onComplete,\n onFrameChange: this.onFrameChange,\n onLoop: this.onLoop,\n });\n }\n}\n\nexport { AnimatedGIF };\nexport type { AnimatedGIFOptions };\n","import { LoaderResource } from '@pixi/loaders';\nimport type { ILoaderPlugin } from '@pixi/loaders';\nimport { AnimatedGIF } from './AnimatedGIF';\n\n/** Default extension for GIF images */\nconst GIF_EXTENSION = 'gif';\n\n// Satsify the LoaderResource interface\ndeclare global {\n // eslint-disable-next-line @typescript-eslint/no-namespace\n namespace GlobalMixins {\n interface LoaderResource {\n animation?: AnimatedGIF;\n }\n }\n}\n\n/**\n * Handle the loading of GIF images. Registering this loader plugin will\n * load all `.gif` images as an ArrayBuffer and transform into an\n * AnimatedGIF object. Use Resource's `animation` property to access the object.\n * @memberof PIXI.gif\n * @class AnimatedGIFLoader\n * @example\n * import { Loader } from '@pixi/loaders';\n * import { AnimatedGIFLoader } from '@pixi/gif';\n *\n * Loader.registerPlugin(AnimatedGIFLoader);\n */\nconst AnimatedGIFLoader: ILoaderPlugin = {\n /** For loading methods */\n add(): void\n {\n LoaderResource.setExtensionXhrType(\n GIF_EXTENSION,\n LoaderResource.XHR_RESPONSE_TYPE.BUFFER\n );\n LoaderResource.setExtensionLoadType(\n GIF_EXTENSION,\n LoaderResource.LOAD_TYPE.XHR\n );\n },\n /** Implement loader */\n use(resource: LoaderResource, next: (...args: any[]) => void): void\n {\n if (resource.extension === GIF_EXTENSION)\n {\n resource.animation = AnimatedGIF.fromBuffer(resource.data);\n }\n next();\n }\n};\n\nexport { AnimatedGIFLoader };\n"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","prototype","hasOwnProperty","call","__assign","assign","t","s","i","n","arguments","length","apply","this","defineProperty","lib","value","parse","stream","schema","result","undefined","parent","isArray","forEach","partSchema","key","keys","conditionFunc","continueFunc","arr","lastStreamPos","pos","newParent","push","uint8","uint8Data","data","readByte","offset","readBytes","subarray","from","map","String","fromCharCode","join","littleEndian","bytes","byteSize","totalOrFunc","total","parser","_byte","bits","reduce","res","def","startIndex","Math","pow","subBitsTotal","index","exports","_","require$$0","_uint","require$$1","subBlocksSchema","blocks","chunks","streamSize","size","availableSize","Uint8Array","set","gceSchema","conditional","gce","codes","extras","readBits","future","disposal","userInput","transparentColorGiven","delay","readUnsigned","transparentColorIndex","terminator","peekBytes","imageSchema","image","code","descriptor","left","top","width","height","lct","exists","interlaced","sort","readArray","minCodeSize","peekByte","textSchema","text","blockSize","preData","applicationSchema","application","id","readString","commentSchema","comment","_default","header","signature","version","lsd","gct","resolution","backgroundColorIndex","pixelAspectRatio","frames","loop","nextCode","deinterlace_1","pixels","newPixels","rows","cpRow","toRow","fromRow","fromPixels","slice","splice","concat","offsets","steps","pass","lzw_1","pixelCount","available","clear","code_mask","code_size","end_of_information","in_code","old_code","data_size","datum","first","pi","bi","MAX_STACK_SIZE","npix","dstPixels","prefix","suffix","pixelStack","obj","parseGIF_1","_gif","__esModule","default","_jsBinarySchemaParser","require$$2","_deinterlace","require$$3","_lzw","require$$4","arrayBuffer","byteData","buildStream","decompressFrame","frame","buildImagePatch","totalPixels","lzw","deinterlace","resultImage","dims","colorTable","disposalType","transparentIndex","patch","patchData","Uint8ClampedArray","colorIndex","color","generatePatch","decompressFrames_1","parsedGif","buildImagePatches","filter","f","options","_a","AnimatedGIF","defaultOptions","scaleMode","rest","e","indexOf","getOwnPropertySymbols","propertyIsEnumerable","canvas","document","createElement","context","getContext","_super","Texture","duration","end","_this","_frames","_context","_playing","_currentTime","_isConnectedToTicker","currentFrame","autoPlay","play","TypeError","__","constructor","create","__extends","buffer","byteLength","Error","gif","parseGIF","currentGce","_b","_i","validateAndFix","gifFrames","decompressFrames","patchCanvas","patchContext","time","defaultDelay","_c","_d","width_1","height_1","top_1","clearRect","createImageData","putImageData","drawImage","imageData","getImageData","start","_e","_autoUpdate","Ticker","shared","remove","update","add","UPDATE_PRIORITY","HIGH","deltaTime","elapsed","animationSpeed","settings","TARGET_FPMS","currentTime","localTime","localFrame","findIndex","updateFrameIndex","onLoop","onComplete","stop","dirty","_currentFrame","fillStyle","fillRect","texture","renderer","updateFrame","_render","_renderCanvas","totalFrames","onFrameChange","destroy","to","pack","ar","l","autoUpdate","baseTexture","SCALE_MODES","LINEAR","fps","FPS","Sprite","GIF_EXTENSION","AnimatedGIFLoader","LoaderResource","setExtensionXhrType","XHR_RESPONSE_TYPE","BUFFER","setExtensionLoadType","LOAD_TYPE","XHR","use","resource","next","extension","animation","fromBuffer"],"mappings":";;;;;;;;2EAgBA,IAAIA,EAAgB,SAASC,EAAGC,GAI5B,OAHAF,EAAgBG,OAAOC,gBAClB,CAAEC,UAAW,cAAgBC,OAAS,SAAUL,EAAGC,GAAKD,EAAEI,UAAYH,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIK,KAAKL,EAAOC,OAAOK,UAAUC,eAAeC,KAAKR,EAAGK,KAAIN,EAAEM,GAAKL,EAAEK,KACzFP,EAAcC,EAAGC,IAWrB,IAAIS,EAAW,WAQlB,OAPAA,EAAWR,OAAOS,QAAU,SAAkBC,GAC1C,IAAK,IAAIC,EAAGC,EAAI,EAAGC,EAAIC,UAAUC,OAAQH,EAAIC,EAAGD,IAE5C,IAAK,IAAIR,KADTO,EAAIG,UAAUF,GACOZ,OAAOK,UAAUC,eAAeC,KAAKI,EAAGP,KAAIM,EAAEN,GAAKO,EAAEP,IAE9E,OAAOM,GAEJF,EAASQ,MAAMC,KAAMH,+BCrChCd,OAAOkB,eAAeC,EAAS,aAAc,CAC3CC,OAAO,sCAE4C,UAEzC,SAASC,EAAMC,EAAQC,GACjC,IAAIC,EAASV,UAAUC,OAAS,QAAsBU,IAAjBX,UAAU,GAAmBA,UAAU,GAAK,GAC7EY,EAASZ,UAAUC,OAAS,QAAsBU,IAAjBX,UAAU,GAAmBA,UAAU,GAAKU,EAEjF,GAAIrB,MAAMwB,QAAQJ,GAChBA,EAAOK,SAAQ,SAAUC,GACvB,OAAOR,EAAMC,EAAQO,EAAYL,EAAQE,WAEtC,GAAsB,mBAAXH,EAChBA,EAAOD,EAAQE,EAAQE,EAAQL,OAC1B,CACL,IAAIS,EAAM9B,OAAO+B,KAAKR,GAAQ,GAE1BpB,MAAMwB,QAAQJ,EAAOO,KACvBJ,EAAOI,GAAO,GACdT,EAAMC,EAAQC,EAAOO,GAAMN,EAAQE,EAAOI,KAE1CJ,EAAOI,GAAOP,EAAOO,GAAKR,EAAQE,EAAQE,EAAQL,GAItD,OAAOG,iBAKS,SAAqBD,EAAQS,GAC7C,OAAO,SAAUV,EAAQE,EAAQE,EAAQL,GACnCW,EAAcV,EAAQE,EAAQE,IAChCL,EAAMC,EAAQC,EAAQC,EAAQE,YAOzB,SAAcH,EAAQU,GAC/B,OAAO,SAAUX,EAAQE,EAAQE,EAAQL,GAIvC,IAHA,IAAIa,EAAM,GACNC,EAAgBb,EAAOc,IAEpBH,EAAaX,EAAQE,EAAQE,IAAS,CAC3C,IAAIW,EAAY,GAIhB,GAHAhB,EAAMC,EAAQC,EAAQC,EAAQa,GAG1Bf,EAAOc,MAAQD,EACjB,MAGFA,EAAgBb,EAAOc,IACvBF,EAAII,KAAKD,GAGX,OAAOH,aC3DXlC,OAAOkB,eAAeqB,EAAS,aAAc,CAC3CnB,OAAO,wHAE8K,gBAGrK,SAAqBoB,GACrC,MAAO,CACLC,KAAMD,EACNJ,IAAK,IAMT,IAAIM,EAAW,WACb,OAAO,SAAUpB,GACf,OAAOA,EAAOmB,KAAKnB,EAAOc,oBAIXM,aAEJ,WACb,IAAIC,EAAS7B,UAAUC,OAAS,QAAsBU,IAAjBX,UAAU,GAAmBA,UAAU,GAAK,EACjF,OAAO,SAAUQ,GACf,OAAOA,EAAOmB,KAAKnB,EAAOc,IAAMO,KAMpC,IAAIC,EAAY,SAAmB7B,GACjC,OAAO,SAAUO,GACf,OAAOA,EAAOmB,KAAKI,SAASvB,EAAOc,IAAKd,EAAOc,KAAOrB,iBAItC6B,cAEJ,SAAmB7B,GACjC,OAAO,SAAUO,GACf,OAAOA,EAAOmB,KAAKI,SAASvB,EAAOc,IAAKd,EAAOc,IAAMrB,kBAMxC,SAAoBA,GACnC,OAAO,SAAUO,GACf,OAAOnB,MAAM2C,KAAKF,EAAU7B,EAAV6B,CAAkBtB,IAASyB,KAAI,SAAU3B,GACzD,OAAO4B,OAAOC,aAAa7B,MAC1B8B,KAAK,qBAMO,SAAsBC,GACvC,OAAO,SAAU7B,GACf,IAAI8B,EAAQR,EAAU,EAAVA,CAAatB,GACzB,OAAO6B,GAAgBC,EAAM,IAAM,GAAKA,EAAM,IAAMA,EAAM,IAAM,GAAKA,EAAM,iBAM/D,SAAmBC,EAAUC,GAC3C,OAAO,SAAUhC,EAAQE,EAAQE,GAK/B,IAJA,IAAI6B,EAA+B,mBAAhBD,EAA6BA,EAAYhC,EAAQE,EAAQE,GAAU4B,EAClFE,EAASZ,EAAUS,GACnBnB,EAAM,IAAI/B,MAAMoD,GAEX3C,EAAI,EAAGA,EAAI2C,EAAO3C,IACzBsB,EAAItB,GAAK4C,EAAOlC,GAGlB,OAAOY,eAgBI,SAAkBX,GAC/B,OAAO,SAAUD,GAMf,IALA,IAAImC,EA/EC,SAAUnC,GACf,OAAOA,EAAOmB,KAAKnB,EAAOc,OA8EdM,CAAWpB,GAGnBoC,EAAO,IAAIvD,MAAM,GAEZS,EAAI,EAAGA,EAAI,EAAGA,IACrB8C,EAAK,EAAI9C,MAAQ6C,EAAQ,GAAK7C,GAIhC,OAAOZ,OAAO+B,KAAKR,GAAQoC,QAAO,SAAUC,EAAK9B,GAC/C,IAAI+B,EAAMtC,EAAOO,GAQjB,OANI+B,EAAI9C,OACN6C,EAAI9B,GA1BO,SAAsB4B,EAAMI,EAAY/C,GAGzD,IAFA,IAAIS,EAAS,EAEJZ,EAAI,EAAGA,EAAIG,EAAQH,IAC1BY,GAAUkC,EAAKI,EAAalD,IAAMmD,KAAKC,IAAI,EAAGjD,EAASH,EAAI,GAG7D,OAAOY,EAmBUyC,CAAaP,EAAMG,EAAIK,MAAOL,EAAI9C,QAE7C6C,EAAI9B,GAAO4B,EAAKG,EAAIK,OAGfN,IACN,kBCnHP5D,OAAOkB,iBAAwB,aAAc,CAC3CE,OAAO,IAET+C,EAAiB,aAAI,EAErB,IAAIC,EAAIC,EAEJC,EAAQC,EAGRC,EAAkB,CACpBC,OAAQ,SAAgBnD,GAMtB,IALA,IACIoD,EAAS,GACTC,EAAarD,EAAOmB,KAAK1B,OACzBwC,EAAQ,EAEHqB,GAAO,EAAIN,EAAM5B,WAAV,CAAsBpB,GALrB,IAK8BsD,GAGxCA,EAH6DA,GAAO,EAAIN,EAAM5B,WAAV,CAAsBpB,GAAS,CAKxG,GAAIA,EAAOc,IAAMwC,GAAQD,EAAY,CACnC,IAAIE,EAAgBF,EAAarD,EAAOc,IACxCsC,EAAOpC,MAAK,EAAIgC,EAAM1B,WAAWiC,EAArB,CAAoCvD,IAChDiC,GAASsB,EACT,MAGFH,EAAOpC,MAAK,EAAIgC,EAAM1B,WAAWgC,EAArB,CAA2BtD,IACvCiC,GAASqB,EAMX,IAHA,IAAIpD,EAAS,IAAIsD,WAAWvB,GACxBZ,EAAS,EAEJ/B,EAAI,EAAGA,EAAI8D,EAAO3D,OAAQH,IACjCY,EAAOuD,IAAIL,EAAO9D,GAAI+B,GACtBA,GAAU+B,EAAO9D,GAAGG,OAGtB,OAAOS,IAIPwD,GAAY,EAAIZ,EAAEa,aAAa,CACjCC,IAAK,CAAC,CACJC,OAAO,EAAIb,EAAM1B,WAAW,IAC3B,CACDS,UAAU,EAAIiB,EAAM5B,aACnB,CACD0C,QAAQ,EAAId,EAAMe,UAAU,CAC1BC,OAAQ,CACNpB,MAAO,EACPnD,OAAQ,GAEVwE,SAAU,CACRrB,MAAO,EACPnD,OAAQ,GAEVyE,UAAW,CACTtB,MAAO,GAETuB,sBAAuB,CACrBvB,MAAO,MAGV,CACDwB,OAAO,EAAIpB,EAAMqB,eAAc,IAC9B,CACDC,uBAAuB,EAAItB,EAAM5B,aAChC,CACDmD,YAAY,EAAIvB,EAAM5B,gBAEvB,SAAUpB,GACX,IAAI6D,GAAQ,EAAIb,EAAMwB,WAAW,EAArB,CAAwBxE,GACpC,OAAoB,KAAb6D,EAAM,IAA4B,MAAbA,EAAM,MAGhCY,GAAc,EAAI3B,EAAEa,aAAa,CACnCe,MAAO,CAAC,CACNC,MAAM,EAAI3B,EAAM5B,aACf,CACDwD,WAAY,CAAC,CACXC,MAAM,EAAI7B,EAAMqB,eAAc,IAC7B,CACDS,KAAK,EAAI9B,EAAMqB,eAAc,IAC5B,CACDU,OAAO,EAAI/B,EAAMqB,eAAc,IAC9B,CACDW,QAAQ,EAAIhC,EAAMqB,eAAc,IAC/B,CACDY,KAAK,EAAIjC,EAAMe,UAAU,CACvBmB,OAAQ,CACNtC,MAAO,GAETuC,WAAY,CACVvC,MAAO,GAETwC,KAAM,CACJxC,MAAO,GAEToB,OAAQ,CACNpB,MAAO,EACPnD,OAAQ,GAEV6D,KAAM,CACJV,MAAO,EACPnD,OAAQ,SAIb,EAAIqD,EAAEa,aAAa,CACpBsB,KAAK,EAAIjC,EAAMqC,WAAW,GAAG,SAAUrF,EAAQE,EAAQE,GACrD,OAAOqC,KAAKC,IAAI,EAAGtC,EAAOwE,WAAWK,IAAI3B,KAAO,QAEjD,SAAUtD,EAAQE,EAAQE,GAC3B,OAAOA,EAAOwE,WAAWK,IAAIC,UAC3B,CACF/D,KAAM,CAAC,CACLmE,aAAa,EAAItC,EAAM5B,aACtB8B,OAEJ,SAAUlD,GACX,OAAyC,MAAlC,EAAIgD,EAAMuC,WAAV,CAAsBvF,MAG3BwF,GAAa,EAAI1C,EAAEa,aAAa,CAClC8B,KAAM,CAAC,CACL5B,OAAO,EAAIb,EAAM1B,WAAW,IAC3B,CACDoE,WAAW,EAAI1C,EAAM5B,aACpB,CACDuE,QAAS,SAAiB3F,EAAQE,EAAQE,GACxC,OAAO,EAAI4C,EAAM1B,WAAWlB,EAAOqF,KAAKC,UAAjC,CAA4C1F,KAEpDkD,KACF,SAAUlD,GACX,IAAI6D,GAAQ,EAAIb,EAAMwB,WAAW,EAArB,CAAwBxE,GACpC,OAAoB,KAAb6D,EAAM,IAA4B,IAAbA,EAAM,MAGhC+B,GAAoB,EAAI9C,EAAEa,aAAa,CACzCkC,YAAa,CAAC,CACZhC,OAAO,EAAIb,EAAM1B,WAAW,IAC3B,CACDoE,WAAW,EAAI1C,EAAM5B,aACpB,CACD0E,GAAI,SAAY9F,EAAQE,EAAQE,GAC9B,OAAO,EAAI4C,EAAM+C,YAAY3F,EAAOsF,UAA7B,CAAwC1F,KAEhDkD,KACF,SAAUlD,GACX,IAAI6D,GAAQ,EAAIb,EAAMwB,WAAW,EAArB,CAAwBxE,GACpC,OAAoB,KAAb6D,EAAM,IAA4B,MAAbA,EAAM,MAGhCmC,GAAgB,EAAIlD,EAAEa,aAAa,CACrCsC,QAAS,CAAC,CACRpC,OAAO,EAAIb,EAAM1B,WAAW,IAC3B4B,KACF,SAAUlD,GACX,IAAI6D,GAAQ,EAAIb,EAAMwB,WAAW,EAArB,CAAwBxE,GACpC,OAAoB,KAAb6D,EAAM,IAA4B,MAAbA,EAAM,MAoDhCqC,EAlDS,CAAC,CACZC,OAAQ,CAAC,CACPC,WAAW,EAAIpD,EAAM+C,YAAY,IAChC,CACDM,SAAS,EAAIrD,EAAM+C,YAAY,MAEhC,CACDO,IAAK,CAAC,CACJvB,OAAO,EAAI/B,EAAMqB,eAAc,IAC9B,CACDW,QAAQ,EAAIhC,EAAMqB,eAAc,IAC/B,CACDkC,KAAK,EAAIvD,EAAMe,UAAU,CACvBmB,OAAQ,CACNtC,MAAO,GAET4D,WAAY,CACV5D,MAAO,EACPnD,OAAQ,GAEV2F,KAAM,CACJxC,MAAO,GAETU,KAAM,CACJV,MAAO,EACPnD,OAAQ,MAGX,CACDgH,sBAAsB,EAAIzD,EAAM5B,aAC/B,CACDsF,kBAAkB,EAAI1D,EAAM5B,gBAE7B,EAAI0B,EAAEa,aAAa,CACpB4C,KAAK,EAAIvD,EAAMqC,WAAW,GAAG,SAAUrF,EAAQE,GAC7C,OAAOuC,KAAKC,IAAI,EAAGxC,EAAOoG,IAAIC,IAAIjD,KAAO,QAE1C,SAAUtD,EAAQE,GACnB,OAAOA,EAAOoG,IAAIC,IAAIrB,UAExB,CACEyB,QAAQ,EAAI7D,EAAE8D,MAAM,CAAClD,EAAWkC,EAAmBI,EAAevB,EAAae,IAAa,SAAUxF,GACpG,IAAI6G,GAAW,EAAI7D,EAAMuC,WAAV,CAAsBvF,GAKrC,OAAoB,KAAb6G,GAAkC,KAAbA,OAIhChE,EAAiB,QAAIqD,eCxNrBxH,OAAOkB,eAAekH,EAAS,aAAc,CAC3ChH,OAAO,uBAEa,gBAKJ,SAAqBiH,EAAQhC,GAc7C,IAbA,IAAIiC,EAAY,IAAInI,MAAMkI,EAAOtH,QAC7BwH,EAAOF,EAAOtH,OAASsF,EAEvBmC,EAAQ,SAAeC,EAAOC,GAChC,IAAIC,EAAaN,EAAOO,MAAMF,EAAUrC,GAAQqC,EAAU,GAAKrC,GAC/DiC,EAAUO,OAAO7H,MAAMsH,EAAW,CAACG,EAAQpC,EAAOA,GAAOyC,OAAOH,KAI9DI,EAAU,CAAC,EAAG,EAAG,EAAG,GACpBC,EAAQ,CAAC,EAAG,EAAG,EAAG,GAClBN,EAAU,EAELO,EAAO,EAAGA,EAAO,EAAGA,IAC3B,IAAK,IAAIR,EAAQM,EAAQE,GAAOR,EAAQF,EAAME,GAASO,EAAMC,GAC3DT,EAAMC,EAAOC,GACbA,IAIJ,OAAOJ,YC7BTtI,OAAOkB,eAAegI,EAAS,aAAc,CAC3C9H,OAAO,eAEK,QAMJ,SAAawF,EAAanE,EAAM0G,GACxC,IAGIC,EAAWC,EAAOC,EAAWC,EAAWC,EAAoBC,EAASC,EAAgBzD,EAAMrF,EAAU+I,EAoBrGC,EAAOlG,EAAamG,EAAOzD,EAAK0D,EAAIC,EAvBpCC,EAAiB,KAEjBC,EAAOd,EAEPe,EAAY,IAAI/J,MAAMgJ,GACtBgB,EAAS,IAAIhK,MAAM6J,GACnBI,EAAS,IAAIjK,MAAM6J,GACnBK,EAAa,IAAIlK,MAAM6J,MAU3B,IANAR,GADAH,EAAQ,IADRM,EAAY/C,IAEiB,EAC7BwC,EAAYC,EAAQ,EACpBK,GAZe,EAcfJ,GAAa,IADbC,EAAYI,EAAY,IACO,EAE1B1D,EAAO,EAAGA,EAAOoD,EAAOpD,IAC3BkE,EAAOlE,GAAQ,EACfmE,EAAOnE,GAAQA,EAOjB,IAFA2D,EAAQlG,EAAemG,EAAQzD,EAAM0D,EAAKC,EAAK,EAE1CnJ,EAAI,EAAGA,EAAIqJ,GAAO,CACrB,GAAY,IAAR7D,EAAW,CACb,GAAI1C,EAAO6F,EAAW,CAEpBK,GAASnH,EAAKsH,IAAOrG,EACrBA,GAAQ,EACRqG,IACA,SAQF,GAJA9D,EAAO2D,EAAQN,EACfM,IAAUL,EACV7F,GAAQ6F,EAEJtD,EAAOmD,GAAanD,GAAQuD,EAC9B,MAGF,GAAIvD,GAAQoD,EAAO,CAGjBC,GAAa,IADbC,EAAYI,EAAY,IACO,EAC/BP,EAAYC,EAAQ,EACpBK,GAjDS,EAkDT,SAGF,IArDW,GAqDPA,EAAsB,CACxBW,EAAWjE,KAASgE,EAAOnE,GAC3ByD,EAAWzD,EACX4D,EAAQ5D,EACR,SAUF,IAPAwD,EAAUxD,EAENA,GAAQmD,IACViB,EAAWjE,KAASyD,EACpB5D,EAAOyD,GAGFzD,EAAOoD,GACZgB,EAAWjE,KAASgE,EAAOnE,GAC3BA,EAAOkE,EAAOlE,GAGhB4D,EAAuB,IAAfO,EAAOnE,GACfoE,EAAWjE,KAASyD,EAIhBT,EAAYY,IACdG,EAAOf,GAAaM,EACpBU,EAAOhB,GAAaS,EAGY,MAFhCT,EAEiBE,IAAoBF,EAAYY,IAC/CT,IACAD,GAAaF,IAIjBM,EAAWD,EAIbrD,IACA8D,EAAUJ,KAAQO,EAAWjE,GAC7BxF,IAGF,IAAKA,EAAIkJ,EAAIlJ,EAAIqJ,EAAMrJ,IACrBsJ,EAAUtJ,GAAK,EAGjB,OAAOsJ,GChHTlK,OAAOkB,eAAeC,EAAS,aAAc,CAC3CC,OAAO,IAET,IAYgCkJ,yCAZqBC,kBAAmB,EAEpEC,GAU4BF,EAVEjG,IAUmBiG,EAAIG,WAAaH,EAAM,CAAEI,QAAWJ,GARrFK,EAAwBpG,EAExBD,EAAQsG,EAERC,EAAeC,EAEfC,EAAOC,EAIX,iBAAe,SAAkBC,GAC/B,IAAIC,EAAW,IAAIpG,WAAWmG,GAC9B,OAAO,EAAIN,EAAsBtJ,QAAO,EAAIiD,EAAM6G,aAAaD,GAAWV,EAAc,UAsBtFY,EAAkB,SAAyBC,EAAOxD,EAAKyD,GACzD,GAAKD,EAAMrF,MAAX,CAKA,IAAIA,EAAQqF,EAAMrF,MAEduF,EAAcvF,EAAME,WAAWG,MAAQL,EAAME,WAAWI,OAExD+B,GAAS,EAAI0C,EAAKS,KAAKxF,EAAMvD,KAAKmE,YAAaZ,EAAMvD,KAAKgC,OAAQ8G,GAElEvF,EAAME,WAAWK,IAAIE,aACvB4B,GAAS,EAAIwC,EAAaY,aAAapD,EAAQrC,EAAME,WAAWG,QAGlE,IAAIqF,EAAc,CAChBrD,OAAQA,EACRsD,KAAM,CACJvF,IAAKiF,EAAMrF,MAAME,WAAWE,IAC5BD,KAAMkF,EAAMrF,MAAME,WAAWC,KAC7BE,MAAOgF,EAAMrF,MAAME,WAAWG,MAC9BC,OAAQ+E,EAAMrF,MAAME,WAAWI,SA0BnC,OAtBIN,EAAME,WAAWK,KAAOP,EAAME,WAAWK,IAAIC,OAC/CkF,EAAYE,WAAa5F,EAAMO,IAE/BmF,EAAYE,WAAa/D,EAIvBwD,EAAMnG,MACRwG,EAAYhG,MAAkC,IAAzB2F,EAAMnG,IAAIQ,OAAS,IAExCgG,EAAYG,aAAeR,EAAMnG,IAAIE,OAAOG,SAExC8F,EAAMnG,IAAIE,OAAOK,wBACnBiG,EAAYI,iBAAmBT,EAAMnG,IAAIU,wBAKzC0F,IACFI,EAAYK,MA9DI,SAAuB/F,GAIzC,IAHA,IAAIuF,EAAcvF,EAAMqC,OAAOtH,OAC3BiL,EAAY,IAAIC,kBAAgC,EAAdV,GAE7B3K,EAAI,EAAGA,EAAI2K,EAAa3K,IAAK,CACpC,IAAIwB,EAAU,EAAJxB,EACNsL,EAAalG,EAAMqC,OAAOzH,GAC1BuL,EAAQnG,EAAM4F,WAAWM,IAAe,CAAC,EAAG,EAAG,GACnDF,EAAU5J,GAAO+J,EAAM,GACvBH,EAAU5J,EAAM,GAAK+J,EAAM,GAC3BH,EAAU5J,EAAM,GAAK+J,EAAM,GAC3BH,EAAU5J,EAAM,GAAK8J,IAAelG,EAAM8F,iBAAmB,IAAM,EAGrE,OAAOE,EAgDeI,CAAcV,IAG7BA,sBAGiBN,EAU1BiB,qBARuB,SAA0BC,EAAWC,GAC1D,OAAOD,EAAUrE,OAAOuE,QAAO,SAAUC,GACvC,OAAOA,EAAEzG,SACRjD,KAAI,SAAU0J,GACf,OAAOrB,EAAgBqB,EAAGH,EAAUzE,IAAK0E,yBCsKzC,WAAYtE,EAAuByE,GAAnC,WAGUC,EAAwC3M,OAAOS,OAAO,GACxDmM,EAAYC,eACZH,GAFII,cAAWzG,UAAOC,WAAWyG,EPnOtC,SAAgBpM,EAAGqM,GACtB,IAAItM,EAAI,GACR,IAAK,IAAIN,KAAKO,EAAOX,OAAOK,UAAUC,eAAeC,KAAKI,EAAGP,IAAM4M,EAAEC,QAAQ7M,GAAK,IAC9EM,EAAEN,GAAKO,EAAEP,IACb,GAAS,MAALO,GAAqD,mBAAjCX,OAAOkN,sBACtB,CAAA,IAAItM,EAAI,EAAb,IAAgBR,EAAIJ,OAAOkN,sBAAsBvM,GAAIC,EAAIR,EAAEW,OAAQH,IAC3DoM,EAAEC,QAAQ7M,EAAEQ,IAAM,GAAKZ,OAAOK,UAAU8M,qBAAqB5M,KAAKI,EAAGP,EAAEQ,MACvEF,EAAEN,EAAEQ,IAAMD,EAAEP,EAAEQ,KAE1B,OAAOF,KO0NG,gCAMA0M,EAASC,SAASC,cAAc,UAChCC,EAAUH,EAAOI,WAAW,aAElCJ,EAAO/G,MAAQA,EACf+G,EAAO9G,OAASA,KAEhBmH,YAAMC,UAAQ5K,KAAKsK,EAAQ,CAAEN,sBAExBa,SAAW1F,EAAOA,EAAOlH,OAAS,GAAG6M,IAC1CC,EAAKC,QAAU7F,EACf4F,EAAKE,SAAWR,EAChBM,EAAKG,UAAW,EAChBH,EAAKI,aAAe,EACpBJ,EAAKK,sBAAuB,EAC5BlO,OAAOS,OAAOoN,EAAMd,GAGpBc,EAAKM,aAAe,EAChBN,EAAKO,UAELP,EAAKQ,SA4PjB,OP5gBO,SAAmBvO,EAAGC,GACzB,GAAiB,mBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAIuO,UAAU,uBAAyBtL,OAAOjD,GAAK,iCAE7D,SAASwO,IAAOtN,KAAKuN,YAAc1O,EADnCD,EAAcC,EAAGC,GAEjBD,EAAEO,UAAkB,OAANN,EAAaC,OAAOyO,OAAO1O,IAAMwO,EAAGlO,UAAYN,EAAEM,UAAW,IAAIkO,GOqCzDG,MAkHf9B,aAAP,SAAkB+B,EAAqBjC,GAEnC,IAAKiC,GAAgC,IAAtBA,EAAOC,WAElB,MAAM,IAAIC,MAAM,kBAIpB,IAgBMC,EAAMC,EAASJ,IAhBE,SAACG,GAIpB,UAFIE,EAAa,SAEGC,EAAAH,EAAI7G,OAAJiH,WAAAA,IACpB,CADK,IAAM7D,OAEP2D,YAAa3D,EAAMnG,mBAAO8J,EAGtB,UAAW3D,KAAW,QAASA,KAE/BA,EAAMnG,IAAM8J,IAOxBG,CAAeL,GACf,IAAMM,EAAYC,EAAiBP,GAAK,GAClC7G,EAAwB,GAGxBmF,EAASC,SAASC,cAAc,UAChCC,EAAUH,EAAOI,WAAW,MAC5B8B,EAAcjC,SAASC,cAAc,UACrCiC,EAAeD,EAAY9B,WAAW,MAE5CJ,EAAO/G,MAAQyI,EAAIlH,IAAIvB,MACvB+G,EAAO9G,OAASwI,EAAIlH,IAAItB,OASxB,IAPA,IAAIkJ,EAAO,EAILC,EAAe,IADLzP,OAAOS,OAAO,GAAImM,EAAYC,eAAgBH,OAIrD9L,EAAI,EAAGA,EAAIwO,EAAUrO,OAAQH,IACtC,CAEU,IAAA+L,EAAwFyC,EAAUxO,GAAhGqO,iBAAApD,aAAe,IAAG6D,UAAAhK,aAAQ+J,IAAc1D,UAAO4D,SAAQC,UAAOC,WAAQ1J,SAAM2J,QAEpFR,EAAYjJ,MAAQuJ,EACpBN,EAAYhJ,OAASuJ,EACrBN,EAAaQ,UAAU,EAAG,EAAGH,EAAOC,GACpC,IAAM7D,EAAYuD,EAAaS,gBAAgBJ,EAAOC,GAEtD7D,EAAUvJ,KAAKsC,IAAIgH,GACnBwD,EAAaU,aAAajE,EAAW,EAAG,GAExCuB,EAAQ2C,UAAUZ,EAAanJ,EAAM2J,GACrC,IAAMK,EAAY5C,EAAQ6C,aAAa,EAAG,EAAGhD,EAAO/G,MAAO+G,EAAO9G,QAE7C,IAAjBuF,GAAuC,IAAjBA,GAEtB0B,EAAQwC,UAAU,EAAG,EAAG3C,EAAO/G,MAAO+G,EAAO9G,QAGjD2B,EAAO3F,KAAK,CACR+N,MAAOb,EACP5B,IAAK4B,EAAO9J,EACZyK,cAEJX,GAAQ9J,EAIZ0H,EAAO/G,MAAQ+G,EAAO9G,OAAS,EAC/BgJ,EAAYjJ,MAAQiJ,EAAYhJ,OAAS,EACnC,IAAAgK,EAAoBxB,EAAIlH,IAAtBvB,UAAOC,WAEf,OAAO,IAAIsG,EAAY3E,KAAU5B,QAAOC,UAAWoG,KAyChDE,iBAAP,WAES3L,KAAK+M,WAKV/M,KAAK+M,UAAW,EACZ/M,KAAKsP,aAAetP,KAAKiN,uBAEzBsC,SAAOC,OAAOC,OAAOzP,KAAK0P,OAAQ1P,MAClCA,KAAKiN,sBAAuB,KAK7BtB,iBAAP,WAEQ3L,KAAK+M,WAKT/M,KAAK+M,UAAW,EACZ/M,KAAKsP,cAAgBtP,KAAKiN,uBAE1BsC,SAAOC,OAAOG,IAAI3P,KAAK0P,OAAQ1P,KAAM4P,kBAAgBC,MACrD7P,KAAKiN,sBAAuB,GAI3BjN,KAAKiH,MAAQjH,KAAKkN,eAAiBlN,KAAK6M,QAAQ/M,OAAS,IAE1DE,KAAKgN,aAAe,KAQ5BjO,sBAAW4M,4BAAX,WAEI,OAAO3L,KAAKgN,aAAehN,KAAK0M,0CAIpC3N,sBAAW4M,2BAAX,WAEI,OAAO3L,KAAK+M,0CAShBpB,mBAAA,SAAOmE,WAEH,GAAK9P,KAAK+M,SAAV,CAKA,IAAMgD,EAAU/P,KAAKgQ,eAAiBF,EAAYG,WAASC,YACrDC,EAAcnQ,KAAKgN,aAAe+C,EAClCK,EAAYD,EAAcnQ,KAAK0M,SAE/B2D,EAAarQ,KAAK6M,QAAQyD,WAAU,SAAClG,GACvC,OAAAA,EAAMgF,OAASgB,GAAahG,EAAMuC,IAAMyD,KAExCD,GAAenQ,KAAK0M,SAEhB1M,KAAKiH,MAELjH,KAAKgN,aAAeoD,EACpBpQ,KAAKuQ,iBAAiBF,aACtBrQ,KAAKwQ,oCAILxQ,KAAKgN,aAAehN,KAAK0M,SACzB1M,KAAKuQ,iBAAiBvQ,KAAK6M,QAAQ/M,OAAS,aAC5CE,KAAKyQ,sCACLzQ,KAAK0Q,SAKT1Q,KAAKgN,aAAeoD,EACpBpQ,KAAKuQ,iBAAiBF,MAOtB1E,wBAAR,WAEI,GAAK3L,KAAK2Q,MAAV,CAMQ,IAAAzB,EAAclP,KAAK6M,QAAQ7M,KAAK4Q,yBAExC5Q,KAAK8M,SAASkC,aAAaE,EAAW,EAAG,GAKzClP,KAAK8M,SAAS+D,UAAY,cAC1B7Q,KAAK8M,SAASgE,SAAS,EAAG,EAAG,EAAG,GAEhC9Q,KAAK+Q,QAAQrB,SAGb1P,KAAK2Q,OAAQ,IASjBhF,oBAAA,SAAQqF,GAEJhR,KAAKiR,cAELzE,YAAM0E,kBAAQF,IAUlBrF,0BAAA,SAAcqF,GAEVhR,KAAKiR,cAILzE,YAAM2E,wBAAcH,IAOxBjS,sBAAI4M,8BAAJ,WAEI,OAAO3L,KAAKsP,iBAGhB,SAAenP,GAEPA,IAAUH,KAAKsP,cAEftP,KAAKsP,YAAcnP,GAEdH,KAAKsP,aAAetP,KAAKiN,sBAE1BsC,SAAOC,OAAOC,OAAOzP,KAAK0P,OAAQ1P,MAClCA,KAAKiN,sBAAuB,GAEvBjN,KAAKsP,cAAgBtP,KAAKiN,sBAAwBjN,KAAK+M,WAE5DwC,SAAOC,OAAOG,IAAI3P,KAAK0P,OAAQ1P,MAC/BA,KAAKiN,sBAAuB,qCAMxClO,sBAAI4M,gCAAJ,WAEI,OAAO3L,KAAK4Q,mBAEhB,SAAiBzQ,GAEbH,KAAKuQ,iBAAiBpQ,GACtBH,KAAKgN,aAAehN,KAAK6M,QAAQ1M,GAAOiP,uCAIpCzD,6BAAR,SAAyBxL,SAErB,GAAIA,EAAQ,GAAKA,GAASH,KAAK6M,QAAQ/M,OAEnC,MAAM,IAAI8N,MAAM,mDAA4C5N,KAAKoR,6BAAoBjR,IAErFH,KAAK4Q,gBAAkBzQ,IAEvBH,KAAK4Q,cAAgBzQ,EACrBH,KAAK2Q,OAAQ,YACb3Q,KAAKqR,wCAAgBlR,KAO7BpB,sBAAI4M,+BAAJ,WAEI,OAAO3L,KAAK6M,QAAQ/M,wCAIxB6L,oBAAA,WAEI3L,KAAK0Q,OACLlE,YAAM8E,mBAAQ,GACdtR,KAAK8M,SAAW,KAChB9M,KAAK6M,QAAU,KACf7M,KAAKyQ,WAAa,KAClBzQ,KAAKqR,cAAgB,KACrBrR,KAAKwQ,OAAS,MAUlB7E,kBAAA,WAEI,OAAO,IAAIA,EPlXZ,SAAuB4F,EAAI1P,EAAM2P,GACpC,GAAIA,GAA6B,IAArB3R,UAAUC,OAAc,IAAK,IAA4B2R,EAAxB9R,EAAI,EAAG+R,EAAI7P,EAAK/B,OAAYH,EAAI+R,EAAG/R,KACxE8R,GAAQ9R,KAAKkC,IACR4P,IAAIA,EAAKvS,MAAME,UAAUuI,MAAMrI,KAAKuC,EAAM,EAAGlC,IAClD8R,EAAG9R,GAAKkC,EAAKlC,IAGrB,OAAO4R,EAAG1J,OAAO4J,GAAMvS,MAAME,UAAUuI,MAAMrI,KAAKuC,QO2WnB7B,KAAK6M,YAAU,CACtC8E,WAAY3R,KAAKsP,YACjBrI,KAAMjH,KAAKiH,KACXkG,SAAUnN,KAAKmN,SACftB,UAAW7L,KAAK+Q,QAAQa,YAAY/F,UACpCmE,eAAgBhQ,KAAKgQ,eACrB5K,MAAOpF,KAAK8M,SAASX,OAAO/G,MAC5BC,OAAQrF,KAAK8M,SAASX,OAAO9G,OAC7BoL,WAAYzQ,KAAKyQ,WACjBY,cAAerR,KAAKqR,cACpBb,OAAQxQ,KAAKwQ,UAjdP7E,iBAAqC,CAC/CE,UAAWgG,cAAYC,OACvBC,IAAKxC,SAAOC,OAAOwC,IACnB/K,MAAM,EACN+I,eAAgB,EAChB7C,UAAU,EACVwE,YAAY,EACZlB,WAAY,KACZY,cAAe,KACfb,OAAQ,SAvBUyB,UC5DpBC,EAAgB,MAwBhBC,EAAmC,CAErCxC,IAAA,WAEIyC,iBAAeC,oBACXH,EACAE,iBAAeE,kBAAkBC,QAErCH,iBAAeI,qBACXN,EACAE,iBAAeK,UAAUC,MAIjCC,IAAA,SAAIC,EAA0BC,GAEtBD,EAASE,YAAcZ,IAEvBU,EAASG,UAAYpH,EAAYqH,WAAWJ,EAASpR,OAEzDqR"}