Your IP : 172.69.7.233


Current Path : /var/www/element/data/www/revenuestory.ru/bitrix/js/ui/lottie/dist/
Upload File :
Current File : /var/www/element/data/www/revenuestory.ru/bitrix/js/ui/lottie/dist/lottie.bundle.js.map

{"version":3,"file":"lottie.bundle.js","sources":["../src/lottie.js"],"sourcesContent":["/*!\n * Lottie-web v5.9.6\n * Copyright (c) 2015 Bodymovin\n * @license MIT\n *\n * @source: https://unpkg.com/lottie-web@5.9.6/build/player/esm/lottie.min.js\n */\n\n/**\n * Modify list for integration with Bitrix Framework:\n * - remove global export;\n * - replace utf8 symbols in comments for BezierFactory library\n */\n\nconst svgNS = 'http://www.w3.org/2000/svg';\n\nlet locationHref = '';\nlet _useWebWorker = false;\n\nconst initialDefaultFrame = -999999;\n\nconst setWebWorker = (flag) => { _useWebWorker = !!flag; };\nconst getWebWorker = () => _useWebWorker;\n\nconst setLocationHref = (value) => { locationHref = value; };\nconst getLocationHref = () => locationHref;\n\nfunction createTag(type) {\n\t// return {appendChild:function(){},setAttribute:function(){},style:{}}\n\treturn document.createElement(type);\n}\n\nfunction extendPrototype(sources, destination) {\n\tvar i;\n\tvar len = sources.length;\n\tvar sourcePrototype;\n\tfor (i = 0; i < len; i += 1) {\n\t\tsourcePrototype = sources[i].prototype;\n\t\tfor (var attr in sourcePrototype) {\n\t\t\tif (Object.prototype.hasOwnProperty.call(sourcePrototype, attr)) destination.prototype[attr] = sourcePrototype[attr];\n\t\t}\n\t}\n}\n\nfunction getDescriptor(object, prop) {\n\treturn Object.getOwnPropertyDescriptor(object, prop);\n}\n\nfunction createProxyFunction(prototype) {\n\tfunction ProxyFunction() {}\n\tProxyFunction.prototype = prototype;\n\treturn ProxyFunction;\n}\n\n// import Howl from '../../3rd_party/howler';\n\nconst audioControllerFactory = (function () {\n\tfunction AudioController(audioFactory) {\n\t\tthis.audios = [];\n\t\tthis.audioFactory = audioFactory;\n\t\tthis._volume = 1;\n\t\tthis._isMuted = false;\n\t}\n\n\tAudioController.prototype = {\n\t\taddAudio: function (audio) {\n\t\t\tthis.audios.push(audio);\n\t\t},\n\t\tpause: function () {\n\t\t\tvar i;\n\t\t\tvar len = this.audios.length;\n\t\t\tfor (i = 0; i < len; i += 1) {\n\t\t\t\tthis.audios[i].pause();\n\t\t\t}\n\t\t},\n\t\tresume: function () {\n\t\t\tvar i;\n\t\t\tvar len = this.audios.length;\n\t\t\tfor (i = 0; i < len; i += 1) {\n\t\t\t\tthis.audios[i].resume();\n\t\t\t}\n\t\t},\n\t\tsetRate: function (rateValue) {\n\t\t\tvar i;\n\t\t\tvar len = this.audios.length;\n\t\t\tfor (i = 0; i < len; i += 1) {\n\t\t\t\tthis.audios[i].setRate(rateValue);\n\t\t\t}\n\t\t},\n\t\tcreateAudio: function (assetPath) {\n\t\t\tif (this.audioFactory) {\n\t\t\t\treturn this.audioFactory(assetPath);\n\t\t\t} if (window.Howl) {\n\t\t\t\treturn new window.Howl({\n\t\t\t\t\tsrc: [assetPath],\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tisPlaying: false,\n\t\t\t\tplay: function () { this.isPlaying = true; },\n\t\t\t\tseek: function () { this.isPlaying = false; },\n\t\t\t\tplaying: function () {},\n\t\t\t\trate: function () {},\n\t\t\t\tsetVolume: function () {},\n\t\t\t};\n\t\t},\n\t\tsetAudioFactory: function (audioFactory) {\n\t\t\tthis.audioFactory = audioFactory;\n\t\t},\n\t\tsetVolume: function (value) {\n\t\t\tthis._volume = value;\n\t\t\tthis._updateVolume();\n\t\t},\n\t\tmute: function () {\n\t\t\tthis._isMuted = true;\n\t\t\tthis._updateVolume();\n\t\t},\n\t\tunmute: function () {\n\t\t\tthis._isMuted = false;\n\t\t\tthis._updateVolume();\n\t\t},\n\t\tgetVolume: function () {\n\t\t\treturn this._volume;\n\t\t},\n\t\t_updateVolume: function () {\n\t\t\tvar i;\n\t\t\tvar len = this.audios.length;\n\t\t\tfor (i = 0; i < len; i += 1) {\n\t\t\t\tthis.audios[i].volume(this._volume * (this._isMuted ? 0 : 1));\n\t\t\t}\n\t\t},\n\t};\n\n\treturn function () {\n\t\treturn new AudioController();\n\t};\n}());\n\nconst createTypedArray = (function () {\n\tfunction createRegularArray(type, len) {\n\t\tvar i = 0;\n\t\tvar arr = [];\n\t\tvar value;\n\t\tswitch (type) {\n\t\t\tcase 'int16':\n\t\t\tcase 'uint8c':\n\t\t\t\tvalue = 1;\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tvalue = 1.1;\n\t\t\t\tbreak;\n\t\t}\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tarr.push(value);\n\t\t}\n\t\treturn arr;\n\t}\n\tfunction createTypedArrayFactory(type, len) {\n\t\tif (type === 'float32') {\n\t\t\treturn new Float32Array(len);\n\t\t} if (type === 'int16') {\n\t\t\treturn new Int16Array(len);\n\t\t} if (type === 'uint8c') {\n\t\t\treturn new Uint8ClampedArray(len);\n\t\t}\n\t\treturn createRegularArray(type, len);\n\t}\n\tif (typeof Uint8ClampedArray === 'function' && typeof Float32Array === 'function') {\n\t\treturn createTypedArrayFactory;\n\t}\n\treturn createRegularArray;\n}());\n\nfunction createSizedArray(len) {\n\treturn Array.apply(null, { length: len });\n}\n\nlet subframeEnabled = true;\nlet expressionsPlugin = null;\nlet idPrefix$1 = '';\nconst isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\nlet _shouldRoundValues = false;\nconst bmPow = Math.pow;\nconst bmSqrt = Math.sqrt;\nconst bmFloor = Math.floor;\nconst bmMax = Math.max;\nconst bmMin = Math.min;\n\nconst BMMath = {};\n(function () {\n\tvar propertyNames = ['abs', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atanh', 'atan2', 'ceil', 'cbrt', 'expm1', 'clz32', 'cos', 'cosh', 'exp', 'floor', 'fround', 'hypot', 'imul', 'log', 'log1p', 'log2', 'log10', 'max', 'min', 'pow', 'random', 'round', 'sign', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'trunc', 'E', 'LN10', 'LN2', 'LOG10E', 'LOG2E', 'PI', 'SQRT1_2', 'SQRT2'];\n\tvar i;\n\tvar len = propertyNames.length;\n\tfor (i = 0; i < len; i += 1) {\n\t\tBMMath[propertyNames[i]] = Math[propertyNames[i]];\n\t}\n}());\n\nfunction ProjectInterface$1() { return {}; }\nBMMath.random = Math.random;\nBMMath.abs = function (val) {\n\tvar tOfVal = typeof val;\n\tif (tOfVal === 'object' && val.length) {\n\t\tvar absArr = createSizedArray(val.length);\n\t\tvar i;\n\t\tvar len = val.length;\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tabsArr[i] = Math.abs(val[i]);\n\t\t}\n\t\treturn absArr;\n\t}\n\treturn Math.abs(val);\n};\nlet defaultCurveSegments = 150;\nconst degToRads = Math.PI / 180;\nconst roundCorner = 0.5519;\n\nfunction roundValues(flag) {\n\t_shouldRoundValues = !!flag;\n}\n\nfunction bmRnd(value) {\n\tif (_shouldRoundValues) {\n\t\treturn Math.round(value);\n\t}\n\treturn value;\n}\n\nfunction styleDiv(element) {\n\telement.style.position = 'absolute';\n\telement.style.top = 0;\n\telement.style.left = 0;\n\telement.style.display = 'block';\n\telement.style.transformOrigin = '0 0';\n\telement.style.webkitTransformOrigin = '0 0';\n\telement.style.backfaceVisibility = 'visible';\n\telement.style.webkitBackfaceVisibility = 'visible';\n\telement.style.transformStyle = 'preserve-3d';\n\telement.style.webkitTransformStyle = 'preserve-3d';\n\telement.style.mozTransformStyle = 'preserve-3d';\n}\n\nfunction BMEnterFrameEvent(type, currentTime, totalTime, frameMultiplier) {\n\tthis.type = type;\n\tthis.currentTime = currentTime;\n\tthis.totalTime = totalTime;\n\tthis.direction = frameMultiplier < 0 ? -1 : 1;\n}\n\nfunction BMCompleteEvent(type, frameMultiplier) {\n\tthis.type = type;\n\tthis.direction = frameMultiplier < 0 ? -1 : 1;\n}\n\nfunction BMCompleteLoopEvent(type, totalLoops, currentLoop, frameMultiplier) {\n\tthis.type = type;\n\tthis.currentLoop = currentLoop;\n\tthis.totalLoops = totalLoops;\n\tthis.direction = frameMultiplier < 0 ? -1 : 1;\n}\n\nfunction BMSegmentStartEvent(type, firstFrame, totalFrames) {\n\tthis.type = type;\n\tthis.firstFrame = firstFrame;\n\tthis.totalFrames = totalFrames;\n}\n\nfunction BMDestroyEvent(type, target) {\n\tthis.type = type;\n\tthis.target = target;\n}\n\nfunction BMRenderFrameErrorEvent(nativeError, currentTime) {\n\tthis.type = 'renderFrameError';\n\tthis.nativeError = nativeError;\n\tthis.currentTime = currentTime;\n}\n\nfunction BMConfigErrorEvent(nativeError) {\n\tthis.type = 'configError';\n\tthis.nativeError = nativeError;\n}\n\nfunction BMAnimationConfigErrorEvent(type, nativeError) {\n\tthis.type = type;\n\tthis.nativeError = nativeError;\n}\n\nconst createElementID = (function () {\n\tvar _count = 0;\n\treturn function createID() {\n\t\t_count += 1;\n\t\treturn idPrefix$1 + '__lottie_element_' + _count;\n\t};\n}());\n\nfunction HSVtoRGB(h, s, v) {\n\tvar r;\n\tvar g;\n\tvar b;\n\tvar i;\n\tvar f;\n\tvar p;\n\tvar q;\n\tvar t;\n\ti = Math.floor(h * 6);\n\tf = h * 6 - i;\n\tp = v * (1 - s);\n\tq = v * (1 - f * s);\n\tt = v * (1 - (1 - f) * s);\n\tswitch (i % 6) {\n\t\tcase 0: r = v; g = t; b = p; break;\n\t\tcase 1: r = q; g = v; b = p; break;\n\t\tcase 2: r = p; g = v; b = t; break;\n\t\tcase 3: r = p; g = q; b = v; break;\n\t\tcase 4: r = t; g = p; b = v; break;\n\t\tcase 5: r = v; g = p; b = q; break;\n\t\tdefault: break;\n\t}\n\treturn [r,\n\t\tg,\n\t\tb];\n}\n\nfunction RGBtoHSV(r, g, b) {\n\tvar max = Math.max(r, g, b);\n\tvar min = Math.min(r, g, b);\n\tvar d = max - min;\n\tvar h;\n\tvar s = (max === 0 ? 0 : d / max);\n\tvar v = max / 255;\n\n\tswitch (max) {\n\t\tcase min: h = 0; break;\n\t\tcase r: h = (g - b) + d * (g < b ? 6 : 0); h /= 6 * d; break;\n\t\tcase g: h = (b - r) + d * 2; h /= 6 * d; break;\n\t\tcase b: h = (r - g) + d * 4; h /= 6 * d; break;\n\t\tdefault: break;\n\t}\n\n\treturn [\n\t\th,\n\t\ts,\n\t\tv,\n\t];\n}\n\nfunction addSaturationToRGB(color, offset) {\n\tvar hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n\thsv[1] += offset;\n\tif (hsv[1] > 1) {\n\t\thsv[1] = 1;\n\t} else if (hsv[1] <= 0) {\n\t\thsv[1] = 0;\n\t}\n\treturn HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n}\n\nfunction addBrightnessToRGB(color, offset) {\n\tvar hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n\thsv[2] += offset;\n\tif (hsv[2] > 1) {\n\t\thsv[2] = 1;\n\t} else if (hsv[2] < 0) {\n\t\thsv[2] = 0;\n\t}\n\treturn HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n}\n\nfunction addHueToRGB(color, offset) {\n\tvar hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n\thsv[0] += offset / 360;\n\tif (hsv[0] > 1) {\n\t\thsv[0] -= 1;\n\t} else if (hsv[0] < 0) {\n\t\thsv[0] += 1;\n\t}\n\treturn HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n}\n\nconst rgbToHex = (function () {\n\tvar colorMap = [];\n\tvar i;\n\tvar hex;\n\tfor (i = 0; i < 256; i += 1) {\n\t\thex = i.toString(16);\n\t\tcolorMap[i] = hex.length === 1 ? '0' + hex : hex;\n\t}\n\n\treturn function (r, g, b) {\n\t\tif (r < 0) {\n\t\t\tr = 0;\n\t\t}\n\t\tif (g < 0) {\n\t\t\tg = 0;\n\t\t}\n\t\tif (b < 0) {\n\t\t\tb = 0;\n\t\t}\n\t\treturn '#' + colorMap[r] + colorMap[g] + colorMap[b];\n\t};\n}());\n\nconst setSubframeEnabled = (flag) => { subframeEnabled = !!flag; };\nconst getSubframeEnabled = () => subframeEnabled;\nconst setExpressionsPlugin = (value) => { expressionsPlugin = value; };\nconst getExpressionsPlugin = () => expressionsPlugin;\nconst setDefaultCurveSegments = (value) => { defaultCurveSegments = value; };\nconst getDefaultCurveSegments = () => defaultCurveSegments;\nconst setIdPrefix = (value) => { idPrefix$1 = value; };\nconst getIdPrefix = () => idPrefix$1;\n\nfunction createNS(type) {\n\t// return {appendChild:function(){},setAttribute:function(){},style:{}}\n\treturn document.createElementNS(svgNS, type);\n}\n\nconst dataManager = (function () {\n\tvar _counterId = 1;\n\tvar processes = [];\n\tvar workerFn;\n\tvar workerInstance;\n\tvar workerProxy = {\n\t\tonmessage: function () {\n\n\t\t},\n\t\tpostMessage: function (path) {\n\t\t\tworkerFn({\n\t\t\t\tdata: path,\n\t\t\t});\n\t\t},\n\t};\n\tvar _workerSelf = {\n\t\tpostMessage: function (data) {\n\t\t\tworkerProxy.onmessage({\n\t\t\t\tdata: data,\n\t\t\t});\n\t\t},\n\t};\n\tfunction createWorker(fn) {\n\t\tif (window.Worker && window.Blob && getWebWorker()) {\n\t\t\tvar blob = new Blob(['var _workerSelf = self; self.onmessage = ', fn.toString()], { type: 'text/javascript' });\n\t\t\t// var blob = new Blob(['self.onmessage = ', fn.toString()], { type: 'text/javascript' });\n\t\t\tvar url = URL.createObjectURL(blob);\n\t\t\treturn new Worker(url);\n\t\t}\n\t\tworkerFn = fn;\n\t\treturn workerProxy;\n\t}\n\n\tfunction setupWorker() {\n\t\tif (!workerInstance) {\n\t\t\tworkerInstance = createWorker(function workerStart(e) {\n\t\t\t\tfunction dataFunctionManager() {\n\t\t\t\t\tfunction completeLayers(layers, comps) {\n\t\t\t\t\t\tvar layerData;\n\t\t\t\t\t\tvar i;\n\t\t\t\t\t\tvar len = layers.length;\n\t\t\t\t\t\tvar j;\n\t\t\t\t\t\tvar jLen;\n\t\t\t\t\t\tvar k;\n\t\t\t\t\t\tvar kLen;\n\t\t\t\t\t\tfor (i = 0; i < len; i += 1) {\n\t\t\t\t\t\t\tlayerData = layers[i];\n\t\t\t\t\t\t\tif (('ks' in layerData) && !layerData.completed) {\n\t\t\t\t\t\t\t\tlayerData.completed = true;\n\t\t\t\t\t\t\t\tif (layerData.tt) {\n\t\t\t\t\t\t\t\t\tlayers[i - 1].td = layerData.tt;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif (layerData.hasMask) {\n\t\t\t\t\t\t\t\t\tvar maskProps = layerData.masksProperties;\n\t\t\t\t\t\t\t\t\tjLen = maskProps.length;\n\t\t\t\t\t\t\t\t\tfor (j = 0; j < jLen; j += 1) {\n\t\t\t\t\t\t\t\t\t\tif (maskProps[j].pt.k.i) {\n\t\t\t\t\t\t\t\t\t\t\tconvertPathsToAbsoluteValues(maskProps[j].pt.k);\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\tkLen = maskProps[j].pt.k.length;\n\t\t\t\t\t\t\t\t\t\t\tfor (k = 0; k < kLen; k += 1) {\n\t\t\t\t\t\t\t\t\t\t\t\tif (maskProps[j].pt.k[k].s) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tconvertPathsToAbsoluteValues(maskProps[j].pt.k[k].s[0]);\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tif (maskProps[j].pt.k[k].e) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tconvertPathsToAbsoluteValues(maskProps[j].pt.k[k].e[0]);\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif (layerData.ty === 0) {\n\t\t\t\t\t\t\t\t\tlayerData.layers = findCompLayers(layerData.refId, comps);\n\t\t\t\t\t\t\t\t\tcompleteLayers(layerData.layers, comps);\n\t\t\t\t\t\t\t\t} else if (layerData.ty === 4) {\n\t\t\t\t\t\t\t\t\tcompleteShapes(layerData.shapes);\n\t\t\t\t\t\t\t\t} else if (layerData.ty === 5) {\n\t\t\t\t\t\t\t\t\tcompleteText(layerData);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tfunction completeChars(chars, assets) {\n\t\t\t\t\t\tif (chars) {\n\t\t\t\t\t\t\tvar i = 0;\n\t\t\t\t\t\t\tvar len = chars.length;\n\t\t\t\t\t\t\tfor (i = 0; i < len; i += 1) {\n\t\t\t\t\t\t\t\tif (chars[i].t === 1) {\n\t\t\t\t\t\t\t\t\t// var compData = findComp(chars[i].data.refId, assets);\n\t\t\t\t\t\t\t\t\tchars[i].data.layers = findCompLayers(chars[i].data.refId, assets);\n\t\t\t\t\t\t\t\t\t// chars[i].data.ip = 0;\n\t\t\t\t\t\t\t\t\t// chars[i].data.op = 99999;\n\t\t\t\t\t\t\t\t\t// chars[i].data.st = 0;\n\t\t\t\t\t\t\t\t\t// chars[i].data.sr = 1;\n\t\t\t\t\t\t\t\t\t// chars[i].w = compData.w;\n\t\t\t\t\t\t\t\t\t// chars[i].data.ks = {\n\t\t\t\t\t\t\t\t\t//   a: { k: [0, 0, 0], a: 0 },\n\t\t\t\t\t\t\t\t\t//   p: { k: [0, -compData.h, 0], a: 0 },\n\t\t\t\t\t\t\t\t\t//   r: { k: 0, a: 0 },\n\t\t\t\t\t\t\t\t\t//   s: { k: [100, 100], a: 0 },\n\t\t\t\t\t\t\t\t\t//   o: { k: 100, a: 0 },\n\t\t\t\t\t\t\t\t\t// };\n\t\t\t\t\t\t\t\t\tcompleteLayers(chars[i].data.layers, assets);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tfunction findComp(id, comps) {\n\t\t\t\t\t\tvar i = 0;\n\t\t\t\t\t\tvar len = comps.length;\n\t\t\t\t\t\twhile (i < len) {\n\t\t\t\t\t\t\tif (comps[i].id === id) {\n\t\t\t\t\t\t\t\treturn comps[i];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\ti += 1;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\n\t\t\t\t\tfunction findCompLayers(id, comps) {\n\t\t\t\t\t\tvar comp = findComp(id, comps);\n\t\t\t\t\t\tif (comp) {\n\t\t\t\t\t\t\tif (!comp.layers.__used) {\n\t\t\t\t\t\t\t\tcomp.layers.__used = true;\n\t\t\t\t\t\t\t\treturn comp.layers;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn JSON.parse(JSON.stringify(comp.layers));\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\n\t\t\t\t\tfunction completeShapes(arr) {\n\t\t\t\t\t\tvar i;\n\t\t\t\t\t\tvar len = arr.length;\n\t\t\t\t\t\tvar j;\n\t\t\t\t\t\tvar jLen;\n\t\t\t\t\t\tfor (i = len - 1; i >= 0; i -= 1) {\n\t\t\t\t\t\t\tif (arr[i].ty === 'sh') {\n\t\t\t\t\t\t\t\tif (arr[i].ks.k.i) {\n\t\t\t\t\t\t\t\t\tconvertPathsToAbsoluteValues(arr[i].ks.k);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tjLen = arr[i].ks.k.length;\n\t\t\t\t\t\t\t\t\tfor (j = 0; j < jLen; j += 1) {\n\t\t\t\t\t\t\t\t\t\tif (arr[i].ks.k[j].s) {\n\t\t\t\t\t\t\t\t\t\t\tconvertPathsToAbsoluteValues(arr[i].ks.k[j].s[0]);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tif (arr[i].ks.k[j].e) {\n\t\t\t\t\t\t\t\t\t\t\tconvertPathsToAbsoluteValues(arr[i].ks.k[j].e[0]);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if (arr[i].ty === 'gr') {\n\t\t\t\t\t\t\t\tcompleteShapes(arr[i].it);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tfunction convertPathsToAbsoluteValues(path) {\n\t\t\t\t\t\tvar i;\n\t\t\t\t\t\tvar len = path.i.length;\n\t\t\t\t\t\tfor (i = 0; i < len; i += 1) {\n\t\t\t\t\t\t\tpath.i[i][0] += path.v[i][0];\n\t\t\t\t\t\t\tpath.i[i][1] += path.v[i][1];\n\t\t\t\t\t\t\tpath.o[i][0] += path.v[i][0];\n\t\t\t\t\t\t\tpath.o[i][1] += path.v[i][1];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tfunction checkVersion(minimum, animVersionString) {\n\t\t\t\t\t\tvar animVersion = animVersionString ? animVersionString.split('.') : [100, 100, 100];\n\t\t\t\t\t\tif (minimum[0] > animVersion[0]) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t} if (animVersion[0] > minimum[0]) {\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (minimum[1] > animVersion[1]) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t} if (animVersion[1] > minimum[1]) {\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (minimum[2] > animVersion[2]) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t} if (animVersion[2] > minimum[2]) {\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\n\t\t\t\t\tvar checkText = (function () {\n\t\t\t\t\t\tvar minimumVersion = [4, 4, 14];\n\n\t\t\t\t\t\tfunction updateTextLayer(textLayer) {\n\t\t\t\t\t\t\tvar documentData = textLayer.t.d;\n\t\t\t\t\t\t\ttextLayer.t.d = {\n\t\t\t\t\t\t\t\tk: [\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\ts: documentData,\n\t\t\t\t\t\t\t\t\t\tt: 0,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tfunction iterateLayers(layers) {\n\t\t\t\t\t\t\tvar i;\n\t\t\t\t\t\t\tvar len = layers.length;\n\t\t\t\t\t\t\tfor (i = 0; i < len; i += 1) {\n\t\t\t\t\t\t\t\tif (layers[i].ty === 5) {\n\t\t\t\t\t\t\t\t\tupdateTextLayer(layers[i]);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn function (animationData) {\n\t\t\t\t\t\t\tif (checkVersion(minimumVersion, animationData.v)) {\n\t\t\t\t\t\t\t\titerateLayers(animationData.layers);\n\t\t\t\t\t\t\t\tif (animationData.assets) {\n\t\t\t\t\t\t\t\t\tvar i;\n\t\t\t\t\t\t\t\t\tvar len = animationData.assets.length;\n\t\t\t\t\t\t\t\t\tfor (i = 0; i < len; i += 1) {\n\t\t\t\t\t\t\t\t\t\tif (animationData.assets[i].layers) {\n\t\t\t\t\t\t\t\t\t\t\titerateLayers(animationData.assets[i].layers);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\t\t\t\t\t}());\n\n\t\t\t\t\tvar checkChars = (function () {\n\t\t\t\t\t\tvar minimumVersion = [4, 7, 99];\n\t\t\t\t\t\treturn function (animationData) {\n\t\t\t\t\t\t\tif (animationData.chars && !checkVersion(minimumVersion, animationData.v)) {\n\t\t\t\t\t\t\t\tvar i;\n\t\t\t\t\t\t\t\tvar len = animationData.chars.length;\n\t\t\t\t\t\t\t\tfor (i = 0; i < len; i += 1) {\n\t\t\t\t\t\t\t\t\tvar charData = animationData.chars[i];\n\t\t\t\t\t\t\t\t\tif (charData.data && charData.data.shapes) {\n\t\t\t\t\t\t\t\t\t\tcompleteShapes(charData.data.shapes);\n\t\t\t\t\t\t\t\t\t\tcharData.data.ip = 0;\n\t\t\t\t\t\t\t\t\t\tcharData.data.op = 99999;\n\t\t\t\t\t\t\t\t\t\tcharData.data.st = 0;\n\t\t\t\t\t\t\t\t\t\tcharData.data.sr = 1;\n\t\t\t\t\t\t\t\t\t\tcharData.data.ks = {\n\t\t\t\t\t\t\t\t\t\t\tp: { k: [0, 0], a: 0 },\n\t\t\t\t\t\t\t\t\t\t\ts: { k: [100, 100], a: 0 },\n\t\t\t\t\t\t\t\t\t\t\ta: { k: [0, 0], a: 0 },\n\t\t\t\t\t\t\t\t\t\t\tr: { k: 0, a: 0 },\n\t\t\t\t\t\t\t\t\t\t\to: { k: 100, a: 0 },\n\t\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\t\tif (!animationData.chars[i].t) {\n\t\t\t\t\t\t\t\t\t\t\tcharData.data.shapes.push(\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\tty: 'no',\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\tcharData.data.shapes[0].it.push(\n\t\t\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t\t\tp: { k: [0, 0], a: 0 },\n\t\t\t\t\t\t\t\t\t\t\t\t\ts: { k: [100, 100], a: 0 },\n\t\t\t\t\t\t\t\t\t\t\t\t\ta: { k: [0, 0], a: 0 },\n\t\t\t\t\t\t\t\t\t\t\t\t\tr: { k: 0, a: 0 },\n\t\t\t\t\t\t\t\t\t\t\t\t\to: { k: 100, a: 0 },\n\t\t\t\t\t\t\t\t\t\t\t\t\tsk: { k: 0, a: 0 },\n\t\t\t\t\t\t\t\t\t\t\t\t\tsa: { k: 0, a: 0 },\n\t\t\t\t\t\t\t\t\t\t\t\t\tty: 'tr',\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\t\t\t\t\t}());\n\n\t\t\t\t\tvar checkPathProperties = (function () {\n\t\t\t\t\t\tvar minimumVersion = [5, 7, 15];\n\n\t\t\t\t\t\tfunction updateTextLayer(textLayer) {\n\t\t\t\t\t\t\tvar pathData = textLayer.t.p;\n\t\t\t\t\t\t\tif (typeof pathData.a === 'number') {\n\t\t\t\t\t\t\t\tpathData.a = {\n\t\t\t\t\t\t\t\t\ta: 0,\n\t\t\t\t\t\t\t\t\tk: pathData.a,\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (typeof pathData.p === 'number') {\n\t\t\t\t\t\t\t\tpathData.p = {\n\t\t\t\t\t\t\t\t\ta: 0,\n\t\t\t\t\t\t\t\t\tk: pathData.p,\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (typeof pathData.r === 'number') {\n\t\t\t\t\t\t\t\tpathData.r = {\n\t\t\t\t\t\t\t\t\ta: 0,\n\t\t\t\t\t\t\t\t\tk: pathData.r,\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tfunction iterateLayers(layers) {\n\t\t\t\t\t\t\tvar i;\n\t\t\t\t\t\t\tvar len = layers.length;\n\t\t\t\t\t\t\tfor (i = 0; i < len; i += 1) {\n\t\t\t\t\t\t\t\tif (layers[i].ty === 5) {\n\t\t\t\t\t\t\t\t\tupdateTextLayer(layers[i]);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn function (animationData) {\n\t\t\t\t\t\t\tif (checkVersion(minimumVersion, animationData.v)) {\n\t\t\t\t\t\t\t\titerateLayers(animationData.layers);\n\t\t\t\t\t\t\t\tif (animationData.assets) {\n\t\t\t\t\t\t\t\t\tvar i;\n\t\t\t\t\t\t\t\t\tvar len = animationData.assets.length;\n\t\t\t\t\t\t\t\t\tfor (i = 0; i < len; i += 1) {\n\t\t\t\t\t\t\t\t\t\tif (animationData.assets[i].layers) {\n\t\t\t\t\t\t\t\t\t\t\titerateLayers(animationData.assets[i].layers);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\t\t\t\t\t}());\n\n\t\t\t\t\tvar checkColors = (function () {\n\t\t\t\t\t\tvar minimumVersion = [4, 1, 9];\n\n\t\t\t\t\t\tfunction iterateShapes(shapes) {\n\t\t\t\t\t\t\tvar i;\n\t\t\t\t\t\t\tvar len = shapes.length;\n\t\t\t\t\t\t\tvar j;\n\t\t\t\t\t\t\tvar jLen;\n\t\t\t\t\t\t\tfor (i = 0; i < len; i += 1) {\n\t\t\t\t\t\t\t\tif (shapes[i].ty === 'gr') {\n\t\t\t\t\t\t\t\t\titerateShapes(shapes[i].it);\n\t\t\t\t\t\t\t\t} else if (shapes[i].ty === 'fl' || shapes[i].ty === 'st') {\n\t\t\t\t\t\t\t\t\tif (shapes[i].c.k && shapes[i].c.k[0].i) {\n\t\t\t\t\t\t\t\t\t\tjLen = shapes[i].c.k.length;\n\t\t\t\t\t\t\t\t\t\tfor (j = 0; j < jLen; j += 1) {\n\t\t\t\t\t\t\t\t\t\t\tif (shapes[i].c.k[j].s) {\n\t\t\t\t\t\t\t\t\t\t\t\tshapes[i].c.k[j].s[0] /= 255;\n\t\t\t\t\t\t\t\t\t\t\t\tshapes[i].c.k[j].s[1] /= 255;\n\t\t\t\t\t\t\t\t\t\t\t\tshapes[i].c.k[j].s[2] /= 255;\n\t\t\t\t\t\t\t\t\t\t\t\tshapes[i].c.k[j].s[3] /= 255;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tif (shapes[i].c.k[j].e) {\n\t\t\t\t\t\t\t\t\t\t\t\tshapes[i].c.k[j].e[0] /= 255;\n\t\t\t\t\t\t\t\t\t\t\t\tshapes[i].c.k[j].e[1] /= 255;\n\t\t\t\t\t\t\t\t\t\t\t\tshapes[i].c.k[j].e[2] /= 255;\n\t\t\t\t\t\t\t\t\t\t\t\tshapes[i].c.k[j].e[3] /= 255;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tshapes[i].c.k[0] /= 255;\n\t\t\t\t\t\t\t\t\t\tshapes[i].c.k[1] /= 255;\n\t\t\t\t\t\t\t\t\t\tshapes[i].c.k[2] /= 255;\n\t\t\t\t\t\t\t\t\t\tshapes[i].c.k[3] /= 255;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tfunction iterateLayers(layers) {\n\t\t\t\t\t\t\tvar i;\n\t\t\t\t\t\t\tvar len = layers.length;\n\t\t\t\t\t\t\tfor (i = 0; i < len; i += 1) {\n\t\t\t\t\t\t\t\tif (layers[i].ty === 4) {\n\t\t\t\t\t\t\t\t\titerateShapes(layers[i].shapes);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn function (animationData) {\n\t\t\t\t\t\t\tif (checkVersion(minimumVersion, animationData.v)) {\n\t\t\t\t\t\t\t\titerateLayers(animationData.layers);\n\t\t\t\t\t\t\t\tif (animationData.assets) {\n\t\t\t\t\t\t\t\t\tvar i;\n\t\t\t\t\t\t\t\t\tvar len = animationData.assets.length;\n\t\t\t\t\t\t\t\t\tfor (i = 0; i < len; i += 1) {\n\t\t\t\t\t\t\t\t\t\tif (animationData.assets[i].layers) {\n\t\t\t\t\t\t\t\t\t\t\titerateLayers(animationData.assets[i].layers);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\t\t\t\t\t}());\n\n\t\t\t\t\tvar checkShapes = (function () {\n\t\t\t\t\t\tvar minimumVersion = [4, 4, 18];\n\n\t\t\t\t\t\tfunction completeClosingShapes(arr) {\n\t\t\t\t\t\t\tvar i;\n\t\t\t\t\t\t\tvar len = arr.length;\n\t\t\t\t\t\t\tvar j;\n\t\t\t\t\t\t\tvar jLen;\n\t\t\t\t\t\t\tfor (i = len - 1; i >= 0; i -= 1) {\n\t\t\t\t\t\t\t\tif (arr[i].ty === 'sh') {\n\t\t\t\t\t\t\t\t\tif (arr[i].ks.k.i) {\n\t\t\t\t\t\t\t\t\t\tarr[i].ks.k.c = arr[i].closed;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tjLen = arr[i].ks.k.length;\n\t\t\t\t\t\t\t\t\t\tfor (j = 0; j < jLen; j += 1) {\n\t\t\t\t\t\t\t\t\t\t\tif (arr[i].ks.k[j].s) {\n\t\t\t\t\t\t\t\t\t\t\t\tarr[i].ks.k[j].s[0].c = arr[i].closed;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\tif (arr[i].ks.k[j].e) {\n\t\t\t\t\t\t\t\t\t\t\t\tarr[i].ks.k[j].e[0].c = arr[i].closed;\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} else if (arr[i].ty === 'gr') {\n\t\t\t\t\t\t\t\t\tcompleteClosingShapes(arr[i].it);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tfunction iterateLayers(layers) {\n\t\t\t\t\t\t\tvar layerData;\n\t\t\t\t\t\t\tvar i;\n\t\t\t\t\t\t\tvar len = layers.length;\n\t\t\t\t\t\t\tvar j;\n\t\t\t\t\t\t\tvar jLen;\n\t\t\t\t\t\t\tvar k;\n\t\t\t\t\t\t\tvar kLen;\n\t\t\t\t\t\t\tfor (i = 0; i < len; i += 1) {\n\t\t\t\t\t\t\t\tlayerData = layers[i];\n\t\t\t\t\t\t\t\tif (layerData.hasMask) {\n\t\t\t\t\t\t\t\t\tvar maskProps = layerData.masksProperties;\n\t\t\t\t\t\t\t\t\tjLen = maskProps.length;\n\t\t\t\t\t\t\t\t\tfor (j = 0; j < jLen; j += 1) {\n\t\t\t\t\t\t\t\t\t\tif (maskProps[j].pt.k.i) {\n\t\t\t\t\t\t\t\t\t\t\tmaskProps[j].pt.k.c = maskProps[j].cl;\n\t\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\t\tkLen = maskProps[j].pt.k.length;\n\t\t\t\t\t\t\t\t\t\t\tfor (k = 0; k < kLen; k += 1) {\n\t\t\t\t\t\t\t\t\t\t\t\tif (maskProps[j].pt.k[k].s) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tmaskProps[j].pt.k[k].s[0].c = maskProps[j].cl;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tif (maskProps[j].pt.k[k].e) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tmaskProps[j].pt.k[k].e[0].c = maskProps[j].cl;\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif (layerData.ty === 4) {\n\t\t\t\t\t\t\t\t\tcompleteClosingShapes(layerData.shapes);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn function (animationData) {\n\t\t\t\t\t\t\tif (checkVersion(minimumVersion, animationData.v)) {\n\t\t\t\t\t\t\t\titerateLayers(animationData.layers);\n\t\t\t\t\t\t\t\tif (animationData.assets) {\n\t\t\t\t\t\t\t\t\tvar i;\n\t\t\t\t\t\t\t\t\tvar len = animationData.assets.length;\n\t\t\t\t\t\t\t\t\tfor (i = 0; i < len; i += 1) {\n\t\t\t\t\t\t\t\t\t\tif (animationData.assets[i].layers) {\n\t\t\t\t\t\t\t\t\t\t\titerateLayers(animationData.assets[i].layers);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\t\t\t\t\t}());\n\n\t\t\t\t\tfunction completeData(animationData) {\n\t\t\t\t\t\tif (animationData.__complete) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcheckColors(animationData);\n\t\t\t\t\t\tcheckText(animationData);\n\t\t\t\t\t\tcheckChars(animationData);\n\t\t\t\t\t\tcheckPathProperties(animationData);\n\t\t\t\t\t\tcheckShapes(animationData);\n\t\t\t\t\t\tcompleteLayers(animationData.layers, animationData.assets);\n\t\t\t\t\t\tcompleteChars(animationData.chars, animationData.assets);\n\t\t\t\t\t\tanimationData.__complete = true;\n\t\t\t\t\t}\n\n\t\t\t\t\tfunction completeText(data) {\n\t\t\t\t\t\tif (data.t.a.length === 0 && !('m' in data.t.p)) {\n\t\t\t\t\t\t\t// data.singleShape = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tvar moduleOb = {};\n\t\t\t\t\tmoduleOb.completeData = completeData;\n\t\t\t\t\tmoduleOb.checkColors = checkColors;\n\t\t\t\t\tmoduleOb.checkChars = checkChars;\n\t\t\t\t\tmoduleOb.checkPathProperties = checkPathProperties;\n\t\t\t\t\tmoduleOb.checkShapes = checkShapes;\n\t\t\t\t\tmoduleOb.completeLayers = completeLayers;\n\n\t\t\t\t\treturn moduleOb;\n\t\t\t\t}\n\t\t\t\tif (!_workerSelf.dataManager) {\n\t\t\t\t\t_workerSelf.dataManager = dataFunctionManager();\n\t\t\t\t}\n\n\t\t\t\tif (!_workerSelf.assetLoader) {\n\t\t\t\t\t_workerSelf.assetLoader = (function () {\n\t\t\t\t\t\tfunction formatResponse(xhr) {\n\t\t\t\t\t\t\t// using typeof doubles the time of execution of this method,\n\t\t\t\t\t\t\t// so if available, it's better to use the header to validate the type\n\t\t\t\t\t\t\tvar contentTypeHeader = xhr.getResponseHeader('content-type');\n\t\t\t\t\t\t\tif (contentTypeHeader && xhr.responseType === 'json' && contentTypeHeader.indexOf('json') !== -1) {\n\t\t\t\t\t\t\t\treturn xhr.response;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (xhr.response && typeof xhr.response === 'object') {\n\t\t\t\t\t\t\t\treturn xhr.response;\n\t\t\t\t\t\t\t} if (xhr.response && typeof xhr.response === 'string') {\n\t\t\t\t\t\t\t\treturn JSON.parse(xhr.response);\n\t\t\t\t\t\t\t} if (xhr.responseText) {\n\t\t\t\t\t\t\t\treturn JSON.parse(xhr.responseText);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn null;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tfunction loadAsset(path, fullPath, callback, errorCallback) {\n\t\t\t\t\t\t\tvar response;\n\t\t\t\t\t\t\tvar xhr = new XMLHttpRequest();\n\t\t\t\t\t\t\t// set responseType after calling open or IE will break.\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t// This crashes on Android WebView prior to KitKat\n\t\t\t\t\t\t\t\txhr.responseType = 'json';\n\t\t\t\t\t\t\t} catch (err) {} // eslint-disable-line no-empty\n\t\t\t\t\t\t\txhr.onreadystatechange = function () {\n\t\t\t\t\t\t\t\tif (xhr.readyState === 4) {\n\t\t\t\t\t\t\t\t\tif (xhr.status === 200) {\n\t\t\t\t\t\t\t\t\t\tresponse = formatResponse(xhr);\n\t\t\t\t\t\t\t\t\t\tcallback(response);\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\t\tresponse = formatResponse(xhr);\n\t\t\t\t\t\t\t\t\t\t\tcallback(response);\n\t\t\t\t\t\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\t\t\t\t\t\tif (errorCallback) {\n\t\t\t\t\t\t\t\t\t\t\t\terrorCallback(err);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\txhr.open('GET', path, true);\n\t\t\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\t\t\txhr.open('GET', fullPath + '/' + path, true);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\txhr.send();\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tload: loadAsset,\n\t\t\t\t\t\t};\n\t\t\t\t\t}());\n\t\t\t\t}\n\n\t\t\t\tif (e.data.type === 'loadAnimation') {\n\t\t\t\t\t_workerSelf.assetLoader.load(\n\t\t\t\t\t\te.data.path,\n\t\t\t\t\t\te.data.fullPath,\n\t\t\t\t\t\tfunction (data) {\n\t\t\t\t\t\t\t_workerSelf.dataManager.completeData(data);\n\t\t\t\t\t\t\t_workerSelf.postMessage({\n\t\t\t\t\t\t\t\tid: e.data.id,\n\t\t\t\t\t\t\t\tpayload: data,\n\t\t\t\t\t\t\t\tstatus: 'success',\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t},\n\t\t\t\t\t\tfunction () {\n\t\t\t\t\t\t\t_workerSelf.postMessage({\n\t\t\t\t\t\t\t\tid: e.data.id,\n\t\t\t\t\t\t\t\tstatus: 'error',\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\t\t\t\t} else if (e.data.type === 'complete') {\n\t\t\t\t\tvar animation = e.data.animation;\n\t\t\t\t\t_workerSelf.dataManager.completeData(animation);\n\t\t\t\t\t_workerSelf.postMessage({\n\t\t\t\t\t\tid: e.data.id,\n\t\t\t\t\t\tpayload: animation,\n\t\t\t\t\t\tstatus: 'success',\n\t\t\t\t\t});\n\t\t\t\t} else if (e.data.type === 'loadData') {\n\t\t\t\t\t_workerSelf.assetLoader.load(\n\t\t\t\t\t\te.data.path,\n\t\t\t\t\t\te.data.fullPath,\n\t\t\t\t\t\tfunction (data) {\n\t\t\t\t\t\t\t_workerSelf.postMessage({\n\t\t\t\t\t\t\t\tid: e.data.id,\n\t\t\t\t\t\t\t\tpayload: data,\n\t\t\t\t\t\t\t\tstatus: 'success',\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t},\n\t\t\t\t\t\tfunction () {\n\t\t\t\t\t\t\t_workerSelf.postMessage({\n\t\t\t\t\t\t\t\tid: e.data.id,\n\t\t\t\t\t\t\t\tstatus: 'error',\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tworkerInstance.onmessage = function (event) {\n\t\t\t\tvar data = event.data;\n\t\t\t\tvar id = data.id;\n\t\t\t\tvar process = processes[id];\n\t\t\t\tprocesses[id] = null;\n\t\t\t\tif (data.status === 'success') {\n\t\t\t\t\tprocess.onComplete(data.payload);\n\t\t\t\t} else if (process.onError) {\n\t\t\t\t\tprocess.onError();\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t}\n\n\tfunction createProcess(onComplete, onError) {\n\t\t_counterId += 1;\n\t\tvar id = 'processId_' + _counterId;\n\t\tprocesses[id] = {\n\t\t\tonComplete: onComplete,\n\t\t\tonError: onError,\n\t\t};\n\t\treturn id;\n\t}\n\n\tfunction loadAnimation(path, onComplete, onError) {\n\t\tsetupWorker();\n\t\tvar processId = createProcess(onComplete, onError);\n\t\tworkerInstance.postMessage({\n\t\t\ttype: 'loadAnimation',\n\t\t\tpath: path,\n\t\t\tfullPath: window.location.origin + window.location.pathname,\n\t\t\tid: processId,\n\t\t});\n\t}\n\n\tfunction loadData(path, onComplete, onError) {\n\t\tsetupWorker();\n\t\tvar processId = createProcess(onComplete, onError);\n\t\tworkerInstance.postMessage({\n\t\t\ttype: 'loadData',\n\t\t\tpath: path,\n\t\t\tfullPath: window.location.origin + window.location.pathname,\n\t\t\tid: processId,\n\t\t});\n\t}\n\n\tfunction completeAnimation(anim, onComplete, onError) {\n\t\tsetupWorker();\n\t\tvar processId = createProcess(onComplete, onError);\n\t\tworkerInstance.postMessage({\n\t\t\ttype: 'complete',\n\t\t\tanimation: anim,\n\t\t\tid: processId,\n\t\t});\n\t}\n\n\treturn {\n\t\tloadAnimation: loadAnimation,\n\t\tloadData: loadData,\n\t\tcompleteAnimation: completeAnimation,\n\t};\n}());\n\nconst ImagePreloader = (function () {\n\tvar proxyImage = (function () {\n\t\tvar canvas = createTag('canvas');\n\t\tcanvas.width = 1;\n\t\tcanvas.height = 1;\n\t\tvar ctx = canvas.getContext('2d');\n\t\tctx.fillStyle = 'rgba(0,0,0,0)';\n\t\tctx.fillRect(0, 0, 1, 1);\n\t\treturn canvas;\n\t}());\n\n\tfunction imageLoaded() {\n\t\tthis.loadedAssets += 1;\n\t\tif (this.loadedAssets === this.totalImages && this.loadedFootagesCount === this.totalFootages) {\n\t\t\tif (this.imagesLoadedCb) {\n\t\t\t\tthis.imagesLoadedCb(null);\n\t\t\t}\n\t\t}\n\t}\n\tfunction footageLoaded() {\n\t\tthis.loadedFootagesCount += 1;\n\t\tif (this.loadedAssets === this.totalImages && this.loadedFootagesCount === this.totalFootages) {\n\t\t\tif (this.imagesLoadedCb) {\n\t\t\t\tthis.imagesLoadedCb(null);\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction getAssetsPath(assetData, assetsPath, originalPath) {\n\t\tvar path = '';\n\t\tif (assetData.e) {\n\t\t\tpath = assetData.p;\n\t\t} else if (assetsPath) {\n\t\t\tvar imagePath = assetData.p;\n\t\t\tif (imagePath.indexOf('images/') !== -1) {\n\t\t\t\timagePath = imagePath.split('/')[1];\n\t\t\t}\n\t\t\tpath = assetsPath + imagePath;\n\t\t} else {\n\t\t\tpath = originalPath;\n\t\t\tpath += assetData.u ? assetData.u : '';\n\t\t\tpath += assetData.p;\n\t\t}\n\t\treturn path;\n\t}\n\n\tfunction testImageLoaded(img) {\n\t\tvar _count = 0;\n\t\tvar intervalId = setInterval(function () {\n\t\t\tvar box = img.getBBox();\n\t\t\tif (box.width || _count > 500) {\n\t\t\t\tthis._imageLoaded();\n\t\t\t\tclearInterval(intervalId);\n\t\t\t}\n\t\t\t_count += 1;\n\t\t}.bind(this), 50);\n\t}\n\n\tfunction createImageData(assetData) {\n\t\tvar path = getAssetsPath(assetData, this.assetsPath, this.path);\n\t\tvar img = createNS('image');\n\t\tif (isSafari) {\n\t\t\tthis.testImageLoaded(img);\n\t\t} else {\n\t\t\timg.addEventListener('load', this._imageLoaded, false);\n\t\t}\n\t\timg.addEventListener('error', function () {\n\t\t\tob.img = proxyImage;\n\t\t\tthis._imageLoaded();\n\t\t}.bind(this), false);\n\t\timg.setAttributeNS('http://www.w3.org/1999/xlink', 'href', path);\n\t\tif (this._elementHelper.append) {\n\t\t\tthis._elementHelper.append(img);\n\t\t} else {\n\t\t\tthis._elementHelper.appendChild(img);\n\t\t}\n\t\tvar ob = {\n\t\t\timg: img,\n\t\t\tassetData: assetData,\n\t\t};\n\t\treturn ob;\n\t}\n\n\tfunction createImgData(assetData) {\n\t\tvar path = getAssetsPath(assetData, this.assetsPath, this.path);\n\t\tvar img = createTag('img');\n\t\timg.crossOrigin = 'anonymous';\n\t\timg.addEventListener('load', this._imageLoaded, false);\n\t\timg.addEventListener('error', function () {\n\t\t\tob.img = proxyImage;\n\t\t\tthis._imageLoaded();\n\t\t}.bind(this), false);\n\t\timg.src = path;\n\t\tvar ob = {\n\t\t\timg: img,\n\t\t\tassetData: assetData,\n\t\t};\n\t\treturn ob;\n\t}\n\n\tfunction createFootageData(data) {\n\t\tvar ob = {\n\t\t\tassetData: data,\n\t\t};\n\t\tvar path = getAssetsPath(data, this.assetsPath, this.path);\n\t\tdataManager.loadData(path, function (footageData) {\n\t\t\tob.img = footageData;\n\t\t\tthis._footageLoaded();\n\t\t}.bind(this), function () {\n\t\t\tob.img = {};\n\t\t\tthis._footageLoaded();\n\t\t}.bind(this));\n\t\treturn ob;\n\t}\n\n\tfunction loadAssets(assets, cb) {\n\t\tthis.imagesLoadedCb = cb;\n\t\tvar i;\n\t\tvar len = assets.length;\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tif (!assets[i].layers) {\n\t\t\t\tif (!assets[i].t || assets[i].t === 'seq') {\n\t\t\t\t\tthis.totalImages += 1;\n\t\t\t\t\tthis.images.push(this._createImageData(assets[i]));\n\t\t\t\t} else if (assets[i].t === 3) {\n\t\t\t\t\tthis.totalFootages += 1;\n\t\t\t\t\tthis.images.push(this.createFootageData(assets[i]));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction setPath(path) {\n\t\tthis.path = path || '';\n\t}\n\n\tfunction setAssetsPath(path) {\n\t\tthis.assetsPath = path || '';\n\t}\n\n\tfunction getAsset(assetData) {\n\t\tvar i = 0;\n\t\tvar len = this.images.length;\n\t\twhile (i < len) {\n\t\t\tif (this.images[i].assetData === assetData) {\n\t\t\t\treturn this.images[i].img;\n\t\t\t}\n\t\t\ti += 1;\n\t\t}\n\t\treturn null;\n\t}\n\n\tfunction destroy() {\n\t\tthis.imagesLoadedCb = null;\n\t\tthis.images.length = 0;\n\t}\n\n\tfunction loadedImages() {\n\t\treturn this.totalImages === this.loadedAssets;\n\t}\n\n\tfunction loadedFootages() {\n\t\treturn this.totalFootages === this.loadedFootagesCount;\n\t}\n\n\tfunction setCacheType(type, elementHelper) {\n\t\tif (type === 'svg') {\n\t\t\tthis._elementHelper = elementHelper;\n\t\t\tthis._createImageData = this.createImageData.bind(this);\n\t\t} else {\n\t\t\tthis._createImageData = this.createImgData.bind(this);\n\t\t}\n\t}\n\n\tfunction ImagePreloaderFactory() {\n\t\tthis._imageLoaded = imageLoaded.bind(this);\n\t\tthis._footageLoaded = footageLoaded.bind(this);\n\t\tthis.testImageLoaded = testImageLoaded.bind(this);\n\t\tthis.createFootageData = createFootageData.bind(this);\n\t\tthis.assetsPath = '';\n\t\tthis.path = '';\n\t\tthis.totalImages = 0;\n\t\tthis.totalFootages = 0;\n\t\tthis.loadedAssets = 0;\n\t\tthis.loadedFootagesCount = 0;\n\t\tthis.imagesLoadedCb = null;\n\t\tthis.images = [];\n\t}\n\n\tImagePreloaderFactory.prototype = {\n\t\tloadAssets: loadAssets,\n\t\tsetAssetsPath: setAssetsPath,\n\t\tsetPath: setPath,\n\t\tloadedImages: loadedImages,\n\t\tloadedFootages: loadedFootages,\n\t\tdestroy: destroy,\n\t\tgetAsset: getAsset,\n\t\tcreateImgData: createImgData,\n\t\tcreateImageData: createImageData,\n\t\timageLoaded: imageLoaded,\n\t\tfootageLoaded: footageLoaded,\n\t\tsetCacheType: setCacheType,\n\t};\n\n\treturn ImagePreloaderFactory;\n}());\n\nfunction BaseEvent() {}\nBaseEvent.prototype = {\n\ttriggerEvent: function (eventName, args) {\n\t\tif (this._cbs[eventName]) {\n\t\t\tvar callbacks = this._cbs[eventName];\n\t\t\tfor (var i = 0; i < callbacks.length; i += 1) {\n\t\t\t\tcallbacks[i](args);\n\t\t\t}\n\t\t}\n\t},\n\taddEventListener: function (eventName, callback) {\n\t\tif (!this._cbs[eventName]) {\n\t\t\tthis._cbs[eventName] = [];\n\t\t}\n\t\tthis._cbs[eventName].push(callback);\n\n\t\treturn function () {\n\t\t\tthis.removeEventListener(eventName, callback);\n\t\t}.bind(this);\n\t},\n\tremoveEventListener: function (eventName, callback) {\n\t\tif (!callback) {\n\t\t\tthis._cbs[eventName] = null;\n\t\t} else if (this._cbs[eventName]) {\n\t\t\tvar i = 0;\n\t\t\tvar len = this._cbs[eventName].length;\n\t\t\twhile (i < len) {\n\t\t\t\tif (this._cbs[eventName][i] === callback) {\n\t\t\t\t\tthis._cbs[eventName].splice(i, 1);\n\t\t\t\t\ti -= 1;\n\t\t\t\t\tlen -= 1;\n\t\t\t\t}\n\t\t\t\ti += 1;\n\t\t\t}\n\t\t\tif (!this._cbs[eventName].length) {\n\t\t\t\tthis._cbs[eventName] = null;\n\t\t\t}\n\t\t}\n\t},\n};\n\nconst markerParser = (\n\n\tfunction () {\n\t\tfunction parsePayloadLines(payload) {\n\t\t\tvar lines = payload.split('\\r\\n');\n\t\t\tvar keys = {};\n\t\t\tvar line;\n\t\t\tvar keysCount = 0;\n\t\t\tfor (var i = 0; i < lines.length; i += 1) {\n\t\t\t\tline = lines[i].split(':');\n\t\t\t\tif (line.length === 2) {\n\t\t\t\t\tkeys[line[0]] = line[1].trim();\n\t\t\t\t\tkeysCount += 1;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (keysCount === 0) {\n\t\t\t\tthrow new Error();\n\t\t\t}\n\t\t\treturn keys;\n\t\t}\n\n\t\treturn function (_markers) {\n\t\t\tvar markers = [];\n\t\t\tfor (var i = 0; i < _markers.length; i += 1) {\n\t\t\t\tvar _marker = _markers[i];\n\t\t\t\tvar markerData = {\n\t\t\t\t\ttime: _marker.tm,\n\t\t\t\t\tduration: _marker.dr,\n\t\t\t\t};\n\t\t\t\ttry {\n\t\t\t\t\tmarkerData.payload = JSON.parse(_markers[i].cm);\n\t\t\t\t} catch (_) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tmarkerData.payload = parsePayloadLines(_markers[i].cm);\n\t\t\t\t\t} catch (__) {\n\t\t\t\t\t\tmarkerData.payload = {\n\t\t\t\t\t\t\tname: _markers[i].cm,\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tmarkers.push(markerData);\n\t\t\t}\n\t\t\treturn markers;\n\t\t};\n\t}());\n\nconst ProjectInterface = (function () {\n\tfunction registerComposition(comp) {\n\t\tthis.compositions.push(comp);\n\t}\n\n\treturn function () {\n\t\tfunction _thisProjectFunction(name) {\n\t\t\tvar i = 0;\n\t\t\tvar len = this.compositions.length;\n\t\t\twhile (i < len) {\n\t\t\t\tif (this.compositions[i].data && this.compositions[i].data.nm === name) {\n\t\t\t\t\tif (this.compositions[i].prepareFrame && this.compositions[i].data.xt) {\n\t\t\t\t\t\tthis.compositions[i].prepareFrame(this.currentFrame);\n\t\t\t\t\t}\n\t\t\t\t\treturn this.compositions[i].compInterface;\n\t\t\t\t}\n\t\t\t\ti += 1;\n\t\t\t}\n\t\t\treturn null;\n\t\t}\n\n\t\t_thisProjectFunction.compositions = [];\n\t\t_thisProjectFunction.currentFrame = 0;\n\n\t\t_thisProjectFunction.registerComposition = registerComposition;\n\n\t\treturn _thisProjectFunction;\n\t};\n}());\n\nconst renderers = {};\n\nconst registerRenderer = (key, value) => {\n\trenderers[key] = value;\n};\n\nfunction getRenderer(key) {\n\treturn renderers[key];\n}\n\nconst AnimationItem = function () {\n\tthis._cbs = [];\n\tthis.name = '';\n\tthis.path = '';\n\tthis.isLoaded = false;\n\tthis.currentFrame = 0;\n\tthis.currentRawFrame = 0;\n\tthis.firstFrame = 0;\n\tthis.totalFrames = 0;\n\tthis.frameRate = 0;\n\tthis.frameMult = 0;\n\tthis.playSpeed = 1;\n\tthis.playDirection = 1;\n\tthis.playCount = 0;\n\tthis.animationData = {};\n\tthis.assets = [];\n\tthis.isPaused = true;\n\tthis.autoplay = false;\n\tthis.loop = true;\n\tthis.renderer = null;\n\tthis.animationID = createElementID();\n\tthis.assetsPath = '';\n\tthis.timeCompleted = 0;\n\tthis.segmentPos = 0;\n\tthis.isSubframeEnabled = getSubframeEnabled();\n\tthis.segments = [];\n\tthis._idle = true;\n\tthis._completedLoop = false;\n\tthis.projectInterface = ProjectInterface();\n\tthis.imagePreloader = new ImagePreloader();\n\tthis.audioController = audioControllerFactory();\n\tthis.markers = [];\n\tthis.configAnimation = this.configAnimation.bind(this);\n\tthis.onSetupError = this.onSetupError.bind(this);\n\tthis.onSegmentComplete = this.onSegmentComplete.bind(this);\n\tthis.drawnFrameEvent = new BMEnterFrameEvent('drawnFrame', 0, 0, 0);\n};\n\nextendPrototype([BaseEvent], AnimationItem);\n\nAnimationItem.prototype.setParams = function (params) {\n\tif (params.wrapper || params.container) {\n\t\tthis.wrapper = params.wrapper || params.container;\n\t}\n\tvar animType = 'svg';\n\tif (params.animType) {\n\t\tanimType = params.animType;\n\t} else if (params.renderer) {\n\t\tanimType = params.renderer;\n\t}\n\tconst RendererClass = getRenderer(animType);\n\tthis.renderer = new RendererClass(this, params.rendererSettings);\n\tthis.imagePreloader.setCacheType(animType, this.renderer.globalData.defs);\n\tthis.renderer.setProjectInterface(this.projectInterface);\n\tthis.animType = animType;\n\tif (params.loop === ''\n\t\t|| params.loop === null\n\t\t|| params.loop === undefined\n\t\t|| params.loop === true) {\n\t\tthis.loop = true;\n\t} else if (params.loop === false) {\n\t\tthis.loop = false;\n\t} else {\n\t\tthis.loop = parseInt(params.loop, 10);\n\t}\n\tthis.autoplay = 'autoplay' in params ? params.autoplay : true;\n\tthis.name = params.name ? params.name : '';\n\tthis.autoloadSegments = Object.prototype.hasOwnProperty.call(params, 'autoloadSegments') ? params.autoloadSegments : true;\n\tthis.assetsPath = params.assetsPath;\n\tthis.initialSegment = params.initialSegment;\n\tif (params.audioFactory) {\n\t\tthis.audioController.setAudioFactory(params.audioFactory);\n\t}\n\tif (params.animationData) {\n\t\tthis.setupAnimation(params.animationData);\n\t} else if (params.path) {\n\t\tif (params.path.lastIndexOf('\\\\') !== -1) {\n\t\t\tthis.path = params.path.substr(0, params.path.lastIndexOf('\\\\') + 1);\n\t\t} else {\n\t\t\tthis.path = params.path.substr(0, params.path.lastIndexOf('/') + 1);\n\t\t}\n\t\tthis.fileName = params.path.substr(params.path.lastIndexOf('/') + 1);\n\t\tthis.fileName = this.fileName.substr(0, this.fileName.lastIndexOf('.json'));\n\t\tdataManager.loadAnimation(\n\t\t\tparams.path,\n\t\t\tthis.configAnimation,\n\t\t\tthis.onSetupError\n\t\t);\n\t}\n};\n\nAnimationItem.prototype.onSetupError = function () {\n\tthis.trigger('data_failed');\n};\n\nAnimationItem.prototype.setupAnimation = function (data) {\n\tdataManager.completeAnimation(\n\t\tdata,\n\t\tthis.configAnimation\n\t);\n};\n\nAnimationItem.prototype.setData = function (wrapper, animationData) {\n\tif (animationData) {\n\t\tif (typeof animationData !== 'object') {\n\t\t\tanimationData = JSON.parse(animationData);\n\t\t}\n\t}\n\tvar params = {\n\t\twrapper: wrapper,\n\t\tanimationData: animationData,\n\t};\n\tvar wrapperAttributes = wrapper.attributes;\n\n\tparams.path = wrapperAttributes.getNamedItem('data-animation-path') // eslint-disable-line no-nested-ternary\n\t\t? wrapperAttributes.getNamedItem('data-animation-path').value\n\t\t: wrapperAttributes.getNamedItem('data-bm-path') // eslint-disable-line no-nested-ternary\n\t\t\t? wrapperAttributes.getNamedItem('data-bm-path').value\n\t\t\t: wrapperAttributes.getNamedItem('bm-path')\n\t\t\t\t? wrapperAttributes.getNamedItem('bm-path').value\n\t\t\t\t: '';\n\tparams.animType = wrapperAttributes.getNamedItem('data-anim-type') // eslint-disable-line no-nested-ternary\n\t\t? wrapperAttributes.getNamedItem('data-anim-type').value\n\t\t: wrapperAttributes.getNamedItem('data-bm-type') // eslint-disable-line no-nested-ternary\n\t\t\t? wrapperAttributes.getNamedItem('data-bm-type').value\n\t\t\t: wrapperAttributes.getNamedItem('bm-type') // eslint-disable-line no-nested-ternary\n\t\t\t\t? wrapperAttributes.getNamedItem('bm-type').value\n\t\t\t\t: wrapperAttributes.getNamedItem('data-bm-renderer') // eslint-disable-line no-nested-ternary\n\t\t\t\t\t? wrapperAttributes.getNamedItem('data-bm-renderer').value\n\t\t\t\t\t: wrapperAttributes.getNamedItem('bm-renderer')\n\t\t\t\t\t\t? wrapperAttributes.getNamedItem('bm-renderer').value\n\t\t\t\t\t\t: 'canvas';\n\n\tvar loop = wrapperAttributes.getNamedItem('data-anim-loop') // eslint-disable-line no-nested-ternary\n\t\t? wrapperAttributes.getNamedItem('data-anim-loop').value\n\t\t: wrapperAttributes.getNamedItem('data-bm-loop') // eslint-disable-line no-nested-ternary\n\t\t\t? wrapperAttributes.getNamedItem('data-bm-loop').value\n\t\t\t: wrapperAttributes.getNamedItem('bm-loop')\n\t\t\t\t? wrapperAttributes.getNamedItem('bm-loop').value\n\t\t\t\t: '';\n\tif (loop === 'false') {\n\t\tparams.loop = false;\n\t} else if (loop === 'true') {\n\t\tparams.loop = true;\n\t} else if (loop !== '') {\n\t\tparams.loop = parseInt(loop, 10);\n\t}\n\tvar autoplay = wrapperAttributes.getNamedItem('data-anim-autoplay') // eslint-disable-line no-nested-ternary\n\t\t? wrapperAttributes.getNamedItem('data-anim-autoplay').value\n\t\t: wrapperAttributes.getNamedItem('data-bm-autoplay') // eslint-disable-line no-nested-ternary\n\t\t\t? wrapperAttributes.getNamedItem('data-bm-autoplay').value\n\t\t\t: wrapperAttributes.getNamedItem('bm-autoplay')\n\t\t\t\t? wrapperAttributes.getNamedItem('bm-autoplay').value\n\t\t\t\t: true;\n\tparams.autoplay = autoplay !== 'false';\n\n\tparams.name = wrapperAttributes.getNamedItem('data-name') // eslint-disable-line no-nested-ternary\n\t\t? wrapperAttributes.getNamedItem('data-name').value\n\t\t: wrapperAttributes.getNamedItem('data-bm-name') // eslint-disable-line no-nested-ternary\n\t\t\t? wrapperAttributes.getNamedItem('data-bm-name').value\n\t\t\t: wrapperAttributes.getNamedItem('bm-name')\n\t\t\t\t? wrapperAttributes.getNamedItem('bm-name').value\n\t\t\t\t: '';\n\tvar prerender = wrapperAttributes.getNamedItem('data-anim-prerender') // eslint-disable-line no-nested-ternary\n\t\t? wrapperAttributes.getNamedItem('data-anim-prerender').value\n\t\t: wrapperAttributes.getNamedItem('data-bm-prerender') // eslint-disable-line no-nested-ternary\n\t\t\t? wrapperAttributes.getNamedItem('data-bm-prerender').value\n\t\t\t: wrapperAttributes.getNamedItem('bm-prerender')\n\t\t\t\t? wrapperAttributes.getNamedItem('bm-prerender').value\n\t\t\t\t: '';\n\n\tif (prerender === 'false') {\n\t\tparams.prerender = false;\n\t}\n\tthis.setParams(params);\n};\n\nAnimationItem.prototype.includeLayers = function (data) {\n\tif (data.op > this.animationData.op) {\n\t\tthis.animationData.op = data.op;\n\t\tthis.totalFrames = Math.floor(data.op - this.animationData.ip);\n\t}\n\tvar layers = this.animationData.layers;\n\tvar i;\n\tvar len = layers.length;\n\tvar newLayers = data.layers;\n\tvar j;\n\tvar jLen = newLayers.length;\n\tfor (j = 0; j < jLen; j += 1) {\n\t\ti = 0;\n\t\twhile (i < len) {\n\t\t\tif (layers[i].id === newLayers[j].id) {\n\t\t\t\tlayers[i] = newLayers[j];\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\ti += 1;\n\t\t}\n\t}\n\tif (data.chars || data.fonts) {\n\t\tthis.renderer.globalData.fontManager.addChars(data.chars);\n\t\tthis.renderer.globalData.fontManager.addFonts(data.fonts, this.renderer.globalData.defs);\n\t}\n\tif (data.assets) {\n\t\tlen = data.assets.length;\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tthis.animationData.assets.push(data.assets[i]);\n\t\t}\n\t}\n\tthis.animationData.__complete = false;\n\tdataManager.completeAnimation(\n\t\tthis.animationData,\n\t\tthis.onSegmentComplete\n\t);\n};\n\nAnimationItem.prototype.onSegmentComplete = function (data) {\n\tthis.animationData = data;\n\tvar expressionsPlugin = getExpressionsPlugin();\n\tif (expressionsPlugin) {\n\t\texpressionsPlugin.initExpressions(this);\n\t}\n\tthis.loadNextSegment();\n};\n\nAnimationItem.prototype.loadNextSegment = function () {\n\tvar segments = this.animationData.segments;\n\tif (!segments || segments.length === 0 || !this.autoloadSegments) {\n\t\tthis.trigger('data_ready');\n\t\tthis.timeCompleted = this.totalFrames;\n\t\treturn;\n\t}\n\tvar segment = segments.shift();\n\tthis.timeCompleted = segment.time * this.frameRate;\n\tvar segmentPath = this.path + this.fileName + '_' + this.segmentPos + '.json';\n\tthis.segmentPos += 1;\n\tdataManager.loadData(segmentPath, this.includeLayers.bind(this), function () {\n\t\tthis.trigger('data_failed');\n\t}.bind(this));\n};\n\nAnimationItem.prototype.loadSegments = function () {\n\tvar segments = this.animationData.segments;\n\tif (!segments) {\n\t\tthis.timeCompleted = this.totalFrames;\n\t}\n\tthis.loadNextSegment();\n};\n\nAnimationItem.prototype.imagesLoaded = function () {\n\tthis.trigger('loaded_images');\n\tthis.checkLoaded();\n};\n\nAnimationItem.prototype.preloadImages = function () {\n\tthis.imagePreloader.setAssetsPath(this.assetsPath);\n\tthis.imagePreloader.setPath(this.path);\n\tthis.imagePreloader.loadAssets(this.animationData.assets, this.imagesLoaded.bind(this));\n};\n\nAnimationItem.prototype.configAnimation = function (animData) {\n\tif (!this.renderer) {\n\t\treturn;\n\t}\n\ttry {\n\t\tthis.animationData = animData;\n\t\tif (this.initialSegment) {\n\t\t\tthis.totalFrames = Math.floor(this.initialSegment[1] - this.initialSegment[0]);\n\t\t\tthis.firstFrame = Math.round(this.initialSegment[0]);\n\t\t} else {\n\t\t\tthis.totalFrames = Math.floor(this.animationData.op - this.animationData.ip);\n\t\t\tthis.firstFrame = Math.round(this.animationData.ip);\n\t\t}\n\t\tthis.renderer.configAnimation(animData);\n\t\tif (!animData.assets) {\n\t\t\tanimData.assets = [];\n\t\t}\n\n\t\tthis.assets = this.animationData.assets;\n\t\tthis.frameRate = this.animationData.fr;\n\t\tthis.frameMult = this.animationData.fr / 1000;\n\t\tthis.renderer.searchExtraCompositions(animData.assets);\n\t\tthis.markers = markerParser(animData.markers || []);\n\t\tthis.trigger('config_ready');\n\t\tthis.preloadImages();\n\t\tthis.loadSegments();\n\t\tthis.updaFrameModifier();\n\t\tthis.waitForFontsLoaded();\n\t\tif (this.isPaused) {\n\t\t\tthis.audioController.pause();\n\t\t}\n\t} catch (error) {\n\t\tthis.triggerConfigError(error);\n\t}\n};\n\nAnimationItem.prototype.waitForFontsLoaded = function () {\n\tif (!this.renderer) {\n\t\treturn;\n\t}\n\tif (this.renderer.globalData.fontManager.isLoaded) {\n\t\tthis.checkLoaded();\n\t} else {\n\t\tsetTimeout(this.waitForFontsLoaded.bind(this), 20);\n\t}\n};\n\nAnimationItem.prototype.checkLoaded = function () {\n\tif (!this.isLoaded\n\t\t&& this.renderer.globalData.fontManager.isLoaded\n\t\t&& (this.imagePreloader.loadedImages() || this.renderer.rendererType !== 'canvas')\n\t\t&& (this.imagePreloader.loadedFootages())\n\t) {\n\t\tthis.isLoaded = true;\n\t\tvar expressionsPlugin = getExpressionsPlugin();\n\t\tif (expressionsPlugin) {\n\t\t\texpressionsPlugin.initExpressions(this);\n\t\t}\n\t\tthis.renderer.initItems();\n\t\tsetTimeout(function () {\n\t\t\tthis.trigger('DOMLoaded');\n\t\t}.bind(this), 0);\n\t\tthis.gotoFrame();\n\t\tif (this.autoplay) {\n\t\t\tthis.play();\n\t\t}\n\t}\n};\n\nAnimationItem.prototype.resize = function () {\n\tthis.renderer.updateContainerSize();\n};\n\nAnimationItem.prototype.setSubframe = function (flag) {\n\tthis.isSubframeEnabled = !!flag;\n};\n\nAnimationItem.prototype.gotoFrame = function () {\n\tthis.currentFrame = this.isSubframeEnabled ? this.currentRawFrame : ~~this.currentRawFrame; // eslint-disable-line no-bitwise\n\n\tif (this.timeCompleted !== this.totalFrames && this.currentFrame > this.timeCompleted) {\n\t\tthis.currentFrame = this.timeCompleted;\n\t}\n\tthis.trigger('enterFrame');\n\tthis.renderFrame();\n\tthis.trigger('drawnFrame');\n};\n\nAnimationItem.prototype.renderFrame = function () {\n\tif (this.isLoaded === false || !this.renderer) {\n\t\treturn;\n\t}\n\ttry {\n\t\tthis.renderer.renderFrame(this.currentFrame + this.firstFrame);\n\t} catch (error) {\n\t\tthis.triggerRenderFrameError(error);\n\t}\n};\n\nAnimationItem.prototype.play = function (name) {\n\tif (name && this.name !== name) {\n\t\treturn;\n\t}\n\tif (this.isPaused === true) {\n\t\tthis.isPaused = false;\n\t\tthis.trigger('_pause');\n\t\tthis.audioController.resume();\n\t\tif (this._idle) {\n\t\t\tthis._idle = false;\n\t\t\tthis.trigger('_active');\n\t\t}\n\t}\n};\n\nAnimationItem.prototype.pause = function (name) {\n\tif (name && this.name !== name) {\n\t\treturn;\n\t}\n\tif (this.isPaused === false) {\n\t\tthis.isPaused = true;\n\t\tthis.trigger('_play');\n\t\tthis._idle = true;\n\t\tthis.trigger('_idle');\n\t\tthis.audioController.pause();\n\t}\n};\n\nAnimationItem.prototype.togglePause = function (name) {\n\tif (name && this.name !== name) {\n\t\treturn;\n\t}\n\tif (this.isPaused === true) {\n\t\tthis.play();\n\t} else {\n\t\tthis.pause();\n\t}\n};\n\nAnimationItem.prototype.stop = function (name) {\n\tif (name && this.name !== name) {\n\t\treturn;\n\t}\n\tthis.pause();\n\tthis.playCount = 0;\n\tthis._completedLoop = false;\n\tthis.setCurrentRawFrameValue(0);\n};\n\nAnimationItem.prototype.getMarkerData = function (markerName) {\n\tvar marker;\n\tfor (var i = 0; i < this.markers.length; i += 1) {\n\t\tmarker = this.markers[i];\n\t\tif (marker.payload && marker.payload.name === markerName) {\n\t\t\treturn marker;\n\t\t}\n\t}\n\treturn null;\n};\n\nAnimationItem.prototype.goToAndStop = function (value, isFrame, name) {\n\tif (name && this.name !== name) {\n\t\treturn;\n\t}\n\tvar numValue = Number(value);\n\tif (isNaN(numValue)) {\n\t\tvar marker = this.getMarkerData(value);\n\t\tif (marker) {\n\t\t\tthis.goToAndStop(marker.time, true);\n\t\t}\n\t} else if (isFrame) {\n\t\tthis.setCurrentRawFrameValue(value);\n\t} else {\n\t\tthis.setCurrentRawFrameValue(value * this.frameModifier);\n\t}\n\tthis.pause();\n};\n\nAnimationItem.prototype.goToAndPlay = function (value, isFrame, name) {\n\tif (name && this.name !== name) {\n\t\treturn;\n\t}\n\tvar numValue = Number(value);\n\tif (isNaN(numValue)) {\n\t\tvar marker = this.getMarkerData(value);\n\t\tif (marker) {\n\t\t\tif (!marker.duration) {\n\t\t\t\tthis.goToAndStop(marker.time, true);\n\t\t\t} else {\n\t\t\t\tthis.playSegments([marker.time, marker.time + marker.duration], true);\n\t\t\t}\n\t\t}\n\t} else {\n\t\tthis.goToAndStop(numValue, isFrame, name);\n\t}\n\tthis.play();\n};\n\nAnimationItem.prototype.advanceTime = function (value) {\n\tif (this.isPaused === true || this.isLoaded === false) {\n\t\treturn;\n\t}\n\tvar nextValue = this.currentRawFrame + value * this.frameModifier;\n\tvar _isComplete = false;\n\t// Checking if nextValue > totalFrames - 1 for addressing non looping and looping animations.\n\t// If animation won't loop, it should stop at totalFrames - 1. If it will loop it should complete the last frame and then loop.\n\tif (nextValue >= this.totalFrames - 1 && this.frameModifier > 0) {\n\t\tif (!this.loop || this.playCount === this.loop) {\n\t\t\tif (!this.checkSegments(nextValue > this.totalFrames ? nextValue % this.totalFrames : 0)) {\n\t\t\t\t_isComplete = true;\n\t\t\t\tnextValue = this.totalFrames - 1;\n\t\t\t}\n\t\t} else if (nextValue >= this.totalFrames) {\n\t\t\tthis.playCount += 1;\n\t\t\tif (!this.checkSegments(nextValue % this.totalFrames)) {\n\t\t\t\tthis.setCurrentRawFrameValue(nextValue % this.totalFrames);\n\t\t\t\tthis._completedLoop = true;\n\t\t\t\tthis.trigger('loopComplete');\n\t\t\t}\n\t\t} else {\n\t\t\tthis.setCurrentRawFrameValue(nextValue);\n\t\t}\n\t} else if (nextValue < 0) {\n\t\tif (!this.checkSegments(nextValue % this.totalFrames)) {\n\t\t\tif (this.loop && !(this.playCount-- <= 0 && this.loop !== true)) { // eslint-disable-line no-plusplus\n\t\t\t\tthis.setCurrentRawFrameValue(this.totalFrames + (nextValue % this.totalFrames));\n\t\t\t\tif (!this._completedLoop) {\n\t\t\t\t\tthis._completedLoop = true;\n\t\t\t\t} else {\n\t\t\t\t\tthis.trigger('loopComplete');\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t_isComplete = true;\n\t\t\t\tnextValue = 0;\n\t\t\t}\n\t\t}\n\t} else {\n\t\tthis.setCurrentRawFrameValue(nextValue);\n\t}\n\tif (_isComplete) {\n\t\tthis.setCurrentRawFrameValue(nextValue);\n\t\tthis.pause();\n\t\tthis.trigger('complete');\n\t}\n};\n\nAnimationItem.prototype.adjustSegment = function (arr, offset) {\n\tthis.playCount = 0;\n\tif (arr[1] < arr[0]) {\n\t\tif (this.frameModifier > 0) {\n\t\t\tif (this.playSpeed < 0) {\n\t\t\t\tthis.setSpeed(-this.playSpeed);\n\t\t\t} else {\n\t\t\t\tthis.setDirection(-1);\n\t\t\t}\n\t\t}\n\t\tthis.totalFrames = arr[0] - arr[1];\n\t\tthis.timeCompleted = this.totalFrames;\n\t\tthis.firstFrame = arr[1];\n\t\tthis.setCurrentRawFrameValue(this.totalFrames - 0.001 - offset);\n\t} else if (arr[1] > arr[0]) {\n\t\tif (this.frameModifier < 0) {\n\t\t\tif (this.playSpeed < 0) {\n\t\t\t\tthis.setSpeed(-this.playSpeed);\n\t\t\t} else {\n\t\t\t\tthis.setDirection(1);\n\t\t\t}\n\t\t}\n\t\tthis.totalFrames = arr[1] - arr[0];\n\t\tthis.timeCompleted = this.totalFrames;\n\t\tthis.firstFrame = arr[0];\n\t\tthis.setCurrentRawFrameValue(0.001 + offset);\n\t}\n\tthis.trigger('segmentStart');\n};\nAnimationItem.prototype.setSegment = function (init, end) {\n\tvar pendingFrame = -1;\n\tif (this.isPaused) {\n\t\tif (this.currentRawFrame + this.firstFrame < init) {\n\t\t\tpendingFrame = init;\n\t\t} else if (this.currentRawFrame + this.firstFrame > end) {\n\t\t\tpendingFrame = end - init;\n\t\t}\n\t}\n\n\tthis.firstFrame = init;\n\tthis.totalFrames = end - init;\n\tthis.timeCompleted = this.totalFrames;\n\tif (pendingFrame !== -1) {\n\t\tthis.goToAndStop(pendingFrame, true);\n\t}\n};\n\nAnimationItem.prototype.playSegments = function (arr, forceFlag) {\n\tif (forceFlag) {\n\t\tthis.segments.length = 0;\n\t}\n\tif (typeof arr[0] === 'object') {\n\t\tvar i;\n\t\tvar len = arr.length;\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tthis.segments.push(arr[i]);\n\t\t}\n\t} else {\n\t\tthis.segments.push(arr);\n\t}\n\tif (this.segments.length && forceFlag) {\n\t\tthis.adjustSegment(this.segments.shift(), 0);\n\t}\n\tif (this.isPaused) {\n\t\tthis.play();\n\t}\n};\n\nAnimationItem.prototype.resetSegments = function (forceFlag) {\n\tthis.segments.length = 0;\n\tthis.segments.push([this.animationData.ip, this.animationData.op]);\n\tif (forceFlag) {\n\t\tthis.checkSegments(0);\n\t}\n};\nAnimationItem.prototype.checkSegments = function (offset) {\n\tif (this.segments.length) {\n\t\tthis.adjustSegment(this.segments.shift(), offset);\n\t\treturn true;\n\t}\n\treturn false;\n};\n\nAnimationItem.prototype.destroy = function (name) {\n\tif ((name && this.name !== name) || !this.renderer) {\n\t\treturn;\n\t}\n\tthis.renderer.destroy();\n\tthis.imagePreloader.destroy();\n\tthis.trigger('destroy');\n\tthis._cbs = null;\n\tthis.onEnterFrame = null;\n\tthis.onLoopComplete = null;\n\tthis.onComplete = null;\n\tthis.onSegmentStart = null;\n\tthis.onDestroy = null;\n\tthis.renderer = null;\n\tthis.renderer = null;\n\tthis.imagePreloader = null;\n\tthis.projectInterface = null;\n};\n\nAnimationItem.prototype.setCurrentRawFrameValue = function (value) {\n\tthis.currentRawFrame = value;\n\tthis.gotoFrame();\n};\n\nAnimationItem.prototype.setSpeed = function (val) {\n\tthis.playSpeed = val;\n\tthis.updaFrameModifier();\n};\n\nAnimationItem.prototype.setDirection = function (val) {\n\tthis.playDirection = val < 0 ? -1 : 1;\n\tthis.updaFrameModifier();\n};\n\nAnimationItem.prototype.setVolume = function (val, name) {\n\tif (name && this.name !== name) {\n\t\treturn;\n\t}\n\tthis.audioController.setVolume(val);\n};\n\nAnimationItem.prototype.getVolume = function () {\n\treturn this.audioController.getVolume();\n};\n\nAnimationItem.prototype.mute = function (name) {\n\tif (name && this.name !== name) {\n\t\treturn;\n\t}\n\tthis.audioController.mute();\n};\n\nAnimationItem.prototype.unmute = function (name) {\n\tif (name && this.name !== name) {\n\t\treturn;\n\t}\n\tthis.audioController.unmute();\n};\n\nAnimationItem.prototype.updaFrameModifier = function () {\n\tthis.frameModifier = this.frameMult * this.playSpeed * this.playDirection;\n\tthis.audioController.setRate(this.playSpeed * this.playDirection);\n};\n\nAnimationItem.prototype.getPath = function () {\n\treturn this.path;\n};\n\nAnimationItem.prototype.getAssetsPath = function (assetData) {\n\tvar path = '';\n\tif (assetData.e) {\n\t\tpath = assetData.p;\n\t} else if (this.assetsPath) {\n\t\tvar imagePath = assetData.p;\n\t\tif (imagePath.indexOf('images/') !== -1) {\n\t\t\timagePath = imagePath.split('/')[1];\n\t\t}\n\t\tpath = this.assetsPath + imagePath;\n\t} else {\n\t\tpath = this.path;\n\t\tpath += assetData.u ? assetData.u : '';\n\t\tpath += assetData.p;\n\t}\n\treturn path;\n};\n\nAnimationItem.prototype.getAssetData = function (id) {\n\tvar i = 0;\n\tvar len = this.assets.length;\n\twhile (i < len) {\n\t\tif (id === this.assets[i].id) {\n\t\t\treturn this.assets[i];\n\t\t}\n\t\ti += 1;\n\t}\n\treturn null;\n};\n\nAnimationItem.prototype.hide = function () {\n\tthis.renderer.hide();\n};\n\nAnimationItem.prototype.show = function () {\n\tthis.renderer.show();\n};\n\nAnimationItem.prototype.getDuration = function (isFrame) {\n\treturn isFrame ? this.totalFrames : this.totalFrames / this.frameRate;\n};\n\nAnimationItem.prototype.updateDocumentData = function (path, documentData, index) {\n\ttry {\n\t\tvar element = this.renderer.getElementByPath(path);\n\t\telement.updateDocumentData(documentData, index);\n\t} catch (error) {\n\t\t// TODO: decide how to handle catch case\n\t}\n};\n\nAnimationItem.prototype.trigger = function (name) {\n\tif (this._cbs && this._cbs[name]) {\n\t\tswitch (name) {\n\t\t\tcase 'enterFrame':\n\t\t\t\tthis.triggerEvent(name, new BMEnterFrameEvent(name, this.currentFrame, this.totalFrames, this.frameModifier));\n\t\t\t\tbreak;\n\t\t\tcase 'drawnFrame':\n\t\t\t\tthis.drawnFrameEvent.currentTime = this.currentFrame;\n\t\t\t\tthis.drawnFrameEvent.totalTime = this.totalFrames;\n\t\t\t\tthis.drawnFrameEvent.direction = this.frameModifier;\n\t\t\t\tthis.triggerEvent(name, this.drawnFrameEvent);\n\t\t\t\tbreak;\n\t\t\tcase 'loopComplete':\n\t\t\t\tthis.triggerEvent(name, new BMCompleteLoopEvent(name, this.loop, this.playCount, this.frameMult));\n\t\t\t\tbreak;\n\t\t\tcase 'complete':\n\t\t\t\tthis.triggerEvent(name, new BMCompleteEvent(name, this.frameMult));\n\t\t\t\tbreak;\n\t\t\tcase 'segmentStart':\n\t\t\t\tthis.triggerEvent(name, new BMSegmentStartEvent(name, this.firstFrame, this.totalFrames));\n\t\t\t\tbreak;\n\t\t\tcase 'destroy':\n\t\t\t\tthis.triggerEvent(name, new BMDestroyEvent(name, this));\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tthis.triggerEvent(name);\n\t\t}\n\t}\n\tif (name === 'enterFrame' && this.onEnterFrame) {\n\t\tthis.onEnterFrame.call(this, new BMEnterFrameEvent(name, this.currentFrame, this.totalFrames, this.frameMult));\n\t}\n\tif (name === 'loopComplete' && this.onLoopComplete) {\n\t\tthis.onLoopComplete.call(this, new BMCompleteLoopEvent(name, this.loop, this.playCount, this.frameMult));\n\t}\n\tif (name === 'complete' && this.onComplete) {\n\t\tthis.onComplete.call(this, new BMCompleteEvent(name, this.frameMult));\n\t}\n\tif (name === 'segmentStart' && this.onSegmentStart) {\n\t\tthis.onSegmentStart.call(this, new BMSegmentStartEvent(name, this.firstFrame, this.totalFrames));\n\t}\n\tif (name === 'destroy' && this.onDestroy) {\n\t\tthis.onDestroy.call(this, new BMDestroyEvent(name, this));\n\t}\n};\n\nAnimationItem.prototype.triggerRenderFrameError = function (nativeError) {\n\tvar error = new BMRenderFrameErrorEvent(nativeError, this.currentFrame);\n\tthis.triggerEvent('error', error);\n\n\tif (this.onError) {\n\t\tthis.onError.call(this, error);\n\t}\n};\n\nAnimationItem.prototype.triggerConfigError = function (nativeError) {\n\tvar error = new BMConfigErrorEvent(nativeError, this.currentFrame);\n\tthis.triggerEvent('error', error);\n\n\tif (this.onError) {\n\t\tthis.onError.call(this, error);\n\t}\n};\n\nconst animationManager = (function () {\n\tvar moduleOb = {};\n\tvar registeredAnimations = [];\n\tvar initTime = 0;\n\tvar len = 0;\n\tvar playingAnimationsNum = 0;\n\tvar _stopped = true;\n\tvar _isFrozen = false;\n\n\tfunction removeElement(ev) {\n\t\tvar i = 0;\n\t\tvar animItem = ev.target;\n\t\twhile (i < len) {\n\t\t\tif (registeredAnimations[i].animation === animItem) {\n\t\t\t\tregisteredAnimations.splice(i, 1);\n\t\t\t\ti -= 1;\n\t\t\t\tlen -= 1;\n\t\t\t\tif (!animItem.isPaused) {\n\t\t\t\t\tsubtractPlayingCount();\n\t\t\t\t}\n\t\t\t}\n\t\t\ti += 1;\n\t\t}\n\t}\n\n\tfunction registerAnimation(element, animationData) {\n\t\tif (!element) {\n\t\t\treturn null;\n\t\t}\n\t\tvar i = 0;\n\t\twhile (i < len) {\n\t\t\tif (registeredAnimations[i].elem === element && registeredAnimations[i].elem !== null) {\n\t\t\t\treturn registeredAnimations[i].animation;\n\t\t\t}\n\t\t\ti += 1;\n\t\t}\n\t\tvar animItem = new AnimationItem();\n\t\tsetupAnimation(animItem, element);\n\t\tanimItem.setData(element, animationData);\n\t\treturn animItem;\n\t}\n\n\tfunction getRegisteredAnimations() {\n\t\tvar i;\n\t\tvar lenAnims = registeredAnimations.length;\n\t\tvar animations = [];\n\t\tfor (i = 0; i < lenAnims; i += 1) {\n\t\t\tanimations.push(registeredAnimations[i].animation);\n\t\t}\n\t\treturn animations;\n\t}\n\n\tfunction addPlayingCount() {\n\t\tplayingAnimationsNum += 1;\n\t\tactivate();\n\t}\n\n\tfunction subtractPlayingCount() {\n\t\tplayingAnimationsNum -= 1;\n\t}\n\n\tfunction setupAnimation(animItem, element) {\n\t\tanimItem.addEventListener('destroy', removeElement);\n\t\tanimItem.addEventListener('_active', addPlayingCount);\n\t\tanimItem.addEventListener('_idle', subtractPlayingCount);\n\t\tregisteredAnimations.push({ elem: element, animation: animItem });\n\t\tlen += 1;\n\t}\n\n\tfunction loadAnimation(params) {\n\t\tvar animItem = new AnimationItem();\n\t\tsetupAnimation(animItem, null);\n\t\tanimItem.setParams(params);\n\t\treturn animItem;\n\t}\n\n\tfunction setSpeed(val, animation) {\n\t\tvar i;\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tregisteredAnimations[i].animation.setSpeed(val, animation);\n\t\t}\n\t}\n\n\tfunction setDirection(val, animation) {\n\t\tvar i;\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tregisteredAnimations[i].animation.setDirection(val, animation);\n\t\t}\n\t}\n\n\tfunction play(animation) {\n\t\tvar i;\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tregisteredAnimations[i].animation.play(animation);\n\t\t}\n\t}\n\tfunction resume(nowTime) {\n\t\tvar elapsedTime = nowTime - initTime;\n\t\tvar i;\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tregisteredAnimations[i].animation.advanceTime(elapsedTime);\n\t\t}\n\t\tinitTime = nowTime;\n\t\tif (playingAnimationsNum && !_isFrozen) {\n\t\t\twindow.requestAnimationFrame(resume);\n\t\t} else {\n\t\t\t_stopped = true;\n\t\t}\n\t}\n\n\tfunction first(nowTime) {\n\t\tinitTime = nowTime;\n\t\twindow.requestAnimationFrame(resume);\n\t}\n\n\tfunction pause(animation) {\n\t\tvar i;\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tregisteredAnimations[i].animation.pause(animation);\n\t\t}\n\t}\n\n\tfunction goToAndStop(value, isFrame, animation) {\n\t\tvar i;\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tregisteredAnimations[i].animation.goToAndStop(value, isFrame, animation);\n\t\t}\n\t}\n\n\tfunction stop(animation) {\n\t\tvar i;\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tregisteredAnimations[i].animation.stop(animation);\n\t\t}\n\t}\n\n\tfunction togglePause(animation) {\n\t\tvar i;\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tregisteredAnimations[i].animation.togglePause(animation);\n\t\t}\n\t}\n\n\tfunction destroy(animation) {\n\t\tvar i;\n\t\tfor (i = (len - 1); i >= 0; i -= 1) {\n\t\t\tregisteredAnimations[i].animation.destroy(animation);\n\t\t}\n\t}\n\n\tfunction searchAnimations(animationData, standalone, renderer) {\n\t\tvar animElements = [].concat([].slice.call(document.getElementsByClassName('lottie')),\n\t\t\t[].slice.call(document.getElementsByClassName('bodymovin')));\n\t\tvar i;\n\t\tvar lenAnims = animElements.length;\n\t\tfor (i = 0; i < lenAnims; i += 1) {\n\t\t\tif (renderer) {\n\t\t\t\tanimElements[i].setAttribute('data-bm-type', renderer);\n\t\t\t}\n\t\t\tregisterAnimation(animElements[i], animationData);\n\t\t}\n\t\tif (standalone && lenAnims === 0) {\n\t\t\tif (!renderer) {\n\t\t\t\trenderer = 'svg';\n\t\t\t}\n\t\t\tvar body = document.getElementsByTagName('body')[0];\n\t\t\tbody.innerText = '';\n\t\t\tvar div = createTag('div');\n\t\t\tdiv.style.width = '100%';\n\t\t\tdiv.style.height = '100%';\n\t\t\tdiv.setAttribute('data-bm-type', renderer);\n\t\t\tbody.appendChild(div);\n\t\t\tregisterAnimation(div, animationData);\n\t\t}\n\t}\n\n\tfunction resize() {\n\t\tvar i;\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tregisteredAnimations[i].animation.resize();\n\t\t}\n\t}\n\n\tfunction activate() {\n\t\tif (!_isFrozen && playingAnimationsNum) {\n\t\t\tif (_stopped) {\n\t\t\t\twindow.requestAnimationFrame(first);\n\t\t\t\t_stopped = false;\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction freeze() {\n\t\t_isFrozen = true;\n\t}\n\n\tfunction unfreeze() {\n\t\t_isFrozen = false;\n\t\tactivate();\n\t}\n\n\tfunction setVolume(val, animation) {\n\t\tvar i;\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tregisteredAnimations[i].animation.setVolume(val, animation);\n\t\t}\n\t}\n\n\tfunction mute(animation) {\n\t\tvar i;\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tregisteredAnimations[i].animation.mute(animation);\n\t\t}\n\t}\n\n\tfunction unmute(animation) {\n\t\tvar i;\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tregisteredAnimations[i].animation.unmute(animation);\n\t\t}\n\t}\n\n\tmoduleOb.registerAnimation = registerAnimation;\n\tmoduleOb.loadAnimation = loadAnimation;\n\tmoduleOb.setSpeed = setSpeed;\n\tmoduleOb.setDirection = setDirection;\n\tmoduleOb.play = play;\n\tmoduleOb.pause = pause;\n\tmoduleOb.stop = stop;\n\tmoduleOb.togglePause = togglePause;\n\tmoduleOb.searchAnimations = searchAnimations;\n\tmoduleOb.resize = resize;\n\t// moduleOb.start = start;\n\tmoduleOb.goToAndStop = goToAndStop;\n\tmoduleOb.destroy = destroy;\n\tmoduleOb.freeze = freeze;\n\tmoduleOb.unfreeze = unfreeze;\n\tmoduleOb.setVolume = setVolume;\n\tmoduleOb.mute = mute;\n\tmoduleOb.unmute = unmute;\n\tmoduleOb.getRegisteredAnimations = getRegisteredAnimations;\n\treturn moduleOb;\n}());\n\n/* eslint-disable */\nconst BezierFactory = (function () {\n\t/**\n\t * BezierEasing - use bezier curve for transition easing function\n\t * by Gaetan Renaudeau 2014 - 2015 - MIT License\n\t *\n\t * Credits: is based on Firefox's nsSMILKeySpline.cpp\n\t * Usage:\n\t * var spline = BezierEasing([ 0.25, 0.1, 0.25, 1.0 ])\n\t * spline.get(x) => returns the easing value | x must be in [0, 1] range\n\t *\n\t */\n\n\tvar ob = {};\n\tob.getBezierEasing = getBezierEasing;\n\tvar beziers = {};\n\n\tfunction getBezierEasing(a, b, c, d, nm) {\n\t\tvar str = nm || ('bez_' + a + '_' + b + '_' + c + '_' + d).replace(/\\./g, 'p');\n\t\tif (beziers[str]) {\n\t\t\treturn beziers[str];\n\t\t}\n\t\tvar bezEasing = new BezierEasing([a, b, c, d]);\n\t\tbeziers[str] = bezEasing;\n\t\treturn bezEasing;\n\t}\n\n\t// These values are established by empiricism with tests (tradeoff: performance VS precision)\n\tvar NEWTON_ITERATIONS = 4;\n\tvar NEWTON_MIN_SLOPE = 0.001;\n\tvar SUBDIVISION_PRECISION = 0.0000001;\n\tvar SUBDIVISION_MAX_ITERATIONS = 10;\n\n\tvar kSplineTableSize = 11;\n\tvar kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);\n\n\tvar float32ArraySupported = typeof Float32Array === 'function';\n\n\tfunction A(aA1, aA2) { return 1.0 - 3.0 * aA2 + 3.0 * aA1; }\n\tfunction B(aA1, aA2) { return 3.0 * aA2 - 6.0 * aA1; }\n\tfunction C(aA1) { return 3.0 * aA1; }\n\n\t// Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\n\tfunction calcBezier(aT, aA1, aA2) {\n\t\treturn ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT;\n\t}\n\n\t// Returns dx/dt given t, x1, and x2, or dy/dt given t, y1, and y2.\n\tfunction getSlope(aT, aA1, aA2) {\n\t\treturn 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1);\n\t}\n\n\tfunction binarySubdivide(aX, aA, aB, mX1, mX2) {\n\t\tvar currentX,\n\t\t\tcurrentT,\n\t\t\ti = 0;\n\t\tdo {\n\t\t\tcurrentT = aA + (aB - aA) / 2.0;\n\t\t\tcurrentX = calcBezier(currentT, mX1, mX2) - aX;\n\t\t\tif (currentX > 0.0) {\n\t\t\t\taB = currentT;\n\t\t\t} else {\n\t\t\t\taA = currentT;\n\t\t\t}\n\t\t} while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);\n\t\treturn currentT;\n\t}\n\n\tfunction newtonRaphsonIterate(aX, aGuessT, mX1, mX2) {\n\t\tfor (var i = 0; i < NEWTON_ITERATIONS; ++i) {\n\t\t\tvar currentSlope = getSlope(aGuessT, mX1, mX2);\n\t\t\tif (currentSlope === 0.0) return aGuessT;\n\t\t\tvar currentX = calcBezier(aGuessT, mX1, mX2) - aX;\n\t\t\taGuessT -= currentX / currentSlope;\n\t\t}\n\t\treturn aGuessT;\n\t}\n\n\t/**\n\t * points is an array of [ mX1, mY1, mX2, mY2 ]\n\t */\n\tfunction BezierEasing(points) {\n\t\tthis._p = points;\n\t\tthis._mSampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize);\n\t\tthis._precomputed = false;\n\n\t\tthis.get = this.get.bind(this);\n\t}\n\n\tBezierEasing.prototype = {\n\n\t\tget: function (x) {\n\t\t\tvar mX1 = this._p[0],\n\t\t\t\tmY1 = this._p[1],\n\t\t\t\tmX2 = this._p[2],\n\t\t\t\tmY2 = this._p[3];\n\t\t\tif (!this._precomputed) this._precompute();\n\t\t\tif (mX1 === mY1 && mX2 === mY2) return x; // linear\n\t\t\t// Because JavaScript number are imprecise, we should guarantee the extremes are right.\n\t\t\tif (x === 0) return 0;\n\t\t\tif (x === 1) return 1;\n\t\t\treturn calcBezier(this._getTForX(x), mY1, mY2);\n\t\t},\n\n\t\t// Private part\n\n\t\t_precompute: function () {\n\t\t\tvar mX1 = this._p[0],\n\t\t\t\tmY1 = this._p[1],\n\t\t\t\tmX2 = this._p[2],\n\t\t\t\tmY2 = this._p[3];\n\t\t\tthis._precomputed = true;\n\t\t\tif (mX1 !== mY1 || mX2 !== mY2) { this._calcSampleValues(); }\n\t\t},\n\n\t\t_calcSampleValues: function () {\n\t\t\tvar mX1 = this._p[0],\n\t\t\t\tmX2 = this._p[2];\n\t\t\tfor (var i = 0; i < kSplineTableSize; ++i) {\n\t\t\t\tthis._mSampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * getTForX chose the fastest heuristic to determine the percentage value precisely from a given X projection.\n\t\t */\n\t\t_getTForX: function (aX) {\n\t\t\tvar mX1 = this._p[0],\n\t\t\t\tmX2 = this._p[2],\n\t\t\t\tmSampleValues = this._mSampleValues;\n\n\t\t\tvar intervalStart = 0.0;\n\t\t\tvar currentSample = 1;\n\t\t\tvar lastSample = kSplineTableSize - 1;\n\n\t\t\tfor (; currentSample !== lastSample && mSampleValues[currentSample] <= aX; ++currentSample) {\n\t\t\t\tintervalStart += kSampleStepSize;\n\t\t\t}\n\t\t\t--currentSample;\n\n\t\t\t// Interpolate to provide an initial guess for t\n\t\t\tvar dist = (aX - mSampleValues[currentSample]) / (mSampleValues[currentSample + 1] - mSampleValues[currentSample]);\n\t\t\tvar guessForT = intervalStart + dist * kSampleStepSize;\n\n\t\t\tvar initialSlope = getSlope(guessForT, mX1, mX2);\n\t\t\tif (initialSlope >= NEWTON_MIN_SLOPE) {\n\t\t\t\treturn newtonRaphsonIterate(aX, guessForT, mX1, mX2);\n\t\t\t} if (initialSlope === 0.0) {\n\t\t\t\treturn guessForT;\n\t\t\t}\n\t\t\treturn binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);\n\t\t},\n\t};\n\n\treturn ob;\n}());\n\nconst pooling = (function () {\n\tfunction double(arr) {\n\t\treturn arr.concat(createSizedArray(arr.length));\n\t}\n\n\treturn {\n\t\tdouble: double,\n\t};\n}());\n\nconst poolFactory = (function () {\n\treturn function (initialLength, _create, _release) {\n\t\tvar _length = 0;\n\t\tvar _maxLength = initialLength;\n\t\tvar pool = createSizedArray(_maxLength);\n\n\t\tvar ob = {\n\t\t\tnewElement: newElement,\n\t\t\trelease: release,\n\t\t};\n\n\t\tfunction newElement() {\n\t\t\tvar element;\n\t\t\tif (_length) {\n\t\t\t\t_length -= 1;\n\t\t\t\telement = pool[_length];\n\t\t\t} else {\n\t\t\t\telement = _create();\n\t\t\t}\n\t\t\treturn element;\n\t\t}\n\n\t\tfunction release(element) {\n\t\t\tif (_length === _maxLength) {\n\t\t\t\tpool = pooling.double(pool);\n\t\t\t\t_maxLength *= 2;\n\t\t\t}\n\t\t\tif (_release) {\n\t\t\t\t_release(element);\n\t\t\t}\n\t\t\tpool[_length] = element;\n\t\t\t_length += 1;\n\t\t}\n\n\t\treturn ob;\n\t};\n}());\n\nconst bezierLengthPool = (function () {\n\tfunction create() {\n\t\treturn {\n\t\t\taddedLength: 0,\n\t\t\tpercents: createTypedArray('float32', getDefaultCurveSegments()),\n\t\t\tlengths: createTypedArray('float32', getDefaultCurveSegments()),\n\t\t};\n\t}\n\treturn poolFactory(8, create);\n}());\n\nconst segmentsLengthPool = (function () {\n\tfunction create() {\n\t\treturn {\n\t\t\tlengths: [],\n\t\t\ttotalLength: 0,\n\t\t};\n\t}\n\n\tfunction release(element) {\n\t\tvar i;\n\t\tvar len = element.lengths.length;\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tbezierLengthPool.release(element.lengths[i]);\n\t\t}\n\t\telement.lengths.length = 0;\n\t}\n\n\treturn poolFactory(8, create, release);\n}());\n\nfunction bezFunction() {\n\tvar math = Math;\n\n\tfunction pointOnLine2D(x1, y1, x2, y2, x3, y3) {\n\t\tvar det1 = (x1 * y2) + (y1 * x3) + (x2 * y3) - (x3 * y2) - (y3 * x1) - (x2 * y1);\n\t\treturn det1 > -0.001 && det1 < 0.001;\n\t}\n\n\tfunction pointOnLine3D(x1, y1, z1, x2, y2, z2, x3, y3, z3) {\n\t\tif (z1 === 0 && z2 === 0 && z3 === 0) {\n\t\t\treturn pointOnLine2D(x1, y1, x2, y2, x3, y3);\n\t\t}\n\t\tvar dist1 = math.sqrt(math.pow(x2 - x1, 2) + math.pow(y2 - y1, 2) + math.pow(z2 - z1, 2));\n\t\tvar dist2 = math.sqrt(math.pow(x3 - x1, 2) + math.pow(y3 - y1, 2) + math.pow(z3 - z1, 2));\n\t\tvar dist3 = math.sqrt(math.pow(x3 - x2, 2) + math.pow(y3 - y2, 2) + math.pow(z3 - z2, 2));\n\t\tvar diffDist;\n\t\tif (dist1 > dist2) {\n\t\t\tif (dist1 > dist3) {\n\t\t\t\tdiffDist = dist1 - dist2 - dist3;\n\t\t\t} else {\n\t\t\t\tdiffDist = dist3 - dist2 - dist1;\n\t\t\t}\n\t\t} else if (dist3 > dist2) {\n\t\t\tdiffDist = dist3 - dist2 - dist1;\n\t\t} else {\n\t\t\tdiffDist = dist2 - dist1 - dist3;\n\t\t}\n\t\treturn diffDist > -0.0001 && diffDist < 0.0001;\n\t}\n\n\tvar getBezierLength = (function () {\n\t\treturn function (pt1, pt2, pt3, pt4) {\n\t\t\tvar curveSegments = getDefaultCurveSegments();\n\t\t\tvar k;\n\t\t\tvar i;\n\t\t\tvar len;\n\t\t\tvar ptCoord;\n\t\t\tvar perc;\n\t\t\tvar addedLength = 0;\n\t\t\tvar ptDistance;\n\t\t\tvar point = [];\n\t\t\tvar lastPoint = [];\n\t\t\tvar lengthData = bezierLengthPool.newElement();\n\t\t\tlen = pt3.length;\n\t\t\tfor (k = 0; k < curveSegments; k += 1) {\n\t\t\t\tperc = k / (curveSegments - 1);\n\t\t\t\tptDistance = 0;\n\t\t\t\tfor (i = 0; i < len; i += 1) {\n\t\t\t\t\tptCoord = bmPow(1 - perc, 3) * pt1[i] + 3 * bmPow(1 - perc, 2) * perc * pt3[i] + 3 * (1 - perc) * bmPow(perc, 2) * pt4[i] + bmPow(perc, 3) * pt2[i];\n\t\t\t\t\tpoint[i] = ptCoord;\n\t\t\t\t\tif (lastPoint[i] !== null) {\n\t\t\t\t\t\tptDistance += bmPow(point[i] - lastPoint[i], 2);\n\t\t\t\t\t}\n\t\t\t\t\tlastPoint[i] = point[i];\n\t\t\t\t}\n\t\t\t\tif (ptDistance) {\n\t\t\t\t\tptDistance = bmSqrt(ptDistance);\n\t\t\t\t\taddedLength += ptDistance;\n\t\t\t\t}\n\t\t\t\tlengthData.percents[k] = perc;\n\t\t\t\tlengthData.lengths[k] = addedLength;\n\t\t\t}\n\t\t\tlengthData.addedLength = addedLength;\n\t\t\treturn lengthData;\n\t\t};\n\t}());\n\n\tfunction getSegmentsLength(shapeData) {\n\t\tvar segmentsLength = segmentsLengthPool.newElement();\n\t\tvar closed = shapeData.c;\n\t\tvar pathV = shapeData.v;\n\t\tvar pathO = shapeData.o;\n\t\tvar pathI = shapeData.i;\n\t\tvar i;\n\t\tvar len = shapeData._length;\n\t\tvar lengths = segmentsLength.lengths;\n\t\tvar totalLength = 0;\n\t\tfor (i = 0; i < len - 1; i += 1) {\n\t\t\tlengths[i] = getBezierLength(pathV[i], pathV[i + 1], pathO[i], pathI[i + 1]);\n\t\t\ttotalLength += lengths[i].addedLength;\n\t\t}\n\t\tif (closed && len) {\n\t\t\tlengths[i] = getBezierLength(pathV[i], pathV[0], pathO[i], pathI[0]);\n\t\t\ttotalLength += lengths[i].addedLength;\n\t\t}\n\t\tsegmentsLength.totalLength = totalLength;\n\t\treturn segmentsLength;\n\t}\n\n\tfunction BezierData(length) {\n\t\tthis.segmentLength = 0;\n\t\tthis.points = new Array(length);\n\t}\n\n\tfunction PointData(partial, point) {\n\t\tthis.partialLength = partial;\n\t\tthis.point = point;\n\t}\n\n\tvar buildBezierData = (function () {\n\t\tvar storedData = {};\n\n\t\treturn function (pt1, pt2, pt3, pt4) {\n\t\t\tvar bezierName = (pt1[0] + '_' + pt1[1] + '_' + pt2[0] + '_' + pt2[1] + '_' + pt3[0] + '_' + pt3[1] + '_' + pt4[0] + '_' + pt4[1]).replace(/\\./g, 'p');\n\t\t\tif (!storedData[bezierName]) {\n\t\t\t\tvar curveSegments = getDefaultCurveSegments();\n\t\t\t\tvar k;\n\t\t\t\tvar i;\n\t\t\t\tvar len;\n\t\t\t\tvar ptCoord;\n\t\t\t\tvar perc;\n\t\t\t\tvar addedLength = 0;\n\t\t\t\tvar ptDistance;\n\t\t\t\tvar point;\n\t\t\t\tvar lastPoint = null;\n\t\t\t\tif (pt1.length === 2 && (pt1[0] !== pt2[0] || pt1[1] !== pt2[1]) && pointOnLine2D(pt1[0], pt1[1], pt2[0], pt2[1], pt1[0] + pt3[0], pt1[1] + pt3[1]) && pointOnLine2D(pt1[0], pt1[1], pt2[0], pt2[1], pt2[0] + pt4[0], pt2[1] + pt4[1])) {\n\t\t\t\t\tcurveSegments = 2;\n\t\t\t\t}\n\t\t\t\tvar bezierData = new BezierData(curveSegments);\n\t\t\t\tlen = pt3.length;\n\t\t\t\tfor (k = 0; k < curveSegments; k += 1) {\n\t\t\t\t\tpoint = createSizedArray(len);\n\t\t\t\t\tperc = k / (curveSegments - 1);\n\t\t\t\t\tptDistance = 0;\n\t\t\t\t\tfor (i = 0; i < len; i += 1) {\n\t\t\t\t\t\tptCoord = bmPow(1 - perc, 3) * pt1[i] + 3 * bmPow(1 - perc, 2) * perc * (pt1[i] + pt3[i]) + 3 * (1 - perc) * bmPow(perc, 2) * (pt2[i] + pt4[i]) + bmPow(perc, 3) * pt2[i];\n\t\t\t\t\t\tpoint[i] = ptCoord;\n\t\t\t\t\t\tif (lastPoint !== null) {\n\t\t\t\t\t\t\tptDistance += bmPow(point[i] - lastPoint[i], 2);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tptDistance = bmSqrt(ptDistance);\n\t\t\t\t\taddedLength += ptDistance;\n\t\t\t\t\tbezierData.points[k] = new PointData(ptDistance, point);\n\t\t\t\t\tlastPoint = point;\n\t\t\t\t}\n\t\t\t\tbezierData.segmentLength = addedLength;\n\t\t\t\tstoredData[bezierName] = bezierData;\n\t\t\t}\n\t\t\treturn storedData[bezierName];\n\t\t};\n\t}());\n\n\tfunction getDistancePerc(perc, bezierData) {\n\t\tvar percents = bezierData.percents;\n\t\tvar lengths = bezierData.lengths;\n\t\tvar len = percents.length;\n\t\tvar initPos = bmFloor((len - 1) * perc);\n\t\tvar lengthPos = perc * bezierData.addedLength;\n\t\tvar lPerc = 0;\n\t\tif (initPos === len - 1 || initPos === 0 || lengthPos === lengths[initPos]) {\n\t\t\treturn percents[initPos];\n\t\t}\n\t\tvar dir = lengths[initPos] > lengthPos ? -1 : 1;\n\t\tvar flag = true;\n\t\twhile (flag) {\n\t\t\tif (lengths[initPos] <= lengthPos && lengths[initPos + 1] > lengthPos) {\n\t\t\t\tlPerc = (lengthPos - lengths[initPos]) / (lengths[initPos + 1] - lengths[initPos]);\n\t\t\t\tflag = false;\n\t\t\t} else {\n\t\t\t\tinitPos += dir;\n\t\t\t}\n\t\t\tif (initPos < 0 || initPos >= len - 1) {\n\t\t\t\t// FIX for TypedArrays that don't store floating point values with enough accuracy\n\t\t\t\tif (initPos === len - 1) {\n\t\t\t\t\treturn percents[initPos];\n\t\t\t\t}\n\t\t\t\tflag = false;\n\t\t\t}\n\t\t}\n\t\treturn percents[initPos] + (percents[initPos + 1] - percents[initPos]) * lPerc;\n\t}\n\n\tfunction getPointInSegment(pt1, pt2, pt3, pt4, percent, bezierData) {\n\t\tvar t1 = getDistancePerc(percent, bezierData);\n\t\tvar u1 = 1 - t1;\n\t\tvar ptX = math.round((u1 * u1 * u1 * pt1[0] + (t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1) * pt3[0] + (t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1) * pt4[0] + t1 * t1 * t1 * pt2[0]) * 1000) / 1000;\n\t\tvar ptY = math.round((u1 * u1 * u1 * pt1[1] + (t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1) * pt3[1] + (t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1) * pt4[1] + t1 * t1 * t1 * pt2[1]) * 1000) / 1000;\n\t\treturn [ptX, ptY];\n\t}\n\n\tvar bezierSegmentPoints = createTypedArray('float32', 8);\n\n\tfunction getNewSegment(pt1, pt2, pt3, pt4, startPerc, endPerc, bezierData) {\n\t\tif (startPerc < 0) {\n\t\t\tstartPerc = 0;\n\t\t} else if (startPerc > 1) {\n\t\t\tstartPerc = 1;\n\t\t}\n\t\tvar t0 = getDistancePerc(startPerc, bezierData);\n\t\tendPerc = endPerc > 1 ? 1 : endPerc;\n\t\tvar t1 = getDistancePerc(endPerc, bezierData);\n\t\tvar i;\n\t\tvar len = pt1.length;\n\t\tvar u0 = 1 - t0;\n\t\tvar u1 = 1 - t1;\n\t\tvar u0u0u0 = u0 * u0 * u0;\n\t\tvar t0u0u0_3 = t0 * u0 * u0 * 3; // eslint-disable-line camelcase\n\t\tvar t0t0u0_3 = t0 * t0 * u0 * 3; // eslint-disable-line camelcase\n\t\tvar t0t0t0 = t0 * t0 * t0;\n\t\t//\n\t\tvar u0u0u1 = u0 * u0 * u1;\n\t\tvar t0u0u1_3 = t0 * u0 * u1 + u0 * t0 * u1 + u0 * u0 * t1; // eslint-disable-line camelcase\n\t\tvar t0t0u1_3 = t0 * t0 * u1 + u0 * t0 * t1 + t0 * u0 * t1; // eslint-disable-line camelcase\n\t\tvar t0t0t1 = t0 * t0 * t1;\n\t\t//\n\t\tvar u0u1u1 = u0 * u1 * u1;\n\t\tvar t0u1u1_3 = t0 * u1 * u1 + u0 * t1 * u1 + u0 * u1 * t1; // eslint-disable-line camelcase\n\t\tvar t0t1u1_3 = t0 * t1 * u1 + u0 * t1 * t1 + t0 * u1 * t1; // eslint-disable-line camelcase\n\t\tvar t0t1t1 = t0 * t1 * t1;\n\t\t//\n\t\tvar u1u1u1 = u1 * u1 * u1;\n\t\tvar t1u1u1_3 = t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1; // eslint-disable-line camelcase\n\t\tvar t1t1u1_3 = t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1; // eslint-disable-line camelcase\n\t\tvar t1t1t1 = t1 * t1 * t1;\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tbezierSegmentPoints[i * 4] = math.round((u0u0u0 * pt1[i] + t0u0u0_3 * pt3[i] + t0t0u0_3 * pt4[i] + t0t0t0 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\t\t\tbezierSegmentPoints[i * 4 + 1] = math.round((u0u0u1 * pt1[i] + t0u0u1_3 * pt3[i] + t0t0u1_3 * pt4[i] + t0t0t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\t\t\tbezierSegmentPoints[i * 4 + 2] = math.round((u0u1u1 * pt1[i] + t0u1u1_3 * pt3[i] + t0t1u1_3 * pt4[i] + t0t1t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\t\t\tbezierSegmentPoints[i * 4 + 3] = math.round((u1u1u1 * pt1[i] + t1u1u1_3 * pt3[i] + t1t1u1_3 * pt4[i] + t1t1t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\t\t}\n\n\t\treturn bezierSegmentPoints;\n\t}\n\n\treturn {\n\t\tgetSegmentsLength: getSegmentsLength,\n\t\tgetNewSegment: getNewSegment,\n\t\tgetPointInSegment: getPointInSegment,\n\t\tbuildBezierData: buildBezierData,\n\t\tpointOnLine2D: pointOnLine2D,\n\t\tpointOnLine3D: pointOnLine3D,\n\t};\n}\n\nconst bez = bezFunction();\n\nconst PropertyFactory = (function () {\n\tvar initFrame = initialDefaultFrame;\n\tvar mathAbs = Math.abs;\n\n\tfunction interpolateValue(frameNum, caching) {\n\t\tvar offsetTime = this.offsetTime;\n\t\tvar newValue;\n\t\tif (this.propType === 'multidimensional') {\n\t\t\tnewValue = createTypedArray('float32', this.pv.length);\n\t\t}\n\t\tvar iterationIndex = caching.lastIndex;\n\t\tvar i = iterationIndex;\n\t\tvar len = this.keyframes.length - 1;\n\t\tvar flag = true;\n\t\tvar keyData;\n\t\tvar nextKeyData;\n\t\tvar keyframeMetadata;\n\n\t\twhile (flag) {\n\t\t\tkeyData = this.keyframes[i];\n\t\t\tnextKeyData = this.keyframes[i + 1];\n\t\t\tif (i === len - 1 && frameNum >= nextKeyData.t - offsetTime) {\n\t\t\t\tif (keyData.h) {\n\t\t\t\t\tkeyData = nextKeyData;\n\t\t\t\t}\n\t\t\t\titerationIndex = 0;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ((nextKeyData.t - offsetTime) > frameNum) {\n\t\t\t\titerationIndex = i;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (i < len - 1) {\n\t\t\t\ti += 1;\n\t\t\t} else {\n\t\t\t\titerationIndex = 0;\n\t\t\t\tflag = false;\n\t\t\t}\n\t\t}\n\t\tkeyframeMetadata = this.keyframesMetadata[i] || {};\n\n\t\tvar k;\n\t\tvar kLen;\n\t\tvar perc;\n\t\tvar jLen;\n\t\tvar j;\n\t\tvar fnc;\n\t\tvar nextKeyTime = nextKeyData.t - offsetTime;\n\t\tvar keyTime = keyData.t - offsetTime;\n\t\tvar endValue;\n\t\tif (keyData.to) {\n\t\t\tif (!keyframeMetadata.bezierData) {\n\t\t\t\tkeyframeMetadata.bezierData = bez.buildBezierData(keyData.s, nextKeyData.s || keyData.e, keyData.to, keyData.ti);\n\t\t\t}\n\t\t\tvar bezierData = keyframeMetadata.bezierData;\n\t\t\tif (frameNum >= nextKeyTime || frameNum < keyTime) {\n\t\t\t\tvar ind = frameNum >= nextKeyTime ? bezierData.points.length - 1 : 0;\n\t\t\t\tkLen = bezierData.points[ind].point.length;\n\t\t\t\tfor (k = 0; k < kLen; k += 1) {\n\t\t\t\t\tnewValue[k] = bezierData.points[ind].point[k];\n\t\t\t\t}\n\t\t\t\t// caching._lastKeyframeIndex = -1;\n\t\t\t} else {\n\t\t\t\tif (keyframeMetadata.__fnct) {\n\t\t\t\t\tfnc = keyframeMetadata.__fnct;\n\t\t\t\t} else {\n\t\t\t\t\tfnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y, keyData.n).get;\n\t\t\t\t\tkeyframeMetadata.__fnct = fnc;\n\t\t\t\t}\n\t\t\t\tperc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\n\t\t\t\tvar distanceInLine = bezierData.segmentLength * perc;\n\n\t\t\t\tvar segmentPerc;\n\t\t\t\tvar addedLength = (caching.lastFrame < frameNum && caching._lastKeyframeIndex === i) ? caching._lastAddedLength : 0;\n\t\t\t\tj = (caching.lastFrame < frameNum && caching._lastKeyframeIndex === i) ? caching._lastPoint : 0;\n\t\t\t\tflag = true;\n\t\t\t\tjLen = bezierData.points.length;\n\t\t\t\twhile (flag) {\n\t\t\t\t\taddedLength += bezierData.points[j].partialLength;\n\t\t\t\t\tif (distanceInLine === 0 || perc === 0 || j === bezierData.points.length - 1) {\n\t\t\t\t\t\tkLen = bezierData.points[j].point.length;\n\t\t\t\t\t\tfor (k = 0; k < kLen; k += 1) {\n\t\t\t\t\t\t\tnewValue[k] = bezierData.points[j].point[k];\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t} else if (distanceInLine >= addedLength && distanceInLine < addedLength + bezierData.points[j + 1].partialLength) {\n\t\t\t\t\t\tsegmentPerc = (distanceInLine - addedLength) / bezierData.points[j + 1].partialLength;\n\t\t\t\t\t\tkLen = bezierData.points[j].point.length;\n\t\t\t\t\t\tfor (k = 0; k < kLen; k += 1) {\n\t\t\t\t\t\t\tnewValue[k] = bezierData.points[j].point[k] + (bezierData.points[j + 1].point[k] - bezierData.points[j].point[k]) * segmentPerc;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tif (j < jLen - 1) {\n\t\t\t\t\t\tj += 1;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tflag = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tcaching._lastPoint = j;\n\t\t\t\tcaching._lastAddedLength = addedLength - bezierData.points[j].partialLength;\n\t\t\t\tcaching._lastKeyframeIndex = i;\n\t\t\t}\n\t\t} else {\n\t\t\tvar outX;\n\t\t\tvar outY;\n\t\t\tvar inX;\n\t\t\tvar inY;\n\t\t\tvar keyValue;\n\t\t\tlen = keyData.s.length;\n\t\t\tendValue = nextKeyData.s || keyData.e;\n\t\t\tif (this.sh && keyData.h !== 1) {\n\t\t\t\tif (frameNum >= nextKeyTime) {\n\t\t\t\t\tnewValue[0] = endValue[0];\n\t\t\t\t\tnewValue[1] = endValue[1];\n\t\t\t\t\tnewValue[2] = endValue[2];\n\t\t\t\t} else if (frameNum <= keyTime) {\n\t\t\t\t\tnewValue[0] = keyData.s[0];\n\t\t\t\t\tnewValue[1] = keyData.s[1];\n\t\t\t\t\tnewValue[2] = keyData.s[2];\n\t\t\t\t} else {\n\t\t\t\t\tvar quatStart = createQuaternion(keyData.s);\n\t\t\t\t\tvar quatEnd = createQuaternion(endValue);\n\t\t\t\t\tvar time = (frameNum - keyTime) / (nextKeyTime - keyTime);\n\t\t\t\t\tquaternionToEuler(newValue, slerp(quatStart, quatEnd, time));\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor (i = 0; i < len; i += 1) {\n\t\t\t\t\tif (keyData.h !== 1) {\n\t\t\t\t\t\tif (frameNum >= nextKeyTime) {\n\t\t\t\t\t\t\tperc = 1;\n\t\t\t\t\t\t} else if (frameNum < keyTime) {\n\t\t\t\t\t\t\tperc = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif (keyData.o.x.constructor === Array) {\n\t\t\t\t\t\t\t\tif (!keyframeMetadata.__fnct) {\n\t\t\t\t\t\t\t\t\tkeyframeMetadata.__fnct = [];\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tif (!keyframeMetadata.__fnct[i]) {\n\t\t\t\t\t\t\t\t\toutX = keyData.o.x[i] === undefined ? keyData.o.x[0] : keyData.o.x[i];\n\t\t\t\t\t\t\t\t\toutY = keyData.o.y[i] === undefined ? keyData.o.y[0] : keyData.o.y[i];\n\t\t\t\t\t\t\t\t\tinX = keyData.i.x[i] === undefined ? keyData.i.x[0] : keyData.i.x[i];\n\t\t\t\t\t\t\t\t\tinY = keyData.i.y[i] === undefined ? keyData.i.y[0] : keyData.i.y[i];\n\t\t\t\t\t\t\t\t\tfnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\n\t\t\t\t\t\t\t\t\tkeyframeMetadata.__fnct[i] = fnc;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tfnc = keyframeMetadata.__fnct[i];\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if (!keyframeMetadata.__fnct) {\n\t\t\t\t\t\t\t\toutX = keyData.o.x;\n\t\t\t\t\t\t\t\toutY = keyData.o.y;\n\t\t\t\t\t\t\t\tinX = keyData.i.x;\n\t\t\t\t\t\t\t\tinY = keyData.i.y;\n\t\t\t\t\t\t\t\tfnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\n\t\t\t\t\t\t\t\tkeyData.keyframeMetadata = fnc;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tfnc = keyframeMetadata.__fnct;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tperc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tendValue = nextKeyData.s || keyData.e;\n\t\t\t\t\tkeyValue = keyData.h === 1 ? keyData.s[i] : keyData.s[i] + (endValue[i] - keyData.s[i]) * perc;\n\n\t\t\t\t\tif (this.propType === 'multidimensional') {\n\t\t\t\t\t\tnewValue[i] = keyValue;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tnewValue = keyValue;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tcaching.lastIndex = iterationIndex;\n\t\treturn newValue;\n\t}\n\n\t// based on @Toji's https://github.com/toji/gl-matrix/\n\tfunction slerp(a, b, t) {\n\t\tvar out = [];\n\t\tvar ax = a[0];\n\t\tvar ay = a[1];\n\t\tvar az = a[2];\n\t\tvar aw = a[3];\n\t\tvar bx = b[0];\n\t\tvar by = b[1];\n\t\tvar bz = b[2];\n\t\tvar bw = b[3];\n\n\t\tvar omega;\n\t\tvar cosom;\n\t\tvar sinom;\n\t\tvar scale0;\n\t\tvar scale1;\n\n\t\tcosom = ax * bx + ay * by + az * bz + aw * bw;\n\t\tif (cosom < 0.0) {\n\t\t\tcosom = -cosom;\n\t\t\tbx = -bx;\n\t\t\tby = -by;\n\t\t\tbz = -bz;\n\t\t\tbw = -bw;\n\t\t}\n\t\tif ((1.0 - cosom) > 0.000001) {\n\t\t\tomega = Math.acos(cosom);\n\t\t\tsinom = Math.sin(omega);\n\t\t\tscale0 = Math.sin((1.0 - t) * omega) / sinom;\n\t\t\tscale1 = Math.sin(t * omega) / sinom;\n\t\t} else {\n\t\t\tscale0 = 1.0 - t;\n\t\t\tscale1 = t;\n\t\t}\n\t\tout[0] = scale0 * ax + scale1 * bx;\n\t\tout[1] = scale0 * ay + scale1 * by;\n\t\tout[2] = scale0 * az + scale1 * bz;\n\t\tout[3] = scale0 * aw + scale1 * bw;\n\n\t\treturn out;\n\t}\n\n\tfunction quaternionToEuler(out, quat) {\n\t\tvar qx = quat[0];\n\t\tvar qy = quat[1];\n\t\tvar qz = quat[2];\n\t\tvar qw = quat[3];\n\t\tvar heading = Math.atan2(2 * qy * qw - 2 * qx * qz, 1 - 2 * qy * qy - 2 * qz * qz);\n\t\tvar attitude = Math.asin(2 * qx * qy + 2 * qz * qw);\n\t\tvar bank = Math.atan2(2 * qx * qw - 2 * qy * qz, 1 - 2 * qx * qx - 2 * qz * qz);\n\t\tout[0] = heading / degToRads;\n\t\tout[1] = attitude / degToRads;\n\t\tout[2] = bank / degToRads;\n\t}\n\n\tfunction createQuaternion(values) {\n\t\tvar heading = values[0] * degToRads;\n\t\tvar attitude = values[1] * degToRads;\n\t\tvar bank = values[2] * degToRads;\n\t\tvar c1 = Math.cos(heading / 2);\n\t\tvar c2 = Math.cos(attitude / 2);\n\t\tvar c3 = Math.cos(bank / 2);\n\t\tvar s1 = Math.sin(heading / 2);\n\t\tvar s2 = Math.sin(attitude / 2);\n\t\tvar s3 = Math.sin(bank / 2);\n\t\tvar w = c1 * c2 * c3 - s1 * s2 * s3;\n\t\tvar x = s1 * s2 * c3 + c1 * c2 * s3;\n\t\tvar y = s1 * c2 * c3 + c1 * s2 * s3;\n\t\tvar z = c1 * s2 * c3 - s1 * c2 * s3;\n\n\t\treturn [x, y, z, w];\n\t}\n\n\tfunction getValueAtCurrentTime() {\n\t\tvar frameNum = this.comp.renderedFrame - this.offsetTime;\n\t\tvar initTime = this.keyframes[0].t - this.offsetTime;\n\t\tvar endTime = this.keyframes[this.keyframes.length - 1].t - this.offsetTime;\n\t\tif (!(frameNum === this._caching.lastFrame || (this._caching.lastFrame !== initFrame && ((this._caching.lastFrame >= endTime && frameNum >= endTime) || (this._caching.lastFrame < initTime && frameNum < initTime))))) {\n\t\t\tif (this._caching.lastFrame >= frameNum) {\n\t\t\t\tthis._caching._lastKeyframeIndex = -1;\n\t\t\t\tthis._caching.lastIndex = 0;\n\t\t\t}\n\n\t\t\tvar renderResult = this.interpolateValue(frameNum, this._caching);\n\t\t\tthis.pv = renderResult;\n\t\t}\n\t\tthis._caching.lastFrame = frameNum;\n\t\treturn this.pv;\n\t}\n\n\tfunction setVValue(val) {\n\t\tvar multipliedValue;\n\t\tif (this.propType === 'unidimensional') {\n\t\t\tmultipliedValue = val * this.mult;\n\t\t\tif (mathAbs(this.v - multipliedValue) > 0.00001) {\n\t\t\t\tthis.v = multipliedValue;\n\t\t\t\tthis._mdf = true;\n\t\t\t}\n\t\t} else {\n\t\t\tvar i = 0;\n\t\t\tvar len = this.v.length;\n\t\t\twhile (i < len) {\n\t\t\t\tmultipliedValue = val[i] * this.mult;\n\t\t\t\tif (mathAbs(this.v[i] - multipliedValue) > 0.00001) {\n\t\t\t\t\tthis.v[i] = multipliedValue;\n\t\t\t\t\tthis._mdf = true;\n\t\t\t\t}\n\t\t\t\ti += 1;\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction processEffectsSequence() {\n\t\tif (this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) {\n\t\t\treturn;\n\t\t}\n\t\tif (this.lock) {\n\t\t\tthis.setVValue(this.pv);\n\t\t\treturn;\n\t\t}\n\t\tthis.lock = true;\n\t\tthis._mdf = this._isFirstFrame;\n\t\tvar i;\n\t\tvar len = this.effectsSequence.length;\n\t\tvar finalValue = this.kf ? this.pv : this.data.k;\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tfinalValue = this.effectsSequence[i](finalValue);\n\t\t}\n\t\tthis.setVValue(finalValue);\n\t\tthis._isFirstFrame = false;\n\t\tthis.lock = false;\n\t\tthis.frameId = this.elem.globalData.frameId;\n\t}\n\n\tfunction addEffect(effectFunction) {\n\t\tthis.effectsSequence.push(effectFunction);\n\t\tthis.container.addDynamicProperty(this);\n\t}\n\n\tfunction ValueProperty(elem, data, mult, container) {\n\t\tthis.propType = 'unidimensional';\n\t\tthis.mult = mult || 1;\n\t\tthis.data = data;\n\t\tthis.v = mult ? data.k * mult : data.k;\n\t\tthis.pv = data.k;\n\t\tthis._mdf = false;\n\t\tthis.elem = elem;\n\t\tthis.container = container;\n\t\tthis.comp = elem.comp;\n\t\tthis.k = false;\n\t\tthis.kf = false;\n\t\tthis.vel = 0;\n\t\tthis.effectsSequence = [];\n\t\tthis._isFirstFrame = true;\n\t\tthis.getValue = processEffectsSequence;\n\t\tthis.setVValue = setVValue;\n\t\tthis.addEffect = addEffect;\n\t}\n\n\tfunction MultiDimensionalProperty(elem, data, mult, container) {\n\t\tthis.propType = 'multidimensional';\n\t\tthis.mult = mult || 1;\n\t\tthis.data = data;\n\t\tthis._mdf = false;\n\t\tthis.elem = elem;\n\t\tthis.container = container;\n\t\tthis.comp = elem.comp;\n\t\tthis.k = false;\n\t\tthis.kf = false;\n\t\tthis.frameId = -1;\n\t\tvar i;\n\t\tvar len = data.k.length;\n\t\tthis.v = createTypedArray('float32', len);\n\t\tthis.pv = createTypedArray('float32', len);\n\t\tthis.vel = createTypedArray('float32', len);\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tthis.v[i] = data.k[i] * this.mult;\n\t\t\tthis.pv[i] = data.k[i];\n\t\t}\n\t\tthis._isFirstFrame = true;\n\t\tthis.effectsSequence = [];\n\t\tthis.getValue = processEffectsSequence;\n\t\tthis.setVValue = setVValue;\n\t\tthis.addEffect = addEffect;\n\t}\n\n\tfunction KeyframedValueProperty(elem, data, mult, container) {\n\t\tthis.propType = 'unidimensional';\n\t\tthis.keyframes = data.k;\n\t\tthis.keyframesMetadata = [];\n\t\tthis.offsetTime = elem.data.st;\n\t\tthis.frameId = -1;\n\t\tthis._caching = {\n\t\t\tlastFrame: initFrame, lastIndex: 0, value: 0, _lastKeyframeIndex: -1,\n\t\t};\n\t\tthis.k = true;\n\t\tthis.kf = true;\n\t\tthis.data = data;\n\t\tthis.mult = mult || 1;\n\t\tthis.elem = elem;\n\t\tthis.container = container;\n\t\tthis.comp = elem.comp;\n\t\tthis.v = initFrame;\n\t\tthis.pv = initFrame;\n\t\tthis._isFirstFrame = true;\n\t\tthis.getValue = processEffectsSequence;\n\t\tthis.setVValue = setVValue;\n\t\tthis.interpolateValue = interpolateValue;\n\t\tthis.effectsSequence = [getValueAtCurrentTime.bind(this)];\n\t\tthis.addEffect = addEffect;\n\t}\n\n\tfunction KeyframedMultidimensionalProperty(elem, data, mult, container) {\n\t\tthis.propType = 'multidimensional';\n\t\tvar i;\n\t\tvar len = data.k.length;\n\t\tvar s;\n\t\tvar e;\n\t\tvar to;\n\t\tvar ti;\n\t\tfor (i = 0; i < len - 1; i += 1) {\n\t\t\tif (data.k[i].to && data.k[i].s && data.k[i + 1] && data.k[i + 1].s) {\n\t\t\t\ts = data.k[i].s;\n\t\t\t\te = data.k[i + 1].s;\n\t\t\t\tto = data.k[i].to;\n\t\t\t\tti = data.k[i].ti;\n\t\t\t\tif ((s.length === 2 && !(s[0] === e[0] && s[1] === e[1]) && bez.pointOnLine2D(s[0], s[1], e[0], e[1], s[0] + to[0], s[1] + to[1]) && bez.pointOnLine2D(s[0], s[1], e[0], e[1], e[0] + ti[0], e[1] + ti[1])) || (s.length === 3 && !(s[0] === e[0] && s[1] === e[1] && s[2] === e[2]) && bez.pointOnLine3D(s[0], s[1], s[2], e[0], e[1], e[2], s[0] + to[0], s[1] + to[1], s[2] + to[2]) && bez.pointOnLine3D(s[0], s[1], s[2], e[0], e[1], e[2], e[0] + ti[0], e[1] + ti[1], e[2] + ti[2]))) {\n\t\t\t\t\tdata.k[i].to = null;\n\t\t\t\t\tdata.k[i].ti = null;\n\t\t\t\t}\n\t\t\t\tif (s[0] === e[0] && s[1] === e[1] && to[0] === 0 && to[1] === 0 && ti[0] === 0 && ti[1] === 0) {\n\t\t\t\t\tif (s.length === 2 || (s[2] === e[2] && to[2] === 0 && ti[2] === 0)) {\n\t\t\t\t\t\tdata.k[i].to = null;\n\t\t\t\t\t\tdata.k[i].ti = null;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthis.effectsSequence = [getValueAtCurrentTime.bind(this)];\n\t\tthis.data = data;\n\t\tthis.keyframes = data.k;\n\t\tthis.keyframesMetadata = [];\n\t\tthis.offsetTime = elem.data.st;\n\t\tthis.k = true;\n\t\tthis.kf = true;\n\t\tthis._isFirstFrame = true;\n\t\tthis.mult = mult || 1;\n\t\tthis.elem = elem;\n\t\tthis.container = container;\n\t\tthis.comp = elem.comp;\n\t\tthis.getValue = processEffectsSequence;\n\t\tthis.setVValue = setVValue;\n\t\tthis.interpolateValue = interpolateValue;\n\t\tthis.frameId = -1;\n\t\tvar arrLen = data.k[0].s.length;\n\t\tthis.v = createTypedArray('float32', arrLen);\n\t\tthis.pv = createTypedArray('float32', arrLen);\n\t\tfor (i = 0; i < arrLen; i += 1) {\n\t\t\tthis.v[i] = initFrame;\n\t\t\tthis.pv[i] = initFrame;\n\t\t}\n\t\tthis._caching = { lastFrame: initFrame, lastIndex: 0, value: createTypedArray('float32', arrLen) };\n\t\tthis.addEffect = addEffect;\n\t}\n\n\tfunction getProp(elem, data, type, mult, container) {\n\t\tvar p;\n\t\tif (!data.k.length) {\n\t\t\tp = new ValueProperty(elem, data, mult, container);\n\t\t} else if (typeof (data.k[0]) === 'number') {\n\t\t\tp = new MultiDimensionalProperty(elem, data, mult, container);\n\t\t} else {\n\t\t\tswitch (type) {\n\t\t\t\tcase 0:\n\t\t\t\t\tp = new KeyframedValueProperty(elem, data, mult, container);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 1:\n\t\t\t\t\tp = new KeyframedMultidimensionalProperty(elem, data, mult, container);\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tif (p.effectsSequence.length) {\n\t\t\tcontainer.addDynamicProperty(p);\n\t\t}\n\t\treturn p;\n\t}\n\n\tvar ob = {\n\t\tgetProp: getProp,\n\t};\n\treturn ob;\n}());\n\nfunction DynamicPropertyContainer() {}\nDynamicPropertyContainer.prototype = {\n\taddDynamicProperty: function (prop) {\n\t\tif (this.dynamicProperties.indexOf(prop) === -1) {\n\t\t\tthis.dynamicProperties.push(prop);\n\t\t\tthis.container.addDynamicProperty(this);\n\t\t\tthis._isAnimated = true;\n\t\t}\n\t},\n\titerateDynamicProperties: function () {\n\t\tthis._mdf = false;\n\t\tvar i;\n\t\tvar len = this.dynamicProperties.length;\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tthis.dynamicProperties[i].getValue();\n\t\t\tif (this.dynamicProperties[i]._mdf) {\n\t\t\t\tthis._mdf = true;\n\t\t\t}\n\t\t}\n\t},\n\tinitDynamicPropertyContainer: function (container) {\n\t\tthis.container = container;\n\t\tthis.dynamicProperties = [];\n\t\tthis._mdf = false;\n\t\tthis._isAnimated = false;\n\t},\n};\n\nconst pointPool = (function () {\n\tfunction create() {\n\t\treturn createTypedArray('float32', 2);\n\t}\n\treturn poolFactory(8, create);\n}());\n\nfunction ShapePath() {\n\tthis.c = false;\n\tthis._length = 0;\n\tthis._maxLength = 8;\n\tthis.v = createSizedArray(this._maxLength);\n\tthis.o = createSizedArray(this._maxLength);\n\tthis.i = createSizedArray(this._maxLength);\n}\n\nShapePath.prototype.setPathData = function (closed, len) {\n\tthis.c = closed;\n\tthis.setLength(len);\n\tvar i = 0;\n\twhile (i < len) {\n\t\tthis.v[i] = pointPool.newElement();\n\t\tthis.o[i] = pointPool.newElement();\n\t\tthis.i[i] = pointPool.newElement();\n\t\ti += 1;\n\t}\n};\n\nShapePath.prototype.setLength = function (len) {\n\twhile (this._maxLength < len) {\n\t\tthis.doubleArrayLength();\n\t}\n\tthis._length = len;\n};\n\nShapePath.prototype.doubleArrayLength = function () {\n\tthis.v = this.v.concat(createSizedArray(this._maxLength));\n\tthis.i = this.i.concat(createSizedArray(this._maxLength));\n\tthis.o = this.o.concat(createSizedArray(this._maxLength));\n\tthis._maxLength *= 2;\n};\n\nShapePath.prototype.setXYAt = function (x, y, type, pos, replace) {\n\tvar arr;\n\tthis._length = Math.max(this._length, pos + 1);\n\tif (this._length >= this._maxLength) {\n\t\tthis.doubleArrayLength();\n\t}\n\tswitch (type) {\n\t\tcase 'v':\n\t\t\tarr = this.v;\n\t\t\tbreak;\n\t\tcase 'i':\n\t\t\tarr = this.i;\n\t\t\tbreak;\n\t\tcase 'o':\n\t\t\tarr = this.o;\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tarr = [];\n\t\t\tbreak;\n\t}\n\tif (!arr[pos] || (arr[pos] && !replace)) {\n\t\tarr[pos] = pointPool.newElement();\n\t}\n\tarr[pos][0] = x;\n\tarr[pos][1] = y;\n};\n\nShapePath.prototype.setTripleAt = function (vX, vY, oX, oY, iX, iY, pos, replace) {\n\tthis.setXYAt(vX, vY, 'v', pos, replace);\n\tthis.setXYAt(oX, oY, 'o', pos, replace);\n\tthis.setXYAt(iX, iY, 'i', pos, replace);\n};\n\nShapePath.prototype.reverse = function () {\n\tvar newPath = new ShapePath();\n\tnewPath.setPathData(this.c, this._length);\n\tvar vertices = this.v;\n\tvar outPoints = this.o;\n\tvar inPoints = this.i;\n\tvar init = 0;\n\tif (this.c) {\n\t\tnewPath.setTripleAt(vertices[0][0], vertices[0][1], inPoints[0][0], inPoints[0][1], outPoints[0][0], outPoints[0][1], 0, false);\n\t\tinit = 1;\n\t}\n\tvar cnt = this._length - 1;\n\tvar len = this._length;\n\n\tvar i;\n\tfor (i = init; i < len; i += 1) {\n\t\tnewPath.setTripleAt(vertices[cnt][0], vertices[cnt][1], inPoints[cnt][0], inPoints[cnt][1], outPoints[cnt][0], outPoints[cnt][1], i, false);\n\t\tcnt -= 1;\n\t}\n\treturn newPath;\n};\n\nconst shapePool = (function () {\n\tfunction create() {\n\t\treturn new ShapePath();\n\t}\n\n\tfunction release(shapePath) {\n\t\tvar len = shapePath._length;\n\t\tvar i;\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tpointPool.release(shapePath.v[i]);\n\t\t\tpointPool.release(shapePath.i[i]);\n\t\t\tpointPool.release(shapePath.o[i]);\n\t\t\tshapePath.v[i] = null;\n\t\t\tshapePath.i[i] = null;\n\t\t\tshapePath.o[i] = null;\n\t\t}\n\t\tshapePath._length = 0;\n\t\tshapePath.c = false;\n\t}\n\n\tfunction clone(shape) {\n\t\tvar cloned = factory.newElement();\n\t\tvar i;\n\t\tvar len = shape._length === undefined ? shape.v.length : shape._length;\n\t\tcloned.setLength(len);\n\t\tcloned.c = shape.c;\n\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tcloned.setTripleAt(shape.v[i][0], shape.v[i][1], shape.o[i][0], shape.o[i][1], shape.i[i][0], shape.i[i][1], i);\n\t\t}\n\t\treturn cloned;\n\t}\n\n\tvar factory = poolFactory(4, create, release);\n\tfactory.clone = clone;\n\n\treturn factory;\n}());\n\nfunction ShapeCollection() {\n\tthis._length = 0;\n\tthis._maxLength = 4;\n\tthis.shapes = createSizedArray(this._maxLength);\n}\n\nShapeCollection.prototype.addShape = function (shapeData) {\n\tif (this._length === this._maxLength) {\n\t\tthis.shapes = this.shapes.concat(createSizedArray(this._maxLength));\n\t\tthis._maxLength *= 2;\n\t}\n\tthis.shapes[this._length] = shapeData;\n\tthis._length += 1;\n};\n\nShapeCollection.prototype.releaseShapes = function () {\n\tvar i;\n\tfor (i = 0; i < this._length; i += 1) {\n\t\tshapePool.release(this.shapes[i]);\n\t}\n\tthis._length = 0;\n};\n\nconst shapeCollectionPool = (function () {\n\tvar ob = {\n\t\tnewShapeCollection: newShapeCollection,\n\t\trelease: release,\n\t};\n\n\tvar _length = 0;\n\tvar _maxLength = 4;\n\tvar pool = createSizedArray(_maxLength);\n\n\tfunction newShapeCollection() {\n\t\tvar shapeCollection;\n\t\tif (_length) {\n\t\t\t_length -= 1;\n\t\t\tshapeCollection = pool[_length];\n\t\t} else {\n\t\t\tshapeCollection = new ShapeCollection();\n\t\t}\n\t\treturn shapeCollection;\n\t}\n\n\tfunction release(shapeCollection) {\n\t\tvar i;\n\t\tvar len = shapeCollection._length;\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tshapePool.release(shapeCollection.shapes[i]);\n\t\t}\n\t\tshapeCollection._length = 0;\n\n\t\tif (_length === _maxLength) {\n\t\t\tpool = pooling.double(pool);\n\t\t\t_maxLength *= 2;\n\t\t}\n\t\tpool[_length] = shapeCollection;\n\t\t_length += 1;\n\t}\n\n\treturn ob;\n}());\n\nconst ShapePropertyFactory = (function () {\n\tvar initFrame = -999999;\n\n\tfunction interpolateShape(frameNum, previousValue, caching) {\n\t\tvar iterationIndex = caching.lastIndex;\n\t\tvar keyPropS;\n\t\tvar keyPropE;\n\t\tvar isHold;\n\t\tvar j;\n\t\tvar k;\n\t\tvar jLen;\n\t\tvar kLen;\n\t\tvar perc;\n\t\tvar vertexValue;\n\t\tvar kf = this.keyframes;\n\t\tif (frameNum < kf[0].t - this.offsetTime) {\n\t\t\tkeyPropS = kf[0].s[0];\n\t\t\tisHold = true;\n\t\t\titerationIndex = 0;\n\t\t} else if (frameNum >= kf[kf.length - 1].t - this.offsetTime) {\n\t\t\tkeyPropS = kf[kf.length - 1].s ? kf[kf.length - 1].s[0] : kf[kf.length - 2].e[0];\n\t\t\t/* if(kf[kf.length - 1].s){\n                keyPropS = kf[kf.length - 1].s[0];\n            }else{\n                keyPropS = kf[kf.length - 2].e[0];\n            } */\n\t\t\tisHold = true;\n\t\t} else {\n\t\t\tvar i = iterationIndex;\n\t\t\tvar len = kf.length - 1;\n\t\t\tvar flag = true;\n\t\t\tvar keyData;\n\t\t\tvar nextKeyData;\n\t\t\tvar keyframeMetadata;\n\t\t\twhile (flag) {\n\t\t\t\tkeyData = kf[i];\n\t\t\t\tnextKeyData = kf[i + 1];\n\t\t\t\tif ((nextKeyData.t - this.offsetTime) > frameNum) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif (i < len - 1) {\n\t\t\t\t\ti += 1;\n\t\t\t\t} else {\n\t\t\t\t\tflag = false;\n\t\t\t\t}\n\t\t\t}\n\t\t\tkeyframeMetadata = this.keyframesMetadata[i] || {};\n\t\t\tisHold = keyData.h === 1;\n\t\t\titerationIndex = i;\n\t\t\tif (!isHold) {\n\t\t\t\tif (frameNum >= nextKeyData.t - this.offsetTime) {\n\t\t\t\t\tperc = 1;\n\t\t\t\t} else if (frameNum < keyData.t - this.offsetTime) {\n\t\t\t\t\tperc = 0;\n\t\t\t\t} else {\n\t\t\t\t\tvar fnc;\n\t\t\t\t\tif (keyframeMetadata.__fnct) {\n\t\t\t\t\t\tfnc = keyframeMetadata.__fnct;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tfnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y).get;\n\t\t\t\t\t\tkeyframeMetadata.__fnct = fnc;\n\t\t\t\t\t}\n\t\t\t\t\tperc = fnc((frameNum - (keyData.t - this.offsetTime)) / ((nextKeyData.t - this.offsetTime) - (keyData.t - this.offsetTime)));\n\t\t\t\t}\n\t\t\t\tkeyPropE = nextKeyData.s ? nextKeyData.s[0] : keyData.e[0];\n\t\t\t}\n\t\t\tkeyPropS = keyData.s[0];\n\t\t}\n\t\tjLen = previousValue._length;\n\t\tkLen = keyPropS.i[0].length;\n\t\tcaching.lastIndex = iterationIndex;\n\n\t\tfor (j = 0; j < jLen; j += 1) {\n\t\t\tfor (k = 0; k < kLen; k += 1) {\n\t\t\t\tvertexValue = isHold ? keyPropS.i[j][k] : keyPropS.i[j][k] + (keyPropE.i[j][k] - keyPropS.i[j][k]) * perc;\n\t\t\t\tpreviousValue.i[j][k] = vertexValue;\n\t\t\t\tvertexValue = isHold ? keyPropS.o[j][k] : keyPropS.o[j][k] + (keyPropE.o[j][k] - keyPropS.o[j][k]) * perc;\n\t\t\t\tpreviousValue.o[j][k] = vertexValue;\n\t\t\t\tvertexValue = isHold ? keyPropS.v[j][k] : keyPropS.v[j][k] + (keyPropE.v[j][k] - keyPropS.v[j][k]) * perc;\n\t\t\t\tpreviousValue.v[j][k] = vertexValue;\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction interpolateShapeCurrentTime() {\n\t\tvar frameNum = this.comp.renderedFrame - this.offsetTime;\n\t\tvar initTime = this.keyframes[0].t - this.offsetTime;\n\t\tvar endTime = this.keyframes[this.keyframes.length - 1].t - this.offsetTime;\n\t\tvar lastFrame = this._caching.lastFrame;\n\t\tif (!(lastFrame !== initFrame && ((lastFrame < initTime && frameNum < initTime) || (lastFrame > endTime && frameNum > endTime)))) {\n\t\t\t/// /\n\t\t\tthis._caching.lastIndex = lastFrame < frameNum ? this._caching.lastIndex : 0;\n\t\t\tthis.interpolateShape(frameNum, this.pv, this._caching);\n\t\t\t/// /\n\t\t}\n\t\tthis._caching.lastFrame = frameNum;\n\t\treturn this.pv;\n\t}\n\n\tfunction resetShape() {\n\t\tthis.paths = this.localShapeCollection;\n\t}\n\n\tfunction shapesEqual(shape1, shape2) {\n\t\tif (shape1._length !== shape2._length || shape1.c !== shape2.c) {\n\t\t\treturn false;\n\t\t}\n\t\tvar i;\n\t\tvar len = shape1._length;\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tif (shape1.v[i][0] !== shape2.v[i][0]\n\t\t\t\t|| shape1.v[i][1] !== shape2.v[i][1]\n\t\t\t\t|| shape1.o[i][0] !== shape2.o[i][0]\n\t\t\t\t|| shape1.o[i][1] !== shape2.o[i][1]\n\t\t\t\t|| shape1.i[i][0] !== shape2.i[i][0]\n\t\t\t\t|| shape1.i[i][1] !== shape2.i[i][1]) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction setVValue(newPath) {\n\t\tif (!shapesEqual(this.v, newPath)) {\n\t\t\tthis.v = shapePool.clone(newPath);\n\t\t\tthis.localShapeCollection.releaseShapes();\n\t\t\tthis.localShapeCollection.addShape(this.v);\n\t\t\tthis._mdf = true;\n\t\t\tthis.paths = this.localShapeCollection;\n\t\t}\n\t}\n\n\tfunction processEffectsSequence() {\n\t\tif (this.elem.globalData.frameId === this.frameId) {\n\t\t\treturn;\n\t\t} if (!this.effectsSequence.length) {\n\t\t\tthis._mdf = false;\n\t\t\treturn;\n\t\t}\n\t\tif (this.lock) {\n\t\t\tthis.setVValue(this.pv);\n\t\t\treturn;\n\t\t}\n\t\tthis.lock = true;\n\t\tthis._mdf = false;\n\t\tvar finalValue;\n\t\tif (this.kf) {\n\t\t\tfinalValue = this.pv;\n\t\t} else if (this.data.ks) {\n\t\t\tfinalValue = this.data.ks.k;\n\t\t} else {\n\t\t\tfinalValue = this.data.pt.k;\n\t\t}\n\t\tvar i;\n\t\tvar len = this.effectsSequence.length;\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tfinalValue = this.effectsSequence[i](finalValue);\n\t\t}\n\t\tthis.setVValue(finalValue);\n\t\tthis.lock = false;\n\t\tthis.frameId = this.elem.globalData.frameId;\n\t}\n\n\tfunction ShapeProperty(elem, data, type) {\n\t\tthis.propType = 'shape';\n\t\tthis.comp = elem.comp;\n\t\tthis.container = elem;\n\t\tthis.elem = elem;\n\t\tthis.data = data;\n\t\tthis.k = false;\n\t\tthis.kf = false;\n\t\tthis._mdf = false;\n\t\tvar pathData = type === 3 ? data.pt.k : data.ks.k;\n\t\tthis.v = shapePool.clone(pathData);\n\t\tthis.pv = shapePool.clone(this.v);\n\t\tthis.localShapeCollection = shapeCollectionPool.newShapeCollection();\n\t\tthis.paths = this.localShapeCollection;\n\t\tthis.paths.addShape(this.v);\n\t\tthis.reset = resetShape;\n\t\tthis.effectsSequence = [];\n\t}\n\n\tfunction addEffect(effectFunction) {\n\t\tthis.effectsSequence.push(effectFunction);\n\t\tthis.container.addDynamicProperty(this);\n\t}\n\n\tShapeProperty.prototype.interpolateShape = interpolateShape;\n\tShapeProperty.prototype.getValue = processEffectsSequence;\n\tShapeProperty.prototype.setVValue = setVValue;\n\tShapeProperty.prototype.addEffect = addEffect;\n\n\tfunction KeyframedShapeProperty(elem, data, type) {\n\t\tthis.propType = 'shape';\n\t\tthis.comp = elem.comp;\n\t\tthis.elem = elem;\n\t\tthis.container = elem;\n\t\tthis.offsetTime = elem.data.st;\n\t\tthis.keyframes = type === 3 ? data.pt.k : data.ks.k;\n\t\tthis.keyframesMetadata = [];\n\t\tthis.k = true;\n\t\tthis.kf = true;\n\t\tvar len = this.keyframes[0].s[0].i.length;\n\t\tthis.v = shapePool.newElement();\n\t\tthis.v.setPathData(this.keyframes[0].s[0].c, len);\n\t\tthis.pv = shapePool.clone(this.v);\n\t\tthis.localShapeCollection = shapeCollectionPool.newShapeCollection();\n\t\tthis.paths = this.localShapeCollection;\n\t\tthis.paths.addShape(this.v);\n\t\tthis.lastFrame = initFrame;\n\t\tthis.reset = resetShape;\n\t\tthis._caching = { lastFrame: initFrame, lastIndex: 0 };\n\t\tthis.effectsSequence = [interpolateShapeCurrentTime.bind(this)];\n\t}\n\tKeyframedShapeProperty.prototype.getValue = processEffectsSequence;\n\tKeyframedShapeProperty.prototype.interpolateShape = interpolateShape;\n\tKeyframedShapeProperty.prototype.setVValue = setVValue;\n\tKeyframedShapeProperty.prototype.addEffect = addEffect;\n\n\tvar EllShapeProperty = (function () {\n\t\tvar cPoint = roundCorner;\n\n\t\tfunction EllShapePropertyFactory(elem, data) {\n\t\t\tthis.v = shapePool.newElement();\n\t\t\tthis.v.setPathData(true, 4);\n\t\t\tthis.localShapeCollection = shapeCollectionPool.newShapeCollection();\n\t\t\tthis.paths = this.localShapeCollection;\n\t\t\tthis.localShapeCollection.addShape(this.v);\n\t\t\tthis.d = data.d;\n\t\t\tthis.elem = elem;\n\t\t\tthis.comp = elem.comp;\n\t\t\tthis.frameId = -1;\n\t\t\tthis.initDynamicPropertyContainer(elem);\n\t\t\tthis.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n\t\t\tthis.s = PropertyFactory.getProp(elem, data.s, 1, 0, this);\n\t\t\tif (this.dynamicProperties.length) {\n\t\t\t\tthis.k = true;\n\t\t\t} else {\n\t\t\t\tthis.k = false;\n\t\t\t\tthis.convertEllToPath();\n\t\t\t}\n\t\t}\n\n\t\tEllShapePropertyFactory.prototype = {\n\t\t\treset: resetShape,\n\t\t\tgetValue: function () {\n\t\t\t\tif (this.elem.globalData.frameId === this.frameId) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tthis.frameId = this.elem.globalData.frameId;\n\t\t\t\tthis.iterateDynamicProperties();\n\n\t\t\t\tif (this._mdf) {\n\t\t\t\t\tthis.convertEllToPath();\n\t\t\t\t}\n\t\t\t},\n\t\t\tconvertEllToPath: function () {\n\t\t\t\tvar p0 = this.p.v[0];\n\t\t\t\tvar p1 = this.p.v[1];\n\t\t\t\tvar s0 = this.s.v[0] / 2;\n\t\t\t\tvar s1 = this.s.v[1] / 2;\n\t\t\t\tvar _cw = this.d !== 3;\n\t\t\t\tvar _v = this.v;\n\t\t\t\t_v.v[0][0] = p0;\n\t\t\t\t_v.v[0][1] = p1 - s1;\n\t\t\t\t_v.v[1][0] = _cw ? p0 + s0 : p0 - s0;\n\t\t\t\t_v.v[1][1] = p1;\n\t\t\t\t_v.v[2][0] = p0;\n\t\t\t\t_v.v[2][1] = p1 + s1;\n\t\t\t\t_v.v[3][0] = _cw ? p0 - s0 : p0 + s0;\n\t\t\t\t_v.v[3][1] = p1;\n\t\t\t\t_v.i[0][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\n\t\t\t\t_v.i[0][1] = p1 - s1;\n\t\t\t\t_v.i[1][0] = _cw ? p0 + s0 : p0 - s0;\n\t\t\t\t_v.i[1][1] = p1 - s1 * cPoint;\n\t\t\t\t_v.i[2][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\n\t\t\t\t_v.i[2][1] = p1 + s1;\n\t\t\t\t_v.i[3][0] = _cw ? p0 - s0 : p0 + s0;\n\t\t\t\t_v.i[3][1] = p1 + s1 * cPoint;\n\t\t\t\t_v.o[0][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\n\t\t\t\t_v.o[0][1] = p1 - s1;\n\t\t\t\t_v.o[1][0] = _cw ? p0 + s0 : p0 - s0;\n\t\t\t\t_v.o[1][1] = p1 + s1 * cPoint;\n\t\t\t\t_v.o[2][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\n\t\t\t\t_v.o[2][1] = p1 + s1;\n\t\t\t\t_v.o[3][0] = _cw ? p0 - s0 : p0 + s0;\n\t\t\t\t_v.o[3][1] = p1 - s1 * cPoint;\n\t\t\t},\n\t\t};\n\n\t\textendPrototype([DynamicPropertyContainer], EllShapePropertyFactory);\n\n\t\treturn EllShapePropertyFactory;\n\t}());\n\n\tvar StarShapeProperty = (function () {\n\t\tfunction StarShapePropertyFactory(elem, data) {\n\t\t\tthis.v = shapePool.newElement();\n\t\t\tthis.v.setPathData(true, 0);\n\t\t\tthis.elem = elem;\n\t\t\tthis.comp = elem.comp;\n\t\t\tthis.data = data;\n\t\t\tthis.frameId = -1;\n\t\t\tthis.d = data.d;\n\t\t\tthis.initDynamicPropertyContainer(elem);\n\t\t\tif (data.sy === 1) {\n\t\t\t\tthis.ir = PropertyFactory.getProp(elem, data.ir, 0, 0, this);\n\t\t\t\tthis.is = PropertyFactory.getProp(elem, data.is, 0, 0.01, this);\n\t\t\t\tthis.convertToPath = this.convertStarToPath;\n\t\t\t} else {\n\t\t\t\tthis.convertToPath = this.convertPolygonToPath;\n\t\t\t}\n\t\t\tthis.pt = PropertyFactory.getProp(elem, data.pt, 0, 0, this);\n\t\t\tthis.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n\t\t\tthis.r = PropertyFactory.getProp(elem, data.r, 0, degToRads, this);\n\t\t\tthis.or = PropertyFactory.getProp(elem, data.or, 0, 0, this);\n\t\t\tthis.os = PropertyFactory.getProp(elem, data.os, 0, 0.01, this);\n\t\t\tthis.localShapeCollection = shapeCollectionPool.newShapeCollection();\n\t\t\tthis.localShapeCollection.addShape(this.v);\n\t\t\tthis.paths = this.localShapeCollection;\n\t\t\tif (this.dynamicProperties.length) {\n\t\t\t\tthis.k = true;\n\t\t\t} else {\n\t\t\t\tthis.k = false;\n\t\t\t\tthis.convertToPath();\n\t\t\t}\n\t\t}\n\n\t\tStarShapePropertyFactory.prototype = {\n\t\t\treset: resetShape,\n\t\t\tgetValue: function () {\n\t\t\t\tif (this.elem.globalData.frameId === this.frameId) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tthis.frameId = this.elem.globalData.frameId;\n\t\t\t\tthis.iterateDynamicProperties();\n\t\t\t\tif (this._mdf) {\n\t\t\t\t\tthis.convertToPath();\n\t\t\t\t}\n\t\t\t},\n\t\t\tconvertStarToPath: function () {\n\t\t\t\tvar numPts = Math.floor(this.pt.v) * 2;\n\t\t\t\tvar angle = (Math.PI * 2) / numPts;\n\t\t\t\t/* this.v.v.length = numPts;\n                this.v.i.length = numPts;\n                this.v.o.length = numPts; */\n\t\t\t\tvar longFlag = true;\n\t\t\t\tvar longRad = this.or.v;\n\t\t\t\tvar shortRad = this.ir.v;\n\t\t\t\tvar longRound = this.os.v;\n\t\t\t\tvar shortRound = this.is.v;\n\t\t\t\tvar longPerimSegment = (2 * Math.PI * longRad) / (numPts * 2);\n\t\t\t\tvar shortPerimSegment = (2 * Math.PI * shortRad) / (numPts * 2);\n\t\t\t\tvar i;\n\t\t\t\tvar rad;\n\t\t\t\tvar roundness;\n\t\t\t\tvar perimSegment;\n\t\t\t\tvar currentAng = -Math.PI / 2;\n\t\t\t\tcurrentAng += this.r.v;\n\t\t\t\tvar dir = this.data.d === 3 ? -1 : 1;\n\t\t\t\tthis.v._length = 0;\n\t\t\t\tfor (i = 0; i < numPts; i += 1) {\n\t\t\t\t\trad = longFlag ? longRad : shortRad;\n\t\t\t\t\troundness = longFlag ? longRound : shortRound;\n\t\t\t\t\tperimSegment = longFlag ? longPerimSegment : shortPerimSegment;\n\t\t\t\t\tvar x = rad * Math.cos(currentAng);\n\t\t\t\t\tvar y = rad * Math.sin(currentAng);\n\t\t\t\t\tvar ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);\n\t\t\t\t\tvar oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);\n\t\t\t\t\tx += +this.p.v[0];\n\t\t\t\t\ty += +this.p.v[1];\n\t\t\t\t\tthis.v.setTripleAt(x, y, x - ox * perimSegment * roundness * dir, y - oy * perimSegment * roundness * dir, x + ox * perimSegment * roundness * dir, y + oy * perimSegment * roundness * dir, i, true);\n\n\t\t\t\t\t/* this.v.v[i] = [x,y];\n                    this.v.i[i] = [x+ox*perimSegment*roundness*dir,y+oy*perimSegment*roundness*dir];\n                    this.v.o[i] = [x-ox*perimSegment*roundness*dir,y-oy*perimSegment*roundness*dir];\n                    this.v._length = numPts; */\n\t\t\t\t\tlongFlag = !longFlag;\n\t\t\t\t\tcurrentAng += angle * dir;\n\t\t\t\t}\n\t\t\t},\n\t\t\tconvertPolygonToPath: function () {\n\t\t\t\tvar numPts = Math.floor(this.pt.v);\n\t\t\t\tvar angle = (Math.PI * 2) / numPts;\n\t\t\t\tvar rad = this.or.v;\n\t\t\t\tvar roundness = this.os.v;\n\t\t\t\tvar perimSegment = (2 * Math.PI * rad) / (numPts * 4);\n\t\t\t\tvar i;\n\t\t\t\tvar currentAng = -Math.PI * 0.5;\n\t\t\t\tvar dir = this.data.d === 3 ? -1 : 1;\n\t\t\t\tcurrentAng += this.r.v;\n\t\t\t\tthis.v._length = 0;\n\t\t\t\tfor (i = 0; i < numPts; i += 1) {\n\t\t\t\t\tvar x = rad * Math.cos(currentAng);\n\t\t\t\t\tvar y = rad * Math.sin(currentAng);\n\t\t\t\t\tvar ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);\n\t\t\t\t\tvar oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);\n\t\t\t\t\tx += +this.p.v[0];\n\t\t\t\t\ty += +this.p.v[1];\n\t\t\t\t\tthis.v.setTripleAt(x, y, x - ox * perimSegment * roundness * dir, y - oy * perimSegment * roundness * dir, x + ox * perimSegment * roundness * dir, y + oy * perimSegment * roundness * dir, i, true);\n\t\t\t\t\tcurrentAng += angle * dir;\n\t\t\t\t}\n\t\t\t\tthis.paths.length = 0;\n\t\t\t\tthis.paths[0] = this.v;\n\t\t\t},\n\n\t\t};\n\t\textendPrototype([DynamicPropertyContainer], StarShapePropertyFactory);\n\n\t\treturn StarShapePropertyFactory;\n\t}());\n\n\tvar RectShapeProperty = (function () {\n\t\tfunction RectShapePropertyFactory(elem, data) {\n\t\t\tthis.v = shapePool.newElement();\n\t\t\tthis.v.c = true;\n\t\t\tthis.localShapeCollection = shapeCollectionPool.newShapeCollection();\n\t\t\tthis.localShapeCollection.addShape(this.v);\n\t\t\tthis.paths = this.localShapeCollection;\n\t\t\tthis.elem = elem;\n\t\t\tthis.comp = elem.comp;\n\t\t\tthis.frameId = -1;\n\t\t\tthis.d = data.d;\n\t\t\tthis.initDynamicPropertyContainer(elem);\n\t\t\tthis.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n\t\t\tthis.s = PropertyFactory.getProp(elem, data.s, 1, 0, this);\n\t\t\tthis.r = PropertyFactory.getProp(elem, data.r, 0, 0, this);\n\t\t\tif (this.dynamicProperties.length) {\n\t\t\t\tthis.k = true;\n\t\t\t} else {\n\t\t\t\tthis.k = false;\n\t\t\t\tthis.convertRectToPath();\n\t\t\t}\n\t\t}\n\n\t\tRectShapePropertyFactory.prototype = {\n\t\t\tconvertRectToPath: function () {\n\t\t\t\tvar p0 = this.p.v[0];\n\t\t\t\tvar p1 = this.p.v[1];\n\t\t\t\tvar v0 = this.s.v[0] / 2;\n\t\t\t\tvar v1 = this.s.v[1] / 2;\n\t\t\t\tvar round = bmMin(v0, v1, this.r.v);\n\t\t\t\tvar cPoint = round * (1 - roundCorner);\n\t\t\t\tthis.v._length = 0;\n\n\t\t\t\tif (this.d === 2 || this.d === 1) {\n\t\t\t\t\tthis.v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, 0, true);\n\t\t\t\t\tthis.v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, p0 + v0, p1 + v1 - round, 1, true);\n\t\t\t\t\tif (round !== 0) {\n\t\t\t\t\t\tthis.v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, 2, true);\n\t\t\t\t\t\tthis.v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0 + round, p1 + v1, 3, true);\n\t\t\t\t\t\tthis.v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, 4, true);\n\t\t\t\t\t\tthis.v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1 + round, 5, true);\n\t\t\t\t\t\tthis.v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, 6, true);\n\t\t\t\t\t\tthis.v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, p0 + v0 - round, p1 - v1, 7, true);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.v.setTripleAt(p0 - v0, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0, p1 + v1, 2);\n\t\t\t\t\t\tthis.v.setTripleAt(p0 - v0, p1 - v1, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1, 3);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tthis.v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, p0 + v0, p1 - v1 + round, 0, true);\n\t\t\t\t\tif (round !== 0) {\n\t\t\t\t\t\tthis.v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, 1, true);\n\t\t\t\t\t\tthis.v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0 + round, p1 - v1, 2, true);\n\t\t\t\t\t\tthis.v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, 3, true);\n\t\t\t\t\t\tthis.v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1 - round, 4, true);\n\t\t\t\t\t\tthis.v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, 5, true);\n\t\t\t\t\t\tthis.v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0 - round, p1 + v1, 6, true);\n\t\t\t\t\t\tthis.v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, 7, true);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.v.setTripleAt(p0 - v0, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0, p1 - v1, 1, true);\n\t\t\t\t\t\tthis.v.setTripleAt(p0 - v0, p1 + v1, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1, 2, true);\n\t\t\t\t\t\tthis.v.setTripleAt(p0 + v0, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0, p1 + v1, 3, true);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tgetValue: function () {\n\t\t\t\tif (this.elem.globalData.frameId === this.frameId) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tthis.frameId = this.elem.globalData.frameId;\n\t\t\t\tthis.iterateDynamicProperties();\n\t\t\t\tif (this._mdf) {\n\t\t\t\t\tthis.convertRectToPath();\n\t\t\t\t}\n\t\t\t},\n\t\t\treset: resetShape,\n\t\t};\n\t\textendPrototype([DynamicPropertyContainer], RectShapePropertyFactory);\n\n\t\treturn RectShapePropertyFactory;\n\t}());\n\n\tfunction getShapeProp(elem, data, type) {\n\t\tvar prop;\n\t\tif (type === 3 || type === 4) {\n\t\t\tvar dataProp = type === 3 ? data.pt : data.ks;\n\t\t\tvar keys = dataProp.k;\n\t\t\tif (keys.length) {\n\t\t\t\tprop = new KeyframedShapeProperty(elem, data, type);\n\t\t\t} else {\n\t\t\t\tprop = new ShapeProperty(elem, data, type);\n\t\t\t}\n\t\t} else if (type === 5) {\n\t\t\tprop = new RectShapeProperty(elem, data);\n\t\t} else if (type === 6) {\n\t\t\tprop = new EllShapeProperty(elem, data);\n\t\t} else if (type === 7) {\n\t\t\tprop = new StarShapeProperty(elem, data);\n\t\t}\n\t\tif (prop.k) {\n\t\t\telem.addDynamicProperty(prop);\n\t\t}\n\t\treturn prop;\n\t}\n\n\tfunction getConstructorFunction() {\n\t\treturn ShapeProperty;\n\t}\n\n\tfunction getKeyframedConstructorFunction() {\n\t\treturn KeyframedShapeProperty;\n\t}\n\n\tvar ob = {};\n\tob.getShapeProp = getShapeProp;\n\tob.getConstructorFunction = getConstructorFunction;\n\tob.getKeyframedConstructorFunction = getKeyframedConstructorFunction;\n\treturn ob;\n}());\n\n/*!\n Transformation Matrix v2.0\n (c) Epistemex 2014-2015\n www.epistemex.com\n By Ken Fyrstenberg\n Contributions by leeoniya.\n License: MIT, header required.\n */\n\n/**\n * 2D transformation matrix object initialized with identity matrix.\n *\n * The matrix can synchronize a canvas context by supplying the context\n * as an argument, or later apply current absolute transform to an\n * existing context.\n *\n * All values are handled as floating point values.\n *\n * @param {CanvasRenderingContext2D} [context] - Optional context to sync with Matrix\n * @prop {number} a - scale x\n * @prop {number} b - shear y\n * @prop {number} c - shear x\n * @prop {number} d - scale y\n * @prop {number} e - translate x\n * @prop {number} f - translate y\n * @prop {CanvasRenderingContext2D|null} [context=null] - set or get current canvas context\n * @constructor\n */\n\nconst Matrix = (function () {\n\tvar _cos = Math.cos;\n\tvar _sin = Math.sin;\n\tvar _tan = Math.tan;\n\tvar _rnd = Math.round;\n\n\tfunction reset() {\n\t\tthis.props[0] = 1;\n\t\tthis.props[1] = 0;\n\t\tthis.props[2] = 0;\n\t\tthis.props[3] = 0;\n\t\tthis.props[4] = 0;\n\t\tthis.props[5] = 1;\n\t\tthis.props[6] = 0;\n\t\tthis.props[7] = 0;\n\t\tthis.props[8] = 0;\n\t\tthis.props[9] = 0;\n\t\tthis.props[10] = 1;\n\t\tthis.props[11] = 0;\n\t\tthis.props[12] = 0;\n\t\tthis.props[13] = 0;\n\t\tthis.props[14] = 0;\n\t\tthis.props[15] = 1;\n\t\treturn this;\n\t}\n\n\tfunction rotate(angle) {\n\t\tif (angle === 0) {\n\t\t\treturn this;\n\t\t}\n\t\tvar mCos = _cos(angle);\n\t\tvar mSin = _sin(angle);\n\t\treturn this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n\t}\n\n\tfunction rotateX(angle) {\n\t\tif (angle === 0) {\n\t\t\treturn this;\n\t\t}\n\t\tvar mCos = _cos(angle);\n\t\tvar mSin = _sin(angle);\n\t\treturn this._t(1, 0, 0, 0, 0, mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1);\n\t}\n\n\tfunction rotateY(angle) {\n\t\tif (angle === 0) {\n\t\t\treturn this;\n\t\t}\n\t\tvar mCos = _cos(angle);\n\t\tvar mSin = _sin(angle);\n\t\treturn this._t(mCos, 0, mSin, 0, 0, 1, 0, 0, -mSin, 0, mCos, 0, 0, 0, 0, 1);\n\t}\n\n\tfunction rotateZ(angle) {\n\t\tif (angle === 0) {\n\t\t\treturn this;\n\t\t}\n\t\tvar mCos = _cos(angle);\n\t\tvar mSin = _sin(angle);\n\t\treturn this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n\t}\n\n\tfunction shear(sx, sy) {\n\t\treturn this._t(1, sy, sx, 1, 0, 0);\n\t}\n\n\tfunction skew(ax, ay) {\n\t\treturn this.shear(_tan(ax), _tan(ay));\n\t}\n\n\tfunction skewFromAxis(ax, angle) {\n\t\tvar mCos = _cos(angle);\n\t\tvar mSin = _sin(angle);\n\t\treturn this._t(mCos, mSin, 0, 0, -mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)\n\t\t\t._t(1, 0, 0, 0, _tan(ax), 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)\n\t\t\t._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n\t\t// return this._t(mCos, mSin, -mSin, mCos, 0, 0)._t(1, 0, _tan(ax), 1, 0, 0)._t(mCos, -mSin, mSin, mCos, 0, 0);\n\t}\n\n\tfunction scale(sx, sy, sz) {\n\t\tif (!sz && sz !== 0) {\n\t\t\tsz = 1;\n\t\t}\n\t\tif (sx === 1 && sy === 1 && sz === 1) {\n\t\t\treturn this;\n\t\t}\n\t\treturn this._t(sx, 0, 0, 0, 0, sy, 0, 0, 0, 0, sz, 0, 0, 0, 0, 1);\n\t}\n\n\tfunction setTransform(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) {\n\t\tthis.props[0] = a;\n\t\tthis.props[1] = b;\n\t\tthis.props[2] = c;\n\t\tthis.props[3] = d;\n\t\tthis.props[4] = e;\n\t\tthis.props[5] = f;\n\t\tthis.props[6] = g;\n\t\tthis.props[7] = h;\n\t\tthis.props[8] = i;\n\t\tthis.props[9] = j;\n\t\tthis.props[10] = k;\n\t\tthis.props[11] = l;\n\t\tthis.props[12] = m;\n\t\tthis.props[13] = n;\n\t\tthis.props[14] = o;\n\t\tthis.props[15] = p;\n\t\treturn this;\n\t}\n\n\tfunction translate(tx, ty, tz) {\n\t\ttz = tz || 0;\n\t\tif (tx !== 0 || ty !== 0 || tz !== 0) {\n\t\t\treturn this._t(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, tx, ty, tz, 1);\n\t\t}\n\t\treturn this;\n\t}\n\n\tfunction transform(a2, b2, c2, d2, e2, f2, g2, h2, i2, j2, k2, l2, m2, n2, o2, p2) {\n\t\tvar _p = this.props;\n\n\t\tif (a2 === 1 && b2 === 0 && c2 === 0 && d2 === 0 && e2 === 0 && f2 === 1 && g2 === 0 && h2 === 0 && i2 === 0 && j2 === 0 && k2 === 1 && l2 === 0) {\n\t\t\t// NOTE: commenting this condition because TurboFan deoptimizes code when present\n\t\t\t// if(m2 !== 0 || n2 !== 0 || o2 !== 0){\n\t\t\t_p[12] = _p[12] * a2 + _p[15] * m2;\n\t\t\t_p[13] = _p[13] * f2 + _p[15] * n2;\n\t\t\t_p[14] = _p[14] * k2 + _p[15] * o2;\n\t\t\t_p[15] *= p2;\n\t\t\t// }\n\t\t\tthis._identityCalculated = false;\n\t\t\treturn this;\n\t\t}\n\n\t\tvar a1 = _p[0];\n\t\tvar b1 = _p[1];\n\t\tvar c1 = _p[2];\n\t\tvar d1 = _p[3];\n\t\tvar e1 = _p[4];\n\t\tvar f1 = _p[5];\n\t\tvar g1 = _p[6];\n\t\tvar h1 = _p[7];\n\t\tvar i1 = _p[8];\n\t\tvar j1 = _p[9];\n\t\tvar k1 = _p[10];\n\t\tvar l1 = _p[11];\n\t\tvar m1 = _p[12];\n\t\tvar n1 = _p[13];\n\t\tvar o1 = _p[14];\n\t\tvar p1 = _p[15];\n\n\t\t/* matrix order (canvas compatible):\n         * ace\n         * bdf\n         * 001\n         */\n\t\t_p[0] = a1 * a2 + b1 * e2 + c1 * i2 + d1 * m2;\n\t\t_p[1] = a1 * b2 + b1 * f2 + c1 * j2 + d1 * n2;\n\t\t_p[2] = a1 * c2 + b1 * g2 + c1 * k2 + d1 * o2;\n\t\t_p[3] = a1 * d2 + b1 * h2 + c1 * l2 + d1 * p2;\n\n\t\t_p[4] = e1 * a2 + f1 * e2 + g1 * i2 + h1 * m2;\n\t\t_p[5] = e1 * b2 + f1 * f2 + g1 * j2 + h1 * n2;\n\t\t_p[6] = e1 * c2 + f1 * g2 + g1 * k2 + h1 * o2;\n\t\t_p[7] = e1 * d2 + f1 * h2 + g1 * l2 + h1 * p2;\n\n\t\t_p[8] = i1 * a2 + j1 * e2 + k1 * i2 + l1 * m2;\n\t\t_p[9] = i1 * b2 + j1 * f2 + k1 * j2 + l1 * n2;\n\t\t_p[10] = i1 * c2 + j1 * g2 + k1 * k2 + l1 * o2;\n\t\t_p[11] = i1 * d2 + j1 * h2 + k1 * l2 + l1 * p2;\n\n\t\t_p[12] = m1 * a2 + n1 * e2 + o1 * i2 + p1 * m2;\n\t\t_p[13] = m1 * b2 + n1 * f2 + o1 * j2 + p1 * n2;\n\t\t_p[14] = m1 * c2 + n1 * g2 + o1 * k2 + p1 * o2;\n\t\t_p[15] = m1 * d2 + n1 * h2 + o1 * l2 + p1 * p2;\n\n\t\tthis._identityCalculated = false;\n\t\treturn this;\n\t}\n\n\tfunction isIdentity() {\n\t\tif (!this._identityCalculated) {\n\t\t\tthis._identity = !(this.props[0] !== 1 || this.props[1] !== 0 || this.props[2] !== 0 || this.props[3] !== 0 || this.props[4] !== 0 || this.props[5] !== 1 || this.props[6] !== 0 || this.props[7] !== 0 || this.props[8] !== 0 || this.props[9] !== 0 || this.props[10] !== 1 || this.props[11] !== 0 || this.props[12] !== 0 || this.props[13] !== 0 || this.props[14] !== 0 || this.props[15] !== 1);\n\t\t\tthis._identityCalculated = true;\n\t\t}\n\t\treturn this._identity;\n\t}\n\n\tfunction equals(matr) {\n\t\tvar i = 0;\n\t\twhile (i < 16) {\n\t\t\tif (matr.props[i] !== this.props[i]) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\ti += 1;\n\t\t}\n\t\treturn true;\n\t}\n\n\tfunction clone(matr) {\n\t\tvar i;\n\t\tfor (i = 0; i < 16; i += 1) {\n\t\t\tmatr.props[i] = this.props[i];\n\t\t}\n\t\treturn matr;\n\t}\n\n\tfunction cloneFromProps(props) {\n\t\tvar i;\n\t\tfor (i = 0; i < 16; i += 1) {\n\t\t\tthis.props[i] = props[i];\n\t\t}\n\t}\n\n\tfunction applyToPoint(x, y, z) {\n\t\treturn {\n\t\t\tx: x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12],\n\t\t\ty: x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13],\n\t\t\tz: x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14],\n\t\t};\n\t\t/* return {\n         x: x * me.a + y * me.c + me.e,\n         y: x * me.b + y * me.d + me.f\n         }; */\n\t}\n\tfunction applyToX(x, y, z) {\n\t\treturn x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12];\n\t}\n\tfunction applyToY(x, y, z) {\n\t\treturn x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13];\n\t}\n\tfunction applyToZ(x, y, z) {\n\t\treturn x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14];\n\t}\n\n\tfunction getInverseMatrix() {\n\t\tvar determinant = this.props[0] * this.props[5] - this.props[1] * this.props[4];\n\t\tvar a = this.props[5] / determinant;\n\t\tvar b = -this.props[1] / determinant;\n\t\tvar c = -this.props[4] / determinant;\n\t\tvar d = this.props[0] / determinant;\n\t\tvar e = (this.props[4] * this.props[13] - this.props[5] * this.props[12]) / determinant;\n\t\tvar f = -(this.props[0] * this.props[13] - this.props[1] * this.props[12]) / determinant;\n\t\tvar inverseMatrix = new Matrix();\n\t\tinverseMatrix.props[0] = a;\n\t\tinverseMatrix.props[1] = b;\n\t\tinverseMatrix.props[4] = c;\n\t\tinverseMatrix.props[5] = d;\n\t\tinverseMatrix.props[12] = e;\n\t\tinverseMatrix.props[13] = f;\n\t\treturn inverseMatrix;\n\t}\n\n\tfunction inversePoint(pt) {\n\t\tvar inverseMatrix = this.getInverseMatrix();\n\t\treturn inverseMatrix.applyToPointArray(pt[0], pt[1], pt[2] || 0);\n\t}\n\n\tfunction inversePoints(pts) {\n\t\tvar i;\n\t\tvar len = pts.length;\n\t\tvar retPts = [];\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tretPts[i] = inversePoint(pts[i]);\n\t\t}\n\t\treturn retPts;\n\t}\n\n\tfunction applyToTriplePoints(pt1, pt2, pt3) {\n\t\tvar arr = createTypedArray('float32', 6);\n\t\tif (this.isIdentity()) {\n\t\t\tarr[0] = pt1[0];\n\t\t\tarr[1] = pt1[1];\n\t\t\tarr[2] = pt2[0];\n\t\t\tarr[3] = pt2[1];\n\t\t\tarr[4] = pt3[0];\n\t\t\tarr[5] = pt3[1];\n\t\t} else {\n\t\t\tvar p0 = this.props[0];\n\t\t\tvar p1 = this.props[1];\n\t\t\tvar p4 = this.props[4];\n\t\t\tvar p5 = this.props[5];\n\t\t\tvar p12 = this.props[12];\n\t\t\tvar p13 = this.props[13];\n\t\t\tarr[0] = pt1[0] * p0 + pt1[1] * p4 + p12;\n\t\t\tarr[1] = pt1[0] * p1 + pt1[1] * p5 + p13;\n\t\t\tarr[2] = pt2[0] * p0 + pt2[1] * p4 + p12;\n\t\t\tarr[3] = pt2[0] * p1 + pt2[1] * p5 + p13;\n\t\t\tarr[4] = pt3[0] * p0 + pt3[1] * p4 + p12;\n\t\t\tarr[5] = pt3[0] * p1 + pt3[1] * p5 + p13;\n\t\t}\n\t\treturn arr;\n\t}\n\n\tfunction applyToPointArray(x, y, z) {\n\t\tvar arr;\n\t\tif (this.isIdentity()) {\n\t\t\tarr = [x, y, z];\n\t\t} else {\n\t\t\tarr = [\n\t\t\t\tx * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12],\n\t\t\t\tx * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13],\n\t\t\t\tx * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14],\n\t\t\t];\n\t\t}\n\t\treturn arr;\n\t}\n\n\tfunction applyToPointStringified(x, y) {\n\t\tif (this.isIdentity()) {\n\t\t\treturn x + ',' + y;\n\t\t}\n\t\tvar _p = this.props;\n\t\treturn Math.round((x * _p[0] + y * _p[4] + _p[12]) * 100) / 100 + ',' + Math.round((x * _p[1] + y * _p[5] + _p[13]) * 100) / 100;\n\t}\n\n\tfunction toCSS() {\n\t\t// Doesn't make much sense to add this optimization. If it is an identity matrix, it's very likely this will get called only once since it won't be keyframed.\n\t\t/* if(this.isIdentity()) {\n            return '';\n        } */\n\t\tvar i = 0;\n\t\tvar props = this.props;\n\t\tvar cssValue = 'matrix3d(';\n\t\tvar v = 10000;\n\t\twhile (i < 16) {\n\t\t\tcssValue += _rnd(props[i] * v) / v;\n\t\t\tcssValue += i === 15 ? ')' : ',';\n\t\t\ti += 1;\n\t\t}\n\t\treturn cssValue;\n\t}\n\n\tfunction roundMatrixProperty(val) {\n\t\tvar v = 10000;\n\t\tif ((val < 0.000001 && val > 0) || (val > -0.000001 && val < 0)) {\n\t\t\treturn _rnd(val * v) / v;\n\t\t}\n\t\treturn val;\n\t}\n\n\tfunction to2dCSS() {\n\t\t// Doesn't make much sense to add this optimization. If it is an identity matrix, it's very likely this will get called only once since it won't be keyframed.\n\t\t/* if(this.isIdentity()) {\n            return '';\n        } */\n\t\tvar props = this.props;\n\t\tvar _a = roundMatrixProperty(props[0]);\n\t\tvar _b = roundMatrixProperty(props[1]);\n\t\tvar _c = roundMatrixProperty(props[4]);\n\t\tvar _d = roundMatrixProperty(props[5]);\n\t\tvar _e = roundMatrixProperty(props[12]);\n\t\tvar _f = roundMatrixProperty(props[13]);\n\t\treturn 'matrix(' + _a + ',' + _b + ',' + _c + ',' + _d + ',' + _e + ',' + _f + ')';\n\t}\n\n\treturn function () {\n\t\tthis.reset = reset;\n\t\tthis.rotate = rotate;\n\t\tthis.rotateX = rotateX;\n\t\tthis.rotateY = rotateY;\n\t\tthis.rotateZ = rotateZ;\n\t\tthis.skew = skew;\n\t\tthis.skewFromAxis = skewFromAxis;\n\t\tthis.shear = shear;\n\t\tthis.scale = scale;\n\t\tthis.setTransform = setTransform;\n\t\tthis.translate = translate;\n\t\tthis.transform = transform;\n\t\tthis.applyToPoint = applyToPoint;\n\t\tthis.applyToX = applyToX;\n\t\tthis.applyToY = applyToY;\n\t\tthis.applyToZ = applyToZ;\n\t\tthis.applyToPointArray = applyToPointArray;\n\t\tthis.applyToTriplePoints = applyToTriplePoints;\n\t\tthis.applyToPointStringified = applyToPointStringified;\n\t\tthis.toCSS = toCSS;\n\t\tthis.to2dCSS = to2dCSS;\n\t\tthis.clone = clone;\n\t\tthis.cloneFromProps = cloneFromProps;\n\t\tthis.equals = equals;\n\t\tthis.inversePoints = inversePoints;\n\t\tthis.inversePoint = inversePoint;\n\t\tthis.getInverseMatrix = getInverseMatrix;\n\t\tthis._t = this.transform;\n\t\tthis.isIdentity = isIdentity;\n\t\tthis._identity = true;\n\t\tthis._identityCalculated = false;\n\n\t\tthis.props = createTypedArray('float32', 16);\n\t\tthis.reset();\n\t};\n}());\n\nconst lottie = {};\nvar standalone = '__[STANDALONE]__';\nvar animationData = '__[ANIMATIONDATA]__';\nvar renderer = '';\n\nfunction setLocation(href) {\n\tsetLocationHref(href);\n}\n\nfunction searchAnimations() {\n\tif (standalone === true) {\n\t\tanimationManager.searchAnimations(animationData, standalone, renderer);\n\t} else {\n\t\tanimationManager.searchAnimations();\n\t}\n}\n\nfunction setSubframeRendering(flag) {\n\tsetSubframeEnabled(flag);\n}\n\nfunction setPrefix(prefix) {\n\tsetIdPrefix(prefix);\n}\n\nfunction loadAnimation(params) {\n\tif (standalone === true) {\n\t\tparams.animationData = JSON.parse(animationData);\n\t}\n\treturn animationManager.loadAnimation(params);\n}\n\nfunction setQuality(value) {\n\tif (typeof value === 'string') {\n\t\tswitch (value) {\n\t\t\tcase 'high':\n\t\t\t\tsetDefaultCurveSegments(200);\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\tcase 'medium':\n\t\t\t\tsetDefaultCurveSegments(50);\n\t\t\t\tbreak;\n\t\t\tcase 'low':\n\t\t\t\tsetDefaultCurveSegments(10);\n\t\t\t\tbreak;\n\t\t}\n\t} else if (!isNaN(value) && value > 1) {\n\t\tsetDefaultCurveSegments(value);\n\t}\n\tif (getDefaultCurveSegments() >= 50) {\n\t\troundValues(false);\n\t} else {\n\t\troundValues(true);\n\t}\n}\n\nfunction inBrowser() {\n\treturn typeof navigator !== 'undefined';\n}\n\nfunction installPlugin(type, plugin) {\n\tif (type === 'expressions') {\n\t\tsetExpressionsPlugin(plugin);\n\t}\n}\n\nfunction getFactory(name) {\n\tswitch (name) {\n\t\tcase 'propertyFactory':\n\t\t\treturn PropertyFactory;\n\t\tcase 'shapePropertyFactory':\n\t\t\treturn ShapePropertyFactory;\n\t\tcase 'matrix':\n\t\t\treturn Matrix;\n\t\tdefault:\n\t\t\treturn null;\n\t}\n}\n\nlottie.play = animationManager.play;\nlottie.pause = animationManager.pause;\nlottie.setLocationHref = setLocation;\nlottie.togglePause = animationManager.togglePause;\nlottie.setSpeed = animationManager.setSpeed;\nlottie.setDirection = animationManager.setDirection;\nlottie.stop = animationManager.stop;\nlottie.searchAnimations = searchAnimations;\nlottie.registerAnimation = animationManager.registerAnimation;\nlottie.loadAnimation = loadAnimation;\nlottie.setSubframeRendering = setSubframeRendering;\nlottie.resize = animationManager.resize;\n// lottie.start = start;\nlottie.goToAndStop = animationManager.goToAndStop;\nlottie.destroy = animationManager.destroy;\nlottie.setQuality = setQuality;\nlottie.inBrowser = inBrowser;\nlottie.installPlugin = installPlugin;\nlottie.freeze = animationManager.freeze;\nlottie.unfreeze = animationManager.unfreeze;\nlottie.setVolume = animationManager.setVolume;\nlottie.mute = animationManager.mute;\nlottie.unmute = animationManager.unmute;\nlottie.getRegisteredAnimations = animationManager.getRegisteredAnimations;\nlottie.useWebWorker = setWebWorker;\nlottie.setIDPrefix = setPrefix;\nlottie.__getFactory = getFactory;\nlottie.version = '[[BM_VERSION]]';\n\nfunction checkReady() {\n\tif (document.readyState === 'complete') {\n\t\tclearInterval(readyStateCheckInterval);\n\t\tsearchAnimations();\n\t}\n}\n\nfunction getQueryVariable(variable) {\n\tvar vars = queryString.split('&');\n\tfor (var i = 0; i < vars.length; i += 1) {\n\t\tvar pair = vars[i].split('=');\n\t\tif (decodeURIComponent(pair[0]) == variable) { // eslint-disable-line eqeqeq\n\t\t\treturn decodeURIComponent(pair[1]);\n\t\t}\n\t}\n\treturn null;\n}\nvar queryString = '';\nif (standalone) {\n\tvar scripts = document.getElementsByTagName('script');\n\tvar index = scripts.length - 1;\n\tvar myScript = scripts[index] || {\n\t\tsrc: '',\n\t};\n\tqueryString = myScript.src ? myScript.src.replace(/^[^\\?]+\\??/, '') : ''; // eslint-disable-line no-useless-escape\n\trenderer = getQueryVariable('renderer');\n}\nvar readyStateCheckInterval = setInterval(checkReady, 100);\n\n// this adds bodymovin to the window object for backwards compatibility\ntry {\n\tif (!(typeof exports === 'object' && typeof module !== 'undefined')\n\t\t&& !(typeof define === 'function' && define.amd) // eslint-disable-line no-undef\n\t) {\n\t\twindow.bodymovin = lottie;\n\t}\n} catch (err) {\n\t//\n}\n\nconst ShapeModifiers = (function () {\n\tvar ob = {};\n\tvar modifiers = {};\n\tob.registerModifier = registerModifier;\n\tob.getModifier = getModifier;\n\n\tfunction registerModifier(nm, factory) {\n\t\tif (!modifiers[nm]) {\n\t\t\tmodifiers[nm] = factory;\n\t\t}\n\t}\n\n\tfunction getModifier(nm, elem, data) {\n\t\treturn new modifiers[nm](elem, data);\n\t}\n\n\treturn ob;\n}());\n\nfunction ShapeModifier() {}\nShapeModifier.prototype.initModifierProperties = function () {};\nShapeModifier.prototype.addShapeToModifier = function () {};\nShapeModifier.prototype.addShape = function (data) {\n\tif (!this.closed) {\n\t\t// Adding shape to dynamic properties. It covers the case where a shape has no effects applied, to reset it's _mdf state on every tick.\n\t\tdata.sh.container.addDynamicProperty(data.sh);\n\t\tvar shapeData = { shape: data.sh, data: data, localShapeCollection: shapeCollectionPool.newShapeCollection() };\n\t\tthis.shapes.push(shapeData);\n\t\tthis.addShapeToModifier(shapeData);\n\t\tif (this._isAnimated) {\n\t\t\tdata.setAsAnimated();\n\t\t}\n\t}\n};\nShapeModifier.prototype.init = function (elem, data) {\n\tthis.shapes = [];\n\tthis.elem = elem;\n\tthis.initDynamicPropertyContainer(elem);\n\tthis.initModifierProperties(elem, data);\n\tthis.frameId = initialDefaultFrame;\n\tthis.closed = false;\n\tthis.k = false;\n\tif (this.dynamicProperties.length) {\n\t\tthis.k = true;\n\t} else {\n\t\tthis.getValue(true);\n\t}\n};\nShapeModifier.prototype.processKeys = function () {\n\tif (this.elem.globalData.frameId === this.frameId) {\n\t\treturn;\n\t}\n\tthis.frameId = this.elem.globalData.frameId;\n\tthis.iterateDynamicProperties();\n};\n\nextendPrototype([DynamicPropertyContainer], ShapeModifier);\n\nfunction TrimModifier() {\n}\nextendPrototype([ShapeModifier], TrimModifier);\nTrimModifier.prototype.initModifierProperties = function (elem, data) {\n\tthis.s = PropertyFactory.getProp(elem, data.s, 0, 0.01, this);\n\tthis.e = PropertyFactory.getProp(elem, data.e, 0, 0.01, this);\n\tthis.o = PropertyFactory.getProp(elem, data.o, 0, 0, this);\n\tthis.sValue = 0;\n\tthis.eValue = 0;\n\tthis.getValue = this.processKeys;\n\tthis.m = data.m;\n\tthis._isAnimated = !!this.s.effectsSequence.length || !!this.e.effectsSequence.length || !!this.o.effectsSequence.length;\n};\n\nTrimModifier.prototype.addShapeToModifier = function (shapeData) {\n\tshapeData.pathsData = [];\n};\n\nTrimModifier.prototype.calculateShapeEdges = function (s, e, shapeLength, addedLength, totalModifierLength) {\n\tvar segments = [];\n\tif (e <= 1) {\n\t\tsegments.push({\n\t\t\ts: s,\n\t\t\te: e,\n\t\t});\n\t} else if (s >= 1) {\n\t\tsegments.push({\n\t\t\ts: s - 1,\n\t\t\te: e - 1,\n\t\t});\n\t} else {\n\t\tsegments.push({\n\t\t\ts: s,\n\t\t\te: 1,\n\t\t});\n\t\tsegments.push({\n\t\t\ts: 0,\n\t\t\te: e - 1,\n\t\t});\n\t}\n\tvar shapeSegments = [];\n\tvar i;\n\tvar len = segments.length;\n\tvar segmentOb;\n\tfor (i = 0; i < len; i += 1) {\n\t\tsegmentOb = segments[i];\n\t\tif (!(segmentOb.e * totalModifierLength < addedLength || segmentOb.s * totalModifierLength > addedLength + shapeLength)) {\n\t\t\tvar shapeS;\n\t\t\tvar shapeE;\n\t\t\tif (segmentOb.s * totalModifierLength <= addedLength) {\n\t\t\t\tshapeS = 0;\n\t\t\t} else {\n\t\t\t\tshapeS = (segmentOb.s * totalModifierLength - addedLength) / shapeLength;\n\t\t\t}\n\t\t\tif (segmentOb.e * totalModifierLength >= addedLength + shapeLength) {\n\t\t\t\tshapeE = 1;\n\t\t\t} else {\n\t\t\t\tshapeE = ((segmentOb.e * totalModifierLength - addedLength) / shapeLength);\n\t\t\t}\n\t\t\tshapeSegments.push([shapeS, shapeE]);\n\t\t}\n\t}\n\tif (!shapeSegments.length) {\n\t\tshapeSegments.push([0, 0]);\n\t}\n\treturn shapeSegments;\n};\n\nTrimModifier.prototype.releasePathsData = function (pathsData) {\n\tvar i;\n\tvar len = pathsData.length;\n\tfor (i = 0; i < len; i += 1) {\n\t\tsegmentsLengthPool.release(pathsData[i]);\n\t}\n\tpathsData.length = 0;\n\treturn pathsData;\n};\n\nTrimModifier.prototype.processShapes = function (_isFirstFrame) {\n\tvar s;\n\tvar e;\n\tif (this._mdf || _isFirstFrame) {\n\t\tvar o = (this.o.v % 360) / 360;\n\t\tif (o < 0) {\n\t\t\to += 1;\n\t\t}\n\t\tif (this.s.v > 1) {\n\t\t\ts = 1 + o;\n\t\t} else if (this.s.v < 0) {\n\t\t\ts = 0 + o;\n\t\t} else {\n\t\t\ts = this.s.v + o;\n\t\t}\n\t\tif (this.e.v > 1) {\n\t\t\te = 1 + o;\n\t\t} else if (this.e.v < 0) {\n\t\t\te = 0 + o;\n\t\t} else {\n\t\t\te = this.e.v + o;\n\t\t}\n\n\t\tif (s > e) {\n\t\t\tvar _s = s;\n\t\t\ts = e;\n\t\t\te = _s;\n\t\t}\n\t\ts = Math.round(s * 10000) * 0.0001;\n\t\te = Math.round(e * 10000) * 0.0001;\n\t\tthis.sValue = s;\n\t\tthis.eValue = e;\n\t} else {\n\t\ts = this.sValue;\n\t\te = this.eValue;\n\t}\n\tvar shapePaths;\n\tvar i;\n\tvar len = this.shapes.length;\n\tvar j;\n\tvar jLen;\n\tvar pathsData;\n\tvar pathData;\n\tvar totalShapeLength;\n\tvar totalModifierLength = 0;\n\n\tif (e === s) {\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tthis.shapes[i].localShapeCollection.releaseShapes();\n\t\t\tthis.shapes[i].shape._mdf = true;\n\t\t\tthis.shapes[i].shape.paths = this.shapes[i].localShapeCollection;\n\t\t\tif (this._mdf) {\n\t\t\t\tthis.shapes[i].pathsData.length = 0;\n\t\t\t}\n\t\t}\n\t} else if (!((e === 1 && s === 0) || (e === 0 && s === 1))) {\n\t\tvar segments = [];\n\t\tvar shapeData;\n\t\tvar localShapeCollection;\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tshapeData = this.shapes[i];\n\t\t\t// if shape hasn't changed and trim properties haven't changed, cached previous path can be used\n\t\t\tif (!shapeData.shape._mdf && !this._mdf && !_isFirstFrame && this.m !== 2) {\n\t\t\t\tshapeData.shape.paths = shapeData.localShapeCollection;\n\t\t\t} else {\n\t\t\t\tshapePaths = shapeData.shape.paths;\n\t\t\t\tjLen = shapePaths._length;\n\t\t\t\ttotalShapeLength = 0;\n\t\t\t\tif (!shapeData.shape._mdf && shapeData.pathsData.length) {\n\t\t\t\t\ttotalShapeLength = shapeData.totalShapeLength;\n\t\t\t\t} else {\n\t\t\t\t\tpathsData = this.releasePathsData(shapeData.pathsData);\n\t\t\t\t\tfor (j = 0; j < jLen; j += 1) {\n\t\t\t\t\t\tpathData = bez.getSegmentsLength(shapePaths.shapes[j]);\n\t\t\t\t\t\tpathsData.push(pathData);\n\t\t\t\t\t\ttotalShapeLength += pathData.totalLength;\n\t\t\t\t\t}\n\t\t\t\t\tshapeData.totalShapeLength = totalShapeLength;\n\t\t\t\t\tshapeData.pathsData = pathsData;\n\t\t\t\t}\n\n\t\t\t\ttotalModifierLength += totalShapeLength;\n\t\t\t\tshapeData.shape._mdf = true;\n\t\t\t}\n\t\t}\n\t\tvar shapeS = s;\n\t\tvar shapeE = e;\n\t\tvar addedLength = 0;\n\t\tvar edges;\n\t\tfor (i = len - 1; i >= 0; i -= 1) {\n\t\t\tshapeData = this.shapes[i];\n\t\t\tif (shapeData.shape._mdf) {\n\t\t\t\tlocalShapeCollection = shapeData.localShapeCollection;\n\t\t\t\tlocalShapeCollection.releaseShapes();\n\t\t\t\t// if m === 2 means paths are trimmed individually so edges need to be found for this specific shape relative to whoel group\n\t\t\t\tif (this.m === 2 && len > 1) {\n\t\t\t\t\tedges = this.calculateShapeEdges(s, e, shapeData.totalShapeLength, addedLength, totalModifierLength);\n\t\t\t\t\taddedLength += shapeData.totalShapeLength;\n\t\t\t\t} else {\n\t\t\t\t\tedges = [[shapeS, shapeE]];\n\t\t\t\t}\n\t\t\t\tjLen = edges.length;\n\t\t\t\tfor (j = 0; j < jLen; j += 1) {\n\t\t\t\t\tshapeS = edges[j][0];\n\t\t\t\t\tshapeE = edges[j][1];\n\t\t\t\t\tsegments.length = 0;\n\t\t\t\t\tif (shapeE <= 1) {\n\t\t\t\t\t\tsegments.push({\n\t\t\t\t\t\t\ts: shapeData.totalShapeLength * shapeS,\n\t\t\t\t\t\t\te: shapeData.totalShapeLength * shapeE,\n\t\t\t\t\t\t});\n\t\t\t\t\t} else if (shapeS >= 1) {\n\t\t\t\t\t\tsegments.push({\n\t\t\t\t\t\t\ts: shapeData.totalShapeLength * (shapeS - 1),\n\t\t\t\t\t\t\te: shapeData.totalShapeLength * (shapeE - 1),\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsegments.push({\n\t\t\t\t\t\t\ts: shapeData.totalShapeLength * shapeS,\n\t\t\t\t\t\t\te: shapeData.totalShapeLength,\n\t\t\t\t\t\t});\n\t\t\t\t\t\tsegments.push({\n\t\t\t\t\t\t\ts: 0,\n\t\t\t\t\t\t\te: shapeData.totalShapeLength * (shapeE - 1),\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\tvar newShapesData = this.addShapes(shapeData, segments[0]);\n\t\t\t\t\tif (segments[0].s !== segments[0].e) {\n\t\t\t\t\t\tif (segments.length > 1) {\n\t\t\t\t\t\t\tvar lastShapeInCollection = shapeData.shape.paths.shapes[shapeData.shape.paths._length - 1];\n\t\t\t\t\t\t\tif (lastShapeInCollection.c) {\n\t\t\t\t\t\t\t\tvar lastShape = newShapesData.pop();\n\t\t\t\t\t\t\t\tthis.addPaths(newShapesData, localShapeCollection);\n\t\t\t\t\t\t\t\tnewShapesData = this.addShapes(shapeData, segments[1], lastShape);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.addPaths(newShapesData, localShapeCollection);\n\t\t\t\t\t\t\t\tnewShapesData = this.addShapes(shapeData, segments[1]);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis.addPaths(newShapesData, localShapeCollection);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tshapeData.shape.paths = localShapeCollection;\n\t\t\t}\n\t\t}\n\t} else if (this._mdf) {\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\t// Releasign Trim Cached paths data when no trim applied in case shapes are modified inbetween.\n\t\t\t// Don't remove this even if it's losing cached info.\n\t\t\tthis.shapes[i].pathsData.length = 0;\n\t\t\tthis.shapes[i].shape._mdf = true;\n\t\t}\n\t}\n};\n\nTrimModifier.prototype.addPaths = function (newPaths, localShapeCollection) {\n\tvar i;\n\tvar len = newPaths.length;\n\tfor (i = 0; i < len; i += 1) {\n\t\tlocalShapeCollection.addShape(newPaths[i]);\n\t}\n};\n\nTrimModifier.prototype.addSegment = function (pt1, pt2, pt3, pt4, shapePath, pos, newShape) {\n\tshapePath.setXYAt(pt2[0], pt2[1], 'o', pos);\n\tshapePath.setXYAt(pt3[0], pt3[1], 'i', pos + 1);\n\tif (newShape) {\n\t\tshapePath.setXYAt(pt1[0], pt1[1], 'v', pos);\n\t}\n\tshapePath.setXYAt(pt4[0], pt4[1], 'v', pos + 1);\n};\n\nTrimModifier.prototype.addSegmentFromArray = function (points, shapePath, pos, newShape) {\n\tshapePath.setXYAt(points[1], points[5], 'o', pos);\n\tshapePath.setXYAt(points[2], points[6], 'i', pos + 1);\n\tif (newShape) {\n\t\tshapePath.setXYAt(points[0], points[4], 'v', pos);\n\t}\n\tshapePath.setXYAt(points[3], points[7], 'v', pos + 1);\n};\n\nTrimModifier.prototype.addShapes = function (shapeData, shapeSegment, shapePath) {\n\tvar pathsData = shapeData.pathsData;\n\tvar shapePaths = shapeData.shape.paths.shapes;\n\tvar i;\n\tvar len = shapeData.shape.paths._length;\n\tvar j;\n\tvar jLen;\n\tvar addedLength = 0;\n\tvar currentLengthData;\n\tvar segmentCount;\n\tvar lengths;\n\tvar segment;\n\tvar shapes = [];\n\tvar initPos;\n\tvar newShape = true;\n\tif (!shapePath) {\n\t\tshapePath = shapePool.newElement();\n\t\tsegmentCount = 0;\n\t\tinitPos = 0;\n\t} else {\n\t\tsegmentCount = shapePath._length;\n\t\tinitPos = shapePath._length;\n\t}\n\tshapes.push(shapePath);\n\tfor (i = 0; i < len; i += 1) {\n\t\tlengths = pathsData[i].lengths;\n\t\tshapePath.c = shapePaths[i].c;\n\t\tjLen = shapePaths[i].c ? lengths.length : lengths.length + 1;\n\t\tfor (j = 1; j < jLen; j += 1) {\n\t\t\tcurrentLengthData = lengths[j - 1];\n\t\t\tif (addedLength + currentLengthData.addedLength < shapeSegment.s) {\n\t\t\t\taddedLength += currentLengthData.addedLength;\n\t\t\t\tshapePath.c = false;\n\t\t\t} else if (addedLength > shapeSegment.e) {\n\t\t\t\tshapePath.c = false;\n\t\t\t\tbreak;\n\t\t\t} else {\n\t\t\t\tif (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + currentLengthData.addedLength) {\n\t\t\t\t\tthis.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[j], shapePaths[i].v[j], shapePath, segmentCount, newShape);\n\t\t\t\t\tnewShape = false;\n\t\t\t\t} else {\n\t\t\t\t\tsegment = bez.getNewSegment(shapePaths[i].v[j - 1], shapePaths[i].v[j], shapePaths[i].o[j - 1], shapePaths[i].i[j], (shapeSegment.s - addedLength) / currentLengthData.addedLength, (shapeSegment.e - addedLength) / currentLengthData.addedLength, lengths[j - 1]);\n\t\t\t\t\tthis.addSegmentFromArray(segment, shapePath, segmentCount, newShape);\n\t\t\t\t\t// this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\n\t\t\t\t\tnewShape = false;\n\t\t\t\t\tshapePath.c = false;\n\t\t\t\t}\n\t\t\t\taddedLength += currentLengthData.addedLength;\n\t\t\t\tsegmentCount += 1;\n\t\t\t}\n\t\t}\n\t\tif (shapePaths[i].c && lengths.length) {\n\t\t\tcurrentLengthData = lengths[j - 1];\n\t\t\tif (addedLength <= shapeSegment.e) {\n\t\t\t\tvar segmentLength = lengths[j - 1].addedLength;\n\t\t\t\tif (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + segmentLength) {\n\t\t\t\t\tthis.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[0], shapePaths[i].v[0], shapePath, segmentCount, newShape);\n\t\t\t\t\tnewShape = false;\n\t\t\t\t} else {\n\t\t\t\t\tsegment = bez.getNewSegment(shapePaths[i].v[j - 1], shapePaths[i].v[0], shapePaths[i].o[j - 1], shapePaths[i].i[0], (shapeSegment.s - addedLength) / segmentLength, (shapeSegment.e - addedLength) / segmentLength, lengths[j - 1]);\n\t\t\t\t\tthis.addSegmentFromArray(segment, shapePath, segmentCount, newShape);\n\t\t\t\t\t// this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\n\t\t\t\t\tnewShape = false;\n\t\t\t\t\tshapePath.c = false;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tshapePath.c = false;\n\t\t\t}\n\t\t\taddedLength += currentLengthData.addedLength;\n\t\t\tsegmentCount += 1;\n\t\t}\n\t\tif (shapePath._length) {\n\t\t\tshapePath.setXYAt(shapePath.v[initPos][0], shapePath.v[initPos][1], 'i', initPos);\n\t\t\tshapePath.setXYAt(shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1], 'o', shapePath._length - 1);\n\t\t}\n\t\tif (addedLength > shapeSegment.e) {\n\t\t\tbreak;\n\t\t}\n\t\tif (i < len - 1) {\n\t\t\tshapePath = shapePool.newElement();\n\t\t\tnewShape = true;\n\t\t\tshapes.push(shapePath);\n\t\t\tsegmentCount = 0;\n\t\t}\n\t}\n\treturn shapes;\n};\n\nfunction PuckerAndBloatModifier() {}\nextendPrototype([ShapeModifier], PuckerAndBloatModifier);\nPuckerAndBloatModifier.prototype.initModifierProperties = function (elem, data) {\n\tthis.getValue = this.processKeys;\n\tthis.amount = PropertyFactory.getProp(elem, data.a, 0, null, this);\n\tthis._isAnimated = !!this.amount.effectsSequence.length;\n};\n\nPuckerAndBloatModifier.prototype.processPath = function (path, amount) {\n\tvar percent = amount / 100;\n\tvar centerPoint = [0, 0];\n\tvar pathLength = path._length;\n\tvar i = 0;\n\tfor (i = 0; i < pathLength; i += 1) {\n\t\tcenterPoint[0] += path.v[i][0];\n\t\tcenterPoint[1] += path.v[i][1];\n\t}\n\tcenterPoint[0] /= pathLength;\n\tcenterPoint[1] /= pathLength;\n\tvar clonedPath = shapePool.newElement();\n\tclonedPath.c = path.c;\n\tvar vX;\n\tvar vY;\n\tvar oX;\n\tvar oY;\n\tvar iX;\n\tvar iY;\n\tfor (i = 0; i < pathLength; i += 1) {\n\t\tvX = path.v[i][0] + (centerPoint[0] - path.v[i][0]) * percent;\n\t\tvY = path.v[i][1] + (centerPoint[1] - path.v[i][1]) * percent;\n\t\toX = path.o[i][0] + (centerPoint[0] - path.o[i][0]) * -percent;\n\t\toY = path.o[i][1] + (centerPoint[1] - path.o[i][1]) * -percent;\n\t\tiX = path.i[i][0] + (centerPoint[0] - path.i[i][0]) * -percent;\n\t\tiY = path.i[i][1] + (centerPoint[1] - path.i[i][1]) * -percent;\n\t\tclonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, i);\n\t}\n\treturn clonedPath;\n};\n\nPuckerAndBloatModifier.prototype.processShapes = function (_isFirstFrame) {\n\tvar shapePaths;\n\tvar i;\n\tvar len = this.shapes.length;\n\tvar j;\n\tvar jLen;\n\tvar amount = this.amount.v;\n\n\tif (amount !== 0) {\n\t\tvar shapeData;\n\t\tvar localShapeCollection;\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tshapeData = this.shapes[i];\n\t\t\tlocalShapeCollection = shapeData.localShapeCollection;\n\t\t\tif (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n\t\t\t\tlocalShapeCollection.releaseShapes();\n\t\t\t\tshapeData.shape._mdf = true;\n\t\t\t\tshapePaths = shapeData.shape.paths.shapes;\n\t\t\t\tjLen = shapeData.shape.paths._length;\n\t\t\t\tfor (j = 0; j < jLen; j += 1) {\n\t\t\t\t\tlocalShapeCollection.addShape(this.processPath(shapePaths[j], amount));\n\t\t\t\t}\n\t\t\t}\n\t\t\tshapeData.shape.paths = shapeData.localShapeCollection;\n\t\t}\n\t}\n\tif (!this.dynamicProperties.length) {\n\t\tthis._mdf = false;\n\t}\n};\n\nconst TransformPropertyFactory = (function () {\n\tvar defaultVector = [0, 0];\n\n\tfunction applyToMatrix(mat) {\n\t\tvar _mdf = this._mdf;\n\t\tthis.iterateDynamicProperties();\n\t\tthis._mdf = this._mdf || _mdf;\n\t\tif (this.a) {\n\t\t\tmat.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n\t\t}\n\t\tif (this.s) {\n\t\t\tmat.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n\t\t}\n\t\tif (this.sk) {\n\t\t\tmat.skewFromAxis(-this.sk.v, this.sa.v);\n\t\t}\n\t\tif (this.r) {\n\t\t\tmat.rotate(-this.r.v);\n\t\t} else {\n\t\t\tmat.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2])\n\t\t\t\t.rotateY(this.or.v[1])\n\t\t\t\t.rotateX(this.or.v[0]);\n\t\t}\n\t\tif (this.data.p.s) {\n\t\t\tif (this.data.p.z) {\n\t\t\t\tmat.translate(this.px.v, this.py.v, -this.pz.v);\n\t\t\t} else {\n\t\t\t\tmat.translate(this.px.v, this.py.v, 0);\n\t\t\t}\n\t\t} else {\n\t\t\tmat.translate(this.p.v[0], this.p.v[1], -this.p.v[2]);\n\t\t}\n\t}\n\tfunction processKeys(forceRender) {\n\t\tif (this.elem.globalData.frameId === this.frameId) {\n\t\t\treturn;\n\t\t}\n\t\tif (this._isDirty) {\n\t\t\tthis.precalculateMatrix();\n\t\t\tthis._isDirty = false;\n\t\t}\n\n\t\tthis.iterateDynamicProperties();\n\n\t\tif (this._mdf || forceRender) {\n\t\t\tvar frameRate;\n\t\t\tthis.v.cloneFromProps(this.pre.props);\n\t\t\tif (this.appliedTransformations < 1) {\n\t\t\t\tthis.v.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n\t\t\t}\n\t\t\tif (this.appliedTransformations < 2) {\n\t\t\t\tthis.v.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n\t\t\t}\n\t\t\tif (this.sk && this.appliedTransformations < 3) {\n\t\t\t\tthis.v.skewFromAxis(-this.sk.v, this.sa.v);\n\t\t\t}\n\t\t\tif (this.r && this.appliedTransformations < 4) {\n\t\t\t\tthis.v.rotate(-this.r.v);\n\t\t\t} else if (!this.r && this.appliedTransformations < 4) {\n\t\t\t\tthis.v.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2])\n\t\t\t\t\t.rotateY(this.or.v[1])\n\t\t\t\t\t.rotateX(this.or.v[0]);\n\t\t\t}\n\t\t\tif (this.autoOriented) {\n\t\t\t\tvar v1;\n\t\t\t\tvar v2;\n\t\t\t\tframeRate = this.elem.globalData.frameRate;\n\t\t\t\tif (this.p && this.p.keyframes && this.p.getValueAtTime) {\n\t\t\t\t\tif (this.p._caching.lastFrame + this.p.offsetTime <= this.p.keyframes[0].t) {\n\t\t\t\t\t\tv1 = this.p.getValueAtTime((this.p.keyframes[0].t + 0.01) / frameRate, 0);\n\t\t\t\t\t\tv2 = this.p.getValueAtTime(this.p.keyframes[0].t / frameRate, 0);\n\t\t\t\t\t} else if (this.p._caching.lastFrame + this.p.offsetTime >= this.p.keyframes[this.p.keyframes.length - 1].t) {\n\t\t\t\t\t\tv1 = this.p.getValueAtTime((this.p.keyframes[this.p.keyframes.length - 1].t / frameRate), 0);\n\t\t\t\t\t\tv2 = this.p.getValueAtTime((this.p.keyframes[this.p.keyframes.length - 1].t - 0.05) / frameRate, 0);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tv1 = this.p.pv;\n\t\t\t\t\t\tv2 = this.p.getValueAtTime((this.p._caching.lastFrame + this.p.offsetTime - 0.01) / frameRate, this.p.offsetTime);\n\t\t\t\t\t}\n\t\t\t\t} else if (this.px && this.px.keyframes && this.py.keyframes && this.px.getValueAtTime && this.py.getValueAtTime) {\n\t\t\t\t\tv1 = [];\n\t\t\t\t\tv2 = [];\n\t\t\t\t\tvar px = this.px;\n\t\t\t\t\tvar py = this.py;\n\t\t\t\t\tif (px._caching.lastFrame + px.offsetTime <= px.keyframes[0].t) {\n\t\t\t\t\t\tv1[0] = px.getValueAtTime((px.keyframes[0].t + 0.01) / frameRate, 0);\n\t\t\t\t\t\tv1[1] = py.getValueAtTime((py.keyframes[0].t + 0.01) / frameRate, 0);\n\t\t\t\t\t\tv2[0] = px.getValueAtTime((px.keyframes[0].t) / frameRate, 0);\n\t\t\t\t\t\tv2[1] = py.getValueAtTime((py.keyframes[0].t) / frameRate, 0);\n\t\t\t\t\t} else if (px._caching.lastFrame + px.offsetTime >= px.keyframes[px.keyframes.length - 1].t) {\n\t\t\t\t\t\tv1[0] = px.getValueAtTime((px.keyframes[px.keyframes.length - 1].t / frameRate), 0);\n\t\t\t\t\t\tv1[1] = py.getValueAtTime((py.keyframes[py.keyframes.length - 1].t / frameRate), 0);\n\t\t\t\t\t\tv2[0] = px.getValueAtTime((px.keyframes[px.keyframes.length - 1].t - 0.01) / frameRate, 0);\n\t\t\t\t\t\tv2[1] = py.getValueAtTime((py.keyframes[py.keyframes.length - 1].t - 0.01) / frameRate, 0);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tv1 = [px.pv, py.pv];\n\t\t\t\t\t\tv2[0] = px.getValueAtTime((px._caching.lastFrame + px.offsetTime - 0.01) / frameRate, px.offsetTime);\n\t\t\t\t\t\tv2[1] = py.getValueAtTime((py._caching.lastFrame + py.offsetTime - 0.01) / frameRate, py.offsetTime);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tv2 = defaultVector;\n\t\t\t\t\tv1 = v2;\n\t\t\t\t}\n\t\t\t\tthis.v.rotate(-Math.atan2(v1[1] - v2[1], v1[0] - v2[0]));\n\t\t\t}\n\t\t\tif (this.data.p && this.data.p.s) {\n\t\t\t\tif (this.data.p.z) {\n\t\t\t\t\tthis.v.translate(this.px.v, this.py.v, -this.pz.v);\n\t\t\t\t} else {\n\t\t\t\t\tthis.v.translate(this.px.v, this.py.v, 0);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis.v.translate(this.p.v[0], this.p.v[1], -this.p.v[2]);\n\t\t\t}\n\t\t}\n\t\tthis.frameId = this.elem.globalData.frameId;\n\t}\n\n\tfunction precalculateMatrix() {\n\t\tif (!this.a.k) {\n\t\t\tthis.pre.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n\t\t\tthis.appliedTransformations = 1;\n\t\t} else {\n\t\t\treturn;\n\t\t}\n\t\tif (!this.s.effectsSequence.length) {\n\t\t\tthis.pre.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n\t\t\tthis.appliedTransformations = 2;\n\t\t} else {\n\t\t\treturn;\n\t\t}\n\t\tif (this.sk) {\n\t\t\tif (!this.sk.effectsSequence.length && !this.sa.effectsSequence.length) {\n\t\t\t\tthis.pre.skewFromAxis(-this.sk.v, this.sa.v);\n\t\t\t\tthis.appliedTransformations = 3;\n\t\t\t} else {\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tif (this.r) {\n\t\t\tif (!this.r.effectsSequence.length) {\n\t\t\t\tthis.pre.rotate(-this.r.v);\n\t\t\t\tthis.appliedTransformations = 4;\n\t\t\t}\n\t\t} else if (!this.rz.effectsSequence.length && !this.ry.effectsSequence.length && !this.rx.effectsSequence.length && !this.or.effectsSequence.length) {\n\t\t\tthis.pre.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2])\n\t\t\t\t.rotateY(this.or.v[1])\n\t\t\t\t.rotateX(this.or.v[0]);\n\t\t\tthis.appliedTransformations = 4;\n\t\t}\n\t}\n\n\tfunction autoOrient() {\n\t\t//\n\t\t// var prevP = this.getValueAtTime();\n\t}\n\n\tfunction addDynamicProperty(prop) {\n\t\tthis._addDynamicProperty(prop);\n\t\tthis.elem.addDynamicProperty(prop);\n\t\tthis._isDirty = true;\n\t}\n\n\tfunction TransformProperty(elem, data, container) {\n\t\tthis.elem = elem;\n\t\tthis.frameId = -1;\n\t\tthis.propType = 'transform';\n\t\tthis.data = data;\n\t\tthis.v = new Matrix();\n\t\t// Precalculated matrix with non animated properties\n\t\tthis.pre = new Matrix();\n\t\tthis.appliedTransformations = 0;\n\t\tthis.initDynamicPropertyContainer(container || elem);\n\t\tif (data.p && data.p.s) {\n\t\t\tthis.px = PropertyFactory.getProp(elem, data.p.x, 0, 0, this);\n\t\t\tthis.py = PropertyFactory.getProp(elem, data.p.y, 0, 0, this);\n\t\t\tif (data.p.z) {\n\t\t\t\tthis.pz = PropertyFactory.getProp(elem, data.p.z, 0, 0, this);\n\t\t\t}\n\t\t} else {\n\t\t\tthis.p = PropertyFactory.getProp(elem, data.p || { k: [0, 0, 0] }, 1, 0, this);\n\t\t}\n\t\tif (data.rx) {\n\t\t\tthis.rx = PropertyFactory.getProp(elem, data.rx, 0, degToRads, this);\n\t\t\tthis.ry = PropertyFactory.getProp(elem, data.ry, 0, degToRads, this);\n\t\t\tthis.rz = PropertyFactory.getProp(elem, data.rz, 0, degToRads, this);\n\t\t\tif (data.or.k[0].ti) {\n\t\t\t\tvar i;\n\t\t\t\tvar len = data.or.k.length;\n\t\t\t\tfor (i = 0; i < len; i += 1) {\n\t\t\t\t\tdata.or.k[i].to = null;\n\t\t\t\t\tdata.or.k[i].ti = null;\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.or = PropertyFactory.getProp(elem, data.or, 1, degToRads, this);\n\t\t\t// sh Indicates it needs to be capped between -180 and 180\n\t\t\tthis.or.sh = true;\n\t\t} else {\n\t\t\tthis.r = PropertyFactory.getProp(elem, data.r || { k: 0 }, 0, degToRads, this);\n\t\t}\n\t\tif (data.sk) {\n\t\t\tthis.sk = PropertyFactory.getProp(elem, data.sk, 0, degToRads, this);\n\t\t\tthis.sa = PropertyFactory.getProp(elem, data.sa, 0, degToRads, this);\n\t\t}\n\t\tthis.a = PropertyFactory.getProp(elem, data.a || { k: [0, 0, 0] }, 1, 0, this);\n\t\tthis.s = PropertyFactory.getProp(elem, data.s || { k: [100, 100, 100] }, 1, 0.01, this);\n\t\t// Opacity is not part of the transform properties, that's why it won't use this.dynamicProperties. That way transforms won't get updated if opacity changes.\n\t\tif (data.o) {\n\t\t\tthis.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, elem);\n\t\t} else {\n\t\t\tthis.o = { _mdf: false, v: 1 };\n\t\t}\n\t\tthis._isDirty = true;\n\t\tif (!this.dynamicProperties.length) {\n\t\t\tthis.getValue(true);\n\t\t}\n\t}\n\n\tTransformProperty.prototype = {\n\t\tapplyToMatrix: applyToMatrix,\n\t\tgetValue: processKeys,\n\t\tprecalculateMatrix: precalculateMatrix,\n\t\tautoOrient: autoOrient,\n\t};\n\n\textendPrototype([DynamicPropertyContainer], TransformProperty);\n\tTransformProperty.prototype.addDynamicProperty = addDynamicProperty;\n\tTransformProperty.prototype._addDynamicProperty = DynamicPropertyContainer.prototype.addDynamicProperty;\n\n\tfunction getTransformProperty(elem, data, container) {\n\t\treturn new TransformProperty(elem, data, container);\n\t}\n\n\treturn {\n\t\tgetTransformProperty: getTransformProperty,\n\t};\n}());\n\nfunction RepeaterModifier() {}\nextendPrototype([ShapeModifier], RepeaterModifier);\n\nRepeaterModifier.prototype.initModifierProperties = function (elem, data) {\n\tthis.getValue = this.processKeys;\n\tthis.c = PropertyFactory.getProp(elem, data.c, 0, null, this);\n\tthis.o = PropertyFactory.getProp(elem, data.o, 0, null, this);\n\tthis.tr = TransformPropertyFactory.getTransformProperty(elem, data.tr, this);\n\tthis.so = PropertyFactory.getProp(elem, data.tr.so, 0, 0.01, this);\n\tthis.eo = PropertyFactory.getProp(elem, data.tr.eo, 0, 0.01, this);\n\tthis.data = data;\n\tif (!this.dynamicProperties.length) {\n\t\tthis.getValue(true);\n\t}\n\tthis._isAnimated = !!this.dynamicProperties.length;\n\tthis.pMatrix = new Matrix();\n\tthis.rMatrix = new Matrix();\n\tthis.sMatrix = new Matrix();\n\tthis.tMatrix = new Matrix();\n\tthis.matrix = new Matrix();\n};\n\nRepeaterModifier.prototype.applyTransforms = function (pMatrix, rMatrix, sMatrix, transform, perc, inv) {\n\tvar dir = inv ? -1 : 1;\n\tvar scaleX = transform.s.v[0] + (1 - transform.s.v[0]) * (1 - perc);\n\tvar scaleY = transform.s.v[1] + (1 - transform.s.v[1]) * (1 - perc);\n\tpMatrix.translate(transform.p.v[0] * dir * perc, transform.p.v[1] * dir * perc, transform.p.v[2]);\n\trMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);\n\trMatrix.rotate(-transform.r.v * dir * perc);\n\trMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);\n\tsMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);\n\tsMatrix.scale(inv ? 1 / scaleX : scaleX, inv ? 1 / scaleY : scaleY);\n\tsMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);\n};\n\nRepeaterModifier.prototype.init = function (elem, arr, pos, elemsData) {\n\tthis.elem = elem;\n\tthis.arr = arr;\n\tthis.pos = pos;\n\tthis.elemsData = elemsData;\n\tthis._currentCopies = 0;\n\tthis._elements = [];\n\tthis._groups = [];\n\tthis.frameId = -1;\n\tthis.initDynamicPropertyContainer(elem);\n\tthis.initModifierProperties(elem, arr[pos]);\n\twhile (pos > 0) {\n\t\tpos -= 1;\n\t\t// this._elements.unshift(arr.splice(pos,1)[0]);\n\t\tthis._elements.unshift(arr[pos]);\n\t}\n\tif (this.dynamicProperties.length) {\n\t\tthis.k = true;\n\t} else {\n\t\tthis.getValue(true);\n\t}\n};\n\nRepeaterModifier.prototype.resetElements = function (elements) {\n\tvar i;\n\tvar len = elements.length;\n\tfor (i = 0; i < len; i += 1) {\n\t\telements[i]._processed = false;\n\t\tif (elements[i].ty === 'gr') {\n\t\t\tthis.resetElements(elements[i].it);\n\t\t}\n\t}\n};\n\nRepeaterModifier.prototype.cloneElements = function (elements) {\n\tvar newElements = JSON.parse(JSON.stringify(elements));\n\tthis.resetElements(newElements);\n\treturn newElements;\n};\n\nRepeaterModifier.prototype.changeGroupRender = function (elements, renderFlag) {\n\tvar i;\n\tvar len = elements.length;\n\tfor (i = 0; i < len; i += 1) {\n\t\telements[i]._render = renderFlag;\n\t\tif (elements[i].ty === 'gr') {\n\t\t\tthis.changeGroupRender(elements[i].it, renderFlag);\n\t\t}\n\t}\n};\n\nRepeaterModifier.prototype.processShapes = function (_isFirstFrame) {\n\tvar items;\n\tvar itemsTransform;\n\tvar i;\n\tvar dir;\n\tvar cont;\n\tvar hasReloaded = false;\n\tif (this._mdf || _isFirstFrame) {\n\t\tvar copies = Math.ceil(this.c.v);\n\t\tif (this._groups.length < copies) {\n\t\t\twhile (this._groups.length < copies) {\n\t\t\t\tvar group = {\n\t\t\t\t\tit: this.cloneElements(this._elements),\n\t\t\t\t\tty: 'gr',\n\t\t\t\t};\n\t\t\t\tgroup.it.push({\n\t\t\t\t\ta: { a: 0, ix: 1, k: [0, 0] }, nm: 'Transform', o: { a: 0, ix: 7, k: 100 }, p: { a: 0, ix: 2, k: [0, 0] }, r: { a: 1, ix: 6, k: [{ s: 0, e: 0, t: 0 }, { s: 0, e: 0, t: 1 }] }, s: { a: 0, ix: 3, k: [100, 100] }, sa: { a: 0, ix: 5, k: 0 }, sk: { a: 0, ix: 4, k: 0 }, ty: 'tr',\n\t\t\t\t});\n\n\t\t\t\tthis.arr.splice(0, 0, group);\n\t\t\t\tthis._groups.splice(0, 0, group);\n\t\t\t\tthis._currentCopies += 1;\n\t\t\t}\n\t\t\tthis.elem.reloadShapes();\n\t\t\thasReloaded = true;\n\t\t}\n\t\tcont = 0;\n\t\tvar renderFlag;\n\t\tfor (i = 0; i <= this._groups.length - 1; i += 1) {\n\t\t\trenderFlag = cont < copies;\n\t\t\tthis._groups[i]._render = renderFlag;\n\t\t\tthis.changeGroupRender(this._groups[i].it, renderFlag);\n\t\t\tif (!renderFlag) {\n\t\t\t\tvar elems = this.elemsData[i].it;\n\t\t\t\tvar transformData = elems[elems.length - 1];\n\t\t\t\tif (transformData.transform.op.v !== 0) {\n\t\t\t\t\ttransformData.transform.op._mdf = true;\n\t\t\t\t\ttransformData.transform.op.v = 0;\n\t\t\t\t} else {\n\t\t\t\t\ttransformData.transform.op._mdf = false;\n\t\t\t\t}\n\t\t\t}\n\t\t\tcont += 1;\n\t\t}\n\n\t\tthis._currentCopies = copies;\n\t\t/// /\n\n\t\tvar offset = this.o.v;\n\t\tvar offsetModulo = offset % 1;\n\t\tvar roundOffset = offset > 0 ? Math.floor(offset) : Math.ceil(offset);\n\t\tvar pProps = this.pMatrix.props;\n\t\tvar rProps = this.rMatrix.props;\n\t\tvar sProps = this.sMatrix.props;\n\t\tthis.pMatrix.reset();\n\t\tthis.rMatrix.reset();\n\t\tthis.sMatrix.reset();\n\t\tthis.tMatrix.reset();\n\t\tthis.matrix.reset();\n\t\tvar iteration = 0;\n\n\t\tif (offset > 0) {\n\t\t\twhile (iteration < roundOffset) {\n\t\t\t\tthis.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false);\n\t\t\t\titeration += 1;\n\t\t\t}\n\t\t\tif (offsetModulo) {\n\t\t\t\tthis.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, offsetModulo, false);\n\t\t\t\titeration += offsetModulo;\n\t\t\t}\n\t\t} else if (offset < 0) {\n\t\t\twhile (iteration > roundOffset) {\n\t\t\t\tthis.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, true);\n\t\t\t\titeration -= 1;\n\t\t\t}\n\t\t\tif (offsetModulo) {\n\t\t\t\tthis.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, -offsetModulo, true);\n\t\t\t\titeration -= offsetModulo;\n\t\t\t}\n\t\t}\n\t\ti = this.data.m === 1 ? 0 : this._currentCopies - 1;\n\t\tdir = this.data.m === 1 ? 1 : -1;\n\t\tcont = this._currentCopies;\n\t\tvar j;\n\t\tvar jLen;\n\t\twhile (cont) {\n\t\t\titems = this.elemsData[i].it;\n\t\t\titemsTransform = items[items.length - 1].transform.mProps.v.props;\n\t\t\tjLen = itemsTransform.length;\n\t\t\titems[items.length - 1].transform.mProps._mdf = true;\n\t\t\titems[items.length - 1].transform.op._mdf = true;\n\t\t\titems[items.length - 1].transform.op.v = this._currentCopies === 1\n\t\t\t\t? this.so.v\n\t\t\t\t: this.so.v + (this.eo.v - this.so.v) * (i / (this._currentCopies - 1));\n\n\t\t\tif (iteration !== 0) {\n\t\t\t\tif ((i !== 0 && dir === 1) || (i !== this._currentCopies - 1 && dir === -1)) {\n\t\t\t\t\tthis.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false);\n\t\t\t\t}\n\t\t\t\tthis.matrix.transform(rProps[0], rProps[1], rProps[2], rProps[3], rProps[4], rProps[5], rProps[6], rProps[7], rProps[8], rProps[9], rProps[10], rProps[11], rProps[12], rProps[13], rProps[14], rProps[15]);\n\t\t\t\tthis.matrix.transform(sProps[0], sProps[1], sProps[2], sProps[3], sProps[4], sProps[5], sProps[6], sProps[7], sProps[8], sProps[9], sProps[10], sProps[11], sProps[12], sProps[13], sProps[14], sProps[15]);\n\t\t\t\tthis.matrix.transform(pProps[0], pProps[1], pProps[2], pProps[3], pProps[4], pProps[5], pProps[6], pProps[7], pProps[8], pProps[9], pProps[10], pProps[11], pProps[12], pProps[13], pProps[14], pProps[15]);\n\n\t\t\t\tfor (j = 0; j < jLen; j += 1) {\n\t\t\t\t\titemsTransform[j] = this.matrix.props[j];\n\t\t\t\t}\n\t\t\t\tthis.matrix.reset();\n\t\t\t} else {\n\t\t\t\tthis.matrix.reset();\n\t\t\t\tfor (j = 0; j < jLen; j += 1) {\n\t\t\t\t\titemsTransform[j] = this.matrix.props[j];\n\t\t\t\t}\n\t\t\t}\n\t\t\titeration += 1;\n\t\t\tcont -= 1;\n\t\t\ti += dir;\n\t\t}\n\t} else {\n\t\tcont = this._currentCopies;\n\t\ti = 0;\n\t\tdir = 1;\n\t\twhile (cont) {\n\t\t\titems = this.elemsData[i].it;\n\t\t\titemsTransform = items[items.length - 1].transform.mProps.v.props;\n\t\t\titems[items.length - 1].transform.mProps._mdf = false;\n\t\t\titems[items.length - 1].transform.op._mdf = false;\n\t\t\tcont -= 1;\n\t\t\ti += dir;\n\t\t}\n\t}\n\treturn hasReloaded;\n};\n\nRepeaterModifier.prototype.addShape = function () {};\n\nfunction RoundCornersModifier() {}\nextendPrototype([ShapeModifier], RoundCornersModifier);\nRoundCornersModifier.prototype.initModifierProperties = function (elem, data) {\n\tthis.getValue = this.processKeys;\n\tthis.rd = PropertyFactory.getProp(elem, data.r, 0, null, this);\n\tthis._isAnimated = !!this.rd.effectsSequence.length;\n};\n\nRoundCornersModifier.prototype.processPath = function (path, round) {\n\tvar clonedPath = shapePool.newElement();\n\tclonedPath.c = path.c;\n\tvar i;\n\tvar len = path._length;\n\tvar currentV;\n\tvar currentI;\n\tvar currentO;\n\tvar closerV;\n\tvar distance;\n\tvar newPosPerc;\n\tvar index = 0;\n\tvar vX;\n\tvar vY;\n\tvar oX;\n\tvar oY;\n\tvar iX;\n\tvar iY;\n\tfor (i = 0; i < len; i += 1) {\n\t\tcurrentV = path.v[i];\n\t\tcurrentO = path.o[i];\n\t\tcurrentI = path.i[i];\n\t\tif (currentV[0] === currentO[0] && currentV[1] === currentO[1] && currentV[0] === currentI[0] && currentV[1] === currentI[1]) {\n\t\t\tif ((i === 0 || i === len - 1) && !path.c) {\n\t\t\t\tclonedPath.setTripleAt(currentV[0], currentV[1], currentO[0], currentO[1], currentI[0], currentI[1], index);\n\t\t\t\t/* clonedPath.v[index] = currentV;\n                clonedPath.o[index] = currentO;\n                clonedPath.i[index] = currentI; */\n\t\t\t\tindex += 1;\n\t\t\t} else {\n\t\t\t\tif (i === 0) {\n\t\t\t\t\tcloserV = path.v[len - 1];\n\t\t\t\t} else {\n\t\t\t\t\tcloserV = path.v[i - 1];\n\t\t\t\t}\n\t\t\t\tdistance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));\n\t\t\t\tnewPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;\n\t\t\t\tiX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;\n\t\t\t\tvX = iX;\n\t\t\t\tiY = currentV[1] - (currentV[1] - closerV[1]) * newPosPerc;\n\t\t\t\tvY = iY;\n\t\t\t\toX = vX - (vX - currentV[0]) * roundCorner;\n\t\t\t\toY = vY - (vY - currentV[1]) * roundCorner;\n\t\t\t\tclonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);\n\t\t\t\tindex += 1;\n\n\t\t\t\tif (i === len - 1) {\n\t\t\t\t\tcloserV = path.v[0];\n\t\t\t\t} else {\n\t\t\t\t\tcloserV = path.v[i + 1];\n\t\t\t\t}\n\t\t\t\tdistance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));\n\t\t\t\tnewPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;\n\t\t\t\toX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;\n\t\t\t\tvX = oX;\n\t\t\t\toY = currentV[1] + (closerV[1] - currentV[1]) * newPosPerc;\n\t\t\t\tvY = oY;\n\t\t\t\tiX = vX - (vX - currentV[0]) * roundCorner;\n\t\t\t\tiY = vY - (vY - currentV[1]) * roundCorner;\n\t\t\t\tclonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);\n\t\t\t\tindex += 1;\n\t\t\t}\n\t\t} else {\n\t\t\tclonedPath.setTripleAt(path.v[i][0], path.v[i][1], path.o[i][0], path.o[i][1], path.i[i][0], path.i[i][1], index);\n\t\t\tindex += 1;\n\t\t}\n\t}\n\treturn clonedPath;\n};\n\nRoundCornersModifier.prototype.processShapes = function (_isFirstFrame) {\n\tvar shapePaths;\n\tvar i;\n\tvar len = this.shapes.length;\n\tvar j;\n\tvar jLen;\n\tvar rd = this.rd.v;\n\n\tif (rd !== 0) {\n\t\tvar shapeData;\n\t\tvar localShapeCollection;\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tshapeData = this.shapes[i];\n\t\t\tlocalShapeCollection = shapeData.localShapeCollection;\n\t\t\tif (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n\t\t\t\tlocalShapeCollection.releaseShapes();\n\t\t\t\tshapeData.shape._mdf = true;\n\t\t\t\tshapePaths = shapeData.shape.paths.shapes;\n\t\t\t\tjLen = shapeData.shape.paths._length;\n\t\t\t\tfor (j = 0; j < jLen; j += 1) {\n\t\t\t\t\tlocalShapeCollection.addShape(this.processPath(shapePaths[j], rd));\n\t\t\t\t}\n\t\t\t}\n\t\t\tshapeData.shape.paths = shapeData.localShapeCollection;\n\t\t}\n\t}\n\tif (!this.dynamicProperties.length) {\n\t\tthis._mdf = false;\n\t}\n};\n\nfunction getFontProperties(fontData) {\n\tvar styles = fontData.fStyle ? fontData.fStyle.split(' ') : [];\n\n\tvar fWeight = 'normal'; var\n\t\tfStyle = 'normal';\n\tvar len = styles.length;\n\tvar styleName;\n\tfor (var i = 0; i < len; i += 1) {\n\t\tstyleName = styles[i].toLowerCase();\n\t\tswitch (styleName) {\n\t\t\tcase 'italic':\n\t\t\t\tfStyle = 'italic';\n\t\t\t\tbreak;\n\t\t\tcase 'bold':\n\t\t\t\tfWeight = '700';\n\t\t\t\tbreak;\n\t\t\tcase 'black':\n\t\t\t\tfWeight = '900';\n\t\t\t\tbreak;\n\t\t\tcase 'medium':\n\t\t\t\tfWeight = '500';\n\t\t\t\tbreak;\n\t\t\tcase 'regular':\n\t\t\tcase 'normal':\n\t\t\t\tfWeight = '400';\n\t\t\t\tbreak;\n\t\t\tcase 'light':\n\t\t\tcase 'thin':\n\t\t\t\tfWeight = '200';\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\treturn {\n\t\tstyle: fStyle,\n\t\tweight: fontData.fWeight || fWeight,\n\t};\n}\n\nconst FontManager = (function () {\n\tvar maxWaitingTime = 5000;\n\tvar emptyChar = {\n\t\tw: 0,\n\t\tsize: 0,\n\t\tshapes: [],\n\t\tdata: {\n\t\t\tshapes: [],\n\t\t},\n\t};\n\tvar combinedCharacters = [];\n\t// Hindi characters\n\tcombinedCharacters = combinedCharacters.concat([2304, 2305, 2306, 2307, 2362, 2363, 2364, 2364, 2366,\n\t\t2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379,\n\t\t2380, 2381, 2382, 2383, 2387, 2388, 2389, 2390, 2391, 2402, 2403]);\n\n\tvar surrogateModifiers = [\n\t\t'd83cdffb',\n\t\t'd83cdffc',\n\t\t'd83cdffd',\n\t\t'd83cdffe',\n\t\t'd83cdfff',\n\t];\n\n\tvar zeroWidthJoiner = [65039, 8205];\n\n\tfunction trimFontOptions(font) {\n\t\tvar familyArray = font.split(',');\n\t\tvar i;\n\t\tvar len = familyArray.length;\n\t\tvar enabledFamilies = [];\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tif (familyArray[i] !== 'sans-serif' && familyArray[i] !== 'monospace') {\n\t\t\t\tenabledFamilies.push(familyArray[i]);\n\t\t\t}\n\t\t}\n\t\treturn enabledFamilies.join(',');\n\t}\n\n\tfunction setUpNode(font, family) {\n\t\tvar parentNode = createTag('span');\n\t\t// Node is invisible to screen readers.\n\t\tparentNode.setAttribute('aria-hidden', true);\n\t\tparentNode.style.fontFamily = family;\n\t\tvar node = createTag('span');\n\t\t// Characters that vary significantly among different fonts\n\t\tnode.innerText = 'giItT1WQy@!-/#';\n\t\t// Visible - so we can measure it - but not on the screen\n\t\tparentNode.style.position = 'absolute';\n\t\tparentNode.style.left = '-10000px';\n\t\tparentNode.style.top = '-10000px';\n\t\t// Large font size makes even subtle changes obvious\n\t\tparentNode.style.fontSize = '300px';\n\t\t// Reset any font properties\n\t\tparentNode.style.fontVariant = 'normal';\n\t\tparentNode.style.fontStyle = 'normal';\n\t\tparentNode.style.fontWeight = 'normal';\n\t\tparentNode.style.letterSpacing = '0';\n\t\tparentNode.appendChild(node);\n\t\tdocument.body.appendChild(parentNode);\n\n\t\t// Remember width with no applied web font\n\t\tvar width = node.offsetWidth;\n\t\tnode.style.fontFamily = trimFontOptions(font) + ', ' + family;\n\t\treturn { node: node, w: width, parent: parentNode };\n\t}\n\n\tfunction checkLoadedFonts() {\n\t\tvar i;\n\t\tvar len = this.fonts.length;\n\t\tvar node;\n\t\tvar w;\n\t\tvar loadedCount = len;\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tif (this.fonts[i].loaded) {\n\t\t\t\tloadedCount -= 1;\n\t\t\t} else if (this.fonts[i].fOrigin === 'n' || this.fonts[i].origin === 0) {\n\t\t\t\tthis.fonts[i].loaded = true;\n\t\t\t} else {\n\t\t\t\tnode = this.fonts[i].monoCase.node;\n\t\t\t\tw = this.fonts[i].monoCase.w;\n\t\t\t\tif (node.offsetWidth !== w) {\n\t\t\t\t\tloadedCount -= 1;\n\t\t\t\t\tthis.fonts[i].loaded = true;\n\t\t\t\t} else {\n\t\t\t\t\tnode = this.fonts[i].sansCase.node;\n\t\t\t\t\tw = this.fonts[i].sansCase.w;\n\t\t\t\t\tif (node.offsetWidth !== w) {\n\t\t\t\t\t\tloadedCount -= 1;\n\t\t\t\t\t\tthis.fonts[i].loaded = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (this.fonts[i].loaded) {\n\t\t\t\t\tthis.fonts[i].sansCase.parent.parentNode.removeChild(this.fonts[i].sansCase.parent);\n\t\t\t\t\tthis.fonts[i].monoCase.parent.parentNode.removeChild(this.fonts[i].monoCase.parent);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (loadedCount !== 0 && Date.now() - this.initTime < maxWaitingTime) {\n\t\t\tsetTimeout(this.checkLoadedFontsBinded, 20);\n\t\t} else {\n\t\t\tsetTimeout(this.setIsLoadedBinded, 10);\n\t\t}\n\t}\n\n\tfunction createHelper(fontData, def) {\n\t\tvar engine = (document.body && def) ? 'svg' : 'canvas';\n\t\tvar helper;\n\t\tvar fontProps = getFontProperties(fontData);\n\t\tif (engine === 'svg') {\n\t\t\tvar tHelper = createNS('text');\n\t\t\ttHelper.style.fontSize = '100px';\n\t\t\t// tHelper.style.fontFamily = fontData.fFamily;\n\t\t\ttHelper.setAttribute('font-family', fontData.fFamily);\n\t\t\ttHelper.setAttribute('font-style', fontProps.style);\n\t\t\ttHelper.setAttribute('font-weight', fontProps.weight);\n\t\t\ttHelper.textContent = '1';\n\t\t\tif (fontData.fClass) {\n\t\t\t\ttHelper.style.fontFamily = 'inherit';\n\t\t\t\ttHelper.setAttribute('class', fontData.fClass);\n\t\t\t} else {\n\t\t\t\ttHelper.style.fontFamily = fontData.fFamily;\n\t\t\t}\n\t\t\tdef.appendChild(tHelper);\n\t\t\thelper = tHelper;\n\t\t} else {\n\t\t\tvar tCanvasHelper = new OffscreenCanvas(500, 500).getContext('2d');\n\t\t\ttCanvasHelper.font = fontProps.style + ' ' + fontProps.weight + ' 100px ' + fontData.fFamily;\n\t\t\thelper = tCanvasHelper;\n\t\t}\n\t\tfunction measure(text) {\n\t\t\tif (engine === 'svg') {\n\t\t\t\thelper.textContent = text;\n\t\t\t\treturn helper.getComputedTextLength();\n\t\t\t}\n\t\t\treturn helper.measureText(text).width;\n\t\t}\n\t\treturn {\n\t\t\tmeasureText: measure,\n\t\t};\n\t}\n\n\tfunction addFonts(fontData, defs) {\n\t\tif (!fontData) {\n\t\t\tthis.isLoaded = true;\n\t\t\treturn;\n\t\t}\n\t\tif (this.chars) {\n\t\t\tthis.isLoaded = true;\n\t\t\tthis.fonts = fontData.list;\n\t\t\treturn;\n\t\t}\n\t\tif (!document.body) {\n\t\t\tthis.isLoaded = true;\n\t\t\tfontData.list.forEach((data) => {\n\t\t\t\tdata.helper = createHelper(data);\n\t\t\t\tdata.cache = {};\n\t\t\t});\n\t\t\tthis.fonts = fontData.list;\n\t\t\treturn;\n\t\t}\n\n\t\tvar fontArr = fontData.list;\n\t\tvar i;\n\t\tvar len = fontArr.length;\n\t\tvar _pendingFonts = len;\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tvar shouldLoadFont = true;\n\t\t\tvar loadedSelector;\n\t\t\tvar j;\n\t\t\tfontArr[i].loaded = false;\n\t\t\tfontArr[i].monoCase = setUpNode(fontArr[i].fFamily, 'monospace');\n\t\t\tfontArr[i].sansCase = setUpNode(fontArr[i].fFamily, 'sans-serif');\n\t\t\tif (!fontArr[i].fPath) {\n\t\t\t\tfontArr[i].loaded = true;\n\t\t\t\t_pendingFonts -= 1;\n\t\t\t} else if (fontArr[i].fOrigin === 'p' || fontArr[i].origin === 3) {\n\t\t\t\tloadedSelector = document.querySelectorAll('style[f-forigin=\"p\"][f-family=\"' + fontArr[i].fFamily + '\"], style[f-origin=\"3\"][f-family=\"' + fontArr[i].fFamily + '\"]');\n\n\t\t\t\tif (loadedSelector.length > 0) {\n\t\t\t\t\tshouldLoadFont = false;\n\t\t\t\t}\n\n\t\t\t\tif (shouldLoadFont) {\n\t\t\t\t\tvar s = createTag('style');\n\t\t\t\t\ts.setAttribute('f-forigin', fontArr[i].fOrigin);\n\t\t\t\t\ts.setAttribute('f-origin', fontArr[i].origin);\n\t\t\t\t\ts.setAttribute('f-family', fontArr[i].fFamily);\n\t\t\t\t\ts.type = 'text/css';\n\t\t\t\t\ts.innerText = '@font-face {font-family: ' + fontArr[i].fFamily + \"; font-style: normal; src: url('\" + fontArr[i].fPath + \"');}\";\n\t\t\t\t\tdefs.appendChild(s);\n\t\t\t\t}\n\t\t\t} else if (fontArr[i].fOrigin === 'g' || fontArr[i].origin === 1) {\n\t\t\t\tloadedSelector = document.querySelectorAll('link[f-forigin=\"g\"], link[f-origin=\"1\"]');\n\n\t\t\t\tfor (j = 0; j < loadedSelector.length; j += 1) {\n\t\t\t\t\tif (loadedSelector[j].href.indexOf(fontArr[i].fPath) !== -1) {\n\t\t\t\t\t\t// Font is already loaded\n\t\t\t\t\t\tshouldLoadFont = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (shouldLoadFont) {\n\t\t\t\t\tvar l = createTag('link');\n\t\t\t\t\tl.setAttribute('f-forigin', fontArr[i].fOrigin);\n\t\t\t\t\tl.setAttribute('f-origin', fontArr[i].origin);\n\t\t\t\t\tl.type = 'text/css';\n\t\t\t\t\tl.rel = 'stylesheet';\n\t\t\t\t\tl.href = fontArr[i].fPath;\n\t\t\t\t\tdocument.body.appendChild(l);\n\t\t\t\t}\n\t\t\t} else if (fontArr[i].fOrigin === 't' || fontArr[i].origin === 2) {\n\t\t\t\tloadedSelector = document.querySelectorAll('script[f-forigin=\"t\"], script[f-origin=\"2\"]');\n\n\t\t\t\tfor (j = 0; j < loadedSelector.length; j += 1) {\n\t\t\t\t\tif (fontArr[i].fPath === loadedSelector[j].src) {\n\t\t\t\t\t\t// Font is already loaded\n\t\t\t\t\t\tshouldLoadFont = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (shouldLoadFont) {\n\t\t\t\t\tvar sc = createTag('link');\n\t\t\t\t\tsc.setAttribute('f-forigin', fontArr[i].fOrigin);\n\t\t\t\t\tsc.setAttribute('f-origin', fontArr[i].origin);\n\t\t\t\t\tsc.setAttribute('rel', 'stylesheet');\n\t\t\t\t\tsc.setAttribute('href', fontArr[i].fPath);\n\t\t\t\t\tdefs.appendChild(sc);\n\t\t\t\t}\n\t\t\t}\n\t\t\tfontArr[i].helper = createHelper(fontArr[i], defs);\n\t\t\tfontArr[i].cache = {};\n\t\t\tthis.fonts.push(fontArr[i]);\n\t\t}\n\t\tif (_pendingFonts === 0) {\n\t\t\tthis.isLoaded = true;\n\t\t} else {\n\t\t\t// On some cases even if the font is loaded, it won't load correctly when measuring text on canvas.\n\t\t\t// Adding this timeout seems to fix it\n\t\t\tsetTimeout(this.checkLoadedFonts.bind(this), 100);\n\t\t}\n\t}\n\n\tfunction addChars(chars) {\n\t\tif (!chars) {\n\t\t\treturn;\n\t\t}\n\t\tif (!this.chars) {\n\t\t\tthis.chars = [];\n\t\t}\n\t\tvar i;\n\t\tvar len = chars.length;\n\t\tvar j;\n\t\tvar jLen = this.chars.length;\n\t\tvar found;\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tj = 0;\n\t\t\tfound = false;\n\t\t\twhile (j < jLen) {\n\t\t\t\tif (this.chars[j].style === chars[i].style && this.chars[j].fFamily === chars[i].fFamily && this.chars[j].ch === chars[i].ch) {\n\t\t\t\t\tfound = true;\n\t\t\t\t}\n\t\t\t\tj += 1;\n\t\t\t}\n\t\t\tif (!found) {\n\t\t\t\tthis.chars.push(chars[i]);\n\t\t\t\tjLen += 1;\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction getCharData(char, style, font) {\n\t\tvar i = 0;\n\t\tvar len = this.chars.length;\n\t\twhile (i < len) {\n\t\t\tif (this.chars[i].ch === char && this.chars[i].style === style && this.chars[i].fFamily === font) {\n\t\t\t\treturn this.chars[i];\n\t\t\t}\n\t\t\ti += 1;\n\t\t}\n\t\tif (((typeof char === 'string' && char.charCodeAt(0) !== 13) || !char)\n\t\t\t&& console\n\t\t\t&& console.warn // eslint-disable-line no-console\n\t\t\t&& !this._warned\n\t\t) {\n\t\t\tthis._warned = true;\n\t\t\tconsole.warn('Missing character from exported characters list: ', char, style, font); // eslint-disable-line no-console\n\t\t}\n\t\treturn emptyChar;\n\t}\n\n\tfunction measureText(char, fontName, size) {\n\t\tvar fontData = this.getFontByName(fontName);\n\t\tvar index = char.charCodeAt(0);\n\t\tif (!fontData.cache[index + 1]) {\n\t\t\tvar tHelper = fontData.helper;\n\t\t\tif (char === ' ') {\n\t\t\t\tvar doubleSize = tHelper.measureText('|' + char + '|');\n\t\t\t\tvar singleSize = tHelper.measureText('||');\n\t\t\t\tfontData.cache[index + 1] = (doubleSize - singleSize) / 100;\n\t\t\t} else {\n\t\t\t\tfontData.cache[index + 1] = tHelper.measureText(char) / 100;\n\t\t\t}\n\t\t}\n\t\treturn fontData.cache[index + 1] * size;\n\t}\n\n\tfunction getFontByName(name) {\n\t\tvar i = 0;\n\t\tvar len = this.fonts.length;\n\t\twhile (i < len) {\n\t\t\tif (this.fonts[i].fName === name) {\n\t\t\t\treturn this.fonts[i];\n\t\t\t}\n\t\t\ti += 1;\n\t\t}\n\t\treturn this.fonts[0];\n\t}\n\n\tfunction isModifier(firstCharCode, secondCharCode) {\n\t\tvar sum = firstCharCode.toString(16) + secondCharCode.toString(16);\n\t\treturn surrogateModifiers.indexOf(sum) !== -1;\n\t}\n\n\tfunction isZeroWidthJoiner(firstCharCode, secondCharCode) {\n\t\tif (!secondCharCode) {\n\t\t\treturn firstCharCode === zeroWidthJoiner[1];\n\t\t}\n\t\treturn firstCharCode === zeroWidthJoiner[0] && secondCharCode === zeroWidthJoiner[1];\n\t}\n\n\tfunction isCombinedCharacter(char) {\n\t\treturn combinedCharacters.indexOf(char) !== -1;\n\t}\n\n\tfunction setIsLoaded() {\n\t\tthis.isLoaded = true;\n\t}\n\n\tvar Font = function () {\n\t\tthis.fonts = [];\n\t\tthis.chars = null;\n\t\tthis.typekitLoaded = 0;\n\t\tthis.isLoaded = false;\n\t\tthis._warned = false;\n\t\tthis.initTime = Date.now();\n\t\tthis.setIsLoadedBinded = this.setIsLoaded.bind(this);\n\t\tthis.checkLoadedFontsBinded = this.checkLoadedFonts.bind(this);\n\t};\n\tFont.isModifier = isModifier;\n\tFont.isZeroWidthJoiner = isZeroWidthJoiner;\n\tFont.isCombinedCharacter = isCombinedCharacter;\n\n\tvar fontPrototype = {\n\t\taddChars: addChars,\n\t\taddFonts: addFonts,\n\t\tgetCharData: getCharData,\n\t\tgetFontByName: getFontByName,\n\t\tmeasureText: measureText,\n\t\tcheckLoadedFonts: checkLoadedFonts,\n\t\tsetIsLoaded: setIsLoaded,\n\t};\n\n\tFont.prototype = fontPrototype;\n\n\treturn Font;\n}());\n\nfunction RenderableElement() {\n\n}\n\nRenderableElement.prototype = {\n\tinitRenderable: function () {\n\t\t// layer's visibility related to inpoint and outpoint. Rename isVisible to isInRange\n\t\tthis.isInRange = false;\n\t\t// layer's display state\n\t\tthis.hidden = false;\n\t\t// If layer's transparency equals 0, it can be hidden\n\t\tthis.isTransparent = false;\n\t\t// list of animated components\n\t\tthis.renderableComponents = [];\n\t},\n\taddRenderableComponent: function (component) {\n\t\tif (this.renderableComponents.indexOf(component) === -1) {\n\t\t\tthis.renderableComponents.push(component);\n\t\t}\n\t},\n\tremoveRenderableComponent: function (component) {\n\t\tif (this.renderableComponents.indexOf(component) !== -1) {\n\t\t\tthis.renderableComponents.splice(this.renderableComponents.indexOf(component), 1);\n\t\t}\n\t},\n\tprepareRenderableFrame: function (num) {\n\t\tthis.checkLayerLimits(num);\n\t},\n\tcheckTransparency: function () {\n\t\tif (this.finalTransform.mProp.o.v <= 0) {\n\t\t\tif (!this.isTransparent && this.globalData.renderConfig.hideOnTransparent) {\n\t\t\t\tthis.isTransparent = true;\n\t\t\t\tthis.hide();\n\t\t\t}\n\t\t} else if (this.isTransparent) {\n\t\t\tthis.isTransparent = false;\n\t\t\tthis.show();\n\t\t}\n\t},\n\t/**\n\t * @function\n\t * Initializes frame related properties.\n\t *\n\t * @param {number} num\n\t * current frame number in Layer's time\n\t *\n\t */\n\tcheckLayerLimits: function (num) {\n\t\tif (this.data.ip - this.data.st <= num && this.data.op - this.data.st > num) {\n\t\t\tif (this.isInRange !== true) {\n\t\t\t\tthis.globalData._mdf = true;\n\t\t\t\tthis._mdf = true;\n\t\t\t\tthis.isInRange = true;\n\t\t\t\tthis.show();\n\t\t\t}\n\t\t} else if (this.isInRange !== false) {\n\t\t\tthis.globalData._mdf = true;\n\t\t\tthis.isInRange = false;\n\t\t\tthis.hide();\n\t\t}\n\t},\n\trenderRenderable: function () {\n\t\tvar i;\n\t\tvar len = this.renderableComponents.length;\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tthis.renderableComponents[i].renderFrame(this._isFirstFrame);\n\t\t}\n\t\t/* this.maskManager.renderFrame(this.finalTransform.mat);\n        this.renderableEffectsManager.renderFrame(this._isFirstFrame); */\n\t},\n\tsourceRectAtTime: function () {\n\t\treturn {\n\t\t\ttop: 0,\n\t\t\tleft: 0,\n\t\t\twidth: 100,\n\t\t\theight: 100,\n\t\t};\n\t},\n\tgetLayerSize: function () {\n\t\tif (this.data.ty === 5) {\n\t\t\treturn { w: this.data.textData.width, h: this.data.textData.height };\n\t\t}\n\t\treturn { w: this.data.width, h: this.data.height };\n\t},\n};\n\nconst MaskManagerInterface = (function () {\n\tfunction MaskInterface(mask, data) {\n\t\tthis._mask = mask;\n\t\tthis._data = data;\n\t}\n\tObject.defineProperty(MaskInterface.prototype, 'maskPath', {\n\t\tget: function () {\n\t\t\tif (this._mask.prop.k) {\n\t\t\t\tthis._mask.prop.getValue();\n\t\t\t}\n\t\t\treturn this._mask.prop;\n\t\t},\n\t});\n\tObject.defineProperty(MaskInterface.prototype, 'maskOpacity', {\n\t\tget: function () {\n\t\t\tif (this._mask.op.k) {\n\t\t\t\tthis._mask.op.getValue();\n\t\t\t}\n\t\t\treturn this._mask.op.v * 100;\n\t\t},\n\t});\n\n\tvar MaskManager = function (maskManager) {\n\t\tvar _masksInterfaces = createSizedArray(maskManager.viewData.length);\n\t\tvar i;\n\t\tvar len = maskManager.viewData.length;\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\t_masksInterfaces[i] = new MaskInterface(maskManager.viewData[i], maskManager.masksProperties[i]);\n\t\t}\n\n\t\tvar maskFunction = function (name) {\n\t\t\ti = 0;\n\t\t\twhile (i < len) {\n\t\t\t\tif (maskManager.masksProperties[i].nm === name) {\n\t\t\t\t\treturn _masksInterfaces[i];\n\t\t\t\t}\n\t\t\t\ti += 1;\n\t\t\t}\n\t\t\treturn null;\n\t\t};\n\t\treturn maskFunction;\n\t};\n\treturn MaskManager;\n}());\n\nconst ExpressionPropertyInterface = (function () {\n\tvar defaultUnidimensionalValue = { pv: 0, v: 0, mult: 1 };\n\tvar defaultMultidimensionalValue = { pv: [0, 0, 0], v: [0, 0, 0], mult: 1 };\n\n\tfunction completeProperty(expressionValue, property, type) {\n\t\tObject.defineProperty(expressionValue, 'velocity', {\n\t\t\tget: function () {\n\t\t\t\treturn property.getVelocityAtTime(property.comp.currentFrame);\n\t\t\t},\n\t\t});\n\t\texpressionValue.numKeys = property.keyframes ? property.keyframes.length : 0;\n\t\texpressionValue.key = function (pos) {\n\t\t\tif (!expressionValue.numKeys) {\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t\tvar value = '';\n\t\t\tif ('s' in property.keyframes[pos - 1]) {\n\t\t\t\tvalue = property.keyframes[pos - 1].s;\n\t\t\t} else if ('e' in property.keyframes[pos - 2]) {\n\t\t\t\tvalue = property.keyframes[pos - 2].e;\n\t\t\t} else {\n\t\t\t\tvalue = property.keyframes[pos - 2].s;\n\t\t\t}\n\t\t\tvar valueProp = type === 'unidimensional' ? new Number(value) : Object.assign({}, value); // eslint-disable-line no-new-wrappers\n\t\t\tvalueProp.time = property.keyframes[pos - 1].t / property.elem.comp.globalData.frameRate;\n\t\t\tvalueProp.value = type === 'unidimensional' ? value[0] : value;\n\t\t\treturn valueProp;\n\t\t};\n\t\texpressionValue.valueAtTime = property.getValueAtTime;\n\t\texpressionValue.speedAtTime = property.getSpeedAtTime;\n\t\texpressionValue.velocityAtTime = property.getVelocityAtTime;\n\t\texpressionValue.propertyGroup = property.propertyGroup;\n\t}\n\n\tfunction UnidimensionalPropertyInterface(property) {\n\t\tif (!property || !('pv' in property)) {\n\t\t\tproperty = defaultUnidimensionalValue;\n\t\t}\n\t\tvar mult = 1 / property.mult;\n\t\tvar val = property.pv * mult;\n\t\tvar expressionValue = new Number(val); // eslint-disable-line no-new-wrappers\n\t\texpressionValue.value = val;\n\t\tcompleteProperty(expressionValue, property, 'unidimensional');\n\n\t\treturn function () {\n\t\t\tif (property.k) {\n\t\t\t\tproperty.getValue();\n\t\t\t}\n\t\t\tval = property.v * mult;\n\t\t\tif (expressionValue.value !== val) {\n\t\t\t\texpressionValue = new Number(val); // eslint-disable-line no-new-wrappers\n\t\t\t\texpressionValue.value = val;\n\t\t\t\tcompleteProperty(expressionValue, property, 'unidimensional');\n\t\t\t}\n\t\t\treturn expressionValue;\n\t\t};\n\t}\n\n\tfunction MultidimensionalPropertyInterface(property) {\n\t\tif (!property || !('pv' in property)) {\n\t\t\tproperty = defaultMultidimensionalValue;\n\t\t}\n\t\tvar mult = 1 / property.mult;\n\t\tvar len = (property.data && property.data.l) || property.pv.length;\n\t\tvar expressionValue = createTypedArray('float32', len);\n\t\tvar arrValue = createTypedArray('float32', len);\n\t\texpressionValue.value = arrValue;\n\t\tcompleteProperty(expressionValue, property, 'multidimensional');\n\n\t\treturn function () {\n\t\t\tif (property.k) {\n\t\t\t\tproperty.getValue();\n\t\t\t}\n\t\t\tfor (var i = 0; i < len; i += 1) {\n\t\t\t\tarrValue[i] = property.v[i] * mult;\n\t\t\t\texpressionValue[i] = arrValue[i];\n\t\t\t}\n\t\t\treturn expressionValue;\n\t\t};\n\t}\n\n\t// TODO: try to avoid using this getter\n\tfunction defaultGetter() {\n\t\treturn defaultUnidimensionalValue;\n\t}\n\n\treturn function (property) {\n\t\tif (!property) {\n\t\t\treturn defaultGetter;\n\t\t} if (property.propType === 'unidimensional') {\n\t\t\treturn UnidimensionalPropertyInterface(property);\n\t\t}\n\t\treturn MultidimensionalPropertyInterface(property);\n\t};\n}());\n\nconst TransformExpressionInterface = (function () {\n\treturn function (transform) {\n\t\tfunction _thisFunction(name) {\n\t\t\tswitch (name) {\n\t\t\t\tcase 'scale':\n\t\t\t\tcase 'Scale':\n\t\t\t\tcase 'ADBE Scale':\n\t\t\t\tcase 6:\n\t\t\t\t\treturn _thisFunction.scale;\n\t\t\t\tcase 'rotation':\n\t\t\t\tcase 'Rotation':\n\t\t\t\tcase 'ADBE Rotation':\n\t\t\t\tcase 'ADBE Rotate Z':\n\t\t\t\tcase 10:\n\t\t\t\t\treturn _thisFunction.rotation;\n\t\t\t\tcase 'ADBE Rotate X':\n\t\t\t\t\treturn _thisFunction.xRotation;\n\t\t\t\tcase 'ADBE Rotate Y':\n\t\t\t\t\treturn _thisFunction.yRotation;\n\t\t\t\tcase 'position':\n\t\t\t\tcase 'Position':\n\t\t\t\tcase 'ADBE Position':\n\t\t\t\tcase 2:\n\t\t\t\t\treturn _thisFunction.position;\n\t\t\t\tcase 'ADBE Position_0':\n\t\t\t\t\treturn _thisFunction.xPosition;\n\t\t\t\tcase 'ADBE Position_1':\n\t\t\t\t\treturn _thisFunction.yPosition;\n\t\t\t\tcase 'ADBE Position_2':\n\t\t\t\t\treturn _thisFunction.zPosition;\n\t\t\t\tcase 'anchorPoint':\n\t\t\t\tcase 'AnchorPoint':\n\t\t\t\tcase 'Anchor Point':\n\t\t\t\tcase 'ADBE AnchorPoint':\n\t\t\t\tcase 1:\n\t\t\t\t\treturn _thisFunction.anchorPoint;\n\t\t\t\tcase 'opacity':\n\t\t\t\tcase 'Opacity':\n\t\t\t\tcase 11:\n\t\t\t\t\treturn _thisFunction.opacity;\n\t\t\t\tdefault:\n\t\t\t\t\treturn null;\n\t\t\t}\n\t\t}\n\t\tObject.defineProperty(_thisFunction, 'rotation', {\n\t\t\tget: ExpressionPropertyInterface(transform.r || transform.rz),\n\t\t});\n\n\t\tObject.defineProperty(_thisFunction, 'zRotation', {\n\t\t\tget: ExpressionPropertyInterface(transform.rz || transform.r),\n\t\t});\n\n\t\tObject.defineProperty(_thisFunction, 'xRotation', {\n\t\t\tget: ExpressionPropertyInterface(transform.rx),\n\t\t});\n\n\t\tObject.defineProperty(_thisFunction, 'yRotation', {\n\t\t\tget: ExpressionPropertyInterface(transform.ry),\n\t\t});\n\t\tObject.defineProperty(_thisFunction, 'scale', {\n\t\t\tget: ExpressionPropertyInterface(transform.s),\n\t\t});\n\t\tvar _px;\n\t\tvar _py;\n\t\tvar _pz;\n\t\tvar _transformFactory;\n\t\tif (transform.p) {\n\t\t\t_transformFactory = ExpressionPropertyInterface(transform.p);\n\t\t} else {\n\t\t\t_px = ExpressionPropertyInterface(transform.px);\n\t\t\t_py = ExpressionPropertyInterface(transform.py);\n\t\t\tif (transform.pz) {\n\t\t\t\t_pz = ExpressionPropertyInterface(transform.pz);\n\t\t\t}\n\t\t}\n\t\tObject.defineProperty(_thisFunction, 'position', {\n\t\t\tget: function () {\n\t\t\t\tif (transform.p) {\n\t\t\t\t\treturn _transformFactory();\n\t\t\t\t}\n\t\t\t\treturn [\n\t\t\t\t\t_px(),\n\t\t\t\t\t_py(),\n\t\t\t\t\t_pz ? _pz() : 0];\n\t\t\t},\n\t\t});\n\n\t\tObject.defineProperty(_thisFunction, 'xPosition', {\n\t\t\tget: ExpressionPropertyInterface(transform.px),\n\t\t});\n\n\t\tObject.defineProperty(_thisFunction, 'yPosition', {\n\t\t\tget: ExpressionPropertyInterface(transform.py),\n\t\t});\n\n\t\tObject.defineProperty(_thisFunction, 'zPosition', {\n\t\t\tget: ExpressionPropertyInterface(transform.pz),\n\t\t});\n\n\t\tObject.defineProperty(_thisFunction, 'anchorPoint', {\n\t\t\tget: ExpressionPropertyInterface(transform.a),\n\t\t});\n\n\t\tObject.defineProperty(_thisFunction, 'opacity', {\n\t\t\tget: ExpressionPropertyInterface(transform.o),\n\t\t});\n\n\t\tObject.defineProperty(_thisFunction, 'skew', {\n\t\t\tget: ExpressionPropertyInterface(transform.sk),\n\t\t});\n\n\t\tObject.defineProperty(_thisFunction, 'skewAxis', {\n\t\t\tget: ExpressionPropertyInterface(transform.sa),\n\t\t});\n\n\t\tObject.defineProperty(_thisFunction, 'orientation', {\n\t\t\tget: ExpressionPropertyInterface(transform.or),\n\t\t});\n\n\t\treturn _thisFunction;\n\t};\n}());\n\nconst LayerExpressionInterface = (function () {\n\tfunction getMatrix(time) {\n\t\tvar toWorldMat = new Matrix();\n\t\tif (time !== undefined) {\n\t\t\tvar propMatrix = this._elem.finalTransform.mProp.getValueAtTime(time);\n\t\t\tpropMatrix.clone(toWorldMat);\n\t\t} else {\n\t\t\tvar transformMat = this._elem.finalTransform.mProp;\n\t\t\ttransformMat.applyToMatrix(toWorldMat);\n\t\t}\n\t\treturn toWorldMat;\n\t}\n\n\tfunction toWorldVec(arr, time) {\n\t\tvar toWorldMat = this.getMatrix(time);\n\t\ttoWorldMat.props[12] = 0;\n\t\ttoWorldMat.props[13] = 0;\n\t\ttoWorldMat.props[14] = 0;\n\t\treturn this.applyPoint(toWorldMat, arr);\n\t}\n\n\tfunction toWorld(arr, time) {\n\t\tvar toWorldMat = this.getMatrix(time);\n\t\treturn this.applyPoint(toWorldMat, arr);\n\t}\n\n\tfunction fromWorldVec(arr, time) {\n\t\tvar toWorldMat = this.getMatrix(time);\n\t\ttoWorldMat.props[12] = 0;\n\t\ttoWorldMat.props[13] = 0;\n\t\ttoWorldMat.props[14] = 0;\n\t\treturn this.invertPoint(toWorldMat, arr);\n\t}\n\n\tfunction fromWorld(arr, time) {\n\t\tvar toWorldMat = this.getMatrix(time);\n\t\treturn this.invertPoint(toWorldMat, arr);\n\t}\n\n\tfunction applyPoint(matrix, arr) {\n\t\tif (this._elem.hierarchy && this._elem.hierarchy.length) {\n\t\t\tvar i;\n\t\t\tvar len = this._elem.hierarchy.length;\n\t\t\tfor (i = 0; i < len; i += 1) {\n\t\t\t\tthis._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);\n\t\t\t}\n\t\t}\n\t\treturn matrix.applyToPointArray(arr[0], arr[1], arr[2] || 0);\n\t}\n\n\tfunction invertPoint(matrix, arr) {\n\t\tif (this._elem.hierarchy && this._elem.hierarchy.length) {\n\t\t\tvar i;\n\t\t\tvar len = this._elem.hierarchy.length;\n\t\t\tfor (i = 0; i < len; i += 1) {\n\t\t\t\tthis._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);\n\t\t\t}\n\t\t}\n\t\treturn matrix.inversePoint(arr);\n\t}\n\n\tfunction fromComp(arr) {\n\t\tvar toWorldMat = new Matrix();\n\t\ttoWorldMat.reset();\n\t\tthis._elem.finalTransform.mProp.applyToMatrix(toWorldMat);\n\t\tif (this._elem.hierarchy && this._elem.hierarchy.length) {\n\t\t\tvar i;\n\t\t\tvar len = this._elem.hierarchy.length;\n\t\t\tfor (i = 0; i < len; i += 1) {\n\t\t\t\tthis._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(toWorldMat);\n\t\t\t}\n\t\t\treturn toWorldMat.inversePoint(arr);\n\t\t}\n\t\treturn toWorldMat.inversePoint(arr);\n\t}\n\n\tfunction sampleImage() {\n\t\treturn [1, 1, 1, 1];\n\t}\n\n\treturn function (elem) {\n\t\tvar transformInterface;\n\n\t\tfunction _registerMaskInterface(maskManager) {\n\t\t\t_thisLayerFunction.mask = new MaskManagerInterface(maskManager, elem);\n\t\t}\n\t\tfunction _registerEffectsInterface(effects) {\n\t\t\t_thisLayerFunction.effect = effects;\n\t\t}\n\n\t\tfunction _thisLayerFunction(name) {\n\t\t\tswitch (name) {\n\t\t\t\tcase 'ADBE Root Vectors Group':\n\t\t\t\tcase 'Contents':\n\t\t\t\tcase 2:\n\t\t\t\t\treturn _thisLayerFunction.shapeInterface;\n\t\t\t\tcase 1:\n\t\t\t\tcase 6:\n\t\t\t\tcase 'Transform':\n\t\t\t\tcase 'transform':\n\t\t\t\tcase 'ADBE Transform Group':\n\t\t\t\t\treturn transformInterface;\n\t\t\t\tcase 4:\n\t\t\t\tcase 'ADBE Effect Parade':\n\t\t\t\tcase 'effects':\n\t\t\t\tcase 'Effects':\n\t\t\t\t\treturn _thisLayerFunction.effect;\n\t\t\t\tcase 'ADBE Text Properties':\n\t\t\t\t\treturn _thisLayerFunction.textInterface;\n\t\t\t\tdefault:\n\t\t\t\t\treturn null;\n\t\t\t}\n\t\t}\n\t\t_thisLayerFunction.getMatrix = getMatrix;\n\t\t_thisLayerFunction.invertPoint = invertPoint;\n\t\t_thisLayerFunction.applyPoint = applyPoint;\n\t\t_thisLayerFunction.toWorld = toWorld;\n\t\t_thisLayerFunction.toWorldVec = toWorldVec;\n\t\t_thisLayerFunction.fromWorld = fromWorld;\n\t\t_thisLayerFunction.fromWorldVec = fromWorldVec;\n\t\t_thisLayerFunction.toComp = toWorld;\n\t\t_thisLayerFunction.fromComp = fromComp;\n\t\t_thisLayerFunction.sampleImage = sampleImage;\n\t\t_thisLayerFunction.sourceRectAtTime = elem.sourceRectAtTime.bind(elem);\n\t\t_thisLayerFunction._elem = elem;\n\t\ttransformInterface = TransformExpressionInterface(elem.finalTransform.mProp);\n\t\tvar anchorPointDescriptor = getDescriptor(transformInterface, 'anchorPoint');\n\t\tObject.defineProperties(_thisLayerFunction, {\n\t\t\thasParent: {\n\t\t\t\tget: function () {\n\t\t\t\t\treturn elem.hierarchy.length;\n\t\t\t\t},\n\t\t\t},\n\t\t\tparent: {\n\t\t\t\tget: function () {\n\t\t\t\t\treturn elem.hierarchy[0].layerInterface;\n\t\t\t\t},\n\t\t\t},\n\t\t\trotation: getDescriptor(transformInterface, 'rotation'),\n\t\t\tscale: getDescriptor(transformInterface, 'scale'),\n\t\t\tposition: getDescriptor(transformInterface, 'position'),\n\t\t\topacity: getDescriptor(transformInterface, 'opacity'),\n\t\t\tanchorPoint: anchorPointDescriptor,\n\t\t\tanchor_point: anchorPointDescriptor,\n\t\t\ttransform: {\n\t\t\t\tget: function () {\n\t\t\t\t\treturn transformInterface;\n\t\t\t\t},\n\t\t\t},\n\t\t\tactive: {\n\t\t\t\tget: function () {\n\t\t\t\t\treturn elem.isInRange;\n\t\t\t\t},\n\t\t\t},\n\t\t});\n\n\t\t_thisLayerFunction.startTime = elem.data.st;\n\t\t_thisLayerFunction.index = elem.data.ind;\n\t\t_thisLayerFunction.source = elem.data.refId;\n\t\t_thisLayerFunction.height = elem.data.ty === 0 ? elem.data.h : 100;\n\t\t_thisLayerFunction.width = elem.data.ty === 0 ? elem.data.w : 100;\n\t\t_thisLayerFunction.inPoint = elem.data.ip / elem.comp.globalData.frameRate;\n\t\t_thisLayerFunction.outPoint = elem.data.op / elem.comp.globalData.frameRate;\n\t\t_thisLayerFunction._name = elem.data.nm;\n\n\t\t_thisLayerFunction.registerMaskInterface = _registerMaskInterface;\n\t\t_thisLayerFunction.registerEffectsInterface = _registerEffectsInterface;\n\t\treturn _thisLayerFunction;\n\t};\n}());\n\nconst propertyGroupFactory = (function () {\n\treturn function (interfaceFunction, parentPropertyGroup) {\n\t\treturn function (val) {\n\t\t\tval = val === undefined ? 1 : val;\n\t\t\tif (val <= 0) {\n\t\t\t\treturn interfaceFunction;\n\t\t\t}\n\t\t\treturn parentPropertyGroup(val - 1);\n\t\t};\n\t};\n}());\n\nconst PropertyInterface = (function () {\n\treturn function (propertyName, propertyGroup) {\n\t\tvar interfaceFunction = {\n\t\t\t_name: propertyName,\n\t\t};\n\n\t\tfunction _propertyGroup(val) {\n\t\t\tval = val === undefined ? 1 : val;\n\t\t\tif (val <= 0) {\n\t\t\t\treturn interfaceFunction;\n\t\t\t}\n\t\t\treturn propertyGroup(val - 1);\n\t\t}\n\n\t\treturn _propertyGroup;\n\t};\n}());\n\nconst EffectsExpressionInterface = (function () {\n\tvar ob = {\n\t\tcreateEffectsInterface: createEffectsInterface,\n\t};\n\n\tfunction createEffectsInterface(elem, propertyGroup) {\n\t\tif (elem.effectsManager) {\n\t\t\tvar effectElements = [];\n\t\t\tvar effectsData = elem.data.ef;\n\t\t\tvar i;\n\t\t\tvar len = elem.effectsManager.effectElements.length;\n\t\t\tfor (i = 0; i < len; i += 1) {\n\t\t\t\teffectElements.push(createGroupInterface(effectsData[i], elem.effectsManager.effectElements[i], propertyGroup, elem));\n\t\t\t}\n\n\t\t\tvar effects = elem.data.ef || [];\n\t\t\tvar groupInterface = function (name) {\n\t\t\t\ti = 0;\n\t\t\t\tlen = effects.length;\n\t\t\t\twhile (i < len) {\n\t\t\t\t\tif (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {\n\t\t\t\t\t\treturn effectElements[i];\n\t\t\t\t\t}\n\t\t\t\t\ti += 1;\n\t\t\t\t}\n\t\t\t\treturn null;\n\t\t\t};\n\t\t\tObject.defineProperty(groupInterface, 'numProperties', {\n\t\t\t\tget: function () {\n\t\t\t\t\treturn effects.length;\n\t\t\t\t},\n\t\t\t});\n\t\t\treturn groupInterface;\n\t\t}\n\t\treturn null;\n\t}\n\n\tfunction createGroupInterface(data, elements, propertyGroup, elem) {\n\t\tfunction groupInterface(name) {\n\t\t\tvar effects = data.ef;\n\t\t\tvar i = 0;\n\t\t\tvar len = effects.length;\n\t\t\twhile (i < len) {\n\t\t\t\tif (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {\n\t\t\t\t\tif (effects[i].ty === 5) {\n\t\t\t\t\t\treturn effectElements[i];\n\t\t\t\t\t}\n\t\t\t\t\treturn effectElements[i]();\n\t\t\t\t}\n\t\t\t\ti += 1;\n\t\t\t}\n\t\t\tthrow new Error();\n\t\t}\n\t\tvar _propertyGroup = propertyGroupFactory(groupInterface, propertyGroup);\n\n\t\tvar effectElements = [];\n\t\tvar i;\n\t\tvar len = data.ef.length;\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tif (data.ef[i].ty === 5) {\n\t\t\t\teffectElements.push(createGroupInterface(data.ef[i], elements.effectElements[i], elements.effectElements[i].propertyGroup, elem));\n\t\t\t} else {\n\t\t\t\teffectElements.push(createValueInterface(elements.effectElements[i], data.ef[i].ty, elem, _propertyGroup));\n\t\t\t}\n\t\t}\n\n\t\tif (data.mn === 'ADBE Color Control') {\n\t\t\tObject.defineProperty(groupInterface, 'color', {\n\t\t\t\tget: function () {\n\t\t\t\t\treturn effectElements[0]();\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\t\tObject.defineProperties(groupInterface, {\n\t\t\tnumProperties: {\n\t\t\t\tget: function () {\n\t\t\t\t\treturn data.np;\n\t\t\t\t},\n\t\t\t},\n\t\t\t_name: { value: data.nm },\n\t\t\tpropertyGroup: { value: _propertyGroup },\n\t\t});\n\t\tgroupInterface.enabled = data.en !== 0;\n\t\tgroupInterface.active = groupInterface.enabled;\n\t\treturn groupInterface;\n\t}\n\n\tfunction createValueInterface(element, type, elem, propertyGroup) {\n\t\tvar expressionProperty = ExpressionPropertyInterface(element.p);\n\t\tfunction interfaceFunction() {\n\t\t\tif (type === 10) {\n\t\t\t\treturn elem.comp.compInterface(element.p.v);\n\t\t\t}\n\t\t\treturn expressionProperty();\n\t\t}\n\n\t\tif (element.p.setGroupProperty) {\n\t\t\telement.p.setGroupProperty(PropertyInterface('', propertyGroup));\n\t\t}\n\n\t\treturn interfaceFunction;\n\t}\n\n\treturn ob;\n}());\n\nconst CompExpressionInterface = (function () {\n\treturn function (comp) {\n\t\tfunction _thisLayerFunction(name) {\n\t\t\tvar i = 0;\n\t\t\tvar len = comp.layers.length;\n\t\t\twhile (i < len) {\n\t\t\t\tif (comp.layers[i].nm === name || comp.layers[i].ind === name) {\n\t\t\t\t\treturn comp.elements[i].layerInterface;\n\t\t\t\t}\n\t\t\t\ti += 1;\n\t\t\t}\n\t\t\treturn null;\n\t\t\t// return {active:false};\n\t\t}\n\t\tObject.defineProperty(_thisLayerFunction, '_name', { value: comp.data.nm });\n\t\t_thisLayerFunction.layer = _thisLayerFunction;\n\t\t_thisLayerFunction.pixelAspect = 1;\n\t\t_thisLayerFunction.height = comp.data.h || comp.globalData.compSize.h;\n\t\t_thisLayerFunction.width = comp.data.w || comp.globalData.compSize.w;\n\t\t_thisLayerFunction.pixelAspect = 1;\n\t\t_thisLayerFunction.frameDuration = 1 / comp.globalData.frameRate;\n\t\t_thisLayerFunction.displayStartTime = 0;\n\t\t_thisLayerFunction.numLayers = comp.layers.length;\n\t\treturn _thisLayerFunction;\n\t};\n}());\n\nconst ShapePathInterface = (\n\n\tfunction () {\n\t\treturn function pathInterfaceFactory(shape, view, propertyGroup) {\n\t\t\tvar prop = view.sh;\n\n\t\t\tfunction interfaceFunction(val) {\n\t\t\t\tif (val === 'Shape' || val === 'shape' || val === 'Path' || val === 'path' || val === 'ADBE Vector Shape' || val === 2) {\n\t\t\t\t\treturn interfaceFunction.path;\n\t\t\t\t}\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tvar _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\t\t\tprop.setGroupProperty(PropertyInterface('Path', _propertyGroup));\n\t\t\tObject.defineProperties(interfaceFunction, {\n\t\t\t\tpath: {\n\t\t\t\t\tget: function () {\n\t\t\t\t\t\tif (prop.k) {\n\t\t\t\t\t\t\tprop.getValue();\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn prop;\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tshape: {\n\t\t\t\t\tget: function () {\n\t\t\t\t\t\tif (prop.k) {\n\t\t\t\t\t\t\tprop.getValue();\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn prop;\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t_name: { value: shape.nm },\n\t\t\t\tix: { value: shape.ix },\n\t\t\t\tpropertyIndex: { value: shape.ix },\n\t\t\t\tmn: { value: shape.mn },\n\t\t\t\tpropertyGroup: { value: propertyGroup },\n\t\t\t});\n\t\t\treturn interfaceFunction;\n\t\t};\n\t}()\n);\n\nconst ShapeExpressionInterface = (function () {\n\tfunction iterateElements(shapes, view, propertyGroup) {\n\t\tvar arr = [];\n\t\tvar i;\n\t\tvar len = shapes ? shapes.length : 0;\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tif (shapes[i].ty === 'gr') {\n\t\t\t\tarr.push(groupInterfaceFactory(shapes[i], view[i], propertyGroup));\n\t\t\t} else if (shapes[i].ty === 'fl') {\n\t\t\t\tarr.push(fillInterfaceFactory(shapes[i], view[i], propertyGroup));\n\t\t\t} else if (shapes[i].ty === 'st') {\n\t\t\t\tarr.push(strokeInterfaceFactory(shapes[i], view[i], propertyGroup));\n\t\t\t} else if (shapes[i].ty === 'tm') {\n\t\t\t\tarr.push(trimInterfaceFactory(shapes[i], view[i], propertyGroup));\n\t\t\t} else if (shapes[i].ty === 'tr') {\n\t\t\t\t// arr.push(transformInterfaceFactory(shapes[i],view[i],propertyGroup));\n\t\t\t} else if (shapes[i].ty === 'el') {\n\t\t\t\tarr.push(ellipseInterfaceFactory(shapes[i], view[i], propertyGroup));\n\t\t\t} else if (shapes[i].ty === 'sr') {\n\t\t\t\tarr.push(starInterfaceFactory(shapes[i], view[i], propertyGroup));\n\t\t\t} else if (shapes[i].ty === 'sh') {\n\t\t\t\tarr.push(ShapePathInterface(shapes[i], view[i], propertyGroup));\n\t\t\t} else if (shapes[i].ty === 'rc') {\n\t\t\t\tarr.push(rectInterfaceFactory(shapes[i], view[i], propertyGroup));\n\t\t\t} else if (shapes[i].ty === 'rd') {\n\t\t\t\tarr.push(roundedInterfaceFactory(shapes[i], view[i], propertyGroup));\n\t\t\t} else if (shapes[i].ty === 'rp') {\n\t\t\t\tarr.push(repeaterInterfaceFactory(shapes[i], view[i], propertyGroup));\n\t\t\t} else if (shapes[i].ty === 'gf') {\n\t\t\t\tarr.push(gradientFillInterfaceFactory(shapes[i], view[i], propertyGroup));\n\t\t\t} else {\n\t\t\t\tarr.push(defaultInterfaceFactory(shapes[i], view[i], propertyGroup));\n\t\t\t}\n\t\t}\n\t\treturn arr;\n\t}\n\n\tfunction contentsInterfaceFactory(shape, view, propertyGroup) {\n\t\tvar interfaces;\n\t\tvar interfaceFunction = function _interfaceFunction(value) {\n\t\t\tvar i = 0;\n\t\t\tvar len = interfaces.length;\n\t\t\twhile (i < len) {\n\t\t\t\tif (interfaces[i]._name === value || interfaces[i].mn === value || interfaces[i].propertyIndex === value || interfaces[i].ix === value || interfaces[i].ind === value) {\n\t\t\t\t\treturn interfaces[i];\n\t\t\t\t}\n\t\t\t\ti += 1;\n\t\t\t}\n\t\t\tif (typeof value === 'number') {\n\t\t\t\treturn interfaces[value - 1];\n\t\t\t}\n\t\t\treturn null;\n\t\t};\n\n\t\tinterfaceFunction.propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\t\tinterfaces = iterateElements(shape.it, view.it, interfaceFunction.propertyGroup);\n\t\tinterfaceFunction.numProperties = interfaces.length;\n\t\tvar transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1], view.it[view.it.length - 1], interfaceFunction.propertyGroup);\n\t\tinterfaceFunction.transform = transformInterface;\n\t\tinterfaceFunction.propertyIndex = shape.cix;\n\t\tinterfaceFunction._name = shape.nm;\n\n\t\treturn interfaceFunction;\n\t}\n\n\tfunction groupInterfaceFactory(shape, view, propertyGroup) {\n\t\tvar interfaceFunction = function _interfaceFunction(value) {\n\t\t\tswitch (value) {\n\t\t\t\tcase 'ADBE Vectors Group':\n\t\t\t\tcase 'Contents':\n\t\t\t\tcase 2:\n\t\t\t\t\treturn interfaceFunction.content;\n\t\t\t\t// Not necessary for now. Keeping them here in case a new case appears\n\t\t\t\t// case 'ADBE Vector Transform Group':\n\t\t\t\t// case 3:\n\t\t\t\tdefault:\n\t\t\t\t\treturn interfaceFunction.transform;\n\t\t\t}\n\t\t};\n\t\tinterfaceFunction.propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\t\tvar content = contentsInterfaceFactory(shape, view, interfaceFunction.propertyGroup);\n\t\tvar transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1], view.it[view.it.length - 1], interfaceFunction.propertyGroup);\n\t\tinterfaceFunction.content = content;\n\t\tinterfaceFunction.transform = transformInterface;\n\t\tObject.defineProperty(interfaceFunction, '_name', {\n\t\t\tget: function () {\n\t\t\t\treturn shape.nm;\n\t\t\t},\n\t\t});\n\t\t// interfaceFunction.content = interfaceFunction;\n\t\tinterfaceFunction.numProperties = shape.np;\n\t\tinterfaceFunction.propertyIndex = shape.ix;\n\t\tinterfaceFunction.nm = shape.nm;\n\t\tinterfaceFunction.mn = shape.mn;\n\t\treturn interfaceFunction;\n\t}\n\n\tfunction fillInterfaceFactory(shape, view, propertyGroup) {\n\t\tfunction interfaceFunction(val) {\n\t\t\tif (val === 'Color' || val === 'color') {\n\t\t\t\treturn interfaceFunction.color;\n\t\t\t} if (val === 'Opacity' || val === 'opacity') {\n\t\t\t\treturn interfaceFunction.opacity;\n\t\t\t}\n\t\t\treturn null;\n\t\t}\n\t\tObject.defineProperties(interfaceFunction, {\n\t\t\tcolor: {\n\t\t\t\tget: ExpressionPropertyInterface(view.c),\n\t\t\t},\n\t\t\topacity: {\n\t\t\t\tget: ExpressionPropertyInterface(view.o),\n\t\t\t},\n\t\t\t_name: { value: shape.nm },\n\t\t\tmn: { value: shape.mn },\n\t\t});\n\n\t\tview.c.setGroupProperty(PropertyInterface('Color', propertyGroup));\n\t\tview.o.setGroupProperty(PropertyInterface('Opacity', propertyGroup));\n\t\treturn interfaceFunction;\n\t}\n\n\tfunction gradientFillInterfaceFactory(shape, view, propertyGroup) {\n\t\tfunction interfaceFunction(val) {\n\t\t\tif (val === 'Start Point' || val === 'start point') {\n\t\t\t\treturn interfaceFunction.startPoint;\n\t\t\t}\n\t\t\tif (val === 'End Point' || val === 'end point') {\n\t\t\t\treturn interfaceFunction.endPoint;\n\t\t\t}\n\t\t\tif (val === 'Opacity' || val === 'opacity') {\n\t\t\t\treturn interfaceFunction.opacity;\n\t\t\t}\n\t\t\treturn null;\n\t\t}\n\t\tObject.defineProperties(interfaceFunction, {\n\t\t\tstartPoint: {\n\t\t\t\tget: ExpressionPropertyInterface(view.s),\n\t\t\t},\n\t\t\tendPoint: {\n\t\t\t\tget: ExpressionPropertyInterface(view.e),\n\t\t\t},\n\t\t\topacity: {\n\t\t\t\tget: ExpressionPropertyInterface(view.o),\n\t\t\t},\n\t\t\ttype: {\n\t\t\t\tget: function () {\n\t\t\t\t\treturn 'a';\n\t\t\t\t},\n\t\t\t},\n\t\t\t_name: { value: shape.nm },\n\t\t\tmn: { value: shape.mn },\n\t\t});\n\n\t\tview.s.setGroupProperty(PropertyInterface('Start Point', propertyGroup));\n\t\tview.e.setGroupProperty(PropertyInterface('End Point', propertyGroup));\n\t\tview.o.setGroupProperty(PropertyInterface('Opacity', propertyGroup));\n\t\treturn interfaceFunction;\n\t}\n\tfunction defaultInterfaceFactory() {\n\t\tfunction interfaceFunction() {\n\t\t\treturn null;\n\t\t}\n\t\treturn interfaceFunction;\n\t}\n\n\tfunction strokeInterfaceFactory(shape, view, propertyGroup) {\n\t\tvar _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\t\tvar _dashPropertyGroup = propertyGroupFactory(dashOb, _propertyGroup);\n\t\tfunction addPropertyToDashOb(i) {\n\t\t\tObject.defineProperty(dashOb, shape.d[i].nm, {\n\t\t\t\tget: ExpressionPropertyInterface(view.d.dataProps[i].p),\n\t\t\t});\n\t\t}\n\t\tvar i;\n\t\tvar len = shape.d ? shape.d.length : 0;\n\t\tvar dashOb = {};\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\taddPropertyToDashOb(i);\n\t\t\tview.d.dataProps[i].p.setGroupProperty(_dashPropertyGroup);\n\t\t}\n\n\t\tfunction interfaceFunction(val) {\n\t\t\tif (val === 'Color' || val === 'color') {\n\t\t\t\treturn interfaceFunction.color;\n\t\t\t} if (val === 'Opacity' || val === 'opacity') {\n\t\t\t\treturn interfaceFunction.opacity;\n\t\t\t} if (val === 'Stroke Width' || val === 'stroke width') {\n\t\t\t\treturn interfaceFunction.strokeWidth;\n\t\t\t}\n\t\t\treturn null;\n\t\t}\n\t\tObject.defineProperties(interfaceFunction, {\n\t\t\tcolor: {\n\t\t\t\tget: ExpressionPropertyInterface(view.c),\n\t\t\t},\n\t\t\topacity: {\n\t\t\t\tget: ExpressionPropertyInterface(view.o),\n\t\t\t},\n\t\t\tstrokeWidth: {\n\t\t\t\tget: ExpressionPropertyInterface(view.w),\n\t\t\t},\n\t\t\tdash: {\n\t\t\t\tget: function () {\n\t\t\t\t\treturn dashOb;\n\t\t\t\t},\n\t\t\t},\n\t\t\t_name: { value: shape.nm },\n\t\t\tmn: { value: shape.mn },\n\t\t});\n\n\t\tview.c.setGroupProperty(PropertyInterface('Color', _propertyGroup));\n\t\tview.o.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n\t\tview.w.setGroupProperty(PropertyInterface('Stroke Width', _propertyGroup));\n\t\treturn interfaceFunction;\n\t}\n\n\tfunction trimInterfaceFactory(shape, view, propertyGroup) {\n\t\tfunction interfaceFunction(val) {\n\t\t\tif (val === shape.e.ix || val === 'End' || val === 'end') {\n\t\t\t\treturn interfaceFunction.end;\n\t\t\t}\n\t\t\tif (val === shape.s.ix) {\n\t\t\t\treturn interfaceFunction.start;\n\t\t\t}\n\t\t\tif (val === shape.o.ix) {\n\t\t\t\treturn interfaceFunction.offset;\n\t\t\t}\n\t\t\treturn null;\n\t\t}\n\n\t\tvar _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\t\tinterfaceFunction.propertyIndex = shape.ix;\n\n\t\tview.s.setGroupProperty(PropertyInterface('Start', _propertyGroup));\n\t\tview.e.setGroupProperty(PropertyInterface('End', _propertyGroup));\n\t\tview.o.setGroupProperty(PropertyInterface('Offset', _propertyGroup));\n\t\tinterfaceFunction.propertyIndex = shape.ix;\n\t\tinterfaceFunction.propertyGroup = propertyGroup;\n\n\t\tObject.defineProperties(interfaceFunction, {\n\t\t\tstart: {\n\t\t\t\tget: ExpressionPropertyInterface(view.s),\n\t\t\t},\n\t\t\tend: {\n\t\t\t\tget: ExpressionPropertyInterface(view.e),\n\t\t\t},\n\t\t\toffset: {\n\t\t\t\tget: ExpressionPropertyInterface(view.o),\n\t\t\t},\n\t\t\t_name: { value: shape.nm },\n\t\t});\n\t\tinterfaceFunction.mn = shape.mn;\n\t\treturn interfaceFunction;\n\t}\n\n\tfunction transformInterfaceFactory(shape, view, propertyGroup) {\n\t\tfunction interfaceFunction(value) {\n\t\t\tif (shape.a.ix === value || value === 'Anchor Point') {\n\t\t\t\treturn interfaceFunction.anchorPoint;\n\t\t\t}\n\t\t\tif (shape.o.ix === value || value === 'Opacity') {\n\t\t\t\treturn interfaceFunction.opacity;\n\t\t\t}\n\t\t\tif (shape.p.ix === value || value === 'Position') {\n\t\t\t\treturn interfaceFunction.position;\n\t\t\t}\n\t\t\tif (shape.r.ix === value || value === 'Rotation' || value === 'ADBE Vector Rotation') {\n\t\t\t\treturn interfaceFunction.rotation;\n\t\t\t}\n\t\t\tif (shape.s.ix === value || value === 'Scale') {\n\t\t\t\treturn interfaceFunction.scale;\n\t\t\t}\n\t\t\tif ((shape.sk && shape.sk.ix === value) || value === 'Skew') {\n\t\t\t\treturn interfaceFunction.skew;\n\t\t\t}\n\t\t\tif ((shape.sa && shape.sa.ix === value) || value === 'Skew Axis') {\n\t\t\t\treturn interfaceFunction.skewAxis;\n\t\t\t}\n\t\t\treturn null;\n\t\t}\n\t\tvar _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\t\tview.transform.mProps.o.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n\t\tview.transform.mProps.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n\t\tview.transform.mProps.a.setGroupProperty(PropertyInterface('Anchor Point', _propertyGroup));\n\t\tview.transform.mProps.s.setGroupProperty(PropertyInterface('Scale', _propertyGroup));\n\t\tview.transform.mProps.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n\t\tif (view.transform.mProps.sk) {\n\t\t\tview.transform.mProps.sk.setGroupProperty(PropertyInterface('Skew', _propertyGroup));\n\t\t\tview.transform.mProps.sa.setGroupProperty(PropertyInterface('Skew Angle', _propertyGroup));\n\t\t}\n\t\tview.transform.op.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n\t\tObject.defineProperties(interfaceFunction, {\n\t\t\topacity: {\n\t\t\t\tget: ExpressionPropertyInterface(view.transform.mProps.o),\n\t\t\t},\n\t\t\tposition: {\n\t\t\t\tget: ExpressionPropertyInterface(view.transform.mProps.p),\n\t\t\t},\n\t\t\tanchorPoint: {\n\t\t\t\tget: ExpressionPropertyInterface(view.transform.mProps.a),\n\t\t\t},\n\t\t\tscale: {\n\t\t\t\tget: ExpressionPropertyInterface(view.transform.mProps.s),\n\t\t\t},\n\t\t\trotation: {\n\t\t\t\tget: ExpressionPropertyInterface(view.transform.mProps.r),\n\t\t\t},\n\t\t\tskew: {\n\t\t\t\tget: ExpressionPropertyInterface(view.transform.mProps.sk),\n\t\t\t},\n\t\t\tskewAxis: {\n\t\t\t\tget: ExpressionPropertyInterface(view.transform.mProps.sa),\n\t\t\t},\n\t\t\t_name: { value: shape.nm },\n\t\t});\n\t\tinterfaceFunction.ty = 'tr';\n\t\tinterfaceFunction.mn = shape.mn;\n\t\tinterfaceFunction.propertyGroup = propertyGroup;\n\t\treturn interfaceFunction;\n\t}\n\n\tfunction ellipseInterfaceFactory(shape, view, propertyGroup) {\n\t\tfunction interfaceFunction(value) {\n\t\t\tif (shape.p.ix === value) {\n\t\t\t\treturn interfaceFunction.position;\n\t\t\t}\n\t\t\tif (shape.s.ix === value) {\n\t\t\t\treturn interfaceFunction.size;\n\t\t\t}\n\t\t\treturn null;\n\t\t}\n\t\tvar _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\t\tinterfaceFunction.propertyIndex = shape.ix;\n\t\tvar prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n\t\tprop.s.setGroupProperty(PropertyInterface('Size', _propertyGroup));\n\t\tprop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n\n\t\tObject.defineProperties(interfaceFunction, {\n\t\t\tsize: {\n\t\t\t\tget: ExpressionPropertyInterface(prop.s),\n\t\t\t},\n\t\t\tposition: {\n\t\t\t\tget: ExpressionPropertyInterface(prop.p),\n\t\t\t},\n\t\t\t_name: { value: shape.nm },\n\t\t});\n\t\tinterfaceFunction.mn = shape.mn;\n\t\treturn interfaceFunction;\n\t}\n\n\tfunction starInterfaceFactory(shape, view, propertyGroup) {\n\t\tfunction interfaceFunction(value) {\n\t\t\tif (shape.p.ix === value) {\n\t\t\t\treturn interfaceFunction.position;\n\t\t\t}\n\t\t\tif (shape.r.ix === value) {\n\t\t\t\treturn interfaceFunction.rotation;\n\t\t\t}\n\t\t\tif (shape.pt.ix === value) {\n\t\t\t\treturn interfaceFunction.points;\n\t\t\t}\n\t\t\tif (shape.or.ix === value || value === 'ADBE Vector Star Outer Radius') {\n\t\t\t\treturn interfaceFunction.outerRadius;\n\t\t\t}\n\t\t\tif (shape.os.ix === value) {\n\t\t\t\treturn interfaceFunction.outerRoundness;\n\t\t\t}\n\t\t\tif (shape.ir && (shape.ir.ix === value || value === 'ADBE Vector Star Inner Radius')) {\n\t\t\t\treturn interfaceFunction.innerRadius;\n\t\t\t}\n\t\t\tif (shape.is && shape.is.ix === value) {\n\t\t\t\treturn interfaceFunction.innerRoundness;\n\t\t\t}\n\t\t\treturn null;\n\t\t}\n\n\t\tvar _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\t\tvar prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n\t\tinterfaceFunction.propertyIndex = shape.ix;\n\t\tprop.or.setGroupProperty(PropertyInterface('Outer Radius', _propertyGroup));\n\t\tprop.os.setGroupProperty(PropertyInterface('Outer Roundness', _propertyGroup));\n\t\tprop.pt.setGroupProperty(PropertyInterface('Points', _propertyGroup));\n\t\tprop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n\t\tprop.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n\t\tif (shape.ir) {\n\t\t\tprop.ir.setGroupProperty(PropertyInterface('Inner Radius', _propertyGroup));\n\t\t\tprop.is.setGroupProperty(PropertyInterface('Inner Roundness', _propertyGroup));\n\t\t}\n\n\t\tObject.defineProperties(interfaceFunction, {\n\t\t\tposition: {\n\t\t\t\tget: ExpressionPropertyInterface(prop.p),\n\t\t\t},\n\t\t\trotation: {\n\t\t\t\tget: ExpressionPropertyInterface(prop.r),\n\t\t\t},\n\t\t\tpoints: {\n\t\t\t\tget: ExpressionPropertyInterface(prop.pt),\n\t\t\t},\n\t\t\touterRadius: {\n\t\t\t\tget: ExpressionPropertyInterface(prop.or),\n\t\t\t},\n\t\t\touterRoundness: {\n\t\t\t\tget: ExpressionPropertyInterface(prop.os),\n\t\t\t},\n\t\t\tinnerRadius: {\n\t\t\t\tget: ExpressionPropertyInterface(prop.ir),\n\t\t\t},\n\t\t\tinnerRoundness: {\n\t\t\t\tget: ExpressionPropertyInterface(prop.is),\n\t\t\t},\n\t\t\t_name: { value: shape.nm },\n\t\t});\n\t\tinterfaceFunction.mn = shape.mn;\n\t\treturn interfaceFunction;\n\t}\n\n\tfunction rectInterfaceFactory(shape, view, propertyGroup) {\n\t\tfunction interfaceFunction(value) {\n\t\t\tif (shape.p.ix === value) {\n\t\t\t\treturn interfaceFunction.position;\n\t\t\t}\n\t\t\tif (shape.r.ix === value) {\n\t\t\t\treturn interfaceFunction.roundness;\n\t\t\t}\n\t\t\tif (shape.s.ix === value || value === 'Size' || value === 'ADBE Vector Rect Size') {\n\t\t\t\treturn interfaceFunction.size;\n\t\t\t}\n\t\t\treturn null;\n\t\t}\n\t\tvar _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n\t\tvar prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n\t\tinterfaceFunction.propertyIndex = shape.ix;\n\t\tprop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n\t\tprop.s.setGroupProperty(PropertyInterface('Size', _propertyGroup));\n\t\tprop.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n\n\t\tObject.defineProperties(interfaceFunction, {\n\t\t\tposition: {\n\t\t\t\tget: ExpressionPropertyInterface(prop.p),\n\t\t\t},\n\t\t\troundness: {\n\t\t\t\tget: ExpressionPropertyInterface(prop.r),\n\t\t\t},\n\t\t\tsize: {\n\t\t\t\tget: ExpressionPropertyInterface(prop.s),\n\t\t\t},\n\t\t\t_name: { value: shape.nm },\n\t\t});\n\t\tinterfaceFunction.mn = shape.mn;\n\t\treturn interfaceFunction;\n\t}\n\n\tfunction roundedInterfaceFactory(shape, view, propertyGroup) {\n\t\tfunction interfaceFunction(value) {\n\t\t\tif (shape.r.ix === value || value === 'Round Corners 1') {\n\t\t\t\treturn interfaceFunction.radius;\n\t\t\t}\n\t\t\treturn null;\n\t\t}\n\n\t\tvar _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\t\tvar prop = view;\n\t\tinterfaceFunction.propertyIndex = shape.ix;\n\t\tprop.rd.setGroupProperty(PropertyInterface('Radius', _propertyGroup));\n\n\t\tObject.defineProperties(interfaceFunction, {\n\t\t\tradius: {\n\t\t\t\tget: ExpressionPropertyInterface(prop.rd),\n\t\t\t},\n\t\t\t_name: { value: shape.nm },\n\t\t});\n\t\tinterfaceFunction.mn = shape.mn;\n\t\treturn interfaceFunction;\n\t}\n\n\tfunction repeaterInterfaceFactory(shape, view, propertyGroup) {\n\t\tfunction interfaceFunction(value) {\n\t\t\tif (shape.c.ix === value || value === 'Copies') {\n\t\t\t\treturn interfaceFunction.copies;\n\t\t\t} if (shape.o.ix === value || value === 'Offset') {\n\t\t\t\treturn interfaceFunction.offset;\n\t\t\t}\n\t\t\treturn null;\n\t\t}\n\n\t\tvar _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\t\tvar prop = view;\n\t\tinterfaceFunction.propertyIndex = shape.ix;\n\t\tprop.c.setGroupProperty(PropertyInterface('Copies', _propertyGroup));\n\t\tprop.o.setGroupProperty(PropertyInterface('Offset', _propertyGroup));\n\t\tObject.defineProperties(interfaceFunction, {\n\t\t\tcopies: {\n\t\t\t\tget: ExpressionPropertyInterface(prop.c),\n\t\t\t},\n\t\t\toffset: {\n\t\t\t\tget: ExpressionPropertyInterface(prop.o),\n\t\t\t},\n\t\t\t_name: { value: shape.nm },\n\t\t});\n\t\tinterfaceFunction.mn = shape.mn;\n\t\treturn interfaceFunction;\n\t}\n\n\treturn function (shapes, view, propertyGroup) {\n\t\tvar interfaces;\n\t\tfunction _interfaceFunction(value) {\n\t\t\tif (typeof value === 'number') {\n\t\t\t\tvalue = value === undefined ? 1 : value;\n\t\t\t\tif (value === 0) {\n\t\t\t\t\treturn propertyGroup;\n\t\t\t\t}\n\t\t\t\treturn interfaces[value - 1];\n\t\t\t}\n\t\t\tvar i = 0;\n\t\t\tvar len = interfaces.length;\n\t\t\twhile (i < len) {\n\t\t\t\tif (interfaces[i]._name === value) {\n\t\t\t\t\treturn interfaces[i];\n\t\t\t\t}\n\t\t\t\ti += 1;\n\t\t\t}\n\t\t\treturn null;\n\t\t}\n\t\tfunction parentGroupWrapper() {\n\t\t\treturn propertyGroup;\n\t\t}\n\t\t_interfaceFunction.propertyGroup = propertyGroupFactory(_interfaceFunction, parentGroupWrapper);\n\t\tinterfaces = iterateElements(shapes, view, _interfaceFunction.propertyGroup);\n\t\t_interfaceFunction.numProperties = interfaces.length;\n\t\t_interfaceFunction._name = 'Contents';\n\t\treturn _interfaceFunction;\n\t};\n}());\n\nconst TextExpressionInterface = (function () {\n\treturn function (elem) {\n\t\tvar _prevValue;\n\t\tvar _sourceText;\n\t\tfunction _thisLayerFunction(name) {\n\t\t\tswitch (name) {\n\t\t\t\tcase 'ADBE Text Document':\n\t\t\t\t\treturn _thisLayerFunction.sourceText;\n\t\t\t\tdefault:\n\t\t\t\t\treturn null;\n\t\t\t}\n\t\t}\n\t\tObject.defineProperty(_thisLayerFunction, 'sourceText', {\n\t\t\tget: function () {\n\t\t\t\telem.textProperty.getValue();\n\t\t\t\tvar stringValue = elem.textProperty.currentData.t;\n\t\t\t\tif (stringValue !== _prevValue) {\n\t\t\t\t\telem.textProperty.currentData.t = _prevValue;\n\t\t\t\t\t_sourceText = new String(stringValue); // eslint-disable-line no-new-wrappers\n\t\t\t\t\t// If stringValue is an empty string, eval returns undefined, so it has to be returned as a String primitive\n\t\t\t\t\t_sourceText.value = stringValue || new String(stringValue); // eslint-disable-line no-new-wrappers\n\t\t\t\t}\n\t\t\t\treturn _sourceText;\n\t\t\t},\n\t\t});\n\t\treturn _thisLayerFunction;\n\t};\n}());\n\nconst getBlendMode = (function () {\n\tvar blendModeEnums = {\n\t\t0: 'source-over',\n\t\t1: 'multiply',\n\t\t2: 'screen',\n\t\t3: 'overlay',\n\t\t4: 'darken',\n\t\t5: 'lighten',\n\t\t6: 'color-dodge',\n\t\t7: 'color-burn',\n\t\t8: 'hard-light',\n\t\t9: 'soft-light',\n\t\t10: 'difference',\n\t\t11: 'exclusion',\n\t\t12: 'hue',\n\t\t13: 'saturation',\n\t\t14: 'color',\n\t\t15: 'luminosity',\n\t};\n\n\treturn function (mode) {\n\t\treturn blendModeEnums[mode] || '';\n\t};\n}());\n\nfunction SliderEffect(data, elem, container) {\n\tthis.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n}\nfunction AngleEffect(data, elem, container) {\n\tthis.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n}\nfunction ColorEffect(data, elem, container) {\n\tthis.p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\n}\nfunction PointEffect(data, elem, container) {\n\tthis.p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\n}\nfunction LayerIndexEffect(data, elem, container) {\n\tthis.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n}\nfunction MaskIndexEffect(data, elem, container) {\n\tthis.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n}\nfunction CheckboxEffect(data, elem, container) {\n\tthis.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n}\nfunction NoValueEffect() {\n\tthis.p = {};\n}\n\nfunction EffectsManager(data, element) {\n\tvar effects = data.ef || [];\n\tthis.effectElements = [];\n\tvar i;\n\tvar len = effects.length;\n\tvar effectItem;\n\tfor (i = 0; i < len; i += 1) {\n\t\teffectItem = new GroupEffect(effects[i], element);\n\t\tthis.effectElements.push(effectItem);\n\t}\n}\n\nfunction GroupEffect(data, element) {\n\tthis.init(data, element);\n}\n\nextendPrototype([DynamicPropertyContainer], GroupEffect);\n\nGroupEffect.prototype.getValue = GroupEffect.prototype.iterateDynamicProperties;\n\nGroupEffect.prototype.init = function (data, element) {\n\tthis.data = data;\n\tthis.effectElements = [];\n\tthis.initDynamicPropertyContainer(element);\n\tvar i;\n\tvar len = this.data.ef.length;\n\tvar eff;\n\tvar effects = this.data.ef;\n\tfor (i = 0; i < len; i += 1) {\n\t\teff = null;\n\t\tswitch (effects[i].ty) {\n\t\t\tcase 0:\n\t\t\t\teff = new SliderEffect(effects[i], element, this);\n\t\t\t\tbreak;\n\t\t\tcase 1:\n\t\t\t\teff = new AngleEffect(effects[i], element, this);\n\t\t\t\tbreak;\n\t\t\tcase 2:\n\t\t\t\teff = new ColorEffect(effects[i], element, this);\n\t\t\t\tbreak;\n\t\t\tcase 3:\n\t\t\t\teff = new PointEffect(effects[i], element, this);\n\t\t\t\tbreak;\n\t\t\tcase 4:\n\t\t\tcase 7:\n\t\t\t\teff = new CheckboxEffect(effects[i], element, this);\n\t\t\t\tbreak;\n\t\t\tcase 10:\n\t\t\t\teff = new LayerIndexEffect(effects[i], element, this);\n\t\t\t\tbreak;\n\t\t\tcase 11:\n\t\t\t\teff = new MaskIndexEffect(effects[i], element, this);\n\t\t\t\tbreak;\n\t\t\tcase 5:\n\t\t\t\teff = new EffectsManager(effects[i], element, this);\n\t\t\t\tbreak;\n\t\t\t// case 6:\n\t\t\tdefault:\n\t\t\t\teff = new NoValueEffect(effects[i], element, this);\n\t\t\t\tbreak;\n\t\t}\n\t\tif (eff) {\n\t\t\tthis.effectElements.push(eff);\n\t\t}\n\t}\n};\n\nfunction BaseElement() {\n}\n\nBaseElement.prototype = {\n\tcheckMasks: function () {\n\t\tif (!this.data.hasMask) {\n\t\t\treturn false;\n\t\t}\n\t\tvar i = 0;\n\t\tvar len = this.data.masksProperties.length;\n\t\twhile (i < len) {\n\t\t\tif ((this.data.masksProperties[i].mode !== 'n' && this.data.masksProperties[i].cl !== false)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\ti += 1;\n\t\t}\n\t\treturn false;\n\t},\n\tinitExpressions: function () {\n\t\tthis.layerInterface = LayerExpressionInterface(this);\n\t\tif (this.data.hasMask && this.maskManager) {\n\t\t\tthis.layerInterface.registerMaskInterface(this.maskManager);\n\t\t}\n\t\tvar effectsInterface = EffectsExpressionInterface.createEffectsInterface(this, this.layerInterface);\n\t\tthis.layerInterface.registerEffectsInterface(effectsInterface);\n\n\t\tif (this.data.ty === 0 || this.data.xt) {\n\t\t\tthis.compInterface = CompExpressionInterface(this);\n\t\t} else if (this.data.ty === 4) {\n\t\t\tthis.layerInterface.shapeInterface = ShapeExpressionInterface(this.shapesData, this.itemsData, this.layerInterface);\n\t\t\tthis.layerInterface.content = this.layerInterface.shapeInterface;\n\t\t} else if (this.data.ty === 5) {\n\t\t\tthis.layerInterface.textInterface = TextExpressionInterface(this);\n\t\t\tthis.layerInterface.text = this.layerInterface.textInterface;\n\t\t}\n\t},\n\tsetBlendMode: function () {\n\t\tvar blendModeValue = getBlendMode(this.data.bm);\n\t\tvar elem = this.baseElement || this.layerElement;\n\n\t\telem.style['mix-blend-mode'] = blendModeValue;\n\t},\n\tinitBaseData: function (data, globalData, comp) {\n\t\tthis.globalData = globalData;\n\t\tthis.comp = comp;\n\t\tthis.data = data;\n\t\tthis.layerId = createElementID();\n\n\t\t// Stretch factor for old animations missing this property.\n\t\tif (!this.data.sr) {\n\t\t\tthis.data.sr = 1;\n\t\t}\n\t\t// effects manager\n\t\tthis.effectsManager = new EffectsManager(this.data, this, this.dynamicProperties);\n\t},\n\tgetType: function () {\n\t\treturn this.type;\n\t},\n\tsourceRectAtTime: function () {},\n};\n\n/**\n * @file\n * Handles element's layer frame update.\n * Checks layer in point and out point\n *\n */\n\nfunction FrameElement() {}\n\nFrameElement.prototype = {\n\t/**\n\t * @function\n\t * Initializes frame related properties.\n\t *\n\t */\n\tinitFrame: function () {\n\t\t// set to true when inpoint is rendered\n\t\tthis._isFirstFrame = false;\n\t\t// list of animated properties\n\t\tthis.dynamicProperties = [];\n\t\t// If layer has been modified in current tick this will be true\n\t\tthis._mdf = false;\n\t},\n\t/**\n\t * @function\n\t * Calculates all dynamic values\n\t *\n\t * @param {number} num\n\t * current frame number in Layer's time\n\t * @param {boolean} isVisible\n\t * if layers is currently in range\n\t *\n\t */\n\tprepareProperties: function (num, isVisible) {\n\t\tvar i;\n\t\tvar len = this.dynamicProperties.length;\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tif (isVisible || (this._isParent && this.dynamicProperties[i].propType === 'transform')) {\n\t\t\t\tthis.dynamicProperties[i].getValue();\n\t\t\t\tif (this.dynamicProperties[i]._mdf) {\n\t\t\t\t\tthis.globalData._mdf = true;\n\t\t\t\t\tthis._mdf = true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\taddDynamicProperty: function (prop) {\n\t\tif (this.dynamicProperties.indexOf(prop) === -1) {\n\t\t\tthis.dynamicProperties.push(prop);\n\t\t}\n\t},\n};\n\nconst FootageInterface = (function () {\n\tvar outlineInterfaceFactory = (function (elem) {\n\t\tvar currentPropertyName = '';\n\t\tvar currentProperty = elem.getFootageData();\n\t\tfunction init() {\n\t\t\tcurrentPropertyName = '';\n\t\t\tcurrentProperty = elem.getFootageData();\n\t\t\treturn searchProperty;\n\t\t}\n\t\tfunction searchProperty(value) {\n\t\t\tif (currentProperty[value]) {\n\t\t\t\tcurrentPropertyName = value;\n\t\t\t\tcurrentProperty = currentProperty[value];\n\t\t\t\tif (typeof currentProperty === 'object') {\n\t\t\t\t\treturn searchProperty;\n\t\t\t\t}\n\t\t\t\treturn currentProperty;\n\t\t\t}\n\t\t\tvar propertyNameIndex = value.indexOf(currentPropertyName);\n\t\t\tif (propertyNameIndex !== -1) {\n\t\t\t\tvar index = parseInt(value.substr(propertyNameIndex + currentPropertyName.length), 10);\n\t\t\t\tcurrentProperty = currentProperty[index];\n\t\t\t\tif (typeof currentProperty === 'object') {\n\t\t\t\t\treturn searchProperty;\n\t\t\t\t}\n\t\t\t\treturn currentProperty;\n\t\t\t}\n\t\t\treturn '';\n\t\t}\n\t\treturn init;\n\t});\n\n\tvar dataInterfaceFactory = function (elem) {\n\t\tfunction interfaceFunction(value) {\n\t\t\tif (value === 'Outline') {\n\t\t\t\treturn interfaceFunction.outlineInterface();\n\t\t\t}\n\t\t\treturn null;\n\t\t}\n\n\t\tinterfaceFunction._name = 'Outline';\n\t\tinterfaceFunction.outlineInterface = outlineInterfaceFactory(elem);\n\t\treturn interfaceFunction;\n\t};\n\n\treturn function (elem) {\n\t\tfunction _interfaceFunction(value) {\n\t\t\tif (value === 'Data') {\n\t\t\t\treturn _interfaceFunction.dataInterface;\n\t\t\t}\n\t\t\treturn null;\n\t\t}\n\n\t\t_interfaceFunction._name = 'Data';\n\t\t_interfaceFunction.dataInterface = dataInterfaceFactory(elem);\n\t\treturn _interfaceFunction;\n\t};\n}());\n\nfunction FootageElement(data, globalData, comp) {\n\tthis.initFrame();\n\tthis.initRenderable();\n\tthis.assetData = globalData.getAssetData(data.refId);\n\tthis.footageData = globalData.imageLoader.getAsset(this.assetData);\n\tthis.initBaseData(data, globalData, comp);\n}\n\nFootageElement.prototype.prepareFrame = function () {\n};\n\nextendPrototype([RenderableElement, BaseElement, FrameElement], FootageElement);\n\nFootageElement.prototype.getBaseElement = function () {\n\treturn null;\n};\n\nFootageElement.prototype.renderFrame = function () {\n};\n\nFootageElement.prototype.destroy = function () {\n};\n\nFootageElement.prototype.initExpressions = function () {\n\tthis.layerInterface = FootageInterface(this);\n};\n\nFootageElement.prototype.getFootageData = function () {\n\treturn this.footageData;\n};\n\nfunction AudioElement(data, globalData, comp) {\n\tthis.initFrame();\n\tthis.initRenderable();\n\tthis.assetData = globalData.getAssetData(data.refId);\n\tthis.initBaseData(data, globalData, comp);\n\tthis._isPlaying = false;\n\tthis._canPlay = false;\n\tvar assetPath = this.globalData.getAssetsPath(this.assetData);\n\tthis.audio = this.globalData.audioController.createAudio(assetPath);\n\tthis._currentTime = 0;\n\tthis.globalData.audioController.addAudio(this);\n\tthis._volumeMultiplier = 1;\n\tthis._volume = 1;\n\tthis._previousVolume = null;\n\tthis.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : { _placeholder: true };\n\tthis.lv = PropertyFactory.getProp(this, data.au && data.au.lv ? data.au.lv : { k: [100] }, 1, 0.01, this);\n}\n\nAudioElement.prototype.prepareFrame = function (num) {\n\tthis.prepareRenderableFrame(num, true);\n\tthis.prepareProperties(num, true);\n\tif (!this.tm._placeholder) {\n\t\tvar timeRemapped = this.tm.v;\n\t\tthis._currentTime = timeRemapped;\n\t} else {\n\t\tthis._currentTime = num / this.data.sr;\n\t}\n\tthis._volume = this.lv.v[0];\n\tvar totalVolume = this._volume * this._volumeMultiplier;\n\tif (this._previousVolume !== totalVolume) {\n\t\tthis._previousVolume = totalVolume;\n\t\tthis.audio.volume(totalVolume);\n\t}\n};\n\nextendPrototype([RenderableElement, BaseElement, FrameElement], AudioElement);\n\nAudioElement.prototype.renderFrame = function () {\n\tif (this.isInRange && this._canPlay) {\n\t\tif (!this._isPlaying) {\n\t\t\tthis.audio.play();\n\t\t\tthis.audio.seek(this._currentTime / this.globalData.frameRate);\n\t\t\tthis._isPlaying = true;\n\t\t} else if (!this.audio.playing()\n\t\t\t|| Math.abs(this._currentTime / this.globalData.frameRate - this.audio.seek()) > 0.1\n\t\t) {\n\t\t\tthis.audio.seek(this._currentTime / this.globalData.frameRate);\n\t\t}\n\t}\n};\n\nAudioElement.prototype.show = function () {\n\t// this.audio.play()\n};\n\nAudioElement.prototype.hide = function () {\n\tthis.audio.pause();\n\tthis._isPlaying = false;\n};\n\nAudioElement.prototype.pause = function () {\n\tthis.audio.pause();\n\tthis._isPlaying = false;\n\tthis._canPlay = false;\n};\n\nAudioElement.prototype.resume = function () {\n\tthis._canPlay = true;\n};\n\nAudioElement.prototype.setRate = function (rateValue) {\n\tthis.audio.rate(rateValue);\n};\n\nAudioElement.prototype.volume = function (volumeValue) {\n\tthis._volumeMultiplier = volumeValue;\n\tthis._previousVolume = volumeValue * this._volume;\n\tthis.audio.volume(this._previousVolume);\n};\n\nAudioElement.prototype.getBaseElement = function () {\n\treturn null;\n};\n\nAudioElement.prototype.destroy = function () {\n};\n\nAudioElement.prototype.sourceRectAtTime = function () {\n};\n\nAudioElement.prototype.initExpressions = function () {\n};\n\nfunction BaseRenderer() {}\nBaseRenderer.prototype.checkLayers = function (num) {\n\tvar i;\n\tvar len = this.layers.length;\n\tvar data;\n\tthis.completeLayers = true;\n\tfor (i = len - 1; i >= 0; i -= 1) {\n\t\tif (!this.elements[i]) {\n\t\t\tdata = this.layers[i];\n\t\t\tif (data.ip - data.st <= (num - this.layers[i].st) && data.op - data.st > (num - this.layers[i].st)) {\n\t\t\t\tthis.buildItem(i);\n\t\t\t}\n\t\t}\n\t\tthis.completeLayers = this.elements[i] ? this.completeLayers : false;\n\t}\n\tthis.checkPendingElements();\n};\n\nBaseRenderer.prototype.createItem = function (layer) {\n\tswitch (layer.ty) {\n\t\tcase 2:\n\t\t\treturn this.createImage(layer);\n\t\tcase 0:\n\t\t\treturn this.createComp(layer);\n\t\tcase 1:\n\t\t\treturn this.createSolid(layer);\n\t\tcase 3:\n\t\t\treturn this.createNull(layer);\n\t\tcase 4:\n\t\t\treturn this.createShape(layer);\n\t\tcase 5:\n\t\t\treturn this.createText(layer);\n\t\tcase 6:\n\t\t\treturn this.createAudio(layer);\n\t\tcase 13:\n\t\t\treturn this.createCamera(layer);\n\t\tcase 15:\n\t\t\treturn this.createFootage(layer);\n\t\tdefault:\n\t\t\treturn this.createNull(layer);\n\t}\n};\n\nBaseRenderer.prototype.createCamera = function () {\n\tthrow new Error('You\\'re using a 3d camera. Try the html renderer.');\n};\n\nBaseRenderer.prototype.createAudio = function (data) {\n\treturn new AudioElement(data, this.globalData, this);\n};\n\nBaseRenderer.prototype.createFootage = function (data) {\n\treturn new FootageElement(data, this.globalData, this);\n};\n\nBaseRenderer.prototype.buildAllItems = function () {\n\tvar i;\n\tvar len = this.layers.length;\n\tfor (i = 0; i < len; i += 1) {\n\t\tthis.buildItem(i);\n\t}\n\tthis.checkPendingElements();\n};\n\nBaseRenderer.prototype.includeLayers = function (newLayers) {\n\tthis.completeLayers = false;\n\tvar i;\n\tvar len = newLayers.length;\n\tvar j;\n\tvar jLen = this.layers.length;\n\tfor (i = 0; i < len; i += 1) {\n\t\tj = 0;\n\t\twhile (j < jLen) {\n\t\t\tif (this.layers[j].id === newLayers[i].id) {\n\t\t\t\tthis.layers[j] = newLayers[i];\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tj += 1;\n\t\t}\n\t}\n};\n\nBaseRenderer.prototype.setProjectInterface = function (pInterface) {\n\tthis.globalData.projectInterface = pInterface;\n};\n\nBaseRenderer.prototype.initItems = function () {\n\tif (!this.globalData.progressiveLoad) {\n\t\tthis.buildAllItems();\n\t}\n};\nBaseRenderer.prototype.buildElementParenting = function (element, parentName, hierarchy) {\n\tvar elements = this.elements;\n\tvar layers = this.layers;\n\tvar i = 0;\n\tvar len = layers.length;\n\twhile (i < len) {\n\t\tif (layers[i].ind == parentName) { // eslint-disable-line eqeqeq\n\t\t\tif (!elements[i] || elements[i] === true) {\n\t\t\t\tthis.buildItem(i);\n\t\t\t\tthis.addPendingElement(element);\n\t\t\t} else {\n\t\t\t\thierarchy.push(elements[i]);\n\t\t\t\telements[i].setAsParent();\n\t\t\t\tif (layers[i].parent !== undefined) {\n\t\t\t\t\tthis.buildElementParenting(element, layers[i].parent, hierarchy);\n\t\t\t\t} else {\n\t\t\t\t\telement.setHierarchy(hierarchy);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\ti += 1;\n\t}\n};\n\nBaseRenderer.prototype.addPendingElement = function (element) {\n\tthis.pendingElements.push(element);\n};\n\nBaseRenderer.prototype.searchExtraCompositions = function (assets) {\n\tvar i;\n\tvar len = assets.length;\n\tfor (i = 0; i < len; i += 1) {\n\t\tif (assets[i].xt) {\n\t\t\tvar comp = this.createComp(assets[i]);\n\t\t\tcomp.initExpressions();\n\t\t\tthis.globalData.projectInterface.registerComposition(comp);\n\t\t}\n\t}\n};\n\nBaseRenderer.prototype.getElementByPath = function (path) {\n\tvar pathValue = path.shift();\n\tvar element;\n\tif (typeof pathValue === 'number') {\n\t\telement = this.elements[pathValue];\n\t} else {\n\t\tvar i;\n\t\tvar len = this.elements.length;\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tif (this.elements[i].data.nm === pathValue) {\n\t\t\t\telement = this.elements[i];\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\tif (path.length === 0) {\n\t\treturn element;\n\t}\n\treturn element.getElementByPath(path);\n};\n\nBaseRenderer.prototype.setupGlobalData = function (animData, fontsContainer) {\n\tthis.globalData.fontManager = new FontManager();\n\tthis.globalData.fontManager.addChars(animData.chars);\n\tthis.globalData.fontManager.addFonts(animData.fonts, fontsContainer);\n\tthis.globalData.getAssetData = this.animationItem.getAssetData.bind(this.animationItem);\n\tthis.globalData.getAssetsPath = this.animationItem.getAssetsPath.bind(this.animationItem);\n\tthis.globalData.imageLoader = this.animationItem.imagePreloader;\n\tthis.globalData.audioController = this.animationItem.audioController;\n\tthis.globalData.frameId = 0;\n\tthis.globalData.frameRate = animData.fr;\n\tthis.globalData.nm = animData.nm;\n\tthis.globalData.compSize = {\n\t\tw: animData.w,\n\t\th: animData.h,\n\t};\n};\n\nfunction TransformElement() {}\n\nTransformElement.prototype = {\n\tinitTransform: function () {\n\t\tthis.finalTransform = {\n\t\t\tmProp: this.data.ks ? TransformPropertyFactory.getTransformProperty(this, this.data.ks, this) : { o: 0 },\n\t\t\t_matMdf: false,\n\t\t\t_opMdf: false,\n\t\t\tmat: new Matrix(),\n\t\t};\n\t\tif (this.data.ao) {\n\t\t\tthis.finalTransform.mProp.autoOriented = true;\n\t\t}\n\n\t\t// TODO: check TYPE 11: Guided elements\n\t\tif (this.data.ty !== 11) {\n\t\t\t// this.createElements();\n\t\t}\n\t},\n\trenderTransform: function () {\n\t\tthis.finalTransform._opMdf = this.finalTransform.mProp.o._mdf || this._isFirstFrame;\n\t\tthis.finalTransform._matMdf = this.finalTransform.mProp._mdf || this._isFirstFrame;\n\n\t\tif (this.hierarchy) {\n\t\t\tvar mat;\n\t\t\tvar finalMat = this.finalTransform.mat;\n\t\t\tvar i = 0;\n\t\t\tvar len = this.hierarchy.length;\n\t\t\t// Checking if any of the transformation matrices in the hierarchy chain has changed.\n\t\t\tif (!this.finalTransform._matMdf) {\n\t\t\t\twhile (i < len) {\n\t\t\t\t\tif (this.hierarchy[i].finalTransform.mProp._mdf) {\n\t\t\t\t\t\tthis.finalTransform._matMdf = true;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\ti += 1;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (this.finalTransform._matMdf) {\n\t\t\t\tmat = this.finalTransform.mProp.v.props;\n\t\t\t\tfinalMat.cloneFromProps(mat);\n\t\t\t\tfor (i = 0; i < len; i += 1) {\n\t\t\t\t\tmat = this.hierarchy[i].finalTransform.mProp.v.props;\n\t\t\t\t\tfinalMat.transform(mat[0], mat[1], mat[2], mat[3], mat[4], mat[5], mat[6], mat[7], mat[8], mat[9], mat[10], mat[11], mat[12], mat[13], mat[14], mat[15]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\tglobalToLocal: function (pt) {\n\t\tvar transforms = [];\n\t\ttransforms.push(this.finalTransform);\n\t\tvar flag = true;\n\t\tvar comp = this.comp;\n\t\twhile (flag) {\n\t\t\tif (comp.finalTransform) {\n\t\t\t\tif (comp.data.hasMask) {\n\t\t\t\t\ttransforms.splice(0, 0, comp.finalTransform);\n\t\t\t\t}\n\t\t\t\tcomp = comp.comp;\n\t\t\t} else {\n\t\t\t\tflag = false;\n\t\t\t}\n\t\t}\n\t\tvar i;\n\t\tvar len = transforms.length;\n\t\tvar ptNew;\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tptNew = transforms[i].mat.applyToPointArray(0, 0, 0);\n\t\t\t// ptNew = transforms[i].mat.applyToPointArray(pt[0],pt[1],pt[2]);\n\t\t\tpt = [pt[0] - ptNew[0], pt[1] - ptNew[1], 0];\n\t\t}\n\t\treturn pt;\n\t},\n\tmHelper: new Matrix(),\n};\n\nfunction MaskElement(data, element, globalData) {\n\tthis.data = data;\n\tthis.element = element;\n\tthis.globalData = globalData;\n\tthis.storedData = [];\n\tthis.masksProperties = this.data.masksProperties || [];\n\tthis.maskElement = null;\n\tvar defs = this.globalData.defs;\n\tvar i;\n\tvar len = this.masksProperties ? this.masksProperties.length : 0;\n\tthis.viewData = createSizedArray(len);\n\tthis.solidPath = '';\n\n\tvar path;\n\tvar properties = this.masksProperties;\n\tvar count = 0;\n\tvar currentMasks = [];\n\tvar j;\n\tvar jLen;\n\tvar layerId = createElementID();\n\tvar rect;\n\tvar expansor;\n\tvar feMorph;\n\tvar x;\n\tvar maskType = 'clipPath';\n\tvar maskRef = 'clip-path';\n\tfor (i = 0; i < len; i += 1) {\n\t\tif ((properties[i].mode !== 'a' && properties[i].mode !== 'n') || properties[i].inv || properties[i].o.k !== 100 || properties[i].o.x) {\n\t\t\tmaskType = 'mask';\n\t\t\tmaskRef = 'mask';\n\t\t}\n\n\t\tif ((properties[i].mode === 's' || properties[i].mode === 'i') && count === 0) {\n\t\t\trect = createNS('rect');\n\t\t\trect.setAttribute('fill', '#ffffff');\n\t\t\trect.setAttribute('width', this.element.comp.data.w || 0);\n\t\t\trect.setAttribute('height', this.element.comp.data.h || 0);\n\t\t\tcurrentMasks.push(rect);\n\t\t} else {\n\t\t\trect = null;\n\t\t}\n\n\t\tpath = createNS('path');\n\t\tif (properties[i].mode === 'n') {\n\t\t\t// TODO move this to a factory or to a constructor\n\t\t\tthis.viewData[i] = {\n\t\t\t\top: PropertyFactory.getProp(this.element, properties[i].o, 0, 0.01, this.element),\n\t\t\t\tprop: ShapePropertyFactory.getShapeProp(this.element, properties[i], 3),\n\t\t\t\telem: path,\n\t\t\t\tlastPath: '',\n\t\t\t};\n\t\t\tdefs.appendChild(path);\n\t\t} else {\n\t\t\tcount += 1;\n\n\t\t\tpath.setAttribute('fill', properties[i].mode === 's' ? '#000000' : '#ffffff');\n\t\t\tpath.setAttribute('clip-rule', 'nonzero');\n\t\t\tvar filterID;\n\n\t\t\tif (properties[i].x.k !== 0) {\n\t\t\t\tmaskType = 'mask';\n\t\t\t\tmaskRef = 'mask';\n\t\t\t\tx = PropertyFactory.getProp(this.element, properties[i].x, 0, null, this.element);\n\t\t\t\tfilterID = createElementID();\n\t\t\t\texpansor = createNS('filter');\n\t\t\t\texpansor.setAttribute('id', filterID);\n\t\t\t\tfeMorph = createNS('feMorphology');\n\t\t\t\tfeMorph.setAttribute('operator', 'erode');\n\t\t\t\tfeMorph.setAttribute('in', 'SourceGraphic');\n\t\t\t\tfeMorph.setAttribute('radius', '0');\n\t\t\t\texpansor.appendChild(feMorph);\n\t\t\t\tdefs.appendChild(expansor);\n\t\t\t\tpath.setAttribute('stroke', properties[i].mode === 's' ? '#000000' : '#ffffff');\n\t\t\t} else {\n\t\t\t\tfeMorph = null;\n\t\t\t\tx = null;\n\t\t\t}\n\n\t\t\t// TODO move this to a factory or to a constructor\n\t\t\tthis.storedData[i] = {\n\t\t\t\telem: path,\n\t\t\t\tx: x,\n\t\t\t\texpan: feMorph,\n\t\t\t\tlastPath: '',\n\t\t\t\tlastOperator: '',\n\t\t\t\tfilterId: filterID,\n\t\t\t\tlastRadius: 0,\n\t\t\t};\n\t\t\tif (properties[i].mode === 'i') {\n\t\t\t\tjLen = currentMasks.length;\n\t\t\t\tvar g = createNS('g');\n\t\t\t\tfor (j = 0; j < jLen; j += 1) {\n\t\t\t\t\tg.appendChild(currentMasks[j]);\n\t\t\t\t}\n\t\t\t\tvar mask = createNS('mask');\n\t\t\t\tmask.setAttribute('mask-type', 'alpha');\n\t\t\t\tmask.setAttribute('id', layerId + '_' + count);\n\t\t\t\tmask.appendChild(path);\n\t\t\t\tdefs.appendChild(mask);\n\t\t\t\tg.setAttribute('mask', 'url(' + getLocationHref() + '#' + layerId + '_' + count + ')');\n\n\t\t\t\tcurrentMasks.length = 0;\n\t\t\t\tcurrentMasks.push(g);\n\t\t\t} else {\n\t\t\t\tcurrentMasks.push(path);\n\t\t\t}\n\t\t\tif (properties[i].inv && !this.solidPath) {\n\t\t\t\tthis.solidPath = this.createLayerSolidPath();\n\t\t\t}\n\t\t\t// TODO move this to a factory or to a constructor\n\t\t\tthis.viewData[i] = {\n\t\t\t\telem: path,\n\t\t\t\tlastPath: '',\n\t\t\t\top: PropertyFactory.getProp(this.element, properties[i].o, 0, 0.01, this.element),\n\t\t\t\tprop: ShapePropertyFactory.getShapeProp(this.element, properties[i], 3),\n\t\t\t\tinvRect: rect,\n\t\t\t};\n\t\t\tif (!this.viewData[i].prop.k) {\n\t\t\t\tthis.drawPath(properties[i], this.viewData[i].prop.v, this.viewData[i]);\n\t\t\t}\n\t\t}\n\t}\n\n\tthis.maskElement = createNS(maskType);\n\n\tlen = currentMasks.length;\n\tfor (i = 0; i < len; i += 1) {\n\t\tthis.maskElement.appendChild(currentMasks[i]);\n\t}\n\n\tif (count > 0) {\n\t\tthis.maskElement.setAttribute('id', layerId);\n\t\tthis.element.maskedElement.setAttribute(maskRef, 'url(' + getLocationHref() + '#' + layerId + ')');\n\t\tdefs.appendChild(this.maskElement);\n\t}\n\tif (this.viewData.length) {\n\t\tthis.element.addRenderableComponent(this);\n\t}\n}\n\nMaskElement.prototype.getMaskProperty = function (pos) {\n\treturn this.viewData[pos].prop;\n};\n\nMaskElement.prototype.renderFrame = function (isFirstFrame) {\n\tvar finalMat = this.element.finalTransform.mat;\n\tvar i;\n\tvar len = this.masksProperties.length;\n\tfor (i = 0; i < len; i += 1) {\n\t\tif (this.viewData[i].prop._mdf || isFirstFrame) {\n\t\t\tthis.drawPath(this.masksProperties[i], this.viewData[i].prop.v, this.viewData[i]);\n\t\t}\n\t\tif (this.viewData[i].op._mdf || isFirstFrame) {\n\t\t\tthis.viewData[i].elem.setAttribute('fill-opacity', this.viewData[i].op.v);\n\t\t}\n\t\tif (this.masksProperties[i].mode !== 'n') {\n\t\t\tif (this.viewData[i].invRect && (this.element.finalTransform.mProp._mdf || isFirstFrame)) {\n\t\t\t\tthis.viewData[i].invRect.setAttribute('transform', finalMat.getInverseMatrix().to2dCSS());\n\t\t\t}\n\t\t\tif (this.storedData[i].x && (this.storedData[i].x._mdf || isFirstFrame)) {\n\t\t\t\tvar feMorph = this.storedData[i].expan;\n\t\t\t\tif (this.storedData[i].x.v < 0) {\n\t\t\t\t\tif (this.storedData[i].lastOperator !== 'erode') {\n\t\t\t\t\t\tthis.storedData[i].lastOperator = 'erode';\n\t\t\t\t\t\tthis.storedData[i].elem.setAttribute('filter', 'url(' + getLocationHref() + '#' + this.storedData[i].filterId + ')');\n\t\t\t\t\t}\n\t\t\t\t\tfeMorph.setAttribute('radius', -this.storedData[i].x.v);\n\t\t\t\t} else {\n\t\t\t\t\tif (this.storedData[i].lastOperator !== 'dilate') {\n\t\t\t\t\t\tthis.storedData[i].lastOperator = 'dilate';\n\t\t\t\t\t\tthis.storedData[i].elem.setAttribute('filter', null);\n\t\t\t\t\t}\n\t\t\t\t\tthis.storedData[i].elem.setAttribute('stroke-width', this.storedData[i].x.v * 2);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\nMaskElement.prototype.getMaskelement = function () {\n\treturn this.maskElement;\n};\n\nMaskElement.prototype.createLayerSolidPath = function () {\n\tvar path = 'M0,0 ';\n\tpath += ' h' + this.globalData.compSize.w;\n\tpath += ' v' + this.globalData.compSize.h;\n\tpath += ' h-' + this.globalData.compSize.w;\n\tpath += ' v-' + this.globalData.compSize.h + ' ';\n\treturn path;\n};\n\nMaskElement.prototype.drawPath = function (pathData, pathNodes, viewData) {\n\tvar pathString = ' M' + pathNodes.v[0][0] + ',' + pathNodes.v[0][1];\n\tvar i;\n\tvar len;\n\tlen = pathNodes._length;\n\tfor (i = 1; i < len; i += 1) {\n\t\t// pathString += \" C\"+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + \" \"+pathNodes.i[i][0]+','+pathNodes.i[i][1] + \" \"+pathNodes.v[i][0]+','+pathNodes.v[i][1];\n\t\tpathString += ' C' + pathNodes.o[i - 1][0] + ',' + pathNodes.o[i - 1][1] + ' ' + pathNodes.i[i][0] + ',' + pathNodes.i[i][1] + ' ' + pathNodes.v[i][0] + ',' + pathNodes.v[i][1];\n\t}\n\t// pathString += \" C\"+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + \" \"+pathNodes.i[0][0]+','+pathNodes.i[0][1] + \" \"+pathNodes.v[0][0]+','+pathNodes.v[0][1];\n\tif (pathNodes.c && len > 1) {\n\t\tpathString += ' C' + pathNodes.o[i - 1][0] + ',' + pathNodes.o[i - 1][1] + ' ' + pathNodes.i[0][0] + ',' + pathNodes.i[0][1] + ' ' + pathNodes.v[0][0] + ',' + pathNodes.v[0][1];\n\t}\n\t// pathNodes.__renderedString = pathString;\n\n\tif (viewData.lastPath !== pathString) {\n\t\tvar pathShapeValue = '';\n\t\tif (viewData.elem) {\n\t\t\tif (pathNodes.c) {\n\t\t\t\tpathShapeValue = pathData.inv ? this.solidPath + pathString : pathString;\n\t\t\t}\n\t\t\tviewData.elem.setAttribute('d', pathShapeValue);\n\t\t}\n\t\tviewData.lastPath = pathString;\n\t}\n};\n\nMaskElement.prototype.destroy = function () {\n\tthis.element = null;\n\tthis.globalData = null;\n\tthis.maskElement = null;\n\tthis.data = null;\n\tthis.masksProperties = null;\n};\n\nconst filtersFactory = (function () {\n\tvar ob = {};\n\tob.createFilter = createFilter;\n\tob.createAlphaToLuminanceFilter = createAlphaToLuminanceFilter;\n\n\tfunction createFilter(filId, skipCoordinates) {\n\t\tvar fil = createNS('filter');\n\t\tfil.setAttribute('id', filId);\n\t\tif (skipCoordinates !== true) {\n\t\t\tfil.setAttribute('filterUnits', 'objectBoundingBox');\n\t\t\tfil.setAttribute('x', '0%');\n\t\t\tfil.setAttribute('y', '0%');\n\t\t\tfil.setAttribute('width', '100%');\n\t\t\tfil.setAttribute('height', '100%');\n\t\t}\n\t\treturn fil;\n\t}\n\n\tfunction createAlphaToLuminanceFilter() {\n\t\tvar feColorMatrix = createNS('feColorMatrix');\n\t\tfeColorMatrix.setAttribute('type', 'matrix');\n\t\tfeColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n\t\tfeColorMatrix.setAttribute('values', '0 0 0 1 0  0 0 0 1 0  0 0 0 1 0  0 0 0 1 1');\n\t\treturn feColorMatrix;\n\t}\n\n\treturn ob;\n}());\n\nconst featureSupport = (function () {\n\tvar ob = {\n\t\tmaskType: true,\n\t};\n\tif (/MSIE 10/i.test(navigator.userAgent) || /MSIE 9/i.test(navigator.userAgent) || /rv:11.0/i.test(navigator.userAgent) || /Edge\\/\\d./i.test(navigator.userAgent)) {\n\t\tob.maskType = false;\n\t}\n\treturn ob;\n}());\n\nvar registeredEffects = {};\nvar idPrefix = 'filter_result_';\n\nfunction SVGEffects(elem) {\n\tvar i;\n\tvar source = 'SourceGraphic';\n\tvar len = elem.data.ef ? elem.data.ef.length : 0;\n\tvar filId = createElementID();\n\tvar fil = filtersFactory.createFilter(filId, true);\n\tvar count = 0;\n\tthis.filters = [];\n\tvar filterManager;\n\tfor (i = 0; i < len; i += 1) {\n\t\tfilterManager = null;\n\t\tvar type = elem.data.ef[i].ty;\n\t\tif (registeredEffects[type]) {\n\t\t\tvar Effect = registeredEffects[type].effect;\n\t\t\tfilterManager = new Effect(fil, elem.effectsManager.effectElements[i], elem, idPrefix + count, source);\n\t\t\tsource = idPrefix + count;\n\t\t\tif (registeredEffects[type].countsAsEffect) {\n\t\t\t\tcount += 1;\n\t\t\t}\n\t\t}\n\t\tif (filterManager) {\n\t\t\tthis.filters.push(filterManager);\n\t\t}\n\t}\n\tif (count) {\n\t\telem.globalData.defs.appendChild(fil);\n\t\telem.layerElement.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n\t}\n\tif (this.filters.length) {\n\t\telem.addRenderableComponent(this);\n\t}\n}\n\nSVGEffects.prototype.renderFrame = function (_isFirstFrame) {\n\tvar i;\n\tvar len = this.filters.length;\n\tfor (i = 0; i < len; i += 1) {\n\t\tthis.filters[i].renderFrame(_isFirstFrame);\n\t}\n};\n\nfunction registerEffect(id, effect, countsAsEffect) {\n\tregisteredEffects[id] = {\n\t\teffect,\n\t\tcountsAsEffect,\n\t};\n}\n\nfunction SVGBaseElement() {\n}\n\nSVGBaseElement.prototype = {\n\tinitRendererElement: function () {\n\t\tthis.layerElement = createNS('g');\n\t},\n\tcreateContainerElements: function () {\n\t\tthis.matteElement = createNS('g');\n\t\tthis.transformedElement = this.layerElement;\n\t\tthis.maskedElement = this.layerElement;\n\t\tthis._sizeChanged = false;\n\t\tvar layerElementParent = null;\n\t\t// If this layer acts as a mask for the following layer\n\t\tvar filId;\n\t\tvar fil;\n\t\tvar gg;\n\t\tif (this.data.td) {\n\t\t\tif (this.data.td == 3 || this.data.td == 1) { // eslint-disable-line eqeqeq\n\t\t\t\tvar masker = createNS('mask');\n\t\t\t\tmasker.setAttribute('id', this.layerId);\n\t\t\t\tmasker.setAttribute('mask-type', this.data.td == 3 ? 'luminance' : 'alpha'); // eslint-disable-line eqeqeq\n\t\t\t\tmasker.appendChild(this.layerElement);\n\t\t\t\tlayerElementParent = masker;\n\t\t\t\tthis.globalData.defs.appendChild(masker);\n\t\t\t\t// This is only for IE and Edge when mask if of type alpha\n\t\t\t\tif (!featureSupport.maskType && this.data.td == 1) { // eslint-disable-line eqeqeq\n\t\t\t\t\tmasker.setAttribute('mask-type', 'luminance');\n\t\t\t\t\tfilId = createElementID();\n\t\t\t\t\tfil = filtersFactory.createFilter(filId);\n\t\t\t\t\tthis.globalData.defs.appendChild(fil);\n\t\t\t\t\tfil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\n\t\t\t\t\tgg = createNS('g');\n\t\t\t\t\tgg.appendChild(this.layerElement);\n\t\t\t\t\tlayerElementParent = gg;\n\t\t\t\t\tmasker.appendChild(gg);\n\t\t\t\t\tgg.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n\t\t\t\t}\n\t\t\t} else if (this.data.td == 2) { // eslint-disable-line eqeqeq\n\t\t\t\tvar maskGroup = createNS('mask');\n\t\t\t\tmaskGroup.setAttribute('id', this.layerId);\n\t\t\t\tmaskGroup.setAttribute('mask-type', 'alpha');\n\t\t\t\tvar maskGrouper = createNS('g');\n\t\t\t\tmaskGroup.appendChild(maskGrouper);\n\t\t\t\tfilId = createElementID();\n\t\t\t\tfil = filtersFactory.createFilter(filId);\n\t\t\t\t/// /\n\n\t\t\t\t// This solution doesn't work on Android when meta tag with viewport attribute is set\n\t\t\t\t/* var feColorMatrix = createNS('feColorMatrix');\n                feColorMatrix.setAttribute('type', 'matrix');\n                feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n                feColorMatrix.setAttribute('values','1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 -1 1');\n                fil.appendChild(feColorMatrix); */\n\t\t\t\t/// /\n\t\t\t\tvar feCTr = createNS('feComponentTransfer');\n\t\t\t\tfeCTr.setAttribute('in', 'SourceGraphic');\n\t\t\t\tfil.appendChild(feCTr);\n\t\t\t\tvar feFunc = createNS('feFuncA');\n\t\t\t\tfeFunc.setAttribute('type', 'table');\n\t\t\t\tfeFunc.setAttribute('tableValues', '1.0 0.0');\n\t\t\t\tfeCTr.appendChild(feFunc);\n\t\t\t\t/// /\n\t\t\t\tthis.globalData.defs.appendChild(fil);\n\t\t\t\tvar alphaRect = createNS('rect');\n\t\t\t\talphaRect.setAttribute('width', this.comp.data.w);\n\t\t\t\talphaRect.setAttribute('height', this.comp.data.h);\n\t\t\t\talphaRect.setAttribute('x', '0');\n\t\t\t\talphaRect.setAttribute('y', '0');\n\t\t\t\talphaRect.setAttribute('fill', '#ffffff');\n\t\t\t\talphaRect.setAttribute('opacity', '0');\n\t\t\t\tmaskGrouper.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n\t\t\t\tmaskGrouper.appendChild(alphaRect);\n\t\t\t\tmaskGrouper.appendChild(this.layerElement);\n\t\t\t\tlayerElementParent = maskGrouper;\n\t\t\t\tif (!featureSupport.maskType) {\n\t\t\t\t\tmaskGroup.setAttribute('mask-type', 'luminance');\n\t\t\t\t\tfil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\n\t\t\t\t\tgg = createNS('g');\n\t\t\t\t\tmaskGrouper.appendChild(alphaRect);\n\t\t\t\t\tgg.appendChild(this.layerElement);\n\t\t\t\t\tlayerElementParent = gg;\n\t\t\t\t\tmaskGrouper.appendChild(gg);\n\t\t\t\t}\n\t\t\t\tthis.globalData.defs.appendChild(maskGroup);\n\t\t\t}\n\t\t} else if (this.data.tt) {\n\t\t\tthis.matteElement.appendChild(this.layerElement);\n\t\t\tlayerElementParent = this.matteElement;\n\t\t\tthis.baseElement = this.matteElement;\n\t\t} else {\n\t\t\tthis.baseElement = this.layerElement;\n\t\t}\n\t\tif (this.data.ln) {\n\t\t\tthis.layerElement.setAttribute('id', this.data.ln);\n\t\t}\n\t\tif (this.data.cl) {\n\t\t\tthis.layerElement.setAttribute('class', this.data.cl);\n\t\t}\n\t\t// Clipping compositions to hide content that exceeds boundaries. If collapsed transformations is on, component should not be clipped\n\t\tif (this.data.ty === 0 && !this.data.hd) {\n\t\t\tvar cp = createNS('clipPath');\n\t\t\tvar pt = createNS('path');\n\t\t\tpt.setAttribute('d', 'M0,0 L' + this.data.w + ',0 L' + this.data.w + ',' + this.data.h + ' L0,' + this.data.h + 'z');\n\t\t\tvar clipId = createElementID();\n\t\t\tcp.setAttribute('id', clipId);\n\t\t\tcp.appendChild(pt);\n\t\t\tthis.globalData.defs.appendChild(cp);\n\n\t\t\tif (this.checkMasks()) {\n\t\t\t\tvar cpGroup = createNS('g');\n\t\t\t\tcpGroup.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + clipId + ')');\n\t\t\t\tcpGroup.appendChild(this.layerElement);\n\t\t\t\tthis.transformedElement = cpGroup;\n\t\t\t\tif (layerElementParent) {\n\t\t\t\t\tlayerElementParent.appendChild(this.transformedElement);\n\t\t\t\t} else {\n\t\t\t\t\tthis.baseElement = this.transformedElement;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis.layerElement.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + clipId + ')');\n\t\t\t}\n\t\t}\n\t\tif (this.data.bm !== 0) {\n\t\t\tthis.setBlendMode();\n\t\t}\n\t},\n\trenderElement: function () {\n\t\tif (this.finalTransform._matMdf) {\n\t\t\tthis.transformedElement.setAttribute('transform', this.finalTransform.mat.to2dCSS());\n\t\t}\n\t\tif (this.finalTransform._opMdf) {\n\t\t\tthis.transformedElement.setAttribute('opacity', this.finalTransform.mProp.o.v);\n\t\t}\n\t},\n\tdestroyBaseElement: function () {\n\t\tthis.layerElement = null;\n\t\tthis.matteElement = null;\n\t\tthis.maskManager.destroy();\n\t},\n\tgetBaseElement: function () {\n\t\tif (this.data.hd) {\n\t\t\treturn null;\n\t\t}\n\t\treturn this.baseElement;\n\t},\n\tcreateRenderableComponents: function () {\n\t\tthis.maskManager = new MaskElement(this.data, this, this.globalData);\n\t\tthis.renderableEffectsManager = new SVGEffects(this);\n\t},\n\tsetMatte: function (id) {\n\t\tif (!this.matteElement) {\n\t\t\treturn;\n\t\t}\n\t\tthis.matteElement.setAttribute('mask', 'url(' + getLocationHref() + '#' + id + ')');\n\t},\n};\n\n/**\n * @file\n * Handles AE's layer parenting property.\n *\n */\n\nfunction HierarchyElement() {}\n\nHierarchyElement.prototype = {\n\t/**\n\t * @function\n\t * Initializes hierarchy properties\n\t *\n\t */\n\tinitHierarchy: function () {\n\t\t// element's parent list\n\t\tthis.hierarchy = [];\n\t\t// if element is parent of another layer _isParent will be true\n\t\tthis._isParent = false;\n\t\tthis.checkParenting();\n\t},\n\t/**\n\t * @function\n\t * Sets layer's hierarchy.\n\t * @param {array} hierarch\n\t * layer's parent list\n\t *\n\t */\n\tsetHierarchy: function (hierarchy) {\n\t\tthis.hierarchy = hierarchy;\n\t},\n\t/**\n\t * @function\n\t * Sets layer as parent.\n\t *\n\t */\n\tsetAsParent: function () {\n\t\tthis._isParent = true;\n\t},\n\t/**\n\t * @function\n\t * Searches layer's parenting chain\n\t *\n\t */\n\tcheckParenting: function () {\n\t\tif (this.data.parent !== undefined) {\n\t\t\tthis.comp.buildElementParenting(this, this.data.parent, []);\n\t\t}\n\t},\n};\n\nfunction RenderableDOMElement() {}\n\n(function () {\n\tvar _prototype = {\n\t\tinitElement: function (data, globalData, comp) {\n\t\t\tthis.initFrame();\n\t\t\tthis.initBaseData(data, globalData, comp);\n\t\t\tthis.initTransform(data, globalData, comp);\n\t\t\tthis.initHierarchy();\n\t\t\tthis.initRenderable();\n\t\t\tthis.initRendererElement();\n\t\t\tthis.createContainerElements();\n\t\t\tthis.createRenderableComponents();\n\t\t\tthis.createContent();\n\t\t\tthis.hide();\n\t\t},\n\t\thide: function () {\n\t\t\t// console.log('HIDE', this);\n\t\t\tif (!this.hidden && (!this.isInRange || this.isTransparent)) {\n\t\t\t\tvar elem = this.baseElement || this.layerElement;\n\t\t\t\telem.style.display = 'none';\n\t\t\t\tthis.hidden = true;\n\t\t\t}\n\t\t},\n\t\tshow: function () {\n\t\t\t// console.log('SHOW', this);\n\t\t\tif (this.isInRange && !this.isTransparent) {\n\t\t\t\tif (!this.data.hd) {\n\t\t\t\t\tvar elem = this.baseElement || this.layerElement;\n\t\t\t\t\telem.style.display = 'block';\n\t\t\t\t}\n\t\t\t\tthis.hidden = false;\n\t\t\t\tthis._isFirstFrame = true;\n\t\t\t}\n\t\t},\n\t\trenderFrame: function () {\n\t\t\t// If it is exported as hidden (data.hd === true) no need to render\n\t\t\t// If it is not visible no need to render\n\t\t\tif (this.data.hd || this.hidden) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.renderTransform();\n\t\t\tthis.renderRenderable();\n\t\t\tthis.renderElement();\n\t\t\tthis.renderInnerContent();\n\t\t\tif (this._isFirstFrame) {\n\t\t\t\tthis._isFirstFrame = false;\n\t\t\t}\n\t\t},\n\t\trenderInnerContent: function () {},\n\t\tprepareFrame: function (num) {\n\t\t\tthis._mdf = false;\n\t\t\tthis.prepareRenderableFrame(num);\n\t\t\tthis.prepareProperties(num, this.isInRange);\n\t\t\tthis.checkTransparency();\n\t\t},\n\t\tdestroy: function () {\n\t\t\tthis.innerElem = null;\n\t\t\tthis.destroyBaseElement();\n\t\t},\n\t};\n\textendPrototype([RenderableElement, createProxyFunction(_prototype)], RenderableDOMElement);\n}());\n\nfunction IImageElement(data, globalData, comp) {\n\tthis.assetData = globalData.getAssetData(data.refId);\n\tthis.initElement(data, globalData, comp);\n\tthis.sourceRect = {\n\t\ttop: 0, left: 0, width: this.assetData.w, height: this.assetData.h,\n\t};\n}\n\nextendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], IImageElement);\n\nIImageElement.prototype.createContent = function () {\n\tvar assetPath = this.globalData.getAssetsPath(this.assetData);\n\n\tthis.innerElem = createNS('image');\n\tthis.innerElem.setAttribute('width', this.assetData.w + 'px');\n\tthis.innerElem.setAttribute('height', this.assetData.h + 'px');\n\tthis.innerElem.setAttribute('preserveAspectRatio', this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio);\n\tthis.innerElem.setAttributeNS('http://www.w3.org/1999/xlink', 'href', assetPath);\n\n\tthis.layerElement.appendChild(this.innerElem);\n};\n\nIImageElement.prototype.sourceRectAtTime = function () {\n\treturn this.sourceRect;\n};\n\nfunction ProcessedElement(element, position) {\n\tthis.elem = element;\n\tthis.pos = position;\n}\n\nfunction IShapeElement() {\n}\n\nIShapeElement.prototype = {\n\taddShapeToModifiers: function (data) {\n\t\tvar i;\n\t\tvar len = this.shapeModifiers.length;\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tthis.shapeModifiers[i].addShape(data);\n\t\t}\n\t},\n\tisShapeInAnimatedModifiers: function (data) {\n\t\tvar i = 0;\n\t\tvar len = this.shapeModifiers.length;\n\t\twhile (i < len) {\n\t\t\tif (this.shapeModifiers[i].isAnimatedWithShape(data)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t},\n\trenderModifiers: function () {\n\t\tif (!this.shapeModifiers.length) {\n\t\t\treturn;\n\t\t}\n\t\tvar i;\n\t\tvar len = this.shapes.length;\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tthis.shapes[i].sh.reset();\n\t\t}\n\n\t\tlen = this.shapeModifiers.length;\n\t\tvar shouldBreakProcess;\n\t\tfor (i = len - 1; i >= 0; i -= 1) {\n\t\t\tshouldBreakProcess = this.shapeModifiers[i].processShapes(this._isFirstFrame);\n\t\t\t// workaround to fix cases where a repeater resets the shape so the following processes get called twice\n\t\t\t// TODO: find a better solution for this\n\t\t\tif (shouldBreakProcess) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t},\n\n\tsearchProcessedElement: function (elem) {\n\t\tvar elements = this.processedElements;\n\t\tvar i = 0;\n\t\tvar len = elements.length;\n\t\twhile (i < len) {\n\t\t\tif (elements[i].elem === elem) {\n\t\t\t\treturn elements[i].pos;\n\t\t\t}\n\t\t\ti += 1;\n\t\t}\n\t\treturn 0;\n\t},\n\taddProcessedElement: function (elem, pos) {\n\t\tvar elements = this.processedElements;\n\t\tvar i = elements.length;\n\t\twhile (i) {\n\t\t\ti -= 1;\n\t\t\tif (elements[i].elem === elem) {\n\t\t\t\telements[i].pos = pos;\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\telements.push(new ProcessedElement(elem, pos));\n\t},\n\tprepareFrame: function (num) {\n\t\tthis.prepareRenderableFrame(num);\n\t\tthis.prepareProperties(num, this.isInRange);\n\t},\n};\n\nconst lineCapEnum = {\n\t1: 'butt',\n\t2: 'round',\n\t3: 'square',\n};\n\nconst lineJoinEnum = {\n\t1: 'miter',\n\t2: 'round',\n\t3: 'bevel',\n};\n\nfunction SVGShapeData(transformers, level, shape) {\n\tthis.caches = [];\n\tthis.styles = [];\n\tthis.transformers = transformers;\n\tthis.lStr = '';\n\tthis.sh = shape;\n\tthis.lvl = level;\n\t// TODO find if there are some cases where _isAnimated can be false.\n\t// For now, since shapes add up with other shapes. They have to be calculated every time.\n\t// One way of finding out is checking if all styles associated to this shape depend only of this shape\n\tthis._isAnimated = !!shape.k;\n\t// TODO: commenting this for now since all shapes are animated\n\tvar i = 0;\n\tvar len = transformers.length;\n\twhile (i < len) {\n\t\tif (transformers[i].mProps.dynamicProperties.length) {\n\t\t\tthis._isAnimated = true;\n\t\t\tbreak;\n\t\t}\n\t\ti += 1;\n\t}\n}\n\nSVGShapeData.prototype.setAsAnimated = function () {\n\tthis._isAnimated = true;\n};\n\nfunction SVGStyleData(data, level) {\n\tthis.data = data;\n\tthis.type = data.ty;\n\tthis.d = '';\n\tthis.lvl = level;\n\tthis._mdf = false;\n\tthis.closed = data.hd === true;\n\tthis.pElem = createNS('path');\n\tthis.msElem = null;\n}\n\nSVGStyleData.prototype.reset = function () {\n\tthis.d = '';\n\tthis._mdf = false;\n};\n\nfunction DashProperty(elem, data, renderer, container) {\n\tthis.elem = elem;\n\tthis.frameId = -1;\n\tthis.dataProps = createSizedArray(data.length);\n\tthis.renderer = renderer;\n\tthis.k = false;\n\tthis.dashStr = '';\n\tthis.dashArray = createTypedArray('float32', data.length ? data.length - 1 : 0);\n\tthis.dashoffset = createTypedArray('float32', 1);\n\tthis.initDynamicPropertyContainer(container);\n\tvar i;\n\tvar len = data.length || 0;\n\tvar prop;\n\tfor (i = 0; i < len; i += 1) {\n\t\tprop = PropertyFactory.getProp(elem, data[i].v, 0, 0, this);\n\t\tthis.k = prop.k || this.k;\n\t\tthis.dataProps[i] = { n: data[i].n, p: prop };\n\t}\n\tif (!this.k) {\n\t\tthis.getValue(true);\n\t}\n\tthis._isAnimated = this.k;\n}\n\nDashProperty.prototype.getValue = function (forceRender) {\n\tif (this.elem.globalData.frameId === this.frameId && !forceRender) {\n\t\treturn;\n\t}\n\tthis.frameId = this.elem.globalData.frameId;\n\tthis.iterateDynamicProperties();\n\tthis._mdf = this._mdf || forceRender;\n\tif (this._mdf) {\n\t\tvar i = 0;\n\t\tvar len = this.dataProps.length;\n\t\tif (this.renderer === 'svg') {\n\t\t\tthis.dashStr = '';\n\t\t}\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tif (this.dataProps[i].n !== 'o') {\n\t\t\t\tif (this.renderer === 'svg') {\n\t\t\t\t\tthis.dashStr += ' ' + this.dataProps[i].p.v;\n\t\t\t\t} else {\n\t\t\t\t\tthis.dashArray[i] = this.dataProps[i].p.v;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis.dashoffset[0] = this.dataProps[i].p.v;\n\t\t\t}\n\t\t}\n\t}\n};\nextendPrototype([DynamicPropertyContainer], DashProperty);\n\nfunction SVGStrokeStyleData(elem, data, styleOb) {\n\tthis.initDynamicPropertyContainer(elem);\n\tthis.getValue = this.iterateDynamicProperties;\n\tthis.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n\tthis.w = PropertyFactory.getProp(elem, data.w, 0, null, this);\n\tthis.d = new DashProperty(elem, data.d || {}, 'svg', this);\n\tthis.c = PropertyFactory.getProp(elem, data.c, 1, 255, this);\n\tthis.style = styleOb;\n\tthis._isAnimated = !!this._isAnimated;\n}\n\nextendPrototype([DynamicPropertyContainer], SVGStrokeStyleData);\n\nfunction SVGFillStyleData(elem, data, styleOb) {\n\tthis.initDynamicPropertyContainer(elem);\n\tthis.getValue = this.iterateDynamicProperties;\n\tthis.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n\tthis.c = PropertyFactory.getProp(elem, data.c, 1, 255, this);\n\tthis.style = styleOb;\n}\n\nextendPrototype([DynamicPropertyContainer], SVGFillStyleData);\n\nfunction SVGNoStyleData(elem, data, styleOb) {\n\tthis.initDynamicPropertyContainer(elem);\n\tthis.getValue = this.iterateDynamicProperties;\n\tthis.style = styleOb;\n}\n\nextendPrototype([DynamicPropertyContainer], SVGNoStyleData);\n\nfunction GradientProperty(elem, data, container) {\n\tthis.data = data;\n\tthis.c = createTypedArray('uint8c', data.p * 4);\n\tvar cLength = data.k.k[0].s ? (data.k.k[0].s.length - data.p * 4) : data.k.k.length - data.p * 4;\n\tthis.o = createTypedArray('float32', cLength);\n\tthis._cmdf = false;\n\tthis._omdf = false;\n\tthis._collapsable = this.checkCollapsable();\n\tthis._hasOpacity = cLength;\n\tthis.initDynamicPropertyContainer(container);\n\tthis.prop = PropertyFactory.getProp(elem, data.k, 1, null, this);\n\tthis.k = this.prop.k;\n\tthis.getValue(true);\n}\n\nGradientProperty.prototype.comparePoints = function (values, points) {\n\tvar i = 0;\n\tvar len = this.o.length / 2;\n\tvar diff;\n\twhile (i < len) {\n\t\tdiff = Math.abs(values[i * 4] - values[points * 4 + i * 2]);\n\t\tif (diff > 0.01) {\n\t\t\treturn false;\n\t\t}\n\t\ti += 1;\n\t}\n\treturn true;\n};\n\nGradientProperty.prototype.checkCollapsable = function () {\n\tif (this.o.length / 2 !== this.c.length / 4) {\n\t\treturn false;\n\t}\n\tif (this.data.k.k[0].s) {\n\t\tvar i = 0;\n\t\tvar len = this.data.k.k.length;\n\t\twhile (i < len) {\n\t\t\tif (!this.comparePoints(this.data.k.k[i].s, this.data.p)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\ti += 1;\n\t\t}\n\t} else if (!this.comparePoints(this.data.k.k, this.data.p)) {\n\t\treturn false;\n\t}\n\treturn true;\n};\n\nGradientProperty.prototype.getValue = function (forceRender) {\n\tthis.prop.getValue();\n\tthis._mdf = false;\n\tthis._cmdf = false;\n\tthis._omdf = false;\n\tif (this.prop._mdf || forceRender) {\n\t\tvar i;\n\t\tvar len = this.data.p * 4;\n\t\tvar mult;\n\t\tvar val;\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tmult = i % 4 === 0 ? 100 : 255;\n\t\t\tval = Math.round(this.prop.v[i] * mult);\n\t\t\tif (this.c[i] !== val) {\n\t\t\t\tthis.c[i] = val;\n\t\t\t\tthis._cmdf = !forceRender;\n\t\t\t}\n\t\t}\n\t\tif (this.o.length) {\n\t\t\tlen = this.prop.v.length;\n\t\t\tfor (i = this.data.p * 4; i < len; i += 1) {\n\t\t\t\tmult = i % 2 === 0 ? 100 : 1;\n\t\t\t\tval = i % 2 === 0 ? Math.round(this.prop.v[i] * 100) : this.prop.v[i];\n\t\t\t\tif (this.o[i - this.data.p * 4] !== val) {\n\t\t\t\t\tthis.o[i - this.data.p * 4] = val;\n\t\t\t\t\tthis._omdf = !forceRender;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthis._mdf = !forceRender;\n\t}\n};\n\nextendPrototype([DynamicPropertyContainer], GradientProperty);\n\nfunction SVGGradientFillStyleData(elem, data, styleOb) {\n\tthis.initDynamicPropertyContainer(elem);\n\tthis.getValue = this.iterateDynamicProperties;\n\tthis.initGradientData(elem, data, styleOb);\n}\n\nSVGGradientFillStyleData.prototype.initGradientData = function (elem, data, styleOb) {\n\tthis.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n\tthis.s = PropertyFactory.getProp(elem, data.s, 1, null, this);\n\tthis.e = PropertyFactory.getProp(elem, data.e, 1, null, this);\n\tthis.h = PropertyFactory.getProp(elem, data.h || { k: 0 }, 0, 0.01, this);\n\tthis.a = PropertyFactory.getProp(elem, data.a || { k: 0 }, 0, degToRads, this);\n\tthis.g = new GradientProperty(elem, data.g, this);\n\tthis.style = styleOb;\n\tthis.stops = [];\n\tthis.setGradientData(styleOb.pElem, data);\n\tthis.setGradientOpacity(data, styleOb);\n\tthis._isAnimated = !!this._isAnimated;\n};\n\nSVGGradientFillStyleData.prototype.setGradientData = function (pathElement, data) {\n\tvar gradientId = createElementID();\n\tvar gfill = createNS(data.t === 1 ? 'linearGradient' : 'radialGradient');\n\tgfill.setAttribute('id', gradientId);\n\tgfill.setAttribute('spreadMethod', 'pad');\n\tgfill.setAttribute('gradientUnits', 'userSpaceOnUse');\n\tvar stops = [];\n\tvar stop;\n\tvar j;\n\tvar jLen;\n\tjLen = data.g.p * 4;\n\tfor (j = 0; j < jLen; j += 4) {\n\t\tstop = createNS('stop');\n\t\tgfill.appendChild(stop);\n\t\tstops.push(stop);\n\t}\n\tpathElement.setAttribute(data.ty === 'gf' ? 'fill' : 'stroke', 'url(' + getLocationHref() + '#' + gradientId + ')');\n\tthis.gf = gfill;\n\tthis.cst = stops;\n};\n\nSVGGradientFillStyleData.prototype.setGradientOpacity = function (data, styleOb) {\n\tif (this.g._hasOpacity && !this.g._collapsable) {\n\t\tvar stop;\n\t\tvar j;\n\t\tvar jLen;\n\t\tvar mask = createNS('mask');\n\t\tvar maskElement = createNS('path');\n\t\tmask.appendChild(maskElement);\n\t\tvar opacityId = createElementID();\n\t\tvar maskId = createElementID();\n\t\tmask.setAttribute('id', maskId);\n\t\tvar opFill = createNS(data.t === 1 ? 'linearGradient' : 'radialGradient');\n\t\topFill.setAttribute('id', opacityId);\n\t\topFill.setAttribute('spreadMethod', 'pad');\n\t\topFill.setAttribute('gradientUnits', 'userSpaceOnUse');\n\t\tjLen = data.g.k.k[0].s ? data.g.k.k[0].s.length : data.g.k.k.length;\n\t\tvar stops = this.stops;\n\t\tfor (j = data.g.p * 4; j < jLen; j += 2) {\n\t\t\tstop = createNS('stop');\n\t\t\tstop.setAttribute('stop-color', 'rgb(255,255,255)');\n\t\t\topFill.appendChild(stop);\n\t\t\tstops.push(stop);\n\t\t}\n\t\tmaskElement.setAttribute(data.ty === 'gf' ? 'fill' : 'stroke', 'url(' + getLocationHref() + '#' + opacityId + ')');\n\t\tif (data.ty === 'gs') {\n\t\t\tmaskElement.setAttribute('stroke-linecap', lineCapEnum[data.lc || 2]);\n\t\t\tmaskElement.setAttribute('stroke-linejoin', lineJoinEnum[data.lj || 2]);\n\t\t\tif (data.lj === 1) {\n\t\t\t\tmaskElement.setAttribute('stroke-miterlimit', data.ml);\n\t\t\t}\n\t\t}\n\t\tthis.of = opFill;\n\t\tthis.ms = mask;\n\t\tthis.ost = stops;\n\t\tthis.maskId = maskId;\n\t\tstyleOb.msElem = maskElement;\n\t}\n};\n\nextendPrototype([DynamicPropertyContainer], SVGGradientFillStyleData);\n\nfunction SVGGradientStrokeStyleData(elem, data, styleOb) {\n\tthis.initDynamicPropertyContainer(elem);\n\tthis.getValue = this.iterateDynamicProperties;\n\tthis.w = PropertyFactory.getProp(elem, data.w, 0, null, this);\n\tthis.d = new DashProperty(elem, data.d || {}, 'svg', this);\n\tthis.initGradientData(elem, data, styleOb);\n\tthis._isAnimated = !!this._isAnimated;\n}\n\nextendPrototype([SVGGradientFillStyleData, DynamicPropertyContainer], SVGGradientStrokeStyleData);\n\nfunction ShapeGroupData() {\n\tthis.it = [];\n\tthis.prevViewData = [];\n\tthis.gr = createNS('g');\n}\n\nfunction SVGTransformData(mProps, op, container) {\n\tthis.transform = {\n\t\tmProps: mProps,\n\t\top: op,\n\t\tcontainer: container,\n\t};\n\tthis.elements = [];\n\tthis._isAnimated = this.transform.mProps.dynamicProperties.length || this.transform.op.effectsSequence.length;\n}\n\nconst buildShapeString = function (pathNodes, length, closed, mat) {\n\tif (length === 0) {\n\t\treturn '';\n\t}\n\tvar _o = pathNodes.o;\n\tvar _i = pathNodes.i;\n\tvar _v = pathNodes.v;\n\tvar i;\n\tvar shapeString = ' M' + mat.applyToPointStringified(_v[0][0], _v[0][1]);\n\tfor (i = 1; i < length; i += 1) {\n\t\tshapeString += ' C' + mat.applyToPointStringified(_o[i - 1][0], _o[i - 1][1]) + ' ' + mat.applyToPointStringified(_i[i][0], _i[i][1]) + ' ' + mat.applyToPointStringified(_v[i][0], _v[i][1]);\n\t}\n\tif (closed && length) {\n\t\tshapeString += ' C' + mat.applyToPointStringified(_o[i - 1][0], _o[i - 1][1]) + ' ' + mat.applyToPointStringified(_i[0][0], _i[0][1]) + ' ' + mat.applyToPointStringified(_v[0][0], _v[0][1]);\n\t\tshapeString += 'z';\n\t}\n\treturn shapeString;\n};\n\nconst SVGElementsRenderer = (function () {\n\tvar _identityMatrix = new Matrix();\n\tvar _matrixHelper = new Matrix();\n\n\tvar ob = {\n\t\tcreateRenderFunction: createRenderFunction,\n\t};\n\n\tfunction createRenderFunction(data) {\n\t\tswitch (data.ty) {\n\t\t\tcase 'fl':\n\t\t\t\treturn renderFill;\n\t\t\tcase 'gf':\n\t\t\t\treturn renderGradient;\n\t\t\tcase 'gs':\n\t\t\t\treturn renderGradientStroke;\n\t\t\tcase 'st':\n\t\t\t\treturn renderStroke;\n\t\t\tcase 'sh':\n\t\t\tcase 'el':\n\t\t\tcase 'rc':\n\t\t\tcase 'sr':\n\t\t\t\treturn renderPath;\n\t\t\tcase 'tr':\n\t\t\t\treturn renderContentTransform;\n\t\t\tcase 'no':\n\t\t\t\treturn renderNoop;\n\t\t\tdefault:\n\t\t\t\treturn null;\n\t\t}\n\t}\n\n\tfunction renderContentTransform(styleData, itemData, isFirstFrame) {\n\t\tif (isFirstFrame || itemData.transform.op._mdf) {\n\t\t\titemData.transform.container.setAttribute('opacity', itemData.transform.op.v);\n\t\t}\n\t\tif (isFirstFrame || itemData.transform.mProps._mdf) {\n\t\t\titemData.transform.container.setAttribute('transform', itemData.transform.mProps.v.to2dCSS());\n\t\t}\n\t}\n\n\tfunction renderNoop() {\n\n\t}\n\n\tfunction renderPath(styleData, itemData, isFirstFrame) {\n\t\tvar j;\n\t\tvar jLen;\n\t\tvar pathStringTransformed;\n\t\tvar redraw;\n\t\tvar pathNodes;\n\t\tvar l;\n\t\tvar lLen = itemData.styles.length;\n\t\tvar lvl = itemData.lvl;\n\t\tvar paths;\n\t\tvar mat;\n\t\tvar props;\n\t\tvar iterations;\n\t\tvar k;\n\t\tfor (l = 0; l < lLen; l += 1) {\n\t\t\tredraw = itemData.sh._mdf || isFirstFrame;\n\t\t\tif (itemData.styles[l].lvl < lvl) {\n\t\t\t\tmat = _matrixHelper.reset();\n\t\t\t\titerations = lvl - itemData.styles[l].lvl;\n\t\t\t\tk = itemData.transformers.length - 1;\n\t\t\t\twhile (!redraw && iterations > 0) {\n\t\t\t\t\tredraw = itemData.transformers[k].mProps._mdf || redraw;\n\t\t\t\t\titerations -= 1;\n\t\t\t\t\tk -= 1;\n\t\t\t\t}\n\t\t\t\tif (redraw) {\n\t\t\t\t\titerations = lvl - itemData.styles[l].lvl;\n\t\t\t\t\tk = itemData.transformers.length - 1;\n\t\t\t\t\twhile (iterations > 0) {\n\t\t\t\t\t\tprops = itemData.transformers[k].mProps.v.props;\n\t\t\t\t\t\tmat.transform(props[0], props[1], props[2], props[3], props[4], props[5], props[6], props[7], props[8], props[9], props[10], props[11], props[12], props[13], props[14], props[15]);\n\t\t\t\t\t\titerations -= 1;\n\t\t\t\t\t\tk -= 1;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tmat = _identityMatrix;\n\t\t\t}\n\t\t\tpaths = itemData.sh.paths;\n\t\t\tjLen = paths._length;\n\t\t\tif (redraw) {\n\t\t\t\tpathStringTransformed = '';\n\t\t\t\tfor (j = 0; j < jLen; j += 1) {\n\t\t\t\t\tpathNodes = paths.shapes[j];\n\t\t\t\t\tif (pathNodes && pathNodes._length) {\n\t\t\t\t\t\tpathStringTransformed += buildShapeString(pathNodes, pathNodes._length, pathNodes.c, mat);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\titemData.caches[l] = pathStringTransformed;\n\t\t\t} else {\n\t\t\t\tpathStringTransformed = itemData.caches[l];\n\t\t\t}\n\t\t\titemData.styles[l].d += styleData.hd === true ? '' : pathStringTransformed;\n\t\t\titemData.styles[l]._mdf = redraw || itemData.styles[l]._mdf;\n\t\t}\n\t}\n\n\tfunction renderFill(styleData, itemData, isFirstFrame) {\n\t\tvar styleElem = itemData.style;\n\n\t\tif (itemData.c._mdf || isFirstFrame) {\n\t\t\tstyleElem.pElem.setAttribute('fill', 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')');\n\t\t}\n\t\tif (itemData.o._mdf || isFirstFrame) {\n\t\t\tstyleElem.pElem.setAttribute('fill-opacity', itemData.o.v);\n\t\t}\n\t}\n\n\tfunction renderGradientStroke(styleData, itemData, isFirstFrame) {\n\t\trenderGradient(styleData, itemData, isFirstFrame);\n\t\trenderStroke(styleData, itemData, isFirstFrame);\n\t}\n\n\tfunction renderGradient(styleData, itemData, isFirstFrame) {\n\t\tvar gfill = itemData.gf;\n\t\tvar hasOpacity = itemData.g._hasOpacity;\n\t\tvar pt1 = itemData.s.v;\n\t\tvar pt2 = itemData.e.v;\n\n\t\tif (itemData.o._mdf || isFirstFrame) {\n\t\t\tvar attr = styleData.ty === 'gf' ? 'fill-opacity' : 'stroke-opacity';\n\t\t\titemData.style.pElem.setAttribute(attr, itemData.o.v);\n\t\t}\n\t\tif (itemData.s._mdf || isFirstFrame) {\n\t\t\tvar attr1 = styleData.t === 1 ? 'x1' : 'cx';\n\t\t\tvar attr2 = attr1 === 'x1' ? 'y1' : 'cy';\n\t\t\tgfill.setAttribute(attr1, pt1[0]);\n\t\t\tgfill.setAttribute(attr2, pt1[1]);\n\t\t\tif (hasOpacity && !itemData.g._collapsable) {\n\t\t\t\titemData.of.setAttribute(attr1, pt1[0]);\n\t\t\t\titemData.of.setAttribute(attr2, pt1[1]);\n\t\t\t}\n\t\t}\n\t\tvar stops;\n\t\tvar i;\n\t\tvar len;\n\t\tvar stop;\n\t\tif (itemData.g._cmdf || isFirstFrame) {\n\t\t\tstops = itemData.cst;\n\t\t\tvar cValues = itemData.g.c;\n\t\t\tlen = stops.length;\n\t\t\tfor (i = 0; i < len; i += 1) {\n\t\t\t\tstop = stops[i];\n\t\t\t\tstop.setAttribute('offset', cValues[i * 4] + '%');\n\t\t\t\tstop.setAttribute('stop-color', 'rgb(' + cValues[i * 4 + 1] + ',' + cValues[i * 4 + 2] + ',' + cValues[i * 4 + 3] + ')');\n\t\t\t}\n\t\t}\n\t\tif (hasOpacity && (itemData.g._omdf || isFirstFrame)) {\n\t\t\tvar oValues = itemData.g.o;\n\t\t\tif (itemData.g._collapsable) {\n\t\t\t\tstops = itemData.cst;\n\t\t\t} else {\n\t\t\t\tstops = itemData.ost;\n\t\t\t}\n\t\t\tlen = stops.length;\n\t\t\tfor (i = 0; i < len; i += 1) {\n\t\t\t\tstop = stops[i];\n\t\t\t\tif (!itemData.g._collapsable) {\n\t\t\t\t\tstop.setAttribute('offset', oValues[i * 2] + '%');\n\t\t\t\t}\n\t\t\t\tstop.setAttribute('stop-opacity', oValues[i * 2 + 1]);\n\t\t\t}\n\t\t}\n\t\tif (styleData.t === 1) {\n\t\t\tif (itemData.e._mdf || isFirstFrame) {\n\t\t\t\tgfill.setAttribute('x2', pt2[0]);\n\t\t\t\tgfill.setAttribute('y2', pt2[1]);\n\t\t\t\tif (hasOpacity && !itemData.g._collapsable) {\n\t\t\t\t\titemData.of.setAttribute('x2', pt2[0]);\n\t\t\t\t\titemData.of.setAttribute('y2', pt2[1]);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tvar rad;\n\t\t\tif (itemData.s._mdf || itemData.e._mdf || isFirstFrame) {\n\t\t\t\trad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n\t\t\t\tgfill.setAttribute('r', rad);\n\t\t\t\tif (hasOpacity && !itemData.g._collapsable) {\n\t\t\t\t\titemData.of.setAttribute('r', rad);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (itemData.e._mdf || itemData.h._mdf || itemData.a._mdf || isFirstFrame) {\n\t\t\t\tif (!rad) {\n\t\t\t\t\trad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n\t\t\t\t}\n\t\t\t\tvar ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);\n\n\t\t\t\tvar percent = itemData.h.v;\n\t\t\t\tif (percent >= 1) {\n\t\t\t\t\tpercent = 0.99;\n\t\t\t\t} else if (percent <= -1) {\n\t\t\t\t\tpercent = -0.99;\n\t\t\t\t}\n\t\t\t\tvar dist = rad * percent;\n\t\t\t\tvar x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\n\t\t\t\tvar y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\n\t\t\t\tgfill.setAttribute('fx', x);\n\t\t\t\tgfill.setAttribute('fy', y);\n\t\t\t\tif (hasOpacity && !itemData.g._collapsable) {\n\t\t\t\t\titemData.of.setAttribute('fx', x);\n\t\t\t\t\titemData.of.setAttribute('fy', y);\n\t\t\t\t}\n\t\t\t}\n\t\t\t// gfill.setAttribute('fy','200');\n\t\t}\n\t}\n\n\tfunction renderStroke(styleData, itemData, isFirstFrame) {\n\t\tvar styleElem = itemData.style;\n\t\tvar d = itemData.d;\n\t\tif (d && (d._mdf || isFirstFrame) && d.dashStr) {\n\t\t\tstyleElem.pElem.setAttribute('stroke-dasharray', d.dashStr);\n\t\t\tstyleElem.pElem.setAttribute('stroke-dashoffset', d.dashoffset[0]);\n\t\t}\n\t\tif (itemData.c && (itemData.c._mdf || isFirstFrame)) {\n\t\t\tstyleElem.pElem.setAttribute('stroke', 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')');\n\t\t}\n\t\tif (itemData.o._mdf || isFirstFrame) {\n\t\t\tstyleElem.pElem.setAttribute('stroke-opacity', itemData.o.v);\n\t\t}\n\t\tif (itemData.w._mdf || isFirstFrame) {\n\t\t\tstyleElem.pElem.setAttribute('stroke-width', itemData.w.v);\n\t\t\tif (styleElem.msElem) {\n\t\t\t\tstyleElem.msElem.setAttribute('stroke-width', itemData.w.v);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn ob;\n}());\n\nfunction SVGShapeElement(data, globalData, comp) {\n\t// List of drawable elements\n\tthis.shapes = [];\n\t// Full shape data\n\tthis.shapesData = data.shapes;\n\t// List of styles that will be applied to shapes\n\tthis.stylesList = [];\n\t// List of modifiers that will be applied to shapes\n\tthis.shapeModifiers = [];\n\t// List of items in shape tree\n\tthis.itemsData = [];\n\t// List of items in previous shape tree\n\tthis.processedElements = [];\n\t// List of animated components\n\tthis.animatedContents = [];\n\tthis.initElement(data, globalData, comp);\n\t// Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n\t// List of elements that have been created\n\tthis.prevViewData = [];\n\t// Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n}\n\nextendPrototype([BaseElement, TransformElement, SVGBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableDOMElement], SVGShapeElement);\n\nSVGShapeElement.prototype.initSecondaryElement = function () {\n};\n\nSVGShapeElement.prototype.identityMatrix = new Matrix();\n\nSVGShapeElement.prototype.buildExpressionInterface = function () {};\n\nSVGShapeElement.prototype.createContent = function () {\n\tthis.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.layerElement, 0, [], true);\n\tthis.filterUniqueShapes();\n};\n\n/*\nThis method searches for multiple shapes that affect a single element and one of them is animated\n*/\nSVGShapeElement.prototype.filterUniqueShapes = function () {\n\tvar i;\n\tvar len = this.shapes.length;\n\tvar shape;\n\tvar j;\n\tvar jLen = this.stylesList.length;\n\tvar style;\n\tvar tempShapes = [];\n\tvar areAnimated = false;\n\tfor (j = 0; j < jLen; j += 1) {\n\t\tstyle = this.stylesList[j];\n\t\tareAnimated = false;\n\t\ttempShapes.length = 0;\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tshape = this.shapes[i];\n\t\t\tif (shape.styles.indexOf(style) !== -1) {\n\t\t\t\ttempShapes.push(shape);\n\t\t\t\tareAnimated = shape._isAnimated || areAnimated;\n\t\t\t}\n\t\t}\n\t\tif (tempShapes.length > 1 && areAnimated) {\n\t\t\tthis.setShapesAsAnimated(tempShapes);\n\t\t}\n\t}\n};\n\nSVGShapeElement.prototype.setShapesAsAnimated = function (shapes) {\n\tvar i;\n\tvar len = shapes.length;\n\tfor (i = 0; i < len; i += 1) {\n\t\tshapes[i].setAsAnimated();\n\t}\n};\n\nSVGShapeElement.prototype.createStyleElement = function (data, level) {\n\t// TODO: prevent drawing of hidden styles\n\tvar elementData;\n\tvar styleOb = new SVGStyleData(data, level);\n\n\tvar pathElement = styleOb.pElem;\n\tif (data.ty === 'st') {\n\t\telementData = new SVGStrokeStyleData(this, data, styleOb);\n\t} else if (data.ty === 'fl') {\n\t\telementData = new SVGFillStyleData(this, data, styleOb);\n\t} else if (data.ty === 'gf' || data.ty === 'gs') {\n\t\tvar GradientConstructor = data.ty === 'gf' ? SVGGradientFillStyleData : SVGGradientStrokeStyleData;\n\t\telementData = new GradientConstructor(this, data, styleOb);\n\t\tthis.globalData.defs.appendChild(elementData.gf);\n\t\tif (elementData.maskId) {\n\t\t\tthis.globalData.defs.appendChild(elementData.ms);\n\t\t\tthis.globalData.defs.appendChild(elementData.of);\n\t\t\tpathElement.setAttribute('mask', 'url(' + getLocationHref() + '#' + elementData.maskId + ')');\n\t\t}\n\t} else if (data.ty === 'no') {\n\t\telementData = new SVGNoStyleData(this, data, styleOb);\n\t}\n\n\tif (data.ty === 'st' || data.ty === 'gs') {\n\t\tpathElement.setAttribute('stroke-linecap', lineCapEnum[data.lc || 2]);\n\t\tpathElement.setAttribute('stroke-linejoin', lineJoinEnum[data.lj || 2]);\n\t\tpathElement.setAttribute('fill-opacity', '0');\n\t\tif (data.lj === 1) {\n\t\t\tpathElement.setAttribute('stroke-miterlimit', data.ml);\n\t\t}\n\t}\n\n\tif (data.r === 2) {\n\t\tpathElement.setAttribute('fill-rule', 'evenodd');\n\t}\n\n\tif (data.ln) {\n\t\tpathElement.setAttribute('id', data.ln);\n\t}\n\tif (data.cl) {\n\t\tpathElement.setAttribute('class', data.cl);\n\t}\n\tif (data.bm) {\n\t\tpathElement.style['mix-blend-mode'] = getBlendMode(data.bm);\n\t}\n\tthis.stylesList.push(styleOb);\n\tthis.addToAnimatedContents(data, elementData);\n\treturn elementData;\n};\n\nSVGShapeElement.prototype.createGroupElement = function (data) {\n\tvar elementData = new ShapeGroupData();\n\tif (data.ln) {\n\t\telementData.gr.setAttribute('id', data.ln);\n\t}\n\tif (data.cl) {\n\t\telementData.gr.setAttribute('class', data.cl);\n\t}\n\tif (data.bm) {\n\t\telementData.gr.style['mix-blend-mode'] = getBlendMode(data.bm);\n\t}\n\treturn elementData;\n};\n\nSVGShapeElement.prototype.createTransformElement = function (data, container) {\n\tvar transformProperty = TransformPropertyFactory.getTransformProperty(this, data, this);\n\tvar elementData = new SVGTransformData(transformProperty, transformProperty.o, container);\n\tthis.addToAnimatedContents(data, elementData);\n\treturn elementData;\n};\n\nSVGShapeElement.prototype.createShapeElement = function (data, ownTransformers, level) {\n\tvar ty = 4;\n\tif (data.ty === 'rc') {\n\t\tty = 5;\n\t} else if (data.ty === 'el') {\n\t\tty = 6;\n\t} else if (data.ty === 'sr') {\n\t\tty = 7;\n\t}\n\tvar shapeProperty = ShapePropertyFactory.getShapeProp(this, data, ty, this);\n\tvar elementData = new SVGShapeData(ownTransformers, level, shapeProperty);\n\tthis.shapes.push(elementData);\n\tthis.addShapeToModifiers(elementData);\n\tthis.addToAnimatedContents(data, elementData);\n\treturn elementData;\n};\n\nSVGShapeElement.prototype.addToAnimatedContents = function (data, element) {\n\tvar i = 0;\n\tvar len = this.animatedContents.length;\n\twhile (i < len) {\n\t\tif (this.animatedContents[i].element === element) {\n\t\t\treturn;\n\t\t}\n\t\ti += 1;\n\t}\n\tthis.animatedContents.push({\n\t\tfn: SVGElementsRenderer.createRenderFunction(data),\n\t\telement: element,\n\t\tdata: data,\n\t});\n};\n\nSVGShapeElement.prototype.setElementStyles = function (elementData) {\n\tvar arr = elementData.styles;\n\tvar j;\n\tvar jLen = this.stylesList.length;\n\tfor (j = 0; j < jLen; j += 1) {\n\t\tif (!this.stylesList[j].closed) {\n\t\t\tarr.push(this.stylesList[j]);\n\t\t}\n\t}\n};\n\nSVGShapeElement.prototype.reloadShapes = function () {\n\tthis._isFirstFrame = true;\n\tvar i;\n\tvar len = this.itemsData.length;\n\tfor (i = 0; i < len; i += 1) {\n\t\tthis.prevViewData[i] = this.itemsData[i];\n\t}\n\tthis.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.layerElement, 0, [], true);\n\tthis.filterUniqueShapes();\n\tlen = this.dynamicProperties.length;\n\tfor (i = 0; i < len; i += 1) {\n\t\tthis.dynamicProperties[i].getValue();\n\t}\n\tthis.renderModifiers();\n};\n\nSVGShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, container, level, transformers, render) {\n\tvar ownTransformers = [].concat(transformers);\n\tvar i;\n\tvar len = arr.length - 1;\n\tvar j;\n\tvar jLen;\n\tvar ownStyles = [];\n\tvar ownModifiers = [];\n\tvar currentTransform;\n\tvar modifier;\n\tvar processedPos;\n\tfor (i = len; i >= 0; i -= 1) {\n\t\tprocessedPos = this.searchProcessedElement(arr[i]);\n\t\tif (!processedPos) {\n\t\t\tarr[i]._render = render;\n\t\t} else {\n\t\t\titemsData[i] = prevViewData[processedPos - 1];\n\t\t}\n\t\tif (arr[i].ty === 'fl' || arr[i].ty === 'st' || arr[i].ty === 'gf' || arr[i].ty === 'gs' || arr[i].ty === 'no') {\n\t\t\tif (!processedPos) {\n\t\t\t\titemsData[i] = this.createStyleElement(arr[i], level);\n\t\t\t} else {\n\t\t\t\titemsData[i].style.closed = false;\n\t\t\t}\n\t\t\tif (arr[i]._render) {\n\t\t\t\tif (itemsData[i].style.pElem.parentNode !== container) {\n\t\t\t\t\tcontainer.appendChild(itemsData[i].style.pElem);\n\t\t\t\t}\n\t\t\t}\n\t\t\townStyles.push(itemsData[i].style);\n\t\t} else if (arr[i].ty === 'gr') {\n\t\t\tif (!processedPos) {\n\t\t\t\titemsData[i] = this.createGroupElement(arr[i]);\n\t\t\t} else {\n\t\t\t\tjLen = itemsData[i].it.length;\n\t\t\t\tfor (j = 0; j < jLen; j += 1) {\n\t\t\t\t\titemsData[i].prevViewData[j] = itemsData[i].it[j];\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.searchShapes(arr[i].it, itemsData[i].it, itemsData[i].prevViewData, itemsData[i].gr, level + 1, ownTransformers, render);\n\t\t\tif (arr[i]._render) {\n\t\t\t\tif (itemsData[i].gr.parentNode !== container) {\n\t\t\t\t\tcontainer.appendChild(itemsData[i].gr);\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (arr[i].ty === 'tr') {\n\t\t\tif (!processedPos) {\n\t\t\t\titemsData[i] = this.createTransformElement(arr[i], container);\n\t\t\t}\n\t\t\tcurrentTransform = itemsData[i].transform;\n\t\t\townTransformers.push(currentTransform);\n\t\t} else if (arr[i].ty === 'sh' || arr[i].ty === 'rc' || arr[i].ty === 'el' || arr[i].ty === 'sr') {\n\t\t\tif (!processedPos) {\n\t\t\t\titemsData[i] = this.createShapeElement(arr[i], ownTransformers, level);\n\t\t\t}\n\t\t\tthis.setElementStyles(itemsData[i]);\n\t\t} else if (arr[i].ty === 'tm' || arr[i].ty === 'rd' || arr[i].ty === 'ms' || arr[i].ty === 'pb') {\n\t\t\tif (!processedPos) {\n\t\t\t\tmodifier = ShapeModifiers.getModifier(arr[i].ty);\n\t\t\t\tmodifier.init(this, arr[i]);\n\t\t\t\titemsData[i] = modifier;\n\t\t\t\tthis.shapeModifiers.push(modifier);\n\t\t\t} else {\n\t\t\t\tmodifier = itemsData[i];\n\t\t\t\tmodifier.closed = false;\n\t\t\t}\n\t\t\townModifiers.push(modifier);\n\t\t} else if (arr[i].ty === 'rp') {\n\t\t\tif (!processedPos) {\n\t\t\t\tmodifier = ShapeModifiers.getModifier(arr[i].ty);\n\t\t\t\titemsData[i] = modifier;\n\t\t\t\tmodifier.init(this, arr, i, itemsData);\n\t\t\t\tthis.shapeModifiers.push(modifier);\n\t\t\t\trender = false;\n\t\t\t} else {\n\t\t\t\tmodifier = itemsData[i];\n\t\t\t\tmodifier.closed = true;\n\t\t\t}\n\t\t\townModifiers.push(modifier);\n\t\t}\n\t\tthis.addProcessedElement(arr[i], i + 1);\n\t}\n\tlen = ownStyles.length;\n\tfor (i = 0; i < len; i += 1) {\n\t\townStyles[i].closed = true;\n\t}\n\tlen = ownModifiers.length;\n\tfor (i = 0; i < len; i += 1) {\n\t\townModifiers[i].closed = true;\n\t}\n};\n\nSVGShapeElement.prototype.renderInnerContent = function () {\n\tthis.renderModifiers();\n\tvar i;\n\tvar len = this.stylesList.length;\n\tfor (i = 0; i < len; i += 1) {\n\t\tthis.stylesList[i].reset();\n\t}\n\tthis.renderShape();\n\tfor (i = 0; i < len; i += 1) {\n\t\tif (this.stylesList[i]._mdf || this._isFirstFrame) {\n\t\t\tif (this.stylesList[i].msElem) {\n\t\t\t\tthis.stylesList[i].msElem.setAttribute('d', this.stylesList[i].d);\n\t\t\t\t// Adding M0 0 fixes same mask bug on all browsers\n\t\t\t\tthis.stylesList[i].d = 'M0 0' + this.stylesList[i].d;\n\t\t\t}\n\t\t\tthis.stylesList[i].pElem.setAttribute('d', this.stylesList[i].d || 'M0 0');\n\t\t}\n\t}\n};\n\nSVGShapeElement.prototype.renderShape = function () {\n\tvar i;\n\tvar len = this.animatedContents.length;\n\tvar animatedContent;\n\tfor (i = 0; i < len; i += 1) {\n\t\tanimatedContent = this.animatedContents[i];\n\t\tif ((this._isFirstFrame || animatedContent.element._isAnimated) && animatedContent.data !== true) {\n\t\t\tanimatedContent.fn(animatedContent.data, animatedContent.element, this._isFirstFrame);\n\t\t}\n\t}\n};\n\nSVGShapeElement.prototype.destroy = function () {\n\tthis.destroyBaseElement();\n\tthis.shapesData = null;\n\tthis.itemsData = null;\n};\n\nfunction LetterProps(o, sw, sc, fc, m, p) {\n\tthis.o = o;\n\tthis.sw = sw;\n\tthis.sc = sc;\n\tthis.fc = fc;\n\tthis.m = m;\n\tthis.p = p;\n\tthis._mdf = {\n\t\to: true,\n\t\tsw: !!sw,\n\t\tsc: !!sc,\n\t\tfc: !!fc,\n\t\tm: true,\n\t\tp: true,\n\t};\n}\n\nLetterProps.prototype.update = function (o, sw, sc, fc, m, p) {\n\tthis._mdf.o = false;\n\tthis._mdf.sw = false;\n\tthis._mdf.sc = false;\n\tthis._mdf.fc = false;\n\tthis._mdf.m = false;\n\tthis._mdf.p = false;\n\tvar updated = false;\n\n\tif (this.o !== o) {\n\t\tthis.o = o;\n\t\tthis._mdf.o = true;\n\t\tupdated = true;\n\t}\n\tif (this.sw !== sw) {\n\t\tthis.sw = sw;\n\t\tthis._mdf.sw = true;\n\t\tupdated = true;\n\t}\n\tif (this.sc !== sc) {\n\t\tthis.sc = sc;\n\t\tthis._mdf.sc = true;\n\t\tupdated = true;\n\t}\n\tif (this.fc !== fc) {\n\t\tthis.fc = fc;\n\t\tthis._mdf.fc = true;\n\t\tupdated = true;\n\t}\n\tif (this.m !== m) {\n\t\tthis.m = m;\n\t\tthis._mdf.m = true;\n\t\tupdated = true;\n\t}\n\tif (p.length && (this.p[0] !== p[0] || this.p[1] !== p[1] || this.p[4] !== p[4] || this.p[5] !== p[5] || this.p[12] !== p[12] || this.p[13] !== p[13])) {\n\t\tthis.p = p;\n\t\tthis._mdf.p = true;\n\t\tupdated = true;\n\t}\n\treturn updated;\n};\n\nfunction TextProperty(elem, data) {\n\tthis._frameId = initialDefaultFrame;\n\tthis.pv = '';\n\tthis.v = '';\n\tthis.kf = false;\n\tthis._isFirstFrame = true;\n\tthis._mdf = false;\n\tthis.data = data;\n\tthis.elem = elem;\n\tthis.comp = this.elem.comp;\n\tthis.keysIndex = 0;\n\tthis.canResize = false;\n\tthis.minimumFontSize = 1;\n\tthis.effectsSequence = [];\n\tthis.currentData = {\n\t\tascent: 0,\n\t\tboxWidth: this.defaultBoxWidth,\n\t\tf: '',\n\t\tfStyle: '',\n\t\tfWeight: '',\n\t\tfc: '',\n\t\tj: '',\n\t\tjustifyOffset: '',\n\t\tl: [],\n\t\tlh: 0,\n\t\tlineWidths: [],\n\t\tls: '',\n\t\tof: '',\n\t\ts: '',\n\t\tsc: '',\n\t\tsw: 0,\n\t\tt: 0,\n\t\ttr: 0,\n\t\tsz: 0,\n\t\tps: null,\n\t\tfillColorAnim: false,\n\t\tstrokeColorAnim: false,\n\t\tstrokeWidthAnim: false,\n\t\tyOffset: 0,\n\t\tfinalSize: 0,\n\t\tfinalText: [],\n\t\tfinalLineHeight: 0,\n\t\t__complete: false,\n\n\t};\n\tthis.copyData(this.currentData, this.data.d.k[0].s);\n\n\tif (!this.searchProperty()) {\n\t\tthis.completeTextData(this.currentData);\n\t}\n}\n\nTextProperty.prototype.defaultBoxWidth = [0, 0];\n\nTextProperty.prototype.copyData = function (obj, data) {\n\tfor (var s in data) {\n\t\tif (Object.prototype.hasOwnProperty.call(data, s)) {\n\t\t\tobj[s] = data[s];\n\t\t}\n\t}\n\treturn obj;\n};\n\nTextProperty.prototype.setCurrentData = function (data) {\n\tif (!data.__complete) {\n\t\tthis.completeTextData(data);\n\t}\n\tthis.currentData = data;\n\tthis.currentData.boxWidth = this.currentData.boxWidth || this.defaultBoxWidth;\n\tthis._mdf = true;\n};\n\nTextProperty.prototype.searchProperty = function () {\n\treturn this.searchKeyframes();\n};\n\nTextProperty.prototype.searchKeyframes = function () {\n\tthis.kf = this.data.d.k.length > 1;\n\tif (this.kf) {\n\t\tthis.addEffect(this.getKeyframeValue.bind(this));\n\t}\n\treturn this.kf;\n};\n\nTextProperty.prototype.addEffect = function (effectFunction) {\n\tthis.effectsSequence.push(effectFunction);\n\tthis.elem.addDynamicProperty(this);\n};\n\nTextProperty.prototype.getValue = function (_finalValue) {\n\tif ((this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) && !_finalValue) {\n\t\treturn;\n\t}\n\tthis.currentData.t = this.data.d.k[this.keysIndex].s.t;\n\tvar currentValue = this.currentData;\n\tvar currentIndex = this.keysIndex;\n\tif (this.lock) {\n\t\tthis.setCurrentData(this.currentData);\n\t\treturn;\n\t}\n\tthis.lock = true;\n\tthis._mdf = false;\n\tvar i; var\n\t\tlen = this.effectsSequence.length;\n\tvar finalValue = _finalValue || this.data.d.k[this.keysIndex].s;\n\tfor (i = 0; i < len; i += 1) {\n\t\t// Checking if index changed to prevent creating a new object every time the expression updates.\n\t\tif (currentIndex !== this.keysIndex) {\n\t\t\tfinalValue = this.effectsSequence[i](finalValue, finalValue.t);\n\t\t} else {\n\t\t\tfinalValue = this.effectsSequence[i](this.currentData, finalValue.t);\n\t\t}\n\t}\n\tif (currentValue !== finalValue) {\n\t\tthis.setCurrentData(finalValue);\n\t}\n\tthis.v = this.currentData;\n\tthis.pv = this.v;\n\tthis.lock = false;\n\tthis.frameId = this.elem.globalData.frameId;\n};\n\nTextProperty.prototype.getKeyframeValue = function () {\n\tvar textKeys = this.data.d.k;\n\tvar frameNum = this.elem.comp.renderedFrame;\n\tvar i = 0; var\n\t\tlen = textKeys.length;\n\twhile (i <= len - 1) {\n\t\tif (i === len - 1 || textKeys[i + 1].t > frameNum) {\n\t\t\tbreak;\n\t\t}\n\t\ti += 1;\n\t}\n\tif (this.keysIndex !== i) {\n\t\tthis.keysIndex = i;\n\t}\n\treturn this.data.d.k[this.keysIndex].s;\n};\n\nTextProperty.prototype.buildFinalText = function (text) {\n\tvar charactersArray = [];\n\tvar i = 0;\n\tvar len = text.length;\n\tvar charCode;\n\tvar secondCharCode;\n\tvar shouldCombine = false;\n\twhile (i < len) {\n\t\tcharCode = text.charCodeAt(i);\n\t\tif (FontManager.isCombinedCharacter(charCode)) {\n\t\t\tcharactersArray[charactersArray.length - 1] += text.charAt(i);\n\t\t} else if (charCode >= 0xD800 && charCode <= 0xDBFF) {\n\t\t\tsecondCharCode = text.charCodeAt(i + 1);\n\t\t\tif (secondCharCode >= 0xDC00 && secondCharCode <= 0xDFFF) {\n\t\t\t\tif (shouldCombine || FontManager.isModifier(charCode, secondCharCode)) {\n\t\t\t\t\tcharactersArray[charactersArray.length - 1] += text.substr(i, 2);\n\t\t\t\t\tshouldCombine = false;\n\t\t\t\t} else {\n\t\t\t\t\tcharactersArray.push(text.substr(i, 2));\n\t\t\t\t}\n\t\t\t\ti += 1;\n\t\t\t} else {\n\t\t\t\tcharactersArray.push(text.charAt(i));\n\t\t\t}\n\t\t} else if (charCode > 0xDBFF) {\n\t\t\tsecondCharCode = text.charCodeAt(i + 1);\n\t\t\tif (FontManager.isZeroWidthJoiner(charCode, secondCharCode)) {\n\t\t\t\tshouldCombine = true;\n\t\t\t\tcharactersArray[charactersArray.length - 1] += text.substr(i, 2);\n\t\t\t\ti += 1;\n\t\t\t} else {\n\t\t\t\tcharactersArray.push(text.charAt(i));\n\t\t\t}\n\t\t} else if (FontManager.isZeroWidthJoiner(charCode)) {\n\t\t\tcharactersArray[charactersArray.length - 1] += text.charAt(i);\n\t\t\tshouldCombine = true;\n\t\t} else {\n\t\t\tcharactersArray.push(text.charAt(i));\n\t\t}\n\t\ti += 1;\n\t}\n\treturn charactersArray;\n};\n\nTextProperty.prototype.completeTextData = function (documentData) {\n\tdocumentData.__complete = true;\n\tvar fontManager = this.elem.globalData.fontManager;\n\tvar data = this.data;\n\tvar letters = [];\n\tvar i; var\n\t\tlen;\n\tvar newLineFlag; var index = 0; var\n\t\tval;\n\tvar anchorGrouping = data.m.g;\n\tvar currentSize = 0; var currentPos = 0; var currentLine = 0; var\n\t\tlineWidths = [];\n\tvar lineWidth = 0;\n\tvar maxLineWidth = 0;\n\tvar j; var\n\t\tjLen;\n\tvar fontData = fontManager.getFontByName(documentData.f);\n\tvar charData; var\n\t\tcLength = 0;\n\n\tvar fontProps = getFontProperties(fontData);\n\tdocumentData.fWeight = fontProps.weight;\n\tdocumentData.fStyle = fontProps.style;\n\tdocumentData.finalSize = documentData.s;\n\tdocumentData.finalText = this.buildFinalText(documentData.t);\n\tlen = documentData.finalText.length;\n\tdocumentData.finalLineHeight = documentData.lh;\n\tvar trackingOffset = (documentData.tr / 1000) * documentData.finalSize;\n\tvar charCode;\n\tif (documentData.sz) {\n\t\tvar flag = true;\n\t\tvar boxWidth = documentData.sz[0];\n\t\tvar boxHeight = documentData.sz[1];\n\t\tvar currentHeight; var\n\t\t\tfinalText;\n\t\twhile (flag) {\n\t\t\tfinalText = this.buildFinalText(documentData.t);\n\t\t\tcurrentHeight = 0;\n\t\t\tlineWidth = 0;\n\t\t\tlen = finalText.length;\n\t\t\ttrackingOffset = (documentData.tr / 1000) * documentData.finalSize;\n\t\t\tvar lastSpaceIndex = -1;\n\t\t\tfor (i = 0; i < len; i += 1) {\n\t\t\t\tcharCode = finalText[i].charCodeAt(0);\n\t\t\t\tnewLineFlag = false;\n\t\t\t\tif (finalText[i] === ' ') {\n\t\t\t\t\tlastSpaceIndex = i;\n\t\t\t\t} else if (charCode === 13 || charCode === 3) {\n\t\t\t\t\tlineWidth = 0;\n\t\t\t\t\tnewLineFlag = true;\n\t\t\t\t\tcurrentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\n\t\t\t\t}\n\t\t\t\tif (fontManager.chars) {\n\t\t\t\t\tcharData = fontManager.getCharData(finalText[i], fontData.fStyle, fontData.fFamily);\n\t\t\t\t\tcLength = newLineFlag ? 0 : (charData.w * documentData.finalSize) / 100;\n\t\t\t\t} else {\n\t\t\t\t\t// tCanvasHelper.font = documentData.s + 'px '+ fontData.fFamily;\n\t\t\t\t\tcLength = fontManager.measureText(finalText[i], documentData.f, documentData.finalSize);\n\t\t\t\t}\n\t\t\t\tif (lineWidth + cLength > boxWidth && finalText[i] !== ' ') {\n\t\t\t\t\tif (lastSpaceIndex === -1) {\n\t\t\t\t\t\tlen += 1;\n\t\t\t\t\t} else {\n\t\t\t\t\t\ti = lastSpaceIndex;\n\t\t\t\t\t}\n\t\t\t\t\tcurrentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\n\t\t\t\t\tfinalText.splice(i, lastSpaceIndex === i ? 1 : 0, '\\r');\n\t\t\t\t\t// finalText = finalText.substr(0,i) + \"\\r\" + finalText.substr(i === lastSpaceIndex ? i + 1 : i);\n\t\t\t\t\tlastSpaceIndex = -1;\n\t\t\t\t\tlineWidth = 0;\n\t\t\t\t} else {\n\t\t\t\t\tlineWidth += cLength;\n\t\t\t\t\tlineWidth += trackingOffset;\n\t\t\t\t}\n\t\t\t}\n\t\t\tcurrentHeight += (fontData.ascent * documentData.finalSize) / 100;\n\t\t\tif (this.canResize && documentData.finalSize > this.minimumFontSize && boxHeight < currentHeight) {\n\t\t\t\tdocumentData.finalSize -= 1;\n\t\t\t\tdocumentData.finalLineHeight = (documentData.finalSize * documentData.lh) / documentData.s;\n\t\t\t} else {\n\t\t\t\tdocumentData.finalText = finalText;\n\t\t\t\tlen = documentData.finalText.length;\n\t\t\t\tflag = false;\n\t\t\t}\n\t\t}\n\t}\n\tlineWidth = -trackingOffset;\n\tcLength = 0;\n\tvar uncollapsedSpaces = 0;\n\tvar currentChar;\n\tfor (i = 0; i < len; i += 1) {\n\t\tnewLineFlag = false;\n\t\tcurrentChar = documentData.finalText[i];\n\t\tcharCode = currentChar.charCodeAt(0);\n\t\tif (charCode === 13 || charCode === 3) {\n\t\t\tuncollapsedSpaces = 0;\n\t\t\tlineWidths.push(lineWidth);\n\t\t\tmaxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\n\t\t\tlineWidth = -2 * trackingOffset;\n\t\t\tval = '';\n\t\t\tnewLineFlag = true;\n\t\t\tcurrentLine += 1;\n\t\t} else {\n\t\t\tval = currentChar;\n\t\t}\n\t\tif (fontManager.chars) {\n\t\t\tcharData = fontManager.getCharData(currentChar, fontData.fStyle, fontManager.getFontByName(documentData.f).fFamily);\n\t\t\tcLength = newLineFlag ? 0 : (charData.w * documentData.finalSize) / 100;\n\t\t} else {\n\t\t\t// var charWidth = fontManager.measureText(val, documentData.f, documentData.finalSize);\n\t\t\t// tCanvasHelper.font = documentData.finalSize + 'px '+ fontManager.getFontByName(documentData.f).fFamily;\n\t\t\tcLength = fontManager.measureText(val, documentData.f, documentData.finalSize);\n\t\t}\n\n\t\t//\n\t\tif (currentChar === ' ') {\n\t\t\tuncollapsedSpaces += cLength + trackingOffset;\n\t\t} else {\n\t\t\tlineWidth += cLength + trackingOffset + uncollapsedSpaces;\n\t\t\tuncollapsedSpaces = 0;\n\t\t}\n\t\tletters.push({\n\t\t\tl: cLength, an: cLength, add: currentSize, n: newLineFlag, anIndexes: [], val: val, line: currentLine, animatorJustifyOffset: 0,\n\t\t});\n\t\tif (anchorGrouping == 2) { // eslint-disable-line eqeqeq\n\t\t\tcurrentSize += cLength;\n\t\t\tif (val === '' || val === ' ' || i === len - 1) {\n\t\t\t\tif (val === '' || val === ' ') {\n\t\t\t\t\tcurrentSize -= cLength;\n\t\t\t\t}\n\t\t\t\twhile (currentPos <= i) {\n\t\t\t\t\tletters[currentPos].an = currentSize;\n\t\t\t\t\tletters[currentPos].ind = index;\n\t\t\t\t\tletters[currentPos].extra = cLength;\n\t\t\t\t\tcurrentPos += 1;\n\t\t\t\t}\n\t\t\t\tindex += 1;\n\t\t\t\tcurrentSize = 0;\n\t\t\t}\n\t\t} else if (anchorGrouping == 3) { // eslint-disable-line eqeqeq\n\t\t\tcurrentSize += cLength;\n\t\t\tif (val === '' || i === len - 1) {\n\t\t\t\tif (val === '') {\n\t\t\t\t\tcurrentSize -= cLength;\n\t\t\t\t}\n\t\t\t\twhile (currentPos <= i) {\n\t\t\t\t\tletters[currentPos].an = currentSize;\n\t\t\t\t\tletters[currentPos].ind = index;\n\t\t\t\t\tletters[currentPos].extra = cLength;\n\t\t\t\t\tcurrentPos += 1;\n\t\t\t\t}\n\t\t\t\tcurrentSize = 0;\n\t\t\t\tindex += 1;\n\t\t\t}\n\t\t} else {\n\t\t\tletters[index].ind = index;\n\t\t\tletters[index].extra = 0;\n\t\t\tindex += 1;\n\t\t}\n\t}\n\tdocumentData.l = letters;\n\tmaxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\n\tlineWidths.push(lineWidth);\n\tif (documentData.sz) {\n\t\tdocumentData.boxWidth = documentData.sz[0];\n\t\tdocumentData.justifyOffset = 0;\n\t} else {\n\t\tdocumentData.boxWidth = maxLineWidth;\n\t\tswitch (documentData.j) {\n\t\t\tcase 1:\n\t\t\t\tdocumentData.justifyOffset = -documentData.boxWidth;\n\t\t\t\tbreak;\n\t\t\tcase 2:\n\t\t\t\tdocumentData.justifyOffset = -documentData.boxWidth / 2;\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tdocumentData.justifyOffset = 0;\n\t\t}\n\t}\n\tdocumentData.lineWidths = lineWidths;\n\n\tvar animators = data.a; var animatorData; var\n\t\tletterData;\n\tjLen = animators.length;\n\tvar based; var ind; var\n\t\tindexes = [];\n\tfor (j = 0; j < jLen; j += 1) {\n\t\tanimatorData = animators[j];\n\t\tif (animatorData.a.sc) {\n\t\t\tdocumentData.strokeColorAnim = true;\n\t\t}\n\t\tif (animatorData.a.sw) {\n\t\t\tdocumentData.strokeWidthAnim = true;\n\t\t}\n\t\tif (animatorData.a.fc || animatorData.a.fh || animatorData.a.fs || animatorData.a.fb) {\n\t\t\tdocumentData.fillColorAnim = true;\n\t\t}\n\t\tind = 0;\n\t\tbased = animatorData.s.b;\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tletterData = letters[i];\n\t\t\tletterData.anIndexes[j] = ind;\n\t\t\tif ((based == 1 && letterData.val !== '') || (based == 2 && letterData.val !== '' && letterData.val !== ' ') || (based == 3 && (letterData.n || letterData.val == ' ' || i == len - 1)) || (based == 4 && (letterData.n || i == len - 1))) { // eslint-disable-line eqeqeq\n\t\t\t\tif (animatorData.s.rn === 1) {\n\t\t\t\t\tindexes.push(ind);\n\t\t\t\t}\n\t\t\t\tind += 1;\n\t\t\t}\n\t\t}\n\t\tdata.a[j].s.totalChars = ind;\n\t\tvar currentInd = -1; var\n\t\t\tnewInd;\n\t\tif (animatorData.s.rn === 1) {\n\t\t\tfor (i = 0; i < len; i += 1) {\n\t\t\t\tletterData = letters[i];\n\t\t\t\tif (currentInd != letterData.anIndexes[j]) { // eslint-disable-line eqeqeq\n\t\t\t\t\tcurrentInd = letterData.anIndexes[j];\n\t\t\t\t\tnewInd = indexes.splice(Math.floor(Math.random() * indexes.length), 1)[0];\n\t\t\t\t}\n\t\t\t\tletterData.anIndexes[j] = newInd;\n\t\t\t}\n\t\t}\n\t}\n\tdocumentData.yOffset = documentData.finalLineHeight || documentData.finalSize * 1.2;\n\tdocumentData.ls = documentData.ls || 0;\n\tdocumentData.ascent = (fontData.ascent * documentData.finalSize) / 100;\n};\n\nTextProperty.prototype.updateDocumentData = function (newData, index) {\n\tindex = index === undefined ? this.keysIndex : index;\n\tvar dData = this.copyData({}, this.data.d.k[index].s);\n\tdData = this.copyData(dData, newData);\n\tthis.data.d.k[index].s = dData;\n\tthis.recalculate(index);\n\tthis.elem.addDynamicProperty(this);\n};\n\nTextProperty.prototype.recalculate = function (index) {\n\tvar dData = this.data.d.k[index].s;\n\tdData.__complete = false;\n\tthis.keysIndex = 0;\n\tthis._isFirstFrame = true;\n\tthis.getValue(dData);\n};\n\nTextProperty.prototype.canResizeFont = function (_canResize) {\n\tthis.canResize = _canResize;\n\tthis.recalculate(this.keysIndex);\n\tthis.elem.addDynamicProperty(this);\n};\n\nTextProperty.prototype.setMinimumFontSize = function (_fontValue) {\n\tthis.minimumFontSize = Math.floor(_fontValue) || 1;\n\tthis.recalculate(this.keysIndex);\n\tthis.elem.addDynamicProperty(this);\n};\n\nconst TextSelectorProp = (function () {\n\tvar max = Math.max;\n\tvar min = Math.min;\n\tvar floor = Math.floor;\n\n\tfunction TextSelectorPropFactory(elem, data) {\n\t\tthis._currentTextLength = -1;\n\t\tthis.k = false;\n\t\tthis.data = data;\n\t\tthis.elem = elem;\n\t\tthis.comp = elem.comp;\n\t\tthis.finalS = 0;\n\t\tthis.finalE = 0;\n\t\tthis.initDynamicPropertyContainer(elem);\n\t\tthis.s = PropertyFactory.getProp(elem, data.s || { k: 0 }, 0, 0, this);\n\t\tif ('e' in data) {\n\t\t\tthis.e = PropertyFactory.getProp(elem, data.e, 0, 0, this);\n\t\t} else {\n\t\t\tthis.e = { v: 100 };\n\t\t}\n\t\tthis.o = PropertyFactory.getProp(elem, data.o || { k: 0 }, 0, 0, this);\n\t\tthis.xe = PropertyFactory.getProp(elem, data.xe || { k: 0 }, 0, 0, this);\n\t\tthis.ne = PropertyFactory.getProp(elem, data.ne || { k: 0 }, 0, 0, this);\n\t\tthis.sm = PropertyFactory.getProp(elem, data.sm || { k: 100 }, 0, 0, this);\n\t\tthis.a = PropertyFactory.getProp(elem, data.a, 0, 0.01, this);\n\t\tif (!this.dynamicProperties.length) {\n\t\t\tthis.getValue();\n\t\t}\n\t}\n\n\tTextSelectorPropFactory.prototype = {\n\t\tgetMult: function (ind) {\n\t\t\tif (this._currentTextLength !== this.elem.textProperty.currentData.l.length) {\n\t\t\t\tthis.getValue();\n\t\t\t}\n\t\t\tvar x1 = 0;\n\t\t\tvar y1 = 0;\n\t\t\tvar x2 = 1;\n\t\t\tvar y2 = 1;\n\t\t\tif (this.ne.v > 0) {\n\t\t\t\tx1 = this.ne.v / 100.0;\n\t\t\t} else {\n\t\t\t\ty1 = -this.ne.v / 100.0;\n\t\t\t}\n\t\t\tif (this.xe.v > 0) {\n\t\t\t\tx2 = 1.0 - this.xe.v / 100.0;\n\t\t\t} else {\n\t\t\t\ty2 = 1.0 + this.xe.v / 100.0;\n\t\t\t}\n\t\t\tvar easer = BezierFactory.getBezierEasing(x1, y1, x2, y2).get;\n\n\t\t\tvar mult = 0;\n\t\t\tvar s = this.finalS;\n\t\t\tvar e = this.finalE;\n\t\t\tvar type = this.data.sh;\n\t\t\tif (type === 2) {\n\t\t\t\tif (e === s) {\n\t\t\t\t\tmult = ind >= e ? 1 : 0;\n\t\t\t\t} else {\n\t\t\t\t\tmult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n\t\t\t\t}\n\t\t\t\tmult = easer(mult);\n\t\t\t} else if (type === 3) {\n\t\t\t\tif (e === s) {\n\t\t\t\t\tmult = ind >= e ? 0 : 1;\n\t\t\t\t} else {\n\t\t\t\t\tmult = 1 - max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n\t\t\t\t}\n\n\t\t\t\tmult = easer(mult);\n\t\t\t} else if (type === 4) {\n\t\t\t\tif (e === s) {\n\t\t\t\t\tmult = 0;\n\t\t\t\t} else {\n\t\t\t\t\tmult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n\t\t\t\t\tif (mult < 0.5) {\n\t\t\t\t\t\tmult *= 2;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tmult = 1 - 2 * (mult - 0.5);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tmult = easer(mult);\n\t\t\t} else if (type === 5) {\n\t\t\t\tif (e === s) {\n\t\t\t\t\tmult = 0;\n\t\t\t\t} else {\n\t\t\t\t\tvar tot = e - s;\n\t\t\t\t\t/* ind += 0.5;\n                    mult = -4/(tot*tot)*(ind*ind)+(4/tot)*ind; */\n\t\t\t\t\tind = min(max(0, ind + 0.5 - s), e - s);\n\t\t\t\t\tvar x = -tot / 2 + ind;\n\t\t\t\t\tvar a = tot / 2;\n\t\t\t\t\tmult = Math.sqrt(1 - (x * x) / (a * a));\n\t\t\t\t}\n\t\t\t\tmult = easer(mult);\n\t\t\t} else if (type === 6) {\n\t\t\t\tif (e === s) {\n\t\t\t\t\tmult = 0;\n\t\t\t\t} else {\n\t\t\t\t\tind = min(max(0, ind + 0.5 - s), e - s);\n\t\t\t\t\tmult = (1 + (Math.cos((Math.PI + Math.PI * 2 * (ind) / (e - s))))) / 2; // eslint-disable-line\n\t\t\t\t}\n\t\t\t\tmult = easer(mult);\n\t\t\t} else {\n\t\t\t\tif (ind >= floor(s)) {\n\t\t\t\t\tif (ind - s < 0) {\n\t\t\t\t\t\tmult = max(0, min(min(e, 1) - (s - ind), 1));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tmult = max(0, min(e - ind, 1));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tmult = easer(mult);\n\t\t\t}\n\t\t\t// Smoothness implementation.\n\t\t\t// The smoothness represents a reduced range of the original [0; 1] range.\n\t\t\t// if smoothness is 25%, the new range will be [0.375; 0.625]\n\t\t\t// Steps are:\n\t\t\t// - find the lower value of the new range (threshold)\n\t\t\t// - if multiplier is smaller than that value, floor it to 0\n\t\t\t// - if it is larger,\n\t\t\t//     - subtract the threshold\n\t\t\t//     - divide it by the smoothness (this will return the range to [0; 1])\n\t\t\t// Note: If it doesn't work on some scenarios, consider applying it before the easer.\n\t\t\tif (this.sm.v !== 100) {\n\t\t\t\tvar smoothness = this.sm.v * 0.01;\n\t\t\t\tif (smoothness === 0) {\n\t\t\t\t\tsmoothness = 0.00000001;\n\t\t\t\t}\n\t\t\t\tvar threshold = 0.5 - smoothness * 0.5;\n\t\t\t\tif (mult < threshold) {\n\t\t\t\t\tmult = 0;\n\t\t\t\t} else {\n\t\t\t\t\tmult = (mult - threshold) / smoothness;\n\t\t\t\t\tif (mult > 1) {\n\t\t\t\t\t\tmult = 1;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn mult * this.a.v;\n\t\t},\n\t\tgetValue: function (newCharsFlag) {\n\t\t\tthis.iterateDynamicProperties();\n\t\t\tthis._mdf = newCharsFlag || this._mdf;\n\t\t\tthis._currentTextLength = this.elem.textProperty.currentData.l.length || 0;\n\t\t\tif (newCharsFlag && this.data.r === 2) {\n\t\t\t\tthis.e.v = this._currentTextLength;\n\t\t\t}\n\t\t\tvar divisor = this.data.r === 2 ? 1 : 100 / this.data.totalChars;\n\t\t\tvar o = this.o.v / divisor;\n\t\t\tvar s = this.s.v / divisor + o;\n\t\t\tvar e = (this.e.v / divisor) + o;\n\t\t\tif (s > e) {\n\t\t\t\tvar _s = s;\n\t\t\t\ts = e;\n\t\t\t\te = _s;\n\t\t\t}\n\t\t\tthis.finalS = s;\n\t\t\tthis.finalE = e;\n\t\t},\n\t};\n\textendPrototype([DynamicPropertyContainer], TextSelectorPropFactory);\n\n\tfunction getTextSelectorProp(elem, data, arr) {\n\t\treturn new TextSelectorPropFactory(elem, data, arr);\n\t}\n\n\treturn {\n\t\tgetTextSelectorProp: getTextSelectorProp,\n\t};\n}());\n\nfunction TextAnimatorDataProperty(elem, animatorProps, container) {\n\tvar defaultData = { propType: false };\n\tvar getProp = PropertyFactory.getProp;\n\tvar textAnimatorAnimatables = animatorProps.a;\n\tthis.a = {\n\t\tr: textAnimatorAnimatables.r ? getProp(elem, textAnimatorAnimatables.r, 0, degToRads, container) : defaultData,\n\t\trx: textAnimatorAnimatables.rx ? getProp(elem, textAnimatorAnimatables.rx, 0, degToRads, container) : defaultData,\n\t\try: textAnimatorAnimatables.ry ? getProp(elem, textAnimatorAnimatables.ry, 0, degToRads, container) : defaultData,\n\t\tsk: textAnimatorAnimatables.sk ? getProp(elem, textAnimatorAnimatables.sk, 0, degToRads, container) : defaultData,\n\t\tsa: textAnimatorAnimatables.sa ? getProp(elem, textAnimatorAnimatables.sa, 0, degToRads, container) : defaultData,\n\t\ts: textAnimatorAnimatables.s ? getProp(elem, textAnimatorAnimatables.s, 1, 0.01, container) : defaultData,\n\t\ta: textAnimatorAnimatables.a ? getProp(elem, textAnimatorAnimatables.a, 1, 0, container) : defaultData,\n\t\to: textAnimatorAnimatables.o ? getProp(elem, textAnimatorAnimatables.o, 0, 0.01, container) : defaultData,\n\t\tp: textAnimatorAnimatables.p ? getProp(elem, textAnimatorAnimatables.p, 1, 0, container) : defaultData,\n\t\tsw: textAnimatorAnimatables.sw ? getProp(elem, textAnimatorAnimatables.sw, 0, 0, container) : defaultData,\n\t\tsc: textAnimatorAnimatables.sc ? getProp(elem, textAnimatorAnimatables.sc, 1, 0, container) : defaultData,\n\t\tfc: textAnimatorAnimatables.fc ? getProp(elem, textAnimatorAnimatables.fc, 1, 0, container) : defaultData,\n\t\tfh: textAnimatorAnimatables.fh ? getProp(elem, textAnimatorAnimatables.fh, 0, 0, container) : defaultData,\n\t\tfs: textAnimatorAnimatables.fs ? getProp(elem, textAnimatorAnimatables.fs, 0, 0.01, container) : defaultData,\n\t\tfb: textAnimatorAnimatables.fb ? getProp(elem, textAnimatorAnimatables.fb, 0, 0.01, container) : defaultData,\n\t\tt: textAnimatorAnimatables.t ? getProp(elem, textAnimatorAnimatables.t, 0, 0, container) : defaultData,\n\t};\n\n\tthis.s = TextSelectorProp.getTextSelectorProp(elem, animatorProps.s, container);\n\tthis.s.t = animatorProps.s.t;\n}\n\nfunction TextAnimatorProperty(textData, renderType, elem) {\n\tthis._isFirstFrame = true;\n\tthis._hasMaskedPath = false;\n\tthis._frameId = -1;\n\tthis._textData = textData;\n\tthis._renderType = renderType;\n\tthis._elem = elem;\n\tthis._animatorsData = createSizedArray(this._textData.a.length);\n\tthis._pathData = {};\n\tthis._moreOptions = {\n\t\talignment: {},\n\t};\n\tthis.renderedLetters = [];\n\tthis.lettersChangedFlag = false;\n\tthis.initDynamicPropertyContainer(elem);\n}\n\nTextAnimatorProperty.prototype.searchProperties = function () {\n\tvar i;\n\tvar len = this._textData.a.length;\n\tvar animatorProps;\n\tvar getProp = PropertyFactory.getProp;\n\tfor (i = 0; i < len; i += 1) {\n\t\tanimatorProps = this._textData.a[i];\n\t\tthis._animatorsData[i] = new TextAnimatorDataProperty(this._elem, animatorProps, this);\n\t}\n\tif (this._textData.p && 'm' in this._textData.p) {\n\t\tthis._pathData = {\n\t\t\ta: getProp(this._elem, this._textData.p.a, 0, 0, this),\n\t\t\tf: getProp(this._elem, this._textData.p.f, 0, 0, this),\n\t\t\tl: getProp(this._elem, this._textData.p.l, 0, 0, this),\n\t\t\tr: getProp(this._elem, this._textData.p.r, 0, 0, this),\n\t\t\tp: getProp(this._elem, this._textData.p.p, 0, 0, this),\n\t\t\tm: this._elem.maskManager.getMaskProperty(this._textData.p.m),\n\t\t};\n\t\tthis._hasMaskedPath = true;\n\t} else {\n\t\tthis._hasMaskedPath = false;\n\t}\n\tthis._moreOptions.alignment = getProp(this._elem, this._textData.m.a, 1, 0, this);\n};\n\nTextAnimatorProperty.prototype.getMeasures = function (documentData, lettersChangedFlag) {\n\tthis.lettersChangedFlag = lettersChangedFlag;\n\tif (!this._mdf && !this._isFirstFrame && !lettersChangedFlag && (!this._hasMaskedPath || !this._pathData.m._mdf)) {\n\t\treturn;\n\t}\n\tthis._isFirstFrame = false;\n\tvar alignment = this._moreOptions.alignment.v;\n\tvar animators = this._animatorsData;\n\tvar textData = this._textData;\n\tvar matrixHelper = this.mHelper;\n\tvar renderType = this._renderType;\n\tvar renderedLettersCount = this.renderedLetters.length;\n\tvar xPos;\n\tvar yPos;\n\tvar i;\n\tvar len;\n\tvar letters = documentData.l;\n\tvar pathInfo;\n\tvar currentLength;\n\tvar currentPoint;\n\tvar segmentLength;\n\tvar flag;\n\tvar pointInd;\n\tvar segmentInd;\n\tvar prevPoint;\n\tvar points;\n\tvar segments;\n\tvar partialLength;\n\tvar totalLength;\n\tvar perc;\n\tvar tanAngle;\n\tvar mask;\n\tif (this._hasMaskedPath) {\n\t\tmask = this._pathData.m;\n\t\tif (!this._pathData.n || this._pathData._mdf) {\n\t\t\tvar paths = mask.v;\n\t\t\tif (this._pathData.r.v) {\n\t\t\t\tpaths = paths.reverse();\n\t\t\t}\n\t\t\t// TODO: release bezier data cached from previous pathInfo: this._pathData.pi\n\t\t\tpathInfo = {\n\t\t\t\ttLength: 0,\n\t\t\t\tsegments: [],\n\t\t\t};\n\t\t\tlen = paths._length - 1;\n\t\t\tvar bezierData;\n\t\t\ttotalLength = 0;\n\t\t\tfor (i = 0; i < len; i += 1) {\n\t\t\t\tbezierData = bez.buildBezierData(paths.v[i],\n\t\t\t\t\tpaths.v[i + 1],\n\t\t\t\t\t[paths.o[i][0] - paths.v[i][0], paths.o[i][1] - paths.v[i][1]],\n\t\t\t\t\t[paths.i[i + 1][0] - paths.v[i + 1][0], paths.i[i + 1][1] - paths.v[i + 1][1]]);\n\t\t\t\tpathInfo.tLength += bezierData.segmentLength;\n\t\t\t\tpathInfo.segments.push(bezierData);\n\t\t\t\ttotalLength += bezierData.segmentLength;\n\t\t\t}\n\t\t\ti = len;\n\t\t\tif (mask.v.c) {\n\t\t\t\tbezierData = bez.buildBezierData(paths.v[i],\n\t\t\t\t\tpaths.v[0],\n\t\t\t\t\t[paths.o[i][0] - paths.v[i][0], paths.o[i][1] - paths.v[i][1]],\n\t\t\t\t\t[paths.i[0][0] - paths.v[0][0], paths.i[0][1] - paths.v[0][1]]);\n\t\t\t\tpathInfo.tLength += bezierData.segmentLength;\n\t\t\t\tpathInfo.segments.push(bezierData);\n\t\t\t\ttotalLength += bezierData.segmentLength;\n\t\t\t}\n\t\t\tthis._pathData.pi = pathInfo;\n\t\t}\n\t\tpathInfo = this._pathData.pi;\n\n\t\tcurrentLength = this._pathData.f.v;\n\t\tsegmentInd = 0;\n\t\tpointInd = 1;\n\t\tsegmentLength = 0;\n\t\tflag = true;\n\t\tsegments = pathInfo.segments;\n\t\tif (currentLength < 0 && mask.v.c) {\n\t\t\tif (pathInfo.tLength < Math.abs(currentLength)) {\n\t\t\t\tcurrentLength = -Math.abs(currentLength) % pathInfo.tLength;\n\t\t\t}\n\t\t\tsegmentInd = segments.length - 1;\n\t\t\tpoints = segments[segmentInd].points;\n\t\t\tpointInd = points.length - 1;\n\t\t\twhile (currentLength < 0) {\n\t\t\t\tcurrentLength += points[pointInd].partialLength;\n\t\t\t\tpointInd -= 1;\n\t\t\t\tif (pointInd < 0) {\n\t\t\t\t\tsegmentInd -= 1;\n\t\t\t\t\tpoints = segments[segmentInd].points;\n\t\t\t\t\tpointInd = points.length - 1;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tpoints = segments[segmentInd].points;\n\t\tprevPoint = points[pointInd - 1];\n\t\tcurrentPoint = points[pointInd];\n\t\tpartialLength = currentPoint.partialLength;\n\t}\n\n\tlen = letters.length;\n\txPos = 0;\n\tyPos = 0;\n\tvar yOff = documentData.finalSize * 1.2 * 0.714;\n\tvar firstLine = true;\n\tvar animatorProps;\n\tvar animatorSelector;\n\tvar j;\n\tvar jLen;\n\tvar letterValue;\n\n\tjLen = animators.length;\n\n\tvar mult;\n\tvar ind = -1;\n\tvar offf;\n\tvar xPathPos;\n\tvar yPathPos;\n\tvar initPathPos = currentLength;\n\tvar initSegmentInd = segmentInd;\n\tvar initPointInd = pointInd;\n\tvar currentLine = -1;\n\tvar elemOpacity;\n\tvar sc;\n\tvar sw;\n\tvar fc;\n\tvar k;\n\tvar letterSw;\n\tvar letterSc;\n\tvar letterFc;\n\tvar letterM = '';\n\tvar letterP = this.defaultPropsArray;\n\tvar letterO;\n\n\t//\n\tif (documentData.j === 2 || documentData.j === 1) {\n\t\tvar animatorJustifyOffset = 0;\n\t\tvar animatorFirstCharOffset = 0;\n\t\tvar justifyOffsetMult = documentData.j === 2 ? -0.5 : -1;\n\t\tvar lastIndex = 0;\n\t\tvar isNewLine = true;\n\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tif (letters[i].n) {\n\t\t\t\tif (animatorJustifyOffset) {\n\t\t\t\t\tanimatorJustifyOffset += animatorFirstCharOffset;\n\t\t\t\t}\n\t\t\t\twhile (lastIndex < i) {\n\t\t\t\t\tletters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\n\t\t\t\t\tlastIndex += 1;\n\t\t\t\t}\n\t\t\t\tanimatorJustifyOffset = 0;\n\t\t\t\tisNewLine = true;\n\t\t\t} else {\n\t\t\t\tfor (j = 0; j < jLen; j += 1) {\n\t\t\t\t\tanimatorProps = animators[j].a;\n\t\t\t\t\tif (animatorProps.t.propType) {\n\t\t\t\t\t\tif (isNewLine && documentData.j === 2) {\n\t\t\t\t\t\t\tanimatorFirstCharOffset += animatorProps.t.v * justifyOffsetMult;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tanimatorSelector = animators[j].s;\n\t\t\t\t\t\tmult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\t\t\t\t\t\tif (mult.length) {\n\t\t\t\t\t\t\tanimatorJustifyOffset += animatorProps.t.v * mult[0] * justifyOffsetMult;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tanimatorJustifyOffset += animatorProps.t.v * mult * justifyOffsetMult;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tisNewLine = false;\n\t\t\t}\n\t\t}\n\t\tif (animatorJustifyOffset) {\n\t\t\tanimatorJustifyOffset += animatorFirstCharOffset;\n\t\t}\n\t\twhile (lastIndex < i) {\n\t\t\tletters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\n\t\t\tlastIndex += 1;\n\t\t}\n\t}\n\t//\n\n\tfor (i = 0; i < len; i += 1) {\n\t\tmatrixHelper.reset();\n\t\telemOpacity = 1;\n\t\tif (letters[i].n) {\n\t\t\txPos = 0;\n\t\t\tyPos += documentData.yOffset;\n\t\t\tyPos += firstLine ? 1 : 0;\n\t\t\tcurrentLength = initPathPos;\n\t\t\tfirstLine = false;\n\t\t\tif (this._hasMaskedPath) {\n\t\t\t\tsegmentInd = initSegmentInd;\n\t\t\t\tpointInd = initPointInd;\n\t\t\t\tpoints = segments[segmentInd].points;\n\t\t\t\tprevPoint = points[pointInd - 1];\n\t\t\t\tcurrentPoint = points[pointInd];\n\t\t\t\tpartialLength = currentPoint.partialLength;\n\t\t\t\tsegmentLength = 0;\n\t\t\t}\n\t\t\tletterM = '';\n\t\t\tletterFc = '';\n\t\t\tletterSw = '';\n\t\t\tletterO = '';\n\t\t\tletterP = this.defaultPropsArray;\n\t\t} else {\n\t\t\tif (this._hasMaskedPath) {\n\t\t\t\tif (currentLine !== letters[i].line) {\n\t\t\t\t\tswitch (documentData.j) {\n\t\t\t\t\t\tcase 1:\n\t\t\t\t\t\t\tcurrentLength += totalLength - documentData.lineWidths[letters[i].line];\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 2:\n\t\t\t\t\t\t\tcurrentLength += (totalLength - documentData.lineWidths[letters[i].line]) / 2;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tcurrentLine = letters[i].line;\n\t\t\t\t}\n\t\t\t\tif (ind !== letters[i].ind) {\n\t\t\t\t\tif (letters[ind]) {\n\t\t\t\t\t\tcurrentLength += letters[ind].extra;\n\t\t\t\t\t}\n\t\t\t\t\tcurrentLength += letters[i].an / 2;\n\t\t\t\t\tind = letters[i].ind;\n\t\t\t\t}\n\t\t\t\tcurrentLength += (alignment[0] * letters[i].an) * 0.005;\n\t\t\t\tvar animatorOffset = 0;\n\t\t\t\tfor (j = 0; j < jLen; j += 1) {\n\t\t\t\t\tanimatorProps = animators[j].a;\n\t\t\t\t\tif (animatorProps.p.propType) {\n\t\t\t\t\t\tanimatorSelector = animators[j].s;\n\t\t\t\t\t\tmult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\t\t\t\t\t\tif (mult.length) {\n\t\t\t\t\t\t\tanimatorOffset += animatorProps.p.v[0] * mult[0];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tanimatorOffset += animatorProps.p.v[0] * mult;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (animatorProps.a.propType) {\n\t\t\t\t\t\tanimatorSelector = animators[j].s;\n\t\t\t\t\t\tmult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\t\t\t\t\t\tif (mult.length) {\n\t\t\t\t\t\t\tanimatorOffset += animatorProps.a.v[0] * mult[0];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tanimatorOffset += animatorProps.a.v[0] * mult;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tflag = true;\n\t\t\t\t// Force alignment only works with a single line for now\n\t\t\t\tif (this._pathData.a.v) {\n\t\t\t\t\tcurrentLength = letters[0].an * 0.5 + ((totalLength - this._pathData.f.v - letters[0].an * 0.5 - letters[letters.length - 1].an * 0.5) * ind) / (len - 1);\n\t\t\t\t\tcurrentLength += this._pathData.f.v;\n\t\t\t\t}\n\t\t\t\twhile (flag) {\n\t\t\t\t\tif (segmentLength + partialLength >= currentLength + animatorOffset || !points) {\n\t\t\t\t\t\tperc = (currentLength + animatorOffset - segmentLength) / currentPoint.partialLength;\n\t\t\t\t\t\txPathPos = prevPoint.point[0] + (currentPoint.point[0] - prevPoint.point[0]) * perc;\n\t\t\t\t\t\tyPathPos = prevPoint.point[1] + (currentPoint.point[1] - prevPoint.point[1]) * perc;\n\t\t\t\t\t\tmatrixHelper.translate((-alignment[0] * letters[i].an) * 0.005, -(alignment[1] * yOff) * 0.01);\n\t\t\t\t\t\tflag = false;\n\t\t\t\t\t} else if (points) {\n\t\t\t\t\t\tsegmentLength += currentPoint.partialLength;\n\t\t\t\t\t\tpointInd += 1;\n\t\t\t\t\t\tif (pointInd >= points.length) {\n\t\t\t\t\t\t\tpointInd = 0;\n\t\t\t\t\t\t\tsegmentInd += 1;\n\t\t\t\t\t\t\tif (!segments[segmentInd]) {\n\t\t\t\t\t\t\t\tif (mask.v.c) {\n\t\t\t\t\t\t\t\t\tpointInd = 0;\n\t\t\t\t\t\t\t\t\tsegmentInd = 0;\n\t\t\t\t\t\t\t\t\tpoints = segments[segmentInd].points;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tsegmentLength -= currentPoint.partialLength;\n\t\t\t\t\t\t\t\t\tpoints = null;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tpoints = segments[segmentInd].points;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (points) {\n\t\t\t\t\t\t\tprevPoint = currentPoint;\n\t\t\t\t\t\t\tcurrentPoint = points[pointInd];\n\t\t\t\t\t\t\tpartialLength = currentPoint.partialLength;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tofff = letters[i].an / 2 - letters[i].add;\n\t\t\t\tmatrixHelper.translate(-offf, 0, 0);\n\t\t\t} else {\n\t\t\t\tofff = letters[i].an / 2 - letters[i].add;\n\t\t\t\tmatrixHelper.translate(-offf, 0, 0);\n\n\t\t\t\t// Grouping alignment\n\t\t\t\tmatrixHelper.translate((-alignment[0] * letters[i].an) * 0.005, (-alignment[1] * yOff) * 0.01, 0);\n\t\t\t}\n\n\t\t\tfor (j = 0; j < jLen; j += 1) {\n\t\t\t\tanimatorProps = animators[j].a;\n\t\t\t\tif (animatorProps.t.propType) {\n\t\t\t\t\tanimatorSelector = animators[j].s;\n\t\t\t\t\tmult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\t\t\t\t\t// This condition is to prevent applying tracking to first character in each line. Might be better to use a boolean \"isNewLine\"\n\t\t\t\t\tif (xPos !== 0 || documentData.j !== 0) {\n\t\t\t\t\t\tif (this._hasMaskedPath) {\n\t\t\t\t\t\t\tif (mult.length) {\n\t\t\t\t\t\t\t\tcurrentLength += animatorProps.t.v * mult[0];\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tcurrentLength += animatorProps.t.v * mult;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else if (mult.length) {\n\t\t\t\t\t\t\txPos += animatorProps.t.v * mult[0];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\txPos += animatorProps.t.v * mult;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (documentData.strokeWidthAnim) {\n\t\t\t\tsw = documentData.sw || 0;\n\t\t\t}\n\t\t\tif (documentData.strokeColorAnim) {\n\t\t\t\tif (documentData.sc) {\n\t\t\t\t\tsc = [documentData.sc[0], documentData.sc[1], documentData.sc[2]];\n\t\t\t\t} else {\n\t\t\t\t\tsc = [0, 0, 0];\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (documentData.fillColorAnim && documentData.fc) {\n\t\t\t\tfc = [documentData.fc[0], documentData.fc[1], documentData.fc[2]];\n\t\t\t}\n\t\t\tfor (j = 0; j < jLen; j += 1) {\n\t\t\t\tanimatorProps = animators[j].a;\n\t\t\t\tif (animatorProps.a.propType) {\n\t\t\t\t\tanimatorSelector = animators[j].s;\n\t\t\t\t\tmult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n\t\t\t\t\tif (mult.length) {\n\t\t\t\t\t\tmatrixHelper.translate(-animatorProps.a.v[0] * mult[0], -animatorProps.a.v[1] * mult[1], animatorProps.a.v[2] * mult[2]);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tmatrixHelper.translate(-animatorProps.a.v[0] * mult, -animatorProps.a.v[1] * mult, animatorProps.a.v[2] * mult);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor (j = 0; j < jLen; j += 1) {\n\t\t\t\tanimatorProps = animators[j].a;\n\t\t\t\tif (animatorProps.s.propType) {\n\t\t\t\t\tanimatorSelector = animators[j].s;\n\t\t\t\t\tmult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\t\t\t\t\tif (mult.length) {\n\t\t\t\t\t\tmatrixHelper.scale(1 + ((animatorProps.s.v[0] - 1) * mult[0]), 1 + ((animatorProps.s.v[1] - 1) * mult[1]), 1);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tmatrixHelper.scale(1 + ((animatorProps.s.v[0] - 1) * mult), 1 + ((animatorProps.s.v[1] - 1) * mult), 1);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor (j = 0; j < jLen; j += 1) {\n\t\t\t\tanimatorProps = animators[j].a;\n\t\t\t\tanimatorSelector = animators[j].s;\n\t\t\t\tmult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\t\t\t\tif (animatorProps.sk.propType) {\n\t\t\t\t\tif (mult.length) {\n\t\t\t\t\t\tmatrixHelper.skewFromAxis(-animatorProps.sk.v * mult[0], animatorProps.sa.v * mult[1]);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tmatrixHelper.skewFromAxis(-animatorProps.sk.v * mult, animatorProps.sa.v * mult);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (animatorProps.r.propType) {\n\t\t\t\t\tif (mult.length) {\n\t\t\t\t\t\tmatrixHelper.rotateZ(-animatorProps.r.v * mult[2]);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tmatrixHelper.rotateZ(-animatorProps.r.v * mult);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (animatorProps.ry.propType) {\n\t\t\t\t\tif (mult.length) {\n\t\t\t\t\t\tmatrixHelper.rotateY(animatorProps.ry.v * mult[1]);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tmatrixHelper.rotateY(animatorProps.ry.v * mult);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (animatorProps.rx.propType) {\n\t\t\t\t\tif (mult.length) {\n\t\t\t\t\t\tmatrixHelper.rotateX(animatorProps.rx.v * mult[0]);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tmatrixHelper.rotateX(animatorProps.rx.v * mult);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (animatorProps.o.propType) {\n\t\t\t\t\tif (mult.length) {\n\t\t\t\t\t\telemOpacity += ((animatorProps.o.v) * mult[0] - elemOpacity) * mult[0];\n\t\t\t\t\t} else {\n\t\t\t\t\t\telemOpacity += ((animatorProps.o.v) * mult - elemOpacity) * mult;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (documentData.strokeWidthAnim && animatorProps.sw.propType) {\n\t\t\t\t\tif (mult.length) {\n\t\t\t\t\t\tsw += animatorProps.sw.v * mult[0];\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsw += animatorProps.sw.v * mult;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (documentData.strokeColorAnim && animatorProps.sc.propType) {\n\t\t\t\t\tfor (k = 0; k < 3; k += 1) {\n\t\t\t\t\t\tif (mult.length) {\n\t\t\t\t\t\t\tsc[k] += (animatorProps.sc.v[k] - sc[k]) * mult[0];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tsc[k] += (animatorProps.sc.v[k] - sc[k]) * mult;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (documentData.fillColorAnim && documentData.fc) {\n\t\t\t\t\tif (animatorProps.fc.propType) {\n\t\t\t\t\t\tfor (k = 0; k < 3; k += 1) {\n\t\t\t\t\t\t\tif (mult.length) {\n\t\t\t\t\t\t\t\tfc[k] += (animatorProps.fc.v[k] - fc[k]) * mult[0];\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tfc[k] += (animatorProps.fc.v[k] - fc[k]) * mult;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (animatorProps.fh.propType) {\n\t\t\t\t\t\tif (mult.length) {\n\t\t\t\t\t\t\tfc = addHueToRGB(fc, animatorProps.fh.v * mult[0]);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tfc = addHueToRGB(fc, animatorProps.fh.v * mult);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (animatorProps.fs.propType) {\n\t\t\t\t\t\tif (mult.length) {\n\t\t\t\t\t\t\tfc = addSaturationToRGB(fc, animatorProps.fs.v * mult[0]);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tfc = addSaturationToRGB(fc, animatorProps.fs.v * mult);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (animatorProps.fb.propType) {\n\t\t\t\t\t\tif (mult.length) {\n\t\t\t\t\t\t\tfc = addBrightnessToRGB(fc, animatorProps.fb.v * mult[0]);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tfc = addBrightnessToRGB(fc, animatorProps.fb.v * mult);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor (j = 0; j < jLen; j += 1) {\n\t\t\t\tanimatorProps = animators[j].a;\n\n\t\t\t\tif (animatorProps.p.propType) {\n\t\t\t\t\tanimatorSelector = animators[j].s;\n\t\t\t\t\tmult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\t\t\t\t\tif (this._hasMaskedPath) {\n\t\t\t\t\t\tif (mult.length) {\n\t\t\t\t\t\t\tmatrixHelper.translate(0, animatorProps.p.v[1] * mult[0], -animatorProps.p.v[2] * mult[1]);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tmatrixHelper.translate(0, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (mult.length) {\n\t\t\t\t\t\tmatrixHelper.translate(animatorProps.p.v[0] * mult[0], animatorProps.p.v[1] * mult[1], -animatorProps.p.v[2] * mult[2]);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tmatrixHelper.translate(animatorProps.p.v[0] * mult, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (documentData.strokeWidthAnim) {\n\t\t\t\tletterSw = sw < 0 ? 0 : sw;\n\t\t\t}\n\t\t\tif (documentData.strokeColorAnim) {\n\t\t\t\tletterSc = 'rgb(' + Math.round(sc[0] * 255) + ',' + Math.round(sc[1] * 255) + ',' + Math.round(sc[2] * 255) + ')';\n\t\t\t}\n\t\t\tif (documentData.fillColorAnim && documentData.fc) {\n\t\t\t\tletterFc = 'rgb(' + Math.round(fc[0] * 255) + ',' + Math.round(fc[1] * 255) + ',' + Math.round(fc[2] * 255) + ')';\n\t\t\t}\n\n\t\t\tif (this._hasMaskedPath) {\n\t\t\t\tmatrixHelper.translate(0, -documentData.ls);\n\n\t\t\t\tmatrixHelper.translate(0, (alignment[1] * yOff) * 0.01 + yPos, 0);\n\t\t\t\tif (this._pathData.p.v) {\n\t\t\t\t\ttanAngle = (currentPoint.point[1] - prevPoint.point[1]) / (currentPoint.point[0] - prevPoint.point[0]);\n\t\t\t\t\tvar rot = (Math.atan(tanAngle) * 180) / Math.PI;\n\t\t\t\t\tif (currentPoint.point[0] < prevPoint.point[0]) {\n\t\t\t\t\t\trot += 180;\n\t\t\t\t\t}\n\t\t\t\t\tmatrixHelper.rotate((-rot * Math.PI) / 180);\n\t\t\t\t}\n\t\t\t\tmatrixHelper.translate(xPathPos, yPathPos, 0);\n\t\t\t\tcurrentLength -= (alignment[0] * letters[i].an) * 0.005;\n\t\t\t\tif (letters[i + 1] && ind !== letters[i + 1].ind) {\n\t\t\t\t\tcurrentLength += letters[i].an / 2;\n\t\t\t\t\tcurrentLength += (documentData.tr * 0.001) * documentData.finalSize;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tmatrixHelper.translate(xPos, yPos, 0);\n\n\t\t\t\tif (documentData.ps) {\n\t\t\t\t\t// matrixHelper.translate(documentData.ps[0],documentData.ps[1],0);\n\t\t\t\t\tmatrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);\n\t\t\t\t}\n\t\t\t\tswitch (documentData.j) {\n\t\t\t\t\tcase 1:\n\t\t\t\t\t\tmatrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]), 0, 0);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 2:\n\t\t\t\t\t\tmatrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]) / 2, 0, 0);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tmatrixHelper.translate(0, -documentData.ls);\n\t\t\t\tmatrixHelper.translate(offf, 0, 0);\n\t\t\t\tmatrixHelper.translate((alignment[0] * letters[i].an) * 0.005, (alignment[1] * yOff) * 0.01, 0);\n\t\t\t\txPos += letters[i].l + (documentData.tr * 0.001) * documentData.finalSize;\n\t\t\t}\n\t\t\tif (renderType === 'html') {\n\t\t\t\tletterM = matrixHelper.toCSS();\n\t\t\t} else if (renderType === 'svg') {\n\t\t\t\tletterM = matrixHelper.to2dCSS();\n\t\t\t} else {\n\t\t\t\tletterP = [matrixHelper.props[0], matrixHelper.props[1], matrixHelper.props[2], matrixHelper.props[3], matrixHelper.props[4], matrixHelper.props[5], matrixHelper.props[6], matrixHelper.props[7], matrixHelper.props[8], matrixHelper.props[9], matrixHelper.props[10], matrixHelper.props[11], matrixHelper.props[12], matrixHelper.props[13], matrixHelper.props[14], matrixHelper.props[15]];\n\t\t\t}\n\t\t\tletterO = elemOpacity;\n\t\t}\n\n\t\tif (renderedLettersCount <= i) {\n\t\t\tletterValue = new LetterProps(letterO, letterSw, letterSc, letterFc, letterM, letterP);\n\t\t\tthis.renderedLetters.push(letterValue);\n\t\t\trenderedLettersCount += 1;\n\t\t\tthis.lettersChangedFlag = true;\n\t\t} else {\n\t\t\tletterValue = this.renderedLetters[i];\n\t\t\tthis.lettersChangedFlag = letterValue.update(letterO, letterSw, letterSc, letterFc, letterM, letterP) || this.lettersChangedFlag;\n\t\t}\n\t}\n};\n\nTextAnimatorProperty.prototype.getValue = function () {\n\tif (this._elem.globalData.frameId === this._frameId) {\n\t\treturn;\n\t}\n\tthis._frameId = this._elem.globalData.frameId;\n\tthis.iterateDynamicProperties();\n};\n\nTextAnimatorProperty.prototype.mHelper = new Matrix();\nTextAnimatorProperty.prototype.defaultPropsArray = [];\nextendPrototype([DynamicPropertyContainer], TextAnimatorProperty);\n\nfunction ITextElement() {\n}\n\nITextElement.prototype.initElement = function (data, globalData, comp) {\n\tthis.lettersChangedFlag = true;\n\tthis.initFrame();\n\tthis.initBaseData(data, globalData, comp);\n\tthis.textProperty = new TextProperty(this, data.t, this.dynamicProperties);\n\tthis.textAnimator = new TextAnimatorProperty(data.t, this.renderType, this);\n\tthis.initTransform(data, globalData, comp);\n\tthis.initHierarchy();\n\tthis.initRenderable();\n\tthis.initRendererElement();\n\tthis.createContainerElements();\n\tthis.createRenderableComponents();\n\tthis.createContent();\n\tthis.hide();\n\tthis.textAnimator.searchProperties(this.dynamicProperties);\n};\n\nITextElement.prototype.prepareFrame = function (num) {\n\tthis._mdf = false;\n\tthis.prepareRenderableFrame(num);\n\tthis.prepareProperties(num, this.isInRange);\n\tif (this.textProperty._mdf || this.textProperty._isFirstFrame) {\n\t\tthis.buildNewText();\n\t\tthis.textProperty._isFirstFrame = false;\n\t\tthis.textProperty._mdf = false;\n\t}\n};\n\nITextElement.prototype.createPathShape = function (matrixHelper, shapes) {\n\tvar j;\n\tvar jLen = shapes.length;\n\tvar pathNodes;\n\tvar shapeStr = '';\n\tfor (j = 0; j < jLen; j += 1) {\n\t\tif (shapes[j].ty === 'sh') {\n\t\t\tpathNodes = shapes[j].ks.k;\n\t\t\tshapeStr += buildShapeString(pathNodes, pathNodes.i.length, true, matrixHelper);\n\t\t}\n\t}\n\treturn shapeStr;\n};\n\nITextElement.prototype.updateDocumentData = function (newData, index) {\n\tthis.textProperty.updateDocumentData(newData, index);\n};\n\nITextElement.prototype.canResizeFont = function (_canResize) {\n\tthis.textProperty.canResizeFont(_canResize);\n};\n\nITextElement.prototype.setMinimumFontSize = function (_fontSize) {\n\tthis.textProperty.setMinimumFontSize(_fontSize);\n};\n\nITextElement.prototype.applyTextPropertiesToMatrix = function (documentData, matrixHelper, lineNumber, xPos, yPos) {\n\tif (documentData.ps) {\n\t\tmatrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);\n\t}\n\tmatrixHelper.translate(0, -documentData.ls, 0);\n\tswitch (documentData.j) {\n\t\tcase 1:\n\t\t\tmatrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]), 0, 0);\n\t\t\tbreak;\n\t\tcase 2:\n\t\t\tmatrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]) / 2, 0, 0);\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tbreak;\n\t}\n\tmatrixHelper.translate(xPos, yPos, 0);\n};\n\nITextElement.prototype.buildColor = function (colorData) {\n\treturn 'rgb(' + Math.round(colorData[0] * 255) + ',' + Math.round(colorData[1] * 255) + ',' + Math.round(colorData[2] * 255) + ')';\n};\n\nITextElement.prototype.emptyProp = new LetterProps();\n\nITextElement.prototype.destroy = function () {\n\n};\n\nvar emptyShapeData = {\n\tshapes: [],\n};\n\nfunction SVGTextLottieElement(data, globalData, comp) {\n\tthis.textSpans = [];\n\tthis.renderType = 'svg';\n\tthis.initElement(data, globalData, comp);\n}\n\nextendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], SVGTextLottieElement);\n\nSVGTextLottieElement.prototype.createContent = function () {\n\tif (this.data.singleShape && !this.globalData.fontManager.chars) {\n\t\tthis.textContainer = createNS('text');\n\t}\n};\n\nSVGTextLottieElement.prototype.buildTextContents = function (textArray) {\n\tvar i = 0;\n\tvar len = textArray.length;\n\tvar textContents = [];\n\tvar currentTextContent = '';\n\twhile (i < len) {\n\t\tif (textArray[i] === String.fromCharCode(13) || textArray[i] === String.fromCharCode(3)) {\n\t\t\ttextContents.push(currentTextContent);\n\t\t\tcurrentTextContent = '';\n\t\t} else {\n\t\t\tcurrentTextContent += textArray[i];\n\t\t}\n\t\ti += 1;\n\t}\n\ttextContents.push(currentTextContent);\n\treturn textContents;\n};\n\nSVGTextLottieElement.prototype.buildShapeData = function (data, scale) {\n\t// data should probably be cloned to apply scale separately to each instance of a text on different layers\n\t// but since text internal content gets only rendered once and then it's never rerendered,\n\t// it's probably safe not to clone data and reuse always the same instance even if the object is mutated.\n\t// Avoiding cloning is preferred since cloning each character shape data is expensive\n\tif (data.shapes && data.shapes.length) {\n\t\tvar shape = data.shapes[0];\n\t\tif (shape.it) {\n\t\t\tvar shapeItem = shape.it[shape.it.length - 1];\n\t\t\tif (shapeItem.s) {\n\t\t\t\tshapeItem.s.k[0] = scale;\n\t\t\t\tshapeItem.s.k[1] = scale;\n\t\t\t}\n\t\t}\n\t}\n\treturn data;\n};\n\nSVGTextLottieElement.prototype.buildNewText = function () {\n\tthis.addDynamicProperty(this);\n\tvar i;\n\tvar len;\n\n\tvar documentData = this.textProperty.currentData;\n\tthis.renderedLetters = createSizedArray(documentData ? documentData.l.length : 0);\n\tif (documentData.fc) {\n\t\tthis.layerElement.setAttribute('fill', this.buildColor(documentData.fc));\n\t} else {\n\t\tthis.layerElement.setAttribute('fill', 'rgba(0,0,0,0)');\n\t}\n\tif (documentData.sc) {\n\t\tthis.layerElement.setAttribute('stroke', this.buildColor(documentData.sc));\n\t\tthis.layerElement.setAttribute('stroke-width', documentData.sw);\n\t}\n\tthis.layerElement.setAttribute('font-size', documentData.finalSize);\n\tvar fontData = this.globalData.fontManager.getFontByName(documentData.f);\n\tif (fontData.fClass) {\n\t\tthis.layerElement.setAttribute('class', fontData.fClass);\n\t} else {\n\t\tthis.layerElement.setAttribute('font-family', fontData.fFamily);\n\t\tvar fWeight = documentData.fWeight;\n\t\tvar fStyle = documentData.fStyle;\n\t\tthis.layerElement.setAttribute('font-style', fStyle);\n\t\tthis.layerElement.setAttribute('font-weight', fWeight);\n\t}\n\tthis.layerElement.setAttribute('aria-label', documentData.t);\n\n\tvar letters = documentData.l || [];\n\tvar usesGlyphs = !!this.globalData.fontManager.chars;\n\tlen = letters.length;\n\n\tvar tSpan;\n\tvar matrixHelper = this.mHelper;\n\tvar shapeStr = '';\n\tvar singleShape = this.data.singleShape;\n\tvar xPos = 0;\n\tvar yPos = 0;\n\tvar firstLine = true;\n\tvar trackingOffset = documentData.tr * 0.001 * documentData.finalSize;\n\tif (singleShape && !usesGlyphs && !documentData.sz) {\n\t\tvar tElement = this.textContainer;\n\t\tvar justify = 'start';\n\t\tswitch (documentData.j) {\n\t\t\tcase 1:\n\t\t\t\tjustify = 'end';\n\t\t\t\tbreak;\n\t\t\tcase 2:\n\t\t\t\tjustify = 'middle';\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tjustify = 'start';\n\t\t\t\tbreak;\n\t\t}\n\t\ttElement.setAttribute('text-anchor', justify);\n\t\ttElement.setAttribute('letter-spacing', trackingOffset);\n\t\tvar textContent = this.buildTextContents(documentData.finalText);\n\t\tlen = textContent.length;\n\t\tyPos = documentData.ps ? documentData.ps[1] + documentData.ascent : 0;\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\ttSpan = this.textSpans[i].span || createNS('tspan');\n\t\t\ttSpan.textContent = textContent[i];\n\t\t\ttSpan.setAttribute('x', 0);\n\t\t\ttSpan.setAttribute('y', yPos);\n\t\t\ttSpan.style.display = 'inherit';\n\t\t\ttElement.appendChild(tSpan);\n\t\t\tif (!this.textSpans[i]) {\n\t\t\t\tthis.textSpans[i] = {\n\t\t\t\t\tspan: null,\n\t\t\t\t\tglyph: null,\n\t\t\t\t};\n\t\t\t}\n\t\t\tthis.textSpans[i].span = tSpan;\n\t\t\tyPos += documentData.finalLineHeight;\n\t\t}\n\n\t\tthis.layerElement.appendChild(tElement);\n\t} else {\n\t\tvar cachedSpansLength = this.textSpans.length;\n\t\tvar charData;\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tif (!this.textSpans[i]) {\n\t\t\t\tthis.textSpans[i] = {\n\t\t\t\t\tspan: null,\n\t\t\t\t\tchildSpan: null,\n\t\t\t\t\tglyph: null,\n\t\t\t\t};\n\t\t\t}\n\t\t\tif (!usesGlyphs || !singleShape || i === 0) {\n\t\t\t\ttSpan = cachedSpansLength > i ? this.textSpans[i].span : createNS(usesGlyphs ? 'g' : 'text');\n\t\t\t\tif (cachedSpansLength <= i) {\n\t\t\t\t\ttSpan.setAttribute('stroke-linecap', 'butt');\n\t\t\t\t\ttSpan.setAttribute('stroke-linejoin', 'round');\n\t\t\t\t\ttSpan.setAttribute('stroke-miterlimit', '4');\n\t\t\t\t\tthis.textSpans[i].span = tSpan;\n\t\t\t\t\tif (usesGlyphs) {\n\t\t\t\t\t\tvar childSpan = createNS('g');\n\t\t\t\t\t\ttSpan.appendChild(childSpan);\n\t\t\t\t\t\tthis.textSpans[i].childSpan = childSpan;\n\t\t\t\t\t}\n\t\t\t\t\tthis.textSpans[i].span = tSpan;\n\t\t\t\t\tthis.layerElement.appendChild(tSpan);\n\t\t\t\t}\n\t\t\t\ttSpan.style.display = 'inherit';\n\t\t\t}\n\n\t\t\tmatrixHelper.reset();\n\t\t\tif (singleShape) {\n\t\t\t\tif (letters[i].n) {\n\t\t\t\t\txPos = -trackingOffset;\n\t\t\t\t\tyPos += documentData.yOffset;\n\t\t\t\t\tyPos += firstLine ? 1 : 0;\n\t\t\t\t\tfirstLine = false;\n\t\t\t\t}\n\t\t\t\tthis.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\n\t\t\t\txPos += letters[i].l || 0;\n\t\t\t\t// xPos += letters[i].val === ' ' ? 0 : trackingOffset;\n\t\t\t\txPos += trackingOffset;\n\t\t\t}\n\t\t\tif (usesGlyphs) {\n\t\t\t\tcharData = this.globalData.fontManager.getCharData(\n\t\t\t\t\tdocumentData.finalText[i],\n\t\t\t\t\tfontData.fStyle,\n\t\t\t\t\tthis.globalData.fontManager.getFontByName(documentData.f).fFamily\n\t\t\t\t);\n\t\t\t\tvar glyphElement;\n\t\t\t\t// t === 1 means the character has been replaced with an animated shaped\n\t\t\t\tif (charData.t === 1) {\n\t\t\t\t\tglyphElement = new SVGCompElement(charData.data, this.globalData, this);\n\t\t\t\t} else {\n\t\t\t\t\tvar data = emptyShapeData;\n\t\t\t\t\tif (charData.data && charData.data.shapes) {\n\t\t\t\t\t\tdata = this.buildShapeData(charData.data, documentData.finalSize);\n\t\t\t\t\t}\n\t\t\t\t\tglyphElement = new SVGShapeElement(data, this.globalData, this);\n\t\t\t\t}\n\t\t\t\tif (this.textSpans[i].glyph) {\n\t\t\t\t\tvar glyph = this.textSpans[i].glyph;\n\t\t\t\t\tthis.textSpans[i].childSpan.removeChild(glyph.layerElement);\n\t\t\t\t\tglyph.destroy();\n\t\t\t\t}\n\t\t\t\tthis.textSpans[i].glyph = glyphElement;\n\t\t\t\tglyphElement._debug = true;\n\t\t\t\tglyphElement.prepareFrame(0);\n\t\t\t\tglyphElement.renderFrame();\n\t\t\t\tthis.textSpans[i].childSpan.appendChild(glyphElement.layerElement);\n\t\t\t\t// when using animated shapes, the layer will be scaled instead of replacing the internal scale\n\t\t\t\t// this might have issues with strokes and might need a different solution\n\t\t\t\tif (charData.t === 1) {\n\t\t\t\t\tthis.textSpans[i].childSpan.setAttribute('transform', 'scale(' + documentData.finalSize / 100 + ',' + documentData.finalSize / 100 + ')');\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (singleShape) {\n\t\t\t\t\ttSpan.setAttribute('transform', 'translate(' + matrixHelper.props[12] + ',' + matrixHelper.props[13] + ')');\n\t\t\t\t}\n\t\t\t\ttSpan.textContent = letters[i].val;\n\t\t\t\ttSpan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\n\t\t\t}\n\t\t\t//\n\t\t}\n\t\tif (singleShape && tSpan) {\n\t\t\ttSpan.setAttribute('d', shapeStr);\n\t\t}\n\t}\n\twhile (i < this.textSpans.length) {\n\t\tthis.textSpans[i].span.style.display = 'none';\n\t\ti += 1;\n\t}\n\n\tthis._sizeChanged = true;\n};\n\nSVGTextLottieElement.prototype.sourceRectAtTime = function () {\n\tthis.prepareFrame(this.comp.renderedFrame - this.data.st);\n\tthis.renderInnerContent();\n\tif (this._sizeChanged) {\n\t\tthis._sizeChanged = false;\n\t\tvar textBox = this.layerElement.getBBox();\n\t\tthis.bbox = {\n\t\t\ttop: textBox.y,\n\t\t\tleft: textBox.x,\n\t\t\twidth: textBox.width,\n\t\t\theight: textBox.height,\n\t\t};\n\t}\n\treturn this.bbox;\n};\n\nSVGTextLottieElement.prototype.getValue = function () {\n\tvar i;\n\tvar len = this.textSpans.length;\n\tvar glyphElement;\n\tthis.renderedFrame = this.comp.renderedFrame;\n\tfor (i = 0; i < len; i += 1) {\n\t\tglyphElement = this.textSpans[i].glyph;\n\t\tif (glyphElement) {\n\t\t\tglyphElement.prepareFrame(this.comp.renderedFrame - this.data.st);\n\t\t\tif (glyphElement._mdf) {\n\t\t\t\tthis._mdf = true;\n\t\t\t}\n\t\t}\n\t}\n};\n\nSVGTextLottieElement.prototype.renderInnerContent = function () {\n\tif (!this.data.singleShape || this._mdf) {\n\t\tthis.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n\t\tif (this.lettersChangedFlag || this.textAnimator.lettersChangedFlag) {\n\t\t\tthis._sizeChanged = true;\n\t\t\tvar i;\n\t\t\tvar len;\n\t\t\tvar renderedLetters = this.textAnimator.renderedLetters;\n\n\t\t\tvar letters = this.textProperty.currentData.l;\n\n\t\t\tlen = letters.length;\n\t\t\tvar renderedLetter;\n\t\t\tvar textSpan;\n\t\t\tvar glyphElement;\n\t\t\tfor (i = 0; i < len; i += 1) {\n\t\t\t\tif (!letters[i].n) {\n\t\t\t\t\trenderedLetter = renderedLetters[i];\n\t\t\t\t\ttextSpan = this.textSpans[i].span;\n\t\t\t\t\tglyphElement = this.textSpans[i].glyph;\n\t\t\t\t\tif (glyphElement) {\n\t\t\t\t\t\tglyphElement.renderFrame();\n\t\t\t\t\t}\n\t\t\t\t\tif (renderedLetter._mdf.m) {\n\t\t\t\t\t\ttextSpan.setAttribute('transform', renderedLetter.m);\n\t\t\t\t\t}\n\t\t\t\t\tif (renderedLetter._mdf.o) {\n\t\t\t\t\t\ttextSpan.setAttribute('opacity', renderedLetter.o);\n\t\t\t\t\t}\n\t\t\t\t\tif (renderedLetter._mdf.sw) {\n\t\t\t\t\t\ttextSpan.setAttribute('stroke-width', renderedLetter.sw);\n\t\t\t\t\t}\n\t\t\t\t\tif (renderedLetter._mdf.sc) {\n\t\t\t\t\t\ttextSpan.setAttribute('stroke', renderedLetter.sc);\n\t\t\t\t\t}\n\t\t\t\t\tif (renderedLetter._mdf.fc) {\n\t\t\t\t\t\ttextSpan.setAttribute('fill', renderedLetter.fc);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\nfunction ISolidElement(data, globalData, comp) {\n\tthis.initElement(data, globalData, comp);\n}\nextendPrototype([IImageElement], ISolidElement);\n\nISolidElement.prototype.createContent = function () {\n\tvar rect = createNS('rect');\n\t/// /rect.style.width = this.data.sw;\n\t/// /rect.style.height = this.data.sh;\n\t/// /rect.style.fill = this.data.sc;\n\trect.setAttribute('width', this.data.sw);\n\trect.setAttribute('height', this.data.sh);\n\trect.setAttribute('fill', this.data.sc);\n\tthis.layerElement.appendChild(rect);\n};\n\nfunction NullElement(data, globalData, comp) {\n\tthis.initFrame();\n\tthis.initBaseData(data, globalData, comp);\n\tthis.initFrame();\n\tthis.initTransform(data, globalData, comp);\n\tthis.initHierarchy();\n}\n\nNullElement.prototype.prepareFrame = function (num) {\n\tthis.prepareProperties(num, true);\n};\n\nNullElement.prototype.renderFrame = function () {\n};\n\nNullElement.prototype.getBaseElement = function () {\n\treturn null;\n};\n\nNullElement.prototype.destroy = function () {\n};\n\nNullElement.prototype.sourceRectAtTime = function () {\n};\n\nNullElement.prototype.hide = function () {\n};\n\nextendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement], NullElement);\n\nfunction SVGRendererBase() {\n}\n\nextendPrototype([BaseRenderer], SVGRendererBase);\n\nSVGRendererBase.prototype.createNull = function (data) {\n\treturn new NullElement(data, this.globalData, this);\n};\n\nSVGRendererBase.prototype.createShape = function (data) {\n\treturn new SVGShapeElement(data, this.globalData, this);\n};\n\nSVGRendererBase.prototype.createText = function (data) {\n\treturn new SVGTextLottieElement(data, this.globalData, this);\n};\n\nSVGRendererBase.prototype.createImage = function (data) {\n\treturn new IImageElement(data, this.globalData, this);\n};\n\nSVGRendererBase.prototype.createSolid = function (data) {\n\treturn new ISolidElement(data, this.globalData, this);\n};\n\nSVGRendererBase.prototype.configAnimation = function (animData) {\n\tthis.svgElement.setAttribute('xmlns', 'http://www.w3.org/2000/svg');\n\tif (this.renderConfig.viewBoxSize) {\n\t\tthis.svgElement.setAttribute('viewBox', this.renderConfig.viewBoxSize);\n\t} else {\n\t\tthis.svgElement.setAttribute('viewBox', '0 0 ' + animData.w + ' ' + animData.h);\n\t}\n\n\tif (!this.renderConfig.viewBoxOnly) {\n\t\tthis.svgElement.setAttribute('width', animData.w);\n\t\tthis.svgElement.setAttribute('height', animData.h);\n\t\tthis.svgElement.style.width = '100%';\n\t\tthis.svgElement.style.height = '100%';\n\t\tthis.svgElement.style.transform = 'translate3d(0,0,0)';\n\t\tthis.svgElement.style.contentVisibility = this.renderConfig.contentVisibility;\n\t}\n\tif (this.renderConfig.width) {\n\t\tthis.svgElement.setAttribute('width', this.renderConfig.width);\n\t}\n\tif (this.renderConfig.height) {\n\t\tthis.svgElement.setAttribute('height', this.renderConfig.height);\n\t}\n\tif (this.renderConfig.className) {\n\t\tthis.svgElement.setAttribute('class', this.renderConfig.className);\n\t}\n\tif (this.renderConfig.id) {\n\t\tthis.svgElement.setAttribute('id', this.renderConfig.id);\n\t}\n\tif (this.renderConfig.focusable !== undefined) {\n\t\tthis.svgElement.setAttribute('focusable', this.renderConfig.focusable);\n\t}\n\tthis.svgElement.setAttribute('preserveAspectRatio', this.renderConfig.preserveAspectRatio);\n\t// this.layerElement.style.transform = 'translate3d(0,0,0)';\n\t// this.layerElement.style.transformOrigin = this.layerElement.style.mozTransformOrigin = this.layerElement.style.webkitTransformOrigin = this.layerElement.style['-webkit-transform'] = \"0px 0px 0px\";\n\tthis.animationItem.wrapper.appendChild(this.svgElement);\n\t// Mask animation\n\tvar defs = this.globalData.defs;\n\n\tthis.setupGlobalData(animData, defs);\n\tthis.globalData.progressiveLoad = this.renderConfig.progressiveLoad;\n\tthis.data = animData;\n\n\tvar maskElement = createNS('clipPath');\n\tvar rect = createNS('rect');\n\trect.setAttribute('width', animData.w);\n\trect.setAttribute('height', animData.h);\n\trect.setAttribute('x', 0);\n\trect.setAttribute('y', 0);\n\tvar maskId = createElementID();\n\tmaskElement.setAttribute('id', maskId);\n\tmaskElement.appendChild(rect);\n\tthis.layerElement.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + maskId + ')');\n\n\tdefs.appendChild(maskElement);\n\tthis.layers = animData.layers;\n\tthis.elements = createSizedArray(animData.layers.length);\n};\n\nSVGRendererBase.prototype.destroy = function () {\n\tif (this.animationItem.wrapper) {\n\t\tthis.animationItem.wrapper.innerText = '';\n\t}\n\tthis.layerElement = null;\n\tthis.globalData.defs = null;\n\tvar i;\n\tvar len = this.layers ? this.layers.length : 0;\n\tfor (i = 0; i < len; i += 1) {\n\t\tif (this.elements[i]) {\n\t\t\tthis.elements[i].destroy();\n\t\t}\n\t}\n\tthis.elements.length = 0;\n\tthis.destroyed = true;\n\tthis.animationItem = null;\n};\n\nSVGRendererBase.prototype.updateContainerSize = function () {\n};\n\nSVGRendererBase.prototype.buildItem = function (pos) {\n\tvar elements = this.elements;\n\tif (elements[pos] || this.layers[pos].ty === 99) {\n\t\treturn;\n\t}\n\telements[pos] = true;\n\tvar element = this.createItem(this.layers[pos]);\n\n\telements[pos] = element;\n\tif (getExpressionsPlugin()) {\n\t\tif (this.layers[pos].ty === 0) {\n\t\t\tthis.globalData.projectInterface.registerComposition(element);\n\t\t}\n\t\telement.initExpressions();\n\t}\n\tthis.appendElementInPos(element, pos);\n\tif (this.layers[pos].tt) {\n\t\tif (!this.elements[pos - 1] || this.elements[pos - 1] === true) {\n\t\t\tthis.buildItem(pos - 1);\n\t\t\tthis.addPendingElement(element);\n\t\t} else {\n\t\t\telement.setMatte(elements[pos - 1].layerId);\n\t\t}\n\t}\n};\n\nSVGRendererBase.prototype.checkPendingElements = function () {\n\twhile (this.pendingElements.length) {\n\t\tvar element = this.pendingElements.pop();\n\t\telement.checkParenting();\n\t\tif (element.data.tt) {\n\t\t\tvar i = 0;\n\t\t\tvar len = this.elements.length;\n\t\t\twhile (i < len) {\n\t\t\t\tif (this.elements[i] === element) {\n\t\t\t\t\telement.setMatte(this.elements[i - 1].layerId);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\ti += 1;\n\t\t\t}\n\t\t}\n\t}\n};\n\nSVGRendererBase.prototype.renderFrame = function (num) {\n\tif (this.renderedFrame === num || this.destroyed) {\n\t\treturn;\n\t}\n\tif (num === null) {\n\t\tnum = this.renderedFrame;\n\t} else {\n\t\tthis.renderedFrame = num;\n\t}\n\t// console.log('-------');\n\t// console.log('FRAME ',num);\n\tthis.globalData.frameNum = num;\n\tthis.globalData.frameId += 1;\n\tthis.globalData.projectInterface.currentFrame = num;\n\tthis.globalData._mdf = false;\n\tvar i;\n\tvar len = this.layers.length;\n\tif (!this.completeLayers) {\n\t\tthis.checkLayers(num);\n\t}\n\tfor (i = len - 1; i >= 0; i -= 1) {\n\t\tif (this.completeLayers || this.elements[i]) {\n\t\t\tthis.elements[i].prepareFrame(num - this.layers[i].st);\n\t\t}\n\t}\n\tif (this.globalData._mdf) {\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tif (this.completeLayers || this.elements[i]) {\n\t\t\t\tthis.elements[i].renderFrame();\n\t\t\t}\n\t\t}\n\t}\n};\n\nSVGRendererBase.prototype.appendElementInPos = function (element, pos) {\n\tvar newElement = element.getBaseElement();\n\tif (!newElement) {\n\t\treturn;\n\t}\n\tvar i = 0;\n\tvar nextElement;\n\twhile (i < pos) {\n\t\tif (this.elements[i] && this.elements[i] !== true && this.elements[i].getBaseElement()) {\n\t\t\tnextElement = this.elements[i].getBaseElement();\n\t\t}\n\t\ti += 1;\n\t}\n\tif (nextElement) {\n\t\tthis.layerElement.insertBefore(newElement, nextElement);\n\t} else {\n\t\tthis.layerElement.appendChild(newElement);\n\t}\n};\n\nSVGRendererBase.prototype.hide = function () {\n\tthis.layerElement.style.display = 'none';\n};\n\nSVGRendererBase.prototype.show = function () {\n\tthis.layerElement.style.display = 'block';\n};\n\nfunction ICompElement() {}\n\nextendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement, RenderableDOMElement], ICompElement);\n\nICompElement.prototype.initElement = function (data, globalData, comp) {\n\tthis.initFrame();\n\tthis.initBaseData(data, globalData, comp);\n\tthis.initTransform(data, globalData, comp);\n\tthis.initRenderable();\n\tthis.initHierarchy();\n\tthis.initRendererElement();\n\tthis.createContainerElements();\n\tthis.createRenderableComponents();\n\tif (this.data.xt || !globalData.progressiveLoad) {\n\t\tthis.buildAllItems();\n\t}\n\tthis.hide();\n};\n\n/* ICompElement.prototype.hide = function(){\n    if(!this.hidden){\n        this.hideElement();\n        var i,len = this.elements.length;\n        for( i = 0; i < len; i+=1 ){\n            if(this.elements[i]){\n                this.elements[i].hide();\n            }\n        }\n    }\n}; */\n\nICompElement.prototype.prepareFrame = function (num) {\n\tthis._mdf = false;\n\tthis.prepareRenderableFrame(num);\n\tthis.prepareProperties(num, this.isInRange);\n\tif (!this.isInRange && !this.data.xt) {\n\t\treturn;\n\t}\n\n\tif (!this.tm._placeholder) {\n\t\tvar timeRemapped = this.tm.v;\n\t\tif (timeRemapped === this.data.op) {\n\t\t\ttimeRemapped = this.data.op - 1;\n\t\t}\n\t\tthis.renderedFrame = timeRemapped;\n\t} else {\n\t\tthis.renderedFrame = num / this.data.sr;\n\t}\n\tvar i;\n\tvar len = this.elements.length;\n\tif (!this.completeLayers) {\n\t\tthis.checkLayers(this.renderedFrame);\n\t}\n\t// This iteration needs to be backwards because of how expressions connect between each other\n\tfor (i = len - 1; i >= 0; i -= 1) {\n\t\tif (this.completeLayers || this.elements[i]) {\n\t\t\tthis.elements[i].prepareFrame(this.renderedFrame - this.layers[i].st);\n\t\t\tif (this.elements[i]._mdf) {\n\t\t\t\tthis._mdf = true;\n\t\t\t}\n\t\t}\n\t}\n};\n\nICompElement.prototype.renderInnerContent = function () {\n\tvar i;\n\tvar len = this.layers.length;\n\tfor (i = 0; i < len; i += 1) {\n\t\tif (this.completeLayers || this.elements[i]) {\n\t\t\tthis.elements[i].renderFrame();\n\t\t}\n\t}\n};\n\nICompElement.prototype.setElements = function (elems) {\n\tthis.elements = elems;\n};\n\nICompElement.prototype.getElements = function () {\n\treturn this.elements;\n};\n\nICompElement.prototype.destroyElements = function () {\n\tvar i;\n\tvar len = this.layers.length;\n\tfor (i = 0; i < len; i += 1) {\n\t\tif (this.elements[i]) {\n\t\t\tthis.elements[i].destroy();\n\t\t}\n\t}\n};\n\nICompElement.prototype.destroy = function () {\n\tthis.destroyElements();\n\tthis.destroyBaseElement();\n};\n\nfunction SVGCompElement(data, globalData, comp) {\n\tthis.layers = data.layers;\n\tthis.supports3d = true;\n\tthis.completeLayers = false;\n\tthis.pendingElements = [];\n\tthis.elements = this.layers ? createSizedArray(this.layers.length) : [];\n\tthis.initElement(data, globalData, comp);\n\tthis.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : { _placeholder: true };\n}\n\nextendPrototype([SVGRendererBase, ICompElement, SVGBaseElement], SVGCompElement);\n\nSVGCompElement.prototype.createComp = function (data) {\n\treturn new SVGCompElement(data, this.globalData, this);\n};\n\nfunction SVGRenderer(animationItem, config) {\n\tthis.animationItem = animationItem;\n\tthis.layers = null;\n\tthis.renderedFrame = -1;\n\tthis.svgElement = createNS('svg');\n\tvar ariaLabel = '';\n\tif (config && config.title) {\n\t\tvar titleElement = createNS('title');\n\t\tvar titleId = createElementID();\n\t\ttitleElement.setAttribute('id', titleId);\n\t\ttitleElement.textContent = config.title;\n\t\tthis.svgElement.appendChild(titleElement);\n\t\tariaLabel += titleId;\n\t}\n\tif (config && config.description) {\n\t\tvar descElement = createNS('desc');\n\t\tvar descId = createElementID();\n\t\tdescElement.setAttribute('id', descId);\n\t\tdescElement.textContent = config.description;\n\t\tthis.svgElement.appendChild(descElement);\n\t\tariaLabel += ' ' + descId;\n\t}\n\tif (ariaLabel) {\n\t\tthis.svgElement.setAttribute('aria-labelledby', ariaLabel);\n\t}\n\tvar defs = createNS('defs');\n\tthis.svgElement.appendChild(defs);\n\tvar maskElement = createNS('g');\n\tthis.svgElement.appendChild(maskElement);\n\tthis.layerElement = maskElement;\n\tthis.renderConfig = {\n\t\tpreserveAspectRatio: (config && config.preserveAspectRatio) || 'xMidYMid meet',\n\t\timagePreserveAspectRatio: (config && config.imagePreserveAspectRatio) || 'xMidYMid slice',\n\t\tcontentVisibility: (config && config.contentVisibility) || 'visible',\n\t\tprogressiveLoad: (config && config.progressiveLoad) || false,\n\t\thideOnTransparent: !((config && config.hideOnTransparent === false)),\n\t\tviewBoxOnly: (config && config.viewBoxOnly) || false,\n\t\tviewBoxSize: (config && config.viewBoxSize) || false,\n\t\tclassName: (config && config.className) || '',\n\t\tid: (config && config.id) || '',\n\t\tfocusable: config && config.focusable,\n\t\tfilterSize: {\n\t\t\twidth: (config && config.filterSize && config.filterSize.width) || '100%',\n\t\t\theight: (config && config.filterSize && config.filterSize.height) || '100%',\n\t\t\tx: (config && config.filterSize && config.filterSize.x) || '0%',\n\t\t\ty: (config && config.filterSize && config.filterSize.y) || '0%',\n\t\t},\n\t\twidth: (config && config.width),\n\t\theight: (config && config.height),\n\t};\n\n\tthis.globalData = {\n\t\t_mdf: false,\n\t\tframeNum: -1,\n\t\tdefs: defs,\n\t\trenderConfig: this.renderConfig,\n\t};\n\tthis.elements = [];\n\tthis.pendingElements = [];\n\tthis.destroyed = false;\n\tthis.rendererType = 'svg';\n}\n\nextendPrototype([SVGRendererBase], SVGRenderer);\n\nSVGRenderer.prototype.createComp = function (data) {\n\treturn new SVGCompElement(data, this.globalData, this);\n};\n\nfunction CVContextData() {\n\tthis.saved = [];\n\tthis.cArrPos = 0;\n\tthis.cTr = new Matrix();\n\tthis.cO = 1;\n\tvar i;\n\tvar len = 15;\n\tthis.savedOp = createTypedArray('float32', len);\n\tfor (i = 0; i < len; i += 1) {\n\t\tthis.saved[i] = createTypedArray('float32', 16);\n\t}\n\tthis._length = len;\n}\n\nCVContextData.prototype.duplicate = function () {\n\tvar newLength = this._length * 2;\n\tvar currentSavedOp = this.savedOp;\n\tthis.savedOp = createTypedArray('float32', newLength);\n\tthis.savedOp.set(currentSavedOp);\n\tvar i = 0;\n\tfor (i = this._length; i < newLength; i += 1) {\n\t\tthis.saved[i] = createTypedArray('float32', 16);\n\t}\n\tthis._length = newLength;\n};\n\nCVContextData.prototype.reset = function () {\n\tthis.cArrPos = 0;\n\tthis.cTr.reset();\n\tthis.cO = 1;\n};\n\nfunction ShapeTransformManager() {\n\tthis.sequences = {};\n\tthis.sequenceList = [];\n\tthis.transform_key_count = 0;\n}\n\nShapeTransformManager.prototype = {\n\taddTransformSequence: function (transforms) {\n\t\tvar i;\n\t\tvar len = transforms.length;\n\t\tvar key = '_';\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tkey += transforms[i].transform.key + '_';\n\t\t}\n\t\tvar sequence = this.sequences[key];\n\t\tif (!sequence) {\n\t\t\tsequence = {\n\t\t\t\ttransforms: [].concat(transforms),\n\t\t\t\tfinalTransform: new Matrix(),\n\t\t\t\t_mdf: false,\n\t\t\t};\n\t\t\tthis.sequences[key] = sequence;\n\t\t\tthis.sequenceList.push(sequence);\n\t\t}\n\t\treturn sequence;\n\t},\n\tprocessSequence: function (sequence, isFirstFrame) {\n\t\tvar i = 0;\n\t\tvar len = sequence.transforms.length;\n\t\tvar _mdf = isFirstFrame;\n\t\twhile (i < len && !isFirstFrame) {\n\t\t\tif (sequence.transforms[i].transform.mProps._mdf) {\n\t\t\t\t_mdf = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\ti += 1;\n\t\t}\n\t\tif (_mdf) {\n\t\t\tvar props;\n\t\t\tsequence.finalTransform.reset();\n\t\t\tfor (i = len - 1; i >= 0; i -= 1) {\n\t\t\t\tprops = sequence.transforms[i].transform.mProps.v.props;\n\t\t\t\tsequence.finalTransform.transform(props[0], props[1], props[2], props[3], props[4], props[5], props[6], props[7], props[8], props[9], props[10], props[11], props[12], props[13], props[14], props[15]);\n\t\t\t}\n\t\t}\n\t\tsequence._mdf = _mdf;\n\t},\n\tprocessSequences: function (isFirstFrame) {\n\t\tvar i;\n\t\tvar len = this.sequenceList.length;\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tthis.processSequence(this.sequenceList[i], isFirstFrame);\n\t\t}\n\t},\n\tgetNewKey: function () {\n\t\tthis.transform_key_count += 1;\n\t\treturn '_' + this.transform_key_count;\n\t},\n};\n\nfunction CVEffects() {\n\n}\nCVEffects.prototype.renderFrame = function () {};\n\nfunction CVMaskElement(data, element) {\n\tthis.data = data;\n\tthis.element = element;\n\tthis.masksProperties = this.data.masksProperties || [];\n\tthis.viewData = createSizedArray(this.masksProperties.length);\n\tvar i;\n\tvar len = this.masksProperties.length;\n\tvar hasMasks = false;\n\tfor (i = 0; i < len; i += 1) {\n\t\tif (this.masksProperties[i].mode !== 'n') {\n\t\t\thasMasks = true;\n\t\t}\n\t\tthis.viewData[i] = ShapePropertyFactory.getShapeProp(this.element, this.masksProperties[i], 3);\n\t}\n\tthis.hasMasks = hasMasks;\n\tif (hasMasks) {\n\t\tthis.element.addRenderableComponent(this);\n\t}\n}\n\nCVMaskElement.prototype.renderFrame = function () {\n\tif (!this.hasMasks) {\n\t\treturn;\n\t}\n\tvar transform = this.element.finalTransform.mat;\n\tvar ctx = this.element.canvasContext;\n\tvar i;\n\tvar len = this.masksProperties.length;\n\tvar pt;\n\tvar pts;\n\tvar data;\n\tctx.beginPath();\n\tfor (i = 0; i < len; i += 1) {\n\t\tif (this.masksProperties[i].mode !== 'n') {\n\t\t\tif (this.masksProperties[i].inv) {\n\t\t\t\tctx.moveTo(0, 0);\n\t\t\t\tctx.lineTo(this.element.globalData.compSize.w, 0);\n\t\t\t\tctx.lineTo(this.element.globalData.compSize.w, this.element.globalData.compSize.h);\n\t\t\t\tctx.lineTo(0, this.element.globalData.compSize.h);\n\t\t\t\tctx.lineTo(0, 0);\n\t\t\t}\n\t\t\tdata = this.viewData[i].v;\n\t\t\tpt = transform.applyToPointArray(data.v[0][0], data.v[0][1], 0);\n\t\t\tctx.moveTo(pt[0], pt[1]);\n\t\t\tvar j;\n\t\t\tvar jLen = data._length;\n\t\t\tfor (j = 1; j < jLen; j += 1) {\n\t\t\t\tpts = transform.applyToTriplePoints(data.o[j - 1], data.i[j], data.v[j]);\n\t\t\t\tctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);\n\t\t\t}\n\t\t\tpts = transform.applyToTriplePoints(data.o[j - 1], data.i[0], data.v[0]);\n\t\t\tctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);\n\t\t}\n\t}\n\tthis.element.globalData.renderer.save(true);\n\tctx.clip();\n};\n\nCVMaskElement.prototype.getMaskProperty = MaskElement.prototype.getMaskProperty;\n\nCVMaskElement.prototype.destroy = function () {\n\tthis.element = null;\n};\n\nfunction CVBaseElement() {\n}\n\nCVBaseElement.prototype = {\n\tcreateElements: function () {},\n\tinitRendererElement: function () {},\n\tcreateContainerElements: function () {\n\t\tthis.canvasContext = this.globalData.canvasContext;\n\t\tthis.renderableEffectsManager = new CVEffects(this);\n\t},\n\tcreateContent: function () {},\n\tsetBlendMode: function () {\n\t\tvar globalData = this.globalData;\n\t\tif (globalData.blendMode !== this.data.bm) {\n\t\t\tglobalData.blendMode = this.data.bm;\n\t\t\tvar blendModeValue = getBlendMode(this.data.bm);\n\t\t\tglobalData.canvasContext.globalCompositeOperation = blendModeValue;\n\t\t}\n\t},\n\tcreateRenderableComponents: function () {\n\t\tthis.maskManager = new CVMaskElement(this.data, this);\n\t},\n\thideElement: function () {\n\t\tif (!this.hidden && (!this.isInRange || this.isTransparent)) {\n\t\t\tthis.hidden = true;\n\t\t}\n\t},\n\tshowElement: function () {\n\t\tif (this.isInRange && !this.isTransparent) {\n\t\t\tthis.hidden = false;\n\t\t\tthis._isFirstFrame = true;\n\t\t\tthis.maskManager._isFirstFrame = true;\n\t\t}\n\t},\n\trenderFrame: function () {\n\t\tif (this.hidden || this.data.hd) {\n\t\t\treturn;\n\t\t}\n\t\tthis.renderTransform();\n\t\tthis.renderRenderable();\n\t\tthis.setBlendMode();\n\t\tvar forceRealStack = this.data.ty === 0;\n\t\tthis.globalData.renderer.save(forceRealStack);\n\t\tthis.globalData.renderer.ctxTransform(this.finalTransform.mat.props);\n\t\tthis.globalData.renderer.ctxOpacity(this.finalTransform.mProp.o.v);\n\t\tthis.renderInnerContent();\n\t\tthis.globalData.renderer.restore(forceRealStack);\n\t\tif (this.maskManager.hasMasks) {\n\t\t\tthis.globalData.renderer.restore(true);\n\t\t}\n\t\tif (this._isFirstFrame) {\n\t\t\tthis._isFirstFrame = false;\n\t\t}\n\t},\n\tdestroy: function () {\n\t\tthis.canvasContext = null;\n\t\tthis.data = null;\n\t\tthis.globalData = null;\n\t\tthis.maskManager.destroy();\n\t},\n\tmHelper: new Matrix(),\n};\nCVBaseElement.prototype.hide = CVBaseElement.prototype.hideElement;\nCVBaseElement.prototype.show = CVBaseElement.prototype.showElement;\n\nfunction CVShapeData(element, data, styles, transformsManager) {\n\tthis.styledShapes = [];\n\tthis.tr = [0, 0, 0, 0, 0, 0];\n\tvar ty = 4;\n\tif (data.ty === 'rc') {\n\t\tty = 5;\n\t} else if (data.ty === 'el') {\n\t\tty = 6;\n\t} else if (data.ty === 'sr') {\n\t\tty = 7;\n\t}\n\tthis.sh = ShapePropertyFactory.getShapeProp(element, data, ty, element);\n\tvar i;\n\tvar len = styles.length;\n\tvar styledShape;\n\tfor (i = 0; i < len; i += 1) {\n\t\tif (!styles[i].closed) {\n\t\t\tstyledShape = {\n\t\t\t\ttransforms: transformsManager.addTransformSequence(styles[i].transforms),\n\t\t\t\ttrNodes: [],\n\t\t\t};\n\t\t\tthis.styledShapes.push(styledShape);\n\t\t\tstyles[i].elements.push(styledShape);\n\t\t}\n\t}\n}\n\nCVShapeData.prototype.setAsAnimated = SVGShapeData.prototype.setAsAnimated;\n\nfunction CVShapeElement(data, globalData, comp) {\n\tthis.shapes = [];\n\tthis.shapesData = data.shapes;\n\tthis.stylesList = [];\n\tthis.itemsData = [];\n\tthis.prevViewData = [];\n\tthis.shapeModifiers = [];\n\tthis.processedElements = [];\n\tthis.transformsManager = new ShapeTransformManager();\n\tthis.initElement(data, globalData, comp);\n}\n\nextendPrototype([BaseElement, TransformElement, CVBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableElement], CVShapeElement);\n\nCVShapeElement.prototype.initElement = RenderableDOMElement.prototype.initElement;\n\nCVShapeElement.prototype.transformHelper = { opacity: 1, _opMdf: false };\n\nCVShapeElement.prototype.dashResetter = [];\n\nCVShapeElement.prototype.createContent = function () {\n\tthis.searchShapes(this.shapesData, this.itemsData, this.prevViewData, true, []);\n};\n\nCVShapeElement.prototype.createStyleElement = function (data, transforms) {\n\tvar styleElem = {\n\t\tdata: data,\n\t\ttype: data.ty,\n\t\tpreTransforms: this.transformsManager.addTransformSequence(transforms),\n\t\ttransforms: [],\n\t\telements: [],\n\t\tclosed: data.hd === true,\n\t};\n\tvar elementData = {};\n\tif (data.ty === 'fl' || data.ty === 'st') {\n\t\telementData.c = PropertyFactory.getProp(this, data.c, 1, 255, this);\n\t\tif (!elementData.c.k) {\n\t\t\tstyleElem.co = 'rgb(' + bmFloor(elementData.c.v[0]) + ',' + bmFloor(elementData.c.v[1]) + ',' + bmFloor(elementData.c.v[2]) + ')';\n\t\t}\n\t} else if (data.ty === 'gf' || data.ty === 'gs') {\n\t\telementData.s = PropertyFactory.getProp(this, data.s, 1, null, this);\n\t\telementData.e = PropertyFactory.getProp(this, data.e, 1, null, this);\n\t\telementData.h = PropertyFactory.getProp(this, data.h || { k: 0 }, 0, 0.01, this);\n\t\telementData.a = PropertyFactory.getProp(this, data.a || { k: 0 }, 0, degToRads, this);\n\t\telementData.g = new GradientProperty(this, data.g, this);\n\t}\n\telementData.o = PropertyFactory.getProp(this, data.o, 0, 0.01, this);\n\tif (data.ty === 'st' || data.ty === 'gs') {\n\t\tstyleElem.lc = lineCapEnum[data.lc || 2];\n\t\tstyleElem.lj = lineJoinEnum[data.lj || 2];\n\t\tif (data.lj == 1) { // eslint-disable-line eqeqeq\n\t\t\tstyleElem.ml = data.ml;\n\t\t}\n\t\telementData.w = PropertyFactory.getProp(this, data.w, 0, null, this);\n\t\tif (!elementData.w.k) {\n\t\t\tstyleElem.wi = elementData.w.v;\n\t\t}\n\t\tif (data.d) {\n\t\t\tvar d = new DashProperty(this, data.d, 'canvas', this);\n\t\t\telementData.d = d;\n\t\t\tif (!elementData.d.k) {\n\t\t\t\tstyleElem.da = elementData.d.dashArray;\n\t\t\t\tstyleElem.do = elementData.d.dashoffset[0];\n\t\t\t}\n\t\t}\n\t} else {\n\t\tstyleElem.r = data.r === 2 ? 'evenodd' : 'nonzero';\n\t}\n\tthis.stylesList.push(styleElem);\n\telementData.style = styleElem;\n\treturn elementData;\n};\n\nCVShapeElement.prototype.createGroupElement = function () {\n\tvar elementData = {\n\t\tit: [],\n\t\tprevViewData: [],\n\t};\n\treturn elementData;\n};\n\nCVShapeElement.prototype.createTransformElement = function (data) {\n\tvar elementData = {\n\t\ttransform: {\n\t\t\topacity: 1,\n\t\t\t_opMdf: false,\n\t\t\tkey: this.transformsManager.getNewKey(),\n\t\t\top: PropertyFactory.getProp(this, data.o, 0, 0.01, this),\n\t\t\tmProps: TransformPropertyFactory.getTransformProperty(this, data, this),\n\t\t},\n\t};\n\treturn elementData;\n};\n\nCVShapeElement.prototype.createShapeElement = function (data) {\n\tvar elementData = new CVShapeData(this, data, this.stylesList, this.transformsManager);\n\n\tthis.shapes.push(elementData);\n\tthis.addShapeToModifiers(elementData);\n\treturn elementData;\n};\n\nCVShapeElement.prototype.reloadShapes = function () {\n\tthis._isFirstFrame = true;\n\tvar i;\n\tvar len = this.itemsData.length;\n\tfor (i = 0; i < len; i += 1) {\n\t\tthis.prevViewData[i] = this.itemsData[i];\n\t}\n\tthis.searchShapes(this.shapesData, this.itemsData, this.prevViewData, true, []);\n\tlen = this.dynamicProperties.length;\n\tfor (i = 0; i < len; i += 1) {\n\t\tthis.dynamicProperties[i].getValue();\n\t}\n\tthis.renderModifiers();\n\tthis.transformsManager.processSequences(this._isFirstFrame);\n};\n\nCVShapeElement.prototype.addTransformToStyleList = function (transform) {\n\tvar i;\n\tvar len = this.stylesList.length;\n\tfor (i = 0; i < len; i += 1) {\n\t\tif (!this.stylesList[i].closed) {\n\t\t\tthis.stylesList[i].transforms.push(transform);\n\t\t}\n\t}\n};\n\nCVShapeElement.prototype.removeTransformFromStyleList = function () {\n\tvar i;\n\tvar len = this.stylesList.length;\n\tfor (i = 0; i < len; i += 1) {\n\t\tif (!this.stylesList[i].closed) {\n\t\t\tthis.stylesList[i].transforms.pop();\n\t\t}\n\t}\n};\n\nCVShapeElement.prototype.closeStyles = function (styles) {\n\tvar i;\n\tvar len = styles.length;\n\tfor (i = 0; i < len; i += 1) {\n\t\tstyles[i].closed = true;\n\t}\n};\n\nCVShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, shouldRender, transforms) {\n\tvar i;\n\tvar len = arr.length - 1;\n\tvar j;\n\tvar jLen;\n\tvar ownStyles = [];\n\tvar ownModifiers = [];\n\tvar processedPos;\n\tvar modifier;\n\tvar currentTransform;\n\tvar ownTransforms = [].concat(transforms);\n\tfor (i = len; i >= 0; i -= 1) {\n\t\tprocessedPos = this.searchProcessedElement(arr[i]);\n\t\tif (!processedPos) {\n\t\t\tarr[i]._shouldRender = shouldRender;\n\t\t} else {\n\t\t\titemsData[i] = prevViewData[processedPos - 1];\n\t\t}\n\t\tif (arr[i].ty === 'fl' || arr[i].ty === 'st' || arr[i].ty === 'gf' || arr[i].ty === 'gs') {\n\t\t\tif (!processedPos) {\n\t\t\t\titemsData[i] = this.createStyleElement(arr[i], ownTransforms);\n\t\t\t} else {\n\t\t\t\titemsData[i].style.closed = false;\n\t\t\t}\n\n\t\t\townStyles.push(itemsData[i].style);\n\t\t} else if (arr[i].ty === 'gr') {\n\t\t\tif (!processedPos) {\n\t\t\t\titemsData[i] = this.createGroupElement(arr[i]);\n\t\t\t} else {\n\t\t\t\tjLen = itemsData[i].it.length;\n\t\t\t\tfor (j = 0; j < jLen; j += 1) {\n\t\t\t\t\titemsData[i].prevViewData[j] = itemsData[i].it[j];\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.searchShapes(arr[i].it, itemsData[i].it, itemsData[i].prevViewData, shouldRender, ownTransforms);\n\t\t} else if (arr[i].ty === 'tr') {\n\t\t\tif (!processedPos) {\n\t\t\t\tcurrentTransform = this.createTransformElement(arr[i]);\n\t\t\t\titemsData[i] = currentTransform;\n\t\t\t}\n\t\t\townTransforms.push(itemsData[i]);\n\t\t\tthis.addTransformToStyleList(itemsData[i]);\n\t\t} else if (arr[i].ty === 'sh' || arr[i].ty === 'rc' || arr[i].ty === 'el' || arr[i].ty === 'sr') {\n\t\t\tif (!processedPos) {\n\t\t\t\titemsData[i] = this.createShapeElement(arr[i]);\n\t\t\t}\n\t\t} else if (arr[i].ty === 'tm' || arr[i].ty === 'rd' || arr[i].ty === 'pb') {\n\t\t\tif (!processedPos) {\n\t\t\t\tmodifier = ShapeModifiers.getModifier(arr[i].ty);\n\t\t\t\tmodifier.init(this, arr[i]);\n\t\t\t\titemsData[i] = modifier;\n\t\t\t\tthis.shapeModifiers.push(modifier);\n\t\t\t} else {\n\t\t\t\tmodifier = itemsData[i];\n\t\t\t\tmodifier.closed = false;\n\t\t\t}\n\t\t\townModifiers.push(modifier);\n\t\t} else if (arr[i].ty === 'rp') {\n\t\t\tif (!processedPos) {\n\t\t\t\tmodifier = ShapeModifiers.getModifier(arr[i].ty);\n\t\t\t\titemsData[i] = modifier;\n\t\t\t\tmodifier.init(this, arr, i, itemsData);\n\t\t\t\tthis.shapeModifiers.push(modifier);\n\t\t\t\tshouldRender = false;\n\t\t\t} else {\n\t\t\t\tmodifier = itemsData[i];\n\t\t\t\tmodifier.closed = true;\n\t\t\t}\n\t\t\townModifiers.push(modifier);\n\t\t}\n\t\tthis.addProcessedElement(arr[i], i + 1);\n\t}\n\tthis.removeTransformFromStyleList();\n\tthis.closeStyles(ownStyles);\n\tlen = ownModifiers.length;\n\tfor (i = 0; i < len; i += 1) {\n\t\townModifiers[i].closed = true;\n\t}\n};\n\nCVShapeElement.prototype.renderInnerContent = function () {\n\tthis.transformHelper.opacity = 1;\n\tthis.transformHelper._opMdf = false;\n\tthis.renderModifiers();\n\tthis.transformsManager.processSequences(this._isFirstFrame);\n\tthis.renderShape(this.transformHelper, this.shapesData, this.itemsData, true);\n};\n\nCVShapeElement.prototype.renderShapeTransform = function (parentTransform, groupTransform) {\n\tif (parentTransform._opMdf || groupTransform.op._mdf || this._isFirstFrame) {\n\t\tgroupTransform.opacity = parentTransform.opacity;\n\t\tgroupTransform.opacity *= groupTransform.op.v;\n\t\tgroupTransform._opMdf = true;\n\t}\n};\n\nCVShapeElement.prototype.drawLayer = function () {\n\tvar i;\n\tvar len = this.stylesList.length;\n\tvar j;\n\tvar jLen;\n\tvar k;\n\tvar kLen;\n\tvar elems;\n\tvar nodes;\n\tvar renderer = this.globalData.renderer;\n\tvar ctx = this.globalData.canvasContext;\n\tvar type;\n\tvar currentStyle;\n\tfor (i = 0; i < len; i += 1) {\n\t\tcurrentStyle = this.stylesList[i];\n\t\ttype = currentStyle.type;\n\n\t\t// Skipping style when\n\t\t// Stroke width equals 0\n\t\t// style should not be rendered (extra unused repeaters)\n\t\t// current opacity equals 0\n\t\t// global opacity equals 0\n\t\tif (!(((type === 'st' || type === 'gs') && currentStyle.wi === 0) || !currentStyle.data._shouldRender || currentStyle.coOp === 0 || this.globalData.currentGlobalAlpha === 0)) {\n\t\t\trenderer.save();\n\t\t\telems = currentStyle.elements;\n\t\t\tif (type === 'st' || type === 'gs') {\n\t\t\t\tctx.strokeStyle = type === 'st' ? currentStyle.co : currentStyle.grd;\n\t\t\t\tctx.lineWidth = currentStyle.wi;\n\t\t\t\tctx.lineCap = currentStyle.lc;\n\t\t\t\tctx.lineJoin = currentStyle.lj;\n\t\t\t\tctx.miterLimit = currentStyle.ml || 0;\n\t\t\t} else {\n\t\t\t\tctx.fillStyle = type === 'fl' ? currentStyle.co : currentStyle.grd;\n\t\t\t}\n\t\t\trenderer.ctxOpacity(currentStyle.coOp);\n\t\t\tif (type !== 'st' && type !== 'gs') {\n\t\t\t\tctx.beginPath();\n\t\t\t}\n\t\t\trenderer.ctxTransform(currentStyle.preTransforms.finalTransform.props);\n\t\t\tjLen = elems.length;\n\t\t\tfor (j = 0; j < jLen; j += 1) {\n\t\t\t\tif (type === 'st' || type === 'gs') {\n\t\t\t\t\tctx.beginPath();\n\t\t\t\t\tif (currentStyle.da) {\n\t\t\t\t\t\tctx.setLineDash(currentStyle.da);\n\t\t\t\t\t\tctx.lineDashOffset = currentStyle.do;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tnodes = elems[j].trNodes;\n\t\t\t\tkLen = nodes.length;\n\n\t\t\t\tfor (k = 0; k < kLen; k += 1) {\n\t\t\t\t\tif (nodes[k].t === 'm') {\n\t\t\t\t\t\tctx.moveTo(nodes[k].p[0], nodes[k].p[1]);\n\t\t\t\t\t} else if (nodes[k].t === 'c') {\n\t\t\t\t\t\tctx.bezierCurveTo(nodes[k].pts[0], nodes[k].pts[1], nodes[k].pts[2], nodes[k].pts[3], nodes[k].pts[4], nodes[k].pts[5]);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tctx.closePath();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (type === 'st' || type === 'gs') {\n\t\t\t\t\tctx.stroke();\n\t\t\t\t\tif (currentStyle.da) {\n\t\t\t\t\t\tctx.setLineDash(this.dashResetter);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (type !== 'st' && type !== 'gs') {\n\t\t\t\tctx.fill(currentStyle.r);\n\t\t\t}\n\t\t\trenderer.restore();\n\t\t}\n\t}\n};\n\nCVShapeElement.prototype.renderShape = function (parentTransform, items, data, isMain) {\n\tvar i;\n\tvar len = items.length - 1;\n\tvar groupTransform;\n\tgroupTransform = parentTransform;\n\tfor (i = len; i >= 0; i -= 1) {\n\t\tif (items[i].ty === 'tr') {\n\t\t\tgroupTransform = data[i].transform;\n\t\t\tthis.renderShapeTransform(parentTransform, groupTransform);\n\t\t} else if (items[i].ty === 'sh' || items[i].ty === 'el' || items[i].ty === 'rc' || items[i].ty === 'sr') {\n\t\t\tthis.renderPath(items[i], data[i]);\n\t\t} else if (items[i].ty === 'fl') {\n\t\t\tthis.renderFill(items[i], data[i], groupTransform);\n\t\t} else if (items[i].ty === 'st') {\n\t\t\tthis.renderStroke(items[i], data[i], groupTransform);\n\t\t} else if (items[i].ty === 'gf' || items[i].ty === 'gs') {\n\t\t\tthis.renderGradientFill(items[i], data[i], groupTransform);\n\t\t} else if (items[i].ty === 'gr') {\n\t\t\tthis.renderShape(groupTransform, items[i].it, data[i].it);\n\t\t} else if (items[i].ty === 'tm') {\n\t\t\t//\n\t\t}\n\t}\n\tif (isMain) {\n\t\tthis.drawLayer();\n\t}\n};\n\nCVShapeElement.prototype.renderStyledShape = function (styledShape, shape) {\n\tif (this._isFirstFrame || shape._mdf || styledShape.transforms._mdf) {\n\t\tvar shapeNodes = styledShape.trNodes;\n\t\tvar paths = shape.paths;\n\t\tvar i;\n\t\tvar len;\n\t\tvar j;\n\t\tvar jLen = paths._length;\n\t\tshapeNodes.length = 0;\n\t\tvar groupTransformMat = styledShape.transforms.finalTransform;\n\t\tfor (j = 0; j < jLen; j += 1) {\n\t\t\tvar pathNodes = paths.shapes[j];\n\t\t\tif (pathNodes && pathNodes.v) {\n\t\t\t\tlen = pathNodes._length;\n\t\t\t\tfor (i = 1; i < len; i += 1) {\n\t\t\t\t\tif (i === 1) {\n\t\t\t\t\t\tshapeNodes.push({\n\t\t\t\t\t\t\tt: 'm',\n\t\t\t\t\t\t\tp: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0),\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\tshapeNodes.push({\n\t\t\t\t\t\tt: 'c',\n\t\t\t\t\t\tpts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[i], pathNodes.v[i]),\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tif (len === 1) {\n\t\t\t\t\tshapeNodes.push({\n\t\t\t\t\t\tt: 'm',\n\t\t\t\t\t\tp: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0),\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tif (pathNodes.c && len) {\n\t\t\t\t\tshapeNodes.push({\n\t\t\t\t\t\tt: 'c',\n\t\t\t\t\t\tpts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[0], pathNodes.v[0]),\n\t\t\t\t\t});\n\t\t\t\t\tshapeNodes.push({\n\t\t\t\t\t\tt: 'z',\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tstyledShape.trNodes = shapeNodes;\n\t}\n};\n\nCVShapeElement.prototype.renderPath = function (pathData, itemData) {\n\tif (pathData.hd !== true && pathData._shouldRender) {\n\t\tvar i;\n\t\tvar len = itemData.styledShapes.length;\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tthis.renderStyledShape(itemData.styledShapes[i], itemData.sh);\n\t\t}\n\t}\n};\n\nCVShapeElement.prototype.renderFill = function (styleData, itemData, groupTransform) {\n\tvar styleElem = itemData.style;\n\n\tif (itemData.c._mdf || this._isFirstFrame) {\n\t\tstyleElem.co = 'rgb('\n\t\t\t+ bmFloor(itemData.c.v[0]) + ','\n\t\t\t+ bmFloor(itemData.c.v[1]) + ','\n\t\t\t+ bmFloor(itemData.c.v[2]) + ')';\n\t}\n\tif (itemData.o._mdf || groupTransform._opMdf || this._isFirstFrame) {\n\t\tstyleElem.coOp = itemData.o.v * groupTransform.opacity;\n\t}\n};\n\nCVShapeElement.prototype.renderGradientFill = function (styleData, itemData, groupTransform) {\n\tvar styleElem = itemData.style;\n\tvar grd;\n\tif (!styleElem.grd || itemData.g._mdf || itemData.s._mdf || itemData.e._mdf || (styleData.t !== 1 && (itemData.h._mdf || itemData.a._mdf))) {\n\t\tvar ctx = this.globalData.canvasContext;\n\t\tvar pt1 = itemData.s.v;\n\t\tvar pt2 = itemData.e.v;\n\t\tif (styleData.t === 1) {\n\t\t\tgrd = ctx.createLinearGradient(pt1[0], pt1[1], pt2[0], pt2[1]);\n\t\t} else {\n\t\t\tvar rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n\t\t\tvar ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);\n\n\t\t\tvar percent = itemData.h.v;\n\t\t\tif (percent >= 1) {\n\t\t\t\tpercent = 0.99;\n\t\t\t} else if (percent <= -1) {\n\t\t\t\tpercent = -0.99;\n\t\t\t}\n\t\t\tvar dist = rad * percent;\n\t\t\tvar x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\n\t\t\tvar y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\n\t\t\tgrd = ctx.createRadialGradient(x, y, 0, pt1[0], pt1[1], rad);\n\t\t}\n\n\t\tvar i;\n\t\tvar len = styleData.g.p;\n\t\tvar cValues = itemData.g.c;\n\t\tvar opacity = 1;\n\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tif (itemData.g._hasOpacity && itemData.g._collapsable) {\n\t\t\t\topacity = itemData.g.o[i * 2 + 1];\n\t\t\t}\n\t\t\tgrd.addColorStop(cValues[i * 4] / 100, 'rgba(' + cValues[i * 4 + 1] + ',' + cValues[i * 4 + 2] + ',' + cValues[i * 4 + 3] + ',' + opacity + ')');\n\t\t}\n\t\tstyleElem.grd = grd;\n\t}\n\tstyleElem.coOp = itemData.o.v * groupTransform.opacity;\n};\n\nCVShapeElement.prototype.renderStroke = function (styleData, itemData, groupTransform) {\n\tvar styleElem = itemData.style;\n\tvar d = itemData.d;\n\tif (d && (d._mdf || this._isFirstFrame)) {\n\t\tstyleElem.da = d.dashArray;\n\t\tstyleElem.do = d.dashoffset[0];\n\t}\n\tif (itemData.c._mdf || this._isFirstFrame) {\n\t\tstyleElem.co = 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')';\n\t}\n\tif (itemData.o._mdf || groupTransform._opMdf || this._isFirstFrame) {\n\t\tstyleElem.coOp = itemData.o.v * groupTransform.opacity;\n\t}\n\tif (itemData.w._mdf || this._isFirstFrame) {\n\t\tstyleElem.wi = itemData.w.v;\n\t}\n};\n\nCVShapeElement.prototype.destroy = function () {\n\tthis.shapesData = null;\n\tthis.globalData = null;\n\tthis.canvasContext = null;\n\tthis.stylesList.length = 0;\n\tthis.itemsData.length = 0;\n};\n\nfunction CVTextElement(data, globalData, comp) {\n\tthis.textSpans = [];\n\tthis.yOffset = 0;\n\tthis.fillColorAnim = false;\n\tthis.strokeColorAnim = false;\n\tthis.strokeWidthAnim = false;\n\tthis.stroke = false;\n\tthis.fill = false;\n\tthis.justifyOffset = 0;\n\tthis.currentRender = null;\n\tthis.renderType = 'canvas';\n\tthis.values = {\n\t\tfill: 'rgba(0,0,0,0)',\n\t\tstroke: 'rgba(0,0,0,0)',\n\t\tsWidth: 0,\n\t\tfValue: '',\n\t};\n\tthis.initElement(data, globalData, comp);\n}\nextendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement, ITextElement], CVTextElement);\n\nCVTextElement.prototype.tHelper = createTag('canvas').getContext('2d');\n\nCVTextElement.prototype.buildNewText = function () {\n\tvar documentData = this.textProperty.currentData;\n\tthis.renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);\n\n\tvar hasFill = false;\n\tif (documentData.fc) {\n\t\thasFill = true;\n\t\tthis.values.fill = this.buildColor(documentData.fc);\n\t} else {\n\t\tthis.values.fill = 'rgba(0,0,0,0)';\n\t}\n\tthis.fill = hasFill;\n\tvar hasStroke = false;\n\tif (documentData.sc) {\n\t\thasStroke = true;\n\t\tthis.values.stroke = this.buildColor(documentData.sc);\n\t\tthis.values.sWidth = documentData.sw;\n\t}\n\tvar fontData = this.globalData.fontManager.getFontByName(documentData.f);\n\tvar i;\n\tvar len;\n\tvar letters = documentData.l;\n\tvar matrixHelper = this.mHelper;\n\tthis.stroke = hasStroke;\n\tthis.values.fValue = documentData.finalSize + 'px ' + this.globalData.fontManager.getFontByName(documentData.f).fFamily;\n\tlen = documentData.finalText.length;\n\t// this.tHelper.font = this.values.fValue;\n\tvar charData;\n\tvar shapeData;\n\tvar k;\n\tvar kLen;\n\tvar shapes;\n\tvar j;\n\tvar jLen;\n\tvar pathNodes;\n\tvar commands;\n\tvar pathArr;\n\tvar singleShape = this.data.singleShape;\n\tvar trackingOffset = documentData.tr * 0.001 * documentData.finalSize;\n\tvar xPos = 0;\n\tvar yPos = 0;\n\tvar firstLine = true;\n\tvar cnt = 0;\n\tfor (i = 0; i < len; i += 1) {\n\t\tcharData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n\t\tshapeData = (charData && charData.data) || {};\n\t\tmatrixHelper.reset();\n\t\tif (singleShape && letters[i].n) {\n\t\t\txPos = -trackingOffset;\n\t\t\tyPos += documentData.yOffset;\n\t\t\tyPos += firstLine ? 1 : 0;\n\t\t\tfirstLine = false;\n\t\t}\n\t\tshapes = shapeData.shapes ? shapeData.shapes[0].it : [];\n\t\tjLen = shapes.length;\n\t\tmatrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\n\t\tif (singleShape) {\n\t\t\tthis.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\n\t\t}\n\t\tcommands = createSizedArray(jLen - 1);\n\t\tvar commandsCounter = 0;\n\t\tfor (j = 0; j < jLen; j += 1) {\n\t\t\tif (shapes[j].ty === 'sh') {\n\t\t\t\tkLen = shapes[j].ks.k.i.length;\n\t\t\t\tpathNodes = shapes[j].ks.k;\n\t\t\t\tpathArr = [];\n\t\t\t\tfor (k = 1; k < kLen; k += 1) {\n\t\t\t\t\tif (k === 1) {\n\t\t\t\t\t\tpathArr.push(matrixHelper.applyToX(pathNodes.v[0][0], pathNodes.v[0][1], 0), matrixHelper.applyToY(pathNodes.v[0][0], pathNodes.v[0][1], 0));\n\t\t\t\t\t}\n\t\t\t\t\tpathArr.push(matrixHelper.applyToX(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToY(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToX(pathNodes.i[k][0], pathNodes.i[k][1], 0), matrixHelper.applyToY(pathNodes.i[k][0], pathNodes.i[k][1], 0), matrixHelper.applyToX(pathNodes.v[k][0], pathNodes.v[k][1], 0), matrixHelper.applyToY(pathNodes.v[k][0], pathNodes.v[k][1], 0));\n\t\t\t\t}\n\t\t\t\tpathArr.push(matrixHelper.applyToX(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToY(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToX(pathNodes.i[0][0], pathNodes.i[0][1], 0), matrixHelper.applyToY(pathNodes.i[0][0], pathNodes.i[0][1], 0), matrixHelper.applyToX(pathNodes.v[0][0], pathNodes.v[0][1], 0), matrixHelper.applyToY(pathNodes.v[0][0], pathNodes.v[0][1], 0));\n\t\t\t\tcommands[commandsCounter] = pathArr;\n\t\t\t\tcommandsCounter += 1;\n\t\t\t}\n\t\t}\n\t\tif (singleShape) {\n\t\t\txPos += letters[i].l;\n\t\t\txPos += trackingOffset;\n\t\t}\n\t\tif (this.textSpans[cnt]) {\n\t\t\tthis.textSpans[cnt].elem = commands;\n\t\t} else {\n\t\t\tthis.textSpans[cnt] = { elem: commands };\n\t\t}\n\t\tcnt += 1;\n\t}\n};\n\nCVTextElement.prototype.renderInnerContent = function () {\n\tvar ctx = this.canvasContext;\n\tctx.font = this.values.fValue;\n\tctx.lineCap = 'butt';\n\tctx.lineJoin = 'miter';\n\tctx.miterLimit = 4;\n\n\tif (!this.data.singleShape) {\n\t\tthis.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n\t}\n\n\tvar i;\n\tvar len;\n\tvar j;\n\tvar jLen;\n\tvar k;\n\tvar kLen;\n\tvar renderedLetters = this.textAnimator.renderedLetters;\n\n\tvar letters = this.textProperty.currentData.l;\n\n\tlen = letters.length;\n\tvar renderedLetter;\n\tvar lastFill = null;\n\tvar lastStroke = null;\n\tvar lastStrokeW = null;\n\tvar commands;\n\tvar pathArr;\n\tfor (i = 0; i < len; i += 1) {\n\t\tif (!letters[i].n) {\n\t\t\trenderedLetter = renderedLetters[i];\n\t\t\tif (renderedLetter) {\n\t\t\t\tthis.globalData.renderer.save();\n\t\t\t\tthis.globalData.renderer.ctxTransform(renderedLetter.p);\n\t\t\t\tthis.globalData.renderer.ctxOpacity(renderedLetter.o);\n\t\t\t}\n\t\t\tif (this.fill) {\n\t\t\t\tif (renderedLetter && renderedLetter.fc) {\n\t\t\t\t\tif (lastFill !== renderedLetter.fc) {\n\t\t\t\t\t\tlastFill = renderedLetter.fc;\n\t\t\t\t\t\tctx.fillStyle = renderedLetter.fc;\n\t\t\t\t\t}\n\t\t\t\t} else if (lastFill !== this.values.fill) {\n\t\t\t\t\tlastFill = this.values.fill;\n\t\t\t\t\tctx.fillStyle = this.values.fill;\n\t\t\t\t}\n\t\t\t\tcommands = this.textSpans[i].elem;\n\t\t\t\tjLen = commands.length;\n\t\t\t\tthis.globalData.canvasContext.beginPath();\n\t\t\t\tfor (j = 0; j < jLen; j += 1) {\n\t\t\t\t\tpathArr = commands[j];\n\t\t\t\t\tkLen = pathArr.length;\n\t\t\t\t\tthis.globalData.canvasContext.moveTo(pathArr[0], pathArr[1]);\n\t\t\t\t\tfor (k = 2; k < kLen; k += 6) {\n\t\t\t\t\t\tthis.globalData.canvasContext.bezierCurveTo(pathArr[k], pathArr[k + 1], pathArr[k + 2], pathArr[k + 3], pathArr[k + 4], pathArr[k + 5]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tthis.globalData.canvasContext.closePath();\n\t\t\t\tthis.globalData.canvasContext.fill();\n\t\t\t\t/// ctx.fillText(this.textSpans[i].val,0,0);\n\t\t\t}\n\t\t\tif (this.stroke) {\n\t\t\t\tif (renderedLetter && renderedLetter.sw) {\n\t\t\t\t\tif (lastStrokeW !== renderedLetter.sw) {\n\t\t\t\t\t\tlastStrokeW = renderedLetter.sw;\n\t\t\t\t\t\tctx.lineWidth = renderedLetter.sw;\n\t\t\t\t\t}\n\t\t\t\t} else if (lastStrokeW !== this.values.sWidth) {\n\t\t\t\t\tlastStrokeW = this.values.sWidth;\n\t\t\t\t\tctx.lineWidth = this.values.sWidth;\n\t\t\t\t}\n\t\t\t\tif (renderedLetter && renderedLetter.sc) {\n\t\t\t\t\tif (lastStroke !== renderedLetter.sc) {\n\t\t\t\t\t\tlastStroke = renderedLetter.sc;\n\t\t\t\t\t\tctx.strokeStyle = renderedLetter.sc;\n\t\t\t\t\t}\n\t\t\t\t} else if (lastStroke !== this.values.stroke) {\n\t\t\t\t\tlastStroke = this.values.stroke;\n\t\t\t\t\tctx.strokeStyle = this.values.stroke;\n\t\t\t\t}\n\t\t\t\tcommands = this.textSpans[i].elem;\n\t\t\t\tjLen = commands.length;\n\t\t\t\tthis.globalData.canvasContext.beginPath();\n\t\t\t\tfor (j = 0; j < jLen; j += 1) {\n\t\t\t\t\tpathArr = commands[j];\n\t\t\t\t\tkLen = pathArr.length;\n\t\t\t\t\tthis.globalData.canvasContext.moveTo(pathArr[0], pathArr[1]);\n\t\t\t\t\tfor (k = 2; k < kLen; k += 6) {\n\t\t\t\t\t\tthis.globalData.canvasContext.bezierCurveTo(pathArr[k], pathArr[k + 1], pathArr[k + 2], pathArr[k + 3], pathArr[k + 4], pathArr[k + 5]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tthis.globalData.canvasContext.closePath();\n\t\t\t\tthis.globalData.canvasContext.stroke();\n\t\t\t\t/// ctx.strokeText(letters[i].val,0,0);\n\t\t\t}\n\t\t\tif (renderedLetter) {\n\t\t\t\tthis.globalData.renderer.restore();\n\t\t\t}\n\t\t}\n\t}\n};\n\nfunction CVImageElement(data, globalData, comp) {\n\tthis.assetData = globalData.getAssetData(data.refId);\n\tthis.img = globalData.imageLoader.getAsset(this.assetData);\n\tthis.initElement(data, globalData, comp);\n}\nextendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVImageElement);\n\nCVImageElement.prototype.initElement = SVGShapeElement.prototype.initElement;\nCVImageElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;\n\nCVImageElement.prototype.createContent = function () {\n\tif (this.img.width && (this.assetData.w !== this.img.width || this.assetData.h !== this.img.height)) {\n\t\tvar canvas = createTag('canvas');\n\t\tcanvas.width = this.assetData.w;\n\t\tcanvas.height = this.assetData.h;\n\t\tvar ctx = canvas.getContext('2d');\n\n\t\tvar imgW = this.img.width;\n\t\tvar imgH = this.img.height;\n\t\tvar imgRel = imgW / imgH;\n\t\tvar canvasRel = this.assetData.w / this.assetData.h;\n\t\tvar widthCrop;\n\t\tvar heightCrop;\n\t\tvar par = this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio;\n\t\tif ((imgRel > canvasRel && par === 'xMidYMid slice') || (imgRel < canvasRel && par !== 'xMidYMid slice')) {\n\t\t\theightCrop = imgH;\n\t\t\twidthCrop = heightCrop * canvasRel;\n\t\t} else {\n\t\t\twidthCrop = imgW;\n\t\t\theightCrop = widthCrop / canvasRel;\n\t\t}\n\t\tctx.drawImage(this.img, (imgW - widthCrop) / 2, (imgH - heightCrop) / 2, widthCrop, heightCrop, 0, 0, this.assetData.w, this.assetData.h);\n\t\tthis.img = canvas;\n\t}\n};\n\nCVImageElement.prototype.renderInnerContent = function () {\n\tthis.canvasContext.drawImage(this.img, 0, 0);\n};\n\nCVImageElement.prototype.destroy = function () {\n\tthis.img = null;\n};\n\nfunction CVSolidElement(data, globalData, comp) {\n\tthis.initElement(data, globalData, comp);\n}\nextendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVSolidElement);\n\nCVSolidElement.prototype.initElement = SVGShapeElement.prototype.initElement;\nCVSolidElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;\n\nCVSolidElement.prototype.renderInnerContent = function () {\n\tvar ctx = this.canvasContext;\n\tctx.fillStyle = this.data.sc;\n\tctx.fillRect(0, 0, this.data.sw, this.data.sh);\n\t//\n};\n\nfunction CanvasRendererBase(animationItem, config) {\n\tthis.animationItem = animationItem;\n\tthis.renderConfig = {\n\t\tclearCanvas: (config && config.clearCanvas !== undefined) ? config.clearCanvas : true,\n\t\tcontext: (config && config.context) || null,\n\t\tprogressiveLoad: (config && config.progressiveLoad) || false,\n\t\tpreserveAspectRatio: (config && config.preserveAspectRatio) || 'xMidYMid meet',\n\t\timagePreserveAspectRatio: (config && config.imagePreserveAspectRatio) || 'xMidYMid slice',\n\t\tcontentVisibility: (config && config.contentVisibility) || 'visible',\n\t\tclassName: (config && config.className) || '',\n\t\tid: (config && config.id) || '',\n\t};\n\tthis.renderConfig.dpr = (config && config.dpr) || 1;\n\tif (this.animationItem.wrapper) {\n\t\tthis.renderConfig.dpr = (config && config.dpr) || window.devicePixelRatio || 1;\n\t}\n\tthis.renderedFrame = -1;\n\tthis.globalData = {\n\t\tframeNum: -1,\n\t\t_mdf: false,\n\t\trenderConfig: this.renderConfig,\n\t\tcurrentGlobalAlpha: -1,\n\t};\n\tthis.contextData = new CVContextData();\n\tthis.elements = [];\n\tthis.pendingElements = [];\n\tthis.transformMat = new Matrix();\n\tthis.completeLayers = false;\n\tthis.rendererType = 'canvas';\n}\nextendPrototype([BaseRenderer], CanvasRendererBase);\n\nCanvasRendererBase.prototype.createShape = function (data) {\n\treturn new CVShapeElement(data, this.globalData, this);\n};\n\nCanvasRendererBase.prototype.createText = function (data) {\n\treturn new CVTextElement(data, this.globalData, this);\n};\n\nCanvasRendererBase.prototype.createImage = function (data) {\n\treturn new CVImageElement(data, this.globalData, this);\n};\n\nCanvasRendererBase.prototype.createSolid = function (data) {\n\treturn new CVSolidElement(data, this.globalData, this);\n};\n\nCanvasRendererBase.prototype.createNull = SVGRenderer.prototype.createNull;\n\nCanvasRendererBase.prototype.ctxTransform = function (props) {\n\tif (props[0] === 1 && props[1] === 0 && props[4] === 0 && props[5] === 1 && props[12] === 0 && props[13] === 0) {\n\t\treturn;\n\t}\n\tif (!this.renderConfig.clearCanvas) {\n\t\tthis.canvasContext.transform(props[0], props[1], props[4], props[5], props[12], props[13]);\n\t\treturn;\n\t}\n\tthis.transformMat.cloneFromProps(props);\n\tvar cProps = this.contextData.cTr.props;\n\tthis.transformMat.transform(cProps[0], cProps[1], cProps[2], cProps[3], cProps[4], cProps[5], cProps[6], cProps[7], cProps[8], cProps[9], cProps[10], cProps[11], cProps[12], cProps[13], cProps[14], cProps[15]);\n\t// this.contextData.cTr.transform(props[0],props[1],props[2],props[3],props[4],props[5],props[6],props[7],props[8],props[9],props[10],props[11],props[12],props[13],props[14],props[15]);\n\tthis.contextData.cTr.cloneFromProps(this.transformMat.props);\n\tvar trProps = this.contextData.cTr.props;\n\tthis.canvasContext.setTransform(trProps[0], trProps[1], trProps[4], trProps[5], trProps[12], trProps[13]);\n};\n\nCanvasRendererBase.prototype.ctxOpacity = function (op) {\n\t/* if(op === 1){\n        return;\n    } */\n\tif (!this.renderConfig.clearCanvas) {\n\t\tthis.canvasContext.globalAlpha *= op < 0 ? 0 : op;\n\t\tthis.globalData.currentGlobalAlpha = this.contextData.cO;\n\t\treturn;\n\t}\n\tthis.contextData.cO *= op < 0 ? 0 : op;\n\tif (this.globalData.currentGlobalAlpha !== this.contextData.cO) {\n\t\tthis.canvasContext.globalAlpha = this.contextData.cO;\n\t\tthis.globalData.currentGlobalAlpha = this.contextData.cO;\n\t}\n};\n\nCanvasRendererBase.prototype.reset = function () {\n\tif (!this.renderConfig.clearCanvas) {\n\t\tthis.canvasContext.restore();\n\t\treturn;\n\t}\n\tthis.contextData.reset();\n};\n\nCanvasRendererBase.prototype.save = function (actionFlag) {\n\tif (!this.renderConfig.clearCanvas) {\n\t\tthis.canvasContext.save();\n\t\treturn;\n\t}\n\tif (actionFlag) {\n\t\tthis.canvasContext.save();\n\t}\n\tvar props = this.contextData.cTr.props;\n\tif (this.contextData._length <= this.contextData.cArrPos) {\n\t\tthis.contextData.duplicate();\n\t}\n\tvar i;\n\tvar arr = this.contextData.saved[this.contextData.cArrPos];\n\tfor (i = 0; i < 16; i += 1) {\n\t\tarr[i] = props[i];\n\t}\n\tthis.contextData.savedOp[this.contextData.cArrPos] = this.contextData.cO;\n\tthis.contextData.cArrPos += 1;\n};\n\nCanvasRendererBase.prototype.restore = function (actionFlag) {\n\tif (!this.renderConfig.clearCanvas) {\n\t\tthis.canvasContext.restore();\n\t\treturn;\n\t}\n\tif (actionFlag) {\n\t\tthis.canvasContext.restore();\n\t\tthis.globalData.blendMode = 'source-over';\n\t}\n\tthis.contextData.cArrPos -= 1;\n\tvar popped = this.contextData.saved[this.contextData.cArrPos];\n\tvar i;\n\tvar arr = this.contextData.cTr.props;\n\tfor (i = 0; i < 16; i += 1) {\n\t\tarr[i] = popped[i];\n\t}\n\tthis.canvasContext.setTransform(popped[0], popped[1], popped[4], popped[5], popped[12], popped[13]);\n\tpopped = this.contextData.savedOp[this.contextData.cArrPos];\n\tthis.contextData.cO = popped;\n\tif (this.globalData.currentGlobalAlpha !== popped) {\n\t\tthis.canvasContext.globalAlpha = popped;\n\t\tthis.globalData.currentGlobalAlpha = popped;\n\t}\n};\n\nCanvasRendererBase.prototype.configAnimation = function (animData) {\n\tif (this.animationItem.wrapper) {\n\t\tthis.animationItem.container = createTag('canvas');\n\t\tvar containerStyle = this.animationItem.container.style;\n\t\tcontainerStyle.width = '100%';\n\t\tcontainerStyle.height = '100%';\n\t\tvar origin = '0px 0px 0px';\n\t\tcontainerStyle.transformOrigin = origin;\n\t\tcontainerStyle.mozTransformOrigin = origin;\n\t\tcontainerStyle.webkitTransformOrigin = origin;\n\t\tcontainerStyle['-webkit-transform'] = origin;\n\t\tcontainerStyle.contentVisibility = this.renderConfig.contentVisibility;\n\t\tthis.animationItem.wrapper.appendChild(this.animationItem.container);\n\t\tthis.canvasContext = this.animationItem.container.getContext('2d');\n\t\tif (this.renderConfig.className) {\n\t\t\tthis.animationItem.container.setAttribute('class', this.renderConfig.className);\n\t\t}\n\t\tif (this.renderConfig.id) {\n\t\t\tthis.animationItem.container.setAttribute('id', this.renderConfig.id);\n\t\t}\n\t} else {\n\t\tthis.canvasContext = this.renderConfig.context;\n\t}\n\tthis.data = animData;\n\tthis.layers = animData.layers;\n\tthis.transformCanvas = {\n\t\tw: animData.w,\n\t\th: animData.h,\n\t\tsx: 0,\n\t\tsy: 0,\n\t\ttx: 0,\n\t\tty: 0,\n\t};\n\tthis.setupGlobalData(animData, document.body);\n\tthis.globalData.canvasContext = this.canvasContext;\n\tthis.globalData.renderer = this;\n\tthis.globalData.isDashed = false;\n\tthis.globalData.progressiveLoad = this.renderConfig.progressiveLoad;\n\tthis.globalData.transformCanvas = this.transformCanvas;\n\tthis.elements = createSizedArray(animData.layers.length);\n\n\tthis.updateContainerSize();\n};\n\nCanvasRendererBase.prototype.updateContainerSize = function () {\n\tthis.reset();\n\tvar elementWidth;\n\tvar elementHeight;\n\tif (this.animationItem.wrapper && this.animationItem.container) {\n\t\telementWidth = this.animationItem.wrapper.offsetWidth;\n\t\telementHeight = this.animationItem.wrapper.offsetHeight;\n\t\tthis.animationItem.container.setAttribute('width', elementWidth * this.renderConfig.dpr);\n\t\tthis.animationItem.container.setAttribute('height', elementHeight * this.renderConfig.dpr);\n\t} else {\n\t\telementWidth = this.canvasContext.canvas.width * this.renderConfig.dpr;\n\t\telementHeight = this.canvasContext.canvas.height * this.renderConfig.dpr;\n\t}\n\tvar elementRel;\n\tvar animationRel;\n\tif (this.renderConfig.preserveAspectRatio.indexOf('meet') !== -1 || this.renderConfig.preserveAspectRatio.indexOf('slice') !== -1) {\n\t\tvar par = this.renderConfig.preserveAspectRatio.split(' ');\n\t\tvar fillType = par[1] || 'meet';\n\t\tvar pos = par[0] || 'xMidYMid';\n\t\tvar xPos = pos.substr(0, 4);\n\t\tvar yPos = pos.substr(4);\n\t\telementRel = elementWidth / elementHeight;\n\t\tanimationRel = this.transformCanvas.w / this.transformCanvas.h;\n\t\tif ((animationRel > elementRel && fillType === 'meet') || (animationRel < elementRel && fillType === 'slice')) {\n\t\t\tthis.transformCanvas.sx = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n\t\t\tthis.transformCanvas.sy = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n\t\t} else {\n\t\t\tthis.transformCanvas.sx = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n\t\t\tthis.transformCanvas.sy = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n\t\t}\n\n\t\tif (xPos === 'xMid' && ((animationRel < elementRel && fillType === 'meet') || (animationRel > elementRel && fillType === 'slice'))) {\n\t\t\tthis.transformCanvas.tx = ((elementWidth - this.transformCanvas.w * (elementHeight / this.transformCanvas.h)) / 2) * this.renderConfig.dpr;\n\t\t} else if (xPos === 'xMax' && ((animationRel < elementRel && fillType === 'meet') || (animationRel > elementRel && fillType === 'slice'))) {\n\t\t\tthis.transformCanvas.tx = (elementWidth - this.transformCanvas.w * (elementHeight / this.transformCanvas.h)) * this.renderConfig.dpr;\n\t\t} else {\n\t\t\tthis.transformCanvas.tx = 0;\n\t\t}\n\t\tif (yPos === 'YMid' && ((animationRel > elementRel && fillType === 'meet') || (animationRel < elementRel && fillType === 'slice'))) {\n\t\t\tthis.transformCanvas.ty = ((elementHeight - this.transformCanvas.h * (elementWidth / this.transformCanvas.w)) / 2) * this.renderConfig.dpr;\n\t\t} else if (yPos === 'YMax' && ((animationRel > elementRel && fillType === 'meet') || (animationRel < elementRel && fillType === 'slice'))) {\n\t\t\tthis.transformCanvas.ty = ((elementHeight - this.transformCanvas.h * (elementWidth / this.transformCanvas.w))) * this.renderConfig.dpr;\n\t\t} else {\n\t\t\tthis.transformCanvas.ty = 0;\n\t\t}\n\t} else if (this.renderConfig.preserveAspectRatio === 'none') {\n\t\tthis.transformCanvas.sx = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n\t\tthis.transformCanvas.sy = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n\t\tthis.transformCanvas.tx = 0;\n\t\tthis.transformCanvas.ty = 0;\n\t} else {\n\t\tthis.transformCanvas.sx = this.renderConfig.dpr;\n\t\tthis.transformCanvas.sy = this.renderConfig.dpr;\n\t\tthis.transformCanvas.tx = 0;\n\t\tthis.transformCanvas.ty = 0;\n\t}\n\tthis.transformCanvas.props = [this.transformCanvas.sx, 0, 0, 0, 0, this.transformCanvas.sy, 0, 0, 0, 0, 1, 0, this.transformCanvas.tx, this.transformCanvas.ty, 0, 1];\n\t/* var i, len = this.elements.length;\n    for(i=0;i<len;i+=1){\n        if(this.elements[i] && this.elements[i].data.ty === 0){\n            this.elements[i].resize(this.globalData.transformCanvas);\n        }\n    } */\n\tthis.ctxTransform(this.transformCanvas.props);\n\tthis.canvasContext.beginPath();\n\tthis.canvasContext.rect(0, 0, this.transformCanvas.w, this.transformCanvas.h);\n\tthis.canvasContext.closePath();\n\tthis.canvasContext.clip();\n\n\tthis.renderFrame(this.renderedFrame, true);\n};\n\nCanvasRendererBase.prototype.destroy = function () {\n\tif (this.renderConfig.clearCanvas && this.animationItem.wrapper) {\n\t\tthis.animationItem.wrapper.innerText = '';\n\t}\n\tvar i;\n\tvar len = this.layers ? this.layers.length : 0;\n\tfor (i = len - 1; i >= 0; i -= 1) {\n\t\tif (this.elements[i]) {\n\t\t\tthis.elements[i].destroy();\n\t\t}\n\t}\n\tthis.elements.length = 0;\n\tthis.globalData.canvasContext = null;\n\tthis.animationItem.container = null;\n\tthis.destroyed = true;\n};\n\nCanvasRendererBase.prototype.renderFrame = function (num, forceRender) {\n\tif ((this.renderedFrame === num && this.renderConfig.clearCanvas === true && !forceRender) || this.destroyed || num === -1) {\n\t\treturn;\n\t}\n\tthis.renderedFrame = num;\n\tthis.globalData.frameNum = num - this.animationItem._isFirstFrame;\n\tthis.globalData.frameId += 1;\n\tthis.globalData._mdf = !this.renderConfig.clearCanvas || forceRender;\n\tthis.globalData.projectInterface.currentFrame = num;\n\n\t// console.log('--------');\n\t// console.log('NEW: ',num);\n\tvar i;\n\tvar len = this.layers.length;\n\tif (!this.completeLayers) {\n\t\tthis.checkLayers(num);\n\t}\n\n\tfor (i = 0; i < len; i += 1) {\n\t\tif (this.completeLayers || this.elements[i]) {\n\t\t\tthis.elements[i].prepareFrame(num - this.layers[i].st);\n\t\t}\n\t}\n\tif (this.globalData._mdf) {\n\t\tif (this.renderConfig.clearCanvas === true) {\n\t\t\tthis.canvasContext.clearRect(0, 0, this.transformCanvas.w, this.transformCanvas.h);\n\t\t} else {\n\t\t\tthis.save();\n\t\t}\n\t\tfor (i = len - 1; i >= 0; i -= 1) {\n\t\t\tif (this.completeLayers || this.elements[i]) {\n\t\t\t\tthis.elements[i].renderFrame();\n\t\t\t}\n\t\t}\n\t\tif (this.renderConfig.clearCanvas !== true) {\n\t\t\tthis.restore();\n\t\t}\n\t}\n};\n\nCanvasRendererBase.prototype.buildItem = function (pos) {\n\tvar elements = this.elements;\n\tif (elements[pos] || this.layers[pos].ty === 99) {\n\t\treturn;\n\t}\n\tvar element = this.createItem(this.layers[pos], this, this.globalData);\n\telements[pos] = element;\n\telement.initExpressions();\n\t/* if(this.layers[pos].ty === 0){\n        element.resize(this.globalData.transformCanvas);\n    } */\n};\n\nCanvasRendererBase.prototype.checkPendingElements = function () {\n\twhile (this.pendingElements.length) {\n\t\tvar element = this.pendingElements.pop();\n\t\telement.checkParenting();\n\t}\n};\n\nCanvasRendererBase.prototype.hide = function () {\n\tthis.animationItem.container.style.display = 'none';\n};\n\nCanvasRendererBase.prototype.show = function () {\n\tthis.animationItem.container.style.display = 'block';\n};\n\nfunction CVCompElement(data, globalData, comp) {\n\tthis.completeLayers = false;\n\tthis.layers = data.layers;\n\tthis.pendingElements = [];\n\tthis.elements = createSizedArray(this.layers.length);\n\tthis.initElement(data, globalData, comp);\n\tthis.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : { _placeholder: true };\n}\n\nextendPrototype([CanvasRendererBase, ICompElement, CVBaseElement], CVCompElement);\n\nCVCompElement.prototype.renderInnerContent = function () {\n\tvar ctx = this.canvasContext;\n\tctx.beginPath();\n\tctx.moveTo(0, 0);\n\tctx.lineTo(this.data.w, 0);\n\tctx.lineTo(this.data.w, this.data.h);\n\tctx.lineTo(0, this.data.h);\n\tctx.lineTo(0, 0);\n\tctx.clip();\n\tvar i;\n\tvar len = this.layers.length;\n\tfor (i = len - 1; i >= 0; i -= 1) {\n\t\tif (this.completeLayers || this.elements[i]) {\n\t\t\tthis.elements[i].renderFrame();\n\t\t}\n\t}\n};\n\nCVCompElement.prototype.destroy = function () {\n\tvar i;\n\tvar len = this.layers.length;\n\tfor (i = len - 1; i >= 0; i -= 1) {\n\t\tif (this.elements[i]) {\n\t\t\tthis.elements[i].destroy();\n\t\t}\n\t}\n\tthis.layers = null;\n\tthis.elements = null;\n};\n\nCVCompElement.prototype.createComp = function (data) {\n\treturn new CVCompElement(data, this.globalData, this);\n};\n\nfunction CanvasRenderer(animationItem, config) {\n\tthis.animationItem = animationItem;\n\tthis.renderConfig = {\n\t\tclearCanvas: (config && config.clearCanvas !== undefined) ? config.clearCanvas : true,\n\t\tcontext: (config && config.context) || null,\n\t\tprogressiveLoad: (config && config.progressiveLoad) || false,\n\t\tpreserveAspectRatio: (config && config.preserveAspectRatio) || 'xMidYMid meet',\n\t\timagePreserveAspectRatio: (config && config.imagePreserveAspectRatio) || 'xMidYMid slice',\n\t\tcontentVisibility: (config && config.contentVisibility) || 'visible',\n\t\tclassName: (config && config.className) || '',\n\t\tid: (config && config.id) || '',\n\t};\n\tthis.renderConfig.dpr = (config && config.dpr) || 1;\n\tif (this.animationItem.wrapper) {\n\t\tthis.renderConfig.dpr = (config && config.dpr) || window.devicePixelRatio || 1;\n\t}\n\tthis.renderedFrame = -1;\n\tthis.globalData = {\n\t\tframeNum: -1,\n\t\t_mdf: false,\n\t\trenderConfig: this.renderConfig,\n\t\tcurrentGlobalAlpha: -1,\n\t};\n\tthis.contextData = new CVContextData();\n\tthis.elements = [];\n\tthis.pendingElements = [];\n\tthis.transformMat = new Matrix();\n\tthis.completeLayers = false;\n\tthis.rendererType = 'canvas';\n}\nextendPrototype([CanvasRendererBase], CanvasRenderer);\n\nCanvasRenderer.prototype.createComp = function (data) {\n\treturn new CVCompElement(data, this.globalData, this);\n};\n\nfunction HBaseElement() {}\nHBaseElement.prototype = {\n\tcheckBlendMode: function () {},\n\tinitRendererElement: function () {\n\t\tthis.baseElement = createTag(this.data.tg || 'div');\n\t\tif (this.data.hasMask) {\n\t\t\tthis.svgElement = createNS('svg');\n\t\t\tthis.layerElement = createNS('g');\n\t\t\tthis.maskedElement = this.layerElement;\n\t\t\tthis.svgElement.appendChild(this.layerElement);\n\t\t\tthis.baseElement.appendChild(this.svgElement);\n\t\t} else {\n\t\t\tthis.layerElement = this.baseElement;\n\t\t}\n\t\tstyleDiv(this.baseElement);\n\t},\n\tcreateContainerElements: function () {\n\t\tthis.renderableEffectsManager = new CVEffects(this);\n\t\tthis.transformedElement = this.baseElement;\n\t\tthis.maskedElement = this.layerElement;\n\t\tif (this.data.ln) {\n\t\t\tthis.layerElement.setAttribute('id', this.data.ln);\n\t\t}\n\t\tif (this.data.cl) {\n\t\t\tthis.layerElement.setAttribute('class', this.data.cl);\n\t\t}\n\t\tif (this.data.bm !== 0) {\n\t\t\tthis.setBlendMode();\n\t\t}\n\t},\n\trenderElement: function () {\n\t\tvar transformedElementStyle = this.transformedElement ? this.transformedElement.style : {};\n\t\tif (this.finalTransform._matMdf) {\n\t\t\tvar matrixValue = this.finalTransform.mat.toCSS();\n\t\t\ttransformedElementStyle.transform = matrixValue;\n\t\t\ttransformedElementStyle.webkitTransform = matrixValue;\n\t\t}\n\t\tif (this.finalTransform._opMdf) {\n\t\t\ttransformedElementStyle.opacity = this.finalTransform.mProp.o.v;\n\t\t}\n\t},\n\trenderFrame: function () {\n\t\t// If it is exported as hidden (data.hd === true) no need to render\n\t\t// If it is not visible no need to render\n\t\tif (this.data.hd || this.hidden) {\n\t\t\treturn;\n\t\t}\n\t\tthis.renderTransform();\n\t\tthis.renderRenderable();\n\t\tthis.renderElement();\n\t\tthis.renderInnerContent();\n\t\tif (this._isFirstFrame) {\n\t\t\tthis._isFirstFrame = false;\n\t\t}\n\t},\n\tdestroy: function () {\n\t\tthis.layerElement = null;\n\t\tthis.transformedElement = null;\n\t\tif (this.matteElement) {\n\t\t\tthis.matteElement = null;\n\t\t}\n\t\tif (this.maskManager) {\n\t\t\tthis.maskManager.destroy();\n\t\t\tthis.maskManager = null;\n\t\t}\n\t},\n\tcreateRenderableComponents: function () {\n\t\tthis.maskManager = new MaskElement(this.data, this, this.globalData);\n\t},\n\taddEffects: function () {\n\t},\n\tsetMatte: function () {},\n};\nHBaseElement.prototype.getBaseElement = SVGBaseElement.prototype.getBaseElement;\nHBaseElement.prototype.destroyBaseElement = HBaseElement.prototype.destroy;\nHBaseElement.prototype.buildElementParenting = BaseRenderer.prototype.buildElementParenting;\n\nfunction HSolidElement(data, globalData, comp) {\n\tthis.initElement(data, globalData, comp);\n}\nextendPrototype([BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], HSolidElement);\n\nHSolidElement.prototype.createContent = function () {\n\tvar rect;\n\tif (this.data.hasMask) {\n\t\trect = createNS('rect');\n\t\trect.setAttribute('width', this.data.sw);\n\t\trect.setAttribute('height', this.data.sh);\n\t\trect.setAttribute('fill', this.data.sc);\n\t\tthis.svgElement.setAttribute('width', this.data.sw);\n\t\tthis.svgElement.setAttribute('height', this.data.sh);\n\t} else {\n\t\trect = createTag('div');\n\t\trect.style.width = this.data.sw + 'px';\n\t\trect.style.height = this.data.sh + 'px';\n\t\trect.style.backgroundColor = this.data.sc;\n\t}\n\tthis.layerElement.appendChild(rect);\n};\n\nfunction HShapeElement(data, globalData, comp) {\n\t// List of drawable elements\n\tthis.shapes = [];\n\t// Full shape data\n\tthis.shapesData = data.shapes;\n\t// List of styles that will be applied to shapes\n\tthis.stylesList = [];\n\t// List of modifiers that will be applied to shapes\n\tthis.shapeModifiers = [];\n\t// List of items in shape tree\n\tthis.itemsData = [];\n\t// List of items in previous shape tree\n\tthis.processedElements = [];\n\t// List of animated components\n\tthis.animatedContents = [];\n\tthis.shapesContainer = createNS('g');\n\tthis.initElement(data, globalData, comp);\n\t// Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n\t// List of elements that have been created\n\tthis.prevViewData = [];\n\tthis.currentBBox = {\n\t\tx: 999999,\n\t\ty: -999999,\n\t\th: 0,\n\t\tw: 0,\n\t};\n}\nextendPrototype([BaseElement, TransformElement, HSolidElement, SVGShapeElement, HBaseElement, HierarchyElement, FrameElement, RenderableElement], HShapeElement);\nHShapeElement.prototype._renderShapeFrame = HShapeElement.prototype.renderInnerContent;\n\nHShapeElement.prototype.createContent = function () {\n\tvar cont;\n\tthis.baseElement.style.fontSize = 0;\n\tif (this.data.hasMask) {\n\t\tthis.layerElement.appendChild(this.shapesContainer);\n\t\tcont = this.svgElement;\n\t} else {\n\t\tcont = createNS('svg');\n\t\tvar size = this.comp.data ? this.comp.data : this.globalData.compSize;\n\t\tcont.setAttribute('width', size.w);\n\t\tcont.setAttribute('height', size.h);\n\t\tcont.appendChild(this.shapesContainer);\n\t\tthis.layerElement.appendChild(cont);\n\t}\n\n\tthis.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.shapesContainer, 0, [], true);\n\tthis.filterUniqueShapes();\n\tthis.shapeCont = cont;\n};\n\nHShapeElement.prototype.getTransformedPoint = function (transformers, point) {\n\tvar i;\n\tvar len = transformers.length;\n\tfor (i = 0; i < len; i += 1) {\n\t\tpoint = transformers[i].mProps.v.applyToPointArray(point[0], point[1], 0);\n\t}\n\treturn point;\n};\n\nHShapeElement.prototype.calculateShapeBoundingBox = function (item, boundingBox) {\n\tvar shape = item.sh.v;\n\tvar transformers = item.transformers;\n\tvar i;\n\tvar len = shape._length;\n\tvar vPoint;\n\tvar oPoint;\n\tvar nextIPoint;\n\tvar nextVPoint;\n\tif (len <= 1) {\n\t\treturn;\n\t}\n\tfor (i = 0; i < len - 1; i += 1) {\n\t\tvPoint = this.getTransformedPoint(transformers, shape.v[i]);\n\t\toPoint = this.getTransformedPoint(transformers, shape.o[i]);\n\t\tnextIPoint = this.getTransformedPoint(transformers, shape.i[i + 1]);\n\t\tnextVPoint = this.getTransformedPoint(transformers, shape.v[i + 1]);\n\t\tthis.checkBounds(vPoint, oPoint, nextIPoint, nextVPoint, boundingBox);\n\t}\n\tif (shape.c) {\n\t\tvPoint = this.getTransformedPoint(transformers, shape.v[i]);\n\t\toPoint = this.getTransformedPoint(transformers, shape.o[i]);\n\t\tnextIPoint = this.getTransformedPoint(transformers, shape.i[0]);\n\t\tnextVPoint = this.getTransformedPoint(transformers, shape.v[0]);\n\t\tthis.checkBounds(vPoint, oPoint, nextIPoint, nextVPoint, boundingBox);\n\t}\n};\n\nHShapeElement.prototype.checkBounds = function (vPoint, oPoint, nextIPoint, nextVPoint, boundingBox) {\n\tthis.getBoundsOfCurve(vPoint, oPoint, nextIPoint, nextVPoint);\n\tvar bounds = this.shapeBoundingBox;\n\tboundingBox.x = bmMin(bounds.left, boundingBox.x);\n\tboundingBox.xMax = bmMax(bounds.right, boundingBox.xMax);\n\tboundingBox.y = bmMin(bounds.top, boundingBox.y);\n\tboundingBox.yMax = bmMax(bounds.bottom, boundingBox.yMax);\n};\n\nHShapeElement.prototype.shapeBoundingBox = {\n\tleft: 0,\n\tright: 0,\n\ttop: 0,\n\tbottom: 0,\n};\n\nHShapeElement.prototype.tempBoundingBox = {\n\tx: 0,\n\txMax: 0,\n\ty: 0,\n\tyMax: 0,\n\twidth: 0,\n\theight: 0,\n};\n\nHShapeElement.prototype.getBoundsOfCurve = function (p0, p1, p2, p3) {\n\tvar bounds = [[p0[0], p3[0]], [p0[1], p3[1]]];\n\n\tfor (var a, b, c, t, b2ac, t1, t2, i = 0; i < 2; ++i) { // eslint-disable-line no-plusplus\n\t\tb = 6 * p0[i] - 12 * p1[i] + 6 * p2[i];\n\t\ta = -3 * p0[i] + 9 * p1[i] - 9 * p2[i] + 3 * p3[i];\n\t\tc = 3 * p1[i] - 3 * p0[i];\n\n\t\tb |= 0; // eslint-disable-line no-bitwise\n\t\ta |= 0; // eslint-disable-line no-bitwise\n\t\tc |= 0; // eslint-disable-line no-bitwise\n\n\t\tif (a === 0 && b === 0) {\n\t\t\t//\n\t\t} else if (a === 0) {\n\t\t\tt = -c / b;\n\n\t\t\tif (t > 0 && t < 1) {\n\t\t\t\tbounds[i].push(this.calculateF(t, p0, p1, p2, p3, i));\n\t\t\t}\n\t\t} else {\n\t\t\tb2ac = b * b - 4 * c * a;\n\n\t\t\tif (b2ac >= 0) {\n\t\t\t\tt1 = (-b + bmSqrt(b2ac)) / (2 * a);\n\t\t\t\tif (t1 > 0 && t1 < 1) bounds[i].push(this.calculateF(t1, p0, p1, p2, p3, i));\n\t\t\t\tt2 = (-b - bmSqrt(b2ac)) / (2 * a);\n\t\t\t\tif (t2 > 0 && t2 < 1) bounds[i].push(this.calculateF(t2, p0, p1, p2, p3, i));\n\t\t\t}\n\t\t}\n\t}\n\n\tthis.shapeBoundingBox.left = bmMin.apply(null, bounds[0]);\n\tthis.shapeBoundingBox.top = bmMin.apply(null, bounds[1]);\n\tthis.shapeBoundingBox.right = bmMax.apply(null, bounds[0]);\n\tthis.shapeBoundingBox.bottom = bmMax.apply(null, bounds[1]);\n};\n\nHShapeElement.prototype.calculateF = function (t, p0, p1, p2, p3, i) {\n\treturn bmPow(1 - t, 3) * p0[i]\n\t\t+ 3 * bmPow(1 - t, 2) * t * p1[i]\n\t\t+ 3 * (1 - t) * bmPow(t, 2) * p2[i]\n\t\t+ bmPow(t, 3) * p3[i];\n};\n\nHShapeElement.prototype.calculateBoundingBox = function (itemsData, boundingBox) {\n\tvar i;\n\tvar len = itemsData.length;\n\tfor (i = 0; i < len; i += 1) {\n\t\tif (itemsData[i] && itemsData[i].sh) {\n\t\t\tthis.calculateShapeBoundingBox(itemsData[i], boundingBox);\n\t\t} else if (itemsData[i] && itemsData[i].it) {\n\t\t\tthis.calculateBoundingBox(itemsData[i].it, boundingBox);\n\t\t} else if (itemsData[i] && itemsData[i].style && itemsData[i].w) {\n\t\t\tthis.expandStrokeBoundingBox(itemsData[i].w, boundingBox);\n\t\t}\n\t}\n};\n\nHShapeElement.prototype.expandStrokeBoundingBox = function (widthProperty, boundingBox) {\n\tvar width = 0;\n\tif (widthProperty.keyframes) {\n\t\tfor (var i = 0; i < widthProperty.keyframes.length; i += 1) {\n\t\t\tvar kfw = widthProperty.keyframes[i].s;\n\t\t\tif (kfw > width) {\n\t\t\t\twidth = kfw;\n\t\t\t}\n\t\t}\n\t\twidth *= widthProperty.mult;\n\t} else {\n\t\twidth = widthProperty.v * widthProperty.mult;\n\t}\n\n\tboundingBox.x -= width;\n\tboundingBox.xMax += width;\n\tboundingBox.y -= width;\n\tboundingBox.yMax += width;\n};\n\nHShapeElement.prototype.currentBoxContains = function (box) {\n\treturn this.currentBBox.x <= box.x\n\t\t&& this.currentBBox.y <= box.y\n\t\t&& this.currentBBox.width + this.currentBBox.x >= box.x + box.width\n\t\t&& this.currentBBox.height + this.currentBBox.y >= box.y + box.height;\n};\n\nHShapeElement.prototype.renderInnerContent = function () {\n\tthis._renderShapeFrame();\n\n\tif (!this.hidden && (this._isFirstFrame || this._mdf)) {\n\t\tvar tempBoundingBox = this.tempBoundingBox;\n\t\tvar max = 999999;\n\t\ttempBoundingBox.x = max;\n\t\ttempBoundingBox.xMax = -max;\n\t\ttempBoundingBox.y = max;\n\t\ttempBoundingBox.yMax = -max;\n\t\tthis.calculateBoundingBox(this.itemsData, tempBoundingBox);\n\t\ttempBoundingBox.width = tempBoundingBox.xMax < tempBoundingBox.x ? 0 : tempBoundingBox.xMax - tempBoundingBox.x;\n\t\ttempBoundingBox.height = tempBoundingBox.yMax < tempBoundingBox.y ? 0 : tempBoundingBox.yMax - tempBoundingBox.y;\n\t\t// var tempBoundingBox = this.shapeCont.getBBox();\n\t\tif (this.currentBoxContains(tempBoundingBox)) {\n\t\t\treturn;\n\t\t}\n\t\tvar changed = false;\n\t\tif (this.currentBBox.w !== tempBoundingBox.width) {\n\t\t\tthis.currentBBox.w = tempBoundingBox.width;\n\t\t\tthis.shapeCont.setAttribute('width', tempBoundingBox.width);\n\t\t\tchanged = true;\n\t\t}\n\t\tif (this.currentBBox.h !== tempBoundingBox.height) {\n\t\t\tthis.currentBBox.h = tempBoundingBox.height;\n\t\t\tthis.shapeCont.setAttribute('height', tempBoundingBox.height);\n\t\t\tchanged = true;\n\t\t}\n\t\tif (changed || this.currentBBox.x !== tempBoundingBox.x || this.currentBBox.y !== tempBoundingBox.y) {\n\t\t\tthis.currentBBox.w = tempBoundingBox.width;\n\t\t\tthis.currentBBox.h = tempBoundingBox.height;\n\t\t\tthis.currentBBox.x = tempBoundingBox.x;\n\t\t\tthis.currentBBox.y = tempBoundingBox.y;\n\n\t\t\tthis.shapeCont.setAttribute('viewBox', this.currentBBox.x + ' ' + this.currentBBox.y + ' ' + this.currentBBox.w + ' ' + this.currentBBox.h);\n\t\t\tvar shapeStyle = this.shapeCont.style;\n\t\t\tvar shapeTransform = 'translate(' + this.currentBBox.x + 'px,' + this.currentBBox.y + 'px)';\n\t\t\tshapeStyle.transform = shapeTransform;\n\t\t\tshapeStyle.webkitTransform = shapeTransform;\n\t\t}\n\t}\n};\n\nfunction HTextElement(data, globalData, comp) {\n\tthis.textSpans = [];\n\tthis.textPaths = [];\n\tthis.currentBBox = {\n\t\tx: 999999,\n\t\ty: -999999,\n\t\th: 0,\n\t\tw: 0,\n\t};\n\tthis.renderType = 'svg';\n\tthis.isMasked = false;\n\tthis.initElement(data, globalData, comp);\n}\nextendPrototype([BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], HTextElement);\n\nHTextElement.prototype.createContent = function () {\n\tthis.isMasked = this.checkMasks();\n\tif (this.isMasked) {\n\t\tthis.renderType = 'svg';\n\t\tthis.compW = this.comp.data.w;\n\t\tthis.compH = this.comp.data.h;\n\t\tthis.svgElement.setAttribute('width', this.compW);\n\t\tthis.svgElement.setAttribute('height', this.compH);\n\t\tvar g = createNS('g');\n\t\tthis.maskedElement.appendChild(g);\n\t\tthis.innerElem = g;\n\t} else {\n\t\tthis.renderType = 'html';\n\t\tthis.innerElem = this.layerElement;\n\t}\n\n\tthis.checkParenting();\n};\n\nHTextElement.prototype.buildNewText = function () {\n\tvar documentData = this.textProperty.currentData;\n\tthis.renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);\n\tvar innerElemStyle = this.innerElem.style;\n\tvar textColor = documentData.fc ? this.buildColor(documentData.fc) : 'rgba(0,0,0,0)';\n\tinnerElemStyle.fill = textColor;\n\tinnerElemStyle.color = textColor;\n\tif (documentData.sc) {\n\t\tinnerElemStyle.stroke = this.buildColor(documentData.sc);\n\t\tinnerElemStyle.strokeWidth = documentData.sw + 'px';\n\t}\n\tvar fontData = this.globalData.fontManager.getFontByName(documentData.f);\n\tif (!this.globalData.fontManager.chars) {\n\t\tinnerElemStyle.fontSize = documentData.finalSize + 'px';\n\t\tinnerElemStyle.lineHeight = documentData.finalSize + 'px';\n\t\tif (fontData.fClass) {\n\t\t\tthis.innerElem.className = fontData.fClass;\n\t\t} else {\n\t\t\tinnerElemStyle.fontFamily = fontData.fFamily;\n\t\t\tvar fWeight = documentData.fWeight;\n\t\t\tvar fStyle = documentData.fStyle;\n\t\t\tinnerElemStyle.fontStyle = fStyle;\n\t\t\tinnerElemStyle.fontWeight = fWeight;\n\t\t}\n\t}\n\tvar i;\n\tvar len;\n\n\tvar letters = documentData.l;\n\tlen = letters.length;\n\tvar tSpan;\n\tvar tParent;\n\tvar tCont;\n\tvar matrixHelper = this.mHelper;\n\tvar shapes;\n\tvar shapeStr = '';\n\tvar cnt = 0;\n\tfor (i = 0; i < len; i += 1) {\n\t\tif (this.globalData.fontManager.chars) {\n\t\t\tif (!this.textPaths[cnt]) {\n\t\t\t\ttSpan = createNS('path');\n\t\t\t\ttSpan.setAttribute('stroke-linecap', lineCapEnum[1]);\n\t\t\t\ttSpan.setAttribute('stroke-linejoin', lineJoinEnum[2]);\n\t\t\t\ttSpan.setAttribute('stroke-miterlimit', '4');\n\t\t\t} else {\n\t\t\t\ttSpan = this.textPaths[cnt];\n\t\t\t}\n\t\t\tif (!this.isMasked) {\n\t\t\t\tif (this.textSpans[cnt]) {\n\t\t\t\t\ttParent = this.textSpans[cnt];\n\t\t\t\t\ttCont = tParent.children[0];\n\t\t\t\t} else {\n\t\t\t\t\ttParent = createTag('div');\n\t\t\t\t\ttParent.style.lineHeight = 0;\n\t\t\t\t\ttCont = createNS('svg');\n\t\t\t\t\ttCont.appendChild(tSpan);\n\t\t\t\t\tstyleDiv(tParent);\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (!this.isMasked) {\n\t\t\tif (this.textSpans[cnt]) {\n\t\t\t\ttParent = this.textSpans[cnt];\n\t\t\t\ttSpan = this.textPaths[cnt];\n\t\t\t} else {\n\t\t\t\ttParent = createTag('span');\n\t\t\t\tstyleDiv(tParent);\n\t\t\t\ttSpan = createTag('span');\n\t\t\t\tstyleDiv(tSpan);\n\t\t\t\ttParent.appendChild(tSpan);\n\t\t\t}\n\t\t} else {\n\t\t\ttSpan = this.textPaths[cnt] ? this.textPaths[cnt] : createNS('text');\n\t\t}\n\t\t// tSpan.setAttribute('visibility', 'hidden');\n\t\tif (this.globalData.fontManager.chars) {\n\t\t\tvar charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n\t\t\tvar shapeData;\n\t\t\tif (charData) {\n\t\t\t\tshapeData = charData.data;\n\t\t\t} else {\n\t\t\t\tshapeData = null;\n\t\t\t}\n\t\t\tmatrixHelper.reset();\n\t\t\tif (shapeData && shapeData.shapes && shapeData.shapes.length) {\n\t\t\t\tshapes = shapeData.shapes[0].it;\n\t\t\t\tmatrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\n\t\t\t\tshapeStr = this.createPathShape(matrixHelper, shapes);\n\t\t\t\ttSpan.setAttribute('d', shapeStr);\n\t\t\t}\n\t\t\tif (!this.isMasked) {\n\t\t\t\tthis.innerElem.appendChild(tParent);\n\t\t\t\tif (shapeData && shapeData.shapes) {\n\t\t\t\t\t// document.body.appendChild is needed to get exact measure of shape\n\t\t\t\t\tdocument.body.appendChild(tCont);\n\t\t\t\t\tvar boundingBox = tCont.getBBox();\n\t\t\t\t\ttCont.setAttribute('width', boundingBox.width + 2);\n\t\t\t\t\ttCont.setAttribute('height', boundingBox.height + 2);\n\t\t\t\t\ttCont.setAttribute('viewBox', (boundingBox.x - 1) + ' ' + (boundingBox.y - 1) + ' ' + (boundingBox.width + 2) + ' ' + (boundingBox.height + 2));\n\t\t\t\t\tvar tContStyle = tCont.style;\n\t\t\t\t\tvar tContTranslation = 'translate(' + (boundingBox.x - 1) + 'px,' + (boundingBox.y - 1) + 'px)';\n\t\t\t\t\ttContStyle.transform = tContTranslation;\n\t\t\t\t\ttContStyle.webkitTransform = tContTranslation;\n\n\t\t\t\t\tletters[i].yOffset = boundingBox.y - 1;\n\t\t\t\t} else {\n\t\t\t\t\ttCont.setAttribute('width', 1);\n\t\t\t\t\ttCont.setAttribute('height', 1);\n\t\t\t\t}\n\t\t\t\ttParent.appendChild(tCont);\n\t\t\t} else {\n\t\t\t\tthis.innerElem.appendChild(tSpan);\n\t\t\t}\n\t\t} else {\n\t\t\ttSpan.textContent = letters[i].val;\n\t\t\ttSpan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\n\t\t\tif (!this.isMasked) {\n\t\t\t\tthis.innerElem.appendChild(tParent);\n\t\t\t\t//\n\t\t\t\tvar tStyle = tSpan.style;\n\t\t\t\tvar tSpanTranslation = 'translate3d(0,' + -documentData.finalSize / 1.2 + 'px,0)';\n\t\t\t\ttStyle.transform = tSpanTranslation;\n\t\t\t\ttStyle.webkitTransform = tSpanTranslation;\n\t\t\t} else {\n\t\t\t\tthis.innerElem.appendChild(tSpan);\n\t\t\t}\n\t\t}\n\t\t//\n\t\tif (!this.isMasked) {\n\t\t\tthis.textSpans[cnt] = tParent;\n\t\t} else {\n\t\t\tthis.textSpans[cnt] = tSpan;\n\t\t}\n\t\tthis.textSpans[cnt].style.display = 'block';\n\t\tthis.textPaths[cnt] = tSpan;\n\t\tcnt += 1;\n\t}\n\twhile (cnt < this.textSpans.length) {\n\t\tthis.textSpans[cnt].style.display = 'none';\n\t\tcnt += 1;\n\t}\n};\n\nHTextElement.prototype.renderInnerContent = function () {\n\tvar svgStyle;\n\tif (this.data.singleShape) {\n\t\tif (!this._isFirstFrame && !this.lettersChangedFlag) {\n\t\t\treturn;\n\t\t} if (this.isMasked && this.finalTransform._matMdf) {\n\t\t\t// Todo Benchmark if using this is better than getBBox\n\t\t\tthis.svgElement.setAttribute('viewBox', -this.finalTransform.mProp.p.v[0] + ' ' + -this.finalTransform.mProp.p.v[1] + ' ' + this.compW + ' ' + this.compH);\n\t\t\tsvgStyle = this.svgElement.style;\n\t\t\tvar translation = 'translate(' + -this.finalTransform.mProp.p.v[0] + 'px,' + -this.finalTransform.mProp.p.v[1] + 'px)';\n\t\t\tsvgStyle.transform = translation;\n\t\t\tsvgStyle.webkitTransform = translation;\n\t\t}\n\t}\n\n\tthis.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n\tif (!this.lettersChangedFlag && !this.textAnimator.lettersChangedFlag) {\n\t\treturn;\n\t}\n\tvar i;\n\tvar len;\n\tvar count = 0;\n\tvar renderedLetters = this.textAnimator.renderedLetters;\n\n\tvar letters = this.textProperty.currentData.l;\n\n\tlen = letters.length;\n\tvar renderedLetter;\n\tvar textSpan;\n\tvar textPath;\n\tfor (i = 0; i < len; i += 1) {\n\t\tif (letters[i].n) {\n\t\t\tcount += 1;\n\t\t} else {\n\t\t\ttextSpan = this.textSpans[i];\n\t\t\ttextPath = this.textPaths[i];\n\t\t\trenderedLetter = renderedLetters[count];\n\t\t\tcount += 1;\n\t\t\tif (renderedLetter._mdf.m) {\n\t\t\t\tif (!this.isMasked) {\n\t\t\t\t\ttextSpan.style.webkitTransform = renderedLetter.m;\n\t\t\t\t\ttextSpan.style.transform = renderedLetter.m;\n\t\t\t\t} else {\n\t\t\t\t\ttextSpan.setAttribute('transform', renderedLetter.m);\n\t\t\t\t}\n\t\t\t}\n\t\t\t/// /textSpan.setAttribute('opacity',renderedLetter.o);\n\t\t\ttextSpan.style.opacity = renderedLetter.o;\n\t\t\tif (renderedLetter.sw && renderedLetter._mdf.sw) {\n\t\t\t\ttextPath.setAttribute('stroke-width', renderedLetter.sw);\n\t\t\t}\n\t\t\tif (renderedLetter.sc && renderedLetter._mdf.sc) {\n\t\t\t\ttextPath.setAttribute('stroke', renderedLetter.sc);\n\t\t\t}\n\t\t\tif (renderedLetter.fc && renderedLetter._mdf.fc) {\n\t\t\t\ttextPath.setAttribute('fill', renderedLetter.fc);\n\t\t\t\ttextPath.style.color = renderedLetter.fc;\n\t\t\t}\n\t\t}\n\t}\n\n\tif (this.innerElem.getBBox && !this.hidden && (this._isFirstFrame || this._mdf)) {\n\t\tvar boundingBox = this.innerElem.getBBox();\n\n\t\tif (this.currentBBox.w !== boundingBox.width) {\n\t\t\tthis.currentBBox.w = boundingBox.width;\n\t\t\tthis.svgElement.setAttribute('width', boundingBox.width);\n\t\t}\n\t\tif (this.currentBBox.h !== boundingBox.height) {\n\t\t\tthis.currentBBox.h = boundingBox.height;\n\t\t\tthis.svgElement.setAttribute('height', boundingBox.height);\n\t\t}\n\n\t\tvar margin = 1;\n\t\tif (this.currentBBox.w !== (boundingBox.width + margin * 2) || this.currentBBox.h !== (boundingBox.height + margin * 2) || this.currentBBox.x !== (boundingBox.x - margin) || this.currentBBox.y !== (boundingBox.y - margin)) {\n\t\t\tthis.currentBBox.w = boundingBox.width + margin * 2;\n\t\t\tthis.currentBBox.h = boundingBox.height + margin * 2;\n\t\t\tthis.currentBBox.x = boundingBox.x - margin;\n\t\t\tthis.currentBBox.y = boundingBox.y - margin;\n\n\t\t\tthis.svgElement.setAttribute('viewBox', this.currentBBox.x + ' ' + this.currentBBox.y + ' ' + this.currentBBox.w + ' ' + this.currentBBox.h);\n\t\t\tsvgStyle = this.svgElement.style;\n\t\t\tvar svgTransform = 'translate(' + this.currentBBox.x + 'px,' + this.currentBBox.y + 'px)';\n\t\t\tsvgStyle.transform = svgTransform;\n\t\t\tsvgStyle.webkitTransform = svgTransform;\n\t\t}\n\t}\n};\n\nfunction HCameraElement(data, globalData, comp) {\n\tthis.initFrame();\n\tthis.initBaseData(data, globalData, comp);\n\tthis.initHierarchy();\n\tvar getProp = PropertyFactory.getProp;\n\tthis.pe = getProp(this, data.pe, 0, 0, this);\n\tif (data.ks.p.s) {\n\t\tthis.px = getProp(this, data.ks.p.x, 1, 0, this);\n\t\tthis.py = getProp(this, data.ks.p.y, 1, 0, this);\n\t\tthis.pz = getProp(this, data.ks.p.z, 1, 0, this);\n\t} else {\n\t\tthis.p = getProp(this, data.ks.p, 1, 0, this);\n\t}\n\tif (data.ks.a) {\n\t\tthis.a = getProp(this, data.ks.a, 1, 0, this);\n\t}\n\tif (data.ks.or.k.length && data.ks.or.k[0].to) {\n\t\tvar i;\n\t\tvar len = data.ks.or.k.length;\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tdata.ks.or.k[i].to = null;\n\t\t\tdata.ks.or.k[i].ti = null;\n\t\t}\n\t}\n\tthis.or = getProp(this, data.ks.or, 1, degToRads, this);\n\tthis.or.sh = true;\n\tthis.rx = getProp(this, data.ks.rx, 0, degToRads, this);\n\tthis.ry = getProp(this, data.ks.ry, 0, degToRads, this);\n\tthis.rz = getProp(this, data.ks.rz, 0, degToRads, this);\n\tthis.mat = new Matrix();\n\tthis._prevMat = new Matrix();\n\tthis._isFirstFrame = true;\n\n\t// TODO: find a better way to make the HCamera element to be compatible with the LayerInterface and TransformInterface.\n\tthis.finalTransform = {\n\t\tmProp: this,\n\t};\n}\nextendPrototype([BaseElement, FrameElement, HierarchyElement], HCameraElement);\n\nHCameraElement.prototype.setup = function () {\n\tvar i;\n\tvar len = this.comp.threeDElements.length;\n\tvar comp;\n\tvar perspectiveStyle;\n\tvar containerStyle;\n\tfor (i = 0; i < len; i += 1) {\n\t\t// [perspectiveElem,container]\n\t\tcomp = this.comp.threeDElements[i];\n\t\tif (comp.type === '3d') {\n\t\t\tperspectiveStyle = comp.perspectiveElem.style;\n\t\t\tcontainerStyle = comp.container.style;\n\t\t\tvar perspective = this.pe.v + 'px';\n\t\t\tvar origin = '0px 0px 0px';\n\t\t\tvar matrix = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)';\n\t\t\tperspectiveStyle.perspective = perspective;\n\t\t\tperspectiveStyle.webkitPerspective = perspective;\n\t\t\tcontainerStyle.transformOrigin = origin;\n\t\t\tcontainerStyle.mozTransformOrigin = origin;\n\t\t\tcontainerStyle.webkitTransformOrigin = origin;\n\t\t\tperspectiveStyle.transform = matrix;\n\t\t\tperspectiveStyle.webkitTransform = matrix;\n\t\t}\n\t}\n};\n\nHCameraElement.prototype.createElements = function () {\n};\n\nHCameraElement.prototype.hide = function () {\n};\n\nHCameraElement.prototype.renderFrame = function () {\n\tvar _mdf = this._isFirstFrame;\n\tvar i;\n\tvar len;\n\tif (this.hierarchy) {\n\t\tlen = this.hierarchy.length;\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\t_mdf = this.hierarchy[i].finalTransform.mProp._mdf || _mdf;\n\t\t}\n\t}\n\tif (_mdf || this.pe._mdf || (this.p && this.p._mdf) || (this.px && (this.px._mdf || this.py._mdf || this.pz._mdf)) || this.rx._mdf || this.ry._mdf || this.rz._mdf || this.or._mdf || (this.a && this.a._mdf)) {\n\t\tthis.mat.reset();\n\n\t\tif (this.hierarchy) {\n\t\t\tlen = this.hierarchy.length - 1;\n\t\t\tfor (i = len; i >= 0; i -= 1) {\n\t\t\t\tvar mTransf = this.hierarchy[i].finalTransform.mProp;\n\t\t\t\tthis.mat.translate(-mTransf.p.v[0], -mTransf.p.v[1], mTransf.p.v[2]);\n\t\t\t\tthis.mat.rotateX(-mTransf.or.v[0]).rotateY(-mTransf.or.v[1]).rotateZ(mTransf.or.v[2]);\n\t\t\t\tthis.mat.rotateX(-mTransf.rx.v).rotateY(-mTransf.ry.v).rotateZ(mTransf.rz.v);\n\t\t\t\tthis.mat.scale(1 / mTransf.s.v[0], 1 / mTransf.s.v[1], 1 / mTransf.s.v[2]);\n\t\t\t\tthis.mat.translate(mTransf.a.v[0], mTransf.a.v[1], mTransf.a.v[2]);\n\t\t\t}\n\t\t}\n\t\tif (this.p) {\n\t\t\tthis.mat.translate(-this.p.v[0], -this.p.v[1], this.p.v[2]);\n\t\t} else {\n\t\t\tthis.mat.translate(-this.px.v, -this.py.v, this.pz.v);\n\t\t}\n\t\tif (this.a) {\n\t\t\tvar diffVector;\n\t\t\tif (this.p) {\n\t\t\t\tdiffVector = [this.p.v[0] - this.a.v[0], this.p.v[1] - this.a.v[1], this.p.v[2] - this.a.v[2]];\n\t\t\t} else {\n\t\t\t\tdiffVector = [this.px.v - this.a.v[0], this.py.v - this.a.v[1], this.pz.v - this.a.v[2]];\n\t\t\t}\n\t\t\tvar mag = Math.sqrt(Math.pow(diffVector[0], 2) + Math.pow(diffVector[1], 2) + Math.pow(diffVector[2], 2));\n\t\t\t// var lookDir = getNormalizedPoint(getDiffVector(this.a.v,this.p.v));\n\t\t\tvar lookDir = [diffVector[0] / mag, diffVector[1] / mag, diffVector[2] / mag];\n\t\t\tvar lookLengthOnXZ = Math.sqrt(lookDir[2] * lookDir[2] + lookDir[0] * lookDir[0]);\n\t\t\tvar mRotationX = (Math.atan2(lookDir[1], lookLengthOnXZ));\n\t\t\tvar mRotationY = (Math.atan2(lookDir[0], -lookDir[2]));\n\t\t\tthis.mat.rotateY(mRotationY).rotateX(-mRotationX);\n\t\t}\n\t\tthis.mat.rotateX(-this.rx.v).rotateY(-this.ry.v).rotateZ(this.rz.v);\n\t\tthis.mat.rotateX(-this.or.v[0]).rotateY(-this.or.v[1]).rotateZ(this.or.v[2]);\n\t\tthis.mat.translate(this.globalData.compSize.w / 2, this.globalData.compSize.h / 2, 0);\n\t\tthis.mat.translate(0, 0, this.pe.v);\n\n\t\tvar hasMatrixChanged = !this._prevMat.equals(this.mat);\n\t\tif ((hasMatrixChanged || this.pe._mdf) && this.comp.threeDElements) {\n\t\t\tlen = this.comp.threeDElements.length;\n\t\t\tvar comp;\n\t\t\tvar perspectiveStyle;\n\t\t\tvar containerStyle;\n\t\t\tfor (i = 0; i < len; i += 1) {\n\t\t\t\tcomp = this.comp.threeDElements[i];\n\t\t\t\tif (comp.type === '3d') {\n\t\t\t\t\tif (hasMatrixChanged) {\n\t\t\t\t\t\tvar matValue = this.mat.toCSS();\n\t\t\t\t\t\tcontainerStyle = comp.container.style;\n\t\t\t\t\t\tcontainerStyle.transform = matValue;\n\t\t\t\t\t\tcontainerStyle.webkitTransform = matValue;\n\t\t\t\t\t}\n\t\t\t\t\tif (this.pe._mdf) {\n\t\t\t\t\t\tperspectiveStyle = comp.perspectiveElem.style;\n\t\t\t\t\t\tperspectiveStyle.perspective = this.pe.v + 'px';\n\t\t\t\t\t\tperspectiveStyle.webkitPerspective = this.pe.v + 'px';\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.mat.clone(this._prevMat);\n\t\t}\n\t}\n\tthis._isFirstFrame = false;\n};\n\nHCameraElement.prototype.prepareFrame = function (num) {\n\tthis.prepareProperties(num, true);\n};\n\nHCameraElement.prototype.destroy = function () {\n};\nHCameraElement.prototype.getBaseElement = function () { return null; };\n\nfunction HImageElement(data, globalData, comp) {\n\tthis.assetData = globalData.getAssetData(data.refId);\n\tthis.initElement(data, globalData, comp);\n}\n\nextendPrototype([BaseElement, TransformElement, HBaseElement, HSolidElement, HierarchyElement, FrameElement, RenderableElement], HImageElement);\n\nHImageElement.prototype.createContent = function () {\n\tvar assetPath = this.globalData.getAssetsPath(this.assetData);\n\tvar img = new Image();\n\n\tif (this.data.hasMask) {\n\t\tthis.imageElem = createNS('image');\n\t\tthis.imageElem.setAttribute('width', this.assetData.w + 'px');\n\t\tthis.imageElem.setAttribute('height', this.assetData.h + 'px');\n\t\tthis.imageElem.setAttributeNS('http://www.w3.org/1999/xlink', 'href', assetPath);\n\t\tthis.layerElement.appendChild(this.imageElem);\n\t\tthis.baseElement.setAttribute('width', this.assetData.w);\n\t\tthis.baseElement.setAttribute('height', this.assetData.h);\n\t} else {\n\t\tthis.layerElement.appendChild(img);\n\t}\n\timg.crossOrigin = 'anonymous';\n\timg.src = assetPath;\n\tif (this.data.ln) {\n\t\tthis.baseElement.setAttribute('id', this.data.ln);\n\t}\n};\n\nfunction HybridRendererBase(animationItem, config) {\n\tthis.animationItem = animationItem;\n\tthis.layers = null;\n\tthis.renderedFrame = -1;\n\tthis.renderConfig = {\n\t\tclassName: (config && config.className) || '',\n\t\timagePreserveAspectRatio: (config && config.imagePreserveAspectRatio) || 'xMidYMid slice',\n\t\thideOnTransparent: !(config && config.hideOnTransparent === false),\n\t\tfilterSize: {\n\t\t\twidth: (config && config.filterSize && config.filterSize.width) || '400%',\n\t\t\theight: (config && config.filterSize && config.filterSize.height) || '400%',\n\t\t\tx: (config && config.filterSize && config.filterSize.x) || '-100%',\n\t\t\ty: (config && config.filterSize && config.filterSize.y) || '-100%',\n\t\t},\n\t};\n\tthis.globalData = {\n\t\t_mdf: false,\n\t\tframeNum: -1,\n\t\trenderConfig: this.renderConfig,\n\t};\n\tthis.pendingElements = [];\n\tthis.elements = [];\n\tthis.threeDElements = [];\n\tthis.destroyed = false;\n\tthis.camera = null;\n\tthis.supports3d = true;\n\tthis.rendererType = 'html';\n}\n\nextendPrototype([BaseRenderer], HybridRendererBase);\n\nHybridRendererBase.prototype.buildItem = SVGRenderer.prototype.buildItem;\n\nHybridRendererBase.prototype.checkPendingElements = function () {\n\twhile (this.pendingElements.length) {\n\t\tvar element = this.pendingElements.pop();\n\t\telement.checkParenting();\n\t}\n};\n\nHybridRendererBase.prototype.appendElementInPos = function (element, pos) {\n\tvar newDOMElement = element.getBaseElement();\n\tif (!newDOMElement) {\n\t\treturn;\n\t}\n\tvar layer = this.layers[pos];\n\tif (!layer.ddd || !this.supports3d) {\n\t\tif (this.threeDElements) {\n\t\t\tthis.addTo3dContainer(newDOMElement, pos);\n\t\t} else {\n\t\t\tvar i = 0;\n\t\t\tvar nextDOMElement;\n\t\t\tvar nextLayer;\n\t\t\tvar tmpDOMElement;\n\t\t\twhile (i < pos) {\n\t\t\t\tif (this.elements[i] && this.elements[i] !== true && this.elements[i].getBaseElement) {\n\t\t\t\t\tnextLayer = this.elements[i];\n\t\t\t\t\ttmpDOMElement = this.layers[i].ddd ? this.getThreeDContainerByPos(i) : nextLayer.getBaseElement();\n\t\t\t\t\tnextDOMElement = tmpDOMElement || nextDOMElement;\n\t\t\t\t}\n\t\t\t\ti += 1;\n\t\t\t}\n\t\t\tif (nextDOMElement) {\n\t\t\t\tif (!layer.ddd || !this.supports3d) {\n\t\t\t\t\tthis.layerElement.insertBefore(newDOMElement, nextDOMElement);\n\t\t\t\t}\n\t\t\t} else if (!layer.ddd || !this.supports3d) {\n\t\t\t\tthis.layerElement.appendChild(newDOMElement);\n\t\t\t}\n\t\t}\n\t} else {\n\t\tthis.addTo3dContainer(newDOMElement, pos);\n\t}\n};\n\nHybridRendererBase.prototype.createShape = function (data) {\n\tif (!this.supports3d) {\n\t\treturn new SVGShapeElement(data, this.globalData, this);\n\t}\n\treturn new HShapeElement(data, this.globalData, this);\n};\n\nHybridRendererBase.prototype.createText = function (data) {\n\tif (!this.supports3d) {\n\t\treturn new SVGTextLottieElement(data, this.globalData, this);\n\t}\n\treturn new HTextElement(data, this.globalData, this);\n};\n\nHybridRendererBase.prototype.createCamera = function (data) {\n\tthis.camera = new HCameraElement(data, this.globalData, this);\n\treturn this.camera;\n};\n\nHybridRendererBase.prototype.createImage = function (data) {\n\tif (!this.supports3d) {\n\t\treturn new IImageElement(data, this.globalData, this);\n\t}\n\treturn new HImageElement(data, this.globalData, this);\n};\n\nHybridRendererBase.prototype.createSolid = function (data) {\n\tif (!this.supports3d) {\n\t\treturn new ISolidElement(data, this.globalData, this);\n\t}\n\treturn new HSolidElement(data, this.globalData, this);\n};\n\nHybridRendererBase.prototype.createNull = SVGRenderer.prototype.createNull;\n\nHybridRendererBase.prototype.getThreeDContainerByPos = function (pos) {\n\tvar i = 0;\n\tvar len = this.threeDElements.length;\n\twhile (i < len) {\n\t\tif (this.threeDElements[i].startPos <= pos && this.threeDElements[i].endPos >= pos) {\n\t\t\treturn this.threeDElements[i].perspectiveElem;\n\t\t}\n\t\ti += 1;\n\t}\n\treturn null;\n};\n\nHybridRendererBase.prototype.createThreeDContainer = function (pos, type) {\n\tvar perspectiveElem = createTag('div');\n\tvar style;\n\tvar containerStyle;\n\tstyleDiv(perspectiveElem);\n\tvar container = createTag('div');\n\tstyleDiv(container);\n\tif (type === '3d') {\n\t\tstyle = perspectiveElem.style;\n\t\tstyle.width = this.globalData.compSize.w + 'px';\n\t\tstyle.height = this.globalData.compSize.h + 'px';\n\t\tvar center = '50% 50%';\n\t\tstyle.webkitTransformOrigin = center;\n\t\tstyle.mozTransformOrigin = center;\n\t\tstyle.transformOrigin = center;\n\t\tcontainerStyle = container.style;\n\t\tvar matrix = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)';\n\t\tcontainerStyle.transform = matrix;\n\t\tcontainerStyle.webkitTransform = matrix;\n\t}\n\n\tperspectiveElem.appendChild(container);\n\t// this.resizerElem.appendChild(perspectiveElem);\n\tvar threeDContainerData = {\n\t\tcontainer: container,\n\t\tperspectiveElem: perspectiveElem,\n\t\tstartPos: pos,\n\t\tendPos: pos,\n\t\ttype: type,\n\t};\n\tthis.threeDElements.push(threeDContainerData);\n\treturn threeDContainerData;\n};\n\nHybridRendererBase.prototype.build3dContainers = function () {\n\tvar i;\n\tvar len = this.layers.length;\n\tvar lastThreeDContainerData;\n\tvar currentContainer = '';\n\tfor (i = 0; i < len; i += 1) {\n\t\tif (this.layers[i].ddd && this.layers[i].ty !== 3) {\n\t\t\tif (currentContainer !== '3d') {\n\t\t\t\tcurrentContainer = '3d';\n\t\t\t\tlastThreeDContainerData = this.createThreeDContainer(i, '3d');\n\t\t\t}\n\t\t\tlastThreeDContainerData.endPos = Math.max(lastThreeDContainerData.endPos, i);\n\t\t} else {\n\t\t\tif (currentContainer !== '2d') {\n\t\t\t\tcurrentContainer = '2d';\n\t\t\t\tlastThreeDContainerData = this.createThreeDContainer(i, '2d');\n\t\t\t}\n\t\t\tlastThreeDContainerData.endPos = Math.max(lastThreeDContainerData.endPos, i);\n\t\t}\n\t}\n\tlen = this.threeDElements.length;\n\tfor (i = len - 1; i >= 0; i -= 1) {\n\t\tthis.resizerElem.appendChild(this.threeDElements[i].perspectiveElem);\n\t}\n};\n\nHybridRendererBase.prototype.addTo3dContainer = function (elem, pos) {\n\tvar i = 0;\n\tvar len = this.threeDElements.length;\n\twhile (i < len) {\n\t\tif (pos <= this.threeDElements[i].endPos) {\n\t\t\tvar j = this.threeDElements[i].startPos;\n\t\t\tvar nextElement;\n\t\t\twhile (j < pos) {\n\t\t\t\tif (this.elements[j] && this.elements[j].getBaseElement) {\n\t\t\t\t\tnextElement = this.elements[j].getBaseElement();\n\t\t\t\t}\n\t\t\t\tj += 1;\n\t\t\t}\n\t\t\tif (nextElement) {\n\t\t\t\tthis.threeDElements[i].container.insertBefore(elem, nextElement);\n\t\t\t} else {\n\t\t\t\tthis.threeDElements[i].container.appendChild(elem);\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\t\ti += 1;\n\t}\n};\n\nHybridRendererBase.prototype.configAnimation = function (animData) {\n\tvar resizerElem = createTag('div');\n\tvar wrapper = this.animationItem.wrapper;\n\tvar style = resizerElem.style;\n\tstyle.width = animData.w + 'px';\n\tstyle.height = animData.h + 'px';\n\tthis.resizerElem = resizerElem;\n\tstyleDiv(resizerElem);\n\tstyle.transformStyle = 'flat';\n\tstyle.mozTransformStyle = 'flat';\n\tstyle.webkitTransformStyle = 'flat';\n\tif (this.renderConfig.className) {\n\t\tresizerElem.setAttribute('class', this.renderConfig.className);\n\t}\n\twrapper.appendChild(resizerElem);\n\n\tstyle.overflow = 'hidden';\n\tvar svg = createNS('svg');\n\tsvg.setAttribute('width', '1');\n\tsvg.setAttribute('height', '1');\n\tstyleDiv(svg);\n\tthis.resizerElem.appendChild(svg);\n\tvar defs = createNS('defs');\n\tsvg.appendChild(defs);\n\tthis.data = animData;\n\t// Mask animation\n\tthis.setupGlobalData(animData, svg);\n\tthis.globalData.defs = defs;\n\tthis.layers = animData.layers;\n\tthis.layerElement = this.resizerElem;\n\tthis.build3dContainers();\n\tthis.updateContainerSize();\n};\n\nHybridRendererBase.prototype.destroy = function () {\n\tif (this.animationItem.wrapper) {\n\t\tthis.animationItem.wrapper.innerText = '';\n\t}\n\tthis.animationItem.container = null;\n\tthis.globalData.defs = null;\n\tvar i;\n\tvar len = this.layers ? this.layers.length : 0;\n\tfor (i = 0; i < len; i += 1) {\n\t\tthis.elements[i].destroy();\n\t}\n\tthis.elements.length = 0;\n\tthis.destroyed = true;\n\tthis.animationItem = null;\n};\n\nHybridRendererBase.prototype.updateContainerSize = function () {\n\tvar elementWidth = this.animationItem.wrapper.offsetWidth;\n\tvar elementHeight = this.animationItem.wrapper.offsetHeight;\n\tvar elementRel = elementWidth / elementHeight;\n\tvar animationRel = this.globalData.compSize.w / this.globalData.compSize.h;\n\tvar sx;\n\tvar sy;\n\tvar tx;\n\tvar ty;\n\tif (animationRel > elementRel) {\n\t\tsx = elementWidth / (this.globalData.compSize.w);\n\t\tsy = elementWidth / (this.globalData.compSize.w);\n\t\ttx = 0;\n\t\tty = ((elementHeight - this.globalData.compSize.h * (elementWidth / this.globalData.compSize.w)) / 2);\n\t} else {\n\t\tsx = elementHeight / (this.globalData.compSize.h);\n\t\tsy = elementHeight / (this.globalData.compSize.h);\n\t\ttx = (elementWidth - this.globalData.compSize.w * (elementHeight / this.globalData.compSize.h)) / 2;\n\t\tty = 0;\n\t}\n\tvar style = this.resizerElem.style;\n\tstyle.webkitTransform = 'matrix3d(' + sx + ',0,0,0,0,' + sy + ',0,0,0,0,1,0,' + tx + ',' + ty + ',0,1)';\n\tstyle.transform = style.webkitTransform;\n};\n\nHybridRendererBase.prototype.renderFrame = SVGRenderer.prototype.renderFrame;\n\nHybridRendererBase.prototype.hide = function () {\n\tthis.resizerElem.style.display = 'none';\n};\n\nHybridRendererBase.prototype.show = function () {\n\tthis.resizerElem.style.display = 'block';\n};\n\nHybridRendererBase.prototype.initItems = function () {\n\tthis.buildAllItems();\n\tif (this.camera) {\n\t\tthis.camera.setup();\n\t} else {\n\t\tvar cWidth = this.globalData.compSize.w;\n\t\tvar cHeight = this.globalData.compSize.h;\n\t\tvar i;\n\t\tvar len = this.threeDElements.length;\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tvar style = this.threeDElements[i].perspectiveElem.style;\n\t\t\tstyle.webkitPerspective = Math.sqrt(Math.pow(cWidth, 2) + Math.pow(cHeight, 2)) + 'px';\n\t\t\tstyle.perspective = style.webkitPerspective;\n\t\t}\n\t}\n};\n\nHybridRendererBase.prototype.searchExtraCompositions = function (assets) {\n\tvar i;\n\tvar len = assets.length;\n\tvar floatingContainer = createTag('div');\n\tfor (i = 0; i < len; i += 1) {\n\t\tif (assets[i].xt) {\n\t\t\tvar comp = this.createComp(assets[i], floatingContainer, this.globalData.comp, null);\n\t\t\tcomp.initExpressions();\n\t\t\tthis.globalData.projectInterface.registerComposition(comp);\n\t\t}\n\t}\n};\n\nfunction HCompElement(data, globalData, comp) {\n\tthis.layers = data.layers;\n\tthis.supports3d = !data.hasMask;\n\tthis.completeLayers = false;\n\tthis.pendingElements = [];\n\tthis.elements = this.layers ? createSizedArray(this.layers.length) : [];\n\tthis.initElement(data, globalData, comp);\n\tthis.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : { _placeholder: true };\n}\n\nextendPrototype([HybridRendererBase, ICompElement, HBaseElement], HCompElement);\nHCompElement.prototype._createBaseContainerElements = HCompElement.prototype.createContainerElements;\n\nHCompElement.prototype.createContainerElements = function () {\n\tthis._createBaseContainerElements();\n\t// divElement.style.clip = 'rect(0px, '+this.data.w+'px, '+this.data.h+'px, 0px)';\n\tif (this.data.hasMask) {\n\t\tthis.svgElement.setAttribute('width', this.data.w);\n\t\tthis.svgElement.setAttribute('height', this.data.h);\n\t\tthis.transformedElement = this.baseElement;\n\t} else {\n\t\tthis.transformedElement = this.layerElement;\n\t}\n};\n\nHCompElement.prototype.addTo3dContainer = function (elem, pos) {\n\tvar j = 0;\n\tvar nextElement;\n\twhile (j < pos) {\n\t\tif (this.elements[j] && this.elements[j].getBaseElement) {\n\t\t\tnextElement = this.elements[j].getBaseElement();\n\t\t}\n\t\tj += 1;\n\t}\n\tif (nextElement) {\n\t\tthis.layerElement.insertBefore(elem, nextElement);\n\t} else {\n\t\tthis.layerElement.appendChild(elem);\n\t}\n};\n\nHCompElement.prototype.createComp = function (data) {\n\tif (!this.supports3d) {\n\t\treturn new SVGCompElement(data, this.globalData, this);\n\t}\n\treturn new HCompElement(data, this.globalData, this);\n};\n\nfunction HybridRenderer(animationItem, config) {\n\tthis.animationItem = animationItem;\n\tthis.layers = null;\n\tthis.renderedFrame = -1;\n\tthis.renderConfig = {\n\t\tclassName: (config && config.className) || '',\n\t\timagePreserveAspectRatio: (config && config.imagePreserveAspectRatio) || 'xMidYMid slice',\n\t\thideOnTransparent: !(config && config.hideOnTransparent === false),\n\t\tfilterSize: {\n\t\t\twidth: (config && config.filterSize && config.filterSize.width) || '400%',\n\t\t\theight: (config && config.filterSize && config.filterSize.height) || '400%',\n\t\t\tx: (config && config.filterSize && config.filterSize.x) || '-100%',\n\t\t\ty: (config && config.filterSize && config.filterSize.y) || '-100%',\n\t\t},\n\t};\n\tthis.globalData = {\n\t\t_mdf: false,\n\t\tframeNum: -1,\n\t\trenderConfig: this.renderConfig,\n\t};\n\tthis.pendingElements = [];\n\tthis.elements = [];\n\tthis.threeDElements = [];\n\tthis.destroyed = false;\n\tthis.camera = null;\n\tthis.supports3d = true;\n\tthis.rendererType = 'html';\n}\n\nextendPrototype([HybridRendererBase], HybridRenderer);\n\nHybridRenderer.prototype.createComp = function (data) {\n\tif (!this.supports3d) {\n\t\treturn new SVGCompElement(data, this.globalData, this);\n\t}\n\treturn new HCompElement(data, this.globalData, this);\n};\n\nconst Expressions = (function () {\n\tvar ob = {};\n\tob.initExpressions = initExpressions;\n\n\tfunction initExpressions(animation) {\n\t\tvar stackCount = 0;\n\t\tvar registers = [];\n\n\t\tfunction pushExpression() {\n\t\t\tstackCount += 1;\n\t\t}\n\n\t\tfunction popExpression() {\n\t\t\tstackCount -= 1;\n\t\t\tif (stackCount === 0) {\n\t\t\t\treleaseInstances();\n\t\t\t}\n\t\t}\n\n\t\tfunction registerExpressionProperty(expression) {\n\t\t\tif (registers.indexOf(expression) === -1) {\n\t\t\t\tregisters.push(expression);\n\t\t\t}\n\t\t}\n\n\t\tfunction releaseInstances() {\n\t\t\tvar i;\n\t\t\tvar len = registers.length;\n\t\t\tfor (i = 0; i < len; i += 1) {\n\t\t\t\tregisters[i].release();\n\t\t\t}\n\t\t\tregisters.length = 0;\n\t\t}\n\n\t\tanimation.renderer.compInterface = CompExpressionInterface(animation.renderer);\n\t\tanimation.renderer.globalData.projectInterface.registerComposition(animation.renderer);\n\t\tanimation.renderer.globalData.pushExpression = pushExpression;\n\t\tanimation.renderer.globalData.popExpression = popExpression;\n\t\tanimation.renderer.globalData.registerExpressionProperty = registerExpressionProperty;\n\t}\n\treturn ob;\n}());\n\n/* eslint-disable */\n/*\n Copyright 2014 David Bau.\n\n Permission is hereby granted, free of charge, to any person obtaining\n a copy of this software and associated documentation files (the\n \"Software\"), to deal in the Software without restriction, including\n without limitation the rights to use, copy, modify, merge, publish,\n distribute, sublicense, and/or sell copies of the Software, and to\n permit persons to whom the Software is furnished to do so, subject to\n the following conditions:\n\n The above copyright notice and this permission notice shall be\n included in all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\n IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\n CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\n TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\n SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n */\n\nfunction seedRandom(pool, math) {\n//\n// The following constants are related to IEEE 754 limits.\n//\n\tvar global = this,\n\t\twidth = 256,        // each RC4 output is 0 <= x < 256\n\t\tchunks = 6,         // at least six RC4 outputs for each double\n\t\tdigits = 52,        // there are 52 significant digits in a double\n\t\trngname = 'random', // rngname: name for Math.random and Math.seedrandom\n\t\tstartdenom = math.pow(width, chunks),\n\t\tsignificance = math.pow(2, digits),\n\t\toverflow = significance * 2,\n\t\tmask = width - 1,\n\t\tnodecrypto;         // node.js crypto module, initialized at the bottom.\n\n//\n// seedrandom()\n// This is the seedrandom function described above.\n//\n\tfunction seedrandom(seed, options, callback) {\n\t\tvar key = [];\n\t\toptions = (options === true) ? { entropy: true } : (options || {});\n\n\t\t// Flatten the seed string or build one from local entropy if needed.\n\t\tvar shortseed = mixkey(flatten(\n\t\t\toptions.entropy ? [seed, tostring(pool)] :\n\t\t\t\t(seed === null) ? autoseed() : seed, 3), key);\n\n\t\t// Use the seed to initialize an ARC4 generator.\n\t\tvar arc4 = new ARC4(key);\n\n\t\t// This function returns a random double in [0, 1) that contains\n\t\t// randomness in every bit of the mantissa of the IEEE 754 value.\n\t\tvar prng = function() {\n\t\t\tvar n = arc4.g(chunks),             // Start with a numerator n < 2 ^ 48\n\t\t\t\td = startdenom,                 //   and denominator d = 2 ^ 48.\n\t\t\t\tx = 0;                          //   and no 'extra last byte'.\n\t\t\twhile (n < significance) {          // Fill up all significant digits by\n\t\t\t\tn = (n + x) * width;              //   shifting numerator and\n\t\t\t\td *= width;                       //   denominator and generating a\n\t\t\t\tx = arc4.g(1);                    //   new least-significant-byte.\n\t\t\t}\n\t\t\twhile (n >= overflow) {             // To avoid rounding up, before adding\n\t\t\t\tn /= 2;                           //   last byte, shift everything\n\t\t\t\td /= 2;                           //   right using integer math until\n\t\t\t\tx >>>= 1;                         //   we have exactly the desired bits.\n\t\t\t}\n\t\t\treturn (n + x) / d;                 // Form the number within [0, 1).\n\t\t};\n\n\t\tprng.int32 = function() { return arc4.g(4) | 0; };\n\t\tprng.quick = function() { return arc4.g(4) / 0x100000000; };\n\t\tprng.double = prng;\n\n\t\t// Mix the randomness into accumulated entropy.\n\t\tmixkey(tostring(arc4.S), pool);\n\n\t\t// Calling convention: what to return as a function of prng, seed, is_math.\n\t\treturn (options.pass || callback ||\n\t\t\tfunction(prng, seed, is_math_call, state) {\n\t\t\t\tif (state) {\n\t\t\t\t\t// Load the arc4 state from the given state if it has an S array.\n\t\t\t\t\tif (state.S) { copy(state, arc4); }\n\t\t\t\t\t// Only provide the .state method if requested via options.state.\n\t\t\t\t\tprng.state = function() { return copy(arc4, {}); };\n\t\t\t\t}\n\n\t\t\t\t// If called as a method of Math (Math.seedrandom()), mutate\n\t\t\t\t// Math.random because that is how seedrandom.js has worked since v1.0.\n\t\t\t\tif (is_math_call) { math[rngname] = prng; return seed; }\n\n\t\t\t\t\t// Otherwise, it is a newer calling convention, so return the\n\t\t\t\t// prng directly.\n\t\t\t\telse return prng;\n\t\t\t})(\n\t\t\tprng,\n\t\t\tshortseed,\n\t\t\t'global' in options ? options.global : (this == math),\n\t\t\toptions.state);\n\t}\n\tmath['seed' + rngname] = seedrandom;\n\n//\n// ARC4\n//\n// An ARC4 implementation.  The constructor takes a key in the form of\n// an array of at most (width) integers that should be 0 <= x < (width).\n//\n// The g(count) method returns a pseudorandom integer that concatenates\n// the next (count) outputs from ARC4.  Its return value is a number x\n// that is in the range 0 <= x < (width ^ count).\n//\n\tfunction ARC4(key) {\n\t\tvar t, keylen = key.length,\n\t\t\tme = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\n\n\t\t// The empty key [] is treated as [0].\n\t\tif (!keylen) { key = [keylen++]; }\n\n\t\t// Set up S using the standard key scheduling algorithm.\n\t\twhile (i < width) {\n\t\t\ts[i] = i++;\n\t\t}\n\t\tfor (i = 0; i < width; i++) {\n\t\t\ts[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\n\t\t\ts[j] = t;\n\t\t}\n\n\t\t// The \"g\" method returns the next (count) outputs as one number.\n\t\tme.g = function(count) {\n\t\t\t// Using instance members instead of closure state nearly doubles speed.\n\t\t\tvar t, r = 0,\n\t\t\t\ti = me.i, j = me.j, s = me.S;\n\t\t\twhile (count--) {\n\t\t\t\tt = s[i = mask & (i + 1)];\n\t\t\t\tr = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\n\t\t\t}\n\t\t\tme.i = i; me.j = j;\n\t\t\treturn r;\n\t\t\t// For robust unpredictability, the function call below automatically\n\t\t\t// discards an initial batch of values.  This is called RC4-drop[256].\n\t\t\t// See http://google.com/search?q=rsa+fluhrer+response&btnI\n\t\t};\n\t}\n\n//\n// copy()\n// Copies internal state of ARC4 to or from a plain object.\n//\n\tfunction copy(f, t) {\n\t\tt.i = f.i;\n\t\tt.j = f.j;\n\t\tt.S = f.S.slice();\n\t\treturn t;\n\t}\n\n//\n// flatten()\n// Converts an object tree to nested arrays of strings.\n//\n\tfunction flatten(obj, depth) {\n\t\tvar result = [], typ = (typeof obj), prop;\n\t\tif (depth && typ == 'object') {\n\t\t\tfor (prop in obj) {\n\t\t\t\ttry { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\n\t\t\t}\n\t\t}\n\t\treturn (result.length ? result : typ == 'string' ? obj : obj + '\\0');\n\t}\n\n//\n// mixkey()\n// Mixes a string seed into a key that is an array of integers, and\n// returns a shortened string seed that is equivalent to the result key.\n//\n\tfunction mixkey(seed, key) {\n\t\tvar stringseed = seed + '', smear, j = 0;\n\t\twhile (j < stringseed.length) {\n\t\t\tkey[mask & j] =\n\t\t\t\tmask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\n\t\t}\n\t\treturn tostring(key);\n\t}\n\n//\n// autoseed()\n// Returns an object for autoseeding, using window.crypto and Node crypto\n// module if available.\n//\n\tfunction autoseed() {\n\t\ttry {\n\t\t\tif (nodecrypto) { return tostring(nodecrypto.randomBytes(width)); }\n\t\t\tvar out = new Uint8Array(width);\n\t\t\t(global.crypto || global.msCrypto).getRandomValues(out);\n\t\t\treturn tostring(out);\n\t\t} catch (e) {\n\t\t\tvar browser = global.navigator,\n\t\t\t\tplugins = browser && browser.plugins;\n\t\t\treturn [+new Date(), global, plugins, global.screen, tostring(pool)];\n\t\t}\n\t}\n\n//\n// tostring()\n// Converts an array of charcodes to a string\n//\n\tfunction tostring(a) {\n\t\treturn String.fromCharCode.apply(0, a);\n\t}\n\n//\n// When seedrandom.js is loaded, we immediately mix a few bits\n// from the built-in RNG into the entropy pool.  Because we do\n// not want to interfere with deterministic PRNG state later,\n// seedrandom will not call math.random on its own again after\n// initialization.\n//\n\tmixkey(math.random(), pool);\n\n//\n// Nodejs and AMD support: export the implementation as a module using\n// either convention.\n//\n\n// End anonymous scope, and pass initial values.\n};\n\nfunction initialize$2(BMMath) {\n\tseedRandom([], BMMath);\n}\n\nvar propTypes = {\n\tSHAPE: 'shape',\n};\n\n/* eslint-disable camelcase */\n\nconst ExpressionManager = (function () {\n\t'use strict';\n\n\tvar ob = {};\n\tvar Math = BMMath;\n\tvar window = null;\n\tvar document = null;\n\tvar XMLHttpRequest = null;\n\tvar fetch = null;\n\tvar frames = null;\n\tinitialize$2(BMMath);\n\n\tfunction $bm_isInstanceOfArray(arr) {\n\t\treturn arr.constructor === Array || arr.constructor === Float32Array;\n\t}\n\n\tfunction isNumerable(tOfV, v) {\n\t\treturn tOfV === 'number' || tOfV === 'boolean' || tOfV === 'string' || v instanceof Number;\n\t}\n\n\tfunction $bm_neg(a) {\n\t\tvar tOfA = typeof a;\n\t\tif (tOfA === 'number' || tOfA === 'boolean' || a instanceof Number) {\n\t\t\treturn -a;\n\t\t}\n\t\tif ($bm_isInstanceOfArray(a)) {\n\t\t\tvar i;\n\t\t\tvar lenA = a.length;\n\t\t\tvar retArr = [];\n\t\t\tfor (i = 0; i < lenA; i += 1) {\n\t\t\t\tretArr[i] = -a[i];\n\t\t\t}\n\t\t\treturn retArr;\n\t\t}\n\t\tif (a.propType) {\n\t\t\treturn a.v;\n\t\t}\n\t\treturn -a;\n\t}\n\n\tvar easeInBez = BezierFactory.getBezierEasing(0.333, 0, 0.833, 0.833, 'easeIn').get;\n\tvar easeOutBez = BezierFactory.getBezierEasing(0.167, 0.167, 0.667, 1, 'easeOut').get;\n\tvar easeInOutBez = BezierFactory.getBezierEasing(0.33, 0, 0.667, 1, 'easeInOut').get;\n\n\tfunction sum(a, b) {\n\t\tvar tOfA = typeof a;\n\t\tvar tOfB = typeof b;\n\t\tif (tOfA === 'string' || tOfB === 'string') {\n\t\t\treturn a + b;\n\t\t}\n\t\tif (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n\t\t\treturn a + b;\n\t\t}\n\t\tif ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n\t\t\ta = a.slice(0);\n\t\t\ta[0] += b;\n\t\t\treturn a;\n\t\t}\n\t\tif (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n\t\t\tb = b.slice(0);\n\t\t\tb[0] = a + b[0];\n\t\t\treturn b;\n\t\t}\n\t\tif ($bm_isInstanceOfArray(a) && $bm_isInstanceOfArray(b)) {\n\t\t\tvar i = 0;\n\t\t\tvar lenA = a.length;\n\t\t\tvar lenB = b.length;\n\t\t\tvar retArr = [];\n\t\t\twhile (i < lenA || i < lenB) {\n\t\t\t\tif ((typeof a[i] === 'number' || a[i] instanceof Number) && (typeof b[i] === 'number' || b[i] instanceof Number)) {\n\t\t\t\t\tretArr[i] = a[i] + b[i];\n\t\t\t\t} else {\n\t\t\t\t\tretArr[i] = b[i] === undefined ? a[i] : a[i] || b[i];\n\t\t\t\t}\n\t\t\t\ti += 1;\n\t\t\t}\n\t\t\treturn retArr;\n\t\t}\n\t\treturn 0;\n\t}\n\tvar add = sum;\n\n\tfunction sub(a, b) {\n\t\tvar tOfA = typeof a;\n\t\tvar tOfB = typeof b;\n\t\tif (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n\t\t\tif (tOfA === 'string') {\n\t\t\t\ta = parseInt(a, 10);\n\t\t\t}\n\t\t\tif (tOfB === 'string') {\n\t\t\t\tb = parseInt(b, 10);\n\t\t\t}\n\t\t\treturn a - b;\n\t\t}\n\t\tif ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n\t\t\ta = a.slice(0);\n\t\t\ta[0] -= b;\n\t\t\treturn a;\n\t\t}\n\t\tif (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n\t\t\tb = b.slice(0);\n\t\t\tb[0] = a - b[0];\n\t\t\treturn b;\n\t\t}\n\t\tif ($bm_isInstanceOfArray(a) && $bm_isInstanceOfArray(b)) {\n\t\t\tvar i = 0;\n\t\t\tvar lenA = a.length;\n\t\t\tvar lenB = b.length;\n\t\t\tvar retArr = [];\n\t\t\twhile (i < lenA || i < lenB) {\n\t\t\t\tif ((typeof a[i] === 'number' || a[i] instanceof Number) && (typeof b[i] === 'number' || b[i] instanceof Number)) {\n\t\t\t\t\tretArr[i] = a[i] - b[i];\n\t\t\t\t} else {\n\t\t\t\t\tretArr[i] = b[i] === undefined ? a[i] : a[i] || b[i];\n\t\t\t\t}\n\t\t\t\ti += 1;\n\t\t\t}\n\t\t\treturn retArr;\n\t\t}\n\t\treturn 0;\n\t}\n\n\tfunction mul(a, b) {\n\t\tvar tOfA = typeof a;\n\t\tvar tOfB = typeof b;\n\t\tvar arr;\n\t\tif (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n\t\t\treturn a * b;\n\t\t}\n\n\t\tvar i;\n\t\tvar len;\n\t\tif ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n\t\t\tlen = a.length;\n\t\t\tarr = createTypedArray('float32', len);\n\t\t\tfor (i = 0; i < len; i += 1) {\n\t\t\t\tarr[i] = a[i] * b;\n\t\t\t}\n\t\t\treturn arr;\n\t\t}\n\t\tif (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n\t\t\tlen = b.length;\n\t\t\tarr = createTypedArray('float32', len);\n\t\t\tfor (i = 0; i < len; i += 1) {\n\t\t\t\tarr[i] = a * b[i];\n\t\t\t}\n\t\t\treturn arr;\n\t\t}\n\t\treturn 0;\n\t}\n\n\tfunction div(a, b) {\n\t\tvar tOfA = typeof a;\n\t\tvar tOfB = typeof b;\n\t\tvar arr;\n\t\tif (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n\t\t\treturn a / b;\n\t\t}\n\t\tvar i;\n\t\tvar len;\n\t\tif ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n\t\t\tlen = a.length;\n\t\t\tarr = createTypedArray('float32', len);\n\t\t\tfor (i = 0; i < len; i += 1) {\n\t\t\t\tarr[i] = a[i] / b;\n\t\t\t}\n\t\t\treturn arr;\n\t\t}\n\t\tif (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n\t\t\tlen = b.length;\n\t\t\tarr = createTypedArray('float32', len);\n\t\t\tfor (i = 0; i < len; i += 1) {\n\t\t\t\tarr[i] = a / b[i];\n\t\t\t}\n\t\t\treturn arr;\n\t\t}\n\t\treturn 0;\n\t}\n\tfunction mod(a, b) {\n\t\tif (typeof a === 'string') {\n\t\t\ta = parseInt(a, 10);\n\t\t}\n\t\tif (typeof b === 'string') {\n\t\t\tb = parseInt(b, 10);\n\t\t}\n\t\treturn a % b;\n\t}\n\tvar $bm_sum = sum;\n\tvar $bm_sub = sub;\n\tvar $bm_mul = mul;\n\tvar $bm_div = div;\n\tvar $bm_mod = mod;\n\n\tfunction clamp(num, min, max) {\n\t\tif (min > max) {\n\t\t\tvar mm = max;\n\t\t\tmax = min;\n\t\t\tmin = mm;\n\t\t}\n\t\treturn Math.min(Math.max(num, min), max);\n\t}\n\n\tfunction radiansToDegrees(val) {\n\t\treturn val / degToRads;\n\t}\n\tvar radians_to_degrees = radiansToDegrees;\n\n\tfunction degreesToRadians(val) {\n\t\treturn val * degToRads;\n\t}\n\tvar degrees_to_radians = radiansToDegrees;\n\n\tvar helperLengthArray = [0, 0, 0, 0, 0, 0];\n\n\tfunction length(arr1, arr2) {\n\t\tif (typeof arr1 === 'number' || arr1 instanceof Number) {\n\t\t\tarr2 = arr2 || 0;\n\t\t\treturn Math.abs(arr1 - arr2);\n\t\t}\n\t\tif (!arr2) {\n\t\t\tarr2 = helperLengthArray;\n\t\t}\n\t\tvar i;\n\t\tvar len = Math.min(arr1.length, arr2.length);\n\t\tvar addedLength = 0;\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\taddedLength += Math.pow(arr2[i] - arr1[i], 2);\n\t\t}\n\t\treturn Math.sqrt(addedLength);\n\t}\n\n\tfunction normalize(vec) {\n\t\treturn div(vec, length(vec));\n\t}\n\n\tfunction rgbToHsl(val) {\n\t\tvar r = val[0]; var g = val[1]; var b = val[2];\n\t\tvar max = Math.max(r, g, b);\n\t\tvar min = Math.min(r, g, b);\n\t\tvar h;\n\t\tvar s;\n\t\tvar l = (max + min) / 2;\n\n\t\tif (max === min) {\n\t\t\th = 0; // achromatic\n\t\t\ts = 0; // achromatic\n\t\t} else {\n\t\t\tvar d = max - min;\n\t\t\ts = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n\t\t\tswitch (max) {\n\t\t\t\tcase r: h = (g - b) / d + (g < b ? 6 : 0); break;\n\t\t\t\tcase g: h = (b - r) / d + 2; break;\n\t\t\t\tcase b: h = (r - g) / d + 4; break;\n\t\t\t\tdefault: break;\n\t\t\t}\n\t\t\th /= 6;\n\t\t}\n\n\t\treturn [h, s, l, val[3]];\n\t}\n\n\tfunction hue2rgb(p, q, t) {\n\t\tif (t < 0) t += 1;\n\t\tif (t > 1) t -= 1;\n\t\tif (t < 1 / 6) return p + (q - p) * 6 * t;\n\t\tif (t < 1 / 2) return q;\n\t\tif (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\n\t\treturn p;\n\t}\n\n\tfunction hslToRgb(val) {\n\t\tvar h = val[0];\n\t\tvar s = val[1];\n\t\tvar l = val[2];\n\n\t\tvar r;\n\t\tvar g;\n\t\tvar b;\n\n\t\tif (s === 0) {\n\t\t\tr = l; // achromatic\n\t\t\tb = l; // achromatic\n\t\t\tg = l; // achromatic\n\t\t} else {\n\t\t\tvar q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n\t\t\tvar p = 2 * l - q;\n\t\t\tr = hue2rgb(p, q, h + 1 / 3);\n\t\t\tg = hue2rgb(p, q, h);\n\t\t\tb = hue2rgb(p, q, h - 1 / 3);\n\t\t}\n\n\t\treturn [r, g, b, val[3]];\n\t}\n\n\tfunction linear(t, tMin, tMax, value1, value2) {\n\t\tif (value1 === undefined || value2 === undefined) {\n\t\t\tvalue1 = tMin;\n\t\t\tvalue2 = tMax;\n\t\t\ttMin = 0;\n\t\t\ttMax = 1;\n\t\t}\n\t\tif (tMax < tMin) {\n\t\t\tvar _tMin = tMax;\n\t\t\ttMax = tMin;\n\t\t\ttMin = _tMin;\n\t\t}\n\t\tif (t <= tMin) {\n\t\t\treturn value1;\n\t\t} if (t >= tMax) {\n\t\t\treturn value2;\n\t\t}\n\t\tvar perc = tMax === tMin ? 0 : (t - tMin) / (tMax - tMin);\n\t\tif (!value1.length) {\n\t\t\treturn value1 + (value2 - value1) * perc;\n\t\t}\n\t\tvar i;\n\t\tvar len = value1.length;\n\t\tvar arr = createTypedArray('float32', len);\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tarr[i] = value1[i] + (value2[i] - value1[i]) * perc;\n\t\t}\n\t\treturn arr;\n\t}\n\tfunction random(min, max) {\n\t\tif (max === undefined) {\n\t\t\tif (min === undefined) {\n\t\t\t\tmin = 0;\n\t\t\t\tmax = 1;\n\t\t\t} else {\n\t\t\t\tmax = min;\n\t\t\t\tmin = undefined;\n\t\t\t}\n\t\t}\n\t\tif (max.length) {\n\t\t\tvar i;\n\t\t\tvar len = max.length;\n\t\t\tif (!min) {\n\t\t\t\tmin = createTypedArray('float32', len);\n\t\t\t}\n\t\t\tvar arr = createTypedArray('float32', len);\n\t\t\tvar rnd = BMMath.random();\n\t\t\tfor (i = 0; i < len; i += 1) {\n\t\t\t\tarr[i] = min[i] + rnd * (max[i] - min[i]);\n\t\t\t}\n\t\t\treturn arr;\n\t\t}\n\t\tif (min === undefined) {\n\t\t\tmin = 0;\n\t\t}\n\t\tvar rndm = BMMath.random();\n\t\treturn min + rndm * (max - min);\n\t}\n\n\tfunction createPath(points, inTangents, outTangents, closed) {\n\t\tvar i;\n\t\tvar len = points.length;\n\t\tvar path = shapePool.newElement();\n\t\tpath.setPathData(!!closed, len);\n\t\tvar arrPlaceholder = [0, 0];\n\t\tvar inVertexPoint;\n\t\tvar outVertexPoint;\n\t\tfor (i = 0; i < len; i += 1) {\n\t\t\tinVertexPoint = (inTangents && inTangents[i]) ? inTangents[i] : arrPlaceholder;\n\t\t\toutVertexPoint = (outTangents && outTangents[i]) ? outTangents[i] : arrPlaceholder;\n\t\t\tpath.setTripleAt(points[i][0], points[i][1], outVertexPoint[0] + points[i][0], outVertexPoint[1] + points[i][1], inVertexPoint[0] + points[i][0], inVertexPoint[1] + points[i][1], i, true);\n\t\t}\n\t\treturn path;\n\t}\n\n\tfunction initiateExpression(elem, data, property) {\n\t\tvar val = data.x;\n\t\tvar needsVelocity = /velocity(?![\\w\\d])/.test(val);\n\t\tvar _needsRandom = val.indexOf('random') !== -1;\n\t\tvar elemType = elem.data.ty;\n\t\tvar transform;\n\t\tvar $bm_transform;\n\t\tvar content;\n\t\tvar effect;\n\t\tvar thisProperty = property;\n\t\tthisProperty.valueAtTime = thisProperty.getValueAtTime;\n\t\tObject.defineProperty(thisProperty, 'value', {\n\t\t\tget: function () {\n\t\t\t\treturn thisProperty.v;\n\t\t\t},\n\t\t});\n\t\telem.comp.frameDuration = 1 / elem.comp.globalData.frameRate;\n\t\telem.comp.displayStartTime = 0;\n\t\tvar inPoint = elem.data.ip / elem.comp.globalData.frameRate;\n\t\tvar outPoint = elem.data.op / elem.comp.globalData.frameRate;\n\t\tvar width = elem.data.sw ? elem.data.sw : 0;\n\t\tvar height = elem.data.sh ? elem.data.sh : 0;\n\t\tvar name = elem.data.nm;\n\t\tvar loopIn;\n\t\tvar loop_in;\n\t\tvar loopOut;\n\t\tvar loop_out;\n\t\tvar smooth;\n\t\tvar toWorld;\n\t\tvar fromWorld;\n\t\tvar fromComp;\n\t\tvar toComp;\n\t\tvar fromCompToSurface;\n\t\tvar position;\n\t\tvar rotation;\n\t\tvar anchorPoint;\n\t\tvar scale;\n\t\tvar thisLayer;\n\t\tvar thisComp;\n\t\tvar mask;\n\t\tvar valueAtTime;\n\t\tvar velocityAtTime;\n\n\t\tvar scoped_bm_rt;\n\t\t// val = val.replace(/(\\\\?\"|')((http)(s)?(:\\/))?\\/.*?(\\\\?\"|')/g, \"\\\"\\\"\"); // deter potential network calls\n\t\tvar expression_function = eval('[function _expression_function(){' + val + ';scoped_bm_rt=$bm_rt}]')[0]; // eslint-disable-line no-eval\n\t\tvar numKeys = property.kf ? data.k.length : 0;\n\n\t\tvar active = !this.data || this.data.hd !== true;\n\n\t\tvar wiggle = function wiggle(freq, amp) {\n\t\t\tvar iWiggle;\n\t\t\tvar j;\n\t\t\tvar lenWiggle = this.pv.length ? this.pv.length : 1;\n\t\t\tvar addedAmps = createTypedArray('float32', lenWiggle);\n\t\t\tfreq = 5;\n\t\t\tvar iterations = Math.floor(time * freq);\n\t\t\tiWiggle = 0;\n\t\t\tj = 0;\n\t\t\twhile (iWiggle < iterations) {\n\t\t\t\t// var rnd = BMMath.random();\n\t\t\t\tfor (j = 0; j < lenWiggle; j += 1) {\n\t\t\t\t\taddedAmps[j] += -amp + amp * 2 * BMMath.random();\n\t\t\t\t\t// addedAmps[j] += -amp + amp*2*rnd;\n\t\t\t\t}\n\t\t\t\tiWiggle += 1;\n\t\t\t}\n\t\t\t// var rnd2 = BMMath.random();\n\t\t\tvar periods = time * freq;\n\t\t\tvar perc = periods - Math.floor(periods);\n\t\t\tvar arr = createTypedArray('float32', lenWiggle);\n\t\t\tif (lenWiggle > 1) {\n\t\t\t\tfor (j = 0; j < lenWiggle; j += 1) {\n\t\t\t\t\tarr[j] = this.pv[j] + addedAmps[j] + (-amp + amp * 2 * BMMath.random()) * perc;\n\t\t\t\t\t// arr[j] = this.pv[j] + addedAmps[j] + (-amp + amp*2*rnd)*perc;\n\t\t\t\t\t// arr[i] = this.pv[i] + addedAmp + amp1*perc + amp2*(1-perc);\n\t\t\t\t}\n\t\t\t\treturn arr;\n\t\t\t}\n\t\t\treturn this.pv + addedAmps[0] + (-amp + amp * 2 * BMMath.random()) * perc;\n\t\t}.bind(this);\n\n\t\tif (thisProperty.loopIn) {\n\t\t\tloopIn = thisProperty.loopIn.bind(thisProperty);\n\t\t\tloop_in = loopIn;\n\t\t}\n\n\t\tif (thisProperty.loopOut) {\n\t\t\tloopOut = thisProperty.loopOut.bind(thisProperty);\n\t\t\tloop_out = loopOut;\n\t\t}\n\n\t\tif (thisProperty.smooth) {\n\t\t\tsmooth = thisProperty.smooth.bind(thisProperty);\n\t\t}\n\n\t\tfunction loopInDuration(type, duration) {\n\t\t\treturn loopIn(type, duration, true);\n\t\t}\n\n\t\tfunction loopOutDuration(type, duration) {\n\t\t\treturn loopOut(type, duration, true);\n\t\t}\n\n\t\tif (this.getValueAtTime) {\n\t\t\tvalueAtTime = this.getValueAtTime.bind(this);\n\t\t}\n\n\t\tif (this.getVelocityAtTime) {\n\t\t\tvelocityAtTime = this.getVelocityAtTime.bind(this);\n\t\t}\n\n\t\tvar comp = elem.comp.globalData.projectInterface.bind(elem.comp.globalData.projectInterface);\n\n\t\tfunction lookAt(elem1, elem2) {\n\t\t\tvar fVec = [elem2[0] - elem1[0], elem2[1] - elem1[1], elem2[2] - elem1[2]];\n\t\t\tvar pitch = Math.atan2(fVec[0], Math.sqrt(fVec[1] * fVec[1] + fVec[2] * fVec[2])) / degToRads;\n\t\t\tvar yaw = -Math.atan2(fVec[1], fVec[2]) / degToRads;\n\t\t\treturn [yaw, pitch, 0];\n\t\t}\n\n\t\tfunction easeOut(t, tMin, tMax, val1, val2) {\n\t\t\treturn applyEase(easeOutBez, t, tMin, tMax, val1, val2);\n\t\t}\n\n\t\tfunction easeIn(t, tMin, tMax, val1, val2) {\n\t\t\treturn applyEase(easeInBez, t, tMin, tMax, val1, val2);\n\t\t}\n\n\t\tfunction ease(t, tMin, tMax, val1, val2) {\n\t\t\treturn applyEase(easeInOutBez, t, tMin, tMax, val1, val2);\n\t\t}\n\n\t\tfunction applyEase(fn, t, tMin, tMax, val1, val2) {\n\t\t\tif (val1 === undefined) {\n\t\t\t\tval1 = tMin;\n\t\t\t\tval2 = tMax;\n\t\t\t} else {\n\t\t\t\tt = (t - tMin) / (tMax - tMin);\n\t\t\t}\n\t\t\tif (t > 1) {\n\t\t\t\tt = 1;\n\t\t\t} else if (t < 0) {\n\t\t\t\tt = 0;\n\t\t\t}\n\t\t\tvar mult = fn(t);\n\t\t\tif ($bm_isInstanceOfArray(val1)) {\n\t\t\t\tvar iKey;\n\t\t\t\tvar lenKey = val1.length;\n\t\t\t\tvar arr = createTypedArray('float32', lenKey);\n\t\t\t\tfor (iKey = 0; iKey < lenKey; iKey += 1) {\n\t\t\t\t\tarr[iKey] = (val2[iKey] - val1[iKey]) * mult + val1[iKey];\n\t\t\t\t}\n\t\t\t\treturn arr;\n\t\t\t}\n\t\t\treturn (val2 - val1) * mult + val1;\n\t\t}\n\n\t\tfunction nearestKey(time) {\n\t\t\tvar iKey;\n\t\t\tvar lenKey = data.k.length;\n\t\t\tvar index;\n\t\t\tvar keyTime;\n\t\t\tif (!data.k.length || typeof (data.k[0]) === 'number') {\n\t\t\t\tindex = 0;\n\t\t\t\tkeyTime = 0;\n\t\t\t} else {\n\t\t\t\tindex = -1;\n\t\t\t\ttime *= elem.comp.globalData.frameRate;\n\t\t\t\tif (time < data.k[0].t) {\n\t\t\t\t\tindex = 1;\n\t\t\t\t\tkeyTime = data.k[0].t;\n\t\t\t\t} else {\n\t\t\t\t\tfor (iKey = 0; iKey < lenKey - 1; iKey += 1) {\n\t\t\t\t\t\tif (time === data.k[iKey].t) {\n\t\t\t\t\t\t\tindex = iKey + 1;\n\t\t\t\t\t\t\tkeyTime = data.k[iKey].t;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t} else if (time > data.k[iKey].t && time < data.k[iKey + 1].t) {\n\t\t\t\t\t\t\tif (time - data.k[iKey].t > data.k[iKey + 1].t - time) {\n\t\t\t\t\t\t\t\tindex = iKey + 2;\n\t\t\t\t\t\t\t\tkeyTime = data.k[iKey + 1].t;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tindex = iKey + 1;\n\t\t\t\t\t\t\t\tkeyTime = data.k[iKey].t;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif (index === -1) {\n\t\t\t\t\t\tindex = iKey + 1;\n\t\t\t\t\t\tkeyTime = data.k[iKey].t;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar obKey = {};\n\t\t\tobKey.index = index;\n\t\t\tobKey.time = keyTime / elem.comp.globalData.frameRate;\n\t\t\treturn obKey;\n\t\t}\n\n\t\tfunction key(ind) {\n\t\t\tvar obKey;\n\t\t\tvar iKey;\n\t\t\tvar lenKey;\n\t\t\tif (!data.k.length || typeof (data.k[0]) === 'number') {\n\t\t\t\tthrow new Error('The property has no keyframe at index ' + ind);\n\t\t\t}\n\t\t\tind -= 1;\n\t\t\tobKey = {\n\t\t\t\ttime: data.k[ind].t / elem.comp.globalData.frameRate,\n\t\t\t\tvalue: [],\n\t\t\t};\n\t\t\tvar arr = Object.prototype.hasOwnProperty.call(data.k[ind], 's') ? data.k[ind].s : data.k[ind - 1].e;\n\n\t\t\tlenKey = arr.length;\n\t\t\tfor (iKey = 0; iKey < lenKey; iKey += 1) {\n\t\t\t\tobKey[iKey] = arr[iKey];\n\t\t\t\tobKey.value[iKey] = arr[iKey];\n\t\t\t}\n\t\t\treturn obKey;\n\t\t}\n\n\t\tfunction framesToTime(fr, fps) {\n\t\t\tif (!fps) {\n\t\t\t\tfps = elem.comp.globalData.frameRate;\n\t\t\t}\n\t\t\treturn fr / fps;\n\t\t}\n\n\t\tfunction timeToFrames(t, fps) {\n\t\t\tif (!t && t !== 0) {\n\t\t\t\tt = time;\n\t\t\t}\n\t\t\tif (!fps) {\n\t\t\t\tfps = elem.comp.globalData.frameRate;\n\t\t\t}\n\t\t\treturn t * fps;\n\t\t}\n\n\t\tfunction seedRandom(seed) {\n\t\t\tBMMath.seedrandom(randSeed + seed);\n\t\t}\n\n\t\tfunction sourceRectAtTime() {\n\t\t\treturn elem.sourceRectAtTime();\n\t\t}\n\n\t\tfunction substring(init, end) {\n\t\t\tif (typeof value === 'string') {\n\t\t\t\tif (end === undefined) {\n\t\t\t\t\treturn value.substring(init);\n\t\t\t\t}\n\t\t\t\treturn value.substring(init, end);\n\t\t\t}\n\t\t\treturn '';\n\t\t}\n\n\t\tfunction substr(init, end) {\n\t\t\tif (typeof value === 'string') {\n\t\t\t\tif (end === undefined) {\n\t\t\t\t\treturn value.substr(init);\n\t\t\t\t}\n\t\t\t\treturn value.substr(init, end);\n\t\t\t}\n\t\t\treturn '';\n\t\t}\n\n\t\tfunction posterizeTime(framesPerSecond) {\n\t\t\ttime = framesPerSecond === 0 ? 0 : Math.floor(time * framesPerSecond) / framesPerSecond;\n\t\t\tvalue = valueAtTime(time);\n\t\t}\n\n\t\tvar time;\n\t\tvar velocity;\n\t\tvar value;\n\t\tvar text;\n\t\tvar textIndex;\n\t\tvar textTotal;\n\t\tvar selectorValue;\n\t\tvar index = elem.data.ind;\n\t\tvar hasParent = !!(elem.hierarchy && elem.hierarchy.length);\n\t\tvar parent;\n\t\tvar randSeed = Math.floor(Math.random() * 1000000);\n\t\tvar globalData = elem.globalData;\n\t\tfunction executeExpression(_value) {\n\t\t\t// globalData.pushExpression();\n\t\t\tvalue = _value;\n\t\t\tif (this.frameExpressionId === elem.globalData.frameId && this.propType !== 'textSelector') {\n\t\t\t\treturn value;\n\t\t\t}\n\t\t\tif (this.propType === 'textSelector') {\n\t\t\t\ttextIndex = this.textIndex;\n\t\t\t\ttextTotal = this.textTotal;\n\t\t\t\tselectorValue = this.selectorValue;\n\t\t\t}\n\t\t\tif (!thisLayer) {\n\t\t\t\ttext = elem.layerInterface.text;\n\t\t\t\tthisLayer = elem.layerInterface;\n\t\t\t\tthisComp = elem.comp.compInterface;\n\t\t\t\ttoWorld = thisLayer.toWorld.bind(thisLayer);\n\t\t\t\tfromWorld = thisLayer.fromWorld.bind(thisLayer);\n\t\t\t\tfromComp = thisLayer.fromComp.bind(thisLayer);\n\t\t\t\ttoComp = thisLayer.toComp.bind(thisLayer);\n\t\t\t\tmask = thisLayer.mask ? thisLayer.mask.bind(thisLayer) : null;\n\t\t\t\tfromCompToSurface = fromComp;\n\t\t\t}\n\t\t\tif (!transform) {\n\t\t\t\ttransform = elem.layerInterface('ADBE Transform Group');\n\t\t\t\t$bm_transform = transform;\n\t\t\t\tif (transform) {\n\t\t\t\t\tanchorPoint = transform.anchorPoint;\n\t\t\t\t\t/* position = transform.position;\n                    rotation = transform.rotation;\n                    scale = transform.scale; */\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (elemType === 4 && !content) {\n\t\t\t\tcontent = thisLayer('ADBE Root Vectors Group');\n\t\t\t}\n\t\t\tif (!effect) {\n\t\t\t\teffect = thisLayer(4);\n\t\t\t}\n\t\t\thasParent = !!(elem.hierarchy && elem.hierarchy.length);\n\t\t\tif (hasParent && !parent) {\n\t\t\t\tparent = elem.hierarchy[0].layerInterface;\n\t\t\t}\n\t\t\ttime = this.comp.renderedFrame / this.comp.globalData.frameRate;\n\t\t\tif (_needsRandom) {\n\t\t\t\tseedRandom(randSeed + time);\n\t\t\t}\n\t\t\tif (needsVelocity) {\n\t\t\t\tvelocity = velocityAtTime(time);\n\t\t\t}\n\t\t\texpression_function();\n\t\t\tthis.frameExpressionId = elem.globalData.frameId;\n\n\t\t\t// TODO: Check if it's possible to return on ShapeInterface the .v value\n\t\t\t// Changed this to a ternary operation because Rollup failed compiling it correctly\n\t\t\tscoped_bm_rt = scoped_bm_rt.propType === propTypes.SHAPE\n\t\t\t\t? scoped_bm_rt.v\n\t\t\t\t: scoped_bm_rt;\n\t\t\treturn scoped_bm_rt;\n\t\t}\n\t\t// Bundlers will see these as dead code and unless we reference them\n\t\texecuteExpression.__preventDeadCodeRemoval = [$bm_transform, anchorPoint, time, velocity, inPoint, outPoint, width, height, name, loop_in, loop_out, smooth, toComp, fromCompToSurface, toWorld, fromWorld, mask, position, rotation, scale, thisComp, numKeys, active, wiggle, loopInDuration, loopOutDuration, comp, lookAt, easeOut, easeIn, ease, nearestKey, key, text, textIndex, textTotal, selectorValue, framesToTime, timeToFrames, sourceRectAtTime, substring, substr, posterizeTime, index, globalData];\n\t\treturn executeExpression;\n\t}\n\n\tob.initiateExpression = initiateExpression;\n\tob.__preventDeadCodeRemoval = [window, document, XMLHttpRequest, fetch, frames, $bm_neg, add, $bm_sum, $bm_sub, $bm_mul, $bm_div, $bm_mod, clamp, radians_to_degrees, degreesToRadians, degrees_to_radians, normalize, rgbToHsl, hslToRgb, linear, random, createPath];\n\treturn ob;\n}());\n\nconst expressionHelpers = (function () {\n\tfunction searchExpressions(elem, data, prop) {\n\t\tif (data.x) {\n\t\t\tprop.k = true;\n\t\t\tprop.x = true;\n\t\t\tprop.initiateExpression = ExpressionManager.initiateExpression;\n\t\t\tprop.effectsSequence.push(prop.initiateExpression(elem, data, prop).bind(prop));\n\t\t}\n\t}\n\n\tfunction getValueAtTime(frameNum) {\n\t\tframeNum *= this.elem.globalData.frameRate;\n\t\tframeNum -= this.offsetTime;\n\t\tif (frameNum !== this._cachingAtTime.lastFrame) {\n\t\t\tthis._cachingAtTime.lastIndex = this._cachingAtTime.lastFrame < frameNum ? this._cachingAtTime.lastIndex : 0;\n\t\t\tthis._cachingAtTime.value = this.interpolateValue(frameNum, this._cachingAtTime);\n\t\t\tthis._cachingAtTime.lastFrame = frameNum;\n\t\t}\n\t\treturn this._cachingAtTime.value;\n\t}\n\n\tfunction getSpeedAtTime(frameNum) {\n\t\tvar delta = -0.01;\n\t\tvar v1 = this.getValueAtTime(frameNum);\n\t\tvar v2 = this.getValueAtTime(frameNum + delta);\n\t\tvar speed = 0;\n\t\tif (v1.length) {\n\t\t\tvar i;\n\t\t\tfor (i = 0; i < v1.length; i += 1) {\n\t\t\t\tspeed += Math.pow(v2[i] - v1[i], 2);\n\t\t\t}\n\t\t\tspeed = Math.sqrt(speed) * 100;\n\t\t} else {\n\t\t\tspeed = 0;\n\t\t}\n\t\treturn speed;\n\t}\n\n\tfunction getVelocityAtTime(frameNum) {\n\t\tif (this.vel !== undefined) {\n\t\t\treturn this.vel;\n\t\t}\n\t\tvar delta = -0.001;\n\t\t// frameNum += this.elem.data.st;\n\t\tvar v1 = this.getValueAtTime(frameNum);\n\t\tvar v2 = this.getValueAtTime(frameNum + delta);\n\t\tvar velocity;\n\t\tif (v1.length) {\n\t\t\tvelocity = createTypedArray('float32', v1.length);\n\t\t\tvar i;\n\t\t\tfor (i = 0; i < v1.length; i += 1) {\n\t\t\t\t// removing frameRate\n\t\t\t\t// if needed, don't add it here\n\t\t\t\t// velocity[i] = this.elem.globalData.frameRate*((v2[i] - v1[i])/delta);\n\t\t\t\tvelocity[i] = (v2[i] - v1[i]) / delta;\n\t\t\t}\n\t\t} else {\n\t\t\tvelocity = (v2 - v1) / delta;\n\t\t}\n\t\treturn velocity;\n\t}\n\n\tfunction getStaticValueAtTime() {\n\t\treturn this.pv;\n\t}\n\n\tfunction setGroupProperty(propertyGroup) {\n\t\tthis.propertyGroup = propertyGroup;\n\t}\n\n\treturn {\n\t\tsearchExpressions: searchExpressions,\n\t\tgetSpeedAtTime: getSpeedAtTime,\n\t\tgetVelocityAtTime: getVelocityAtTime,\n\t\tgetValueAtTime: getValueAtTime,\n\t\tgetStaticValueAtTime: getStaticValueAtTime,\n\t\tsetGroupProperty: setGroupProperty,\n\t};\n}());\n\nfunction addPropertyDecorator() {\n\tfunction loopOut(type, duration, durationFlag) {\n\t\tif (!this.k || !this.keyframes) {\n\t\t\treturn this.pv;\n\t\t}\n\t\ttype = type ? type.toLowerCase() : '';\n\t\tvar currentFrame = this.comp.renderedFrame;\n\t\tvar keyframes = this.keyframes;\n\t\tvar lastKeyFrame = keyframes[keyframes.length - 1].t;\n\t\tif (currentFrame <= lastKeyFrame) {\n\t\t\treturn this.pv;\n\t\t}\n\t\tvar cycleDuration;\n\t\tvar firstKeyFrame;\n\t\tif (!durationFlag) {\n\t\t\tif (!duration || duration > keyframes.length - 1) {\n\t\t\t\tduration = keyframes.length - 1;\n\t\t\t}\n\t\t\tfirstKeyFrame = keyframes[keyframes.length - 1 - duration].t;\n\t\t\tcycleDuration = lastKeyFrame - firstKeyFrame;\n\t\t} else {\n\t\t\tif (!duration) {\n\t\t\t\tcycleDuration = Math.max(0, lastKeyFrame - this.elem.data.ip);\n\t\t\t} else {\n\t\t\t\tcycleDuration = Math.abs(lastKeyFrame - this.elem.comp.globalData.frameRate * duration);\n\t\t\t}\n\t\t\tfirstKeyFrame = lastKeyFrame - cycleDuration;\n\t\t}\n\t\tvar i;\n\t\tvar len;\n\t\tvar ret;\n\t\tif (type === 'pingpong') {\n\t\t\tvar iterations = Math.floor((currentFrame - firstKeyFrame) / cycleDuration);\n\t\t\tif (iterations % 2 !== 0) {\n\t\t\t\treturn this.getValueAtTime(((cycleDuration - (currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame)) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n\t\t\t}\n\t\t} else if (type === 'offset') {\n\t\t\tvar initV = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n\t\t\tvar endV = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n\t\t\tvar current = this.getValueAtTime(((currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n\t\t\tvar repeats = Math.floor((currentFrame - firstKeyFrame) / cycleDuration);\n\t\t\tif (this.pv.length) {\n\t\t\t\tret = new Array(initV.length);\n\t\t\t\tlen = ret.length;\n\t\t\t\tfor (i = 0; i < len; i += 1) {\n\t\t\t\t\tret[i] = (endV[i] - initV[i]) * repeats + current[i];\n\t\t\t\t}\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t\treturn (endV - initV) * repeats + current;\n\t\t} else if (type === 'continue') {\n\t\t\tvar lastValue = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n\t\t\tvar nextLastValue = this.getValueAtTime((lastKeyFrame - 0.001) / this.comp.globalData.frameRate, 0);\n\t\t\tif (this.pv.length) {\n\t\t\t\tret = new Array(lastValue.length);\n\t\t\t\tlen = ret.length;\n\t\t\t\tfor (i = 0; i < len; i += 1) {\n\t\t\t\t\tret[i] = lastValue[i] + (lastValue[i] - nextLastValue[i]) * ((currentFrame - lastKeyFrame) / this.comp.globalData.frameRate) / 0.0005; // eslint-disable-line\n\t\t\t\t}\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t\treturn lastValue + (lastValue - nextLastValue) * (((currentFrame - lastKeyFrame)) / 0.001);\n\t\t}\n\t\treturn this.getValueAtTime((((currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame)) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n\n\t}\n\n\tfunction loopIn(type, duration, durationFlag) {\n\t\tif (!this.k) {\n\t\t\treturn this.pv;\n\t\t}\n\t\ttype = type ? type.toLowerCase() : '';\n\t\tvar currentFrame = this.comp.renderedFrame;\n\t\tvar keyframes = this.keyframes;\n\t\tvar firstKeyFrame = keyframes[0].t;\n\t\tif (currentFrame >= firstKeyFrame) {\n\t\t\treturn this.pv;\n\t\t}\n\t\tvar cycleDuration;\n\t\tvar lastKeyFrame;\n\t\tif (!durationFlag) {\n\t\t\tif (!duration || duration > keyframes.length - 1) {\n\t\t\t\tduration = keyframes.length - 1;\n\t\t\t}\n\t\t\tlastKeyFrame = keyframes[duration].t;\n\t\t\tcycleDuration = lastKeyFrame - firstKeyFrame;\n\t\t} else {\n\t\t\tif (!duration) {\n\t\t\t\tcycleDuration = Math.max(0, this.elem.data.op - firstKeyFrame);\n\t\t\t} else {\n\t\t\t\tcycleDuration = Math.abs(this.elem.comp.globalData.frameRate * duration);\n\t\t\t}\n\t\t\tlastKeyFrame = firstKeyFrame + cycleDuration;\n\t\t}\n\t\tvar i;\n\t\tvar len;\n\t\tvar ret;\n\t\tif (type === 'pingpong') {\n\t\t\tvar iterations = Math.floor((firstKeyFrame - currentFrame) / cycleDuration);\n\t\t\tif (iterations % 2 === 0) {\n\t\t\t\treturn this.getValueAtTime((((firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame)) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n\t\t\t}\n\t\t} else if (type === 'offset') {\n\t\t\tvar initV = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n\t\t\tvar endV = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n\t\t\tvar current = this.getValueAtTime((cycleDuration - ((firstKeyFrame - currentFrame) % cycleDuration) + firstKeyFrame) / this.comp.globalData.frameRate, 0);\n\t\t\tvar repeats = Math.floor((firstKeyFrame - currentFrame) / cycleDuration) + 1;\n\t\t\tif (this.pv.length) {\n\t\t\t\tret = new Array(initV.length);\n\t\t\t\tlen = ret.length;\n\t\t\t\tfor (i = 0; i < len; i += 1) {\n\t\t\t\t\tret[i] = current[i] - (endV[i] - initV[i]) * repeats;\n\t\t\t\t}\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t\treturn current - (endV - initV) * repeats;\n\t\t} else if (type === 'continue') {\n\t\t\tvar firstValue = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n\t\t\tvar nextFirstValue = this.getValueAtTime((firstKeyFrame + 0.001) / this.comp.globalData.frameRate, 0);\n\t\t\tif (this.pv.length) {\n\t\t\t\tret = new Array(firstValue.length);\n\t\t\t\tlen = ret.length;\n\t\t\t\tfor (i = 0; i < len; i += 1) {\n\t\t\t\t\tret[i] = firstValue[i] + ((firstValue[i] - nextFirstValue[i]) * (firstKeyFrame - currentFrame)) / 0.001;\n\t\t\t\t}\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t\treturn firstValue + ((firstValue - nextFirstValue) * (firstKeyFrame - currentFrame)) / 0.001;\n\t\t}\n\t\treturn this.getValueAtTime(((cycleDuration - ((firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame))) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n\n\t}\n\n\tfunction smooth(width, samples) {\n\t\tif (!this.k) {\n\t\t\treturn this.pv;\n\t\t}\n\t\twidth = (width || 0.4) * 0.5;\n\t\tsamples = Math.floor(samples || 5);\n\t\tif (samples <= 1) {\n\t\t\treturn this.pv;\n\t\t}\n\t\tvar currentTime = this.comp.renderedFrame / this.comp.globalData.frameRate;\n\t\tvar initFrame = currentTime - width;\n\t\tvar endFrame = currentTime + width;\n\t\tvar sampleFrequency = samples > 1 ? (endFrame - initFrame) / (samples - 1) : 1;\n\t\tvar i = 0;\n\t\tvar j = 0;\n\t\tvar value;\n\t\tif (this.pv.length) {\n\t\t\tvalue = createTypedArray('float32', this.pv.length);\n\t\t} else {\n\t\t\tvalue = 0;\n\t\t}\n\t\tvar sampleValue;\n\t\twhile (i < samples) {\n\t\t\tsampleValue = this.getValueAtTime(initFrame + i * sampleFrequency);\n\t\t\tif (this.pv.length) {\n\t\t\t\tfor (j = 0; j < this.pv.length; j += 1) {\n\t\t\t\t\tvalue[j] += sampleValue[j];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tvalue += sampleValue;\n\t\t\t}\n\t\t\ti += 1;\n\t\t}\n\t\tif (this.pv.length) {\n\t\t\tfor (j = 0; j < this.pv.length; j += 1) {\n\t\t\t\tvalue[j] /= samples;\n\t\t\t}\n\t\t} else {\n\t\t\tvalue /= samples;\n\t\t}\n\t\treturn value;\n\t}\n\n\tfunction getTransformValueAtTime(time) {\n\t\tif (!this._transformCachingAtTime) {\n\t\t\tthis._transformCachingAtTime = {\n\t\t\t\tv: new Matrix(),\n\t\t\t};\n\t\t}\n\t\t/// /\n\t\tvar matrix = this._transformCachingAtTime.v;\n\t\tmatrix.cloneFromProps(this.pre.props);\n\t\tif (this.appliedTransformations < 1) {\n\t\t\tvar anchor = this.a.getValueAtTime(time);\n\t\t\tmatrix.translate(\n\t\t\t\t-anchor[0] * this.a.mult,\n\t\t\t\t-anchor[1] * this.a.mult,\n\t\t\t\tanchor[2] * this.a.mult\n\t\t\t);\n\t\t}\n\t\tif (this.appliedTransformations < 2) {\n\t\t\tvar scale = this.s.getValueAtTime(time);\n\t\t\tmatrix.scale(\n\t\t\t\tscale[0] * this.s.mult,\n\t\t\t\tscale[1] * this.s.mult,\n\t\t\t\tscale[2] * this.s.mult\n\t\t\t);\n\t\t}\n\t\tif (this.sk && this.appliedTransformations < 3) {\n\t\t\tvar skew = this.sk.getValueAtTime(time);\n\t\t\tvar skewAxis = this.sa.getValueAtTime(time);\n\t\t\tmatrix.skewFromAxis(-skew * this.sk.mult, skewAxis * this.sa.mult);\n\t\t}\n\t\tif (this.r && this.appliedTransformations < 4) {\n\t\t\tvar rotation = this.r.getValueAtTime(time);\n\t\t\tmatrix.rotate(-rotation * this.r.mult);\n\t\t} else if (!this.r && this.appliedTransformations < 4) {\n\t\t\tvar rotationZ = this.rz.getValueAtTime(time);\n\t\t\tvar rotationY = this.ry.getValueAtTime(time);\n\t\t\tvar rotationX = this.rx.getValueAtTime(time);\n\t\t\tvar orientation = this.or.getValueAtTime(time);\n\t\t\tmatrix.rotateZ(-rotationZ * this.rz.mult)\n\t\t\t\t.rotateY(rotationY * this.ry.mult)\n\t\t\t\t.rotateX(rotationX * this.rx.mult)\n\t\t\t\t.rotateZ(-orientation[2] * this.or.mult)\n\t\t\t\t.rotateY(orientation[1] * this.or.mult)\n\t\t\t\t.rotateX(orientation[0] * this.or.mult);\n\t\t}\n\t\tif (this.data.p && this.data.p.s) {\n\t\t\tvar positionX = this.px.getValueAtTime(time);\n\t\t\tvar positionY = this.py.getValueAtTime(time);\n\t\t\tif (this.data.p.z) {\n\t\t\t\tvar positionZ = this.pz.getValueAtTime(time);\n\t\t\t\tmatrix.translate(\n\t\t\t\t\tpositionX * this.px.mult,\n\t\t\t\t\tpositionY * this.py.mult,\n\t\t\t\t\t-positionZ * this.pz.mult\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tmatrix.translate(positionX * this.px.mult, positionY * this.py.mult, 0);\n\t\t\t}\n\t\t} else {\n\t\t\tvar position = this.p.getValueAtTime(time);\n\t\t\tmatrix.translate(\n\t\t\t\tposition[0] * this.p.mult,\n\t\t\t\tposition[1] * this.p.mult,\n\t\t\t\t-position[2] * this.p.mult\n\t\t\t);\n\t\t}\n\t\treturn matrix;\n\t\t/// /\n\t}\n\n\tfunction getTransformStaticValueAtTime() {\n\t\treturn this.v.clone(new Matrix());\n\t}\n\n\tvar getTransformProperty = TransformPropertyFactory.getTransformProperty;\n\tTransformPropertyFactory.getTransformProperty = function (elem, data, container) {\n\t\tvar prop = getTransformProperty(elem, data, container);\n\t\tif (prop.dynamicProperties.length) {\n\t\t\tprop.getValueAtTime = getTransformValueAtTime.bind(prop);\n\t\t} else {\n\t\t\tprop.getValueAtTime = getTransformStaticValueAtTime.bind(prop);\n\t\t}\n\t\tprop.setGroupProperty = expressionHelpers.setGroupProperty;\n\t\treturn prop;\n\t};\n\n\tvar propertyGetProp = PropertyFactory.getProp;\n\tPropertyFactory.getProp = function (elem, data, type, mult, container) {\n\t\tvar prop = propertyGetProp(elem, data, type, mult, container);\n\t\t// prop.getVelocityAtTime = getVelocityAtTime;\n\t\t// prop.loopOut = loopOut;\n\t\t// prop.loopIn = loopIn;\n\t\tif (prop.kf) {\n\t\t\tprop.getValueAtTime = expressionHelpers.getValueAtTime.bind(prop);\n\t\t} else {\n\t\t\tprop.getValueAtTime = expressionHelpers.getStaticValueAtTime.bind(prop);\n\t\t}\n\t\tprop.setGroupProperty = expressionHelpers.setGroupProperty;\n\t\tprop.loopOut = loopOut;\n\t\tprop.loopIn = loopIn;\n\t\tprop.smooth = smooth;\n\t\tprop.getVelocityAtTime = expressionHelpers.getVelocityAtTime.bind(prop);\n\t\tprop.getSpeedAtTime = expressionHelpers.getSpeedAtTime.bind(prop);\n\t\tprop.numKeys = data.a === 1 ? data.k.length : 0;\n\t\tprop.propertyIndex = data.ix;\n\t\tvar value = 0;\n\t\tif (type !== 0) {\n\t\t\tvalue = createTypedArray('float32', data.a === 1 ? data.k[0].s.length : data.k.length);\n\t\t}\n\t\tprop._cachingAtTime = {\n\t\t\tlastFrame: initialDefaultFrame,\n\t\t\tlastIndex: 0,\n\t\t\tvalue: value,\n\t\t};\n\t\texpressionHelpers.searchExpressions(elem, data, prop);\n\t\tif (prop.k) {\n\t\t\tcontainer.addDynamicProperty(prop);\n\t\t}\n\n\t\treturn prop;\n\t};\n\n\tfunction getShapeValueAtTime(frameNum) {\n\t\t// For now this caching object is created only when needed instead of creating it when the shape is initialized.\n\t\tif (!this._cachingAtTime) {\n\t\t\tthis._cachingAtTime = {\n\t\t\t\tshapeValue: shapePool.clone(this.pv),\n\t\t\t\tlastIndex: 0,\n\t\t\t\tlastTime: initialDefaultFrame,\n\t\t\t};\n\t\t}\n\n\t\tframeNum *= this.elem.globalData.frameRate;\n\t\tframeNum -= this.offsetTime;\n\t\tif (frameNum !== this._cachingAtTime.lastTime) {\n\t\t\tthis._cachingAtTime.lastIndex = this._cachingAtTime.lastTime < frameNum ? this._caching.lastIndex : 0;\n\t\t\tthis._cachingAtTime.lastTime = frameNum;\n\t\t\tthis.interpolateShape(frameNum, this._cachingAtTime.shapeValue, this._cachingAtTime);\n\t\t}\n\t\treturn this._cachingAtTime.shapeValue;\n\t}\n\n\tvar ShapePropertyConstructorFunction = ShapePropertyFactory.getConstructorFunction();\n\tvar KeyframedShapePropertyConstructorFunction = ShapePropertyFactory.getKeyframedConstructorFunction();\n\n\tfunction ShapeExpressions() {}\n\tShapeExpressions.prototype = {\n\t\tvertices: function (prop, time) {\n\t\t\tif (this.k) {\n\t\t\t\tthis.getValue();\n\t\t\t}\n\t\t\tvar shapePath = this.v;\n\t\t\tif (time !== undefined) {\n\t\t\t\tshapePath = this.getValueAtTime(time, 0);\n\t\t\t}\n\t\t\tvar i;\n\t\t\tvar len = shapePath._length;\n\t\t\tvar vertices = shapePath[prop];\n\t\t\tvar points = shapePath.v;\n\t\t\tvar arr = createSizedArray(len);\n\t\t\tfor (i = 0; i < len; i += 1) {\n\t\t\t\tif (prop === 'i' || prop === 'o') {\n\t\t\t\t\tarr[i] = [vertices[i][0] - points[i][0], vertices[i][1] - points[i][1]];\n\t\t\t\t} else {\n\t\t\t\t\tarr[i] = [vertices[i][0], vertices[i][1]];\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn arr;\n\t\t},\n\t\tpoints: function (time) {\n\t\t\treturn this.vertices('v', time);\n\t\t},\n\t\tinTangents: function (time) {\n\t\t\treturn this.vertices('i', time);\n\t\t},\n\t\toutTangents: function (time) {\n\t\t\treturn this.vertices('o', time);\n\t\t},\n\t\tisClosed: function () {\n\t\t\treturn this.v.c;\n\t\t},\n\t\tpointOnPath: function (perc, time) {\n\t\t\tvar shapePath = this.v;\n\t\t\tif (time !== undefined) {\n\t\t\t\tshapePath = this.getValueAtTime(time, 0);\n\t\t\t}\n\t\t\tif (!this._segmentsLength) {\n\t\t\t\tthis._segmentsLength = bez.getSegmentsLength(shapePath);\n\t\t\t}\n\n\t\t\tvar segmentsLength = this._segmentsLength;\n\t\t\tvar lengths = segmentsLength.lengths;\n\t\t\tvar lengthPos = segmentsLength.totalLength * perc;\n\t\t\tvar i = 0;\n\t\t\tvar len = lengths.length;\n\t\t\tvar accumulatedLength = 0;\n\t\t\tvar pt;\n\t\t\twhile (i < len) {\n\t\t\t\tif (accumulatedLength + lengths[i].addedLength > lengthPos) {\n\t\t\t\t\tvar initIndex = i;\n\t\t\t\t\tvar endIndex = (shapePath.c && i === len - 1) ? 0 : i + 1;\n\t\t\t\t\tvar segmentPerc = (lengthPos - accumulatedLength) / lengths[i].addedLength;\n\t\t\t\t\tpt = bez.getPointInSegment(shapePath.v[initIndex], shapePath.v[endIndex], shapePath.o[initIndex], shapePath.i[endIndex], segmentPerc, lengths[i]);\n\t\t\t\t\tbreak;\n\t\t\t\t} else {\n\t\t\t\t\taccumulatedLength += lengths[i].addedLength;\n\t\t\t\t}\n\t\t\t\ti += 1;\n\t\t\t}\n\t\t\tif (!pt) {\n\t\t\t\tpt = shapePath.c ? [shapePath.v[0][0], shapePath.v[0][1]] : [shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1]];\n\t\t\t}\n\t\t\treturn pt;\n\t\t},\n\t\tvectorOnPath: function (perc, time, vectorType) {\n\t\t\t// perc doesn't use triple equality because it can be a Number object as well as a primitive.\n\t\t\tif (perc == 1) { // eslint-disable-line eqeqeq\n\t\t\t\tperc = this.v.c;\n\t\t\t} else if (perc == 0) { // eslint-disable-line eqeqeq\n\t\t\t\tperc = 0.999;\n\t\t\t}\n\t\t\tvar pt1 = this.pointOnPath(perc, time);\n\t\t\tvar pt2 = this.pointOnPath(perc + 0.001, time);\n\t\t\tvar xLength = pt2[0] - pt1[0];\n\t\t\tvar yLength = pt2[1] - pt1[1];\n\t\t\tvar magnitude = Math.sqrt(Math.pow(xLength, 2) + Math.pow(yLength, 2));\n\t\t\tif (magnitude === 0) {\n\t\t\t\treturn [0, 0];\n\t\t\t}\n\t\t\tvar unitVector = vectorType === 'tangent' ? [xLength / magnitude, yLength / magnitude] : [-yLength / magnitude, xLength / magnitude];\n\t\t\treturn unitVector;\n\t\t},\n\t\ttangentOnPath: function (perc, time) {\n\t\t\treturn this.vectorOnPath(perc, time, 'tangent');\n\t\t},\n\t\tnormalOnPath: function (perc, time) {\n\t\t\treturn this.vectorOnPath(perc, time, 'normal');\n\t\t},\n\t\tsetGroupProperty: expressionHelpers.setGroupProperty,\n\t\tgetValueAtTime: expressionHelpers.getStaticValueAtTime,\n\t};\n\textendPrototype([ShapeExpressions], ShapePropertyConstructorFunction);\n\textendPrototype([ShapeExpressions], KeyframedShapePropertyConstructorFunction);\n\tKeyframedShapePropertyConstructorFunction.prototype.getValueAtTime = getShapeValueAtTime;\n\tKeyframedShapePropertyConstructorFunction.prototype.initiateExpression = ExpressionManager.initiateExpression;\n\n\tvar propertyGetShapeProp = ShapePropertyFactory.getShapeProp;\n\tShapePropertyFactory.getShapeProp = function (elem, data, type, arr, trims) {\n\t\tvar prop = propertyGetShapeProp(elem, data, type, arr, trims);\n\t\tprop.propertyIndex = data.ix;\n\t\tprop.lock = false;\n\t\tif (type === 3) {\n\t\t\texpressionHelpers.searchExpressions(elem, data.pt, prop);\n\t\t} else if (type === 4) {\n\t\t\texpressionHelpers.searchExpressions(elem, data.ks, prop);\n\t\t}\n\t\tif (prop.k) {\n\t\t\telem.addDynamicProperty(prop);\n\t\t}\n\t\treturn prop;\n\t};\n}\n\nfunction initialize$1() {\n\taddPropertyDecorator();\n}\n\nfunction addDecorator() {\n\tfunction searchExpressions() {\n\t\tif (this.data.d.x) {\n\t\t\tthis.calculateExpression = ExpressionManager.initiateExpression.bind(this)(this.elem, this.data.d, this);\n\t\t\tthis.addEffect(this.getExpressionValue.bind(this));\n\t\t\treturn true;\n\t\t}\n\t\treturn null;\n\t}\n\n\tTextProperty.prototype.getExpressionValue = function (currentValue, text) {\n\t\tvar newValue = this.calculateExpression(text);\n\t\tif (currentValue.t !== newValue) {\n\t\t\tvar newData = {};\n\t\t\tthis.copyData(newData, currentValue);\n\t\t\tnewData.t = newValue.toString();\n\t\t\tnewData.__complete = false;\n\t\t\treturn newData;\n\t\t}\n\t\treturn currentValue;\n\t};\n\n\tTextProperty.prototype.searchProperty = function () {\n\t\tvar isKeyframed = this.searchKeyframes();\n\t\tvar hasExpressions = this.searchExpressions();\n\t\tthis.kf = isKeyframed || hasExpressions;\n\t\treturn this.kf;\n\t};\n\n\tTextProperty.prototype.searchExpressions = searchExpressions;\n}\n\nfunction initialize() {\n\taddDecorator();\n}\n\nfunction SVGComposableEffect() {\n\n}\nSVGComposableEffect.prototype = {\n\tcreateMergeNode: (resultId, ins) => {\n\t\tvar feMerge = createNS('feMerge');\n\t\tfeMerge.setAttribute('result', resultId);\n\t\tvar feMergeNode;\n\t\tvar i;\n\t\tfor (i = 0; i < ins.length; i += 1) {\n\t\t\tfeMergeNode = createNS('feMergeNode');\n\t\t\tfeMergeNode.setAttribute('in', ins[i]);\n\t\t\tfeMerge.appendChild(feMergeNode);\n\t\t\tfeMerge.appendChild(feMergeNode);\n\t\t}\n\t\treturn feMerge;\n\t},\n};\n\nfunction SVGTintFilter(filter, filterManager, elem, id, source) {\n\tthis.filterManager = filterManager;\n\tvar feColorMatrix = createNS('feColorMatrix');\n\tfeColorMatrix.setAttribute('type', 'matrix');\n\tfeColorMatrix.setAttribute('color-interpolation-filters', 'linearRGB');\n\tfeColorMatrix.setAttribute('values', '0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0');\n\tfeColorMatrix.setAttribute('result', id + '_tint_1');\n\tfilter.appendChild(feColorMatrix);\n\tfeColorMatrix = createNS('feColorMatrix');\n\tfeColorMatrix.setAttribute('type', 'matrix');\n\tfeColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n\tfeColorMatrix.setAttribute('values', '1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0');\n\tfeColorMatrix.setAttribute('result', id + '_tint_2');\n\tfilter.appendChild(feColorMatrix);\n\tthis.matrixFilter = feColorMatrix;\n\tvar feMerge = this.createMergeNode(\n\t\tid,\n\t\t[\n\t\t\tsource,\n\t\t\tid + '_tint_1',\n\t\t\tid + '_tint_2',\n\t\t]\n\t);\n\tfilter.appendChild(feMerge);\n}\nextendPrototype([SVGComposableEffect], SVGTintFilter);\n\nSVGTintFilter.prototype.renderFrame = function (forceRender) {\n\tif (forceRender || this.filterManager._mdf) {\n\t\tvar colorBlack = this.filterManager.effectElements[0].p.v;\n\t\tvar colorWhite = this.filterManager.effectElements[1].p.v;\n\t\tvar opacity = this.filterManager.effectElements[2].p.v / 100;\n\t\tthis.matrixFilter.setAttribute('values', (colorWhite[0] - colorBlack[0]) + ' 0 0 0 ' + colorBlack[0] + ' ' + (colorWhite[1] - colorBlack[1]) + ' 0 0 0 ' + colorBlack[1] + ' ' + (colorWhite[2] - colorBlack[2]) + ' 0 0 0 ' + colorBlack[2] + ' 0 0 0 ' + opacity + ' 0');\n\t}\n};\n\nfunction SVGFillFilter(filter, filterManager, elem, id) {\n\tthis.filterManager = filterManager;\n\tvar feColorMatrix = createNS('feColorMatrix');\n\tfeColorMatrix.setAttribute('type', 'matrix');\n\tfeColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n\tfeColorMatrix.setAttribute('values', '1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0');\n\tfeColorMatrix.setAttribute('result', id);\n\tfilter.appendChild(feColorMatrix);\n\tthis.matrixFilter = feColorMatrix;\n}\n\nSVGFillFilter.prototype.renderFrame = function (forceRender) {\n\tif (forceRender || this.filterManager._mdf) {\n\t\tvar color = this.filterManager.effectElements[2].p.v;\n\t\tvar opacity = this.filterManager.effectElements[6].p.v;\n\t\tthis.matrixFilter.setAttribute('values', '0 0 0 0 ' + color[0] + ' 0 0 0 0 ' + color[1] + ' 0 0 0 0 ' + color[2] + ' 0 0 0 ' + opacity + ' 0');\n\t}\n};\n\nfunction SVGStrokeEffect(fil, filterManager, elem) {\n\tthis.initialized = false;\n\tthis.filterManager = filterManager;\n\tthis.elem = elem;\n\tthis.paths = [];\n}\n\nSVGStrokeEffect.prototype.initialize = function () {\n\tvar elemChildren = this.elem.layerElement.children || this.elem.layerElement.childNodes;\n\tvar path;\n\tvar groupPath;\n\tvar i;\n\tvar len;\n\tif (this.filterManager.effectElements[1].p.v === 1) {\n\t\tlen = this.elem.maskManager.masksProperties.length;\n\t\ti = 0;\n\t} else {\n\t\ti = this.filterManager.effectElements[0].p.v - 1;\n\t\tlen = i + 1;\n\t}\n\tgroupPath = createNS('g');\n\tgroupPath.setAttribute('fill', 'none');\n\tgroupPath.setAttribute('stroke-linecap', 'round');\n\tgroupPath.setAttribute('stroke-dashoffset', 1);\n\tfor (i; i < len; i += 1) {\n\t\tpath = createNS('path');\n\t\tgroupPath.appendChild(path);\n\t\tthis.paths.push({ p: path, m: i });\n\t}\n\tif (this.filterManager.effectElements[10].p.v === 3) {\n\t\tvar mask = createNS('mask');\n\t\tvar id = createElementID();\n\t\tmask.setAttribute('id', id);\n\t\tmask.setAttribute('mask-type', 'alpha');\n\t\tmask.appendChild(groupPath);\n\t\tthis.elem.globalData.defs.appendChild(mask);\n\t\tvar g = createNS('g');\n\t\tg.setAttribute('mask', 'url(' + getLocationHref() + '#' + id + ')');\n\t\twhile (elemChildren[0]) {\n\t\t\tg.appendChild(elemChildren[0]);\n\t\t}\n\t\tthis.elem.layerElement.appendChild(g);\n\t\tthis.masker = mask;\n\t\tgroupPath.setAttribute('stroke', '#fff');\n\t} else if (this.filterManager.effectElements[10].p.v === 1 || this.filterManager.effectElements[10].p.v === 2) {\n\t\tif (this.filterManager.effectElements[10].p.v === 2) {\n\t\t\telemChildren = this.elem.layerElement.children || this.elem.layerElement.childNodes;\n\t\t\twhile (elemChildren.length) {\n\t\t\t\tthis.elem.layerElement.removeChild(elemChildren[0]);\n\t\t\t}\n\t\t}\n\t\tthis.elem.layerElement.appendChild(groupPath);\n\t\tthis.elem.layerElement.removeAttribute('mask');\n\t\tgroupPath.setAttribute('stroke', '#fff');\n\t}\n\tthis.initialized = true;\n\tthis.pathMasker = groupPath;\n};\n\nSVGStrokeEffect.prototype.renderFrame = function (forceRender) {\n\tif (!this.initialized) {\n\t\tthis.initialize();\n\t}\n\tvar i;\n\tvar len = this.paths.length;\n\tvar mask;\n\tvar path;\n\tfor (i = 0; i < len; i += 1) {\n\t\tif (this.paths[i].m !== -1) {\n\t\t\tmask = this.elem.maskManager.viewData[this.paths[i].m];\n\t\t\tpath = this.paths[i].p;\n\t\t\tif (forceRender || this.filterManager._mdf || mask.prop._mdf) {\n\t\t\t\tpath.setAttribute('d', mask.lastPath);\n\t\t\t}\n\t\t\tif (forceRender || this.filterManager.effectElements[9].p._mdf || this.filterManager.effectElements[4].p._mdf || this.filterManager.effectElements[7].p._mdf || this.filterManager.effectElements[8].p._mdf || mask.prop._mdf) {\n\t\t\t\tvar dasharrayValue;\n\t\t\t\tif (this.filterManager.effectElements[7].p.v !== 0 || this.filterManager.effectElements[8].p.v !== 100) {\n\t\t\t\t\tvar s = Math.min(this.filterManager.effectElements[7].p.v, this.filterManager.effectElements[8].p.v) * 0.01;\n\t\t\t\t\tvar e = Math.max(this.filterManager.effectElements[7].p.v, this.filterManager.effectElements[8].p.v) * 0.01;\n\t\t\t\t\tvar l = path.getTotalLength();\n\t\t\t\t\tdasharrayValue = '0 0 0 ' + l * s + ' ';\n\t\t\t\t\tvar lineLength = l * (e - s);\n\t\t\t\t\tvar segment = 1 + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01;\n\t\t\t\t\tvar units = Math.floor(lineLength / segment);\n\t\t\t\t\tvar j;\n\t\t\t\t\tfor (j = 0; j < units; j += 1) {\n\t\t\t\t\t\tdasharrayValue += '1 ' + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01 + ' ';\n\t\t\t\t\t}\n\t\t\t\t\tdasharrayValue += '0 ' + l * 10 + ' 0 0';\n\t\t\t\t} else {\n\t\t\t\t\tdasharrayValue = '1 ' + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01;\n\t\t\t\t}\n\t\t\t\tpath.setAttribute('stroke-dasharray', dasharrayValue);\n\t\t\t}\n\t\t}\n\t}\n\tif (forceRender || this.filterManager.effectElements[4].p._mdf) {\n\t\tthis.pathMasker.setAttribute('stroke-width', this.filterManager.effectElements[4].p.v * 2);\n\t}\n\n\tif (forceRender || this.filterManager.effectElements[6].p._mdf) {\n\t\tthis.pathMasker.setAttribute('opacity', this.filterManager.effectElements[6].p.v);\n\t}\n\tif (this.filterManager.effectElements[10].p.v === 1 || this.filterManager.effectElements[10].p.v === 2) {\n\t\tif (forceRender || this.filterManager.effectElements[3].p._mdf) {\n\t\t\tvar color = this.filterManager.effectElements[3].p.v;\n\t\t\tthis.pathMasker.setAttribute('stroke', 'rgb(' + bmFloor(color[0] * 255) + ',' + bmFloor(color[1] * 255) + ',' + bmFloor(color[2] * 255) + ')');\n\t\t}\n\t}\n};\n\nfunction SVGTritoneFilter(filter, filterManager, elem, id) {\n\tthis.filterManager = filterManager;\n\tvar feColorMatrix = createNS('feColorMatrix');\n\tfeColorMatrix.setAttribute('type', 'matrix');\n\tfeColorMatrix.setAttribute('color-interpolation-filters', 'linearRGB');\n\tfeColorMatrix.setAttribute('values', '0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0');\n\tfilter.appendChild(feColorMatrix);\n\tvar feComponentTransfer = createNS('feComponentTransfer');\n\tfeComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n\tfeComponentTransfer.setAttribute('result', id);\n\tthis.matrixFilter = feComponentTransfer;\n\tvar feFuncR = createNS('feFuncR');\n\tfeFuncR.setAttribute('type', 'table');\n\tfeComponentTransfer.appendChild(feFuncR);\n\tthis.feFuncR = feFuncR;\n\tvar feFuncG = createNS('feFuncG');\n\tfeFuncG.setAttribute('type', 'table');\n\tfeComponentTransfer.appendChild(feFuncG);\n\tthis.feFuncG = feFuncG;\n\tvar feFuncB = createNS('feFuncB');\n\tfeFuncB.setAttribute('type', 'table');\n\tfeComponentTransfer.appendChild(feFuncB);\n\tthis.feFuncB = feFuncB;\n\tfilter.appendChild(feComponentTransfer);\n}\n\nSVGTritoneFilter.prototype.renderFrame = function (forceRender) {\n\tif (forceRender || this.filterManager._mdf) {\n\t\tvar color1 = this.filterManager.effectElements[0].p.v;\n\t\tvar color2 = this.filterManager.effectElements[1].p.v;\n\t\tvar color3 = this.filterManager.effectElements[2].p.v;\n\t\tvar tableR = color3[0] + ' ' + color2[0] + ' ' + color1[0];\n\t\tvar tableG = color3[1] + ' ' + color2[1] + ' ' + color1[1];\n\t\tvar tableB = color3[2] + ' ' + color2[2] + ' ' + color1[2];\n\t\tthis.feFuncR.setAttribute('tableValues', tableR);\n\t\tthis.feFuncG.setAttribute('tableValues', tableG);\n\t\tthis.feFuncB.setAttribute('tableValues', tableB);\n\t}\n};\n\nfunction SVGProLevelsFilter(filter, filterManager, elem, id) {\n\tthis.filterManager = filterManager;\n\tvar effectElements = this.filterManager.effectElements;\n\tvar feComponentTransfer = createNS('feComponentTransfer');\n\n\t// Red\n\tif (effectElements[10].p.k || effectElements[10].p.v !== 0 || effectElements[11].p.k || effectElements[11].p.v !== 1 || effectElements[12].p.k || effectElements[12].p.v !== 1 || effectElements[13].p.k || effectElements[13].p.v !== 0 || effectElements[14].p.k || effectElements[14].p.v !== 1) {\n\t\tthis.feFuncR = this.createFeFunc('feFuncR', feComponentTransfer);\n\t}\n\t// Green\n\tif (effectElements[17].p.k || effectElements[17].p.v !== 0 || effectElements[18].p.k || effectElements[18].p.v !== 1 || effectElements[19].p.k || effectElements[19].p.v !== 1 || effectElements[20].p.k || effectElements[20].p.v !== 0 || effectElements[21].p.k || effectElements[21].p.v !== 1) {\n\t\tthis.feFuncG = this.createFeFunc('feFuncG', feComponentTransfer);\n\t}\n\t// Blue\n\tif (effectElements[24].p.k || effectElements[24].p.v !== 0 || effectElements[25].p.k || effectElements[25].p.v !== 1 || effectElements[26].p.k || effectElements[26].p.v !== 1 || effectElements[27].p.k || effectElements[27].p.v !== 0 || effectElements[28].p.k || effectElements[28].p.v !== 1) {\n\t\tthis.feFuncB = this.createFeFunc('feFuncB', feComponentTransfer);\n\t}\n\t// Alpha\n\tif (effectElements[31].p.k || effectElements[31].p.v !== 0 || effectElements[32].p.k || effectElements[32].p.v !== 1 || effectElements[33].p.k || effectElements[33].p.v !== 1 || effectElements[34].p.k || effectElements[34].p.v !== 0 || effectElements[35].p.k || effectElements[35].p.v !== 1) {\n\t\tthis.feFuncA = this.createFeFunc('feFuncA', feComponentTransfer);\n\t}\n\t// RGB\n\tif (this.feFuncR || this.feFuncG || this.feFuncB || this.feFuncA) {\n\t\tfeComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n\t\tfilter.appendChild(feComponentTransfer);\n\t}\n\n\tif (effectElements[3].p.k || effectElements[3].p.v !== 0 || effectElements[4].p.k || effectElements[4].p.v !== 1 || effectElements[5].p.k || effectElements[5].p.v !== 1 || effectElements[6].p.k || effectElements[6].p.v !== 0 || effectElements[7].p.k || effectElements[7].p.v !== 1) {\n\t\tfeComponentTransfer = createNS('feComponentTransfer');\n\t\tfeComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n\t\tfeComponentTransfer.setAttribute('result', id);\n\t\tfilter.appendChild(feComponentTransfer);\n\t\tthis.feFuncRComposed = this.createFeFunc('feFuncR', feComponentTransfer);\n\t\tthis.feFuncGComposed = this.createFeFunc('feFuncG', feComponentTransfer);\n\t\tthis.feFuncBComposed = this.createFeFunc('feFuncB', feComponentTransfer);\n\t}\n}\n\nSVGProLevelsFilter.prototype.createFeFunc = function (type, feComponentTransfer) {\n\tvar feFunc = createNS(type);\n\tfeFunc.setAttribute('type', 'table');\n\tfeComponentTransfer.appendChild(feFunc);\n\treturn feFunc;\n};\n\nSVGProLevelsFilter.prototype.getTableValue = function (inputBlack, inputWhite, gamma, outputBlack, outputWhite) {\n\tvar cnt = 0;\n\tvar segments = 256;\n\tvar perc;\n\tvar min = Math.min(inputBlack, inputWhite);\n\tvar max = Math.max(inputBlack, inputWhite);\n\tvar table = Array.call(null, { length: segments });\n\tvar colorValue;\n\tvar pos = 0;\n\tvar outputDelta = outputWhite - outputBlack;\n\tvar inputDelta = inputWhite - inputBlack;\n\twhile (cnt <= 256) {\n\t\tperc = cnt / 256;\n\t\tif (perc <= min) {\n\t\t\tcolorValue = inputDelta < 0 ? outputWhite : outputBlack;\n\t\t} else if (perc >= max) {\n\t\t\tcolorValue = inputDelta < 0 ? outputBlack : outputWhite;\n\t\t} else {\n\t\t\tcolorValue = (outputBlack + outputDelta * Math.pow((perc - inputBlack) / inputDelta, 1 / gamma));\n\t\t}\n\t\ttable[pos] = colorValue;\n\t\tpos += 1;\n\t\tcnt += 256 / (segments - 1);\n\t}\n\treturn table.join(' ');\n};\n\nSVGProLevelsFilter.prototype.renderFrame = function (forceRender) {\n\tif (forceRender || this.filterManager._mdf) {\n\t\tvar val;\n\t\tvar effectElements = this.filterManager.effectElements;\n\t\tif (this.feFuncRComposed && (forceRender || effectElements[3].p._mdf || effectElements[4].p._mdf || effectElements[5].p._mdf || effectElements[6].p._mdf || effectElements[7].p._mdf)) {\n\t\t\tval = this.getTableValue(effectElements[3].p.v, effectElements[4].p.v, effectElements[5].p.v, effectElements[6].p.v, effectElements[7].p.v);\n\t\t\tthis.feFuncRComposed.setAttribute('tableValues', val);\n\t\t\tthis.feFuncGComposed.setAttribute('tableValues', val);\n\t\t\tthis.feFuncBComposed.setAttribute('tableValues', val);\n\t\t}\n\n\t\tif (this.feFuncR && (forceRender || effectElements[10].p._mdf || effectElements[11].p._mdf || effectElements[12].p._mdf || effectElements[13].p._mdf || effectElements[14].p._mdf)) {\n\t\t\tval = this.getTableValue(effectElements[10].p.v, effectElements[11].p.v, effectElements[12].p.v, effectElements[13].p.v, effectElements[14].p.v);\n\t\t\tthis.feFuncR.setAttribute('tableValues', val);\n\t\t}\n\n\t\tif (this.feFuncG && (forceRender || effectElements[17].p._mdf || effectElements[18].p._mdf || effectElements[19].p._mdf || effectElements[20].p._mdf || effectElements[21].p._mdf)) {\n\t\t\tval = this.getTableValue(effectElements[17].p.v, effectElements[18].p.v, effectElements[19].p.v, effectElements[20].p.v, effectElements[21].p.v);\n\t\t\tthis.feFuncG.setAttribute('tableValues', val);\n\t\t}\n\n\t\tif (this.feFuncB && (forceRender || effectElements[24].p._mdf || effectElements[25].p._mdf || effectElements[26].p._mdf || effectElements[27].p._mdf || effectElements[28].p._mdf)) {\n\t\t\tval = this.getTableValue(effectElements[24].p.v, effectElements[25].p.v, effectElements[26].p.v, effectElements[27].p.v, effectElements[28].p.v);\n\t\t\tthis.feFuncB.setAttribute('tableValues', val);\n\t\t}\n\n\t\tif (this.feFuncA && (forceRender || effectElements[31].p._mdf || effectElements[32].p._mdf || effectElements[33].p._mdf || effectElements[34].p._mdf || effectElements[35].p._mdf)) {\n\t\t\tval = this.getTableValue(effectElements[31].p.v, effectElements[32].p.v, effectElements[33].p.v, effectElements[34].p.v, effectElements[35].p.v);\n\t\t\tthis.feFuncA.setAttribute('tableValues', val);\n\t\t}\n\t}\n};\n\nfunction SVGDropShadowEffect(filter, filterManager, elem, id, source) {\n\tvar globalFilterSize = filterManager.container.globalData.renderConfig.filterSize;\n\tvar filterSize = filterManager.data.fs || globalFilterSize;\n\tfilter.setAttribute('x', filterSize.x || globalFilterSize.x);\n\tfilter.setAttribute('y', filterSize.y || globalFilterSize.y);\n\tfilter.setAttribute('width', filterSize.width || globalFilterSize.width);\n\tfilter.setAttribute('height', filterSize.height || globalFilterSize.height);\n\tthis.filterManager = filterManager;\n\n\tvar feGaussianBlur = createNS('feGaussianBlur');\n\tfeGaussianBlur.setAttribute('in', 'SourceAlpha');\n\tfeGaussianBlur.setAttribute('result', id + '_drop_shadow_1');\n\tfeGaussianBlur.setAttribute('stdDeviation', '0');\n\tthis.feGaussianBlur = feGaussianBlur;\n\tfilter.appendChild(feGaussianBlur);\n\n\tvar feOffset = createNS('feOffset');\n\tfeOffset.setAttribute('dx', '25');\n\tfeOffset.setAttribute('dy', '0');\n\tfeOffset.setAttribute('in', id + '_drop_shadow_1');\n\tfeOffset.setAttribute('result', id + '_drop_shadow_2');\n\tthis.feOffset = feOffset;\n\tfilter.appendChild(feOffset);\n\tvar feFlood = createNS('feFlood');\n\tfeFlood.setAttribute('flood-color', '#00ff00');\n\tfeFlood.setAttribute('flood-opacity', '1');\n\tfeFlood.setAttribute('result', id + '_drop_shadow_3');\n\tthis.feFlood = feFlood;\n\tfilter.appendChild(feFlood);\n\n\tvar feComposite = createNS('feComposite');\n\tfeComposite.setAttribute('in', id + '_drop_shadow_3');\n\tfeComposite.setAttribute('in2', id + '_drop_shadow_2');\n\tfeComposite.setAttribute('operator', 'in');\n\tfeComposite.setAttribute('result', id + '_drop_shadow_4');\n\tfilter.appendChild(feComposite);\n\n\tvar feMerge = this.createMergeNode(\n\t\tid,\n\t\t[\n\t\t\tid + '_drop_shadow_4',\n\t\t\tsource,\n\t\t]\n\t);\n\tfilter.appendChild(feMerge);\n\t//\n}\nextendPrototype([SVGComposableEffect], SVGDropShadowEffect);\n\nSVGDropShadowEffect.prototype.renderFrame = function (forceRender) {\n\tif (forceRender || this.filterManager._mdf) {\n\t\tif (forceRender || this.filterManager.effectElements[4].p._mdf) {\n\t\t\tthis.feGaussianBlur.setAttribute('stdDeviation', this.filterManager.effectElements[4].p.v / 4);\n\t\t}\n\t\tif (forceRender || this.filterManager.effectElements[0].p._mdf) {\n\t\t\tvar col = this.filterManager.effectElements[0].p.v;\n\t\t\tthis.feFlood.setAttribute('flood-color', rgbToHex(Math.round(col[0] * 255), Math.round(col[1] * 255), Math.round(col[2] * 255)));\n\t\t}\n\t\tif (forceRender || this.filterManager.effectElements[1].p._mdf) {\n\t\t\tthis.feFlood.setAttribute('flood-opacity', this.filterManager.effectElements[1].p.v / 255);\n\t\t}\n\t\tif (forceRender || this.filterManager.effectElements[2].p._mdf || this.filterManager.effectElements[3].p._mdf) {\n\t\t\tvar distance = this.filterManager.effectElements[3].p.v;\n\t\t\tvar angle = (this.filterManager.effectElements[2].p.v - 90) * degToRads;\n\t\t\tvar x = distance * Math.cos(angle);\n\t\t\tvar y = distance * Math.sin(angle);\n\t\t\tthis.feOffset.setAttribute('dx', x);\n\t\t\tthis.feOffset.setAttribute('dy', y);\n\t\t}\n\t}\n};\n\nvar _svgMatteSymbols = [];\n\nfunction SVGMatte3Effect(filterElem, filterManager, elem) {\n\tthis.initialized = false;\n\tthis.filterManager = filterManager;\n\tthis.filterElem = filterElem;\n\tthis.elem = elem;\n\telem.matteElement = createNS('g');\n\telem.matteElement.appendChild(elem.layerElement);\n\telem.matteElement.appendChild(elem.transformedElement);\n\telem.baseElement = elem.matteElement;\n}\n\nSVGMatte3Effect.prototype.findSymbol = function (mask) {\n\tvar i = 0;\n\tvar len = _svgMatteSymbols.length;\n\twhile (i < len) {\n\t\tif (_svgMatteSymbols[i] === mask) {\n\t\t\treturn _svgMatteSymbols[i];\n\t\t}\n\t\ti += 1;\n\t}\n\treturn null;\n};\n\nSVGMatte3Effect.prototype.replaceInParent = function (mask, symbolId) {\n\tvar parentNode = mask.layerElement.parentNode;\n\tif (!parentNode) {\n\t\treturn;\n\t}\n\tvar children = parentNode.children;\n\tvar i = 0;\n\tvar len = children.length;\n\twhile (i < len) {\n\t\tif (children[i] === mask.layerElement) {\n\t\t\tbreak;\n\t\t}\n\t\ti += 1;\n\t}\n\tvar nextChild;\n\tif (i <= len - 2) {\n\t\tnextChild = children[i + 1];\n\t}\n\tvar useElem = createNS('use');\n\tuseElem.setAttribute('href', '#' + symbolId);\n\tif (nextChild) {\n\t\tparentNode.insertBefore(useElem, nextChild);\n\t} else {\n\t\tparentNode.appendChild(useElem);\n\t}\n};\n\nSVGMatte3Effect.prototype.setElementAsMask = function (elem, mask) {\n\tif (!this.findSymbol(mask)) {\n\t\tvar symbolId = createElementID();\n\t\tvar masker = createNS('mask');\n\t\tmasker.setAttribute('id', mask.layerId);\n\t\tmasker.setAttribute('mask-type', 'alpha');\n\t\t_svgMatteSymbols.push(mask);\n\t\tvar defs = elem.globalData.defs;\n\t\tdefs.appendChild(masker);\n\t\tvar symbol = createNS('symbol');\n\t\tsymbol.setAttribute('id', symbolId);\n\t\tthis.replaceInParent(mask, symbolId);\n\t\tsymbol.appendChild(mask.layerElement);\n\t\tdefs.appendChild(symbol);\n\t\tvar useElem = createNS('use');\n\t\tuseElem.setAttribute('href', '#' + symbolId);\n\t\tmasker.appendChild(useElem);\n\t\tmask.data.hd = false;\n\t\tmask.show();\n\t}\n\telem.setMatte(mask.layerId);\n};\n\nSVGMatte3Effect.prototype.initialize = function () {\n\tvar ind = this.filterManager.effectElements[0].p.v;\n\tvar elements = this.elem.comp.elements;\n\tvar i = 0;\n\tvar len = elements.length;\n\twhile (i < len) {\n\t\tif (elements[i] && elements[i].data.ind === ind) {\n\t\t\tthis.setElementAsMask(this.elem, elements[i]);\n\t\t}\n\t\ti += 1;\n\t}\n\tthis.initialized = true;\n};\n\nSVGMatte3Effect.prototype.renderFrame = function () {\n\tif (!this.initialized) {\n\t\tthis.initialize();\n\t}\n};\n\nfunction SVGGaussianBlurEffect(filter, filterManager, elem, id) {\n\t// Outset the filter region by 100% on all sides to accommodate blur expansion.\n\tfilter.setAttribute('x', '-100%');\n\tfilter.setAttribute('y', '-100%');\n\tfilter.setAttribute('width', '300%');\n\tfilter.setAttribute('height', '300%');\n\n\tthis.filterManager = filterManager;\n\tvar feGaussianBlur = createNS('feGaussianBlur');\n\tfeGaussianBlur.setAttribute('result', id);\n\tfilter.appendChild(feGaussianBlur);\n\tthis.feGaussianBlur = feGaussianBlur;\n}\n\nSVGGaussianBlurEffect.prototype.renderFrame = function (forceRender) {\n\tif (forceRender || this.filterManager._mdf) {\n\t\t// Empirical value, matching AE's blur appearance.\n\t\tvar kBlurrinessToSigma = 0.3;\n\t\tvar sigma = this.filterManager.effectElements[0].p.v * kBlurrinessToSigma;\n\n\t\t// Dimensions mapping:\n\t\t//\n\t\t//   1 -> horizontal & vertical\n\t\t//   2 -> horizontal only\n\t\t//   3 -> vertical only\n\t\t//\n\t\tvar dimensions = this.filterManager.effectElements[1].p.v;\n\t\tvar sigmaX = (dimensions == 3) ? 0 : sigma; // eslint-disable-line eqeqeq\n\t\tvar sigmaY = (dimensions == 2) ? 0 : sigma; // eslint-disable-line eqeqeq\n\n\t\tthis.feGaussianBlur.setAttribute('stdDeviation', sigmaX + ' ' + sigmaY);\n\n\t\t// Repeat edges mapping:\n\t\t//\n\t\t//   0 -> off -> duplicate\n\t\t//   1 -> on  -> wrap\n\t\tvar edgeMode = (this.filterManager.effectElements[2].p.v == 1) ? 'wrap' : 'duplicate'; // eslint-disable-line eqeqeq\n\t\tthis.feGaussianBlur.setAttribute('edgeMode', edgeMode);\n\t}\n};\n\n// Registering renderers\nregisterRenderer('canvas', CanvasRenderer);\nregisterRenderer('html', HybridRenderer);\nregisterRenderer('svg', SVGRenderer);\n\n// Registering shape modifiers\nShapeModifiers.registerModifier('tm', TrimModifier);\nShapeModifiers.registerModifier('pb', PuckerAndBloatModifier);\nShapeModifiers.registerModifier('rp', RepeaterModifier);\nShapeModifiers.registerModifier('rd', RoundCornersModifier);\n\n// Registering expression plugin\nsetExpressionsPlugin(Expressions);\ninitialize$1();\ninitialize();\n\n// Registering svg effects\nregisterEffect(20, SVGTintFilter, true);\nregisterEffect(21, SVGFillFilter, true);\nregisterEffect(22, SVGStrokeEffect, false);\nregisterEffect(23, SVGTritoneFilter, true);\nregisterEffect(24, SVGProLevelsFilter, true);\nregisterEffect(25, SVGDropShadowEffect, true);\nregisterEffect(28, SVGMatte3Effect, false);\nregisterEffect(29, SVGGaussianBlurEffect, true);\n\nexport { lottie as Lottie };"],"names":["svgNS","locationHref","_useWebWorker","initialDefaultFrame","setWebWorker","flag","getWebWorker","setLocationHref","value","getLocationHref","createTag","type","document","createElement","extendPrototype","sources","destination","i","len","length","sourcePrototype","prototype","attr","Object","hasOwnProperty","call","getDescriptor","object","prop","getOwnPropertyDescriptor","createProxyFunction","ProxyFunction","audioControllerFactory","AudioController","audioFactory","audios","_volume","_isMuted","addAudio","audio","push","pause","resume","setRate","rateValue","createAudio","assetPath","window","Howl","src","isPlaying","play","seek","playing","rate","setVolume","setAudioFactory","_updateVolume","mute","unmute","getVolume","volume","createTypedArray","createRegularArray","arr","createTypedArrayFactory","Float32Array","Int16Array","Uint8ClampedArray","createSizedArray","Array","apply","subframeEnabled","expressionsPlugin","idPrefix$1","isSafari","test","navigator","userAgent","bmPow","Math","pow","bmSqrt","sqrt","bmFloor","floor","bmMax","max","bmMin","min","BMMath","propertyNames","random","abs","val","tOfVal","absArr","defaultCurveSegments","degToRads","PI","roundCorner","styleDiv","element","style","position","top","left","display","transformOrigin","webkitTransformOrigin","backfaceVisibility","webkitBackfaceVisibility","transformStyle","webkitTransformStyle","mozTransformStyle","BMEnterFrameEvent","currentTime","totalTime","frameMultiplier","direction","BMCompleteEvent","BMCompleteLoopEvent","totalLoops","currentLoop","BMSegmentStartEvent","firstFrame","totalFrames","BMDestroyEvent","target","BMRenderFrameErrorEvent","nativeError","BMConfigErrorEvent","createElementID","_count","createID","HSVtoRGB","h","s","v","r","g","b","f","p","q","t","RGBtoHSV","d","addSaturationToRGB","color","offset","hsv","addBrightnessToRGB","addHueToRGB","rgbToHex","colorMap","hex","toString","setSubframeEnabled","getSubframeEnabled","setExpressionsPlugin","getExpressionsPlugin","setDefaultCurveSegments","getDefaultCurveSegments","setIdPrefix","createNS","createElementNS","dataManager","_counterId","processes","workerFn","workerInstance","workerProxy","onmessage","postMessage","path","data","_workerSelf","createWorker","fn","Worker","Blob","blob","url","URL","createObjectURL","setupWorker","workerStart","e","dataFunctionManager","completeLayers","layers","comps","layerData","j","jLen","k","kLen","completed","tt","td","hasMask","maskProps","masksProperties","pt","convertPathsToAbsoluteValues","ty","findCompLayers","refId","completeShapes","shapes","completeText","completeChars","chars","assets","findComp","id","comp","__used","JSON","parse","stringify","ks","it","o","checkVersion","minimum","animVersionString","animVersion","split","checkText","minimumVersion","updateTextLayer","textLayer","documentData","iterateLayers","animationData","checkChars","charData","ip","op","st","sr","a","sk","sa","checkPathProperties","pathData","checkColors","iterateShapes","c","checkShapes","completeClosingShapes","closed","cl","completeData","__complete","moduleOb","assetLoader","formatResponse","xhr","contentTypeHeader","getResponseHeader","responseType","indexOf","response","responseText","loadAsset","fullPath","callback","errorCallback","XMLHttpRequest","err","onreadystatechange","readyState","status","open","error","send","load","payload","animation","event","process","onComplete","onError","createProcess","loadAnimation","processId","location","origin","pathname","loadData","completeAnimation","anim","ImagePreloader","proxyImage","canvas","width","height","ctx","getContext","fillStyle","fillRect","imageLoaded","loadedAssets","totalImages","loadedFootagesCount","totalFootages","imagesLoadedCb","footageLoaded","getAssetsPath","assetData","assetsPath","originalPath","imagePath","u","testImageLoaded","img","intervalId","setInterval","box","getBBox","_imageLoaded","clearInterval","bind","createImageData","addEventListener","ob","setAttributeNS","_elementHelper","append","appendChild","createImgData","crossOrigin","createFootageData","footageData","_footageLoaded","loadAssets","cb","images","_createImageData","setPath","setAssetsPath","getAsset","destroy","loadedImages","loadedFootages","setCacheType","elementHelper","ImagePreloaderFactory","BaseEvent","triggerEvent","eventName","args","_cbs","callbacks","removeEventListener","splice","markerParser","parsePayloadLines","lines","keys","line","keysCount","trim","Error","_markers","markers","_marker","markerData","time","tm","duration","dr","cm","_","__","name","ProjectInterface","registerComposition","compositions","_thisProjectFunction","nm","prepareFrame","xt","currentFrame","compInterface","renderers","registerRenderer","key","getRenderer","AnimationItem","isLoaded","currentRawFrame","frameRate","frameMult","playSpeed","playDirection","playCount","isPaused","autoplay","loop","renderer","animationID","timeCompleted","segmentPos","isSubframeEnabled","segments","_idle","_completedLoop","projectInterface","imagePreloader","audioController","configAnimation","onSetupError","onSegmentComplete","drawnFrameEvent","setParams","params","wrapper","container","animType","RendererClass","rendererSettings","globalData","defs","setProjectInterface","undefined","parseInt","autoloadSegments","initialSegment","setupAnimation","lastIndexOf","substr","fileName","trigger","setData","wrapperAttributes","attributes","getNamedItem","prerender","includeLayers","newLayers","fonts","fontManager","addChars","addFonts","initExpressions","loadNextSegment","segment","shift","segmentPath","loadSegments","imagesLoaded","checkLoaded","preloadImages","animData","round","fr","searchExtraCompositions","updaFrameModifier","waitForFontsLoaded","triggerConfigError","setTimeout","rendererType","initItems","gotoFrame","resize","updateContainerSize","setSubframe","renderFrame","triggerRenderFrameError","togglePause","stop","setCurrentRawFrameValue","getMarkerData","markerName","marker","goToAndStop","isFrame","numValue","Number","isNaN","frameModifier","goToAndPlay","playSegments","advanceTime","nextValue","_isComplete","checkSegments","adjustSegment","setSpeed","setDirection","setSegment","init","end","pendingFrame","forceFlag","resetSegments","onEnterFrame","onLoopComplete","onSegmentStart","onDestroy","getPath","getAssetData","hide","show","getDuration","updateDocumentData","index","getElementByPath","animationManager","registeredAnimations","initTime","playingAnimationsNum","_stopped","_isFrozen","removeElement","ev","animItem","subtractPlayingCount","registerAnimation","elem","getRegisteredAnimations","lenAnims","animations","addPlayingCount","activate","nowTime","elapsedTime","requestAnimationFrame","first","searchAnimations","standalone","animElements","concat","slice","getElementsByClassName","setAttribute","body","getElementsByTagName","innerText","div","freeze","unfreeze","BezierFactory","getBezierEasing","beziers","str","replace","bezEasing","BezierEasing","NEWTON_ITERATIONS","NEWTON_MIN_SLOPE","SUBDIVISION_PRECISION","SUBDIVISION_MAX_ITERATIONS","kSplineTableSize","kSampleStepSize","float32ArraySupported","A","aA1","aA2","B","C","calcBezier","aT","getSlope","binarySubdivide","aX","aA","aB","mX1","mX2","currentX","currentT","newtonRaphsonIterate","aGuessT","currentSlope","points","_p","_mSampleValues","_precomputed","get","x","mY1","mY2","_precompute","_getTForX","_calcSampleValues","mSampleValues","intervalStart","currentSample","lastSample","dist","guessForT","initialSlope","pooling","double","poolFactory","initialLength","_create","_release","_length","_maxLength","pool","newElement","release","bezierLengthPool","create","addedLength","percents","lengths","segmentsLengthPool","totalLength","bezFunction","math","pointOnLine2D","x1","y1","x2","y2","x3","y3","det1","pointOnLine3D","z1","z2","z3","dist1","dist2","dist3","diffDist","getBezierLength","pt1","pt2","pt3","pt4","curveSegments","ptCoord","perc","ptDistance","point","lastPoint","lengthData","getSegmentsLength","shapeData","segmentsLength","pathV","pathO","pathI","BezierData","segmentLength","PointData","partial","partialLength","buildBezierData","storedData","bezierName","bezierData","getDistancePerc","initPos","lengthPos","lPerc","dir","getPointInSegment","percent","t1","u1","ptX","ptY","bezierSegmentPoints","getNewSegment","startPerc","endPerc","t0","u0","u0u0u0","t0u0u0_3","t0t0u0_3","t0t0t0","u0u0u1","t0u0u1_3","t0t0u1_3","t0t0t1","u0u1u1","t0u1u1_3","t0t1u1_3","t0t1t1","u1u1u1","t1u1u1_3","t1t1u1_3","t1t1t1","bez","PropertyFactory","initFrame","mathAbs","interpolateValue","frameNum","caching","offsetTime","newValue","propType","pv","iterationIndex","lastIndex","keyframes","keyData","nextKeyData","keyframeMetadata","keyframesMetadata","fnc","nextKeyTime","keyTime","endValue","to","ti","ind","__fnct","y","n","distanceInLine","segmentPerc","lastFrame","_lastKeyframeIndex","_lastAddedLength","_lastPoint","outX","outY","inX","inY","keyValue","sh","quatStart","createQuaternion","quatEnd","quaternionToEuler","slerp","constructor","out","ax","ay","az","aw","bx","by","bz","bw","omega","cosom","sinom","scale0","scale1","acos","sin","quat","qx","qy","qz","qw","heading","atan2","attitude","asin","bank","values","c1","cos","c2","c3","s1","s2","s3","w","z","getValueAtCurrentTime","renderedFrame","endTime","_caching","renderResult","setVValue","multipliedValue","mult","_mdf","processEffectsSequence","frameId","effectsSequence","lock","_isFirstFrame","finalValue","kf","addEffect","effectFunction","addDynamicProperty","ValueProperty","vel","getValue","MultiDimensionalProperty","KeyframedValueProperty","KeyframedMultidimensionalProperty","arrLen","getProp","DynamicPropertyContainer","dynamicProperties","_isAnimated","iterateDynamicProperties","initDynamicPropertyContainer","pointPool","ShapePath","setPathData","setLength","doubleArrayLength","setXYAt","pos","setTripleAt","vX","vY","oX","oY","iX","iY","reverse","newPath","vertices","outPoints","inPoints","cnt","shapePool","shapePath","clone","shape","cloned","factory","ShapeCollection","addShape","releaseShapes","shapeCollectionPool","newShapeCollection","shapeCollection","ShapePropertyFactory","interpolateShape","previousValue","keyPropS","keyPropE","isHold","vertexValue","interpolateShapeCurrentTime","resetShape","paths","localShapeCollection","shapesEqual","shape1","shape2","ShapeProperty","reset","KeyframedShapeProperty","EllShapeProperty","cPoint","EllShapePropertyFactory","convertEllToPath","p0","p1","s0","_cw","_v","StarShapeProperty","StarShapePropertyFactory","sy","ir","is","convertToPath","convertStarToPath","convertPolygonToPath","or","os","numPts","angle","longFlag","longRad","shortRad","longRound","shortRound","longPerimSegment","shortPerimSegment","rad","roundness","perimSegment","currentAng","ox","oy","RectShapeProperty","RectShapePropertyFactory","convertRectToPath","v0","v1","getShapeProp","dataProp","getConstructorFunction","getKeyframedConstructorFunction","Matrix","_cos","_sin","_tan","tan","_rnd","props","rotate","mCos","mSin","_t","rotateX","rotateY","rotateZ","shear","sx","skew","skewFromAxis","scale","sz","setTransform","l","m","translate","tx","tz","transform","a2","b2","d2","e2","f2","g2","h2","i2","j2","k2","l2","m2","n2","o2","p2","_identityCalculated","a1","b1","d1","e1","f1","g1","h1","i1","j1","k1","l1","m1","n1","o1","isIdentity","_identity","equals","matr","cloneFromProps","applyToPoint","applyToX","applyToY","applyToZ","getInverseMatrix","determinant","inverseMatrix","inversePoint","applyToPointArray","inversePoints","pts","retPts","applyToTriplePoints","p4","p5","p12","p13","applyToPointStringified","toCSS","cssValue","roundMatrixProperty","to2dCSS","_a","_b","_c","_d","_e","_f","lottie","setLocation","href","setSubframeRendering","setPrefix","prefix","setQuality","inBrowser","installPlugin","plugin","getFactory","useWebWorker","setIDPrefix","__getFactory","version","checkReady","readyStateCheckInterval","getQueryVariable","variable","vars","queryString","pair","decodeURIComponent","scripts","myScript","exports","module","define","amd","bodymovin","ShapeModifiers","modifiers","registerModifier","getModifier","ShapeModifier","initModifierProperties","addShapeToModifier","setAsAnimated","processKeys","TrimModifier","sValue","eValue","pathsData","calculateShapeEdges","shapeLength","totalModifierLength","shapeSegments","segmentOb","shapeS","shapeE","releasePathsData","processShapes","_s","shapePaths","totalShapeLength","edges","newShapesData","addShapes","lastShapeInCollection","lastShape","pop","addPaths","newPaths","addSegment","newShape","addSegmentFromArray","shapeSegment","currentLengthData","segmentCount","PuckerAndBloatModifier","amount","processPath","centerPoint","pathLength","clonedPath","TransformPropertyFactory","defaultVector","applyToMatrix","mat","rz","ry","rx","px","py","pz","forceRender","_isDirty","precalculateMatrix","pre","appliedTransformations","autoOriented","v2","getValueAtTime","autoOrient","_addDynamicProperty","TransformProperty","getTransformProperty","RepeaterModifier","tr","so","eo","pMatrix","rMatrix","sMatrix","tMatrix","matrix","applyTransforms","inv","scaleX","scaleY","elemsData","_currentCopies","_elements","_groups","unshift","resetElements","elements","_processed","cloneElements","newElements","changeGroupRender","renderFlag","_render","items","itemsTransform","cont","hasReloaded","copies","ceil","group","ix","reloadShapes","elems","transformData","offsetModulo","roundOffset","pProps","rProps","sProps","iteration","mProps","RoundCornersModifier","rd","currentV","currentI","currentO","closerV","distance","newPosPerc","getFontProperties","fontData","styles","fStyle","fWeight","styleName","toLowerCase","weight","FontManager","maxWaitingTime","emptyChar","size","combinedCharacters","surrogateModifiers","zeroWidthJoiner","trimFontOptions","font","familyArray","enabledFamilies","join","setUpNode","family","parentNode","fontFamily","node","fontSize","fontVariant","fontStyle","fontWeight","letterSpacing","offsetWidth","parent","checkLoadedFonts","loadedCount","loaded","fOrigin","monoCase","sansCase","removeChild","Date","now","checkLoadedFontsBinded","setIsLoadedBinded","createHelper","def","engine","helper","fontProps","tHelper","fFamily","textContent","fClass","tCanvasHelper","OffscreenCanvas","measure","text","getComputedTextLength","measureText","list","forEach","cache","fontArr","_pendingFonts","shouldLoadFont","loadedSelector","fPath","querySelectorAll","rel","sc","found","ch","getCharData","char","charCodeAt","console","warn","_warned","fontName","getFontByName","doubleSize","singleSize","fName","isModifier","firstCharCode","secondCharCode","sum","isZeroWidthJoiner","isCombinedCharacter","setIsLoaded","Font","typekitLoaded","fontPrototype","RenderableElement","initRenderable","isInRange","hidden","isTransparent","renderableComponents","addRenderableComponent","component","removeRenderableComponent","prepareRenderableFrame","num","checkLayerLimits","checkTransparency","finalTransform","mProp","renderConfig","hideOnTransparent","renderRenderable","sourceRectAtTime","getLayerSize","textData","MaskManagerInterface","MaskInterface","mask","_mask","_data","defineProperty","MaskManager","maskManager","_masksInterfaces","viewData","maskFunction","ExpressionPropertyInterface","defaultUnidimensionalValue","defaultMultidimensionalValue","completeProperty","expressionValue","property","getVelocityAtTime","numKeys","valueProp","assign","valueAtTime","speedAtTime","getSpeedAtTime","velocityAtTime","propertyGroup","UnidimensionalPropertyInterface","MultidimensionalPropertyInterface","arrValue","defaultGetter","TransformExpressionInterface","_thisFunction","rotation","xRotation","yRotation","xPosition","yPosition","zPosition","anchorPoint","opacity","_px","_py","_pz","_transformFactory","LayerExpressionInterface","getMatrix","toWorldMat","propMatrix","_elem","transformMat","toWorldVec","applyPoint","toWorld","fromWorldVec","invertPoint","fromWorld","hierarchy","fromComp","sampleImage","transformInterface","_registerMaskInterface","_thisLayerFunction","_registerEffectsInterface","effects","effect","shapeInterface","textInterface","toComp","anchorPointDescriptor","defineProperties","hasParent","layerInterface","anchor_point","active","startTime","source","inPoint","outPoint","_name","registerMaskInterface","registerEffectsInterface","propertyGroupFactory","interfaceFunction","parentPropertyGroup","PropertyInterface","propertyName","_propertyGroup","EffectsExpressionInterface","createEffectsInterface","effectsManager","effectElements","effectsData","ef","createGroupInterface","groupInterface","mn","createValueInterface","numProperties","np","enabled","en","expressionProperty","setGroupProperty","CompExpressionInterface","layer","pixelAspect","compSize","frameDuration","displayStartTime","numLayers","ShapePathInterface","pathInterfaceFactory","view","propertyIndex","ShapeExpressionInterface","iterateElements","groupInterfaceFactory","fillInterfaceFactory","strokeInterfaceFactory","trimInterfaceFactory","ellipseInterfaceFactory","starInterfaceFactory","rectInterfaceFactory","roundedInterfaceFactory","repeaterInterfaceFactory","gradientFillInterfaceFactory","defaultInterfaceFactory","contentsInterfaceFactory","interfaces","_interfaceFunction","transformInterfaceFactory","cix","content","startPoint","endPoint","_dashPropertyGroup","dashOb","addPropertyToDashOb","dataProps","strokeWidth","dash","start","skewAxis","outerRadius","outerRoundness","innerRadius","innerRoundness","radius","parentGroupWrapper","TextExpressionInterface","_prevValue","_sourceText","sourceText","textProperty","stringValue","currentData","String","getBlendMode","blendModeEnums","mode","SliderEffect","AngleEffect","ColorEffect","PointEffect","LayerIndexEffect","MaskIndexEffect","CheckboxEffect","NoValueEffect","EffectsManager","effectItem","GroupEffect","eff","BaseElement","checkMasks","effectsInterface","shapesData","itemsData","setBlendMode","blendModeValue","bm","baseElement","layerElement","initBaseData","layerId","getType","FrameElement","prepareProperties","isVisible","_isParent","FootageInterface","outlineInterfaceFactory","currentPropertyName","currentProperty","getFootageData","searchProperty","propertyNameIndex","dataInterfaceFactory","outlineInterface","dataInterface","FootageElement","imageLoader","getBaseElement","AudioElement","_isPlaying","_canPlay","_currentTime","_volumeMultiplier","_previousVolume","_placeholder","lv","au","timeRemapped","totalVolume","volumeValue","BaseRenderer","checkLayers","buildItem","checkPendingElements","createItem","createImage","createComp","createSolid","createNull","createShape","createText","createCamera","createFootage","buildAllItems","pInterface","progressiveLoad","buildElementParenting","parentName","addPendingElement","setAsParent","setHierarchy","pendingElements","pathValue","setupGlobalData","fontsContainer","animationItem","TransformElement","initTransform","_matMdf","_opMdf","ao","renderTransform","finalMat","globalToLocal","transforms","ptNew","mHelper","MaskElement","maskElement","solidPath","properties","count","currentMasks","rect","expansor","feMorph","maskType","maskRef","lastPath","filterID","expan","lastOperator","filterId","lastRadius","createLayerSolidPath","invRect","drawPath","maskedElement","getMaskProperty","isFirstFrame","getMaskelement","pathNodes","pathString","pathShapeValue","filtersFactory","createFilter","createAlphaToLuminanceFilter","filId","skipCoordinates","fil","feColorMatrix","featureSupport","registeredEffects","idPrefix","SVGEffects","filters","filterManager","Effect","countsAsEffect","registerEffect","SVGBaseElement","initRendererElement","createContainerElements","matteElement","transformedElement","_sizeChanged","layerElementParent","gg","masker","maskGroup","maskGrouper","feCTr","feFunc","alphaRect","ln","hd","cp","clipId","cpGroup","renderElement","destroyBaseElement","createRenderableComponents","renderableEffectsManager","setMatte","HierarchyElement","initHierarchy","checkParenting","RenderableDOMElement","_prototype","initElement","createContent","renderInnerContent","innerElem","IImageElement","sourceRect","pr","imagePreserveAspectRatio","ProcessedElement","IShapeElement","addShapeToModifiers","shapeModifiers","isShapeInAnimatedModifiers","isAnimatedWithShape","renderModifiers","shouldBreakProcess","searchProcessedElement","processedElements","addProcessedElement","lineCapEnum","lineJoinEnum","SVGShapeData","transformers","level","caches","lStr","lvl","SVGStyleData","pElem","msElem","DashProperty","dashStr","dashArray","dashoffset","SVGStrokeStyleData","styleOb","SVGFillStyleData","SVGNoStyleData","GradientProperty","cLength","_cmdf","_omdf","_collapsable","checkCollapsable","_hasOpacity","comparePoints","diff","SVGGradientFillStyleData","initGradientData","stops","setGradientData","setGradientOpacity","pathElement","gradientId","gfill","gf","cst","opacityId","maskId","opFill","lc","lj","ml","of","ms","ost","SVGGradientStrokeStyleData","ShapeGroupData","prevViewData","gr","SVGTransformData","buildShapeString","_o","_i","shapeString","SVGElementsRenderer","_identityMatrix","_matrixHelper","createRenderFunction","renderFill","renderGradient","renderGradientStroke","renderStroke","renderPath","renderContentTransform","renderNoop","styleData","itemData","pathStringTransformed","redraw","lLen","iterations","styleElem","hasOpacity","attr1","attr2","cValues","oValues","ang","SVGShapeElement","stylesList","animatedContents","initSecondaryElement","identityMatrix","buildExpressionInterface","searchShapes","filterUniqueShapes","tempShapes","areAnimated","setShapesAsAnimated","createStyleElement","elementData","GradientConstructor","addToAnimatedContents","createGroupElement","createTransformElement","transformProperty","createShapeElement","ownTransformers","shapeProperty","setElementStyles","render","ownStyles","ownModifiers","currentTransform","modifier","processedPos","renderShape","animatedContent","LetterProps","sw","fc","update","updated","TextProperty","_frameId","keysIndex","canResize","minimumFontSize","ascent","boxWidth","defaultBoxWidth","justifyOffset","lh","lineWidths","ls","ps","fillColorAnim","strokeColorAnim","strokeWidthAnim","yOffset","finalSize","finalText","finalLineHeight","copyData","completeTextData","obj","setCurrentData","searchKeyframes","getKeyframeValue","_finalValue","currentValue","currentIndex","textKeys","buildFinalText","charactersArray","charCode","shouldCombine","charAt","letters","newLineFlag","anchorGrouping","currentSize","currentPos","currentLine","lineWidth","maxLineWidth","trackingOffset","boxHeight","currentHeight","lastSpaceIndex","uncollapsedSpaces","currentChar","an","add","anIndexes","animatorJustifyOffset","extra","animators","animatorData","letterData","based","indexes","fh","fs","fb","rn","totalChars","currentInd","newInd","newData","dData","recalculate","canResizeFont","_canResize","setMinimumFontSize","_fontValue","TextSelectorProp","TextSelectorPropFactory","_currentTextLength","finalS","finalE","xe","ne","sm","getMult","easer","tot","smoothness","threshold","newCharsFlag","divisor","getTextSelectorProp","TextAnimatorDataProperty","animatorProps","defaultData","textAnimatorAnimatables","TextAnimatorProperty","renderType","_hasMaskedPath","_textData","_renderType","_animatorsData","_pathData","_moreOptions","alignment","renderedLetters","lettersChangedFlag","searchProperties","getMeasures","matrixHelper","renderedLettersCount","xPos","yPos","pathInfo","currentLength","currentPoint","pointInd","segmentInd","prevPoint","tanAngle","tLength","pi","yOff","firstLine","animatorSelector","letterValue","offf","xPathPos","yPathPos","initPathPos","initSegmentInd","initPointInd","elemOpacity","letterSw","letterSc","letterFc","letterM","letterP","defaultPropsArray","letterO","animatorFirstCharOffset","justifyOffsetMult","isNewLine","animatorOffset","rot","atan","ITextElement","textAnimator","buildNewText","createPathShape","shapeStr","_fontSize","applyTextPropertiesToMatrix","lineNumber","buildColor","colorData","emptyProp","emptyShapeData","SVGTextLottieElement","textSpans","singleShape","textContainer","buildTextContents","textArray","textContents","currentTextContent","fromCharCode","buildShapeData","shapeItem","usesGlyphs","tSpan","tElement","justify","span","glyph","cachedSpansLength","childSpan","glyphElement","SVGCompElement","_debug","textBox","bbox","renderedLetter","textSpan","ISolidElement","NullElement","SVGRendererBase","svgElement","viewBoxSize","viewBoxOnly","contentVisibility","className","focusable","preserveAspectRatio","destroyed","appendElementInPos","nextElement","insertBefore","ICompElement","setElements","getElements","destroyElements","supports3d","SVGRenderer","config","ariaLabel","title","titleElement","titleId","description","descElement","descId","filterSize","CVContextData","saved","cArrPos","cTr","cO","savedOp","duplicate","newLength","currentSavedOp","set","ShapeTransformManager","sequences","sequenceList","transform_key_count","addTransformSequence","sequence","processSequence","processSequences","getNewKey","CVEffects","CVMaskElement","hasMasks","canvasContext","beginPath","moveTo","lineTo","bezierCurveTo","save","clip","CVBaseElement","createElements","blendMode","globalCompositeOperation","hideElement","showElement","forceRealStack","ctxTransform","ctxOpacity","restore","CVShapeData","transformsManager","styledShapes","styledShape","trNodes","CVShapeElement","transformHelper","dashResetter","preTransforms","co","wi","da","do","addTransformToStyleList","removeTransformFromStyleList","closeStyles","shouldRender","ownTransforms","_shouldRender","renderShapeTransform","parentTransform","groupTransform","drawLayer","nodes","currentStyle","coOp","currentGlobalAlpha","strokeStyle","grd","lineCap","lineJoin","miterLimit","setLineDash","lineDashOffset","closePath","stroke","fill","isMain","renderGradientFill","renderStyledShape","shapeNodes","groupTransformMat","createLinearGradient","createRadialGradient","addColorStop","CVTextElement","currentRender","sWidth","fValue","hasFill","hasStroke","commands","pathArr","commandsCounter","lastFill","lastStroke","lastStrokeW","CVImageElement","imgW","imgH","imgRel","canvasRel","widthCrop","heightCrop","par","drawImage","CVSolidElement","CanvasRendererBase","clearCanvas","context","dpr","devicePixelRatio","contextData","cProps","trProps","globalAlpha","actionFlag","popped","containerStyle","mozTransformOrigin","transformCanvas","isDashed","elementWidth","elementHeight","offsetHeight","elementRel","animationRel","fillType","clearRect","CVCompElement","CanvasRenderer","HBaseElement","checkBlendMode","tg","transformedElementStyle","matrixValue","webkitTransform","addEffects","HSolidElement","backgroundColor","HShapeElement","shapesContainer","currentBBox","_renderShapeFrame","shapeCont","getTransformedPoint","calculateShapeBoundingBox","item","boundingBox","vPoint","oPoint","nextIPoint","nextVPoint","checkBounds","getBoundsOfCurve","bounds","shapeBoundingBox","xMax","right","yMax","bottom","tempBoundingBox","p3","b2ac","t2","calculateF","calculateBoundingBox","expandStrokeBoundingBox","widthProperty","kfw","currentBoxContains","changed","shapeStyle","shapeTransform","HTextElement","textPaths","isMasked","compW","compH","innerElemStyle","textColor","lineHeight","tParent","tCont","children","tContStyle","tContTranslation","tStyle","tSpanTranslation","svgStyle","translation","textPath","margin","svgTransform","HCameraElement","pe","_prevMat","setup","threeDElements","perspectiveStyle","perspectiveElem","perspective","webkitPerspective","mTransf","diffVector","mag","lookDir","lookLengthOnXZ","mRotationX","mRotationY","hasMatrixChanged","matValue","HImageElement","Image","imageElem","HybridRendererBase","camera","newDOMElement","ddd","addTo3dContainer","nextDOMElement","nextLayer","tmpDOMElement","getThreeDContainerByPos","startPos","endPos","createThreeDContainer","center","threeDContainerData","build3dContainers","lastThreeDContainerData","currentContainer","resizerElem","overflow","svg","cWidth","cHeight","floatingContainer","HCompElement","_createBaseContainerElements","HybridRenderer","Expressions","stackCount","registers","pushExpression","popExpression","releaseInstances","registerExpressionProperty","expression","seedRandom","global","chunks","digits","rngname","startdenom","significance","seedrandom","seed","options","entropy","shortseed","mixkey","flatten","tostring","autoseed","arc4","ARC4","prng","int32","quick","S","pass","is_math_call","state","copy","keylen","me","depth","result","typ","stringseed","smear","Uint8Array","crypto","msCrypto","getRandomValues","browser","plugins","screen","initialize$2","propTypes","SHAPE","ExpressionManager","fetch","frames","$bm_isInstanceOfArray","isNumerable","tOfV","$bm_neg","tOfA","lenA","retArr","easeInBez","easeOutBez","easeInOutBez","tOfB","lenB","sub","mul","mod","$bm_sum","$bm_sub","$bm_mul","$bm_div","$bm_mod","clamp","mm","radiansToDegrees","radians_to_degrees","degreesToRadians","degrees_to_radians","helperLengthArray","arr1","arr2","normalize","vec","rgbToHsl","hue2rgb","hslToRgb","linear","tMin","tMax","value1","value2","_tMin","rnd","rndm","createPath","inTangents","outTangents","arrPlaceholder","inVertexPoint","outVertexPoint","initiateExpression","needsVelocity","_needsRandom","elemType","$bm_transform","thisProperty","loopIn","loop_in","loopOut","loop_out","smooth","fromCompToSurface","thisLayer","thisComp","scoped_bm_rt","expression_function","eval","wiggle","freq","amp","iWiggle","lenWiggle","addedAmps","periods","loopInDuration","loopOutDuration","lookAt","elem1","elem2","fVec","pitch","yaw","easeOut","val1","val2","applyEase","easeIn","ease","iKey","lenKey","nearestKey","obKey","framesToTime","fps","timeToFrames","randSeed","substring","posterizeTime","framesPerSecond","velocity","textIndex","textTotal","selectorValue","executeExpression","_value","frameExpressionId","__preventDeadCodeRemoval","expressionHelpers","searchExpressions","_cachingAtTime","delta","speed","getStaticValueAtTime","addPropertyDecorator","durationFlag","lastKeyFrame","cycleDuration","firstKeyFrame","ret","initV","endV","current","repeats","lastValue","nextLastValue","firstValue","nextFirstValue","samples","endFrame","sampleFrequency","sampleValue","getTransformValueAtTime","_transformCachingAtTime","anchor","rotationZ","rotationY","rotationX","orientation","positionX","positionY","positionZ","getTransformStaticValueAtTime","propertyGetProp","getShapeValueAtTime","shapeValue","lastTime","ShapePropertyConstructorFunction","KeyframedShapePropertyConstructorFunction","ShapeExpressions","isClosed","pointOnPath","_segmentsLength","accumulatedLength","initIndex","endIndex","vectorOnPath","vectorType","xLength","yLength","magnitude","unitVector","tangentOnPath","normalOnPath","propertyGetShapeProp","trims","initialize$1","addDecorator","calculateExpression","getExpressionValue","isKeyframed","hasExpressions","initialize","SVGComposableEffect","createMergeNode","resultId","ins","feMerge","feMergeNode","SVGTintFilter","filter","matrixFilter","colorBlack","colorWhite","SVGFillFilter","SVGStrokeEffect","initialized","elemChildren","childNodes","groupPath","removeAttribute","pathMasker","dasharrayValue","getTotalLength","lineLength","units","SVGTritoneFilter","feComponentTransfer","feFuncR","feFuncG","feFuncB","color1","color2","color3","tableR","tableG","tableB","SVGProLevelsFilter","createFeFunc","feFuncA","feFuncRComposed","feFuncGComposed","feFuncBComposed","getTableValue","inputBlack","inputWhite","gamma","outputBlack","outputWhite","table","colorValue","outputDelta","inputDelta","SVGDropShadowEffect","globalFilterSize","feGaussianBlur","feOffset","feFlood","feComposite","col","_svgMatteSymbols","SVGMatte3Effect","filterElem","findSymbol","replaceInParent","symbolId","nextChild","useElem","setElementAsMask","symbol","SVGGaussianBlurEffect","kBlurrinessToSigma","sigma","dimensions","sigmaX","sigmaY","edgeMode"],"mappings":";;;;CAAA;CACA;CACA;CACA;CACA;CACA;CACA;CAGA;CACA;CACA;CACA,GAEA,MAAMA,KAAK,CAAG,4BAAd,CAEA,IAAIC,YAAY,CAAG,EAAnB,CACA,IAAIC,aAAa,CAAG,KAApB,CAEA,MAAMC,mBAAmB,CAAG,CAAC,MAA7B,CAEA,MAAMC,YAAY,CAAIC,IAAD,EAAU,CAAEH,aAAa,CAAG,CAAC,CAACG,IAAlB,CAAyB,CAA1D,CACA,MAAMC,YAAY,CAAG,IAAMJ,aAA3B,CAEA,MAAMK,eAAe,CAAIC,KAAD,EAAW,CAAEP,YAAY,CAAGO,KAAf,CAAuB,CAA5D,CACA,MAAMC,eAAe,CAAG,IAAMR,YAA9B,CAEA,SAASS,SAAT,CAAmBC,IAAnB,CAAyB;CAExB,OAAOC,QAAQ,CAACC,aAAT,CAAuBF,IAAvB,CAAP,CACA,CAED,SAASG,eAAT,CAAyBC,OAAzB,CAAkCC,WAAlC,CAA+C,CAC9C,IAAIC,CAAJ,CACA,IAAIC,GAAG,CAAGH,OAAO,CAACI,MAAlB,CACA,IAAIC,eAAJ,CACA,IAAKH,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5BG,eAAe,CAAGL,OAAO,CAACE,CAAD,CAAP,CAAWI,SAA7B,CACA,IAAK,IAAIC,IAAT,IAAiBF,eAAjB,CAAkC,CACjC,GAAIG,MAAM,CAACF,SAAP,CAAiBG,cAAjB,CAAgCC,IAAhC,CAAqCL,eAArC,CAAsDE,IAAtD,CAAJ,CAAiEN,WAAW,CAACK,SAAZ,CAAsBC,IAAtB,EAA8BF,eAAe,CAACE,IAAD,CAA7C,CACjE,CACD,CACD,CAED,SAASI,aAAT,CAAuBC,MAAvB,CAA+BC,IAA/B,CAAqC,CACpC,OAAOL,MAAM,CAACM,wBAAP,CAAgCF,MAAhC,CAAwCC,IAAxC,CAAP,CACA,CAED,SAASE,mBAAT,CAA6BT,SAA7B,CAAwC,CACvC,SAASU,aAAT,EAAyB,EACzBA,aAAa,CAACV,SAAd,CAA0BA,SAA1B,CACA,OAAOU,aAAP,CACA,CAED;CAEA,MAAMC,sBAAsB,CAAI,UAAY,CAC3C,SAASC,eAAT,CAAyBC,YAAzB,CAAuC,CACtC,KAAKC,MAAL,CAAc,EAAd,CACA,KAAKD,YAAL,CAAoBA,YAApB,CACA,KAAKE,OAAL,CAAe,CAAf,CACA,KAAKC,QAAL,CAAgB,KAAhB,CACA,CAEDJ,eAAe,CAACZ,SAAhB,CAA4B,CAC3BiB,QAAQ,CAAE,SAAUC,KAAV,CAAiB,CAC1B,KAAKJ,MAAL,CAAYK,IAAZ,CAAiBD,KAAjB,EACA,CAH0B,CAI3BE,KAAK,CAAE,UAAY,CAClB,IAAIxB,CAAJ,CACA,IAAIC,GAAG,CAAG,KAAKiB,MAAL,CAAYhB,MAAtB,CACA,IAAKF,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B,KAAKkB,MAAL,CAAYlB,CAAZ,EAAewB,KAAf,GACA,CACD,CAV0B,CAW3BC,MAAM,CAAE,UAAY,CACnB,IAAIzB,CAAJ,CACA,IAAIC,GAAG,CAAG,KAAKiB,MAAL,CAAYhB,MAAtB,CACA,IAAKF,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B,KAAKkB,MAAL,CAAYlB,CAAZ,EAAeyB,MAAf,GACA,CACD,CAjB0B,CAkB3BC,OAAO,CAAE,SAAUC,SAAV,CAAqB,CAC7B,IAAI3B,CAAJ,CACA,IAAIC,GAAG,CAAG,KAAKiB,MAAL,CAAYhB,MAAtB,CACA,IAAKF,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B,KAAKkB,MAAL,CAAYlB,CAAZ,EAAe0B,OAAf,CAAuBC,SAAvB,EACA,CACD,CAxB0B,CAyB3BC,WAAW,CAAE,SAAUC,SAAV,CAAqB,CACjC,GAAI,KAAKZ,YAAT,CAAuB,CACtB,YAAYA,YAAL,CAAkBY,SAAlB,CAAP,CACA,CAAC,GAAIC,MAAM,CAACC,IAAX,CAAiB,CAClB,WAAWD,MAAM,CAACC,IAAX,CAAgB,CACtBC,GAAG,CAAE,CAACH,SAAD,CADiB,CAAhB,CAAP,CAGA,CACD,OAAO,CACNI,SAAS,CAAE,KADL,CAENC,IAAI,CAAE,UAAY,CAAE,KAAKD,SAAL,CAAiB,IAAjB,CAAwB,CAFtC,CAGNE,IAAI,CAAE,UAAY,CAAE,KAAKF,SAAL,CAAiB,KAAjB,CAAyB,CAHvC,CAING,OAAO,CAAE,UAAY,EAJf,CAKNC,IAAI,CAAE,UAAY,EALZ,CAMNC,SAAS,CAAE,UAAY,EANjB,CAAP,CAQA,CAzC0B,CA0C3BC,eAAe,CAAE,SAAUtB,YAAV,CAAwB,CACxC,KAAKA,YAAL,CAAoBA,YAApB,CACA,CA5C0B,CA6C3BqB,SAAS,CAAE,SAAU/C,KAAV,CAAiB,CAC3B,KAAK4B,OAAL,CAAe5B,KAAf,CACA,KAAKiD,aAAL,GACA,CAhD0B,CAiD3BC,IAAI,CAAE,UAAY,CACjB,KAAKrB,QAAL,CAAgB,IAAhB,CACA,KAAKoB,aAAL,GACA,CApD0B,CAqD3BE,MAAM,CAAE,UAAY,CACnB,KAAKtB,QAAL,CAAgB,KAAhB,CACA,KAAKoB,aAAL,GACA,CAxD0B,CAyD3BG,SAAS,CAAE,UAAY,CACtB,YAAYxB,OAAZ,CACA,CA3D0B,CA4D3BqB,aAAa,CAAE,UAAY,CAC1B,IAAIxC,CAAJ,CACA,IAAIC,GAAG,CAAG,KAAKiB,MAAL,CAAYhB,MAAtB,CACA,IAAKF,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B,KAAKkB,MAAL,CAAYlB,CAAZ,EAAe4C,MAAf,CAAsB,KAAKzB,OAAL,EAAgB,KAAKC,QAAL,CAAgB,CAAhB,CAAoB,CAApC,CAAtB,EACA,CACD,CAlE0B,CAA5B,CAqEA,iBAAmB,CAClB,WAAWJ,eAAJ,EAAP,CACA,CAFD,CAGA,CAhF+B,EAAhC,CAkFA,MAAM6B,gBAAgB,CAAI,UAAY,CACrC,SAASC,kBAAT,CAA4BpD,IAA5B,CAAkCO,GAAlC,CAAuC,CACtC,IAAID,CAAC,CAAG,CAAR,CACA,IAAI+C,GAAG,CAAG,EAAV,CACA,IAAIxD,KAAJ,CACA,OAAQG,IAAR,EACC,IAAK,OAAL,CACA,IAAK,QAAL,CACCH,KAAK,CAAG,CAAR,CACA,MACD,QACCA,KAAK,CAAG,GAAR,CACA,MAPF,CASA,IAAKS,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B+C,GAAG,CAACxB,IAAJ,CAAShC,KAAT,EACA,CACD,OAAOwD,GAAP,CACA,CACD,SAASC,uBAAT,CAAiCtD,IAAjC,CAAuCO,GAAvC,CAA4C,CAC3C,GAAIP,IAAI,GAAK,SAAb,CAAwB,CACvB,WAAWuD,YAAJ,CAAiBhD,GAAjB,CAAP,CACA,CAAC,GAAIP,IAAI,GAAK,OAAb,CAAsB,CACvB,WAAWwD,UAAJ,CAAejD,GAAf,CAAP,CACA,CAAC,GAAIP,IAAI,GAAK,QAAb,CAAuB,CACxB,WAAWyD,iBAAJ,CAAsBlD,GAAtB,CAAP,CACA,CACD,OAAO6C,kBAAkB,CAACpD,IAAD,CAAOO,GAAP,CAAzB,CACA,CACD,GAAI,OAAOkD,iBAAP,GAA6B,UAA7B,EAA2C,OAAOF,YAAP,GAAwB,UAAvE,CAAmF,CAClF,OAAOD,uBAAP,CACA,CACD,OAAOF,kBAAP,CACA,CAjCyB,EAA1B,CAmCA,SAASM,gBAAT,CAA0BnD,GAA1B,CAA+B,CAC9B,OAAOoD,KAAK,CAACC,KAAN,CAAY,IAAZ,CAAkB,CAAEpD,MAAM,CAAED,GAAV,CAAlB,CAAP,CACA,CAED,IAAIsD,eAAe,CAAG,IAAtB,CACA,IAAIC,iBAAiB,CAAG,IAAxB,CACA,IAAIC,UAAU,CAAG,EAAjB,CACA,MAAMC,QAAQ,CAAG,iCAAiCC,IAAjC,CAAsCC,SAAS,CAACC,SAAhD,CAAjB,CACA,AACA,MAAMC,KAAK,CAAGC,IAAI,CAACC,GAAnB,CACA,MAAMC,MAAM,CAAGF,IAAI,CAACG,IAApB,CACA,MAAMC,OAAO,CAAGJ,IAAI,CAACK,KAArB,CACA,MAAMC,KAAK,CAAGN,IAAI,CAACO,GAAnB,CACA,MAAMC,KAAK,CAAGR,IAAI,CAACS,GAAnB,CAEA,MAAMC,MAAM,CAAG,EAAf,CACC,WAAY,CACZ,IAAIC,aAAa,CAAG,CAAC,KAAD,CAAQ,MAAR,CAAgB,OAAhB,CAAyB,MAAzB,CAAiC,OAAjC,CAA0C,MAA1C,CAAkD,OAAlD,CAA2D,OAA3D,CAAoE,MAApE,CAA4E,MAA5E,CAAoF,OAApF,CAA6F,OAA7F,CAAsG,KAAtG,CAA6G,MAA7G,CAAqH,KAArH,CAA4H,OAA5H,CAAqI,QAArI,CAA+I,OAA/I,CAAwJ,MAAxJ,CAAgK,KAAhK,CAAuK,OAAvK,CAAgL,MAAhL,CAAwL,OAAxL,CAAiM,KAAjM,CAAwM,KAAxM,CAA+M,KAA/M,CAAsN,QAAtN,CAAgO,OAAhO,CAAyO,MAAzO,CAAiP,KAAjP,CAAwP,MAAxP,CAAgQ,MAAhQ,CAAwQ,KAAxQ,CAA+Q,MAA/Q,CAAuR,OAAvR,CAAgS,GAAhS,CAAqS,MAArS,CAA6S,KAA7S,CAAoT,QAApT,CAA8T,OAA9T,CAAuU,IAAvU,CAA6U,SAA7U,CAAwV,OAAxV,CAApB,CACA,IAAI1E,CAAJ,CACA,IAAIC,GAAG,CAAGyE,aAAa,CAACxE,MAAxB,CACA,IAAKF,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5ByE,MAAM,CAACC,aAAa,CAAC1E,CAAD,CAAd,CAAN,CAA2B+D,IAAI,CAACW,aAAa,CAAC1E,CAAD,CAAd,CAA/B,CACA,CACD,CAPA,GAAD,CASA,AACAyE,MAAM,CAACE,MAAP,CAAgBZ,IAAI,CAACY,MAArB,CACAF,MAAM,CAACG,GAAP,CAAa,SAAUC,GAAV,CAAe,CAC3B,IAAIC,MAAM,CAAG,OAAOD,GAApB,CACA,GAAIC,MAAM,GAAK,QAAX,EAAuBD,GAAG,CAAC3E,MAA/B,CAAuC,CACtC,IAAI6E,MAAM,CAAG3B,gBAAgB,CAACyB,GAAG,CAAC3E,MAAL,CAA7B,CACA,IAAIF,CAAJ,CACA,IAAIC,GAAG,CAAG4E,GAAG,CAAC3E,MAAd,CACA,IAAKF,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B+E,MAAM,CAAC/E,CAAD,CAAN,CAAY+D,IAAI,CAACa,GAAL,CAASC,GAAG,CAAC7E,CAAD,CAAZ,CAAZ,CACA,CACD,OAAO+E,MAAP,CACA,CACD,OAAOhB,IAAI,CAACa,GAAL,CAASC,GAAT,CAAP,CACA,CAZD,CAaA,IAAIG,oBAAoB,CAAG,GAA3B,CACA,MAAMC,SAAS,CAAGlB,IAAI,CAACmB,EAAL,CAAU,GAA5B,CACA,MAAMC,WAAW,CAAG,MAApB,CAEA,AAWA,SAASC,QAAT,CAAkBC,OAAlB,CAA2B,CAC1BA,OAAO,CAACC,KAAR,CAAcC,QAAd,CAAyB,UAAzB,CACAF,OAAO,CAACC,KAAR,CAAcE,GAAd,CAAoB,CAApB,CACAH,OAAO,CAACC,KAAR,CAAcG,IAAd,CAAqB,CAArB,CACAJ,OAAO,CAACC,KAAR,CAAcI,OAAd,CAAwB,OAAxB,CACAL,OAAO,CAACC,KAAR,CAAcK,eAAd,CAAgC,KAAhC,CACAN,OAAO,CAACC,KAAR,CAAcM,qBAAd,CAAsC,KAAtC,CACAP,OAAO,CAACC,KAAR,CAAcO,kBAAd,CAAmC,SAAnC,CACAR,OAAO,CAACC,KAAR,CAAcQ,wBAAd,CAAyC,SAAzC,CACAT,OAAO,CAACC,KAAR,CAAcS,cAAd,CAA+B,aAA/B,CACAV,OAAO,CAACC,KAAR,CAAcU,oBAAd,CAAqC,aAArC,CACAX,OAAO,CAACC,KAAR,CAAcW,iBAAd,CAAkC,aAAlC,CACA,CAED,SAASC,iBAAT,CAA2BxG,IAA3B,CAAiCyG,WAAjC,CAA8CC,SAA9C,CAAyDC,eAAzD,CAA0E,CACzE,KAAK3G,IAAL,CAAYA,IAAZ,CACA,KAAKyG,WAAL,CAAmBA,WAAnB,CACA,KAAKC,SAAL,CAAiBA,SAAjB,CACA,KAAKE,SAAL,CAAiBD,eAAe,CAAG,CAAlB,CAAsB,CAAC,CAAvB,CAA2B,CAA5C,CACA,CAED,SAASE,eAAT,CAAyB7G,IAAzB,CAA+B2G,eAA/B,CAAgD,CAC/C,KAAK3G,IAAL,CAAYA,IAAZ,CACA,KAAK4G,SAAL,CAAiBD,eAAe,CAAG,CAAlB,CAAsB,CAAC,CAAvB,CAA2B,CAA5C,CACA,CAED,SAASG,mBAAT,CAA6B9G,IAA7B,CAAmC+G,UAAnC,CAA+CC,WAA/C,CAA4DL,eAA5D,CAA6E,CAC5E,KAAK3G,IAAL,CAAYA,IAAZ,CACA,KAAKgH,WAAL,CAAmBA,WAAnB,CACA,KAAKD,UAAL,CAAkBA,UAAlB,CACA,KAAKH,SAAL,CAAiBD,eAAe,CAAG,CAAlB,CAAsB,CAAC,CAAvB,CAA2B,CAA5C,CACA,CAED,SAASM,mBAAT,CAA6BjH,IAA7B,CAAmCkH,UAAnC,CAA+CC,WAA/C,CAA4D,CAC3D,KAAKnH,IAAL,CAAYA,IAAZ,CACA,KAAKkH,UAAL,CAAkBA,UAAlB,CACA,KAAKC,WAAL,CAAmBA,WAAnB,CACA,CAED,SAASC,cAAT,CAAwBpH,IAAxB,CAA8BqH,MAA9B,CAAsC,CACrC,KAAKrH,IAAL,CAAYA,IAAZ,CACA,KAAKqH,MAAL,CAAcA,MAAd,CACA,CAED,SAASC,uBAAT,CAAiCC,WAAjC,CAA8Cd,WAA9C,CAA2D,CAC1D,KAAKzG,IAAL,CAAY,kBAAZ,CACA,KAAKuH,WAAL,CAAmBA,WAAnB,CACA,KAAKd,WAAL,CAAmBA,WAAnB,CACA,CAED,SAASe,kBAAT,CAA4BD,WAA5B,CAAyC,CACxC,KAAKvH,IAAL,CAAY,aAAZ,CACA,KAAKuH,WAAL,CAAmBA,WAAnB,CACA,CAED,AAKA,MAAME,eAAe,CAAI,UAAY,CACpC,IAAIC,MAAM,CAAG,CAAb,CACA,gBAAgBC,QAAT,EAAoB,CAC1BD,MAAM,EAAI,CAAV,CACA,OAAO3D,UAAU,CAAG,mBAAb,CAAmC2D,MAA1C,CACA,CAHD,CAIA,CANwB,EAAzB,CAQA,SAASE,QAAT,CAAkBC,CAAlB,CAAqBC,CAArB,CAAwBC,CAAxB,CAA2B,CAC1B,IAAIC,CAAJ,CACA,IAAIC,CAAJ,CACA,IAAIC,CAAJ,CACA,IAAI5H,CAAJ,CACA,IAAI6H,CAAJ,CACA,IAAIC,CAAJ,CACA,IAAIC,CAAJ,CACA,IAAIC,CAAJ,CACAhI,CAAC,CAAG+D,IAAI,CAACK,KAAL,CAAWmD,CAAC,CAAG,CAAf,CAAJ,CACAM,CAAC,CAAGN,CAAC,CAAG,CAAJ,CAAQvH,CAAZ,CACA8H,CAAC,CAAGL,CAAC,EAAI,EAAID,CAAR,CAAL,CACAO,CAAC,CAAGN,CAAC,EAAI,EAAII,CAAC,CAAGL,CAAZ,CAAL,CACAQ,CAAC,CAAGP,CAAC,EAAI,EAAI,CAAC,EAAII,CAAL,EAAUL,CAAlB,CAAL,CACA,OAAQxH,CAAC,CAAG,CAAZ,EACC,MAAA,CAAQ0H,CAAC,CAAGD,CAAJ,CAAOE,CAAC,CAAGK,CAAJ,CAAOJ,CAAC,CAAGE,CAAJ,CAAO,MAC7B,MAAA,CAAQJ,CAAC,CAAGK,CAAJ,CAAOJ,CAAC,CAAGF,CAAJ,CAAOG,CAAC,CAAGE,CAAJ,CAAO,MAC7B,MAAA,CAAQJ,CAAC,CAAGI,CAAJ,CAAOH,CAAC,CAAGF,CAAJ,CAAOG,CAAC,CAAGI,CAAJ,CAAO,MAC7B,MAAA,CAAQN,CAAC,CAAGI,CAAJ,CAAOH,CAAC,CAAGI,CAAJ,CAAOH,CAAC,CAAGH,CAAJ,CAAO,MAC7B,MAAA,CAAQC,CAAC,CAAGM,CAAJ,CAAOL,CAAC,CAAGG,CAAJ,CAAOF,CAAC,CAAGH,CAAJ,CAAO,MAC7B,MAAA,CAAQC,CAAC,CAAGD,CAAJ,CAAOE,CAAC,CAAGG,CAAJ,CAAOF,CAAC,CAAGG,CAAJ,CAAO,MAC7B,QAAS,MAPV,CASA,OAAO,CAACL,CAAD,CACNC,CADM,CAENC,CAFM,CAAP,CAGA,CAED,SAASK,QAAT,CAAkBP,CAAlB,CAAqBC,CAArB,CAAwBC,CAAxB,CAA2B,CAC1B,IAAItD,GAAG,CAAGP,IAAI,CAACO,GAAL,CAASoD,CAAT,CAAYC,CAAZ,CAAeC,CAAf,CAAV,CACA,IAAIpD,GAAG,CAAGT,IAAI,CAACS,GAAL,CAASkD,CAAT,CAAYC,CAAZ,CAAeC,CAAf,CAAV,CACA,IAAIM,CAAC,CAAG5D,GAAG,CAAGE,GAAd,CACA,IAAI+C,CAAJ,CACA,IAAIC,CAAC,CAAIlD,GAAG,GAAK,CAAR,CAAY,CAAZ,CAAgB4D,CAAC,CAAG5D,GAA7B,CACA,IAAImD,CAAC,CAAGnD,GAAG,CAAG,GAAd,CAEA,OAAQA,GAAR,EACC,KAAKE,GAAL,CAAU+C,CAAC,CAAG,CAAJ,CAAO,MACjB,KAAKG,CAAL,CAAQH,CAAC,CAAII,CAAC,CAAGC,CAAL,CAAUM,CAAC,EAAIP,CAAC,CAAGC,CAAJ,CAAQ,CAAR,CAAY,CAAhB,CAAf,CAAmCL,CAAC,EAAI,EAAIW,CAAT,CAAY,MACvD,KAAKP,CAAL,CAAQJ,CAAC,CAAIK,CAAC,CAAGF,CAAL,CAAUQ,CAAC,CAAG,CAAlB,CAAqBX,CAAC,EAAI,EAAIW,CAAT,CAAY,MACzC,KAAKN,CAAL,CAAQL,CAAC,CAAIG,CAAC,CAAGC,CAAL,CAAUO,CAAC,CAAG,CAAlB,CAAqBX,CAAC,EAAI,EAAIW,CAAT,CAAY,MACzC,QAAS,MALV,CAQA,OAAO,CACNX,CADM,CAENC,CAFM,CAGNC,CAHM,CAAP,CAKA,CAED,SAASU,kBAAT,CAA4BC,KAA5B,CAAmCC,MAAnC,CAA2C,CAC1C,IAAIC,GAAG,CAAGL,QAAQ,CAACG,KAAK,CAAC,CAAD,CAAL,CAAW,GAAZ,CAAiBA,KAAK,CAAC,CAAD,CAAL,CAAW,GAA5B,CAAiCA,KAAK,CAAC,CAAD,CAAL,CAAW,GAA5C,CAAlB,CACAE,GAAG,CAAC,CAAD,CAAH,EAAUD,MAAV,CACA,GAAIC,GAAG,CAAC,CAAD,CAAH,CAAS,CAAb,CAAgB,CACfA,GAAG,CAAC,CAAD,CAAH,CAAS,CAAT,CACA,CAFD,QAEWA,GAAG,CAAC,CAAD,CAAH,EAAU,CAAd,CAAiB,CACvBA,GAAG,CAAC,CAAD,CAAH,CAAS,CAAT,CACA,CACD,OAAOhB,QAAQ,CAACgB,GAAG,CAAC,CAAD,CAAJ,CAASA,GAAG,CAAC,CAAD,CAAZ,CAAiBA,GAAG,CAAC,CAAD,CAApB,CAAf,CACA,CAED,SAASC,kBAAT,CAA4BH,KAA5B,CAAmCC,MAAnC,CAA2C,CAC1C,IAAIC,GAAG,CAAGL,QAAQ,CAACG,KAAK,CAAC,CAAD,CAAL,CAAW,GAAZ,CAAiBA,KAAK,CAAC,CAAD,CAAL,CAAW,GAA5B,CAAiCA,KAAK,CAAC,CAAD,CAAL,CAAW,GAA5C,CAAlB,CACAE,GAAG,CAAC,CAAD,CAAH,EAAUD,MAAV,CACA,GAAIC,GAAG,CAAC,CAAD,CAAH,CAAS,CAAb,CAAgB,CACfA,GAAG,CAAC,CAAD,CAAH,CAAS,CAAT,CACA,CAFD,QAEWA,GAAG,CAAC,CAAD,CAAH,CAAS,CAAb,CAAgB,CACtBA,GAAG,CAAC,CAAD,CAAH,CAAS,CAAT,CACA,CACD,OAAOhB,QAAQ,CAACgB,GAAG,CAAC,CAAD,CAAJ,CAASA,GAAG,CAAC,CAAD,CAAZ,CAAiBA,GAAG,CAAC,CAAD,CAApB,CAAf,CACA,CAED,SAASE,WAAT,CAAqBJ,KAArB,CAA4BC,MAA5B,CAAoC,CACnC,IAAIC,GAAG,CAAGL,QAAQ,CAACG,KAAK,CAAC,CAAD,CAAL,CAAW,GAAZ,CAAiBA,KAAK,CAAC,CAAD,CAAL,CAAW,GAA5B,CAAiCA,KAAK,CAAC,CAAD,CAAL,CAAW,GAA5C,CAAlB,CACAE,GAAG,CAAC,CAAD,CAAH,EAAUD,MAAM,CAAG,GAAnB,CACA,GAAIC,GAAG,CAAC,CAAD,CAAH,CAAS,CAAb,CAAgB,CACfA,GAAG,CAAC,CAAD,CAAH,EAAU,CAAV,CACA,CAFD,QAEWA,GAAG,CAAC,CAAD,CAAH,CAAS,CAAb,CAAgB,CACtBA,GAAG,CAAC,CAAD,CAAH,EAAU,CAAV,CACA,CACD,OAAOhB,QAAQ,CAACgB,GAAG,CAAC,CAAD,CAAJ,CAASA,GAAG,CAAC,CAAD,CAAZ,CAAiBA,GAAG,CAAC,CAAD,CAApB,CAAf,CACA,CAED,MAAMG,QAAQ,CAAI,UAAY,CAC7B,IAAIC,QAAQ,CAAG,EAAf,CACA,IAAI1I,CAAJ,CACA,IAAI2I,GAAJ,CACA,IAAK3I,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAG,GAAhB,CAAqBA,CAAC,EAAI,CAA1B,CAA6B,CAC5B2I,GAAG,CAAG3I,CAAC,CAAC4I,QAAF,CAAW,EAAX,CAAN,CACAF,QAAQ,CAAC1I,CAAD,CAAR,CAAc2I,GAAG,CAACzI,MAAJ,GAAe,CAAf,CAAmB,IAAMyI,GAAzB,CAA+BA,GAA7C,CACA,CAED,gBAAiBjB,CAAV,CAAaC,CAAb,CAAgBC,CAAhB,CAAmB,CACzB,GAAIF,CAAC,CAAG,CAAR,CAAW,CACVA,CAAC,CAAG,CAAJ,CACA,CACD,GAAIC,CAAC,CAAG,CAAR,CAAW,CACVA,CAAC,CAAG,CAAJ,CACA,CACD,GAAIC,CAAC,CAAG,CAAR,CAAW,CACVA,CAAC,CAAG,CAAJ,CACA,CACD,OAAO,IAAMc,QAAQ,CAAChB,CAAD,CAAd,CAAoBgB,QAAQ,CAACf,CAAD,CAA5B,CAAkCe,QAAQ,CAACd,CAAD,CAAjD,CACA,CAXD,CAYA,CArBiB,EAAlB,CAuBA,MAAMiB,kBAAkB,CAAIzJ,IAAD,EAAU,CAAEmE,eAAe,CAAG,CAAC,CAACnE,IAApB,CAA2B,CAAlE,CACA,MAAM0J,kBAAkB,CAAG,IAAMvF,eAAjC,CACA,MAAMwF,oBAAoB,CAAIxJ,KAAD,EAAW,CAAEiE,iBAAiB,CAAGjE,KAApB,CAA4B,CAAtE,CACA,MAAMyJ,oBAAoB,CAAG,IAAMxF,iBAAnC,CACA,MAAMyF,uBAAuB,CAAI1J,KAAD,EAAW,CAAEyF,oBAAoB,CAAGzF,KAAvB,CAA+B,CAA5E,CACA,MAAM2J,uBAAuB,CAAG,IAAMlE,oBAAtC,CACA,MAAMmE,WAAW,CAAI5J,KAAD,EAAW,CAAEkE,UAAU,CAAGlE,KAAb,CAAqB,CAAtD,CACA,AAEA,SAAS6J,QAAT,CAAkB1J,IAAlB,CAAwB;CAEvB,OAAOC,QAAQ,CAAC0J,eAAT,CAAyBtK,KAAzB,CAAgCW,IAAhC,CAAP,CACA,CAED,MAAM4J,WAAW,CAAI,UAAY,CAChC,IAAIC,UAAU,CAAG,CAAjB,CACA,IAAIC,SAAS,CAAG,EAAhB,CACA,IAAIC,QAAJ,CACA,IAAIC,cAAJ,CACA,IAAIC,WAAW,CAAG,CACjBC,SAAS,CAAE,UAAY,EADN,CAIjBC,WAAW,CAAE,SAAUC,IAAV,CAAgB,CAC5BL,QAAQ,CAAC,CACRM,IAAI,CAAED,IADE,CAAD,CAAR,CAGA,CARgB,CAAlB,CAUA,IAAIE,WAAW,CAAG,CACjBH,WAAW,CAAE,SAAUE,IAAV,CAAgB,CAC5BJ,WAAW,CAACC,SAAZ,CAAsB,CACrBG,IAAI,CAAEA,IADe,CAAtB,EAGA,CALgB,CAAlB,CAOA,SAASE,YAAT,CAAsBC,EAAtB,CAA0B,CACzB,GAAIpI,MAAM,CAACqI,MAAP,EAAiBrI,MAAM,CAACsI,IAAxB,EAAgC/K,YAAY,EAAhD,CAAoD,CACnD,IAAIgL,IAAI,CAAG,IAAID,IAAJ,CAAS,CAAC,2CAAD,CAA8CF,EAAE,CAACtB,QAAH,EAA9C,CAAT,CAAuE,CAAElJ,IAAI,CAAE,iBAAR,CAAvE,CAAX,CACA;CACA,IAAI4K,GAAG,CAAGC,GAAG,CAACC,eAAJ,CAAoBH,IAApB,CAAV,CACA,WAAWF,MAAJ,CAAWG,GAAX,CAAP,CACA,CACDb,QAAQ,CAAGS,EAAX,CACA,OAAOP,WAAP,CACA,CAED,SAASc,WAAT,EAAuB,CACtB,GAAI,CAACf,cAAL,CAAqB,CACpBA,cAAc,CAAGO,YAAY,CAAC,SAASS,WAAT,CAAqBC,CAArB,CAAwB,CACrD,SAASC,mBAAT,EAA+B,CAC9B,SAASC,cAAT,CAAwBC,MAAxB,CAAgCC,KAAhC,CAAuC,CACtC,IAAIC,SAAJ,CACA,IAAIhL,CAAJ,CACA,IAAIC,GAAG,CAAG6K,MAAM,CAAC5K,MAAjB,CACA,IAAI+K,CAAJ,CACA,IAAIC,IAAJ,CACA,IAAIC,CAAJ,CACA,IAAIC,IAAJ,CACA,IAAKpL,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5BgL,SAAS,CAAGF,MAAM,CAAC9K,CAAD,CAAlB,CACA,GAAK,OAAQgL,SAAT,EAAuB,CAACA,SAAS,CAACK,SAAtC,CAAiD,CAChDL,SAAS,CAACK,SAAV,CAAsB,IAAtB,CACA,GAAIL,SAAS,CAACM,EAAd,CAAkB,CACjBR,MAAM,CAAC9K,CAAC,CAAG,CAAL,CAAN,CAAcuL,EAAd,CAAmBP,SAAS,CAACM,EAA7B,CACA,CACD,GAAIN,SAAS,CAACQ,OAAd,CAAuB,CACtB,IAAIC,SAAS,CAAGT,SAAS,CAACU,eAA1B,CACAR,IAAI,CAAGO,SAAS,CAACvL,MAAjB,CACA,IAAK+K,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,IAAhB,CAAsBD,CAAC,EAAI,CAA3B,CAA8B,CAC7B,GAAIQ,SAAS,CAACR,CAAD,CAAT,CAAaU,EAAb,CAAgBR,CAAhB,CAAkBnL,CAAtB,CAAyB,CACxB4L,4BAA4B,CAACH,SAAS,CAACR,CAAD,CAAT,CAAaU,EAAb,CAAgBR,CAAjB,CAA5B,CACA,CAFD,IAEO,CACNC,IAAI,CAAGK,SAAS,CAACR,CAAD,CAAT,CAAaU,EAAb,CAAgBR,CAAhB,CAAkBjL,MAAzB,CACA,IAAKiL,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,IAAhB,CAAsBD,CAAC,EAAI,CAA3B,CAA8B,CAC7B,GAAIM,SAAS,CAACR,CAAD,CAAT,CAAaU,EAAb,CAAgBR,CAAhB,CAAkBA,CAAlB,EAAqB3D,CAAzB,CAA4B,CAC3BoE,4BAA4B,CAACH,SAAS,CAACR,CAAD,CAAT,CAAaU,EAAb,CAAgBR,CAAhB,CAAkBA,CAAlB,EAAqB3D,CAArB,CAAuB,CAAvB,CAAD,CAA5B,CACA,CACD,GAAIiE,SAAS,CAACR,CAAD,CAAT,CAAaU,EAAb,CAAgBR,CAAhB,CAAkBA,CAAlB,EAAqBR,CAAzB,CAA4B,CAC3BiB,4BAA4B,CAACH,SAAS,CAACR,CAAD,CAAT,CAAaU,EAAb,CAAgBR,CAAhB,CAAkBA,CAAlB,EAAqBR,CAArB,CAAuB,CAAvB,CAAD,CAA5B,CACA,CACD,CACD,CACD,CACD,CACD,GAAIK,SAAS,CAACa,EAAV,GAAiB,CAArB,CAAwB,CACvBb,SAAS,CAACF,MAAV,CAAmBgB,cAAc,CAACd,SAAS,CAACe,KAAX,CAAkBhB,KAAlB,CAAjC,CACAF,cAAc,CAACG,SAAS,CAACF,MAAX,CAAmBC,KAAnB,CAAd,CACA,CAHD,QAGWC,SAAS,CAACa,EAAV,GAAiB,CAArB,CAAwB,CAC9BG,cAAc,CAAChB,SAAS,CAACiB,MAAX,CAAd,CACA,CAFM,QAEIjB,SAAS,CAACa,EAAV,GAAiB,CAArB,CAAwB,CAC9BK,YAAY,CAAClB,SAAD,CAAZ,CACA,CACD,CACD,CACD,CAED,SAASmB,aAAT,CAAuBC,KAAvB,CAA8BC,MAA9B,CAAsC,CACrC,GAAID,KAAJ,CAAW,CACV,IAAIpM,CAAC,CAAG,CAAR,CACA,IAAIC,GAAG,CAAGmM,KAAK,CAAClM,MAAhB,CACA,IAAKF,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B,GAAIoM,KAAK,CAACpM,CAAD,CAAL,CAASgI,CAAT,GAAe,CAAnB,CAAsB;CAErBoE,KAAK,CAACpM,CAAD,CAAL,CAAS+J,IAAT,CAAce,MAAd,CAAuBgB,cAAc,CAACM,KAAK,CAACpM,CAAD,CAAL,CAAS+J,IAAT,CAAcgC,KAAf,CAAsBM,MAAtB,CAArC,CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACAxB,cAAc,CAACuB,KAAK,CAACpM,CAAD,CAAL,CAAS+J,IAAT,CAAce,MAAf,CAAuBuB,MAAvB,CAAd,CACA,CACD,CACD,CACD,CAED,SAASC,QAAT,CAAkBC,EAAlB,CAAsBxB,KAAtB,CAA6B,CAC5B,IAAI/K,CAAC,CAAG,CAAR,CACA,IAAIC,GAAG,CAAG8K,KAAK,CAAC7K,MAAhB,CACA,MAAOF,CAAC,CAAGC,GAAX,CAAgB,CACf,GAAI8K,KAAK,CAAC/K,CAAD,CAAL,CAASuM,EAAT,GAAgBA,EAApB,CAAwB,CACvB,OAAOxB,KAAK,CAAC/K,CAAD,CAAZ,CACA,CACDA,CAAC,EAAI,CAAL,CACA,CACD,WAAA,CACA,CAED,SAAS8L,cAAT,CAAwBS,EAAxB,CAA4BxB,KAA5B,CAAmC,CAClC,IAAIyB,IAAI,CAAGF,QAAQ,CAACC,EAAD,CAAKxB,KAAL,CAAnB,CACA,GAAIyB,IAAJ,CAAU,CACT,GAAI,CAACA,IAAI,CAAC1B,MAAL,CAAY2B,MAAjB,CAAyB,CACxBD,IAAI,CAAC1B,MAAL,CAAY2B,MAAZ,CAAqB,IAArB,CACA,OAAOD,IAAI,CAAC1B,MAAZ,CACA,CACD,OAAO4B,IAAI,CAACC,KAAL,CAAWD,IAAI,CAACE,SAAL,CAAeJ,IAAI,CAAC1B,MAApB,CAAX,CAAP,CACA,CACD,WAAA,CACA,CAED,SAASkB,cAAT,CAAwBjJ,GAAxB,CAA6B,CAC5B,IAAI/C,CAAJ,CACA,IAAIC,GAAG,CAAG8C,GAAG,CAAC7C,MAAd,CACA,IAAI+K,CAAJ,CACA,IAAIC,IAAJ,CACA,IAAKlL,CAAC,CAAGC,GAAG,CAAG,CAAf,CAAkBD,CAAC,EAAI,CAAvB,CAA0BA,CAAC,EAAI,CAA/B,CAAkC,CACjC,GAAI+C,GAAG,CAAC/C,CAAD,CAAH,CAAO6L,EAAP,GAAc,IAAlB,CAAwB,CACvB,GAAI9I,GAAG,CAAC/C,CAAD,CAAH,CAAO6M,EAAP,CAAU1B,CAAV,CAAYnL,CAAhB,CAAmB,CAClB4L,4BAA4B,CAAC7I,GAAG,CAAC/C,CAAD,CAAH,CAAO6M,EAAP,CAAU1B,CAAX,CAA5B,CACA,CAFD,IAEO,CACND,IAAI,CAAGnI,GAAG,CAAC/C,CAAD,CAAH,CAAO6M,EAAP,CAAU1B,CAAV,CAAYjL,MAAnB,CACA,IAAK+K,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,IAAhB,CAAsBD,CAAC,EAAI,CAA3B,CAA8B,CAC7B,GAAIlI,GAAG,CAAC/C,CAAD,CAAH,CAAO6M,EAAP,CAAU1B,CAAV,CAAYF,CAAZ,EAAezD,CAAnB,CAAsB,CACrBoE,4BAA4B,CAAC7I,GAAG,CAAC/C,CAAD,CAAH,CAAO6M,EAAP,CAAU1B,CAAV,CAAYF,CAAZ,EAAezD,CAAf,CAAiB,CAAjB,CAAD,CAA5B,CACA,CACD,GAAIzE,GAAG,CAAC/C,CAAD,CAAH,CAAO6M,EAAP,CAAU1B,CAAV,CAAYF,CAAZ,EAAeN,CAAnB,CAAsB,CACrBiB,4BAA4B,CAAC7I,GAAG,CAAC/C,CAAD,CAAH,CAAO6M,EAAP,CAAU1B,CAAV,CAAYF,CAAZ,EAAeN,CAAf,CAAiB,CAAjB,CAAD,CAA5B,CACA,CACD,CACD,CACD,CAdD,QAcW5H,GAAG,CAAC/C,CAAD,CAAH,CAAO6L,EAAP,GAAc,IAAlB,CAAwB,CAC9BG,cAAc,CAACjJ,GAAG,CAAC/C,CAAD,CAAH,CAAO8M,EAAR,CAAd,CACA,CACD,CACD,CAED,SAASlB,4BAAT,CAAsC9B,IAAtC,CAA4C,CAC3C,IAAI9J,CAAJ,CACA,IAAIC,GAAG,CAAG6J,IAAI,CAAC9J,CAAL,CAAOE,MAAjB,CACA,IAAKF,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B8J,IAAI,CAAC9J,CAAL,CAAOA,CAAP,EAAU,CAAV,GAAgB8J,IAAI,CAACrC,CAAL,CAAOzH,CAAP,EAAU,CAAV,CAAhB,CACA8J,IAAI,CAAC9J,CAAL,CAAOA,CAAP,EAAU,CAAV,GAAgB8J,IAAI,CAACrC,CAAL,CAAOzH,CAAP,EAAU,CAAV,CAAhB,CACA8J,IAAI,CAACiD,CAAL,CAAO/M,CAAP,EAAU,CAAV,GAAgB8J,IAAI,CAACrC,CAAL,CAAOzH,CAAP,EAAU,CAAV,CAAhB,CACA8J,IAAI,CAACiD,CAAL,CAAO/M,CAAP,EAAU,CAAV,GAAgB8J,IAAI,CAACrC,CAAL,CAAOzH,CAAP,EAAU,CAAV,CAAhB,CACA,CACD,CAED,SAASgN,YAAT,CAAsBC,OAAtB,CAA+BC,iBAA/B,CAAkD,CACjD,IAAIC,WAAW,CAAGD,iBAAiB,CAAGA,iBAAiB,CAACE,KAAlB,CAAwB,GAAxB,CAAH,CAAkC,CAAC,GAAD,CAAM,GAAN,CAAW,GAAX,CAArE,CACA,GAAIH,OAAO,CAAC,CAAD,CAAP,CAAaE,WAAW,CAAC,CAAD,CAA5B,CAAiC,CAChC,WAAA,CACA,CAAC,GAAIA,WAAW,CAAC,CAAD,CAAX,CAAiBF,OAAO,CAAC,CAAD,CAA5B,CAAiC,CAClC,YAAA,CACA,CACD,GAAIA,OAAO,CAAC,CAAD,CAAP,CAAaE,WAAW,CAAC,CAAD,CAA5B,CAAiC,CAChC,WAAA,CACA,CAAC,GAAIA,WAAW,CAAC,CAAD,CAAX,CAAiBF,OAAO,CAAC,CAAD,CAA5B,CAAiC,CAClC,YAAA,CACA,CACD,GAAIA,OAAO,CAAC,CAAD,CAAP,CAAaE,WAAW,CAAC,CAAD,CAA5B,CAAiC,CAChC,WAAA,CACA,CAAC,GAAIA,WAAW,CAAC,CAAD,CAAX,CAAiBF,OAAO,CAAC,CAAD,CAA5B,CAAiC,CAClC,YAAA,CACA,CACD,WAAA,CACA,CAED,IAAII,SAAS,CAAI,UAAY,CAC5B,IAAIC,cAAc,CAAG,CAAC,CAAD,CAAI,CAAJ,CAAO,EAAP,CAArB,CAEA,SAASC,eAAT,CAAyBC,SAAzB,CAAoC,CACnC,IAAIC,YAAY,CAAGD,SAAS,CAACxF,CAAV,CAAYE,CAA/B,CACAsF,SAAS,CAACxF,CAAV,CAAYE,CAAZ,CAAgB,CACfiD,CAAC,CAAE,CACF,CACC3D,CAAC,CAAEiG,YADJ,CAECzF,CAAC,CAAE,CAFJ,CADE,CADY,CAAhB,CAQA,CAED,SAAS0F,aAAT,CAAuB5C,MAAvB,CAA+B,CAC9B,IAAI9K,CAAJ,CACA,IAAIC,GAAG,CAAG6K,MAAM,CAAC5K,MAAjB,CACA,IAAKF,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B,GAAI8K,MAAM,CAAC9K,CAAD,CAAN,CAAU6L,EAAV,GAAiB,CAArB,CAAwB,CACvB0B,eAAe,CAACzC,MAAM,CAAC9K,CAAD,CAAP,CAAf,CACA,CACD,CACD,CAED,gBAAiB2N,aAAV,CAAyB,CAC/B,GAAIX,YAAY,CAACM,cAAD,CAAiBK,aAAa,CAAClG,CAA/B,CAAhB,CAAmD,CAClDiG,aAAa,CAACC,aAAa,CAAC7C,MAAf,CAAb,CACA,GAAI6C,aAAa,CAACtB,MAAlB,CAA0B,CACzB,IAAIrM,CAAJ,CACA,IAAIC,GAAG,CAAG0N,aAAa,CAACtB,MAAd,CAAqBnM,MAA/B,CACA,IAAKF,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B,GAAI2N,aAAa,CAACtB,MAAd,CAAqBrM,CAArB,EAAwB8K,MAA5B,CAAoC,CACnC4C,aAAa,CAACC,aAAa,CAACtB,MAAd,CAAqBrM,CAArB,EAAwB8K,MAAzB,CAAb,CACA,CACD,CACD,CACD,CACD,CAbD,CAcA,CAvCgB,EAAjB,CAyCA,IAAI8C,UAAU,CAAI,UAAY,CAC7B,IAAIN,cAAc,CAAG,CAAC,CAAD,CAAI,CAAJ,CAAO,EAAP,CAArB,CACA,gBAAiBK,aAAV,CAAyB,CAC/B,GAAIA,aAAa,CAACvB,KAAd,EAAuB,CAACY,YAAY,CAACM,cAAD,CAAiBK,aAAa,CAAClG,CAA/B,CAAxC,CAA2E,CAC1E,IAAIzH,CAAJ,CACA,IAAIC,GAAG,CAAG0N,aAAa,CAACvB,KAAd,CAAoBlM,MAA9B,CACA,IAAKF,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B,IAAI6N,QAAQ,CAAGF,aAAa,CAACvB,KAAd,CAAoBpM,CAApB,CAAf,CACA,GAAI6N,QAAQ,CAAC9D,IAAT,EAAiB8D,QAAQ,CAAC9D,IAAT,CAAckC,MAAnC,CAA2C,CAC1CD,cAAc,CAAC6B,QAAQ,CAAC9D,IAAT,CAAckC,MAAf,CAAd,CACA4B,QAAQ,CAAC9D,IAAT,CAAc+D,EAAd,CAAmB,CAAnB,CACAD,QAAQ,CAAC9D,IAAT,CAAcgE,EAAd,CAAmB,KAAnB,CACAF,QAAQ,CAAC9D,IAAT,CAAciE,EAAd,CAAmB,CAAnB,CACAH,QAAQ,CAAC9D,IAAT,CAAckE,EAAd,CAAmB,CAAnB,CACAJ,QAAQ,CAAC9D,IAAT,CAAc8C,EAAd,CAAmB,CAClB/E,CAAC,CAAE,CAAEqD,CAAC,CAAE,CAAC,CAAD,CAAI,CAAJ,CAAL,CAAa+C,CAAC,CAAE,CAAhB,CADe,CAElB1G,CAAC,CAAE,CAAE2D,CAAC,CAAE,CAAC,GAAD,CAAM,GAAN,CAAL,CAAiB+C,CAAC,CAAE,CAApB,CAFe,CAGlBA,CAAC,CAAE,CAAE/C,CAAC,CAAE,CAAC,CAAD,CAAI,CAAJ,CAAL,CAAa+C,CAAC,CAAE,CAAhB,CAHe,CAIlBxG,CAAC,CAAE,CAAEyD,CAAC,CAAE,CAAL,CAAQ+C,CAAC,CAAE,CAAX,CAJe,CAKlBnB,CAAC,CAAE,CAAE5B,CAAC,CAAE,GAAL,CAAU+C,CAAC,CAAE,CAAb,CALe,CAAnB,CAOA,GAAI,CAACP,aAAa,CAACvB,KAAd,CAAoBpM,CAApB,EAAuBgI,CAA5B,CAA+B,CAC9B6F,QAAQ,CAAC9D,IAAT,CAAckC,MAAd,CAAqB1K,IAArB,CACC,CACCsK,EAAE,CAAE,IADL,CADD,EAKAgC,QAAQ,CAAC9D,IAAT,CAAckC,MAAd,CAAqB,CAArB,EAAwBa,EAAxB,CAA2BvL,IAA3B,CACC,CACCuG,CAAC,CAAE,CAAEqD,CAAC,CAAE,CAAC,CAAD,CAAI,CAAJ,CAAL,CAAa+C,CAAC,CAAE,CAAhB,CADJ,CAEC1G,CAAC,CAAE,CAAE2D,CAAC,CAAE,CAAC,GAAD,CAAM,GAAN,CAAL,CAAiB+C,CAAC,CAAE,CAApB,CAFJ,CAGCA,CAAC,CAAE,CAAE/C,CAAC,CAAE,CAAC,CAAD,CAAI,CAAJ,CAAL,CAAa+C,CAAC,CAAE,CAAhB,CAHJ,CAICxG,CAAC,CAAE,CAAEyD,CAAC,CAAE,CAAL,CAAQ+C,CAAC,CAAE,CAAX,CAJJ,CAKCnB,CAAC,CAAE,CAAE5B,CAAC,CAAE,GAAL,CAAU+C,CAAC,CAAE,CAAb,CALJ,CAMCC,EAAE,CAAE,CAAEhD,CAAC,CAAE,CAAL,CAAQ+C,CAAC,CAAE,CAAX,CANL,CAOCE,EAAE,CAAE,CAAEjD,CAAC,CAAE,CAAL,CAAQ+C,CAAC,CAAE,CAAX,CAPL,CAQCrC,EAAE,CAAE,IARL,CADD,EAYA,CACD,CACD,CACD,CACD,CAzCD,CA0CA,CA5CiB,EAAlB,CA8CA,IAAIwC,mBAAmB,CAAI,UAAY,CACtC,IAAIf,cAAc,CAAG,CAAC,CAAD,CAAI,CAAJ,CAAO,EAAP,CAArB,CAEA,SAASC,eAAT,CAAyBC,SAAzB,CAAoC,CACnC,IAAIc,QAAQ,CAAGd,SAAS,CAACxF,CAAV,CAAYF,CAA3B,CACA,GAAI,OAAOwG,QAAQ,CAACJ,CAAhB,GAAsB,QAA1B,CAAoC,CACnCI,QAAQ,CAACJ,CAAT,CAAa,CACZA,CAAC,CAAE,CADS,CAEZ/C,CAAC,CAAEmD,QAAQ,CAACJ,CAFA,CAAb,CAIA,CACD,GAAI,OAAOI,QAAQ,CAACxG,CAAhB,GAAsB,QAA1B,CAAoC,CACnCwG,QAAQ,CAACxG,CAAT,CAAa,CACZoG,CAAC,CAAE,CADS,CAEZ/C,CAAC,CAAEmD,QAAQ,CAACxG,CAFA,CAAb,CAIA,CACD,GAAI,OAAOwG,QAAQ,CAAC5G,CAAhB,GAAsB,QAA1B,CAAoC,CACnC4G,QAAQ,CAAC5G,CAAT,CAAa,CACZwG,CAAC,CAAE,CADS,CAEZ/C,CAAC,CAAEmD,QAAQ,CAAC5G,CAFA,CAAb,CAIA,CACD,CAED,SAASgG,aAAT,CAAuB5C,MAAvB,CAA+B,CAC9B,IAAI9K,CAAJ,CACA,IAAIC,GAAG,CAAG6K,MAAM,CAAC5K,MAAjB,CACA,IAAKF,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B,GAAI8K,MAAM,CAAC9K,CAAD,CAAN,CAAU6L,EAAV,GAAiB,CAArB,CAAwB,CACvB0B,eAAe,CAACzC,MAAM,CAAC9K,CAAD,CAAP,CAAf,CACA,CACD,CACD,CAED,gBAAiB2N,aAAV,CAAyB,CAC/B,GAAIX,YAAY,CAACM,cAAD,CAAiBK,aAAa,CAAClG,CAA/B,CAAhB,CAAmD,CAClDiG,aAAa,CAACC,aAAa,CAAC7C,MAAf,CAAb,CACA,GAAI6C,aAAa,CAACtB,MAAlB,CAA0B,CACzB,IAAIrM,CAAJ,CACA,IAAIC,GAAG,CAAG0N,aAAa,CAACtB,MAAd,CAAqBnM,MAA/B,CACA,IAAKF,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B,GAAI2N,aAAa,CAACtB,MAAd,CAAqBrM,CAArB,EAAwB8K,MAA5B,CAAoC,CACnC4C,aAAa,CAACC,aAAa,CAACtB,MAAd,CAAqBrM,CAArB,EAAwB8K,MAAzB,CAAb,CACA,CACD,CACD,CACD,CACD,CAbD,CAcA,CAjD0B,EAA3B,CAmDA,IAAIyD,WAAW,CAAI,UAAY,CAC9B,IAAIjB,cAAc,CAAG,CAAC,CAAD,CAAI,CAAJ,CAAO,CAAP,CAArB,CAEA,SAASkB,aAAT,CAAuBvC,MAAvB,CAA+B,CAC9B,IAAIjM,CAAJ,CACA,IAAIC,GAAG,CAAGgM,MAAM,CAAC/L,MAAjB,CACA,IAAI+K,CAAJ,CACA,IAAIC,IAAJ,CACA,IAAKlL,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B,GAAIiM,MAAM,CAACjM,CAAD,CAAN,CAAU6L,EAAV,GAAiB,IAArB,CAA2B,CAC1B2C,aAAa,CAACvC,MAAM,CAACjM,CAAD,CAAN,CAAU8M,EAAX,CAAb,CACA,CAFD,QAEWb,MAAM,CAACjM,CAAD,CAAN,CAAU6L,EAAV,GAAiB,IAAjB,EAAyBI,MAAM,CAACjM,CAAD,CAAN,CAAU6L,EAAV,GAAiB,IAA9C,CAAoD,CAC1D,GAAII,MAAM,CAACjM,CAAD,CAAN,CAAUyO,CAAV,CAAYtD,CAAZ,EAAiBc,MAAM,CAACjM,CAAD,CAAN,CAAUyO,CAAV,CAAYtD,CAAZ,CAAc,CAAd,EAAiBnL,CAAtC,CAAyC,CACxCkL,IAAI,CAAGe,MAAM,CAACjM,CAAD,CAAN,CAAUyO,CAAV,CAAYtD,CAAZ,CAAcjL,MAArB,CACA,IAAK+K,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,IAAhB,CAAsBD,CAAC,EAAI,CAA3B,CAA8B,CAC7B,GAAIgB,MAAM,CAACjM,CAAD,CAAN,CAAUyO,CAAV,CAAYtD,CAAZ,CAAcF,CAAd,EAAiBzD,CAArB,CAAwB,CACvByE,MAAM,CAACjM,CAAD,CAAN,CAAUyO,CAAV,CAAYtD,CAAZ,CAAcF,CAAd,EAAiBzD,CAAjB,CAAmB,CAAnB,GAAyB,GAAzB,CACAyE,MAAM,CAACjM,CAAD,CAAN,CAAUyO,CAAV,CAAYtD,CAAZ,CAAcF,CAAd,EAAiBzD,CAAjB,CAAmB,CAAnB,GAAyB,GAAzB,CACAyE,MAAM,CAACjM,CAAD,CAAN,CAAUyO,CAAV,CAAYtD,CAAZ,CAAcF,CAAd,EAAiBzD,CAAjB,CAAmB,CAAnB,GAAyB,GAAzB,CACAyE,MAAM,CAACjM,CAAD,CAAN,CAAUyO,CAAV,CAAYtD,CAAZ,CAAcF,CAAd,EAAiBzD,CAAjB,CAAmB,CAAnB,GAAyB,GAAzB,CACA,CACD,GAAIyE,MAAM,CAACjM,CAAD,CAAN,CAAUyO,CAAV,CAAYtD,CAAZ,CAAcF,CAAd,EAAiBN,CAArB,CAAwB,CACvBsB,MAAM,CAACjM,CAAD,CAAN,CAAUyO,CAAV,CAAYtD,CAAZ,CAAcF,CAAd,EAAiBN,CAAjB,CAAmB,CAAnB,GAAyB,GAAzB,CACAsB,MAAM,CAACjM,CAAD,CAAN,CAAUyO,CAAV,CAAYtD,CAAZ,CAAcF,CAAd,EAAiBN,CAAjB,CAAmB,CAAnB,GAAyB,GAAzB,CACAsB,MAAM,CAACjM,CAAD,CAAN,CAAUyO,CAAV,CAAYtD,CAAZ,CAAcF,CAAd,EAAiBN,CAAjB,CAAmB,CAAnB,GAAyB,GAAzB,CACAsB,MAAM,CAACjM,CAAD,CAAN,CAAUyO,CAAV,CAAYtD,CAAZ,CAAcF,CAAd,EAAiBN,CAAjB,CAAmB,CAAnB,GAAyB,GAAzB,CACA,CACD,CACD,CAhBD,IAgBO,CACNsB,MAAM,CAACjM,CAAD,CAAN,CAAUyO,CAAV,CAAYtD,CAAZ,CAAc,CAAd,GAAoB,GAApB,CACAc,MAAM,CAACjM,CAAD,CAAN,CAAUyO,CAAV,CAAYtD,CAAZ,CAAc,CAAd,GAAoB,GAApB,CACAc,MAAM,CAACjM,CAAD,CAAN,CAAUyO,CAAV,CAAYtD,CAAZ,CAAc,CAAd,GAAoB,GAApB,CACAc,MAAM,CAACjM,CAAD,CAAN,CAAUyO,CAAV,CAAYtD,CAAZ,CAAc,CAAd,GAAoB,GAApB,CACA,CACD,CACD,CACD,CAED,SAASuC,aAAT,CAAuB5C,MAAvB,CAA+B,CAC9B,IAAI9K,CAAJ,CACA,IAAIC,GAAG,CAAG6K,MAAM,CAAC5K,MAAjB,CACA,IAAKF,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B,GAAI8K,MAAM,CAAC9K,CAAD,CAAN,CAAU6L,EAAV,GAAiB,CAArB,CAAwB,CACvB2C,aAAa,CAAC1D,MAAM,CAAC9K,CAAD,CAAN,CAAUiM,MAAX,CAAb,CACA,CACD,CACD,CAED,gBAAiB0B,aAAV,CAAyB,CAC/B,GAAIX,YAAY,CAACM,cAAD,CAAiBK,aAAa,CAAClG,CAA/B,CAAhB,CAAmD,CAClDiG,aAAa,CAACC,aAAa,CAAC7C,MAAf,CAAb,CACA,GAAI6C,aAAa,CAACtB,MAAlB,CAA0B,CACzB,IAAIrM,CAAJ,CACA,IAAIC,GAAG,CAAG0N,aAAa,CAACtB,MAAd,CAAqBnM,MAA/B,CACA,IAAKF,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B,GAAI2N,aAAa,CAACtB,MAAd,CAAqBrM,CAArB,EAAwB8K,MAA5B,CAAoC,CACnC4C,aAAa,CAACC,aAAa,CAACtB,MAAd,CAAqBrM,CAArB,EAAwB8K,MAAzB,CAAb,CACA,CACD,CACD,CACD,CACD,CAbD,CAcA,CA9DkB,EAAnB,CAgEA,IAAI4D,WAAW,CAAI,UAAY,CAC9B,IAAIpB,cAAc,CAAG,CAAC,CAAD,CAAI,CAAJ,CAAO,EAAP,CAArB,CAEA,SAASqB,qBAAT,CAA+B5L,GAA/B,CAAoC,CACnC,IAAI/C,CAAJ,CACA,IAAIC,GAAG,CAAG8C,GAAG,CAAC7C,MAAd,CACA,IAAI+K,CAAJ,CACA,IAAIC,IAAJ,CACA,IAAKlL,CAAC,CAAGC,GAAG,CAAG,CAAf,CAAkBD,CAAC,EAAI,CAAvB,CAA0BA,CAAC,EAAI,CAA/B,CAAkC,CACjC,GAAI+C,GAAG,CAAC/C,CAAD,CAAH,CAAO6L,EAAP,GAAc,IAAlB,CAAwB,CACvB,GAAI9I,GAAG,CAAC/C,CAAD,CAAH,CAAO6M,EAAP,CAAU1B,CAAV,CAAYnL,CAAhB,CAAmB,CAClB+C,GAAG,CAAC/C,CAAD,CAAH,CAAO6M,EAAP,CAAU1B,CAAV,CAAYsD,CAAZ,CAAgB1L,GAAG,CAAC/C,CAAD,CAAH,CAAO4O,MAAvB,CACA,CAFD,IAEO,CACN1D,IAAI,CAAGnI,GAAG,CAAC/C,CAAD,CAAH,CAAO6M,EAAP,CAAU1B,CAAV,CAAYjL,MAAnB,CACA,IAAK+K,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,IAAhB,CAAsBD,CAAC,EAAI,CAA3B,CAA8B,CAC7B,GAAIlI,GAAG,CAAC/C,CAAD,CAAH,CAAO6M,EAAP,CAAU1B,CAAV,CAAYF,CAAZ,EAAezD,CAAnB,CAAsB,CACrBzE,GAAG,CAAC/C,CAAD,CAAH,CAAO6M,EAAP,CAAU1B,CAAV,CAAYF,CAAZ,EAAezD,CAAf,CAAiB,CAAjB,EAAoBiH,CAApB,CAAwB1L,GAAG,CAAC/C,CAAD,CAAH,CAAO4O,MAA/B,CACA,CACD,GAAI7L,GAAG,CAAC/C,CAAD,CAAH,CAAO6M,EAAP,CAAU1B,CAAV,CAAYF,CAAZ,EAAeN,CAAnB,CAAsB,CACrB5H,GAAG,CAAC/C,CAAD,CAAH,CAAO6M,EAAP,CAAU1B,CAAV,CAAYF,CAAZ,EAAeN,CAAf,CAAiB,CAAjB,EAAoB8D,CAApB,CAAwB1L,GAAG,CAAC/C,CAAD,CAAH,CAAO4O,MAA/B,CACA,CACD,CACD,CACD,CAdD,QAcW7L,GAAG,CAAC/C,CAAD,CAAH,CAAO6L,EAAP,GAAc,IAAlB,CAAwB,CAC9B8C,qBAAqB,CAAC5L,GAAG,CAAC/C,CAAD,CAAH,CAAO8M,EAAR,CAArB,CACA,CACD,CACD,CAED,SAASY,aAAT,CAAuB5C,MAAvB,CAA+B,CAC9B,IAAIE,SAAJ,CACA,IAAIhL,CAAJ,CACA,IAAIC,GAAG,CAAG6K,MAAM,CAAC5K,MAAjB,CACA,IAAI+K,CAAJ,CACA,IAAIC,IAAJ,CACA,IAAIC,CAAJ,CACA,IAAIC,IAAJ,CACA,IAAKpL,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5BgL,SAAS,CAAGF,MAAM,CAAC9K,CAAD,CAAlB,CACA,GAAIgL,SAAS,CAACQ,OAAd,CAAuB,CACtB,IAAIC,SAAS,CAAGT,SAAS,CAACU,eAA1B,CACAR,IAAI,CAAGO,SAAS,CAACvL,MAAjB,CACA,IAAK+K,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,IAAhB,CAAsBD,CAAC,EAAI,CAA3B,CAA8B,CAC7B,GAAIQ,SAAS,CAACR,CAAD,CAAT,CAAaU,EAAb,CAAgBR,CAAhB,CAAkBnL,CAAtB,CAAyB,CACxByL,SAAS,CAACR,CAAD,CAAT,CAAaU,EAAb,CAAgBR,CAAhB,CAAkBsD,CAAlB,CAAsBhD,SAAS,CAACR,CAAD,CAAT,CAAa4D,EAAnC,CACA,CAFD,IAEO,CACNzD,IAAI,CAAGK,SAAS,CAACR,CAAD,CAAT,CAAaU,EAAb,CAAgBR,CAAhB,CAAkBjL,MAAzB,CACA,IAAKiL,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,IAAhB,CAAsBD,CAAC,EAAI,CAA3B,CAA8B,CAC7B,GAAIM,SAAS,CAACR,CAAD,CAAT,CAAaU,EAAb,CAAgBR,CAAhB,CAAkBA,CAAlB,EAAqB3D,CAAzB,CAA4B,CAC3BiE,SAAS,CAACR,CAAD,CAAT,CAAaU,EAAb,CAAgBR,CAAhB,CAAkBA,CAAlB,EAAqB3D,CAArB,CAAuB,CAAvB,EAA0BiH,CAA1B,CAA8BhD,SAAS,CAACR,CAAD,CAAT,CAAa4D,EAA3C,CACA,CACD,GAAIpD,SAAS,CAACR,CAAD,CAAT,CAAaU,EAAb,CAAgBR,CAAhB,CAAkBA,CAAlB,EAAqBR,CAAzB,CAA4B,CAC3Bc,SAAS,CAACR,CAAD,CAAT,CAAaU,EAAb,CAAgBR,CAAhB,CAAkBA,CAAlB,EAAqBR,CAArB,CAAuB,CAAvB,EAA0B8D,CAA1B,CAA8BhD,SAAS,CAACR,CAAD,CAAT,CAAa4D,EAA3C,CACA,CACD,CACD,CACD,CACD,CACD,GAAI7D,SAAS,CAACa,EAAV,GAAiB,CAArB,CAAwB,CACvB8C,qBAAqB,CAAC3D,SAAS,CAACiB,MAAX,CAArB,CACA,CACD,CACD,CAED,gBAAiB0B,aAAV,CAAyB,CAC/B,GAAIX,YAAY,CAACM,cAAD,CAAiBK,aAAa,CAAClG,CAA/B,CAAhB,CAAmD,CAClDiG,aAAa,CAACC,aAAa,CAAC7C,MAAf,CAAb,CACA,GAAI6C,aAAa,CAACtB,MAAlB,CAA0B,CACzB,IAAIrM,CAAJ,CACA,IAAIC,GAAG,CAAG0N,aAAa,CAACtB,MAAd,CAAqBnM,MAA/B,CACA,IAAKF,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B,GAAI2N,aAAa,CAACtB,MAAd,CAAqBrM,CAArB,EAAwB8K,MAA5B,CAAoC,CACnC4C,aAAa,CAACC,aAAa,CAACtB,MAAd,CAAqBrM,CAArB,EAAwB8K,MAAzB,CAAb,CACA,CACD,CACD,CACD,CACD,CAbD,CAcA,CA9EkB,EAAnB,CAgFA,SAASgE,YAAT,CAAsBnB,aAAtB,CAAqC,CACpC,GAAIA,aAAa,CAACoB,UAAlB,CAA8B,CAC7B,OACA,CACDR,WAAW,CAACZ,aAAD,CAAX,CACAN,SAAS,CAACM,aAAD,CAAT,CACAC,UAAU,CAACD,aAAD,CAAV,CACAU,mBAAmB,CAACV,aAAD,CAAnB,CACAe,WAAW,CAACf,aAAD,CAAX,CACA9C,cAAc,CAAC8C,aAAa,CAAC7C,MAAf,CAAuB6C,aAAa,CAACtB,MAArC,CAAd,CACAF,aAAa,CAACwB,aAAa,CAACvB,KAAf,CAAsBuB,aAAa,CAACtB,MAApC,CAAb,CACAsB,aAAa,CAACoB,UAAd,CAA2B,IAA3B,CACA,CAED,SAAS7C,YAAT,CAAsBnC,IAAtB,CAA4B,CAC3B,GAAIA,IAAI,CAAC/B,CAAL,CAAOkG,CAAP,CAAShO,MAAT,GAAoB,CAApB,EAAyB,EAAE,MAAO6J,IAAI,CAAC/B,CAAL,CAAOF,CAAhB,CAA7B,CAAiD,CAGjD,CAED,IAAIkH,QAAQ,CAAG,EAAf,CACAA,QAAQ,CAACF,YAAT,CAAwBA,YAAxB,CACAE,QAAQ,CAACT,WAAT,CAAuBA,WAAvB,CACAS,QAAQ,CAACpB,UAAT,CAAsBA,UAAtB,CACAoB,QAAQ,CAACX,mBAAT,CAA+BA,mBAA/B,CACAW,QAAQ,CAACN,WAAT,CAAuBA,WAAvB,CACAM,QAAQ,CAACnE,cAAT,CAA0BA,cAA1B,CAEA,OAAOmE,QAAP,CACA,CACD,GAAI,CAAChF,WAAW,CAACV,WAAjB,CAA8B,CAC7BU,WAAW,CAACV,WAAZ,CAA0BsB,mBAAmB,EAA7C,CACA,CAED,GAAI,CAACZ,WAAW,CAACiF,WAAjB,CAA8B,CAC7BjF,WAAW,CAACiF,WAAZ,CAA2B,UAAY,CACtC,SAASC,cAAT,CAAwBC,GAAxB,CAA6B;CAE5B;CACA,IAAIC,iBAAiB,CAAGD,GAAG,CAACE,iBAAJ,CAAsB,cAAtB,CAAxB,CACA,GAAID,iBAAiB,EAAID,GAAG,CAACG,YAAJ,GAAqB,MAA1C,EAAoDF,iBAAiB,CAACG,OAAlB,CAA0B,MAA1B,IAAsC,CAAC,CAA/F,CAAkG,CACjG,OAAOJ,GAAG,CAACK,QAAX,CACA,CACD,GAAIL,GAAG,CAACK,QAAJ,EAAgB,OAAOL,GAAG,CAACK,QAAX,GAAwB,QAA5C,CAAsD,CACrD,OAAOL,GAAG,CAACK,QAAX,CACA,CAAC,GAAIL,GAAG,CAACK,QAAJ,EAAgB,OAAOL,GAAG,CAACK,QAAX,GAAwB,QAA5C,CAAsD,CACvD,OAAO9C,IAAI,CAACC,KAAL,CAAWwC,GAAG,CAACK,QAAf,CAAP,CACA,CAAC,GAAIL,GAAG,CAACM,YAAR,CAAsB,CACvB,OAAO/C,IAAI,CAACC,KAAL,CAAWwC,GAAG,CAACM,YAAf,CAAP,CACA,CACD,WAAA,CACA,CAED,SAASC,SAAT,CAAmB5F,IAAnB,CAAyB6F,QAAzB,CAAmCC,QAAnC,CAA6CC,aAA7C,CAA4D,CAC3D,IAAIL,QAAJ,CACA,IAAIL,GAAG,CAAG,IAAIW,cAAJ,EAAV,CACA;CACA,GAAI;CAEHX,GAAG,CAACG,YAAJ,CAAmB,MAAnB,CACA,CAAC,MAAOS,GAAP,CAAY,EAAG;CACjBZ,GAAG,CAACa,kBAAJ,CAAyB,UAAY,CACpC,GAAIb,GAAG,CAACc,UAAJ,GAAmB,CAAvB,CAA0B,CACzB,GAAId,GAAG,CAACe,MAAJ,GAAe,GAAnB,CAAwB,CACvBV,QAAQ,CAAGN,cAAc,CAACC,GAAD,CAAzB,CACAS,QAAQ,CAACJ,QAAD,CAAR,CACA,CAHD,IAGO,CACN,GAAI,CACHA,QAAQ,CAAGN,cAAc,CAACC,GAAD,CAAzB,CACAS,QAAQ,CAACJ,QAAD,CAAR,CACA,CAAC,MAAOO,GAAP,CAAY,CACb,GAAIF,aAAJ,CAAmB,CAClBA,aAAa,CAACE,GAAD,CAAb,CACA,CACD,CACD,CACD,CACD,CAhBD,CAiBA,GAAI,CACHZ,GAAG,CAACgB,IAAJ,CAAS,KAAT,CAAgBrG,IAAhB,CAAsB,IAAtB,EACA,CAAC,MAAOsG,KAAP,CAAc,CACfjB,GAAG,CAACgB,IAAJ,CAAS,KAAT,CAAgBR,QAAQ,CAAG,GAAX,CAAiB7F,IAAjC,CAAuC,IAAvC,EACA,CACDqF,GAAG,CAACkB,IAAJ,GACA,CACD,OAAO,CACNC,IAAI,CAAEZ,SADA,CAAP,CAGA,CArD0B,EAA3B,CAsDA,CAED,GAAI/E,CAAC,CAACZ,IAAF,CAAOrK,IAAP,GAAgB,eAApB,CAAqC,CACpCsK,WAAW,CAACiF,WAAZ,CAAwBqB,IAAxB,CACC3F,CAAC,CAACZ,IAAF,CAAOD,IADR,CAECa,CAAC,CAACZ,IAAF,CAAO4F,QAFR,CAGC,SAAU5F,IAAV,CAAgB,CACfC,WAAW,CAACV,WAAZ,CAAwBwF,YAAxB,CAAqC/E,IAArC,EACAC,WAAW,CAACH,WAAZ,CAAwB,CACvB0C,EAAE,CAAE5B,CAAC,CAACZ,IAAF,CAAOwC,EADY,CAEvBgE,OAAO,CAAExG,IAFc,CAGvBmG,MAAM,CAAE,SAHe,CAAxB,EAKA,CAVF,CAWC,UAAY,CACXlG,WAAW,CAACH,WAAZ,CAAwB,CACvB0C,EAAE,CAAE5B,CAAC,CAACZ,IAAF,CAAOwC,EADY,CAEvB2D,MAAM,CAAE,OAFe,CAAxB,EAIA,CAhBF,EAkBA,CAnBD,QAmBWvF,CAAC,CAACZ,IAAF,CAAOrK,IAAP,GAAgB,UAApB,CAAgC,CACtC,IAAI8Q,SAAS,CAAG7F,CAAC,CAACZ,IAAF,CAAOyG,SAAvB,CACAxG,WAAW,CAACV,WAAZ,CAAwBwF,YAAxB,CAAqC0B,SAArC,EACAxG,WAAW,CAACH,WAAZ,CAAwB,CACvB0C,EAAE,CAAE5B,CAAC,CAACZ,IAAF,CAAOwC,EADY,CAEvBgE,OAAO,CAAEC,SAFc,CAGvBN,MAAM,CAAE,SAHe,CAAxB,EAKA,CARM,QAQIvF,CAAC,CAACZ,IAAF,CAAOrK,IAAP,GAAgB,UAApB,CAAgC,CACtCsK,WAAW,CAACiF,WAAZ,CAAwBqB,IAAxB,CACC3F,CAAC,CAACZ,IAAF,CAAOD,IADR,CAECa,CAAC,CAACZ,IAAF,CAAO4F,QAFR,CAGC,SAAU5F,IAAV,CAAgB,CACfC,WAAW,CAACH,WAAZ,CAAwB,CACvB0C,EAAE,CAAE5B,CAAC,CAACZ,IAAF,CAAOwC,EADY,CAEvBgE,OAAO,CAAExG,IAFc,CAGvBmG,MAAM,CAAE,SAHe,CAAxB,EAKA,CATF,CAUC,UAAY,CACXlG,WAAW,CAACH,WAAZ,CAAwB,CACvB0C,EAAE,CAAE5B,CAAC,CAACZ,IAAF,CAAOwC,EADY,CAEvB2D,MAAM,CAAE,OAFe,CAAxB,EAIA,CAfF,EAiBA,CACD,CA9jB4B,CAA7B,CAgkBAxG,cAAc,CAACE,SAAf,CAA2B,SAAU6G,KAAV,CAAiB,CAC3C,IAAI1G,IAAI,CAAG0G,KAAK,CAAC1G,IAAjB,CACA,IAAIwC,EAAE,CAAGxC,IAAI,CAACwC,EAAd,CACA,IAAImE,OAAO,CAAGlH,SAAS,CAAC+C,EAAD,CAAvB,CACA/C,SAAS,CAAC+C,EAAD,CAAT,CAAgB,IAAhB,CACA,GAAIxC,IAAI,CAACmG,MAAL,GAAgB,SAApB,CAA+B,CAC9BQ,OAAO,CAACC,UAAR,CAAmB5G,IAAI,CAACwG,OAAxB,EACA,CAFD,QAEWG,OAAO,CAACE,OAAZ,CAAqB,CAC3BF,OAAO,CAACE,OAAR,GACA,CACD,CAVD,CAWA,CACD,CAED,SAASC,aAAT,CAAuBF,UAAvB,CAAmCC,OAAnC,CAA4C,CAC3CrH,UAAU,EAAI,CAAd,CACA,IAAIgD,EAAE,CAAG,aAAehD,UAAxB,CACAC,SAAS,CAAC+C,EAAD,CAAT,CAAgB,CACfoE,UAAU,CAAEA,UADG,CAEfC,OAAO,CAAEA,OAFM,CAAhB,CAIA,OAAOrE,EAAP,CACA,CAED,SAASuE,aAAT,CAAuBhH,IAAvB,CAA6B6G,UAA7B,CAAyCC,OAAzC,CAAkD,CACjDnG,WAAW,GACX,IAAIsG,SAAS,CAAGF,aAAa,CAACF,UAAD,CAAaC,OAAb,CAA7B,CACAlH,cAAc,CAACG,WAAf,CAA2B,CAC1BnK,IAAI,CAAE,eADoB,CAE1BoK,IAAI,CAAEA,IAFoB,CAG1B6F,QAAQ,CAAE7N,MAAM,CAACkP,QAAP,CAAgBC,MAAhB,CAAyBnP,MAAM,CAACkP,QAAP,CAAgBE,QAHzB,CAI1B3E,EAAE,CAAEwE,SAJsB,CAA3B,EAMA,CAED,SAASI,QAAT,CAAkBrH,IAAlB,CAAwB6G,UAAxB,CAAoCC,OAApC,CAA6C,CAC5CnG,WAAW,GACX,IAAIsG,SAAS,CAAGF,aAAa,CAACF,UAAD,CAAaC,OAAb,CAA7B,CACAlH,cAAc,CAACG,WAAf,CAA2B,CAC1BnK,IAAI,CAAE,UADoB,CAE1BoK,IAAI,CAAEA,IAFoB,CAG1B6F,QAAQ,CAAE7N,MAAM,CAACkP,QAAP,CAAgBC,MAAhB,CAAyBnP,MAAM,CAACkP,QAAP,CAAgBE,QAHzB,CAI1B3E,EAAE,CAAEwE,SAJsB,CAA3B,EAMA,CAED,SAASK,iBAAT,CAA2BC,IAA3B,CAAiCV,UAAjC,CAA6CC,OAA7C,CAAsD,CACrDnG,WAAW,GACX,IAAIsG,SAAS,CAAGF,aAAa,CAACF,UAAD,CAAaC,OAAb,CAA7B,CACAlH,cAAc,CAACG,WAAf,CAA2B,CAC1BnK,IAAI,CAAE,UADoB,CAE1B8Q,SAAS,CAAEa,IAFe,CAG1B9E,EAAE,CAAEwE,SAHsB,CAA3B,EAKA,CAED,OAAO,CACND,aAAa,CAAEA,aADT,CAENK,QAAQ,CAAEA,QAFJ,CAGNC,iBAAiB,CAAEA,iBAHb,CAAP,CAKA,CAhqBoB,EAArB,CAkqBA,MAAME,cAAc,CAAI,UAAY,CACnC,IAAIC,UAAU,CAAI,UAAY,CAC7B,IAAIC,MAAM,CAAG/R,SAAS,CAAC,QAAD,CAAtB,CACA+R,MAAM,CAACC,KAAP,CAAe,CAAf,CACAD,MAAM,CAACE,MAAP,CAAgB,CAAhB,CACA,IAAIC,GAAG,CAAGH,MAAM,CAACI,UAAP,CAAkB,IAAlB,CAAV,CACAD,GAAG,CAACE,SAAJ,CAAgB,eAAhB,CACAF,GAAG,CAACG,QAAJ,CAAa,CAAb,CAAgB,CAAhB,CAAmB,CAAnB,CAAsB,CAAtB,EACA,OAAON,MAAP,CACA,CARiB,EAAlB,CAUA,SAASO,WAAT,EAAuB,CACtB,KAAKC,YAAL,EAAqB,CAArB,CACA,GAAI,KAAKA,YAAL,GAAsB,KAAKC,WAA3B,EAA0C,KAAKC,mBAAL,GAA6B,KAAKC,aAAhF,CAA+F,CAC9F,GAAI,KAAKC,cAAT,CAAyB,CACxB,KAAKA,cAAL,CAAoB,IAApB,EACA,CACD,CACD,CACD,SAASC,aAAT,EAAyB,CACxB,KAAKH,mBAAL,EAA4B,CAA5B,CACA,GAAI,KAAKF,YAAL,GAAsB,KAAKC,WAA3B,EAA0C,KAAKC,mBAAL,GAA6B,KAAKC,aAAhF,CAA+F,CAC9F,GAAI,KAAKC,cAAT,CAAyB,CACxB,KAAKA,cAAL,CAAoB,IAApB,EACA,CACD,CACD,CAED,SAASE,aAAT,CAAuBC,SAAvB,CAAkCC,UAAlC,CAA8CC,YAA9C,CAA4D,CAC3D,IAAI3I,IAAI,CAAG,EAAX,CACA,GAAIyI,SAAS,CAAC5H,CAAd,CAAiB,CAChBb,IAAI,CAAGyI,SAAS,CAACzK,CAAjB,CACA,CAFD,QAEW0K,UAAJ,CAAgB,CACtB,IAAIE,SAAS,CAAGH,SAAS,CAACzK,CAA1B,CACA,GAAI4K,SAAS,CAACnD,OAAV,CAAkB,SAAlB,IAAiC,CAAC,CAAtC,CAAyC,CACxCmD,SAAS,CAAGA,SAAS,CAACtF,KAAV,CAAgB,GAAhB,EAAqB,CAArB,CAAZ,CACA,CACDtD,IAAI,CAAG0I,UAAU,CAAGE,SAApB,CACA,CANM,IAMA,CACN5I,IAAI,CAAG2I,YAAP,CACA3I,IAAI,EAAIyI,SAAS,CAACI,CAAV,CAAcJ,SAAS,CAACI,CAAxB,CAA4B,EAApC,CACA7I,IAAI,EAAIyI,SAAS,CAACzK,CAAlB,CACA,CACD,OAAOgC,IAAP,CACA,CAED,SAAS8I,eAAT,CAAyBC,GAAzB,CAA8B,CAC7B,IAAIzL,MAAM,CAAG,CAAb,CACA,IAAI0L,UAAU,CAAGC,WAAW,CAAC,UAAY,CACxC,IAAIC,GAAG,CAAGH,GAAG,CAACI,OAAJ,EAAV,CACA,GAAID,GAAG,CAACvB,KAAJ,EAAarK,MAAM,CAAG,GAA1B,CAA+B,CAC9B,KAAK8L,YAAL,GACAC,aAAa,CAACL,UAAD,CAAb,CACA,CACD1L,MAAM,EAAI,CAAV,CACA,CAP4B,CAO3BgM,IAP2B,CAOtB,IAPsB,CAAD,CAOd,EAPc,CAA5B,CAQA,CAED,SAASC,eAAT,CAAyBd,SAAzB,CAAoC,CACnC,IAAIzI,IAAI,CAAGwI,aAAa,CAACC,SAAD,CAAY,KAAKC,UAAjB,CAA6B,KAAK1I,IAAlC,CAAxB,CACA,IAAI+I,GAAG,CAAGzJ,QAAQ,CAAC,OAAD,CAAlB,CACA,GAAI1F,QAAJ,CAAc,CACb,KAAKkP,eAAL,CAAqBC,GAArB,EACA,CAFD,IAEO,CACNA,GAAG,CAACS,gBAAJ,CAAqB,MAArB,CAA6B,KAAKJ,YAAlC,CAAgD,KAAhD,EACA,CACDL,GAAG,CAACS,gBAAJ,CAAqB,OAArB,CAA8B,UAAY,CACzCC,EAAE,CAACV,GAAH,CAAStB,UAAT,CACA,KAAK2B,YAAL,GACA,CAH6B,CAG5BE,IAH4B,CAGvB,IAHuB,CAA9B,CAGc,KAHd,EAIAP,GAAG,CAACW,cAAJ,CAAmB,8BAAnB,CAAmD,MAAnD,CAA2D1J,IAA3D,EACA,GAAI,KAAK2J,cAAL,CAAoBC,MAAxB,CAAgC,CAC/B,KAAKD,cAAL,CAAoBC,MAApB,CAA2Bb,GAA3B,EACA,CAFD,IAEO,CACN,KAAKY,cAAL,CAAoBE,WAApB,CAAgCd,GAAhC,EACA,CACD,IAAIU,EAAE,CAAG,CACRV,GAAG,CAAEA,GADG,CAERN,SAAS,CAAEA,SAFH,CAAT,CAIA,OAAOgB,EAAP,CACA,CAED,SAASK,aAAT,CAAuBrB,SAAvB,CAAkC,CACjC,IAAIzI,IAAI,CAAGwI,aAAa,CAACC,SAAD,CAAY,KAAKC,UAAjB,CAA6B,KAAK1I,IAAlC,CAAxB,CACA,IAAI+I,GAAG,CAAGpT,SAAS,CAAC,KAAD,CAAnB,CACAoT,GAAG,CAACgB,WAAJ,CAAkB,WAAlB,CACAhB,GAAG,CAACS,gBAAJ,CAAqB,MAArB,CAA6B,KAAKJ,YAAlC,CAAgD,KAAhD,EACAL,GAAG,CAACS,gBAAJ,CAAqB,OAArB,CAA8B,UAAY,CACzCC,EAAE,CAACV,GAAH,CAAStB,UAAT,CACA,KAAK2B,YAAL,GACA,CAH6B,CAG5BE,IAH4B,CAGvB,IAHuB,CAA9B,CAGc,KAHd,EAIAP,GAAG,CAAC7Q,GAAJ,CAAU8H,IAAV,CACA,IAAIyJ,EAAE,CAAG,CACRV,GAAG,CAAEA,GADG,CAERN,SAAS,CAAEA,SAFH,CAAT,CAIA,OAAOgB,EAAP,CACA,CAED,SAASO,iBAAT,CAA2B/J,IAA3B,CAAiC,CAChC,IAAIwJ,EAAE,CAAG,CACRhB,SAAS,CAAExI,IADH,CAAT,CAGA,IAAID,IAAI,CAAGwI,aAAa,CAACvI,IAAD,CAAO,KAAKyI,UAAZ,CAAwB,KAAK1I,IAA7B,CAAxB,CACAR,WAAW,CAAC6H,QAAZ,CAAqBrH,IAArB,CAA2B,SAAUiK,WAAV,CAAuB,CACjDR,EAAE,CAACV,GAAH,CAASkB,WAAT,CACA,KAAKC,cAAL,GACA,CAH0B,CAGzBZ,IAHyB,CAGpB,IAHoB,CAA3B,CAGc,UAAY,CACzBG,EAAE,CAACV,GAAH,CAAS,EAAT,CACA,KAAKmB,cAAL,GACA,CAHa,CAGZZ,IAHY,CAGP,IAHO,CAHd,EAOA,OAAOG,EAAP,CACA,CAED,SAASU,UAAT,CAAoB5H,MAApB,CAA4B6H,EAA5B,CAAgC,CAC/B,KAAK9B,cAAL,CAAsB8B,EAAtB,CACA,IAAIlU,CAAJ,CACA,IAAIC,GAAG,CAAGoM,MAAM,CAACnM,MAAjB,CACA,IAAKF,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B,GAAI,CAACqM,MAAM,CAACrM,CAAD,CAAN,CAAU8K,MAAf,CAAuB,CACtB,GAAI,CAACuB,MAAM,CAACrM,CAAD,CAAN,CAAUgI,CAAX,EAAgBqE,MAAM,CAACrM,CAAD,CAAN,CAAUgI,CAAV,GAAgB,KAApC,CAA2C,CAC1C,KAAKiK,WAAL,EAAoB,CAApB,CACA,KAAKkC,MAAL,CAAY5S,IAAZ,CAAiB,KAAK6S,gBAAL,CAAsB/H,MAAM,CAACrM,CAAD,CAA5B,CAAjB,EACA,CAHD,QAGWqM,MAAM,CAACrM,CAAD,CAAN,CAAUgI,CAAV,GAAgB,CAApB,CAAuB,CAC7B,KAAKmK,aAAL,EAAsB,CAAtB,CACA,KAAKgC,MAAL,CAAY5S,IAAZ,CAAiB,KAAKuS,iBAAL,CAAuBzH,MAAM,CAACrM,CAAD,CAA7B,CAAjB,EACA,CACD,CACD,CACD,CAED,SAASqU,OAAT,CAAiBvK,IAAjB,CAAuB,CACtB,KAAKA,IAAL,CAAYA,IAAI,EAAI,EAApB,CACA,CAED,SAASwK,aAAT,CAAuBxK,IAAvB,CAA6B,CAC5B,KAAK0I,UAAL,CAAkB1I,IAAI,EAAI,EAA1B,CACA,CAED,SAASyK,QAAT,CAAkBhC,SAAlB,CAA6B,CAC5B,IAAIvS,CAAC,CAAG,CAAR,CACA,IAAIC,GAAG,CAAG,KAAKkU,MAAL,CAAYjU,MAAtB,CACA,MAAOF,CAAC,CAAGC,GAAX,CAAgB,CACf,GAAI,KAAKkU,MAAL,CAAYnU,CAAZ,EAAeuS,SAAf,GAA6BA,SAAjC,CAA4C,CAC3C,YAAY4B,MAAL,CAAYnU,CAAZ,EAAe6S,GAAtB,CACA,CACD7S,CAAC,EAAI,CAAL,CACA,CACD,WAAA,CACA,CAED,SAASwU,OAAT,EAAmB,CAClB,KAAKpC,cAAL,CAAsB,IAAtB,CACA,KAAK+B,MAAL,CAAYjU,MAAZ,CAAqB,CAArB,CACA,CAED,SAASuU,YAAT,EAAwB,CACvB,YAAYxC,WAAL,GAAqB,KAAKD,YAAjC,CACA,CAED,SAAS0C,cAAT,EAA0B,CACzB,YAAYvC,aAAL,GAAuB,KAAKD,mBAAnC,CACA,CAED,SAASyC,YAAT,CAAsBjV,IAAtB,CAA4BkV,aAA5B,CAA2C,CAC1C,GAAIlV,IAAI,GAAK,KAAb,CAAoB,CACnB,KAAK+T,cAAL,CAAsBmB,aAAtB,CACA,KAAKR,gBAAL,CAAwB,KAAKf,eAAL,CAAqBD,IAArB,CAA0B,IAA1B,CAAxB,CACA,CAHD,IAGO,CACN,KAAKgB,gBAAL,CAAwB,KAAKR,aAAL,CAAmBR,IAAnB,CAAwB,IAAxB,CAAxB,CACA,CACD,CAED,SAASyB,qBAAT,EAAiC,CAChC,KAAK3B,YAAL,CAAoBnB,WAAW,CAACqB,IAAZ,CAAiB,IAAjB,CAApB,CACA,KAAKY,cAAL,CAAsB3B,aAAa,CAACe,IAAd,CAAmB,IAAnB,CAAtB,CACA,KAAKR,eAAL,CAAuBA,eAAe,CAACQ,IAAhB,CAAqB,IAArB,CAAvB,CACA,KAAKU,iBAAL,CAAyBA,iBAAiB,CAACV,IAAlB,CAAuB,IAAvB,CAAzB,CACA,KAAKZ,UAAL,CAAkB,EAAlB,CACA,KAAK1I,IAAL,CAAY,EAAZ,CACA,KAAKmI,WAAL,CAAmB,CAAnB,CACA,KAAKE,aAAL,CAAqB,CAArB,CACA,KAAKH,YAAL,CAAoB,CAApB,CACA,KAAKE,mBAAL,CAA2B,CAA3B,CACA,KAAKE,cAAL,CAAsB,IAAtB,CACA,KAAK+B,MAAL,CAAc,EAAd,CACA,CAEDU,qBAAqB,CAACzU,SAAtB,CAAkC,CACjC6T,UAAU,CAAEA,UADqB,CAEjCK,aAAa,CAAEA,aAFkB,CAGjCD,OAAO,CAAEA,OAHwB,CAIjCI,YAAY,CAAEA,YAJmB,CAKjCC,cAAc,CAAEA,cALiB,CAMjCF,OAAO,CAAEA,OANwB,CAOjCD,QAAQ,CAAEA,QAPuB,CAQjCX,aAAa,CAAEA,aARkB,CASjCP,eAAe,CAAEA,eATgB,CAUjCtB,WAAW,CAAEA,WAVoB,CAWjCM,aAAa,CAAEA,aAXkB,CAYjCsC,YAAY,CAAEA,YAZmB,CAAlC,CAeA,OAAOE,qBAAP,CACA,CA7MuB,EAAxB,CA+MA,SAASC,SAAT,EAAqB,EACrBA,SAAS,CAAC1U,SAAV,CAAsB,CACrB2U,YAAY,CAAE,SAAUC,SAAV,CAAqBC,IAArB,CAA2B,CACxC,GAAI,KAAKC,IAAL,CAAUF,SAAV,CAAJ,CAA0B,CACzB,IAAIG,SAAS,CAAG,KAAKD,IAAL,CAAUF,SAAV,CAAhB,CACA,IAAK,IAAIhV,CAAC,CAAG,CAAb,CAAgBA,CAAC,CAAGmV,SAAS,CAACjV,MAA9B,CAAsCF,CAAC,EAAI,CAA3C,CAA8C,CAC7CmV,SAAS,CAACnV,CAAD,CAAT,CAAaiV,IAAb,EACA,CACD,CACD,CARoB,CASrB3B,gBAAgB,CAAE,SAAU0B,SAAV,CAAqBpF,QAArB,CAA+B,CAChD,GAAI,CAAC,KAAKsF,IAAL,CAAUF,SAAV,CAAL,CAA2B,CAC1B,KAAKE,IAAL,CAAUF,SAAV,EAAuB,EAAvB,CACA,CACD,KAAKE,IAAL,CAAUF,SAAV,EAAqBzT,IAArB,CAA0BqO,QAA1B,EAEA,iBAAmB,CAClB,KAAKwF,mBAAL,CAAyBJ,SAAzB,CAAoCpF,QAApC,EACA,CAFM,CAELwD,IAFK,CAEA,IAFA,CAAP,CAGA,CAlBoB,CAmBrBgC,mBAAmB,CAAE,SAAUJ,SAAV,CAAqBpF,QAArB,CAA+B,CACnD,GAAI,CAACA,QAAL,CAAe,CACd,KAAKsF,IAAL,CAAUF,SAAV,EAAuB,IAAvB,CACA,CAFD,QAEW,KAAKE,IAAL,CAAUF,SAAV,CAAJ,CAA0B,CAChC,IAAIhV,CAAC,CAAG,CAAR,CACA,IAAIC,GAAG,CAAG,KAAKiV,IAAL,CAAUF,SAAV,EAAqB9U,MAA/B,CACA,MAAOF,CAAC,CAAGC,GAAX,CAAgB,CACf,GAAI,KAAKiV,IAAL,CAAUF,SAAV,EAAqBhV,CAArB,IAA4B4P,QAAhC,CAA0C,CACzC,KAAKsF,IAAL,CAAUF,SAAV,EAAqBK,MAArB,CAA4BrV,CAA5B,CAA+B,CAA/B,EACAA,CAAC,EAAI,CAAL,CACAC,GAAG,EAAI,CAAP,CACA,CACDD,CAAC,EAAI,CAAL,CACA,CACD,GAAI,CAAC,KAAKkV,IAAL,CAAUF,SAAV,EAAqB9U,MAA1B,CAAkC,CACjC,KAAKgV,IAAL,CAAUF,SAAV,EAAuB,IAAvB,CACA,CACD,CACD,CArCoB,CAAtB,CAwCA,MAAMM,YAAY,CAEjB,UAAY,CACX,SAASC,iBAAT,CAA2BhF,OAA3B,CAAoC,CACnC,IAAIiF,KAAK,CAAGjF,OAAO,CAACnD,KAAR,CAAc,MAAd,CAAZ,CACA,IAAIqI,IAAI,CAAG,EAAX,CACA,IAAIC,IAAJ,CACA,IAAIC,SAAS,CAAG,CAAhB,CACA,IAAK,IAAI3V,CAAC,CAAG,CAAb,CAAgBA,CAAC,CAAGwV,KAAK,CAACtV,MAA1B,CAAkCF,CAAC,EAAI,CAAvC,CAA0C,CACzC0V,IAAI,CAAGF,KAAK,CAACxV,CAAD,CAAL,CAASoN,KAAT,CAAe,GAAf,CAAP,CACA,GAAIsI,IAAI,CAACxV,MAAL,GAAgB,CAApB,CAAuB,CACtBuV,IAAI,CAACC,IAAI,CAAC,CAAD,CAAL,CAAJ,CAAgBA,IAAI,CAAC,CAAD,CAAJ,CAAQE,IAAR,EAAhB,CACAD,SAAS,EAAI,CAAb,CACA,CACD,CACD,GAAIA,SAAS,GAAK,CAAlB,CAAqB,CACpB,UAAUE,KAAJ,EAAN,CACA,CACD,OAAOJ,IAAP,CACA,CAED,gBAAiBK,QAAV,CAAoB,CAC1B,IAAIC,OAAO,CAAG,EAAd,CACA,IAAK,IAAI/V,CAAC,CAAG,CAAb,CAAgBA,CAAC,CAAG8V,QAAQ,CAAC5V,MAA7B,CAAqCF,CAAC,EAAI,CAA1C,CAA6C,CAC5C,IAAIgW,OAAO,CAAGF,QAAQ,CAAC9V,CAAD,CAAtB,CACA,IAAIiW,UAAU,CAAG,CAChBC,IAAI,CAAEF,OAAO,CAACG,EADE,CAEhBC,QAAQ,CAAEJ,OAAO,CAACK,EAFF,CAAjB,CAIA,GAAI,CACHJ,UAAU,CAAC1F,OAAX,CAAqB7D,IAAI,CAACC,KAAL,CAAWmJ,QAAQ,CAAC9V,CAAD,CAAR,CAAYsW,EAAvB,CAArB,CACA,CAAC,MAAOC,CAAP,CAAU,CACX,GAAI,CACHN,UAAU,CAAC1F,OAAX,CAAqBgF,iBAAiB,CAACO,QAAQ,CAAC9V,CAAD,CAAR,CAAYsW,EAAb,CAAtC,CACA,CAAC,MAAOE,EAAP,CAAW,CACZP,UAAU,CAAC1F,OAAX,CAAqB,CACpBkG,IAAI,CAAEX,QAAQ,CAAC9V,CAAD,CAAR,CAAYsW,EADE,CAArB,CAGA,CACD,CACDP,OAAO,CAACxU,IAAR,CAAa0U,UAAb,EACA,CACD,OAAOF,OAAP,CACA,CAtBD,CAuBA,CA1CD,EAFD,CA8CA,MAAMW,gBAAgB,CAAI,UAAY,CACrC,SAASC,mBAAT,CAA6BnK,IAA7B,CAAmC,CAClC,KAAKoK,YAAL,CAAkBrV,IAAlB,CAAuBiL,IAAvB,EACA,CAED,iBAAmB,CAClB,SAASqK,oBAAT,CAA8BJ,IAA9B,CAAoC,CACnC,IAAIzW,CAAC,CAAG,CAAR,CACA,IAAIC,GAAG,CAAG,KAAK2W,YAAL,CAAkB1W,MAA5B,CACA,MAAOF,CAAC,CAAGC,GAAX,CAAgB,CACf,GAAI,KAAK2W,YAAL,CAAkB5W,CAAlB,EAAqB+J,IAArB,EAA6B,KAAK6M,YAAL,CAAkB5W,CAAlB,EAAqB+J,IAArB,CAA0B+M,EAA1B,GAAiCL,IAAlE,CAAwE,CACvE,GAAI,KAAKG,YAAL,CAAkB5W,CAAlB,EAAqB+W,YAArB,EAAqC,KAAKH,YAAL,CAAkB5W,CAAlB,EAAqB+J,IAArB,CAA0BiN,EAAnE,CAAuE,CACtE,KAAKJ,YAAL,CAAkB5W,CAAlB,EAAqB+W,YAArB,CAAkC,KAAKE,YAAvC,EACA,CACD,YAAYL,YAAL,CAAkB5W,CAAlB,EAAqBkX,aAA5B,CACA,CACDlX,CAAC,EAAI,CAAL,CACA,CACD,WAAA,CACA,CAED6W,oBAAoB,CAACD,YAArB,CAAoC,EAApC,CACAC,oBAAoB,CAACI,YAArB,CAAoC,CAApC,CAEAJ,oBAAoB,CAACF,mBAArB,CAA2CA,mBAA3C,CAEA,OAAOE,oBAAP,CACA,CAtBD,CAuBA,CA5ByB,EAA1B,CA8BA,MAAMM,SAAS,CAAG,EAAlB,CAEA,MAAMC,gBAAgB,CAAG,CAACC,GAAD,CAAM9X,KAAN,GAAgB,CACxC4X,SAAS,CAACE,GAAD,CAAT,CAAiB9X,KAAjB,CACA,CAFD,CAIA,SAAS+X,WAAT,CAAqBD,GAArB,CAA0B,CACzB,OAAOF,SAAS,CAACE,GAAD,CAAhB,CACA,CAED,MAAME,aAAa,CAAG,UAAY,CACjC,KAAKrC,IAAL,CAAY,EAAZ,CACA,KAAKuB,IAAL,CAAY,EAAZ,CACA,KAAK3M,IAAL,CAAY,EAAZ,CACA,KAAK0N,QAAL,CAAgB,KAAhB,CACA,KAAKP,YAAL,CAAoB,CAApB,CACA,KAAKQ,eAAL,CAAuB,CAAvB,CACA,KAAK7Q,UAAL,CAAkB,CAAlB,CACA,KAAKC,WAAL,CAAmB,CAAnB,CACA,KAAK6Q,SAAL,CAAiB,CAAjB,CACA,KAAKC,SAAL,CAAiB,CAAjB,CACA,KAAKC,SAAL,CAAiB,CAAjB,CACA,KAAKC,aAAL,CAAqB,CAArB,CACA,KAAKC,SAAL,CAAiB,CAAjB,CACA,KAAKnK,aAAL,CAAqB,EAArB,CACA,KAAKtB,MAAL,CAAc,EAAd,CACA,KAAK0L,QAAL,CAAgB,IAAhB,CACA,KAAKC,QAAL,CAAgB,KAAhB,CACA,KAAKC,IAAL,CAAY,IAAZ,CACA,KAAKC,QAAL,CAAgB,IAAhB,CACA,KAAKC,WAAL,CAAmBhR,eAAe,EAAlC,CACA,KAAKqL,UAAL,CAAkB,EAAlB,CACA,KAAK4F,aAAL,CAAqB,CAArB,CACA,KAAKC,UAAL,CAAkB,CAAlB,CACA,KAAKC,iBAAL,CAAyBxP,kBAAkB,EAA3C,CACA,KAAKyP,QAAL,CAAgB,EAAhB,CACA,KAAKC,KAAL,CAAa,IAAb,CACA,KAAKC,cAAL,CAAsB,KAAtB,CACA,KAAKC,gBAAL,CAAwBhC,gBAAgB,EAAxC,CACA,KAAKiC,cAAL,CAAsB,IAAIrH,cAAJ,EAAtB,CACA,KAAKsH,eAAL,CAAuB7X,sBAAsB,EAA7C,CACA,KAAKgV,OAAL,CAAe,EAAf,CACA,KAAK8C,eAAL,CAAuB,KAAKA,eAAL,CAAqBzF,IAArB,CAA0B,IAA1B,CAAvB,CACA,KAAK0F,YAAL,CAAoB,KAAKA,YAAL,CAAkB1F,IAAlB,CAAuB,IAAvB,CAApB,CACA,KAAK2F,iBAAL,CAAyB,KAAKA,iBAAL,CAAuB3F,IAAvB,CAA4B,IAA5B,CAAzB,CACA,KAAK4F,eAAL,CAAuB,IAAI9S,iBAAJ,CAAsB,YAAtB,CAAoC,CAApC,CAAuC,CAAvC,CAA0C,CAA1C,CAAvB,CACA,CApCD,CAsCArG,eAAe,CAAC,CAACiV,SAAD,CAAD,CAAcyC,aAAd,CAAf,CAEAA,aAAa,CAACnX,SAAd,CAAwB6Y,SAAxB,CAAoC,SAAUC,MAAV,CAAkB,CACrD,GAAIA,MAAM,CAACC,OAAP,EAAkBD,MAAM,CAACE,SAA7B,CAAwC,CACvC,KAAKD,OAAL,CAAeD,MAAM,CAACC,OAAP,EAAkBD,MAAM,CAACE,SAAxC,CACA,CACD,IAAIC,QAAQ,CAAG,KAAf,CACA,GAAIH,MAAM,CAACG,QAAX,CAAqB,CACpBA,QAAQ,CAAGH,MAAM,CAACG,QAAlB,CACA,CAFD,QAEWH,MAAM,CAAChB,QAAX,CAAqB,CAC3BmB,QAAQ,CAAGH,MAAM,CAAChB,QAAlB,CACA,CACD,MAAMoB,aAAa,CAAGhC,WAAW,CAAC+B,QAAD,CAAjC,CACA,KAAKnB,QAAL,CAAgB,IAAIoB,aAAJ,CAAkB,IAAlB,CAAwBJ,MAAM,CAACK,gBAA/B,CAAhB,CACA,KAAKZ,cAAL,CAAoBhE,YAApB,CAAiC0E,QAAjC,CAA2C,KAAKnB,QAAL,CAAcsB,UAAd,CAAyBC,IAApE,EACA,KAAKvB,QAAL,CAAcwB,mBAAd,CAAkC,KAAKhB,gBAAvC,EACA,KAAKW,QAAL,CAAgBA,QAAhB,CACA,GAAIH,MAAM,CAACjB,IAAP,GAAgB,EAAhB,EACAiB,MAAM,CAACjB,IAAP,GAAgB,IADhB,EAEAiB,MAAM,CAACjB,IAAP,GAAgB0B,SAFhB,EAGAT,MAAM,CAACjB,IAAP,GAAgB,IAHpB,CAG0B,CACzB,KAAKA,IAAL,CAAY,IAAZ,CACA,CALD,QAKWiB,MAAM,CAACjB,IAAP,GAAgB,KAApB,CAA2B,CACjC,KAAKA,IAAL,CAAY,KAAZ,CACA,CAFM,IAEA,CACN,KAAKA,IAAL,CAAY2B,QAAQ,CAACV,MAAM,CAACjB,IAAR,CAAc,EAAd,CAApB,CACA,CACD,KAAKD,QAAL,CAAgB,aAAckB,MAAd,CAAuBA,MAAM,CAAClB,QAA9B,CAAyC,IAAzD,CACA,KAAKvB,IAAL,CAAYyC,MAAM,CAACzC,IAAP,CAAcyC,MAAM,CAACzC,IAArB,CAA4B,EAAxC,CACA,KAAKoD,gBAAL,CAAwBvZ,MAAM,CAACF,SAAP,CAAiBG,cAAjB,CAAgCC,IAAhC,CAAqC0Y,MAArC,CAA6C,kBAA7C,EAAmEA,MAAM,CAACW,gBAA1E,CAA6F,IAArH,CACA,KAAKrH,UAAL,CAAkB0G,MAAM,CAAC1G,UAAzB,CACA,KAAKsH,cAAL,CAAsBZ,MAAM,CAACY,cAA7B,CACA,GAAIZ,MAAM,CAACjY,YAAX,CAAyB,CACxB,KAAK2X,eAAL,CAAqBrW,eAArB,CAAqC2W,MAAM,CAACjY,YAA5C,EACA,CACD,GAAIiY,MAAM,CAACvL,aAAX,CAA0B,CACzB,KAAKoM,cAAL,CAAoBb,MAAM,CAACvL,aAA3B,EACA,CAFD,QAEWuL,MAAM,CAACpP,IAAX,CAAiB,CACvB,GAAIoP,MAAM,CAACpP,IAAP,CAAYkQ,WAAZ,CAAwB,IAAxB,IAAkC,CAAC,CAAvC,CAA0C,CACzC,KAAKlQ,IAAL,CAAYoP,MAAM,CAACpP,IAAP,CAAYmQ,MAAZ,CAAmB,CAAnB,CAAsBf,MAAM,CAACpP,IAAP,CAAYkQ,WAAZ,CAAwB,IAAxB,EAAgC,CAAtD,CAAZ,CACA,CAFD,IAEO,CACN,KAAKlQ,IAAL,CAAYoP,MAAM,CAACpP,IAAP,CAAYmQ,MAAZ,CAAmB,CAAnB,CAAsBf,MAAM,CAACpP,IAAP,CAAYkQ,WAAZ,CAAwB,GAAxB,EAA+B,CAArD,CAAZ,CACA,CACD,KAAKE,QAAL,CAAgBhB,MAAM,CAACpP,IAAP,CAAYmQ,MAAZ,CAAmBf,MAAM,CAACpP,IAAP,CAAYkQ,WAAZ,CAAwB,GAAxB,EAA+B,CAAlD,CAAhB,CACA,KAAKE,QAAL,CAAgB,KAAKA,QAAL,CAAcD,MAAd,CAAqB,CAArB,CAAwB,KAAKC,QAAL,CAAcF,WAAd,CAA0B,OAA1B,CAAxB,CAAhB,CACA1Q,WAAW,CAACwH,aAAZ,CACCoI,MAAM,CAACpP,IADR,CAEC,KAAK+O,eAFN,CAGC,KAAKC,YAHN,EAKA,CACD,CAjDD,CAmDAvB,aAAa,CAACnX,SAAd,CAAwB0Y,YAAxB,CAAuC,UAAY,CAClD,KAAKqB,OAAL,CAAa,aAAb,EACA,CAFD,CAIA5C,aAAa,CAACnX,SAAd,CAAwB2Z,cAAxB,CAAyC,SAAUhQ,IAAV,CAAgB,CACxDT,WAAW,CAAC8H,iBAAZ,CACCrH,IADD,CAEC,KAAK8O,eAFN,EAIA,CALD,CAOAtB,aAAa,CAACnX,SAAd,CAAwBga,OAAxB,CAAkC,SAAUjB,OAAV,CAAmBxL,aAAnB,CAAkC,CACnE,GAAIA,aAAJ,CAAmB,CAClB,GAAI,OAAOA,aAAP,GAAyB,QAA7B,CAAuC,CACtCA,aAAa,CAAGjB,IAAI,CAACC,KAAL,CAAWgB,aAAX,CAAhB,CACA,CACD,CACD,IAAIuL,MAAM,CAAG,CACZC,OAAO,CAAEA,OADG,CAEZxL,aAAa,CAAEA,aAFH,CAAb,CAIA,IAAI0M,iBAAiB,CAAGlB,OAAO,CAACmB,UAAhC,CAEApB,MAAM,CAACpP,IAAP,CAAcuQ,iBAAiB,CAACE,YAAlB,CAA+B,qBAA/B,CAAsD;CAAtD,CACXF,iBAAiB,CAACE,YAAlB,CAA+B,qBAA/B,EAAsDhb,KAD3C,CAEX8a,iBAAiB,CAACE,YAAlB,CAA+B,cAA/B,CAA+C;CAA/C,CACCF,iBAAiB,CAACE,YAAlB,CAA+B,cAA/B,EAA+Chb,KADhD,CAEC8a,iBAAiB,CAACE,YAAlB,CAA+B,SAA/B,EACCF,iBAAiB,CAACE,YAAlB,CAA+B,SAA/B,EAA0Chb,KAD3C,CAEC,EANL,CAOA2Z,MAAM,CAACG,QAAP,CAAkBgB,iBAAiB,CAACE,YAAlB,CAA+B,gBAA/B,CAAiD;CAAjD,CACfF,iBAAiB,CAACE,YAAlB,CAA+B,gBAA/B,EAAiDhb,KADlC,CAEf8a,iBAAiB,CAACE,YAAlB,CAA+B,cAA/B,CAA+C;CAA/C,CACCF,iBAAiB,CAACE,YAAlB,CAA+B,cAA/B,EAA+Chb,KADhD,CAEC8a,iBAAiB,CAACE,YAAlB,CAA+B,SAA/B,CAA0C;CAA1C,CACCF,iBAAiB,CAACE,YAAlB,CAA+B,SAA/B,EAA0Chb,KAD3C,CAEC8a,iBAAiB,CAACE,YAAlB,CAA+B,kBAA/B,CAAmD;CAAnD,CACCF,iBAAiB,CAACE,YAAlB,CAA+B,kBAA/B,EAAmDhb,KADpD,CAEC8a,iBAAiB,CAACE,YAAlB,CAA+B,aAA/B,EACCF,iBAAiB,CAACE,YAAlB,CAA+B,aAA/B,EAA8Chb,KAD/C,CAEC,QAVP,CAYA,IAAI0Y,IAAI,CAAGoC,iBAAiB,CAACE,YAAlB,CAA+B,gBAA/B,CAAiD;CAAjD,CACRF,iBAAiB,CAACE,YAAlB,CAA+B,gBAA/B,EAAiDhb,KADzC,CAER8a,iBAAiB,CAACE,YAAlB,CAA+B,cAA/B,CAA+C;CAA/C,CACCF,iBAAiB,CAACE,YAAlB,CAA+B,cAA/B,EAA+Chb,KADhD,CAEC8a,iBAAiB,CAACE,YAAlB,CAA+B,SAA/B,EACCF,iBAAiB,CAACE,YAAlB,CAA+B,SAA/B,EAA0Chb,KAD3C,CAEC,EANL,CAOA,GAAI0Y,IAAI,GAAK,OAAb,CAAsB,CACrBiB,MAAM,CAACjB,IAAP,CAAc,KAAd,CACA,CAFD,QAEWA,IAAI,GAAK,MAAb,CAAqB,CAC3BiB,MAAM,CAACjB,IAAP,CAAc,IAAd,CACA,CAFM,QAEIA,IAAI,GAAK,EAAb,CAAiB,CACvBiB,MAAM,CAACjB,IAAP,CAAc2B,QAAQ,CAAC3B,IAAD,CAAO,EAAP,CAAtB,CACA,CACD,IAAID,QAAQ,CAAGqC,iBAAiB,CAACE,YAAlB,CAA+B,oBAA/B,CAAqD;CAArD,CACZF,iBAAiB,CAACE,YAAlB,CAA+B,oBAA/B,EAAqDhb,KADzC,CAEZ8a,iBAAiB,CAACE,YAAlB,CAA+B,kBAA/B,CAAmD;CAAnD,CACCF,iBAAiB,CAACE,YAAlB,CAA+B,kBAA/B,EAAmDhb,KADpD,CAEC8a,iBAAiB,CAACE,YAAlB,CAA+B,aAA/B,EACCF,iBAAiB,CAACE,YAAlB,CAA+B,aAA/B,EAA8Chb,KAD/C,CAEC,IANL,CAOA2Z,MAAM,CAAClB,QAAP,CAAkBA,QAAQ,GAAK,OAA/B,CAEAkB,MAAM,CAACzC,IAAP,CAAc4D,iBAAiB,CAACE,YAAlB,CAA+B,WAA/B,CAA4C;CAA5C,CACXF,iBAAiB,CAACE,YAAlB,CAA+B,WAA/B,EAA4Chb,KADjC,CAEX8a,iBAAiB,CAACE,YAAlB,CAA+B,cAA/B,CAA+C;CAA/C,CACCF,iBAAiB,CAACE,YAAlB,CAA+B,cAA/B,EAA+Chb,KADhD,CAEC8a,iBAAiB,CAACE,YAAlB,CAA+B,SAA/B,EACCF,iBAAiB,CAACE,YAAlB,CAA+B,SAA/B,EAA0Chb,KAD3C,CAEC,EANL,CAOA,IAAIib,SAAS,CAAGH,iBAAiB,CAACE,YAAlB,CAA+B,qBAA/B,CAAsD;CAAtD,CACbF,iBAAiB,CAACE,YAAlB,CAA+B,qBAA/B,EAAsDhb,KADzC,CAEb8a,iBAAiB,CAACE,YAAlB,CAA+B,mBAA/B,CAAoD;CAApD,CACCF,iBAAiB,CAACE,YAAlB,CAA+B,mBAA/B,EAAoDhb,KADrD,CAEC8a,iBAAiB,CAACE,YAAlB,CAA+B,cAA/B,EACCF,iBAAiB,CAACE,YAAlB,CAA+B,cAA/B,EAA+Chb,KADhD,CAEC,EANL,CAQA,GAAIib,SAAS,GAAK,OAAlB,CAA2B,CAC1BtB,MAAM,CAACsB,SAAP,CAAmB,KAAnB,CACA,CACD,KAAKvB,SAAL,CAAeC,MAAf,EACA,CAzED,CA2EA3B,aAAa,CAACnX,SAAd,CAAwBqa,aAAxB,CAAwC,SAAU1Q,IAAV,CAAgB,CACvD,GAAIA,IAAI,CAACgE,EAAL,CAAU,KAAKJ,aAAL,CAAmBI,EAAjC,CAAqC,CACpC,KAAKJ,aAAL,CAAmBI,EAAnB,CAAwBhE,IAAI,CAACgE,EAA7B,CACA,KAAKlH,WAAL,CAAmB9C,IAAI,CAACK,KAAL,CAAW2F,IAAI,CAACgE,EAAL,CAAU,KAAKJ,aAAL,CAAmBG,EAAxC,CAAnB,CACA,CACD,IAAIhD,MAAM,CAAG,KAAK6C,aAAL,CAAmB7C,MAAhC,CACA,IAAI9K,CAAJ,CACA,IAAIC,GAAG,CAAG6K,MAAM,CAAC5K,MAAjB,CACA,IAAIwa,SAAS,CAAG3Q,IAAI,CAACe,MAArB,CACA,IAAIG,CAAJ,CACA,IAAIC,IAAI,CAAGwP,SAAS,CAACxa,MAArB,CACA,IAAK+K,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,IAAhB,CAAsBD,CAAC,EAAI,CAA3B,CAA8B,CAC7BjL,CAAC,CAAG,CAAJ,CACA,MAAOA,CAAC,CAAGC,GAAX,CAAgB,CACf,GAAI6K,MAAM,CAAC9K,CAAD,CAAN,CAAUuM,EAAV,GAAiBmO,SAAS,CAACzP,CAAD,CAAT,CAAasB,EAAlC,CAAsC,CACrCzB,MAAM,CAAC9K,CAAD,CAAN,CAAY0a,SAAS,CAACzP,CAAD,CAArB,CACA,MACA,CACDjL,CAAC,EAAI,CAAL,CACA,CACD,CACD,GAAI+J,IAAI,CAACqC,KAAL,EAAcrC,IAAI,CAAC4Q,KAAvB,CAA8B,CAC7B,KAAKzC,QAAL,CAAcsB,UAAd,CAAyBoB,WAAzB,CAAqCC,QAArC,CAA8C9Q,IAAI,CAACqC,KAAnD,EACA,KAAK8L,QAAL,CAAcsB,UAAd,CAAyBoB,WAAzB,CAAqCE,QAArC,CAA8C/Q,IAAI,CAAC4Q,KAAnD,CAA0D,KAAKzC,QAAL,CAAcsB,UAAd,CAAyBC,IAAnF,EACA,CACD,GAAI1P,IAAI,CAACsC,MAAT,CAAiB,CAChBpM,GAAG,CAAG8J,IAAI,CAACsC,MAAL,CAAYnM,MAAlB,CACA,IAAKF,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B,KAAK2N,aAAL,CAAmBtB,MAAnB,CAA0B9K,IAA1B,CAA+BwI,IAAI,CAACsC,MAAL,CAAYrM,CAAZ,CAA/B,EACA,CACD,CACD,KAAK2N,aAAL,CAAmBoB,UAAnB,CAAgC,KAAhC,CACAzF,WAAW,CAAC8H,iBAAZ,CACC,KAAKzD,aADN,CAEC,KAAKoL,iBAFN,EAIA,CApCD,CAsCAxB,aAAa,CAACnX,SAAd,CAAwB2Y,iBAAxB,CAA4C,SAAUhP,IAAV,CAAgB,CAC3D,KAAK4D,aAAL,CAAqB5D,IAArB,CACA,IAAIvG,iBAAiB,CAAGwF,oBAAoB,EAA5C,CACA,GAAIxF,iBAAJ,CAAuB,CACtBA,iBAAiB,CAACuX,eAAlB,CAAkC,IAAlC,EACA,CACD,KAAKC,eAAL,GACA,CAPD,CASAzD,aAAa,CAACnX,SAAd,CAAwB4a,eAAxB,CAA0C,UAAY,CACrD,IAAIzC,QAAQ,CAAG,KAAK5K,aAAL,CAAmB4K,QAAlC,CACA,GAAI,CAACA,QAAD,EAAaA,QAAQ,CAACrY,MAAT,GAAoB,CAAjC,EAAsC,CAAC,KAAK2Z,gBAAhD,CAAkE,CACjE,KAAKM,OAAL,CAAa,YAAb,EACA,KAAK/B,aAAL,CAAqB,KAAKvR,WAA1B,CACA,OACA,CACD,IAAIoU,OAAO,CAAG1C,QAAQ,CAAC2C,KAAT,EAAd,CACA,KAAK9C,aAAL,CAAqB6C,OAAO,CAAC/E,IAAR,CAAe,KAAKwB,SAAzC,CACA,IAAIyD,WAAW,CAAG,KAAKrR,IAAL,CAAY,KAAKoQ,QAAjB,CAA4B,GAA5B,CAAkC,KAAK7B,UAAvC,CAAoD,OAAtE,CACA,KAAKA,UAAL,EAAmB,CAAnB,CACA/O,WAAW,CAAC6H,QAAZ,CAAqBgK,WAArB,CAAkC,KAAKV,aAAL,CAAmBrH,IAAnB,CAAwB,IAAxB,CAAlC,CAAiE,UAAY,CAC5E,KAAK+G,OAAL,CAAa,aAAb,EACA,CAFgE,CAE/D/G,IAF+D,CAE1D,IAF0D,CAAjE,EAGA,CAdD,CAgBAmE,aAAa,CAACnX,SAAd,CAAwBgb,YAAxB,CAAuC,UAAY,CAClD,IAAI7C,QAAQ,CAAG,KAAK5K,aAAL,CAAmB4K,QAAlC,CACA,GAAI,CAACA,QAAL,CAAe,CACd,KAAKH,aAAL,CAAqB,KAAKvR,WAA1B,CACA,CACD,KAAKmU,eAAL,GACA,CAND,CAQAzD,aAAa,CAACnX,SAAd,CAAwBib,YAAxB,CAAuC,UAAY,CAClD,KAAKlB,OAAL,CAAa,eAAb,EACA,KAAKmB,WAAL,GACA,CAHD,CAKA/D,aAAa,CAACnX,SAAd,CAAwBmb,aAAxB,CAAwC,UAAY,CACnD,KAAK5C,cAAL,CAAoBrE,aAApB,CAAkC,KAAK9B,UAAvC,EACA,KAAKmG,cAAL,CAAoBtE,OAApB,CAA4B,KAAKvK,IAAjC,EACA,KAAK6O,cAAL,CAAoB1E,UAApB,CAA+B,KAAKtG,aAAL,CAAmBtB,MAAlD,CAA0D,KAAKgP,YAAL,CAAkBjI,IAAlB,CAAuB,IAAvB,CAA1D,EACA,CAJD,CAMAmE,aAAa,CAACnX,SAAd,CAAwByY,eAAxB,CAA0C,SAAU2C,QAAV,CAAoB,CAC7D,GAAI,CAAC,KAAKtD,QAAV,CAAoB,CACnB,OACA,CACD,GAAI,CACH,KAAKvK,aAAL,CAAqB6N,QAArB,CACA,GAAI,KAAK1B,cAAT,CAAyB,CACxB,KAAKjT,WAAL,CAAmB9C,IAAI,CAACK,KAAL,CAAW,KAAK0V,cAAL,CAAoB,CAApB,EAAyB,KAAKA,cAAL,CAAoB,CAApB,CAApC,CAAnB,CACA,KAAKlT,UAAL,CAAkB7C,IAAI,CAAC0X,KAAL,CAAW,KAAK3B,cAAL,CAAoB,CAApB,CAAX,CAAlB,CACA,CAHD,IAGO,CACN,KAAKjT,WAAL,CAAmB9C,IAAI,CAACK,KAAL,CAAW,KAAKuJ,aAAL,CAAmBI,EAAnB,CAAwB,KAAKJ,aAAL,CAAmBG,EAAtD,CAAnB,CACA,KAAKlH,UAAL,CAAkB7C,IAAI,CAAC0X,KAAL,CAAW,KAAK9N,aAAL,CAAmBG,EAA9B,CAAlB,CACA,CACD,KAAKoK,QAAL,CAAcW,eAAd,CAA8B2C,QAA9B,EACA,GAAI,CAACA,QAAQ,CAACnP,MAAd,CAAsB,CACrBmP,QAAQ,CAACnP,MAAT,CAAkB,EAAlB,CACA,CAED,KAAKA,MAAL,CAAc,KAAKsB,aAAL,CAAmBtB,MAAjC,CACA,KAAKqL,SAAL,CAAiB,KAAK/J,aAAL,CAAmB+N,EAApC,CACA,KAAK/D,SAAL,CAAiB,KAAKhK,aAAL,CAAmB+N,EAAnB,CAAwB,IAAzC,CACA,KAAKxD,QAAL,CAAcyD,uBAAd,CAAsCH,QAAQ,CAACnP,MAA/C,EACA,KAAK0J,OAAL,CAAeT,YAAY,CAACkG,QAAQ,CAACzF,OAAT,EAAoB,EAArB,CAA3B,CACA,KAAKoE,OAAL,CAAa,cAAb,EACA,KAAKoB,aAAL,GACA,KAAKH,YAAL,GACA,KAAKQ,iBAAL,GACA,KAAKC,kBAAL,GACA,GAAI,KAAK9D,QAAT,CAAmB,CAClB,KAAKa,eAAL,CAAqBpX,KAArB,GACA,CACD,CAAC,MAAO4O,KAAP,CAAc,CACf,KAAK0L,kBAAL,CAAwB1L,KAAxB,EACA,CACD,CAlCD,CAoCAmH,aAAa,CAACnX,SAAd,CAAwByb,kBAAxB,CAA6C,UAAY,CACxD,GAAI,CAAC,KAAK3D,QAAV,CAAoB,CACnB,OACA,CACD,GAAI,KAAKA,QAAL,CAAcsB,UAAd,CAAyBoB,WAAzB,CAAqCpD,QAAzC,CAAmD,CAClD,KAAK8D,WAAL,GACA,CAFD,IAEO,CACNS,UAAU,CAAC,KAAKF,kBAAL,CAAwBzI,IAAxB,CAA6B,IAA7B,CAAD,CAAqC,EAArC,CAAV,CACA,CACD,CATD,CAWAmE,aAAa,CAACnX,SAAd,CAAwBkb,WAAxB,CAAsC,UAAY,CACjD,GAAI,CAAC,KAAK9D,QAAN,EACA,KAAKU,QAAL,CAAcsB,UAAd,CAAyBoB,WAAzB,CAAqCpD,QADrC,GAEC,KAAKmB,cAAL,CAAoBlE,YAApB,IAAsC,KAAKyD,QAAL,CAAc8D,YAAd,GAA+B,QAFtE,GAGC,KAAKrD,cAAL,CAAoBjE,cAApB,EAHL,CAIE,CACD,KAAK8C,QAAL,CAAgB,IAAhB,CACA,IAAIhU,iBAAiB,CAAGwF,oBAAoB,EAA5C,CACA,GAAIxF,iBAAJ,CAAuB,CACtBA,iBAAiB,CAACuX,eAAlB,CAAkC,IAAlC,EACA,CACD,KAAK7C,QAAL,CAAc+D,SAAd,GACAF,UAAU,CAAC,UAAY,CACtB,KAAK5B,OAAL,CAAa,WAAb,EACA,CAFU,CAET/G,IAFS,CAEJ,IAFI,CAAD,CAEI,CAFJ,CAAV,CAGA,KAAK8I,SAAL,GACA,GAAI,KAAKlE,QAAT,CAAmB,CAClB,KAAK9V,IAAL,GACA,CACD,CACD,CApBD,CAsBAqV,aAAa,CAACnX,SAAd,CAAwB+b,MAAxB,CAAiC,UAAY,CAC5C,KAAKjE,QAAL,CAAckE,mBAAd,GACA,CAFD,CAIA7E,aAAa,CAACnX,SAAd,CAAwBic,WAAxB,CAAsC,SAAUjd,IAAV,CAAgB,CACrD,KAAKkZ,iBAAL,CAAyB,CAAC,CAAClZ,IAA3B,CACA,CAFD,CAIAmY,aAAa,CAACnX,SAAd,CAAwB8b,SAAxB,CAAoC,UAAY,CAC/C,KAAKjF,YAAL,CAAoB,KAAKqB,iBAAL,CAAyB,KAAKb,eAA9B,CAAgD,CAAC,CAAC,KAAKA,eAA3E,CAA4F;CAE5F,GAAI,KAAKW,aAAL,GAAuB,KAAKvR,WAA5B,EAA2C,KAAKoQ,YAAL,CAAoB,KAAKmB,aAAxE,CAAuF,CACtF,KAAKnB,YAAL,CAAoB,KAAKmB,aAAzB,CACA,CACD,KAAK+B,OAAL,CAAa,YAAb,EACA,KAAKmC,WAAL,GACA,KAAKnC,OAAL,CAAa,YAAb,EACA,CATD,CAWA5C,aAAa,CAACnX,SAAd,CAAwBkc,WAAxB,CAAsC,UAAY,CACjD,GAAI,KAAK9E,QAAL,GAAkB,KAAlB,EAA2B,CAAC,KAAKU,QAArC,CAA+C,CAC9C,OACA,CACD,GAAI,CACH,KAAKA,QAAL,CAAcoE,WAAd,CAA0B,KAAKrF,YAAL,CAAoB,KAAKrQ,UAAnD,EACA,CAAC,MAAOwJ,KAAP,CAAc,CACf,KAAKmM,uBAAL,CAA6BnM,KAA7B,EACA,CACD,CATD,CAWAmH,aAAa,CAACnX,SAAd,CAAwB8B,IAAxB,CAA+B,SAAUuU,IAAV,CAAgB,CAC9C,GAAIA,IAAI,EAAI,KAAKA,IAAL,GAAcA,IAA1B,CAAgC,CAC/B,OACA,CACD,GAAI,KAAKsB,QAAL,GAAkB,IAAtB,CAA4B,CAC3B,KAAKA,QAAL,CAAgB,KAAhB,CACA,KAAKoC,OAAL,CAAa,QAAb,EACA,KAAKvB,eAAL,CAAqBnX,MAArB,GACA,GAAI,KAAK+W,KAAT,CAAgB,CACf,KAAKA,KAAL,CAAa,KAAb,CACA,KAAK2B,OAAL,CAAa,SAAb,EACA,CACD,CACD,CAbD,CAeA5C,aAAa,CAACnX,SAAd,CAAwBoB,KAAxB,CAAgC,SAAUiV,IAAV,CAAgB,CAC/C,GAAIA,IAAI,EAAI,KAAKA,IAAL,GAAcA,IAA1B,CAAgC,CAC/B,OACA,CACD,GAAI,KAAKsB,QAAL,GAAkB,KAAtB,CAA6B,CAC5B,KAAKA,QAAL,CAAgB,IAAhB,CACA,KAAKoC,OAAL,CAAa,OAAb,EACA,KAAK3B,KAAL,CAAa,IAAb,CACA,KAAK2B,OAAL,CAAa,OAAb,EACA,KAAKvB,eAAL,CAAqBpX,KAArB,GACA,CACD,CAXD,CAaA+V,aAAa,CAACnX,SAAd,CAAwBoc,WAAxB,CAAsC,SAAU/F,IAAV,CAAgB,CACrD,GAAIA,IAAI,EAAI,KAAKA,IAAL,GAAcA,IAA1B,CAAgC,CAC/B,OACA,CACD,GAAI,KAAKsB,QAAL,GAAkB,IAAtB,CAA4B,CAC3B,KAAK7V,IAAL,GACA,CAFD,IAEO,CACN,KAAKV,KAAL,GACA,CACD,CATD,CAWA+V,aAAa,CAACnX,SAAd,CAAwBqc,IAAxB,CAA+B,SAAUhG,IAAV,CAAgB,CAC9C,GAAIA,IAAI,EAAI,KAAKA,IAAL,GAAcA,IAA1B,CAAgC,CAC/B,OACA,CACD,KAAKjV,KAAL,GACA,KAAKsW,SAAL,CAAiB,CAAjB,CACA,KAAKW,cAAL,CAAsB,KAAtB,CACA,KAAKiE,uBAAL,CAA6B,CAA7B,EACA,CARD,CAUAnF,aAAa,CAACnX,SAAd,CAAwBuc,aAAxB,CAAwC,SAAUC,UAAV,CAAsB,CAC7D,IAAIC,MAAJ,CACA,IAAK,IAAI7c,CAAC,CAAG,CAAb,CAAgBA,CAAC,CAAG,KAAK+V,OAAL,CAAa7V,MAAjC,CAAyCF,CAAC,EAAI,CAA9C,CAAiD,CAChD6c,MAAM,CAAG,KAAK9G,OAAL,CAAa/V,CAAb,CAAT,CACA,GAAI6c,MAAM,CAACtM,OAAP,EAAkBsM,MAAM,CAACtM,OAAP,CAAekG,IAAf,GAAwBmG,UAA9C,CAA0D,CACzD,OAAOC,MAAP,CACA,CACD,CACD,WAAA,CACA,CATD,CAWAtF,aAAa,CAACnX,SAAd,CAAwB0c,WAAxB,CAAsC,SAAUvd,KAAV,CAAiBwd,OAAjB,CAA0BtG,IAA1B,CAAgC,CACrE,GAAIA,IAAI,EAAI,KAAKA,IAAL,GAAcA,IAA1B,CAAgC,CAC/B,OACA,CACD,IAAIuG,QAAQ,CAAGC,MAAM,CAAC1d,KAAD,CAArB,CACA,GAAI2d,KAAK,CAACF,QAAD,CAAT,CAAqB,CACpB,IAAIH,MAAM,CAAG,KAAKF,aAAL,CAAmBpd,KAAnB,CAAb,CACA,GAAIsd,MAAJ,CAAY,CACX,KAAKC,WAAL,CAAiBD,MAAM,CAAC3G,IAAxB,CAA8B,IAA9B,EACA,CACD,CALD,QAKW6G,OAAJ,CAAa,CACnB,KAAKL,uBAAL,CAA6Bnd,KAA7B,EACA,CAFM,IAEA,CACN,KAAKmd,uBAAL,CAA6Bnd,KAAK,CAAG,KAAK4d,aAA1C,EACA,CACD,KAAK3b,KAAL,GACA,CAhBD,CAkBA+V,aAAa,CAACnX,SAAd,CAAwBgd,WAAxB,CAAsC,SAAU7d,KAAV,CAAiBwd,OAAjB,CAA0BtG,IAA1B,CAAgC,CACrE,GAAIA,IAAI,EAAI,KAAKA,IAAL,GAAcA,IAA1B,CAAgC,CAC/B,OACA,CACD,IAAIuG,QAAQ,CAAGC,MAAM,CAAC1d,KAAD,CAArB,CACA,GAAI2d,KAAK,CAACF,QAAD,CAAT,CAAqB,CACpB,IAAIH,MAAM,CAAG,KAAKF,aAAL,CAAmBpd,KAAnB,CAAb,CACA,GAAIsd,MAAJ,CAAY,CACX,GAAI,CAACA,MAAM,CAACzG,QAAZ,CAAsB,CACrB,KAAK0G,WAAL,CAAiBD,MAAM,CAAC3G,IAAxB,CAA8B,IAA9B,EACA,CAFD,IAEO,CACN,KAAKmH,YAAL,CAAkB,CAACR,MAAM,CAAC3G,IAAR,CAAc2G,MAAM,CAAC3G,IAAP,CAAc2G,MAAM,CAACzG,QAAnC,CAAlB,CAAgE,IAAhE,EACA,CACD,CACD,CATD,IASO,CACN,KAAK0G,WAAL,CAAiBE,QAAjB,CAA2BD,OAA3B,CAAoCtG,IAApC,EACA,CACD,KAAKvU,IAAL,GACA,CAlBD,CAoBAqV,aAAa,CAACnX,SAAd,CAAwBkd,WAAxB,CAAsC,SAAU/d,KAAV,CAAiB,CACtD,GAAI,KAAKwY,QAAL,GAAkB,IAAlB,EAA0B,KAAKP,QAAL,GAAkB,KAAhD,CAAuD,CACtD,OACA,CACD,IAAI+F,SAAS,CAAG,KAAK9F,eAAL,CAAuBlY,KAAK,CAAG,KAAK4d,aAApD,CACA,IAAIK,WAAW,CAAG,KAAlB,CACA;CACA;CACA,GAAID,SAAS,EAAI,KAAK1W,WAAL,CAAmB,CAAhC,EAAqC,KAAKsW,aAAL,CAAqB,CAA9D,CAAiE,CAChE,GAAI,CAAC,KAAKlF,IAAN,EAAc,KAAKH,SAAL,GAAmB,KAAKG,IAA1C,CAAgD,CAC/C,GAAI,CAAC,KAAKwF,aAAL,CAAmBF,SAAS,CAAG,KAAK1W,WAAjB,CAA+B0W,SAAS,CAAG,KAAK1W,WAAhD,CAA8D,CAAjF,CAAL,CAA0F,CACzF2W,WAAW,CAAG,IAAd,CACAD,SAAS,CAAG,KAAK1W,WAAL,CAAmB,CAA/B,CACA,CACD,CALD,QAKW0W,SAAS,EAAI,KAAK1W,WAAtB,CAAmC,CACzC,KAAKiR,SAAL,EAAkB,CAAlB,CACA,GAAI,CAAC,KAAK2F,aAAL,CAAmBF,SAAS,CAAG,KAAK1W,WAApC,CAAL,CAAuD,CACtD,KAAK6V,uBAAL,CAA6Ba,SAAS,CAAG,KAAK1W,WAA9C,EACA,KAAK4R,cAAL,CAAsB,IAAtB,CACA,KAAK0B,OAAL,CAAa,cAAb,EACA,CACD,CAPM,IAOA,CACN,KAAKuC,uBAAL,CAA6Ba,SAA7B,EACA,CACD,CAhBD,QAgBWA,SAAS,CAAG,CAAhB,CAAmB,CACzB,GAAI,CAAC,KAAKE,aAAL,CAAmBF,SAAS,CAAG,KAAK1W,WAApC,CAAL,CAAuD,CACtD,GAAI,KAAKoR,IAAL,EAAa,EAAE,KAAKH,SAAL,IAAoB,CAApB,EAAyB,KAAKG,IAAL,GAAc,IAAzC,CAAjB,CAAiE;CAChE,KAAKyE,uBAAL,CAA6B,KAAK7V,WAAL,CAAoB0W,SAAS,CAAG,KAAK1W,WAAlE,EACA,GAAI,CAAC,KAAK4R,cAAV,CAA0B,CACzB,KAAKA,cAAL,CAAsB,IAAtB,CACA,CAFD,IAEO,CACN,KAAK0B,OAAL,CAAa,cAAb,EACA,CACD,CAPD,IAOO,CACNqD,WAAW,CAAG,IAAd,CACAD,SAAS,CAAG,CAAZ,CACA,CACD,CACD,CAdM,IAcA,CACN,KAAKb,uBAAL,CAA6Ba,SAA7B,EACA,CACD,GAAIC,WAAJ,CAAiB,CAChB,KAAKd,uBAAL,CAA6Ba,SAA7B,EACA,KAAK/b,KAAL,GACA,KAAK2Y,OAAL,CAAa,UAAb,EACA,CACD,CA9CD,CAgDA5C,aAAa,CAACnX,SAAd,CAAwBsd,aAAxB,CAAwC,SAAU3a,GAAV,CAAesF,MAAf,CAAuB,CAC9D,KAAKyP,SAAL,CAAiB,CAAjB,CACA,GAAI/U,GAAG,CAAC,CAAD,CAAH,CAASA,GAAG,CAAC,CAAD,CAAhB,CAAqB,CACpB,GAAI,KAAKoa,aAAL,CAAqB,CAAzB,CAA4B,CAC3B,GAAI,KAAKvF,SAAL,CAAiB,CAArB,CAAwB,CACvB,KAAK+F,QAAL,CAAc,CAAC,KAAK/F,SAApB,EACA,CAFD,IAEO,CACN,KAAKgG,YAAL,CAAkB,CAAC,CAAnB,EACA,CACD,CACD,KAAK/W,WAAL,CAAmB9D,GAAG,CAAC,CAAD,CAAH,CAASA,GAAG,CAAC,CAAD,CAA/B,CACA,KAAKqV,aAAL,CAAqB,KAAKvR,WAA1B,CACA,KAAKD,UAAL,CAAkB7D,GAAG,CAAC,CAAD,CAArB,CACA,KAAK2Z,uBAAL,CAA6B,KAAK7V,WAAL,CAAmB,KAAnB,CAA2BwB,MAAxD,EACA,CAZD,QAYWtF,GAAG,CAAC,CAAD,CAAH,CAASA,GAAG,CAAC,CAAD,CAAhB,CAAqB,CAC3B,GAAI,KAAKoa,aAAL,CAAqB,CAAzB,CAA4B,CAC3B,GAAI,KAAKvF,SAAL,CAAiB,CAArB,CAAwB,CACvB,KAAK+F,QAAL,CAAc,CAAC,KAAK/F,SAApB,EACA,CAFD,IAEO,CACN,KAAKgG,YAAL,CAAkB,CAAlB,EACA,CACD,CACD,KAAK/W,WAAL,CAAmB9D,GAAG,CAAC,CAAD,CAAH,CAASA,GAAG,CAAC,CAAD,CAA/B,CACA,KAAKqV,aAAL,CAAqB,KAAKvR,WAA1B,CACA,KAAKD,UAAL,CAAkB7D,GAAG,CAAC,CAAD,CAArB,CACA,KAAK2Z,uBAAL,CAA6B,MAAQrU,MAArC,EACA,CACD,KAAK8R,OAAL,CAAa,cAAb,EACA,CA5BD,CA6BA5C,aAAa,CAACnX,SAAd,CAAwByd,UAAxB,CAAqC,SAAUC,IAAV,CAAgBC,GAAhB,CAAqB,CACzD,IAAIC,YAAY,CAAG,CAAC,CAApB,CACA,GAAI,KAAKjG,QAAT,CAAmB,CAClB,GAAI,KAAKN,eAAL,CAAuB,KAAK7Q,UAA5B,CAAyCkX,IAA7C,CAAmD,CAClDE,YAAY,CAAGF,IAAf,CACA,CAFD,QAEW,KAAKrG,eAAL,CAAuB,KAAK7Q,UAA5B,CAAyCmX,GAA7C,CAAkD,CACxDC,YAAY,CAAGD,GAAG,CAAGD,IAArB,CACA,CACD,CAED,KAAKlX,UAAL,CAAkBkX,IAAlB,CACA,KAAKjX,WAAL,CAAmBkX,GAAG,CAAGD,IAAzB,CACA,KAAK1F,aAAL,CAAqB,KAAKvR,WAA1B,CACA,GAAImX,YAAY,GAAK,CAAC,CAAtB,CAAyB,CACxB,KAAKlB,WAAL,CAAiBkB,YAAjB,CAA+B,IAA/B,EACA,CACD,CAhBD,CAkBAzG,aAAa,CAACnX,SAAd,CAAwBid,YAAxB,CAAuC,SAAUta,GAAV,CAAekb,SAAf,CAA0B,CAChE,GAAIA,SAAJ,CAAe,CACd,KAAK1F,QAAL,CAAcrY,MAAd,CAAuB,CAAvB,CACA,CACD,GAAI,OAAO6C,GAAG,CAAC,CAAD,CAAV,GAAkB,QAAtB,CAAgC,CAC/B,IAAI/C,CAAJ,CACA,IAAIC,GAAG,CAAG8C,GAAG,CAAC7C,MAAd,CACA,IAAKF,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B,KAAKuY,QAAL,CAAchX,IAAd,CAAmBwB,GAAG,CAAC/C,CAAD,CAAtB,EACA,CACD,CAND,IAMO,CACN,KAAKuY,QAAL,CAAchX,IAAd,CAAmBwB,GAAnB,EACA,CACD,GAAI,KAAKwV,QAAL,CAAcrY,MAAd,EAAwB+d,SAA5B,CAAuC,CACtC,KAAKP,aAAL,CAAmB,KAAKnF,QAAL,CAAc2C,KAAd,EAAnB,CAA0C,CAA1C,EACA,CACD,GAAI,KAAKnD,QAAT,CAAmB,CAClB,KAAK7V,IAAL,GACA,CACD,CAnBD,CAqBAqV,aAAa,CAACnX,SAAd,CAAwB8d,aAAxB,CAAwC,SAAUD,SAAV,CAAqB,CAC5D,KAAK1F,QAAL,CAAcrY,MAAd,CAAuB,CAAvB,CACA,KAAKqY,QAAL,CAAchX,IAAd,CAAmB,CAAC,KAAKoM,aAAL,CAAmBG,EAApB,CAAwB,KAAKH,aAAL,CAAmBI,EAA3C,CAAnB,EACA,GAAIkQ,SAAJ,CAAe,CACd,KAAKR,aAAL,CAAmB,CAAnB,EACA,CACD,CAND,CAOAlG,aAAa,CAACnX,SAAd,CAAwBqd,aAAxB,CAAwC,SAAUpV,MAAV,CAAkB,CACzD,GAAI,KAAKkQ,QAAL,CAAcrY,MAAlB,CAA0B,CACzB,KAAKwd,aAAL,CAAmB,KAAKnF,QAAL,CAAc2C,KAAd,EAAnB,CAA0C7S,MAA1C,EACA,WAAA,CACA,CACD,YAAA,CACA,CAND,CAQAkP,aAAa,CAACnX,SAAd,CAAwBoU,OAAxB,CAAkC,SAAUiC,IAAV,CAAgB,CACjD,GAAKA,IAAI,EAAI,KAAKA,IAAL,GAAcA,IAAvB,EAAgC,CAAC,KAAKyB,QAA1C,CAAoD,CACnD,OACA,CACD,KAAKA,QAAL,CAAc1D,OAAd,GACA,KAAKmE,cAAL,CAAoBnE,OAApB,GACA,KAAK2F,OAAL,CAAa,SAAb,EACA,KAAKjF,IAAL,CAAY,IAAZ,CACA,KAAKiJ,YAAL,CAAoB,IAApB,CACA,KAAKC,cAAL,CAAsB,IAAtB,CACA,KAAKzN,UAAL,CAAkB,IAAlB,CACA,KAAK0N,cAAL,CAAsB,IAAtB,CACA,KAAKC,SAAL,CAAiB,IAAjB,CACA,KAAKpG,QAAL,CAAgB,IAAhB,CACA,KAAKA,QAAL,CAAgB,IAAhB,CACA,KAAKS,cAAL,CAAsB,IAAtB,CACA,KAAKD,gBAAL,CAAwB,IAAxB,CACA,CAjBD,CAmBAnB,aAAa,CAACnX,SAAd,CAAwBsc,uBAAxB,CAAkD,SAAUnd,KAAV,CAAiB,CAClE,KAAKkY,eAAL,CAAuBlY,KAAvB,CACA,KAAK2c,SAAL,GACA,CAHD,CAKA3E,aAAa,CAACnX,SAAd,CAAwBud,QAAxB,CAAmC,SAAU9Y,GAAV,CAAe,CACjD,KAAK+S,SAAL,CAAiB/S,GAAjB,CACA,KAAK+W,iBAAL,GACA,CAHD,CAKArE,aAAa,CAACnX,SAAd,CAAwBwd,YAAxB,CAAuC,SAAU/Y,GAAV,CAAe,CACrD,KAAKgT,aAAL,CAAqBhT,GAAG,CAAG,CAAN,CAAU,CAAC,CAAX,CAAe,CAApC,CACA,KAAK+W,iBAAL,GACA,CAHD,CAKArE,aAAa,CAACnX,SAAd,CAAwBkC,SAAxB,CAAoC,SAAUuC,GAAV,CAAe4R,IAAf,CAAqB,CACxD,GAAIA,IAAI,EAAI,KAAKA,IAAL,GAAcA,IAA1B,CAAgC,CAC/B,OACA,CACD,KAAKmC,eAAL,CAAqBtW,SAArB,CAA+BuC,GAA/B,EACA,CALD,CAOA0S,aAAa,CAACnX,SAAd,CAAwBuC,SAAxB,CAAoC,UAAY,CAC/C,YAAYiW,eAAL,CAAqBjW,SAArB,EAAP,CACA,CAFD,CAIA4U,aAAa,CAACnX,SAAd,CAAwBqC,IAAxB,CAA+B,SAAUgU,IAAV,CAAgB,CAC9C,GAAIA,IAAI,EAAI,KAAKA,IAAL,GAAcA,IAA1B,CAAgC,CAC/B,OACA,CACD,KAAKmC,eAAL,CAAqBnW,IAArB,GACA,CALD,CAOA8U,aAAa,CAACnX,SAAd,CAAwBsC,MAAxB,CAAiC,SAAU+T,IAAV,CAAgB,CAChD,GAAIA,IAAI,EAAI,KAAKA,IAAL,GAAcA,IAA1B,CAAgC,CAC/B,OACA,CACD,KAAKmC,eAAL,CAAqBlW,MAArB,GACA,CALD,CAOA6U,aAAa,CAACnX,SAAd,CAAwBwb,iBAAxB,CAA4C,UAAY,CACvD,KAAKuB,aAAL,CAAqB,KAAKxF,SAAL,CAAiB,KAAKC,SAAtB,CAAkC,KAAKC,aAA5D,CACA,KAAKe,eAAL,CAAqBlX,OAArB,CAA6B,KAAKkW,SAAL,CAAiB,KAAKC,aAAnD,EACA,CAHD,CAKAN,aAAa,CAACnX,SAAd,CAAwBme,OAAxB,CAAkC,UAAY,CAC7C,YAAYzU,IAAZ,CACA,CAFD,CAIAyN,aAAa,CAACnX,SAAd,CAAwBkS,aAAxB,CAAwC,SAAUC,SAAV,CAAqB,CAC5D,IAAIzI,IAAI,CAAG,EAAX,CACA,GAAIyI,SAAS,CAAC5H,CAAd,CAAiB,CAChBb,IAAI,CAAGyI,SAAS,CAACzK,CAAjB,CACA,CAFD,QAEW,KAAK0K,UAAT,CAAqB,CAC3B,IAAIE,SAAS,CAAGH,SAAS,CAACzK,CAA1B,CACA,GAAI4K,SAAS,CAACnD,OAAV,CAAkB,SAAlB,IAAiC,CAAC,CAAtC,CAAyC,CACxCmD,SAAS,CAAGA,SAAS,CAACtF,KAAV,CAAgB,GAAhB,EAAqB,CAArB,CAAZ,CACA,CACDtD,IAAI,CAAG,KAAK0I,UAAL,CAAkBE,SAAzB,CACA,CANM,IAMA,CACN5I,IAAI,CAAG,KAAKA,IAAZ,CACAA,IAAI,EAAIyI,SAAS,CAACI,CAAV,CAAcJ,SAAS,CAACI,CAAxB,CAA4B,EAApC,CACA7I,IAAI,EAAIyI,SAAS,CAACzK,CAAlB,CACA,CACD,OAAOgC,IAAP,CACA,CAhBD,CAkBAyN,aAAa,CAACnX,SAAd,CAAwBoe,YAAxB,CAAuC,SAAUjS,EAAV,CAAc,CACpD,IAAIvM,CAAC,CAAG,CAAR,CACA,IAAIC,GAAG,CAAG,KAAKoM,MAAL,CAAYnM,MAAtB,CACA,MAAOF,CAAC,CAAGC,GAAX,CAAgB,CACf,GAAIsM,EAAE,GAAK,KAAKF,MAAL,CAAYrM,CAAZ,EAAeuM,EAA1B,CAA8B,CAC7B,YAAYF,MAAL,CAAYrM,CAAZ,CAAP,CACA,CACDA,CAAC,EAAI,CAAL,CACA,CACD,WAAA,CACA,CAVD,CAYAuX,aAAa,CAACnX,SAAd,CAAwBqe,IAAxB,CAA+B,UAAY,CAC1C,KAAKvG,QAAL,CAAcuG,IAAd,GACA,CAFD,CAIAlH,aAAa,CAACnX,SAAd,CAAwBse,IAAxB,CAA+B,UAAY,CAC1C,KAAKxG,QAAL,CAAcwG,IAAd,GACA,CAFD,CAIAnH,aAAa,CAACnX,SAAd,CAAwBue,WAAxB,CAAsC,SAAU5B,OAAV,CAAmB,CACxD,OAAOA,OAAO,CAAG,KAAKlW,WAAR,CAAsB,KAAKA,WAAL,CAAmB,KAAK6Q,SAA5D,CACA,CAFD,CAIAH,aAAa,CAACnX,SAAd,CAAwBwe,kBAAxB,CAA6C,SAAU9U,IAAV,CAAgB2D,YAAhB,CAA8BoR,KAA9B,CAAqC,CACjF,GAAI,CACH,IAAIxZ,OAAO,CAAG,KAAK6S,QAAL,CAAc4G,gBAAd,CAA+BhV,IAA/B,CAAd,CACAzE,OAAO,CAACuZ,kBAAR,CAA2BnR,YAA3B,CAAyCoR,KAAzC,EACA,CAAC,MAAOzO,KAAP,CAAc;CAEf,CACD,CAPD,CASAmH,aAAa,CAACnX,SAAd,CAAwB+Z,OAAxB,CAAkC,SAAU1D,IAAV,CAAgB,CACjD,GAAI,KAAKvB,IAAL,EAAa,KAAKA,IAAL,CAAUuB,IAAV,CAAjB,CAAkC,CACjC,OAAQA,IAAR,EACC,IAAK,YAAL,CACC,KAAK1B,YAAL,CAAkB0B,IAAlB,CAAwB,IAAIvQ,iBAAJ,CAAsBuQ,IAAtB,CAA4B,KAAKQ,YAAjC,CAA+C,KAAKpQ,WAApD,CAAiE,KAAKsW,aAAtE,CAAxB,EACA,MACD,IAAK,YAAL,CACC,KAAKnE,eAAL,CAAqB7S,WAArB,CAAmC,KAAK8Q,YAAxC,CACA,KAAK+B,eAAL,CAAqB5S,SAArB,CAAiC,KAAKS,WAAtC,CACA,KAAKmS,eAAL,CAAqB1S,SAArB,CAAiC,KAAK6W,aAAtC,CACA,KAAKpI,YAAL,CAAkB0B,IAAlB,CAAwB,KAAKuC,eAA7B,EACA,MACD,IAAK,cAAL,CACC,KAAKjE,YAAL,CAAkB0B,IAAlB,CAAwB,IAAIjQ,mBAAJ,CAAwBiQ,IAAxB,CAA8B,KAAKwB,IAAnC,CAAyC,KAAKH,SAA9C,CAAyD,KAAKH,SAA9D,CAAxB,EACA,MACD,IAAK,UAAL,CACC,KAAK5C,YAAL,CAAkB0B,IAAlB,CAAwB,IAAIlQ,eAAJ,CAAoBkQ,IAApB,CAA0B,KAAKkB,SAA/B,CAAxB,EACA,MACD,IAAK,cAAL,CACC,KAAK5C,YAAL,CAAkB0B,IAAlB,CAAwB,IAAI9P,mBAAJ,CAAwB8P,IAAxB,CAA8B,KAAK7P,UAAnC,CAA+C,KAAKC,WAApD,CAAxB,EACA,MACD,IAAK,SAAL,CACC,KAAKkO,YAAL,CAAkB0B,IAAlB,CAAwB,IAAI3P,cAAJ,CAAmB2P,IAAnB,CAAyB,IAAzB,CAAxB,EACA,MACD,QACC,KAAK1B,YAAL,CAAkB0B,IAAlB,EAvBF,CAyBA,CACD,GAAIA,IAAI,GAAK,YAAT,EAAyB,KAAK0H,YAAlC,CAAgD,CAC/C,KAAKA,YAAL,CAAkB3d,IAAlB,CAAuB,IAAvB,CAA6B,IAAI0F,iBAAJ,CAAsBuQ,IAAtB,CAA4B,KAAKQ,YAAjC,CAA+C,KAAKpQ,WAApD,CAAiE,KAAK8Q,SAAtE,CAA7B,EACA,CACD,GAAIlB,IAAI,GAAK,cAAT,EAA2B,KAAK2H,cAApC,CAAoD,CACnD,KAAKA,cAAL,CAAoB5d,IAApB,CAAyB,IAAzB,CAA+B,IAAIgG,mBAAJ,CAAwBiQ,IAAxB,CAA8B,KAAKwB,IAAnC,CAAyC,KAAKH,SAA9C,CAAyD,KAAKH,SAA9D,CAA/B,EACA,CACD,GAAIlB,IAAI,GAAK,UAAT,EAAuB,KAAK9F,UAAhC,CAA4C,CAC3C,KAAKA,UAAL,CAAgBnQ,IAAhB,CAAqB,IAArB,CAA2B,IAAI+F,eAAJ,CAAoBkQ,IAApB,CAA0B,KAAKkB,SAA/B,CAA3B,EACA,CACD,GAAIlB,IAAI,GAAK,cAAT,EAA2B,KAAK4H,cAApC,CAAoD,CACnD,KAAKA,cAAL,CAAoB7d,IAApB,CAAyB,IAAzB,CAA+B,IAAImG,mBAAJ,CAAwB8P,IAAxB,CAA8B,KAAK7P,UAAnC,CAA+C,KAAKC,WAApD,CAA/B,EACA,CACD,GAAI4P,IAAI,GAAK,SAAT,EAAsB,KAAK6H,SAA/B,CAA0C,CACzC,KAAKA,SAAL,CAAe9d,IAAf,CAAoB,IAApB,CAA0B,IAAIsG,cAAJ,CAAmB2P,IAAnB,CAAyB,IAAzB,CAA1B,EACA,CACD,CA3CD,CA6CAc,aAAa,CAACnX,SAAd,CAAwBmc,uBAAxB,CAAkD,SAAUtV,WAAV,CAAuB,CACxE,IAAImJ,KAAK,CAAG,IAAIpJ,uBAAJ,CAA4BC,WAA5B,CAAyC,KAAKgQ,YAA9C,CAAZ,CACA,KAAKlC,YAAL,CAAkB,OAAlB,CAA2B3E,KAA3B,EAEA,GAAI,KAAKQ,OAAT,CAAkB,CACjB,KAAKA,OAAL,CAAapQ,IAAb,CAAkB,IAAlB,CAAwB4P,KAAxB,EACA,CACD,CAPD,CASAmH,aAAa,CAACnX,SAAd,CAAwB0b,kBAAxB,CAA6C,SAAU7U,WAAV,CAAuB,CACnE,IAAImJ,KAAK,CAAG,IAAIlJ,kBAAJ,CAAuBD,WAAvB,CAAoC,KAAKgQ,YAAzC,CAAZ,CACA,KAAKlC,YAAL,CAAkB,OAAlB,CAA2B3E,KAA3B,EAEA,GAAI,KAAKQ,OAAT,CAAkB,CACjB,KAAKA,OAAL,CAAapQ,IAAb,CAAkB,IAAlB,CAAwB4P,KAAxB,EACA,CACD,CAPD,CASA,MAAM2O,gBAAgB,CAAI,UAAY,CACrC,IAAI/P,QAAQ,CAAG,EAAf,CACA,IAAIgQ,oBAAoB,CAAG,EAA3B,CACA,IAAIC,QAAQ,CAAG,CAAf,CACA,IAAIhf,GAAG,CAAG,CAAV,CACA,IAAIif,oBAAoB,CAAG,CAA3B,CACA,IAAIC,QAAQ,CAAG,IAAf,CACA,IAAIC,SAAS,CAAG,KAAhB,CAEA,SAASC,aAAT,CAAuBC,EAAvB,CAA2B,CAC1B,IAAItf,CAAC,CAAG,CAAR,CACA,IAAIuf,QAAQ,CAAGD,EAAE,CAACvY,MAAlB,CACA,MAAO/G,CAAC,CAAGC,GAAX,CAAgB,CACf,GAAI+e,oBAAoB,CAAChf,CAAD,CAApB,CAAwBwQ,SAAxB,GAAsC+O,QAA1C,CAAoD,CACnDP,oBAAoB,CAAC3J,MAArB,CAA4BrV,CAA5B,CAA+B,CAA/B,EACAA,CAAC,EAAI,CAAL,CACAC,GAAG,EAAI,CAAP,CACA,GAAI,CAACsf,QAAQ,CAACxH,QAAd,CAAwB,CACvByH,oBAAoB,GACpB,CACD,CACDxf,CAAC,EAAI,CAAL,CACA,CACD,CAED,SAASyf,iBAAT,CAA2Bpa,OAA3B,CAAoCsI,aAApC,CAAmD,CAClD,GAAI,CAACtI,OAAL,CAAc,CACb,WAAA,CACA,CACD,IAAIrF,CAAC,CAAG,CAAR,CACA,MAAOA,CAAC,CAAGC,GAAX,CAAgB,CACf,GAAI+e,oBAAoB,CAAChf,CAAD,CAApB,CAAwB0f,IAAxB,GAAiCra,OAAjC,EAA4C2Z,oBAAoB,CAAChf,CAAD,CAApB,CAAwB0f,IAAxB,GAAiC,IAAjF,CAAuF,CACtF,OAAOV,oBAAoB,CAAChf,CAAD,CAApB,CAAwBwQ,SAA/B,CACA,CACDxQ,CAAC,EAAI,CAAL,CACA,CACD,IAAIuf,QAAQ,CAAG,IAAIhI,aAAJ,EAAf,CACAwC,cAAc,CAACwF,QAAD,CAAWla,OAAX,CAAd,CACAka,QAAQ,CAACnF,OAAT,CAAiB/U,OAAjB,CAA0BsI,aAA1B,EACA,OAAO4R,QAAP,CACA,CAED,SAASI,uBAAT,EAAmC,CAClC,IAAI3f,CAAJ,CACA,IAAI4f,QAAQ,CAAGZ,oBAAoB,CAAC9e,MAApC,CACA,IAAI2f,UAAU,CAAG,EAAjB,CACA,IAAK7f,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAG4f,QAAhB,CAA0B5f,CAAC,EAAI,CAA/B,CAAkC,CACjC6f,UAAU,CAACte,IAAX,CAAgByd,oBAAoB,CAAChf,CAAD,CAApB,CAAwBwQ,SAAxC,EACA,CACD,OAAOqP,UAAP,CACA,CAED,SAASC,eAAT,EAA2B,CAC1BZ,oBAAoB,EAAI,CAAxB,CACAa,QAAQ,GACR,CAED,SAASP,oBAAT,EAAgC,CAC/BN,oBAAoB,EAAI,CAAxB,CACA,CAED,SAASnF,cAAT,CAAwBwF,QAAxB,CAAkCla,OAAlC,CAA2C,CAC1Cka,QAAQ,CAACjM,gBAAT,CAA0B,SAA1B,CAAqC+L,aAArC,EACAE,QAAQ,CAACjM,gBAAT,CAA0B,SAA1B,CAAqCwM,eAArC,EACAP,QAAQ,CAACjM,gBAAT,CAA0B,OAA1B,CAAmCkM,oBAAnC,EACAR,oBAAoB,CAACzd,IAArB,CAA0B,CAAEme,IAAI,CAAEra,OAAR,CAAiBmL,SAAS,CAAE+O,QAA5B,CAA1B,EACAtf,GAAG,EAAI,CAAP,CACA,CAED,SAAS6Q,aAAT,CAAuBoI,MAAvB,CAA+B,CAC9B,IAAIqG,QAAQ,CAAG,IAAIhI,aAAJ,EAAf,CACAwC,cAAc,CAACwF,QAAD,CAAW,IAAX,CAAd,CACAA,QAAQ,CAACtG,SAAT,CAAmBC,MAAnB,EACA,OAAOqG,QAAP,CACA,CAED,SAAS5B,QAAT,CAAkB9Y,GAAlB,CAAuB2L,SAAvB,CAAkC,CACjC,IAAIxQ,CAAJ,CACA,IAAKA,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5Bgf,oBAAoB,CAAChf,CAAD,CAApB,CAAwBwQ,SAAxB,CAAkCmN,QAAlC,CAA2C9Y,GAA3C,CAAgD2L,SAAhD,EACA,CACD,CAED,SAASoN,YAAT,CAAsB/Y,GAAtB,CAA2B2L,SAA3B,CAAsC,CACrC,IAAIxQ,CAAJ,CACA,IAAKA,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5Bgf,oBAAoB,CAAChf,CAAD,CAApB,CAAwBwQ,SAAxB,CAAkCoN,YAAlC,CAA+C/Y,GAA/C,CAAoD2L,SAApD,EACA,CACD,CAED,SAAStO,IAAT,CAAcsO,SAAd,CAAyB,CACxB,IAAIxQ,CAAJ,CACA,IAAKA,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5Bgf,oBAAoB,CAAChf,CAAD,CAApB,CAAwBwQ,SAAxB,CAAkCtO,IAAlC,CAAuCsO,SAAvC,EACA,CACD,CACD,SAAS/O,MAAT,CAAgBue,OAAhB,CAAyB,CACxB,IAAIC,WAAW,CAAGD,OAAO,CAAGf,QAA5B,CACA,IAAIjf,CAAJ,CACA,IAAKA,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5Bgf,oBAAoB,CAAChf,CAAD,CAApB,CAAwBwQ,SAAxB,CAAkC8M,WAAlC,CAA8C2C,WAA9C,EACA,CACDhB,QAAQ,CAAGe,OAAX,CACA,GAAId,oBAAoB,EAAI,CAACE,SAA7B,CAAwC,CACvCtd,MAAM,CAACoe,qBAAP,CAA6Bze,MAA7B,EACA,CAFD,IAEO,CACN0d,QAAQ,CAAG,IAAX,CACA,CACD,CAED,SAASgB,KAAT,CAAeH,OAAf,CAAwB,CACvBf,QAAQ,CAAGe,OAAX,CACAle,MAAM,CAACoe,qBAAP,CAA6Bze,MAA7B,EACA,CAED,SAASD,KAAT,CAAegP,SAAf,CAA0B,CACzB,IAAIxQ,CAAJ,CACA,IAAKA,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5Bgf,oBAAoB,CAAChf,CAAD,CAApB,CAAwBwQ,SAAxB,CAAkChP,KAAlC,CAAwCgP,SAAxC,EACA,CACD,CAED,SAASsM,WAAT,CAAqBvd,KAArB,CAA4Bwd,OAA5B,CAAqCvM,SAArC,CAAgD,CAC/C,IAAIxQ,CAAJ,CACA,IAAKA,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5Bgf,oBAAoB,CAAChf,CAAD,CAApB,CAAwBwQ,SAAxB,CAAkCsM,WAAlC,CAA8Cvd,KAA9C,CAAqDwd,OAArD,CAA8DvM,SAA9D,EACA,CACD,CAED,SAASiM,IAAT,CAAcjM,SAAd,CAAyB,CACxB,IAAIxQ,CAAJ,CACA,IAAKA,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5Bgf,oBAAoB,CAAChf,CAAD,CAApB,CAAwBwQ,SAAxB,CAAkCiM,IAAlC,CAAuCjM,SAAvC,EACA,CACD,CAED,SAASgM,WAAT,CAAqBhM,SAArB,CAAgC,CAC/B,IAAIxQ,CAAJ,CACA,IAAKA,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5Bgf,oBAAoB,CAAChf,CAAD,CAApB,CAAwBwQ,SAAxB,CAAkCgM,WAAlC,CAA8ChM,SAA9C,EACA,CACD,CAED,SAASgE,OAAT,CAAiBhE,SAAjB,CAA4B,CAC3B,IAAIxQ,CAAJ,CACA,IAAKA,CAAC,CAAIC,GAAG,CAAG,CAAhB,CAAoBD,CAAC,EAAI,CAAzB,CAA4BA,CAAC,EAAI,CAAjC,CAAoC,CACnCgf,oBAAoB,CAAChf,CAAD,CAApB,CAAwBwQ,SAAxB,CAAkCgE,OAAlC,CAA0ChE,SAA1C,EACA,CACD,CAED,SAAS4P,gBAAT,CAA0BzS,aAA1B,CAAyC0S,UAAzC,CAAqDnI,QAArD,CAA+D,CAC9D,IAAIoI,YAAY,CAAG,GAAGC,MAAH,CAAU,GAAGC,KAAH,CAAShgB,IAAT,CAAcb,QAAQ,CAAC8gB,sBAAT,CAAgC,QAAhC,CAAd,CAAV,CAClB,GAAGD,KAAH,CAAShgB,IAAT,CAAcb,QAAQ,CAAC8gB,sBAAT,CAAgC,WAAhC,CAAd,CADkB,CAAnB,CAEA,IAAIzgB,CAAJ,CACA,IAAI4f,QAAQ,CAAGU,YAAY,CAACpgB,MAA5B,CACA,IAAKF,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAG4f,QAAhB,CAA0B5f,CAAC,EAAI,CAA/B,CAAkC,CACjC,GAAIkY,QAAJ,CAAc,CACboI,YAAY,CAACtgB,CAAD,CAAZ,CAAgB0gB,YAAhB,CAA6B,cAA7B,CAA6CxI,QAA7C,EACA,CACDuH,iBAAiB,CAACa,YAAY,CAACtgB,CAAD,CAAb,CAAkB2N,aAAlB,CAAjB,CACA,CACD,GAAI0S,UAAU,EAAIT,QAAQ,GAAK,CAA/B,CAAkC,CACjC,GAAI,CAAC1H,QAAL,CAAe,CACdA,QAAQ,CAAG,KAAX,CACA,CACD,IAAIyI,IAAI,CAAGhhB,QAAQ,CAACihB,oBAAT,CAA8B,MAA9B,EAAsC,CAAtC,CAAX,CACAD,IAAI,CAACE,SAAL,CAAiB,EAAjB,CACA,IAAIC,GAAG,CAAGrhB,SAAS,CAAC,KAAD,CAAnB,CACAqhB,GAAG,CAACxb,KAAJ,CAAUmM,KAAV,CAAkB,MAAlB,CACAqP,GAAG,CAACxb,KAAJ,CAAUoM,MAAV,CAAmB,MAAnB,CACAoP,GAAG,CAACJ,YAAJ,CAAiB,cAAjB,CAAiCxI,QAAjC,EACAyI,IAAI,CAAChN,WAAL,CAAiBmN,GAAjB,EACArB,iBAAiB,CAACqB,GAAD,CAAMnT,aAAN,CAAjB,CACA,CACD,CAED,SAASwO,MAAT,EAAkB,CACjB,IAAInc,CAAJ,CACA,IAAKA,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5Bgf,oBAAoB,CAAChf,CAAD,CAApB,CAAwBwQ,SAAxB,CAAkC2L,MAAlC,GACA,CACD,CAED,SAAS4D,QAAT,EAAoB,CACnB,GAAI,CAACX,SAAD,EAAcF,oBAAlB,CAAwC,CACvC,GAAIC,QAAJ,CAAc,CACbrd,MAAM,CAACoe,qBAAP,CAA6BC,KAA7B,EACAhB,QAAQ,CAAG,KAAX,CACA,CACD,CACD,CAED,SAAS4B,MAAT,EAAkB,CACjB3B,SAAS,CAAG,IAAZ,CACA,CAED,SAAS4B,QAAT,EAAoB,CACnB5B,SAAS,CAAG,KAAZ,CACAW,QAAQ,GACR,CAED,SAASzd,SAAT,CAAmBuC,GAAnB,CAAwB2L,SAAxB,CAAmC,CAClC,IAAIxQ,CAAJ,CACA,IAAKA,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5Bgf,oBAAoB,CAAChf,CAAD,CAApB,CAAwBwQ,SAAxB,CAAkClO,SAAlC,CAA4CuC,GAA5C,CAAiD2L,SAAjD,EACA,CACD,CAED,SAAS/N,IAAT,CAAc+N,SAAd,CAAyB,CACxB,IAAIxQ,CAAJ,CACA,IAAKA,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5Bgf,oBAAoB,CAAChf,CAAD,CAApB,CAAwBwQ,SAAxB,CAAkC/N,IAAlC,CAAuC+N,SAAvC,EACA,CACD,CAED,SAAS9N,MAAT,CAAgB8N,SAAhB,CAA2B,CAC1B,IAAIxQ,CAAJ,CACA,IAAKA,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5Bgf,oBAAoB,CAAChf,CAAD,CAApB,CAAwBwQ,SAAxB,CAAkC9N,MAAlC,CAAyC8N,SAAzC,EACA,CACD,CAEDxB,QAAQ,CAACyQ,iBAAT,CAA6BA,iBAA7B,CACAzQ,QAAQ,CAAC8B,aAAT,CAAyBA,aAAzB,CACA9B,QAAQ,CAAC2O,QAAT,CAAoBA,QAApB,CACA3O,QAAQ,CAAC4O,YAAT,CAAwBA,YAAxB,CACA5O,QAAQ,CAAC9M,IAAT,CAAgBA,IAAhB,CACA8M,QAAQ,CAACxN,KAAT,CAAiBA,KAAjB,CACAwN,QAAQ,CAACyN,IAAT,CAAgBA,IAAhB,CACAzN,QAAQ,CAACwN,WAAT,CAAuBA,WAAvB,CACAxN,QAAQ,CAACoR,gBAAT,CAA4BA,gBAA5B,CACApR,QAAQ,CAACmN,MAAT,CAAkBA,MAAlB,CACA;CACAnN,QAAQ,CAAC8N,WAAT,CAAuBA,WAAvB,CACA9N,QAAQ,CAACwF,OAAT,CAAmBA,OAAnB,CACAxF,QAAQ,CAAC+R,MAAT,CAAkBA,MAAlB,CACA/R,QAAQ,CAACgS,QAAT,CAAoBA,QAApB,CACAhS,QAAQ,CAAC1M,SAAT,CAAqBA,SAArB,CACA0M,QAAQ,CAACvM,IAAT,CAAgBA,IAAhB,CACAuM,QAAQ,CAACtM,MAAT,CAAkBA,MAAlB,CACAsM,QAAQ,CAAC2Q,uBAAT,CAAmCA,uBAAnC,CACA,OAAO3Q,QAAP,CACA,CAlPyB,EAA1B,CAoPA,oBACA,MAAMiS,aAAa,CAAI,UAAY;CAEnC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,IAEC,IAAI1N,EAAE,CAAG,EAAT,CACAA,EAAE,CAAC2N,eAAH,CAAqBA,eAArB,CACA,IAAIC,OAAO,CAAG,EAAd,CAEA,SAASD,eAAT,CAAyBhT,CAAzB,CAA4BtG,CAA5B,CAA+B6G,CAA/B,CAAkCvG,CAAlC,CAAqC4O,EAArC,CAAyC,CACxC,IAAIsK,GAAG,CAAGtK,EAAE,EAAI,CAAC,OAAS5I,CAAT,CAAa,GAAb,CAAmBtG,CAAnB,CAAuB,GAAvB,CAA6B6G,CAA7B,CAAiC,GAAjC,CAAuCvG,CAAxC,EAA2CmZ,OAA3C,CAAmD,KAAnD,CAA0D,GAA1D,CAAhB,CACA,GAAIF,OAAO,CAACC,GAAD,CAAX,CAAkB,CACjB,OAAOD,OAAO,CAACC,GAAD,CAAd,CACA,CACD,IAAIE,SAAS,CAAG,IAAIC,YAAJ,CAAiB,CAACrT,CAAD,CAAItG,CAAJ,CAAO6G,CAAP,CAAUvG,CAAV,CAAjB,CAAhB,CACAiZ,OAAO,CAACC,GAAD,CAAP,CAAeE,SAAf,CACA,OAAOA,SAAP,CACA,CAED;CACA,IAAIE,iBAAiB,CAAG,CAAxB,CACA,IAAIC,gBAAgB,CAAG,KAAvB,CACA,IAAIC,qBAAqB,CAAG,SAA5B,CACA,IAAIC,0BAA0B,CAAG,EAAjC,CAEA,IAAIC,gBAAgB,CAAG,EAAvB,CACA,IAAIC,eAAe,CAAG,KAAOD,gBAAgB,CAAG,GAA1B,CAAtB,CAEA,IAAIE,qBAAqB,CAAG,OAAO7e,YAAP,GAAwB,UAApD,CAEA,SAAS8e,CAAT,CAAWC,GAAX,CAAgBC,GAAhB,CAAqB,CAAE,WAAa,IAAMA,GAAZ,CAAkB,IAAMD,GAA/B,CAAqC,CAC5D,SAASE,CAAT,CAAWF,GAAX,CAAgBC,GAAhB,CAAqB,CAAE,WAAaA,GAAN,CAAY,IAAMD,GAAzB,CAA+B,CACtD,SAASG,CAAT,CAAWH,GAAX,CAAgB,CAAE,WAAaA,GAAb,CAAmB,CAErC;CACA,SAASI,UAAT,CAAoBC,EAApB,CAAwBL,GAAxB,CAA6BC,GAA7B,CAAkC,CACjC,OAAO,CAAC,CAACF,CAAC,CAACC,GAAD,CAAMC,GAAN,CAAD,CAAcI,EAAd,CAAmBH,CAAC,CAACF,GAAD,CAAMC,GAAN,CAArB,EAAmCI,EAAnC,CAAwCF,CAAC,CAACH,GAAD,CAA1C,EAAmDK,EAA1D,CACA,CAED;CACA,SAASC,QAAT,CAAkBD,EAAlB,CAAsBL,GAAtB,CAA2BC,GAA3B,CAAgC,CAC/B,WAAaF,CAAC,CAACC,GAAD,CAAMC,GAAN,CAAP,CAAoBI,EAApB,CAAyBA,EAAzB,CAA8B,IAAMH,CAAC,CAACF,GAAD,CAAMC,GAAN,CAAP,CAAoBI,EAAlD,CAAuDF,CAAC,CAACH,GAAD,CAA/D,CACA,CAED,SAASO,eAAT,CAAyBC,EAAzB,CAA6BC,EAA7B,CAAiCC,EAAjC,CAAqCC,GAArC,CAA0CC,GAA1C,CAA+C,CAC9C,IAAIC,QAAJ,CACCC,QADD,CAEC9iB,CAAC,CAAG,CAFL,CAGA,EAAG,CACF8iB,QAAQ,CAAGL,EAAE,CAAG,CAACC,EAAE,CAAGD,EAAN,EAAY,GAA5B,CACAI,QAAQ,CAAGT,UAAU,CAACU,QAAD,CAAWH,GAAX,CAAgBC,GAAhB,CAAV,CAAiCJ,EAA5C,CACA,GAAIK,QAAQ,CAAG,GAAf,CAAoB,CACnBH,EAAE,CAAGI,QAAL,CACA,CAFD,IAEO,CACNL,EAAE,CAAGK,QAAL,CACA,CACD,CARD,MAQS/e,IAAI,CAACa,GAAL,CAASie,QAAT,EAAqBnB,qBAArB,EAA8C,EAAE1hB,CAAF,CAAM2hB,0BAR7D,EASA,OAAOmB,QAAP,CACA,CAED,SAASC,oBAAT,CAA8BP,EAA9B,CAAkCQ,OAAlC,CAA2CL,GAA3C,CAAgDC,GAAhD,CAAqD,CACpD,IAAK,IAAI5iB,CAAC,CAAG,CAAb,CAAgBA,CAAC,CAAGwhB,iBAApB,CAAuC,EAAExhB,CAAzC,CAA4C,CAC3C,IAAIijB,YAAY,CAAGX,QAAQ,CAACU,OAAD,CAAUL,GAAV,CAAeC,GAAf,CAA3B,CACA,GAAIK,YAAY,GAAK,GAArB,CAA0B,OAAOD,OAAP,CAC1B,IAAIH,QAAQ,CAAGT,UAAU,CAACY,OAAD,CAAUL,GAAV,CAAeC,GAAf,CAAV,CAAgCJ,EAA/C,CACAQ,OAAO,EAAIH,QAAQ,CAAGI,YAAtB,CACA,CACD,OAAOD,OAAP,CACA,CAED;CACD;CACA,IACC,SAASzB,YAAT,CAAsB2B,MAAtB,CAA8B,CAC7B,KAAKC,EAAL,CAAUD,MAAV,CACA,KAAKE,cAAL,CAAsBtB,qBAAqB,CAAG,IAAI7e,YAAJ,CAAiB2e,gBAAjB,CAAH,CAAwC,IAAIve,KAAJ,CAAUue,gBAAV,CAAnF,CACA,KAAKyB,YAAL,CAAoB,KAApB,CAEA,KAAKC,GAAL,CAAW,KAAKA,GAAL,CAASlQ,IAAT,CAAc,IAAd,CAAX,CACA,CAEDmO,YAAY,CAACnhB,SAAb,CAAyB,CAExBkjB,GAAG,CAAE,SAAUC,CAAV,CAAa,CACjB,IAAIZ,GAAG,CAAG,KAAKQ,EAAL,CAAQ,CAAR,CAAV,CACCK,GAAG,CAAG,KAAKL,EAAL,CAAQ,CAAR,CADP,CAECP,GAAG,CAAG,KAAKO,EAAL,CAAQ,CAAR,CAFP,CAGCM,GAAG,CAAG,KAAKN,EAAL,CAAQ,CAAR,CAHP,CAIA,GAAI,CAAC,KAAKE,YAAV,CAAwB,KAAKK,WAAL,GACxB,GAAIf,GAAG,GAAKa,GAAR,EAAeZ,GAAG,GAAKa,GAA3B,CAAgC,OAAOF,CAAP,CAAU;CAC1C;CACA,GAAIA,CAAC,GAAK,CAAV,CAAa,QAAA,CACb,GAAIA,CAAC,GAAK,CAAV,CAAa,QAAA,CACb,OAAOnB,UAAU,CAAC,KAAKuB,SAAL,CAAeJ,CAAf,CAAD,CAAoBC,GAApB,CAAyBC,GAAzB,CAAjB,CACA,CAbuB;CAiBxBC,WAAW,CAAE,UAAY,CACxB,IAAIf,GAAG,CAAG,KAAKQ,EAAL,CAAQ,CAAR,CAAV,CACCK,GAAG,CAAG,KAAKL,EAAL,CAAQ,CAAR,CADP,CAECP,GAAG,CAAG,KAAKO,EAAL,CAAQ,CAAR,CAFP,CAGCM,GAAG,CAAG,KAAKN,EAAL,CAAQ,CAAR,CAHP,CAIA,KAAKE,YAAL,CAAoB,IAApB,CACA,GAAIV,GAAG,GAAKa,GAAR,EAAeZ,GAAG,GAAKa,GAA3B,CAAgC,CAAE,KAAKG,iBAAL,GAA2B,CAC7D,CAxBuB,CA0BxBA,iBAAiB,CAAE,UAAY,CAC9B,IAAIjB,GAAG,CAAG,KAAKQ,EAAL,CAAQ,CAAR,CAAV,CACCP,GAAG,CAAG,KAAKO,EAAL,CAAQ,CAAR,CADP,CAEA,IAAK,IAAInjB,CAAC,CAAG,CAAb,CAAgBA,CAAC,CAAG4hB,gBAApB,CAAsC,EAAE5hB,CAAxC,CAA2C,CAC1C,KAAKojB,cAAL,CAAoBpjB,CAApB,EAAyBoiB,UAAU,CAACpiB,CAAC,CAAG6hB,eAAL,CAAsBc,GAAtB,CAA2BC,GAA3B,CAAnC,CACA,CACD,CAhCuB;CAmC1B;CACA,KACEe,SAAS,CAAE,SAAUnB,EAAV,CAAc,CACxB,IAAIG,GAAG,CAAG,KAAKQ,EAAL,CAAQ,CAAR,CAAV,CACCP,GAAG,CAAG,KAAKO,EAAL,CAAQ,CAAR,CADP,CAECU,aAAa,CAAG,KAAKT,cAFtB,CAIA,IAAIU,aAAa,CAAG,GAApB,CACA,IAAIC,aAAa,CAAG,CAApB,CACA,IAAIC,UAAU,CAAGpC,gBAAgB,CAAG,CAApC,CAEA,KAAOmC,aAAa,GAAKC,UAAlB,EAAgCH,aAAa,CAACE,aAAD,CAAb,EAAgCvB,EAAvE,CAA2E,EAAEuB,aAA7E,CAA4F,CAC3FD,aAAa,EAAIjC,eAAjB,CACA,CACD,EAAEkC,aAAF,CAEA;CACA,IAAIE,IAAI,CAAG,CAACzB,EAAE,CAAGqB,aAAa,CAACE,aAAD,CAAnB,GAAuCF,aAAa,CAACE,aAAa,CAAG,CAAjB,CAAb,CAAmCF,aAAa,CAACE,aAAD,CAAvF,CAAX,CACA,IAAIG,SAAS,CAAGJ,aAAa,CAAGG,IAAI,CAAGpC,eAAvC,CAEA,IAAIsC,YAAY,CAAG7B,QAAQ,CAAC4B,SAAD,CAAYvB,GAAZ,CAAiBC,GAAjB,CAA3B,CACA,GAAIuB,YAAY,EAAI1C,gBAApB,CAAsC,CACrC,OAAOsB,oBAAoB,CAACP,EAAD,CAAK0B,SAAL,CAAgBvB,GAAhB,CAAqBC,GAArB,CAA3B,CACA,CAAC,GAAIuB,YAAY,GAAK,GAArB,CAA0B,CAC3B,OAAOD,SAAP,CACA,CACD,OAAO3B,eAAe,CAACC,EAAD,CAAKsB,aAAL,CAAoBA,aAAa,CAAGjC,eAApC,CAAqDc,GAArD,CAA0DC,GAA1D,CAAtB,CACA,CA9DuB,CAAzB,CAiEA,OAAOrP,EAAP,CACA,CA1JsB,EAAvB,CA4JA,MAAM6Q,OAAO,CAAI,UAAY,CAC5B,SAASC,MAAT,CAAgBthB,GAAhB,CAAqB,CACpB,OAAOA,GAAG,CAACwd,MAAJ,CAAWnd,gBAAgB,CAACL,GAAG,CAAC7C,MAAL,CAA3B,CAAP,CACA,CAED,OAAO,CACNmkB,MAAM,CAAEA,MADF,CAAP,CAGA,CARgB,EAAjB,CAUA,MAAMC,WAAW,CAAI,UAAY,CAChC,gBAAiBC,aAAV,CAAyBC,OAAzB,CAAkCC,QAAlC,CAA4C,CAClD,IAAIC,OAAO,CAAG,CAAd,CACA,IAAIC,UAAU,CAAGJ,aAAjB,CACA,IAAIK,IAAI,CAAGxhB,gBAAgB,CAACuhB,UAAD,CAA3B,CAEA,IAAIpR,EAAE,CAAG,CACRsR,UAAU,CAAEA,UADJ,CAERC,OAAO,CAAEA,OAFD,CAAT,CAKA,SAASD,UAAT,EAAsB,CACrB,IAAIxf,OAAJ,CACA,GAAIqf,OAAJ,CAAa,CACZA,OAAO,EAAI,CAAX,CACArf,OAAO,CAAGuf,IAAI,CAACF,OAAD,CAAd,CACA,CAHD,IAGO,CACNrf,OAAO,CAAGmf,OAAO,EAAjB,CACA,CACD,OAAOnf,OAAP,CACA,CAED,SAASyf,OAAT,CAAiBzf,OAAjB,CAA0B,CACzB,GAAIqf,OAAO,GAAKC,UAAhB,CAA4B,CAC3BC,IAAI,CAAGR,OAAO,CAACC,MAAR,CAAeO,IAAf,CAAP,CACAD,UAAU,EAAI,CAAd,CACA,CACD,GAAIF,QAAJ,CAAc,CACbA,QAAQ,CAACpf,OAAD,CAAR,CACA,CACDuf,IAAI,CAACF,OAAD,CAAJ,CAAgBrf,OAAhB,CACAqf,OAAO,EAAI,CAAX,CACA,CAED,OAAOnR,EAAP,CACA,CAlCD,CAmCA,CApCoB,EAArB,CAsCA,MAAMwR,gBAAgB,CAAI,UAAY,CACrC,SAASC,MAAT,EAAkB,CACjB,OAAO,CACNC,WAAW,CAAE,CADP,CAENC,QAAQ,CAAEriB,gBAAgB,CAAC,SAAD,CAAYqG,uBAAuB,EAAnC,CAFpB,CAGNic,OAAO,CAAEtiB,gBAAgB,CAAC,SAAD,CAAYqG,uBAAuB,EAAnC,CAHnB,CAAP,CAKA,CACD,OAAOob,WAAW,CAAC,CAAD,CAAIU,MAAJ,CAAlB,CACA,CATyB,EAA1B,CAWA,MAAMI,kBAAkB,CAAI,UAAY,CACvC,SAASJ,MAAT,EAAkB,CACjB,OAAO,CACNG,OAAO,CAAE,EADH,CAENE,WAAW,CAAE,CAFP,CAAP,CAIA,CAED,SAASP,OAAT,CAAiBzf,OAAjB,CAA0B,CACzB,IAAIrF,CAAJ,CACA,IAAIC,GAAG,CAAGoF,OAAO,CAAC8f,OAAR,CAAgBjlB,MAA1B,CACA,IAAKF,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B+kB,gBAAgB,CAACD,OAAjB,CAAyBzf,OAAO,CAAC8f,OAAR,CAAgBnlB,CAAhB,CAAzB,EACA,CACDqF,OAAO,CAAC8f,OAAR,CAAgBjlB,MAAhB,CAAyB,CAAzB,CACA,CAED,OAAOokB,WAAW,CAAC,CAAD,CAAIU,MAAJ,CAAYF,OAAZ,CAAlB,CACA,CAlB2B,EAA5B,CAoBA,SAASQ,WAAT,EAAuB,CACtB,IAAIC,IAAI,CAAGxhB,IAAX,CAEA,SAASyhB,aAAT,CAAuBC,EAAvB,CAA2BC,EAA3B,CAA+BC,EAA/B,CAAmCC,EAAnC,CAAuCC,EAAvC,CAA2CC,EAA3C,CAA+C,CAC9C,IAAIC,IAAI,CAAIN,EAAE,CAAGG,EAAN,CAAaF,EAAE,CAAGG,EAAlB,CAAyBF,EAAE,CAAGG,EAA9B,CAAqCD,EAAE,CAAGD,EAA1C,CAAiDE,EAAE,CAAGL,EAAtD,CAA6DE,EAAE,CAAGD,EAA7E,CACA,OAAOK,IAAI,CAAG,CAAC,KAAR,EAAiBA,IAAI,CAAG,KAA/B,CACA,CAED,SAASC,aAAT,CAAuBP,EAAvB,CAA2BC,EAA3B,CAA+BO,EAA/B,CAAmCN,EAAnC,CAAuCC,EAAvC,CAA2CM,EAA3C,CAA+CL,EAA/C,CAAmDC,EAAnD,CAAuDK,EAAvD,CAA2D,CAC1D,GAAIF,EAAE,GAAK,CAAP,EAAYC,EAAE,GAAK,CAAnB,EAAwBC,EAAE,GAAK,CAAnC,CAAsC,CACrC,OAAOX,aAAa,CAACC,EAAD,CAAKC,EAAL,CAASC,EAAT,CAAaC,EAAb,CAAiBC,EAAjB,CAAqBC,EAArB,CAApB,CACA,CACD,IAAIM,KAAK,CAAGb,IAAI,CAACrhB,IAAL,CAAUqhB,IAAI,CAACvhB,GAAL,CAAS2hB,EAAE,CAAGF,EAAd,CAAkB,CAAlB,EAAuBF,IAAI,CAACvhB,GAAL,CAAS4hB,EAAE,CAAGF,EAAd,CAAkB,CAAlB,CAAvB,CAA8CH,IAAI,CAACvhB,GAAL,CAASkiB,EAAE,CAAGD,EAAd,CAAkB,CAAlB,CAAxD,CAAZ,CACA,IAAII,KAAK,CAAGd,IAAI,CAACrhB,IAAL,CAAUqhB,IAAI,CAACvhB,GAAL,CAAS6hB,EAAE,CAAGJ,EAAd,CAAkB,CAAlB,EAAuBF,IAAI,CAACvhB,GAAL,CAAS8hB,EAAE,CAAGJ,EAAd,CAAkB,CAAlB,CAAvB,CAA8CH,IAAI,CAACvhB,GAAL,CAASmiB,EAAE,CAAGF,EAAd,CAAkB,CAAlB,CAAxD,CAAZ,CACA,IAAIK,KAAK,CAAGf,IAAI,CAACrhB,IAAL,CAAUqhB,IAAI,CAACvhB,GAAL,CAAS6hB,EAAE,CAAGF,EAAd,CAAkB,CAAlB,EAAuBJ,IAAI,CAACvhB,GAAL,CAAS8hB,EAAE,CAAGF,EAAd,CAAkB,CAAlB,CAAvB,CAA8CL,IAAI,CAACvhB,GAAL,CAASmiB,EAAE,CAAGD,EAAd,CAAkB,CAAlB,CAAxD,CAAZ,CACA,IAAIK,QAAJ,CACA,GAAIH,KAAK,CAAGC,KAAZ,CAAmB,CAClB,GAAID,KAAK,CAAGE,KAAZ,CAAmB,CAClBC,QAAQ,CAAGH,KAAK,CAAGC,KAAR,CAAgBC,KAA3B,CACA,CAFD,IAEO,CACNC,QAAQ,CAAGD,KAAK,CAAGD,KAAR,CAAgBD,KAA3B,CACA,CACD,CAND,QAMWE,KAAK,CAAGD,KAAZ,CAAmB,CACzBE,QAAQ,CAAGD,KAAK,CAAGD,KAAR,CAAgBD,KAA3B,CACA,CAFM,IAEA,CACNG,QAAQ,CAAGF,KAAK,CAAGD,KAAR,CAAgBE,KAA3B,CACA,CACD,OAAOC,QAAQ,CAAG,CAAC,MAAZ,EAAsBA,QAAQ,CAAG,MAAxC,CACA,CAED,IAAIC,eAAe,CAAI,UAAY,CAClC,gBAAiBC,GAAV,CAAeC,GAAf,CAAoBC,GAApB,CAAyBC,GAAzB,CAA8B,CACpC,IAAIC,aAAa,CAAG3d,uBAAuB,EAA3C,CACA,IAAIiC,CAAJ,CACA,IAAInL,CAAJ,CACA,IAAIC,GAAJ,CACA,IAAI6mB,OAAJ,CACA,IAAIC,IAAJ,CACA,IAAI9B,WAAW,CAAG,CAAlB,CACA,IAAI+B,UAAJ,CACA,IAAIC,KAAK,CAAG,EAAZ,CACA,IAAIC,SAAS,CAAG,EAAhB,CACA,IAAIC,UAAU,CAAGpC,gBAAgB,CAACF,UAAjB,EAAjB,CACA5kB,GAAG,CAAG0mB,GAAG,CAACzmB,MAAV,CACA,IAAKiL,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAG0b,aAAhB,CAA+B1b,CAAC,EAAI,CAApC,CAAuC,CACtC4b,IAAI,CAAG5b,CAAC,EAAI0b,aAAa,CAAG,CAApB,CAAR,CACAG,UAAU,CAAG,CAAb,CACA,IAAKhnB,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B8mB,OAAO,CAAGhjB,KAAK,CAAC,EAAIijB,IAAL,CAAW,CAAX,CAAL,CAAqBN,GAAG,CAACzmB,CAAD,CAAxB,CAA8B,EAAI8D,KAAK,CAAC,EAAIijB,IAAL,CAAW,CAAX,CAAT,CAAyBA,IAAzB,CAAgCJ,GAAG,CAAC3mB,CAAD,CAAjE,CAAuE,GAAK,EAAI+mB,IAAT,EAAiBjjB,KAAK,CAACijB,IAAD,CAAO,CAAP,CAAtB,CAAkCH,GAAG,CAAC5mB,CAAD,CAA5G,CAAkH8D,KAAK,CAACijB,IAAD,CAAO,CAAP,CAAL,CAAiBL,GAAG,CAAC1mB,CAAD,CAAhJ,CACAinB,KAAK,CAACjnB,CAAD,CAAL,CAAW8mB,OAAX,CACA,GAAII,SAAS,CAAClnB,CAAD,CAAT,GAAiB,IAArB,CAA2B,CAC1BgnB,UAAU,EAAIljB,KAAK,CAACmjB,KAAK,CAACjnB,CAAD,CAAL,CAAWknB,SAAS,CAAClnB,CAAD,CAArB,CAA0B,CAA1B,CAAnB,CACA,CACDknB,SAAS,CAAClnB,CAAD,CAAT,CAAeinB,KAAK,CAACjnB,CAAD,CAApB,CACA,CACD,GAAIgnB,UAAJ,CAAgB,CACfA,UAAU,CAAG/iB,MAAM,CAAC+iB,UAAD,CAAnB,CACA/B,WAAW,EAAI+B,UAAf,CACA,CACDG,UAAU,CAACjC,QAAX,CAAoB/Z,CAApB,EAAyB4b,IAAzB,CACAI,UAAU,CAAChC,OAAX,CAAmBha,CAAnB,EAAwB8Z,WAAxB,CACA,CACDkC,UAAU,CAAClC,WAAX,CAAyBA,WAAzB,CACA,OAAOkC,UAAP,CACA,CAjCD,CAkCA,CAnCsB,EAAvB,CAqCA,SAASC,iBAAT,CAA2BC,SAA3B,CAAsC,CACrC,IAAIC,cAAc,CAAGlC,kBAAkB,CAACP,UAAnB,EAArB,CACA,IAAIjW,MAAM,CAAGyY,SAAS,CAAC5Y,CAAvB,CACA,IAAI8Y,KAAK,CAAGF,SAAS,CAAC5f,CAAtB,CACA,IAAI+f,KAAK,CAAGH,SAAS,CAACta,CAAtB,CACA,IAAI0a,KAAK,CAAGJ,SAAS,CAACrnB,CAAtB,CACA,IAAIA,CAAJ,CACA,IAAIC,GAAG,CAAGonB,SAAS,CAAC3C,OAApB,CACA,IAAIS,OAAO,CAAGmC,cAAc,CAACnC,OAA7B,CACA,IAAIE,WAAW,CAAG,CAAlB,CACA,IAAKrlB,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAG,CAAG,CAAtB,CAAyBD,CAAC,EAAI,CAA9B,CAAiC,CAChCmlB,OAAO,CAACnlB,CAAD,CAAP,CAAawmB,eAAe,CAACe,KAAK,CAACvnB,CAAD,CAAN,CAAWunB,KAAK,CAACvnB,CAAC,CAAG,CAAL,CAAhB,CAAyBwnB,KAAK,CAACxnB,CAAD,CAA9B,CAAmCynB,KAAK,CAACznB,CAAC,CAAG,CAAL,CAAxC,CAA5B,CACAqlB,WAAW,EAAIF,OAAO,CAACnlB,CAAD,CAAP,CAAWilB,WAA1B,CACA,CACD,GAAIrW,MAAM,EAAI3O,GAAd,CAAmB,CAClBklB,OAAO,CAACnlB,CAAD,CAAP,CAAawmB,eAAe,CAACe,KAAK,CAACvnB,CAAD,CAAN,CAAWunB,KAAK,CAAC,CAAD,CAAhB,CAAqBC,KAAK,CAACxnB,CAAD,CAA1B,CAA+BynB,KAAK,CAAC,CAAD,CAApC,CAA5B,CACApC,WAAW,EAAIF,OAAO,CAACnlB,CAAD,CAAP,CAAWilB,WAA1B,CACA,CACDqC,cAAc,CAACjC,WAAf,CAA6BA,WAA7B,CACA,OAAOiC,cAAP,CACA,CAED,SAASI,UAAT,CAAoBxnB,MAApB,CAA4B,CAC3B,KAAKynB,aAAL,CAAqB,CAArB,CACA,KAAKzE,MAAL,CAAc,IAAI7f,KAAJ,CAAUnD,MAAV,CAAd,CACA,CAED,SAAS0nB,SAAT,CAAmBC,OAAnB,CAA4BZ,KAA5B,CAAmC,CAClC,KAAKa,aAAL,CAAqBD,OAArB,CACA,KAAKZ,KAAL,CAAaA,KAAb,CACA,CAED,IAAIc,eAAe,CAAI,UAAY,CAClC,IAAIC,UAAU,CAAG,EAAjB,CAEA,gBAAiBvB,GAAV,CAAeC,GAAf,CAAoBC,GAApB,CAAyBC,GAAzB,CAA8B,CACpC,IAAIqB,UAAU,CAAG,CAACxB,GAAG,CAAC,CAAD,CAAH,CAAS,GAAT,CAAeA,GAAG,CAAC,CAAD,CAAlB,CAAwB,GAAxB,CAA8BC,GAAG,CAAC,CAAD,CAAjC,CAAuC,GAAvC,CAA6CA,GAAG,CAAC,CAAD,CAAhD,CAAsD,GAAtD,CAA4DC,GAAG,CAAC,CAAD,CAA/D,CAAqE,GAArE,CAA2EA,GAAG,CAAC,CAAD,CAA9E,CAAoF,GAApF,CAA0FC,GAAG,CAAC,CAAD,CAA7F,CAAmG,GAAnG,CAAyGA,GAAG,CAAC,CAAD,CAA7G,EAAkHvF,OAAlH,CAA0H,KAA1H,CAAiI,GAAjI,CAAjB,CACA,GAAI,CAAC2G,UAAU,CAACC,UAAD,CAAf,CAA6B,CAC5B,IAAIpB,aAAa,CAAG3d,uBAAuB,EAA3C,CACA,IAAIiC,CAAJ,CACA,IAAInL,CAAJ,CACA,IAAIC,GAAJ,CACA,IAAI6mB,OAAJ,CACA,IAAIC,IAAJ,CACA,IAAI9B,WAAW,CAAG,CAAlB,CACA,IAAI+B,UAAJ,CACA,IAAIC,KAAJ,CACA,IAAIC,SAAS,CAAG,IAAhB,CACA,GAAIT,GAAG,CAACvmB,MAAJ,GAAe,CAAf,GAAqBumB,GAAG,CAAC,CAAD,CAAH,GAAWC,GAAG,CAAC,CAAD,CAAd,EAAqBD,GAAG,CAAC,CAAD,CAAH,GAAWC,GAAG,CAAC,CAAD,CAAxD,GAAgElB,aAAa,CAACiB,GAAG,CAAC,CAAD,CAAJ,CAASA,GAAG,CAAC,CAAD,CAAZ,CAAiBC,GAAG,CAAC,CAAD,CAApB,CAAyBA,GAAG,CAAC,CAAD,CAA5B,CAAiCD,GAAG,CAAC,CAAD,CAAH,CAASE,GAAG,CAAC,CAAD,CAA7C,CAAkDF,GAAG,CAAC,CAAD,CAAH,CAASE,GAAG,CAAC,CAAD,CAA9D,CAA7E,EAAmJnB,aAAa,CAACiB,GAAG,CAAC,CAAD,CAAJ,CAASA,GAAG,CAAC,CAAD,CAAZ,CAAiBC,GAAG,CAAC,CAAD,CAApB,CAAyBA,GAAG,CAAC,CAAD,CAA5B,CAAiCA,GAAG,CAAC,CAAD,CAAH,CAASE,GAAG,CAAC,CAAD,CAA7C,CAAkDF,GAAG,CAAC,CAAD,CAAH,CAASE,GAAG,CAAC,CAAD,CAA9D,CAApK,CAAwO,CACvOC,aAAa,CAAG,CAAhB,CACA,CACD,IAAIqB,UAAU,CAAG,IAAIR,UAAJ,CAAeb,aAAf,CAAjB,CACA5mB,GAAG,CAAG0mB,GAAG,CAACzmB,MAAV,CACA,IAAKiL,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAG0b,aAAhB,CAA+B1b,CAAC,EAAI,CAApC,CAAuC,CACtC8b,KAAK,CAAG7jB,gBAAgB,CAACnD,GAAD,CAAxB,CACA8mB,IAAI,CAAG5b,CAAC,EAAI0b,aAAa,CAAG,CAApB,CAAR,CACAG,UAAU,CAAG,CAAb,CACA,IAAKhnB,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B8mB,OAAO,CAAGhjB,KAAK,CAAC,EAAIijB,IAAL,CAAW,CAAX,CAAL,CAAqBN,GAAG,CAACzmB,CAAD,CAAxB,CAA8B,EAAI8D,KAAK,CAAC,EAAIijB,IAAL,CAAW,CAAX,CAAT,CAAyBA,IAAzB,EAAiCN,GAAG,CAACzmB,CAAD,CAAH,CAAS2mB,GAAG,CAAC3mB,CAAD,CAA7C,CAA9B,CAAkF,GAAK,EAAI+mB,IAAT,EAAiBjjB,KAAK,CAACijB,IAAD,CAAO,CAAP,CAAtB,EAAmCL,GAAG,CAAC1mB,CAAD,CAAH,CAAS4mB,GAAG,CAAC5mB,CAAD,CAA/C,CAAlF,CAAwI8D,KAAK,CAACijB,IAAD,CAAO,CAAP,CAAL,CAAiBL,GAAG,CAAC1mB,CAAD,CAAtK,CACAinB,KAAK,CAACjnB,CAAD,CAAL,CAAW8mB,OAAX,CACA,GAAII,SAAS,GAAK,IAAlB,CAAwB,CACvBF,UAAU,EAAIljB,KAAK,CAACmjB,KAAK,CAACjnB,CAAD,CAAL,CAAWknB,SAAS,CAAClnB,CAAD,CAArB,CAA0B,CAA1B,CAAnB,CACA,CACD,CACDgnB,UAAU,CAAG/iB,MAAM,CAAC+iB,UAAD,CAAnB,CACA/B,WAAW,EAAI+B,UAAf,CACAkB,UAAU,CAAChF,MAAX,CAAkB/X,CAAlB,EAAuB,IAAIyc,SAAJ,CAAcZ,UAAd,CAA0BC,KAA1B,CAAvB,CACAC,SAAS,CAAGD,KAAZ,CACA,CACDiB,UAAU,CAACP,aAAX,CAA2B1C,WAA3B,CACA+C,UAAU,CAACC,UAAD,CAAV,CAAyBC,UAAzB,CACA,CACD,OAAOF,UAAU,CAACC,UAAD,CAAjB,CACA,CAtCD,CAuCA,CA1CsB,EAAvB,CA4CA,SAASE,eAAT,CAAyBpB,IAAzB,CAA+BmB,UAA/B,CAA2C,CAC1C,IAAIhD,QAAQ,CAAGgD,UAAU,CAAChD,QAA1B,CACA,IAAIC,OAAO,CAAG+C,UAAU,CAAC/C,OAAzB,CACA,IAAIllB,GAAG,CAAGilB,QAAQ,CAAChlB,MAAnB,CACA,IAAIkoB,OAAO,CAAGjkB,OAAO,CAAC,CAAClE,GAAG,CAAG,CAAP,EAAY8mB,IAAb,CAArB,CACA,IAAIsB,SAAS,CAAGtB,IAAI,CAAGmB,UAAU,CAACjD,WAAlC,CACA,IAAIqD,KAAK,CAAG,CAAZ,CACA,GAAIF,OAAO,GAAKnoB,GAAG,CAAG,CAAlB,EAAuBmoB,OAAO,GAAK,CAAnC,EAAwCC,SAAS,GAAKlD,OAAO,CAACiD,OAAD,CAAjE,CAA4E,CAC3E,OAAOlD,QAAQ,CAACkD,OAAD,CAAf,CACA,CACD,IAAIG,GAAG,CAAGpD,OAAO,CAACiD,OAAD,CAAP,CAAmBC,SAAnB,CAA+B,CAAC,CAAhC,CAAoC,CAA9C,CACA,IAAIjpB,IAAI,CAAG,IAAX,CACA,MAAOA,IAAP,CAAa,CACZ,GAAI+lB,OAAO,CAACiD,OAAD,CAAP,EAAoBC,SAApB,EAAiClD,OAAO,CAACiD,OAAO,CAAG,CAAX,CAAP,CAAuBC,SAA5D,CAAuE,CACtEC,KAAK,CAAG,CAACD,SAAS,CAAGlD,OAAO,CAACiD,OAAD,CAApB,GAAkCjD,OAAO,CAACiD,OAAO,CAAG,CAAX,CAAP,CAAuBjD,OAAO,CAACiD,OAAD,CAAhE,CAAR,CACAhpB,IAAI,CAAG,KAAP,CACA,CAHD,IAGO,CACNgpB,OAAO,EAAIG,GAAX,CACA,CACD,GAAIH,OAAO,CAAG,CAAV,EAAeA,OAAO,EAAInoB,GAAG,CAAG,CAApC,CAAuC;CAEtC,GAAImoB,OAAO,GAAKnoB,GAAG,CAAG,CAAtB,CAAyB,CACxB,OAAOilB,QAAQ,CAACkD,OAAD,CAAf,CACA,CACDhpB,IAAI,CAAG,KAAP,CACA,CACD,CACD,OAAO8lB,QAAQ,CAACkD,OAAD,CAAR,CAAoB,CAAClD,QAAQ,CAACkD,OAAO,CAAG,CAAX,CAAR,CAAwBlD,QAAQ,CAACkD,OAAD,CAAjC,EAA8CE,KAAzE,CACA,CAED,SAASE,iBAAT,CAA2B/B,GAA3B,CAAgCC,GAAhC,CAAqCC,GAArC,CAA0CC,GAA1C,CAA+C6B,OAA/C,CAAwDP,UAAxD,CAAoE,CACnE,IAAIQ,EAAE,CAAGP,eAAe,CAACM,OAAD,CAAUP,UAAV,CAAxB,CACA,IAAIS,EAAE,CAAG,EAAID,EAAb,CACA,IAAIE,GAAG,CAAGrD,IAAI,CAAC9J,KAAL,CAAW,CAACkN,EAAE,CAAGA,EAAL,CAAUA,EAAV,CAAelC,GAAG,CAAC,CAAD,CAAlB,CAAwB,CAACiC,EAAE,CAAGC,EAAL,CAAUA,EAAV,CAAeA,EAAE,CAAGD,EAAL,CAAUC,EAAzB,CAA8BA,EAAE,CAAGA,EAAL,CAAUD,EAAzC,EAA+C/B,GAAG,CAAC,CAAD,CAA1E,CAAgF,CAAC+B,EAAE,CAAGA,EAAL,CAAUC,EAAV,CAAeA,EAAE,CAAGD,EAAL,CAAUA,EAAzB,CAA8BA,EAAE,CAAGC,EAAL,CAAUD,EAAzC,EAA+C9B,GAAG,CAAC,CAAD,CAAlI,CAAwI8B,EAAE,CAAGA,EAAL,CAAUA,EAAV,CAAehC,GAAG,CAAC,CAAD,CAA3J,EAAkK,IAA7K,EAAqL,IAA/L,CACA,IAAImC,GAAG,CAAGtD,IAAI,CAAC9J,KAAL,CAAW,CAACkN,EAAE,CAAGA,EAAL,CAAUA,EAAV,CAAelC,GAAG,CAAC,CAAD,CAAlB,CAAwB,CAACiC,EAAE,CAAGC,EAAL,CAAUA,EAAV,CAAeA,EAAE,CAAGD,EAAL,CAAUC,EAAzB,CAA8BA,EAAE,CAAGA,EAAL,CAAUD,EAAzC,EAA+C/B,GAAG,CAAC,CAAD,CAA1E,CAAgF,CAAC+B,EAAE,CAAGA,EAAL,CAAUC,EAAV,CAAeA,EAAE,CAAGD,EAAL,CAAUA,EAAzB,CAA8BA,EAAE,CAAGC,EAAL,CAAUD,EAAzC,EAA+C9B,GAAG,CAAC,CAAD,CAAlI,CAAwI8B,EAAE,CAAGA,EAAL,CAAUA,EAAV,CAAehC,GAAG,CAAC,CAAD,CAA3J,EAAkK,IAA7K,EAAqL,IAA/L,CACA,OAAO,CAACkC,GAAD,CAAMC,GAAN,CAAP,CACA,CAED,IAAIC,mBAAmB,CAAGjmB,gBAAgB,CAAC,SAAD,CAAY,CAAZ,CAA1C,CAEA,SAASkmB,aAAT,CAAuBtC,GAAvB,CAA4BC,GAA5B,CAAiCC,GAAjC,CAAsCC,GAAtC,CAA2CoC,SAA3C,CAAsDC,OAAtD,CAA+Df,UAA/D,CAA2E,CAC1E,GAAIc,SAAS,CAAG,CAAhB,CAAmB,CAClBA,SAAS,CAAG,CAAZ,CACA,CAFD,QAEWA,SAAS,CAAG,CAAhB,CAAmB,CACzBA,SAAS,CAAG,CAAZ,CACA,CACD,IAAIE,EAAE,CAAGf,eAAe,CAACa,SAAD,CAAYd,UAAZ,CAAxB,CACAe,OAAO,CAAGA,OAAO,CAAG,CAAV,CAAc,CAAd,CAAkBA,OAA5B,CACA,IAAIP,EAAE,CAAGP,eAAe,CAACc,OAAD,CAAUf,UAAV,CAAxB,CACA,IAAIloB,CAAJ,CACA,IAAIC,GAAG,CAAGwmB,GAAG,CAACvmB,MAAd,CACA,IAAIipB,EAAE,CAAG,EAAID,EAAb,CACA,IAAIP,EAAE,CAAG,EAAID,EAAb,CACA,IAAIU,MAAM,CAAGD,EAAE,CAAGA,EAAL,CAAUA,EAAvB,CACA,IAAIE,QAAQ,CAAGH,EAAE,CAAGC,EAAL,CAAUA,EAAV,CAAe,CAA9B,CAAiC;CACjC,IAAIG,QAAQ,CAAGJ,EAAE,CAAGA,EAAL,CAAUC,EAAV,CAAe,CAA9B,CAAiC;CACjC,IAAII,MAAM,CAAGL,EAAE,CAAGA,EAAL,CAAUA,EAAvB,CACA;CACA,IAAIM,MAAM,CAAGL,EAAE,CAAGA,EAAL,CAAUR,EAAvB,CACA,IAAIc,QAAQ,CAAGP,EAAE,CAAGC,EAAL,CAAUR,EAAV,CAAeQ,EAAE,CAAGD,EAAL,CAAUP,EAAzB,CAA8BQ,EAAE,CAAGA,EAAL,CAAUT,EAAvD,CAA2D;CAC3D,IAAIgB,QAAQ,CAAGR,EAAE,CAAGA,EAAL,CAAUP,EAAV,CAAeQ,EAAE,CAAGD,EAAL,CAAUR,EAAzB,CAA8BQ,EAAE,CAAGC,EAAL,CAAUT,EAAvD,CAA2D;CAC3D,IAAIiB,MAAM,CAAGT,EAAE,CAAGA,EAAL,CAAUR,EAAvB,CACA;CACA,IAAIkB,MAAM,CAAGT,EAAE,CAAGR,EAAL,CAAUA,EAAvB,CACA,IAAIkB,QAAQ,CAAGX,EAAE,CAAGP,EAAL,CAAUA,EAAV,CAAeQ,EAAE,CAAGT,EAAL,CAAUC,EAAzB,CAA8BQ,EAAE,CAAGR,EAAL,CAAUD,EAAvD,CAA2D;CAC3D,IAAIoB,QAAQ,CAAGZ,EAAE,CAAGR,EAAL,CAAUC,EAAV,CAAeQ,EAAE,CAAGT,EAAL,CAAUA,EAAzB,CAA8BQ,EAAE,CAAGP,EAAL,CAAUD,EAAvD,CAA2D;CAC3D,IAAIqB,MAAM,CAAGb,EAAE,CAAGR,EAAL,CAAUA,EAAvB,CACA;CACA,IAAIsB,MAAM,CAAGrB,EAAE,CAAGA,EAAL,CAAUA,EAAvB,CACA,IAAIsB,QAAQ,CAAGvB,EAAE,CAAGC,EAAL,CAAUA,EAAV,CAAeA,EAAE,CAAGD,EAAL,CAAUC,EAAzB,CAA8BA,EAAE,CAAGA,EAAL,CAAUD,EAAvD,CAA2D;CAC3D,IAAIwB,QAAQ,CAAGxB,EAAE,CAAGA,EAAL,CAAUC,EAAV,CAAeA,EAAE,CAAGD,EAAL,CAAUA,EAAzB,CAA8BA,EAAE,CAAGC,EAAL,CAAUD,EAAvD,CAA2D;CAC3D,IAAIyB,MAAM,CAAGzB,EAAE,CAAGA,EAAL,CAAUA,EAAvB,CACA,IAAK1oB,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B8oB,mBAAmB,CAAC9oB,CAAC,CAAG,CAAL,CAAnB,CAA6BulB,IAAI,CAAC9J,KAAL,CAAW,CAAC2N,MAAM,CAAG3C,GAAG,CAACzmB,CAAD,CAAZ,CAAkBqpB,QAAQ,CAAG1C,GAAG,CAAC3mB,CAAD,CAAhC,CAAsCspB,QAAQ,CAAG1C,GAAG,CAAC5mB,CAAD,CAApD,CAA0DupB,MAAM,CAAG7C,GAAG,CAAC1mB,CAAD,CAAvE,EAA8E,IAAzF,EAAiG,IAA9H,CAAoI;CACpI8oB,mBAAmB,CAAC9oB,CAAC,CAAG,CAAJ,CAAQ,CAAT,CAAnB,CAAiCulB,IAAI,CAAC9J,KAAL,CAAW,CAAC+N,MAAM,CAAG/C,GAAG,CAACzmB,CAAD,CAAZ,CAAkBypB,QAAQ,CAAG9C,GAAG,CAAC3mB,CAAD,CAAhC,CAAsC0pB,QAAQ,CAAG9C,GAAG,CAAC5mB,CAAD,CAApD,CAA0D2pB,MAAM,CAAGjD,GAAG,CAAC1mB,CAAD,CAAvE,EAA8E,IAAzF,EAAiG,IAAlI,CAAwI;CACxI8oB,mBAAmB,CAAC9oB,CAAC,CAAG,CAAJ,CAAQ,CAAT,CAAnB,CAAiCulB,IAAI,CAAC9J,KAAL,CAAW,CAACmO,MAAM,CAAGnD,GAAG,CAACzmB,CAAD,CAAZ,CAAkB6pB,QAAQ,CAAGlD,GAAG,CAAC3mB,CAAD,CAAhC,CAAsC8pB,QAAQ,CAAGlD,GAAG,CAAC5mB,CAAD,CAApD,CAA0D+pB,MAAM,CAAGrD,GAAG,CAAC1mB,CAAD,CAAvE,EAA8E,IAAzF,EAAiG,IAAlI,CAAwI;CACxI8oB,mBAAmB,CAAC9oB,CAAC,CAAG,CAAJ,CAAQ,CAAT,CAAnB,CAAiCulB,IAAI,CAAC9J,KAAL,CAAW,CAACuO,MAAM,CAAGvD,GAAG,CAACzmB,CAAD,CAAZ,CAAkBiqB,QAAQ,CAAGtD,GAAG,CAAC3mB,CAAD,CAAhC,CAAsCkqB,QAAQ,CAAGtD,GAAG,CAAC5mB,CAAD,CAApD,CAA0DmqB,MAAM,CAAGzD,GAAG,CAAC1mB,CAAD,CAAvE,EAA8E,IAAzF,EAAiG,IAAlI,CAAwI;CACxI,CAED,OAAO8oB,mBAAP,CACA,CAED,OAAO,CACN1B,iBAAiB,CAAEA,iBADb,CAEN2B,aAAa,CAAEA,aAFT,CAGNP,iBAAiB,CAAEA,iBAHb,CAINT,eAAe,CAAEA,eAJX,CAKNvC,aAAa,CAAEA,aALT,CAMNQ,aAAa,CAAEA,aANT,CAAP,CAQA,CAED,MAAMoE,GAAG,CAAG9E,WAAW,EAAvB,CAEA,MAAM+E,eAAe,CAAI,UAAY,CACpC,IAAIC,SAAS,CAAGprB,mBAAhB,CACA,IAAIqrB,OAAO,CAAGxmB,IAAI,CAACa,GAAnB,CAEA,SAAS4lB,gBAAT,CAA0BC,QAA1B,CAAoCC,OAApC,CAA6C,CAC5C,IAAIC,UAAU,CAAG,KAAKA,UAAtB,CACA,IAAIC,QAAJ,CACA,GAAI,KAAKC,QAAL,GAAkB,kBAAtB,CAA0C,CACzCD,QAAQ,CAAG/nB,gBAAgB,CAAC,SAAD,CAAY,KAAKioB,EAAL,CAAQ5qB,MAApB,CAA3B,CACA,CACD,IAAI6qB,cAAc,CAAGL,OAAO,CAACM,SAA7B,CACA,IAAIhrB,CAAC,CAAG+qB,cAAR,CACA,IAAI9qB,GAAG,CAAG,KAAKgrB,SAAL,CAAe/qB,MAAf,CAAwB,CAAlC,CACA,IAAId,IAAI,CAAG,IAAX,CACA,IAAI8rB,OAAJ,CACA,IAAIC,WAAJ,CACA,IAAIC,gBAAJ,CAEA,MAAOhsB,IAAP,CAAa,CACZ8rB,OAAO,CAAG,KAAKD,SAAL,CAAejrB,CAAf,CAAV,CACAmrB,WAAW,CAAG,KAAKF,SAAL,CAAejrB,CAAC,CAAG,CAAnB,CAAd,CACA,GAAIA,CAAC,GAAKC,GAAG,CAAG,CAAZ,EAAiBwqB,QAAQ,EAAIU,WAAW,CAACnjB,CAAZ,CAAgB2iB,UAAjD,CAA6D,CAC5D,GAAIO,OAAO,CAAC3jB,CAAZ,CAAe,CACd2jB,OAAO,CAAGC,WAAV,CACA,CACDJ,cAAc,CAAG,CAAjB,CACA,MACA,CACD,GAAKI,WAAW,CAACnjB,CAAZ,CAAgB2iB,UAAjB,CAA+BF,QAAnC,CAA6C,CAC5CM,cAAc,CAAG/qB,CAAjB,CACA,MACA,CACD,GAAIA,CAAC,CAAGC,GAAG,CAAG,CAAd,CAAiB,CAChBD,CAAC,EAAI,CAAL,CACA,CAFD,IAEO,CACN+qB,cAAc,CAAG,CAAjB,CACA3rB,IAAI,CAAG,KAAP,CACA,CACD,CACDgsB,gBAAgB,CAAG,KAAKC,iBAAL,CAAuBrrB,CAAvB,GAA6B,EAAhD,CAEA,IAAImL,CAAJ,CACA,IAAIC,IAAJ,CACA,IAAI2b,IAAJ,CACA,IAAI7b,IAAJ,CACA,IAAID,CAAJ,CACA,IAAIqgB,GAAJ,CACA,IAAIC,WAAW,CAAGJ,WAAW,CAACnjB,CAAZ,CAAgB2iB,UAAlC,CACA,IAAIa,OAAO,CAAGN,OAAO,CAACljB,CAAR,CAAY2iB,UAA1B,CACA,IAAIc,QAAJ,CACA,GAAIP,OAAO,CAACQ,EAAZ,CAAgB,CACf,GAAI,CAACN,gBAAgB,CAAClD,UAAtB,CAAkC,CACjCkD,gBAAgB,CAAClD,UAAjB,CAA8BkC,GAAG,CAACrC,eAAJ,CAAoBmD,OAAO,CAAC1jB,CAA5B,CAA+B2jB,WAAW,CAAC3jB,CAAZ,EAAiB0jB,OAAO,CAACvgB,CAAxD,CAA2DugB,OAAO,CAACQ,EAAnE,CAAuER,OAAO,CAACS,EAA/E,CAA9B,CACA,CACD,IAAIzD,UAAU,CAAGkD,gBAAgB,CAAClD,UAAlC,CACA,GAAIuC,QAAQ,EAAIc,WAAZ,EAA2Bd,QAAQ,CAAGe,OAA1C,CAAmD,CAClD,IAAII,GAAG,CAAGnB,QAAQ,EAAIc,WAAZ,CAA0BrD,UAAU,CAAChF,MAAX,CAAkBhjB,MAAlB,CAA2B,CAArD,CAAyD,CAAnE,CACAkL,IAAI,CAAG8c,UAAU,CAAChF,MAAX,CAAkB0I,GAAlB,EAAuB3E,KAAvB,CAA6B/mB,MAApC,CACA,IAAKiL,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,IAAhB,CAAsBD,CAAC,EAAI,CAA3B,CAA8B,CAC7Byf,QAAQ,CAACzf,CAAD,CAAR,CAAc+c,UAAU,CAAChF,MAAX,CAAkB0I,GAAlB,EAAuB3E,KAAvB,CAA6B9b,CAA7B,CAAd,CACA,CACD;CACA,CAPD,IAOO,CACN,GAAIigB,gBAAgB,CAACS,MAArB,CAA6B,CAC5BP,GAAG,CAAGF,gBAAgB,CAACS,MAAvB,CACA,CAFD,IAEO,CACNP,GAAG,CAAGrK,aAAa,CAACC,eAAd,CAA8BgK,OAAO,CAACne,CAAR,CAAUwW,CAAxC,CAA2C2H,OAAO,CAACne,CAAR,CAAU+e,CAArD,CAAwDZ,OAAO,CAAClrB,CAAR,CAAUujB,CAAlE,CAAqE2H,OAAO,CAAClrB,CAAR,CAAU8rB,CAA/E,CAAkFZ,OAAO,CAACa,CAA1F,EAA6FzI,GAAnG,CACA8H,gBAAgB,CAACS,MAAjB,CAA0BP,GAA1B,CACA,CACDvE,IAAI,CAAGuE,GAAG,CAAC,CAACb,QAAQ,CAAGe,OAAZ,GAAwBD,WAAW,CAAGC,OAAtC,CAAD,CAAV,CACA,IAAIQ,cAAc,CAAG9D,UAAU,CAACP,aAAX,CAA2BZ,IAAhD,CAEA,IAAIkF,WAAJ,CACA,IAAIhH,WAAW,CAAIyF,OAAO,CAACwB,SAAR,CAAoBzB,QAApB,EAAgCC,OAAO,CAACyB,kBAAR,GAA+BnsB,CAAhE,CAAqE0qB,OAAO,CAAC0B,gBAA7E,CAAgG,CAAlH,CACAnhB,CAAC,CAAIyf,OAAO,CAACwB,SAAR,CAAoBzB,QAApB,EAAgCC,OAAO,CAACyB,kBAAR,GAA+BnsB,CAAhE,CAAqE0qB,OAAO,CAAC2B,UAA7E,CAA0F,CAA9F,CACAjtB,IAAI,CAAG,IAAP,CACA8L,IAAI,CAAGgd,UAAU,CAAChF,MAAX,CAAkBhjB,MAAzB,CACA,MAAOd,IAAP,CAAa,CACZ6lB,WAAW,EAAIiD,UAAU,CAAChF,MAAX,CAAkBjY,CAAlB,EAAqB6c,aAApC,CACA,GAAIkE,cAAc,GAAK,CAAnB,EAAwBjF,IAAI,GAAK,CAAjC,EAAsC9b,CAAC,GAAKid,UAAU,CAAChF,MAAX,CAAkBhjB,MAAlB,CAA2B,CAA3E,CAA8E,CAC7EkL,IAAI,CAAG8c,UAAU,CAAChF,MAAX,CAAkBjY,CAAlB,EAAqBgc,KAArB,CAA2B/mB,MAAlC,CACA,IAAKiL,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,IAAhB,CAAsBD,CAAC,EAAI,CAA3B,CAA8B,CAC7Byf,QAAQ,CAACzf,CAAD,CAAR,CAAc+c,UAAU,CAAChF,MAAX,CAAkBjY,CAAlB,EAAqBgc,KAArB,CAA2B9b,CAA3B,CAAd,CACA,CACD,MACA,CAND,QAMW6gB,cAAc,EAAI/G,WAAlB,EAAiC+G,cAAc,CAAG/G,WAAW,CAAGiD,UAAU,CAAChF,MAAX,CAAkBjY,CAAC,CAAG,CAAtB,EAAyB6c,aAA7F,CAA4G,CAClHmE,WAAW,CAAG,CAACD,cAAc,CAAG/G,WAAlB,EAAiCiD,UAAU,CAAChF,MAAX,CAAkBjY,CAAC,CAAG,CAAtB,EAAyB6c,aAAxE,CACA1c,IAAI,CAAG8c,UAAU,CAAChF,MAAX,CAAkBjY,CAAlB,EAAqBgc,KAArB,CAA2B/mB,MAAlC,CACA,IAAKiL,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,IAAhB,CAAsBD,CAAC,EAAI,CAA3B,CAA8B,CAC7Byf,QAAQ,CAACzf,CAAD,CAAR,CAAc+c,UAAU,CAAChF,MAAX,CAAkBjY,CAAlB,EAAqBgc,KAArB,CAA2B9b,CAA3B,EAAgC,CAAC+c,UAAU,CAAChF,MAAX,CAAkBjY,CAAC,CAAG,CAAtB,EAAyBgc,KAAzB,CAA+B9b,CAA/B,EAAoC+c,UAAU,CAAChF,MAAX,CAAkBjY,CAAlB,EAAqBgc,KAArB,CAA2B9b,CAA3B,CAArC,EAAsE8gB,WAApH,CACA,CACD,MACA,CACD,GAAIhhB,CAAC,CAAGC,IAAI,CAAG,CAAf,CAAkB,CACjBD,CAAC,EAAI,CAAL,CACA,CAFD,IAEO,CACN7L,IAAI,CAAG,KAAP,CACA,CACD,CACDsrB,OAAO,CAAC2B,UAAR,CAAqBphB,CAArB,CACAyf,OAAO,CAAC0B,gBAAR,CAA2BnH,WAAW,CAAGiD,UAAU,CAAChF,MAAX,CAAkBjY,CAAlB,EAAqB6c,aAA9D,CACA4C,OAAO,CAACyB,kBAAR,CAA6BnsB,CAA7B,CACA,CACD,CArDD,IAqDO,CACN,IAAIssB,IAAJ,CACA,IAAIC,IAAJ,CACA,IAAIC,GAAJ,CACA,IAAIC,GAAJ,CACA,IAAIC,QAAJ,CACAzsB,GAAG,CAAGirB,OAAO,CAAC1jB,CAAR,CAAUtH,MAAhB,CACAurB,QAAQ,CAAGN,WAAW,CAAC3jB,CAAZ,EAAiB0jB,OAAO,CAACvgB,CAApC,CACA,GAAI,KAAKgiB,EAAL,EAAWzB,OAAO,CAAC3jB,CAAR,GAAc,CAA7B,CAAgC,CAC/B,GAAIkjB,QAAQ,EAAIc,WAAhB,CAA6B,CAC5BX,QAAQ,CAAC,CAAD,CAAR,CAAca,QAAQ,CAAC,CAAD,CAAtB,CACAb,QAAQ,CAAC,CAAD,CAAR,CAAca,QAAQ,CAAC,CAAD,CAAtB,CACAb,QAAQ,CAAC,CAAD,CAAR,CAAca,QAAQ,CAAC,CAAD,CAAtB,CACA,CAJD,QAIWhB,QAAQ,EAAIe,OAAhB,CAAyB,CAC/BZ,QAAQ,CAAC,CAAD,CAAR,CAAcM,OAAO,CAAC1jB,CAAR,CAAU,CAAV,CAAd,CACAojB,QAAQ,CAAC,CAAD,CAAR,CAAcM,OAAO,CAAC1jB,CAAR,CAAU,CAAV,CAAd,CACAojB,QAAQ,CAAC,CAAD,CAAR,CAAcM,OAAO,CAAC1jB,CAAR,CAAU,CAAV,CAAd,CACA,CAJM,IAIA,CACN,IAAIolB,SAAS,CAAGC,gBAAgB,CAAC3B,OAAO,CAAC1jB,CAAT,CAAhC,CACA,IAAIslB,OAAO,CAAGD,gBAAgB,CAACpB,QAAD,CAA9B,CACA,IAAIvV,IAAI,CAAG,CAACuU,QAAQ,CAAGe,OAAZ,GAAwBD,WAAW,CAAGC,OAAtC,CAAX,CACAuB,iBAAiB,CAACnC,QAAD,CAAWoC,KAAK,CAACJ,SAAD,CAAYE,OAAZ,CAAqB5W,IAArB,CAAhB,CAAjB,CACA,CACD,CAfD,IAeO,CACN,IAAKlW,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B,GAAIkrB,OAAO,CAAC3jB,CAAR,GAAc,CAAlB,CAAqB,CACpB,GAAIkjB,QAAQ,EAAIc,WAAhB,CAA6B,CAC5BxE,IAAI,CAAG,CAAP,CACA,CAFD,QAEW0D,QAAQ,CAAGe,OAAf,CAAwB,CAC9BzE,IAAI,CAAG,CAAP,CACA,CAFM,IAEA,CACN,GAAImE,OAAO,CAACne,CAAR,CAAUwW,CAAV,CAAY0J,WAAZ,GAA4B5pB,KAAhC,CAAuC,CACtC,GAAI,CAAC+nB,gBAAgB,CAACS,MAAtB,CAA8B,CAC7BT,gBAAgB,CAACS,MAAjB,CAA0B,EAA1B,CACA,CACD,GAAI,CAACT,gBAAgB,CAACS,MAAjB,CAAwB7rB,CAAxB,CAAL,CAAiC,CAChCssB,IAAI,CAAGpB,OAAO,CAACne,CAAR,CAAUwW,CAAV,CAAYvjB,CAAZ,IAAmB2Z,SAAnB,CAA+BuR,OAAO,CAACne,CAAR,CAAUwW,CAAV,CAAY,CAAZ,CAA/B,CAAgD2H,OAAO,CAACne,CAAR,CAAUwW,CAAV,CAAYvjB,CAAZ,CAAvD,CACAusB,IAAI,CAAGrB,OAAO,CAACne,CAAR,CAAU+e,CAAV,CAAY9rB,CAAZ,IAAmB2Z,SAAnB,CAA+BuR,OAAO,CAACne,CAAR,CAAU+e,CAAV,CAAY,CAAZ,CAA/B,CAAgDZ,OAAO,CAACne,CAAR,CAAU+e,CAAV,CAAY9rB,CAAZ,CAAvD,CACAwsB,GAAG,CAAGtB,OAAO,CAAClrB,CAAR,CAAUujB,CAAV,CAAYvjB,CAAZ,IAAmB2Z,SAAnB,CAA+BuR,OAAO,CAAClrB,CAAR,CAAUujB,CAAV,CAAY,CAAZ,CAA/B,CAAgD2H,OAAO,CAAClrB,CAAR,CAAUujB,CAAV,CAAYvjB,CAAZ,CAAtD,CACAysB,GAAG,CAAGvB,OAAO,CAAClrB,CAAR,CAAU8rB,CAAV,CAAY9rB,CAAZ,IAAmB2Z,SAAnB,CAA+BuR,OAAO,CAAClrB,CAAR,CAAU8rB,CAAV,CAAY,CAAZ,CAA/B,CAAgDZ,OAAO,CAAClrB,CAAR,CAAU8rB,CAAV,CAAY9rB,CAAZ,CAAtD,CACAsrB,GAAG,CAAGrK,aAAa,CAACC,eAAd,CAA8BoL,IAA9B,CAAoCC,IAApC,CAA0CC,GAA1C,CAA+CC,GAA/C,EAAoDnJ,GAA1D,CACA8H,gBAAgB,CAACS,MAAjB,CAAwB7rB,CAAxB,EAA6BsrB,GAA7B,CACA,CAPD,IAOO,CACNA,GAAG,CAAGF,gBAAgB,CAACS,MAAjB,CAAwB7rB,CAAxB,CAAN,CACA,CACD,CAdD,QAcW,CAACorB,gBAAgB,CAACS,MAAtB,CAA8B,CACpCS,IAAI,CAAGpB,OAAO,CAACne,CAAR,CAAUwW,CAAjB,CACAgJ,IAAI,CAAGrB,OAAO,CAACne,CAAR,CAAU+e,CAAjB,CACAU,GAAG,CAAGtB,OAAO,CAAClrB,CAAR,CAAUujB,CAAhB,CACAkJ,GAAG,CAAGvB,OAAO,CAAClrB,CAAR,CAAU8rB,CAAhB,CACAR,GAAG,CAAGrK,aAAa,CAACC,eAAd,CAA8BoL,IAA9B,CAAoCC,IAApC,CAA0CC,GAA1C,CAA+CC,GAA/C,EAAoDnJ,GAA1D,CACA4H,OAAO,CAACE,gBAAR,CAA2BE,GAA3B,CACA,CAPM,IAOA,CACNA,GAAG,CAAGF,gBAAgB,CAACS,MAAvB,CACA,CACD9E,IAAI,CAAGuE,GAAG,CAAC,CAACb,QAAQ,CAAGe,OAAZ,GAAwBD,WAAW,CAAGC,OAAtC,CAAD,CAAV,CACA,CACD,CAEDC,QAAQ,CAAGN,WAAW,CAAC3jB,CAAZ,EAAiB0jB,OAAO,CAACvgB,CAApC,CACA+hB,QAAQ,CAAGxB,OAAO,CAAC3jB,CAAR,GAAc,CAAd,CAAkB2jB,OAAO,CAAC1jB,CAAR,CAAUxH,CAAV,CAAlB,CAAiCkrB,OAAO,CAAC1jB,CAAR,CAAUxH,CAAV,EAAe,CAACyrB,QAAQ,CAACzrB,CAAD,CAAR,CAAckrB,OAAO,CAAC1jB,CAAR,CAAUxH,CAAV,CAAf,EAA+B+mB,IAA1F,CAEA,GAAI,KAAK8D,QAAL,GAAkB,kBAAtB,CAA0C,CACzCD,QAAQ,CAAC5qB,CAAD,CAAR,CAAc0sB,QAAd,CACA,CAFD,IAEO,CACN9B,QAAQ,CAAG8B,QAAX,CACA,CACD,CACD,CACD,CACDhC,OAAO,CAACM,SAAR,CAAoBD,cAApB,CACA,OAAOH,QAAP,CACA,CAED;CACA,SAASoC,KAAT,CAAe9e,CAAf,CAAkBtG,CAAlB,CAAqBI,CAArB,CAAwB,CACvB,IAAIklB,GAAG,CAAG,EAAV,CACA,IAAIC,EAAE,CAAGjf,CAAC,CAAC,CAAD,CAAV,CACA,IAAIkf,EAAE,CAAGlf,CAAC,CAAC,CAAD,CAAV,CACA,IAAImf,EAAE,CAAGnf,CAAC,CAAC,CAAD,CAAV,CACA,IAAIof,EAAE,CAAGpf,CAAC,CAAC,CAAD,CAAV,CACA,IAAIqf,EAAE,CAAG3lB,CAAC,CAAC,CAAD,CAAV,CACA,IAAI4lB,EAAE,CAAG5lB,CAAC,CAAC,CAAD,CAAV,CACA,IAAI6lB,EAAE,CAAG7lB,CAAC,CAAC,CAAD,CAAV,CACA,IAAI8lB,EAAE,CAAG9lB,CAAC,CAAC,CAAD,CAAV,CAEA,IAAI+lB,KAAJ,CACA,IAAIC,KAAJ,CACA,IAAIC,KAAJ,CACA,IAAIC,MAAJ,CACA,IAAIC,MAAJ,CAEAH,KAAK,CAAGT,EAAE,CAAGI,EAAL,CAAUH,EAAE,CAAGI,EAAf,CAAoBH,EAAE,CAAGI,EAAzB,CAA8BH,EAAE,CAAGI,EAA3C,CACA,GAAIE,KAAK,CAAG,GAAZ,CAAiB,CAChBA,KAAK,CAAG,CAACA,KAAT,CACAL,EAAE,CAAG,CAACA,EAAN,CACAC,EAAE,CAAG,CAACA,EAAN,CACAC,EAAE,CAAG,CAACA,EAAN,CACAC,EAAE,CAAG,CAACA,EAAN,CACA,CACD,GAAK,IAAME,KAAP,CAAgB,QAApB,CAA8B,CAC7BD,KAAK,CAAG5pB,IAAI,CAACiqB,IAAL,CAAUJ,KAAV,CAAR,CACAC,KAAK,CAAG9pB,IAAI,CAACkqB,GAAL,CAASN,KAAT,CAAR,CACAG,MAAM,CAAG/pB,IAAI,CAACkqB,GAAL,CAAS,CAAC,IAAMjmB,CAAP,EAAY2lB,KAArB,EAA8BE,KAAvC,CACAE,MAAM,CAAGhqB,IAAI,CAACkqB,GAAL,CAASjmB,CAAC,CAAG2lB,KAAb,EAAsBE,KAA/B,CACA,CALD,IAKO,CACNC,MAAM,CAAG,IAAM9lB,CAAf,CACA+lB,MAAM,CAAG/lB,CAAT,CACA,CACDklB,GAAG,CAAC,CAAD,CAAH,CAASY,MAAM,CAAGX,EAAT,CAAcY,MAAM,CAAGR,EAAhC,CACAL,GAAG,CAAC,CAAD,CAAH,CAASY,MAAM,CAAGV,EAAT,CAAcW,MAAM,CAAGP,EAAhC,CACAN,GAAG,CAAC,CAAD,CAAH,CAASY,MAAM,CAAGT,EAAT,CAAcU,MAAM,CAAGN,EAAhC,CACAP,GAAG,CAAC,CAAD,CAAH,CAASY,MAAM,CAAGR,EAAT,CAAcS,MAAM,CAAGL,EAAhC,CAEA,OAAOR,GAAP,CACA,CAED,SAASH,iBAAT,CAA2BG,GAA3B,CAAgCgB,IAAhC,CAAsC,CACrC,IAAIC,EAAE,CAAGD,IAAI,CAAC,CAAD,CAAb,CACA,IAAIE,EAAE,CAAGF,IAAI,CAAC,CAAD,CAAb,CACA,IAAIG,EAAE,CAAGH,IAAI,CAAC,CAAD,CAAb,CACA,IAAII,EAAE,CAAGJ,IAAI,CAAC,CAAD,CAAb,CACA,IAAIK,OAAO,CAAGxqB,IAAI,CAACyqB,KAAL,CAAW,EAAIJ,EAAJ,CAASE,EAAT,CAAc,EAAIH,EAAJ,CAASE,EAAlC,CAAsC,EAAI,EAAID,EAAJ,CAASA,EAAb,CAAkB,EAAIC,EAAJ,CAASA,EAAjE,CAAd,CACA,IAAII,QAAQ,CAAG1qB,IAAI,CAAC2qB,IAAL,CAAU,EAAIP,EAAJ,CAASC,EAAT,CAAc,EAAIC,EAAJ,CAASC,EAAjC,CAAf,CACA,IAAIK,IAAI,CAAG5qB,IAAI,CAACyqB,KAAL,CAAW,EAAIL,EAAJ,CAASG,EAAT,CAAc,EAAIF,EAAJ,CAASC,EAAlC,CAAsC,EAAI,EAAIF,EAAJ,CAASA,EAAb,CAAkB,EAAIE,EAAJ,CAASA,EAAjE,CAAX,CACAnB,GAAG,CAAC,CAAD,CAAH,CAASqB,OAAO,CAAGtpB,SAAnB,CACAioB,GAAG,CAAC,CAAD,CAAH,CAASuB,QAAQ,CAAGxpB,SAApB,CACAioB,GAAG,CAAC,CAAD,CAAH,CAASyB,IAAI,CAAG1pB,SAAhB,CACA,CAED,SAAS4nB,gBAAT,CAA0B+B,MAA1B,CAAkC,CACjC,IAAIL,OAAO,CAAGK,MAAM,CAAC,CAAD,CAAN,CAAY3pB,SAA1B,CACA,IAAIwpB,QAAQ,CAAGG,MAAM,CAAC,CAAD,CAAN,CAAY3pB,SAA3B,CACA,IAAI0pB,IAAI,CAAGC,MAAM,CAAC,CAAD,CAAN,CAAY3pB,SAAvB,CACA,IAAI4pB,EAAE,CAAG9qB,IAAI,CAAC+qB,GAAL,CAASP,OAAO,CAAG,CAAnB,CAAT,CACA,IAAIQ,EAAE,CAAGhrB,IAAI,CAAC+qB,GAAL,CAASL,QAAQ,CAAG,CAApB,CAAT,CACA,IAAIO,EAAE,CAAGjrB,IAAI,CAAC+qB,GAAL,CAASH,IAAI,CAAG,CAAhB,CAAT,CACA,IAAIM,EAAE,CAAGlrB,IAAI,CAACkqB,GAAL,CAASM,OAAO,CAAG,CAAnB,CAAT,CACA,IAAIW,EAAE,CAAGnrB,IAAI,CAACkqB,GAAL,CAASQ,QAAQ,CAAG,CAApB,CAAT,CACA,IAAIU,EAAE,CAAGprB,IAAI,CAACkqB,GAAL,CAASU,IAAI,CAAG,CAAhB,CAAT,CACA,IAAIS,CAAC,CAAGP,EAAE,CAAGE,EAAL,CAAUC,EAAV,CAAeC,EAAE,CAAGC,EAAL,CAAUC,EAAjC,CACA,IAAI5L,CAAC,CAAG0L,EAAE,CAAGC,EAAL,CAAUF,EAAV,CAAeH,EAAE,CAAGE,EAAL,CAAUI,EAAjC,CACA,IAAIrD,CAAC,CAAGmD,EAAE,CAAGF,EAAL,CAAUC,EAAV,CAAeH,EAAE,CAAGK,EAAL,CAAUC,EAAjC,CACA,IAAIE,CAAC,CAAGR,EAAE,CAAGK,EAAL,CAAUF,EAAV,CAAeC,EAAE,CAAGF,EAAL,CAAUI,EAAjC,CAEA,OAAO,CAAC5L,CAAD,CAAIuI,CAAJ,CAAOuD,CAAP,CAAUD,CAAV,CAAP,CACA,CAED,SAASE,qBAAT,EAAiC,CAChC,IAAI7E,QAAQ,CAAG,KAAKje,IAAL,CAAU+iB,aAAV,CAA0B,KAAK5E,UAA9C,CACA,IAAI1L,QAAQ,CAAG,KAAKgM,SAAL,CAAe,CAAf,EAAkBjjB,CAAlB,CAAsB,KAAK2iB,UAA1C,CACA,IAAI6E,OAAO,CAAG,KAAKvE,SAAL,CAAe,KAAKA,SAAL,CAAe/qB,MAAf,CAAwB,CAAvC,EAA0C8H,CAA1C,CAA8C,KAAK2iB,UAAjE,CACA,GAAI,EAAEF,QAAQ,GAAK,KAAKgF,QAAL,CAAcvD,SAA3B,EAAyC,KAAKuD,QAAL,CAAcvD,SAAd,GAA4B5B,SAA5B,GAA2C,KAAKmF,QAAL,CAAcvD,SAAd,EAA2BsD,OAA3B,EAAsC/E,QAAQ,EAAI+E,OAAnD,EAAgE,KAAKC,QAAL,CAAcvD,SAAd,CAA0BjN,QAA1B,EAAsCwL,QAAQ,CAAGxL,QAA3J,CAA3C,CAAJ,CAAwN,CACvN,GAAI,KAAKwQ,QAAL,CAAcvD,SAAd,EAA2BzB,QAA/B,CAAyC,CACxC,KAAKgF,QAAL,CAActD,kBAAd,CAAmC,CAAC,CAApC,CACA,KAAKsD,QAAL,CAAczE,SAAd,CAA0B,CAA1B,CACA,CAED,IAAI0E,YAAY,CAAG,KAAKlF,gBAAL,CAAsBC,QAAtB,CAAgC,KAAKgF,QAArC,CAAnB,CACA,KAAK3E,EAAL,CAAU4E,YAAV,CACA,CACD,KAAKD,QAAL,CAAcvD,SAAd,CAA0BzB,QAA1B,CACA,YAAYK,EAAZ,CACA,CAED,SAAS6E,SAAT,CAAmB9qB,GAAnB,CAAwB,CACvB,IAAI+qB,eAAJ,CACA,GAAI,KAAK/E,QAAL,GAAkB,gBAAtB,CAAwC,CACvC+E,eAAe,CAAG/qB,GAAG,CAAG,KAAKgrB,IAA7B,CACA,GAAItF,OAAO,CAAC,KAAK9iB,CAAL,CAASmoB,eAAV,CAAP,CAAoC,OAAxC,CAAiD,CAChD,KAAKnoB,CAAL,CAASmoB,eAAT,CACA,KAAKE,IAAL,CAAY,IAAZ,CACA,CACD,CAND,IAMO,CACN,IAAI9vB,CAAC,CAAG,CAAR,CACA,IAAIC,GAAG,CAAG,KAAKwH,CAAL,CAAOvH,MAAjB,CACA,MAAOF,CAAC,CAAGC,GAAX,CAAgB,CACf2vB,eAAe,CAAG/qB,GAAG,CAAC7E,CAAD,CAAH,CAAS,KAAK6vB,IAAhC,CACA,GAAItF,OAAO,CAAC,KAAK9iB,CAAL,CAAOzH,CAAP,EAAY4vB,eAAb,CAAP,CAAuC,OAA3C,CAAoD,CACnD,KAAKnoB,CAAL,CAAOzH,CAAP,EAAY4vB,eAAZ,CACA,KAAKE,IAAL,CAAY,IAAZ,CACA,CACD9vB,CAAC,EAAI,CAAL,CACA,CACD,CACD,CAED,SAAS+vB,sBAAT,EAAkC,CACjC,GAAI,KAAKrQ,IAAL,CAAUlG,UAAV,CAAqBwW,OAArB,GAAiC,KAAKA,OAAtC,EAAiD,CAAC,KAAKC,eAAL,CAAqB/vB,MAA3E,CAAmF,CAClF,OACA,CACD,GAAI,KAAKgwB,IAAT,CAAe,CACd,KAAKP,SAAL,CAAe,KAAK7E,EAApB,EACA,OACA,CACD,KAAKoF,IAAL,CAAY,IAAZ,CACA,KAAKJ,IAAL,CAAY,KAAKK,aAAjB,CACA,IAAInwB,CAAJ,CACA,IAAIC,GAAG,CAAG,KAAKgwB,eAAL,CAAqB/vB,MAA/B,CACA,IAAIkwB,UAAU,CAAG,KAAKC,EAAL,CAAU,KAAKvF,EAAf,CAAoB,KAAK/gB,IAAL,CAAUoB,CAA/C,CACA,IAAKnL,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5BowB,UAAU,CAAG,KAAKH,eAAL,CAAqBjwB,CAArB,EAAwBowB,UAAxB,CAAb,CACA,CACD,KAAKT,SAAL,CAAeS,UAAf,EACA,KAAKD,aAAL,CAAqB,KAArB,CACA,KAAKD,IAAL,CAAY,KAAZ,CACA,KAAKF,OAAL,CAAe,KAAKtQ,IAAL,CAAUlG,UAAV,CAAqBwW,OAApC,CACA,CAED,SAASM,SAAT,CAAmBC,cAAnB,CAAmC,CAClC,KAAKN,eAAL,CAAqB1uB,IAArB,CAA0BgvB,cAA1B,EACA,KAAKnX,SAAL,CAAeoX,kBAAf,CAAkC,IAAlC,EACA,CAED,SAASC,aAAT,CAAuB/Q,IAAvB,CAA6B3V,IAA7B,CAAmC8lB,IAAnC,CAAyCzW,SAAzC,CAAoD,CACnD,KAAKyR,QAAL,CAAgB,gBAAhB,CACA,KAAKgF,IAAL,CAAYA,IAAI,EAAI,CAApB,CACA,KAAK9lB,IAAL,CAAYA,IAAZ,CACA,KAAKtC,CAAL,CAASooB,IAAI,CAAG9lB,IAAI,CAACoB,CAAL,CAAS0kB,IAAZ,CAAmB9lB,IAAI,CAACoB,CAArC,CACA,KAAK2f,EAAL,CAAU/gB,IAAI,CAACoB,CAAf,CACA,KAAK2kB,IAAL,CAAY,KAAZ,CACA,KAAKpQ,IAAL,CAAYA,IAAZ,CACA,KAAKtG,SAAL,CAAiBA,SAAjB,CACA,KAAK5M,IAAL,CAAYkT,IAAI,CAAClT,IAAjB,CACA,KAAKrB,CAAL,CAAS,KAAT,CACA,KAAKklB,EAAL,CAAU,KAAV,CACA,KAAKK,GAAL,CAAW,CAAX,CACA,KAAKT,eAAL,CAAuB,EAAvB,CACA,KAAKE,aAAL,CAAqB,IAArB,CACA,KAAKQ,QAAL,CAAgBZ,sBAAhB,CACA,KAAKJ,SAAL,CAAiBA,SAAjB,CACA,KAAKW,SAAL,CAAiBA,SAAjB,CACA,CAED,SAASM,wBAAT,CAAkClR,IAAlC,CAAwC3V,IAAxC,CAA8C8lB,IAA9C,CAAoDzW,SAApD,CAA+D,CAC9D,KAAKyR,QAAL,CAAgB,kBAAhB,CACA,KAAKgF,IAAL,CAAYA,IAAI,EAAI,CAApB,CACA,KAAK9lB,IAAL,CAAYA,IAAZ,CACA,KAAK+lB,IAAL,CAAY,KAAZ,CACA,KAAKpQ,IAAL,CAAYA,IAAZ,CACA,KAAKtG,SAAL,CAAiBA,SAAjB,CACA,KAAK5M,IAAL,CAAYkT,IAAI,CAAClT,IAAjB,CACA,KAAKrB,CAAL,CAAS,KAAT,CACA,KAAKklB,EAAL,CAAU,KAAV,CACA,KAAKL,OAAL,CAAe,CAAC,CAAhB,CACA,IAAIhwB,CAAJ,CACA,IAAIC,GAAG,CAAG8J,IAAI,CAACoB,CAAL,CAAOjL,MAAjB,CACA,KAAKuH,CAAL,CAAS5E,gBAAgB,CAAC,SAAD,CAAY5C,GAAZ,CAAzB,CACA,KAAK6qB,EAAL,CAAUjoB,gBAAgB,CAAC,SAAD,CAAY5C,GAAZ,CAA1B,CACA,KAAKywB,GAAL,CAAW7tB,gBAAgB,CAAC,SAAD,CAAY5C,GAAZ,CAA3B,CACA,IAAKD,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B,KAAKyH,CAAL,CAAOzH,CAAP,EAAY+J,IAAI,CAACoB,CAAL,CAAOnL,CAAP,EAAY,KAAK6vB,IAA7B,CACA,KAAK/E,EAAL,CAAQ9qB,CAAR,EAAa+J,IAAI,CAACoB,CAAL,CAAOnL,CAAP,CAAb,CACA,CACD,KAAKmwB,aAAL,CAAqB,IAArB,CACA,KAAKF,eAAL,CAAuB,EAAvB,CACA,KAAKU,QAAL,CAAgBZ,sBAAhB,CACA,KAAKJ,SAAL,CAAiBA,SAAjB,CACA,KAAKW,SAAL,CAAiBA,SAAjB,CACA,CAED,SAASO,sBAAT,CAAgCnR,IAAhC,CAAsC3V,IAAtC,CAA4C8lB,IAA5C,CAAkDzW,SAAlD,CAA6D,CAC5D,KAAKyR,QAAL,CAAgB,gBAAhB,CACA,KAAKI,SAAL,CAAiBlhB,IAAI,CAACoB,CAAtB,CACA,KAAKkgB,iBAAL,CAAyB,EAAzB,CACA,KAAKV,UAAL,CAAkBjL,IAAI,CAAC3V,IAAL,CAAUiE,EAA5B,CACA,KAAKgiB,OAAL,CAAe,CAAC,CAAhB,CACA,KAAKP,QAAL,CAAgB,CACfvD,SAAS,CAAE5B,SADI,CACOU,SAAS,CAAE,CADlB,CACqBzrB,KAAK,CAAE,CAD5B,CAC+B4sB,kBAAkB,CAAE,CAAC,CADpD,CAAhB,CAGA,KAAKhhB,CAAL,CAAS,IAAT,CACA,KAAKklB,EAAL,CAAU,IAAV,CACA,KAAKtmB,IAAL,CAAYA,IAAZ,CACA,KAAK8lB,IAAL,CAAYA,IAAI,EAAI,CAApB,CACA,KAAKnQ,IAAL,CAAYA,IAAZ,CACA,KAAKtG,SAAL,CAAiBA,SAAjB,CACA,KAAK5M,IAAL,CAAYkT,IAAI,CAAClT,IAAjB,CACA,KAAK/E,CAAL,CAAS6iB,SAAT,CACA,KAAKQ,EAAL,CAAUR,SAAV,CACA,KAAK6F,aAAL,CAAqB,IAArB,CACA,KAAKQ,QAAL,CAAgBZ,sBAAhB,CACA,KAAKJ,SAAL,CAAiBA,SAAjB,CACA,KAAKnF,gBAAL,CAAwBA,gBAAxB,CACA,KAAKyF,eAAL,CAAuB,CAACX,qBAAqB,CAAClc,IAAtB,CAA2B,IAA3B,CAAD,CAAvB,CACA,KAAKkd,SAAL,CAAiBA,SAAjB,CACA,CAED,SAASQ,iCAAT,CAA2CpR,IAA3C,CAAiD3V,IAAjD,CAAuD8lB,IAAvD,CAA6DzW,SAA7D,CAAwE,CACvE,KAAKyR,QAAL,CAAgB,kBAAhB,CACA,IAAI7qB,CAAJ,CACA,IAAIC,GAAG,CAAG8J,IAAI,CAACoB,CAAL,CAAOjL,MAAjB,CACA,IAAIsH,CAAJ,CACA,IAAImD,CAAJ,CACA,IAAI+gB,EAAJ,CACA,IAAIC,EAAJ,CACA,IAAK3rB,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAG,CAAG,CAAtB,CAAyBD,CAAC,EAAI,CAA9B,CAAiC,CAChC,GAAI+J,IAAI,CAACoB,CAAL,CAAOnL,CAAP,EAAU0rB,EAAV,EAAgB3hB,IAAI,CAACoB,CAAL,CAAOnL,CAAP,EAAUwH,CAA1B,EAA+BuC,IAAI,CAACoB,CAAL,CAAOnL,CAAC,CAAG,CAAX,CAA/B,EAAgD+J,IAAI,CAACoB,CAAL,CAAOnL,CAAC,CAAG,CAAX,EAAcwH,CAAlE,CAAqE,CACpEA,CAAC,CAAGuC,IAAI,CAACoB,CAAL,CAAOnL,CAAP,EAAUwH,CAAd,CACAmD,CAAC,CAAGZ,IAAI,CAACoB,CAAL,CAAOnL,CAAC,CAAG,CAAX,EAAcwH,CAAlB,CACAkkB,EAAE,CAAG3hB,IAAI,CAACoB,CAAL,CAAOnL,CAAP,EAAU0rB,EAAf,CACAC,EAAE,CAAG5hB,IAAI,CAACoB,CAAL,CAAOnL,CAAP,EAAU2rB,EAAf,CACA,GAAKnkB,CAAC,CAACtH,MAAF,GAAa,CAAb,EAAkB,EAAEsH,CAAC,CAAC,CAAD,CAAD,GAASmD,CAAC,CAAC,CAAD,CAAV,EAAiBnD,CAAC,CAAC,CAAD,CAAD,GAASmD,CAAC,CAAC,CAAD,CAA7B,CAAlB,EAAuDyf,GAAG,CAAC5E,aAAJ,CAAkBhe,CAAC,CAAC,CAAD,CAAnB,CAAwBA,CAAC,CAAC,CAAD,CAAzB,CAA8BmD,CAAC,CAAC,CAAD,CAA/B,CAAoCA,CAAC,CAAC,CAAD,CAArC,CAA0CnD,CAAC,CAAC,CAAD,CAAD,CAAOkkB,EAAE,CAAC,CAAD,CAAnD,CAAwDlkB,CAAC,CAAC,CAAD,CAAD,CAAOkkB,EAAE,CAAC,CAAD,CAAjE,CAAvD,EAAgItB,GAAG,CAAC5E,aAAJ,CAAkBhe,CAAC,CAAC,CAAD,CAAnB,CAAwBA,CAAC,CAAC,CAAD,CAAzB,CAA8BmD,CAAC,CAAC,CAAD,CAA/B,CAAoCA,CAAC,CAAC,CAAD,CAArC,CAA0CA,CAAC,CAAC,CAAD,CAAD,CAAOghB,EAAE,CAAC,CAAD,CAAnD,CAAwDhhB,CAAC,CAAC,CAAD,CAAD,CAAOghB,EAAE,CAAC,CAAD,CAAjE,CAAjI,EAA4MnkB,CAAC,CAACtH,MAAF,GAAa,CAAb,EAAkB,EAAEsH,CAAC,CAAC,CAAD,CAAD,GAASmD,CAAC,CAAC,CAAD,CAAV,EAAiBnD,CAAC,CAAC,CAAD,CAAD,GAASmD,CAAC,CAAC,CAAD,CAA3B,EAAkCnD,CAAC,CAAC,CAAD,CAAD,GAASmD,CAAC,CAAC,CAAD,CAA9C,CAAlB,EAAwEyf,GAAG,CAACpE,aAAJ,CAAkBxe,CAAC,CAAC,CAAD,CAAnB,CAAwBA,CAAC,CAAC,CAAD,CAAzB,CAA8BA,CAAC,CAAC,CAAD,CAA/B,CAAoCmD,CAAC,CAAC,CAAD,CAArC,CAA0CA,CAAC,CAAC,CAAD,CAA3C,CAAgDA,CAAC,CAAC,CAAD,CAAjD,CAAsDnD,CAAC,CAAC,CAAD,CAAD,CAAOkkB,EAAE,CAAC,CAAD,CAA/D,CAAoElkB,CAAC,CAAC,CAAD,CAAD,CAAOkkB,EAAE,CAAC,CAAD,CAA7E,CAAkFlkB,CAAC,CAAC,CAAD,CAAD,CAAOkkB,EAAE,CAAC,CAAD,CAA3F,CAAxE,EAA2KtB,GAAG,CAACpE,aAAJ,CAAkBxe,CAAC,CAAC,CAAD,CAAnB,CAAwBA,CAAC,CAAC,CAAD,CAAzB,CAA8BA,CAAC,CAAC,CAAD,CAA/B,CAAoCmD,CAAC,CAAC,CAAD,CAArC,CAA0CA,CAAC,CAAC,CAAD,CAA3C,CAAgDA,CAAC,CAAC,CAAD,CAAjD,CAAsDA,CAAC,CAAC,CAAD,CAAD,CAAOghB,EAAE,CAAC,CAAD,CAA/D,CAAoEhhB,CAAC,CAAC,CAAD,CAAD,CAAOghB,EAAE,CAAC,CAAD,CAA7E,CAAkFhhB,CAAC,CAAC,CAAD,CAAD,CAAOghB,EAAE,CAAC,CAAD,CAA3F,CAA3X,CAA6d,CAC5d5hB,IAAI,CAACoB,CAAL,CAAOnL,CAAP,EAAU0rB,EAAV,CAAe,IAAf,CACA3hB,IAAI,CAACoB,CAAL,CAAOnL,CAAP,EAAU2rB,EAAV,CAAe,IAAf,CACA,CACD,GAAInkB,CAAC,CAAC,CAAD,CAAD,GAASmD,CAAC,CAAC,CAAD,CAAV,EAAiBnD,CAAC,CAAC,CAAD,CAAD,GAASmD,CAAC,CAAC,CAAD,CAA3B,EAAkC+gB,EAAE,CAAC,CAAD,CAAF,GAAU,CAA5C,EAAiDA,EAAE,CAAC,CAAD,CAAF,GAAU,CAA3D,EAAgEC,EAAE,CAAC,CAAD,CAAF,GAAU,CAA1E,EAA+EA,EAAE,CAAC,CAAD,CAAF,GAAU,CAA7F,CAAgG,CAC/F,GAAInkB,CAAC,CAACtH,MAAF,GAAa,CAAb,EAAmBsH,CAAC,CAAC,CAAD,CAAD,GAASmD,CAAC,CAAC,CAAD,CAAV,EAAiB+gB,EAAE,CAAC,CAAD,CAAF,GAAU,CAA3B,EAAgCC,EAAE,CAAC,CAAD,CAAF,GAAU,CAAjE,CAAqE,CACpE5hB,IAAI,CAACoB,CAAL,CAAOnL,CAAP,EAAU0rB,EAAV,CAAe,IAAf,CACA3hB,IAAI,CAACoB,CAAL,CAAOnL,CAAP,EAAU2rB,EAAV,CAAe,IAAf,CACA,CACD,CACD,CACD,CACD,KAAKsE,eAAL,CAAuB,CAACX,qBAAqB,CAAClc,IAAtB,CAA2B,IAA3B,CAAD,CAAvB,CACA,KAAKrJ,IAAL,CAAYA,IAAZ,CACA,KAAKkhB,SAAL,CAAiBlhB,IAAI,CAACoB,CAAtB,CACA,KAAKkgB,iBAAL,CAAyB,EAAzB,CACA,KAAKV,UAAL,CAAkBjL,IAAI,CAAC3V,IAAL,CAAUiE,EAA5B,CACA,KAAK7C,CAAL,CAAS,IAAT,CACA,KAAKklB,EAAL,CAAU,IAAV,CACA,KAAKF,aAAL,CAAqB,IAArB,CACA,KAAKN,IAAL,CAAYA,IAAI,EAAI,CAApB,CACA,KAAKnQ,IAAL,CAAYA,IAAZ,CACA,KAAKtG,SAAL,CAAiBA,SAAjB,CACA,KAAK5M,IAAL,CAAYkT,IAAI,CAAClT,IAAjB,CACA,KAAKmkB,QAAL,CAAgBZ,sBAAhB,CACA,KAAKJ,SAAL,CAAiBA,SAAjB,CACA,KAAKnF,gBAAL,CAAwBA,gBAAxB,CACA,KAAKwF,OAAL,CAAe,CAAC,CAAhB,CACA,IAAIe,MAAM,CAAGhnB,IAAI,CAACoB,CAAL,CAAO,CAAP,EAAU3D,CAAV,CAAYtH,MAAzB,CACA,KAAKuH,CAAL,CAAS5E,gBAAgB,CAAC,SAAD,CAAYkuB,MAAZ,CAAzB,CACA,KAAKjG,EAAL,CAAUjoB,gBAAgB,CAAC,SAAD,CAAYkuB,MAAZ,CAA1B,CACA,IAAK/wB,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAG+wB,MAAhB,CAAwB/wB,CAAC,EAAI,CAA7B,CAAgC,CAC/B,KAAKyH,CAAL,CAAOzH,CAAP,EAAYsqB,SAAZ,CACA,KAAKQ,EAAL,CAAQ9qB,CAAR,EAAasqB,SAAb,CACA,CACD,KAAKmF,QAAL,CAAgB,CAAEvD,SAAS,CAAE5B,SAAb,CAAwBU,SAAS,CAAE,CAAnC,CAAsCzrB,KAAK,CAAEsD,gBAAgB,CAAC,SAAD,CAAYkuB,MAAZ,CAA7D,CAAhB,CACA,KAAKT,SAAL,CAAiBA,SAAjB,CACA,CAED,SAASU,OAAT,CAAiBtR,IAAjB,CAAuB3V,IAAvB,CAA6BrK,IAA7B,CAAmCmwB,IAAnC,CAAyCzW,SAAzC,CAAoD,CACnD,IAAItR,CAAJ,CACA,GAAI,CAACiC,IAAI,CAACoB,CAAL,CAAOjL,MAAZ,CAAoB,CACnB4H,CAAC,CAAG,IAAI2oB,aAAJ,CAAkB/Q,IAAlB,CAAwB3V,IAAxB,CAA8B8lB,IAA9B,CAAoCzW,SAApC,CAAJ,CACA,CAFD,QAEW,OAAQrP,IAAI,CAACoB,CAAL,CAAO,CAAP,CAAR,GAAuB,QAA3B,CAAqC,CAC3CrD,CAAC,CAAG,IAAI8oB,wBAAJ,CAA6BlR,IAA7B,CAAmC3V,IAAnC,CAAyC8lB,IAAzC,CAA+CzW,SAA/C,CAAJ,CACA,CAFM,IAEA,CACN,OAAQ1Z,IAAR,EACC,MAAA,CACCoI,CAAC,CAAG,IAAI+oB,sBAAJ,CAA2BnR,IAA3B,CAAiC3V,IAAjC,CAAuC8lB,IAAvC,CAA6CzW,SAA7C,CAAJ,CACA,MACD,MAAA,CACCtR,CAAC,CAAG,IAAIgpB,iCAAJ,CAAsCpR,IAAtC,CAA4C3V,IAA5C,CAAkD8lB,IAAlD,CAAwDzW,SAAxD,CAAJ,CACA,MACD,QACC,MARF,CAUA,CACD,GAAItR,CAAC,CAACmoB,eAAF,CAAkB/vB,MAAtB,CAA8B,CAC7BkZ,SAAS,CAACoX,kBAAV,CAA6B1oB,CAA7B,EACA,CACD,OAAOA,CAAP,CACA,CAED,IAAIyL,EAAE,CAAG,CACRyd,OAAO,CAAEA,OADD,CAAT,CAGA,OAAOzd,EAAP,CACA,CAvdwB,EAAzB,CAydA,SAAS0d,wBAAT,EAAoC,EACpCA,wBAAwB,CAAC7wB,SAAzB,CAAqC,CACpCowB,kBAAkB,CAAE,SAAU7vB,IAAV,CAAgB,CACnC,GAAI,KAAKuwB,iBAAL,CAAuB3hB,OAAvB,CAA+B5O,IAA/B,IAAyC,CAAC,CAA9C,CAAiD,CAChD,KAAKuwB,iBAAL,CAAuB3vB,IAAvB,CAA4BZ,IAA5B,EACA,KAAKyY,SAAL,CAAeoX,kBAAf,CAAkC,IAAlC,EACA,KAAKW,WAAL,CAAmB,IAAnB,CACA,CACD,CAPmC,CAQpCC,wBAAwB,CAAE,UAAY,CACrC,KAAKtB,IAAL,CAAY,KAAZ,CACA,IAAI9vB,CAAJ,CACA,IAAIC,GAAG,CAAG,KAAKixB,iBAAL,CAAuBhxB,MAAjC,CACA,IAAKF,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B,KAAKkxB,iBAAL,CAAuBlxB,CAAvB,EAA0B2wB,QAA1B,GACA,GAAI,KAAKO,iBAAL,CAAuBlxB,CAAvB,EAA0B8vB,IAA9B,CAAoC,CACnC,KAAKA,IAAL,CAAY,IAAZ,CACA,CACD,CACD,CAlBmC,CAmBpCuB,4BAA4B,CAAE,SAAUjY,SAAV,CAAqB,CAClD,KAAKA,SAAL,CAAiBA,SAAjB,CACA,KAAK8X,iBAAL,CAAyB,EAAzB,CACA,KAAKpB,IAAL,CAAY,KAAZ,CACA,KAAKqB,WAAL,CAAmB,KAAnB,CACA,CAxBmC,CAArC,CA2BA,MAAMG,SAAS,CAAI,UAAY,CAC9B,SAAStM,MAAT,EAAkB,CACjB,OAAOniB,gBAAgB,CAAC,SAAD,CAAY,CAAZ,CAAvB,CACA,CACD,OAAOyhB,WAAW,CAAC,CAAD,CAAIU,MAAJ,CAAlB,CACA,CALkB,EAAnB,CAOA,SAASuM,SAAT,EAAqB,CACpB,KAAK9iB,CAAL,CAAS,KAAT,CACA,KAAKiW,OAAL,CAAe,CAAf,CACA,KAAKC,UAAL,CAAkB,CAAlB,CACA,KAAKld,CAAL,CAASrE,gBAAgB,CAAC,KAAKuhB,UAAN,CAAzB,CACA,KAAK5X,CAAL,CAAS3J,gBAAgB,CAAC,KAAKuhB,UAAN,CAAzB,CACA,KAAK3kB,CAAL,CAASoD,gBAAgB,CAAC,KAAKuhB,UAAN,CAAzB,CACA,CAED4M,SAAS,CAACnxB,SAAV,CAAoBoxB,WAApB,CAAkC,SAAU5iB,MAAV,CAAkB3O,GAAlB,CAAuB,CACxD,KAAKwO,CAAL,CAASG,MAAT,CACA,KAAK6iB,SAAL,CAAexxB,GAAf,EACA,IAAID,CAAC,CAAG,CAAR,CACA,MAAOA,CAAC,CAAGC,GAAX,CAAgB,CACf,KAAKwH,CAAL,CAAOzH,CAAP,EAAYsxB,SAAS,CAACzM,UAAV,EAAZ,CACA,KAAK9X,CAAL,CAAO/M,CAAP,EAAYsxB,SAAS,CAACzM,UAAV,EAAZ,CACA,KAAK7kB,CAAL,CAAOA,CAAP,EAAYsxB,SAAS,CAACzM,UAAV,EAAZ,CACA7kB,CAAC,EAAI,CAAL,CACA,CACD,CAVD,CAYAuxB,SAAS,CAACnxB,SAAV,CAAoBqxB,SAApB,CAAgC,SAAUxxB,GAAV,CAAe,CAC9C,MAAO,KAAK0kB,UAAL,CAAkB1kB,GAAzB,CAA8B,CAC7B,KAAKyxB,iBAAL,GACA,CACD,KAAKhN,OAAL,CAAezkB,GAAf,CACA,CALD,CAOAsxB,SAAS,CAACnxB,SAAV,CAAoBsxB,iBAApB,CAAwC,UAAY,CACnD,KAAKjqB,CAAL,CAAS,KAAKA,CAAL,CAAO8Y,MAAP,CAAcnd,gBAAgB,CAAC,KAAKuhB,UAAN,CAA9B,CAAT,CACA,KAAK3kB,CAAL,CAAS,KAAKA,CAAL,CAAOugB,MAAP,CAAcnd,gBAAgB,CAAC,KAAKuhB,UAAN,CAA9B,CAAT,CACA,KAAK5X,CAAL,CAAS,KAAKA,CAAL,CAAOwT,MAAP,CAAcnd,gBAAgB,CAAC,KAAKuhB,UAAN,CAA9B,CAAT,CACA,KAAKA,UAAL,EAAmB,CAAnB,CACA,CALD,CAOA4M,SAAS,CAACnxB,SAAV,CAAoBuxB,OAApB,CAA8B,SAAUpO,CAAV,CAAauI,CAAb,CAAgBpsB,IAAhB,CAAsBkyB,GAAtB,CAA2BvQ,OAA3B,CAAoC,CACjE,IAAIte,GAAJ,CACA,KAAK2hB,OAAL,CAAe3gB,IAAI,CAACO,GAAL,CAAS,KAAKogB,OAAd,CAAuBkN,GAAG,CAAG,CAA7B,CAAf,CACA,GAAI,KAAKlN,OAAL,EAAgB,KAAKC,UAAzB,CAAqC,CACpC,KAAK+M,iBAAL,GACA,CACD,OAAQhyB,IAAR,EACC,IAAK,GAAL,CACCqD,GAAG,CAAG,KAAK0E,CAAX,CACA,MACD,IAAK,GAAL,CACC1E,GAAG,CAAG,KAAK/C,CAAX,CACA,MACD,IAAK,GAAL,CACC+C,GAAG,CAAG,KAAKgK,CAAX,CACA,MACD,QACChK,GAAG,CAAG,EAAN,CACA,MAZF,CAcA,GAAI,CAACA,GAAG,CAAC6uB,GAAD,CAAJ,EAAc7uB,GAAG,CAAC6uB,GAAD,CAAH,EAAY,CAACvQ,OAA/B,CAAyC,CACxCte,GAAG,CAAC6uB,GAAD,CAAH,CAAWN,SAAS,CAACzM,UAAV,EAAX,CACA,CACD9hB,GAAG,CAAC6uB,GAAD,CAAH,CAAS,CAAT,EAAcrO,CAAd,CACAxgB,GAAG,CAAC6uB,GAAD,CAAH,CAAS,CAAT,EAAc9F,CAAd,CACA,CAzBD,CA2BAyF,SAAS,CAACnxB,SAAV,CAAoByxB,WAApB,CAAkC,SAAUC,EAAV,CAAcC,EAAd,CAAkBC,EAAlB,CAAsBC,EAAtB,CAA0BC,EAA1B,CAA8BC,EAA9B,CAAkCP,GAAlC,CAAuCvQ,OAAvC,CAAgD,CACjF,KAAKsQ,OAAL,CAAaG,EAAb,CAAiBC,EAAjB,CAAqB,GAArB,CAA0BH,GAA1B,CAA+BvQ,OAA/B,EACA,KAAKsQ,OAAL,CAAaK,EAAb,CAAiBC,EAAjB,CAAqB,GAArB,CAA0BL,GAA1B,CAA+BvQ,OAA/B,EACA,KAAKsQ,OAAL,CAAaO,EAAb,CAAiBC,EAAjB,CAAqB,GAArB,CAA0BP,GAA1B,CAA+BvQ,OAA/B,EACA,CAJD,CAMAkQ,SAAS,CAACnxB,SAAV,CAAoBgyB,OAApB,CAA8B,UAAY,CACzC,IAAIC,OAAO,CAAG,IAAId,SAAJ,EAAd,CACAc,OAAO,CAACb,WAAR,CAAoB,KAAK/iB,CAAzB,CAA4B,KAAKiW,OAAjC,EACA,IAAI4N,QAAQ,CAAG,KAAK7qB,CAApB,CACA,IAAI8qB,SAAS,CAAG,KAAKxlB,CAArB,CACA,IAAIylB,QAAQ,CAAG,KAAKxyB,CAApB,CACA,IAAI8d,IAAI,CAAG,CAAX,CACA,GAAI,KAAKrP,CAAT,CAAY,CACX4jB,OAAO,CAACR,WAAR,CAAoBS,QAAQ,CAAC,CAAD,CAAR,CAAY,CAAZ,CAApB,CAAoCA,QAAQ,CAAC,CAAD,CAAR,CAAY,CAAZ,CAApC,CAAoDE,QAAQ,CAAC,CAAD,CAAR,CAAY,CAAZ,CAApD,CAAoEA,QAAQ,CAAC,CAAD,CAAR,CAAY,CAAZ,CAApE,CAAoFD,SAAS,CAAC,CAAD,CAAT,CAAa,CAAb,CAApF,CAAqGA,SAAS,CAAC,CAAD,CAAT,CAAa,CAAb,CAArG,CAAsH,CAAtH,CAAyH,KAAzH,EACAzU,IAAI,CAAG,CAAP,CACA,CACD,IAAI2U,GAAG,CAAG,KAAK/N,OAAL,CAAe,CAAzB,CACA,IAAIzkB,GAAG,CAAG,KAAKykB,OAAf,CAEA,IAAI1kB,CAAJ,CACA,IAAKA,CAAC,CAAG8d,IAAT,CAAe9d,CAAC,CAAGC,GAAnB,CAAwBD,CAAC,EAAI,CAA7B,CAAgC,CAC/BqyB,OAAO,CAACR,WAAR,CAAoBS,QAAQ,CAACG,GAAD,CAAR,CAAc,CAAd,CAApB,CAAsCH,QAAQ,CAACG,GAAD,CAAR,CAAc,CAAd,CAAtC,CAAwDD,QAAQ,CAACC,GAAD,CAAR,CAAc,CAAd,CAAxD,CAA0ED,QAAQ,CAACC,GAAD,CAAR,CAAc,CAAd,CAA1E,CAA4FF,SAAS,CAACE,GAAD,CAAT,CAAe,CAAf,CAA5F,CAA+GF,SAAS,CAACE,GAAD,CAAT,CAAe,CAAf,CAA/G,CAAkIzyB,CAAlI,CAAqI,KAArI,EACAyyB,GAAG,EAAI,CAAP,CACA,CACD,OAAOJ,OAAP,CACA,CApBD,CAsBA,MAAMK,SAAS,CAAI,UAAY,CAC9B,SAAS1N,MAAT,EAAkB,CACjB,WAAWuM,SAAJ,EAAP,CACA,CAED,SAASzM,OAAT,CAAiB6N,SAAjB,CAA4B,CAC3B,IAAI1yB,GAAG,CAAG0yB,SAAS,CAACjO,OAApB,CACA,IAAI1kB,CAAJ,CACA,IAAKA,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5BsxB,SAAS,CAACxM,OAAV,CAAkB6N,SAAS,CAAClrB,CAAV,CAAYzH,CAAZ,CAAlB,EACAsxB,SAAS,CAACxM,OAAV,CAAkB6N,SAAS,CAAC3yB,CAAV,CAAYA,CAAZ,CAAlB,EACAsxB,SAAS,CAACxM,OAAV,CAAkB6N,SAAS,CAAC5lB,CAAV,CAAY/M,CAAZ,CAAlB,EACA2yB,SAAS,CAAClrB,CAAV,CAAYzH,CAAZ,EAAiB,IAAjB,CACA2yB,SAAS,CAAC3yB,CAAV,CAAYA,CAAZ,EAAiB,IAAjB,CACA2yB,SAAS,CAAC5lB,CAAV,CAAY/M,CAAZ,EAAiB,IAAjB,CACA,CACD2yB,SAAS,CAACjO,OAAV,CAAoB,CAApB,CACAiO,SAAS,CAAClkB,CAAV,CAAc,KAAd,CACA,CAED,SAASmkB,KAAT,CAAeC,KAAf,CAAsB,CACrB,IAAIC,MAAM,CAAGC,OAAO,CAAClO,UAAR,EAAb,CACA,IAAI7kB,CAAJ,CACA,IAAIC,GAAG,CAAG4yB,KAAK,CAACnO,OAAN,GAAkB/K,SAAlB,CAA8BkZ,KAAK,CAACprB,CAAN,CAAQvH,MAAtC,CAA+C2yB,KAAK,CAACnO,OAA/D,CACAoO,MAAM,CAACrB,SAAP,CAAiBxxB,GAAjB,EACA6yB,MAAM,CAACrkB,CAAP,CAAWokB,KAAK,CAACpkB,CAAjB,CAEA,IAAKzO,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B8yB,MAAM,CAACjB,WAAP,CAAmBgB,KAAK,CAACprB,CAAN,CAAQzH,CAAR,EAAW,CAAX,CAAnB,CAAkC6yB,KAAK,CAACprB,CAAN,CAAQzH,CAAR,EAAW,CAAX,CAAlC,CAAiD6yB,KAAK,CAAC9lB,CAAN,CAAQ/M,CAAR,EAAW,CAAX,CAAjD,CAAgE6yB,KAAK,CAAC9lB,CAAN,CAAQ/M,CAAR,EAAW,CAAX,CAAhE,CAA+E6yB,KAAK,CAAC7yB,CAAN,CAAQA,CAAR,EAAW,CAAX,CAA/E,CAA8F6yB,KAAK,CAAC7yB,CAAN,CAAQA,CAAR,EAAW,CAAX,CAA9F,CAA6GA,CAA7G,EACA,CACD,OAAO8yB,MAAP,CACA,CAED,IAAIC,OAAO,CAAGzO,WAAW,CAAC,CAAD,CAAIU,MAAJ,CAAYF,OAAZ,CAAzB,CACAiO,OAAO,CAACH,KAAR,CAAgBA,KAAhB,CAEA,OAAOG,OAAP,CACA,CArCkB,EAAnB,CAuCA,SAASC,eAAT,EAA2B,CAC1B,KAAKtO,OAAL,CAAe,CAAf,CACA,KAAKC,UAAL,CAAkB,CAAlB,CACA,KAAK1Y,MAAL,CAAc7I,gBAAgB,CAAC,KAAKuhB,UAAN,CAA9B,CACA,CAEDqO,eAAe,CAAC5yB,SAAhB,CAA0B6yB,QAA1B,CAAqC,SAAU5L,SAAV,CAAqB,CACzD,GAAI,KAAK3C,OAAL,GAAiB,KAAKC,UAA1B,CAAsC,CACrC,KAAK1Y,MAAL,CAAc,KAAKA,MAAL,CAAYsU,MAAZ,CAAmBnd,gBAAgB,CAAC,KAAKuhB,UAAN,CAAnC,CAAd,CACA,KAAKA,UAAL,EAAmB,CAAnB,CACA,CACD,KAAK1Y,MAAL,CAAY,KAAKyY,OAAjB,EAA4B2C,SAA5B,CACA,KAAK3C,OAAL,EAAgB,CAAhB,CACA,CAPD,CASAsO,eAAe,CAAC5yB,SAAhB,CAA0B8yB,aAA1B,CAA0C,UAAY,CACrD,IAAIlzB,CAAJ,CACA,IAAKA,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAG,KAAK0kB,OAArB,CAA8B1kB,CAAC,EAAI,CAAnC,CAAsC,CACrC0yB,SAAS,CAAC5N,OAAV,CAAkB,KAAK7Y,MAAL,CAAYjM,CAAZ,CAAlB,EACA,CACD,KAAK0kB,OAAL,CAAe,CAAf,CACA,CAND,CAQA,MAAMyO,mBAAmB,CAAI,UAAY,CACxC,IAAI5f,EAAE,CAAG,CACR6f,kBAAkB,CAAEA,kBADZ,CAERtO,OAAO,CAAEA,OAFD,CAAT,CAKA,IAAIJ,OAAO,CAAG,CAAd,CACA,IAAIC,UAAU,CAAG,CAAjB,CACA,IAAIC,IAAI,CAAGxhB,gBAAgB,CAACuhB,UAAD,CAA3B,CAEA,SAASyO,kBAAT,EAA8B,CAC7B,IAAIC,eAAJ,CACA,GAAI3O,OAAJ,CAAa,CACZA,OAAO,EAAI,CAAX,CACA2O,eAAe,CAAGzO,IAAI,CAACF,OAAD,CAAtB,CACA,CAHD,IAGO,CACN2O,eAAe,CAAG,IAAIL,eAAJ,EAAlB,CACA,CACD,OAAOK,eAAP,CACA,CAED,SAASvO,OAAT,CAAiBuO,eAAjB,CAAkC,CACjC,IAAIrzB,CAAJ,CACA,IAAIC,GAAG,CAAGozB,eAAe,CAAC3O,OAA1B,CACA,IAAK1kB,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B0yB,SAAS,CAAC5N,OAAV,CAAkBuO,eAAe,CAACpnB,MAAhB,CAAuBjM,CAAvB,CAAlB,EACA,CACDqzB,eAAe,CAAC3O,OAAhB,CAA0B,CAA1B,CAEA,GAAIA,OAAO,GAAKC,UAAhB,CAA4B,CAC3BC,IAAI,CAAGR,OAAO,CAACC,MAAR,CAAeO,IAAf,CAAP,CACAD,UAAU,EAAI,CAAd,CACA,CACDC,IAAI,CAACF,OAAD,CAAJ,CAAgB2O,eAAhB,CACA3O,OAAO,EAAI,CAAX,CACA,CAED,OAAOnR,EAAP,CACA,CAtC4B,EAA7B,CAwCA,MAAM+f,oBAAoB,CAAI,UAAY,CACzC,IAAIhJ,SAAS,CAAG,CAAC,MAAjB,CAEA,SAASiJ,gBAAT,CAA0B9I,QAA1B,CAAoC+I,aAApC,CAAmD9I,OAAnD,CAA4D,CAC3D,IAAIK,cAAc,CAAGL,OAAO,CAACM,SAA7B,CACA,IAAIyI,QAAJ,CACA,IAAIC,QAAJ,CACA,IAAIC,MAAJ,CACA,IAAI1oB,CAAJ,CACA,IAAIE,CAAJ,CACA,IAAID,IAAJ,CACA,IAAIE,IAAJ,CACA,IAAI2b,IAAJ,CACA,IAAI6M,WAAJ,CACA,IAAIvD,EAAE,CAAG,KAAKpF,SAAd,CACA,GAAIR,QAAQ,CAAG4F,EAAE,CAAC,CAAD,CAAF,CAAMroB,CAAN,CAAU,KAAK2iB,UAA9B,CAA0C,CACzC8I,QAAQ,CAAGpD,EAAE,CAAC,CAAD,CAAF,CAAM7oB,CAAN,CAAQ,CAAR,CAAX,CACAmsB,MAAM,CAAG,IAAT,CACA5I,cAAc,CAAG,CAAjB,CACA,CAJD,QAIWN,QAAQ,EAAI4F,EAAE,CAACA,EAAE,CAACnwB,MAAH,CAAY,CAAb,CAAF,CAAkB8H,CAAlB,CAAsB,KAAK2iB,UAA3C,CAAuD,CAC7D8I,QAAQ,CAAGpD,EAAE,CAACA,EAAE,CAACnwB,MAAH,CAAY,CAAb,CAAF,CAAkBsH,CAAlB,CAAsB6oB,EAAE,CAACA,EAAE,CAACnwB,MAAH,CAAY,CAAb,CAAF,CAAkBsH,CAAlB,CAAoB,CAApB,CAAtB,CAA+C6oB,EAAE,CAACA,EAAE,CAACnwB,MAAH,CAAY,CAAb,CAAF,CAAkByK,CAAlB,CAAoB,CAApB,CAA1D,CACA;CACH;CACA;CACA;CACA,gBACGgpB,MAAM,CAAG,IAAT,CACA,CARM,IAQA,CACN,IAAI3zB,CAAC,CAAG+qB,cAAR,CACA,IAAI9qB,GAAG,CAAGowB,EAAE,CAACnwB,MAAH,CAAY,CAAtB,CACA,IAAId,IAAI,CAAG,IAAX,CACA,IAAI8rB,OAAJ,CACA,IAAIC,WAAJ,CACA,IAAIC,gBAAJ,CACA,MAAOhsB,IAAP,CAAa,CACZ8rB,OAAO,CAAGmF,EAAE,CAACrwB,CAAD,CAAZ,CACAmrB,WAAW,CAAGkF,EAAE,CAACrwB,CAAC,CAAG,CAAL,CAAhB,CACA,GAAKmrB,WAAW,CAACnjB,CAAZ,CAAgB,KAAK2iB,UAAtB,CAAoCF,QAAxC,CAAkD,CACjD,MACA,CACD,GAAIzqB,CAAC,CAAGC,GAAG,CAAG,CAAd,CAAiB,CAChBD,CAAC,EAAI,CAAL,CACA,CAFD,IAEO,CACNZ,IAAI,CAAG,KAAP,CACA,CACD,CACDgsB,gBAAgB,CAAG,KAAKC,iBAAL,CAAuBrrB,CAAvB,GAA6B,EAAhD,CACA2zB,MAAM,CAAGzI,OAAO,CAAC3jB,CAAR,GAAc,CAAvB,CACAwjB,cAAc,CAAG/qB,CAAjB,CACA,GAAI,CAAC2zB,MAAL,CAAa,CACZ,GAAIlJ,QAAQ,EAAIU,WAAW,CAACnjB,CAAZ,CAAgB,KAAK2iB,UAArC,CAAiD,CAChD5D,IAAI,CAAG,CAAP,CACA,CAFD,QAEW0D,QAAQ,CAAGS,OAAO,CAACljB,CAAR,CAAY,KAAK2iB,UAAhC,CAA4C,CAClD5D,IAAI,CAAG,CAAP,CACA,CAFM,IAEA,CACN,IAAIuE,GAAJ,CACA,GAAIF,gBAAgB,CAACS,MAArB,CAA6B,CAC5BP,GAAG,CAAGF,gBAAgB,CAACS,MAAvB,CACA,CAFD,IAEO,CACNP,GAAG,CAAGrK,aAAa,CAACC,eAAd,CAA8BgK,OAAO,CAACne,CAAR,CAAUwW,CAAxC,CAA2C2H,OAAO,CAACne,CAAR,CAAU+e,CAArD,CAAwDZ,OAAO,CAAClrB,CAAR,CAAUujB,CAAlE,CAAqE2H,OAAO,CAAClrB,CAAR,CAAU8rB,CAA/E,EAAkFxI,GAAxF,CACA8H,gBAAgB,CAACS,MAAjB,CAA0BP,GAA1B,CACA,CACDvE,IAAI,CAAGuE,GAAG,CAAC,CAACb,QAAQ,EAAIS,OAAO,CAACljB,CAAR,CAAY,KAAK2iB,UAArB,CAAT,GAA+CQ,WAAW,CAACnjB,CAAZ,CAAgB,KAAK2iB,UAAtB,EAAqCO,OAAO,CAACljB,CAAR,CAAY,KAAK2iB,UAAtD,CAA9C,CAAD,CAAV,CACA,CACD+I,QAAQ,CAAGvI,WAAW,CAAC3jB,CAAZ,CAAgB2jB,WAAW,CAAC3jB,CAAZ,CAAc,CAAd,CAAhB,CAAmC0jB,OAAO,CAACvgB,CAAR,CAAU,CAAV,CAA9C,CACA,CACD8oB,QAAQ,CAAGvI,OAAO,CAAC1jB,CAAR,CAAU,CAAV,CAAX,CACA,CACD0D,IAAI,CAAGsoB,aAAa,CAAC9O,OAArB,CACAtZ,IAAI,CAAGqoB,QAAQ,CAACzzB,CAAT,CAAW,CAAX,EAAcE,MAArB,CACAwqB,OAAO,CAACM,SAAR,CAAoBD,cAApB,CAEA,IAAK9f,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,IAAhB,CAAsBD,CAAC,EAAI,CAA3B,CAA8B,CAC7B,IAAKE,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,IAAhB,CAAsBD,CAAC,EAAI,CAA3B,CAA8B,CAC7ByoB,WAAW,CAAGD,MAAM,CAAGF,QAAQ,CAACzzB,CAAT,CAAWiL,CAAX,EAAcE,CAAd,CAAH,CAAsBsoB,QAAQ,CAACzzB,CAAT,CAAWiL,CAAX,EAAcE,CAAd,EAAmB,CAACuoB,QAAQ,CAAC1zB,CAAT,CAAWiL,CAAX,EAAcE,CAAd,EAAmBsoB,QAAQ,CAACzzB,CAAT,CAAWiL,CAAX,EAAcE,CAAd,CAApB,EAAwC4b,IAArG,CACAyM,aAAa,CAACxzB,CAAd,CAAgBiL,CAAhB,EAAmBE,CAAnB,EAAwByoB,WAAxB,CACAA,WAAW,CAAGD,MAAM,CAAGF,QAAQ,CAAC1mB,CAAT,CAAW9B,CAAX,EAAcE,CAAd,CAAH,CAAsBsoB,QAAQ,CAAC1mB,CAAT,CAAW9B,CAAX,EAAcE,CAAd,EAAmB,CAACuoB,QAAQ,CAAC3mB,CAAT,CAAW9B,CAAX,EAAcE,CAAd,EAAmBsoB,QAAQ,CAAC1mB,CAAT,CAAW9B,CAAX,EAAcE,CAAd,CAApB,EAAwC4b,IAArG,CACAyM,aAAa,CAACzmB,CAAd,CAAgB9B,CAAhB,EAAmBE,CAAnB,EAAwByoB,WAAxB,CACAA,WAAW,CAAGD,MAAM,CAAGF,QAAQ,CAAChsB,CAAT,CAAWwD,CAAX,EAAcE,CAAd,CAAH,CAAsBsoB,QAAQ,CAAChsB,CAAT,CAAWwD,CAAX,EAAcE,CAAd,EAAmB,CAACuoB,QAAQ,CAACjsB,CAAT,CAAWwD,CAAX,EAAcE,CAAd,EAAmBsoB,QAAQ,CAAChsB,CAAT,CAAWwD,CAAX,EAAcE,CAAd,CAApB,EAAwC4b,IAArG,CACAyM,aAAa,CAAC/rB,CAAd,CAAgBwD,CAAhB,EAAmBE,CAAnB,EAAwByoB,WAAxB,CACA,CACD,CACD,CAED,SAASC,2BAAT,EAAuC,CACtC,IAAIpJ,QAAQ,CAAG,KAAKje,IAAL,CAAU+iB,aAAV,CAA0B,KAAK5E,UAA9C,CACA,IAAI1L,QAAQ,CAAG,KAAKgM,SAAL,CAAe,CAAf,EAAkBjjB,CAAlB,CAAsB,KAAK2iB,UAA1C,CACA,IAAI6E,OAAO,CAAG,KAAKvE,SAAL,CAAe,KAAKA,SAAL,CAAe/qB,MAAf,CAAwB,CAAvC,EAA0C8H,CAA1C,CAA8C,KAAK2iB,UAAjE,CACA,IAAIuB,SAAS,CAAG,KAAKuD,QAAL,CAAcvD,SAA9B,CACA,GAAI,EAAEA,SAAS,GAAK5B,SAAd,GAA6B4B,SAAS,CAAGjN,QAAZ,EAAwBwL,QAAQ,CAAGxL,QAApC,EAAkDiN,SAAS,CAAGsD,OAAZ,EAAuB/E,QAAQ,CAAG+E,OAAhH,CAAF,CAAJ,CAAkI;CAEjI,KAAKC,QAAL,CAAczE,SAAd,CAA0BkB,SAAS,CAAGzB,QAAZ,CAAuB,KAAKgF,QAAL,CAAczE,SAArC,CAAiD,CAA3E,CACA,KAAKuI,gBAAL,CAAsB9I,QAAtB,CAAgC,KAAKK,EAArC,CAAyC,KAAK2E,QAA9C,EACA;CACA,CACD,KAAKA,QAAL,CAAcvD,SAAd,CAA0BzB,QAA1B,CACA,YAAYK,EAAZ,CACA,CAED,SAASgJ,UAAT,EAAsB,CACrB,KAAKC,KAAL,CAAa,KAAKC,oBAAlB,CACA,CAED,SAASC,WAAT,CAAqBC,MAArB,CAA6BC,MAA7B,CAAqC,CACpC,GAAID,MAAM,CAACxP,OAAP,GAAmByP,MAAM,CAACzP,OAA1B,EAAqCwP,MAAM,CAACzlB,CAAP,GAAa0lB,MAAM,CAAC1lB,CAA7D,CAAgE,CAC/D,YAAA,CACA,CACD,IAAIzO,CAAJ,CACA,IAAIC,GAAG,CAAGi0B,MAAM,CAACxP,OAAjB,CACA,IAAK1kB,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B,GAAIk0B,MAAM,CAACzsB,CAAP,CAASzH,CAAT,EAAY,CAAZ,IAAmBm0B,MAAM,CAAC1sB,CAAP,CAASzH,CAAT,EAAY,CAAZ,CAAnB,EACAk0B,MAAM,CAACzsB,CAAP,CAASzH,CAAT,EAAY,CAAZ,IAAmBm0B,MAAM,CAAC1sB,CAAP,CAASzH,CAAT,EAAY,CAAZ,CADnB,EAEAk0B,MAAM,CAACnnB,CAAP,CAAS/M,CAAT,EAAY,CAAZ,IAAmBm0B,MAAM,CAACpnB,CAAP,CAAS/M,CAAT,EAAY,CAAZ,CAFnB,EAGAk0B,MAAM,CAACnnB,CAAP,CAAS/M,CAAT,EAAY,CAAZ,IAAmBm0B,MAAM,CAACpnB,CAAP,CAAS/M,CAAT,EAAY,CAAZ,CAHnB,EAIAk0B,MAAM,CAACl0B,CAAP,CAASA,CAAT,EAAY,CAAZ,IAAmBm0B,MAAM,CAACn0B,CAAP,CAASA,CAAT,EAAY,CAAZ,CAJnB,EAKAk0B,MAAM,CAACl0B,CAAP,CAASA,CAAT,EAAY,CAAZ,IAAmBm0B,MAAM,CAACn0B,CAAP,CAASA,CAAT,EAAY,CAAZ,CALvB,CAKuC,CACtC,YAAA,CACA,CACD,CACD,WAAA,CACA,CAED,SAAS2vB,SAAT,CAAmB0C,OAAnB,CAA4B,CAC3B,GAAI,CAAC4B,WAAW,CAAC,KAAKxsB,CAAN,CAAS4qB,OAAT,CAAhB,CAAmC,CAClC,KAAK5qB,CAAL,CAASirB,SAAS,CAACE,KAAV,CAAgBP,OAAhB,CAAT,CACA,KAAK2B,oBAAL,CAA0Bd,aAA1B,GACA,KAAKc,oBAAL,CAA0Bf,QAA1B,CAAmC,KAAKxrB,CAAxC,EACA,KAAKqoB,IAAL,CAAY,IAAZ,CACA,KAAKiE,KAAL,CAAa,KAAKC,oBAAlB,CACA,CACD,CAED,SAASjE,sBAAT,EAAkC,CACjC,GAAI,KAAKrQ,IAAL,CAAUlG,UAAV,CAAqBwW,OAArB,GAAiC,KAAKA,OAA1C,CAAmD,CAClD,OACA,CAAC,GAAI,CAAC,KAAKC,eAAL,CAAqB/vB,MAA1B,CAAkC,CACnC,KAAK4vB,IAAL,CAAY,KAAZ,CACA,OACA,CACD,GAAI,KAAKI,IAAT,CAAe,CACd,KAAKP,SAAL,CAAe,KAAK7E,EAApB,EACA,OACA,CACD,KAAKoF,IAAL,CAAY,IAAZ,CACA,KAAKJ,IAAL,CAAY,KAAZ,CACA,IAAIM,UAAJ,CACA,GAAI,KAAKC,EAAT,CAAa,CACZD,UAAU,CAAG,KAAKtF,EAAlB,CACA,CAFD,QAEW,KAAK/gB,IAAL,CAAU8C,EAAd,CAAkB,CACxBujB,UAAU,CAAG,KAAKrmB,IAAL,CAAU8C,EAAV,CAAa1B,CAA1B,CACA,CAFM,IAEA,CACNilB,UAAU,CAAG,KAAKrmB,IAAL,CAAU4B,EAAV,CAAaR,CAA1B,CACA,CACD,IAAInL,CAAJ,CACA,IAAIC,GAAG,CAAG,KAAKgwB,eAAL,CAAqB/vB,MAA/B,CACA,IAAKF,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5BowB,UAAU,CAAG,KAAKH,eAAL,CAAqBjwB,CAArB,EAAwBowB,UAAxB,CAAb,CACA,CACD,KAAKT,SAAL,CAAeS,UAAf,EACA,KAAKF,IAAL,CAAY,KAAZ,CACA,KAAKF,OAAL,CAAe,KAAKtQ,IAAL,CAAUlG,UAAV,CAAqBwW,OAApC,CACA,CAED,SAASoE,aAAT,CAAuB1U,IAAvB,CAA6B3V,IAA7B,CAAmCrK,IAAnC,CAAyC,CACxC,KAAKmrB,QAAL,CAAgB,OAAhB,CACA,KAAKre,IAAL,CAAYkT,IAAI,CAAClT,IAAjB,CACA,KAAK4M,SAAL,CAAiBsG,IAAjB,CACA,KAAKA,IAAL,CAAYA,IAAZ,CACA,KAAK3V,IAAL,CAAYA,IAAZ,CACA,KAAKoB,CAAL,CAAS,KAAT,CACA,KAAKklB,EAAL,CAAU,KAAV,CACA,KAAKP,IAAL,CAAY,KAAZ,CACA,IAAIxhB,QAAQ,CAAG5O,IAAI,GAAK,CAAT,CAAaqK,IAAI,CAAC4B,EAAL,CAAQR,CAArB,CAAyBpB,IAAI,CAAC8C,EAAL,CAAQ1B,CAAhD,CACA,KAAK1D,CAAL,CAASirB,SAAS,CAACE,KAAV,CAAgBtkB,QAAhB,CAAT,CACA,KAAKwc,EAAL,CAAU4H,SAAS,CAACE,KAAV,CAAgB,KAAKnrB,CAArB,CAAV,CACA,KAAKusB,oBAAL,CAA4Bb,mBAAmB,CAACC,kBAApB,EAA5B,CACA,KAAKW,KAAL,CAAa,KAAKC,oBAAlB,CACA,KAAKD,KAAL,CAAWd,QAAX,CAAoB,KAAKxrB,CAAzB,EACA,KAAK4sB,KAAL,CAAaP,UAAb,CACA,KAAK7D,eAAL,CAAuB,EAAvB,CACA,CAED,SAASK,SAAT,CAAmBC,cAAnB,CAAmC,CAClC,KAAKN,eAAL,CAAqB1uB,IAArB,CAA0BgvB,cAA1B,EACA,KAAKnX,SAAL,CAAeoX,kBAAf,CAAkC,IAAlC,EACA,CAED4D,aAAa,CAACh0B,SAAd,CAAwBmzB,gBAAxB,CAA2CA,gBAA3C,CACAa,aAAa,CAACh0B,SAAd,CAAwBuwB,QAAxB,CAAmCZ,sBAAnC,CACAqE,aAAa,CAACh0B,SAAd,CAAwBuvB,SAAxB,CAAoCA,SAApC,CACAyE,aAAa,CAACh0B,SAAd,CAAwBkwB,SAAxB,CAAoCA,SAApC,CAEA,SAASgE,sBAAT,CAAgC5U,IAAhC,CAAsC3V,IAAtC,CAA4CrK,IAA5C,CAAkD,CACjD,KAAKmrB,QAAL,CAAgB,OAAhB,CACA,KAAKre,IAAL,CAAYkT,IAAI,CAAClT,IAAjB,CACA,KAAKkT,IAAL,CAAYA,IAAZ,CACA,KAAKtG,SAAL,CAAiBsG,IAAjB,CACA,KAAKiL,UAAL,CAAkBjL,IAAI,CAAC3V,IAAL,CAAUiE,EAA5B,CACA,KAAKid,SAAL,CAAiBvrB,IAAI,GAAK,CAAT,CAAaqK,IAAI,CAAC4B,EAAL,CAAQR,CAArB,CAAyBpB,IAAI,CAAC8C,EAAL,CAAQ1B,CAAlD,CACA,KAAKkgB,iBAAL,CAAyB,EAAzB,CACA,KAAKlgB,CAAL,CAAS,IAAT,CACA,KAAKklB,EAAL,CAAU,IAAV,CACA,IAAIpwB,GAAG,CAAG,KAAKgrB,SAAL,CAAe,CAAf,EAAkBzjB,CAAlB,CAAoB,CAApB,EAAuBxH,CAAvB,CAAyBE,MAAnC,CACA,KAAKuH,CAAL,CAASirB,SAAS,CAAC7N,UAAV,EAAT,CACA,KAAKpd,CAAL,CAAO+pB,WAAP,CAAmB,KAAKvG,SAAL,CAAe,CAAf,EAAkBzjB,CAAlB,CAAoB,CAApB,EAAuBiH,CAA1C,CAA6CxO,GAA7C,EACA,KAAK6qB,EAAL,CAAU4H,SAAS,CAACE,KAAV,CAAgB,KAAKnrB,CAArB,CAAV,CACA,KAAKusB,oBAAL,CAA4Bb,mBAAmB,CAACC,kBAApB,EAA5B,CACA,KAAKW,KAAL,CAAa,KAAKC,oBAAlB,CACA,KAAKD,KAAL,CAAWd,QAAX,CAAoB,KAAKxrB,CAAzB,EACA,KAAKykB,SAAL,CAAiB5B,SAAjB,CACA,KAAK+J,KAAL,CAAaP,UAAb,CACA,KAAKrE,QAAL,CAAgB,CAAEvD,SAAS,CAAE5B,SAAb,CAAwBU,SAAS,CAAE,CAAnC,CAAhB,CACA,KAAKiF,eAAL,CAAuB,CAAC4D,2BAA2B,CAACzgB,IAA5B,CAAiC,IAAjC,CAAD,CAAvB,CACA,CACDkhB,sBAAsB,CAACl0B,SAAvB,CAAiCuwB,QAAjC,CAA4CZ,sBAA5C,CACAuE,sBAAsB,CAACl0B,SAAvB,CAAiCmzB,gBAAjC,CAAoDA,gBAApD,CACAe,sBAAsB,CAACl0B,SAAvB,CAAiCuvB,SAAjC,CAA6CA,SAA7C,CACA2E,sBAAsB,CAACl0B,SAAvB,CAAiCkwB,SAAjC,CAA6CA,SAA7C,CAEA,IAAIiE,gBAAgB,CAAI,UAAY,CACnC,IAAIC,MAAM,CAAGrvB,WAAb,CAEA,SAASsvB,uBAAT,CAAiC/U,IAAjC,CAAuC3V,IAAvC,CAA6C,CAC5C,KAAKtC,CAAL,CAASirB,SAAS,CAAC7N,UAAV,EAAT,CACA,KAAKpd,CAAL,CAAO+pB,WAAP,CAAmB,IAAnB,CAAyB,CAAzB,EACA,KAAKwC,oBAAL,CAA4Bb,mBAAmB,CAACC,kBAApB,EAA5B,CACA,KAAKW,KAAL,CAAa,KAAKC,oBAAlB,CACA,KAAKA,oBAAL,CAA0Bf,QAA1B,CAAmC,KAAKxrB,CAAxC,EACA,KAAKS,CAAL,CAAS6B,IAAI,CAAC7B,CAAd,CACA,KAAKwX,IAAL,CAAYA,IAAZ,CACA,KAAKlT,IAAL,CAAYkT,IAAI,CAAClT,IAAjB,CACA,KAAKwjB,OAAL,CAAe,CAAC,CAAhB,CACA,KAAKqB,4BAAL,CAAkC3R,IAAlC,EACA,KAAK5X,CAAL,CAASuiB,eAAe,CAAC2G,OAAhB,CAAwBtR,IAAxB,CAA8B3V,IAAI,CAACjC,CAAnC,CAAsC,CAAtC,CAAyC,CAAzC,CAA4C,IAA5C,CAAT,CACA,KAAKN,CAAL,CAAS6iB,eAAe,CAAC2G,OAAhB,CAAwBtR,IAAxB,CAA8B3V,IAAI,CAACvC,CAAnC,CAAsC,CAAtC,CAAyC,CAAzC,CAA4C,IAA5C,CAAT,CACA,GAAI,KAAK0pB,iBAAL,CAAuBhxB,MAA3B,CAAmC,CAClC,KAAKiL,CAAL,CAAS,IAAT,CACA,CAFD,IAEO,CACN,KAAKA,CAAL,CAAS,KAAT,CACA,KAAKupB,gBAAL,GACA,CACD,CAEDD,uBAAuB,CAACr0B,SAAxB,CAAoC,CACnCi0B,KAAK,CAAEP,UAD4B,CAEnCnD,QAAQ,CAAE,UAAY,CACrB,GAAI,KAAKjR,IAAL,CAAUlG,UAAV,CAAqBwW,OAArB,GAAiC,KAAKA,OAA1C,CAAmD,CAClD,OACA,CACD,KAAKA,OAAL,CAAe,KAAKtQ,IAAL,CAAUlG,UAAV,CAAqBwW,OAApC,CACA,KAAKoB,wBAAL,GAEA,GAAI,KAAKtB,IAAT,CAAe,CACd,KAAK4E,gBAAL,GACA,CACD,CAZkC,CAanCA,gBAAgB,CAAE,UAAY,CAC7B,IAAIC,EAAE,CAAG,KAAK7sB,CAAL,CAAOL,CAAP,CAAS,CAAT,CAAT,CACA,IAAImtB,EAAE,CAAG,KAAK9sB,CAAL,CAAOL,CAAP,CAAS,CAAT,CAAT,CACA,IAAIotB,EAAE,CAAG,KAAKrtB,CAAL,CAAOC,CAAP,CAAS,CAAT,EAAc,CAAvB,CACA,IAAIwnB,EAAE,CAAG,KAAKznB,CAAL,CAAOC,CAAP,CAAS,CAAT,EAAc,CAAvB,CACA,IAAIqtB,GAAG,CAAG,KAAK5sB,CAAL,GAAW,CAArB,CACA,IAAI6sB,EAAE,CAAG,KAAKttB,CAAd,CACAstB,EAAE,CAACttB,CAAH,CAAK,CAAL,EAAQ,CAAR,EAAaktB,EAAb,CACAI,EAAE,CAACttB,CAAH,CAAK,CAAL,EAAQ,CAAR,EAAamtB,EAAE,CAAG3F,EAAlB,CACA8F,EAAE,CAACttB,CAAH,CAAK,CAAL,EAAQ,CAAR,EAAaqtB,GAAG,CAAGH,EAAE,CAAGE,EAAR,CAAaF,EAAE,CAAGE,EAAlC,CACAE,EAAE,CAACttB,CAAH,CAAK,CAAL,EAAQ,CAAR,EAAamtB,EAAb,CACAG,EAAE,CAACttB,CAAH,CAAK,CAAL,EAAQ,CAAR,EAAaktB,EAAb,CACAI,EAAE,CAACttB,CAAH,CAAK,CAAL,EAAQ,CAAR,EAAamtB,EAAE,CAAG3F,EAAlB,CACA8F,EAAE,CAACttB,CAAH,CAAK,CAAL,EAAQ,CAAR,EAAaqtB,GAAG,CAAGH,EAAE,CAAGE,EAAR,CAAaF,EAAE,CAAGE,EAAlC,CACAE,EAAE,CAACttB,CAAH,CAAK,CAAL,EAAQ,CAAR,EAAamtB,EAAb,CACAG,EAAE,CAAC/0B,CAAH,CAAK,CAAL,EAAQ,CAAR,EAAa80B,GAAG,CAAGH,EAAE,CAAGE,EAAE,CAAGL,MAAb,CAAsBG,EAAE,CAAGE,EAAE,CAAGL,MAAhD,CACAO,EAAE,CAAC/0B,CAAH,CAAK,CAAL,EAAQ,CAAR,EAAa40B,EAAE,CAAG3F,EAAlB,CACA8F,EAAE,CAAC/0B,CAAH,CAAK,CAAL,EAAQ,CAAR,EAAa80B,GAAG,CAAGH,EAAE,CAAGE,EAAR,CAAaF,EAAE,CAAGE,EAAlC,CACAE,EAAE,CAAC/0B,CAAH,CAAK,CAAL,EAAQ,CAAR,EAAa40B,EAAE,CAAG3F,EAAE,CAAGuF,MAAvB,CACAO,EAAE,CAAC/0B,CAAH,CAAK,CAAL,EAAQ,CAAR,EAAa80B,GAAG,CAAGH,EAAE,CAAGE,EAAE,CAAGL,MAAb,CAAsBG,EAAE,CAAGE,EAAE,CAAGL,MAAhD,CACAO,EAAE,CAAC/0B,CAAH,CAAK,CAAL,EAAQ,CAAR,EAAa40B,EAAE,CAAG3F,EAAlB,CACA8F,EAAE,CAAC/0B,CAAH,CAAK,CAAL,EAAQ,CAAR,EAAa80B,GAAG,CAAGH,EAAE,CAAGE,EAAR,CAAaF,EAAE,CAAGE,EAAlC,CACAE,EAAE,CAAC/0B,CAAH,CAAK,CAAL,EAAQ,CAAR,EAAa40B,EAAE,CAAG3F,EAAE,CAAGuF,MAAvB,CACAO,EAAE,CAAChoB,CAAH,CAAK,CAAL,EAAQ,CAAR,EAAa+nB,GAAG,CAAGH,EAAE,CAAGE,EAAE,CAAGL,MAAb,CAAsBG,EAAE,CAAGE,EAAE,CAAGL,MAAhD,CACAO,EAAE,CAAChoB,CAAH,CAAK,CAAL,EAAQ,CAAR,EAAa6nB,EAAE,CAAG3F,EAAlB,CACA8F,EAAE,CAAChoB,CAAH,CAAK,CAAL,EAAQ,CAAR,EAAa+nB,GAAG,CAAGH,EAAE,CAAGE,EAAR,CAAaF,EAAE,CAAGE,EAAlC,CACAE,EAAE,CAAChoB,CAAH,CAAK,CAAL,EAAQ,CAAR,EAAa6nB,EAAE,CAAG3F,EAAE,CAAGuF,MAAvB,CACAO,EAAE,CAAChoB,CAAH,CAAK,CAAL,EAAQ,CAAR,EAAa+nB,GAAG,CAAGH,EAAE,CAAGE,EAAE,CAAGL,MAAb,CAAsBG,EAAE,CAAGE,EAAE,CAAGL,MAAhD,CACAO,EAAE,CAAChoB,CAAH,CAAK,CAAL,EAAQ,CAAR,EAAa6nB,EAAE,CAAG3F,EAAlB,CACA8F,EAAE,CAAChoB,CAAH,CAAK,CAAL,EAAQ,CAAR,EAAa+nB,GAAG,CAAGH,EAAE,CAAGE,EAAR,CAAaF,EAAE,CAAGE,EAAlC,CACAE,EAAE,CAAChoB,CAAH,CAAK,CAAL,EAAQ,CAAR,EAAa6nB,EAAE,CAAG3F,EAAE,CAAGuF,MAAvB,CACA,CA5CkC,CAApC,CA+CA30B,eAAe,CAAC,CAACoxB,wBAAD,CAAD,CAA6BwD,uBAA7B,CAAf,CAEA,OAAOA,uBAAP,CACA,CA1EuB,EAAxB,CA4EA,IAAIO,iBAAiB,CAAI,UAAY,CACpC,SAASC,wBAAT,CAAkCvV,IAAlC,CAAwC3V,IAAxC,CAA8C,CAC7C,KAAKtC,CAAL,CAASirB,SAAS,CAAC7N,UAAV,EAAT,CACA,KAAKpd,CAAL,CAAO+pB,WAAP,CAAmB,IAAnB,CAAyB,CAAzB,EACA,KAAK9R,IAAL,CAAYA,IAAZ,CACA,KAAKlT,IAAL,CAAYkT,IAAI,CAAClT,IAAjB,CACA,KAAKzC,IAAL,CAAYA,IAAZ,CACA,KAAKimB,OAAL,CAAe,CAAC,CAAhB,CACA,KAAK9nB,CAAL,CAAS6B,IAAI,CAAC7B,CAAd,CACA,KAAKmpB,4BAAL,CAAkC3R,IAAlC,EACA,GAAI3V,IAAI,CAACmrB,EAAL,GAAY,CAAhB,CAAmB,CAClB,KAAKC,EAAL,CAAU9K,eAAe,CAAC2G,OAAhB,CAAwBtR,IAAxB,CAA8B3V,IAAI,CAACorB,EAAnC,CAAuC,CAAvC,CAA0C,CAA1C,CAA6C,IAA7C,CAAV,CACA,KAAKC,EAAL,CAAU/K,eAAe,CAAC2G,OAAhB,CAAwBtR,IAAxB,CAA8B3V,IAAI,CAACqrB,EAAnC,CAAuC,CAAvC,CAA0C,IAA1C,CAAgD,IAAhD,CAAV,CACA,KAAKC,aAAL,CAAqB,KAAKC,iBAA1B,CACA,CAJD,IAIO,CACN,KAAKD,aAAL,CAAqB,KAAKE,oBAA1B,CACA,CACD,KAAK5pB,EAAL,CAAU0e,eAAe,CAAC2G,OAAhB,CAAwBtR,IAAxB,CAA8B3V,IAAI,CAAC4B,EAAnC,CAAuC,CAAvC,CAA0C,CAA1C,CAA6C,IAA7C,CAAV,CACA,KAAK7D,CAAL,CAASuiB,eAAe,CAAC2G,OAAhB,CAAwBtR,IAAxB,CAA8B3V,IAAI,CAACjC,CAAnC,CAAsC,CAAtC,CAAyC,CAAzC,CAA4C,IAA5C,CAAT,CACA,KAAKJ,CAAL,CAAS2iB,eAAe,CAAC2G,OAAhB,CAAwBtR,IAAxB,CAA8B3V,IAAI,CAACrC,CAAnC,CAAsC,CAAtC,CAAyCzC,SAAzC,CAAoD,IAApD,CAAT,CACA,KAAKuwB,EAAL,CAAUnL,eAAe,CAAC2G,OAAhB,CAAwBtR,IAAxB,CAA8B3V,IAAI,CAACyrB,EAAnC,CAAuC,CAAvC,CAA0C,CAA1C,CAA6C,IAA7C,CAAV,CACA,KAAKC,EAAL,CAAUpL,eAAe,CAAC2G,OAAhB,CAAwBtR,IAAxB,CAA8B3V,IAAI,CAAC0rB,EAAnC,CAAuC,CAAvC,CAA0C,IAA1C,CAAgD,IAAhD,CAAV,CACA,KAAKzB,oBAAL,CAA4Bb,mBAAmB,CAACC,kBAApB,EAA5B,CACA,KAAKY,oBAAL,CAA0Bf,QAA1B,CAAmC,KAAKxrB,CAAxC,EACA,KAAKssB,KAAL,CAAa,KAAKC,oBAAlB,CACA,GAAI,KAAK9C,iBAAL,CAAuBhxB,MAA3B,CAAmC,CAClC,KAAKiL,CAAL,CAAS,IAAT,CACA,CAFD,IAEO,CACN,KAAKA,CAAL,CAAS,KAAT,CACA,KAAKkqB,aAAL,GACA,CACD,CAEDJ,wBAAwB,CAAC70B,SAAzB,CAAqC,CACpCi0B,KAAK,CAAEP,UAD6B,CAEpCnD,QAAQ,CAAE,UAAY,CACrB,GAAI,KAAKjR,IAAL,CAAUlG,UAAV,CAAqBwW,OAArB,GAAiC,KAAKA,OAA1C,CAAmD,CAClD,OACA,CACD,KAAKA,OAAL,CAAe,KAAKtQ,IAAL,CAAUlG,UAAV,CAAqBwW,OAApC,CACA,KAAKoB,wBAAL,GACA,GAAI,KAAKtB,IAAT,CAAe,CACd,KAAKuF,aAAL,GACA,CACD,CAXmC,CAYpCC,iBAAiB,CAAE,UAAY,CAC9B,IAAII,MAAM,CAAG3xB,IAAI,CAACK,KAAL,CAAW,KAAKuH,EAAL,CAAQlE,CAAnB,EAAwB,CAArC,CACA,IAAIkuB,KAAK,CAAI5xB,IAAI,CAACmB,EAAL,CAAU,CAAX,CAAgBwwB,MAA5B,CACA;CACJ;CACA,4CACI,IAAIE,QAAQ,CAAG,IAAf,CACA,IAAIC,OAAO,CAAG,KAAKL,EAAL,CAAQ/tB,CAAtB,CACA,IAAIquB,QAAQ,CAAG,KAAKX,EAAL,CAAQ1tB,CAAvB,CACA,IAAIsuB,SAAS,CAAG,KAAKN,EAAL,CAAQhuB,CAAxB,CACA,IAAIuuB,UAAU,CAAG,KAAKZ,EAAL,CAAQ3tB,CAAzB,CACA,IAAIwuB,gBAAgB,CAAI,EAAIlyB,IAAI,CAACmB,EAAT,CAAc2wB,OAAf,EAA2BH,MAAM,CAAG,CAApC,CAAvB,CACA,IAAIQ,iBAAiB,CAAI,EAAInyB,IAAI,CAACmB,EAAT,CAAc4wB,QAAf,EAA4BJ,MAAM,CAAG,CAArC,CAAxB,CACA,IAAI11B,CAAJ,CACA,IAAIm2B,GAAJ,CACA,IAAIC,SAAJ,CACA,IAAIC,YAAJ,CACA,IAAIC,UAAU,CAAG,CAACvyB,IAAI,CAACmB,EAAN,CAAW,CAA5B,CACAoxB,UAAU,EAAI,KAAK5uB,CAAL,CAAOD,CAArB,CACA,IAAI8gB,GAAG,CAAG,KAAKxe,IAAL,CAAU7B,CAAV,GAAgB,CAAhB,CAAoB,CAAC,CAArB,CAAyB,CAAnC,CACA,KAAKT,CAAL,CAAOid,OAAP,CAAiB,CAAjB,CACA,IAAK1kB,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAG01B,MAAhB,CAAwB11B,CAAC,EAAI,CAA7B,CAAgC,CAC/Bm2B,GAAG,CAAGP,QAAQ,CAAGC,OAAH,CAAaC,QAA3B,CACAM,SAAS,CAAGR,QAAQ,CAAGG,SAAH,CAAeC,UAAnC,CACAK,YAAY,CAAGT,QAAQ,CAAGK,gBAAH,CAAsBC,iBAA7C,CACA,IAAI3S,CAAC,CAAG4S,GAAG,CAAGpyB,IAAI,CAAC+qB,GAAL,CAASwH,UAAT,CAAd,CACA,IAAIxK,CAAC,CAAGqK,GAAG,CAAGpyB,IAAI,CAACkqB,GAAL,CAASqI,UAAT,CAAd,CACA,IAAIC,EAAE,CAAGhT,CAAC,GAAK,CAAN,EAAWuI,CAAC,GAAK,CAAjB,CAAqB,CAArB,CAAyBA,CAAC,CAAG/nB,IAAI,CAACG,IAAL,CAAUqf,CAAC,CAAGA,CAAJ,CAAQuI,CAAC,CAAGA,CAAtB,CAAtC,CACA,IAAI0K,EAAE,CAAGjT,CAAC,GAAK,CAAN,EAAWuI,CAAC,GAAK,CAAjB,CAAqB,CAArB,CAAyB,CAACvI,CAAD,CAAKxf,IAAI,CAACG,IAAL,CAAUqf,CAAC,CAAGA,CAAJ,CAAQuI,CAAC,CAAGA,CAAtB,CAAvC,CACAvI,CAAC,EAAI,CAAC,KAAKzb,CAAL,CAAOL,CAAP,CAAS,CAAT,CAAN,CACAqkB,CAAC,EAAI,CAAC,KAAKhkB,CAAL,CAAOL,CAAP,CAAS,CAAT,CAAN,CACA,KAAKA,CAAL,CAAOoqB,WAAP,CAAmBtO,CAAnB,CAAsBuI,CAAtB,CAAyBvI,CAAC,CAAGgT,EAAE,CAAGF,YAAL,CAAoBD,SAApB,CAAgC7N,GAA7D,CAAkEuD,CAAC,CAAG0K,EAAE,CAAGH,YAAL,CAAoBD,SAApB,CAAgC7N,GAAtG,CAA2GhF,CAAC,CAAGgT,EAAE,CAAGF,YAAL,CAAoBD,SAApB,CAAgC7N,GAA/I,CAAoJuD,CAAC,CAAG0K,EAAE,CAAGH,YAAL,CAAoBD,SAApB,CAAgC7N,GAAxL,CAA6LvoB,CAA7L,CAAgM,IAAhM,EAEA;CACL;CACA;CACA,+CACK41B,QAAQ,CAAG,CAACA,QAAZ,CACAU,UAAU,EAAIX,KAAK,CAAGpN,GAAtB,CACA,CACD,CApDmC,CAqDpCgN,oBAAoB,CAAE,UAAY,CACjC,IAAIG,MAAM,CAAG3xB,IAAI,CAACK,KAAL,CAAW,KAAKuH,EAAL,CAAQlE,CAAnB,CAAb,CACA,IAAIkuB,KAAK,CAAI5xB,IAAI,CAACmB,EAAL,CAAU,CAAX,CAAgBwwB,MAA5B,CACA,IAAIS,GAAG,CAAG,KAAKX,EAAL,CAAQ/tB,CAAlB,CACA,IAAI2uB,SAAS,CAAG,KAAKX,EAAL,CAAQhuB,CAAxB,CACA,IAAI4uB,YAAY,CAAI,EAAItyB,IAAI,CAACmB,EAAT,CAAcixB,GAAf,EAAuBT,MAAM,CAAG,CAAhC,CAAnB,CACA,IAAI11B,CAAJ,CACA,IAAIs2B,UAAU,CAAG,CAACvyB,IAAI,CAACmB,EAAN,CAAW,GAA5B,CACA,IAAIqjB,GAAG,CAAG,KAAKxe,IAAL,CAAU7B,CAAV,GAAgB,CAAhB,CAAoB,CAAC,CAArB,CAAyB,CAAnC,CACAouB,UAAU,EAAI,KAAK5uB,CAAL,CAAOD,CAArB,CACA,KAAKA,CAAL,CAAOid,OAAP,CAAiB,CAAjB,CACA,IAAK1kB,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAG01B,MAAhB,CAAwB11B,CAAC,EAAI,CAA7B,CAAgC,CAC/B,IAAIujB,CAAC,CAAG4S,GAAG,CAAGpyB,IAAI,CAAC+qB,GAAL,CAASwH,UAAT,CAAd,CACA,IAAIxK,CAAC,CAAGqK,GAAG,CAAGpyB,IAAI,CAACkqB,GAAL,CAASqI,UAAT,CAAd,CACA,IAAIC,EAAE,CAAGhT,CAAC,GAAK,CAAN,EAAWuI,CAAC,GAAK,CAAjB,CAAqB,CAArB,CAAyBA,CAAC,CAAG/nB,IAAI,CAACG,IAAL,CAAUqf,CAAC,CAAGA,CAAJ,CAAQuI,CAAC,CAAGA,CAAtB,CAAtC,CACA,IAAI0K,EAAE,CAAGjT,CAAC,GAAK,CAAN,EAAWuI,CAAC,GAAK,CAAjB,CAAqB,CAArB,CAAyB,CAACvI,CAAD,CAAKxf,IAAI,CAACG,IAAL,CAAUqf,CAAC,CAAGA,CAAJ,CAAQuI,CAAC,CAAGA,CAAtB,CAAvC,CACAvI,CAAC,EAAI,CAAC,KAAKzb,CAAL,CAAOL,CAAP,CAAS,CAAT,CAAN,CACAqkB,CAAC,EAAI,CAAC,KAAKhkB,CAAL,CAAOL,CAAP,CAAS,CAAT,CAAN,CACA,KAAKA,CAAL,CAAOoqB,WAAP,CAAmBtO,CAAnB,CAAsBuI,CAAtB,CAAyBvI,CAAC,CAAGgT,EAAE,CAAGF,YAAL,CAAoBD,SAApB,CAAgC7N,GAA7D,CAAkEuD,CAAC,CAAG0K,EAAE,CAAGH,YAAL,CAAoBD,SAApB,CAAgC7N,GAAtG,CAA2GhF,CAAC,CAAGgT,EAAE,CAAGF,YAAL,CAAoBD,SAApB,CAAgC7N,GAA/I,CAAoJuD,CAAC,CAAG0K,EAAE,CAAGH,YAAL,CAAoBD,SAApB,CAAgC7N,GAAxL,CAA6LvoB,CAA7L,CAAgM,IAAhM,EACAs2B,UAAU,EAAIX,KAAK,CAAGpN,GAAtB,CACA,CACD,KAAKwL,KAAL,CAAW7zB,MAAX,CAAoB,CAApB,CACA,KAAK6zB,KAAL,CAAW,CAAX,EAAgB,KAAKtsB,CAArB,CACA,CA5EmC,CAArC,CA+EA5H,eAAe,CAAC,CAACoxB,wBAAD,CAAD,CAA6BgE,wBAA7B,CAAf,CAEA,OAAOA,wBAAP,CACA,CAnHwB,EAAzB,CAqHA,IAAIwB,iBAAiB,CAAI,UAAY,CACpC,SAASC,wBAAT,CAAkChX,IAAlC,CAAwC3V,IAAxC,CAA8C,CAC7C,KAAKtC,CAAL,CAASirB,SAAS,CAAC7N,UAAV,EAAT,CACA,KAAKpd,CAAL,CAAOgH,CAAP,CAAW,IAAX,CACA,KAAKulB,oBAAL,CAA4Bb,mBAAmB,CAACC,kBAApB,EAA5B,CACA,KAAKY,oBAAL,CAA0Bf,QAA1B,CAAmC,KAAKxrB,CAAxC,EACA,KAAKssB,KAAL,CAAa,KAAKC,oBAAlB,CACA,KAAKtU,IAAL,CAAYA,IAAZ,CACA,KAAKlT,IAAL,CAAYkT,IAAI,CAAClT,IAAjB,CACA,KAAKwjB,OAAL,CAAe,CAAC,CAAhB,CACA,KAAK9nB,CAAL,CAAS6B,IAAI,CAAC7B,CAAd,CACA,KAAKmpB,4BAAL,CAAkC3R,IAAlC,EACA,KAAK5X,CAAL,CAASuiB,eAAe,CAAC2G,OAAhB,CAAwBtR,IAAxB,CAA8B3V,IAAI,CAACjC,CAAnC,CAAsC,CAAtC,CAAyC,CAAzC,CAA4C,IAA5C,CAAT,CACA,KAAKN,CAAL,CAAS6iB,eAAe,CAAC2G,OAAhB,CAAwBtR,IAAxB,CAA8B3V,IAAI,CAACvC,CAAnC,CAAsC,CAAtC,CAAyC,CAAzC,CAA4C,IAA5C,CAAT,CACA,KAAKE,CAAL,CAAS2iB,eAAe,CAAC2G,OAAhB,CAAwBtR,IAAxB,CAA8B3V,IAAI,CAACrC,CAAnC,CAAsC,CAAtC,CAAyC,CAAzC,CAA4C,IAA5C,CAAT,CACA,GAAI,KAAKwpB,iBAAL,CAAuBhxB,MAA3B,CAAmC,CAClC,KAAKiL,CAAL,CAAS,IAAT,CACA,CAFD,IAEO,CACN,KAAKA,CAAL,CAAS,KAAT,CACA,KAAKwrB,iBAAL,GACA,CACD,CAEDD,wBAAwB,CAACt2B,SAAzB,CAAqC,CACpCu2B,iBAAiB,CAAE,UAAY,CAC9B,IAAIhC,EAAE,CAAG,KAAK7sB,CAAL,CAAOL,CAAP,CAAS,CAAT,CAAT,CACA,IAAImtB,EAAE,CAAG,KAAK9sB,CAAL,CAAOL,CAAP,CAAS,CAAT,CAAT,CACA,IAAImvB,EAAE,CAAG,KAAKpvB,CAAL,CAAOC,CAAP,CAAS,CAAT,EAAc,CAAvB,CACA,IAAIovB,EAAE,CAAG,KAAKrvB,CAAL,CAAOC,CAAP,CAAS,CAAT,EAAc,CAAvB,CACA,IAAIgU,KAAK,CAAGlX,KAAK,CAACqyB,EAAD,CAAKC,EAAL,CAAS,KAAKnvB,CAAL,CAAOD,CAAhB,CAAjB,CACA,IAAI+sB,MAAM,CAAG/Y,KAAK,EAAI,EAAItW,WAAR,CAAlB,CACA,KAAKsC,CAAL,CAAOid,OAAP,CAAiB,CAAjB,CAEA,GAAI,KAAKxc,CAAL,GAAW,CAAX,EAAgB,KAAKA,CAAL,GAAW,CAA/B,CAAkC,CACjC,KAAKT,CAAL,CAAOoqB,WAAP,CAAmB8C,EAAE,CAAGiC,EAAxB,CAA4BhC,EAAE,CAAGiC,EAAL,CAAUpb,KAAtC,CAA6CkZ,EAAE,CAAGiC,EAAlD,CAAsDhC,EAAE,CAAGiC,EAAL,CAAUpb,KAAhE,CAAuEkZ,EAAE,CAAGiC,EAA5E,CAAgFhC,EAAE,CAAGiC,EAAL,CAAUrC,MAA1F,CAAkG,CAAlG,CAAqG,IAArG,EACA,KAAK/sB,CAAL,CAAOoqB,WAAP,CAAmB8C,EAAE,CAAGiC,EAAxB,CAA4BhC,EAAE,CAAGiC,EAAL,CAAUpb,KAAtC,CAA6CkZ,EAAE,CAAGiC,EAAlD,CAAsDhC,EAAE,CAAGiC,EAAL,CAAUrC,MAAhE,CAAwEG,EAAE,CAAGiC,EAA7E,CAAiFhC,EAAE,CAAGiC,EAAL,CAAUpb,KAA3F,CAAkG,CAAlG,CAAqG,IAArG,EACA,GAAIA,KAAK,GAAK,CAAd,CAAiB,CAChB,KAAKhU,CAAL,CAAOoqB,WAAP,CAAmB8C,EAAE,CAAGiC,EAAL,CAAUnb,KAA7B,CAAoCmZ,EAAE,CAAGiC,EAAzC,CAA6ClC,EAAE,CAAGiC,EAAL,CAAUnb,KAAvD,CAA8DmZ,EAAE,CAAGiC,EAAnE,CAAuElC,EAAE,CAAGiC,EAAL,CAAUpC,MAAjF,CAAyFI,EAAE,CAAGiC,EAA9F,CAAkG,CAAlG,CAAqG,IAArG,EACA,KAAKpvB,CAAL,CAAOoqB,WAAP,CAAmB8C,EAAE,CAAGiC,EAAL,CAAUnb,KAA7B,CAAoCmZ,EAAE,CAAGiC,EAAzC,CAA6ClC,EAAE,CAAGiC,EAAL,CAAUpC,MAAvD,CAA+DI,EAAE,CAAGiC,EAApE,CAAwElC,EAAE,CAAGiC,EAAL,CAAUnb,KAAlF,CAAyFmZ,EAAE,CAAGiC,EAA9F,CAAkG,CAAlG,CAAqG,IAArG,EACA,KAAKpvB,CAAL,CAAOoqB,WAAP,CAAmB8C,EAAE,CAAGiC,EAAxB,CAA4BhC,EAAE,CAAGiC,EAAL,CAAUpb,KAAtC,CAA6CkZ,EAAE,CAAGiC,EAAlD,CAAsDhC,EAAE,CAAGiC,EAAL,CAAUpb,KAAhE,CAAuEkZ,EAAE,CAAGiC,EAA5E,CAAgFhC,EAAE,CAAGiC,EAAL,CAAUrC,MAA1F,CAAkG,CAAlG,CAAqG,IAArG,EACA,KAAK/sB,CAAL,CAAOoqB,WAAP,CAAmB8C,EAAE,CAAGiC,EAAxB,CAA4BhC,EAAE,CAAGiC,EAAL,CAAUpb,KAAtC,CAA6CkZ,EAAE,CAAGiC,EAAlD,CAAsDhC,EAAE,CAAGiC,EAAL,CAAUrC,MAAhE,CAAwEG,EAAE,CAAGiC,EAA7E,CAAiFhC,EAAE,CAAGiC,EAAL,CAAUpb,KAA3F,CAAkG,CAAlG,CAAqG,IAArG,EACA,KAAKhU,CAAL,CAAOoqB,WAAP,CAAmB8C,EAAE,CAAGiC,EAAL,CAAUnb,KAA7B,CAAoCmZ,EAAE,CAAGiC,EAAzC,CAA6ClC,EAAE,CAAGiC,EAAL,CAAUnb,KAAvD,CAA8DmZ,EAAE,CAAGiC,EAAnE,CAAuElC,EAAE,CAAGiC,EAAL,CAAUpC,MAAjF,CAAyFI,EAAE,CAAGiC,EAA9F,CAAkG,CAAlG,CAAqG,IAArG,EACA,KAAKpvB,CAAL,CAAOoqB,WAAP,CAAmB8C,EAAE,CAAGiC,EAAL,CAAUnb,KAA7B,CAAoCmZ,EAAE,CAAGiC,EAAzC,CAA6ClC,EAAE,CAAGiC,EAAL,CAAUpC,MAAvD,CAA+DI,EAAE,CAAGiC,EAApE,CAAwElC,EAAE,CAAGiC,EAAL,CAAUnb,KAAlF,CAAyFmZ,EAAE,CAAGiC,EAA9F,CAAkG,CAAlG,CAAqG,IAArG,EACA,CAPD,IAOO,CACN,KAAKpvB,CAAL,CAAOoqB,WAAP,CAAmB8C,EAAE,CAAGiC,EAAxB,CAA4BhC,EAAE,CAAGiC,EAAjC,CAAqClC,EAAE,CAAGiC,EAAL,CAAUpC,MAA/C,CAAuDI,EAAE,CAAGiC,EAA5D,CAAgElC,EAAE,CAAGiC,EAArE,CAAyEhC,EAAE,CAAGiC,EAA9E,CAAkF,CAAlF,EACA,KAAKpvB,CAAL,CAAOoqB,WAAP,CAAmB8C,EAAE,CAAGiC,EAAxB,CAA4BhC,EAAE,CAAGiC,EAAjC,CAAqClC,EAAE,CAAGiC,EAA1C,CAA8ChC,EAAE,CAAGiC,EAAL,CAAUrC,MAAxD,CAAgEG,EAAE,CAAGiC,EAArE,CAAyEhC,EAAE,CAAGiC,EAA9E,CAAkF,CAAlF,EACA,CACD,CAdD,IAcO,CACN,KAAKpvB,CAAL,CAAOoqB,WAAP,CAAmB8C,EAAE,CAAGiC,EAAxB,CAA4BhC,EAAE,CAAGiC,EAAL,CAAUpb,KAAtC,CAA6CkZ,EAAE,CAAGiC,EAAlD,CAAsDhC,EAAE,CAAGiC,EAAL,CAAUrC,MAAhE,CAAwEG,EAAE,CAAGiC,EAA7E,CAAiFhC,EAAE,CAAGiC,EAAL,CAAUpb,KAA3F,CAAkG,CAAlG,CAAqG,IAArG,EACA,GAAIA,KAAK,GAAK,CAAd,CAAiB,CAChB,KAAKhU,CAAL,CAAOoqB,WAAP,CAAmB8C,EAAE,CAAGiC,EAAL,CAAUnb,KAA7B,CAAoCmZ,EAAE,CAAGiC,EAAzC,CAA6ClC,EAAE,CAAGiC,EAAL,CAAUnb,KAAvD,CAA8DmZ,EAAE,CAAGiC,EAAnE,CAAuElC,EAAE,CAAGiC,EAAL,CAAUpC,MAAjF,CAAyFI,EAAE,CAAGiC,EAA9F,CAAkG,CAAlG,CAAqG,IAArG,EACA,KAAKpvB,CAAL,CAAOoqB,WAAP,CAAmB8C,EAAE,CAAGiC,EAAL,CAAUnb,KAA7B,CAAoCmZ,EAAE,CAAGiC,EAAzC,CAA6ClC,EAAE,CAAGiC,EAAL,CAAUpC,MAAvD,CAA+DI,EAAE,CAAGiC,EAApE,CAAwElC,EAAE,CAAGiC,EAAL,CAAUnb,KAAlF,CAAyFmZ,EAAE,CAAGiC,EAA9F,CAAkG,CAAlG,CAAqG,IAArG,EACA,KAAKpvB,CAAL,CAAOoqB,WAAP,CAAmB8C,EAAE,CAAGiC,EAAxB,CAA4BhC,EAAE,CAAGiC,EAAL,CAAUpb,KAAtC,CAA6CkZ,EAAE,CAAGiC,EAAlD,CAAsDhC,EAAE,CAAGiC,EAAL,CAAUpb,KAAhE,CAAuEkZ,EAAE,CAAGiC,EAA5E,CAAgFhC,EAAE,CAAGiC,EAAL,CAAUrC,MAA1F,CAAkG,CAAlG,CAAqG,IAArG,EACA,KAAK/sB,CAAL,CAAOoqB,WAAP,CAAmB8C,EAAE,CAAGiC,EAAxB,CAA4BhC,EAAE,CAAGiC,EAAL,CAAUpb,KAAtC,CAA6CkZ,EAAE,CAAGiC,EAAlD,CAAsDhC,EAAE,CAAGiC,EAAL,CAAUrC,MAAhE,CAAwEG,EAAE,CAAGiC,EAA7E,CAAiFhC,EAAE,CAAGiC,EAAL,CAAUpb,KAA3F,CAAkG,CAAlG,CAAqG,IAArG,EACA,KAAKhU,CAAL,CAAOoqB,WAAP,CAAmB8C,EAAE,CAAGiC,EAAL,CAAUnb,KAA7B,CAAoCmZ,EAAE,CAAGiC,EAAzC,CAA6ClC,EAAE,CAAGiC,EAAL,CAAUnb,KAAvD,CAA8DmZ,EAAE,CAAGiC,EAAnE,CAAuElC,EAAE,CAAGiC,EAAL,CAAUpC,MAAjF,CAAyFI,EAAE,CAAGiC,EAA9F,CAAkG,CAAlG,CAAqG,IAArG,EACA,KAAKpvB,CAAL,CAAOoqB,WAAP,CAAmB8C,EAAE,CAAGiC,EAAL,CAAUnb,KAA7B,CAAoCmZ,EAAE,CAAGiC,EAAzC,CAA6ClC,EAAE,CAAGiC,EAAL,CAAUpC,MAAvD,CAA+DI,EAAE,CAAGiC,EAApE,CAAwElC,EAAE,CAAGiC,EAAL,CAAUnb,KAAlF,CAAyFmZ,EAAE,CAAGiC,EAA9F,CAAkG,CAAlG,CAAqG,IAArG,EACA,KAAKpvB,CAAL,CAAOoqB,WAAP,CAAmB8C,EAAE,CAAGiC,EAAxB,CAA4BhC,EAAE,CAAGiC,EAAL,CAAUpb,KAAtC,CAA6CkZ,EAAE,CAAGiC,EAAlD,CAAsDhC,EAAE,CAAGiC,EAAL,CAAUpb,KAAhE,CAAuEkZ,EAAE,CAAGiC,EAA5E,CAAgFhC,EAAE,CAAGiC,EAAL,CAAUrC,MAA1F,CAAkG,CAAlG,CAAqG,IAArG,EACA,CARD,IAQO,CACN,KAAK/sB,CAAL,CAAOoqB,WAAP,CAAmB8C,EAAE,CAAGiC,EAAxB,CAA4BhC,EAAE,CAAGiC,EAAjC,CAAqClC,EAAE,CAAGiC,EAAL,CAAUpC,MAA/C,CAAuDI,EAAE,CAAGiC,EAA5D,CAAgElC,EAAE,CAAGiC,EAArE,CAAyEhC,EAAE,CAAGiC,EAA9E,CAAkF,CAAlF,CAAqF,IAArF,EACA,KAAKpvB,CAAL,CAAOoqB,WAAP,CAAmB8C,EAAE,CAAGiC,EAAxB,CAA4BhC,EAAE,CAAGiC,EAAjC,CAAqClC,EAAE,CAAGiC,EAA1C,CAA8ChC,EAAE,CAAGiC,EAAL,CAAUrC,MAAxD,CAAgEG,EAAE,CAAGiC,EAArE,CAAyEhC,EAAE,CAAGiC,EAA9E,CAAkF,CAAlF,CAAqF,IAArF,EACA,KAAKpvB,CAAL,CAAOoqB,WAAP,CAAmB8C,EAAE,CAAGiC,EAAxB,CAA4BhC,EAAE,CAAGiC,EAAjC,CAAqClC,EAAE,CAAGiC,EAAL,CAAUpC,MAA/C,CAAuDI,EAAE,CAAGiC,EAA5D,CAAgElC,EAAE,CAAGiC,EAArE,CAAyEhC,EAAE,CAAGiC,EAA9E,CAAkF,CAAlF,CAAqF,IAArF,EACA,CACD,CACD,CAxCmC,CAyCpClG,QAAQ,CAAE,UAAY,CACrB,GAAI,KAAKjR,IAAL,CAAUlG,UAAV,CAAqBwW,OAArB,GAAiC,KAAKA,OAA1C,CAAmD,CAClD,OACA,CACD,KAAKA,OAAL,CAAe,KAAKtQ,IAAL,CAAUlG,UAAV,CAAqBwW,OAApC,CACA,KAAKoB,wBAAL,GACA,GAAI,KAAKtB,IAAT,CAAe,CACd,KAAK6G,iBAAL,GACA,CACD,CAlDmC,CAmDpCtC,KAAK,CAAEP,UAnD6B,CAArC,CAqDAj0B,eAAe,CAAC,CAACoxB,wBAAD,CAAD,CAA6ByF,wBAA7B,CAAf,CAEA,OAAOA,wBAAP,CACA,CA/EwB,EAAzB,CAiFA,SAASI,YAAT,CAAsBpX,IAAtB,CAA4B3V,IAA5B,CAAkCrK,IAAlC,CAAwC,CACvC,IAAIiB,IAAJ,CACA,GAAIjB,IAAI,GAAK,CAAT,EAAcA,IAAI,GAAK,CAA3B,CAA8B,CAC7B,IAAIq3B,QAAQ,CAAGr3B,IAAI,GAAK,CAAT,CAAaqK,IAAI,CAAC4B,EAAlB,CAAuB5B,IAAI,CAAC8C,EAA3C,CACA,IAAI4I,IAAI,CAAGshB,QAAQ,CAAC5rB,CAApB,CACA,GAAIsK,IAAI,CAACvV,MAAT,CAAiB,CAChBS,IAAI,CAAG,IAAI2zB,sBAAJ,CAA2B5U,IAA3B,CAAiC3V,IAAjC,CAAuCrK,IAAvC,CAAP,CACA,CAFD,IAEO,CACNiB,IAAI,CAAG,IAAIyzB,aAAJ,CAAkB1U,IAAlB,CAAwB3V,IAAxB,CAA8BrK,IAA9B,CAAP,CACA,CACD,CARD,QAQWA,IAAI,GAAK,CAAb,CAAgB,CACtBiB,IAAI,CAAG,IAAI81B,iBAAJ,CAAsB/W,IAAtB,CAA4B3V,IAA5B,CAAP,CACA,CAFM,QAEIrK,IAAI,GAAK,CAAb,CAAgB,CACtBiB,IAAI,CAAG,IAAI4zB,gBAAJ,CAAqB7U,IAArB,CAA2B3V,IAA3B,CAAP,CACA,CAFM,QAEIrK,IAAI,GAAK,CAAb,CAAgB,CACtBiB,IAAI,CAAG,IAAIq0B,iBAAJ,CAAsBtV,IAAtB,CAA4B3V,IAA5B,CAAP,CACA,CACD,GAAIpJ,IAAI,CAACwK,CAAT,CAAY,CACXuU,IAAI,CAAC8Q,kBAAL,CAAwB7vB,IAAxB,EACA,CACD,OAAOA,IAAP,CACA,CAED,SAASq2B,sBAAT,EAAkC,CACjC,OAAO5C,aAAP,CACA,CAED,SAAS6C,+BAAT,EAA2C,CAC1C,OAAO3C,sBAAP,CACA,CAED,IAAI/gB,EAAE,CAAG,EAAT,CACAA,EAAE,CAACujB,YAAH,CAAkBA,YAAlB,CACAvjB,EAAE,CAACyjB,sBAAH,CAA4BA,sBAA5B,CACAzjB,EAAE,CAAC0jB,+BAAH,CAAqCA,+BAArC,CACA,OAAO1jB,EAAP,CACA,CAjhB6B,EAA9B,CAmhBA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CAGA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,GAEA,MAAM2jB,MAAM,CAAI,UAAY,CAC3B,IAAIC,IAAI,CAAGpzB,IAAI,CAAC+qB,GAAhB,CACA,IAAIsI,IAAI,CAAGrzB,IAAI,CAACkqB,GAAhB,CACA,IAAIoJ,IAAI,CAAGtzB,IAAI,CAACuzB,GAAhB,CACA,IAAIC,IAAI,CAAGxzB,IAAI,CAAC0X,KAAhB,CAEA,SAAS4Y,KAAT,EAAiB,CAChB,KAAKmD,KAAL,CAAW,CAAX,EAAgB,CAAhB,CACA,KAAKA,KAAL,CAAW,CAAX,EAAgB,CAAhB,CACA,KAAKA,KAAL,CAAW,CAAX,EAAgB,CAAhB,CACA,KAAKA,KAAL,CAAW,CAAX,EAAgB,CAAhB,CACA,KAAKA,KAAL,CAAW,CAAX,EAAgB,CAAhB,CACA,KAAKA,KAAL,CAAW,CAAX,EAAgB,CAAhB,CACA,KAAKA,KAAL,CAAW,CAAX,EAAgB,CAAhB,CACA,KAAKA,KAAL,CAAW,CAAX,EAAgB,CAAhB,CACA,KAAKA,KAAL,CAAW,CAAX,EAAgB,CAAhB,CACA,KAAKA,KAAL,CAAW,CAAX,EAAgB,CAAhB,CACA,KAAKA,KAAL,CAAW,EAAX,EAAiB,CAAjB,CACA,KAAKA,KAAL,CAAW,EAAX,EAAiB,CAAjB,CACA,KAAKA,KAAL,CAAW,EAAX,EAAiB,CAAjB,CACA,KAAKA,KAAL,CAAW,EAAX,EAAiB,CAAjB,CACA,KAAKA,KAAL,CAAW,EAAX,EAAiB,CAAjB,CACA,KAAKA,KAAL,CAAW,EAAX,EAAiB,CAAjB,CACA,WAAA,CACA,CAED,SAASC,MAAT,CAAgB9B,KAAhB,CAAuB,CACtB,GAAIA,KAAK,GAAK,CAAd,CAAiB,CAChB,WAAA,CACA,CACD,IAAI+B,IAAI,CAAGP,IAAI,CAACxB,KAAD,CAAf,CACA,IAAIgC,IAAI,CAAGP,IAAI,CAACzB,KAAD,CAAf,CACA,YAAYiC,EAAL,CAAQF,IAAR,CAAc,CAACC,IAAf,CAAqB,CAArB,CAAwB,CAAxB,CAA2BA,IAA3B,CAAiCD,IAAjC,CAAuC,CAAvC,CAA0C,CAA1C,CAA6C,CAA7C,CAAgD,CAAhD,CAAmD,CAAnD,CAAsD,CAAtD,CAAyD,CAAzD,CAA4D,CAA5D,CAA+D,CAA/D,CAAkE,CAAlE,CAAP,CACA,CAED,SAASG,OAAT,CAAiBlC,KAAjB,CAAwB,CACvB,GAAIA,KAAK,GAAK,CAAd,CAAiB,CAChB,WAAA,CACA,CACD,IAAI+B,IAAI,CAAGP,IAAI,CAACxB,KAAD,CAAf,CACA,IAAIgC,IAAI,CAAGP,IAAI,CAACzB,KAAD,CAAf,CACA,YAAYiC,EAAL,CAAQ,CAAR,CAAW,CAAX,CAAc,CAAd,CAAiB,CAAjB,CAAoB,CAApB,CAAuBF,IAAvB,CAA6B,CAACC,IAA9B,CAAoC,CAApC,CAAuC,CAAvC,CAA0CA,IAA1C,CAAgDD,IAAhD,CAAsD,CAAtD,CAAyD,CAAzD,CAA4D,CAA5D,CAA+D,CAA/D,CAAkE,CAAlE,CAAP,CACA,CAED,SAASI,OAAT,CAAiBnC,KAAjB,CAAwB,CACvB,GAAIA,KAAK,GAAK,CAAd,CAAiB,CAChB,WAAA,CACA,CACD,IAAI+B,IAAI,CAAGP,IAAI,CAACxB,KAAD,CAAf,CACA,IAAIgC,IAAI,CAAGP,IAAI,CAACzB,KAAD,CAAf,CACA,YAAYiC,EAAL,CAAQF,IAAR,CAAc,CAAd,CAAiBC,IAAjB,CAAuB,CAAvB,CAA0B,CAA1B,CAA6B,CAA7B,CAAgC,CAAhC,CAAmC,CAAnC,CAAsC,CAACA,IAAvC,CAA6C,CAA7C,CAAgDD,IAAhD,CAAsD,CAAtD,CAAyD,CAAzD,CAA4D,CAA5D,CAA+D,CAA/D,CAAkE,CAAlE,CAAP,CACA,CAED,SAASK,OAAT,CAAiBpC,KAAjB,CAAwB,CACvB,GAAIA,KAAK,GAAK,CAAd,CAAiB,CAChB,WAAA,CACA,CACD,IAAI+B,IAAI,CAAGP,IAAI,CAACxB,KAAD,CAAf,CACA,IAAIgC,IAAI,CAAGP,IAAI,CAACzB,KAAD,CAAf,CACA,YAAYiC,EAAL,CAAQF,IAAR,CAAc,CAACC,IAAf,CAAqB,CAArB,CAAwB,CAAxB,CAA2BA,IAA3B,CAAiCD,IAAjC,CAAuC,CAAvC,CAA0C,CAA1C,CAA6C,CAA7C,CAAgD,CAAhD,CAAmD,CAAnD,CAAsD,CAAtD,CAAyD,CAAzD,CAA4D,CAA5D,CAA+D,CAA/D,CAAkE,CAAlE,CAAP,CACA,CAED,SAASM,KAAT,CAAeC,EAAf,CAAmB/C,EAAnB,CAAuB,CACtB,YAAY0C,EAAL,CAAQ,CAAR,CAAW1C,EAAX,CAAe+C,EAAf,CAAmB,CAAnB,CAAsB,CAAtB,CAAyB,CAAzB,CAAP,CACA,CAED,SAASC,IAAT,CAAc/K,EAAd,CAAkBC,EAAlB,CAAsB,CACrB,YAAY4K,KAAL,CAAWX,IAAI,CAAClK,EAAD,CAAf,CAAqBkK,IAAI,CAACjK,EAAD,CAAzB,CAAP,CACA,CAED,SAAS+K,YAAT,CAAsBhL,EAAtB,CAA0BwI,KAA1B,CAAiC,CAChC,IAAI+B,IAAI,CAAGP,IAAI,CAACxB,KAAD,CAAf,CACA,IAAIgC,IAAI,CAAGP,IAAI,CAACzB,KAAD,CAAf,CACA,YAAYiC,EAAL,CAAQF,IAAR,CAAcC,IAAd,CAAoB,CAApB,CAAuB,CAAvB,CAA0B,CAACA,IAA3B,CAAiCD,IAAjC,CAAuC,CAAvC,CAA0C,CAA1C,CAA6C,CAA7C,CAAgD,CAAhD,CAAmD,CAAnD,CAAsD,CAAtD,CAAyD,CAAzD,CAA4D,CAA5D,CAA+D,CAA/D,CAAkE,CAAlE,EACLE,EADK,CACF,CADE,CACC,CADD,CACI,CADJ,CACO,CADP,CACUP,IAAI,CAAClK,EAAD,CADd,CACoB,CADpB,CACuB,CADvB,CAC0B,CAD1B,CAC6B,CAD7B,CACgC,CADhC,CACmC,CADnC,CACsC,CADtC,CACyC,CADzC,CAC4C,CAD5C,CAC+C,CAD/C,CACkD,CADlD,EAELyK,EAFK,CAEFF,IAFE,CAEI,CAACC,IAFL,CAEW,CAFX,CAEc,CAFd,CAEiBA,IAFjB,CAEuBD,IAFvB,CAE6B,CAF7B,CAEgC,CAFhC,CAEmC,CAFnC,CAEsC,CAFtC,CAEyC,CAFzC,CAE4C,CAF5C,CAE+C,CAF/C,CAEkD,CAFlD,CAEqD,CAFrD,CAEwD,CAFxD,CAAP,CAGA;CACA,CAED,SAASU,KAAT,CAAeH,EAAf,CAAmB/C,EAAnB,CAAuBmD,EAAvB,CAA2B,CAC1B,GAAI,CAACA,EAAD,EAAOA,EAAE,GAAK,CAAlB,CAAqB,CACpBA,EAAE,CAAG,CAAL,CACA,CACD,GAAIJ,EAAE,GAAK,CAAP,EAAY/C,EAAE,GAAK,CAAnB,EAAwBmD,EAAE,GAAK,CAAnC,CAAsC,CACrC,WAAA,CACA,CACD,YAAYT,EAAL,CAAQK,EAAR,CAAY,CAAZ,CAAe,CAAf,CAAkB,CAAlB,CAAqB,CAArB,CAAwB/C,EAAxB,CAA4B,CAA5B,CAA+B,CAA/B,CAAkC,CAAlC,CAAqC,CAArC,CAAwCmD,EAAxC,CAA4C,CAA5C,CAA+C,CAA/C,CAAkD,CAAlD,CAAqD,CAArD,CAAwD,CAAxD,CAAP,CACA,CAED,SAASC,YAAT,CAAsBpqB,CAAtB,CAAyBtG,CAAzB,CAA4B6G,CAA5B,CAA+BvG,CAA/B,CAAkCyC,CAAlC,CAAqC9C,CAArC,CAAwCF,CAAxC,CAA2CJ,CAA3C,CAA8CvH,CAA9C,CAAiDiL,CAAjD,CAAoDE,CAApD,CAAuDotB,CAAvD,CAA0DC,CAA1D,CAA6DzM,CAA7D,CAAgEhf,CAAhE,CAAmEjF,CAAnE,CAAsE,CACrE,KAAK0vB,KAAL,CAAW,CAAX,EAAgBtpB,CAAhB,CACA,KAAKspB,KAAL,CAAW,CAAX,EAAgB5vB,CAAhB,CACA,KAAK4vB,KAAL,CAAW,CAAX,EAAgB/oB,CAAhB,CACA,KAAK+oB,KAAL,CAAW,CAAX,EAAgBtvB,CAAhB,CACA,KAAKsvB,KAAL,CAAW,CAAX,EAAgB7sB,CAAhB,CACA,KAAK6sB,KAAL,CAAW,CAAX,EAAgB3vB,CAAhB,CACA,KAAK2vB,KAAL,CAAW,CAAX,EAAgB7vB,CAAhB,CACA,KAAK6vB,KAAL,CAAW,CAAX,EAAgBjwB,CAAhB,CACA,KAAKiwB,KAAL,CAAW,CAAX,EAAgBx3B,CAAhB,CACA,KAAKw3B,KAAL,CAAW,CAAX,EAAgBvsB,CAAhB,CACA,KAAKusB,KAAL,CAAW,EAAX,EAAiBrsB,CAAjB,CACA,KAAKqsB,KAAL,CAAW,EAAX,EAAiBe,CAAjB,CACA,KAAKf,KAAL,CAAW,EAAX,EAAiBgB,CAAjB,CACA,KAAKhB,KAAL,CAAW,EAAX,EAAiBzL,CAAjB,CACA,KAAKyL,KAAL,CAAW,EAAX,EAAiBzqB,CAAjB,CACA,KAAKyqB,KAAL,CAAW,EAAX,EAAiB1vB,CAAjB,CACA,WAAA,CACA,CAED,SAAS2wB,SAAT,CAAmBC,EAAnB,CAAuB7sB,EAAvB,CAA2B8sB,EAA3B,CAA+B,CAC9BA,EAAE,CAAGA,EAAE,EAAI,CAAX,CACA,GAAID,EAAE,GAAK,CAAP,EAAY7sB,EAAE,GAAK,CAAnB,EAAwB8sB,EAAE,GAAK,CAAnC,CAAsC,CACrC,YAAYf,EAAL,CAAQ,CAAR,CAAW,CAAX,CAAc,CAAd,CAAiB,CAAjB,CAAoB,CAApB,CAAuB,CAAvB,CAA0B,CAA1B,CAA6B,CAA7B,CAAgC,CAAhC,CAAmC,CAAnC,CAAsC,CAAtC,CAAyC,CAAzC,CAA4Cc,EAA5C,CAAgD7sB,EAAhD,CAAoD8sB,EAApD,CAAwD,CAAxD,CAAP,CACA,CACD,WAAA,CACA,CAED,SAASC,SAAT,CAAmBC,EAAnB,CAAuBC,EAAvB,CAA2B/J,EAA3B,CAA+BgK,EAA/B,CAAmCC,EAAnC,CAAuCC,EAAvC,CAA2CC,EAA3C,CAA+CC,EAA/C,CAAmDC,EAAnD,CAAuDC,EAAvD,CAA2DC,EAA3D,CAA+DC,EAA/D,CAAmEC,EAAnE,CAAuEC,EAAvE,CAA2EC,EAA3E,CAA+EC,EAA/E,CAAmF,CAClF,IAAIxW,EAAE,CAAG,KAAKqU,KAAd,CAEA,GAAIqB,EAAE,GAAK,CAAP,EAAYC,EAAE,GAAK,CAAnB,EAAwB/J,EAAE,GAAK,CAA/B,EAAoCgK,EAAE,GAAK,CAA3C,EAAgDC,EAAE,GAAK,CAAvD,EAA4DC,EAAE,GAAK,CAAnE,EAAwEC,EAAE,GAAK,CAA/E,EAAoFC,EAAE,GAAK,CAA3F,EAAgGC,EAAE,GAAK,CAAvG,EAA4GC,EAAE,GAAK,CAAnH,EAAwHC,EAAE,GAAK,CAA/H,EAAoIC,EAAE,GAAK,CAA/I,CAAkJ;CAEjJ;CACApW,EAAE,CAAC,EAAD,CAAF,CAASA,EAAE,CAAC,EAAD,CAAF,CAAS0V,EAAT,CAAc1V,EAAE,CAAC,EAAD,CAAF,CAASqW,EAAhC,CACArW,EAAE,CAAC,EAAD,CAAF,CAASA,EAAE,CAAC,EAAD,CAAF,CAAS8V,EAAT,CAAc9V,EAAE,CAAC,EAAD,CAAF,CAASsW,EAAhC,CACAtW,EAAE,CAAC,EAAD,CAAF,CAASA,EAAE,CAAC,EAAD,CAAF,CAASmW,EAAT,CAAcnW,EAAE,CAAC,EAAD,CAAF,CAASuW,EAAhC,CACAvW,EAAE,CAAC,EAAD,CAAF,EAAUwW,EAAV,CACA;CACA,KAAKC,mBAAL,CAA2B,KAA3B,CACA,WAAA,CACA,CAED,IAAIC,EAAE,CAAG1W,EAAE,CAAC,CAAD,CAAX,CACA,IAAI2W,EAAE,CAAG3W,EAAE,CAAC,CAAD,CAAX,CACA,IAAI0L,EAAE,CAAG1L,EAAE,CAAC,CAAD,CAAX,CACA,IAAI4W,EAAE,CAAG5W,EAAE,CAAC,CAAD,CAAX,CACA,IAAI6W,EAAE,CAAG7W,EAAE,CAAC,CAAD,CAAX,CACA,IAAI8W,EAAE,CAAG9W,EAAE,CAAC,CAAD,CAAX,CACA,IAAI+W,EAAE,CAAG/W,EAAE,CAAC,CAAD,CAAX,CACA,IAAIgX,EAAE,CAAGhX,EAAE,CAAC,CAAD,CAAX,CACA,IAAIiX,EAAE,CAAGjX,EAAE,CAAC,CAAD,CAAX,CACA,IAAIkX,EAAE,CAAGlX,EAAE,CAAC,CAAD,CAAX,CACA,IAAImX,EAAE,CAAGnX,EAAE,CAAC,EAAD,CAAX,CACA,IAAIoX,EAAE,CAAGpX,EAAE,CAAC,EAAD,CAAX,CACA,IAAIqX,EAAE,CAAGrX,EAAE,CAAC,EAAD,CAAX,CACA,IAAIsX,EAAE,CAAGtX,EAAE,CAAC,EAAD,CAAX,CACA,IAAIuX,EAAE,CAAGvX,EAAE,CAAC,EAAD,CAAX,CACA,IAAIyR,EAAE,CAAGzR,EAAE,CAAC,EAAD,CAAX,CAEA;CACF;CACA;CACA;CACA,WACEA,EAAE,CAAC,CAAD,CAAF,CAAQ0W,EAAE,CAAGhB,EAAL,CAAUiB,EAAE,CAAGd,EAAf,CAAoBnK,EAAE,CAAGuK,EAAzB,CAA8BW,EAAE,CAAGP,EAA3C,CACArW,EAAE,CAAC,CAAD,CAAF,CAAQ0W,EAAE,CAAGf,EAAL,CAAUgB,EAAE,CAAGb,EAAf,CAAoBpK,EAAE,CAAGwK,EAAzB,CAA8BU,EAAE,CAAGN,EAA3C,CACAtW,EAAE,CAAC,CAAD,CAAF,CAAQ0W,EAAE,CAAG9K,EAAL,CAAU+K,EAAE,CAAGZ,EAAf,CAAoBrK,EAAE,CAAGyK,EAAzB,CAA8BS,EAAE,CAAGL,EAA3C,CACAvW,EAAE,CAAC,CAAD,CAAF,CAAQ0W,EAAE,CAAGd,EAAL,CAAUe,EAAE,CAAGX,EAAf,CAAoBtK,EAAE,CAAG0K,EAAzB,CAA8BQ,EAAE,CAAGJ,EAA3C,CAEAxW,EAAE,CAAC,CAAD,CAAF,CAAQ6W,EAAE,CAAGnB,EAAL,CAAUoB,EAAE,CAAGjB,EAAf,CAAoBkB,EAAE,CAAGd,EAAzB,CAA8Be,EAAE,CAAGX,EAA3C,CACArW,EAAE,CAAC,CAAD,CAAF,CAAQ6W,EAAE,CAAGlB,EAAL,CAAUmB,EAAE,CAAGhB,EAAf,CAAoBiB,EAAE,CAAGb,EAAzB,CAA8Bc,EAAE,CAAGV,EAA3C,CACAtW,EAAE,CAAC,CAAD,CAAF,CAAQ6W,EAAE,CAAGjL,EAAL,CAAUkL,EAAE,CAAGf,EAAf,CAAoBgB,EAAE,CAAGZ,EAAzB,CAA8Ba,EAAE,CAAGT,EAA3C,CACAvW,EAAE,CAAC,CAAD,CAAF,CAAQ6W,EAAE,CAAGjB,EAAL,CAAUkB,EAAE,CAAGd,EAAf,CAAoBe,EAAE,CAAGX,EAAzB,CAA8BY,EAAE,CAAGR,EAA3C,CAEAxW,EAAE,CAAC,CAAD,CAAF,CAAQiX,EAAE,CAAGvB,EAAL,CAAUwB,EAAE,CAAGrB,EAAf,CAAoBsB,EAAE,CAAGlB,EAAzB,CAA8BmB,EAAE,CAAGf,EAA3C,CACArW,EAAE,CAAC,CAAD,CAAF,CAAQiX,EAAE,CAAGtB,EAAL,CAAUuB,EAAE,CAAGpB,EAAf,CAAoBqB,EAAE,CAAGjB,EAAzB,CAA8BkB,EAAE,CAAGd,EAA3C,CACAtW,EAAE,CAAC,EAAD,CAAF,CAASiX,EAAE,CAAGrL,EAAL,CAAUsL,EAAE,CAAGnB,EAAf,CAAoBoB,EAAE,CAAGhB,EAAzB,CAA8BiB,EAAE,CAAGb,EAA5C,CACAvW,EAAE,CAAC,EAAD,CAAF,CAASiX,EAAE,CAAGrB,EAAL,CAAUsB,EAAE,CAAGlB,EAAf,CAAoBmB,EAAE,CAAGf,EAAzB,CAA8BgB,EAAE,CAAGZ,EAA5C,CAEAxW,EAAE,CAAC,EAAD,CAAF,CAASqX,EAAE,CAAG3B,EAAL,CAAU4B,EAAE,CAAGzB,EAAf,CAAoB0B,EAAE,CAAGtB,EAAzB,CAA8BxE,EAAE,CAAG4E,EAA5C,CACArW,EAAE,CAAC,EAAD,CAAF,CAASqX,EAAE,CAAG1B,EAAL,CAAU2B,EAAE,CAAGxB,EAAf,CAAoByB,EAAE,CAAGrB,EAAzB,CAA8BzE,EAAE,CAAG6E,EAA5C,CACAtW,EAAE,CAAC,EAAD,CAAF,CAASqX,EAAE,CAAGzL,EAAL,CAAU0L,EAAE,CAAGvB,EAAf,CAAoBwB,EAAE,CAAGpB,EAAzB,CAA8B1E,EAAE,CAAG8E,EAA5C,CACAvW,EAAE,CAAC,EAAD,CAAF,CAASqX,EAAE,CAAGzB,EAAL,CAAU0B,EAAE,CAAGtB,EAAf,CAAoBuB,EAAE,CAAGnB,EAAzB,CAA8B3E,EAAE,CAAG+E,EAA5C,CAEA,KAAKC,mBAAL,CAA2B,KAA3B,CACA,WAAA,CACA,CAED,SAASe,UAAT,EAAsB,CACrB,GAAI,CAAC,KAAKf,mBAAV,CAA+B,CAC9B,KAAKgB,SAAL,CAAiB,EAAE,KAAKpD,KAAL,CAAW,CAAX,IAAkB,CAAlB,EAAuB,KAAKA,KAAL,CAAW,CAAX,IAAkB,CAAzC,EAA8C,KAAKA,KAAL,CAAW,CAAX,IAAkB,CAAhE,EAAqE,KAAKA,KAAL,CAAW,CAAX,IAAkB,CAAvF,EAA4F,KAAKA,KAAL,CAAW,CAAX,IAAkB,CAA9G,EAAmH,KAAKA,KAAL,CAAW,CAAX,IAAkB,CAArI,EAA0I,KAAKA,KAAL,CAAW,CAAX,IAAkB,CAA5J,EAAiK,KAAKA,KAAL,CAAW,CAAX,IAAkB,CAAnL,EAAwL,KAAKA,KAAL,CAAW,CAAX,IAAkB,CAA1M,EAA+M,KAAKA,KAAL,CAAW,CAAX,IAAkB,CAAjO,EAAsO,KAAKA,KAAL,CAAW,EAAX,IAAmB,CAAzP,EAA8P,KAAKA,KAAL,CAAW,EAAX,IAAmB,CAAjR,EAAsR,KAAKA,KAAL,CAAW,EAAX,IAAmB,CAAzS,EAA8S,KAAKA,KAAL,CAAW,EAAX,IAAmB,CAAjU,EAAsU,KAAKA,KAAL,CAAW,EAAX,IAAmB,CAAzV,EAA8V,KAAKA,KAAL,CAAW,EAAX,IAAmB,CAAnX,CAAjB,CACA,KAAKoC,mBAAL,CAA2B,IAA3B,CACA,CACD,YAAYgB,SAAZ,CACA,CAED,SAASC,MAAT,CAAgBC,IAAhB,CAAsB,CACrB,IAAI96B,CAAC,CAAG,CAAR,CACA,MAAOA,CAAC,CAAG,EAAX,CAAe,CACd,GAAI86B,IAAI,CAACtD,KAAL,CAAWx3B,CAAX,IAAkB,KAAKw3B,KAAL,CAAWx3B,CAAX,CAAtB,CAAqC,CACpC,YAAA,CACA,CACDA,CAAC,EAAI,CAAL,CACA,CACD,WAAA,CACA,CAED,SAAS4yB,KAAT,CAAekI,IAAf,CAAqB,CACpB,IAAI96B,CAAJ,CACA,IAAKA,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAG,EAAhB,CAAoBA,CAAC,EAAI,CAAzB,CAA4B,CAC3B86B,IAAI,CAACtD,KAAL,CAAWx3B,CAAX,EAAgB,KAAKw3B,KAAL,CAAWx3B,CAAX,CAAhB,CACA,CACD,OAAO86B,IAAP,CACA,CAED,SAASC,cAAT,CAAwBvD,KAAxB,CAA+B,CAC9B,IAAIx3B,CAAJ,CACA,IAAKA,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAG,EAAhB,CAAoBA,CAAC,EAAI,CAAzB,CAA4B,CAC3B,KAAKw3B,KAAL,CAAWx3B,CAAX,EAAgBw3B,KAAK,CAACx3B,CAAD,CAArB,CACA,CACD,CAED,SAASg7B,YAAT,CAAsBzX,CAAtB,CAAyBuI,CAAzB,CAA4BuD,CAA5B,CAA+B,CAC9B,OAAO,CACN9L,CAAC,CAAEA,CAAC,CAAG,KAAKiU,KAAL,CAAW,CAAX,CAAJ,CAAoB1L,CAAC,CAAG,KAAK0L,KAAL,CAAW,CAAX,CAAxB,CAAwCnI,CAAC,CAAG,KAAKmI,KAAL,CAAW,CAAX,CAA5C,CAA4D,KAAKA,KAAL,CAAW,EAAX,CADzD,CAEN1L,CAAC,CAAEvI,CAAC,CAAG,KAAKiU,KAAL,CAAW,CAAX,CAAJ,CAAoB1L,CAAC,CAAG,KAAK0L,KAAL,CAAW,CAAX,CAAxB,CAAwCnI,CAAC,CAAG,KAAKmI,KAAL,CAAW,CAAX,CAA5C,CAA4D,KAAKA,KAAL,CAAW,EAAX,CAFzD,CAGNnI,CAAC,CAAE9L,CAAC,CAAG,KAAKiU,KAAL,CAAW,CAAX,CAAJ,CAAoB1L,CAAC,CAAG,KAAK0L,KAAL,CAAW,CAAX,CAAxB,CAAwCnI,CAAC,CAAG,KAAKmI,KAAL,CAAW,EAAX,CAA5C,CAA6D,KAAKA,KAAL,CAAW,EAAX,CAH1D,CAAP,CAKA;CACF;CACA;CACA,eAEC,SAASyD,QAAT,CAAkB1X,CAAlB,CAAqBuI,CAArB,CAAwBuD,CAAxB,CAA2B,CAC1B,OAAO9L,CAAC,CAAG,KAAKiU,KAAL,CAAW,CAAX,CAAJ,CAAoB1L,CAAC,CAAG,KAAK0L,KAAL,CAAW,CAAX,CAAxB,CAAwCnI,CAAC,CAAG,KAAKmI,KAAL,CAAW,CAAX,CAA5C,CAA4D,KAAKA,KAAL,CAAW,EAAX,CAAnE,CACA,CACD,SAAS0D,QAAT,CAAkB3X,CAAlB,CAAqBuI,CAArB,CAAwBuD,CAAxB,CAA2B,CAC1B,OAAO9L,CAAC,CAAG,KAAKiU,KAAL,CAAW,CAAX,CAAJ,CAAoB1L,CAAC,CAAG,KAAK0L,KAAL,CAAW,CAAX,CAAxB,CAAwCnI,CAAC,CAAG,KAAKmI,KAAL,CAAW,CAAX,CAA5C,CAA4D,KAAKA,KAAL,CAAW,EAAX,CAAnE,CACA,CACD,SAAS2D,QAAT,CAAkB5X,CAAlB,CAAqBuI,CAArB,CAAwBuD,CAAxB,CAA2B,CAC1B,OAAO9L,CAAC,CAAG,KAAKiU,KAAL,CAAW,CAAX,CAAJ,CAAoB1L,CAAC,CAAG,KAAK0L,KAAL,CAAW,CAAX,CAAxB,CAAwCnI,CAAC,CAAG,KAAKmI,KAAL,CAAW,EAAX,CAA5C,CAA6D,KAAKA,KAAL,CAAW,EAAX,CAApE,CACA,CAED,SAAS4D,gBAAT,EAA4B,CAC3B,IAAIC,WAAW,CAAG,KAAK7D,KAAL,CAAW,CAAX,EAAgB,KAAKA,KAAL,CAAW,CAAX,CAAhB,CAAgC,KAAKA,KAAL,CAAW,CAAX,EAAgB,KAAKA,KAAL,CAAW,CAAX,CAAlE,CACA,IAAItpB,CAAC,CAAG,KAAKspB,KAAL,CAAW,CAAX,EAAgB6D,WAAxB,CACA,IAAIzzB,CAAC,CAAG,CAAC,KAAK4vB,KAAL,CAAW,CAAX,CAAD,CAAiB6D,WAAzB,CACA,IAAI5sB,CAAC,CAAG,CAAC,KAAK+oB,KAAL,CAAW,CAAX,CAAD,CAAiB6D,WAAzB,CACA,IAAInzB,CAAC,CAAG,KAAKsvB,KAAL,CAAW,CAAX,EAAgB6D,WAAxB,CACA,IAAI1wB,CAAC,CAAG,CAAC,KAAK6sB,KAAL,CAAW,CAAX,EAAgB,KAAKA,KAAL,CAAW,EAAX,CAAhB,CAAiC,KAAKA,KAAL,CAAW,CAAX,EAAgB,KAAKA,KAAL,CAAW,EAAX,CAAlD,EAAoE6D,WAA5E,CACA,IAAIxzB,CAAC,CAAG,EAAE,KAAK2vB,KAAL,CAAW,CAAX,EAAgB,KAAKA,KAAL,CAAW,EAAX,CAAhB,CAAiC,KAAKA,KAAL,CAAW,CAAX,EAAgB,KAAKA,KAAL,CAAW,EAAX,CAAnD,EAAqE6D,WAA7E,CACA,IAAIC,aAAa,CAAG,IAAIpE,MAAJ,EAApB,CACAoE,aAAa,CAAC9D,KAAd,CAAoB,CAApB,EAAyBtpB,CAAzB,CACAotB,aAAa,CAAC9D,KAAd,CAAoB,CAApB,EAAyB5vB,CAAzB,CACA0zB,aAAa,CAAC9D,KAAd,CAAoB,CAApB,EAAyB/oB,CAAzB,CACA6sB,aAAa,CAAC9D,KAAd,CAAoB,CAApB,EAAyBtvB,CAAzB,CACAozB,aAAa,CAAC9D,KAAd,CAAoB,EAApB,EAA0B7sB,CAA1B,CACA2wB,aAAa,CAAC9D,KAAd,CAAoB,EAApB,EAA0B3vB,CAA1B,CACA,OAAOyzB,aAAP,CACA,CAED,SAASC,YAAT,CAAsB5vB,EAAtB,CAA0B,CACzB,IAAI2vB,aAAa,CAAG,KAAKF,gBAAL,EAApB,CACA,OAAOE,aAAa,CAACE,iBAAd,CAAgC7vB,EAAE,CAAC,CAAD,CAAlC,CAAuCA,EAAE,CAAC,CAAD,CAAzC,CAA8CA,EAAE,CAAC,CAAD,CAAF,EAAS,CAAvD,CAAP,CACA,CAED,SAAS8vB,aAAT,CAAuBC,GAAvB,CAA4B,CAC3B,IAAI17B,CAAJ,CACA,IAAIC,GAAG,CAAGy7B,GAAG,CAACx7B,MAAd,CACA,IAAIy7B,MAAM,CAAG,EAAb,CACA,IAAK37B,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B27B,MAAM,CAAC37B,CAAD,CAAN,CAAYu7B,YAAY,CAACG,GAAG,CAAC17B,CAAD,CAAJ,CAAxB,CACA,CACD,OAAO27B,MAAP,CACA,CAED,SAASC,mBAAT,CAA6BnV,GAA7B,CAAkCC,GAAlC,CAAuCC,GAAvC,CAA4C,CAC3C,IAAI5jB,GAAG,CAAGF,gBAAgB,CAAC,SAAD,CAAY,CAAZ,CAA1B,CACA,GAAI,KAAK83B,UAAL,EAAJ,CAAuB,CACtB53B,GAAG,CAAC,CAAD,CAAH,CAAS0jB,GAAG,CAAC,CAAD,CAAZ,CACA1jB,GAAG,CAAC,CAAD,CAAH,CAAS0jB,GAAG,CAAC,CAAD,CAAZ,CACA1jB,GAAG,CAAC,CAAD,CAAH,CAAS2jB,GAAG,CAAC,CAAD,CAAZ,CACA3jB,GAAG,CAAC,CAAD,CAAH,CAAS2jB,GAAG,CAAC,CAAD,CAAZ,CACA3jB,GAAG,CAAC,CAAD,CAAH,CAAS4jB,GAAG,CAAC,CAAD,CAAZ,CACA5jB,GAAG,CAAC,CAAD,CAAH,CAAS4jB,GAAG,CAAC,CAAD,CAAZ,CACA,CAPD,IAOO,CACN,IAAIgO,EAAE,CAAG,KAAK6C,KAAL,CAAW,CAAX,CAAT,CACA,IAAI5C,EAAE,CAAG,KAAK4C,KAAL,CAAW,CAAX,CAAT,CACA,IAAIqE,EAAE,CAAG,KAAKrE,KAAL,CAAW,CAAX,CAAT,CACA,IAAIsE,EAAE,CAAG,KAAKtE,KAAL,CAAW,CAAX,CAAT,CACA,IAAIuE,GAAG,CAAG,KAAKvE,KAAL,CAAW,EAAX,CAAV,CACA,IAAIwE,GAAG,CAAG,KAAKxE,KAAL,CAAW,EAAX,CAAV,CACAz0B,GAAG,CAAC,CAAD,CAAH,CAAS0jB,GAAG,CAAC,CAAD,CAAH,CAASkO,EAAT,CAAclO,GAAG,CAAC,CAAD,CAAH,CAASoV,EAAvB,CAA4BE,GAArC,CACAh5B,GAAG,CAAC,CAAD,CAAH,CAAS0jB,GAAG,CAAC,CAAD,CAAH,CAASmO,EAAT,CAAcnO,GAAG,CAAC,CAAD,CAAH,CAASqV,EAAvB,CAA4BE,GAArC,CACAj5B,GAAG,CAAC,CAAD,CAAH,CAAS2jB,GAAG,CAAC,CAAD,CAAH,CAASiO,EAAT,CAAcjO,GAAG,CAAC,CAAD,CAAH,CAASmV,EAAvB,CAA4BE,GAArC,CACAh5B,GAAG,CAAC,CAAD,CAAH,CAAS2jB,GAAG,CAAC,CAAD,CAAH,CAASkO,EAAT,CAAclO,GAAG,CAAC,CAAD,CAAH,CAASoV,EAAvB,CAA4BE,GAArC,CACAj5B,GAAG,CAAC,CAAD,CAAH,CAAS4jB,GAAG,CAAC,CAAD,CAAH,CAASgO,EAAT,CAAchO,GAAG,CAAC,CAAD,CAAH,CAASkV,EAAvB,CAA4BE,GAArC,CACAh5B,GAAG,CAAC,CAAD,CAAH,CAAS4jB,GAAG,CAAC,CAAD,CAAH,CAASiO,EAAT,CAAcjO,GAAG,CAAC,CAAD,CAAH,CAASmV,EAAvB,CAA4BE,GAArC,CACA,CACD,OAAOj5B,GAAP,CACA,CAED,SAASy4B,iBAAT,CAA2BjY,CAA3B,CAA8BuI,CAA9B,CAAiCuD,CAAjC,CAAoC,CACnC,IAAItsB,GAAJ,CACA,GAAI,KAAK43B,UAAL,EAAJ,CAAuB,CACtB53B,GAAG,CAAG,CAACwgB,CAAD,CAAIuI,CAAJ,CAAOuD,CAAP,CAAN,CACA,CAFD,IAEO,CACNtsB,GAAG,CAAG,CACLwgB,CAAC,CAAG,KAAKiU,KAAL,CAAW,CAAX,CAAJ,CAAoB1L,CAAC,CAAG,KAAK0L,KAAL,CAAW,CAAX,CAAxB,CAAwCnI,CAAC,CAAG,KAAKmI,KAAL,CAAW,CAAX,CAA5C,CAA4D,KAAKA,KAAL,CAAW,EAAX,CADvD,CAELjU,CAAC,CAAG,KAAKiU,KAAL,CAAW,CAAX,CAAJ,CAAoB1L,CAAC,CAAG,KAAK0L,KAAL,CAAW,CAAX,CAAxB,CAAwCnI,CAAC,CAAG,KAAKmI,KAAL,CAAW,CAAX,CAA5C,CAA4D,KAAKA,KAAL,CAAW,EAAX,CAFvD,CAGLjU,CAAC,CAAG,KAAKiU,KAAL,CAAW,CAAX,CAAJ,CAAoB1L,CAAC,CAAG,KAAK0L,KAAL,CAAW,CAAX,CAAxB,CAAwCnI,CAAC,CAAG,KAAKmI,KAAL,CAAW,EAAX,CAA5C,CAA6D,KAAKA,KAAL,CAAW,EAAX,CAHxD,CAAN,CAKA,CACD,OAAOz0B,GAAP,CACA,CAED,SAASk5B,uBAAT,CAAiC1Y,CAAjC,CAAoCuI,CAApC,CAAuC,CACtC,GAAI,KAAK6O,UAAL,EAAJ,CAAuB,CACtB,OAAOpX,CAAC,CAAG,GAAJ,CAAUuI,CAAjB,CACA,CACD,IAAI3I,EAAE,CAAG,KAAKqU,KAAd,CACA,OAAOzzB,IAAI,CAAC0X,KAAL,CAAW,CAAC8H,CAAC,CAAGJ,EAAE,CAAC,CAAD,CAAN,CAAY2I,CAAC,CAAG3I,EAAE,CAAC,CAAD,CAAlB,CAAwBA,EAAE,CAAC,EAAD,CAA3B,EAAmC,GAA9C,EAAqD,GAArD,CAA2D,GAA3D,CAAiEpf,IAAI,CAAC0X,KAAL,CAAW,CAAC8H,CAAC,CAAGJ,EAAE,CAAC,CAAD,CAAN,CAAY2I,CAAC,CAAG3I,EAAE,CAAC,CAAD,CAAlB,CAAwBA,EAAE,CAAC,EAAD,CAA3B,EAAmC,GAA9C,EAAqD,GAA7H,CACA,CAED,SAAS+Y,KAAT,EAAiB;CAEhB;CACF;CACA,YACE,IAAIl8B,CAAC,CAAG,CAAR,CACA,IAAIw3B,KAAK,CAAG,KAAKA,KAAjB,CACA,IAAI2E,QAAQ,CAAG,WAAf,CACA,IAAI10B,CAAC,CAAG,KAAR,CACA,MAAOzH,CAAC,CAAG,EAAX,CAAe,CACdm8B,QAAQ,EAAI5E,IAAI,CAACC,KAAK,CAACx3B,CAAD,CAAL,CAAWyH,CAAZ,CAAJ,CAAqBA,CAAjC,CACA00B,QAAQ,EAAIn8B,CAAC,GAAK,EAAN,CAAW,GAAX,CAAiB,GAA7B,CACAA,CAAC,EAAI,CAAL,CACA,CACD,OAAOm8B,QAAP,CACA,CAED,SAASC,mBAAT,CAA6Bv3B,GAA7B,CAAkC,CACjC,IAAI4C,CAAC,CAAG,KAAR,CACA,GAAK5C,GAAG,CAAG,QAAN,EAAkBA,GAAG,CAAG,CAAzB,EAAgCA,GAAG,CAAG,CAAC,QAAP,EAAmBA,GAAG,CAAG,CAA7D,CAAiE,CAChE,OAAO0yB,IAAI,CAAC1yB,GAAG,CAAG4C,CAAP,CAAJ,CAAgBA,CAAvB,CACA,CACD,OAAO5C,GAAP,CACA,CAED,SAASw3B,OAAT,EAAmB;CAElB;CACF;CACA,YACE,IAAI7E,KAAK,CAAG,KAAKA,KAAjB,CACA,IAAI8E,EAAE,CAAGF,mBAAmB,CAAC5E,KAAK,CAAC,CAAD,CAAN,CAA5B,CACA,IAAI+E,EAAE,CAAGH,mBAAmB,CAAC5E,KAAK,CAAC,CAAD,CAAN,CAA5B,CACA,IAAIgF,EAAE,CAAGJ,mBAAmB,CAAC5E,KAAK,CAAC,CAAD,CAAN,CAA5B,CACA,IAAIiF,EAAE,CAAGL,mBAAmB,CAAC5E,KAAK,CAAC,CAAD,CAAN,CAA5B,CACA,IAAIkF,EAAE,CAAGN,mBAAmB,CAAC5E,KAAK,CAAC,EAAD,CAAN,CAA5B,CACA,IAAImF,EAAE,CAAGP,mBAAmB,CAAC5E,KAAK,CAAC,EAAD,CAAN,CAA5B,CACA,OAAO,UAAY8E,EAAZ,CAAiB,GAAjB,CAAuBC,EAAvB,CAA4B,GAA5B,CAAkCC,EAAlC,CAAuC,GAAvC,CAA6CC,EAA7C,CAAkD,GAAlD,CAAwDC,EAAxD,CAA6D,GAA7D,CAAmEC,EAAnE,CAAwE,GAA/E,CACA,CAED,iBAAmB,CAClB,KAAKtI,KAAL,CAAaA,KAAb,CACA,KAAKoD,MAAL,CAAcA,MAAd,CACA,KAAKI,OAAL,CAAeA,OAAf,CACA,KAAKC,OAAL,CAAeA,OAAf,CACA,KAAKC,OAAL,CAAeA,OAAf,CACA,KAAKG,IAAL,CAAYA,IAAZ,CACA,KAAKC,YAAL,CAAoBA,YAApB,CACA,KAAKH,KAAL,CAAaA,KAAb,CACA,KAAKI,KAAL,CAAaA,KAAb,CACA,KAAKE,YAAL,CAAoBA,YAApB,CACA,KAAKG,SAAL,CAAiBA,SAAjB,CACA,KAAKG,SAAL,CAAiBA,SAAjB,CACA,KAAKoC,YAAL,CAAoBA,YAApB,CACA,KAAKC,QAAL,CAAgBA,QAAhB,CACA,KAAKC,QAAL,CAAgBA,QAAhB,CACA,KAAKC,QAAL,CAAgBA,QAAhB,CACA,KAAKK,iBAAL,CAAyBA,iBAAzB,CACA,KAAKI,mBAAL,CAA2BA,mBAA3B,CACA,KAAKK,uBAAL,CAA+BA,uBAA/B,CACA,KAAKC,KAAL,CAAaA,KAAb,CACA,KAAKG,OAAL,CAAeA,OAAf,CACA,KAAKzJ,KAAL,CAAaA,KAAb,CACA,KAAKmI,cAAL,CAAsBA,cAAtB,CACA,KAAKF,MAAL,CAAcA,MAAd,CACA,KAAKY,aAAL,CAAqBA,aAArB,CACA,KAAKF,YAAL,CAAoBA,YAApB,CACA,KAAKH,gBAAL,CAAwBA,gBAAxB,CACA,KAAKxD,EAAL,CAAU,KAAKgB,SAAf,CACA,KAAK+B,UAAL,CAAkBA,UAAlB,CACA,KAAKC,SAAL,CAAiB,IAAjB,CACA,KAAKhB,mBAAL,CAA2B,KAA3B,CAEA,KAAKpC,KAAL,CAAa30B,gBAAgB,CAAC,SAAD,CAAY,EAAZ,CAA7B,CACA,KAAKwxB,KAAL,GACA,CAnCD,CAoCA,CAtYe,EAAhB,CAwYA,AAAMuI,MAAAA,MAAM,CAAG,EAAf,CAGA,IAAI1kB,QAAQ,CAAG,EAAf,CAEA,SAAS2kB,WAAT,CAAqBC,IAArB,CAA2B,CAC1Bx9B,eAAe,CAACw9B,IAAD,CAAf,CACA,CAED,SAAS1c,gBAAT,EAA4B,CAC3B,AAEO,CACNrB,gBAAgB,CAACqB,gBAAjB,GACA,CACD,CAED,SAAS2c,oBAAT,CAA8B39B,IAA9B,CAAoC,CACnCyJ,kBAAkB,CAACzJ,IAAD,CAAlB,CACA,CAED,SAAS49B,SAAT,CAAmBC,MAAnB,CAA2B,CAC1B9zB,WAAW,CAAC8zB,MAAD,CAAX,CACA,CAED,SAASnsB,aAAT,CAAuBoI,MAAvB,CAA+B,CAC9B,AAGA,OAAO6F,gBAAgB,CAACjO,aAAjB,CAA+BoI,MAA/B,CAAP,CACA,CAED,SAASgkB,UAAT,CAAoB39B,KAApB,CAA2B,CAC1B,GAAI,OAAOA,KAAP,GAAiB,QAArB,CAA+B,CAC9B,OAAQA,KAAR,EACC,IAAK,MAAL,CACC0J,uBAAuB,CAAC,GAAD,CAAvB,CACA,MACD,QACA,IAAK,QAAL,CACCA,uBAAuB,CAAC,EAAD,CAAvB,CACA,MACD,IAAK,KAAL,CACCA,uBAAuB,CAAC,EAAD,CAAvB,CACA,MAVF,CAYA,CAbD,QAaW,CAACiU,KAAK,CAAC3d,KAAD,CAAN,EAAiBA,KAAK,CAAG,CAA7B,CAAgC,CACtC0J,uBAAuB,CAAC1J,KAAD,CAAvB,CACA,CACD,AAKA,CAED,SAAS49B,SAAT,EAAqB,CACpB,cAAcv5B,SAAP,GAAqB,WAA5B,CACA,CAED,SAASw5B,aAAT,CAAuB19B,IAAvB,CAA6B29B,MAA7B,CAAqC,CACpC,GAAI39B,IAAI,GAAK,aAAb,CAA4B,CAC3BqJ,oBAAoB,CAACs0B,MAAD,CAApB,CACA,CACD,CAED,SAASC,UAAT,CAAoB7mB,IAApB,CAA0B,CACzB,OAAQA,IAAR,EACC,IAAK,iBAAL,CACC,OAAO4T,eAAP,CACD,IAAK,sBAAL,CACC,OAAOiJ,oBAAP,CACD,IAAK,QAAL,CACC,OAAO4D,MAAP,CACD,QACC,WAAA,CARF,CAUA,CAED0F,MAAM,CAAC16B,IAAP,CAAc6c,gBAAgB,CAAC7c,IAA/B,CACA06B,MAAM,CAACp7B,KAAP,CAAeud,gBAAgB,CAACvd,KAAhC,CACAo7B,MAAM,CAACt9B,eAAP,CAAyBu9B,WAAzB,CACAD,MAAM,CAACpgB,WAAP,CAAqBuC,gBAAgB,CAACvC,WAAtC,CACAogB,MAAM,CAACjf,QAAP,CAAkBoB,gBAAgB,CAACpB,QAAnC,CACAif,MAAM,CAAChf,YAAP,CAAsBmB,gBAAgB,CAACnB,YAAvC,CACAgf,MAAM,CAACngB,IAAP,CAAcsC,gBAAgB,CAACtC,IAA/B,CACAmgB,MAAM,CAACxc,gBAAP,CAA0BA,gBAA1B,CACAwc,MAAM,CAACnd,iBAAP,CAA2BV,gBAAgB,CAACU,iBAA5C,CACAmd,MAAM,CAAC9rB,aAAP,CAAuBA,aAAvB,CACA8rB,MAAM,CAACG,oBAAP,CAA8BA,oBAA9B,CACAH,MAAM,CAACzgB,MAAP,CAAgB4C,gBAAgB,CAAC5C,MAAjC,CACA;CACAygB,MAAM,CAAC9f,WAAP,CAAqBiC,gBAAgB,CAACjC,WAAtC,CACA8f,MAAM,CAACpoB,OAAP,CAAiBuK,gBAAgB,CAACvK,OAAlC,CACAooB,MAAM,CAACM,UAAP,CAAoBA,UAApB,CACAN,MAAM,CAACO,SAAP,CAAmBA,SAAnB,CACAP,MAAM,CAACQ,aAAP,CAAuBA,aAAvB,CACAR,MAAM,CAAC7b,MAAP,CAAgBhC,gBAAgB,CAACgC,MAAjC,CACA6b,MAAM,CAAC5b,QAAP,CAAkBjC,gBAAgB,CAACiC,QAAnC,CACA4b,MAAM,CAACt6B,SAAP,CAAmByc,gBAAgB,CAACzc,SAApC,CACAs6B,MAAM,CAACn6B,IAAP,CAAcsc,gBAAgB,CAACtc,IAA/B,CACAm6B,MAAM,CAACl6B,MAAP,CAAgBqc,gBAAgB,CAACrc,MAAjC,CACAk6B,MAAM,CAACjd,uBAAP,CAAiCZ,gBAAgB,CAACY,uBAAlD,CACAid,MAAM,CAACW,YAAP,CAAsBp+B,YAAtB,CACAy9B,MAAM,CAACY,WAAP,CAAqBR,SAArB,CACAJ,MAAM,CAACa,YAAP,CAAsBH,UAAtB,CACAV,MAAM,CAACc,OAAP,CAAiB,gBAAjB,CAEA,SAASC,UAAT,EAAsB,CACrB,GAAIh+B,QAAQ,CAACsQ,UAAT,GAAwB,UAA5B,CAAwC,CACvCkD,aAAa,CAACyqB,uBAAD,CAAb,CACAxd,gBAAgB,GAChB,CACD,CAED,SAASyd,gBAAT,CAA0BC,QAA1B,CAAoC,CACnC,IAAIC,IAAI,CAAGC,WAAW,CAAC5wB,KAAZ,CAAkB,GAAlB,CAAX,CACA,IAAK,IAAIpN,CAAC,CAAG,CAAb,CAAgBA,CAAC,CAAG+9B,IAAI,CAAC79B,MAAzB,CAAiCF,CAAC,EAAI,CAAtC,CAAyC,CACxC,IAAIi+B,IAAI,CAAGF,IAAI,CAAC/9B,CAAD,CAAJ,CAAQoN,KAAR,CAAc,GAAd,CAAX,CACA,GAAI8wB,kBAAkB,CAACD,IAAI,CAAC,CAAD,CAAL,CAAlB,EAA+BH,QAAnC,CAA6C;CAC5C,OAAOI,kBAAkB,CAACD,IAAI,CAAC,CAAD,CAAL,CAAzB,CACA,CACD,CACD,WAAA,CACA,CACD,IAAID,WAAW,CAAG,EAAlB,CACA,AAAgB,CACf,IAAIG,OAAO,CAAGx+B,QAAQ,CAACihB,oBAAT,CAA8B,QAA9B,CAAd,CACA,IAAI/B,KAAK,CAAGsf,OAAO,CAACj+B,MAAR,CAAiB,CAA7B,CACA,IAAIk+B,QAAQ,CAAGD,OAAO,CAACtf,KAAD,CAAP,EAAkB,CAChC7c,GAAG,CAAE,EAD2B,CAAjC,CAGAg8B,WAAW,CAAGI,QAAQ,CAACp8B,GAAT,CAAeo8B,QAAQ,CAACp8B,GAAT,CAAaqf,OAAb,CAAqB,YAArB,CAAmC,EAAnC,CAAf,CAAwD,EAAtE,CAA0E;CAC1EnJ,QAAQ,CAAG2lB,gBAAgB,CAAC,UAAD,CAA3B,CACA,CACD,IAAID,uBAAuB,CAAG7qB,WAAW,CAAC4qB,UAAD,CAAa,GAAb,CAAzC,CAEA;CACA,GAAI,CACH,GAAI,EAAE,OAAOU,OAAP,GAAmB,QAAnB,EAA+B,OAAOC,MAAP,GAAkB,WAAnD,GACA,EAAE,OAAOC,MAAP,GAAkB,UAAlB,EAAgCA,MAAM,CAACC,GAAzC,CAA8C;CADlD,CAEE,CACD18B,MAAM,CAAC28B,SAAP,CAAmB7B,MAAnB,CACA,CACD,CAAC,MAAO7sB,GAAP,CAAY;CAEb,CAED,MAAM2uB,cAAc,CAAI,UAAY,CACnC,IAAInrB,EAAE,CAAG,EAAT,CACA,IAAIorB,SAAS,CAAG,EAAhB,CACAprB,EAAE,CAACqrB,gBAAH,CAAsBA,gBAAtB,CACArrB,EAAE,CAACsrB,WAAH,CAAiBA,WAAjB,CAEA,SAASD,gBAAT,CAA0B9nB,EAA1B,CAA8Bic,OAA9B,CAAuC,CACtC,GAAI,CAAC4L,SAAS,CAAC7nB,EAAD,CAAd,CAAoB,CACnB6nB,SAAS,CAAC7nB,EAAD,CAAT,CAAgBic,OAAhB,CACA,CACD,CAED,SAAS8L,WAAT,CAAqB/nB,EAArB,CAAyB4I,IAAzB,CAA+B3V,IAA/B,CAAqC,CACpC,WAAW40B,SAAS,CAAC7nB,EAAD,CAAb,CAAkB4I,IAAlB,CAAwB3V,IAAxB,CAAP,CACA,CAED,OAAOwJ,EAAP,CACA,CAjBuB,EAAxB,CAmBA,SAASurB,aAAT,EAAyB,EACzBA,aAAa,CAAC1+B,SAAd,CAAwB2+B,sBAAxB,CAAiD,UAAY,EAA7D,CACAD,aAAa,CAAC1+B,SAAd,CAAwB4+B,kBAAxB,CAA6C,UAAY,EAAzD,CACAF,aAAa,CAAC1+B,SAAd,CAAwB6yB,QAAxB,CAAmC,SAAUlpB,IAAV,CAAgB,CAClD,GAAI,CAAC,KAAK6E,MAAV,CAAkB;CAEjB7E,IAAI,CAAC4iB,EAAL,CAAQvT,SAAR,CAAkBoX,kBAAlB,CAAqCzmB,IAAI,CAAC4iB,EAA1C,EACA,IAAItF,SAAS,CAAG,CAAEwL,KAAK,CAAE9oB,IAAI,CAAC4iB,EAAd,CAAkB5iB,IAAI,CAAEA,IAAxB,CAA8BiqB,oBAAoB,CAAEb,mBAAmB,CAACC,kBAApB,EAApD,CAAhB,CACA,KAAKnnB,MAAL,CAAY1K,IAAZ,CAAiB8lB,SAAjB,EACA,KAAK2X,kBAAL,CAAwB3X,SAAxB,EACA,GAAI,KAAK8J,WAAT,CAAsB,CACrBpnB,IAAI,CAACk1B,aAAL,GACA,CACD,CACD,CAXD,CAYAH,aAAa,CAAC1+B,SAAd,CAAwB0d,IAAxB,CAA+B,SAAU4B,IAAV,CAAgB3V,IAAhB,CAAsB,CACpD,KAAKkC,MAAL,CAAc,EAAd,CACA,KAAKyT,IAAL,CAAYA,IAAZ,CACA,KAAK2R,4BAAL,CAAkC3R,IAAlC,EACA,KAAKqf,sBAAL,CAA4Brf,IAA5B,CAAkC3V,IAAlC,EACA,KAAKimB,OAAL,CAAe9wB,mBAAf,CACA,KAAK0P,MAAL,CAAc,KAAd,CACA,KAAKzD,CAAL,CAAS,KAAT,CACA,GAAI,KAAK+lB,iBAAL,CAAuBhxB,MAA3B,CAAmC,CAClC,KAAKiL,CAAL,CAAS,IAAT,CACA,CAFD,IAEO,CACN,KAAKwlB,QAAL,CAAc,IAAd,EACA,CACD,CAbD,CAcAmO,aAAa,CAAC1+B,SAAd,CAAwB8+B,WAAxB,CAAsC,UAAY,CACjD,GAAI,KAAKxf,IAAL,CAAUlG,UAAV,CAAqBwW,OAArB,GAAiC,KAAKA,OAA1C,CAAmD,CAClD,OACA,CACD,KAAKA,OAAL,CAAe,KAAKtQ,IAAL,CAAUlG,UAAV,CAAqBwW,OAApC,CACA,KAAKoB,wBAAL,GACA,CAND,CAQAvxB,eAAe,CAAC,CAACoxB,wBAAD,CAAD,CAA6B6N,aAA7B,CAAf,CAEA,SAASK,YAAT,EAAwB,EAExBt/B,eAAe,CAAC,CAACi/B,aAAD,CAAD,CAAkBK,YAAlB,CAAf,CACAA,YAAY,CAAC/+B,SAAb,CAAuB2+B,sBAAvB,CAAgD,SAAUrf,IAAV,CAAgB3V,IAAhB,CAAsB,CACrE,KAAKvC,CAAL,CAAS6iB,eAAe,CAAC2G,OAAhB,CAAwBtR,IAAxB,CAA8B3V,IAAI,CAACvC,CAAnC,CAAsC,CAAtC,CAAyC,IAAzC,CAA+C,IAA/C,CAAT,CACA,KAAKmD,CAAL,CAAS0f,eAAe,CAAC2G,OAAhB,CAAwBtR,IAAxB,CAA8B3V,IAAI,CAACY,CAAnC,CAAsC,CAAtC,CAAyC,IAAzC,CAA+C,IAA/C,CAAT,CACA,KAAKoC,CAAL,CAASsd,eAAe,CAAC2G,OAAhB,CAAwBtR,IAAxB,CAA8B3V,IAAI,CAACgD,CAAnC,CAAsC,CAAtC,CAAyC,CAAzC,CAA4C,IAA5C,CAAT,CACA,KAAKqyB,MAAL,CAAc,CAAd,CACA,KAAKC,MAAL,CAAc,CAAd,CACA,KAAK1O,QAAL,CAAgB,KAAKuO,WAArB,CACA,KAAK1G,CAAL,CAASzuB,IAAI,CAACyuB,CAAd,CACA,KAAKrH,WAAL,CAAmB,CAAC,CAAC,KAAK3pB,CAAL,CAAOyoB,eAAP,CAAuB/vB,MAAzB,EAAmC,CAAC,CAAC,KAAKyK,CAAL,CAAOslB,eAAP,CAAuB/vB,MAA5D,EAAsE,CAAC,CAAC,KAAK6M,CAAL,CAAOkjB,eAAP,CAAuB/vB,MAAlH,CACA,CATD,CAWAi/B,YAAY,CAAC/+B,SAAb,CAAuB4+B,kBAAvB,CAA4C,SAAU3X,SAAV,CAAqB,CAChEA,SAAS,CAACiY,SAAV,CAAsB,EAAtB,CACA,CAFD,CAIAH,YAAY,CAAC/+B,SAAb,CAAuBm/B,mBAAvB,CAA6C,SAAU/3B,CAAV,CAAamD,CAAb,CAAgB60B,WAAhB,CAA6Bva,WAA7B,CAA0Cwa,mBAA1C,CAA+D,CAC3G,IAAIlnB,QAAQ,CAAG,EAAf,CACA,GAAI5N,CAAC,EAAI,CAAT,CAAY,CACX4N,QAAQ,CAAChX,IAAT,CAAc,CACbiG,CAAC,CAAEA,CADU,CAEbmD,CAAC,CAAEA,CAFU,CAAd,EAIA,CALD,QAKWnD,CAAC,EAAI,CAAT,CAAY,CAClB+Q,QAAQ,CAAChX,IAAT,CAAc,CACbiG,CAAC,CAAEA,CAAC,CAAG,CADM,CAEbmD,CAAC,CAAEA,CAAC,CAAG,CAFM,CAAd,EAIA,CALM,IAKA,CACN4N,QAAQ,CAAChX,IAAT,CAAc,CACbiG,CAAC,CAAEA,CADU,CAEbmD,CAAC,CAAE,CAFU,CAAd,EAIA4N,QAAQ,CAAChX,IAAT,CAAc,CACbiG,CAAC,CAAE,CADU,CAEbmD,CAAC,CAAEA,CAAC,CAAG,CAFM,CAAd,EAIA,CACD,IAAI+0B,aAAa,CAAG,EAApB,CACA,IAAI1/B,CAAJ,CACA,IAAIC,GAAG,CAAGsY,QAAQ,CAACrY,MAAnB,CACA,IAAIy/B,SAAJ,CACA,IAAK3/B,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B2/B,SAAS,CAAGpnB,QAAQ,CAACvY,CAAD,CAApB,CACA,GAAI,EAAE2/B,SAAS,CAACh1B,CAAV,CAAc80B,mBAAd,CAAoCxa,WAApC,EAAmD0a,SAAS,CAACn4B,CAAV,CAAci4B,mBAAd,CAAoCxa,WAAW,CAAGua,WAAvG,CAAJ,CAAyH,CACxH,IAAII,MAAJ,CACA,IAAIC,MAAJ,CACA,GAAIF,SAAS,CAACn4B,CAAV,CAAci4B,mBAAd,EAAqCxa,WAAzC,CAAsD,CACrD2a,MAAM,CAAG,CAAT,CACA,CAFD,IAEO,CACNA,MAAM,CAAG,CAACD,SAAS,CAACn4B,CAAV,CAAci4B,mBAAd,CAAoCxa,WAArC,EAAoDua,WAA7D,CACA,CACD,GAAIG,SAAS,CAACh1B,CAAV,CAAc80B,mBAAd,EAAqCxa,WAAW,CAAGua,WAAvD,CAAoE,CACnEK,MAAM,CAAG,CAAT,CACA,CAFD,IAEO,CACNA,MAAM,CAAI,CAACF,SAAS,CAACh1B,CAAV,CAAc80B,mBAAd,CAAoCxa,WAArC,EAAoDua,WAA9D,CACA,CACDE,aAAa,CAACn+B,IAAd,CAAmB,CAACq+B,MAAD,CAASC,MAAT,CAAnB,EACA,CACD,CACD,GAAI,CAACH,aAAa,CAACx/B,MAAnB,CAA2B,CAC1Bw/B,aAAa,CAACn+B,IAAd,CAAmB,CAAC,CAAD,CAAI,CAAJ,CAAnB,EACA,CACD,OAAOm+B,aAAP,CACA,CAhDD,CAkDAP,YAAY,CAAC/+B,SAAb,CAAuB0/B,gBAAvB,CAA0C,SAAUR,SAAV,CAAqB,CAC9D,IAAIt/B,CAAJ,CACA,IAAIC,GAAG,CAAGq/B,SAAS,CAACp/B,MAApB,CACA,IAAKF,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5BolB,kBAAkB,CAACN,OAAnB,CAA2Bwa,SAAS,CAACt/B,CAAD,CAApC,EACA,CACDs/B,SAAS,CAACp/B,MAAV,CAAmB,CAAnB,CACA,OAAOo/B,SAAP,CACA,CARD,CAUAH,YAAY,CAAC/+B,SAAb,CAAuB2/B,aAAvB,CAAuC,SAAU5P,aAAV,CAAyB,CAC/D,IAAI3oB,CAAJ,CACA,IAAImD,CAAJ,CACA,GAAI,KAAKmlB,IAAL,EAAaK,aAAjB,CAAgC,CAC/B,IAAIpjB,CAAC,CAAI,KAAKA,CAAL,CAAOtF,CAAP,CAAW,GAAZ,CAAmB,GAA3B,CACA,GAAIsF,CAAC,CAAG,CAAR,CAAW,CACVA,CAAC,EAAI,CAAL,CACA,CACD,GAAI,KAAKvF,CAAL,CAAOC,CAAP,CAAW,CAAf,CAAkB,CACjBD,CAAC,CAAG,EAAIuF,CAAR,CACA,CAFD,QAEW,KAAKvF,CAAL,CAAOC,CAAP,CAAW,CAAf,CAAkB,CACxBD,CAAC,CAAG,EAAIuF,CAAR,CACA,CAFM,IAEA,CACNvF,CAAC,CAAG,KAAKA,CAAL,CAAOC,CAAP,CAAWsF,CAAf,CACA,CACD,GAAI,KAAKpC,CAAL,CAAOlD,CAAP,CAAW,CAAf,CAAkB,CACjBkD,CAAC,CAAG,EAAIoC,CAAR,CACA,CAFD,QAEW,KAAKpC,CAAL,CAAOlD,CAAP,CAAW,CAAf,CAAkB,CACxBkD,CAAC,CAAG,EAAIoC,CAAR,CACA,CAFM,IAEA,CACNpC,CAAC,CAAG,KAAKA,CAAL,CAAOlD,CAAP,CAAWsF,CAAf,CACA,CAED,GAAIvF,CAAC,CAAGmD,CAAR,CAAW,CACV,IAAIq1B,EAAE,CAAGx4B,CAAT,CACAA,CAAC,CAAGmD,CAAJ,CACAA,CAAC,CAAGq1B,EAAJ,CACA,CACDx4B,CAAC,CAAGzD,IAAI,CAAC0X,KAAL,CAAWjU,CAAC,CAAG,KAAf,EAAwB,MAA5B,CACAmD,CAAC,CAAG5G,IAAI,CAAC0X,KAAL,CAAW9Q,CAAC,CAAG,KAAf,EAAwB,MAA5B,CACA,KAAKy0B,MAAL,CAAc53B,CAAd,CACA,KAAK63B,MAAL,CAAc10B,CAAd,CACA,CA7BD,IA6BO,CACNnD,CAAC,CAAG,KAAK43B,MAAT,CACAz0B,CAAC,CAAG,KAAK00B,MAAT,CACA,CACD,IAAIY,UAAJ,CACA,IAAIjgC,CAAJ,CACA,IAAIC,GAAG,CAAG,KAAKgM,MAAL,CAAY/L,MAAtB,CACA,IAAI+K,CAAJ,CACA,IAAIC,IAAJ,CACA,IAAIo0B,SAAJ,CACA,IAAIhxB,QAAJ,CACA,IAAI4xB,gBAAJ,CACA,IAAIT,mBAAmB,CAAG,CAA1B,CAEA,GAAI90B,CAAC,GAAKnD,CAAV,CAAa,CACZ,IAAKxH,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B,KAAKiM,MAAL,CAAYjM,CAAZ,EAAeg0B,oBAAf,CAAoCd,aAApC,GACA,KAAKjnB,MAAL,CAAYjM,CAAZ,EAAe6yB,KAAf,CAAqB/C,IAArB,CAA4B,IAA5B,CACA,KAAK7jB,MAAL,CAAYjM,CAAZ,EAAe6yB,KAAf,CAAqBkB,KAArB,CAA6B,KAAK9nB,MAAL,CAAYjM,CAAZ,EAAeg0B,oBAA5C,CACA,GAAI,KAAKlE,IAAT,CAAe,CACd,KAAK7jB,MAAL,CAAYjM,CAAZ,EAAes/B,SAAf,CAAyBp/B,MAAzB,CAAkC,CAAlC,CACA,CACD,CACD,CATD,QASW,EAAGyK,CAAC,GAAK,CAAN,EAAWnD,CAAC,GAAK,CAAlB,EAAyBmD,CAAC,GAAK,CAAN,EAAWnD,CAAC,GAAK,CAA5C,CAAJ,CAAqD,CAC3D,IAAI+Q,QAAQ,CAAG,EAAf,CACA,IAAI8O,SAAJ,CACA,IAAI2M,oBAAJ,CACA,IAAKh0B,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5BqnB,SAAS,CAAG,KAAKpb,MAAL,CAAYjM,CAAZ,CAAZ,CACA;CACA,GAAI,CAACqnB,SAAS,CAACwL,KAAV,CAAgB/C,IAAjB,EAAyB,CAAC,KAAKA,IAA/B,EAAuC,CAACK,aAAxC,EAAyD,KAAKqI,CAAL,GAAW,CAAxE,CAA2E,CAC1EnR,SAAS,CAACwL,KAAV,CAAgBkB,KAAhB,CAAwB1M,SAAS,CAAC2M,oBAAlC,CACA,CAFD,IAEO,CACNiM,UAAU,CAAG5Y,SAAS,CAACwL,KAAV,CAAgBkB,KAA7B,CACA7oB,IAAI,CAAG+0B,UAAU,CAACvb,OAAlB,CACAwb,gBAAgB,CAAG,CAAnB,CACA,GAAI,CAAC7Y,SAAS,CAACwL,KAAV,CAAgB/C,IAAjB,EAAyBzI,SAAS,CAACiY,SAAV,CAAoBp/B,MAAjD,CAAyD,CACxDggC,gBAAgB,CAAG7Y,SAAS,CAAC6Y,gBAA7B,CACA,CAFD,IAEO,CACNZ,SAAS,CAAG,KAAKQ,gBAAL,CAAsBzY,SAAS,CAACiY,SAAhC,CAAZ,CACA,IAAKr0B,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,IAAhB,CAAsBD,CAAC,EAAI,CAA3B,CAA8B,CAC7BqD,QAAQ,CAAG8b,GAAG,CAAChD,iBAAJ,CAAsB6Y,UAAU,CAACh0B,MAAX,CAAkBhB,CAAlB,CAAtB,CAAX,CACAq0B,SAAS,CAAC/9B,IAAV,CAAe+M,QAAf,EACA4xB,gBAAgB,EAAI5xB,QAAQ,CAAC+W,WAA7B,CACA,CACDgC,SAAS,CAAC6Y,gBAAV,CAA6BA,gBAA7B,CACA7Y,SAAS,CAACiY,SAAV,CAAsBA,SAAtB,CACA,CAEDG,mBAAmB,EAAIS,gBAAvB,CACA7Y,SAAS,CAACwL,KAAV,CAAgB/C,IAAhB,CAAuB,IAAvB,CACA,CACD,CACD,IAAI8P,MAAM,CAAGp4B,CAAb,CACA,IAAIq4B,MAAM,CAAGl1B,CAAb,CACA,IAAIsa,WAAW,CAAG,CAAlB,CACA,IAAIkb,KAAJ,CACA,IAAKngC,CAAC,CAAGC,GAAG,CAAG,CAAf,CAAkBD,CAAC,EAAI,CAAvB,CAA0BA,CAAC,EAAI,CAA/B,CAAkC,CACjCqnB,SAAS,CAAG,KAAKpb,MAAL,CAAYjM,CAAZ,CAAZ,CACA,GAAIqnB,SAAS,CAACwL,KAAV,CAAgB/C,IAApB,CAA0B,CACzBkE,oBAAoB,CAAG3M,SAAS,CAAC2M,oBAAjC,CACAA,oBAAoB,CAACd,aAArB,GACA;CACA,GAAI,KAAKsF,CAAL,GAAW,CAAX,EAAgBv4B,GAAG,CAAG,CAA1B,CAA6B,CAC5BkgC,KAAK,CAAG,KAAKZ,mBAAL,CAAyB/3B,CAAzB,CAA4BmD,CAA5B,CAA+B0c,SAAS,CAAC6Y,gBAAzC,CAA2Djb,WAA3D,CAAwEwa,mBAAxE,CAAR,CACAxa,WAAW,EAAIoC,SAAS,CAAC6Y,gBAAzB,CACA,CAHD,IAGO,CACNC,KAAK,CAAG,CAAC,CAACP,MAAD,CAASC,MAAT,CAAD,CAAR,CACA,CACD30B,IAAI,CAAGi1B,KAAK,CAACjgC,MAAb,CACA,IAAK+K,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,IAAhB,CAAsBD,CAAC,EAAI,CAA3B,CAA8B,CAC7B20B,MAAM,CAAGO,KAAK,CAACl1B,CAAD,CAAL,CAAS,CAAT,CAAT,CACA40B,MAAM,CAAGM,KAAK,CAACl1B,CAAD,CAAL,CAAS,CAAT,CAAT,CACAsN,QAAQ,CAACrY,MAAT,CAAkB,CAAlB,CACA,GAAI2/B,MAAM,EAAI,CAAd,CAAiB,CAChBtnB,QAAQ,CAAChX,IAAT,CAAc,CACbiG,CAAC,CAAE6f,SAAS,CAAC6Y,gBAAV,CAA6BN,MADnB,CAEbj1B,CAAC,CAAE0c,SAAS,CAAC6Y,gBAAV,CAA6BL,MAFnB,CAAd,EAIA,CALD,QAKWD,MAAM,EAAI,CAAd,CAAiB,CACvBrnB,QAAQ,CAAChX,IAAT,CAAc,CACbiG,CAAC,CAAE6f,SAAS,CAAC6Y,gBAAV,EAA8BN,MAAM,CAAG,CAAvC,CADU,CAEbj1B,CAAC,CAAE0c,SAAS,CAAC6Y,gBAAV,EAA8BL,MAAM,CAAG,CAAvC,CAFU,CAAd,EAIA,CALM,IAKA,CACNtnB,QAAQ,CAAChX,IAAT,CAAc,CACbiG,CAAC,CAAE6f,SAAS,CAAC6Y,gBAAV,CAA6BN,MADnB,CAEbj1B,CAAC,CAAE0c,SAAS,CAAC6Y,gBAFA,CAAd,EAIA3nB,QAAQ,CAAChX,IAAT,CAAc,CACbiG,CAAC,CAAE,CADU,CAEbmD,CAAC,CAAE0c,SAAS,CAAC6Y,gBAAV,EAA8BL,MAAM,CAAG,CAAvC,CAFU,CAAd,EAIA,CACD,IAAIO,aAAa,CAAG,KAAKC,SAAL,CAAehZ,SAAf,CAA0B9O,QAAQ,CAAC,CAAD,CAAlC,CAApB,CACA,GAAIA,QAAQ,CAAC,CAAD,CAAR,CAAY/Q,CAAZ,GAAkB+Q,QAAQ,CAAC,CAAD,CAAR,CAAY5N,CAAlC,CAAqC,CACpC,GAAI4N,QAAQ,CAACrY,MAAT,CAAkB,CAAtB,CAAyB,CACxB,IAAIogC,qBAAqB,CAAGjZ,SAAS,CAACwL,KAAV,CAAgBkB,KAAhB,CAAsB9nB,MAAtB,CAA6Bob,SAAS,CAACwL,KAAV,CAAgBkB,KAAhB,CAAsBrP,OAAtB,CAAgC,CAA7D,CAA5B,CACA,GAAI4b,qBAAqB,CAAC7xB,CAA1B,CAA6B,CAC5B,IAAI8xB,SAAS,CAAGH,aAAa,CAACI,GAAd,EAAhB,CACA,KAAKC,QAAL,CAAcL,aAAd,CAA6BpM,oBAA7B,EACAoM,aAAa,CAAG,KAAKC,SAAL,CAAehZ,SAAf,CAA0B9O,QAAQ,CAAC,CAAD,CAAlC,CAAuCgoB,SAAvC,CAAhB,CACA,CAJD,IAIO,CACN,KAAKE,QAAL,CAAcL,aAAd,CAA6BpM,oBAA7B,EACAoM,aAAa,CAAG,KAAKC,SAAL,CAAehZ,SAAf,CAA0B9O,QAAQ,CAAC,CAAD,CAAlC,CAAhB,CACA,CACD,CACD,KAAKkoB,QAAL,CAAcL,aAAd,CAA6BpM,oBAA7B,EACA,CACD,CACD3M,SAAS,CAACwL,KAAV,CAAgBkB,KAAhB,CAAwBC,oBAAxB,CACA,CACD,CACD,CA1FM,QA0FI,KAAKlE,IAAT,CAAe,CACrB,IAAK9vB,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B;CAE5B;CACA,KAAKiM,MAAL,CAAYjM,CAAZ,EAAes/B,SAAf,CAAyBp/B,MAAzB,CAAkC,CAAlC,CACA,KAAK+L,MAAL,CAAYjM,CAAZ,EAAe6yB,KAAf,CAAqB/C,IAArB,CAA4B,IAA5B,CACA,CACD,CACD,CAzJD,CA2JAqP,YAAY,CAAC/+B,SAAb,CAAuBqgC,QAAvB,CAAkC,SAAUC,QAAV,CAAoB1M,oBAApB,CAA0C,CAC3E,IAAIh0B,CAAJ,CACA,IAAIC,GAAG,CAAGygC,QAAQ,CAACxgC,MAAnB,CACA,IAAKF,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5Bg0B,oBAAoB,CAACf,QAArB,CAA8ByN,QAAQ,CAAC1gC,CAAD,CAAtC,EACA,CACD,CAND,CAQAm/B,YAAY,CAAC/+B,SAAb,CAAuBugC,UAAvB,CAAoC,SAAUla,GAAV,CAAeC,GAAf,CAAoBC,GAApB,CAAyBC,GAAzB,CAA8B+L,SAA9B,CAAyCf,GAAzC,CAA8CgP,QAA9C,CAAwD,CAC3FjO,SAAS,CAAChB,OAAV,CAAkBjL,GAAG,CAAC,CAAD,CAArB,CAA0BA,GAAG,CAAC,CAAD,CAA7B,CAAkC,GAAlC,CAAuCkL,GAAvC,EACAe,SAAS,CAAChB,OAAV,CAAkBhL,GAAG,CAAC,CAAD,CAArB,CAA0BA,GAAG,CAAC,CAAD,CAA7B,CAAkC,GAAlC,CAAuCiL,GAAG,CAAG,CAA7C,EACA,GAAIgP,QAAJ,CAAc,CACbjO,SAAS,CAAChB,OAAV,CAAkBlL,GAAG,CAAC,CAAD,CAArB,CAA0BA,GAAG,CAAC,CAAD,CAA7B,CAAkC,GAAlC,CAAuCmL,GAAvC,EACA,CACDe,SAAS,CAAChB,OAAV,CAAkB/K,GAAG,CAAC,CAAD,CAArB,CAA0BA,GAAG,CAAC,CAAD,CAA7B,CAAkC,GAAlC,CAAuCgL,GAAG,CAAG,CAA7C,EACA,CAPD,CASAuN,YAAY,CAAC/+B,SAAb,CAAuBygC,mBAAvB,CAA6C,SAAU3d,MAAV,CAAkByP,SAAlB,CAA6Bf,GAA7B,CAAkCgP,QAAlC,CAA4C,CACxFjO,SAAS,CAAChB,OAAV,CAAkBzO,MAAM,CAAC,CAAD,CAAxB,CAA6BA,MAAM,CAAC,CAAD,CAAnC,CAAwC,GAAxC,CAA6C0O,GAA7C,EACAe,SAAS,CAAChB,OAAV,CAAkBzO,MAAM,CAAC,CAAD,CAAxB,CAA6BA,MAAM,CAAC,CAAD,CAAnC,CAAwC,GAAxC,CAA6C0O,GAAG,CAAG,CAAnD,EACA,GAAIgP,QAAJ,CAAc,CACbjO,SAAS,CAAChB,OAAV,CAAkBzO,MAAM,CAAC,CAAD,CAAxB,CAA6BA,MAAM,CAAC,CAAD,CAAnC,CAAwC,GAAxC,CAA6C0O,GAA7C,EACA,CACDe,SAAS,CAAChB,OAAV,CAAkBzO,MAAM,CAAC,CAAD,CAAxB,CAA6BA,MAAM,CAAC,CAAD,CAAnC,CAAwC,GAAxC,CAA6C0O,GAAG,CAAG,CAAnD,EACA,CAPD,CASAuN,YAAY,CAAC/+B,SAAb,CAAuBigC,SAAvB,CAAmC,SAAUhZ,SAAV,CAAqByZ,YAArB,CAAmCnO,SAAnC,CAA8C,CAChF,IAAI2M,SAAS,CAAGjY,SAAS,CAACiY,SAA1B,CACA,IAAIW,UAAU,CAAG5Y,SAAS,CAACwL,KAAV,CAAgBkB,KAAhB,CAAsB9nB,MAAvC,CACA,IAAIjM,CAAJ,CACA,IAAIC,GAAG,CAAGonB,SAAS,CAACwL,KAAV,CAAgBkB,KAAhB,CAAsBrP,OAAhC,CACA,IAAIzZ,CAAJ,CACA,IAAIC,IAAJ,CACA,IAAI+Z,WAAW,CAAG,CAAlB,CACA,IAAI8b,iBAAJ,CACA,IAAIC,YAAJ,CACA,IAAI7b,OAAJ,CACA,IAAIlK,OAAJ,CACA,IAAIhP,MAAM,CAAG,EAAb,CACA,IAAImc,OAAJ,CACA,IAAIwY,QAAQ,CAAG,IAAf,CACA,GAAI,CAACjO,SAAL,CAAgB,CACfA,SAAS,CAAGD,SAAS,CAAC7N,UAAV,EAAZ,CACAmc,YAAY,CAAG,CAAf,CACA5Y,OAAO,CAAG,CAAV,CACA,CAJD,IAIO,CACN4Y,YAAY,CAAGrO,SAAS,CAACjO,OAAzB,CACA0D,OAAO,CAAGuK,SAAS,CAACjO,OAApB,CACA,CACDzY,MAAM,CAAC1K,IAAP,CAAYoxB,SAAZ,EACA,IAAK3yB,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5BmlB,OAAO,CAAGma,SAAS,CAACt/B,CAAD,CAAT,CAAamlB,OAAvB,CACAwN,SAAS,CAAClkB,CAAV,CAAcwxB,UAAU,CAACjgC,CAAD,CAAV,CAAcyO,CAA5B,CACAvD,IAAI,CAAG+0B,UAAU,CAACjgC,CAAD,CAAV,CAAcyO,CAAd,CAAkB0W,OAAO,CAACjlB,MAA1B,CAAmCilB,OAAO,CAACjlB,MAAR,CAAiB,CAA3D,CACA,IAAK+K,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,IAAhB,CAAsBD,CAAC,EAAI,CAA3B,CAA8B,CAC7B81B,iBAAiB,CAAG5b,OAAO,CAACla,CAAC,CAAG,CAAL,CAA3B,CACA,GAAIga,WAAW,CAAG8b,iBAAiB,CAAC9b,WAAhC,CAA8C6b,YAAY,CAACt5B,CAA/D,CAAkE,CACjEyd,WAAW,EAAI8b,iBAAiB,CAAC9b,WAAjC,CACA0N,SAAS,CAAClkB,CAAV,CAAc,KAAd,CACA,CAHD,QAGWwW,WAAW,CAAG6b,YAAY,CAACn2B,CAA/B,CAAkC,CACxCgoB,SAAS,CAAClkB,CAAV,CAAc,KAAd,CACA,MACA,CAHM,IAGA,CACN,GAAIqyB,YAAY,CAACt5B,CAAb,EAAkByd,WAAlB,EAAiC6b,YAAY,CAACn2B,CAAb,EAAkBsa,WAAW,CAAG8b,iBAAiB,CAAC9b,WAAvF,CAAoG,CACnG,KAAK0b,UAAL,CAAgBV,UAAU,CAACjgC,CAAD,CAAV,CAAcyH,CAAd,CAAgBwD,CAAC,CAAG,CAApB,CAAhB,CAAwCg1B,UAAU,CAACjgC,CAAD,CAAV,CAAc+M,CAAd,CAAgB9B,CAAC,CAAG,CAApB,CAAxC,CAAgEg1B,UAAU,CAACjgC,CAAD,CAAV,CAAcA,CAAd,CAAgBiL,CAAhB,CAAhE,CAAoFg1B,UAAU,CAACjgC,CAAD,CAAV,CAAcyH,CAAd,CAAgBwD,CAAhB,CAApF,CAAwG0nB,SAAxG,CAAmHqO,YAAnH,CAAiIJ,QAAjI,EACAA,QAAQ,CAAG,KAAX,CACA,CAHD,IAGO,CACN3lB,OAAO,CAAGmP,GAAG,CAACrB,aAAJ,CAAkBkX,UAAU,CAACjgC,CAAD,CAAV,CAAcyH,CAAd,CAAgBwD,CAAC,CAAG,CAApB,CAAlB,CAA0Cg1B,UAAU,CAACjgC,CAAD,CAAV,CAAcyH,CAAd,CAAgBwD,CAAhB,CAA1C,CAA8Dg1B,UAAU,CAACjgC,CAAD,CAAV,CAAc+M,CAAd,CAAgB9B,CAAC,CAAG,CAApB,CAA9D,CAAsFg1B,UAAU,CAACjgC,CAAD,CAAV,CAAcA,CAAd,CAAgBiL,CAAhB,CAAtF,CAA0G,CAAC61B,YAAY,CAACt5B,CAAb,CAAiByd,WAAlB,EAAiC8b,iBAAiB,CAAC9b,WAA7J,CAA0K,CAAC6b,YAAY,CAACn2B,CAAb,CAAiBsa,WAAlB,EAAiC8b,iBAAiB,CAAC9b,WAA7N,CAA0OE,OAAO,CAACla,CAAC,CAAG,CAAL,CAAjP,CAAV,CACA,KAAK41B,mBAAL,CAAyB5lB,OAAzB,CAAkC0X,SAAlC,CAA6CqO,YAA7C,CAA2DJ,QAA3D,EACA;CACAA,QAAQ,CAAG,KAAX,CACAjO,SAAS,CAAClkB,CAAV,CAAc,KAAd,CACA,CACDwW,WAAW,EAAI8b,iBAAiB,CAAC9b,WAAjC,CACA+b,YAAY,EAAI,CAAhB,CACA,CACD,CACD,GAAIf,UAAU,CAACjgC,CAAD,CAAV,CAAcyO,CAAd,EAAmB0W,OAAO,CAACjlB,MAA/B,CAAuC,CACtC6gC,iBAAiB,CAAG5b,OAAO,CAACla,CAAC,CAAG,CAAL,CAA3B,CACA,GAAIga,WAAW,EAAI6b,YAAY,CAACn2B,CAAhC,CAAmC,CAClC,IAAIgd,aAAa,CAAGxC,OAAO,CAACla,CAAC,CAAG,CAAL,CAAP,CAAega,WAAnC,CACA,GAAI6b,YAAY,CAACt5B,CAAb,EAAkByd,WAAlB,EAAiC6b,YAAY,CAACn2B,CAAb,EAAkBsa,WAAW,CAAG0C,aAArE,CAAoF,CACnF,KAAKgZ,UAAL,CAAgBV,UAAU,CAACjgC,CAAD,CAAV,CAAcyH,CAAd,CAAgBwD,CAAC,CAAG,CAApB,CAAhB,CAAwCg1B,UAAU,CAACjgC,CAAD,CAAV,CAAc+M,CAAd,CAAgB9B,CAAC,CAAG,CAApB,CAAxC,CAAgEg1B,UAAU,CAACjgC,CAAD,CAAV,CAAcA,CAAd,CAAgB,CAAhB,CAAhE,CAAoFigC,UAAU,CAACjgC,CAAD,CAAV,CAAcyH,CAAd,CAAgB,CAAhB,CAApF,CAAwGkrB,SAAxG,CAAmHqO,YAAnH,CAAiIJ,QAAjI,EACAA,QAAQ,CAAG,KAAX,CACA,CAHD,IAGO,CACN3lB,OAAO,CAAGmP,GAAG,CAACrB,aAAJ,CAAkBkX,UAAU,CAACjgC,CAAD,CAAV,CAAcyH,CAAd,CAAgBwD,CAAC,CAAG,CAApB,CAAlB,CAA0Cg1B,UAAU,CAACjgC,CAAD,CAAV,CAAcyH,CAAd,CAAgB,CAAhB,CAA1C,CAA8Dw4B,UAAU,CAACjgC,CAAD,CAAV,CAAc+M,CAAd,CAAgB9B,CAAC,CAAG,CAApB,CAA9D,CAAsFg1B,UAAU,CAACjgC,CAAD,CAAV,CAAcA,CAAd,CAAgB,CAAhB,CAAtF,CAA0G,CAAC8gC,YAAY,CAACt5B,CAAb,CAAiByd,WAAlB,EAAiC0C,aAA3I,CAA0J,CAACmZ,YAAY,CAACn2B,CAAb,CAAiBsa,WAAlB,EAAiC0C,aAA3L,CAA0MxC,OAAO,CAACla,CAAC,CAAG,CAAL,CAAjN,CAAV,CACA,KAAK41B,mBAAL,CAAyB5lB,OAAzB,CAAkC0X,SAAlC,CAA6CqO,YAA7C,CAA2DJ,QAA3D,EACA;CACAA,QAAQ,CAAG,KAAX,CACAjO,SAAS,CAAClkB,CAAV,CAAc,KAAd,CACA,CACD,CAZD,IAYO,CACNkkB,SAAS,CAAClkB,CAAV,CAAc,KAAd,CACA,CACDwW,WAAW,EAAI8b,iBAAiB,CAAC9b,WAAjC,CACA+b,YAAY,EAAI,CAAhB,CACA,CACD,GAAIrO,SAAS,CAACjO,OAAd,CAAuB,CACtBiO,SAAS,CAAChB,OAAV,CAAkBgB,SAAS,CAAClrB,CAAV,CAAY2gB,OAAZ,EAAqB,CAArB,CAAlB,CAA2CuK,SAAS,CAAClrB,CAAV,CAAY2gB,OAAZ,EAAqB,CAArB,CAA3C,CAAoE,GAApE,CAAyEA,OAAzE,EACAuK,SAAS,CAAChB,OAAV,CAAkBgB,SAAS,CAAClrB,CAAV,CAAYkrB,SAAS,CAACjO,OAAV,CAAoB,CAAhC,EAAmC,CAAnC,CAAlB,CAAyDiO,SAAS,CAAClrB,CAAV,CAAYkrB,SAAS,CAACjO,OAAV,CAAoB,CAAhC,EAAmC,CAAnC,CAAzD,CAAgG,GAAhG,CAAqGiO,SAAS,CAACjO,OAAV,CAAoB,CAAzH,EACA,CACD,GAAIO,WAAW,CAAG6b,YAAY,CAACn2B,CAA/B,CAAkC,CACjC,MACA,CACD,GAAI3K,CAAC,CAAGC,GAAG,CAAG,CAAd,CAAiB,CAChB0yB,SAAS,CAAGD,SAAS,CAAC7N,UAAV,EAAZ,CACA+b,QAAQ,CAAG,IAAX,CACA30B,MAAM,CAAC1K,IAAP,CAAYoxB,SAAZ,EACAqO,YAAY,CAAG,CAAf,CACA,CACD,CACD,OAAO/0B,MAAP,CACA,CAtFD,CAwFA,SAASg1B,sBAAT,EAAkC,EAClCphC,eAAe,CAAC,CAACi/B,aAAD,CAAD,CAAkBmC,sBAAlB,CAAf,CACAA,sBAAsB,CAAC7gC,SAAvB,CAAiC2+B,sBAAjC,CAA0D,SAAUrf,IAAV,CAAgB3V,IAAhB,CAAsB,CAC/E,KAAK4mB,QAAL,CAAgB,KAAKuO,WAArB,CACA,KAAKgC,MAAL,CAAc7W,eAAe,CAAC2G,OAAhB,CAAwBtR,IAAxB,CAA8B3V,IAAI,CAACmE,CAAnC,CAAsC,CAAtC,CAAyC,IAAzC,CAA+C,IAA/C,CAAd,CACA,KAAKijB,WAAL,CAAmB,CAAC,CAAC,KAAK+P,MAAL,CAAYjR,eAAZ,CAA4B/vB,MAAjD,CACA,CAJD,CAMA+gC,sBAAsB,CAAC7gC,SAAvB,CAAiC+gC,WAAjC,CAA+C,SAAUr3B,IAAV,CAAgBo3B,MAAhB,CAAwB,CACtE,IAAIzY,OAAO,CAAGyY,MAAM,CAAG,GAAvB,CACA,IAAIE,WAAW,CAAG,CAAC,CAAD,CAAI,CAAJ,CAAlB,CACA,IAAIC,UAAU,CAAGv3B,IAAI,CAAC4a,OAAtB,CACA,IAAI1kB,CAAC,CAAG,CAAR,CACA,IAAKA,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGqhC,UAAhB,CAA4BrhC,CAAC,EAAI,CAAjC,CAAoC,CACnCohC,WAAW,CAAC,CAAD,CAAX,EAAkBt3B,IAAI,CAACrC,CAAL,CAAOzH,CAAP,EAAU,CAAV,CAAlB,CACAohC,WAAW,CAAC,CAAD,CAAX,EAAkBt3B,IAAI,CAACrC,CAAL,CAAOzH,CAAP,EAAU,CAAV,CAAlB,CACA,CACDohC,WAAW,CAAC,CAAD,CAAX,EAAkBC,UAAlB,CACAD,WAAW,CAAC,CAAD,CAAX,EAAkBC,UAAlB,CACA,IAAIC,UAAU,CAAG5O,SAAS,CAAC7N,UAAV,EAAjB,CACAyc,UAAU,CAAC7yB,CAAX,CAAe3E,IAAI,CAAC2E,CAApB,CACA,IAAIqjB,EAAJ,CACA,IAAIC,EAAJ,CACA,IAAIC,EAAJ,CACA,IAAIC,EAAJ,CACA,IAAIC,EAAJ,CACA,IAAIC,EAAJ,CACA,IAAKnyB,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGqhC,UAAhB,CAA4BrhC,CAAC,EAAI,CAAjC,CAAoC,CACnC8xB,EAAE,CAAGhoB,IAAI,CAACrC,CAAL,CAAOzH,CAAP,EAAU,CAAV,EAAe,CAACohC,WAAW,CAAC,CAAD,CAAX,CAAiBt3B,IAAI,CAACrC,CAAL,CAAOzH,CAAP,EAAU,CAAV,CAAlB,EAAkCyoB,OAAtD,CACAsJ,EAAE,CAAGjoB,IAAI,CAACrC,CAAL,CAAOzH,CAAP,EAAU,CAAV,EAAe,CAACohC,WAAW,CAAC,CAAD,CAAX,CAAiBt3B,IAAI,CAACrC,CAAL,CAAOzH,CAAP,EAAU,CAAV,CAAlB,EAAkCyoB,OAAtD,CACAuJ,EAAE,CAAGloB,IAAI,CAACiD,CAAL,CAAO/M,CAAP,EAAU,CAAV,EAAe,CAACohC,WAAW,CAAC,CAAD,CAAX,CAAiBt3B,IAAI,CAACiD,CAAL,CAAO/M,CAAP,EAAU,CAAV,CAAlB,EAAkC,CAACyoB,OAAvD,CACAwJ,EAAE,CAAGnoB,IAAI,CAACiD,CAAL,CAAO/M,CAAP,EAAU,CAAV,EAAe,CAACohC,WAAW,CAAC,CAAD,CAAX,CAAiBt3B,IAAI,CAACiD,CAAL,CAAO/M,CAAP,EAAU,CAAV,CAAlB,EAAkC,CAACyoB,OAAvD,CACAyJ,EAAE,CAAGpoB,IAAI,CAAC9J,CAAL,CAAOA,CAAP,EAAU,CAAV,EAAe,CAACohC,WAAW,CAAC,CAAD,CAAX,CAAiBt3B,IAAI,CAAC9J,CAAL,CAAOA,CAAP,EAAU,CAAV,CAAlB,EAAkC,CAACyoB,OAAvD,CACA0J,EAAE,CAAGroB,IAAI,CAAC9J,CAAL,CAAOA,CAAP,EAAU,CAAV,EAAe,CAACohC,WAAW,CAAC,CAAD,CAAX,CAAiBt3B,IAAI,CAAC9J,CAAL,CAAOA,CAAP,EAAU,CAAV,CAAlB,EAAkC,CAACyoB,OAAvD,CACA6Y,UAAU,CAACzP,WAAX,CAAuBC,EAAvB,CAA2BC,EAA3B,CAA+BC,EAA/B,CAAmCC,EAAnC,CAAuCC,EAAvC,CAA2CC,EAA3C,CAA+CnyB,CAA/C,EACA,CACD,OAAOshC,UAAP,CACA,CA7BD,CA+BAL,sBAAsB,CAAC7gC,SAAvB,CAAiC2/B,aAAjC,CAAiD,SAAU5P,aAAV,CAAyB,CACzE,IAAI8P,UAAJ,CACA,IAAIjgC,CAAJ,CACA,IAAIC,GAAG,CAAG,KAAKgM,MAAL,CAAY/L,MAAtB,CACA,IAAI+K,CAAJ,CACA,IAAIC,IAAJ,CACA,IAAIg2B,MAAM,CAAG,KAAKA,MAAL,CAAYz5B,CAAzB,CAEA,GAAIy5B,MAAM,GAAK,CAAf,CAAkB,CACjB,IAAI7Z,SAAJ,CACA,IAAI2M,oBAAJ,CACA,IAAKh0B,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5BqnB,SAAS,CAAG,KAAKpb,MAAL,CAAYjM,CAAZ,CAAZ,CACAg0B,oBAAoB,CAAG3M,SAAS,CAAC2M,oBAAjC,CACA,GAAI,EAAE,CAAC3M,SAAS,CAACwL,KAAV,CAAgB/C,IAAjB,EAAyB,CAAC,KAAKA,IAA/B,EAAuC,CAACK,aAA1C,CAAJ,CAA8D,CAC7D6D,oBAAoB,CAACd,aAArB,GACA7L,SAAS,CAACwL,KAAV,CAAgB/C,IAAhB,CAAuB,IAAvB,CACAmQ,UAAU,CAAG5Y,SAAS,CAACwL,KAAV,CAAgBkB,KAAhB,CAAsB9nB,MAAnC,CACAf,IAAI,CAAGmc,SAAS,CAACwL,KAAV,CAAgBkB,KAAhB,CAAsBrP,OAA7B,CACA,IAAKzZ,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,IAAhB,CAAsBD,CAAC,EAAI,CAA3B,CAA8B,CAC7B+oB,oBAAoB,CAACf,QAArB,CAA8B,KAAKkO,WAAL,CAAiBlB,UAAU,CAACh1B,CAAD,CAA3B,CAAgCi2B,MAAhC,CAA9B,EACA,CACD,CACD7Z,SAAS,CAACwL,KAAV,CAAgBkB,KAAhB,CAAwB1M,SAAS,CAAC2M,oBAAlC,CACA,CACD,CACD,GAAI,CAAC,KAAK9C,iBAAL,CAAuBhxB,MAA5B,CAAoC,CACnC,KAAK4vB,IAAL,CAAY,KAAZ,CACA,CACD,CA7BD,CA+BA,MAAMyR,wBAAwB,CAAI,UAAY,CAC7C,IAAIC,aAAa,CAAG,CAAC,CAAD,CAAI,CAAJ,CAApB,CAEA,SAASC,aAAT,CAAuBC,GAAvB,CAA4B,CAC3B,IAAI5R,IAAI,CAAG,KAAKA,IAAhB,CACA,KAAKsB,wBAAL,GACA,KAAKtB,IAAL,CAAY,KAAKA,IAAL,EAAaA,IAAzB,CACA,GAAI,KAAK5hB,CAAT,CAAY,CACXwzB,GAAG,CAACjJ,SAAJ,CAAc,CAAC,KAAKvqB,CAAL,CAAOzG,CAAP,CAAS,CAAT,CAAf,CAA4B,CAAC,KAAKyG,CAAL,CAAOzG,CAAP,CAAS,CAAT,CAA7B,CAA0C,KAAKyG,CAAL,CAAOzG,CAAP,CAAS,CAAT,CAA1C,EACA,CACD,GAAI,KAAKD,CAAT,CAAY,CACXk6B,GAAG,CAACtJ,KAAJ,CAAU,KAAK5wB,CAAL,CAAOC,CAAP,CAAS,CAAT,CAAV,CAAuB,KAAKD,CAAL,CAAOC,CAAP,CAAS,CAAT,CAAvB,CAAoC,KAAKD,CAAL,CAAOC,CAAP,CAAS,CAAT,CAApC,EACA,CACD,GAAI,KAAK0G,EAAT,CAAa,CACZuzB,GAAG,CAACvJ,YAAJ,CAAiB,CAAC,KAAKhqB,EAAL,CAAQ1G,CAA1B,CAA6B,KAAK2G,EAAL,CAAQ3G,CAArC,EACA,CACD,GAAI,KAAKC,CAAT,CAAY,CACXg6B,GAAG,CAACjK,MAAJ,CAAW,CAAC,KAAK/vB,CAAL,CAAOD,CAAnB,EACA,CAFD,IAEO,CACNi6B,GAAG,CAAC3J,OAAJ,CAAY,CAAC,KAAK4J,EAAL,CAAQl6B,CAArB,EAAwBqwB,OAAxB,CAAgC,KAAK8J,EAAL,CAAQn6B,CAAxC,EAA2CowB,OAA3C,CAAmD,KAAKgK,EAAL,CAAQp6B,CAA3D,EAA8DswB,OAA9D,CAAsE,CAAC,KAAKvC,EAAL,CAAQ/tB,CAAR,CAAU,CAAV,CAAvE,EACEqwB,OADF,CACU,KAAKtC,EAAL,CAAQ/tB,CAAR,CAAU,CAAV,CADV,EAEEowB,OAFF,CAEU,KAAKrC,EAAL,CAAQ/tB,CAAR,CAAU,CAAV,CAFV,EAGA,CACD,GAAI,KAAKsC,IAAL,CAAUjC,CAAV,CAAYN,CAAhB,CAAmB,CAClB,GAAI,KAAKuC,IAAL,CAAUjC,CAAV,CAAYunB,CAAhB,CAAmB,CAClBqS,GAAG,CAACjJ,SAAJ,CAAc,KAAKqJ,EAAL,CAAQr6B,CAAtB,CAAyB,KAAKs6B,EAAL,CAAQt6B,CAAjC,CAAoC,CAAC,KAAKu6B,EAAL,CAAQv6B,CAA7C,EACA,CAFD,IAEO,CACNi6B,GAAG,CAACjJ,SAAJ,CAAc,KAAKqJ,EAAL,CAAQr6B,CAAtB,CAAyB,KAAKs6B,EAAL,CAAQt6B,CAAjC,CAAoC,CAApC,EACA,CACD,CAND,IAMO,CACNi6B,GAAG,CAACjJ,SAAJ,CAAc,KAAK3wB,CAAL,CAAOL,CAAP,CAAS,CAAT,CAAd,CAA2B,KAAKK,CAAL,CAAOL,CAAP,CAAS,CAAT,CAA3B,CAAwC,CAAC,KAAKK,CAAL,CAAOL,CAAP,CAAS,CAAT,CAAzC,EACA,CACD,CACD,SAASy3B,WAAT,CAAqB+C,WAArB,CAAkC,CACjC,GAAI,KAAKviB,IAAL,CAAUlG,UAAV,CAAqBwW,OAArB,GAAiC,KAAKA,OAA1C,CAAmD,CAClD,OACA,CACD,GAAI,KAAKkS,QAAT,CAAmB,CAClB,KAAKC,kBAAL,GACA,KAAKD,QAAL,CAAgB,KAAhB,CACA,CAED,KAAK9Q,wBAAL,GAEA,GAAI,KAAKtB,IAAL,EAAamS,WAAjB,CAA8B,CAC7B,IAAIvqB,SAAJ,CACA,KAAKjQ,CAAL,CAAOszB,cAAP,CAAsB,KAAKqH,GAAL,CAAS5K,KAA/B,EACA,GAAI,KAAK6K,sBAAL,CAA8B,CAAlC,CAAqC,CACpC,KAAK56B,CAAL,CAAOgxB,SAAP,CAAiB,CAAC,KAAKvqB,CAAL,CAAOzG,CAAP,CAAS,CAAT,CAAlB,CAA+B,CAAC,KAAKyG,CAAL,CAAOzG,CAAP,CAAS,CAAT,CAAhC,CAA6C,KAAKyG,CAAL,CAAOzG,CAAP,CAAS,CAAT,CAA7C,EACA,CACD,GAAI,KAAK46B,sBAAL,CAA8B,CAAlC,CAAqC,CACpC,KAAK56B,CAAL,CAAO2wB,KAAP,CAAa,KAAK5wB,CAAL,CAAOC,CAAP,CAAS,CAAT,CAAb,CAA0B,KAAKD,CAAL,CAAOC,CAAP,CAAS,CAAT,CAA1B,CAAuC,KAAKD,CAAL,CAAOC,CAAP,CAAS,CAAT,CAAvC,EACA,CACD,GAAI,KAAK0G,EAAL,EAAW,KAAKk0B,sBAAL,CAA8B,CAA7C,CAAgD,CAC/C,KAAK56B,CAAL,CAAO0wB,YAAP,CAAoB,CAAC,KAAKhqB,EAAL,CAAQ1G,CAA7B,CAAgC,KAAK2G,EAAL,CAAQ3G,CAAxC,EACA,CACD,GAAI,KAAKC,CAAL,EAAU,KAAK26B,sBAAL,CAA8B,CAA5C,CAA+C,CAC9C,KAAK56B,CAAL,CAAOgwB,MAAP,CAAc,CAAC,KAAK/vB,CAAL,CAAOD,CAAtB,EACA,CAFD,QAEW,CAAC,KAAKC,CAAN,EAAW,KAAK26B,sBAAL,CAA8B,CAA7C,CAAgD,CACtD,KAAK56B,CAAL,CAAOswB,OAAP,CAAe,CAAC,KAAK4J,EAAL,CAAQl6B,CAAxB,EAA2BqwB,OAA3B,CAAmC,KAAK8J,EAAL,CAAQn6B,CAA3C,EAA8CowB,OAA9C,CAAsD,KAAKgK,EAAL,CAAQp6B,CAA9D,EAAiEswB,OAAjE,CAAyE,CAAC,KAAKvC,EAAL,CAAQ/tB,CAAR,CAAU,CAAV,CAA1E,EACEqwB,OADF,CACU,KAAKtC,EAAL,CAAQ/tB,CAAR,CAAU,CAAV,CADV,EAEEowB,OAFF,CAEU,KAAKrC,EAAL,CAAQ/tB,CAAR,CAAU,CAAV,CAFV,EAGA,CACD,GAAI,KAAK66B,YAAT,CAAuB,CACtB,IAAIzL,EAAJ,CACA,IAAI0L,EAAJ,CACA7qB,SAAS,CAAG,KAAKgI,IAAL,CAAUlG,UAAV,CAAqB9B,SAAjC,CACA,GAAI,KAAK5P,CAAL,EAAU,KAAKA,CAAL,CAAOmjB,SAAjB,EAA8B,KAAKnjB,CAAL,CAAO06B,cAAzC,CAAyD,CACxD,GAAI,KAAK16B,CAAL,CAAO2nB,QAAP,CAAgBvD,SAAhB,CAA4B,KAAKpkB,CAAL,CAAO6iB,UAAnC,EAAiD,KAAK7iB,CAAL,CAAOmjB,SAAP,CAAiB,CAAjB,EAAoBjjB,CAAzE,CAA4E,CAC3E6uB,EAAE,CAAG,KAAK/uB,CAAL,CAAO06B,cAAP,CAAsB,CAAC,KAAK16B,CAAL,CAAOmjB,SAAP,CAAiB,CAAjB,EAAoBjjB,CAApB,CAAwB,IAAzB,EAAiC0P,SAAvD,CAAkE,CAAlE,CAAL,CACA6qB,EAAE,CAAG,KAAKz6B,CAAL,CAAO06B,cAAP,CAAsB,KAAK16B,CAAL,CAAOmjB,SAAP,CAAiB,CAAjB,EAAoBjjB,CAApB,CAAwB0P,SAA9C,CAAyD,CAAzD,CAAL,CACA,CAHD,QAGW,KAAK5P,CAAL,CAAO2nB,QAAP,CAAgBvD,SAAhB,CAA4B,KAAKpkB,CAAL,CAAO6iB,UAAnC,EAAiD,KAAK7iB,CAAL,CAAOmjB,SAAP,CAAiB,KAAKnjB,CAAL,CAAOmjB,SAAP,CAAiB/qB,MAAjB,CAA0B,CAA3C,EAA8C8H,CAAnG,CAAsG,CAC5G6uB,EAAE,CAAG,KAAK/uB,CAAL,CAAO06B,cAAP,CAAuB,KAAK16B,CAAL,CAAOmjB,SAAP,CAAiB,KAAKnjB,CAAL,CAAOmjB,SAAP,CAAiB/qB,MAAjB,CAA0B,CAA3C,EAA8C8H,CAA9C,CAAkD0P,SAAzE,CAAqF,CAArF,CAAL,CACA6qB,EAAE,CAAG,KAAKz6B,CAAL,CAAO06B,cAAP,CAAsB,CAAC,KAAK16B,CAAL,CAAOmjB,SAAP,CAAiB,KAAKnjB,CAAL,CAAOmjB,SAAP,CAAiB/qB,MAAjB,CAA0B,CAA3C,EAA8C8H,CAA9C,CAAkD,IAAnD,EAA2D0P,SAAjF,CAA4F,CAA5F,CAAL,CACA,CAHM,IAGA,CACNmf,EAAE,CAAG,KAAK/uB,CAAL,CAAOgjB,EAAZ,CACAyX,EAAE,CAAG,KAAKz6B,CAAL,CAAO06B,cAAP,CAAsB,CAAC,KAAK16B,CAAL,CAAO2nB,QAAP,CAAgBvD,SAAhB,CAA4B,KAAKpkB,CAAL,CAAO6iB,UAAnC,CAAgD,IAAjD,EAAyDjT,SAA/E,CAA0F,KAAK5P,CAAL,CAAO6iB,UAAjG,CAAL,CACA,CACD,CAXD,QAWW,KAAKmX,EAAL,EAAW,KAAKA,EAAL,CAAQ7W,SAAnB,EAAgC,KAAK8W,EAAL,CAAQ9W,SAAxC,EAAqD,KAAK6W,EAAL,CAAQU,cAA7D,EAA+E,KAAKT,EAAL,CAAQS,cAA3F,CAA2G,CACjH3L,EAAE,CAAG,EAAL,CACA0L,EAAE,CAAG,EAAL,CACA,IAAIT,EAAE,CAAG,KAAKA,EAAd,CACA,IAAIC,EAAE,CAAG,KAAKA,EAAd,CACA,GAAID,EAAE,CAACrS,QAAH,CAAYvD,SAAZ,CAAwB4V,EAAE,CAACnX,UAA3B,EAAyCmX,EAAE,CAAC7W,SAAH,CAAa,CAAb,EAAgBjjB,CAA7D,CAAgE,CAC/D6uB,EAAE,CAAC,CAAD,CAAF,CAAQiL,EAAE,CAACU,cAAH,CAAkB,CAACV,EAAE,CAAC7W,SAAH,CAAa,CAAb,EAAgBjjB,CAAhB,CAAoB,IAArB,EAA6B0P,SAA/C,CAA0D,CAA1D,CAAR,CACAmf,EAAE,CAAC,CAAD,CAAF,CAAQkL,EAAE,CAACS,cAAH,CAAkB,CAACT,EAAE,CAAC9W,SAAH,CAAa,CAAb,EAAgBjjB,CAAhB,CAAoB,IAArB,EAA6B0P,SAA/C,CAA0D,CAA1D,CAAR,CACA6qB,EAAE,CAAC,CAAD,CAAF,CAAQT,EAAE,CAACU,cAAH,CAAmBV,EAAE,CAAC7W,SAAH,CAAa,CAAb,EAAgBjjB,CAAjB,CAAsB0P,SAAxC,CAAmD,CAAnD,CAAR,CACA6qB,EAAE,CAAC,CAAD,CAAF,CAAQR,EAAE,CAACS,cAAH,CAAmBT,EAAE,CAAC9W,SAAH,CAAa,CAAb,EAAgBjjB,CAAjB,CAAsB0P,SAAxC,CAAmD,CAAnD,CAAR,CACA,CALD,QAKWoqB,EAAE,CAACrS,QAAH,CAAYvD,SAAZ,CAAwB4V,EAAE,CAACnX,UAA3B,EAAyCmX,EAAE,CAAC7W,SAAH,CAAa6W,EAAE,CAAC7W,SAAH,CAAa/qB,MAAb,CAAsB,CAAnC,EAAsC8H,CAAnF,CAAsF,CAC5F6uB,EAAE,CAAC,CAAD,CAAF,CAAQiL,EAAE,CAACU,cAAH,CAAmBV,EAAE,CAAC7W,SAAH,CAAa6W,EAAE,CAAC7W,SAAH,CAAa/qB,MAAb,CAAsB,CAAnC,EAAsC8H,CAAtC,CAA0C0P,SAA7D,CAAyE,CAAzE,CAAR,CACAmf,EAAE,CAAC,CAAD,CAAF,CAAQkL,EAAE,CAACS,cAAH,CAAmBT,EAAE,CAAC9W,SAAH,CAAa8W,EAAE,CAAC9W,SAAH,CAAa/qB,MAAb,CAAsB,CAAnC,EAAsC8H,CAAtC,CAA0C0P,SAA7D,CAAyE,CAAzE,CAAR,CACA6qB,EAAE,CAAC,CAAD,CAAF,CAAQT,EAAE,CAACU,cAAH,CAAkB,CAACV,EAAE,CAAC7W,SAAH,CAAa6W,EAAE,CAAC7W,SAAH,CAAa/qB,MAAb,CAAsB,CAAnC,EAAsC8H,CAAtC,CAA0C,IAA3C,EAAmD0P,SAArE,CAAgF,CAAhF,CAAR,CACA6qB,EAAE,CAAC,CAAD,CAAF,CAAQR,EAAE,CAACS,cAAH,CAAkB,CAACT,EAAE,CAAC9W,SAAH,CAAa8W,EAAE,CAAC9W,SAAH,CAAa/qB,MAAb,CAAsB,CAAnC,EAAsC8H,CAAtC,CAA0C,IAA3C,EAAmD0P,SAArE,CAAgF,CAAhF,CAAR,CACA,CALM,IAKA,CACNmf,EAAE,CAAG,CAACiL,EAAE,CAAChX,EAAJ,CAAQiX,EAAE,CAACjX,EAAX,CAAL,CACAyX,EAAE,CAAC,CAAD,CAAF,CAAQT,EAAE,CAACU,cAAH,CAAkB,CAACV,EAAE,CAACrS,QAAH,CAAYvD,SAAZ,CAAwB4V,EAAE,CAACnX,UAA3B,CAAwC,IAAzC,EAAiDjT,SAAnE,CAA8EoqB,EAAE,CAACnX,UAAjF,CAAR,CACA4X,EAAE,CAAC,CAAD,CAAF,CAAQR,EAAE,CAACS,cAAH,CAAkB,CAACT,EAAE,CAACtS,QAAH,CAAYvD,SAAZ,CAAwB6V,EAAE,CAACpX,UAA3B,CAAwC,IAAzC,EAAiDjT,SAAnE,CAA8EqqB,EAAE,CAACpX,UAAjF,CAAR,CACA,CACD,CApBM,IAoBA,CACN4X,EAAE,CAAGf,aAAL,CACA3K,EAAE,CAAG0L,EAAL,CACA,CACD,KAAK96B,CAAL,CAAOgwB,MAAP,CAAc,CAAC1zB,IAAI,CAACyqB,KAAL,CAAWqI,EAAE,CAAC,CAAD,CAAF,CAAQ0L,EAAE,CAAC,CAAD,CAArB,CAA0B1L,EAAE,CAAC,CAAD,CAAF,CAAQ0L,EAAE,CAAC,CAAD,CAApC,CAAf,EACA,CACD,GAAI,KAAKx4B,IAAL,CAAUjC,CAAV,EAAe,KAAKiC,IAAL,CAAUjC,CAAV,CAAYN,CAA/B,CAAkC,CACjC,GAAI,KAAKuC,IAAL,CAAUjC,CAAV,CAAYunB,CAAhB,CAAmB,CAClB,KAAK5nB,CAAL,CAAOgxB,SAAP,CAAiB,KAAKqJ,EAAL,CAAQr6B,CAAzB,CAA4B,KAAKs6B,EAAL,CAAQt6B,CAApC,CAAuC,CAAC,KAAKu6B,EAAL,CAAQv6B,CAAhD,EACA,CAFD,IAEO,CACN,KAAKA,CAAL,CAAOgxB,SAAP,CAAiB,KAAKqJ,EAAL,CAAQr6B,CAAzB,CAA4B,KAAKs6B,EAAL,CAAQt6B,CAApC,CAAuC,CAAvC,EACA,CACD,CAND,IAMO,CACN,KAAKA,CAAL,CAAOgxB,SAAP,CAAiB,KAAK3wB,CAAL,CAAOL,CAAP,CAAS,CAAT,CAAjB,CAA8B,KAAKK,CAAL,CAAOL,CAAP,CAAS,CAAT,CAA9B,CAA2C,CAAC,KAAKK,CAAL,CAAOL,CAAP,CAAS,CAAT,CAA5C,EACA,CACD,CACD,KAAKuoB,OAAL,CAAe,KAAKtQ,IAAL,CAAUlG,UAAV,CAAqBwW,OAApC,CACA,CAED,SAASmS,kBAAT,EAA8B,CAC7B,GAAI,CAAC,KAAKj0B,CAAL,CAAO/C,CAAZ,CAAe,CACd,KAAKi3B,GAAL,CAAS3J,SAAT,CAAmB,CAAC,KAAKvqB,CAAL,CAAOzG,CAAP,CAAS,CAAT,CAApB,CAAiC,CAAC,KAAKyG,CAAL,CAAOzG,CAAP,CAAS,CAAT,CAAlC,CAA+C,KAAKyG,CAAL,CAAOzG,CAAP,CAAS,CAAT,CAA/C,EACA,KAAK46B,sBAAL,CAA8B,CAA9B,CACA,CAHD,IAGO,CACN,OACA,CACD,GAAI,CAAC,KAAK76B,CAAL,CAAOyoB,eAAP,CAAuB/vB,MAA5B,CAAoC,CACnC,KAAKkiC,GAAL,CAAShK,KAAT,CAAe,KAAK5wB,CAAL,CAAOC,CAAP,CAAS,CAAT,CAAf,CAA4B,KAAKD,CAAL,CAAOC,CAAP,CAAS,CAAT,CAA5B,CAAyC,KAAKD,CAAL,CAAOC,CAAP,CAAS,CAAT,CAAzC,EACA,KAAK46B,sBAAL,CAA8B,CAA9B,CACA,CAHD,IAGO,CACN,OACA,CACD,GAAI,KAAKl0B,EAAT,CAAa,CACZ,GAAI,CAAC,KAAKA,EAAL,CAAQ8hB,eAAR,CAAwB/vB,MAAzB,EAAmC,CAAC,KAAKkO,EAAL,CAAQ6hB,eAAR,CAAwB/vB,MAAhE,CAAwE,CACvE,KAAKkiC,GAAL,CAASjK,YAAT,CAAsB,CAAC,KAAKhqB,EAAL,CAAQ1G,CAA/B,CAAkC,KAAK2G,EAAL,CAAQ3G,CAA1C,EACA,KAAK46B,sBAAL,CAA8B,CAA9B,CACA,CAHD,IAGO,CACN,OACA,CACD,CACD,GAAI,KAAK36B,CAAT,CAAY,CACX,GAAI,CAAC,KAAKA,CAAL,CAAOuoB,eAAP,CAAuB/vB,MAA5B,CAAoC,CACnC,KAAKkiC,GAAL,CAAS3K,MAAT,CAAgB,CAAC,KAAK/vB,CAAL,CAAOD,CAAxB,EACA,KAAK46B,sBAAL,CAA8B,CAA9B,CACA,CACD,CALD,QAKW,CAAC,KAAKV,EAAL,CAAQ1R,eAAR,CAAwB/vB,MAAzB,EAAmC,CAAC,KAAK0hC,EAAL,CAAQ3R,eAAR,CAAwB/vB,MAA5D,EAAsE,CAAC,KAAK2hC,EAAL,CAAQ5R,eAAR,CAAwB/vB,MAA/F,EAAyG,CAAC,KAAKs1B,EAAL,CAAQvF,eAAR,CAAwB/vB,MAAtI,CAA8I,CACpJ,KAAKkiC,GAAL,CAASrK,OAAT,CAAiB,CAAC,KAAK4J,EAAL,CAAQl6B,CAA1B,EAA6BqwB,OAA7B,CAAqC,KAAK8J,EAAL,CAAQn6B,CAA7C,EAAgDowB,OAAhD,CAAwD,KAAKgK,EAAL,CAAQp6B,CAAhE,EAAmEswB,OAAnE,CAA2E,CAAC,KAAKvC,EAAL,CAAQ/tB,CAAR,CAAU,CAAV,CAA5E,EACEqwB,OADF,CACU,KAAKtC,EAAL,CAAQ/tB,CAAR,CAAU,CAAV,CADV,EAEEowB,OAFF,CAEU,KAAKrC,EAAL,CAAQ/tB,CAAR,CAAU,CAAV,CAFV,EAGA,KAAK46B,sBAAL,CAA8B,CAA9B,CACA,CACD,CAED,SAASI,UAAT,EAAsB;CAErB;CACA,CAED,SAASjS,kBAAT,CAA4B7vB,IAA5B,CAAkC,CACjC,KAAK+hC,mBAAL,CAAyB/hC,IAAzB,EACA,KAAK+e,IAAL,CAAU8Q,kBAAV,CAA6B7vB,IAA7B,EACA,KAAKuhC,QAAL,CAAgB,IAAhB,CACA,CAED,SAASS,iBAAT,CAA2BjjB,IAA3B,CAAiC3V,IAAjC,CAAuCqP,SAAvC,CAAkD,CACjD,KAAKsG,IAAL,CAAYA,IAAZ,CACA,KAAKsQ,OAAL,CAAe,CAAC,CAAhB,CACA,KAAKnF,QAAL,CAAgB,WAAhB,CACA,KAAK9gB,IAAL,CAAYA,IAAZ,CACA,KAAKtC,CAAL,CAAS,IAAIyvB,MAAJ,EAAT,CACA;CACA,KAAKkL,GAAL,CAAW,IAAIlL,MAAJ,EAAX,CACA,KAAKmL,sBAAL,CAA8B,CAA9B,CACA,KAAKhR,4BAAL,CAAkCjY,SAAS,EAAIsG,IAA/C,EACA,GAAI3V,IAAI,CAACjC,CAAL,EAAUiC,IAAI,CAACjC,CAAL,CAAON,CAArB,CAAwB,CACvB,KAAKs6B,EAAL,CAAUzX,eAAe,CAAC2G,OAAhB,CAAwBtR,IAAxB,CAA8B3V,IAAI,CAACjC,CAAL,CAAOyb,CAArC,CAAwC,CAAxC,CAA2C,CAA3C,CAA8C,IAA9C,CAAV,CACA,KAAKwe,EAAL,CAAU1X,eAAe,CAAC2G,OAAhB,CAAwBtR,IAAxB,CAA8B3V,IAAI,CAACjC,CAAL,CAAOgkB,CAArC,CAAwC,CAAxC,CAA2C,CAA3C,CAA8C,IAA9C,CAAV,CACA,GAAI/hB,IAAI,CAACjC,CAAL,CAAOunB,CAAX,CAAc,CACb,KAAK2S,EAAL,CAAU3X,eAAe,CAAC2G,OAAhB,CAAwBtR,IAAxB,CAA8B3V,IAAI,CAACjC,CAAL,CAAOunB,CAArC,CAAwC,CAAxC,CAA2C,CAA3C,CAA8C,IAA9C,CAAV,CACA,CACD,CAND,IAMO,CACN,KAAKvnB,CAAL,CAASuiB,eAAe,CAAC2G,OAAhB,CAAwBtR,IAAxB,CAA8B3V,IAAI,CAACjC,CAAL,EAAU,CAAEqD,CAAC,CAAE,CAAC,CAAD,CAAI,CAAJ,CAAO,CAAP,CAAL,CAAxC,CAA0D,CAA1D,CAA6D,CAA7D,CAAgE,IAAhE,CAAT,CACA,CACD,GAAIpB,IAAI,CAAC83B,EAAT,CAAa,CACZ,KAAKA,EAAL,CAAUxX,eAAe,CAAC2G,OAAhB,CAAwBtR,IAAxB,CAA8B3V,IAAI,CAAC83B,EAAnC,CAAuC,CAAvC,CAA0C58B,SAA1C,CAAqD,IAArD,CAAV,CACA,KAAK28B,EAAL,CAAUvX,eAAe,CAAC2G,OAAhB,CAAwBtR,IAAxB,CAA8B3V,IAAI,CAAC63B,EAAnC,CAAuC,CAAvC,CAA0C38B,SAA1C,CAAqD,IAArD,CAAV,CACA,KAAK08B,EAAL,CAAUtX,eAAe,CAAC2G,OAAhB,CAAwBtR,IAAxB,CAA8B3V,IAAI,CAAC43B,EAAnC,CAAuC,CAAvC,CAA0C18B,SAA1C,CAAqD,IAArD,CAAV,CACA,GAAI8E,IAAI,CAACyrB,EAAL,CAAQrqB,CAAR,CAAU,CAAV,EAAawgB,EAAjB,CAAqB,CACpB,IAAI3rB,CAAJ,CACA,IAAIC,GAAG,CAAG8J,IAAI,CAACyrB,EAAL,CAAQrqB,CAAR,CAAUjL,MAApB,CACA,IAAKF,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B+J,IAAI,CAACyrB,EAAL,CAAQrqB,CAAR,CAAUnL,CAAV,EAAa0rB,EAAb,CAAkB,IAAlB,CACA3hB,IAAI,CAACyrB,EAAL,CAAQrqB,CAAR,CAAUnL,CAAV,EAAa2rB,EAAb,CAAkB,IAAlB,CACA,CACD,CACD,KAAK6J,EAAL,CAAUnL,eAAe,CAAC2G,OAAhB,CAAwBtR,IAAxB,CAA8B3V,IAAI,CAACyrB,EAAnC,CAAuC,CAAvC,CAA0CvwB,SAA1C,CAAqD,IAArD,CAAV,CACA;CACA,KAAKuwB,EAAL,CAAQ7I,EAAR,CAAa,IAAb,CACA,CAfD,IAeO,CACN,KAAKjlB,CAAL,CAAS2iB,eAAe,CAAC2G,OAAhB,CAAwBtR,IAAxB,CAA8B3V,IAAI,CAACrC,CAAL,EAAU,CAAEyD,CAAC,CAAE,CAAL,CAAxC,CAAkD,CAAlD,CAAqDlG,SAArD,CAAgE,IAAhE,CAAT,CACA,CACD,GAAI8E,IAAI,CAACoE,EAAT,CAAa,CACZ,KAAKA,EAAL,CAAUkc,eAAe,CAAC2G,OAAhB,CAAwBtR,IAAxB,CAA8B3V,IAAI,CAACoE,EAAnC,CAAuC,CAAvC,CAA0ClJ,SAA1C,CAAqD,IAArD,CAAV,CACA,KAAKmJ,EAAL,CAAUic,eAAe,CAAC2G,OAAhB,CAAwBtR,IAAxB,CAA8B3V,IAAI,CAACqE,EAAnC,CAAuC,CAAvC,CAA0CnJ,SAA1C,CAAqD,IAArD,CAAV,CACA,CACD,KAAKiJ,CAAL,CAASmc,eAAe,CAAC2G,OAAhB,CAAwBtR,IAAxB,CAA8B3V,IAAI,CAACmE,CAAL,EAAU,CAAE/C,CAAC,CAAE,CAAC,CAAD,CAAI,CAAJ,CAAO,CAAP,CAAL,CAAxC,CAA0D,CAA1D,CAA6D,CAA7D,CAAgE,IAAhE,CAAT,CACA,KAAK3D,CAAL,CAAS6iB,eAAe,CAAC2G,OAAhB,CAAwBtR,IAAxB,CAA8B3V,IAAI,CAACvC,CAAL,EAAU,CAAE2D,CAAC,CAAE,CAAC,GAAD,CAAM,GAAN,CAAW,GAAX,CAAL,CAAxC,CAAgE,CAAhE,CAAmE,IAAnE,CAAyE,IAAzE,CAAT,CACA;CACA,GAAIpB,IAAI,CAACgD,CAAT,CAAY,CACX,KAAKA,CAAL,CAASsd,eAAe,CAAC2G,OAAhB,CAAwBtR,IAAxB,CAA8B3V,IAAI,CAACgD,CAAnC,CAAsC,CAAtC,CAAyC,IAAzC,CAA+C2S,IAA/C,CAAT,CACA,CAFD,IAEO,CACN,KAAK3S,CAAL,CAAS,CAAE+iB,IAAI,CAAE,KAAR,CAAeroB,CAAC,CAAE,CAAlB,CAAT,CACA,CACD,KAAKy6B,QAAL,CAAgB,IAAhB,CACA,GAAI,CAAC,KAAKhR,iBAAL,CAAuBhxB,MAA5B,CAAoC,CACnC,KAAKywB,QAAL,CAAc,IAAd,EACA,CACD,CAEDgS,iBAAiB,CAACviC,SAAlB,CAA8B,CAC7BqhC,aAAa,CAAEA,aADc,CAE7B9Q,QAAQ,CAAEuO,WAFmB,CAG7BiD,kBAAkB,CAAEA,kBAHS,CAI7BM,UAAU,CAAEA,UAJiB,CAA9B,CAOA5iC,eAAe,CAAC,CAACoxB,wBAAD,CAAD,CAA6B0R,iBAA7B,CAAf,CACAA,iBAAiB,CAACviC,SAAlB,CAA4BowB,kBAA5B,CAAiDA,kBAAjD,CACAmS,iBAAiB,CAACviC,SAAlB,CAA4BsiC,mBAA5B,CAAkDzR,wBAAwB,CAAC7wB,SAAzB,CAAmCowB,kBAArF,CAEA,SAASoS,oBAAT,CAA8BljB,IAA9B,CAAoC3V,IAApC,CAA0CqP,SAA1C,CAAqD,CACpD,WAAWupB,iBAAJ,CAAsBjjB,IAAtB,CAA4B3V,IAA5B,CAAkCqP,SAAlC,CAAP,CACA,CAED,OAAO,CACNwpB,oBAAoB,CAAEA,oBADhB,CAAP,CAGA,CA3OiC,EAAlC,CA6OA,SAASC,gBAAT,EAA4B,EAC5BhjC,eAAe,CAAC,CAACi/B,aAAD,CAAD,CAAkB+D,gBAAlB,CAAf,CAEAA,gBAAgB,CAACziC,SAAjB,CAA2B2+B,sBAA3B,CAAoD,SAAUrf,IAAV,CAAgB3V,IAAhB,CAAsB,CACzE,KAAK4mB,QAAL,CAAgB,KAAKuO,WAArB,CACA,KAAKzwB,CAAL,CAAS4b,eAAe,CAAC2G,OAAhB,CAAwBtR,IAAxB,CAA8B3V,IAAI,CAAC0E,CAAnC,CAAsC,CAAtC,CAAyC,IAAzC,CAA+C,IAA/C,CAAT,CACA,KAAK1B,CAAL,CAASsd,eAAe,CAAC2G,OAAhB,CAAwBtR,IAAxB,CAA8B3V,IAAI,CAACgD,CAAnC,CAAsC,CAAtC,CAAyC,IAAzC,CAA+C,IAA/C,CAAT,CACA,KAAK+1B,EAAL,CAAUvB,wBAAwB,CAACqB,oBAAzB,CAA8CljB,IAA9C,CAAoD3V,IAAI,CAAC+4B,EAAzD,CAA6D,IAA7D,CAAV,CACA,KAAKC,EAAL,CAAU1Y,eAAe,CAAC2G,OAAhB,CAAwBtR,IAAxB,CAA8B3V,IAAI,CAAC+4B,EAAL,CAAQC,EAAtC,CAA0C,CAA1C,CAA6C,IAA7C,CAAmD,IAAnD,CAAV,CACA,KAAKC,EAAL,CAAU3Y,eAAe,CAAC2G,OAAhB,CAAwBtR,IAAxB,CAA8B3V,IAAI,CAAC+4B,EAAL,CAAQE,EAAtC,CAA0C,CAA1C,CAA6C,IAA7C,CAAmD,IAAnD,CAAV,CACA,KAAKj5B,IAAL,CAAYA,IAAZ,CACA,GAAI,CAAC,KAAKmnB,iBAAL,CAAuBhxB,MAA5B,CAAoC,CACnC,KAAKywB,QAAL,CAAc,IAAd,EACA,CACD,KAAKQ,WAAL,CAAmB,CAAC,CAAC,KAAKD,iBAAL,CAAuBhxB,MAA5C,CACA,KAAK+iC,OAAL,CAAe,IAAI/L,MAAJ,EAAf,CACA,KAAKgM,OAAL,CAAe,IAAIhM,MAAJ,EAAf,CACA,KAAKiM,OAAL,CAAe,IAAIjM,MAAJ,EAAf,CACA,KAAKkM,OAAL,CAAe,IAAIlM,MAAJ,EAAf,CACA,KAAKmM,MAAL,CAAc,IAAInM,MAAJ,EAAd,CACA,CAjBD,CAmBA2L,gBAAgB,CAACziC,SAAjB,CAA2BkjC,eAA3B,CAA6C,SAAUL,OAAV,CAAmBC,OAAnB,CAA4BC,OAA5B,CAAqCvK,SAArC,CAAgD7R,IAAhD,CAAsDwc,GAAtD,CAA2D,CACvG,IAAIhb,GAAG,CAAGgb,GAAG,CAAG,CAAC,CAAJ,CAAQ,CAArB,CACA,IAAIC,MAAM,CAAG5K,SAAS,CAACpxB,CAAV,CAAYC,CAAZ,CAAc,CAAd,EAAmB,CAAC,EAAImxB,SAAS,CAACpxB,CAAV,CAAYC,CAAZ,CAAc,CAAd,CAAL,GAA0B,EAAIsf,IAA9B,CAAhC,CACA,IAAI0c,MAAM,CAAG7K,SAAS,CAACpxB,CAAV,CAAYC,CAAZ,CAAc,CAAd,EAAmB,CAAC,EAAImxB,SAAS,CAACpxB,CAAV,CAAYC,CAAZ,CAAc,CAAd,CAAL,GAA0B,EAAIsf,IAA9B,CAAhC,CACAkc,OAAO,CAACxK,SAAR,CAAkBG,SAAS,CAAC9wB,CAAV,CAAYL,CAAZ,CAAc,CAAd,EAAmB8gB,GAAnB,CAAyBxB,IAA3C,CAAiD6R,SAAS,CAAC9wB,CAAV,CAAYL,CAAZ,CAAc,CAAd,EAAmB8gB,GAAnB,CAAyBxB,IAA1E,CAAgF6R,SAAS,CAAC9wB,CAAV,CAAYL,CAAZ,CAAc,CAAd,CAAhF,EACAy7B,OAAO,CAACzK,SAAR,CAAkB,CAACG,SAAS,CAAC1qB,CAAV,CAAYzG,CAAZ,CAAc,CAAd,CAAnB,CAAqC,CAACmxB,SAAS,CAAC1qB,CAAV,CAAYzG,CAAZ,CAAc,CAAd,CAAtC,CAAwDmxB,SAAS,CAAC1qB,CAAV,CAAYzG,CAAZ,CAAc,CAAd,CAAxD,EACAy7B,OAAO,CAACzL,MAAR,CAAe,CAACmB,SAAS,CAAClxB,CAAV,CAAYD,CAAb,CAAiB8gB,GAAjB,CAAuBxB,IAAtC,EACAmc,OAAO,CAACzK,SAAR,CAAkBG,SAAS,CAAC1qB,CAAV,CAAYzG,CAAZ,CAAc,CAAd,CAAlB,CAAoCmxB,SAAS,CAAC1qB,CAAV,CAAYzG,CAAZ,CAAc,CAAd,CAApC,CAAsDmxB,SAAS,CAAC1qB,CAAV,CAAYzG,CAAZ,CAAc,CAAd,CAAtD,EACA07B,OAAO,CAAC1K,SAAR,CAAkB,CAACG,SAAS,CAAC1qB,CAAV,CAAYzG,CAAZ,CAAc,CAAd,CAAnB,CAAqC,CAACmxB,SAAS,CAAC1qB,CAAV,CAAYzG,CAAZ,CAAc,CAAd,CAAtC,CAAwDmxB,SAAS,CAAC1qB,CAAV,CAAYzG,CAAZ,CAAc,CAAd,CAAxD,EACA07B,OAAO,CAAC/K,KAAR,CAAcmL,GAAG,CAAG,EAAIC,MAAP,CAAgBA,MAAjC,CAAyCD,GAAG,CAAG,EAAIE,MAAP,CAAgBA,MAA5D,EACAN,OAAO,CAAC1K,SAAR,CAAkBG,SAAS,CAAC1qB,CAAV,CAAYzG,CAAZ,CAAc,CAAd,CAAlB,CAAoCmxB,SAAS,CAAC1qB,CAAV,CAAYzG,CAAZ,CAAc,CAAd,CAApC,CAAsDmxB,SAAS,CAAC1qB,CAAV,CAAYzG,CAAZ,CAAc,CAAd,CAAtD,EACA,CAXD,CAaAo7B,gBAAgB,CAACziC,SAAjB,CAA2B0d,IAA3B,CAAkC,SAAU4B,IAAV,CAAgB3c,GAAhB,CAAqB6uB,GAArB,CAA0B8R,SAA1B,CAAqC,CACtE,KAAKhkB,IAAL,CAAYA,IAAZ,CACA,KAAK3c,GAAL,CAAWA,GAAX,CACA,KAAK6uB,GAAL,CAAWA,GAAX,CACA,KAAK8R,SAAL,CAAiBA,SAAjB,CACA,KAAKC,cAAL,CAAsB,CAAtB,CACA,KAAKC,SAAL,CAAiB,EAAjB,CACA,KAAKC,OAAL,CAAe,EAAf,CACA,KAAK7T,OAAL,CAAe,CAAC,CAAhB,CACA,KAAKqB,4BAAL,CAAkC3R,IAAlC,EACA,KAAKqf,sBAAL,CAA4Brf,IAA5B,CAAkC3c,GAAG,CAAC6uB,GAAD,CAArC,EACA,MAAOA,GAAG,CAAG,CAAb,CAAgB,CACfA,GAAG,EAAI,CAAP,CACA;CACA,KAAKgS,SAAL,CAAeE,OAAf,CAAuB/gC,GAAG,CAAC6uB,GAAD,CAA1B,EACA,CACD,GAAI,KAAKV,iBAAL,CAAuBhxB,MAA3B,CAAmC,CAClC,KAAKiL,CAAL,CAAS,IAAT,CACA,CAFD,IAEO,CACN,KAAKwlB,QAAL,CAAc,IAAd,EACA,CACD,CArBD,CAuBAkS,gBAAgB,CAACziC,SAAjB,CAA2B2jC,aAA3B,CAA2C,SAAUC,QAAV,CAAoB,CAC9D,IAAIhkC,CAAJ,CACA,IAAIC,GAAG,CAAG+jC,QAAQ,CAAC9jC,MAAnB,CACA,IAAKF,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5BgkC,QAAQ,CAAChkC,CAAD,CAAR,CAAYikC,UAAZ,CAAyB,KAAzB,CACA,GAAID,QAAQ,CAAChkC,CAAD,CAAR,CAAY6L,EAAZ,GAAmB,IAAvB,CAA6B,CAC5B,KAAKk4B,aAAL,CAAmBC,QAAQ,CAAChkC,CAAD,CAAR,CAAY8M,EAA/B,EACA,CACD,CACD,CATD,CAWA+1B,gBAAgB,CAACziC,SAAjB,CAA2B8jC,aAA3B,CAA2C,SAAUF,QAAV,CAAoB,CAC9D,IAAIG,WAAW,CAAGz3B,IAAI,CAACC,KAAL,CAAWD,IAAI,CAACE,SAAL,CAAeo3B,QAAf,CAAX,CAAlB,CACA,KAAKD,aAAL,CAAmBI,WAAnB,EACA,OAAOA,WAAP,CACA,CAJD,CAMAtB,gBAAgB,CAACziC,SAAjB,CAA2BgkC,iBAA3B,CAA+C,SAAUJ,QAAV,CAAoBK,UAApB,CAAgC,CAC9E,IAAIrkC,CAAJ,CACA,IAAIC,GAAG,CAAG+jC,QAAQ,CAAC9jC,MAAnB,CACA,IAAKF,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5BgkC,QAAQ,CAAChkC,CAAD,CAAR,CAAYskC,OAAZ,CAAsBD,UAAtB,CACA,GAAIL,QAAQ,CAAChkC,CAAD,CAAR,CAAY6L,EAAZ,GAAmB,IAAvB,CAA6B,CAC5B,KAAKu4B,iBAAL,CAAuBJ,QAAQ,CAAChkC,CAAD,CAAR,CAAY8M,EAAnC,CAAuCu3B,UAAvC,EACA,CACD,CACD,CATD,CAWAxB,gBAAgB,CAACziC,SAAjB,CAA2B2/B,aAA3B,CAA2C,SAAU5P,aAAV,CAAyB,CACnE,IAAIoU,KAAJ,CACA,IAAIC,cAAJ,CACA,IAAIxkC,CAAJ,CACA,IAAIuoB,GAAJ,CACA,IAAIkc,IAAJ,CACA,IAAIC,WAAW,CAAG,KAAlB,CACA,GAAI,KAAK5U,IAAL,EAAaK,aAAjB,CAAgC,CAC/B,IAAIwU,MAAM,CAAG5gC,IAAI,CAAC6gC,IAAL,CAAU,KAAKn2B,CAAL,CAAOhH,CAAjB,CAAb,CACA,GAAI,KAAKo8B,OAAL,CAAa3jC,MAAb,CAAsBykC,MAA1B,CAAkC,CACjC,MAAO,KAAKd,OAAL,CAAa3jC,MAAb,CAAsBykC,MAA7B,CAAqC,CACpC,IAAIE,KAAK,CAAG,CACX/3B,EAAE,CAAE,KAAKo3B,aAAL,CAAmB,KAAKN,SAAxB,CADO,CAEX/3B,EAAE,CAAE,IAFO,CAAZ,CAIAg5B,KAAK,CAAC/3B,EAAN,CAASvL,IAAT,CAAc,CACb2M,CAAC,CAAE,CAAEA,CAAC,CAAE,CAAL,CAAQ42B,EAAE,CAAE,CAAZ,CAAe35B,CAAC,CAAE,CAAC,CAAD,CAAI,CAAJ,CAAlB,CADU,CACkB2L,EAAE,CAAE,WADtB,CACmC/J,CAAC,CAAE,CAAEmB,CAAC,CAAE,CAAL,CAAQ42B,EAAE,CAAE,CAAZ,CAAe35B,CAAC,CAAE,GAAlB,CADtC,CAC+DrD,CAAC,CAAE,CAAEoG,CAAC,CAAE,CAAL,CAAQ42B,EAAE,CAAE,CAAZ,CAAe35B,CAAC,CAAE,CAAC,CAAD,CAAI,CAAJ,CAAlB,CADlE,CAC8FzD,CAAC,CAAE,CAAEwG,CAAC,CAAE,CAAL,CAAQ42B,EAAE,CAAE,CAAZ,CAAe35B,CAAC,CAAE,CAAC,CAAE3D,CAAC,CAAE,CAAL,CAAQmD,CAAC,CAAE,CAAX,CAAc3C,CAAC,CAAE,CAAjB,CAAD,CAAuB,CAAER,CAAC,CAAE,CAAL,CAAQmD,CAAC,CAAE,CAAX,CAAc3C,CAAC,CAAE,CAAjB,CAAvB,CAAlB,CADjG,CACmKR,CAAC,CAAE,CAAE0G,CAAC,CAAE,CAAL,CAAQ42B,EAAE,CAAE,CAAZ,CAAe35B,CAAC,CAAE,CAAC,GAAD,CAAM,GAAN,CAAlB,CADtK,CACsMiD,EAAE,CAAE,CAAEF,CAAC,CAAE,CAAL,CAAQ42B,EAAE,CAAE,CAAZ,CAAe35B,CAAC,CAAE,CAAlB,CAD1M,CACiOgD,EAAE,CAAE,CAAED,CAAC,CAAE,CAAL,CAAQ42B,EAAE,CAAE,CAAZ,CAAe35B,CAAC,CAAE,CAAlB,CADrO,CAC4PU,EAAE,CAAE,IADhQ,CAAd,EAIA,KAAK9I,GAAL,CAASsS,MAAT,CAAgB,CAAhB,CAAmB,CAAnB,CAAsBwvB,KAAtB,EACA,KAAKhB,OAAL,CAAaxuB,MAAb,CAAoB,CAApB,CAAuB,CAAvB,CAA0BwvB,KAA1B,EACA,KAAKlB,cAAL,EAAuB,CAAvB,CACA,CACD,KAAKjkB,IAAL,CAAUqlB,YAAV,GACAL,WAAW,CAAG,IAAd,CACA,CACDD,IAAI,CAAG,CAAP,CACA,IAAIJ,UAAJ,CACA,IAAKrkC,CAAC,CAAG,CAAT,CAAYA,CAAC,EAAI,KAAK6jC,OAAL,CAAa3jC,MAAb,CAAsB,CAAvC,CAA0CF,CAAC,EAAI,CAA/C,CAAkD,CACjDqkC,UAAU,CAAGI,IAAI,CAAGE,MAApB,CACA,KAAKd,OAAL,CAAa7jC,CAAb,EAAgBskC,OAAhB,CAA0BD,UAA1B,CACA,KAAKD,iBAAL,CAAuB,KAAKP,OAAL,CAAa7jC,CAAb,EAAgB8M,EAAvC,CAA2Cu3B,UAA3C,EACA,GAAI,CAACA,UAAL,CAAiB,CAChB,IAAIW,KAAK,CAAG,KAAKtB,SAAL,CAAe1jC,CAAf,EAAkB8M,EAA9B,CACA,IAAIm4B,aAAa,CAAGD,KAAK,CAACA,KAAK,CAAC9kC,MAAN,CAAe,CAAhB,CAAzB,CACA,GAAI+kC,aAAa,CAACrM,SAAd,CAAwB7qB,EAAxB,CAA2BtG,CAA3B,GAAiC,CAArC,CAAwC,CACvCw9B,aAAa,CAACrM,SAAd,CAAwB7qB,EAAxB,CAA2B+hB,IAA3B,CAAkC,IAAlC,CACAmV,aAAa,CAACrM,SAAd,CAAwB7qB,EAAxB,CAA2BtG,CAA3B,CAA+B,CAA/B,CACA,CAHD,IAGO,CACNw9B,aAAa,CAACrM,SAAd,CAAwB7qB,EAAxB,CAA2B+hB,IAA3B,CAAkC,KAAlC,CACA,CACD,CACD2U,IAAI,EAAI,CAAR,CACA,CAED,KAAKd,cAAL,CAAsBgB,MAAtB,CACA;CAEA,IAAIt8B,MAAM,CAAG,KAAK0E,CAAL,CAAOtF,CAApB,CACA,IAAIy9B,YAAY,CAAG78B,MAAM,CAAG,CAA5B,CACA,IAAI88B,WAAW,CAAG98B,MAAM,CAAG,CAAT,CAAatE,IAAI,CAACK,KAAL,CAAWiE,MAAX,CAAb,CAAkCtE,IAAI,CAAC6gC,IAAL,CAAUv8B,MAAV,CAApD,CACA,IAAI+8B,MAAM,CAAG,KAAKnC,OAAL,CAAazL,KAA1B,CACA,IAAI6N,MAAM,CAAG,KAAKnC,OAAL,CAAa1L,KAA1B,CACA,IAAI8N,MAAM,CAAG,KAAKnC,OAAL,CAAa3L,KAA1B,CACA,KAAKyL,OAAL,CAAa5O,KAAb,GACA,KAAK6O,OAAL,CAAa7O,KAAb,GACA,KAAK8O,OAAL,CAAa9O,KAAb,GACA,KAAK+O,OAAL,CAAa/O,KAAb,GACA,KAAKgP,MAAL,CAAYhP,KAAZ,GACA,IAAIkR,SAAS,CAAG,CAAhB,CAEA,GAAIl9B,MAAM,CAAG,CAAb,CAAgB,CACf,MAAOk9B,SAAS,CAAGJ,WAAnB,CAAgC,CAC/B,KAAK7B,eAAL,CAAqB,KAAKL,OAA1B,CAAmC,KAAKC,OAAxC,CAAiD,KAAKC,OAAtD,CAA+D,KAAKL,EAApE,CAAwE,CAAxE,CAA2E,KAA3E,EACAyC,SAAS,EAAI,CAAb,CACA,CACD,GAAIL,YAAJ,CAAkB,CACjB,KAAK5B,eAAL,CAAqB,KAAKL,OAA1B,CAAmC,KAAKC,OAAxC,CAAiD,KAAKC,OAAtD,CAA+D,KAAKL,EAApE,CAAwEoC,YAAxE,CAAsF,KAAtF,EACAK,SAAS,EAAIL,YAAb,CACA,CACD,CATD,QASW78B,MAAM,CAAG,CAAb,CAAgB,CACtB,MAAOk9B,SAAS,CAAGJ,WAAnB,CAAgC,CAC/B,KAAK7B,eAAL,CAAqB,KAAKL,OAA1B,CAAmC,KAAKC,OAAxC,CAAiD,KAAKC,OAAtD,CAA+D,KAAKL,EAApE,CAAwE,CAAxE,CAA2E,IAA3E,EACAyC,SAAS,EAAI,CAAb,CACA,CACD,GAAIL,YAAJ,CAAkB,CACjB,KAAK5B,eAAL,CAAqB,KAAKL,OAA1B,CAAmC,KAAKC,OAAxC,CAAiD,KAAKC,OAAtD,CAA+D,KAAKL,EAApE,CAAwE,CAACoC,YAAzE,CAAuF,IAAvF,EACAK,SAAS,EAAIL,YAAb,CACA,CACD,CACDllC,CAAC,CAAG,KAAK+J,IAAL,CAAUyuB,CAAV,GAAgB,CAAhB,CAAoB,CAApB,CAAwB,KAAKmL,cAAL,CAAsB,CAAlD,CACApb,GAAG,CAAG,KAAKxe,IAAL,CAAUyuB,CAAV,GAAgB,CAAhB,CAAoB,CAApB,CAAwB,CAAC,CAA/B,CACAiM,IAAI,CAAG,KAAKd,cAAZ,CACA,IAAI14B,CAAJ,CACA,IAAIC,IAAJ,CACA,MAAOu5B,IAAP,CAAa,CACZF,KAAK,CAAG,KAAKb,SAAL,CAAe1jC,CAAf,EAAkB8M,EAA1B,CACA03B,cAAc,CAAGD,KAAK,CAACA,KAAK,CAACrkC,MAAN,CAAe,CAAhB,CAAL,CAAwB04B,SAAxB,CAAkC4M,MAAlC,CAAyC/9B,CAAzC,CAA2C+vB,KAA5D,CACAtsB,IAAI,CAAGs5B,cAAc,CAACtkC,MAAtB,CACAqkC,KAAK,CAACA,KAAK,CAACrkC,MAAN,CAAe,CAAhB,CAAL,CAAwB04B,SAAxB,CAAkC4M,MAAlC,CAAyC1V,IAAzC,CAAgD,IAAhD,CACAyU,KAAK,CAACA,KAAK,CAACrkC,MAAN,CAAe,CAAhB,CAAL,CAAwB04B,SAAxB,CAAkC7qB,EAAlC,CAAqC+hB,IAArC,CAA4C,IAA5C,CACAyU,KAAK,CAACA,KAAK,CAACrkC,MAAN,CAAe,CAAhB,CAAL,CAAwB04B,SAAxB,CAAkC7qB,EAAlC,CAAqCtG,CAArC,CAAyC,KAAKk8B,cAAL,GAAwB,CAAxB,CACtC,KAAKZ,EAAL,CAAQt7B,CAD8B,CAEtC,KAAKs7B,EAAL,CAAQt7B,CAAR,CAAY,CAAC,KAAKu7B,EAAL,CAAQv7B,CAAR,CAAY,KAAKs7B,EAAL,CAAQt7B,CAArB,GAA2BzH,CAAC,EAAI,KAAK2jC,cAAL,CAAsB,CAA1B,CAA5B,CAFf,CAIA,GAAI4B,SAAS,GAAK,CAAlB,CAAqB,CACpB,GAAKvlC,CAAC,GAAK,CAAN,EAAWuoB,GAAG,GAAK,CAApB,EAA2BvoB,CAAC,GAAK,KAAK2jC,cAAL,CAAsB,CAA5B,EAAiCpb,GAAG,GAAK,CAAC,CAAzE,CAA6E,CAC5E,KAAK+a,eAAL,CAAqB,KAAKL,OAA1B,CAAmC,KAAKC,OAAxC,CAAiD,KAAKC,OAAtD,CAA+D,KAAKL,EAApE,CAAwE,CAAxE,CAA2E,KAA3E,EACA,CACD,KAAKO,MAAL,CAAYzK,SAAZ,CAAsByM,MAAM,CAAC,CAAD,CAA5B,CAAiCA,MAAM,CAAC,CAAD,CAAvC,CAA4CA,MAAM,CAAC,CAAD,CAAlD,CAAuDA,MAAM,CAAC,CAAD,CAA7D,CAAkEA,MAAM,CAAC,CAAD,CAAxE,CAA6EA,MAAM,CAAC,CAAD,CAAnF,CAAwFA,MAAM,CAAC,CAAD,CAA9F,CAAmGA,MAAM,CAAC,CAAD,CAAzG,CAA8GA,MAAM,CAAC,CAAD,CAApH,CAAyHA,MAAM,CAAC,CAAD,CAA/H,CAAoIA,MAAM,CAAC,EAAD,CAA1I,CAAgJA,MAAM,CAAC,EAAD,CAAtJ,CAA4JA,MAAM,CAAC,EAAD,CAAlK,CAAwKA,MAAM,CAAC,EAAD,CAA9K,CAAoLA,MAAM,CAAC,EAAD,CAA1L,CAAgMA,MAAM,CAAC,EAAD,CAAtM,EACA,KAAKhC,MAAL,CAAYzK,SAAZ,CAAsB0M,MAAM,CAAC,CAAD,CAA5B,CAAiCA,MAAM,CAAC,CAAD,CAAvC,CAA4CA,MAAM,CAAC,CAAD,CAAlD,CAAuDA,MAAM,CAAC,CAAD,CAA7D,CAAkEA,MAAM,CAAC,CAAD,CAAxE,CAA6EA,MAAM,CAAC,CAAD,CAAnF,CAAwFA,MAAM,CAAC,CAAD,CAA9F,CAAmGA,MAAM,CAAC,CAAD,CAAzG,CAA8GA,MAAM,CAAC,CAAD,CAApH,CAAyHA,MAAM,CAAC,CAAD,CAA/H,CAAoIA,MAAM,CAAC,EAAD,CAA1I,CAAgJA,MAAM,CAAC,EAAD,CAAtJ,CAA4JA,MAAM,CAAC,EAAD,CAAlK,CAAwKA,MAAM,CAAC,EAAD,CAA9K,CAAoLA,MAAM,CAAC,EAAD,CAA1L,CAAgMA,MAAM,CAAC,EAAD,CAAtM,EACA,KAAKjC,MAAL,CAAYzK,SAAZ,CAAsBwM,MAAM,CAAC,CAAD,CAA5B,CAAiCA,MAAM,CAAC,CAAD,CAAvC,CAA4CA,MAAM,CAAC,CAAD,CAAlD,CAAuDA,MAAM,CAAC,CAAD,CAA7D,CAAkEA,MAAM,CAAC,CAAD,CAAxE,CAA6EA,MAAM,CAAC,CAAD,CAAnF,CAAwFA,MAAM,CAAC,CAAD,CAA9F,CAAmGA,MAAM,CAAC,CAAD,CAAzG,CAA8GA,MAAM,CAAC,CAAD,CAApH,CAAyHA,MAAM,CAAC,CAAD,CAA/H,CAAoIA,MAAM,CAAC,EAAD,CAA1I,CAAgJA,MAAM,CAAC,EAAD,CAAtJ,CAA4JA,MAAM,CAAC,EAAD,CAAlK,CAAwKA,MAAM,CAAC,EAAD,CAA9K,CAAoLA,MAAM,CAAC,EAAD,CAA1L,CAAgMA,MAAM,CAAC,EAAD,CAAtM,EAEA,IAAKn6B,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,IAAhB,CAAsBD,CAAC,EAAI,CAA3B,CAA8B,CAC7Bu5B,cAAc,CAACv5B,CAAD,CAAd,CAAoB,KAAKo4B,MAAL,CAAY7L,KAAZ,CAAkBvsB,CAAlB,CAApB,CACA,CACD,KAAKo4B,MAAL,CAAYhP,KAAZ,GACA,CAZD,IAYO,CACN,KAAKgP,MAAL,CAAYhP,KAAZ,GACA,IAAKppB,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,IAAhB,CAAsBD,CAAC,EAAI,CAA3B,CAA8B,CAC7Bu5B,cAAc,CAACv5B,CAAD,CAAd,CAAoB,KAAKo4B,MAAL,CAAY7L,KAAZ,CAAkBvsB,CAAlB,CAApB,CACA,CACD,CACDs6B,SAAS,EAAI,CAAb,CACAd,IAAI,EAAI,CAAR,CACAzkC,CAAC,EAAIuoB,GAAL,CACA,CACD,CA9GD,IA8GO,CACNkc,IAAI,CAAG,KAAKd,cAAZ,CACA3jC,CAAC,CAAG,CAAJ,CACAuoB,GAAG,CAAG,CAAN,CACA,MAAOkc,IAAP,CAAa,CACZF,KAAK,CAAG,KAAKb,SAAL,CAAe1jC,CAAf,EAAkB8M,EAA1B,CACA03B,cAAc,CAAGD,KAAK,CAACA,KAAK,CAACrkC,MAAN,CAAe,CAAhB,CAAL,CAAwB04B,SAAxB,CAAkC4M,MAAlC,CAAyC/9B,CAAzC,CAA2C+vB,KAA5D,CACA+M,KAAK,CAACA,KAAK,CAACrkC,MAAN,CAAe,CAAhB,CAAL,CAAwB04B,SAAxB,CAAkC4M,MAAlC,CAAyC1V,IAAzC,CAAgD,KAAhD,CACAyU,KAAK,CAACA,KAAK,CAACrkC,MAAN,CAAe,CAAhB,CAAL,CAAwB04B,SAAxB,CAAkC7qB,EAAlC,CAAqC+hB,IAArC,CAA4C,KAA5C,CACA2U,IAAI,EAAI,CAAR,CACAzkC,CAAC,EAAIuoB,GAAL,CACA,CACD,CACD,OAAOmc,WAAP,CACA,CAnID,CAqIA7B,gBAAgB,CAACziC,SAAjB,CAA2B6yB,QAA3B,CAAsC,UAAY,EAAlD,CAEA,SAASwS,oBAAT,EAAgC,EAChC5lC,eAAe,CAAC,CAACi/B,aAAD,CAAD,CAAkB2G,oBAAlB,CAAf,CACAA,oBAAoB,CAACrlC,SAArB,CAA+B2+B,sBAA/B,CAAwD,SAAUrf,IAAV,CAAgB3V,IAAhB,CAAsB,CAC7E,KAAK4mB,QAAL,CAAgB,KAAKuO,WAArB,CACA,KAAKwG,EAAL,CAAUrb,eAAe,CAAC2G,OAAhB,CAAwBtR,IAAxB,CAA8B3V,IAAI,CAACrC,CAAnC,CAAsC,CAAtC,CAAyC,IAAzC,CAA+C,IAA/C,CAAV,CACA,KAAKypB,WAAL,CAAmB,CAAC,CAAC,KAAKuU,EAAL,CAAQzV,eAAR,CAAwB/vB,MAA7C,CACA,CAJD,CAMAulC,oBAAoB,CAACrlC,SAArB,CAA+B+gC,WAA/B,CAA6C,SAAUr3B,IAAV,CAAgB2R,KAAhB,CAAuB,CACnE,IAAI6lB,UAAU,CAAG5O,SAAS,CAAC7N,UAAV,EAAjB,CACAyc,UAAU,CAAC7yB,CAAX,CAAe3E,IAAI,CAAC2E,CAApB,CACA,IAAIzO,CAAJ,CACA,IAAIC,GAAG,CAAG6J,IAAI,CAAC4a,OAAf,CACA,IAAIihB,QAAJ,CACA,IAAIC,QAAJ,CACA,IAAIC,QAAJ,CACA,IAAIC,OAAJ,CACA,IAAIC,QAAJ,CACA,IAAIC,UAAJ,CACA,IAAInnB,KAAK,CAAG,CAAZ,CACA,IAAIiT,EAAJ,CACA,IAAIC,EAAJ,CACA,IAAIC,EAAJ,CACA,IAAIC,EAAJ,CACA,IAAIC,EAAJ,CACA,IAAIC,EAAJ,CACA,IAAKnyB,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B2lC,QAAQ,CAAG77B,IAAI,CAACrC,CAAL,CAAOzH,CAAP,CAAX,CACA6lC,QAAQ,CAAG/7B,IAAI,CAACiD,CAAL,CAAO/M,CAAP,CAAX,CACA4lC,QAAQ,CAAG97B,IAAI,CAAC9J,CAAL,CAAOA,CAAP,CAAX,CACA,GAAI2lC,QAAQ,CAAC,CAAD,CAAR,GAAgBE,QAAQ,CAAC,CAAD,CAAxB,EAA+BF,QAAQ,CAAC,CAAD,CAAR,GAAgBE,QAAQ,CAAC,CAAD,CAAvD,EAA8DF,QAAQ,CAAC,CAAD,CAAR,GAAgBC,QAAQ,CAAC,CAAD,CAAtF,EAA6FD,QAAQ,CAAC,CAAD,CAAR,GAAgBC,QAAQ,CAAC,CAAD,CAAzH,CAA8H,CAC7H,GAAI,CAAC5lC,CAAC,GAAK,CAAN,EAAWA,CAAC,GAAKC,GAAG,CAAG,CAAxB,GAA8B,CAAC6J,IAAI,CAAC2E,CAAxC,CAA2C,CAC1C6yB,UAAU,CAACzP,WAAX,CAAuB8T,QAAQ,CAAC,CAAD,CAA/B,CAAoCA,QAAQ,CAAC,CAAD,CAA5C,CAAiDE,QAAQ,CAAC,CAAD,CAAzD,CAA8DA,QAAQ,CAAC,CAAD,CAAtE,CAA2ED,QAAQ,CAAC,CAAD,CAAnF,CAAwFA,QAAQ,CAAC,CAAD,CAAhG,CAAqG/mB,KAArG,EACA;CACJ;CACA,kDACIA,KAAK,EAAI,CAAT,CACA,CAND,IAMO,CACN,GAAI7e,CAAC,GAAK,CAAV,CAAa,CACZ8lC,OAAO,CAAGh8B,IAAI,CAACrC,CAAL,CAAOxH,GAAG,CAAG,CAAb,CAAV,CACA,CAFD,IAEO,CACN6lC,OAAO,CAAGh8B,IAAI,CAACrC,CAAL,CAAOzH,CAAC,CAAG,CAAX,CAAV,CACA,CACD+lC,QAAQ,CAAGhiC,IAAI,CAACG,IAAL,CAAUH,IAAI,CAACC,GAAL,CAAS2hC,QAAQ,CAAC,CAAD,CAAR,CAAcG,OAAO,CAAC,CAAD,CAA9B,CAAmC,CAAnC,EAAwC/hC,IAAI,CAACC,GAAL,CAAS2hC,QAAQ,CAAC,CAAD,CAAR,CAAcG,OAAO,CAAC,CAAD,CAA9B,CAAmC,CAAnC,CAAlD,CAAX,CACAE,UAAU,CAAGD,QAAQ,CAAGhiC,IAAI,CAACS,GAAL,CAASuhC,QAAQ,CAAG,CAApB,CAAuBtqB,KAAvB,EAAgCsqB,QAAnC,CAA8C,CAAnE,CACA7T,EAAE,CAAGyT,QAAQ,CAAC,CAAD,CAAR,CAAc,CAACG,OAAO,CAAC,CAAD,CAAP,CAAaH,QAAQ,CAAC,CAAD,CAAtB,EAA6BK,UAAhD,CACAlU,EAAE,CAAGI,EAAL,CACAC,EAAE,CAAGwT,QAAQ,CAAC,CAAD,CAAR,CAAc,CAACA,QAAQ,CAAC,CAAD,CAAR,CAAcG,OAAO,CAAC,CAAD,CAAtB,EAA6BE,UAAhD,CACAjU,EAAE,CAAGI,EAAL,CACAH,EAAE,CAAGF,EAAE,CAAG,CAACA,EAAE,CAAG6T,QAAQ,CAAC,CAAD,CAAd,EAAqBxgC,WAA/B,CACA8sB,EAAE,CAAGF,EAAE,CAAG,CAACA,EAAE,CAAG4T,QAAQ,CAAC,CAAD,CAAd,EAAqBxgC,WAA/B,CACAm8B,UAAU,CAACzP,WAAX,CAAuBC,EAAvB,CAA2BC,EAA3B,CAA+BC,EAA/B,CAAmCC,EAAnC,CAAuCC,EAAvC,CAA2CC,EAA3C,CAA+CtT,KAA/C,EACAA,KAAK,EAAI,CAAT,CAEA,GAAI7e,CAAC,GAAKC,GAAG,CAAG,CAAhB,CAAmB,CAClB6lC,OAAO,CAAGh8B,IAAI,CAACrC,CAAL,CAAO,CAAP,CAAV,CACA,CAFD,IAEO,CACNq+B,OAAO,CAAGh8B,IAAI,CAACrC,CAAL,CAAOzH,CAAC,CAAG,CAAX,CAAV,CACA,CACD+lC,QAAQ,CAAGhiC,IAAI,CAACG,IAAL,CAAUH,IAAI,CAACC,GAAL,CAAS2hC,QAAQ,CAAC,CAAD,CAAR,CAAcG,OAAO,CAAC,CAAD,CAA9B,CAAmC,CAAnC,EAAwC/hC,IAAI,CAACC,GAAL,CAAS2hC,QAAQ,CAAC,CAAD,CAAR,CAAcG,OAAO,CAAC,CAAD,CAA9B,CAAmC,CAAnC,CAAlD,CAAX,CACAE,UAAU,CAAGD,QAAQ,CAAGhiC,IAAI,CAACS,GAAL,CAASuhC,QAAQ,CAAG,CAApB,CAAuBtqB,KAAvB,EAAgCsqB,QAAnC,CAA8C,CAAnE,CACA/T,EAAE,CAAG2T,QAAQ,CAAC,CAAD,CAAR,CAAc,CAACG,OAAO,CAAC,CAAD,CAAP,CAAaH,QAAQ,CAAC,CAAD,CAAtB,EAA6BK,UAAhD,CACAlU,EAAE,CAAGE,EAAL,CACAC,EAAE,CAAG0T,QAAQ,CAAC,CAAD,CAAR,CAAc,CAACG,OAAO,CAAC,CAAD,CAAP,CAAaH,QAAQ,CAAC,CAAD,CAAtB,EAA6BK,UAAhD,CACAjU,EAAE,CAAGE,EAAL,CACAC,EAAE,CAAGJ,EAAE,CAAG,CAACA,EAAE,CAAG6T,QAAQ,CAAC,CAAD,CAAd,EAAqBxgC,WAA/B,CACAgtB,EAAE,CAAGJ,EAAE,CAAG,CAACA,EAAE,CAAG4T,QAAQ,CAAC,CAAD,CAAd,EAAqBxgC,WAA/B,CACAm8B,UAAU,CAACzP,WAAX,CAAuBC,EAAvB,CAA2BC,EAA3B,CAA+BC,EAA/B,CAAmCC,EAAnC,CAAuCC,EAAvC,CAA2CC,EAA3C,CAA+CtT,KAA/C,EACAA,KAAK,EAAI,CAAT,CACA,CACD,CAxCD,IAwCO,CACNyiB,UAAU,CAACzP,WAAX,CAAuB/nB,IAAI,CAACrC,CAAL,CAAOzH,CAAP,EAAU,CAAV,CAAvB,CAAqC8J,IAAI,CAACrC,CAAL,CAAOzH,CAAP,EAAU,CAAV,CAArC,CAAmD8J,IAAI,CAACiD,CAAL,CAAO/M,CAAP,EAAU,CAAV,CAAnD,CAAiE8J,IAAI,CAACiD,CAAL,CAAO/M,CAAP,EAAU,CAAV,CAAjE,CAA+E8J,IAAI,CAAC9J,CAAL,CAAOA,CAAP,EAAU,CAAV,CAA/E,CAA6F8J,IAAI,CAAC9J,CAAL,CAAOA,CAAP,EAAU,CAAV,CAA7F,CAA2G6e,KAA3G,EACAA,KAAK,EAAI,CAAT,CACA,CACD,CACD,OAAOyiB,UAAP,CACA,CApED,CAsEAmE,oBAAoB,CAACrlC,SAArB,CAA+B2/B,aAA/B,CAA+C,SAAU5P,aAAV,CAAyB,CACvE,IAAI8P,UAAJ,CACA,IAAIjgC,CAAJ,CACA,IAAIC,GAAG,CAAG,KAAKgM,MAAL,CAAY/L,MAAtB,CACA,IAAI+K,CAAJ,CACA,IAAIC,IAAJ,CACA,IAAIw6B,EAAE,CAAG,KAAKA,EAAL,CAAQj+B,CAAjB,CAEA,GAAIi+B,EAAE,GAAK,CAAX,CAAc,CACb,IAAIre,SAAJ,CACA,IAAI2M,oBAAJ,CACA,IAAKh0B,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5BqnB,SAAS,CAAG,KAAKpb,MAAL,CAAYjM,CAAZ,CAAZ,CACAg0B,oBAAoB,CAAG3M,SAAS,CAAC2M,oBAAjC,CACA,GAAI,EAAE,CAAC3M,SAAS,CAACwL,KAAV,CAAgB/C,IAAjB,EAAyB,CAAC,KAAKA,IAA/B,EAAuC,CAACK,aAA1C,CAAJ,CAA8D,CAC7D6D,oBAAoB,CAACd,aAArB,GACA7L,SAAS,CAACwL,KAAV,CAAgB/C,IAAhB,CAAuB,IAAvB,CACAmQ,UAAU,CAAG5Y,SAAS,CAACwL,KAAV,CAAgBkB,KAAhB,CAAsB9nB,MAAnC,CACAf,IAAI,CAAGmc,SAAS,CAACwL,KAAV,CAAgBkB,KAAhB,CAAsBrP,OAA7B,CACA,IAAKzZ,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,IAAhB,CAAsBD,CAAC,EAAI,CAA3B,CAA8B,CAC7B+oB,oBAAoB,CAACf,QAArB,CAA8B,KAAKkO,WAAL,CAAiBlB,UAAU,CAACh1B,CAAD,CAA3B,CAAgCy6B,EAAhC,CAA9B,EACA,CACD,CACDre,SAAS,CAACwL,KAAV,CAAgBkB,KAAhB,CAAwB1M,SAAS,CAAC2M,oBAAlC,CACA,CACD,CACD,GAAI,CAAC,KAAK9C,iBAAL,CAAuBhxB,MAA5B,CAAoC,CACnC,KAAK4vB,IAAL,CAAY,KAAZ,CACA,CACD,CA7BD,CA+BA,SAASmW,iBAAT,CAA2BC,QAA3B,CAAqC,CACpC,IAAIC,MAAM,CAAGD,QAAQ,CAACE,MAAT,CAAkBF,QAAQ,CAACE,MAAT,CAAgBh5B,KAAhB,CAAsB,GAAtB,CAAlB,CAA+C,EAA5D,CAEA,IAAIi5B,OAAO,CAAG,QAAd,CAAwB,IACvBD,MAAM,CAAG,QADc,CAExB,IAAInmC,GAAG,CAAGkmC,MAAM,CAACjmC,MAAjB,CACA,IAAIomC,SAAJ,CACA,IAAK,IAAItmC,CAAC,CAAG,CAAb,CAAgBA,CAAC,CAAGC,GAApB,CAAyBD,CAAC,EAAI,CAA9B,CAAiC,CAChCsmC,SAAS,CAAGH,MAAM,CAACnmC,CAAD,CAAN,CAAUumC,WAAV,EAAZ,CACA,OAAQD,SAAR,EACC,IAAK,QAAL,CACCF,MAAM,CAAG,QAAT,CACA,MACD,IAAK,MAAL,CACCC,OAAO,CAAG,KAAV,CACA,MACD,IAAK,OAAL,CACCA,OAAO,CAAG,KAAV,CACA,MACD,IAAK,QAAL,CACCA,OAAO,CAAG,KAAV,CACA,MACD,IAAK,SAAL,CACA,IAAK,QAAL,CACCA,OAAO,CAAG,KAAV,CACA,MACD,IAAK,OAAL,CACA,IAAK,MAAL,CACCA,OAAO,CAAG,KAAV,CACA,MACD,QACC,MAtBF,CAwBA,CAED,OAAO,CACN/gC,KAAK,CAAE8gC,MADD,CAENI,MAAM,CAAEN,QAAQ,CAACG,OAAT,EAAoBA,OAFtB,CAAP,CAIA,CAED,MAAMI,WAAW,CAAI,UAAY,CAChC,IAAIC,cAAc,CAAG,IAArB,CACA,IAAIC,SAAS,CAAG,CACfvX,CAAC,CAAE,CADY,CAEfwX,IAAI,CAAE,CAFS,CAGf36B,MAAM,CAAE,EAHO,CAIflC,IAAI,CAAE,CACLkC,MAAM,CAAE,EADH,CAJS,CAAhB,CAQA,IAAI46B,kBAAkB,CAAG,EAAzB,CACA;CACAA,kBAAkB,CAAGA,kBAAkB,CAACtmB,MAAnB,CAA0B,CAAC,IAAD,CAAO,IAAP,CAAa,IAAb,CAAmB,IAAnB,CAAyB,IAAzB,CAA+B,IAA/B,CAAqC,IAArC,CAA2C,IAA3C,CAAiD,IAAjD,CAC9C,IAD8C,CACxC,IADwC,CAClC,IADkC,CAC5B,IAD4B,CACtB,IADsB,CAChB,IADgB,CACV,IADU,CACJ,IADI,CACE,IADF,CACQ,IADR,CACc,IADd,CACoB,IADpB,CAC0B,IAD1B,CAE9C,IAF8C,CAExC,IAFwC,CAElC,IAFkC,CAE5B,IAF4B,CAEtB,IAFsB,CAEhB,IAFgB,CAEV,IAFU,CAEJ,IAFI,CAEE,IAFF,CAEQ,IAFR,CAEc,IAFd,CAA1B,CAArB,CAIA,IAAIumB,kBAAkB,CAAG,CACxB,UADwB,CAExB,UAFwB,CAGxB,UAHwB,CAIxB,UAJwB,CAKxB,UALwB,CAAzB,CAQA,IAAIC,eAAe,CAAG,CAAC,KAAD,CAAQ,IAAR,CAAtB,CAEA,SAASC,eAAT,CAAyBC,IAAzB,CAA+B,CAC9B,IAAIC,WAAW,CAAGD,IAAI,CAAC75B,KAAL,CAAW,GAAX,CAAlB,CACA,IAAIpN,CAAJ,CACA,IAAIC,GAAG,CAAGinC,WAAW,CAAChnC,MAAtB,CACA,IAAIinC,eAAe,CAAG,EAAtB,CACA,IAAKnnC,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B,GAAIknC,WAAW,CAAClnC,CAAD,CAAX,GAAmB,YAAnB,EAAmCknC,WAAW,CAAClnC,CAAD,CAAX,GAAmB,WAA1D,CAAuE,CACtEmnC,eAAe,CAAC5lC,IAAhB,CAAqB2lC,WAAW,CAAClnC,CAAD,CAAhC,EACA,CACD,CACD,OAAOmnC,eAAe,CAACC,IAAhB,CAAqB,GAArB,CAAP,CACA,CAED,SAASC,SAAT,CAAmBJ,IAAnB,CAAyBK,MAAzB,CAAiC,CAChC,IAAIC,UAAU,CAAG9nC,SAAS,CAAC,MAAD,CAA1B,CACA;CACA8nC,UAAU,CAAC7mB,YAAX,CAAwB,aAAxB,CAAuC,IAAvC,EACA6mB,UAAU,CAACjiC,KAAX,CAAiBkiC,UAAjB,CAA8BF,MAA9B,CACA,IAAIG,IAAI,CAAGhoC,SAAS,CAAC,MAAD,CAApB,CACA;CACAgoC,IAAI,CAAC5mB,SAAL,CAAiB,gBAAjB,CACA;CACA0mB,UAAU,CAACjiC,KAAX,CAAiBC,QAAjB,CAA4B,UAA5B,CACAgiC,UAAU,CAACjiC,KAAX,CAAiBG,IAAjB,CAAwB,UAAxB,CACA8hC,UAAU,CAACjiC,KAAX,CAAiBE,GAAjB,CAAuB,UAAvB,CACA;CACA+hC,UAAU,CAACjiC,KAAX,CAAiBoiC,QAAjB,CAA4B,OAA5B,CACA;CACAH,UAAU,CAACjiC,KAAX,CAAiBqiC,WAAjB,CAA+B,QAA/B,CACAJ,UAAU,CAACjiC,KAAX,CAAiBsiC,SAAjB,CAA6B,QAA7B,CACAL,UAAU,CAACjiC,KAAX,CAAiBuiC,UAAjB,CAA8B,QAA9B,CACAN,UAAU,CAACjiC,KAAX,CAAiBwiC,aAAjB,CAAiC,GAAjC,CACAP,UAAU,CAAC5zB,WAAX,CAAuB8zB,IAAvB,EACA9nC,QAAQ,CAACghB,IAAT,CAAchN,WAAd,CAA0B4zB,UAA1B,EAEA;CACA,IAAI91B,KAAK,CAAGg2B,IAAI,CAACM,WAAjB,CACAN,IAAI,CAACniC,KAAL,CAAWkiC,UAAX,CAAwBR,eAAe,CAACC,IAAD,CAAf,CAAwB,IAAxB,CAA+BK,MAAvD,CACA,OAAO,CAAEG,IAAI,CAAEA,IAAR,CAAcrY,CAAC,CAAE3d,KAAjB,CAAwBu2B,MAAM,CAAET,UAAhC,CAAP,CACA,CAED,SAASU,gBAAT,EAA4B,CAC3B,IAAIjoC,CAAJ,CACA,IAAIC,GAAG,CAAG,KAAK0a,KAAL,CAAWza,MAArB,CACA,IAAIunC,IAAJ,CACA,IAAIrY,CAAJ,CACA,IAAI8Y,WAAW,CAAGjoC,GAAlB,CACA,IAAKD,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B,GAAI,KAAK2a,KAAL,CAAW3a,CAAX,EAAcmoC,MAAlB,CAA0B,CACzBD,WAAW,EAAI,CAAf,CACA,CAFD,QAEW,KAAKvtB,KAAL,CAAW3a,CAAX,EAAcooC,OAAd,GAA0B,GAA1B,EAAiC,KAAKztB,KAAL,CAAW3a,CAAX,EAAciR,MAAd,GAAyB,CAA9D,CAAiE,CACvE,KAAK0J,KAAL,CAAW3a,CAAX,EAAcmoC,MAAd,CAAuB,IAAvB,CACA,CAFM,IAEA,CACNV,IAAI,CAAG,KAAK9sB,KAAL,CAAW3a,CAAX,EAAcqoC,QAAd,CAAuBZ,IAA9B,CACArY,CAAC,CAAG,KAAKzU,KAAL,CAAW3a,CAAX,EAAcqoC,QAAd,CAAuBjZ,CAA3B,CACA,GAAIqY,IAAI,CAACM,WAAL,GAAqB3Y,CAAzB,CAA4B,CAC3B8Y,WAAW,EAAI,CAAf,CACA,KAAKvtB,KAAL,CAAW3a,CAAX,EAAcmoC,MAAd,CAAuB,IAAvB,CACA,CAHD,IAGO,CACNV,IAAI,CAAG,KAAK9sB,KAAL,CAAW3a,CAAX,EAAcsoC,QAAd,CAAuBb,IAA9B,CACArY,CAAC,CAAG,KAAKzU,KAAL,CAAW3a,CAAX,EAAcsoC,QAAd,CAAuBlZ,CAA3B,CACA,GAAIqY,IAAI,CAACM,WAAL,GAAqB3Y,CAAzB,CAA4B,CAC3B8Y,WAAW,EAAI,CAAf,CACA,KAAKvtB,KAAL,CAAW3a,CAAX,EAAcmoC,MAAd,CAAuB,IAAvB,CACA,CACD,CACD,GAAI,KAAKxtB,KAAL,CAAW3a,CAAX,EAAcmoC,MAAlB,CAA0B,CACzB,KAAKxtB,KAAL,CAAW3a,CAAX,EAAcsoC,QAAd,CAAuBN,MAAvB,CAA8BT,UAA9B,CAAyCgB,WAAzC,CAAqD,KAAK5tB,KAAL,CAAW3a,CAAX,EAAcsoC,QAAd,CAAuBN,MAA5E,EACA,KAAKrtB,KAAL,CAAW3a,CAAX,EAAcqoC,QAAd,CAAuBL,MAAvB,CAA8BT,UAA9B,CAAyCgB,WAAzC,CAAqD,KAAK5tB,KAAL,CAAW3a,CAAX,EAAcqoC,QAAd,CAAuBL,MAA5E,EACA,CACD,CACD,CAED,GAAIE,WAAW,GAAK,CAAhB,EAAqBM,IAAI,CAACC,GAAL,GAAa,KAAKxpB,QAAlB,CAA6BynB,cAAtD,CAAsE,CACrE3qB,UAAU,CAAC,KAAK2sB,sBAAN,CAA8B,EAA9B,CAAV,CACA,CAFD,IAEO,CACN3sB,UAAU,CAAC,KAAK4sB,iBAAN,CAAyB,EAAzB,CAAV,CACA,CACD,CAED,SAASC,YAAT,CAAsB1C,QAAtB,CAAgC2C,GAAhC,CAAqC,CACpC,IAAIC,MAAM,CAAInpC,QAAQ,CAACghB,IAAT,EAAiBkoB,GAAlB,CAAyB,KAAzB,CAAiC,QAA9C,CACA,IAAIE,MAAJ,CACA,IAAIC,SAAS,CAAG/C,iBAAiB,CAACC,QAAD,CAAjC,CACA,GAAI4C,MAAM,GAAK,KAAf,CAAsB,CACrB,IAAIG,OAAO,CAAG7/B,QAAQ,CAAC,MAAD,CAAtB,CACA6/B,OAAO,CAAC3jC,KAAR,CAAcoiC,QAAd,CAAyB,OAAzB,CACA;CACAuB,OAAO,CAACvoB,YAAR,CAAqB,aAArB,CAAoCwlB,QAAQ,CAACgD,OAA7C,EACAD,OAAO,CAACvoB,YAAR,CAAqB,YAArB,CAAmCsoB,SAAS,CAAC1jC,KAA7C,EACA2jC,OAAO,CAACvoB,YAAR,CAAqB,aAArB,CAAoCsoB,SAAS,CAACxC,MAA9C,EACAyC,OAAO,CAACE,WAAR,CAAsB,GAAtB,CACA,GAAIjD,QAAQ,CAACkD,MAAb,CAAqB,CACpBH,OAAO,CAAC3jC,KAAR,CAAckiC,UAAd,CAA2B,SAA3B,CACAyB,OAAO,CAACvoB,YAAR,CAAqB,OAArB,CAA8BwlB,QAAQ,CAACkD,MAAvC,EACA,CAHD,IAGO,CACNH,OAAO,CAAC3jC,KAAR,CAAckiC,UAAd,CAA2BtB,QAAQ,CAACgD,OAApC,CACA,CACDL,GAAG,CAACl1B,WAAJ,CAAgBs1B,OAAhB,EACAF,MAAM,CAAGE,OAAT,CACA,CAhBD,IAgBO,CACN,IAAII,aAAa,CAAG,IAAIC,eAAJ,CAAoB,GAApB,CAAyB,GAAzB,EAA8B13B,UAA9B,CAAyC,IAAzC,CAApB,CACAy3B,aAAa,CAACpC,IAAd,CAAqB+B,SAAS,CAAC1jC,KAAV,CAAkB,GAAlB,CAAwB0jC,SAAS,CAACxC,MAAlC,CAA2C,SAA3C,CAAuDN,QAAQ,CAACgD,OAArF,CACAH,MAAM,CAAGM,aAAT,CACA,CACD,SAASE,OAAT,CAAiBC,IAAjB,CAAuB,CACtB,GAAIV,MAAM,GAAK,KAAf,CAAsB,CACrBC,MAAM,CAACI,WAAP,CAAqBK,IAArB,CACA,OAAOT,MAAM,CAACU,qBAAP,EAAP,CACA,CACD,OAAOV,MAAM,CAACW,WAAP,CAAmBF,IAAnB,EAAyB/3B,KAAhC,CACA,CACD,OAAO,CACNi4B,WAAW,CAAEH,OADP,CAAP,CAGA,CAED,SAASzuB,QAAT,CAAkBorB,QAAlB,CAA4BzsB,IAA5B,CAAkC,CACjC,GAAI,CAACysB,QAAL,CAAe,CACd,KAAK1uB,QAAL,CAAgB,IAAhB,CACA,OACA,CACD,GAAI,KAAKpL,KAAT,CAAgB,CACf,KAAKoL,QAAL,CAAgB,IAAhB,CACA,KAAKmD,KAAL,CAAaurB,QAAQ,CAACyD,IAAtB,CACA,OACA,CACD,GAAI,CAAChqC,QAAQ,CAACghB,IAAd,CAAoB,CACnB,KAAKnJ,QAAL,CAAgB,IAAhB,CACA0uB,QAAQ,CAACyD,IAAT,CAAcC,OAAd,CAAuB7/B,IAAD,EAAU,CAC/BA,IAAI,CAACg/B,MAAL,CAAcH,YAAY,CAAC7+B,IAAD,CAA1B,CACAA,IAAI,CAAC8/B,KAAL,CAAa,EAAb,CACA,CAHD,EAIA,KAAKlvB,KAAL,CAAaurB,QAAQ,CAACyD,IAAtB,CACA,OACA,CAED,IAAIG,OAAO,CAAG5D,QAAQ,CAACyD,IAAvB,CACA,IAAI3pC,CAAJ,CACA,IAAIC,GAAG,CAAG6pC,OAAO,CAAC5pC,MAAlB,CACA,IAAI6pC,aAAa,CAAG9pC,GAApB,CACA,IAAKD,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B,IAAIgqC,cAAc,CAAG,IAArB,CACA,IAAIC,cAAJ,CACA,IAAIh/B,CAAJ,CACA6+B,OAAO,CAAC9pC,CAAD,CAAP,CAAWmoC,MAAX,CAAoB,KAApB,CACA2B,OAAO,CAAC9pC,CAAD,CAAP,CAAWqoC,QAAX,CAAsBhB,SAAS,CAACyC,OAAO,CAAC9pC,CAAD,CAAP,CAAWkpC,OAAZ,CAAqB,WAArB,CAA/B,CACAY,OAAO,CAAC9pC,CAAD,CAAP,CAAWsoC,QAAX,CAAsBjB,SAAS,CAACyC,OAAO,CAAC9pC,CAAD,CAAP,CAAWkpC,OAAZ,CAAqB,YAArB,CAA/B,CACA,GAAI,CAACY,OAAO,CAAC9pC,CAAD,CAAP,CAAWkqC,KAAhB,CAAuB,CACtBJ,OAAO,CAAC9pC,CAAD,CAAP,CAAWmoC,MAAX,CAAoB,IAApB,CACA4B,aAAa,EAAI,CAAjB,CACA,CAHD,QAGWD,OAAO,CAAC9pC,CAAD,CAAP,CAAWooC,OAAX,GAAuB,GAAvB,EAA8B0B,OAAO,CAAC9pC,CAAD,CAAP,CAAWiR,MAAX,GAAsB,CAAxD,CAA2D,CACjEg5B,cAAc,CAAGtqC,QAAQ,CAACwqC,gBAAT,CAA0B,kCAAoCL,OAAO,CAAC9pC,CAAD,CAAP,CAAWkpC,OAA/C,CAAyD,oCAAzD,CAAgGY,OAAO,CAAC9pC,CAAD,CAAP,CAAWkpC,OAA3G,CAAqH,IAA/I,CAAjB,CAEA,GAAIe,cAAc,CAAC/pC,MAAf,CAAwB,CAA5B,CAA+B,CAC9B8pC,cAAc,CAAG,KAAjB,CACA,CAED,GAAIA,cAAJ,CAAoB,CACnB,IAAIxiC,CAAC,CAAG/H,SAAS,CAAC,OAAD,CAAjB,CACA+H,CAAC,CAACkZ,YAAF,CAAe,WAAf,CAA4BopB,OAAO,CAAC9pC,CAAD,CAAP,CAAWooC,OAAvC,EACA5gC,CAAC,CAACkZ,YAAF,CAAe,UAAf,CAA2BopB,OAAO,CAAC9pC,CAAD,CAAP,CAAWiR,MAAtC,EACAzJ,CAAC,CAACkZ,YAAF,CAAe,UAAf,CAA2BopB,OAAO,CAAC9pC,CAAD,CAAP,CAAWkpC,OAAtC,EACA1hC,CAAC,CAAC9H,IAAF,CAAS,UAAT,CACA8H,CAAC,CAACqZ,SAAF,CAAc,4BAA8BipB,OAAO,CAAC9pC,CAAD,CAAP,CAAWkpC,OAAzC,CAAmD,kCAAnD,CAAwFY,OAAO,CAAC9pC,CAAD,CAAP,CAAWkqC,KAAnG,CAA2G,MAAzH,CACAzwB,IAAI,CAAC9F,WAAL,CAAiBnM,CAAjB,EACA,CACD,CAhBM,QAgBIsiC,OAAO,CAAC9pC,CAAD,CAAP,CAAWooC,OAAX,GAAuB,GAAvB,EAA8B0B,OAAO,CAAC9pC,CAAD,CAAP,CAAWiR,MAAX,GAAsB,CAAxD,CAA2D,CACjEg5B,cAAc,CAAGtqC,QAAQ,CAACwqC,gBAAT,CAA0B,yCAA1B,CAAjB,CAEA,IAAKl/B,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGg/B,cAAc,CAAC/pC,MAA/B,CAAuC+K,CAAC,EAAI,CAA5C,CAA+C,CAC9C,GAAIg/B,cAAc,CAACh/B,CAAD,CAAd,CAAkB6xB,IAAlB,CAAuBvtB,OAAvB,CAA+Bu6B,OAAO,CAAC9pC,CAAD,CAAP,CAAWkqC,KAA1C,IAAqD,CAAC,CAA1D,CAA6D;CAE5DF,cAAc,CAAG,KAAjB,CACA,CACD,CAED,GAAIA,cAAJ,CAAoB,CACnB,IAAIzR,CAAC,CAAG94B,SAAS,CAAC,MAAD,CAAjB,CACA84B,CAAC,CAAC7X,YAAF,CAAe,WAAf,CAA4BopB,OAAO,CAAC9pC,CAAD,CAAP,CAAWooC,OAAvC,EACA7P,CAAC,CAAC7X,YAAF,CAAe,UAAf,CAA2BopB,OAAO,CAAC9pC,CAAD,CAAP,CAAWiR,MAAtC,EACAsnB,CAAC,CAAC74B,IAAF,CAAS,UAAT,CACA64B,CAAC,CAAC6R,GAAF,CAAQ,YAAR,CACA7R,CAAC,CAACuE,IAAF,CAASgN,OAAO,CAAC9pC,CAAD,CAAP,CAAWkqC,KAApB,CACAvqC,QAAQ,CAACghB,IAAT,CAAchN,WAAd,CAA0B4kB,CAA1B,EACA,CACD,CAnBM,QAmBIuR,OAAO,CAAC9pC,CAAD,CAAP,CAAWooC,OAAX,GAAuB,GAAvB,EAA8B0B,OAAO,CAAC9pC,CAAD,CAAP,CAAWiR,MAAX,GAAsB,CAAxD,CAA2D,CACjEg5B,cAAc,CAAGtqC,QAAQ,CAACwqC,gBAAT,CAA0B,6CAA1B,CAAjB,CAEA,IAAKl/B,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGg/B,cAAc,CAAC/pC,MAA/B,CAAuC+K,CAAC,EAAI,CAA5C,CAA+C,CAC9C,GAAI6+B,OAAO,CAAC9pC,CAAD,CAAP,CAAWkqC,KAAX,GAAqBD,cAAc,CAACh/B,CAAD,CAAd,CAAkBjJ,GAA3C,CAAgD;CAE/CgoC,cAAc,CAAG,KAAjB,CACA,CACD,CAED,GAAIA,cAAJ,CAAoB,CACnB,IAAIK,EAAE,CAAG5qC,SAAS,CAAC,MAAD,CAAlB,CACA4qC,EAAE,CAAC3pB,YAAH,CAAgB,WAAhB,CAA6BopB,OAAO,CAAC9pC,CAAD,CAAP,CAAWooC,OAAxC,EACAiC,EAAE,CAAC3pB,YAAH,CAAgB,UAAhB,CAA4BopB,OAAO,CAAC9pC,CAAD,CAAP,CAAWiR,MAAvC,EACAo5B,EAAE,CAAC3pB,YAAH,CAAgB,KAAhB,CAAuB,YAAvB,EACA2pB,EAAE,CAAC3pB,YAAH,CAAgB,MAAhB,CAAwBopB,OAAO,CAAC9pC,CAAD,CAAP,CAAWkqC,KAAnC,EACAzwB,IAAI,CAAC9F,WAAL,CAAiB02B,EAAjB,EACA,CACD,CACDP,OAAO,CAAC9pC,CAAD,CAAP,CAAW+oC,MAAX,CAAoBH,YAAY,CAACkB,OAAO,CAAC9pC,CAAD,CAAR,CAAayZ,IAAb,CAAhC,CACAqwB,OAAO,CAAC9pC,CAAD,CAAP,CAAW6pC,KAAX,CAAmB,EAAnB,CACA,KAAKlvB,KAAL,CAAWpZ,IAAX,CAAgBuoC,OAAO,CAAC9pC,CAAD,CAAvB,EACA,CACD,GAAI+pC,aAAa,GAAK,CAAtB,CAAyB,CACxB,KAAKvyB,QAAL,CAAgB,IAAhB,CACA,CAFD,IAEO;CAEN;CACAuE,UAAU,CAAC,KAAKksB,gBAAL,CAAsB70B,IAAtB,CAA2B,IAA3B,CAAD,CAAmC,GAAnC,CAAV,CACA,CACD,CAED,SAASyH,QAAT,CAAkBzO,KAAlB,CAAyB,CACxB,GAAI,CAACA,KAAL,CAAY,CACX,OACA,CACD,GAAI,CAAC,KAAKA,KAAV,CAAiB,CAChB,KAAKA,KAAL,CAAa,EAAb,CACA,CACD,IAAIpM,CAAJ,CACA,IAAIC,GAAG,CAAGmM,KAAK,CAAClM,MAAhB,CACA,IAAI+K,CAAJ,CACA,IAAIC,IAAI,CAAG,KAAKkB,KAAL,CAAWlM,MAAtB,CACA,IAAIoqC,KAAJ,CACA,IAAKtqC,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5BiL,CAAC,CAAG,CAAJ,CACAq/B,KAAK,CAAG,KAAR,CACA,MAAOr/B,CAAC,CAAGC,IAAX,CAAiB,CAChB,GAAI,KAAKkB,KAAL,CAAWnB,CAAX,EAAc3F,KAAd,GAAwB8G,KAAK,CAACpM,CAAD,CAAL,CAASsF,KAAjC,EAA0C,KAAK8G,KAAL,CAAWnB,CAAX,EAAci+B,OAAd,GAA0B98B,KAAK,CAACpM,CAAD,CAAL,CAASkpC,OAA7E,EAAwF,KAAK98B,KAAL,CAAWnB,CAAX,EAAcs/B,EAAd,GAAqBn+B,KAAK,CAACpM,CAAD,CAAL,CAASuqC,EAA1H,CAA8H,CAC7HD,KAAK,CAAG,IAAR,CACA,CACDr/B,CAAC,EAAI,CAAL,CACA,CACD,GAAI,CAACq/B,KAAL,CAAY,CACX,KAAKl+B,KAAL,CAAW7K,IAAX,CAAgB6K,KAAK,CAACpM,CAAD,CAArB,EACAkL,IAAI,EAAI,CAAR,CACA,CACD,CACD,CAED,SAASs/B,WAAT,CAAqBC,IAArB,CAA2BnlC,KAA3B,CAAkC2hC,IAAlC,CAAwC,CACvC,IAAIjnC,CAAC,CAAG,CAAR,CACA,IAAIC,GAAG,CAAG,KAAKmM,KAAL,CAAWlM,MAArB,CACA,MAAOF,CAAC,CAAGC,GAAX,CAAgB,CACf,GAAI,KAAKmM,KAAL,CAAWpM,CAAX,EAAcuqC,EAAd,GAAqBE,IAArB,EAA6B,KAAKr+B,KAAL,CAAWpM,CAAX,EAAcsF,KAAd,GAAwBA,KAArD,EAA8D,KAAK8G,KAAL,CAAWpM,CAAX,EAAckpC,OAAd,GAA0BjC,IAA5F,CAAkG,CACjG,YAAY76B,KAAL,CAAWpM,CAAX,CAAP,CACA,CACDA,CAAC,EAAI,CAAL,CACA,CACD,GAAI,CAAE,OAAOyqC,IAAP,GAAgB,QAAhB,EAA4BA,IAAI,CAACC,UAAL,CAAgB,CAAhB,IAAuB,EAApD,EAA2D,CAACD,IAA7D,GACAE,OADA,EAEAA,OAAO,CAACC,IAAK;CAFb,EAGA,CAAC,KAAKC,OAHV,CAIE,CACD,KAAKA,OAAL,CAAe,IAAf,CACAF,OAAO,CAACC,IAAR,CAAa,mDAAb,CAAkEH,IAAlE,CAAwEnlC,KAAxE,CAA+E2hC,IAA/E,EAAsF;CACtF,CACD,OAAON,SAAP,CACA,CAED,SAAS+C,WAAT,CAAqBe,IAArB,CAA2BK,QAA3B,CAAqClE,IAArC,CAA2C,CAC1C,IAAIV,QAAQ,CAAG,KAAK6E,aAAL,CAAmBD,QAAnB,CAAf,CACA,IAAIjsB,KAAK,CAAG4rB,IAAI,CAACC,UAAL,CAAgB,CAAhB,CAAZ,CACA,GAAI,CAACxE,QAAQ,CAAC2D,KAAT,CAAehrB,KAAK,CAAG,CAAvB,CAAL,CAAgC,CAC/B,IAAIoqB,OAAO,CAAG/C,QAAQ,CAAC6C,MAAvB,CACA,GAAI0B,IAAI,GAAK,GAAb,CAAkB,CACjB,IAAIO,UAAU,CAAG/B,OAAO,CAACS,WAAR,CAAoB,IAAMe,IAAN,CAAa,GAAjC,CAAjB,CACA,IAAIQ,UAAU,CAAGhC,OAAO,CAACS,WAAR,CAAoB,IAApB,CAAjB,CACAxD,QAAQ,CAAC2D,KAAT,CAAehrB,KAAK,CAAG,CAAvB,EAA4B,CAACmsB,UAAU,CAAGC,UAAd,EAA4B,GAAxD,CACA,CAJD,IAIO,CACN/E,QAAQ,CAAC2D,KAAT,CAAehrB,KAAK,CAAG,CAAvB,EAA4BoqB,OAAO,CAACS,WAAR,CAAoBe,IAApB,EAA4B,GAAxD,CACA,CACD,CACD,OAAOvE,QAAQ,CAAC2D,KAAT,CAAehrB,KAAK,CAAG,CAAvB,EAA4B+nB,IAAnC,CACA,CAED,SAASmE,aAAT,CAAuBt0B,IAAvB,CAA6B,CAC5B,IAAIzW,CAAC,CAAG,CAAR,CACA,IAAIC,GAAG,CAAG,KAAK0a,KAAL,CAAWza,MAArB,CACA,MAAOF,CAAC,CAAGC,GAAX,CAAgB,CACf,GAAI,KAAK0a,KAAL,CAAW3a,CAAX,EAAckrC,KAAd,GAAwBz0B,IAA5B,CAAkC,CACjC,YAAYkE,KAAL,CAAW3a,CAAX,CAAP,CACA,CACDA,CAAC,EAAI,CAAL,CACA,CACD,YAAY2a,KAAL,CAAW,CAAX,CAAP,CACA,CAED,SAASwwB,UAAT,CAAoBC,aAApB,CAAmCC,cAAnC,CAAmD,CAClD,IAAIC,GAAG,CAAGF,aAAa,CAACxiC,QAAd,CAAuB,EAAvB,EAA6ByiC,cAAc,CAACziC,QAAf,CAAwB,EAAxB,CAAvC,CACA,OAAOk+B,kBAAkB,CAACv3B,OAAnB,CAA2B+7B,GAA3B,IAAoC,CAAC,CAA5C,CACA,CAED,SAASC,iBAAT,CAA2BH,aAA3B,CAA0CC,cAA1C,CAA0D,CACzD,GAAI,CAACA,cAAL,CAAqB,CACpB,OAAOD,aAAa,GAAKrE,eAAe,CAAC,CAAD,CAAxC,CACA,CACD,OAAOqE,aAAa,GAAKrE,eAAe,CAAC,CAAD,CAAjC,EAAwCsE,cAAc,GAAKtE,eAAe,CAAC,CAAD,CAAjF,CACA,CAED,SAASyE,mBAAT,CAA6Bf,IAA7B,CAAmC,CAClC,OAAO5D,kBAAkB,CAACt3B,OAAnB,CAA2Bk7B,IAA3B,IAAqC,CAAC,CAA7C,CACA,CAED,SAASgB,WAAT,EAAuB,CACtB,KAAKj0B,QAAL,CAAgB,IAAhB,CACA,CAED,IAAIk0B,IAAI,CAAG,UAAY,CACtB,KAAK/wB,KAAL,CAAa,EAAb,CACA,KAAKvO,KAAL,CAAa,IAAb,CACA,KAAKu/B,aAAL,CAAqB,CAArB,CACA,KAAKn0B,QAAL,CAAgB,KAAhB,CACA,KAAKqzB,OAAL,CAAe,KAAf,CACA,KAAK5rB,QAAL,CAAgBupB,IAAI,CAACC,GAAL,EAAhB,CACA,KAAKE,iBAAL,CAAyB,KAAK8C,WAAL,CAAiBr4B,IAAjB,CAAsB,IAAtB,CAAzB,CACA,KAAKs1B,sBAAL,CAA8B,KAAKT,gBAAL,CAAsB70B,IAAtB,CAA2B,IAA3B,CAA9B,CACA,CATD,CAUAs4B,IAAI,CAACP,UAAL,CAAkBA,UAAlB,CACAO,IAAI,CAACH,iBAAL,CAAyBA,iBAAzB,CACAG,IAAI,CAACF,mBAAL,CAA2BA,mBAA3B,CAEA,IAAII,aAAa,CAAG,CACnB/wB,QAAQ,CAAEA,QADS,CAEnBC,QAAQ,CAAEA,QAFS,CAGnB0vB,WAAW,CAAEA,WAHM,CAInBO,aAAa,CAAEA,aAJI,CAKnBrB,WAAW,CAAEA,WALM,CAMnBzB,gBAAgB,CAAEA,gBANC,CAOnBwD,WAAW,CAAEA,WAPM,CAApB,CAUAC,IAAI,CAACtrC,SAAL,CAAiBwrC,aAAjB,CAEA,OAAOF,IAAP,CACA,CA/WoB,EAArB,CAiXA,SAASG,iBAAT,EAA6B,EAI7BA,iBAAiB,CAACzrC,SAAlB,CAA8B,CAC7B0rC,cAAc,CAAE,UAAY;CAE3B,KAAKC,SAAL,CAAiB,KAAjB,CACA;CACA,KAAKC,MAAL,CAAc,KAAd,CACA;CACA,KAAKC,aAAL,CAAqB,KAArB,CACA;CACA,KAAKC,oBAAL,CAA4B,EAA5B,CACA,CAV4B,CAW7BC,sBAAsB,CAAE,SAAUC,SAAV,CAAqB,CAC5C,GAAI,KAAKF,oBAAL,CAA0B38B,OAA1B,CAAkC68B,SAAlC,IAAiD,CAAC,CAAtD,CAAyD,CACxD,KAAKF,oBAAL,CAA0B3qC,IAA1B,CAA+B6qC,SAA/B,EACA,CACD,CAf4B,CAgB7BC,yBAAyB,CAAE,SAAUD,SAAV,CAAqB,CAC/C,GAAI,KAAKF,oBAAL,CAA0B38B,OAA1B,CAAkC68B,SAAlC,IAAiD,CAAC,CAAtD,CAAyD,CACxD,KAAKF,oBAAL,CAA0B72B,MAA1B,CAAiC,KAAK62B,oBAAL,CAA0B38B,OAA1B,CAAkC68B,SAAlC,CAAjC,CAA+E,CAA/E,EACA,CACD,CApB4B,CAqB7BE,sBAAsB,CAAE,SAAUC,GAAV,CAAe,CACtC,KAAKC,gBAAL,CAAsBD,GAAtB,EACA,CAvB4B,CAwB7BE,iBAAiB,CAAE,UAAY,CAC9B,GAAI,KAAKC,cAAL,CAAoBC,KAApB,CAA0B5/B,CAA1B,CAA4BtF,CAA5B,EAAiC,CAArC,CAAwC,CACvC,GAAI,CAAC,KAAKwkC,aAAN,EAAuB,KAAKzyB,UAAL,CAAgBozB,YAAhB,CAA6BC,iBAAxD,CAA2E,CAC1E,KAAKZ,aAAL,CAAqB,IAArB,CACA,KAAKxtB,IAAL,GACA,CACD,CALD,QAKW,KAAKwtB,aAAT,CAAwB,CAC9B,KAAKA,aAAL,CAAqB,KAArB,CACA,KAAKvtB,IAAL,GACA,CACD,CAlC4B;CAoC9B;CACA;CACA;CACA;CACA;CACA;CACA,IACC8tB,gBAAgB,CAAE,SAAUD,GAAV,CAAe,CAChC,GAAI,KAAKxiC,IAAL,CAAU+D,EAAV,CAAe,KAAK/D,IAAL,CAAUiE,EAAzB,EAA+Bu+B,GAA/B,EAAsC,KAAKxiC,IAAL,CAAUgE,EAAV,CAAe,KAAKhE,IAAL,CAAUiE,EAAzB,CAA8Bu+B,GAAxE,CAA6E,CAC5E,GAAI,KAAKR,SAAL,GAAmB,IAAvB,CAA6B,CAC5B,KAAKvyB,UAAL,CAAgBsW,IAAhB,CAAuB,IAAvB,CACA,KAAKA,IAAL,CAAY,IAAZ,CACA,KAAKic,SAAL,CAAiB,IAAjB,CACA,KAAKrtB,IAAL,GACA,CACD,CAPD,QAOW,KAAKqtB,SAAL,GAAmB,KAAvB,CAA8B,CACpC,KAAKvyB,UAAL,CAAgBsW,IAAhB,CAAuB,IAAvB,CACA,KAAKic,SAAL,CAAiB,KAAjB,CACA,KAAKttB,IAAL,GACA,CACD,CAxD4B,CAyD7BquB,gBAAgB,CAAE,UAAY,CAC7B,IAAI9sC,CAAJ,CACA,IAAIC,GAAG,CAAG,KAAKisC,oBAAL,CAA0BhsC,MAApC,CACA,IAAKF,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B,KAAKksC,oBAAL,CAA0BlsC,CAA1B,EAA6Bsc,WAA7B,CAAyC,KAAK6T,aAA9C,EACA,CACD;CACF,0EAhE8B,CAkE7B4c,gBAAgB,CAAE,UAAY,CAC7B,OAAO,CACNvnC,GAAG,CAAE,CADC,CAENC,IAAI,CAAE,CAFA,CAGNgM,KAAK,CAAE,GAHD,CAINC,MAAM,CAAE,GAJF,CAAP,CAMA,CAzE4B,CA0E7Bs7B,YAAY,CAAE,UAAY,CACzB,GAAI,KAAKjjC,IAAL,CAAU8B,EAAV,GAAiB,CAArB,CAAwB,CACvB,OAAO,CAAEujB,CAAC,CAAE,KAAKrlB,IAAL,CAAUkjC,QAAV,CAAmBx7B,KAAxB,CAA+BlK,CAAC,CAAE,KAAKwC,IAAL,CAAUkjC,QAAV,CAAmBv7B,MAArD,CAAP,CACA,CACD,OAAO,CAAE0d,CAAC,CAAE,KAAKrlB,IAAL,CAAU0H,KAAf,CAAsBlK,CAAC,CAAE,KAAKwC,IAAL,CAAU2H,MAAnC,CAAP,CACA,CA/E4B,CAA9B,CAkFA,MAAMw7B,oBAAoB,CAAI,UAAY,CACzC,SAASC,aAAT,CAAuBC,IAAvB,CAA6BrjC,IAA7B,CAAmC,CAClC,KAAKsjC,KAAL,CAAaD,IAAb,CACA,KAAKE,KAAL,CAAavjC,IAAb,CACA,CACDzJ,MAAM,CAACitC,cAAP,CAAsBJ,aAAa,CAAC/sC,SAApC,CAA+C,UAA/C,CAA2D,CAC1DkjB,GAAG,CAAE,UAAY,CAChB,GAAI,KAAK+pB,KAAL,CAAW1sC,IAAX,CAAgBwK,CAApB,CAAuB,CACtB,KAAKkiC,KAAL,CAAW1sC,IAAX,CAAgBgwB,QAAhB,GACA,CACD,YAAY0c,KAAL,CAAW1sC,IAAlB,CACA,CANyD,CAA3D,EAQAL,MAAM,CAACitC,cAAP,CAAsBJ,aAAa,CAAC/sC,SAApC,CAA+C,aAA/C,CAA8D,CAC7DkjB,GAAG,CAAE,UAAY,CAChB,GAAI,KAAK+pB,KAAL,CAAWt/B,EAAX,CAAc5C,CAAlB,CAAqB,CACpB,KAAKkiC,KAAL,CAAWt/B,EAAX,CAAc4iB,QAAd,GACA,CACD,YAAY0c,KAAL,CAAWt/B,EAAX,CAActG,CAAd,CAAkB,GAAzB,CACA,CAN4D,CAA9D,EASA,IAAI+lC,WAAW,CAAG,SAAUC,WAAV,CAAuB,CACxC,IAAIC,gBAAgB,CAAGtqC,gBAAgB,CAACqqC,WAAW,CAACE,QAAZ,CAAqBztC,MAAtB,CAAvC,CACA,IAAIF,CAAJ,CACA,IAAIC,GAAG,CAAGwtC,WAAW,CAACE,QAAZ,CAAqBztC,MAA/B,CACA,IAAKF,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B0tC,gBAAgB,CAAC1tC,CAAD,CAAhB,CAAsB,IAAImtC,aAAJ,CAAkBM,WAAW,CAACE,QAAZ,CAAqB3tC,CAArB,CAAlB,CAA2CytC,WAAW,CAAC/hC,eAAZ,CAA4B1L,CAA5B,CAA3C,CAAtB,CACA,CAED,IAAI4tC,YAAY,CAAG,SAAUn3B,IAAV,CAAgB,CAClCzW,CAAC,CAAG,CAAJ,CACA,MAAOA,CAAC,CAAGC,GAAX,CAAgB,CACf,GAAIwtC,WAAW,CAAC/hC,eAAZ,CAA4B1L,CAA5B,EAA+B8W,EAA/B,GAAsCL,IAA1C,CAAgD,CAC/C,OAAOi3B,gBAAgB,CAAC1tC,CAAD,CAAvB,CACA,CACDA,CAAC,EAAI,CAAL,CACA,CACD,WAAA,CACA,CATD,CAUA,OAAO4tC,YAAP,CACA,CAnBD,CAoBA,OAAOJ,WAAP,CACA,CA3C6B,EAA9B,CA6CA,MAAMK,2BAA2B,CAAI,UAAY,CAChD,IAAIC,0BAA0B,CAAG,CAAEhjB,EAAE,CAAE,CAAN,CAASrjB,CAAC,CAAE,CAAZ,CAAeooB,IAAI,CAAE,CAArB,CAAjC,CACA,IAAIke,4BAA4B,CAAG,CAAEjjB,EAAE,CAAE,CAAC,CAAD,CAAI,CAAJ,CAAO,CAAP,CAAN,CAAiBrjB,CAAC,CAAE,CAAC,CAAD,CAAI,CAAJ,CAAO,CAAP,CAApB,CAA+BooB,IAAI,CAAE,CAArC,CAAnC,CAEA,SAASme,gBAAT,CAA0BC,eAA1B,CAA2CC,QAA3C,CAAqDxuC,IAArD,CAA2D,CAC1DY,MAAM,CAACitC,cAAP,CAAsBU,eAAtB,CAAuC,UAAvC,CAAmD,CAClD3qB,GAAG,CAAE,UAAY,CAChB,OAAO4qB,QAAQ,CAACC,iBAAT,CAA2BD,QAAQ,CAAC1hC,IAAT,CAAcyK,YAAzC,CAAP,CACA,CAHiD,CAAnD,EAKAg3B,eAAe,CAACG,OAAhB,CAA0BF,QAAQ,CAACjjB,SAAT,CAAqBijB,QAAQ,CAACjjB,SAAT,CAAmB/qB,MAAxC,CAAiD,CAA3E,CACA+tC,eAAe,CAAC52B,GAAhB,CAAsB,SAAUua,GAAV,CAAe,CACpC,GAAI,CAACqc,eAAe,CAACG,OAArB,CAA8B,CAC7B,QAAA,CACA,CACD,IAAI7uC,KAAK,CAAG,EAAZ,CACA,GAAI,MAAO2uC,QAAQ,CAACjjB,SAAT,CAAmB2G,GAAG,CAAG,CAAzB,CAAX,CAAwC,CACvCryB,KAAK,CAAG2uC,QAAQ,CAACjjB,SAAT,CAAmB2G,GAAG,CAAG,CAAzB,EAA4BpqB,CAApC,CACA,CAFD,QAEW,MAAO0mC,QAAQ,CAACjjB,SAAT,CAAmB2G,GAAG,CAAG,CAAzB,CAAX,CAAwC,CAC9CryB,KAAK,CAAG2uC,QAAQ,CAACjjB,SAAT,CAAmB2G,GAAG,CAAG,CAAzB,EAA4BjnB,CAApC,CACA,CAFM,IAEA,CACNpL,KAAK,CAAG2uC,QAAQ,CAACjjB,SAAT,CAAmB2G,GAAG,CAAG,CAAzB,EAA4BpqB,CAApC,CACA,CACD,IAAI6mC,SAAS,CAAG3uC,IAAI,GAAK,gBAAT,CAA4B,IAAIud,MAAJ,CAAW1d,KAAX,CAA5B,CAAgDe,MAAM,CAACguC,MAAP,CAAc,EAAd,CAAkB/uC,KAAlB,CAAhE,CAA0F;CAC1F8uC,SAAS,CAACn4B,IAAV,CAAiBg4B,QAAQ,CAACjjB,SAAT,CAAmB2G,GAAG,CAAG,CAAzB,EAA4B5pB,CAA5B,CAAgCkmC,QAAQ,CAACxuB,IAAT,CAAclT,IAAd,CAAmBgN,UAAnB,CAA8B9B,SAA/E,CACA22B,SAAS,CAAC9uC,KAAV,CAAkBG,IAAI,GAAK,gBAAT,CAA4BH,KAAK,CAAC,CAAD,CAAjC,CAAuCA,KAAzD,CACA,OAAO8uC,SAAP,CACA,CAhBD,CAiBAJ,eAAe,CAACM,WAAhB,CAA8BL,QAAQ,CAAC1L,cAAvC,CACAyL,eAAe,CAACO,WAAhB,CAA8BN,QAAQ,CAACO,cAAvC,CACAR,eAAe,CAACS,cAAhB,CAAiCR,QAAQ,CAACC,iBAA1C,CACAF,eAAe,CAACU,aAAhB,CAAgCT,QAAQ,CAACS,aAAzC,CACA,CAED,SAASC,+BAAT,CAAyCV,QAAzC,CAAmD,CAClD,GAAI,CAACA,QAAD,EAAa,EAAE,OAAQA,QAAV,CAAjB,CAAsC,CACrCA,QAAQ,CAAGJ,0BAAX,CACA,CACD,IAAIje,IAAI,CAAG,EAAIqe,QAAQ,CAACre,IAAxB,CACA,IAAIhrB,GAAG,CAAGqpC,QAAQ,CAACpjB,EAAT,CAAc+E,IAAxB,CACA,IAAIoe,eAAe,CAAG,IAAIhxB,MAAJ,CAAWpY,GAAX,CAAtB,CAAuC;CACvCopC,eAAe,CAAC1uC,KAAhB,CAAwBsF,GAAxB,CACAmpC,gBAAgB,CAACC,eAAD,CAAkBC,QAAlB,CAA4B,gBAA5B,CAAhB,CAEA,iBAAmB,CAClB,GAAIA,QAAQ,CAAC/iC,CAAb,CAAgB,CACf+iC,QAAQ,CAACvd,QAAT,GACA,CACD9rB,GAAG,CAAGqpC,QAAQ,CAACzmC,CAAT,CAAaooB,IAAnB,CACA,GAAIoe,eAAe,CAAC1uC,KAAhB,GAA0BsF,GAA9B,CAAmC,CAClCopC,eAAe,CAAG,IAAIhxB,MAAJ,CAAWpY,GAAX,CAAlB,CAAmC;CACnCopC,eAAe,CAAC1uC,KAAhB,CAAwBsF,GAAxB,CACAmpC,gBAAgB,CAACC,eAAD,CAAkBC,QAAlB,CAA4B,gBAA5B,CAAhB,CACA,CACD,OAAOD,eAAP,CACA,CAXD,CAYA,CAED,SAASY,iCAAT,CAA2CX,QAA3C,CAAqD,CACpD,GAAI,CAACA,QAAD,EAAa,EAAE,OAAQA,QAAV,CAAjB,CAAsC,CACrCA,QAAQ,CAAGH,4BAAX,CACA,CACD,IAAIle,IAAI,CAAG,EAAIqe,QAAQ,CAACre,IAAxB,CACA,IAAI5vB,GAAG,CAAIiuC,QAAQ,CAACnkC,IAAT,EAAiBmkC,QAAQ,CAACnkC,IAAT,CAAcwuB,CAAhC,EAAsC2V,QAAQ,CAACpjB,EAAT,CAAY5qB,MAA5D,CACA,IAAI+tC,eAAe,CAAGprC,gBAAgB,CAAC,SAAD,CAAY5C,GAAZ,CAAtC,CACA,IAAI6uC,QAAQ,CAAGjsC,gBAAgB,CAAC,SAAD,CAAY5C,GAAZ,CAA/B,CACAguC,eAAe,CAAC1uC,KAAhB,CAAwBuvC,QAAxB,CACAd,gBAAgB,CAACC,eAAD,CAAkBC,QAAlB,CAA4B,kBAA5B,CAAhB,CAEA,iBAAmB,CAClB,GAAIA,QAAQ,CAAC/iC,CAAb,CAAgB,CACf+iC,QAAQ,CAACvd,QAAT,GACA,CACD,IAAK,IAAI3wB,CAAC,CAAG,CAAb,CAAgBA,CAAC,CAAGC,GAApB,CAAyBD,CAAC,EAAI,CAA9B,CAAiC,CAChC8uC,QAAQ,CAAC9uC,CAAD,CAAR,CAAckuC,QAAQ,CAACzmC,CAAT,CAAWzH,CAAX,EAAgB6vB,IAA9B,CACAoe,eAAe,CAACjuC,CAAD,CAAf,CAAqB8uC,QAAQ,CAAC9uC,CAAD,CAA7B,CACA,CACD,OAAOiuC,eAAP,CACA,CATD,CAUA,CAED;CACA,SAASc,aAAT,EAAyB,CACxB,OAAOjB,0BAAP,CACA,CAED,gBAAiBI,QAAV,CAAoB,CAC1B,GAAI,CAACA,QAAL,CAAe,CACd,OAAOa,aAAP,CACA,CAAC,GAAIb,QAAQ,CAACrjB,QAAT,GAAsB,gBAA1B,CAA4C,CAC7C,OAAO+jB,+BAA+B,CAACV,QAAD,CAAtC,CACA,CACD,OAAOW,iCAAiC,CAACX,QAAD,CAAxC,CACA,CAPD,CAQA,CA9FoC,EAArC,CAgGA,MAAMc,4BAA4B,CAAI,UAAY,CACjD,gBAAiBpW,SAAV,CAAqB,CAC3B,SAASqW,aAAT,CAAuBx4B,IAAvB,CAA6B,CAC5B,OAAQA,IAAR,EACC,IAAK,OAAL,CACA,IAAK,OAAL,CACA,IAAK,YAAL,CACA,MAAA,CACC,OAAOw4B,aAAa,CAAC7W,KAArB,CACD,IAAK,UAAL,CACA,IAAK,UAAL,CACA,IAAK,eAAL,CACA,IAAK,eAAL,CACA,OAAA,CACC,OAAO6W,aAAa,CAACC,QAArB,CACD,IAAK,eAAL,CACC,OAAOD,aAAa,CAACE,SAArB,CACD,IAAK,eAAL,CACC,OAAOF,aAAa,CAACG,SAArB,CACD,IAAK,UAAL,CACA,IAAK,UAAL,CACA,IAAK,eAAL,CACA,MAAA,CACC,OAAOH,aAAa,CAAC1pC,QAArB,CACD,IAAK,iBAAL,CACC,OAAO0pC,aAAa,CAACI,SAArB,CACD,IAAK,iBAAL,CACC,OAAOJ,aAAa,CAACK,SAArB,CACD,IAAK,iBAAL,CACC,OAAOL,aAAa,CAACM,SAArB,CACD,IAAK,aAAL,CACA,IAAK,aAAL,CACA,IAAK,cAAL,CACA,IAAK,kBAAL,CACA,MAAA,CACC,OAAON,aAAa,CAACO,WAArB,CACD,IAAK,SAAL,CACA,IAAK,SAAL,CACA,OAAA,CACC,OAAOP,aAAa,CAACQ,OAArB,CACD,QACC,WAAA,CAtCF,CAwCA,CACDnvC,MAAM,CAACitC,cAAP,CAAsB0B,aAAtB,CAAqC,UAArC,CAAiD,CAChD3rB,GAAG,CAAEuqB,2BAA2B,CAACjV,SAAS,CAAClxB,CAAV,EAAekxB,SAAS,CAAC+I,EAA1B,CADgB,CAAjD,EAIArhC,MAAM,CAACitC,cAAP,CAAsB0B,aAAtB,CAAqC,WAArC,CAAkD,CACjD3rB,GAAG,CAAEuqB,2BAA2B,CAACjV,SAAS,CAAC+I,EAAV,EAAgB/I,SAAS,CAAClxB,CAA3B,CADiB,CAAlD,EAIApH,MAAM,CAACitC,cAAP,CAAsB0B,aAAtB,CAAqC,WAArC,CAAkD,CACjD3rB,GAAG,CAAEuqB,2BAA2B,CAACjV,SAAS,CAACiJ,EAAX,CADiB,CAAlD,EAIAvhC,MAAM,CAACitC,cAAP,CAAsB0B,aAAtB,CAAqC,WAArC,CAAkD,CACjD3rB,GAAG,CAAEuqB,2BAA2B,CAACjV,SAAS,CAACgJ,EAAX,CADiB,CAAlD,EAGAthC,MAAM,CAACitC,cAAP,CAAsB0B,aAAtB,CAAqC,OAArC,CAA8C,CAC7C3rB,GAAG,CAAEuqB,2BAA2B,CAACjV,SAAS,CAACpxB,CAAX,CADa,CAA9C,EAGA,IAAIkoC,GAAJ,CACA,IAAIC,GAAJ,CACA,IAAIC,GAAJ,CACA,IAAIC,iBAAJ,CACA,GAAIjX,SAAS,CAAC9wB,CAAd,CAAiB,CAChB+nC,iBAAiB,CAAGhC,2BAA2B,CAACjV,SAAS,CAAC9wB,CAAX,CAA/C,CACA,CAFD,IAEO,CACN4nC,GAAG,CAAG7B,2BAA2B,CAACjV,SAAS,CAACkJ,EAAX,CAAjC,CACA6N,GAAG,CAAG9B,2BAA2B,CAACjV,SAAS,CAACmJ,EAAX,CAAjC,CACA,GAAInJ,SAAS,CAACoJ,EAAd,CAAkB,CACjB4N,GAAG,CAAG/B,2BAA2B,CAACjV,SAAS,CAACoJ,EAAX,CAAjC,CACA,CACD,CACD1hC,MAAM,CAACitC,cAAP,CAAsB0B,aAAtB,CAAqC,UAArC,CAAiD,CAChD3rB,GAAG,CAAE,UAAY,CAChB,GAAIsV,SAAS,CAAC9wB,CAAd,CAAiB,CAChB,OAAO+nC,iBAAiB,EAAxB,CACA,CACD,OAAO,CACNH,GAAG,EADG,CAENC,GAAG,EAFG,CAGNC,GAAG,CAAGA,GAAG,EAAN,CAAW,CAHR,CAAP,CAIA,CAT+C,CAAjD,EAYAtvC,MAAM,CAACitC,cAAP,CAAsB0B,aAAtB,CAAqC,WAArC,CAAkD,CACjD3rB,GAAG,CAAEuqB,2BAA2B,CAACjV,SAAS,CAACkJ,EAAX,CADiB,CAAlD,EAIAxhC,MAAM,CAACitC,cAAP,CAAsB0B,aAAtB,CAAqC,WAArC,CAAkD,CACjD3rB,GAAG,CAAEuqB,2BAA2B,CAACjV,SAAS,CAACmJ,EAAX,CADiB,CAAlD,EAIAzhC,MAAM,CAACitC,cAAP,CAAsB0B,aAAtB,CAAqC,WAArC,CAAkD,CACjD3rB,GAAG,CAAEuqB,2BAA2B,CAACjV,SAAS,CAACoJ,EAAX,CADiB,CAAlD,EAIA1hC,MAAM,CAACitC,cAAP,CAAsB0B,aAAtB,CAAqC,aAArC,CAAoD,CACnD3rB,GAAG,CAAEuqB,2BAA2B,CAACjV,SAAS,CAAC1qB,CAAX,CADmB,CAApD,EAIA5N,MAAM,CAACitC,cAAP,CAAsB0B,aAAtB,CAAqC,SAArC,CAAgD,CAC/C3rB,GAAG,CAAEuqB,2BAA2B,CAACjV,SAAS,CAAC7rB,CAAX,CADe,CAAhD,EAIAzM,MAAM,CAACitC,cAAP,CAAsB0B,aAAtB,CAAqC,MAArC,CAA6C,CAC5C3rB,GAAG,CAAEuqB,2BAA2B,CAACjV,SAAS,CAACzqB,EAAX,CADY,CAA7C,EAIA7N,MAAM,CAACitC,cAAP,CAAsB0B,aAAtB,CAAqC,UAArC,CAAiD,CAChD3rB,GAAG,CAAEuqB,2BAA2B,CAACjV,SAAS,CAACxqB,EAAX,CADgB,CAAjD,EAIA9N,MAAM,CAACitC,cAAP,CAAsB0B,aAAtB,CAAqC,aAArC,CAAoD,CACnD3rB,GAAG,CAAEuqB,2BAA2B,CAACjV,SAAS,CAACpD,EAAX,CADmB,CAApD,EAIA,OAAOyZ,aAAP,CACA,CAvHD,CAwHA,CAzHqC,EAAtC,CA2HA,MAAMa,wBAAwB,CAAI,UAAY,CAC7C,SAASC,SAAT,CAAmB75B,IAAnB,CAAyB,CACxB,IAAI85B,UAAU,CAAG,IAAI9Y,MAAJ,EAAjB,CACA,GAAIhhB,IAAI,GAAKyD,SAAb,CAAwB,CACvB,IAAIs2B,UAAU,CAAG,KAAKC,KAAL,CAAWxD,cAAX,CAA0BC,KAA1B,CAAgCnK,cAAhC,CAA+CtsB,IAA/C,CAAjB,CACA+5B,UAAU,CAACrd,KAAX,CAAiBod,UAAjB,EACA,CAHD,IAGO,CACN,IAAIG,YAAY,CAAG,KAAKD,KAAL,CAAWxD,cAAX,CAA0BC,KAA7C,CACAwD,YAAY,CAAC1O,aAAb,CAA2BuO,UAA3B,EACA,CACD,OAAOA,UAAP,CACA,CAED,SAASI,UAAT,CAAoBrtC,GAApB,CAAyBmT,IAAzB,CAA+B,CAC9B,IAAI85B,UAAU,CAAG,KAAKD,SAAL,CAAe75B,IAAf,CAAjB,CACA85B,UAAU,CAACxY,KAAX,CAAiB,EAAjB,EAAuB,CAAvB,CACAwY,UAAU,CAACxY,KAAX,CAAiB,EAAjB,EAAuB,CAAvB,CACAwY,UAAU,CAACxY,KAAX,CAAiB,EAAjB,EAAuB,CAAvB,CACA,YAAY6Y,UAAL,CAAgBL,UAAhB,CAA4BjtC,GAA5B,CAAP,CACA,CAED,SAASutC,OAAT,CAAiBvtC,GAAjB,CAAsBmT,IAAtB,CAA4B,CAC3B,IAAI85B,UAAU,CAAG,KAAKD,SAAL,CAAe75B,IAAf,CAAjB,CACA,YAAYm6B,UAAL,CAAgBL,UAAhB,CAA4BjtC,GAA5B,CAAP,CACA,CAED,SAASwtC,YAAT,CAAsBxtC,GAAtB,CAA2BmT,IAA3B,CAAiC,CAChC,IAAI85B,UAAU,CAAG,KAAKD,SAAL,CAAe75B,IAAf,CAAjB,CACA85B,UAAU,CAACxY,KAAX,CAAiB,EAAjB,EAAuB,CAAvB,CACAwY,UAAU,CAACxY,KAAX,CAAiB,EAAjB,EAAuB,CAAvB,CACAwY,UAAU,CAACxY,KAAX,CAAiB,EAAjB,EAAuB,CAAvB,CACA,YAAYgZ,WAAL,CAAiBR,UAAjB,CAA6BjtC,GAA7B,CAAP,CACA,CAED,SAAS0tC,SAAT,CAAmB1tC,GAAnB,CAAwBmT,IAAxB,CAA8B,CAC7B,IAAI85B,UAAU,CAAG,KAAKD,SAAL,CAAe75B,IAAf,CAAjB,CACA,YAAYs6B,WAAL,CAAiBR,UAAjB,CAA6BjtC,GAA7B,CAAP,CACA,CAED,SAASstC,UAAT,CAAoBhN,MAApB,CAA4BtgC,GAA5B,CAAiC,CAChC,GAAI,KAAKmtC,KAAL,CAAWQ,SAAX,EAAwB,KAAKR,KAAL,CAAWQ,SAAX,CAAqBxwC,MAAjD,CAAyD,CACxD,IAAIF,CAAJ,CACA,IAAIC,GAAG,CAAG,KAAKiwC,KAAL,CAAWQ,SAAX,CAAqBxwC,MAA/B,CACA,IAAKF,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B,KAAKkwC,KAAL,CAAWQ,SAAX,CAAqB1wC,CAArB,EAAwB0sC,cAAxB,CAAuCC,KAAvC,CAA6ClL,aAA7C,CAA2D4B,MAA3D,EACA,CACD,CACD,OAAOA,MAAM,CAAC7H,iBAAP,CAAyBz4B,GAAG,CAAC,CAAD,CAA5B,CAAiCA,GAAG,CAAC,CAAD,CAApC,CAAyCA,GAAG,CAAC,CAAD,CAAH,EAAU,CAAnD,CAAP,CACA,CAED,SAASytC,WAAT,CAAqBnN,MAArB,CAA6BtgC,GAA7B,CAAkC,CACjC,GAAI,KAAKmtC,KAAL,CAAWQ,SAAX,EAAwB,KAAKR,KAAL,CAAWQ,SAAX,CAAqBxwC,MAAjD,CAAyD,CACxD,IAAIF,CAAJ,CACA,IAAIC,GAAG,CAAG,KAAKiwC,KAAL,CAAWQ,SAAX,CAAqBxwC,MAA/B,CACA,IAAKF,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B,KAAKkwC,KAAL,CAAWQ,SAAX,CAAqB1wC,CAArB,EAAwB0sC,cAAxB,CAAuCC,KAAvC,CAA6ClL,aAA7C,CAA2D4B,MAA3D,EACA,CACD,CACD,OAAOA,MAAM,CAAC9H,YAAP,CAAoBx4B,GAApB,CAAP,CACA,CAED,SAAS4tC,QAAT,CAAkB5tC,GAAlB,CAAuB,CACtB,IAAIitC,UAAU,CAAG,IAAI9Y,MAAJ,EAAjB,CACA8Y,UAAU,CAAC3b,KAAX,GACA,KAAK6b,KAAL,CAAWxD,cAAX,CAA0BC,KAA1B,CAAgClL,aAAhC,CAA8CuO,UAA9C,EACA,GAAI,KAAKE,KAAL,CAAWQ,SAAX,EAAwB,KAAKR,KAAL,CAAWQ,SAAX,CAAqBxwC,MAAjD,CAAyD,CACxD,IAAIF,CAAJ,CACA,IAAIC,GAAG,CAAG,KAAKiwC,KAAL,CAAWQ,SAAX,CAAqBxwC,MAA/B,CACA,IAAKF,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B,KAAKkwC,KAAL,CAAWQ,SAAX,CAAqB1wC,CAArB,EAAwB0sC,cAAxB,CAAuCC,KAAvC,CAA6ClL,aAA7C,CAA2DuO,UAA3D,EACA,CACD,OAAOA,UAAU,CAACzU,YAAX,CAAwBx4B,GAAxB,CAAP,CACA,CACD,OAAOitC,UAAU,CAACzU,YAAX,CAAwBx4B,GAAxB,CAAP,CACA,CAED,SAAS6tC,WAAT,EAAuB,CACtB,OAAO,CAAC,CAAD,CAAI,CAAJ,CAAO,CAAP,CAAU,CAAV,CAAP,CACA,CAED,gBAAiBlxB,IAAV,CAAgB,CACtB,IAAImxB,kBAAJ,CAEA,SAASC,sBAAT,CAAgCrD,WAAhC,CAA6C,CAC5CsD,kBAAkB,CAAC3D,IAAnB,CAA0B,IAAIF,oBAAJ,CAAyBO,WAAzB,CAAsC/tB,IAAtC,CAA1B,CACA,CACD,SAASsxB,yBAAT,CAAmCC,OAAnC,CAA4C,CAC3CF,kBAAkB,CAACG,MAAnB,CAA4BD,OAA5B,CACA,CAED,SAASF,kBAAT,CAA4Bt6B,IAA5B,CAAkC,CACjC,OAAQA,IAAR,EACC,IAAK,yBAAL,CACA,IAAK,UAAL,CACA,MAAA,CACC,OAAOs6B,kBAAkB,CAACI,cAA1B,CACD,MAAA,CACA,MAAA,CACA,IAAK,WAAL,CACA,IAAK,WAAL,CACA,IAAK,sBAAL,CACC,OAAON,kBAAP,CACD,MAAA,CACA,IAAK,oBAAL,CACA,IAAK,SAAL,CACA,IAAK,SAAL,CACC,OAAOE,kBAAkB,CAACG,MAA1B,CACD,IAAK,sBAAL,CACC,OAAOH,kBAAkB,CAACK,aAA1B,CACD,QACC,WAAA,CAnBF,CAqBA,CACDL,kBAAkB,CAAChB,SAAnB,CAA+BA,SAA/B,CACAgB,kBAAkB,CAACP,WAAnB,CAAiCA,WAAjC,CACAO,kBAAkB,CAACV,UAAnB,CAAgCA,UAAhC,CACAU,kBAAkB,CAACT,OAAnB,CAA6BA,OAA7B,CACAS,kBAAkB,CAACX,UAAnB,CAAgCA,UAAhC,CACAW,kBAAkB,CAACN,SAAnB,CAA+BA,SAA/B,CACAM,kBAAkB,CAACR,YAAnB,CAAkCA,YAAlC,CACAQ,kBAAkB,CAACM,MAAnB,CAA4Bf,OAA5B,CACAS,kBAAkB,CAACJ,QAAnB,CAA8BA,QAA9B,CACAI,kBAAkB,CAACH,WAAnB,CAAiCA,WAAjC,CACAG,kBAAkB,CAAChE,gBAAnB,CAAsCrtB,IAAI,CAACqtB,gBAAL,CAAsB35B,IAAtB,CAA2BsM,IAA3B,CAAtC,CACAqxB,kBAAkB,CAACb,KAAnB,CAA2BxwB,IAA3B,CACAmxB,kBAAkB,CAAG7B,4BAA4B,CAACtvB,IAAI,CAACgtB,cAAL,CAAoBC,KAArB,CAAjD,CACA,IAAI2E,qBAAqB,CAAG7wC,aAAa,CAACowC,kBAAD,CAAqB,aAArB,CAAzC,CACAvwC,MAAM,CAACixC,gBAAP,CAAwBR,kBAAxB,CAA4C,CAC3CS,SAAS,CAAE,CACVluB,GAAG,CAAE,UAAY,CAChB,OAAO5D,IAAI,CAACgxB,SAAL,CAAexwC,MAAtB,CACA,CAHS,CADgC,CAM3C8nC,MAAM,CAAE,CACP1kB,GAAG,CAAE,UAAY,CAChB,OAAO5D,IAAI,CAACgxB,SAAL,CAAe,CAAf,EAAkBe,cAAzB,CACA,CAHM,CANmC,CAW3CvC,QAAQ,CAAEzuC,aAAa,CAACowC,kBAAD,CAAqB,UAArB,CAXoB,CAY3CzY,KAAK,CAAE33B,aAAa,CAACowC,kBAAD,CAAqB,OAArB,CAZuB,CAa3CtrC,QAAQ,CAAE9E,aAAa,CAACowC,kBAAD,CAAqB,UAArB,CAboB,CAc3CpB,OAAO,CAAEhvC,aAAa,CAACowC,kBAAD,CAAqB,SAArB,CAdqB,CAe3CrB,WAAW,CAAE8B,qBAf8B,CAgB3CI,YAAY,CAAEJ,qBAhB6B,CAiB3C1Y,SAAS,CAAE,CACVtV,GAAG,CAAE,UAAY,CAChB,OAAOutB,kBAAP,CACA,CAHS,CAjBgC,CAsB3Cc,MAAM,CAAE,CACPruB,GAAG,CAAE,UAAY,CAChB,OAAO5D,IAAI,CAACqsB,SAAZ,CACA,CAHM,CAtBmC,CAA5C,EA6BAgF,kBAAkB,CAACa,SAAnB,CAA+BlyB,IAAI,CAAC3V,IAAL,CAAUiE,EAAzC,CACA+iC,kBAAkB,CAAClyB,KAAnB,CAA2Ba,IAAI,CAAC3V,IAAL,CAAU6hB,GAArC,CACAmlB,kBAAkB,CAACc,MAAnB,CAA4BnyB,IAAI,CAAC3V,IAAL,CAAUgC,KAAtC,CACAglC,kBAAkB,CAACr/B,MAAnB,CAA4BgO,IAAI,CAAC3V,IAAL,CAAU8B,EAAV,GAAiB,CAAjB,CAAqB6T,IAAI,CAAC3V,IAAL,CAAUxC,CAA/B,CAAmC,GAA/D,CACAwpC,kBAAkB,CAACt/B,KAAnB,CAA2BiO,IAAI,CAAC3V,IAAL,CAAU8B,EAAV,GAAiB,CAAjB,CAAqB6T,IAAI,CAAC3V,IAAL,CAAUqlB,CAA/B,CAAmC,GAA9D,CACA2hB,kBAAkB,CAACe,OAAnB,CAA6BpyB,IAAI,CAAC3V,IAAL,CAAU+D,EAAV,CAAe4R,IAAI,CAAClT,IAAL,CAAUgN,UAAV,CAAqB9B,SAAjE,CACAq5B,kBAAkB,CAACgB,QAAnB,CAA8BryB,IAAI,CAAC3V,IAAL,CAAUgE,EAAV,CAAe2R,IAAI,CAAClT,IAAL,CAAUgN,UAAV,CAAqB9B,SAAlE,CACAq5B,kBAAkB,CAACiB,KAAnB,CAA2BtyB,IAAI,CAAC3V,IAAL,CAAU+M,EAArC,CAEAi6B,kBAAkB,CAACkB,qBAAnB,CAA2CnB,sBAA3C,CACAC,kBAAkB,CAACmB,wBAAnB,CAA8ClB,yBAA9C,CACA,OAAOD,kBAAP,CACA,CAxFD,CAyFA,CAzKiC,EAAlC,CA2KA,MAAMoB,oBAAoB,CAAI,UAAY,CACzC,gBAAiBC,iBAAV,CAA6BC,mBAA7B,CAAkD,CACxD,gBAAiBxtC,GAAV,CAAe,CACrBA,GAAG,CAAGA,GAAG,GAAK8U,SAAR,CAAoB,CAApB,CAAwB9U,GAA9B,CACA,GAAIA,GAAG,EAAI,CAAX,CAAc,CACb,OAAOutC,iBAAP,CACA,CACD,OAAOC,mBAAmB,CAACxtC,GAAG,CAAG,CAAP,CAA1B,CACA,CAND,CAOA,CARD,CASA,CAV6B,EAA9B,CAYA,MAAMytC,iBAAiB,CAAI,UAAY,CACtC,gBAAiBC,YAAV,CAAwB5D,aAAxB,CAAuC,CAC7C,IAAIyD,iBAAiB,CAAG,CACvBJ,KAAK,CAAEO,YADgB,CAAxB,CAIA,SAASC,cAAT,CAAwB3tC,GAAxB,CAA6B,CAC5BA,GAAG,CAAGA,GAAG,GAAK8U,SAAR,CAAoB,CAApB,CAAwB9U,GAA9B,CACA,GAAIA,GAAG,EAAI,CAAX,CAAc,CACb,OAAOutC,iBAAP,CACA,CACD,OAAOzD,aAAa,CAAC9pC,GAAG,CAAG,CAAP,CAApB,CACA,CAED,OAAO2tC,cAAP,CACA,CAdD,CAeA,CAhB0B,EAA3B,CAkBA,MAAMC,0BAA0B,CAAI,UAAY,CAC/C,IAAIl/B,EAAE,CAAG,CACRm/B,sBAAsB,CAAEA,sBADhB,CAAT,CAIA,SAASA,sBAAT,CAAgChzB,IAAhC,CAAsCivB,aAAtC,CAAqD,CACpD,GAAIjvB,IAAI,CAACizB,cAAT,CAAyB,CACxB,IAAIC,cAAc,CAAG,EAArB,CACA,IAAIC,WAAW,CAAGnzB,IAAI,CAAC3V,IAAL,CAAU+oC,EAA5B,CACA,IAAI9yC,CAAJ,CACA,IAAIC,GAAG,CAAGyf,IAAI,CAACizB,cAAL,CAAoBC,cAApB,CAAmC1yC,MAA7C,CACA,IAAKF,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B4yC,cAAc,CAACrxC,IAAf,CAAoBwxC,oBAAoB,CAACF,WAAW,CAAC7yC,CAAD,CAAZ,CAAiB0f,IAAI,CAACizB,cAAL,CAAoBC,cAApB,CAAmC5yC,CAAnC,CAAjB,CAAwD2uC,aAAxD,CAAuEjvB,IAAvE,CAAxC,EACA,CAED,IAAIuxB,OAAO,CAAGvxB,IAAI,CAAC3V,IAAL,CAAU+oC,EAAV,EAAgB,EAA9B,CACA,IAAIE,cAAc,CAAG,SAAUv8B,IAAV,CAAgB,CACpCzW,CAAC,CAAG,CAAJ,CACAC,GAAG,CAAGgxC,OAAO,CAAC/wC,MAAd,CACA,MAAOF,CAAC,CAAGC,GAAX,CAAgB,CACf,GAAIwW,IAAI,GAAKw6B,OAAO,CAACjxC,CAAD,CAAP,CAAW8W,EAApB,EAA0BL,IAAI,GAAKw6B,OAAO,CAACjxC,CAAD,CAAP,CAAWizC,EAA9C,EAAoDx8B,IAAI,GAAKw6B,OAAO,CAACjxC,CAAD,CAAP,CAAW8kC,EAA5E,CAAgF,CAC/E,OAAO8N,cAAc,CAAC5yC,CAAD,CAArB,CACA,CACDA,CAAC,EAAI,CAAL,CACA,CACD,WAAA,CACA,CAVD,CAWAM,MAAM,CAACitC,cAAP,CAAsByF,cAAtB,CAAsC,eAAtC,CAAuD,CACtD1vB,GAAG,CAAE,UAAY,CAChB,OAAO2tB,OAAO,CAAC/wC,MAAf,CACA,CAHqD,CAAvD,EAKA,OAAO8yC,cAAP,CACA,CACD,WAAA,CACA,CAED,SAASD,oBAAT,CAA8BhpC,IAA9B,CAAoCi6B,QAApC,CAA8C2K,aAA9C,CAA6DjvB,IAA7D,CAAmE,CAClE,SAASszB,cAAT,CAAwBv8B,IAAxB,CAA8B,CAC7B,IAAIw6B,OAAO,CAAGlnC,IAAI,CAAC+oC,EAAnB,CACA,IAAI9yC,CAAC,CAAG,CAAR,CACA,IAAIC,GAAG,CAAGgxC,OAAO,CAAC/wC,MAAlB,CACA,MAAOF,CAAC,CAAGC,GAAX,CAAgB,CACf,GAAIwW,IAAI,GAAKw6B,OAAO,CAACjxC,CAAD,CAAP,CAAW8W,EAApB,EAA0BL,IAAI,GAAKw6B,OAAO,CAACjxC,CAAD,CAAP,CAAWizC,EAA9C,EAAoDx8B,IAAI,GAAKw6B,OAAO,CAACjxC,CAAD,CAAP,CAAW8kC,EAA5E,CAAgF,CAC/E,GAAImM,OAAO,CAACjxC,CAAD,CAAP,CAAW6L,EAAX,GAAkB,CAAtB,CAAyB,CACxB,OAAO+mC,cAAc,CAAC5yC,CAAD,CAArB,CACA,CACD,OAAO4yC,cAAc,CAAC5yC,CAAD,CAAd,EAAP,CACA,CACDA,CAAC,EAAI,CAAL,CACA,CACD,UAAU6V,KAAJ,EAAN,CACA,CACD,IAAI28B,cAAc,CAAGL,oBAAoB,CAACa,cAAD,CAAiBrE,aAAjB,CAAzC,CAEA,IAAIiE,cAAc,CAAG,EAArB,CACA,IAAI5yC,CAAJ,CACA,IAAIC,GAAG,CAAG8J,IAAI,CAAC+oC,EAAL,CAAQ5yC,MAAlB,CACA,IAAKF,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B,GAAI+J,IAAI,CAAC+oC,EAAL,CAAQ9yC,CAAR,EAAW6L,EAAX,GAAkB,CAAtB,CAAyB,CACxB+mC,cAAc,CAACrxC,IAAf,CAAoBwxC,oBAAoB,CAAChpC,IAAI,CAAC+oC,EAAL,CAAQ9yC,CAAR,CAAD,CAAagkC,QAAQ,CAAC4O,cAAT,CAAwB5yC,CAAxB,CAAb,CAAyCgkC,QAAQ,CAAC4O,cAAT,CAAwB5yC,CAAxB,EAA2B2uC,aAApE,CAAmFjvB,IAAnF,CAAxC,EACA,CAFD,IAEO,CACNkzB,cAAc,CAACrxC,IAAf,CAAoB2xC,oBAAoB,CAAClP,QAAQ,CAAC4O,cAAT,CAAwB5yC,CAAxB,CAAD,CAA6B+J,IAAI,CAAC+oC,EAAL,CAAQ9yC,CAAR,EAAW6L,EAAxC,CAA4C6T,IAA5C,CAAkD8yB,cAAlD,CAAxC,EACA,CACD,CAED,GAAIzoC,IAAI,CAACkpC,EAAL,GAAY,oBAAhB,CAAsC,CACrC3yC,MAAM,CAACitC,cAAP,CAAsByF,cAAtB,CAAsC,OAAtC,CAA+C,CAC9C1vB,GAAG,CAAE,UAAY,CAChB,OAAOsvB,cAAc,CAAC,CAAD,CAAd,EAAP,CACA,CAH6C,CAA/C,EAKA,CACDtyC,MAAM,CAACixC,gBAAP,CAAwByB,cAAxB,CAAwC,CACvCG,aAAa,CAAE,CACd7vB,GAAG,CAAE,UAAY,CAChB,OAAOvZ,IAAI,CAACqpC,EAAZ,CACA,CAHa,CADwB,CAMvCpB,KAAK,CAAE,CAAEzyC,KAAK,CAAEwK,IAAI,CAAC+M,EAAd,CANgC,CAOvC63B,aAAa,CAAE,CAAEpvC,KAAK,CAAEizC,cAAT,CAPwB,CAAxC,EASAQ,cAAc,CAACK,OAAf,CAAyBtpC,IAAI,CAACupC,EAAL,GAAY,CAArC,CACAN,cAAc,CAACrB,MAAf,CAAwBqB,cAAc,CAACK,OAAvC,CACA,OAAOL,cAAP,CACA,CAED,SAASE,oBAAT,CAA8B7tC,OAA9B,CAAuC3F,IAAvC,CAA6CggB,IAA7C,CAAmDivB,aAAnD,CAAkE,CACjE,IAAI4E,kBAAkB,CAAG1F,2BAA2B,CAACxoC,OAAO,CAACyC,CAAT,CAApD,CACA,SAASsqC,iBAAT,EAA6B,CAC5B,GAAI1yC,IAAI,GAAK,EAAb,CAAiB,CAChB,OAAOggB,IAAI,CAAClT,IAAL,CAAU0K,aAAV,CAAwB7R,OAAO,CAACyC,CAAR,CAAUL,CAAlC,CAAP,CACA,CACD,OAAO8rC,kBAAkB,EAAzB,CACA,CAED,GAAIluC,OAAO,CAACyC,CAAR,CAAU0rC,gBAAd,CAAgC,CAC/BnuC,OAAO,CAACyC,CAAR,CAAU0rC,gBAAV,CAA2BlB,iBAAiB,CAAC,EAAD,CAAK3D,aAAL,CAA5C,EACA,CAED,OAAOyD,iBAAP,CACA,CAED,OAAO7+B,EAAP,CACA,CAxGmC,EAApC,CA0GA,MAAMkgC,uBAAuB,CAAI,UAAY,CAC5C,gBAAiBjnC,IAAV,CAAgB,CACtB,SAASukC,kBAAT,CAA4Bt6B,IAA5B,CAAkC,CACjC,IAAIzW,CAAC,CAAG,CAAR,CACA,IAAIC,GAAG,CAAGuM,IAAI,CAAC1B,MAAL,CAAY5K,MAAtB,CACA,MAAOF,CAAC,CAAGC,GAAX,CAAgB,CACf,GAAIuM,IAAI,CAAC1B,MAAL,CAAY9K,CAAZ,EAAe8W,EAAf,GAAsBL,IAAtB,EAA8BjK,IAAI,CAAC1B,MAAL,CAAY9K,CAAZ,EAAe4rB,GAAf,GAAuBnV,IAAzD,CAA+D,CAC9D,OAAOjK,IAAI,CAACw3B,QAAL,CAAchkC,CAAd,EAAiByxC,cAAxB,CACA,CACDzxC,CAAC,EAAI,CAAL,CACA,CACD,WAAA,CACA;CACA,CACDM,MAAM,CAACitC,cAAP,CAAsBwD,kBAAtB,CAA0C,OAA1C,CAAmD,CAAExxC,KAAK,CAAEiN,IAAI,CAACzC,IAAL,CAAU+M,EAAnB,CAAnD,EACAi6B,kBAAkB,CAAC2C,KAAnB,CAA2B3C,kBAA3B,CACAA,kBAAkB,CAAC4C,WAAnB,CAAiC,CAAjC,CACA5C,kBAAkB,CAACr/B,MAAnB,CAA4BlF,IAAI,CAACzC,IAAL,CAAUxC,CAAV,EAAeiF,IAAI,CAACgN,UAAL,CAAgBo6B,QAAhB,CAAyBrsC,CAApE,CACAwpC,kBAAkB,CAACt/B,KAAnB,CAA2BjF,IAAI,CAACzC,IAAL,CAAUqlB,CAAV,EAAe5iB,IAAI,CAACgN,UAAL,CAAgBo6B,QAAhB,CAAyBxkB,CAAnE,CACA2hB,kBAAkB,CAAC4C,WAAnB,CAAiC,CAAjC,CACA5C,kBAAkB,CAAC8C,aAAnB,CAAmC,EAAIrnC,IAAI,CAACgN,UAAL,CAAgB9B,SAAvD,CACAq5B,kBAAkB,CAAC+C,gBAAnB,CAAsC,CAAtC,CACA/C,kBAAkB,CAACgD,SAAnB,CAA+BvnC,IAAI,CAAC1B,MAAL,CAAY5K,MAA3C,CACA,OAAO6wC,kBAAP,CACA,CAvBD,CAwBA,CAzBgC,EAAjC,CA2BA,MAAMiD,kBAAkB,CAEvB,UAAY,CACX,gBAAgBC,oBAAT,CAA8BphB,KAA9B,CAAqCqhB,IAArC,CAA2CvF,aAA3C,CAA0D,CAChE,IAAIhuC,IAAI,CAAGuzC,IAAI,CAACvnB,EAAhB,CAEA,SAASylB,iBAAT,CAA2BvtC,GAA3B,CAAgC,CAC/B,GAAIA,GAAG,GAAK,OAAR,EAAmBA,GAAG,GAAK,OAA3B,EAAsCA,GAAG,GAAK,MAA9C,EAAwDA,GAAG,GAAK,MAAhE,EAA0EA,GAAG,GAAK,mBAAlF,EAAyGA,GAAG,GAAK,CAArH,CAAwH,CACvH,OAAOutC,iBAAiB,CAACtoC,IAAzB,CACA,CACD,WAAA,CACA,CAED,IAAI0oC,cAAc,CAAGL,oBAAoB,CAACC,iBAAD,CAAoBzD,aAApB,CAAzC,CACAhuC,IAAI,CAAC6yC,gBAAL,CAAsBlB,iBAAiB,CAAC,MAAD,CAASE,cAAT,CAAvC,EACAlyC,MAAM,CAACixC,gBAAP,CAAwBa,iBAAxB,CAA2C,CAC1CtoC,IAAI,CAAE,CACLwZ,GAAG,CAAE,UAAY,CAChB,GAAI3iB,IAAI,CAACwK,CAAT,CAAY,CACXxK,IAAI,CAACgwB,QAAL,GACA,CACD,OAAOhwB,IAAP,CACA,CANI,CADoC,CAS1CkyB,KAAK,CAAE,CACNvP,GAAG,CAAE,UAAY,CAChB,GAAI3iB,IAAI,CAACwK,CAAT,CAAY,CACXxK,IAAI,CAACgwB,QAAL,GACA,CACD,OAAOhwB,IAAP,CACA,CANK,CATmC,CAiB1CqxC,KAAK,CAAE,CAAEzyC,KAAK,CAAEszB,KAAK,CAAC/b,EAAf,CAjBmC,CAkB1CguB,EAAE,CAAE,CAAEvlC,KAAK,CAAEszB,KAAK,CAACiS,EAAf,CAlBsC,CAmB1CqP,aAAa,CAAE,CAAE50C,KAAK,CAAEszB,KAAK,CAACiS,EAAf,CAnB2B,CAoB1CmO,EAAE,CAAE,CAAE1zC,KAAK,CAAEszB,KAAK,CAACogB,EAAf,CApBsC,CAqB1CtE,aAAa,CAAE,CAAEpvC,KAAK,CAAEovC,aAAT,CArB2B,CAA3C,EAuBA,OAAOyD,iBAAP,CACA,CApCD,CAqCA,CAtCD,EAFD,CA2CA,MAAMgC,wBAAwB,CAAI,UAAY,CAC7C,SAASC,eAAT,CAAyBpoC,MAAzB,CAAiCioC,IAAjC,CAAuCvF,aAAvC,CAAsD,CACrD,IAAI5rC,GAAG,CAAG,EAAV,CACA,IAAI/C,CAAJ,CACA,IAAIC,GAAG,CAAGgM,MAAM,CAAGA,MAAM,CAAC/L,MAAV,CAAmB,CAAnC,CACA,IAAKF,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B,GAAIiM,MAAM,CAACjM,CAAD,CAAN,CAAU6L,EAAV,GAAiB,IAArB,CAA2B,CAC1B9I,GAAG,CAACxB,IAAJ,CAAS+yC,qBAAqB,CAACroC,MAAM,CAACjM,CAAD,CAAP,CAAYk0C,IAAI,CAACl0C,CAAD,CAAhB,CAAqB2uC,aAArB,CAA9B,EACA,CAFD,QAEW1iC,MAAM,CAACjM,CAAD,CAAN,CAAU6L,EAAV,GAAiB,IAArB,CAA2B,CACjC9I,GAAG,CAACxB,IAAJ,CAASgzC,oBAAoB,CAACtoC,MAAM,CAACjM,CAAD,CAAP,CAAYk0C,IAAI,CAACl0C,CAAD,CAAhB,CAAqB2uC,aAArB,CAA7B,EACA,CAFM,QAEI1iC,MAAM,CAACjM,CAAD,CAAN,CAAU6L,EAAV,GAAiB,IAArB,CAA2B,CACjC9I,GAAG,CAACxB,IAAJ,CAASizC,sBAAsB,CAACvoC,MAAM,CAACjM,CAAD,CAAP,CAAYk0C,IAAI,CAACl0C,CAAD,CAAhB,CAAqB2uC,aAArB,CAA/B,EACA,CAFM,QAEI1iC,MAAM,CAACjM,CAAD,CAAN,CAAU6L,EAAV,GAAiB,IAArB,CAA2B,CACjC9I,GAAG,CAACxB,IAAJ,CAASkzC,oBAAoB,CAACxoC,MAAM,CAACjM,CAAD,CAAP,CAAYk0C,IAAI,CAACl0C,CAAD,CAAhB,CAAqB2uC,aAArB,CAA7B,EACA,CAFM,QAEI1iC,MAAM,CAACjM,CAAD,CAAN,CAAU6L,EAAV,GAAiB,IAArB,CAA2B,CAA3B,QAEII,MAAM,CAACjM,CAAD,CAAN,CAAU6L,EAAV,GAAiB,IAArB,CAA2B,CACjC9I,GAAG,CAACxB,IAAJ,CAASmzC,uBAAuB,CAACzoC,MAAM,CAACjM,CAAD,CAAP,CAAYk0C,IAAI,CAACl0C,CAAD,CAAhB,CAAqB2uC,aAArB,CAAhC,EACA,CAFM,QAEI1iC,MAAM,CAACjM,CAAD,CAAN,CAAU6L,EAAV,GAAiB,IAArB,CAA2B,CACjC9I,GAAG,CAACxB,IAAJ,CAASozC,oBAAoB,CAAC1oC,MAAM,CAACjM,CAAD,CAAP,CAAYk0C,IAAI,CAACl0C,CAAD,CAAhB,CAAqB2uC,aAArB,CAA7B,EACA,CAFM,QAEI1iC,MAAM,CAACjM,CAAD,CAAN,CAAU6L,EAAV,GAAiB,IAArB,CAA2B,CACjC9I,GAAG,CAACxB,IAAJ,CAASyyC,kBAAkB,CAAC/nC,MAAM,CAACjM,CAAD,CAAP,CAAYk0C,IAAI,CAACl0C,CAAD,CAAhB,CAAqB2uC,aAArB,CAA3B,EACA,CAFM,QAEI1iC,MAAM,CAACjM,CAAD,CAAN,CAAU6L,EAAV,GAAiB,IAArB,CAA2B,CACjC9I,GAAG,CAACxB,IAAJ,CAASqzC,oBAAoB,CAAC3oC,MAAM,CAACjM,CAAD,CAAP,CAAYk0C,IAAI,CAACl0C,CAAD,CAAhB,CAAqB2uC,aAArB,CAA7B,EACA,CAFM,QAEI1iC,MAAM,CAACjM,CAAD,CAAN,CAAU6L,EAAV,GAAiB,IAArB,CAA2B,CACjC9I,GAAG,CAACxB,IAAJ,CAASszC,uBAAuB,CAAC5oC,MAAM,CAACjM,CAAD,CAAP,CAAYk0C,IAAI,CAACl0C,CAAD,CAAhB,CAAqB2uC,aAArB,CAAhC,EACA,CAFM,QAEI1iC,MAAM,CAACjM,CAAD,CAAN,CAAU6L,EAAV,GAAiB,IAArB,CAA2B,CACjC9I,GAAG,CAACxB,IAAJ,CAASuzC,wBAAwB,CAAC7oC,MAAM,CAACjM,CAAD,CAAP,CAAYk0C,IAAI,CAACl0C,CAAD,CAAhB,CAAqB2uC,aAArB,CAAjC,EACA,CAFM,QAEI1iC,MAAM,CAACjM,CAAD,CAAN,CAAU6L,EAAV,GAAiB,IAArB,CAA2B,CACjC9I,GAAG,CAACxB,IAAJ,CAASwzC,4BAA4B,CAAC9oC,MAAM,CAACjM,CAAD,CAAP,CAAYk0C,IAAI,CAACl0C,CAAD,CAAhB,CAAqB2uC,aAArB,CAArC,EACA,CAFM,IAEA,CACN5rC,GAAG,CAACxB,IAAJ,CAASyzC,uBAAuB,CAAC/oC,MAAM,CAACjM,CAAD,CAAP,CAAYk0C,IAAI,CAACl0C,CAAD,CAAhB,CAAqB2uC,aAArB,CAAhC,EACA,CACD,CACD,OAAO5rC,GAAP,CACA,CAED,SAASkyC,wBAAT,CAAkCpiB,KAAlC,CAAyCqhB,IAAzC,CAA+CvF,aAA/C,CAA8D,CAC7D,IAAIuG,UAAJ,CACA,IAAI9C,iBAAiB,CAAG,SAAS+C,kBAAT,CAA4B51C,KAA5B,CAAmC,CAC1D,IAAIS,CAAC,CAAG,CAAR,CACA,IAAIC,GAAG,CAAGi1C,UAAU,CAACh1C,MAArB,CACA,MAAOF,CAAC,CAAGC,GAAX,CAAgB,CACf,GAAIi1C,UAAU,CAACl1C,CAAD,CAAV,CAAcgyC,KAAd,GAAwBzyC,KAAxB,EAAiC21C,UAAU,CAACl1C,CAAD,CAAV,CAAcizC,EAAd,GAAqB1zC,KAAtD,EAA+D21C,UAAU,CAACl1C,CAAD,CAAV,CAAcm0C,aAAd,GAAgC50C,KAA/F,EAAwG21C,UAAU,CAACl1C,CAAD,CAAV,CAAc8kC,EAAd,GAAqBvlC,KAA7H,EAAsI21C,UAAU,CAACl1C,CAAD,CAAV,CAAc4rB,GAAd,GAAsBrsB,KAAhK,CAAuK,CACtK,OAAO21C,UAAU,CAACl1C,CAAD,CAAjB,CACA,CACDA,CAAC,EAAI,CAAL,CACA,CACD,GAAI,OAAOT,KAAP,GAAiB,QAArB,CAA+B,CAC9B,OAAO21C,UAAU,CAAC31C,KAAK,CAAG,CAAT,CAAjB,CACA,CACD,WAAA,CACA,CAbD,CAeA6yC,iBAAiB,CAACzD,aAAlB,CAAkCwD,oBAAoB,CAACC,iBAAD,CAAoBzD,aAApB,CAAtD,CACAuG,UAAU,CAAGb,eAAe,CAACxhB,KAAK,CAAC/lB,EAAP,CAAWonC,IAAI,CAACpnC,EAAhB,CAAoBslC,iBAAiB,CAACzD,aAAtC,CAA5B,CACAyD,iBAAiB,CAACe,aAAlB,CAAkC+B,UAAU,CAACh1C,MAA7C,CACA,IAAI2wC,kBAAkB,CAAGuE,yBAAyB,CAACviB,KAAK,CAAC/lB,EAAN,CAAS+lB,KAAK,CAAC/lB,EAAN,CAAS5M,MAAT,CAAkB,CAA3B,CAAD,CAAgCg0C,IAAI,CAACpnC,EAAL,CAAQonC,IAAI,CAACpnC,EAAL,CAAQ5M,MAAR,CAAiB,CAAzB,CAAhC,CAA6DkyC,iBAAiB,CAACzD,aAA/E,CAAlD,CACAyD,iBAAiB,CAACxZ,SAAlB,CAA8BiY,kBAA9B,CACAuB,iBAAiB,CAAC+B,aAAlB,CAAkCthB,KAAK,CAACwiB,GAAxC,CACAjD,iBAAiB,CAACJ,KAAlB,CAA0Bnf,KAAK,CAAC/b,EAAhC,CAEA,OAAOs7B,iBAAP,CACA,CAED,SAASkC,qBAAT,CAA+BzhB,KAA/B,CAAsCqhB,IAAtC,CAA4CvF,aAA5C,CAA2D,CAC1D,IAAIyD,iBAAiB,CAAG,SAAS+C,kBAAT,CAA4B51C,KAA5B,CAAmC,CAC1D,OAAQA,KAAR,EACC,IAAK,oBAAL,CACA,IAAK,UAAL,CACA,MAAA,CACC,OAAO6yC,iBAAiB,CAACkD,OAAzB,CACD;CACA;CACA;CACA,QACC,OAAOlD,iBAAiB,CAACxZ,SAAzB,CATF,CAWA,CAZD,CAaAwZ,iBAAiB,CAACzD,aAAlB,CAAkCwD,oBAAoB,CAACC,iBAAD,CAAoBzD,aAApB,CAAtD,CACA,IAAI2G,OAAO,CAAGL,wBAAwB,CAACpiB,KAAD,CAAQqhB,IAAR,CAAc9B,iBAAiB,CAACzD,aAAhC,CAAtC,CACA,IAAIkC,kBAAkB,CAAGuE,yBAAyB,CAACviB,KAAK,CAAC/lB,EAAN,CAAS+lB,KAAK,CAAC/lB,EAAN,CAAS5M,MAAT,CAAkB,CAA3B,CAAD,CAAgCg0C,IAAI,CAACpnC,EAAL,CAAQonC,IAAI,CAACpnC,EAAL,CAAQ5M,MAAR,CAAiB,CAAzB,CAAhC,CAA6DkyC,iBAAiB,CAACzD,aAA/E,CAAlD,CACAyD,iBAAiB,CAACkD,OAAlB,CAA4BA,OAA5B,CACAlD,iBAAiB,CAACxZ,SAAlB,CAA8BiY,kBAA9B,CACAvwC,MAAM,CAACitC,cAAP,CAAsB6E,iBAAtB,CAAyC,OAAzC,CAAkD,CACjD9uB,GAAG,CAAE,UAAY,CAChB,OAAOuP,KAAK,CAAC/b,EAAb,CACA,CAHgD,CAAlD,EAKA;CACAs7B,iBAAiB,CAACe,aAAlB,CAAkCtgB,KAAK,CAACugB,EAAxC,CACAhB,iBAAiB,CAAC+B,aAAlB,CAAkCthB,KAAK,CAACiS,EAAxC,CACAsN,iBAAiB,CAACt7B,EAAlB,CAAuB+b,KAAK,CAAC/b,EAA7B,CACAs7B,iBAAiB,CAACa,EAAlB,CAAuBpgB,KAAK,CAACogB,EAA7B,CACA,OAAOb,iBAAP,CACA,CAED,SAASmC,oBAAT,CAA8B1hB,KAA9B,CAAqCqhB,IAArC,CAA2CvF,aAA3C,CAA0D,CACzD,SAASyD,iBAAT,CAA2BvtC,GAA3B,CAAgC,CAC/B,GAAIA,GAAG,GAAK,OAAR,EAAmBA,GAAG,GAAK,OAA/B,CAAwC,CACvC,OAAOutC,iBAAiB,CAAChqC,KAAzB,CACA,CAAC,GAAIvD,GAAG,GAAK,SAAR,EAAqBA,GAAG,GAAK,SAAjC,CAA4C,CAC7C,OAAOutC,iBAAiB,CAAC3C,OAAzB,CACA,CACD,WAAA,CACA,CACDnvC,MAAM,CAACixC,gBAAP,CAAwBa,iBAAxB,CAA2C,CAC1ChqC,KAAK,CAAE,CACNkb,GAAG,CAAEuqB,2BAA2B,CAACqG,IAAI,CAACzlC,CAAN,CAD1B,CADmC,CAI1CghC,OAAO,CAAE,CACRnsB,GAAG,CAAEuqB,2BAA2B,CAACqG,IAAI,CAACnnC,CAAN,CADxB,CAJiC,CAO1CilC,KAAK,CAAE,CAAEzyC,KAAK,CAAEszB,KAAK,CAAC/b,EAAf,CAPmC,CAQ1Cm8B,EAAE,CAAE,CAAE1zC,KAAK,CAAEszB,KAAK,CAACogB,EAAf,CARsC,CAA3C,EAWAiB,IAAI,CAACzlC,CAAL,CAAO+kC,gBAAP,CAAwBlB,iBAAiB,CAAC,OAAD,CAAU3D,aAAV,CAAzC,EACAuF,IAAI,CAACnnC,CAAL,CAAOymC,gBAAP,CAAwBlB,iBAAiB,CAAC,SAAD,CAAY3D,aAAZ,CAAzC,EACA,OAAOyD,iBAAP,CACA,CAED,SAAS2C,4BAAT,CAAsCliB,KAAtC,CAA6CqhB,IAA7C,CAAmDvF,aAAnD,CAAkE,CACjE,SAASyD,iBAAT,CAA2BvtC,GAA3B,CAAgC,CAC/B,GAAIA,GAAG,GAAK,aAAR,EAAyBA,GAAG,GAAK,aAArC,CAAoD,CACnD,OAAOutC,iBAAiB,CAACmD,UAAzB,CACA,CACD,GAAI1wC,GAAG,GAAK,WAAR,EAAuBA,GAAG,GAAK,WAAnC,CAAgD,CAC/C,OAAOutC,iBAAiB,CAACoD,QAAzB,CACA,CACD,GAAI3wC,GAAG,GAAK,SAAR,EAAqBA,GAAG,GAAK,SAAjC,CAA4C,CAC3C,OAAOutC,iBAAiB,CAAC3C,OAAzB,CACA,CACD,WAAA,CACA,CACDnvC,MAAM,CAACixC,gBAAP,CAAwBa,iBAAxB,CAA2C,CAC1CmD,UAAU,CAAE,CACXjyB,GAAG,CAAEuqB,2BAA2B,CAACqG,IAAI,CAAC1sC,CAAN,CADrB,CAD8B,CAI1CguC,QAAQ,CAAE,CACTlyB,GAAG,CAAEuqB,2BAA2B,CAACqG,IAAI,CAACvpC,CAAN,CADvB,CAJgC,CAO1C8kC,OAAO,CAAE,CACRnsB,GAAG,CAAEuqB,2BAA2B,CAACqG,IAAI,CAACnnC,CAAN,CADxB,CAPiC,CAU1CrN,IAAI,CAAE,CACL4jB,GAAG,CAAE,UAAY,CAChB,OAAO,GAAP,CACA,CAHI,CAVoC,CAe1C0uB,KAAK,CAAE,CAAEzyC,KAAK,CAAEszB,KAAK,CAAC/b,EAAf,CAfmC,CAgB1Cm8B,EAAE,CAAE,CAAE1zC,KAAK,CAAEszB,KAAK,CAACogB,EAAf,CAhBsC,CAA3C,EAmBAiB,IAAI,CAAC1sC,CAAL,CAAOgsC,gBAAP,CAAwBlB,iBAAiB,CAAC,aAAD,CAAgB3D,aAAhB,CAAzC,EACAuF,IAAI,CAACvpC,CAAL,CAAO6oC,gBAAP,CAAwBlB,iBAAiB,CAAC,WAAD,CAAc3D,aAAd,CAAzC,EACAuF,IAAI,CAACnnC,CAAL,CAAOymC,gBAAP,CAAwBlB,iBAAiB,CAAC,SAAD,CAAY3D,aAAZ,CAAzC,EACA,OAAOyD,iBAAP,CACA,CACD,SAAS4C,uBAAT,EAAmC,CAClC,SAAS5C,iBAAT,EAA6B,CAC5B,WAAA,CACA,CACD,OAAOA,iBAAP,CACA,CAED,SAASoC,sBAAT,CAAgC3hB,KAAhC,CAAuCqhB,IAAvC,CAA6CvF,aAA7C,CAA4D,CAC3D,IAAI6D,cAAc,CAAGL,oBAAoB,CAACC,iBAAD,CAAoBzD,aAApB,CAAzC,CACA,IAAI8G,kBAAkB,CAAGtD,oBAAoB,CAACuD,MAAD,CAASlD,cAAT,CAA7C,CACA,SAASmD,mBAAT,CAA6B31C,CAA7B,CAAgC,CAC/BM,MAAM,CAACitC,cAAP,CAAsBmI,MAAtB,CAA8B7iB,KAAK,CAAC3qB,CAAN,CAAQlI,CAAR,EAAW8W,EAAzC,CAA6C,CAC5CwM,GAAG,CAAEuqB,2BAA2B,CAACqG,IAAI,CAAChsC,CAAL,CAAO0tC,SAAP,CAAiB51C,CAAjB,EAAoB8H,CAArB,CADY,CAA7C,EAGA,CACD,IAAI9H,CAAJ,CACA,IAAIC,GAAG,CAAG4yB,KAAK,CAAC3qB,CAAN,CAAU2qB,KAAK,CAAC3qB,CAAN,CAAQhI,MAAlB,CAA2B,CAArC,CACA,IAAIw1C,MAAM,CAAG,EAAb,CACA,IAAK11C,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B21C,mBAAmB,CAAC31C,CAAD,CAAnB,CACAk0C,IAAI,CAAChsC,CAAL,CAAO0tC,SAAP,CAAiB51C,CAAjB,EAAoB8H,CAApB,CAAsB0rC,gBAAtB,CAAuCiC,kBAAvC,EACA,CAED,SAASrD,iBAAT,CAA2BvtC,GAA3B,CAAgC,CAC/B,GAAIA,GAAG,GAAK,OAAR,EAAmBA,GAAG,GAAK,OAA/B,CAAwC,CACvC,OAAOutC,iBAAiB,CAAChqC,KAAzB,CACA,CAAC,GAAIvD,GAAG,GAAK,SAAR,EAAqBA,GAAG,GAAK,SAAjC,CAA4C,CAC7C,OAAOutC,iBAAiB,CAAC3C,OAAzB,CACA,CAAC,GAAI5qC,GAAG,GAAK,cAAR,EAA0BA,GAAG,GAAK,cAAtC,CAAsD,CACvD,OAAOutC,iBAAiB,CAACyD,WAAzB,CACA,CACD,WAAA,CACA,CACDv1C,MAAM,CAACixC,gBAAP,CAAwBa,iBAAxB,CAA2C,CAC1ChqC,KAAK,CAAE,CACNkb,GAAG,CAAEuqB,2BAA2B,CAACqG,IAAI,CAACzlC,CAAN,CAD1B,CADmC,CAI1CghC,OAAO,CAAE,CACRnsB,GAAG,CAAEuqB,2BAA2B,CAACqG,IAAI,CAACnnC,CAAN,CADxB,CAJiC,CAO1C8oC,WAAW,CAAE,CACZvyB,GAAG,CAAEuqB,2BAA2B,CAACqG,IAAI,CAAC9kB,CAAN,CADpB,CAP6B,CAU1C0mB,IAAI,CAAE,CACLxyB,GAAG,CAAE,UAAY,CAChB,OAAOoyB,MAAP,CACA,CAHI,CAVoC,CAe1C1D,KAAK,CAAE,CAAEzyC,KAAK,CAAEszB,KAAK,CAAC/b,EAAf,CAfmC,CAgB1Cm8B,EAAE,CAAE,CAAE1zC,KAAK,CAAEszB,KAAK,CAACogB,EAAf,CAhBsC,CAA3C,EAmBAiB,IAAI,CAACzlC,CAAL,CAAO+kC,gBAAP,CAAwBlB,iBAAiB,CAAC,OAAD,CAAUE,cAAV,CAAzC,EACA0B,IAAI,CAACnnC,CAAL,CAAOymC,gBAAP,CAAwBlB,iBAAiB,CAAC,SAAD,CAAYE,cAAZ,CAAzC,EACA0B,IAAI,CAAC9kB,CAAL,CAAOokB,gBAAP,CAAwBlB,iBAAiB,CAAC,cAAD,CAAiBE,cAAjB,CAAzC,EACA,OAAOJ,iBAAP,CACA,CAED,SAASqC,oBAAT,CAA8B5hB,KAA9B,CAAqCqhB,IAArC,CAA2CvF,aAA3C,CAA0D,CACzD,SAASyD,iBAAT,CAA2BvtC,GAA3B,CAAgC,CAC/B,GAAIA,GAAG,GAAKguB,KAAK,CAACloB,CAAN,CAAQm6B,EAAhB,EAAsBjgC,GAAG,GAAK,KAA9B,EAAuCA,GAAG,GAAK,KAAnD,CAA0D,CACzD,OAAOutC,iBAAiB,CAACr0B,GAAzB,CACA,CACD,GAAIlZ,GAAG,GAAKguB,KAAK,CAACrrB,CAAN,CAAQs9B,EAApB,CAAwB,CACvB,OAAOsN,iBAAiB,CAAC2D,KAAzB,CACA,CACD,GAAIlxC,GAAG,GAAKguB,KAAK,CAAC9lB,CAAN,CAAQ+3B,EAApB,CAAwB,CACvB,OAAOsN,iBAAiB,CAAC/pC,MAAzB,CACA,CACD,WAAA,CACA,CAED,IAAImqC,cAAc,CAAGL,oBAAoB,CAACC,iBAAD,CAAoBzD,aAApB,CAAzC,CACAyD,iBAAiB,CAAC+B,aAAlB,CAAkCthB,KAAK,CAACiS,EAAxC,CAEAoP,IAAI,CAAC1sC,CAAL,CAAOgsC,gBAAP,CAAwBlB,iBAAiB,CAAC,OAAD,CAAUE,cAAV,CAAzC,EACA0B,IAAI,CAACvpC,CAAL,CAAO6oC,gBAAP,CAAwBlB,iBAAiB,CAAC,KAAD,CAAQE,cAAR,CAAzC,EACA0B,IAAI,CAACnnC,CAAL,CAAOymC,gBAAP,CAAwBlB,iBAAiB,CAAC,QAAD,CAAWE,cAAX,CAAzC,EACAJ,iBAAiB,CAAC+B,aAAlB,CAAkCthB,KAAK,CAACiS,EAAxC,CACAsN,iBAAiB,CAACzD,aAAlB,CAAkCA,aAAlC,CAEAruC,MAAM,CAACixC,gBAAP,CAAwBa,iBAAxB,CAA2C,CAC1C2D,KAAK,CAAE,CACNzyB,GAAG,CAAEuqB,2BAA2B,CAACqG,IAAI,CAAC1sC,CAAN,CAD1B,CADmC,CAI1CuW,GAAG,CAAE,CACJuF,GAAG,CAAEuqB,2BAA2B,CAACqG,IAAI,CAACvpC,CAAN,CAD5B,CAJqC,CAO1CtC,MAAM,CAAE,CACPib,GAAG,CAAEuqB,2BAA2B,CAACqG,IAAI,CAACnnC,CAAN,CADzB,CAPkC,CAU1CilC,KAAK,CAAE,CAAEzyC,KAAK,CAAEszB,KAAK,CAAC/b,EAAf,CAVmC,CAA3C,EAYAs7B,iBAAiB,CAACa,EAAlB,CAAuBpgB,KAAK,CAACogB,EAA7B,CACA,OAAOb,iBAAP,CACA,CAED,SAASgD,yBAAT,CAAmCviB,KAAnC,CAA0CqhB,IAA1C,CAAgDvF,aAAhD,CAA+D,CAC9D,SAASyD,iBAAT,CAA2B7yC,KAA3B,CAAkC,CACjC,GAAIszB,KAAK,CAAC3kB,CAAN,CAAQ42B,EAAR,GAAevlC,KAAf,EAAwBA,KAAK,GAAK,cAAtC,CAAsD,CACrD,OAAO6yC,iBAAiB,CAAC5C,WAAzB,CACA,CACD,GAAI3c,KAAK,CAAC9lB,CAAN,CAAQ+3B,EAAR,GAAevlC,KAAf,EAAwBA,KAAK,GAAK,SAAtC,CAAiD,CAChD,OAAO6yC,iBAAiB,CAAC3C,OAAzB,CACA,CACD,GAAI5c,KAAK,CAAC/qB,CAAN,CAAQg9B,EAAR,GAAevlC,KAAf,EAAwBA,KAAK,GAAK,UAAtC,CAAkD,CACjD,OAAO6yC,iBAAiB,CAAC7sC,QAAzB,CACA,CACD,GAAIstB,KAAK,CAACnrB,CAAN,CAAQo9B,EAAR,GAAevlC,KAAf,EAAwBA,KAAK,GAAK,UAAlC,EAAgDA,KAAK,GAAK,sBAA9D,CAAsF,CACrF,OAAO6yC,iBAAiB,CAAClD,QAAzB,CACA,CACD,GAAIrc,KAAK,CAACrrB,CAAN,CAAQs9B,EAAR,GAAevlC,KAAf,EAAwBA,KAAK,GAAK,OAAtC,CAA+C,CAC9C,OAAO6yC,iBAAiB,CAACha,KAAzB,CACA,CACD,GAAKvF,KAAK,CAAC1kB,EAAN,EAAY0kB,KAAK,CAAC1kB,EAAN,CAAS22B,EAAT,GAAgBvlC,KAA7B,EAAuCA,KAAK,GAAK,MAArD,CAA6D,CAC5D,OAAO6yC,iBAAiB,CAACla,IAAzB,CACA,CACD,GAAKrF,KAAK,CAACzkB,EAAN,EAAYykB,KAAK,CAACzkB,EAAN,CAAS02B,EAAT,GAAgBvlC,KAA7B,EAAuCA,KAAK,GAAK,WAArD,CAAkE,CACjE,OAAO6yC,iBAAiB,CAAC4D,QAAzB,CACA,CACD,WAAA,CACA,CACD,IAAIxD,cAAc,CAAGL,oBAAoB,CAACC,iBAAD,CAAoBzD,aAApB,CAAzC,CACAuF,IAAI,CAACtb,SAAL,CAAe4M,MAAf,CAAsBz4B,CAAtB,CAAwBymC,gBAAxB,CAAyClB,iBAAiB,CAAC,SAAD,CAAYE,cAAZ,CAA1D,EACA0B,IAAI,CAACtb,SAAL,CAAe4M,MAAf,CAAsB19B,CAAtB,CAAwB0rC,gBAAxB,CAAyClB,iBAAiB,CAAC,UAAD,CAAaE,cAAb,CAA1D,EACA0B,IAAI,CAACtb,SAAL,CAAe4M,MAAf,CAAsBt3B,CAAtB,CAAwBslC,gBAAxB,CAAyClB,iBAAiB,CAAC,cAAD,CAAiBE,cAAjB,CAA1D,EACA0B,IAAI,CAACtb,SAAL,CAAe4M,MAAf,CAAsBh+B,CAAtB,CAAwBgsC,gBAAxB,CAAyClB,iBAAiB,CAAC,OAAD,CAAUE,cAAV,CAA1D,EACA0B,IAAI,CAACtb,SAAL,CAAe4M,MAAf,CAAsB99B,CAAtB,CAAwB8rC,gBAAxB,CAAyClB,iBAAiB,CAAC,UAAD,CAAaE,cAAb,CAA1D,EACA,GAAI0B,IAAI,CAACtb,SAAL,CAAe4M,MAAf,CAAsBr3B,EAA1B,CAA8B,CAC7B+lC,IAAI,CAACtb,SAAL,CAAe4M,MAAf,CAAsBr3B,EAAtB,CAAyBqlC,gBAAzB,CAA0ClB,iBAAiB,CAAC,MAAD,CAASE,cAAT,CAA3D,EACA0B,IAAI,CAACtb,SAAL,CAAe4M,MAAf,CAAsBp3B,EAAtB,CAAyBolC,gBAAzB,CAA0ClB,iBAAiB,CAAC,YAAD,CAAeE,cAAf,CAA3D,EACA,CACD0B,IAAI,CAACtb,SAAL,CAAe7qB,EAAf,CAAkBylC,gBAAlB,CAAmClB,iBAAiB,CAAC,SAAD,CAAYE,cAAZ,CAApD,EACAlyC,MAAM,CAACixC,gBAAP,CAAwBa,iBAAxB,CAA2C,CAC1C3C,OAAO,CAAE,CACRnsB,GAAG,CAAEuqB,2BAA2B,CAACqG,IAAI,CAACtb,SAAL,CAAe4M,MAAf,CAAsBz4B,CAAvB,CADxB,CADiC,CAI1CxH,QAAQ,CAAE,CACT+d,GAAG,CAAEuqB,2BAA2B,CAACqG,IAAI,CAACtb,SAAL,CAAe4M,MAAf,CAAsB19B,CAAvB,CADvB,CAJgC,CAO1C0nC,WAAW,CAAE,CACZlsB,GAAG,CAAEuqB,2BAA2B,CAACqG,IAAI,CAACtb,SAAL,CAAe4M,MAAf,CAAsBt3B,CAAvB,CADpB,CAP6B,CAU1CkqB,KAAK,CAAE,CACN9U,GAAG,CAAEuqB,2BAA2B,CAACqG,IAAI,CAACtb,SAAL,CAAe4M,MAAf,CAAsBh+B,CAAvB,CAD1B,CAVmC,CAa1C0nC,QAAQ,CAAE,CACT5rB,GAAG,CAAEuqB,2BAA2B,CAACqG,IAAI,CAACtb,SAAL,CAAe4M,MAAf,CAAsB99B,CAAvB,CADvB,CAbgC,CAgB1CwwB,IAAI,CAAE,CACL5U,GAAG,CAAEuqB,2BAA2B,CAACqG,IAAI,CAACtb,SAAL,CAAe4M,MAAf,CAAsBr3B,EAAvB,CAD3B,CAhBoC,CAmB1C6nC,QAAQ,CAAE,CACT1yB,GAAG,CAAEuqB,2BAA2B,CAACqG,IAAI,CAACtb,SAAL,CAAe4M,MAAf,CAAsBp3B,EAAvB,CADvB,CAnBgC,CAsB1C4jC,KAAK,CAAE,CAAEzyC,KAAK,CAAEszB,KAAK,CAAC/b,EAAf,CAtBmC,CAA3C,EAwBAs7B,iBAAiB,CAACvmC,EAAlB,CAAuB,IAAvB,CACAumC,iBAAiB,CAACa,EAAlB,CAAuBpgB,KAAK,CAACogB,EAA7B,CACAb,iBAAiB,CAACzD,aAAlB,CAAkCA,aAAlC,CACA,OAAOyD,iBAAP,CACA,CAED,SAASsC,uBAAT,CAAiC7hB,KAAjC,CAAwCqhB,IAAxC,CAA8CvF,aAA9C,CAA6D,CAC5D,SAASyD,iBAAT,CAA2B7yC,KAA3B,CAAkC,CACjC,GAAIszB,KAAK,CAAC/qB,CAAN,CAAQg9B,EAAR,GAAevlC,KAAnB,CAA0B,CACzB,OAAO6yC,iBAAiB,CAAC7sC,QAAzB,CACA,CACD,GAAIstB,KAAK,CAACrrB,CAAN,CAAQs9B,EAAR,GAAevlC,KAAnB,CAA0B,CACzB,OAAO6yC,iBAAiB,CAACxL,IAAzB,CACA,CACD,WAAA,CACA,CACD,IAAI4L,cAAc,CAAGL,oBAAoB,CAACC,iBAAD,CAAoBzD,aAApB,CAAzC,CACAyD,iBAAiB,CAAC+B,aAAlB,CAAkCthB,KAAK,CAACiS,EAAxC,CACA,IAAInkC,IAAI,CAAGuzC,IAAI,CAACvnB,EAAL,CAAQ9gB,EAAR,GAAe,IAAf,CAAsBqoC,IAAI,CAACvnB,EAAL,CAAQhsB,IAA9B,CAAqCuzC,IAAI,CAACvnB,EAArD,CACAhsB,IAAI,CAAC6G,CAAL,CAAOgsC,gBAAP,CAAwBlB,iBAAiB,CAAC,MAAD,CAASE,cAAT,CAAzC,EACA7xC,IAAI,CAACmH,CAAL,CAAO0rC,gBAAP,CAAwBlB,iBAAiB,CAAC,UAAD,CAAaE,cAAb,CAAzC,EAEAlyC,MAAM,CAACixC,gBAAP,CAAwBa,iBAAxB,CAA2C,CAC1CxL,IAAI,CAAE,CACLtjB,GAAG,CAAEuqB,2BAA2B,CAACltC,IAAI,CAAC6G,CAAN,CAD3B,CADoC,CAI1CjC,QAAQ,CAAE,CACT+d,GAAG,CAAEuqB,2BAA2B,CAACltC,IAAI,CAACmH,CAAN,CADvB,CAJgC,CAO1CkqC,KAAK,CAAE,CAAEzyC,KAAK,CAAEszB,KAAK,CAAC/b,EAAf,CAPmC,CAA3C,EASAs7B,iBAAiB,CAACa,EAAlB,CAAuBpgB,KAAK,CAACogB,EAA7B,CACA,OAAOb,iBAAP,CACA,CAED,SAASuC,oBAAT,CAA8B9hB,KAA9B,CAAqCqhB,IAArC,CAA2CvF,aAA3C,CAA0D,CACzD,SAASyD,iBAAT,CAA2B7yC,KAA3B,CAAkC,CACjC,GAAIszB,KAAK,CAAC/qB,CAAN,CAAQg9B,EAAR,GAAevlC,KAAnB,CAA0B,CACzB,OAAO6yC,iBAAiB,CAAC7sC,QAAzB,CACA,CACD,GAAIstB,KAAK,CAACnrB,CAAN,CAAQo9B,EAAR,GAAevlC,KAAnB,CAA0B,CACzB,OAAO6yC,iBAAiB,CAAClD,QAAzB,CACA,CACD,GAAIrc,KAAK,CAAClnB,EAAN,CAASm5B,EAAT,GAAgBvlC,KAApB,CAA2B,CAC1B,OAAO6yC,iBAAiB,CAAClvB,MAAzB,CACA,CACD,GAAI2P,KAAK,CAAC2C,EAAN,CAASsP,EAAT,GAAgBvlC,KAAhB,EAAyBA,KAAK,GAAK,+BAAvC,CAAwE,CACvE,OAAO6yC,iBAAiB,CAAC6D,WAAzB,CACA,CACD,GAAIpjB,KAAK,CAAC4C,EAAN,CAASqP,EAAT,GAAgBvlC,KAApB,CAA2B,CAC1B,OAAO6yC,iBAAiB,CAAC8D,cAAzB,CACA,CACD,GAAIrjB,KAAK,CAACsC,EAAN,GAAatC,KAAK,CAACsC,EAAN,CAAS2P,EAAT,GAAgBvlC,KAAhB,EAAyBA,KAAK,GAAK,+BAAhD,CAAJ,CAAsF,CACrF,OAAO6yC,iBAAiB,CAAC+D,WAAzB,CACA,CACD,GAAItjB,KAAK,CAACuC,EAAN,EAAYvC,KAAK,CAACuC,EAAN,CAAS0P,EAAT,GAAgBvlC,KAAhC,CAAuC,CACtC,OAAO6yC,iBAAiB,CAACgE,cAAzB,CACA,CACD,WAAA,CACA,CAED,IAAI5D,cAAc,CAAGL,oBAAoB,CAACC,iBAAD,CAAoBzD,aAApB,CAAzC,CACA,IAAIhuC,IAAI,CAAGuzC,IAAI,CAACvnB,EAAL,CAAQ9gB,EAAR,GAAe,IAAf,CAAsBqoC,IAAI,CAACvnB,EAAL,CAAQhsB,IAA9B,CAAqCuzC,IAAI,CAACvnB,EAArD,CACAylB,iBAAiB,CAAC+B,aAAlB,CAAkCthB,KAAK,CAACiS,EAAxC,CACAnkC,IAAI,CAAC60B,EAAL,CAAQge,gBAAR,CAAyBlB,iBAAiB,CAAC,cAAD,CAAiBE,cAAjB,CAA1C,EACA7xC,IAAI,CAAC80B,EAAL,CAAQ+d,gBAAR,CAAyBlB,iBAAiB,CAAC,iBAAD,CAAoBE,cAApB,CAA1C,EACA7xC,IAAI,CAACgL,EAAL,CAAQ6nC,gBAAR,CAAyBlB,iBAAiB,CAAC,QAAD,CAAWE,cAAX,CAA1C,EACA7xC,IAAI,CAACmH,CAAL,CAAO0rC,gBAAP,CAAwBlB,iBAAiB,CAAC,UAAD,CAAaE,cAAb,CAAzC,EACA7xC,IAAI,CAAC+G,CAAL,CAAO8rC,gBAAP,CAAwBlB,iBAAiB,CAAC,UAAD,CAAaE,cAAb,CAAzC,EACA,GAAI3f,KAAK,CAACsC,EAAV,CAAc,CACbx0B,IAAI,CAACw0B,EAAL,CAAQqe,gBAAR,CAAyBlB,iBAAiB,CAAC,cAAD,CAAiBE,cAAjB,CAA1C,EACA7xC,IAAI,CAACy0B,EAAL,CAAQoe,gBAAR,CAAyBlB,iBAAiB,CAAC,iBAAD,CAAoBE,cAApB,CAA1C,EACA,CAEDlyC,MAAM,CAACixC,gBAAP,CAAwBa,iBAAxB,CAA2C,CAC1C7sC,QAAQ,CAAE,CACT+d,GAAG,CAAEuqB,2BAA2B,CAACltC,IAAI,CAACmH,CAAN,CADvB,CADgC,CAI1ConC,QAAQ,CAAE,CACT5rB,GAAG,CAAEuqB,2BAA2B,CAACltC,IAAI,CAAC+G,CAAN,CADvB,CAJgC,CAO1Cwb,MAAM,CAAE,CACPI,GAAG,CAAEuqB,2BAA2B,CAACltC,IAAI,CAACgL,EAAN,CADzB,CAPkC,CAU1CsqC,WAAW,CAAE,CACZ3yB,GAAG,CAAEuqB,2BAA2B,CAACltC,IAAI,CAAC60B,EAAN,CADpB,CAV6B,CAa1C0gB,cAAc,CAAE,CACf5yB,GAAG,CAAEuqB,2BAA2B,CAACltC,IAAI,CAAC80B,EAAN,CADjB,CAb0B,CAgB1C0gB,WAAW,CAAE,CACZ7yB,GAAG,CAAEuqB,2BAA2B,CAACltC,IAAI,CAACw0B,EAAN,CADpB,CAhB6B,CAmB1CihB,cAAc,CAAE,CACf9yB,GAAG,CAAEuqB,2BAA2B,CAACltC,IAAI,CAACy0B,EAAN,CADjB,CAnB0B,CAsB1C4c,KAAK,CAAE,CAAEzyC,KAAK,CAAEszB,KAAK,CAAC/b,EAAf,CAtBmC,CAA3C,EAwBAs7B,iBAAiB,CAACa,EAAlB,CAAuBpgB,KAAK,CAACogB,EAA7B,CACA,OAAOb,iBAAP,CACA,CAED,SAASwC,oBAAT,CAA8B/hB,KAA9B,CAAqCqhB,IAArC,CAA2CvF,aAA3C,CAA0D,CACzD,SAASyD,iBAAT,CAA2B7yC,KAA3B,CAAkC,CACjC,GAAIszB,KAAK,CAAC/qB,CAAN,CAAQg9B,EAAR,GAAevlC,KAAnB,CAA0B,CACzB,OAAO6yC,iBAAiB,CAAC7sC,QAAzB,CACA,CACD,GAAIstB,KAAK,CAACnrB,CAAN,CAAQo9B,EAAR,GAAevlC,KAAnB,CAA0B,CACzB,OAAO6yC,iBAAiB,CAAChc,SAAzB,CACA,CACD,GAAIvD,KAAK,CAACrrB,CAAN,CAAQs9B,EAAR,GAAevlC,KAAf,EAAwBA,KAAK,GAAK,MAAlC,EAA4CA,KAAK,GAAK,uBAA1D,CAAmF,CAClF,OAAO6yC,iBAAiB,CAACxL,IAAzB,CACA,CACD,WAAA,CACA,CACD,IAAI4L,cAAc,CAAGL,oBAAoB,CAACC,iBAAD,CAAoBzD,aAApB,CAAzC,CAEA,IAAIhuC,IAAI,CAAGuzC,IAAI,CAACvnB,EAAL,CAAQ9gB,EAAR,GAAe,IAAf,CAAsBqoC,IAAI,CAACvnB,EAAL,CAAQhsB,IAA9B,CAAqCuzC,IAAI,CAACvnB,EAArD,CACAylB,iBAAiB,CAAC+B,aAAlB,CAAkCthB,KAAK,CAACiS,EAAxC,CACAnkC,IAAI,CAACmH,CAAL,CAAO0rC,gBAAP,CAAwBlB,iBAAiB,CAAC,UAAD,CAAaE,cAAb,CAAzC,EACA7xC,IAAI,CAAC6G,CAAL,CAAOgsC,gBAAP,CAAwBlB,iBAAiB,CAAC,MAAD,CAASE,cAAT,CAAzC,EACA7xC,IAAI,CAAC+G,CAAL,CAAO8rC,gBAAP,CAAwBlB,iBAAiB,CAAC,UAAD,CAAaE,cAAb,CAAzC,EAEAlyC,MAAM,CAACixC,gBAAP,CAAwBa,iBAAxB,CAA2C,CAC1C7sC,QAAQ,CAAE,CACT+d,GAAG,CAAEuqB,2BAA2B,CAACltC,IAAI,CAACmH,CAAN,CADvB,CADgC,CAI1CsuB,SAAS,CAAE,CACV9S,GAAG,CAAEuqB,2BAA2B,CAACltC,IAAI,CAAC+G,CAAN,CADtB,CAJ+B,CAO1Ck/B,IAAI,CAAE,CACLtjB,GAAG,CAAEuqB,2BAA2B,CAACltC,IAAI,CAAC6G,CAAN,CAD3B,CAPoC,CAU1CwqC,KAAK,CAAE,CAAEzyC,KAAK,CAAEszB,KAAK,CAAC/b,EAAf,CAVmC,CAA3C,EAYAs7B,iBAAiB,CAACa,EAAlB,CAAuBpgB,KAAK,CAACogB,EAA7B,CACA,OAAOb,iBAAP,CACA,CAED,SAASyC,uBAAT,CAAiChiB,KAAjC,CAAwCqhB,IAAxC,CAA8CvF,aAA9C,CAA6D,CAC5D,SAASyD,iBAAT,CAA2B7yC,KAA3B,CAAkC,CACjC,GAAIszB,KAAK,CAACnrB,CAAN,CAAQo9B,EAAR,GAAevlC,KAAf,EAAwBA,KAAK,GAAK,iBAAtC,CAAyD,CACxD,OAAO6yC,iBAAiB,CAACiE,MAAzB,CACA,CACD,WAAA,CACA,CAED,IAAI7D,cAAc,CAAGL,oBAAoB,CAACC,iBAAD,CAAoBzD,aAApB,CAAzC,CACA,IAAIhuC,IAAI,CAAGuzC,IAAX,CACA9B,iBAAiB,CAAC+B,aAAlB,CAAkCthB,KAAK,CAACiS,EAAxC,CACAnkC,IAAI,CAAC+kC,EAAL,CAAQ8N,gBAAR,CAAyBlB,iBAAiB,CAAC,QAAD,CAAWE,cAAX,CAA1C,EAEAlyC,MAAM,CAACixC,gBAAP,CAAwBa,iBAAxB,CAA2C,CAC1CiE,MAAM,CAAE,CACP/yB,GAAG,CAAEuqB,2BAA2B,CAACltC,IAAI,CAAC+kC,EAAN,CADzB,CADkC,CAI1CsM,KAAK,CAAE,CAAEzyC,KAAK,CAAEszB,KAAK,CAAC/b,EAAf,CAJmC,CAA3C,EAMAs7B,iBAAiB,CAACa,EAAlB,CAAuBpgB,KAAK,CAACogB,EAA7B,CACA,OAAOb,iBAAP,CACA,CAED,SAAS0C,wBAAT,CAAkCjiB,KAAlC,CAAyCqhB,IAAzC,CAA+CvF,aAA/C,CAA8D,CAC7D,SAASyD,iBAAT,CAA2B7yC,KAA3B,CAAkC,CACjC,GAAIszB,KAAK,CAACpkB,CAAN,CAAQq2B,EAAR,GAAevlC,KAAf,EAAwBA,KAAK,GAAK,QAAtC,CAAgD,CAC/C,OAAO6yC,iBAAiB,CAACzN,MAAzB,CACA,CAAC,GAAI9R,KAAK,CAAC9lB,CAAN,CAAQ+3B,EAAR,GAAevlC,KAAf,EAAwBA,KAAK,GAAK,QAAtC,CAAgD,CACjD,OAAO6yC,iBAAiB,CAAC/pC,MAAzB,CACA,CACD,WAAA,CACA,CAED,IAAImqC,cAAc,CAAGL,oBAAoB,CAACC,iBAAD,CAAoBzD,aAApB,CAAzC,CACA,IAAIhuC,IAAI,CAAGuzC,IAAX,CACA9B,iBAAiB,CAAC+B,aAAlB,CAAkCthB,KAAK,CAACiS,EAAxC,CACAnkC,IAAI,CAAC8N,CAAL,CAAO+kC,gBAAP,CAAwBlB,iBAAiB,CAAC,QAAD,CAAWE,cAAX,CAAzC,EACA7xC,IAAI,CAACoM,CAAL,CAAOymC,gBAAP,CAAwBlB,iBAAiB,CAAC,QAAD,CAAWE,cAAX,CAAzC,EACAlyC,MAAM,CAACixC,gBAAP,CAAwBa,iBAAxB,CAA2C,CAC1CzN,MAAM,CAAE,CACPrhB,GAAG,CAAEuqB,2BAA2B,CAACltC,IAAI,CAAC8N,CAAN,CADzB,CADkC,CAI1CpG,MAAM,CAAE,CACPib,GAAG,CAAEuqB,2BAA2B,CAACltC,IAAI,CAACoM,CAAN,CADzB,CAJkC,CAO1CilC,KAAK,CAAE,CAAEzyC,KAAK,CAAEszB,KAAK,CAAC/b,EAAf,CAPmC,CAA3C,EASAs7B,iBAAiB,CAACa,EAAlB,CAAuBpgB,KAAK,CAACogB,EAA7B,CACA,OAAOb,iBAAP,CACA,CAED,gBAAiBnmC,MAAV,CAAkBioC,IAAlB,CAAwBvF,aAAxB,CAAuC,CAC7C,IAAIuG,UAAJ,CACA,SAASC,kBAAT,CAA4B51C,KAA5B,CAAmC,CAClC,GAAI,OAAOA,KAAP,GAAiB,QAArB,CAA+B,CAC9BA,KAAK,CAAGA,KAAK,GAAKoa,SAAV,CAAsB,CAAtB,CAA0Bpa,KAAlC,CACA,GAAIA,KAAK,GAAK,CAAd,CAAiB,CAChB,OAAOovC,aAAP,CACA,CACD,OAAOuG,UAAU,CAAC31C,KAAK,CAAG,CAAT,CAAjB,CACA,CACD,IAAIS,CAAC,CAAG,CAAR,CACA,IAAIC,GAAG,CAAGi1C,UAAU,CAACh1C,MAArB,CACA,MAAOF,CAAC,CAAGC,GAAX,CAAgB,CACf,GAAIi1C,UAAU,CAACl1C,CAAD,CAAV,CAAcgyC,KAAd,GAAwBzyC,KAA5B,CAAmC,CAClC,OAAO21C,UAAU,CAACl1C,CAAD,CAAjB,CACA,CACDA,CAAC,EAAI,CAAL,CACA,CACD,WAAA,CACA,CACD,SAASs2C,kBAAT,EAA8B,CAC7B,OAAO3H,aAAP,CACA,CACDwG,kBAAkB,CAACxG,aAAnB,CAAmCwD,oBAAoB,CAACgD,kBAAD,CAAqBmB,kBAArB,CAAvD,CACApB,UAAU,CAAGb,eAAe,CAACpoC,MAAD,CAASioC,IAAT,CAAeiB,kBAAkB,CAACxG,aAAlC,CAA5B,CACAwG,kBAAkB,CAAChC,aAAnB,CAAmC+B,UAAU,CAACh1C,MAA9C,CACAi1C,kBAAkB,CAACnD,KAAnB,CAA2B,UAA3B,CACA,OAAOmD,kBAAP,CACA,CA5BD,CA6BA,CAvhBiC,EAAlC,CAyhBA,MAAMoB,uBAAuB,CAAI,UAAY,CAC5C,gBAAiB72B,IAAV,CAAgB,CACtB,IAAI82B,UAAJ,CACA,IAAIC,WAAJ,CACA,SAAS1F,kBAAT,CAA4Bt6B,IAA5B,CAAkC,CACjC,OAAQA,IAAR,EACC,IAAK,oBAAL,CACC,OAAOs6B,kBAAkB,CAAC2F,UAA1B,CACD,QACC,WAAA,CAJF,CAMA,CACDp2C,MAAM,CAACitC,cAAP,CAAsBwD,kBAAtB,CAA0C,YAA1C,CAAwD,CACvDztB,GAAG,CAAE,UAAY,CAChB5D,IAAI,CAACi3B,YAAL,CAAkBhmB,QAAlB,GACA,IAAIimB,WAAW,CAAGl3B,IAAI,CAACi3B,YAAL,CAAkBE,WAAlB,CAA8B7uC,CAAhD,CACA,GAAI4uC,WAAW,GAAKJ,UAApB,CAAgC,CAC/B92B,IAAI,CAACi3B,YAAL,CAAkBE,WAAlB,CAA8B7uC,CAA9B,CAAkCwuC,UAAlC,CACAC,WAAW,CAAG,IAAIK,MAAJ,CAAWF,WAAX,CAAd,CAAuC;CACvC;CACAH,WAAW,CAACl3C,KAAZ,CAAoBq3C,WAAW,EAAI,IAAIE,MAAJ,CAAWF,WAAX,CAAnC,CAA4D;CAC5D,CACD,OAAOH,WAAP,CACA,CAXsD,CAAxD,EAaA,OAAO1F,kBAAP,CACA,CAzBD,CA0BA,CA3BgC,EAAjC,CA6BA,MAAMgG,YAAY,CAAI,UAAY,CACjC,IAAIC,cAAc,CAAG,CACpB,EAAG,aADiB,CAEpB,EAAG,UAFiB,CAGpB,EAAG,QAHiB,CAIpB,EAAG,SAJiB,CAKpB,EAAG,QALiB,CAMpB,EAAG,SANiB,CAOpB,EAAG,aAPiB,CAQpB,EAAG,YARiB,CASpB,EAAG,YATiB,CAUpB,EAAG,YAViB,CAWpB,GAAI,YAXgB,CAYpB,GAAI,WAZgB,CAapB,GAAI,KAbgB,CAcpB,GAAI,YAdgB,CAepB,GAAI,OAfgB,CAgBpB,GAAI,YAhBgB,CAArB,CAmBA,gBAAiBC,IAAV,CAAgB,CACtB,OAAOD,cAAc,CAACC,IAAD,CAAd,EAAwB,EAA/B,CACA,CAFD,CAGA,CAvBqB,EAAtB,CAyBA,SAASC,YAAT,CAAsBntC,IAAtB,CAA4B2V,IAA5B,CAAkCtG,SAAlC,CAA6C,CAC5C,KAAKtR,CAAL,CAASuiB,eAAe,CAAC2G,OAAhB,CAAwBtR,IAAxB,CAA8B3V,IAAI,CAACtC,CAAnC,CAAsC,CAAtC,CAAyC,CAAzC,CAA4C2R,SAA5C,CAAT,CACA,CACD,SAAS+9B,WAAT,CAAqBptC,IAArB,CAA2B2V,IAA3B,CAAiCtG,SAAjC,CAA4C,CAC3C,KAAKtR,CAAL,CAASuiB,eAAe,CAAC2G,OAAhB,CAAwBtR,IAAxB,CAA8B3V,IAAI,CAACtC,CAAnC,CAAsC,CAAtC,CAAyC,CAAzC,CAA4C2R,SAA5C,CAAT,CACA,CACD,SAASg+B,WAAT,CAAqBrtC,IAArB,CAA2B2V,IAA3B,CAAiCtG,SAAjC,CAA4C,CAC3C,KAAKtR,CAAL,CAASuiB,eAAe,CAAC2G,OAAhB,CAAwBtR,IAAxB,CAA8B3V,IAAI,CAACtC,CAAnC,CAAsC,CAAtC,CAAyC,CAAzC,CAA4C2R,SAA5C,CAAT,CACA,CACD,SAASi+B,WAAT,CAAqBttC,IAArB,CAA2B2V,IAA3B,CAAiCtG,SAAjC,CAA4C,CAC3C,KAAKtR,CAAL,CAASuiB,eAAe,CAAC2G,OAAhB,CAAwBtR,IAAxB,CAA8B3V,IAAI,CAACtC,CAAnC,CAAsC,CAAtC,CAAyC,CAAzC,CAA4C2R,SAA5C,CAAT,CACA,CACD,SAASk+B,gBAAT,CAA0BvtC,IAA1B,CAAgC2V,IAAhC,CAAsCtG,SAAtC,CAAiD,CAChD,KAAKtR,CAAL,CAASuiB,eAAe,CAAC2G,OAAhB,CAAwBtR,IAAxB,CAA8B3V,IAAI,CAACtC,CAAnC,CAAsC,CAAtC,CAAyC,CAAzC,CAA4C2R,SAA5C,CAAT,CACA,CACD,SAASm+B,eAAT,CAAyBxtC,IAAzB,CAA+B2V,IAA/B,CAAqCtG,SAArC,CAAgD,CAC/C,KAAKtR,CAAL,CAASuiB,eAAe,CAAC2G,OAAhB,CAAwBtR,IAAxB,CAA8B3V,IAAI,CAACtC,CAAnC,CAAsC,CAAtC,CAAyC,CAAzC,CAA4C2R,SAA5C,CAAT,CACA,CACD,SAASo+B,cAAT,CAAwBztC,IAAxB,CAA8B2V,IAA9B,CAAoCtG,SAApC,CAA+C,CAC9C,KAAKtR,CAAL,CAASuiB,eAAe,CAAC2G,OAAhB,CAAwBtR,IAAxB,CAA8B3V,IAAI,CAACtC,CAAnC,CAAsC,CAAtC,CAAyC,CAAzC,CAA4C2R,SAA5C,CAAT,CACA,CACD,SAASq+B,aAAT,EAAyB,CACxB,KAAK3vC,CAAL,CAAS,EAAT,CACA,CAED,SAAS4vC,cAAT,CAAwB3tC,IAAxB,CAA8B1E,OAA9B,CAAuC,CACtC,IAAI4rC,OAAO,CAAGlnC,IAAI,CAAC+oC,EAAL,EAAW,EAAzB,CACA,KAAKF,cAAL,CAAsB,EAAtB,CACA,IAAI5yC,CAAJ,CACA,IAAIC,GAAG,CAAGgxC,OAAO,CAAC/wC,MAAlB,CACA,IAAIy3C,UAAJ,CACA,IAAK33C,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B23C,UAAU,CAAG,IAAIC,WAAJ,CAAgB3G,OAAO,CAACjxC,CAAD,CAAvB,CAA4BqF,OAA5B,CAAb,CACA,KAAKutC,cAAL,CAAoBrxC,IAApB,CAAyBo2C,UAAzB,EACA,CACD,CAED,SAASC,WAAT,CAAqB7tC,IAArB,CAA2B1E,OAA3B,CAAoC,CACnC,KAAKyY,IAAL,CAAU/T,IAAV,CAAgB1E,OAAhB,EACA,CAEDxF,eAAe,CAAC,CAACoxB,wBAAD,CAAD,CAA6B2mB,WAA7B,CAAf,CAEAA,WAAW,CAACx3C,SAAZ,CAAsBuwB,QAAtB,CAAiCinB,WAAW,CAACx3C,SAAZ,CAAsBgxB,wBAAvD,CAEAwmB,WAAW,CAACx3C,SAAZ,CAAsB0d,IAAtB,CAA6B,SAAU/T,IAAV,CAAgB1E,OAAhB,CAAyB,CACrD,KAAK0E,IAAL,CAAYA,IAAZ,CACA,KAAK6oC,cAAL,CAAsB,EAAtB,CACA,KAAKvhB,4BAAL,CAAkChsB,OAAlC,EACA,IAAIrF,CAAJ,CACA,IAAIC,GAAG,CAAG,KAAK8J,IAAL,CAAU+oC,EAAV,CAAa5yC,MAAvB,CACA,IAAI23C,GAAJ,CACA,IAAI5G,OAAO,CAAG,KAAKlnC,IAAL,CAAU+oC,EAAxB,CACA,IAAK9yC,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B63C,GAAG,CAAG,IAAN,CACA,OAAQ5G,OAAO,CAACjxC,CAAD,CAAP,CAAW6L,EAAnB,EACC,MAAA,CACCgsC,GAAG,CAAG,IAAIX,YAAJ,CAAiBjG,OAAO,CAACjxC,CAAD,CAAxB,CAA6BqF,OAA7B,CAAsC,IAAtC,CAAN,CACA,MACD,MAAA,CACCwyC,GAAG,CAAG,IAAIV,WAAJ,CAAgBlG,OAAO,CAACjxC,CAAD,CAAvB,CAA4BqF,OAA5B,CAAqC,IAArC,CAAN,CACA,MACD,MAAA,CACCwyC,GAAG,CAAG,IAAIT,WAAJ,CAAgBnG,OAAO,CAACjxC,CAAD,CAAvB,CAA4BqF,OAA5B,CAAqC,IAArC,CAAN,CACA,MACD,MAAA,CACCwyC,GAAG,CAAG,IAAIR,WAAJ,CAAgBpG,OAAO,CAACjxC,CAAD,CAAvB,CAA4BqF,OAA5B,CAAqC,IAArC,CAAN,CACA,MACD,MAAA,CACA,MAAA,CACCwyC,GAAG,CAAG,IAAIL,cAAJ,CAAmBvG,OAAO,CAACjxC,CAAD,CAA1B,CAA+BqF,OAA/B,CAAwC,IAAxC,CAAN,CACA,MACD,OAAA,CACCwyC,GAAG,CAAG,IAAIP,gBAAJ,CAAqBrG,OAAO,CAACjxC,CAAD,CAA5B,CAAiCqF,OAAjC,CAA0C,IAA1C,CAAN,CACA,MACD,OAAA,CACCwyC,GAAG,CAAG,IAAIN,eAAJ,CAAoBtG,OAAO,CAACjxC,CAAD,CAA3B,CAAgCqF,OAAhC,CAAyC,IAAzC,CAAN,CACA,MACD,MAAA,CACCwyC,GAAG,CAAG,IAAIH,cAAJ,CAAmBzG,OAAO,CAACjxC,CAAD,CAA1B,CAA+BqF,OAA/B,CAAwC,IAAxC,CAAN,CACA,MACD;CACA,QACCwyC,GAAG,CAAG,IAAIJ,aAAJ,CAAkBxG,OAAO,CAACjxC,CAAD,CAAzB,CAA8BqF,OAA9B,CAAuC,IAAvC,CAAN,CACA,MA7BF,CA+BA,GAAIwyC,GAAJ,CAAS,CACR,KAAKjF,cAAL,CAAoBrxC,IAApB,CAAyBs2C,GAAzB,EACA,CACD,CACD,CA7CD,CA+CA,SAASC,WAAT,EAAuB,EAGvBA,WAAW,CAAC13C,SAAZ,CAAwB,CACvB23C,UAAU,CAAE,UAAY,CACvB,GAAI,CAAC,KAAKhuC,IAAL,CAAUyB,OAAf,CAAwB,CACvB,YAAA,CACA,CACD,IAAIxL,CAAC,CAAG,CAAR,CACA,IAAIC,GAAG,CAAG,KAAK8J,IAAL,CAAU2B,eAAV,CAA0BxL,MAApC,CACA,MAAOF,CAAC,CAAGC,GAAX,CAAgB,CACf,GAAK,KAAK8J,IAAL,CAAU2B,eAAV,CAA0B1L,CAA1B,EAA6Bi3C,IAA7B,GAAsC,GAAtC,EAA6C,KAAKltC,IAAL,CAAU2B,eAAV,CAA0B1L,CAA1B,EAA6B6O,EAA7B,GAAoC,KAAtF,CAA8F,CAC7F,WAAA,CACA,CACD7O,CAAC,EAAI,CAAL,CACA,CACD,YAAA,CACA,CAdsB,CAevB+a,eAAe,CAAE,UAAY,CAC5B,KAAK02B,cAAL,CAAsB3B,wBAAwB,CAAC,IAAD,CAA9C,CACA,GAAI,KAAK/lC,IAAL,CAAUyB,OAAV,EAAqB,KAAKiiC,WAA9B,CAA2C,CAC1C,KAAKgE,cAAL,CAAoBQ,qBAApB,CAA0C,KAAKxE,WAA/C,EACA,CACD,IAAIuK,gBAAgB,CAAGvF,0BAA0B,CAACC,sBAA3B,CAAkD,IAAlD,CAAwD,KAAKjB,cAA7D,CAAvB,CACA,KAAKA,cAAL,CAAoBS,wBAApB,CAA6C8F,gBAA7C,EAEA,GAAI,KAAKjuC,IAAL,CAAU8B,EAAV,GAAiB,CAAjB,EAAsB,KAAK9B,IAAL,CAAUiN,EAApC,CAAwC,CACvC,KAAKE,aAAL,CAAqBu8B,uBAAuB,CAAC,IAAD,CAA5C,CACA,CAFD,QAEW,KAAK1pC,IAAL,CAAU8B,EAAV,GAAiB,CAArB,CAAwB,CAC9B,KAAK4lC,cAAL,CAAoBN,cAApB,CAAqCiD,wBAAwB,CAAC,KAAK6D,UAAN,CAAkB,KAAKC,SAAvB,CAAkC,KAAKzG,cAAvC,CAA7D,CACA,KAAKA,cAAL,CAAoB6D,OAApB,CAA8B,KAAK7D,cAAL,CAAoBN,cAAlD,CACA,CAHM,QAGI,KAAKpnC,IAAL,CAAU8B,EAAV,GAAiB,CAArB,CAAwB,CAC9B,KAAK4lC,cAAL,CAAoBL,aAApB,CAAoCmF,uBAAuB,CAAC,IAAD,CAA3D,CACA,KAAK9E,cAAL,CAAoBjI,IAApB,CAA2B,KAAKiI,cAAL,CAAoBL,aAA/C,CACA,CACD,CAhCsB,CAiCvB+G,YAAY,CAAE,UAAY,CACzB,IAAIC,cAAc,CAAGrB,YAAY,CAAC,KAAKhtC,IAAL,CAAUsuC,EAAX,CAAjC,CACA,IAAI34B,IAAI,CAAG,KAAK44B,WAAL,EAAoB,KAAKC,YAApC,CAEA74B,IAAI,CAACpa,KAAL,CAAW,gBAAX,EAA+B8yC,cAA/B,CACA,CAtCsB,CAuCvBI,YAAY,CAAE,SAAUzuC,IAAV,CAAgByP,UAAhB,CAA4BhN,IAA5B,CAAkC,CAC/C,KAAKgN,UAAL,CAAkBA,UAAlB,CACA,KAAKhN,IAAL,CAAYA,IAAZ,CACA,KAAKzC,IAAL,CAAYA,IAAZ,CACA,KAAK0uC,OAAL,CAAetxC,eAAe,EAA9B,CAEA;CACA,GAAI,CAAC,KAAK4C,IAAL,CAAUkE,EAAf,CAAmB,CAClB,KAAKlE,IAAL,CAAUkE,EAAV,CAAe,CAAf,CACA,CACD;CACA,KAAK0kC,cAAL,CAAsB,IAAI+E,cAAJ,CAAmB,KAAK3tC,IAAxB,CAA8B,IAA9B,CAAoC,KAAKmnB,iBAAzC,CAAtB,CACA,CAnDsB,CAoDvBwnB,OAAO,CAAE,UAAY,CACpB,YAAYh5C,IAAZ,CACA,CAtDsB,CAuDvBqtC,gBAAgB,CAAE,UAAY,EAvDP,CAAxB,CA0DA;CACA;CACA;CACA;CACA;CACA,GAEA,SAAS4L,YAAT,EAAwB,EAExBA,YAAY,CAACv4C,SAAb,CAAyB;CAEzB;CACA;CACA;CACA,IACCkqB,SAAS,CAAE,UAAY;CAEtB,KAAK6F,aAAL,CAAqB,KAArB,CACA;CACA,KAAKe,iBAAL,CAAyB,EAAzB,CACA;CACA,KAAKpB,IAAL,CAAY,KAAZ,CACA,CAbuB;CAezB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,IACC8oB,iBAAiB,CAAE,SAAUrM,GAAV,CAAesM,SAAf,CAA0B,CAC5C,IAAI74C,CAAJ,CACA,IAAIC,GAAG,CAAG,KAAKixB,iBAAL,CAAuBhxB,MAAjC,CACA,IAAKF,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B,GAAI64C,SAAS,EAAK,KAAKC,SAAL,EAAkB,KAAK5nB,iBAAL,CAAuBlxB,CAAvB,EAA0B6qB,QAA1B,GAAuC,WAA3E,CAAyF,CACxF,KAAKqG,iBAAL,CAAuBlxB,CAAvB,EAA0B2wB,QAA1B,GACA,GAAI,KAAKO,iBAAL,CAAuBlxB,CAAvB,EAA0B8vB,IAA9B,CAAoC,CACnC,KAAKtW,UAAL,CAAgBsW,IAAhB,CAAuB,IAAvB,CACA,KAAKA,IAAL,CAAY,IAAZ,CACA,CACD,CACD,CACD,CApCuB,CAqCxBU,kBAAkB,CAAE,SAAU7vB,IAAV,CAAgB,CACnC,GAAI,KAAKuwB,iBAAL,CAAuB3hB,OAAvB,CAA+B5O,IAA/B,IAAyC,CAAC,CAA9C,CAAiD,CAChD,KAAKuwB,iBAAL,CAAuB3vB,IAAvB,CAA4BZ,IAA5B,EACA,CACD,CAzCuB,CAAzB,CA4CA,MAAMo4C,gBAAgB,CAAI,UAAY,CACrC,IAAIC,uBAAuB,CAAI,SAAUt5B,IAAV,CAAgB,CAC9C,IAAIu5B,mBAAmB,CAAG,EAA1B,CACA,IAAIC,eAAe,CAAGx5B,IAAI,CAACy5B,cAAL,EAAtB,CACA,SAASr7B,IAAT,EAAgB,CACfm7B,mBAAmB,CAAG,EAAtB,CACAC,eAAe,CAAGx5B,IAAI,CAACy5B,cAAL,EAAlB,CACA,OAAOC,cAAP,CACA,CACD,SAASA,cAAT,CAAwB75C,KAAxB,CAA+B,CAC9B,GAAI25C,eAAe,CAAC35C,KAAD,CAAnB,CAA4B,CAC3B05C,mBAAmB,CAAG15C,KAAtB,CACA25C,eAAe,CAAGA,eAAe,CAAC35C,KAAD,CAAjC,CACA,GAAI,OAAO25C,eAAP,GAA2B,QAA/B,CAAyC,CACxC,OAAOE,cAAP,CACA,CACD,OAAOF,eAAP,CACA,CACD,IAAIG,iBAAiB,CAAG95C,KAAK,CAACgQ,OAAN,CAAc0pC,mBAAd,CAAxB,CACA,GAAII,iBAAiB,GAAK,CAAC,CAA3B,CAA8B,CAC7B,IAAIx6B,KAAK,CAAGjF,QAAQ,CAACra,KAAK,CAAC0a,MAAN,CAAao/B,iBAAiB,CAAGJ,mBAAmB,CAAC/4C,MAArD,CAAD,CAA+D,EAA/D,CAApB,CACAg5C,eAAe,CAAGA,eAAe,CAACr6B,KAAD,CAAjC,CACA,GAAI,OAAOq6B,eAAP,GAA2B,QAA/B,CAAyC,CACxC,OAAOE,cAAP,CACA,CACD,OAAOF,eAAP,CACA,CACD,OAAO,EAAP,CACA,CACD,OAAOp7B,IAAP,CACA,CA7BD,CA+BA,IAAIw7B,oBAAoB,CAAG,SAAU55B,IAAV,CAAgB,CAC1C,SAAS0yB,iBAAT,CAA2B7yC,KAA3B,CAAkC,CACjC,GAAIA,KAAK,GAAK,SAAd,CAAyB,CACxB,OAAO6yC,iBAAiB,CAACmH,gBAAlB,EAAP,CACA,CACD,WAAA,CACA,CAEDnH,iBAAiB,CAACJ,KAAlB,CAA0B,SAA1B,CACAI,iBAAiB,CAACmH,gBAAlB,CAAqCP,uBAAuB,CAACt5B,IAAD,CAA5D,CACA,OAAO0yB,iBAAP,CACA,CAXD,CAaA,gBAAiB1yB,IAAV,CAAgB,CACtB,SAASy1B,kBAAT,CAA4B51C,KAA5B,CAAmC,CAClC,GAAIA,KAAK,GAAK,MAAd,CAAsB,CACrB,OAAO41C,kBAAkB,CAACqE,aAA1B,CACA,CACD,WAAA,CACA,CAEDrE,kBAAkB,CAACnD,KAAnB,CAA2B,MAA3B,CACAmD,kBAAkB,CAACqE,aAAnB,CAAmCF,oBAAoB,CAAC55B,IAAD,CAAvD,CACA,OAAOy1B,kBAAP,CACA,CAXD,CAYA,CAzDyB,EAA1B,CA2DA,SAASsE,cAAT,CAAwB1vC,IAAxB,CAA8ByP,UAA9B,CAA0ChN,IAA1C,CAAgD,CAC/C,KAAK8d,SAAL,GACA,KAAKwhB,cAAL,GACA,KAAKv5B,SAAL,CAAiBiH,UAAU,CAACgF,YAAX,CAAwBzU,IAAI,CAACgC,KAA7B,CAAjB,CACA,KAAKgI,WAAL,CAAmByF,UAAU,CAACkgC,WAAX,CAAuBnlC,QAAvB,CAAgC,KAAKhC,SAArC,CAAnB,CACA,KAAKimC,YAAL,CAAkBzuC,IAAlB,CAAwByP,UAAxB,CAAoChN,IAApC,EACA,CAEDitC,cAAc,CAACr5C,SAAf,CAAyB2W,YAAzB,CAAwC,UAAY,EAApD,CAGAlX,eAAe,CAAC,CAACgsC,iBAAD,CAAoBiM,WAApB,CAAiCa,YAAjC,CAAD,CAAiDc,cAAjD,CAAf,CAEAA,cAAc,CAACr5C,SAAf,CAAyBu5C,cAAzB,CAA0C,UAAY,CACrD,WAAA,CACA,CAFD,CAIAF,cAAc,CAACr5C,SAAf,CAAyBkc,WAAzB,CAAuC,UAAY,EAAnD,CAGAm9B,cAAc,CAACr5C,SAAf,CAAyBoU,OAAzB,CAAmC,UAAY,EAA/C,CAGAilC,cAAc,CAACr5C,SAAf,CAAyB2a,eAAzB,CAA2C,UAAY,CACtD,KAAK02B,cAAL,CAAsBsH,gBAAgB,CAAC,IAAD,CAAtC,CACA,CAFD,CAIAU,cAAc,CAACr5C,SAAf,CAAyB+4C,cAAzB,CAA0C,UAAY,CACrD,YAAYplC,WAAZ,CACA,CAFD,CAIA,SAAS6lC,YAAT,CAAsB7vC,IAAtB,CAA4ByP,UAA5B,CAAwChN,IAAxC,CAA8C,CAC7C,KAAK8d,SAAL,GACA,KAAKwhB,cAAL,GACA,KAAKv5B,SAAL,CAAiBiH,UAAU,CAACgF,YAAX,CAAwBzU,IAAI,CAACgC,KAA7B,CAAjB,CACA,KAAKysC,YAAL,CAAkBzuC,IAAlB,CAAwByP,UAAxB,CAAoChN,IAApC,EACA,KAAKqtC,UAAL,CAAkB,KAAlB,CACA,KAAKC,QAAL,CAAgB,KAAhB,CACA,IAAIj4C,SAAS,CAAG,KAAK2X,UAAL,CAAgBlH,aAAhB,CAA8B,KAAKC,SAAnC,CAAhB,CACA,KAAKjR,KAAL,CAAa,KAAKkY,UAAL,CAAgBZ,eAAhB,CAAgChX,WAAhC,CAA4CC,SAA5C,CAAb,CACA,KAAKk4C,YAAL,CAAoB,CAApB,CACA,KAAKvgC,UAAL,CAAgBZ,eAAhB,CAAgCvX,QAAhC,CAAyC,IAAzC,EACA,KAAK24C,iBAAL,CAAyB,CAAzB,CACA,KAAK74C,OAAL,CAAe,CAAf,CACA,KAAK84C,eAAL,CAAuB,IAAvB,CACA,KAAK9jC,EAAL,CAAUpM,IAAI,CAACoM,EAAL,CAAUkU,eAAe,CAAC2G,OAAhB,CAAwB,IAAxB,CAA8BjnB,IAAI,CAACoM,EAAnC,CAAuC,CAAvC,CAA0CqD,UAAU,CAAC9B,SAArD,CAAgE,IAAhE,CAAV,CAAkF,CAAEwiC,YAAY,CAAE,IAAhB,CAA5F,CACA,KAAKC,EAAL,CAAU9vB,eAAe,CAAC2G,OAAhB,CAAwB,IAAxB,CAA8BjnB,IAAI,CAACqwC,EAAL,EAAWrwC,IAAI,CAACqwC,EAAL,CAAQD,EAAnB,CAAwBpwC,IAAI,CAACqwC,EAAL,CAAQD,EAAhC,CAAqC,CAAEhvC,CAAC,CAAE,CAAC,GAAD,CAAL,CAAnE,CAAiF,CAAjF,CAAoF,IAApF,CAA0F,IAA1F,CAAV,CACA,CAEDyuC,YAAY,CAACx5C,SAAb,CAAuB2W,YAAvB,CAAsC,SAAUw1B,GAAV,CAAe,CACpD,KAAKD,sBAAL,CAA4BC,GAA5B,CAAiC,IAAjC,EACA,KAAKqM,iBAAL,CAAuBrM,GAAvB,CAA4B,IAA5B,EACA,GAAI,CAAC,KAAKp2B,EAAL,CAAQ+jC,YAAb,CAA2B,CAC1B,IAAIG,YAAY,CAAG,KAAKlkC,EAAL,CAAQ1O,CAA3B,CACA,KAAKsyC,YAAL,CAAoBM,YAApB,CACA,CAHD,IAGO,CACN,KAAKN,YAAL,CAAoBxN,GAAG,CAAG,KAAKxiC,IAAL,CAAUkE,EAApC,CACA,CACD,KAAK9M,OAAL,CAAe,KAAKg5C,EAAL,CAAQ1yC,CAAR,CAAU,CAAV,CAAf,CACA,IAAI6yC,WAAW,CAAG,KAAKn5C,OAAL,CAAe,KAAK64C,iBAAtC,CACA,GAAI,KAAKC,eAAL,GAAyBK,WAA7B,CAA0C,CACzC,KAAKL,eAAL,CAAuBK,WAAvB,CACA,KAAKh5C,KAAL,CAAWsB,MAAX,CAAkB03C,WAAlB,EACA,CACD,CAfD,CAiBAz6C,eAAe,CAAC,CAACgsC,iBAAD,CAAoBiM,WAApB,CAAiCa,YAAjC,CAAD,CAAiDiB,YAAjD,CAAf,CAEAA,YAAY,CAACx5C,SAAb,CAAuBkc,WAAvB,CAAqC,UAAY,CAChD,GAAI,KAAKyvB,SAAL,EAAkB,KAAK+N,QAA3B,CAAqC,CACpC,GAAI,CAAC,KAAKD,UAAV,CAAsB,CACrB,KAAKv4C,KAAL,CAAWY,IAAX,GACA,KAAKZ,KAAL,CAAWa,IAAX,CAAgB,KAAK43C,YAAL,CAAoB,KAAKvgC,UAAL,CAAgB9B,SAApD,EACA,KAAKmiC,UAAL,CAAkB,IAAlB,CACA,CAJD,QAIW,CAAC,KAAKv4C,KAAL,CAAWc,OAAX,EAAD,EACP2B,IAAI,CAACa,GAAL,CAAS,KAAKm1C,YAAL,CAAoB,KAAKvgC,UAAL,CAAgB9B,SAApC,CAAgD,KAAKpW,KAAL,CAAWa,IAAX,EAAzD,EAA8E,GAD3E,CAEL,CACD,KAAKb,KAAL,CAAWa,IAAX,CAAgB,KAAK43C,YAAL,CAAoB,KAAKvgC,UAAL,CAAgB9B,SAApD,EACA,CACD,CACD,CAZD,CAcAkiC,YAAY,CAACx5C,SAAb,CAAuBse,IAAvB,CAA8B,UAAY;CAEzC,CAFD,CAIAk7B,YAAY,CAACx5C,SAAb,CAAuBqe,IAAvB,CAA8B,UAAY,CACzC,KAAKnd,KAAL,CAAWE,KAAX,GACA,KAAKq4C,UAAL,CAAkB,KAAlB,CACA,CAHD,CAKAD,YAAY,CAACx5C,SAAb,CAAuBoB,KAAvB,CAA+B,UAAY,CAC1C,KAAKF,KAAL,CAAWE,KAAX,GACA,KAAKq4C,UAAL,CAAkB,KAAlB,CACA,KAAKC,QAAL,CAAgB,KAAhB,CACA,CAJD,CAMAF,YAAY,CAACx5C,SAAb,CAAuBqB,MAAvB,CAAgC,UAAY,CAC3C,KAAKq4C,QAAL,CAAgB,IAAhB,CACA,CAFD,CAIAF,YAAY,CAACx5C,SAAb,CAAuBsB,OAAvB,CAAiC,SAAUC,SAAV,CAAqB,CACrD,KAAKL,KAAL,CAAWe,IAAX,CAAgBV,SAAhB,EACA,CAFD,CAIAi4C,YAAY,CAACx5C,SAAb,CAAuBwC,MAAvB,CAAgC,SAAU23C,WAAV,CAAuB,CACtD,KAAKP,iBAAL,CAAyBO,WAAzB,CACA,KAAKN,eAAL,CAAuBM,WAAW,CAAG,KAAKp5C,OAA1C,CACA,KAAKG,KAAL,CAAWsB,MAAX,CAAkB,KAAKq3C,eAAvB,EACA,CAJD,CAMAL,YAAY,CAACx5C,SAAb,CAAuBu5C,cAAvB,CAAwC,UAAY,CACnD,WAAA,CACA,CAFD,CAIAC,YAAY,CAACx5C,SAAb,CAAuBoU,OAAvB,CAAiC,UAAY,EAA7C,CAGAolC,YAAY,CAACx5C,SAAb,CAAuB2sC,gBAAvB,CAA0C,UAAY,EAAtD,CAGA6M,YAAY,CAACx5C,SAAb,CAAuB2a,eAAvB,CAAyC,UAAY,EAArD,CAGA,SAASy/B,YAAT,EAAwB,EACxBA,YAAY,CAACp6C,SAAb,CAAuBq6C,WAAvB,CAAqC,SAAUlO,GAAV,CAAe,CACnD,IAAIvsC,CAAJ,CACA,IAAIC,GAAG,CAAG,KAAK6K,MAAL,CAAY5K,MAAtB,CACA,IAAI6J,IAAJ,CACA,KAAKc,cAAL,CAAsB,IAAtB,CACA,IAAK7K,CAAC,CAAGC,GAAG,CAAG,CAAf,CAAkBD,CAAC,EAAI,CAAvB,CAA0BA,CAAC,EAAI,CAA/B,CAAkC,CACjC,GAAI,CAAC,KAAKgkC,QAAL,CAAchkC,CAAd,CAAL,CAAuB,CACtB+J,IAAI,CAAG,KAAKe,MAAL,CAAY9K,CAAZ,CAAP,CACA,GAAI+J,IAAI,CAAC+D,EAAL,CAAU/D,IAAI,CAACiE,EAAf,EAAsBu+B,GAAG,CAAG,KAAKzhC,MAAL,CAAY9K,CAAZ,EAAegO,EAA3C,EAAkDjE,IAAI,CAACgE,EAAL,CAAUhE,IAAI,CAACiE,EAAf,CAAqBu+B,GAAG,CAAG,KAAKzhC,MAAL,CAAY9K,CAAZ,EAAegO,EAAhG,CAAqG,CACpG,KAAK0sC,SAAL,CAAe16C,CAAf,EACA,CACD,CACD,KAAK6K,cAAL,CAAsB,KAAKm5B,QAAL,CAAchkC,CAAd,EAAmB,KAAK6K,cAAxB,CAAyC,KAA/D,CACA,CACD,KAAK8vC,oBAAL,GACA,CAfD,CAiBAH,YAAY,CAACp6C,SAAb,CAAuBw6C,UAAvB,CAAoC,SAAUlH,KAAV,CAAiB,CACpD,OAAQA,KAAK,CAAC7nC,EAAd,EACC,MAAA,CACC,YAAYgvC,WAAL,CAAiBnH,KAAjB,CAAP,CACD,MAAA,CACC,YAAYoH,UAAL,CAAgBpH,KAAhB,CAAP,CACD,MAAA,CACC,YAAYqH,WAAL,CAAiBrH,KAAjB,CAAP,CACD,MAAA,CACC,YAAYsH,UAAL,CAAgBtH,KAAhB,CAAP,CACD,MAAA,CACC,YAAYuH,WAAL,CAAiBvH,KAAjB,CAAP,CACD,MAAA,CACC,YAAYwH,UAAL,CAAgBxH,KAAhB,CAAP,CACD,MAAA,CACC,YAAY9xC,WAAL,CAAiB8xC,KAAjB,CAAP,CACD,OAAA,CACC,YAAYyH,YAAL,CAAkBzH,KAAlB,CAAP,CACD,OAAA,CACC,YAAY0H,aAAL,CAAmB1H,KAAnB,CAAP,CACD,QACC,YAAYsH,UAAL,CAAgBtH,KAAhB,CAAP,CApBF,CAsBA,CAvBD,CAyBA8G,YAAY,CAACp6C,SAAb,CAAuB+6C,YAAvB,CAAsC,UAAY,CACjD,UAAUtlC,KAAJ,CAAU,mDAAV,CAAN,CACA,CAFD,CAIA2kC,YAAY,CAACp6C,SAAb,CAAuBwB,WAAvB,CAAqC,SAAUmI,IAAV,CAAgB,CACpD,WAAW6vC,YAAJ,CAAiB7vC,IAAjB,CAAuB,KAAKyP,UAA5B,CAAwC,IAAxC,CAAP,CACA,CAFD,CAIAghC,YAAY,CAACp6C,SAAb,CAAuBg7C,aAAvB,CAAuC,SAAUrxC,IAAV,CAAgB,CACtD,WAAW0vC,cAAJ,CAAmB1vC,IAAnB,CAAyB,KAAKyP,UAA9B,CAA0C,IAA1C,CAAP,CACA,CAFD,CAIAghC,YAAY,CAACp6C,SAAb,CAAuBi7C,aAAvB,CAAuC,UAAY,CAClD,IAAIr7C,CAAJ,CACA,IAAIC,GAAG,CAAG,KAAK6K,MAAL,CAAY5K,MAAtB,CACA,IAAKF,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B,KAAK06C,SAAL,CAAe16C,CAAf,EACA,CACD,KAAK26C,oBAAL,GACA,CAPD,CASAH,YAAY,CAACp6C,SAAb,CAAuBqa,aAAvB,CAAuC,SAAUC,SAAV,CAAqB,CAC3D,KAAK7P,cAAL,CAAsB,KAAtB,CACA,IAAI7K,CAAJ,CACA,IAAIC,GAAG,CAAGya,SAAS,CAACxa,MAApB,CACA,IAAI+K,CAAJ,CACA,IAAIC,IAAI,CAAG,KAAKJ,MAAL,CAAY5K,MAAvB,CACA,IAAKF,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5BiL,CAAC,CAAG,CAAJ,CACA,MAAOA,CAAC,CAAGC,IAAX,CAAiB,CAChB,GAAI,KAAKJ,MAAL,CAAYG,CAAZ,EAAesB,EAAf,GAAsBmO,SAAS,CAAC1a,CAAD,CAAT,CAAauM,EAAvC,CAA2C,CAC1C,KAAKzB,MAAL,CAAYG,CAAZ,EAAiByP,SAAS,CAAC1a,CAAD,CAA1B,CACA,MACA,CACDiL,CAAC,EAAI,CAAL,CACA,CACD,CACD,CAhBD,CAkBAuvC,YAAY,CAACp6C,SAAb,CAAuBsZ,mBAAvB,CAA6C,SAAU4hC,UAAV,CAAsB,CAClE,KAAK9hC,UAAL,CAAgBd,gBAAhB,CAAmC4iC,UAAnC,CACA,CAFD,CAIAd,YAAY,CAACp6C,SAAb,CAAuB6b,SAAvB,CAAmC,UAAY,CAC9C,GAAI,CAAC,KAAKzC,UAAL,CAAgB+hC,eAArB,CAAsC,CACrC,KAAKF,aAAL,GACA,CACD,CAJD,CAKAb,YAAY,CAACp6C,SAAb,CAAuBo7C,qBAAvB,CAA+C,SAAUn2C,OAAV,CAAmBo2C,UAAnB,CAA+B/K,SAA/B,CAA0C,CACxF,IAAI1M,QAAQ,CAAG,KAAKA,QAApB,CACA,IAAIl5B,MAAM,CAAG,KAAKA,MAAlB,CACA,IAAI9K,CAAC,CAAG,CAAR,CACA,IAAIC,GAAG,CAAG6K,MAAM,CAAC5K,MAAjB,CACA,MAAOF,CAAC,CAAGC,GAAX,CAAgB,CACf,GAAI6K,MAAM,CAAC9K,CAAD,CAAN,CAAU4rB,GAAV,EAAiB6vB,UAArB,CAAiC;CAChC,GAAI,CAACzX,QAAQ,CAAChkC,CAAD,CAAT,EAAgBgkC,QAAQ,CAAChkC,CAAD,CAAR,GAAgB,IAApC,CAA0C,CACzC,KAAK06C,SAAL,CAAe16C,CAAf,EACA,KAAK07C,iBAAL,CAAuBr2C,OAAvB,EACA,CAHD,IAGO,CACNqrC,SAAS,CAACnvC,IAAV,CAAeyiC,QAAQ,CAAChkC,CAAD,CAAvB,EACAgkC,QAAQ,CAAChkC,CAAD,CAAR,CAAY27C,WAAZ,GACA,GAAI7wC,MAAM,CAAC9K,CAAD,CAAN,CAAUgoC,MAAV,GAAqBruB,SAAzB,CAAoC,CACnC,KAAK6hC,qBAAL,CAA2Bn2C,OAA3B,CAAoCyF,MAAM,CAAC9K,CAAD,CAAN,CAAUgoC,MAA9C,CAAsD0I,SAAtD,EACA,CAFD,IAEO,CACNrrC,OAAO,CAACu2C,YAAR,CAAqBlL,SAArB,EACA,CACD,CACD,CACD1wC,CAAC,EAAI,CAAL,CACA,CACD,CAtBD,CAwBAw6C,YAAY,CAACp6C,SAAb,CAAuBs7C,iBAAvB,CAA2C,SAAUr2C,OAAV,CAAmB,CAC7D,KAAKw2C,eAAL,CAAqBt6C,IAArB,CAA0B8D,OAA1B,EACA,CAFD,CAIAm1C,YAAY,CAACp6C,SAAb,CAAuBub,uBAAvB,CAAiD,SAAUtP,MAAV,CAAkB,CAClE,IAAIrM,CAAJ,CACA,IAAIC,GAAG,CAAGoM,MAAM,CAACnM,MAAjB,CACA,IAAKF,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B,GAAIqM,MAAM,CAACrM,CAAD,CAAN,CAAUgX,EAAd,CAAkB,CACjB,IAAIxK,IAAI,CAAG,KAAKsuC,UAAL,CAAgBzuC,MAAM,CAACrM,CAAD,CAAtB,CAAX,CACAwM,IAAI,CAACuO,eAAL,GACA,KAAKvB,UAAL,CAAgBd,gBAAhB,CAAiC/B,mBAAjC,CAAqDnK,IAArD,EACA,CACD,CACD,CAVD,CAYAguC,YAAY,CAACp6C,SAAb,CAAuB0e,gBAAvB,CAA0C,SAAUhV,IAAV,CAAgB,CACzD,IAAIgyC,SAAS,CAAGhyC,IAAI,CAACoR,KAAL,EAAhB,CACA,IAAI7V,OAAJ,CACA,GAAI,OAAOy2C,SAAP,GAAqB,QAAzB,CAAmC,CAClCz2C,OAAO,CAAG,KAAK2+B,QAAL,CAAc8X,SAAd,CAAV,CACA,CAFD,IAEO,CACN,IAAI97C,CAAJ,CACA,IAAIC,GAAG,CAAG,KAAK+jC,QAAL,CAAc9jC,MAAxB,CACA,IAAKF,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B,GAAI,KAAKgkC,QAAL,CAAchkC,CAAd,EAAiB+J,IAAjB,CAAsB+M,EAAtB,GAA6BglC,SAAjC,CAA4C,CAC3Cz2C,OAAO,CAAG,KAAK2+B,QAAL,CAAchkC,CAAd,CAAV,CACA,MACA,CACD,CACD,CACD,GAAI8J,IAAI,CAAC5J,MAAL,GAAgB,CAApB,CAAuB,CACtB,OAAOmF,OAAP,CACA,CACD,OAAOA,OAAO,CAACyZ,gBAAR,CAAyBhV,IAAzB,CAAP,CACA,CAnBD,CAqBA0wC,YAAY,CAACp6C,SAAb,CAAuB27C,eAAvB,CAAyC,SAAUvgC,QAAV,CAAoBwgC,cAApB,CAAoC,CAC5E,KAAKxiC,UAAL,CAAgBoB,WAAhB,CAA8B,IAAI6rB,WAAJ,EAA9B,CACA,KAAKjtB,UAAL,CAAgBoB,WAAhB,CAA4BC,QAA5B,CAAqCW,QAAQ,CAACpP,KAA9C,EACA,KAAKoN,UAAL,CAAgBoB,WAAhB,CAA4BE,QAA5B,CAAqCU,QAAQ,CAACb,KAA9C,CAAqDqhC,cAArD,EACA,KAAKxiC,UAAL,CAAgBgF,YAAhB,CAA+B,KAAKy9B,aAAL,CAAmBz9B,YAAnB,CAAgCpL,IAAhC,CAAqC,KAAK6oC,aAA1C,CAA/B,CACA,KAAKziC,UAAL,CAAgBlH,aAAhB,CAAgC,KAAK2pC,aAAL,CAAmB3pC,aAAnB,CAAiCc,IAAjC,CAAsC,KAAK6oC,aAA3C,CAAhC,CACA,KAAKziC,UAAL,CAAgBkgC,WAAhB,CAA8B,KAAKuC,aAAL,CAAmBtjC,cAAjD,CACA,KAAKa,UAAL,CAAgBZ,eAAhB,CAAkC,KAAKqjC,aAAL,CAAmBrjC,eAArD,CACA,KAAKY,UAAL,CAAgBwW,OAAhB,CAA0B,CAA1B,CACA,KAAKxW,UAAL,CAAgB9B,SAAhB,CAA4B8D,QAAQ,CAACE,EAArC,CACA,KAAKlC,UAAL,CAAgB1C,EAAhB,CAAqB0E,QAAQ,CAAC1E,EAA9B,CACA,KAAK0C,UAAL,CAAgBo6B,QAAhB,CAA2B,CAC1BxkB,CAAC,CAAE5T,QAAQ,CAAC4T,CADc,CAE1B7nB,CAAC,CAAEiU,QAAQ,CAACjU,CAFc,CAA3B,CAIA,CAfD,CAiBA,SAAS20C,gBAAT,EAA4B,EAE5BA,gBAAgB,CAAC97C,SAAjB,CAA6B,CAC5B+7C,aAAa,CAAE,UAAY,CAC1B,KAAKzP,cAAL,CAAsB,CACrBC,KAAK,CAAE,KAAK5iC,IAAL,CAAU8C,EAAV,CAAe00B,wBAAwB,CAACqB,oBAAzB,CAA8C,IAA9C,CAAoD,KAAK74B,IAAL,CAAU8C,EAA9D,CAAkE,IAAlE,CAAf,CAAyF,CAAEE,CAAC,CAAE,CAAL,CAD3E,CAErBqvC,OAAO,CAAE,KAFY,CAGrBC,MAAM,CAAE,KAHa,CAIrB3a,GAAG,CAAE,IAAIxK,MAAJ,EAJgB,CAAtB,CAMA,GAAI,KAAKntB,IAAL,CAAUuyC,EAAd,CAAkB,CACjB,KAAK5P,cAAL,CAAoBC,KAApB,CAA0BrK,YAA1B,CAAyC,IAAzC,CACA,CAED;CACA,GAAI,KAAKv4B,IAAL,CAAU8B,EAAV,GAAiB,EAArB,CAAyB,CAGzB,CAhB2B,CAiB5B0wC,eAAe,CAAE,UAAY,CAC5B,KAAK7P,cAAL,CAAoB2P,MAApB,CAA6B,KAAK3P,cAAL,CAAoBC,KAApB,CAA0B5/B,CAA1B,CAA4B+iB,IAA5B,EAAoC,KAAKK,aAAtE,CACA,KAAKuc,cAAL,CAAoB0P,OAApB,CAA8B,KAAK1P,cAAL,CAAoBC,KAApB,CAA0B7c,IAA1B,EAAkC,KAAKK,aAArE,CAEA,GAAI,KAAKugB,SAAT,CAAoB,CACnB,IAAIhP,GAAJ,CACA,IAAI8a,QAAQ,CAAG,KAAK9P,cAAL,CAAoBhL,GAAnC,CACA,IAAI1hC,CAAC,CAAG,CAAR,CACA,IAAIC,GAAG,CAAG,KAAKywC,SAAL,CAAexwC,MAAzB,CACA;CACA,GAAI,CAAC,KAAKwsC,cAAL,CAAoB0P,OAAzB,CAAkC,CACjC,MAAOp8C,CAAC,CAAGC,GAAX,CAAgB,CACf,GAAI,KAAKywC,SAAL,CAAe1wC,CAAf,EAAkB0sC,cAAlB,CAAiCC,KAAjC,CAAuC7c,IAA3C,CAAiD,CAChD,KAAK4c,cAAL,CAAoB0P,OAApB,CAA8B,IAA9B,CACA,MACA,CACDp8C,CAAC,EAAI,CAAL,CACA,CACD,CAED,GAAI,KAAK0sC,cAAL,CAAoB0P,OAAxB,CAAiC,CAChC1a,GAAG,CAAG,KAAKgL,cAAL,CAAoBC,KAApB,CAA0BllC,CAA1B,CAA4B+vB,KAAlC,CACAglB,QAAQ,CAACzhB,cAAT,CAAwB2G,GAAxB,EACA,IAAK1hC,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B0hC,GAAG,CAAG,KAAKgP,SAAL,CAAe1wC,CAAf,EAAkB0sC,cAAlB,CAAiCC,KAAjC,CAAuCllC,CAAvC,CAAyC+vB,KAA/C,CACAglB,QAAQ,CAAC5jB,SAAT,CAAmB8I,GAAG,CAAC,CAAD,CAAtB,CAA2BA,GAAG,CAAC,CAAD,CAA9B,CAAmCA,GAAG,CAAC,CAAD,CAAtC,CAA2CA,GAAG,CAAC,CAAD,CAA9C,CAAmDA,GAAG,CAAC,CAAD,CAAtD,CAA2DA,GAAG,CAAC,CAAD,CAA9D,CAAmEA,GAAG,CAAC,CAAD,CAAtE,CAA2EA,GAAG,CAAC,CAAD,CAA9E,CAAmFA,GAAG,CAAC,CAAD,CAAtF,CAA2FA,GAAG,CAAC,CAAD,CAA9F,CAAmGA,GAAG,CAAC,EAAD,CAAtG,CAA4GA,GAAG,CAAC,EAAD,CAA/G,CAAqHA,GAAG,CAAC,EAAD,CAAxH,CAA8HA,GAAG,CAAC,EAAD,CAAjI,CAAuIA,GAAG,CAAC,EAAD,CAA1I,CAAgJA,GAAG,CAAC,EAAD,CAAnJ,EACA,CACD,CACD,CACD,CA9C2B,CA+C5B+a,aAAa,CAAE,SAAU9wC,EAAV,CAAc,CAC5B,IAAI+wC,UAAU,CAAG,EAAjB,CACAA,UAAU,CAACn7C,IAAX,CAAgB,KAAKmrC,cAArB,EACA,IAAIttC,IAAI,CAAG,IAAX,CACA,IAAIoN,IAAI,CAAG,KAAKA,IAAhB,CACA,MAAOpN,IAAP,CAAa,CACZ,GAAIoN,IAAI,CAACkgC,cAAT,CAAyB,CACxB,GAAIlgC,IAAI,CAACzC,IAAL,CAAUyB,OAAd,CAAuB,CACtBkxC,UAAU,CAACrnC,MAAX,CAAkB,CAAlB,CAAqB,CAArB,CAAwB7I,IAAI,CAACkgC,cAA7B,EACA,CACDlgC,IAAI,CAAGA,IAAI,CAACA,IAAZ,CACA,CALD,IAKO,CACNpN,IAAI,CAAG,KAAP,CACA,CACD,CACD,IAAIY,CAAJ,CACA,IAAIC,GAAG,CAAGy8C,UAAU,CAACx8C,MAArB,CACA,IAAIy8C,KAAJ,CACA,IAAK38C,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B28C,KAAK,CAAGD,UAAU,CAAC18C,CAAD,CAAV,CAAc0hC,GAAd,CAAkBlG,iBAAlB,CAAoC,CAApC,CAAuC,CAAvC,CAA0C,CAA1C,CAAR,CACA;CACA7vB,EAAE,CAAG,CAACA,EAAE,CAAC,CAAD,CAAF,CAAQgxC,KAAK,CAAC,CAAD,CAAd,CAAmBhxC,EAAE,CAAC,CAAD,CAAF,CAAQgxC,KAAK,CAAC,CAAD,CAAhC,CAAqC,CAArC,CAAL,CACA,CACD,OAAOhxC,EAAP,CACA,CAvE2B,CAwE5BixC,OAAO,CAAE,IAAI1lB,MAAJ,EAxEmB,CAA7B,CA2EA,SAAS2lB,WAAT,CAAqB9yC,IAArB,CAA2B1E,OAA3B,CAAoCmU,UAApC,CAAgD,CAC/C,KAAKzP,IAAL,CAAYA,IAAZ,CACA,KAAK1E,OAAL,CAAeA,OAAf,CACA,KAAKmU,UAAL,CAAkBA,UAAlB,CACA,KAAKwO,UAAL,CAAkB,EAAlB,CACA,KAAKtc,eAAL,CAAuB,KAAK3B,IAAL,CAAU2B,eAAV,EAA6B,EAApD,CACA,KAAKoxC,WAAL,CAAmB,IAAnB,CACA,IAAIrjC,IAAI,CAAG,KAAKD,UAAL,CAAgBC,IAA3B,CACA,IAAIzZ,CAAJ,CACA,IAAIC,GAAG,CAAG,KAAKyL,eAAL,CAAuB,KAAKA,eAAL,CAAqBxL,MAA5C,CAAqD,CAA/D,CACA,KAAKytC,QAAL,CAAgBvqC,gBAAgB,CAACnD,GAAD,CAAhC,CACA,KAAK88C,SAAL,CAAiB,EAAjB,CAEA,IAAIjzC,IAAJ,CACA,IAAIkzC,UAAU,CAAG,KAAKtxC,eAAtB,CACA,IAAIuxC,KAAK,CAAG,CAAZ,CACA,IAAIC,YAAY,CAAG,EAAnB,CACA,IAAIjyC,CAAJ,CACA,IAAIC,IAAJ,CACA,IAAIutC,OAAO,CAAGtxC,eAAe,EAA7B,CACA,IAAIg2C,IAAJ,CACA,IAAIC,QAAJ,CACA,IAAIC,OAAJ,CACA,IAAI95B,CAAJ,CACA,IAAI+5B,QAAQ,CAAG,UAAf,CACA,IAAIC,OAAO,CAAG,WAAd,CACA,IAAKv9C,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B,GAAKg9C,UAAU,CAACh9C,CAAD,CAAV,CAAci3C,IAAd,GAAuB,GAAvB,EAA8B+F,UAAU,CAACh9C,CAAD,CAAV,CAAci3C,IAAd,GAAuB,GAAtD,EAA8D+F,UAAU,CAACh9C,CAAD,CAAV,CAAcujC,GAA5E,EAAmFyZ,UAAU,CAACh9C,CAAD,CAAV,CAAc+M,CAAd,CAAgB5B,CAAhB,GAAsB,GAAzG,EAAgH6xC,UAAU,CAACh9C,CAAD,CAAV,CAAc+M,CAAd,CAAgBwW,CAApI,CAAuI,CACtI+5B,QAAQ,CAAG,MAAX,CACAC,OAAO,CAAG,MAAV,CACA,CAED,GAAI,CAACP,UAAU,CAACh9C,CAAD,CAAV,CAAci3C,IAAd,GAAuB,GAAvB,EAA8B+F,UAAU,CAACh9C,CAAD,CAAV,CAAci3C,IAAd,GAAuB,GAAtD,GAA8DgG,KAAK,GAAK,CAA5E,CAA+E,CAC9EE,IAAI,CAAG/zC,QAAQ,CAAC,MAAD,CAAf,CACA+zC,IAAI,CAACz8B,YAAL,CAAkB,MAAlB,CAA0B,SAA1B,EACAy8B,IAAI,CAACz8B,YAAL,CAAkB,OAAlB,CAA2B,KAAKrb,OAAL,CAAamH,IAAb,CAAkBzC,IAAlB,CAAuBqlB,CAAvB,EAA4B,CAAvD,EACA+tB,IAAI,CAACz8B,YAAL,CAAkB,QAAlB,CAA4B,KAAKrb,OAAL,CAAamH,IAAb,CAAkBzC,IAAlB,CAAuBxC,CAAvB,EAA4B,CAAxD,EACA21C,YAAY,CAAC37C,IAAb,CAAkB47C,IAAlB,EACA,CAND,IAMO,CACNA,IAAI,CAAG,IAAP,CACA,CAEDrzC,IAAI,CAAGV,QAAQ,CAAC,MAAD,CAAf,CACA,GAAI4zC,UAAU,CAACh9C,CAAD,CAAV,CAAci3C,IAAd,GAAuB,GAA3B,CAAgC;CAE/B,KAAKtJ,QAAL,CAAc3tC,CAAd,EAAmB,CAClB+N,EAAE,CAAEsc,eAAe,CAAC2G,OAAhB,CAAwB,KAAK3rB,OAA7B,CAAsC23C,UAAU,CAACh9C,CAAD,CAAV,CAAc+M,CAApD,CAAuD,CAAvD,CAA0D,IAA1D,CAAgE,KAAK1H,OAArE,CADc,CAElB1E,IAAI,CAAE2yB,oBAAoB,CAACwD,YAArB,CAAkC,KAAKzxB,OAAvC,CAAgD23C,UAAU,CAACh9C,CAAD,CAA1D,CAA+D,CAA/D,CAFY,CAGlB0f,IAAI,CAAE5V,IAHY,CAIlB0zC,QAAQ,CAAE,EAJQ,CAAnB,CAMA/jC,IAAI,CAAC9F,WAAL,CAAiB7J,IAAjB,EACA,CATD,IASO,CACNmzC,KAAK,EAAI,CAAT,CAEAnzC,IAAI,CAAC4W,YAAL,CAAkB,MAAlB,CAA0Bs8B,UAAU,CAACh9C,CAAD,CAAV,CAAci3C,IAAd,GAAuB,GAAvB,CAA6B,SAA7B,CAAyC,SAAnE,EACAntC,IAAI,CAAC4W,YAAL,CAAkB,WAAlB,CAA+B,SAA/B,EACA,IAAI+8B,QAAJ,CAEA,GAAIT,UAAU,CAACh9C,CAAD,CAAV,CAAcujB,CAAd,CAAgBpY,CAAhB,GAAsB,CAA1B,CAA6B,CAC5BmyC,QAAQ,CAAG,MAAX,CACAC,OAAO,CAAG,MAAV,CACAh6B,CAAC,CAAG8G,eAAe,CAAC2G,OAAhB,CAAwB,KAAK3rB,OAA7B,CAAsC23C,UAAU,CAACh9C,CAAD,CAAV,CAAcujB,CAApD,CAAuD,CAAvD,CAA0D,IAA1D,CAAgE,KAAKle,OAArE,CAAJ,CACAo4C,QAAQ,CAAGt2C,eAAe,EAA1B,CACAi2C,QAAQ,CAAGh0C,QAAQ,CAAC,QAAD,CAAnB,CACAg0C,QAAQ,CAAC18B,YAAT,CAAsB,IAAtB,CAA4B+8B,QAA5B,EACAJ,OAAO,CAAGj0C,QAAQ,CAAC,cAAD,CAAlB,CACAi0C,OAAO,CAAC38B,YAAR,CAAqB,UAArB,CAAiC,OAAjC,EACA28B,OAAO,CAAC38B,YAAR,CAAqB,IAArB,CAA2B,eAA3B,EACA28B,OAAO,CAAC38B,YAAR,CAAqB,QAArB,CAA+B,GAA/B,EACA08B,QAAQ,CAACzpC,WAAT,CAAqB0pC,OAArB,EACA5jC,IAAI,CAAC9F,WAAL,CAAiBypC,QAAjB,EACAtzC,IAAI,CAAC4W,YAAL,CAAkB,QAAlB,CAA4Bs8B,UAAU,CAACh9C,CAAD,CAAV,CAAci3C,IAAd,GAAuB,GAAvB,CAA6B,SAA7B,CAAyC,SAArE,EACA,CAdD,IAcO,CACNoG,OAAO,CAAG,IAAV,CACA95B,CAAC,CAAG,IAAJ,CACA,CAED;CACA,KAAKyE,UAAL,CAAgBhoB,CAAhB,EAAqB,CACpB0f,IAAI,CAAE5V,IADc,CAEpByZ,CAAC,CAAEA,CAFiB,CAGpBm6B,KAAK,CAAEL,OAHa,CAIpBG,QAAQ,CAAE,EAJU,CAKpBG,YAAY,CAAE,EALM,CAMpBC,QAAQ,CAAEH,QANU,CAOpBI,UAAU,CAAE,CAPQ,CAArB,CASA,GAAIb,UAAU,CAACh9C,CAAD,CAAV,CAAci3C,IAAd,GAAuB,GAA3B,CAAgC,CAC/B/rC,IAAI,CAAGgyC,YAAY,CAACh9C,MAApB,CACA,IAAIyH,CAAC,CAAGyB,QAAQ,CAAC,GAAD,CAAhB,CACA,IAAK6B,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,IAAhB,CAAsBD,CAAC,EAAI,CAA3B,CAA8B,CAC7BtD,CAAC,CAACgM,WAAF,CAAcupC,YAAY,CAACjyC,CAAD,CAA1B,EACA,CACD,IAAImiC,IAAI,CAAGhkC,QAAQ,CAAC,MAAD,CAAnB,CACAgkC,IAAI,CAAC1sB,YAAL,CAAkB,WAAlB,CAA+B,OAA/B,EACA0sB,IAAI,CAAC1sB,YAAL,CAAkB,IAAlB,CAAwB+3B,OAAO,CAAG,GAAV,CAAgBwE,KAAxC,EACA7P,IAAI,CAACz5B,WAAL,CAAiB7J,IAAjB,EACA2P,IAAI,CAAC9F,WAAL,CAAiBy5B,IAAjB,EACAzlC,CAAC,CAAC+Y,YAAF,CAAe,MAAf,CAAuB,OAASlhB,eAAe,EAAxB,CAA6B,GAA7B,CAAmCi5C,OAAnC,CAA6C,GAA7C,CAAmDwE,KAAnD,CAA2D,GAAlF,EAEAC,YAAY,CAACh9C,MAAb,CAAsB,CAAtB,CACAg9C,YAAY,CAAC37C,IAAb,CAAkBoG,CAAlB,EACA,CAfD,IAeO,CACNu1C,YAAY,CAAC37C,IAAb,CAAkBuI,IAAlB,EACA,CACD,GAAIkzC,UAAU,CAACh9C,CAAD,CAAV,CAAcujC,GAAd,EAAqB,CAAC,KAAKwZ,SAA/B,CAA0C,CACzC,KAAKA,SAAL,CAAiB,KAAKe,oBAAL,EAAjB,CACA,CACD;CACA,KAAKnQ,QAAL,CAAc3tC,CAAd,EAAmB,CAClB0f,IAAI,CAAE5V,IADY,CAElB0zC,QAAQ,CAAE,EAFQ,CAGlBzvC,EAAE,CAAEsc,eAAe,CAAC2G,OAAhB,CAAwB,KAAK3rB,OAA7B,CAAsC23C,UAAU,CAACh9C,CAAD,CAAV,CAAc+M,CAApD,CAAuD,CAAvD,CAA0D,IAA1D,CAAgE,KAAK1H,OAArE,CAHc,CAIlB1E,IAAI,CAAE2yB,oBAAoB,CAACwD,YAArB,CAAkC,KAAKzxB,OAAvC,CAAgD23C,UAAU,CAACh9C,CAAD,CAA1D,CAA+D,CAA/D,CAJY,CAKlB+9C,OAAO,CAAEZ,IALS,CAAnB,CAOA,GAAI,CAAC,KAAKxP,QAAL,CAAc3tC,CAAd,EAAiBW,IAAjB,CAAsBwK,CAA3B,CAA8B,CAC7B,KAAK6yC,QAAL,CAAchB,UAAU,CAACh9C,CAAD,CAAxB,CAA6B,KAAK2tC,QAAL,CAAc3tC,CAAd,EAAiBW,IAAjB,CAAsB8G,CAAnD,CAAsD,KAAKkmC,QAAL,CAAc3tC,CAAd,CAAtD,EACA,CACD,CACD,CAED,KAAK88C,WAAL,CAAmB1zC,QAAQ,CAACk0C,QAAD,CAA3B,CAEAr9C,GAAG,CAAGi9C,YAAY,CAACh9C,MAAnB,CACA,IAAKF,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B,KAAK88C,WAAL,CAAiBnpC,WAAjB,CAA6BupC,YAAY,CAACl9C,CAAD,CAAzC,EACA,CAED,GAAIi9C,KAAK,CAAG,CAAZ,CAAe,CACd,KAAKH,WAAL,CAAiBp8B,YAAjB,CAA8B,IAA9B,CAAoC+3B,OAApC,EACA,KAAKpzC,OAAL,CAAa44C,aAAb,CAA2Bv9B,YAA3B,CAAwC68B,OAAxC,CAAiD,OAAS/9C,eAAe,EAAxB,CAA6B,GAA7B,CAAmCi5C,OAAnC,CAA6C,GAA9F,EACAh/B,IAAI,CAAC9F,WAAL,CAAiB,KAAKmpC,WAAtB,EACA,CACD,GAAI,KAAKnP,QAAL,CAAcztC,MAAlB,CAA0B,CACzB,KAAKmF,OAAL,CAAa8mC,sBAAb,CAAoC,IAApC,EACA,CACD,CAED0Q,WAAW,CAACz8C,SAAZ,CAAsB89C,eAAtB,CAAwC,SAAUtsB,GAAV,CAAe,CACtD,YAAY+b,QAAL,CAAc/b,GAAd,EAAmBjxB,IAA1B,CACA,CAFD,CAIAk8C,WAAW,CAACz8C,SAAZ,CAAsBkc,WAAtB,CAAoC,SAAU6hC,YAAV,CAAwB,CAC3D,IAAI3B,QAAQ,CAAG,KAAKn3C,OAAL,CAAaqnC,cAAb,CAA4BhL,GAA3C,CACA,IAAI1hC,CAAJ,CACA,IAAIC,GAAG,CAAG,KAAKyL,eAAL,CAAqBxL,MAA/B,CACA,IAAKF,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B,GAAI,KAAK2tC,QAAL,CAAc3tC,CAAd,EAAiBW,IAAjB,CAAsBmvB,IAAtB,EAA8BquB,YAAlC,CAAgD,CAC/C,KAAKH,QAAL,CAAc,KAAKtyC,eAAL,CAAqB1L,CAArB,CAAd,CAAuC,KAAK2tC,QAAL,CAAc3tC,CAAd,EAAiBW,IAAjB,CAAsB8G,CAA7D,CAAgE,KAAKkmC,QAAL,CAAc3tC,CAAd,CAAhE,EACA,CACD,GAAI,KAAK2tC,QAAL,CAAc3tC,CAAd,EAAiB+N,EAAjB,CAAoB+hB,IAApB,EAA4BquB,YAAhC,CAA8C,CAC7C,KAAKxQ,QAAL,CAAc3tC,CAAd,EAAiB0f,IAAjB,CAAsBgB,YAAtB,CAAmC,cAAnC,CAAmD,KAAKitB,QAAL,CAAc3tC,CAAd,EAAiB+N,EAAjB,CAAoBtG,CAAvE,EACA,CACD,GAAI,KAAKiE,eAAL,CAAqB1L,CAArB,EAAwBi3C,IAAxB,GAAiC,GAArC,CAA0C,CACzC,GAAI,KAAKtJ,QAAL,CAAc3tC,CAAd,EAAiB+9C,OAAjB,GAA6B,KAAK14C,OAAL,CAAaqnC,cAAb,CAA4BC,KAA5B,CAAkC7c,IAAlC,EAA0CquB,YAAvE,CAAJ,CAA0F,CACzF,KAAKxQ,QAAL,CAAc3tC,CAAd,EAAiB+9C,OAAjB,CAAyBr9B,YAAzB,CAAsC,WAAtC,CAAmD87B,QAAQ,CAACphB,gBAAT,GAA4BiB,OAA5B,EAAnD,EACA,CACD,GAAI,KAAKrU,UAAL,CAAgBhoB,CAAhB,EAAmBujB,CAAnB,GAAyB,KAAKyE,UAAL,CAAgBhoB,CAAhB,EAAmBujB,CAAnB,CAAqBuM,IAArB,EAA6BquB,YAAtD,CAAJ,CAAyE,CACxE,IAAId,OAAO,CAAG,KAAKr1B,UAAL,CAAgBhoB,CAAhB,EAAmB09C,KAAjC,CACA,GAAI,KAAK11B,UAAL,CAAgBhoB,CAAhB,EAAmBujB,CAAnB,CAAqB9b,CAArB,CAAyB,CAA7B,CAAgC,CAC/B,GAAI,KAAKugB,UAAL,CAAgBhoB,CAAhB,EAAmB29C,YAAnB,GAAoC,OAAxC,CAAiD,CAChD,KAAK31B,UAAL,CAAgBhoB,CAAhB,EAAmB29C,YAAnB,CAAkC,OAAlC,CACA,KAAK31B,UAAL,CAAgBhoB,CAAhB,EAAmB0f,IAAnB,CAAwBgB,YAAxB,CAAqC,QAArC,CAA+C,OAASlhB,eAAe,EAAxB,CAA6B,GAA7B,CAAmC,KAAKwoB,UAAL,CAAgBhoB,CAAhB,EAAmB49C,QAAtD,CAAiE,GAAhH,EACA,CACDP,OAAO,CAAC38B,YAAR,CAAqB,QAArB,CAA+B,CAAC,KAAKsH,UAAL,CAAgBhoB,CAAhB,EAAmBujB,CAAnB,CAAqB9b,CAArD,EACA,CAND,IAMO,CACN,GAAI,KAAKugB,UAAL,CAAgBhoB,CAAhB,EAAmB29C,YAAnB,GAAoC,QAAxC,CAAkD,CACjD,KAAK31B,UAAL,CAAgBhoB,CAAhB,EAAmB29C,YAAnB,CAAkC,QAAlC,CACA,KAAK31B,UAAL,CAAgBhoB,CAAhB,EAAmB0f,IAAnB,CAAwBgB,YAAxB,CAAqC,QAArC,CAA+C,IAA/C,EACA,CACD,KAAKsH,UAAL,CAAgBhoB,CAAhB,EAAmB0f,IAAnB,CAAwBgB,YAAxB,CAAqC,cAArC,CAAqD,KAAKsH,UAAL,CAAgBhoB,CAAhB,EAAmBujB,CAAnB,CAAqB9b,CAArB,CAAyB,CAA9E,EACA,CACD,CACD,CACD,CACD,CAjCD,CAmCAo1C,WAAW,CAACz8C,SAAZ,CAAsBg+C,cAAtB,CAAuC,UAAY,CAClD,YAAYtB,WAAZ,CACA,CAFD,CAIAD,WAAW,CAACz8C,SAAZ,CAAsB09C,oBAAtB,CAA6C,UAAY,CACxD,IAAIh0C,IAAI,CAAG,OAAX,CACAA,IAAI,EAAI,KAAO,KAAK0P,UAAL,CAAgBo6B,QAAhB,CAAyBxkB,CAAxC,CACAtlB,IAAI,EAAI,KAAO,KAAK0P,UAAL,CAAgBo6B,QAAhB,CAAyBrsC,CAAxC,CACAuC,IAAI,EAAI,MAAQ,KAAK0P,UAAL,CAAgBo6B,QAAhB,CAAyBxkB,CAAzC,CACAtlB,IAAI,EAAI,MAAQ,KAAK0P,UAAL,CAAgBo6B,QAAhB,CAAyBrsC,CAAjC,CAAqC,GAA7C,CACA,OAAOuC,IAAP,CACA,CAPD,CASA+yC,WAAW,CAACz8C,SAAZ,CAAsB49C,QAAtB,CAAiC,SAAU1vC,QAAV,CAAoB+vC,SAApB,CAA+B1Q,QAA/B,CAAyC,CACzE,IAAI2Q,UAAU,CAAG,KAAOD,SAAS,CAAC52C,CAAV,CAAY,CAAZ,EAAe,CAAf,CAAP,CAA2B,GAA3B,CAAiC42C,SAAS,CAAC52C,CAAV,CAAY,CAAZ,EAAe,CAAf,CAAlD,CACA,IAAIzH,CAAJ,CACA,IAAIC,GAAJ,CACAA,GAAG,CAAGo+C,SAAS,CAAC35B,OAAhB,CACA,IAAK1kB,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B;CAE5Bs+C,UAAU,EAAI,KAAOD,SAAS,CAACtxC,CAAV,CAAY/M,CAAC,CAAG,CAAhB,EAAmB,CAAnB,CAAP,CAA+B,GAA/B,CAAqCq+C,SAAS,CAACtxC,CAAV,CAAY/M,CAAC,CAAG,CAAhB,EAAmB,CAAnB,CAArC,CAA6D,GAA7D,CAAmEq+C,SAAS,CAACr+C,CAAV,CAAYA,CAAZ,EAAe,CAAf,CAAnE,CAAuF,GAAvF,CAA6Fq+C,SAAS,CAACr+C,CAAV,CAAYA,CAAZ,EAAe,CAAf,CAA7F,CAAiH,GAAjH,CAAuHq+C,SAAS,CAAC52C,CAAV,CAAYzH,CAAZ,EAAe,CAAf,CAAvH,CAA2I,GAA3I,CAAiJq+C,SAAS,CAAC52C,CAAV,CAAYzH,CAAZ,EAAe,CAAf,CAA/J,CACA,CACD;CACA,GAAIq+C,SAAS,CAAC5vC,CAAV,EAAexO,GAAG,CAAG,CAAzB,CAA4B,CAC3Bq+C,UAAU,EAAI,KAAOD,SAAS,CAACtxC,CAAV,CAAY/M,CAAC,CAAG,CAAhB,EAAmB,CAAnB,CAAP,CAA+B,GAA/B,CAAqCq+C,SAAS,CAACtxC,CAAV,CAAY/M,CAAC,CAAG,CAAhB,EAAmB,CAAnB,CAArC,CAA6D,GAA7D,CAAmEq+C,SAAS,CAACr+C,CAAV,CAAY,CAAZ,EAAe,CAAf,CAAnE,CAAuF,GAAvF,CAA6Fq+C,SAAS,CAACr+C,CAAV,CAAY,CAAZ,EAAe,CAAf,CAA7F,CAAiH,GAAjH,CAAuHq+C,SAAS,CAAC52C,CAAV,CAAY,CAAZ,EAAe,CAAf,CAAvH,CAA2I,GAA3I,CAAiJ42C,SAAS,CAAC52C,CAAV,CAAY,CAAZ,EAAe,CAAf,CAA/J,CACA,CACD;CAEA,GAAIkmC,QAAQ,CAAC6P,QAAT,GAAsBc,UAA1B,CAAsC,CACrC,IAAIC,cAAc,CAAG,EAArB,CACA,GAAI5Q,QAAQ,CAACjuB,IAAb,CAAmB,CAClB,GAAI2+B,SAAS,CAAC5vC,CAAd,CAAiB,CAChB8vC,cAAc,CAAGjwC,QAAQ,CAACi1B,GAAT,CAAe,KAAKwZ,SAAL,CAAiBuB,UAAhC,CAA6CA,UAA9D,CACA,CACD3Q,QAAQ,CAACjuB,IAAT,CAAcgB,YAAd,CAA2B,GAA3B,CAAgC69B,cAAhC,EACA,CACD5Q,QAAQ,CAAC6P,QAAT,CAAoBc,UAApB,CACA,CACD,CAzBD,CA2BAzB,WAAW,CAACz8C,SAAZ,CAAsBoU,OAAtB,CAAgC,UAAY,CAC3C,KAAKnP,OAAL,CAAe,IAAf,CACA,KAAKmU,UAAL,CAAkB,IAAlB,CACA,KAAKsjC,WAAL,CAAmB,IAAnB,CACA,KAAK/yC,IAAL,CAAY,IAAZ,CACA,KAAK2B,eAAL,CAAuB,IAAvB,CACA,CAND,CAQA,MAAM8yC,cAAc,CAAI,UAAY,CACnC,IAAIjrC,EAAE,CAAG,EAAT,CACAA,EAAE,CAACkrC,YAAH,CAAkBA,YAAlB,CACAlrC,EAAE,CAACmrC,4BAAH,CAAkCA,4BAAlC,CAEA,SAASD,YAAT,CAAsBE,KAAtB,CAA6BC,eAA7B,CAA8C,CAC7C,IAAIC,GAAG,CAAGz1C,QAAQ,CAAC,QAAD,CAAlB,CACAy1C,GAAG,CAACn+B,YAAJ,CAAiB,IAAjB,CAAuBi+B,KAAvB,EACA,GAAIC,eAAe,GAAK,IAAxB,CAA8B,CAC7BC,GAAG,CAACn+B,YAAJ,CAAiB,aAAjB,CAAgC,mBAAhC,EACAm+B,GAAG,CAACn+B,YAAJ,CAAiB,GAAjB,CAAsB,IAAtB,EACAm+B,GAAG,CAACn+B,YAAJ,CAAiB,GAAjB,CAAsB,IAAtB,EACAm+B,GAAG,CAACn+B,YAAJ,CAAiB,OAAjB,CAA0B,MAA1B,EACAm+B,GAAG,CAACn+B,YAAJ,CAAiB,QAAjB,CAA2B,MAA3B,EACA,CACD,OAAOm+B,GAAP,CACA,CAED,SAASH,4BAAT,EAAwC,CACvC,IAAII,aAAa,CAAG11C,QAAQ,CAAC,eAAD,CAA5B,CACA01C,aAAa,CAACp+B,YAAd,CAA2B,MAA3B,CAAmC,QAAnC,EACAo+B,aAAa,CAACp+B,YAAd,CAA2B,6BAA3B,CAA0D,MAA1D,EACAo+B,aAAa,CAACp+B,YAAd,CAA2B,QAA3B,CAAqC,4CAArC,EACA,OAAOo+B,aAAP,CACA,CAED,OAAOvrC,EAAP,CACA,CA3BuB,EAAxB,CA6BA,MAAMwrC,cAAc,CAAI,UAAY,CACnC,IAAIxrC,EAAE,CAAG,CACR+pC,QAAQ,CAAE,IADF,CAAT,CAGA,GAAI,WAAW35C,IAAX,CAAgBC,SAAS,CAACC,SAA1B,GAAwC,UAAUF,IAAV,CAAeC,SAAS,CAACC,SAAzB,CAAxC,EAA+E,WAAWF,IAAX,CAAgBC,SAAS,CAACC,SAA1B,CAA/E,EAAuH,aAAaF,IAAb,CAAkBC,SAAS,CAACC,SAA5B,CAA3H,CAAmK,CAClK0P,EAAE,CAAC+pC,QAAH,CAAc,KAAd,CACA,CACD,OAAO/pC,EAAP,CACA,CARuB,EAAxB,CAUA,IAAIyrC,iBAAiB,CAAG,EAAxB,CACA,IAAIC,QAAQ,CAAG,gBAAf,CAEA,SAASC,UAAT,CAAoBx/B,IAApB,CAA0B,CACzB,IAAI1f,CAAJ,CACA,IAAI6xC,MAAM,CAAG,eAAb,CACA,IAAI5xC,GAAG,CAAGyf,IAAI,CAAC3V,IAAL,CAAU+oC,EAAV,CAAepzB,IAAI,CAAC3V,IAAL,CAAU+oC,EAAV,CAAa5yC,MAA5B,CAAqC,CAA/C,CACA,IAAIy+C,KAAK,CAAGx3C,eAAe,EAA3B,CACA,IAAI03C,GAAG,CAAGL,cAAc,CAACC,YAAf,CAA4BE,KAA5B,CAAmC,IAAnC,CAAV,CACA,IAAI1B,KAAK,CAAG,CAAZ,CACA,KAAKkC,OAAL,CAAe,EAAf,CACA,IAAIC,aAAJ,CACA,IAAKp/C,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5Bo/C,aAAa,CAAG,IAAhB,CACA,IAAI1/C,IAAI,CAAGggB,IAAI,CAAC3V,IAAL,CAAU+oC,EAAV,CAAa9yC,CAAb,EAAgB6L,EAA3B,CACA,GAAImzC,iBAAiB,CAACt/C,IAAD,CAArB,CAA6B,CAC5B,IAAI2/C,MAAM,CAAGL,iBAAiB,CAACt/C,IAAD,CAAjB,CAAwBwxC,MAArC,CACAkO,aAAa,CAAG,IAAIC,MAAJ,CAAWR,GAAX,CAAgBn/B,IAAI,CAACizB,cAAL,CAAoBC,cAApB,CAAmC5yC,CAAnC,CAAhB,CAAuD0f,IAAvD,CAA6Du/B,QAAQ,CAAGhC,KAAxE,CAA+EpL,MAA/E,CAAhB,CACAA,MAAM,CAAGoN,QAAQ,CAAGhC,KAApB,CACA,GAAI+B,iBAAiB,CAACt/C,IAAD,CAAjB,CAAwB4/C,cAA5B,CAA4C,CAC3CrC,KAAK,EAAI,CAAT,CACA,CACD,CACD,GAAImC,aAAJ,CAAmB,CAClB,KAAKD,OAAL,CAAa59C,IAAb,CAAkB69C,aAAlB,EACA,CACD,CACD,GAAInC,KAAJ,CAAW,CACVv9B,IAAI,CAAClG,UAAL,CAAgBC,IAAhB,CAAqB9F,WAArB,CAAiCkrC,GAAjC,EACAn/B,IAAI,CAAC64B,YAAL,CAAkB73B,YAAlB,CAA+B,QAA/B,CAAyC,OAASlhB,eAAe,EAAxB,CAA6B,GAA7B,CAAmCm/C,KAAnC,CAA2C,GAApF,EACA,CACD,GAAI,KAAKQ,OAAL,CAAaj/C,MAAjB,CAAyB,CACxBwf,IAAI,CAACysB,sBAAL,CAA4B,IAA5B,EACA,CACD,CAED+S,UAAU,CAAC9+C,SAAX,CAAqBkc,WAArB,CAAmC,SAAU6T,aAAV,CAAyB,CAC3D,IAAInwB,CAAJ,CACA,IAAIC,GAAG,CAAG,KAAKk/C,OAAL,CAAaj/C,MAAvB,CACA,IAAKF,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B,KAAKm/C,OAAL,CAAan/C,CAAb,EAAgBsc,WAAhB,CAA4B6T,aAA5B,EACA,CACD,CAND,CAQA,SAASovB,cAAT,CAAwBhzC,EAAxB,CAA4B2kC,MAA5B,CAAoCoO,cAApC,CAAoD,CACnDN,iBAAiB,CAACzyC,EAAD,CAAjB,CAAwB,CACvB2kC,MADuB,CAEvBoO,cAFuB,CAAxB,CAIA,CAED,SAASE,cAAT,EAA0B,EAG1BA,cAAc,CAACp/C,SAAf,CAA2B,CAC1Bq/C,mBAAmB,CAAE,UAAY,CAChC,KAAKlH,YAAL,CAAoBnvC,QAAQ,CAAC,GAAD,CAA5B,CACA,CAHyB,CAI1Bs2C,uBAAuB,CAAE,UAAY,CACpC,KAAKC,YAAL,CAAoBv2C,QAAQ,CAAC,GAAD,CAA5B,CACA,KAAKw2C,kBAAL,CAA0B,KAAKrH,YAA/B,CACA,KAAK0F,aAAL,CAAqB,KAAK1F,YAA1B,CACA,KAAKsH,YAAL,CAAoB,KAApB,CACA,IAAIC,kBAAkB,CAAG,IAAzB,CACA;CACA,IAAInB,KAAJ,CACA,IAAIE,GAAJ,CACA,IAAIkB,EAAJ,CACA,GAAI,KAAKh2C,IAAL,CAAUwB,EAAd,CAAkB,CACjB,GAAI,KAAKxB,IAAL,CAAUwB,EAAV,EAAgB,CAAhB,EAAqB,KAAKxB,IAAL,CAAUwB,EAAV,EAAgB,CAAzC,CAA4C;CAC3C,IAAIy0C,MAAM,CAAG52C,QAAQ,CAAC,MAAD,CAArB,CACA42C,MAAM,CAACt/B,YAAP,CAAoB,IAApB,CAA0B,KAAK+3B,OAA/B,EACAuH,MAAM,CAACt/B,YAAP,CAAoB,WAApB,CAAiC,KAAK3W,IAAL,CAAUwB,EAAV,EAAgB,CAAhB,CAAoB,WAApB,CAAkC,OAAnE,EAA6E;CAC7Ey0C,MAAM,CAACrsC,WAAP,CAAmB,KAAK4kC,YAAxB,EACAuH,kBAAkB,CAAGE,MAArB,CACA,KAAKxmC,UAAL,CAAgBC,IAAhB,CAAqB9F,WAArB,CAAiCqsC,MAAjC,EACA;CACA,GAAI,CAACjB,cAAc,CAACzB,QAAhB,EAA4B,KAAKvzC,IAAL,CAAUwB,EAAV,EAAgB,CAAhD,CAAmD;CAClDy0C,MAAM,CAACt/B,YAAP,CAAoB,WAApB,CAAiC,WAAjC,EACAi+B,KAAK,CAAGx3C,eAAe,EAAvB,CACA03C,GAAG,CAAGL,cAAc,CAACC,YAAf,CAA4BE,KAA5B,CAAN,CACA,KAAKnlC,UAAL,CAAgBC,IAAhB,CAAqB9F,WAArB,CAAiCkrC,GAAjC,EACAA,GAAG,CAAClrC,WAAJ,CAAgB6qC,cAAc,CAACE,4BAAf,EAAhB,EACAqB,EAAE,CAAG32C,QAAQ,CAAC,GAAD,CAAb,CACA22C,EAAE,CAACpsC,WAAH,CAAe,KAAK4kC,YAApB,EACAuH,kBAAkB,CAAGC,EAArB,CACAC,MAAM,CAACrsC,WAAP,CAAmBosC,EAAnB,EACAA,EAAE,CAACr/B,YAAH,CAAgB,QAAhB,CAA0B,OAASlhB,eAAe,EAAxB,CAA6B,GAA7B,CAAmCm/C,KAAnC,CAA2C,GAArE,EACA,CACD,CApBD,QAoBW,KAAK50C,IAAL,CAAUwB,EAAV,EAAgB,CAApB,CAAuB;CAC7B,IAAI00C,SAAS,CAAG72C,QAAQ,CAAC,MAAD,CAAxB,CACA62C,SAAS,CAACv/B,YAAV,CAAuB,IAAvB,CAA6B,KAAK+3B,OAAlC,EACAwH,SAAS,CAACv/B,YAAV,CAAuB,WAAvB,CAAoC,OAApC,EACA,IAAIw/B,WAAW,CAAG92C,QAAQ,CAAC,GAAD,CAA1B,CACA62C,SAAS,CAACtsC,WAAV,CAAsBusC,WAAtB,EACAvB,KAAK,CAAGx3C,eAAe,EAAvB,CACA03C,GAAG,CAAGL,cAAc,CAACC,YAAf,CAA4BE,KAA5B,CAAN,CACA;CAEA;CACA;CACJ;CACA;CACA;CACA;CAEI,IAAIwB,KAAK,CAAG/2C,QAAQ,CAAC,qBAAD,CAApB,CACA+2C,KAAK,CAACz/B,YAAN,CAAmB,IAAnB,CAAyB,eAAzB,EACAm+B,GAAG,CAAClrC,WAAJ,CAAgBwsC,KAAhB,EACA,IAAIC,MAAM,CAAGh3C,QAAQ,CAAC,SAAD,CAArB,CACAg3C,MAAM,CAAC1/B,YAAP,CAAoB,MAApB,CAA4B,OAA5B,EACA0/B,MAAM,CAAC1/B,YAAP,CAAoB,aAApB,CAAmC,SAAnC,EACAy/B,KAAK,CAACxsC,WAAN,CAAkBysC,MAAlB,EACA;CACA,KAAK5mC,UAAL,CAAgBC,IAAhB,CAAqB9F,WAArB,CAAiCkrC,GAAjC,EACA,IAAIwB,SAAS,CAAGj3C,QAAQ,CAAC,MAAD,CAAxB,CACAi3C,SAAS,CAAC3/B,YAAV,CAAuB,OAAvB,CAAgC,KAAKlU,IAAL,CAAUzC,IAAV,CAAeqlB,CAA/C,EACAixB,SAAS,CAAC3/B,YAAV,CAAuB,QAAvB,CAAiC,KAAKlU,IAAL,CAAUzC,IAAV,CAAexC,CAAhD,EACA84C,SAAS,CAAC3/B,YAAV,CAAuB,GAAvB,CAA4B,GAA5B,EACA2/B,SAAS,CAAC3/B,YAAV,CAAuB,GAAvB,CAA4B,GAA5B,EACA2/B,SAAS,CAAC3/B,YAAV,CAAuB,MAAvB,CAA+B,SAA/B,EACA2/B,SAAS,CAAC3/B,YAAV,CAAuB,SAAvB,CAAkC,GAAlC,EACAw/B,WAAW,CAACx/B,YAAZ,CAAyB,QAAzB,CAAmC,OAASlhB,eAAe,EAAxB,CAA6B,GAA7B,CAAmCm/C,KAAnC,CAA2C,GAA9E,EACAuB,WAAW,CAACvsC,WAAZ,CAAwB0sC,SAAxB,EACAH,WAAW,CAACvsC,WAAZ,CAAwB,KAAK4kC,YAA7B,EACAuH,kBAAkB,CAAGI,WAArB,CACA,GAAI,CAACnB,cAAc,CAACzB,QAApB,CAA8B,CAC7B2C,SAAS,CAACv/B,YAAV,CAAuB,WAAvB,CAAoC,WAApC,EACAm+B,GAAG,CAAClrC,WAAJ,CAAgB6qC,cAAc,CAACE,4BAAf,EAAhB,EACAqB,EAAE,CAAG32C,QAAQ,CAAC,GAAD,CAAb,CACA82C,WAAW,CAACvsC,WAAZ,CAAwB0sC,SAAxB,EACAN,EAAE,CAACpsC,WAAH,CAAe,KAAK4kC,YAApB,EACAuH,kBAAkB,CAAGC,EAArB,CACAG,WAAW,CAACvsC,WAAZ,CAAwBosC,EAAxB,EACA,CACD,KAAKvmC,UAAL,CAAgBC,IAAhB,CAAqB9F,WAArB,CAAiCssC,SAAjC,EACA,CACD,CArED,QAqEW,KAAKl2C,IAAL,CAAUuB,EAAd,CAAkB,CACxB,KAAKq0C,YAAL,CAAkBhsC,WAAlB,CAA8B,KAAK4kC,YAAnC,EACAuH,kBAAkB,CAAG,KAAKH,YAA1B,CACA,KAAKrH,WAAL,CAAmB,KAAKqH,YAAxB,CACA,CAJM,IAIA,CACN,KAAKrH,WAAL,CAAmB,KAAKC,YAAxB,CACA,CACD,GAAI,KAAKxuC,IAAL,CAAUu2C,EAAd,CAAkB,CACjB,KAAK/H,YAAL,CAAkB73B,YAAlB,CAA+B,IAA/B,CAAqC,KAAK3W,IAAL,CAAUu2C,EAA/C,EACA,CACD,GAAI,KAAKv2C,IAAL,CAAU8E,EAAd,CAAkB,CACjB,KAAK0pC,YAAL,CAAkB73B,YAAlB,CAA+B,OAA/B,CAAwC,KAAK3W,IAAL,CAAU8E,EAAlD,EACA,CACD;CACA,GAAI,KAAK9E,IAAL,CAAU8B,EAAV,GAAiB,CAAjB,EAAsB,CAAC,KAAK9B,IAAL,CAAUw2C,EAArC,CAAyC,CACxC,IAAIC,EAAE,CAAGp3C,QAAQ,CAAC,UAAD,CAAjB,CACA,IAAIuC,EAAE,CAAGvC,QAAQ,CAAC,MAAD,CAAjB,CACAuC,EAAE,CAAC+U,YAAH,CAAgB,GAAhB,CAAqB,SAAW,KAAK3W,IAAL,CAAUqlB,CAArB,CAAyB,MAAzB,CAAkC,KAAKrlB,IAAL,CAAUqlB,CAA5C,CAAgD,GAAhD,CAAsD,KAAKrlB,IAAL,CAAUxC,CAAhE,CAAoE,MAApE,CAA6E,KAAKwC,IAAL,CAAUxC,CAAvF,CAA2F,GAAhH,EACA,IAAIk5C,MAAM,CAAGt5C,eAAe,EAA5B,CACAq5C,EAAE,CAAC9/B,YAAH,CAAgB,IAAhB,CAAsB+/B,MAAtB,EACAD,EAAE,CAAC7sC,WAAH,CAAehI,EAAf,EACA,KAAK6N,UAAL,CAAgBC,IAAhB,CAAqB9F,WAArB,CAAiC6sC,EAAjC,EAEA,GAAI,KAAKzI,UAAL,EAAJ,CAAuB,CACtB,IAAI2I,OAAO,CAAGt3C,QAAQ,CAAC,GAAD,CAAtB,CACAs3C,OAAO,CAAChgC,YAAR,CAAqB,WAArB,CAAkC,OAASlhB,eAAe,EAAxB,CAA6B,GAA7B,CAAmCihD,MAAnC,CAA4C,GAA9E,EACAC,OAAO,CAAC/sC,WAAR,CAAoB,KAAK4kC,YAAzB,EACA,KAAKqH,kBAAL,CAA0Bc,OAA1B,CACA,GAAIZ,kBAAJ,CAAwB,CACvBA,kBAAkB,CAACnsC,WAAnB,CAA+B,KAAKisC,kBAApC,EACA,CAFD,IAEO,CACN,KAAKtH,WAAL,CAAmB,KAAKsH,kBAAxB,CACA,CACD,CAVD,IAUO,CACN,KAAKrH,YAAL,CAAkB73B,YAAlB,CAA+B,WAA/B,CAA4C,OAASlhB,eAAe,EAAxB,CAA6B,GAA7B,CAAmCihD,MAAnC,CAA4C,GAAxF,EACA,CACD,CACD,GAAI,KAAK12C,IAAL,CAAUsuC,EAAV,GAAiB,CAArB,CAAwB,CACvB,KAAKF,YAAL,GACA,CACD,CA3HyB,CA4H1BwI,aAAa,CAAE,UAAY,CAC1B,GAAI,KAAKjU,cAAL,CAAoB0P,OAAxB,CAAiC,CAChC,KAAKwD,kBAAL,CAAwBl/B,YAAxB,CAAqC,WAArC,CAAkD,KAAKgsB,cAAL,CAAoBhL,GAApB,CAAwBrF,OAAxB,EAAlD,EACA,CACD,GAAI,KAAKqQ,cAAL,CAAoB2P,MAAxB,CAAgC,CAC/B,KAAKuD,kBAAL,CAAwBl/B,YAAxB,CAAqC,SAArC,CAAgD,KAAKgsB,cAAL,CAAoBC,KAApB,CAA0B5/B,CAA1B,CAA4BtF,CAA5E,EACA,CACD,CAnIyB,CAoI1Bm5C,kBAAkB,CAAE,UAAY,CAC/B,KAAKrI,YAAL,CAAoB,IAApB,CACA,KAAKoH,YAAL,CAAoB,IAApB,CACA,KAAKlS,WAAL,CAAiBj5B,OAAjB,GACA,CAxIyB,CAyI1BmlC,cAAc,CAAE,UAAY,CAC3B,GAAI,KAAK5vC,IAAL,CAAUw2C,EAAd,CAAkB,CACjB,WAAA,CACA,CACD,YAAYjI,WAAZ,CACA,CA9IyB,CA+I1BuI,0BAA0B,CAAE,UAAY,CACvC,KAAKpT,WAAL,CAAmB,IAAIoP,WAAJ,CAAgB,KAAK9yC,IAArB,CAA2B,IAA3B,CAAiC,KAAKyP,UAAtC,CAAnB,CACA,KAAKsnC,wBAAL,CAAgC,IAAI5B,UAAJ,CAAe,IAAf,CAAhC,CACA,CAlJyB,CAmJ1B6B,QAAQ,CAAE,SAAUx0C,EAAV,CAAc,CACvB,GAAI,CAAC,KAAKozC,YAAV,CAAwB,CACvB,OACA,CACD,KAAKA,YAAL,CAAkBj/B,YAAlB,CAA+B,MAA/B,CAAuC,OAASlhB,eAAe,EAAxB,CAA6B,GAA7B,CAAmC+M,EAAnC,CAAwC,GAA/E,EACA,CAxJyB,CAA3B,CA2JA;CACA;CACA;CACA;CACA,GAEA,SAASy0C,gBAAT,EAA4B,EAE5BA,gBAAgB,CAAC5gD,SAAjB,CAA6B;CAE7B;CACA;CACA;CACA,IACC6gD,aAAa,CAAE,UAAY;CAE1B,KAAKvQ,SAAL,CAAiB,EAAjB,CACA;CACA,KAAKoI,SAAL,CAAiB,KAAjB,CACA,KAAKoI,cAAL,GACA,CAZ2B;CAc7B;CACA;CACA;CACA;CACA;CACA,IACCtF,YAAY,CAAE,SAAUlL,SAAV,CAAqB,CAClC,KAAKA,SAAL,CAAiBA,SAAjB,CACA,CAtB2B;CAwB7B;CACA;CACA;CACA,IACCiL,WAAW,CAAE,UAAY,CACxB,KAAK7C,SAAL,CAAiB,IAAjB,CACA,CA9B2B;CAgC7B;CACA;CACA;CACA,IACCoI,cAAc,CAAE,UAAY,CAC3B,GAAI,KAAKn3C,IAAL,CAAUi+B,MAAV,GAAqBruB,SAAzB,CAAoC,CACnC,KAAKnN,IAAL,CAAUgvC,qBAAV,CAAgC,IAAhC,CAAsC,KAAKzxC,IAAL,CAAUi+B,MAAhD,CAAwD,EAAxD,EACA,CACD,CAxC2B,CAA7B,CA2CA,SAASmZ,oBAAT,EAAgC,EAE/B,WAAY,CACZ,IAAIC,UAAU,CAAG,CAChBC,WAAW,CAAE,SAAUt3C,IAAV,CAAgByP,UAAhB,CAA4BhN,IAA5B,CAAkC,CAC9C,KAAK8d,SAAL,GACA,KAAKkuB,YAAL,CAAkBzuC,IAAlB,CAAwByP,UAAxB,CAAoChN,IAApC,EACA,KAAK2vC,aAAL,CAAmBpyC,IAAnB,CAAyByP,UAAzB,CAAqChN,IAArC,EACA,KAAKy0C,aAAL,GACA,KAAKnV,cAAL,GACA,KAAK2T,mBAAL,GACA,KAAKC,uBAAL,GACA,KAAKmB,0BAAL,GACA,KAAKS,aAAL,GACA,KAAK7iC,IAAL,GACA,CAZe,CAahBA,IAAI,CAAE,UAAY;CAEjB,GAAI,CAAC,KAAKutB,MAAN,GAAiB,CAAC,KAAKD,SAAN,EAAmB,KAAKE,aAAzC,CAAJ,CAA6D,CAC5D,IAAIvsB,IAAI,CAAG,KAAK44B,WAAL,EAAoB,KAAKC,YAApC,CACA74B,IAAI,CAACpa,KAAL,CAAWI,OAAX,CAAqB,MAArB,CACA,KAAKsmC,MAAL,CAAc,IAAd,CACA,CACD,CApBe,CAqBhBttB,IAAI,CAAE,UAAY;CAEjB,GAAI,KAAKqtB,SAAL,EAAkB,CAAC,KAAKE,aAA5B,CAA2C,CAC1C,GAAI,CAAC,KAAKliC,IAAL,CAAUw2C,EAAf,CAAmB,CAClB,IAAI7gC,IAAI,CAAG,KAAK44B,WAAL,EAAoB,KAAKC,YAApC,CACA74B,IAAI,CAACpa,KAAL,CAAWI,OAAX,CAAqB,OAArB,CACA,CACD,KAAKsmC,MAAL,CAAc,KAAd,CACA,KAAK7b,aAAL,CAAqB,IAArB,CACA,CACD,CA/Be,CAgChB7T,WAAW,CAAE,UAAY;CAExB;CACA,GAAI,KAAKvS,IAAL,CAAUw2C,EAAV,EAAgB,KAAKvU,MAAzB,CAAiC,CAChC,OACA,CACD,KAAKuQ,eAAL,GACA,KAAKzP,gBAAL,GACA,KAAK6T,aAAL,GACA,KAAKY,kBAAL,GACA,GAAI,KAAKpxB,aAAT,CAAwB,CACvB,KAAKA,aAAL,CAAqB,KAArB,CACA,CACD,CA7Ce,CA8ChBoxB,kBAAkB,CAAE,UAAY,EA9ChB,CA+ChBxqC,YAAY,CAAE,SAAUw1B,GAAV,CAAe,CAC5B,KAAKzc,IAAL,CAAY,KAAZ,CACA,KAAKwc,sBAAL,CAA4BC,GAA5B,EACA,KAAKqM,iBAAL,CAAuBrM,GAAvB,CAA4B,KAAKR,SAAjC,EACA,KAAKU,iBAAL,GACA,CApDe,CAqDhBj4B,OAAO,CAAE,UAAY,CACpB,KAAKgtC,SAAL,CAAiB,IAAjB,CACA,KAAKZ,kBAAL,GACA,CAxDe,CAAjB,CA0DA/gD,eAAe,CAAC,CAACgsC,iBAAD,CAAoBhrC,mBAAmB,CAACugD,UAAD,CAAvC,CAAD,CAAuDD,oBAAvD,CAAf,CACA,CA5DA,GAAD,CA8DA,SAASM,aAAT,CAAuB13C,IAAvB,CAA6ByP,UAA7B,CAAyChN,IAAzC,CAA+C,CAC9C,KAAK+F,SAAL,CAAiBiH,UAAU,CAACgF,YAAX,CAAwBzU,IAAI,CAACgC,KAA7B,CAAjB,CACA,KAAKs1C,WAAL,CAAiBt3C,IAAjB,CAAuByP,UAAvB,CAAmChN,IAAnC,EACA,KAAKk1C,UAAL,CAAkB,CACjBl8C,GAAG,CAAE,CADY,CACTC,IAAI,CAAE,CADG,CACAgM,KAAK,CAAE,KAAKc,SAAL,CAAe6c,CADtB,CACyB1d,MAAM,CAAE,KAAKa,SAAL,CAAehL,CADhD,CAAlB,CAGA,CAED1H,eAAe,CAAC,CAACi4C,WAAD,CAAcoE,gBAAd,CAAgCsD,cAAhC,CAAgDwB,gBAAhD,CAAkErI,YAAlE,CAAgFwI,oBAAhF,CAAD,CAAwGM,aAAxG,CAAf,CAEAA,aAAa,CAACrhD,SAAd,CAAwBkhD,aAAxB,CAAwC,UAAY,CACnD,IAAIz/C,SAAS,CAAG,KAAK2X,UAAL,CAAgBlH,aAAhB,CAA8B,KAAKC,SAAnC,CAAhB,CAEA,KAAKivC,SAAL,CAAiBp4C,QAAQ,CAAC,OAAD,CAAzB,CACA,KAAKo4C,SAAL,CAAe9gC,YAAf,CAA4B,OAA5B,CAAqC,KAAKnO,SAAL,CAAe6c,CAAf,CAAmB,IAAxD,EACA,KAAKoyB,SAAL,CAAe9gC,YAAf,CAA4B,QAA5B,CAAsC,KAAKnO,SAAL,CAAehL,CAAf,CAAmB,IAAzD,EACA,KAAKi6C,SAAL,CAAe9gC,YAAf,CAA4B,qBAA5B,CAAmD,KAAKnO,SAAL,CAAeovC,EAAf,EAAqB,KAAKnoC,UAAL,CAAgBozB,YAAhB,CAA6BgV,wBAArG,EACA,KAAKJ,SAAL,CAAehuC,cAAf,CAA8B,8BAA9B,CAA8D,MAA9D,CAAsE3R,SAAtE,EAEA,KAAK02C,YAAL,CAAkB5kC,WAAlB,CAA8B,KAAK6tC,SAAnC,EACA,CAVD,CAYAC,aAAa,CAACrhD,SAAd,CAAwB2sC,gBAAxB,CAA2C,UAAY,CACtD,YAAY2U,UAAZ,CACA,CAFD,CAIA,SAASG,gBAAT,CAA0Bx8C,OAA1B,CAAmCE,QAAnC,CAA6C,CAC5C,KAAKma,IAAL,CAAYra,OAAZ,CACA,KAAKusB,GAAL,CAAWrsB,QAAX,CACA,CAED,SAASu8C,aAAT,EAAyB,EAGzBA,aAAa,CAAC1hD,SAAd,CAA0B,CACzB2hD,mBAAmB,CAAE,SAAUh4C,IAAV,CAAgB,CACpC,IAAI/J,CAAJ,CACA,IAAIC,GAAG,CAAG,KAAK+hD,cAAL,CAAoB9hD,MAA9B,CACA,IAAKF,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B,KAAKgiD,cAAL,CAAoBhiD,CAApB,EAAuBizB,QAAvB,CAAgClpB,IAAhC,EACA,CACD,CAPwB,CAQzBk4C,0BAA0B,CAAE,SAAUl4C,IAAV,CAAgB,CAC3C,IAAI/J,CAAC,CAAG,CAAR,CACA,IAAIC,GAAG,CAAG,KAAK+hD,cAAL,CAAoB9hD,MAA9B,CACA,MAAOF,CAAC,CAAGC,GAAX,CAAgB,CACf,GAAI,KAAK+hD,cAAL,CAAoBhiD,CAApB,EAAuBkiD,mBAAvB,CAA2Cn4C,IAA3C,CAAJ,CAAsD,CACrD,WAAA,CACA,CACD,CACD,YAAA,CACA,CAjBwB,CAkBzBo4C,eAAe,CAAE,UAAY,CAC5B,GAAI,CAAC,KAAKH,cAAL,CAAoB9hD,MAAzB,CAAiC,CAChC,OACA,CACD,IAAIF,CAAJ,CACA,IAAIC,GAAG,CAAG,KAAKgM,MAAL,CAAY/L,MAAtB,CACA,IAAKF,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B,KAAKiM,MAAL,CAAYjM,CAAZ,EAAe2sB,EAAf,CAAkB0H,KAAlB,GACA,CAEDp0B,GAAG,CAAG,KAAK+hD,cAAL,CAAoB9hD,MAA1B,CACA,IAAIkiD,kBAAJ,CACA,IAAKpiD,CAAC,CAAGC,GAAG,CAAG,CAAf,CAAkBD,CAAC,EAAI,CAAvB,CAA0BA,CAAC,EAAI,CAA/B,CAAkC,CACjCoiD,kBAAkB,CAAG,KAAKJ,cAAL,CAAoBhiD,CAApB,EAAuB+/B,aAAvB,CAAqC,KAAK5P,aAA1C,CAArB,CACA;CACA;CACA,GAAIiyB,kBAAJ,CAAwB,CACvB,MACA,CACD,CACD,CAtCwB,CAwCzBC,sBAAsB,CAAE,SAAU3iC,IAAV,CAAgB,CACvC,IAAIskB,QAAQ,CAAG,KAAKse,iBAApB,CACA,IAAItiD,CAAC,CAAG,CAAR,CACA,IAAIC,GAAG,CAAG+jC,QAAQ,CAAC9jC,MAAnB,CACA,MAAOF,CAAC,CAAGC,GAAX,CAAgB,CACf,GAAI+jC,QAAQ,CAAChkC,CAAD,CAAR,CAAY0f,IAAZ,GAAqBA,IAAzB,CAA+B,CAC9B,OAAOskB,QAAQ,CAAChkC,CAAD,CAAR,CAAY4xB,GAAnB,CACA,CACD5xB,CAAC,EAAI,CAAL,CACA,CACD,QAAA,CACA,CAnDwB,CAoDzBuiD,mBAAmB,CAAE,SAAU7iC,IAAV,CAAgBkS,GAAhB,CAAqB,CACzC,IAAIoS,QAAQ,CAAG,KAAKse,iBAApB,CACA,IAAItiD,CAAC,CAAGgkC,QAAQ,CAAC9jC,MAAjB,CACA,MAAOF,CAAP,CAAU,CACTA,CAAC,EAAI,CAAL,CACA,GAAIgkC,QAAQ,CAAChkC,CAAD,CAAR,CAAY0f,IAAZ,GAAqBA,IAAzB,CAA+B,CAC9BskB,QAAQ,CAAChkC,CAAD,CAAR,CAAY4xB,GAAZ,CAAkBA,GAAlB,CACA,OACA,CACD,CACDoS,QAAQ,CAACziC,IAAT,CAAc,IAAIsgD,gBAAJ,CAAqBniC,IAArB,CAA2BkS,GAA3B,CAAd,EACA,CA/DwB,CAgEzB7a,YAAY,CAAE,SAAUw1B,GAAV,CAAe,CAC5B,KAAKD,sBAAL,CAA4BC,GAA5B,EACA,KAAKqM,iBAAL,CAAuBrM,GAAvB,CAA4B,KAAKR,SAAjC,EACA,CAnEwB,CAA1B,CAsEA,MAAMyW,WAAW,CAAG,CACnB,EAAG,MADgB,CAEnB,EAAG,OAFgB,CAGnB,EAAG,QAHgB,CAApB,CAMA,MAAMC,YAAY,CAAG,CACpB,EAAG,OADiB,CAEpB,EAAG,OAFiB,CAGpB,EAAG,OAHiB,CAArB,CAMA,SAASC,YAAT,CAAsBC,YAAtB,CAAoCC,KAApC,CAA2C/vB,KAA3C,CAAkD,CACjD,KAAKgwB,MAAL,CAAc,EAAd,CACA,KAAK1c,MAAL,CAAc,EAAd,CACA,KAAKwc,YAAL,CAAoBA,YAApB,CACA,KAAKG,IAAL,CAAY,EAAZ,CACA,KAAKn2B,EAAL,CAAUkG,KAAV,CACA,KAAKkwB,GAAL,CAAWH,KAAX,CACA;CACA;CACA;CACA,KAAKzxB,WAAL,CAAmB,CAAC,CAAC0B,KAAK,CAAC1nB,CAA3B,CACA;CACA,IAAInL,CAAC,CAAG,CAAR,CACA,IAAIC,GAAG,CAAG0iD,YAAY,CAACziD,MAAvB,CACA,MAAOF,CAAC,CAAGC,GAAX,CAAgB,CACf,GAAI0iD,YAAY,CAAC3iD,CAAD,CAAZ,CAAgBwlC,MAAhB,CAAuBtU,iBAAvB,CAAyChxB,MAA7C,CAAqD,CACpD,KAAKixB,WAAL,CAAmB,IAAnB,CACA,MACA,CACDnxB,CAAC,EAAI,CAAL,CACA,CACD,CAED0iD,YAAY,CAACtiD,SAAb,CAAuB6+B,aAAvB,CAAuC,UAAY,CAClD,KAAK9N,WAAL,CAAmB,IAAnB,CACA,CAFD,CAIA,SAAS6xB,YAAT,CAAsBj5C,IAAtB,CAA4B64C,KAA5B,CAAmC,CAClC,KAAK74C,IAAL,CAAYA,IAAZ,CACA,KAAKrK,IAAL,CAAYqK,IAAI,CAAC8B,EAAjB,CACA,KAAK3D,CAAL,CAAS,EAAT,CACA,KAAK66C,GAAL,CAAWH,KAAX,CACA,KAAK9yB,IAAL,CAAY,KAAZ,CACA,KAAKlhB,MAAL,CAAc7E,IAAI,CAACw2C,EAAL,GAAY,IAA1B,CACA,KAAK0C,KAAL,CAAa75C,QAAQ,CAAC,MAAD,CAArB,CACA,KAAK85C,MAAL,CAAc,IAAd,CACA,CAEDF,YAAY,CAAC5iD,SAAb,CAAuBi0B,KAAvB,CAA+B,UAAY,CAC1C,KAAKnsB,CAAL,CAAS,EAAT,CACA,KAAK4nB,IAAL,CAAY,KAAZ,CACA,CAHD,CAKA,SAASqzB,YAAT,CAAsBzjC,IAAtB,CAA4B3V,IAA5B,CAAkCmO,QAAlC,CAA4CkB,SAA5C,CAAuD,CACtD,KAAKsG,IAAL,CAAYA,IAAZ,CACA,KAAKsQ,OAAL,CAAe,CAAC,CAAhB,CACA,KAAK4lB,SAAL,CAAiBxyC,gBAAgB,CAAC2G,IAAI,CAAC7J,MAAN,CAAjC,CACA,KAAKgY,QAAL,CAAgBA,QAAhB,CACA,KAAK/M,CAAL,CAAS,KAAT,CACA,KAAKi4C,OAAL,CAAe,EAAf,CACA,KAAKC,SAAL,CAAiBxgD,gBAAgB,CAAC,SAAD,CAAYkH,IAAI,CAAC7J,MAAL,CAAc6J,IAAI,CAAC7J,MAAL,CAAc,CAA5B,CAAgC,CAA5C,CAAjC,CACA,KAAKojD,UAAL,CAAkBzgD,gBAAgB,CAAC,SAAD,CAAY,CAAZ,CAAlC,CACA,KAAKwuB,4BAAL,CAAkCjY,SAAlC,EACA,IAAIpZ,CAAJ,CACA,IAAIC,GAAG,CAAG8J,IAAI,CAAC7J,MAAL,EAAe,CAAzB,CACA,IAAIS,IAAJ,CACA,IAAKX,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5BW,IAAI,CAAG0pB,eAAe,CAAC2G,OAAhB,CAAwBtR,IAAxB,CAA8B3V,IAAI,CAAC/J,CAAD,CAAJ,CAAQyH,CAAtC,CAAyC,CAAzC,CAA4C,CAA5C,CAA+C,IAA/C,CAAP,CACA,KAAK0D,CAAL,CAASxK,IAAI,CAACwK,CAAL,EAAU,KAAKA,CAAxB,CACA,KAAKyqC,SAAL,CAAe51C,CAAf,EAAoB,CAAE+rB,CAAC,CAAEhiB,IAAI,CAAC/J,CAAD,CAAJ,CAAQ+rB,CAAb,CAAgBjkB,CAAC,CAAEnH,IAAnB,CAApB,CACA,CACD,GAAI,CAAC,KAAKwK,CAAV,CAAa,CACZ,KAAKwlB,QAAL,CAAc,IAAd,EACA,CACD,KAAKQ,WAAL,CAAmB,KAAKhmB,CAAxB,CACA,CAEDg4C,YAAY,CAAC/iD,SAAb,CAAuBuwB,QAAvB,CAAkC,SAAUsR,WAAV,CAAuB,CACxD,GAAI,KAAKviB,IAAL,CAAUlG,UAAV,CAAqBwW,OAArB,GAAiC,KAAKA,OAAtC,EAAiD,CAACiS,WAAtD,CAAmE,CAClE,OACA,CACD,KAAKjS,OAAL,CAAe,KAAKtQ,IAAL,CAAUlG,UAAV,CAAqBwW,OAApC,CACA,KAAKoB,wBAAL,GACA,KAAKtB,IAAL,CAAY,KAAKA,IAAL,EAAamS,WAAzB,CACA,GAAI,KAAKnS,IAAT,CAAe,CACd,IAAI9vB,CAAC,CAAG,CAAR,CACA,IAAIC,GAAG,CAAG,KAAK21C,SAAL,CAAe11C,MAAzB,CACA,GAAI,KAAKgY,QAAL,GAAkB,KAAtB,CAA6B,CAC5B,KAAKkrC,OAAL,CAAe,EAAf,CACA,CACD,IAAKpjD,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B,GAAI,KAAK41C,SAAL,CAAe51C,CAAf,EAAkB+rB,CAAlB,GAAwB,GAA5B,CAAiC,CAChC,GAAI,KAAK7T,QAAL,GAAkB,KAAtB,CAA6B,CAC5B,KAAKkrC,OAAL,EAAgB,IAAM,KAAKxN,SAAL,CAAe51C,CAAf,EAAkB8H,CAAlB,CAAoBL,CAA1C,CACA,CAFD,IAEO,CACN,KAAK47C,SAAL,CAAerjD,CAAf,EAAoB,KAAK41C,SAAL,CAAe51C,CAAf,EAAkB8H,CAAlB,CAAoBL,CAAxC,CACA,CACD,CAND,IAMO,CACN,KAAK67C,UAAL,CAAgB,CAAhB,EAAqB,KAAK1N,SAAL,CAAe51C,CAAf,EAAkB8H,CAAlB,CAAoBL,CAAzC,CACA,CACD,CACD,CACD,CAzBD,CA0BA5H,eAAe,CAAC,CAACoxB,wBAAD,CAAD,CAA6BkyB,YAA7B,CAAf,CAEA,SAASI,kBAAT,CAA4B7jC,IAA5B,CAAkC3V,IAAlC,CAAwCy5C,OAAxC,CAAiD,CAChD,KAAKnyB,4BAAL,CAAkC3R,IAAlC,EACA,KAAKiR,QAAL,CAAgB,KAAKS,wBAArB,CACA,KAAKrkB,CAAL,CAASsd,eAAe,CAAC2G,OAAhB,CAAwBtR,IAAxB,CAA8B3V,IAAI,CAACgD,CAAnC,CAAsC,CAAtC,CAAyC,IAAzC,CAA+C,IAA/C,CAAT,CACA,KAAKqiB,CAAL,CAAS/E,eAAe,CAAC2G,OAAhB,CAAwBtR,IAAxB,CAA8B3V,IAAI,CAACqlB,CAAnC,CAAsC,CAAtC,CAAyC,IAAzC,CAA+C,IAA/C,CAAT,CACA,KAAKlnB,CAAL,CAAS,IAAIi7C,YAAJ,CAAiBzjC,IAAjB,CAAuB3V,IAAI,CAAC7B,CAAL,EAAU,EAAjC,CAAqC,KAArC,CAA4C,IAA5C,CAAT,CACA,KAAKuG,CAAL,CAAS4b,eAAe,CAAC2G,OAAhB,CAAwBtR,IAAxB,CAA8B3V,IAAI,CAAC0E,CAAnC,CAAsC,CAAtC,CAAyC,GAAzC,CAA8C,IAA9C,CAAT,CACA,KAAKnJ,KAAL,CAAak+C,OAAb,CACA,KAAKryB,WAAL,CAAmB,CAAC,CAAC,KAAKA,WAA1B,CACA,CAEDtxB,eAAe,CAAC,CAACoxB,wBAAD,CAAD,CAA6BsyB,kBAA7B,CAAf,CAEA,SAASE,gBAAT,CAA0B/jC,IAA1B,CAAgC3V,IAAhC,CAAsCy5C,OAAtC,CAA+C,CAC9C,KAAKnyB,4BAAL,CAAkC3R,IAAlC,EACA,KAAKiR,QAAL,CAAgB,KAAKS,wBAArB,CACA,KAAKrkB,CAAL,CAASsd,eAAe,CAAC2G,OAAhB,CAAwBtR,IAAxB,CAA8B3V,IAAI,CAACgD,CAAnC,CAAsC,CAAtC,CAAyC,IAAzC,CAA+C,IAA/C,CAAT,CACA,KAAK0B,CAAL,CAAS4b,eAAe,CAAC2G,OAAhB,CAAwBtR,IAAxB,CAA8B3V,IAAI,CAAC0E,CAAnC,CAAsC,CAAtC,CAAyC,GAAzC,CAA8C,IAA9C,CAAT,CACA,KAAKnJ,KAAL,CAAak+C,OAAb,CACA,CAED3jD,eAAe,CAAC,CAACoxB,wBAAD,CAAD,CAA6BwyB,gBAA7B,CAAf,CAEA,SAASC,cAAT,CAAwBhkC,IAAxB,CAA8B3V,IAA9B,CAAoCy5C,OAApC,CAA6C,CAC5C,KAAKnyB,4BAAL,CAAkC3R,IAAlC,EACA,KAAKiR,QAAL,CAAgB,KAAKS,wBAArB,CACA,KAAK9rB,KAAL,CAAak+C,OAAb,CACA,CAED3jD,eAAe,CAAC,CAACoxB,wBAAD,CAAD,CAA6ByyB,cAA7B,CAAf,CAEA,SAASC,gBAAT,CAA0BjkC,IAA1B,CAAgC3V,IAAhC,CAAsCqP,SAAtC,CAAiD,CAChD,KAAKrP,IAAL,CAAYA,IAAZ,CACA,KAAK0E,CAAL,CAAS5L,gBAAgB,CAAC,QAAD,CAAWkH,IAAI,CAACjC,CAAL,CAAS,CAApB,CAAzB,CACA,IAAI87C,OAAO,CAAG75C,IAAI,CAACoB,CAAL,CAAOA,CAAP,CAAS,CAAT,EAAY3D,CAAZ,CAAiBuC,IAAI,CAACoB,CAAL,CAAOA,CAAP,CAAS,CAAT,EAAY3D,CAAZ,CAActH,MAAd,CAAuB6J,IAAI,CAACjC,CAAL,CAAS,CAAjD,CAAsDiC,IAAI,CAACoB,CAAL,CAAOA,CAAP,CAASjL,MAAT,CAAkB6J,IAAI,CAACjC,CAAL,CAAS,CAA/F,CACA,KAAKiF,CAAL,CAASlK,gBAAgB,CAAC,SAAD,CAAY+gD,OAAZ,CAAzB,CACA,KAAKC,KAAL,CAAa,KAAb,CACA,KAAKC,KAAL,CAAa,KAAb,CACA,KAAKC,YAAL,CAAoB,KAAKC,gBAAL,EAApB,CACA,KAAKC,WAAL,CAAmBL,OAAnB,CACA,KAAKvyB,4BAAL,CAAkCjY,SAAlC,EACA,KAAKzY,IAAL,CAAY0pB,eAAe,CAAC2G,OAAhB,CAAwBtR,IAAxB,CAA8B3V,IAAI,CAACoB,CAAnC,CAAsC,CAAtC,CAAyC,IAAzC,CAA+C,IAA/C,CAAZ,CACA,KAAKA,CAAL,CAAS,KAAKxK,IAAL,CAAUwK,CAAnB,CACA,KAAKwlB,QAAL,CAAc,IAAd,EACA,CAEDgzB,gBAAgB,CAACvjD,SAAjB,CAA2B8jD,aAA3B,CAA2C,SAAUt1B,MAAV,CAAkB1L,MAAlB,CAA0B,CACpE,IAAIljB,CAAC,CAAG,CAAR,CACA,IAAIC,GAAG,CAAG,KAAK8M,CAAL,CAAO7M,MAAP,CAAgB,CAA1B,CACA,IAAIikD,IAAJ,CACA,MAAOnkD,CAAC,CAAGC,GAAX,CAAgB,CACfkkD,IAAI,CAAGpgD,IAAI,CAACa,GAAL,CAASgqB,MAAM,CAAC5uB,CAAC,CAAG,CAAL,CAAN,CAAgB4uB,MAAM,CAAC1L,MAAM,CAAG,CAAT,CAAaljB,CAAC,CAAG,CAAlB,CAA/B,CAAP,CACA,GAAImkD,IAAI,CAAG,IAAX,CAAiB,CAChB,YAAA,CACA,CACDnkD,CAAC,EAAI,CAAL,CACA,CACD,WAAA,CACA,CAZD,CAcA2jD,gBAAgB,CAACvjD,SAAjB,CAA2B4jD,gBAA3B,CAA8C,UAAY,CACzD,GAAI,KAAKj3C,CAAL,CAAO7M,MAAP,CAAgB,CAAhB,GAAsB,KAAKuO,CAAL,CAAOvO,MAAP,CAAgB,CAA1C,CAA6C,CAC5C,YAAA,CACA,CACD,GAAI,KAAK6J,IAAL,CAAUoB,CAAV,CAAYA,CAAZ,CAAc,CAAd,EAAiB3D,CAArB,CAAwB,CACvB,IAAIxH,CAAC,CAAG,CAAR,CACA,IAAIC,GAAG,CAAG,KAAK8J,IAAL,CAAUoB,CAAV,CAAYA,CAAZ,CAAcjL,MAAxB,CACA,MAAOF,CAAC,CAAGC,GAAX,CAAgB,CACf,GAAI,CAAC,KAAKikD,aAAL,CAAmB,KAAKn6C,IAAL,CAAUoB,CAAV,CAAYA,CAAZ,CAAcnL,CAAd,EAAiBwH,CAApC,CAAuC,KAAKuC,IAAL,CAAUjC,CAAjD,CAAL,CAA0D,CACzD,YAAA,CACA,CACD9H,CAAC,EAAI,CAAL,CACA,CACD,CATD,QASW,CAAC,KAAKkkD,aAAL,CAAmB,KAAKn6C,IAAL,CAAUoB,CAAV,CAAYA,CAA/B,CAAkC,KAAKpB,IAAL,CAAUjC,CAA5C,CAAL,CAAqD,CAC3D,YAAA,CACA,CACD,WAAA,CACA,CAjBD,CAmBA67C,gBAAgB,CAACvjD,SAAjB,CAA2BuwB,QAA3B,CAAsC,SAAUsR,WAAV,CAAuB,CAC5D,KAAKthC,IAAL,CAAUgwB,QAAV,GACA,KAAKb,IAAL,CAAY,KAAZ,CACA,KAAK+zB,KAAL,CAAa,KAAb,CACA,KAAKC,KAAL,CAAa,KAAb,CACA,GAAI,KAAKnjD,IAAL,CAAUmvB,IAAV,EAAkBmS,WAAtB,CAAmC,CAClC,IAAIjiC,CAAJ,CACA,IAAIC,GAAG,CAAG,KAAK8J,IAAL,CAAUjC,CAAV,CAAc,CAAxB,CACA,IAAI+nB,IAAJ,CACA,IAAIhrB,GAAJ,CACA,IAAK7E,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B6vB,IAAI,CAAG7vB,CAAC,CAAG,CAAJ,GAAU,CAAV,CAAc,GAAd,CAAoB,GAA3B,CACA6E,GAAG,CAAGd,IAAI,CAAC0X,KAAL,CAAW,KAAK9a,IAAL,CAAU8G,CAAV,CAAYzH,CAAZ,EAAiB6vB,IAA5B,CAAN,CACA,GAAI,KAAKphB,CAAL,CAAOzO,CAAP,IAAc6E,GAAlB,CAAuB,CACtB,KAAK4J,CAAL,CAAOzO,CAAP,EAAY6E,GAAZ,CACA,KAAKg/C,KAAL,CAAa,CAAC5hB,WAAd,CACA,CACD,CACD,GAAI,KAAKl1B,CAAL,CAAO7M,MAAX,CAAmB,CAClBD,GAAG,CAAG,KAAKU,IAAL,CAAU8G,CAAV,CAAYvH,MAAlB,CACA,IAAKF,CAAC,CAAG,KAAK+J,IAAL,CAAUjC,CAAV,CAAc,CAAvB,CAA0B9H,CAAC,CAAGC,GAA9B,CAAmCD,CAAC,EAAI,CAAxC,CAA2C,CAC1C6vB,IAAI,CAAG7vB,CAAC,CAAG,CAAJ,GAAU,CAAV,CAAc,GAAd,CAAoB,CAA3B,CACA6E,GAAG,CAAG7E,CAAC,CAAG,CAAJ,GAAU,CAAV,CAAc+D,IAAI,CAAC0X,KAAL,CAAW,KAAK9a,IAAL,CAAU8G,CAAV,CAAYzH,CAAZ,EAAiB,GAA5B,CAAd,CAAiD,KAAKW,IAAL,CAAU8G,CAAV,CAAYzH,CAAZ,CAAvD,CACA,GAAI,KAAK+M,CAAL,CAAO/M,CAAC,CAAG,KAAK+J,IAAL,CAAUjC,CAAV,CAAc,CAAzB,IAAgCjD,GAApC,CAAyC,CACxC,KAAKkI,CAAL,CAAO/M,CAAC,CAAG,KAAK+J,IAAL,CAAUjC,CAAV,CAAc,CAAzB,EAA8BjD,GAA9B,CACA,KAAKi/C,KAAL,CAAa,CAAC7hB,WAAd,CACA,CACD,CACD,CACD,KAAKnS,IAAL,CAAY,CAACmS,WAAb,CACA,CACD,CA/BD,CAiCApiC,eAAe,CAAC,CAACoxB,wBAAD,CAAD,CAA6B0yB,gBAA7B,CAAf,CAEA,SAASS,wBAAT,CAAkC1kC,IAAlC,CAAwC3V,IAAxC,CAA8Cy5C,OAA9C,CAAuD,CACtD,KAAKnyB,4BAAL,CAAkC3R,IAAlC,EACA,KAAKiR,QAAL,CAAgB,KAAKS,wBAArB,CACA,KAAKizB,gBAAL,CAAsB3kC,IAAtB,CAA4B3V,IAA5B,CAAkCy5C,OAAlC,EACA,CAEDY,wBAAwB,CAAChkD,SAAzB,CAAmCikD,gBAAnC,CAAsD,SAAU3kC,IAAV,CAAgB3V,IAAhB,CAAsBy5C,OAAtB,CAA+B,CACpF,KAAKz2C,CAAL,CAASsd,eAAe,CAAC2G,OAAhB,CAAwBtR,IAAxB,CAA8B3V,IAAI,CAACgD,CAAnC,CAAsC,CAAtC,CAAyC,IAAzC,CAA+C,IAA/C,CAAT,CACA,KAAKvF,CAAL,CAAS6iB,eAAe,CAAC2G,OAAhB,CAAwBtR,IAAxB,CAA8B3V,IAAI,CAACvC,CAAnC,CAAsC,CAAtC,CAAyC,IAAzC,CAA+C,IAA/C,CAAT,CACA,KAAKmD,CAAL,CAAS0f,eAAe,CAAC2G,OAAhB,CAAwBtR,IAAxB,CAA8B3V,IAAI,CAACY,CAAnC,CAAsC,CAAtC,CAAyC,IAAzC,CAA+C,IAA/C,CAAT,CACA,KAAKpD,CAAL,CAAS8iB,eAAe,CAAC2G,OAAhB,CAAwBtR,IAAxB,CAA8B3V,IAAI,CAACxC,CAAL,EAAU,CAAE4D,CAAC,CAAE,CAAL,CAAxC,CAAkD,CAAlD,CAAqD,IAArD,CAA2D,IAA3D,CAAT,CACA,KAAK+C,CAAL,CAASmc,eAAe,CAAC2G,OAAhB,CAAwBtR,IAAxB,CAA8B3V,IAAI,CAACmE,CAAL,EAAU,CAAE/C,CAAC,CAAE,CAAL,CAAxC,CAAkD,CAAlD,CAAqDlG,SAArD,CAAgE,IAAhE,CAAT,CACA,KAAK0C,CAAL,CAAS,IAAIg8C,gBAAJ,CAAqBjkC,IAArB,CAA2B3V,IAAI,CAACpC,CAAhC,CAAmC,IAAnC,CAAT,CACA,KAAKrC,KAAL,CAAak+C,OAAb,CACA,KAAKc,KAAL,CAAa,EAAb,CACA,KAAKC,eAAL,CAAqBf,OAAO,CAACP,KAA7B,CAAoCl5C,IAApC,EACA,KAAKy6C,kBAAL,CAAwBz6C,IAAxB,CAA8By5C,OAA9B,EACA,KAAKryB,WAAL,CAAmB,CAAC,CAAC,KAAKA,WAA1B,CACA,CAZD,CAcAizB,wBAAwB,CAAChkD,SAAzB,CAAmCmkD,eAAnC,CAAqD,SAAUE,WAAV,CAAuB16C,IAAvB,CAA6B,CACjF,IAAI26C,UAAU,CAAGv9C,eAAe,EAAhC,CACA,IAAIw9C,KAAK,CAAGv7C,QAAQ,CAACW,IAAI,CAAC/B,CAAL,GAAW,CAAX,CAAe,gBAAf,CAAkC,gBAAnC,CAApB,CACA28C,KAAK,CAACjkC,YAAN,CAAmB,IAAnB,CAAyBgkC,UAAzB,EACAC,KAAK,CAACjkC,YAAN,CAAmB,cAAnB,CAAmC,KAAnC,EACAikC,KAAK,CAACjkC,YAAN,CAAmB,eAAnB,CAAoC,gBAApC,EACA,IAAI4jC,KAAK,CAAG,EAAZ,CACA,IAAI7nC,IAAJ,CACA,IAAIxR,CAAJ,CACA,IAAIC,IAAJ,CACAA,IAAI,CAAGnB,IAAI,CAACpC,CAAL,CAAOG,CAAP,CAAW,CAAlB,CACA,IAAKmD,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,IAAhB,CAAsBD,CAAC,EAAI,CAA3B,CAA8B,CAC7BwR,IAAI,CAAGrT,QAAQ,CAAC,MAAD,CAAf,CACAu7C,KAAK,CAAChxC,WAAN,CAAkB8I,IAAlB,EACA6nC,KAAK,CAAC/iD,IAAN,CAAWkb,IAAX,EACA,CACDgoC,WAAW,CAAC/jC,YAAZ,CAAyB3W,IAAI,CAAC8B,EAAL,GAAY,IAAZ,CAAmB,MAAnB,CAA4B,QAArD,CAA+D,OAASrM,eAAe,EAAxB,CAA6B,GAA7B,CAAmCklD,UAAnC,CAAgD,GAA/G,EACA,KAAKE,EAAL,CAAUD,KAAV,CACA,KAAKE,GAAL,CAAWP,KAAX,CACA,CAnBD,CAqBAF,wBAAwB,CAAChkD,SAAzB,CAAmCokD,kBAAnC,CAAwD,SAAUz6C,IAAV,CAAgBy5C,OAAhB,CAAyB,CAChF,GAAI,KAAK77C,CAAL,CAAOs8C,WAAP,EAAsB,CAAC,KAAKt8C,CAAL,CAAOo8C,YAAlC,CAAgD,CAC/C,IAAItnC,IAAJ,CACA,IAAIxR,CAAJ,CACA,IAAIC,IAAJ,CACA,IAAIkiC,IAAI,CAAGhkC,QAAQ,CAAC,MAAD,CAAnB,CACA,IAAI0zC,WAAW,CAAG1zC,QAAQ,CAAC,MAAD,CAA1B,CACAgkC,IAAI,CAACz5B,WAAL,CAAiBmpC,WAAjB,EACA,IAAIgI,SAAS,CAAG39C,eAAe,EAA/B,CACA,IAAI49C,MAAM,CAAG59C,eAAe,EAA5B,CACAimC,IAAI,CAAC1sB,YAAL,CAAkB,IAAlB,CAAwBqkC,MAAxB,EACA,IAAIC,MAAM,CAAG57C,QAAQ,CAACW,IAAI,CAAC/B,CAAL,GAAW,CAAX,CAAe,gBAAf,CAAkC,gBAAnC,CAArB,CACAg9C,MAAM,CAACtkC,YAAP,CAAoB,IAApB,CAA0BokC,SAA1B,EACAE,MAAM,CAACtkC,YAAP,CAAoB,cAApB,CAAoC,KAApC,EACAskC,MAAM,CAACtkC,YAAP,CAAoB,eAApB,CAAqC,gBAArC,EACAxV,IAAI,CAAGnB,IAAI,CAACpC,CAAL,CAAOwD,CAAP,CAASA,CAAT,CAAW,CAAX,EAAc3D,CAAd,CAAkBuC,IAAI,CAACpC,CAAL,CAAOwD,CAAP,CAASA,CAAT,CAAW,CAAX,EAAc3D,CAAd,CAAgBtH,MAAlC,CAA2C6J,IAAI,CAACpC,CAAL,CAAOwD,CAAP,CAASA,CAAT,CAAWjL,MAA7D,CACA,IAAIokD,KAAK,CAAG,KAAKA,KAAjB,CACA,IAAKr5C,CAAC,CAAGlB,IAAI,CAACpC,CAAL,CAAOG,CAAP,CAAW,CAApB,CAAuBmD,CAAC,CAAGC,IAA3B,CAAiCD,CAAC,EAAI,CAAtC,CAAyC,CACxCwR,IAAI,CAAGrT,QAAQ,CAAC,MAAD,CAAf,CACAqT,IAAI,CAACiE,YAAL,CAAkB,YAAlB,CAAgC,kBAAhC,EACAskC,MAAM,CAACrxC,WAAP,CAAmB8I,IAAnB,EACA6nC,KAAK,CAAC/iD,IAAN,CAAWkb,IAAX,EACA,CACDqgC,WAAW,CAACp8B,YAAZ,CAAyB3W,IAAI,CAAC8B,EAAL,GAAY,IAAZ,CAAmB,MAAnB,CAA4B,QAArD,CAA+D,OAASrM,eAAe,EAAxB,CAA6B,GAA7B,CAAmCslD,SAAnC,CAA+C,GAA9G,EACA,GAAI/6C,IAAI,CAAC8B,EAAL,GAAY,IAAhB,CAAsB,CACrBixC,WAAW,CAACp8B,YAAZ,CAAyB,gBAAzB,CAA2C8hC,WAAW,CAACz4C,IAAI,CAACk7C,EAAL,EAAW,CAAZ,CAAtD,EACAnI,WAAW,CAACp8B,YAAZ,CAAyB,iBAAzB,CAA4C+hC,YAAY,CAAC14C,IAAI,CAACm7C,EAAL,EAAW,CAAZ,CAAxD,EACA,GAAIn7C,IAAI,CAACm7C,EAAL,GAAY,CAAhB,CAAmB,CAClBpI,WAAW,CAACp8B,YAAZ,CAAyB,mBAAzB,CAA8C3W,IAAI,CAACo7C,EAAnD,EACA,CACD,CACD,KAAKC,EAAL,CAAUJ,MAAV,CACA,KAAKK,EAAL,CAAUjY,IAAV,CACA,KAAKkY,GAAL,CAAWhB,KAAX,CACA,KAAKS,MAAL,CAAcA,MAAd,CACAvB,OAAO,CAACN,MAAR,CAAiBpG,WAAjB,CACA,CACD,CArCD,CAuCAj9C,eAAe,CAAC,CAACoxB,wBAAD,CAAD,CAA6BmzB,wBAA7B,CAAf,CAEA,SAASmB,0BAAT,CAAoC7lC,IAApC,CAA0C3V,IAA1C,CAAgDy5C,OAAhD,CAAyD,CACxD,KAAKnyB,4BAAL,CAAkC3R,IAAlC,EACA,KAAKiR,QAAL,CAAgB,KAAKS,wBAArB,CACA,KAAKhC,CAAL,CAAS/E,eAAe,CAAC2G,OAAhB,CAAwBtR,IAAxB,CAA8B3V,IAAI,CAACqlB,CAAnC,CAAsC,CAAtC,CAAyC,IAAzC,CAA+C,IAA/C,CAAT,CACA,KAAKlnB,CAAL,CAAS,IAAIi7C,YAAJ,CAAiBzjC,IAAjB,CAAuB3V,IAAI,CAAC7B,CAAL,EAAU,EAAjC,CAAqC,KAArC,CAA4C,IAA5C,CAAT,CACA,KAAKm8C,gBAAL,CAAsB3kC,IAAtB,CAA4B3V,IAA5B,CAAkCy5C,OAAlC,EACA,KAAKryB,WAAL,CAAmB,CAAC,CAAC,KAAKA,WAA1B,CACA,CAEDtxB,eAAe,CAAC,CAACukD,wBAAD,CAA2BnzB,wBAA3B,CAAD,CAAuDs0B,0BAAvD,CAAf,CAEA,SAASC,cAAT,EAA0B,CACzB,KAAK14C,EAAL,CAAU,EAAV,CACA,KAAK24C,YAAL,CAAoB,EAApB,CACA,KAAKC,EAAL,CAAUt8C,QAAQ,CAAC,GAAD,CAAlB,CACA,CAED,SAASu8C,gBAAT,CAA0BngB,MAA1B,CAAkCz3B,EAAlC,CAAsCqL,SAAtC,CAAiD,CAChD,KAAKwf,SAAL,CAAiB,CAChB4M,MAAM,CAAEA,MADQ,CAEhBz3B,EAAE,CAAEA,EAFY,CAGhBqL,SAAS,CAAEA,SAHK,CAAjB,CAKA,KAAK4qB,QAAL,CAAgB,EAAhB,CACA,KAAK7S,WAAL,CAAmB,KAAKyH,SAAL,CAAe4M,MAAf,CAAsBtU,iBAAtB,CAAwChxB,MAAxC,EAAkD,KAAK04B,SAAL,CAAe7qB,EAAf,CAAkBkiB,eAAlB,CAAkC/vB,MAAvG,CACA,CAED,MAAM0lD,gBAAgB,CAAG,SAAUvH,SAAV,CAAqBn+C,MAArB,CAA6B0O,MAA7B,CAAqC8yB,GAArC,CAA0C,CAClE,GAAIxhC,MAAM,GAAK,CAAf,CAAkB,CACjB,OAAO,EAAP,CACA,CACD,IAAI2lD,EAAE,CAAGxH,SAAS,CAACtxC,CAAnB,CACA,IAAI+4C,EAAE,CAAGzH,SAAS,CAACr+C,CAAnB,CACA,IAAI+0B,EAAE,CAAGspB,SAAS,CAAC52C,CAAnB,CACA,IAAIzH,CAAJ,CACA,IAAI+lD,WAAW,CAAG,KAAOrkB,GAAG,CAACzF,uBAAJ,CAA4BlH,EAAE,CAAC,CAAD,CAAF,CAAM,CAAN,CAA5B,CAAsCA,EAAE,CAAC,CAAD,CAAF,CAAM,CAAN,CAAtC,CAAzB,CACA,IAAK/0B,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGE,MAAhB,CAAwBF,CAAC,EAAI,CAA7B,CAAgC,CAC/B+lD,WAAW,EAAI,KAAOrkB,GAAG,CAACzF,uBAAJ,CAA4B4pB,EAAE,CAAC7lD,CAAC,CAAG,CAAL,CAAF,CAAU,CAAV,CAA5B,CAA0C6lD,EAAE,CAAC7lD,CAAC,CAAG,CAAL,CAAF,CAAU,CAAV,CAA1C,CAAP,CAAiE,GAAjE,CAAuE0hC,GAAG,CAACzF,uBAAJ,CAA4B6pB,EAAE,CAAC9lD,CAAD,CAAF,CAAM,CAAN,CAA5B,CAAsC8lD,EAAE,CAAC9lD,CAAD,CAAF,CAAM,CAAN,CAAtC,CAAvE,CAAyH,GAAzH,CAA+H0hC,GAAG,CAACzF,uBAAJ,CAA4BlH,EAAE,CAAC/0B,CAAD,CAAF,CAAM,CAAN,CAA5B,CAAsC+0B,EAAE,CAAC/0B,CAAD,CAAF,CAAM,CAAN,CAAtC,CAA9I,CACA,CACD,GAAI4O,MAAM,EAAI1O,MAAd,CAAsB,CACrB6lD,WAAW,EAAI,KAAOrkB,GAAG,CAACzF,uBAAJ,CAA4B4pB,EAAE,CAAC7lD,CAAC,CAAG,CAAL,CAAF,CAAU,CAAV,CAA5B,CAA0C6lD,EAAE,CAAC7lD,CAAC,CAAG,CAAL,CAAF,CAAU,CAAV,CAA1C,CAAP,CAAiE,GAAjE,CAAuE0hC,GAAG,CAACzF,uBAAJ,CAA4B6pB,EAAE,CAAC,CAAD,CAAF,CAAM,CAAN,CAA5B,CAAsCA,EAAE,CAAC,CAAD,CAAF,CAAM,CAAN,CAAtC,CAAvE,CAAyH,GAAzH,CAA+HpkB,GAAG,CAACzF,uBAAJ,CAA4BlH,EAAE,CAAC,CAAD,CAAF,CAAM,CAAN,CAA5B,CAAsCA,EAAE,CAAC,CAAD,CAAF,CAAM,CAAN,CAAtC,CAA9I,CACAgxB,WAAW,EAAI,GAAf,CACA,CACD,OAAOA,WAAP,CACA,CAjBD,CAmBA,MAAMC,mBAAmB,CAAI,UAAY,CACxC,IAAIC,eAAe,CAAG,IAAI/uB,MAAJ,EAAtB,CACA,IAAIgvB,aAAa,CAAG,IAAIhvB,MAAJ,EAApB,CAEA,IAAI3jB,EAAE,CAAG,CACR4yC,oBAAoB,CAAEA,oBADd,CAAT,CAIA,SAASA,oBAAT,CAA8Bp8C,IAA9B,CAAoC,CACnC,OAAQA,IAAI,CAAC8B,EAAb,EACC,IAAK,IAAL,CACC,OAAOu6C,UAAP,CACD,IAAK,IAAL,CACC,OAAOC,cAAP,CACD,IAAK,IAAL,CACC,OAAOC,oBAAP,CACD,IAAK,IAAL,CACC,OAAOC,YAAP,CACD,IAAK,IAAL,CACA,IAAK,IAAL,CACA,IAAK,IAAL,CACA,IAAK,IAAL,CACC,OAAOC,UAAP,CACD,IAAK,IAAL,CACC,OAAOC,sBAAP,CACD,IAAK,IAAL,CACC,OAAOC,UAAP,CACD,QACC,WAAA,CAnBF,CAqBA,CAED,SAASD,sBAAT,CAAgCE,SAAhC,CAA2CC,QAA3C,CAAqDzI,YAArD,CAAmE,CAClE,GAAIA,YAAY,EAAIyI,QAAQ,CAAChuB,SAAT,CAAmB7qB,EAAnB,CAAsB+hB,IAA1C,CAAgD,CAC/C82B,QAAQ,CAAChuB,SAAT,CAAmBxf,SAAnB,CAA6BsH,YAA7B,CAA0C,SAA1C,CAAqDkmC,QAAQ,CAAChuB,SAAT,CAAmB7qB,EAAnB,CAAsBtG,CAA3E,EACA,CACD,GAAI02C,YAAY,EAAIyI,QAAQ,CAAChuB,SAAT,CAAmB4M,MAAnB,CAA0B1V,IAA9C,CAAoD,CACnD82B,QAAQ,CAAChuB,SAAT,CAAmBxf,SAAnB,CAA6BsH,YAA7B,CAA0C,WAA1C,CAAuDkmC,QAAQ,CAAChuB,SAAT,CAAmB4M,MAAnB,CAA0B/9B,CAA1B,CAA4B40B,OAA5B,EAAvD,EACA,CACD,CAED,SAASqqB,UAAT,EAAsB,EAItB,SAASF,UAAT,CAAoBG,SAApB,CAA+BC,QAA/B,CAAyCzI,YAAzC,CAAuD,CACtD,IAAIlzC,CAAJ,CACA,IAAIC,IAAJ,CACA,IAAI27C,qBAAJ,CACA,IAAIC,MAAJ,CACA,IAAIzI,SAAJ,CACA,IAAI9lB,CAAJ,CACA,IAAIwuB,IAAI,CAAGH,QAAQ,CAACzgB,MAAT,CAAgBjmC,MAA3B,CACA,IAAI6iD,GAAG,CAAG6D,QAAQ,CAAC7D,GAAnB,CACA,IAAIhvB,KAAJ,CACA,IAAI2N,GAAJ,CACA,IAAIlK,KAAJ,CACA,IAAIwvB,UAAJ,CACA,IAAI77C,CAAJ,CACA,IAAKotB,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGwuB,IAAhB,CAAsBxuB,CAAC,EAAI,CAA3B,CAA8B,CAC7BuuB,MAAM,CAAGF,QAAQ,CAACj6B,EAAT,CAAYmD,IAAZ,EAAoBquB,YAA7B,CACA,GAAIyI,QAAQ,CAACzgB,MAAT,CAAgB5N,CAAhB,EAAmBwqB,GAAnB,CAAyBA,GAA7B,CAAkC,CACjCrhB,GAAG,CAAGwkB,aAAa,CAAC7xB,KAAd,EAAN,CACA2yB,UAAU,CAAGjE,GAAG,CAAG6D,QAAQ,CAACzgB,MAAT,CAAgB5N,CAAhB,EAAmBwqB,GAAtC,CACA53C,CAAC,CAAGy7C,QAAQ,CAACjE,YAAT,CAAsBziD,MAAtB,CAA+B,CAAnC,CACA,MAAO,CAAC4mD,MAAD,EAAWE,UAAU,CAAG,CAA/B,CAAkC,CACjCF,MAAM,CAAGF,QAAQ,CAACjE,YAAT,CAAsBx3C,CAAtB,EAAyBq6B,MAAzB,CAAgC1V,IAAhC,EAAwCg3B,MAAjD,CACAE,UAAU,EAAI,CAAd,CACA77C,CAAC,EAAI,CAAL,CACA,CACD,GAAI27C,MAAJ,CAAY,CACXE,UAAU,CAAGjE,GAAG,CAAG6D,QAAQ,CAACzgB,MAAT,CAAgB5N,CAAhB,EAAmBwqB,GAAtC,CACA53C,CAAC,CAAGy7C,QAAQ,CAACjE,YAAT,CAAsBziD,MAAtB,CAA+B,CAAnC,CACA,MAAO8mD,UAAU,CAAG,CAApB,CAAuB,CACtBxvB,KAAK,CAAGovB,QAAQ,CAACjE,YAAT,CAAsBx3C,CAAtB,EAAyBq6B,MAAzB,CAAgC/9B,CAAhC,CAAkC+vB,KAA1C,CACAkK,GAAG,CAAC9I,SAAJ,CAAcpB,KAAK,CAAC,CAAD,CAAnB,CAAwBA,KAAK,CAAC,CAAD,CAA7B,CAAkCA,KAAK,CAAC,CAAD,CAAvC,CAA4CA,KAAK,CAAC,CAAD,CAAjD,CAAsDA,KAAK,CAAC,CAAD,CAA3D,CAAgEA,KAAK,CAAC,CAAD,CAArE,CAA0EA,KAAK,CAAC,CAAD,CAA/E,CAAoFA,KAAK,CAAC,CAAD,CAAzF,CAA8FA,KAAK,CAAC,CAAD,CAAnG,CAAwGA,KAAK,CAAC,CAAD,CAA7G,CAAkHA,KAAK,CAAC,EAAD,CAAvH,CAA6HA,KAAK,CAAC,EAAD,CAAlI,CAAwIA,KAAK,CAAC,EAAD,CAA7I,CAAmJA,KAAK,CAAC,EAAD,CAAxJ,CAA8JA,KAAK,CAAC,EAAD,CAAnK,CAAyKA,KAAK,CAAC,EAAD,CAA9K,EACAwvB,UAAU,EAAI,CAAd,CACA77C,CAAC,EAAI,CAAL,CACA,CACD,CACD,CAnBD,IAmBO,CACNu2B,GAAG,CAAGukB,eAAN,CACA,CACDlyB,KAAK,CAAG6yB,QAAQ,CAACj6B,EAAT,CAAYoH,KAApB,CACA7oB,IAAI,CAAG6oB,KAAK,CAACrP,OAAb,CACA,GAAIoiC,MAAJ,CAAY,CACXD,qBAAqB,CAAG,EAAxB,CACA,IAAK57C,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,IAAhB,CAAsBD,CAAC,EAAI,CAA3B,CAA8B,CAC7BozC,SAAS,CAAGtqB,KAAK,CAAC9nB,MAAN,CAAahB,CAAb,CAAZ,CACA,GAAIozC,SAAS,EAAIA,SAAS,CAAC35B,OAA3B,CAAoC,CACnCmiC,qBAAqB,EAAIjB,gBAAgB,CAACvH,SAAD,CAAYA,SAAS,CAAC35B,OAAtB,CAA+B25B,SAAS,CAAC5vC,CAAzC,CAA4CizB,GAA5C,CAAzC,CACA,CACD,CACDklB,QAAQ,CAAC/D,MAAT,CAAgBtqB,CAAhB,EAAqBsuB,qBAArB,CACA,CATD,IASO,CACNA,qBAAqB,CAAGD,QAAQ,CAAC/D,MAAT,CAAgBtqB,CAAhB,CAAxB,CACA,CACDquB,QAAQ,CAACzgB,MAAT,CAAgB5N,CAAhB,EAAmBrwB,CAAnB,EAAwBy+C,SAAS,CAACpG,EAAV,GAAiB,IAAjB,CAAwB,EAAxB,CAA6BsG,qBAArD,CACAD,QAAQ,CAACzgB,MAAT,CAAgB5N,CAAhB,EAAmBzI,IAAnB,CAA0Bg3B,MAAM,EAAIF,QAAQ,CAACzgB,MAAT,CAAgB5N,CAAhB,EAAmBzI,IAAvD,CACA,CACD,CAED,SAASs2B,UAAT,CAAoBO,SAApB,CAA+BC,QAA/B,CAAyCzI,YAAzC,CAAuD,CACtD,IAAI8I,SAAS,CAAGL,QAAQ,CAACthD,KAAzB,CAEA,GAAIshD,QAAQ,CAACn4C,CAAT,CAAWqhB,IAAX,EAAmBquB,YAAvB,CAAqC,CACpC8I,SAAS,CAAChE,KAAV,CAAgBviC,YAAhB,CAA6B,MAA7B,CAAqC,OAASvc,OAAO,CAACyiD,QAAQ,CAACn4C,CAAT,CAAWhH,CAAX,CAAa,CAAb,CAAD,CAAhB,CAAoC,GAApC,CAA0CtD,OAAO,CAACyiD,QAAQ,CAACn4C,CAAT,CAAWhH,CAAX,CAAa,CAAb,CAAD,CAAjD,CAAqE,GAArE,CAA2EtD,OAAO,CAACyiD,QAAQ,CAACn4C,CAAT,CAAWhH,CAAX,CAAa,CAAb,CAAD,CAAlF,CAAsG,GAA3I,EACA,CACD,GAAIm/C,QAAQ,CAAC75C,CAAT,CAAW+iB,IAAX,EAAmBquB,YAAvB,CAAqC,CACpC8I,SAAS,CAAChE,KAAV,CAAgBviC,YAAhB,CAA6B,cAA7B,CAA6CkmC,QAAQ,CAAC75C,CAAT,CAAWtF,CAAxD,EACA,CACD,CAED,SAAS6+C,oBAAT,CAA8BK,SAA9B,CAAyCC,QAAzC,CAAmDzI,YAAnD,CAAiE,CAChEkI,cAAc,CAACM,SAAD,CAAYC,QAAZ,CAAsBzI,YAAtB,CAAd,CACAoI,YAAY,CAACI,SAAD,CAAYC,QAAZ,CAAsBzI,YAAtB,CAAZ,CACA,CAED,SAASkI,cAAT,CAAwBM,SAAxB,CAAmCC,QAAnC,CAA6CzI,YAA7C,CAA2D,CAC1D,IAAIwG,KAAK,CAAGiC,QAAQ,CAAChC,EAArB,CACA,IAAIsC,UAAU,CAAGN,QAAQ,CAACj/C,CAAT,CAAWs8C,WAA5B,CACA,IAAIx9B,GAAG,CAAGmgC,QAAQ,CAACp/C,CAAT,CAAWC,CAArB,CACA,IAAIif,GAAG,CAAGkgC,QAAQ,CAACj8C,CAAT,CAAWlD,CAArB,CAEA,GAAIm/C,QAAQ,CAAC75C,CAAT,CAAW+iB,IAAX,EAAmBquB,YAAvB,CAAqC,CACpC,IAAI99C,IAAI,CAAGsmD,SAAS,CAAC96C,EAAV,GAAiB,IAAjB,CAAwB,cAAxB,CAAyC,gBAApD,CACA+6C,QAAQ,CAACthD,KAAT,CAAe29C,KAAf,CAAqBviC,YAArB,CAAkCrgB,IAAlC,CAAwCumD,QAAQ,CAAC75C,CAAT,CAAWtF,CAAnD,EACA,CACD,GAAIm/C,QAAQ,CAACp/C,CAAT,CAAWsoB,IAAX,EAAmBquB,YAAvB,CAAqC,CACpC,IAAIgJ,KAAK,CAAGR,SAAS,CAAC3+C,CAAV,GAAgB,CAAhB,CAAoB,IAApB,CAA2B,IAAvC,CACA,IAAIo/C,KAAK,CAAGD,KAAK,GAAK,IAAV,CAAiB,IAAjB,CAAwB,IAApC,CACAxC,KAAK,CAACjkC,YAAN,CAAmBymC,KAAnB,CAA0B1gC,GAAG,CAAC,CAAD,CAA7B,EACAk+B,KAAK,CAACjkC,YAAN,CAAmB0mC,KAAnB,CAA0B3gC,GAAG,CAAC,CAAD,CAA7B,EACA,GAAIygC,UAAU,EAAI,CAACN,QAAQ,CAACj/C,CAAT,CAAWo8C,YAA9B,CAA4C,CAC3C6C,QAAQ,CAACxB,EAAT,CAAY1kC,YAAZ,CAAyBymC,KAAzB,CAAgC1gC,GAAG,CAAC,CAAD,CAAnC,EACAmgC,QAAQ,CAACxB,EAAT,CAAY1kC,YAAZ,CAAyB0mC,KAAzB,CAAgC3gC,GAAG,CAAC,CAAD,CAAnC,EACA,CACD,CACD,IAAI69B,KAAJ,CACA,IAAItkD,CAAJ,CACA,IAAIC,GAAJ,CACA,IAAIwc,IAAJ,CACA,GAAImqC,QAAQ,CAACj/C,CAAT,CAAWk8C,KAAX,EAAoB1F,YAAxB,CAAsC,CACrCmG,KAAK,CAAGsC,QAAQ,CAAC/B,GAAjB,CACA,IAAIwC,OAAO,CAAGT,QAAQ,CAACj/C,CAAT,CAAW8G,CAAzB,CACAxO,GAAG,CAAGqkD,KAAK,CAACpkD,MAAZ,CACA,IAAKF,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5Byc,IAAI,CAAG6nC,KAAK,CAACtkD,CAAD,CAAZ,CACAyc,IAAI,CAACiE,YAAL,CAAkB,QAAlB,CAA4B2mC,OAAO,CAACrnD,CAAC,CAAG,CAAL,CAAP,CAAiB,GAA7C,EACAyc,IAAI,CAACiE,YAAL,CAAkB,YAAlB,CAAgC,OAAS2mC,OAAO,CAACrnD,CAAC,CAAG,CAAJ,CAAQ,CAAT,CAAhB,CAA8B,GAA9B,CAAoCqnD,OAAO,CAACrnD,CAAC,CAAG,CAAJ,CAAQ,CAAT,CAA3C,CAAyD,GAAzD,CAA+DqnD,OAAO,CAACrnD,CAAC,CAAG,CAAJ,CAAQ,CAAT,CAAtE,CAAoF,GAApH,EACA,CACD,CACD,GAAIknD,UAAU,GAAKN,QAAQ,CAACj/C,CAAT,CAAWm8C,KAAX,EAAoB3F,YAAzB,CAAd,CAAsD,CACrD,IAAImJ,OAAO,CAAGV,QAAQ,CAACj/C,CAAT,CAAWoF,CAAzB,CACA,GAAI65C,QAAQ,CAACj/C,CAAT,CAAWo8C,YAAf,CAA6B,CAC5BO,KAAK,CAAGsC,QAAQ,CAAC/B,GAAjB,CACA,CAFD,IAEO,CACNP,KAAK,CAAGsC,QAAQ,CAACtB,GAAjB,CACA,CACDrlD,GAAG,CAAGqkD,KAAK,CAACpkD,MAAZ,CACA,IAAKF,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5Byc,IAAI,CAAG6nC,KAAK,CAACtkD,CAAD,CAAZ,CACA,GAAI,CAAC4mD,QAAQ,CAACj/C,CAAT,CAAWo8C,YAAhB,CAA8B,CAC7BtnC,IAAI,CAACiE,YAAL,CAAkB,QAAlB,CAA4B4mC,OAAO,CAACtnD,CAAC,CAAG,CAAL,CAAP,CAAiB,GAA7C,EACA,CACDyc,IAAI,CAACiE,YAAL,CAAkB,cAAlB,CAAkC4mC,OAAO,CAACtnD,CAAC,CAAG,CAAJ,CAAQ,CAAT,CAAzC,EACA,CACD,CACD,GAAI2mD,SAAS,CAAC3+C,CAAV,GAAgB,CAApB,CAAuB,CACtB,GAAI4+C,QAAQ,CAACj8C,CAAT,CAAWmlB,IAAX,EAAmBquB,YAAvB,CAAqC,CACpCwG,KAAK,CAACjkC,YAAN,CAAmB,IAAnB,CAAyBgG,GAAG,CAAC,CAAD,CAA5B,EACAi+B,KAAK,CAACjkC,YAAN,CAAmB,IAAnB,CAAyBgG,GAAG,CAAC,CAAD,CAA5B,EACA,GAAIwgC,UAAU,EAAI,CAACN,QAAQ,CAACj/C,CAAT,CAAWo8C,YAA9B,CAA4C,CAC3C6C,QAAQ,CAACxB,EAAT,CAAY1kC,YAAZ,CAAyB,IAAzB,CAA+BgG,GAAG,CAAC,CAAD,CAAlC,EACAkgC,QAAQ,CAACxB,EAAT,CAAY1kC,YAAZ,CAAyB,IAAzB,CAA+BgG,GAAG,CAAC,CAAD,CAAlC,EACA,CACD,CACD,CATD,IASO,CACN,IAAIyP,GAAJ,CACA,GAAIywB,QAAQ,CAACp/C,CAAT,CAAWsoB,IAAX,EAAmB82B,QAAQ,CAACj8C,CAAT,CAAWmlB,IAA9B,EAAsCquB,YAA1C,CAAwD,CACvDhoB,GAAG,CAAGpyB,IAAI,CAACG,IAAL,CAAUH,IAAI,CAACC,GAAL,CAASyiB,GAAG,CAAC,CAAD,CAAH,CAASC,GAAG,CAAC,CAAD,CAArB,CAA0B,CAA1B,EAA+B3iB,IAAI,CAACC,GAAL,CAASyiB,GAAG,CAAC,CAAD,CAAH,CAASC,GAAG,CAAC,CAAD,CAArB,CAA0B,CAA1B,CAAzC,CAAN,CACAi+B,KAAK,CAACjkC,YAAN,CAAmB,GAAnB,CAAwByV,GAAxB,EACA,GAAI+wB,UAAU,EAAI,CAACN,QAAQ,CAACj/C,CAAT,CAAWo8C,YAA9B,CAA4C,CAC3C6C,QAAQ,CAACxB,EAAT,CAAY1kC,YAAZ,CAAyB,GAAzB,CAA8ByV,GAA9B,EACA,CACD,CACD,GAAIywB,QAAQ,CAACj8C,CAAT,CAAWmlB,IAAX,EAAmB82B,QAAQ,CAACr/C,CAAT,CAAWuoB,IAA9B,EAAsC82B,QAAQ,CAAC14C,CAAT,CAAW4hB,IAAjD,EAAyDquB,YAA7D,CAA2E,CAC1E,GAAI,CAAChoB,GAAL,CAAU,CACTA,GAAG,CAAGpyB,IAAI,CAACG,IAAL,CAAUH,IAAI,CAACC,GAAL,CAASyiB,GAAG,CAAC,CAAD,CAAH,CAASC,GAAG,CAAC,CAAD,CAArB,CAA0B,CAA1B,EAA+B3iB,IAAI,CAACC,GAAL,CAASyiB,GAAG,CAAC,CAAD,CAAH,CAASC,GAAG,CAAC,CAAD,CAArB,CAA0B,CAA1B,CAAzC,CAAN,CACA,CACD,IAAI6gC,GAAG,CAAGxjD,IAAI,CAACyqB,KAAL,CAAW9H,GAAG,CAAC,CAAD,CAAH,CAASD,GAAG,CAAC,CAAD,CAAvB,CAA4BC,GAAG,CAAC,CAAD,CAAH,CAASD,GAAG,CAAC,CAAD,CAAxC,CAAV,CAEA,IAAIgC,OAAO,CAAGm+B,QAAQ,CAACr/C,CAAT,CAAWE,CAAzB,CACA,GAAIghB,OAAO,EAAI,CAAf,CAAkB,CACjBA,OAAO,CAAG,IAAV,CACA,CAFD,QAEWA,OAAO,EAAI,CAAC,CAAhB,CAAmB,CACzBA,OAAO,CAAG,CAAC,IAAX,CACA,CACD,IAAIxE,IAAI,CAAGkS,GAAG,CAAG1N,OAAjB,CACA,IAAIlF,CAAC,CAAGxf,IAAI,CAAC+qB,GAAL,CAASy4B,GAAG,CAAGX,QAAQ,CAAC14C,CAAT,CAAWzG,CAA1B,EAA+Bwc,IAA/B,CAAsCwC,GAAG,CAAC,CAAD,CAAjD,CACA,IAAIqF,CAAC,CAAG/nB,IAAI,CAACkqB,GAAL,CAASs5B,GAAG,CAAGX,QAAQ,CAAC14C,CAAT,CAAWzG,CAA1B,EAA+Bwc,IAA/B,CAAsCwC,GAAG,CAAC,CAAD,CAAjD,CACAk+B,KAAK,CAACjkC,YAAN,CAAmB,IAAnB,CAAyB6C,CAAzB,EACAohC,KAAK,CAACjkC,YAAN,CAAmB,IAAnB,CAAyBoL,CAAzB,EACA,GAAIo7B,UAAU,EAAI,CAACN,QAAQ,CAACj/C,CAAT,CAAWo8C,YAA9B,CAA4C,CAC3C6C,QAAQ,CAACxB,EAAT,CAAY1kC,YAAZ,CAAyB,IAAzB,CAA+B6C,CAA/B,EACAqjC,QAAQ,CAACxB,EAAT,CAAY1kC,YAAZ,CAAyB,IAAzB,CAA+BoL,CAA/B,EACA,CACD,CACD;CACA,CACD,CAED,SAASy6B,YAAT,CAAsBI,SAAtB,CAAiCC,QAAjC,CAA2CzI,YAA3C,CAAyD,CACxD,IAAI8I,SAAS,CAAGL,QAAQ,CAACthD,KAAzB,CACA,IAAI4C,CAAC,CAAG0+C,QAAQ,CAAC1+C,CAAjB,CACA,GAAIA,CAAC,GAAKA,CAAC,CAAC4nB,IAAF,EAAUquB,YAAf,CAAD,EAAiCj2C,CAAC,CAACk7C,OAAvC,CAAgD,CAC/C6D,SAAS,CAAChE,KAAV,CAAgBviC,YAAhB,CAA6B,kBAA7B,CAAiDxY,CAAC,CAACk7C,OAAnD,EACA6D,SAAS,CAAChE,KAAV,CAAgBviC,YAAhB,CAA6B,mBAA7B,CAAkDxY,CAAC,CAACo7C,UAAF,CAAa,CAAb,CAAlD,EACA,CACD,GAAIsD,QAAQ,CAACn4C,CAAT,GAAem4C,QAAQ,CAACn4C,CAAT,CAAWqhB,IAAX,EAAmBquB,YAAlC,CAAJ,CAAqD,CACpD8I,SAAS,CAAChE,KAAV,CAAgBviC,YAAhB,CAA6B,QAA7B,CAAuC,OAASvc,OAAO,CAACyiD,QAAQ,CAACn4C,CAAT,CAAWhH,CAAX,CAAa,CAAb,CAAD,CAAhB,CAAoC,GAApC,CAA0CtD,OAAO,CAACyiD,QAAQ,CAACn4C,CAAT,CAAWhH,CAAX,CAAa,CAAb,CAAD,CAAjD,CAAqE,GAArE,CAA2EtD,OAAO,CAACyiD,QAAQ,CAACn4C,CAAT,CAAWhH,CAAX,CAAa,CAAb,CAAD,CAAlF,CAAsG,GAA7I,EACA,CACD,GAAIm/C,QAAQ,CAAC75C,CAAT,CAAW+iB,IAAX,EAAmBquB,YAAvB,CAAqC,CACpC8I,SAAS,CAAChE,KAAV,CAAgBviC,YAAhB,CAA6B,gBAA7B,CAA+CkmC,QAAQ,CAAC75C,CAAT,CAAWtF,CAA1D,EACA,CACD,GAAIm/C,QAAQ,CAACx3B,CAAT,CAAWU,IAAX,EAAmBquB,YAAvB,CAAqC,CACpC8I,SAAS,CAAChE,KAAV,CAAgBviC,YAAhB,CAA6B,cAA7B,CAA6CkmC,QAAQ,CAACx3B,CAAT,CAAW3nB,CAAxD,EACA,GAAIw/C,SAAS,CAAC/D,MAAd,CAAsB,CACrB+D,SAAS,CAAC/D,MAAV,CAAiBxiC,YAAjB,CAA8B,cAA9B,CAA8CkmC,QAAQ,CAACx3B,CAAT,CAAW3nB,CAAzD,EACA,CACD,CACD,CAED,OAAO8L,EAAP,CACA,CA1O4B,EAA7B,CA4OA,SAASi0C,eAAT,CAAyBz9C,IAAzB,CAA+ByP,UAA/B,CAA2ChN,IAA3C,CAAiD;CAEhD,KAAKP,MAAL,CAAc,EAAd,CACA;CACA,KAAKgsC,UAAL,CAAkBluC,IAAI,CAACkC,MAAvB,CACA;CACA,KAAKw7C,UAAL,CAAkB,EAAlB,CACA;CACA,KAAKzF,cAAL,CAAsB,EAAtB,CACA;CACA,KAAK9J,SAAL,CAAiB,EAAjB,CACA;CACA,KAAKoK,iBAAL,CAAyB,EAAzB,CACA;CACA,KAAKoF,gBAAL,CAAwB,EAAxB,CACA,KAAKrG,WAAL,CAAiBt3C,IAAjB,CAAuByP,UAAvB,CAAmChN,IAAnC,EACA;CACA;CACA,KAAKi5C,YAAL,CAAoB,EAApB,CACA;CACA,CAED5lD,eAAe,CAAC,CAACi4C,WAAD,CAAcoE,gBAAd,CAAgCsD,cAAhC,CAAgDsC,aAAhD,CAA+Dd,gBAA/D,CAAiFrI,YAAjF,CAA+FwI,oBAA/F,CAAD,CAAuHqG,eAAvH,CAAf,CAEAA,eAAe,CAACpnD,SAAhB,CAA0BunD,oBAA1B,CAAiD,UAAY,EAA7D,CAGAH,eAAe,CAACpnD,SAAhB,CAA0BwnD,cAA1B,CAA2C,IAAI1wB,MAAJ,EAA3C,CAEAswB,eAAe,CAACpnD,SAAhB,CAA0BynD,wBAA1B,CAAqD,UAAY,EAAjE,CAEAL,eAAe,CAACpnD,SAAhB,CAA0BkhD,aAA1B,CAA0C,UAAY,CACrD,KAAKwG,YAAL,CAAkB,KAAK7P,UAAvB,CAAmC,KAAKC,SAAxC,CAAmD,KAAKuN,YAAxD,CAAsE,KAAKlN,YAA3E,CAAyF,CAAzF,CAA4F,EAA5F,CAAgG,IAAhG,EACA,KAAKwP,kBAAL,GACA,CAHD,CAKA;CACA;CACA,EACAP,eAAe,CAACpnD,SAAhB,CAA0B2nD,kBAA1B,CAA+C,UAAY,CAC1D,IAAI/nD,CAAJ,CACA,IAAIC,GAAG,CAAG,KAAKgM,MAAL,CAAY/L,MAAtB,CACA,IAAI2yB,KAAJ,CACA,IAAI5nB,CAAJ,CACA,IAAIC,IAAI,CAAG,KAAKu8C,UAAL,CAAgBvnD,MAA3B,CACA,IAAIoF,KAAJ,CACA,IAAI0iD,UAAU,CAAG,EAAjB,CACA,IAAIC,WAAW,CAAG,KAAlB,CACA,IAAKh9C,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,IAAhB,CAAsBD,CAAC,EAAI,CAA3B,CAA8B,CAC7B3F,KAAK,CAAG,KAAKmiD,UAAL,CAAgBx8C,CAAhB,CAAR,CACAg9C,WAAW,CAAG,KAAd,CACAD,UAAU,CAAC9nD,MAAX,CAAoB,CAApB,CACA,IAAKF,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B6yB,KAAK,CAAG,KAAK5mB,MAAL,CAAYjM,CAAZ,CAAR,CACA,GAAI6yB,KAAK,CAACsT,MAAN,CAAa52B,OAAb,CAAqBjK,KAArB,IAAgC,CAAC,CAArC,CAAwC,CACvC0iD,UAAU,CAACzmD,IAAX,CAAgBsxB,KAAhB,EACAo1B,WAAW,CAAGp1B,KAAK,CAAC1B,WAAN,EAAqB82B,WAAnC,CACA,CACD,CACD,GAAID,UAAU,CAAC9nD,MAAX,CAAoB,CAApB,EAAyB+nD,WAA7B,CAA0C,CACzC,KAAKC,mBAAL,CAAyBF,UAAzB,EACA,CACD,CACD,CAxBD,CA0BAR,eAAe,CAACpnD,SAAhB,CAA0B8nD,mBAA1B,CAAgD,SAAUj8C,MAAV,CAAkB,CACjE,IAAIjM,CAAJ,CACA,IAAIC,GAAG,CAAGgM,MAAM,CAAC/L,MAAjB,CACA,IAAKF,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5BiM,MAAM,CAACjM,CAAD,CAAN,CAAUi/B,aAAV,GACA,CACD,CAND,CAQAuoB,eAAe,CAACpnD,SAAhB,CAA0B+nD,kBAA1B,CAA+C,SAAUp+C,IAAV,CAAgB64C,KAAhB,CAAuB;CAErE,IAAIwF,WAAJ,CACA,IAAI5E,OAAO,CAAG,IAAIR,YAAJ,CAAiBj5C,IAAjB,CAAuB64C,KAAvB,CAAd,CAEA,IAAI6B,WAAW,CAAGjB,OAAO,CAACP,KAA1B,CACA,GAAIl5C,IAAI,CAAC8B,EAAL,GAAY,IAAhB,CAAsB,CACrBu8C,WAAW,CAAG,IAAI7E,kBAAJ,CAAuB,IAAvB,CAA6Bx5C,IAA7B,CAAmCy5C,OAAnC,CAAd,CACA,CAFD,QAEWz5C,IAAI,CAAC8B,EAAL,GAAY,IAAhB,CAAsB,CAC5Bu8C,WAAW,CAAG,IAAI3E,gBAAJ,CAAqB,IAArB,CAA2B15C,IAA3B,CAAiCy5C,OAAjC,CAAd,CACA,CAFM,QAEIz5C,IAAI,CAAC8B,EAAL,GAAY,IAAZ,EAAoB9B,IAAI,CAAC8B,EAAL,GAAY,IAApC,CAA0C,CAChD,IAAIw8C,mBAAmB,CAAGt+C,IAAI,CAAC8B,EAAL,GAAY,IAAZ,CAAmBu4C,wBAAnB,CAA8CmB,0BAAxE,CACA6C,WAAW,CAAG,IAAIC,mBAAJ,CAAwB,IAAxB,CAA8Bt+C,IAA9B,CAAoCy5C,OAApC,CAAd,CACA,KAAKhqC,UAAL,CAAgBC,IAAhB,CAAqB9F,WAArB,CAAiCy0C,WAAW,CAACxD,EAA7C,EACA,GAAIwD,WAAW,CAACrD,MAAhB,CAAwB,CACvB,KAAKvrC,UAAL,CAAgBC,IAAhB,CAAqB9F,WAArB,CAAiCy0C,WAAW,CAAC/C,EAA7C,EACA,KAAK7rC,UAAL,CAAgBC,IAAhB,CAAqB9F,WAArB,CAAiCy0C,WAAW,CAAChD,EAA7C,EACAX,WAAW,CAAC/jC,YAAZ,CAAyB,MAAzB,CAAiC,OAASlhB,eAAe,EAAxB,CAA6B,GAA7B,CAAmC4oD,WAAW,CAACrD,MAA/C,CAAwD,GAAzF,EACA,CACD,CATM,QASIh7C,IAAI,CAAC8B,EAAL,GAAY,IAAhB,CAAsB,CAC5Bu8C,WAAW,CAAG,IAAI1E,cAAJ,CAAmB,IAAnB,CAAyB35C,IAAzB,CAA+By5C,OAA/B,CAAd,CACA,CAED,GAAIz5C,IAAI,CAAC8B,EAAL,GAAY,IAAZ,EAAoB9B,IAAI,CAAC8B,EAAL,GAAY,IAApC,CAA0C,CACzC44C,WAAW,CAAC/jC,YAAZ,CAAyB,gBAAzB,CAA2C8hC,WAAW,CAACz4C,IAAI,CAACk7C,EAAL,EAAW,CAAZ,CAAtD,EACAR,WAAW,CAAC/jC,YAAZ,CAAyB,iBAAzB,CAA4C+hC,YAAY,CAAC14C,IAAI,CAACm7C,EAAL,EAAW,CAAZ,CAAxD,EACAT,WAAW,CAAC/jC,YAAZ,CAAyB,cAAzB,CAAyC,GAAzC,EACA,GAAI3W,IAAI,CAACm7C,EAAL,GAAY,CAAhB,CAAmB,CAClBT,WAAW,CAAC/jC,YAAZ,CAAyB,mBAAzB,CAA8C3W,IAAI,CAACo7C,EAAnD,EACA,CACD,CAED,GAAIp7C,IAAI,CAACrC,CAAL,GAAW,CAAf,CAAkB,CACjB+8C,WAAW,CAAC/jC,YAAZ,CAAyB,WAAzB,CAAsC,SAAtC,EACA,CAED,GAAI3W,IAAI,CAACu2C,EAAT,CAAa,CACZmE,WAAW,CAAC/jC,YAAZ,CAAyB,IAAzB,CAA+B3W,IAAI,CAACu2C,EAApC,EACA,CACD,GAAIv2C,IAAI,CAAC8E,EAAT,CAAa,CACZ41C,WAAW,CAAC/jC,YAAZ,CAAyB,OAAzB,CAAkC3W,IAAI,CAAC8E,EAAvC,EACA,CACD,GAAI9E,IAAI,CAACsuC,EAAT,CAAa,CACZoM,WAAW,CAACn/C,KAAZ,CAAkB,gBAAlB,EAAsCyxC,YAAY,CAAChtC,IAAI,CAACsuC,EAAN,CAAlD,CACA,CACD,KAAKoP,UAAL,CAAgBlmD,IAAhB,CAAqBiiD,OAArB,EACA,KAAK8E,qBAAL,CAA2Bv+C,IAA3B,CAAiCq+C,WAAjC,EACA,OAAOA,WAAP,CACA,CAhDD,CAkDAZ,eAAe,CAACpnD,SAAhB,CAA0BmoD,kBAA1B,CAA+C,SAAUx+C,IAAV,CAAgB,CAC9D,IAAIq+C,WAAW,CAAG,IAAI5C,cAAJ,EAAlB,CACA,GAAIz7C,IAAI,CAACu2C,EAAT,CAAa,CACZ8H,WAAW,CAAC1C,EAAZ,CAAehlC,YAAf,CAA4B,IAA5B,CAAkC3W,IAAI,CAACu2C,EAAvC,EACA,CACD,GAAIv2C,IAAI,CAAC8E,EAAT,CAAa,CACZu5C,WAAW,CAAC1C,EAAZ,CAAehlC,YAAf,CAA4B,OAA5B,CAAqC3W,IAAI,CAAC8E,EAA1C,EACA,CACD,GAAI9E,IAAI,CAACsuC,EAAT,CAAa,CACZ+P,WAAW,CAAC1C,EAAZ,CAAepgD,KAAf,CAAqB,gBAArB,EAAyCyxC,YAAY,CAAChtC,IAAI,CAACsuC,EAAN,CAArD,CACA,CACD,OAAO+P,WAAP,CACA,CAZD,CAcAZ,eAAe,CAACpnD,SAAhB,CAA0BooD,sBAA1B,CAAmD,SAAUz+C,IAAV,CAAgBqP,SAAhB,CAA2B,CAC7E,IAAIqvC,iBAAiB,CAAGlnB,wBAAwB,CAACqB,oBAAzB,CAA8C,IAA9C,CAAoD74B,IAApD,CAA0D,IAA1D,CAAxB,CACA,IAAIq+C,WAAW,CAAG,IAAIzC,gBAAJ,CAAqB8C,iBAArB,CAAwCA,iBAAiB,CAAC17C,CAA1D,CAA6DqM,SAA7D,CAAlB,CACA,KAAKkvC,qBAAL,CAA2Bv+C,IAA3B,CAAiCq+C,WAAjC,EACA,OAAOA,WAAP,CACA,CALD,CAOAZ,eAAe,CAACpnD,SAAhB,CAA0BsoD,kBAA1B,CAA+C,SAAU3+C,IAAV,CAAgB4+C,eAAhB,CAAiC/F,KAAjC,CAAwC,CACtF,IAAI/2C,EAAE,CAAG,CAAT,CACA,GAAI9B,IAAI,CAAC8B,EAAL,GAAY,IAAhB,CAAsB,CACrBA,EAAE,CAAG,CAAL,CACA,CAFD,QAEW9B,IAAI,CAAC8B,EAAL,GAAY,IAAhB,CAAsB,CAC5BA,EAAE,CAAG,CAAL,CACA,CAFM,QAEI9B,IAAI,CAAC8B,EAAL,GAAY,IAAhB,CAAsB,CAC5BA,EAAE,CAAG,CAAL,CACA,CACD,IAAI+8C,aAAa,CAAGt1B,oBAAoB,CAACwD,YAArB,CAAkC,IAAlC,CAAwC/sB,IAAxC,CAA8C8B,EAA9C,CAAkD,IAAlD,CAApB,CACA,IAAIu8C,WAAW,CAAG,IAAI1F,YAAJ,CAAiBiG,eAAjB,CAAkC/F,KAAlC,CAAyCgG,aAAzC,CAAlB,CACA,KAAK38C,MAAL,CAAY1K,IAAZ,CAAiB6mD,WAAjB,EACA,KAAKrG,mBAAL,CAAyBqG,WAAzB,EACA,KAAKE,qBAAL,CAA2Bv+C,IAA3B,CAAiCq+C,WAAjC,EACA,OAAOA,WAAP,CACA,CAfD,CAiBAZ,eAAe,CAACpnD,SAAhB,CAA0BkoD,qBAA1B,CAAkD,SAAUv+C,IAAV,CAAgB1E,OAAhB,CAAyB,CAC1E,IAAIrF,CAAC,CAAG,CAAR,CACA,IAAIC,GAAG,CAAG,KAAKynD,gBAAL,CAAsBxnD,MAAhC,CACA,MAAOF,CAAC,CAAGC,GAAX,CAAgB,CACf,GAAI,KAAKynD,gBAAL,CAAsB1nD,CAAtB,EAAyBqF,OAAzB,GAAqCA,OAAzC,CAAkD,CACjD,OACA,CACDrF,CAAC,EAAI,CAAL,CACA,CACD,KAAK0nD,gBAAL,CAAsBnmD,IAAtB,CAA2B,CAC1B2I,EAAE,CAAE87C,mBAAmB,CAACG,oBAApB,CAAyCp8C,IAAzC,CADsB,CAE1B1E,OAAO,CAAEA,OAFiB,CAG1B0E,IAAI,CAAEA,IAHoB,CAA3B,EAKA,CAdD,CAgBAy9C,eAAe,CAACpnD,SAAhB,CAA0ByoD,gBAA1B,CAA6C,SAAUT,WAAV,CAAuB,CACnE,IAAIrlD,GAAG,CAAGqlD,WAAW,CAACjiB,MAAtB,CACA,IAAIl7B,CAAJ,CACA,IAAIC,IAAI,CAAG,KAAKu8C,UAAL,CAAgBvnD,MAA3B,CACA,IAAK+K,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,IAAhB,CAAsBD,CAAC,EAAI,CAA3B,CAA8B,CAC7B,GAAI,CAAC,KAAKw8C,UAAL,CAAgBx8C,CAAhB,EAAmB2D,MAAxB,CAAgC,CAC/B7L,GAAG,CAACxB,IAAJ,CAAS,KAAKkmD,UAAL,CAAgBx8C,CAAhB,CAAT,EACA,CACD,CACD,CATD,CAWAu8C,eAAe,CAACpnD,SAAhB,CAA0B2kC,YAA1B,CAAyC,UAAY,CACpD,KAAK5U,aAAL,CAAqB,IAArB,CACA,IAAInwB,CAAJ,CACA,IAAIC,GAAG,CAAG,KAAKi4C,SAAL,CAAeh4C,MAAzB,CACA,IAAKF,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B,KAAKylD,YAAL,CAAkBzlD,CAAlB,EAAuB,KAAKk4C,SAAL,CAAel4C,CAAf,CAAvB,CACA,CACD,KAAK8nD,YAAL,CAAkB,KAAK7P,UAAvB,CAAmC,KAAKC,SAAxC,CAAmD,KAAKuN,YAAxD,CAAsE,KAAKlN,YAA3E,CAAyF,CAAzF,CAA4F,EAA5F,CAAgG,IAAhG,EACA,KAAKwP,kBAAL,GACA9nD,GAAG,CAAG,KAAKixB,iBAAL,CAAuBhxB,MAA7B,CACA,IAAKF,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B,KAAKkxB,iBAAL,CAAuBlxB,CAAvB,EAA0B2wB,QAA1B,GACA,CACD,KAAKwxB,eAAL,GACA,CAdD,CAgBAqF,eAAe,CAACpnD,SAAhB,CAA0B0nD,YAA1B,CAAyC,SAAU/kD,GAAV,CAAem1C,SAAf,CAA0BuN,YAA1B,CAAwCrsC,SAAxC,CAAmDwpC,KAAnD,CAA0DD,YAA1D,CAAwEmG,MAAxE,CAAgF,CACxH,IAAIH,eAAe,CAAG,GAAGpoC,MAAH,CAAUoiC,YAAV,CAAtB,CACA,IAAI3iD,CAAJ,CACA,IAAIC,GAAG,CAAG8C,GAAG,CAAC7C,MAAJ,CAAa,CAAvB,CACA,IAAI+K,CAAJ,CACA,IAAIC,IAAJ,CACA,IAAI69C,SAAS,CAAG,EAAhB,CACA,IAAIC,YAAY,CAAG,EAAnB,CACA,IAAIC,gBAAJ,CACA,IAAIC,QAAJ,CACA,IAAIC,YAAJ,CACA,IAAKnpD,CAAC,CAAGC,GAAT,CAAcD,CAAC,EAAI,CAAnB,CAAsBA,CAAC,EAAI,CAA3B,CAA8B,CAC7BmpD,YAAY,CAAG,KAAK9G,sBAAL,CAA4Bt/C,GAAG,CAAC/C,CAAD,CAA/B,CAAf,CACA,GAAI,CAACmpD,YAAL,CAAmB,CAClBpmD,GAAG,CAAC/C,CAAD,CAAH,CAAOskC,OAAP,CAAiBwkB,MAAjB,CACA,CAFD,IAEO,CACN5Q,SAAS,CAACl4C,CAAD,CAAT,CAAeylD,YAAY,CAAC0D,YAAY,CAAG,CAAhB,CAA3B,CACA,CACD,GAAIpmD,GAAG,CAAC/C,CAAD,CAAH,CAAO6L,EAAP,GAAc,IAAd,EAAsB9I,GAAG,CAAC/C,CAAD,CAAH,CAAO6L,EAAP,GAAc,IAApC,EAA4C9I,GAAG,CAAC/C,CAAD,CAAH,CAAO6L,EAAP,GAAc,IAA1D,EAAkE9I,GAAG,CAAC/C,CAAD,CAAH,CAAO6L,EAAP,GAAc,IAAhF,EAAwF9I,GAAG,CAAC/C,CAAD,CAAH,CAAO6L,EAAP,GAAc,IAA1G,CAAgH,CAC/G,GAAI,CAACs9C,YAAL,CAAmB,CAClBjR,SAAS,CAACl4C,CAAD,CAAT,CAAe,KAAKmoD,kBAAL,CAAwBplD,GAAG,CAAC/C,CAAD,CAA3B,CAAgC4iD,KAAhC,CAAf,CACA,CAFD,IAEO,CACN1K,SAAS,CAACl4C,CAAD,CAAT,CAAasF,KAAb,CAAmBsJ,MAAnB,CAA4B,KAA5B,CACA,CACD,GAAI7L,GAAG,CAAC/C,CAAD,CAAH,CAAOskC,OAAX,CAAoB,CACnB,GAAI4T,SAAS,CAACl4C,CAAD,CAAT,CAAasF,KAAb,CAAmB29C,KAAnB,CAAyB1b,UAAzB,GAAwCnuB,SAA5C,CAAuD,CACtDA,SAAS,CAACzF,WAAV,CAAsBukC,SAAS,CAACl4C,CAAD,CAAT,CAAasF,KAAb,CAAmB29C,KAAzC,EACA,CACD,CACD8F,SAAS,CAACxnD,IAAV,CAAe22C,SAAS,CAACl4C,CAAD,CAAT,CAAasF,KAA5B,EACA,CAZD,QAYWvC,GAAG,CAAC/C,CAAD,CAAH,CAAO6L,EAAP,GAAc,IAAlB,CAAwB,CAC9B,GAAI,CAACs9C,YAAL,CAAmB,CAClBjR,SAAS,CAACl4C,CAAD,CAAT,CAAe,KAAKuoD,kBAAL,CAAwBxlD,GAAG,CAAC/C,CAAD,CAA3B,CAAf,CACA,CAFD,IAEO,CACNkL,IAAI,CAAGgtC,SAAS,CAACl4C,CAAD,CAAT,CAAa8M,EAAb,CAAgB5M,MAAvB,CACA,IAAK+K,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,IAAhB,CAAsBD,CAAC,EAAI,CAA3B,CAA8B,CAC7BitC,SAAS,CAACl4C,CAAD,CAAT,CAAaylD,YAAb,CAA0Bx6C,CAA1B,EAA+BitC,SAAS,CAACl4C,CAAD,CAAT,CAAa8M,EAAb,CAAgB7B,CAAhB,CAA/B,CACA,CACD,CACD,KAAK68C,YAAL,CAAkB/kD,GAAG,CAAC/C,CAAD,CAAH,CAAO8M,EAAzB,CAA6BorC,SAAS,CAACl4C,CAAD,CAAT,CAAa8M,EAA1C,CAA8CorC,SAAS,CAACl4C,CAAD,CAAT,CAAaylD,YAA3D,CAAyEvN,SAAS,CAACl4C,CAAD,CAAT,CAAa0lD,EAAtF,CAA0F9C,KAAK,CAAG,CAAlG,CAAqG+F,eAArG,CAAsHG,MAAtH,EACA,GAAI/lD,GAAG,CAAC/C,CAAD,CAAH,CAAOskC,OAAX,CAAoB,CACnB,GAAI4T,SAAS,CAACl4C,CAAD,CAAT,CAAa0lD,EAAb,CAAgBne,UAAhB,GAA+BnuB,SAAnC,CAA8C,CAC7CA,SAAS,CAACzF,WAAV,CAAsBukC,SAAS,CAACl4C,CAAD,CAAT,CAAa0lD,EAAnC,EACA,CACD,CACD,CAfM,QAeI3iD,GAAG,CAAC/C,CAAD,CAAH,CAAO6L,EAAP,GAAc,IAAlB,CAAwB,CAC9B,GAAI,CAACs9C,YAAL,CAAmB,CAClBjR,SAAS,CAACl4C,CAAD,CAAT,CAAe,KAAKwoD,sBAAL,CAA4BzlD,GAAG,CAAC/C,CAAD,CAA/B,CAAoCoZ,SAApC,CAAf,CACA,CACD6vC,gBAAgB,CAAG/Q,SAAS,CAACl4C,CAAD,CAAT,CAAa44B,SAAhC,CACA+vB,eAAe,CAACpnD,IAAhB,CAAqB0nD,gBAArB,EACA,CANM,QAMIlmD,GAAG,CAAC/C,CAAD,CAAH,CAAO6L,EAAP,GAAc,IAAd,EAAsB9I,GAAG,CAAC/C,CAAD,CAAH,CAAO6L,EAAP,GAAc,IAApC,EAA4C9I,GAAG,CAAC/C,CAAD,CAAH,CAAO6L,EAAP,GAAc,IAA1D,EAAkE9I,GAAG,CAAC/C,CAAD,CAAH,CAAO6L,EAAP,GAAc,IAApF,CAA0F,CAChG,GAAI,CAACs9C,YAAL,CAAmB,CAClBjR,SAAS,CAACl4C,CAAD,CAAT,CAAe,KAAK0oD,kBAAL,CAAwB3lD,GAAG,CAAC/C,CAAD,CAA3B,CAAgC2oD,eAAhC,CAAiD/F,KAAjD,CAAf,CACA,CACD,KAAKiG,gBAAL,CAAsB3Q,SAAS,CAACl4C,CAAD,CAA/B,EACA,CALM,QAKI+C,GAAG,CAAC/C,CAAD,CAAH,CAAO6L,EAAP,GAAc,IAAd,EAAsB9I,GAAG,CAAC/C,CAAD,CAAH,CAAO6L,EAAP,GAAc,IAApC,EAA4C9I,GAAG,CAAC/C,CAAD,CAAH,CAAO6L,EAAP,GAAc,IAA1D,EAAkE9I,GAAG,CAAC/C,CAAD,CAAH,CAAO6L,EAAP,GAAc,IAApF,CAA0F,CAChG,GAAI,CAACs9C,YAAL,CAAmB,CAClBD,QAAQ,CAAGxqB,cAAc,CAACG,WAAf,CAA2B97B,GAAG,CAAC/C,CAAD,CAAH,CAAO6L,EAAlC,CAAX,CACAq9C,QAAQ,CAACprC,IAAT,CAAc,IAAd,CAAoB/a,GAAG,CAAC/C,CAAD,CAAvB,EACAk4C,SAAS,CAACl4C,CAAD,CAAT,CAAekpD,QAAf,CACA,KAAKlH,cAAL,CAAoBzgD,IAApB,CAAyB2nD,QAAzB,EACA,CALD,IAKO,CACNA,QAAQ,CAAGhR,SAAS,CAACl4C,CAAD,CAApB,CACAkpD,QAAQ,CAACt6C,MAAT,CAAkB,KAAlB,CACA,CACDo6C,YAAY,CAACznD,IAAb,CAAkB2nD,QAAlB,EACA,CAXM,QAWInmD,GAAG,CAAC/C,CAAD,CAAH,CAAO6L,EAAP,GAAc,IAAlB,CAAwB,CAC9B,GAAI,CAACs9C,YAAL,CAAmB,CAClBD,QAAQ,CAAGxqB,cAAc,CAACG,WAAf,CAA2B97B,GAAG,CAAC/C,CAAD,CAAH,CAAO6L,EAAlC,CAAX,CACAqsC,SAAS,CAACl4C,CAAD,CAAT,CAAekpD,QAAf,CACAA,QAAQ,CAACprC,IAAT,CAAc,IAAd,CAAoB/a,GAApB,CAAyB/C,CAAzB,CAA4Bk4C,SAA5B,EACA,KAAK8J,cAAL,CAAoBzgD,IAApB,CAAyB2nD,QAAzB,EACAJ,MAAM,CAAG,KAAT,CACA,CAND,IAMO,CACNI,QAAQ,CAAGhR,SAAS,CAACl4C,CAAD,CAApB,CACAkpD,QAAQ,CAACt6C,MAAT,CAAkB,IAAlB,CACA,CACDo6C,YAAY,CAACznD,IAAb,CAAkB2nD,QAAlB,EACA,CACD,KAAK3G,mBAAL,CAAyBx/C,GAAG,CAAC/C,CAAD,CAA5B,CAAiCA,CAAC,CAAG,CAArC,EACA,CACDC,GAAG,CAAG8oD,SAAS,CAAC7oD,MAAhB,CACA,IAAKF,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B+oD,SAAS,CAAC/oD,CAAD,CAAT,CAAa4O,MAAb,CAAsB,IAAtB,CACA,CACD3O,GAAG,CAAG+oD,YAAY,CAAC9oD,MAAnB,CACA,IAAKF,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5BgpD,YAAY,CAAChpD,CAAD,CAAZ,CAAgB4O,MAAhB,CAAyB,IAAzB,CACA,CACD,CA1FD,CA4FA44C,eAAe,CAACpnD,SAAhB,CAA0BmhD,kBAA1B,CAA+C,UAAY,CAC1D,KAAKY,eAAL,GACA,IAAIniD,CAAJ,CACA,IAAIC,GAAG,CAAG,KAAKwnD,UAAL,CAAgBvnD,MAA1B,CACA,IAAKF,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B,KAAKynD,UAAL,CAAgBznD,CAAhB,EAAmBq0B,KAAnB,GACA,CACD,KAAK+0B,WAAL,GACA,IAAKppD,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B,GAAI,KAAKynD,UAAL,CAAgBznD,CAAhB,EAAmB8vB,IAAnB,EAA2B,KAAKK,aAApC,CAAmD,CAClD,GAAI,KAAKs3B,UAAL,CAAgBznD,CAAhB,EAAmBkjD,MAAvB,CAA+B,CAC9B,KAAKuE,UAAL,CAAgBznD,CAAhB,EAAmBkjD,MAAnB,CAA0BxiC,YAA1B,CAAuC,GAAvC,CAA4C,KAAK+mC,UAAL,CAAgBznD,CAAhB,EAAmBkI,CAA/D,EACA;CACA,KAAKu/C,UAAL,CAAgBznD,CAAhB,EAAmBkI,CAAnB,CAAuB,OAAS,KAAKu/C,UAAL,CAAgBznD,CAAhB,EAAmBkI,CAAnD,CACA,CACD,KAAKu/C,UAAL,CAAgBznD,CAAhB,EAAmBijD,KAAnB,CAAyBviC,YAAzB,CAAsC,GAAtC,CAA2C,KAAK+mC,UAAL,CAAgBznD,CAAhB,EAAmBkI,CAAnB,EAAwB,MAAnE,EACA,CACD,CACD,CAlBD,CAoBAs/C,eAAe,CAACpnD,SAAhB,CAA0BgpD,WAA1B,CAAwC,UAAY,CACnD,IAAIppD,CAAJ,CACA,IAAIC,GAAG,CAAG,KAAKynD,gBAAL,CAAsBxnD,MAAhC,CACA,IAAImpD,eAAJ,CACA,IAAKrpD,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5BqpD,eAAe,CAAG,KAAK3B,gBAAL,CAAsB1nD,CAAtB,CAAlB,CACA,GAAI,CAAC,KAAKmwB,aAAL,EAAsBk5B,eAAe,CAAChkD,OAAhB,CAAwB8rB,WAA/C,GAA+Dk4B,eAAe,CAACt/C,IAAhB,GAAyB,IAA5F,CAAkG,CACjGs/C,eAAe,CAACn/C,EAAhB,CAAmBm/C,eAAe,CAACt/C,IAAnC,CAAyCs/C,eAAe,CAAChkD,OAAzD,CAAkE,KAAK8qB,aAAvE,EACA,CACD,CACD,CAVD,CAYAq3B,eAAe,CAACpnD,SAAhB,CAA0BoU,OAA1B,CAAoC,UAAY,CAC/C,KAAKosC,kBAAL,GACA,KAAK3I,UAAL,CAAkB,IAAlB,CACA,KAAKC,SAAL,CAAiB,IAAjB,CACA,CAJD,CAMA,SAASoR,WAAT,CAAqBv8C,CAArB,CAAwBw8C,EAAxB,CAA4Blf,EAA5B,CAAgCmf,EAAhC,CAAoChxB,CAApC,CAAuC1wB,CAAvC,CAA0C,CACzC,KAAKiF,CAAL,CAASA,CAAT,CACA,KAAKw8C,EAAL,CAAUA,EAAV,CACA,KAAKlf,EAAL,CAAUA,EAAV,CACA,KAAKmf,EAAL,CAAUA,EAAV,CACA,KAAKhxB,CAAL,CAASA,CAAT,CACA,KAAK1wB,CAAL,CAASA,CAAT,CACA,KAAKgoB,IAAL,CAAY,CACX/iB,CAAC,CAAE,IADQ,CAEXw8C,EAAE,CAAE,CAAC,CAACA,EAFK,CAGXlf,EAAE,CAAE,CAAC,CAACA,EAHK,CAIXmf,EAAE,CAAE,CAAC,CAACA,EAJK,CAKXhxB,CAAC,CAAE,IALQ,CAMX1wB,CAAC,CAAE,IANQ,CAAZ,CAQA,CAEDwhD,WAAW,CAAClpD,SAAZ,CAAsBqpD,MAAtB,CAA+B,SAAU18C,CAAV,CAAaw8C,EAAb,CAAiBlf,EAAjB,CAAqBmf,EAArB,CAAyBhxB,CAAzB,CAA4B1wB,CAA5B,CAA+B,CAC7D,KAAKgoB,IAAL,CAAU/iB,CAAV,CAAc,KAAd,CACA,KAAK+iB,IAAL,CAAUy5B,EAAV,CAAe,KAAf,CACA,KAAKz5B,IAAL,CAAUua,EAAV,CAAe,KAAf,CACA,KAAKva,IAAL,CAAU05B,EAAV,CAAe,KAAf,CACA,KAAK15B,IAAL,CAAU0I,CAAV,CAAc,KAAd,CACA,KAAK1I,IAAL,CAAUhoB,CAAV,CAAc,KAAd,CACA,IAAI4hD,OAAO,CAAG,KAAd,CAEA,GAAI,KAAK38C,CAAL,GAAWA,CAAf,CAAkB,CACjB,KAAKA,CAAL,CAASA,CAAT,CACA,KAAK+iB,IAAL,CAAU/iB,CAAV,CAAc,IAAd,CACA28C,OAAO,CAAG,IAAV,CACA,CACD,GAAI,KAAKH,EAAL,GAAYA,EAAhB,CAAoB,CACnB,KAAKA,EAAL,CAAUA,EAAV,CACA,KAAKz5B,IAAL,CAAUy5B,EAAV,CAAe,IAAf,CACAG,OAAO,CAAG,IAAV,CACA,CACD,GAAI,KAAKrf,EAAL,GAAYA,EAAhB,CAAoB,CACnB,KAAKA,EAAL,CAAUA,EAAV,CACA,KAAKva,IAAL,CAAUua,EAAV,CAAe,IAAf,CACAqf,OAAO,CAAG,IAAV,CACA,CACD,GAAI,KAAKF,EAAL,GAAYA,EAAhB,CAAoB,CACnB,KAAKA,EAAL,CAAUA,EAAV,CACA,KAAK15B,IAAL,CAAU05B,EAAV,CAAe,IAAf,CACAE,OAAO,CAAG,IAAV,CACA,CACD,GAAI,KAAKlxB,CAAL,GAAWA,CAAf,CAAkB,CACjB,KAAKA,CAAL,CAASA,CAAT,CACA,KAAK1I,IAAL,CAAU0I,CAAV,CAAc,IAAd,CACAkxB,OAAO,CAAG,IAAV,CACA,CACD,GAAI5hD,CAAC,CAAC5H,MAAF,GAAa,KAAK4H,CAAL,CAAO,CAAP,IAAcA,CAAC,CAAC,CAAD,CAAf,EAAsB,KAAKA,CAAL,CAAO,CAAP,IAAcA,CAAC,CAAC,CAAD,CAArC,EAA4C,KAAKA,CAAL,CAAO,CAAP,IAAcA,CAAC,CAAC,CAAD,CAA3D,EAAkE,KAAKA,CAAL,CAAO,CAAP,IAAcA,CAAC,CAAC,CAAD,CAAjF,EAAwF,KAAKA,CAAL,CAAO,EAAP,IAAeA,CAAC,CAAC,EAAD,CAAxG,EAAgH,KAAKA,CAAL,CAAO,EAAP,IAAeA,CAAC,CAAC,EAAD,CAA7I,CAAJ,CAAwJ,CACvJ,KAAKA,CAAL,CAASA,CAAT,CACA,KAAKgoB,IAAL,CAAUhoB,CAAV,CAAc,IAAd,CACA4hD,OAAO,CAAG,IAAV,CACA,CACD,OAAOA,OAAP,CACA,CAxCD,CA0CA,SAASC,YAAT,CAAsBjqC,IAAtB,CAA4B3V,IAA5B,CAAkC,CACjC,KAAK6/C,QAAL,CAAgB1qD,mBAAhB,CACA,KAAK4rB,EAAL,CAAU,EAAV,CACA,KAAKrjB,CAAL,CAAS,EAAT,CACA,KAAK4oB,EAAL,CAAU,KAAV,CACA,KAAKF,aAAL,CAAqB,IAArB,CACA,KAAKL,IAAL,CAAY,KAAZ,CACA,KAAK/lB,IAAL,CAAYA,IAAZ,CACA,KAAK2V,IAAL,CAAYA,IAAZ,CACA,KAAKlT,IAAL,CAAY,KAAKkT,IAAL,CAAUlT,IAAtB,CACA,KAAKq9C,SAAL,CAAiB,CAAjB,CACA,KAAKC,SAAL,CAAiB,KAAjB,CACA,KAAKC,eAAL,CAAuB,CAAvB,CACA,KAAK95B,eAAL,CAAuB,EAAvB,CACA,KAAK4mB,WAAL,CAAmB,CAClBmT,MAAM,CAAE,CADU,CAElBC,QAAQ,CAAE,KAAKC,eAFG,CAGlBriD,CAAC,CAAE,EAHe,CAIlBu+B,MAAM,CAAE,EAJU,CAKlBC,OAAO,CAAE,EALS,CAMlBmjB,EAAE,CAAE,EANc,CAOlBv+C,CAAC,CAAE,EAPe,CAQlBk/C,aAAa,CAAE,EARG,CASlB5xB,CAAC,CAAE,EATe,CAUlB6xB,EAAE,CAAE,CAVc,CAWlBC,UAAU,CAAE,EAXM,CAYlBC,EAAE,CAAE,EAZc,CAalBlF,EAAE,CAAE,EAbc,CAclB59C,CAAC,CAAE,EAde,CAelB6iC,EAAE,CAAE,EAfc,CAgBlBkf,EAAE,CAAE,CAhBc,CAiBlBvhD,CAAC,CAAE,CAjBe,CAkBlB86B,EAAE,CAAE,CAlBc,CAmBlBzK,EAAE,CAAE,CAnBc,CAoBlBkyB,EAAE,CAAE,IApBc,CAqBlBC,aAAa,CAAE,KArBG,CAsBlBC,eAAe,CAAE,KAtBC,CAuBlBC,eAAe,CAAE,KAvBC,CAwBlBC,OAAO,CAAE,CAxBS,CAyBlBC,SAAS,CAAE,CAzBO,CA0BlBC,SAAS,CAAE,EA1BO,CA2BlBC,eAAe,CAAE,CA3BC,CA4BlB/7C,UAAU,CAAE,KA5BM,CAAnB,CA+BA,KAAKg8C,QAAL,CAAc,KAAKlU,WAAnB,CAAgC,KAAK9sC,IAAL,CAAU7B,CAAV,CAAYiD,CAAZ,CAAc,CAAd,EAAiB3D,CAAjD,EAEA,GAAI,CAAC,KAAK4xC,cAAL,EAAL,CAA4B,CAC3B,KAAK4R,gBAAL,CAAsB,KAAKnU,WAA3B,EACA,CACD,CAED8S,YAAY,CAACvpD,SAAb,CAAuB8pD,eAAvB,CAAyC,CAAC,CAAD,CAAI,CAAJ,CAAzC,CAEAP,YAAY,CAACvpD,SAAb,CAAuB2qD,QAAvB,CAAkC,SAAUE,GAAV,CAAelhD,IAAf,CAAqB,CACtD,IAAK,IAAIvC,CAAT,IAAcuC,IAAd,CAAoB,CACnB,GAAIzJ,MAAM,CAACF,SAAP,CAAiBG,cAAjB,CAAgCC,IAAhC,CAAqCuJ,IAArC,CAA2CvC,CAA3C,CAAJ,CAAmD,CAClDyjD,GAAG,CAACzjD,CAAD,CAAH,CAASuC,IAAI,CAACvC,CAAD,CAAb,CACA,CACD,CACD,OAAOyjD,GAAP,CACA,CAPD,CASAtB,YAAY,CAACvpD,SAAb,CAAuB8qD,cAAvB,CAAwC,SAAUnhD,IAAV,CAAgB,CACvD,GAAI,CAACA,IAAI,CAACgF,UAAV,CAAsB,CACrB,KAAKi8C,gBAAL,CAAsBjhD,IAAtB,EACA,CACD,KAAK8sC,WAAL,CAAmB9sC,IAAnB,CACA,KAAK8sC,WAAL,CAAiBoT,QAAjB,CAA4B,KAAKpT,WAAL,CAAiBoT,QAAjB,EAA6B,KAAKC,eAA9D,CACA,KAAKp6B,IAAL,CAAY,IAAZ,CACA,CAPD,CASA65B,YAAY,CAACvpD,SAAb,CAAuBg5C,cAAvB,CAAwC,UAAY,CACnD,YAAY+R,eAAL,EAAP,CACA,CAFD,CAIAxB,YAAY,CAACvpD,SAAb,CAAuB+qD,eAAvB,CAAyC,UAAY,CACpD,KAAK96B,EAAL,CAAU,KAAKtmB,IAAL,CAAU7B,CAAV,CAAYiD,CAAZ,CAAcjL,MAAd,CAAuB,CAAjC,CACA,GAAI,KAAKmwB,EAAT,CAAa,CACZ,KAAKC,SAAL,CAAe,KAAK86B,gBAAL,CAAsBh4C,IAAtB,CAA2B,IAA3B,CAAf,EACA,CACD,YAAYid,EAAZ,CACA,CAND,CAQAs5B,YAAY,CAACvpD,SAAb,CAAuBkwB,SAAvB,CAAmC,SAAUC,cAAV,CAA0B,CAC5D,KAAKN,eAAL,CAAqB1uB,IAArB,CAA0BgvB,cAA1B,EACA,KAAK7Q,IAAL,CAAU8Q,kBAAV,CAA6B,IAA7B,EACA,CAHD,CAKAm5B,YAAY,CAACvpD,SAAb,CAAuBuwB,QAAvB,CAAkC,SAAU06B,WAAV,CAAuB,CACxD,GAAI,CAAC,KAAK3rC,IAAL,CAAUlG,UAAV,CAAqBwW,OAArB,GAAiC,KAAKA,OAAtC,EAAiD,CAAC,KAAKC,eAAL,CAAqB/vB,MAAxE,GAAmF,CAACmrD,WAAxF,CAAqG,CACpG,OACA,CACD,KAAKxU,WAAL,CAAiB7uC,CAAjB,CAAqB,KAAK+B,IAAL,CAAU7B,CAAV,CAAYiD,CAAZ,CAAc,KAAK0+C,SAAnB,EAA8BriD,CAA9B,CAAgCQ,CAArD,CACA,IAAIsjD,YAAY,CAAG,KAAKzU,WAAxB,CACA,IAAI0U,YAAY,CAAG,KAAK1B,SAAxB,CACA,GAAI,KAAK35B,IAAT,CAAe,CACd,KAAKg7B,cAAL,CAAoB,KAAKrU,WAAzB,EACA,OACA,CACD,KAAK3mB,IAAL,CAAY,IAAZ,CACA,KAAKJ,IAAL,CAAY,KAAZ,CACA,IAAI9vB,CAAJ,CAAO,IACNC,GAAG,CAAG,KAAKgwB,eAAL,CAAqB/vB,MADrB,CAEP,IAAIkwB,UAAU,CAAGi7B,WAAW,EAAI,KAAKthD,IAAL,CAAU7B,CAAV,CAAYiD,CAAZ,CAAc,KAAK0+C,SAAnB,EAA8BriD,CAA9D,CACA,IAAKxH,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B;CAE5B,GAAIurD,YAAY,GAAK,KAAK1B,SAA1B,CAAqC,CACpCz5B,UAAU,CAAG,KAAKH,eAAL,CAAqBjwB,CAArB,EAAwBowB,UAAxB,CAAoCA,UAAU,CAACpoB,CAA/C,CAAb,CACA,CAFD,IAEO,CACNooB,UAAU,CAAG,KAAKH,eAAL,CAAqBjwB,CAArB,EAAwB,KAAK62C,WAA7B,CAA0CzmB,UAAU,CAACpoB,CAArD,CAAb,CACA,CACD,CACD,GAAIsjD,YAAY,GAAKl7B,UAArB,CAAiC,CAChC,KAAK86B,cAAL,CAAoB96B,UAApB,EACA,CACD,KAAK3oB,CAAL,CAAS,KAAKovC,WAAd,CACA,KAAK/rB,EAAL,CAAU,KAAKrjB,CAAf,CACA,KAAKyoB,IAAL,CAAY,KAAZ,CACA,KAAKF,OAAL,CAAe,KAAKtQ,IAAL,CAAUlG,UAAV,CAAqBwW,OAApC,CACA,CA/BD,CAiCA25B,YAAY,CAACvpD,SAAb,CAAuBgrD,gBAAvB,CAA0C,UAAY,CACrD,IAAII,QAAQ,CAAG,KAAKzhD,IAAL,CAAU7B,CAAV,CAAYiD,CAA3B,CACA,IAAIsf,QAAQ,CAAG,KAAK/K,IAAL,CAAUlT,IAAV,CAAe+iB,aAA9B,CACA,IAAIvvB,CAAC,CAAG,CAAR,CAAW,IACVC,GAAG,CAAGurD,QAAQ,CAACtrD,MADL,CAEX,MAAOF,CAAC,EAAIC,GAAG,CAAG,CAAlB,CAAqB,CACpB,GAAID,CAAC,GAAKC,GAAG,CAAG,CAAZ,EAAiBurD,QAAQ,CAACxrD,CAAC,CAAG,CAAL,CAAR,CAAgBgI,CAAhB,CAAoByiB,QAAzC,CAAmD,CAClD,MACA,CACDzqB,CAAC,EAAI,CAAL,CACA,CACD,GAAI,KAAK6pD,SAAL,GAAmB7pD,CAAvB,CAA0B,CACzB,KAAK6pD,SAAL,CAAiB7pD,CAAjB,CACA,CACD,YAAY+J,IAAL,CAAU7B,CAAV,CAAYiD,CAAZ,CAAc,KAAK0+C,SAAnB,EAA8BriD,CAArC,CACA,CAfD,CAiBAmiD,YAAY,CAACvpD,SAAb,CAAuBqrD,cAAvB,CAAwC,SAAUjiB,IAAV,CAAgB,CACvD,IAAIkiB,eAAe,CAAG,EAAtB,CACA,IAAI1rD,CAAC,CAAG,CAAR,CACA,IAAIC,GAAG,CAAGupC,IAAI,CAACtpC,MAAf,CACA,IAAIyrD,QAAJ,CACA,IAAItgB,cAAJ,CACA,IAAIugB,aAAa,CAAG,KAApB,CACA,MAAO5rD,CAAC,CAAGC,GAAX,CAAgB,CACf0rD,QAAQ,CAAGniB,IAAI,CAACkB,UAAL,CAAgB1qC,CAAhB,CAAX,CACA,GAAIymC,WAAW,CAAC+E,mBAAZ,CAAgCmgB,QAAhC,CAAJ,CAA+C,CAC9CD,eAAe,CAACA,eAAe,CAACxrD,MAAhB,CAAyB,CAA1B,CAAf,EAA+CspC,IAAI,CAACqiB,MAAL,CAAY7rD,CAAZ,CAA/C,CACA,CAFD,QAEW2rD,QAAQ,EAAI,MAAZ,EAAsBA,QAAQ,EAAI,MAAtC,CAA8C,CACpDtgB,cAAc,CAAG7B,IAAI,CAACkB,UAAL,CAAgB1qC,CAAC,CAAG,CAApB,CAAjB,CACA,GAAIqrC,cAAc,EAAI,MAAlB,EAA4BA,cAAc,EAAI,MAAlD,CAA0D,CACzD,GAAIugB,aAAa,EAAInlB,WAAW,CAAC0E,UAAZ,CAAuBwgB,QAAvB,CAAiCtgB,cAAjC,CAArB,CAAuE,CACtEqgB,eAAe,CAACA,eAAe,CAACxrD,MAAhB,CAAyB,CAA1B,CAAf,EAA+CspC,IAAI,CAACvvB,MAAL,CAAYja,CAAZ,CAAe,CAAf,CAA/C,CACA4rD,aAAa,CAAG,KAAhB,CACA,CAHD,IAGO,CACNF,eAAe,CAACnqD,IAAhB,CAAqBioC,IAAI,CAACvvB,MAAL,CAAYja,CAAZ,CAAe,CAAf,CAArB,EACA,CACDA,CAAC,EAAI,CAAL,CACA,CARD,IAQO,CACN0rD,eAAe,CAACnqD,IAAhB,CAAqBioC,IAAI,CAACqiB,MAAL,CAAY7rD,CAAZ,CAArB,EACA,CACD,CAbM,QAaI2rD,QAAQ,CAAG,MAAf,CAAuB,CAC7BtgB,cAAc,CAAG7B,IAAI,CAACkB,UAAL,CAAgB1qC,CAAC,CAAG,CAApB,CAAjB,CACA,GAAIymC,WAAW,CAAC8E,iBAAZ,CAA8BogB,QAA9B,CAAwCtgB,cAAxC,CAAJ,CAA6D,CAC5DugB,aAAa,CAAG,IAAhB,CACAF,eAAe,CAACA,eAAe,CAACxrD,MAAhB,CAAyB,CAA1B,CAAf,EAA+CspC,IAAI,CAACvvB,MAAL,CAAYja,CAAZ,CAAe,CAAf,CAA/C,CACAA,CAAC,EAAI,CAAL,CACA,CAJD,IAIO,CACN0rD,eAAe,CAACnqD,IAAhB,CAAqBioC,IAAI,CAACqiB,MAAL,CAAY7rD,CAAZ,CAArB,EACA,CACD,CATM,QASIymC,WAAW,CAAC8E,iBAAZ,CAA8BogB,QAA9B,CAAJ,CAA6C,CACnDD,eAAe,CAACA,eAAe,CAACxrD,MAAhB,CAAyB,CAA1B,CAAf,EAA+CspC,IAAI,CAACqiB,MAAL,CAAY7rD,CAAZ,CAA/C,CACA4rD,aAAa,CAAG,IAAhB,CACA,CAHM,IAGA,CACNF,eAAe,CAACnqD,IAAhB,CAAqBioC,IAAI,CAACqiB,MAAL,CAAY7rD,CAAZ,CAArB,EACA,CACDA,CAAC,EAAI,CAAL,CACA,CACD,OAAO0rD,eAAP,CACA,CA1CD,CA4CA/B,YAAY,CAACvpD,SAAb,CAAuB4qD,gBAAvB,CAA0C,SAAUv9C,YAAV,CAAwB,CACjEA,YAAY,CAACsB,UAAb,CAA0B,IAA1B,CACA,IAAI6L,WAAW,CAAG,KAAK8E,IAAL,CAAUlG,UAAV,CAAqBoB,WAAvC,CACA,IAAI7Q,IAAI,CAAG,KAAKA,IAAhB,CACA,IAAI+hD,OAAO,CAAG,EAAd,CACA,IAAI9rD,CAAJ,CAAO,IACNC,GADM,CAEP,IAAI8rD,WAAJ,CAAiB,IAAIltC,KAAK,CAAG,CAAZ,CAAe,IAC/Bha,GAD+B,CAEhC,IAAImnD,cAAc,CAAGjiD,IAAI,CAACyuB,CAAL,CAAO7wB,CAA5B,CACA,IAAIskD,WAAW,CAAG,CAAlB,CAAqB,IAAIC,UAAU,CAAG,CAAjB,CAAoB,IAAIC,WAAW,CAAG,CAAlB,CAAqB,IAC7D9B,UAAU,CAAG,EADgD,CAE9D,IAAI+B,SAAS,CAAG,CAAhB,CACA,IAAIC,YAAY,CAAG,CAAnB,CACA,IAAIphD,CAAJ,CAAO,IACNC,IADM,CAEP,IAAIg7B,QAAQ,CAAGtrB,WAAW,CAACmwB,aAAZ,CAA0Bt9B,YAAY,CAAC5F,CAAvC,CAAf,CACA,IAAIgG,QAAJ,CAAc,IACb+1C,OAAO,CAAG,CADG,CAGd,IAAI5a,SAAS,CAAG/C,iBAAiB,CAACC,QAAD,CAAjC,CACAz4B,YAAY,CAAC44B,OAAb,CAAuB2C,SAAS,CAACxC,MAAjC,CACA/4B,YAAY,CAAC24B,MAAb,CAAsB4C,SAAS,CAAC1jC,KAAhC,CACAmI,YAAY,CAACm9C,SAAb,CAAyBn9C,YAAY,CAACjG,CAAtC,CACAiG,YAAY,CAACo9C,SAAb,CAAyB,KAAKY,cAAL,CAAoBh+C,YAAY,CAACzF,CAAjC,CAAzB,CACA/H,GAAG,CAAGwN,YAAY,CAACo9C,SAAb,CAAuB3qD,MAA7B,CACAuN,YAAY,CAACq9C,eAAb,CAA+Br9C,YAAY,CAAC28C,EAA5C,CACA,IAAIkC,cAAc,CAAI7+C,YAAY,CAACq1B,EAAb,CAAkB,IAAnB,CAA2Br1B,YAAY,CAACm9C,SAA7D,CACA,IAAIe,QAAJ,CACA,GAAIl+C,YAAY,CAAC4qB,EAAjB,CAAqB,CACpB,IAAIj5B,IAAI,CAAG,IAAX,CACA,IAAI6qD,QAAQ,CAAGx8C,YAAY,CAAC4qB,EAAb,CAAgB,CAAhB,CAAf,CACA,IAAIk0B,SAAS,CAAG9+C,YAAY,CAAC4qB,EAAb,CAAgB,CAAhB,CAAhB,CACA,IAAIm0B,aAAJ,CAAmB,IAClB3B,SADkB,CAEnB,MAAOzrD,IAAP,CAAa,CACZyrD,SAAS,CAAG,KAAKY,cAAL,CAAoBh+C,YAAY,CAACzF,CAAjC,CAAZ,CACAwkD,aAAa,CAAG,CAAhB,CACAJ,SAAS,CAAG,CAAZ,CACAnsD,GAAG,CAAG4qD,SAAS,CAAC3qD,MAAhB,CACAosD,cAAc,CAAI7+C,YAAY,CAACq1B,EAAb,CAAkB,IAAnB,CAA2Br1B,YAAY,CAACm9C,SAAzD,CACA,IAAI6B,cAAc,CAAG,CAAC,CAAtB,CACA,IAAKzsD,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B2rD,QAAQ,CAAGd,SAAS,CAAC7qD,CAAD,CAAT,CAAa0qC,UAAb,CAAwB,CAAxB,CAAX,CACAqhB,WAAW,CAAG,KAAd,CACA,GAAIlB,SAAS,CAAC7qD,CAAD,CAAT,GAAiB,GAArB,CAA0B,CACzBysD,cAAc,CAAGzsD,CAAjB,CACA,CAFD,QAEW2rD,QAAQ,GAAK,EAAb,EAAmBA,QAAQ,GAAK,CAApC,CAAuC,CAC7CS,SAAS,CAAG,CAAZ,CACAL,WAAW,CAAG,IAAd,CACAS,aAAa,EAAI/+C,YAAY,CAACq9C,eAAb,EAAgCr9C,YAAY,CAACm9C,SAAb,CAAyB,GAA1E,CACA,CACD,GAAIhwC,WAAW,CAACxO,KAAhB,CAAuB,CACtByB,QAAQ,CAAG+M,WAAW,CAAC4vB,WAAZ,CAAwBqgB,SAAS,CAAC7qD,CAAD,CAAjC,CAAsCkmC,QAAQ,CAACE,MAA/C,CAAuDF,QAAQ,CAACgD,OAAhE,CAAX,CACA0a,OAAO,CAAGmI,WAAW,CAAG,CAAH,CAAQl+C,QAAQ,CAACuhB,CAAT,CAAa3hB,YAAY,CAACm9C,SAA3B,CAAwC,GAApE,CACA,CAHD,IAGO;CAENhH,OAAO,CAAGhpC,WAAW,CAAC8uB,WAAZ,CAAwBmhB,SAAS,CAAC7qD,CAAD,CAAjC,CAAsCyN,YAAY,CAAC5F,CAAnD,CAAsD4F,YAAY,CAACm9C,SAAnE,CAAV,CACA,CACD,GAAIwB,SAAS,CAAGxI,OAAZ,CAAsBqG,QAAtB,EAAkCY,SAAS,CAAC7qD,CAAD,CAAT,GAAiB,GAAvD,CAA4D,CAC3D,GAAIysD,cAAc,GAAK,CAAC,CAAxB,CAA2B,CAC1BxsD,GAAG,EAAI,CAAP,CACA,CAFD,IAEO,CACND,CAAC,CAAGysD,cAAJ,CACA,CACDD,aAAa,EAAI/+C,YAAY,CAACq9C,eAAb,EAAgCr9C,YAAY,CAACm9C,SAAb,CAAyB,GAA1E,CACAC,SAAS,CAACx1C,MAAV,CAAiBrV,CAAjB,CAAoBysD,cAAc,GAAKzsD,CAAnB,CAAuB,CAAvB,CAA2B,CAA/C,CAAkD,IAAlD,EACA;CACAysD,cAAc,CAAG,CAAC,CAAlB,CACAL,SAAS,CAAG,CAAZ,CACA,CAXD,IAWO,CACNA,SAAS,EAAIxI,OAAb,CACAwI,SAAS,EAAIE,cAAb,CACA,CACD,CACDE,aAAa,EAAKtmB,QAAQ,CAAC8jB,MAAT,CAAkBv8C,YAAY,CAACm9C,SAAhC,CAA6C,GAA9D,CACA,GAAI,KAAKd,SAAL,EAAkBr8C,YAAY,CAACm9C,SAAb,CAAyB,KAAKb,eAAhD,EAAmEwC,SAAS,CAAGC,aAAnF,CAAkG,CACjG/+C,YAAY,CAACm9C,SAAb,EAA0B,CAA1B,CACAn9C,YAAY,CAACq9C,eAAb,CAAgCr9C,YAAY,CAACm9C,SAAb,CAAyBn9C,YAAY,CAAC28C,EAAvC,CAA6C38C,YAAY,CAACjG,CAAzF,CACA,CAHD,IAGO,CACNiG,YAAY,CAACo9C,SAAb,CAAyBA,SAAzB,CACA5qD,GAAG,CAAGwN,YAAY,CAACo9C,SAAb,CAAuB3qD,MAA7B,CACAd,IAAI,CAAG,KAAP,CACA,CACD,CACD,CACDgtD,SAAS,CAAG,CAACE,cAAb,CACA1I,OAAO,CAAG,CAAV,CACA,IAAI8I,iBAAiB,CAAG,CAAxB,CACA,IAAIC,WAAJ,CACA,IAAK3sD,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B+rD,WAAW,CAAG,KAAd,CACAY,WAAW,CAAGl/C,YAAY,CAACo9C,SAAb,CAAuB7qD,CAAvB,CAAd,CACA2rD,QAAQ,CAAGgB,WAAW,CAACjiB,UAAZ,CAAuB,CAAvB,CAAX,CACA,GAAIihB,QAAQ,GAAK,EAAb,EAAmBA,QAAQ,GAAK,CAApC,CAAuC,CACtCe,iBAAiB,CAAG,CAApB,CACArC,UAAU,CAAC9oD,IAAX,CAAgB6qD,SAAhB,EACAC,YAAY,CAAGD,SAAS,CAAGC,YAAZ,CAA2BD,SAA3B,CAAuCC,YAAtD,CACAD,SAAS,CAAG,CAAC,CAAD,CAAKE,cAAjB,CACAznD,GAAG,CAAG,EAAN,CACAknD,WAAW,CAAG,IAAd,CACAI,WAAW,EAAI,CAAf,CACA,CARD,IAQO,CACNtnD,GAAG,CAAG8nD,WAAN,CACA,CACD,GAAI/xC,WAAW,CAACxO,KAAhB,CAAuB,CACtByB,QAAQ,CAAG+M,WAAW,CAAC4vB,WAAZ,CAAwBmiB,WAAxB,CAAqCzmB,QAAQ,CAACE,MAA9C,CAAsDxrB,WAAW,CAACmwB,aAAZ,CAA0Bt9B,YAAY,CAAC5F,CAAvC,EAA0CqhC,OAAhG,CAAX,CACA0a,OAAO,CAAGmI,WAAW,CAAG,CAAH,CAAQl+C,QAAQ,CAACuhB,CAAT,CAAa3hB,YAAY,CAACm9C,SAA3B,CAAwC,GAApE,CACA,CAHD,IAGO;CAEN;CACAhH,OAAO,CAAGhpC,WAAW,CAAC8uB,WAAZ,CAAwB7kC,GAAxB,CAA6B4I,YAAY,CAAC5F,CAA1C,CAA6C4F,YAAY,CAACm9C,SAA1D,CAAV,CACA,CAED;CACA,GAAI+B,WAAW,GAAK,GAApB,CAAyB,CACxBD,iBAAiB,EAAI9I,OAAO,CAAG0I,cAA/B,CACA,CAFD,IAEO,CACNF,SAAS,EAAIxI,OAAO,CAAG0I,cAAV,CAA2BI,iBAAxC,CACAA,iBAAiB,CAAG,CAApB,CACA,CACDZ,OAAO,CAACvqD,IAAR,CAAa,CACZg3B,CAAC,CAAEqrB,OADS,CACAgJ,EAAE,CAAEhJ,OADJ,CACaiJ,GAAG,CAAEZ,WADlB,CAC+BlgC,CAAC,CAAEggC,WADlC,CAC+Ce,SAAS,CAAE,EAD1D,CAC8DjoD,GAAG,CAAEA,GADnE,CACwE6Q,IAAI,CAAEy2C,WAD9E,CAC2FY,qBAAqB,CAAE,CADlH,CAAb,EAGA,GAAIf,cAAc,EAAI,CAAtB,CAAyB;CACxBC,WAAW,EAAIrI,OAAf,CACA,GAAI/+C,GAAG,GAAK,EAAR,EAAcA,GAAG,GAAK,GAAtB,EAA6B7E,CAAC,GAAKC,GAAG,CAAG,CAA7C,CAAgD,CAC/C,GAAI4E,GAAG,GAAK,EAAR,EAAcA,GAAG,GAAK,GAA1B,CAA+B,CAC9BonD,WAAW,EAAIrI,OAAf,CACA,CACD,MAAOsI,UAAU,EAAIlsD,CAArB,CAAwB,CACvB8rD,OAAO,CAACI,UAAD,CAAP,CAAoBU,EAApB,CAAyBX,WAAzB,CACAH,OAAO,CAACI,UAAD,CAAP,CAAoBtgC,GAApB,CAA0B/M,KAA1B,CACAitC,OAAO,CAACI,UAAD,CAAP,CAAoBc,KAApB,CAA4BpJ,OAA5B,CACAsI,UAAU,EAAI,CAAd,CACA,CACDrtC,KAAK,EAAI,CAAT,CACAotC,WAAW,CAAG,CAAd,CACA,CACD,CAfD,QAeWD,cAAc,EAAI,CAAtB,CAAyB;CAC/BC,WAAW,EAAIrI,OAAf,CACA,GAAI/+C,GAAG,GAAK,EAAR,EAAc7E,CAAC,GAAKC,GAAG,CAAG,CAA9B,CAAiC,CAChC,GAAI4E,GAAG,GAAK,EAAZ,CAAgB,CACfonD,WAAW,EAAIrI,OAAf,CACA,CACD,MAAOsI,UAAU,EAAIlsD,CAArB,CAAwB,CACvB8rD,OAAO,CAACI,UAAD,CAAP,CAAoBU,EAApB,CAAyBX,WAAzB,CACAH,OAAO,CAACI,UAAD,CAAP,CAAoBtgC,GAApB,CAA0B/M,KAA1B,CACAitC,OAAO,CAACI,UAAD,CAAP,CAAoBc,KAApB,CAA4BpJ,OAA5B,CACAsI,UAAU,EAAI,CAAd,CACA,CACDD,WAAW,CAAG,CAAd,CACAptC,KAAK,EAAI,CAAT,CACA,CACD,CAfM,IAeA,CACNitC,OAAO,CAACjtC,KAAD,CAAP,CAAe+M,GAAf,CAAqB/M,KAArB,CACAitC,OAAO,CAACjtC,KAAD,CAAP,CAAemuC,KAAf,CAAuB,CAAvB,CACAnuC,KAAK,EAAI,CAAT,CACA,CACD,CACDpR,YAAY,CAAC8qB,CAAb,CAAiBuzB,OAAjB,CACAO,YAAY,CAAGD,SAAS,CAAGC,YAAZ,CAA2BD,SAA3B,CAAuCC,YAAtD,CACAhC,UAAU,CAAC9oD,IAAX,CAAgB6qD,SAAhB,EACA,GAAI3+C,YAAY,CAAC4qB,EAAjB,CAAqB,CACpB5qB,YAAY,CAACw8C,QAAb,CAAwBx8C,YAAY,CAAC4qB,EAAb,CAAgB,CAAhB,CAAxB,CACA5qB,YAAY,CAAC08C,aAAb,CAA6B,CAA7B,CACA,CAHD,IAGO,CACN18C,YAAY,CAACw8C,QAAb,CAAwBoC,YAAxB,CACA,OAAQ5+C,YAAY,CAACxC,CAArB,EACC,MAAA,CACCwC,YAAY,CAAC08C,aAAb,CAA6B,CAAC18C,YAAY,CAACw8C,QAA3C,CACA,MACD,MAAA,CACCx8C,YAAY,CAAC08C,aAAb,CAA6B,CAAC18C,YAAY,CAACw8C,QAAd,CAAyB,CAAtD,CACA,MACD,QACCx8C,YAAY,CAAC08C,aAAb,CAA6B,CAA7B,CARF,CAUA,CACD18C,YAAY,CAAC48C,UAAb,CAA0BA,UAA1B,CAEA,IAAI4C,SAAS,CAAGljD,IAAI,CAACmE,CAArB,CAAwB,IAAIg/C,YAAJ,CAAkB,IACzCC,UADyC,CAE1CjiD,IAAI,CAAG+hD,SAAS,CAAC/sD,MAAjB,CACA,IAAIktD,KAAJ,CAAW,IAAIxhC,GAAJ,CAAS,IACnByhC,OAAO,CAAG,EADS,CAEpB,IAAKpiD,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,IAAhB,CAAsBD,CAAC,EAAI,CAA3B,CAA8B,CAC7BiiD,YAAY,CAAGD,SAAS,CAAChiD,CAAD,CAAxB,CACA,GAAIiiD,YAAY,CAACh/C,CAAb,CAAem8B,EAAnB,CAAuB,CACtB58B,YAAY,CAACg9C,eAAb,CAA+B,IAA/B,CACA,CACD,GAAIyC,YAAY,CAACh/C,CAAb,CAAeq7C,EAAnB,CAAuB,CACtB97C,YAAY,CAACi9C,eAAb,CAA+B,IAA/B,CACA,CACD,GAAIwC,YAAY,CAACh/C,CAAb,CAAes7C,EAAf,EAAqB0D,YAAY,CAACh/C,CAAb,CAAeo/C,EAApC,EAA0CJ,YAAY,CAACh/C,CAAb,CAAeq/C,EAAzD,EAA+DL,YAAY,CAACh/C,CAAb,CAAes/C,EAAlF,CAAsF,CACrF//C,YAAY,CAAC+8C,aAAb,CAA6B,IAA7B,CACA,CACD5+B,GAAG,CAAG,CAAN,CACAwhC,KAAK,CAAGF,YAAY,CAAC1lD,CAAb,CAAeI,CAAvB,CACA,IAAK5H,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5BmtD,UAAU,CAAGrB,OAAO,CAAC9rD,CAAD,CAApB,CACAmtD,UAAU,CAACL,SAAX,CAAqB7hD,CAArB,EAA0B2gB,GAA1B,CACA,GAAKwhC,KAAK,EAAI,CAAT,EAAcD,UAAU,CAACtoD,GAAX,GAAmB,EAAlC,EAA0CuoD,KAAK,EAAI,CAAT,EAAcD,UAAU,CAACtoD,GAAX,GAAmB,EAAjC,EAAuCsoD,UAAU,CAACtoD,GAAX,GAAmB,GAApG,EAA6GuoD,KAAK,EAAI,CAAT,GAAeD,UAAU,CAACphC,CAAX,EAAgBohC,UAAU,CAACtoD,GAAX,EAAkB,GAAlC,EAAyC7E,CAAC,EAAIC,GAAG,CAAG,CAAnE,CAA7G,EAAwLmtD,KAAK,EAAI,CAAT,GAAeD,UAAU,CAACphC,CAAX,EAAgB/rB,CAAC,EAAIC,GAAG,CAAG,CAA1C,CAA5L,CAA2O;CAC1O,GAAIitD,YAAY,CAAC1lD,CAAb,CAAeimD,EAAf,GAAsB,CAA1B,CAA6B,CAC5BJ,OAAO,CAAC9rD,IAAR,CAAaqqB,GAAb,EACA,CACDA,GAAG,EAAI,CAAP,CACA,CACD,CACD7hB,IAAI,CAACmE,CAAL,CAAOjD,CAAP,EAAUzD,CAAV,CAAYkmD,UAAZ,CAAyB9hC,GAAzB,CACA,IAAI+hC,UAAU,CAAG,CAAC,CAAlB,CAAqB,IACpBC,MADoB,CAErB,GAAIV,YAAY,CAAC1lD,CAAb,CAAeimD,EAAf,GAAsB,CAA1B,CAA6B,CAC5B,IAAKztD,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5BmtD,UAAU,CAAGrB,OAAO,CAAC9rD,CAAD,CAApB,CACA,GAAI2tD,UAAU,EAAIR,UAAU,CAACL,SAAX,CAAqB7hD,CAArB,CAAlB,CAA2C;CAC1C0iD,UAAU,CAAGR,UAAU,CAACL,SAAX,CAAqB7hD,CAArB,CAAb,CACA2iD,MAAM,CAAGP,OAAO,CAACh4C,MAAR,CAAetR,IAAI,CAACK,KAAL,CAAWL,IAAI,CAACY,MAAL,GAAgB0oD,OAAO,CAACntD,MAAnC,CAAf,CAA2D,CAA3D,EAA8D,CAA9D,CAAT,CACA,CACDitD,UAAU,CAACL,SAAX,CAAqB7hD,CAArB,EAA0B2iD,MAA1B,CACA,CACD,CACD,CACDngD,YAAY,CAACk9C,OAAb,CAAuBl9C,YAAY,CAACq9C,eAAb,EAAgCr9C,YAAY,CAACm9C,SAAb,CAAyB,GAAhF,CACAn9C,YAAY,CAAC68C,EAAb,CAAkB78C,YAAY,CAAC68C,EAAb,EAAmB,CAArC,CACA78C,YAAY,CAACu8C,MAAb,CAAuB9jB,QAAQ,CAAC8jB,MAAT,CAAkBv8C,YAAY,CAACm9C,SAAhC,CAA6C,GAAnE,CACA,CAlOD,CAoOAjB,YAAY,CAACvpD,SAAb,CAAuBwe,kBAAvB,CAA4C,SAAUivC,OAAV,CAAmBhvC,KAAnB,CAA0B,CACrEA,KAAK,CAAGA,KAAK,GAAKlF,SAAV,CAAsB,KAAKkwC,SAA3B,CAAuChrC,KAA/C,CACA,IAAIivC,KAAK,CAAG,KAAK/C,QAAL,CAAc,EAAd,CAAkB,KAAKhhD,IAAL,CAAU7B,CAAV,CAAYiD,CAAZ,CAAc0T,KAAd,EAAqBrX,CAAvC,CAAZ,CACAsmD,KAAK,CAAG,KAAK/C,QAAL,CAAc+C,KAAd,CAAqBD,OAArB,CAAR,CACA,KAAK9jD,IAAL,CAAU7B,CAAV,CAAYiD,CAAZ,CAAc0T,KAAd,EAAqBrX,CAArB,CAAyBsmD,KAAzB,CACA,KAAKC,WAAL,CAAiBlvC,KAAjB,EACA,KAAKa,IAAL,CAAU8Q,kBAAV,CAA6B,IAA7B,EACA,CAPD,CASAm5B,YAAY,CAACvpD,SAAb,CAAuB2tD,WAAvB,CAAqC,SAAUlvC,KAAV,CAAiB,CACrD,IAAIivC,KAAK,CAAG,KAAK/jD,IAAL,CAAU7B,CAAV,CAAYiD,CAAZ,CAAc0T,KAAd,EAAqBrX,CAAjC,CACAsmD,KAAK,CAAC/+C,UAAN,CAAmB,KAAnB,CACA,KAAK86C,SAAL,CAAiB,CAAjB,CACA,KAAK15B,aAAL,CAAqB,IAArB,CACA,KAAKQ,QAAL,CAAcm9B,KAAd,EACA,CAND,CAQAnE,YAAY,CAACvpD,SAAb,CAAuB4tD,aAAvB,CAAuC,SAAUC,UAAV,CAAsB,CAC5D,KAAKnE,SAAL,CAAiBmE,UAAjB,CACA,KAAKF,WAAL,CAAiB,KAAKlE,SAAtB,EACA,KAAKnqC,IAAL,CAAU8Q,kBAAV,CAA6B,IAA7B,EACA,CAJD,CAMAm5B,YAAY,CAACvpD,SAAb,CAAuB8tD,kBAAvB,CAA4C,SAAUC,UAAV,CAAsB,CACjE,KAAKpE,eAAL,CAAuBhmD,IAAI,CAACK,KAAL,CAAW+pD,UAAX,GAA0B,CAAjD,CACA,KAAKJ,WAAL,CAAiB,KAAKlE,SAAtB,EACA,KAAKnqC,IAAL,CAAU8Q,kBAAV,CAA6B,IAA7B,EACA,CAJD,CAMA,MAAM49B,gBAAgB,CAAI,UAAY,CACrC,IAAI9pD,GAAG,CAAGP,IAAI,CAACO,GAAf,CACA,IAAIE,GAAG,CAAGT,IAAI,CAACS,GAAf,CACA,IAAIJ,KAAK,CAAGL,IAAI,CAACK,KAAjB,CAEA,SAASiqD,uBAAT,CAAiC3uC,IAAjC,CAAuC3V,IAAvC,CAA6C,CAC5C,KAAKukD,kBAAL,CAA0B,CAAC,CAA3B,CACA,KAAKnjD,CAAL,CAAS,KAAT,CACA,KAAKpB,IAAL,CAAYA,IAAZ,CACA,KAAK2V,IAAL,CAAYA,IAAZ,CACA,KAAKlT,IAAL,CAAYkT,IAAI,CAAClT,IAAjB,CACA,KAAK+hD,MAAL,CAAc,CAAd,CACA,KAAKC,MAAL,CAAc,CAAd,CACA,KAAKn9B,4BAAL,CAAkC3R,IAAlC,EACA,KAAKlY,CAAL,CAAS6iB,eAAe,CAAC2G,OAAhB,CAAwBtR,IAAxB,CAA8B3V,IAAI,CAACvC,CAAL,EAAU,CAAE2D,CAAC,CAAE,CAAL,CAAxC,CAAkD,CAAlD,CAAqD,CAArD,CAAwD,IAAxD,CAAT,CACA,GAAI,MAAOpB,IAAX,CAAiB,CAChB,KAAKY,CAAL,CAAS0f,eAAe,CAAC2G,OAAhB,CAAwBtR,IAAxB,CAA8B3V,IAAI,CAACY,CAAnC,CAAsC,CAAtC,CAAyC,CAAzC,CAA4C,IAA5C,CAAT,CACA,CAFD,IAEO,CACN,KAAKA,CAAL,CAAS,CAAElD,CAAC,CAAE,GAAL,CAAT,CACA,CACD,KAAKsF,CAAL,CAASsd,eAAe,CAAC2G,OAAhB,CAAwBtR,IAAxB,CAA8B3V,IAAI,CAACgD,CAAL,EAAU,CAAE5B,CAAC,CAAE,CAAL,CAAxC,CAAkD,CAAlD,CAAqD,CAArD,CAAwD,IAAxD,CAAT,CACA,KAAKsjD,EAAL,CAAUpkC,eAAe,CAAC2G,OAAhB,CAAwBtR,IAAxB,CAA8B3V,IAAI,CAAC0kD,EAAL,EAAW,CAAEtjD,CAAC,CAAE,CAAL,CAAzC,CAAmD,CAAnD,CAAsD,CAAtD,CAAyD,IAAzD,CAAV,CACA,KAAKujD,EAAL,CAAUrkC,eAAe,CAAC2G,OAAhB,CAAwBtR,IAAxB,CAA8B3V,IAAI,CAAC2kD,EAAL,EAAW,CAAEvjD,CAAC,CAAE,CAAL,CAAzC,CAAmD,CAAnD,CAAsD,CAAtD,CAAyD,IAAzD,CAAV,CACA,KAAKwjD,EAAL,CAAUtkC,eAAe,CAAC2G,OAAhB,CAAwBtR,IAAxB,CAA8B3V,IAAI,CAAC4kD,EAAL,EAAW,CAAExjD,CAAC,CAAE,GAAL,CAAzC,CAAqD,CAArD,CAAwD,CAAxD,CAA2D,IAA3D,CAAV,CACA,KAAK+C,CAAL,CAASmc,eAAe,CAAC2G,OAAhB,CAAwBtR,IAAxB,CAA8B3V,IAAI,CAACmE,CAAnC,CAAsC,CAAtC,CAAyC,IAAzC,CAA+C,IAA/C,CAAT,CACA,GAAI,CAAC,KAAKgjB,iBAAL,CAAuBhxB,MAA5B,CAAoC,CACnC,KAAKywB,QAAL,GACA,CACD,CAED09B,uBAAuB,CAACjuD,SAAxB,CAAoC,CACnCwuD,OAAO,CAAE,SAAUhjC,GAAV,CAAe,CACvB,GAAI,KAAK0iC,kBAAL,GAA4B,KAAK5uC,IAAL,CAAUi3B,YAAV,CAAuBE,WAAvB,CAAmCte,CAAnC,CAAqCr4B,MAArE,CAA6E,CAC5E,KAAKywB,QAAL,GACA,CACD,IAAIlL,EAAE,CAAG,CAAT,CACA,IAAIC,EAAE,CAAG,CAAT,CACA,IAAIC,EAAE,CAAG,CAAT,CACA,IAAIC,EAAE,CAAG,CAAT,CACA,GAAI,KAAK8oC,EAAL,CAAQjnD,CAAR,CAAY,CAAhB,CAAmB,CAClBge,EAAE,CAAG,KAAKipC,EAAL,CAAQjnD,CAAR,CAAY,KAAjB,CACA,CAFD,IAEO,CACNie,EAAE,CAAG,CAAC,KAAKgpC,EAAL,CAAQjnD,CAAT,CAAa,KAAlB,CACA,CACD,GAAI,KAAKgnD,EAAL,CAAQhnD,CAAR,CAAY,CAAhB,CAAmB,CAClBke,EAAE,CAAG,IAAM,KAAK8oC,EAAL,CAAQhnD,CAAR,CAAY,KAAvB,CACA,CAFD,IAEO,CACNme,EAAE,CAAG,IAAM,KAAK6oC,EAAL,CAAQhnD,CAAR,CAAY,KAAvB,CACA,CACD,IAAIonD,KAAK,CAAG5tC,aAAa,CAACC,eAAd,CAA8BuE,EAA9B,CAAkCC,EAAlC,CAAsCC,EAAtC,CAA0CC,EAA1C,EAA8CtC,GAA1D,CAEA,IAAIuM,IAAI,CAAG,CAAX,CACA,IAAIroB,CAAC,CAAG,KAAK+mD,MAAb,CACA,IAAI5jD,CAAC,CAAG,KAAK6jD,MAAb,CACA,IAAI9uD,IAAI,CAAG,KAAKqK,IAAL,CAAU4iB,EAArB,CACA,GAAIjtB,IAAI,GAAK,CAAb,CAAgB,CACf,GAAIiL,CAAC,GAAKnD,CAAV,CAAa,CACZqoB,IAAI,CAAGjE,GAAG,EAAIjhB,CAAP,CAAW,CAAX,CAAe,CAAtB,CACA,CAFD,IAEO,CACNklB,IAAI,CAAGvrB,GAAG,CAAC,CAAD,CAAIE,GAAG,CAAC,KAAOmG,CAAC,CAAGnD,CAAX,EAAgB,CAACokB,GAAG,CAAGpkB,CAAP,GAAamD,CAAC,CAAGnD,CAAjB,CAAjB,CAAsC,CAAtC,CAAP,CAAV,CACA,CACDqoB,IAAI,CAAGg/B,KAAK,CAACh/B,IAAD,CAAZ,CACA,CAPD,QAOWnwB,IAAI,GAAK,CAAb,CAAgB,CACtB,GAAIiL,CAAC,GAAKnD,CAAV,CAAa,CACZqoB,IAAI,CAAGjE,GAAG,EAAIjhB,CAAP,CAAW,CAAX,CAAe,CAAtB,CACA,CAFD,IAEO,CACNklB,IAAI,CAAG,EAAIvrB,GAAG,CAAC,CAAD,CAAIE,GAAG,CAAC,KAAOmG,CAAC,CAAGnD,CAAX,EAAgB,CAACokB,GAAG,CAAGpkB,CAAP,GAAamD,CAAC,CAAGnD,CAAjB,CAAjB,CAAsC,CAAtC,CAAP,CAAd,CACA,CAEDqoB,IAAI,CAAGg/B,KAAK,CAACh/B,IAAD,CAAZ,CACA,CARM,QAQInwB,IAAI,GAAK,CAAb,CAAgB,CACtB,GAAIiL,CAAC,GAAKnD,CAAV,CAAa,CACZqoB,IAAI,CAAG,CAAP,CACA,CAFD,IAEO,CACNA,IAAI,CAAGvrB,GAAG,CAAC,CAAD,CAAIE,GAAG,CAAC,KAAOmG,CAAC,CAAGnD,CAAX,EAAgB,CAACokB,GAAG,CAAGpkB,CAAP,GAAamD,CAAC,CAAGnD,CAAjB,CAAjB,CAAsC,CAAtC,CAAP,CAAV,CACA,GAAIqoB,IAAI,CAAG,GAAX,CAAgB,CACfA,IAAI,EAAI,CAAR,CACA,CAFD,IAEO,CACNA,IAAI,CAAG,EAAI,GAAKA,IAAI,CAAG,GAAZ,CAAX,CACA,CACD,CACDA,IAAI,CAAGg/B,KAAK,CAACh/B,IAAD,CAAZ,CACA,CAZM,QAYInwB,IAAI,GAAK,CAAb,CAAgB,CACtB,GAAIiL,CAAC,GAAKnD,CAAV,CAAa,CACZqoB,IAAI,CAAG,CAAP,CACA,CAFD,IAEO,CACN,IAAIi/B,GAAG,CAAGnkD,CAAC,CAAGnD,CAAd,CACA;CACL,iEACKokB,GAAG,CAAGpnB,GAAG,CAACF,GAAG,CAAC,CAAD,CAAIsnB,GAAG,CAAG,GAAN,CAAYpkB,CAAhB,CAAJ,CAAwBmD,CAAC,CAAGnD,CAA5B,CAAT,CACA,IAAI+b,CAAC,CAAG,CAACurC,GAAD,CAAO,CAAP,CAAWljC,GAAnB,CACA,IAAI1d,CAAC,CAAG4gD,GAAG,CAAG,CAAd,CACAj/B,IAAI,CAAG9rB,IAAI,CAACG,IAAL,CAAU,EAAKqf,CAAC,CAAGA,CAAL,EAAWrV,CAAC,CAAGA,CAAf,CAAd,CAAP,CACA,CACD2hB,IAAI,CAAGg/B,KAAK,CAACh/B,IAAD,CAAZ,CACA,CAbM,QAaInwB,IAAI,GAAK,CAAb,CAAgB,CACtB,GAAIiL,CAAC,GAAKnD,CAAV,CAAa,CACZqoB,IAAI,CAAG,CAAP,CACA,CAFD,IAEO,CACNjE,GAAG,CAAGpnB,GAAG,CAACF,GAAG,CAAC,CAAD,CAAIsnB,GAAG,CAAG,GAAN,CAAYpkB,CAAhB,CAAJ,CAAwBmD,CAAC,CAAGnD,CAA5B,CAAT,CACAqoB,IAAI,CAAG,CAAC,EAAK9rB,IAAI,CAAC+qB,GAAL,CAAU/qB,IAAI,CAACmB,EAAL,CAAUnB,IAAI,CAACmB,EAAL,CAAU,CAAV,CAAe0mB,GAAf,EAAuBjhB,CAAC,CAAGnD,CAA3B,CAApB,CAAN,EAA8D,CAArE,CAAwE;CACxE,CACDqoB,IAAI,CAAGg/B,KAAK,CAACh/B,IAAD,CAAZ,CACA,CARM,IAQA,CACN,GAAIjE,GAAG,EAAIxnB,KAAK,CAACoD,CAAD,CAAhB,CAAqB,CACpB,GAAIokB,GAAG,CAAGpkB,CAAN,CAAU,CAAd,CAAiB,CAChBqoB,IAAI,CAAGvrB,GAAG,CAAC,CAAD,CAAIE,GAAG,CAACA,GAAG,CAACmG,CAAD,CAAI,CAAJ,CAAH,EAAanD,CAAC,CAAGokB,GAAjB,CAAD,CAAwB,CAAxB,CAAP,CAAV,CACA,CAFD,IAEO,CACNiE,IAAI,CAAGvrB,GAAG,CAAC,CAAD,CAAIE,GAAG,CAACmG,CAAC,CAAGihB,GAAL,CAAU,CAAV,CAAP,CAAV,CACA,CACD,CACDiE,IAAI,CAAGg/B,KAAK,CAACh/B,IAAD,CAAZ,CACA,CACD;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,GAAI,KAAK8+B,EAAL,CAAQlnD,CAAR,GAAc,GAAlB,CAAuB,CACtB,IAAIsnD,UAAU,CAAG,KAAKJ,EAAL,CAAQlnD,CAAR,CAAY,IAA7B,CACA,GAAIsnD,UAAU,GAAK,CAAnB,CAAsB,CACrBA,UAAU,CAAG,UAAb,CACA,CACD,IAAIC,SAAS,CAAG,IAAMD,UAAU,CAAG,GAAnC,CACA,GAAIl/B,IAAI,CAAGm/B,SAAX,CAAsB,CACrBn/B,IAAI,CAAG,CAAP,CACA,CAFD,IAEO,CACNA,IAAI,CAAG,CAACA,IAAI,CAAGm/B,SAAR,EAAqBD,UAA5B,CACA,GAAIl/B,IAAI,CAAG,CAAX,CAAc,CACbA,IAAI,CAAG,CAAP,CACA,CACD,CACD,CACD,OAAOA,IAAI,CAAG,KAAK3hB,CAAL,CAAOzG,CAArB,CACA,CA7GkC,CA8GnCkpB,QAAQ,CAAE,SAAUs+B,YAAV,CAAwB,CACjC,KAAK79B,wBAAL,GACA,KAAKtB,IAAL,CAAYm/B,YAAY,EAAI,KAAKn/B,IAAjC,CACA,KAAKw+B,kBAAL,CAA0B,KAAK5uC,IAAL,CAAUi3B,YAAV,CAAuBE,WAAvB,CAAmCte,CAAnC,CAAqCr4B,MAArC,EAA+C,CAAzE,CACA,GAAI+uD,YAAY,EAAI,KAAKllD,IAAL,CAAUrC,CAAV,GAAgB,CAApC,CAAuC,CACtC,KAAKiD,CAAL,CAAOlD,CAAP,CAAW,KAAK6mD,kBAAhB,CACA,CACD,IAAIY,OAAO,CAAG,KAAKnlD,IAAL,CAAUrC,CAAV,GAAgB,CAAhB,CAAoB,CAApB,CAAwB,IAAM,KAAKqC,IAAL,CAAU2jD,UAAtD,CACA,IAAI3gD,CAAC,CAAG,KAAKA,CAAL,CAAOtF,CAAP,CAAWynD,OAAnB,CACA,IAAI1nD,CAAC,CAAG,KAAKA,CAAL,CAAOC,CAAP,CAAWynD,OAAX,CAAqBniD,CAA7B,CACA,IAAIpC,CAAC,CAAI,KAAKA,CAAL,CAAOlD,CAAP,CAAWynD,OAAZ,CAAuBniD,CAA/B,CACA,GAAIvF,CAAC,CAAGmD,CAAR,CAAW,CACV,IAAIq1B,EAAE,CAAGx4B,CAAT,CACAA,CAAC,CAAGmD,CAAJ,CACAA,CAAC,CAAGq1B,EAAJ,CACA,CACD,KAAKuuB,MAAL,CAAc/mD,CAAd,CACA,KAAKgnD,MAAL,CAAc7jD,CAAd,CACA,CAhIkC,CAApC,CAkIA9K,eAAe,CAAC,CAACoxB,wBAAD,CAAD,CAA6Bo9B,uBAA7B,CAAf,CAEA,SAASc,mBAAT,CAA6BzvC,IAA7B,CAAmC3V,IAAnC,CAAyChH,GAAzC,CAA8C,CAC7C,WAAWsrD,uBAAJ,CAA4B3uC,IAA5B,CAAkC3V,IAAlC,CAAwChH,GAAxC,CAAP,CACA,CAED,OAAO,CACNosD,mBAAmB,CAAEA,mBADf,CAAP,CAGA,CAzKyB,EAA1B,CA2KA,SAASC,wBAAT,CAAkC1vC,IAAlC,CAAwC2vC,aAAxC,CAAuDj2C,SAAvD,CAAkE,CACjE,IAAIk2C,WAAW,CAAG,CAAEzkC,QAAQ,CAAE,KAAZ,CAAlB,CACA,IAAImG,OAAO,CAAG3G,eAAe,CAAC2G,OAA9B,CACA,IAAIu+B,uBAAuB,CAAGF,aAAa,CAACnhD,CAA5C,CACA,KAAKA,CAAL,CAAS,CACRxG,CAAC,CAAE6nD,uBAAuB,CAAC7nD,CAAxB,CAA4BspB,OAAO,CAACtR,IAAD,CAAO6vC,uBAAuB,CAAC7nD,CAA/B,CAAkC,CAAlC,CAAqCzC,SAArC,CAAgDmU,SAAhD,CAAnC,CAAgGk2C,WAD3F,CAERztB,EAAE,CAAE0tB,uBAAuB,CAAC1tB,EAAxB,CAA6B7Q,OAAO,CAACtR,IAAD,CAAO6vC,uBAAuB,CAAC1tB,EAA/B,CAAmC,CAAnC,CAAsC58B,SAAtC,CAAiDmU,SAAjD,CAApC,CAAkGk2C,WAF9F,CAGR1tB,EAAE,CAAE2tB,uBAAuB,CAAC3tB,EAAxB,CAA6B5Q,OAAO,CAACtR,IAAD,CAAO6vC,uBAAuB,CAAC3tB,EAA/B,CAAmC,CAAnC,CAAsC38B,SAAtC,CAAiDmU,SAAjD,CAApC,CAAkGk2C,WAH9F,CAIRnhD,EAAE,CAAEohD,uBAAuB,CAACphD,EAAxB,CAA6B6iB,OAAO,CAACtR,IAAD,CAAO6vC,uBAAuB,CAACphD,EAA/B,CAAmC,CAAnC,CAAsClJ,SAAtC,CAAiDmU,SAAjD,CAApC,CAAkGk2C,WAJ9F,CAKRlhD,EAAE,CAAEmhD,uBAAuB,CAACnhD,EAAxB,CAA6B4iB,OAAO,CAACtR,IAAD,CAAO6vC,uBAAuB,CAACnhD,EAA/B,CAAmC,CAAnC,CAAsCnJ,SAAtC,CAAiDmU,SAAjD,CAApC,CAAkGk2C,WAL9F,CAMR9nD,CAAC,CAAE+nD,uBAAuB,CAAC/nD,CAAxB,CAA4BwpB,OAAO,CAACtR,IAAD,CAAO6vC,uBAAuB,CAAC/nD,CAA/B,CAAkC,CAAlC,CAAqC,IAArC,CAA2C4R,SAA3C,CAAnC,CAA2Fk2C,WANtF,CAORphD,CAAC,CAAEqhD,uBAAuB,CAACrhD,CAAxB,CAA4B8iB,OAAO,CAACtR,IAAD,CAAO6vC,uBAAuB,CAACrhD,CAA/B,CAAkC,CAAlC,CAAqC,CAArC,CAAwCkL,SAAxC,CAAnC,CAAwFk2C,WAPnF,CAQRviD,CAAC,CAAEwiD,uBAAuB,CAACxiD,CAAxB,CAA4BikB,OAAO,CAACtR,IAAD,CAAO6vC,uBAAuB,CAACxiD,CAA/B,CAAkC,CAAlC,CAAqC,IAArC,CAA2CqM,SAA3C,CAAnC,CAA2Fk2C,WARtF,CASRxnD,CAAC,CAAEynD,uBAAuB,CAACznD,CAAxB,CAA4BkpB,OAAO,CAACtR,IAAD,CAAO6vC,uBAAuB,CAACznD,CAA/B,CAAkC,CAAlC,CAAqC,CAArC,CAAwCsR,SAAxC,CAAnC,CAAwFk2C,WATnF,CAUR/F,EAAE,CAAEgG,uBAAuB,CAAChG,EAAxB,CAA6Bv4B,OAAO,CAACtR,IAAD,CAAO6vC,uBAAuB,CAAChG,EAA/B,CAAmC,CAAnC,CAAsC,CAAtC,CAAyCnwC,SAAzC,CAApC,CAA0Fk2C,WAVtF,CAWRjlB,EAAE,CAAEklB,uBAAuB,CAACllB,EAAxB,CAA6BrZ,OAAO,CAACtR,IAAD,CAAO6vC,uBAAuB,CAACllB,EAA/B,CAAmC,CAAnC,CAAsC,CAAtC,CAAyCjxB,SAAzC,CAApC,CAA0Fk2C,WAXtF,CAYR9F,EAAE,CAAE+F,uBAAuB,CAAC/F,EAAxB,CAA6Bx4B,OAAO,CAACtR,IAAD,CAAO6vC,uBAAuB,CAAC/F,EAA/B,CAAmC,CAAnC,CAAsC,CAAtC,CAAyCpwC,SAAzC,CAApC,CAA0Fk2C,WAZtF,CAaRhC,EAAE,CAAEiC,uBAAuB,CAACjC,EAAxB,CAA6Bt8B,OAAO,CAACtR,IAAD,CAAO6vC,uBAAuB,CAACjC,EAA/B,CAAmC,CAAnC,CAAsC,CAAtC,CAAyCl0C,SAAzC,CAApC,CAA0Fk2C,WAbtF,CAcR/B,EAAE,CAAEgC,uBAAuB,CAAChC,EAAxB,CAA6Bv8B,OAAO,CAACtR,IAAD,CAAO6vC,uBAAuB,CAAChC,EAA/B,CAAmC,CAAnC,CAAsC,IAAtC,CAA4Cn0C,SAA5C,CAApC,CAA6Fk2C,WAdzF,CAeR9B,EAAE,CAAE+B,uBAAuB,CAAC/B,EAAxB,CAA6Bx8B,OAAO,CAACtR,IAAD,CAAO6vC,uBAAuB,CAAC/B,EAA/B,CAAmC,CAAnC,CAAsC,IAAtC,CAA4Cp0C,SAA5C,CAApC,CAA6Fk2C,WAfzF,CAgBRtnD,CAAC,CAAEunD,uBAAuB,CAACvnD,CAAxB,CAA4BgpB,OAAO,CAACtR,IAAD,CAAO6vC,uBAAuB,CAACvnD,CAA/B,CAAkC,CAAlC,CAAqC,CAArC,CAAwCoR,SAAxC,CAAnC,CAAwFk2C,WAhBnF,CAAT,CAmBA,KAAK9nD,CAAL,CAAS4mD,gBAAgB,CAACe,mBAAjB,CAAqCzvC,IAArC,CAA2C2vC,aAAa,CAAC7nD,CAAzD,CAA4D4R,SAA5D,CAAT,CACA,KAAK5R,CAAL,CAAOQ,CAAP,CAAWqnD,aAAa,CAAC7nD,CAAd,CAAgBQ,CAA3B,CACA,CAED,SAASwnD,oBAAT,CAA8BviB,QAA9B,CAAwCwiB,UAAxC,CAAoD/vC,IAApD,CAA0D,CACzD,KAAKyQ,aAAL,CAAqB,IAArB,CACA,KAAKu/B,cAAL,CAAsB,KAAtB,CACA,KAAK9F,QAAL,CAAgB,CAAC,CAAjB,CACA,KAAK+F,SAAL,CAAiB1iB,QAAjB,CACA,KAAK2iB,WAAL,CAAmBH,UAAnB,CACA,KAAKvf,KAAL,CAAaxwB,IAAb,CACA,KAAKmwC,cAAL,CAAsBzsD,gBAAgB,CAAC,KAAKusD,SAAL,CAAezhD,CAAf,CAAiBhO,MAAlB,CAAtC,CACA,KAAK4vD,SAAL,CAAiB,EAAjB,CACA,KAAKC,YAAL,CAAoB,CACnBC,SAAS,CAAE,EADQ,CAApB,CAGA,KAAKC,eAAL,CAAuB,EAAvB,CACA,KAAKC,kBAAL,CAA0B,KAA1B,CACA,KAAK7+B,4BAAL,CAAkC3R,IAAlC,EACA,CAED8vC,oBAAoB,CAACpvD,SAArB,CAA+B+vD,gBAA/B,CAAkD,UAAY,CAC7D,IAAInwD,CAAJ,CACA,IAAIC,GAAG,CAAG,KAAK0vD,SAAL,CAAezhD,CAAf,CAAiBhO,MAA3B,CACA,IAAImvD,aAAJ,CACA,IAAIr+B,OAAO,CAAG3G,eAAe,CAAC2G,OAA9B,CACA,IAAKhxB,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5BqvD,aAAa,CAAG,KAAKM,SAAL,CAAezhD,CAAf,CAAiBlO,CAAjB,CAAhB,CACA,KAAK6vD,cAAL,CAAoB7vD,CAApB,EAAyB,IAAIovD,wBAAJ,CAA6B,KAAKlf,KAAlC,CAAyCmf,aAAzC,CAAwD,IAAxD,CAAzB,CACA,CACD,GAAI,KAAKM,SAAL,CAAe7nD,CAAf,EAAoB,WAAY6nD,SAAL,CAAe7nD,CAA9C,CAAiD,CAChD,KAAKgoD,SAAL,CAAiB,CAChB5hD,CAAC,CAAE8iB,OAAO,CAAC,KAAKkf,KAAN,CAAa,KAAKyf,SAAL,CAAe7nD,CAAf,CAAiBoG,CAA9B,CAAiC,CAAjC,CAAoC,CAApC,CAAuC,IAAvC,CADM,CAEhBrG,CAAC,CAAEmpB,OAAO,CAAC,KAAKkf,KAAN,CAAa,KAAKyf,SAAL,CAAe7nD,CAAf,CAAiBD,CAA9B,CAAiC,CAAjC,CAAoC,CAApC,CAAuC,IAAvC,CAFM,CAGhB0wB,CAAC,CAAEvH,OAAO,CAAC,KAAKkf,KAAN,CAAa,KAAKyf,SAAL,CAAe7nD,CAAf,CAAiBywB,CAA9B,CAAiC,CAAjC,CAAoC,CAApC,CAAuC,IAAvC,CAHM,CAIhB7wB,CAAC,CAAEspB,OAAO,CAAC,KAAKkf,KAAN,CAAa,KAAKyf,SAAL,CAAe7nD,CAAf,CAAiBJ,CAA9B,CAAiC,CAAjC,CAAoC,CAApC,CAAuC,IAAvC,CAJM,CAKhBI,CAAC,CAAEkpB,OAAO,CAAC,KAAKkf,KAAN,CAAa,KAAKyf,SAAL,CAAe7nD,CAAf,CAAiBA,CAA9B,CAAiC,CAAjC,CAAoC,CAApC,CAAuC,IAAvC,CALM,CAMhB0wB,CAAC,CAAE,KAAK0X,KAAL,CAAWzC,WAAX,CAAuByQ,eAAvB,CAAuC,KAAKyR,SAAL,CAAe7nD,CAAf,CAAiB0wB,CAAxD,CANa,CAAjB,CAQA,KAAKk3B,cAAL,CAAsB,IAAtB,CACA,CAVD,IAUO,CACN,KAAKA,cAAL,CAAsB,KAAtB,CACA,CACD,KAAKK,YAAL,CAAkBC,SAAlB,CAA8Bh/B,OAAO,CAAC,KAAKkf,KAAN,CAAa,KAAKyf,SAAL,CAAen3B,CAAf,CAAiBtqB,CAA9B,CAAiC,CAAjC,CAAoC,CAApC,CAAuC,IAAvC,CAArC,CACA,CAvBD,CAyBAshD,oBAAoB,CAACpvD,SAArB,CAA+BgwD,WAA/B,CAA6C,SAAU3iD,YAAV,CAAwByiD,kBAAxB,CAA4C,CACxF,KAAKA,kBAAL,CAA0BA,kBAA1B,CACA,GAAI,CAAC,KAAKpgC,IAAN,EAAc,CAAC,KAAKK,aAApB,EAAqC,CAAC+/B,kBAAtC,GAA6D,CAAC,KAAKR,cAAN,EAAwB,CAAC,KAAKI,SAAL,CAAet3B,CAAf,CAAiB1I,IAAvG,CAAJ,CAAkH,CACjH,OACA,CACD,KAAKK,aAAL,CAAqB,KAArB,CACA,IAAI6/B,SAAS,CAAG,KAAKD,YAAL,CAAkBC,SAAlB,CAA4BvoD,CAA5C,CACA,IAAIwlD,SAAS,CAAG,KAAK4C,cAArB,CACA,IAAI5iB,QAAQ,CAAG,KAAK0iB,SAApB,CACA,IAAIU,YAAY,CAAG,KAAKzT,OAAxB,CACA,IAAI6S,UAAU,CAAG,KAAKG,WAAtB,CACA,IAAIU,oBAAoB,CAAG,KAAKL,eAAL,CAAqB/vD,MAAhD,CACA,IAAIqwD,IAAJ,CACA,IAAIC,IAAJ,CACA,IAAIxwD,CAAJ,CACA,IAAIC,GAAJ,CACA,IAAI6rD,OAAO,CAAGr+C,YAAY,CAAC8qB,CAA3B,CACA,IAAIk4B,QAAJ,CACA,IAAIC,aAAJ,CACA,IAAIC,YAAJ,CACA,IAAIhpC,aAAJ,CACA,IAAIvoB,IAAJ,CACA,IAAIwxD,QAAJ,CACA,IAAIC,UAAJ,CACA,IAAIC,SAAJ,CACA,IAAI5tC,MAAJ,CACA,IAAI3K,QAAJ,CACA,IAAIuP,aAAJ,CACA,IAAIzC,WAAJ,CACA,IAAI0B,IAAJ,CACA,IAAIgqC,QAAJ,CACA,IAAI3jB,IAAJ,CACA,GAAI,KAAKsiB,cAAT,CAAyB,CACxBtiB,IAAI,CAAG,KAAK0iB,SAAL,CAAet3B,CAAtB,CACA,GAAI,CAAC,KAAKs3B,SAAL,CAAe/jC,CAAhB,EAAqB,KAAK+jC,SAAL,CAAehgC,IAAxC,CAA8C,CAC7C,IAAIiE,KAAK,CAAGqZ,IAAI,CAAC3lC,CAAjB,CACA,GAAI,KAAKqoD,SAAL,CAAepoD,CAAf,CAAiBD,CAArB,CAAwB,CACvBssB,KAAK,CAAGA,KAAK,CAAC3B,OAAN,EAAR,CACA,CACD;CACAq+B,QAAQ,CAAG,CACVO,OAAO,CAAE,CADC,CAEVz4C,QAAQ,CAAE,EAFA,CAAX,CAIAtY,GAAG,CAAG8zB,KAAK,CAACrP,OAAN,CAAgB,CAAtB,CACA,IAAIwD,UAAJ,CACA7C,WAAW,CAAG,CAAd,CACA,IAAKrlB,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5BkoB,UAAU,CAAGkC,GAAG,CAACrC,eAAJ,CAAoBgM,KAAK,CAACtsB,CAAN,CAAQzH,CAAR,CAApB,CACZ+zB,KAAK,CAACtsB,CAAN,CAAQzH,CAAC,CAAG,CAAZ,CADY,CAEZ,CAAC+zB,KAAK,CAAChnB,CAAN,CAAQ/M,CAAR,EAAW,CAAX,EAAgB+zB,KAAK,CAACtsB,CAAN,CAAQzH,CAAR,EAAW,CAAX,CAAjB,CAAgC+zB,KAAK,CAAChnB,CAAN,CAAQ/M,CAAR,EAAW,CAAX,EAAgB+zB,KAAK,CAACtsB,CAAN,CAAQzH,CAAR,EAAW,CAAX,CAAhD,CAFY,CAGZ,CAAC+zB,KAAK,CAAC/zB,CAAN,CAAQA,CAAC,CAAG,CAAZ,EAAe,CAAf,EAAoB+zB,KAAK,CAACtsB,CAAN,CAAQzH,CAAC,CAAG,CAAZ,EAAe,CAAf,CAArB,CAAwC+zB,KAAK,CAAC/zB,CAAN,CAAQA,CAAC,CAAG,CAAZ,EAAe,CAAf,EAAoB+zB,KAAK,CAACtsB,CAAN,CAAQzH,CAAC,CAAG,CAAZ,EAAe,CAAf,CAA5D,CAHY,CAAb,CAIAywD,QAAQ,CAACO,OAAT,EAAoB9oC,UAAU,CAACP,aAA/B,CACA8oC,QAAQ,CAACl4C,QAAT,CAAkBhX,IAAlB,CAAuB2mB,UAAvB,EACA7C,WAAW,EAAI6C,UAAU,CAACP,aAA1B,CACA,CACD3nB,CAAC,CAAGC,GAAJ,CACA,GAAImtC,IAAI,CAAC3lC,CAAL,CAAOgH,CAAX,CAAc,CACbyZ,UAAU,CAAGkC,GAAG,CAACrC,eAAJ,CAAoBgM,KAAK,CAACtsB,CAAN,CAAQzH,CAAR,CAApB,CACZ+zB,KAAK,CAACtsB,CAAN,CAAQ,CAAR,CADY,CAEZ,CAACssB,KAAK,CAAChnB,CAAN,CAAQ/M,CAAR,EAAW,CAAX,EAAgB+zB,KAAK,CAACtsB,CAAN,CAAQzH,CAAR,EAAW,CAAX,CAAjB,CAAgC+zB,KAAK,CAAChnB,CAAN,CAAQ/M,CAAR,EAAW,CAAX,EAAgB+zB,KAAK,CAACtsB,CAAN,CAAQzH,CAAR,EAAW,CAAX,CAAhD,CAFY,CAGZ,CAAC+zB,KAAK,CAAC/zB,CAAN,CAAQ,CAAR,EAAW,CAAX,EAAgB+zB,KAAK,CAACtsB,CAAN,CAAQ,CAAR,EAAW,CAAX,CAAjB,CAAgCssB,KAAK,CAAC/zB,CAAN,CAAQ,CAAR,EAAW,CAAX,EAAgB+zB,KAAK,CAACtsB,CAAN,CAAQ,CAAR,EAAW,CAAX,CAAhD,CAHY,CAAb,CAIAgpD,QAAQ,CAACO,OAAT,EAAoB9oC,UAAU,CAACP,aAA/B,CACA8oC,QAAQ,CAACl4C,QAAT,CAAkBhX,IAAlB,CAAuB2mB,UAAvB,EACA7C,WAAW,EAAI6C,UAAU,CAACP,aAA1B,CACA,CACD,KAAKmoC,SAAL,CAAemB,EAAf,CAAoBR,QAApB,CACA,CACDA,QAAQ,CAAG,KAAKX,SAAL,CAAemB,EAA1B,CAEAP,aAAa,CAAG,KAAKZ,SAAL,CAAejoD,CAAf,CAAiBJ,CAAjC,CACAopD,UAAU,CAAG,CAAb,CACAD,QAAQ,CAAG,CAAX,CACAjpC,aAAa,CAAG,CAAhB,CACAvoB,IAAI,CAAG,IAAP,CACAmZ,QAAQ,CAAGk4C,QAAQ,CAACl4C,QAApB,CACA,GAAIm4C,aAAa,CAAG,CAAhB,EAAqBtjB,IAAI,CAAC3lC,CAAL,CAAOgH,CAAhC,CAAmC,CAClC,GAAIgiD,QAAQ,CAACO,OAAT,CAAmBjtD,IAAI,CAACa,GAAL,CAAS8rD,aAAT,CAAvB,CAAgD,CAC/CA,aAAa,CAAG,CAAC3sD,IAAI,CAACa,GAAL,CAAS8rD,aAAT,CAAD,CAA2BD,QAAQ,CAACO,OAApD,CACA,CACDH,UAAU,CAAGt4C,QAAQ,CAACrY,MAAT,CAAkB,CAA/B,CACAgjB,MAAM,CAAG3K,QAAQ,CAACs4C,UAAD,CAAR,CAAqB3tC,MAA9B,CACA0tC,QAAQ,CAAG1tC,MAAM,CAAChjB,MAAP,CAAgB,CAA3B,CACA,MAAOwwD,aAAa,CAAG,CAAvB,CAA0B,CACzBA,aAAa,EAAIxtC,MAAM,CAAC0tC,QAAD,CAAN,CAAiB9oC,aAAlC,CACA8oC,QAAQ,EAAI,CAAZ,CACA,GAAIA,QAAQ,CAAG,CAAf,CAAkB,CACjBC,UAAU,EAAI,CAAd,CACA3tC,MAAM,CAAG3K,QAAQ,CAACs4C,UAAD,CAAR,CAAqB3tC,MAA9B,CACA0tC,QAAQ,CAAG1tC,MAAM,CAAChjB,MAAP,CAAgB,CAA3B,CACA,CACD,CACD,CACDgjB,MAAM,CAAG3K,QAAQ,CAACs4C,UAAD,CAAR,CAAqB3tC,MAA9B,CACA4tC,SAAS,CAAG5tC,MAAM,CAAC0tC,QAAQ,CAAG,CAAZ,CAAlB,CACAD,YAAY,CAAGztC,MAAM,CAAC0tC,QAAD,CAArB,CACA9oC,aAAa,CAAG6oC,YAAY,CAAC7oC,aAA7B,CACA,CAED7nB,GAAG,CAAG6rD,OAAO,CAAC5rD,MAAd,CACAqwD,IAAI,CAAG,CAAP,CACAC,IAAI,CAAG,CAAP,CACA,IAAIU,IAAI,CAAGzjD,YAAY,CAACm9C,SAAb,CAAyB,GAAzB,CAA+B,KAA1C,CACA,IAAIuG,SAAS,CAAG,IAAhB,CACA,IAAI9B,aAAJ,CACA,IAAI+B,gBAAJ,CACA,IAAInmD,CAAJ,CACA,IAAIC,IAAJ,CACA,IAAImmD,WAAJ,CAEAnmD,IAAI,CAAG+hD,SAAS,CAAC/sD,MAAjB,CAEA,IAAI2vB,IAAJ,CACA,IAAIjE,GAAG,CAAG,CAAC,CAAX,CACA,IAAI0lC,IAAJ,CACA,IAAIC,QAAJ,CACA,IAAIC,QAAJ,CACA,IAAIC,WAAW,CAAGf,aAAlB,CACA,IAAIgB,cAAc,CAAGb,UAArB,CACA,IAAIc,YAAY,CAAGf,QAAnB,CACA,IAAIzE,WAAW,CAAG,CAAC,CAAnB,CACA,IAAIyF,WAAJ,CACA,IAAIvnB,EAAJ,CACA,IAAIkf,EAAJ,CACA,IAAIC,EAAJ,CACA,IAAIr+C,CAAJ,CACA,IAAI0mD,QAAJ,CACA,IAAIC,QAAJ,CACA,IAAIC,QAAJ,CACA,IAAIC,OAAO,CAAG,EAAd,CACA,IAAIC,OAAO,CAAG,KAAKC,iBAAnB,CACA,IAAIC,OAAJ,CAEA;CACA,GAAI1kD,YAAY,CAACxC,CAAb,GAAmB,CAAnB,EAAwBwC,YAAY,CAACxC,CAAb,GAAmB,CAA/C,CAAkD,CACjD,IAAI8hD,qBAAqB,CAAG,CAA5B,CACA,IAAIqF,uBAAuB,CAAG,CAA9B,CACA,IAAIC,iBAAiB,CAAG5kD,YAAY,CAACxC,CAAb,GAAmB,CAAnB,CAAuB,CAAC,GAAxB,CAA8B,CAAC,CAAvD,CACA,IAAI+f,SAAS,CAAG,CAAhB,CACA,IAAIsnC,SAAS,CAAG,IAAhB,CAEA,IAAKtyD,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B,GAAI8rD,OAAO,CAAC9rD,CAAD,CAAP,CAAW+rB,CAAf,CAAkB,CACjB,GAAIghC,qBAAJ,CAA2B,CAC1BA,qBAAqB,EAAIqF,uBAAzB,CACA,CACD,MAAOpnC,SAAS,CAAGhrB,CAAnB,CAAsB,CACrB8rD,OAAO,CAAC9gC,SAAD,CAAP,CAAmB+hC,qBAAnB,CAA2CA,qBAA3C,CACA/hC,SAAS,EAAI,CAAb,CACA,CACD+hC,qBAAqB,CAAG,CAAxB,CACAuF,SAAS,CAAG,IAAZ,CACA,CAVD,IAUO,CACN,IAAKrnD,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,IAAhB,CAAsBD,CAAC,EAAI,CAA3B,CAA8B,CAC7BokD,aAAa,CAAGpC,SAAS,CAAChiD,CAAD,CAAT,CAAaiD,CAA7B,CACA,GAAImhD,aAAa,CAACrnD,CAAd,CAAgB6iB,QAApB,CAA8B,CAC7B,GAAIynC,SAAS,EAAI7kD,YAAY,CAACxC,CAAb,GAAmB,CAApC,CAAuC,CACtCmnD,uBAAuB,EAAI/C,aAAa,CAACrnD,CAAd,CAAgBP,CAAhB,CAAoB4qD,iBAA/C,CACA,CACDjB,gBAAgB,CAAGnE,SAAS,CAAChiD,CAAD,CAAT,CAAazD,CAAhC,CACAqoB,IAAI,CAAGuhC,gBAAgB,CAACxC,OAAjB,CAAyB9C,OAAO,CAAC9rD,CAAD,CAAP,CAAW8sD,SAAX,CAAqB7hD,CAArB,CAAzB,CAAkDgiC,QAAQ,CAAC/+B,CAAT,CAAWjD,CAAX,EAAczD,CAAd,CAAgBkmD,UAAlE,CAAP,CACA,GAAI79B,IAAI,CAAC3vB,MAAT,CAAiB,CAChB6sD,qBAAqB,EAAIsC,aAAa,CAACrnD,CAAd,CAAgBP,CAAhB,CAAoBooB,IAAI,CAAC,CAAD,CAAxB,CAA8BwiC,iBAAvD,CACA,CAFD,IAEO,CACNtF,qBAAqB,EAAIsC,aAAa,CAACrnD,CAAd,CAAgBP,CAAhB,CAAoBooB,IAApB,CAA2BwiC,iBAApD,CACA,CACD,CACD,CACDC,SAAS,CAAG,KAAZ,CACA,CACD,CACD,GAAIvF,qBAAJ,CAA2B,CAC1BA,qBAAqB,EAAIqF,uBAAzB,CACA,CACD,MAAOpnC,SAAS,CAAGhrB,CAAnB,CAAsB,CACrB8rD,OAAO,CAAC9gC,SAAD,CAAP,CAAmB+hC,qBAAnB,CAA2CA,qBAA3C,CACA/hC,SAAS,EAAI,CAAb,CACA,CACD,CACD;CAEA,IAAKhrB,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5BqwD,YAAY,CAACh8B,KAAb,GACAu9B,WAAW,CAAG,CAAd,CACA,GAAI9F,OAAO,CAAC9rD,CAAD,CAAP,CAAW+rB,CAAf,CAAkB,CACjBwkC,IAAI,CAAG,CAAP,CACAC,IAAI,EAAI/iD,YAAY,CAACk9C,OAArB,CACA6F,IAAI,EAAIW,SAAS,CAAG,CAAH,CAAO,CAAxB,CACAT,aAAa,CAAGe,WAAhB,CACAN,SAAS,CAAG,KAAZ,CACA,GAAI,KAAKzB,cAAT,CAAyB,CACxBmB,UAAU,CAAGa,cAAb,CACAd,QAAQ,CAAGe,YAAX,CACAzuC,MAAM,CAAG3K,QAAQ,CAACs4C,UAAD,CAAR,CAAqB3tC,MAA9B,CACA4tC,SAAS,CAAG5tC,MAAM,CAAC0tC,QAAQ,CAAG,CAAZ,CAAlB,CACAD,YAAY,CAAGztC,MAAM,CAAC0tC,QAAD,CAArB,CACA9oC,aAAa,CAAG6oC,YAAY,CAAC7oC,aAA7B,CACAH,aAAa,CAAG,CAAhB,CACA,CACDqqC,OAAO,CAAG,EAAV,CACAD,QAAQ,CAAG,EAAX,CACAF,QAAQ,CAAG,EAAX,CACAM,OAAO,CAAG,EAAV,CACAF,OAAO,CAAG,KAAKC,iBAAf,CACA,CApBD,IAoBO,CACN,GAAI,KAAKxC,cAAT,CAAyB,CACxB,GAAIvD,WAAW,GAAKL,OAAO,CAAC9rD,CAAD,CAAP,CAAW0V,IAA/B,CAAqC,CACpC,OAAQjI,YAAY,CAACxC,CAArB,EACC,MAAA,CACCylD,aAAa,EAAIrrC,WAAW,CAAG5X,YAAY,CAAC48C,UAAb,CAAwByB,OAAO,CAAC9rD,CAAD,CAAP,CAAW0V,IAAnC,CAA/B,CACA,MACD,MAAA,CACCg7C,aAAa,EAAI,CAACrrC,WAAW,CAAG5X,YAAY,CAAC48C,UAAb,CAAwByB,OAAO,CAAC9rD,CAAD,CAAP,CAAW0V,IAAnC,CAAf,EAA2D,CAA5E,CACA,MACD,QACC,MARF,CAUAy2C,WAAW,CAAGL,OAAO,CAAC9rD,CAAD,CAAP,CAAW0V,IAAzB,CACA,CACD,GAAIkW,GAAG,GAAKkgC,OAAO,CAAC9rD,CAAD,CAAP,CAAW4rB,GAAvB,CAA4B,CAC3B,GAAIkgC,OAAO,CAAClgC,GAAD,CAAX,CAAkB,CACjB8kC,aAAa,EAAI5E,OAAO,CAAClgC,GAAD,CAAP,CAAaohC,KAA9B,CACA,CACD0D,aAAa,EAAI5E,OAAO,CAAC9rD,CAAD,CAAP,CAAW4sD,EAAX,CAAgB,CAAjC,CACAhhC,GAAG,CAAGkgC,OAAO,CAAC9rD,CAAD,CAAP,CAAW4rB,GAAjB,CACA,CACD8kC,aAAa,EAAKV,SAAS,CAAC,CAAD,CAAT,CAAelE,OAAO,CAAC9rD,CAAD,CAAP,CAAW4sD,EAA3B,CAAiC,KAAlD,CACA,IAAI2F,cAAc,CAAG,CAArB,CACA,IAAKtnD,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,IAAhB,CAAsBD,CAAC,EAAI,CAA3B,CAA8B,CAC7BokD,aAAa,CAAGpC,SAAS,CAAChiD,CAAD,CAAT,CAAaiD,CAA7B,CACA,GAAImhD,aAAa,CAACvnD,CAAd,CAAgB+iB,QAApB,CAA8B,CAC7BumC,gBAAgB,CAAGnE,SAAS,CAAChiD,CAAD,CAAT,CAAazD,CAAhC,CACAqoB,IAAI,CAAGuhC,gBAAgB,CAACxC,OAAjB,CAAyB9C,OAAO,CAAC9rD,CAAD,CAAP,CAAW8sD,SAAX,CAAqB7hD,CAArB,CAAzB,CAAkDgiC,QAAQ,CAAC/+B,CAAT,CAAWjD,CAAX,EAAczD,CAAd,CAAgBkmD,UAAlE,CAAP,CACA,GAAI79B,IAAI,CAAC3vB,MAAT,CAAiB,CAChBqyD,cAAc,EAAIlD,aAAa,CAACvnD,CAAd,CAAgBL,CAAhB,CAAkB,CAAlB,EAAuBooB,IAAI,CAAC,CAAD,CAA7C,CACA,CAFD,IAEO,CACN0iC,cAAc,EAAIlD,aAAa,CAACvnD,CAAd,CAAgBL,CAAhB,CAAkB,CAAlB,EAAuBooB,IAAzC,CACA,CACD,CACD,GAAIw/B,aAAa,CAACnhD,CAAd,CAAgB2c,QAApB,CAA8B,CAC7BumC,gBAAgB,CAAGnE,SAAS,CAAChiD,CAAD,CAAT,CAAazD,CAAhC,CACAqoB,IAAI,CAAGuhC,gBAAgB,CAACxC,OAAjB,CAAyB9C,OAAO,CAAC9rD,CAAD,CAAP,CAAW8sD,SAAX,CAAqB7hD,CAArB,CAAzB,CAAkDgiC,QAAQ,CAAC/+B,CAAT,CAAWjD,CAAX,EAAczD,CAAd,CAAgBkmD,UAAlE,CAAP,CACA,GAAI79B,IAAI,CAAC3vB,MAAT,CAAiB,CAChBqyD,cAAc,EAAIlD,aAAa,CAACnhD,CAAd,CAAgBzG,CAAhB,CAAkB,CAAlB,EAAuBooB,IAAI,CAAC,CAAD,CAA7C,CACA,CAFD,IAEO,CACN0iC,cAAc,EAAIlD,aAAa,CAACnhD,CAAd,CAAgBzG,CAAhB,CAAkB,CAAlB,EAAuBooB,IAAzC,CACA,CACD,CACD,CACDzwB,IAAI,CAAG,IAAP,CACA;CACA,GAAI,KAAK0wD,SAAL,CAAe5hD,CAAf,CAAiBzG,CAArB,CAAwB,CACvBipD,aAAa,CAAG5E,OAAO,CAAC,CAAD,CAAP,CAAWc,EAAX,CAAgB,GAAhB,CAAuB,CAACvnC,WAAW,CAAG,KAAKyqC,SAAL,CAAejoD,CAAf,CAAiBJ,CAA/B,CAAmCqkD,OAAO,CAAC,CAAD,CAAP,CAAWc,EAAX,CAAgB,GAAnD,CAAyDd,OAAO,CAACA,OAAO,CAAC5rD,MAAR,CAAiB,CAAlB,CAAP,CAA4B0sD,EAA5B,CAAiC,GAA3F,EAAkGhhC,GAAnG,EAA2G3rB,GAAG,CAAG,CAAjH,CAAtC,CACAywD,aAAa,EAAI,KAAKZ,SAAL,CAAejoD,CAAf,CAAiBJ,CAAlC,CACA,CACD,MAAOrI,IAAP,CAAa,CACZ,GAAIuoB,aAAa,CAAGG,aAAhB,EAAiC4oC,aAAa,CAAG6B,cAAjD,EAAmE,CAACrvC,MAAxE,CAAgF,CAC/E6D,IAAI,CAAG,CAAC2pC,aAAa,CAAG6B,cAAhB,CAAiC5qC,aAAlC,EAAmDgpC,YAAY,CAAC7oC,aAAvE,CACAypC,QAAQ,CAAGT,SAAS,CAAC7pC,KAAV,CAAgB,CAAhB,EAAqB,CAAC0pC,YAAY,CAAC1pC,KAAb,CAAmB,CAAnB,EAAwB6pC,SAAS,CAAC7pC,KAAV,CAAgB,CAAhB,CAAzB,EAA+CF,IAA/E,CACAyqC,QAAQ,CAAGV,SAAS,CAAC7pC,KAAV,CAAgB,CAAhB,EAAqB,CAAC0pC,YAAY,CAAC1pC,KAAb,CAAmB,CAAnB,EAAwB6pC,SAAS,CAAC7pC,KAAV,CAAgB,CAAhB,CAAzB,EAA+CF,IAA/E,CACAspC,YAAY,CAAC53B,SAAb,CAAwB,CAACu3B,SAAS,CAAC,CAAD,CAAV,CAAgBlE,OAAO,CAAC9rD,CAAD,CAAP,CAAW4sD,EAA5B,CAAkC,KAAzD,CAAgE,EAAEoD,SAAS,CAAC,CAAD,CAAT,CAAekB,IAAjB,EAAyB,IAAzF,EACA9xD,IAAI,CAAG,KAAP,CACA,CAND,QAMW8jB,MAAJ,CAAY,CAClByE,aAAa,EAAIgpC,YAAY,CAAC7oC,aAA9B,CACA8oC,QAAQ,EAAI,CAAZ,CACA,GAAIA,QAAQ,EAAI1tC,MAAM,CAAChjB,MAAvB,CAA+B,CAC9B0wD,QAAQ,CAAG,CAAX,CACAC,UAAU,EAAI,CAAd,CACA,GAAI,CAACt4C,QAAQ,CAACs4C,UAAD,CAAb,CAA2B,CAC1B,GAAIzjB,IAAI,CAAC3lC,CAAL,CAAOgH,CAAX,CAAc,CACbmiD,QAAQ,CAAG,CAAX,CACAC,UAAU,CAAG,CAAb,CACA3tC,MAAM,CAAG3K,QAAQ,CAACs4C,UAAD,CAAR,CAAqB3tC,MAA9B,CACA,CAJD,IAIO,CACNyE,aAAa,EAAIgpC,YAAY,CAAC7oC,aAA9B,CACA5E,MAAM,CAAG,IAAT,CACA,CACD,CATD,IASO,CACNA,MAAM,CAAG3K,QAAQ,CAACs4C,UAAD,CAAR,CAAqB3tC,MAA9B,CACA,CACD,CACD,GAAIA,MAAJ,CAAY,CACX4tC,SAAS,CAAGH,YAAZ,CACAA,YAAY,CAAGztC,MAAM,CAAC0tC,QAAD,CAArB,CACA9oC,aAAa,CAAG6oC,YAAY,CAAC7oC,aAA7B,CACA,CACD,CACD,CACDwpC,IAAI,CAAGxF,OAAO,CAAC9rD,CAAD,CAAP,CAAW4sD,EAAX,CAAgB,CAAhB,CAAoBd,OAAO,CAAC9rD,CAAD,CAAP,CAAW6sD,GAAtC,CACAwD,YAAY,CAAC53B,SAAb,CAAuB,CAAC64B,IAAxB,CAA8B,CAA9B,CAAiC,CAAjC,EACA,CArFD,IAqFO,CACNA,IAAI,CAAGxF,OAAO,CAAC9rD,CAAD,CAAP,CAAW4sD,EAAX,CAAgB,CAAhB,CAAoBd,OAAO,CAAC9rD,CAAD,CAAP,CAAW6sD,GAAtC,CACAwD,YAAY,CAAC53B,SAAb,CAAuB,CAAC64B,IAAxB,CAA8B,CAA9B,CAAiC,CAAjC,EAEA;CACAjB,YAAY,CAAC53B,SAAb,CAAwB,CAACu3B,SAAS,CAAC,CAAD,CAAV,CAAgBlE,OAAO,CAAC9rD,CAAD,CAAP,CAAW4sD,EAA5B,CAAkC,KAAzD,CAAiE,CAACoD,SAAS,CAAC,CAAD,CAAV,CAAgBkB,IAAjB,CAAyB,IAAzF,CAA+F,CAA/F,EACA,CAED,IAAKjmD,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,IAAhB,CAAsBD,CAAC,EAAI,CAA3B,CAA8B,CAC7BokD,aAAa,CAAGpC,SAAS,CAAChiD,CAAD,CAAT,CAAaiD,CAA7B,CACA,GAAImhD,aAAa,CAACrnD,CAAd,CAAgB6iB,QAApB,CAA8B,CAC7BumC,gBAAgB,CAAGnE,SAAS,CAAChiD,CAAD,CAAT,CAAazD,CAAhC,CACAqoB,IAAI,CAAGuhC,gBAAgB,CAACxC,OAAjB,CAAyB9C,OAAO,CAAC9rD,CAAD,CAAP,CAAW8sD,SAAX,CAAqB7hD,CAArB,CAAzB,CAAkDgiC,QAAQ,CAAC/+B,CAAT,CAAWjD,CAAX,EAAczD,CAAd,CAAgBkmD,UAAlE,CAAP,CACA;CACA,GAAI6C,IAAI,GAAK,CAAT,EAAc9iD,YAAY,CAACxC,CAAb,GAAmB,CAArC,CAAwC,CACvC,GAAI,KAAKykD,cAAT,CAAyB,CACxB,GAAI7/B,IAAI,CAAC3vB,MAAT,CAAiB,CAChBwwD,aAAa,EAAIrB,aAAa,CAACrnD,CAAd,CAAgBP,CAAhB,CAAoBooB,IAAI,CAAC,CAAD,CAAzC,CACA,CAFD,IAEO,CACN6gC,aAAa,EAAIrB,aAAa,CAACrnD,CAAd,CAAgBP,CAAhB,CAAoBooB,IAArC,CACA,CACD,CAND,QAMWA,IAAI,CAAC3vB,MAAT,CAAiB,CACvBqwD,IAAI,EAAIlB,aAAa,CAACrnD,CAAd,CAAgBP,CAAhB,CAAoBooB,IAAI,CAAC,CAAD,CAAhC,CACA,CAFM,IAEA,CACN0gC,IAAI,EAAIlB,aAAa,CAACrnD,CAAd,CAAgBP,CAAhB,CAAoBooB,IAA5B,CACA,CACD,CACD,CACD,CACD,GAAIpiB,YAAY,CAACi9C,eAAjB,CAAkC,CACjCnB,EAAE,CAAG97C,YAAY,CAAC87C,EAAb,EAAmB,CAAxB,CACA,CACD,GAAI97C,YAAY,CAACg9C,eAAjB,CAAkC,CACjC,GAAIh9C,YAAY,CAAC48B,EAAjB,CAAqB,CACpBA,EAAE,CAAG,CAAC58B,YAAY,CAAC48B,EAAb,CAAgB,CAAhB,CAAD,CAAqB58B,YAAY,CAAC48B,EAAb,CAAgB,CAAhB,CAArB,CAAyC58B,YAAY,CAAC48B,EAAb,CAAgB,CAAhB,CAAzC,CAAL,CACA,CAFD,IAEO,CACNA,EAAE,CAAG,CAAC,CAAD,CAAI,CAAJ,CAAO,CAAP,CAAL,CACA,CACD,CACD,GAAI58B,YAAY,CAAC+8C,aAAb,EAA8B/8C,YAAY,CAAC+7C,EAA/C,CAAmD,CAClDA,EAAE,CAAG,CAAC/7C,YAAY,CAAC+7C,EAAb,CAAgB,CAAhB,CAAD,CAAqB/7C,YAAY,CAAC+7C,EAAb,CAAgB,CAAhB,CAArB,CAAyC/7C,YAAY,CAAC+7C,EAAb,CAAgB,CAAhB,CAAzC,CAAL,CACA,CACD,IAAKv+C,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,IAAhB,CAAsBD,CAAC,EAAI,CAA3B,CAA8B,CAC7BokD,aAAa,CAAGpC,SAAS,CAAChiD,CAAD,CAAT,CAAaiD,CAA7B,CACA,GAAImhD,aAAa,CAACnhD,CAAd,CAAgB2c,QAApB,CAA8B,CAC7BumC,gBAAgB,CAAGnE,SAAS,CAAChiD,CAAD,CAAT,CAAazD,CAAhC,CACAqoB,IAAI,CAAGuhC,gBAAgB,CAACxC,OAAjB,CAAyB9C,OAAO,CAAC9rD,CAAD,CAAP,CAAW8sD,SAAX,CAAqB7hD,CAArB,CAAzB,CAAkDgiC,QAAQ,CAAC/+B,CAAT,CAAWjD,CAAX,EAAczD,CAAd,CAAgBkmD,UAAlE,CAAP,CAEA,GAAI79B,IAAI,CAAC3vB,MAAT,CAAiB,CAChBmwD,YAAY,CAAC53B,SAAb,CAAuB,CAAC42B,aAAa,CAACnhD,CAAd,CAAgBzG,CAAhB,CAAkB,CAAlB,CAAD,CAAwBooB,IAAI,CAAC,CAAD,CAAnD,CAAwD,CAACw/B,aAAa,CAACnhD,CAAd,CAAgBzG,CAAhB,CAAkB,CAAlB,CAAD,CAAwBooB,IAAI,CAAC,CAAD,CAApF,CAAyFw/B,aAAa,CAACnhD,CAAd,CAAgBzG,CAAhB,CAAkB,CAAlB,EAAuBooB,IAAI,CAAC,CAAD,CAApH,EACA,CAFD,IAEO,CACNwgC,YAAY,CAAC53B,SAAb,CAAuB,CAAC42B,aAAa,CAACnhD,CAAd,CAAgBzG,CAAhB,CAAkB,CAAlB,CAAD,CAAwBooB,IAA/C,CAAqD,CAACw/B,aAAa,CAACnhD,CAAd,CAAgBzG,CAAhB,CAAkB,CAAlB,CAAD,CAAwBooB,IAA7E,CAAmFw/B,aAAa,CAACnhD,CAAd,CAAgBzG,CAAhB,CAAkB,CAAlB,EAAuBooB,IAA1G,EACA,CACD,CACD,CACD,IAAK5kB,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,IAAhB,CAAsBD,CAAC,EAAI,CAA3B,CAA8B,CAC7BokD,aAAa,CAAGpC,SAAS,CAAChiD,CAAD,CAAT,CAAaiD,CAA7B,CACA,GAAImhD,aAAa,CAAC7nD,CAAd,CAAgBqjB,QAApB,CAA8B,CAC7BumC,gBAAgB,CAAGnE,SAAS,CAAChiD,CAAD,CAAT,CAAazD,CAAhC,CACAqoB,IAAI,CAAGuhC,gBAAgB,CAACxC,OAAjB,CAAyB9C,OAAO,CAAC9rD,CAAD,CAAP,CAAW8sD,SAAX,CAAqB7hD,CAArB,CAAzB,CAAkDgiC,QAAQ,CAAC/+B,CAAT,CAAWjD,CAAX,EAAczD,CAAd,CAAgBkmD,UAAlE,CAAP,CACA,GAAI79B,IAAI,CAAC3vB,MAAT,CAAiB,CAChBmwD,YAAY,CAACj4B,KAAb,CAAmB,EAAK,CAACi3B,aAAa,CAAC7nD,CAAd,CAAgBC,CAAhB,CAAkB,CAAlB,EAAuB,CAAxB,EAA6BooB,IAAI,CAAC,CAAD,CAAzD,CAA+D,EAAK,CAACw/B,aAAa,CAAC7nD,CAAd,CAAgBC,CAAhB,CAAkB,CAAlB,EAAuB,CAAxB,EAA6BooB,IAAI,CAAC,CAAD,CAArG,CAA2G,CAA3G,EACA,CAFD,IAEO,CACNwgC,YAAY,CAACj4B,KAAb,CAAmB,EAAK,CAACi3B,aAAa,CAAC7nD,CAAd,CAAgBC,CAAhB,CAAkB,CAAlB,EAAuB,CAAxB,EAA6BooB,IAArD,CAA4D,EAAK,CAACw/B,aAAa,CAAC7nD,CAAd,CAAgBC,CAAhB,CAAkB,CAAlB,EAAuB,CAAxB,EAA6BooB,IAA9F,CAAqG,CAArG,EACA,CACD,CACD,CACD,IAAK5kB,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,IAAhB,CAAsBD,CAAC,EAAI,CAA3B,CAA8B,CAC7BokD,aAAa,CAAGpC,SAAS,CAAChiD,CAAD,CAAT,CAAaiD,CAA7B,CACAkjD,gBAAgB,CAAGnE,SAAS,CAAChiD,CAAD,CAAT,CAAazD,CAAhC,CACAqoB,IAAI,CAAGuhC,gBAAgB,CAACxC,OAAjB,CAAyB9C,OAAO,CAAC9rD,CAAD,CAAP,CAAW8sD,SAAX,CAAqB7hD,CAArB,CAAzB,CAAkDgiC,QAAQ,CAAC/+B,CAAT,CAAWjD,CAAX,EAAczD,CAAd,CAAgBkmD,UAAlE,CAAP,CACA,GAAI2B,aAAa,CAAClhD,EAAd,CAAiB0c,QAArB,CAA+B,CAC9B,GAAIgF,IAAI,CAAC3vB,MAAT,CAAiB,CAChBmwD,YAAY,CAACl4B,YAAb,CAA0B,CAACk3B,aAAa,CAAClhD,EAAd,CAAiB1G,CAAlB,CAAsBooB,IAAI,CAAC,CAAD,CAApD,CAAyDw/B,aAAa,CAACjhD,EAAd,CAAiB3G,CAAjB,CAAqBooB,IAAI,CAAC,CAAD,CAAlF,EACA,CAFD,IAEO,CACNwgC,YAAY,CAACl4B,YAAb,CAA0B,CAACk3B,aAAa,CAAClhD,EAAd,CAAiB1G,CAAlB,CAAsBooB,IAAhD,CAAsDw/B,aAAa,CAACjhD,EAAd,CAAiB3G,CAAjB,CAAqBooB,IAA3E,EACA,CACD,CACD,GAAIw/B,aAAa,CAAC3nD,CAAd,CAAgBmjB,QAApB,CAA8B,CAC7B,GAAIgF,IAAI,CAAC3vB,MAAT,CAAiB,CAChBmwD,YAAY,CAACt4B,OAAb,CAAqB,CAACs3B,aAAa,CAAC3nD,CAAd,CAAgBD,CAAjB,CAAqBooB,IAAI,CAAC,CAAD,CAA9C,EACA,CAFD,IAEO,CACNwgC,YAAY,CAACt4B,OAAb,CAAqB,CAACs3B,aAAa,CAAC3nD,CAAd,CAAgBD,CAAjB,CAAqBooB,IAA1C,EACA,CACD,CACD,GAAIw/B,aAAa,CAACztB,EAAd,CAAiB/W,QAArB,CAA+B,CAC9B,GAAIgF,IAAI,CAAC3vB,MAAT,CAAiB,CAChBmwD,YAAY,CAACv4B,OAAb,CAAqBu3B,aAAa,CAACztB,EAAd,CAAiBn6B,CAAjB,CAAqBooB,IAAI,CAAC,CAAD,CAA9C,EACA,CAFD,IAEO,CACNwgC,YAAY,CAACv4B,OAAb,CAAqBu3B,aAAa,CAACztB,EAAd,CAAiBn6B,CAAjB,CAAqBooB,IAA1C,EACA,CACD,CACD,GAAIw/B,aAAa,CAACxtB,EAAd,CAAiBhX,QAArB,CAA+B,CAC9B,GAAIgF,IAAI,CAAC3vB,MAAT,CAAiB,CAChBmwD,YAAY,CAACx4B,OAAb,CAAqBw3B,aAAa,CAACxtB,EAAd,CAAiBp6B,CAAjB,CAAqBooB,IAAI,CAAC,CAAD,CAA9C,EACA,CAFD,IAEO,CACNwgC,YAAY,CAACx4B,OAAb,CAAqBw3B,aAAa,CAACxtB,EAAd,CAAiBp6B,CAAjB,CAAqBooB,IAA1C,EACA,CACD,CACD,GAAIw/B,aAAa,CAACtiD,CAAd,CAAgB8d,QAApB,CAA8B,CAC7B,GAAIgF,IAAI,CAAC3vB,MAAT,CAAiB,CAChB0xD,WAAW,EAAI,CAAEvC,aAAa,CAACtiD,CAAd,CAAgBtF,CAAjB,CAAsBooB,IAAI,CAAC,CAAD,CAA1B,CAAgC+hC,WAAjC,EAAgD/hC,IAAI,CAAC,CAAD,CAAnE,CACA,CAFD,IAEO,CACN+hC,WAAW,EAAI,CAAEvC,aAAa,CAACtiD,CAAd,CAAgBtF,CAAjB,CAAsBooB,IAAtB,CAA6B+hC,WAA9B,EAA6C/hC,IAA5D,CACA,CACD,CACD,GAAIpiB,YAAY,CAACi9C,eAAb,EAAgC2E,aAAa,CAAC9F,EAAd,CAAiB1+B,QAArD,CAA+D,CAC9D,GAAIgF,IAAI,CAAC3vB,MAAT,CAAiB,CAChBqpD,EAAE,EAAI8F,aAAa,CAAC9F,EAAd,CAAiB9hD,CAAjB,CAAqBooB,IAAI,CAAC,CAAD,CAA/B,CACA,CAFD,IAEO,CACN05B,EAAE,EAAI8F,aAAa,CAAC9F,EAAd,CAAiB9hD,CAAjB,CAAqBooB,IAA3B,CACA,CACD,CACD,GAAIpiB,YAAY,CAACg9C,eAAb,EAAgC4E,aAAa,CAAChlB,EAAd,CAAiBxf,QAArD,CAA+D,CAC9D,IAAK1f,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAG,CAAhB,CAAmBA,CAAC,EAAI,CAAxB,CAA2B,CAC1B,GAAI0kB,IAAI,CAAC3vB,MAAT,CAAiB,CAChBmqC,EAAE,CAACl/B,CAAD,CAAF,EAAS,CAACkkD,aAAa,CAAChlB,EAAd,CAAiB5iC,CAAjB,CAAmB0D,CAAnB,EAAwBk/B,EAAE,CAACl/B,CAAD,CAA3B,EAAkC0kB,IAAI,CAAC,CAAD,CAA/C,CACA,CAFD,IAEO,CACNwa,EAAE,CAACl/B,CAAD,CAAF,EAAS,CAACkkD,aAAa,CAAChlB,EAAd,CAAiB5iC,CAAjB,CAAmB0D,CAAnB,EAAwBk/B,EAAE,CAACl/B,CAAD,CAA3B,EAAkC0kB,IAA3C,CACA,CACD,CACD,CACD,GAAIpiB,YAAY,CAAC+8C,aAAb,EAA8B/8C,YAAY,CAAC+7C,EAA/C,CAAmD,CAClD,GAAI6F,aAAa,CAAC7F,EAAd,CAAiB3+B,QAArB,CAA+B,CAC9B,IAAK1f,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAG,CAAhB,CAAmBA,CAAC,EAAI,CAAxB,CAA2B,CAC1B,GAAI0kB,IAAI,CAAC3vB,MAAT,CAAiB,CAChBspD,EAAE,CAACr+C,CAAD,CAAF,EAAS,CAACkkD,aAAa,CAAC7F,EAAd,CAAiB/hD,CAAjB,CAAmB0D,CAAnB,EAAwBq+C,EAAE,CAACr+C,CAAD,CAA3B,EAAkC0kB,IAAI,CAAC,CAAD,CAA/C,CACA,CAFD,IAEO,CACN25B,EAAE,CAACr+C,CAAD,CAAF,EAAS,CAACkkD,aAAa,CAAC7F,EAAd,CAAiB/hD,CAAjB,CAAmB0D,CAAnB,EAAwBq+C,EAAE,CAACr+C,CAAD,CAA3B,EAAkC0kB,IAA3C,CACA,CACD,CACD,CACD,GAAIw/B,aAAa,CAAC/B,EAAd,CAAiBziC,QAArB,CAA+B,CAC9B,GAAIgF,IAAI,CAAC3vB,MAAT,CAAiB,CAChBspD,EAAE,CAAGhhD,WAAW,CAACghD,EAAD,CAAK6F,aAAa,CAAC/B,EAAd,CAAiB7lD,CAAjB,CAAqBooB,IAAI,CAAC,CAAD,CAA9B,CAAhB,CACA,CAFD,IAEO,CACN25B,EAAE,CAAGhhD,WAAW,CAACghD,EAAD,CAAK6F,aAAa,CAAC/B,EAAd,CAAiB7lD,CAAjB,CAAqBooB,IAA1B,CAAhB,CACA,CACD,CACD,GAAIw/B,aAAa,CAAC9B,EAAd,CAAiB1iC,QAArB,CAA+B,CAC9B,GAAIgF,IAAI,CAAC3vB,MAAT,CAAiB,CAChBspD,EAAE,CAAGrhD,kBAAkB,CAACqhD,EAAD,CAAK6F,aAAa,CAAC9B,EAAd,CAAiB9lD,CAAjB,CAAqBooB,IAAI,CAAC,CAAD,CAA9B,CAAvB,CACA,CAFD,IAEO,CACN25B,EAAE,CAAGrhD,kBAAkB,CAACqhD,EAAD,CAAK6F,aAAa,CAAC9B,EAAd,CAAiB9lD,CAAjB,CAAqBooB,IAA1B,CAAvB,CACA,CACD,CACD,GAAIw/B,aAAa,CAAC7B,EAAd,CAAiB3iC,QAArB,CAA+B,CAC9B,GAAIgF,IAAI,CAAC3vB,MAAT,CAAiB,CAChBspD,EAAE,CAAGjhD,kBAAkB,CAACihD,EAAD,CAAK6F,aAAa,CAAC7B,EAAd,CAAiB/lD,CAAjB,CAAqBooB,IAAI,CAAC,CAAD,CAA9B,CAAvB,CACA,CAFD,IAEO,CACN25B,EAAE,CAAGjhD,kBAAkB,CAACihD,EAAD,CAAK6F,aAAa,CAAC7B,EAAd,CAAiB/lD,CAAjB,CAAqBooB,IAA1B,CAAvB,CACA,CACD,CACD,CACD,CAED,IAAK5kB,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,IAAhB,CAAsBD,CAAC,EAAI,CAA3B,CAA8B,CAC7BokD,aAAa,CAAGpC,SAAS,CAAChiD,CAAD,CAAT,CAAaiD,CAA7B,CAEA,GAAImhD,aAAa,CAACvnD,CAAd,CAAgB+iB,QAApB,CAA8B,CAC7BumC,gBAAgB,CAAGnE,SAAS,CAAChiD,CAAD,CAAT,CAAazD,CAAhC,CACAqoB,IAAI,CAAGuhC,gBAAgB,CAACxC,OAAjB,CAAyB9C,OAAO,CAAC9rD,CAAD,CAAP,CAAW8sD,SAAX,CAAqB7hD,CAArB,CAAzB,CAAkDgiC,QAAQ,CAAC/+B,CAAT,CAAWjD,CAAX,EAAczD,CAAd,CAAgBkmD,UAAlE,CAAP,CACA,GAAI,KAAKgC,cAAT,CAAyB,CACxB,GAAI7/B,IAAI,CAAC3vB,MAAT,CAAiB,CAChBmwD,YAAY,CAAC53B,SAAb,CAAuB,CAAvB,CAA0B42B,aAAa,CAACvnD,CAAd,CAAgBL,CAAhB,CAAkB,CAAlB,EAAuBooB,IAAI,CAAC,CAAD,CAArD,CAA0D,CAACw/B,aAAa,CAACvnD,CAAd,CAAgBL,CAAhB,CAAkB,CAAlB,CAAD,CAAwBooB,IAAI,CAAC,CAAD,CAAtF,EACA,CAFD,IAEO,CACNwgC,YAAY,CAAC53B,SAAb,CAAuB,CAAvB,CAA0B42B,aAAa,CAACvnD,CAAd,CAAgBL,CAAhB,CAAkB,CAAlB,EAAuBooB,IAAjD,CAAuD,CAACw/B,aAAa,CAACvnD,CAAd,CAAgBL,CAAhB,CAAkB,CAAlB,CAAD,CAAwBooB,IAA/E,EACA,CACD,CAND,QAMWA,IAAI,CAAC3vB,MAAT,CAAiB,CACvBmwD,YAAY,CAAC53B,SAAb,CAAuB42B,aAAa,CAACvnD,CAAd,CAAgBL,CAAhB,CAAkB,CAAlB,EAAuBooB,IAAI,CAAC,CAAD,CAAlD,CAAuDw/B,aAAa,CAACvnD,CAAd,CAAgBL,CAAhB,CAAkB,CAAlB,EAAuBooB,IAAI,CAAC,CAAD,CAAlF,CAAuF,CAACw/B,aAAa,CAACvnD,CAAd,CAAgBL,CAAhB,CAAkB,CAAlB,CAAD,CAAwBooB,IAAI,CAAC,CAAD,CAAnH,EACA,CAFM,IAEA,CACNwgC,YAAY,CAAC53B,SAAb,CAAuB42B,aAAa,CAACvnD,CAAd,CAAgBL,CAAhB,CAAkB,CAAlB,EAAuBooB,IAA9C,CAAoDw/B,aAAa,CAACvnD,CAAd,CAAgBL,CAAhB,CAAkB,CAAlB,EAAuBooB,IAA3E,CAAiF,CAACw/B,aAAa,CAACvnD,CAAd,CAAgBL,CAAhB,CAAkB,CAAlB,CAAD,CAAwBooB,IAAzG,EACA,CACD,CACD,CACD,GAAIpiB,YAAY,CAACi9C,eAAjB,CAAkC,CACjCmH,QAAQ,CAAGtI,EAAE,CAAG,CAAL,CAAS,CAAT,CAAaA,EAAxB,CACA,CACD,GAAI97C,YAAY,CAACg9C,eAAjB,CAAkC,CACjCqH,QAAQ,CAAG,OAAS/tD,IAAI,CAAC0X,KAAL,CAAW4uB,EAAE,CAAC,CAAD,CAAF,CAAQ,GAAnB,CAAT,CAAmC,GAAnC,CAAyCtmC,IAAI,CAAC0X,KAAL,CAAW4uB,EAAE,CAAC,CAAD,CAAF,CAAQ,GAAnB,CAAzC,CAAmE,GAAnE,CAAyEtmC,IAAI,CAAC0X,KAAL,CAAW4uB,EAAE,CAAC,CAAD,CAAF,CAAQ,GAAnB,CAAzE,CAAmG,GAA9G,CACA,CACD,GAAI58B,YAAY,CAAC+8C,aAAb,EAA8B/8C,YAAY,CAAC+7C,EAA/C,CAAmD,CAClDuI,QAAQ,CAAG,OAAShuD,IAAI,CAAC0X,KAAL,CAAW+tC,EAAE,CAAC,CAAD,CAAF,CAAQ,GAAnB,CAAT,CAAmC,GAAnC,CAAyCzlD,IAAI,CAAC0X,KAAL,CAAW+tC,EAAE,CAAC,CAAD,CAAF,CAAQ,GAAnB,CAAzC,CAAmE,GAAnE,CAAyEzlD,IAAI,CAAC0X,KAAL,CAAW+tC,EAAE,CAAC,CAAD,CAAF,CAAQ,GAAnB,CAAzE,CAAmG,GAA9G,CACA,CAED,GAAI,KAAKkG,cAAT,CAAyB,CACxBW,YAAY,CAAC53B,SAAb,CAAuB,CAAvB,CAA0B,CAAChrB,YAAY,CAAC68C,EAAxC,EAEA+F,YAAY,CAAC53B,SAAb,CAAuB,CAAvB,CAA2Bu3B,SAAS,CAAC,CAAD,CAAT,CAAekB,IAAhB,CAAwB,IAAxB,CAA+BV,IAAzD,CAA+D,CAA/D,EACA,GAAI,KAAKV,SAAL,CAAehoD,CAAf,CAAiBL,CAArB,CAAwB,CACvBspD,QAAQ,CAAG,CAACJ,YAAY,CAAC1pC,KAAb,CAAmB,CAAnB,EAAwB6pC,SAAS,CAAC7pC,KAAV,CAAgB,CAAhB,CAAzB,GAAgD0pC,YAAY,CAAC1pC,KAAb,CAAmB,CAAnB,EAAwB6pC,SAAS,CAAC7pC,KAAV,CAAgB,CAAhB,CAAxE,CAAX,CACA,IAAIurC,GAAG,CAAIzuD,IAAI,CAAC0uD,IAAL,CAAU1B,QAAV,EAAsB,GAAvB,CAA8BhtD,IAAI,CAACmB,EAA7C,CACA,GAAIyrD,YAAY,CAAC1pC,KAAb,CAAmB,CAAnB,EAAwB6pC,SAAS,CAAC7pC,KAAV,CAAgB,CAAhB,CAA5B,CAAgD,CAC/CurC,GAAG,EAAI,GAAP,CACA,CACDnC,YAAY,CAAC54B,MAAb,CAAqB,CAAC+6B,GAAD,CAAOzuD,IAAI,CAACmB,EAAb,CAAmB,GAAvC,EACA,CACDmrD,YAAY,CAAC53B,SAAb,CAAuB84B,QAAvB,CAAiCC,QAAjC,CAA2C,CAA3C,EACAd,aAAa,EAAKV,SAAS,CAAC,CAAD,CAAT,CAAelE,OAAO,CAAC9rD,CAAD,CAAP,CAAW4sD,EAA3B,CAAiC,KAAlD,CACA,GAAId,OAAO,CAAC9rD,CAAC,CAAG,CAAL,CAAP,EAAkB4rB,GAAG,GAAKkgC,OAAO,CAAC9rD,CAAC,CAAG,CAAL,CAAP,CAAe4rB,GAA7C,CAAkD,CACjD8kC,aAAa,EAAI5E,OAAO,CAAC9rD,CAAD,CAAP,CAAW4sD,EAAX,CAAgB,CAAjC,CACA8D,aAAa,EAAKjjD,YAAY,CAACq1B,EAAb,CAAkB,KAAnB,CAA4Br1B,YAAY,CAACm9C,SAA1D,CACA,CACD,CAlBD,IAkBO,CACNyF,YAAY,CAAC53B,SAAb,CAAuB83B,IAAvB,CAA6BC,IAA7B,CAAmC,CAAnC,EAEA,GAAI/iD,YAAY,CAAC88C,EAAjB,CAAqB;CAEpB8F,YAAY,CAAC53B,SAAb,CAAuBhrB,YAAY,CAAC88C,EAAb,CAAgB,CAAhB,CAAvB,CAA2C98C,YAAY,CAAC88C,EAAb,CAAgB,CAAhB,EAAqB98C,YAAY,CAACu8C,MAA7E,CAAqF,CAArF,EACA,CACD,OAAQv8C,YAAY,CAACxC,CAArB,EACC,MAAA,CACColD,YAAY,CAAC53B,SAAb,CAAuBqzB,OAAO,CAAC9rD,CAAD,CAAP,CAAW+sD,qBAAX,CAAmCt/C,YAAY,CAAC08C,aAAhD,EAAiE18C,YAAY,CAACw8C,QAAb,CAAwBx8C,YAAY,CAAC48C,UAAb,CAAwByB,OAAO,CAAC9rD,CAAD,CAAP,CAAW0V,IAAnC,CAAzF,CAAvB,CAA2J,CAA3J,CAA8J,CAA9J,EACA,MACD,MAAA,CACC26C,YAAY,CAAC53B,SAAb,CAAuBqzB,OAAO,CAAC9rD,CAAD,CAAP,CAAW+sD,qBAAX,CAAmCt/C,YAAY,CAAC08C,aAAhD,CAAgE,CAAC18C,YAAY,CAACw8C,QAAb,CAAwBx8C,YAAY,CAAC48C,UAAb,CAAwByB,OAAO,CAAC9rD,CAAD,CAAP,CAAW0V,IAAnC,CAAzB,EAAqE,CAA5J,CAA+J,CAA/J,CAAkK,CAAlK,EACA,MACD,QACC,MARF,CAUA26C,YAAY,CAAC53B,SAAb,CAAuB,CAAvB,CAA0B,CAAChrB,YAAY,CAAC68C,EAAxC,EACA+F,YAAY,CAAC53B,SAAb,CAAuB64B,IAAvB,CAA6B,CAA7B,CAAgC,CAAhC,EACAjB,YAAY,CAAC53B,SAAb,CAAwBu3B,SAAS,CAAC,CAAD,CAAT,CAAelE,OAAO,CAAC9rD,CAAD,CAAP,CAAW4sD,EAA3B,CAAiC,KAAxD,CAAgEoD,SAAS,CAAC,CAAD,CAAT,CAAekB,IAAhB,CAAwB,IAAvF,CAA6F,CAA7F,EACAX,IAAI,EAAIzE,OAAO,CAAC9rD,CAAD,CAAP,CAAWu4B,CAAX,CAAgB9qB,YAAY,CAACq1B,EAAb,CAAkB,KAAnB,CAA4Br1B,YAAY,CAACm9C,SAAhE,CACA,CACD,GAAI6E,UAAU,GAAK,MAAnB,CAA2B,CAC1BuC,OAAO,CAAG3B,YAAY,CAACn0B,KAAb,EAAV,CACA,CAFD,QAEWuzB,UAAU,GAAK,KAAnB,CAA0B,CAChCuC,OAAO,CAAG3B,YAAY,CAACh0B,OAAb,EAAV,CACA,CAFM,IAEA,CACN41B,OAAO,CAAG,CAAC5B,YAAY,CAAC74B,KAAb,CAAmB,CAAnB,CAAD,CAAwB64B,YAAY,CAAC74B,KAAb,CAAmB,CAAnB,CAAxB,CAA+C64B,YAAY,CAAC74B,KAAb,CAAmB,CAAnB,CAA/C,CAAsE64B,YAAY,CAAC74B,KAAb,CAAmB,CAAnB,CAAtE,CAA6F64B,YAAY,CAAC74B,KAAb,CAAmB,CAAnB,CAA7F,CAAoH64B,YAAY,CAAC74B,KAAb,CAAmB,CAAnB,CAApH,CAA2I64B,YAAY,CAAC74B,KAAb,CAAmB,CAAnB,CAA3I,CAAkK64B,YAAY,CAAC74B,KAAb,CAAmB,CAAnB,CAAlK,CAAyL64B,YAAY,CAAC74B,KAAb,CAAmB,CAAnB,CAAzL,CAAgN64B,YAAY,CAAC74B,KAAb,CAAmB,CAAnB,CAAhN,CAAuO64B,YAAY,CAAC74B,KAAb,CAAmB,EAAnB,CAAvO,CAA+P64B,YAAY,CAAC74B,KAAb,CAAmB,EAAnB,CAA/P,CAAuR64B,YAAY,CAAC74B,KAAb,CAAmB,EAAnB,CAAvR,CAA+S64B,YAAY,CAAC74B,KAAb,CAAmB,EAAnB,CAA/S,CAAuU64B,YAAY,CAAC74B,KAAb,CAAmB,EAAnB,CAAvU,CAA+V64B,YAAY,CAAC74B,KAAb,CAAmB,EAAnB,CAA/V,CAAV,CACA,CACD26B,OAAO,CAAGP,WAAV,CACA,CAED,GAAItB,oBAAoB,EAAItwD,CAA5B,CAA+B,CAC9BqxD,WAAW,CAAG,IAAI/H,WAAJ,CAAgB6I,OAAhB,CAAyBN,QAAzB,CAAmCC,QAAnC,CAA6CC,QAA7C,CAAuDC,OAAvD,CAAgEC,OAAhE,CAAd,CACA,KAAKhC,eAAL,CAAqB1uD,IAArB,CAA0B8vD,WAA1B,EACAf,oBAAoB,EAAI,CAAxB,CACA,KAAKJ,kBAAL,CAA0B,IAA1B,CACA,CALD,IAKO,CACNmB,WAAW,CAAG,KAAKpB,eAAL,CAAqBjwD,CAArB,CAAd,CACA,KAAKkwD,kBAAL,CAA0BmB,WAAW,CAAC5H,MAAZ,CAAmB0I,OAAnB,CAA4BN,QAA5B,CAAsCC,QAAtC,CAAgDC,QAAhD,CAA0DC,OAA1D,CAAmEC,OAAnE,GAA+E,KAAK/B,kBAA9G,CACA,CACD,CACD,CAvhBD,CAyhBAV,oBAAoB,CAACpvD,SAArB,CAA+BuwB,QAA/B,CAA0C,UAAY,CACrD,GAAI,KAAKuf,KAAL,CAAW12B,UAAX,CAAsBwW,OAAtB,GAAkC,KAAK45B,QAA3C,CAAqD,CACpD,OACA,CACD,KAAKA,QAAL,CAAgB,KAAK1Z,KAAL,CAAW12B,UAAX,CAAsBwW,OAAtC,CACA,KAAKoB,wBAAL,GACA,CAND,CAQAo+B,oBAAoB,CAACpvD,SAArB,CAA+Bw8C,OAA/B,CAAyC,IAAI1lB,MAAJ,EAAzC,CACAs4B,oBAAoB,CAACpvD,SAArB,CAA+B8xD,iBAA/B,CAAmD,EAAnD,CACAryD,eAAe,CAAC,CAACoxB,wBAAD,CAAD,CAA6Bu+B,oBAA7B,CAAf,CAEA,SAASkD,YAAT,EAAwB,EAGxBA,YAAY,CAACtyD,SAAb,CAAuBihD,WAAvB,CAAqC,SAAUt3C,IAAV,CAAgByP,UAAhB,CAA4BhN,IAA5B,CAAkC,CACtE,KAAK0jD,kBAAL,CAA0B,IAA1B,CACA,KAAK5lC,SAAL,GACA,KAAKkuB,YAAL,CAAkBzuC,IAAlB,CAAwByP,UAAxB,CAAoChN,IAApC,EACA,KAAKmqC,YAAL,CAAoB,IAAIgT,YAAJ,CAAiB,IAAjB,CAAuB5/C,IAAI,CAAC/B,CAA5B,CAA+B,KAAKkpB,iBAApC,CAApB,CACA,KAAKyhC,YAAL,CAAoB,IAAInD,oBAAJ,CAAyBzlD,IAAI,CAAC/B,CAA9B,CAAiC,KAAKynD,UAAtC,CAAkD,IAAlD,CAApB,CACA,KAAKtT,aAAL,CAAmBpyC,IAAnB,CAAyByP,UAAzB,CAAqChN,IAArC,EACA,KAAKy0C,aAAL,GACA,KAAKnV,cAAL,GACA,KAAK2T,mBAAL,GACA,KAAKC,uBAAL,GACA,KAAKmB,0BAAL,GACA,KAAKS,aAAL,GACA,KAAK7iC,IAAL,GACA,KAAKk0C,YAAL,CAAkBxC,gBAAlB,CAAmC,KAAKj/B,iBAAxC,EACA,CAfD,CAiBAwhC,YAAY,CAACtyD,SAAb,CAAuB2W,YAAvB,CAAsC,SAAUw1B,GAAV,CAAe,CACpD,KAAKzc,IAAL,CAAY,KAAZ,CACA,KAAKwc,sBAAL,CAA4BC,GAA5B,EACA,KAAKqM,iBAAL,CAAuBrM,GAAvB,CAA4B,KAAKR,SAAjC,EACA,GAAI,KAAK4K,YAAL,CAAkB7mB,IAAlB,EAA0B,KAAK6mB,YAAL,CAAkBxmB,aAAhD,CAA+D,CAC9D,KAAKyiC,YAAL,GACA,KAAKjc,YAAL,CAAkBxmB,aAAlB,CAAkC,KAAlC,CACA,KAAKwmB,YAAL,CAAkB7mB,IAAlB,CAAyB,KAAzB,CACA,CACD,CATD,CAWA4iC,YAAY,CAACtyD,SAAb,CAAuByyD,eAAvB,CAAyC,SAAUxC,YAAV,CAAwBpkD,MAAxB,CAAgC,CACxE,IAAIhB,CAAJ,CACA,IAAIC,IAAI,CAAGe,MAAM,CAAC/L,MAAlB,CACA,IAAIm+C,SAAJ,CACA,IAAIyU,QAAQ,CAAG,EAAf,CACA,IAAK7nD,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,IAAhB,CAAsBD,CAAC,EAAI,CAA3B,CAA8B,CAC7B,GAAIgB,MAAM,CAAChB,CAAD,CAAN,CAAUY,EAAV,GAAiB,IAArB,CAA2B,CAC1BwyC,SAAS,CAAGpyC,MAAM,CAAChB,CAAD,CAAN,CAAU4B,EAAV,CAAa1B,CAAzB,CACA2nD,QAAQ,EAAIlN,gBAAgB,CAACvH,SAAD,CAAYA,SAAS,CAACr+C,CAAV,CAAYE,MAAxB,CAAgC,IAAhC,CAAsCmwD,YAAtC,CAA5B,CACA,CACD,CACD,OAAOyC,QAAP,CACA,CAZD,CAcAJ,YAAY,CAACtyD,SAAb,CAAuBwe,kBAAvB,CAA4C,SAAUivC,OAAV,CAAmBhvC,KAAnB,CAA0B,CACrE,KAAK83B,YAAL,CAAkB/3B,kBAAlB,CAAqCivC,OAArC,CAA8ChvC,KAA9C,EACA,CAFD,CAIA6zC,YAAY,CAACtyD,SAAb,CAAuB4tD,aAAvB,CAAuC,SAAUC,UAAV,CAAsB,CAC5D,KAAKtX,YAAL,CAAkBqX,aAAlB,CAAgCC,UAAhC,EACA,CAFD,CAIAyE,YAAY,CAACtyD,SAAb,CAAuB8tD,kBAAvB,CAA4C,SAAU6E,SAAV,CAAqB,CAChE,KAAKpc,YAAL,CAAkBuX,kBAAlB,CAAqC6E,SAArC,EACA,CAFD,CAIAL,YAAY,CAACtyD,SAAb,CAAuB4yD,2BAAvB,CAAqD,SAAUvlD,YAAV,CAAwB4iD,YAAxB,CAAsC4C,UAAtC,CAAkD1C,IAAlD,CAAwDC,IAAxD,CAA8D,CAClH,GAAI/iD,YAAY,CAAC88C,EAAjB,CAAqB,CACpB8F,YAAY,CAAC53B,SAAb,CAAuBhrB,YAAY,CAAC88C,EAAb,CAAgB,CAAhB,CAAvB,CAA2C98C,YAAY,CAAC88C,EAAb,CAAgB,CAAhB,EAAqB98C,YAAY,CAACu8C,MAA7E,CAAqF,CAArF,EACA,CACDqG,YAAY,CAAC53B,SAAb,CAAuB,CAAvB,CAA0B,CAAChrB,YAAY,CAAC68C,EAAxC,CAA4C,CAA5C,EACA,OAAQ78C,YAAY,CAACxC,CAArB,EACC,MAAA,CACColD,YAAY,CAAC53B,SAAb,CAAuBhrB,YAAY,CAAC08C,aAAb,EAA8B18C,YAAY,CAACw8C,QAAb,CAAwBx8C,YAAY,CAAC48C,UAAb,CAAwB4I,UAAxB,CAAtD,CAAvB,CAAmH,CAAnH,CAAsH,CAAtH,EACA,MACD,MAAA,CACC5C,YAAY,CAAC53B,SAAb,CAAuBhrB,YAAY,CAAC08C,aAAb,CAA6B,CAAC18C,YAAY,CAACw8C,QAAb,CAAwBx8C,YAAY,CAAC48C,UAAb,CAAwB4I,UAAxB,CAAzB,EAAgE,CAApH,CAAuH,CAAvH,CAA0H,CAA1H,EACA,MACD,QACC,MARF,CAUA5C,YAAY,CAAC53B,SAAb,CAAuB83B,IAAvB,CAA6BC,IAA7B,CAAmC,CAAnC,EACA,CAhBD,CAkBAkC,YAAY,CAACtyD,SAAb,CAAuB8yD,UAAvB,CAAoC,SAAUC,SAAV,CAAqB,CACxD,OAAO,OAASpvD,IAAI,CAAC0X,KAAL,CAAW03C,SAAS,CAAC,CAAD,CAAT,CAAe,GAA1B,CAAT,CAA0C,GAA1C,CAAgDpvD,IAAI,CAAC0X,KAAL,CAAW03C,SAAS,CAAC,CAAD,CAAT,CAAe,GAA1B,CAAhD,CAAiF,GAAjF,CAAuFpvD,IAAI,CAAC0X,KAAL,CAAW03C,SAAS,CAAC,CAAD,CAAT,CAAe,GAA1B,CAAvF,CAAwH,GAA/H,CACA,CAFD,CAIAT,YAAY,CAACtyD,SAAb,CAAuBgzD,SAAvB,CAAmC,IAAI9J,WAAJ,EAAnC,CAEAoJ,YAAY,CAACtyD,SAAb,CAAuBoU,OAAvB,CAAiC,UAAY,EAA7C,CAIA,IAAI6+C,cAAc,CAAG,CACpBpnD,MAAM,CAAE,EADY,CAArB,CAIA,SAASqnD,oBAAT,CAA8BvpD,IAA9B,CAAoCyP,UAApC,CAAgDhN,IAAhD,CAAsD,CACrD,KAAK+mD,SAAL,CAAiB,EAAjB,CACA,KAAK9D,UAAL,CAAkB,KAAlB,CACA,KAAKpO,WAAL,CAAiBt3C,IAAjB,CAAuByP,UAAvB,CAAmChN,IAAnC,EACA,CAED3M,eAAe,CAAC,CAACi4C,WAAD,CAAcoE,gBAAd,CAAgCsD,cAAhC,CAAgDwB,gBAAhD,CAAkErI,YAAlE,CAAgFwI,oBAAhF,CAAsGuR,YAAtG,CAAD,CAAsHY,oBAAtH,CAAf,CAEAA,oBAAoB,CAAClzD,SAArB,CAA+BkhD,aAA/B,CAA+C,UAAY,CAC1D,GAAI,KAAKv3C,IAAL,CAAUypD,WAAV,EAAyB,CAAC,KAAKh6C,UAAL,CAAgBoB,WAAhB,CAA4BxO,KAA1D,CAAiE,CAChE,KAAKqnD,aAAL,CAAqBrqD,QAAQ,CAAC,MAAD,CAA7B,CACA,CACD,CAJD,CAMAkqD,oBAAoB,CAAClzD,SAArB,CAA+BszD,iBAA/B,CAAmD,SAAUC,SAAV,CAAqB,CACvE,IAAI3zD,CAAC,CAAG,CAAR,CACA,IAAIC,GAAG,CAAG0zD,SAAS,CAACzzD,MAApB,CACA,IAAI0zD,YAAY,CAAG,EAAnB,CACA,IAAIC,kBAAkB,CAAG,EAAzB,CACA,MAAO7zD,CAAC,CAAGC,GAAX,CAAgB,CACf,GAAI0zD,SAAS,CAAC3zD,CAAD,CAAT,GAAiB82C,MAAM,CAACgd,YAAP,CAAoB,EAApB,CAAjB,EAA4CH,SAAS,CAAC3zD,CAAD,CAAT,GAAiB82C,MAAM,CAACgd,YAAP,CAAoB,CAApB,CAAjE,CAAyF,CACxFF,YAAY,CAACryD,IAAb,CAAkBsyD,kBAAlB,EACAA,kBAAkB,CAAG,EAArB,CACA,CAHD,IAGO,CACNA,kBAAkB,EAAIF,SAAS,CAAC3zD,CAAD,CAA/B,CACA,CACDA,CAAC,EAAI,CAAL,CACA,CACD4zD,YAAY,CAACryD,IAAb,CAAkBsyD,kBAAlB,EACA,OAAOD,YAAP,CACA,CAhBD,CAkBAN,oBAAoB,CAAClzD,SAArB,CAA+B2zD,cAA/B,CAAgD,SAAUhqD,IAAV,CAAgBquB,KAAhB,CAAuB;CAEtE;CACA;CACA;CACA,GAAIruB,IAAI,CAACkC,MAAL,EAAelC,IAAI,CAACkC,MAAL,CAAY/L,MAA/B,CAAuC,CACtC,IAAI2yB,KAAK,CAAG9oB,IAAI,CAACkC,MAAL,CAAY,CAAZ,CAAZ,CACA,GAAI4mB,KAAK,CAAC/lB,EAAV,CAAc,CACb,IAAIknD,SAAS,CAAGnhC,KAAK,CAAC/lB,EAAN,CAAS+lB,KAAK,CAAC/lB,EAAN,CAAS5M,MAAT,CAAkB,CAA3B,CAAhB,CACA,GAAI8zD,SAAS,CAACxsD,CAAd,CAAiB,CAChBwsD,SAAS,CAACxsD,CAAV,CAAY2D,CAAZ,CAAc,CAAd,EAAmBitB,KAAnB,CACA47B,SAAS,CAACxsD,CAAV,CAAY2D,CAAZ,CAAc,CAAd,EAAmBitB,KAAnB,CACA,CACD,CACD,CACD,OAAOruB,IAAP,CACA,CAhBD,CAkBAupD,oBAAoB,CAAClzD,SAArB,CAA+BwyD,YAA/B,CAA8C,UAAY,CACzD,KAAKpiC,kBAAL,CAAwB,IAAxB,EACA,IAAIxwB,CAAJ,CACA,IAAIC,GAAJ,CAEA,IAAIwN,YAAY,CAAG,KAAKkpC,YAAL,CAAkBE,WAArC,CACA,KAAKoZ,eAAL,CAAuB7sD,gBAAgB,CAACqK,YAAY,CAAGA,YAAY,CAAC8qB,CAAb,CAAer4B,MAAlB,CAA2B,CAAxC,CAAvC,CACA,GAAIuN,YAAY,CAAC+7C,EAAjB,CAAqB,CACpB,KAAKjR,YAAL,CAAkB73B,YAAlB,CAA+B,MAA/B,CAAuC,KAAKwyC,UAAL,CAAgBzlD,YAAY,CAAC+7C,EAA7B,CAAvC,EACA,CAFD,IAEO,CACN,KAAKjR,YAAL,CAAkB73B,YAAlB,CAA+B,MAA/B,CAAuC,eAAvC,EACA,CACD,GAAIjT,YAAY,CAAC48B,EAAjB,CAAqB,CACpB,KAAKkO,YAAL,CAAkB73B,YAAlB,CAA+B,QAA/B,CAAyC,KAAKwyC,UAAL,CAAgBzlD,YAAY,CAAC48B,EAA7B,CAAzC,EACA,KAAKkO,YAAL,CAAkB73B,YAAlB,CAA+B,cAA/B,CAA+CjT,YAAY,CAAC87C,EAA5D,EACA,CACD,KAAKhR,YAAL,CAAkB73B,YAAlB,CAA+B,WAA/B,CAA4CjT,YAAY,CAACm9C,SAAzD,EACA,IAAI1kB,QAAQ,CAAG,KAAK1sB,UAAL,CAAgBoB,WAAhB,CAA4BmwB,aAA5B,CAA0Ct9B,YAAY,CAAC5F,CAAvD,CAAf,CACA,GAAIq+B,QAAQ,CAACkD,MAAb,CAAqB,CACpB,KAAKmP,YAAL,CAAkB73B,YAAlB,CAA+B,OAA/B,CAAwCwlB,QAAQ,CAACkD,MAAjD,EACA,CAFD,IAEO,CACN,KAAKmP,YAAL,CAAkB73B,YAAlB,CAA+B,aAA/B,CAA8CwlB,QAAQ,CAACgD,OAAvD,EACA,IAAI7C,OAAO,CAAG54B,YAAY,CAAC44B,OAA3B,CACA,IAAID,MAAM,CAAG34B,YAAY,CAAC24B,MAA1B,CACA,KAAKmS,YAAL,CAAkB73B,YAAlB,CAA+B,YAA/B,CAA6C0lB,MAA7C,EACA,KAAKmS,YAAL,CAAkB73B,YAAlB,CAA+B,aAA/B,CAA8C2lB,OAA9C,EACA,CACD,KAAKkS,YAAL,CAAkB73B,YAAlB,CAA+B,YAA/B,CAA6CjT,YAAY,CAACzF,CAA1D,EAEA,IAAI8jD,OAAO,CAAGr+C,YAAY,CAAC8qB,CAAb,EAAkB,EAAhC,CACA,IAAI07B,UAAU,CAAG,CAAC,CAAC,KAAKz6C,UAAL,CAAgBoB,WAAhB,CAA4BxO,KAA/C,CACAnM,GAAG,CAAG6rD,OAAO,CAAC5rD,MAAd,CAEA,IAAIg0D,KAAJ,CACA,IAAI7D,YAAY,CAAG,KAAKzT,OAAxB,CACA,IAAIkW,QAAQ,CAAG,EAAf,CACA,IAAIU,WAAW,CAAG,KAAKzpD,IAAL,CAAUypD,WAA5B,CACA,IAAIjD,IAAI,CAAG,CAAX,CACA,IAAIC,IAAI,CAAG,CAAX,CACA,IAAIW,SAAS,CAAG,IAAhB,CACA,IAAI7E,cAAc,CAAG7+C,YAAY,CAACq1B,EAAb,CAAkB,KAAlB,CAA0Br1B,YAAY,CAACm9C,SAA5D,CACA,GAAI4I,WAAW,EAAI,CAACS,UAAhB,EAA8B,CAACxmD,YAAY,CAAC4qB,EAAhD,CAAoD,CACnD,IAAI87B,QAAQ,CAAG,KAAKV,aAApB,CACA,IAAIW,OAAO,CAAG,OAAd,CACA,OAAQ3mD,YAAY,CAACxC,CAArB,EACC,MAAA,CACCmpD,OAAO,CAAG,KAAV,CACA,MACD,MAAA,CACCA,OAAO,CAAG,QAAV,CACA,MACD,QACCA,OAAO,CAAG,OAAV,CACA,MATF,CAWAD,QAAQ,CAACzzC,YAAT,CAAsB,aAAtB,CAAqC0zC,OAArC,EACAD,QAAQ,CAACzzC,YAAT,CAAsB,gBAAtB,CAAwC4rC,cAAxC,EACA,IAAInjB,WAAW,CAAG,KAAKuqB,iBAAL,CAAuBjmD,YAAY,CAACo9C,SAApC,CAAlB,CACA5qD,GAAG,CAAGkpC,WAAW,CAACjpC,MAAlB,CACAswD,IAAI,CAAG/iD,YAAY,CAAC88C,EAAb,CAAkB98C,YAAY,CAAC88C,EAAb,CAAgB,CAAhB,EAAqB98C,YAAY,CAACu8C,MAApD,CAA6D,CAApE,CACA,IAAKhqD,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5Bk0D,KAAK,CAAG,KAAKX,SAAL,CAAevzD,CAAf,EAAkBq0D,IAAlB,EAA0BjrD,QAAQ,CAAC,OAAD,CAA1C,CACA8qD,KAAK,CAAC/qB,WAAN,CAAoBA,WAAW,CAACnpC,CAAD,CAA/B,CACAk0D,KAAK,CAACxzC,YAAN,CAAmB,GAAnB,CAAwB,CAAxB,EACAwzC,KAAK,CAACxzC,YAAN,CAAmB,GAAnB,CAAwB8vC,IAAxB,EACA0D,KAAK,CAAC5uD,KAAN,CAAYI,OAAZ,CAAsB,SAAtB,CACAyuD,QAAQ,CAACxgD,WAAT,CAAqBugD,KAArB,EACA,GAAI,CAAC,KAAKX,SAAL,CAAevzD,CAAf,CAAL,CAAwB,CACvB,KAAKuzD,SAAL,CAAevzD,CAAf,EAAoB,CACnBq0D,IAAI,CAAE,IADa,CAEnBC,KAAK,CAAE,IAFY,CAApB,CAIA,CACD,KAAKf,SAAL,CAAevzD,CAAf,EAAkBq0D,IAAlB,CAAyBH,KAAzB,CACA1D,IAAI,EAAI/iD,YAAY,CAACq9C,eAArB,CACA,CAED,KAAKvS,YAAL,CAAkB5kC,WAAlB,CAA8BwgD,QAA9B,EACA,CArCD,IAqCO,CACN,IAAII,iBAAiB,CAAG,KAAKhB,SAAL,CAAerzD,MAAvC,CACA,IAAI2N,QAAJ,CACA,IAAK7N,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B,GAAI,CAAC,KAAKuzD,SAAL,CAAevzD,CAAf,CAAL,CAAwB,CACvB,KAAKuzD,SAAL,CAAevzD,CAAf,EAAoB,CACnBq0D,IAAI,CAAE,IADa,CAEnBG,SAAS,CAAE,IAFQ,CAGnBF,KAAK,CAAE,IAHY,CAApB,CAKA,CACD,GAAI,CAACL,UAAD,EAAe,CAACT,WAAhB,EAA+BxzD,CAAC,GAAK,CAAzC,CAA4C,CAC3Ck0D,KAAK,CAAGK,iBAAiB,CAAGv0D,CAApB,CAAwB,KAAKuzD,SAAL,CAAevzD,CAAf,EAAkBq0D,IAA1C,CAAiDjrD,QAAQ,CAAC6qD,UAAU,CAAG,GAAH,CAAS,MAApB,CAAjE,CACA,GAAIM,iBAAiB,EAAIv0D,CAAzB,CAA4B,CAC3Bk0D,KAAK,CAACxzC,YAAN,CAAmB,gBAAnB,CAAqC,MAArC,EACAwzC,KAAK,CAACxzC,YAAN,CAAmB,iBAAnB,CAAsC,OAAtC,EACAwzC,KAAK,CAACxzC,YAAN,CAAmB,mBAAnB,CAAwC,GAAxC,EACA,KAAK6yC,SAAL,CAAevzD,CAAf,EAAkBq0D,IAAlB,CAAyBH,KAAzB,CACA,GAAID,UAAJ,CAAgB,CACf,IAAIO,SAAS,CAAGprD,QAAQ,CAAC,GAAD,CAAxB,CACA8qD,KAAK,CAACvgD,WAAN,CAAkB6gD,SAAlB,EACA,KAAKjB,SAAL,CAAevzD,CAAf,EAAkBw0D,SAAlB,CAA8BA,SAA9B,CACA,CACD,KAAKjB,SAAL,CAAevzD,CAAf,EAAkBq0D,IAAlB,CAAyBH,KAAzB,CACA,KAAK3b,YAAL,CAAkB5kC,WAAlB,CAA8BugD,KAA9B,EACA,CACDA,KAAK,CAAC5uD,KAAN,CAAYI,OAAZ,CAAsB,SAAtB,CACA,CAED2qD,YAAY,CAACh8B,KAAb,GACA,GAAIm/B,WAAJ,CAAiB,CAChB,GAAI1H,OAAO,CAAC9rD,CAAD,CAAP,CAAW+rB,CAAf,CAAkB,CACjBwkC,IAAI,CAAG,CAACjE,cAAR,CACAkE,IAAI,EAAI/iD,YAAY,CAACk9C,OAArB,CACA6F,IAAI,EAAIW,SAAS,CAAG,CAAH,CAAO,CAAxB,CACAA,SAAS,CAAG,KAAZ,CACA,CACD,KAAK6B,2BAAL,CAAiCvlD,YAAjC,CAA+C4iD,YAA/C,CAA6DvE,OAAO,CAAC9rD,CAAD,CAAP,CAAW0V,IAAxE,CAA8E66C,IAA9E,CAAoFC,IAApF,EACAD,IAAI,EAAIzE,OAAO,CAAC9rD,CAAD,CAAP,CAAWu4B,CAAX,EAAgB,CAAxB,CACA;CACAg4B,IAAI,EAAIjE,cAAR,CACA,CACD,GAAI2H,UAAJ,CAAgB,CACfpmD,QAAQ,CAAG,KAAK2L,UAAL,CAAgBoB,WAAhB,CAA4B4vB,WAA5B,CACV/8B,YAAY,CAACo9C,SAAb,CAAuB7qD,CAAvB,CADU,CAEVkmC,QAAQ,CAACE,MAFC,CAGV,KAAK5sB,UAAL,CAAgBoB,WAAhB,CAA4BmwB,aAA5B,CAA0Ct9B,YAAY,CAAC5F,CAAvD,EAA0DqhC,OAHhD,CAAX,CAKA,IAAIurB,YAAJ,CACA;CACA,GAAI5mD,QAAQ,CAAC7F,CAAT,GAAe,CAAnB,CAAsB,CACrBysD,YAAY,CAAG,IAAIC,cAAJ,CAAmB7mD,QAAQ,CAAC9D,IAA5B,CAAkC,KAAKyP,UAAvC,CAAmD,IAAnD,CAAf,CACA,CAFD,IAEO,CACN,IAAIzP,IAAI,CAAGspD,cAAX,CACA,GAAIxlD,QAAQ,CAAC9D,IAAT,EAAiB8D,QAAQ,CAAC9D,IAAT,CAAckC,MAAnC,CAA2C,CAC1ClC,IAAI,CAAG,KAAKgqD,cAAL,CAAoBlmD,QAAQ,CAAC9D,IAA7B,CAAmC0D,YAAY,CAACm9C,SAAhD,CAAP,CACA,CACD6J,YAAY,CAAG,IAAIjN,eAAJ,CAAoBz9C,IAApB,CAA0B,KAAKyP,UAA/B,CAA2C,IAA3C,CAAf,CACA,CACD,GAAI,KAAK+5C,SAAL,CAAevzD,CAAf,EAAkBs0D,KAAtB,CAA6B,CAC5B,IAAIA,KAAK,CAAG,KAAKf,SAAL,CAAevzD,CAAf,EAAkBs0D,KAA9B,CACA,KAAKf,SAAL,CAAevzD,CAAf,EAAkBw0D,SAAlB,CAA4BjsB,WAA5B,CAAwC+rB,KAAK,CAAC/b,YAA9C,EACA+b,KAAK,CAAC9/C,OAAN,GACA,CACD,KAAK++C,SAAL,CAAevzD,CAAf,EAAkBs0D,KAAlB,CAA0BG,YAA1B,CACAA,YAAY,CAACE,MAAb,CAAsB,IAAtB,CACAF,YAAY,CAAC19C,YAAb,CAA0B,CAA1B,EACA09C,YAAY,CAACn4C,WAAb,GACA,KAAKi3C,SAAL,CAAevzD,CAAf,EAAkBw0D,SAAlB,CAA4B7gD,WAA5B,CAAwC8gD,YAAY,CAAClc,YAArD,EACA;CACA;CACA,GAAI1qC,QAAQ,CAAC7F,CAAT,GAAe,CAAnB,CAAsB,CACrB,KAAKurD,SAAL,CAAevzD,CAAf,EAAkBw0D,SAAlB,CAA4B9zC,YAA5B,CAAyC,WAAzC,CAAsD,SAAWjT,YAAY,CAACm9C,SAAb,CAAyB,GAApC,CAA0C,GAA1C,CAAgDn9C,YAAY,CAACm9C,SAAb,CAAyB,GAAzE,CAA+E,GAArI,EACA,CACD,CAhCD,IAgCO,CACN,GAAI4I,WAAJ,CAAiB,CAChBU,KAAK,CAACxzC,YAAN,CAAmB,WAAnB,CAAgC,aAAe2vC,YAAY,CAAC74B,KAAb,CAAmB,EAAnB,CAAf,CAAwC,GAAxC,CAA8C64B,YAAY,CAAC74B,KAAb,CAAmB,EAAnB,CAA9C,CAAuE,GAAvG,EACA,CACD08B,KAAK,CAAC/qB,WAAN,CAAoB2iB,OAAO,CAAC9rD,CAAD,CAAP,CAAW6E,GAA/B,CACAqvD,KAAK,CAAC1gD,cAAN,CAAqB,sCAArB,CAA6D,WAA7D,CAA0E,UAA1E,EACA,CACD;CACA,CACD,GAAIggD,WAAW,EAAIU,KAAnB,CAA0B,CACzBA,KAAK,CAACxzC,YAAN,CAAmB,GAAnB,CAAwBoyC,QAAxB,EACA,CACD,CACD,MAAO9yD,CAAC,CAAG,KAAKuzD,SAAL,CAAerzD,MAA1B,CAAkC,CACjC,KAAKqzD,SAAL,CAAevzD,CAAf,EAAkBq0D,IAAlB,CAAuB/uD,KAAvB,CAA6BI,OAA7B,CAAuC,MAAvC,CACA1F,CAAC,EAAI,CAAL,CACA,CAED,KAAK6/C,YAAL,CAAoB,IAApB,CACA,CA3KD,CA6KAyT,oBAAoB,CAAClzD,SAArB,CAA+B2sC,gBAA/B,CAAkD,UAAY,CAC7D,KAAKh2B,YAAL,CAAkB,KAAKvK,IAAL,CAAU+iB,aAAV,CAA0B,KAAKxlB,IAAL,CAAUiE,EAAtD,EACA,KAAKuzC,kBAAL,GACA,GAAI,KAAK1B,YAAT,CAAuB,CACtB,KAAKA,YAAL,CAAoB,KAApB,CACA,IAAI+U,OAAO,CAAG,KAAKrc,YAAL,CAAkBtlC,OAAlB,EAAd,CACA,KAAK4hD,IAAL,CAAY,CACXrvD,GAAG,CAAEovD,OAAO,CAAC9oC,CADF,CAEXrmB,IAAI,CAAEmvD,OAAO,CAACrxC,CAFH,CAGX9R,KAAK,CAAEmjD,OAAO,CAACnjD,KAHJ,CAIXC,MAAM,CAAEkjD,OAAO,CAACljD,MAJL,CAAZ,CAMA,CACD,YAAYmjD,IAAZ,CACA,CAdD,CAgBAvB,oBAAoB,CAAClzD,SAArB,CAA+BuwB,QAA/B,CAA0C,UAAY,CACrD,IAAI3wB,CAAJ,CACA,IAAIC,GAAG,CAAG,KAAKszD,SAAL,CAAerzD,MAAzB,CACA,IAAIu0D,YAAJ,CACA,KAAKllC,aAAL,CAAqB,KAAK/iB,IAAL,CAAU+iB,aAA/B,CACA,IAAKvvB,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5By0D,YAAY,CAAG,KAAKlB,SAAL,CAAevzD,CAAf,EAAkBs0D,KAAjC,CACA,GAAIG,YAAJ,CAAkB,CACjBA,YAAY,CAAC19C,YAAb,CAA0B,KAAKvK,IAAL,CAAU+iB,aAAV,CAA0B,KAAKxlB,IAAL,CAAUiE,EAA9D,EACA,GAAIymD,YAAY,CAAC3kC,IAAjB,CAAuB,CACtB,KAAKA,IAAL,CAAY,IAAZ,CACA,CACD,CACD,CACD,CAdD,CAgBAwjC,oBAAoB,CAAClzD,SAArB,CAA+BmhD,kBAA/B,CAAoD,UAAY,CAC/D,GAAI,CAAC,KAAKx3C,IAAL,CAAUypD,WAAX,EAA0B,KAAK1jC,IAAnC,CAAyC,CACxC,KAAK6iC,YAAL,CAAkBvC,WAAlB,CAA8B,KAAKzZ,YAAL,CAAkBE,WAAhD,CAA6D,KAAKqZ,kBAAlE,EACA,GAAI,KAAKA,kBAAL,EAA2B,KAAKyC,YAAL,CAAkBzC,kBAAjD,CAAqE,CACpE,KAAKrQ,YAAL,CAAoB,IAApB,CACA,IAAI7/C,CAAJ,CACA,IAAIC,GAAJ,CACA,IAAIgwD,eAAe,CAAG,KAAK0C,YAAL,CAAkB1C,eAAxC,CAEA,IAAInE,OAAO,CAAG,KAAKnV,YAAL,CAAkBE,WAAlB,CAA8Bte,CAA5C,CAEAt4B,GAAG,CAAG6rD,OAAO,CAAC5rD,MAAd,CACA,IAAI40D,cAAJ,CACA,IAAIC,QAAJ,CACA,IAAIN,YAAJ,CACA,IAAKz0D,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B,GAAI,CAAC8rD,OAAO,CAAC9rD,CAAD,CAAP,CAAW+rB,CAAhB,CAAmB,CAClB+oC,cAAc,CAAG7E,eAAe,CAACjwD,CAAD,CAAhC,CACA+0D,QAAQ,CAAG,KAAKxB,SAAL,CAAevzD,CAAf,EAAkBq0D,IAA7B,CACAI,YAAY,CAAG,KAAKlB,SAAL,CAAevzD,CAAf,EAAkBs0D,KAAjC,CACA,GAAIG,YAAJ,CAAkB,CACjBA,YAAY,CAACn4C,WAAb,GACA,CACD,GAAIw4C,cAAc,CAAChlC,IAAf,CAAoB0I,CAAxB,CAA2B,CAC1Bu8B,QAAQ,CAACr0C,YAAT,CAAsB,WAAtB,CAAmCo0C,cAAc,CAACt8B,CAAlD,EACA,CACD,GAAIs8B,cAAc,CAAChlC,IAAf,CAAoB/iB,CAAxB,CAA2B,CAC1BgoD,QAAQ,CAACr0C,YAAT,CAAsB,SAAtB,CAAiCo0C,cAAc,CAAC/nD,CAAhD,EACA,CACD,GAAI+nD,cAAc,CAAChlC,IAAf,CAAoBy5B,EAAxB,CAA4B,CAC3BwL,QAAQ,CAACr0C,YAAT,CAAsB,cAAtB,CAAsCo0C,cAAc,CAACvL,EAArD,EACA,CACD,GAAIuL,cAAc,CAAChlC,IAAf,CAAoBua,EAAxB,CAA4B,CAC3B0qB,QAAQ,CAACr0C,YAAT,CAAsB,QAAtB,CAAgCo0C,cAAc,CAACzqB,EAA/C,EACA,CACD,GAAIyqB,cAAc,CAAChlC,IAAf,CAAoB05B,EAAxB,CAA4B,CAC3BuL,QAAQ,CAACr0C,YAAT,CAAsB,MAAtB,CAA8Bo0C,cAAc,CAACtL,EAA7C,EACA,CACD,CACD,CACD,CACD,CACD,CA1CD,CA4CA,SAASwL,aAAT,CAAuBjrD,IAAvB,CAA6ByP,UAA7B,CAAyChN,IAAzC,CAA+C,CAC9C,KAAK60C,WAAL,CAAiBt3C,IAAjB,CAAuByP,UAAvB,CAAmChN,IAAnC,EACA,CACD3M,eAAe,CAAC,CAAC4hD,aAAD,CAAD,CAAkBuT,aAAlB,CAAf,CAEAA,aAAa,CAAC50D,SAAd,CAAwBkhD,aAAxB,CAAwC,UAAY,CACnD,IAAInE,IAAI,CAAG/zC,QAAQ,CAAC,MAAD,CAAnB,CACA;CACA;CACA;CACA+zC,IAAI,CAACz8B,YAAL,CAAkB,OAAlB,CAA2B,KAAK3W,IAAL,CAAUw/C,EAArC,EACApM,IAAI,CAACz8B,YAAL,CAAkB,QAAlB,CAA4B,KAAK3W,IAAL,CAAU4iB,EAAtC,EACAwwB,IAAI,CAACz8B,YAAL,CAAkB,MAAlB,CAA0B,KAAK3W,IAAL,CAAUsgC,EAApC,EACA,KAAKkO,YAAL,CAAkB5kC,WAAlB,CAA8BwpC,IAA9B,EACA,CATD,CAWA,SAAS8X,WAAT,CAAqBlrD,IAArB,CAA2ByP,UAA3B,CAAuChN,IAAvC,CAA6C,CAC5C,KAAK8d,SAAL,GACA,KAAKkuB,YAAL,CAAkBzuC,IAAlB,CAAwByP,UAAxB,CAAoChN,IAApC,EACA,KAAK8d,SAAL,GACA,KAAK6xB,aAAL,CAAmBpyC,IAAnB,CAAyByP,UAAzB,CAAqChN,IAArC,EACA,KAAKy0C,aAAL,GACA,CAEDgU,WAAW,CAAC70D,SAAZ,CAAsB2W,YAAtB,CAAqC,SAAUw1B,GAAV,CAAe,CACnD,KAAKqM,iBAAL,CAAuBrM,GAAvB,CAA4B,IAA5B,EACA,CAFD,CAIA0oB,WAAW,CAAC70D,SAAZ,CAAsBkc,WAAtB,CAAoC,UAAY,EAAhD,CAGA24C,WAAW,CAAC70D,SAAZ,CAAsBu5C,cAAtB,CAAuC,UAAY,CAClD,WAAA,CACA,CAFD,CAIAsb,WAAW,CAAC70D,SAAZ,CAAsBoU,OAAtB,CAAgC,UAAY,EAA5C,CAGAygD,WAAW,CAAC70D,SAAZ,CAAsB2sC,gBAAtB,CAAyC,UAAY,EAArD,CAGAkoB,WAAW,CAAC70D,SAAZ,CAAsBqe,IAAtB,CAA6B,UAAY,EAAzC,CAGA5e,eAAe,CAAC,CAACi4C,WAAD,CAAcoE,gBAAd,CAAgC8E,gBAAhC,CAAkDrI,YAAlD,CAAD,CAAkEsc,WAAlE,CAAf,CAEA,SAASC,eAAT,EAA2B,EAG3Br1D,eAAe,CAAC,CAAC26C,YAAD,CAAD,CAAiB0a,eAAjB,CAAf,CAEAA,eAAe,CAAC90D,SAAhB,CAA0B46C,UAA1B,CAAuC,SAAUjxC,IAAV,CAAgB,CACtD,WAAWkrD,WAAJ,CAAgBlrD,IAAhB,CAAsB,KAAKyP,UAA3B,CAAuC,IAAvC,CAAP,CACA,CAFD,CAIA07C,eAAe,CAAC90D,SAAhB,CAA0B66C,WAA1B,CAAwC,SAAUlxC,IAAV,CAAgB,CACvD,WAAWy9C,eAAJ,CAAoBz9C,IAApB,CAA0B,KAAKyP,UAA/B,CAA2C,IAA3C,CAAP,CACA,CAFD,CAIA07C,eAAe,CAAC90D,SAAhB,CAA0B86C,UAA1B,CAAuC,SAAUnxC,IAAV,CAAgB,CACtD,WAAWupD,oBAAJ,CAAyBvpD,IAAzB,CAA+B,KAAKyP,UAApC,CAAgD,IAAhD,CAAP,CACA,CAFD,CAIA07C,eAAe,CAAC90D,SAAhB,CAA0By6C,WAA1B,CAAwC,SAAU9wC,IAAV,CAAgB,CACvD,WAAW03C,aAAJ,CAAkB13C,IAAlB,CAAwB,KAAKyP,UAA7B,CAAyC,IAAzC,CAAP,CACA,CAFD,CAIA07C,eAAe,CAAC90D,SAAhB,CAA0B26C,WAA1B,CAAwC,SAAUhxC,IAAV,CAAgB,CACvD,WAAWirD,aAAJ,CAAkBjrD,IAAlB,CAAwB,KAAKyP,UAA7B,CAAyC,IAAzC,CAAP,CACA,CAFD,CAIA07C,eAAe,CAAC90D,SAAhB,CAA0ByY,eAA1B,CAA4C,SAAU2C,QAAV,CAAoB,CAC/D,KAAK25C,UAAL,CAAgBz0C,YAAhB,CAA6B,OAA7B,CAAsC,4BAAtC,EACA,GAAI,KAAKksB,YAAL,CAAkBwoB,WAAtB,CAAmC,CAClC,KAAKD,UAAL,CAAgBz0C,YAAhB,CAA6B,SAA7B,CAAwC,KAAKksB,YAAL,CAAkBwoB,WAA1D,EACA,CAFD,IAEO,CACN,KAAKD,UAAL,CAAgBz0C,YAAhB,CAA6B,SAA7B,CAAwC,OAASlF,QAAQ,CAAC4T,CAAlB,CAAsB,GAAtB,CAA4B5T,QAAQ,CAACjU,CAA7E,EACA,CAED,GAAI,CAAC,KAAKqlC,YAAL,CAAkByoB,WAAvB,CAAoC,CACnC,KAAKF,UAAL,CAAgBz0C,YAAhB,CAA6B,OAA7B,CAAsClF,QAAQ,CAAC4T,CAA/C,EACA,KAAK+lC,UAAL,CAAgBz0C,YAAhB,CAA6B,QAA7B,CAAuClF,QAAQ,CAACjU,CAAhD,EACA,KAAK4tD,UAAL,CAAgB7vD,KAAhB,CAAsBmM,KAAtB,CAA8B,MAA9B,CACA,KAAK0jD,UAAL,CAAgB7vD,KAAhB,CAAsBoM,MAAtB,CAA+B,MAA/B,CACA,KAAKyjD,UAAL,CAAgB7vD,KAAhB,CAAsBszB,SAAtB,CAAkC,oBAAlC,CACA,KAAKu8B,UAAL,CAAgB7vD,KAAhB,CAAsBgwD,iBAAtB,CAA0C,KAAK1oB,YAAL,CAAkB0oB,iBAA5D,CACA,CACD,GAAI,KAAK1oB,YAAL,CAAkBn7B,KAAtB,CAA6B,CAC5B,KAAK0jD,UAAL,CAAgBz0C,YAAhB,CAA6B,OAA7B,CAAsC,KAAKksB,YAAL,CAAkBn7B,KAAxD,EACA,CACD,GAAI,KAAKm7B,YAAL,CAAkBl7B,MAAtB,CAA8B,CAC7B,KAAKyjD,UAAL,CAAgBz0C,YAAhB,CAA6B,QAA7B,CAAuC,KAAKksB,YAAL,CAAkBl7B,MAAzD,EACA,CACD,GAAI,KAAKk7B,YAAL,CAAkB2oB,SAAtB,CAAiC,CAChC,KAAKJ,UAAL,CAAgBz0C,YAAhB,CAA6B,OAA7B,CAAsC,KAAKksB,YAAL,CAAkB2oB,SAAxD,EACA,CACD,GAAI,KAAK3oB,YAAL,CAAkBrgC,EAAtB,CAA0B,CACzB,KAAK4oD,UAAL,CAAgBz0C,YAAhB,CAA6B,IAA7B,CAAmC,KAAKksB,YAAL,CAAkBrgC,EAArD,EACA,CACD,GAAI,KAAKqgC,YAAL,CAAkB4oB,SAAlB,GAAgC77C,SAApC,CAA+C,CAC9C,KAAKw7C,UAAL,CAAgBz0C,YAAhB,CAA6B,WAA7B,CAA0C,KAAKksB,YAAL,CAAkB4oB,SAA5D,EACA,CACD,KAAKL,UAAL,CAAgBz0C,YAAhB,CAA6B,qBAA7B,CAAoD,KAAKksB,YAAL,CAAkB6oB,mBAAtE,EACA;CACA;CACA,KAAKxZ,aAAL,CAAmB9iC,OAAnB,CAA2BxF,WAA3B,CAAuC,KAAKwhD,UAA5C,EACA;CACA,IAAI17C,IAAI,CAAG,KAAKD,UAAL,CAAgBC,IAA3B,CAEA,KAAKsiC,eAAL,CAAqBvgC,QAArB,CAA+B/B,IAA/B,EACA,KAAKD,UAAL,CAAgB+hC,eAAhB,CAAkC,KAAK3O,YAAL,CAAkB2O,eAApD,CACA,KAAKxxC,IAAL,CAAYyR,QAAZ,CAEA,IAAIshC,WAAW,CAAG1zC,QAAQ,CAAC,UAAD,CAA1B,CACA,IAAI+zC,IAAI,CAAG/zC,QAAQ,CAAC,MAAD,CAAnB,CACA+zC,IAAI,CAACz8B,YAAL,CAAkB,OAAlB,CAA2BlF,QAAQ,CAAC4T,CAApC,EACA+tB,IAAI,CAACz8B,YAAL,CAAkB,QAAlB,CAA4BlF,QAAQ,CAACjU,CAArC,EACA41C,IAAI,CAACz8B,YAAL,CAAkB,GAAlB,CAAuB,CAAvB,EACAy8B,IAAI,CAACz8B,YAAL,CAAkB,GAAlB,CAAuB,CAAvB,EACA,IAAIqkC,MAAM,CAAG59C,eAAe,EAA5B,CACA21C,WAAW,CAACp8B,YAAZ,CAAyB,IAAzB,CAA+BqkC,MAA/B,EACAjI,WAAW,CAACnpC,WAAZ,CAAwBwpC,IAAxB,EACA,KAAK5E,YAAL,CAAkB73B,YAAlB,CAA+B,WAA/B,CAA4C,OAASlhB,eAAe,EAAxB,CAA6B,GAA7B,CAAmCulD,MAAnC,CAA4C,GAAxF,EAEAtrC,IAAI,CAAC9F,WAAL,CAAiBmpC,WAAjB,EACA,KAAKhyC,MAAL,CAAc0Q,QAAQ,CAAC1Q,MAAvB,CACA,KAAKk5B,QAAL,CAAgB5gC,gBAAgB,CAACoY,QAAQ,CAAC1Q,MAAT,CAAgB5K,MAAjB,CAAhC,CACA,CAxDD,CA0DAg1D,eAAe,CAAC90D,SAAhB,CAA0BoU,OAA1B,CAAoC,UAAY,CAC/C,GAAI,KAAKynC,aAAL,CAAmB9iC,OAAvB,CAAgC,CAC/B,KAAK8iC,aAAL,CAAmB9iC,OAAnB,CAA2B0H,SAA3B,CAAuC,EAAvC,CACA,CACD,KAAK03B,YAAL,CAAoB,IAApB,CACA,KAAK/+B,UAAL,CAAgBC,IAAhB,CAAuB,IAAvB,CACA,IAAIzZ,CAAJ,CACA,IAAIC,GAAG,CAAG,KAAK6K,MAAL,CAAc,KAAKA,MAAL,CAAY5K,MAA1B,CAAmC,CAA7C,CACA,IAAKF,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B,GAAI,KAAKgkC,QAAL,CAAchkC,CAAd,CAAJ,CAAsB,CACrB,KAAKgkC,QAAL,CAAchkC,CAAd,EAAiBwU,OAAjB,GACA,CACD,CACD,KAAKwvB,QAAL,CAAc9jC,MAAd,CAAuB,CAAvB,CACA,KAAKw1D,SAAL,CAAiB,IAAjB,CACA,KAAKzZ,aAAL,CAAqB,IAArB,CACA,CAhBD,CAkBAiZ,eAAe,CAAC90D,SAAhB,CAA0Bgc,mBAA1B,CAAgD,UAAY,EAA5D,CAGA84C,eAAe,CAAC90D,SAAhB,CAA0Bs6C,SAA1B,CAAsC,SAAU9oB,GAAV,CAAe,CACpD,IAAIoS,QAAQ,CAAG,KAAKA,QAApB,CACA,GAAIA,QAAQ,CAACpS,GAAD,CAAR,EAAiB,KAAK9mB,MAAL,CAAY8mB,GAAZ,EAAiB/lB,EAAjB,GAAwB,EAA7C,CAAiD,CAChD,OACA,CACDm4B,QAAQ,CAACpS,GAAD,CAAR,CAAgB,IAAhB,CACA,IAAIvsB,OAAO,CAAG,KAAKu1C,UAAL,CAAgB,KAAK9vC,MAAL,CAAY8mB,GAAZ,CAAhB,CAAd,CAEAoS,QAAQ,CAACpS,GAAD,CAAR,CAAgBvsB,OAAhB,CACA,GAAI2D,oBAAoB,EAAxB,CAA4B,CAC3B,GAAI,KAAK8B,MAAL,CAAY8mB,GAAZ,EAAiB/lB,EAAjB,GAAwB,CAA5B,CAA+B,CAC9B,KAAK2N,UAAL,CAAgBd,gBAAhB,CAAiC/B,mBAAjC,CAAqDtR,OAArD,EACA,CACDA,OAAO,CAAC0V,eAAR,GACA,CACD,KAAK46C,kBAAL,CAAwBtwD,OAAxB,CAAiCusB,GAAjC,EACA,GAAI,KAAK9mB,MAAL,CAAY8mB,GAAZ,EAAiBtmB,EAArB,CAAyB,CACxB,GAAI,CAAC,KAAK04B,QAAL,CAAcpS,GAAG,CAAG,CAApB,CAAD,EAA2B,KAAKoS,QAAL,CAAcpS,GAAG,CAAG,CAApB,IAA2B,IAA1D,CAAgE,CAC/D,KAAK8oB,SAAL,CAAe9oB,GAAG,CAAG,CAArB,EACA,KAAK8pB,iBAAL,CAAuBr2C,OAAvB,EACA,CAHD,IAGO,CACNA,OAAO,CAAC07C,QAAR,CAAiB/c,QAAQ,CAACpS,GAAG,CAAG,CAAP,CAAR,CAAkB6mB,OAAnC,EACA,CACD,CACD,CAxBD,CA0BAyc,eAAe,CAAC90D,SAAhB,CAA0Bu6C,oBAA1B,CAAiD,UAAY,CAC5D,MAAO,KAAKkB,eAAL,CAAqB37C,MAA5B,CAAoC,CACnC,IAAImF,OAAO,CAAG,KAAKw2C,eAAL,CAAqBrb,GAArB,EAAd,CACAn7B,OAAO,CAAC67C,cAAR,GACA,GAAI77C,OAAO,CAAC0E,IAAR,CAAauB,EAAjB,CAAqB,CACpB,IAAItL,CAAC,CAAG,CAAR,CACA,IAAIC,GAAG,CAAG,KAAK+jC,QAAL,CAAc9jC,MAAxB,CACA,MAAOF,CAAC,CAAGC,GAAX,CAAgB,CACf,GAAI,KAAK+jC,QAAL,CAAchkC,CAAd,IAAqBqF,OAAzB,CAAkC,CACjCA,OAAO,CAAC07C,QAAR,CAAiB,KAAK/c,QAAL,CAAchkC,CAAC,CAAG,CAAlB,EAAqBy4C,OAAtC,EACA,MACA,CACDz4C,CAAC,EAAI,CAAL,CACA,CACD,CACD,CACD,CAhBD,CAkBAk1D,eAAe,CAAC90D,SAAhB,CAA0Bkc,WAA1B,CAAwC,SAAUiwB,GAAV,CAAe,CACtD,GAAI,KAAKhd,aAAL,GAAuBgd,GAAvB,EAA8B,KAAKmpB,SAAvC,CAAkD,CACjD,OACA,CACD,GAAInpB,GAAG,GAAK,IAAZ,CAAkB,CACjBA,GAAG,CAAG,KAAKhd,aAAX,CACA,CAFD,IAEO,CACN,KAAKA,aAAL,CAAqBgd,GAArB,CACA,CACD;CACA;CACA,KAAK/yB,UAAL,CAAgBiR,QAAhB,CAA2B8hB,GAA3B,CACA,KAAK/yB,UAAL,CAAgBwW,OAAhB,EAA2B,CAA3B,CACA,KAAKxW,UAAL,CAAgBd,gBAAhB,CAAiCzB,YAAjC,CAAgDs1B,GAAhD,CACA,KAAK/yB,UAAL,CAAgBsW,IAAhB,CAAuB,KAAvB,CACA,IAAI9vB,CAAJ,CACA,IAAIC,GAAG,CAAG,KAAK6K,MAAL,CAAY5K,MAAtB,CACA,GAAI,CAAC,KAAK2K,cAAV,CAA0B,CACzB,KAAK4vC,WAAL,CAAiBlO,GAAjB,EACA,CACD,IAAKvsC,CAAC,CAAGC,GAAG,CAAG,CAAf,CAAkBD,CAAC,EAAI,CAAvB,CAA0BA,CAAC,EAAI,CAA/B,CAAkC,CACjC,GAAI,KAAK6K,cAAL,EAAuB,KAAKm5B,QAAL,CAAchkC,CAAd,CAA3B,CAA6C,CAC5C,KAAKgkC,QAAL,CAAchkC,CAAd,EAAiB+W,YAAjB,CAA8Bw1B,GAAG,CAAG,KAAKzhC,MAAL,CAAY9K,CAAZ,EAAegO,EAAnD,EACA,CACD,CACD,GAAI,KAAKwL,UAAL,CAAgBsW,IAApB,CAA0B,CACzB,IAAK9vB,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B,GAAI,KAAK6K,cAAL,EAAuB,KAAKm5B,QAAL,CAAchkC,CAAd,CAA3B,CAA6C,CAC5C,KAAKgkC,QAAL,CAAchkC,CAAd,EAAiBsc,WAAjB,GACA,CACD,CACD,CACD,CAhCD,CAkCA44C,eAAe,CAAC90D,SAAhB,CAA0Bu1D,kBAA1B,CAA+C,SAAUtwD,OAAV,CAAmBusB,GAAnB,CAAwB,CACtE,IAAI/M,UAAU,CAAGxf,OAAO,CAACs0C,cAAR,EAAjB,CACA,GAAI,CAAC90B,UAAL,CAAiB,CAChB,OACA,CACD,IAAI7kB,CAAC,CAAG,CAAR,CACA,IAAI41D,WAAJ,CACA,MAAO51D,CAAC,CAAG4xB,GAAX,CAAgB,CACf,GAAI,KAAKoS,QAAL,CAAchkC,CAAd,GAAoB,KAAKgkC,QAAL,CAAchkC,CAAd,IAAqB,IAAzC,EAAiD,KAAKgkC,QAAL,CAAchkC,CAAd,EAAiB25C,cAAjB,EAArD,CAAwF,CACvFic,WAAW,CAAG,KAAK5xB,QAAL,CAAchkC,CAAd,EAAiB25C,cAAjB,EAAd,CACA,CACD35C,CAAC,EAAI,CAAL,CACA,CACD,GAAI41D,WAAJ,CAAiB,CAChB,KAAKrd,YAAL,CAAkBsd,YAAlB,CAA+BhxC,UAA/B,CAA2C+wC,WAA3C,EACA,CAFD,IAEO,CACN,KAAKrd,YAAL,CAAkB5kC,WAAlB,CAA8BkR,UAA9B,EACA,CACD,CAlBD,CAoBAqwC,eAAe,CAAC90D,SAAhB,CAA0Bqe,IAA1B,CAAiC,UAAY,CAC5C,KAAK85B,YAAL,CAAkBjzC,KAAlB,CAAwBI,OAAxB,CAAkC,MAAlC,CACA,CAFD,CAIAwvD,eAAe,CAAC90D,SAAhB,CAA0Bse,IAA1B,CAAiC,UAAY,CAC5C,KAAK65B,YAAL,CAAkBjzC,KAAlB,CAAwBI,OAAxB,CAAkC,OAAlC,CACA,CAFD,CAIA,SAASowD,YAAT,EAAwB,EAExBj2D,eAAe,CAAC,CAACi4C,WAAD,CAAcoE,gBAAd,CAAgC8E,gBAAhC,CAAkDrI,YAAlD,CAAgEwI,oBAAhE,CAAD,CAAwF2U,YAAxF,CAAf,CAEAA,YAAY,CAAC11D,SAAb,CAAuBihD,WAAvB,CAAqC,SAAUt3C,IAAV,CAAgByP,UAAhB,CAA4BhN,IAA5B,CAAkC,CACtE,KAAK8d,SAAL,GACA,KAAKkuB,YAAL,CAAkBzuC,IAAlB,CAAwByP,UAAxB,CAAoChN,IAApC,EACA,KAAK2vC,aAAL,CAAmBpyC,IAAnB,CAAyByP,UAAzB,CAAqChN,IAArC,EACA,KAAKs/B,cAAL,GACA,KAAKmV,aAAL,GACA,KAAKxB,mBAAL,GACA,KAAKC,uBAAL,GACA,KAAKmB,0BAAL,GACA,GAAI,KAAK92C,IAAL,CAAUiN,EAAV,EAAgB,CAACwC,UAAU,CAAC+hC,eAAhC,CAAiD,CAChD,KAAKF,aAAL,GACA,CACD,KAAK58B,IAAL,GACA,CAbD,CAeA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,KAEAq3C,YAAY,CAAC11D,SAAb,CAAuB2W,YAAvB,CAAsC,SAAUw1B,GAAV,CAAe,CACpD,KAAKzc,IAAL,CAAY,KAAZ,CACA,KAAKwc,sBAAL,CAA4BC,GAA5B,EACA,KAAKqM,iBAAL,CAAuBrM,GAAvB,CAA4B,KAAKR,SAAjC,EACA,GAAI,CAAC,KAAKA,SAAN,EAAmB,CAAC,KAAKhiC,IAAL,CAAUiN,EAAlC,CAAsC,CACrC,OACA,CAED,GAAI,CAAC,KAAKb,EAAL,CAAQ+jC,YAAb,CAA2B,CAC1B,IAAIG,YAAY,CAAG,KAAKlkC,EAAL,CAAQ1O,CAA3B,CACA,GAAI4yC,YAAY,GAAK,KAAKtwC,IAAL,CAAUgE,EAA/B,CAAmC,CAClCssC,YAAY,CAAG,KAAKtwC,IAAL,CAAUgE,EAAV,CAAe,CAA9B,CACA,CACD,KAAKwhB,aAAL,CAAqB8qB,YAArB,CACA,CAND,IAMO,CACN,KAAK9qB,aAAL,CAAqBgd,GAAG,CAAG,KAAKxiC,IAAL,CAAUkE,EAArC,CACA,CACD,IAAIjO,CAAJ,CACA,IAAIC,GAAG,CAAG,KAAK+jC,QAAL,CAAc9jC,MAAxB,CACA,GAAI,CAAC,KAAK2K,cAAV,CAA0B,CACzB,KAAK4vC,WAAL,CAAiB,KAAKlrB,aAAtB,EACA,CACD;CACA,IAAKvvB,CAAC,CAAGC,GAAG,CAAG,CAAf,CAAkBD,CAAC,EAAI,CAAvB,CAA0BA,CAAC,EAAI,CAA/B,CAAkC,CACjC,GAAI,KAAK6K,cAAL,EAAuB,KAAKm5B,QAAL,CAAchkC,CAAd,CAA3B,CAA6C,CAC5C,KAAKgkC,QAAL,CAAchkC,CAAd,EAAiB+W,YAAjB,CAA8B,KAAKwY,aAAL,CAAqB,KAAKzkB,MAAL,CAAY9K,CAAZ,EAAegO,EAAlE,EACA,GAAI,KAAKg2B,QAAL,CAAchkC,CAAd,EAAiB8vB,IAArB,CAA2B,CAC1B,KAAKA,IAAL,CAAY,IAAZ,CACA,CACD,CACD,CACD,CA/BD,CAiCAgmC,YAAY,CAAC11D,SAAb,CAAuBmhD,kBAAvB,CAA4C,UAAY,CACvD,IAAIvhD,CAAJ,CACA,IAAIC,GAAG,CAAG,KAAK6K,MAAL,CAAY5K,MAAtB,CACA,IAAKF,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B,GAAI,KAAK6K,cAAL,EAAuB,KAAKm5B,QAAL,CAAchkC,CAAd,CAA3B,CAA6C,CAC5C,KAAKgkC,QAAL,CAAchkC,CAAd,EAAiBsc,WAAjB,GACA,CACD,CACD,CARD,CAUAw5C,YAAY,CAAC11D,SAAb,CAAuB21D,WAAvB,CAAqC,SAAU/wB,KAAV,CAAiB,CACrD,KAAKhB,QAAL,CAAgBgB,KAAhB,CACA,CAFD,CAIA8wB,YAAY,CAAC11D,SAAb,CAAuB41D,WAAvB,CAAqC,UAAY,CAChD,YAAYhyB,QAAZ,CACA,CAFD,CAIA8xB,YAAY,CAAC11D,SAAb,CAAuB61D,eAAvB,CAAyC,UAAY,CACpD,IAAIj2D,CAAJ,CACA,IAAIC,GAAG,CAAG,KAAK6K,MAAL,CAAY5K,MAAtB,CACA,IAAKF,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B,GAAI,KAAKgkC,QAAL,CAAchkC,CAAd,CAAJ,CAAsB,CACrB,KAAKgkC,QAAL,CAAchkC,CAAd,EAAiBwU,OAAjB,GACA,CACD,CACD,CARD,CAUAshD,YAAY,CAAC11D,SAAb,CAAuBoU,OAAvB,CAAiC,UAAY,CAC5C,KAAKyhD,eAAL,GACA,KAAKrV,kBAAL,GACA,CAHD,CAKA,SAAS8T,cAAT,CAAwB3qD,IAAxB,CAA8ByP,UAA9B,CAA0ChN,IAA1C,CAAgD,CAC/C,KAAK1B,MAAL,CAAcf,IAAI,CAACe,MAAnB,CACA,KAAKorD,UAAL,CAAkB,IAAlB,CACA,KAAKrrD,cAAL,CAAsB,KAAtB,CACA,KAAKgxC,eAAL,CAAuB,EAAvB,CACA,KAAK7X,QAAL,CAAgB,KAAKl5B,MAAL,CAAc1H,gBAAgB,CAAC,KAAK0H,MAAL,CAAY5K,MAAb,CAA9B,CAAqD,EAArE,CACA,KAAKmhD,WAAL,CAAiBt3C,IAAjB,CAAuByP,UAAvB,CAAmChN,IAAnC,EACA,KAAK2J,EAAL,CAAUpM,IAAI,CAACoM,EAAL,CAAUkU,eAAe,CAAC2G,OAAhB,CAAwB,IAAxB,CAA8BjnB,IAAI,CAACoM,EAAnC,CAAuC,CAAvC,CAA0CqD,UAAU,CAAC9B,SAArD,CAAgE,IAAhE,CAAV,CAAkF,CAAEwiC,YAAY,CAAE,IAAhB,CAA5F,CACA,CAEDr6C,eAAe,CAAC,CAACq1D,eAAD,CAAkBY,YAAlB,CAAgCtW,cAAhC,CAAD,CAAkDkV,cAAlD,CAAf,CAEAA,cAAc,CAACt0D,SAAf,CAAyB06C,UAAzB,CAAsC,SAAU/wC,IAAV,CAAgB,CACrD,WAAW2qD,cAAJ,CAAmB3qD,IAAnB,CAAyB,KAAKyP,UAA9B,CAA0C,IAA1C,CAAP,CACA,CAFD,CAIA,SAAS28C,WAAT,CAAqBla,aAArB,CAAoCma,MAApC,CAA4C,CAC3C,KAAKna,aAAL,CAAqBA,aAArB,CACA,KAAKnxC,MAAL,CAAc,IAAd,CACA,KAAKykB,aAAL,CAAqB,CAAC,CAAtB,CACA,KAAK4lC,UAAL,CAAkB/rD,QAAQ,CAAC,KAAD,CAA1B,CACA,IAAIitD,SAAS,CAAG,EAAhB,CACA,GAAID,MAAM,EAAIA,MAAM,CAACE,KAArB,CAA4B,CAC3B,IAAIC,YAAY,CAAGntD,QAAQ,CAAC,OAAD,CAA3B,CACA,IAAIotD,OAAO,CAAGrvD,eAAe,EAA7B,CACAovD,YAAY,CAAC71C,YAAb,CAA0B,IAA1B,CAAgC81C,OAAhC,EACAD,YAAY,CAACptB,WAAb,CAA2BitB,MAAM,CAACE,KAAlC,CACA,KAAKnB,UAAL,CAAgBxhD,WAAhB,CAA4B4iD,YAA5B,EACAF,SAAS,EAAIG,OAAb,CACA,CACD,GAAIJ,MAAM,EAAIA,MAAM,CAACK,WAArB,CAAkC,CACjC,IAAIC,WAAW,CAAGttD,QAAQ,CAAC,MAAD,CAA1B,CACA,IAAIutD,MAAM,CAAGxvD,eAAe,EAA5B,CACAuvD,WAAW,CAACh2C,YAAZ,CAAyB,IAAzB,CAA+Bi2C,MAA/B,EACAD,WAAW,CAACvtB,WAAZ,CAA0BitB,MAAM,CAACK,WAAjC,CACA,KAAKtB,UAAL,CAAgBxhD,WAAhB,CAA4B+iD,WAA5B,EACAL,SAAS,EAAI,IAAMM,MAAnB,CACA,CACD,GAAIN,SAAJ,CAAe,CACd,KAAKlB,UAAL,CAAgBz0C,YAAhB,CAA6B,iBAA7B,CAAgD21C,SAAhD,EACA,CACD,IAAI58C,IAAI,CAAGrQ,QAAQ,CAAC,MAAD,CAAnB,CACA,KAAK+rD,UAAL,CAAgBxhD,WAAhB,CAA4B8F,IAA5B,EACA,IAAIqjC,WAAW,CAAG1zC,QAAQ,CAAC,GAAD,CAA1B,CACA,KAAK+rD,UAAL,CAAgBxhD,WAAhB,CAA4BmpC,WAA5B,EACA,KAAKvE,YAAL,CAAoBuE,WAApB,CACA,KAAKlQ,YAAL,CAAoB,CACnB6oB,mBAAmB,CAAGW,MAAM,EAAIA,MAAM,CAACX,mBAAlB,EAA0C,eAD5C,CAEnB7T,wBAAwB,CAAGwU,MAAM,EAAIA,MAAM,CAACxU,wBAAlB,EAA+C,gBAFtD,CAGnB0T,iBAAiB,CAAGc,MAAM,EAAIA,MAAM,CAACd,iBAAlB,EAAwC,SAHxC,CAInB/Z,eAAe,CAAG6a,MAAM,EAAIA,MAAM,CAAC7a,eAAlB,EAAsC,KAJpC,CAKnB1O,iBAAiB,CAAE,EAAGupB,MAAM,EAAIA,MAAM,CAACvpB,iBAAP,GAA6B,KAA1C,CALA,CAMnBwoB,WAAW,CAAGe,MAAM,EAAIA,MAAM,CAACf,WAAlB,EAAkC,KAN5B,CAOnBD,WAAW,CAAGgB,MAAM,EAAIA,MAAM,CAAChB,WAAlB,EAAkC,KAP5B,CAQnBG,SAAS,CAAGa,MAAM,EAAIA,MAAM,CAACb,SAAlB,EAAgC,EARxB,CASnBhpD,EAAE,CAAG6pD,MAAM,EAAIA,MAAM,CAAC7pD,EAAlB,EAAyB,EATV,CAUnBipD,SAAS,CAAEY,MAAM,EAAIA,MAAM,CAACZ,SAVT,CAWnBoB,UAAU,CAAE,CACXnlD,KAAK,CAAG2kD,MAAM,EAAIA,MAAM,CAACQ,UAAjB,EAA+BR,MAAM,CAACQ,UAAP,CAAkBnlD,KAAlD,EAA4D,MADxD,CAEXC,MAAM,CAAG0kD,MAAM,EAAIA,MAAM,CAACQ,UAAjB,EAA+BR,MAAM,CAACQ,UAAP,CAAkBllD,MAAlD,EAA6D,MAF1D,CAGX6R,CAAC,CAAG6yC,MAAM,EAAIA,MAAM,CAACQ,UAAjB,EAA+BR,MAAM,CAACQ,UAAP,CAAkBrzC,CAAlD,EAAwD,IAHhD,CAIXuI,CAAC,CAAGsqC,MAAM,EAAIA,MAAM,CAACQ,UAAjB,EAA+BR,MAAM,CAACQ,UAAP,CAAkB9qC,CAAlD,EAAwD,IAJhD,CAXO,CAiBnBra,KAAK,CAAG2kD,MAAM,EAAIA,MAAM,CAAC3kD,KAjBN,CAkBnBC,MAAM,CAAG0kD,MAAM,EAAIA,MAAM,CAAC1kD,MAlBP,CAApB,CAqBA,KAAK8H,UAAL,CAAkB,CACjBsW,IAAI,CAAE,KADW,CAEjBrF,QAAQ,CAAE,CAAC,CAFM,CAGjBhR,IAAI,CAAEA,IAHW,CAIjBmzB,YAAY,CAAE,KAAKA,YAJF,CAAlB,CAMA,KAAK5I,QAAL,CAAgB,EAAhB,CACA,KAAK6X,eAAL,CAAuB,EAAvB,CACA,KAAK6Z,SAAL,CAAiB,KAAjB,CACA,KAAK15C,YAAL,CAAoB,KAApB,CACA,CAEDnc,eAAe,CAAC,CAACq1D,eAAD,CAAD,CAAoBiB,WAApB,CAAf,CAEAA,WAAW,CAAC/1D,SAAZ,CAAsB06C,UAAtB,CAAmC,SAAU/wC,IAAV,CAAgB,CAClD,WAAW2qD,cAAJ,CAAmB3qD,IAAnB,CAAyB,KAAKyP,UAA9B,CAA0C,IAA1C,CAAP,CACA,CAFD,CAIA,SAASq9C,aAAT,EAAyB,CACxB,KAAKC,KAAL,CAAa,EAAb,CACA,KAAKC,OAAL,CAAe,CAAf,CACA,KAAKC,GAAL,CAAW,IAAI9/B,MAAJ,EAAX,CACA,KAAK+/B,EAAL,CAAU,CAAV,CACA,IAAIj3D,CAAJ,CACA,IAAIC,GAAG,CAAG,EAAV,CACA,KAAKi3D,OAAL,CAAer0D,gBAAgB,CAAC,SAAD,CAAY5C,GAAZ,CAA/B,CACA,IAAKD,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B,KAAK82D,KAAL,CAAW92D,CAAX,EAAgB6C,gBAAgB,CAAC,SAAD,CAAY,EAAZ,CAAhC,CACA,CACD,KAAK6hB,OAAL,CAAezkB,GAAf,CACA,CAED42D,aAAa,CAACz2D,SAAd,CAAwB+2D,SAAxB,CAAoC,UAAY,CAC/C,IAAIC,SAAS,CAAG,KAAK1yC,OAAL,CAAe,CAA/B,CACA,IAAI2yC,cAAc,CAAG,KAAKH,OAA1B,CACA,KAAKA,OAAL,CAAer0D,gBAAgB,CAAC,SAAD,CAAYu0D,SAAZ,CAA/B,CACA,KAAKF,OAAL,CAAaI,GAAb,CAAiBD,cAAjB,EACA,IAAIr3D,CAAC,CAAG,CAAR,CACA,IAAKA,CAAC,CAAG,KAAK0kB,OAAd,CAAuB1kB,CAAC,CAAGo3D,SAA3B,CAAsCp3D,CAAC,EAAI,CAA3C,CAA8C,CAC7C,KAAK82D,KAAL,CAAW92D,CAAX,EAAgB6C,gBAAgB,CAAC,SAAD,CAAY,EAAZ,CAAhC,CACA,CACD,KAAK6hB,OAAL,CAAe0yC,SAAf,CACA,CAVD,CAYAP,aAAa,CAACz2D,SAAd,CAAwBi0B,KAAxB,CAAgC,UAAY,CAC3C,KAAK0iC,OAAL,CAAe,CAAf,CACA,KAAKC,GAAL,CAAS3iC,KAAT,GACA,KAAK4iC,EAAL,CAAU,CAAV,CACA,CAJD,CAMA,SAASM,qBAAT,EAAiC,CAChC,KAAKC,SAAL,CAAiB,EAAjB,CACA,KAAKC,YAAL,CAAoB,EAApB,CACA,KAAKC,mBAAL,CAA2B,CAA3B,CACA,CAEDH,qBAAqB,CAACn3D,SAAtB,CAAkC,CACjCu3D,oBAAoB,CAAE,SAAUjb,UAAV,CAAsB,CAC3C,IAAI18C,CAAJ,CACA,IAAIC,GAAG,CAAGy8C,UAAU,CAACx8C,MAArB,CACA,IAAImX,GAAG,CAAG,GAAV,CACA,IAAKrX,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5BqX,GAAG,EAAIqlC,UAAU,CAAC18C,CAAD,CAAV,CAAc44B,SAAd,CAAwBvhB,GAAxB,CAA8B,GAArC,CACA,CACD,IAAIugD,QAAQ,CAAG,KAAKJ,SAAL,CAAengD,GAAf,CAAf,CACA,GAAI,CAACugD,QAAL,CAAe,CACdA,QAAQ,CAAG,CACVlb,UAAU,CAAE,GAAGn8B,MAAH,CAAUm8B,UAAV,CADF,CAEVhQ,cAAc,CAAE,IAAIxV,MAAJ,EAFN,CAGVpH,IAAI,CAAE,KAHI,CAAX,CAKA,KAAK0nC,SAAL,CAAengD,GAAf,EAAsBugD,QAAtB,CACA,KAAKH,YAAL,CAAkBl2D,IAAlB,CAAuBq2D,QAAvB,EACA,CACD,OAAOA,QAAP,CACA,CAnBgC,CAoBjCC,eAAe,CAAE,SAAUD,QAAV,CAAoBzZ,YAApB,CAAkC,CAClD,IAAIn+C,CAAC,CAAG,CAAR,CACA,IAAIC,GAAG,CAAG23D,QAAQ,CAAClb,UAAT,CAAoBx8C,MAA9B,CACA,IAAI4vB,IAAI,CAAGquB,YAAX,CACA,MAAOn+C,CAAC,CAAGC,GAAJ,EAAW,CAACk+C,YAAnB,CAAiC,CAChC,GAAIyZ,QAAQ,CAAClb,UAAT,CAAoB18C,CAApB,EAAuB44B,SAAvB,CAAiC4M,MAAjC,CAAwC1V,IAA5C,CAAkD,CACjDA,IAAI,CAAG,IAAP,CACA,MACA,CACD9vB,CAAC,EAAI,CAAL,CACA,CACD,GAAI8vB,IAAJ,CAAU,CACT,IAAI0H,KAAJ,CACAogC,QAAQ,CAAClrB,cAAT,CAAwBrY,KAAxB,GACA,IAAKr0B,CAAC,CAAGC,GAAG,CAAG,CAAf,CAAkBD,CAAC,EAAI,CAAvB,CAA0BA,CAAC,EAAI,CAA/B,CAAkC,CACjCw3B,KAAK,CAAGogC,QAAQ,CAAClb,UAAT,CAAoB18C,CAApB,EAAuB44B,SAAvB,CAAiC4M,MAAjC,CAAwC/9B,CAAxC,CAA0C+vB,KAAlD,CACAogC,QAAQ,CAAClrB,cAAT,CAAwB9T,SAAxB,CAAkCpB,KAAK,CAAC,CAAD,CAAvC,CAA4CA,KAAK,CAAC,CAAD,CAAjD,CAAsDA,KAAK,CAAC,CAAD,CAA3D,CAAgEA,KAAK,CAAC,CAAD,CAArE,CAA0EA,KAAK,CAAC,CAAD,CAA/E,CAAoFA,KAAK,CAAC,CAAD,CAAzF,CAA8FA,KAAK,CAAC,CAAD,CAAnG,CAAwGA,KAAK,CAAC,CAAD,CAA7G,CAAkHA,KAAK,CAAC,CAAD,CAAvH,CAA4HA,KAAK,CAAC,CAAD,CAAjI,CAAsIA,KAAK,CAAC,EAAD,CAA3I,CAAiJA,KAAK,CAAC,EAAD,CAAtJ,CAA4JA,KAAK,CAAC,EAAD,CAAjK,CAAuKA,KAAK,CAAC,EAAD,CAA5K,CAAkLA,KAAK,CAAC,EAAD,CAAvL,CAA6LA,KAAK,CAAC,EAAD,CAAlM,EACA,CACD,CACDogC,QAAQ,CAAC9nC,IAAT,CAAgBA,IAAhB,CACA,CAxCgC,CAyCjCgoC,gBAAgB,CAAE,SAAU3Z,YAAV,CAAwB,CACzC,IAAIn+C,CAAJ,CACA,IAAIC,GAAG,CAAG,KAAKw3D,YAAL,CAAkBv3D,MAA5B,CACA,IAAKF,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B,KAAK63D,eAAL,CAAqB,KAAKJ,YAAL,CAAkBz3D,CAAlB,CAArB,CAA2Cm+C,YAA3C,EACA,CACD,CA/CgC,CAgDjC4Z,SAAS,CAAE,UAAY,CACtB,KAAKL,mBAAL,EAA4B,CAA5B,CACA,OAAO,IAAM,KAAKA,mBAAlB,CACA,CAnDgC,CAAlC,CAsDA,SAASM,SAAT,EAAqB,EAGrBA,SAAS,CAAC53D,SAAV,CAAoBkc,WAApB,CAAkC,UAAY,EAA9C,CAEA,SAAS27C,aAAT,CAAuBluD,IAAvB,CAA6B1E,OAA7B,CAAsC,CACrC,KAAK0E,IAAL,CAAYA,IAAZ,CACA,KAAK1E,OAAL,CAAeA,OAAf,CACA,KAAKqG,eAAL,CAAuB,KAAK3B,IAAL,CAAU2B,eAAV,EAA6B,EAApD,CACA,KAAKiiC,QAAL,CAAgBvqC,gBAAgB,CAAC,KAAKsI,eAAL,CAAqBxL,MAAtB,CAAhC,CACA,IAAIF,CAAJ,CACA,IAAIC,GAAG,CAAG,KAAKyL,eAAL,CAAqBxL,MAA/B,CACA,IAAIg4D,QAAQ,CAAG,KAAf,CACA,IAAKl4D,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B,GAAI,KAAK0L,eAAL,CAAqB1L,CAArB,EAAwBi3C,IAAxB,GAAiC,GAArC,CAA0C,CACzCihB,QAAQ,CAAG,IAAX,CACA,CACD,KAAKvqB,QAAL,CAAc3tC,CAAd,EAAmBszB,oBAAoB,CAACwD,YAArB,CAAkC,KAAKzxB,OAAvC,CAAgD,KAAKqG,eAAL,CAAqB1L,CAArB,CAAhD,CAAyE,CAAzE,CAAnB,CACA,CACD,KAAKk4D,QAAL,CAAgBA,QAAhB,CACA,GAAIA,QAAJ,CAAc,CACb,KAAK7yD,OAAL,CAAa8mC,sBAAb,CAAoC,IAApC,EACA,CACD,CAED8rB,aAAa,CAAC73D,SAAd,CAAwBkc,WAAxB,CAAsC,UAAY,CACjD,GAAI,CAAC,KAAK47C,QAAV,CAAoB,CACnB,OACA,CACD,IAAIt/B,SAAS,CAAG,KAAKvzB,OAAL,CAAaqnC,cAAb,CAA4BhL,GAA5C,CACA,IAAI/vB,GAAG,CAAG,KAAKtM,OAAL,CAAa8yD,aAAvB,CACA,IAAIn4D,CAAJ,CACA,IAAIC,GAAG,CAAG,KAAKyL,eAAL,CAAqBxL,MAA/B,CACA,IAAIyL,EAAJ,CACA,IAAI+vB,GAAJ,CACA,IAAI3xB,IAAJ,CACA4H,GAAG,CAACymD,SAAJ,GACA,IAAKp4D,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B,GAAI,KAAK0L,eAAL,CAAqB1L,CAArB,EAAwBi3C,IAAxB,GAAiC,GAArC,CAA0C,CACzC,GAAI,KAAKvrC,eAAL,CAAqB1L,CAArB,EAAwBujC,GAA5B,CAAiC,CAChC5xB,GAAG,CAAC0mD,MAAJ,CAAW,CAAX,CAAc,CAAd,EACA1mD,GAAG,CAAC2mD,MAAJ,CAAW,KAAKjzD,OAAL,CAAamU,UAAb,CAAwBo6B,QAAxB,CAAiCxkB,CAA5C,CAA+C,CAA/C,EACAzd,GAAG,CAAC2mD,MAAJ,CAAW,KAAKjzD,OAAL,CAAamU,UAAb,CAAwBo6B,QAAxB,CAAiCxkB,CAA5C,CAA+C,KAAK/pB,OAAL,CAAamU,UAAb,CAAwBo6B,QAAxB,CAAiCrsC,CAAhF,EACAoK,GAAG,CAAC2mD,MAAJ,CAAW,CAAX,CAAc,KAAKjzD,OAAL,CAAamU,UAAb,CAAwBo6B,QAAxB,CAAiCrsC,CAA/C,EACAoK,GAAG,CAAC2mD,MAAJ,CAAW,CAAX,CAAc,CAAd,EACA,CACDvuD,IAAI,CAAG,KAAK4jC,QAAL,CAAc3tC,CAAd,EAAiByH,CAAxB,CACAkE,EAAE,CAAGitB,SAAS,CAAC4C,iBAAV,CAA4BzxB,IAAI,CAACtC,CAAL,CAAO,CAAP,EAAU,CAAV,CAA5B,CAA0CsC,IAAI,CAACtC,CAAL,CAAO,CAAP,EAAU,CAAV,CAA1C,CAAwD,CAAxD,CAAL,CACAkK,GAAG,CAAC0mD,MAAJ,CAAW1sD,EAAE,CAAC,CAAD,CAAb,CAAkBA,EAAE,CAAC,CAAD,CAApB,EACA,IAAIV,CAAJ,CACA,IAAIC,IAAI,CAAGnB,IAAI,CAAC2a,OAAhB,CACA,IAAKzZ,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,IAAhB,CAAsBD,CAAC,EAAI,CAA3B,CAA8B,CAC7BywB,GAAG,CAAG9C,SAAS,CAACgD,mBAAV,CAA8B7xB,IAAI,CAACgD,CAAL,CAAO9B,CAAC,CAAG,CAAX,CAA9B,CAA6ClB,IAAI,CAAC/J,CAAL,CAAOiL,CAAP,CAA7C,CAAwDlB,IAAI,CAACtC,CAAL,CAAOwD,CAAP,CAAxD,CAAN,CACA0G,GAAG,CAAC4mD,aAAJ,CAAkB78B,GAAG,CAAC,CAAD,CAArB,CAA0BA,GAAG,CAAC,CAAD,CAA7B,CAAkCA,GAAG,CAAC,CAAD,CAArC,CAA0CA,GAAG,CAAC,CAAD,CAA7C,CAAkDA,GAAG,CAAC,CAAD,CAArD,CAA0DA,GAAG,CAAC,CAAD,CAA7D,EACA,CACDA,GAAG,CAAG9C,SAAS,CAACgD,mBAAV,CAA8B7xB,IAAI,CAACgD,CAAL,CAAO9B,CAAC,CAAG,CAAX,CAA9B,CAA6ClB,IAAI,CAAC/J,CAAL,CAAO,CAAP,CAA7C,CAAwD+J,IAAI,CAACtC,CAAL,CAAO,CAAP,CAAxD,CAAN,CACAkK,GAAG,CAAC4mD,aAAJ,CAAkB78B,GAAG,CAAC,CAAD,CAArB,CAA0BA,GAAG,CAAC,CAAD,CAA7B,CAAkCA,GAAG,CAAC,CAAD,CAArC,CAA0CA,GAAG,CAAC,CAAD,CAA7C,CAAkDA,GAAG,CAAC,CAAD,CAArD,CAA0DA,GAAG,CAAC,CAAD,CAA7D,EACA,CACD,CACD,KAAKr2B,OAAL,CAAamU,UAAb,CAAwBtB,QAAxB,CAAiCsgD,IAAjC,CAAsC,IAAtC,EACA7mD,GAAG,CAAC8mD,IAAJ,GACA,CApCD,CAsCAR,aAAa,CAAC73D,SAAd,CAAwB89C,eAAxB,CAA0CrB,WAAW,CAACz8C,SAAZ,CAAsB89C,eAAhE,CAEA+Z,aAAa,CAAC73D,SAAd,CAAwBoU,OAAxB,CAAkC,UAAY,CAC7C,KAAKnP,OAAL,CAAe,IAAf,CACA,CAFD,CAIA,SAASqzD,aAAT,EAAyB,EAGzBA,aAAa,CAACt4D,SAAd,CAA0B,CACzBu4D,cAAc,CAAE,UAAY,EADH,CAEzBlZ,mBAAmB,CAAE,UAAY,EAFR,CAGzBC,uBAAuB,CAAE,UAAY,CACpC,KAAKyY,aAAL,CAAqB,KAAK3+C,UAAL,CAAgB2+C,aAArC,CACA,KAAKrX,wBAAL,CAAgC,IAAIkX,SAAJ,CAAc,IAAd,CAAhC,CACA,CANwB,CAOzB1W,aAAa,CAAE,UAAY,EAPF,CAQzBnJ,YAAY,CAAE,UAAY,CACzB,IAAI3+B,UAAU,CAAG,KAAKA,UAAtB,CACA,GAAIA,UAAU,CAACo/C,SAAX,GAAyB,KAAK7uD,IAAL,CAAUsuC,EAAvC,CAA2C,CAC1C7+B,UAAU,CAACo/C,SAAX,CAAuB,KAAK7uD,IAAL,CAAUsuC,EAAjC,CACA,IAAID,cAAc,CAAGrB,YAAY,CAAC,KAAKhtC,IAAL,CAAUsuC,EAAX,CAAjC,CACA7+B,UAAU,CAAC2+C,aAAX,CAAyBU,wBAAzB,CAAoDzgB,cAApD,CACA,CACD,CAfwB,CAgBzByI,0BAA0B,CAAE,UAAY,CACvC,KAAKpT,WAAL,CAAmB,IAAIwqB,aAAJ,CAAkB,KAAKluD,IAAvB,CAA6B,IAA7B,CAAnB,CACA,CAlBwB,CAmBzB+uD,WAAW,CAAE,UAAY,CACxB,GAAI,CAAC,KAAK9sB,MAAN,GAAiB,CAAC,KAAKD,SAAN,EAAmB,KAAKE,aAAzC,CAAJ,CAA6D,CAC5D,KAAKD,MAAL,CAAc,IAAd,CACA,CACD,CAvBwB,CAwBzB+sB,WAAW,CAAE,UAAY,CACxB,GAAI,KAAKhtB,SAAL,EAAkB,CAAC,KAAKE,aAA5B,CAA2C,CAC1C,KAAKD,MAAL,CAAc,KAAd,CACA,KAAK7b,aAAL,CAAqB,IAArB,CACA,KAAKsd,WAAL,CAAiBtd,aAAjB,CAAiC,IAAjC,CACA,CACD,CA9BwB,CA+BzB7T,WAAW,CAAE,UAAY,CACxB,GAAI,KAAK0vB,MAAL,EAAe,KAAKjiC,IAAL,CAAUw2C,EAA7B,CAAiC,CAChC,OACA,CACD,KAAKhE,eAAL,GACA,KAAKzP,gBAAL,GACA,KAAKqL,YAAL,GACA,IAAI6gB,cAAc,CAAG,KAAKjvD,IAAL,CAAU8B,EAAV,GAAiB,CAAtC,CACA,KAAK2N,UAAL,CAAgBtB,QAAhB,CAAyBsgD,IAAzB,CAA8BQ,cAA9B,EACA,KAAKx/C,UAAL,CAAgBtB,QAAhB,CAAyB+gD,YAAzB,CAAsC,KAAKvsB,cAAL,CAAoBhL,GAApB,CAAwBlK,KAA9D,EACA,KAAKhe,UAAL,CAAgBtB,QAAhB,CAAyBghD,UAAzB,CAAoC,KAAKxsB,cAAL,CAAoBC,KAApB,CAA0B5/B,CAA1B,CAA4BtF,CAAhE,EACA,KAAK85C,kBAAL,GACA,KAAK/nC,UAAL,CAAgBtB,QAAhB,CAAyBihD,OAAzB,CAAiCH,cAAjC,EACA,GAAI,KAAKvrB,WAAL,CAAiByqB,QAArB,CAA+B,CAC9B,KAAK1+C,UAAL,CAAgBtB,QAAhB,CAAyBihD,OAAzB,CAAiC,IAAjC,EACA,CACD,GAAI,KAAKhpC,aAAT,CAAwB,CACvB,KAAKA,aAAL,CAAqB,KAArB,CACA,CACD,CAlDwB,CAmDzB3b,OAAO,CAAE,UAAY,CACpB,KAAK2jD,aAAL,CAAqB,IAArB,CACA,KAAKpuD,IAAL,CAAY,IAAZ,CACA,KAAKyP,UAAL,CAAkB,IAAlB,CACA,KAAKi0B,WAAL,CAAiBj5B,OAAjB,GACA,CAxDwB,CAyDzBooC,OAAO,CAAE,IAAI1lB,MAAJ,EAzDgB,CAA1B,CA2DAwhC,aAAa,CAACt4D,SAAd,CAAwBqe,IAAxB,CAA+Bi6C,aAAa,CAACt4D,SAAd,CAAwB04D,WAAvD,CACAJ,aAAa,CAACt4D,SAAd,CAAwBse,IAAxB,CAA+Bg6C,aAAa,CAACt4D,SAAd,CAAwB24D,WAAvD,CAEA,SAASK,WAAT,CAAqB/zD,OAArB,CAA8B0E,IAA9B,CAAoCo8B,MAApC,CAA4CkzB,iBAA5C,CAA+D,CAC9D,KAAKC,YAAL,CAAoB,EAApB,CACA,KAAKx2B,EAAL,CAAU,CAAC,CAAD,CAAI,CAAJ,CAAO,CAAP,CAAU,CAAV,CAAa,CAAb,CAAgB,CAAhB,CAAV,CACA,IAAIj3B,EAAE,CAAG,CAAT,CACA,GAAI9B,IAAI,CAAC8B,EAAL,GAAY,IAAhB,CAAsB,CACrBA,EAAE,CAAG,CAAL,CACA,CAFD,QAEW9B,IAAI,CAAC8B,EAAL,GAAY,IAAhB,CAAsB,CAC5BA,EAAE,CAAG,CAAL,CACA,CAFM,QAEI9B,IAAI,CAAC8B,EAAL,GAAY,IAAhB,CAAsB,CAC5BA,EAAE,CAAG,CAAL,CACA,CACD,KAAK8gB,EAAL,CAAU2G,oBAAoB,CAACwD,YAArB,CAAkCzxB,OAAlC,CAA2C0E,IAA3C,CAAiD8B,EAAjD,CAAqDxG,OAArD,CAAV,CACA,IAAIrF,CAAJ,CACA,IAAIC,GAAG,CAAGkmC,MAAM,CAACjmC,MAAjB,CACA,IAAIq5D,WAAJ,CACA,IAAKv5D,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B,GAAI,CAACmmC,MAAM,CAACnmC,CAAD,CAAN,CAAU4O,MAAf,CAAuB,CACtB2qD,WAAW,CAAG,CACb7c,UAAU,CAAE2c,iBAAiB,CAAC1B,oBAAlB,CAAuCxxB,MAAM,CAACnmC,CAAD,CAAN,CAAU08C,UAAjD,CADC,CAEb8c,OAAO,CAAE,EAFI,CAAd,CAIA,KAAKF,YAAL,CAAkB/3D,IAAlB,CAAuBg4D,WAAvB,EACApzB,MAAM,CAACnmC,CAAD,CAAN,CAAUgkC,QAAV,CAAmBziC,IAAnB,CAAwBg4D,WAAxB,EACA,CACD,CACD,CAEDH,WAAW,CAACh5D,SAAZ,CAAsB6+B,aAAtB,CAAsCyjB,YAAY,CAACtiD,SAAb,CAAuB6+B,aAA7D,CAEA,SAASw6B,cAAT,CAAwB1vD,IAAxB,CAA8ByP,UAA9B,CAA0ChN,IAA1C,CAAgD,CAC/C,KAAKP,MAAL,CAAc,EAAd,CACA,KAAKgsC,UAAL,CAAkBluC,IAAI,CAACkC,MAAvB,CACA,KAAKw7C,UAAL,CAAkB,EAAlB,CACA,KAAKvP,SAAL,CAAiB,EAAjB,CACA,KAAKuN,YAAL,CAAoB,EAApB,CACA,KAAKzD,cAAL,CAAsB,EAAtB,CACA,KAAKM,iBAAL,CAAyB,EAAzB,CACA,KAAK+W,iBAAL,CAAyB,IAAI9B,qBAAJ,EAAzB,CACA,KAAKlW,WAAL,CAAiBt3C,IAAjB,CAAuByP,UAAvB,CAAmChN,IAAnC,EACA,CAED3M,eAAe,CAAC,CAACi4C,WAAD,CAAcoE,gBAAd,CAAgCwc,aAAhC,CAA+C5W,aAA/C,CAA8Dd,gBAA9D,CAAgFrI,YAAhF,CAA8F9M,iBAA9F,CAAD,CAAmH4tB,cAAnH,CAAf,CAEAA,cAAc,CAACr5D,SAAf,CAAyBihD,WAAzB,CAAuCF,oBAAoB,CAAC/gD,SAArB,CAA+BihD,WAAtE,CAEAoY,cAAc,CAACr5D,SAAf,CAAyBs5D,eAAzB,CAA2C,CAAEjqB,OAAO,CAAE,CAAX,CAAc4M,MAAM,CAAE,KAAtB,CAA3C,CAEAod,cAAc,CAACr5D,SAAf,CAAyBu5D,YAAzB,CAAwC,EAAxC,CAEAF,cAAc,CAACr5D,SAAf,CAAyBkhD,aAAzB,CAAyC,UAAY,CACpD,KAAKwG,YAAL,CAAkB,KAAK7P,UAAvB,CAAmC,KAAKC,SAAxC,CAAmD,KAAKuN,YAAxD,CAAsE,IAAtE,CAA4E,EAA5E,EACA,CAFD,CAIAgU,cAAc,CAACr5D,SAAf,CAAyB+nD,kBAAzB,CAA8C,SAAUp+C,IAAV,CAAgB2yC,UAAhB,CAA4B,CACzE,IAAIuK,SAAS,CAAG,CACfl9C,IAAI,CAAEA,IADS,CAEfrK,IAAI,CAAEqK,IAAI,CAAC8B,EAFI,CAGf+tD,aAAa,CAAE,KAAKP,iBAAL,CAAuB1B,oBAAvB,CAA4Cjb,UAA5C,CAHA,CAIfA,UAAU,CAAE,EAJG,CAKf1Y,QAAQ,CAAE,EALK,CAMfp1B,MAAM,CAAE7E,IAAI,CAACw2C,EAAL,GAAY,IANL,CAAhB,CAQA,IAAI6H,WAAW,CAAG,EAAlB,CACA,GAAIr+C,IAAI,CAAC8B,EAAL,GAAY,IAAZ,EAAoB9B,IAAI,CAAC8B,EAAL,GAAY,IAApC,CAA0C,CACzCu8C,WAAW,CAAC35C,CAAZ,CAAgB4b,eAAe,CAAC2G,OAAhB,CAAwB,IAAxB,CAA8BjnB,IAAI,CAAC0E,CAAnC,CAAsC,CAAtC,CAAyC,GAAzC,CAA8C,IAA9C,CAAhB,CACA,GAAI,CAAC25C,WAAW,CAAC35C,CAAZ,CAActD,CAAnB,CAAsB,CACrB87C,SAAS,CAAC4S,EAAV,CAAe,OAAS11D,OAAO,CAACikD,WAAW,CAAC35C,CAAZ,CAAchH,CAAd,CAAgB,CAAhB,CAAD,CAAhB,CAAuC,GAAvC,CAA6CtD,OAAO,CAACikD,WAAW,CAAC35C,CAAZ,CAAchH,CAAd,CAAgB,CAAhB,CAAD,CAApD,CAA2E,GAA3E,CAAiFtD,OAAO,CAACikD,WAAW,CAAC35C,CAAZ,CAAchH,CAAd,CAAgB,CAAhB,CAAD,CAAxF,CAA+G,GAA9H,CACA,CACD,CALD,QAKWsC,IAAI,CAAC8B,EAAL,GAAY,IAAZ,EAAoB9B,IAAI,CAAC8B,EAAL,GAAY,IAApC,CAA0C,CAChDu8C,WAAW,CAAC5gD,CAAZ,CAAgB6iB,eAAe,CAAC2G,OAAhB,CAAwB,IAAxB,CAA8BjnB,IAAI,CAACvC,CAAnC,CAAsC,CAAtC,CAAyC,IAAzC,CAA+C,IAA/C,CAAhB,CACA4gD,WAAW,CAACz9C,CAAZ,CAAgB0f,eAAe,CAAC2G,OAAhB,CAAwB,IAAxB,CAA8BjnB,IAAI,CAACY,CAAnC,CAAsC,CAAtC,CAAyC,IAAzC,CAA+C,IAA/C,CAAhB,CACAy9C,WAAW,CAAC7gD,CAAZ,CAAgB8iB,eAAe,CAAC2G,OAAhB,CAAwB,IAAxB,CAA8BjnB,IAAI,CAACxC,CAAL,EAAU,CAAE4D,CAAC,CAAE,CAAL,CAAxC,CAAkD,CAAlD,CAAqD,IAArD,CAA2D,IAA3D,CAAhB,CACAi9C,WAAW,CAACl6C,CAAZ,CAAgBmc,eAAe,CAAC2G,OAAhB,CAAwB,IAAxB,CAA8BjnB,IAAI,CAACmE,CAAL,EAAU,CAAE/C,CAAC,CAAE,CAAL,CAAxC,CAAkD,CAAlD,CAAqDlG,SAArD,CAAgE,IAAhE,CAAhB,CACAmjD,WAAW,CAACzgD,CAAZ,CAAgB,IAAIg8C,gBAAJ,CAAqB,IAArB,CAA2B55C,IAAI,CAACpC,CAAhC,CAAmC,IAAnC,CAAhB,CACA,CACDygD,WAAW,CAACr7C,CAAZ,CAAgBsd,eAAe,CAAC2G,OAAhB,CAAwB,IAAxB,CAA8BjnB,IAAI,CAACgD,CAAnC,CAAsC,CAAtC,CAAyC,IAAzC,CAA+C,IAA/C,CAAhB,CACA,GAAIhD,IAAI,CAAC8B,EAAL,GAAY,IAAZ,EAAoB9B,IAAI,CAAC8B,EAAL,GAAY,IAApC,CAA0C,CACzCo7C,SAAS,CAAChC,EAAV,CAAezC,WAAW,CAACz4C,IAAI,CAACk7C,EAAL,EAAW,CAAZ,CAA1B,CACAgC,SAAS,CAAC/B,EAAV,CAAezC,YAAY,CAAC14C,IAAI,CAACm7C,EAAL,EAAW,CAAZ,CAA3B,CACA,GAAIn7C,IAAI,CAACm7C,EAAL,EAAW,CAAf,CAAkB;CACjB+B,SAAS,CAAC9B,EAAV,CAAep7C,IAAI,CAACo7C,EAApB,CACA,CACDiD,WAAW,CAACh5B,CAAZ,CAAgB/E,eAAe,CAAC2G,OAAhB,CAAwB,IAAxB,CAA8BjnB,IAAI,CAACqlB,CAAnC,CAAsC,CAAtC,CAAyC,IAAzC,CAA+C,IAA/C,CAAhB,CACA,GAAI,CAACg5B,WAAW,CAACh5B,CAAZ,CAAcjkB,CAAnB,CAAsB,CACrB87C,SAAS,CAAC6S,EAAV,CAAe1R,WAAW,CAACh5B,CAAZ,CAAc3nB,CAA7B,CACA,CACD,GAAIsC,IAAI,CAAC7B,CAAT,CAAY,CACX,IAAIA,CAAC,CAAG,IAAIi7C,YAAJ,CAAiB,IAAjB,CAAuBp5C,IAAI,CAAC7B,CAA5B,CAA+B,QAA/B,CAAyC,IAAzC,CAAR,CACAkgD,WAAW,CAAClgD,CAAZ,CAAgBA,CAAhB,CACA,GAAI,CAACkgD,WAAW,CAAClgD,CAAZ,CAAciD,CAAnB,CAAsB,CACrB87C,SAAS,CAAC8S,EAAV,CAAe3R,WAAW,CAAClgD,CAAZ,CAAcm7C,SAA7B,CACA4D,SAAS,CAAC+S,EAAV,CAAe5R,WAAW,CAAClgD,CAAZ,CAAco7C,UAAd,CAAyB,CAAzB,CAAf,CACA,CACD,CACD,CAlBD,IAkBO,CACN2D,SAAS,CAACv/C,CAAV,CAAcqC,IAAI,CAACrC,CAAL,GAAW,CAAX,CAAe,SAAf,CAA2B,SAAzC,CACA,CACD,KAAK+/C,UAAL,CAAgBlmD,IAAhB,CAAqB0lD,SAArB,EACAmB,WAAW,CAAC9iD,KAAZ,CAAoB2hD,SAApB,CACA,OAAOmB,WAAP,CACA,CA/CD,CAiDAqR,cAAc,CAACr5D,SAAf,CAAyBmoD,kBAAzB,CAA8C,UAAY,CACzD,IAAIH,WAAW,CAAG,CACjBt7C,EAAE,CAAE,EADa,CAEjB24C,YAAY,CAAE,EAFG,CAAlB,CAIA,OAAO2C,WAAP,CACA,CAND,CAQAqR,cAAc,CAACr5D,SAAf,CAAyBooD,sBAAzB,CAAkD,SAAUz+C,IAAV,CAAgB,CACjE,IAAIq+C,WAAW,CAAG,CACjBxvB,SAAS,CAAE,CACV6W,OAAO,CAAE,CADC,CAEV4M,MAAM,CAAE,KAFE,CAGVhlC,GAAG,CAAE,KAAKgiD,iBAAL,CAAuBtB,SAAvB,EAHK,CAIVhqD,EAAE,CAAEsc,eAAe,CAAC2G,OAAhB,CAAwB,IAAxB,CAA8BjnB,IAAI,CAACgD,CAAnC,CAAsC,CAAtC,CAAyC,IAAzC,CAA+C,IAA/C,CAJM,CAKVy4B,MAAM,CAAEjE,wBAAwB,CAACqB,oBAAzB,CAA8C,IAA9C,CAAoD74B,IAApD,CAA0D,IAA1D,CALE,CADM,CAAlB,CASA,OAAOq+C,WAAP,CACA,CAXD,CAaAqR,cAAc,CAACr5D,SAAf,CAAyBsoD,kBAAzB,CAA8C,SAAU3+C,IAAV,CAAgB,CAC7D,IAAIq+C,WAAW,CAAG,IAAIgR,WAAJ,CAAgB,IAAhB,CAAsBrvD,IAAtB,CAA4B,KAAK09C,UAAjC,CAA6C,KAAK4R,iBAAlD,CAAlB,CAEA,KAAKptD,MAAL,CAAY1K,IAAZ,CAAiB6mD,WAAjB,EACA,KAAKrG,mBAAL,CAAyBqG,WAAzB,EACA,OAAOA,WAAP,CACA,CAND,CAQAqR,cAAc,CAACr5D,SAAf,CAAyB2kC,YAAzB,CAAwC,UAAY,CACnD,KAAK5U,aAAL,CAAqB,IAArB,CACA,IAAInwB,CAAJ,CACA,IAAIC,GAAG,CAAG,KAAKi4C,SAAL,CAAeh4C,MAAzB,CACA,IAAKF,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B,KAAKylD,YAAL,CAAkBzlD,CAAlB,EAAuB,KAAKk4C,SAAL,CAAel4C,CAAf,CAAvB,CACA,CACD,KAAK8nD,YAAL,CAAkB,KAAK7P,UAAvB,CAAmC,KAAKC,SAAxC,CAAmD,KAAKuN,YAAxD,CAAsE,IAAtE,CAA4E,EAA5E,EACAxlD,GAAG,CAAG,KAAKixB,iBAAL,CAAuBhxB,MAA7B,CACA,IAAKF,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B,KAAKkxB,iBAAL,CAAuBlxB,CAAvB,EAA0B2wB,QAA1B,GACA,CACD,KAAKwxB,eAAL,GACA,KAAKkX,iBAAL,CAAuBvB,gBAAvB,CAAwC,KAAK3nC,aAA7C,EACA,CAdD,CAgBAspC,cAAc,CAACr5D,SAAf,CAAyB65D,uBAAzB,CAAmD,SAAUrhC,SAAV,CAAqB,CACvE,IAAI54B,CAAJ,CACA,IAAIC,GAAG,CAAG,KAAKwnD,UAAL,CAAgBvnD,MAA1B,CACA,IAAKF,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B,GAAI,CAAC,KAAKynD,UAAL,CAAgBznD,CAAhB,EAAmB4O,MAAxB,CAAgC,CAC/B,KAAK64C,UAAL,CAAgBznD,CAAhB,EAAmB08C,UAAnB,CAA8Bn7C,IAA9B,CAAmCq3B,SAAnC,EACA,CACD,CACD,CARD,CAUA6gC,cAAc,CAACr5D,SAAf,CAAyB85D,4BAAzB,CAAwD,UAAY,CACnE,IAAIl6D,CAAJ,CACA,IAAIC,GAAG,CAAG,KAAKwnD,UAAL,CAAgBvnD,MAA1B,CACA,IAAKF,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B,GAAI,CAAC,KAAKynD,UAAL,CAAgBznD,CAAhB,EAAmB4O,MAAxB,CAAgC,CAC/B,KAAK64C,UAAL,CAAgBznD,CAAhB,EAAmB08C,UAAnB,CAA8Blc,GAA9B,GACA,CACD,CACD,CARD,CAUAi5B,cAAc,CAACr5D,SAAf,CAAyB+5D,WAAzB,CAAuC,SAAUh0B,MAAV,CAAkB,CACxD,IAAInmC,CAAJ,CACA,IAAIC,GAAG,CAAGkmC,MAAM,CAACjmC,MAAjB,CACA,IAAKF,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5BmmC,MAAM,CAACnmC,CAAD,CAAN,CAAU4O,MAAV,CAAmB,IAAnB,CACA,CACD,CAND,CAQA6qD,cAAc,CAACr5D,SAAf,CAAyB0nD,YAAzB,CAAwC,SAAU/kD,GAAV,CAAem1C,SAAf,CAA0BuN,YAA1B,CAAwC2U,YAAxC,CAAsD1d,UAAtD,CAAkE,CACzG,IAAI18C,CAAJ,CACA,IAAIC,GAAG,CAAG8C,GAAG,CAAC7C,MAAJ,CAAa,CAAvB,CACA,IAAI+K,CAAJ,CACA,IAAIC,IAAJ,CACA,IAAI69C,SAAS,CAAG,EAAhB,CACA,IAAIC,YAAY,CAAG,EAAnB,CACA,IAAIG,YAAJ,CACA,IAAID,QAAJ,CACA,IAAID,gBAAJ,CACA,IAAIoR,aAAa,CAAG,GAAG95C,MAAH,CAAUm8B,UAAV,CAApB,CACA,IAAK18C,CAAC,CAAGC,GAAT,CAAcD,CAAC,EAAI,CAAnB,CAAsBA,CAAC,EAAI,CAA3B,CAA8B,CAC7BmpD,YAAY,CAAG,KAAK9G,sBAAL,CAA4Bt/C,GAAG,CAAC/C,CAAD,CAA/B,CAAf,CACA,GAAI,CAACmpD,YAAL,CAAmB,CAClBpmD,GAAG,CAAC/C,CAAD,CAAH,CAAOs6D,aAAP,CAAuBF,YAAvB,CACA,CAFD,IAEO,CACNliB,SAAS,CAACl4C,CAAD,CAAT,CAAeylD,YAAY,CAAC0D,YAAY,CAAG,CAAhB,CAA3B,CACA,CACD,GAAIpmD,GAAG,CAAC/C,CAAD,CAAH,CAAO6L,EAAP,GAAc,IAAd,EAAsB9I,GAAG,CAAC/C,CAAD,CAAH,CAAO6L,EAAP,GAAc,IAApC,EAA4C9I,GAAG,CAAC/C,CAAD,CAAH,CAAO6L,EAAP,GAAc,IAA1D,EAAkE9I,GAAG,CAAC/C,CAAD,CAAH,CAAO6L,EAAP,GAAc,IAApF,CAA0F,CACzF,GAAI,CAACs9C,YAAL,CAAmB,CAClBjR,SAAS,CAACl4C,CAAD,CAAT,CAAe,KAAKmoD,kBAAL,CAAwBplD,GAAG,CAAC/C,CAAD,CAA3B,CAAgCq6D,aAAhC,CAAf,CACA,CAFD,IAEO,CACNniB,SAAS,CAACl4C,CAAD,CAAT,CAAasF,KAAb,CAAmBsJ,MAAnB,CAA4B,KAA5B,CACA,CAEDm6C,SAAS,CAACxnD,IAAV,CAAe22C,SAAS,CAACl4C,CAAD,CAAT,CAAasF,KAA5B,EACA,CARD,QAQWvC,GAAG,CAAC/C,CAAD,CAAH,CAAO6L,EAAP,GAAc,IAAlB,CAAwB,CAC9B,GAAI,CAACs9C,YAAL,CAAmB,CAClBjR,SAAS,CAACl4C,CAAD,CAAT,CAAe,KAAKuoD,kBAAL,CAAwBxlD,GAAG,CAAC/C,CAAD,CAA3B,CAAf,CACA,CAFD,IAEO,CACNkL,IAAI,CAAGgtC,SAAS,CAACl4C,CAAD,CAAT,CAAa8M,EAAb,CAAgB5M,MAAvB,CACA,IAAK+K,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,IAAhB,CAAsBD,CAAC,EAAI,CAA3B,CAA8B,CAC7BitC,SAAS,CAACl4C,CAAD,CAAT,CAAaylD,YAAb,CAA0Bx6C,CAA1B,EAA+BitC,SAAS,CAACl4C,CAAD,CAAT,CAAa8M,EAAb,CAAgB7B,CAAhB,CAA/B,CACA,CACD,CACD,KAAK68C,YAAL,CAAkB/kD,GAAG,CAAC/C,CAAD,CAAH,CAAO8M,EAAzB,CAA6BorC,SAAS,CAACl4C,CAAD,CAAT,CAAa8M,EAA1C,CAA8CorC,SAAS,CAACl4C,CAAD,CAAT,CAAaylD,YAA3D,CAAyE2U,YAAzE,CAAuFC,aAAvF,EACA,CAVM,QAUIt3D,GAAG,CAAC/C,CAAD,CAAH,CAAO6L,EAAP,GAAc,IAAlB,CAAwB,CAC9B,GAAI,CAACs9C,YAAL,CAAmB,CAClBF,gBAAgB,CAAG,KAAKT,sBAAL,CAA4BzlD,GAAG,CAAC/C,CAAD,CAA/B,CAAnB,CACAk4C,SAAS,CAACl4C,CAAD,CAAT,CAAeipD,gBAAf,CACA,CACDoR,aAAa,CAAC94D,IAAd,CAAmB22C,SAAS,CAACl4C,CAAD,CAA5B,EACA,KAAKi6D,uBAAL,CAA6B/hB,SAAS,CAACl4C,CAAD,CAAtC,EACA,CAPM,QAOI+C,GAAG,CAAC/C,CAAD,CAAH,CAAO6L,EAAP,GAAc,IAAd,EAAsB9I,GAAG,CAAC/C,CAAD,CAAH,CAAO6L,EAAP,GAAc,IAApC,EAA4C9I,GAAG,CAAC/C,CAAD,CAAH,CAAO6L,EAAP,GAAc,IAA1D,EAAkE9I,GAAG,CAAC/C,CAAD,CAAH,CAAO6L,EAAP,GAAc,IAApF,CAA0F,CAChG,GAAI,CAACs9C,YAAL,CAAmB,CAClBjR,SAAS,CAACl4C,CAAD,CAAT,CAAe,KAAK0oD,kBAAL,CAAwB3lD,GAAG,CAAC/C,CAAD,CAA3B,CAAf,CACA,CACD,CAJM,QAII+C,GAAG,CAAC/C,CAAD,CAAH,CAAO6L,EAAP,GAAc,IAAd,EAAsB9I,GAAG,CAAC/C,CAAD,CAAH,CAAO6L,EAAP,GAAc,IAApC,EAA4C9I,GAAG,CAAC/C,CAAD,CAAH,CAAO6L,EAAP,GAAc,IAA9D,CAAoE,CAC1E,GAAI,CAACs9C,YAAL,CAAmB,CAClBD,QAAQ,CAAGxqB,cAAc,CAACG,WAAf,CAA2B97B,GAAG,CAAC/C,CAAD,CAAH,CAAO6L,EAAlC,CAAX,CACAq9C,QAAQ,CAACprC,IAAT,CAAc,IAAd,CAAoB/a,GAAG,CAAC/C,CAAD,CAAvB,EACAk4C,SAAS,CAACl4C,CAAD,CAAT,CAAekpD,QAAf,CACA,KAAKlH,cAAL,CAAoBzgD,IAApB,CAAyB2nD,QAAzB,EACA,CALD,IAKO,CACNA,QAAQ,CAAGhR,SAAS,CAACl4C,CAAD,CAApB,CACAkpD,QAAQ,CAACt6C,MAAT,CAAkB,KAAlB,CACA,CACDo6C,YAAY,CAACznD,IAAb,CAAkB2nD,QAAlB,EACA,CAXM,QAWInmD,GAAG,CAAC/C,CAAD,CAAH,CAAO6L,EAAP,GAAc,IAAlB,CAAwB,CAC9B,GAAI,CAACs9C,YAAL,CAAmB,CAClBD,QAAQ,CAAGxqB,cAAc,CAACG,WAAf,CAA2B97B,GAAG,CAAC/C,CAAD,CAAH,CAAO6L,EAAlC,CAAX,CACAqsC,SAAS,CAACl4C,CAAD,CAAT,CAAekpD,QAAf,CACAA,QAAQ,CAACprC,IAAT,CAAc,IAAd,CAAoB/a,GAApB,CAAyB/C,CAAzB,CAA4Bk4C,SAA5B,EACA,KAAK8J,cAAL,CAAoBzgD,IAApB,CAAyB2nD,QAAzB,EACAkR,YAAY,CAAG,KAAf,CACA,CAND,IAMO,CACNlR,QAAQ,CAAGhR,SAAS,CAACl4C,CAAD,CAApB,CACAkpD,QAAQ,CAACt6C,MAAT,CAAkB,IAAlB,CACA,CACDo6C,YAAY,CAACznD,IAAb,CAAkB2nD,QAAlB,EACA,CACD,KAAK3G,mBAAL,CAAyBx/C,GAAG,CAAC/C,CAAD,CAA5B,CAAiCA,CAAC,CAAG,CAArC,EACA,CACD,KAAKk6D,4BAAL,GACA,KAAKC,WAAL,CAAiBpR,SAAjB,EACA9oD,GAAG,CAAG+oD,YAAY,CAAC9oD,MAAnB,CACA,IAAKF,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5BgpD,YAAY,CAAChpD,CAAD,CAAZ,CAAgB4O,MAAhB,CAAyB,IAAzB,CACA,CACD,CA/ED,CAiFA6qD,cAAc,CAACr5D,SAAf,CAAyBmhD,kBAAzB,CAA8C,UAAY,CACzD,KAAKmY,eAAL,CAAqBjqB,OAArB,CAA+B,CAA/B,CACA,KAAKiqB,eAAL,CAAqBrd,MAArB,CAA8B,KAA9B,CACA,KAAK8F,eAAL,GACA,KAAKkX,iBAAL,CAAuBvB,gBAAvB,CAAwC,KAAK3nC,aAA7C,EACA,KAAKi5B,WAAL,CAAiB,KAAKsQ,eAAtB,CAAuC,KAAKzhB,UAA5C,CAAwD,KAAKC,SAA7D,CAAwE,IAAxE,EACA,CAND,CAQAuhB,cAAc,CAACr5D,SAAf,CAAyBm6D,oBAAzB,CAAgD,SAAUC,eAAV,CAA2BC,cAA3B,CAA2C,CAC1F,GAAID,eAAe,CAACne,MAAhB,EAA0Boe,cAAc,CAAC1sD,EAAf,CAAkB+hB,IAA5C,EAAoD,KAAKK,aAA7D,CAA4E,CAC3EsqC,cAAc,CAAChrB,OAAf,CAAyB+qB,eAAe,CAAC/qB,OAAzC,CACAgrB,cAAc,CAAChrB,OAAf,EAA0BgrB,cAAc,CAAC1sD,EAAf,CAAkBtG,CAA5C,CACAgzD,cAAc,CAACpe,MAAf,CAAwB,IAAxB,CACA,CACD,CAND,CAQAod,cAAc,CAACr5D,SAAf,CAAyBs6D,SAAzB,CAAqC,UAAY,CAChD,IAAI16D,CAAJ,CACA,IAAIC,GAAG,CAAG,KAAKwnD,UAAL,CAAgBvnD,MAA1B,CACA,IAAI+K,CAAJ,CACA,IAAIC,IAAJ,CACA,IAAIC,CAAJ,CACA,IAAIC,IAAJ,CACA,IAAI45B,KAAJ,CACA,IAAI21B,KAAJ,CACA,IAAIziD,QAAQ,CAAG,KAAKsB,UAAL,CAAgBtB,QAA/B,CACA,IAAIvG,GAAG,CAAG,KAAK6H,UAAL,CAAgB2+C,aAA1B,CACA,IAAIz4D,IAAJ,CACA,IAAIk7D,YAAJ,CACA,IAAK56D,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B46D,YAAY,CAAG,KAAKnT,UAAL,CAAgBznD,CAAhB,CAAf,CACAN,IAAI,CAAGk7D,YAAY,CAACl7D,IAApB,CAEA;CACA;CACA;CACA;CACA;CACA,GAAI,EAAG,CAACA,IAAI,GAAK,IAAT,EAAiBA,IAAI,GAAK,IAA3B,GAAoCk7D,YAAY,CAACd,EAAb,GAAoB,CAAzD,EAA+D,CAACc,YAAY,CAAC7wD,IAAb,CAAkBuwD,aAAlF,EAAmGM,YAAY,CAACC,IAAb,GAAsB,CAAzH,EAA8H,KAAKrhD,UAAL,CAAgBshD,kBAAhB,GAAuC,CAAvK,CAAJ,CAA+K,CAC9K5iD,QAAQ,CAACsgD,IAAT,GACAxzB,KAAK,CAAG41B,YAAY,CAAC52B,QAArB,CACA,GAAItkC,IAAI,GAAK,IAAT,EAAiBA,IAAI,GAAK,IAA9B,CAAoC,CACnCiS,GAAG,CAACopD,WAAJ,CAAkBr7D,IAAI,GAAK,IAAT,CAAgBk7D,YAAY,CAACf,EAA7B,CAAkCe,YAAY,CAACI,GAAjE,CACArpD,GAAG,CAACy6C,SAAJ,CAAgBwO,YAAY,CAACd,EAA7B,CACAnoD,GAAG,CAACspD,OAAJ,CAAcL,YAAY,CAAC3V,EAA3B,CACAtzC,GAAG,CAACupD,QAAJ,CAAeN,YAAY,CAAC1V,EAA5B,CACAvzC,GAAG,CAACwpD,UAAJ,CAAiBP,YAAY,CAACzV,EAAb,EAAmB,CAApC,CACA,CAND,IAMO,CACNxzC,GAAG,CAACE,SAAJ,CAAgBnS,IAAI,GAAK,IAAT,CAAgBk7D,YAAY,CAACf,EAA7B,CAAkCe,YAAY,CAACI,GAA/D,CACA,CACD9iD,QAAQ,CAACghD,UAAT,CAAoB0B,YAAY,CAACC,IAAjC,EACA,GAAIn7D,IAAI,GAAK,IAAT,EAAiBA,IAAI,GAAK,IAA9B,CAAoC,CACnCiS,GAAG,CAACymD,SAAJ,GACA,CACDlgD,QAAQ,CAAC+gD,YAAT,CAAsB2B,YAAY,CAAChB,aAAb,CAA2BltB,cAA3B,CAA0ClV,KAAhE,EACAtsB,IAAI,CAAG85B,KAAK,CAAC9kC,MAAb,CACA,IAAK+K,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,IAAhB,CAAsBD,CAAC,EAAI,CAA3B,CAA8B,CAC7B,GAAIvL,IAAI,GAAK,IAAT,EAAiBA,IAAI,GAAK,IAA9B,CAAoC,CACnCiS,GAAG,CAACymD,SAAJ,GACA,GAAIwC,YAAY,CAACb,EAAjB,CAAqB,CACpBpoD,GAAG,CAACypD,WAAJ,CAAgBR,YAAY,CAACb,EAA7B,EACApoD,GAAG,CAAC0pD,cAAJ,CAAqBT,YAAY,CAACZ,EAAlC,CACA,CACD,CACDW,KAAK,CAAG31B,KAAK,CAAC/5B,CAAD,CAAL,CAASuuD,OAAjB,CACApuD,IAAI,CAAGuvD,KAAK,CAACz6D,MAAb,CAEA,IAAKiL,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,IAAhB,CAAsBD,CAAC,EAAI,CAA3B,CAA8B,CAC7B,GAAIwvD,KAAK,CAACxvD,CAAD,CAAL,CAASnD,CAAT,GAAe,GAAnB,CAAwB,CACvB2J,GAAG,CAAC0mD,MAAJ,CAAWsC,KAAK,CAACxvD,CAAD,CAAL,CAASrD,CAAT,CAAW,CAAX,CAAX,CAA0B6yD,KAAK,CAACxvD,CAAD,CAAL,CAASrD,CAAT,CAAW,CAAX,CAA1B,EACA,CAFD,QAEW6yD,KAAK,CAACxvD,CAAD,CAAL,CAASnD,CAAT,GAAe,GAAnB,CAAwB,CAC9B2J,GAAG,CAAC4mD,aAAJ,CAAkBoC,KAAK,CAACxvD,CAAD,CAAL,CAASuwB,GAAT,CAAa,CAAb,CAAlB,CAAmCi/B,KAAK,CAACxvD,CAAD,CAAL,CAASuwB,GAAT,CAAa,CAAb,CAAnC,CAAoDi/B,KAAK,CAACxvD,CAAD,CAAL,CAASuwB,GAAT,CAAa,CAAb,CAApD,CAAqEi/B,KAAK,CAACxvD,CAAD,CAAL,CAASuwB,GAAT,CAAa,CAAb,CAArE,CAAsFi/B,KAAK,CAACxvD,CAAD,CAAL,CAASuwB,GAAT,CAAa,CAAb,CAAtF,CAAuGi/B,KAAK,CAACxvD,CAAD,CAAL,CAASuwB,GAAT,CAAa,CAAb,CAAvG,EACA,CAFM,IAEA,CACN/pB,GAAG,CAAC2pD,SAAJ,GACA,CACD,CACD,GAAI57D,IAAI,GAAK,IAAT,EAAiBA,IAAI,GAAK,IAA9B,CAAoC,CACnCiS,GAAG,CAAC4pD,MAAJ,GACA,GAAIX,YAAY,CAACb,EAAjB,CAAqB,CACpBpoD,GAAG,CAACypD,WAAJ,CAAgB,KAAKzB,YAArB,EACA,CACD,CACD,CACD,GAAIj6D,IAAI,GAAK,IAAT,EAAiBA,IAAI,GAAK,IAA9B,CAAoC,CACnCiS,GAAG,CAAC6pD,IAAJ,CAASZ,YAAY,CAAClzD,CAAtB,EACA,CACDwQ,QAAQ,CAACihD,OAAT,GACA,CACD,CACD,CAzED,CA2EAM,cAAc,CAACr5D,SAAf,CAAyBgpD,WAAzB,CAAuC,SAAUoR,eAAV,CAA2Bj2B,KAA3B,CAAkCx6B,IAAlC,CAAwC0xD,MAAxC,CAAgD,CACtF,IAAIz7D,CAAJ,CACA,IAAIC,GAAG,CAAGskC,KAAK,CAACrkC,MAAN,CAAe,CAAzB,CACA,IAAIu6D,cAAJ,CACAA,cAAc,CAAGD,eAAjB,CACA,IAAKx6D,CAAC,CAAGC,GAAT,CAAcD,CAAC,EAAI,CAAnB,CAAsBA,CAAC,EAAI,CAA3B,CAA8B,CAC7B,GAAIukC,KAAK,CAACvkC,CAAD,CAAL,CAAS6L,EAAT,GAAgB,IAApB,CAA0B,CACzB4uD,cAAc,CAAG1wD,IAAI,CAAC/J,CAAD,CAAJ,CAAQ44B,SAAzB,CACA,KAAK2hC,oBAAL,CAA0BC,eAA1B,CAA2CC,cAA3C,EACA,CAHD,QAGWl2B,KAAK,CAACvkC,CAAD,CAAL,CAAS6L,EAAT,GAAgB,IAAhB,EAAwB04B,KAAK,CAACvkC,CAAD,CAAL,CAAS6L,EAAT,GAAgB,IAAxC,EAAgD04B,KAAK,CAACvkC,CAAD,CAAL,CAAS6L,EAAT,GAAgB,IAAhE,EAAwE04B,KAAK,CAACvkC,CAAD,CAAL,CAAS6L,EAAT,GAAgB,IAA5F,CAAkG,CACxG,KAAK26C,UAAL,CAAgBjiB,KAAK,CAACvkC,CAAD,CAArB,CAA0B+J,IAAI,CAAC/J,CAAD,CAA9B,EACA,CAFM,QAEIukC,KAAK,CAACvkC,CAAD,CAAL,CAAS6L,EAAT,GAAgB,IAApB,CAA0B,CAChC,KAAKu6C,UAAL,CAAgB7hB,KAAK,CAACvkC,CAAD,CAArB,CAA0B+J,IAAI,CAAC/J,CAAD,CAA9B,CAAmCy6D,cAAnC,EACA,CAFM,QAEIl2B,KAAK,CAACvkC,CAAD,CAAL,CAAS6L,EAAT,GAAgB,IAApB,CAA0B,CAChC,KAAK06C,YAAL,CAAkBhiB,KAAK,CAACvkC,CAAD,CAAvB,CAA4B+J,IAAI,CAAC/J,CAAD,CAAhC,CAAqCy6D,cAArC,EACA,CAFM,QAEIl2B,KAAK,CAACvkC,CAAD,CAAL,CAAS6L,EAAT,GAAgB,IAAhB,EAAwB04B,KAAK,CAACvkC,CAAD,CAAL,CAAS6L,EAAT,GAAgB,IAA5C,CAAkD,CACxD,KAAK6vD,kBAAL,CAAwBn3B,KAAK,CAACvkC,CAAD,CAA7B,CAAkC+J,IAAI,CAAC/J,CAAD,CAAtC,CAA2Cy6D,cAA3C,EACA,CAFM,QAEIl2B,KAAK,CAACvkC,CAAD,CAAL,CAAS6L,EAAT,GAAgB,IAApB,CAA0B,CAChC,KAAKu9C,WAAL,CAAiBqR,cAAjB,CAAiCl2B,KAAK,CAACvkC,CAAD,CAAL,CAAS8M,EAA1C,CAA8C/C,IAAI,CAAC/J,CAAD,CAAJ,CAAQ8M,EAAtD,EACA,CAFM,QAEIy3B,KAAK,CAACvkC,CAAD,CAAL,CAAS6L,EAAT,GAAgB,IAApB,CAA0B,CAGjC,CACD,GAAI4vD,MAAJ,CAAY,CACX,KAAKf,SAAL,GACA,CACD,CA1BD,CA4BAjB,cAAc,CAACr5D,SAAf,CAAyBu7D,iBAAzB,CAA6C,SAAUpC,WAAV,CAAuB1mC,KAAvB,CAA8B,CAC1E,GAAI,KAAK1C,aAAL,EAAsB0C,KAAK,CAAC/C,IAA5B,EAAoCypC,WAAW,CAAC7c,UAAZ,CAAuB5sB,IAA/D,CAAqE,CACpE,IAAI8rC,UAAU,CAAGrC,WAAW,CAACC,OAA7B,CACA,IAAIzlC,KAAK,CAAGlB,KAAK,CAACkB,KAAlB,CACA,IAAI/zB,CAAJ,CACA,IAAIC,GAAJ,CACA,IAAIgL,CAAJ,CACA,IAAIC,IAAI,CAAG6oB,KAAK,CAACrP,OAAjB,CACAk3C,UAAU,CAAC17D,MAAX,CAAoB,CAApB,CACA,IAAI27D,iBAAiB,CAAGtC,WAAW,CAAC7c,UAAZ,CAAuBhQ,cAA/C,CACA,IAAKzhC,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,IAAhB,CAAsBD,CAAC,EAAI,CAA3B,CAA8B,CAC7B,IAAIozC,SAAS,CAAGtqB,KAAK,CAAC9nB,MAAN,CAAahB,CAAb,CAAhB,CACA,GAAIozC,SAAS,EAAIA,SAAS,CAAC52C,CAA3B,CAA8B,CAC7BxH,GAAG,CAAGo+C,SAAS,CAAC35B,OAAhB,CACA,IAAK1kB,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B,GAAIA,CAAC,GAAK,CAAV,CAAa,CACZ47D,UAAU,CAACr6D,IAAX,CAAgB,CACfyG,CAAC,CAAE,GADY,CAEfF,CAAC,CAAE+zD,iBAAiB,CAACrgC,iBAAlB,CAAoC6iB,SAAS,CAAC52C,CAAV,CAAY,CAAZ,EAAe,CAAf,CAApC,CAAuD42C,SAAS,CAAC52C,CAAV,CAAY,CAAZ,EAAe,CAAf,CAAvD,CAA0E,CAA1E,CAFY,CAAhB,EAIA,CACDm0D,UAAU,CAACr6D,IAAX,CAAgB,CACfyG,CAAC,CAAE,GADY,CAEf0zB,GAAG,CAAEmgC,iBAAiB,CAACjgC,mBAAlB,CAAsCyiB,SAAS,CAACtxC,CAAV,CAAY/M,CAAC,CAAG,CAAhB,CAAtC,CAA0Dq+C,SAAS,CAACr+C,CAAV,CAAYA,CAAZ,CAA1D,CAA0Eq+C,SAAS,CAAC52C,CAAV,CAAYzH,CAAZ,CAA1E,CAFU,CAAhB,EAIA,CACD,GAAIC,GAAG,GAAK,CAAZ,CAAe,CACd27D,UAAU,CAACr6D,IAAX,CAAgB,CACfyG,CAAC,CAAE,GADY,CAEfF,CAAC,CAAE+zD,iBAAiB,CAACrgC,iBAAlB,CAAoC6iB,SAAS,CAAC52C,CAAV,CAAY,CAAZ,EAAe,CAAf,CAApC,CAAuD42C,SAAS,CAAC52C,CAAV,CAAY,CAAZ,EAAe,CAAf,CAAvD,CAA0E,CAA1E,CAFY,CAAhB,EAIA,CACD,GAAI42C,SAAS,CAAC5vC,CAAV,EAAexO,GAAnB,CAAwB,CACvB27D,UAAU,CAACr6D,IAAX,CAAgB,CACfyG,CAAC,CAAE,GADY,CAEf0zB,GAAG,CAAEmgC,iBAAiB,CAACjgC,mBAAlB,CAAsCyiB,SAAS,CAACtxC,CAAV,CAAY/M,CAAC,CAAG,CAAhB,CAAtC,CAA0Dq+C,SAAS,CAACr+C,CAAV,CAAY,CAAZ,CAA1D,CAA0Eq+C,SAAS,CAAC52C,CAAV,CAAY,CAAZ,CAA1E,CAFU,CAAhB,EAIAm0D,UAAU,CAACr6D,IAAX,CAAgB,CACfyG,CAAC,CAAE,GADY,CAAhB,EAGA,CACD,CACD,CACDuxD,WAAW,CAACC,OAAZ,CAAsBoC,UAAtB,CACA,CACD,CA7CD,CA+CAnC,cAAc,CAACr5D,SAAf,CAAyBomD,UAAzB,CAAsC,SAAUl4C,QAAV,CAAoBs4C,QAApB,CAA8B,CACnE,GAAIt4C,QAAQ,CAACiyC,EAAT,GAAgB,IAAhB,EAAwBjyC,QAAQ,CAACgsD,aAArC,CAAoD,CACnD,IAAIt6D,CAAJ,CACA,IAAIC,GAAG,CAAG2mD,QAAQ,CAAC0S,YAAT,CAAsBp5D,MAAhC,CACA,IAAKF,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B,KAAK27D,iBAAL,CAAuB/U,QAAQ,CAAC0S,YAAT,CAAsBt5D,CAAtB,CAAvB,CAAiD4mD,QAAQ,CAACj6B,EAA1D,EACA,CACD,CACD,CARD,CAUA8sC,cAAc,CAACr5D,SAAf,CAAyBgmD,UAAzB,CAAsC,SAAUO,SAAV,CAAqBC,QAArB,CAA+B6T,cAA/B,CAA+C,CACpF,IAAIxT,SAAS,CAAGL,QAAQ,CAACthD,KAAzB,CAEA,GAAIshD,QAAQ,CAACn4C,CAAT,CAAWqhB,IAAX,EAAmB,KAAKK,aAA5B,CAA2C,CAC1C82B,SAAS,CAAC4S,EAAV,CAAe,OACZ11D,OAAO,CAACyiD,QAAQ,CAACn4C,CAAT,CAAWhH,CAAX,CAAa,CAAb,CAAD,CADK,CACe,GADf,CAEZtD,OAAO,CAACyiD,QAAQ,CAACn4C,CAAT,CAAWhH,CAAX,CAAa,CAAb,CAAD,CAFK,CAEe,GAFf,CAGZtD,OAAO,CAACyiD,QAAQ,CAACn4C,CAAT,CAAWhH,CAAX,CAAa,CAAb,CAAD,CAHK,CAGe,GAH9B,CAIA,CACD,GAAIm/C,QAAQ,CAAC75C,CAAT,CAAW+iB,IAAX,EAAmB2qC,cAAc,CAACpe,MAAlC,EAA4C,KAAKlsB,aAArD,CAAoE,CACnE82B,SAAS,CAAC4T,IAAV,CAAiBjU,QAAQ,CAAC75C,CAAT,CAAWtF,CAAX,CAAegzD,cAAc,CAAChrB,OAA/C,CACA,CACD,CAZD,CAcAgqB,cAAc,CAACr5D,SAAf,CAAyBs7D,kBAAzB,CAA8C,SAAU/U,SAAV,CAAqBC,QAArB,CAA+B6T,cAA/B,CAA+C,CAC5F,IAAIxT,SAAS,CAAGL,QAAQ,CAACthD,KAAzB,CACA,IAAI01D,GAAJ,CACA,GAAI,CAAC/T,SAAS,CAAC+T,GAAX,EAAkBpU,QAAQ,CAACj/C,CAAT,CAAWmoB,IAA7B,EAAqC82B,QAAQ,CAACp/C,CAAT,CAAWsoB,IAAhD,EAAwD82B,QAAQ,CAACj8C,CAAT,CAAWmlB,IAAnE,EAA4E62B,SAAS,CAAC3+C,CAAV,GAAgB,CAAhB,GAAsB4+C,QAAQ,CAACr/C,CAAT,CAAWuoB,IAAX,EAAmB82B,QAAQ,CAAC14C,CAAT,CAAW4hB,IAApD,CAAhF,CAA4I,CAC3I,IAAIne,GAAG,CAAG,KAAK6H,UAAL,CAAgB2+C,aAA1B,CACA,IAAI1xC,GAAG,CAAGmgC,QAAQ,CAACp/C,CAAT,CAAWC,CAArB,CACA,IAAIif,GAAG,CAAGkgC,QAAQ,CAACj8C,CAAT,CAAWlD,CAArB,CACA,GAAIk/C,SAAS,CAAC3+C,CAAV,GAAgB,CAApB,CAAuB,CACtBgzD,GAAG,CAAGrpD,GAAG,CAACmqD,oBAAJ,CAAyBr1C,GAAG,CAAC,CAAD,CAA5B,CAAiCA,GAAG,CAAC,CAAD,CAApC,CAAyCC,GAAG,CAAC,CAAD,CAA5C,CAAiDA,GAAG,CAAC,CAAD,CAApD,CAAN,CACA,CAFD,IAEO,CACN,IAAIyP,GAAG,CAAGpyB,IAAI,CAACG,IAAL,CAAUH,IAAI,CAACC,GAAL,CAASyiB,GAAG,CAAC,CAAD,CAAH,CAASC,GAAG,CAAC,CAAD,CAArB,CAA0B,CAA1B,EAA+B3iB,IAAI,CAACC,GAAL,CAASyiB,GAAG,CAAC,CAAD,CAAH,CAASC,GAAG,CAAC,CAAD,CAArB,CAA0B,CAA1B,CAAzC,CAAV,CACA,IAAI6gC,GAAG,CAAGxjD,IAAI,CAACyqB,KAAL,CAAW9H,GAAG,CAAC,CAAD,CAAH,CAASD,GAAG,CAAC,CAAD,CAAvB,CAA4BC,GAAG,CAAC,CAAD,CAAH,CAASD,GAAG,CAAC,CAAD,CAAxC,CAAV,CAEA,IAAIgC,OAAO,CAAGm+B,QAAQ,CAACr/C,CAAT,CAAWE,CAAzB,CACA,GAAIghB,OAAO,EAAI,CAAf,CAAkB,CACjBA,OAAO,CAAG,IAAV,CACA,CAFD,QAEWA,OAAO,EAAI,CAAC,CAAhB,CAAmB,CACzBA,OAAO,CAAG,CAAC,IAAX,CACA,CACD,IAAIxE,IAAI,CAAGkS,GAAG,CAAG1N,OAAjB,CACA,IAAIlF,CAAC,CAAGxf,IAAI,CAAC+qB,GAAL,CAASy4B,GAAG,CAAGX,QAAQ,CAAC14C,CAAT,CAAWzG,CAA1B,EAA+Bwc,IAA/B,CAAsCwC,GAAG,CAAC,CAAD,CAAjD,CACA,IAAIqF,CAAC,CAAG/nB,IAAI,CAACkqB,GAAL,CAASs5B,GAAG,CAAGX,QAAQ,CAAC14C,CAAT,CAAWzG,CAA1B,EAA+Bwc,IAA/B,CAAsCwC,GAAG,CAAC,CAAD,CAAjD,CACAu0C,GAAG,CAAGrpD,GAAG,CAACoqD,oBAAJ,CAAyBx4C,CAAzB,CAA4BuI,CAA5B,CAA+B,CAA/B,CAAkCrF,GAAG,CAAC,CAAD,CAArC,CAA0CA,GAAG,CAAC,CAAD,CAA7C,CAAkD0P,GAAlD,CAAN,CACA,CAED,IAAIn2B,CAAJ,CACA,IAAIC,GAAG,CAAG0mD,SAAS,CAACh/C,CAAV,CAAYG,CAAtB,CACA,IAAIu/C,OAAO,CAAGT,QAAQ,CAACj/C,CAAT,CAAW8G,CAAzB,CACA,IAAIghC,OAAO,CAAG,CAAd,CAEA,IAAKzvC,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B,GAAI4mD,QAAQ,CAACj/C,CAAT,CAAWs8C,WAAX,EAA0B2C,QAAQ,CAACj/C,CAAT,CAAWo8C,YAAzC,CAAuD,CACtDtU,OAAO,CAAGmX,QAAQ,CAACj/C,CAAT,CAAWoF,CAAX,CAAa/M,CAAC,CAAG,CAAJ,CAAQ,CAArB,CAAV,CACA,CACDg7D,GAAG,CAACgB,YAAJ,CAAiB3U,OAAO,CAACrnD,CAAC,CAAG,CAAL,CAAP,CAAiB,GAAlC,CAAuC,QAAUqnD,OAAO,CAACrnD,CAAC,CAAG,CAAJ,CAAQ,CAAT,CAAjB,CAA+B,GAA/B,CAAqCqnD,OAAO,CAACrnD,CAAC,CAAG,CAAJ,CAAQ,CAAT,CAA5C,CAA0D,GAA1D,CAAgEqnD,OAAO,CAACrnD,CAAC,CAAG,CAAJ,CAAQ,CAAT,CAAvE,CAAqF,GAArF,CAA2FyvC,OAA3F,CAAqG,GAA5I,EACA,CACDwX,SAAS,CAAC+T,GAAV,CAAgBA,GAAhB,CACA,CACD/T,SAAS,CAAC4T,IAAV,CAAiBjU,QAAQ,CAAC75C,CAAT,CAAWtF,CAAX,CAAegzD,cAAc,CAAChrB,OAA/C,CACA,CAvCD,CAyCAgqB,cAAc,CAACr5D,SAAf,CAAyBmmD,YAAzB,CAAwC,SAAUI,SAAV,CAAqBC,QAArB,CAA+B6T,cAA/B,CAA+C,CACtF,IAAIxT,SAAS,CAAGL,QAAQ,CAACthD,KAAzB,CACA,IAAI4C,CAAC,CAAG0+C,QAAQ,CAAC1+C,CAAjB,CACA,GAAIA,CAAC,GAAKA,CAAC,CAAC4nB,IAAF,EAAU,KAAKK,aAApB,CAAL,CAAyC,CACxC82B,SAAS,CAAC8S,EAAV,CAAe7xD,CAAC,CAACm7C,SAAjB,CACA4D,SAAS,CAAC+S,EAAV,CAAe9xD,CAAC,CAACo7C,UAAF,CAAa,CAAb,CAAf,CACA,CACD,GAAIsD,QAAQ,CAACn4C,CAAT,CAAWqhB,IAAX,EAAmB,KAAKK,aAA5B,CAA2C,CAC1C82B,SAAS,CAAC4S,EAAV,CAAe,OAAS11D,OAAO,CAACyiD,QAAQ,CAACn4C,CAAT,CAAWhH,CAAX,CAAa,CAAb,CAAD,CAAhB,CAAoC,GAApC,CAA0CtD,OAAO,CAACyiD,QAAQ,CAACn4C,CAAT,CAAWhH,CAAX,CAAa,CAAb,CAAD,CAAjD,CAAqE,GAArE,CAA2EtD,OAAO,CAACyiD,QAAQ,CAACn4C,CAAT,CAAWhH,CAAX,CAAa,CAAb,CAAD,CAAlF,CAAsG,GAArH,CACA,CACD,GAAIm/C,QAAQ,CAAC75C,CAAT,CAAW+iB,IAAX,EAAmB2qC,cAAc,CAACpe,MAAlC,EAA4C,KAAKlsB,aAArD,CAAoE,CACnE82B,SAAS,CAAC4T,IAAV,CAAiBjU,QAAQ,CAAC75C,CAAT,CAAWtF,CAAX,CAAegzD,cAAc,CAAChrB,OAA/C,CACA,CACD,GAAImX,QAAQ,CAACx3B,CAAT,CAAWU,IAAX,EAAmB,KAAKK,aAA5B,CAA2C,CAC1C82B,SAAS,CAAC6S,EAAV,CAAelT,QAAQ,CAACx3B,CAAT,CAAW3nB,CAA1B,CACA,CACD,CAhBD,CAkBAgyD,cAAc,CAACr5D,SAAf,CAAyBoU,OAAzB,CAAmC,UAAY,CAC9C,KAAKyjC,UAAL,CAAkB,IAAlB,CACA,KAAKz+B,UAAL,CAAkB,IAAlB,CACA,KAAK2+C,aAAL,CAAqB,IAArB,CACA,KAAK1Q,UAAL,CAAgBvnD,MAAhB,CAAyB,CAAzB,CACA,KAAKg4C,SAAL,CAAeh4C,MAAf,CAAwB,CAAxB,CACA,CAND,CAQA,SAAS+7D,aAAT,CAAuBlyD,IAAvB,CAA6ByP,UAA7B,CAAyChN,IAAzC,CAA+C,CAC9C,KAAK+mD,SAAL,CAAiB,EAAjB,CACA,KAAK5I,OAAL,CAAe,CAAf,CACA,KAAKH,aAAL,CAAqB,KAArB,CACA,KAAKC,eAAL,CAAuB,KAAvB,CACA,KAAKC,eAAL,CAAuB,KAAvB,CACA,KAAK6Q,MAAL,CAAc,KAAd,CACA,KAAKC,IAAL,CAAY,KAAZ,CACA,KAAKrR,aAAL,CAAqB,CAArB,CACA,KAAK+R,aAAL,CAAqB,IAArB,CACA,KAAKzM,UAAL,CAAkB,QAAlB,CACA,KAAK7gC,MAAL,CAAc,CACb4sC,IAAI,CAAE,eADO,CAEbD,MAAM,CAAE,eAFK,CAGbY,MAAM,CAAE,CAHK,CAIbC,MAAM,CAAE,EAJK,CAAd,CAMA,KAAK/a,WAAL,CAAiBt3C,IAAjB,CAAuByP,UAAvB,CAAmChN,IAAnC,EACA,CACD3M,eAAe,CAAC,CAACi4C,WAAD,CAAcoE,gBAAd,CAAgCwc,aAAhC,CAA+C1X,gBAA/C,CAAiErI,YAAjE,CAA+E9M,iBAA/E,CAAkG6mB,YAAlG,CAAD,CAAkHuJ,aAAlH,CAAf,CAEAA,aAAa,CAAC77D,SAAd,CAAwB6oC,OAAxB,CAAkCxpC,SAAS,CAAC,QAAD,CAAT,CAAoBmS,UAApB,CAA+B,IAA/B,CAAlC,CAEAqqD,aAAa,CAAC77D,SAAd,CAAwBwyD,YAAxB,CAAuC,UAAY,CAClD,IAAInlD,YAAY,CAAG,KAAKkpC,YAAL,CAAkBE,WAArC,CACA,KAAKoZ,eAAL,CAAuB7sD,gBAAgB,CAACqK,YAAY,CAAC8qB,CAAb,CAAiB9qB,YAAY,CAAC8qB,CAAb,CAAer4B,MAAhC,CAAyC,CAA1C,CAAvC,CAEA,IAAIm8D,OAAO,CAAG,KAAd,CACA,GAAI5uD,YAAY,CAAC+7C,EAAjB,CAAqB,CACpB6S,OAAO,CAAG,IAAV,CACA,KAAKztC,MAAL,CAAY4sC,IAAZ,CAAmB,KAAKtI,UAAL,CAAgBzlD,YAAY,CAAC+7C,EAA7B,CAAnB,CACA,CAHD,IAGO,CACN,KAAK56B,MAAL,CAAY4sC,IAAZ,CAAmB,eAAnB,CACA,CACD,KAAKA,IAAL,CAAYa,OAAZ,CACA,IAAIC,SAAS,CAAG,KAAhB,CACA,GAAI7uD,YAAY,CAAC48B,EAAjB,CAAqB,CACpBiyB,SAAS,CAAG,IAAZ,CACA,KAAK1tC,MAAL,CAAY2sC,MAAZ,CAAqB,KAAKrI,UAAL,CAAgBzlD,YAAY,CAAC48B,EAA7B,CAArB,CACA,KAAKzb,MAAL,CAAYutC,MAAZ,CAAqB1uD,YAAY,CAAC87C,EAAlC,CACA,CACD,IAAIrjB,QAAQ,CAAG,KAAK1sB,UAAL,CAAgBoB,WAAhB,CAA4BmwB,aAA5B,CAA0Ct9B,YAAY,CAAC5F,CAAvD,CAAf,CACA,IAAI7H,CAAJ,CACA,IAAIC,GAAJ,CACA,IAAI6rD,OAAO,CAAGr+C,YAAY,CAAC8qB,CAA3B,CACA,IAAI83B,YAAY,CAAG,KAAKzT,OAAxB,CACA,KAAK2e,MAAL,CAAce,SAAd,CACA,KAAK1tC,MAAL,CAAYwtC,MAAZ,CAAqB3uD,YAAY,CAACm9C,SAAb,CAAyB,KAAzB,CAAiC,KAAKpxC,UAAL,CAAgBoB,WAAhB,CAA4BmwB,aAA5B,CAA0Ct9B,YAAY,CAAC5F,CAAvD,EAA0DqhC,OAAhH,CACAjpC,GAAG,CAAGwN,YAAY,CAACo9C,SAAb,CAAuB3qD,MAA7B,CACA;CACA,IAAI2N,QAAJ,CACA,IAAIwZ,SAAJ,CACA,IAAIlc,CAAJ,CACA,IAAIC,IAAJ,CACA,IAAIa,MAAJ,CACA,IAAIhB,CAAJ,CACA,IAAIC,IAAJ,CACA,IAAImzC,SAAJ,CACA,IAAIke,QAAJ,CACA,IAAIC,OAAJ,CACA,IAAIhJ,WAAW,CAAG,KAAKzpD,IAAL,CAAUypD,WAA5B,CACA,IAAIlH,cAAc,CAAG7+C,YAAY,CAACq1B,EAAb,CAAkB,KAAlB,CAA0Br1B,YAAY,CAACm9C,SAA5D,CACA,IAAI2F,IAAI,CAAG,CAAX,CACA,IAAIC,IAAI,CAAG,CAAX,CACA,IAAIW,SAAS,CAAG,IAAhB,CACA,IAAI1+B,GAAG,CAAG,CAAV,CACA,IAAKzyB,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B6N,QAAQ,CAAG,KAAK2L,UAAL,CAAgBoB,WAAhB,CAA4B4vB,WAA5B,CAAwC/8B,YAAY,CAACo9C,SAAb,CAAuB7qD,CAAvB,CAAxC,CAAmEkmC,QAAQ,CAACE,MAA5E,CAAoF,KAAK5sB,UAAL,CAAgBoB,WAAhB,CAA4BmwB,aAA5B,CAA0Ct9B,YAAY,CAAC5F,CAAvD,EAA0DqhC,OAA9I,CAAX,CACA7hB,SAAS,CAAIxZ,QAAQ,EAAIA,QAAQ,CAAC9D,IAAtB,EAA+B,EAA3C,CACAsmD,YAAY,CAACh8B,KAAb,GACA,GAAIm/B,WAAW,EAAI1H,OAAO,CAAC9rD,CAAD,CAAP,CAAW+rB,CAA9B,CAAiC,CAChCwkC,IAAI,CAAG,CAACjE,cAAR,CACAkE,IAAI,EAAI/iD,YAAY,CAACk9C,OAArB,CACA6F,IAAI,EAAIW,SAAS,CAAG,CAAH,CAAO,CAAxB,CACAA,SAAS,CAAG,KAAZ,CACA,CACDllD,MAAM,CAAGob,SAAS,CAACpb,MAAV,CAAmBob,SAAS,CAACpb,MAAV,CAAiB,CAAjB,EAAoBa,EAAvC,CAA4C,EAArD,CACA5B,IAAI,CAAGe,MAAM,CAAC/L,MAAd,CACAmwD,YAAY,CAACj4B,KAAb,CAAmB3qB,YAAY,CAACm9C,SAAb,CAAyB,GAA5C,CAAiDn9C,YAAY,CAACm9C,SAAb,CAAyB,GAA1E,EACA,GAAI4I,WAAJ,CAAiB,CAChB,KAAKR,2BAAL,CAAiCvlD,YAAjC,CAA+C4iD,YAA/C,CAA6DvE,OAAO,CAAC9rD,CAAD,CAAP,CAAW0V,IAAxE,CAA8E66C,IAA9E,CAAoFC,IAApF,EACA,CACD+L,QAAQ,CAAGn5D,gBAAgB,CAAC8H,IAAI,CAAG,CAAR,CAA3B,CACA,IAAIuxD,eAAe,CAAG,CAAtB,CACA,IAAKxxD,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,IAAhB,CAAsBD,CAAC,EAAI,CAA3B,CAA8B,CAC7B,GAAIgB,MAAM,CAAChB,CAAD,CAAN,CAAUY,EAAV,GAAiB,IAArB,CAA2B,CAC1BT,IAAI,CAAGa,MAAM,CAAChB,CAAD,CAAN,CAAU4B,EAAV,CAAa1B,CAAb,CAAenL,CAAf,CAAiBE,MAAxB,CACAm+C,SAAS,CAAGpyC,MAAM,CAAChB,CAAD,CAAN,CAAU4B,EAAV,CAAa1B,CAAzB,CACAqxD,OAAO,CAAG,EAAV,CACA,IAAKrxD,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,IAAhB,CAAsBD,CAAC,EAAI,CAA3B,CAA8B,CAC7B,GAAIA,CAAC,GAAK,CAAV,CAAa,CACZqxD,OAAO,CAACj7D,IAAR,CAAa8uD,YAAY,CAACp1B,QAAb,CAAsBojB,SAAS,CAAC52C,CAAV,CAAY,CAAZ,EAAe,CAAf,CAAtB,CAAyC42C,SAAS,CAAC52C,CAAV,CAAY,CAAZ,EAAe,CAAf,CAAzC,CAA4D,CAA5D,CAAb,CAA6E4oD,YAAY,CAACn1B,QAAb,CAAsBmjB,SAAS,CAAC52C,CAAV,CAAY,CAAZ,EAAe,CAAf,CAAtB,CAAyC42C,SAAS,CAAC52C,CAAV,CAAY,CAAZ,EAAe,CAAf,CAAzC,CAA4D,CAA5D,CAA7E,EACA,CACD+0D,OAAO,CAACj7D,IAAR,CAAa8uD,YAAY,CAACp1B,QAAb,CAAsBojB,SAAS,CAACtxC,CAAV,CAAY5B,CAAC,CAAG,CAAhB,EAAmB,CAAnB,CAAtB,CAA6CkzC,SAAS,CAACtxC,CAAV,CAAY5B,CAAC,CAAG,CAAhB,EAAmB,CAAnB,CAA7C,CAAoE,CAApE,CAAb,CAAqFklD,YAAY,CAACn1B,QAAb,CAAsBmjB,SAAS,CAACtxC,CAAV,CAAY5B,CAAC,CAAG,CAAhB,EAAmB,CAAnB,CAAtB,CAA6CkzC,SAAS,CAACtxC,CAAV,CAAY5B,CAAC,CAAG,CAAhB,EAAmB,CAAnB,CAA7C,CAAoE,CAApE,CAArF,CAA6JklD,YAAY,CAACp1B,QAAb,CAAsBojB,SAAS,CAACr+C,CAAV,CAAYmL,CAAZ,EAAe,CAAf,CAAtB,CAAyCkzC,SAAS,CAACr+C,CAAV,CAAYmL,CAAZ,EAAe,CAAf,CAAzC,CAA4D,CAA5D,CAA7J,CAA6NklD,YAAY,CAACn1B,QAAb,CAAsBmjB,SAAS,CAACr+C,CAAV,CAAYmL,CAAZ,EAAe,CAAf,CAAtB,CAAyCkzC,SAAS,CAACr+C,CAAV,CAAYmL,CAAZ,EAAe,CAAf,CAAzC,CAA4D,CAA5D,CAA7N,CAA6RklD,YAAY,CAACp1B,QAAb,CAAsBojB,SAAS,CAAC52C,CAAV,CAAY0D,CAAZ,EAAe,CAAf,CAAtB,CAAyCkzC,SAAS,CAAC52C,CAAV,CAAY0D,CAAZ,EAAe,CAAf,CAAzC,CAA4D,CAA5D,CAA7R,CAA6VklD,YAAY,CAACn1B,QAAb,CAAsBmjB,SAAS,CAAC52C,CAAV,CAAY0D,CAAZ,EAAe,CAAf,CAAtB,CAAyCkzC,SAAS,CAAC52C,CAAV,CAAY0D,CAAZ,EAAe,CAAf,CAAzC,CAA4D,CAA5D,CAA7V,EACA,CACDqxD,OAAO,CAACj7D,IAAR,CAAa8uD,YAAY,CAACp1B,QAAb,CAAsBojB,SAAS,CAACtxC,CAAV,CAAY5B,CAAC,CAAG,CAAhB,EAAmB,CAAnB,CAAtB,CAA6CkzC,SAAS,CAACtxC,CAAV,CAAY5B,CAAC,CAAG,CAAhB,EAAmB,CAAnB,CAA7C,CAAoE,CAApE,CAAb,CAAqFklD,YAAY,CAACn1B,QAAb,CAAsBmjB,SAAS,CAACtxC,CAAV,CAAY5B,CAAC,CAAG,CAAhB,EAAmB,CAAnB,CAAtB,CAA6CkzC,SAAS,CAACtxC,CAAV,CAAY5B,CAAC,CAAG,CAAhB,EAAmB,CAAnB,CAA7C,CAAoE,CAApE,CAArF,CAA6JklD,YAAY,CAACp1B,QAAb,CAAsBojB,SAAS,CAACr+C,CAAV,CAAY,CAAZ,EAAe,CAAf,CAAtB,CAAyCq+C,SAAS,CAACr+C,CAAV,CAAY,CAAZ,EAAe,CAAf,CAAzC,CAA4D,CAA5D,CAA7J,CAA6NqwD,YAAY,CAACn1B,QAAb,CAAsBmjB,SAAS,CAACr+C,CAAV,CAAY,CAAZ,EAAe,CAAf,CAAtB,CAAyCq+C,SAAS,CAACr+C,CAAV,CAAY,CAAZ,EAAe,CAAf,CAAzC,CAA4D,CAA5D,CAA7N,CAA6RqwD,YAAY,CAACp1B,QAAb,CAAsBojB,SAAS,CAAC52C,CAAV,CAAY,CAAZ,EAAe,CAAf,CAAtB,CAAyC42C,SAAS,CAAC52C,CAAV,CAAY,CAAZ,EAAe,CAAf,CAAzC,CAA4D,CAA5D,CAA7R,CAA6V4oD,YAAY,CAACn1B,QAAb,CAAsBmjB,SAAS,CAAC52C,CAAV,CAAY,CAAZ,EAAe,CAAf,CAAtB,CAAyC42C,SAAS,CAAC52C,CAAV,CAAY,CAAZ,EAAe,CAAf,CAAzC,CAA4D,CAA5D,CAA7V,EACA80D,QAAQ,CAACE,eAAD,CAAR,CAA4BD,OAA5B,CACAC,eAAe,EAAI,CAAnB,CACA,CACD,CACD,GAAIjJ,WAAJ,CAAiB,CAChBjD,IAAI,EAAIzE,OAAO,CAAC9rD,CAAD,CAAP,CAAWu4B,CAAnB,CACAg4B,IAAI,EAAIjE,cAAR,CACA,CACD,GAAI,KAAKiH,SAAL,CAAe9gC,GAAf,CAAJ,CAAyB,CACxB,KAAK8gC,SAAL,CAAe9gC,GAAf,EAAoB/S,IAApB,CAA2B68C,QAA3B,CACA,CAFD,IAEO,CACN,KAAKhJ,SAAL,CAAe9gC,GAAf,EAAsB,CAAE/S,IAAI,CAAE68C,QAAR,CAAtB,CACA,CACD9pC,GAAG,EAAI,CAAP,CACA,CACD,CAxFD,CA0FAwpC,aAAa,CAAC77D,SAAd,CAAwBmhD,kBAAxB,CAA6C,UAAY,CACxD,IAAI5vC,GAAG,CAAG,KAAKwmD,aAAf,CACAxmD,GAAG,CAACs1B,IAAJ,CAAW,KAAKrY,MAAL,CAAYwtC,MAAvB,CACAzqD,GAAG,CAACspD,OAAJ,CAAc,MAAd,CACAtpD,GAAG,CAACupD,QAAJ,CAAe,OAAf,CACAvpD,GAAG,CAACwpD,UAAJ,CAAiB,CAAjB,CAEA,GAAI,CAAC,KAAKpxD,IAAL,CAAUypD,WAAf,CAA4B,CAC3B,KAAKb,YAAL,CAAkBvC,WAAlB,CAA8B,KAAKzZ,YAAL,CAAkBE,WAAhD,CAA6D,KAAKqZ,kBAAlE,EACA,CAED,IAAIlwD,CAAJ,CACA,IAAIC,GAAJ,CACA,IAAIgL,CAAJ,CACA,IAAIC,IAAJ,CACA,IAAIC,CAAJ,CACA,IAAIC,IAAJ,CACA,IAAI6kD,eAAe,CAAG,KAAK0C,YAAL,CAAkB1C,eAAxC,CAEA,IAAInE,OAAO,CAAG,KAAKnV,YAAL,CAAkBE,WAAlB,CAA8Bte,CAA5C,CAEAt4B,GAAG,CAAG6rD,OAAO,CAAC5rD,MAAd,CACA,IAAI40D,cAAJ,CACA,IAAI4H,QAAQ,CAAG,IAAf,CACA,IAAIC,UAAU,CAAG,IAAjB,CACA,IAAIC,WAAW,CAAG,IAAlB,CACA,IAAIL,QAAJ,CACA,IAAIC,OAAJ,CACA,IAAKx8D,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B,GAAI,CAAC8rD,OAAO,CAAC9rD,CAAD,CAAP,CAAW+rB,CAAhB,CAAmB,CAClB+oC,cAAc,CAAG7E,eAAe,CAACjwD,CAAD,CAAhC,CACA,GAAI80D,cAAJ,CAAoB,CACnB,KAAKt7C,UAAL,CAAgBtB,QAAhB,CAAyBsgD,IAAzB,GACA,KAAKh/C,UAAL,CAAgBtB,QAAhB,CAAyB+gD,YAAzB,CAAsCnE,cAAc,CAAChtD,CAArD,EACA,KAAK0R,UAAL,CAAgBtB,QAAhB,CAAyBghD,UAAzB,CAAoCpE,cAAc,CAAC/nD,CAAnD,EACA,CACD,GAAI,KAAKyuD,IAAT,CAAe,CACd,GAAI1G,cAAc,EAAIA,cAAc,CAACtL,EAArC,CAAyC,CACxC,GAAIkT,QAAQ,GAAK5H,cAAc,CAACtL,EAAhC,CAAoC,CACnCkT,QAAQ,CAAG5H,cAAc,CAACtL,EAA1B,CACA73C,GAAG,CAACE,SAAJ,CAAgBijD,cAAc,CAACtL,EAA/B,CACA,CACD,CALD,QAKWkT,QAAQ,GAAK,KAAK9tC,MAAL,CAAY4sC,IAA7B,CAAmC,CACzCkB,QAAQ,CAAG,KAAK9tC,MAAL,CAAY4sC,IAAvB,CACA7pD,GAAG,CAACE,SAAJ,CAAgB,KAAK+c,MAAL,CAAY4sC,IAA5B,CACA,CACDe,QAAQ,CAAG,KAAKhJ,SAAL,CAAevzD,CAAf,EAAkB0f,IAA7B,CACAxU,IAAI,CAAGqxD,QAAQ,CAACr8D,MAAhB,CACA,KAAKsZ,UAAL,CAAgB2+C,aAAhB,CAA8BC,SAA9B,GACA,IAAKntD,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,IAAhB,CAAsBD,CAAC,EAAI,CAA3B,CAA8B,CAC7BuxD,OAAO,CAAGD,QAAQ,CAACtxD,CAAD,CAAlB,CACAG,IAAI,CAAGoxD,OAAO,CAACt8D,MAAf,CACA,KAAKsZ,UAAL,CAAgB2+C,aAAhB,CAA8BE,MAA9B,CAAqCmE,OAAO,CAAC,CAAD,CAA5C,CAAiDA,OAAO,CAAC,CAAD,CAAxD,EACA,IAAKrxD,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,IAAhB,CAAsBD,CAAC,EAAI,CAA3B,CAA8B,CAC7B,KAAKqO,UAAL,CAAgB2+C,aAAhB,CAA8BI,aAA9B,CAA4CiE,OAAO,CAACrxD,CAAD,CAAnD,CAAwDqxD,OAAO,CAACrxD,CAAC,CAAG,CAAL,CAA/D,CAAwEqxD,OAAO,CAACrxD,CAAC,CAAG,CAAL,CAA/E,CAAwFqxD,OAAO,CAACrxD,CAAC,CAAG,CAAL,CAA/F,CAAwGqxD,OAAO,CAACrxD,CAAC,CAAG,CAAL,CAA/G,CAAwHqxD,OAAO,CAACrxD,CAAC,CAAG,CAAL,CAA/H,EACA,CACD,CACD,KAAKqO,UAAL,CAAgB2+C,aAAhB,CAA8BmD,SAA9B,GACA,KAAK9hD,UAAL,CAAgB2+C,aAAhB,CAA8BqD,IAA9B,GACA;CACA,CACD,GAAI,KAAKD,MAAT,CAAiB,CAChB,GAAIzG,cAAc,EAAIA,cAAc,CAACvL,EAArC,CAAyC,CACxC,GAAIqT,WAAW,GAAK9H,cAAc,CAACvL,EAAnC,CAAuC,CACtCqT,WAAW,CAAG9H,cAAc,CAACvL,EAA7B,CACA53C,GAAG,CAACy6C,SAAJ,CAAgB0I,cAAc,CAACvL,EAA/B,CACA,CACD,CALD,QAKWqT,WAAW,GAAK,KAAKhuC,MAAL,CAAYutC,MAAhC,CAAwC,CAC9CS,WAAW,CAAG,KAAKhuC,MAAL,CAAYutC,MAA1B,CACAxqD,GAAG,CAACy6C,SAAJ,CAAgB,KAAKx9B,MAAL,CAAYutC,MAA5B,CACA,CACD,GAAIrH,cAAc,EAAIA,cAAc,CAACzqB,EAArC,CAAyC,CACxC,GAAIsyB,UAAU,GAAK7H,cAAc,CAACzqB,EAAlC,CAAsC,CACrCsyB,UAAU,CAAG7H,cAAc,CAACzqB,EAA5B,CACA14B,GAAG,CAACopD,WAAJ,CAAkBjG,cAAc,CAACzqB,EAAjC,CACA,CACD,CALD,QAKWsyB,UAAU,GAAK,KAAK/tC,MAAL,CAAY2sC,MAA/B,CAAuC,CAC7CoB,UAAU,CAAG,KAAK/tC,MAAL,CAAY2sC,MAAzB,CACA5pD,GAAG,CAACopD,WAAJ,CAAkB,KAAKnsC,MAAL,CAAY2sC,MAA9B,CACA,CACDgB,QAAQ,CAAG,KAAKhJ,SAAL,CAAevzD,CAAf,EAAkB0f,IAA7B,CACAxU,IAAI,CAAGqxD,QAAQ,CAACr8D,MAAhB,CACA,KAAKsZ,UAAL,CAAgB2+C,aAAhB,CAA8BC,SAA9B,GACA,IAAKntD,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,IAAhB,CAAsBD,CAAC,EAAI,CAA3B,CAA8B,CAC7BuxD,OAAO,CAAGD,QAAQ,CAACtxD,CAAD,CAAlB,CACAG,IAAI,CAAGoxD,OAAO,CAACt8D,MAAf,CACA,KAAKsZ,UAAL,CAAgB2+C,aAAhB,CAA8BE,MAA9B,CAAqCmE,OAAO,CAAC,CAAD,CAA5C,CAAiDA,OAAO,CAAC,CAAD,CAAxD,EACA,IAAKrxD,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,IAAhB,CAAsBD,CAAC,EAAI,CAA3B,CAA8B,CAC7B,KAAKqO,UAAL,CAAgB2+C,aAAhB,CAA8BI,aAA9B,CAA4CiE,OAAO,CAACrxD,CAAD,CAAnD,CAAwDqxD,OAAO,CAACrxD,CAAC,CAAG,CAAL,CAA/D,CAAwEqxD,OAAO,CAACrxD,CAAC,CAAG,CAAL,CAA/E,CAAwFqxD,OAAO,CAACrxD,CAAC,CAAG,CAAL,CAA/F,CAAwGqxD,OAAO,CAACrxD,CAAC,CAAG,CAAL,CAA/G,CAAwHqxD,OAAO,CAACrxD,CAAC,CAAG,CAAL,CAA/H,EACA,CACD,CACD,KAAKqO,UAAL,CAAgB2+C,aAAhB,CAA8BmD,SAA9B,GACA,KAAK9hD,UAAL,CAAgB2+C,aAAhB,CAA8BoD,MAA9B,GACA;CACA,CACD,GAAIzG,cAAJ,CAAoB,CACnB,KAAKt7C,UAAL,CAAgBtB,QAAhB,CAAyBihD,OAAzB,GACA,CACD,CACD,CACD,CApGD,CAsGA,SAAS0D,cAAT,CAAwB9yD,IAAxB,CAA8ByP,UAA9B,CAA0ChN,IAA1C,CAAgD,CAC/C,KAAK+F,SAAL,CAAiBiH,UAAU,CAACgF,YAAX,CAAwBzU,IAAI,CAACgC,KAA7B,CAAjB,CACA,KAAK8G,GAAL,CAAW2G,UAAU,CAACkgC,WAAX,CAAuBnlC,QAAvB,CAAgC,KAAKhC,SAArC,CAAX,CACA,KAAK8uC,WAAL,CAAiBt3C,IAAjB,CAAuByP,UAAvB,CAAmChN,IAAnC,EACA,CACD3M,eAAe,CAAC,CAACi4C,WAAD,CAAcoE,gBAAd,CAAgCwc,aAAhC,CAA+C1X,gBAA/C,CAAiErI,YAAjE,CAA+E9M,iBAA/E,CAAD,CAAoGgxB,cAApG,CAAf,CAEAA,cAAc,CAACz8D,SAAf,CAAyBihD,WAAzB,CAAuCmG,eAAe,CAACpnD,SAAhB,CAA0BihD,WAAjE,CACAwb,cAAc,CAACz8D,SAAf,CAAyB2W,YAAzB,CAAwC0qC,aAAa,CAACrhD,SAAd,CAAwB2W,YAAhE,CAEA8lD,cAAc,CAACz8D,SAAf,CAAyBkhD,aAAzB,CAAyC,UAAY,CACpD,GAAI,KAAKzuC,GAAL,CAASpB,KAAT,GAAmB,KAAKc,SAAL,CAAe6c,CAAf,GAAqB,KAAKvc,GAAL,CAASpB,KAA9B,EAAuC,KAAKc,SAAL,CAAehL,CAAf,GAAqB,KAAKsL,GAAL,CAASnB,MAAxF,CAAJ,CAAqG,CACpG,IAAIF,MAAM,CAAG/R,SAAS,CAAC,QAAD,CAAtB,CACA+R,MAAM,CAACC,KAAP,CAAe,KAAKc,SAAL,CAAe6c,CAA9B,CACA5d,MAAM,CAACE,MAAP,CAAgB,KAAKa,SAAL,CAAehL,CAA/B,CACA,IAAIoK,GAAG,CAAGH,MAAM,CAACI,UAAP,CAAkB,IAAlB,CAAV,CAEA,IAAIkrD,IAAI,CAAG,KAAKjqD,GAAL,CAASpB,KAApB,CACA,IAAIsrD,IAAI,CAAG,KAAKlqD,GAAL,CAASnB,MAApB,CACA,IAAIsrD,MAAM,CAAGF,IAAI,CAAGC,IAApB,CACA,IAAIE,SAAS,CAAG,KAAK1qD,SAAL,CAAe6c,CAAf,CAAmB,KAAK7c,SAAL,CAAehL,CAAlD,CACA,IAAI21D,SAAJ,CACA,IAAIC,UAAJ,CACA,IAAIC,GAAG,CAAG,KAAK7qD,SAAL,CAAeovC,EAAf,EAAqB,KAAKnoC,UAAL,CAAgBozB,YAAhB,CAA6BgV,wBAA5D,CACA,GAAKob,MAAM,CAAGC,SAAT,EAAsBG,GAAG,GAAK,gBAA/B,EAAqDJ,MAAM,CAAGC,SAAT,EAAsBG,GAAG,GAAK,gBAAvF,CAA0G,CACzGD,UAAU,CAAGJ,IAAb,CACAG,SAAS,CAAGC,UAAU,CAAGF,SAAzB,CACA,CAHD,IAGO,CACNC,SAAS,CAAGJ,IAAZ,CACAK,UAAU,CAAGD,SAAS,CAAGD,SAAzB,CACA,CACDtrD,GAAG,CAAC0rD,SAAJ,CAAc,KAAKxqD,GAAnB,CAAwB,CAACiqD,IAAI,CAAGI,SAAR,EAAqB,CAA7C,CAAgD,CAACH,IAAI,CAAGI,UAAR,EAAsB,CAAtE,CAAyED,SAAzE,CAAoFC,UAApF,CAAgG,CAAhG,CAAmG,CAAnG,CAAsG,KAAK5qD,SAAL,CAAe6c,CAArH,CAAwH,KAAK7c,SAAL,CAAehL,CAAvI,EACA,KAAKsL,GAAL,CAAWrB,MAAX,CACA,CACD,CAxBD,CA0BAqrD,cAAc,CAACz8D,SAAf,CAAyBmhD,kBAAzB,CAA8C,UAAY,CACzD,KAAK4W,aAAL,CAAmBkF,SAAnB,CAA6B,KAAKxqD,GAAlC,CAAuC,CAAvC,CAA0C,CAA1C,EACA,CAFD,CAIAgqD,cAAc,CAACz8D,SAAf,CAAyBoU,OAAzB,CAAmC,UAAY,CAC9C,KAAK3B,GAAL,CAAW,IAAX,CACA,CAFD,CAIA,SAASyqD,cAAT,CAAwBvzD,IAAxB,CAA8ByP,UAA9B,CAA0ChN,IAA1C,CAAgD,CAC/C,KAAK60C,WAAL,CAAiBt3C,IAAjB,CAAuByP,UAAvB,CAAmChN,IAAnC,EACA,CACD3M,eAAe,CAAC,CAACi4C,WAAD,CAAcoE,gBAAd,CAAgCwc,aAAhC,CAA+C1X,gBAA/C,CAAiErI,YAAjE,CAA+E9M,iBAA/E,CAAD,CAAoGyxB,cAApG,CAAf,CAEAA,cAAc,CAACl9D,SAAf,CAAyBihD,WAAzB,CAAuCmG,eAAe,CAACpnD,SAAhB,CAA0BihD,WAAjE,CACAic,cAAc,CAACl9D,SAAf,CAAyB2W,YAAzB,CAAwC0qC,aAAa,CAACrhD,SAAd,CAAwB2W,YAAhE,CAEAumD,cAAc,CAACl9D,SAAf,CAAyBmhD,kBAAzB,CAA8C,UAAY,CACzD,IAAI5vC,GAAG,CAAG,KAAKwmD,aAAf,CACAxmD,GAAG,CAACE,SAAJ,CAAgB,KAAK9H,IAAL,CAAUsgC,EAA1B,CACA14B,GAAG,CAACG,QAAJ,CAAa,CAAb,CAAgB,CAAhB,CAAmB,KAAK/H,IAAL,CAAUw/C,EAA7B,CAAiC,KAAKx/C,IAAL,CAAU4iB,EAA3C,EACA;CACA,CALD,CAOA,SAAS4wC,kBAAT,CAA4BthB,aAA5B,CAA2Cma,MAA3C,CAAmD,CAClD,KAAKna,aAAL,CAAqBA,aAArB,CACA,KAAKrP,YAAL,CAAoB,CACnB4wB,WAAW,CAAGpH,MAAM,EAAIA,MAAM,CAACoH,WAAP,GAAuB7jD,SAAlC,CAA+Cy8C,MAAM,CAACoH,WAAtD,CAAoE,IAD9D,CAEnBC,OAAO,CAAGrH,MAAM,EAAIA,MAAM,CAACqH,OAAlB,EAA8B,IAFpB,CAGnBliB,eAAe,CAAG6a,MAAM,EAAIA,MAAM,CAAC7a,eAAlB,EAAsC,KAHpC,CAInBka,mBAAmB,CAAGW,MAAM,EAAIA,MAAM,CAACX,mBAAlB,EAA0C,eAJ5C,CAKnB7T,wBAAwB,CAAGwU,MAAM,EAAIA,MAAM,CAACxU,wBAAlB,EAA+C,gBALtD,CAMnB0T,iBAAiB,CAAGc,MAAM,EAAIA,MAAM,CAACd,iBAAlB,EAAwC,SANxC,CAOnBC,SAAS,CAAGa,MAAM,EAAIA,MAAM,CAACb,SAAlB,EAAgC,EAPxB,CAQnBhpD,EAAE,CAAG6pD,MAAM,EAAIA,MAAM,CAAC7pD,EAAlB,EAAyB,EARV,CAApB,CAUA,KAAKqgC,YAAL,CAAkB8wB,GAAlB,CAAyBtH,MAAM,EAAIA,MAAM,CAACsH,GAAlB,EAA0B,CAAlD,CACA,GAAI,KAAKzhB,aAAL,CAAmB9iC,OAAvB,CAAgC,CAC/B,KAAKyzB,YAAL,CAAkB8wB,GAAlB,CAAyBtH,MAAM,EAAIA,MAAM,CAACsH,GAAlB,EAA0B57D,MAAM,CAAC67D,gBAAjC,EAAqD,CAA7E,CACA,CACD,KAAKpuC,aAAL,CAAqB,CAAC,CAAtB,CACA,KAAK/V,UAAL,CAAkB,CACjBiR,QAAQ,CAAE,CAAC,CADM,CAEjBqF,IAAI,CAAE,KAFW,CAGjB8c,YAAY,CAAE,KAAKA,YAHF,CAIjBkuB,kBAAkB,CAAE,CAAC,CAJJ,CAAlB,CAMA,KAAK8C,WAAL,CAAmB,IAAI/G,aAAJ,EAAnB,CACA,KAAK7yB,QAAL,CAAgB,EAAhB,CACA,KAAK6X,eAAL,CAAuB,EAAvB,CACA,KAAK1L,YAAL,CAAoB,IAAIjZ,MAAJ,EAApB,CACA,KAAKrsB,cAAL,CAAsB,KAAtB,CACA,KAAKmR,YAAL,CAAoB,QAApB,CACA,CACDnc,eAAe,CAAC,CAAC26C,YAAD,CAAD,CAAiB+iB,kBAAjB,CAAf,CAEAA,kBAAkB,CAACn9D,SAAnB,CAA6B66C,WAA7B,CAA2C,SAAUlxC,IAAV,CAAgB,CAC1D,WAAW0vD,cAAJ,CAAmB1vD,IAAnB,CAAyB,KAAKyP,UAA9B,CAA0C,IAA1C,CAAP,CACA,CAFD,CAIA+jD,kBAAkB,CAACn9D,SAAnB,CAA6B86C,UAA7B,CAA0C,SAAUnxC,IAAV,CAAgB,CACzD,WAAWkyD,aAAJ,CAAkBlyD,IAAlB,CAAwB,KAAKyP,UAA7B,CAAyC,IAAzC,CAAP,CACA,CAFD,CAIA+jD,kBAAkB,CAACn9D,SAAnB,CAA6By6C,WAA7B,CAA2C,SAAU9wC,IAAV,CAAgB,CAC1D,WAAW8yD,cAAJ,CAAmB9yD,IAAnB,CAAyB,KAAKyP,UAA9B,CAA0C,IAA1C,CAAP,CACA,CAFD,CAIA+jD,kBAAkB,CAACn9D,SAAnB,CAA6B26C,WAA7B,CAA2C,SAAUhxC,IAAV,CAAgB,CAC1D,WAAWuzD,cAAJ,CAAmBvzD,IAAnB,CAAyB,KAAKyP,UAA9B,CAA0C,IAA1C,CAAP,CACA,CAFD,CAIA+jD,kBAAkB,CAACn9D,SAAnB,CAA6B46C,UAA7B,CAA0Cmb,WAAW,CAAC/1D,SAAZ,CAAsB46C,UAAhE,CAEAuiB,kBAAkB,CAACn9D,SAAnB,CAA6B64D,YAA7B,CAA4C,SAAUzhC,KAAV,CAAiB,CAC5D,GAAIA,KAAK,CAAC,CAAD,CAAL,GAAa,CAAb,EAAkBA,KAAK,CAAC,CAAD,CAAL,GAAa,CAA/B,EAAoCA,KAAK,CAAC,CAAD,CAAL,GAAa,CAAjD,EAAsDA,KAAK,CAAC,CAAD,CAAL,GAAa,CAAnE,EAAwEA,KAAK,CAAC,EAAD,CAAL,GAAc,CAAtF,EAA2FA,KAAK,CAAC,EAAD,CAAL,GAAc,CAA7G,CAAgH,CAC/G,OACA,CACD,GAAI,CAAC,KAAKoV,YAAL,CAAkB4wB,WAAvB,CAAoC,CACnC,KAAKrF,aAAL,CAAmBv/B,SAAnB,CAA6BpB,KAAK,CAAC,CAAD,CAAlC,CAAuCA,KAAK,CAAC,CAAD,CAA5C,CAAiDA,KAAK,CAAC,CAAD,CAAtD,CAA2DA,KAAK,CAAC,CAAD,CAAhE,CAAqEA,KAAK,CAAC,EAAD,CAA1E,CAAgFA,KAAK,CAAC,EAAD,CAArF,EACA,OACA,CACD,KAAK2Y,YAAL,CAAkBpV,cAAlB,CAAiCvD,KAAjC,EACA,IAAIqmC,MAAM,CAAG,KAAKD,WAAL,CAAiB5G,GAAjB,CAAqBx/B,KAAlC,CACA,KAAK2Y,YAAL,CAAkBvX,SAAlB,CAA4BilC,MAAM,CAAC,CAAD,CAAlC,CAAuCA,MAAM,CAAC,CAAD,CAA7C,CAAkDA,MAAM,CAAC,CAAD,CAAxD,CAA6DA,MAAM,CAAC,CAAD,CAAnE,CAAwEA,MAAM,CAAC,CAAD,CAA9E,CAAmFA,MAAM,CAAC,CAAD,CAAzF,CAA8FA,MAAM,CAAC,CAAD,CAApG,CAAyGA,MAAM,CAAC,CAAD,CAA/G,CAAoHA,MAAM,CAAC,CAAD,CAA1H,CAA+HA,MAAM,CAAC,CAAD,CAArI,CAA0IA,MAAM,CAAC,EAAD,CAAhJ,CAAsJA,MAAM,CAAC,EAAD,CAA5J,CAAkKA,MAAM,CAAC,EAAD,CAAxK,CAA8KA,MAAM,CAAC,EAAD,CAApL,CAA0LA,MAAM,CAAC,EAAD,CAAhM,CAAsMA,MAAM,CAAC,EAAD,CAA5M,EACA;CACA,KAAKD,WAAL,CAAiB5G,GAAjB,CAAqBj8B,cAArB,CAAoC,KAAKoV,YAAL,CAAkB3Y,KAAtD,EACA,IAAIsmC,OAAO,CAAG,KAAKF,WAAL,CAAiB5G,GAAjB,CAAqBx/B,KAAnC,CACA,KAAK2gC,aAAL,CAAmB7/B,YAAnB,CAAgCwlC,OAAO,CAAC,CAAD,CAAvC,CAA4CA,OAAO,CAAC,CAAD,CAAnD,CAAwDA,OAAO,CAAC,CAAD,CAA/D,CAAoEA,OAAO,CAAC,CAAD,CAA3E,CAAgFA,OAAO,CAAC,EAAD,CAAvF,CAA6FA,OAAO,CAAC,EAAD,CAApG,EACA,CAfD,CAiBAP,kBAAkB,CAACn9D,SAAnB,CAA6B84D,UAA7B,CAA0C,SAAUnrD,EAAV,CAAc;CAExD;CACA,QACC,GAAI,CAAC,KAAK6+B,YAAL,CAAkB4wB,WAAvB,CAAoC,CACnC,KAAKrF,aAAL,CAAmB4F,WAAnB,EAAkChwD,EAAE,CAAG,CAAL,CAAS,CAAT,CAAaA,EAA/C,CACA,KAAKyL,UAAL,CAAgBshD,kBAAhB,CAAqC,KAAK8C,WAAL,CAAiB3G,EAAtD,CACA,OACA,CACD,KAAK2G,WAAL,CAAiB3G,EAAjB,EAAuBlpD,EAAE,CAAG,CAAL,CAAS,CAAT,CAAaA,EAApC,CACA,GAAI,KAAKyL,UAAL,CAAgBshD,kBAAhB,GAAuC,KAAK8C,WAAL,CAAiB3G,EAA5D,CAAgE,CAC/D,KAAKkB,aAAL,CAAmB4F,WAAnB,CAAiC,KAAKH,WAAL,CAAiB3G,EAAlD,CACA,KAAKz9C,UAAL,CAAgBshD,kBAAhB,CAAqC,KAAK8C,WAAL,CAAiB3G,EAAtD,CACA,CACD,CAdD,CAgBAsG,kBAAkB,CAACn9D,SAAnB,CAA6Bi0B,KAA7B,CAAqC,UAAY,CAChD,GAAI,CAAC,KAAKuY,YAAL,CAAkB4wB,WAAvB,CAAoC,CACnC,KAAKrF,aAAL,CAAmBgB,OAAnB,GACA,OACA,CACD,KAAKyE,WAAL,CAAiBvpC,KAAjB,GACA,CAND,CAQAkpC,kBAAkB,CAACn9D,SAAnB,CAA6Bo4D,IAA7B,CAAoC,SAAUwF,UAAV,CAAsB,CACzD,GAAI,CAAC,KAAKpxB,YAAL,CAAkB4wB,WAAvB,CAAoC,CACnC,KAAKrF,aAAL,CAAmBK,IAAnB,GACA,OACA,CACD,GAAIwF,UAAJ,CAAgB,CACf,KAAK7F,aAAL,CAAmBK,IAAnB,GACA,CACD,IAAIhhC,KAAK,CAAG,KAAKomC,WAAL,CAAiB5G,GAAjB,CAAqBx/B,KAAjC,CACA,GAAI,KAAKomC,WAAL,CAAiBl5C,OAAjB,EAA4B,KAAKk5C,WAAL,CAAiB7G,OAAjD,CAA0D,CACzD,KAAK6G,WAAL,CAAiBzG,SAAjB,GACA,CACD,IAAIn3D,CAAJ,CACA,IAAI+C,GAAG,CAAG,KAAK66D,WAAL,CAAiB9G,KAAjB,CAAuB,KAAK8G,WAAL,CAAiB7G,OAAxC,CAAV,CACA,IAAK/2D,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAG,EAAhB,CAAoBA,CAAC,EAAI,CAAzB,CAA4B,CAC3B+C,GAAG,CAAC/C,CAAD,CAAH,CAASw3B,KAAK,CAACx3B,CAAD,CAAd,CACA,CACD,KAAK49D,WAAL,CAAiB1G,OAAjB,CAAyB,KAAK0G,WAAL,CAAiB7G,OAA1C,EAAqD,KAAK6G,WAAL,CAAiB3G,EAAtE,CACA,KAAK2G,WAAL,CAAiB7G,OAAjB,EAA4B,CAA5B,CACA,CAnBD,CAqBAwG,kBAAkB,CAACn9D,SAAnB,CAA6B+4D,OAA7B,CAAuC,SAAU6E,UAAV,CAAsB,CAC5D,GAAI,CAAC,KAAKpxB,YAAL,CAAkB4wB,WAAvB,CAAoC,CACnC,KAAKrF,aAAL,CAAmBgB,OAAnB,GACA,OACA,CACD,GAAI6E,UAAJ,CAAgB,CACf,KAAK7F,aAAL,CAAmBgB,OAAnB,GACA,KAAK3/C,UAAL,CAAgBo/C,SAAhB,CAA4B,aAA5B,CACA,CACD,KAAKgF,WAAL,CAAiB7G,OAAjB,EAA4B,CAA5B,CACA,IAAIkH,MAAM,CAAG,KAAKL,WAAL,CAAiB9G,KAAjB,CAAuB,KAAK8G,WAAL,CAAiB7G,OAAxC,CAAb,CACA,IAAI/2D,CAAJ,CACA,IAAI+C,GAAG,CAAG,KAAK66D,WAAL,CAAiB5G,GAAjB,CAAqBx/B,KAA/B,CACA,IAAKx3B,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAG,EAAhB,CAAoBA,CAAC,EAAI,CAAzB,CAA4B,CAC3B+C,GAAG,CAAC/C,CAAD,CAAH,CAASi+D,MAAM,CAACj+D,CAAD,CAAf,CACA,CACD,KAAKm4D,aAAL,CAAmB7/B,YAAnB,CAAgC2lC,MAAM,CAAC,CAAD,CAAtC,CAA2CA,MAAM,CAAC,CAAD,CAAjD,CAAsDA,MAAM,CAAC,CAAD,CAA5D,CAAiEA,MAAM,CAAC,CAAD,CAAvE,CAA4EA,MAAM,CAAC,EAAD,CAAlF,CAAwFA,MAAM,CAAC,EAAD,CAA9F,EACAA,MAAM,CAAG,KAAKL,WAAL,CAAiB1G,OAAjB,CAAyB,KAAK0G,WAAL,CAAiB7G,OAA1C,CAAT,CACA,KAAK6G,WAAL,CAAiB3G,EAAjB,CAAsBgH,MAAtB,CACA,GAAI,KAAKzkD,UAAL,CAAgBshD,kBAAhB,GAAuCmD,MAA3C,CAAmD,CAClD,KAAK9F,aAAL,CAAmB4F,WAAnB,CAAiCE,MAAjC,CACA,KAAKzkD,UAAL,CAAgBshD,kBAAhB,CAAqCmD,MAArC,CACA,CACD,CAvBD,CAyBAV,kBAAkB,CAACn9D,SAAnB,CAA6ByY,eAA7B,CAA+C,SAAU2C,QAAV,CAAoB,CAClE,GAAI,KAAKygC,aAAL,CAAmB9iC,OAAvB,CAAgC,CAC/B,KAAK8iC,aAAL,CAAmB7iC,SAAnB,CAA+B3Z,SAAS,CAAC,QAAD,CAAxC,CACA,IAAIy+D,cAAc,CAAG,KAAKjiB,aAAL,CAAmB7iC,SAAnB,CAA6B9T,KAAlD,CACA44D,cAAc,CAACzsD,KAAf,CAAuB,MAAvB,CACAysD,cAAc,CAACxsD,MAAf,CAAwB,MAAxB,CACA,IAAIT,MAAM,CAAG,aAAb,CACAitD,cAAc,CAACv4D,eAAf,CAAiCsL,MAAjC,CACAitD,cAAc,CAACC,kBAAf,CAAoCltD,MAApC,CACAitD,cAAc,CAACt4D,qBAAf,CAAuCqL,MAAvC,CACAitD,cAAc,CAAC,mBAAD,CAAd,CAAsCjtD,MAAtC,CACAitD,cAAc,CAAC5I,iBAAf,CAAmC,KAAK1oB,YAAL,CAAkB0oB,iBAArD,CACA,KAAKrZ,aAAL,CAAmB9iC,OAAnB,CAA2BxF,WAA3B,CAAuC,KAAKsoC,aAAL,CAAmB7iC,SAA1D,EACA,KAAK++C,aAAL,CAAqB,KAAKlc,aAAL,CAAmB7iC,SAAnB,CAA6BxH,UAA7B,CAAwC,IAAxC,CAArB,CACA,GAAI,KAAKg7B,YAAL,CAAkB2oB,SAAtB,CAAiC,CAChC,KAAKtZ,aAAL,CAAmB7iC,SAAnB,CAA6BsH,YAA7B,CAA0C,OAA1C,CAAmD,KAAKksB,YAAL,CAAkB2oB,SAArE,EACA,CACD,GAAI,KAAK3oB,YAAL,CAAkBrgC,EAAtB,CAA0B,CACzB,KAAK0vC,aAAL,CAAmB7iC,SAAnB,CAA6BsH,YAA7B,CAA0C,IAA1C,CAAgD,KAAKksB,YAAL,CAAkBrgC,EAAlE,EACA,CACD,CAnBD,IAmBO,CACN,KAAK4rD,aAAL,CAAqB,KAAKvrB,YAAL,CAAkB6wB,OAAvC,CACA,CACD,KAAK1zD,IAAL,CAAYyR,QAAZ,CACA,KAAK1Q,MAAL,CAAc0Q,QAAQ,CAAC1Q,MAAvB,CACA,KAAKszD,eAAL,CAAuB,CACtBhvC,CAAC,CAAE5T,QAAQ,CAAC4T,CADU,CAEtB7nB,CAAC,CAAEiU,QAAQ,CAACjU,CAFU,CAGtB0wB,EAAE,CAAE,CAHkB,CAItB/C,EAAE,CAAE,CAJkB,CAKtBwD,EAAE,CAAE,CALkB,CAMtB7sB,EAAE,CAAE,CANkB,CAAvB,CAQA,KAAKkwC,eAAL,CAAqBvgC,QAArB,CAA+B7b,QAAQ,CAACghB,IAAxC,EACA,KAAKnH,UAAL,CAAgB2+C,aAAhB,CAAgC,KAAKA,aAArC,CACA,KAAK3+C,UAAL,CAAgBtB,QAAhB,CAA2B,IAA3B,CACA,KAAKsB,UAAL,CAAgB6kD,QAAhB,CAA2B,KAA3B,CACA,KAAK7kD,UAAL,CAAgB+hC,eAAhB,CAAkC,KAAK3O,YAAL,CAAkB2O,eAApD,CACA,KAAK/hC,UAAL,CAAgB4kD,eAAhB,CAAkC,KAAKA,eAAvC,CACA,KAAKp6B,QAAL,CAAgB5gC,gBAAgB,CAACoY,QAAQ,CAAC1Q,MAAT,CAAgB5K,MAAjB,CAAhC,CAEA,KAAKkc,mBAAL,GACA,CA1CD,CA4CAmhD,kBAAkB,CAACn9D,SAAnB,CAA6Bgc,mBAA7B,CAAmD,UAAY,CAC9D,KAAKiY,KAAL,GACA,IAAIiqC,YAAJ,CACA,IAAIC,aAAJ,CACA,GAAI,KAAKtiB,aAAL,CAAmB9iC,OAAnB,EAA8B,KAAK8iC,aAAL,CAAmB7iC,SAArD,CAAgE,CAC/DklD,YAAY,CAAG,KAAKriB,aAAL,CAAmB9iC,OAAnB,CAA2B4uB,WAA1C,CACAw2B,aAAa,CAAG,KAAKtiB,aAAL,CAAmB9iC,OAAnB,CAA2BqlD,YAA3C,CACA,KAAKviB,aAAL,CAAmB7iC,SAAnB,CAA6BsH,YAA7B,CAA0C,OAA1C,CAAmD49C,YAAY,CAAG,KAAK1xB,YAAL,CAAkB8wB,GAApF,EACA,KAAKzhB,aAAL,CAAmB7iC,SAAnB,CAA6BsH,YAA7B,CAA0C,QAA1C,CAAoD69C,aAAa,CAAG,KAAK3xB,YAAL,CAAkB8wB,GAAtF,EACA,CALD,IAKO,CACNY,YAAY,CAAG,KAAKnG,aAAL,CAAmB3mD,MAAnB,CAA0BC,KAA1B,CAAkC,KAAKm7B,YAAL,CAAkB8wB,GAAnE,CACAa,aAAa,CAAG,KAAKpG,aAAL,CAAmB3mD,MAAnB,CAA0BE,MAA1B,CAAmC,KAAKk7B,YAAL,CAAkB8wB,GAArE,CACA,CACD,IAAIe,UAAJ,CACA,IAAIC,YAAJ,CACA,GAAI,KAAK9xB,YAAL,CAAkB6oB,mBAAlB,CAAsClmD,OAAtC,CAA8C,MAA9C,IAA0D,CAAC,CAA3D,EAAgE,KAAKq9B,YAAL,CAAkB6oB,mBAAlB,CAAsClmD,OAAtC,CAA8C,OAA9C,IAA2D,CAAC,CAAhI,CAAmI,CAClI,IAAI6tD,GAAG,CAAG,KAAKxwB,YAAL,CAAkB6oB,mBAAlB,CAAsCroD,KAAtC,CAA4C,GAA5C,CAAV,CACA,IAAIuxD,QAAQ,CAAGvB,GAAG,CAAC,CAAD,CAAH,EAAU,MAAzB,CACA,IAAIxrC,GAAG,CAAGwrC,GAAG,CAAC,CAAD,CAAH,EAAU,UAApB,CACA,IAAI7M,IAAI,CAAG3+B,GAAG,CAAC3X,MAAJ,CAAW,CAAX,CAAc,CAAd,CAAX,CACA,IAAIu2C,IAAI,CAAG5+B,GAAG,CAAC3X,MAAJ,CAAW,CAAX,CAAX,CACAwkD,UAAU,CAAGH,YAAY,CAAGC,aAA5B,CACAG,YAAY,CAAG,KAAKN,eAAL,CAAqBhvC,CAArB,CAAyB,KAAKgvC,eAAL,CAAqB72D,CAA7D,CACA,GAAKm3D,YAAY,CAAGD,UAAf,EAA6BE,QAAQ,GAAK,MAA3C,EAAuDD,YAAY,CAAGD,UAAf,EAA6BE,QAAQ,GAAK,OAArG,CAA+G,CAC9G,KAAKP,eAAL,CAAqBnmC,EAArB,CAA0BqmC,YAAY,EAAI,KAAKF,eAAL,CAAqBhvC,CAArB,CAAyB,KAAKwd,YAAL,CAAkB8wB,GAA/C,CAAtC,CACA,KAAKU,eAAL,CAAqBlpC,EAArB,CAA0BopC,YAAY,EAAI,KAAKF,eAAL,CAAqBhvC,CAArB,CAAyB,KAAKwd,YAAL,CAAkB8wB,GAA/C,CAAtC,CACA,CAHD,IAGO,CACN,KAAKU,eAAL,CAAqBnmC,EAArB,CAA0BsmC,aAAa,EAAI,KAAKH,eAAL,CAAqB72D,CAArB,CAAyB,KAAKqlC,YAAL,CAAkB8wB,GAA/C,CAAvC,CACA,KAAKU,eAAL,CAAqBlpC,EAArB,CAA0BqpC,aAAa,EAAI,KAAKH,eAAL,CAAqB72D,CAArB,CAAyB,KAAKqlC,YAAL,CAAkB8wB,GAA/C,CAAvC,CACA,CAED,GAAInN,IAAI,GAAK,MAAT,GAAqBmO,YAAY,CAAGD,UAAf,EAA6BE,QAAQ,GAAK,MAA3C,EAAuDD,YAAY,CAAGD,UAAf,EAA6BE,QAAQ,GAAK,OAArH,CAAJ,CAAoI,CACnI,KAAKP,eAAL,CAAqB1lC,EAArB,CAA2B,CAAC4lC,YAAY,CAAG,KAAKF,eAAL,CAAqBhvC,CAArB,EAA0BmvC,aAAa,CAAG,KAAKH,eAAL,CAAqB72D,CAA/D,CAAhB,EAAqF,CAAtF,CAA2F,KAAKqlC,YAAL,CAAkB8wB,GAAvI,CACA,CAFD,QAEWnN,IAAI,GAAK,MAAT,GAAqBmO,YAAY,CAAGD,UAAf,EAA6BE,QAAQ,GAAK,MAA3C,EAAuDD,YAAY,CAAGD,UAAf,EAA6BE,QAAQ,GAAK,OAArH,CAAJ,CAAoI,CAC1I,KAAKP,eAAL,CAAqB1lC,EAArB,CAA0B,CAAC4lC,YAAY,CAAG,KAAKF,eAAL,CAAqBhvC,CAArB,EAA0BmvC,aAAa,CAAG,KAAKH,eAAL,CAAqB72D,CAA/D,CAAhB,EAAqF,KAAKqlC,YAAL,CAAkB8wB,GAAjI,CACA,CAFM,IAEA,CACN,KAAKU,eAAL,CAAqB1lC,EAArB,CAA0B,CAA1B,CACA,CACD,GAAI83B,IAAI,GAAK,MAAT,GAAqBkO,YAAY,CAAGD,UAAf,EAA6BE,QAAQ,GAAK,MAA3C,EAAuDD,YAAY,CAAGD,UAAf,EAA6BE,QAAQ,GAAK,OAArH,CAAJ,CAAoI,CACnI,KAAKP,eAAL,CAAqBvyD,EAArB,CAA2B,CAAC0yD,aAAa,CAAG,KAAKH,eAAL,CAAqB72D,CAArB,EAA0B+2D,YAAY,CAAG,KAAKF,eAAL,CAAqBhvC,CAA9D,CAAjB,EAAqF,CAAtF,CAA2F,KAAKwd,YAAL,CAAkB8wB,GAAvI,CACA,CAFD,QAEWlN,IAAI,GAAK,MAAT,GAAqBkO,YAAY,CAAGD,UAAf,EAA6BE,QAAQ,GAAK,MAA3C,EAAuDD,YAAY,CAAGD,UAAf,EAA6BE,QAAQ,GAAK,OAArH,CAAJ,CAAoI,CAC1I,KAAKP,eAAL,CAAqBvyD,EAArB,CAA0B,CAAE0yD,aAAa,CAAG,KAAKH,eAAL,CAAqB72D,CAArB,EAA0B+2D,YAAY,CAAG,KAAKF,eAAL,CAAqBhvC,CAA9D,CAAlB,EAAuF,KAAKwd,YAAL,CAAkB8wB,GAAnI,CACA,CAFM,IAEA,CACN,KAAKU,eAAL,CAAqBvyD,EAArB,CAA0B,CAA1B,CACA,CACD,CA9BD,QA8BW,KAAK+gC,YAAL,CAAkB6oB,mBAAlB,GAA0C,MAA9C,CAAsD,CAC5D,KAAK2I,eAAL,CAAqBnmC,EAArB,CAA0BqmC,YAAY,EAAI,KAAKF,eAAL,CAAqBhvC,CAArB,CAAyB,KAAKwd,YAAL,CAAkB8wB,GAA/C,CAAtC,CACA,KAAKU,eAAL,CAAqBlpC,EAArB,CAA0BqpC,aAAa,EAAI,KAAKH,eAAL,CAAqB72D,CAArB,CAAyB,KAAKqlC,YAAL,CAAkB8wB,GAA/C,CAAvC,CACA,KAAKU,eAAL,CAAqB1lC,EAArB,CAA0B,CAA1B,CACA,KAAK0lC,eAAL,CAAqBvyD,EAArB,CAA0B,CAA1B,CACA,CALM,IAKA,CACN,KAAKuyD,eAAL,CAAqBnmC,EAArB,CAA0B,KAAK2U,YAAL,CAAkB8wB,GAA5C,CACA,KAAKU,eAAL,CAAqBlpC,EAArB,CAA0B,KAAK0X,YAAL,CAAkB8wB,GAA5C,CACA,KAAKU,eAAL,CAAqB1lC,EAArB,CAA0B,CAA1B,CACA,KAAK0lC,eAAL,CAAqBvyD,EAArB,CAA0B,CAA1B,CACA,CACD,KAAKuyD,eAAL,CAAqB5mC,KAArB,CAA6B,CAAC,KAAK4mC,eAAL,CAAqBnmC,EAAtB,CAA0B,CAA1B,CAA6B,CAA7B,CAAgC,CAAhC,CAAmC,CAAnC,CAAsC,KAAKmmC,eAAL,CAAqBlpC,EAA3D,CAA+D,CAA/D,CAAkE,CAAlE,CAAqE,CAArE,CAAwE,CAAxE,CAA2E,CAA3E,CAA8E,CAA9E,CAAiF,KAAKkpC,eAAL,CAAqB1lC,EAAtG,CAA0G,KAAK0lC,eAAL,CAAqBvyD,EAA/H,CAAmI,CAAnI,CAAsI,CAAtI,CAA7B,CACA;CACD;CACA;CACA;CACA;CACA,QACC,KAAKotD,YAAL,CAAkB,KAAKmF,eAAL,CAAqB5mC,KAAvC,EACA,KAAK2gC,aAAL,CAAmBC,SAAnB,GACA,KAAKD,aAAL,CAAmBhb,IAAnB,CAAwB,CAAxB,CAA2B,CAA3B,CAA8B,KAAKihB,eAAL,CAAqBhvC,CAAnD,CAAsD,KAAKgvC,eAAL,CAAqB72D,CAA3E,EACA,KAAK4wD,aAAL,CAAmBmD,SAAnB,GACA,KAAKnD,aAAL,CAAmBM,IAAnB,GAEA,KAAKn8C,WAAL,CAAiB,KAAKiT,aAAtB,CAAqC,IAArC,EACA,CAtED,CAwEAguC,kBAAkB,CAACn9D,SAAnB,CAA6BoU,OAA7B,CAAuC,UAAY,CAClD,GAAI,KAAKo4B,YAAL,CAAkB4wB,WAAlB,EAAiC,KAAKvhB,aAAL,CAAmB9iC,OAAxD,CAAiE,CAChE,KAAK8iC,aAAL,CAAmB9iC,OAAnB,CAA2B0H,SAA3B,CAAuC,EAAvC,CACA,CACD,IAAI7gB,CAAJ,CACA,IAAIC,GAAG,CAAG,KAAK6K,MAAL,CAAc,KAAKA,MAAL,CAAY5K,MAA1B,CAAmC,CAA7C,CACA,IAAKF,CAAC,CAAGC,GAAG,CAAG,CAAf,CAAkBD,CAAC,EAAI,CAAvB,CAA0BA,CAAC,EAAI,CAA/B,CAAkC,CACjC,GAAI,KAAKgkC,QAAL,CAAchkC,CAAd,CAAJ,CAAsB,CACrB,KAAKgkC,QAAL,CAAchkC,CAAd,EAAiBwU,OAAjB,GACA,CACD,CACD,KAAKwvB,QAAL,CAAc9jC,MAAd,CAAuB,CAAvB,CACA,KAAKsZ,UAAL,CAAgB2+C,aAAhB,CAAgC,IAAhC,CACA,KAAKlc,aAAL,CAAmB7iC,SAAnB,CAA+B,IAA/B,CACA,KAAKs8C,SAAL,CAAiB,IAAjB,CACA,CAfD,CAiBA6H,kBAAkB,CAACn9D,SAAnB,CAA6Bkc,WAA7B,CAA2C,SAAUiwB,GAAV,CAAetK,WAAf,CAA4B,CACtE,GAAK,KAAK1S,aAAL,GAAuBgd,GAAvB,EAA8B,KAAKK,YAAL,CAAkB4wB,WAAlB,GAAkC,IAAhE,EAAwE,CAACv7B,WAA1E,EAA0F,KAAKyzB,SAA/F,EAA4GnpB,GAAG,GAAK,CAAC,CAAzH,CAA4H,CAC3H,OACA,CACD,KAAKhd,aAAL,CAAqBgd,GAArB,CACA,KAAK/yB,UAAL,CAAgBiR,QAAhB,CAA2B8hB,GAAG,CAAG,KAAK0P,aAAL,CAAmB9rB,aAApD,CACA,KAAK3W,UAAL,CAAgBwW,OAAhB,EAA2B,CAA3B,CACA,KAAKxW,UAAL,CAAgBsW,IAAhB,CAAuB,CAAC,KAAK8c,YAAL,CAAkB4wB,WAAnB,EAAkCv7B,WAAzD,CACA,KAAKzoB,UAAL,CAAgBd,gBAAhB,CAAiCzB,YAAjC,CAAgDs1B,GAAhD,CAEA;CACA;CACA,IAAIvsC,CAAJ,CACA,IAAIC,GAAG,CAAG,KAAK6K,MAAL,CAAY5K,MAAtB,CACA,GAAI,CAAC,KAAK2K,cAAV,CAA0B,CACzB,KAAK4vC,WAAL,CAAiBlO,GAAjB,EACA,CAED,IAAKvsC,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B,GAAI,KAAK6K,cAAL,EAAuB,KAAKm5B,QAAL,CAAchkC,CAAd,CAA3B,CAA6C,CAC5C,KAAKgkC,QAAL,CAAchkC,CAAd,EAAiB+W,YAAjB,CAA8Bw1B,GAAG,CAAG,KAAKzhC,MAAL,CAAY9K,CAAZ,EAAegO,EAAnD,EACA,CACD,CACD,GAAI,KAAKwL,UAAL,CAAgBsW,IAApB,CAA0B,CACzB,GAAI,KAAK8c,YAAL,CAAkB4wB,WAAlB,GAAkC,IAAtC,CAA4C,CAC3C,KAAKrF,aAAL,CAAmByG,SAAnB,CAA6B,CAA7B,CAAgC,CAAhC,CAAmC,KAAKR,eAAL,CAAqBhvC,CAAxD,CAA2D,KAAKgvC,eAAL,CAAqB72D,CAAhF,EACA,CAFD,IAEO,CACN,KAAKixD,IAAL,GACA,CACD,IAAKx4D,CAAC,CAAGC,GAAG,CAAG,CAAf,CAAkBD,CAAC,EAAI,CAAvB,CAA0BA,CAAC,EAAI,CAA/B,CAAkC,CACjC,GAAI,KAAK6K,cAAL,EAAuB,KAAKm5B,QAAL,CAAchkC,CAAd,CAA3B,CAA6C,CAC5C,KAAKgkC,QAAL,CAAchkC,CAAd,EAAiBsc,WAAjB,GACA,CACD,CACD,GAAI,KAAKswB,YAAL,CAAkB4wB,WAAlB,GAAkC,IAAtC,CAA4C,CAC3C,KAAKrE,OAAL,GACA,CACD,CACD,CAtCD,CAwCAoE,kBAAkB,CAACn9D,SAAnB,CAA6Bs6C,SAA7B,CAAyC,SAAU9oB,GAAV,CAAe,CACvD,IAAIoS,QAAQ,CAAG,KAAKA,QAApB,CACA,GAAIA,QAAQ,CAACpS,GAAD,CAAR,EAAiB,KAAK9mB,MAAL,CAAY8mB,GAAZ,EAAiB/lB,EAAjB,GAAwB,EAA7C,CAAiD,CAChD,OACA,CACD,IAAIxG,OAAO,CAAG,KAAKu1C,UAAL,CAAgB,KAAK9vC,MAAL,CAAY8mB,GAAZ,CAAhB,CAAkC,IAAlC,CAAwC,KAAKpY,UAA7C,CAAd,CACAwqB,QAAQ,CAACpS,GAAD,CAAR,CAAgBvsB,OAAhB,CACAA,OAAO,CAAC0V,eAAR,GACA;CACD;CACA,SAVA,CAaAwiD,kBAAkB,CAACn9D,SAAnB,CAA6Bu6C,oBAA7B,CAAoD,UAAY,CAC/D,MAAO,KAAKkB,eAAL,CAAqB37C,MAA5B,CAAoC,CACnC,IAAImF,OAAO,CAAG,KAAKw2C,eAAL,CAAqBrb,GAArB,EAAd,CACAn7B,OAAO,CAAC67C,cAAR,GACA,CACD,CALD,CAOAqc,kBAAkB,CAACn9D,SAAnB,CAA6Bqe,IAA7B,CAAoC,UAAY,CAC/C,KAAKw9B,aAAL,CAAmB7iC,SAAnB,CAA6B9T,KAA7B,CAAmCI,OAAnC,CAA6C,MAA7C,CACA,CAFD,CAIA63D,kBAAkB,CAACn9D,SAAnB,CAA6Bse,IAA7B,CAAoC,UAAY,CAC/C,KAAKu9B,aAAL,CAAmB7iC,SAAnB,CAA6B9T,KAA7B,CAAmCI,OAAnC,CAA6C,OAA7C,CACA,CAFD,CAIA,SAASm5D,aAAT,CAAuB90D,IAAvB,CAA6ByP,UAA7B,CAAyChN,IAAzC,CAA+C,CAC9C,KAAK3B,cAAL,CAAsB,KAAtB,CACA,KAAKC,MAAL,CAAcf,IAAI,CAACe,MAAnB,CACA,KAAK+wC,eAAL,CAAuB,EAAvB,CACA,KAAK7X,QAAL,CAAgB5gC,gBAAgB,CAAC,KAAK0H,MAAL,CAAY5K,MAAb,CAAhC,CACA,KAAKmhD,WAAL,CAAiBt3C,IAAjB,CAAuByP,UAAvB,CAAmChN,IAAnC,EACA,KAAK2J,EAAL,CAAUpM,IAAI,CAACoM,EAAL,CAAUkU,eAAe,CAAC2G,OAAhB,CAAwB,IAAxB,CAA8BjnB,IAAI,CAACoM,EAAnC,CAAuC,CAAvC,CAA0CqD,UAAU,CAAC9B,SAArD,CAAgE,IAAhE,CAAV,CAAkF,CAAEwiC,YAAY,CAAE,IAAhB,CAA5F,CACA,CAEDr6C,eAAe,CAAC,CAAC09D,kBAAD,CAAqBzH,YAArB,CAAmC4C,aAAnC,CAAD,CAAoDmG,aAApD,CAAf,CAEAA,aAAa,CAACz+D,SAAd,CAAwBmhD,kBAAxB,CAA6C,UAAY,CACxD,IAAI5vC,GAAG,CAAG,KAAKwmD,aAAf,CACAxmD,GAAG,CAACymD,SAAJ,GACAzmD,GAAG,CAAC0mD,MAAJ,CAAW,CAAX,CAAc,CAAd,EACA1mD,GAAG,CAAC2mD,MAAJ,CAAW,KAAKvuD,IAAL,CAAUqlB,CAArB,CAAwB,CAAxB,EACAzd,GAAG,CAAC2mD,MAAJ,CAAW,KAAKvuD,IAAL,CAAUqlB,CAArB,CAAwB,KAAKrlB,IAAL,CAAUxC,CAAlC,EACAoK,GAAG,CAAC2mD,MAAJ,CAAW,CAAX,CAAc,KAAKvuD,IAAL,CAAUxC,CAAxB,EACAoK,GAAG,CAAC2mD,MAAJ,CAAW,CAAX,CAAc,CAAd,EACA3mD,GAAG,CAAC8mD,IAAJ,GACA,IAAIz4D,CAAJ,CACA,IAAIC,GAAG,CAAG,KAAK6K,MAAL,CAAY5K,MAAtB,CACA,IAAKF,CAAC,CAAGC,GAAG,CAAG,CAAf,CAAkBD,CAAC,EAAI,CAAvB,CAA0BA,CAAC,EAAI,CAA/B,CAAkC,CACjC,GAAI,KAAK6K,cAAL,EAAuB,KAAKm5B,QAAL,CAAchkC,CAAd,CAA3B,CAA6C,CAC5C,KAAKgkC,QAAL,CAAchkC,CAAd,EAAiBsc,WAAjB,GACA,CACD,CACD,CAhBD,CAkBAuiD,aAAa,CAACz+D,SAAd,CAAwBoU,OAAxB,CAAkC,UAAY,CAC7C,IAAIxU,CAAJ,CACA,IAAIC,GAAG,CAAG,KAAK6K,MAAL,CAAY5K,MAAtB,CACA,IAAKF,CAAC,CAAGC,GAAG,CAAG,CAAf,CAAkBD,CAAC,EAAI,CAAvB,CAA0BA,CAAC,EAAI,CAA/B,CAAkC,CACjC,GAAI,KAAKgkC,QAAL,CAAchkC,CAAd,CAAJ,CAAsB,CACrB,KAAKgkC,QAAL,CAAchkC,CAAd,EAAiBwU,OAAjB,GACA,CACD,CACD,KAAK1J,MAAL,CAAc,IAAd,CACA,KAAKk5B,QAAL,CAAgB,IAAhB,CACA,CAVD,CAYA66B,aAAa,CAACz+D,SAAd,CAAwB06C,UAAxB,CAAqC,SAAU/wC,IAAV,CAAgB,CACpD,WAAW80D,aAAJ,CAAkB90D,IAAlB,CAAwB,KAAKyP,UAA7B,CAAyC,IAAzC,CAAP,CACA,CAFD,CAIA,SAASslD,cAAT,CAAwB7iB,aAAxB,CAAuCma,MAAvC,CAA+C,CAC9C,KAAKna,aAAL,CAAqBA,aAArB,CACA,KAAKrP,YAAL,CAAoB,CACnB4wB,WAAW,CAAGpH,MAAM,EAAIA,MAAM,CAACoH,WAAP,GAAuB7jD,SAAlC,CAA+Cy8C,MAAM,CAACoH,WAAtD,CAAoE,IAD9D,CAEnBC,OAAO,CAAGrH,MAAM,EAAIA,MAAM,CAACqH,OAAlB,EAA8B,IAFpB,CAGnBliB,eAAe,CAAG6a,MAAM,EAAIA,MAAM,CAAC7a,eAAlB,EAAsC,KAHpC,CAInBka,mBAAmB,CAAGW,MAAM,EAAIA,MAAM,CAACX,mBAAlB,EAA0C,eAJ5C,CAKnB7T,wBAAwB,CAAGwU,MAAM,EAAIA,MAAM,CAACxU,wBAAlB,EAA+C,gBALtD,CAMnB0T,iBAAiB,CAAGc,MAAM,EAAIA,MAAM,CAACd,iBAAlB,EAAwC,SANxC,CAOnBC,SAAS,CAAGa,MAAM,EAAIA,MAAM,CAACb,SAAlB,EAAgC,EAPxB,CAQnBhpD,EAAE,CAAG6pD,MAAM,EAAIA,MAAM,CAAC7pD,EAAlB,EAAyB,EARV,CAApB,CAUA,KAAKqgC,YAAL,CAAkB8wB,GAAlB,CAAyBtH,MAAM,EAAIA,MAAM,CAACsH,GAAlB,EAA0B,CAAlD,CACA,GAAI,KAAKzhB,aAAL,CAAmB9iC,OAAvB,CAAgC,CAC/B,KAAKyzB,YAAL,CAAkB8wB,GAAlB,CAAyBtH,MAAM,EAAIA,MAAM,CAACsH,GAAlB,EAA0B57D,MAAM,CAAC67D,gBAAjC,EAAqD,CAA7E,CACA,CACD,KAAKpuC,aAAL,CAAqB,CAAC,CAAtB,CACA,KAAK/V,UAAL,CAAkB,CACjBiR,QAAQ,CAAE,CAAC,CADM,CAEjBqF,IAAI,CAAE,KAFW,CAGjB8c,YAAY,CAAE,KAAKA,YAHF,CAIjBkuB,kBAAkB,CAAE,CAAC,CAJJ,CAAlB,CAMA,KAAK8C,WAAL,CAAmB,IAAI/G,aAAJ,EAAnB,CACA,KAAK7yB,QAAL,CAAgB,EAAhB,CACA,KAAK6X,eAAL,CAAuB,EAAvB,CACA,KAAK1L,YAAL,CAAoB,IAAIjZ,MAAJ,EAApB,CACA,KAAKrsB,cAAL,CAAsB,KAAtB,CACA,KAAKmR,YAAL,CAAoB,QAApB,CACA,CACDnc,eAAe,CAAC,CAAC09D,kBAAD,CAAD,CAAuBuB,cAAvB,CAAf,CAEAA,cAAc,CAAC1+D,SAAf,CAAyB06C,UAAzB,CAAsC,SAAU/wC,IAAV,CAAgB,CACrD,WAAW80D,aAAJ,CAAkB90D,IAAlB,CAAwB,KAAKyP,UAA7B,CAAyC,IAAzC,CAAP,CACA,CAFD,CAIA,SAASulD,YAAT,EAAwB,EACxBA,YAAY,CAAC3+D,SAAb,CAAyB,CACxB4+D,cAAc,CAAE,UAAY,EADJ,CAExBvf,mBAAmB,CAAE,UAAY,CAChC,KAAKnH,WAAL,CAAmB74C,SAAS,CAAC,KAAKsK,IAAL,CAAUk1D,EAAV,EAAgB,KAAjB,CAA5B,CACA,GAAI,KAAKl1D,IAAL,CAAUyB,OAAd,CAAuB,CACtB,KAAK2pD,UAAL,CAAkB/rD,QAAQ,CAAC,KAAD,CAA1B,CACA,KAAKmvC,YAAL,CAAoBnvC,QAAQ,CAAC,GAAD,CAA5B,CACA,KAAK60C,aAAL,CAAqB,KAAK1F,YAA1B,CACA,KAAK4c,UAAL,CAAgBxhD,WAAhB,CAA4B,KAAK4kC,YAAjC,EACA,KAAKD,WAAL,CAAiB3kC,WAAjB,CAA6B,KAAKwhD,UAAlC,EACA,CAND,IAMO,CACN,KAAK5c,YAAL,CAAoB,KAAKD,WAAzB,CACA,CACDlzC,QAAQ,CAAC,KAAKkzC,WAAN,CAAR,CACA,CAduB,CAexBoH,uBAAuB,CAAE,UAAY,CACpC,KAAKoB,wBAAL,CAAgC,IAAIkX,SAAJ,CAAc,IAAd,CAAhC,CACA,KAAKpY,kBAAL,CAA0B,KAAKtH,WAA/B,CACA,KAAK2F,aAAL,CAAqB,KAAK1F,YAA1B,CACA,GAAI,KAAKxuC,IAAL,CAAUu2C,EAAd,CAAkB,CACjB,KAAK/H,YAAL,CAAkB73B,YAAlB,CAA+B,IAA/B,CAAqC,KAAK3W,IAAL,CAAUu2C,EAA/C,EACA,CACD,GAAI,KAAKv2C,IAAL,CAAU8E,EAAd,CAAkB,CACjB,KAAK0pC,YAAL,CAAkB73B,YAAlB,CAA+B,OAA/B,CAAwC,KAAK3W,IAAL,CAAU8E,EAAlD,EACA,CACD,GAAI,KAAK9E,IAAL,CAAUsuC,EAAV,GAAiB,CAArB,CAAwB,CACvB,KAAKF,YAAL,GACA,CACD,CA5BuB,CA6BxBwI,aAAa,CAAE,UAAY,CAC1B,IAAIue,uBAAuB,CAAG,KAAKtf,kBAAL,CAA0B,KAAKA,kBAAL,CAAwBt6C,KAAlD,CAA0D,EAAxF,CACA,GAAI,KAAKonC,cAAL,CAAoB0P,OAAxB,CAAiC,CAChC,IAAI+iB,WAAW,CAAG,KAAKzyB,cAAL,CAAoBhL,GAApB,CAAwBxF,KAAxB,EAAlB,CACAgjC,uBAAuB,CAACtmC,SAAxB,CAAoCumC,WAApC,CACAD,uBAAuB,CAACE,eAAxB,CAA0CD,WAA1C,CACA,CACD,GAAI,KAAKzyB,cAAL,CAAoB2P,MAAxB,CAAgC,CAC/B6iB,uBAAuB,CAACzvB,OAAxB,CAAkC,KAAK/C,cAAL,CAAoBC,KAApB,CAA0B5/B,CAA1B,CAA4BtF,CAA9D,CACA,CACD,CAvCuB,CAwCxB6U,WAAW,CAAE,UAAY;CAExB;CACA,GAAI,KAAKvS,IAAL,CAAUw2C,EAAV,EAAgB,KAAKvU,MAAzB,CAAiC,CAChC,OACA,CACD,KAAKuQ,eAAL,GACA,KAAKzP,gBAAL,GACA,KAAK6T,aAAL,GACA,KAAKY,kBAAL,GACA,GAAI,KAAKpxB,aAAT,CAAwB,CACvB,KAAKA,aAAL,CAAqB,KAArB,CACA,CACD,CArDuB,CAsDxB3b,OAAO,CAAE,UAAY,CACpB,KAAK+jC,YAAL,CAAoB,IAApB,CACA,KAAKqH,kBAAL,CAA0B,IAA1B,CACA,GAAI,KAAKD,YAAT,CAAuB,CACtB,KAAKA,YAAL,CAAoB,IAApB,CACA,CACD,GAAI,KAAKlS,WAAT,CAAsB,CACrB,KAAKA,WAAL,CAAiBj5B,OAAjB,GACA,KAAKi5B,WAAL,CAAmB,IAAnB,CACA,CACD,CAhEuB,CAiExBoT,0BAA0B,CAAE,UAAY,CACvC,KAAKpT,WAAL,CAAmB,IAAIoP,WAAJ,CAAgB,KAAK9yC,IAArB,CAA2B,IAA3B,CAAiC,KAAKyP,UAAtC,CAAnB,CACA,CAnEuB,CAoExB6lD,UAAU,CAAE,UAAY,EApEA,CAsExBte,QAAQ,CAAE,UAAY,EAtEE,CAAzB,CAwEAge,YAAY,CAAC3+D,SAAb,CAAuBu5C,cAAvB,CAAwC6F,cAAc,CAACp/C,SAAf,CAAyBu5C,cAAjE,CACAolB,YAAY,CAAC3+D,SAAb,CAAuBwgD,kBAAvB,CAA4Cme,YAAY,CAAC3+D,SAAb,CAAuBoU,OAAnE,CACAuqD,YAAY,CAAC3+D,SAAb,CAAuBo7C,qBAAvB,CAA+ChB,YAAY,CAACp6C,SAAb,CAAuBo7C,qBAAtE,CAEA,SAAS8jB,aAAT,CAAuBv1D,IAAvB,CAA6ByP,UAA7B,CAAyChN,IAAzC,CAA+C,CAC9C,KAAK60C,WAAL,CAAiBt3C,IAAjB,CAAuByP,UAAvB,CAAmChN,IAAnC,EACA,CACD3M,eAAe,CAAC,CAACi4C,WAAD,CAAcoE,gBAAd,CAAgC6iB,YAAhC,CAA8C/d,gBAA9C,CAAgErI,YAAhE,CAA8EwI,oBAA9E,CAAD,CAAsGme,aAAtG,CAAf,CAEAA,aAAa,CAACl/D,SAAd,CAAwBkhD,aAAxB,CAAwC,UAAY,CACnD,IAAInE,IAAJ,CACA,GAAI,KAAKpzC,IAAL,CAAUyB,OAAd,CAAuB,CACtB2xC,IAAI,CAAG/zC,QAAQ,CAAC,MAAD,CAAf,CACA+zC,IAAI,CAACz8B,YAAL,CAAkB,OAAlB,CAA2B,KAAK3W,IAAL,CAAUw/C,EAArC,EACApM,IAAI,CAACz8B,YAAL,CAAkB,QAAlB,CAA4B,KAAK3W,IAAL,CAAU4iB,EAAtC,EACAwwB,IAAI,CAACz8B,YAAL,CAAkB,MAAlB,CAA0B,KAAK3W,IAAL,CAAUsgC,EAApC,EACA,KAAK8qB,UAAL,CAAgBz0C,YAAhB,CAA6B,OAA7B,CAAsC,KAAK3W,IAAL,CAAUw/C,EAAhD,EACA,KAAK4L,UAAL,CAAgBz0C,YAAhB,CAA6B,QAA7B,CAAuC,KAAK3W,IAAL,CAAU4iB,EAAjD,EACA,CAPD,IAOO,CACNwwB,IAAI,CAAG19C,SAAS,CAAC,KAAD,CAAhB,CACA09C,IAAI,CAAC73C,KAAL,CAAWmM,KAAX,CAAmB,KAAK1H,IAAL,CAAUw/C,EAAV,CAAe,IAAlC,CACApM,IAAI,CAAC73C,KAAL,CAAWoM,MAAX,CAAoB,KAAK3H,IAAL,CAAU4iB,EAAV,CAAe,IAAnC,CACAwwB,IAAI,CAAC73C,KAAL,CAAWi6D,eAAX,CAA6B,KAAKx1D,IAAL,CAAUsgC,EAAvC,CACA,CACD,KAAKkO,YAAL,CAAkB5kC,WAAlB,CAA8BwpC,IAA9B,EACA,CAhBD,CAkBA,SAASqiB,aAAT,CAAuBz1D,IAAvB,CAA6ByP,UAA7B,CAAyChN,IAAzC,CAA+C;CAE9C,KAAKP,MAAL,CAAc,EAAd,CACA;CACA,KAAKgsC,UAAL,CAAkBluC,IAAI,CAACkC,MAAvB,CACA;CACA,KAAKw7C,UAAL,CAAkB,EAAlB,CACA;CACA,KAAKzF,cAAL,CAAsB,EAAtB,CACA;CACA,KAAK9J,SAAL,CAAiB,EAAjB,CACA;CACA,KAAKoK,iBAAL,CAAyB,EAAzB,CACA;CACA,KAAKoF,gBAAL,CAAwB,EAAxB,CACA,KAAK+X,eAAL,CAAuBr2D,QAAQ,CAAC,GAAD,CAA/B,CACA,KAAKi4C,WAAL,CAAiBt3C,IAAjB,CAAuByP,UAAvB,CAAmChN,IAAnC,EACA;CACA;CACA,KAAKi5C,YAAL,CAAoB,EAApB,CACA,KAAKia,WAAL,CAAmB,CAClBn8C,CAAC,CAAE,MADe,CAElBuI,CAAC,CAAE,CAAC,MAFc,CAGlBvkB,CAAC,CAAE,CAHe,CAIlB6nB,CAAC,CAAE,CAJe,CAAnB,CAMA,CACDvvB,eAAe,CAAC,CAACi4C,WAAD,CAAcoE,gBAAd,CAAgCojB,aAAhC,CAA+C9X,eAA/C,CAAgEuX,YAAhE,CAA8E/d,gBAA9E,CAAgGrI,YAAhG,CAA8G9M,iBAA9G,CAAD,CAAmI2zB,aAAnI,CAAf,CACAA,aAAa,CAACp/D,SAAd,CAAwBu/D,iBAAxB,CAA4CH,aAAa,CAACp/D,SAAd,CAAwBmhD,kBAApE,CAEAie,aAAa,CAACp/D,SAAd,CAAwBkhD,aAAxB,CAAwC,UAAY,CACnD,IAAI7c,IAAJ,CACA,KAAK6T,WAAL,CAAiBhzC,KAAjB,CAAuBoiC,QAAvB,CAAkC,CAAlC,CACA,GAAI,KAAK39B,IAAL,CAAUyB,OAAd,CAAuB,CACtB,KAAK+sC,YAAL,CAAkB5kC,WAAlB,CAA8B,KAAK8rD,eAAnC,EACAh7B,IAAI,CAAG,KAAK0wB,UAAZ,CACA,CAHD,IAGO,CACN1wB,IAAI,CAAGr7B,QAAQ,CAAC,KAAD,CAAf,CACA,IAAIw9B,IAAI,CAAG,KAAKp6B,IAAL,CAAUzC,IAAV,CAAiB,KAAKyC,IAAL,CAAUzC,IAA3B,CAAkC,KAAKyP,UAAL,CAAgBo6B,QAA7D,CACAnP,IAAI,CAAC/jB,YAAL,CAAkB,OAAlB,CAA2BkmB,IAAI,CAACxX,CAAhC,EACAqV,IAAI,CAAC/jB,YAAL,CAAkB,QAAlB,CAA4BkmB,IAAI,CAACr/B,CAAjC,EACAk9B,IAAI,CAAC9wB,WAAL,CAAiB,KAAK8rD,eAAtB,EACA,KAAKlnB,YAAL,CAAkB5kC,WAAlB,CAA8B8wB,IAA9B,EACA,CAED,KAAKqjB,YAAL,CAAkB,KAAK7P,UAAvB,CAAmC,KAAKC,SAAxC,CAAmD,KAAKuN,YAAxD,CAAsE,KAAKga,eAA3E,CAA4F,CAA5F,CAA+F,EAA/F,CAAmG,IAAnG,EACA,KAAK1X,kBAAL,GACA,KAAK6X,SAAL,CAAiBn7B,IAAjB,CACA,CAlBD,CAoBA+6B,aAAa,CAACp/D,SAAd,CAAwBy/D,mBAAxB,CAA8C,SAAUld,YAAV,CAAwB17B,KAAxB,CAA+B,CAC5E,IAAIjnB,CAAJ,CACA,IAAIC,GAAG,CAAG0iD,YAAY,CAACziD,MAAvB,CACA,IAAKF,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5BinB,KAAK,CAAG07B,YAAY,CAAC3iD,CAAD,CAAZ,CAAgBwlC,MAAhB,CAAuB/9B,CAAvB,CAAyB+zB,iBAAzB,CAA2CvU,KAAK,CAAC,CAAD,CAAhD,CAAqDA,KAAK,CAAC,CAAD,CAA1D,CAA+D,CAA/D,CAAR,CACA,CACD,OAAOA,KAAP,CACA,CAPD,CASAu4C,aAAa,CAACp/D,SAAd,CAAwB0/D,yBAAxB,CAAoD,SAAUC,IAAV,CAAgBC,WAAhB,CAA6B,CAChF,IAAIntC,KAAK,CAAGktC,IAAI,CAACpzC,EAAL,CAAQllB,CAApB,CACA,IAAIk7C,YAAY,CAAGod,IAAI,CAACpd,YAAxB,CACA,IAAI3iD,CAAJ,CACA,IAAIC,GAAG,CAAG4yB,KAAK,CAACnO,OAAhB,CACA,IAAIu7C,MAAJ,CACA,IAAIC,MAAJ,CACA,IAAIC,UAAJ,CACA,IAAIC,UAAJ,CACA,GAAIngE,GAAG,EAAI,CAAX,CAAc,CACb,OACA,CACD,IAAKD,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAG,CAAG,CAAtB,CAAyBD,CAAC,EAAI,CAA9B,CAAiC,CAChCigE,MAAM,CAAG,KAAKJ,mBAAL,CAAyBld,YAAzB,CAAuC9vB,KAAK,CAACprB,CAAN,CAAQzH,CAAR,CAAvC,CAAT,CACAkgE,MAAM,CAAG,KAAKL,mBAAL,CAAyBld,YAAzB,CAAuC9vB,KAAK,CAAC9lB,CAAN,CAAQ/M,CAAR,CAAvC,CAAT,CACAmgE,UAAU,CAAG,KAAKN,mBAAL,CAAyBld,YAAzB,CAAuC9vB,KAAK,CAAC7yB,CAAN,CAAQA,CAAC,CAAG,CAAZ,CAAvC,CAAb,CACAogE,UAAU,CAAG,KAAKP,mBAAL,CAAyBld,YAAzB,CAAuC9vB,KAAK,CAACprB,CAAN,CAAQzH,CAAC,CAAG,CAAZ,CAAvC,CAAb,CACA,KAAKqgE,WAAL,CAAiBJ,MAAjB,CAAyBC,MAAzB,CAAiCC,UAAjC,CAA6CC,UAA7C,CAAyDJ,WAAzD,EACA,CACD,GAAIntC,KAAK,CAACpkB,CAAV,CAAa,CACZwxD,MAAM,CAAG,KAAKJ,mBAAL,CAAyBld,YAAzB,CAAuC9vB,KAAK,CAACprB,CAAN,CAAQzH,CAAR,CAAvC,CAAT,CACAkgE,MAAM,CAAG,KAAKL,mBAAL,CAAyBld,YAAzB,CAAuC9vB,KAAK,CAAC9lB,CAAN,CAAQ/M,CAAR,CAAvC,CAAT,CACAmgE,UAAU,CAAG,KAAKN,mBAAL,CAAyBld,YAAzB,CAAuC9vB,KAAK,CAAC7yB,CAAN,CAAQ,CAAR,CAAvC,CAAb,CACAogE,UAAU,CAAG,KAAKP,mBAAL,CAAyBld,YAAzB,CAAuC9vB,KAAK,CAACprB,CAAN,CAAQ,CAAR,CAAvC,CAAb,CACA,KAAK44D,WAAL,CAAiBJ,MAAjB,CAAyBC,MAAzB,CAAiCC,UAAjC,CAA6CC,UAA7C,CAAyDJ,WAAzD,EACA,CACD,CA1BD,CA4BAR,aAAa,CAACp/D,SAAd,CAAwBigE,WAAxB,CAAsC,SAAUJ,MAAV,CAAkBC,MAAlB,CAA0BC,UAA1B,CAAsCC,UAAtC,CAAkDJ,WAAlD,CAA+D,CACpG,KAAKM,gBAAL,CAAsBL,MAAtB,CAA8BC,MAA9B,CAAsCC,UAAtC,CAAkDC,UAAlD,EACA,IAAIG,MAAM,CAAG,KAAKC,gBAAlB,CACAR,WAAW,CAACz8C,CAAZ,CAAgBhf,KAAK,CAACg8D,MAAM,CAAC96D,IAAR,CAAcu6D,WAAW,CAACz8C,CAA1B,CAArB,CACAy8C,WAAW,CAACS,IAAZ,CAAmBp8D,KAAK,CAACk8D,MAAM,CAACG,KAAR,CAAeV,WAAW,CAACS,IAA3B,CAAxB,CACAT,WAAW,CAACl0C,CAAZ,CAAgBvnB,KAAK,CAACg8D,MAAM,CAAC/6D,GAAR,CAAaw6D,WAAW,CAACl0C,CAAzB,CAArB,CACAk0C,WAAW,CAACW,IAAZ,CAAmBt8D,KAAK,CAACk8D,MAAM,CAACK,MAAR,CAAgBZ,WAAW,CAACW,IAA5B,CAAxB,CACA,CAPD,CASAnB,aAAa,CAACp/D,SAAd,CAAwBogE,gBAAxB,CAA2C,CAC1C/6D,IAAI,CAAE,CADoC,CAE1Ci7D,KAAK,CAAE,CAFmC,CAG1Cl7D,GAAG,CAAE,CAHqC,CAI1Co7D,MAAM,CAAE,CAJkC,CAA3C,CAOApB,aAAa,CAACp/D,SAAd,CAAwBygE,eAAxB,CAA0C,CACzCt9C,CAAC,CAAE,CADsC,CAEzCk9C,IAAI,CAAE,CAFmC,CAGzC30C,CAAC,CAAE,CAHsC,CAIzC60C,IAAI,CAAE,CAJmC,CAKzClvD,KAAK,CAAE,CALkC,CAMzCC,MAAM,CAAE,CANiC,CAA1C,CASA8tD,aAAa,CAACp/D,SAAd,CAAwBkgE,gBAAxB,CAA2C,SAAU3rC,EAAV,CAAcC,EAAd,CAAkB+E,EAAlB,CAAsBmnC,EAAtB,CAA0B,CACpE,IAAIP,MAAM,CAAG,CAAC,CAAC5rC,EAAE,CAAC,CAAD,CAAH,CAAQmsC,EAAE,CAAC,CAAD,CAAV,CAAD,CAAiB,CAACnsC,EAAE,CAAC,CAAD,CAAH,CAAQmsC,EAAE,CAAC,CAAD,CAAV,CAAjB,CAAb,CAEA,IAAK,IAAI5yD,CAAJ,CAAOtG,CAAP,CAAU6G,CAAV,CAAazG,CAAb,CAAgB+4D,IAAhB,CAAsBr4C,EAAtB,CAA0Bs4C,EAA1B,CAA8BhhE,CAAC,CAAG,CAAvC,CAA0CA,CAAC,CAAG,CAA9C,CAAiD,EAAEA,CAAnD,CAAsD;CACrD4H,CAAC,CAAG,EAAI+sB,EAAE,CAAC30B,CAAD,CAAN,CAAY,GAAK40B,EAAE,CAAC50B,CAAD,CAAnB,CAAyB,EAAI25B,EAAE,CAAC35B,CAAD,CAAnC,CACAkO,CAAC,CAAG,CAAC,CAAD,CAAKymB,EAAE,CAAC30B,CAAD,CAAP,CAAa,EAAI40B,EAAE,CAAC50B,CAAD,CAAnB,CAAyB,EAAI25B,EAAE,CAAC35B,CAAD,CAA/B,CAAqC,EAAI8gE,EAAE,CAAC9gE,CAAD,CAA/C,CACAyO,CAAC,CAAG,EAAImmB,EAAE,CAAC50B,CAAD,CAAN,CAAY,EAAI20B,EAAE,CAAC30B,CAAD,CAAtB,CAEA4H,CAAC,EAAI,CAAL,CAAQ;CACRsG,CAAC,EAAI,CAAL,CAAQ;CACRO,CAAC,EAAI,CAAL,CAAQ;CAER,GAAIP,CAAC,GAAK,CAAN,EAAWtG,CAAC,GAAK,CAArB,CAAwB,CAAxB,QAEWsG,CAAC,GAAK,CAAV,CAAa,CACnBlG,CAAC,CAAG,CAACyG,CAAD,CAAK7G,CAAT,CAEA,GAAII,CAAC,CAAG,CAAJ,EAASA,CAAC,CAAG,CAAjB,CAAoB,CACnBu4D,MAAM,CAACvgE,CAAD,CAAN,CAAUuB,IAAV,CAAe,KAAK0/D,UAAL,CAAgBj5D,CAAhB,CAAmB2sB,EAAnB,CAAuBC,EAAvB,CAA2B+E,EAA3B,CAA+BmnC,EAA/B,CAAmC9gE,CAAnC,CAAf,EACA,CACD,CANM,IAMA,CACN+gE,IAAI,CAAGn5D,CAAC,CAAGA,CAAJ,CAAQ,EAAI6G,CAAJ,CAAQP,CAAvB,CAEA,GAAI6yD,IAAI,EAAI,CAAZ,CAAe,CACdr4C,EAAE,CAAG,CAAC,CAAC9gB,CAAD,CAAK3D,MAAM,CAAC88D,IAAD,CAAZ,GAAuB,EAAI7yD,CAA3B,CAAL,CACA,GAAIwa,EAAE,CAAG,CAAL,EAAUA,EAAE,CAAG,CAAnB,CAAsB63C,MAAM,CAACvgE,CAAD,CAAN,CAAUuB,IAAV,CAAe,KAAK0/D,UAAL,CAAgBv4C,EAAhB,CAAoBiM,EAApB,CAAwBC,EAAxB,CAA4B+E,EAA5B,CAAgCmnC,EAAhC,CAAoC9gE,CAApC,CAAf,EACtBghE,EAAE,CAAG,CAAC,CAACp5D,CAAD,CAAK3D,MAAM,CAAC88D,IAAD,CAAZ,GAAuB,EAAI7yD,CAA3B,CAAL,CACA,GAAI8yD,EAAE,CAAG,CAAL,EAAUA,EAAE,CAAG,CAAnB,CAAsBT,MAAM,CAACvgE,CAAD,CAAN,CAAUuB,IAAV,CAAe,KAAK0/D,UAAL,CAAgBD,EAAhB,CAAoBrsC,EAApB,CAAwBC,EAAxB,CAA4B+E,EAA5B,CAAgCmnC,EAAhC,CAAoC9gE,CAApC,CAAf,EACtB,CACD,CACD,CAED,KAAKwgE,gBAAL,CAAsB/6D,IAAtB,CAA6BlB,KAAK,CAACjB,KAAN,CAAY,IAAZ,CAAkBi9D,MAAM,CAAC,CAAD,CAAxB,CAA7B,CACA,KAAKC,gBAAL,CAAsBh7D,GAAtB,CAA4BjB,KAAK,CAACjB,KAAN,CAAY,IAAZ,CAAkBi9D,MAAM,CAAC,CAAD,CAAxB,CAA5B,CACA,KAAKC,gBAAL,CAAsBE,KAAtB,CAA8Br8D,KAAK,CAACf,KAAN,CAAY,IAAZ,CAAkBi9D,MAAM,CAAC,CAAD,CAAxB,CAA9B,CACA,KAAKC,gBAAL,CAAsBI,MAAtB,CAA+Bv8D,KAAK,CAACf,KAAN,CAAY,IAAZ,CAAkBi9D,MAAM,CAAC,CAAD,CAAxB,CAA/B,CACA,CApCD,CAsCAf,aAAa,CAACp/D,SAAd,CAAwB6gE,UAAxB,CAAqC,SAAUj5D,CAAV,CAAa2sB,EAAb,CAAiBC,EAAjB,CAAqB+E,EAArB,CAAyBmnC,EAAzB,CAA6B9gE,CAA7B,CAAgC,CACpE,OAAO8D,KAAK,CAAC,EAAIkE,CAAL,CAAQ,CAAR,CAAL,CAAkB2sB,EAAE,CAAC30B,CAAD,CAApB,CACJ,EAAI8D,KAAK,CAAC,EAAIkE,CAAL,CAAQ,CAAR,CAAT,CAAsBA,CAAtB,CAA0B4sB,EAAE,CAAC50B,CAAD,CADxB,CAEJ,GAAK,EAAIgI,CAAT,EAAclE,KAAK,CAACkE,CAAD,CAAI,CAAJ,CAAnB,CAA4B2xB,EAAE,CAAC35B,CAAD,CAF1B,CAGJ8D,KAAK,CAACkE,CAAD,CAAI,CAAJ,CAAL,CAAc84D,EAAE,CAAC9gE,CAAD,CAHnB,CAIA,CALD,CAOAw/D,aAAa,CAACp/D,SAAd,CAAwB8gE,oBAAxB,CAA+C,SAAUhpB,SAAV,CAAqB8nB,WAArB,CAAkC,CAChF,IAAIhgE,CAAJ,CACA,IAAIC,GAAG,CAAGi4C,SAAS,CAACh4C,MAApB,CACA,IAAKF,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B,GAAIk4C,SAAS,CAACl4C,CAAD,CAAT,EAAgBk4C,SAAS,CAACl4C,CAAD,CAAT,CAAa2sB,EAAjC,CAAqC,CACpC,KAAKmzC,yBAAL,CAA+B5nB,SAAS,CAACl4C,CAAD,CAAxC,CAA6CggE,WAA7C,EACA,CAFD,QAEW9nB,SAAS,CAACl4C,CAAD,CAAT,EAAgBk4C,SAAS,CAACl4C,CAAD,CAAT,CAAa8M,EAAjC,CAAqC,CAC3C,KAAKo0D,oBAAL,CAA0BhpB,SAAS,CAACl4C,CAAD,CAAT,CAAa8M,EAAvC,CAA2CkzD,WAA3C,EACA,CAFM,QAEI9nB,SAAS,CAACl4C,CAAD,CAAT,EAAgBk4C,SAAS,CAACl4C,CAAD,CAAT,CAAasF,KAA7B,EAAsC4yC,SAAS,CAACl4C,CAAD,CAAT,CAAaovB,CAAvD,CAA0D,CAChE,KAAK+xC,uBAAL,CAA6BjpB,SAAS,CAACl4C,CAAD,CAAT,CAAaovB,CAA1C,CAA6C4wC,WAA7C,EACA,CACD,CACD,CAZD,CAcAR,aAAa,CAACp/D,SAAd,CAAwB+gE,uBAAxB,CAAkD,SAAUC,aAAV,CAAyBpB,WAAzB,CAAsC,CACvF,IAAIvuD,KAAK,CAAG,CAAZ,CACA,GAAI2vD,aAAa,CAACn2C,SAAlB,CAA6B,CAC5B,IAAK,IAAIjrB,CAAC,CAAG,CAAb,CAAgBA,CAAC,CAAGohE,aAAa,CAACn2C,SAAd,CAAwB/qB,MAA5C,CAAoDF,CAAC,EAAI,CAAzD,CAA4D,CAC3D,IAAIqhE,GAAG,CAAGD,aAAa,CAACn2C,SAAd,CAAwBjrB,CAAxB,EAA2BwH,CAArC,CACA,GAAI65D,GAAG,CAAG5vD,KAAV,CAAiB,CAChBA,KAAK,CAAG4vD,GAAR,CACA,CACD,CACD5vD,KAAK,EAAI2vD,aAAa,CAACvxC,IAAvB,CACA,CARD,IAQO,CACNpe,KAAK,CAAG2vD,aAAa,CAAC35D,CAAd,CAAkB25D,aAAa,CAACvxC,IAAxC,CACA,CAEDmwC,WAAW,CAACz8C,CAAZ,EAAiB9R,KAAjB,CACAuuD,WAAW,CAACS,IAAZ,EAAoBhvD,KAApB,CACAuuD,WAAW,CAACl0C,CAAZ,EAAiBra,KAAjB,CACAuuD,WAAW,CAACW,IAAZ,EAAoBlvD,KAApB,CACA,CAlBD,CAoBA+tD,aAAa,CAACp/D,SAAd,CAAwBkhE,kBAAxB,CAA6C,SAAUtuD,GAAV,CAAe,CAC3D,YAAY0sD,WAAL,CAAiBn8C,CAAjB,EAAsBvQ,GAAG,CAACuQ,CAA1B,EACH,KAAKm8C,WAAL,CAAiB5zC,CAAjB,EAAsB9Y,GAAG,CAAC8Y,CADvB,EAEH,KAAK4zC,WAAL,CAAiBjuD,KAAjB,CAAyB,KAAKiuD,WAAL,CAAiBn8C,CAA1C,EAA+CvQ,GAAG,CAACuQ,CAAJ,CAAQvQ,GAAG,CAACvB,KAFxD,EAGH,KAAKiuD,WAAL,CAAiBhuD,MAAjB,CAA0B,KAAKguD,WAAL,CAAiB5zC,CAA3C,EAAgD9Y,GAAG,CAAC8Y,CAAJ,CAAQ9Y,GAAG,CAACtB,MAHhE,CAIA,CALD,CAOA8tD,aAAa,CAACp/D,SAAd,CAAwBmhD,kBAAxB,CAA6C,UAAY,CACxD,KAAKoe,iBAAL,GAEA,GAAI,CAAC,KAAK3zB,MAAN,GAAiB,KAAK7b,aAAL,EAAsB,KAAKL,IAA5C,CAAJ,CAAuD,CACtD,IAAI+wC,eAAe,CAAG,KAAKA,eAA3B,CACA,IAAIv8D,GAAG,CAAG,MAAV,CACAu8D,eAAe,CAACt9C,CAAhB,CAAoBjf,GAApB,CACAu8D,eAAe,CAACJ,IAAhB,CAAuB,CAACn8D,GAAxB,CACAu8D,eAAe,CAAC/0C,CAAhB,CAAoBxnB,GAApB,CACAu8D,eAAe,CAACF,IAAhB,CAAuB,CAACr8D,GAAxB,CACA,KAAK48D,oBAAL,CAA0B,KAAKhpB,SAA/B,CAA0C2oB,eAA1C,EACAA,eAAe,CAACpvD,KAAhB,CAAwBovD,eAAe,CAACJ,IAAhB,CAAuBI,eAAe,CAACt9C,CAAvC,CAA2C,CAA3C,CAA+Cs9C,eAAe,CAACJ,IAAhB,CAAuBI,eAAe,CAACt9C,CAA9G,CACAs9C,eAAe,CAACnvD,MAAhB,CAAyBmvD,eAAe,CAACF,IAAhB,CAAuBE,eAAe,CAAC/0C,CAAvC,CAA2C,CAA3C,CAA+C+0C,eAAe,CAACF,IAAhB,CAAuBE,eAAe,CAAC/0C,CAA/G,CACA;CACA,GAAI,KAAKw1C,kBAAL,CAAwBT,eAAxB,CAAJ,CAA8C,CAC7C,OACA,CACD,IAAIU,OAAO,CAAG,KAAd,CACA,GAAI,KAAK7B,WAAL,CAAiBtwC,CAAjB,GAAuByxC,eAAe,CAACpvD,KAA3C,CAAkD,CACjD,KAAKiuD,WAAL,CAAiBtwC,CAAjB,CAAqByxC,eAAe,CAACpvD,KAArC,CACA,KAAKmuD,SAAL,CAAel/C,YAAf,CAA4B,OAA5B,CAAqCmgD,eAAe,CAACpvD,KAArD,EACA8vD,OAAO,CAAG,IAAV,CACA,CACD,GAAI,KAAK7B,WAAL,CAAiBn4D,CAAjB,GAAuBs5D,eAAe,CAACnvD,MAA3C,CAAmD,CAClD,KAAKguD,WAAL,CAAiBn4D,CAAjB,CAAqBs5D,eAAe,CAACnvD,MAArC,CACA,KAAKkuD,SAAL,CAAel/C,YAAf,CAA4B,QAA5B,CAAsCmgD,eAAe,CAACnvD,MAAtD,EACA6vD,OAAO,CAAG,IAAV,CACA,CACD,GAAIA,OAAO,EAAI,KAAK7B,WAAL,CAAiBn8C,CAAjB,GAAuBs9C,eAAe,CAACt9C,CAAlD,EAAuD,KAAKm8C,WAAL,CAAiB5zC,CAAjB,GAAuB+0C,eAAe,CAAC/0C,CAAlG,CAAqG,CACpG,KAAK4zC,WAAL,CAAiBtwC,CAAjB,CAAqByxC,eAAe,CAACpvD,KAArC,CACA,KAAKiuD,WAAL,CAAiBn4D,CAAjB,CAAqBs5D,eAAe,CAACnvD,MAArC,CACA,KAAKguD,WAAL,CAAiBn8C,CAAjB,CAAqBs9C,eAAe,CAACt9C,CAArC,CACA,KAAKm8C,WAAL,CAAiB5zC,CAAjB,CAAqB+0C,eAAe,CAAC/0C,CAArC,CAEA,KAAK8zC,SAAL,CAAel/C,YAAf,CAA4B,SAA5B,CAAuC,KAAKg/C,WAAL,CAAiBn8C,CAAjB,CAAqB,GAArB,CAA2B,KAAKm8C,WAAL,CAAiB5zC,CAA5C,CAAgD,GAAhD,CAAsD,KAAK4zC,WAAL,CAAiBtwC,CAAvE,CAA2E,GAA3E,CAAiF,KAAKswC,WAAL,CAAiBn4D,CAAzI,EACA,IAAIi6D,UAAU,CAAG,KAAK5B,SAAL,CAAet6D,KAAhC,CACA,IAAIm8D,cAAc,CAAG,aAAe,KAAK/B,WAAL,CAAiBn8C,CAAhC,CAAoC,KAApC,CAA4C,KAAKm8C,WAAL,CAAiB5zC,CAA7D,CAAiE,KAAtF,CACA01C,UAAU,CAAC5oC,SAAX,CAAuB6oC,cAAvB,CACAD,UAAU,CAACpC,eAAX,CAA6BqC,cAA7B,CACA,CACD,CACD,CAzCD,CA2CA,SAASC,YAAT,CAAsB33D,IAAtB,CAA4ByP,UAA5B,CAAwChN,IAAxC,CAA8C,CAC7C,KAAK+mD,SAAL,CAAiB,EAAjB,CACA,KAAKoO,SAAL,CAAiB,EAAjB,CACA,KAAKjC,WAAL,CAAmB,CAClBn8C,CAAC,CAAE,MADe,CAElBuI,CAAC,CAAE,CAAC,MAFc,CAGlBvkB,CAAC,CAAE,CAHe,CAIlB6nB,CAAC,CAAE,CAJe,CAAnB,CAMA,KAAKqgC,UAAL,CAAkB,KAAlB,CACA,KAAKmS,QAAL,CAAgB,KAAhB,CACA,KAAKvgB,WAAL,CAAiBt3C,IAAjB,CAAuByP,UAAvB,CAAmChN,IAAnC,EACA,CACD3M,eAAe,CAAC,CAACi4C,WAAD,CAAcoE,gBAAd,CAAgC6iB,YAAhC,CAA8C/d,gBAA9C,CAAgErI,YAAhE,CAA8EwI,oBAA9E,CAAoGuR,YAApG,CAAD,CAAoHgP,YAApH,CAAf,CAEAA,YAAY,CAACthE,SAAb,CAAuBkhD,aAAvB,CAAuC,UAAY,CAClD,KAAKsgB,QAAL,CAAgB,KAAK7pB,UAAL,EAAhB,CACA,GAAI,KAAK6pB,QAAT,CAAmB,CAClB,KAAKnS,UAAL,CAAkB,KAAlB,CACA,KAAKoS,KAAL,CAAa,KAAKr1D,IAAL,CAAUzC,IAAV,CAAeqlB,CAA5B,CACA,KAAK0yC,KAAL,CAAa,KAAKt1D,IAAL,CAAUzC,IAAV,CAAexC,CAA5B,CACA,KAAK4tD,UAAL,CAAgBz0C,YAAhB,CAA6B,OAA7B,CAAsC,KAAKmhD,KAA3C,EACA,KAAK1M,UAAL,CAAgBz0C,YAAhB,CAA6B,QAA7B,CAAuC,KAAKohD,KAA5C,EACA,IAAIn6D,CAAC,CAAGyB,QAAQ,CAAC,GAAD,CAAhB,CACA,KAAK60C,aAAL,CAAmBtqC,WAAnB,CAA+BhM,CAA/B,EACA,KAAK65C,SAAL,CAAiB75C,CAAjB,CACA,CATD,IASO,CACN,KAAK8nD,UAAL,CAAkB,MAAlB,CACA,KAAKjO,SAAL,CAAiB,KAAKjJ,YAAtB,CACA,CAED,KAAK2I,cAAL,GACA,CAjBD,CAmBAwgB,YAAY,CAACthE,SAAb,CAAuBwyD,YAAvB,CAAsC,UAAY,CACjD,IAAInlD,YAAY,CAAG,KAAKkpC,YAAL,CAAkBE,WAArC,CACA,KAAKoZ,eAAL,CAAuB7sD,gBAAgB,CAACqK,YAAY,CAAC8qB,CAAb,CAAiB9qB,YAAY,CAAC8qB,CAAb,CAAer4B,MAAhC,CAAyC,CAA1C,CAAvC,CACA,IAAI6hE,cAAc,CAAG,KAAKvgB,SAAL,CAAel8C,KAApC,CACA,IAAI08D,SAAS,CAAGv0D,YAAY,CAAC+7C,EAAb,CAAkB,KAAK0J,UAAL,CAAgBzlD,YAAY,CAAC+7C,EAA7B,CAAlB,CAAqD,eAArE,CACAuY,cAAc,CAACvG,IAAf,CAAsBwG,SAAtB,CACAD,cAAc,CAAC35D,KAAf,CAAuB45D,SAAvB,CACA,GAAIv0D,YAAY,CAAC48B,EAAjB,CAAqB,CACpB03B,cAAc,CAACxG,MAAf,CAAwB,KAAKrI,UAAL,CAAgBzlD,YAAY,CAAC48B,EAA7B,CAAxB,CACA03B,cAAc,CAAClsB,WAAf,CAA6BpoC,YAAY,CAAC87C,EAAb,CAAkB,IAA/C,CACA,CACD,IAAIrjB,QAAQ,CAAG,KAAK1sB,UAAL,CAAgBoB,WAAhB,CAA4BmwB,aAA5B,CAA0Ct9B,YAAY,CAAC5F,CAAvD,CAAf,CACA,GAAI,CAAC,KAAK2R,UAAL,CAAgBoB,WAAhB,CAA4BxO,KAAjC,CAAwC,CACvC21D,cAAc,CAACr6B,QAAf,CAA0Bj6B,YAAY,CAACm9C,SAAb,CAAyB,IAAnD,CACAmX,cAAc,CAACE,UAAf,CAA4Bx0D,YAAY,CAACm9C,SAAb,CAAyB,IAArD,CACA,GAAI1kB,QAAQ,CAACkD,MAAb,CAAqB,CACpB,KAAKoY,SAAL,CAAe+T,SAAf,CAA2BrvB,QAAQ,CAACkD,MAApC,CACA,CAFD,IAEO,CACN24B,cAAc,CAACv6B,UAAf,CAA4BtB,QAAQ,CAACgD,OAArC,CACA,IAAI7C,OAAO,CAAG54B,YAAY,CAAC44B,OAA3B,CACA,IAAID,MAAM,CAAG34B,YAAY,CAAC24B,MAA1B,CACA27B,cAAc,CAACn6B,SAAf,CAA2BxB,MAA3B,CACA27B,cAAc,CAACl6B,UAAf,CAA4BxB,OAA5B,CACA,CACD,CACD,IAAIrmC,CAAJ,CACA,IAAIC,GAAJ,CAEA,IAAI6rD,OAAO,CAAGr+C,YAAY,CAAC8qB,CAA3B,CACAt4B,GAAG,CAAG6rD,OAAO,CAAC5rD,MAAd,CACA,IAAIg0D,KAAJ,CACA,IAAIgO,OAAJ,CACA,IAAIC,KAAJ,CACA,IAAI9R,YAAY,CAAG,KAAKzT,OAAxB,CACA,IAAI3wC,MAAJ,CACA,IAAI6mD,QAAQ,CAAG,EAAf,CACA,IAAIrgC,GAAG,CAAG,CAAV,CACA,IAAKzyB,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B,GAAI,KAAKwZ,UAAL,CAAgBoB,WAAhB,CAA4BxO,KAAhC,CAAuC,CACtC,GAAI,CAAC,KAAKu1D,SAAL,CAAelvC,GAAf,CAAL,CAA0B,CACzByhC,KAAK,CAAG9qD,QAAQ,CAAC,MAAD,CAAhB,CACA8qD,KAAK,CAACxzC,YAAN,CAAmB,gBAAnB,CAAqC8hC,WAAW,CAAC,CAAD,CAAhD,EACA0R,KAAK,CAACxzC,YAAN,CAAmB,iBAAnB,CAAsC+hC,YAAY,CAAC,CAAD,CAAlD,EACAyR,KAAK,CAACxzC,YAAN,CAAmB,mBAAnB,CAAwC,GAAxC,EACA,CALD,IAKO,CACNwzC,KAAK,CAAG,KAAKyN,SAAL,CAAelvC,GAAf,CAAR,CACA,CACD,GAAI,CAAC,KAAKmvC,QAAV,CAAoB,CACnB,GAAI,KAAKrO,SAAL,CAAe9gC,GAAf,CAAJ,CAAyB,CACxByvC,OAAO,CAAG,KAAK3O,SAAL,CAAe9gC,GAAf,CAAV,CACA0vC,KAAK,CAAGD,OAAO,CAACE,QAAR,CAAiB,CAAjB,CAAR,CACA,CAHD,IAGO,CACNF,OAAO,CAAGziE,SAAS,CAAC,KAAD,CAAnB,CACAyiE,OAAO,CAAC58D,KAAR,CAAc28D,UAAd,CAA2B,CAA3B,CACAE,KAAK,CAAG/4D,QAAQ,CAAC,KAAD,CAAhB,CACA+4D,KAAK,CAACxuD,WAAN,CAAkBugD,KAAlB,EACA9uD,QAAQ,CAAC88D,OAAD,CAAR,CACA,CACD,CACD,CArBD,QAqBW,CAAC,KAAKN,QAAV,CAAoB,CAC1B,GAAI,KAAKrO,SAAL,CAAe9gC,GAAf,CAAJ,CAAyB,CACxByvC,OAAO,CAAG,KAAK3O,SAAL,CAAe9gC,GAAf,CAAV,CACAyhC,KAAK,CAAG,KAAKyN,SAAL,CAAelvC,GAAf,CAAR,CACA,CAHD,IAGO,CACNyvC,OAAO,CAAGziE,SAAS,CAAC,MAAD,CAAnB,CACA2F,QAAQ,CAAC88D,OAAD,CAAR,CACAhO,KAAK,CAAGz0D,SAAS,CAAC,MAAD,CAAjB,CACA2F,QAAQ,CAAC8uD,KAAD,CAAR,CACAgO,OAAO,CAACvuD,WAAR,CAAoBugD,KAApB,EACA,CACD,CAXM,IAWA,CACNA,KAAK,CAAG,KAAKyN,SAAL,CAAelvC,GAAf,EAAsB,KAAKkvC,SAAL,CAAelvC,GAAf,CAAtB,CAA4CrpB,QAAQ,CAAC,MAAD,CAA5D,CACA,CACD;CACA,GAAI,KAAKoQ,UAAL,CAAgBoB,WAAhB,CAA4BxO,KAAhC,CAAuC,CACtC,IAAIyB,QAAQ,CAAG,KAAK2L,UAAL,CAAgBoB,WAAhB,CAA4B4vB,WAA5B,CAAwC/8B,YAAY,CAACo9C,SAAb,CAAuB7qD,CAAvB,CAAxC,CAAmEkmC,QAAQ,CAACE,MAA5E,CAAoF,KAAK5sB,UAAL,CAAgBoB,WAAhB,CAA4BmwB,aAA5B,CAA0Ct9B,YAAY,CAAC5F,CAAvD,EAA0DqhC,OAA9I,CAAf,CACA,IAAI7hB,SAAJ,CACA,GAAIxZ,QAAJ,CAAc,CACbwZ,SAAS,CAAGxZ,QAAQ,CAAC9D,IAArB,CACA,CAFD,IAEO,CACNsd,SAAS,CAAG,IAAZ,CACA,CACDgpC,YAAY,CAACh8B,KAAb,GACA,GAAIhN,SAAS,EAAIA,SAAS,CAACpb,MAAvB,EAAiCob,SAAS,CAACpb,MAAV,CAAiB/L,MAAtD,CAA8D,CAC7D+L,MAAM,CAAGob,SAAS,CAACpb,MAAV,CAAiB,CAAjB,EAAoBa,EAA7B,CACAujD,YAAY,CAACj4B,KAAb,CAAmB3qB,YAAY,CAACm9C,SAAb,CAAyB,GAA5C,CAAiDn9C,YAAY,CAACm9C,SAAb,CAAyB,GAA1E,EACAkI,QAAQ,CAAG,KAAKD,eAAL,CAAqBxC,YAArB,CAAmCpkD,MAAnC,CAAX,CACAioD,KAAK,CAACxzC,YAAN,CAAmB,GAAnB,CAAwBoyC,QAAxB,EACA,CACD,GAAI,CAAC,KAAK8O,QAAV,CAAoB,CACnB,KAAKpgB,SAAL,CAAe7tC,WAAf,CAA2BuuD,OAA3B,EACA,GAAI76C,SAAS,EAAIA,SAAS,CAACpb,MAA3B,CAAmC;CAElCtM,QAAQ,CAACghB,IAAT,CAAchN,WAAd,CAA0BwuD,KAA1B,EACA,IAAInC,WAAW,CAAGmC,KAAK,CAAClvD,OAAN,EAAlB,CACAkvD,KAAK,CAACzhD,YAAN,CAAmB,OAAnB,CAA4Bs/C,WAAW,CAACvuD,KAAZ,CAAoB,CAAhD,EACA0wD,KAAK,CAACzhD,YAAN,CAAmB,QAAnB,CAA6Bs/C,WAAW,CAACtuD,MAAZ,CAAqB,CAAlD,EACAywD,KAAK,CAACzhD,YAAN,CAAmB,SAAnB,CAA+Bs/C,WAAW,CAACz8C,CAAZ,CAAgB,CAAjB,CAAsB,GAAtB,EAA6By8C,WAAW,CAACl0C,CAAZ,CAAgB,CAA7C,EAAkD,GAAlD,EAAyDk0C,WAAW,CAACvuD,KAAZ,CAAoB,CAA7E,EAAkF,GAAlF,EAAyFuuD,WAAW,CAACtuD,MAAZ,CAAqB,CAA9G,CAA9B,EACA,IAAI2wD,UAAU,CAAGF,KAAK,CAAC78D,KAAvB,CACA,IAAIg9D,gBAAgB,CAAG,cAAgBtC,WAAW,CAACz8C,CAAZ,CAAgB,CAAhC,EAAqC,KAArC,EAA8Cy8C,WAAW,CAACl0C,CAAZ,CAAgB,CAA9D,EAAmE,KAA1F,CACAu2C,UAAU,CAACzpC,SAAX,CAAuB0pC,gBAAvB,CACAD,UAAU,CAACjD,eAAX,CAA6BkD,gBAA7B,CAEAxW,OAAO,CAAC9rD,CAAD,CAAP,CAAW2qD,OAAX,CAAqBqV,WAAW,CAACl0C,CAAZ,CAAgB,CAArC,CACA,CAbD,IAaO,CACNq2C,KAAK,CAACzhD,YAAN,CAAmB,OAAnB,CAA4B,CAA5B,EACAyhD,KAAK,CAACzhD,YAAN,CAAmB,QAAnB,CAA6B,CAA7B,EACA,CACDwhD,OAAO,CAACvuD,WAAR,CAAoBwuD,KAApB,EACA,CApBD,IAoBO,CACN,KAAK3gB,SAAL,CAAe7tC,WAAf,CAA2BugD,KAA3B,EACA,CACD,CAtCD,IAsCO,CACNA,KAAK,CAAC/qB,WAAN,CAAoB2iB,OAAO,CAAC9rD,CAAD,CAAP,CAAW6E,GAA/B,CACAqvD,KAAK,CAAC1gD,cAAN,CAAqB,sCAArB,CAA6D,WAA7D,CAA0E,UAA1E,EACA,GAAI,CAAC,KAAKouD,QAAV,CAAoB,CACnB,KAAKpgB,SAAL,CAAe7tC,WAAf,CAA2BuuD,OAA3B,EACA;CACA,IAAIK,MAAM,CAAGrO,KAAK,CAAC5uD,KAAnB,CACA,IAAIk9D,gBAAgB,CAAG,iBAAmB,CAAC/0D,YAAY,CAACm9C,SAAd,CAA0B,GAA7C,CAAmD,OAA1E,CACA2X,MAAM,CAAC3pC,SAAP,CAAmB4pC,gBAAnB,CACAD,MAAM,CAACnD,eAAP,CAAyBoD,gBAAzB,CACA,CAPD,IAOO,CACN,KAAKhhB,SAAL,CAAe7tC,WAAf,CAA2BugD,KAA3B,EACA,CACD,CACD;CACA,GAAI,CAAC,KAAK0N,QAAV,CAAoB,CACnB,KAAKrO,SAAL,CAAe9gC,GAAf,EAAsByvC,OAAtB,CACA,CAFD,IAEO,CACN,KAAK3O,SAAL,CAAe9gC,GAAf,EAAsByhC,KAAtB,CACA,CACD,KAAKX,SAAL,CAAe9gC,GAAf,EAAoBntB,KAApB,CAA0BI,OAA1B,CAAoC,OAApC,CACA,KAAKi8D,SAAL,CAAelvC,GAAf,EAAsByhC,KAAtB,CACAzhC,GAAG,EAAI,CAAP,CACA,CACD,MAAOA,GAAG,CAAG,KAAK8gC,SAAL,CAAerzD,MAA5B,CAAoC,CACnC,KAAKqzD,SAAL,CAAe9gC,GAAf,EAAoBntB,KAApB,CAA0BI,OAA1B,CAAoC,MAApC,CACA+sB,GAAG,EAAI,CAAP,CACA,CACD,CA5ID,CA8IAivC,YAAY,CAACthE,SAAb,CAAuBmhD,kBAAvB,CAA4C,UAAY,CACvD,IAAIkhB,QAAJ,CACA,GAAI,KAAK14D,IAAL,CAAUypD,WAAd,CAA2B,CAC1B,GAAI,CAAC,KAAKrjC,aAAN,EAAuB,CAAC,KAAK+/B,kBAAjC,CAAqD,CACpD,OACA,CAAC,GAAI,KAAK0R,QAAL,EAAiB,KAAKl1B,cAAL,CAAoB0P,OAAzC,CAAkD;CAEnD,KAAK+Y,UAAL,CAAgBz0C,YAAhB,CAA6B,SAA7B,CAAwC,CAAC,KAAKgsB,cAAL,CAAoBC,KAApB,CAA0B7kC,CAA1B,CAA4BL,CAA5B,CAA8B,CAA9B,CAAD,CAAoC,GAApC,CAA0C,CAAC,KAAKilC,cAAL,CAAoBC,KAApB,CAA0B7kC,CAA1B,CAA4BL,CAA5B,CAA8B,CAA9B,CAA3C,CAA8E,GAA9E,CAAoF,KAAKo6D,KAAzF,CAAiG,GAAjG,CAAuG,KAAKC,KAApJ,EACAW,QAAQ,CAAG,KAAKtN,UAAL,CAAgB7vD,KAA3B,CACA,IAAIo9D,WAAW,CAAG,aAAe,CAAC,KAAKh2B,cAAL,CAAoBC,KAApB,CAA0B7kC,CAA1B,CAA4BL,CAA5B,CAA8B,CAA9B,CAAhB,CAAmD,KAAnD,CAA2D,CAAC,KAAKilC,cAAL,CAAoBC,KAApB,CAA0B7kC,CAA1B,CAA4BL,CAA5B,CAA8B,CAA9B,CAA5D,CAA+F,KAAjH,CACAg7D,QAAQ,CAAC7pC,SAAT,CAAqB8pC,WAArB,CACAD,QAAQ,CAACrD,eAAT,CAA2BsD,WAA3B,CACA,CACD,CAED,KAAK/P,YAAL,CAAkBvC,WAAlB,CAA8B,KAAKzZ,YAAL,CAAkBE,WAAhD,CAA6D,KAAKqZ,kBAAlE,EACA,GAAI,CAAC,KAAKA,kBAAN,EAA4B,CAAC,KAAKyC,YAAL,CAAkBzC,kBAAnD,CAAuE,CACtE,OACA,CACD,IAAIlwD,CAAJ,CACA,IAAIC,GAAJ,CACA,IAAIg9C,KAAK,CAAG,CAAZ,CACA,IAAIgT,eAAe,CAAG,KAAK0C,YAAL,CAAkB1C,eAAxC,CAEA,IAAInE,OAAO,CAAG,KAAKnV,YAAL,CAAkBE,WAAlB,CAA8Bte,CAA5C,CAEAt4B,GAAG,CAAG6rD,OAAO,CAAC5rD,MAAd,CACA,IAAI40D,cAAJ,CACA,IAAIC,QAAJ,CACA,IAAI4N,QAAJ,CACA,IAAK3iE,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B,GAAI8rD,OAAO,CAAC9rD,CAAD,CAAP,CAAW+rB,CAAf,CAAkB,CACjBkxB,KAAK,EAAI,CAAT,CACA,CAFD,IAEO,CACN8X,QAAQ,CAAG,KAAKxB,SAAL,CAAevzD,CAAf,CAAX,CACA2iE,QAAQ,CAAG,KAAKhB,SAAL,CAAe3hE,CAAf,CAAX,CACA80D,cAAc,CAAG7E,eAAe,CAAChT,KAAD,CAAhC,CACAA,KAAK,EAAI,CAAT,CACA,GAAI6X,cAAc,CAAChlC,IAAf,CAAoB0I,CAAxB,CAA2B,CAC1B,GAAI,CAAC,KAAKopC,QAAV,CAAoB,CACnB7M,QAAQ,CAACzvD,KAAT,CAAe85D,eAAf,CAAiCtK,cAAc,CAACt8B,CAAhD,CACAu8B,QAAQ,CAACzvD,KAAT,CAAeszB,SAAf,CAA2Bk8B,cAAc,CAACt8B,CAA1C,CACA,CAHD,IAGO,CACNu8B,QAAQ,CAACr0C,YAAT,CAAsB,WAAtB,CAAmCo0C,cAAc,CAACt8B,CAAlD,EACA,CACD,CACD;CACAu8B,QAAQ,CAACzvD,KAAT,CAAemqC,OAAf,CAAyBqlB,cAAc,CAAC/nD,CAAxC,CACA,GAAI+nD,cAAc,CAACvL,EAAf,EAAqBuL,cAAc,CAAChlC,IAAf,CAAoBy5B,EAA7C,CAAiD,CAChDoZ,QAAQ,CAACjiD,YAAT,CAAsB,cAAtB,CAAsCo0C,cAAc,CAACvL,EAArD,EACA,CACD,GAAIuL,cAAc,CAACzqB,EAAf,EAAqByqB,cAAc,CAAChlC,IAAf,CAAoBua,EAA7C,CAAiD,CAChDs4B,QAAQ,CAACjiD,YAAT,CAAsB,QAAtB,CAAgCo0C,cAAc,CAACzqB,EAA/C,EACA,CACD,GAAIyqB,cAAc,CAACtL,EAAf,EAAqBsL,cAAc,CAAChlC,IAAf,CAAoB05B,EAA7C,CAAiD,CAChDmZ,QAAQ,CAACjiD,YAAT,CAAsB,MAAtB,CAA8Bo0C,cAAc,CAACtL,EAA7C,EACAmZ,QAAQ,CAACr9D,KAAT,CAAe8C,KAAf,CAAuB0sD,cAAc,CAACtL,EAAtC,CACA,CACD,CACD,CAED,GAAI,KAAKhI,SAAL,CAAevuC,OAAf,EAA0B,CAAC,KAAK+4B,MAAhC,GAA2C,KAAK7b,aAAL,EAAsB,KAAKL,IAAtE,CAAJ,CAAiF,CAChF,IAAIkwC,WAAW,CAAG,KAAKxe,SAAL,CAAevuC,OAAf,EAAlB,CAEA,GAAI,KAAKysD,WAAL,CAAiBtwC,CAAjB,GAAuB4wC,WAAW,CAACvuD,KAAvC,CAA8C,CAC7C,KAAKiuD,WAAL,CAAiBtwC,CAAjB,CAAqB4wC,WAAW,CAACvuD,KAAjC,CACA,KAAK0jD,UAAL,CAAgBz0C,YAAhB,CAA6B,OAA7B,CAAsCs/C,WAAW,CAACvuD,KAAlD,EACA,CACD,GAAI,KAAKiuD,WAAL,CAAiBn4D,CAAjB,GAAuBy4D,WAAW,CAACtuD,MAAvC,CAA+C,CAC9C,KAAKguD,WAAL,CAAiBn4D,CAAjB,CAAqBy4D,WAAW,CAACtuD,MAAjC,CACA,KAAKyjD,UAAL,CAAgBz0C,YAAhB,CAA6B,QAA7B,CAAuCs/C,WAAW,CAACtuD,MAAnD,EACA,CAED,IAAIkxD,MAAM,CAAG,CAAb,CACA,GAAI,KAAKlD,WAAL,CAAiBtwC,CAAjB,GAAwB4wC,WAAW,CAACvuD,KAAZ,CAAoBmxD,MAAM,CAAG,CAArD,EAA2D,KAAKlD,WAAL,CAAiBn4D,CAAjB,GAAwBy4D,WAAW,CAACtuD,MAAZ,CAAqBkxD,MAAM,CAAG,CAAjH,EAAuH,KAAKlD,WAAL,CAAiBn8C,CAAjB,GAAwBy8C,WAAW,CAACz8C,CAAZ,CAAgBq/C,MAA/J,EAA0K,KAAKlD,WAAL,CAAiB5zC,CAAjB,GAAwBk0C,WAAW,CAACl0C,CAAZ,CAAgB82C,MAAtN,CAA+N,CAC9N,KAAKlD,WAAL,CAAiBtwC,CAAjB,CAAqB4wC,WAAW,CAACvuD,KAAZ,CAAoBmxD,MAAM,CAAG,CAAlD,CACA,KAAKlD,WAAL,CAAiBn4D,CAAjB,CAAqBy4D,WAAW,CAACtuD,MAAZ,CAAqBkxD,MAAM,CAAG,CAAnD,CACA,KAAKlD,WAAL,CAAiBn8C,CAAjB,CAAqBy8C,WAAW,CAACz8C,CAAZ,CAAgBq/C,MAArC,CACA,KAAKlD,WAAL,CAAiB5zC,CAAjB,CAAqBk0C,WAAW,CAACl0C,CAAZ,CAAgB82C,MAArC,CAEA,KAAKzN,UAAL,CAAgBz0C,YAAhB,CAA6B,SAA7B,CAAwC,KAAKg/C,WAAL,CAAiBn8C,CAAjB,CAAqB,GAArB,CAA2B,KAAKm8C,WAAL,CAAiB5zC,CAA5C,CAAgD,GAAhD,CAAsD,KAAK4zC,WAAL,CAAiBtwC,CAAvE,CAA2E,GAA3E,CAAiF,KAAKswC,WAAL,CAAiBn4D,CAA1I,EACAk7D,QAAQ,CAAG,KAAKtN,UAAL,CAAgB7vD,KAA3B,CACA,IAAIu9D,YAAY,CAAG,aAAe,KAAKnD,WAAL,CAAiBn8C,CAAhC,CAAoC,KAApC,CAA4C,KAAKm8C,WAAL,CAAiB5zC,CAA7D,CAAiE,KAApF,CACA22C,QAAQ,CAAC7pC,SAAT,CAAqBiqC,YAArB,CACAJ,QAAQ,CAACrD,eAAT,CAA2ByD,YAA3B,CACA,CACD,CACD,CAvFD,CAyFA,SAASC,cAAT,CAAwB/4D,IAAxB,CAA8ByP,UAA9B,CAA0ChN,IAA1C,CAAgD,CAC/C,KAAK8d,SAAL,GACA,KAAKkuB,YAAL,CAAkBzuC,IAAlB,CAAwByP,UAAxB,CAAoChN,IAApC,EACA,KAAKy0C,aAAL,GACA,IAAIjwB,OAAO,CAAG3G,eAAe,CAAC2G,OAA9B,CACA,KAAK+xC,EAAL,CAAU/xC,OAAO,CAAC,IAAD,CAAOjnB,IAAI,CAACg5D,EAAZ,CAAgB,CAAhB,CAAmB,CAAnB,CAAsB,IAAtB,CAAjB,CACA,GAAIh5D,IAAI,CAAC8C,EAAL,CAAQ/E,CAAR,CAAUN,CAAd,CAAiB,CAChB,KAAKs6B,EAAL,CAAU9Q,OAAO,CAAC,IAAD,CAAOjnB,IAAI,CAAC8C,EAAL,CAAQ/E,CAAR,CAAUyb,CAAjB,CAAoB,CAApB,CAAuB,CAAvB,CAA0B,IAA1B,CAAjB,CACA,KAAKwe,EAAL,CAAU/Q,OAAO,CAAC,IAAD,CAAOjnB,IAAI,CAAC8C,EAAL,CAAQ/E,CAAR,CAAUgkB,CAAjB,CAAoB,CAApB,CAAuB,CAAvB,CAA0B,IAA1B,CAAjB,CACA,KAAKkW,EAAL,CAAUhR,OAAO,CAAC,IAAD,CAAOjnB,IAAI,CAAC8C,EAAL,CAAQ/E,CAAR,CAAUunB,CAAjB,CAAoB,CAApB,CAAuB,CAAvB,CAA0B,IAA1B,CAAjB,CACA,CAJD,IAIO,CACN,KAAKvnB,CAAL,CAASkpB,OAAO,CAAC,IAAD,CAAOjnB,IAAI,CAAC8C,EAAL,CAAQ/E,CAAf,CAAkB,CAAlB,CAAqB,CAArB,CAAwB,IAAxB,CAAhB,CACA,CACD,GAAIiC,IAAI,CAAC8C,EAAL,CAAQqB,CAAZ,CAAe,CACd,KAAKA,CAAL,CAAS8iB,OAAO,CAAC,IAAD,CAAOjnB,IAAI,CAAC8C,EAAL,CAAQqB,CAAf,CAAkB,CAAlB,CAAqB,CAArB,CAAwB,IAAxB,CAAhB,CACA,CACD,GAAInE,IAAI,CAAC8C,EAAL,CAAQ2oB,EAAR,CAAWrqB,CAAX,CAAajL,MAAb,EAAuB6J,IAAI,CAAC8C,EAAL,CAAQ2oB,EAAR,CAAWrqB,CAAX,CAAa,CAAb,EAAgBugB,EAA3C,CAA+C,CAC9C,IAAI1rB,CAAJ,CACA,IAAIC,GAAG,CAAG8J,IAAI,CAAC8C,EAAL,CAAQ2oB,EAAR,CAAWrqB,CAAX,CAAajL,MAAvB,CACA,IAAKF,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B+J,IAAI,CAAC8C,EAAL,CAAQ2oB,EAAR,CAAWrqB,CAAX,CAAanL,CAAb,EAAgB0rB,EAAhB,CAAqB,IAArB,CACA3hB,IAAI,CAAC8C,EAAL,CAAQ2oB,EAAR,CAAWrqB,CAAX,CAAanL,CAAb,EAAgB2rB,EAAhB,CAAqB,IAArB,CACA,CACD,CACD,KAAK6J,EAAL,CAAUxE,OAAO,CAAC,IAAD,CAAOjnB,IAAI,CAAC8C,EAAL,CAAQ2oB,EAAf,CAAmB,CAAnB,CAAsBvwB,SAAtB,CAAiC,IAAjC,CAAjB,CACA,KAAKuwB,EAAL,CAAQ7I,EAAR,CAAa,IAAb,CACA,KAAKkV,EAAL,CAAU7Q,OAAO,CAAC,IAAD,CAAOjnB,IAAI,CAAC8C,EAAL,CAAQg1B,EAAf,CAAmB,CAAnB,CAAsB58B,SAAtB,CAAiC,IAAjC,CAAjB,CACA,KAAK28B,EAAL,CAAU5Q,OAAO,CAAC,IAAD,CAAOjnB,IAAI,CAAC8C,EAAL,CAAQ+0B,EAAf,CAAmB,CAAnB,CAAsB38B,SAAtB,CAAiC,IAAjC,CAAjB,CACA,KAAK08B,EAAL,CAAU3Q,OAAO,CAAC,IAAD,CAAOjnB,IAAI,CAAC8C,EAAL,CAAQ80B,EAAf,CAAmB,CAAnB,CAAsB18B,SAAtB,CAAiC,IAAjC,CAAjB,CACA,KAAKy8B,GAAL,CAAW,IAAIxK,MAAJ,EAAX,CACA,KAAK8rC,QAAL,CAAgB,IAAI9rC,MAAJ,EAAhB,CACA,KAAK/G,aAAL,CAAqB,IAArB,CAEA;CACA,KAAKuc,cAAL,CAAsB,CACrBC,KAAK,CAAE,IADc,CAAtB,CAGA,CACD9sC,eAAe,CAAC,CAACi4C,WAAD,CAAca,YAAd,CAA4BqI,gBAA5B,CAAD,CAAgD8hB,cAAhD,CAAf,CAEAA,cAAc,CAAC1iE,SAAf,CAAyB6iE,KAAzB,CAAiC,UAAY,CAC5C,IAAIjjE,CAAJ,CACA,IAAIC,GAAG,CAAG,KAAKuM,IAAL,CAAU02D,cAAV,CAAyBhjE,MAAnC,CACA,IAAIsM,IAAJ,CACA,IAAI22D,gBAAJ,CACA,IAAIjF,cAAJ,CACA,IAAKl+D,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B;CAE5BwM,IAAI,CAAG,KAAKA,IAAL,CAAU02D,cAAV,CAAyBljE,CAAzB,CAAP,CACA,GAAIwM,IAAI,CAAC9M,IAAL,GAAc,IAAlB,CAAwB,CACvByjE,gBAAgB,CAAG32D,IAAI,CAAC42D,eAAL,CAAqB99D,KAAxC,CACA44D,cAAc,CAAG1xD,IAAI,CAAC4M,SAAL,CAAe9T,KAAhC,CACA,IAAI+9D,WAAW,CAAG,KAAKN,EAAL,CAAQt7D,CAAR,CAAY,IAA9B,CACA,IAAIwJ,MAAM,CAAG,aAAb,CACA,IAAIoyB,MAAM,CAAG,2CAAb,CACA8/B,gBAAgB,CAACE,WAAjB,CAA+BA,WAA/B,CACAF,gBAAgB,CAACG,iBAAjB,CAAqCD,WAArC,CACAnF,cAAc,CAACv4D,eAAf,CAAiCsL,MAAjC,CACAitD,cAAc,CAACC,kBAAf,CAAoCltD,MAApC,CACAitD,cAAc,CAACt4D,qBAAf,CAAuCqL,MAAvC,CACAkyD,gBAAgB,CAACvqC,SAAjB,CAA6ByK,MAA7B,CACA8/B,gBAAgB,CAAC/D,eAAjB,CAAmC/7B,MAAnC,CACA,CACD,CACD,CAxBD,CA0BAy/B,cAAc,CAAC1iE,SAAf,CAAyBu4D,cAAzB,CAA0C,UAAY,EAAtD,CAGAmK,cAAc,CAAC1iE,SAAf,CAAyBqe,IAAzB,CAAgC,UAAY,EAA5C,CAGAqkD,cAAc,CAAC1iE,SAAf,CAAyBkc,WAAzB,CAAuC,UAAY,CAClD,IAAIwT,IAAI,CAAG,KAAKK,aAAhB,CACA,IAAInwB,CAAJ,CACA,IAAIC,GAAJ,CACA,GAAI,KAAKywC,SAAT,CAAoB,CACnBzwC,GAAG,CAAG,KAAKywC,SAAL,CAAexwC,MAArB,CACA,IAAKF,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B8vB,IAAI,CAAG,KAAK4gB,SAAL,CAAe1wC,CAAf,EAAkB0sC,cAAlB,CAAiCC,KAAjC,CAAuC7c,IAAvC,EAA+CA,IAAtD,CACA,CACD,CACD,GAAIA,IAAI,EAAI,KAAKizC,EAAL,CAAQjzC,IAAhB,EAAyB,KAAKhoB,CAAL,EAAU,KAAKA,CAAL,CAAOgoB,IAA1C,EAAoD,KAAKgS,EAAL,GAAY,KAAKA,EAAL,CAAQhS,IAAR,EAAgB,KAAKiS,EAAL,CAAQjS,IAAxB,EAAgC,KAAKkS,EAAL,CAAQlS,IAApD,CAApD,EAAkH,KAAK+R,EAAL,CAAQ/R,IAA1H,EAAkI,KAAK8R,EAAL,CAAQ9R,IAA1I,EAAkJ,KAAK6R,EAAL,CAAQ7R,IAA1J,EAAkK,KAAK0F,EAAL,CAAQ1F,IAA1K,EAAmL,KAAK5hB,CAAL,EAAU,KAAKA,CAAL,CAAO4hB,IAAxM,CAA+M,CAC9M,KAAK4R,GAAL,CAASrN,KAAT,GAEA,GAAI,KAAKqc,SAAT,CAAoB,CACnBzwC,GAAG,CAAG,KAAKywC,SAAL,CAAexwC,MAAf,CAAwB,CAA9B,CACA,IAAKF,CAAC,CAAGC,GAAT,CAAcD,CAAC,EAAI,CAAnB,CAAsBA,CAAC,EAAI,CAA3B,CAA8B,CAC7B,IAAIujE,OAAO,CAAG,KAAK7yB,SAAL,CAAe1wC,CAAf,EAAkB0sC,cAAlB,CAAiCC,KAA/C,CACA,KAAKjL,GAAL,CAASjJ,SAAT,CAAmB,CAAC8qC,OAAO,CAACz7D,CAAR,CAAUL,CAAV,CAAY,CAAZ,CAApB,CAAoC,CAAC87D,OAAO,CAACz7D,CAAR,CAAUL,CAAV,CAAY,CAAZ,CAArC,CAAqD87D,OAAO,CAACz7D,CAAR,CAAUL,CAAV,CAAY,CAAZ,CAArD,EACA,KAAKi6B,GAAL,CAAS7J,OAAT,CAAiB,CAAC0rC,OAAO,CAAC/tC,EAAR,CAAW/tB,CAAX,CAAa,CAAb,CAAlB,EAAmCqwB,OAAnC,CAA2C,CAACyrC,OAAO,CAAC/tC,EAAR,CAAW/tB,CAAX,CAAa,CAAb,CAA5C,EAA6DswB,OAA7D,CAAqEwrC,OAAO,CAAC/tC,EAAR,CAAW/tB,CAAX,CAAa,CAAb,CAArE,EACA,KAAKi6B,GAAL,CAAS7J,OAAT,CAAiB,CAAC0rC,OAAO,CAAC1hC,EAAR,CAAWp6B,CAA7B,EAAgCqwB,OAAhC,CAAwC,CAACyrC,OAAO,CAAC3hC,EAAR,CAAWn6B,CAApD,EAAuDswB,OAAvD,CAA+DwrC,OAAO,CAAC5hC,EAAR,CAAWl6B,CAA1E,EACA,KAAKi6B,GAAL,CAAStJ,KAAT,CAAe,EAAImrC,OAAO,CAAC/7D,CAAR,CAAUC,CAAV,CAAY,CAAZ,CAAnB,CAAmC,EAAI87D,OAAO,CAAC/7D,CAAR,CAAUC,CAAV,CAAY,CAAZ,CAAvC,CAAuD,EAAI87D,OAAO,CAAC/7D,CAAR,CAAUC,CAAV,CAAY,CAAZ,CAA3D,EACA,KAAKi6B,GAAL,CAASjJ,SAAT,CAAmB8qC,OAAO,CAACr1D,CAAR,CAAUzG,CAAV,CAAY,CAAZ,CAAnB,CAAmC87D,OAAO,CAACr1D,CAAR,CAAUzG,CAAV,CAAY,CAAZ,CAAnC,CAAmD87D,OAAO,CAACr1D,CAAR,CAAUzG,CAAV,CAAY,CAAZ,CAAnD,EACA,CACD,CACD,GAAI,KAAKK,CAAT,CAAY,CACX,KAAK45B,GAAL,CAASjJ,SAAT,CAAmB,CAAC,KAAK3wB,CAAL,CAAOL,CAAP,CAAS,CAAT,CAApB,CAAiC,CAAC,KAAKK,CAAL,CAAOL,CAAP,CAAS,CAAT,CAAlC,CAA+C,KAAKK,CAAL,CAAOL,CAAP,CAAS,CAAT,CAA/C,EACA,CAFD,IAEO,CACN,KAAKi6B,GAAL,CAASjJ,SAAT,CAAmB,CAAC,KAAKqJ,EAAL,CAAQr6B,CAA5B,CAA+B,CAAC,KAAKs6B,EAAL,CAAQt6B,CAAxC,CAA2C,KAAKu6B,EAAL,CAAQv6B,CAAnD,EACA,CACD,GAAI,KAAKyG,CAAT,CAAY,CACX,IAAIs1D,UAAJ,CACA,GAAI,KAAK17D,CAAT,CAAY,CACX07D,UAAU,CAAG,CAAC,KAAK17D,CAAL,CAAOL,CAAP,CAAS,CAAT,EAAc,KAAKyG,CAAL,CAAOzG,CAAP,CAAS,CAAT,CAAf,CAA4B,KAAKK,CAAL,CAAOL,CAAP,CAAS,CAAT,EAAc,KAAKyG,CAAL,CAAOzG,CAAP,CAAS,CAAT,CAA1C,CAAuD,KAAKK,CAAL,CAAOL,CAAP,CAAS,CAAT,EAAc,KAAKyG,CAAL,CAAOzG,CAAP,CAAS,CAAT,CAArE,CAAb,CACA,CAFD,IAEO,CACN+7D,UAAU,CAAG,CAAC,KAAK1hC,EAAL,CAAQr6B,CAAR,CAAY,KAAKyG,CAAL,CAAOzG,CAAP,CAAS,CAAT,CAAb,CAA0B,KAAKs6B,EAAL,CAAQt6B,CAAR,CAAY,KAAKyG,CAAL,CAAOzG,CAAP,CAAS,CAAT,CAAtC,CAAmD,KAAKu6B,EAAL,CAAQv6B,CAAR,CAAY,KAAKyG,CAAL,CAAOzG,CAAP,CAAS,CAAT,CAA/D,CAAb,CACA,CACD,IAAIg8D,GAAG,CAAG1/D,IAAI,CAACG,IAAL,CAAUH,IAAI,CAACC,GAAL,CAASw/D,UAAU,CAAC,CAAD,CAAnB,CAAwB,CAAxB,EAA6Bz/D,IAAI,CAACC,GAAL,CAASw/D,UAAU,CAAC,CAAD,CAAnB,CAAwB,CAAxB,CAA7B,CAA0Dz/D,IAAI,CAACC,GAAL,CAASw/D,UAAU,CAAC,CAAD,CAAnB,CAAwB,CAAxB,CAApE,CAAV,CACA;CACA,IAAIE,OAAO,CAAG,CAACF,UAAU,CAAC,CAAD,CAAV,CAAgBC,GAAjB,CAAsBD,UAAU,CAAC,CAAD,CAAV,CAAgBC,GAAtC,CAA2CD,UAAU,CAAC,CAAD,CAAV,CAAgBC,GAA3D,CAAd,CACA,IAAIE,cAAc,CAAG5/D,IAAI,CAACG,IAAL,CAAUw/D,OAAO,CAAC,CAAD,CAAP,CAAaA,OAAO,CAAC,CAAD,CAApB,CAA0BA,OAAO,CAAC,CAAD,CAAP,CAAaA,OAAO,CAAC,CAAD,CAAxD,CAArB,CACA,IAAIE,UAAU,CAAI7/D,IAAI,CAACyqB,KAAL,CAAWk1C,OAAO,CAAC,CAAD,CAAlB,CAAuBC,cAAvB,CAAlB,CACA,IAAIE,UAAU,CAAI9/D,IAAI,CAACyqB,KAAL,CAAWk1C,OAAO,CAAC,CAAD,CAAlB,CAAuB,CAACA,OAAO,CAAC,CAAD,CAA/B,CAAlB,CACA,KAAKhiC,GAAL,CAAS5J,OAAT,CAAiB+rC,UAAjB,EAA6BhsC,OAA7B,CAAqC,CAAC+rC,UAAtC,EACA,CACD,KAAKliC,GAAL,CAAS7J,OAAT,CAAiB,CAAC,KAAKgK,EAAL,CAAQp6B,CAA1B,EAA6BqwB,OAA7B,CAAqC,CAAC,KAAK8J,EAAL,CAAQn6B,CAA9C,EAAiDswB,OAAjD,CAAyD,KAAK4J,EAAL,CAAQl6B,CAAjE,EACA,KAAKi6B,GAAL,CAAS7J,OAAT,CAAiB,CAAC,KAAKrC,EAAL,CAAQ/tB,CAAR,CAAU,CAAV,CAAlB,EAAgCqwB,OAAhC,CAAwC,CAAC,KAAKtC,EAAL,CAAQ/tB,CAAR,CAAU,CAAV,CAAzC,EAAuDswB,OAAvD,CAA+D,KAAKvC,EAAL,CAAQ/tB,CAAR,CAAU,CAAV,CAA/D,EACA,KAAKi6B,GAAL,CAASjJ,SAAT,CAAmB,KAAKjf,UAAL,CAAgBo6B,QAAhB,CAAyBxkB,CAAzB,CAA6B,CAAhD,CAAmD,KAAK5V,UAAL,CAAgBo6B,QAAhB,CAAyBrsC,CAAzB,CAA6B,CAAhF,CAAmF,CAAnF,EACA,KAAKm6B,GAAL,CAASjJ,SAAT,CAAmB,CAAnB,CAAsB,CAAtB,CAAyB,KAAKsqC,EAAL,CAAQt7D,CAAjC,EAEA,IAAIq8D,gBAAgB,CAAG,CAAC,KAAKd,QAAL,CAAcnoC,MAAd,CAAqB,KAAK6G,GAA1B,CAAxB,CACA,GAAI,CAACoiC,gBAAgB,EAAI,KAAKf,EAAL,CAAQjzC,IAA7B,GAAsC,KAAKtjB,IAAL,CAAU02D,cAApD,CAAoE,CACnEjjE,GAAG,CAAG,KAAKuM,IAAL,CAAU02D,cAAV,CAAyBhjE,MAA/B,CACA,IAAIsM,IAAJ,CACA,IAAI22D,gBAAJ,CACA,IAAIjF,cAAJ,CACA,IAAKl+D,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5BwM,IAAI,CAAG,KAAKA,IAAL,CAAU02D,cAAV,CAAyBljE,CAAzB,CAAP,CACA,GAAIwM,IAAI,CAAC9M,IAAL,GAAc,IAAlB,CAAwB,CACvB,GAAIokE,gBAAJ,CAAsB,CACrB,IAAIC,QAAQ,CAAG,KAAKriC,GAAL,CAASxF,KAAT,EAAf,CACAgiC,cAAc,CAAG1xD,IAAI,CAAC4M,SAAL,CAAe9T,KAAhC,CACA44D,cAAc,CAACtlC,SAAf,CAA2BmrC,QAA3B,CACA7F,cAAc,CAACkB,eAAf,CAAiC2E,QAAjC,CACA,CACD,GAAI,KAAKhB,EAAL,CAAQjzC,IAAZ,CAAkB,CACjBqzC,gBAAgB,CAAG32D,IAAI,CAAC42D,eAAL,CAAqB99D,KAAxC,CACA69D,gBAAgB,CAACE,WAAjB,CAA+B,KAAKN,EAAL,CAAQt7D,CAAR,CAAY,IAA3C,CACA07D,gBAAgB,CAACG,iBAAjB,CAAqC,KAAKP,EAAL,CAAQt7D,CAAR,CAAY,IAAjD,CACA,CACD,CACD,CACD,KAAKi6B,GAAL,CAAS9O,KAAT,CAAe,KAAKowC,QAApB,EACA,CACD,CACD,KAAK7yC,aAAL,CAAqB,KAArB,CACA,CA3ED,CA6EA2yC,cAAc,CAAC1iE,SAAf,CAAyB2W,YAAzB,CAAwC,SAAUw1B,GAAV,CAAe,CACtD,KAAKqM,iBAAL,CAAuBrM,GAAvB,CAA4B,IAA5B,EACA,CAFD,CAIAu2B,cAAc,CAAC1iE,SAAf,CAAyBoU,OAAzB,CAAmC,UAAY,EAA/C,CAEAsuD,cAAc,CAAC1iE,SAAf,CAAyBu5C,cAAzB,CAA0C,UAAY,CAAE,WAAA,CAAc,CAAtE,CAEA,SAASqqB,aAAT,CAAuBj6D,IAAvB,CAA6ByP,UAA7B,CAAyChN,IAAzC,CAA+C,CAC9C,KAAK+F,SAAL,CAAiBiH,UAAU,CAACgF,YAAX,CAAwBzU,IAAI,CAACgC,KAA7B,CAAjB,CACA,KAAKs1C,WAAL,CAAiBt3C,IAAjB,CAAuByP,UAAvB,CAAmChN,IAAnC,EACA,CAED3M,eAAe,CAAC,CAACi4C,WAAD,CAAcoE,gBAAd,CAAgC6iB,YAAhC,CAA8CO,aAA9C,CAA6Dte,gBAA7D,CAA+ErI,YAA/E,CAA6F9M,iBAA7F,CAAD,CAAkHm4B,aAAlH,CAAf,CAEAA,aAAa,CAAC5jE,SAAd,CAAwBkhD,aAAxB,CAAwC,UAAY,CACnD,IAAIz/C,SAAS,CAAG,KAAK2X,UAAL,CAAgBlH,aAAhB,CAA8B,KAAKC,SAAnC,CAAhB,CACA,IAAIM,GAAG,CAAG,IAAIoxD,KAAJ,EAAV,CAEA,GAAI,KAAKl6D,IAAL,CAAUyB,OAAd,CAAuB,CACtB,KAAK04D,SAAL,CAAiB96D,QAAQ,CAAC,OAAD,CAAzB,CACA,KAAK86D,SAAL,CAAexjD,YAAf,CAA4B,OAA5B,CAAqC,KAAKnO,SAAL,CAAe6c,CAAf,CAAmB,IAAxD,EACA,KAAK80C,SAAL,CAAexjD,YAAf,CAA4B,QAA5B,CAAsC,KAAKnO,SAAL,CAAehL,CAAf,CAAmB,IAAzD,EACA,KAAK28D,SAAL,CAAe1wD,cAAf,CAA8B,8BAA9B,CAA8D,MAA9D,CAAsE3R,SAAtE,EACA,KAAK02C,YAAL,CAAkB5kC,WAAlB,CAA8B,KAAKuwD,SAAnC,EACA,KAAK5rB,WAAL,CAAiB53B,YAAjB,CAA8B,OAA9B,CAAuC,KAAKnO,SAAL,CAAe6c,CAAtD,EACA,KAAKkpB,WAAL,CAAiB53B,YAAjB,CAA8B,QAA9B,CAAwC,KAAKnO,SAAL,CAAehL,CAAvD,EACA,CARD,IAQO,CACN,KAAKgxC,YAAL,CAAkB5kC,WAAlB,CAA8Bd,GAA9B,EACA,CACDA,GAAG,CAACgB,WAAJ,CAAkB,WAAlB,CACAhB,GAAG,CAAC7Q,GAAJ,CAAUH,SAAV,CACA,GAAI,KAAKkI,IAAL,CAAUu2C,EAAd,CAAkB,CACjB,KAAKhI,WAAL,CAAiB53B,YAAjB,CAA8B,IAA9B,CAAoC,KAAK3W,IAAL,CAAUu2C,EAA9C,EACA,CACD,CApBD,CAsBA,SAAS6jB,kBAAT,CAA4BloB,aAA5B,CAA2Cma,MAA3C,CAAmD,CAClD,KAAKna,aAAL,CAAqBA,aAArB,CACA,KAAKnxC,MAAL,CAAc,IAAd,CACA,KAAKykB,aAAL,CAAqB,CAAC,CAAtB,CACA,KAAKqd,YAAL,CAAoB,CACnB2oB,SAAS,CAAGa,MAAM,EAAIA,MAAM,CAACb,SAAlB,EAAgC,EADxB,CAEnB3T,wBAAwB,CAAGwU,MAAM,EAAIA,MAAM,CAACxU,wBAAlB,EAA+C,gBAFtD,CAGnB/U,iBAAiB,CAAE,EAAEupB,MAAM,EAAIA,MAAM,CAACvpB,iBAAP,GAA6B,KAAzC,CAHA,CAInB+pB,UAAU,CAAE,CACXnlD,KAAK,CAAG2kD,MAAM,EAAIA,MAAM,CAACQ,UAAjB,EAA+BR,MAAM,CAACQ,UAAP,CAAkBnlD,KAAlD,EAA4D,MADxD,CAEXC,MAAM,CAAG0kD,MAAM,EAAIA,MAAM,CAACQ,UAAjB,EAA+BR,MAAM,CAACQ,UAAP,CAAkBllD,MAAlD,EAA6D,MAF1D,CAGX6R,CAAC,CAAG6yC,MAAM,EAAIA,MAAM,CAACQ,UAAjB,EAA+BR,MAAM,CAACQ,UAAP,CAAkBrzC,CAAlD,EAAwD,OAHhD,CAIXuI,CAAC,CAAGsqC,MAAM,EAAIA,MAAM,CAACQ,UAAjB,EAA+BR,MAAM,CAACQ,UAAP,CAAkB9qC,CAAlD,EAAwD,OAJhD,CAJO,CAApB,CAWA,KAAKtS,UAAL,CAAkB,CACjBsW,IAAI,CAAE,KADW,CAEjBrF,QAAQ,CAAE,CAAC,CAFM,CAGjBmiB,YAAY,CAAE,KAAKA,YAHF,CAAlB,CAKA,KAAKiP,eAAL,CAAuB,EAAvB,CACA,KAAK7X,QAAL,CAAgB,EAAhB,CACA,KAAKk/B,cAAL,CAAsB,EAAtB,CACA,KAAKxN,SAAL,CAAiB,KAAjB,CACA,KAAK0O,MAAL,CAAc,IAAd,CACA,KAAKlO,UAAL,CAAkB,IAAlB,CACA,KAAKl6C,YAAL,CAAoB,MAApB,CACA,CAEDnc,eAAe,CAAC,CAAC26C,YAAD,CAAD,CAAiB2pB,kBAAjB,CAAf,CAEAA,kBAAkB,CAAC/jE,SAAnB,CAA6Bs6C,SAA7B,CAAyCyb,WAAW,CAAC/1D,SAAZ,CAAsBs6C,SAA/D,CAEAypB,kBAAkB,CAAC/jE,SAAnB,CAA6Bu6C,oBAA7B,CAAoD,UAAY,CAC/D,MAAO,KAAKkB,eAAL,CAAqB37C,MAA5B,CAAoC,CACnC,IAAImF,OAAO,CAAG,KAAKw2C,eAAL,CAAqBrb,GAArB,EAAd,CACAn7B,OAAO,CAAC67C,cAAR,GACA,CACD,CALD,CAOAijB,kBAAkB,CAAC/jE,SAAnB,CAA6Bu1D,kBAA7B,CAAkD,SAAUtwD,OAAV,CAAmBusB,GAAnB,CAAwB,CACzE,IAAIyyC,aAAa,CAAGh/D,OAAO,CAACs0C,cAAR,EAApB,CACA,GAAI,CAAC0qB,aAAL,CAAoB,CACnB,OACA,CACD,IAAI3wB,KAAK,CAAG,KAAK5oC,MAAL,CAAY8mB,GAAZ,CAAZ,CACA,GAAI,CAAC8hB,KAAK,CAAC4wB,GAAP,EAAc,CAAC,KAAKpO,UAAxB,CAAoC,CACnC,GAAI,KAAKgN,cAAT,CAAyB,CACxB,KAAKqB,gBAAL,CAAsBF,aAAtB,CAAqCzyC,GAArC,EACA,CAFD,IAEO,CACN,IAAI5xB,CAAC,CAAG,CAAR,CACA,IAAIwkE,cAAJ,CACA,IAAIC,SAAJ,CACA,IAAIC,aAAJ,CACA,MAAO1kE,CAAC,CAAG4xB,GAAX,CAAgB,CACf,GAAI,KAAKoS,QAAL,CAAchkC,CAAd,GAAoB,KAAKgkC,QAAL,CAAchkC,CAAd,IAAqB,IAAzC,EAAiD,KAAKgkC,QAAL,CAAchkC,CAAd,EAAiB25C,cAAtE,CAAsF,CACrF8qB,SAAS,CAAG,KAAKzgC,QAAL,CAAchkC,CAAd,CAAZ,CACA0kE,aAAa,CAAG,KAAK55D,MAAL,CAAY9K,CAAZ,EAAeskE,GAAf,CAAqB,KAAKK,uBAAL,CAA6B3kE,CAA7B,CAArB,CAAuDykE,SAAS,CAAC9qB,cAAV,EAAvE,CACA6qB,cAAc,CAAGE,aAAa,EAAIF,cAAlC,CACA,CACDxkE,CAAC,EAAI,CAAL,CACA,CACD,GAAIwkE,cAAJ,CAAoB,CACnB,GAAI,CAAC9wB,KAAK,CAAC4wB,GAAP,EAAc,CAAC,KAAKpO,UAAxB,CAAoC,CACnC,KAAK3d,YAAL,CAAkBsd,YAAlB,CAA+BwO,aAA/B,CAA8CG,cAA9C,EACA,CACD,CAJD,QAIW,CAAC9wB,KAAK,CAAC4wB,GAAP,EAAc,CAAC,KAAKpO,UAAxB,CAAoC,CAC1C,KAAK3d,YAAL,CAAkB5kC,WAAlB,CAA8B0wD,aAA9B,EACA,CACD,CACD,CAxBD,IAwBO,CACN,KAAKE,gBAAL,CAAsBF,aAAtB,CAAqCzyC,GAArC,EACA,CACD,CAjCD,CAmCAuyC,kBAAkB,CAAC/jE,SAAnB,CAA6B66C,WAA7B,CAA2C,SAAUlxC,IAAV,CAAgB,CAC1D,GAAI,CAAC,KAAKmsD,UAAV,CAAsB,CACrB,WAAW1O,eAAJ,CAAoBz9C,IAApB,CAA0B,KAAKyP,UAA/B,CAA2C,IAA3C,CAAP,CACA,CACD,WAAWgmD,aAAJ,CAAkBz1D,IAAlB,CAAwB,KAAKyP,UAA7B,CAAyC,IAAzC,CAAP,CACA,CALD,CAOA2qD,kBAAkB,CAAC/jE,SAAnB,CAA6B86C,UAA7B,CAA0C,SAAUnxC,IAAV,CAAgB,CACzD,GAAI,CAAC,KAAKmsD,UAAV,CAAsB,CACrB,WAAW5C,oBAAJ,CAAyBvpD,IAAzB,CAA+B,KAAKyP,UAApC,CAAgD,IAAhD,CAAP,CACA,CACD,WAAWkoD,YAAJ,CAAiB33D,IAAjB,CAAuB,KAAKyP,UAA5B,CAAwC,IAAxC,CAAP,CACA,CALD,CAOA2qD,kBAAkB,CAAC/jE,SAAnB,CAA6B+6C,YAA7B,CAA4C,SAAUpxC,IAAV,CAAgB,CAC3D,KAAKq6D,MAAL,CAAc,IAAItB,cAAJ,CAAmB/4D,IAAnB,CAAyB,KAAKyP,UAA9B,CAA0C,IAA1C,CAAd,CACA,YAAY4qD,MAAZ,CACA,CAHD,CAKAD,kBAAkB,CAAC/jE,SAAnB,CAA6By6C,WAA7B,CAA2C,SAAU9wC,IAAV,CAAgB,CAC1D,GAAI,CAAC,KAAKmsD,UAAV,CAAsB,CACrB,WAAWzU,aAAJ,CAAkB13C,IAAlB,CAAwB,KAAKyP,UAA7B,CAAyC,IAAzC,CAAP,CACA,CACD,WAAWwqD,aAAJ,CAAkBj6D,IAAlB,CAAwB,KAAKyP,UAA7B,CAAyC,IAAzC,CAAP,CACA,CALD,CAOA2qD,kBAAkB,CAAC/jE,SAAnB,CAA6B26C,WAA7B,CAA2C,SAAUhxC,IAAV,CAAgB,CAC1D,GAAI,CAAC,KAAKmsD,UAAV,CAAsB,CACrB,WAAWlB,aAAJ,CAAkBjrD,IAAlB,CAAwB,KAAKyP,UAA7B,CAAyC,IAAzC,CAAP,CACA,CACD,WAAW8lD,aAAJ,CAAkBv1D,IAAlB,CAAwB,KAAKyP,UAA7B,CAAyC,IAAzC,CAAP,CACA,CALD,CAOA2qD,kBAAkB,CAAC/jE,SAAnB,CAA6B46C,UAA7B,CAA0Cmb,WAAW,CAAC/1D,SAAZ,CAAsB46C,UAAhE,CAEAmpB,kBAAkB,CAAC/jE,SAAnB,CAA6BukE,uBAA7B,CAAuD,SAAU/yC,GAAV,CAAe,CACrE,IAAI5xB,CAAC,CAAG,CAAR,CACA,IAAIC,GAAG,CAAG,KAAKijE,cAAL,CAAoBhjE,MAA9B,CACA,MAAOF,CAAC,CAAGC,GAAX,CAAgB,CACf,GAAI,KAAKijE,cAAL,CAAoBljE,CAApB,EAAuB4kE,QAAvB,EAAmChzC,GAAnC,EAA0C,KAAKsxC,cAAL,CAAoBljE,CAApB,EAAuB6kE,MAAvB,EAAiCjzC,GAA/E,CAAoF,CACnF,YAAYsxC,cAAL,CAAoBljE,CAApB,EAAuBojE,eAA9B,CACA,CACDpjE,CAAC,EAAI,CAAL,CACA,CACD,WAAA,CACA,CAVD,CAYAmkE,kBAAkB,CAAC/jE,SAAnB,CAA6B0kE,qBAA7B,CAAqD,SAAUlzC,GAAV,CAAelyB,IAAf,CAAqB,CACzE,IAAI0jE,eAAe,CAAG3jE,SAAS,CAAC,KAAD,CAA/B,CACA,IAAI6F,KAAJ,CACA,IAAI44D,cAAJ,CACA94D,QAAQ,CAACg+D,eAAD,CAAR,CACA,IAAIhqD,SAAS,CAAG3Z,SAAS,CAAC,KAAD,CAAzB,CACA2F,QAAQ,CAACgU,SAAD,CAAR,CACA,GAAI1Z,IAAI,GAAK,IAAb,CAAmB,CAClB4F,KAAK,CAAG89D,eAAe,CAAC99D,KAAxB,CACAA,KAAK,CAACmM,KAAN,CAAc,KAAK+H,UAAL,CAAgBo6B,QAAhB,CAAyBxkB,CAAzB,CAA6B,IAA3C,CACA9pB,KAAK,CAACoM,MAAN,CAAe,KAAK8H,UAAL,CAAgBo6B,QAAhB,CAAyBrsC,CAAzB,CAA6B,IAA5C,CACA,IAAIw9D,MAAM,CAAG,SAAb,CACAz/D,KAAK,CAACM,qBAAN,CAA8Bm/D,MAA9B,CACAz/D,KAAK,CAAC64D,kBAAN,CAA2B4G,MAA3B,CACAz/D,KAAK,CAACK,eAAN,CAAwBo/D,MAAxB,CACA7G,cAAc,CAAG9kD,SAAS,CAAC9T,KAA3B,CACA,IAAI+9B,MAAM,CAAG,2CAAb,CACA66B,cAAc,CAACtlC,SAAf,CAA2ByK,MAA3B,CACA66B,cAAc,CAACkB,eAAf,CAAiC/7B,MAAjC,CACA,CAED+/B,eAAe,CAACzvD,WAAhB,CAA4ByF,SAA5B,EACA;CACA,IAAI4rD,mBAAmB,CAAG,CACzB5rD,SAAS,CAAEA,SADc,CAEzBgqD,eAAe,CAAEA,eAFQ,CAGzBwB,QAAQ,CAAEhzC,GAHe,CAIzBizC,MAAM,CAAEjzC,GAJiB,CAKzBlyB,IAAI,CAAEA,IALmB,CAA1B,CAOA,KAAKwjE,cAAL,CAAoB3hE,IAApB,CAAyByjE,mBAAzB,EACA,OAAOA,mBAAP,CACA,CAhCD,CAkCAb,kBAAkB,CAAC/jE,SAAnB,CAA6B6kE,iBAA7B,CAAiD,UAAY,CAC5D,IAAIjlE,CAAJ,CACA,IAAIC,GAAG,CAAG,KAAK6K,MAAL,CAAY5K,MAAtB,CACA,IAAIglE,uBAAJ,CACA,IAAIC,gBAAgB,CAAG,EAAvB,CACA,IAAKnlE,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B,GAAI,KAAK8K,MAAL,CAAY9K,CAAZ,EAAeskE,GAAf,EAAsB,KAAKx5D,MAAL,CAAY9K,CAAZ,EAAe6L,EAAf,GAAsB,CAAhD,CAAmD,CAClD,GAAIs5D,gBAAgB,GAAK,IAAzB,CAA+B,CAC9BA,gBAAgB,CAAG,IAAnB,CACAD,uBAAuB,CAAG,KAAKJ,qBAAL,CAA2B9kE,CAA3B,CAA8B,IAA9B,CAA1B,CACA,CACDklE,uBAAuB,CAACL,MAAxB,CAAiC9gE,IAAI,CAACO,GAAL,CAAS4gE,uBAAuB,CAACL,MAAjC,CAAyC7kE,CAAzC,CAAjC,CACA,CAND,IAMO,CACN,GAAImlE,gBAAgB,GAAK,IAAzB,CAA+B,CAC9BA,gBAAgB,CAAG,IAAnB,CACAD,uBAAuB,CAAG,KAAKJ,qBAAL,CAA2B9kE,CAA3B,CAA8B,IAA9B,CAA1B,CACA,CACDklE,uBAAuB,CAACL,MAAxB,CAAiC9gE,IAAI,CAACO,GAAL,CAAS4gE,uBAAuB,CAACL,MAAjC,CAAyC7kE,CAAzC,CAAjC,CACA,CACD,CACDC,GAAG,CAAG,KAAKijE,cAAL,CAAoBhjE,MAA1B,CACA,IAAKF,CAAC,CAAGC,GAAG,CAAG,CAAf,CAAkBD,CAAC,EAAI,CAAvB,CAA0BA,CAAC,EAAI,CAA/B,CAAkC,CACjC,KAAKolE,WAAL,CAAiBzxD,WAAjB,CAA6B,KAAKuvD,cAAL,CAAoBljE,CAApB,EAAuBojE,eAApD,EACA,CACD,CAxBD,CA0BAe,kBAAkB,CAAC/jE,SAAnB,CAA6BmkE,gBAA7B,CAAgD,SAAU7kD,IAAV,CAAgBkS,GAAhB,CAAqB,CACpE,IAAI5xB,CAAC,CAAG,CAAR,CACA,IAAIC,GAAG,CAAG,KAAKijE,cAAL,CAAoBhjE,MAA9B,CACA,MAAOF,CAAC,CAAGC,GAAX,CAAgB,CACf,GAAI2xB,GAAG,EAAI,KAAKsxC,cAAL,CAAoBljE,CAApB,EAAuB6kE,MAAlC,CAA0C,CACzC,IAAI55D,CAAC,CAAG,KAAKi4D,cAAL,CAAoBljE,CAApB,EAAuB4kE,QAA/B,CACA,IAAIhP,WAAJ,CACA,MAAO3qD,CAAC,CAAG2mB,GAAX,CAAgB,CACf,GAAI,KAAKoS,QAAL,CAAc/4B,CAAd,GAAoB,KAAK+4B,QAAL,CAAc/4B,CAAd,EAAiB0uC,cAAzC,CAAyD,CACxDic,WAAW,CAAG,KAAK5xB,QAAL,CAAc/4B,CAAd,EAAiB0uC,cAAjB,EAAd,CACA,CACD1uC,CAAC,EAAI,CAAL,CACA,CACD,GAAI2qD,WAAJ,CAAiB,CAChB,KAAKsN,cAAL,CAAoBljE,CAApB,EAAuBoZ,SAAvB,CAAiCy8C,YAAjC,CAA8Cn2C,IAA9C,CAAoDk2C,WAApD,EACA,CAFD,IAEO,CACN,KAAKsN,cAAL,CAAoBljE,CAApB,EAAuBoZ,SAAvB,CAAiCzF,WAAjC,CAA6C+L,IAA7C,EACA,CACD,MACA,CACD1f,CAAC,EAAI,CAAL,CACA,CACD,CAtBD,CAwBAmkE,kBAAkB,CAAC/jE,SAAnB,CAA6ByY,eAA7B,CAA+C,SAAU2C,QAAV,CAAoB,CAClE,IAAI4pD,WAAW,CAAG3lE,SAAS,CAAC,KAAD,CAA3B,CACA,IAAI0Z,OAAO,CAAG,KAAK8iC,aAAL,CAAmB9iC,OAAjC,CACA,IAAI7T,KAAK,CAAG8/D,WAAW,CAAC9/D,KAAxB,CACAA,KAAK,CAACmM,KAAN,CAAc+J,QAAQ,CAAC4T,CAAT,CAAa,IAA3B,CACA9pB,KAAK,CAACoM,MAAN,CAAe8J,QAAQ,CAACjU,CAAT,CAAa,IAA5B,CACA,KAAK69D,WAAL,CAAmBA,WAAnB,CACAhgE,QAAQ,CAACggE,WAAD,CAAR,CACA9/D,KAAK,CAACS,cAAN,CAAuB,MAAvB,CACAT,KAAK,CAACW,iBAAN,CAA0B,MAA1B,CACAX,KAAK,CAACU,oBAAN,CAA6B,MAA7B,CACA,GAAI,KAAK4mC,YAAL,CAAkB2oB,SAAtB,CAAiC,CAChC6P,WAAW,CAAC1kD,YAAZ,CAAyB,OAAzB,CAAkC,KAAKksB,YAAL,CAAkB2oB,SAApD,EACA,CACDp8C,OAAO,CAACxF,WAAR,CAAoByxD,WAApB,EAEA9/D,KAAK,CAAC+/D,QAAN,CAAiB,QAAjB,CACA,IAAIC,GAAG,CAAGl8D,QAAQ,CAAC,KAAD,CAAlB,CACAk8D,GAAG,CAAC5kD,YAAJ,CAAiB,OAAjB,CAA0B,GAA1B,EACA4kD,GAAG,CAAC5kD,YAAJ,CAAiB,QAAjB,CAA2B,GAA3B,EACAtb,QAAQ,CAACkgE,GAAD,CAAR,CACA,KAAKF,WAAL,CAAiBzxD,WAAjB,CAA6B2xD,GAA7B,EACA,IAAI7rD,IAAI,CAAGrQ,QAAQ,CAAC,MAAD,CAAnB,CACAk8D,GAAG,CAAC3xD,WAAJ,CAAgB8F,IAAhB,EACA,KAAK1P,IAAL,CAAYyR,QAAZ,CACA;CACA,KAAKugC,eAAL,CAAqBvgC,QAArB,CAA+B8pD,GAA/B,EACA,KAAK9rD,UAAL,CAAgBC,IAAhB,CAAuBA,IAAvB,CACA,KAAK3O,MAAL,CAAc0Q,QAAQ,CAAC1Q,MAAvB,CACA,KAAKytC,YAAL,CAAoB,KAAK6sB,WAAzB,CACA,KAAKH,iBAAL,GACA,KAAK7oD,mBAAL,GACA,CAhCD,CAkCA+nD,kBAAkB,CAAC/jE,SAAnB,CAA6BoU,OAA7B,CAAuC,UAAY,CAClD,GAAI,KAAKynC,aAAL,CAAmB9iC,OAAvB,CAAgC,CAC/B,KAAK8iC,aAAL,CAAmB9iC,OAAnB,CAA2B0H,SAA3B,CAAuC,EAAvC,CACA,CACD,KAAKo7B,aAAL,CAAmB7iC,SAAnB,CAA+B,IAA/B,CACA,KAAKI,UAAL,CAAgBC,IAAhB,CAAuB,IAAvB,CACA,IAAIzZ,CAAJ,CACA,IAAIC,GAAG,CAAG,KAAK6K,MAAL,CAAc,KAAKA,MAAL,CAAY5K,MAA1B,CAAmC,CAA7C,CACA,IAAKF,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B,KAAKgkC,QAAL,CAAchkC,CAAd,EAAiBwU,OAAjB,GACA,CACD,KAAKwvB,QAAL,CAAc9jC,MAAd,CAAuB,CAAvB,CACA,KAAKw1D,SAAL,CAAiB,IAAjB,CACA,KAAKzZ,aAAL,CAAqB,IAArB,CACA,CAdD,CAgBAkoB,kBAAkB,CAAC/jE,SAAnB,CAA6Bgc,mBAA7B,CAAmD,UAAY,CAC9D,IAAIkiD,YAAY,CAAG,KAAKriB,aAAL,CAAmB9iC,OAAnB,CAA2B4uB,WAA9C,CACA,IAAIw2B,aAAa,CAAG,KAAKtiB,aAAL,CAAmB9iC,OAAnB,CAA2BqlD,YAA/C,CACA,IAAIC,UAAU,CAAGH,YAAY,CAAGC,aAAhC,CACA,IAAIG,YAAY,CAAG,KAAKllD,UAAL,CAAgBo6B,QAAhB,CAAyBxkB,CAAzB,CAA6B,KAAK5V,UAAL,CAAgBo6B,QAAhB,CAAyBrsC,CAAzE,CACA,IAAI0wB,EAAJ,CACA,IAAI/C,EAAJ,CACA,IAAIwD,EAAJ,CACA,IAAI7sB,EAAJ,CACA,GAAI6yD,YAAY,CAAGD,UAAnB,CAA+B,CAC9BxmC,EAAE,CAAGqmC,YAAY,CAAI,KAAK9kD,UAAL,CAAgBo6B,QAAhB,CAAyBxkB,CAA9C,CACA8F,EAAE,CAAGopC,YAAY,CAAI,KAAK9kD,UAAL,CAAgBo6B,QAAhB,CAAyBxkB,CAA9C,CACAsJ,EAAE,CAAG,CAAL,CACA7sB,EAAE,CAAI,CAAC0yD,aAAa,CAAG,KAAK/kD,UAAL,CAAgBo6B,QAAhB,CAAyBrsC,CAAzB,EAA8B+2D,YAAY,CAAG,KAAK9kD,UAAL,CAAgBo6B,QAAhB,CAAyBxkB,CAAtE,CAAjB,EAA6F,CAAnG,CACA,CALD,IAKO,CACN6I,EAAE,CAAGsmC,aAAa,CAAI,KAAK/kD,UAAL,CAAgBo6B,QAAhB,CAAyBrsC,CAA/C,CACA2tB,EAAE,CAAGqpC,aAAa,CAAI,KAAK/kD,UAAL,CAAgBo6B,QAAhB,CAAyBrsC,CAA/C,CACAmxB,EAAE,CAAG,CAAC4lC,YAAY,CAAG,KAAK9kD,UAAL,CAAgBo6B,QAAhB,CAAyBxkB,CAAzB,EAA8BmvC,aAAa,CAAG,KAAK/kD,UAAL,CAAgBo6B,QAAhB,CAAyBrsC,CAAvE,CAAhB,EAA6F,CAAlG,CACAsE,EAAE,CAAG,CAAL,CACA,CACD,IAAIvG,KAAK,CAAG,KAAK8/D,WAAL,CAAiB9/D,KAA7B,CACAA,KAAK,CAAC85D,eAAN,CAAwB,YAAcnnC,EAAd,CAAmB,WAAnB,CAAiC/C,EAAjC,CAAsC,eAAtC,CAAwDwD,EAAxD,CAA6D,GAA7D,CAAmE7sB,EAAnE,CAAwE,OAAhG,CACAvG,KAAK,CAACszB,SAAN,CAAkBtzB,KAAK,CAAC85D,eAAxB,CACA,CAvBD,CAyBA+E,kBAAkB,CAAC/jE,SAAnB,CAA6Bkc,WAA7B,CAA2C65C,WAAW,CAAC/1D,SAAZ,CAAsBkc,WAAjE,CAEA6nD,kBAAkB,CAAC/jE,SAAnB,CAA6Bqe,IAA7B,CAAoC,UAAY,CAC/C,KAAK2mD,WAAL,CAAiB9/D,KAAjB,CAAuBI,OAAvB,CAAiC,MAAjC,CACA,CAFD,CAIAy+D,kBAAkB,CAAC/jE,SAAnB,CAA6Bse,IAA7B,CAAoC,UAAY,CAC/C,KAAK0mD,WAAL,CAAiB9/D,KAAjB,CAAuBI,OAAvB,CAAiC,OAAjC,CACA,CAFD,CAIAy+D,kBAAkB,CAAC/jE,SAAnB,CAA6B6b,SAA7B,CAAyC,UAAY,CACpD,KAAKo/B,aAAL,GACA,GAAI,KAAK+oB,MAAT,CAAiB,CAChB,KAAKA,MAAL,CAAYnB,KAAZ,GACA,CAFD,IAEO,CACN,IAAIsC,MAAM,CAAG,KAAK/rD,UAAL,CAAgBo6B,QAAhB,CAAyBxkB,CAAtC,CACA,IAAIo2C,OAAO,CAAG,KAAKhsD,UAAL,CAAgBo6B,QAAhB,CAAyBrsC,CAAvC,CACA,IAAIvH,CAAJ,CACA,IAAIC,GAAG,CAAG,KAAKijE,cAAL,CAAoBhjE,MAA9B,CACA,IAAKF,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B,IAAIsF,KAAK,CAAG,KAAK49D,cAAL,CAAoBljE,CAApB,EAAuBojE,eAAvB,CAAuC99D,KAAnD,CACAA,KAAK,CAACg+D,iBAAN,CAA0Bv/D,IAAI,CAACG,IAAL,CAAUH,IAAI,CAACC,GAAL,CAASuhE,MAAT,CAAiB,CAAjB,EAAsBxhE,IAAI,CAACC,GAAL,CAASwhE,OAAT,CAAkB,CAAlB,CAAhC,EAAwD,IAAlF,CACAlgE,KAAK,CAAC+9D,WAAN,CAAoB/9D,KAAK,CAACg+D,iBAA1B,CACA,CACD,CACD,CAfD,CAiBAa,kBAAkB,CAAC/jE,SAAnB,CAA6Bub,uBAA7B,CAAuD,SAAUtP,MAAV,CAAkB,CACxE,IAAIrM,CAAJ,CACA,IAAIC,GAAG,CAAGoM,MAAM,CAACnM,MAAjB,CACA,IAAIulE,iBAAiB,CAAGhmE,SAAS,CAAC,KAAD,CAAjC,CACA,IAAKO,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B,GAAIqM,MAAM,CAACrM,CAAD,CAAN,CAAUgX,EAAd,CAAkB,CACjB,IAAIxK,IAAI,CAAG,KAAKsuC,UAAL,CAAgBzuC,MAAM,CAACrM,CAAD,CAAtB,CAA2BylE,iBAA3B,CAA8C,KAAKjsD,UAAL,CAAgBhN,IAA9D,CAAoE,IAApE,CAAX,CACAA,IAAI,CAACuO,eAAL,GACA,KAAKvB,UAAL,CAAgBd,gBAAhB,CAAiC/B,mBAAjC,CAAqDnK,IAArD,EACA,CACD,CACD,CAXD,CAaA,SAASk5D,YAAT,CAAsB37D,IAAtB,CAA4ByP,UAA5B,CAAwChN,IAAxC,CAA8C,CAC7C,KAAK1B,MAAL,CAAcf,IAAI,CAACe,MAAnB,CACA,KAAKorD,UAAL,CAAkB,CAACnsD,IAAI,CAACyB,OAAxB,CACA,KAAKX,cAAL,CAAsB,KAAtB,CACA,KAAKgxC,eAAL,CAAuB,EAAvB,CACA,KAAK7X,QAAL,CAAgB,KAAKl5B,MAAL,CAAc1H,gBAAgB,CAAC,KAAK0H,MAAL,CAAY5K,MAAb,CAA9B,CAAqD,EAArE,CACA,KAAKmhD,WAAL,CAAiBt3C,IAAjB,CAAuByP,UAAvB,CAAmChN,IAAnC,EACA,KAAK2J,EAAL,CAAUpM,IAAI,CAACoM,EAAL,CAAUkU,eAAe,CAAC2G,OAAhB,CAAwB,IAAxB,CAA8BjnB,IAAI,CAACoM,EAAnC,CAAuC,CAAvC,CAA0CqD,UAAU,CAAC9B,SAArD,CAAgE,IAAhE,CAAV,CAAkF,CAAEwiC,YAAY,CAAE,IAAhB,CAA5F,CACA,CAEDr6C,eAAe,CAAC,CAACskE,kBAAD,CAAqBrO,YAArB,CAAmCiJ,YAAnC,CAAD,CAAmD2G,YAAnD,CAAf,CACAA,YAAY,CAACtlE,SAAb,CAAuBulE,4BAAvB,CAAsDD,YAAY,CAACtlE,SAAb,CAAuBs/C,uBAA7E,CAEAgmB,YAAY,CAACtlE,SAAb,CAAuBs/C,uBAAvB,CAAiD,UAAY,CAC5D,KAAKimB,4BAAL,GACA;CACA,GAAI,KAAK57D,IAAL,CAAUyB,OAAd,CAAuB,CACtB,KAAK2pD,UAAL,CAAgBz0C,YAAhB,CAA6B,OAA7B,CAAsC,KAAK3W,IAAL,CAAUqlB,CAAhD,EACA,KAAK+lC,UAAL,CAAgBz0C,YAAhB,CAA6B,QAA7B,CAAuC,KAAK3W,IAAL,CAAUxC,CAAjD,EACA,KAAKq4C,kBAAL,CAA0B,KAAKtH,WAA/B,CACA,CAJD,IAIO,CACN,KAAKsH,kBAAL,CAA0B,KAAKrH,YAA/B,CACA,CACD,CAVD,CAYAmtB,YAAY,CAACtlE,SAAb,CAAuBmkE,gBAAvB,CAA0C,SAAU7kD,IAAV,CAAgBkS,GAAhB,CAAqB,CAC9D,IAAI3mB,CAAC,CAAG,CAAR,CACA,IAAI2qD,WAAJ,CACA,MAAO3qD,CAAC,CAAG2mB,GAAX,CAAgB,CACf,GAAI,KAAKoS,QAAL,CAAc/4B,CAAd,GAAoB,KAAK+4B,QAAL,CAAc/4B,CAAd,EAAiB0uC,cAAzC,CAAyD,CACxDic,WAAW,CAAG,KAAK5xB,QAAL,CAAc/4B,CAAd,EAAiB0uC,cAAjB,EAAd,CACA,CACD1uC,CAAC,EAAI,CAAL,CACA,CACD,GAAI2qD,WAAJ,CAAiB,CAChB,KAAKrd,YAAL,CAAkBsd,YAAlB,CAA+Bn2C,IAA/B,CAAqCk2C,WAArC,EACA,CAFD,IAEO,CACN,KAAKrd,YAAL,CAAkB5kC,WAAlB,CAA8B+L,IAA9B,EACA,CACD,CAdD,CAgBAgmD,YAAY,CAACtlE,SAAb,CAAuB06C,UAAvB,CAAoC,SAAU/wC,IAAV,CAAgB,CACnD,GAAI,CAAC,KAAKmsD,UAAV,CAAsB,CACrB,WAAWxB,cAAJ,CAAmB3qD,IAAnB,CAAyB,KAAKyP,UAA9B,CAA0C,IAA1C,CAAP,CACA,CACD,WAAWksD,YAAJ,CAAiB37D,IAAjB,CAAuB,KAAKyP,UAA5B,CAAwC,IAAxC,CAAP,CACA,CALD,CAOA,SAASosD,cAAT,CAAwB3pB,aAAxB,CAAuCma,MAAvC,CAA+C,CAC9C,KAAKna,aAAL,CAAqBA,aAArB,CACA,KAAKnxC,MAAL,CAAc,IAAd,CACA,KAAKykB,aAAL,CAAqB,CAAC,CAAtB,CACA,KAAKqd,YAAL,CAAoB,CACnB2oB,SAAS,CAAGa,MAAM,EAAIA,MAAM,CAACb,SAAlB,EAAgC,EADxB,CAEnB3T,wBAAwB,CAAGwU,MAAM,EAAIA,MAAM,CAACxU,wBAAlB,EAA+C,gBAFtD,CAGnB/U,iBAAiB,CAAE,EAAEupB,MAAM,EAAIA,MAAM,CAACvpB,iBAAP,GAA6B,KAAzC,CAHA,CAInB+pB,UAAU,CAAE,CACXnlD,KAAK,CAAG2kD,MAAM,EAAIA,MAAM,CAACQ,UAAjB,EAA+BR,MAAM,CAACQ,UAAP,CAAkBnlD,KAAlD,EAA4D,MADxD,CAEXC,MAAM,CAAG0kD,MAAM,EAAIA,MAAM,CAACQ,UAAjB,EAA+BR,MAAM,CAACQ,UAAP,CAAkBllD,MAAlD,EAA6D,MAF1D,CAGX6R,CAAC,CAAG6yC,MAAM,EAAIA,MAAM,CAACQ,UAAjB,EAA+BR,MAAM,CAACQ,UAAP,CAAkBrzC,CAAlD,EAAwD,OAHhD,CAIXuI,CAAC,CAAGsqC,MAAM,EAAIA,MAAM,CAACQ,UAAjB,EAA+BR,MAAM,CAACQ,UAAP,CAAkB9qC,CAAlD,EAAwD,OAJhD,CAJO,CAApB,CAWA,KAAKtS,UAAL,CAAkB,CACjBsW,IAAI,CAAE,KADW,CAEjBrF,QAAQ,CAAE,CAAC,CAFM,CAGjBmiB,YAAY,CAAE,KAAKA,YAHF,CAAlB,CAKA,KAAKiP,eAAL,CAAuB,EAAvB,CACA,KAAK7X,QAAL,CAAgB,EAAhB,CACA,KAAKk/B,cAAL,CAAsB,EAAtB,CACA,KAAKxN,SAAL,CAAiB,KAAjB,CACA,KAAK0O,MAAL,CAAc,IAAd,CACA,KAAKlO,UAAL,CAAkB,IAAlB,CACA,KAAKl6C,YAAL,CAAoB,MAApB,CACA,CAEDnc,eAAe,CAAC,CAACskE,kBAAD,CAAD,CAAuByB,cAAvB,CAAf,CAEAA,cAAc,CAACxlE,SAAf,CAAyB06C,UAAzB,CAAsC,SAAU/wC,IAAV,CAAgB,CACrD,GAAI,CAAC,KAAKmsD,UAAV,CAAsB,CACrB,WAAWxB,cAAJ,CAAmB3qD,IAAnB,CAAyB,KAAKyP,UAA9B,CAA0C,IAA1C,CAAP,CACA,CACD,WAAWksD,YAAJ,CAAiB37D,IAAjB,CAAuB,KAAKyP,UAA5B,CAAwC,IAAxC,CAAP,CACA,CALD,CAOA,MAAMqsD,WAAW,CAAI,UAAY,CAChC,IAAItyD,EAAE,CAAG,EAAT,CACAA,EAAE,CAACwH,eAAH,CAAqBA,eAArB,CAEA,SAASA,eAAT,CAAyBvK,SAAzB,CAAoC,CACnC,IAAIs1D,UAAU,CAAG,CAAjB,CACA,IAAIC,SAAS,CAAG,EAAhB,CAEA,SAASC,cAAT,EAA0B,CACzBF,UAAU,EAAI,CAAd,CACA,CAED,SAASG,aAAT,EAAyB,CACxBH,UAAU,EAAI,CAAd,CACA,GAAIA,UAAU,GAAK,CAAnB,CAAsB,CACrBI,gBAAgB,GAChB,CACD,CAED,SAASC,0BAAT,CAAoCC,UAApC,CAAgD,CAC/C,GAAIL,SAAS,CAACx2D,OAAV,CAAkB62D,UAAlB,IAAkC,CAAC,CAAvC,CAA0C,CACzCL,SAAS,CAACxkE,IAAV,CAAe6kE,UAAf,EACA,CACD,CAED,SAASF,gBAAT,EAA4B,CAC3B,IAAIlmE,CAAJ,CACA,IAAIC,GAAG,CAAG8lE,SAAS,CAAC7lE,MAApB,CACA,IAAKF,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B+lE,SAAS,CAAC/lE,CAAD,CAAT,CAAa8kB,OAAb,GACA,CACDihD,SAAS,CAAC7lE,MAAV,CAAmB,CAAnB,CACA,CAEDsQ,SAAS,CAAC0H,QAAV,CAAmBhB,aAAnB,CAAmCu8B,uBAAuB,CAACjjC,SAAS,CAAC0H,QAAX,CAA1D,CACA1H,SAAS,CAAC0H,QAAV,CAAmBsB,UAAnB,CAA8Bd,gBAA9B,CAA+C/B,mBAA/C,CAAmEnG,SAAS,CAAC0H,QAA7E,EACA1H,SAAS,CAAC0H,QAAV,CAAmBsB,UAAnB,CAA8BwsD,cAA9B,CAA+CA,cAA/C,CACAx1D,SAAS,CAAC0H,QAAV,CAAmBsB,UAAnB,CAA8BysD,aAA9B,CAA8CA,aAA9C,CACAz1D,SAAS,CAAC0H,QAAV,CAAmBsB,UAAnB,CAA8B2sD,0BAA9B,CAA2DA,0BAA3D,CACA,CACD,OAAO5yD,EAAP,CACA,CAzCoB,EAArB,CA2CA;CAEA;;CAEA;CACA;CACA;CACA;CACA;CACA;CACA;;CAEA;CACA;;CAEA;CACA;CACA;CACA;CACA;CACA;CACA;;CAEA,GAEA,SAAS8yD,UAAT,CAAoBzhD,IAApB,CAA0BW,IAA1B,CAAgC;CAEhC;CACA;AACC,AAAI+gD,KAAAA,MAAM,CAAG,IAAb,CACC70D,KAAK,CAAG,GADT,CACqB;CACpB80D,MAAM,CAAG,CAFV,CAEqB;CACpBC,MAAM,CAAG,EAHV,CAGqB;CACpBC,OAAO,CAAG,QAJX,CAIqB;CACpBC,UAAU,CAAGnhD,IAAI,CAACvhB,GAAL,CAASyN,KAAT,CAAgB80D,MAAhB,CALd,CAMCI,YAAY,CAAGphD,IAAI,CAACvhB,GAAL,CAAS,CAAT,CAAYwiE,MAAZ,CANhB,CAOCnB,QAAQ,CAAGsB,YAAY,CAAG,CAP3B,CAQCv5B,IAAI,CAAG37B,KAAK,CAAG,CARhB,CASqB;CAEtB;CACA;CACA;CACA;CACC,SAASm1D,UAAT,CAAoBC,IAApB,CAA0BC,OAA1B,CAAmCl3D,QAAnC,CAA6C,CAC5C,IAAIyH,GAAG,CAAG,EAAV,CACAyvD,OAAO,CAAIA,OAAO,GAAK,IAAb,CAAqB,CAAEC,OAAO,CAAE,IAAX,CAArB,CAA0CD,OAAO,EAAI,EAA/D,CAEA;CACA,IAAIE,SAAS,CAAGC,MAAM,CAACC,OAAO,CAC7BJ,OAAO,CAACC,OAAR,CAAkB,CAACF,IAAD,CAAOM,QAAQ,CAACviD,IAAD,CAAf,CAAlB,CACEiiD,IAAI,GAAK,IAAV,CAAkBO,QAAQ,EAA1B,CAA+BP,IAFH,CAES,CAFT,CAAR,CAEqBxvD,GAFrB,CAAtB,CAIA;CACA,IAAIgwD,IAAI,CAAG,IAAIC,IAAJ,CAASjwD,GAAT,CAAX,CAEA;CACA;CACA,IAAIkwD,IAAI,CAAG,UAAW,CACrB,IAAIx7C,CAAC,CAAGs7C,IAAI,CAAC1/D,CAAL,CAAO4+D,MAAP,CAAR;CACCr+D,CAAC,CAAGw+D,UADL;CAECnjD,CAAC,CAAG,CAFL,CAEiC;CACjC,MAAOwI,CAAC,CAAG46C,YAAX,CAAyB;CACxB56C,CAAC,CAAG,CAACA,CAAC,CAAGxI,CAAL,EAAU9R,KAAd,CAAkC;CAClCvJ,CAAC,EAAIuJ,KAAL,CAAkC;CAClC8R,CAAC,CAAG8jD,IAAI,CAAC1/D,CAAL,CAAO,CAAP,CAAJ,CAAkC;CAClC,CACD,MAAOokB,CAAC,EAAIs5C,QAAZ,CAAsB;CACrBt5C,CAAC,EAAI,CAAL,CAAkC;CAClC7jB,CAAC,EAAI,CAAL,CAAkC;CAClCqb,CAAC,IAAM,CAAP,CAAkC;CAClC,CACD,OAAO,CAACwI,CAAC,CAAGxI,CAAL,EAAUrb,CAAjB,CAAoC;CACpC,CAfD,CAiBAq/D,IAAI,CAACC,KAAL,CAAa,UAAW,CAAE,OAAOH,IAAI,CAAC1/D,CAAL,CAAO,CAAP,EAAY,CAAnB,CAAuB,CAAjD,CACA4/D,IAAI,CAACE,KAAL,CAAa,UAAW,CAAE,OAAOJ,IAAI,CAAC1/D,CAAL,CAAO,CAAP,EAAY,WAAnB,CAAiC,CAA3D,CACA4/D,IAAI,CAACljD,MAAL,CAAckjD,IAAd,CAEA;CACAN,MAAM,CAACE,QAAQ,CAACE,IAAI,CAACK,CAAN,CAAT,CAAmB9iD,IAAnB,CAAN,CAEA;CACA,OAAO,CAACkiD,OAAO,CAACa,IAAR,EAAgB/3D,QAAhB,EACP,SAAS23D,IAAT,CAAeV,IAAf,CAAqBe,YAArB,CAAmCC,KAAnC,CAA0C,CACzC,GAAIA,KAAJ,CAAW;CAEV,GAAIA,KAAK,CAACH,CAAV,CAAa,CAAEI,IAAI,CAACD,KAAD,CAAQR,IAAR,CAAJ,CAAoB,CACnC;CACAE,IAAI,CAACM,KAAL,CAAa,UAAW,CAAE,OAAOC,IAAI,CAACT,IAAD,CAAO,EAAP,CAAX,CAAwB,CAAlD,CACA,CAED;CACA;CACA,GAAIO,YAAJ,CAAkB,CAAEriD,IAAI,CAACkhD,OAAD,CAAJ,CAAgBc,IAAhB,CAAsB,OAAOV,IAAP,CAAc,CAEvD;CACD;CAHA,YAIYU,IAAP,CACL,CAhBK,EAiBNA,IAjBM,CAkBNP,SAlBM,CAmBN,WAAYF,OAAZ,CAAsBA,OAAO,CAACR,MAA9B,CAAwC,MAAQ/gD,IAnB1C,CAoBNuhD,OAAO,CAACe,KApBF,CAAP,CAqBA,CACDtiD,IAAI,CAAC,OAASkhD,OAAV,CAAJ,CAAyBG,UAAzB,CAED;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACC,SAASU,IAAT,CAAcjwD,GAAd,CAAmB,CAClB,IAAIrP,CAAJ,CAAO+/D,MAAM,CAAG1wD,GAAG,CAACnX,MAApB,CACC8nE,EAAE,CAAG,IADN,CACYhoE,CAAC,CAAG,CADhB,CACmBiL,CAAC,CAAG+8D,EAAE,CAAChoE,CAAH,CAAOgoE,EAAE,CAAC/8D,CAAH,CAAO,CADrC,CACwCzD,CAAC,CAAGwgE,EAAE,CAACN,CAAH,CAAO,EADnD,CAGA;CACA,GAAI,CAACK,MAAL,CAAa,CAAE1wD,GAAG,CAAG,CAAC0wD,MAAM,EAAP,CAAN,CAAmB,CAElC;CACA,MAAO/nE,CAAC,CAAGyR,KAAX,CAAkB,CACjBjK,CAAC,CAACxH,CAAD,CAAD,CAAOA,CAAC,EAAR,CACA,CACD,IAAKA,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGyR,KAAhB,CAAuBzR,CAAC,EAAxB,CAA4B,CAC3BwH,CAAC,CAACxH,CAAD,CAAD,CAAOwH,CAAC,CAACyD,CAAC,CAAGmiC,IAAI,CAAIniC,CAAC,CAAGoM,GAAG,CAACrX,CAAC,CAAG+nE,MAAL,CAAP,EAAuB//D,CAAC,CAAGR,CAAC,CAACxH,CAAD,CAA5B,CAAb,CAAR,CACAwH,CAAC,CAACyD,CAAD,CAAD,CAAOjD,CAAP,CACA,CAED;CACAggE,EAAE,CAACrgE,CAAH,CAAO,SAASs1C,KAAT,CAAgB;CAEtB,IAAIj1C,CAAJ,CAAON,CAAC,CAAG,CAAX,CACC1H,CAAC,CAAGgoE,EAAE,CAAChoE,CADR,CACWiL,CAAC,CAAG+8D,EAAE,CAAC/8D,CADlB,CACqBzD,CAAC,CAAGwgE,EAAE,CAACN,CAD5B,CAEA,MAAOzqB,KAAK,EAAZ,CAAgB,CACfj1C,CAAC,CAAGR,CAAC,CAACxH,CAAC,CAAGotC,IAAI,CAAIptC,CAAC,CAAG,CAAjB,CAAL,CACA0H,CAAC,CAAGA,CAAC,CAAG+J,KAAJ,CAAYjK,CAAC,CAAC4lC,IAAI,CAAI,CAAC5lC,CAAC,CAACxH,CAAD,CAAD,CAAOwH,CAAC,CAACyD,CAAC,CAAGmiC,IAAI,CAAIniC,CAAC,CAAGjD,CAAjB,CAAT,GAAkCR,CAAC,CAACyD,CAAD,CAAD,CAAOjD,CAAzC,CAAT,CAAjB,CACA,CACDggE,EAAE,CAAChoE,CAAH,CAAOA,CAAP,CAAUgoE,EAAE,CAAC/8D,CAAH,CAAOA,CAAP,CACV,OAAOvD,CAAP,CACA;CACA;CACA;CACA,CAbD,CAcA,CAEF;CACA;CACA;CACA;CACC,SAASogE,IAAT,CAAcjgE,CAAd,CAAiBG,CAAjB,CAAoB,CACnBA,CAAC,CAAChI,CAAF,CAAM6H,CAAC,CAAC7H,CAAR,CACAgI,CAAC,CAACiD,CAAF,CAAMpD,CAAC,CAACoD,CAAR,CACAjD,CAAC,CAAC0/D,CAAF,CAAM7/D,CAAC,CAAC6/D,CAAF,CAAIlnD,KAAJ,EAAN,CACA,OAAOxY,CAAP,CACA,CAEF;CACA;CACA;CACA;CACC,SAASk/D,OAAT,CAAiBjc,GAAjB,CAAsBgd,KAAtB,CAA6B,CAC5B,IAAIC,MAAM,CAAG,EAAb,CAAiBC,GAAG,CAAI,OAAOld,GAA/B,CAAqCtqD,IAArC,CACA,GAAIsnE,KAAK,EAAIE,GAAG,EAAI,QAApB,CAA8B,CAC7B,IAAKxnE,IAAL,IAAasqD,GAAb,CAAkB,CACjB,GAAI,CAAEid,MAAM,CAAC3mE,IAAP,CAAY2lE,OAAO,CAACjc,GAAG,CAACtqD,IAAD,CAAJ,CAAYsnE,KAAK,CAAG,CAApB,CAAnB,EAA6C,CAAC,MAAOt9D,CAAP,CAAU,EAC9D,CACD,CACD,OAAQu9D,MAAM,CAAChoE,MAAP,CAAgBgoE,MAAhB,CAAyBC,GAAG,EAAI,QAAP,CAAkBld,GAAlB,CAAwBA,GAAG,CAAG,IAA/D,CACA,CAEF;CACA;CACA;CACA;CACA;CACC,SAASgc,MAAT,CAAgBJ,IAAhB,CAAsBxvD,GAAtB,CAA2B,CAC1B,IAAI+wD,UAAU,CAAGvB,IAAI,CAAG,EAAxB,CAA4BwB,KAA5B,CAAmCp9D,CAAC,CAAG,CAAvC,CACA,MAAOA,CAAC,CAAGm9D,UAAU,CAACloE,MAAtB,CAA8B,CAC7BmX,GAAG,CAAC+1B,IAAI,CAAGniC,CAAR,CAAH,CACCmiC,IAAI,CAAI,CAACi7B,KAAK,EAAIhxD,GAAG,CAAC+1B,IAAI,CAAGniC,CAAR,CAAH,CAAgB,EAA1B,EAAgCm9D,UAAU,CAAC19B,UAAX,CAAsBz/B,CAAC,EAAvB,CADzC,CAEA,CACD,OAAOk8D,QAAQ,CAAC9vD,GAAD,CAAf,CACA,CAEF;CACA;CACA;CACA;CACA;CACC,SAAS+vD,QAAT,EAAoB,CACnB,GAAI,CACH,AACA,IAAIl6C,GAAG,CAAG,IAAIo7C,UAAJ,CAAe72D,KAAf,CAAV,CACA,CAAC60D,MAAM,CAACiC,MAAP,EAAiBjC,MAAM,CAACkC,QAAzB,EAAmCC,eAAnC,CAAmDv7C,GAAnD,EACA,OAAOi6C,QAAQ,CAACj6C,GAAD,CAAf,CACA,CAAC,MAAOviB,CAAP,CAAU,CACX,IAAI+9D,OAAO,CAAGpC,MAAM,CAAC1iE,SAArB,CACC+kE,OAAO,CAAGD,OAAO,EAAIA,OAAO,CAACC,OAD9B,CAEA,OAAO,CAAC,CAAC,IAAIngC,IAAJ,EAAF,CAAc89B,MAAd,CAAsBqC,OAAtB,CAA+BrC,MAAM,CAACsC,MAAtC,CAA8CzB,QAAQ,CAACviD,IAAD,CAAtD,CAAP,CACA,CACD,CAEF;CACA;CACA;CACA;CACC,SAASuiD,QAAT,CAAkBj5D,CAAlB,CAAqB,CACpB,OAAO4oC,MAAM,CAACgd,YAAP,CAAoBxwD,KAApB,CAA0B,CAA1B,CAA6B4K,CAA7B,CAAP,CACA,CAEF;CACA;CACA;CACA;CACA;CACA;CACA;CACC+4D,MAAM,CAAC1hD,IAAI,CAAC5gB,MAAL,EAAD,CAAgBigB,IAAhB,CAAN,CAED;CACA;CACA;CACA;CAEA;CACC,CAED,SAASikD,YAAT,CAAsBpkE,MAAtB,CAA8B,CAC7B4hE,UAAU,CAAC,EAAD,CAAK5hE,MAAL,CAAV,CACA,CAED,IAAIqkE,SAAS,CAAG,CACfC,KAAK,CAAE,OADQ,CAAhB,CAIA,8BAEA,MAAMC,iBAAiB,CAAI,UAAY,CACtC,AAEA,IAAIz1D,EAAE,CAAG,EAAT,CACA,IAAIxP,IAAI,CAAGU,MAAX,CACA,IAAI3C,MAAM,CAAG,IAAb,CACA,IAAInC,QAAQ,CAAG,IAAf,CACA,IAAImQ,cAAc,CAAG,IAArB,CACA,IAAIm5D,KAAK,CAAG,IAAZ,CACA,IAAIC,MAAM,CAAG,IAAb,CACAL,YAAY,CAACpkE,MAAD,CAAZ,CAEA,SAAS0kE,qBAAT,CAA+BpmE,GAA/B,CAAoC,CACnC,OAAOA,GAAG,CAACkqB,WAAJ,GAAoB5pB,KAApB,EAA6BN,GAAG,CAACkqB,WAAJ,GAAoBhqB,YAAxD,CACA,CAED,SAASmmE,WAAT,CAAqBC,IAArB,CAA2B5hE,CAA3B,CAA8B,CAC7B,OAAO4hE,IAAI,GAAK,QAAT,EAAqBA,IAAI,GAAK,SAA9B,EAA2CA,IAAI,GAAK,QAApD,EAAgE5hE,CAAC,YAAYwV,MAApF,CACA,CAED,SAASqsD,OAAT,CAAiBp7D,CAAjB,CAAoB,CACnB,IAAIq7D,IAAI,CAAG,OAAOr7D,CAAlB,CACA,GAAIq7D,IAAI,GAAK,QAAT,EAAqBA,IAAI,GAAK,SAA9B,EAA2Cr7D,CAAC,YAAY+O,MAA5D,CAAoE,CACnE,OAAO,CAAC/O,CAAR,CACA,CACD,GAAIi7D,qBAAqB,CAACj7D,CAAD,CAAzB,CAA8B,CAC7B,IAAIlO,CAAJ,CACA,IAAIwpE,IAAI,CAAGt7D,CAAC,CAAChO,MAAb,CACA,IAAIupE,MAAM,CAAG,EAAb,CACA,IAAKzpE,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGwpE,IAAhB,CAAsBxpE,CAAC,EAAI,CAA3B,CAA8B,CAC7BypE,MAAM,CAACzpE,CAAD,CAAN,CAAY,CAACkO,CAAC,CAAClO,CAAD,CAAd,CACA,CACD,OAAOypE,MAAP,CACA,CACD,GAAIv7D,CAAC,CAAC2c,QAAN,CAAgB,CACf,OAAO3c,CAAC,CAACzG,CAAT,CACA,CACD,OAAO,CAACyG,CAAR,CACA,CAED,IAAIw7D,SAAS,CAAGzoD,aAAa,CAACC,eAAd,CAA8B,KAA9B,CAAqC,CAArC,CAAwC,KAAxC,CAA+C,KAA/C,CAAsD,QAAtD,EAAgEoC,GAAhF,CACA,IAAIqmD,UAAU,CAAG1oD,aAAa,CAACC,eAAd,CAA8B,KAA9B,CAAqC,KAArC,CAA4C,KAA5C,CAAmD,CAAnD,CAAsD,SAAtD,EAAiEoC,GAAlF,CACA,IAAIsmD,YAAY,CAAG3oD,aAAa,CAACC,eAAd,CAA8B,IAA9B,CAAoC,CAApC,CAAuC,KAAvC,CAA8C,CAA9C,CAAiD,WAAjD,EAA8DoC,GAAjF,CAEA,SAASgoB,GAAT,CAAap9B,CAAb,CAAgBtG,CAAhB,CAAmB,CAClB,IAAI2hE,IAAI,CAAG,OAAOr7D,CAAlB,CACA,IAAI27D,IAAI,CAAG,OAAOjiE,CAAlB,CACA,GAAI2hE,IAAI,GAAK,QAAT,EAAqBM,IAAI,GAAK,QAAlC,CAA4C,CAC3C,OAAO37D,CAAC,CAAGtG,CAAX,CACA,CACD,GAAIwhE,WAAW,CAACG,IAAD,CAAOr7D,CAAP,CAAX,EAAwBk7D,WAAW,CAACS,IAAD,CAAOjiE,CAAP,CAAvC,CAAkD,CACjD,OAAOsG,CAAC,CAAGtG,CAAX,CACA,CACD,GAAIuhE,qBAAqB,CAACj7D,CAAD,CAArB,EAA4Bk7D,WAAW,CAACS,IAAD,CAAOjiE,CAAP,CAA3C,CAAsD,CACrDsG,CAAC,CAAGA,CAAC,CAACsS,KAAF,CAAQ,CAAR,CAAJ,CACAtS,CAAC,CAAC,CAAD,CAAD,EAAQtG,CAAR,CACA,OAAOsG,CAAP,CACA,CACD,GAAIk7D,WAAW,CAACG,IAAD,CAAOr7D,CAAP,CAAX,EAAwBi7D,qBAAqB,CAACvhE,CAAD,CAAjD,CAAsD,CACrDA,CAAC,CAAGA,CAAC,CAAC4Y,KAAF,CAAQ,CAAR,CAAJ,CACA5Y,CAAC,CAAC,CAAD,CAAD,CAAOsG,CAAC,CAAGtG,CAAC,CAAC,CAAD,CAAZ,CACA,OAAOA,CAAP,CACA,CACD,GAAIuhE,qBAAqB,CAACj7D,CAAD,CAArB,EAA4Bi7D,qBAAqB,CAACvhE,CAAD,CAArD,CAA0D,CACzD,IAAI5H,CAAC,CAAG,CAAR,CACA,IAAIwpE,IAAI,CAAGt7D,CAAC,CAAChO,MAAb,CACA,IAAI4pE,IAAI,CAAGliE,CAAC,CAAC1H,MAAb,CACA,IAAIupE,MAAM,CAAG,EAAb,CACA,MAAOzpE,CAAC,CAAGwpE,IAAJ,EAAYxpE,CAAC,CAAG8pE,IAAvB,CAA6B,CAC5B,GAAI,CAAC,OAAO57D,CAAC,CAAClO,CAAD,CAAR,GAAgB,QAAhB,EAA4BkO,CAAC,CAAClO,CAAD,CAAD,WAAgBid,MAA7C,IAAyD,OAAOrV,CAAC,CAAC5H,CAAD,CAAR,GAAgB,QAAhB,EAA4B4H,CAAC,CAAC5H,CAAD,CAAD,WAAgBid,MAArG,CAAJ,CAAkH,CACjHwsD,MAAM,CAACzpE,CAAD,CAAN,CAAYkO,CAAC,CAAClO,CAAD,CAAD,CAAO4H,CAAC,CAAC5H,CAAD,CAApB,CACA,CAFD,IAEO,CACNypE,MAAM,CAACzpE,CAAD,CAAN,CAAY4H,CAAC,CAAC5H,CAAD,CAAD,GAAS2Z,SAAT,CAAqBzL,CAAC,CAAClO,CAAD,CAAtB,CAA4BkO,CAAC,CAAClO,CAAD,CAAD,EAAQ4H,CAAC,CAAC5H,CAAD,CAAjD,CACA,CACDA,CAAC,EAAI,CAAL,CACA,CACD,OAAOypE,MAAP,CACA,CACD,QAAA,CACA,CACD,IAAI5c,GAAG,CAAGvhB,GAAV,CAEA,SAASy+B,GAAT,CAAa77D,CAAb,CAAgBtG,CAAhB,CAAmB,CAClB,IAAI2hE,IAAI,CAAG,OAAOr7D,CAAlB,CACA,IAAI27D,IAAI,CAAG,OAAOjiE,CAAlB,CACA,GAAIwhE,WAAW,CAACG,IAAD,CAAOr7D,CAAP,CAAX,EAAwBk7D,WAAW,CAACS,IAAD,CAAOjiE,CAAP,CAAvC,CAAkD,CACjD,GAAI2hE,IAAI,GAAK,QAAb,CAAuB,CACtBr7D,CAAC,CAAG0L,QAAQ,CAAC1L,CAAD,CAAI,EAAJ,CAAZ,CACA,CACD,GAAI27D,IAAI,GAAK,QAAb,CAAuB,CACtBjiE,CAAC,CAAGgS,QAAQ,CAAChS,CAAD,CAAI,EAAJ,CAAZ,CACA,CACD,OAAOsG,CAAC,CAAGtG,CAAX,CACA,CACD,GAAIuhE,qBAAqB,CAACj7D,CAAD,CAArB,EAA4Bk7D,WAAW,CAACS,IAAD,CAAOjiE,CAAP,CAA3C,CAAsD,CACrDsG,CAAC,CAAGA,CAAC,CAACsS,KAAF,CAAQ,CAAR,CAAJ,CACAtS,CAAC,CAAC,CAAD,CAAD,EAAQtG,CAAR,CACA,OAAOsG,CAAP,CACA,CACD,GAAIk7D,WAAW,CAACG,IAAD,CAAOr7D,CAAP,CAAX,EAAwBi7D,qBAAqB,CAACvhE,CAAD,CAAjD,CAAsD,CACrDA,CAAC,CAAGA,CAAC,CAAC4Y,KAAF,CAAQ,CAAR,CAAJ,CACA5Y,CAAC,CAAC,CAAD,CAAD,CAAOsG,CAAC,CAAGtG,CAAC,CAAC,CAAD,CAAZ,CACA,OAAOA,CAAP,CACA,CACD,GAAIuhE,qBAAqB,CAACj7D,CAAD,CAArB,EAA4Bi7D,qBAAqB,CAACvhE,CAAD,CAArD,CAA0D,CACzD,IAAI5H,CAAC,CAAG,CAAR,CACA,IAAIwpE,IAAI,CAAGt7D,CAAC,CAAChO,MAAb,CACA,IAAI4pE,IAAI,CAAGliE,CAAC,CAAC1H,MAAb,CACA,IAAIupE,MAAM,CAAG,EAAb,CACA,MAAOzpE,CAAC,CAAGwpE,IAAJ,EAAYxpE,CAAC,CAAG8pE,IAAvB,CAA6B,CAC5B,GAAI,CAAC,OAAO57D,CAAC,CAAClO,CAAD,CAAR,GAAgB,QAAhB,EAA4BkO,CAAC,CAAClO,CAAD,CAAD,WAAgBid,MAA7C,IAAyD,OAAOrV,CAAC,CAAC5H,CAAD,CAAR,GAAgB,QAAhB,EAA4B4H,CAAC,CAAC5H,CAAD,CAAD,WAAgBid,MAArG,CAAJ,CAAkH,CACjHwsD,MAAM,CAACzpE,CAAD,CAAN,CAAYkO,CAAC,CAAClO,CAAD,CAAD,CAAO4H,CAAC,CAAC5H,CAAD,CAApB,CACA,CAFD,IAEO,CACNypE,MAAM,CAACzpE,CAAD,CAAN,CAAY4H,CAAC,CAAC5H,CAAD,CAAD,GAAS2Z,SAAT,CAAqBzL,CAAC,CAAClO,CAAD,CAAtB,CAA4BkO,CAAC,CAAClO,CAAD,CAAD,EAAQ4H,CAAC,CAAC5H,CAAD,CAAjD,CACA,CACDA,CAAC,EAAI,CAAL,CACA,CACD,OAAOypE,MAAP,CACA,CACD,QAAA,CACA,CAED,SAASO,GAAT,CAAa97D,CAAb,CAAgBtG,CAAhB,CAAmB,CAClB,IAAI2hE,IAAI,CAAG,OAAOr7D,CAAlB,CACA,IAAI27D,IAAI,CAAG,OAAOjiE,CAAlB,CACA,IAAI7E,GAAJ,CACA,GAAIqmE,WAAW,CAACG,IAAD,CAAOr7D,CAAP,CAAX,EAAwBk7D,WAAW,CAACS,IAAD,CAAOjiE,CAAP,CAAvC,CAAkD,CACjD,OAAOsG,CAAC,CAAGtG,CAAX,CACA,CAED,IAAI5H,CAAJ,CACA,IAAIC,GAAJ,CACA,GAAIkpE,qBAAqB,CAACj7D,CAAD,CAArB,EAA4Bk7D,WAAW,CAACS,IAAD,CAAOjiE,CAAP,CAA3C,CAAsD,CACrD3H,GAAG,CAAGiO,CAAC,CAAChO,MAAR,CACA6C,GAAG,CAAGF,gBAAgB,CAAC,SAAD,CAAY5C,GAAZ,CAAtB,CACA,IAAKD,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B+C,GAAG,CAAC/C,CAAD,CAAH,CAASkO,CAAC,CAAClO,CAAD,CAAD,CAAO4H,CAAhB,CACA,CACD,OAAO7E,GAAP,CACA,CACD,GAAIqmE,WAAW,CAACG,IAAD,CAAOr7D,CAAP,CAAX,EAAwBi7D,qBAAqB,CAACvhE,CAAD,CAAjD,CAAsD,CACrD3H,GAAG,CAAG2H,CAAC,CAAC1H,MAAR,CACA6C,GAAG,CAAGF,gBAAgB,CAAC,SAAD,CAAY5C,GAAZ,CAAtB,CACA,IAAKD,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B+C,GAAG,CAAC/C,CAAD,CAAH,CAASkO,CAAC,CAAGtG,CAAC,CAAC5H,CAAD,CAAd,CACA,CACD,OAAO+C,GAAP,CACA,CACD,QAAA,CACA,CAED,SAAS+d,GAAT,CAAa5S,CAAb,CAAgBtG,CAAhB,CAAmB,CAClB,IAAI2hE,IAAI,CAAG,OAAOr7D,CAAlB,CACA,IAAI27D,IAAI,CAAG,OAAOjiE,CAAlB,CACA,IAAI7E,GAAJ,CACA,GAAIqmE,WAAW,CAACG,IAAD,CAAOr7D,CAAP,CAAX,EAAwBk7D,WAAW,CAACS,IAAD,CAAOjiE,CAAP,CAAvC,CAAkD,CACjD,OAAOsG,CAAC,CAAGtG,CAAX,CACA,CACD,IAAI5H,CAAJ,CACA,IAAIC,GAAJ,CACA,GAAIkpE,qBAAqB,CAACj7D,CAAD,CAArB,EAA4Bk7D,WAAW,CAACS,IAAD,CAAOjiE,CAAP,CAA3C,CAAsD,CACrD3H,GAAG,CAAGiO,CAAC,CAAChO,MAAR,CACA6C,GAAG,CAAGF,gBAAgB,CAAC,SAAD,CAAY5C,GAAZ,CAAtB,CACA,IAAKD,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B+C,GAAG,CAAC/C,CAAD,CAAH,CAASkO,CAAC,CAAClO,CAAD,CAAD,CAAO4H,CAAhB,CACA,CACD,OAAO7E,GAAP,CACA,CACD,GAAIqmE,WAAW,CAACG,IAAD,CAAOr7D,CAAP,CAAX,EAAwBi7D,qBAAqB,CAACvhE,CAAD,CAAjD,CAAsD,CACrD3H,GAAG,CAAG2H,CAAC,CAAC1H,MAAR,CACA6C,GAAG,CAAGF,gBAAgB,CAAC,SAAD,CAAY5C,GAAZ,CAAtB,CACA,IAAKD,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B+C,GAAG,CAAC/C,CAAD,CAAH,CAASkO,CAAC,CAAGtG,CAAC,CAAC5H,CAAD,CAAd,CACA,CACD,OAAO+C,GAAP,CACA,CACD,QAAA,CACA,CACD,SAASknE,GAAT,CAAa/7D,CAAb,CAAgBtG,CAAhB,CAAmB,CAClB,GAAI,OAAOsG,CAAP,GAAa,QAAjB,CAA2B,CAC1BA,CAAC,CAAG0L,QAAQ,CAAC1L,CAAD,CAAI,EAAJ,CAAZ,CACA,CACD,GAAI,OAAOtG,CAAP,GAAa,QAAjB,CAA2B,CAC1BA,CAAC,CAAGgS,QAAQ,CAAChS,CAAD,CAAI,EAAJ,CAAZ,CACA,CACD,OAAOsG,CAAC,CAAGtG,CAAX,CACA,CACD,IAAIsiE,OAAO,CAAG5+B,GAAd,CACA,IAAI6+B,OAAO,CAAGJ,GAAd,CACA,IAAIK,OAAO,CAAGJ,GAAd,CACA,IAAIK,OAAO,CAAGvpD,GAAd,CACA,IAAIwpD,OAAO,CAAGL,GAAd,CAEA,SAASM,KAAT,CAAeh+B,GAAf,CAAoB/nC,GAApB,CAAyBF,GAAzB,CAA8B,CAC7B,GAAIE,GAAG,CAAGF,GAAV,CAAe,CACd,IAAIkmE,EAAE,CAAGlmE,GAAT,CACAA,GAAG,CAAGE,GAAN,CACAA,GAAG,CAAGgmE,EAAN,CACA,CACD,OAAOzmE,IAAI,CAACS,GAAL,CAAST,IAAI,CAACO,GAAL,CAASioC,GAAT,CAAc/nC,GAAd,CAAT,CAA6BF,GAA7B,CAAP,CACA,CAED,SAASmmE,gBAAT,CAA0B5lE,GAA1B,CAA+B,CAC9B,OAAOA,GAAG,CAAGI,SAAb,CACA,CACD,IAAIylE,kBAAkB,CAAGD,gBAAzB,CAEA,SAASE,gBAAT,CAA0B9lE,GAA1B,CAA+B,CAC9B,OAAOA,GAAG,CAAGI,SAAb,CACA,CACD,IAAI2lE,kBAAkB,CAAGH,gBAAzB,CAEA,IAAII,iBAAiB,CAAG,CAAC,CAAD,CAAI,CAAJ,CAAO,CAAP,CAAU,CAAV,CAAa,CAAb,CAAgB,CAAhB,CAAxB,CAEA,SAAS3qE,MAAT,CAAgB4qE,IAAhB,CAAsBC,IAAtB,CAA4B,CAC3B,GAAI,OAAOD,IAAP,GAAgB,QAAhB,EAA4BA,IAAI,YAAY7tD,MAAhD,CAAwD,CACvD8tD,IAAI,CAAGA,IAAI,EAAI,CAAf,CACA,OAAOhnE,IAAI,CAACa,GAAL,CAASkmE,IAAI,CAAGC,IAAhB,CAAP,CACA,CACD,GAAI,CAACA,IAAL,CAAW,CACVA,IAAI,CAAGF,iBAAP,CACA,CACD,IAAI7qE,CAAJ,CACA,IAAIC,GAAG,CAAG8D,IAAI,CAACS,GAAL,CAASsmE,IAAI,CAAC5qE,MAAd,CAAsB6qE,IAAI,CAAC7qE,MAA3B,CAAV,CACA,IAAI+kB,WAAW,CAAG,CAAlB,CACA,IAAKjlB,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5BilB,WAAW,EAAIlhB,IAAI,CAACC,GAAL,CAAS+mE,IAAI,CAAC/qE,CAAD,CAAJ,CAAU8qE,IAAI,CAAC9qE,CAAD,CAAvB,CAA4B,CAA5B,CAAf,CACA,CACD,OAAO+D,IAAI,CAACG,IAAL,CAAU+gB,WAAV,CAAP,CACA,CAED,SAAS+lD,SAAT,CAAmBC,GAAnB,CAAwB,CACvB,OAAOnqD,GAAG,CAACmqD,GAAD,CAAM/qE,MAAM,CAAC+qE,GAAD,CAAZ,CAAV,CACA,CAED,SAASC,QAAT,CAAkBrmE,GAAlB,CAAuB,CACtB,IAAI6C,CAAC,CAAG7C,GAAG,CAAC,CAAD,CAAX,CAAgB,IAAI8C,CAAC,CAAG9C,GAAG,CAAC,CAAD,CAAX,CAAgB,IAAI+C,CAAC,CAAG/C,GAAG,CAAC,CAAD,CAAX,CAChC,IAAIP,GAAG,CAAGP,IAAI,CAACO,GAAL,CAASoD,CAAT,CAAYC,CAAZ,CAAeC,CAAf,CAAV,CACA,IAAIpD,GAAG,CAAGT,IAAI,CAACS,GAAL,CAASkD,CAAT,CAAYC,CAAZ,CAAeC,CAAf,CAAV,CACA,IAAIL,CAAJ,CACA,IAAIC,CAAJ,CACA,IAAI+wB,CAAC,CAAG,CAACj0B,GAAG,CAAGE,GAAP,EAAc,CAAtB,CAEA,GAAIF,GAAG,GAAKE,GAAZ,CAAiB,CAChB+C,CAAC,CAAG,CAAJ,CAAO;CACPC,CAAC,CAAG,CAAJ,CAAO;CACP,CAHD,IAGO,CACN,IAAIU,CAAC,CAAG5D,GAAG,CAAGE,GAAd,CACAgD,CAAC,CAAG+wB,CAAC,CAAG,GAAJ,CAAUrwB,CAAC,EAAI,EAAI5D,GAAJ,CAAUE,GAAd,CAAX,CAAgC0D,CAAC,EAAI5D,GAAG,CAAGE,GAAV,CAArC,CACA,OAAQF,GAAR,EACC,KAAKoD,CAAL,CAAQH,CAAC,CAAG,CAACI,CAAC,CAAGC,CAAL,EAAUM,CAAV,EAAeP,CAAC,CAAGC,CAAJ,CAAQ,CAAR,CAAY,CAA3B,CAAJ,CAAmC,MAC3C,KAAKD,CAAL,CAAQJ,CAAC,CAAG,CAACK,CAAC,CAAGF,CAAL,EAAUQ,CAAV,CAAc,CAAlB,CAAqB,MAC7B,KAAKN,CAAL,CAAQL,CAAC,CAAG,CAACG,CAAC,CAAGC,CAAL,EAAUO,CAAV,CAAc,CAAlB,CAAqB,MAC7B,QAAS,MAJV,CAMAX,CAAC,EAAI,CAAL,CACA,CAED,OAAO,CAACA,CAAD,CAAIC,CAAJ,CAAO+wB,CAAP,CAAU1zB,GAAG,CAAC,CAAD,CAAb,CAAP,CACA,CAED,SAASsmE,OAAT,CAAiBrjE,CAAjB,CAAoBC,CAApB,CAAuBC,CAAvB,CAA0B,CACzB,GAAIA,CAAC,CAAG,CAAR,CAAWA,CAAC,EAAI,CAAL,CACX,GAAIA,CAAC,CAAG,CAAR,CAAWA,CAAC,EAAI,CAAL,CACX,GAAIA,CAAC,CAAG,EAAI,CAAZ,CAAe,OAAOF,CAAC,CAAG,CAACC,CAAC,CAAGD,CAAL,EAAU,CAAV,CAAcE,CAAzB,CACf,GAAIA,CAAC,CAAG,EAAI,CAAZ,CAAe,OAAOD,CAAP,CACf,GAAIC,CAAC,CAAG,EAAI,CAAZ,CAAe,OAAOF,CAAC,CAAG,CAACC,CAAC,CAAGD,CAAL,GAAW,EAAI,CAAJ,CAAQE,CAAnB,EAAwB,CAAnC,CACf,OAAOF,CAAP,CACA,CAED,SAASsjE,QAAT,CAAkBvmE,GAAlB,CAAuB,CACtB,IAAI0C,CAAC,CAAG1C,GAAG,CAAC,CAAD,CAAX,CACA,IAAI2C,CAAC,CAAG3C,GAAG,CAAC,CAAD,CAAX,CACA,IAAI0zB,CAAC,CAAG1zB,GAAG,CAAC,CAAD,CAAX,CAEA,IAAI6C,CAAJ,CACA,IAAIC,CAAJ,CACA,IAAIC,CAAJ,CAEA,GAAIJ,CAAC,GAAK,CAAV,CAAa,CACZE,CAAC,CAAG6wB,CAAJ,CAAO;CACP3wB,CAAC,CAAG2wB,CAAJ,CAAO;CACP5wB,CAAC,CAAG4wB,CAAJ,CAAO;CACP,CAJD,IAIO,CACN,IAAIxwB,CAAC,CAAGwwB,CAAC,CAAG,GAAJ,CAAUA,CAAC,EAAI,EAAI/wB,CAAR,CAAX,CAAwB+wB,CAAC,CAAG/wB,CAAJ,CAAQ+wB,CAAC,CAAG/wB,CAA5C,CACA,IAAIM,CAAC,CAAG,EAAIywB,CAAJ,CAAQxwB,CAAhB,CACAL,CAAC,CAAGyjE,OAAO,CAACrjE,CAAD,CAAIC,CAAJ,CAAOR,CAAC,CAAG,EAAI,CAAf,CAAX,CACAI,CAAC,CAAGwjE,OAAO,CAACrjE,CAAD,CAAIC,CAAJ,CAAOR,CAAP,CAAX,CACAK,CAAC,CAAGujE,OAAO,CAACrjE,CAAD,CAAIC,CAAJ,CAAOR,CAAC,CAAG,EAAI,CAAf,CAAX,CACA,CAED,OAAO,CAACG,CAAD,CAAIC,CAAJ,CAAOC,CAAP,CAAU/C,GAAG,CAAC,CAAD,CAAb,CAAP,CACA,CAED,SAASwmE,MAAT,CAAgBrjE,CAAhB,CAAmBsjE,IAAnB,CAAyBC,IAAzB,CAA+BC,MAA/B,CAAuCC,MAAvC,CAA+C,CAC9C,GAAID,MAAM,GAAK7xD,SAAX,EAAwB8xD,MAAM,GAAK9xD,SAAvC,CAAkD,CACjD6xD,MAAM,CAAGF,IAAT,CACAG,MAAM,CAAGF,IAAT,CACAD,IAAI,CAAG,CAAP,CACAC,IAAI,CAAG,CAAP,CACA,CACD,GAAIA,IAAI,CAAGD,IAAX,CAAiB,CAChB,IAAII,KAAK,CAAGH,IAAZ,CACAA,IAAI,CAAGD,IAAP,CACAA,IAAI,CAAGI,KAAP,CACA,CACD,GAAI1jE,CAAC,EAAIsjE,IAAT,CAAe,CACd,OAAOE,MAAP,CACA,CAAC,GAAIxjE,CAAC,EAAIujE,IAAT,CAAe,CAChB,OAAOE,MAAP,CACA,CACD,IAAI1kD,IAAI,CAAGwkD,IAAI,GAAKD,IAAT,CAAgB,CAAhB,CAAoB,CAACtjE,CAAC,CAAGsjE,IAAL,GAAcC,IAAI,CAAGD,IAArB,CAA/B,CACA,GAAI,CAACE,MAAM,CAACtrE,MAAZ,CAAoB,CACnB,OAAOsrE,MAAM,CAAG,CAACC,MAAM,CAAGD,MAAV,EAAoBzkD,IAApC,CACA,CACD,IAAI/mB,CAAJ,CACA,IAAIC,GAAG,CAAGurE,MAAM,CAACtrE,MAAjB,CACA,IAAI6C,GAAG,CAAGF,gBAAgB,CAAC,SAAD,CAAY5C,GAAZ,CAA1B,CACA,IAAKD,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B+C,GAAG,CAAC/C,CAAD,CAAH,CAASwrE,MAAM,CAACxrE,CAAD,CAAN,CAAY,CAACyrE,MAAM,CAACzrE,CAAD,CAAN,CAAYwrE,MAAM,CAACxrE,CAAD,CAAnB,EAA0B+mB,IAA/C,CACA,CACD,OAAOhkB,GAAP,CACA,CACD,SAAS4B,MAAT,CAAgBH,GAAhB,CAAqBF,GAArB,CAA0B,CACzB,GAAIA,GAAG,GAAKqV,SAAZ,CAAuB,CACtB,GAAInV,GAAG,GAAKmV,SAAZ,CAAuB,CACtBnV,GAAG,CAAG,CAAN,CACAF,GAAG,CAAG,CAAN,CACA,CAHD,IAGO,CACNA,GAAG,CAAGE,GAAN,CACAA,GAAG,CAAGmV,SAAN,CACA,CACD,CACD,GAAIrV,GAAG,CAACpE,MAAR,CAAgB,CACf,IAAIF,CAAJ,CACA,IAAIC,GAAG,CAAGqE,GAAG,CAACpE,MAAd,CACA,GAAI,CAACsE,GAAL,CAAU,CACTA,GAAG,CAAG3B,gBAAgB,CAAC,SAAD,CAAY5C,GAAZ,CAAtB,CACA,CACD,IAAI8C,GAAG,CAAGF,gBAAgB,CAAC,SAAD,CAAY5C,GAAZ,CAA1B,CACA,IAAI0rE,GAAG,CAAGlnE,MAAM,CAACE,MAAP,EAAV,CACA,IAAK3E,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B+C,GAAG,CAAC/C,CAAD,CAAH,CAASwE,GAAG,CAACxE,CAAD,CAAH,CAAS2rE,GAAG,EAAIrnE,GAAG,CAACtE,CAAD,CAAH,CAASwE,GAAG,CAACxE,CAAD,CAAhB,CAArB,CACA,CACD,OAAO+C,GAAP,CACA,CACD,GAAIyB,GAAG,GAAKmV,SAAZ,CAAuB,CACtBnV,GAAG,CAAG,CAAN,CACA,CACD,IAAIonE,IAAI,CAAGnnE,MAAM,CAACE,MAAP,EAAX,CACA,OAAOH,GAAG,CAAGonE,IAAI,EAAItnE,GAAG,CAAGE,GAAV,CAAjB,CACA,CAED,SAASqnE,UAAT,CAAoB3oD,MAApB,CAA4B4oD,UAA5B,CAAwCC,WAAxC,CAAqDn9D,MAArD,CAA6D,CAC5D,IAAI5O,CAAJ,CACA,IAAIC,GAAG,CAAGijB,MAAM,CAAChjB,MAAjB,CACA,IAAI4J,IAAI,CAAG4oB,SAAS,CAAC7N,UAAV,EAAX,CACA/a,IAAI,CAAC0nB,WAAL,CAAiB,CAAC,CAAC5iB,MAAnB,CAA2B3O,GAA3B,EACA,IAAI+rE,cAAc,CAAG,CAAC,CAAD,CAAI,CAAJ,CAArB,CACA,IAAIC,aAAJ,CACA,IAAIC,cAAJ,CACA,IAAKlsE,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5BisE,aAAa,CAAIH,UAAU,EAAIA,UAAU,CAAC9rE,CAAD,CAAzB,CAAgC8rE,UAAU,CAAC9rE,CAAD,CAA1C,CAAgDgsE,cAAhE,CACAE,cAAc,CAAIH,WAAW,EAAIA,WAAW,CAAC/rE,CAAD,CAA3B,CAAkC+rE,WAAW,CAAC/rE,CAAD,CAA7C,CAAmDgsE,cAApE,CACAliE,IAAI,CAAC+nB,WAAL,CAAiB3O,MAAM,CAACljB,CAAD,CAAN,CAAU,CAAV,CAAjB,CAA+BkjB,MAAM,CAACljB,CAAD,CAAN,CAAU,CAAV,CAA/B,CAA6CksE,cAAc,CAAC,CAAD,CAAd,CAAoBhpD,MAAM,CAACljB,CAAD,CAAN,CAAU,CAAV,CAAjE,CAA+EksE,cAAc,CAAC,CAAD,CAAd,CAAoBhpD,MAAM,CAACljB,CAAD,CAAN,CAAU,CAAV,CAAnG,CAAiHisE,aAAa,CAAC,CAAD,CAAb,CAAmB/oD,MAAM,CAACljB,CAAD,CAAN,CAAU,CAAV,CAApI,CAAkJisE,aAAa,CAAC,CAAD,CAAb,CAAmB/oD,MAAM,CAACljB,CAAD,CAAN,CAAU,CAAV,CAArK,CAAmLA,CAAnL,CAAsL,IAAtL,EACA,CACD,OAAO8J,IAAP,CACA,CAED,SAASqiE,kBAAT,CAA4BzsD,IAA5B,CAAkC3V,IAAlC,CAAwCmkC,QAAxC,CAAkD,CACjD,IAAIrpC,GAAG,CAAGkF,IAAI,CAACwZ,CAAf,CACA,IAAI6oD,aAAa,CAAG,qBAAqBzoE,IAArB,CAA0BkB,GAA1B,CAApB,CACA,IAAIwnE,YAAY,CAAGxnE,GAAG,CAAC0K,OAAJ,CAAY,QAAZ,IAA0B,CAAC,CAA9C,CACA,IAAI+8D,QAAQ,CAAG5sD,IAAI,CAAC3V,IAAL,CAAU8B,EAAzB,CACA,IAAI+sB,SAAJ,CACA,IAAI2zC,aAAJ,CACA,IAAIj3B,OAAJ,CACA,IAAIpE,MAAJ,CACA,IAAIs7B,YAAY,CAAGt+B,QAAnB,CACAs+B,YAAY,CAACj+B,WAAb,CAA2Bi+B,YAAY,CAAChqC,cAAxC,CACAliC,MAAM,CAACitC,cAAP,CAAsBi/B,YAAtB,CAAoC,OAApC,CAA6C,CAC5ClpD,GAAG,CAAE,UAAY,CAChB,OAAOkpD,YAAY,CAAC/kE,CAApB,CACA,CAH2C,CAA7C,EAKAiY,IAAI,CAAClT,IAAL,CAAUqnC,aAAV,CAA0B,EAAIn0B,IAAI,CAAClT,IAAL,CAAUgN,UAAV,CAAqB9B,SAAnD,CACAgI,IAAI,CAAClT,IAAL,CAAUsnC,gBAAV,CAA6B,CAA7B,CACA,IAAIhC,OAAO,CAAGpyB,IAAI,CAAC3V,IAAL,CAAU+D,EAAV,CAAe4R,IAAI,CAAClT,IAAL,CAAUgN,UAAV,CAAqB9B,SAAlD,CACA,IAAIq6B,QAAQ,CAAGryB,IAAI,CAAC3V,IAAL,CAAUgE,EAAV,CAAe2R,IAAI,CAAClT,IAAL,CAAUgN,UAAV,CAAqB9B,SAAnD,CACA,IAAIjG,KAAK,CAAGiO,IAAI,CAAC3V,IAAL,CAAUw/C,EAAV,CAAe7pC,IAAI,CAAC3V,IAAL,CAAUw/C,EAAzB,CAA8B,CAA1C,CACA,IAAI73C,MAAM,CAAGgO,IAAI,CAAC3V,IAAL,CAAU4iB,EAAV,CAAejN,IAAI,CAAC3V,IAAL,CAAU4iB,EAAzB,CAA8B,CAA3C,CACA,IAAIlW,IAAI,CAAGiJ,IAAI,CAAC3V,IAAL,CAAU+M,EAArB,CACA,IAAI21D,MAAJ,CACA,IAAIC,OAAJ,CACA,IAAIC,OAAJ,CACA,IAAIC,QAAJ,CACA,IAAIC,MAAJ,CACA,IAAIv8B,OAAJ,CACA,IAAIG,SAAJ,CACA,IAAIE,QAAJ,CACA,IAAIU,MAAJ,CACA,IAAIy7B,iBAAJ,CACA,IAAIvnE,QAAJ,CACA,IAAI2pC,QAAJ,CACA,IAAIM,WAAJ,CACA,IAAIpX,KAAJ,CACA,IAAI20C,SAAJ,CACA,IAAIC,QAAJ,CACA,IAAI5/B,IAAJ,CACA,IAAImB,WAAJ,CACA,IAAIG,cAAJ,CAEA,IAAIu+B,YAAJ,CACA;CACA,IAAIC,mBAAmB,CAAGC,IAAI,CAAC,oCAAsCtoE,GAAtC,CAA4C,wBAA7C,CAAJ,CAA2E,CAA3E,CAA1B,CAAyG;CACzG,IAAIupC,OAAO,CAAGF,QAAQ,CAAC7d,EAAT,CAActmB,IAAI,CAACoB,CAAL,CAAOjL,MAArB,CAA8B,CAA5C,CAEA,IAAIyxC,MAAM,CAAG,CAAC,KAAK5nC,IAAN,EAAc,KAAKA,IAAL,CAAUw2C,EAAV,GAAiB,IAA5C,CAEA,IAAI6sB,MAAM,CAAG,SAASA,MAAT,CAAgBC,IAAhB,CAAsBC,GAAtB,CAA2B,CACvC,IAAIC,OAAJ,CACA,IAAItiE,CAAJ,CACA,IAAIuiE,SAAS,CAAG,KAAK1iD,EAAL,CAAQ5qB,MAAR,CAAiB,KAAK4qB,EAAL,CAAQ5qB,MAAzB,CAAkC,CAAlD,CACA,IAAIutE,SAAS,CAAG5qE,gBAAgB,CAAC,SAAD,CAAY2qE,SAAZ,CAAhC,CACAH,IAAI,CAAG,CAAP,CACA,IAAIrmB,UAAU,CAAGjjD,IAAI,CAACK,KAAL,CAAW8R,IAAI,CAAGm3D,IAAlB,CAAjB,CACAE,OAAO,CAAG,CAAV,CACAtiE,CAAC,CAAG,CAAJ,CACA,MAAOsiE,OAAO,CAAGvmB,UAAjB,CAA6B;CAE5B,IAAK/7C,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGuiE,SAAhB,CAA2BviE,CAAC,EAAI,CAAhC,CAAmC,CAClCwiE,SAAS,CAACxiE,CAAD,CAAT,EAAgB,CAACqiE,GAAD,CAAOA,GAAG,CAAG,CAAN,CAAU7oE,MAAM,CAACE,MAAP,EAAjC,CACA;CACA,CACD4oE,OAAO,EAAI,CAAX,CACA,CACD;CACA,IAAIG,OAAO,CAAGx3D,IAAI,CAAGm3D,IAArB,CACA,IAAItmD,IAAI,CAAG2mD,OAAO,CAAG3pE,IAAI,CAACK,KAAL,CAAWspE,OAAX,CAArB,CACA,IAAI3qE,GAAG,CAAGF,gBAAgB,CAAC,SAAD,CAAY2qE,SAAZ,CAA1B,CACA,GAAIA,SAAS,CAAG,CAAhB,CAAmB,CAClB,IAAKviE,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGuiE,SAAhB,CAA2BviE,CAAC,EAAI,CAAhC,CAAmC,CAClClI,GAAG,CAACkI,CAAD,CAAH,CAAS,KAAK6f,EAAL,CAAQ7f,CAAR,EAAawiE,SAAS,CAACxiE,CAAD,CAAtB,CAA4B,CAAC,CAACqiE,GAAD,CAAOA,GAAG,CAAG,CAAN,CAAU7oE,MAAM,CAACE,MAAP,EAAlB,EAAqCoiB,IAA1E,CACA;CACA;CACA,CACD,OAAOhkB,GAAP,CACA,CACD,YAAY+nB,EAAL,CAAU2iD,SAAS,CAAC,CAAD,CAAnB,CAAyB,CAAC,CAACH,GAAD,CAAOA,GAAG,CAAG,CAAN,CAAU7oE,MAAM,CAACE,MAAP,EAAlB,EAAqCoiB,IAArE,CACA,CA9BY,CA8BX3T,IA9BW,CA8BN,IA9BM,CAAb,CAgCA,GAAIo5D,YAAY,CAACC,MAAjB,CAAyB,CACxBA,MAAM,CAAGD,YAAY,CAACC,MAAb,CAAoBr5D,IAApB,CAAyBo5D,YAAzB,CAAT,CACAE,OAAO,CAAGD,MAAV,CACA,CAED,GAAID,YAAY,CAACG,OAAjB,CAA0B,CACzBA,OAAO,CAAGH,YAAY,CAACG,OAAb,CAAqBv5D,IAArB,CAA0Bo5D,YAA1B,CAAV,CACAI,QAAQ,CAAGD,OAAX,CACA,CAED,GAAIH,YAAY,CAACK,MAAjB,CAAyB,CACxBA,MAAM,CAAGL,YAAY,CAACK,MAAb,CAAoBz5D,IAApB,CAAyBo5D,YAAzB,CAAT,CACA,CAED,SAASmB,cAAT,CAAwBjuE,IAAxB,CAA8B0W,QAA9B,CAAwC,CACvC,OAAOq2D,MAAM,CAAC/sE,IAAD,CAAO0W,QAAP,CAAiB,IAAjB,CAAb,CACA,CAED,SAASw3D,eAAT,CAAyBluE,IAAzB,CAA+B0W,QAA/B,CAAyC,CACxC,OAAOu2D,OAAO,CAACjtE,IAAD,CAAO0W,QAAP,CAAiB,IAAjB,CAAd,CACA,CAED,GAAI,KAAKosB,cAAT,CAAyB,CACxB+L,WAAW,CAAG,KAAK/L,cAAL,CAAoBpvB,IAApB,CAAyB,IAAzB,CAAd,CACA,CAED,GAAI,KAAK+6B,iBAAT,CAA4B,CAC3BO,cAAc,CAAG,KAAKP,iBAAL,CAAuB/6B,IAAvB,CAA4B,IAA5B,CAAjB,CACA,CAED,IAAI5G,IAAI,CAAGkT,IAAI,CAAClT,IAAL,CAAUgN,UAAV,CAAqBd,gBAArB,CAAsCtF,IAAtC,CAA2CsM,IAAI,CAAClT,IAAL,CAAUgN,UAAV,CAAqBd,gBAAhE,CAAX,CAEA,SAASm1D,MAAT,CAAgBC,KAAhB,CAAuBC,KAAvB,CAA8B,CAC7B,IAAIC,IAAI,CAAG,CAACD,KAAK,CAAC,CAAD,CAAL,CAAWD,KAAK,CAAC,CAAD,CAAjB,CAAsBC,KAAK,CAAC,CAAD,CAAL,CAAWD,KAAK,CAAC,CAAD,CAAtC,CAA2CC,KAAK,CAAC,CAAD,CAAL,CAAWD,KAAK,CAAC,CAAD,CAA3D,CAAX,CACA,IAAIG,KAAK,CAAGlqE,IAAI,CAACyqB,KAAL,CAAWw/C,IAAI,CAAC,CAAD,CAAf,CAAoBjqE,IAAI,CAACG,IAAL,CAAU8pE,IAAI,CAAC,CAAD,CAAJ,CAAUA,IAAI,CAAC,CAAD,CAAd,CAAoBA,IAAI,CAAC,CAAD,CAAJ,CAAUA,IAAI,CAAC,CAAD,CAA5C,CAApB,EAAwE/oE,SAApF,CACA,IAAIipE,GAAG,CAAG,CAACnqE,IAAI,CAACyqB,KAAL,CAAWw/C,IAAI,CAAC,CAAD,CAAf,CAAoBA,IAAI,CAAC,CAAD,CAAxB,CAAD,CAAgC/oE,SAA1C,CACA,OAAO,CAACipE,GAAD,CAAMD,KAAN,CAAa,CAAb,CAAP,CACA,CAED,SAASE,OAAT,CAAiBnmE,CAAjB,CAAoBsjE,IAApB,CAA0BC,IAA1B,CAAgC6C,IAAhC,CAAsCC,IAAtC,CAA4C,CAC3C,OAAOC,SAAS,CAAC3E,UAAD,CAAa3hE,CAAb,CAAgBsjE,IAAhB,CAAsBC,IAAtB,CAA4B6C,IAA5B,CAAkCC,IAAlC,CAAhB,CACA,CAED,SAASE,MAAT,CAAgBvmE,CAAhB,CAAmBsjE,IAAnB,CAAyBC,IAAzB,CAA+B6C,IAA/B,CAAqCC,IAArC,CAA2C,CAC1C,OAAOC,SAAS,CAAC5E,SAAD,CAAY1hE,CAAZ,CAAesjE,IAAf,CAAqBC,IAArB,CAA2B6C,IAA3B,CAAiCC,IAAjC,CAAhB,CACA,CAED,SAASG,IAAT,CAAcxmE,CAAd,CAAiBsjE,IAAjB,CAAuBC,IAAvB,CAA6B6C,IAA7B,CAAmCC,IAAnC,CAAyC,CACxC,OAAOC,SAAS,CAAC1E,YAAD,CAAe5hE,CAAf,CAAkBsjE,IAAlB,CAAwBC,IAAxB,CAA8B6C,IAA9B,CAAoCC,IAApC,CAAhB,CACA,CAED,SAASC,SAAT,CAAmBpkE,EAAnB,CAAuBlC,CAAvB,CAA0BsjE,IAA1B,CAAgCC,IAAhC,CAAsC6C,IAAtC,CAA4CC,IAA5C,CAAkD,CACjD,GAAID,IAAI,GAAKz0D,SAAb,CAAwB,CACvBy0D,IAAI,CAAG9C,IAAP,CACA+C,IAAI,CAAG9C,IAAP,CACA,CAHD,IAGO,CACNvjE,CAAC,CAAG,CAACA,CAAC,CAAGsjE,IAAL,GAAcC,IAAI,CAAGD,IAArB,CAAJ,CACA,CACD,GAAItjE,CAAC,CAAG,CAAR,CAAW,CACVA,CAAC,CAAG,CAAJ,CACA,CAFD,QAEWA,CAAC,CAAG,CAAR,CAAW,CACjBA,CAAC,CAAG,CAAJ,CACA,CACD,IAAI6nB,IAAI,CAAG3lB,EAAE,CAAClC,CAAD,CAAb,CACA,GAAImhE,qBAAqB,CAACiF,IAAD,CAAzB,CAAiC,CAChC,IAAIK,IAAJ,CACA,IAAIC,MAAM,CAAGN,IAAI,CAACluE,MAAlB,CACA,IAAI6C,GAAG,CAAGF,gBAAgB,CAAC,SAAD,CAAY6rE,MAAZ,CAA1B,CACA,IAAKD,IAAI,CAAG,CAAZ,CAAeA,IAAI,CAAGC,MAAtB,CAA8BD,IAAI,EAAI,CAAtC,CAAyC,CACxC1rE,GAAG,CAAC0rE,IAAD,CAAH,CAAY,CAACJ,IAAI,CAACI,IAAD,CAAJ,CAAaL,IAAI,CAACK,IAAD,CAAlB,EAA4B5+C,IAA5B,CAAmCu+C,IAAI,CAACK,IAAD,CAAnD,CACA,CACD,OAAO1rE,GAAP,CACA,CACD,OAAO,CAACsrE,IAAI,CAAGD,IAAR,EAAgBv+C,IAAhB,CAAuBu+C,IAA9B,CACA,CAED,SAASO,UAAT,CAAoBz4D,IAApB,CAA0B,CACzB,IAAIu4D,IAAJ,CACA,IAAIC,MAAM,CAAG3kE,IAAI,CAACoB,CAAL,CAAOjL,MAApB,CACA,IAAI2e,KAAJ,CACA,IAAI2M,OAAJ,CACA,GAAI,CAACzhB,IAAI,CAACoB,CAAL,CAAOjL,MAAR,EAAkB,OAAQ6J,IAAI,CAACoB,CAAL,CAAO,CAAP,CAAR,GAAuB,QAA7C,CAAuD,CACtD0T,KAAK,CAAG,CAAR,CACA2M,OAAO,CAAG,CAAV,CACA,CAHD,IAGO,CACN3M,KAAK,CAAG,CAAC,CAAT,CACA3I,IAAI,EAAIwJ,IAAI,CAAClT,IAAL,CAAUgN,UAAV,CAAqB9B,SAA7B,CACA,GAAIxB,IAAI,CAAGnM,IAAI,CAACoB,CAAL,CAAO,CAAP,EAAUnD,CAArB,CAAwB,CACvB6W,KAAK,CAAG,CAAR,CACA2M,OAAO,CAAGzhB,IAAI,CAACoB,CAAL,CAAO,CAAP,EAAUnD,CAApB,CACA,CAHD,IAGO,CACN,IAAKymE,IAAI,CAAG,CAAZ,CAAeA,IAAI,CAAGC,MAAM,CAAG,CAA/B,CAAkCD,IAAI,EAAI,CAA1C,CAA6C,CAC5C,GAAIv4D,IAAI,GAAKnM,IAAI,CAACoB,CAAL,CAAOsjE,IAAP,EAAazmE,CAA1B,CAA6B,CAC5B6W,KAAK,CAAG4vD,IAAI,CAAG,CAAf,CACAjjD,OAAO,CAAGzhB,IAAI,CAACoB,CAAL,CAAOsjE,IAAP,EAAazmE,CAAvB,CACA,MACA,CAJD,QAIWkO,IAAI,CAAGnM,IAAI,CAACoB,CAAL,CAAOsjE,IAAP,EAAazmE,CAApB,EAAyBkO,IAAI,CAAGnM,IAAI,CAACoB,CAAL,CAAOsjE,IAAI,CAAG,CAAd,EAAiBzmE,CAArD,CAAwD,CAC9D,GAAIkO,IAAI,CAAGnM,IAAI,CAACoB,CAAL,CAAOsjE,IAAP,EAAazmE,CAApB,CAAwB+B,IAAI,CAACoB,CAAL,CAAOsjE,IAAI,CAAG,CAAd,EAAiBzmE,CAAjB,CAAqBkO,IAAjD,CAAuD,CACtD2I,KAAK,CAAG4vD,IAAI,CAAG,CAAf,CACAjjD,OAAO,CAAGzhB,IAAI,CAACoB,CAAL,CAAOsjE,IAAI,CAAG,CAAd,EAAiBzmE,CAA3B,CACA,CAHD,IAGO,CACN6W,KAAK,CAAG4vD,IAAI,CAAG,CAAf,CACAjjD,OAAO,CAAGzhB,IAAI,CAACoB,CAAL,CAAOsjE,IAAP,EAAazmE,CAAvB,CACA,CACD,MACA,CACD,CACD,GAAI6W,KAAK,GAAK,CAAC,CAAf,CAAkB,CACjBA,KAAK,CAAG4vD,IAAI,CAAG,CAAf,CACAjjD,OAAO,CAAGzhB,IAAI,CAACoB,CAAL,CAAOsjE,IAAP,EAAazmE,CAAvB,CACA,CACD,CACD,CACD,IAAI4mE,KAAK,CAAG,EAAZ,CACAA,KAAK,CAAC/vD,KAAN,CAAcA,KAAd,CACA+vD,KAAK,CAAC14D,IAAN,CAAasV,OAAO,CAAG9L,IAAI,CAAClT,IAAL,CAAUgN,UAAV,CAAqB9B,SAA5C,CACA,OAAOk3D,KAAP,CACA,CAED,SAASv3D,GAAT,CAAauU,GAAb,CAAkB,CACjB,IAAIgjD,KAAJ,CACA,IAAIH,IAAJ,CACA,IAAIC,MAAJ,CACA,GAAI,CAAC3kE,IAAI,CAACoB,CAAL,CAAOjL,MAAR,EAAkB,OAAQ6J,IAAI,CAACoB,CAAL,CAAO,CAAP,CAAR,GAAuB,QAA7C,CAAuD,CACtD,UAAU0K,KAAJ,CAAU,yCAA2C+V,GAArD,CAAN,CACA,CACDA,GAAG,EAAI,CAAP,CACAgjD,KAAK,CAAG,CACP14D,IAAI,CAAEnM,IAAI,CAACoB,CAAL,CAAOygB,GAAP,EAAY5jB,CAAZ,CAAgB0X,IAAI,CAAClT,IAAL,CAAUgN,UAAV,CAAqB9B,SADpC,CAEPnY,KAAK,CAAE,EAFA,CAAR,CAIA,IAAIwD,GAAG,CAAGzC,MAAM,CAACF,SAAP,CAAiBG,cAAjB,CAAgCC,IAAhC,CAAqCuJ,IAAI,CAACoB,CAAL,CAAOygB,GAAP,CAArC,CAAkD,GAAlD,EAAyD7hB,IAAI,CAACoB,CAAL,CAAOygB,GAAP,EAAYpkB,CAArE,CAAyEuC,IAAI,CAACoB,CAAL,CAAOygB,GAAG,CAAG,CAAb,EAAgBjhB,CAAnG,CAEA+jE,MAAM,CAAG3rE,GAAG,CAAC7C,MAAb,CACA,IAAKuuE,IAAI,CAAG,CAAZ,CAAeA,IAAI,CAAGC,MAAtB,CAA8BD,IAAI,EAAI,CAAtC,CAAyC,CACxCG,KAAK,CAACH,IAAD,CAAL,CAAc1rE,GAAG,CAAC0rE,IAAD,CAAjB,CACAG,KAAK,CAACrvE,KAAN,CAAYkvE,IAAZ,EAAoB1rE,GAAG,CAAC0rE,IAAD,CAAvB,CACA,CACD,OAAOG,KAAP,CACA,CAED,SAASC,YAAT,CAAsBnzD,EAAtB,CAA0BozD,GAA1B,CAA+B,CAC9B,GAAI,CAACA,GAAL,CAAU,CACTA,GAAG,CAAGpvD,IAAI,CAAClT,IAAL,CAAUgN,UAAV,CAAqB9B,SAA3B,CACA,CACD,OAAOgE,EAAE,CAAGozD,GAAZ,CACA,CAED,SAASC,YAAT,CAAsB/mE,CAAtB,CAAyB8mE,GAAzB,CAA8B,CAC7B,GAAI,CAAC9mE,CAAD,EAAMA,CAAC,GAAK,CAAhB,CAAmB,CAClBA,CAAC,CAAGkO,IAAJ,CACA,CACD,GAAI,CAAC44D,GAAL,CAAU,CACTA,GAAG,CAAGpvD,IAAI,CAAClT,IAAL,CAAUgN,UAAV,CAAqB9B,SAA3B,CACA,CACD,OAAO1P,CAAC,CAAG8mE,GAAX,CACA,CAED,SAASzI,UAAT,CAAoBQ,IAApB,CAA0B,CACzBpiE,MAAM,CAACmiE,UAAP,CAAkBoI,QAAQ,CAAGnI,IAA7B,EACA,CAED,SAAS95B,gBAAT,EAA4B,CAC3B,OAAOrtB,IAAI,CAACqtB,gBAAL,EAAP,CACA,CAED,SAASkiC,SAAT,CAAmBnxD,IAAnB,CAAyBC,GAAzB,CAA8B,CAC7B,GAAI,OAAOxe,KAAP,GAAiB,QAArB,CAA+B,CAC9B,GAAIwe,GAAG,GAAKpE,SAAZ,CAAuB,CACtB,OAAOpa,KAAK,CAAC0vE,SAAN,CAAgBnxD,IAAhB,CAAP,CACA,CACD,OAAOve,KAAK,CAAC0vE,SAAN,CAAgBnxD,IAAhB,CAAsBC,GAAtB,CAAP,CACA,CACD,OAAO,EAAP,CACA,CAED,SAAS9D,MAAT,CAAgB6D,IAAhB,CAAsBC,GAAtB,CAA2B,CAC1B,GAAI,OAAOxe,KAAP,GAAiB,QAArB,CAA+B,CAC9B,GAAIwe,GAAG,GAAKpE,SAAZ,CAAuB,CACtB,OAAOpa,KAAK,CAAC0a,MAAN,CAAa6D,IAAb,CAAP,CACA,CACD,OAAOve,KAAK,CAAC0a,MAAN,CAAa6D,IAAb,CAAmBC,GAAnB,CAAP,CACA,CACD,OAAO,EAAP,CACA,CAED,SAASmxD,aAAT,CAAuBC,eAAvB,CAAwC,CACvCj5D,IAAI,CAAGi5D,eAAe,GAAK,CAApB,CAAwB,CAAxB,CAA4BprE,IAAI,CAACK,KAAL,CAAW8R,IAAI,CAAGi5D,eAAlB,EAAqCA,eAAxE,CACA5vE,KAAK,CAAGgvC,WAAW,CAACr4B,IAAD,CAAnB,CACA,CAED,IAAIA,IAAJ,CACA,IAAIk5D,QAAJ,CACA,IAAI7vE,KAAJ,CACA,IAAIiqC,IAAJ,CACA,IAAI6lC,SAAJ,CACA,IAAIC,SAAJ,CACA,IAAIC,aAAJ,CACA,IAAI1wD,KAAK,CAAGa,IAAI,CAAC3V,IAAL,CAAU6hB,GAAtB,CACA,IAAI4lB,SAAS,CAAG,CAAC,EAAE9xB,IAAI,CAACgxB,SAAL,EAAkBhxB,IAAI,CAACgxB,SAAL,CAAexwC,MAAnC,CAAjB,CACA,IAAI8nC,MAAJ,CACA,IAAIgnC,QAAQ,CAAGjrE,IAAI,CAACK,KAAL,CAAWL,IAAI,CAACY,MAAL,GAAgB,OAA3B,CAAf,CACA,IAAI6U,UAAU,CAAGkG,IAAI,CAAClG,UAAtB,CACA,SAASg2D,iBAAT,CAA2BC,MAA3B,CAAmC;CAElClwE,KAAK,CAAGkwE,MAAR,CACA,GAAI,KAAKC,iBAAL,GAA2BhwD,IAAI,CAAClG,UAAL,CAAgBwW,OAA3C,EAAsD,KAAKnF,QAAL,GAAkB,cAA5E,CAA4F,CAC3F,OAAOtrB,KAAP,CACA,CACD,GAAI,KAAKsrB,QAAL,GAAkB,cAAtB,CAAsC,CACrCwkD,SAAS,CAAG,KAAKA,SAAjB,CACAC,SAAS,CAAG,KAAKA,SAAjB,CACAC,aAAa,CAAG,KAAKA,aAArB,CACA,CACD,GAAI,CAACxC,SAAL,CAAgB,CACfvjC,IAAI,CAAG9pB,IAAI,CAAC+xB,cAAL,CAAoBjI,IAA3B,CACAujC,SAAS,CAAGrtD,IAAI,CAAC+xB,cAAjB,CACAu7B,QAAQ,CAAGttD,IAAI,CAAClT,IAAL,CAAU0K,aAArB,CACAo5B,OAAO,CAAGy8B,SAAS,CAACz8B,OAAV,CAAkBl9B,IAAlB,CAAuB25D,SAAvB,CAAV,CACAt8B,SAAS,CAAGs8B,SAAS,CAACt8B,SAAV,CAAoBr9B,IAApB,CAAyB25D,SAAzB,CAAZ,CACAp8B,QAAQ,CAAGo8B,SAAS,CAACp8B,QAAV,CAAmBv9B,IAAnB,CAAwB25D,SAAxB,CAAX,CACA17B,MAAM,CAAG07B,SAAS,CAAC17B,MAAV,CAAiBj+B,IAAjB,CAAsB25D,SAAtB,CAAT,CACA3/B,IAAI,CAAG2/B,SAAS,CAAC3/B,IAAV,CAAiB2/B,SAAS,CAAC3/B,IAAV,CAAeh6B,IAAf,CAAoB25D,SAApB,CAAjB,CAAkD,IAAzD,CACAD,iBAAiB,CAAGn8B,QAApB,CACA,CACD,GAAI,CAAC/X,SAAL,CAAgB,CACfA,SAAS,CAAGlZ,IAAI,CAAC+xB,cAAL,CAAoB,sBAApB,CAAZ,CACA86B,aAAa,CAAG3zC,SAAhB,CACA,GAAIA,SAAJ,CAAe,CACd4W,WAAW,CAAG5W,SAAS,CAAC4W,WAAxB,CACA;CACL;CACA,gDAEI,CAED,GAAI88B,QAAQ,GAAK,CAAb,EAAkB,CAACh3B,OAAvB,CAAgC,CAC/BA,OAAO,CAAGy3B,SAAS,CAAC,yBAAD,CAAnB,CACA,CACD,GAAI,CAAC77B,MAAL,CAAa,CACZA,MAAM,CAAG67B,SAAS,CAAC,CAAD,CAAlB,CACA,CACDv7B,SAAS,CAAG,CAAC,EAAE9xB,IAAI,CAACgxB,SAAL,EAAkBhxB,IAAI,CAACgxB,SAAL,CAAexwC,MAAnC,CAAb,CACA,GAAIsxC,SAAS,EAAI,CAACxJ,MAAlB,CAA0B,CACzBA,MAAM,CAAGtoB,IAAI,CAACgxB,SAAL,CAAe,CAAf,EAAkBe,cAA3B,CACA,CACDv7B,IAAI,CAAG,KAAK1J,IAAL,CAAU+iB,aAAV,CAA0B,KAAK/iB,IAAL,CAAUgN,UAAV,CAAqB9B,SAAtD,CACA,GAAI20D,YAAJ,CAAkB,CACjBhG,UAAU,CAAC2I,QAAQ,CAAG94D,IAAZ,CAAV,CACA,CACD,GAAIk2D,aAAJ,CAAmB,CAClBgD,QAAQ,CAAG1gC,cAAc,CAACx4B,IAAD,CAAzB,CACA,CACDg3D,mBAAmB,GACnB,KAAKwC,iBAAL,CAAyBhwD,IAAI,CAAClG,UAAL,CAAgBwW,OAAzC,CAEA;CACA;CACAi9C,YAAY,CAAGA,YAAY,CAACpiD,QAAb,GAA0Bi+C,SAAS,CAACC,KAApC,CACZkE,YAAY,CAACxlE,CADD,CAEZwlE,YAFH,CAGA,OAAOA,YAAP,CACA,CACD;CACAuC,iBAAiB,CAACG,wBAAlB,CAA6C,CAACpD,aAAD,CAAgB/8B,WAAhB,CAA6Bt5B,IAA7B,CAAmCk5D,QAAnC,CAA6Ct9B,OAA7C,CAAsDC,QAAtD,CAAgEtgC,KAAhE,CAAuEC,MAAvE,CAA+E+E,IAA/E,CAAqFi2D,OAArF,CAA8FE,QAA9F,CAAwGC,MAAxG,CAAgHx7B,MAAhH,CAAwHy7B,iBAAxH,CAA2Ix8B,OAA3I,CAAoJG,SAApJ,CAA+JrD,IAA/J,CAAqK7nC,QAArK,CAA+K2pC,QAA/K,CAAyL9W,KAAzL,CAAgM40C,QAAhM,CAA0M5+B,OAA1M,CAAmNuD,MAAnN,CAA2Ny7B,MAA3N,CAAmOO,cAAnO,CAAmPC,eAAnP,CAAoQphE,IAApQ,CAA0QqhE,MAA1Q,CAAkRM,OAAlR,CAA2RI,MAA3R,CAAmSC,IAAnS,CAAySG,UAAzS,CAAqTt3D,GAArT,CAA0TmyB,IAA1T,CAAgU6lC,SAAhU,CAA2UC,SAA3U,CAAsVC,aAAtV,CAAqWV,YAArW,CAAmXE,YAAnX,CAAiYhiC,gBAAjY,CAAmZkiC,SAAnZ,CAA8Zh1D,MAA9Z,CAAsai1D,aAAta,CAAqbrwD,KAArb,CAA4brF,UAA5b,CAA7C,CACA,OAAOg2D,iBAAP,CACA,CAEDj8D,EAAE,CAAC44D,kBAAH,CAAwBA,kBAAxB,CACA54D,EAAE,CAACo8D,wBAAH,CAA8B,CAAC7tE,MAAD,CAASnC,QAAT,CAAmBmQ,cAAnB,CAAmCm5D,KAAnC,CAA0CC,MAA1C,CAAkDI,OAAlD,CAA2Dzc,GAA3D,CAAgEqd,OAAhE,CAAyEC,OAAzE,CAAkFC,OAAlF,CAA2FC,OAA3F,CAAoGC,OAApG,CAA6GC,KAA7G,CAAoHG,kBAApH,CAAwIC,gBAAxI,CAA0JC,kBAA1J,CAA8KI,SAA9K,CAAyLE,QAAzL,CAAmME,QAAnM,CAA6MC,MAA7M,CAAqN1mE,MAArN,CAA6NknE,UAA7N,CAA9B,CACA,OAAOt4D,EAAP,CACA,CAltB0B,EAA3B,CAotBA,MAAMq8D,iBAAiB,CAAI,UAAY,CACtC,SAASC,iBAAT,CAA2BnwD,IAA3B,CAAiC3V,IAAjC,CAAuCpJ,IAAvC,CAA6C,CAC5C,GAAIoJ,IAAI,CAACwZ,CAAT,CAAY,CACX5iB,IAAI,CAACwK,CAAL,CAAS,IAAT,CACAxK,IAAI,CAAC4iB,CAAL,CAAS,IAAT,CACA5iB,IAAI,CAACwrE,kBAAL,CAA0BnD,iBAAiB,CAACmD,kBAA5C,CACAxrE,IAAI,CAACsvB,eAAL,CAAqB1uB,IAArB,CAA0BZ,IAAI,CAACwrE,kBAAL,CAAwBzsD,IAAxB,CAA8B3V,IAA9B,CAAoCpJ,IAApC,EAA0CyS,IAA1C,CAA+CzS,IAA/C,CAA1B,EACA,CACD,CAED,SAAS6hC,cAAT,CAAwB/X,QAAxB,CAAkC,CACjCA,QAAQ,EAAI,KAAK/K,IAAL,CAAUlG,UAAV,CAAqB9B,SAAjC,CACA+S,QAAQ,EAAI,KAAKE,UAAjB,CACA,GAAIF,QAAQ,GAAK,KAAKqlD,cAAL,CAAoB5jD,SAArC,CAAgD,CAC/C,KAAK4jD,cAAL,CAAoB9kD,SAApB,CAAgC,KAAK8kD,cAAL,CAAoB5jD,SAApB,CAAgCzB,QAAhC,CAA2C,KAAKqlD,cAAL,CAAoB9kD,SAA/D,CAA2E,CAA3G,CACA,KAAK8kD,cAAL,CAAoBvwE,KAApB,CAA4B,KAAKirB,gBAAL,CAAsBC,QAAtB,CAAgC,KAAKqlD,cAArC,CAA5B,CACA,KAAKA,cAAL,CAAoB5jD,SAApB,CAAgCzB,QAAhC,CACA,CACD,YAAYqlD,cAAL,CAAoBvwE,KAA3B,CACA,CAED,SAASkvC,cAAT,CAAwBhkB,QAAxB,CAAkC,CACjC,IAAIslD,KAAK,CAAG,CAAC,IAAb,CACA,IAAIl5C,EAAE,CAAG,KAAK2L,cAAL,CAAoB/X,QAApB,CAAT,CACA,IAAI8X,EAAE,CAAG,KAAKC,cAAL,CAAoB/X,QAAQ,CAAGslD,KAA/B,CAAT,CACA,IAAIC,KAAK,CAAG,CAAZ,CACA,GAAIn5C,EAAE,CAAC32B,MAAP,CAAe,CACd,IAAIF,CAAJ,CACA,IAAKA,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAG62B,EAAE,CAAC32B,MAAnB,CAA2BF,CAAC,EAAI,CAAhC,CAAmC,CAClCgwE,KAAK,EAAIjsE,IAAI,CAACC,GAAL,CAASu+B,EAAE,CAACviC,CAAD,CAAF,CAAQ62B,EAAE,CAAC72B,CAAD,CAAnB,CAAwB,CAAxB,CAAT,CACA,CACDgwE,KAAK,CAAGjsE,IAAI,CAACG,IAAL,CAAU8rE,KAAV,EAAmB,GAA3B,CACA,CAND,IAMO,CACNA,KAAK,CAAG,CAAR,CACA,CACD,OAAOA,KAAP,CACA,CAED,SAAS7hC,iBAAT,CAA2B1jB,QAA3B,CAAqC,CACpC,GAAI,KAAKiG,GAAL,GAAa/W,SAAjB,CAA4B,CAC3B,YAAY+W,GAAZ,CACA,CACD,IAAIq/C,KAAK,CAAG,CAAC,KAAb,CACA;CACA,IAAIl5C,EAAE,CAAG,KAAK2L,cAAL,CAAoB/X,QAApB,CAAT,CACA,IAAI8X,EAAE,CAAG,KAAKC,cAAL,CAAoB/X,QAAQ,CAAGslD,KAA/B,CAAT,CACA,IAAIX,QAAJ,CACA,GAAIv4C,EAAE,CAAC32B,MAAP,CAAe,CACdkvE,QAAQ,CAAGvsE,gBAAgB,CAAC,SAAD,CAAYg0B,EAAE,CAAC32B,MAAf,CAA3B,CACA,IAAIF,CAAJ,CACA,IAAKA,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAG62B,EAAE,CAAC32B,MAAnB,CAA2BF,CAAC,EAAI,CAAhC,CAAmC;CAElC;CACA;CACAovE,QAAQ,CAACpvE,CAAD,CAAR,CAAc,CAACuiC,EAAE,CAACviC,CAAD,CAAF,CAAQ62B,EAAE,CAAC72B,CAAD,CAAX,EAAkB+vE,KAAhC,CACA,CACD,CATD,IASO,CACNX,QAAQ,CAAG,CAAC7sC,EAAE,CAAG1L,EAAN,EAAYk5C,KAAvB,CACA,CACD,OAAOX,QAAP,CACA,CAED,SAASa,oBAAT,EAAgC,CAC/B,YAAYnlD,EAAZ,CACA,CAED,SAAS0oB,gBAAT,CAA0B7E,aAA1B,CAAyC,CACxC,KAAKA,aAAL,CAAqBA,aAArB,CACA,CAED,OAAO,CACNkhC,iBAAiB,CAAEA,iBADb,CAENphC,cAAc,CAAEA,cAFV,CAGNN,iBAAiB,CAAEA,iBAHb,CAIN3L,cAAc,CAAEA,cAJV,CAKNytC,oBAAoB,CAAEA,oBALhB,CAMNz8B,gBAAgB,CAAEA,gBANZ,CAAP,CAQA,CA9E0B,EAA3B,CAgFA,SAAS08B,oBAAT,EAAgC,CAC/B,SAASvD,OAAT,CAAiBjtE,IAAjB,CAAuB0W,QAAvB,CAAiC+5D,YAAjC,CAA+C,CAC9C,GAAI,CAAC,KAAKhlE,CAAN,EAAW,CAAC,KAAK8f,SAArB,CAAgC,CAC/B,YAAYH,EAAZ,CACA,CACDprB,IAAI,CAAGA,IAAI,CAAGA,IAAI,CAAC6mC,WAAL,EAAH,CAAwB,EAAnC,CACA,IAAItvB,YAAY,CAAG,KAAKzK,IAAL,CAAU+iB,aAA7B,CACA,IAAItE,SAAS,CAAG,KAAKA,SAArB,CACA,IAAImlD,YAAY,CAAGnlD,SAAS,CAACA,SAAS,CAAC/qB,MAAV,CAAmB,CAApB,CAAT,CAAgC8H,CAAnD,CACA,GAAIiP,YAAY,EAAIm5D,YAApB,CAAkC,CACjC,YAAYtlD,EAAZ,CACA,CACD,IAAIulD,aAAJ,CACA,IAAIC,aAAJ,CACA,GAAI,CAACH,YAAL,CAAmB,CAClB,GAAI,CAAC/5D,QAAD,EAAaA,QAAQ,CAAG6U,SAAS,CAAC/qB,MAAV,CAAmB,CAA/C,CAAkD,CACjDkW,QAAQ,CAAG6U,SAAS,CAAC/qB,MAAV,CAAmB,CAA9B,CACA,CACDowE,aAAa,CAAGrlD,SAAS,CAACA,SAAS,CAAC/qB,MAAV,CAAmB,CAAnB,CAAuBkW,QAAxB,CAAT,CAA2CpO,CAA3D,CACAqoE,aAAa,CAAGD,YAAY,CAAGE,aAA/B,CACA,CAND,IAMO,CACN,GAAI,CAACl6D,QAAL,CAAe,CACdi6D,aAAa,CAAGtsE,IAAI,CAACO,GAAL,CAAS,CAAT,CAAY8rE,YAAY,CAAG,KAAK1wD,IAAL,CAAU3V,IAAV,CAAe+D,EAA1C,CAAhB,CACA,CAFD,IAEO,CACNuiE,aAAa,CAAGtsE,IAAI,CAACa,GAAL,CAASwrE,YAAY,CAAG,KAAK1wD,IAAL,CAAUlT,IAAV,CAAegN,UAAf,CAA0B9B,SAA1B,CAAsCtB,QAA9D,CAAhB,CACA,CACDk6D,aAAa,CAAGF,YAAY,CAAGC,aAA/B,CACA,CACD,IAAIrwE,CAAJ,CACA,IAAIC,GAAJ,CACA,IAAIswE,GAAJ,CACA,GAAI7wE,IAAI,GAAK,UAAb,CAAyB,CACxB,IAAIsnD,UAAU,CAAGjjD,IAAI,CAACK,KAAL,CAAW,CAAC6S,YAAY,CAAGq5D,aAAhB,EAAiCD,aAA5C,CAAjB,CACA,GAAIrpB,UAAU,CAAG,CAAb,GAAmB,CAAvB,CAA0B,CACzB,YAAYxkB,cAAL,CAAoB,CAAE6tC,aAAa,CAAG,CAACp5D,YAAY,CAAGq5D,aAAhB,EAAiCD,aAAjD,CAAiEC,aAAnE,EAAqF,KAAK9jE,IAAL,CAAUgN,UAAV,CAAqB9B,SAA9H,CAAyI,CAAzI,CAAP,CAAoJ;CACpJ,CACD,CALD,QAKWhY,IAAI,GAAK,QAAb,CAAuB,CAC7B,IAAI8wE,KAAK,CAAG,KAAKhuC,cAAL,CAAoB8tC,aAAa,CAAG,KAAK9jE,IAAL,CAAUgN,UAAV,CAAqB9B,SAAzD,CAAoE,CAApE,CAAZ,CACA,IAAI+4D,IAAI,CAAG,KAAKjuC,cAAL,CAAoB4tC,YAAY,CAAG,KAAK5jE,IAAL,CAAUgN,UAAV,CAAqB9B,SAAxD,CAAmE,CAAnE,CAAX,CACA,IAAIg5D,OAAO,CAAG,KAAKluC,cAAL,CAAoB,CAAC,CAACvrB,YAAY,CAAGq5D,aAAhB,EAAiCD,aAAjC,CAAiDC,aAAlD,EAAmE,KAAK9jE,IAAL,CAAUgN,UAAV,CAAqB9B,SAA5G,CAAuH,CAAvH,CAAd,CAAyI;CACzI,IAAIi5D,OAAO,CAAG5sE,IAAI,CAACK,KAAL,CAAW,CAAC6S,YAAY,CAAGq5D,aAAhB,EAAiCD,aAA5C,CAAd,CACA,GAAI,KAAKvlD,EAAL,CAAQ5qB,MAAZ,CAAoB,CACnBqwE,GAAG,CAAG,IAAIltE,KAAJ,CAAUmtE,KAAK,CAACtwE,MAAhB,CAAN,CACAD,GAAG,CAAGswE,GAAG,CAACrwE,MAAV,CACA,IAAKF,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5BuwE,GAAG,CAACvwE,CAAD,CAAH,CAAS,CAACywE,IAAI,CAACzwE,CAAD,CAAJ,CAAUwwE,KAAK,CAACxwE,CAAD,CAAhB,EAAuB2wE,OAAvB,CAAiCD,OAAO,CAAC1wE,CAAD,CAAjD,CACA,CACD,OAAOuwE,GAAP,CACA,CACD,OAAO,CAACE,IAAI,CAAGD,KAAR,EAAiBG,OAAjB,CAA2BD,OAAlC,CACA,CAdM,QAcIhxE,IAAI,GAAK,UAAb,CAAyB,CAC/B,IAAIkxE,SAAS,CAAG,KAAKpuC,cAAL,CAAoB4tC,YAAY,CAAG,KAAK5jE,IAAL,CAAUgN,UAAV,CAAqB9B,SAAxD,CAAmE,CAAnE,CAAhB,CACA,IAAIm5D,aAAa,CAAG,KAAKruC,cAAL,CAAoB,CAAC4tC,YAAY,CAAG,KAAhB,EAAyB,KAAK5jE,IAAL,CAAUgN,UAAV,CAAqB9B,SAAlE,CAA6E,CAA7E,CAApB,CACA,GAAI,KAAKoT,EAAL,CAAQ5qB,MAAZ,CAAoB,CACnBqwE,GAAG,CAAG,IAAIltE,KAAJ,CAAUutE,SAAS,CAAC1wE,MAApB,CAAN,CACAD,GAAG,CAAGswE,GAAG,CAACrwE,MAAV,CACA,IAAKF,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5BuwE,GAAG,CAACvwE,CAAD,CAAH,CAAS4wE,SAAS,CAAC5wE,CAAD,CAAT,CAAe,CAAC4wE,SAAS,CAAC5wE,CAAD,CAAT,CAAe6wE,aAAa,CAAC7wE,CAAD,CAA7B,GAAqC,CAACiX,YAAY,CAAGm5D,YAAhB,EAAgC,KAAK5jE,IAAL,CAAUgN,UAAV,CAAqB9B,SAA1F,EAAuG,MAA/H,CAAuI;CACvI,CACD,OAAO64D,GAAP,CACA,CACD,OAAOK,SAAS,CAAG,CAACA,SAAS,CAAGC,aAAb,GAA+B,CAAE55D,YAAY,CAAGm5D,YAAjB,EAAkC,KAAjE,CAAnB,CACA,CACD,YAAY5tC,cAAL,CAAoB,CAAE,CAACvrB,YAAY,CAAGq5D,aAAhB,EAAiCD,aAAjC,CAAiDC,aAAnD,EAAqE,KAAK9jE,IAAL,CAAUgN,UAAV,CAAqB9B,SAA9G,CAAyH,CAAzH,CAAP,CAAoI;CAEpI,CAED,SAAS+0D,MAAT,CAAgB/sE,IAAhB,CAAsB0W,QAAtB,CAAgC+5D,YAAhC,CAA8C,CAC7C,GAAI,CAAC,KAAKhlE,CAAV,CAAa,CACZ,YAAY2f,EAAZ,CACA,CACDprB,IAAI,CAAGA,IAAI,CAAGA,IAAI,CAAC6mC,WAAL,EAAH,CAAwB,EAAnC,CACA,IAAItvB,YAAY,CAAG,KAAKzK,IAAL,CAAU+iB,aAA7B,CACA,IAAItE,SAAS,CAAG,KAAKA,SAArB,CACA,IAAIqlD,aAAa,CAAGrlD,SAAS,CAAC,CAAD,CAAT,CAAajjB,CAAjC,CACA,GAAIiP,YAAY,EAAIq5D,aAApB,CAAmC,CAClC,YAAYxlD,EAAZ,CACA,CACD,IAAIulD,aAAJ,CACA,IAAID,YAAJ,CACA,GAAI,CAACD,YAAL,CAAmB,CAClB,GAAI,CAAC/5D,QAAD,EAAaA,QAAQ,CAAG6U,SAAS,CAAC/qB,MAAV,CAAmB,CAA/C,CAAkD,CACjDkW,QAAQ,CAAG6U,SAAS,CAAC/qB,MAAV,CAAmB,CAA9B,CACA,CACDkwE,YAAY,CAAGnlD,SAAS,CAAC7U,QAAD,CAAT,CAAoBpO,CAAnC,CACAqoE,aAAa,CAAGD,YAAY,CAAGE,aAA/B,CACA,CAND,IAMO,CACN,GAAI,CAACl6D,QAAL,CAAe,CACdi6D,aAAa,CAAGtsE,IAAI,CAACO,GAAL,CAAS,CAAT,CAAY,KAAKob,IAAL,CAAU3V,IAAV,CAAegE,EAAf,CAAoBuiE,aAAhC,CAAhB,CACA,CAFD,IAEO,CACND,aAAa,CAAGtsE,IAAI,CAACa,GAAL,CAAS,KAAK8a,IAAL,CAAUlT,IAAV,CAAegN,UAAf,CAA0B9B,SAA1B,CAAsCtB,QAA/C,CAAhB,CACA,CACDg6D,YAAY,CAAGE,aAAa,CAAGD,aAA/B,CACA,CACD,IAAIrwE,CAAJ,CACA,IAAIC,GAAJ,CACA,IAAIswE,GAAJ,CACA,GAAI7wE,IAAI,GAAK,UAAb,CAAyB,CACxB,IAAIsnD,UAAU,CAAGjjD,IAAI,CAACK,KAAL,CAAW,CAACksE,aAAa,CAAGr5D,YAAjB,EAAiCo5D,aAA5C,CAAjB,CACA,GAAIrpB,UAAU,CAAG,CAAb,GAAmB,CAAvB,CAA0B,CACzB,YAAYxkB,cAAL,CAAoB,CAAE,CAAC8tC,aAAa,CAAGr5D,YAAjB,EAAiCo5D,aAAjC,CAAiDC,aAAnD,EAAqE,KAAK9jE,IAAL,CAAUgN,UAAV,CAAqB9B,SAA9G,CAAyH,CAAzH,CAAP,CAAoI;CACpI,CACD,CALD,QAKWhY,IAAI,GAAK,QAAb,CAAuB,CAC7B,IAAI8wE,KAAK,CAAG,KAAKhuC,cAAL,CAAoB8tC,aAAa,CAAG,KAAK9jE,IAAL,CAAUgN,UAAV,CAAqB9B,SAAzD,CAAoE,CAApE,CAAZ,CACA,IAAI+4D,IAAI,CAAG,KAAKjuC,cAAL,CAAoB4tC,YAAY,CAAG,KAAK5jE,IAAL,CAAUgN,UAAV,CAAqB9B,SAAxD,CAAmE,CAAnE,CAAX,CACA,IAAIg5D,OAAO,CAAG,KAAKluC,cAAL,CAAoB,CAAC6tC,aAAa,CAAI,CAACC,aAAa,CAAGr5D,YAAjB,EAAiCo5D,aAAlD,CAAmEC,aAApE,EAAqF,KAAK9jE,IAAL,CAAUgN,UAAV,CAAqB9B,SAA9H,CAAyI,CAAzI,CAAd,CACA,IAAIi5D,OAAO,CAAG5sE,IAAI,CAACK,KAAL,CAAW,CAACksE,aAAa,CAAGr5D,YAAjB,EAAiCo5D,aAA5C,EAA6D,CAA3E,CACA,GAAI,KAAKvlD,EAAL,CAAQ5qB,MAAZ,CAAoB,CACnBqwE,GAAG,CAAG,IAAIltE,KAAJ,CAAUmtE,KAAK,CAACtwE,MAAhB,CAAN,CACAD,GAAG,CAAGswE,GAAG,CAACrwE,MAAV,CACA,IAAKF,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5BuwE,GAAG,CAACvwE,CAAD,CAAH,CAAS0wE,OAAO,CAAC1wE,CAAD,CAAP,CAAa,CAACywE,IAAI,CAACzwE,CAAD,CAAJ,CAAUwwE,KAAK,CAACxwE,CAAD,CAAhB,EAAuB2wE,OAA7C,CACA,CACD,OAAOJ,GAAP,CACA,CACD,OAAOG,OAAO,CAAG,CAACD,IAAI,CAAGD,KAAR,EAAiBG,OAAlC,CACA,CAdM,QAcIjxE,IAAI,GAAK,UAAb,CAAyB,CAC/B,IAAIoxE,UAAU,CAAG,KAAKtuC,cAAL,CAAoB8tC,aAAa,CAAG,KAAK9jE,IAAL,CAAUgN,UAAV,CAAqB9B,SAAzD,CAAoE,CAApE,CAAjB,CACA,IAAIq5D,cAAc,CAAG,KAAKvuC,cAAL,CAAoB,CAAC8tC,aAAa,CAAG,KAAjB,EAA0B,KAAK9jE,IAAL,CAAUgN,UAAV,CAAqB9B,SAAnE,CAA8E,CAA9E,CAArB,CACA,GAAI,KAAKoT,EAAL,CAAQ5qB,MAAZ,CAAoB,CACnBqwE,GAAG,CAAG,IAAIltE,KAAJ,CAAUytE,UAAU,CAAC5wE,MAArB,CAAN,CACAD,GAAG,CAAGswE,GAAG,CAACrwE,MAAV,CACA,IAAKF,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5BuwE,GAAG,CAACvwE,CAAD,CAAH,CAAS8wE,UAAU,CAAC9wE,CAAD,CAAV,CAAiB,CAAC8wE,UAAU,CAAC9wE,CAAD,CAAV,CAAgB+wE,cAAc,CAAC/wE,CAAD,CAA/B,GAAuCswE,aAAa,CAAGr5D,YAAvD,CAAD,CAAyE,KAAlG,CACA,CACD,OAAOs5D,GAAP,CACA,CACD,OAAOO,UAAU,CAAI,CAACA,UAAU,CAAGC,cAAd,GAAiCT,aAAa,CAAGr5D,YAAjD,CAAD,CAAmE,KAAvF,CACA,CACD,YAAYurB,cAAL,CAAoB,CAAE6tC,aAAa,EAAI,CAACC,aAAa,CAAGr5D,YAAjB,EAAiCo5D,aAAjC,CAAiDC,aAArD,CAAf,EAAuF,KAAK9jE,IAAL,CAAUgN,UAAV,CAAqB9B,SAAhI,CAA2I,CAA3I,CAAP,CAAsJ;CAEtJ,CAED,SAASm1D,MAAT,CAAgBp7D,KAAhB,CAAuBu/D,OAAvB,CAAgC,CAC/B,GAAI,CAAC,KAAK7lE,CAAV,CAAa,CACZ,YAAY2f,EAAZ,CACA,CACDrZ,KAAK,CAAG,CAACA,KAAK,EAAI,GAAV,EAAiB,GAAzB,CACAu/D,OAAO,CAAGjtE,IAAI,CAACK,KAAL,CAAW4sE,OAAO,EAAI,CAAtB,CAAV,CACA,GAAIA,OAAO,EAAI,CAAf,CAAkB,CACjB,YAAYlmD,EAAZ,CACA,CACD,IAAI3kB,WAAW,CAAG,KAAKqG,IAAL,CAAU+iB,aAAV,CAA0B,KAAK/iB,IAAL,CAAUgN,UAAV,CAAqB9B,SAAjE,CACA,IAAI4S,SAAS,CAAGnkB,WAAW,CAAGsL,KAA9B,CACA,IAAIw/D,QAAQ,CAAG9qE,WAAW,CAAGsL,KAA7B,CACA,IAAIy/D,eAAe,CAAGF,OAAO,CAAG,CAAV,CAAc,CAACC,QAAQ,CAAG3mD,SAAZ,GAA0B0mD,OAAO,CAAG,CAApC,CAAd,CAAuD,CAA7E,CACA,IAAIhxE,CAAC,CAAG,CAAR,CACA,IAAIiL,CAAC,CAAG,CAAR,CACA,IAAI1L,KAAJ,CACA,GAAI,KAAKurB,EAAL,CAAQ5qB,MAAZ,CAAoB,CACnBX,KAAK,CAAGsD,gBAAgB,CAAC,SAAD,CAAY,KAAKioB,EAAL,CAAQ5qB,MAApB,CAAxB,CACA,CAFD,IAEO,CACNX,KAAK,CAAG,CAAR,CACA,CACD,IAAI4xE,WAAJ,CACA,MAAOnxE,CAAC,CAAGgxE,OAAX,CAAoB,CACnBG,WAAW,CAAG,KAAK3uC,cAAL,CAAoBlY,SAAS,CAAGtqB,CAAC,CAAGkxE,eAApC,CAAd,CACA,GAAI,KAAKpmD,EAAL,CAAQ5qB,MAAZ,CAAoB,CACnB,IAAK+K,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAG,KAAK6f,EAAL,CAAQ5qB,MAAxB,CAAgC+K,CAAC,EAAI,CAArC,CAAwC,CACvC1L,KAAK,CAAC0L,CAAD,CAAL,EAAYkmE,WAAW,CAAClmE,CAAD,CAAvB,CACA,CACD,CAJD,IAIO,CACN1L,KAAK,EAAI4xE,WAAT,CACA,CACDnxE,CAAC,EAAI,CAAL,CACA,CACD,GAAI,KAAK8qB,EAAL,CAAQ5qB,MAAZ,CAAoB,CACnB,IAAK+K,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAG,KAAK6f,EAAL,CAAQ5qB,MAAxB,CAAgC+K,CAAC,EAAI,CAArC,CAAwC,CACvC1L,KAAK,CAAC0L,CAAD,CAAL,EAAY+lE,OAAZ,CACA,CACD,CAJD,IAIO,CACNzxE,KAAK,EAAIyxE,OAAT,CACA,CACD,OAAOzxE,KAAP,CACA,CAED,SAAS6xE,uBAAT,CAAiCl7D,IAAjC,CAAuC,CACtC,GAAI,CAAC,KAAKm7D,uBAAV,CAAmC,CAClC,KAAKA,uBAAL,CAA+B,CAC9B5pE,CAAC,CAAE,IAAIyvB,MAAJ,EAD2B,CAA/B,CAGA,CACD;CACA,IAAImM,MAAM,CAAG,KAAKguC,uBAAL,CAA6B5pE,CAA1C,CACA47B,MAAM,CAACtI,cAAP,CAAsB,KAAKqH,GAAL,CAAS5K,KAA/B,EACA,GAAI,KAAK6K,sBAAL,CAA8B,CAAlC,CAAqC,CACpC,IAAIivC,MAAM,CAAG,KAAKpjE,CAAL,CAAOs0B,cAAP,CAAsBtsB,IAAtB,CAAb,CACAmtB,MAAM,CAAC5K,SAAP,CACC,CAAC64C,MAAM,CAAC,CAAD,CAAP,CAAa,KAAKpjE,CAAL,CAAO2hB,IADrB,CAEC,CAACyhD,MAAM,CAAC,CAAD,CAAP,CAAa,KAAKpjE,CAAL,CAAO2hB,IAFrB,CAGCyhD,MAAM,CAAC,CAAD,CAAN,CAAY,KAAKpjE,CAAL,CAAO2hB,IAHpB,EAKA,CACD,GAAI,KAAKwS,sBAAL,CAA8B,CAAlC,CAAqC,CACpC,IAAIjK,KAAK,CAAG,KAAK5wB,CAAL,CAAOg7B,cAAP,CAAsBtsB,IAAtB,CAAZ,CACAmtB,MAAM,CAACjL,KAAP,CACCA,KAAK,CAAC,CAAD,CAAL,CAAW,KAAK5wB,CAAL,CAAOqoB,IADnB,CAECuI,KAAK,CAAC,CAAD,CAAL,CAAW,KAAK5wB,CAAL,CAAOqoB,IAFnB,CAGCuI,KAAK,CAAC,CAAD,CAAL,CAAW,KAAK5wB,CAAL,CAAOqoB,IAHnB,EAKA,CACD,GAAI,KAAK1hB,EAAL,EAAW,KAAKk0B,sBAAL,CAA8B,CAA7C,CAAgD,CAC/C,IAAInK,IAAI,CAAG,KAAK/pB,EAAL,CAAQq0B,cAAR,CAAuBtsB,IAAvB,CAAX,CACA,IAAI8/B,QAAQ,CAAG,KAAK5nC,EAAL,CAAQo0B,cAAR,CAAuBtsB,IAAvB,CAAf,CACAmtB,MAAM,CAAClL,YAAP,CAAoB,CAACD,IAAD,CAAQ,KAAK/pB,EAAL,CAAQ0hB,IAApC,CAA0CmmB,QAAQ,CAAG,KAAK5nC,EAAL,CAAQyhB,IAA7D,EACA,CACD,GAAI,KAAKnoB,CAAL,EAAU,KAAK26B,sBAAL,CAA8B,CAA5C,CAA+C,CAC9C,IAAI6M,QAAQ,CAAG,KAAKxnC,CAAL,CAAO86B,cAAP,CAAsBtsB,IAAtB,CAAf,CACAmtB,MAAM,CAAC5L,MAAP,CAAc,CAACyX,QAAD,CAAY,KAAKxnC,CAAL,CAAOmoB,IAAjC,EACA,CAHD,QAGW,CAAC,KAAKnoB,CAAN,EAAW,KAAK26B,sBAAL,CAA8B,CAA7C,CAAgD,CACtD,IAAIkvC,SAAS,CAAG,KAAK5vC,EAAL,CAAQa,cAAR,CAAuBtsB,IAAvB,CAAhB,CACA,IAAIs7D,SAAS,CAAG,KAAK5vC,EAAL,CAAQY,cAAR,CAAuBtsB,IAAvB,CAAhB,CACA,IAAIu7D,SAAS,CAAG,KAAK5vC,EAAL,CAAQW,cAAR,CAAuBtsB,IAAvB,CAAhB,CACA,IAAIw7D,WAAW,CAAG,KAAKl8C,EAAL,CAAQgN,cAAR,CAAuBtsB,IAAvB,CAAlB,CACAmtB,MAAM,CAACtL,OAAP,CAAe,CAACw5C,SAAD,CAAa,KAAK5vC,EAAL,CAAQ9R,IAApC,EACEiI,OADF,CACU05C,SAAS,CAAG,KAAK5vC,EAAL,CAAQ/R,IAD9B,EAEEgI,OAFF,CAEU45C,SAAS,CAAG,KAAK5vC,EAAL,CAAQhS,IAF9B,EAGEkI,OAHF,CAGU,CAAC25C,WAAW,CAAC,CAAD,CAAZ,CAAkB,KAAKl8C,EAAL,CAAQ3F,IAHpC,EAIEiI,OAJF,CAIU45C,WAAW,CAAC,CAAD,CAAX,CAAiB,KAAKl8C,EAAL,CAAQ3F,IAJnC,EAKEgI,OALF,CAKU65C,WAAW,CAAC,CAAD,CAAX,CAAiB,KAAKl8C,EAAL,CAAQ3F,IALnC,EAMA,CACD,GAAI,KAAK9lB,IAAL,CAAUjC,CAAV,EAAe,KAAKiC,IAAL,CAAUjC,CAAV,CAAYN,CAA/B,CAAkC,CACjC,IAAImqE,SAAS,CAAG,KAAK7vC,EAAL,CAAQU,cAAR,CAAuBtsB,IAAvB,CAAhB,CACA,IAAI07D,SAAS,CAAG,KAAK7vC,EAAL,CAAQS,cAAR,CAAuBtsB,IAAvB,CAAhB,CACA,GAAI,KAAKnM,IAAL,CAAUjC,CAAV,CAAYunB,CAAhB,CAAmB,CAClB,IAAIwiD,SAAS,CAAG,KAAK7vC,EAAL,CAAQQ,cAAR,CAAuBtsB,IAAvB,CAAhB,CACAmtB,MAAM,CAAC5K,SAAP,CACCk5C,SAAS,CAAG,KAAK7vC,EAAL,CAAQjS,IADrB,CAEC+hD,SAAS,CAAG,KAAK7vC,EAAL,CAAQlS,IAFrB,CAGC,CAACgiD,SAAD,CAAa,KAAK7vC,EAAL,CAAQnS,IAHtB,EAKA,CAPD,IAOO,CACNwT,MAAM,CAAC5K,SAAP,CAAiBk5C,SAAS,CAAG,KAAK7vC,EAAL,CAAQjS,IAArC,CAA2C+hD,SAAS,CAAG,KAAK7vC,EAAL,CAAQlS,IAA/D,CAAqE,CAArE,EACA,CACD,CAbD,IAaO,CACN,IAAItqB,QAAQ,CAAG,KAAKuC,CAAL,CAAO06B,cAAP,CAAsBtsB,IAAtB,CAAf,CACAmtB,MAAM,CAAC5K,SAAP,CACClzB,QAAQ,CAAC,CAAD,CAAR,CAAc,KAAKuC,CAAL,CAAO+nB,IADtB,CAECtqB,QAAQ,CAAC,CAAD,CAAR,CAAc,KAAKuC,CAAL,CAAO+nB,IAFtB,CAGC,CAACtqB,QAAQ,CAAC,CAAD,CAAT,CAAe,KAAKuC,CAAL,CAAO+nB,IAHvB,EAKA,CACD,OAAOwT,MAAP,CACA;CACA,CAED,SAASyuC,6BAAT,EAAyC,CACxC,YAAYrqE,CAAL,CAAOmrB,KAAP,CAAa,IAAIsE,MAAJ,EAAb,CAAP,CACA,CAED,IAAI0L,oBAAoB,CAAGrB,wBAAwB,CAACqB,oBAApD,CACArB,wBAAwB,CAACqB,oBAAzB,CAAgD,SAAUljB,IAAV,CAAgB3V,IAAhB,CAAsBqP,SAAtB,CAAiC,CAChF,IAAIzY,IAAI,CAAGiiC,oBAAoB,CAACljB,IAAD,CAAO3V,IAAP,CAAaqP,SAAb,CAA/B,CACA,GAAIzY,IAAI,CAACuwB,iBAAL,CAAuBhxB,MAA3B,CAAmC,CAClCS,IAAI,CAAC6hC,cAAL,CAAsB4uC,uBAAuB,CAACh+D,IAAxB,CAA6BzS,IAA7B,CAAtB,CACA,CAFD,IAEO,CACNA,IAAI,CAAC6hC,cAAL,CAAsBsvC,6BAA6B,CAAC1+D,IAA9B,CAAmCzS,IAAnC,CAAtB,CACA,CACDA,IAAI,CAAC6yC,gBAAL,CAAwBo8B,iBAAiB,CAACp8B,gBAA1C,CACA,OAAO7yC,IAAP,CACA,CATD,CAWA,IAAIoxE,eAAe,CAAG1nD,eAAe,CAAC2G,OAAtC,CACA3G,eAAe,CAAC2G,OAAhB,CAA0B,SAAUtR,IAAV,CAAgB3V,IAAhB,CAAsBrK,IAAtB,CAA4BmwB,IAA5B,CAAkCzW,SAAlC,CAA6C,CACtE,IAAIzY,IAAI,CAAGoxE,eAAe,CAACryD,IAAD,CAAO3V,IAAP,CAAarK,IAAb,CAAmBmwB,IAAnB,CAAyBzW,SAAzB,CAA1B,CACA;CACA;CACA;CACA,GAAIzY,IAAI,CAAC0vB,EAAT,CAAa,CACZ1vB,IAAI,CAAC6hC,cAAL,CAAsBotC,iBAAiB,CAACptC,cAAlB,CAAiCpvB,IAAjC,CAAsCzS,IAAtC,CAAtB,CACA,CAFD,IAEO,CACNA,IAAI,CAAC6hC,cAAL,CAAsBotC,iBAAiB,CAACK,oBAAlB,CAAuC78D,IAAvC,CAA4CzS,IAA5C,CAAtB,CACA,CACDA,IAAI,CAAC6yC,gBAAL,CAAwBo8B,iBAAiB,CAACp8B,gBAA1C,CACA7yC,IAAI,CAACgsE,OAAL,CAAeA,OAAf,CACAhsE,IAAI,CAAC8rE,MAAL,CAAcA,MAAd,CACA9rE,IAAI,CAACksE,MAAL,CAAcA,MAAd,CACAlsE,IAAI,CAACwtC,iBAAL,CAAyByhC,iBAAiB,CAACzhC,iBAAlB,CAAoC/6B,IAApC,CAAyCzS,IAAzC,CAAzB,CACAA,IAAI,CAAC8tC,cAAL,CAAsBmhC,iBAAiB,CAACnhC,cAAlB,CAAiCr7B,IAAjC,CAAsCzS,IAAtC,CAAtB,CACAA,IAAI,CAACytC,OAAL,CAAerkC,IAAI,CAACmE,CAAL,GAAW,CAAX,CAAenE,IAAI,CAACoB,CAAL,CAAOjL,MAAtB,CAA+B,CAA9C,CACAS,IAAI,CAACwzC,aAAL,CAAqBpqC,IAAI,CAAC+6B,EAA1B,CACA,IAAIvlC,KAAK,CAAG,CAAZ,CACA,GAAIG,IAAI,GAAK,CAAb,CAAgB,CACfH,KAAK,CAAGsD,gBAAgB,CAAC,SAAD,CAAYkH,IAAI,CAACmE,CAAL,GAAW,CAAX,CAAenE,IAAI,CAACoB,CAAL,CAAO,CAAP,EAAU3D,CAAV,CAAYtH,MAA3B,CAAoC6J,IAAI,CAACoB,CAAL,CAAOjL,MAAvD,CAAxB,CACA,CACDS,IAAI,CAACmvE,cAAL,CAAsB,CACrB5jD,SAAS,CAAEhtB,mBADU,CAErB8rB,SAAS,CAAE,CAFU,CAGrBzrB,KAAK,CAAEA,KAHc,CAAtB,CAKAqwE,iBAAiB,CAACC,iBAAlB,CAAoCnwD,IAApC,CAA0C3V,IAA1C,CAAgDpJ,IAAhD,EACA,GAAIA,IAAI,CAACwK,CAAT,CAAY,CACXiO,SAAS,CAACoX,kBAAV,CAA6B7vB,IAA7B,EACA,CAED,OAAOA,IAAP,CACA,CAjCD,CAmCA,SAASqxE,mBAAT,CAA6BvnD,QAA7B,CAAuC;CAEtC,GAAI,CAAC,KAAKqlD,cAAV,CAA0B,CACzB,KAAKA,cAAL,CAAsB,CACrBmC,UAAU,CAAEv/C,SAAS,CAACE,KAAV,CAAgB,KAAK9H,EAArB,CADS,CAErBE,SAAS,CAAE,CAFU,CAGrBknD,QAAQ,CAAEhzE,mBAHW,CAAtB,CAKA,CAEDurB,QAAQ,EAAI,KAAK/K,IAAL,CAAUlG,UAAV,CAAqB9B,SAAjC,CACA+S,QAAQ,EAAI,KAAKE,UAAjB,CACA,GAAIF,QAAQ,GAAK,KAAKqlD,cAAL,CAAoBoC,QAArC,CAA+C,CAC9C,KAAKpC,cAAL,CAAoB9kD,SAApB,CAAgC,KAAK8kD,cAAL,CAAoBoC,QAApB,CAA+BznD,QAA/B,CAA0C,KAAKgF,QAAL,CAAczE,SAAxD,CAAoE,CAApG,CACA,KAAK8kD,cAAL,CAAoBoC,QAApB,CAA+BznD,QAA/B,CACA,KAAK8I,gBAAL,CAAsB9I,QAAtB,CAAgC,KAAKqlD,cAAL,CAAoBmC,UAApD,CAAgE,KAAKnC,cAArE,EACA,CACD,YAAYA,cAAL,CAAoBmC,UAA3B,CACA,CAED,IAAIE,gCAAgC,CAAG7+C,oBAAoB,CAAC0D,sBAArB,EAAvC,CACA,IAAIo7C,yCAAyC,CAAG9+C,oBAAoB,CAAC2D,+BAArB,EAAhD,CAEA,SAASo7C,gBAAT,EAA4B,EAC5BA,gBAAgB,CAACjyE,SAAjB,CAA6B,CAC5BkyB,QAAQ,CAAE,SAAU3xB,IAAV,CAAgBuV,IAAhB,CAAsB,CAC/B,GAAI,KAAK/K,CAAT,CAAY,CACX,KAAKwlB,QAAL,GACA,CACD,IAAIgC,SAAS,CAAG,KAAKlrB,CAArB,CACA,GAAIyO,IAAI,GAAKyD,SAAb,CAAwB,CACvBgZ,SAAS,CAAG,KAAK6P,cAAL,CAAoBtsB,IAApB,CAA0B,CAA1B,CAAZ,CACA,CACD,IAAIlW,CAAJ,CACA,IAAIC,GAAG,CAAG0yB,SAAS,CAACjO,OAApB,CACA,IAAI4N,QAAQ,CAAGK,SAAS,CAAChyB,IAAD,CAAxB,CACA,IAAIuiB,MAAM,CAAGyP,SAAS,CAAClrB,CAAvB,CACA,IAAI1E,GAAG,CAAGK,gBAAgB,CAACnD,GAAD,CAA1B,CACA,IAAKD,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B,GAAIW,IAAI,GAAK,GAAT,EAAgBA,IAAI,GAAK,GAA7B,CAAkC,CACjCoC,GAAG,CAAC/C,CAAD,CAAH,CAAS,CAACsyB,QAAQ,CAACtyB,CAAD,CAAR,CAAY,CAAZ,EAAiBkjB,MAAM,CAACljB,CAAD,CAAN,CAAU,CAAV,CAAlB,CAAgCsyB,QAAQ,CAACtyB,CAAD,CAAR,CAAY,CAAZ,EAAiBkjB,MAAM,CAACljB,CAAD,CAAN,CAAU,CAAV,CAAjD,CAAT,CACA,CAFD,IAEO,CACN+C,GAAG,CAAC/C,CAAD,CAAH,CAAS,CAACsyB,QAAQ,CAACtyB,CAAD,CAAR,CAAY,CAAZ,CAAD,CAAiBsyB,QAAQ,CAACtyB,CAAD,CAAR,CAAY,CAAZ,CAAjB,CAAT,CACA,CACD,CACD,OAAO+C,GAAP,CACA,CAtB2B,CAuB5BmgB,MAAM,CAAE,SAAUhN,IAAV,CAAgB,CACvB,YAAYoc,QAAL,CAAc,GAAd,CAAmBpc,IAAnB,CAAP,CACA,CAzB2B,CA0B5B41D,UAAU,CAAE,SAAU51D,IAAV,CAAgB,CAC3B,YAAYoc,QAAL,CAAc,GAAd,CAAmBpc,IAAnB,CAAP,CACA,CA5B2B,CA6B5B61D,WAAW,CAAE,SAAU71D,IAAV,CAAgB,CAC5B,YAAYoc,QAAL,CAAc,GAAd,CAAmBpc,IAAnB,CAAP,CACA,CA/B2B,CAgC5Bo8D,QAAQ,CAAE,UAAY,CACrB,YAAY7qE,CAAL,CAAOgH,CAAd,CACA,CAlC2B,CAmC5B8jE,WAAW,CAAE,SAAUxrD,IAAV,CAAgB7Q,IAAhB,CAAsB,CAClC,IAAIyc,SAAS,CAAG,KAAKlrB,CAArB,CACA,GAAIyO,IAAI,GAAKyD,SAAb,CAAwB,CACvBgZ,SAAS,CAAG,KAAK6P,cAAL,CAAoBtsB,IAApB,CAA0B,CAA1B,CAAZ,CACA,CACD,GAAI,CAAC,KAAKs8D,eAAV,CAA2B,CAC1B,KAAKA,eAAL,CAAuBpoD,GAAG,CAAChD,iBAAJ,CAAsBuL,SAAtB,CAAvB,CACA,CAED,IAAIrL,cAAc,CAAG,KAAKkrD,eAA1B,CACA,IAAIrtD,OAAO,CAAGmC,cAAc,CAACnC,OAA7B,CACA,IAAIkD,SAAS,CAAGf,cAAc,CAACjC,WAAf,CAA6B0B,IAA7C,CACA,IAAI/mB,CAAC,CAAG,CAAR,CACA,IAAIC,GAAG,CAAGklB,OAAO,CAACjlB,MAAlB,CACA,IAAIuyE,iBAAiB,CAAG,CAAxB,CACA,IAAI9mE,EAAJ,CACA,MAAO3L,CAAC,CAAGC,GAAX,CAAgB,CACf,GAAIwyE,iBAAiB,CAAGttD,OAAO,CAACnlB,CAAD,CAAP,CAAWilB,WAA/B,CAA6CoD,SAAjD,CAA4D,CAC3D,IAAIqqD,SAAS,CAAG1yE,CAAhB,CACA,IAAI2yE,QAAQ,CAAIhgD,SAAS,CAAClkB,CAAV,EAAezO,CAAC,GAAKC,GAAG,CAAG,CAA5B,CAAiC,CAAjC,CAAqCD,CAAC,CAAG,CAAxD,CACA,IAAIisB,WAAW,CAAG,CAAC5D,SAAS,CAAGoqD,iBAAb,EAAkCttD,OAAO,CAACnlB,CAAD,CAAP,CAAWilB,WAA/D,CACAtZ,EAAE,CAAGye,GAAG,CAAC5B,iBAAJ,CAAsBmK,SAAS,CAAClrB,CAAV,CAAYirE,SAAZ,CAAtB,CAA8C//C,SAAS,CAAClrB,CAAV,CAAYkrE,QAAZ,CAA9C,CAAqEhgD,SAAS,CAAC5lB,CAAV,CAAY2lE,SAAZ,CAArE,CAA6F//C,SAAS,CAAC3yB,CAAV,CAAY2yE,QAAZ,CAA7F,CAAoH1mD,WAApH,CAAiI9G,OAAO,CAACnlB,CAAD,CAAxI,CAAL,CACA,MACA,CAND,IAMO,CACNyyE,iBAAiB,EAAIttD,OAAO,CAACnlB,CAAD,CAAP,CAAWilB,WAAhC,CACA,CACDjlB,CAAC,EAAI,CAAL,CACA,CACD,GAAI,CAAC2L,EAAL,CAAS,CACRA,EAAE,CAAGgnB,SAAS,CAAClkB,CAAV,CAAc,CAACkkB,SAAS,CAAClrB,CAAV,CAAY,CAAZ,EAAe,CAAf,CAAD,CAAoBkrB,SAAS,CAAClrB,CAAV,CAAY,CAAZ,EAAe,CAAf,CAApB,CAAd,CAAuD,CAACkrB,SAAS,CAAClrB,CAAV,CAAYkrB,SAAS,CAACjO,OAAV,CAAoB,CAAhC,EAAmC,CAAnC,CAAD,CAAwCiO,SAAS,CAAClrB,CAAV,CAAYkrB,SAAS,CAACjO,OAAV,CAAoB,CAAhC,EAAmC,CAAnC,CAAxC,CAA5D,CACA,CACD,OAAO/Y,EAAP,CACA,CAnE2B,CAoE5BinE,YAAY,CAAE,SAAU7rD,IAAV,CAAgB7Q,IAAhB,CAAsB28D,UAAtB,CAAkC;CAE/C,GAAI9rD,IAAI,EAAI,CAAZ,CAAe;CACdA,IAAI,CAAG,KAAKtf,CAAL,CAAOgH,CAAd,CACA,CAFD,QAEWsY,IAAI,EAAI,CAAZ,CAAe;CACrBA,IAAI,CAAG,KAAP,CACA,CACD,IAAIN,GAAG,CAAG,KAAK8rD,WAAL,CAAiBxrD,IAAjB,CAAuB7Q,IAAvB,CAAV,CACA,IAAIwQ,GAAG,CAAG,KAAK6rD,WAAL,CAAiBxrD,IAAI,CAAG,KAAxB,CAA+B7Q,IAA/B,CAAV,CACA,IAAI48D,OAAO,CAAGpsD,GAAG,CAAC,CAAD,CAAH,CAASD,GAAG,CAAC,CAAD,CAA1B,CACA,IAAIssD,OAAO,CAAGrsD,GAAG,CAAC,CAAD,CAAH,CAASD,GAAG,CAAC,CAAD,CAA1B,CACA,IAAIusD,SAAS,CAAGjvE,IAAI,CAACG,IAAL,CAAUH,IAAI,CAACC,GAAL,CAAS8uE,OAAT,CAAkB,CAAlB,EAAuB/uE,IAAI,CAACC,GAAL,CAAS+uE,OAAT,CAAkB,CAAlB,CAAjC,CAAhB,CACA,GAAIC,SAAS,GAAK,CAAlB,CAAqB,CACpB,OAAO,CAAC,CAAD,CAAI,CAAJ,CAAP,CACA,CACD,IAAIC,UAAU,CAAGJ,UAAU,GAAK,SAAf,CAA2B,CAACC,OAAO,CAAGE,SAAX,CAAsBD,OAAO,CAAGC,SAAhC,CAA3B,CAAwE,CAAC,CAACD,OAAD,CAAWC,SAAZ,CAAuBF,OAAO,CAAGE,SAAjC,CAAzF,CACA,OAAOC,UAAP,CACA,CArF2B,CAsF5BC,aAAa,CAAE,SAAUnsD,IAAV,CAAgB7Q,IAAhB,CAAsB,CACpC,YAAY08D,YAAL,CAAkB7rD,IAAlB,CAAwB7Q,IAAxB,CAA8B,SAA9B,CAAP,CACA,CAxF2B,CAyF5Bi9D,YAAY,CAAE,SAAUpsD,IAAV,CAAgB7Q,IAAhB,CAAsB,CACnC,YAAY08D,YAAL,CAAkB7rD,IAAlB,CAAwB7Q,IAAxB,CAA8B,QAA9B,CAAP,CACA,CA3F2B,CA4F5Bs9B,gBAAgB,CAAEo8B,iBAAiB,CAACp8B,gBA5FR,CA6F5BhR,cAAc,CAAEotC,iBAAiB,CAACK,oBA7FN,CAA7B,CA+FApwE,eAAe,CAAC,CAACwyE,gBAAD,CAAD,CAAqBF,gCAArB,CAAf,CACAtyE,eAAe,CAAC,CAACwyE,gBAAD,CAAD,CAAqBD,yCAArB,CAAf,CACAA,yCAAyC,CAAChyE,SAA1C,CAAoDoiC,cAApD,CAAqEwvC,mBAArE,CACAI,yCAAyC,CAAChyE,SAA1C,CAAoD+rE,kBAApD,CAAyEnD,iBAAiB,CAACmD,kBAA3F,CAEA,IAAIiH,oBAAoB,CAAG9/C,oBAAoB,CAACwD,YAAhD,CACAxD,oBAAoB,CAACwD,YAArB,CAAoC,SAAUpX,IAAV,CAAgB3V,IAAhB,CAAsBrK,IAAtB,CAA4BqD,GAA5B,CAAiCswE,KAAjC,CAAwC,CAC3E,IAAI1yE,IAAI,CAAGyyE,oBAAoB,CAAC1zD,IAAD,CAAO3V,IAAP,CAAarK,IAAb,CAAmBqD,GAAnB,CAAwBswE,KAAxB,CAA/B,CACA1yE,IAAI,CAACwzC,aAAL,CAAqBpqC,IAAI,CAAC+6B,EAA1B,CACAnkC,IAAI,CAACuvB,IAAL,CAAY,KAAZ,CACA,GAAIxwB,IAAI,GAAK,CAAb,CAAgB,CACfkwE,iBAAiB,CAACC,iBAAlB,CAAoCnwD,IAApC,CAA0C3V,IAAI,CAAC4B,EAA/C,CAAmDhL,IAAnD,EACA,CAFD,QAEWjB,IAAI,GAAK,CAAb,CAAgB,CACtBkwE,iBAAiB,CAACC,iBAAlB,CAAoCnwD,IAApC,CAA0C3V,IAAI,CAAC8C,EAA/C,CAAmDlM,IAAnD,EACA,CACD,GAAIA,IAAI,CAACwK,CAAT,CAAY,CACXuU,IAAI,CAAC8Q,kBAAL,CAAwB7vB,IAAxB,EACA,CACD,OAAOA,IAAP,CACA,CAbD,CAcA,CAED,SAAS2yE,YAAT,EAAwB,CACvBpD,oBAAoB,GACpB,CAED,SAASqD,YAAT,EAAwB,CACvB,SAAS1D,iBAAT,EAA6B,CAC5B,GAAI,KAAK9lE,IAAL,CAAU7B,CAAV,CAAYqb,CAAhB,CAAmB,CAClB,KAAKiwD,mBAAL,CAA2BxK,iBAAiB,CAACmD,kBAAlB,CAAqC/4D,IAArC,CAA0C,IAA1C,EAAgD,KAAKsM,IAArD,CAA2D,KAAK3V,IAAL,CAAU7B,CAArE,CAAwE,IAAxE,CAA3B,CACA,KAAKooB,SAAL,CAAe,KAAKmjD,kBAAL,CAAwBrgE,IAAxB,CAA6B,IAA7B,CAAf,EACA,WAAA,CACA,CACD,WAAA,CACA,CAEDu2C,YAAY,CAACvpD,SAAb,CAAuBqzE,kBAAvB,CAA4C,SAAUnoB,YAAV,CAAwB9hB,IAAxB,CAA8B,CACzE,IAAI5e,QAAQ,CAAG,KAAK4oD,mBAAL,CAAyBhqC,IAAzB,CAAf,CACA,GAAI8hB,YAAY,CAACtjD,CAAb,GAAmB4iB,QAAvB,CAAiC,CAChC,IAAIijC,OAAO,CAAG,EAAd,CACA,KAAK9C,QAAL,CAAc8C,OAAd,CAAuBvC,YAAvB,EACAuC,OAAO,CAAC7lD,CAAR,CAAY4iB,QAAQ,CAAChiB,QAAT,EAAZ,CACAilD,OAAO,CAAC9+C,UAAR,CAAqB,KAArB,CACA,OAAO8+C,OAAP,CACA,CACD,OAAOvC,YAAP,CACA,CAVD,CAYA3B,YAAY,CAACvpD,SAAb,CAAuBg5C,cAAvB,CAAwC,UAAY,CACnD,IAAIs6B,WAAW,CAAG,KAAKvoB,eAAL,EAAlB,CACA,IAAIwoB,cAAc,CAAG,KAAK9D,iBAAL,EAArB,CACA,KAAKx/C,EAAL,CAAUqjD,WAAW,EAAIC,cAAzB,CACA,YAAYtjD,EAAZ,CACA,CALD,CAOAs5B,YAAY,CAACvpD,SAAb,CAAuByvE,iBAAvB,CAA2CA,iBAA3C,CACA,CAED,SAAS+D,UAAT,EAAsB,CACrBL,YAAY,GACZ,CAED,SAASM,mBAAT,EAA+B,EAG/BA,mBAAmB,CAACzzE,SAApB,CAAgC,CAC/B0zE,eAAe,CAAE,CAACC,QAAD,CAAWC,GAAX,GAAmB,CACnC,IAAIC,OAAO,CAAG7qE,QAAQ,CAAC,SAAD,CAAtB,CACA6qE,OAAO,CAACvzD,YAAR,CAAqB,QAArB,CAA+BqzD,QAA/B,EACA,IAAIG,WAAJ,CACA,IAAIl0E,CAAJ,CACA,IAAKA,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGg0E,GAAG,CAAC9zE,MAApB,CAA4BF,CAAC,EAAI,CAAjC,CAAoC,CACnCk0E,WAAW,CAAG9qE,QAAQ,CAAC,aAAD,CAAtB,CACA8qE,WAAW,CAACxzD,YAAZ,CAAyB,IAAzB,CAA+BszD,GAAG,CAACh0E,CAAD,CAAlC,EACAi0E,OAAO,CAACtgE,WAAR,CAAoBugE,WAApB,EACAD,OAAO,CAACtgE,WAAR,CAAoBugE,WAApB,EACA,CACD,OAAOD,OAAP,CACA,CAb8B,CAAhC,CAgBA,SAASE,aAAT,CAAuBC,MAAvB,CAA+Bh1B,aAA/B,CAA8C1/B,IAA9C,CAAoDnT,EAApD,CAAwDslC,MAAxD,CAAgE,CAC/D,KAAKuN,aAAL,CAAqBA,aAArB,CACA,IAAIN,aAAa,CAAG11C,QAAQ,CAAC,eAAD,CAA5B,CACA01C,aAAa,CAACp+B,YAAd,CAA2B,MAA3B,CAAmC,QAAnC,EACAo+B,aAAa,CAACp+B,YAAd,CAA2B,6BAA3B,CAA0D,WAA1D,EACAo+B,aAAa,CAACp+B,YAAd,CAA2B,QAA3B,CAAqC,sFAArC,EACAo+B,aAAa,CAACp+B,YAAd,CAA2B,QAA3B,CAAqCnU,EAAE,CAAG,SAA1C,EACA6nE,MAAM,CAACzgE,WAAP,CAAmBmrC,aAAnB,EACAA,aAAa,CAAG11C,QAAQ,CAAC,eAAD,CAAxB,CACA01C,aAAa,CAACp+B,YAAd,CAA2B,MAA3B,CAAmC,QAAnC,EACAo+B,aAAa,CAACp+B,YAAd,CAA2B,6BAA3B,CAA0D,MAA1D,EACAo+B,aAAa,CAACp+B,YAAd,CAA2B,QAA3B,CAAqC,yCAArC,EACAo+B,aAAa,CAACp+B,YAAd,CAA2B,QAA3B,CAAqCnU,EAAE,CAAG,SAA1C,EACA6nE,MAAM,CAACzgE,WAAP,CAAmBmrC,aAAnB,EACA,KAAKu1B,YAAL,CAAoBv1B,aAApB,CACA,IAAIm1B,OAAO,CAAG,KAAKH,eAAL,CACbvnE,EADa,CAEb,CACCslC,MADD,CAECtlC,EAAE,CAAG,SAFN,CAGCA,EAAE,CAAG,SAHN,CAFa,CAAd,CAQA6nE,MAAM,CAACzgE,WAAP,CAAmBsgE,OAAnB,EACA,CACDp0E,eAAe,CAAC,CAACg0E,mBAAD,CAAD,CAAwBM,aAAxB,CAAf,CAEAA,aAAa,CAAC/zE,SAAd,CAAwBkc,WAAxB,CAAsC,SAAU2lB,WAAV,CAAuB,CAC5D,GAAIA,WAAW,EAAI,KAAKmd,aAAL,CAAmBtvB,IAAtC,CAA4C,CAC3C,IAAIwkD,UAAU,CAAG,KAAKl1B,aAAL,CAAmBxM,cAAnB,CAAkC,CAAlC,EAAqC9qC,CAArC,CAAuCL,CAAxD,CACA,IAAI8sE,UAAU,CAAG,KAAKn1B,aAAL,CAAmBxM,cAAnB,CAAkC,CAAlC,EAAqC9qC,CAArC,CAAuCL,CAAxD,CACA,IAAIgoC,OAAO,CAAG,KAAK2P,aAAL,CAAmBxM,cAAnB,CAAkC,CAAlC,EAAqC9qC,CAArC,CAAuCL,CAAvC,CAA2C,GAAzD,CACA,KAAK4sE,YAAL,CAAkB3zD,YAAlB,CAA+B,QAA/B,CAA0C6zD,UAAU,CAAC,CAAD,CAAV,CAAgBD,UAAU,CAAC,CAAD,CAA3B,CAAkC,SAAlC,CAA8CA,UAAU,CAAC,CAAD,CAAxD,CAA8D,GAA9D,EAAqEC,UAAU,CAAC,CAAD,CAAV,CAAgBD,UAAU,CAAC,CAAD,CAA/F,EAAsG,SAAtG,CAAkHA,UAAU,CAAC,CAAD,CAA5H,CAAkI,GAAlI,EAAyIC,UAAU,CAAC,CAAD,CAAV,CAAgBD,UAAU,CAAC,CAAD,CAAnK,EAA0K,SAA1K,CAAsLA,UAAU,CAAC,CAAD,CAAhM,CAAsM,SAAtM,CAAkN7kC,OAAlN,CAA4N,IAArQ,EACA,CACD,CAPD,CASA,SAAS+kC,aAAT,CAAuBJ,MAAvB,CAA+Bh1B,aAA/B,CAA8C1/B,IAA9C,CAAoDnT,EAApD,CAAwD,CACvD,KAAK6yC,aAAL,CAAqBA,aAArB,CACA,IAAIN,aAAa,CAAG11C,QAAQ,CAAC,eAAD,CAA5B,CACA01C,aAAa,CAACp+B,YAAd,CAA2B,MAA3B,CAAmC,QAAnC,EACAo+B,aAAa,CAACp+B,YAAd,CAA2B,6BAA3B,CAA0D,MAA1D,EACAo+B,aAAa,CAACp+B,YAAd,CAA2B,QAA3B,CAAqC,yCAArC,EACAo+B,aAAa,CAACp+B,YAAd,CAA2B,QAA3B,CAAqCnU,EAArC,EACA6nE,MAAM,CAACzgE,WAAP,CAAmBmrC,aAAnB,EACA,KAAKu1B,YAAL,CAAoBv1B,aAApB,CACA,CAED01B,aAAa,CAACp0E,SAAd,CAAwBkc,WAAxB,CAAsC,SAAU2lB,WAAV,CAAuB,CAC5D,GAAIA,WAAW,EAAI,KAAKmd,aAAL,CAAmBtvB,IAAtC,CAA4C,CAC3C,IAAI1nB,KAAK,CAAG,KAAKg3C,aAAL,CAAmBxM,cAAnB,CAAkC,CAAlC,EAAqC9qC,CAArC,CAAuCL,CAAnD,CACA,IAAIgoC,OAAO,CAAG,KAAK2P,aAAL,CAAmBxM,cAAnB,CAAkC,CAAlC,EAAqC9qC,CAArC,CAAuCL,CAArD,CACA,KAAK4sE,YAAL,CAAkB3zD,YAAlB,CAA+B,QAA/B,CAAyC,WAAatY,KAAK,CAAC,CAAD,CAAlB,CAAwB,WAAxB,CAAsCA,KAAK,CAAC,CAAD,CAA3C,CAAiD,WAAjD,CAA+DA,KAAK,CAAC,CAAD,CAApE,CAA0E,SAA1E,CAAsFqnC,OAAtF,CAAgG,IAAzI,EACA,CACD,CAND,CAQA,SAASglC,eAAT,CAAyB51B,GAAzB,CAA8BO,aAA9B,CAA6C1/B,IAA7C,CAAmD,CAClD,KAAKg1D,WAAL,CAAmB,KAAnB,CACA,KAAKt1B,aAAL,CAAqBA,aAArB,CACA,KAAK1/B,IAAL,CAAYA,IAAZ,CACA,KAAKqU,KAAL,CAAa,EAAb,CACA,CAED0gD,eAAe,CAACr0E,SAAhB,CAA0BwzE,UAA1B,CAAuC,UAAY,CAClD,IAAIe,YAAY,CAAG,KAAKj1D,IAAL,CAAU64B,YAAV,CAAuB6pB,QAAvB,EAAmC,KAAK1iD,IAAL,CAAU64B,YAAV,CAAuBq8B,UAA7E,CACA,IAAI9qE,IAAJ,CACA,IAAI+qE,SAAJ,CACA,IAAI70E,CAAJ,CACA,IAAIC,GAAJ,CACA,GAAI,KAAKm/C,aAAL,CAAmBxM,cAAnB,CAAkC,CAAlC,EAAqC9qC,CAArC,CAAuCL,CAAvC,GAA6C,CAAjD,CAAoD,CACnDxH,GAAG,CAAG,KAAKyf,IAAL,CAAU+tB,WAAV,CAAsB/hC,eAAtB,CAAsCxL,MAA5C,CACAF,CAAC,CAAG,CAAJ,CACA,CAHD,IAGO,CACNA,CAAC,CAAG,KAAKo/C,aAAL,CAAmBxM,cAAnB,CAAkC,CAAlC,EAAqC9qC,CAArC,CAAuCL,CAAvC,CAA2C,CAA/C,CACAxH,GAAG,CAAGD,CAAC,CAAG,CAAV,CACA,CACD60E,SAAS,CAAGzrE,QAAQ,CAAC,GAAD,CAApB,CACAyrE,SAAS,CAACn0D,YAAV,CAAuB,MAAvB,CAA+B,MAA/B,EACAm0D,SAAS,CAACn0D,YAAV,CAAuB,gBAAvB,CAAyC,OAAzC,EACAm0D,SAAS,CAACn0D,YAAV,CAAuB,mBAAvB,CAA4C,CAA5C,EACA,IAAK1gB,CAAL,CAAQA,CAAC,CAAGC,GAAZ,CAAiBD,CAAC,EAAI,CAAtB,CAAyB,CACxB8J,IAAI,CAAGV,QAAQ,CAAC,MAAD,CAAf,CACAyrE,SAAS,CAAClhE,WAAV,CAAsB7J,IAAtB,EACA,KAAKiqB,KAAL,CAAWxyB,IAAX,CAAgB,CAAEuG,CAAC,CAAEgC,IAAL,CAAW0uB,CAAC,CAAEx4B,CAAd,CAAhB,EACA,CACD,GAAI,KAAKo/C,aAAL,CAAmBxM,cAAnB,CAAkC,EAAlC,EAAsC9qC,CAAtC,CAAwCL,CAAxC,GAA8C,CAAlD,CAAqD,CACpD,IAAI2lC,IAAI,CAAGhkC,QAAQ,CAAC,MAAD,CAAnB,CACA,IAAImD,EAAE,CAAGpF,eAAe,EAAxB,CACAimC,IAAI,CAAC1sB,YAAL,CAAkB,IAAlB,CAAwBnU,EAAxB,EACA6gC,IAAI,CAAC1sB,YAAL,CAAkB,WAAlB,CAA+B,OAA/B,EACA0sB,IAAI,CAACz5B,WAAL,CAAiBkhE,SAAjB,EACA,KAAKn1D,IAAL,CAAUlG,UAAV,CAAqBC,IAArB,CAA0B9F,WAA1B,CAAsCy5B,IAAtC,EACA,IAAIzlC,CAAC,CAAGyB,QAAQ,CAAC,GAAD,CAAhB,CACAzB,CAAC,CAAC+Y,YAAF,CAAe,MAAf,CAAuB,OAASlhB,eAAe,EAAxB,CAA6B,GAA7B,CAAmC+M,EAAnC,CAAwC,GAA/D,EACA,MAAOooE,YAAY,CAAC,CAAD,CAAnB,CAAwB,CACvBhtE,CAAC,CAACgM,WAAF,CAAcghE,YAAY,CAAC,CAAD,CAA1B,EACA,CACD,KAAKj1D,IAAL,CAAU64B,YAAV,CAAuB5kC,WAAvB,CAAmChM,CAAnC,EACA,KAAKq4C,MAAL,CAAc5S,IAAd,CACAynC,SAAS,CAACn0D,YAAV,CAAuB,QAAvB,CAAiC,MAAjC,EACA,CAfD,QAeW,KAAK0+B,aAAL,CAAmBxM,cAAnB,CAAkC,EAAlC,EAAsC9qC,CAAtC,CAAwCL,CAAxC,GAA8C,CAA9C,EAAmD,KAAK23C,aAAL,CAAmBxM,cAAnB,CAAkC,EAAlC,EAAsC9qC,CAAtC,CAAwCL,CAAxC,GAA8C,CAArG,CAAwG,CAC9G,GAAI,KAAK23C,aAAL,CAAmBxM,cAAnB,CAAkC,EAAlC,EAAsC9qC,CAAtC,CAAwCL,CAAxC,GAA8C,CAAlD,CAAqD,CACpDktE,YAAY,CAAG,KAAKj1D,IAAL,CAAU64B,YAAV,CAAuB6pB,QAAvB,EAAmC,KAAK1iD,IAAL,CAAU64B,YAAV,CAAuBq8B,UAAzE,CACA,MAAOD,YAAY,CAACz0E,MAApB,CAA4B,CAC3B,KAAKwf,IAAL,CAAU64B,YAAV,CAAuBhQ,WAAvB,CAAmCosC,YAAY,CAAC,CAAD,CAA/C,EACA,CACD,CACD,KAAKj1D,IAAL,CAAU64B,YAAV,CAAuB5kC,WAAvB,CAAmCkhE,SAAnC,EACA,KAAKn1D,IAAL,CAAU64B,YAAV,CAAuBu8B,eAAvB,CAAuC,MAAvC,EACAD,SAAS,CAACn0D,YAAV,CAAuB,QAAvB,CAAiC,MAAjC,EACA,CACD,KAAKg0D,WAAL,CAAmB,IAAnB,CACA,KAAKK,UAAL,CAAkBF,SAAlB,CACA,CAlDD,CAoDAJ,eAAe,CAACr0E,SAAhB,CAA0Bkc,WAA1B,CAAwC,SAAU2lB,WAAV,CAAuB,CAC9D,GAAI,CAAC,KAAKyyC,WAAV,CAAuB,CACtB,KAAKd,UAAL,GACA,CACD,IAAI5zE,CAAJ,CACA,IAAIC,GAAG,CAAG,KAAK8zB,KAAL,CAAW7zB,MAArB,CACA,IAAIktC,IAAJ,CACA,IAAItjC,IAAJ,CACA,IAAK9J,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGC,GAAhB,CAAqBD,CAAC,EAAI,CAA1B,CAA6B,CAC5B,GAAI,KAAK+zB,KAAL,CAAW/zB,CAAX,EAAcw4B,CAAd,GAAoB,CAAC,CAAzB,CAA4B,CAC3B4U,IAAI,CAAG,KAAK1tB,IAAL,CAAU+tB,WAAV,CAAsBE,QAAtB,CAA+B,KAAK5Z,KAAL,CAAW/zB,CAAX,EAAcw4B,CAA7C,CAAP,CACA1uB,IAAI,CAAG,KAAKiqB,KAAL,CAAW/zB,CAAX,EAAc8H,CAArB,CACA,GAAIm6B,WAAW,EAAI,KAAKmd,aAAL,CAAmBtvB,IAAlC,EAA0Csd,IAAI,CAACzsC,IAAL,CAAUmvB,IAAxD,CAA8D,CAC7DhmB,IAAI,CAAC4W,YAAL,CAAkB,GAAlB,CAAuB0sB,IAAI,CAACoQ,QAA5B,EACA,CACD,GAAIvb,WAAW,EAAI,KAAKmd,aAAL,CAAmBxM,cAAnB,CAAkC,CAAlC,EAAqC9qC,CAArC,CAAuCgoB,IAAtD,EAA8D,KAAKsvB,aAAL,CAAmBxM,cAAnB,CAAkC,CAAlC,EAAqC9qC,CAArC,CAAuCgoB,IAArG,EAA6G,KAAKsvB,aAAL,CAAmBxM,cAAnB,CAAkC,CAAlC,EAAqC9qC,CAArC,CAAuCgoB,IAApJ,EAA4J,KAAKsvB,aAAL,CAAmBxM,cAAnB,CAAkC,CAAlC,EAAqC9qC,CAArC,CAAuCgoB,IAAnM,EAA2Msd,IAAI,CAACzsC,IAAL,CAAUmvB,IAAzN,CAA+N,CAC9N,IAAIklD,cAAJ,CACA,GAAI,KAAK51B,aAAL,CAAmBxM,cAAnB,CAAkC,CAAlC,EAAqC9qC,CAArC,CAAuCL,CAAvC,GAA6C,CAA7C,EAAkD,KAAK23C,aAAL,CAAmBxM,cAAnB,CAAkC,CAAlC,EAAqC9qC,CAArC,CAAuCL,CAAvC,GAA6C,GAAnG,CAAwG,CACvG,IAAID,CAAC,CAAGzD,IAAI,CAACS,GAAL,CAAS,KAAK46C,aAAL,CAAmBxM,cAAnB,CAAkC,CAAlC,EAAqC9qC,CAArC,CAAuCL,CAAhD,CAAmD,KAAK23C,aAAL,CAAmBxM,cAAnB,CAAkC,CAAlC,EAAqC9qC,CAArC,CAAuCL,CAA1F,EAA+F,IAAvG,CACA,IAAIkD,CAAC,CAAG5G,IAAI,CAACO,GAAL,CAAS,KAAK86C,aAAL,CAAmBxM,cAAnB,CAAkC,CAAlC,EAAqC9qC,CAArC,CAAuCL,CAAhD,CAAmD,KAAK23C,aAAL,CAAmBxM,cAAnB,CAAkC,CAAlC,EAAqC9qC,CAArC,CAAuCL,CAA1F,EAA+F,IAAvG,CACA,IAAI8wB,CAAC,CAAGzuB,IAAI,CAACmrE,cAAL,EAAR,CACAD,cAAc,CAAG,SAAWz8C,CAAC,CAAG/wB,CAAf,CAAmB,GAApC,CACA,IAAI0tE,UAAU,CAAG38C,CAAC,EAAI5tB,CAAC,CAAGnD,CAAR,CAAlB,CACA,IAAIyT,OAAO,CAAG,EAAI,KAAKmkC,aAAL,CAAmBxM,cAAnB,CAAkC,CAAlC,EAAqC9qC,CAArC,CAAuCL,CAAvC,CAA2C,CAA3C,CAA+C,KAAK23C,aAAL,CAAmBxM,cAAnB,CAAkC,CAAlC,EAAqC9qC,CAArC,CAAuCL,CAAtF,CAA0F,IAA5G,CACA,IAAI0tE,KAAK,CAAGpxE,IAAI,CAACK,KAAL,CAAW8wE,UAAU,CAAGj6D,OAAxB,CAAZ,CACA,IAAIhQ,CAAJ,CACA,IAAKA,CAAC,CAAG,CAAT,CAAYA,CAAC,CAAGkqE,KAAhB,CAAuBlqE,CAAC,EAAI,CAA5B,CAA+B,CAC9B+pE,cAAc,EAAI,KAAO,KAAK51B,aAAL,CAAmBxM,cAAnB,CAAkC,CAAlC,EAAqC9qC,CAArC,CAAuCL,CAAvC,CAA2C,CAA3C,CAA+C,KAAK23C,aAAL,CAAmBxM,cAAnB,CAAkC,CAAlC,EAAqC9qC,CAArC,CAAuCL,CAAtF,CAA0F,IAAjG,CAAwG,GAA1H,CACA,CACDutE,cAAc,EAAI,KAAOz8C,CAAC,CAAG,EAAX,CAAgB,MAAlC,CACA,CAbD,IAaO,CACNy8C,cAAc,CAAG,KAAO,KAAK51B,aAAL,CAAmBxM,cAAnB,CAAkC,CAAlC,EAAqC9qC,CAArC,CAAuCL,CAAvC,CAA2C,CAA3C,CAA+C,KAAK23C,aAAL,CAAmBxM,cAAnB,CAAkC,CAAlC,EAAqC9qC,CAArC,CAAuCL,CAAtF,CAA0F,IAAlH,CACA,CACDqC,IAAI,CAAC4W,YAAL,CAAkB,kBAAlB,CAAsCs0D,cAAtC,EACA,CACD,CACD,CACD,GAAI/yC,WAAW,EAAI,KAAKmd,aAAL,CAAmBxM,cAAnB,CAAkC,CAAlC,EAAqC9qC,CAArC,CAAuCgoB,IAA1D,CAAgE,CAC/D,KAAKilD,UAAL,CAAgBr0D,YAAhB,CAA6B,cAA7B,CAA6C,KAAK0+B,aAAL,CAAmBxM,cAAnB,CAAkC,CAAlC,EAAqC9qC,CAArC,CAAuCL,CAAvC,CAA2C,CAAxF,EACA,CAED,GAAIw6B,WAAW,EAAI,KAAKmd,aAAL,CAAmBxM,cAAnB,CAAkC,CAAlC,EAAqC9qC,CAArC,CAAuCgoB,IAA1D,CAAgE,CAC/D,KAAKilD,UAAL,CAAgBr0D,YAAhB,CAA6B,SAA7B,CAAwC,KAAK0+B,aAAL,CAAmBxM,cAAnB,CAAkC,CAAlC,EAAqC9qC,CAArC,CAAuCL,CAA/E,EACA,CACD,GAAI,KAAK23C,aAAL,CAAmBxM,cAAnB,CAAkC,EAAlC,EAAsC9qC,CAAtC,CAAwCL,CAAxC,GAA8C,CAA9C,EAAmD,KAAK23C,aAAL,CAAmBxM,cAAnB,CAAkC,EAAlC,EAAsC9qC,CAAtC,CAAwCL,CAAxC,GAA8C,CAArG,CAAwG,CACvG,GAAIw6B,WAAW,EAAI,KAAKmd,aAAL,CAAmBxM,cAAnB,CAAkC,CAAlC,EAAqC9qC,CAArC,CAAuCgoB,IAA1D,CAAgE,CAC/D,IAAI1nB,KAAK,CAAG,KAAKg3C,aAAL,CAAmBxM,cAAnB,CAAkC,CAAlC,EAAqC9qC,CAArC,CAAuCL,CAAnD,CACA,KAAKstE,UAAL,CAAgBr0D,YAAhB,CAA6B,QAA7B,CAAuC,OAASvc,OAAO,CAACiE,KAAK,CAAC,CAAD,CAAL,CAAW,GAAZ,CAAhB,CAAmC,GAAnC,CAAyCjE,OAAO,CAACiE,KAAK,CAAC,CAAD,CAAL,CAAW,GAAZ,CAAhD,CAAmE,GAAnE,CAAyEjE,OAAO,CAACiE,KAAK,CAAC,CAAD,CAAL,CAAW,GAAZ,CAAhF,CAAmG,GAA1I,EACA,CACD,CACD,CAlDD,CAoDA,SAASgtE,gBAAT,CAA0BhB,MAA1B,CAAkCh1B,aAAlC,CAAiD1/B,IAAjD,CAAuDnT,EAAvD,CAA2D,CAC1D,KAAK6yC,aAAL,CAAqBA,aAArB,CACA,IAAIN,aAAa,CAAG11C,QAAQ,CAAC,eAAD,CAA5B,CACA01C,aAAa,CAACp+B,YAAd,CAA2B,MAA3B,CAAmC,QAAnC,EACAo+B,aAAa,CAACp+B,YAAd,CAA2B,6BAA3B,CAA0D,WAA1D,EACAo+B,aAAa,CAACp+B,YAAd,CAA2B,QAA3B,CAAqC,sFAArC,EACA0zD,MAAM,CAACzgE,WAAP,CAAmBmrC,aAAnB,EACA,IAAIu2B,mBAAmB,CAAGjsE,QAAQ,CAAC,qBAAD,CAAlC,CACAisE,mBAAmB,CAAC30D,YAApB,CAAiC,6BAAjC,CAAgE,MAAhE,EACA20D,mBAAmB,CAAC30D,YAApB,CAAiC,QAAjC,CAA2CnU,EAA3C,EACA,KAAK8nE,YAAL,CAAoBgB,mBAApB,CACA,IAAIC,OAAO,CAAGlsE,QAAQ,CAAC,SAAD,CAAtB,CACAksE,OAAO,CAAC50D,YAAR,CAAqB,MAArB,CAA6B,OAA7B,EACA20D,mBAAmB,CAAC1hE,WAApB,CAAgC2hE,OAAhC,EACA,KAAKA,OAAL,CAAeA,OAAf,CACA,IAAIC,OAAO,CAAGnsE,QAAQ,CAAC,SAAD,CAAtB,CACAmsE,OAAO,CAAC70D,YAAR,CAAqB,MAArB,CAA6B,OAA7B,EACA20D,mBAAmB,CAAC1hE,WAApB,CAAgC4hE,OAAhC,EACA,KAAKA,OAAL,CAAeA,OAAf,CACA,IAAIC,OAAO,CAAGpsE,QAAQ,CAAC,SAAD,CAAtB,CACAosE,OAAO,CAAC90D,YAAR,CAAqB,MAArB,CAA6B,OAA7B,EACA20D,mBAAmB,CAAC1hE,WAApB,CAAgC6hE,OAAhC,EACA,KAAKA,OAAL,CAAeA,OAAf,CACApB,MAAM,CAACzgE,WAAP,CAAmB0hE,mBAAnB,EACA,CAEDD,gBAAgB,CAACh1E,SAAjB,CAA2Bkc,WAA3B,CAAyC,SAAU2lB,WAAV,CAAuB,CAC/D,GAAIA,WAAW,EAAI,KAAKmd,aAAL,CAAmBtvB,IAAtC,CAA4C,CAC3C,IAAI2lD,MAAM,CAAG,KAAKr2B,aAAL,CAAmBxM,cAAnB,CAAkC,CAAlC,EAAqC9qC,CAArC,CAAuCL,CAApD,CACA,IAAIiuE,MAAM,CAAG,KAAKt2B,aAAL,CAAmBxM,cAAnB,CAAkC,CAAlC,EAAqC9qC,CAArC,CAAuCL,CAApD,CACA,IAAIkuE,MAAM,CAAG,KAAKv2B,aAAL,CAAmBxM,cAAnB,CAAkC,CAAlC,EAAqC9qC,CAArC,CAAuCL,CAApD,CACA,IAAImuE,MAAM,CAAGD,MAAM,CAAC,CAAD,CAAN,CAAY,GAAZ,CAAkBD,MAAM,CAAC,CAAD,CAAxB,CAA8B,GAA9B,CAAoCD,MAAM,CAAC,CAAD,CAAvD,CACA,IAAII,MAAM,CAAGF,MAAM,CAAC,CAAD,CAAN,CAAY,GAAZ,CAAkBD,MAAM,CAAC,CAAD,CAAxB,CAA8B,GAA9B,CAAoCD,MAAM,CAAC,CAAD,CAAvD,CACA,IAAIK,MAAM,CAAGH,MAAM,CAAC,CAAD,CAAN,CAAY,GAAZ,CAAkBD,MAAM,CAAC,CAAD,CAAxB,CAA8B,GAA9B,CAAoCD,MAAM,CAAC,CAAD,CAAvD,CACA,KAAKH,OAAL,CAAa50D,YAAb,CAA0B,aAA1B,CAAyCk1D,MAAzC,EACA,KAAKL,OAAL,CAAa70D,YAAb,CAA0B,aAA1B,CAAyCm1D,MAAzC,EACA,KAAKL,OAAL,CAAa90D,YAAb,CAA0B,aAA1B,CAAyCo1D,MAAzC,EACA,CACD,CAZD,CAcA,SAASC,kBAAT,CAA4B3B,MAA5B,CAAoCh1B,aAApC,CAAmD1/B,IAAnD,CAAyDnT,EAAzD,CAA6D,CAC5D,KAAK6yC,aAAL,CAAqBA,aAArB,CACA,IAAIxM,cAAc,CAAG,KAAKwM,aAAL,CAAmBxM,cAAxC,CACA,IAAIyiC,mBAAmB,CAAGjsE,QAAQ,CAAC,qBAAD,CAAlC,CAEA;CACA,GAAIwpC,cAAc,CAAC,EAAD,CAAd,CAAmB9qC,CAAnB,CAAqBqD,CAArB,EAA0BynC,cAAc,CAAC,EAAD,CAAd,CAAmB9qC,CAAnB,CAAqBL,CAArB,GAA2B,CAArD,EAA0DmrC,cAAc,CAAC,EAAD,CAAd,CAAmB9qC,CAAnB,CAAqBqD,CAA/E,EAAoFynC,cAAc,CAAC,EAAD,CAAd,CAAmB9qC,CAAnB,CAAqBL,CAArB,GAA2B,CAA/G,EAAoHmrC,cAAc,CAAC,EAAD,CAAd,CAAmB9qC,CAAnB,CAAqBqD,CAAzI,EAA8IynC,cAAc,CAAC,EAAD,CAAd,CAAmB9qC,CAAnB,CAAqBL,CAArB,GAA2B,CAAzK,EAA8KmrC,cAAc,CAAC,EAAD,CAAd,CAAmB9qC,CAAnB,CAAqBqD,CAAnM,EAAwMynC,cAAc,CAAC,EAAD,CAAd,CAAmB9qC,CAAnB,CAAqBL,CAArB,GAA2B,CAAnO,EAAwOmrC,cAAc,CAAC,EAAD,CAAd,CAAmB9qC,CAAnB,CAAqBqD,CAA7P,EAAkQynC,cAAc,CAAC,EAAD,CAAd,CAAmB9qC,CAAnB,CAAqBL,CAArB,GAA2B,CAAjS,CAAoS,CACnS,KAAK6tE,OAAL,CAAe,KAAKU,YAAL,CAAkB,SAAlB,CAA6BX,mBAA7B,CAAf,CACA,CACD;CACA,GAAIziC,cAAc,CAAC,EAAD,CAAd,CAAmB9qC,CAAnB,CAAqBqD,CAArB,EAA0BynC,cAAc,CAAC,EAAD,CAAd,CAAmB9qC,CAAnB,CAAqBL,CAArB,GAA2B,CAArD,EAA0DmrC,cAAc,CAAC,EAAD,CAAd,CAAmB9qC,CAAnB,CAAqBqD,CAA/E,EAAoFynC,cAAc,CAAC,EAAD,CAAd,CAAmB9qC,CAAnB,CAAqBL,CAArB,GAA2B,CAA/G,EAAoHmrC,cAAc,CAAC,EAAD,CAAd,CAAmB9qC,CAAnB,CAAqBqD,CAAzI,EAA8IynC,cAAc,CAAC,EAAD,CAAd,CAAmB9qC,CAAnB,CAAqBL,CAArB,GAA2B,CAAzK,EAA8KmrC,cAAc,CAAC,EAAD,CAAd,CAAmB9qC,CAAnB,CAAqBqD,CAAnM,EAAwMynC,cAAc,CAAC,EAAD,CAAd,CAAmB9qC,CAAnB,CAAqBL,CAArB,GAA2B,CAAnO,EAAwOmrC,cAAc,CAAC,EAAD,CAAd,CAAmB9qC,CAAnB,CAAqBqD,CAA7P,EAAkQynC,cAAc,CAAC,EAAD,CAAd,CAAmB9qC,CAAnB,CAAqBL,CAArB,GAA2B,CAAjS,CAAoS,CACnS,KAAK8tE,OAAL,CAAe,KAAKS,YAAL,CAAkB,SAAlB,CAA6BX,mBAA7B,CAAf,CACA,CACD;CACA,GAAIziC,cAAc,CAAC,EAAD,CAAd,CAAmB9qC,CAAnB,CAAqBqD,CAArB,EAA0BynC,cAAc,CAAC,EAAD,CAAd,CAAmB9qC,CAAnB,CAAqBL,CAArB,GAA2B,CAArD,EAA0DmrC,cAAc,CAAC,EAAD,CAAd,CAAmB9qC,CAAnB,CAAqBqD,CAA/E,EAAoFynC,cAAc,CAAC,EAAD,CAAd,CAAmB9qC,CAAnB,CAAqBL,CAArB,GAA2B,CAA/G,EAAoHmrC,cAAc,CAAC,EAAD,CAAd,CAAmB9qC,CAAnB,CAAqBqD,CAAzI,EAA8IynC,cAAc,CAAC,EAAD,CAAd,CAAmB9qC,CAAnB,CAAqBL,CAArB,GAA2B,CAAzK,EAA8KmrC,cAAc,CAAC,EAAD,CAAd,CAAmB9qC,CAAnB,CAAqBqD,CAAnM,EAAwMynC,cAAc,CAAC,EAAD,CAAd,CAAmB9qC,CAAnB,CAAqBL,CAArB,GAA2B,CAAnO,EAAwOmrC,cAAc,CAAC,EAAD,CAAd,CAAmB9qC,CAAnB,CAAqBqD,CAA7P,EAAkQynC,cAAc,CAAC,EAAD,CAAd,CAAmB9qC,CAAnB,CAAqBL,CAArB,GAA2B,CAAjS,CAAoS,CACnS,KAAK+tE,OAAL,CAAe,KAAKQ,YAAL,CAAkB,SAAlB,CAA6BX,mBAA7B,CAAf,CACA,CACD;CACA,GAAIziC,cAAc,CAAC,EAAD,CAAd,CAAmB9qC,CAAnB,CAAqBqD,CAArB,EAA0BynC,cAAc,CAAC,EAAD,CAAd,CAAmB9qC,CAAnB,CAAqBL,CAArB,GAA2B,CAArD,EAA0DmrC,cAAc,CAAC,EAAD,CAAd,CAAmB9qC,CAAnB,CAAqBqD,CAA/E,EAAoFynC,cAAc,CAAC,EAAD,CAAd,CAAmB9qC,CAAnB,CAAqBL,CAArB,GAA2B,CAA/G,EAAoHmrC,cAAc,CAAC,EAAD,CAAd,CAAmB9qC,CAAnB,CAAqBqD,CAAzI,EAA8IynC,cAAc,CAAC,EAAD,CAAd,CAAmB9qC,CAAnB,CAAqBL,CAArB,GAA2B,CAAzK,EAA8KmrC,cAAc,CAAC,EAAD,CAAd,CAAmB9qC,CAAnB,CAAqBqD,CAAnM,EAAwMynC,cAAc,CAAC,EAAD,CAAd,CAAmB9qC,CAAnB,CAAqBL,CAArB,GAA2B,CAAnO,EAAwOmrC,cAAc,CAAC,EAAD,CAAd,CAAmB9qC,CAAnB,CAAqBqD,CAA7P,EAAkQynC,cAAc,CAAC,EAAD,CAAd,CAAmB9qC,CAAnB,CAAqBL,CAArB,GAA2B,CAAjS,CAAoS,CACnS,KAAKwuE,OAAL,CAAe,KAAKD,YAAL,CAAkB,SAAlB,CAA6BX,mBAA7B,CAAf,CACA,CACD;CACA,GAAI,KAAKC,OAAL,EAAgB,KAAKC,OAArB,EAAgC,KAAKC,OAArC,EAAgD,KAAKS,OAAzD,CAAkE,CACjEZ,mBAAmB,CAAC30D,YAApB,CAAiC,6BAAjC,CAAgE,MAAhE,EACA0zD,MAAM,CAACzgE,WAAP,CAAmB0hE,mBAAnB,EACA,CAED,GAAIziC,cAAc,CAAC,CAAD,CAAd,CAAkB9qC,CAAlB,CAAoBqD,CAApB,EAAyBynC,cAAc,CAAC,CAAD,CAAd,CAAkB9qC,CAAlB,CAAoBL,CAApB,GAA0B,CAAnD,EAAwDmrC,cAAc,CAAC,CAAD,CAAd,CAAkB9qC,CAAlB,CAAoBqD,CAA5E,EAAiFynC,cAAc,CAAC,CAAD,CAAd,CAAkB9qC,CAAlB,CAAoBL,CAApB,GAA0B,CAA3G,EAAgHmrC,cAAc,CAAC,CAAD,CAAd,CAAkB9qC,CAAlB,CAAoBqD,CAApI,EAAyIynC,cAAc,CAAC,CAAD,CAAd,CAAkB9qC,CAAlB,CAAoBL,CAApB,GAA0B,CAAnK,EAAwKmrC,cAAc,CAAC,CAAD,CAAd,CAAkB9qC,CAAlB,CAAoBqD,CAA5L,EAAiMynC,cAAc,CAAC,CAAD,CAAd,CAAkB9qC,CAAlB,CAAoBL,CAApB,GAA0B,CAA3N,EAAgOmrC,cAAc,CAAC,CAAD,CAAd,CAAkB9qC,CAAlB,CAAoBqD,CAApP,EAAyPynC,cAAc,CAAC,CAAD,CAAd,CAAkB9qC,CAAlB,CAAoBL,CAApB,GAA0B,CAAvR,CAA0R,CACzR4tE,mBAAmB,CAAGjsE,QAAQ,CAAC,qBAAD,CAA9B,CACAisE,mBAAmB,CAAC30D,YAApB,CAAiC,6BAAjC,CAAgE,MAAhE,EACA20D,mBAAmB,CAAC30D,YAApB,CAAiC,QAAjC,CAA2CnU,EAA3C,EACA6nE,MAAM,CAACzgE,WAAP,CAAmB0hE,mBAAnB,EACA,KAAKa,eAAL,CAAuB,KAAKF,YAAL,CAAkB,SAAlB,CAA6BX,mBAA7B,CAAvB,CACA,KAAKc,eAAL,CAAuB,KAAKH,YAAL,CAAkB,SAAlB,CAA6BX,mBAA7B,CAAvB,CACA,KAAKe,eAAL,CAAuB,KAAKJ,YAAL,CAAkB,SAAlB,CAA6BX,mBAA7B,CAAvB,CACA,CACD,CAEDU,kBAAkB,CAAC31E,SAAnB,CAA6B41E,YAA7B,CAA4C,SAAUt2E,IAAV,CAAgB21E,mBAAhB,CAAqC,CAChF,IAAIj1B,MAAM,CAAGh3C,QAAQ,CAAC1J,IAAD,CAArB,CACA0gD,MAAM,CAAC1/B,YAAP,CAAoB,MAApB,CAA4B,OAA5B,EACA20D,mBAAmB,CAAC1hE,WAApB,CAAgCysC,MAAhC,EACA,OAAOA,MAAP,CACA,CALD,CAOA21B,kBAAkB,CAAC31E,SAAnB,CAA6Bi2E,aAA7B,CAA6C,SAAUC,UAAV,CAAsBC,UAAtB,CAAkCC,KAAlC,CAAyCC,WAAzC,CAAsDC,WAAtD,CAAmE,CAC/G,IAAIjkD,GAAG,CAAG,CAAV,CACA,IAAIla,QAAQ,CAAG,GAAf,CACA,IAAIwO,IAAJ,CACA,IAAIviB,GAAG,CAAGT,IAAI,CAACS,GAAL,CAAS8xE,UAAT,CAAqBC,UAArB,CAAV,CACA,IAAIjyE,GAAG,CAAGP,IAAI,CAACO,GAAL,CAASgyE,UAAT,CAAqBC,UAArB,CAAV,CACA,IAAII,KAAK,CAAGtzE,KAAK,CAAC7C,IAAN,CAAW,IAAX,CAAiB,CAAEN,MAAM,CAAEqY,QAAV,CAAjB,CAAZ,CACA,IAAIq+D,UAAJ,CACA,IAAIhlD,GAAG,CAAG,CAAV,CACA,IAAIilD,WAAW,CAAGH,WAAW,CAAGD,WAAhC,CACA,IAAIK,UAAU,CAAGP,UAAU,CAAGD,UAA9B,CACA,MAAO7jD,GAAG,EAAI,GAAd,CAAmB,CAClB1L,IAAI,CAAG0L,GAAG,CAAG,GAAb,CACA,GAAI1L,IAAI,EAAIviB,GAAZ,CAAiB,CAChBoyE,UAAU,CAAGE,UAAU,CAAG,CAAb,CAAiBJ,WAAjB,CAA+BD,WAA5C,CACA,CAFD,QAEW1vD,IAAI,EAAIziB,GAAZ,CAAiB,CACvBsyE,UAAU,CAAGE,UAAU,CAAG,CAAb,CAAiBL,WAAjB,CAA+BC,WAA5C,CACA,CAFM,IAEA,CACNE,UAAU,CAAIH,WAAW,CAAGI,WAAW,CAAG9yE,IAAI,CAACC,GAAL,CAAS,CAAC+iB,IAAI,CAAGuvD,UAAR,EAAsBQ,UAA/B,CAA2C,EAAIN,KAA/C,CAA1C,CACA,CACDG,KAAK,CAAC/kD,GAAD,CAAL,CAAaglD,UAAb,CACAhlD,GAAG,EAAI,CAAP,CACAa,GAAG,EAAI,KAAOla,QAAQ,CAAG,CAAlB,CAAP,CACA,CACD,OAAOo+D,KAAK,CAACvvC,IAAN,CAAW,GAAX,CAAP,CACA,CAzBD,CA2BA2uC,kBAAkB,CAAC31E,SAAnB,CAA6Bkc,WAA7B,CAA2C,SAAU2lB,WAAV,CAAuB,CACjE,GAAIA,WAAW,EAAI,KAAKmd,aAAL,CAAmBtvB,IAAtC,CAA4C,CAC3C,IAAIjrB,GAAJ,CACA,IAAI+tC,cAAc,CAAG,KAAKwM,aAAL,CAAmBxM,cAAxC,CACA,GAAI,KAAKsjC,eAAL,GAAyBj0C,WAAW,EAAI2Q,cAAc,CAAC,CAAD,CAAd,CAAkB9qC,CAAlB,CAAoBgoB,IAAnC,EAA2C8iB,cAAc,CAAC,CAAD,CAAd,CAAkB9qC,CAAlB,CAAoBgoB,IAA/D,EAAuE8iB,cAAc,CAAC,CAAD,CAAd,CAAkB9qC,CAAlB,CAAoBgoB,IAA3F,EAAmG8iB,cAAc,CAAC,CAAD,CAAd,CAAkB9qC,CAAlB,CAAoBgoB,IAAvH,EAA+H8iB,cAAc,CAAC,CAAD,CAAd,CAAkB9qC,CAAlB,CAAoBgoB,IAA5K,CAAJ,CAAuL,CACtLjrB,GAAG,CAAG,KAAKwxE,aAAL,CAAmBzjC,cAAc,CAAC,CAAD,CAAd,CAAkB9qC,CAAlB,CAAoBL,CAAvC,CAA0CmrC,cAAc,CAAC,CAAD,CAAd,CAAkB9qC,CAAlB,CAAoBL,CAA9D,CAAiEmrC,cAAc,CAAC,CAAD,CAAd,CAAkB9qC,CAAlB,CAAoBL,CAArF,CAAwFmrC,cAAc,CAAC,CAAD,CAAd,CAAkB9qC,CAAlB,CAAoBL,CAA5G,CAA+GmrC,cAAc,CAAC,CAAD,CAAd,CAAkB9qC,CAAlB,CAAoBL,CAAnI,CAAN,CACA,KAAKyuE,eAAL,CAAqBx1D,YAArB,CAAkC,aAAlC,CAAiD7b,GAAjD,EACA,KAAKsxE,eAAL,CAAqBz1D,YAArB,CAAkC,aAAlC,CAAiD7b,GAAjD,EACA,KAAKuxE,eAAL,CAAqB11D,YAArB,CAAkC,aAAlC,CAAiD7b,GAAjD,EACA,CAED,GAAI,KAAKywE,OAAL,GAAiBrzC,WAAW,EAAI2Q,cAAc,CAAC,EAAD,CAAd,CAAmB9qC,CAAnB,CAAqBgoB,IAApC,EAA4C8iB,cAAc,CAAC,EAAD,CAAd,CAAmB9qC,CAAnB,CAAqBgoB,IAAjE,EAAyE8iB,cAAc,CAAC,EAAD,CAAd,CAAmB9qC,CAAnB,CAAqBgoB,IAA9F,EAAsG8iB,cAAc,CAAC,EAAD,CAAd,CAAmB9qC,CAAnB,CAAqBgoB,IAA3H,EAAmI8iB,cAAc,CAAC,EAAD,CAAd,CAAmB9qC,CAAnB,CAAqBgoB,IAAzK,CAAJ,CAAoL,CACnLjrB,GAAG,CAAG,KAAKwxE,aAAL,CAAmBzjC,cAAc,CAAC,EAAD,CAAd,CAAmB9qC,CAAnB,CAAqBL,CAAxC,CAA2CmrC,cAAc,CAAC,EAAD,CAAd,CAAmB9qC,CAAnB,CAAqBL,CAAhE,CAAmEmrC,cAAc,CAAC,EAAD,CAAd,CAAmB9qC,CAAnB,CAAqBL,CAAxF,CAA2FmrC,cAAc,CAAC,EAAD,CAAd,CAAmB9qC,CAAnB,CAAqBL,CAAhH,CAAmHmrC,cAAc,CAAC,EAAD,CAAd,CAAmB9qC,CAAnB,CAAqBL,CAAxI,CAAN,CACA,KAAK6tE,OAAL,CAAa50D,YAAb,CAA0B,aAA1B,CAAyC7b,GAAzC,EACA,CAED,GAAI,KAAK0wE,OAAL,GAAiBtzC,WAAW,EAAI2Q,cAAc,CAAC,EAAD,CAAd,CAAmB9qC,CAAnB,CAAqBgoB,IAApC,EAA4C8iB,cAAc,CAAC,EAAD,CAAd,CAAmB9qC,CAAnB,CAAqBgoB,IAAjE,EAAyE8iB,cAAc,CAAC,EAAD,CAAd,CAAmB9qC,CAAnB,CAAqBgoB,IAA9F,EAAsG8iB,cAAc,CAAC,EAAD,CAAd,CAAmB9qC,CAAnB,CAAqBgoB,IAA3H,EAAmI8iB,cAAc,CAAC,EAAD,CAAd,CAAmB9qC,CAAnB,CAAqBgoB,IAAzK,CAAJ,CAAoL,CACnLjrB,GAAG,CAAG,KAAKwxE,aAAL,CAAmBzjC,cAAc,CAAC,EAAD,CAAd,CAAmB9qC,CAAnB,CAAqBL,CAAxC,CAA2CmrC,cAAc,CAAC,EAAD,CAAd,CAAmB9qC,CAAnB,CAAqBL,CAAhE,CAAmEmrC,cAAc,CAAC,EAAD,CAAd,CAAmB9qC,CAAnB,CAAqBL,CAAxF,CAA2FmrC,cAAc,CAAC,EAAD,CAAd,CAAmB9qC,CAAnB,CAAqBL,CAAhH,CAAmHmrC,cAAc,CAAC,EAAD,CAAd,CAAmB9qC,CAAnB,CAAqBL,CAAxI,CAAN,CACA,KAAK8tE,OAAL,CAAa70D,YAAb,CAA0B,aAA1B,CAAyC7b,GAAzC,EACA,CAED,GAAI,KAAK2wE,OAAL,GAAiBvzC,WAAW,EAAI2Q,cAAc,CAAC,EAAD,CAAd,CAAmB9qC,CAAnB,CAAqBgoB,IAApC,EAA4C8iB,cAAc,CAAC,EAAD,CAAd,CAAmB9qC,CAAnB,CAAqBgoB,IAAjE,EAAyE8iB,cAAc,CAAC,EAAD,CAAd,CAAmB9qC,CAAnB,CAAqBgoB,IAA9F,EAAsG8iB,cAAc,CAAC,EAAD,CAAd,CAAmB9qC,CAAnB,CAAqBgoB,IAA3H,EAAmI8iB,cAAc,CAAC,EAAD,CAAd,CAAmB9qC,CAAnB,CAAqBgoB,IAAzK,CAAJ,CAAoL,CACnLjrB,GAAG,CAAG,KAAKwxE,aAAL,CAAmBzjC,cAAc,CAAC,EAAD,CAAd,CAAmB9qC,CAAnB,CAAqBL,CAAxC,CAA2CmrC,cAAc,CAAC,EAAD,CAAd,CAAmB9qC,CAAnB,CAAqBL,CAAhE,CAAmEmrC,cAAc,CAAC,EAAD,CAAd,CAAmB9qC,CAAnB,CAAqBL,CAAxF,CAA2FmrC,cAAc,CAAC,EAAD,CAAd,CAAmB9qC,CAAnB,CAAqBL,CAAhH,CAAmHmrC,cAAc,CAAC,EAAD,CAAd,CAAmB9qC,CAAnB,CAAqBL,CAAxI,CAAN,CACA,KAAK+tE,OAAL,CAAa90D,YAAb,CAA0B,aAA1B,CAAyC7b,GAAzC,EACA,CAED,GAAI,KAAKoxE,OAAL,GAAiBh0C,WAAW,EAAI2Q,cAAc,CAAC,EAAD,CAAd,CAAmB9qC,CAAnB,CAAqBgoB,IAApC,EAA4C8iB,cAAc,CAAC,EAAD,CAAd,CAAmB9qC,CAAnB,CAAqBgoB,IAAjE,EAAyE8iB,cAAc,CAAC,EAAD,CAAd,CAAmB9qC,CAAnB,CAAqBgoB,IAA9F,EAAsG8iB,cAAc,CAAC,EAAD,CAAd,CAAmB9qC,CAAnB,CAAqBgoB,IAA3H,EAAmI8iB,cAAc,CAAC,EAAD,CAAd,CAAmB9qC,CAAnB,CAAqBgoB,IAAzK,CAAJ,CAAoL,CACnLjrB,GAAG,CAAG,KAAKwxE,aAAL,CAAmBzjC,cAAc,CAAC,EAAD,CAAd,CAAmB9qC,CAAnB,CAAqBL,CAAxC,CAA2CmrC,cAAc,CAAC,EAAD,CAAd,CAAmB9qC,CAAnB,CAAqBL,CAAhE,CAAmEmrC,cAAc,CAAC,EAAD,CAAd,CAAmB9qC,CAAnB,CAAqBL,CAAxF,CAA2FmrC,cAAc,CAAC,EAAD,CAAd,CAAmB9qC,CAAnB,CAAqBL,CAAhH,CAAmHmrC,cAAc,CAAC,EAAD,CAAd,CAAmB9qC,CAAnB,CAAqBL,CAAxI,CAAN,CACA,KAAKwuE,OAAL,CAAav1D,YAAb,CAA0B,aAA1B,CAAyC7b,GAAzC,EACA,CACD,CACD,CA/BD,CAiCA,SAASkyE,mBAAT,CAA6B3C,MAA7B,CAAqCh1B,aAArC,CAAoD1/B,IAApD,CAA0DnT,EAA1D,CAA8DslC,MAA9D,CAAsE,CACrE,IAAImlC,gBAAgB,CAAG53B,aAAa,CAAChmC,SAAd,CAAwBI,UAAxB,CAAmCozB,YAAnC,CAAgDgqB,UAAvE,CACA,IAAIA,UAAU,CAAGxX,aAAa,CAACr1C,IAAd,CAAmBwjD,EAAnB,EAAyBypB,gBAA1C,CACA5C,MAAM,CAAC1zD,YAAP,CAAoB,GAApB,CAAyBk2C,UAAU,CAACrzC,CAAX,EAAgByzD,gBAAgB,CAACzzD,CAA1D,EACA6wD,MAAM,CAAC1zD,YAAP,CAAoB,GAApB,CAAyBk2C,UAAU,CAAC9qC,CAAX,EAAgBkrD,gBAAgB,CAAClrD,CAA1D,EACAsoD,MAAM,CAAC1zD,YAAP,CAAoB,OAApB,CAA6Bk2C,UAAU,CAACnlD,KAAX,EAAoBulE,gBAAgB,CAACvlE,KAAlE,EACA2iE,MAAM,CAAC1zD,YAAP,CAAoB,QAApB,CAA8Bk2C,UAAU,CAACllD,MAAX,EAAqBslE,gBAAgB,CAACtlE,MAApE,EACA,KAAK0tC,aAAL,CAAqBA,aAArB,CAEA,IAAI63B,cAAc,CAAG7tE,QAAQ,CAAC,gBAAD,CAA7B,CACA6tE,cAAc,CAACv2D,YAAf,CAA4B,IAA5B,CAAkC,aAAlC,EACAu2D,cAAc,CAACv2D,YAAf,CAA4B,QAA5B,CAAsCnU,EAAE,CAAG,gBAA3C,EACA0qE,cAAc,CAACv2D,YAAf,CAA4B,cAA5B,CAA4C,GAA5C,EACA,KAAKu2D,cAAL,CAAsBA,cAAtB,CACA7C,MAAM,CAACzgE,WAAP,CAAmBsjE,cAAnB,EAEA,IAAIC,QAAQ,CAAG9tE,QAAQ,CAAC,UAAD,CAAvB,CACA8tE,QAAQ,CAACx2D,YAAT,CAAsB,IAAtB,CAA4B,IAA5B,EACAw2D,QAAQ,CAACx2D,YAAT,CAAsB,IAAtB,CAA4B,GAA5B,EACAw2D,QAAQ,CAACx2D,YAAT,CAAsB,IAAtB,CAA4BnU,EAAE,CAAG,gBAAjC,EACA2qE,QAAQ,CAACx2D,YAAT,CAAsB,QAAtB,CAAgCnU,EAAE,CAAG,gBAArC,EACA,KAAK2qE,QAAL,CAAgBA,QAAhB,CACA9C,MAAM,CAACzgE,WAAP,CAAmBujE,QAAnB,EACA,IAAIC,OAAO,CAAG/tE,QAAQ,CAAC,SAAD,CAAtB,CACA+tE,OAAO,CAACz2D,YAAR,CAAqB,aAArB,CAAoC,SAApC,EACAy2D,OAAO,CAACz2D,YAAR,CAAqB,eAArB,CAAsC,GAAtC,EACAy2D,OAAO,CAACz2D,YAAR,CAAqB,QAArB,CAA+BnU,EAAE,CAAG,gBAApC,EACA,KAAK4qE,OAAL,CAAeA,OAAf,CACA/C,MAAM,CAACzgE,WAAP,CAAmBwjE,OAAnB,EAEA,IAAIC,WAAW,CAAGhuE,QAAQ,CAAC,aAAD,CAA1B,CACAguE,WAAW,CAAC12D,YAAZ,CAAyB,IAAzB,CAA+BnU,EAAE,CAAG,gBAApC,EACA6qE,WAAW,CAAC12D,YAAZ,CAAyB,KAAzB,CAAgCnU,EAAE,CAAG,gBAArC,EACA6qE,WAAW,CAAC12D,YAAZ,CAAyB,UAAzB,CAAqC,IAArC,EACA02D,WAAW,CAAC12D,YAAZ,CAAyB,QAAzB,CAAmCnU,EAAE,CAAG,gBAAxC,EACA6nE,MAAM,CAACzgE,WAAP,CAAmByjE,WAAnB,EAEA,IAAInD,OAAO,CAAG,KAAKH,eAAL,CACbvnE,EADa,CAEb,CACCA,EAAE,CAAG,gBADN,CAECslC,MAFD,CAFa,CAAd,CAOAuiC,MAAM,CAACzgE,WAAP,CAAmBsgE,OAAnB,EACA;CACA,CACDp0E,eAAe,CAAC,CAACg0E,mBAAD,CAAD,CAAwBkD,mBAAxB,CAAf,CAEAA,mBAAmB,CAAC32E,SAApB,CAA8Bkc,WAA9B,CAA4C,SAAU2lB,WAAV,CAAuB,CAClE,GAAIA,WAAW,EAAI,KAAKmd,aAAL,CAAmBtvB,IAAtC,CAA4C,CAC3C,GAAImS,WAAW,EAAI,KAAKmd,aAAL,CAAmBxM,cAAnB,CAAkC,CAAlC,EAAqC9qC,CAArC,CAAuCgoB,IAA1D,CAAgE,CAC/D,KAAKmnD,cAAL,CAAoBv2D,YAApB,CAAiC,cAAjC,CAAiD,KAAK0+B,aAAL,CAAmBxM,cAAnB,CAAkC,CAAlC,EAAqC9qC,CAArC,CAAuCL,CAAvC,CAA2C,CAA5F,EACA,CACD,GAAIw6B,WAAW,EAAI,KAAKmd,aAAL,CAAmBxM,cAAnB,CAAkC,CAAlC,EAAqC9qC,CAArC,CAAuCgoB,IAA1D,CAAgE,CAC/D,IAAIunD,GAAG,CAAG,KAAKj4B,aAAL,CAAmBxM,cAAnB,CAAkC,CAAlC,EAAqC9qC,CAArC,CAAuCL,CAAjD,CACA,KAAK0vE,OAAL,CAAaz2D,YAAb,CAA0B,aAA1B,CAAyCjY,QAAQ,CAAC1E,IAAI,CAAC0X,KAAL,CAAW47D,GAAG,CAAC,CAAD,CAAH,CAAS,GAApB,CAAD,CAA2BtzE,IAAI,CAAC0X,KAAL,CAAW47D,GAAG,CAAC,CAAD,CAAH,CAAS,GAApB,CAA3B,CAAqDtzE,IAAI,CAAC0X,KAAL,CAAW47D,GAAG,CAAC,CAAD,CAAH,CAAS,GAApB,CAArD,CAAjD,EACA,CACD,GAAIp1C,WAAW,EAAI,KAAKmd,aAAL,CAAmBxM,cAAnB,CAAkC,CAAlC,EAAqC9qC,CAArC,CAAuCgoB,IAA1D,CAAgE,CAC/D,KAAKqnD,OAAL,CAAaz2D,YAAb,CAA0B,eAA1B,CAA2C,KAAK0+B,aAAL,CAAmBxM,cAAnB,CAAkC,CAAlC,EAAqC9qC,CAArC,CAAuCL,CAAvC,CAA2C,GAAtF,EACA,CACD,GAAIw6B,WAAW,EAAI,KAAKmd,aAAL,CAAmBxM,cAAnB,CAAkC,CAAlC,EAAqC9qC,CAArC,CAAuCgoB,IAAtD,EAA8D,KAAKsvB,aAAL,CAAmBxM,cAAnB,CAAkC,CAAlC,EAAqC9qC,CAArC,CAAuCgoB,IAAzG,CAA+G,CAC9G,IAAIiW,QAAQ,CAAG,KAAKqZ,aAAL,CAAmBxM,cAAnB,CAAkC,CAAlC,EAAqC9qC,CAArC,CAAuCL,CAAtD,CACA,IAAIkuB,KAAK,CAAG,CAAC,KAAKypB,aAAL,CAAmBxM,cAAnB,CAAkC,CAAlC,EAAqC9qC,CAArC,CAAuCL,CAAvC,CAA2C,EAA5C,EAAkDxC,SAA9D,CACA,IAAIse,CAAC,CAAGwiB,QAAQ,CAAGhiC,IAAI,CAAC+qB,GAAL,CAAS6G,KAAT,CAAnB,CACA,IAAI7J,CAAC,CAAGia,QAAQ,CAAGhiC,IAAI,CAACkqB,GAAL,CAAS0H,KAAT,CAAnB,CACA,KAAKuhD,QAAL,CAAcx2D,YAAd,CAA2B,IAA3B,CAAiC6C,CAAjC,EACA,KAAK2zD,QAAL,CAAcx2D,YAAd,CAA2B,IAA3B,CAAiCoL,CAAjC,EACA,CACD,CACD,CArBD,CAuBA,IAAIwrD,gBAAgB,CAAG,EAAvB,CAEA,SAASC,eAAT,CAAyBC,UAAzB,CAAqCp4B,aAArC,CAAoD1/B,IAApD,CAA0D,CACzD,KAAKg1D,WAAL,CAAmB,KAAnB,CACA,KAAKt1B,aAAL,CAAqBA,aAArB,CACA,KAAKo4B,UAAL,CAAkBA,UAAlB,CACA,KAAK93D,IAAL,CAAYA,IAAZ,CACAA,IAAI,CAACigC,YAAL,CAAoBv2C,QAAQ,CAAC,GAAD,CAA5B,CACAsW,IAAI,CAACigC,YAAL,CAAkBhsC,WAAlB,CAA8B+L,IAAI,CAAC64B,YAAnC,EACA74B,IAAI,CAACigC,YAAL,CAAkBhsC,WAAlB,CAA8B+L,IAAI,CAACkgC,kBAAnC,EACAlgC,IAAI,CAAC44B,WAAL,CAAmB54B,IAAI,CAACigC,YAAxB,CACA,CAED43B,eAAe,CAACn3E,SAAhB,CAA0Bq3E,UAA1B,CAAuC,SAAUrqC,IAAV,CAAgB,CACtD,IAAIptC,CAAC,CAAG,CAAR,CACA,IAAIC,GAAG,CAAGq3E,gBAAgB,CAACp3E,MAA3B,CACA,MAAOF,CAAC,CAAGC,GAAX,CAAgB,CACf,GAAIq3E,gBAAgB,CAACt3E,CAAD,CAAhB,GAAwBotC,IAA5B,CAAkC,CACjC,OAAOkqC,gBAAgB,CAACt3E,CAAD,CAAvB,CACA,CACDA,CAAC,EAAI,CAAL,CACA,CACD,WAAA,CACA,CAVD,CAYAu3E,eAAe,CAACn3E,SAAhB,CAA0Bs3E,eAA1B,CAA4C,SAAUtqC,IAAV,CAAgBuqC,QAAhB,CAA0B,CACrE,IAAIpwC,UAAU,CAAG6F,IAAI,CAACmL,YAAL,CAAkBhR,UAAnC,CACA,GAAI,CAACA,UAAL,CAAiB,CAChB,OACA,CACD,IAAI66B,QAAQ,CAAG76B,UAAU,CAAC66B,QAA1B,CACA,IAAIpiE,CAAC,CAAG,CAAR,CACA,IAAIC,GAAG,CAAGmiE,QAAQ,CAACliE,MAAnB,CACA,MAAOF,CAAC,CAAGC,GAAX,CAAgB,CACf,GAAImiE,QAAQ,CAACpiE,CAAD,CAAR,GAAgBotC,IAAI,CAACmL,YAAzB,CAAuC,CACtC,MACA,CACDv4C,CAAC,EAAI,CAAL,CACA,CACD,IAAI43E,SAAJ,CACA,GAAI53E,CAAC,EAAIC,GAAG,CAAG,CAAf,CAAkB,CACjB23E,SAAS,CAAGxV,QAAQ,CAACpiE,CAAC,CAAG,CAAL,CAApB,CACA,CACD,IAAI63E,OAAO,CAAGzuE,QAAQ,CAAC,KAAD,CAAtB,CACAyuE,OAAO,CAACn3D,YAAR,CAAqB,MAArB,CAA6B,IAAMi3D,QAAnC,EACA,GAAIC,SAAJ,CAAe,CACdrwC,UAAU,CAACsuB,YAAX,CAAwBgiB,OAAxB,CAAiCD,SAAjC,EACA,CAFD,IAEO,CACNrwC,UAAU,CAAC5zB,WAAX,CAAuBkkE,OAAvB,EACA,CACD,CAzBD,CA2BAN,eAAe,CAACn3E,SAAhB,CAA0B03E,gBAA1B,CAA6C,SAAUp4D,IAAV,CAAgB0tB,IAAhB,CAAsB,CAClE,GAAI,CAAC,KAAKqqC,UAAL,CAAgBrqC,IAAhB,CAAL,CAA4B,CAC3B,IAAIuqC,QAAQ,CAAGxwE,eAAe,EAA9B,CACA,IAAI64C,MAAM,CAAG52C,QAAQ,CAAC,MAAD,CAArB,CACA42C,MAAM,CAACt/B,YAAP,CAAoB,IAApB,CAA0B0sB,IAAI,CAACqL,OAA/B,EACAuH,MAAM,CAACt/B,YAAP,CAAoB,WAApB,CAAiC,OAAjC,EACA42D,gBAAgB,CAAC/1E,IAAjB,CAAsB6rC,IAAtB,EACA,IAAI3zB,IAAI,CAAGiG,IAAI,CAAClG,UAAL,CAAgBC,IAA3B,CACAA,IAAI,CAAC9F,WAAL,CAAiBqsC,MAAjB,EACA,IAAI+3B,MAAM,CAAG3uE,QAAQ,CAAC,QAAD,CAArB,CACA2uE,MAAM,CAACr3D,YAAP,CAAoB,IAApB,CAA0Bi3D,QAA1B,EACA,KAAKD,eAAL,CAAqBtqC,IAArB,CAA2BuqC,QAA3B,EACAI,MAAM,CAACpkE,WAAP,CAAmBy5B,IAAI,CAACmL,YAAxB,EACA9+B,IAAI,CAAC9F,WAAL,CAAiBokE,MAAjB,EACA,IAAIF,OAAO,CAAGzuE,QAAQ,CAAC,KAAD,CAAtB,CACAyuE,OAAO,CAACn3D,YAAR,CAAqB,MAArB,CAA6B,IAAMi3D,QAAnC,EACA33B,MAAM,CAACrsC,WAAP,CAAmBkkE,OAAnB,EACAzqC,IAAI,CAACrjC,IAAL,CAAUw2C,EAAV,CAAe,KAAf,CACAnT,IAAI,CAAC1uB,IAAL,GACA,CACDgB,IAAI,CAACqhC,QAAL,CAAc3T,IAAI,CAACqL,OAAnB,EACA,CArBD,CAuBA8+B,eAAe,CAACn3E,SAAhB,CAA0BwzE,UAA1B,CAAuC,UAAY,CAClD,IAAIhoD,GAAG,CAAG,KAAKwzB,aAAL,CAAmBxM,cAAnB,CAAkC,CAAlC,EAAqC9qC,CAArC,CAAuCL,CAAjD,CACA,IAAIu8B,QAAQ,CAAG,KAAKtkB,IAAL,CAAUlT,IAAV,CAAew3B,QAA9B,CACA,IAAIhkC,CAAC,CAAG,CAAR,CACA,IAAIC,GAAG,CAAG+jC,QAAQ,CAAC9jC,MAAnB,CACA,MAAOF,CAAC,CAAGC,GAAX,CAAgB,CACf,GAAI+jC,QAAQ,CAAChkC,CAAD,CAAR,EAAegkC,QAAQ,CAAChkC,CAAD,CAAR,CAAY+J,IAAZ,CAAiB6hB,GAAjB,GAAyBA,GAA5C,CAAiD,CAChD,KAAKksD,gBAAL,CAAsB,KAAKp4D,IAA3B,CAAiCskB,QAAQ,CAAChkC,CAAD,CAAzC,EACA,CACDA,CAAC,EAAI,CAAL,CACA,CACD,KAAK00E,WAAL,CAAmB,IAAnB,CACA,CAZD,CAcA6C,eAAe,CAACn3E,SAAhB,CAA0Bkc,WAA1B,CAAwC,UAAY,CACnD,GAAI,CAAC,KAAKo4D,WAAV,CAAuB,CACtB,KAAKd,UAAL,GACA,CACD,CAJD,CAMA,SAASoE,qBAAT,CAA+B5D,MAA/B,CAAuCh1B,aAAvC,CAAsD1/B,IAAtD,CAA4DnT,EAA5D,CAAgE;CAE/D6nE,MAAM,CAAC1zD,YAAP,CAAoB,GAApB,CAAyB,OAAzB,EACA0zD,MAAM,CAAC1zD,YAAP,CAAoB,GAApB,CAAyB,OAAzB,EACA0zD,MAAM,CAAC1zD,YAAP,CAAoB,OAApB,CAA6B,MAA7B,EACA0zD,MAAM,CAAC1zD,YAAP,CAAoB,QAApB,CAA8B,MAA9B,EAEA,KAAK0+B,aAAL,CAAqBA,aAArB,CACA,IAAI63B,cAAc,CAAG7tE,QAAQ,CAAC,gBAAD,CAA7B,CACA6tE,cAAc,CAACv2D,YAAf,CAA4B,QAA5B,CAAsCnU,EAAtC,EACA6nE,MAAM,CAACzgE,WAAP,CAAmBsjE,cAAnB,EACA,KAAKA,cAAL,CAAsBA,cAAtB,CACA,CAEDe,qBAAqB,CAAC53E,SAAtB,CAAgCkc,WAAhC,CAA8C,SAAU2lB,WAAV,CAAuB,CACpE,GAAIA,WAAW,EAAI,KAAKmd,aAAL,CAAmBtvB,IAAtC,CAA4C;CAE3C,IAAImoD,kBAAkB,CAAG,GAAzB,CACA,IAAIC,KAAK,CAAG,KAAK94B,aAAL,CAAmBxM,cAAnB,CAAkC,CAAlC,EAAqC9qC,CAArC,CAAuCL,CAAvC,CAA2CwwE,kBAAvD,CAEA;CACA;CACA;CACA;CACA;CACA;CACA,IAAIE,UAAU,CAAG,KAAK/4B,aAAL,CAAmBxM,cAAnB,CAAkC,CAAlC,EAAqC9qC,CAArC,CAAuCL,CAAxD,CACA,IAAI2wE,MAAM,CAAID,UAAU,EAAI,CAAf,CAAoB,CAApB,CAAwBD,KAArC,CAA4C;CAC5C,IAAIG,MAAM,CAAIF,UAAU,EAAI,CAAf,CAAoB,CAApB,CAAwBD,KAArC,CAA4C;CAE5C,KAAKjB,cAAL,CAAoBv2D,YAApB,CAAiC,cAAjC,CAAiD03D,MAAM,CAAG,GAAT,CAAeC,MAAhE,EAEA;CACA;CACA;CACA;CACA,IAAIC,QAAQ,CAAI,KAAKl5B,aAAL,CAAmBxM,cAAnB,CAAkC,CAAlC,EAAqC9qC,CAArC,CAAuCL,CAAvC,EAA4C,CAA7C,CAAkD,MAAlD,CAA2D,WAA1E,CAAuF;CACvF,KAAKwvE,cAAL,CAAoBv2D,YAApB,CAAiC,UAAjC,CAA6C43D,QAA7C,EACA,CACD,CAzBD,CA2BA;CACAlhE,gBAAgB,CAAC,QAAD,CAAW0nD,cAAX,CAAhB,CACA1nD,gBAAgB,CAAC,MAAD,CAASwuD,cAAT,CAAhB,CACAxuD,gBAAgB,CAAC,KAAD,CAAQ++C,WAAR,CAAhB,CAEA;CACAz3B,cAAc,CAACE,gBAAf,CAAgC,IAAhC,CAAsCO,YAAtC,EACAT,cAAc,CAACE,gBAAf,CAAgC,IAAhC,CAAsCqC,sBAAtC,EACAvC,cAAc,CAACE,gBAAf,CAAgC,IAAhC,CAAsCiE,gBAAtC,EACAnE,cAAc,CAACE,gBAAf,CAAgC,IAAhC,CAAsC6G,oBAAtC,EAEA;CACA18B,oBAAoB,CAAC88D,WAAD,CAApB,CACAyN,YAAY,GACZM,UAAU,GAEV;CACAr0B,cAAc,CAAC,EAAD,CAAK40B,aAAL,CAAoB,IAApB,CAAd,CACA50B,cAAc,CAAC,EAAD,CAAKi1B,aAAL,CAAoB,IAApB,CAAd,CACAj1B,cAAc,CAAC,EAAD,CAAKk1B,eAAL,CAAsB,KAAtB,CAAd,CACAl1B,cAAc,CAAC,EAAD,CAAK61B,gBAAL,CAAuB,IAAvB,CAAd,CACA71B,cAAc,CAAC,EAAD,CAAKw2B,kBAAL,CAAyB,IAAzB,CAAd,CACAx2B,cAAc,CAAC,EAAD,CAAKw3B,mBAAL,CAA0B,IAA1B,CAAd,CACAx3B,cAAc,CAAC,EAAD,CAAKg4B,eAAL,CAAsB,KAAtB,CAAd,CACAh4B,cAAc,CAAC,EAAD,CAAKy4B,qBAAL,CAA4B,IAA5B,CAAd,CAEA;;;;;;;;"}