{"version":3,"sources":["../node_modules/react/jsx-runtime.js","../node_modules/react/index.js","../node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/webpack/buildin/amd-options.js","../node_modules/dateformat/lib/dateformat.js","../node_modules/webpack/buildin/module.js","../node_modules/webpack/buildin/global.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/esm/regeneratorRuntime.js","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/@babel/runtime/helpers/esm/get.js","../node_modules/@babel/runtime/helpers/esm/superPropBase.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/react-dom/index.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/createSuper.js","../node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../node_modules/object-assign/index.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/platform/platform.js","../node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../node_modules/lottie-web/build/player/lottie.js","../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/scheduler/index.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/process/browser.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js"],"names":["module","exports","require","_createForOfIteratorHelper","o","allowArrayLike","it","Symbol","iterator","Array","isArray","length","i","F","s","n","done","value","e","_e","f","TypeError","err","normalCompletion","didErr","call","step","next","_e2","_slicedToArray","arr","_i","_s","_x","_r","_arr","_n","_d","Object","push","unsupportedIterableToArray","__webpack_amd_options__","token","timezone","timezoneClip","dateFormat","date","mask","utc","gmt","arguments","test","undefined","Date","isNaN","maskSlice","String","masks","slice","_","D","_m","y","_H","_M","_L","_o","getTimezoneOffset","_W","getWeek","flags","d","dd","pad","ddd","i18n","dayNames","DDD","getDayName","m","dayName","short","dddd","DDDD","mm","mmm","monthNames","mmmm","yy","yyyy","h","hh","H","HH","M","MM","ss","l","L","Math","floor","t","timeNames","tt","T","TT","Z","formatTimezone","abs","p","S","W","WW","N","getDayOfWeek","replace","match","default","shortDate","paddedShortDate","mediumDate","longDate","fullDate","shortTime","mediumTime","longTime","isoDate","isoTime","isoDateTime","isoUtcDateTime","expiresHeaderFormat","val","len","padStart","_ref","_ref$short","_short","today","yesterday","setDate","tomorrow","targetThursday","getFullYear","getMonth","getDate","getDay","firstThursday","ds","setHours","getHours","weekDiff","dow","pop","webpackPolyfill","deprecate","paths","children","defineProperty","enumerable","get","g","this","Function","window","_assertThisInitialized","self","ReferenceError","_regeneratorRuntime","Op","prototype","hasOwn","hasOwnProperty","obj","key","desc","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","configurable","writable","wrap","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","create","context","Context","makeInvokeMethod","tryCatch","fn","arg","type","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","forEach","method","_invoke","AsyncIterator","PromiseImpl","invoke","resolve","reject","record","result","__await","then","unwrapped","error","previousPromise","callInvokeWithMethodAndArg","state","Error","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","methodName","info","resultName","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","iterable","iteratorMethod","displayName","isGeneratorFunction","genFun","ctor","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","keys","object","reverse","skipTempReset","prev","charAt","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","_getPrototypeOf","bind","_typeof","_classCallCheck","instance","Constructor","Reflect","target","property","receiver","base","getOwnPropertyDescriptor","apply","_defineProperties","props","descriptor","_createClass","protoProps","staticProps","checkDCE","__REACT_DEVTOOLS_GLOBAL_HOOK__","console","_unsupportedIterableToArray","minLen","toString","from","_arrayLikeToArray","arr2","_createSuper","Derived","hasNativeReflectConstruct","construct","sham","Proxy","Boolean","valueOf","Super","NewTarget","assertThisInitialized","_toPropertyKey","input","hint","prim","toPrimitive","res","Number","getOwnPropertySymbols","propIsEnumerable","propertyIsEnumerable","assign","test1","getOwnPropertyNames","test2","fromCharCode","map","join","test3","split","letter","shouldUseNative","source","symbols","to","toObject","_setPrototypeOf","_inherits","subClass","superClass","objectTypes","root","freeExports","freeModule","nodeType","freeGlobal","global","maxSafeInteger","pow","reOpera","objectProto","capitalize","string","toUpperCase","format","trim","forOwn","callback","getClassOf","qualify","reduce","array","accumulator","index","each","platform","parse","ua","isCustomContext","nav","navigator","userAgent","data","isSpecialCasedOS","likeChrome","objectClass","airRuntimeClass","enviroClass","javaClass","java","phantomClass","rhino","environment","alpha","beta","doc","document","opera","operamini","operaClass","arch","description","prerelease","useFeatures","version","layout","guess","RegExp","pattern","exec","label","guesses","getName","product","getProduct","manufacturer","getManufacturer","os","cleanupOS","getOS","getVersion","patterns","unshift","indexOf","parseFloat","isHostType","lang","System","getProperty","system","process","browser","versions","electron","node","nw","runtime","flash","Capabilities","phantom","major","minor","patch","documentMode","toFixed","appMinorVersion","external","parseInt","family","architecture","cpuClass","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","args","factory","svgNS","locationHref","_useWebWorker","initialDefaultFrame","setWebWorker","flag","getWebWorker","setLocationHref","getLocationHref","createTag","createElement","extendPrototype","sources","destination","sourcePrototype","attr","getDescriptor","prop","createProxyFunction","ProxyFunction","audioControllerFactory","AudioController","audioFactory","audios","_volume","_isMuted","addAudio","audio","pause","resume","setRate","rateValue","createAudio","assetPath","Howl","src","isPlaying","play","seek","playing","rate","setVolume","setAudioFactory","_updateVolume","mute","unmute","getVolume","volume","createTypedArray","createRegularArray","Uint8ClampedArray","Float32Array","Int16Array","createSizedArray","_typeof$6","subframeEnabled","expressionsPlugin","expressionsInterfaces","idPrefix$1","isSafari","_shouldRoundValues","bmPow","bmSqrt","sqrt","bmFloor","bmMax","max","bmMin","min","BMMath","ProjectInterface$1","propertyNames","random","absArr","defaultCurveSegments","degToRads","PI","roundCorner","roundValues","bmRnd","round","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","BMRenderFrameErrorEvent","nativeError","BMConfigErrorEvent","BMAnimationConfigErrorEvent","createElementID","_count","HSVtoRGB","v","r","b","q","RGBtoHSV","addSaturationToRGB","color","offset","hsv","addBrightnessToRGB","addHueToRGB","rgbToHex","hex","colorMap","setSubframeEnabled","getSubframeEnabled","setExpressionsPlugin","getExpressionsPlugin","setExpressionInterfaces","getExpressionInterfaces","setDefaultCurveSegments","getDefaultCurveSegments","setIdPrefix","getIdPrefix","createNS","createElementNS","_typeof$5","dataManager","workerFn","workerInstance","_counterId","processes","workerProxy","onmessage","postMessage","path","_workerSelf","setupWorker","Worker","Blob","blob","url","URL","createObjectURL","createWorker","completeLayers","layers","comps","layerData","j","jLen","k","kLen","completed","hasMask","maskProps","masksProperties","pt","convertPathsToAbsoluteValues","ty","findCompLayers","refId","completeShapes","shapes","completeText","id","comp","findComp","__used","JSON","stringify","ks","checkVersion","minimum","animVersionString","animVersion","checkText","minimumVersion","updateTextLayer","textLayer","documentData","iterateLayers","animationData","assets","checkChars","chars","charData","ip","op","st","sr","a","sk","sa","checkPathProperties","pathData","checkColors","iterateShapes","c","checkShapes","completeClosingShapes","closed","cl","moduleOb","__complete","completeChars","dataFunctionManager","assetLoader","formatResponse","xhr","contentTypeHeader","getResponseHeader","responseType","response","responseText","load","fullPath","errorCallback","XMLHttpRequest","onreadystatechange","readyState","status","open","send","completeData","payload","animation","event","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","getBBox","_imageLoaded","clearInterval","createFootageData","ob","footageData","_footageLoaded","ImagePreloaderFactory","images","loadAssets","cb","_createImageData","setAssetsPath","setPath","loadedImages","loadedFootages","destroy","getAsset","createImgData","crossOrigin","addEventListener","createImageData","setAttributeNS","_elementHelper","append","appendChild","setCacheType","elementHelper","BaseEvent","triggerEvent","eventName","_cbs","callbacks","removeEventListener","splice","markerParser","parsePayloadLines","line","lines","keysCount","_markers","markers","_marker","markerData","time","tm","duration","dr","cm","__","ProjectInterface","registerComposition","compositions","_thisProjectFunction","nm","prepareFrame","xt","currentFrame","compInterface","renderers","registerRenderer","getRenderer","getRegisteredRenderer","_typeof$4","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","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","fr","searchExtraCompositions","updaFrameModifier","waitForFontsLoaded","triggerConfigError","setTimeout","rendererType","initItems","gotoFrame","resize","_width","_height","updateContainerSize","setSubframe","renderFrame","triggerRenderFrameError","togglePause","setCurrentRawFrameValue","getMarkerData","markerName","marker","goToAndStop","isFrame","numValue","frameModifier","goToAndPlay","playSegments","advanceTime","nextValue","_isComplete","checkSegments","adjustSegment","setSpeed","setDirection","setSegment","init","end","pendingFrame","forceFlag","resetSegments","onEnterFrame","onLoopComplete","onSegmentStart","onDestroy","setLoop","isLooping","getPath","getAssetData","hide","show","getDuration","updateDocumentData","getElementByPath","animationManager","registeredAnimations","initTime","playingAnimationsNum","_stopped","_isFrozen","removeElement","ev","animItem","subtractPlayingCount","registerAnimation","elem","addPlayingCount","activate","nowTime","elapsedTime","requestAnimationFrame","first","searchAnimations","standalone","animElements","concat","getElementsByClassName","lenAnims","setAttribute","body","getElementsByTagName","innerText","div","freeze","unfreeze","getRegisteredAnimations","animations","BezierFactory","str","beziers","bezEasing","BezierEasing","kSplineTableSize","kSampleStepSize","float32ArraySupported","A","aA1","aA2","B","C","calcBezier","aT","getSlope","points","_p","_mSampleValues","_precomputed","x","mX1","mY1","mX2","mY2","_precompute","_getTForX","_calcSampleValues","aX","mSampleValues","intervalStart","currentSample","lastSample","guessForT","initialSlope","aGuessT","currentSlope","newtonRaphsonIterate","aA","aB","currentX","currentT","binarySubdivide","pooling","poolFactory","initialLength","_create","_release","_length","_maxLength","pool","newElement","release","bezierLengthPool","addedLength","percents","lengths","segmentsLengthPool","totalLength","bezFunction","math","pointOnLine2D","x1","y1","x2","y2","x3","y3","det1","getBezierLength","pt1","pt2","pt3","pt4","ptCoord","perc","ptDistance","curveSegments","point","lastPoint","lengthData","BezierData","segmentLength","PointData","partial","partialLength","buildBezierData","storedData","bezierName","bezierData","getDistancePerc","initPos","lengthPos","lPerc","dir","bezierSegmentPoints","getSegmentsLength","shapeData","segmentsLength","pathV","pathO","pathI","getNewSegment","startPerc","endPerc","t0","t1","u0","u1","u0u0u0","t0u0u0_3","t0t0u0_3","t0t0t0","u0u0u1","t0u0u1_3","t0t0u1_3","t0t0t1","u0u1u1","t0u1u1_3","t0t1u1_3","t0t1t1","u1u1u1","t1u1u1_3","t1t1u1_3","t1t1t1","getPointInSegment","percent","pointOnLine3D","z1","z2","z3","diffDist","dist1","dist2","dist3","bez","initFrame","mathAbs","interpolateValue","frameNum","caching","newValue","offsetTime","propType","pv","keyData","nextKeyData","keyframeMetadata","fnc","iterationIndex","lastIndex","keyframes","keyframesMetadata","endValue","nextKeyTime","keyTime","ti","ind","__fnct","getBezierEasing","segmentPerc","distanceInLine","lastFrame","_lastKeyframeIndex","_lastAddedLength","_lastPoint","outX","outY","inX","inY","keyValue","sh","quaternionToEuler","slerp","createQuaternion","omega","cosom","sinom","scale0","scale1","out","ax","ay","az","aw","bx","by","bz","bw","acos","sin","quat","qx","qy","qz","qw","heading","atan2","attitude","asin","bank","c1","cos","c2","c3","s1","s2","s3","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","PropertyFactory","getProp","sid","slotManager","DynamicPropertyContainer","dynamicProperties","_isAnimated","iterateDynamicProperties","initDynamicPropertyContainer","pointPool","ShapePath","setPathData","setLength","doubleArrayLength","setXYAt","pos","setTripleAt","vX","vY","oX","oY","iX","iY","newPath","vertices","outPoints","inPoints","cnt","shapePool","shapePath","clone","shape","cloned","ShapeCollection","addShape","releaseShapes","shapeCollectionPool","newShapeCollection","shapeCollection","ShapePropertyFactory","interpolateShape","previousValue","keyPropS","keyPropE","isHold","vertexValue","interpolateShapeCurrentTime","resetShape","localShapeCollection","shape1","shape2","shapesEqual","ShapeProperty","KeyframedShapeProperty","EllShapeProperty","cPoint","EllShapePropertyFactory","convertEllToPath","p0","p1","s0","_cw","_v","StarShapeProperty","StarShapePropertyFactory","sy","ir","is","convertToPath","convertStarToPath","convertPolygonToPath","or","rad","roundness","perimSegment","numPts","angle","longFlag","longRad","shortRad","longRound","shortRound","longPerimSegment","shortPerimSegment","currentAng","ox","oy","RectShapeProperty","RectShapePropertyFactory","convertRectToPath","v0","v1","Matrix","_cos","_sin","_tan","tan","_rnd","rotate","mCos","mSin","_t","rotateX","rotateY","rotateZ","shear","sx","skew","skewFromAxis","scale","sz","setTransform","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","z","applyToX","applyToY","applyToZ","getInverseMatrix","determinant","inverseMatrix","inversePoint","applyToPointArray","inversePoints","pts","retPts","applyToTriplePoints","p4","p5","p12","p13","applyToPointStringified","toCSS","cssValue","roundMatrixProperty","to2dCSS","_typeof$3","lottie","setLocation","href","setSubframeRendering","setPrefix","prefix","setQuality","inBrowser","installPlugin","plugin","getFactory","checkReady","readyStateCheckInterval","getQueryVariable","variable","vars","queryString","pair","decodeURIComponent","useWebWorker","setIDPrefix","__getFactory","scripts","myScript","bodymovin","ShapeModifiers","modifiers","registerModifier","getModifier","ShapeModifier","TrimModifier","PuckerAndBloatModifier","initModifierProperties","addShapeToModifier","setAsAnimated","processKeys","sValue","eValue","pathsData","calculateShapeEdges","shapeLength","totalModifierLength","segmentOb","shapeSegments","shapeS","shapeE","releasePathsData","processShapes","shapePaths","totalShapeLength","edges","newShapesData","addShapes","lastShape","addPaths","newPaths","addSegment","newShape","addSegmentFromArray","shapeSegment","currentLengthData","segmentCount","amount","processPath","centerPoint","pathLength","clonedPath","TransformPropertyFactory","defaultVector","TransformProperty","pre","appliedTransformations","px","py","pz","rx","ry","rz","_isDirty","applyToMatrix","mat","forceRender","precalculateMatrix","autoOriented","v2","getValueAtTime","autoOrient","_addDynamicProperty","getTransformProperty","RepeaterModifier","RoundCornersModifier","floatEqual","floatZero","lerp","lerpPoint","quadRoots","singleRoot","delta","polynomialCoefficients","p3","singlePoint","PolynomialBezier","linearize","pointEqual","coeffx","coeffy","extrema","intersectData","t2","box","boundingBox","cx","cy","splitData","boxIntersect","intersectsImpl","depth","tolerance","intersections","maxRecursion","d1s","d2s","crossProduct","lineIntersection","start1","end1","start2","end2","v3","v4","polarOffset","pointDistance","hypot","ZigZagModifier","setPoint","outputBezier","amplitude","outAmplitude","inAmplitude","angO","angI","getPerpendicularVector","vector","rot","getProjectingAngle","cur","prevIndex","nextIndex","pVector","zigZagCorner","frequency","pointType","prevPoint","nextPoint","prevDist","nextDist","zigZagSegment","dist","normalAngle","linearOffset","offsetSegment","p1a","p1b","p2b","p2a","joinLines","seg1","seg2","lineJoin","miterLimit","angleOut","tangentAngle","angleIn","center","radius","intersection","getIntersection","intersect","pruneSegmentIntersection","outa","outb","pruneIntersections","offsetSegmentSplit","right","mid","flex","inflectionPoints","OffsetPathModifier","getFontProperties","fontData","styles","fStyle","fWeight","toLowerCase","weight","tr","so","eo","pMatrix","rMatrix","sMatrix","tMatrix","matrix","applyTransforms","inv","scaleX","scaleY","elemsData","_currentCopies","_elements","_groups","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","rd","currentV","currentI","currentO","closerV","distance","newPosPerc","derivative","denom","tcusp","square","filter","p10","p11","p20","p21","bounds","bottom","other","shapeSegmentInverted","pointsType","count","ml","lj","inputBezier","multiSegments","lastSeg","multiSegment","FontManager","emptyChar","w","size","combinedCharacters","surrogateModifiers","zeroWidthJoiner","setUpNode","font","parentNode","fontFamily","fontSize","fontVariant","fontStyle","fontWeight","letterSpacing","offsetWidth","familyArray","enabledFamilies","trimFontOptions","parent","createHelper","def","helper","engine","fontProps","tHelper","fFamily","textContent","fClass","tCanvasHelper","OffscreenCanvas","measureText","text","getComputedTextLength","Font","typekitLoaded","_warned","now","setIsLoadedBinded","setIsLoaded","checkLoadedFontsBinded","checkLoadedFonts","isModifier","firstCharCode","secondCharCode","sum","isZeroWidthJoiner","isCombinedCharacter","_char3","fontPrototype","found","ch","list","cache","fontArr","_pendingFonts","loadedSelector","shouldLoadFont","loaded","monoCase","sansCase","fPath","fOrigin","querySelectorAll","rel","sc","getCharData","_char","charCodeAt","warn","getFontByName","fName","_char2","fontName","doubleSize","singleSize","loadedCount","removeChild","SlotManager","slotFactory","RenderableElement","slots","initRenderable","isInRange","hidden","isTransparent","renderableComponents","addRenderableComponent","component","removeRenderableComponent","prepareRenderableFrame","num","checkLayerLimits","checkTransparency","finalTransform","mProp","renderConfig","hideOnTransparent","renderRenderable","sourceRectAtTime","getLayerSize","textData","getBlendMode","blendModeEnums","mode","SliderEffect","AngleEffect","ColorEffect","PointEffect","LayerIndexEffect","MaskIndexEffect","CheckboxEffect","NoValueEffect","EffectsManager","effects","ef","effectElements","effectItem","GroupEffect","BaseElement","FrameElement","FootageElement","imageLoader","initBaseData","AudioElement","_isPlaying","_canPlay","_currentTime","_volumeMultiplier","_previousVolume","_placeholder","lv","au","BaseRenderer","TransformElement","MaskElement","maskElement","viewData","solidPath","rect","expansor","feMorph","properties","currentMasks","layerId","maskType","maskRef","getShapeProp","lastPath","filterID","expan","lastOperator","filterId","lastRadius","createLayerSolidPath","invRect","drawPath","maskedElement","eff","checkMasks","LayerExpressionInterface","EffectsExpressionInterface","ShapeExpressionInterface","TextExpressionInterface","CompExpressionInterface","layerInterface","maskManager","registerMaskInterface","effectsInterface","createEffectsInterface","registerEffectsInterface","shapeInterface","shapesData","itemsData","content","textInterface","setBlendMode","blendModeValue","bm","baseElement","layerElement","effectsManager","getType","prepareProperties","isVisible","_isParent","getBaseElement","FootageInterface","getFootageData","timeRemapped","totalVolume","volumeValue","checkLayers","buildItem","checkPendingElements","createItem","layer","createImage","createComp","createSolid","createNull","createShape","createText","createCamera","createFootage","buildAllItems","pInterface","progressiveLoad","buildElementParenting","parentName","hierarchy","setAsParent","setHierarchy","addPendingElement","pendingElements","getElementById","pathValue","setupGlobalData","fontsContainer","animationItem","compSize","initTransform","_matMdf","_opMdf","ao","renderTransform","finalMat","globalToLocal","transforms","ptNew","mHelper","getMaskProperty","isFirstFrame","getMaskelement","pathNodes","pathString","pathShapeValue","filtersFactory","filId","skipCoordinates","fil","feColorMatrix","featureSupport","svgLumaHidden","offscreenCanvas","registeredEffects","idPrefix","SVGEffects","filterManager","createFilter","filters","Effect","effect","countsAsEffect","registerEffect","SVGBaseElement","HierarchyElement","RenderableDOMElement","IImageElement","initElement","sourceRect","ProcessedElement","IShapeElement","initRendererElement","createContainerElements","matteElement","transformedElement","_sizeChanged","layerElementParent","td","matteMasks","gg","ln","hd","cp","clipId","cpGroup","renderElement","destroyBaseElement","createRenderableComponents","renderableEffectsManager","getMatte","matteType","useElement","masker","createAlphaToLuminanceFilter","maskGroup","maskGrouper","feCTr","feFunc","alphaRect","setMatte","initHierarchy","checkParenting","createContent","renderInnerContent","innerElem","pr","imagePreserveAspectRatio","addShapeToModifiers","shapeModifiers","isShapeInAnimatedModifiers","isAnimatedWithShape","renderModifiers","searchProcessedElement","processedElements","addProcessedElement","lineCapEnum","lineJoinEnum","SVGShapeData","transformers","level","caches","lStr","lvl","SVGStyleData","pElem","msElem","DashProperty","dataProps","dashStr","dashArray","dashoffset","SVGStrokeStyleData","styleOb","SVGFillStyleData","SVGNoStyleData","GradientProperty","cLength","_cmdf","_omdf","_collapsable","checkCollapsable","_hasOpacity","SVGGradientFillStyleData","initGradientData","SVGGradientStrokeStyleData","ShapeGroupData","prevViewData","gr","SVGTransformData","comparePoints","stops","setGradientData","setGradientOpacity","pathElement","gradientId","gfill","gf","cst","opacityId","maskId","opFill","lc","of","ms","ost","buildShapeString","shapeString","SVGElementsRenderer","_identityMatrix","_matrixHelper","renderContentTransform","styleData","itemData","renderNoop","renderPath","pathStringTransformed","redraw","iterations","lLen","renderFill","styleElem","renderGradientStroke","renderGradient","renderStroke","hasOpacity","attr1","attr2","cValues","oValues","ang","createRenderFunction","SVGShapeElement","stylesList","animatedContents","LetterProps","sw","fc","TextProperty","_frameId","keysIndex","canResize","minimumFontSize","currentData","ascent","boxWidth","defaultBoxWidth","justifyOffset","lh","lineWidths","ls","ps","fillColorAnim","strokeColorAnim","strokeWidthAnim","yOffset","finalSize","finalText","finalLineHeight","copyData","searchProperty","completeTextData","initSecondaryElement","identityMatrix","buildExpressionInterface","searchShapes","filterUniqueShapes","tempShapes","areAnimated","setShapesAsAnimated","createStyleElement","elementData","addToAnimatedContents","createGroupElement","createTransformElement","transformProperty","createShapeElement","ownTransformers","setElementStyles","render","currentTransform","modifier","processedPos","ownStyles","ownModifiers","renderShape","animatedContent","update","updated","setCurrentData","searchKeyframes","getKeyframeValue","_finalValue","currentValue","currentIndex","textKeys","buildFinalText","charCode","charactersArray","shouldCombine","newLineFlag","letters","anchorGrouping","currentSize","currentPos","currentLine","lineWidth","maxLineWidth","trackingOffset","currentHeight","boxHeight","lastSpaceIndex","currentChar","uncollapsedSpaces","an","add","anIndexes","animatorJustifyOffset","extra","animatorData","letterData","based","animators","indexes","fh","fs","fb","rn","totalChars","newInd","currentInd","newData","dData","recalculate","canResizeFont","_canResize","setMinimumFontSize","_fontValue","TextSelectorProp","TextSelectorPropFactory","_currentTextLength","finalS","finalE","xe","ne","sm","getMult","textProperty","easer","tot","smoothness","threshold","newCharsFlag","divisor","getTextSelectorProp","TextAnimatorDataProperty","animatorProps","defaultData","textAnimatorAnimatables","TextAnimatorProperty","renderType","_hasMaskedPath","_textData","_renderType","_elem","_animatorsData","_pathData","_moreOptions","alignment","renderedLetters","lettersChangedFlag","ITextElement","searchProperties","getMeasures","xPos","yPos","pathInfo","currentLength","currentPoint","pointInd","segmentInd","tanAngle","matrixHelper","renderedLettersCount","tLength","pi","letterValue","yOff","firstLine","offf","xPathPos","yPathPos","elemOpacity","letterSw","letterSc","letterFc","letterO","initPathPos","initSegmentInd","initPointInd","letterM","letterP","defaultPropsArray","animatorFirstCharOffset","justifyOffsetMult","isNewLine","animatorOffset","atan","textAnimator","buildNewText","createPathShape","shapeStr","_fontSize","applyTextPropertiesToMatrix","lineNumber","buildColor","colorData","emptyProp","emptyShapeData","SVGTextLottieElement","textSpans","ISolidElement","NullElement","SVGRendererBase","ICompElement","SVGCompElement","supports3d","SVGRenderer","config","svgElement","ariaLabel","title","titleElement","titleId","descElement","descId","preserveAspectRatio","contentVisibility","viewBoxOnly","viewBoxSize","className","focusable","filterSize","runExpressions","destroyed","CVContextData","saved","cArrPos","cTr","cO","savedOp","ShapeTransformManager","sequences","sequenceList","transform_key_count","singleShape","textContainer","buildTextContents","textArray","textContents","currentTextContent","buildShapeData","shapeItem","tSpan","usesGlyphs","cachedSpansLength","span","childSpan","glyph","glyphElement","_debug","tElement","justify","textBox","bbox","renderedLetter","textSpan","findIndexByInd","appendElementInPos","elementIndex","tp","matteMask","nextElement","insertBefore","setElements","getElements","destroyElements","duplicate","newLength","currentSavedOp","set","popTransform","popped","popOpacity","opacity","getTransform","getOpacity","setOpacity","addTransformSequence","sequence","processSequence","processSequences","getNewKey","lumaLoader","lumaBuffer","lumaBufferCtx","svg","loadLuma","_svg","createLumaSvgFilter","createCanvas","loadLumaCanvas","getLumaCanvas","CVEffects","CVMaskElement","hasMasks","CVBaseElement","canvasContext","beginPath","moveTo","lineTo","bezierCurveTo","save","clip","operationsMap","CVShapeData","transformsManager","styledShapes","styledShape","trNodes","CVShapeElement","CVTextElement","stroke","fill","currentRender","sWidth","fValue","CVImageElement","CVSolidElement","CanvasRendererBase","clearCanvas","dpr","devicePixelRatio","currentGlobalAlpha","contextData","transformMat","CVCompElement","CanvasRenderer","HBaseElement","HSolidElement","HShapeElement","shapesContainer","currentBBox","HTextElement","textPaths","isMasked","HCameraElement","pe","_prevMat","HImageElement","HybridRendererBase","threeDElements","camera","HCompElement","HybridRenderer","createElements","buffers","bufferCanvas","bufferCanvas2","_isProxy","transformCanvas","blendMode","globalCompositeOperation","hideElement","showElement","clearRect","prepareLayer","bufferCtx","drawImage","exitLayer","buffer","forceRealStack","ctxTransform","ctxOpacity","restore","transformHelper","dashResetter","preTransforms","co","wi","da","addTransformToStyleList","removeTransformFromStyleList","closeStyles","shouldRender","ownTransforms","_shouldRender","renderShapeTransform","parentTransform","groupTransform","drawLayer","nodes","currentStyle","coOp","strokeStyle","grd","lineCap","setLineDash","lineDashOffset","closePath","isMain","renderGradientFill","renderStyledShape","shapeNodes","groupTransformMat","createLinearGradient","createRadialGradient","addColorStop","hasFill","hasStroke","commands","pathArr","commandsCounter","lastFill","lastStroke","lastStrokeW","widthCrop","heightCrop","imgW","imgH","imgRel","canvasRel","par","cProps","trProps","currentOpacity","globalAlpha","actionFlag","containerStyle","mozTransformOrigin","isDashed","elementWidth","elementHeight","elementRel","animationRel","offsetHeight","fillType","checkBlendMode","tg","transformedElementStyle","matrixValue","webkitTransform","addEffects","backgroundColor","_renderShapeFrame","shapeCont","getTransformedPoint","calculateShapeBoundingBox","item","vPoint","oPoint","nextIPoint","nextVPoint","checkBounds","getBoundsOfCurve","shapeBoundingBox","xMax","yMax","tempBoundingBox","b2ac","calculateF","calculateBoundingBox","expandStrokeBoundingBox","widthProperty","kfw","currentBoxContains","changed","shapeStyle","shapeTransform","compW","compH","innerElemStyle","textColor","strokeWidth","lineHeight","tParent","tCont","tContStyle","tContTranslation","tStyle","tSpanTranslation","svgStyle","translation","textPath","margin","svgTransform","setup","perspectiveStyle","perspectiveElem","perspective","webkitPerspective","mTransf","diffVector","mag","lookDir","lookLengthOnXZ","mRotationX","mRotationY","hasMatrixChanged","matValue","Image","imageElem","newDOMElement","addTo3dContainer","nextDOMElement","nextLayer","getThreeDContainerByPos","startPos","endPos","createThreeDContainer","threeDContainerData","build3dContainers","lastThreeDContainerData","currentContainer","resizerElem","overflow","cWidth","cHeight","floatingContainer","_createBaseContainerElements","_thisLayerFunction","pixelAspect","frameDuration","displayStartTime","numLayers","Expressions","stackCount","registers","pushExpression","popExpression","releaseInstances","registerExpressionProperty","expression","MaskManagerInterface","MaskInterface","_mask","_data","_masksInterfaces","ExpressionPropertyInterface","defaultUnidimensionalValue","defaultMultidimensionalValue","completeProperty","expressionValue","getVelocityAtTime","numKeys","valueProp","valueAtTime","speedAtTime","getSpeedAtTime","velocityAtTime","propertyGroup","defaultGetter","UnidimensionalPropertyInterface","arrValue","MultidimensionalPropertyInterface","TransformExpressionInterface","_thisFunction","rotation","xRotation","yRotation","xPosition","yPosition","zPosition","anchorPoint","_px","_py","_pz","_transformFactory","getMatrix","toWorldMat","toWorldVec","applyPoint","toWorld","fromWorldVec","invertPoint","fromWorld","fromComp","sampleImage","transformInterface","toComp","anchorPointDescriptor","defineProperties","hasParent","anchor_point","active","startTime","inPoint","outPoint","_name","propertyGroupFactory","interfaceFunction","parentPropertyGroup","PropertyInterface","propertyName","createGroupInterface","groupInterface","mn","_propertyGroup","createValueInterface","numProperties","np","enabled","en","expressionProperty","setGroupProperty","effectsData","ShapePathInterface","view","propertyIndex","iterateElements","groupInterfaceFactory","fillInterfaceFactory","strokeInterfaceFactory","trimInterfaceFactory","ellipseInterfaceFactory","starInterfaceFactory","rectInterfaceFactory","roundedInterfaceFactory","repeaterInterfaceFactory","gradientFillInterfaceFactory","interfaces","transformInterfaceFactory","cix","contentsInterfaceFactory","startPoint","endPoint","_dashPropertyGroup","dashOb","addPropertyToDashOb","dash","start","skewAxis","outerRadius","outerRoundness","innerRoundness","innerRadius","_interfaceFunction","_sourceText","sourceText","stringValue","fillColor","_typeof$2","dataInterfaceFactory","outlineInterface","currentPropertyName","currentProperty","propertyNameIndex","outlineInterfaceFactory","dataInterface","footage","getInterface","_typeof$1","seedRandom","nodecrypto","rngname","startdenom","significance","ARC4","keylen","me","copy","flatten","typ","mixkey","seed","smear","stringseed","tostring","options","shortseed","entropy","randomBytes","Uint8Array","crypto","msCrypto","getRandomValues","plugins","screen","autoseed","arc4","prng","int32","quick","pass","is_math_call","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","radiansToDegrees","radians_to_degrees","degreesToRadians","degrees_to_radians","helperLengthArray","arr1","normalize","vec","rgbToHsl","hue2rgb","hslToRgb","linear","tMin","tMax","value1","value2","_tMin","rnd","createPath","inTangents","outTangents","inVertexPoint","outVertexPoint","arrPlaceholder","initiateExpression","noOp","_value","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","velocity","textIndex","textTotal","selectorValue","lookAt","elem1","elem2","fVec","pitch","easeOut","val1","val2","applyEase","easeIn","ease","iKey","lenKey","nearestKey","obKey","framesToTime","fps","timeToFrames","seedrandom","randSeed","substring","posterizeTime","framesPerSecond","executeExpression","frameExpressionId","__preventDeadCodeRemoval","expressionHelpers","searchExpressions","speed","_cachingAtTime","getStaticValueAtTime","addPropertyDecorator","durationFlag","cycleDuration","firstKeyFrame","ret","lastKeyFrame","initV","endV","current","repeats","lastValue","nextLastValue","firstValue","nextFirstValue","samples","sampleValue","sampleFrequency","getTransformValueAtTime","_transformCachingAtTime","anchor","rotationZ","rotationY","rotationX","orientation","positionX","positionY","positionZ","getTransformStaticValueAtTime","propertyGetProp","ShapePropertyConstructorFunction","getConstructorFunction","KeyframedShapePropertyConstructorFunction","getKeyframedConstructorFunction","ShapeExpressions","isClosed","pointOnPath","_segmentsLength","accumulatedLength","initIndex","endIndex","vectorOnPath","vectorType","xLength","yLength","magnitude","tangentOnPath","normalOnPath","shapeValue","lastTime","propertyGetShapeProp","trims","initialize$1","addDecorator","getExpressionValue","calculateExpression","isKeyframed","hasExpressions","initialize","SVGComposableEffect","createMergeNode","resultId","ins","feMergeNode","feMerge","linearFilterValue","SVGTintFilter","linearFilter","matrixFilter","SVGFillFilter","SVGStrokeEffect","initialized","SVGTritoneFilter","feComponentTransfer","feFuncR","feFuncG","feFuncB","SVGProLevelsFilter","createFeFunc","feFuncA","feFuncRComposed","feFuncGComposed","feFuncBComposed","SVGDropShadowEffect","globalFilterSize","feGaussianBlur","feOffset","feFlood","feComposite","colorBlack","colorWhite","groupPath","elemChildren","childNodes","removeAttribute","pathMasker","dasharrayValue","getTotalLength","lineLength","units","color1","color2","color3","tableR","tableG","tableB","getTableValue","inputBlack","inputWhite","gamma","outputBlack","outputWhite","colorValue","table","outputDelta","inputDelta","col","_svgMatteSymbols","SVGMatte3Effect","filterElem","SVGGaussianBlurEffect","findSymbol","replaceInParent","symbolId","nextChild","useElem","setElementAsMask","symbol","sigma","dimensions","sigmaX","sigmaY","edgeMode","_toConsumableArray","arrayLikeToArray","Fragment","StrictMode","Profiler","Suspense","for","encodeURIComponent","isMounted","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","refs","updater","E","isReactComponent","setState","forceUpdate","isPureReactComponent","G","I","ref","__self","__source","J","defaultProps","$$typeof","_owner","escape","O","K","P","Q","_status","_result","R","ReactCurrentDispatcher","ReactCurrentBatchConfig","transition","ReactCurrentOwner","IsSomeRendererActing","Children","toArray","only","Component","PureComponent","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","cloneElement","createContext","_calculateChangedBits","_currentValue","_currentValue2","_threadCount","Provider","Consumer","_context","createFactory","createRef","forwardRef","isValidElement","lazy","_payload","_init","memo","compare","useCallback","useContext","useDebugValue","useEffect","useImperativeHandle","useLayoutEffect","useMemo","useReducer","useRef","useState","aa","ba","Set","ca","ea","fa","ha","ia","ja","ka","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","sanitizeURL","removeEmptyString","oa","pa","qa","ma","na","la","xlinkHref","ra","ta","wa","xa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ma","Ka","La","Na","stack","Oa","Pa","prepareStackTrace","Qa","tag","Ra","Sa","Ta","nodeName","Va","_valueTracker","setValue","stopTracking","Ua","Wa","checked","Xa","activeElement","Ya","defaultChecked","defaultValue","_wrapperState","initialChecked","Za","initialValue","controlled","$a","ab","bb","ownerDocument","eb","db","selected","defaultSelected","disabled","gb","dangerouslySetInnerHTML","hb","ib","jb","kb","html","mathml","lb","mb","nb","namespaceURI","innerHTML","firstChild","MSApp","execUnsafeLocalFunction","pb","lastChild","nodeValue","qb","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","lineClamp","order","orphans","tabSize","widows","zIndex","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","rb","sb","tb","setProperty","ub","menuitem","area","br","embed","hr","keygen","link","meta","param","track","wbr","vb","wb","xb","srcElement","correspondingUseElement","yb","zb","Ab","Bb","Cb","stateNode","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","Ob","Pb","Qb","Rb","Sb","Tb","Ub","Vb","Wb","Xb","Zb","alternate","return","$b","memoizedState","dehydrated","ac","cc","child","sibling","bc","dc","ec","gc","hc","ic","jc","kc","mc","nc","Map","oc","pc","qc","rc","blockedOn","domEventName","eventSystemFlags","nativeEvent","targetContainers","delete","pointerId","tc","vc","wc","lanePriority","unstable_runWithPriority","priority","hydrate","containerInfo","xc","yc","zc","Ac","Bc","unstable_scheduleCallback","unstable_NormalPriority","Cc","Dc","Ec","animationend","animationiteration","animationstart","transitionend","Fc","Gc","Hc","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Pc","Qc","unstable_now","Rc","Uc","pendingLanes","expiredLanes","suspendedLanes","pingedLanes","Vc","entangledLanes","entanglements","Wc","Xc","Yc","Zc","$c","eventTimes","clz32","bd","cd","log","LN2","unstable_UserBlockingPriority","ed","fd","gd","uc","jd","kd","ld","md","nd","od","keyCode","pd","qd","_reactName","_targetInst","currentTarget","isDefaultPrevented","defaultPrevented","returnValue","isPropagationStopped","preventDefault","stopPropagation","cancelBubble","persist","isPersistent","wd","xd","yd","sd","eventPhase","bubbles","cancelable","timeStamp","isTrusted","ud","detail","vd","Ad","screenX","screenY","clientX","clientY","pageX","pageY","ctrlKey","shiftKey","altKey","metaKey","getModifierState","zd","button","buttons","relatedTarget","fromElement","toElement","movementX","movementY","Bd","Dd","dataTransfer","Fd","Hd","animationName","pseudoElement","Id","clipboardData","Jd","Ld","Md","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","Nd","Od","Alt","Control","Meta","Shift","Pd","Qd","code","repeat","locale","which","Rd","Td","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Vd","touches","targetTouches","changedTouches","Xd","Yd","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","Zd","$d","ae","be","ce","de","ee","fe","ge","he","ie","le","datetime","email","month","number","password","range","search","tel","week","oe","listeners","qe","re","se","te","ue","ve","we","ye","ze","oninput","Ae","detachEvent","Be","Ce","attachEvent","De","Ee","Fe","He","Ie","Je","Ke","Le","nextSibling","Me","contains","compareDocumentPosition","Ne","HTMLIFrameElement","contentWindow","Oe","contentEditable","Pe","Qe","Re","Se","Te","Ue","selectionStart","selectionEnd","anchorNode","defaultView","getSelection","anchorOffset","focusNode","focusOffset","Ve","We","Xe","Ye","Ze","Yb","listener","$e","has","af","bf","cf","df","capture","passive","Nb","ff","parentWindow","hf","je","char","ke","jf","lf","mf","autoFocus","nf","__html","pf","clearTimeout","qf","rf","sf","previousSibling","tf","vf","wf","xf","yf","zf","Af","Bf","Cf","Df","Ef","contextTypes","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Ff","childContextTypes","Gf","Hf","If","getChildContext","Jf","__reactInternalMemoizedMergedChildContext","Kf","Lf","Mf","Nf","Of","Pf","unstable_cancelCallback","Qf","unstable_shouldYield","Rf","unstable_requestPaint","Sf","Tf","unstable_getCurrentPriorityLevel","Uf","unstable_ImmediatePriority","Vf","Wf","Xf","unstable_LowPriority","Yf","unstable_IdlePriority","Zf","$f","ag","bg","cg","dg","eg","fg","hg","ig","jg","kg","lg","mg","ng","og","pg","qg","rg","sg","childLanes","dependencies","firstContext","lanes","ug","vg","observedBits","responders","wg","xg","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","shared","pending","yg","zg","eventTime","lane","Ag","Bg","Cg","Dg","Eg","Fg","Gg","Kg","_reactInternals","Hg","Ig","Jg","Lg","shouldComponentUpdate","Mg","contextType","Ng","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","Og","getDerivedStateFromProps","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","componentDidMount","Pg","Qg","_stringRef","Rg","Sg","lastEffect","nextEffect","firstEffect","Tg","Ug","elementType","Vg","implementation","Wg","Xg","Yg","Zg","$g","ah","bh","dh","eh","documentElement","tagName","gh","ih","memoizedProps","revealOrder","jh","kh","mh","nh","oh","pendingProps","ph","qh","rh","th","uh","_workInProgressVersionPrimary","vh","wh","xh","yh","zh","Ah","Bh","Ch","Dh","Eh","Fh","Gh","Hh","baseQueue","queue","Ih","Jh","Kh","lastRenderedReducer","action","eagerReducer","eagerState","lastRenderedState","dispatch","Lh","Mh","_getVersion","_source","mutableReadLanes","Nh","U","getSnapshot","subscribe","setSnapshot","Oh","Ph","Qh","Rh","deps","Sh","Th","Uh","Vh","Wh","Xh","Yh","Zh","$h","ai","bi","ci","di","readContext","useDeferredValue","useTransition","useMutableSource","useOpaqueIdentifier","unstable_isNewReconciler","uf","ei","fi","gi","hi","ii","ji","ki","li","mi","baseLanes","ni","oi","UNSAFE_componentWillUpdate","componentWillUpdate","componentDidUpdate","qi","getDerivedStateFromError","ri","pendingContext","Bi","Ci","Di","Ei","si","retryLane","fallback","unstable_avoidThisFallback","ui","unstable_expectedLoadTime","vi","xi","yi","zi","isBackwards","rendering","renderingStartTime","last","tail","tailMode","Ai","Fi","Gi","wasMultiple","multiple","onClick","onclick","createTextNode","V","Hi","Ii","Ji","Ki","Li","Mi","message","Ni","Oi","WeakMap","Pi","Qi","Ri","Si","componentDidCatch","Ti","componentStack","Ui","WeakSet","Vi","Wi","Xi","__reactInternalSnapshotBeforeUpdate","Yi","Zi","$i","focus","aj","bj","onCommitFiberUnmount","componentWillUnmount","cj","dj","ej","fj","gj","hj","_reactRootContainer","ij","jj","kj","mj","nj","oj","pj","X","Y","qj","rj","sj","tj","uj","vj","Infinity","wj","ck","xj","yj","zj","Aj","Bj","Cj","Dj","Ej","Fj","Gj","Hj","Ij","Jj","Sc","Kj","Lj","Mj","callbackNode","expirationTimes","callbackPriority","Tc","Nj","Oj","Pj","Qj","Rj","Sj","Tj","finishedWork","finishedLanes","Uj","timeoutHandle","Wj","Xj","pingCache","Yj","Zj","va","ak","bk","dk","rangeCount","focusedElem","selectionRange","ek","extend","createRange","setStart","removeAllRanges","addRange","setEnd","scrollLeft","scrollTop","onCommitFiberRoot","fk","gk","ik","pendingChildren","jk","mutableSourceEagerHydrationData","lk","mk","nk","ok","qk","hydrationOptions","mutableSources","_internalRoot","rk","tk","hasAttribute","uk","kk","hk","unstable_observedBits","unmount","form","Vj","vk","Events","wk","findFiberByHostInstance","bundleType","rendererPackageName","xk","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","yk","isDisabled","supportsFiber","inject","createPortal","findDOMNode","flushSync","unmountComponentAtNode","unstable_batchedUpdates","unstable_createPortal","unstable_renderSubtreeIntoContainer","performance","MessageChannel","unstable_forceFrameRate","cancelAnimationFrame","port2","port1","sortIndex","expirationTime","priorityLevel","unstable_Profiling","unstable_continueExecution","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","delay","unstable_wrapCallback","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","draining","queueIndex","cleanUpNextTick","drainQueue","timeout","run","runClearTimeout","Item","noop","nextTick","env","argv","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","binding","cwd","chdir","umask","_defineProperty","toPropertyKey","ownKeys","enumerableOnly","sym","_objectSpread2","getOwnPropertyDescriptors","jsx","jsxs"],"mappings":";0FAGEA,EAAOC,QAAUC,EAAQ,G,iCCAzBF,EAAOC,QAAUC,EAAQ,G,kCCH3B,8CACe,SAASC,EAA2BC,EAAGC,GACpD,IAAIC,EAAuB,qBAAXC,QAA0BH,EAAEG,OAAOC,WAAaJ,EAAE,cAClE,IAAKE,EAAI,CACP,GAAIG,MAAMC,QAAQN,KAAOE,EAAK,YAA2BF,KAAOC,GAAkBD,GAAyB,kBAAbA,EAAEO,OAAqB,CAC/GL,IAAIF,EAAIE,GACZ,IAAIM,EAAI,EACJC,EAAI,WAAc,EACtB,MAAO,CACLC,EAAGD,EACHE,EAAG,WACD,OAAIH,GAAKR,EAAEO,OAAe,CACxBK,MAAM,GAED,CACLA,MAAM,EACNC,MAAOb,EAAEQ,KAEb,EACAM,EAAG,SAAWC,GACZ,MAAMA,CACR,EACAC,EAAGP,EAEP,CACA,MAAM,IAAIQ,UAAU,wIACtB,CACA,IAEEC,EAFEC,GAAmB,EACrBC,GAAS,EAEX,MAAO,CACLV,EAAG,WACDR,EAAKA,EAAGmB,KAAKrB,EACf,EACAW,EAAG,WACD,IAAIW,EAAOpB,EAAGqB,OAEd,OADAJ,EAAmBG,EAAKV,KACjBU,CACT,EACAR,EAAG,SAAWU,GACZJ,GAAS,EACTF,EAAMM,CACR,EACAR,EAAG,WACD,IACOG,GAAoC,MAAhBjB,EAAW,QAAWA,EAAW,QAC5D,CAAE,QACA,GAAIkB,EAAQ,MAAMF,CACpB,CACF,EAEJ,C,gFC/Ce,SAASO,EAAeC,EAAKlB,GAC1C,OCLa,SAAyBkB,GACtC,GAAIrB,MAAMC,QAAQoB,GAAM,OAAOA,CACjC,CDGS,CAAeA,IELT,SAA+BA,EAAKlB,GACjD,IAAImB,EAAK,MAAQD,EAAM,KAAO,oBAAsBvB,QAAUuB,EAAIvB,OAAOC,WAAasB,EAAI,cAC1F,GAAI,MAAQC,EAAI,CACd,IAAIC,EACFb,EACAc,EACAC,EACAC,EAAO,GACPC,GAAK,EACLC,GAAK,EACP,IACE,GAAIJ,GAAMF,EAAKA,EAAGN,KAAKK,IAAMH,KAAM,IAAMf,EAAG,CAC1C,GAAI0B,OAAOP,KAAQA,EAAI,OACvBK,GAAK,CACP,MAAO,OAASA,GAAMJ,EAAKC,EAAGR,KAAKM,IAAKf,QAAUmB,EAAKI,KAAKP,EAAGf,OAAQkB,EAAKxB,SAAWC,GAAIwB,GAAK,GAClG,CAAE,MAAOd,GACPe,GAAK,EAAIlB,EAAKG,CAChB,CAAE,QACA,IACE,IAAKc,GAAM,MAAQL,EAAW,SAAMG,EAAKH,EAAW,SAAKO,OAAOJ,KAAQA,GAAK,MAC/E,CAAE,QACA,GAAIG,EAAI,MAAMlB,CAChB,CACF,CACA,OAAOgB,CACT,CACF,CFrBgC,CAAqBL,EAAKlB,IAAM,OAAA4B,EAAA,GAA2BV,EAAKlB,IGLjF,WACb,MAAM,IAAIS,UAAU,4IACtB,CHGsG,EACtG,C,qBINA,YACArB,EAAOC,QAAUwC,C,kDCDjB,wEAAIC,EAAM,iFAAqFC,EAAS,mJAAuJC,EAAa,cAA6B,SAASC,EAAWC,EAAKC,EAAKC,EAAIC,GAAmL,GAAxJ,IAAnBC,UAAUvC,QAA0B,kBAAPmC,GAAkB,KAAKK,KAAKL,KAAOC,EAAKD,EAAKA,OAAKM,IAAUN,EAAKA,GAAa,IAAPA,EAASA,EAAK,IAAIO,gBAA0BA,OAAOP,EAAK,IAAIO,KAAKP,IAASQ,MAAMR,GAAO,MAAMzB,UAAU,gBAAiE,IAAIkC,GAArDR,EAAKS,OAAOC,EAAMV,IAAOA,GAAMU,EAAe,UAAsBC,MAAM,EAAE,GAAkB,SAAZH,GAAgC,SAAZA,IAAoBR,EAAKA,EAAKW,MAAM,GAAGV,GAAI,EAAoB,SAAZO,IAAoBN,GAAI,IAAM,IAAIU,EAAE,WAAa,OAAOX,EAAI,SAAS,KAAK,EAAMX,EAAG,WAAa,OAAOS,EAAKa,IAAI,SAAS,EAAMC,EAAE,WAAa,OAAOd,EAAKa,IAAI,QAAQ,EAAME,EAAG,WAAa,OAAOf,EAAKa,IAAI,UAAU,EAAMG,EAAE,WAAa,OAAOhB,EAAKa,IAAI,aAAa,EAAMI,EAAG,WAAa,OAAOjB,EAAKa,IAAI,UAAU,EAAMK,EAAG,WAAa,OAAOlB,EAAKa,IAAI,YAAY,EAAM3B,EAAG,WAAa,OAAOc,EAAKa,IAAI,YAAY,EAAMM,EAAG,WAAa,OAAOnB,EAAKa,IAAI,iBAAiB,EAAMO,EAAG,WAAa,OAAOlB,EAAI,EAAEF,EAAKqB,mBAAmB,EAAMC,EAAG,WAAa,OAAOC,EAAQvB,EAAK,EAAqDwB,EAAM,CAACC,EAAE,WAAa,OAAOlC,GAAI,EAAEmC,GAAG,WAAc,OAAOC,EAAIpC,IAAK,EAAEqC,IAAI,WAAe,OAAOC,EAAKC,SAAShB,IAAI,EAAEiB,IAAI,WAAe,OAAOC,EAAW,CAAChB,EAAEA,IAAIiB,EAAElB,IAAKU,EAAElC,IAAKsB,EAAEA,IAAIqB,QAAQL,EAAKC,SAAShB,KAAKqB,OAAM,GAAM,EAAEC,KAAK,WAAgB,OAAOP,EAAKC,SAAShB,IAAI,EAAE,EAAEuB,KAAK,WAAgB,OAAOL,EAAW,CAAChB,EAAEA,IAAIiB,EAAElB,IAAKU,EAAElC,IAAKsB,EAAEA,IAAIqB,QAAQL,EAAKC,SAAShB,IAAI,IAAI,EAAEmB,EAAE,WAAa,OAAOlB,IAAK,CAAC,EAAEuB,GAAG,WAAc,OAAOX,EAAIZ,IAAK,EAAE,EAAEwB,IAAI,WAAe,OAAOV,EAAKW,WAAWzB,IAAK,EAAE0B,KAAK,WAAgB,OAAOZ,EAAKW,WAAWzB,IAAK,GAAG,EAAE2B,GAAG,WAAc,OAAOhC,OAAOM,KAAKJ,MAAM,EAAE,EAAE+B,KAAK,WAAgB,OAAOhB,EAAIX,IAAI,EAAE,EAAE4B,EAAE,WAAa,OAAO3B,IAAK,IAAI,EAAE,EAAE4B,GAAG,WAAc,OAAOlB,EAAIV,IAAK,IAAI,GAAG,EAAE6B,EAAE,WAAa,OAAO7B,GAAI,EAAE8B,GAAG,WAAc,OAAOpB,EAAIV,IAAK,EAAE+B,EAAE,WAAa,OAAO9B,GAAI,EAAE+B,GAAG,WAAc,OAAOtB,EAAIT,IAAK,EAAElD,EAAE,WAAa,OAAOkB,GAAI,EAAEgE,GAAG,WAAc,OAAOvB,EAAIzC,IAAK,EAAEiE,EAAE,WAAa,OAAOxB,EAAIR,IAAK,EAAE,EAAEiC,EAAE,WAAa,OAAOzB,EAAI0B,KAAKC,MAAMnC,IAAK,IAAI,EAAEoC,EAAE,WAAa,OAAOtC,IAAK,GAAGY,EAAK2B,UAAU,GAAG3B,EAAK2B,UAAU,EAAE,EAAEC,GAAG,WAAc,OAAOxC,IAAK,GAAGY,EAAK2B,UAAU,GAAG3B,EAAK2B,UAAU,EAAE,EAAEE,EAAE,WAAa,OAAOzC,IAAK,GAAGY,EAAK2B,UAAU,GAAG3B,EAAK2B,UAAU,EAAE,EAAEG,GAAG,WAAc,OAAO1C,IAAK,GAAGY,EAAK2B,UAAU,GAAG3B,EAAK2B,UAAU,EAAE,EAAEI,EAAE,WAAa,OAAOzD,EAAI,MAAMD,EAAI,MAAM2D,EAAe7D,EAAK,EAAE1C,EAAE,WAAa,OAAO8D,IAAK,EAAE,IAAI,KAAKO,EAAkC,IAA9B0B,KAAKC,MAAMD,KAAKS,IAAI1C,KAAM,IAAQiC,KAAKS,IAAI1C,KAAM,GAAG,EAAE,EAAE2C,EAAE,WAAa,OAAO3C,IAAK,EAAE,IAAI,KAAKO,EAAI0B,KAAKC,MAAMD,KAAKS,IAAI1C,KAAM,IAAI,GAAG,IAAIO,EAAI0B,KAAKC,MAAMD,KAAKS,IAAI1C,KAAM,IAAI,EAAE,EAAE4C,EAAE,WAAa,MAAM,CAAC,KAAK,KAAK,KAAK,MAAMzE,IAAK,GAAG,EAAE,GAAGA,IAAK,IAAIA,IAAK,IAAI,IAAIA,IAAK,GAAG,EAAE0E,EAAE,WAAa,OAAO3C,GAAI,EAAE4C,GAAG,WAAc,OAAOvC,EAAIL,IAAK,EAAE6C,EAAE,WAAa,OAAnrDC,EAAapE,EAAirD,GAAG,OAAOC,EAAKoE,QAAQzE,GAAM,SAAS0E,GAAO,OAAGA,KAAS9C,EAAcA,EAAM8C,KAAgBA,EAAM1D,MAAM,EAAE0D,EAAMzG,OAAO,EAAE,GAAE,CAAQ,IAAI8C,EAAM,CAAC4D,QAAQ,2BAA2BC,UAAU,SAASC,gBAAgB,aAAaC,WAAW,cAAcC,SAAS,eAAeC,SAAS,qBAAqBC,UAAU,UAAUC,WAAW,aAAaC,SAAS,eAAeC,QAAQ,aAAaC,QAAQ,WAAWC,YAAY,yBAAyBC,eAAe,+BAA+BC,oBAAoB,+BAA0CvD,EAAK,CAACC,SAAS,CAAC,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,SAAS,SAAS,UAAU,YAAY,WAAW,SAAS,YAAYU,WAAW,CAAC,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,UAAU,WAAW,QAAQ,QAAQ,MAAM,OAAO,OAAO,SAAS,YAAY,UAAU,WAAW,YAAYgB,UAAU,CAAC,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,OAAW7B,EAAI,SAAa0D,GAAK,IAAIC,EAAIlF,UAAUvC,OAAO,QAAkByC,IAAfF,UAAU,GAAeA,UAAU,GAAG,EAAE,OAAOM,OAAO2E,GAAKE,SAASD,EAAI,IAAI,EAAMtD,EAAW,SAAoBwD,GAAM,IAAIxE,EAAEwE,EAAKxE,EAAEiB,EAAEuD,EAAKvD,EAAER,EAAE+D,EAAK/D,EAAEZ,EAAE2E,EAAK3E,EAAEqB,EAAQsD,EAAKtD,QAAQuD,EAAWD,EAAY,MAAEE,OAAoB,IAAbD,GAA0BA,EAAeE,EAAM,IAAIpF,KAASqF,EAAU,IAAIrF,KAAKqF,EAAUC,QAAQD,EAAU/E,EAAE,UAAU,GAAG,IAAIiF,EAAS,IAAIvF,KAAKuF,EAASD,QAAQC,EAASjF,EAAE,UAAU,GAAklB,OAAtb8E,EAAM9E,EAAE,gBAA6bG,GAA/f2E,EAAM9E,EAAE,aAAsgBoB,GAAvkB0D,EAAM9E,EAAE,YAA8kBY,EAAUiE,EAAO,MAAM,QAA1SE,EAAU/E,EAAE,gBAA8TG,GAAhZ4E,EAAU/E,EAAE,aAAuZoB,GAAxe2D,EAAU/E,EAAE,YAA+eY,EAAUiE,EAAO,MAAM,YAA3LI,EAASjF,EAAE,gBAAmNG,GAAjS8E,EAASjF,EAAE,aAAwSoB,GAArX6D,EAASjF,EAAE,YAA4XY,EAAUiE,EAAO,MAAM,WAAkBxD,CAAO,EAAMX,EAAQ,SAAiBvB,GAAM,IAAI+F,EAAe,IAAIxF,KAAKP,EAAKgG,cAAchG,EAAKiG,WAAWjG,EAAKkG,WAAWH,EAAeF,QAAQE,EAAeG,WAAWH,EAAeI,SAAS,GAAG,EAAE,GAAG,IAAIC,EAAc,IAAI7F,KAAKwF,EAAeC,cAAc,EAAE,GAAGI,EAAcP,QAAQO,EAAcF,WAAWE,EAAcD,SAAS,GAAG,EAAE,GAAG,IAAIE,EAAGN,EAAe1E,oBAAoB+E,EAAc/E,oBAAoB0E,EAAeO,SAASP,EAAeQ,WAAWF,GAAI,IAAIG,GAAUT,EAAeK,GAAa,OAAY,OAAO,EAAE/C,KAAKC,MAAMkD,EAAS,EAAMpC,EAAa,SAAsBpE,GAAM,IAAIyG,EAAIzG,EAAKmG,SAA2B,OAAT,IAANM,IAASA,EAAI,GAASA,CAAG,EAAa5C,EAAe,SAAwB7D,GAAM,OAAOU,OAAOV,GAAMsE,MAAMzE,IAAW,CAAC,KAAK6G,MAAMrC,QAAQvE,EAAa,IAAIuE,QAAQ,aAAa,MAAM,C,oBCA78LnH,EAAOC,QAAU,SAASD,GAoBzB,OAnBKA,EAAOyJ,kBACXzJ,EAAO0J,UAAY,WAAY,EAC/B1J,EAAO2J,MAAQ,GAEV3J,EAAO4J,WAAU5J,EAAO4J,SAAW,IACxCtH,OAAOuH,eAAe7J,EAAQ,SAAU,CACvC8J,YAAY,EACZC,IAAK,WACJ,OAAO/J,EAAOiG,CACf,IAED3D,OAAOuH,eAAe7J,EAAQ,KAAM,CACnC8J,YAAY,EACZC,IAAK,WACJ,OAAO/J,EAAOY,CACf,IAEDZ,EAAOyJ,gBAAkB,GAEnBzJ,CACR,C,oBCrBA,IAAIgK,EAGJA,EAAK,WACJ,OAAOC,IACR,CAFK,GAIL,IAECD,EAAIA,GAAK,IAAIE,SAAS,cAAb,EACV,CAAE,MAAOhJ,GAEc,kBAAXiJ,SAAqBH,EAAIG,OACrC,CAMAnK,EAAOC,QAAU+J,C,kCCnBF,SAASI,EAAuBC,GAC7C,QAAa,IAATA,EACF,MAAM,IAAIC,eAAe,6DAE3B,OAAOD,CACT,CALA,iC,iCCAA,8CACe,SAASE,IAEtBA,EAAsB,WACpB,OAAOtK,CACT,EACA,IAAIA,EAAU,CAAC,EACbuK,EAAKlI,OAAOmI,UACZC,EAASF,EAAGG,eACZd,EAAiBvH,OAAOuH,gBAAkB,SAAUe,EAAKC,EAAKC,GAC5DF,EAAIC,GAAOC,EAAK7J,KAClB,EACA8J,EAAU,mBAAqBxK,OAASA,OAAS,CAAC,EAClDyK,EAAiBD,EAAQvK,UAAY,aACrCyK,EAAsBF,EAAQG,eAAiB,kBAC/CC,EAAoBJ,EAAQK,aAAe,gBAC7C,SAASC,EAAOT,EAAKC,EAAK5J,GACxB,OAAOqB,OAAOuH,eAAee,EAAKC,EAAK,CACrC5J,MAAOA,EACP6I,YAAY,EACZwB,cAAc,EACdC,UAAU,IACRX,EAAIC,EACV,CACA,IACEQ,EAAO,CAAC,EAAG,GACb,CAAE,MAAO/J,GACP+J,EAAS,SAAgBT,EAAKC,EAAK5J,GACjC,OAAO2J,EAAIC,GAAO5J,CACpB,CACF,CACA,SAASuK,EAAKC,EAASC,EAASrB,EAAMsB,GACpC,IAAIC,EAAiBF,GAAWA,EAAQjB,qBAAqBoB,EAAYH,EAAUG,EACjFC,EAAYxJ,OAAOyJ,OAAOH,EAAenB,WACzCuB,EAAU,IAAIC,EAAQN,GAAe,IACvC,OAAO9B,EAAeiC,EAAW,UAAW,CAC1C7K,MAAOiL,EAAiBT,EAASpB,EAAM2B,KACrCF,CACN,CACA,SAASK,EAASC,EAAIxB,EAAKyB,GACzB,IACE,MAAO,CACLC,KAAM,SACND,IAAKD,EAAG3K,KAAKmJ,EAAKyB,GAEtB,CAAE,MAAO/K,GACP,MAAO,CACLgL,KAAM,QACND,IAAK/K,EAET,CACF,CACArB,EAAQuL,KAAOA,EACf,IAAIe,EAAmB,CAAC,EACxB,SAASV,IAAa,CACtB,SAASW,IAAqB,CAC9B,SAASC,IAA8B,CACvC,IAAIC,EAAoB,CAAC,EACzBrB,EAAOqB,EAAmB1B,GAAgB,WACxC,OAAOf,IACT,IACA,IAAI0C,EAAWrK,OAAOsK,eACpBC,EAA0BF,GAAYA,EAASA,EAASG,EAAO,MACjED,GAA2BA,IAA4BrC,GAAME,EAAOjJ,KAAKoL,EAAyB7B,KAAoB0B,EAAoBG,GAC1I,IAAIE,EAAKN,EAA2BhC,UAAYoB,EAAUpB,UAAYnI,OAAOyJ,OAAOW,GACpF,SAASM,EAAsBvC,GAC7B,CAAC,OAAQ,QAAS,UAAUwC,SAAQ,SAAUC,GAC5C7B,EAAOZ,EAAWyC,GAAQ,SAAUb,GAClC,OAAOpC,KAAKkD,QAAQD,EAAQb,EAC9B,GACF,GACF,CACA,SAASe,EAActB,EAAWuB,GAChC,SAASC,EAAOJ,EAAQb,EAAKkB,EAASC,GACpC,IAAIC,EAAStB,EAASL,EAAUoB,GAASpB,EAAWO,GACpD,GAAI,UAAYoB,EAAOnB,KAAM,CAC3B,IAAIoB,EAASD,EAAOpB,IAClBpL,EAAQyM,EAAOzM,MACjB,OAAOA,GAAS,UAAY,YAAQA,IAAUyJ,EAAOjJ,KAAKR,EAAO,WAAaoM,EAAYE,QAAQtM,EAAM0M,SAASC,MAAK,SAAU3M,GAC9HqM,EAAO,OAAQrM,EAAOsM,EAASC,EACjC,IAAG,SAAUlM,GACXgM,EAAO,QAAShM,EAAKiM,EAASC,EAChC,IAAKH,EAAYE,QAAQtM,GAAO2M,MAAK,SAAUC,GAC7CH,EAAOzM,MAAQ4M,EAAWN,EAAQG,EACpC,IAAG,SAAUI,GACX,OAAOR,EAAO,QAASQ,EAAOP,EAASC,EACzC,GACF,CACAA,EAAOC,EAAOpB,IAChB,CACA,IAAI0B,EACJlE,EAAeI,KAAM,UAAW,CAC9BhJ,MAAO,SAAeiM,EAAQb,GAC5B,SAAS2B,IACP,OAAO,IAAIX,GAAY,SAAUE,EAASC,GACxCF,EAAOJ,EAAQb,EAAKkB,EAASC,EAC/B,GACF,CACA,OAAOO,EAAkBA,EAAkBA,EAAgBH,KAAKI,EAA4BA,GAA8BA,GAC5H,GAEJ,CACA,SAAS9B,EAAiBT,EAASpB,EAAM2B,GACvC,IAAIiC,EAAQ,iBACZ,OAAO,SAAUf,EAAQb,GACvB,GAAI,cAAgB4B,EAAO,MAAM,IAAIC,MAAM,gCAC3C,GAAI,cAAgBD,EAAO,CACzB,GAAI,UAAYf,EAAQ,MAAMb,EAC9B,OAAO8B,GACT,CACA,IAAKnC,EAAQkB,OAASA,EAAQlB,EAAQK,IAAMA,IAAO,CACjD,IAAI+B,EAAWpC,EAAQoC,SACvB,GAAIA,EAAU,CACZ,IAAIC,EAAiBC,EAAoBF,EAAUpC,GACnD,GAAIqC,EAAgB,CAClB,GAAIA,IAAmB9B,EAAkB,SACzC,OAAO8B,CACT,CACF,CACA,GAAI,SAAWrC,EAAQkB,OAAQlB,EAAQuC,KAAOvC,EAAQwC,MAAQxC,EAAQK,SAAS,GAAI,UAAYL,EAAQkB,OAAQ,CAC7G,GAAI,mBAAqBe,EAAO,MAAMA,EAAQ,YAAajC,EAAQK,IACnEL,EAAQyC,kBAAkBzC,EAAQK,IACpC,KAAO,WAAaL,EAAQkB,QAAUlB,EAAQ0C,OAAO,SAAU1C,EAAQK,KACvE4B,EAAQ,YACR,IAAIR,EAAStB,EAASV,EAASpB,EAAM2B,GACrC,GAAI,WAAayB,EAAOnB,KAAM,CAC5B,GAAI2B,EAAQjC,EAAQhL,KAAO,YAAc,iBAAkByM,EAAOpB,MAAQE,EAAkB,SAC5F,MAAO,CACLtL,MAAOwM,EAAOpB,IACdrL,KAAMgL,EAAQhL,KAElB,CACA,UAAYyM,EAAOnB,OAAS2B,EAAQ,YAAajC,EAAQkB,OAAS,QAASlB,EAAQK,IAAMoB,EAAOpB,IAClG,CACF,CACF,CACA,SAASiC,EAAoBF,EAAUpC,GACrC,IAAI2C,EAAa3C,EAAQkB,OACvBA,EAASkB,EAAS5N,SAASmO,GAC7B,QAAIvL,IAAc8J,EAAQ,OAAOlB,EAAQoC,SAAW,KAAM,UAAYO,GAAcP,EAAS5N,SAAiB,SAAMwL,EAAQkB,OAAS,SAAUlB,EAAQK,SAAMjJ,EAAWkL,EAAoBF,EAAUpC,GAAU,UAAYA,EAAQkB,SAAW,WAAayB,IAAe3C,EAAQkB,OAAS,QAASlB,EAAQK,IAAM,IAAIhL,UAAU,oCAAsCsN,EAAa,aAAcpC,EAClY,IAAIkB,EAAStB,EAASe,EAAQkB,EAAS5N,SAAUwL,EAAQK,KACzD,GAAI,UAAYoB,EAAOnB,KAAM,OAAON,EAAQkB,OAAS,QAASlB,EAAQK,IAAMoB,EAAOpB,IAAKL,EAAQoC,SAAW,KAAM7B,EACjH,IAAIqC,EAAOnB,EAAOpB,IAClB,OAAOuC,EAAOA,EAAK5N,MAAQgL,EAAQoC,EAASS,YAAcD,EAAK3N,MAAO+K,EAAQrK,KAAOyM,EAASU,QAAS,WAAa9C,EAAQkB,SAAWlB,EAAQkB,OAAS,OAAQlB,EAAQK,SAAMjJ,GAAY4I,EAAQoC,SAAW,KAAM7B,GAAoBqC,GAAQ5C,EAAQkB,OAAS,QAASlB,EAAQK,IAAM,IAAIhL,UAAU,oCAAqC2K,EAAQoC,SAAW,KAAM7B,EACrW,CACA,SAASwC,EAAaC,GACpB,IAAIC,EAAQ,CACVC,OAAQF,EAAK,IAEf,KAAKA,IAASC,EAAME,SAAWH,EAAK,IAAK,KAAKA,IAASC,EAAMG,WAAaJ,EAAK,GAAIC,EAAMI,SAAWL,EAAK,IAAK/E,KAAKqF,WAAW/M,KAAK0M,EACrI,CACA,SAASM,EAAcN,GACrB,IAAIxB,EAASwB,EAAMO,YAAc,CAAC,EAClC/B,EAAOnB,KAAO,gBAAiBmB,EAAOpB,IAAK4C,EAAMO,WAAa/B,CAChE,CACA,SAASxB,EAAQN,GACf1B,KAAKqF,WAAa,CAAC,CACjBJ,OAAQ,SACNvD,EAAYsB,QAAQ8B,EAAc9E,MAAOA,KAAKwF,OAAM,EAC1D,CACA,SAAS3C,EAAO4C,GACd,GAAIA,EAAU,CACZ,IAAIC,EAAiBD,EAAS1E,GAC9B,GAAI2E,EAAgB,OAAOA,EAAelO,KAAKiO,GAC/C,GAAI,mBAAqBA,EAAS/N,KAAM,OAAO+N,EAC/C,IAAKpM,MAAMoM,EAAS/O,QAAS,CAC3B,IAAIC,GAAK,EACPe,EAAO,SAASA,IACd,OAASf,EAAI8O,EAAS/O,QAAS,GAAI+J,EAAOjJ,KAAKiO,EAAU9O,GAAI,OAAOe,EAAKV,MAAQyO,EAAS9O,GAAIe,EAAKX,MAAO,EAAIW,EAC9G,OAAOA,EAAKV,WAAQmC,EAAWzB,EAAKX,MAAO,EAAIW,CACjD,EACF,OAAOA,EAAKA,KAAOA,CACrB,CACF,CACA,MAAO,CACLA,KAAMwM,EAEV,CACA,SAASA,IACP,MAAO,CACLlN,WAAOmC,EACPpC,MAAM,EAEV,CACA,OAAOwL,EAAkB/B,UAAYgC,EAA4B5C,EAAekD,EAAI,cAAe,CACjG9L,MAAOwL,EACPnB,cAAc,IACZzB,EAAe4C,EAA4B,cAAe,CAC5DxL,MAAOuL,EACPlB,cAAc,IACZkB,EAAkBoD,YAAcvE,EAAOoB,EAA4BtB,EAAmB,qBAAsBlL,EAAQ4P,oBAAsB,SAAUC,GACtJ,IAAIC,EAAO,mBAAqBD,GAAUA,EAAOE,YACjD,QAASD,IAASA,IAASvD,GAAqB,uBAAyBuD,EAAKH,aAAeG,EAAKE,MACpG,EAAGhQ,EAAQiQ,KAAO,SAAUJ,GAC1B,OAAOxN,OAAO6N,eAAiB7N,OAAO6N,eAAeL,EAAQrD,IAA+BqD,EAAOM,UAAY3D,EAA4BpB,EAAOyE,EAAQ3E,EAAmB,sBAAuB2E,EAAOrF,UAAYnI,OAAOyJ,OAAOgB,GAAK+C,CAC5O,EAAG7P,EAAQoQ,MAAQ,SAAUhE,GAC3B,MAAO,CACLsB,QAAStB,EAEb,EAAGW,EAAsBI,EAAc3C,WAAYY,EAAO+B,EAAc3C,UAAWQ,GAAqB,WACtG,OAAOhB,IACT,IAAIhK,EAAQmN,cAAgBA,EAAenN,EAAQqQ,MAAQ,SAAU7E,EAASC,EAASrB,EAAMsB,EAAa0B,QACxG,IAAWA,IAAgBA,EAAckD,SACzC,IAAIC,EAAO,IAAIpD,EAAc5B,EAAKC,EAASC,EAASrB,EAAMsB,GAAc0B,GACxE,OAAOpN,EAAQ4P,oBAAoBnE,GAAW8E,EAAOA,EAAK7O,OAAOiM,MAAK,SAAUF,GAC9E,OAAOA,EAAO1M,KAAO0M,EAAOzM,MAAQuP,EAAK7O,MAC3C,GACF,EAAGqL,EAAsBD,GAAK1B,EAAO0B,EAAI5B,EAAmB,aAAcE,EAAO0B,EAAI/B,GAAgB,WACnG,OAAOf,IACT,IAAIoB,EAAO0B,EAAI,YAAY,WACzB,MAAO,oBACT,IAAI9M,EAAQwQ,KAAO,SAAUtI,GAC3B,IAAIuI,EAASpO,OAAO6F,GAClBsI,EAAO,GACT,IAAK,IAAI5F,KAAO6F,EAAQD,EAAKlO,KAAKsI,GAClC,OAAO4F,EAAKE,UAAW,SAAShP,IAC9B,KAAO8O,EAAK9P,QAAS,CACnB,IAAIkK,EAAM4F,EAAKjH,MACf,GAAIqB,KAAO6F,EAAQ,OAAO/O,EAAKV,MAAQ4J,EAAKlJ,EAAKX,MAAO,EAAIW,CAC9D,CACA,OAAOA,EAAKX,MAAO,EAAIW,CACzB,CACF,EAAG1B,EAAQ6M,OAASA,EAAQb,EAAQxB,UAAY,CAC9CuF,YAAa/D,EACbwD,MAAO,SAAemB,GACpB,GAAI3G,KAAK4G,KAAO,EAAG5G,KAAKtI,KAAO,EAAGsI,KAAKsE,KAAOtE,KAAKuE,WAAQpL,EAAW6G,KAAKjJ,MAAO,EAAIiJ,KAAKmE,SAAW,KAAMnE,KAAKiD,OAAS,OAAQjD,KAAKoC,SAAMjJ,EAAW6G,KAAKqF,WAAWrC,QAAQsC,IAAiBqB,EAAe,IAAK,IAAIX,KAAQhG,KAAM,MAAQgG,EAAKa,OAAO,IAAMpG,EAAOjJ,KAAKwI,KAAMgG,KAAU3M,OAAO2M,EAAKvM,MAAM,MAAQuG,KAAKgG,QAAQ7M,EACtU,EACA2N,KAAM,WACJ9G,KAAKjJ,MAAO,EACZ,IAAIgQ,EAAa/G,KAAKqF,WAAW,GAAGE,WACpC,GAAI,UAAYwB,EAAW1E,KAAM,MAAM0E,EAAW3E,IAClD,OAAOpC,KAAKgH,IACd,EACAxC,kBAAmB,SAA2ByC,GAC5C,GAAIjH,KAAKjJ,KAAM,MAAMkQ,EACrB,IAAIlF,EAAU/B,KACd,SAASkH,EAAOC,EAAKC,GACnB,OAAO5D,EAAOnB,KAAO,QAASmB,EAAOpB,IAAM6E,EAAWlF,EAAQrK,KAAOyP,EAAKC,IAAWrF,EAAQkB,OAAS,OAAQlB,EAAQK,SAAMjJ,KAAciO,CAC5I,CACA,IAAK,IAAIzQ,EAAIqJ,KAAKqF,WAAW3O,OAAS,EAAGC,GAAK,IAAKA,EAAG,CACpD,IAAIqO,EAAQhF,KAAKqF,WAAW1O,GAC1B6M,EAASwB,EAAMO,WACjB,GAAI,SAAWP,EAAMC,OAAQ,OAAOiC,EAAO,OAC3C,GAAIlC,EAAMC,QAAUjF,KAAK4G,KAAM,CAC7B,IAAIS,EAAW5G,EAAOjJ,KAAKwN,EAAO,YAChCsC,EAAa7G,EAAOjJ,KAAKwN,EAAO,cAClC,GAAIqC,GAAYC,EAAY,CAC1B,GAAItH,KAAK4G,KAAO5B,EAAME,SAAU,OAAOgC,EAAOlC,EAAME,UAAU,GAC9D,GAAIlF,KAAK4G,KAAO5B,EAAMG,WAAY,OAAO+B,EAAOlC,EAAMG,WACxD,MAAO,GAAIkC,GACT,GAAIrH,KAAK4G,KAAO5B,EAAME,SAAU,OAAOgC,EAAOlC,EAAME,UAAU,OACzD,CACL,IAAKoC,EAAY,MAAM,IAAIrD,MAAM,0CACjC,GAAIjE,KAAK4G,KAAO5B,EAAMG,WAAY,OAAO+B,EAAOlC,EAAMG,WACxD,CACF,CACF,CACF,EACAV,OAAQ,SAAgBpC,EAAMD,GAC5B,IAAK,IAAIzL,EAAIqJ,KAAKqF,WAAW3O,OAAS,EAAGC,GAAK,IAAKA,EAAG,CACpD,IAAIqO,EAAQhF,KAAKqF,WAAW1O,GAC5B,GAAIqO,EAAMC,QAAUjF,KAAK4G,MAAQnG,EAAOjJ,KAAKwN,EAAO,eAAiBhF,KAAK4G,KAAO5B,EAAMG,WAAY,CACjG,IAAIoC,EAAevC,EACnB,KACF,CACF,CACAuC,IAAiB,UAAYlF,GAAQ,aAAeA,IAASkF,EAAatC,QAAU7C,GAAOA,GAAOmF,EAAapC,aAAeoC,EAAe,MAC7I,IAAI/D,EAAS+D,EAAeA,EAAahC,WAAa,CAAC,EACvD,OAAO/B,EAAOnB,KAAOA,EAAMmB,EAAOpB,IAAMA,EAAKmF,GAAgBvH,KAAKiD,OAAS,OAAQjD,KAAKtI,KAAO6P,EAAapC,WAAY7C,GAAoBtC,KAAKwH,SAAShE,EAC5J,EACAgE,SAAU,SAAkBhE,EAAQ4B,GAClC,GAAI,UAAY5B,EAAOnB,KAAM,MAAMmB,EAAOpB,IAC1C,MAAO,UAAYoB,EAAOnB,MAAQ,aAAemB,EAAOnB,KAAOrC,KAAKtI,KAAO8L,EAAOpB,IAAM,WAAaoB,EAAOnB,MAAQrC,KAAKgH,KAAOhH,KAAKoC,IAAMoB,EAAOpB,IAAKpC,KAAKiD,OAAS,SAAUjD,KAAKtI,KAAO,OAAS,WAAa8L,EAAOnB,MAAQ+C,IAAapF,KAAKtI,KAAO0N,GAAW9C,CACtQ,EACAmF,OAAQ,SAAgBtC,GACtB,IAAK,IAAIxO,EAAIqJ,KAAKqF,WAAW3O,OAAS,EAAGC,GAAK,IAAKA,EAAG,CACpD,IAAIqO,EAAQhF,KAAKqF,WAAW1O,GAC5B,GAAIqO,EAAMG,aAAeA,EAAY,OAAOnF,KAAKwH,SAASxC,EAAMO,WAAYP,EAAMI,UAAWE,EAAcN,GAAQ1C,CACrH,CACF,EACA,MAAS,SAAgB2C,GACvB,IAAK,IAAItO,EAAIqJ,KAAKqF,WAAW3O,OAAS,EAAGC,GAAK,IAAKA,EAAG,CACpD,IAAIqO,EAAQhF,KAAKqF,WAAW1O,GAC5B,GAAIqO,EAAMC,SAAWA,EAAQ,CAC3B,IAAIzB,EAASwB,EAAMO,WACnB,GAAI,UAAY/B,EAAOnB,KAAM,CAC3B,IAAIqF,EAASlE,EAAOpB,IACpBkD,EAAcN,EAChB,CACA,OAAO0C,CACT,CACF,CACA,MAAM,IAAIzD,MAAM,wBAClB,EACA0D,cAAe,SAAuBlC,EAAUb,EAAYC,GAC1D,OAAO7E,KAAKmE,SAAW,CACrB5N,SAAUsM,EAAO4C,GACjBb,WAAYA,EACZC,QAASA,GACR,SAAW7E,KAAKiD,SAAWjD,KAAKoC,SAAMjJ,GAAYmJ,CACvD,GACCtM,CACL,C,kCC9Se,SAAS4R,EAAgBzR,GAItC,OAHAyR,EAAkBvP,OAAO6N,eAAiB7N,OAAOsK,eAAekF,OAAS,SAAyB1R,GAChG,OAAOA,EAAEgQ,WAAa9N,OAAOsK,eAAexM,EAC9C,EACOyR,EAAgBzR,EACzB,CALA,iC,kCCAe,SAAS2R,EAAQnH,GAG9B,OAAOmH,EAAU,mBAAqBxR,QAAU,iBAAmBA,OAAOC,SAAW,SAAUoK,GAC7F,cAAcA,CAChB,EAAI,SAAUA,GACZ,OAAOA,GAAO,mBAAqBrK,QAAUqK,EAAIoF,cAAgBzP,QAAUqK,IAAQrK,OAAOkK,UAAY,gBAAkBG,CAC1H,EAAGmH,EAAQnH,EACb,CARA,iC,iCCAe,SAASoH,EAAgBC,EAAUC,GAChD,KAAMD,aAAoBC,GACxB,MAAM,IAAI7Q,UAAU,oCAExB,CAJA,iC,gFCCe,SAAS,IActB,OAZE,EADqB,qBAAZ8Q,SAA2BA,QAAQpI,IACrCoI,QAAQpI,IAAI+H,OAEZ,SAAcM,EAAQC,EAAUC,GACrC,IAAIC,ECLK,SAAwB7B,EAAQ2B,GAC7C,MAAQ/P,OAAOmI,UAAUE,eAAelJ,KAAKiP,EAAQ2B,IAEpC,QADf3B,EAAS,OAAA9D,EAAA,GAAe8D,MAG1B,OAAOA,CACT,CDDiB,CAAc0B,EAAQC,GACjC,GAAKE,EAAL,CACA,IAAIzH,EAAOxI,OAAOkQ,yBAAyBD,EAAMF,GACjD,OAAIvH,EAAKf,IACAe,EAAKf,IAAItI,KAAKyB,UAAUvC,OAAS,EAAIyR,EAASE,GAEhDxH,EAAK7J,KALK,CAMnB,EAEK,EAAKwR,MAAMxI,KAAM/G,UAC1B,C,iCEhBA,8CACA,SAASwP,EAAkBN,EAAQO,GACjC,IAAK,IAAI/R,EAAI,EAAGA,EAAI+R,EAAMhS,OAAQC,IAAK,CACrC,IAAIgS,EAAaD,EAAM/R,GACvBgS,EAAW9I,WAAa8I,EAAW9I,aAAc,EACjD8I,EAAWtH,cAAe,EACtB,UAAWsH,IAAYA,EAAWrH,UAAW,GACjDjJ,OAAOuH,eAAeuI,EAAQ,YAAcQ,EAAW/H,KAAM+H,EAC/D,CACF,CACe,SAASC,EAAaX,EAAaY,EAAYC,GAM5D,OALID,GAAYJ,EAAkBR,EAAYzH,UAAWqI,GACrDC,GAAaL,EAAkBR,EAAaa,GAChDzQ,OAAOuH,eAAeqI,EAAa,YAAa,CAC9C3G,UAAU,IAEL2G,CACT,C,mCCfA,SAASc,IAEP,GAC4C,qBAAnCC,gCAC4C,oBAA5CA,+BAA+BD,SAcxC,IAEEC,+BAA+BD,SAASA,EAC1C,CAAE,MAAO1R,GAGP4R,QAAQpF,MAAMxM,EAChB,CACF,CAKE0R,GACAhT,EAAOC,QAAUC,EAAQ,G,kCClC3B,8CACe,SAASiT,EAA4B/S,EAAGgT,GACrD,GAAKhT,EAAL,CACA,GAAiB,kBAANA,EAAgB,OAAO,YAAiBA,EAAGgT,GACtD,IAAIrS,EAAIuB,OAAOmI,UAAU4I,SAAS5R,KAAKrB,GAAGsD,MAAM,GAAI,GAEpD,MADU,WAAN3C,GAAkBX,EAAE4P,cAAajP,EAAIX,EAAE4P,YAAYC,MAC7C,QAANlP,GAAqB,QAANA,EAAoBN,MAAM6S,KAAKlT,GACxC,cAANW,GAAqB,2CAA2CoC,KAAKpC,GAAW,YAAiBX,EAAGgT,QAAxG,CALc,CAMhB,C,kCCRe,SAASG,EAAkBzR,EAAKsG,IAClC,MAAPA,GAAeA,EAAMtG,EAAInB,UAAQyH,EAAMtG,EAAInB,QAC/C,IAAK,IAAIC,EAAI,EAAG4S,EAAO,IAAI/S,MAAM2H,GAAMxH,EAAIwH,EAAKxH,IAAK4S,EAAK5S,GAAKkB,EAAIlB,GACnE,OAAO4S,CACT,CAJA,iC,mGCGe,SAASC,EAAaC,GACnC,IAAIC,ECJS,WACb,GAAuB,qBAAZxB,UAA4BA,QAAQyB,UAAW,OAAO,EACjE,GAAIzB,QAAQyB,UAAUC,KAAM,OAAO,EACnC,GAAqB,oBAAVC,MAAsB,OAAO,EACxC,IAEE,OADAC,QAAQtJ,UAAUuJ,QAAQvS,KAAK0Q,QAAQyB,UAAUG,QAAS,IAAI,WAAa,MACpE,CACT,CAAE,MAAO7S,GACP,OAAO,CACT,CACF,CDNkC,GAChC,OAAO,WACL,IACEwM,EADEuG,EAAQ,OAAArH,EAAA,GAAe8G,GAE3B,GAAIC,EAA2B,CAC7B,IAAIO,EAAY,OAAAtH,EAAA,GAAe3C,MAAM+F,YACrCtC,EAASyE,QAAQyB,UAAUK,EAAO/Q,UAAWgR,EAC/C,MACExG,EAASuG,EAAMxB,MAAMxI,KAAM/G,WAE7B,OEZW,SAAoCmH,EAAM5I,GACvD,GAAIA,IAA2B,WAAlB,YAAQA,IAAsC,oBAATA,GAChD,OAAOA,EACF,QAAa,IAATA,EACT,MAAM,IAAIJ,UAAU,4DAEtB,OAAO,OAAA8S,EAAA,GAAsB9J,EAC/B,CFKW,CAA0BJ,KAAMyD,EACzC,CACF,C,gFGde,SAAS0G,EAAe/H,GACrC,IAAIxB,ECFS,SAAsBwJ,EAAOC,GAC1C,GAAuB,WAAnB,YAAQD,IAAiC,OAAVA,EAAgB,OAAOA,EAC1D,IAAIE,EAAOF,EAAM9T,OAAOiU,aACxB,QAAapR,IAATmR,EAAoB,CACtB,IAAIE,EAAMF,EAAK9S,KAAK4S,EAAOC,GAAQ,WACnC,GAAqB,WAAjB,YAAQG,GAAmB,OAAOA,EACtC,MAAM,IAAIpT,UAAU,+CACtB,CACA,OAAiB,WAATiT,EAAoB9Q,OAASkR,QAAQL,EAC/C,CDPY,CAAYhI,EAAK,UAC3B,MAAwB,WAAjB,YAAQxB,GAAoBA,EAAMrH,OAAOqH,EAClD,C,kCEGA,IAAI8J,EAAwBrS,OAAOqS,sBAC/BhK,EAAiBrI,OAAOmI,UAAUE,eAClCiK,EAAmBtS,OAAOmI,UAAUoK,qBAsDxC7U,EAAOC,QA5CP,WACC,IACC,IAAKqC,OAAOwS,OACX,OAAO,EAMR,IAAIC,EAAQ,IAAIvR,OAAO,OAEvB,GADAuR,EAAM,GAAK,KACkC,MAAzCzS,OAAO0S,oBAAoBD,GAAO,GACrC,OAAO,EAKR,IADA,IAAIE,EAAQ,CAAC,EACJrU,EAAI,EAAGA,EAAI,GAAIA,IACvBqU,EAAM,IAAMzR,OAAO0R,aAAatU,IAAMA,EAKvC,GAAwB,eAHX0B,OAAO0S,oBAAoBC,GAAOE,KAAI,SAAUpU,GAC5D,OAAOkU,EAAMlU,EACd,IACWqU,KAAK,IACf,OAAO,EAIR,IAAIC,EAAQ,CAAC,EAIb,MAHA,uBAAuBC,MAAM,IAAIrI,SAAQ,SAAUsI,GAClDF,EAAME,GAAUA,CACjB,IAEE,yBADEjT,OAAOmO,KAAKnO,OAAOwS,OAAO,CAAC,EAAGO,IAAQD,KAAK,GAMhD,CAAE,MAAO9T,GAER,OAAO,CACR,CACD,CAEiBkU,GAAoBlT,OAAOwS,OAAS,SAAU1C,EAAQqD,GAKtE,IAJA,IAAInC,EAEAoC,EADAC,EAtDL,SAAkBxN,GACjB,GAAY,OAARA,QAAwB/E,IAAR+E,EACnB,MAAM,IAAI9G,UAAU,yDAGrB,OAAOiB,OAAO6F,EACf,CAgDUyN,CAASxD,GAGTtR,EAAI,EAAGA,EAAIoC,UAAUvC,OAAQG,IAAK,CAG1C,IAAK,IAAI+J,KAFTyI,EAAOhR,OAAOY,UAAUpC,IAGnB6J,EAAelJ,KAAK6R,EAAMzI,KAC7B8K,EAAG9K,GAAOyI,EAAKzI,IAIjB,GAAI8J,EAAuB,CAC1Be,EAAUf,EAAsBrB,GAChC,IAAK,IAAI1S,EAAI,EAAGA,EAAI8U,EAAQ/U,OAAQC,IAC/BgU,EAAiBnT,KAAK6R,EAAMoC,EAAQ9U,MACvC+U,EAAGD,EAAQ9U,IAAM0S,EAAKoC,EAAQ9U,IAGjC,CACD,CAEA,OAAO+U,CACR,C,iCCzFe,SAASE,EAAgBzV,EAAGyG,GAKzC,OAJAgP,EAAkBvT,OAAO6N,eAAiB7N,OAAO6N,eAAe2B,OAAS,SAAyB1R,EAAGyG,GAEnG,OADAzG,EAAEgQ,UAAYvJ,EACPzG,CACT,EACOyV,EAAgBzV,EAAGyG,EAC5B,CCLe,SAASiP,EAAUC,EAAUC,GAC1C,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAI3U,UAAU,sDAEtB0U,EAAStL,UAAYnI,OAAOyJ,OAAOiK,GAAcA,EAAWvL,UAAW,CACrEuF,YAAa,CACX/O,MAAO8U,EACPxK,UAAU,EACVD,cAAc,KAGlBhJ,OAAOuH,eAAekM,EAAU,YAAa,CAC3CxK,UAAU,IAERyK,GAAY,EAAeD,EAAUC,EAC3C,C,uDChBA,qBAME,WACA,aAGA,IAAIC,EAAc,CAChB,UAAY,EACZ,QAAU,GAIRC,EAAQD,SAAmB9L,SAAWA,QAAWF,KAMjDkM,EAAcF,SAAmBhW,IAAYA,EAG7CmW,EAAaH,SAAmBjW,IAAWA,IAAWA,EAAOqW,UAAYrW,EAGzEsW,EAAaH,GAAeC,GAA+B,iBAAVG,GAAsBA,GACvED,GAAeA,EAAWC,SAAWD,GAAcA,EAAWnM,SAAWmM,GAAcA,EAAWjM,OAASiM,IAC7GJ,EAAOI,GAQT,IAAIE,EAAiBrQ,KAAKsQ,IAAI,EAAG,IAAM,EAGnCC,EAAU,UAMVC,EAAcrU,OAAOmI,UAGrBE,EAAiBgM,EAAYhM,eAG7B0I,EAAWsD,EAAYtD,SAW3B,SAASuD,EAAWC,GAElB,OADAA,EAASrT,OAAOqT,IACF/F,OAAO,GAAGgG,cAAgBD,EAAOnT,MAAM,EACvD,CAsFA,SAASqT,EAAOF,GAEd,OADAA,EAASG,EAAKH,GACP,uBAAuB1T,KAAK0T,GAC/BA,EACAD,EAAWC,EACjB,CASA,SAASI,EAAOvG,EAAQwG,GACtB,IAAK,IAAIrM,KAAO6F,EACV/F,EAAelJ,KAAKiP,EAAQ7F,IAC9BqM,EAASxG,EAAO7F,GAAMA,EAAK6F,EAGjC,CASA,SAASyG,EAAWlW,GAClB,OAAgB,MAATA,EACH2V,EAAW3V,GACXoS,EAAS5R,KAAKR,GAAOyC,MAAM,GAAI,EACrC,CAyBA,SAAS0T,EAAQP,GACf,OAAOrT,OAAOqT,GAAQ1P,QAAQ,eAAgB,MAChD,CAUA,SAASkQ,EAAOC,EAAOJ,GACrB,IAAIK,EAAc,KAIlB,OA/FF,SAAc7G,EAAQwG,GACpB,IAAIM,GAAS,EACT7W,EAAS+P,EAASA,EAAO/P,OAAS,EAEtC,GAAqB,iBAAVA,GAAsBA,GAAU,GAAKA,GAAU6V,EACxD,OAASgB,EAAQ7W,GACfuW,EAASxG,EAAO8G,GAAQA,EAAO9G,QAGjCuG,EAAOvG,EAAQwG,EAEnB,CAiFEO,CAAKH,GAAO,SAASrW,EAAOuW,GAC1BD,EAAcL,EAASK,EAAatW,EAAOuW,EAAOF,EACpD,IACOC,CACT,CASA,SAASP,EAAKH,GACZ,OAAOrT,OAAOqT,GAAQ1P,QAAQ,WAAY,GAC5C,CAk+BA,IAAIuQ,EAt9BJ,SAASC,EAAMC,GAGb,IAAI5L,EAAUkK,EAGV2B,EAAkBD,GAAmB,iBAANA,GAAoC,UAAlBT,EAAWS,GAG5DC,IACF7L,EAAU4L,EACVA,EAAK,MAIP,IAAIE,EAAM9L,EAAQ+L,WAAa,CAAC,EAG5BC,EAAYF,EAAIE,WAAa,GAEjCJ,IAAOA,EAAKI,GAGZ,IA4CIC,EAkBAC,EA3DAC,EAAaN,IACXC,EAAIK,WACN,aAAahV,KAAKyU,KAAQ,eAAezU,KAAKkQ,EAASA,YAGvD+E,EAAc,SACdC,EAAkBR,EAAkBO,EAAc,4BAClDE,EAAcT,EAAkBO,EAAc,cAC9CG,EAAaV,GAAmB7L,EAAQwM,KAAQ,cAAgBrB,EAAWnL,EAAQwM,MACnFC,EAAeZ,EAAkBO,EAAc,gBAG/CI,EAAO,SAASrV,KAAKoV,IAAcvM,EAAQwM,KAG3CE,EAAQF,GAAQrB,EAAWnL,EAAQ2M,cAAgBL,EAGnDM,EAAQJ,EAAO,IAAM,SAGrBK,EAAOL,EAAO,IAAM,SAGpBM,EAAM9M,EAAQ+M,UAAY,CAAC,EAO3BC,EAAQhN,EAAQiN,WAAajN,EAAQgN,MAGrCE,EAAaxC,EAAQvT,KAAK+V,EAAcrB,GAAmBmB,EAASA,EAAM,aAAe7B,EAAW6B,IACpGE,EACCF,EAAQ,KAQTG,EAAOvB,EAGPwB,EAAc,GAGdC,EAAa,KAGbC,EAAc1B,GAAMI,EAGpBuB,EAAUD,GAAeN,GAAiC,mBAAjBA,EAAMO,SAAyBP,EAAMO,UAM9EC,EA2KKnC,EA3Kc,CACrB,CAAE,MAAS,WAAY,QAAW,QAClC,UACA,CAAE,MAAS,SAAU,QAAW,eAChC,OACA,SACA,WACA,SACA,QACA,UAkKuB,SAAS3J,EAAQ+L,GACtC,OAAO/L,GAAUgM,OAAO,OACtBD,EAAME,SAAWvC,EAAQqC,IACvB,MAAO,KAAKG,KAAKhC,KAAQ6B,EAAMI,OAASJ,EAC9C,IAlKExJ,EA8LJ,SAAiB6J,GACf,OAAOzC,EAAOyC,GAAS,SAASpM,EAAQ+L,GACtC,OAAO/L,GAAUgM,OAAO,OACtBD,EAAME,SAAWvC,EAAQqC,IACvB,MAAO,KAAKG,KAAKhC,KAAQ6B,EAAMI,OAASJ,EAC9C,GACF,CApMWM,CAAQ,CACjB,YACA,QACA,gBACA,SACA,SACA,WACA,WACA,SACA,QACA,SACA,eACA,OACA,YACA,WACA,YACA,YACA,UACA,CAAE,MAAS,iBAAkB,QAAW,4BACxC,SACA,eACA,WACA,YACA,QACA,SACA,WACA,CAAE,MAAS,mBAAoB,QAAW,kBAC1C,YACA,CAAE,MAAS,OAAQ,QAAW,+BAC9B,WACA,cACA,CAAE,MAAS,cAAe,QAAW,QACrC,UACA,WACA,UACA,WACA,cACA,CAAE,MAAS,iBAAkB,QAAW,aACxC,CAAE,MAAS,aAAc,QAAW,aACpC,aACA,CAAE,MAAS,aAAc,QAAW,SACpC,QACA,CAAE,MAAS,QAAS,QAAW,OAC/B,WACA,SACA,CAAE,MAAS,SAAU,QAAW,sBAChC,CAAE,MAAS,gBAAiB,QAAW,kBACvC,CAAE,MAAS,UAAW,QAAW,yBACjC,CAAE,MAAS,kBAAmB,QAAW,SACzC,CAAE,MAAS,KAAM,QAAW,YAC5B,CAAE,MAAS,KAAM,QAAW,QAC5B,WAIEC,EAAUC,EAAW,CACvB,CAAE,MAAS,aAAc,QAAW,QACpC,aACA,CAAE,MAAS,WAAY,QAAW,YAClC,CAAE,MAAS,YAAa,QAAW,YACnC,CAAE,MAAS,YAAa,QAAW,YACnC,CAAE,MAAS,YAAa,QAAW,YACnC,CAAE,MAAS,YAAa,QAAW,WACnC,CAAE,MAAS,YAAa,QAAW,WACnC,CAAE,MAAS,iBAAkB,QAAW,WACxC,CAAE,MAAS,YAAa,QAAW,WACnC,CAAE,MAAS,iBAAkB,QAAW,WACxC,YACA,QACA,OACA,OACA,SACA,SACA,CAAE,MAAS,cAAe,QAAW,+BACrC,QACA,OACA,WACA,mBACA,cACA,WACA,cACA,CAAE,MAAS,QAAS,QAAW,QAC/B,MACA,WACA,CAAE,MAAS,WAAY,QAAW,QAClC,SAIEC,EAmFJ,SAAyBJ,GACvB,OAAOzC,EAAOyC,GAAS,SAASpM,EAAQzM,EAAO4J,GAE7C,OAAO6C,IACLzM,EAAM+Y,IACN/Y,EAAM,0BAA0B2Y,KAAKI,KACrCN,OAAO,MAAQtC,EAAQvM,GAAO,kBAAmB,KAAK+O,KAAKhC,KACxD/M,CACP,GACF,CA5FmBsP,CAAgB,CACjC,MAAS,CAAE,KAAQ,EAAG,OAAU,EAAG,KAAQ,GAC3C,QAAW,CAAC,EACZ,OAAU,CAAC,EACX,OAAU,CAAE,OAAU,EAAG,cAAe,GACxC,KAAQ,CAAE,YAAe,GACzB,iBAAkB,CAAE,KAAQ,GAC5B,WAAc,CAAE,SAAY,GAC5B,OAAU,CAAE,YAAa,EAAG,MAAS,GACrC,GAAM,CAAE,SAAY,GACpB,IAAO,CAAC,EACR,OAAU,CAAC,EACX,OAAU,CAAC,EACX,GAAM,CAAC,EACP,UAAa,CAAE,KAAQ,EAAG,WAAY,GACtC,SAAY,CAAE,KAAQ,GACtB,SAAY,CAAE,QAAS,EAAI,IAAO,GAClC,MAAS,CAAE,MAAS,GACpB,KAAQ,CAAC,EACT,QAAW,CAAE,WAAY,EAAG,YAAa,EAAG,YAAa,EAAG,YAAa,GACzE,KAAQ,CAAE,YAAe,EAAG,mBAAoB,GAChD,OAAU,CAAE,GAAM,EAAG,MAAS,KAI5BC,EA2FJ,SAAeN,GACb,OAAOzC,EAAOyC,GAAS,SAASpM,EAAQ+L,GACtC,IAAIE,EAAUF,EAAME,SAAWvC,EAAQqC,GAMvC,OALK/L,IAAWA,EACVgM,OAAO,MAAQC,EAAU,wBAAyB,KAAKC,KAAKhC,MAEhElK,EAveR,SAAmB0M,EAAIT,EAASE,GAI9B,IAAI5B,EAAO,CACT,OAAQ,KACR,IAAQ,uBACR,IAAQ,MACR,IAAQ,IACR,IAAQ,qBACR,MAAQ,sBACR,IAAQ,0BACR,IAAQ,KACR,KAAQ,WACR,MAAQ,OACR,MAAQ,KACR,OAAQ,MA8BV,OA3BI0B,GAAWE,GAAS,QAAQ1W,KAAKiX,KAAQ,mBAAmBjX,KAAKiX,KAChEnC,EAAOA,EAAK,UAAU2B,KAAKQ,OAC9BA,EAAK,WAAanC,GAGpBmC,EAAK5W,OAAO4W,GAERT,GAAWE,IACbO,EAAKA,EAAGjT,QAAQuS,OAAOC,EAAS,KAAME,IAGnC9C,EACHqD,EAAGjT,QAAQ,QAAS,OACjBA,QAAQ,SAAU,OAClBA,QAAQ,gBAAiB,UACzBA,QAAQ,cAAe,OACvBA,QAAQ,oBAAqB,MAC7BA,QAAQ,iBAAkB,MAC1BA,QAAQ,SAAU,OAClBA,QAAQ,KAAM,KACdA,QAAQ,6BAA8B,IACtCA,QAAQ,gBAAiB,UACzBA,QAAQ,yBAA0B,MAClCA,QAAQ,6BAA8B,MACtCmO,MAAM,QAAQ,GAIrB,CAwbiB+E,CAAU3M,EAAQiM,EAASF,EAAMI,OAASJ,IAE9C/L,CACT,GACF,CArGS4M,CAAM,CACb,gBACA,QACA,UACA,SACA,CAAE,MAAS,YAAa,QAAW,QACnC,SACA,CAAE,MAAS,gBAAiB,QAAW,aACvC,SACA,UACA,SACA,QACA,UACA,aACA,UACA,UACA,OACA,SACA,UACA,SACA,aACA,QACA,SACA,QACA,YACA,QACA,QACA,WACA,YACA,MACA,cACA,aA+EF,SAASL,EAAWH,GAClB,OAAOzC,EAAOyC,GAAS,SAASpM,EAAQ+L,GACtC,IAAIE,EAAUF,EAAME,SAAWvC,EAAQqC,GAiBvC,OAhBK/L,IAAWA,EACVgM,OAAO,MAAQC,EAAU,iBAAkB,KAAKC,KAAKhC,IACrD8B,OAAO,MAAQC,EAAU,gBAAiB,KAAKC,KAAKhC,IACpD8B,OAAO,MAAQC,EAAU,6CAA8C,KAAKC,KAAKhC,OAGhFlK,EAASlK,OAAQiW,EAAMI,QAAUH,OAAOC,EAAS,KAAKxW,KAAKsW,EAAMI,OAAUJ,EAAMI,MAAQnM,GAAQ4H,MAAM,MAAM,KAAO,SAASnS,KAAKuK,EAAO,MAC5IA,EAAO,IAAM,IAAMA,EAAO,IAG5B+L,EAAQA,EAAMI,OAASJ,EACvB/L,EAASqJ,EAAOrJ,EAAO,GACpBvG,QAAQuS,OAAOC,EAAS,KAAMF,GAC9BtS,QAAQuS,OAAO,SAAWD,EAAQ,SAAU,KAAM,KAClDtS,QAAQuS,OAAO,IAAMD,EAAQ,eAAgB,KAAM,WAEjD/L,CACT,GACF,CASA,SAAS6M,EAAWC,GAClB,OAAOnD,EAAOmD,GAAU,SAAS9M,EAAQiM,GACvC,OAAOjM,IAAWgM,OAAOC,EACvB,2DAA4D,KAAKC,KAAKhC,IAAO,GAAG,IAAM,IAC1F,GACF,CA4JA,GA5IA4B,IAAWA,EAAS,CAACA,IAQjB,cAAcrW,KAAKiX,KAAQJ,IAC1B/B,EAAO,kDAAkD2B,KAAKhC,MACjEoC,EAAUhD,EAAKiB,EAAK,IAEjB9Q,QAAQ,0BAA2B,KACjC,MAGH+S,IAAiBF,EACnBA,EAAUC,EAAW,CAACC,IACbA,GAAgBF,IACzBA,EAAUA,EACP7S,QAAQuS,OAAO,KAAOtC,EAAQ8C,GAAgB,YAAa,KAAMA,EAAe,KAChF/S,QAAQuS,OAAO,KAAOtC,EAAQ8C,GAAgB,eAAgB,KAAMA,EAAe,SAGnFjC,EAAO,gBAAgB2B,KAAKI,MAC/BA,EAAU/B,EAAK,IAGb,iBAAiB9U,KAAKyU,KACxBoC,GAAWA,EAAUA,EAAU,IAAM,IAAM,aAGjC,cAAR/J,GAAwB,YAAY9M,KAAKyU,IAC3CwB,EAAY7W,KAAK,sCAGP,MAAR0N,GAAgB,qBAAqB9M,KAAKyU,IAE5CsC,GADAjC,EAAON,EAAMC,EAAGzQ,QAAQ,iBAAkB,MACtB+S,aACpBF,EAAU/B,EAAK+B,SAGR,MAAM7W,KAAK6W,IAClB/J,IAASA,EAAO,UAChBmK,EAAK,QAAUnC,EAAO,gBAAgB2B,KAAKhC,IACvC,IAAMK,EAAK,GAAG9Q,QAAQ,KAAM,KAC5B,KAGW,aAAR8I,GAAuB,YAAY9M,KAAKiX,GAC/CA,EAAK,UAGGF,GAAgC,UAAhBA,IACpB,SAAS/W,KAAK8M,KAAU,qBAAqB9M,KAAKyU,IAAQ,WAAWzU,KAAK6W,KAC3E,cAAc7W,KAAKiX,IAAO,UAAUjX,KAAK8M,IAAS,eAAe9M,KAAKyU,IACzE3H,EAAO,kBACPmK,EAAK,cAAcjX,KAAKiX,GAAMA,EAAK,WAGpB,QAARnK,GACF,UAAU9M,KAAKyU,KAClBwC,EAAK,UACLhB,EAAYqB,QAAQ,iBAElB,wBAAwBtX,KAAKyU,IAC/BwB,EAAYqB,QAAQ,gBAIP,cAARxK,GAAwB,YAAY9M,KAAKyU,GAChDwB,EAAY7W,KAAK,cAGF,YAAR0N,IAAuBgI,EAAO,wBAAwB2B,KAAKhC,IAClEwB,EAAY7W,KAAK,0BAA4B0V,EAAK,IAGnC,WAARhI,IAAsBgI,EAAO,0BAA0B2B,KAAKhC,KACnEwC,IAAOA,EAAK,cACZJ,IAAYA,EAAU/B,EAAK,MAGnBhI,IAASgI,GAAQ,iBAAiB9U,KAAKyU,IAAO,yBAAyBgC,KAAK3J,KAEhFA,IAAS+J,GAAW,kBAAkB7W,KAAKyU,EAAGlU,MAAMkU,EAAG8C,QAAQzC,EAAO,KAAO,MAE/EhI,EAAO,OAGJgI,EAAO+B,GAAWE,GAAgBE,KAClCJ,GAAWE,GAAgB,6CAA6C/W,KAAKiX,MAChFnK,EAAO,mBAAmB2J,KAAK,cAAczW,KAAKiX,GAAMA,EAAKnC,GAAQ,aAIxD,YAARhI,IAAuBgI,GAAQ,uBAAuB2B,KAAKhC,IAAO,GAAG,KAC5EwB,EAAY7W,KAAK,YAAc0V,GAG5BsB,IACHA,EAAUgB,EAAW,CACnB,iKACA,UACAnD,EAAQnH,GACR,qCAICgI,GACW,QAAVuB,GAAoBmB,WAAWpB,GAAW,EAAK,SAC/C,YAAYpW,KAAK8M,KAAU,UAAU9M,KAAKyU,GAAM,QAAU,YAC1D,8BAA8BzU,KAAKyU,KAAQ,yBAAyBzU,KAAKqW,IAAW,WACnFA,GAAU,YAAYrW,KAAKyU,KAAc,UAANwC,EAAiB,SAAW,YACtD,UAAVZ,GAAsB,8BAA8BrW,KAAK8M,IAAS,cAEtEuJ,EAAS,CAACvB,IAGA,MAARhI,IAAiBgI,GAAQ,4BAA4B2B,KAAKhC,IAAO,GAAG,KACtE3H,GAAQ,UACRmK,EAAK,kBAAoB,MAAMjX,KAAK8U,GAAQA,EAAOA,EAAO,MAC1DmB,EAAYqB,QAAQ,iBAGb,iBAAiBtX,KAAKyU,IAC7B3H,EAAO,YACPmK,EAAK,oBACLhB,EAAYqB,QAAQ,gBACpBlB,IAAYA,GAAW,gBAAgBK,KAAKhC,IAAO,GAAG,KAGvC,MAAR3H,GAA0B,WAAVuJ,IAAwBvB,EAAO,gBAAgB2B,KAAKhC,MACvE3H,GACFmJ,EAAY7W,KAAK,kBAAoB0N,GAAQsJ,EAAU,IAAMA,EAAU,KAEzEtJ,EAAO,KACPsJ,EAAUtB,EAAK,IAGbqB,EAAa,CAGf,GA7jBJ,SAAoB5I,EAAQ2B,GAC1B,IAAI/F,EAAiB,MAAVoE,SAAwBA,EAAO2B,GAAY,SACtD,OAAQ,wCAAwClP,KAAKmJ,KAC1C,UAARA,KAAqBoE,EAAO2B,GACjC,CAyjBQuI,CAAW5O,EAAS,UAMtB,GALIwM,IAEFW,GADAlB,EAAOO,EAAKqC,KAAKC,QACLC,YAAY,WACxBX,EAAKA,GAAMnC,EAAK8C,YAAY,WAAa,IAAM9C,EAAK8C,YAAY,eAE9DrC,EAAO,CACT,IACEa,EAAUvN,EAAQ9L,QAAQ,gBAAgBqZ,QAAQnE,KAAK,KACvDnF,EAAO,SACT,CAAE,MAAM/O,IACD+W,EAAOjM,EAAQgP,SAAW/C,EAAK1B,OAAOyE,QAAUhP,EAAQgP,SAC3D/K,EAAO,UACPmK,IAAOA,EAAKnC,EAAK,GAAGmC,IAAM,MAE9B,CACKnK,IACHA,EAAO,QAEX,KAE4B,iBAAnBjE,EAAQiP,UAAwBjP,EAAQiP,QAAQC,UACtDjD,EAAOjM,EAAQiP,WAEY,iBAAjBhD,EAAKkD,WACuB,iBAA1BlD,EAAKkD,SAASC,UACvBhC,EAAY7W,KAAK,QAAU0V,EAAKkD,SAASE,MACzCpL,EAAO,WACPsJ,EAAUtB,EAAKkD,SAASC,UACY,iBAApBnD,EAAKkD,SAASG,KAC9BlC,EAAY7W,KAAK,YAAcgX,EAAS,QAAUtB,EAAKkD,SAASE,MAChEpL,EAAO,QACPsJ,EAAUtB,EAAKkD,SAASG,KAGvBrL,IACHA,EAAO,UACPkJ,EAAOlB,EAAKkB,KACZiB,EAAKnC,EAAKP,SAEV6B,GADAA,EAAU,SAASK,KAAK3B,EAAKsB,UACTA,EAAQ,GAAK,YAK9BpC,EAAYc,EAAOjM,EAAQuP,UAAalD,GAC/CpI,EAAO,YACPmK,EAAKnC,EAAKuD,MAAMR,OAAOS,aAAarB,IAG7BjD,EAAYc,EAAOjM,EAAQ0P,UAAajD,GAC/CxI,EAAO,YACPsJ,GAAWtB,EAAOA,EAAKsB,SAAW,OAAUtB,EAAK0D,MAAQ,IAAM1D,EAAK2D,MAAQ,IAAM3D,EAAK4D,OAGrD,iBAApB/C,EAAIgD,eAA6B7D,EAAO,oBAAoB2B,KAAKhC,KAG/E2B,EAAU,CAACA,EAAST,EAAIgD,eACnB7D,GAAQA,EAAK,GAAK,IAAMsB,EAAQ,KACnCH,EAAY7W,KAAK,MAAQgX,EAAQ,GAAK,SACtCC,IAAWA,EAAO,GAAK,IACvBD,EAAQ,GAAKtB,GAEfsB,EAAkB,MAARtJ,EAAezM,OAAO+V,EAAQ,GAAGwC,QAAQ,IAAMxC,EAAQ,IAG/B,iBAApBT,EAAIgD,cAA4B,wBAAwB3Y,KAAK8M,KAC3EmJ,EAAY7W,KAAK,cAAgB0N,EAAO,IAAMsJ,GAC9CtJ,EAAO,KACPsJ,EAAU,OACVC,EAAS,CAAC,WACVY,EAAK,WAEPA,EAAKA,GAAMrD,EAAOqD,EACpB,CAYA,GAVIb,IAAYtB,EACV,0CAA0C2B,KAAKL,IAC/C,2BAA2BK,KAAKhC,EAAK,KAAO0B,GAAexB,EAAIkE,mBAC/D,iBAAiB7Y,KAAKyU,IAAO,OAEjCyB,EAAa,KAAKlW,KAAK8U,GAAQ,OAAS,QACxCsB,EAAUA,EAAQpS,QAAQuS,OAAOzB,EAAO,SAAU,KACjC,QAAdoB,EAAuBR,EAAOD,IAAU,SAASgB,KAAK3B,IAAS,KAGxD,UAARhI,GAA4B,WAARA,GAAqB,mCAAmC9M,KAAKiX,GACnFnK,EAAO,sBAGJ,GAAY,WAARA,GAAqBsJ,EAC5BA,EAAUA,EAAQpS,QAAQ,WAAY,WAGnC,GAAI,YAAYhE,KAAK6W,GACT,YAAXA,IACFI,EAAK,MAEQ,YAAXJ,GAAyB,eAAe7W,KAAKyU,IAC/CwB,EAAYqB,QAAQ,oBAInB,IAAK,wBAAwBtX,KAAK8M,MAASA,GAAS+J,GAAY,eAAe7W,KAAK8M,KAC9E,cAANmK,IAAsB,QAAQjX,KAAKyU,GAInC,GAAY,MAAR3H,GAAgBqJ,EACvB,IAC2B,OAArBtN,EAAQiQ,UACV7C,EAAYqB,QAAQ,mBAExB,CAAE,MAAMvZ,GACNkY,EAAYqB,QAAQ,WACtB,MAIQ,iBAAiBtX,KAAK6W,IAAY,WAAW7W,KAAKyU,MAASK,GAC9DyB,OAAOM,EAAQ7S,QAAQ,MAAO,MAAQ,aAAc,KAAKyS,KAAKhC,IAAO,GAAG,IACzE2B,IAGJa,IADAnC,EAAO,CAACA,EAAM,OAAO9U,KAAKyU,KACf,IAAMoC,EAAU,KAAME,EAAe,cAAgB,mBAAqB,IAAMjC,EAAK,GAChGsB,EAAU,MAIHtP,MAAQgN,GAAqB,OAAX+C,IACpBV,GAAeN,GACf,QAAQ7V,KAAK8M,IAAS,wBAAwB9M,KAAKyU,IAC3C,WAAR3H,GAAqB,uBAAuB9M,KAAKiX,IACzC,MAARnK,IACEmK,IAAO,OAAOjX,KAAKiX,IAAOb,EAAU,KACrC,iBAAiBpW,KAAKiX,IAAOb,EAAU,GAC5B,GAAXA,IAAiB,cAAcpW,KAAKyU,OAElClB,EAAQvT,KAAM8U,EAAON,EAAMlW,KAAKwV,EAAQW,EAAGzQ,QAAQuP,EAAS,IAAM,OAAUuB,EAAKhI,OAEzFgI,EAAO,UAAYA,EAAKhI,OAASgI,EAAOA,EAAKsB,SAAW,IAAMtB,EAAO,IACjEvB,EAAQvT,KAAK8M,IACX,SAAS9M,KAAK8U,IAAe,UAANmC,IACzBA,EAAK,MAEPnC,EAAO,WAAaA,IAIpBA,EAAO,OAASA,EAEdhI,EADEiJ,EACKnC,EAAOmC,EAAW/R,QAAQ,kBAAmB,UAE7C,QAEL,SAAShE,KAAK8U,KAChBmC,EAAK,MAEFd,IACHC,EAAU,OAGdC,EAAS,CAAC,UACVJ,EAAY7W,KAAK0V,SA1DjBhI,GAAQ,WA6DLgI,GAAQ,8BAA8B2B,KAAKhC,IAAO,GAAG,MAGxDK,EAAO,CAAC0C,WAAW1C,EAAK9Q,QAAQ,UAAW,SAAU8Q,GAEzC,UAARhI,GAAyC,KAArBgI,EAAK,GAAGvU,OAAO,IACrCuM,EAAO,iBACPoJ,EAAa,QACbE,EAAUtB,EAAK,GAAGvU,MAAM,GAAI,IAGrB6V,GAAWtB,EAAK,IACrBsB,IAAYtB,EAAK,IAAM,yBAAyB2B,KAAKhC,IAAO,GAAG,MACjE2B,EAAU,MAGZtB,EAAK,IAAM,mCAAmC2B,KAAKhC,IAAO,GAAG,GAE9C,QAAXK,EAAK,IAA2B,QAAXA,EAAK,IAAgB0C,WAAW1C,EAAK,KAAO,IAAgB,UAAVuB,IACzEA,EAAS,CAAC,UAIPF,IAAiBnB,GAAeF,EAAK,KAIxCuB,IAAWA,EAAO,GAAK,eACvBvB,EAAOA,EAAK,MAAOA,EAAOA,EAAK,IAAW,IAAM,EAAIA,EAAO,IAAM,EAAIA,EAAO,OAAS,EAAIA,EAAO,IAAM,EAAIA,EAAO,OAAS,EAAIA,EAAO,OAAS,EAAIA,EAAO,MAAS,EAAIA,EAAO,OAAS,EAAIA,EAAO,OAAS,EAAIA,EAAO,OAAS,GAAKA,EAAO,MAAS,GAAKA,EAAO,OAAS,GAAKA,EAAO,OAAS,MAAQA,EAAO,OAAS,GAAKA,EAAO,OAAS,GAAKA,EAAO,OAAS,GAAKA,EAAO,OAAS,GAAKA,EAAO,MAAS,GAAKA,EAAO,OAAS,GAAKA,EAAO,OAAS,MAAQA,EAAO,OAAS,GAAKA,EAAO,OAAS,GAAKA,EAAO,OAAS,GAAKA,EAAO,OAAS,GAAe,SAAVuB,EAAoB,KAAO,QAJ1iBA,IAAWA,EAAO,GAAK,eACvBvB,GAAQA,EAAOA,EAAK,IAAW,IAAM,EAAIA,EAAO,IAAM,EAAIA,EAAO,IAAM,EAAIA,EAAO,IAAM,EAAIA,EAAO,IAAM,KAAOA,EAAO,IAAM,EAAIA,EAAO,IAAM,EAAIA,EAAO,IAAM,EAAIA,EAAO,IAAM,EAAIA,EAAO,IAAM,EAAIA,EAAO,IAAM,GAAKA,EAAO,IAAM,GAAKA,EAAO,IAAM,GAAK,MAM7PuB,IAAWA,EAAO,IAAM,KAAOvB,GAAuB,iBAARA,EAAmB,KAAO,OAAO9U,KAAK8U,GAAQ,GAAK,MAErF,UAARhI,KAAsBsJ,GAAW2C,SAAS3C,GAAW,IACvDA,EAAUtB,EACO,UAARhI,GAAoB,oBAAoB9M,KAAKyU,IACtDwB,EAAYqB,QAAQ,aAIZ,SAARxK,IAAqBgI,EAAO,eAAe2B,KAAKQ,KAClDnK,GAAQ,IACRmJ,EAAYqB,QAAQ,gBACR,QAARxC,GACFhI,GAAQ,OACRsJ,EAAU,MAEVtJ,GAAQ,SAEVmK,EAAKA,EAAGjT,QAAQuS,OAAO,KAAOzB,EAAO,KAAM,KAG5B,UAARhI,GAAoB,aAAa2J,KAAKJ,GAAUA,EAAO,KAC9DJ,EAAYqB,QAAQ,gBACpBxK,EAAO,gBACPsJ,EAAU,KAEN,WAAWpW,KAAKiX,IAClBF,EAAe,QACfE,EAAK,YAELA,EAAK,MAIA,kBAAkBjX,KAAK8M,KAAUsJ,IACxCA,EAAUgB,EAAW,WAGnBhB,GAA2D,GAAhDA,EAAQmB,QAASzC,EAAO,UAAU2B,KAAKQ,KAClDxC,EAAG8C,QAAQ,IAAMzC,EAAO,MAAQ,IAClCmC,EAAKpD,EAAKoD,EAAGjT,QAAQ8Q,EAAM,MAGzBmC,IAA2B,GAArBA,EAAGM,QAAQzK,KAAgByJ,OAAOzJ,EAAO,OAAO9M,KAAKiX,KAC7DA,EAAKA,EAAGjT,QAAQuS,OAAO,KAAOtC,EAAQnH,GAAQ,MAAO,KAGnDuJ,IAAW,qBAAqBrW,KAAK8M,KACrC,4BAA4B9M,KAAK8M,IACzB,UAARA,GAAoB,OAAO9M,KAAKiX,IAAO,aAAajX,KAAKqW,EAAO,KAChE,6GAA6GrW,KAAK8M,IAASuJ,EAAO,MAEnIvB,EAAOuB,EAAOA,EAAO7Y,OAAS,KAAOyY,EAAY7W,KAAK0V,GAGrDmB,EAAYzY,SACdyY,EAAc,CAAC,IAAMA,EAAYhE,KAAK,MAAQ,MAG5C8E,GAAgBF,GAAWA,EAAQU,QAAQR,GAAgB,GAC7Dd,EAAY7W,KAAK,MAAQ2X,GAGvBF,GACFZ,EAAY7W,MAAM,OAAOY,KAAKiW,EAAYA,EAAYzY,OAAS,IAAM,GAAK,OAASqZ,GAGjFI,IACFnC,EAAO,cAAc2B,KAAKQ,GAC1BlC,EAAmBD,GAAqD,KAA7CmC,EAAGtJ,OAAOsJ,EAAGzZ,OAASsX,EAAK,GAAGtX,OAAS,GAClEyZ,EAAK,CACH,aAAgB,GAChB,OAAWnC,IAASC,EAAoBkC,EAAGjT,QAAQ8Q,EAAK,GAAI,IAAMmC,EAClE,QAAWnC,EAAOA,EAAK,GAAK,KAC5B,SAAY,WACV,IAAIsB,EAAUtP,KAAKsP,QACnB,OAAOtP,KAAKkS,QAAW5C,IAAYrB,EAAoB,IAAMqB,EAAU,KAA4B,IAArBtP,KAAKmS,aAAqB,UAAY,GACtH,KAICnE,EAAO,mCAAmC2B,KAAKT,MAAW,YAAYhW,KAAKgW,IAC1EiB,IACFA,EAAGgC,aAAe,GAClBhC,EAAG+B,OAAS/B,EAAG+B,OAAOhV,QAAQuS,OAAO,KAAOzB,GAAO,KAGjDhI,IAAS,aAAa9M,KAAKyU,IAC1B0B,GAAe,eAAenW,KAAK2U,EAAIuE,UAAYvE,EAAIJ,YAAc,kBAAkBvU,KAAKyU,KAE/FwB,EAAYqB,QAAQ,WAKpBL,GAAM,QAAQjX,KAAKiX,EAAG+B,SACd,UAARlM,GAAoB0K,WAAWpB,IAAY,KAE7Ca,EAAGgC,aAAe,IAGpBxE,IAAOA,EAAK,MAUZ,IAAIF,EAAW,CAAC,EAoJhB,OA5IAA,EAAS0B,YAAcxB,EAWvBF,EAAS8B,OAASA,GAAUA,EAAO,GAanC9B,EAASwC,aAAeA,EAgBxBxC,EAASzH,KAAOA,EAQhByH,EAAS2B,WAAaA,EAatB3B,EAASsC,QAAUA,EAQnBtC,EAASE,GAAKA,EAQdF,EAAS6B,QAAUtJ,GAAQsJ,EAQ3B7B,EAAS0C,GAAKA,GAAM,CAQlB,aAAgB,KAahB,OAAU,KAQV,QAAW,KAQX,SAAY,WAAa,MAAO,MAAQ,GAG1C1C,EAASC,MAAQA,EACjBD,EAASrE,SAjlBT,WACE,OAAOpJ,KAAKmP,aAAe,EAC7B,EAilBI1B,EAAS6B,SACXH,EAAYqB,QAAQlB,GAElB7B,EAASzH,MACXmJ,EAAYqB,QAAQxK,GAElBmK,GAAMnK,IAAUmK,GAAM5W,OAAO4W,GAAI9E,MAAM,KAAK,IAAO8E,GAAMnK,EAAKqF,MAAM,KAAK,KAAM0E,IACjFZ,EAAY7W,KAAKyX,EAAU,IAAMI,EAAK,IAAM,MAAQA,GAElDhB,EAAYzY,SACd+W,EAAS0B,YAAcA,EAAYhE,KAAK,MAEnCsC,CACT,CAKeC,GAObzB,EAAKwB,SAAWA,OAKf,KAFDrM,aACE,OAAOqM,CACR,+BAaJ,GAACjW,KAAKwI,K,+DC3uCP,SAASqS,EAAmBC,EAAKhP,EAASC,EAAQgP,EAAOC,EAAQ5R,EAAKwB,GACpE,IACE,IAAIuC,EAAO2N,EAAI1R,GAAKwB,GAChBpL,EAAQ2N,EAAK3N,KACnB,CAAE,MAAO6M,GAEP,YADAN,EAAOM,EAET,CACIc,EAAK5N,KACPuM,EAAQtM,GAERsP,QAAQhD,QAAQtM,GAAO2M,KAAK4O,EAAOC,EAEvC,CACe,SAASC,EAAkBtQ,GACxC,OAAO,WACL,IAAI/B,EAAOJ,KACT0S,EAAOzZ,UACT,OAAO,IAAIqN,SAAQ,SAAUhD,EAASC,GACpC,IAAI+O,EAAMnQ,EAAGqG,MAAMpI,EAAMsS,GACzB,SAASH,EAAMvb,GACbqb,EAAmBC,EAAKhP,EAASC,EAAQgP,EAAOC,EAAQ,OAAQxb,EAClE,CACA,SAASwb,EAAOnb,GACdgb,EAAmBC,EAAKhP,EAASC,EAAQgP,EAAOC,EAAQ,QAASnb,EACnE,CACAkb,OAAMpZ,EACR,GACF,CACF,CA7BA,iC,kDCAuC,IAAkBwZ,QAAnC,qBAAd7E,YAAiD6E,QAI/C,WAAc,aAEtB,IAAIC,MAAQ,6BACRC,aAAe,GACfC,eAAgB,EAChBC,qBAAuB,OAEvBC,aAAe,SAAsBC,GACvCH,gBAAkBG,CACpB,EAEIC,aAAe,WACjB,OAAOJ,aACT,EAEIK,gBAAkB,SAAyBnc,GAC7C6b,aAAe7b,CACjB,EAEIoc,gBAAkB,WACpB,OAAOP,YACT,EAEA,SAASQ,UAAUhR,GAEjB,OAAOyM,SAASwE,cAAcjR,EAChC,CAEA,SAASkR,gBAAgBC,EAASC,GAChC,IAAI9c,EAEA+c,EADAvV,EAAMqV,EAAQ9c,OAGlB,IAAKC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EAGxB,IAAK,IAAIgd,KAFTD,EAAkBF,EAAQ7c,GAAG6J,UAGvBnI,OAAOmI,UAAUE,eAAelJ,KAAKkc,EAAiBC,KAAOF,EAAYjT,UAAUmT,GAAQD,EAAgBC,GAGrH,CAEA,SAASC,cAAcnN,EAAQoN,GAC7B,OAAOxb,OAAOkQ,yBAAyB9B,EAAQoN,EACjD,CAEA,SAASC,oBAAoBtT,GAC3B,SAASuT,IAAiB,CAG1B,OADAA,EAAcvT,UAAYA,EACnBuT,CACT,CAGA,IAAIC,uBAAyB,WAC3B,SAASC,EAAgBC,GACvBlU,KAAKmU,OAAS,GACdnU,KAAKkU,aAAeA,EACpBlU,KAAKoU,QAAU,EACfpU,KAAKqU,UAAW,CAClB,CAoFA,OAlFAJ,EAAgBzT,UAAY,CAC1B8T,SAAU,SAAkBC,GAC1BvU,KAAKmU,OAAO7b,KAAKic,EACnB,EACAC,MAAO,WACL,IAAI7d,EACAwH,EAAM6B,KAAKmU,OAAOzd,OAEtB,IAAKC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACxBqJ,KAAKmU,OAAOxd,GAAG6d,OAEnB,EACAC,OAAQ,WACN,IAAI9d,EACAwH,EAAM6B,KAAKmU,OAAOzd,OAEtB,IAAKC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACxBqJ,KAAKmU,OAAOxd,GAAG8d,QAEnB,EACAC,QAAS,SAAiBC,GACxB,IAAIhe,EACAwH,EAAM6B,KAAKmU,OAAOzd,OAEtB,IAAKC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACxBqJ,KAAKmU,OAAOxd,GAAG+d,QAAQC,EAE3B,EACAC,YAAa,SAAqBC,GAChC,OAAI7U,KAAKkU,aACAlU,KAAKkU,aAAaW,GAGvB3U,OAAO4U,KACF,IAAI5U,OAAO4U,KAAK,CACrBC,IAAK,CAACF,KAIH,CACLG,WAAW,EACXC,KAAM,WACJjV,KAAKgV,WAAY,CACnB,EACAE,KAAM,WACJlV,KAAKgV,WAAY,CACnB,EACAG,QAAS,WAAoB,EAC7BC,KAAM,WAAiB,EACvBC,UAAW,WAAsB,EAErC,EACAC,gBAAiB,SAAyBpB,GACxClU,KAAKkU,aAAeA,CACtB,EACAmB,UAAW,SAAmBre,GAC5BgJ,KAAKoU,QAAUpd,EAEfgJ,KAAKuV,eACP,EACAC,KAAM,WACJxV,KAAKqU,UAAW,EAEhBrU,KAAKuV,eACP,EACAE,OAAQ,WACNzV,KAAKqU,UAAW,EAEhBrU,KAAKuV,eACP,EACAG,UAAW,WACT,OAAO1V,KAAKoU,OACd,EACAmB,cAAe,WACb,IAAI5e,EACAwH,EAAM6B,KAAKmU,OAAOzd,OAEtB,IAAKC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACxBqJ,KAAKmU,OAAOxd,GAAGgf,OAAO3V,KAAKoU,SAAWpU,KAAKqU,SAAW,EAAI,GAE9D,GAEK,WACL,OAAO,IAAIJ,CACb,CACF,CA7F6B,GA+FzB2B,iBAAmB,WACrB,SAASC,EAAmBxT,EAAMlE,GAChC,IAEInH,EAFAL,EAAI,EACJkB,EAAM,GAGV,OAAQwK,GACN,IAAK,QACL,IAAK,SACHrL,EAAQ,EACR,MAEF,QACEA,EAAQ,IAIZ,IAAKL,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACxBkB,EAAIS,KAAKtB,GAGX,OAAOa,CACT,CAkBA,MAAiC,oBAAtBie,mBAA4D,oBAAjBC,aAhBtD,SAAiC1T,EAAMlE,GACrC,MAAa,YAATkE,EACK,IAAI0T,aAAa5X,GAGb,UAATkE,EACK,IAAI2T,WAAW7X,GAGX,WAATkE,EACK,IAAIyT,kBAAkB3X,GAGxB0X,EAAmBxT,EAAMlE,EAClC,EAMO0X,CACT,CA7CuB,GA+CvB,SAASI,iBAAiB9X,GACxB,OAAO3H,MAAMgS,MAAM,KAAM,CACvB9R,OAAQyH,GAEZ,CAEA,SAAS+X,UAAUvV,GAAuV,OAA1OuV,UAArD,oBAAX5f,QAAoD,kBAApBA,OAAOC,SAAqC,SAAiBoK,GAAO,cAAcA,CAAK,EAAwB,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXrK,QAAyBqK,EAAIoF,cAAgBzP,QAAUqK,IAAQrK,OAAOkK,UAAY,gBAAkBG,CAAK,EAAYuV,UAAUvV,EAAM,CACjY,IAAIwV,iBAAkB,EAClBC,kBAAoB,KACpBC,sBAAwB,KACxBC,WAAa,GACbC,SAAW,iCAAiCrd,KAAK4U,UAAUC,WAC3DyI,oBAAqB,EACrBC,MAAQva,KAAKsQ,IACbkK,OAASxa,KAAKya,KACdC,QAAU1a,KAAKC,MACf0a,MAAQ3a,KAAK4a,IACbC,MAAQ7a,KAAK8a,IACbC,OAAS,CAAC,EAYd,SAASC,qBACP,MAAO,CAAC,CACV,EAZA,WACE,IACIvgB,EADAwgB,EAAgB,CAAC,MAAO,OAAQ,QAAS,OAAQ,QAAS,OAAQ,QAAS,QAAS,OAAQ,OAAQ,QAAS,QAAS,MAAO,OAAQ,MAAO,QAAS,SAAU,QAAS,OAAQ,MAAO,QAAS,OAAQ,QAAS,MAAO,MAAO,MAAO,SAAU,QAAS,OAAQ,MAAO,OAAQ,OAAQ,MAAO,OAAQ,QAAS,IAAK,OAAQ,MAAO,SAAU,QAAS,KAAM,UAAW,SAExWhZ,EAAMgZ,EAAczgB,OAExB,IAAKC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACxBsgB,OAAOE,EAAcxgB,IAAMuF,KAAKib,EAAcxgB,GAEjD,CARD,GAcAsgB,OAAOG,OAASlb,KAAKkb,OAErBH,OAAOta,IAAM,SAAUuB,GAGrB,GAAe,WAFFgY,UAAUhY,IAEIA,EAAIxH,OAAQ,CACrC,IACIC,EADA0gB,EAASpB,iBAAiB/X,EAAIxH,QAE9ByH,EAAMD,EAAIxH,OAEd,IAAKC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACxB0gB,EAAO1gB,GAAKuF,KAAKS,IAAIuB,EAAIvH,IAG3B,OAAO0gB,CACT,CAEA,OAAOnb,KAAKS,IAAIuB,EAClB,EAEA,IAAIoZ,qBAAuB,IACvBC,UAAYrb,KAAKsb,GAAK,IACtBC,YAAc,MAElB,SAASC,YAAYzE,GACnBuD,qBAAuBvD,CACzB,CAEA,SAAS0E,MAAM3gB,GACb,OAAIwf,mBACKta,KAAK0b,MAAM5gB,GAGbA,CACT,CAEA,SAAS6gB,SAASC,GAChBA,EAAQC,MAAMC,SAAW,WACzBF,EAAQC,MAAME,IAAM,EACpBH,EAAQC,MAAMG,KAAO,EACrBJ,EAAQC,MAAMI,QAAU,QACxBL,EAAQC,MAAMK,gBAAkB,MAChCN,EAAQC,MAAMM,sBAAwB,MACtCP,EAAQC,MAAMO,mBAAqB,UACnCR,EAAQC,MAAMQ,yBAA2B,UACzCT,EAAQC,MAAMS,eAAiB,cAC/BV,EAAQC,MAAMU,qBAAuB,cACrCX,EAAQC,MAAMW,kBAAoB,aACpC,CAEA,SAASC,kBAAkBtW,EAAMuW,EAAaC,EAAWC,GACvD9Y,KAAKqC,KAAOA,EACZrC,KAAK4Y,YAAcA,EACnB5Y,KAAK6Y,UAAYA,EACjB7Y,KAAK+Y,UAAYD,EAAkB,GAAK,EAAI,CAC9C,CAEA,SAASE,gBAAgB3W,EAAMyW,GAC7B9Y,KAAKqC,KAAOA,EACZrC,KAAK+Y,UAAYD,EAAkB,GAAK,EAAI,CAC9C,CAEA,SAASG,oBAAoB5W,EAAM6W,EAAYC,EAAaL,GAC1D9Y,KAAKqC,KAAOA,EACZrC,KAAKmZ,YAAcA,EACnBnZ,KAAKkZ,WAAaA,EAClBlZ,KAAK+Y,UAAYD,EAAkB,GAAK,EAAI,CAC9C,CAEA,SAASM,oBAAoB/W,EAAMgX,EAAYC,GAC7CtZ,KAAKqC,KAAOA,EACZrC,KAAKqZ,WAAaA,EAClBrZ,KAAKsZ,YAAcA,CACrB,CAEA,SAASC,eAAelX,EAAM8F,GAC5BnI,KAAKqC,KAAOA,EACZrC,KAAKmI,OAASA,CAChB,CAEA,SAASqR,wBAAwBC,EAAab,GAC5C5Y,KAAKqC,KAAO,mBACZrC,KAAKyZ,YAAcA,EACnBzZ,KAAK4Y,YAAcA,CACrB,CAEA,SAASc,mBAAmBD,GAC1BzZ,KAAKqC,KAAO,cACZrC,KAAKyZ,YAAcA,CACrB,CAEA,SAASE,4BAA4BtX,EAAMoX,GACzCzZ,KAAKqC,KAAOA,EACZrC,KAAKyZ,YAAcA,CACrB,CAEA,IAAIG,gBAAkB,WACpB,IAAIC,EAAS,EACb,OAAO,WAEL,OAAOvD,WAAa,qBADpBuD,GAAU,EAEZ,CACF,CANsB,GAQtB,SAASC,SAASre,EAAG5E,EAAGkjB,GACtB,IAAIC,EACAja,EACAka,EACAtjB,EACAQ,EACAyF,EACAsd,EACA9d,EAOJ,OAJAQ,EAAImd,GAAK,EAAIljB,GACbqjB,EAAIH,GAAK,GAFT5iB,EAAQ,EAAJsE,GADJ9E,EAAIuF,KAAKC,MAAU,EAAJV,KAGE5E,GACjBuF,EAAI2d,GAAK,GAAK,EAAI5iB,GAAKN,GAEfF,EAAI,GACV,KAAK,EACHqjB,EAAID,EACJha,EAAI3D,EACJ6d,EAAIrd,EACJ,MAEF,KAAK,EACHod,EAAIE,EACJna,EAAIga,EACJE,EAAIrd,EACJ,MAEF,KAAK,EACHod,EAAIpd,EACJmD,EAAIga,EACJE,EAAI7d,EACJ,MAEF,KAAK,EACH4d,EAAIpd,EACJmD,EAAIma,EACJD,EAAIF,EACJ,MAEF,KAAK,EACHC,EAAI5d,EACJ2D,EAAInD,EACJqd,EAAIF,EACJ,MAEF,KAAK,EACHC,EAAID,EACJha,EAAInD,EACJqd,EAAIC,EAOR,MAAO,CAACF,EAAGja,EAAGka,EAChB,CAEA,SAASE,SAASH,EAAGja,EAAGka,GACtB,IAGIxe,EAHAqb,EAAM5a,KAAK4a,IAAIkD,EAAGja,EAAGka,GACrBjD,EAAM9a,KAAK8a,IAAIgD,EAAGja,EAAGka,GACrB3f,EAAIwc,EAAME,EAEVngB,EAAY,IAARigB,EAAY,EAAIxc,EAAIwc,EACxBiD,EAAIjD,EAAM,IAEd,OAAQA,GACN,KAAKE,EACHvb,EAAI,EACJ,MAEF,KAAKue,EACHve,EAAIsE,EAAIka,EAAI3f,GAAKyF,EAAIka,EAAI,EAAI,GAC7Bxe,GAAK,EAAInB,EACT,MAEF,KAAKyF,EACHtE,EAAIwe,EAAID,EAAQ,EAAJ1f,EACZmB,GAAK,EAAInB,EACT,MAEF,KAAK2f,EACHxe,EAAIue,EAAIja,EAAQ,EAAJzF,EACZmB,GAAK,EAAInB,EAOb,MAAO,CAACmB,EAAG5E,EAAGkjB,EAChB,CAEA,SAASK,mBAAmBC,EAAOC,GACjC,IAAIC,EAAMJ,SAAoB,IAAXE,EAAM,GAAqB,IAAXA,EAAM,GAAqB,IAAXA,EAAM,IASzD,OARAE,EAAI,IAAMD,EAENC,EAAI,GAAK,EACXA,EAAI,GAAK,EACAA,EAAI,IAAM,IACnBA,EAAI,GAAK,GAGJT,SAASS,EAAI,GAAIA,EAAI,GAAIA,EAAI,GACtC,CAEA,SAASC,mBAAmBH,EAAOC,GACjC,IAAIC,EAAMJ,SAAoB,IAAXE,EAAM,GAAqB,IAAXA,EAAM,GAAqB,IAAXA,EAAM,IASzD,OARAE,EAAI,IAAMD,EAENC,EAAI,GAAK,EACXA,EAAI,GAAK,EACAA,EAAI,GAAK,IAClBA,EAAI,GAAK,GAGJT,SAASS,EAAI,GAAIA,EAAI,GAAIA,EAAI,GACtC,CAEA,SAASE,YAAYJ,EAAOC,GAC1B,IAAIC,EAAMJ,SAAoB,IAAXE,EAAM,GAAqB,IAAXA,EAAM,GAAqB,IAAXA,EAAM,IASzD,OARAE,EAAI,IAAMD,EAAS,IAEfC,EAAI,GAAK,EACXA,EAAI,IAAM,EACDA,EAAI,GAAK,IAClBA,EAAI,IAAM,GAGLT,SAASS,EAAI,GAAIA,EAAI,GAAIA,EAAI,GACtC,CAEA,IAAIG,SAAW,WACb,IACI/jB,EACAgkB,EAFAC,EAAW,GAIf,IAAKjkB,EAAI,EAAGA,EAAI,IAAKA,GAAK,EACxBgkB,EAAMhkB,EAAEyS,SAAS,IACjBwR,EAASjkB,GAAoB,IAAfgkB,EAAIjkB,OAAe,IAAMikB,EAAMA,EAG/C,OAAO,SAAUX,EAAGja,EAAGka,GAarB,OAZID,EAAI,IACNA,EAAI,GAGFja,EAAI,IACNA,EAAI,GAGFka,EAAI,IACNA,EAAI,GAGC,IAAMW,EAASZ,GAAKY,EAAS7a,GAAK6a,EAASX,EACpD,CACF,CAzBe,GA2BXY,mBAAqB,SAA4B5H,GACnDkD,kBAAoBlD,CACtB,EAEI6H,mBAAqB,WACvB,OAAO3E,eACT,EAEI4E,qBAAuB,SAA8B/jB,GACvDof,kBAAoBpf,CACtB,EAEIgkB,qBAAuB,WACzB,OAAO5E,iBACT,EAEI6E,wBAA0B,SAAiCjkB,GAC7Dqf,sBAAwBrf,CAC1B,EAEIkkB,wBAA0B,WAC5B,OAAO7E,qBACT,EAEI8E,wBAA0B,SAAiCnkB,GAC7DsgB,qBAAuBtgB,CACzB,EAEIokB,wBAA0B,WAC5B,OAAO9D,oBACT,EAEI+D,YAAc,SAAqBrkB,GACrCsf,WAAatf,CACf,EAEIskB,YAAc,WAChB,OAAOhF,UACT,EAEA,SAASiF,SAASlZ,GAEhB,OAAOyM,SAAS0M,gBAAgB5I,MAAOvQ,EACzC,CAEA,SAASoZ,UAAU9a,GAAuV,OAA1O8a,UAArD,oBAAXnlB,QAAoD,kBAApBA,OAAOC,SAAqC,SAAiBoK,GAAO,cAAcA,CAAK,EAAwB,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXrK,QAAyBqK,EAAIoF,cAAgBzP,QAAUqK,IAAQrK,OAAOkK,UAAY,gBAAkBG,CAAK,EAAY8a,UAAU9a,EAAM,CAEjY,IAAI+a,YAAc,WAChB,IAEIC,EACAC,EAHAC,EAAa,EACbC,EAAY,GAGZC,EAAc,CAChBC,UAAW,WAAsB,EACjCC,YAAa,SAAqBC,GAChCP,EAAS,CACP3N,KAAMkO,GAEV,GAEEC,EAAc,CAChBF,YAAa,SAAqBjO,GAChC+N,EAAYC,UAAU,CACpBhO,KAAMA,GAEV,GAiBF,SAASoO,IACFR,IACHA,EAhBJ,SAAsBzZ,GACpB,GAAIjC,OAAOmc,QAAUnc,OAAOoc,MAAQpJ,eAAgB,CAClD,IAAIqJ,EAAO,IAAID,KAAK,CAAC,4CAA6Cna,EAAGiH,YAAa,CAChF/G,KAAM,oBAGJma,EAAMC,IAAIC,gBAAgBH,GAC9B,OAAO,IAAIF,OAAOG,EACpB,CAGA,OADAb,EAAWxZ,EACJ4Z,CACT,CAIqBY,EAAa,SAAqB1lB,GAknBjD,GA3EKklB,EAAYT,cACfS,EAAYT,YAviBd,WACE,SAASkB,EAAeC,EAAQC,GAC9B,IAAIC,EACApmB,EAEAqmB,EACAC,EACAC,EACAC,EAJAhf,EAAM0e,EAAOnmB,OAMjB,IAAKC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EAGxB,GAAI,OAFJomB,EAAYF,EAAOlmB,MAEOomB,EAAUK,UAAW,CAG7C,GAFAL,EAAUK,WAAY,EAElBL,EAAUM,QAAS,CACrB,IAAIC,EAAYP,EAAUQ,gBAG1B,IAFAN,EAAOK,EAAU5mB,OAEZsmB,EAAI,EAAGA,EAAIC,EAAMD,GAAK,EACzB,GAAIM,EAAUN,GAAGQ,GAAGN,EAAEvmB,EACpB8mB,EAA6BH,EAAUN,GAAGQ,GAAGN,QAI7C,IAFAC,EAAOG,EAAUN,GAAGQ,GAAGN,EAAExmB,OAEpBwmB,EAAI,EAAGA,EAAIC,EAAMD,GAAK,EACrBI,EAAUN,GAAGQ,GAAGN,EAAEA,GAAGrmB,GACvB4mB,EAA6BH,EAAUN,GAAGQ,GAAGN,EAAEA,GAAGrmB,EAAE,IAGlDymB,EAAUN,GAAGQ,GAAGN,EAAEA,GAAGjmB,GACvBwmB,EAA6BH,EAAUN,GAAGQ,GAAGN,EAAEA,GAAGjmB,EAAE,GAK9D,CAEqB,IAAjB8lB,EAAUW,IACZX,EAAUF,OAASc,EAAeZ,EAAUa,MAAOd,GACnDF,EAAeG,EAAUF,OAAQC,IACP,IAAjBC,EAAUW,GACnBG,EAAed,EAAUe,QACC,IAAjBf,EAAUW,IACnBK,EAAahB,EAEjB,CAEJ,CA4CA,SAASY,EAAeK,EAAIlB,GAC1B,IAAImB,EAhBN,SAAkBD,EAAIlB,GAIpB,IAHA,IAAInmB,EAAI,EACJwH,EAAM2e,EAAMpmB,OAETC,EAAIwH,GAAK,CACd,GAAI2e,EAAMnmB,GAAGqnB,KAAOA,EAClB,OAAOlB,EAAMnmB,GAGfA,GAAK,CACP,CAEA,OAAO,IACT,CAGaunB,CAASF,EAAIlB,GAExB,OAAImB,EACGA,EAAKpB,OAAOsB,OAKVC,KAAK1Q,MAAM0Q,KAAKC,UAAUJ,EAAKpB,UAJpCoB,EAAKpB,OAAOsB,QAAS,EACdF,EAAKpB,QAMT,IACT,CAEA,SAASgB,EAAehmB,GACtB,IAAIlB,EAEAqmB,EACAC,EAEJ,IAAKtmB,EAJKkB,EAAInB,OAIC,EAAGC,GAAK,EAAGA,GAAK,EAC7B,GAAkB,OAAdkB,EAAIlB,GAAG+mB,GACT,GAAI7lB,EAAIlB,GAAG2nB,GAAGpB,EAAEvmB,EACd8mB,EAA6B5lB,EAAIlB,GAAG2nB,GAAGpB,QAIvC,IAFAD,EAAOplB,EAAIlB,GAAG2nB,GAAGpB,EAAExmB,OAEdsmB,EAAI,EAAGA,EAAIC,EAAMD,GAAK,EACrBnlB,EAAIlB,GAAG2nB,GAAGpB,EAAEF,GAAGnmB,GACjB4mB,EAA6B5lB,EAAIlB,GAAG2nB,GAAGpB,EAAEF,GAAGnmB,EAAE,IAG5CgB,EAAIlB,GAAG2nB,GAAGpB,EAAEF,GAAG/lB,GACjBwmB,EAA6B5lB,EAAIlB,GAAG2nB,GAAGpB,EAAEF,GAAG/lB,EAAE,QAI7B,OAAdY,EAAIlB,GAAG+mB,IAChBG,EAAehmB,EAAIlB,GAAGN,GAG5B,CAEA,SAASonB,EAA6BvB,GACpC,IAAIvlB,EACAwH,EAAM+d,EAAKvlB,EAAED,OAEjB,IAAKC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACxBulB,EAAKvlB,EAAEA,GAAG,IAAMulB,EAAKnC,EAAEpjB,GAAG,GAC1BulB,EAAKvlB,EAAEA,GAAG,IAAMulB,EAAKnC,EAAEpjB,GAAG,GAC1BulB,EAAK/lB,EAAEQ,GAAG,IAAMulB,EAAKnC,EAAEpjB,GAAG,GAC1BulB,EAAK/lB,EAAEQ,GAAG,IAAMulB,EAAKnC,EAAEpjB,GAAG,EAE9B,CAEA,SAAS4nB,EAAaC,EAASC,GAC7B,IAAIC,EAAcD,EAAoBA,EAAkBpT,MAAM,KAAO,CAAC,IAAK,IAAK,KAEhF,OAAImT,EAAQ,GAAKE,EAAY,MAIzBA,EAAY,GAAKF,EAAQ,MAIzBA,EAAQ,GAAKE,EAAY,MAIzBA,EAAY,GAAKF,EAAQ,MAIzBA,EAAQ,GAAKE,EAAY,MAIzBA,EAAY,GAAKF,EAAQ,KAItB,MACT,CAEA,IAAIG,EAAY,WACd,IAAIC,EAAiB,CAAC,EAAG,EAAG,IAE5B,SAASC,EAAgBC,GACvB,IAAIC,EAAeD,EAAU1iB,EAAE9B,EAC/BwkB,EAAU1iB,EAAE9B,EAAI,CACd4iB,EAAG,CAAC,CACFrmB,EAAGkoB,EACH3iB,EAAG,IAGT,CAEA,SAAS4iB,EAAcnC,GACrB,IAAIlmB,EACAwH,EAAM0e,EAAOnmB,OAEjB,IAAKC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACH,IAAjBkmB,EAAOlmB,GAAG+mB,IACZmB,EAAgBhC,EAAOlmB,GAG7B,CAEA,OAAO,SAAUsoB,GACf,GAAIV,EAAaK,EAAgBK,EAAclF,KAC7CiF,EAAcC,EAAcpC,QAExBoC,EAAcC,QAAQ,CACxB,IAAIvoB,EACAwH,EAAM8gB,EAAcC,OAAOxoB,OAE/B,IAAKC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACpBsoB,EAAcC,OAAOvoB,GAAGkmB,QAC1BmC,EAAcC,EAAcC,OAAOvoB,GAAGkmB,OAG5C,CAEJ,CACF,CAxCgB,GA0CZsC,EAAa,WACf,IAAIP,EAAiB,CAAC,EAAG,EAAG,IAC5B,OAAO,SAAUK,GACf,GAAIA,EAAcG,QAAUb,EAAaK,EAAgBK,EAAclF,GAAI,CACzE,IAAIpjB,EACAwH,EAAM8gB,EAAcG,MAAM1oB,OAE9B,IAAKC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EAAG,CAC3B,IAAI0oB,EAAWJ,EAAcG,MAAMzoB,GAE/B0oB,EAASrR,MAAQqR,EAASrR,KAAK8P,SACjCD,EAAewB,EAASrR,KAAK8P,QAC7BuB,EAASrR,KAAKsR,GAAK,EACnBD,EAASrR,KAAKuR,GAAK,MACnBF,EAASrR,KAAKwR,GAAK,EACnBH,EAASrR,KAAKyR,GAAK,EACnBJ,EAASrR,KAAKsQ,GAAK,CACjB1hB,EAAG,CACDsgB,EAAG,CAAC,EAAG,GACPwC,EAAG,GAEL7oB,EAAG,CACDqmB,EAAG,CAAC,IAAK,KACTwC,EAAG,GAELA,EAAG,CACDxC,EAAG,CAAC,EAAG,GACPwC,EAAG,GAEL1F,EAAG,CACDkD,EAAG,EACHwC,EAAG,GAELvpB,EAAG,CACD+mB,EAAG,IACHwC,EAAG,IAIFT,EAAcG,MAAMzoB,GAAGyF,IAC1BijB,EAASrR,KAAK8P,OAAOxlB,KAAK,CACxBolB,GAAI,OAEN2B,EAASrR,KAAK8P,OAAO,GAAGznB,GAAGiC,KAAK,CAC9BsE,EAAG,CACDsgB,EAAG,CAAC,EAAG,GACPwC,EAAG,GAEL7oB,EAAG,CACDqmB,EAAG,CAAC,IAAK,KACTwC,EAAG,GAELA,EAAG,CACDxC,EAAG,CAAC,EAAG,GACPwC,EAAG,GAEL1F,EAAG,CACDkD,EAAG,EACHwC,EAAG,GAELvpB,EAAG,CACD+mB,EAAG,IACHwC,EAAG,GAELC,GAAI,CACFzC,EAAG,EACHwC,EAAG,GAELE,GAAI,CACF1C,EAAG,EACHwC,EAAG,GAELhC,GAAI,QAIZ,CACF,CACF,CACF,CA/EiB,GAiFbmC,EAAsB,WACxB,IAAIjB,EAAiB,CAAC,EAAG,EAAG,IAE5B,SAASC,EAAgBC,GACvB,IAAIgB,EAAWhB,EAAU1iB,EAAEQ,EAED,kBAAfkjB,EAASJ,IAClBI,EAASJ,EAAI,CACXA,EAAG,EACHxC,EAAG4C,EAASJ,IAIU,kBAAfI,EAASljB,IAClBkjB,EAASljB,EAAI,CACX8iB,EAAG,EACHxC,EAAG4C,EAASljB,IAIU,kBAAfkjB,EAAS9F,IAClB8F,EAAS9F,EAAI,CACX0F,EAAG,EACHxC,EAAG4C,EAAS9F,GAGlB,CAEA,SAASgF,EAAcnC,GACrB,IAAIlmB,EACAwH,EAAM0e,EAAOnmB,OAEjB,IAAKC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACH,IAAjBkmB,EAAOlmB,GAAG+mB,IACZmB,EAAgBhC,EAAOlmB,GAG7B,CAEA,OAAO,SAAUsoB,GACf,GAAIV,EAAaK,EAAgBK,EAAclF,KAC7CiF,EAAcC,EAAcpC,QAExBoC,EAAcC,QAAQ,CACxB,IAAIvoB,EACAwH,EAAM8gB,EAAcC,OAAOxoB,OAE/B,IAAKC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACpBsoB,EAAcC,OAAOvoB,GAAGkmB,QAC1BmC,EAAcC,EAAcC,OAAOvoB,GAAGkmB,OAG5C,CAEJ,CACF,CAvD0B,GAyDtBkD,EAAc,WAChB,IAAInB,EAAiB,CAAC,EAAG,EAAG,GAE5B,SAASoB,EAAclC,GACrB,IAAInnB,EAEAqmB,EACAC,EAFA9e,EAAM2f,EAAOpnB,OAIjB,IAAKC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACxB,GAAqB,OAAjBmnB,EAAOnnB,GAAG+mB,GACZsC,EAAclC,EAAOnnB,GAAGN,SACnB,GAAqB,OAAjBynB,EAAOnnB,GAAG+mB,IAAgC,OAAjBI,EAAOnnB,GAAG+mB,GAC5C,GAAII,EAAOnnB,GAAGspB,EAAE/C,GAAKY,EAAOnnB,GAAGspB,EAAE/C,EAAE,GAAGvmB,EAGpC,IAFAsmB,EAAOa,EAAOnnB,GAAGspB,EAAE/C,EAAExmB,OAEhBsmB,EAAI,EAAGA,EAAIC,EAAMD,GAAK,EACrBc,EAAOnnB,GAAGspB,EAAE/C,EAAEF,GAAGnmB,IACnBinB,EAAOnnB,GAAGspB,EAAE/C,EAAEF,GAAGnmB,EAAE,IAAM,IACzBinB,EAAOnnB,GAAGspB,EAAE/C,EAAEF,GAAGnmB,EAAE,IAAM,IACzBinB,EAAOnnB,GAAGspB,EAAE/C,EAAEF,GAAGnmB,EAAE,IAAM,IACzBinB,EAAOnnB,GAAGspB,EAAE/C,EAAEF,GAAGnmB,EAAE,IAAM,KAGvBinB,EAAOnnB,GAAGspB,EAAE/C,EAAEF,GAAG/lB,IACnB6mB,EAAOnnB,GAAGspB,EAAE/C,EAAEF,GAAG/lB,EAAE,IAAM,IACzB6mB,EAAOnnB,GAAGspB,EAAE/C,EAAEF,GAAG/lB,EAAE,IAAM,IACzB6mB,EAAOnnB,GAAGspB,EAAE/C,EAAEF,GAAG/lB,EAAE,IAAM,IACzB6mB,EAAOnnB,GAAGspB,EAAE/C,EAAEF,GAAG/lB,EAAE,IAAM,UAI7B6mB,EAAOnnB,GAAGspB,EAAE/C,EAAE,IAAM,IACpBY,EAAOnnB,GAAGspB,EAAE/C,EAAE,IAAM,IACpBY,EAAOnnB,GAAGspB,EAAE/C,EAAE,IAAM,IACpBY,EAAOnnB,GAAGspB,EAAE/C,EAAE,IAAM,GAI5B,CAEA,SAAS8B,EAAcnC,GACrB,IAAIlmB,EACAwH,EAAM0e,EAAOnmB,OAEjB,IAAKC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACH,IAAjBkmB,EAAOlmB,GAAG+mB,IACZsC,EAAcnD,EAAOlmB,GAAGmnB,OAG9B,CAEA,OAAO,SAAUmB,GACf,GAAIV,EAAaK,EAAgBK,EAAclF,KAC7CiF,EAAcC,EAAcpC,QAExBoC,EAAcC,QAAQ,CACxB,IAAIvoB,EACAwH,EAAM8gB,EAAcC,OAAOxoB,OAE/B,IAAKC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACpBsoB,EAAcC,OAAOvoB,GAAGkmB,QAC1BmC,EAAcC,EAAcC,OAAOvoB,GAAGkmB,OAG5C,CAEJ,CACF,CApEkB,GAsEdqD,EAAc,WAChB,IAAItB,EAAiB,CAAC,EAAG,EAAG,IAE5B,SAASuB,EAAsBtoB,GAC7B,IAAIlB,EAEAqmB,EACAC,EAEJ,IAAKtmB,EAJKkB,EAAInB,OAIC,EAAGC,GAAK,EAAGA,GAAK,EAC7B,GAAkB,OAAdkB,EAAIlB,GAAG+mB,GACT,GAAI7lB,EAAIlB,GAAG2nB,GAAGpB,EAAEvmB,EACdkB,EAAIlB,GAAG2nB,GAAGpB,EAAE+C,EAAIpoB,EAAIlB,GAAGypB,YAIvB,IAFAnD,EAAOplB,EAAIlB,GAAG2nB,GAAGpB,EAAExmB,OAEdsmB,EAAI,EAAGA,EAAIC,EAAMD,GAAK,EACrBnlB,EAAIlB,GAAG2nB,GAAGpB,EAAEF,GAAGnmB,IACjBgB,EAAIlB,GAAG2nB,GAAGpB,EAAEF,GAAGnmB,EAAE,GAAGopB,EAAIpoB,EAAIlB,GAAGypB,QAG7BvoB,EAAIlB,GAAG2nB,GAAGpB,EAAEF,GAAG/lB,IACjBY,EAAIlB,GAAG2nB,GAAGpB,EAAEF,GAAG/lB,EAAE,GAAGgpB,EAAIpoB,EAAIlB,GAAGypB,YAId,OAAdvoB,EAAIlB,GAAG+mB,IAChByC,EAAsBtoB,EAAIlB,GAAGN,GAGnC,CAEA,SAAS2oB,EAAcnC,GACrB,IAAIE,EACApmB,EAEAqmB,EACAC,EACAC,EACAC,EAJAhf,EAAM0e,EAAOnmB,OAMjB,IAAKC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EAAG,CAG3B,IAFAomB,EAAYF,EAAOlmB,IAEL0mB,QAAS,CACrB,IAAIC,EAAYP,EAAUQ,gBAG1B,IAFAN,EAAOK,EAAU5mB,OAEZsmB,EAAI,EAAGA,EAAIC,EAAMD,GAAK,EACzB,GAAIM,EAAUN,GAAGQ,GAAGN,EAAEvmB,EACpB2mB,EAAUN,GAAGQ,GAAGN,EAAE+C,EAAI3C,EAAUN,GAAGqD,QAInC,IAFAlD,EAAOG,EAAUN,GAAGQ,GAAGN,EAAExmB,OAEpBwmB,EAAI,EAAGA,EAAIC,EAAMD,GAAK,EACrBI,EAAUN,GAAGQ,GAAGN,EAAEA,GAAGrmB,IACvBymB,EAAUN,GAAGQ,GAAGN,EAAEA,GAAGrmB,EAAE,GAAGopB,EAAI3C,EAAUN,GAAGqD,IAGzC/C,EAAUN,GAAGQ,GAAGN,EAAEA,GAAGjmB,IACvBqmB,EAAUN,GAAGQ,GAAGN,EAAEA,GAAGjmB,EAAE,GAAGgpB,EAAI3C,EAAUN,GAAGqD,GAKrD,CAEqB,IAAjBtD,EAAUW,IACZyC,EAAsBpD,EAAUe,OAEpC,CACF,CAEA,OAAO,SAAUmB,GACf,GAAIV,EAAaK,EAAgBK,EAAclF,KAC7CiF,EAAcC,EAAcpC,QAExBoC,EAAcC,QAAQ,CACxB,IAAIvoB,EACAwH,EAAM8gB,EAAcC,OAAOxoB,OAE/B,IAAKC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACpBsoB,EAAcC,OAAOvoB,GAAGkmB,QAC1BmC,EAAcC,EAAcC,OAAOvoB,GAAGkmB,OAG5C,CAEJ,CACF,CAzFkB,GA0GlB,SAASkB,EAAa/P,GACI,IAApBA,EAAK5R,EAAEsjB,EAAEhpB,QAAyBsX,EAAK5R,EAAEQ,CAE/C,CAEA,IAAI0jB,EAAW,CACfA,aArBA,SAAsBrB,GAChBA,EAAcsB,aAIlBR,EAAYd,GACZN,EAAUM,GACVE,EAAWF,GACXY,EAAoBZ,GACpBiB,EAAYjB,GACZrC,EAAeqC,EAAcpC,OAAQoC,EAAcC,QA/drD,SAAuBE,EAAOF,GAC5B,GAAIE,EAAO,CACT,IAAIzoB,EAAI,EACJwH,EAAMihB,EAAM1oB,OAEhB,IAAKC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACL,IAAfyoB,EAAMzoB,GAAGyF,IAEXgjB,EAAMzoB,GAAGqX,KAAK6O,OAASc,EAAeyB,EAAMzoB,GAAGqX,KAAK4P,MAAOsB,GAa3DtC,EAAewC,EAAMzoB,GAAGqX,KAAK6O,OAAQqC,GAG3C,CACF,CAucEsB,CAAcvB,EAAcG,MAAOH,EAAcC,QACjDD,EAAcsB,YAAa,EAC7B,GAcA,OALAD,EAASP,YAAcA,EACvBO,EAASnB,WAAaA,EACtBmB,EAAST,oBAAsBA,EAC/BS,EAASJ,YAAcA,EACvBI,EAAS1D,eAAiBA,EACnB0D,CACT,CAG4BG,IAGvBtE,EAAYuE,cACfvE,EAAYuE,YAAc,WACxB,SAASC,EAAeC,GAGtB,IAAIC,EAAoBD,EAAIE,kBAAkB,gBAE9C,OAAID,GAA0C,SAArBD,EAAIG,eAAkE,IAAvCF,EAAkBpQ,QAAQ,SAI9EmQ,EAAII,UAAwC,WAA5BvF,UAAUmF,EAAII,UAHzBJ,EAAII,SAOTJ,EAAII,UAAoC,kBAAjBJ,EAAII,SACtB5C,KAAK1Q,MAAMkT,EAAII,UAGpBJ,EAAIK,aACC7C,KAAK1Q,MAAMkT,EAAIK,cAGjB,IACT,CAyCA,MAAO,CACLC,KAxCF,SAAmBhF,EAAMiF,EAAUlU,EAAUmU,GAC3C,IAAIJ,EACAJ,EAAM,IAAIS,eAEd,IAEET,EAAIG,aAAe,MACrB,CAAE,MAAO1pB,GAAM,CAGfupB,EAAIU,mBAAqB,WACvB,GAAuB,IAAnBV,EAAIW,WACN,GAAmB,MAAfX,EAAIY,OACNR,EAAWL,EAAeC,GAC1B3T,EAAS+T,QAET,IACEA,EAAWL,EAAeC,GAC1B3T,EAAS+T,EACX,CAAE,MAAO3pB,GACH+pB,GACFA,EAAc/pB,EAElB,CAGN,EAEA,IAEEupB,EAAIa,KAAK,CAAC,IAAK,IAAK,KAAKtW,KAAK,IAAK+Q,GAAM,EAC3C,CAAE,MAAOrY,GAEP+c,EAAIa,KAAK,CAAC,IAAK,IAAK,KAAKtW,KAAK,IAAKgW,EAAW,IAAMjF,GAAM,EAC5D,CAEA0E,EAAIc,MACN,EAKF,CAnE0B,IAsER,kBAAhBzqB,EAAE+W,KAAK3L,KACT8Z,EAAYuE,YAAYQ,KAAKjqB,EAAE+W,KAAKkO,KAAMjlB,EAAE+W,KAAKmT,UAAU,SAAUnT,GACnEmO,EAAYT,YAAYiG,aAAa3T,GAErCmO,EAAYF,YAAY,CACtB+B,GAAI/mB,EAAE+W,KAAKgQ,GACX4D,QAAS5T,EACTwT,OAAQ,WAEZ,IAAG,WACDrF,EAAYF,YAAY,CACtB+B,GAAI/mB,EAAE+W,KAAKgQ,GACXwD,OAAQ,SAEZ,SACK,GAAoB,aAAhBvqB,EAAE+W,KAAK3L,KAAqB,CACrC,IAAIwf,EAAY5qB,EAAE+W,KAAK6T,UAEvB1F,EAAYT,YAAYiG,aAAaE,GAErC1F,EAAYF,YAAY,CACtB+B,GAAI/mB,EAAE+W,KAAKgQ,GACX4D,QAASC,EACTL,OAAQ,WAEZ,KAA2B,aAAhBvqB,EAAE+W,KAAK3L,MAChB8Z,EAAYuE,YAAYQ,KAAKjqB,EAAE+W,KAAKkO,KAAMjlB,EAAE+W,KAAKmT,UAAU,SAAUnT,GACnEmO,EAAYF,YAAY,CACtB+B,GAAI/mB,EAAE+W,KAAKgQ,GACX4D,QAAS5T,EACTwT,OAAQ,WAEZ,IAAG,WACDrF,EAAYF,YAAY,CACtB+B,GAAI/mB,EAAE+W,KAAKgQ,GACXwD,OAAQ,SAEZ,GAEJ,IAEA5F,EAAeI,UAAY,SAAU8F,GACnC,IAAI9T,EAAO8T,EAAM9T,KACbgQ,EAAKhQ,EAAKgQ,GACVhN,EAAU8K,EAAUkC,GACxBlC,EAAUkC,GAAM,KAEI,YAAhBhQ,EAAKwT,OACPxQ,EAAQ+Q,WAAW/T,EAAK4T,SACf5Q,EAAQgR,SACjBhR,EAAQgR,SAEZ,EAEJ,CAEA,SAASC,EAAcF,EAAYC,GAEjC,IAAIhE,EAAK,cADTnC,GAAc,GAMd,OAJAC,EAAUkC,GAAM,CACd+D,WAAYA,EACZC,QAASA,GAEJhE,CACT,CAkCA,MAAO,CACLkE,cAjCF,SAAuBhG,EAAM6F,EAAYC,GACvC5F,IACA,IAAI+F,EAAYF,EAAcF,EAAYC,GAC1CpG,EAAeK,YAAY,CACzB5Z,KAAM,gBACN6Z,KAAMA,EACNiF,SAAUjhB,OAAOkiB,SAASC,OAASniB,OAAOkiB,SAASE,SACnDtE,GAAImE,GAER,EAyBEI,SAvBF,SAAkBrG,EAAM6F,EAAYC,GAClC5F,IACA,IAAI+F,EAAYF,EAAcF,EAAYC,GAC1CpG,EAAeK,YAAY,CACzB5Z,KAAM,WACN6Z,KAAMA,EACNiF,SAAUjhB,OAAOkiB,SAASC,OAASniB,OAAOkiB,SAASE,SACnDtE,GAAImE,GAER,EAeEK,kBAbF,SAA2BC,EAAMV,EAAYC,GAC3C5F,IACA,IAAI+F,EAAYF,EAAcF,EAAYC,GAC1CpG,EAAeK,YAAY,CACzB5Z,KAAM,WACNwf,UAAWY,EACXzE,GAAImE,GAER,EAOF,CA9vBkB,GAgwBdO,eAAiB,WACnB,IAAIC,EAAa,WACf,IAAIC,EAASvP,UAAU,UACvBuP,EAAOC,MAAQ,EACfD,EAAOE,OAAS,EAChB,IAAIC,EAAMH,EAAOI,WAAW,MAG5B,OAFAD,EAAIE,UAAY,gBAChBF,EAAIG,SAAS,EAAG,EAAG,EAAG,GACfN,CACT,CARiB,GAUjB,SAASO,IACPnjB,KAAKojB,cAAgB,EAEjBpjB,KAAKojB,eAAiBpjB,KAAKqjB,aAAerjB,KAAKsjB,sBAAwBtjB,KAAKujB,eAC1EvjB,KAAKwjB,gBACPxjB,KAAKwjB,eAAe,KAG1B,CAEA,SAASC,IACPzjB,KAAKsjB,qBAAuB,EAExBtjB,KAAKojB,eAAiBpjB,KAAKqjB,aAAerjB,KAAKsjB,sBAAwBtjB,KAAKujB,eAC1EvjB,KAAKwjB,gBACPxjB,KAAKwjB,eAAe,KAG1B,CAEA,SAASE,EAAcC,EAAWC,EAAYC,GAC5C,IAAI3H,EAAO,GAEX,GAAIyH,EAAU1sB,EACZilB,EAAOyH,EAAU/mB,OACZ,GAAIgnB,EAAY,CACrB,IAAIE,EAAYH,EAAU/mB,GAEY,IAAlCknB,EAAUrT,QAAQ,aACpBqT,EAAYA,EAAUzY,MAAM,KAAK,IAGnC6Q,EAAO0H,EAAaE,CACtB,MACE5H,EAAO2H,EACP3H,GAAQyH,EAAUI,EAAIJ,EAAUI,EAAI,GACpC7H,GAAQyH,EAAU/mB,EAGpB,OAAOsf,CACT,CAEA,SAAS8H,EAAgBC,GACvB,IAAIpK,EAAS,EACTqK,EAAaC,YAAY,YACjBF,EAAIG,UAENvB,OAAShJ,EAAS,OACxB7Z,KAAKqkB,eAELC,cAAcJ,IAGhBrK,GAAU,CACZ,EAAEhS,KAAK7H,MAAO,GAChB,CAkDA,SAASukB,EAAkBvW,GACzB,IAAIwW,EAAK,CACPb,UAAW3V,GAETkO,EAAOwH,EAAc1V,EAAMhO,KAAK4jB,WAAY5jB,KAAKkc,MAUrD,OATAR,YAAY6G,SAASrG,EAAM,SAAUuI,GACnCD,EAAGP,IAAMQ,EAETzkB,KAAK0kB,gBACP,EAAE7c,KAAK7H,MAAO,WACZwkB,EAAGP,IAAM,CAAC,EAEVjkB,KAAK0kB,gBACP,EAAE7c,KAAK7H,OACAwkB,CACT,CAiEA,SAASG,IACP3kB,KAAKqkB,aAAelB,EAAYtb,KAAK7H,MACrCA,KAAK0kB,eAAiBjB,EAAc5b,KAAK7H,MACzCA,KAAKgkB,gBAAkBA,EAAgBnc,KAAK7H,MAC5CA,KAAKukB,kBAAoBA,EAAkB1c,KAAK7H,MAChDA,KAAK4jB,WAAa,GAClB5jB,KAAKkc,KAAO,GACZlc,KAAKqjB,YAAc,EACnBrjB,KAAKujB,cAAgB,EACrBvjB,KAAKojB,aAAe,EACpBpjB,KAAKsjB,oBAAsB,EAC3BtjB,KAAKwjB,eAAiB,KACtBxjB,KAAK4kB,OAAS,EAChB,CAgBA,OAdAD,EAAsBnkB,UAAY,CAChCqkB,WA/EF,SAAoB3F,EAAQ4F,GAE1B,IAAInuB,EADJqJ,KAAKwjB,eAAiBsB,EAEtB,IAAI3mB,EAAM+gB,EAAOxoB,OAEjB,IAAKC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACnBuoB,EAAOvoB,GAAGkmB,SACRqC,EAAOvoB,GAAGyF,GAAqB,QAAhB8iB,EAAOvoB,GAAGyF,EAGH,IAAhB8iB,EAAOvoB,GAAGyF,IACnB4D,KAAKujB,eAAiB,EACtBvjB,KAAK4kB,OAAOtsB,KAAK0H,KAAKukB,kBAAkBrF,EAAOvoB,OAJ/CqJ,KAAKqjB,aAAe,EACpBrjB,KAAK4kB,OAAOtsB,KAAK0H,KAAK+kB,iBAAiB7F,EAAOvoB,MAOtD,EAgEEquB,cA1DF,SAAuB9I,GACrBlc,KAAK4jB,WAAa1H,GAAQ,EAC5B,EAyDE+I,QA/DF,SAAiB/I,GACflc,KAAKkc,KAAOA,GAAQ,EACtB,EA8DEgJ,aApCF,WACE,OAAOllB,KAAKqjB,cAAgBrjB,KAAKojB,YACnC,EAmCE+B,eAjCF,WACE,OAAOnlB,KAAKujB,gBAAkBvjB,KAAKsjB,mBACrC,EAgCE8B,QA3CF,WACEplB,KAAKwjB,eAAiB,KACtBxjB,KAAK4kB,OAAOluB,OAAS,CACvB,EAyCE2uB,SA3DF,SAAkB1B,GAIhB,IAHA,IAAIhtB,EAAI,EACJwH,EAAM6B,KAAK4kB,OAAOluB,OAEfC,EAAIwH,GAAK,CACd,GAAI6B,KAAK4kB,OAAOjuB,GAAGgtB,YAAcA,EAC/B,OAAO3jB,KAAK4kB,OAAOjuB,GAAGstB,IAGxBttB,GAAK,CACP,CAEA,OAAO,IACT,EA+CE2uB,cAzHF,SAAuB3B,GACrB,IAAIzH,EAAOwH,EAAcC,EAAW3jB,KAAK4jB,WAAY5jB,KAAKkc,MACtD+H,EAAM5Q,UAAU,OACpB4Q,EAAIsB,YAAc,YAClBtB,EAAIuB,iBAAiB,OAAQxlB,KAAKqkB,cAAc,GAChDJ,EAAIuB,iBAAiB,QAAS,WAC5BhB,EAAGP,IAAMtB,EAET3iB,KAAKqkB,cACP,EAAExc,KAAK7H,OAAO,GACdikB,EAAIlP,IAAMmH,EACV,IAAIsI,EAAK,CACPP,IAAKA,EACLN,UAAWA,GAEb,OAAOa,CACT,EA0GEiB,gBAxJF,SAAyB9B,GACvB,IAAIzH,EAAOwH,EAAcC,EAAW3jB,KAAK4jB,WAAY5jB,KAAKkc,MACtD+H,EAAM1I,SAAS,SAEfhF,SACFvW,KAAKgkB,gBAAgBC,GAErBA,EAAIuB,iBAAiB,OAAQxlB,KAAKqkB,cAAc,GAGlDJ,EAAIuB,iBAAiB,QAAS,WAC5BhB,EAAGP,IAAMtB,EAET3iB,KAAKqkB,cACP,EAAExc,KAAK7H,OAAO,GACdikB,EAAIyB,eAAe,+BAAgC,OAAQxJ,GAEvDlc,KAAK2lB,eAAeC,OACtB5lB,KAAK2lB,eAAeC,OAAO3B,GAE3BjkB,KAAK2lB,eAAeE,YAAY5B,GAGlC,IAAIO,EAAK,CACPP,IAAKA,EACLN,UAAWA,GAEb,OAAOa,CACT,EA6HErB,YAAaA,EACbM,cAAeA,EACfqC,aApCF,SAAsBzjB,EAAM0jB,GACb,QAAT1jB,GACFrC,KAAK2lB,eAAiBI,EACtB/lB,KAAK+kB,iBAAmB/kB,KAAKylB,gBAAgB5d,KAAK7H,OAElDA,KAAK+kB,iBAAmB/kB,KAAKslB,cAAczd,KAAK7H,KAEpD,GA+BO2kB,CACT,CAlOqB,GAoOrB,SAASqB,YAAa,CAEtBA,UAAUxlB,UAAY,CACpBylB,aAAc,SAAsBC,EAAWxT,GAC7C,GAAI1S,KAAKmmB,KAAKD,GAGZ,IAFA,IAAIE,EAAYpmB,KAAKmmB,KAAKD,GAEjBvvB,EAAI,EAAGA,EAAIyvB,EAAU1vB,OAAQC,GAAK,EACzCyvB,EAAUzvB,GAAG+b,EAGnB,EACA8S,iBAAkB,SAA0BU,EAAWjZ,GAOrD,OANKjN,KAAKmmB,KAAKD,KACblmB,KAAKmmB,KAAKD,GAAa,IAGzBlmB,KAAKmmB,KAAKD,GAAW5tB,KAAK2U,GAEnB,WACLjN,KAAKqmB,oBAAoBH,EAAWjZ,EACtC,EAAEpF,KAAK7H,KACT,EACAqmB,oBAAqB,SAA6BH,EAAWjZ,GAC3D,GAAKA,GAEE,GAAIjN,KAAKmmB,KAAKD,GAAY,CAI/B,IAHA,IAAIvvB,EAAI,EACJwH,EAAM6B,KAAKmmB,KAAKD,GAAWxvB,OAExBC,EAAIwH,GACL6B,KAAKmmB,KAAKD,GAAWvvB,KAAOsW,IAC9BjN,KAAKmmB,KAAKD,GAAWI,OAAO3vB,EAAG,GAE/BA,GAAK,EACLwH,GAAO,GAGTxH,GAAK,EAGFqJ,KAAKmmB,KAAKD,GAAWxvB,SACxBsJ,KAAKmmB,KAAKD,GAAa,KAE3B,OAnBElmB,KAAKmmB,KAAKD,GAAa,IAoB3B,GAGF,IAAIK,aAAe,WACjB,SAASC,EAAkB5E,GAMzB,IALA,IAEI6E,EAFAC,EAAQ9E,EAAQvW,MAAM,QACtB7E,EAAO,CAAC,EAERmgB,EAAY,EAEPhwB,EAAI,EAAGA,EAAI+vB,EAAMhwB,OAAQC,GAAK,EAGjB,KAFpB8vB,EAAOC,EAAM/vB,GAAG0U,MAAM,MAEb3U,SACP8P,EAAKigB,EAAK,IAAMA,EAAK,GAAG1Z,OACxB4Z,GAAa,GAIjB,GAAkB,IAAdA,EACF,MAAM,IAAI1iB,MAGZ,OAAOuC,CACT,CAEA,OAAO,SAAUogB,GAGf,IAFA,IAAIC,EAAU,GAELlwB,EAAI,EAAGA,EAAIiwB,EAASlwB,OAAQC,GAAK,EAAG,CAC3C,IAAImwB,EAAUF,EAASjwB,GACnBowB,EAAa,CACfC,KAAMF,EAAQG,GACdC,SAAUJ,EAAQK,IAGpB,IACEJ,EAAWnF,QAAUxD,KAAK1Q,MAAMkZ,EAASjwB,GAAGywB,GAC9C,CAAE,MAAO1tB,GACP,IACEqtB,EAAWnF,QAAU4E,EAAkBI,EAASjwB,GAAGywB,GACrD,CAAE,MAAOC,GACPN,EAAWnF,QAAU,CACnB5b,KAAM4gB,EAASjwB,GAAGywB,GAEtB,CACF,CAEAP,EAAQvuB,KAAKyuB,EACf,CAEA,OAAOF,CACT,CACF,CAlDmB,GAoDfS,iBAAmB,WACrB,SAASC,EAAoBtJ,GAC3Bje,KAAKwnB,aAAalvB,KAAK2lB,EACzB,CAEA,OAAO,WACL,SAASwJ,EAAqBzhB,GAI5B,IAHA,IAAIrP,EAAI,EACJwH,EAAM6B,KAAKwnB,aAAa9wB,OAErBC,EAAIwH,GAAK,CACd,GAAI6B,KAAKwnB,aAAa7wB,GAAGqX,MAAQhO,KAAKwnB,aAAa7wB,GAAGqX,KAAK0Z,KAAO1hB,EAKhE,OAJIhG,KAAKwnB,aAAa7wB,GAAGgxB,cAAgB3nB,KAAKwnB,aAAa7wB,GAAGqX,KAAK4Z,IACjE5nB,KAAKwnB,aAAa7wB,GAAGgxB,aAAa3nB,KAAK6nB,cAGlC7nB,KAAKwnB,aAAa7wB,GAAGmxB,cAG9BnxB,GAAK,CACP,CAEA,OAAO,IACT,CAKA,OAHA8wB,EAAqBD,aAAe,GACpCC,EAAqBI,aAAe,EACpCJ,EAAqBF,oBAAsBA,EACpCE,CACT,CACF,CA9BuB,GAgCnBM,UAAY,CAAC,EAEbC,iBAAmB,SAA0BpnB,EAAK5J,GACpD+wB,UAAUnnB,GAAO5J,CACnB,EAEA,SAASixB,YAAYrnB,GACnB,OAAOmnB,UAAUnnB,EACnB,CAEA,SAASsnB,wBAEP,GAAIH,UAAUnF,OACZ,MAAO,SAIT,IAAK,IAAIhiB,KAAOmnB,UACd,GAAIA,UAAUnnB,GACZ,OAAOA,EAIX,MAAO,EACT,CAEA,SAASunB,UAAUxnB,GAAuV,OAA1OwnB,UAArD,oBAAX7xB,QAAoD,kBAApBA,OAAOC,SAAqC,SAAiBoK,GAAO,cAAcA,CAAK,EAAwB,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXrK,QAAyBqK,EAAIoF,cAAgBzP,QAAUqK,IAAQrK,OAAOkK,UAAY,gBAAkBG,CAAK,EAAYwnB,UAAUxnB,EAAM,CAEjY,IAAIynB,cAAgB,WAClBpoB,KAAKmmB,KAAO,GACZnmB,KAAKgG,KAAO,GACZhG,KAAKkc,KAAO,GACZlc,KAAKqoB,UAAW,EAChBroB,KAAK6nB,aAAe,EACpB7nB,KAAKsoB,gBAAkB,EACvBtoB,KAAKqZ,WAAa,EAClBrZ,KAAKsZ,YAAc,EACnBtZ,KAAKuoB,UAAY,EACjBvoB,KAAKwoB,UAAY,EACjBxoB,KAAKyoB,UAAY,EACjBzoB,KAAK0oB,cAAgB,EACrB1oB,KAAK2oB,UAAY,EACjB3oB,KAAKif,cAAgB,CAAC,EACtBjf,KAAKkf,OAAS,GACdlf,KAAK4oB,UAAW,EAChB5oB,KAAK6oB,UAAW,EAChB7oB,KAAK8oB,MAAO,EACZ9oB,KAAK+oB,SAAW,KAChB/oB,KAAKgpB,YAAcpP,kBACnB5Z,KAAK4jB,WAAa,GAClB5jB,KAAKipB,cAAgB,EACrBjpB,KAAKkpB,WAAa,EAClBlpB,KAAKmpB,kBAAoBrO,qBACzB9a,KAAKopB,SAAW,GAChBppB,KAAKqpB,OAAQ,EACbrpB,KAAKspB,gBAAiB,EACtBtpB,KAAKupB,iBAAmBjC,mBACxBtnB,KAAKwpB,eAAiB,IAAI9G,eAC1B1iB,KAAKypB,gBAAkBzV,yBACvBhU,KAAK6mB,QAAU,GACf7mB,KAAK0pB,gBAAkB1pB,KAAK0pB,gBAAgB7hB,KAAK7H,MACjDA,KAAK2pB,aAAe3pB,KAAK2pB,aAAa9hB,KAAK7H,MAC3CA,KAAK4pB,kBAAoB5pB,KAAK4pB,kBAAkB/hB,KAAK7H,MACrDA,KAAK6pB,gBAAkB,IAAIlR,kBAAkB,aAAc,EAAG,EAAG,EACnE,EAEApF,gBAAgB,CAACyS,WAAYoC,eAE7BA,cAAc5nB,UAAUspB,UAAY,SAAUC,IACxCA,EAAOC,SAAWD,EAAOE,aAC3BjqB,KAAKgqB,QAAUD,EAAOC,SAAWD,EAAOE,WAG1C,IAAIC,EAAW,MAEXH,EAAOG,SACTA,EAAWH,EAAOG,SACTH,EAAOhB,WAChBmB,EAAWH,EAAOhB,UAGpB,IAAIoB,EAAgBlC,YAAYiC,GAChClqB,KAAK+oB,SAAW,IAAIoB,EAAcnqB,KAAM+pB,EAAOK,kBAC/CpqB,KAAKwpB,eAAe1D,aAAaoE,EAAUlqB,KAAK+oB,SAASsB,WAAWC,MACpEtqB,KAAK+oB,SAASwB,oBAAoBvqB,KAAKupB,kBACvCvpB,KAAKkqB,SAAWA,EAEI,KAAhBH,EAAOjB,MAA+B,OAAhBiB,EAAOjB,WAAiC3vB,IAAhB4wB,EAAOjB,OAAsC,IAAhBiB,EAAOjB,KACpF9oB,KAAK8oB,MAAO,GACa,IAAhBiB,EAAOjB,KAChB9oB,KAAK8oB,MAAO,EAEZ9oB,KAAK8oB,KAAO7W,SAAS8X,EAAOjB,KAAM,IAGpC9oB,KAAK6oB,WAAW,aAAckB,IAASA,EAAOlB,SAC9C7oB,KAAKgG,KAAO+jB,EAAO/jB,KAAO+jB,EAAO/jB,KAAO,GACxChG,KAAKwqB,kBAAmBnyB,OAAOmI,UAAUE,eAAelJ,KAAKuyB,EAAQ,qBAAsBA,EAAOS,iBAClGxqB,KAAK4jB,WAAamG,EAAOnG,WACzB5jB,KAAKyqB,eAAiBV,EAAOU,eAEzBV,EAAO7V,cACTlU,KAAKypB,gBAAgBnU,gBAAgByU,EAAO7V,cAG1C6V,EAAO9K,cACTjf,KAAK0qB,eAAeX,EAAO9K,eAClB8K,EAAO7N,QACuB,IAAnC6N,EAAO7N,KAAKyO,YAAY,MAC1B3qB,KAAKkc,KAAO6N,EAAO7N,KAAK0O,OAAO,EAAGb,EAAO7N,KAAKyO,YAAY,MAAQ,GAElE3qB,KAAKkc,KAAO6N,EAAO7N,KAAK0O,OAAO,EAAGb,EAAO7N,KAAKyO,YAAY,KAAO,GAGnE3qB,KAAK6qB,SAAWd,EAAO7N,KAAK0O,OAAOb,EAAO7N,KAAKyO,YAAY,KAAO,GAClE3qB,KAAK6qB,SAAW7qB,KAAK6qB,SAASD,OAAO,EAAG5qB,KAAK6qB,SAASF,YAAY,UAClEjP,YAAYwG,cAAc6H,EAAO7N,KAAMlc,KAAK0pB,gBAAiB1pB,KAAK2pB,cAEtE,EAEAvB,cAAc5nB,UAAUmpB,aAAe,WACrC3pB,KAAK8qB,QAAQ,cACf,EAEA1C,cAAc5nB,UAAUkqB,eAAiB,SAAU1c,GACjD0N,YAAY8G,kBAAkBxU,EAAMhO,KAAK0pB,gBAC3C,EAEAtB,cAAc5nB,UAAUuqB,QAAU,SAAUf,EAAS/K,GAC/CA,GAC+B,WAA7BkJ,UAAUlJ,KACZA,EAAgBb,KAAK1Q,MAAMuR,IAI/B,IAAI8K,EAAS,CACXC,QAASA,EACT/K,cAAeA,GAEb+L,EAAoBhB,EAAQiB,WAChClB,EAAO7N,KAAO8O,EAAkBE,aAAa,uBAC3CF,EAAkBE,aAAa,uBAAuBl0B,MAAQg0B,EAAkBE,aAAa,gBAC7FF,EAAkBE,aAAa,gBAAgBl0B,MAAQg0B,EAAkBE,aAAa,WAAaF,EAAkBE,aAAa,WAAWl0B,MAAQ,GACvJ+yB,EAAOG,SAAWc,EAAkBE,aAAa,kBAC/CF,EAAkBE,aAAa,kBAAkBl0B,MAAQg0B,EAAkBE,aAAa,gBACxFF,EAAkBE,aAAa,gBAAgBl0B,MAAQg0B,EAAkBE,aAAa,WACtFF,EAAkBE,aAAa,WAAWl0B,MAAQg0B,EAAkBE,aAAa,oBACjFF,EAAkBE,aAAa,oBAAoBl0B,MAAQg0B,EAAkBE,aAAa,eAAiBF,EAAkBE,aAAa,eAAel0B,MAAQkxB,yBAA2B,SAC9L,IAAIY,EAAOkC,EAAkBE,aAAa,kBACxCF,EAAkBE,aAAa,kBAAkBl0B,MAAQg0B,EAAkBE,aAAa,gBACxFF,EAAkBE,aAAa,gBAAgBl0B,MAAQg0B,EAAkBE,aAAa,WAAaF,EAAkBE,aAAa,WAAWl0B,MAAQ,GAE1I,UAAT8xB,EACFiB,EAAOjB,MAAO,EACI,SAATA,EACTiB,EAAOjB,MAAO,EACI,KAATA,IACTiB,EAAOjB,KAAO7W,SAAS6W,EAAM,KAG/B,IAAID,EAAWmC,EAAkBE,aAAa,sBAC5CF,EAAkBE,aAAa,sBAAsBl0B,MAAQg0B,EAAkBE,aAAa,oBAC5FF,EAAkBE,aAAa,oBAAoBl0B,OAAQg0B,EAAkBE,aAAa,gBAAiBF,EAAkBE,aAAa,eAAel0B,MAC3J+yB,EAAOlB,SAAwB,UAAbA,EAClBkB,EAAO/jB,KAAOglB,EAAkBE,aAAa,aAC3CF,EAAkBE,aAAa,aAAal0B,MAAQg0B,EAAkBE,aAAa,gBACnFF,EAAkBE,aAAa,gBAAgBl0B,MAAQg0B,EAAkBE,aAAa,WAAaF,EAAkBE,aAAa,WAAWl0B,MAAQ,GAKrI,WAJFg0B,EAAkBE,aAAa,uBAC7CF,EAAkBE,aAAa,uBAAuBl0B,MAAQg0B,EAAkBE,aAAa,qBAC7FF,EAAkBE,aAAa,qBAAqBl0B,MAAQg0B,EAAkBE,aAAa,gBAAkBF,EAAkBE,aAAa,gBAAgBl0B,MAAQ,MAGpK+yB,EAAOoB,WAAY,GAGhBpB,EAAO7N,KAGVlc,KAAK8pB,UAAUC,GAFf/pB,KAAK8qB,QAAQ,UAIjB,EAEA1C,cAAc5nB,UAAU4qB,cAAgB,SAAUpd,GAC5CA,EAAKuR,GAAKvf,KAAKif,cAAcM,KAC/Bvf,KAAKif,cAAcM,GAAKvR,EAAKuR,GAC7Bvf,KAAKsZ,YAAcpd,KAAKC,MAAM6R,EAAKuR,GAAKvf,KAAKif,cAAcK,KAG7D,IACI3oB,EAGAqmB,EAJAH,EAAS7c,KAAKif,cAAcpC,OAE5B1e,EAAM0e,EAAOnmB,OACb20B,EAAYrd,EAAK6O,OAEjBI,EAAOoO,EAAU30B,OAErB,IAAKsmB,EAAI,EAAGA,EAAIC,EAAMD,GAAK,EAGzB,IAFArmB,EAAI,EAEGA,EAAIwH,GAAK,CACd,GAAI0e,EAAOlmB,GAAGqnB,KAAOqN,EAAUrO,GAAGgB,GAAI,CACpCnB,EAAOlmB,GAAK00B,EAAUrO,GACtB,KACF,CAEArmB,GAAK,CACP,CAQF,IALIqX,EAAKoR,OAASpR,EAAKsd,SACrBtrB,KAAK+oB,SAASsB,WAAWkB,YAAYC,SAASxd,EAAKoR,OACnDpf,KAAK+oB,SAASsB,WAAWkB,YAAYE,SAASzd,EAAKsd,MAAOtrB,KAAK+oB,SAASsB,WAAWC,OAGjFtc,EAAKkR,OAGP,IAFA/gB,EAAM6P,EAAKkR,OAAOxoB,OAEbC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACxBqJ,KAAKif,cAAcC,OAAO5mB,KAAK0V,EAAKkR,OAAOvoB,IAI/CqJ,KAAKif,cAAcsB,YAAa,EAChC7E,YAAY8G,kBAAkBxiB,KAAKif,cAAejf,KAAK4pB,kBACzD,EAEAxB,cAAc5nB,UAAUopB,kBAAoB,SAAU5b,GACpDhO,KAAKif,cAAgBjR,EACrB,IAAIoI,EAAoB4E,uBAEpB5E,GACFA,EAAkBsV,gBAAgB1rB,MAGpCA,KAAK2rB,iBACP,EAEAvD,cAAc5nB,UAAUmrB,gBAAkB,WACxC,IAAIvC,EAAWppB,KAAKif,cAAcmK,SAElC,IAAKA,GAAgC,IAApBA,EAAS1yB,SAAiBsJ,KAAKwqB,iBAG9C,OAFAxqB,KAAK8qB,QAAQ,mBACb9qB,KAAKipB,cAAgBjpB,KAAKsZ,aAI5B,IAAIsS,EAAUxC,EAASyC,QACvB7rB,KAAKipB,cAAgB2C,EAAQ5E,KAAOhnB,KAAKuoB,UACzC,IAAIuD,EAAc9rB,KAAKkc,KAAOlc,KAAK6qB,SAAW,IAAM7qB,KAAKkpB,WAAa,QACtElpB,KAAKkpB,YAAc,EACnBxN,YAAY6G,SAASuJ,EAAa9rB,KAAKorB,cAAcvjB,KAAK7H,MAAO,WAC/DA,KAAK8qB,QAAQ,cACf,EAAEjjB,KAAK7H,MACT,EAEAooB,cAAc5nB,UAAUurB,aAAe,WACtB/rB,KAAKif,cAAcmK,WAGhCppB,KAAKipB,cAAgBjpB,KAAKsZ,aAG5BtZ,KAAK2rB,iBACP,EAEAvD,cAAc5nB,UAAUwrB,aAAe,WACrChsB,KAAK8qB,QAAQ,iBACb9qB,KAAKisB,aACP,EAEA7D,cAAc5nB,UAAU0rB,cAAgB,WACtClsB,KAAKwpB,eAAexE,cAAchlB,KAAK4jB,YACvC5jB,KAAKwpB,eAAevE,QAAQjlB,KAAKkc,MACjClc,KAAKwpB,eAAe3E,WAAW7kB,KAAKif,cAAcC,OAAQlf,KAAKgsB,aAAankB,KAAK7H,MACnF,EAEAooB,cAAc5nB,UAAUkpB,gBAAkB,SAAUyC,GAClD,GAAKnsB,KAAK+oB,SAIV,IACE/oB,KAAKif,cAAgBkN,EAEjBnsB,KAAKyqB,gBACPzqB,KAAKsZ,YAAcpd,KAAKC,MAAM6D,KAAKyqB,eAAe,GAAKzqB,KAAKyqB,eAAe,IAC3EzqB,KAAKqZ,WAAand,KAAK0b,MAAM5X,KAAKyqB,eAAe,MAEjDzqB,KAAKsZ,YAAcpd,KAAKC,MAAM6D,KAAKif,cAAcM,GAAKvf,KAAKif,cAAcK,IACzEtf,KAAKqZ,WAAand,KAAK0b,MAAM5X,KAAKif,cAAcK,KAGlDtf,KAAK+oB,SAASW,gBAAgByC,GAEzBA,EAASjN,SACZiN,EAASjN,OAAS,IAGpBlf,KAAKkf,OAASlf,KAAKif,cAAcC,OACjClf,KAAKuoB,UAAYvoB,KAAKif,cAAcmN,GACpCpsB,KAAKwoB,UAAYxoB,KAAKif,cAAcmN,GAAK,IACzCpsB,KAAK+oB,SAASsD,wBAAwBF,EAASjN,QAC/Clf,KAAK6mB,QAAUN,aAAa4F,EAAStF,SAAW,IAChD7mB,KAAK8qB,QAAQ,gBACb9qB,KAAKksB,gBACLlsB,KAAK+rB,eACL/rB,KAAKssB,oBACLtsB,KAAKusB,qBAEDvsB,KAAK4oB,UACP5oB,KAAKypB,gBAAgBjV,OAEzB,CAAE,MAAO3Q,GACP7D,KAAKwsB,mBAAmB3oB,EAC1B,CACF,EAEAukB,cAAc5nB,UAAU+rB,mBAAqB,WACtCvsB,KAAK+oB,WAIN/oB,KAAK+oB,SAASsB,WAAWkB,YAAYlD,SACvCroB,KAAKisB,cAELQ,WAAWzsB,KAAKusB,mBAAmB1kB,KAAK7H,MAAO,IAEnD,EAEAooB,cAAc5nB,UAAUyrB,YAAc,WACpC,IAAKjsB,KAAKqoB,UAAYroB,KAAK+oB,SAASsB,WAAWkB,YAAYlD,WAAaroB,KAAKwpB,eAAetE,gBAAiD,WAA/BllB,KAAK+oB,SAAS2D,eAA8B1sB,KAAKwpB,eAAerE,iBAAkB,CAC9LnlB,KAAKqoB,UAAW,EAChB,IAAIjS,EAAoB4E,uBAEpB5E,GACFA,EAAkBsV,gBAAgB1rB,MAGpCA,KAAK+oB,SAAS4D,YACdF,WAAW,WACTzsB,KAAK8qB,QAAQ,YACf,EAAEjjB,KAAK7H,MAAO,GACdA,KAAK4sB,YAED5sB,KAAK6oB,UACP7oB,KAAKiV,MAET,CACF,EAEAmT,cAAc5nB,UAAUqsB,OAAS,SAAUhK,EAAOC,GAEhD,IAAIgK,EAA0B,kBAAVjK,EAAqBA,OAAQ1pB,EAE7C4zB,EAA4B,kBAAXjK,EAAsBA,OAAS3pB,EAEpD6G,KAAK+oB,SAASiE,oBAAoBF,EAAQC,EAC5C,EAEA3E,cAAc5nB,UAAUysB,YAAc,SAAUha,GAC9CjT,KAAKmpB,oBAAsBlW,CAC7B,EAEAmV,cAAc5nB,UAAUosB,UAAY,WAClC5sB,KAAK6nB,aAAe7nB,KAAKmpB,kBAAoBnpB,KAAKsoB,kBAAoBtoB,KAAKsoB,gBAEvEtoB,KAAKipB,gBAAkBjpB,KAAKsZ,aAAetZ,KAAK6nB,aAAe7nB,KAAKipB,gBACtEjpB,KAAK6nB,aAAe7nB,KAAKipB,eAG3BjpB,KAAK8qB,QAAQ,cACb9qB,KAAKktB,cACLltB,KAAK8qB,QAAQ,aACf,EAEA1C,cAAc5nB,UAAU0sB,YAAc,WACpC,IAAsB,IAAlBltB,KAAKqoB,UAAuBroB,KAAK+oB,SAIrC,IACE/oB,KAAK+oB,SAASmE,YAAYltB,KAAK6nB,aAAe7nB,KAAKqZ,WACrD,CAAE,MAAOxV,GACP7D,KAAKmtB,wBAAwBtpB,EAC/B,CACF,EAEAukB,cAAc5nB,UAAUyU,KAAO,SAAUjP,GACnCA,GAAQhG,KAAKgG,OAASA,IAIJ,IAAlBhG,KAAK4oB,WACP5oB,KAAK4oB,UAAW,EAChB5oB,KAAK8qB,QAAQ,UACb9qB,KAAKypB,gBAAgBhV,SAEjBzU,KAAKqpB,QACPrpB,KAAKqpB,OAAQ,EACbrpB,KAAK8qB,QAAQ,YAGnB,EAEA1C,cAAc5nB,UAAUgU,MAAQ,SAAUxO,GACpCA,GAAQhG,KAAKgG,OAASA,IAIJ,IAAlBhG,KAAK4oB,WACP5oB,KAAK4oB,UAAW,EAChB5oB,KAAK8qB,QAAQ,SACb9qB,KAAKqpB,OAAQ,EACbrpB,KAAK8qB,QAAQ,SACb9qB,KAAKypB,gBAAgBjV,QAEzB,EAEA4T,cAAc5nB,UAAU4sB,YAAc,SAAUpnB,GAC1CA,GAAQhG,KAAKgG,OAASA,KAIJ,IAAlBhG,KAAK4oB,SACP5oB,KAAKiV,OAELjV,KAAKwU,QAET,EAEA4T,cAAc5nB,UAAUsG,KAAO,SAAUd,GACnCA,GAAQhG,KAAKgG,OAASA,IAI1BhG,KAAKwU,QACLxU,KAAK2oB,UAAY,EACjB3oB,KAAKspB,gBAAiB,EACtBtpB,KAAKqtB,wBAAwB,GAC/B,EAEAjF,cAAc5nB,UAAU8sB,cAAgB,SAAUC,GAGhD,IAFA,IAAIC,EAEK72B,EAAI,EAAGA,EAAIqJ,KAAK6mB,QAAQnwB,OAAQC,GAAK,EAG5C,IAFA62B,EAASxtB,KAAK6mB,QAAQlwB,IAEXirB,SAAW4L,EAAO5L,QAAQ5b,OAASunB,EAC5C,OAAOC,EAIX,OAAO,IACT,EAEApF,cAAc5nB,UAAUitB,YAAc,SAAUz2B,EAAO02B,EAAS1nB,GAC9D,IAAIA,GAAQhG,KAAKgG,OAASA,EAA1B,CAIA,IAAI2nB,EAAWljB,OAAOzT,GAEtB,GAAIqC,MAAMs0B,GAAW,CACnB,IAAIH,EAASxtB,KAAKstB,cAAct2B,GAE5Bw2B,GACFxtB,KAAKytB,YAAYD,EAAOxG,MAAM,EAElC,MAAW0G,EACT1tB,KAAKqtB,wBAAwBr2B,GAE7BgJ,KAAKqtB,wBAAwBr2B,EAAQgJ,KAAK4tB,eAG5C5tB,KAAKwU,OAhBL,CAiBF,EAEA4T,cAAc5nB,UAAUqtB,YAAc,SAAU72B,EAAO02B,EAAS1nB,GAC9D,IAAIA,GAAQhG,KAAKgG,OAASA,EAA1B,CAIA,IAAI2nB,EAAWljB,OAAOzT,GAEtB,GAAIqC,MAAMs0B,GAAW,CACnB,IAAIH,EAASxtB,KAAKstB,cAAct2B,GAE5Bw2B,IACGA,EAAOtG,SAGVlnB,KAAK8tB,aAAa,CAACN,EAAOxG,KAAMwG,EAAOxG,KAAOwG,EAAOtG,WAAW,GAFhElnB,KAAKytB,YAAYD,EAAOxG,MAAM,GAKpC,MACEhnB,KAAKytB,YAAYE,EAAUD,EAAS1nB,GAGtChG,KAAKiV,MAlBL,CAmBF,EAEAmT,cAAc5nB,UAAUutB,YAAc,SAAU/2B,GAC9C,IAAsB,IAAlBgJ,KAAK4oB,WAAuC,IAAlB5oB,KAAKqoB,SAAnC,CAIA,IAAI2F,EAAYhuB,KAAKsoB,gBAAkBtxB,EAAQgJ,KAAK4tB,cAChDK,GAAc,EAGdD,GAAahuB,KAAKsZ,YAAc,GAAKtZ,KAAK4tB,cAAgB,EACvD5tB,KAAK8oB,MAAQ9oB,KAAK2oB,YAAc3oB,KAAK8oB,KAK/BkF,GAAahuB,KAAKsZ,aAC3BtZ,KAAK2oB,WAAa,EAEb3oB,KAAKkuB,cAAcF,EAAYhuB,KAAKsZ,eACvCtZ,KAAKqtB,wBAAwBW,EAAYhuB,KAAKsZ,aAC9CtZ,KAAKspB,gBAAiB,EACtBtpB,KAAK8qB,QAAQ,kBAGf9qB,KAAKqtB,wBAAwBW,GAbxBhuB,KAAKkuB,cAAcF,EAAYhuB,KAAKsZ,YAAc0U,EAAYhuB,KAAKsZ,YAAc,KACpF2U,GAAc,EACdD,EAAYhuB,KAAKsZ,YAAc,GAa1B0U,EAAY,EAChBhuB,KAAKkuB,cAAcF,EAAYhuB,KAAKsZ,gBACnCtZ,KAAK8oB,MAAU9oB,KAAK2oB,aAAe,IAAmB,IAAd3oB,KAAK8oB,MAU/CmF,GAAc,EACdD,EAAY,IATZhuB,KAAKqtB,wBAAwBrtB,KAAKsZ,YAAc0U,EAAYhuB,KAAKsZ,aAE5DtZ,KAAKspB,eAGRtpB,KAAK8qB,QAAQ,gBAFb9qB,KAAKspB,gBAAiB,IAU5BtpB,KAAKqtB,wBAAwBW,GAG3BC,IACFjuB,KAAKqtB,wBAAwBW,GAC7BhuB,KAAKwU,QACLxU,KAAK8qB,QAAQ,YA9Cf,CAgDF,EAEA1C,cAAc5nB,UAAU2tB,cAAgB,SAAUt2B,EAAKyiB,GACrDta,KAAK2oB,UAAY,EAEb9wB,EAAI,GAAKA,EAAI,IACXmI,KAAK4tB,cAAgB,IACnB5tB,KAAKyoB,UAAY,EACnBzoB,KAAKouB,UAAUpuB,KAAKyoB,WAEpBzoB,KAAKquB,cAAc,IAIvBruB,KAAKsZ,YAAczhB,EAAI,GAAKA,EAAI,GAChCmI,KAAKipB,cAAgBjpB,KAAKsZ,YAC1BtZ,KAAKqZ,WAAaxhB,EAAI,GACtBmI,KAAKqtB,wBAAwBrtB,KAAKsZ,YAAc,KAAQgB,IAC/CziB,EAAI,GAAKA,EAAI,KAClBmI,KAAK4tB,cAAgB,IACnB5tB,KAAKyoB,UAAY,EACnBzoB,KAAKouB,UAAUpuB,KAAKyoB,WAEpBzoB,KAAKquB,aAAa,IAItBruB,KAAKsZ,YAAczhB,EAAI,GAAKA,EAAI,GAChCmI,KAAKipB,cAAgBjpB,KAAKsZ,YAC1BtZ,KAAKqZ,WAAaxhB,EAAI,GACtBmI,KAAKqtB,wBAAwB,KAAQ/S,IAGvCta,KAAK8qB,QAAQ,eACf,EAEA1C,cAAc5nB,UAAU8tB,WAAa,SAAUC,EAAMC,GACnD,IAAIC,GAAgB,EAEhBzuB,KAAK4oB,WACH5oB,KAAKsoB,gBAAkBtoB,KAAKqZ,WAAakV,EAC3CE,EAAeF,EACNvuB,KAAKsoB,gBAAkBtoB,KAAKqZ,WAAamV,IAClDC,EAAeD,EAAMD,IAIzBvuB,KAAKqZ,WAAakV,EAClBvuB,KAAKsZ,YAAckV,EAAMD,EACzBvuB,KAAKipB,cAAgBjpB,KAAKsZ,aAEJ,IAAlBmV,GACFzuB,KAAKytB,YAAYgB,GAAc,EAEnC,EAEArG,cAAc5nB,UAAUstB,aAAe,SAAUj2B,EAAK62B,GAKpD,GAJIA,IACF1uB,KAAKopB,SAAS1yB,OAAS,GAGC,WAAtByxB,UAAUtwB,EAAI,IAAkB,CAClC,IAAIlB,EACAwH,EAAMtG,EAAInB,OAEd,IAAKC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACxBqJ,KAAKopB,SAAS9wB,KAAKT,EAAIlB,GAE3B,MACEqJ,KAAKopB,SAAS9wB,KAAKT,GAGjBmI,KAAKopB,SAAS1yB,QAAUg4B,GAC1B1uB,KAAKmuB,cAAcnuB,KAAKopB,SAASyC,QAAS,GAGxC7rB,KAAK4oB,UACP5oB,KAAKiV,MAET,EAEAmT,cAAc5nB,UAAUmuB,cAAgB,SAAUD,GAChD1uB,KAAKopB,SAAS1yB,OAAS,EACvBsJ,KAAKopB,SAAS9wB,KAAK,CAAC0H,KAAKif,cAAcK,GAAItf,KAAKif,cAAcM,KAE1DmP,GACF1uB,KAAKkuB,cAAc,EAEvB,EAEA9F,cAAc5nB,UAAU0tB,cAAgB,SAAU5T,GAChD,QAAIta,KAAKopB,SAAS1yB,SAChBsJ,KAAKmuB,cAAcnuB,KAAKopB,SAASyC,QAASvR,IACnC,EAIX,EAEA8N,cAAc5nB,UAAU4kB,QAAU,SAAUpf,GACtCA,GAAQhG,KAAKgG,OAASA,IAAShG,KAAK+oB,WAIxC/oB,KAAK+oB,SAAS3D,UACdplB,KAAKwpB,eAAepE,UACpBplB,KAAK8qB,QAAQ,WACb9qB,KAAKmmB,KAAO,KACZnmB,KAAK4uB,aAAe,KACpB5uB,KAAK6uB,eAAiB,KACtB7uB,KAAK+hB,WAAa,KAClB/hB,KAAK8uB,eAAiB,KACtB9uB,KAAK+uB,UAAY,KACjB/uB,KAAK+oB,SAAW,KAChB/oB,KAAK+oB,SAAW,KAChB/oB,KAAKwpB,eAAiB,KACtBxpB,KAAKupB,iBAAmB,KAC1B,EAEAnB,cAAc5nB,UAAU6sB,wBAA0B,SAAUr2B,GAC1DgJ,KAAKsoB,gBAAkBtxB,EACvBgJ,KAAK4sB,WACP,EAEAxE,cAAc5nB,UAAU4tB,SAAW,SAAUlwB,GAC3C8B,KAAKyoB,UAAYvqB,EACjB8B,KAAKssB,mBACP,EAEAlE,cAAc5nB,UAAU6tB,aAAe,SAAUnwB,GAC/C8B,KAAK0oB,cAAgBxqB,EAAM,GAAK,EAAI,EACpC8B,KAAKssB,mBACP,EAEAlE,cAAc5nB,UAAUwuB,QAAU,SAAUC,GAC1CjvB,KAAK8oB,KAAOmG,CACd,EAEA7G,cAAc5nB,UAAU6U,UAAY,SAAUnX,EAAK8H,GAC7CA,GAAQhG,KAAKgG,OAASA,GAI1BhG,KAAKypB,gBAAgBpU,UAAUnX,EACjC,EAEAkqB,cAAc5nB,UAAUkV,UAAY,WAClC,OAAO1V,KAAKypB,gBAAgB/T,WAC9B,EAEA0S,cAAc5nB,UAAUgV,KAAO,SAAUxP,GACnCA,GAAQhG,KAAKgG,OAASA,GAI1BhG,KAAKypB,gBAAgBjU,MACvB,EAEA4S,cAAc5nB,UAAUiV,OAAS,SAAUzP,GACrCA,GAAQhG,KAAKgG,OAASA,GAI1BhG,KAAKypB,gBAAgBhU,QACvB,EAEA2S,cAAc5nB,UAAU8rB,kBAAoB,WAC1CtsB,KAAK4tB,cAAgB5tB,KAAKwoB,UAAYxoB,KAAKyoB,UAAYzoB,KAAK0oB,cAC5D1oB,KAAKypB,gBAAgB/U,QAAQ1U,KAAKyoB,UAAYzoB,KAAK0oB,cACrD,EAEAN,cAAc5nB,UAAU0uB,QAAU,WAChC,OAAOlvB,KAAKkc,IACd,EAEAkM,cAAc5nB,UAAUkjB,cAAgB,SAAUC,GAChD,IAAIzH,EAAO,GAEX,GAAIyH,EAAU1sB,EACZilB,EAAOyH,EAAU/mB,OACZ,GAAIoD,KAAK4jB,WAAY,CAC1B,IAAIE,EAAYH,EAAU/mB,GAEY,IAAlCknB,EAAUrT,QAAQ,aACpBqT,EAAYA,EAAUzY,MAAM,KAAK,IAGnC6Q,EAAOlc,KAAK4jB,WAAaE,CAC3B,MACE5H,EAAOlc,KAAKkc,KACZA,GAAQyH,EAAUI,EAAIJ,EAAUI,EAAI,GACpC7H,GAAQyH,EAAU/mB,EAGpB,OAAOsf,CACT,EAEAkM,cAAc5nB,UAAU2uB,aAAe,SAAUnR,GAI/C,IAHA,IAAIrnB,EAAI,EACJwH,EAAM6B,KAAKkf,OAAOxoB,OAEfC,EAAIwH,GAAK,CACd,GAAI6f,IAAOhe,KAAKkf,OAAOvoB,GAAGqnB,GACxB,OAAOhe,KAAKkf,OAAOvoB,GAGrBA,GAAK,CACP,CAEA,OAAO,IACT,EAEAyxB,cAAc5nB,UAAU4uB,KAAO,WAC7BpvB,KAAK+oB,SAASqG,MAChB,EAEAhH,cAAc5nB,UAAU6uB,KAAO,WAC7BrvB,KAAK+oB,SAASsG,MAChB,EAEAjH,cAAc5nB,UAAU8uB,YAAc,SAAU5B,GAC9C,OAAOA,EAAU1tB,KAAKsZ,YAActZ,KAAKsZ,YAActZ,KAAKuoB,SAC9D,EAEAH,cAAc5nB,UAAU+uB,mBAAqB,SAAUrT,EAAM6C,EAAcxR,GACzE,IACgBvN,KAAK+oB,SAASyG,iBAAiBtT,GACrCqT,mBAAmBxQ,EAAcxR,EAC3C,CAAE,MAAO1J,GAAQ,CAEnB,EAEAukB,cAAc5nB,UAAUsqB,QAAU,SAAU9kB,GAC1C,GAAIhG,KAAKmmB,MAAQnmB,KAAKmmB,KAAKngB,GACzB,OAAQA,GACN,IAAK,aACHhG,KAAKimB,aAAajgB,EAAM,IAAI2S,kBAAkB3S,EAAMhG,KAAK6nB,aAAc7nB,KAAKsZ,YAAatZ,KAAK4tB,gBAC9F,MAEF,IAAK,aACH5tB,KAAK6pB,gBAAgBjR,YAAc5Y,KAAK6nB,aACxC7nB,KAAK6pB,gBAAgBhR,UAAY7Y,KAAKsZ,YACtCtZ,KAAK6pB,gBAAgB9Q,UAAY/Y,KAAK4tB,cACtC5tB,KAAKimB,aAAajgB,EAAMhG,KAAK6pB,iBAC7B,MAEF,IAAK,eACH7pB,KAAKimB,aAAajgB,EAAM,IAAIiT,oBAAoBjT,EAAMhG,KAAK8oB,KAAM9oB,KAAK2oB,UAAW3oB,KAAKwoB,YACtF,MAEF,IAAK,WACHxoB,KAAKimB,aAAajgB,EAAM,IAAIgT,gBAAgBhT,EAAMhG,KAAKwoB,YACvD,MAEF,IAAK,eACHxoB,KAAKimB,aAAajgB,EAAM,IAAIoT,oBAAoBpT,EAAMhG,KAAKqZ,WAAYrZ,KAAKsZ,cAC5E,MAEF,IAAK,UACHtZ,KAAKimB,aAAajgB,EAAM,IAAIuT,eAAevT,EAAMhG,OACjD,MAEF,QACEA,KAAKimB,aAAajgB,GAIX,eAATA,GAAyBhG,KAAK4uB,cAChC5uB,KAAK4uB,aAAap3B,KAAKwI,KAAM,IAAI2Y,kBAAkB3S,EAAMhG,KAAK6nB,aAAc7nB,KAAKsZ,YAAatZ,KAAKwoB,YAGxF,iBAATxiB,GAA2BhG,KAAK6uB,gBAClC7uB,KAAK6uB,eAAer3B,KAAKwI,KAAM,IAAIiZ,oBAAoBjT,EAAMhG,KAAK8oB,KAAM9oB,KAAK2oB,UAAW3oB,KAAKwoB,YAGlF,aAATxiB,GAAuBhG,KAAK+hB,YAC9B/hB,KAAK+hB,WAAWvqB,KAAKwI,KAAM,IAAIgZ,gBAAgBhT,EAAMhG,KAAKwoB,YAG/C,iBAATxiB,GAA2BhG,KAAK8uB,gBAClC9uB,KAAK8uB,eAAet3B,KAAKwI,KAAM,IAAIoZ,oBAAoBpT,EAAMhG,KAAKqZ,WAAYrZ,KAAKsZ,cAGxE,YAATtT,GAAsBhG,KAAK+uB,WAC7B/uB,KAAK+uB,UAAUv3B,KAAKwI,KAAM,IAAIuZ,eAAevT,EAAMhG,MAEvD,EAEAooB,cAAc5nB,UAAU2sB,wBAA0B,SAAU1T,GAC1D,IAAI5V,EAAQ,IAAI2V,wBAAwBC,EAAazZ,KAAK6nB,cAC1D7nB,KAAKimB,aAAa,QAASpiB,GAEvB7D,KAAKgiB,SACPhiB,KAAKgiB,QAAQxqB,KAAKwI,KAAM6D,EAE5B,EAEAukB,cAAc5nB,UAAUgsB,mBAAqB,SAAU/S,GACrD,IAAI5V,EAAQ,IAAI6V,mBAAmBD,EAAazZ,KAAK6nB,cACrD7nB,KAAKimB,aAAa,QAASpiB,GAEvB7D,KAAKgiB,SACPhiB,KAAKgiB,QAAQxqB,KAAKwI,KAAM6D,EAE5B,EAEA,IAAI4rB,iBAAmB,WACrB,IAAInP,EAAW,CAAC,EACZoP,EAAuB,GACvBC,EAAW,EACXxxB,EAAM,EACNyxB,EAAuB,EACvBC,GAAW,EACXC,GAAY,EAEhB,SAASC,EAAcC,GAIrB,IAHA,IAAIr5B,EAAI,EACJs5B,EAAWD,EAAG7nB,OAEXxR,EAAIwH,GACLuxB,EAAqB/4B,GAAGkrB,YAAcoO,IACxCP,EAAqBpJ,OAAO3vB,EAAG,GAC/BA,GAAK,EACLwH,GAAO,EAEF8xB,EAASrH,UACZsH,KAIJv5B,GAAK,CAET,CAEA,SAASw5B,EAAkBrY,EAASmH,GAClC,IAAKnH,EACH,OAAO,KAKT,IAFA,IAAInhB,EAAI,EAEDA,EAAIwH,GAAK,CACd,GAAIuxB,EAAqB/4B,GAAGy5B,OAAStY,GAA4C,OAAjC4X,EAAqB/4B,GAAGy5B,KACtE,OAAOV,EAAqB/4B,GAAGkrB,UAGjClrB,GAAK,CACP,CAEA,IAAIs5B,EAAW,IAAI7H,cAGnB,OAFAsC,EAAeuF,EAAUnY,GACzBmY,EAASlF,QAAQjT,EAASmH,GACnBgR,CACT,CAcA,SAASI,IACPT,GAAwB,EACxBU,GACF,CAEA,SAASJ,IACPN,GAAwB,CAC1B,CAEA,SAASlF,EAAeuF,EAAUnY,GAChCmY,EAASzK,iBAAiB,UAAWuK,GACrCE,EAASzK,iBAAiB,UAAW6K,GACrCJ,EAASzK,iBAAiB,QAAS0K,GACnCR,EAAqBp3B,KAAK,CACxB83B,KAAMtY,EACN+J,UAAWoO,IAEb9xB,GAAO,CACT,CAiCA,SAASsW,EAAO8b,GACd,IACI55B,EADA65B,EAAcD,EAAUZ,EAG5B,IAAKh5B,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACxB+4B,EAAqB/4B,GAAGkrB,UAAUkM,YAAYyC,GAGhDb,EAAWY,EAEPX,IAAyBE,EAC3B5vB,OAAOuwB,sBAAsBhc,GAE7Bob,GAAW,CAEf,CAEA,SAASa,EAAMH,GACbZ,EAAWY,EACXrwB,OAAOuwB,sBAAsBhc,EAC/B,CA+EA,SAAS6b,KACFR,GAAaF,GACZC,IACF3vB,OAAOuwB,sBAAsBC,GAC7Bb,GAAW,EAGjB,CAsDA,OAnBAvP,EAAS6P,kBAAoBA,EAC7B7P,EAAS4B,cA7KT,SAAuB6H,GACrB,IAAIkG,EAAW,IAAI7H,cAGnB,OAFAsC,EAAeuF,EAAU,MACzBA,EAASnG,UAAUC,GACZkG,CACT,EAyKA3P,EAAS8N,SAvKT,SAAkBlwB,EAAK2jB,GACrB,IAAIlrB,EAEJ,IAAKA,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACxB+4B,EAAqB/4B,GAAGkrB,UAAUuM,SAASlwB,EAAK2jB,EAEpD,EAkKAvB,EAAS+N,aAhKT,SAAsBnwB,EAAK2jB,GACzB,IAAIlrB,EAEJ,IAAKA,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACxB+4B,EAAqB/4B,GAAGkrB,UAAUwM,aAAanwB,EAAK2jB,EAExD,EA2JAvB,EAASrL,KAzJT,SAAc4M,GACZ,IAAIlrB,EAEJ,IAAKA,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACxB+4B,EAAqB/4B,GAAGkrB,UAAU5M,KAAK4M,EAE3C,EAoJAvB,EAAS9L,MA5HT,SAAeqN,GACb,IAAIlrB,EAEJ,IAAKA,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACxB+4B,EAAqB/4B,GAAGkrB,UAAUrN,MAAMqN,EAE5C,EAuHAvB,EAASxZ,KA7GT,SAAc+a,GACZ,IAAIlrB,EAEJ,IAAKA,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACxB+4B,EAAqB/4B,GAAGkrB,UAAU/a,KAAK+a,EAE3C,EAwGAvB,EAAS8M,YAtGT,SAAqBvL,GACnB,IAAIlrB,EAEJ,IAAKA,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACxB+4B,EAAqB/4B,GAAGkrB,UAAUuL,YAAYvL,EAElD,EAiGAvB,EAASqQ,iBAvFT,SAA0B1R,EAAe2R,EAAY7H,GACnD,IACIpyB,EADAk6B,EAAe,GAAGC,OAAO,GAAGr3B,MAAMjC,KAAKsX,SAASiiB,uBAAuB,WAAY,GAAGt3B,MAAMjC,KAAKsX,SAASiiB,uBAAuB,eAEjIC,EAAWH,EAAan6B,OAE5B,IAAKC,EAAI,EAAGA,EAAIq6B,EAAUr6B,GAAK,EACzBoyB,GACF8H,EAAal6B,GAAGs6B,aAAa,eAAgBlI,GAG/CoH,EAAkBU,EAAal6B,GAAIsoB,GAGrC,GAAI2R,GAA2B,IAAbI,EAAgB,CAC3BjI,IACHA,EAAW,OAGb,IAAImI,EAAOpiB,SAASqiB,qBAAqB,QAAQ,GACjDD,EAAKE,UAAY,GACjB,IAAIC,EAAMhe,UAAU,OACpBge,EAAItZ,MAAM8K,MAAQ,OAClBwO,EAAItZ,MAAM+K,OAAS,OACnBuO,EAAIJ,aAAa,eAAgBlI,GACjCmI,EAAKrL,YAAYwL,GACjBlB,EAAkBkB,EAAKpS,EACzB,CACF,EA6DAqB,EAASuM,OA3DT,WACE,IAAIl2B,EAEJ,IAAKA,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACxB+4B,EAAqB/4B,GAAGkrB,UAAUgL,QAEtC,EAuDAvM,EAASmN,YA1HT,SAAqBz2B,EAAO02B,EAAS7L,GACnC,IAAIlrB,EAEJ,IAAKA,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACxB+4B,EAAqB/4B,GAAGkrB,UAAU4L,YAAYz2B,EAAO02B,EAAS7L,EAElE,EAqHAvB,EAAS8E,QAnGT,SAAiBvD,GACf,IAAIlrB,EAEJ,IAAKA,EAAIwH,EAAM,EAAGxH,GAAK,EAAGA,GAAK,EAC7B+4B,EAAqB/4B,GAAGkrB,UAAUuD,QAAQvD,EAE9C,EA8FAvB,EAASgR,OA9CT,WACExB,GAAY,CACd,EA6CAxP,EAASiR,SA3CT,WACEzB,GAAY,EACZQ,GACF,EAyCAhQ,EAASjL,UAvCT,SAAmBnX,EAAK2jB,GACtB,IAAIlrB,EAEJ,IAAKA,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACxB+4B,EAAqB/4B,GAAGkrB,UAAUxM,UAAUnX,EAAK2jB,EAErD,EAkCAvB,EAAS9K,KAhCT,SAAcqM,GACZ,IAAIlrB,EAEJ,IAAKA,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACxB+4B,EAAqB/4B,GAAGkrB,UAAUrM,KAAKqM,EAE3C,EA2BAvB,EAAS7K,OAzBT,SAAgBoM,GACd,IAAIlrB,EAEJ,IAAKA,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACxB+4B,EAAqB/4B,GAAGkrB,UAAUpM,OAAOoM,EAE7C,EAoBAvB,EAASkR,wBA9NT,WACE,IAAI76B,EACAq6B,EAAWtB,EAAqBh5B,OAChC+6B,EAAa,GAEjB,IAAK96B,EAAI,EAAGA,EAAIq6B,EAAUr6B,GAAK,EAC7B86B,EAAWn5B,KAAKo3B,EAAqB/4B,GAAGkrB,WAG1C,OAAO4P,CACT,EAqNOnR,CACT,CAjRuB,GAoRnBoR,cAAgB,WAWlB,IAAIlN,EAAK,CACTA,gBAGA,SAAyB9E,EAAGzF,EAAGgG,EAAG3lB,EAAGotB,GACnC,IAAIiK,EAAMjK,IAAO,OAAShI,EAAI,IAAMzF,EAAI,IAAMgG,EAAI,IAAM3lB,GAAG4C,QAAQ,MAAO,KAE1E,GAAI00B,EAAQD,GACV,OAAOC,EAAQD,GAGjB,IAAIE,EAAY,IAAIC,EAAa,CAACpS,EAAGzF,EAAGgG,EAAG3lB,IAE3C,OADAs3B,EAAQD,GAAOE,EACRA,CACT,GAZID,EAAU,CAAC,EAmBXG,EAAmB,GACnBC,EAAkB,GAAOD,EAAmB,GAC5CE,EAAgD,oBAAjBlc,aAEnC,SAASmc,EAAEC,EAAKC,GACd,OAAO,EAAM,EAAMA,EAAM,EAAMD,CACjC,CAEA,SAASE,EAAEF,EAAKC,GACd,OAAO,EAAMA,EAAM,EAAMD,CAC3B,CAEA,SAASG,EAAEH,GACT,OAAO,EAAMA,CACf,CAGA,SAASI,EAAWC,EAAIL,EAAKC,GAC3B,QAASF,EAAEC,EAAKC,GAAOI,EAAKH,EAAEF,EAAKC,IAAQI,EAAKF,EAAEH,IAAQK,CAC5D,CAGA,SAASC,EAASD,EAAIL,EAAKC,GACzB,OAAO,EAAMF,EAAEC,EAAKC,GAAOI,EAAKA,EAAK,EAAMH,EAAEF,EAAKC,GAAOI,EAAKF,EAAEH,EAClE,CAoCA,SAASL,EAAaY,GACpB1yB,KAAK2yB,GAAKD,EACV1yB,KAAK4yB,eAAiBX,EAAwB,IAAIlc,aAAagc,GAAoB,IAAIv7B,MAAMu7B,GAC7F/xB,KAAK6yB,cAAe,EACpB7yB,KAAKF,IAAME,KAAKF,IAAI+H,KAAK7H,KAC3B,CAqEA,OAnEA8xB,EAAatxB,UAAY,CACvBV,IAAK,SAAagzB,GAChB,IAAIC,EAAM/yB,KAAK2yB,GAAG,GACdK,EAAMhzB,KAAK2yB,GAAG,GACdM,EAAMjzB,KAAK2yB,GAAG,GACdO,EAAMlzB,KAAK2yB,GAAG,GAElB,OADK3yB,KAAK6yB,cAAc7yB,KAAKmzB,cACzBJ,IAAQC,GAAOC,IAAQC,EAAYJ,EAG7B,IAANA,EAAgB,EACV,IAANA,EAAgB,EACbP,EAAWvyB,KAAKozB,UAAUN,GAAIE,EAAKE,EAC5C,EAEAC,YAAa,WACX,IAAIJ,EAAM/yB,KAAK2yB,GAAG,GACdK,EAAMhzB,KAAK2yB,GAAG,GACdM,EAAMjzB,KAAK2yB,GAAG,GACdO,EAAMlzB,KAAK2yB,GAAG,GAClB3yB,KAAK6yB,cAAe,EAEhBE,IAAQC,GAAOC,IAAQC,GACzBlzB,KAAKqzB,mBAET,EACAA,kBAAmB,WAIjB,IAHA,IAAIN,EAAM/yB,KAAK2yB,GAAG,GACdM,EAAMjzB,KAAK2yB,GAAG,GAETh8B,EAAI,EAAGA,EAAIo7B,IAAoBp7B,EACtCqJ,KAAK4yB,eAAej8B,GAAK47B,EAAW57B,EAAIq7B,EAAiBe,EAAKE,EAElE,EAKAG,UAAW,SAAmBE,GAQ5B,IAPA,IAAIP,EAAM/yB,KAAK2yB,GAAG,GACdM,EAAMjzB,KAAK2yB,GAAG,GACdY,EAAgBvzB,KAAK4yB,eACrBY,EAAgB,EAChBC,EAAgB,EAChBC,EAAa3B,EAAmB,EAE7B0B,IAAkBC,GAAcH,EAAcE,IAAkBH,IAAMG,EAC3ED,GAAiBxB,EAKnB,IACI2B,EAAYH,GADJF,EAAKC,IAFfE,KAEgDF,EAAcE,EAAgB,GAAKF,EAAcE,IAC5DzB,EACnC4B,EAAenB,EAASkB,EAAWZ,EAAKE,GAE5C,OAAIW,GA9He,KAgDvB,SAA8BN,EAAIO,EAASd,EAAKE,GAC9C,IAAK,IAAIt8B,EAAI,EAAGA,EAlDM,IAkDmBA,EAAG,CAC1C,IAAIm9B,EAAerB,EAASoB,EAASd,EAAKE,GAC1C,GAAqB,IAAjBa,EAAsB,OAAOD,EAEjCA,IADetB,EAAWsB,EAASd,EAAKE,GAAOK,GACzBQ,CACxB,CAEA,OAAOD,CACT,CAsEaE,CAAqBT,EAAIK,EAAWZ,EAAKE,GAG7B,IAAjBW,EACKD,EAtGb,SAAyBL,EAAIU,EAAIC,EAAIlB,EAAKE,GACxC,IAAIiB,EACAC,EACAx9B,EAAI,EAER,IAEEu9B,EAAW3B,EADX4B,EAAWH,GAAMC,EAAKD,GAAM,EACIjB,EAAKE,GAAOK,GAE7B,EACbW,EAAKE,EAELH,EAAKG,QAEAj4B,KAAKS,IAAIu3B,GA1CQ,QA0C+Bv9B,EAzC1B,IA2C/B,OAAOw9B,CACT,CAwFWC,CAAgBd,EAAIE,EAAeA,EAAgBxB,EAAiBe,EAAKE,EAClF,GAEKzO,CACT,CAvKoB,GAyKhB6P,QAKK,CACL,OALF,SAAiBx8B,GACf,OAAOA,EAAIi5B,OAAO7a,iBAAiBpe,EAAInB,QACzC,GAOE49B,YACK,SAAUC,EAAeC,EAASC,GACvC,IAAIC,EAAU,EACVC,EAAaJ,EACbK,EAAO3e,iBAAiB0e,GAiC5B,MAhCS,CACPE,WAIF,WAUE,OAPIH,EAEQE,EADVF,GAAW,GAGDF,GAId,EAdEM,QAgBF,SAAiBhd,GACX4c,IAAYC,IACdC,EAAOP,QAAgB,OAAEO,GACzBD,GAAc,GAGZF,GACFA,EAAS3c,GAGX8c,EAAKF,GAAW5c,EAChB4c,GAAW,CACb,EAGF,EAGEK,iBASKT,YAAY,GARnB,WACE,MAAO,CACLU,YAAa,EACbC,SAAUrf,iBAAiB,UAAWwF,2BACtC8Z,QAAStf,iBAAiB,UAAWwF,2BAEzC,IAKE+Z,mBAmBKb,YAAY,GAlBnB,WACE,MAAO,CACLY,QAAS,GACTE,YAAa,EAEjB,IAEA,SAAiBtd,GACf,IAAInhB,EACAwH,EAAM2Z,EAAQod,QAAQx+B,OAE1B,IAAKC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACxBo+B,iBAAiBD,QAAQhd,EAAQod,QAAQv+B,IAG3CmhB,EAAQod,QAAQx+B,OAAS,CAC3B,IAKF,SAAS2+B,cACP,IAAIC,EAAOp5B,KAEX,SAASq5B,EAAcC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,GACzC,IAAIC,EAAON,EAAKG,EAAKF,EAAKG,EAAKF,EAAKG,EAAKD,EAAKD,EAAKE,EAAKL,EAAKE,EAAKD,EAClE,OAAOK,GAAQ,MAASA,EAAO,IACjC,CA2BA,IAAIC,EACK,SAAUC,EAAKC,EAAKC,EAAKC,GAC9B,IACIjZ,EACAvmB,EACAwH,EACAi4B,EACAC,EAEAC,EAPAC,EAAgBnb,0BAMhB4Z,EAAc,EAEdwB,EAAQ,GACRC,EAAY,GACZC,EAAa3B,iBAAiBF,aAGlC,IAFA12B,EAAM+3B,EAAIx/B,OAELwmB,EAAI,EAAGA,EAAIqZ,EAAerZ,GAAK,EAAG,CAIrC,IAHAmZ,EAAOnZ,GAAKqZ,EAAgB,GAC5BD,EAAa,EAER3/B,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACxBy/B,EAAU3f,MAAM,EAAI4f,EAAM,GAAKL,EAAIr/B,GAAK,EAAI8f,MAAM,EAAI4f,EAAM,GAAKA,EAAOH,EAAIv/B,GAAK,GAAK,EAAI0/B,GAAQ5f,MAAM4f,EAAM,GAAKF,EAAIx/B,GAAK8f,MAAM4f,EAAM,GAAKJ,EAAIt/B,GACjJ6/B,EAAM7/B,GAAKy/B,EAEU,OAAjBK,EAAU9/B,KACZ2/B,GAAc7f,MAAM+f,EAAM7/B,GAAK8/B,EAAU9/B,GAAI,IAG/C8/B,EAAU9/B,GAAK6/B,EAAM7/B,GAGnB2/B,IAEFtB,GADAsB,EAAa5f,OAAO4f,IAItBI,EAAWzB,SAAS/X,GAAKmZ,EACzBK,EAAWxB,QAAQhY,GAAK8X,CAC1B,CAGA,OADA0B,EAAW1B,YAAcA,EAClB0B,CACT,EA4BF,SAASC,EAAWjgC,GAClBsJ,KAAK42B,cAAgB,EACrB52B,KAAK0yB,OAAS,IAAIl8B,MAAME,EAC1B,CAEA,SAASmgC,EAAUC,EAASN,GAC1Bx2B,KAAK+2B,cAAgBD,EACrB92B,KAAKw2B,MAAQA,CACf,CAEA,IAAIQ,EAAkB,WACpB,IAAIC,EAAa,CAAC,EAClB,OAAO,SAAUjB,EAAKC,EAAKC,EAAKC,GAC9B,IAAIe,GAAclB,EAAI,GAAK,IAAMA,EAAI,GAAK,IAAMC,EAAI,GAAK,IAAMA,EAAI,GAAK,IAAMC,EAAI,GAAK,IAAMA,EAAI,GAAK,IAAMC,EAAI,GAAK,IAAMA,EAAI,IAAIj5B,QAAQ,MAAO,KAElJ,IAAK+5B,EAAWC,GAAa,CAC3B,IACIha,EACAvmB,EACAwH,EACAi4B,EACAC,EAEAC,EACAE,EARAD,EAAgBnb,0BAMhB4Z,EAAc,EAGdyB,EAAY,KAEG,IAAfT,EAAIt/B,SAAiBs/B,EAAI,KAAOC,EAAI,IAAMD,EAAI,KAAOC,EAAI,KAAOV,EAAcS,EAAI,GAAIA,EAAI,GAAIC,EAAI,GAAIA,EAAI,GAAID,EAAI,GAAKE,EAAI,GAAIF,EAAI,GAAKE,EAAI,KAAOX,EAAcS,EAAI,GAAIA,EAAI,GAAIC,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAAKE,EAAI,GAAIF,EAAI,GAAKE,EAAI,MACjOI,EAAgB,GAGlB,IAAIY,EAAa,IAAIR,EAAWJ,GAGhC,IAFAp4B,EAAM+3B,EAAIx/B,OAELwmB,EAAI,EAAGA,EAAIqZ,EAAerZ,GAAK,EAAG,CAKrC,IAJAsZ,EAAQvgB,iBAAiB9X,GACzBk4B,EAAOnZ,GAAKqZ,EAAgB,GAC5BD,EAAa,EAER3/B,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACxBy/B,EAAU3f,MAAM,EAAI4f,EAAM,GAAKL,EAAIr/B,GAAK,EAAI8f,MAAM,EAAI4f,EAAM,GAAKA,GAAQL,EAAIr/B,GAAKu/B,EAAIv/B,IAAM,GAAK,EAAI0/B,GAAQ5f,MAAM4f,EAAM,IAAMJ,EAAIt/B,GAAKw/B,EAAIx/B,IAAM8f,MAAM4f,EAAM,GAAKJ,EAAIt/B,GACvK6/B,EAAM7/B,GAAKy/B,EAEO,OAAdK,IACFH,GAAc7f,MAAM+f,EAAM7/B,GAAK8/B,EAAU9/B,GAAI,IAKjDq+B,GADAsB,EAAa5f,OAAO4f,GAEpBa,EAAWzE,OAAOxV,GAAK,IAAI2Z,EAAUP,EAAYE,GACjDC,EAAYD,CACd,CAEAW,EAAWP,cAAgB5B,EAC3BiC,EAAWC,GAAcC,CAC3B,CAEA,OAAOF,EAAWC,EACpB,CACF,CAlDsB,GAoDtB,SAASE,EAAgBf,EAAMc,GAC7B,IAAIlC,EAAWkC,EAAWlC,SACtBC,EAAUiC,EAAWjC,QACrB/2B,EAAM82B,EAASv+B,OACf2gC,EAAUzgB,SAASzY,EAAM,GAAKk4B,GAC9BiB,EAAYjB,EAAOc,EAAWnC,YAC9BuC,EAAQ,EAEZ,GAAIF,IAAYl5B,EAAM,GAAiB,IAAZk5B,GAAiBC,IAAcpC,EAAQmC,GAChE,OAAOpC,EAASoC,GAMlB,IAHA,IAAIG,EAAMtC,EAAQmC,GAAWC,GAAa,EAAI,EAC1CrkB,GAAO,EAEJA,GAQL,GAPIiiB,EAAQmC,IAAYC,GAAapC,EAAQmC,EAAU,GAAKC,GAC1DC,GAASD,EAAYpC,EAAQmC,KAAanC,EAAQmC,EAAU,GAAKnC,EAAQmC,IACzEpkB,GAAO,GAEPokB,GAAWG,EAGTH,EAAU,GAAKA,GAAWl5B,EAAM,EAAG,CAErC,GAAIk5B,IAAYl5B,EAAM,EACpB,OAAO82B,EAASoC,GAGlBpkB,GAAO,CACT,CAGF,OAAOgiB,EAASoC,IAAYpC,EAASoC,EAAU,GAAKpC,EAASoC,IAAYE,CAC3E,CAUA,IAAIE,EAAsB7hB,iBAAiB,UAAW,GAyDtD,MAAO,CACL8hB,kBA7LF,SAA2BC,GACzB,IAKIhhC,EALAihC,EAAiBzC,mBAAmBN,aACpCzU,EAASuX,EAAU1X,EACnB4X,EAAQF,EAAU5d,EAClB+d,EAAQH,EAAUxhC,EAClB4hC,EAAQJ,EAAUhhC,EAElBwH,EAAMw5B,EAAUjD,QAChBQ,EAAU0C,EAAe1C,QACzBE,EAAc,EAElB,IAAKz+B,EAAI,EAAGA,EAAIwH,EAAM,EAAGxH,GAAK,EAC5Bu+B,EAAQv+B,GAAKo/B,EAAgB8B,EAAMlhC,GAAIkhC,EAAMlhC,EAAI,GAAImhC,EAAMnhC,GAAIohC,EAAMphC,EAAI,IACzEy+B,GAAeF,EAAQv+B,GAAGq+B,YAS5B,OANI5U,GAAUjiB,IACZ+2B,EAAQv+B,GAAKo/B,EAAgB8B,EAAMlhC,GAAIkhC,EAAM,GAAIC,EAAMnhC,GAAIohC,EAAM,IACjE3C,GAAeF,EAAQv+B,GAAGq+B,aAG5B4C,EAAexC,YAAcA,EACtBwC,CACT,EAuKEI,cAzDF,SAAuBhC,EAAKC,EAAKC,EAAKC,EAAK8B,EAAWC,EAASf,GACzDc,EAAY,EACdA,EAAY,EACHA,EAAY,IACrBA,EAAY,GAGd,IAGIthC,EAHAwhC,EAAKf,EAAgBa,EAAWd,GAEhCiB,EAAKhB,EADTc,EAAUA,EAAU,EAAI,EAAIA,EACMf,GAE9Bh5B,EAAM63B,EAAIt/B,OACV2hC,EAAK,EAAIF,EACTG,EAAK,EAAIF,EACTG,EAASF,EAAKA,EAAKA,EACnBG,EAAWL,EAAKE,EAAKA,EAAK,EAE1BI,EAAWN,EAAKA,EAAKE,EAAK,EAE1BK,EAASP,EAAKA,EAAKA,EAEnBQ,EAASN,EAAKA,EAAKC,EACnBM,EAAWT,EAAKE,EAAKC,EAAKD,EAAKF,EAAKG,EAAKD,EAAKA,EAAKD,EAEnDS,EAAWV,EAAKA,EAAKG,EAAKD,EAAKF,EAAKC,EAAKD,EAAKE,EAAKD,EAEnDU,EAASX,EAAKA,EAAKC,EAEnBW,EAASV,EAAKC,EAAKA,EACnBU,EAAWb,EAAKG,EAAKA,EAAKD,EAAKD,EAAKE,EAAKD,EAAKC,EAAKF,EAEnDa,EAAWd,EAAKC,EAAKE,EAAKD,EAAKD,EAAKA,EAAKD,EAAKG,EAAKF,EAEnDc,EAASf,EAAKC,EAAKA,EAEnBe,EAASb,EAAKA,EAAKA,EACnBc,EAAWhB,EAAKE,EAAKA,EAAKA,EAAKF,EAAKE,EAAKA,EAAKA,EAAKF,EAEnDiB,EAAWjB,EAAKA,EAAKE,EAAKA,EAAKF,EAAKA,EAAKA,EAAKE,EAAKF,EAEnDkB,EAASlB,EAAKA,EAAKA,EAEvB,IAAKzhC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACxB8gC,EAAwB,EAAJ9gC,GAAS2+B,EAAK1d,MAAoF,KAA7E2gB,EAASvC,EAAIr/B,GAAK6hC,EAAWtC,EAAIv/B,GAAK8hC,EAAWtC,EAAIx/B,GAAK+hC,EAASzC,EAAIt/B,KAAc,IAE9H8gC,EAAwB,EAAJ9gC,EAAQ,GAAK2+B,EAAK1d,MAAoF,KAA7E+gB,EAAS3C,EAAIr/B,GAAKiiC,EAAW1C,EAAIv/B,GAAKkiC,EAAW1C,EAAIx/B,GAAKmiC,EAAS7C,EAAIt/B,KAAc,IAElI8gC,EAAwB,EAAJ9gC,EAAQ,GAAK2+B,EAAK1d,MAAoF,KAA7EmhB,EAAS/C,EAAIr/B,GAAKqiC,EAAW9C,EAAIv/B,GAAKsiC,EAAW9C,EAAIx/B,GAAKuiC,EAASjD,EAAIt/B,KAAc,IAElI8gC,EAAwB,EAAJ9gC,EAAQ,GAAK2+B,EAAK1d,MAAoF,KAA7EuhB,EAASnD,EAAIr/B,GAAKyiC,EAAWlD,EAAIv/B,GAAK0iC,EAAWlD,EAAIx/B,GAAK2iC,EAASrD,EAAIt/B,KAAc,IAGpI,OAAO8gC,CACT,EAKE8B,kBApEF,SAA2BvD,EAAKC,EAAKC,EAAKC,EAAKqD,EAASrC,GACtD,IAAIiB,EAAKhB,EAAgBoC,EAASrC,GAC9BmB,EAAK,EAAIF,EAGb,MAAO,CAFG9C,EAAK1d,MAAwK,KAAjK0gB,EAAKA,EAAKA,EAAKtC,EAAI,IAAMoC,EAAKE,EAAKA,EAAKA,EAAKF,EAAKE,EAAKA,EAAKA,EAAKF,GAAMlC,EAAI,IAAMkC,EAAKA,EAAKE,EAAKA,EAAKF,EAAKA,EAAKA,EAAKE,EAAKF,GAAMjC,EAAI,GAAKiC,EAAKA,EAAKA,EAAKnC,EAAI,KAAc,IACrLX,EAAK1d,MAAwK,KAAjK0gB,EAAKA,EAAKA,EAAKtC,EAAI,IAAMoC,EAAKE,EAAKA,EAAKA,EAAKF,EAAKE,EAAKA,EAAKA,EAAKF,GAAMlC,EAAI,IAAMkC,EAAKA,EAAKE,EAAKA,EAAKF,EAAKA,EAAKA,EAAKE,EAAKF,GAAMjC,EAAI,GAAKiC,EAAKA,EAAKA,EAAKnC,EAAI,KAAc,IAEjM,EA+DEe,gBAAiBA,EACjBzB,cAAeA,EACfkE,cAvQF,SAAuBjE,EAAIC,EAAIiE,EAAIhE,EAAIC,EAAIgE,EAAI/D,EAAIC,EAAI+D,GACrD,GAAW,IAAPF,GAAmB,IAAPC,GAAmB,IAAPC,EAC1B,OAAOrE,EAAcC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,GAG3C,IAGIgE,EAHAC,EAAQxE,EAAK3e,KAAK2e,EAAK9oB,IAAIkpB,EAAKF,EAAI,GAAKF,EAAK9oB,IAAImpB,EAAKF,EAAI,GAAKH,EAAK9oB,IAAImtB,EAAKD,EAAI,IAClFK,EAAQzE,EAAK3e,KAAK2e,EAAK9oB,IAAIopB,EAAKJ,EAAI,GAAKF,EAAK9oB,IAAIqpB,EAAKJ,EAAI,GAAKH,EAAK9oB,IAAIotB,EAAKF,EAAI,IAClFM,EAAQ1E,EAAK3e,KAAK2e,EAAK9oB,IAAIopB,EAAKF,EAAI,GAAKJ,EAAK9oB,IAAIqpB,EAAKF,EAAI,GAAKL,EAAK9oB,IAAIotB,EAAKD,EAAI,IAetF,OAVIE,EAFAC,EAAQC,EACND,EAAQE,EACCF,EAAQC,EAAQC,EAEhBA,EAAQD,EAAQD,EAEpBE,EAAQD,EACNC,EAAQD,EAAQD,EAEhBC,EAAQD,EAAQE,IAGV,MAAUH,EAAW,IAC1C,EAkPF,CAEA,IAAII,IAAM5E,cAEN6E,UAAYnnB,oBACZonB,QAAUj+B,KAAKS,IAEnB,SAASy9B,iBAAiBC,EAAUC,GAClC,IACIC,EADAC,EAAax6B,KAAKw6B,WAGA,qBAAlBx6B,KAAKy6B,WACPF,EAAW3kB,iBAAiB,UAAW5V,KAAK06B,GAAGhkC,SAWjD,IARA,IAIIikC,EACAC,EACAC,EA6BA3d,EACAC,EACAkZ,EACApZ,EACAD,EACA8d,EAxCAC,EAAiBT,EAAQU,UACzBrkC,EAAIokC,EACJ58B,EAAM6B,KAAKi7B,UAAUvkC,OAAS,EAC9Buc,GAAO,EAKJA,GAAM,CAIX,GAHA0nB,EAAU36B,KAAKi7B,UAAUtkC,GACzBikC,EAAc56B,KAAKi7B,UAAUtkC,EAAI,GAE7BA,IAAMwH,EAAM,GAAKk8B,GAAYO,EAAYx+B,EAAIo+B,EAAY,CACvDG,EAAQl/B,IACVk/B,EAAUC,GAGZG,EAAiB,EACjB,KACF,CAEA,GAAIH,EAAYx+B,EAAIo+B,EAAaH,EAAU,CACzCU,EAAiBpkC,EACjB,KACF,CAEIA,EAAIwH,EAAM,EACZxH,GAAK,GAELokC,EAAiB,EACjB9nB,GAAO,EAEX,CAEA4nB,EAAmB76B,KAAKk7B,kBAAkBvkC,IAAM,CAAC,EAOjD,IAEIwkC,EAFAC,EAAcR,EAAYx+B,EAAIo+B,EAC9Ba,EAAUV,EAAQv+B,EAAIo+B,EAG1B,GAAIG,EAAQjvB,GAAI,CACTmvB,EAAiB1D,aACpB0D,EAAiB1D,WAAa8C,IAAIjD,gBAAgB2D,EAAQ9jC,EAAG+jC,EAAY/jC,GAAK8jC,EAAQ1jC,EAAG0jC,EAAQjvB,GAAIivB,EAAQW,KAG/G,IAAInE,EAAa0D,EAAiB1D,WAElC,GAAIkD,GAAYe,GAAef,EAAWgB,EAAS,CACjD,IAAIE,EAAMlB,GAAYe,EAAcjE,EAAWzE,OAAOh8B,OAAS,EAAI,EAGnE,IAFAymB,EAAOga,EAAWzE,OAAO6I,GAAK/E,MAAM9/B,OAE/BwmB,EAAI,EAAGA,EAAIC,EAAMD,GAAK,EACzBqd,EAASrd,GAAKia,EAAWzE,OAAO6I,GAAK/E,MAAMtZ,EAG/C,KAAO,CACD2d,EAAiBW,OACnBV,EAAMD,EAAiBW,QAEvBV,EAAMpJ,cAAc+J,gBAAgBd,EAAQxkC,EAAE28B,EAAG6H,EAAQxkC,EAAE0D,EAAG8gC,EAAQhkC,EAAEm8B,EAAG6H,EAAQhkC,EAAEkD,EAAG8gC,EAAQ7jC,GAAGgJ,IACnG+6B,EAAiBW,OAASV,GAG5BzE,EAAOyE,GAAKT,EAAWgB,IAAYD,EAAcC,IACjD,IACIK,EADAC,EAAiBxE,EAAWP,cAAgBP,EAE5CrB,EAAcsF,EAAQsB,UAAYvB,GAAYC,EAAQuB,qBAAuBllC,EAAI2jC,EAAQwB,iBAAmB,EAKhH,IAJA9e,EAAIsd,EAAQsB,UAAYvB,GAAYC,EAAQuB,qBAAuBllC,EAAI2jC,EAAQyB,WAAa,EAC5F9oB,GAAO,EACPgK,EAAOka,EAAWzE,OAAOh8B,OAElBuc,GAAM,CAGX,GAFA+hB,GAAemC,EAAWzE,OAAO1V,GAAG+Z,cAEb,IAAnB4E,GAAiC,IAATtF,GAAcrZ,IAAMma,EAAWzE,OAAOh8B,OAAS,EAAG,CAG5E,IAFAymB,EAAOga,EAAWzE,OAAO1V,GAAGwZ,MAAM9/B,OAE7BwmB,EAAI,EAAGA,EAAIC,EAAMD,GAAK,EACzBqd,EAASrd,GAAKia,EAAWzE,OAAO1V,GAAGwZ,MAAMtZ,GAG3C,KACF,CAAO,GAAIye,GAAkB3G,GAAe2G,EAAiB3G,EAAcmC,EAAWzE,OAAO1V,EAAI,GAAG+Z,cAAe,CAIjH,IAHA2E,GAAeC,EAAiB3G,GAAemC,EAAWzE,OAAO1V,EAAI,GAAG+Z,cACxE5Z,EAAOga,EAAWzE,OAAO1V,GAAGwZ,MAAM9/B,OAE7BwmB,EAAI,EAAGA,EAAIC,EAAMD,GAAK,EACzBqd,EAASrd,GAAKia,EAAWzE,OAAO1V,GAAGwZ,MAAMtZ,IAAMia,EAAWzE,OAAO1V,EAAI,GAAGwZ,MAAMtZ,GAAKia,EAAWzE,OAAO1V,GAAGwZ,MAAMtZ,IAAMwe,EAGtH,KACF,CAEI1e,EAAIC,EAAO,EACbD,GAAK,EAEL/J,GAAO,CAEX,CAEAqnB,EAAQyB,WAAa/e,EACrBsd,EAAQwB,iBAAmB9G,EAAcmC,EAAWzE,OAAO1V,GAAG+Z,cAC9DuD,EAAQuB,mBAAqBllC,CAC/B,CACF,KAAO,CACL,IAAIqlC,EACAC,EACAC,EACAC,EACAC,EAIJ,GAHAj+B,EAAMw8B,EAAQ9jC,EAAEH,OAChBykC,EAAWP,EAAY/jC,GAAK8jC,EAAQ1jC,EAEhC+I,KAAKq8B,IAAoB,IAAd1B,EAAQl/B,EACjB4+B,GAAYe,GACdb,EAAS,GAAKY,EAAS,GACvBZ,EAAS,GAAKY,EAAS,GACvBZ,EAAS,GAAKY,EAAS,IACdd,GAAYgB,GACrBd,EAAS,GAAKI,EAAQ9jC,EAAE,GACxB0jC,EAAS,GAAKI,EAAQ9jC,EAAE,GACxB0jC,EAAS,GAAKI,EAAQ9jC,EAAE,IAKxBylC,kBAAkB/B,EAAUgC,MAHZC,iBAAiB7B,EAAQ9jC,GAC3B2lC,iBAAiBrB,IACnBd,EAAWgB,IAAYD,EAAcC,UAInD,IAAK1kC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACN,IAAdgkC,EAAQl/B,IACN4+B,GAAYe,EACd/E,EAAO,EACEgE,EAAWgB,EACpBhF,EAAO,GAEHsE,EAAQxkC,EAAE28B,EAAE/sB,cAAgBvP,OACzBqkC,EAAiBW,SACpBX,EAAiBW,OAAS,IAGvBX,EAAiBW,OAAO7kC,GAQ3BmkC,EAAMD,EAAiBW,OAAO7kC,IAP9BqlC,OAA0B7iC,IAAnBwhC,EAAQxkC,EAAE28B,EAAEn8B,GAAmBgkC,EAAQxkC,EAAE28B,EAAE,GAAK6H,EAAQxkC,EAAE28B,EAAEn8B,GACnEslC,OAA0B9iC,IAAnBwhC,EAAQxkC,EAAE0D,EAAElD,GAAmBgkC,EAAQxkC,EAAE0D,EAAE,GAAK8gC,EAAQxkC,EAAE0D,EAAElD,GACnEulC,OAAyB/iC,IAAnBwhC,EAAQhkC,EAAEm8B,EAAEn8B,GAAmBgkC,EAAQhkC,EAAEm8B,EAAE,GAAK6H,EAAQhkC,EAAEm8B,EAAEn8B,GAClEwlC,OAAyBhjC,IAAnBwhC,EAAQhkC,EAAEkD,EAAElD,GAAmBgkC,EAAQhkC,EAAEkD,EAAE,GAAK8gC,EAAQhkC,EAAEkD,EAAElD,GAClEmkC,EAAMpJ,cAAc+J,gBAAgBO,EAAMC,EAAMC,EAAKC,GAAKr8B,IAC1D+6B,EAAiBW,OAAO7kC,GAAKmkC,IAIrBD,EAAiBW,OAQ3BV,EAAMD,EAAiBW,QAPvBQ,EAAOrB,EAAQxkC,EAAE28B,EACjBmJ,EAAOtB,EAAQxkC,EAAE0D,EACjBqiC,EAAMvB,EAAQhkC,EAAEm8B,EAChBqJ,EAAMxB,EAAQhkC,EAAEkD,EAChBihC,EAAMpJ,cAAc+J,gBAAgBO,EAAMC,EAAMC,EAAKC,GAAKr8B,IAC1D66B,EAAQE,iBAAmBC,GAK7BzE,EAAOyE,GAAKT,EAAWgB,IAAYD,EAAcC,MAIrDF,EAAWP,EAAY/jC,GAAK8jC,EAAQ1jC,EACpCmlC,EAAyB,IAAdzB,EAAQl/B,EAAUk/B,EAAQ9jC,EAAEF,GAAKgkC,EAAQ9jC,EAAEF,IAAMwkC,EAASxkC,GAAKgkC,EAAQ9jC,EAAEF,IAAM0/B,EAEpE,qBAAlBr2B,KAAKy6B,SACPF,EAAS5jC,GAAKylC,EAEd7B,EAAW6B,CAInB,CAGA,OADA9B,EAAQU,UAAYD,EACbR,CACT,CAGA,SAASgC,MAAM7c,EAAGzF,EAAG7d,GACnB,IASIqgC,EACAC,EACAC,EACAC,EACAC,EAbAC,EAAM,GACNC,EAAKrd,EAAE,GACPsd,EAAKtd,EAAE,GACPud,EAAKvd,EAAE,GACPwd,EAAKxd,EAAE,GACPyd,EAAKljB,EAAE,GACPmjB,EAAKnjB,EAAE,GACPojB,EAAKpjB,EAAE,GACPqjB,EAAKrjB,EAAE,GA8BX,OAxBAyiB,EAAQK,EAAKI,EAAKH,EAAKI,EAAKH,EAAKI,EAAKH,EAAKI,GAE/B,IACVZ,GAASA,EACTS,GAAMA,EACNC,GAAMA,EACNC,GAAMA,EACNC,GAAMA,GAGJ,EAAMZ,EAAQ,MAChBD,EAAQvgC,KAAKqhC,KAAKb,GAClBC,EAAQzgC,KAAKshC,IAAIf,GACjBG,EAAS1gC,KAAKshC,KAAK,EAAMphC,GAAKqgC,GAASE,EACvCE,EAAS3gC,KAAKshC,IAAIphC,EAAIqgC,GAASE,IAE/BC,EAAS,EAAMxgC,EACfygC,EAASzgC,GAGX0gC,EAAI,GAAKF,EAASG,EAAKF,EAASM,EAChCL,EAAI,GAAKF,EAASI,EAAKH,EAASO,EAChCN,EAAI,GAAKF,EAASK,EAAKJ,EAASQ,EAChCP,EAAI,GAAKF,EAASM,EAAKL,EAASS,EACzBR,CACT,CAEA,SAASR,kBAAkBQ,EAAKW,GAC9B,IAAIC,EAAKD,EAAK,GACVE,EAAKF,EAAK,GACVG,EAAKH,EAAK,GACVI,EAAKJ,EAAK,GACVK,EAAU5hC,KAAK6hC,MAAM,EAAIJ,EAAKE,EAAK,EAAIH,EAAKE,EAAI,EAAI,EAAID,EAAKA,EAAK,EAAIC,EAAKA,GAC3EI,EAAW9hC,KAAK+hC,KAAK,EAAIP,EAAKC,EAAK,EAAIC,EAAKC,GAC5CK,EAAOhiC,KAAK6hC,MAAM,EAAIL,EAAKG,EAAK,EAAIF,EAAKC,EAAI,EAAI,EAAIF,EAAKA,EAAK,EAAIE,EAAKA,GAC5Ed,EAAI,GAAKgB,EAAUvmB,UACnBulB,EAAI,GAAKkB,EAAWzmB,UACpBulB,EAAI,GAAKoB,EAAO3mB,SAClB,CAEA,SAASilB,iBAAiB35B,GACxB,IAAIi7B,EAAUj7B,EAAO,GAAK0U,UACtBymB,EAAWn7B,EAAO,GAAK0U,UACvB2mB,EAAOr7B,EAAO,GAAK0U,UACnB4mB,EAAKjiC,KAAKkiC,IAAIN,EAAU,GACxBO,EAAKniC,KAAKkiC,IAAIJ,EAAW,GACzBM,EAAKpiC,KAAKkiC,IAAIF,EAAO,GACrBK,EAAKriC,KAAKshC,IAAIM,EAAU,GACxBU,EAAKtiC,KAAKshC,IAAIQ,EAAW,GACzBS,EAAKviC,KAAKshC,IAAIU,EAAO,GAKzB,MAAO,CAHCK,EAAKC,EAAKF,EAAKH,EAAKE,EAAKI,EACzBF,EAAKF,EAAKC,EAAKH,EAAKK,EAAKC,EACzBN,EAAKK,EAAKF,EAAKC,EAAKF,EAAKI,EAHzBN,EAAKE,EAAKC,EAAKC,EAAKC,EAAKC,EAKnC,CAEA,SAASC,wBACP,IAAIrE,EAAWr6B,KAAKie,KAAK0gB,cAAgB3+B,KAAKw6B,WAC1C7K,EAAW3vB,KAAKi7B,UAAU,GAAG7+B,EAAI4D,KAAKw6B,WACtCoE,EAAU5+B,KAAKi7B,UAAUj7B,KAAKi7B,UAAUvkC,OAAS,GAAG0F,EAAI4D,KAAKw6B,WAEjE,KAAMH,IAAar6B,KAAK6+B,SAASjD,WAAa57B,KAAK6+B,SAASjD,YAAc1B,YAAcl6B,KAAK6+B,SAASjD,WAAagD,GAAWvE,GAAYuE,GAAW5+B,KAAK6+B,SAASjD,UAAYjM,GAAY0K,EAAW1K,IAAY,CAC5M3vB,KAAK6+B,SAASjD,WAAavB,IAC7Br6B,KAAK6+B,SAAShD,oBAAsB,EACpC77B,KAAK6+B,SAAS7D,UAAY,GAG5B,IAAI8D,EAAe9+B,KAAKo6B,iBAAiBC,EAAUr6B,KAAK6+B,UACxD7+B,KAAK06B,GAAKoE,CACZ,CAGA,OADA9+B,KAAK6+B,SAASjD,UAAYvB,EACnBr6B,KAAK06B,EACd,CAEA,SAASqE,UAAU7gC,GACjB,IAAI8gC,EAEJ,GAAsB,mBAAlBh/B,KAAKy6B,SACPuE,EAAkB9gC,EAAM8B,KAAKi/B,KAEzB9E,QAAQn6B,KAAK+Z,EAAIilB,GAAmB,OACtCh/B,KAAK+Z,EAAIilB,EACTh/B,KAAKk/B,MAAO,QAMd,IAHA,IAAIvoC,EAAI,EACJwH,EAAM6B,KAAK+Z,EAAErjB,OAEVC,EAAIwH,GACT6gC,EAAkB9gC,EAAIvH,GAAKqJ,KAAKi/B,KAE5B9E,QAAQn6B,KAAK+Z,EAAEpjB,GAAKqoC,GAAmB,OACzCh/B,KAAK+Z,EAAEpjB,GAAKqoC,EACZh/B,KAAKk/B,MAAO,GAGdvoC,GAAK,CAGX,CAEA,SAASwoC,yBACP,GAAIn/B,KAAKowB,KAAK/F,WAAW+U,UAAYp/B,KAAKo/B,SAAYp/B,KAAKq/B,gBAAgB3oC,OAI3E,GAAIsJ,KAAKs/B,KACPt/B,KAAK++B,UAAU/+B,KAAK06B,QADtB,CAOA,IAAI/jC,EAFJqJ,KAAKs/B,MAAO,EACZt/B,KAAKk/B,KAAOl/B,KAAKu/B,cAEjB,IAAIphC,EAAM6B,KAAKq/B,gBAAgB3oC,OAC3B8oC,EAAax/B,KAAKy/B,GAAKz/B,KAAK06B,GAAK16B,KAAKgO,KAAKkP,EAE/C,IAAKvmB,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACxB6oC,EAAax/B,KAAKq/B,gBAAgB1oC,GAAG6oC,GAGvCx/B,KAAK++B,UAAUS,GACfx/B,KAAKu/B,eAAgB,EACrBv/B,KAAKs/B,MAAO,EACZt/B,KAAKo/B,QAAUp/B,KAAKowB,KAAK/F,WAAW+U,OAfpC,CAgBF,CAEA,SAASM,UAAUC,GACjB3/B,KAAKq/B,gBAAgB/mC,KAAKqnC,GAC1B3/B,KAAKiqB,UAAU2V,mBAAmB5/B,KACpC,CAEA,SAAS6/B,cAAczP,EAAMpiB,EAAMixB,EAAMhV,GACvCjqB,KAAKy6B,SAAW,iBAChBz6B,KAAKi/B,KAAOA,GAAQ,EACpBj/B,KAAKgO,KAAOA,EACZhO,KAAK+Z,EAAIklB,EAAOjxB,EAAKkP,EAAI+hB,EAAOjxB,EAAKkP,EACrCld,KAAK06B,GAAK1sB,EAAKkP,EACfld,KAAKk/B,MAAO,EACZl/B,KAAKowB,KAAOA,EACZpwB,KAAKiqB,UAAYA,EACjBjqB,KAAKie,KAAOmS,EAAKnS,KACjBje,KAAKkd,GAAI,EACTld,KAAKy/B,IAAK,EACVz/B,KAAK8/B,IAAM,EACX9/B,KAAKq/B,gBAAkB,GACvBr/B,KAAKu/B,eAAgB,EACrBv/B,KAAK+/B,SAAWZ,uBAChBn/B,KAAK++B,UAAYA,UACjB/+B,KAAK0/B,UAAYA,SACnB,CAEA,SAASM,yBAAyB5P,EAAMpiB,EAAMixB,EAAMhV,GAWlD,IAAItzB,EAVJqJ,KAAKy6B,SAAW,mBAChBz6B,KAAKi/B,KAAOA,GAAQ,EACpBj/B,KAAKgO,KAAOA,EACZhO,KAAKk/B,MAAO,EACZl/B,KAAKowB,KAAOA,EACZpwB,KAAKiqB,UAAYA,EACjBjqB,KAAKie,KAAOmS,EAAKnS,KACjBje,KAAKkd,GAAI,EACTld,KAAKy/B,IAAK,EACVz/B,KAAKo/B,SAAW,EAEhB,IAAIjhC,EAAM6P,EAAKkP,EAAExmB,OAKjB,IAJAsJ,KAAK+Z,EAAInE,iBAAiB,UAAWzX,GACrC6B,KAAK06B,GAAK9kB,iBAAiB,UAAWzX,GACtC6B,KAAK8/B,IAAMlqB,iBAAiB,UAAWzX,GAElCxH,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACxBqJ,KAAK+Z,EAAEpjB,GAAKqX,EAAKkP,EAAEvmB,GAAKqJ,KAAKi/B,KAC7Bj/B,KAAK06B,GAAG/jC,GAAKqX,EAAKkP,EAAEvmB,GAGtBqJ,KAAKu/B,eAAgB,EACrBv/B,KAAKq/B,gBAAkB,GACvBr/B,KAAK+/B,SAAWZ,uBAChBn/B,KAAK++B,UAAYA,UACjB/+B,KAAK0/B,UAAYA,SACnB,CAEA,SAASO,uBAAuB7P,EAAMpiB,EAAMixB,EAAMhV,GAChDjqB,KAAKy6B,SAAW,iBAChBz6B,KAAKi7B,UAAYjtB,EAAKkP,EACtBld,KAAKk7B,kBAAoB,GACzBl7B,KAAKw6B,WAAapK,EAAKpiB,KAAKwR,GAC5Bxf,KAAKo/B,SAAW,EAChBp/B,KAAK6+B,SAAW,CACdjD,UAAW1B,UACXc,UAAW,EACXhkC,MAAO,EACP6kC,oBAAqB,GAEvB77B,KAAKkd,GAAI,EACTld,KAAKy/B,IAAK,EACVz/B,KAAKgO,KAAOA,EACZhO,KAAKi/B,KAAOA,GAAQ,EACpBj/B,KAAKowB,KAAOA,EACZpwB,KAAKiqB,UAAYA,EACjBjqB,KAAKie,KAAOmS,EAAKnS,KACjBje,KAAK+Z,EAAImgB,UACTl6B,KAAK06B,GAAKR,UACVl6B,KAAKu/B,eAAgB,EACrBv/B,KAAK+/B,SAAWZ,uBAChBn/B,KAAK++B,UAAYA,UACjB/+B,KAAKo6B,iBAAmBA,iBACxBp6B,KAAKq/B,gBAAkB,CAACX,sBAAsB72B,KAAK7H,OACnDA,KAAK0/B,UAAYA,SACnB,CAEA,SAASQ,kCAAkC9P,EAAMpiB,EAAMixB,EAAMhV,GAE3D,IAAItzB,EADJqJ,KAAKy6B,SAAW,mBAEhB,IACI5jC,EACAI,EACAyU,EACA4vB,EAJAn9B,EAAM6P,EAAKkP,EAAExmB,OAMjB,IAAKC,EAAI,EAAGA,EAAIwH,EAAM,EAAGxH,GAAK,EACxBqX,EAAKkP,EAAEvmB,GAAG+U,IAAMsC,EAAKkP,EAAEvmB,GAAGE,GAAKmX,EAAKkP,EAAEvmB,EAAI,IAAMqX,EAAKkP,EAAEvmB,EAAI,GAAGE,IAChEA,EAAImX,EAAKkP,EAAEvmB,GAAGE,EACdI,EAAI+W,EAAKkP,EAAEvmB,EAAI,GAAGE,EAClB6U,EAAKsC,EAAKkP,EAAEvmB,GAAG+U,GACf4vB,EAAKttB,EAAKkP,EAAEvmB,GAAG2kC,IAEE,IAAbzkC,EAAEH,SAAkBG,EAAE,KAAOI,EAAE,IAAMJ,EAAE,KAAOI,EAAE,KAAOgjC,IAAI1E,cAAc1+B,EAAE,GAAIA,EAAE,GAAII,EAAE,GAAIA,EAAE,GAAIJ,EAAE,GAAK6U,EAAG,GAAI7U,EAAE,GAAK6U,EAAG,KAAOuuB,IAAI1E,cAAc1+B,EAAE,GAAIA,EAAE,GAAII,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAKqkC,EAAG,GAAIrkC,EAAE,GAAKqkC,EAAG,KAAoB,IAAbzkC,EAAEH,SAAkBG,EAAE,KAAOI,EAAE,IAAMJ,EAAE,KAAOI,EAAE,IAAMJ,EAAE,KAAOI,EAAE,KAAOgjC,IAAIR,cAAc5iC,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAII,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIJ,EAAE,GAAK6U,EAAG,GAAI7U,EAAE,GAAK6U,EAAG,GAAI7U,EAAE,GAAK6U,EAAG,KAAOuuB,IAAIR,cAAc5iC,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAII,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAAKqkC,EAAG,GAAIrkC,EAAE,GAAKqkC,EAAG,GAAIrkC,EAAE,GAAKqkC,EAAG,OACldttB,EAAKkP,EAAEvmB,GAAG+U,GAAK,KACfsC,EAAKkP,EAAEvmB,GAAG2kC,GAAK,MAGbzkC,EAAE,KAAOI,EAAE,IAAMJ,EAAE,KAAOI,EAAE,IAAgB,IAAVyU,EAAG,IAAsB,IAAVA,EAAG,IAAsB,IAAV4vB,EAAG,IAAsB,IAAVA,EAAG,KACnE,IAAbzkC,EAAEH,QAAgBG,EAAE,KAAOI,EAAE,IAAgB,IAAVyU,EAAG,IAAsB,IAAV4vB,EAAG,MACvDttB,EAAKkP,EAAEvmB,GAAG+U,GAAK,KACfsC,EAAKkP,EAAEvmB,GAAG2kC,GAAK,OAMvBt7B,KAAKq/B,gBAAkB,CAACX,sBAAsB72B,KAAK7H,OACnDA,KAAKgO,KAAOA,EACZhO,KAAKi7B,UAAYjtB,EAAKkP,EACtBld,KAAKk7B,kBAAoB,GACzBl7B,KAAKw6B,WAAapK,EAAKpiB,KAAKwR,GAC5Bxf,KAAKkd,GAAI,EACTld,KAAKy/B,IAAK,EACVz/B,KAAKu/B,eAAgB,EACrBv/B,KAAKi/B,KAAOA,GAAQ,EACpBj/B,KAAKowB,KAAOA,EACZpwB,KAAKiqB,UAAYA,EACjBjqB,KAAKie,KAAOmS,EAAKnS,KACjBje,KAAK+/B,SAAWZ,uBAChBn/B,KAAK++B,UAAYA,UACjB/+B,KAAKo6B,iBAAmBA,iBACxBp6B,KAAKo/B,SAAW,EAChB,IAAIe,EAASnyB,EAAKkP,EAAE,GAAGrmB,EAAEH,OAIzB,IAHAsJ,KAAK+Z,EAAInE,iBAAiB,UAAWuqB,GACrCngC,KAAK06B,GAAK9kB,iBAAiB,UAAWuqB,GAEjCxpC,EAAI,EAAGA,EAAIwpC,EAAQxpC,GAAK,EAC3BqJ,KAAK+Z,EAAEpjB,GAAKujC,UACZl6B,KAAK06B,GAAG/jC,GAAKujC,UAGfl6B,KAAK6+B,SAAW,CACdjD,UAAW1B,UACXc,UAAW,EACXhkC,MAAO4e,iBAAiB,UAAWuqB,IAErCngC,KAAK0/B,UAAYA,SACnB,CAEA,IAAIU,gBAkCO,CACPC,QAlCF,SAAiBjQ,EAAMpiB,EAAM3L,EAAM48B,EAAMhV,GAKvC,IAAIrtB,EAEJ,GANIoR,EAAKsyB,MACPtyB,EAAOoiB,EAAK/F,WAAWkW,YAAYF,QAAQryB,IAKxCA,EAAKkP,EAAExmB,OAEL,GAAyB,kBAAdsX,EAAKkP,EAAE,GACvBtgB,EAAI,IAAIojC,yBAAyB5P,EAAMpiB,EAAMixB,EAAMhV,QAEnD,OAAQ5nB,GACN,KAAK,EACHzF,EAAI,IAAIqjC,uBAAuB7P,EAAMpiB,EAAMixB,EAAMhV,GACjD,MAEF,KAAK,EACHrtB,EAAI,IAAIsjC,kCAAkC9P,EAAMpiB,EAAMixB,EAAMhV,QAVhErtB,EAAI,IAAIijC,cAAczP,EAAMpiB,EAAMixB,EAAMhV,GAsB1C,OAJIrtB,EAAEyiC,gBAAgB3oC,QACpBuzB,EAAU2V,mBAAmBhjC,GAGxBA,CACT,GAQF,SAAS4jC,2BAA4B,CAErCA,yBAAyBhgC,UAAY,CACnCo/B,mBAAoB,SAA4B/rB,IACA,IAA1C7T,KAAKygC,kBAAkBhwB,QAAQoD,KACjC7T,KAAKygC,kBAAkBnoC,KAAKub,GAC5B7T,KAAKiqB,UAAU2V,mBAAmB5/B,MAClCA,KAAK0gC,aAAc,EAEvB,EACAC,yBAA0B,WAExB,IAAIhqC,EADJqJ,KAAKk/B,MAAO,EAEZ,IAAI/gC,EAAM6B,KAAKygC,kBAAkB/pC,OAEjC,IAAKC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACxBqJ,KAAKygC,kBAAkB9pC,GAAGopC,WAEtB//B,KAAKygC,kBAAkB9pC,GAAGuoC,OAC5Bl/B,KAAKk/B,MAAO,EAGlB,EACA0B,6BAA8B,SAAsC3W,GAClEjqB,KAAKiqB,UAAYA,EACjBjqB,KAAKygC,kBAAoB,GACzBzgC,KAAKk/B,MAAO,EACZl/B,KAAK0gC,aAAc,CACrB,GAGF,IAAIG,UAKKvM,YAAY,GAJnB,WACE,OAAO1e,iBAAiB,UAAW,EACrC,IAKF,SAASkrB,YACP9gC,KAAKigB,GAAI,EACTjgB,KAAK00B,QAAU,EACf10B,KAAK20B,WAAa,EAClB30B,KAAK+Z,EAAI9D,iBAAiBjW,KAAK20B,YAC/B30B,KAAK7J,EAAI8f,iBAAiBjW,KAAK20B,YAC/B30B,KAAKrJ,EAAIsf,iBAAiBjW,KAAK20B,WACjC,CAEAmM,UAAUtgC,UAAUugC,YAAc,SAAU3gB,EAAQjiB,GAClD6B,KAAKigB,EAAIG,EACTpgB,KAAKghC,UAAU7iC,GAGf,IAFA,IAAIxH,EAAI,EAEDA,EAAIwH,GACT6B,KAAK+Z,EAAEpjB,GAAKkqC,UAAUhM,aACtB70B,KAAK7J,EAAEQ,GAAKkqC,UAAUhM,aACtB70B,KAAKrJ,EAAEA,GAAKkqC,UAAUhM,aACtBl+B,GAAK,CAET,EAEAmqC,UAAUtgC,UAAUwgC,UAAY,SAAU7iC,GACxC,KAAO6B,KAAK20B,WAAax2B,GACvB6B,KAAKihC,oBAGPjhC,KAAK00B,QAAUv2B,CACjB,EAEA2iC,UAAUtgC,UAAUygC,kBAAoB,WACtCjhC,KAAK+Z,EAAI/Z,KAAK+Z,EAAE+W,OAAO7a,iBAAiBjW,KAAK20B,aAC7C30B,KAAKrJ,EAAIqJ,KAAKrJ,EAAEm6B,OAAO7a,iBAAiBjW,KAAK20B,aAC7C30B,KAAK7J,EAAI6J,KAAK7J,EAAE26B,OAAO7a,iBAAiBjW,KAAK20B,aAC7C30B,KAAK20B,YAAc,CACrB,EAEAmM,UAAUtgC,UAAU0gC,QAAU,SAAUpO,EAAGj5B,EAAGwI,EAAM8+B,EAAKjkC,GACvD,IAAIrF,EAOJ,OANAmI,KAAK00B,QAAUx4B,KAAK4a,IAAI9W,KAAK00B,QAASyM,EAAM,GAExCnhC,KAAK00B,SAAW10B,KAAK20B,YACvB30B,KAAKihC,oBAGC5+B,GACN,IAAK,IACHxK,EAAMmI,KAAK+Z,EACX,MAEF,IAAK,IACHliB,EAAMmI,KAAKrJ,EACX,MAEF,IAAK,IACHkB,EAAMmI,KAAK7J,EACX,MAEF,QACE0B,EAAM,KAILA,EAAIspC,IAAQtpC,EAAIspC,KAASjkC,KAC5BrF,EAAIspC,GAAON,UAAUhM,cAGvBh9B,EAAIspC,GAAK,GAAKrO,EACdj7B,EAAIspC,GAAK,GAAKtnC,CAChB,EAEAinC,UAAUtgC,UAAU4gC,YAAc,SAAUC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIP,EAAKjkC,GACvE8C,KAAKkhC,QAAQG,EAAIC,EAAI,IAAKH,EAAKjkC,GAC/B8C,KAAKkhC,QAAQK,EAAIC,EAAI,IAAKL,EAAKjkC,GAC/B8C,KAAKkhC,QAAQO,EAAIC,EAAI,IAAKP,EAAKjkC,EACjC,EAEA4jC,UAAUtgC,UAAUkG,QAAU,WAC5B,IAAIi7B,EAAU,IAAIb,UAClBa,EAAQZ,YAAY/gC,KAAKigB,EAAGjgB,KAAK00B,SACjC,IAAIkN,EAAW5hC,KAAK+Z,EAChB8nB,EAAY7hC,KAAK7J,EACjB2rC,EAAW9hC,KAAKrJ,EAChB43B,EAAO,EAEPvuB,KAAKigB,IACP0hB,EAAQP,YAAYQ,EAAS,GAAG,GAAIA,EAAS,GAAG,GAAIE,EAAS,GAAG,GAAIA,EAAS,GAAG,GAAID,EAAU,GAAG,GAAIA,EAAU,GAAG,GAAI,GAAG,GACzHtT,EAAO,GAGT,IAEI53B,EAFAorC,EAAM/hC,KAAK00B,QAAU,EACrBv2B,EAAM6B,KAAK00B,QAGf,IAAK/9B,EAAI43B,EAAM53B,EAAIwH,EAAKxH,GAAK,EAC3BgrC,EAAQP,YAAYQ,EAASG,GAAK,GAAIH,EAASG,GAAK,GAAID,EAASC,GAAK,GAAID,EAASC,GAAK,GAAIF,EAAUE,GAAK,GAAIF,EAAUE,GAAK,GAAIprC,GAAG,GACrIorC,GAAO,EAGT,OAAOJ,CACT,EAEAb,UAAUtgC,UAAU9J,OAAS,WAC3B,OAAOsJ,KAAK00B,OACd,EAEA,IAAIsN,UAAY,WAoCd,IAAIrvB,EAAU2hB,YAAY,GAnC1B,WACE,OAAO,IAAIwM,SACb,IAEA,SAAiBmB,GACf,IACItrC,EADAwH,EAAM8jC,EAAUvN,QAGpB,IAAK/9B,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACxBkqC,UAAU/L,QAAQmN,EAAUloB,EAAEpjB,IAC9BkqC,UAAU/L,QAAQmN,EAAUtrC,EAAEA,IAC9BkqC,UAAU/L,QAAQmN,EAAU9rC,EAAEQ,IAC9BsrC,EAAUloB,EAAEpjB,GAAK,KACjBsrC,EAAUtrC,EAAEA,GAAK,KACjBsrC,EAAU9rC,EAAEQ,GAAK,KAGnBsrC,EAAUvN,QAAU,EACpBuN,EAAUhiB,GAAI,CAChB,IAkBA,OADAtN,EAAQuvB,MAfR,SAAeC,GACb,IACIxrC,EADAyrC,EAASzvB,EAAQkiB,aAEjB12B,OAAwBhF,IAAlBgpC,EAAMzN,QAAwByN,EAAMpoB,EAAErjB,OAASyrC,EAAMzN,QAI/D,IAHA0N,EAAOpB,UAAU7iC,GACjBikC,EAAOniB,EAAIkiB,EAAMliB,EAEZtpB,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACxByrC,EAAOhB,YAAYe,EAAMpoB,EAAEpjB,GAAG,GAAIwrC,EAAMpoB,EAAEpjB,GAAG,GAAIwrC,EAAMhsC,EAAEQ,GAAG,GAAIwrC,EAAMhsC,EAAEQ,GAAG,GAAIwrC,EAAMxrC,EAAEA,GAAG,GAAIwrC,EAAMxrC,EAAEA,GAAG,GAAIA,GAG/G,OAAOyrC,CACT,EAIOzvB,CACT,CAvCgB,GAyChB,SAAS0vB,kBACPriC,KAAK00B,QAAU,EACf10B,KAAK20B,WAAa,EAClB30B,KAAK8d,OAAS7H,iBAAiBjW,KAAK20B,WACtC,CAEA0N,gBAAgB7hC,UAAU8hC,SAAW,SAAU3K,GACzC33B,KAAK00B,UAAY10B,KAAK20B,aACxB30B,KAAK8d,OAAS9d,KAAK8d,OAAOgT,OAAO7a,iBAAiBjW,KAAK20B,aACvD30B,KAAK20B,YAAc,GAGrB30B,KAAK8d,OAAO9d,KAAK00B,SAAWiD,EAC5B33B,KAAK00B,SAAW,CAClB,EAEA2N,gBAAgB7hC,UAAU+hC,cAAgB,WACxC,IAAI5rC,EAEJ,IAAKA,EAAI,EAAGA,EAAIqJ,KAAK00B,QAAS/9B,GAAK,EACjCqrC,UAAUlN,QAAQ90B,KAAK8d,OAAOnnB,IAGhCqJ,KAAK00B,QAAU,CACjB,EAEA,IAAI8N,oBAAsB,WACxB,IAAIhe,EAAK,CACPie,mBAOF,WAUE,OAPI/N,EAEgBE,EADlBF,GAAW,GAGO,IAAI2N,eAI1B,EAjBEvN,QAmBF,SAAiB4N,GACf,IAAI/rC,EACAwH,EAAMukC,EAAgBhO,QAE1B,IAAK/9B,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACxBqrC,UAAUlN,QAAQ4N,EAAgB5kB,OAAOnnB,IAG3C+rC,EAAgBhO,QAAU,EAEtBA,IAAYC,IACdC,EAAOP,QAAgB,OAAEO,GACzBD,GAAc,GAGhBC,EAAKF,GAAWgO,EAChBhO,GAAW,CACb,GAlCIA,EAAU,EACVC,EAAa,EACbC,EAAO3e,iBAAiB0e,GAkC5B,OAAOnQ,CACT,CA1C0B,GA4CtBme,qBAAuB,WACzB,IAAIzI,GAAa,OAEjB,SAAS0I,EAAiBvI,EAAUwI,EAAevI,GACjD,IACIwI,EACAC,EACAC,EACAhmB,EACAE,EACAD,EACAE,EACAkZ,EACA4M,EATAlI,EAAiBT,EAAQU,UAUzByE,EAAKz/B,KAAKi7B,UAEd,GAAIZ,EAAWoF,EAAG,GAAGrjC,EAAI4D,KAAKw6B,WAC5BsI,EAAWrD,EAAG,GAAG5oC,EAAE,GACnBmsC,GAAS,EACTjI,EAAiB,OACZ,GAAIV,GAAYoF,EAAGA,EAAG/oC,OAAS,GAAG0F,EAAI4D,KAAKw6B,WAChDsI,EAAWrD,EAAGA,EAAG/oC,OAAS,GAAGG,EAAI4oC,EAAGA,EAAG/oC,OAAS,GAAGG,EAAE,GAAK4oC,EAAGA,EAAG/oC,OAAS,GAAGO,EAAE,GAO9E+rC,GAAS,MACJ,CAQL,IAPA,IAGIrI,EACAC,EACAC,EALAlkC,EAAIokC,EACJ58B,EAAMshC,EAAG/oC,OAAS,EAClBuc,GAAO,EAKJA,IACL0nB,EAAU8E,EAAG9oC,MACbikC,EAAc6E,EAAG9oC,EAAI,IAELyF,EAAI4D,KAAKw6B,WAAaH,KAIlC1jC,EAAIwH,EAAM,EACZxH,GAAK,EAELsc,GAAO,EAQX,GAJA4nB,EAAmB76B,KAAKk7B,kBAAkBvkC,IAAM,CAAC,EAEjDokC,EAAiBpkC,IADjBqsC,EAAuB,IAAdrI,EAAQl/B,GAGJ,CACX,GAAI4+B,GAAYO,EAAYx+B,EAAI4D,KAAKw6B,WACnCnE,EAAO,OACF,GAAIgE,EAAWM,EAAQv+B,EAAI4D,KAAKw6B,WACrCnE,EAAO,MACF,CACL,IAAIyE,EAEAD,EAAiBW,OACnBV,EAAMD,EAAiBW,QAEvBV,EAAMpJ,cAAc+J,gBAAgBd,EAAQxkC,EAAE28B,EAAG6H,EAAQxkC,EAAE0D,EAAG8gC,EAAQhkC,EAAEm8B,EAAG6H,EAAQhkC,EAAEkD,GAAGiG,IACxF+6B,EAAiBW,OAASV,GAG5BzE,EAAOyE,GAAKT,GAAYM,EAAQv+B,EAAI4D,KAAKw6B,cAAgBI,EAAYx+B,EAAI4D,KAAKw6B,YAAcG,EAAQv+B,EAAI4D,KAAKw6B,aAC/G,CAEAuI,EAAWnI,EAAY/jC,EAAI+jC,EAAY/jC,EAAE,GAAK8jC,EAAQ1jC,EAAE,EAC1D,CAEA6rC,EAAWnI,EAAQ9jC,EAAE,EACvB,CAMA,IAJAomB,EAAO4lB,EAAcnO,QACrBvX,EAAO2lB,EAASnsC,EAAE,GAAGD,OACrB4jC,EAAQU,UAAYD,EAEf/d,EAAI,EAAGA,EAAIC,EAAMD,GAAK,EACzB,IAAKE,EAAI,EAAGA,EAAIC,EAAMD,GAAK,EACzB+lB,EAAcD,EAASF,EAASnsC,EAAEqmB,GAAGE,GAAK4lB,EAASnsC,EAAEqmB,GAAGE,IAAM6lB,EAASpsC,EAAEqmB,GAAGE,GAAK4lB,EAASnsC,EAAEqmB,GAAGE,IAAMmZ,EACrGwM,EAAclsC,EAAEqmB,GAAGE,GAAK+lB,EACxBA,EAAcD,EAASF,EAAS3sC,EAAE6mB,GAAGE,GAAK4lB,EAAS3sC,EAAE6mB,GAAGE,IAAM6lB,EAAS5sC,EAAE6mB,GAAGE,GAAK4lB,EAAS3sC,EAAE6mB,GAAGE,IAAMmZ,EACrGwM,EAAc1sC,EAAE6mB,GAAGE,GAAK+lB,EACxBA,EAAcD,EAASF,EAAS/oB,EAAEiD,GAAGE,GAAK4lB,EAAS/oB,EAAEiD,GAAGE,IAAM6lB,EAAShpB,EAAEiD,GAAGE,GAAK4lB,EAAS/oB,EAAEiD,GAAGE,IAAMmZ,EACrGwM,EAAc9oB,EAAEiD,GAAGE,GAAK+lB,CAG9B,CAEA,SAASC,IACP,IAAI7I,EAAWr6B,KAAKie,KAAK0gB,cAAgB3+B,KAAKw6B,WAC1C7K,EAAW3vB,KAAKi7B,UAAU,GAAG7+B,EAAI4D,KAAKw6B,WACtCoE,EAAU5+B,KAAKi7B,UAAUj7B,KAAKi7B,UAAUvkC,OAAS,GAAG0F,EAAI4D,KAAKw6B,WAC7DoB,EAAY57B,KAAK6+B,SAASjD,UAS9B,OAPMA,IAAc1B,IAAc0B,EAAYjM,GAAY0K,EAAW1K,GAAYiM,EAAYgD,GAAWvE,EAAWuE,KAEjH5+B,KAAK6+B,SAAS7D,UAAYY,EAAYvB,EAAWr6B,KAAK6+B,SAAS7D,UAAY,EAC3Eh7B,KAAK4iC,iBAAiBvI,EAAUr6B,KAAK06B,GAAI16B,KAAK6+B,WAGhD7+B,KAAK6+B,SAASjD,UAAYvB,EACnBr6B,KAAK06B,EACd,CAEA,SAASyI,IACPnjC,KAAKN,MAAQM,KAAKojC,oBACpB,CAmBA,SAASrE,EAAU4C,IAjBnB,SAAqB0B,EAAQC,GAC3B,GAAID,EAAO3O,UAAY4O,EAAO5O,SAAW2O,EAAOpjB,IAAMqjB,EAAOrjB,EAC3D,OAAO,EAGT,IAAItpB,EACAwH,EAAMklC,EAAO3O,QAEjB,IAAK/9B,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACxB,GAAI0sC,EAAOtpB,EAAEpjB,GAAG,KAAO2sC,EAAOvpB,EAAEpjB,GAAG,IAAM0sC,EAAOtpB,EAAEpjB,GAAG,KAAO2sC,EAAOvpB,EAAEpjB,GAAG,IAAM0sC,EAAOltC,EAAEQ,GAAG,KAAO2sC,EAAOntC,EAAEQ,GAAG,IAAM0sC,EAAOltC,EAAEQ,GAAG,KAAO2sC,EAAOntC,EAAEQ,GAAG,IAAM0sC,EAAO1sC,EAAEA,GAAG,KAAO2sC,EAAO3sC,EAAEA,GAAG,IAAM0sC,EAAO1sC,EAAEA,GAAG,KAAO2sC,EAAO3sC,EAAEA,GAAG,GAC1N,OAAO,EAIX,OAAO,CACT,EAGO4sC,CAAYvjC,KAAK+Z,EAAG4nB,KACvB3hC,KAAK+Z,EAAIioB,UAAUE,MAAMP,GACzB3hC,KAAKojC,qBAAqBb,gBAC1BviC,KAAKojC,qBAAqBd,SAAStiC,KAAK+Z,GACxC/Z,KAAKk/B,MAAO,EACZl/B,KAAKN,MAAQM,KAAKojC,qBAEtB,CAEA,SAASjE,IACP,GAAIn/B,KAAKowB,KAAK/F,WAAW+U,UAAYp/B,KAAKo/B,QAI1C,GAAKp/B,KAAKq/B,gBAAgB3oC,OAK1B,GAAIsJ,KAAKs/B,KACPt/B,KAAK++B,UAAU/+B,KAAK06B,QADtB,CAOA,IAAI8E,EAUA7oC,EAZJqJ,KAAKs/B,MAAO,EACZt/B,KAAKk/B,MAAO,EAIVM,EADEx/B,KAAKy/B,GACMz/B,KAAK06B,GACT16B,KAAKgO,KAAKsQ,GACNte,KAAKgO,KAAKsQ,GAAGpB,EAEbld,KAAKgO,KAAKwP,GAAGN,EAI5B,IAAI/e,EAAM6B,KAAKq/B,gBAAgB3oC,OAE/B,IAAKC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACxB6oC,EAAax/B,KAAKq/B,gBAAgB1oC,GAAG6oC,GAGvCx/B,KAAK++B,UAAUS,GACfx/B,KAAKs/B,MAAO,EACZt/B,KAAKo/B,QAAUp/B,KAAKowB,KAAK/F,WAAW+U,OAvBpC,MAPEp/B,KAAKk/B,MAAO,CA+BhB,CAEA,SAASsE,EAAcpT,EAAMpiB,EAAM3L,GACjCrC,KAAKy6B,SAAW,QAChBz6B,KAAKie,KAAOmS,EAAKnS,KACjBje,KAAKiqB,UAAYmG,EACjBpwB,KAAKowB,KAAOA,EACZpwB,KAAKgO,KAAOA,EACZhO,KAAKkd,GAAI,EACTld,KAAKy/B,IAAK,EACVz/B,KAAKk/B,MAAO,EACZ,IAAIpf,EAAoB,IAATzd,EAAa2L,EAAKwP,GAAGN,EAAIlP,EAAKsQ,GAAGpB,EAChDld,KAAK+Z,EAAIioB,UAAUE,MAAMpiB,GACzB9f,KAAK06B,GAAKsH,UAAUE,MAAMliC,KAAK+Z,GAC/B/Z,KAAKojC,qBAAuBZ,oBAAoBC,qBAChDziC,KAAKN,MAAQM,KAAKojC,qBAClBpjC,KAAKN,MAAM4iC,SAAStiC,KAAK+Z,GACzB/Z,KAAKwF,MAAQ29B,EACbnjC,KAAKq/B,gBAAkB,EACzB,CAEA,SAASK,EAAUC,GACjB3/B,KAAKq/B,gBAAgB/mC,KAAKqnC,GAC1B3/B,KAAKiqB,UAAU2V,mBAAmB5/B,KACpC,CAOA,SAASyjC,EAAuBrT,EAAMpiB,EAAM3L,GAC1CrC,KAAKy6B,SAAW,QAChBz6B,KAAKie,KAAOmS,EAAKnS,KACjBje,KAAKowB,KAAOA,EACZpwB,KAAKiqB,UAAYmG,EACjBpwB,KAAKw6B,WAAapK,EAAKpiB,KAAKwR,GAC5Bxf,KAAKi7B,UAAqB,IAAT54B,EAAa2L,EAAKwP,GAAGN,EAAIlP,EAAKsQ,GAAGpB,EAClDld,KAAKk7B,kBAAoB,GACzBl7B,KAAKkd,GAAI,EACTld,KAAKy/B,IAAK,EACV,IAAIthC,EAAM6B,KAAKi7B,UAAU,GAAGpkC,EAAE,GAAGF,EAAED,OACnCsJ,KAAK+Z,EAAIioB,UAAUnN,aACnB70B,KAAK+Z,EAAEgnB,YAAY/gC,KAAKi7B,UAAU,GAAGpkC,EAAE,GAAGopB,EAAG9hB,GAC7C6B,KAAK06B,GAAKsH,UAAUE,MAAMliC,KAAK+Z,GAC/B/Z,KAAKojC,qBAAuBZ,oBAAoBC,qBAChDziC,KAAKN,MAAQM,KAAKojC,qBAClBpjC,KAAKN,MAAM4iC,SAAStiC,KAAK+Z,GACzB/Z,KAAK47B,UAAY1B,EACjBl6B,KAAKwF,MAAQ29B,EACbnjC,KAAK6+B,SAAW,CACdjD,UAAW1B,EACXc,UAAW,GAEbh7B,KAAKq/B,gBAAkB,CAAC6D,EAA4Br7B,KAAK7H,MAC3D,CA7BAwjC,EAAchjC,UAAUoiC,iBAAmBA,EAC3CY,EAAchjC,UAAUu/B,SAAWZ,EACnCqE,EAAchjC,UAAUu+B,UAAYA,EACpCyE,EAAchjC,UAAUk/B,UAAYA,EA4BpC+D,EAAuBjjC,UAAUu/B,SAAWZ,EAC5CsE,EAAuBjjC,UAAUoiC,iBAAmBA,EACpDa,EAAuBjjC,UAAUu+B,UAAYA,EAC7C0E,EAAuBjjC,UAAUk/B,UAAYA,EAE7C,IAAIgE,EAAmB,WACrB,IAAIC,EAASlsB,YAEb,SAASmsB,EAAwBxT,EAAMpiB,GACrChO,KAAK+Z,EAAIioB,UAAUnN,aACnB70B,KAAK+Z,EAAEgnB,aAAY,EAAM,GACzB/gC,KAAKojC,qBAAuBZ,oBAAoBC,qBAChDziC,KAAKN,MAAQM,KAAKojC,qBAClBpjC,KAAKojC,qBAAqBd,SAAStiC,KAAK+Z,GACxC/Z,KAAK1F,EAAI0T,EAAK1T,EACd0F,KAAKowB,KAAOA,EACZpwB,KAAKie,KAAOmS,EAAKnS,KACjBje,KAAKo/B,SAAW,EAChBp/B,KAAK4gC,6BAA6BxQ,GAClCpwB,KAAKpD,EAAIwjC,gBAAgBC,QAAQjQ,EAAMpiB,EAAKpR,EAAG,EAAG,EAAGoD,MACrDA,KAAKnJ,EAAIupC,gBAAgBC,QAAQjQ,EAAMpiB,EAAKnX,EAAG,EAAG,EAAGmJ,MAEjDA,KAAKygC,kBAAkB/pC,OACzBsJ,KAAKkd,GAAI,GAETld,KAAKkd,GAAI,EACTld,KAAK6jC,mBAET,CAoDA,OAlDAD,EAAwBpjC,UAAY,CAClCgF,MAAO29B,EACPpD,SAAU,WACJ//B,KAAKowB,KAAK/F,WAAW+U,UAAYp/B,KAAKo/B,UAI1Cp/B,KAAKo/B,QAAUp/B,KAAKowB,KAAK/F,WAAW+U,QACpCp/B,KAAK2gC,2BAED3gC,KAAKk/B,MACPl/B,KAAK6jC,mBAET,EACAA,iBAAkB,WAChB,IAAIC,EAAK9jC,KAAKpD,EAAEmd,EAAE,GACdgqB,EAAK/jC,KAAKpD,EAAEmd,EAAE,GACdiqB,EAAKhkC,KAAKnJ,EAAEkjB,EAAE,GAAK,EACnBwkB,EAAKv+B,KAAKnJ,EAAEkjB,EAAE,GAAK,EAEnBkqB,EAAiB,IAAXjkC,KAAK1F,EAEX4pC,EAAKlkC,KAAK+Z,EACdmqB,EAAGnqB,EAAE,GAAG,GAAK+pB,EACbI,EAAGnqB,EAAE,GAAG,GAAKgqB,EAAKxF,EAClB2F,EAAGnqB,EAAE,GAAG,GAAKkqB,EAAMH,EAAKE,EAAKF,EAAKE,EAClCE,EAAGnqB,EAAE,GAAG,GAAKgqB,EACbG,EAAGnqB,EAAE,GAAG,GAAK+pB,EACbI,EAAGnqB,EAAE,GAAG,GAAKgqB,EAAKxF,EAClB2F,EAAGnqB,EAAE,GAAG,GAAKkqB,EAAMH,EAAKE,EAAKF,EAAKE,EAClCE,EAAGnqB,EAAE,GAAG,GAAKgqB,EACbG,EAAGvtC,EAAE,GAAG,GAAKstC,EAAMH,EAAKE,EAAKL,EAASG,EAAKE,EAAKL,EAChDO,EAAGvtC,EAAE,GAAG,GAAKotC,EAAKxF,EAClB2F,EAAGvtC,EAAE,GAAG,GAAKstC,EAAMH,EAAKE,EAAKF,EAAKE,EAClCE,EAAGvtC,EAAE,GAAG,GAAKotC,EAAKxF,EAAKoF,EACvBO,EAAGvtC,EAAE,GAAG,GAAKstC,EAAMH,EAAKE,EAAKL,EAASG,EAAKE,EAAKL,EAChDO,EAAGvtC,EAAE,GAAG,GAAKotC,EAAKxF,EAClB2F,EAAGvtC,EAAE,GAAG,GAAKstC,EAAMH,EAAKE,EAAKF,EAAKE,EAClCE,EAAGvtC,EAAE,GAAG,GAAKotC,EAAKxF,EAAKoF,EACvBO,EAAG/tC,EAAE,GAAG,GAAK8tC,EAAMH,EAAKE,EAAKL,EAASG,EAAKE,EAAKL,EAChDO,EAAG/tC,EAAE,GAAG,GAAK4tC,EAAKxF,EAClB2F,EAAG/tC,EAAE,GAAG,GAAK8tC,EAAMH,EAAKE,EAAKF,EAAKE,EAClCE,EAAG/tC,EAAE,GAAG,GAAK4tC,EAAKxF,EAAKoF,EACvBO,EAAG/tC,EAAE,GAAG,GAAK8tC,EAAMH,EAAKE,EAAKL,EAASG,EAAKE,EAAKL,EAChDO,EAAG/tC,EAAE,GAAG,GAAK4tC,EAAKxF,EAClB2F,EAAG/tC,EAAE,GAAG,GAAK8tC,EAAMH,EAAKE,EAAKF,EAAKE,EAClCE,EAAG/tC,EAAE,GAAG,GAAK4tC,EAAKxF,EAAKoF,CACzB,GAEFpwB,gBAAgB,CAACitB,0BAA2BoD,GACrCA,CACT,CA5EuB,GA8EnBO,EAAoB,WACtB,SAASC,EAAyBhU,EAAMpiB,GACtChO,KAAK+Z,EAAIioB,UAAUnN,aACnB70B,KAAK+Z,EAAEgnB,aAAY,EAAM,GACzB/gC,KAAKowB,KAAOA,EACZpwB,KAAKie,KAAOmS,EAAKnS,KACjBje,KAAKgO,KAAOA,EACZhO,KAAKo/B,SAAW,EAChBp/B,KAAK1F,EAAI0T,EAAK1T,EACd0F,KAAK4gC,6BAA6BxQ,GAElB,IAAZpiB,EAAKq2B,IACPrkC,KAAKskC,GAAKlE,gBAAgBC,QAAQjQ,EAAMpiB,EAAKs2B,GAAI,EAAG,EAAGtkC,MACvDA,KAAKukC,GAAKnE,gBAAgBC,QAAQjQ,EAAMpiB,EAAKu2B,GAAI,EAAG,IAAMvkC,MAC1DA,KAAKwkC,cAAgBxkC,KAAKykC,mBAE1BzkC,KAAKwkC,cAAgBxkC,KAAK0kC,qBAG5B1kC,KAAKwd,GAAK4iB,gBAAgBC,QAAQjQ,EAAMpiB,EAAKwP,GAAI,EAAG,EAAGxd,MACvDA,KAAKpD,EAAIwjC,gBAAgBC,QAAQjQ,EAAMpiB,EAAKpR,EAAG,EAAG,EAAGoD,MACrDA,KAAKga,EAAIomB,gBAAgBC,QAAQjQ,EAAMpiB,EAAKgM,EAAG,EAAGzC,UAAWvX,MAC7DA,KAAK2kC,GAAKvE,gBAAgBC,QAAQjQ,EAAMpiB,EAAK22B,GAAI,EAAG,EAAG3kC,MACvDA,KAAKmQ,GAAKiwB,gBAAgBC,QAAQjQ,EAAMpiB,EAAKmC,GAAI,EAAG,IAAMnQ,MAC1DA,KAAKojC,qBAAuBZ,oBAAoBC,qBAChDziC,KAAKojC,qBAAqBd,SAAStiC,KAAK+Z,GACxC/Z,KAAKN,MAAQM,KAAKojC,qBAEdpjC,KAAKygC,kBAAkB/pC,OACzBsJ,KAAKkd,GAAI,GAETld,KAAKkd,GAAI,EACTld,KAAKwkC,gBAET,CAuFA,OArFAJ,EAAyB5jC,UAAY,CACnCgF,MAAO29B,EACPpD,SAAU,WACJ//B,KAAKowB,KAAK/F,WAAW+U,UAAYp/B,KAAKo/B,UAI1Cp/B,KAAKo/B,QAAUp/B,KAAKowB,KAAK/F,WAAW+U,QACpCp/B,KAAK2gC,2BAED3gC,KAAKk/B,MACPl/B,KAAKwkC,gBAET,EACAC,kBAAmB,WACjB,IAaI9tC,EACAiuC,EACAC,EACAC,EAhBAC,EAAiC,EAAxB7oC,KAAKC,MAAM6D,KAAKwd,GAAGzD,GAC5BirB,EAAkB,EAAV9oC,KAAKsb,GAASutB,EAKtBE,GAAW,EACXC,EAAUllC,KAAK2kC,GAAG5qB,EAClBorB,EAAWnlC,KAAKskC,GAAGvqB,EACnBqrB,EAAYplC,KAAKmQ,GAAG4J,EACpBsrB,EAAarlC,KAAKukC,GAAGxqB,EACrBurB,EAAmB,EAAIppC,KAAKsb,GAAK0tB,GAAoB,EAATH,GAC5CQ,EAAoB,EAAIrpC,KAAKsb,GAAK2tB,GAAqB,EAATJ,GAK9CS,GAActpC,KAAKsb,GAAK,EAC5BguB,GAAcxlC,KAAKga,EAAED,EACrB,IAAIyd,EAAsB,IAAhBx3B,KAAKgO,KAAK1T,GAAW,EAAI,EAGnC,IAFA0F,KAAK+Z,EAAE2a,QAAU,EAEZ/9B,EAAI,EAAGA,EAAIouC,EAAQpuC,GAAK,EAAG,CAE9BkuC,EAAYI,EAAWG,EAAYC,EACnCP,EAAeG,EAAWK,EAAmBC,EAC7C,IAAIzS,GAHJ8R,EAAMK,EAAWC,EAAUC,GAGbjpC,KAAKkiC,IAAIoH,GACnB3rC,EAAI+qC,EAAM1oC,KAAKshC,IAAIgI,GACnBC,EAAW,IAAN3S,GAAiB,IAANj5B,EAAU,EAAIA,EAAIqC,KAAKya,KAAKmc,EAAIA,EAAIj5B,EAAIA,GACxD6rC,EAAW,IAAN5S,GAAiB,IAANj5B,EAAU,GAAKi5B,EAAI52B,KAAKya,KAAKmc,EAAIA,EAAIj5B,EAAIA,GAC7Di5B,IAAM9yB,KAAKpD,EAAEmd,EAAE,GACflgB,IAAMmG,KAAKpD,EAAEmd,EAAE,GACf/Z,KAAK+Z,EAAEqnB,YAAYtO,EAAGj5B,EAAGi5B,EAAI2S,EAAKX,EAAeD,EAAYrN,EAAK39B,EAAI6rC,EAAKZ,EAAeD,EAAYrN,EAAK1E,EAAI2S,EAAKX,EAAeD,EAAYrN,EAAK39B,EAAI6rC,EAAKZ,EAAeD,EAAYrN,EAAK7gC,GAAG,GAMhMsuC,GAAYA,EACZO,GAAcR,EAAQxN,CACxB,CACF,EACAkN,qBAAsB,WACpB,IAKI/tC,EALAouC,EAAS7oC,KAAKC,MAAM6D,KAAKwd,GAAGzD,GAC5BirB,EAAkB,EAAV9oC,KAAKsb,GAASutB,EACtBH,EAAM5kC,KAAK2kC,GAAG5qB,EACd8qB,EAAY7kC,KAAKmQ,GAAG4J,EACpB+qB,EAAe,EAAI5oC,KAAKsb,GAAKotB,GAAgB,EAATG,GAEpCS,EAAwB,IAAVtpC,KAAKsb,GACnBggB,EAAsB,IAAhBx3B,KAAKgO,KAAK1T,GAAW,EAAI,EAInC,IAHAkrC,GAAcxlC,KAAKga,EAAED,EACrB/Z,KAAK+Z,EAAE2a,QAAU,EAEZ/9B,EAAI,EAAGA,EAAIouC,EAAQpuC,GAAK,EAAG,CAC9B,IAAIm8B,EAAI8R,EAAM1oC,KAAKkiC,IAAIoH,GACnB3rC,EAAI+qC,EAAM1oC,KAAKshC,IAAIgI,GACnBC,EAAW,IAAN3S,GAAiB,IAANj5B,EAAU,EAAIA,EAAIqC,KAAKya,KAAKmc,EAAIA,EAAIj5B,EAAIA,GACxD6rC,EAAW,IAAN5S,GAAiB,IAANj5B,EAAU,GAAKi5B,EAAI52B,KAAKya,KAAKmc,EAAIA,EAAIj5B,EAAIA,GAC7Di5B,IAAM9yB,KAAKpD,EAAEmd,EAAE,GACflgB,IAAMmG,KAAKpD,EAAEmd,EAAE,GACf/Z,KAAK+Z,EAAEqnB,YAAYtO,EAAGj5B,EAAGi5B,EAAI2S,EAAKX,EAAeD,EAAYrN,EAAK39B,EAAI6rC,EAAKZ,EAAeD,EAAYrN,EAAK1E,EAAI2S,EAAKX,EAAeD,EAAYrN,EAAK39B,EAAI6rC,EAAKZ,EAAeD,EAAYrN,EAAK7gC,GAAG,GAChM6uC,GAAcR,EAAQxN,CACxB,CAEAx3B,KAAKN,MAAMhJ,OAAS,EACpBsJ,KAAKN,MAAM,GAAKM,KAAK+Z,CACvB,GAEFxG,gBAAgB,CAACitB,0BAA2B4D,GACrCA,CACT,CA1HwB,GA4HpBuB,EAAoB,WACtB,SAASC,EAAyBxV,EAAMpiB,GACtChO,KAAK+Z,EAAIioB,UAAUnN,aACnB70B,KAAK+Z,EAAEkG,GAAI,EACXjgB,KAAKojC,qBAAuBZ,oBAAoBC,qBAChDziC,KAAKojC,qBAAqBd,SAAStiC,KAAK+Z,GACxC/Z,KAAKN,MAAQM,KAAKojC,qBAClBpjC,KAAKowB,KAAOA,EACZpwB,KAAKie,KAAOmS,EAAKnS,KACjBje,KAAKo/B,SAAW,EAChBp/B,KAAK1F,EAAI0T,EAAK1T,EACd0F,KAAK4gC,6BAA6BxQ,GAClCpwB,KAAKpD,EAAIwjC,gBAAgBC,QAAQjQ,EAAMpiB,EAAKpR,EAAG,EAAG,EAAGoD,MACrDA,KAAKnJ,EAAIupC,gBAAgBC,QAAQjQ,EAAMpiB,EAAKnX,EAAG,EAAG,EAAGmJ,MACrDA,KAAKga,EAAIomB,gBAAgBC,QAAQjQ,EAAMpiB,EAAKgM,EAAG,EAAG,EAAGha,MAEjDA,KAAKygC,kBAAkB/pC,OACzBsJ,KAAKkd,GAAI,GAETld,KAAKkd,GAAI,EACTld,KAAK6lC,oBAET,CA4DA,OA1DAD,EAAyBplC,UAAY,CACnCqlC,kBAAmB,WACjB,IAAI/B,EAAK9jC,KAAKpD,EAAEmd,EAAE,GACdgqB,EAAK/jC,KAAKpD,EAAEmd,EAAE,GACd+rB,EAAK9lC,KAAKnJ,EAAEkjB,EAAE,GAAK,EACnBgsB,EAAK/lC,KAAKnJ,EAAEkjB,EAAE,GAAK,EACnBnC,EAAQb,MAAM+uB,EAAIC,EAAI/lC,KAAKga,EAAED,GAC7B4pB,EAAS/rB,GAAS,EAAIH,aAC1BzX,KAAK+Z,EAAE2a,QAAU,EAEF,IAAX10B,KAAK1F,GAAsB,IAAX0F,KAAK1F,GACvB0F,KAAK+Z,EAAEqnB,YAAY0C,EAAKgC,EAAI/B,EAAKgC,EAAKnuB,EAAOksB,EAAKgC,EAAI/B,EAAKgC,EAAKnuB,EAAOksB,EAAKgC,EAAI/B,EAAKgC,EAAKpC,EAAQ,GAAG,GACrG3jC,KAAK+Z,EAAEqnB,YAAY0C,EAAKgC,EAAI/B,EAAKgC,EAAKnuB,EAAOksB,EAAKgC,EAAI/B,EAAKgC,EAAKpC,EAAQG,EAAKgC,EAAI/B,EAAKgC,EAAKnuB,EAAO,GAAG,GAEvF,IAAVA,GACF5X,KAAK+Z,EAAEqnB,YAAY0C,EAAKgC,EAAKluB,EAAOmsB,EAAKgC,EAAIjC,EAAKgC,EAAKluB,EAAOmsB,EAAKgC,EAAIjC,EAAKgC,EAAKnC,EAAQI,EAAKgC,EAAI,GAAG,GACrG/lC,KAAK+Z,EAAEqnB,YAAY0C,EAAKgC,EAAKluB,EAAOmsB,EAAKgC,EAAIjC,EAAKgC,EAAKnC,EAAQI,EAAKgC,EAAIjC,EAAKgC,EAAKluB,EAAOmsB,EAAKgC,EAAI,GAAG,GACrG/lC,KAAK+Z,EAAEqnB,YAAY0C,EAAKgC,EAAI/B,EAAKgC,EAAKnuB,EAAOksB,EAAKgC,EAAI/B,EAAKgC,EAAKnuB,EAAOksB,EAAKgC,EAAI/B,EAAKgC,EAAKpC,EAAQ,GAAG,GACrG3jC,KAAK+Z,EAAEqnB,YAAY0C,EAAKgC,EAAI/B,EAAKgC,EAAKnuB,EAAOksB,EAAKgC,EAAI/B,EAAKgC,EAAKpC,EAAQG,EAAKgC,EAAI/B,EAAKgC,EAAKnuB,EAAO,GAAG,GACrG5X,KAAK+Z,EAAEqnB,YAAY0C,EAAKgC,EAAKluB,EAAOmsB,EAAKgC,EAAIjC,EAAKgC,EAAKluB,EAAOmsB,EAAKgC,EAAIjC,EAAKgC,EAAKnC,EAAQI,EAAKgC,EAAI,GAAG,GACrG/lC,KAAK+Z,EAAEqnB,YAAY0C,EAAKgC,EAAKluB,EAAOmsB,EAAKgC,EAAIjC,EAAKgC,EAAKnC,EAAQI,EAAKgC,EAAIjC,EAAKgC,EAAKluB,EAAOmsB,EAAKgC,EAAI,GAAG,KAErG/lC,KAAK+Z,EAAEqnB,YAAY0C,EAAKgC,EAAI/B,EAAKgC,EAAIjC,EAAKgC,EAAKnC,EAAQI,EAAKgC,EAAIjC,EAAKgC,EAAI/B,EAAKgC,EAAI,GAClF/lC,KAAK+Z,EAAEqnB,YAAY0C,EAAKgC,EAAI/B,EAAKgC,EAAIjC,EAAKgC,EAAI/B,EAAKgC,EAAKpC,EAAQG,EAAKgC,EAAI/B,EAAKgC,EAAI,MAGpF/lC,KAAK+Z,EAAEqnB,YAAY0C,EAAKgC,EAAI/B,EAAKgC,EAAKnuB,EAAOksB,EAAKgC,EAAI/B,EAAKgC,EAAKpC,EAAQG,EAAKgC,EAAI/B,EAAKgC,EAAKnuB,EAAO,GAAG,GAEvF,IAAVA,GACF5X,KAAK+Z,EAAEqnB,YAAY0C,EAAKgC,EAAKluB,EAAOmsB,EAAKgC,EAAIjC,EAAKgC,EAAKluB,EAAOmsB,EAAKgC,EAAIjC,EAAKgC,EAAKnC,EAAQI,EAAKgC,EAAI,GAAG,GACrG/lC,KAAK+Z,EAAEqnB,YAAY0C,EAAKgC,EAAKluB,EAAOmsB,EAAKgC,EAAIjC,EAAKgC,EAAKnC,EAAQI,EAAKgC,EAAIjC,EAAKgC,EAAKluB,EAAOmsB,EAAKgC,EAAI,GAAG,GACrG/lC,KAAK+Z,EAAEqnB,YAAY0C,EAAKgC,EAAI/B,EAAKgC,EAAKnuB,EAAOksB,EAAKgC,EAAI/B,EAAKgC,EAAKnuB,EAAOksB,EAAKgC,EAAI/B,EAAKgC,EAAKpC,EAAQ,GAAG,GACrG3jC,KAAK+Z,EAAEqnB,YAAY0C,EAAKgC,EAAI/B,EAAKgC,EAAKnuB,EAAOksB,EAAKgC,EAAI/B,EAAKgC,EAAKpC,EAAQG,EAAKgC,EAAI/B,EAAKgC,EAAKnuB,EAAO,GAAG,GACrG5X,KAAK+Z,EAAEqnB,YAAY0C,EAAKgC,EAAKluB,EAAOmsB,EAAKgC,EAAIjC,EAAKgC,EAAKluB,EAAOmsB,EAAKgC,EAAIjC,EAAKgC,EAAKnC,EAAQI,EAAKgC,EAAI,GAAG,GACrG/lC,KAAK+Z,EAAEqnB,YAAY0C,EAAKgC,EAAKluB,EAAOmsB,EAAKgC,EAAIjC,EAAKgC,EAAKnC,EAAQI,EAAKgC,EAAIjC,EAAKgC,EAAKluB,EAAOmsB,EAAKgC,EAAI,GAAG,GACrG/lC,KAAK+Z,EAAEqnB,YAAY0C,EAAKgC,EAAI/B,EAAKgC,EAAKnuB,EAAOksB,EAAKgC,EAAI/B,EAAKgC,EAAKnuB,EAAOksB,EAAKgC,EAAI/B,EAAKgC,EAAKpC,EAAQ,GAAG,KAErG3jC,KAAK+Z,EAAEqnB,YAAY0C,EAAKgC,EAAI/B,EAAKgC,EAAIjC,EAAKgC,EAAKnC,EAAQI,EAAKgC,EAAIjC,EAAKgC,EAAI/B,EAAKgC,EAAI,GAAG,GACrF/lC,KAAK+Z,EAAEqnB,YAAY0C,EAAKgC,EAAI/B,EAAKgC,EAAIjC,EAAKgC,EAAI/B,EAAKgC,EAAKpC,EAAQG,EAAKgC,EAAI/B,EAAKgC,EAAI,GAAG,GACrF/lC,KAAK+Z,EAAEqnB,YAAY0C,EAAKgC,EAAI/B,EAAKgC,EAAIjC,EAAKgC,EAAKnC,EAAQI,EAAKgC,EAAIjC,EAAKgC,EAAI/B,EAAKgC,EAAI,GAAG,IAG3F,EACAhG,SAAU,WACJ//B,KAAKowB,KAAK/F,WAAW+U,UAAYp/B,KAAKo/B,UAI1Cp/B,KAAKo/B,QAAUp/B,KAAKowB,KAAK/F,WAAW+U,QACpCp/B,KAAK2gC,2BAED3gC,KAAKk/B,MACPl/B,KAAK6lC,oBAET,EACArgC,MAAO29B,GAET5vB,gBAAgB,CAACitB,0BAA2BoF,GACrCA,CACT,CAnFwB,GAwHpBphB,EAAK,CACTA,aApCA,SAAsB4L,EAAMpiB,EAAM3L,GAChC,IAAIwR,EAuBJ,OArBa,IAATxR,GAAuB,IAATA,EAKdwR,GAJsB,IAATxR,EAAa2L,EAAKwP,GAAKxP,EAAKsQ,IACvBpB,EAEXxmB,OACA,IAAI+sC,EAAuBrT,EAAMpiB,EAAM3L,GAEvC,IAAImhC,EAAcpT,EAAMpiB,EAAM3L,GAErB,IAATA,EACTwR,EAAO,IAAI8xB,EAAkBvV,EAAMpiB,GACjB,IAAT3L,EACTwR,EAAO,IAAI6vB,EAAiBtT,EAAMpiB,GAChB,IAAT3L,IACTwR,EAAO,IAAIswB,EAAkB/T,EAAMpiB,IAGjC6F,EAAKqJ,GACPkT,EAAKwP,mBAAmB/rB,GAGnBA,CACT,EAYA2Q,uBAVA,WACE,OAAOgf,CACT,EASAhf,gCAPA,WACE,OAAOif,CACT,GAMA,OAAOjf,CACT,CAzjB2B,GAwlBvBwhB,OAAS,WACX,IAAIC,EAAO/pC,KAAKkiC,IACZ8H,EAAOhqC,KAAKshC,IACZ2I,EAAOjqC,KAAKkqC,IACZC,EAAOnqC,KAAK0b,MAEhB,SAASpS,IAiBP,OAhBAxF,KAAK0I,MAAM,GAAK,EAChB1I,KAAK0I,MAAM,GAAK,EAChB1I,KAAK0I,MAAM,GAAK,EAChB1I,KAAK0I,MAAM,GAAK,EAChB1I,KAAK0I,MAAM,GAAK,EAChB1I,KAAK0I,MAAM,GAAK,EAChB1I,KAAK0I,MAAM,GAAK,EAChB1I,KAAK0I,MAAM,GAAK,EAChB1I,KAAK0I,MAAM,GAAK,EAChB1I,KAAK0I,MAAM,GAAK,EAChB1I,KAAK0I,MAAM,IAAM,EACjB1I,KAAK0I,MAAM,IAAM,EACjB1I,KAAK0I,MAAM,IAAM,EACjB1I,KAAK0I,MAAM,IAAM,EACjB1I,KAAK0I,MAAM,IAAM,EACjB1I,KAAK0I,MAAM,IAAM,EACV1I,IACT,CAEA,SAASsmC,EAAOtB,GACd,GAAc,IAAVA,EACF,OAAOhlC,KAGT,IAAIumC,EAAON,EAAKjB,GAEZwB,EAAON,EAAKlB,GAEhB,OAAOhlC,KAAKymC,GAAGF,GAAOC,EAAM,EAAG,EAAGA,EAAMD,EAAM,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC3E,CAEA,SAASG,EAAQ1B,GACf,GAAc,IAAVA,EACF,OAAOhlC,KAGT,IAAIumC,EAAON,EAAKjB,GAEZwB,EAAON,EAAKlB,GAEhB,OAAOhlC,KAAKymC,GAAG,EAAG,EAAG,EAAG,EAAG,EAAGF,GAAOC,EAAM,EAAG,EAAGA,EAAMD,EAAM,EAAG,EAAG,EAAG,EAAG,EAC3E,CAEA,SAASI,EAAQ3B,GACf,GAAc,IAAVA,EACF,OAAOhlC,KAGT,IAAIumC,EAAON,EAAKjB,GAEZwB,EAAON,EAAKlB,GAEhB,OAAOhlC,KAAKymC,GAAGF,EAAM,EAAGC,EAAM,EAAG,EAAG,EAAG,EAAG,GAAIA,EAAM,EAAGD,EAAM,EAAG,EAAG,EAAG,EAAG,EAC3E,CAEA,SAASK,EAAQ5B,GACf,GAAc,IAAVA,EACF,OAAOhlC,KAGT,IAAIumC,EAAON,EAAKjB,GAEZwB,EAAON,EAAKlB,GAEhB,OAAOhlC,KAAKymC,GAAGF,GAAOC,EAAM,EAAG,EAAGA,EAAMD,EAAM,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAC3E,CAEA,SAASM,EAAMC,EAAIzC,GACjB,OAAOrkC,KAAKymC,GAAG,EAAGpC,EAAIyC,EAAI,EAAG,EAAG,EAClC,CAEA,SAASC,EAAKhK,EAAIC,GAChB,OAAOh9B,KAAK6mC,MAAMV,EAAKpJ,GAAKoJ,EAAKnJ,GACnC,CAEA,SAASgK,EAAajK,EAAIiI,GACxB,IAAIuB,EAAON,EAAKjB,GAEZwB,EAAON,EAAKlB,GAEhB,OAAOhlC,KAAKymC,GAAGF,EAAMC,EAAM,EAAG,GAAIA,EAAMD,EAAM,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAGE,GAAG,EAAG,EAAG,EAAG,EAAGN,EAAKpJ,GAAK,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAG0J,GAAGF,GAAOC,EAAM,EAAG,EAAGA,EAAMD,EAAM,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EACrM,CAEA,SAASU,EAAMH,EAAIzC,EAAI6C,GAKrB,OAJKA,GAAa,IAAPA,IACTA,EAAK,GAGI,IAAPJ,GAAmB,IAAPzC,GAAmB,IAAP6C,EACnBlnC,KAGFA,KAAKymC,GAAGK,EAAI,EAAG,EAAG,EAAG,EAAGzC,EAAI,EAAG,EAAG,EAAG,EAAG6C,EAAI,EAAG,EAAG,EAAG,EAAG,EACjE,CAEA,SAASC,EAAaznB,EAAGzF,EAAGgG,EAAG3lB,EAAGrD,EAAGE,EAAG4I,EAAGtE,EAAG9E,EAAGqmB,EAAGE,EAAGlhB,EAAGlB,EAAGhE,EAAGX,EAAGyG,GAiBjE,OAhBAoD,KAAK0I,MAAM,GAAKgX,EAChB1f,KAAK0I,MAAM,GAAKuR,EAChBja,KAAK0I,MAAM,GAAKuX,EAChBjgB,KAAK0I,MAAM,GAAKpO,EAChB0F,KAAK0I,MAAM,GAAKzR,EAChB+I,KAAK0I,MAAM,GAAKvR,EAChB6I,KAAK0I,MAAM,GAAK3I,EAChBC,KAAK0I,MAAM,GAAKjN,EAChBuE,KAAK0I,MAAM,GAAK/R,EAChBqJ,KAAK0I,MAAM,GAAKsU,EAChBhd,KAAK0I,MAAM,IAAMwU,EACjBld,KAAK0I,MAAM,IAAM1M,EACjBgE,KAAK0I,MAAM,IAAM5N,EACjBkF,KAAK0I,MAAM,IAAM5R,EACjBkJ,KAAK0I,MAAM,IAAMvS,EACjB6J,KAAK0I,MAAM,IAAM9L,EACVoD,IACT,CAEA,SAASonC,EAAUC,EAAI3pB,EAAI4pB,GAGzB,OAFAA,EAAKA,GAAM,EAEA,IAAPD,GAAmB,IAAP3pB,GAAmB,IAAP4pB,EACnBtnC,KAAKymC,GAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAGY,EAAI3pB,EAAI4pB,EAAI,GAG1DtnC,IACT,CAEA,SAASunC,EAAUC,EAAIC,EAAIpJ,EAAIqJ,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,GAC7E,IAAI3V,EAAK3yB,KAAK0I,MAEd,GAAW,IAAP8+B,GAAmB,IAAPC,GAAmB,IAAPpJ,GAAmB,IAAPqJ,GAAmB,IAAPC,GAAmB,IAAPC,GAAmB,IAAPC,GAAmB,IAAPC,GAAmB,IAAPC,GAAmB,IAAPC,GAAmB,IAAPC,GAAmB,IAAPC,EAStI,OANAvV,EAAG,IAAMA,EAAG,IAAM6U,EAAK7U,EAAG,IAAMwV,EAChCxV,EAAG,IAAMA,EAAG,IAAMiV,EAAKjV,EAAG,IAAMyV,EAChCzV,EAAG,IAAMA,EAAG,IAAMsV,EAAKtV,EAAG,IAAM0V,EAChC1V,EAAG,KAAO2V,EAEVtoC,KAAKuoC,qBAAsB,EACpBvoC,KAGT,IAAIwoC,EAAK7V,EAAG,GACR8V,EAAK9V,EAAG,GACRwL,EAAKxL,EAAG,GACR+V,EAAK/V,EAAG,GACRgW,EAAKhW,EAAG,GACRiW,EAAKjW,EAAG,GACRkW,EAAKlW,EAAG,GACRmW,EAAKnW,EAAG,GACRoW,EAAKpW,EAAG,GACRqW,EAAKrW,EAAG,GACRsW,EAAKtW,EAAG,IACRuW,EAAKvW,EAAG,IACRwW,EAAKxW,EAAG,IACRyW,EAAKzW,EAAG,IACR0W,EAAK1W,EAAG,IACRoR,EAAKpR,EAAG,IAwBZ,OAjBAA,EAAG,GAAK6V,EAAKhB,EAAKiB,EAAKd,EAAKxJ,EAAK4J,EAAKW,EAAKP,EAC3CxV,EAAG,GAAK6V,EAAKf,EAAKgB,EAAKb,EAAKzJ,EAAK6J,EAAKU,EAAKN,EAC3CzV,EAAG,GAAK6V,EAAKnK,EAAKoK,EAAKZ,EAAK1J,EAAK8J,EAAKS,EAAKL,EAC3C1V,EAAG,GAAK6V,EAAKd,EAAKe,EAAKX,EAAK3J,EAAK+J,EAAKQ,EAAKJ,EAC3C3V,EAAG,GAAKgW,EAAKnB,EAAKoB,EAAKjB,EAAKkB,EAAKd,EAAKe,EAAKX,EAC3CxV,EAAG,GAAKgW,EAAKlB,EAAKmB,EAAKhB,EAAKiB,EAAKb,EAAKc,EAAKV,EAC3CzV,EAAG,GAAKgW,EAAKtK,EAAKuK,EAAKf,EAAKgB,EAAKZ,EAAKa,EAAKT,EAC3C1V,EAAG,GAAKgW,EAAKjB,EAAKkB,EAAKd,EAAKe,EAAKX,EAAKY,EAAKR,EAC3C3V,EAAG,GAAKoW,EAAKvB,EAAKwB,EAAKrB,EAAKsB,EAAKlB,EAAKmB,EAAKf,EAC3CxV,EAAG,GAAKoW,EAAKtB,EAAKuB,EAAKpB,EAAKqB,EAAKjB,EAAKkB,EAAKd,EAC3CzV,EAAG,IAAMoW,EAAK1K,EAAK2K,EAAKnB,EAAKoB,EAAKhB,EAAKiB,EAAKb,EAC5C1V,EAAG,IAAMoW,EAAKrB,EAAKsB,EAAKlB,EAAKmB,EAAKf,EAAKgB,EAAKZ,EAC5C3V,EAAG,IAAMwW,EAAK3B,EAAK4B,EAAKzB,EAAK0B,EAAKtB,EAAKhE,EAAKoE,EAC5CxV,EAAG,IAAMwW,EAAK1B,EAAK2B,EAAKxB,EAAKyB,EAAKrB,EAAKjE,EAAKqE,EAC5CzV,EAAG,IAAMwW,EAAK9K,EAAK+K,EAAKvB,EAAKwB,EAAKpB,EAAKlE,EAAKsE,EAC5C1V,EAAG,IAAMwW,EAAKzB,EAAK0B,EAAKtB,EAAKuB,EAAKnB,EAAKnE,EAAKuE,EAC5CtoC,KAAKuoC,qBAAsB,EACpBvoC,IACT,CAEA,SAASspC,IAMP,OALKtpC,KAAKuoC,sBACRvoC,KAAKupC,YAAgC,IAAlBvpC,KAAK0I,MAAM,IAA8B,IAAlB1I,KAAK0I,MAAM,IAA8B,IAAlB1I,KAAK0I,MAAM,IAA8B,IAAlB1I,KAAK0I,MAAM,IAA8B,IAAlB1I,KAAK0I,MAAM,IAA8B,IAAlB1I,KAAK0I,MAAM,IAA8B,IAAlB1I,KAAK0I,MAAM,IAA8B,IAAlB1I,KAAK0I,MAAM,IAA8B,IAAlB1I,KAAK0I,MAAM,IAA8B,IAAlB1I,KAAK0I,MAAM,IAA+B,IAAnB1I,KAAK0I,MAAM,KAAgC,IAAnB1I,KAAK0I,MAAM,KAAgC,IAAnB1I,KAAK0I,MAAM,KAAgC,IAAnB1I,KAAK0I,MAAM,KAAgC,IAAnB1I,KAAK0I,MAAM,KAAgC,IAAnB1I,KAAK0I,MAAM,KAC5X1I,KAAKuoC,qBAAsB,GAGtBvoC,KAAKupC,SACd,CAEA,SAASC,EAAOC,GAGd,IAFA,IAAI9yC,EAAI,EAEDA,EAAI,IAAI,CACb,GAAI8yC,EAAK/gC,MAAM/R,KAAOqJ,KAAK0I,MAAM/R,GAC/B,OAAO,EAGTA,GAAK,CACP,CAEA,OAAO,CACT,CAEA,SAASurC,EAAMuH,GACb,IAAI9yC,EAEJ,IAAKA,EAAI,EAAGA,EAAI,GAAIA,GAAK,EACvB8yC,EAAK/gC,MAAM/R,GAAKqJ,KAAK0I,MAAM/R,GAG7B,OAAO8yC,CACT,CAEA,SAASC,EAAehhC,GACtB,IAAI/R,EAEJ,IAAKA,EAAI,EAAGA,EAAI,GAAIA,GAAK,EACvBqJ,KAAK0I,MAAM/R,GAAK+R,EAAM/R,EAE1B,CAEA,SAASgzC,EAAa7W,EAAGj5B,EAAG+vC,GAC1B,MAAO,CACL9W,EAAGA,EAAI9yB,KAAK0I,MAAM,GAAK7O,EAAImG,KAAK0I,MAAM,GAAKkhC,EAAI5pC,KAAK0I,MAAM,GAAK1I,KAAK0I,MAAM,IAC1E7O,EAAGi5B,EAAI9yB,KAAK0I,MAAM,GAAK7O,EAAImG,KAAK0I,MAAM,GAAKkhC,EAAI5pC,KAAK0I,MAAM,GAAK1I,KAAK0I,MAAM,IAC1EkhC,EAAG9W,EAAI9yB,KAAK0I,MAAM,GAAK7O,EAAImG,KAAK0I,MAAM,GAAKkhC,EAAI5pC,KAAK0I,MAAM,IAAM1I,KAAK0I,MAAM,IAM/E,CAEA,SAASmhC,EAAS/W,EAAGj5B,EAAG+vC,GACtB,OAAO9W,EAAI9yB,KAAK0I,MAAM,GAAK7O,EAAImG,KAAK0I,MAAM,GAAKkhC,EAAI5pC,KAAK0I,MAAM,GAAK1I,KAAK0I,MAAM,GAChF,CAEA,SAASohC,EAAShX,EAAGj5B,EAAG+vC,GACtB,OAAO9W,EAAI9yB,KAAK0I,MAAM,GAAK7O,EAAImG,KAAK0I,MAAM,GAAKkhC,EAAI5pC,KAAK0I,MAAM,GAAK1I,KAAK0I,MAAM,GAChF,CAEA,SAASqhC,EAASjX,EAAGj5B,EAAG+vC,GACtB,OAAO9W,EAAI9yB,KAAK0I,MAAM,GAAK7O,EAAImG,KAAK0I,MAAM,GAAKkhC,EAAI5pC,KAAK0I,MAAM,IAAM1I,KAAK0I,MAAM,GACjF,CAEA,SAASshC,IACP,IAAIC,EAAcjqC,KAAK0I,MAAM,GAAK1I,KAAK0I,MAAM,GAAK1I,KAAK0I,MAAM,GAAK1I,KAAK0I,MAAM,GACzEgX,EAAI1f,KAAK0I,MAAM,GAAKuhC,EACpBhwB,GAAKja,KAAK0I,MAAM,GAAKuhC,EACrBhqB,GAAKjgB,KAAK0I,MAAM,GAAKuhC,EACrB3vC,EAAI0F,KAAK0I,MAAM,GAAKuhC,EACpBhzC,GAAK+I,KAAK0I,MAAM,GAAK1I,KAAK0I,MAAM,IAAM1I,KAAK0I,MAAM,GAAK1I,KAAK0I,MAAM,KAAOuhC,EACxE9yC,IAAM6I,KAAK0I,MAAM,GAAK1I,KAAK0I,MAAM,IAAM1I,KAAK0I,MAAM,GAAK1I,KAAK0I,MAAM,KAAOuhC,EACzEC,EAAgB,IAAIlE,OAOxB,OANAkE,EAAcxhC,MAAM,GAAKgX,EACzBwqB,EAAcxhC,MAAM,GAAKuR,EACzBiwB,EAAcxhC,MAAM,GAAKuX,EACzBiqB,EAAcxhC,MAAM,GAAKpO,EACzB4vC,EAAcxhC,MAAM,IAAMzR,EAC1BizC,EAAcxhC,MAAM,IAAMvR,EACnB+yC,CACT,CAEA,SAASC,EAAa3sB,GAEpB,OADoBxd,KAAKgqC,mBACJI,kBAAkB5sB,EAAG,GAAIA,EAAG,GAAIA,EAAG,IAAM,EAChE,CAEA,SAAS6sB,EAAcC,GACrB,IAAI3zC,EACAwH,EAAMmsC,EAAI5zC,OACV6zC,EAAS,GAEb,IAAK5zC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACxB4zC,EAAO5zC,GAAKwzC,EAAaG,EAAI3zC,IAG/B,OAAO4zC,CACT,CAEA,SAASC,EAAoBxU,EAAKC,EAAKC,GACrC,IAAIr+B,EAAM+d,iBAAiB,UAAW,GAEtC,GAAI5V,KAAKspC,aACPzxC,EAAI,GAAKm+B,EAAI,GACbn+B,EAAI,GAAKm+B,EAAI,GACbn+B,EAAI,GAAKo+B,EAAI,GACbp+B,EAAI,GAAKo+B,EAAI,GACbp+B,EAAI,GAAKq+B,EAAI,GACbr+B,EAAI,GAAKq+B,EAAI,OACR,CACL,IAAI4N,EAAK9jC,KAAK0I,MAAM,GAChBq7B,EAAK/jC,KAAK0I,MAAM,GAChB+hC,EAAKzqC,KAAK0I,MAAM,GAChBgiC,EAAK1qC,KAAK0I,MAAM,GAChBiiC,EAAM3qC,KAAK0I,MAAM,IACjBkiC,EAAM5qC,KAAK0I,MAAM,IACrB7Q,EAAI,GAAKm+B,EAAI,GAAK8N,EAAK9N,EAAI,GAAKyU,EAAKE,EACrC9yC,EAAI,GAAKm+B,EAAI,GAAK+N,EAAK/N,EAAI,GAAK0U,EAAKE,EACrC/yC,EAAI,GAAKo+B,EAAI,GAAK6N,EAAK7N,EAAI,GAAKwU,EAAKE,EACrC9yC,EAAI,GAAKo+B,EAAI,GAAK8N,EAAK9N,EAAI,GAAKyU,EAAKE,EACrC/yC,EAAI,GAAKq+B,EAAI,GAAK4N,EAAK5N,EAAI,GAAKuU,EAAKE,EACrC9yC,EAAI,GAAKq+B,EAAI,GAAK6N,EAAK7N,EAAI,GAAKwU,EAAKE,CACvC,CAEA,OAAO/yC,CACT,CAEA,SAASuyC,EAAkBtX,EAAGj5B,EAAG+vC,GAS/B,OANI5pC,KAAKspC,aACD,CAACxW,EAAGj5B,EAAG+vC,GAEP,CAAC9W,EAAI9yB,KAAK0I,MAAM,GAAK7O,EAAImG,KAAK0I,MAAM,GAAKkhC,EAAI5pC,KAAK0I,MAAM,GAAK1I,KAAK0I,MAAM,IAAKoqB,EAAI9yB,KAAK0I,MAAM,GAAK7O,EAAImG,KAAK0I,MAAM,GAAKkhC,EAAI5pC,KAAK0I,MAAM,GAAK1I,KAAK0I,MAAM,IAAKoqB,EAAI9yB,KAAK0I,MAAM,GAAK7O,EAAImG,KAAK0I,MAAM,GAAKkhC,EAAI5pC,KAAK0I,MAAM,IAAM1I,KAAK0I,MAAM,IAI3O,CAEA,SAASmiC,EAAwB/X,EAAGj5B,GAClC,GAAImG,KAAKspC,aACP,OAAOxW,EAAI,IAAMj5B,EAGnB,IAAI84B,EAAK3yB,KAAK0I,MACd,OAAOxM,KAAK0b,MAAyC,KAAlCkb,EAAIH,EAAG,GAAK94B,EAAI84B,EAAG,GAAKA,EAAG,MAAc,IAAM,IAAMz2B,KAAK0b,MAAyC,KAAlCkb,EAAIH,EAAG,GAAK94B,EAAI84B,EAAG,GAAKA,EAAG,MAAc,GAC/H,CAEA,SAASmY,IAWP,IALA,IAAIn0C,EAAI,EACJ+R,EAAQ1I,KAAK0I,MACbqiC,EAAW,YAGRp0C,EAAI,IACTo0C,GAAY1E,EAHN,IAGW39B,EAAM/R,IAHjB,IAINo0C,GAAkB,KAANp0C,EAAW,IAAM,IAC7BA,GAAK,EAGP,OAAOo0C,CACT,CAEA,SAASC,EAAoB9sC,GAG3B,OAAIA,EAAM,MAAYA,EAAM,GAAKA,GAAO,MAAYA,EAAM,EACjDmoC,EAHD,IAGMnoC,GAHN,IAMDA,CACT,CAEA,SAAS+sC,IAMP,IAAIviC,EAAQ1I,KAAK0I,MAcjB,MAAO,UAZEsiC,EAAoBtiC,EAAM,IAYX,IAVfsiC,EAAoBtiC,EAAM,IAUA,IAR1BsiC,EAAoBtiC,EAAM,IAQW,IANrCsiC,EAAoBtiC,EAAM,IAMsB,IAJhDsiC,EAAoBtiC,EAAM,KAIiC,IAF3DsiC,EAAoBtiC,EAAM,KAE4C,GACjF,CAEA,OAAO,WACL1I,KAAKwF,MAAQA,EACbxF,KAAKsmC,OAASA,EACdtmC,KAAK0mC,QAAUA,EACf1mC,KAAK2mC,QAAUA,EACf3mC,KAAK4mC,QAAUA,EACf5mC,KAAK+mC,KAAOA,EACZ/mC,KAAKgnC,aAAeA,EACpBhnC,KAAK6mC,MAAQA,EACb7mC,KAAKinC,MAAQA,EACbjnC,KAAKmnC,aAAeA,EACpBnnC,KAAKonC,UAAYA,EACjBpnC,KAAKunC,UAAYA,EACjBvnC,KAAK2pC,aAAeA,EACpB3pC,KAAK6pC,SAAWA,EAChB7pC,KAAK8pC,SAAWA,EAChB9pC,KAAK+pC,SAAWA,EAChB/pC,KAAKoqC,kBAAoBA,EACzBpqC,KAAKwqC,oBAAsBA,EAC3BxqC,KAAK6qC,wBAA0BA,EAC/B7qC,KAAK8qC,MAAQA,EACb9qC,KAAKirC,QAAUA,EACfjrC,KAAKkiC,MAAQA,EACbliC,KAAK0pC,eAAiBA,EACtB1pC,KAAKwpC,OAASA,EACdxpC,KAAKqqC,cAAgBA,EACrBrqC,KAAKmqC,aAAeA,EACpBnqC,KAAKgqC,iBAAmBA,EACxBhqC,KAAKymC,GAAKzmC,KAAKunC,UACfvnC,KAAKspC,WAAaA,EAClBtpC,KAAKupC,WAAY,EACjBvpC,KAAKuoC,qBAAsB,EAC3BvoC,KAAK0I,MAAQkN,iBAAiB,UAAW,IACzC5V,KAAKwF,OACP,CACF,CA1aa,GA4ab,SAAS0lC,UAAUvqC,GAAuV,OAA1OuqC,UAArD,oBAAX50C,QAAoD,kBAApBA,OAAOC,SAAqC,SAAiBoK,GAAO,cAAcA,CAAK,EAAwB,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXrK,QAAyBqK,EAAIoF,cAAgBzP,QAAUqK,IAAQrK,OAAOkK,UAAY,gBAAkBG,CAAK,EAAYuqC,UAAUvqC,EAAM,CACjY,IAAIwqC,OAAS,CAAC,EACVva,WAAa,mBACb3R,cAAgB,sBAChB8J,SAAW,GAEf,SAASqiB,YAAYC,GACnBl4B,gBAAgBk4B,EAClB,CAEA,SAAS1a,oBACY,IAAfC,WACFnB,iBAAiBkB,iBAAiB1R,cAAe2R,WAAY7H,UAE7D0G,iBAAiBkB,kBAErB,CAEA,SAAS2a,qBAAqBr4B,GAC5B4H,mBAAmB5H,EACrB,CAEA,SAASs4B,UAAUC,GACjBnwB,YAAYmwB,EACd,CAEA,SAAStpB,cAAc6H,GAKrB,OAJmB,IAAf6G,aACF7G,EAAO9K,cAAgBb,KAAK1Q,MAAMuR,gBAG7BwQ,iBAAiBvN,cAAc6H,EACxC,CAEA,SAAS0hB,WAAWz0C,GAClB,GAAqB,kBAAVA,EACT,OAAQA,GACN,IAAK,OACHmkB,wBAAwB,KACxB,MAEF,QACA,IAAK,SACHA,wBAAwB,IACxB,MAEF,IAAK,MACHA,wBAAwB,SAGlB9hB,MAAMrC,IAAUA,EAAQ,GAClCmkB,wBAAwBnkB,GAGtBokB,2BAA6B,GAC/B1D,aAAY,GAEZA,aAAY,EAEhB,CAEA,SAASg0B,YACP,MAA4B,qBAAd59B,SAChB,CAEA,SAAS69B,cAActpC,EAAMupC,GACd,gBAATvpC,GACF0Y,qBAAqB6wB,EAEzB,CAEA,SAASC,WAAW7lC,GAClB,OAAQA,GACN,IAAK,kBACH,OAAOo6B,gBAET,IAAK,uBACH,OAAOuC,qBAET,IAAK,SACH,OAAOqD,OAET,QACE,OAAO,KAEb,CA+BA,SAAS8F,aACqB,aAAxBh9B,SAASyS,aACX+C,cAAcynB,yBACdpb,mBAEJ,CAEA,SAASqb,iBAAiBC,GAGxB,IAFA,IAAIC,EAAOC,YAAY9gC,MAAM,KAEpB1U,EAAI,EAAGA,EAAIu1C,EAAKx1C,OAAQC,GAAK,EAAG,CACvC,IAAIy1C,EAAOF,EAAKv1C,GAAG0U,MAAM,KAEzB,GAAIghC,mBAAmBD,EAAK,KAAOH,EAEjC,OAAOI,mBAAmBD,EAAK,GAEnC,CAEA,OAAO,IACT,CAjDAjB,OAAOl2B,KAAOwa,iBAAiBxa,KAC/Bk2B,OAAO32B,MAAQib,iBAAiBjb,MAChC22B,OAAOh4B,gBAAkBi4B,YACzBD,OAAO/d,YAAcqC,iBAAiBrC,YACtC+d,OAAO/c,SAAWqB,iBAAiBrB,SACnC+c,OAAO9c,aAAeoB,iBAAiBpB,aACvC8c,OAAOrkC,KAAO2oB,iBAAiB3oB,KAC/BqkC,OAAOxa,iBAAmBA,iBAC1Bwa,OAAOhb,kBAAoBV,iBAAiBU,kBAC5Cgb,OAAOjpB,cAAgBA,cACvBipB,OAAOG,qBAAuBA,qBAC9BH,OAAOte,OAAS4C,iBAAiB5C,OAEjCse,OAAO1d,YAAcgC,iBAAiBhC,YACtC0d,OAAO/lB,QAAUqK,iBAAiBrK,QAClC+lB,OAAOM,WAAaA,WACpBN,OAAOO,UAAYA,UACnBP,OAAOQ,cAAgBA,cACvBR,OAAO7Z,OAAS7B,iBAAiB6B,OACjC6Z,OAAO5Z,SAAW9B,iBAAiB8B,SACnC4Z,OAAO91B,UAAYoa,iBAAiBpa,UACpC81B,OAAO31B,KAAOia,iBAAiBja,KAC/B21B,OAAO11B,OAASga,iBAAiBha,OACjC01B,OAAO3Z,wBAA0B/B,iBAAiB+B,wBAClD2Z,OAAOmB,aAAet5B,aACtBm4B,OAAOoB,YAAchB,UACrBJ,OAAOqB,aAAeX,WACtBV,OAAO77B,QAAU,SAwBjB,IAAI68B,YAAc,GAElB,GAAIvb,WAAY,CACd,IAAI6b,QAAU39B,SAASqiB,qBAAqB,UACxC5jB,MAAQk/B,QAAQ/1C,OAAS,EACzBg2C,SAAWD,QAAQl/B,QAAU,CAC/BwH,IAAK,IAEPo3B,YAAcO,SAAS33B,IAAM23B,SAAS33B,IAAI7X,QAAQ,aAAc,IAAM,GAEtE6rB,SAAWijB,iBAAiB,WAC9B,CAEA,IAAID,wBAA0B5nB,YAAY2nB,WAAY,KAEtD,IACgF,WAAxBZ,UAAUl1C,UAA4C,qBAAXD,QAA6DqL,2BAE5JlB,OAAOysC,UAAYxB,OAEvB,CAAE,MAAO9zC,KAAM,CAGf,IAAIu1C,eAAiB,WACnB,IAAIpoB,EAAK,CAAC,EACNqoB,EAAY,CAAC,EAcjB,OAbAroB,EAAGsoB,iBAGH,SAA0BplB,EAAI/U,GACvBk6B,EAAUnlB,KACbmlB,EAAUnlB,GAAM/U,EAEpB,EANA6R,EAAGuoB,YAQH,SAAqBrlB,EAAI0I,EAAMpiB,GAC7B,OAAO,IAAI6+B,EAAUnlB,GAAI0I,EAAMpiB,EACjC,EAEOwW,CACT,CAjBqB,GAmBrB,SAASwoB,gBAAiB,CAmD1B,SAASC,eAAgB,CAgZzB,SAASC,yBAA0B,CAjcnCF,cAAcxsC,UAAU2sC,uBAAyB,WAAa,EAE9DH,cAAcxsC,UAAU4sC,mBAAqB,WAAa,EAE1DJ,cAAcxsC,UAAU8hC,SAAW,SAAUt0B,GAC3C,IAAKhO,KAAKogB,OAAQ,CAEhBpS,EAAKquB,GAAGpS,UAAU2V,mBAAmB5xB,EAAKquB,IAC1C,IAAI1E,EAAY,CACdwK,MAAOn0B,EAAKquB,GACZruB,KAAMA,EACNo1B,qBAAsBZ,oBAAoBC,sBAE5CziC,KAAK8d,OAAOxlB,KAAKq/B,GACjB33B,KAAKotC,mBAAmBzV,GAEpB33B,KAAK0gC,aACP1yB,EAAKq/B,eAET,CACF,EAEAL,cAAcxsC,UAAU+tB,KAAO,SAAU6B,EAAMpiB,GAC7ChO,KAAK8d,OAAS,GACd9d,KAAKowB,KAAOA,EACZpwB,KAAK4gC,6BAA6BxQ,GAClCpwB,KAAKmtC,uBAAuB/c,EAAMpiB,GAClChO,KAAKo/B,QAAUrsB,oBACf/S,KAAKogB,QAAS,EACdpgB,KAAKkd,GAAI,EAELld,KAAKygC,kBAAkB/pC,OACzBsJ,KAAKkd,GAAI,EAETld,KAAK+/B,UAAS,EAElB,EAEAiN,cAAcxsC,UAAU8sC,YAAc,WAChCttC,KAAKowB,KAAK/F,WAAW+U,UAAYp/B,KAAKo/B,UAI1Cp/B,KAAKo/B,QAAUp/B,KAAKowB,KAAK/F,WAAW+U,QACpCp/B,KAAK2gC,2BACP,EAEAptB,gBAAgB,CAACitB,0BAA2BwM,eAI5Cz5B,gBAAgB,CAACy5B,eAAgBC,cAEjCA,aAAazsC,UAAU2sC,uBAAyB,SAAU/c,EAAMpiB,GAC9DhO,KAAKnJ,EAAIupC,gBAAgBC,QAAQjQ,EAAMpiB,EAAKnX,EAAG,EAAG,IAAMmJ,MACxDA,KAAK/I,EAAImpC,gBAAgBC,QAAQjQ,EAAMpiB,EAAK/W,EAAG,EAAG,IAAM+I,MACxDA,KAAK7J,EAAIiqC,gBAAgBC,QAAQjQ,EAAMpiB,EAAK7X,EAAG,EAAG,EAAG6J,MACrDA,KAAKutC,OAAS,EACdvtC,KAAKwtC,OAAS,EACdxtC,KAAK+/B,SAAW//B,KAAKstC,YACrBttC,KAAKlF,EAAIkT,EAAKlT,EACdkF,KAAK0gC,cAAgB1gC,KAAKnJ,EAAEwoC,gBAAgB3oC,UAAYsJ,KAAK/I,EAAEooC,gBAAgB3oC,UAAYsJ,KAAK7J,EAAEkpC,gBAAgB3oC,MACpH,EAEAu2C,aAAazsC,UAAU4sC,mBAAqB,SAAUzV,GACpDA,EAAU8V,UAAY,EACxB,EAEAR,aAAazsC,UAAUktC,oBAAsB,SAAU72C,EAAGI,EAAG02C,EAAa3Y,EAAa4Y,GACrF,IAAIxkB,EAAW,GAEXnyB,GAAK,EACPmyB,EAAS9wB,KAAK,CACZzB,EAAGA,EACHI,EAAGA,IAEIJ,GAAK,EACduyB,EAAS9wB,KAAK,CACZzB,EAAGA,EAAI,EACPI,EAAGA,EAAI,KAGTmyB,EAAS9wB,KAAK,CACZzB,EAAGA,EACHI,EAAG,IAELmyB,EAAS9wB,KAAK,CACZzB,EAAG,EACHI,EAAGA,EAAI,KAIX,IACIN,EAEAk3C,EAHAC,EAAgB,GAEhB3vC,EAAMirB,EAAS1yB,OAGnB,IAAKC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EAAG,CAIzB,IAAIo3C,EACAC,GAJNH,EAAYzkB,EAASzyB,IAELM,EAAI22C,EAAsB5Y,GAAe6Y,EAAUh3C,EAAI+2C,EAAsB5Y,EAAc2Y,IAKvGI,EADEF,EAAUh3C,EAAI+2C,GAAuB5Y,EAC9B,GAEC6Y,EAAUh3C,EAAI+2C,EAAsB5Y,GAAe2Y,EAI7DK,EADEH,EAAU52C,EAAI22C,GAAuB5Y,EAAc2Y,EAC5C,GAECE,EAAU52C,EAAI22C,EAAsB5Y,GAAe2Y,EAG/DG,EAAcx1C,KAAK,CAACy1C,EAAQC,IAEhC,CAMA,OAJKF,EAAcp3C,QACjBo3C,EAAcx1C,KAAK,CAAC,EAAG,IAGlBw1C,CACT,EAEAb,aAAazsC,UAAUytC,iBAAmB,SAAUR,GAClD,IAAI92C,EACAwH,EAAMsvC,EAAU/2C,OAEpB,IAAKC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACxBw+B,mBAAmBL,QAAQ2Y,EAAU92C,IAIvC,OADA82C,EAAU/2C,OAAS,EACZ+2C,CACT,EAEAR,aAAazsC,UAAU0tC,cAAgB,SAAU3O,GAC/C,IAAI1oC,EACAI,EAwCAk3C,EACAx3C,EAvCJ,GAAIqJ,KAAKk/B,MAAQK,EAAe,CAC9B,IAAIppC,EAAI6J,KAAK7J,EAAE4jB,EAAI,IAAM,IAsBzB,GApBI5jB,EAAI,IACNA,GAAK,IAILU,EADEmJ,KAAKnJ,EAAEkjB,EAAI,EACT,EAAI5jB,EACC6J,KAAKnJ,EAAEkjB,EAAI,EAChB,EAAI5jB,EAEJ6J,KAAKnJ,EAAEkjB,EAAI5jB,IAIfc,EADE+I,KAAK/I,EAAE8iB,EAAI,EACT,EAAI5jB,EACC6J,KAAK/I,EAAE8iB,EAAI,EAChB,EAAI5jB,EAEJ6J,KAAK/I,EAAE8iB,EAAI5jB,GAGN,CACT,IAAI4B,EAAKlB,EACTA,EAAII,EACJA,EAAIc,CACN,CAEAlB,EAA4B,KAAxBqF,KAAK0b,MAAU,IAAJ/gB,GACfI,EAA4B,KAAxBiF,KAAK0b,MAAU,IAAJ3gB,GACf+I,KAAKutC,OAAS12C,EACdmJ,KAAKwtC,OAASv2C,CAChB,MACEJ,EAAImJ,KAAKutC,OACTt2C,EAAI+I,KAAKwtC,OAKX,IACIxwB,EACAC,EACAwwB,EACA3tB,EACAsuB,EALAjwC,EAAM6B,KAAK8d,OAAOpnB,OAMlBk3C,EAAsB,EAE1B,GAAI32C,IAAMJ,EACR,IAAKF,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACxBqJ,KAAK8d,OAAOnnB,GAAGysC,qBAAqBb,gBACpCviC,KAAK8d,OAAOnnB,GAAGwrC,MAAMjD,MAAO,EAC5Bl/B,KAAK8d,OAAOnnB,GAAGwrC,MAAMziC,MAAQM,KAAK8d,OAAOnnB,GAAGysC,qBAExCpjC,KAAKk/B,OACPl/B,KAAK8d,OAAOnnB,GAAG82C,UAAU/2C,OAAS,QAGjC,GAAY,IAANO,GAAiB,IAANJ,GAAiB,IAANI,GAAiB,IAANJ,GAyGvC,GAAImJ,KAAKk/B,KACd,IAAKvoC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EAGxBqJ,KAAK8d,OAAOnnB,GAAG82C,UAAU/2C,OAAS,EAClCsJ,KAAK8d,OAAOnnB,GAAGwrC,MAAMjD,MAAO,MA9GwB,CACtD,IACIvH,EACAyL,EAFAha,EAAW,GAIf,IAAKzyB,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EAGxB,IAFAghC,EAAY33B,KAAK8d,OAAOnnB,IAETwrC,MAAMjD,MAASl/B,KAAKk/B,MAASK,GAA4B,IAAXv/B,KAAKlF,EAE3D,CAKL,GAHAmiB,GADAkxB,EAAaxW,EAAUwK,MAAMziC,OACXg1B,QAClB0Z,EAAmB,GAEdzW,EAAUwK,MAAMjD,MAAQvH,EAAU8V,UAAU/2C,OAC/C03C,EAAmBzW,EAAUyW,qBACxB,CAGL,IAFAX,EAAYztC,KAAKiuC,iBAAiBtW,EAAU8V,WAEvCzwB,EAAI,EAAGA,EAAIC,EAAMD,GAAK,EACzB8C,EAAWma,IAAIvC,kBAAkByW,EAAWrwB,OAAOd,IACnDywB,EAAUn1C,KAAKwnB,GACfsuB,GAAoBtuB,EAASsV,YAG/BuC,EAAUyW,iBAAmBA,EAC7BzW,EAAU8V,UAAYA,CACxB,CAEAG,GAAuBQ,EACvBzW,EAAUwK,MAAMjD,MAAO,CACzB,MAvBEvH,EAAUwK,MAAMziC,MAAQi4B,EAAUyL,qBA0BtC,IAGIiL,EAHAN,EAASl3C,EACTm3C,EAAS/2C,EACT+9B,EAAc,EAGlB,IAAKr+B,EAAIwH,EAAM,EAAGxH,GAAK,EAAGA,GAAK,EAG7B,IAFAghC,EAAY33B,KAAK8d,OAAOnnB,IAEVwrC,MAAMjD,KAAM,CAaxB,KAZAkE,EAAuBzL,EAAUyL,sBACZb,gBAEN,IAAXviC,KAAKlF,GAAWqD,EAAM,GACxBkwC,EAAQruC,KAAK0tC,oBAAoB72C,EAAGI,EAAG0gC,EAAUyW,iBAAkBpZ,EAAa4Y,GAChF5Y,GAAe2C,EAAUyW,kBAEzBC,EAAQ,CAAC,CAACN,EAAQC,IAGpB/wB,EAAOoxB,EAAM33C,OAERsmB,EAAI,EAAGA,EAAIC,EAAMD,GAAK,EAAG,CAC5B+wB,EAASM,EAAMrxB,GAAG,GAClBgxB,EAASK,EAAMrxB,GAAG,GAClBoM,EAAS1yB,OAAS,EAEds3C,GAAU,EACZ5kB,EAAS9wB,KAAK,CACZzB,EAAG8gC,EAAUyW,iBAAmBL,EAChC92C,EAAG0gC,EAAUyW,iBAAmBJ,IAEzBD,GAAU,EACnB3kB,EAAS9wB,KAAK,CACZzB,EAAG8gC,EAAUyW,kBAAoBL,EAAS,GAC1C92C,EAAG0gC,EAAUyW,kBAAoBJ,EAAS,MAG5C5kB,EAAS9wB,KAAK,CACZzB,EAAG8gC,EAAUyW,iBAAmBL,EAChC92C,EAAG0gC,EAAUyW,mBAEfhlB,EAAS9wB,KAAK,CACZzB,EAAG,EACHI,EAAG0gC,EAAUyW,kBAAoBJ,EAAS,MAI9C,IAAIM,EAAgBtuC,KAAKuuC,UAAU5W,EAAWvO,EAAS,IAEvD,GAAIA,EAAS,GAAGvyB,IAAMuyB,EAAS,GAAGnyB,EAAG,CACnC,GAAImyB,EAAS1yB,OAAS,EAGpB,GAF4BihC,EAAUwK,MAAMziC,MAAMoe,OAAO6Z,EAAUwK,MAAMziC,MAAMg1B,QAAU,GAE/DzU,EAAG,CAC3B,IAAIuuB,EAAYF,EAAc/uC,MAC9BS,KAAKyuC,SAASH,EAAelL,GAC7BkL,EAAgBtuC,KAAKuuC,UAAU5W,EAAWvO,EAAS,GAAIolB,EACzD,MACExuC,KAAKyuC,SAASH,EAAelL,GAC7BkL,EAAgBtuC,KAAKuuC,UAAU5W,EAAWvO,EAAS,IAIvDppB,KAAKyuC,SAASH,EAAelL,EAC/B,CACF,CAEAzL,EAAUwK,MAAMziC,MAAQ0jC,CAC1B,CAEJ,CAQF,EAEA6J,aAAazsC,UAAUiuC,SAAW,SAAUC,EAAUtL,GACpD,IAAIzsC,EACAwH,EAAMuwC,EAASh4C,OAEnB,IAAKC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACxBysC,EAAqBd,SAASoM,EAAS/3C,GAE3C,EAEAs2C,aAAazsC,UAAUmuC,WAAa,SAAU3Y,EAAKC,EAAKC,EAAKC,EAAK8L,EAAWd,EAAKyN,GAChF3M,EAAUf,QAAQjL,EAAI,GAAIA,EAAI,GAAI,IAAKkL,GACvCc,EAAUf,QAAQhL,EAAI,GAAIA,EAAI,GAAI,IAAKiL,EAAM,GAEzCyN,GACF3M,EAAUf,QAAQlL,EAAI,GAAIA,EAAI,GAAI,IAAKmL,GAGzCc,EAAUf,QAAQ/K,EAAI,GAAIA,EAAI,GAAI,IAAKgL,EAAM,EAC/C,EAEA8L,aAAazsC,UAAUquC,oBAAsB,SAAUnc,EAAQuP,EAAWd,EAAKyN,GAC7E3M,EAAUf,QAAQxO,EAAO,GAAIA,EAAO,GAAI,IAAKyO,GAC7Cc,EAAUf,QAAQxO,EAAO,GAAIA,EAAO,GAAI,IAAKyO,EAAM,GAE/CyN,GACF3M,EAAUf,QAAQxO,EAAO,GAAIA,EAAO,GAAI,IAAKyO,GAG/Cc,EAAUf,QAAQxO,EAAO,GAAIA,EAAO,GAAI,IAAKyO,EAAM,EACrD,EAEA8L,aAAazsC,UAAU+tC,UAAY,SAAU5W,EAAWmX,EAAc7M,GACpE,IAEItrC,EAEAqmB,EACAC,EAEA8xB,EACAC,EACA9Z,EACAtJ,EAEAyL,EAZAoW,EAAY9V,EAAU8V,UACtBU,EAAaxW,EAAUwK,MAAMziC,MAAMoe,OAEnC3f,EAAMw5B,EAAUwK,MAAMziC,MAAMg1B,QAG5BM,EAAc,EAKdlX,EAAS,GAET8wB,GAAW,EAaf,IAXK3M,GAKH+M,EAAe/M,EAAUvN,QACzB2C,EAAU4K,EAAUvN,UALpBuN,EAAYD,UAAUnN,aACtBma,EAAe,EACf3X,EAAU,GAMZvZ,EAAOxlB,KAAK2pC,GAEPtrC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EAAG,CAK3B,IAJAu+B,EAAUuY,EAAU92C,GAAGu+B,QACvB+M,EAAUhiB,EAAIkuB,EAAWx3C,GAAGspB,EAC5BhD,EAAOkxB,EAAWx3C,GAAGspB,EAAIiV,EAAQx+B,OAASw+B,EAAQx+B,OAAS,EAEtDsmB,EAAI,EAAGA,EAAIC,EAAMD,GAAK,EAGzB,GAAIgY,GAFJ+Z,EAAoB7Z,EAAQlY,EAAI,IAEIgY,YAAc8Z,EAAaj4C,EAC7Dm+B,GAAe+Z,EAAkB/Z,YACjCiN,EAAUhiB,GAAI,MACT,IAAI+U,EAAc8Z,EAAa73C,EAAG,CACvCgrC,EAAUhiB,GAAI,EACd,KACF,CACM6uB,EAAaj4C,GAAKm+B,GAAe8Z,EAAa73C,GAAK+9B,EAAc+Z,EAAkB/Z,aACrFh1B,KAAK2uC,WAAWR,EAAWx3C,GAAGojB,EAAEiD,EAAI,GAAImxB,EAAWx3C,GAAGR,EAAE6mB,EAAI,GAAImxB,EAAWx3C,GAAGA,EAAEqmB,GAAImxB,EAAWx3C,GAAGojB,EAAEiD,GAAIilB,EAAW+M,EAAcJ,GACjIA,GAAW,IAEXhjB,EAAUqO,IAAIjC,cAAcmW,EAAWx3C,GAAGojB,EAAEiD,EAAI,GAAImxB,EAAWx3C,GAAGojB,EAAEiD,GAAImxB,EAAWx3C,GAAGR,EAAE6mB,EAAI,GAAImxB,EAAWx3C,GAAGA,EAAEqmB,IAAK8xB,EAAaj4C,EAAIm+B,GAAe+Z,EAAkB/Z,aAAc8Z,EAAa73C,EAAI+9B,GAAe+Z,EAAkB/Z,YAAaE,EAAQlY,EAAI,IAChQhd,KAAK6uC,oBAAoBjjB,EAASqW,EAAW+M,EAAcJ,GAE3DA,GAAW,EACX3M,EAAUhiB,GAAI,GAGhB+U,GAAe+Z,EAAkB/Z,YACjCga,GAAgB,CAClB,CAGF,GAAIb,EAAWx3C,GAAGspB,GAAKiV,EAAQx+B,OAAQ,CAGrC,GAFAq4C,EAAoB7Z,EAAQlY,EAAI,GAE5BgY,GAAe8Z,EAAa73C,EAAG,CACjC,IAAI2/B,EAAgB1B,EAAQlY,EAAI,GAAGgY,YAE/B8Z,EAAaj4C,GAAKm+B,GAAe8Z,EAAa73C,GAAK+9B,EAAc4B,GACnE52B,KAAK2uC,WAAWR,EAAWx3C,GAAGojB,EAAEiD,EAAI,GAAImxB,EAAWx3C,GAAGR,EAAE6mB,EAAI,GAAImxB,EAAWx3C,GAAGA,EAAE,GAAIw3C,EAAWx3C,GAAGojB,EAAE,GAAIkoB,EAAW+M,EAAcJ,GACjIA,GAAW,IAEXhjB,EAAUqO,IAAIjC,cAAcmW,EAAWx3C,GAAGojB,EAAEiD,EAAI,GAAImxB,EAAWx3C,GAAGojB,EAAE,GAAIo0B,EAAWx3C,GAAGR,EAAE6mB,EAAI,GAAImxB,EAAWx3C,GAAGA,EAAE,IAAKm4C,EAAaj4C,EAAIm+B,GAAe4B,GAAgBkY,EAAa73C,EAAI+9B,GAAe4B,EAAe1B,EAAQlY,EAAI,IAChOhd,KAAK6uC,oBAAoBjjB,EAASqW,EAAW+M,EAAcJ,GAE3DA,GAAW,EACX3M,EAAUhiB,GAAI,EAElB,MACEgiB,EAAUhiB,GAAI,EAGhB+U,GAAe+Z,EAAkB/Z,YACjCga,GAAgB,CAClB,CAOA,GALI/M,EAAUvN,UACZuN,EAAUf,QAAQe,EAAUloB,EAAEsd,GAAS,GAAI4K,EAAUloB,EAAEsd,GAAS,GAAI,IAAKA,GACzE4K,EAAUf,QAAQe,EAAUloB,EAAEkoB,EAAUvN,QAAU,GAAG,GAAIuN,EAAUloB,EAAEkoB,EAAUvN,QAAU,GAAG,GAAI,IAAKuN,EAAUvN,QAAU,IAGvHM,EAAc8Z,EAAa73C,EAC7B,MAGEN,EAAIwH,EAAM,IACZ8jC,EAAYD,UAAUnN,aACtB+Z,GAAW,EACX9wB,EAAOxlB,KAAK2pC,GACZ+M,EAAe,EAEnB,CAEA,OAAOlxB,CACT,EAIAvK,gBAAgB,CAACy5B,eAAgBE,wBAEjCA,uBAAuB1sC,UAAU2sC,uBAAyB,SAAU/c,EAAMpiB,GACxEhO,KAAK+/B,SAAW//B,KAAKstC,YACrBttC,KAAKivC,OAAS7O,gBAAgBC,QAAQjQ,EAAMpiB,EAAK0R,EAAG,EAAG,KAAM1f,MAC7DA,KAAK0gC,cAAgB1gC,KAAKivC,OAAO5P,gBAAgB3oC,MACnD,EAEAw2C,uBAAuB1sC,UAAU0uC,YAAc,SAAUhzB,EAAM+yB,GAC7D,IAAIzV,EAAUyV,EAAS,IACnBE,EAAc,CAAC,EAAG,GAClBC,EAAalzB,EAAKwY,QAClB/9B,EAAI,EAER,IAAKA,EAAI,EAAGA,EAAIy4C,EAAYz4C,GAAK,EAC/Bw4C,EAAY,IAAMjzB,EAAKnC,EAAEpjB,GAAG,GAC5Bw4C,EAAY,IAAMjzB,EAAKnC,EAAEpjB,GAAG,GAG9Bw4C,EAAY,IAAMC,EAClBD,EAAY,IAAMC,EAClB,IAEI/N,EACAC,EACAC,EACAC,EACAC,EACAC,EAPA2N,EAAarN,UAAUnN,aAS3B,IARAwa,EAAWpvB,EAAI/D,EAAK+D,EAQftpB,EAAI,EAAGA,EAAIy4C,EAAYz4C,GAAK,EAC/B0qC,EAAKnlB,EAAKnC,EAAEpjB,GAAG,IAAMw4C,EAAY,GAAKjzB,EAAKnC,EAAEpjB,GAAG,IAAM6iC,EACtD8H,EAAKplB,EAAKnC,EAAEpjB,GAAG,IAAMw4C,EAAY,GAAKjzB,EAAKnC,EAAEpjB,GAAG,IAAM6iC,EACtD+H,EAAKrlB,EAAK/lB,EAAEQ,GAAG,IAAMw4C,EAAY,GAAKjzB,EAAK/lB,EAAEQ,GAAG,KAAO6iC,EACvDgI,EAAKtlB,EAAK/lB,EAAEQ,GAAG,IAAMw4C,EAAY,GAAKjzB,EAAK/lB,EAAEQ,GAAG,KAAO6iC,EACvDiI,EAAKvlB,EAAKvlB,EAAEA,GAAG,IAAMw4C,EAAY,GAAKjzB,EAAKvlB,EAAEA,GAAG,KAAO6iC,EACvDkI,EAAKxlB,EAAKvlB,EAAEA,GAAG,IAAMw4C,EAAY,GAAKjzB,EAAKvlB,EAAEA,GAAG,KAAO6iC,EACvD6V,EAAWjO,YAAYC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAI/qC,GAGjD,OAAO04C,CACT,EAEAnC,uBAAuB1sC,UAAU0tC,cAAgB,SAAU3O,GACzD,IAAI4O,EACAx3C,EAEAqmB,EACAC,EAIE0a,EACAyL,EAPFjlC,EAAM6B,KAAK8d,OAAOpnB,OAGlBu4C,EAASjvC,KAAKivC,OAAOl1B,EAEzB,GAAe,IAAXk1B,EAIF,IAAKt4C,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EAAG,CAI3B,GAFAysC,GADAzL,EAAY33B,KAAK8d,OAAOnnB,IACSysC,qBAE1BzL,EAAUwK,MAAMjD,MAASl/B,KAAKk/B,MAASK,EAM5C,IALA6D,EAAqBb,gBACrB5K,EAAUwK,MAAMjD,MAAO,EACvBiP,EAAaxW,EAAUwK,MAAMziC,MAAMoe,OACnCb,EAAO0a,EAAUwK,MAAMziC,MAAMg1B,QAExB1X,EAAI,EAAGA,EAAIC,EAAMD,GAAK,EACzBomB,EAAqBd,SAAStiC,KAAKkvC,YAAYf,EAAWnxB,GAAIiyB,IAIlEtX,EAAUwK,MAAMziC,MAAQi4B,EAAUyL,oBACpC,CAGGpjC,KAAKygC,kBAAkB/pC,SAC1BsJ,KAAKk/B,MAAO,EAEhB,EAEA,IAAIoQ,yBAA2B,WAC7B,IAAIC,EAAgB,CAAC,EAAG,GA+KxB,SAASC,EAAkBpf,EAAMpiB,EAAMic,GAwBrC,GAvBAjqB,KAAKowB,KAAOA,EACZpwB,KAAKo/B,SAAW,EAChBp/B,KAAKy6B,SAAW,YAChBz6B,KAAKgO,KAAOA,EACZhO,KAAK+Z,EAAI,IAAIisB,OAEbhmC,KAAKyvC,IAAM,IAAIzJ,OACfhmC,KAAK0vC,uBAAyB,EAC9B1vC,KAAK4gC,6BAA6B3W,GAAamG,GAE3CpiB,EAAKpR,GAAKoR,EAAKpR,EAAE/F,GACnBmJ,KAAK2vC,GAAKvP,gBAAgBC,QAAQjQ,EAAMpiB,EAAKpR,EAAEk2B,EAAG,EAAG,EAAG9yB,MACxDA,KAAK4vC,GAAKxP,gBAAgBC,QAAQjQ,EAAMpiB,EAAKpR,EAAE/C,EAAG,EAAG,EAAGmG,MAEpDgO,EAAKpR,EAAEgtC,IACT5pC,KAAK6vC,GAAKzP,gBAAgBC,QAAQjQ,EAAMpiB,EAAKpR,EAAEgtC,EAAG,EAAG,EAAG5pC,QAG1DA,KAAKpD,EAAIwjC,gBAAgBC,QAAQjQ,EAAMpiB,EAAKpR,GAAK,CAC/CsgB,EAAG,CAAC,EAAG,EAAG,IACT,EAAG,EAAGld,MAGPgO,EAAK8hC,GAAI,CAKX,GAJA9vC,KAAK8vC,GAAK1P,gBAAgBC,QAAQjQ,EAAMpiB,EAAK8hC,GAAI,EAAGv4B,UAAWvX,MAC/DA,KAAK+vC,GAAK3P,gBAAgBC,QAAQjQ,EAAMpiB,EAAK+hC,GAAI,EAAGx4B,UAAWvX,MAC/DA,KAAKgwC,GAAK5P,gBAAgBC,QAAQjQ,EAAMpiB,EAAKgiC,GAAI,EAAGz4B,UAAWvX,MAE3DgO,EAAK22B,GAAGznB,EAAE,GAAGoe,GAAI,CACnB,IAAI3kC,EACAwH,EAAM6P,EAAK22B,GAAGznB,EAAExmB,OAEpB,IAAKC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACxBqX,EAAK22B,GAAGznB,EAAEvmB,GAAG+U,GAAK,KAClBsC,EAAK22B,GAAGznB,EAAEvmB,GAAG2kC,GAAK,IAEtB,CAEAt7B,KAAK2kC,GAAKvE,gBAAgBC,QAAQjQ,EAAMpiB,EAAK22B,GAAI,EAAGptB,UAAWvX,MAE/DA,KAAK2kC,GAAGtI,IAAK,CACf,MACEr8B,KAAKga,EAAIomB,gBAAgBC,QAAQjQ,EAAMpiB,EAAKgM,GAAK,CAC/CkD,EAAG,GACF,EAAG3F,UAAWvX,MAGfgO,EAAK2R,KACP3f,KAAK2f,GAAKygB,gBAAgBC,QAAQjQ,EAAMpiB,EAAK2R,GAAI,EAAGpI,UAAWvX,MAC/DA,KAAK4f,GAAKwgB,gBAAgBC,QAAQjQ,EAAMpiB,EAAK4R,GAAI,EAAGrI,UAAWvX,OAGjEA,KAAK0f,EAAI0gB,gBAAgBC,QAAQjQ,EAAMpiB,EAAK0R,GAAK,CAC/CxC,EAAG,CAAC,EAAG,EAAG,IACT,EAAG,EAAGld,MACTA,KAAKnJ,EAAIupC,gBAAgBC,QAAQjQ,EAAMpiB,EAAKnX,GAAK,CAC/CqmB,EAAG,CAAC,IAAK,IAAK,MACb,EAAG,IAAMld,MAERgO,EAAK7X,EACP6J,KAAK7J,EAAIiqC,gBAAgBC,QAAQjQ,EAAMpiB,EAAK7X,EAAG,EAAG,IAAMi6B,GAExDpwB,KAAK7J,EAAI,CACP+oC,MAAM,EACNnlB,EAAG,GAIP/Z,KAAKiwC,UAAW,EAEXjwC,KAAKygC,kBAAkB/pC,QAC1BsJ,KAAK+/B,UAAS,EAElB,CAgBA,OAdAyP,EAAkBhvC,UAAY,CAC5B0vC,cA1PF,SAAuBC,GACrB,IAAIjR,EAAOl/B,KAAKk/B,KAChBl/B,KAAK2gC,2BACL3gC,KAAKk/B,KAAOl/B,KAAKk/B,MAAQA,EAErBl/B,KAAK0f,GACPywB,EAAI/I,WAAWpnC,KAAK0f,EAAE3F,EAAE,IAAK/Z,KAAK0f,EAAE3F,EAAE,GAAI/Z,KAAK0f,EAAE3F,EAAE,IAGjD/Z,KAAKnJ,GACPs5C,EAAIlJ,MAAMjnC,KAAKnJ,EAAEkjB,EAAE,GAAI/Z,KAAKnJ,EAAEkjB,EAAE,GAAI/Z,KAAKnJ,EAAEkjB,EAAE,IAG3C/Z,KAAK2f,IACPwwB,EAAInJ,cAAchnC,KAAK2f,GAAG5F,EAAG/Z,KAAK4f,GAAG7F,GAGnC/Z,KAAKga,EACPm2B,EAAI7J,QAAQtmC,KAAKga,EAAED,GAEnBo2B,EAAIvJ,SAAS5mC,KAAKgwC,GAAGj2B,GAAG4sB,QAAQ3mC,KAAK+vC,GAAGh2B,GAAG2sB,QAAQ1mC,KAAK8vC,GAAG/1B,GAAG6sB,SAAS5mC,KAAK2kC,GAAG5qB,EAAE,IAAI4sB,QAAQ3mC,KAAK2kC,GAAG5qB,EAAE,IAAI2sB,QAAQ1mC,KAAK2kC,GAAG5qB,EAAE,IAG3H/Z,KAAKgO,KAAKpR,EAAE/F,EACVmJ,KAAKgO,KAAKpR,EAAEgtC,EACduG,EAAI/I,UAAUpnC,KAAK2vC,GAAG51B,EAAG/Z,KAAK4vC,GAAG71B,GAAI/Z,KAAK6vC,GAAG91B,GAE7Co2B,EAAI/I,UAAUpnC,KAAK2vC,GAAG51B,EAAG/Z,KAAK4vC,GAAG71B,EAAG,GAGtCo2B,EAAI/I,UAAUpnC,KAAKpD,EAAEmd,EAAE,GAAI/Z,KAAKpD,EAAEmd,EAAE,IAAK/Z,KAAKpD,EAAEmd,EAAE,GAEtD,EA2NEgmB,SAzNF,SAAqBqQ,GACnB,GAAIpwC,KAAKowB,KAAK/F,WAAW+U,UAAYp/B,KAAKo/B,QAA1C,CAWA,GAPIp/B,KAAKiwC,WACPjwC,KAAKqwC,qBACLrwC,KAAKiwC,UAAW,GAGlBjwC,KAAK2gC,2BAED3gC,KAAKk/B,MAAQkR,EAAa,CAC5B,IAAI7nB,EAqBJ,GApBAvoB,KAAK+Z,EAAE2vB,eAAe1pC,KAAKyvC,IAAI/mC,OAE3B1I,KAAK0vC,uBAAyB,GAChC1vC,KAAK+Z,EAAEqtB,WAAWpnC,KAAK0f,EAAE3F,EAAE,IAAK/Z,KAAK0f,EAAE3F,EAAE,GAAI/Z,KAAK0f,EAAE3F,EAAE,IAGpD/Z,KAAK0vC,uBAAyB,GAChC1vC,KAAK+Z,EAAEktB,MAAMjnC,KAAKnJ,EAAEkjB,EAAE,GAAI/Z,KAAKnJ,EAAEkjB,EAAE,GAAI/Z,KAAKnJ,EAAEkjB,EAAE,IAG9C/Z,KAAK2f,IAAM3f,KAAK0vC,uBAAyB,GAC3C1vC,KAAK+Z,EAAEitB,cAAchnC,KAAK2f,GAAG5F,EAAG/Z,KAAK4f,GAAG7F,GAGtC/Z,KAAKga,GAAKha,KAAK0vC,uBAAyB,EAC1C1vC,KAAK+Z,EAAEusB,QAAQtmC,KAAKga,EAAED,IACZ/Z,KAAKga,GAAKha,KAAK0vC,uBAAyB,GAClD1vC,KAAK+Z,EAAE6sB,SAAS5mC,KAAKgwC,GAAGj2B,GAAG4sB,QAAQ3mC,KAAK+vC,GAAGh2B,GAAG2sB,QAAQ1mC,KAAK8vC,GAAG/1B,GAAG6sB,SAAS5mC,KAAK2kC,GAAG5qB,EAAE,IAAI4sB,QAAQ3mC,KAAK2kC,GAAG5qB,EAAE,IAAI2sB,QAAQ1mC,KAAK2kC,GAAG5qB,EAAE,IAG9H/Z,KAAKswC,aAAc,CACrB,IAAIvK,EACAwK,EAGJ,GAFAhoB,EAAYvoB,KAAKowB,KAAK/F,WAAW9B,UAE7BvoB,KAAKpD,GAAKoD,KAAKpD,EAAEq+B,WAAaj7B,KAAKpD,EAAE4zC,eACnCxwC,KAAKpD,EAAEiiC,SAASjD,UAAY57B,KAAKpD,EAAE49B,YAAcx6B,KAAKpD,EAAEq+B,UAAU,GAAG7+B,GACvE2pC,EAAK/lC,KAAKpD,EAAE4zC,gBAAgBxwC,KAAKpD,EAAEq+B,UAAU,GAAG7+B,EAAI,KAAQmsB,EAAW,GACvEgoB,EAAKvwC,KAAKpD,EAAE4zC,eAAexwC,KAAKpD,EAAEq+B,UAAU,GAAG7+B,EAAImsB,EAAW,IACrDvoB,KAAKpD,EAAEiiC,SAASjD,UAAY57B,KAAKpD,EAAE49B,YAAcx6B,KAAKpD,EAAEq+B,UAAUj7B,KAAKpD,EAAEq+B,UAAUvkC,OAAS,GAAG0F,GACxG2pC,EAAK/lC,KAAKpD,EAAE4zC,eAAexwC,KAAKpD,EAAEq+B,UAAUj7B,KAAKpD,EAAEq+B,UAAUvkC,OAAS,GAAG0F,EAAImsB,EAAW,GACxFgoB,EAAKvwC,KAAKpD,EAAE4zC,gBAAgBxwC,KAAKpD,EAAEq+B,UAAUj7B,KAAKpD,EAAEq+B,UAAUvkC,OAAS,GAAG0F,EAAI,KAAQmsB,EAAW,KAEjGwd,EAAK/lC,KAAKpD,EAAE89B,GACZ6V,EAAKvwC,KAAKpD,EAAE4zC,gBAAgBxwC,KAAKpD,EAAEiiC,SAASjD,UAAY57B,KAAKpD,EAAE49B,WAAa,KAAQjS,EAAWvoB,KAAKpD,EAAE49B,kBAEnG,GAAIx6B,KAAK2vC,IAAM3vC,KAAK2vC,GAAG1U,WAAaj7B,KAAK4vC,GAAG3U,WAAaj7B,KAAK2vC,GAAGa,gBAAkBxwC,KAAK4vC,GAAGY,eAAgB,CAChHzK,EAAK,GACLwK,EAAK,GACL,IAAIZ,EAAK3vC,KAAK2vC,GACVC,EAAK5vC,KAAK4vC,GAEVD,EAAG9Q,SAASjD,UAAY+T,EAAGnV,YAAcmV,EAAG1U,UAAU,GAAG7+B,GAC3D2pC,EAAG,GAAK4J,EAAGa,gBAAgBb,EAAG1U,UAAU,GAAG7+B,EAAI,KAAQmsB,EAAW,GAClEwd,EAAG,GAAK6J,EAAGY,gBAAgBZ,EAAG3U,UAAU,GAAG7+B,EAAI,KAAQmsB,EAAW,GAClEgoB,EAAG,GAAKZ,EAAGa,eAAeb,EAAG1U,UAAU,GAAG7+B,EAAImsB,EAAW,GACzDgoB,EAAG,GAAKX,EAAGY,eAAeZ,EAAG3U,UAAU,GAAG7+B,EAAImsB,EAAW,IAChDonB,EAAG9Q,SAASjD,UAAY+T,EAAGnV,YAAcmV,EAAG1U,UAAU0U,EAAG1U,UAAUvkC,OAAS,GAAG0F,GACxF2pC,EAAG,GAAK4J,EAAGa,eAAeb,EAAG1U,UAAU0U,EAAG1U,UAAUvkC,OAAS,GAAG0F,EAAImsB,EAAW,GAC/Ewd,EAAG,GAAK6J,EAAGY,eAAeZ,EAAG3U,UAAU2U,EAAG3U,UAAUvkC,OAAS,GAAG0F,EAAImsB,EAAW,GAC/EgoB,EAAG,GAAKZ,EAAGa,gBAAgBb,EAAG1U,UAAU0U,EAAG1U,UAAUvkC,OAAS,GAAG0F,EAAI,KAAQmsB,EAAW,GACxFgoB,EAAG,GAAKX,EAAGY,gBAAgBZ,EAAG3U,UAAU2U,EAAG3U,UAAUvkC,OAAS,GAAG0F,EAAI,KAAQmsB,EAAW,KAExFwd,EAAK,CAAC4J,EAAGjV,GAAIkV,EAAGlV,IAChB6V,EAAG,GAAKZ,EAAGa,gBAAgBb,EAAG9Q,SAASjD,UAAY+T,EAAGnV,WAAa,KAAQjS,EAAWonB,EAAGnV,YACzF+V,EAAG,GAAKX,EAAGY,gBAAgBZ,EAAG/Q,SAASjD,UAAYgU,EAAGpV,WAAa,KAAQjS,EAAWqnB,EAAGpV,YAE7F,MAEEuL,EADAwK,EAAKhB,EAIPvvC,KAAK+Z,EAAEusB,QAAQpqC,KAAK6hC,MAAMgI,EAAG,GAAKwK,EAAG,GAAIxK,EAAG,GAAKwK,EAAG,IACtD,CAEIvwC,KAAKgO,KAAKpR,GAAKoD,KAAKgO,KAAKpR,EAAE/F,EACzBmJ,KAAKgO,KAAKpR,EAAEgtC,EACd5pC,KAAK+Z,EAAEqtB,UAAUpnC,KAAK2vC,GAAG51B,EAAG/Z,KAAK4vC,GAAG71B,GAAI/Z,KAAK6vC,GAAG91B,GAEhD/Z,KAAK+Z,EAAEqtB,UAAUpnC,KAAK2vC,GAAG51B,EAAG/Z,KAAK4vC,GAAG71B,EAAG,GAGzC/Z,KAAK+Z,EAAEqtB,UAAUpnC,KAAKpD,EAAEmd,EAAE,GAAI/Z,KAAKpD,EAAEmd,EAAE,IAAK/Z,KAAKpD,EAAEmd,EAAE,GAEzD,CAEA/Z,KAAKo/B,QAAUp/B,KAAKowB,KAAK/F,WAAW+U,OAvFpC,CAwFF,EA+HEiR,mBA7HF,WACE,IAAKrwC,KAAK0f,EAAExC,IACVld,KAAKyvC,IAAIrI,WAAWpnC,KAAK0f,EAAE3F,EAAE,IAAK/Z,KAAK0f,EAAE3F,EAAE,GAAI/Z,KAAK0f,EAAE3F,EAAE,IACxD/Z,KAAK0vC,uBAAyB,GAK3B1vC,KAAKnJ,EAAEwoC,gBAAgB3oC,QAA5B,CAOA,GANEsJ,KAAKyvC,IAAIxI,MAAMjnC,KAAKnJ,EAAEkjB,EAAE,GAAI/Z,KAAKnJ,EAAEkjB,EAAE,GAAI/Z,KAAKnJ,EAAEkjB,EAAE,IAClD/Z,KAAK0vC,uBAAyB,EAK5B1vC,KAAK2f,GAAI,CACX,GAAK3f,KAAK2f,GAAG0f,gBAAgB3oC,QAAWsJ,KAAK4f,GAAGyf,gBAAgB3oC,OAI9D,OAHAsJ,KAAKyvC,IAAIzI,cAAchnC,KAAK2f,GAAG5F,EAAG/Z,KAAK4f,GAAG7F,GAC1C/Z,KAAK0vC,uBAAyB,CAIlC,CAEI1vC,KAAKga,EACFha,KAAKga,EAAEqlB,gBAAgB3oC,SAC1BsJ,KAAKyvC,IAAInJ,QAAQtmC,KAAKga,EAAED,GACxB/Z,KAAK0vC,uBAAyB,GAEtB1vC,KAAKgwC,GAAG3Q,gBAAgB3oC,QAAWsJ,KAAK+vC,GAAG1Q,gBAAgB3oC,QAAWsJ,KAAK8vC,GAAGzQ,gBAAgB3oC,QAAWsJ,KAAK2kC,GAAGtF,gBAAgB3oC,SAC3IsJ,KAAKyvC,IAAI7I,SAAS5mC,KAAKgwC,GAAGj2B,GAAG4sB,QAAQ3mC,KAAK+vC,GAAGh2B,GAAG2sB,QAAQ1mC,KAAK8vC,GAAG/1B,GAAG6sB,SAAS5mC,KAAK2kC,GAAG5qB,EAAE,IAAI4sB,QAAQ3mC,KAAK2kC,GAAG5qB,EAAE,IAAI2sB,QAAQ1mC,KAAK2kC,GAAG5qB,EAAE,IAClI/Z,KAAK0vC,uBAAyB,EAlBhC,CAoBF,EA6FEe,WA3FF,WACE,GA4FFl9B,gBAAgB,CAACitB,0BAA2BgP,GAC5CA,EAAkBhvC,UAAUo/B,mBA1F5B,SAA4B/rB,GAC1B7T,KAAK0wC,oBAAoB78B,GAEzB7T,KAAKowB,KAAKwP,mBAAmB/rB,GAC7B7T,KAAKiwC,UAAW,CAClB,EAsFAT,EAAkBhvC,UAAUkwC,oBAAsBlQ,yBAAyBhgC,UAAUo/B,mBAM9E,CACL+Q,qBALF,SAA8BvgB,EAAMpiB,EAAMic,GACxC,OAAO,IAAIulB,EAAkBpf,EAAMpiB,EAAMic,EAC3C,EAKF,CA7Q+B,GA+Q/B,SAAS2mB,mBAAoB,CAkS7B,SAASC,uBAAwB,CA0HjC,SAASC,WAAWpxB,EAAGzF,GACrB,OAAyB,IAAlB/d,KAAKS,IAAI+iB,EAAIzF,IAAe/d,KAAK8a,IAAI9a,KAAKS,IAAI+iB,GAAIxjB,KAAKS,IAAIsd,GACpE,CAEA,SAAS82B,UAAU55C,GACjB,OAAO+E,KAAKS,IAAIxF,IAAM,IACxB,CAEA,SAAS65C,KAAKlN,EAAIC,EAAIkL,GACpB,OAAOnL,GAAM,EAAImL,GAAUlL,EAAKkL,CAClC,CAEA,SAASgC,UAAUnN,EAAIC,EAAIkL,GACzB,MAAO,CAAC+B,KAAKlN,EAAG,GAAIC,EAAG,GAAIkL,GAAS+B,KAAKlN,EAAG,GAAIC,EAAG,GAAIkL,GACzD,CAEA,SAASiC,UAAUxxB,EAAGzF,EAAGgG,GAEvB,GAAU,IAANP,EAAS,MAAO,GACpB,IAAI7oB,EAAIojB,EAAIA,EAAI,EAAIyF,EAAIO,EAExB,GAAIppB,EAAI,EAAG,MAAO,GAClB,IAAIs6C,GAAcl3B,GAAK,EAAIyF,GAE3B,GAAU,IAAN7oB,EAAS,MAAO,CAACs6C,GACrB,IAAIC,EAAQl1C,KAAKya,KAAK9f,IAAM,EAAI6oB,GAEhC,MAAO,CAACyxB,EAAaC,EAAOD,EAAaC,EAC3C,CAEA,SAASC,uBAAuBvN,EAAIC,EAAIuE,EAAIgJ,GAC1C,MAAO,CAAO,EAAIvN,EAATD,EAAc,EAAIwE,EAAKgJ,EAAI,EAAIxN,EAAK,EAAIC,EAAK,EAAIuE,GAAK,EAAIxE,EAAK,EAAIC,EAAID,EAClF,CAEA,SAASyN,YAAY30C,GACnB,OAAO,IAAI40C,iBAAiB50C,EAAGA,EAAGA,EAAGA,GAAG,EAC1C,CAEA,SAAS40C,iBAAiB1N,EAAIC,EAAIuE,EAAIgJ,EAAIG,GACpCA,GAAaC,WAAW5N,EAAIC,KAC9BA,EAAKkN,UAAUnN,EAAIwN,EAAI,EAAI,IAGzBG,GAAaC,WAAWpJ,EAAIgJ,KAC9BhJ,EAAK2I,UAAUnN,EAAIwN,EAAI,EAAI,IAG7B,IAAIK,EAASN,uBAAuBvN,EAAG,GAAIC,EAAG,GAAIuE,EAAG,GAAIgJ,EAAG,IACxDM,EAASP,uBAAuBvN,EAAG,GAAIC,EAAG,GAAIuE,EAAG,GAAIgJ,EAAG,IAC5DtxC,KAAK0f,EAAI,CAACiyB,EAAO,GAAIC,EAAO,IAC5B5xC,KAAKia,EAAI,CAAC03B,EAAO,GAAIC,EAAO,IAC5B5xC,KAAKigB,EAAI,CAAC0xB,EAAO,GAAIC,EAAO,IAC5B5xC,KAAK1F,EAAI,CAACq3C,EAAO,GAAIC,EAAO,IAC5B5xC,KAAK0yB,OAAS,CAACoR,EAAIC,EAAIuE,EAAIgJ,EAC7B,CAkDA,SAASO,QAAQ5X,EAAKhc,GACpB,IAAIjH,EAAMijB,EAAIvH,OAAO,GAAGzU,GACpBnH,EAAMmjB,EAAIvH,OAAOuH,EAAIvH,OAAOh8B,OAAS,GAAGunB,GAE5C,GAAIjH,EAAMF,EAAK,CACb,IAAI7f,EAAI6f,EACRA,EAAME,EACNA,EAAM/f,CACR,CAKA,IAFA,IAAIE,EAAI+5C,UAAU,EAAIjX,EAAIva,EAAEzB,GAAO,EAAIgc,EAAIhgB,EAAEgE,GAAOgc,EAAIha,EAAEhC,IAEjDtnB,EAAI,EAAGA,EAAIQ,EAAET,OAAQC,GAAK,EACjC,GAAIQ,EAAER,GAAK,GAAKQ,EAAER,GAAK,EAAG,CACxB,IAAIuH,EAAM+7B,EAAIzD,MAAMr/B,EAAER,IAAIsnB,GACtB/f,EAAM8Y,EAAKA,EAAM9Y,EAAaA,EAAM4Y,IAAKA,EAAM5Y,EACrD,CAGF,MAAO,CACL8Y,IAAKA,EACLF,IAAKA,EAET,CAuBA,SAASg7B,cAAc7X,EAAK7B,EAAI2Z,GAC9B,IAAIC,EAAM/X,EAAIgY,cACd,MAAO,CACLC,GAAIF,EAAIE,GACRC,GAAIH,EAAIG,GACRtvB,MAAOmvB,EAAInvB,MACXC,OAAQkvB,EAAIlvB,OACZmX,IAAKA,EACL79B,GAAIg8B,EAAK2Z,GAAM,EACf3Z,GAAIA,EACJ2Z,GAAIA,EAER,CAEA,SAASK,UAAUpkC,GACjB,IAAI3C,EAAQ2C,EAAKisB,IAAI5uB,MAAM,IAC3B,MAAO,CAACymC,cAAczmC,EAAM,GAAI2C,EAAKoqB,GAAIpqB,EAAK5R,GAAI01C,cAAczmC,EAAM,GAAI2C,EAAK5R,EAAG4R,EAAK+jC,IACzF,CAEA,SAASM,aAAa5J,EAAIhB,GACxB,OAAiC,EAA1BvrC,KAAKS,IAAI8rC,EAAGyJ,GAAKzK,EAAGyK,IAAUzJ,EAAG5lB,MAAQ4kB,EAAG5kB,OAAmC,EAA1B3mB,KAAKS,IAAI8rC,EAAG0J,GAAK1K,EAAG0K,IAAU1J,EAAG3lB,OAAS2kB,EAAG3kB,MAC3G,CAEA,SAASwvB,eAAe5J,EAAIhB,EAAI6K,EAAOC,EAAWC,EAAeC,GAC/D,GAAKL,aAAa3J,EAAIhB,GAEtB,GAAI6K,GAASG,GAAgBhK,EAAG7lB,OAAS2vB,GAAa9J,EAAG5lB,QAAU0vB,GAAa9K,EAAG7kB,OAAS2vB,GAAa9K,EAAG5kB,QAAU0vB,EACpHC,EAAcn6C,KAAK,CAACowC,EAAGtsC,EAAGsrC,EAAGtrC,QAD/B,CAKA,IAAIu2C,EAAMP,UAAU1J,GAChBkK,EAAMR,UAAU1K,GACpB4K,eAAeK,EAAI,GAAIC,EAAI,GAAIL,EAAQ,EAAGC,EAAWC,EAAeC,GACpEJ,eAAeK,EAAI,GAAIC,EAAI,GAAIL,EAAQ,EAAGC,EAAWC,EAAeC,GACpEJ,eAAeK,EAAI,GAAIC,EAAI,GAAIL,EAAQ,EAAGC,EAAWC,EAAeC,GACpEJ,eAAeK,EAAI,GAAIC,EAAI,GAAIL,EAAQ,EAAGC,EAAWC,EAAeC,EAPpE,CAQF,CAoBA,SAASG,aAAanzB,EAAGzF,GACvB,MAAO,CAACyF,EAAE,GAAKzF,EAAE,GAAKyF,EAAE,GAAKzF,EAAE,GAAIyF,EAAE,GAAKzF,EAAE,GAAKyF,EAAE,GAAKzF,EAAE,GAAIyF,EAAE,GAAKzF,EAAE,GAAKyF,EAAE,GAAKzF,EAAE,GACvF,CAEA,SAAS64B,iBAAiBC,EAAQC,EAAMC,EAAQC,GAC9C,IAAInN,EAAK,CAACgN,EAAO,GAAIA,EAAO,GAAI,GAC5BxC,EAAK,CAACyC,EAAK,GAAIA,EAAK,GAAI,GACxBG,EAAK,CAACF,EAAO,GAAIA,EAAO,GAAI,GAC5BG,EAAK,CAACF,EAAK,GAAIA,EAAK,GAAI,GACxBl5B,EAAI64B,aAAaA,aAAa9M,EAAIwK,GAAKsC,aAAaM,EAAIC,IAC5D,OAAIrC,UAAU/2B,EAAE,IAAY,KACrB,CAACA,EAAE,GAAKA,EAAE,GAAIA,EAAE,GAAKA,EAAE,GAChC,CAEA,SAASq5B,YAAYz2C,EAAGooC,EAAOtuC,GAC7B,MAAO,CAACkG,EAAE,GAAKV,KAAKkiC,IAAI4G,GAAStuC,EAAQkG,EAAE,GAAKV,KAAKshC,IAAIwH,GAAStuC,EACpE,CAEA,SAAS48C,cAAcvP,EAAIuE,GACzB,OAAOpsC,KAAKq3C,MAAMxP,EAAG,GAAKuE,EAAG,GAAIvE,EAAG,GAAKuE,EAAG,GAC9C,CAEA,SAASoJ,WAAW3N,EAAIuE,GACtB,OAAOwI,WAAW/M,EAAG,GAAIuE,EAAG,KAAOwI,WAAW/M,EAAG,GAAIuE,EAAG,GAC1D,CAEA,SAASkL,iBAAkB,CAY3B,SAASC,SAASC,EAAcld,EAAOwO,EAAOjsB,EAAW46B,EAAWC,EAAcC,GAChF,IAAIC,EAAO9O,EAAQ9oC,KAAKsb,GAAK,EACzBu8B,EAAO/O,EAAQ9oC,KAAKsb,GAAK,EACzBm4B,EAAKnZ,EAAM,GAAKt6B,KAAKkiC,IAAI4G,GAASjsB,EAAY46B,EAC9C/D,EAAKpZ,EAAM,GAAKt6B,KAAKshC,IAAIwH,GAASjsB,EAAY46B,EAClDD,EAAatS,YAAYuO,EAAIC,EAAID,EAAKzzC,KAAKkiC,IAAI0V,GAAQF,EAAchE,EAAK1zC,KAAKshC,IAAIsW,GAAQF,EAAcjE,EAAKzzC,KAAKkiC,IAAI2V,GAAQF,EAAajE,EAAK1zC,KAAKshC,IAAIuW,GAAQF,EAAaH,EAAah9C,SAC9L,CAEA,SAASs9C,uBAAuBhe,EAAKC,GACnC,IAAIge,EAAS,CAAChe,EAAI,GAAKD,EAAI,GAAIC,EAAI,GAAKD,EAAI,IACxCke,EAAiB,IAAVh4C,KAAKsb,GAEhB,MADoB,CAACtb,KAAKkiC,IAAI8V,GAAOD,EAAO,GAAK/3C,KAAKshC,IAAI0W,GAAOD,EAAO,GAAI/3C,KAAKshC,IAAI0W,GAAOD,EAAO,GAAK/3C,KAAKkiC,IAAI8V,GAAOD,EAAO,GAEjI,CAEA,SAASE,mBAAmBj4B,EAAMk4B,GAChC,IAAIC,EAAoB,IAARD,EAAYl4B,EAAKxlB,SAAW,EAAI09C,EAAM,EAClDE,GAAaF,EAAM,GAAKl4B,EAAKxlB,SAG7B69C,EAAUP,uBAFE93B,EAAKnC,EAAEs6B,GACPn4B,EAAKnC,EAAEu6B,IAEvB,OAAOp4C,KAAK6hC,MAAM,EAAG,GAAK7hC,KAAK6hC,MAAMwW,EAAQ,GAAIA,EAAQ,GAC3D,CAEA,SAASC,aAAad,EAAcx3B,EAAMk4B,EAAKT,EAAWc,EAAWC,EAAW37B,GAC9E,IAAIisB,EAAQmP,mBAAmBj4B,EAAMk4B,GACjC5d,EAAQta,EAAKnC,EAAEq6B,EAAMl4B,EAAKwY,SAC1BigB,EAAYz4B,EAAKnC,EAAU,IAARq6B,EAAYl4B,EAAKwY,QAAU,EAAI0f,EAAM,GACxDQ,EAAY14B,EAAKnC,GAAGq6B,EAAM,GAAKl4B,EAAKwY,SACpCmgB,EAAyB,IAAdH,EAAkBx4C,KAAKya,KAAKza,KAAKsQ,IAAIgqB,EAAM,GAAKme,EAAU,GAAI,GAAKz4C,KAAKsQ,IAAIgqB,EAAM,GAAKme,EAAU,GAAI,IAAM,EACtHG,EAAyB,IAAdJ,EAAkBx4C,KAAKya,KAAKza,KAAKsQ,IAAIgqB,EAAM,GAAKoe,EAAU,GAAI,GAAK14C,KAAKsQ,IAAIgqB,EAAM,GAAKoe,EAAU,GAAI,IAAM,EAC1HnB,SAASC,EAAcx3B,EAAKnC,EAAEq6B,EAAMl4B,EAAKwY,SAAUsQ,EAAOjsB,EAAW46B,EAAWmB,GAA8B,GAAjBL,EAAY,IAASI,GAA8B,GAAjBJ,EAAY,IAASC,EACtJ,CAEA,SAASK,cAAcrB,EAAc9nB,EAAS+nB,EAAWc,EAAWC,EAAW37B,GAC7E,IAAK,IAAIpiB,EAAI,EAAGA,EAAI89C,EAAW99C,GAAK,EAAG,CACrC,IAAIyF,GAAKzF,EAAI,IAAM89C,EAAY,GAC3BO,EAAqB,IAAdN,EAAkBx4C,KAAKya,KAAKza,KAAKsQ,IAAIof,EAAQ8G,OAAO,GAAG,GAAK9G,EAAQ8G,OAAO,GAAG,GAAI,GAAKx2B,KAAKsQ,IAAIof,EAAQ8G,OAAO,GAAG,GAAK9G,EAAQ8G,OAAO,GAAG,GAAI,IAAM,EAC1JsS,EAAQpZ,EAAQqpB,YAAY74C,GAEhCq3C,SAASC,EADG9nB,EAAQ4K,MAAMp6B,GACI4oC,EAAOjsB,EAAW46B,EAAWqB,GAA0B,GAAjBP,EAAY,IAASO,GAA0B,GAAjBP,EAAY,IAASC,GACvH37B,GAAaA,CACf,CAEA,OAAOA,CACT,CAqEA,SAASm8B,aAAanR,EAAIuE,EAAI2G,GAC5B,IAAIjK,EAAQ9oC,KAAK6hC,MAAMuK,EAAG,GAAKvE,EAAG,GAAIuE,EAAG,GAAKvE,EAAG,IACjD,MAAO,CAACsP,YAAYtP,EAAIiB,EAAOiK,GAASoE,YAAY/K,EAAItD,EAAOiK,GACjE,CAEA,SAASkG,cAAcvpB,EAASqjB,GAC9B,IAAInL,EACAsR,EACAC,EACAC,EACAC,EACAjE,EACAr6C,EAEJ6sC,GADA7sC,EAAIi+C,aAAatpB,EAAQ8G,OAAO,GAAI9G,EAAQ8G,OAAO,GAAIuc,IAChD,GACPmG,EAAMn+C,EAAE,GAERo+C,GADAp+C,EAAIi+C,aAAatpB,EAAQ8G,OAAO,GAAI9G,EAAQ8G,OAAO,GAAIuc,IAC/C,GACRqG,EAAMr+C,EAAE,GAERs+C,GADAt+C,EAAIi+C,aAAatpB,EAAQ8G,OAAO,GAAI9G,EAAQ8G,OAAO,GAAIuc,IAC/C,GACRqC,EAAKr6C,EAAE,GACP,IAAI8sC,EAAK+O,iBAAiBhP,EAAIsR,EAAKC,EAAKC,GAC7B,OAAPvR,IAAaA,EAAKqR,GACtB,IAAI9M,EAAKwK,iBAAiByC,EAAKjE,EAAI+D,EAAKC,GAExC,OADW,OAAPhN,IAAaA,EAAKiN,GACf,IAAI/D,iBAAiB1N,EAAIC,EAAIuE,EAAIgJ,EAC1C,CAEA,SAASkE,UAAU9B,EAAc+B,EAAMC,EAAMC,EAAUC,GACrD,IAAI9R,EAAK2R,EAAK/iB,OAAO,GACjBqR,EAAK2R,EAAKhjB,OAAO,GAErB,GAAiB,IAAbijB,EAAgB,OAAO7R,EAE3B,GAAI4N,WAAW5N,EAAIC,GAAK,OAAOD,EAE/B,GAAiB,IAAb6R,EAAgB,CAClB,IAAIE,GAAYJ,EAAKK,aAAa,GAC9BC,GAAWL,EAAKI,aAAa,GAAK55C,KAAKsb,GACvCw+B,EAASlD,iBAAiBhP,EAAIuP,YAAYvP,EAAI+R,EAAW35C,KAAKsb,GAAK,EAAG,KAAMusB,EAAIsP,YAAYtP,EAAI8R,EAAW35C,KAAKsb,GAAK,EAAG,MACxHy+B,EAASD,EAAS1C,cAAc0C,EAAQlS,GAAMwP,cAAcxP,EAAIC,GAAM,EACtEqC,EAAMiN,YAAYvP,EAAI+R,EAAU,EAAII,EAASx+B,aAIjD,OAHAi8B,EAAaxS,QAAQkF,EAAI,GAAIA,EAAI,GAAI,IAAKsN,EAAah9C,SAAW,GAClE0vC,EAAMiN,YAAYtP,EAAIgS,EAAS,EAAIE,EAASx+B,aAC5Ci8B,EAAatS,YAAY2C,EAAG,GAAIA,EAAG,GAAIA,EAAG,GAAIA,EAAG,GAAIqC,EAAI,GAAIA,EAAI,GAAIsN,EAAah9C,UAC3EqtC,CACT,CAGA,IAEImS,EAAepD,iBAFVpB,WAAW5N,EAAI2R,EAAK/iB,OAAO,IAAM+iB,EAAK/iB,OAAO,GAAK+iB,EAAK/iB,OAAO,GAE/BoR,EAAIC,EADnC2N,WAAW3N,EAAI2R,EAAKhjB,OAAO,IAAMgjB,EAAKhjB,OAAO,GAAKgjB,EAAKhjB,OAAO,IAGvE,OAAIwjB,GAAgB5C,cAAc4C,EAAcpS,GAAM8R,GACpDlC,EAAatS,YAAY8U,EAAa,GAAIA,EAAa,GAAIA,EAAa,GAAIA,EAAa,GAAIA,EAAa,GAAIA,EAAa,GAAIxC,EAAah9C,UACrIw/C,GAGFpS,CACT,CAEA,SAASqS,gBAAgBz2B,EAAGzF,GAC1B,IAAIm8B,EAAY12B,EAAE+yB,cAAcx4B,GAEhC,OADIm8B,EAAU1/C,QAAUo6C,WAAWsF,EAAU,GAAG,GAAI,IAAIA,EAAUvqB,QAC9DuqB,EAAU1/C,OAAe0/C,EAAU,GAChC,IACT,CAEA,SAASC,yBAAyB32B,EAAGzF,GACnC,IAAIq8B,EAAO52B,EAAEjmB,QACT88C,EAAOt8B,EAAExgB,QACT28C,EAAYD,gBAAgBz2B,EAAEA,EAAEhpB,OAAS,GAAIujB,EAAE,IAOnD,OALIm8B,IACFE,EAAK52B,EAAEhpB,OAAS,GAAKgpB,EAAEA,EAAEhpB,OAAS,GAAG2U,MAAM+qC,EAAU,IAAI,GACzDG,EAAK,GAAKt8B,EAAE,GAAG5O,MAAM+qC,EAAU,IAAI,IAGjC12B,EAAEhpB,OAAS,GAAKujB,EAAEvjB,OAAS,IAC7B0/C,EAAYD,gBAAgBz2B,EAAE,GAAIzF,EAAEA,EAAEvjB,OAAS,KAGtC,CAAC,CAACgpB,EAAE,GAAGrU,MAAM+qC,EAAU,IAAI,IAAK,CAACn8B,EAAEA,EAAEvjB,OAAS,GAAG2U,MAAM+qC,EAAU,IAAI,KAIzE,CAACE,EAAMC,EAChB,CAEA,SAASC,mBAAmBptB,GAG1B,IAFA,IAAInyB,EAEKN,EAAI,EAAGA,EAAIyyB,EAAS1yB,OAAQC,GAAK,EACxCM,EAAIo/C,yBAAyBjtB,EAASzyB,EAAI,GAAIyyB,EAASzyB,IACvDyyB,EAASzyB,EAAI,GAAKM,EAAE,GACpBmyB,EAASzyB,GAAKM,EAAE,GASlB,OANImyB,EAAS1yB,OAAS,IACpBO,EAAIo/C,yBAAyBjtB,EAASA,EAAS1yB,OAAS,GAAI0yB,EAAS,IACrEA,EAASA,EAAS1yB,OAAS,GAAKO,EAAE,GAClCmyB,EAAS,GAAKnyB,EAAE,IAGXmyB,CACT,CAEA,SAASqtB,mBAAmB7qB,EAASqjB,GAOnC,IACI/2B,EACAw+B,EACArrC,EACAsrC,EAJAC,EAAOhrB,EAAQirB,mBAMnB,GAAoB,IAAhBD,EAAKlgD,OACP,MAAO,CAACy+C,cAAcvpB,EAASqjB,IAGjC,GAAoB,IAAhB2H,EAAKlgD,QAAgBo6C,WAAW8F,EAAK,GAAI,GAI3C,OAFA1+B,GADA7M,EAAQugB,EAAQvgB,MAAMurC,EAAK,KACd,GACbF,EAAQrrC,EAAM,GACP,CAAC8pC,cAAcj9B,EAAM+2B,GAASkG,cAAcuB,EAAOzH,IAI5D/2B,GADA7M,EAAQugB,EAAQvgB,MAAMurC,EAAK,KACd,GACb,IAAIx6C,GAAKw6C,EAAK,GAAKA,EAAK,KAAO,EAAIA,EAAK,IAIxC,OAFAD,GADAtrC,EAAQA,EAAM,GAAGA,MAAMjP,IACX,GACZs6C,EAAQrrC,EAAM,GACP,CAAC8pC,cAAcj9B,EAAM+2B,GAASkG,cAAcwB,EAAK1H,GAASkG,cAAcuB,EAAOzH,GACxF,CAEA,SAAS6H,qBAAsB,CAwG/B,SAASC,kBAAkBC,GAOzB,IANA,IAAIC,EAASD,EAASE,OAASF,EAASE,OAAO7rC,MAAM,KAAO,GACxD8rC,EAAU,SACVD,EAAS,SACT/4C,EAAM84C,EAAOvgD,OAGRC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EAG5B,OAFYsgD,EAAOtgD,GAAGygD,eAGpB,IAAK,SACHF,EAAS,SACT,MAEF,IAAK,OACHC,EAAU,MACV,MAEF,IAAK,QACHA,EAAU,MACV,MAEF,IAAK,SACHA,EAAU,MACV,MAEF,IAAK,UACL,IAAK,SACHA,EAAU,MACV,MAEF,IAAK,QACL,IAAK,OACHA,EAAU,MAQhB,MAAO,CACLp/B,MAAOm/B,EACPG,OAAQL,EAASG,SAAWA,EAEhC,CAriCA5jC,gBAAgB,CAACy5B,eAAgB4D,kBAEjCA,iBAAiBpwC,UAAU2sC,uBAAyB,SAAU/c,EAAMpiB,GAClEhO,KAAK+/B,SAAW//B,KAAKstC,YACrBttC,KAAKigB,EAAImgB,gBAAgBC,QAAQjQ,EAAMpiB,EAAKiS,EAAG,EAAG,KAAMjgB,MACxDA,KAAK7J,EAAIiqC,gBAAgBC,QAAQjQ,EAAMpiB,EAAK7X,EAAG,EAAG,KAAM6J,MACxDA,KAAKs3C,GAAKhI,yBAAyBqB,qBAAqBvgB,EAAMpiB,EAAKspC,GAAIt3C,MACvEA,KAAKu3C,GAAKnX,gBAAgBC,QAAQjQ,EAAMpiB,EAAKspC,GAAGC,GAAI,EAAG,IAAMv3C,MAC7DA,KAAKw3C,GAAKpX,gBAAgBC,QAAQjQ,EAAMpiB,EAAKspC,GAAGE,GAAI,EAAG,IAAMx3C,MAC7DA,KAAKgO,KAAOA,EAEPhO,KAAKygC,kBAAkB/pC,QAC1BsJ,KAAK+/B,UAAS,GAGhB//B,KAAK0gC,cAAgB1gC,KAAKygC,kBAAkB/pC,OAC5CsJ,KAAKy3C,QAAU,IAAIzR,OACnBhmC,KAAK03C,QAAU,IAAI1R,OACnBhmC,KAAK23C,QAAU,IAAI3R,OACnBhmC,KAAK43C,QAAU,IAAI5R,OACnBhmC,KAAK63C,OAAS,IAAI7R,MACpB,EAEA4K,iBAAiBpwC,UAAUs3C,gBAAkB,SAAUL,EAASC,EAASC,EAASpQ,EAAWlR,EAAM0hB,GACjG,IAAIvgB,EAAMugB,GAAO,EAAI,EACjBC,EAASzQ,EAAU1wC,EAAEkjB,EAAE,IAAM,EAAIwtB,EAAU1wC,EAAEkjB,EAAE,KAAO,EAAIsc,GAC1D4hB,EAAS1Q,EAAU1wC,EAAEkjB,EAAE,IAAM,EAAIwtB,EAAU1wC,EAAEkjB,EAAE,KAAO,EAAIsc,GAC9DohB,EAAQrQ,UAAUG,EAAU3qC,EAAEmd,EAAE,GAAKyd,EAAMnB,EAAMkR,EAAU3qC,EAAEmd,EAAE,GAAKyd,EAAMnB,EAAMkR,EAAU3qC,EAAEmd,EAAE,IAC9F29B,EAAQtQ,WAAWG,EAAU7nB,EAAE3F,EAAE,IAAKwtB,EAAU7nB,EAAE3F,EAAE,GAAIwtB,EAAU7nB,EAAE3F,EAAE,IACtE29B,EAAQpR,QAAQiB,EAAUvtB,EAAED,EAAIyd,EAAMnB,GACtCqhB,EAAQtQ,UAAUG,EAAU7nB,EAAE3F,EAAE,GAAIwtB,EAAU7nB,EAAE3F,EAAE,GAAIwtB,EAAU7nB,EAAE3F,EAAE,IACpE49B,EAAQvQ,WAAWG,EAAU7nB,EAAE3F,EAAE,IAAKwtB,EAAU7nB,EAAE3F,EAAE,GAAIwtB,EAAU7nB,EAAE3F,EAAE,IACtE49B,EAAQ1Q,MAAM8Q,EAAM,EAAIC,EAASA,EAAQD,EAAM,EAAIE,EAASA,GAC5DN,EAAQvQ,UAAUG,EAAU7nB,EAAE3F,EAAE,GAAIwtB,EAAU7nB,EAAE3F,EAAE,GAAIwtB,EAAU7nB,EAAE3F,EAAE,GACtE,EAEA62B,iBAAiBpwC,UAAU+tB,KAAO,SAAU6B,EAAMv4B,EAAKspC,EAAK+W,GAY1D,IAXAl4C,KAAKowB,KAAOA,EACZpwB,KAAKnI,IAAMA,EACXmI,KAAKmhC,IAAMA,EACXnhC,KAAKk4C,UAAYA,EACjBl4C,KAAKm4C,eAAiB,EACtBn4C,KAAKo4C,UAAY,GACjBp4C,KAAKq4C,QAAU,GACfr4C,KAAKo/B,SAAW,EAChBp/B,KAAK4gC,6BAA6BxQ,GAClCpwB,KAAKmtC,uBAAuB/c,EAAMv4B,EAAIspC,IAE/BA,EAAM,GACXA,GAAO,EAEPnhC,KAAKo4C,UAAU5nC,QAAQ3Y,EAAIspC,IAGzBnhC,KAAKygC,kBAAkB/pC,OACzBsJ,KAAKkd,GAAI,EAETld,KAAK+/B,UAAS,EAElB,EAEA6Q,iBAAiBpwC,UAAU83C,cAAgB,SAAUC,GACnD,IAAI5hD,EACAwH,EAAMo6C,EAAS7hD,OAEnB,IAAKC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACxB4hD,EAAS5hD,GAAG6hD,YAAa,EAEF,OAAnBD,EAAS5hD,GAAG+mB,IACd1d,KAAKs4C,cAAcC,EAAS5hD,GAAGN,GAGrC,EAEAu6C,iBAAiBpwC,UAAUi4C,cAAgB,SAAUF,GACnD,IAAIG,EAAct6B,KAAK1Q,MAAM0Q,KAAKC,UAAUk6B,IAE5C,OADAv4C,KAAKs4C,cAAcI,GACZA,CACT,EAEA9H,iBAAiBpwC,UAAUm4C,kBAAoB,SAAUJ,EAAUK,GACjE,IAAIjiD,EACAwH,EAAMo6C,EAAS7hD,OAEnB,IAAKC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACxB4hD,EAAS5hD,GAAGkiD,QAAUD,EAEC,OAAnBL,EAAS5hD,GAAG+mB,IACd1d,KAAK24C,kBAAkBJ,EAAS5hD,GAAGN,GAAIuiD,EAG7C,EAEAhI,iBAAiBpwC,UAAU0tC,cAAgB,SAAU3O,GACnD,IAAIuZ,EACAC,EACApiD,EACA6gC,EACAwhB,EACAC,GAAc,EAElB,GAAIj5C,KAAKk/B,MAAQK,EAAe,CAC9B,IAmEIqZ,EAnEAM,EAASh9C,KAAKi9C,KAAKn5C,KAAKigB,EAAElG,GAE9B,GAAI/Z,KAAKq4C,QAAQ3hD,OAASwiD,EAAQ,CAChC,KAAOl5C,KAAKq4C,QAAQ3hD,OAASwiD,GAAQ,CACnC,IAAIE,EAAQ,CACV/iD,GAAI2J,KAAKy4C,cAAcz4C,KAAKo4C,WAC5B16B,GAAI,MAEN07B,EAAM/iD,GAAGiC,KAAK,CACZonB,EAAG,CACDA,EAAG,EACH25B,GAAI,EACJn8B,EAAG,CAAC,EAAG,IAETwK,GAAI,YACJvxB,EAAG,CACDupB,EAAG,EACH25B,GAAI,EACJn8B,EAAG,KAELtgB,EAAG,CACD8iB,EAAG,EACH25B,GAAI,EACJn8B,EAAG,CAAC,EAAG,IAETlD,EAAG,CACD0F,EAAG,EACH25B,GAAI,EACJn8B,EAAG,CAAC,CACFrmB,EAAG,EACHI,EAAG,EACHmF,EAAG,GACF,CACDvF,EAAG,EACHI,EAAG,EACHmF,EAAG,KAGPvF,EAAG,CACD6oB,EAAG,EACH25B,GAAI,EACJn8B,EAAG,CAAC,IAAK,MAEX0C,GAAI,CACFF,EAAG,EACH25B,GAAI,EACJn8B,EAAG,GAELyC,GAAI,CACFD,EAAG,EACH25B,GAAI,EACJn8B,EAAG,GAELQ,GAAI,OAEN1d,KAAKnI,IAAIyuB,OAAO,EAAG,EAAG8yB,GAEtBp5C,KAAKq4C,QAAQ/xB,OAAO,EAAG,EAAG8yB,GAE1Bp5C,KAAKm4C,gBAAkB,CACzB,CAEAn4C,KAAKowB,KAAKkpB,eACVL,GAAc,CAChB,CAKA,IAHAD,EAAO,EAGFriD,EAAI,EAAGA,GAAKqJ,KAAKq4C,QAAQ3hD,OAAS,EAAGC,GAAK,EAAG,CAKhD,GAJAiiD,EAAaI,EAAOE,EACpBl5C,KAAKq4C,QAAQ1hD,GAAGkiD,QAAUD,EAC1B54C,KAAK24C,kBAAkB34C,KAAKq4C,QAAQ1hD,GAAGN,GAAIuiD,IAEtCA,EAAY,CACf,IAAIW,EAAQv5C,KAAKk4C,UAAUvhD,GAAGN,GAC1BmjD,EAAgBD,EAAMA,EAAM7iD,OAAS,GAEJ,IAAjC8iD,EAAcjS,UAAUhoB,GAAGxF,GAC7By/B,EAAcjS,UAAUhoB,GAAG2f,MAAO,EAClCsa,EAAcjS,UAAUhoB,GAAGxF,EAAI,GAE/By/B,EAAcjS,UAAUhoB,GAAG2f,MAAO,CAEtC,CAEA8Z,GAAQ,CACV,CAEAh5C,KAAKm4C,eAAiBe,EAEtB,IAAI5+B,EAASta,KAAK7J,EAAE4jB,EAChB0/B,EAAen/B,EAAS,EACxBo/B,EAAcp/B,EAAS,EAAIpe,KAAKC,MAAMme,GAAUpe,KAAKi9C,KAAK7+B,GAC1Dq/B,EAAS35C,KAAKy3C,QAAQ/uC,MACtBkxC,EAAS55C,KAAK03C,QAAQhvC,MACtBmxC,EAAS75C,KAAK23C,QAAQjvC,MAC1B1I,KAAKy3C,QAAQjyC,QACbxF,KAAK03C,QAAQlyC,QACbxF,KAAK23C,QAAQnyC,QACbxF,KAAK43C,QAAQpyC,QACbxF,KAAK63C,OAAOryC,QACZ,IA2BIwX,EACAC,EA5BA68B,EAAY,EAEhB,GAAIx/B,EAAS,EAAG,CACd,KAAOw/B,EAAYJ,GACjB15C,KAAK83C,gBAAgB93C,KAAKy3C,QAASz3C,KAAK03C,QAAS13C,KAAK23C,QAAS33C,KAAKs3C,GAAI,GAAG,GAC3EwC,GAAa,EAGXL,IACFz5C,KAAK83C,gBAAgB93C,KAAKy3C,QAASz3C,KAAK03C,QAAS13C,KAAK23C,QAAS33C,KAAKs3C,GAAImC,GAAc,GACtFK,GAAaL,EAEjB,MAAO,GAAIn/B,EAAS,EAAG,CACrB,KAAOw/B,EAAYJ,GACjB15C,KAAK83C,gBAAgB93C,KAAKy3C,QAASz3C,KAAK03C,QAAS13C,KAAK23C,QAAS33C,KAAKs3C,GAAI,GAAG,GAC3EwC,GAAa,EAGXL,IACFz5C,KAAK83C,gBAAgB93C,KAAKy3C,QAASz3C,KAAK03C,QAAS13C,KAAK23C,QAAS33C,KAAKs3C,IAAKmC,GAAc,GACvFK,GAAaL,EAEjB,CAQA,IANA9iD,EAAoB,IAAhBqJ,KAAKgO,KAAKlT,EAAU,EAAIkF,KAAKm4C,eAAiB,EAClD3gB,EAAsB,IAAhBx3B,KAAKgO,KAAKlT,EAAU,GAAK,EAC/Bk+C,EAAOh5C,KAAKm4C,eAILa,GAAM,CAQX,GALA/7B,GADA87B,GADAD,EAAQ94C,KAAKk4C,UAAUvhD,GAAGN,IACHyiD,EAAMpiD,OAAS,GAAG6wC,UAAUwS,OAAOhgC,EAAErR,OACtChS,OACtBoiD,EAAMA,EAAMpiD,OAAS,GAAG6wC,UAAUwS,OAAO7a,MAAO,EAChD4Z,EAAMA,EAAMpiD,OAAS,GAAG6wC,UAAUhoB,GAAG2f,MAAO,EAC5C4Z,EAAMA,EAAMpiD,OAAS,GAAG6wC,UAAUhoB,GAAGxF,EAA4B,IAAxB/Z,KAAKm4C,eAAuBn4C,KAAKu3C,GAAGx9B,EAAI/Z,KAAKu3C,GAAGx9B,GAAK/Z,KAAKw3C,GAAGz9B,EAAI/Z,KAAKu3C,GAAGx9B,IAAMpjB,GAAKqJ,KAAKm4C,eAAiB,IAEjI,IAAd2B,EAAiB,CASnB,KARU,IAANnjD,GAAmB,IAAR6gC,GAAa7gC,IAAMqJ,KAAKm4C,eAAiB,IAAc,IAAT3gB,IAC3Dx3B,KAAK83C,gBAAgB93C,KAAKy3C,QAASz3C,KAAK03C,QAAS13C,KAAK23C,QAAS33C,KAAKs3C,GAAI,GAAG,GAG7Et3C,KAAK63C,OAAOtQ,UAAUqS,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,IAAKA,EAAO,IAAKA,EAAO,IAAKA,EAAO,IAAKA,EAAO,IAAKA,EAAO,KACvM55C,KAAK63C,OAAOtQ,UAAUsS,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,IAAKA,EAAO,IAAKA,EAAO,IAAKA,EAAO,IAAKA,EAAO,IAAKA,EAAO,KACvM75C,KAAK63C,OAAOtQ,UAAUoS,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,IAAKA,EAAO,IAAKA,EAAO,IAAKA,EAAO,IAAKA,EAAO,IAAKA,EAAO,KAElM38B,EAAI,EAAGA,EAAIC,EAAMD,GAAK,EACzB+7B,EAAe/7B,GAAKhd,KAAK63C,OAAOnvC,MAAMsU,GAGxChd,KAAK63C,OAAOryC,OACd,MAGE,IAFAxF,KAAK63C,OAAOryC,QAEPwX,EAAI,EAAGA,EAAIC,EAAMD,GAAK,EACzB+7B,EAAe/7B,GAAKhd,KAAK63C,OAAOnvC,MAAMsU,GAI1C88B,GAAa,EACbd,GAAQ,EACRriD,GAAK6gC,CACP,CACF,MAKE,IAJAwhB,EAAOh5C,KAAKm4C,eACZxhD,EAAI,EACJ6gC,EAAM,EAECwhB,GAELD,GADAD,EAAQ94C,KAAKk4C,UAAUvhD,GAAGN,IACHyiD,EAAMpiD,OAAS,GAAG6wC,UAAUwS,OAAOhgC,EAAErR,MAC5DowC,EAAMA,EAAMpiD,OAAS,GAAG6wC,UAAUwS,OAAO7a,MAAO,EAChD4Z,EAAMA,EAAMpiD,OAAS,GAAG6wC,UAAUhoB,GAAG2f,MAAO,EAC5C8Z,GAAQ,EACRriD,GAAK6gC,EAIT,OAAOyhB,CACT,EAEArI,iBAAiBpwC,UAAU8hC,SAAW,WAAa,EAInD/uB,gBAAgB,CAACy5B,eAAgB6D,sBAEjCA,qBAAqBrwC,UAAU2sC,uBAAyB,SAAU/c,EAAMpiB,GACtEhO,KAAK+/B,SAAW//B,KAAKstC,YACrBttC,KAAKg6C,GAAK5Z,gBAAgBC,QAAQjQ,EAAMpiB,EAAKgM,EAAG,EAAG,KAAMha,MACzDA,KAAK0gC,cAAgB1gC,KAAKg6C,GAAG3a,gBAAgB3oC,MAC/C,EAEAm6C,qBAAqBrwC,UAAU0uC,YAAc,SAAUhzB,EAAMtE,GAC3D,IAEIjhB,EAFA04C,EAAarN,UAAUnN,aAC3Bwa,EAAWpvB,EAAI/D,EAAK+D,EAEpB,IACIg6B,EACAC,EACAC,EACAC,EACAC,EACAC,EAEAjZ,EACAC,EACAC,EACAC,EACAC,EACAC,EAbAvjC,EAAM+d,EAAKwY,QAOXnnB,EAAQ,EAQZ,IAAK5W,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACxBsjD,EAAW/9B,EAAKnC,EAAEpjB,GAClBwjD,EAAWj+B,EAAK/lB,EAAEQ,GAClBujD,EAAWh+B,EAAKvlB,EAAEA,GAEdsjD,EAAS,KAAOE,EAAS,IAAMF,EAAS,KAAOE,EAAS,IAAMF,EAAS,KAAOC,EAAS,IAAMD,EAAS,KAAOC,EAAS,GAC7G,IAANvjD,GAAWA,IAAMwH,EAAM,GAAO+d,EAAK+D,GASpCm6B,EADQ,IAANzjD,EACQulB,EAAKnC,EAAE5b,EAAM,GAEb+d,EAAKnC,EAAEpjB,EAAI,GAIvB2jD,GADAD,EAAWn+C,KAAKya,KAAKza,KAAKsQ,IAAIytC,EAAS,GAAKG,EAAQ,GAAI,GAAKl+C,KAAKsQ,IAAIytC,EAAS,GAAKG,EAAQ,GAAI,KACxEl+C,KAAK8a,IAAIqjC,EAAW,EAAGziC,GAASyiC,EAAW,EAEnEhZ,EADAI,EAAKwY,EAAS,IAAMG,EAAQ,GAAKH,EAAS,IAAMK,EAGhDhZ,EADAI,EAAKuY,EAAS,IAAMA,EAAS,GAAKG,EAAQ,IAAME,EAEhD/Y,EAAKF,GAAMA,EAAK4Y,EAAS,IAAMxiC,YAC/B+pB,EAAKF,GAAMA,EAAK2Y,EAAS,IAAMxiC,YAC/B43B,EAAWjO,YAAYC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIn0B,GAC/CA,GAAS,EAGP6sC,EADEzjD,IAAMwH,EAAM,EACJ+d,EAAKnC,EAAE,GAEPmC,EAAKnC,EAAEpjB,EAAI,GAIvB2jD,GADAD,EAAWn+C,KAAKya,KAAKza,KAAKsQ,IAAIytC,EAAS,GAAKG,EAAQ,GAAI,GAAKl+C,KAAKsQ,IAAIytC,EAAS,GAAKG,EAAQ,GAAI,KACxEl+C,KAAK8a,IAAIqjC,EAAW,EAAGziC,GAASyiC,EAAW,EAEnEhZ,EADAE,EAAK0Y,EAAS,IAAMG,EAAQ,GAAKH,EAAS,IAAMK,EAGhDhZ,EADAE,EAAKyY,EAAS,IAAMG,EAAQ,GAAKH,EAAS,IAAMK,EAEhD7Y,EAAKJ,GAAMA,EAAK4Y,EAAS,IAAMxiC,YAC/BiqB,EAAKJ,GAAMA,EAAK2Y,EAAS,IAAMxiC,YAC/B43B,EAAWjO,YAAYC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EAAIn0B,GAC/CA,GAAS,IAvCT8hC,EAAWjO,YAAY6Y,EAAS,GAAIA,EAAS,GAAIE,EAAS,GAAIA,EAAS,GAAID,EAAS,GAAIA,EAAS,GAAI3sC,GAKrGA,GAAS,IAqCX8hC,EAAWjO,YAAYllB,EAAKnC,EAAEpjB,GAAG,GAAIulB,EAAKnC,EAAEpjB,GAAG,GAAIulB,EAAK/lB,EAAEQ,GAAG,GAAIulB,EAAK/lB,EAAEQ,GAAG,GAAIulB,EAAKvlB,EAAEA,GAAG,GAAIulB,EAAKvlB,EAAEA,GAAG,GAAI4W,GAC3GA,GAAS,GAIb,OAAO8hC,CACT,EAEAwB,qBAAqBrwC,UAAU0tC,cAAgB,SAAU3O,GACvD,IAAI4O,EACAx3C,EAEAqmB,EACAC,EAIE0a,EACAyL,EAPFjlC,EAAM6B,KAAK8d,OAAOpnB,OAGlBsjD,EAAKh6C,KAAKg6C,GAAGjgC,EAEjB,GAAW,IAAPigC,EAIF,IAAKrjD,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EAAG,CAI3B,GAFAysC,GADAzL,EAAY33B,KAAK8d,OAAOnnB,IACSysC,qBAE1BzL,EAAUwK,MAAMjD,MAASl/B,KAAKk/B,MAASK,EAM5C,IALA6D,EAAqBb,gBACrB5K,EAAUwK,MAAMjD,MAAO,EACvBiP,EAAaxW,EAAUwK,MAAMziC,MAAMoe,OACnCb,EAAO0a,EAAUwK,MAAMziC,MAAMg1B,QAExB1X,EAAI,EAAGA,EAAIC,EAAMD,GAAK,EACzBomB,EAAqBd,SAAStiC,KAAKkvC,YAAYf,EAAWnxB,GAAIg9B,IAIlEriB,EAAUwK,MAAMziC,MAAQi4B,EAAUyL,oBACpC,CAGGpjC,KAAKygC,kBAAkB/pC,SAC1BsJ,KAAKk/B,MAAO,EAEhB,EA0DAsS,iBAAiBhxC,UAAUg2B,MAAQ,SAAUp6B,GAC3C,MAAO,GAAG4D,KAAK0f,EAAE,GAAKtjB,EAAI4D,KAAKia,EAAE,IAAM7d,EAAI4D,KAAKigB,EAAE,IAAM7jB,EAAI4D,KAAK1F,EAAE,KAAM0F,KAAK0f,EAAE,GAAKtjB,EAAI4D,KAAKia,EAAE,IAAM7d,EAAI4D,KAAKigB,EAAE,IAAM7jB,EAAI4D,KAAK1F,EAAE,GACpI,EAEAk3C,iBAAiBhxC,UAAU+5C,WAAa,SAAUn+C,GAChD,MAAO,EAAE,EAAIA,EAAI4D,KAAK0f,EAAE,GAAK,EAAI1f,KAAKia,EAAE,IAAM7d,EAAI4D,KAAKigB,EAAE,IAAK,EAAI7jB,EAAI4D,KAAK0f,EAAE,GAAK,EAAI1f,KAAKia,EAAE,IAAM7d,EAAI4D,KAAKigB,EAAE,GAChH,EAEAuxB,iBAAiBhxC,UAAUs1C,aAAe,SAAU15C,GAClD,IAAIQ,EAAIoD,KAAKu6C,WAAWn+C,GACxB,OAAOF,KAAK6hC,MAAMnhC,EAAE,GAAIA,EAAE,GAC5B,EAEA40C,iBAAiBhxC,UAAUy0C,YAAc,SAAU74C,GACjD,IAAIQ,EAAIoD,KAAKu6C,WAAWn+C,GACxB,OAAOF,KAAK6hC,MAAMnhC,EAAE,GAAIA,EAAE,GAC5B,EAEA40C,iBAAiBhxC,UAAUq2C,iBAAmB,WAC5C,IAAI2D,EAAQx6C,KAAK0f,EAAE,GAAK1f,KAAKia,EAAE,GAAKja,KAAK0f,EAAE,GAAK1f,KAAKia,EAAE,GACvD,GAAI82B,UAAUyJ,GAAQ,MAAO,GAC7B,IAAIC,GAAS,IAAOz6C,KAAK0f,EAAE,GAAK1f,KAAKigB,EAAE,GAAKjgB,KAAK0f,EAAE,GAAK1f,KAAKigB,EAAE,IAAMu6B,EACjEE,EAASD,EAAQA,EAAQ,EAAI,GAAKz6C,KAAKia,EAAE,GAAKja,KAAKigB,EAAE,GAAKjgB,KAAKia,EAAE,GAAKja,KAAKigB,EAAE,IAAMu6B,EACvF,GAAIE,EAAS,EAAG,MAAO,GACvB,IAAIzuC,EAAO/P,KAAKya,KAAK+jC,GAErB,OAAI3J,UAAU9kC,GACRA,EAAO,GAAKA,EAAO,EAAU,CAACwuC,GAC3B,GAGF,CAACA,EAAQxuC,EAAMwuC,EAAQxuC,GAAM0uC,QAAO,SAAU3gC,GACnD,OAAOA,EAAI,GAAKA,EAAI,CACtB,GACF,EAEAw3B,iBAAiBhxC,UAAU6K,MAAQ,SAAUjP,GAC3C,GAAIA,GAAK,EAAG,MAAO,CAACm1C,YAAYvxC,KAAK0yB,OAAO,IAAK1yB,MACjD,GAAI5D,GAAK,EAAG,MAAO,CAAC4D,KAAMuxC,YAAYvxC,KAAK0yB,OAAO1yB,KAAK0yB,OAAOh8B,OAAS,KACvE,IAAIkkD,EAAM3J,UAAUjxC,KAAK0yB,OAAO,GAAI1yB,KAAK0yB,OAAO,GAAIt2B,GAChDy+C,EAAM5J,UAAUjxC,KAAK0yB,OAAO,GAAI1yB,KAAK0yB,OAAO,GAAIt2B,GAChDuuC,EAAMsG,UAAUjxC,KAAK0yB,OAAO,GAAI1yB,KAAK0yB,OAAO,GAAIt2B,GAChD0+C,EAAM7J,UAAU2J,EAAKC,EAAKz+C,GAC1B2+C,EAAM9J,UAAU4J,EAAKlQ,EAAKvuC,GAC1Bk1C,EAAKL,UAAU6J,EAAKC,EAAK3+C,GAC7B,MAAO,CAAC,IAAIo1C,iBAAiBxxC,KAAK0yB,OAAO,GAAIkoB,EAAKE,EAAKxJ,GAAI,GAAO,IAAIE,iBAAiBF,EAAIyJ,EAAKpQ,EAAK3qC,KAAK0yB,OAAO,IAAI,GACvH,EA4BA8e,iBAAiBhxC,UAAUw6C,OAAS,WAClC,MAAO,CACLloB,EAAG+e,QAAQ7xC,KAAM,GACjBnG,EAAGg4C,QAAQ7xC,KAAM,GAErB,EAEAwxC,iBAAiBhxC,UAAUyxC,YAAc,WACvC,IAAI+I,EAASh7C,KAAKg7C,SAClB,MAAO,CACL9iC,KAAM8iC,EAAOloB,EAAE9b,IACf0/B,MAAOsE,EAAOloB,EAAEhc,IAChBmB,IAAK+iC,EAAOnhD,EAAEmd,IACdikC,OAAQD,EAAOnhD,EAAEid,IACjB+L,MAAOm4B,EAAOloB,EAAEhc,IAAMkkC,EAAOloB,EAAE9b,IAC/B8L,OAAQk4B,EAAOnhD,EAAEid,IAAMkkC,EAAOnhD,EAAEmd,IAChCk7B,IAAK8I,EAAOloB,EAAEhc,IAAMkkC,EAAOloB,EAAE9b,KAAO,EACpCm7B,IAAK6I,EAAOnhD,EAAEid,IAAMkkC,EAAOnhD,EAAEmd,KAAO,EAExC,EAyCAw6B,iBAAiBhxC,UAAUiyC,cAAgB,SAAUyI,EAAO1I,EAAWE,QACnDv5C,IAAdq5C,IAAyBA,EAAY,QACpBr5C,IAAjBu5C,IAA4BA,EAAe,GAC/C,IAAID,EAAgB,GAEpB,OADAH,eAAeR,cAAc9xC,KAAM,EAAG,GAAI8xC,cAAcoJ,EAAO,EAAG,GAAI,EAAG1I,EAAWC,EAAeC,GAC5FD,CACT,EAEAjB,iBAAiB1C,aAAe,SAAU7M,EAAW10B,GACnD,IAAI+mC,GAAa/mC,EAAQ,GAAK00B,EAAUvrC,SACxC,OAAO,IAAI86C,iBAAiBvP,EAAUloB,EAAExM,GAAQ00B,EAAU9rC,EAAEoX,GAAQ00B,EAAUtrC,EAAE29C,GAAYrS,EAAUloB,EAAEu6B,IAAY,EACtH,EAEA9C,iBAAiB2J,qBAAuB,SAAUlZ,EAAW10B,GAC3D,IAAI+mC,GAAa/mC,EAAQ,GAAK00B,EAAUvrC,SACxC,OAAO,IAAI86C,iBAAiBvP,EAAUloB,EAAEu6B,GAAYrS,EAAUtrC,EAAE29C,GAAYrS,EAAU9rC,EAAEoX,GAAQ00B,EAAUloB,EAAExM,IAAQ,EACtH,EA8BAgG,gBAAgB,CAACy5B,eAAgBwG,gBAEjCA,eAAehzC,UAAU2sC,uBAAyB,SAAU/c,EAAMpiB,GAChEhO,KAAK+/B,SAAW//B,KAAKstC,YACrBttC,KAAK2zC,UAAYvT,gBAAgBC,QAAQjQ,EAAMpiB,EAAKnX,EAAG,EAAG,KAAMmJ,MAChEA,KAAKy0C,UAAYrU,gBAAgBC,QAAQjQ,EAAMpiB,EAAKgM,EAAG,EAAG,KAAMha,MAChEA,KAAKo7C,WAAahb,gBAAgBC,QAAQjQ,EAAMpiB,EAAKwP,GAAI,EAAG,KAAMxd,MAClEA,KAAK0gC,YAAwD,IAA1C1gC,KAAK2zC,UAAUtU,gBAAgB3oC,QAA0D,IAA1CsJ,KAAKy0C,UAAUpV,gBAAgB3oC,QAA2D,IAA3CsJ,KAAKo7C,WAAW/b,gBAAgB3oC,MACnJ,EAiDA88C,eAAehzC,UAAU0uC,YAAc,SAAUhzB,EAAMy3B,EAAWc,EAAWC,GAC3E,IAAI2G,EAAQn/B,EAAKwY,QACb2a,EAAarN,UAAUnN,aAO3B,GANAwa,EAAWpvB,EAAI/D,EAAK+D,EAEf/D,EAAK+D,IACRo7B,GAAS,GAGG,IAAVA,EAAa,OAAOhM,EACxB,IAAIt2B,GAAa,EACb6S,EAAU4lB,iBAAiB1C,aAAa5yB,EAAM,GAClDs4B,aAAanF,EAAYnzB,EAAM,EAAGy3B,EAAWc,EAAWC,EAAW37B,GAEnE,IAAK,IAAIpiB,EAAI,EAAGA,EAAI0kD,EAAO1kD,GAAK,EAC9BoiB,EAAYg8B,cAAc1F,EAAYzjB,EAAS+nB,EAAWc,EAAWC,GAAY37B,GAK/E6S,EAHEj1B,IAAM0kD,EAAQ,GAAMn/B,EAAK+D,EAGjBuxB,iBAAiB1C,aAAa5yB,GAAOvlB,EAAI,GAAK0kD,GAF9C,KAKZ7G,aAAanF,EAAYnzB,EAAMvlB,EAAI,EAAGg9C,EAAWc,EAAWC,EAAW37B,GAGzE,OAAOs2B,CACT,EAEAmE,eAAehzC,UAAU0tC,cAAgB,SAAU3O,GACjD,IAAI4O,EACAx3C,EAEAqmB,EACAC,EAME0a,EACAyL,EATFjlC,EAAM6B,KAAK8d,OAAOpnB,OAGlBi9C,EAAY3zC,KAAK2zC,UAAU55B,EAC3B06B,EAAYv4C,KAAK4a,IAAI,EAAG5a,KAAK0b,MAAM5X,KAAKy0C,UAAU16B,IAClD26B,EAAY10C,KAAKo7C,WAAWrhC,EAEhC,GAAkB,IAAd45B,EAIF,IAAKh9C,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EAAG,CAI3B,GAFAysC,GADAzL,EAAY33B,KAAK8d,OAAOnnB,IACSysC,qBAE1BzL,EAAUwK,MAAMjD,MAASl/B,KAAKk/B,MAASK,EAM5C,IALA6D,EAAqBb,gBACrB5K,EAAUwK,MAAMjD,MAAO,EACvBiP,EAAaxW,EAAUwK,MAAMziC,MAAMoe,OACnCb,EAAO0a,EAAUwK,MAAMziC,MAAMg1B,QAExB1X,EAAI,EAAGA,EAAIC,EAAMD,GAAK,EACzBomB,EAAqBd,SAAStiC,KAAKkvC,YAAYf,EAAWnxB,GAAI22B,EAAWc,EAAWC,IAIxF/c,EAAUwK,MAAMziC,MAAQi4B,EAAUyL,oBACpC,CAGGpjC,KAAKygC,kBAAkB/pC,SAC1BsJ,KAAKk/B,MAAO,EAEhB,EAiJA3rB,gBAAgB,CAACy5B,eAAgB8J,oBAEjCA,mBAAmBt2C,UAAU2sC,uBAAyB,SAAU/c,EAAMpiB,GACpEhO,KAAK+/B,SAAW//B,KAAKstC,YACrBttC,KAAKivC,OAAS7O,gBAAgBC,QAAQjQ,EAAMpiB,EAAK0R,EAAG,EAAG,KAAM1f,MAC7DA,KAAK41C,WAAaxV,gBAAgBC,QAAQjQ,EAAMpiB,EAAKstC,GAAI,EAAG,KAAMt7C,MAClEA,KAAK21C,SAAW3nC,EAAKutC,GACrBv7C,KAAK0gC,YAAqD,IAAvC1gC,KAAKivC,OAAO5P,gBAAgB3oC,MACjD,EAEAogD,mBAAmBt2C,UAAU0uC,YAAc,SAAUsM,EAAavM,EAAQ0G,EAAUC,GAClF,IAAIlC,EAAe1R,UAAUnN,aAC7B6e,EAAazzB,EAAIu7B,EAAYv7B,EAC7B,IAMItpB,EACAqmB,EACA4O,EARAyvB,EAAQG,EAAY9kD,SAEnB8kD,EAAYv7B,IACfo7B,GAAS,GAMX,IAAII,EAAgB,GAEpB,IAAK9kD,EAAI,EAAGA,EAAI0kD,EAAO1kD,GAAK,EAC1Bi1B,EAAU4lB,iBAAiB1C,aAAa0M,EAAa7kD,GACrD8kD,EAAcnjD,KAAKm+C,mBAAmB7qB,EAASqjB,IAGjD,IAAKuM,EAAYv7B,EACf,IAAKtpB,EAAI0kD,EAAQ,EAAG1kD,GAAK,EAAGA,GAAK,EAC/Bi1B,EAAU4lB,iBAAiB2J,qBAAqBK,EAAa7kD,GAC7D8kD,EAAcnjD,KAAKm+C,mBAAmB7qB,EAASqjB,IAInDwM,EAAgBjF,mBAAmBiF,GAEnC,IAAIhlB,EAAY,KACZilB,EAAU,KAEd,IAAK/kD,EAAI,EAAGA,EAAI8kD,EAAc/kD,OAAQC,GAAK,EAAG,CAC5C,IAAIglD,EAAeF,EAAc9kD,GAIjC,IAHI+kD,IAASjlB,EAAY+e,UAAU9B,EAAcgI,EAASC,EAAa,GAAIhG,EAAUC,IACrF8F,EAAUC,EAAaA,EAAajlD,OAAS,GAExCsmB,EAAI,EAAGA,EAAI2+B,EAAajlD,OAAQsmB,GAAK,EACxC4O,EAAU+vB,EAAa3+B,GAEnByZ,GAAaib,WAAW9lB,EAAQ8G,OAAO,GAAI+D,GAC7Cid,EAAaxS,QAAQtV,EAAQ8G,OAAO,GAAG,GAAI9G,EAAQ8G,OAAO,GAAG,GAAI,IAAKghB,EAAah9C,SAAW,GAE9Fg9C,EAAatS,YAAYxV,EAAQ8G,OAAO,GAAG,GAAI9G,EAAQ8G,OAAO,GAAG,GAAI9G,EAAQ8G,OAAO,GAAG,GAAI9G,EAAQ8G,OAAO,GAAG,GAAI9G,EAAQ8G,OAAO,GAAG,GAAI9G,EAAQ8G,OAAO,GAAG,GAAIghB,EAAah9C,UAG5Kg9C,EAAatS,YAAYxV,EAAQ8G,OAAO,GAAG,GAAI9G,EAAQ8G,OAAO,GAAG,GAAI9G,EAAQ8G,OAAO,GAAG,GAAI9G,EAAQ8G,OAAO,GAAG,GAAI9G,EAAQ8G,OAAO,GAAG,GAAI9G,EAAQ8G,OAAO,GAAG,GAAIghB,EAAah9C,UAC1K+/B,EAAY7K,EAAQ8G,OAAO,EAE/B,CAGA,OADI+oB,EAAc/kD,QAAQ8+C,UAAU9B,EAAcgI,EAASD,EAAc,GAAG,GAAI9F,EAAUC,GACnFlC,CACT,EAEAoD,mBAAmBt2C,UAAU0tC,cAAgB,SAAU3O,GACrD,IAAI4O,EACAx3C,EAEAqmB,EACAC,EAME0a,EACAyL,EATFjlC,EAAM6B,KAAK8d,OAAOpnB,OAGlBu4C,EAASjvC,KAAKivC,OAAOl1B,EACrB67B,EAAa51C,KAAK41C,WAAW77B,EAC7B47B,EAAW31C,KAAK21C,SAEpB,GAAe,IAAX1G,EAIF,IAAKt4C,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EAAG,CAI3B,GAFAysC,GADAzL,EAAY33B,KAAK8d,OAAOnnB,IACSysC,qBAE1BzL,EAAUwK,MAAMjD,MAASl/B,KAAKk/B,MAASK,EAM5C,IALA6D,EAAqBb,gBACrB5K,EAAUwK,MAAMjD,MAAO,EACvBiP,EAAaxW,EAAUwK,MAAMziC,MAAMoe,OACnCb,EAAO0a,EAAUwK,MAAMziC,MAAMg1B,QAExB1X,EAAI,EAAGA,EAAIC,EAAMD,GAAK,EACzBomB,EAAqBd,SAAStiC,KAAKkvC,YAAYf,EAAWnxB,GAAIiyB,EAAQ0G,EAAUC,IAIpFje,EAAUwK,MAAMziC,MAAQi4B,EAAUyL,oBACpC,CAGGpjC,KAAKygC,kBAAkB/pC,SAC1BsJ,KAAKk/B,MAAO,EAEhB,EAkDA,IAAI0c,YAAc,WAChB,IACIC,EAAY,CACdC,EAAG,EACHC,KAAM,EACNj+B,OAAQ,GACR9P,KAAM,CACJ8P,OAAQ,KAGRk+B,EAAqB,GAEzBA,EAAqBA,EAAmBlrB,OAAO,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,OAChP,IAAImrB,EAAqB,CAAC,WAAY,WAAY,WAAY,WAAY,YACtEC,EAAkB,CAAC,MAAO,MAiB9B,SAASC,EAAUC,EAAMlqC,GACvB,IAAImqC,EAAahpC,UAAU,QAE3BgpC,EAAWprB,aAAa,eAAe,GACvCorB,EAAWtkC,MAAMukC,WAAapqC,EAC9B,IAAId,EAAOiC,UAAU,QAErBjC,EAAKggB,UAAY,iBAEjBirB,EAAWtkC,MAAMC,SAAW,WAC5BqkC,EAAWtkC,MAAMG,KAAO,WACxBmkC,EAAWtkC,MAAME,IAAM,WAEvBokC,EAAWtkC,MAAMwkC,SAAW,QAE5BF,EAAWtkC,MAAMykC,YAAc,SAC/BH,EAAWtkC,MAAM0kC,UAAY,SAC7BJ,EAAWtkC,MAAM2kC,WAAa,SAC9BL,EAAWtkC,MAAM4kC,cAAgB,IACjCN,EAAWx2B,YAAYzU,GACvBtC,SAASoiB,KAAKrL,YAAYw2B,GAE1B,IAAIx5B,EAAQzR,EAAKwrC,YAEjB,OADAxrC,EAAK2G,MAAMukC,WAtCb,SAAyBF,GACvB,IACIzlD,EADAkmD,EAAcT,EAAK/wC,MAAM,KAEzBlN,EAAM0+C,EAAYnmD,OAClBomD,EAAkB,GAEtB,IAAKnmD,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACD,eAAnBkmD,EAAYlmD,IAA0C,cAAnBkmD,EAAYlmD,IACjDmmD,EAAgBxkD,KAAKukD,EAAYlmD,IAIrC,OAAOmmD,EAAgB3xC,KAAK,IAC9B,CAyB0B4xC,CAAgBX,GAAQ,KAAOlqC,EAChD,CACLd,KAAMA,EACN0qC,EAAGj5B,EACHm6B,OAAQX,EAEZ,CA6CA,SAASY,EAAajG,EAAUkG,GAC9B,IACIC,EADAC,EAAStuC,SAASoiB,MAAQgsB,EAAM,MAAQ,SAExCG,EAAYtG,kBAAkBC,GAElC,GAAe,QAAXoG,EAAkB,CACpB,IAAIE,EAAU/hC,SAAS,QACvB+hC,EAAQvlC,MAAMwkC,SAAW,QAEzBe,EAAQrsB,aAAa,cAAe+lB,EAASuG,SAC7CD,EAAQrsB,aAAa,aAAcosB,EAAUtlC,OAC7CulC,EAAQrsB,aAAa,cAAeosB,EAAUhG,QAC9CiG,EAAQE,YAAc,IAElBxG,EAASyG,QACXH,EAAQvlC,MAAMukC,WAAa,UAC3BgB,EAAQrsB,aAAa,QAAS+lB,EAASyG,SAEvCH,EAAQvlC,MAAMukC,WAAatF,EAASuG,QAGtCL,EAAIr3B,YAAYy3B,GAChBH,EAASG,CACX,KAAO,CACL,IAAII,EAAgB,IAAIC,gBAAgB,IAAK,KAAK36B,WAAW,MAC7D06B,EAActB,KAAOiB,EAAUtlC,MAAQ,IAAMslC,EAAUhG,OAAS,UAAYL,EAASuG,QACrFJ,EAASO,CACX,CAWA,MAAO,CACLE,YAVF,SAAiBC,GACf,MAAe,QAAXT,GACFD,EAAOK,YAAcK,EACdV,EAAOW,yBAGTX,EAAOS,YAAYC,GAAMh7B,KAClC,EAKF,CA4NA,IAAIk7B,EAAO,WACT/9C,KAAKsrB,MAAQ,GACbtrB,KAAKof,MAAQ,KACbpf,KAAKg+C,cAAgB,EACrBh+C,KAAKqoB,UAAW,EAChBroB,KAAKi+C,SAAU,EACfj+C,KAAK2vB,SAAWv2B,KAAK8kD,MACrBl+C,KAAKm+C,kBAAoBn+C,KAAKo+C,YAAYv2C,KAAK7H,MAC/CA,KAAKq+C,uBAAyBr+C,KAAKs+C,iBAAiBz2C,KAAK7H,KAC3D,EAEA+9C,EAAKQ,WAhCL,SAAoBC,EAAeC,GACjC,IAAIC,EAAMF,EAAcp1C,SAAS,IAAMq1C,EAAer1C,SAAS,IAC/D,OAA4C,IAArC6yC,EAAmBxrC,QAAQiuC,EACpC,EA8BAX,EAAKY,kBA5BL,SAA2BH,EAAeC,GACxC,OAAKA,EAIED,IAAkBtC,EAAgB,IAAMuC,IAAmBvC,EAAgB,GAHzEsC,IAAkBtC,EAAgB,EAI7C,EAuBA6B,EAAKa,oBArBL,SAA6BC,GAC3B,OAA+C,IAAxC7C,EAAmBvrC,QAAQouC,EACpC,EAoBA,IAAIC,EAAgB,CAClBtzB,SA9HF,SAAkBpM,GAChB,GAAKA,EAAL,CAQA,IAAIzoB,EAJCqJ,KAAKof,QACRpf,KAAKof,MAAQ,IAIf,IACIpC,EAEA+hC,EAHA5gD,EAAMihB,EAAM1oB,OAEZumB,EAAOjd,KAAKof,MAAM1oB,OAGtB,IAAKC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EAAG,CAI3B,IAHAqmB,EAAI,EACJ+hC,GAAQ,EAED/hC,EAAIC,GACLjd,KAAKof,MAAMpC,GAAGjF,QAAUqH,EAAMzoB,GAAGohB,OAAS/X,KAAKof,MAAMpC,GAAGugC,UAAYn+B,EAAMzoB,GAAG4mD,SAAWv9C,KAAKof,MAAMpC,GAAGgiC,KAAO5/B,EAAMzoB,GAAGqoD,KACxHD,GAAQ,GAGV/hC,GAAK,EAGF+hC,IACH/+C,KAAKof,MAAM9mB,KAAK8mB,EAAMzoB,IACtBsmB,GAAQ,EAEZ,CA5BA,CA6BF,EA+FEwO,SA1OF,SAAkBurB,EAAU1sB,GAC1B,GAAK0sB,EAAL,CAKA,GAAIh3C,KAAKof,MAGP,OAFApf,KAAKqoB,UAAW,OAChBroB,KAAKsrB,MAAQ0rB,EAASiI,MAIxB,IAAKnwC,SAASoiB,KAOZ,OANAlxB,KAAKqoB,UAAW,EAChB2uB,EAASiI,KAAKj8C,SAAQ,SAAUgL,GAC9BA,EAAKmvC,OAASF,EAAajvC,GAC3BA,EAAKkxC,MAAQ,CAAC,CAChB,SACAl/C,KAAKsrB,MAAQ0rB,EAASiI,MAIxB,IACItoD,EADAwoD,EAAUnI,EAASiI,KAEnB9gD,EAAMghD,EAAQzoD,OACd0oD,EAAgBjhD,EAEpB,IAAKxH,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EAAG,CAC3B,IACI0oD,EACAriC,EAFAsiC,GAAiB,EAOrB,GAJAH,EAAQxoD,GAAG4oD,QAAS,EACpBJ,EAAQxoD,GAAG6oD,SAAWrD,EAAUgD,EAAQxoD,GAAG4mD,QAAS,aACpD4B,EAAQxoD,GAAG8oD,SAAWtD,EAAUgD,EAAQxoD,GAAG4mD,QAAS,cAE/C4B,EAAQxoD,GAAG+oD,OAGT,GAA2B,MAAvBP,EAAQxoD,GAAGgpD,SAAyC,IAAtBR,EAAQxoD,GAAG0rB,QAOlD,IANAg9B,EAAiBvwC,SAAS8wC,iBAAiB,kCAAoCT,EAAQxoD,GAAG4mD,QAAU,qCAAuC4B,EAAQxoD,GAAG4mD,QAAU,OAE7I7mD,OAAS,IAC1B4oD,GAAiB,GAGfA,EAAgB,CAClB,IAAIzoD,EAAIwc,UAAU,SAClBxc,EAAEo6B,aAAa,YAAakuB,EAAQxoD,GAAGgpD,SACvC9oD,EAAEo6B,aAAa,WAAYkuB,EAAQxoD,GAAG0rB,QACtCxrB,EAAEo6B,aAAa,WAAYkuB,EAAQxoD,GAAG4mD,SACtC1mD,EAAEwL,KAAO,WACTxL,EAAEu6B,UAAY,4BAA8B+tB,EAAQxoD,GAAG4mD,QAAU,mCAAqC4B,EAAQxoD,GAAG+oD,MAAQ,OACzHp1B,EAAKzE,YAAYhvB,EACnB,OACK,GAA2B,MAAvBsoD,EAAQxoD,GAAGgpD,SAAyC,IAAtBR,EAAQxoD,GAAG0rB,OAAc,CAGhE,IAFAg9B,EAAiBvwC,SAAS8wC,iBAAiB,2CAEtC5iC,EAAI,EAAGA,EAAIqiC,EAAe3oD,OAAQsmB,GAAK,GACgB,IAAtDqiC,EAAeriC,GAAGquB,KAAK56B,QAAQ0uC,EAAQxoD,GAAG+oD,SAE5CJ,GAAiB,GAIrB,GAAIA,EAAgB,CAClB,IAAItjD,EAAIqX,UAAU,QAClBrX,EAAEi1B,aAAa,YAAakuB,EAAQxoD,GAAGgpD,SACvC3jD,EAAEi1B,aAAa,WAAYkuB,EAAQxoD,GAAG0rB,QACtCrmB,EAAEqG,KAAO,WACTrG,EAAE6jD,IAAM,aACR7jD,EAAEqvC,KAAO8T,EAAQxoD,GAAG+oD,MACpB5wC,SAASoiB,KAAKrL,YAAY7pB,EAC5B,CACF,MAAO,GAA2B,MAAvBmjD,EAAQxoD,GAAGgpD,SAAyC,IAAtBR,EAAQxoD,GAAG0rB,OAAc,CAGhE,IAFAg9B,EAAiBvwC,SAAS8wC,iBAAiB,+CAEtC5iC,EAAI,EAAGA,EAAIqiC,EAAe3oD,OAAQsmB,GAAK,EACtCmiC,EAAQxoD,GAAG+oD,QAAUL,EAAeriC,GAAGjI,MAEzCuqC,GAAiB,GAIrB,GAAIA,EAAgB,CAClB,IAAIQ,EAAKzsC,UAAU,QACnBysC,EAAG7uB,aAAa,YAAakuB,EAAQxoD,GAAGgpD,SACxCG,EAAG7uB,aAAa,WAAYkuB,EAAQxoD,GAAG0rB,QACvCy9B,EAAG7uB,aAAa,MAAO,cACvB6uB,EAAG7uB,aAAa,OAAQkuB,EAAQxoD,GAAG+oD,OACnCp1B,EAAKzE,YAAYi6B,EACnB,CACF,OAvDEX,EAAQxoD,GAAG4oD,QAAS,EACpBH,GAAiB,EAwDnBD,EAAQxoD,GAAGwmD,OAASF,EAAakC,EAAQxoD,GAAI2zB,GAC7C60B,EAAQxoD,GAAGuoD,MAAQ,CAAC,EACpBl/C,KAAKsrB,MAAMhzB,KAAK6mD,EAAQxoD,GAC1B,CAEsB,IAAlByoD,EACFp/C,KAAKqoB,UAAW,EAIhBoE,WAAWzsB,KAAKs+C,iBAAiBz2C,KAAK7H,MAAO,IAnG/C,MAFEA,KAAKqoB,UAAW,CAuGpB,EAkIE03B,YA9FF,SAAqBC,EAAOjoC,EAAOqkC,GAIjC,IAHA,IAAIzlD,EAAI,EACJwH,EAAM6B,KAAKof,MAAM1oB,OAEdC,EAAIwH,GAAK,CACd,GAAI6B,KAAKof,MAAMzoB,GAAGqoD,KAAOgB,GAAShgD,KAAKof,MAAMzoB,GAAGohB,QAAUA,GAAS/X,KAAKof,MAAMzoB,GAAG4mD,UAAYnB,EAC3F,OAAOp8C,KAAKof,MAAMzoB,GAGpBA,GAAK,CACP,CAQA,OANsB,kBAAVqpD,GAA8C,KAAxBA,EAAMC,WAAW,KAAcD,IAAU/2C,SAAWA,QAAQi3C,OAC1FlgD,KAAKi+C,UACPj+C,KAAKi+C,SAAU,EACfh1C,QAAQi3C,KAAK,oDAAqDF,EAAOjoC,EAAOqkC,IAG3EP,CACT,EA4EEsE,cAtDF,SAAuBn6C,GAIrB,IAHA,IAAIrP,EAAI,EACJwH,EAAM6B,KAAKsrB,MAAM50B,OAEdC,EAAIwH,GAAK,CACd,GAAI6B,KAAKsrB,MAAM30B,GAAGypD,QAAUp6C,EAC1B,OAAOhG,KAAKsrB,MAAM30B,GAGpBA,GAAK,CACP,CAEA,OAAOqJ,KAAKsrB,MAAM,EACpB,EA0CEsyB,YA3EF,SAAqByC,EAAQC,EAAUvE,GACrC,IAAI/E,EAAWh3C,KAAKmgD,cAAcG,GAE9B/yC,EAAQ8yC,EAAOJ,WAAW,GAE9B,IAAKjJ,EAASkI,MAAM3xC,EAAQ,GAAI,CAC9B,IAAI+vC,EAAUtG,EAASmG,OAEvB,GAAe,MAAXkD,EAAgB,CAClB,IAAIE,EAAajD,EAAQM,YAAY,IAAMyC,EAAS,KAChDG,EAAalD,EAAQM,YAAY,MACrC5G,EAASkI,MAAM3xC,EAAQ,IAAMgzC,EAAaC,GAAc,GAC1D,MACExJ,EAASkI,MAAM3xC,EAAQ,GAAK+vC,EAAQM,YAAYyC,GAAU,GAE9D,CAEA,OAAOrJ,EAASkI,MAAM3xC,EAAQ,GAAKwuC,CACrC,EA0DEuC,iBApUF,WACE,IAAI3nD,EAEAya,EACA0qC,EAFA39C,EAAM6B,KAAKsrB,MAAM50B,OAGjB+pD,EAActiD,EAElB,IAAKxH,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACpBqJ,KAAKsrB,MAAM30B,GAAG4oD,OAChBkB,GAAe,EACoB,MAA1BzgD,KAAKsrB,MAAM30B,GAAGgpD,SAA4C,IAAzB3/C,KAAKsrB,MAAM30B,GAAG0rB,OACxDriB,KAAKsrB,MAAM30B,GAAG4oD,QAAS,GAEvBnuC,EAAOpR,KAAKsrB,MAAM30B,GAAG6oD,SAASpuC,KAC9B0qC,EAAI97C,KAAKsrB,MAAM30B,GAAG6oD,SAAS1D,EAEvB1qC,EAAKwrC,cAAgBd,GACvB2E,GAAe,EACfzgD,KAAKsrB,MAAM30B,GAAG4oD,QAAS,IAEvBnuC,EAAOpR,KAAKsrB,MAAM30B,GAAG8oD,SAASruC,KAC9B0qC,EAAI97C,KAAKsrB,MAAM30B,GAAG8oD,SAAS3D,EAEvB1qC,EAAKwrC,cAAgBd,IACvB2E,GAAe,EACfzgD,KAAKsrB,MAAM30B,GAAG4oD,QAAS,IAIvBv/C,KAAKsrB,MAAM30B,GAAG4oD,SAChBv/C,KAAKsrB,MAAM30B,GAAG8oD,SAASzC,OAAOX,WAAWqE,YAAY1gD,KAAKsrB,MAAM30B,GAAG8oD,SAASzC,QAC5Eh9C,KAAKsrB,MAAM30B,GAAG6oD,SAASxC,OAAOX,WAAWqE,YAAY1gD,KAAKsrB,MAAM30B,GAAG6oD,SAASxC,UAK9D,IAAhByD,GAAqBrnD,KAAK8kD,MAAQl+C,KAAK2vB,SAjGxB,IAkGjBlD,WAAWzsB,KAAKq+C,uBAAwB,IAExC5xB,WAAWzsB,KAAKm+C,kBAAmB,GAEvC,EA4REC,YAzBF,WACEp+C,KAAKqoB,UAAW,CAClB,GA0BA,OADA01B,EAAKv9C,UAAYs+C,EACVf,CACT,CAvYkB,GAyYlB,SAAS4C,YAAY1hC,GACnBjf,KAAKif,cAAgBA,CACvB,CAUA,SAAS2hC,YAAY3hC,GACnB,OAAO,IAAI0hC,YAAY1hC,EACzB,CAEA,SAAS4hC,oBAAqB,CAZ9BF,YAAYngD,UAAU6/B,QAAU,SAAUryB,GACxC,OAAIhO,KAAKif,cAAc6hC,OAAS9gD,KAAKif,cAAc6hC,MAAM9yC,EAAKsyB,KACrDjoC,OAAOwS,OAAOmD,EAAMhO,KAAKif,cAAc6hC,MAAM9yC,EAAKsyB,KAAK1jC,GAGzDoR,CACT,EAQA6yC,kBAAkBrgD,UAAY,CAC5BugD,eAAgB,WAEd/gD,KAAKghD,WAAY,EAEjBhhD,KAAKihD,QAAS,EAEdjhD,KAAKkhD,eAAgB,EAErBlhD,KAAKmhD,qBAAuB,EAC9B,EACAC,uBAAwB,SAAgCC,IACA,IAAlDrhD,KAAKmhD,qBAAqB1wC,QAAQ4wC,IACpCrhD,KAAKmhD,qBAAqB7oD,KAAK+oD,EAEnC,EACAC,0BAA2B,SAAmCD,IACN,IAAlDrhD,KAAKmhD,qBAAqB1wC,QAAQ4wC,IACpCrhD,KAAKmhD,qBAAqB76B,OAAOtmB,KAAKmhD,qBAAqB1wC,QAAQ4wC,GAAY,EAEnF,EACAE,uBAAwB,SAAgCC,GACtDxhD,KAAKyhD,iBAAiBD,EACxB,EACAE,kBAAmB,WACb1hD,KAAK2hD,eAAeC,MAAMzrD,EAAE4jB,GAAK,GAC9B/Z,KAAKkhD,eAAiBlhD,KAAKqqB,WAAWw3B,aAAaC,oBACtD9hD,KAAKkhD,eAAgB,EACrBlhD,KAAKovB,QAEEpvB,KAAKkhD,gBACdlhD,KAAKkhD,eAAgB,EACrBlhD,KAAKqvB,OAET,EAUAoyB,iBAAkB,SAA0BD,GACtCxhD,KAAKgO,KAAKsR,GAAKtf,KAAKgO,KAAKwR,IAAMgiC,GAAOxhD,KAAKgO,KAAKuR,GAAKvf,KAAKgO,KAAKwR,GAAKgiC,GAC/C,IAAnBxhD,KAAKghD,YACPhhD,KAAKqqB,WAAW6U,MAAO,EACvBl/B,KAAKk/B,MAAO,EACZl/B,KAAKghD,WAAY,EACjBhhD,KAAKqvB,SAEqB,IAAnBrvB,KAAKghD,YACdhhD,KAAKqqB,WAAW6U,MAAO,EACvBl/B,KAAKghD,WAAY,EACjBhhD,KAAKovB,OAET,EACA2yB,iBAAkB,WAChB,IAAIprD,EACAwH,EAAM6B,KAAKmhD,qBAAqBzqD,OAEpC,IAAKC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACxBqJ,KAAKmhD,qBAAqBxqD,GAAGu2B,YAAYltB,KAAKu/B,cAKlD,EACAyiB,iBAAkB,WAChB,MAAO,CACL/pC,IAAK,EACLC,KAAM,EACN2K,MAAO,IACPC,OAAQ,IAEZ,EACAm/B,aAAc,WACZ,OAAqB,IAAjBjiD,KAAKgO,KAAK0P,GACL,CACLo+B,EAAG97C,KAAKgO,KAAKk0C,SAASr/B,MACtBpnB,EAAGuE,KAAKgO,KAAKk0C,SAASp/B,QAInB,CACLg5B,EAAG97C,KAAKgO,KAAK6U,MACbpnB,EAAGuE,KAAKgO,KAAK8U,OAEjB,GAGF,IAAIq/B,aAAe,WACjB,IAAIC,EAAiB,CACnB,EAAG,cACH,EAAG,WACH,EAAG,SACH,EAAG,UACH,EAAG,SACH,EAAG,UACH,EAAG,cACH,EAAG,aACH,EAAG,aACH,EAAG,aACH,GAAI,aACJ,GAAI,YACJ,GAAI,MACJ,GAAI,aACJ,GAAI,QACJ,GAAI,cAEN,OAAO,SAAUC,GACf,OAAOD,EAAeC,IAAS,EACjC,CACF,CAtBmB,GAwBnB,SAASC,aAAat0C,EAAMoiB,EAAMnG,GAChCjqB,KAAKpD,EAAIwjC,gBAAgBC,QAAQjQ,EAAMpiB,EAAK+L,EAAG,EAAG,EAAGkQ,EACvD,CAEA,SAASs4B,YAAYv0C,EAAMoiB,EAAMnG,GAC/BjqB,KAAKpD,EAAIwjC,gBAAgBC,QAAQjQ,EAAMpiB,EAAK+L,EAAG,EAAG,EAAGkQ,EACvD,CAEA,SAASu4B,YAAYx0C,EAAMoiB,EAAMnG,GAC/BjqB,KAAKpD,EAAIwjC,gBAAgBC,QAAQjQ,EAAMpiB,EAAK+L,EAAG,EAAG,EAAGkQ,EACvD,CAEA,SAASw4B,YAAYz0C,EAAMoiB,EAAMnG,GAC/BjqB,KAAKpD,EAAIwjC,gBAAgBC,QAAQjQ,EAAMpiB,EAAK+L,EAAG,EAAG,EAAGkQ,EACvD,CAEA,SAASy4B,iBAAiB10C,EAAMoiB,EAAMnG,GACpCjqB,KAAKpD,EAAIwjC,gBAAgBC,QAAQjQ,EAAMpiB,EAAK+L,EAAG,EAAG,EAAGkQ,EACvD,CAEA,SAAS04B,gBAAgB30C,EAAMoiB,EAAMnG,GACnCjqB,KAAKpD,EAAIwjC,gBAAgBC,QAAQjQ,EAAMpiB,EAAK+L,EAAG,EAAG,EAAGkQ,EACvD,CAEA,SAAS24B,eAAe50C,EAAMoiB,EAAMnG,GAClCjqB,KAAKpD,EAAIwjC,gBAAgBC,QAAQjQ,EAAMpiB,EAAK+L,EAAG,EAAG,EAAGkQ,EACvD,CAEA,SAAS44B,gBACP7iD,KAAKpD,EAAI,CAAC,CACZ,CAEA,SAASkmD,eAAe90C,EAAM8J,GAC5B,IAEInhB,EAFAosD,EAAU/0C,EAAKg1C,IAAM,GACzBhjD,KAAKijD,eAAiB,GAEtB,IACIC,EADA/kD,EAAM4kD,EAAQrsD,OAGlB,IAAKC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACxBusD,EAAa,IAAIC,YAAYJ,EAAQpsD,GAAImhB,GACzC9X,KAAKijD,eAAe3qD,KAAK4qD,EAE7B,CAEA,SAASC,YAAYn1C,EAAM8J,GACzB9X,KAAKuuB,KAAKvgB,EAAM8J,EAClB,CA+DA,SAASsrC,cAAe,CAkFxB,SAASC,eAAgB,CAiDzB,SAASC,eAAet1C,EAAMqc,EAAYpM,GACxCje,KAAKk6B,YACLl6B,KAAK+gD,iBACL/gD,KAAK2jB,UAAY0G,EAAW8E,aAAanhB,EAAK4P,OAC9C5d,KAAKykB,YAAc4F,EAAWk5B,YAAYl+B,SAASrlB,KAAK2jB,WACxD3jB,KAAKwjD,aAAax1C,EAAMqc,EAAYpM,EACtC,CA6BA,SAASwlC,aAAaz1C,EAAMqc,EAAYpM,GACtCje,KAAKk6B,YACLl6B,KAAK+gD,iBACL/gD,KAAK2jB,UAAY0G,EAAW8E,aAAanhB,EAAK4P,OAC9C5d,KAAKwjD,aAAax1C,EAAMqc,EAAYpM,GACpCje,KAAK0jD,YAAa,EAClB1jD,KAAK2jD,UAAW,EAChB,IAAI9uC,EAAY7U,KAAKqqB,WAAW3G,cAAc1jB,KAAK2jB,WACnD3jB,KAAKuU,MAAQvU,KAAKqqB,WAAWZ,gBAAgB7U,YAAYC,GACzD7U,KAAK4jD,aAAe,EACpB5jD,KAAKqqB,WAAWZ,gBAAgBnV,SAAStU,MACzCA,KAAK6jD,kBAAoB,EACzB7jD,KAAKoU,QAAU,EACfpU,KAAK8jD,gBAAkB,KACvB9jD,KAAKinB,GAAKjZ,EAAKiZ,GAAKmZ,gBAAgBC,QAAQrgC,KAAMgO,EAAKiZ,GAAI,EAAGoD,EAAW9B,UAAWvoB,MAAQ,CAC1F+jD,cAAc,GAEhB/jD,KAAKgkD,GAAK5jB,gBAAgBC,QAAQrgC,KAAMgO,EAAKi2C,IAAMj2C,EAAKi2C,GAAGD,GAAKh2C,EAAKi2C,GAAGD,GAAK,CAC3E9mC,EAAG,CAAC,MACH,EAAG,IAAMld,KACd,CA0EA,SAASkkD,eAAgB,CAoNzB,SAASC,mBAAoB,CAsF7B,SAASC,YAAYp2C,EAAM8J,EAASuS,GAClCrqB,KAAKgO,KAAOA,EACZhO,KAAK8X,QAAUA,EACf9X,KAAKqqB,WAAaA,EAClBrqB,KAAKi3B,WAAa,GAClBj3B,KAAKud,gBAAkBvd,KAAKgO,KAAKuP,iBAAmB,GACpDvd,KAAKqkD,YAAc,KACnB,IACI1tD,EAIAulB,EALAoO,EAAOtqB,KAAKqqB,WAAWC,KAEvBnsB,EAAM6B,KAAKud,gBAAkBvd,KAAKud,gBAAgB7mB,OAAS,EAC/DsJ,KAAKskD,SAAWruC,iBAAiB9X,GACjC6B,KAAKukD,UAAY,GAEjB,IAGIvnC,EACAC,EAEAunC,EACAC,EACAC,EACA5xB,EATA6xB,EAAa3kD,KAAKud,gBAClB89B,EAAQ,EACRuJ,EAAe,GAGfC,EAAUjrC,kBAKVkrC,EAAW,WACXC,EAAU,YAEd,IAAKpuD,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EAkBxB,IAjB2B,MAAvBguD,EAAWhuD,GAAG0rD,MAAuC,MAAvBsC,EAAWhuD,GAAG0rD,MAAgBsC,EAAWhuD,GAAGohD,KAA6B,MAAtB4M,EAAWhuD,GAAGR,EAAE+mB,GAAaynC,EAAWhuD,GAAGR,EAAE28B,KAChIgyB,EAAW,OACXC,EAAU,QAGgB,MAAvBJ,EAAWhuD,GAAG0rD,MAAuC,MAAvBsC,EAAWhuD,GAAG0rD,MAA2B,IAAVhH,EAOhEmJ,EAAO,OANPA,EAAOjpC,SAAS,SACX0V,aAAa,OAAQ,WAC1BuzB,EAAKvzB,aAAa,QAASjxB,KAAK8X,QAAQmG,KAAKjQ,KAAK8tC,GAAK,GACvD0I,EAAKvzB,aAAa,SAAUjxB,KAAK8X,QAAQmG,KAAKjQ,KAAKvS,GAAK,GACxDmpD,EAAatsD,KAAKksD,IAKpBtoC,EAAOX,SAAS,QAEW,MAAvBopC,EAAWhuD,GAAG0rD,KAEhBriD,KAAKskD,SAAS3tD,GAAK,CACjB4oB,GAAI6gB,gBAAgBC,QAAQrgC,KAAK8X,QAAS6sC,EAAWhuD,GAAGR,EAAG,EAAG,IAAM6J,KAAK8X,SACzEjE,KAAM8uB,qBAAqBqiB,aAAahlD,KAAK8X,QAAS6sC,EAAWhuD,GAAI,GACrEy5B,KAAMlU,EACN+oC,SAAU,IAEZ36B,EAAKzE,YAAY3J,OACZ,CAIL,IAAIgpC,EAgCJ,GAnCA7J,GAAS,EACTn/B,EAAK+U,aAAa,OAA+B,MAAvB0zB,EAAWhuD,GAAG0rD,KAAe,UAAY,WACnEnmC,EAAK+U,aAAa,YAAa,WAGL,IAAtB0zB,EAAWhuD,GAAGm8B,EAAE5V,GAClB4nC,EAAW,OACXC,EAAU,OACVjyB,EAAIsN,gBAAgBC,QAAQrgC,KAAK8X,QAAS6sC,EAAWhuD,GAAGm8B,EAAG,EAAG,KAAM9yB,KAAK8X,SACzEotC,EAAWtrC,mBACX6qC,EAAWlpC,SAAS,WACX0V,aAAa,KAAMi0B,IAC5BR,EAAUnpC,SAAS,iBACX0V,aAAa,WAAY,SACjCyzB,EAAQzzB,aAAa,KAAM,iBAC3ByzB,EAAQzzB,aAAa,SAAU,KAC/BwzB,EAAS5+B,YAAY6+B,GACrBp6B,EAAKzE,YAAY4+B,GACjBvoC,EAAK+U,aAAa,SAAiC,MAAvB0zB,EAAWhuD,GAAG0rD,KAAe,UAAY,aAErEqC,EAAU,KACV5xB,EAAI,MAIN9yB,KAAKi3B,WAAWtgC,GAAK,CACnBy5B,KAAMlU,EACN4W,EAAGA,EACHqyB,MAAOT,EACPO,SAAU,GACVG,aAAc,GACdC,SAAUH,EACVI,WAAY,GAGa,MAAvBX,EAAWhuD,GAAG0rD,KAAc,CAC9BplC,EAAO2nC,EAAaluD,OACpB,IAAIqJ,EAAIwb,SAAS,KAEjB,IAAKyB,EAAI,EAAGA,EAAIC,EAAMD,GAAK,EACzBjd,EAAE8lB,YAAY++B,EAAa5nC,IAG7B,IAAIlkB,EAAOyiB,SAAS,QACpBziB,EAAKm4B,aAAa,YAAa,SAC/Bn4B,EAAKm4B,aAAa,KAAM4zB,EAAU,IAAMxJ,GACxCviD,EAAK+sB,YAAY3J,GACjBoO,EAAKzE,YAAY/sB,GACjBiH,EAAEkxB,aAAa,OAAQ,OAAS7d,kBAAoB,IAAMyxC,EAAU,IAAMxJ,EAAQ,KAClFuJ,EAAaluD,OAAS,EACtBkuD,EAAatsD,KAAKyH,EACpB,MACE6kD,EAAatsD,KAAK4jB,GAGhByoC,EAAWhuD,GAAGohD,MAAQ/3C,KAAKukD,YAC7BvkD,KAAKukD,UAAYvkD,KAAKulD,wBAIxBvlD,KAAKskD,SAAS3tD,GAAK,CACjBy5B,KAAMlU,EACN+oC,SAAU,GACV1lC,GAAI6gB,gBAAgBC,QAAQrgC,KAAK8X,QAAS6sC,EAAWhuD,GAAGR,EAAG,EAAG,IAAM6J,KAAK8X,SACzEjE,KAAM8uB,qBAAqBqiB,aAAahlD,KAAK8X,QAAS6sC,EAAWhuD,GAAI,GACrE6uD,QAAShB,GAGNxkD,KAAKskD,SAAS3tD,GAAGkd,KAAKqJ,GACzBld,KAAKylD,SAASd,EAAWhuD,GAAIqJ,KAAKskD,SAAS3tD,GAAGkd,KAAKkG,EAAG/Z,KAAKskD,SAAS3tD,GAExE,CAMF,IAHAqJ,KAAKqkD,YAAc9oC,SAASupC,GAC5B3mD,EAAMymD,EAAaluD,OAEdC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACxBqJ,KAAKqkD,YAAYx+B,YAAY++B,EAAajuD,IAGxC0kD,EAAQ,IACVr7C,KAAKqkD,YAAYpzB,aAAa,KAAM4zB,GACpC7kD,KAAK8X,QAAQ4tC,cAAcz0B,aAAa8zB,EAAS,OAAS3xC,kBAAoB,IAAMyxC,EAAU,KAC9Fv6B,EAAKzE,YAAY7lB,KAAKqkD,cAGpBrkD,KAAKskD,SAAS5tD,QAChBsJ,KAAK8X,QAAQspC,uBAAuBphD,KAExC,CA3vBAuT,gBAAgB,CAACitB,0BAA2B2iB,aAC5CA,YAAY3iD,UAAUu/B,SAAWojB,YAAY3iD,UAAUmgC,yBAEvDwiB,YAAY3iD,UAAU+tB,KAAO,SAAUvgB,EAAM8J,GAI3C,IAAInhB,EAHJqJ,KAAKgO,KAAOA,EACZhO,KAAKijD,eAAiB,GACtBjjD,KAAK4gC,6BAA6B9oB,GAElC,IACI6tC,EADAxnD,EAAM6B,KAAKgO,KAAKg1C,GAAGtsD,OAEnBqsD,EAAU/iD,KAAKgO,KAAKg1C,GAExB,IAAKrsD,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EAAG,CAG3B,OAFAgvD,EAAM,KAEE5C,EAAQpsD,GAAG+mB,IACjB,KAAK,EACHioC,EAAM,IAAIrD,aAAaS,EAAQpsD,GAAImhB,EAAS9X,MAC5C,MAEF,KAAK,EACH2lD,EAAM,IAAIpD,YAAYQ,EAAQpsD,GAAImhB,EAAS9X,MAC3C,MAEF,KAAK,EACH2lD,EAAM,IAAInD,YAAYO,EAAQpsD,GAAImhB,EAAS9X,MAC3C,MAEF,KAAK,EACH2lD,EAAM,IAAIlD,YAAYM,EAAQpsD,GAAImhB,EAAS9X,MAC3C,MAEF,KAAK,EACL,KAAK,EACH2lD,EAAM,IAAI/C,eAAeG,EAAQpsD,GAAImhB,EAAS9X,MAC9C,MAEF,KAAK,GACH2lD,EAAM,IAAIjD,iBAAiBK,EAAQpsD,GAAImhB,EAAS9X,MAChD,MAEF,KAAK,GACH2lD,EAAM,IAAIhD,gBAAgBI,EAAQpsD,GAAImhB,EAAS9X,MAC/C,MAEF,KAAK,EACH2lD,EAAM,IAAI7C,eAAeC,EAAQpsD,GAAImhB,EAAS9X,MAC9C,MAGF,QACE2lD,EAAM,IAAI9C,cAAcE,EAAQpsD,GAAImhB,EAAS9X,MAI7C2lD,GACF3lD,KAAKijD,eAAe3qD,KAAKqtD,EAE7B,CACF,EAIAvC,YAAY5iD,UAAY,CACtBolD,WAAY,WACV,IAAK5lD,KAAKgO,KAAKqP,QACb,OAAO,EAMT,IAHA,IAAI1mB,EAAI,EACJwH,EAAM6B,KAAKgO,KAAKuP,gBAAgB7mB,OAE7BC,EAAIwH,GAAK,CACd,GAA0C,MAAtC6B,KAAKgO,KAAKuP,gBAAgB5mB,GAAG0rD,OAAoD,IAApCriD,KAAKgO,KAAKuP,gBAAgB5mB,GAAG0pB,GAC5E,OAAO,EAGT1pB,GAAK,CACP,CAEA,OAAO,CACT,EACA+0B,gBAAiB,WACf,IAAIrV,EAAwB6E,0BAE5B,GAAK7E,EAAL,CAIA,IAAIwvC,EAA2BxvC,EAAsB,SACjDyvC,EAA6BzvC,EAAsB,WACnD0vC,EAA2B1vC,EAAsB,SACjD2vC,EAA0B3vC,EAAsB,QAChD4vC,EAA0B5vC,EAAsB,QACpDrW,KAAKkmD,eAAiBL,EAAyB7lD,MAE3CA,KAAKgO,KAAKqP,SAAWrd,KAAKmmD,aAC5BnmD,KAAKkmD,eAAeE,sBAAsBpmD,KAAKmmD,aAGjD,IAAIE,EAAmBP,EAA2BQ,uBAAuBtmD,KAAMA,KAAKkmD,gBACpFlmD,KAAKkmD,eAAeK,yBAAyBF,GAExB,IAAjBrmD,KAAKgO,KAAK0P,IAAY1d,KAAKgO,KAAK4Z,GAClC5nB,KAAK8nB,cAAgBm+B,EAAwBjmD,MACnB,IAAjBA,KAAKgO,KAAK0P,IACnB1d,KAAKkmD,eAAeM,eAAiBT,EAAyB/lD,KAAKymD,WAAYzmD,KAAK0mD,UAAW1mD,KAAKkmD,gBACpGlmD,KAAKkmD,eAAeS,QAAU3mD,KAAKkmD,eAAeM,gBACxB,IAAjBxmD,KAAKgO,KAAK0P,KACnB1d,KAAKkmD,eAAeU,cAAgBZ,EAAwBhmD,MAC5DA,KAAKkmD,eAAerI,KAAO79C,KAAKkmD,eAAeU,cAvBjD,CAyBF,EACAC,aAAc,WACZ,IAAIC,EAAiB3E,aAAaniD,KAAKgO,KAAK+4C,KACjC/mD,KAAKgnD,aAAehnD,KAAKinD,cAC/BlvC,MAAM,kBAAoB+uC,CACjC,EACAtD,aAAc,SAAsBx1C,EAAMqc,EAAYpM,GACpDje,KAAKqqB,WAAaA,EAClBrqB,KAAKie,KAAOA,EACZje,KAAKgO,KAAOA,EACZhO,KAAK6kD,QAAUjrC,kBAEV5Z,KAAKgO,KAAKyR,KACbzf,KAAKgO,KAAKyR,GAAK,GAIjBzf,KAAKknD,eAAiB,IAAIpE,eAAe9iD,KAAKgO,KAAMhO,KAAMA,KAAKygC,kBACjE,EACA0mB,QAAS,WACP,OAAOnnD,KAAKqC,IACd,EACA2/C,iBAAkB,WAA6B,GAWjDqB,aAAa7iD,UAAY,CAMvB05B,UAAW,WAETl6B,KAAKu/B,eAAgB,EAErBv/B,KAAKygC,kBAAoB,GAEzBzgC,KAAKk/B,MAAO,CACd,EAYAkoB,kBAAmB,SAA2B5F,EAAK6F,GACjD,IAAI1wD,EACAwH,EAAM6B,KAAKygC,kBAAkB/pC,OAEjC,IAAKC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,GACpB0wD,GAAarnD,KAAKsnD,WAAoD,cAAvCtnD,KAAKygC,kBAAkB9pC,GAAG8jC,YAC3Dz6B,KAAKygC,kBAAkB9pC,GAAGopC,WAEtB//B,KAAKygC,kBAAkB9pC,GAAGuoC,OAC5Bl/B,KAAKqqB,WAAW6U,MAAO,EACvBl/B,KAAKk/B,MAAO,GAIpB,EACAU,mBAAoB,SAA4B/rB,IACA,IAA1C7T,KAAKygC,kBAAkBhwB,QAAQoD,IACjC7T,KAAKygC,kBAAkBnoC,KAAKub,EAEhC,GAWFyvC,eAAe9iD,UAAUmnB,aAAe,WAAa,EAErDpU,gBAAgB,CAACstC,kBAAmBuC,YAAaC,cAAeC,gBAEhEA,eAAe9iD,UAAU+mD,eAAiB,WACxC,OAAO,IACT,EAEAjE,eAAe9iD,UAAU0sB,YAAc,WAAa,EAEpDo2B,eAAe9iD,UAAU4kB,QAAU,WAAa,EAEhDk+B,eAAe9iD,UAAUkrB,gBAAkB,WACzC,IAAIrV,EAAwB6E,0BAE5B,GAAK7E,EAAL,CAIA,IAAImxC,EAAmBnxC,EAAsB,WAC7CrW,KAAKkmD,eAAiBsB,EAAiBxnD,KAHvC,CAIF,EAEAsjD,eAAe9iD,UAAUinD,eAAiB,WACxC,OAAOznD,KAAKykB,WACd,EAwBAg/B,aAAajjD,UAAUmnB,aAAe,SAAU65B,GAI9C,GAHAxhD,KAAKuhD,uBAAuBC,GAAK,GACjCxhD,KAAKonD,kBAAkB5F,GAAK,GAEvBxhD,KAAKinB,GAAG88B,aAIX/jD,KAAK4jD,aAAepC,EAAMxhD,KAAKgO,KAAKyR,OAJX,CACzB,IAAIioC,EAAe1nD,KAAKinB,GAAGlN,EAC3B/Z,KAAK4jD,aAAe8D,CACtB,CAIA1nD,KAAKoU,QAAUpU,KAAKgkD,GAAGjqC,EAAE,GACzB,IAAI4tC,EAAc3nD,KAAKoU,QAAUpU,KAAK6jD,kBAElC7jD,KAAK8jD,kBAAoB6D,IAC3B3nD,KAAK8jD,gBAAkB6D,EACvB3nD,KAAKuU,MAAMoB,OAAOgyC,GAEtB,EAEAp0C,gBAAgB,CAACstC,kBAAmBuC,YAAaC,cAAeI,cAEhEA,aAAajjD,UAAU0sB,YAAc,WAC/BltB,KAAKghD,WAAahhD,KAAK2jD,WACpB3jD,KAAK0jD,aAIE1jD,KAAKuU,MAAMY,WAAajZ,KAAKS,IAAIqD,KAAK4jD,aAAe5jD,KAAKqqB,WAAW9B,UAAYvoB,KAAKuU,MAAMW,QAAU,KAChHlV,KAAKuU,MAAMW,KAAKlV,KAAK4jD,aAAe5jD,KAAKqqB,WAAW9B,YAJpDvoB,KAAKuU,MAAMU,OACXjV,KAAKuU,MAAMW,KAAKlV,KAAK4jD,aAAe5jD,KAAKqqB,WAAW9B,WACpDvoB,KAAK0jD,YAAa,GAKxB,EAEAD,aAAajjD,UAAU6uB,KAAO,WAAa,EAG3Co0B,aAAajjD,UAAU4uB,KAAO,WAC5BpvB,KAAKuU,MAAMC,QACXxU,KAAK0jD,YAAa,CACpB,EAEAD,aAAajjD,UAAUgU,MAAQ,WAC7BxU,KAAKuU,MAAMC,QACXxU,KAAK0jD,YAAa,EAClB1jD,KAAK2jD,UAAW,CAClB,EAEAF,aAAajjD,UAAUiU,OAAS,WAC9BzU,KAAK2jD,UAAW,CAClB,EAEAF,aAAajjD,UAAUkU,QAAU,SAAUC,GACzC3U,KAAKuU,MAAMa,KAAKT,EAClB,EAEA8uC,aAAajjD,UAAUmV,OAAS,SAAUiyC,GACxC5nD,KAAK6jD,kBAAoB+D,EACzB5nD,KAAK8jD,gBAAkB8D,EAAc5nD,KAAKoU,QAC1CpU,KAAKuU,MAAMoB,OAAO3V,KAAK8jD,gBACzB,EAEAL,aAAajjD,UAAU+mD,eAAiB,WACtC,OAAO,IACT,EAEA9D,aAAajjD,UAAU4kB,QAAU,WAAa,EAE9Cq+B,aAAajjD,UAAUwhD,iBAAmB,WAAa,EAEvDyB,aAAajjD,UAAUkrB,gBAAkB,WAAa,EAItDw4B,aAAa1jD,UAAUqnD,YAAc,SAAUrG,GAC7C,IAAI7qD,EAEAqX,EADA7P,EAAM6B,KAAK6c,OAAOnmB,OAItB,IAFAsJ,KAAK4c,gBAAiB,EAEjBjmB,EAAIwH,EAAM,EAAGxH,GAAK,EAAGA,GAAK,EACxBqJ,KAAKu4C,SAAS5hD,KACjBqX,EAAOhO,KAAK6c,OAAOlmB,IAEV2oB,GAAKtR,EAAKwR,IAAMgiC,EAAMxhD,KAAK6c,OAAOlmB,GAAG6oB,IAAMxR,EAAKuR,GAAKvR,EAAKwR,GAAKgiC,EAAMxhD,KAAK6c,OAAOlmB,GAAG6oB,IAC3Fxf,KAAK8nD,UAAUnxD,GAInBqJ,KAAK4c,iBAAiB5c,KAAKu4C,SAAS5hD,IAAKqJ,KAAK4c,eAGhD5c,KAAK+nD,sBACP,EAEA7D,aAAa1jD,UAAUwnD,WAAa,SAAUC,GAC5C,OAAQA,EAAMvqC,IACZ,KAAK,EACH,OAAO1d,KAAKkoD,YAAYD,GAE1B,KAAK,EACH,OAAOjoD,KAAKmoD,WAAWF,GAEzB,KAAK,EACH,OAAOjoD,KAAKooD,YAAYH,GAE1B,KAAK,EAkBL,QACE,OAAOjoD,KAAKqoD,WAAWJ,GAhBzB,KAAK,EACH,OAAOjoD,KAAKsoD,YAAYL,GAE1B,KAAK,EACH,OAAOjoD,KAAKuoD,WAAWN,GAEzB,KAAK,EACH,OAAOjoD,KAAK4U,YAAYqzC,GAE1B,KAAK,GACH,OAAOjoD,KAAKwoD,aAAaP,GAE3B,KAAK,GACH,OAAOjoD,KAAKyoD,cAAcR,GAKhC,EAEA/D,aAAa1jD,UAAUgoD,aAAe,WACpC,MAAM,IAAIvkD,MAAM,mDAClB,EAEAigD,aAAa1jD,UAAUoU,YAAc,SAAU5G,GAC7C,OAAO,IAAIy1C,aAAaz1C,EAAMhO,KAAKqqB,WAAYrqB,KACjD,EAEAkkD,aAAa1jD,UAAUioD,cAAgB,SAAUz6C,GAC/C,OAAO,IAAIs1C,eAAet1C,EAAMhO,KAAKqqB,WAAYrqB,KACnD,EAEAkkD,aAAa1jD,UAAUkoD,cAAgB,WACrC,IAAI/xD,EACAwH,EAAM6B,KAAK6c,OAAOnmB,OAEtB,IAAKC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACxBqJ,KAAK8nD,UAAUnxD,GAGjBqJ,KAAK+nD,sBACP,EAEA7D,aAAa1jD,UAAU4qB,cAAgB,SAAUC,GAE/C,IAAI10B,EADJqJ,KAAK4c,gBAAiB,EAEtB,IACII,EADA7e,EAAMktB,EAAU30B,OAEhBumB,EAAOjd,KAAK6c,OAAOnmB,OAEvB,IAAKC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EAGxB,IAFAqmB,EAAI,EAEGA,EAAIC,GAAM,CACf,GAAIjd,KAAK6c,OAAOG,GAAGgB,KAAOqN,EAAU10B,GAAGqnB,GAAI,CACzChe,KAAK6c,OAAOG,GAAKqO,EAAU10B,GAC3B,KACF,CAEAqmB,GAAK,CACP,CAEJ,EAEAknC,aAAa1jD,UAAU+pB,oBAAsB,SAAUo+B,GACrD3oD,KAAKqqB,WAAWd,iBAAmBo/B,CACrC,EAEAzE,aAAa1jD,UAAUmsB,UAAY,WAC5B3sB,KAAKqqB,WAAWu+B,iBACnB5oD,KAAK0oD,eAET,EAEAxE,aAAa1jD,UAAUqoD,sBAAwB,SAAU/wC,EAASgxC,EAAYC,GAM5E,IALA,IAAIxQ,EAAWv4C,KAAKu4C,SAChB17B,EAAS7c,KAAK6c,OACdlmB,EAAI,EACJwH,EAAM0e,EAAOnmB,OAEVC,EAAIwH,GACL0e,EAAOlmB,GAAG4kC,KAAOutB,IAEdvQ,EAAS5hD,KAAsB,IAAhB4hD,EAAS5hD,IAI3BoyD,EAAUzwD,KAAKigD,EAAS5hD,IACxB4hD,EAAS5hD,GAAGqyD,mBAEa7vD,IAArB0jB,EAAOlmB,GAAGqmD,OACZh9C,KAAK6oD,sBAAsB/wC,EAAS+E,EAAOlmB,GAAGqmD,OAAQ+L,GAEtDjxC,EAAQmxC,aAAaF,KATvB/oD,KAAK8nD,UAAUnxD,GACfqJ,KAAKkpD,kBAAkBpxC,KAa3BnhB,GAAK,CAET,EAEAutD,aAAa1jD,UAAU0oD,kBAAoB,SAAUpxC,GACnD9X,KAAKmpD,gBAAgB7wD,KAAKwf,EAC5B,EAEAosC,aAAa1jD,UAAU6rB,wBAA0B,SAAUnN,GACzD,IAAIvoB,EACAwH,EAAM+gB,EAAOxoB,OAEjB,IAAKC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACxB,GAAIuoB,EAAOvoB,GAAGixB,GAAI,CAChB,IAAI3J,EAAOje,KAAKmoD,WAAWjpC,EAAOvoB,IAClCsnB,EAAKyN,kBACL1rB,KAAKqqB,WAAWd,iBAAiBhC,oBAAoBtJ,EACvD,CAEJ,EAEAimC,aAAa1jD,UAAU4oD,eAAiB,SAAU7tB,GAChD,IAAI5kC,EACAwH,EAAM6B,KAAKu4C,SAAS7hD,OAExB,IAAKC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACxB,GAAIqJ,KAAKu4C,SAAS5hD,GAAGqX,KAAKutB,MAAQA,EAChC,OAAOv7B,KAAKu4C,SAAS5hD,GAIzB,OAAO,IACT,EAEAutD,aAAa1jD,UAAUgvB,iBAAmB,SAAUtT,GAClD,IACIpE,EADAuxC,EAAYntC,EAAK2P,QAGrB,GAAyB,kBAAdw9B,EACTvxC,EAAU9X,KAAKu4C,SAAS8Q,OACnB,CACL,IAAI1yD,EACAwH,EAAM6B,KAAKu4C,SAAS7hD,OAExB,IAAKC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACxB,GAAIqJ,KAAKu4C,SAAS5hD,GAAGqX,KAAK0Z,KAAO2hC,EAAW,CAC1CvxC,EAAU9X,KAAKu4C,SAAS5hD,GACxB,KACF,CAEJ,CAEA,OAAoB,IAAhBulB,EAAKxlB,OACAohB,EAGFA,EAAQ0X,iBAAiBtT,EAClC,EAEAgoC,aAAa1jD,UAAU8oD,gBAAkB,SAAUn9B,EAAUo9B,GAC3DvpD,KAAKqqB,WAAWkB,YAAc,IAAIqwB,YAClC57C,KAAKqqB,WAAWkW,YAAcqgB,YAAYz0B,GAC1CnsB,KAAKqqB,WAAWkB,YAAYC,SAASW,EAAS/M,OAC9Cpf,KAAKqqB,WAAWkB,YAAYE,SAASU,EAASb,MAAOi+B,GACrDvpD,KAAKqqB,WAAW8E,aAAenvB,KAAKwpD,cAAcr6B,aAAatnB,KAAK7H,KAAKwpD,eACzExpD,KAAKqqB,WAAW3G,cAAgB1jB,KAAKwpD,cAAc9lC,cAAc7b,KAAK7H,KAAKwpD,eAC3ExpD,KAAKqqB,WAAWk5B,YAAcvjD,KAAKwpD,cAAchgC,eACjDxpB,KAAKqqB,WAAWZ,gBAAkBzpB,KAAKwpD,cAAc//B,gBACrDzpB,KAAKqqB,WAAW+U,QAAU,EAC1Bp/B,KAAKqqB,WAAW9B,UAAY4D,EAASC,GACrCpsB,KAAKqqB,WAAW3C,GAAKyE,EAASzE,GAC9B1nB,KAAKqqB,WAAWo/B,SAAW,CACzB3N,EAAG3vB,EAAS2vB,EACZrgD,EAAG0wB,EAAS1wB,EAEhB,EAIA0oD,iBAAiB3jD,UAAY,CAC3BkpD,cAAe,WACb1pD,KAAK2hD,eAAiB,CACpBC,MAAO5hD,KAAKgO,KAAKsQ,GAAKgxB,yBAAyBqB,qBAAqB3wC,KAAMA,KAAKgO,KAAKsQ,GAAIte,MAAQ,CAC9F7J,EAAG,GAELwzD,SAAS,EACTC,QAAQ,EACRzZ,IAAK,IAAInK,QAGPhmC,KAAKgO,KAAK67C,KACZ7pD,KAAK2hD,eAAeC,MAAMtR,cAAe,GAIvCtwC,KAAKgO,KAAK0P,EAEhB,EACAosC,gBAAiB,WAIf,GAHA9pD,KAAK2hD,eAAeiI,OAAS5pD,KAAK2hD,eAAeC,MAAMzrD,EAAE+oC,MAAQl/B,KAAKu/B,cACtEv/B,KAAK2hD,eAAegI,QAAU3pD,KAAK2hD,eAAeC,MAAM1iB,MAAQl/B,KAAKu/B,cAEjEv/B,KAAK+oD,UAAW,CAClB,IAAI5Y,EACA4Z,EAAW/pD,KAAK2hD,eAAexR,IAC/Bx5C,EAAI,EACJwH,EAAM6B,KAAK+oD,UAAUryD,OAEzB,IAAKsJ,KAAK2hD,eAAegI,QACvB,KAAOhzD,EAAIwH,GAAK,CACd,GAAI6B,KAAK+oD,UAAUpyD,GAAGgrD,eAAeC,MAAM1iB,KAAM,CAC/Cl/B,KAAK2hD,eAAegI,SAAU,EAC9B,KACF,CAEAhzD,GAAK,CACP,CAGF,GAAIqJ,KAAK2hD,eAAegI,QAItB,IAHAxZ,EAAMnwC,KAAK2hD,eAAeC,MAAM7nC,EAAErR,MAClCqhD,EAASrgB,eAAeyG,GAEnBx5C,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACxBw5C,EAAMnwC,KAAK+oD,UAAUpyD,GAAGgrD,eAAeC,MAAM7nC,EAAErR,MAC/CqhD,EAASxiB,UAAU4I,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAAIA,EAAI,IAAKA,EAAI,IAAKA,EAAI,IAAKA,EAAI,IAAKA,EAAI,IAAKA,EAAI,IAG1J,CACF,EACA6Z,cAAe,SAAuBxsC,GACpC,IAAIysC,EAAa,GACjBA,EAAW3xD,KAAK0H,KAAK2hD,gBAIrB,IAHA,IAeIhrD,EAfAsc,GAAO,EACPgL,EAAOje,KAAKie,KAEThL,GACDgL,EAAK0jC,gBACH1jC,EAAKjQ,KAAKqP,SACZ4sC,EAAW3jC,OAAO,EAAG,EAAGrI,EAAK0jC,gBAG/B1jC,EAAOA,EAAKA,MAEZhL,GAAO,EAKX,IACIi3C,EADA/rD,EAAM8rD,EAAWvzD,OAGrB,IAAKC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACxBuzD,EAAQD,EAAWtzD,GAAGw5C,IAAI/F,kBAAkB,EAAG,EAAG,GAElD5sB,EAAK,CAACA,EAAG,GAAK0sC,EAAM,GAAI1sC,EAAG,GAAK0sC,EAAM,GAAI,GAG5C,OAAO1sC,CACT,EACA2sC,QAAS,IAAInkB,QAqJfoe,YAAY5jD,UAAU4pD,gBAAkB,SAAUjpB,GAChD,OAAOnhC,KAAKskD,SAASnjB,GAAKttB,IAC5B,EAEAuwC,YAAY5jD,UAAU0sB,YAAc,SAAUm9B,GAC5C,IACI1zD,EADAozD,EAAW/pD,KAAK8X,QAAQ6pC,eAAexR,IAEvChyC,EAAM6B,KAAKud,gBAAgB7mB,OAE/B,IAAKC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EASxB,IARIqJ,KAAKskD,SAAS3tD,GAAGkd,KAAKqrB,MAAQmrB,IAChCrqD,KAAKylD,SAASzlD,KAAKud,gBAAgB5mB,GAAIqJ,KAAKskD,SAAS3tD,GAAGkd,KAAKkG,EAAG/Z,KAAKskD,SAAS3tD,KAG5EqJ,KAAKskD,SAAS3tD,GAAG4oB,GAAG2f,MAAQmrB,IAC9BrqD,KAAKskD,SAAS3tD,GAAGy5B,KAAKa,aAAa,eAAgBjxB,KAAKskD,SAAS3tD,GAAG4oB,GAAGxF,GAGpC,MAAjC/Z,KAAKud,gBAAgB5mB,GAAG0rD,OACtBriD,KAAKskD,SAAS3tD,GAAG6uD,UAAYxlD,KAAK8X,QAAQ6pC,eAAeC,MAAM1iB,MAAQmrB,IACzErqD,KAAKskD,SAAS3tD,GAAG6uD,QAAQv0B,aAAa,YAAa84B,EAAS/f,mBAAmBiB,WAG7EjrC,KAAKi3B,WAAWtgC,GAAGm8B,IAAM9yB,KAAKi3B,WAAWtgC,GAAGm8B,EAAEoM,MAAQmrB,IAAe,CACvE,IAAI3F,EAAU1kD,KAAKi3B,WAAWtgC,GAAGwuD,MAE7BnlD,KAAKi3B,WAAWtgC,GAAGm8B,EAAE/Y,EAAI,GACa,UAApC/Z,KAAKi3B,WAAWtgC,GAAGyuD,eACrBplD,KAAKi3B,WAAWtgC,GAAGyuD,aAAe,QAClCplD,KAAKi3B,WAAWtgC,GAAGy5B,KAAKa,aAAa,SAAU,OAAS7d,kBAAoB,IAAMpT,KAAKi3B,WAAWtgC,GAAG0uD,SAAW,MAGlHX,EAAQzzB,aAAa,UAAWjxB,KAAKi3B,WAAWtgC,GAAGm8B,EAAE/Y,KAEb,WAApC/Z,KAAKi3B,WAAWtgC,GAAGyuD,eACrBplD,KAAKi3B,WAAWtgC,GAAGyuD,aAAe,SAClCplD,KAAKi3B,WAAWtgC,GAAGy5B,KAAKa,aAAa,SAAU,OAGjDjxB,KAAKi3B,WAAWtgC,GAAGy5B,KAAKa,aAAa,eAAyC,EAAzBjxB,KAAKi3B,WAAWtgC,GAAGm8B,EAAE/Y,GAE9E,CAGN,EAEAqqC,YAAY5jD,UAAU8pD,eAAiB,WACrC,OAAOtqD,KAAKqkD,WACd,EAEAD,YAAY5jD,UAAU+kD,qBAAuB,WAC3C,IAAIrpC,EAAO,QAKX,OAJAA,GAAQ,KAAOlc,KAAKqqB,WAAWo/B,SAAS3N,EACxC5/B,GAAQ,KAAOlc,KAAKqqB,WAAWo/B,SAAShuD,EACxCygB,GAAQ,MAAQlc,KAAKqqB,WAAWo/B,SAAS3N,EACzC5/B,GAAQ,MAAQlc,KAAKqqB,WAAWo/B,SAAShuD,EAAI,GAE/C,EAEA2oD,YAAY5jD,UAAUilD,SAAW,SAAU3lC,EAAUyqC,EAAWjG,GAC9D,IACI3tD,EACAwH,EAFAqsD,EAAa,KAAOD,EAAUxwC,EAAE,GAAG,GAAK,IAAMwwC,EAAUxwC,EAAE,GAAG,GAKjE,IAFA5b,EAAMosD,EAAU71B,QAEX/9B,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EAExB6zD,GAAc,KAAOD,EAAUp0D,EAAEQ,EAAI,GAAG,GAAK,IAAM4zD,EAAUp0D,EAAEQ,EAAI,GAAG,GAAK,IAAM4zD,EAAU5zD,EAAEA,GAAG,GAAK,IAAM4zD,EAAU5zD,EAAEA,GAAG,GAAK,IAAM4zD,EAAUxwC,EAAEpjB,GAAG,GAAK,IAAM4zD,EAAUxwC,EAAEpjB,GAAG,GAShL,GALI4zD,EAAUtqC,GAAK9hB,EAAM,IACvBqsD,GAAc,KAAOD,EAAUp0D,EAAEQ,EAAI,GAAG,GAAK,IAAM4zD,EAAUp0D,EAAEQ,EAAI,GAAG,GAAK,IAAM4zD,EAAU5zD,EAAE,GAAG,GAAK,IAAM4zD,EAAU5zD,EAAE,GAAG,GAAK,IAAM4zD,EAAUxwC,EAAE,GAAG,GAAK,IAAMwwC,EAAUxwC,EAAE,GAAG,IAI5KuqC,EAASW,WAAauF,EAAY,CACpC,IAAIC,EAAiB,GAEjBnG,EAASl0B,OACPm6B,EAAUtqC,IACZwqC,EAAiB3qC,EAASi4B,IAAM/3C,KAAKukD,UAAYiG,EAAaA,GAGhElG,EAASl0B,KAAKa,aAAa,IAAKw5B,IAGlCnG,EAASW,SAAWuF,CACtB,CACF,EAEApG,YAAY5jD,UAAU4kB,QAAU,WAC9BplB,KAAK8X,QAAU,KACf9X,KAAKqqB,WAAa,KAClBrqB,KAAKqkD,YAAc,KACnBrkD,KAAKgO,KAAO,KACZhO,KAAKud,gBAAkB,IACzB,EAEA,IAAImtC,eAAiB,WACnB,IAAIlmC,EAAK,CACTA,aAGA,SAAsBmmC,EAAOC,GAC3B,IAAIC,EAAMtvC,SAAS,UAWnB,OAVAsvC,EAAI55B,aAAa,KAAM05B,IAEC,IAApBC,IACFC,EAAI55B,aAAa,cAAe,qBAChC45B,EAAI55B,aAAa,IAAK,MACtB45B,EAAI55B,aAAa,IAAK,MACtB45B,EAAI55B,aAAa,QAAS,QAC1B45B,EAAI55B,aAAa,SAAU,SAGtB45B,CACT,EAfArmC,6BAiBA,WACE,IAAIsmC,EAAgBvvC,SAAS,iBAI7B,OAHAuvC,EAAc75B,aAAa,OAAQ,UACnC65B,EAAc75B,aAAa,8BAA+B,QAC1D65B,EAAc75B,aAAa,SAAU,8CAC9B65B,CACT,GAEA,OAAOtmC,CACT,CA7BqB,GA+BjBumC,eAAiB,WACnB,IAAIvmC,EAAK,CACPsgC,UAAU,EACVkG,eAAe,EACfC,gBAA4C,qBAApBtN,iBAW1B,OARI,WAAWzkD,KAAK4U,UAAUC,YAAc,UAAU7U,KAAK4U,UAAUC,YAAc,WAAW7U,KAAK4U,UAAUC,YAAc,aAAa7U,KAAK4U,UAAUC,cACrJyW,EAAGsgC,UAAW,GAGZ,WAAW5rD,KAAK4U,UAAUC,aAC5ByW,EAAGwmC,eAAgB,GAGdxmC,CACT,CAhBqB,GAkBjB0mC,kBAAoB,CAAC,EACrBC,SAAW,iBAEf,SAASC,WAAWh7B,GAClB,IAAIz5B,EAOA00D,EANA7/C,EAAS,gBACTrN,EAAMiyB,EAAKpiB,KAAKg1C,GAAK5yB,EAAKpiB,KAAKg1C,GAAGtsD,OAAS,EAC3Ci0D,EAAQ/wC,kBACRixC,EAAMH,eAAeY,aAAaX,GAAO,GACzCtP,EAAQ,EAIZ,IAHAr7C,KAAKurD,QAAU,GAGV50D,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EAAG,CAC3B00D,EAAgB,KAChB,IAAIhpD,EAAO+tB,EAAKpiB,KAAKg1C,GAAGrsD,GAAG+mB,GAEvBwtC,kBAAkB7oD,KAEpBgpD,EAAgB,IAAIG,EADPN,kBAAkB7oD,GAAMopD,QACVZ,EAAKz6B,EAAK82B,eAAejE,eAAetsD,GAAIy5B,EAAM+6B,SAAW9P,EAAO7vC,GAC/FA,EAAS2/C,SAAW9P,EAEhB6P,kBAAkB7oD,GAAMqpD,iBAC1BrQ,GAAS,IAITgQ,GACFrrD,KAAKurD,QAAQjzD,KAAK+yD,EAEtB,CAEIhQ,IACFjrB,EAAK/F,WAAWC,KAAKzE,YAAYglC,GACjCz6B,EAAK62B,aAAah2B,aAAa,SAAU,OAAS7d,kBAAoB,IAAMu3C,EAAQ,MAGlF3qD,KAAKurD,QAAQ70D,QACf05B,EAAKgxB,uBAAuBphD,KAEhC,CAWA,SAAS2rD,eAAe3tC,EAAIytC,EAAQC,GAClCR,kBAAkBltC,GAAM,CACtBytC,OAAQA,EACRC,eAAgBA,EAEpB,CAEA,SAASE,iBAAkB,CA4L3B,SAASC,mBAAoB,CAgD7B,SAASC,uBAAwB,CAmEjC,SAASC,cAAc/9C,EAAMqc,EAAYpM,GACvCje,KAAK2jB,UAAY0G,EAAW8E,aAAanhB,EAAK4P,OAE1C5d,KAAK2jB,WAAa3jB,KAAK2jB,UAAU2c,MACnCtgC,KAAK2jB,UAAY0G,EAAWkW,YAAYF,QAAQrgC,KAAK2jB,YAGvD3jB,KAAKgsD,YAAYh+C,EAAMqc,EAAYpM,GACnCje,KAAKisD,WAAa,CAChBh0C,IAAK,EACLC,KAAM,EACN2K,MAAO7iB,KAAK2jB,UAAUm4B,EACtBh5B,OAAQ9iB,KAAK2jB,UAAUloB,EAE3B,CAkBA,SAASywD,iBAAiBp0C,EAASE,GACjChY,KAAKowB,KAAOtY,EACZ9X,KAAKmhC,IAAMnpB,CACb,CAEA,SAASm0C,gBAAiB,CApW1Bf,WAAW5qD,UAAU0sB,YAAc,SAAUqS,GAC3C,IAAI5oC,EACAwH,EAAM6B,KAAKurD,QAAQ70D,OAEvB,IAAKC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACxBqJ,KAAKurD,QAAQ50D,GAAGu2B,YAAYqS,EAEhC,EAWAqsB,eAAeprD,UAAY,CACzB4rD,oBAAqB,WACnBpsD,KAAKinD,aAAe1rC,SAAS,IAC/B,EACA8wC,wBAAyB,WACvBrsD,KAAKssD,aAAe/wC,SAAS,KAC7Bvb,KAAKusD,mBAAqBvsD,KAAKinD,aAC/BjnD,KAAK0lD,cAAgB1lD,KAAKinD,aAC1BjnD,KAAKwsD,cAAe,EACpB,IAAIC,EAAqB,KAEzB,GAAIzsD,KAAKgO,KAAK0+C,GAAI,CAChB1sD,KAAK2sD,WAAa,CAAC,EACnB,IAAIC,EAAKrxC,SAAS,KAClBqxC,EAAG37B,aAAa,KAAMjxB,KAAK6kD,SAC3B+H,EAAG/mC,YAAY7lB,KAAKinD,cACpBwF,EAAqBG,EACrB5sD,KAAKqqB,WAAWC,KAAKzE,YAAY+mC,EACnC,MAAW5sD,KAAKgO,KAAK1R,IACnB0D,KAAKssD,aAAazmC,YAAY7lB,KAAKinD,cACnCwF,EAAqBzsD,KAAKssD,aAC1BtsD,KAAKgnD,YAAchnD,KAAKssD,cAExBtsD,KAAKgnD,YAAchnD,KAAKinD,aAY1B,GATIjnD,KAAKgO,KAAK6+C,IACZ7sD,KAAKinD,aAAah2B,aAAa,KAAMjxB,KAAKgO,KAAK6+C,IAG7C7sD,KAAKgO,KAAKqS,IACZrgB,KAAKinD,aAAah2B,aAAa,QAASjxB,KAAKgO,KAAKqS,IAI/B,IAAjBrgB,KAAKgO,KAAK0P,KAAa1d,KAAKgO,KAAK8+C,GAAI,CACvC,IAAIC,EAAKxxC,SAAS,YACdiC,EAAKjC,SAAS,QAClBiC,EAAGyT,aAAa,IAAK,SAAWjxB,KAAKgO,KAAK8tC,EAAI,OAAS97C,KAAKgO,KAAK8tC,EAAI,IAAM97C,KAAKgO,KAAKvS,EAAI,OAASuE,KAAKgO,KAAKvS,EAAI,KAChH,IAAIuxD,EAASpzC,kBAKb,GAJAmzC,EAAG97B,aAAa,KAAM+7B,GACtBD,EAAGlnC,YAAYrI,GACfxd,KAAKqqB,WAAWC,KAAKzE,YAAYknC,GAE7B/sD,KAAK4lD,aAAc,CACrB,IAAIqH,EAAU1xC,SAAS,KACvB0xC,EAAQh8B,aAAa,YAAa,OAAS7d,kBAAoB,IAAM45C,EAAS,KAC9EC,EAAQpnC,YAAY7lB,KAAKinD,cACzBjnD,KAAKusD,mBAAqBU,EAEtBR,EACFA,EAAmB5mC,YAAY7lB,KAAKusD,oBAEpCvsD,KAAKgnD,YAAchnD,KAAKusD,kBAE5B,MACEvsD,KAAKinD,aAAah2B,aAAa,YAAa,OAAS7d,kBAAoB,IAAM45C,EAAS,IAE5F,CAEqB,IAAjBhtD,KAAKgO,KAAK+4C,IACZ/mD,KAAK6mD,cAET,EACAqG,cAAe,WACTltD,KAAK2hD,eAAegI,SACtB3pD,KAAKusD,mBAAmBt7B,aAAa,YAAajxB,KAAK2hD,eAAexR,IAAIlF,WAGxEjrC,KAAK2hD,eAAeiI,QACtB5pD,KAAKusD,mBAAmBt7B,aAAa,UAAWjxB,KAAK2hD,eAAeC,MAAMzrD,EAAE4jB,EAEhF,EACAozC,mBAAoB,WAClBntD,KAAKinD,aAAe,KACpBjnD,KAAKssD,aAAe,KACpBtsD,KAAKmmD,YAAY/gC,SACnB,EACAmiC,eAAgB,WACd,OAAIvnD,KAAKgO,KAAK8+C,GACL,KAGF9sD,KAAKgnD,WACd,EACAoG,2BAA4B,WAC1BptD,KAAKmmD,YAAc,IAAI/B,YAAYpkD,KAAKgO,KAAMhO,KAAMA,KAAKqqB,YACzDrqB,KAAKqtD,yBAA2B,IAAIjC,WAAWprD,KACjD,EACAstD,SAAU,SAAkBC,GAQ1B,GAJKvtD,KAAK2sD,aACR3sD,KAAK2sD,WAAa,CAAC,IAGhB3sD,KAAK2sD,WAAWY,GAAY,CAC/B,IACI5C,EACAE,EACA2C,EACAZ,EAJA5uC,EAAKhe,KAAK6kD,QAAU,IAAM0I,EAM9B,GAAkB,IAAdA,GAAiC,IAAdA,EAAiB,CACtC,IAAIE,EAASlyC,SAAS,QACtBkyC,EAAOx8B,aAAa,KAAMjT,GAC1ByvC,EAAOx8B,aAAa,YAA2B,IAAds8B,EAAkB,YAAc,UACjEC,EAAajyC,SAAS,QACXmK,eAAe,+BAAgC,OAAQ,IAAM1lB,KAAK6kD,SAC7E4I,EAAO5nC,YAAY2nC,GACnBxtD,KAAKqqB,WAAWC,KAAKzE,YAAY4nC,GAE5B1C,eAAejG,UAA0B,IAAdyI,IAC9BE,EAAOx8B,aAAa,YAAa,aACjC05B,EAAQ/wC,kBACRixC,EAAMH,eAAeY,aAAaX,GAClC3qD,KAAKqqB,WAAWC,KAAKzE,YAAYglC,GACjCA,EAAIhlC,YAAY6kC,eAAegD,iCAC/Bd,EAAKrxC,SAAS,MACXsK,YAAY2nC,GACfC,EAAO5nC,YAAY+mC,GACnBA,EAAG37B,aAAa,SAAU,OAAS7d,kBAAoB,IAAMu3C,EAAQ,KAEzE,MAAO,GAAkB,IAAd4C,EAAiB,CAC1B,IAAII,EAAYpyC,SAAS,QACzBoyC,EAAU18B,aAAa,KAAMjT,GAC7B2vC,EAAU18B,aAAa,YAAa,SACpC,IAAI28B,EAAcryC,SAAS,KAC3BoyC,EAAU9nC,YAAY+nC,GACtBjD,EAAQ/wC,kBACRixC,EAAMH,eAAeY,aAAaX,GAElC,IAAIkD,EAAQtyC,SAAS,uBACrBsyC,EAAM58B,aAAa,KAAM,iBACzB45B,EAAIhlC,YAAYgoC,GAChB,IAAIC,EAASvyC,SAAS,WACtBuyC,EAAO78B,aAAa,OAAQ,SAC5B68B,EAAO78B,aAAa,cAAe,WACnC48B,EAAMhoC,YAAYioC,GAElB9tD,KAAKqqB,WAAWC,KAAKzE,YAAYglC,GACjC,IAAIkD,EAAYxyC,SAAS,QACzBwyC,EAAU98B,aAAa,QAASjxB,KAAKie,KAAKjQ,KAAK8tC,GAC/CiS,EAAU98B,aAAa,SAAUjxB,KAAKie,KAAKjQ,KAAKvS,GAChDsyD,EAAU98B,aAAa,IAAK,KAC5B88B,EAAU98B,aAAa,IAAK,KAC5B88B,EAAU98B,aAAa,OAAQ,WAC/B88B,EAAU98B,aAAa,UAAW,KAClC28B,EAAY38B,aAAa,SAAU,OAAS7d,kBAAoB,IAAMu3C,EAAQ,KAC9EiD,EAAY/nC,YAAYkoC,IACxBP,EAAajyC,SAAS,QACXmK,eAAe,+BAAgC,OAAQ,IAAM1lB,KAAK6kD,SAC7E+I,EAAY/nC,YAAY2nC,GAEnBzC,eAAejG,WAClB6I,EAAU18B,aAAa,YAAa,aACpC45B,EAAIhlC,YAAY6kC,eAAegD,gCAC/Bd,EAAKrxC,SAAS,KACdqyC,EAAY/nC,YAAYkoC,GACxBnB,EAAG/mC,YAAY7lB,KAAKinD,cACpB2G,EAAY/nC,YAAY+mC,IAG1B5sD,KAAKqqB,WAAWC,KAAKzE,YAAY8nC,EACnC,CAEA3tD,KAAK2sD,WAAWY,GAAavvC,CAC/B,CAEA,OAAOhe,KAAK2sD,WAAWY,EACzB,EACAS,SAAU,SAAkBhwC,GACrBhe,KAAKssD,cAIVtsD,KAAKssD,aAAar7B,aAAa,OAAQ,OAAS7d,kBAAoB,IAAM4K,EAAK,IACjF,GAUF6tC,iBAAiBrrD,UAAY,CAM3BytD,cAAe,WAEbjuD,KAAK+oD,UAAY,GAEjB/oD,KAAKsnD,WAAY,EACjBtnD,KAAKkuD,gBACP,EASAjF,aAAc,SAAsBF,GAClC/oD,KAAK+oD,UAAYA,CACnB,EAOAC,YAAa,WACXhpD,KAAKsnD,WAAY,CACnB,EAOA4G,eAAgB,gBACW/0D,IAArB6G,KAAKgO,KAAKgvC,QACZh9C,KAAKie,KAAK4qC,sBAAsB7oD,KAAMA,KAAKgO,KAAKgvC,OAAQ,GAE5D,GAmEAzpC,gBAAgB,CAACstC,kBAAmB/sC,oBA7DnB,CACfk4C,YAAa,SAAqBh+C,EAAMqc,EAAYpM,GAClDje,KAAKk6B,YACLl6B,KAAKwjD,aAAax1C,EAAMqc,EAAYpM,GACpCje,KAAK0pD,cAAc17C,EAAMqc,EAAYpM,GACrCje,KAAKiuD,gBACLjuD,KAAK+gD,iBACL/gD,KAAKosD,sBACLpsD,KAAKqsD,0BACLrsD,KAAKotD,6BACLptD,KAAKmuD,gBACLnuD,KAAKovB,MACP,EACAA,KAAM,WAECpvB,KAAKihD,QAAYjhD,KAAKghD,YAAahhD,KAAKkhD,iBAChClhD,KAAKgnD,aAAehnD,KAAKinD,cAC/BlvC,MAAMI,QAAU,OACrBnY,KAAKihD,QAAS,EAElB,EACA5xB,KAAM,WAEArvB,KAAKghD,YAAchhD,KAAKkhD,gBACrBlhD,KAAKgO,KAAK8+C,MACF9sD,KAAKgnD,aAAehnD,KAAKinD,cAC/BlvC,MAAMI,QAAU,SAGvBnY,KAAKihD,QAAS,EACdjhD,KAAKu/B,eAAgB,EAEzB,EACArS,YAAa,WAGPltB,KAAKgO,KAAK8+C,IAAM9sD,KAAKihD,SAIzBjhD,KAAK8pD,kBACL9pD,KAAK+hD,mBACL/hD,KAAKktD,gBACLltD,KAAKouD,qBAEDpuD,KAAKu/B,gBACPv/B,KAAKu/B,eAAgB,GAEzB,EACA6uB,mBAAoB,WAA+B,EACnDzmC,aAAc,SAAsB65B,GAClCxhD,KAAKk/B,MAAO,EACZl/B,KAAKuhD,uBAAuBC,GAC5BxhD,KAAKonD,kBAAkB5F,EAAKxhD,KAAKghD,WACjChhD,KAAK0hD,mBACP,EACAt8B,QAAS,WACPplB,KAAKquD,UAAY,KACjBruD,KAAKmtD,oBACP,KAEoErB,sBAmBxEv4C,gBAAgB,CAAC6vC,YAAae,iBAAkByH,eAAgBC,iBAAkBxI,aAAcyI,sBAAuBC,eAEvHA,cAAcvrD,UAAU2tD,cAAgB,WACtC,IAAIt5C,EAAY7U,KAAKqqB,WAAW3G,cAAc1jB,KAAK2jB,WACnD3jB,KAAKquD,UAAY9yC,SAAS,SAC1Bvb,KAAKquD,UAAUp9B,aAAa,QAASjxB,KAAK2jB,UAAUm4B,EAAI,MACxD97C,KAAKquD,UAAUp9B,aAAa,SAAUjxB,KAAK2jB,UAAUloB,EAAI,MACzDuE,KAAKquD,UAAUp9B,aAAa,sBAAuBjxB,KAAK2jB,UAAU2qC,IAAMtuD,KAAKqqB,WAAWw3B,aAAa0M,0BACrGvuD,KAAKquD,UAAU3oC,eAAe,+BAAgC,OAAQ7Q,GACtE7U,KAAKinD,aAAaphC,YAAY7lB,KAAKquD,UACrC,EAEAtC,cAAcvrD,UAAUwhD,iBAAmB,WACzC,OAAOhiD,KAAKisD,UACd,EASAE,cAAc3rD,UAAY,CACxBguD,oBAAqB,SAA6BxgD,GAChD,IAAIrX,EACAwH,EAAM6B,KAAKyuD,eAAe/3D,OAE9B,IAAKC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACxBqJ,KAAKyuD,eAAe93D,GAAG2rC,SAASt0B,EAEpC,EACA0gD,2BAA4B,SAAoC1gD,GAI9D,IAHA,IACI7P,EAAM6B,KAAKyuD,eAAe/3D,OADtB,EAGGyH,GACT,GAAI6B,KAAKyuD,eAJH,GAIqBE,oBAAoB3gD,GAC7C,OAAO,EAIX,OAAO,CACT,EACA4gD,gBAAiB,WACf,GAAK5uD,KAAKyuD,eAAe/3D,OAAzB,CAIA,IAAIC,EACAwH,EAAM6B,KAAK8d,OAAOpnB,OAEtB,IAAKC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACxBqJ,KAAK8d,OAAOnnB,GAAG0lC,GAAG72B,QAMpB,IAAK7O,GAHLwH,EAAM6B,KAAKyuD,eAAe/3D,QAGX,EAAGC,GAAK,IACAqJ,KAAKyuD,eAAe93D,GAAGu3C,cAAcluC,KAAKu/B,eADvC5oC,GAAK,GAZ/B,CAoBF,EACAk4D,uBAAwB,SAAgCz+B,GAKtD,IAJA,IAAImoB,EAAWv4C,KAAK8uD,kBAChBn4D,EAAI,EACJwH,EAAMo6C,EAAS7hD,OAEZC,EAAIwH,GAAK,CACd,GAAIo6C,EAAS5hD,GAAGy5B,OAASA,EACvB,OAAOmoB,EAAS5hD,GAAGwqC,IAGrBxqC,GAAK,CACP,CAEA,OAAO,CACT,EACAo4D,oBAAqB,SAA6B3+B,EAAM+Q,GAItD,IAHA,IAAIoX,EAAWv4C,KAAK8uD,kBAChBn4D,EAAI4hD,EAAS7hD,OAEVC,GAGL,GAAI4hD,EAFJ5hD,GAAK,GAEWy5B,OAASA,EAEvB,YADAmoB,EAAS5hD,GAAGwqC,IAAMA,GAKtBoX,EAASjgD,KAAK,IAAI4zD,iBAAiB97B,EAAM+Q,GAC3C,EACAxZ,aAAc,SAAsB65B,GAClCxhD,KAAKuhD,uBAAuBC,GAC5BxhD,KAAKonD,kBAAkB5F,EAAKxhD,KAAKghD,UACnC,GAGF,IAAIgO,YAAc,CAChB,EAAG,OACH,EAAG,QACH,EAAG,UAEDC,aAAe,CACjB,EAAG,QACH,EAAG,QACH,EAAG,SAGL,SAASC,aAAaC,EAAcC,EAAOjtB,GACzCniC,KAAKqvD,OAAS,GACdrvD,KAAKi3C,OAAS,GACdj3C,KAAKmvD,aAAeA,EACpBnvD,KAAKsvD,KAAO,GACZtvD,KAAKq8B,GAAK8F,EACVniC,KAAKuvD,IAAMH,EAIXpvD,KAAK0gC,cAAgByB,EAAMjlB,EAK3B,IAHA,IAAIvmB,EAAI,EACJwH,EAAMgxD,EAAaz4D,OAEhBC,EAAIwH,GAAK,CACd,GAAIgxD,EAAax4D,GAAGojD,OAAOtZ,kBAAkB/pC,OAAQ,CACnDsJ,KAAK0gC,aAAc,EACnB,KACF,CAEA/pC,GAAK,CACP,CACF,CAMA,SAAS64D,aAAaxhD,EAAMohD,GAC1BpvD,KAAKgO,KAAOA,EACZhO,KAAKqC,KAAO2L,EAAK0P,GACjB1d,KAAK1F,EAAI,GACT0F,KAAKuvD,IAAMH,EACXpvD,KAAKk/B,MAAO,EACZl/B,KAAKogB,QAAqB,IAAZpS,EAAK8+C,GACnB9sD,KAAKyvD,MAAQl0C,SAAS,QACtBvb,KAAK0vD,OAAS,IAChB,CAOA,SAASC,aAAav/B,EAAMpiB,EAAM+a,EAAUkB,GAU1C,IAAItzB,EATJqJ,KAAKowB,KAAOA,EACZpwB,KAAKo/B,SAAW,EAChBp/B,KAAK4vD,UAAY35C,iBAAiBjI,EAAKtX,QACvCsJ,KAAK+oB,SAAWA,EAChB/oB,KAAKkd,GAAI,EACTld,KAAK6vD,QAAU,GACf7vD,KAAK8vD,UAAYl6C,iBAAiB,UAAW5H,EAAKtX,OAASsX,EAAKtX,OAAS,EAAI,GAC7EsJ,KAAK+vD,WAAan6C,iBAAiB,UAAW,GAC9C5V,KAAK4gC,6BAA6B3W,GAElC,IACIpW,EADA1V,EAAM6P,EAAKtX,QAAU,EAGzB,IAAKC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACxBkd,EAAOusB,gBAAgBC,QAAQjQ,EAAMpiB,EAAKrX,GAAGojB,EAAG,EAAG,EAAG/Z,MACtDA,KAAKkd,EAAIrJ,EAAKqJ,GAAKld,KAAKkd,EACxBld,KAAK4vD,UAAUj5D,GAAK,CAClBG,EAAGkX,EAAKrX,GAAGG,EACX8F,EAAGiX,GAIF7T,KAAKkd,GACRld,KAAK+/B,UAAS,GAGhB//B,KAAK0gC,YAAc1gC,KAAKkd,CAC1B,CAmCA,SAAS8yC,mBAAmB5/B,EAAMpiB,EAAMiiD,GACtCjwD,KAAK4gC,6BAA6BxQ,GAClCpwB,KAAK+/B,SAAW//B,KAAK2gC,yBACrB3gC,KAAK7J,EAAIiqC,gBAAgBC,QAAQjQ,EAAMpiB,EAAK7X,EAAG,EAAG,IAAM6J,MACxDA,KAAK87C,EAAI1b,gBAAgBC,QAAQjQ,EAAMpiB,EAAK8tC,EAAG,EAAG,KAAM97C,MACxDA,KAAK1F,EAAI,IAAIq1D,aAAav/B,EAAMpiB,EAAK1T,GAAK,CAAC,EAAG,MAAO0F,MACrDA,KAAKigB,EAAImgB,gBAAgBC,QAAQjQ,EAAMpiB,EAAKiS,EAAG,EAAG,IAAKjgB,MACvDA,KAAK+X,MAAQk4C,EACbjwD,KAAK0gC,cAAgB1gC,KAAK0gC,WAC5B,CAIA,SAASwvB,iBAAiB9/B,EAAMpiB,EAAMiiD,GACpCjwD,KAAK4gC,6BAA6BxQ,GAClCpwB,KAAK+/B,SAAW//B,KAAK2gC,yBACrB3gC,KAAK7J,EAAIiqC,gBAAgBC,QAAQjQ,EAAMpiB,EAAK7X,EAAG,EAAG,IAAM6J,MACxDA,KAAKigB,EAAImgB,gBAAgBC,QAAQjQ,EAAMpiB,EAAKiS,EAAG,EAAG,IAAKjgB,MACvDA,KAAK+X,MAAQk4C,CACf,CAIA,SAASE,eAAe//B,EAAMpiB,EAAMiiD,GAClCjwD,KAAK4gC,6BAA6BxQ,GAClCpwB,KAAK+/B,SAAW//B,KAAK2gC,yBACrB3gC,KAAK+X,MAAQk4C,CACf,CAIA,SAASG,iBAAiBhgC,EAAMpiB,EAAMic,GACpCjqB,KAAKgO,KAAOA,EACZhO,KAAKigB,EAAIrK,iBAAiB,SAAmB,EAAT5H,EAAKpR,GACzC,IAAIyzD,EAAUriD,EAAKkP,EAAEA,EAAE,GAAGrmB,EAAImX,EAAKkP,EAAEA,EAAE,GAAGrmB,EAAEH,OAAkB,EAATsX,EAAKpR,EAAQoR,EAAKkP,EAAEA,EAAExmB,OAAkB,EAATsX,EAAKpR,EACzFoD,KAAK7J,EAAIyf,iBAAiB,UAAWy6C,GACrCrwD,KAAKswD,OAAQ,EACbtwD,KAAKuwD,OAAQ,EACbvwD,KAAKwwD,aAAexwD,KAAKywD,mBACzBzwD,KAAK0wD,YAAcL,EACnBrwD,KAAK4gC,6BAA6B3W,GAClCjqB,KAAK6T,KAAOusB,gBAAgBC,QAAQjQ,EAAMpiB,EAAKkP,EAAG,EAAG,KAAMld,MAC3DA,KAAKkd,EAAIld,KAAK6T,KAAKqJ,EACnBld,KAAK+/B,UAAS,EAChB,CAqFA,SAAS4wB,yBAAyBvgC,EAAMpiB,EAAMiiD,GAC5CjwD,KAAK4gC,6BAA6BxQ,GAClCpwB,KAAK+/B,SAAW//B,KAAK2gC,yBACrB3gC,KAAK4wD,iBAAiBxgC,EAAMpiB,EAAMiiD,EACpC,CAyFA,SAASY,2BAA2BzgC,EAAMpiB,EAAMiiD,GAC9CjwD,KAAK4gC,6BAA6BxQ,GAClCpwB,KAAK+/B,SAAW//B,KAAK2gC,yBACrB3gC,KAAK87C,EAAI1b,gBAAgBC,QAAQjQ,EAAMpiB,EAAK8tC,EAAG,EAAG,KAAM97C,MACxDA,KAAK1F,EAAI,IAAIq1D,aAAav/B,EAAMpiB,EAAK1T,GAAK,CAAC,EAAG,MAAO0F,MACrDA,KAAK4wD,iBAAiBxgC,EAAMpiB,EAAMiiD,GAClCjwD,KAAK0gC,cAAgB1gC,KAAK0gC,WAC5B,CAIA,SAASowB,iBACP9wD,KAAK3J,GAAK,GACV2J,KAAK+wD,aAAe,GACpB/wD,KAAKgxD,GAAKz1C,SAAS,IACrB,CAEA,SAAS01C,iBAAiBlX,EAAQx6B,EAAI0K,GACpCjqB,KAAKunC,UAAY,CACfwS,OAAQA,EACRx6B,GAAIA,EACJ0K,UAAWA,GAEbjqB,KAAKu4C,SAAW,GAChBv4C,KAAK0gC,YAAc1gC,KAAKunC,UAAUwS,OAAOtZ,kBAAkB/pC,QAAUsJ,KAAKunC,UAAUhoB,GAAG8f,gBAAgB3oC,MACzG,CA1UAw4D,aAAa1uD,UAAU6sC,cAAgB,WACrCrtC,KAAK0gC,aAAc,CACrB,EAaA8uB,aAAahvD,UAAUgF,MAAQ,WAC7BxF,KAAK1F,EAAI,GACT0F,KAAKk/B,MAAO,CACd,EAgCAywB,aAAanvD,UAAUu/B,SAAW,SAAUqQ,GAC1C,IAAIpwC,KAAKowB,KAAK/F,WAAW+U,UAAYp/B,KAAKo/B,SAAYgR,KAItDpwC,KAAKo/B,QAAUp/B,KAAKowB,KAAK/F,WAAW+U,QACpCp/B,KAAK2gC,2BACL3gC,KAAKk/B,KAAOl/B,KAAKk/B,MAAQkR,EAErBpwC,KAAKk/B,MAAM,CACb,IAAIvoC,EAAI,EACJwH,EAAM6B,KAAK4vD,UAAUl5D,OAMzB,IAJsB,QAAlBsJ,KAAK+oB,WACP/oB,KAAK6vD,QAAU,IAGZl5D,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACI,MAAxBqJ,KAAK4vD,UAAUj5D,GAAGG,EACE,QAAlBkJ,KAAK+oB,SACP/oB,KAAK6vD,SAAW,IAAM7vD,KAAK4vD,UAAUj5D,GAAGiG,EAAEmd,EAE1C/Z,KAAK8vD,UAAUn5D,GAAKqJ,KAAK4vD,UAAUj5D,GAAGiG,EAAEmd,EAG1C/Z,KAAK+vD,WAAW,GAAK/vD,KAAK4vD,UAAUj5D,GAAGiG,EAAEmd,CAG/C,CACF,EAEAxG,gBAAgB,CAACitB,0BAA2BmvB,cAa5Cp8C,gBAAgB,CAACitB,0BAA2BwvB,oBAU5Cz8C,gBAAgB,CAACitB,0BAA2B0vB,kBAQ5C38C,gBAAgB,CAACitB,0BAA2B2vB,gBAiB5CC,iBAAiB5vD,UAAU0wD,cAAgB,SAAUruD,EAAQ6vB,GAK3D,IAJA,IAAI/7B,EAAI,EACJwH,EAAM6B,KAAK7J,EAAEO,OAAS,EAGnBC,EAAIwH,GAAK,CAGd,GAFOjC,KAAKS,IAAIkG,EAAW,EAAJlM,GAASkM,EAAgB,EAAT6vB,EAAiB,EAAJ/7B,IAEzC,IACT,OAAO,EAGTA,GAAK,CACP,CAEA,OAAO,CACT,EAEAy5D,iBAAiB5vD,UAAUiwD,iBAAmB,WAC5C,GAAIzwD,KAAK7J,EAAEO,OAAS,IAAMsJ,KAAKigB,EAAEvpB,OAAS,EACxC,OAAO,EAGT,GAAIsJ,KAAKgO,KAAKkP,EAAEA,EAAE,GAAGrmB,EAInB,IAHA,IAAIF,EAAI,EACJwH,EAAM6B,KAAKgO,KAAKkP,EAAEA,EAAExmB,OAEjBC,EAAIwH,GAAK,CACd,IAAK6B,KAAKkxD,cAAclxD,KAAKgO,KAAKkP,EAAEA,EAAEvmB,GAAGE,EAAGmJ,KAAKgO,KAAKpR,GACpD,OAAO,EAGTjG,GAAK,CACP,MACK,IAAKqJ,KAAKkxD,cAAclxD,KAAKgO,KAAKkP,EAAEA,EAAGld,KAAKgO,KAAKpR,GACtD,OAAO,EAGT,OAAO,CACT,EAEAwzD,iBAAiB5vD,UAAUu/B,SAAW,SAAUqQ,GAM9C,GALApwC,KAAK6T,KAAKksB,WACV//B,KAAKk/B,MAAO,EACZl/B,KAAKswD,OAAQ,EACbtwD,KAAKuwD,OAAQ,EAETvwD,KAAK6T,KAAKqrB,MAAQkR,EAAa,CACjC,IAAIz5C,EAEAsoC,EACA/gC,EAFAC,EAAoB,EAAd6B,KAAKgO,KAAKpR,EAIpB,IAAKjG,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACxBsoC,EAAOtoC,EAAI,IAAM,EAAI,IAAM,IAC3BuH,EAAMhC,KAAK0b,MAAM5X,KAAK6T,KAAKkG,EAAEpjB,GAAKsoC,GAE9Bj/B,KAAKigB,EAAEtpB,KAAOuH,IAChB8B,KAAKigB,EAAEtpB,GAAKuH,EACZ8B,KAAKswD,OAASlgB,GAIlB,GAAIpwC,KAAK7J,EAAEO,OAGT,IAFAyH,EAAM6B,KAAK6T,KAAKkG,EAAErjB,OAEbC,EAAkB,EAAdqJ,KAAKgO,KAAKpR,EAAOjG,EAAIwH,EAAKxH,GAAK,EACtCsoC,EAAOtoC,EAAI,IAAM,EAAI,IAAM,EAC3BuH,EAAMvH,EAAI,IAAM,EAAIuF,KAAK0b,MAAuB,IAAjB5X,KAAK6T,KAAKkG,EAAEpjB,IAAYqJ,KAAK6T,KAAKkG,EAAEpjB,GAE/DqJ,KAAK7J,EAAEQ,EAAkB,EAAdqJ,KAAKgO,KAAKpR,KAAWsB,IAClC8B,KAAK7J,EAAEQ,EAAkB,EAAdqJ,KAAKgO,KAAKpR,GAASsB,EAC9B8B,KAAKuwD,OAASngB,GAKpBpwC,KAAKk/B,MAAQkR,CACf,CACF,EAEA78B,gBAAgB,CAACitB,0BAA2B4vB,kBAQ5CO,yBAAyBnwD,UAAUowD,iBAAmB,SAAUxgC,EAAMpiB,EAAMiiD,GAC1EjwD,KAAK7J,EAAIiqC,gBAAgBC,QAAQjQ,EAAMpiB,EAAK7X,EAAG,EAAG,IAAM6J,MACxDA,KAAKnJ,EAAIupC,gBAAgBC,QAAQjQ,EAAMpiB,EAAKnX,EAAG,EAAG,KAAMmJ,MACxDA,KAAK/I,EAAImpC,gBAAgBC,QAAQjQ,EAAMpiB,EAAK/W,EAAG,EAAG,KAAM+I,MACxDA,KAAKvE,EAAI2kC,gBAAgBC,QAAQjQ,EAAMpiB,EAAKvS,GAAK,CAC/CyhB,EAAG,GACF,EAAG,IAAMld,MACZA,KAAK0f,EAAI0gB,gBAAgBC,QAAQjQ,EAAMpiB,EAAK0R,GAAK,CAC/CxC,EAAG,GACF,EAAG3F,UAAWvX,MACjBA,KAAKD,EAAI,IAAIqwD,iBAAiBhgC,EAAMpiB,EAAKjO,EAAGC,MAC5CA,KAAK+X,MAAQk4C,EACbjwD,KAAKmxD,MAAQ,GACbnxD,KAAKoxD,gBAAgBnB,EAAQR,MAAOzhD,GACpChO,KAAKqxD,mBAAmBrjD,EAAMiiD,GAC9BjwD,KAAK0gC,cAAgB1gC,KAAK0gC,WAC5B,EAEAiwB,yBAAyBnwD,UAAU4wD,gBAAkB,SAAUE,EAAatjD,GAC1E,IAAIujD,EAAa33C,kBACb43C,EAAQj2C,SAAoB,IAAXvN,EAAK5R,EAAU,iBAAmB,kBACvDo1D,EAAMvgC,aAAa,KAAMsgC,GACzBC,EAAMvgC,aAAa,eAAgB,OACnCugC,EAAMvgC,aAAa,gBAAiB,kBACpC,IACInqB,EACAkW,EACAC,EAHAk0C,EAAQ,GAMZ,IAFAl0C,EAAkB,EAAXjP,EAAKjO,EAAEnD,EAETogB,EAAI,EAAGA,EAAIC,EAAMD,GAAK,EACzBlW,EAAOyU,SAAS,QAChBi2C,EAAM3rC,YAAY/e,GAClBqqD,EAAM74D,KAAKwO,GAGbwqD,EAAYrgC,aAAyB,OAAZjjB,EAAK0P,GAAc,OAAS,SAAU,OAAStK,kBAAoB,IAAMm+C,EAAa,KAC/GvxD,KAAKyxD,GAAKD,EACVxxD,KAAK0xD,IAAMP,CACb,EAEAR,yBAAyBnwD,UAAU6wD,mBAAqB,SAAUrjD,EAAMiiD,GACtE,GAAIjwD,KAAKD,EAAE2wD,cAAgB1wD,KAAKD,EAAEywD,aAAc,CAC9C,IAAI1pD,EACAkW,EACAC,EACAnkB,EAAOyiB,SAAS,QAChB8oC,EAAc9oC,SAAS,QAC3BziB,EAAK+sB,YAAYw+B,GACjB,IAAIsN,EAAY/3C,kBACZg4C,EAASh4C,kBACb9gB,EAAKm4B,aAAa,KAAM2gC,GACxB,IAAIC,EAASt2C,SAAoB,IAAXvN,EAAK5R,EAAU,iBAAmB,kBACxDy1D,EAAO5gC,aAAa,KAAM0gC,GAC1BE,EAAO5gC,aAAa,eAAgB,OACpC4gC,EAAO5gC,aAAa,gBAAiB,kBACrChU,EAAOjP,EAAKjO,EAAEmd,EAAEA,EAAE,GAAGrmB,EAAImX,EAAKjO,EAAEmd,EAAEA,EAAE,GAAGrmB,EAAEH,OAASsX,EAAKjO,EAAEmd,EAAEA,EAAExmB,OAC7D,IAAIy6D,EAAQnxD,KAAKmxD,MAEjB,IAAKn0C,EAAe,EAAXhP,EAAKjO,EAAEnD,EAAOogB,EAAIC,EAAMD,GAAK,GACpClW,EAAOyU,SAAS,SACX0V,aAAa,aAAc,oBAChC4gC,EAAOhsC,YAAY/e,GACnBqqD,EAAM74D,KAAKwO,GAGbu9C,EAAYpzB,aAAyB,OAAZjjB,EAAK0P,GAAc,OAAS,SAAU,OAAStK,kBAAoB,IAAMu+C,EAAY,KAE9F,OAAZ3jD,EAAK0P,KACP2mC,EAAYpzB,aAAa,iBAAkB+9B,YAAYhhD,EAAK8jD,IAAM,IAClEzN,EAAYpzB,aAAa,kBAAmBg+B,aAAajhD,EAAKutC,IAAM,IAEpD,IAAZvtC,EAAKutC,IACP8I,EAAYpzB,aAAa,oBAAqBjjB,EAAKstC,KAIvDt7C,KAAK+xD,GAAKF,EACV7xD,KAAKgyD,GAAKl5D,EACVkH,KAAKiyD,IAAMd,EACXnxD,KAAK4xD,OAASA,EACd3B,EAAQP,OAASrL,CACnB,CACF,EAEA9wC,gBAAgB,CAACitB,0BAA2BmwB,0BAW5Cp9C,gBAAgB,CAACo9C,yBAA0BnwB,0BAA2BqwB,4BAkBtE,IAAIqB,iBAAmB,SAA0B3H,EAAW7zD,EAAQ0pB,EAAQ+vB,GAC1E,GAAe,IAAXz5C,EACF,MAAO,GAGT,IAGIC,EAHAsD,EAAKswD,EAAUp0D,EACf2B,EAAKyyD,EAAU5zD,EACfutC,EAAKqmB,EAAUxwC,EAEfo4C,EAAc,KAAOhiB,EAAItF,wBAAwB3G,EAAG,GAAG,GAAIA,EAAG,GAAG,IAErE,IAAKvtC,EAAI,EAAGA,EAAID,EAAQC,GAAK,EAC3Bw7D,GAAe,KAAOhiB,EAAItF,wBAAwB5wC,EAAGtD,EAAI,GAAG,GAAIsD,EAAGtD,EAAI,GAAG,IAAM,IAAMw5C,EAAItF,wBAAwB/yC,EAAGnB,GAAG,GAAImB,EAAGnB,GAAG,IAAM,IAAMw5C,EAAItF,wBAAwB3G,EAAGvtC,GAAG,GAAIutC,EAAGvtC,GAAG,IAQ5L,OALIypB,GAAU1pB,IACZy7D,GAAe,KAAOhiB,EAAItF,wBAAwB5wC,EAAGtD,EAAI,GAAG,GAAIsD,EAAGtD,EAAI,GAAG,IAAM,IAAMw5C,EAAItF,wBAAwB/yC,EAAG,GAAG,GAAIA,EAAG,GAAG,IAAM,IAAMq4C,EAAItF,wBAAwB3G,EAAG,GAAG,GAAIA,EAAG,GAAG,IAC1LiuB,GAAe,KAGVA,CACT,EAEIC,oBAAsB,WACxB,IAAIC,EAAkB,IAAIrsB,OAEtBssB,EAAgB,IAAItsB,OAqCxB,SAASusB,EAAuBC,EAAWC,EAAUpI,IAC/CA,GAAgBoI,EAASlrB,UAAUhoB,GAAG2f,OACxCuzB,EAASlrB,UAAUtd,UAAUgH,aAAa,UAAWwhC,EAASlrB,UAAUhoB,GAAGxF,IAGzEswC,GAAgBoI,EAASlrB,UAAUwS,OAAO7a,OAC5CuzB,EAASlrB,UAAUtd,UAAUgH,aAAa,YAAawhC,EAASlrB,UAAUwS,OAAOhgC,EAAEkxB,UAEvF,CAEA,SAASynB,IAAc,CAEvB,SAASC,EAAWH,EAAWC,EAAUpI,GACvC,IAAIrtC,EACAC,EACA21C,EACAC,EACAtI,EACAvuD,EAGA0D,EACAywC,EACAznC,EACAoqD,EACA51C,EANA61C,EAAON,EAASxb,OAAOvgD,OACvB64D,EAAMkD,EAASlD,IAOnB,IAAKvzD,EAAI,EAAGA,EAAI+2D,EAAM/2D,GAAK,EAAG,CAG5B,GAFA62D,EAASJ,EAASp2B,GAAG6C,MAAQmrB,EAEzBoI,EAASxb,OAAOj7C,GAAGuzD,IAAMA,EAAK,CAKhC,IAJApf,EAAMmiB,EAAc9sD,QACpBstD,EAAavD,EAAMkD,EAASxb,OAAOj7C,GAAGuzD,IACtCryC,EAAIu1C,EAAStD,aAAaz4D,OAAS,GAE3Bm8D,GAAUC,EAAa,GAC7BD,EAASJ,EAAStD,aAAajyC,GAAG68B,OAAO7a,MAAQ2zB,EACjDC,GAAc,EACd51C,GAAK,EAGP,GAAI21C,EAIF,IAHAC,EAAavD,EAAMkD,EAASxb,OAAOj7C,GAAGuzD,IACtCryC,EAAIu1C,EAAStD,aAAaz4D,OAAS,EAE5Bo8D,EAAa,GAClBpqD,EAAQ+pD,EAAStD,aAAajyC,GAAG68B,OAAOhgC,EAAErR,MAC1CynC,EAAI5I,UAAU7+B,EAAM,GAAIA,EAAM,GAAIA,EAAM,GAAIA,EAAM,GAAIA,EAAM,GAAIA,EAAM,GAAIA,EAAM,GAAIA,EAAM,GAAIA,EAAM,GAAIA,EAAM,GAAIA,EAAM,IAAKA,EAAM,IAAKA,EAAM,IAAKA,EAAM,IAAKA,EAAM,IAAKA,EAAM,KAC/KoqD,GAAc,EACd51C,GAAK,CAGX,MACEizB,EAAMkiB,EAMR,GAFAp1C,GADAvd,EAAQ+yD,EAASp2B,GAAG38B,OACPg1B,QAETm+B,EAAQ,CAGV,IAFAD,EAAwB,GAEnB51C,EAAI,EAAGA,EAAIC,EAAMD,GAAK,GACzButC,EAAY7qD,EAAMoe,OAAOd,KAERutC,EAAU71B,UACzBk+B,GAAyBV,iBAAiB3H,EAAWA,EAAU71B,QAAS61B,EAAUtqC,EAAGkwB,IAIzFsiB,EAASpD,OAAOrzD,GAAK42D,CACvB,MACEA,EAAwBH,EAASpD,OAAOrzD,GAG1Cy2D,EAASxb,OAAOj7C,GAAG1B,IAAsB,IAAjBk4D,EAAU1F,GAAc,GAAK8F,EACrDH,EAASxb,OAAOj7C,GAAGkjC,KAAO2zB,GAAUJ,EAASxb,OAAOj7C,GAAGkjC,IACzD,CACF,CAEA,SAAS8zB,EAAWR,EAAWC,EAAUpI,GACvC,IAAI4I,EAAYR,EAAS16C,OAErB06C,EAASxyC,EAAEif,MAAQmrB,IACrB4I,EAAUxD,MAAMx+B,aAAa,OAAQ,OAASra,QAAQ67C,EAASxyC,EAAElG,EAAE,IAAM,IAAMnD,QAAQ67C,EAASxyC,EAAElG,EAAE,IAAM,IAAMnD,QAAQ67C,EAASxyC,EAAElG,EAAE,IAAM,MAGzI04C,EAASt8D,EAAE+oC,MAAQmrB,IACrB4I,EAAUxD,MAAMx+B,aAAa,eAAgBwhC,EAASt8D,EAAE4jB,EAE5D,CAEA,SAASm5C,EAAqBV,EAAWC,EAAUpI,GACjD8I,EAAeX,EAAWC,EAAUpI,GACpC+I,EAAaZ,EAAWC,EAAUpI,EACpC,CAEA,SAAS8I,EAAeX,EAAWC,EAAUpI,GAC3C,IAsBI8G,EACAx6D,EACAwH,EACA2I,EA+CE89B,EAxEF4sB,EAAQiB,EAAShB,GACjB4B,EAAaZ,EAAS1yD,EAAE2wD,YACxB16B,EAAMy8B,EAAS57D,EAAEkjB,EACjBkc,EAAMw8B,EAASx7D,EAAE8iB,EAErB,GAAI04C,EAASt8D,EAAE+oC,MAAQmrB,EAAc,CACnC,IAAI12C,EAAwB,OAAjB6+C,EAAU90C,GAAc,eAAiB,iBACpD+0C,EAAS16C,MAAM03C,MAAMx+B,aAAatd,EAAM8+C,EAASt8D,EAAE4jB,EACrD,CAEA,GAAI04C,EAAS57D,EAAEqoC,MAAQmrB,EAAc,CACnC,IAAIiJ,EAAwB,IAAhBd,EAAUp2D,EAAU,KAAO,KACnCm3D,EAAkB,OAAVD,EAAiB,KAAO,KACpC9B,EAAMvgC,aAAaqiC,EAAOt9B,EAAI,IAC9Bw7B,EAAMvgC,aAAasiC,EAAOv9B,EAAI,IAE1Bq9B,IAAeZ,EAAS1yD,EAAEywD,eAC5BiC,EAASV,GAAG9gC,aAAaqiC,EAAOt9B,EAAI,IACpCy8B,EAASV,GAAG9gC,aAAasiC,EAAOv9B,EAAI,IAExC,CAOA,GAAIy8B,EAAS1yD,EAAEuwD,OAASjG,EAAc,CACpC8G,EAAQsB,EAASf,IACjB,IAAI8B,EAAUf,EAAS1yD,EAAEkgB,EAGzB,IAFA9hB,EAAMgzD,EAAMz6D,OAEPC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,GACxBmQ,EAAOqqD,EAAMx6D,IACRs6B,aAAa,SAAUuiC,EAAY,EAAJ78D,GAAS,KAC7CmQ,EAAKmqB,aAAa,aAAc,OAASuiC,EAAY,EAAJ78D,EAAQ,GAAK,IAAM68D,EAAY,EAAJ78D,EAAQ,GAAK,IAAM68D,EAAY,EAAJ78D,EAAQ,GAAK,IAExH,CAEA,GAAI08D,IAAeZ,EAAS1yD,EAAEwwD,OAASlG,GAAe,CACpD,IAAIoJ,EAAUhB,EAAS1yD,EAAE5J,EAUzB,IAFAgI,GALEgzD,EADEsB,EAAS1yD,EAAEywD,aACLiC,EAASf,IAETe,EAASR,KAGPv7D,OAEPC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACxBmQ,EAAOqqD,EAAMx6D,GAER87D,EAAS1yD,EAAEywD,cACd1pD,EAAKmqB,aAAa,SAAUwiC,EAAY,EAAJ98D,GAAS,KAG/CmQ,EAAKmqB,aAAa,eAAgBwiC,EAAY,EAAJ98D,EAAQ,GAEtD,CAEA,GAAoB,IAAhB67D,EAAUp2D,GACRq2D,EAASx7D,EAAEioC,MAAQmrB,KACrBmH,EAAMvgC,aAAa,KAAMgF,EAAI,IAC7Bu7B,EAAMvgC,aAAa,KAAMgF,EAAI,IAEzBo9B,IAAeZ,EAAS1yD,EAAEywD,eAC5BiC,EAASV,GAAG9gC,aAAa,KAAMgF,EAAI,IACnCw8B,EAASV,GAAG9gC,aAAa,KAAMgF,EAAI,WAevC,IATIw8B,EAAS57D,EAAEqoC,MAAQuzB,EAASx7D,EAAEioC,MAAQmrB,KACxCzlB,EAAM1oC,KAAKya,KAAKza,KAAKsQ,IAAIwpB,EAAI,GAAKC,EAAI,GAAI,GAAK/5B,KAAKsQ,IAAIwpB,EAAI,GAAKC,EAAI,GAAI,IACzEu7B,EAAMvgC,aAAa,IAAK2T,GAEpByuB,IAAeZ,EAAS1yD,EAAEywD,cAC5BiC,EAASV,GAAG9gC,aAAa,IAAK2T,IAI9B6tB,EAASx7D,EAAEioC,MAAQuzB,EAASh3D,EAAEyjC,MAAQuzB,EAAS/yC,EAAEwf,MAAQmrB,EAAc,CACpEzlB,IACHA,EAAM1oC,KAAKya,KAAKza,KAAKsQ,IAAIwpB,EAAI,GAAKC,EAAI,GAAI,GAAK/5B,KAAKsQ,IAAIwpB,EAAI,GAAKC,EAAI,GAAI,KAG3E,IAAIy9B,EAAMx3D,KAAK6hC,MAAM9H,EAAI,GAAKD,EAAI,GAAIC,EAAI,GAAKD,EAAI,IAC/CwD,EAAUi5B,EAASh3D,EAAEse,EAErByf,GAAW,EACbA,EAAU,IACDA,IAAY,IACrBA,GAAW,KAGb,IAAIwb,EAAOpQ,EAAMpL,EACb1G,EAAI52B,KAAKkiC,IAAIs1B,EAAMjB,EAAS/yC,EAAE3F,GAAKi7B,EAAOhf,EAAI,GAC9Cn8B,EAAIqC,KAAKshC,IAAIk2B,EAAMjB,EAAS/yC,EAAE3F,GAAKi7B,EAAOhf,EAAI,GAClDw7B,EAAMvgC,aAAa,KAAM6B,GACzB0+B,EAAMvgC,aAAa,KAAMp3B,GAErBw5D,IAAeZ,EAAS1yD,EAAEywD,eAC5BiC,EAASV,GAAG9gC,aAAa,KAAM6B,GAC/B2/B,EAASV,GAAG9gC,aAAa,KAAMp3B,GAEnC,CAGJ,CAEA,SAASu5D,EAAaZ,EAAWC,EAAUpI,GACzC,IAAI4I,EAAYR,EAAS16C,MACrBzd,EAAIm4D,EAASn4D,EAEbA,IAAMA,EAAE4kC,MAAQmrB,IAAiB/vD,EAAEu1D,UACrCoD,EAAUxD,MAAMx+B,aAAa,mBAAoB32B,EAAEu1D,SACnDoD,EAAUxD,MAAMx+B,aAAa,oBAAqB32B,EAAEy1D,WAAW,KAG7D0C,EAASxyC,IAAMwyC,EAASxyC,EAAEif,MAAQmrB,IACpC4I,EAAUxD,MAAMx+B,aAAa,SAAU,OAASra,QAAQ67C,EAASxyC,EAAElG,EAAE,IAAM,IAAMnD,QAAQ67C,EAASxyC,EAAElG,EAAE,IAAM,IAAMnD,QAAQ67C,EAASxyC,EAAElG,EAAE,IAAM,MAG3I04C,EAASt8D,EAAE+oC,MAAQmrB,IACrB4I,EAAUxD,MAAMx+B,aAAa,iBAAkBwhC,EAASt8D,EAAE4jB,IAGxD04C,EAAS3W,EAAE5c,MAAQmrB,KACrB4I,EAAUxD,MAAMx+B,aAAa,eAAgBwhC,EAAS3W,EAAE/hC,GAEpDk5C,EAAUvD,QACZuD,EAAUvD,OAAOz+B,aAAa,eAAgBwhC,EAAS3W,EAAE/hC,GAG/D,CAEA,MA/QS,CACP45C,qBAGF,SAA8B3lD,GAC5B,OAAQA,EAAK0P,IACX,IAAK,KACH,OAAOs1C,EAET,IAAK,KACH,OAAOG,EAET,IAAK,KACH,OAAOD,EAET,IAAK,KACH,OAAOE,EAET,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KACH,OAAOT,EAET,IAAK,KACH,OAAOJ,EAET,IAAK,KACH,OAAOG,EAET,QACE,OAAO,KAEb,EA+OF,CArR0B,GAuR1B,SAASkB,gBAAgB5lD,EAAMqc,EAAYpM,GAEzCje,KAAK8d,OAAS,GAEd9d,KAAKymD,WAAaz4C,EAAK8P,OAEvB9d,KAAK6zD,WAAa,GAElB7zD,KAAKyuD,eAAiB,GAEtBzuD,KAAK0mD,UAAY,GAEjB1mD,KAAK8uD,kBAAoB,GAEzB9uD,KAAK8zD,iBAAmB,GACxB9zD,KAAKgsD,YAAYh+C,EAAMqc,EAAYpM,GAGnCje,KAAK+wD,aAAe,EACtB,CAyWA,SAASgD,YAAY59D,EAAG69D,EAAIlU,EAAImU,EAAIn5D,EAAG8B,GACrCoD,KAAK7J,EAAIA,EACT6J,KAAKg0D,GAAKA,EACVh0D,KAAK8/C,GAAKA,EACV9/C,KAAKi0D,GAAKA,EACVj0D,KAAKlF,EAAIA,EACTkF,KAAKpD,EAAIA,EACToD,KAAKk/B,KAAO,CACV/oC,GAAG,EACH69D,KAAMA,EACNlU,KAAMA,EACNmU,KAAMA,EACNn5D,GAAG,EACH8B,GAAG,EAEP,CAkDA,SAASs3D,aAAa9jC,EAAMpiB,GAC1BhO,KAAKm0D,SAAWphD,oBAChB/S,KAAK06B,GAAK,GACV16B,KAAK+Z,EAAI,GACT/Z,KAAKy/B,IAAK,EACVz/B,KAAKu/B,eAAgB,EACrBv/B,KAAKk/B,MAAO,EAERlxB,EAAK1T,GAAK0T,EAAK1T,EAAEgmC,MACnBtyB,EAAK1T,EAAI81B,EAAK/F,WAAWkW,YAAYF,QAAQryB,EAAK1T,IAGpD0F,KAAKgO,KAAOA,EACZhO,KAAKowB,KAAOA,EACZpwB,KAAKie,KAAOje,KAAKowB,KAAKnS,KACtBje,KAAKo0D,UAAY,EACjBp0D,KAAKq0D,WAAY,EACjBr0D,KAAKs0D,gBAAkB,EACvBt0D,KAAKq/B,gBAAkB,GACvBr/B,KAAKu0D,YAAc,CACjBC,OAAQ,EACRC,SAAUz0D,KAAK00D,gBACfv9D,EAAG,GACH+/C,OAAQ,GACRC,QAAS,GACT8c,GAAI,GACJj3C,EAAG,GACH23C,cAAe,GACf34D,EAAG,GACH44D,GAAI,EACJC,WAAY,GACZC,GAAI,GACJ/C,GAAI,GACJl7D,EAAG,GACHipD,GAAI,GACJkU,GAAI,EACJ53D,EAAG,EACHk7C,GAAI,EACJpQ,GAAI,EACJ6tB,GAAI,KACJC,eAAe,EACfC,iBAAiB,EACjBC,iBAAiB,EACjBC,QAAS,EACTC,UAAW,EACXC,UAAW,GACXC,gBAAiB,EACjB/0C,YAAY,GAEdvgB,KAAKu1D,SAASv1D,KAAKu0D,YAAav0D,KAAKgO,KAAK1T,EAAE4iB,EAAE,GAAGrmB,GAE5CmJ,KAAKw1D,kBACRx1D,KAAKy1D,iBAAiBz1D,KAAKu0D,YAE/B,CA9dAhhD,gBAAgB,CAAC6vC,YAAae,iBAAkByH,eAAgBO,cAAeN,iBAAkBxI,aAAcyI,sBAAuB8H,iBAEtIA,gBAAgBpzD,UAAUk1D,qBAAuB,WAAa,EAE9D9B,gBAAgBpzD,UAAUm1D,eAAiB,IAAI3vB,OAE/C4tB,gBAAgBpzD,UAAUo1D,yBAA2B,WAAa,EAElEhC,gBAAgBpzD,UAAU2tD,cAAgB,WACxCnuD,KAAK61D,aAAa71D,KAAKymD,WAAYzmD,KAAK0mD,UAAW1mD,KAAK+wD,aAAc/wD,KAAKinD,aAAc,EAAG,IAAI,GAChGjnD,KAAK81D,oBACP,EAMAlC,gBAAgBpzD,UAAUs1D,mBAAqB,WAC7C,IAAIn/D,EAEAwrC,EACAnlB,EAEAjF,EAJA5Z,EAAM6B,KAAK8d,OAAOpnB,OAGlBumB,EAAOjd,KAAK6zD,WAAWn9D,OAEvBq/D,EAAa,GACbC,GAAc,EAElB,IAAKh5C,EAAI,EAAGA,EAAIC,EAAMD,GAAK,EAAG,CAK5B,IAJAjF,EAAQ/X,KAAK6zD,WAAW72C,GACxBg5C,GAAc,EACdD,EAAWr/D,OAAS,EAEfC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,GAGa,KAFrCwrC,EAAQniC,KAAK8d,OAAOnnB,IAEVsgD,OAAOxmC,QAAQsH,KACvBg+C,EAAWz9D,KAAK6pC,GAChB6zB,EAAc7zB,EAAMzB,aAAes1B,GAInCD,EAAWr/D,OAAS,GAAKs/D,GAC3Bh2D,KAAKi2D,oBAAoBF,EAE7B,CACF,EAEAnC,gBAAgBpzD,UAAUy1D,oBAAsB,SAAUn4C,GACxD,IAAInnB,EACAwH,EAAM2f,EAAOpnB,OAEjB,IAAKC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACxBmnB,EAAOnnB,GAAG02C,eAEd,EAEAumB,gBAAgBpzD,UAAU01D,mBAAqB,SAAUloD,EAAMohD,GAE7D,IAAI+G,EACAlG,EAAU,IAAIT,aAAaxhD,EAAMohD,GACjCkC,EAAcrB,EAAQR,MAgD1B,MA9CgB,OAAZzhD,EAAK0P,GACPy4C,EAAc,IAAInG,mBAAmBhwD,KAAMgO,EAAMiiD,GAC5B,OAAZjiD,EAAK0P,GACdy4C,EAAc,IAAIjG,iBAAiBlwD,KAAMgO,EAAMiiD,GAC1B,OAAZjiD,EAAK0P,IAA2B,OAAZ1P,EAAK0P,IAElCy4C,EAAc,IADwB,OAAZnoD,EAAK0P,GAAcizC,yBAA2BE,4BAClC7wD,KAAMgO,EAAMiiD,GAClDjwD,KAAKqqB,WAAWC,KAAKzE,YAAYswC,EAAY1E,IAEzC0E,EAAYvE,SACd5xD,KAAKqqB,WAAWC,KAAKzE,YAAYswC,EAAYnE,IAC7ChyD,KAAKqqB,WAAWC,KAAKzE,YAAYswC,EAAYpE,IAC7CT,EAAYrgC,aAAa,OAAQ,OAAS7d,kBAAoB,IAAM+iD,EAAYvE,OAAS,OAEtE,OAAZ5jD,EAAK0P,KACdy4C,EAAc,IAAIhG,eAAenwD,KAAMgO,EAAMiiD,IAG/B,OAAZjiD,EAAK0P,IAA2B,OAAZ1P,EAAK0P,KAC3B4zC,EAAYrgC,aAAa,iBAAkB+9B,YAAYhhD,EAAK8jD,IAAM,IAClER,EAAYrgC,aAAa,kBAAmBg+B,aAAajhD,EAAKutC,IAAM,IACpE+V,EAAYrgC,aAAa,eAAgB,KAEzB,IAAZjjB,EAAKutC,IACP+V,EAAYrgC,aAAa,oBAAqBjjB,EAAKstC,KAIxC,IAAXttC,EAAKgM,GACPs3C,EAAYrgC,aAAa,YAAa,WAGpCjjB,EAAK6+C,IACPyE,EAAYrgC,aAAa,KAAMjjB,EAAK6+C,IAGlC7+C,EAAKqS,IACPixC,EAAYrgC,aAAa,QAASjjB,EAAKqS,IAGrCrS,EAAK+4C,KACPuK,EAAYv5C,MAAM,kBAAoBoqC,aAAan0C,EAAK+4C,KAG1D/mD,KAAK6zD,WAAWv7D,KAAK23D,GACrBjwD,KAAKo2D,sBAAsBpoD,EAAMmoD,GAC1BA,CACT,EAEAvC,gBAAgBpzD,UAAU61D,mBAAqB,SAAUroD,GACvD,IAAImoD,EAAc,IAAIrF,eActB,OAZI9iD,EAAK6+C,IACPsJ,EAAYnF,GAAG//B,aAAa,KAAMjjB,EAAK6+C,IAGrC7+C,EAAKqS,IACP81C,EAAYnF,GAAG//B,aAAa,QAASjjB,EAAKqS,IAGxCrS,EAAK+4C,KACPoP,EAAYnF,GAAGj5C,MAAM,kBAAoBoqC,aAAan0C,EAAK+4C,KAGtDoP,CACT,EAEAvC,gBAAgBpzD,UAAU81D,uBAAyB,SAAUtoD,EAAMic,GACjE,IAAIssC,EAAoBjnB,yBAAyBqB,qBAAqB3wC,KAAMgO,EAAMhO,MAC9Em2D,EAAc,IAAIlF,iBAAiBsF,EAAmBA,EAAkBpgE,EAAG8zB,GAE/E,OADAjqB,KAAKo2D,sBAAsBpoD,EAAMmoD,GAC1BA,CACT,EAEAvC,gBAAgBpzD,UAAUg2D,mBAAqB,SAAUxoD,EAAMyoD,EAAiBrH,GAC9E,IAAI1xC,EAAK,EAEO,OAAZ1P,EAAK0P,GACPA,EAAK,EACgB,OAAZ1P,EAAK0P,GACdA,EAAK,EACgB,OAAZ1P,EAAK0P,KACdA,EAAK,GAGP,IACIy4C,EAAc,IAAIjH,aAAauH,EAAiBrH,EADhCzsB,qBAAqBqiB,aAAahlD,KAAMgO,EAAM0P,EAAI1d,OAKtE,OAHAA,KAAK8d,OAAOxlB,KAAK69D,GACjBn2D,KAAKwuD,oBAAoB2H,GACzBn2D,KAAKo2D,sBAAsBpoD,EAAMmoD,GAC1BA,CACT,EAEAvC,gBAAgBpzD,UAAU41D,sBAAwB,SAAUpoD,EAAM8J,GAIhE,IAHA,IAAInhB,EAAI,EACJwH,EAAM6B,KAAK8zD,iBAAiBp9D,OAEzBC,EAAIwH,GAAK,CACd,GAAI6B,KAAK8zD,iBAAiBn9D,GAAGmhB,UAAYA,EACvC,OAGFnhB,GAAK,CACP,CAEAqJ,KAAK8zD,iBAAiBx7D,KAAK,CACzB6J,GAAIiwD,oBAAoBuB,qBAAqB3lD,GAC7C8J,QAASA,EACT9J,KAAMA,GAEV,EAEA4lD,gBAAgBpzD,UAAUk2D,iBAAmB,SAAUP,GACrD,IACIn5C,EADAnlB,EAAMs+D,EAAYlf,OAElBh6B,EAAOjd,KAAK6zD,WAAWn9D,OAE3B,IAAKsmB,EAAI,EAAGA,EAAIC,EAAMD,GAAK,EACpBhd,KAAK6zD,WAAW72C,GAAGoD,QACtBvoB,EAAIS,KAAK0H,KAAK6zD,WAAW72C,GAG/B,EAEA42C,gBAAgBpzD,UAAU84C,aAAe,WAEvC,IAAI3iD,EADJqJ,KAAKu/B,eAAgB,EAErB,IAAIphC,EAAM6B,KAAK0mD,UAAUhwD,OAEzB,IAAKC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACxBqJ,KAAK+wD,aAAap6D,GAAKqJ,KAAK0mD,UAAU/vD,GAOxC,IAJAqJ,KAAK61D,aAAa71D,KAAKymD,WAAYzmD,KAAK0mD,UAAW1mD,KAAK+wD,aAAc/wD,KAAKinD,aAAc,EAAG,IAAI,GAChGjnD,KAAK81D,qBACL33D,EAAM6B,KAAKygC,kBAAkB/pC,OAExBC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACxBqJ,KAAKygC,kBAAkB9pC,GAAGopC,WAG5B//B,KAAK4uD,iBACP,EAEAgF,gBAAgBpzD,UAAUq1D,aAAe,SAAUh+D,EAAK6uD,EAAWqK,EAAc9mC,EAAWmlC,EAAOD,EAAcwH,GAC/G,IACIhgE,EAEAqmB,EACAC,EAGA25C,EACAC,EACAC,EATAL,EAAkB,GAAG3lC,OAAOq+B,GAE5BhxD,EAAMtG,EAAInB,OAAS,EAGnBqgE,EAAY,GACZC,EAAe,GAKnB,IAAKrgE,EAAIwH,EAAKxH,GAAK,EAAGA,GAAK,EAAG,CAS5B,IARAmgE,EAAe92D,KAAK6uD,uBAAuBh3D,EAAIlB,KAK7C+vD,EAAU/vD,GAAKo6D,EAAa+F,EAAe,GAF3Cj/D,EAAIlB,GAAGkiD,QAAU8d,EAKD,OAAd9+D,EAAIlB,GAAG+mB,IAA6B,OAAd7lB,EAAIlB,GAAG+mB,IAA6B,OAAd7lB,EAAIlB,GAAG+mB,IAA6B,OAAd7lB,EAAIlB,GAAG+mB,IAA6B,OAAd7lB,EAAIlB,GAAG+mB,GAC5Fo5C,EAGHpQ,EAAU/vD,GAAGohB,MAAMqI,QAAS,EAF5BsmC,EAAU/vD,GAAKqJ,KAAKk2D,mBAAmBr+D,EAAIlB,GAAIy4D,GAK7Cv3D,EAAIlB,GAAGkiD,SACL6N,EAAU/vD,GAAGohB,MAAM03C,MAAMpT,aAAepyB,GAC1CA,EAAUpE,YAAY6gC,EAAU/vD,GAAGohB,MAAM03C,OAI7CsH,EAAUz+D,KAAKouD,EAAU/vD,GAAGohB,YACvB,GAAkB,OAAdlgB,EAAIlB,GAAG+mB,GAAa,CAC7B,GAAKo5C,EAKH,IAFA75C,EAAOypC,EAAU/vD,GAAGN,GAAGK,OAElBsmB,EAAI,EAAGA,EAAIC,EAAMD,GAAK,EACzB0pC,EAAU/vD,GAAGo6D,aAAa/zC,GAAK0pC,EAAU/vD,GAAGN,GAAG2mB,QALjD0pC,EAAU/vD,GAAKqJ,KAAKq2D,mBAAmBx+D,EAAIlB,IAS7CqJ,KAAK61D,aAAah+D,EAAIlB,GAAGN,GAAIqwD,EAAU/vD,GAAGN,GAAIqwD,EAAU/vD,GAAGo6D,aAAcrK,EAAU/vD,GAAGq6D,GAAI5B,EAAQ,EAAGqH,EAAiBE,GAElH9+D,EAAIlB,GAAGkiD,SACL6N,EAAU/vD,GAAGq6D,GAAG3U,aAAepyB,GACjCA,EAAUpE,YAAY6gC,EAAU/vD,GAAGq6D,GAGzC,KAAyB,OAAdn5D,EAAIlB,GAAG+mB,IACXo5C,IACHpQ,EAAU/vD,GAAKqJ,KAAKs2D,uBAAuBz+D,EAAIlB,GAAIszB,IAGrD2sC,EAAmBlQ,EAAU/vD,GAAG4wC,UAChCkvB,EAAgBn+D,KAAKs+D,IACE,OAAd/+D,EAAIlB,GAAG+mB,IAA6B,OAAd7lB,EAAIlB,GAAG+mB,IAA6B,OAAd7lB,EAAIlB,GAAG+mB,IAA6B,OAAd7lB,EAAIlB,GAAG+mB,IAC7Eo5C,IACHpQ,EAAU/vD,GAAKqJ,KAAKw2D,mBAAmB3+D,EAAIlB,GAAI8/D,EAAiBrH,IAGlEpvD,KAAK02D,iBAAiBhQ,EAAU/vD,KACT,OAAdkB,EAAIlB,GAAG+mB,IAA6B,OAAd7lB,EAAIlB,GAAG+mB,IAA6B,OAAd7lB,EAAIlB,GAAG+mB,IAA6B,OAAd7lB,EAAIlB,GAAG+mB,IAA6B,OAAd7lB,EAAIlB,GAAG+mB,IAA6B,OAAd7lB,EAAIlB,GAAG+mB,IACzHo5C,GAMHD,EAAWnQ,EAAU/vD,IACZypB,QAAS,IANlBy2C,EAAWjqB,eAAeG,YAAYl1C,EAAIlB,GAAG+mB,KACpC6Q,KAAKvuB,KAAMnI,EAAIlB,IACxB+vD,EAAU/vD,GAAKkgE,EACf72D,KAAKyuD,eAAen2D,KAAKu+D,IAM3BG,EAAa1+D,KAAKu+D,IACK,OAAdh/D,EAAIlB,GAAG+mB,KACXo5C,GAOHD,EAAWnQ,EAAU/vD,IACZypB,QAAS,GAPlBy2C,EAAWjqB,eAAeG,YAAYl1C,EAAIlB,GAAG+mB,IAC7CgpC,EAAU/vD,GAAKkgE,EACfA,EAAStoC,KAAKvuB,KAAMnI,EAAKlB,EAAG+vD,GAC5B1mD,KAAKyuD,eAAen2D,KAAKu+D,GACzBF,GAAS,GAMXK,EAAa1+D,KAAKu+D,IAGpB72D,KAAK+uD,oBAAoBl3D,EAAIlB,GAAIA,EAAI,EACvC,CAIA,IAFAwH,EAAM44D,EAAUrgE,OAEXC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACxBogE,EAAUpgE,GAAGypB,QAAS,EAKxB,IAFAjiB,EAAM64D,EAAatgE,OAEdC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACxBqgE,EAAargE,GAAGypB,QAAS,CAE7B,EAEAwzC,gBAAgBpzD,UAAU4tD,mBAAqB,WAE7C,IAAIz3D,EADJqJ,KAAK4uD,kBAEL,IAAIzwD,EAAM6B,KAAK6zD,WAAWn9D,OAE1B,IAAKC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACxBqJ,KAAK6zD,WAAWl9D,GAAG6O,QAKrB,IAFAxF,KAAKi3D,cAEAtgE,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,GACpBqJ,KAAK6zD,WAAWl9D,GAAGuoC,MAAQl/B,KAAKu/B,iBAC9Bv/B,KAAK6zD,WAAWl9D,GAAG+4D,SACrB1vD,KAAK6zD,WAAWl9D,GAAG+4D,OAAOz+B,aAAa,IAAKjxB,KAAK6zD,WAAWl9D,GAAG2D,GAE/D0F,KAAK6zD,WAAWl9D,GAAG2D,EAAI,OAAS0F,KAAK6zD,WAAWl9D,GAAG2D,GAGrD0F,KAAK6zD,WAAWl9D,GAAG84D,MAAMx+B,aAAa,IAAKjxB,KAAK6zD,WAAWl9D,GAAG2D,GAAK,QAGzE,EAEAs5D,gBAAgBpzD,UAAUy2D,YAAc,WACtC,IAAItgE,EAEAugE,EADA/4D,EAAM6B,KAAK8zD,iBAAiBp9D,OAGhC,IAAKC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACxBugE,EAAkBl3D,KAAK8zD,iBAAiBn9D,IAEnCqJ,KAAKu/B,eAAiB23B,EAAgBp/C,QAAQ4oB,eAAyC,IAAzBw2B,EAAgBlpD,MACjFkpD,EAAgB/0D,GAAG+0D,EAAgBlpD,KAAMkpD,EAAgBp/C,QAAS9X,KAAKu/B,cAG7E,EAEAq0B,gBAAgBpzD,UAAU4kB,QAAU,WAClCplB,KAAKmtD,qBACLntD,KAAKymD,WAAa,KAClBzmD,KAAK0mD,UAAY,IACnB,EAmBAqN,YAAYvzD,UAAU22D,OAAS,SAAUhhE,EAAG69D,EAAIlU,EAAImU,EAAIn5D,EAAG8B,GACzDoD,KAAKk/B,KAAK/oC,GAAI,EACd6J,KAAKk/B,KAAK80B,IAAK,EACfh0D,KAAKk/B,KAAK4gB,IAAK,EACf9/C,KAAKk/B,KAAK+0B,IAAK,EACfj0D,KAAKk/B,KAAKpkC,GAAI,EACdkF,KAAKk/B,KAAKtiC,GAAI,EACd,IAAIw6D,GAAU,EAsCd,OApCIp3D,KAAK7J,IAAMA,IACb6J,KAAK7J,EAAIA,EACT6J,KAAKk/B,KAAK/oC,GAAI,EACdihE,GAAU,GAGRp3D,KAAKg0D,KAAOA,IACdh0D,KAAKg0D,GAAKA,EACVh0D,KAAKk/B,KAAK80B,IAAK,EACfoD,GAAU,GAGRp3D,KAAK8/C,KAAOA,IACd9/C,KAAK8/C,GAAKA,EACV9/C,KAAKk/B,KAAK4gB,IAAK,EACfsX,GAAU,GAGRp3D,KAAKi0D,KAAOA,IACdj0D,KAAKi0D,GAAKA,EACVj0D,KAAKk/B,KAAK+0B,IAAK,EACfmD,GAAU,GAGRp3D,KAAKlF,IAAMA,IACbkF,KAAKlF,EAAIA,EACTkF,KAAKk/B,KAAKpkC,GAAI,EACds8D,GAAU,IAGRx6D,EAAElG,QAAWsJ,KAAKpD,EAAE,KAAOA,EAAE,IAAMoD,KAAKpD,EAAE,KAAOA,EAAE,IAAMoD,KAAKpD,EAAE,KAAOA,EAAE,IAAMoD,KAAKpD,EAAE,KAAOA,EAAE,IAAMoD,KAAKpD,EAAE,MAAQA,EAAE,KAAOoD,KAAKpD,EAAE,MAAQA,EAAE,MAChJoD,KAAKpD,EAAIA,EACToD,KAAKk/B,KAAKtiC,GAAI,EACdw6D,GAAU,GAGLA,CACT,EA0DAlD,aAAa1zD,UAAUk0D,gBAAkB,CAAC,EAAG,GAE7CR,aAAa1zD,UAAU+0D,SAAW,SAAU50D,EAAKqN,GAC/C,IAAK,IAAInX,KAAKmX,EACR3V,OAAOmI,UAAUE,eAAelJ,KAAKwW,EAAMnX,KAC7C8J,EAAI9J,GAAKmX,EAAKnX,IAIlB,OAAO8J,CACT,EAEAuzD,aAAa1zD,UAAU62D,eAAiB,SAAUrpD,GAC3CA,EAAKuS,YACRvgB,KAAKy1D,iBAAiBznD,GAGxBhO,KAAKu0D,YAAcvmD,EACnBhO,KAAKu0D,YAAYE,SAAWz0D,KAAKu0D,YAAYE,UAAYz0D,KAAK00D,gBAC9D10D,KAAKk/B,MAAO,CACd,EAEAg1B,aAAa1zD,UAAUg1D,eAAiB,WACtC,OAAOx1D,KAAKs3D,iBACd,EAEApD,aAAa1zD,UAAU82D,gBAAkB,WAOvC,OANAt3D,KAAKy/B,GAAKz/B,KAAKgO,KAAK1T,EAAE4iB,EAAExmB,OAAS,EAE7BsJ,KAAKy/B,IACPz/B,KAAK0/B,UAAU1/B,KAAKu3D,iBAAiB1vD,KAAK7H,OAGrCA,KAAKy/B,EACd,EAEAy0B,aAAa1zD,UAAUk/B,UAAY,SAAUC,GAC3C3/B,KAAKq/B,gBAAgB/mC,KAAKqnC,GAC1B3/B,KAAKowB,KAAKwP,mBAAmB5/B,KAC/B,EAEAk0D,aAAa1zD,UAAUu/B,SAAW,SAAUy3B,GAC1C,GAAKx3D,KAAKowB,KAAK/F,WAAW+U,UAAYp/B,KAAKo/B,SAAYp/B,KAAKq/B,gBAAgB3oC,QAAY8gE,EAAxF,CAIAx3D,KAAKu0D,YAAYn4D,EAAI4D,KAAKgO,KAAK1T,EAAE4iB,EAAEld,KAAKo0D,WAAWv9D,EAAEuF,EACrD,IAAIq7D,EAAez3D,KAAKu0D,YACpBmD,EAAe13D,KAAKo0D,UAExB,GAAIp0D,KAAKs/B,KACPt/B,KAAKq3D,eAAer3D,KAAKu0D,iBAD3B,CAOA,IAAI59D,EAFJqJ,KAAKs/B,MAAO,EACZt/B,KAAKk/B,MAAO,EAEZ,IAAI/gC,EAAM6B,KAAKq/B,gBAAgB3oC,OAC3B8oC,EAAag4B,GAAex3D,KAAKgO,KAAK1T,EAAE4iB,EAAEld,KAAKo0D,WAAWv9D,EAE9D,IAAKF,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EAGtB6oC,EADEk4B,IAAiB13D,KAAKo0D,UACXp0D,KAAKq/B,gBAAgB1oC,GAAG6oC,EAAYA,EAAWpjC,GAE/C4D,KAAKq/B,gBAAgB1oC,GAAGqJ,KAAKu0D,YAAa/0B,EAAWpjC,GAIlEq7D,IAAiBj4B,GACnBx/B,KAAKq3D,eAAe73B,GAGtBx/B,KAAK+Z,EAAI/Z,KAAKu0D,YACdv0D,KAAK06B,GAAK16B,KAAK+Z,EACf/Z,KAAKs/B,MAAO,EACZt/B,KAAKo/B,QAAUp/B,KAAKowB,KAAK/F,WAAW+U,OAxBpC,CATA,CAkCF,EAEA80B,aAAa1zD,UAAU+2D,iBAAmB,WAMxC,IALA,IAAII,EAAW33D,KAAKgO,KAAK1T,EAAE4iB,EACvBmd,EAAWr6B,KAAKowB,KAAKnS,KAAK0gB,cAC1BhoC,EAAI,EACJwH,EAAMw5D,EAASjhE,OAEZC,GAAKwH,EAAM,KACZxH,IAAMwH,EAAM,GAAKw5D,EAAShhE,EAAI,GAAGyF,EAAIi+B,IAIzC1jC,GAAK,EAOP,OAJIqJ,KAAKo0D,YAAcz9D,IACrBqJ,KAAKo0D,UAAYz9D,GAGZqJ,KAAKgO,KAAK1T,EAAE4iB,EAAEld,KAAKo0D,WAAWv9D,CACvC,EAEAq9D,aAAa1zD,UAAUo3D,eAAiB,SAAU/Z,GAQhD,IAPA,IAGIga,EACApZ,EAJAqZ,EAAkB,GAClBnhE,EAAI,EACJwH,EAAM0/C,EAAKnnD,OAGXqhE,GAAgB,EAEbphE,EAAIwH,GACT05D,EAAWha,EAAKoC,WAAWtpD,GAEvBilD,YAAYgD,oBAAoBiZ,GAClCC,EAAgBA,EAAgBphE,OAAS,IAAMmnD,EAAKh3C,OAAOlQ,GAClDkhE,GAAY,OAAUA,GAAY,OAC3CpZ,EAAiBZ,EAAKoC,WAAWtpD,EAAI,KAEf,OAAU8nD,GAAkB,OAC5CsZ,GAAiBnc,YAAY2C,WAAWsZ,EAAUpZ,IACpDqZ,EAAgBA,EAAgBphE,OAAS,IAAMmnD,EAAKjzB,OAAOj0B,EAAG,GAC9DohE,GAAgB,GAEhBD,EAAgBx/D,KAAKulD,EAAKjzB,OAAOj0B,EAAG,IAGtCA,GAAK,GAELmhE,EAAgBx/D,KAAKulD,EAAKh3C,OAAOlQ,IAE1BkhE,EAAW,OACpBpZ,EAAiBZ,EAAKoC,WAAWtpD,EAAI,GAEjCilD,YAAY+C,kBAAkBkZ,EAAUpZ,IAC1CsZ,GAAgB,EAChBD,EAAgBA,EAAgBphE,OAAS,IAAMmnD,EAAKjzB,OAAOj0B,EAAG,GAC9DA,GAAK,GAELmhE,EAAgBx/D,KAAKulD,EAAKh3C,OAAOlQ,KAE1BilD,YAAY+C,kBAAkBkZ,IACvCC,EAAgBA,EAAgBphE,OAAS,IAAMmnD,EAAKh3C,OAAOlQ,GAC3DohE,GAAgB,GAEhBD,EAAgBx/D,KAAKulD,EAAKh3C,OAAOlQ,IAGnCA,GAAK,EAGP,OAAOmhE,CACT,EAEA5D,aAAa1zD,UAAUi1D,iBAAmB,SAAU12C,GAClDA,EAAawB,YAAa,EAC1B,IAGI5pB,EACAwH,EACA65D,EAEA95D,EAQA8e,EACAC,EAEAoC,EAlBAkM,EAAcvrB,KAAKowB,KAAK/F,WAAWkB,YACnCvd,EAAOhO,KAAKgO,KACZiqD,EAAU,GAIV1qD,EAAQ,EAER2qD,EAAiBlqD,EAAKlT,EAAEiF,EACxBo4D,EAAc,EACdC,EAAa,EACbC,EAAc,EACdxD,EAAa,GACbyD,EAAY,EACZC,EAAe,EAGfvhB,EAAWzrB,EAAY40B,cAAcphC,EAAa5nB,GAElDk5D,EAAU,EACVhT,EAAYtG,kBAAkBC,GAClCj4B,EAAao4B,QAAUkG,EAAUhG,OACjCt4B,EAAam4B,OAASmG,EAAUtlC,MAChCgH,EAAaq2C,UAAYr2C,EAAaloB,EACtCkoB,EAAas2C,UAAYr1D,KAAK43D,eAAe74C,EAAa3iB,GAC1D+B,EAAM4gB,EAAas2C,UAAU3+D,OAC7BqoB,EAAau2C,gBAAkBv2C,EAAa61C,GAC5C,IACIiD,EADAW,EAAiBz5C,EAAau4B,GAAK,IAAOv4B,EAAaq2C,UAG3D,GAAIr2C,EAAamoB,GAOf,IANA,IAGIuxB,EACApD,EAJApiD,GAAO,EACPwhD,EAAW11C,EAAamoB,GAAG,GAC3BwxB,EAAY35C,EAAamoB,GAAG,GAIzBj0B,GAAM,CAEXwlD,EAAgB,EAChBH,EAAY,EACZn6D,GAHAk3D,EAAYr1D,KAAK43D,eAAe74C,EAAa3iB,IAG7B1F,OAChB8hE,EAAiBz5C,EAAau4B,GAAK,IAAOv4B,EAAaq2C,UACvD,IAAIuD,GAAkB,EAEtB,IAAKhiE,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACxBkhE,EAAWxC,EAAU1+D,GAAGspD,WAAW,GACnC+X,GAAc,EAEO,MAAjB3C,EAAU1+D,GACZgiE,EAAiBhiE,EACK,KAAbkhE,GAAgC,IAAbA,IAC5BS,EAAY,EACZN,GAAc,EACdS,GAAiB15C,EAAau2C,iBAA4C,IAAzBv2C,EAAaq2C,WAG5D7pC,EAAYnM,OACdC,EAAWkM,EAAYw0B,YAAYsV,EAAU1+D,GAAIqgD,EAASE,OAAQF,EAASuG,SAC3E8S,EAAU2H,EAAc,EAAI34C,EAASy8B,EAAI/8B,EAAaq2C,UAAY,KAGlE/E,EAAU9kC,EAAYqyB,YAAYyX,EAAU1+D,GAAIooB,EAAa5nB,EAAG4nB,EAAaq2C,WAG3EkD,EAAYjI,EAAUoE,GAA6B,MAAjBY,EAAU1+D,KACtB,IAApBgiE,EACFx6D,GAAO,EAEPxH,EAAIgiE,EAGNF,GAAiB15C,EAAau2C,iBAA4C,IAAzBv2C,EAAaq2C,UAC9DC,EAAU/uC,OAAO3vB,EAAGgiE,IAAmBhiE,EAAI,EAAI,EAAG,MAElDgiE,GAAkB,EAClBL,EAAY,IAEZA,GAAajI,EACbiI,GAAaE,GAIjBC,GAAiBzhB,EAASwd,OAASz1C,EAAaq2C,UAAY,IAExDp1D,KAAKq0D,WAAat1C,EAAaq2C,UAAYp1D,KAAKs0D,iBAAmBoE,EAAYD,GACjF15C,EAAaq2C,WAAa,EAC1Br2C,EAAau2C,gBAAkBv2C,EAAaq2C,UAAYr2C,EAAa61C,GAAK71C,EAAaloB,IAEvFkoB,EAAas2C,UAAYA,EACzBl3D,EAAM4gB,EAAas2C,UAAU3+D,OAC7Buc,GAAO,EAEX,CAGFqlD,GAAaE,EACbnI,EAAU,EACV,IACIuI,EADAC,EAAoB,EAGxB,IAAKliE,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EA6CxB,GA5CAqhE,GAAc,EAIG,MAFjBH,GADAe,EAAc75C,EAAas2C,UAAU1+D,IACdspD,WAAW,KAEE,IAAb4X,GACrBgB,EAAoB,EACpBhE,EAAWv8D,KAAKggE,GAChBC,EAAeD,EAAYC,EAAeD,EAAYC,EACtDD,GAAa,EAAIE,EACjBt6D,EAAM,GACN85D,GAAc,EACdK,GAAe,GAEfn6D,EAAM06D,EAGJrtC,EAAYnM,OACdC,EAAWkM,EAAYw0B,YAAY6Y,EAAa5hB,EAASE,OAAQ3rB,EAAY40B,cAAcphC,EAAa5nB,GAAGomD,SAC3G8S,EAAU2H,EAAc,EAAI34C,EAASy8B,EAAI/8B,EAAaq2C,UAAY,KAIlE/E,EAAU9kC,EAAYqyB,YAAY1/C,EAAK6gB,EAAa5nB,EAAG4nB,EAAaq2C,WAIlD,MAAhBwD,EACFC,GAAqBxI,EAAUmI,GAE/BF,GAAajI,EAAUmI,EAAiBK,EACxCA,EAAoB,GAGtBZ,EAAQ3/D,KAAK,CACX0D,EAAGq0D,EACHyI,GAAIzI,EACJ0I,IAAKZ,EACLrhE,EAAGkhE,EACHgB,UAAW,GACX96D,IAAKA,EACLuoB,KAAM4xC,EACNY,sBAAuB,IAGH,GAAlBf,GAIF,GAFAC,GAAe9H,EAEH,KAARnyD,GAAsB,MAARA,GAAevH,IAAMwH,EAAM,EAAG,CAK9C,IAJY,KAARD,GAAsB,MAARA,IAChBi6D,GAAe9H,GAGV+H,GAAczhE,GACnBshE,EAAQG,GAAYU,GAAKX,EACzBF,EAAQG,GAAY78B,IAAMhuB,EAC1B0qD,EAAQG,GAAYc,MAAQ7I,EAC5B+H,GAAc,EAGhB7qD,GAAS,EACT4qD,EAAc,CAChB,OACK,GAAsB,GAAlBD,GAIT,GAFAC,GAAe9H,EAEH,KAARnyD,GAAcvH,IAAMwH,EAAM,EAAG,CAK/B,IAJY,KAARD,IACFi6D,GAAe9H,GAGV+H,GAAczhE,GACnBshE,EAAQG,GAAYU,GAAKX,EACzBF,EAAQG,GAAY78B,IAAMhuB,EAC1B0qD,EAAQG,GAAYc,MAAQ7I,EAC5B+H,GAAc,EAGhBD,EAAc,EACd5qD,GAAS,CACX,OAEA0qD,EAAQ1qD,GAAOguB,IAAMhuB,EACrB0qD,EAAQ1qD,GAAO2rD,MAAQ,EACvB3rD,GAAS,EAQb,GAJAwR,EAAa/iB,EAAIi8D,EACjBM,EAAeD,EAAYC,EAAeD,EAAYC,EACtD1D,EAAWv8D,KAAKggE,GAEZv5C,EAAamoB,GACfnoB,EAAa01C,SAAW11C,EAAamoB,GAAG,GACxCnoB,EAAa41C,cAAgB,OAI7B,OAFA51C,EAAa01C,SAAW8D,EAEhBx5C,EAAa/B,GACnB,KAAK,EACH+B,EAAa41C,eAAiB51C,EAAa01C,SAC3C,MAEF,KAAK,EACH11C,EAAa41C,eAAiB51C,EAAa01C,SAAW,EACtD,MAEF,QACE11C,EAAa41C,cAAgB,EAInC51C,EAAa81C,WAAaA,EAC1B,IACIsE,EACAC,EAEAC,EACA99B,EALA+9B,EAAYtrD,EAAK0R,EAGrBzC,EAAOq8C,EAAU5iE,OAGjB,IAAI6iE,EAAU,GAEd,IAAKv8C,EAAI,EAAGA,EAAIC,EAAMD,GAAK,EAAG,CAkB5B,KAjBAm8C,EAAeG,EAAUt8C,IAER0C,EAAEogC,KACjB/gC,EAAak2C,iBAAkB,GAG7BkE,EAAaz5C,EAAEs0C,KACjBj1C,EAAam2C,iBAAkB,IAG7BiE,EAAaz5C,EAAEu0C,IAAMkF,EAAaz5C,EAAE85C,IAAML,EAAaz5C,EAAE+5C,IAAMN,EAAaz5C,EAAEg6C,MAChF36C,EAAai2C,eAAgB,GAG/Bz5B,EAAM,EACN89B,EAAQF,EAAatiE,EAAEojB,EAElBtjB,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,GACxByiE,EAAanB,EAAQthE,IACVqiE,UAAUh8C,GAAKue,GAEb,GAAT89B,GAAiC,KAAnBD,EAAWl7D,KAAuB,GAATm7D,GAAiC,KAAnBD,EAAWl7D,KAAiC,MAAnBk7D,EAAWl7D,KAAwB,GAATm7D,IAAeD,EAAWtiE,GAAuB,KAAlBsiE,EAAWl7D,KAAcvH,GAAKwH,EAAM,IAAe,GAATk7D,IAAeD,EAAWtiE,GAAKH,GAAKwH,EAAM,MAEnM,IAAtBg7D,EAAatiE,EAAE8iE,IACjBJ,EAAQjhE,KAAKijC,GAGfA,GAAO,GAIXvtB,EAAK0R,EAAE1C,GAAGnmB,EAAE+iE,WAAar+B,EACzB,IACIs+B,EADAC,GAAc,EAGlB,GAA0B,IAAtBX,EAAatiE,EAAE8iE,GACjB,IAAKhjE,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EAGpBmjE,IAFJV,EAAanB,EAAQthE,IAEQqiE,UAAUh8C,KAErC88C,EAAaV,EAAWJ,UAAUh8C,GAClC68C,EAASN,EAAQjzC,OAAOpqB,KAAKC,MAAMD,KAAKkb,SAAWmiD,EAAQ7iE,QAAS,GAAG,IAGzE0iE,EAAWJ,UAAUh8C,GAAK68C,CAGhC,CAEA96C,EAAao2C,QAAUp2C,EAAau2C,iBAA4C,IAAzBv2C,EAAaq2C,UACpEr2C,EAAa+1C,GAAK/1C,EAAa+1C,IAAM,EACrC/1C,EAAay1C,OAASxd,EAASwd,OAASz1C,EAAaq2C,UAAY,GACnE,EAEAlB,aAAa1zD,UAAU+uB,mBAAqB,SAAUwqC,EAASxsD,GAC7DA,OAAkBpU,IAAVoU,EAAsBvN,KAAKo0D,UAAY7mD,EAC/C,IAAIysD,EAAQh6D,KAAKu1D,SAAS,CAAC,EAAGv1D,KAAKgO,KAAK1T,EAAE4iB,EAAE3P,GAAO1W,GACnDmjE,EAAQh6D,KAAKu1D,SAASyE,EAAOD,GAC7B/5D,KAAKgO,KAAK1T,EAAE4iB,EAAE3P,GAAO1W,EAAImjE,EACzBh6D,KAAKi6D,YAAY1sD,GACjBvN,KAAKq3D,eAAe2C,GACpBh6D,KAAKowB,KAAKwP,mBAAmB5/B,KAC/B,EAEAk0D,aAAa1zD,UAAUy5D,YAAc,SAAU1sD,GAC7C,IAAIysD,EAAQh6D,KAAKgO,KAAK1T,EAAE4iB,EAAE3P,GAAO1W,EACjCmjE,EAAMz5C,YAAa,EACnBvgB,KAAKo0D,UAAY,EACjBp0D,KAAKu/B,eAAgB,EACrBv/B,KAAK+/B,SAASi6B,EAChB,EAEA9F,aAAa1zD,UAAU05D,cAAgB,SAAUC,GAC/Cn6D,KAAKq0D,UAAY8F,EACjBn6D,KAAKi6D,YAAYj6D,KAAKo0D,WACtBp0D,KAAKowB,KAAKwP,mBAAmB5/B,KAC/B,EAEAk0D,aAAa1zD,UAAU45D,mBAAqB,SAAUC,GACpDr6D,KAAKs0D,gBAAkBp4D,KAAKC,MAAMk+D,IAAe,EACjDr6D,KAAKi6D,YAAYj6D,KAAKo0D,WACtBp0D,KAAKowB,KAAKwP,mBAAmB5/B,KAC/B,EAEA,IAAIs6D,iBAAmB,WACrB,IAAIxjD,EAAM5a,KAAK4a,IACXE,EAAM9a,KAAK8a,IACX7a,EAAQD,KAAKC,MAEjB,SAASo+D,EAAwBnqC,EAAMpiB,GACrChO,KAAKw6D,oBAAsB,EAC3Bx6D,KAAKkd,GAAI,EACTld,KAAKgO,KAAOA,EACZhO,KAAKowB,KAAOA,EACZpwB,KAAKie,KAAOmS,EAAKnS,KACjBje,KAAKy6D,OAAS,EACdz6D,KAAK06D,OAAS,EACd16D,KAAK4gC,6BAA6BxQ,GAClCpwB,KAAKnJ,EAAIupC,gBAAgBC,QAAQjQ,EAAMpiB,EAAKnX,GAAK,CAC/CqmB,EAAG,GACF,EAAG,EAAGld,MAGPA,KAAK/I,EADH,MAAO+W,EACAoyB,gBAAgBC,QAAQjQ,EAAMpiB,EAAK/W,EAAG,EAAG,EAAG+I,MAE5C,CACP+Z,EAAG,KAIP/Z,KAAK7J,EAAIiqC,gBAAgBC,QAAQjQ,EAAMpiB,EAAK7X,GAAK,CAC/C+mB,EAAG,GACF,EAAG,EAAGld,MACTA,KAAK26D,GAAKv6B,gBAAgBC,QAAQjQ,EAAMpiB,EAAK2sD,IAAM,CACjDz9C,EAAG,GACF,EAAG,EAAGld,MACTA,KAAK46D,GAAKx6B,gBAAgBC,QAAQjQ,EAAMpiB,EAAK4sD,IAAM,CACjD19C,EAAG,GACF,EAAG,EAAGld,MACTA,KAAK66D,GAAKz6B,gBAAgBC,QAAQjQ,EAAMpiB,EAAK6sD,IAAM,CACjD39C,EAAG,KACF,EAAG,EAAGld,MACTA,KAAK0f,EAAI0gB,gBAAgBC,QAAQjQ,EAAMpiB,EAAK0R,EAAG,EAAG,IAAM1f,MAEnDA,KAAKygC,kBAAkB/pC,QAC1BsJ,KAAK+/B,UAET,CA+JA,OA7JAw6B,EAAwB/5D,UAAY,CAClCs6D,QAAS,SAAiBv/B,GACpBv7B,KAAKw6D,qBAAuBx6D,KAAKowB,KAAK2qC,aAAaxG,YAAYv4D,EAAEtF,QACnEsJ,KAAK+/B,WAGP,IAAIvK,EAAK,EACLC,EAAK,EACLC,EAAK,EACLC,EAAK,EAEL31B,KAAK46D,GAAG7gD,EAAI,EACdyb,EAAKx1B,KAAK46D,GAAG7gD,EAAI,IAEjB0b,GAAMz1B,KAAK46D,GAAG7gD,EAAI,IAGhB/Z,KAAK26D,GAAG5gD,EAAI,EACd2b,EAAK,EAAM11B,KAAK26D,GAAG5gD,EAAI,IAEvB4b,EAAK,EAAM31B,KAAK26D,GAAG5gD,EAAI,IAGzB,IAAIihD,EAAQtpC,cAAc+J,gBAAgBjG,EAAIC,EAAIC,EAAIC,GAAI71B,IACtDm/B,EAAO,EACPpoC,EAAImJ,KAAKy6D,OACTxjE,EAAI+I,KAAK06D,OACTr4D,EAAOrC,KAAKgO,KAAKquB,GAErB,GAAa,IAATh6B,EAOF48B,EAAO+7B,EALL/7B,EADEhoC,IAAMJ,EACD0kC,GAAOtkC,EAAI,EAAI,EAEf6f,EAAI,EAAGE,EAAI,IAAO/f,EAAIJ,IAAM0kC,EAAM1kC,IAAMI,EAAIJ,GAAI,UAIpD,GAAa,IAATwL,EAOT48B,EAAO+7B,EALL/7B,EADEhoC,IAAMJ,EACD0kC,GAAOtkC,EAAI,EAAI,EAEf,EAAI6f,EAAI,EAAGE,EAAI,IAAO/f,EAAIJ,IAAM0kC,EAAM1kC,IAAMI,EAAIJ,GAAI,UAIxD,GAAa,IAATwL,EACLpL,IAAMJ,EACRooC,EAAO,GAEPA,EAAOnoB,EAAI,EAAGE,EAAI,IAAO/f,EAAIJ,IAAM0kC,EAAM1kC,IAAMI,EAAIJ,GAAI,KAE5C,GACTooC,GAAQ,EAERA,EAAO,EAAI,GAAKA,EAAO,IAI3BA,EAAO+7B,EAAM/7B,QACR,GAAa,IAAT58B,EAAY,CACrB,GAAIpL,IAAMJ,EACRooC,EAAO,MACF,CACL,IAAIg8B,EAAMhkE,EAAIJ,EAKVi8B,GAAKmoC,EAAM,GADf1/B,EAAMvkB,EAAIF,EAAI,EAAGykB,EAAM,GAAM1kC,GAAII,EAAIJ,IAEjC6oB,EAAIu7C,EAAM,EACdh8B,EAAO/iC,KAAKya,KAAK,EAAImc,EAAIA,GAAKpT,EAAIA,GACpC,CAEAuf,EAAO+7B,EAAM/7B,EACf,MAAoB,IAAT58B,GACLpL,IAAMJ,EACRooC,EAAO,GAEP1D,EAAMvkB,EAAIF,EAAI,EAAGykB,EAAM,GAAM1kC,GAAII,EAAIJ,GACrCooC,GAAQ,EAAI/iC,KAAKkiC,IAAIliC,KAAKsb,GAAe,EAAVtb,KAAKsb,GAAS+jB,GAAOtkC,EAAIJ,KAAO,GAGjEooC,EAAO+7B,EAAM/7B,KAET1D,GAAOp/B,EAAMtF,KAEbooC,EAAOnoB,EAAI,EAAGE,EADZukB,EAAM1kC,EAAI,EACMmgB,EAAI/f,EAAG,IAAMJ,EAAI0kC,GAEjBtkC,EAAIskC,EAFmB,KAM7C0D,EAAO+7B,EAAM/7B,IAaf,GAAkB,MAAdj/B,KAAK66D,GAAG9gD,EAAW,CACrB,IAAImhD,EAAyB,IAAZl7D,KAAK66D,GAAG9gD,EAEN,IAAfmhD,IACFA,EAAa,MAGf,IAAIC,EAAY,GAAmB,GAAbD,EAElBj8B,EAAOk8B,EACTl8B,EAAO,GAEPA,GAAQA,EAAOk8B,GAAaD,GAEjB,IACTj8B,EAAO,EAGb,CAEA,OAAOA,EAAOj/B,KAAK0f,EAAE3F,CACvB,EACAgmB,SAAU,SAAkBq7B,GAC1Bp7D,KAAK2gC,2BACL3gC,KAAKk/B,KAAOk8B,GAAgBp7D,KAAKk/B,KACjCl/B,KAAKw6D,mBAAqBx6D,KAAKowB,KAAK2qC,aAAaxG,YAAYv4D,EAAEtF,QAAU,EAErE0kE,GAAgC,IAAhBp7D,KAAKgO,KAAKgM,IAC5Bha,KAAK/I,EAAE8iB,EAAI/Z,KAAKw6D,oBAGlB,IAAIa,EAA0B,IAAhBr7D,KAAKgO,KAAKgM,EAAU,EAAI,IAAMha,KAAKgO,KAAK4rD,WAClDzjE,EAAI6J,KAAK7J,EAAE4jB,EAAIshD,EACfxkE,EAAImJ,KAAKnJ,EAAEkjB,EAAIshD,EAAUllE,EACzBc,EAAI+I,KAAK/I,EAAE8iB,EAAIshD,EAAUllE,EAE7B,GAAIU,EAAII,EAAG,CACT,IAAIc,EAAKlB,EACTA,EAAII,EACJA,EAAIc,CACN,CAEAiI,KAAKy6D,OAAS5jE,EACdmJ,KAAK06D,OAASzjE,CAChB,GAEFsc,gBAAgB,CAACitB,0BAA2B+5B,GAMrC,CACLe,oBALF,SAA6BlrC,EAAMpiB,EAAMnW,GACvC,OAAO,IAAI0iE,EAAwBnqC,EAAMpiB,EAAMnW,EACjD,EAKF,CA7MuB,GA+MvB,SAAS0jE,yBAAyBnrC,EAAMorC,EAAevxC,GACrD,IAAIwxC,EAAc,CAChBhhC,UAAU,GAER4F,EAAUD,gBAAgBC,QAC1Bq7B,EAA0BF,EAAc97C,EAC5C1f,KAAK0f,EAAI,CACP1F,EAAG0hD,EAAwB1hD,EAAIqmB,EAAQjQ,EAAMsrC,EAAwB1hD,EAAG,EAAGzC,UAAW0S,GAAawxC,EACnG3rB,GAAI4rB,EAAwB5rB,GAAKzP,EAAQjQ,EAAMsrC,EAAwB5rB,GAAI,EAAGv4B,UAAW0S,GAAawxC,EACtG1rB,GAAI2rB,EAAwB3rB,GAAK1P,EAAQjQ,EAAMsrC,EAAwB3rB,GAAI,EAAGx4B,UAAW0S,GAAawxC,EACtG97C,GAAI+7C,EAAwB/7C,GAAK0gB,EAAQjQ,EAAMsrC,EAAwB/7C,GAAI,EAAGpI,UAAW0S,GAAawxC,EACtG77C,GAAI87C,EAAwB97C,GAAKygB,EAAQjQ,EAAMsrC,EAAwB97C,GAAI,EAAGrI,UAAW0S,GAAawxC,EACtG5kE,EAAG6kE,EAAwB7kE,EAAIwpC,EAAQjQ,EAAMsrC,EAAwB7kE,EAAG,EAAG,IAAMozB,GAAawxC,EAC9F/7C,EAAGg8C,EAAwBh8C,EAAI2gB,EAAQjQ,EAAMsrC,EAAwBh8C,EAAG,EAAG,EAAGuK,GAAawxC,EAC3FtlE,EAAGulE,EAAwBvlE,EAAIkqC,EAAQjQ,EAAMsrC,EAAwBvlE,EAAG,EAAG,IAAM8zB,GAAawxC,EAC9F7+D,EAAG8+D,EAAwB9+D,EAAIyjC,EAAQjQ,EAAMsrC,EAAwB9+D,EAAG,EAAG,EAAGqtB,GAAawxC,EAC3FzH,GAAI0H,EAAwB1H,GAAK3zB,EAAQjQ,EAAMsrC,EAAwB1H,GAAI,EAAG,EAAG/pC,GAAawxC,EAC9F3b,GAAI4b,EAAwB5b,GAAKzf,EAAQjQ,EAAMsrC,EAAwB5b,GAAI,EAAG,EAAG71B,GAAawxC,EAC9FxH,GAAIyH,EAAwBzH,GAAK5zB,EAAQjQ,EAAMsrC,EAAwBzH,GAAI,EAAG,EAAGhqC,GAAawxC,EAC9FjC,GAAIkC,EAAwBlC,GAAKn5B,EAAQjQ,EAAMsrC,EAAwBlC,GAAI,EAAG,EAAGvvC,GAAawxC,EAC9FhC,GAAIiC,EAAwBjC,GAAKp5B,EAAQjQ,EAAMsrC,EAAwBjC,GAAI,EAAG,IAAMxvC,GAAawxC,EACjG/B,GAAIgC,EAAwBhC,GAAKr5B,EAAQjQ,EAAMsrC,EAAwBhC,GAAI,EAAG,IAAMzvC,GAAawxC,EACjGr/D,EAAGs/D,EAAwBt/D,EAAIikC,EAAQjQ,EAAMsrC,EAAwBt/D,EAAG,EAAG,EAAG6tB,GAAawxC,GAE7Fz7D,KAAKnJ,EAAIyjE,iBAAiBgB,oBAAoBlrC,EAAMorC,EAAc3kE,EAAGozB,GACrEjqB,KAAKnJ,EAAEuF,EAAIo/D,EAAc3kE,EAAEuF,CAC7B,CAEA,SAASu/D,qBAAqBzZ,EAAU0Z,EAAYxrC,GAClDpwB,KAAKu/B,eAAgB,EACrBv/B,KAAK67D,gBAAiB,EACtB77D,KAAKm0D,UAAY,EACjBn0D,KAAK87D,UAAY5Z,EACjBliD,KAAK+7D,YAAcH,EACnB57D,KAAKg8D,MAAQ5rC,EACbpwB,KAAKi8D,eAAiBhmD,iBAAiBjW,KAAK87D,UAAUp8C,EAAEhpB,QACxDsJ,KAAKk8D,UAAY,CAAC,EAClBl8D,KAAKm8D,aAAe,CAClBC,UAAW,CAAC,GAEdp8D,KAAKq8D,gBAAkB,GACvBr8D,KAAKs8D,oBAAqB,EAC1Bt8D,KAAK4gC,6BAA6BxQ,EACpC,CAwoBA,SAASmsC,eAAgB,CAtoBzBZ,qBAAqBn7D,UAAUg8D,iBAAmB,WAChD,IAAI7lE,EAEA6kE,EADAr9D,EAAM6B,KAAK87D,UAAUp8C,EAAEhpB,OAEvB2pC,EAAUD,gBAAgBC,QAE9B,IAAK1pC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACxB6kE,EAAgBx7D,KAAK87D,UAAUp8C,EAAE/oB,GACjCqJ,KAAKi8D,eAAetlE,GAAK,IAAI4kE,yBAAyBv7D,KAAKg8D,MAAOR,EAAex7D,MAG/EA,KAAK87D,UAAUl/D,GAAK,MAAOoD,KAAK87D,UAAUl/D,GAC5CoD,KAAKk8D,UAAY,CACfx8C,EAAG2gB,EAAQrgC,KAAKg8D,MAAOh8D,KAAK87D,UAAUl/D,EAAE8iB,EAAG,EAAG,EAAG1f,MACjD7I,EAAGkpC,EAAQrgC,KAAKg8D,MAAOh8D,KAAK87D,UAAUl/D,EAAEzF,EAAG,EAAG,EAAG6I,MACjDhE,EAAGqkC,EAAQrgC,KAAKg8D,MAAOh8D,KAAK87D,UAAUl/D,EAAEZ,EAAG,EAAG,EAAGgE,MACjDga,EAAGqmB,EAAQrgC,KAAKg8D,MAAOh8D,KAAK87D,UAAUl/D,EAAEod,EAAG,EAAG,EAAGha,MACjDpD,EAAGyjC,EAAQrgC,KAAKg8D,MAAOh8D,KAAK87D,UAAUl/D,EAAEA,EAAG,EAAG,EAAGoD,MACjDlF,EAAGkF,KAAKg8D,MAAM7V,YAAYiE,gBAAgBpqD,KAAK87D,UAAUl/D,EAAE9B,IAE7DkF,KAAK67D,gBAAiB,GAEtB77D,KAAK67D,gBAAiB,EAGxB77D,KAAKm8D,aAAaC,UAAY/7B,EAAQrgC,KAAKg8D,MAAOh8D,KAAK87D,UAAUhhE,EAAE4kB,EAAG,EAAG,EAAG1f,KAC9E,EAEA27D,qBAAqBn7D,UAAUi8D,YAAc,SAAU19C,EAAcu9C,GAGnE,GAFAt8D,KAAKs8D,mBAAqBA,EAErBt8D,KAAKk/B,MAASl/B,KAAKu/B,eAAkB+8B,GAAwBt8D,KAAK67D,gBAAmB77D,KAAKk8D,UAAUphE,EAAEokC,KAA3G,CAIAl/B,KAAKu/B,eAAgB,EACrB,IAMIm9B,EACAC,EACAhmE,EACAwH,EAEAy+D,EACAC,EACAC,EACAlmC,EACA3jB,EACA8pD,EACAC,EACAroB,EACAjiB,EACAtJ,EACA2N,EACA3B,EACAiB,EACA4mC,EACAnkE,EAzBAsjE,EAAYp8D,KAAKm8D,aAAaC,UAAUriD,EACxCu/C,EAAYt5D,KAAKi8D,eACjB/Z,EAAWliD,KAAK87D,UAChBoB,EAAel9D,KAAKmqD,QACpByR,EAAa57D,KAAK+7D,YAClBoB,EAAuBn9D,KAAKq8D,gBAAgB3lE,OAK5CuhE,EAAUl5C,EAAa/iB,EAiB3B,GAAIgE,KAAK67D,eAAgB,CAGvB,GAFA/iE,EAAOkH,KAAKk8D,UAAUphE,GAEjBkF,KAAKk8D,UAAUplE,GAAKkJ,KAAKk8D,UAAUh9B,KAAM,CAC5C,IAYI/H,EAZAz3B,EAAQ5G,EAAKihB,EAejB,IAbI/Z,KAAKk8D,UAAUliD,EAAED,IACnBra,EAAQA,EAAMgH,WAIhBk2D,EAAW,CACTQ,QAAS,EACTh0C,SAAU,IAEZjrB,EAAMuB,EAAMg1B,QAAU,EAEtBU,EAAc,EAETz+B,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACxBwgC,EAAa8C,IAAIjD,gBAAgBt3B,EAAMqa,EAAEpjB,GAAI+I,EAAMqa,EAAEpjB,EAAI,GAAI,CAAC+I,EAAMvJ,EAAEQ,GAAG,GAAK+I,EAAMqa,EAAEpjB,GAAG,GAAI+I,EAAMvJ,EAAEQ,GAAG,GAAK+I,EAAMqa,EAAEpjB,GAAG,IAAK,CAAC+I,EAAM/I,EAAEA,EAAI,GAAG,GAAK+I,EAAMqa,EAAEpjB,EAAI,GAAG,GAAI+I,EAAM/I,EAAEA,EAAI,GAAG,GAAK+I,EAAMqa,EAAEpjB,EAAI,GAAG,KACxMimE,EAASQ,SAAWjmC,EAAWP,cAC/BgmC,EAASxzC,SAAS9wB,KAAK6+B,GACvB/B,GAAe+B,EAAWP,cAG5BjgC,EAAIwH,EAEArF,EAAKihB,EAAEkG,IACTkX,EAAa8C,IAAIjD,gBAAgBt3B,EAAMqa,EAAEpjB,GAAI+I,EAAMqa,EAAE,GAAI,CAACra,EAAMvJ,EAAEQ,GAAG,GAAK+I,EAAMqa,EAAEpjB,GAAG,GAAI+I,EAAMvJ,EAAEQ,GAAG,GAAK+I,EAAMqa,EAAEpjB,GAAG,IAAK,CAAC+I,EAAM/I,EAAE,GAAG,GAAK+I,EAAMqa,EAAE,GAAG,GAAIra,EAAM/I,EAAE,GAAG,GAAK+I,EAAMqa,EAAE,GAAG,KACpL6iD,EAASQ,SAAWjmC,EAAWP,cAC/BgmC,EAASxzC,SAAS9wB,KAAK6+B,GACvB/B,GAAe+B,EAAWP,eAG5B52B,KAAKk8D,UAAUmB,GAAKT,CACtB,CAUA,GARAA,EAAW58D,KAAKk8D,UAAUmB,GAC1BR,EAAgB78D,KAAKk8D,UAAU/kE,EAAE4iB,EACjCijD,EAAa,EACbD,EAAW,EACXnmC,EAAgB,EAChB3jB,GAAO,EACPmW,EAAWwzC,EAASxzC,SAEhByzC,EAAgB,GAAK/jE,EAAKihB,EAAEkG,EAS9B,IARI28C,EAASQ,QAAUlhE,KAAKS,IAAIkgE,KAC9BA,GAAiB3gE,KAAKS,IAAIkgE,GAAiBD,EAASQ,SAKtDL,GADArqC,EAAStJ,EADT4zC,EAAa5zC,EAAS1yB,OAAS,GACDg8B,QACZh8B,OAAS,EAEpBmmE,EAAgB,GACrBA,GAAiBnqC,EAAOqqC,GAAUhmC,eAClCgmC,GAAY,GAEG,IAGbA,GADArqC,EAAStJ,EADT4zC,GAAc,GACgBtqC,QACZh8B,OAAS,GAMjCi+C,GADAjiB,EAAStJ,EAAS4zC,GAAYtqC,QACXqqC,EAAW,GAE9BhmC,GADA+lC,EAAepqC,EAAOqqC,IACOhmC,aAC/B,CAEA54B,EAAM85D,EAAQvhE,OACdgmE,EAAO,EACPC,EAAO,EACP,IAEInB,EAEAx+C,EACAC,EACAqgD,EAEAr+B,EARAs+B,EAAgC,IAAzBx+C,EAAaq2C,UAAkB,KACtCoI,GAAY,EAMhBvgD,EAAOq8C,EAAU5iE,OAEjB,IACI+mE,EACAC,EACAC,EAKAC,EACA9d,EACAkU,EACAC,EACA/2C,EACA2gD,EACAC,EACAC,EAGAC,EAlBAziC,GAAO,EAIP0iC,EAAcpB,EACdqB,EAAiBlB,EACjBmB,EAAepB,EACf1E,GAAe,EASf+F,GAAU,GACVC,GAAUr+D,KAAKs+D,kBAGnB,GAAuB,IAAnBv/C,EAAa/B,GAA8B,IAAnB+B,EAAa/B,EAAS,CAChD,IAAIi8C,GAAwB,EACxBsF,GAA0B,EAC1BC,GAAuC,IAAnBz/C,EAAa/B,GAAW,IAAO,EACnDge,GAAY,EACZyjC,IAAY,EAEhB,IAAK9nE,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACxB,GAAIshE,EAAQthE,GAAGG,EAAG,CAKhB,IAJImiE,KACFA,IAAyBsF,IAGpBvjC,GAAYrkC,GACjBshE,EAAQj9B,IAAWi+B,sBAAwBA,GAC3Cj+B,IAAa,EAGfi+B,GAAwB,EACxBwF,IAAY,CACd,KAAO,CACL,IAAKzhD,EAAI,EAAGA,EAAIC,EAAMD,GAAK,GACzBw+C,EAAgBlC,EAAUt8C,GAAG0C,GAEXtjB,EAAEq+B,WACdgkC,IAAgC,IAAnB1/C,EAAa/B,IAC5BuhD,IAA2B/C,EAAcp/D,EAAE2d,EAAIykD,KAIjDv/B,EADmBq6B,EAAUt8C,GAAGnmB,EACRikE,QAAQ7C,EAAQthE,GAAGqiE,UAAUh8C,GAAIklC,EAASxiC,EAAE1C,GAAGnmB,EAAE+iE,aAEhEljE,OACPuiE,IAAyBuC,EAAcp/D,EAAE2d,EAAIklB,EAAK,GAAKu/B,GAEvDvF,IAAyBuC,EAAcp/D,EAAE2d,EAAIklB,EAAOu/B,IAK1DC,IAAY,CACd,CAOF,IAJIxF,KACFA,IAAyBsF,IAGpBvjC,GAAYrkC,GACjBshE,EAAQj9B,IAAWi+B,sBAAwBA,GAC3Cj+B,IAAa,CAEjB,CAGA,IAAKrkC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EAAG,CAI3B,GAHAumE,EAAa13D,QACbo4D,EAAc,EAEV3F,EAAQthE,GAAGG,EACb4lE,EAAO,EACPC,GAAQ59C,EAAao2C,QACrBwH,GAAQa,EAAY,EAAI,EACxBX,EAAgBoB,EAChBT,GAAY,EAERx9D,KAAK67D,iBAEPkB,EAAWoB,EAEXxpB,GADAjiB,EAAStJ,EAFT4zC,EAAakB,GAEiBxrC,QACXqqC,EAAW,GAE9BhmC,GADA+lC,EAAepqC,EAAOqqC,IACOhmC,cAC7BH,EAAgB,GAGlBwnC,GAAU,GACVL,EAAW,GACXF,EAAW,GACXG,EAAU,GACVK,GAAUr+D,KAAKs+D,sBACV,CACL,GAAIt+D,KAAK67D,eAAgB,CACvB,GAAIxD,IAAgBJ,EAAQthE,GAAG8vB,KAAM,CACnC,OAAQ1H,EAAa/B,GACnB,KAAK,EACH6/C,GAAiBznC,EAAcrW,EAAa81C,WAAWoD,EAAQthE,GAAG8vB,MAClE,MAEF,KAAK,EACHo2C,IAAkBznC,EAAcrW,EAAa81C,WAAWoD,EAAQthE,GAAG8vB,OAAS,EAOhF4xC,EAAcJ,EAAQthE,GAAG8vB,IAC3B,CAEI8U,IAAQ08B,EAAQthE,GAAG4kC,MACjB08B,EAAQ18B,KACVshC,GAAiB5E,EAAQ18B,GAAK29B,OAGhC2D,GAAiB5E,EAAQthE,GAAGmiE,GAAK,EACjCv9B,EAAM08B,EAAQthE,GAAG4kC,KAGnBshC,GAAiBT,EAAU,GAAKnE,EAAQthE,GAAGmiE,GAAK,KAChD,IAAI4F,GAAiB,EAErB,IAAK1hD,EAAI,EAAGA,EAAIC,EAAMD,GAAK,GACzBw+C,EAAgBlC,EAAUt8C,GAAG0C,GAEX9iB,EAAE69B,YAElBwE,EADmBq6B,EAAUt8C,GAAGnmB,EACRikE,QAAQ7C,EAAQthE,GAAGqiE,UAAUh8C,GAAIklC,EAASxiC,EAAE1C,GAAGnmB,EAAE+iE,aAEhEljE,OACPgoE,IAAkBlD,EAAc5+D,EAAEmd,EAAE,GAAKklB,EAAK,GAE9Cy/B,IAAkBlD,EAAc5+D,EAAEmd,EAAE,GAAKklB,GAIzCu8B,EAAc97C,EAAE+a,YAElBwE,EADmBq6B,EAAUt8C,GAAGnmB,EACRikE,QAAQ7C,EAAQthE,GAAGqiE,UAAUh8C,GAAIklC,EAASxiC,EAAE1C,GAAGnmB,EAAE+iE,aAEhEljE,OACPgoE,IAAkBlD,EAAc97C,EAAE3F,EAAE,GAAKklB,EAAK,GAE9Cy/B,IAAkBlD,EAAc97C,EAAE3F,EAAE,GAAKklB,GAY/C,IAPAhsB,GAAO,EAEHjT,KAAKk8D,UAAUx8C,EAAE3F,IACnB8iD,EAAgC,GAAhB5E,EAAQ,GAAGa,IAAY1jC,EAAcp1B,KAAKk8D,UAAU/kE,EAAE4iB,EAAoB,GAAhBk+C,EAAQ,GAAGa,GAA4C,GAAjCb,EAAQA,EAAQvhE,OAAS,GAAGoiE,IAAYv9B,GAAOp9B,EAAM,GACrJ0+D,GAAiB78D,KAAKk8D,UAAU/kE,EAAE4iB,GAG7B9G,GACD2jB,EAAgBG,GAAiB8lC,EAAgB6B,KAAmBhsC,GACtE2D,GAAQwmC,EAAgB6B,GAAiB9nC,GAAiBkmC,EAAa/lC,cACvE2mC,EAAW/oB,EAAUne,MAAM,IAAMsmC,EAAatmC,MAAM,GAAKme,EAAUne,MAAM,IAAMH,EAC/EsnC,EAAWhpB,EAAUne,MAAM,IAAMsmC,EAAatmC,MAAM,GAAKme,EAAUne,MAAM,IAAMH,EAC/E6mC,EAAa91B,WAAWg1B,EAAU,GAAKnE,EAAQthE,GAAGmiE,GAAK,MAASsD,EAAU,GAAKmB,EAAQ,KACvFtqD,GAAO,GACEyf,IACTkE,GAAiBkmC,EAAa/lC,eAC9BgmC,GAAY,IAEIrqC,EAAOh8B,SACrBqmE,EAAW,EAGN3zC,EAFL4zC,GAAc,GAYZtqC,EAAStJ,EAAS4zC,GAAYtqC,OAT1B55B,EAAKihB,EAAEkG,GACT88C,EAAW,EAEXrqC,EAAStJ,EADT4zC,EAAa,GACiBtqC,SAE9BkE,GAAiBkmC,EAAa/lC,cAC9BrE,EAAS,OAOXA,IACFiiB,EAAYmoB,EAEZ/lC,GADA+lC,EAAepqC,EAAOqqC,IACOhmC,gBAKnC0mC,EAAOxF,EAAQthE,GAAGmiE,GAAK,EAAIb,EAAQthE,GAAGoiE,IACtCmE,EAAa91B,WAAWq2B,EAAM,EAAG,EACnC,MACEA,EAAOxF,EAAQthE,GAAGmiE,GAAK,EAAIb,EAAQthE,GAAGoiE,IACtCmE,EAAa91B,WAAWq2B,EAAM,EAAG,GAEjCP,EAAa91B,WAAWg1B,EAAU,GAAKnE,EAAQthE,GAAGmiE,GAAK,MAAQsD,EAAU,GAAKmB,EAAO,IAAM,GAG7F,IAAKvgD,EAAI,EAAGA,EAAIC,EAAMD,GAAK,GACzBw+C,EAAgBlC,EAAUt8C,GAAG0C,GAEXtjB,EAAEq+B,WAElBwE,EADmBq6B,EAAUt8C,GAAGnmB,EACRikE,QAAQ7C,EAAQthE,GAAGqiE,UAAUh8C,GAAIklC,EAASxiC,EAAE1C,GAAGnmB,EAAE+iE,YAE5D,IAAT8C,GAAiC,IAAnB39C,EAAa/B,IACzBhd,KAAK67D,eACH58B,EAAKvoC,OACPmmE,GAAiBrB,EAAcp/D,EAAE2d,EAAIklB,EAAK,GAE1C49B,GAAiBrB,EAAcp/D,EAAE2d,EAAIklB,EAE9BA,EAAKvoC,OACdgmE,GAAQlB,EAAcp/D,EAAE2d,EAAIklB,EAAK,GAEjCy9B,GAAQlB,EAAcp/D,EAAE2d,EAAIklB,IAsBpC,IAhBIlgB,EAAam2C,kBACflB,EAAKj1C,EAAai1C,IAAM,GAGtBj1C,EAAak2C,kBAEbnV,EADE/gC,EAAa+gC,GACV,CAAC/gC,EAAa+gC,GAAG,GAAI/gC,EAAa+gC,GAAG,GAAI/gC,EAAa+gC,GAAG,IAEzD,CAAC,EAAG,EAAG,IAIZ/gC,EAAai2C,eAAiBj2C,EAAak1C,KAC7CA,EAAK,CAACl1C,EAAak1C,GAAG,GAAIl1C,EAAak1C,GAAG,GAAIl1C,EAAak1C,GAAG,KAG3Dj3C,EAAI,EAAGA,EAAIC,EAAMD,GAAK,GACzBw+C,EAAgBlC,EAAUt8C,GAAG0C,GAEXA,EAAE+a,YAElBwE,EADmBq6B,EAAUt8C,GAAGnmB,EACRikE,QAAQ7C,EAAQthE,GAAGqiE,UAAUh8C,GAAIklC,EAASxiC,EAAE1C,GAAGnmB,EAAE+iE,aAEhEljE,OACPwmE,EAAa91B,WAAWo0B,EAAc97C,EAAE3F,EAAE,GAAKklB,EAAK,IAAKu8B,EAAc97C,EAAE3F,EAAE,GAAKklB,EAAK,GAAIu8B,EAAc97C,EAAE3F,EAAE,GAAKklB,EAAK,IAErHi+B,EAAa91B,WAAWo0B,EAAc97C,EAAE3F,EAAE,GAAKklB,GAAOu8B,EAAc97C,EAAE3F,EAAE,GAAKklB,EAAMu8B,EAAc97C,EAAE3F,EAAE,GAAKklB,IAKhH,IAAKjiB,EAAI,EAAGA,EAAIC,EAAMD,GAAK,GACzBw+C,EAAgBlC,EAAUt8C,GAAG0C,GAEX7oB,EAAE4jC,YAElBwE,EADmBq6B,EAAUt8C,GAAGnmB,EACRikE,QAAQ7C,EAAQthE,GAAGqiE,UAAUh8C,GAAIklC,EAASxiC,EAAE1C,GAAGnmB,EAAE+iE,aAEhEljE,OACPwmE,EAAaj2B,MAAM,GAAKu0B,EAAc3kE,EAAEkjB,EAAE,GAAK,GAAKklB,EAAK,GAAI,GAAKu8B,EAAc3kE,EAAEkjB,EAAE,GAAK,GAAKklB,EAAK,GAAI,GAEvGi+B,EAAaj2B,MAAM,GAAKu0B,EAAc3kE,EAAEkjB,EAAE,GAAK,GAAKklB,EAAM,GAAKu8B,EAAc3kE,EAAEkjB,EAAE,GAAK,GAAKklB,EAAM,IAKvG,IAAKjiB,EAAI,EAAGA,EAAIC,EAAMD,GAAK,EAAG,CAqD5B,GApDAw+C,EAAgBlC,EAAUt8C,GAAG0C,EAE7Buf,EADmBq6B,EAAUt8C,GAAGnmB,EACRikE,QAAQ7C,EAAQthE,GAAGqiE,UAAUh8C,GAAIklC,EAASxiC,EAAE1C,GAAGnmB,EAAE+iE,YAErE4B,EAAc77C,GAAG8a,WACfwE,EAAKvoC,OACPwmE,EAAal2B,cAAcw0B,EAAc77C,GAAG5F,EAAIklB,EAAK,GAAIu8B,EAAc57C,GAAG7F,EAAIklB,EAAK,IAEnFi+B,EAAal2B,cAAcw0B,EAAc77C,GAAG5F,EAAIklB,EAAMu8B,EAAc57C,GAAG7F,EAAIklB,IAI3Eu8B,EAAcxhD,EAAEygB,WACdwE,EAAKvoC,OACPwmE,EAAat2B,SAAS40B,EAAcxhD,EAAED,EAAIklB,EAAK,IAE/Ci+B,EAAat2B,SAAS40B,EAAcxhD,EAAED,EAAIklB,IAI1Cu8B,EAAczrB,GAAGtV,WACfwE,EAAKvoC,OACPwmE,EAAav2B,QAAQ60B,EAAczrB,GAAGh2B,EAAIklB,EAAK,IAE/Ci+B,EAAav2B,QAAQ60B,EAAczrB,GAAGh2B,EAAIklB,IAI1Cu8B,EAAc1rB,GAAGrV,WACfwE,EAAKvoC,OACPwmE,EAAax2B,QAAQ80B,EAAc1rB,GAAG/1B,EAAIklB,EAAK,IAE/Ci+B,EAAax2B,QAAQ80B,EAAc1rB,GAAG/1B,EAAIklB,IAI1Cu8B,EAAcrlE,EAAEskC,WACdwE,EAAKvoC,OACPknE,IAAgBpC,EAAcrlE,EAAE4jB,EAAIklB,EAAK,GAAK2+B,GAAe3+B,EAAK,GAElE2+B,IAAgBpC,EAAcrlE,EAAE4jB,EAAIklB,EAAO2+B,GAAe3+B,GAI1DlgB,EAAam2C,iBAAmBsG,EAAcxH,GAAGv5B,WAC/CwE,EAAKvoC,OACPs9D,GAAMwH,EAAcxH,GAAGj6C,EAAIklB,EAAK,GAEhC+0B,GAAMwH,EAAcxH,GAAGj6C,EAAIklB,GAI3BlgB,EAAak2C,iBAAmBuG,EAAc1b,GAAGrlB,SACnD,IAAKvd,EAAI,EAAGA,EAAI,EAAGA,GAAK,EAClB+hB,EAAKvoC,OACPopD,EAAG5iC,KAAOs+C,EAAc1b,GAAG/lC,EAAEmD,GAAK4iC,EAAG5iC,IAAM+hB,EAAK,GAEhD6gB,EAAG5iC,KAAOs+C,EAAc1b,GAAG/lC,EAAEmD,GAAK4iC,EAAG5iC,IAAM+hB,EAKjD,GAAIlgB,EAAai2C,eAAiBj2C,EAAak1C,GAAI,CACjD,GAAIuH,EAAcvH,GAAGx5B,SACnB,IAAKvd,EAAI,EAAGA,EAAI,EAAGA,GAAK,EAClB+hB,EAAKvoC,OACPu9D,EAAG/2C,KAAOs+C,EAAcvH,GAAGl6C,EAAEmD,GAAK+2C,EAAG/2C,IAAM+hB,EAAK,GAEhDg1B,EAAG/2C,KAAOs+C,EAAcvH,GAAGl6C,EAAEmD,GAAK+2C,EAAG/2C,IAAM+hB,EAK7Cu8B,EAAchC,GAAG/+B,WAEjBw5B,EADEh1B,EAAKvoC,OACF+jB,YAAYw5C,EAAIuH,EAAchC,GAAGz/C,EAAIklB,EAAK,IAE1CxkB,YAAYw5C,EAAIuH,EAAchC,GAAGz/C,EAAIklB,IAI1Cu8B,EAAc/B,GAAGh/B,WAEjBw5B,EADEh1B,EAAKvoC,OACF0jB,mBAAmB65C,EAAIuH,EAAc/B,GAAG1/C,EAAIklB,EAAK,IAEjD7kB,mBAAmB65C,EAAIuH,EAAc/B,GAAG1/C,EAAIklB,IAIjDu8B,EAAc9B,GAAGj/B,WAEjBw5B,EADEh1B,EAAKvoC,OACF8jB,mBAAmBy5C,EAAIuH,EAAc9B,GAAG3/C,EAAIklB,EAAK,IAEjDzkB,mBAAmBy5C,EAAIuH,EAAc9B,GAAG3/C,EAAIklB,GAGvD,CACF,CAEA,IAAKjiB,EAAI,EAAGA,EAAIC,EAAMD,GAAK,GACzBw+C,EAAgBlC,EAAUt8C,GAAG0C,GAEX9iB,EAAE69B,WAElBwE,EADmBq6B,EAAUt8C,GAAGnmB,EACRikE,QAAQ7C,EAAQthE,GAAGqiE,UAAUh8C,GAAIklC,EAASxiC,EAAE1C,GAAGnmB,EAAE+iE,YAErE55D,KAAK67D,eACH58B,EAAKvoC,OACPwmE,EAAa91B,UAAU,EAAGo0B,EAAc5+D,EAAEmd,EAAE,GAAKklB,EAAK,IAAKu8B,EAAc5+D,EAAEmd,EAAE,GAAKklB,EAAK,IAEvFi+B,EAAa91B,UAAU,EAAGo0B,EAAc5+D,EAAEmd,EAAE,GAAKklB,GAAOu8B,EAAc5+D,EAAEmd,EAAE,GAAKklB,GAExEA,EAAKvoC,OACdwmE,EAAa91B,UAAUo0B,EAAc5+D,EAAEmd,EAAE,GAAKklB,EAAK,GAAIu8B,EAAc5+D,EAAEmd,EAAE,GAAKklB,EAAK,IAAKu8B,EAAc5+D,EAAEmd,EAAE,GAAKklB,EAAK,IAEpHi+B,EAAa91B,UAAUo0B,EAAc5+D,EAAEmd,EAAE,GAAKklB,EAAMu8B,EAAc5+D,EAAEmd,EAAE,GAAKklB,GAAOu8B,EAAc5+D,EAAEmd,EAAE,GAAKklB,IAiB/G,GAZIlgB,EAAam2C,kBACf2I,EAAW7J,EAAK,EAAI,EAAIA,GAGtBj1C,EAAak2C,kBACf6I,EAAW,OAAS5hE,KAAK0b,MAAc,IAARkoC,EAAG,IAAY,IAAM5jD,KAAK0b,MAAc,IAARkoC,EAAG,IAAY,IAAM5jD,KAAK0b,MAAc,IAARkoC,EAAG,IAAY,KAG5G/gC,EAAai2C,eAAiBj2C,EAAak1C,KAC7C8J,EAAW,OAAS7hE,KAAK0b,MAAc,IAARq8C,EAAG,IAAY,IAAM/3D,KAAK0b,MAAc,IAARq8C,EAAG,IAAY,IAAM/3D,KAAK0b,MAAc,IAARq8C,EAAG,IAAY,KAG5Gj0D,KAAK67D,eAAgB,CAIvB,GAHAqB,EAAa91B,UAAU,GAAIroB,EAAa+1C,IACxCoI,EAAa91B,UAAU,EAAGg1B,EAAU,GAAKmB,EAAO,IAAOZ,EAAM,GAEzD38D,KAAKk8D,UAAUt/D,EAAEmd,EAAG,CACtBkjD,GAAYH,EAAatmC,MAAM,GAAKme,EAAUne,MAAM,KAAOsmC,EAAatmC,MAAM,GAAKme,EAAUne,MAAM,IACnG,IAAI0d,GAA4B,IAAtBh4C,KAAKyiE,KAAK1B,GAAkB/gE,KAAKsb,GAEvCslD,EAAatmC,MAAM,GAAKme,EAAUne,MAAM,KAC1C0d,IAAO,KAGTgpB,EAAa52B,QAAQ4N,GAAMh4C,KAAKsb,GAAK,IACvC,CAEA0lD,EAAa91B,UAAUs2B,EAAUC,EAAU,GAC3Cd,GAAiBT,EAAU,GAAKnE,EAAQthE,GAAGmiE,GAAK,KAE5Cb,EAAQthE,EAAI,IAAM4kC,IAAQ08B,EAAQthE,EAAI,GAAG4kC,MAC3CshC,GAAiB5E,EAAQthE,GAAGmiE,GAAK,EACjC+D,GAAmC,KAAlB99C,EAAau4B,GAAav4B,EAAaq2C,UAE5D,KAAO,CAQL,OAPA8H,EAAa91B,UAAUs1B,EAAMC,EAAM,GAE/B59C,EAAag2C,IAEfmI,EAAa91B,UAAUroB,EAAag2C,GAAG,GAAIh2C,EAAag2C,GAAG,GAAKh2C,EAAay1C,OAAQ,GAG/Ez1C,EAAa/B,GACnB,KAAK,EACHkgD,EAAa91B,UAAU6wB,EAAQthE,GAAGsiE,sBAAwBl6C,EAAa41C,eAAiB51C,EAAa01C,SAAW11C,EAAa81C,WAAWoD,EAAQthE,GAAG8vB,OAAQ,EAAG,GAC9J,MAEF,KAAK,EACHy2C,EAAa91B,UAAU6wB,EAAQthE,GAAGsiE,sBAAwBl6C,EAAa41C,eAAiB51C,EAAa01C,SAAW11C,EAAa81C,WAAWoD,EAAQthE,GAAG8vB,OAAS,EAAG,EAAG,GAOtKy2C,EAAa91B,UAAU,GAAIroB,EAAa+1C,IACxCoI,EAAa91B,UAAUq2B,EAAM,EAAG,GAChCP,EAAa91B,UAAUg1B,EAAU,GAAKnE,EAAQthE,GAAGmiE,GAAK,KAAOsD,EAAU,GAAKmB,EAAO,IAAM,GACzFb,GAAQzE,EAAQthE,GAAGqF,EAAsB,KAAlB+iB,EAAau4B,GAAav4B,EAAaq2C,SAChE,CAEmB,SAAfwG,EACFwC,GAAUlB,EAAapyB,QACC,QAAf8wB,EACTwC,GAAUlB,EAAajyB,UAEvBozB,GAAU,CAACnB,EAAax0D,MAAM,GAAIw0D,EAAax0D,MAAM,GAAIw0D,EAAax0D,MAAM,GAAIw0D,EAAax0D,MAAM,GAAIw0D,EAAax0D,MAAM,GAAIw0D,EAAax0D,MAAM,GAAIw0D,EAAax0D,MAAM,GAAIw0D,EAAax0D,MAAM,GAAIw0D,EAAax0D,MAAM,GAAIw0D,EAAax0D,MAAM,GAAIw0D,EAAax0D,MAAM,IAAKw0D,EAAax0D,MAAM,IAAKw0D,EAAax0D,MAAM,IAAKw0D,EAAax0D,MAAM,IAAKw0D,EAAax0D,MAAM,IAAKw0D,EAAax0D,MAAM,KAG9Xs1D,EAAUJ,CACZ,CAEIT,GAAwBxmE,GAC1B2mE,EAAc,IAAIvJ,YAAYiK,EAASH,EAAUC,EAAUC,EAAUK,GAASC,IAC9Er+D,KAAKq8D,gBAAgB/jE,KAAKglE,GAC1BH,GAAwB,EACxBn9D,KAAKs8D,oBAAqB,IAE1BgB,EAAct9D,KAAKq8D,gBAAgB1lE,GACnCqJ,KAAKs8D,mBAAqBgB,EAAYnG,OAAO6G,EAASH,EAAUC,EAAUC,EAAUK,GAASC,KAAYr+D,KAAKs8D,mBAElH,CArlBA,CAslBF,EAEAX,qBAAqBn7D,UAAUu/B,SAAW,WACpC//B,KAAKg8D,MAAM3xC,WAAW+U,UAAYp/B,KAAKm0D,WAI3Cn0D,KAAKm0D,SAAWn0D,KAAKg8D,MAAM3xC,WAAW+U,QACtCp/B,KAAK2gC,2BACP,EAEAg7B,qBAAqBn7D,UAAU2pD,QAAU,IAAInkB,OAC7C21B,qBAAqBn7D,UAAU89D,kBAAoB,GACnD/qD,gBAAgB,CAACitB,0BAA2Bm7B,sBAI5CY,aAAa/7D,UAAUwrD,YAAc,SAAUh+C,EAAMqc,EAAYpM,GAC/Dje,KAAKs8D,oBAAqB,EAC1Bt8D,KAAKk6B,YACLl6B,KAAKwjD,aAAax1C,EAAMqc,EAAYpM,GACpCje,KAAK+6D,aAAe,IAAI7G,aAAal0D,KAAMgO,EAAK5R,EAAG4D,KAAKygC,mBACxDzgC,KAAK4+D,aAAe,IAAIjD,qBAAqB3tD,EAAK5R,EAAG4D,KAAK47D,WAAY57D,MACtEA,KAAK0pD,cAAc17C,EAAMqc,EAAYpM,GACrCje,KAAKiuD,gBACLjuD,KAAK+gD,iBACL/gD,KAAKosD,sBACLpsD,KAAKqsD,0BACLrsD,KAAKotD,6BACLptD,KAAKmuD,gBACLnuD,KAAKovB,OACLpvB,KAAK4+D,aAAapC,iBAAiBx8D,KAAKygC,kBAC1C,EAEA87B,aAAa/7D,UAAUmnB,aAAe,SAAU65B,GAC9CxhD,KAAKk/B,MAAO,EACZl/B,KAAKuhD,uBAAuBC,GAC5BxhD,KAAKonD,kBAAkB5F,EAAKxhD,KAAKghD,YAE7BhhD,KAAK+6D,aAAa77B,MAAQl/B,KAAK+6D,aAAax7B,iBAC9Cv/B,KAAK6+D,eACL7+D,KAAK+6D,aAAax7B,eAAgB,EAClCv/B,KAAK+6D,aAAa77B,MAAO,EAE7B,EAEAq9B,aAAa/7D,UAAUs+D,gBAAkB,SAAU5B,EAAcp/C,GAC/D,IAAId,EAEAutC,EADAttC,EAAOa,EAAOpnB,OAEdqoE,EAAW,GAEf,IAAK/hD,EAAI,EAAGA,EAAIC,EAAMD,GAAK,EACJ,OAAjBc,EAAOd,GAAGU,KACZ6sC,EAAYzsC,EAAOd,GAAGsB,GAAGpB,EACzB6hD,GAAY7M,iBAAiB3H,EAAWA,EAAU5zD,EAAED,QAAQ,EAAMwmE,IAItE,OAAO6B,CACT,EAEAxC,aAAa/7D,UAAU+uB,mBAAqB,SAAUwqC,EAASxsD,GAC7DvN,KAAK+6D,aAAaxrC,mBAAmBwqC,EAASxsD,EAChD,EAEAgvD,aAAa/7D,UAAU05D,cAAgB,SAAUC,GAC/Cn6D,KAAK+6D,aAAab,cAAcC,EAClC,EAEAoC,aAAa/7D,UAAU45D,mBAAqB,SAAU4E,GACpDh/D,KAAK+6D,aAAaX,mBAAmB4E,EACvC,EAEAzC,aAAa/7D,UAAUy+D,4BAA8B,SAAUlgD,EAAcm+C,EAAcgC,EAAYxC,EAAMC,GAO3G,OANI59C,EAAag2C,IACfmI,EAAa91B,UAAUroB,EAAag2C,GAAG,GAAIh2C,EAAag2C,GAAG,GAAKh2C,EAAay1C,OAAQ,GAGvF0I,EAAa91B,UAAU,GAAIroB,EAAa+1C,GAAI,GAEpC/1C,EAAa/B,GACnB,KAAK,EACHkgD,EAAa91B,UAAUroB,EAAa41C,eAAiB51C,EAAa01C,SAAW11C,EAAa81C,WAAWqK,IAAc,EAAG,GACtH,MAEF,KAAK,EACHhC,EAAa91B,UAAUroB,EAAa41C,eAAiB51C,EAAa01C,SAAW11C,EAAa81C,WAAWqK,IAAe,EAAG,EAAG,GAO9HhC,EAAa91B,UAAUs1B,EAAMC,EAAM,EACrC,EAEAJ,aAAa/7D,UAAU2+D,WAAa,SAAUC,GAC5C,MAAO,OAASljE,KAAK0b,MAAqB,IAAfwnD,EAAU,IAAY,IAAMljE,KAAK0b,MAAqB,IAAfwnD,EAAU,IAAY,IAAMljE,KAAK0b,MAAqB,IAAfwnD,EAAU,IAAY,GACjI,EAEA7C,aAAa/7D,UAAU6+D,UAAY,IAAItL,YAEvCwI,aAAa/7D,UAAU4kB,QAAU,WAAa,EAE9C,IAAIk6C,eAAiB,CACnBxhD,OAAQ,IAGV,SAASyhD,qBAAqBvxD,EAAMqc,EAAYpM,GAC9Cje,KAAKw/D,UAAY,GACjBx/D,KAAK47D,WAAa,MAClB57D,KAAKgsD,YAAYh+C,EAAMqc,EAAYpM,EACrC,CA8UA,SAASwhD,cAAczxD,EAAMqc,EAAYpM,GACvCje,KAAKgsD,YAAYh+C,EAAMqc,EAAYpM,EACrC,CAeA,SAASyhD,YAAY1xD,EAAMqc,EAAYpM,GACrCje,KAAKk6B,YACLl6B,KAAKwjD,aAAax1C,EAAMqc,EAAYpM,GACpCje,KAAKk6B,YACLl6B,KAAK0pD,cAAc17C,EAAMqc,EAAYpM,GACrCje,KAAKiuD,eACP,CAoBA,SAAS0R,kBAAmB,CAkQ5B,SAASC,eAAgB,CA4GzB,SAASC,eAAe7xD,EAAMqc,EAAYpM,GACxCje,KAAK6c,OAAS7O,EAAK6O,OACnB7c,KAAK8/D,YAAa,EAClB9/D,KAAK4c,gBAAiB,EACtB5c,KAAKmpD,gBAAkB,GACvBnpD,KAAKu4C,SAAWv4C,KAAK6c,OAAS5G,iBAAiBjW,KAAK6c,OAAOnmB,QAAU,GACrEsJ,KAAKgsD,YAAYh+C,EAAMqc,EAAYpM,GACnCje,KAAKinB,GAAKjZ,EAAKiZ,GAAKmZ,gBAAgBC,QAAQrgC,KAAMgO,EAAKiZ,GAAI,EAAGoD,EAAW9B,UAAWvoB,MAAQ,CAC1F+jD,cAAc,EAElB,CAQA,SAASgc,YAAYvW,EAAewW,GAClChgE,KAAKwpD,cAAgBA,EACrBxpD,KAAK6c,OAAS,KACd7c,KAAK2+B,eAAiB,EACtB3+B,KAAKigE,WAAa1kD,SAAS,OAC3B,IAAI2kD,EAAY,GAEhB,GAAIF,GAAUA,EAAOG,MAAO,CAC1B,IAAIC,EAAe7kD,SAAS,SACxB8kD,EAAUzmD,kBACdwmD,EAAanvC,aAAa,KAAMovC,GAChCD,EAAa5iB,YAAcwiB,EAAOG,MAClCngE,KAAKigE,WAAWp6C,YAAYu6C,GAC5BF,GAAaG,CACf,CAEA,GAAIL,GAAUA,EAAO7wD,YAAa,CAChC,IAAImxD,EAAc/kD,SAAS,QACvBglD,EAAS3mD,kBACb0mD,EAAYrvC,aAAa,KAAMsvC,GAC/BD,EAAY9iB,YAAcwiB,EAAO7wD,YACjCnP,KAAKigE,WAAWp6C,YAAYy6C,GAC5BJ,GAAa,IAAMK,CACrB,CAEIL,GACFlgE,KAAKigE,WAAWhvC,aAAa,kBAAmBivC,GAGlD,IAAI51C,EAAO/O,SAAS,QACpBvb,KAAKigE,WAAWp6C,YAAYyE,GAC5B,IAAI+5B,EAAc9oC,SAAS,KAC3Bvb,KAAKigE,WAAWp6C,YAAYw+B,GAC5BrkD,KAAKinD,aAAe5C,EACpBrkD,KAAK6hD,aAAe,CAClB2e,oBAAqBR,GAAUA,EAAOQ,qBAAuB,gBAC7DjS,yBAA0ByR,GAAUA,EAAOzR,0BAA4B,iBACvEkS,kBAAmBT,GAAUA,EAAOS,mBAAqB,UACzD7X,gBAAiBoX,GAAUA,EAAOpX,kBAAmB,EACrD9G,oBAAqBke,IAAuC,IAA7BA,EAAOle,mBACtC4e,YAAaV,GAAUA,EAAOU,cAAe,EAC7CC,YAAaX,GAAUA,EAAOW,cAAe,EAC7CC,UAAWZ,GAAUA,EAAOY,WAAa,GACzC5iD,GAAIgiD,GAAUA,EAAOhiD,IAAM,GAC3B6iD,UAAWb,GAAUA,EAAOa,UAC5BC,WAAY,CACVj+C,MAAOm9C,GAAUA,EAAOc,YAAcd,EAAOc,WAAWj+C,OAAS,OACjEC,OAAQk9C,GAAUA,EAAOc,YAAcd,EAAOc,WAAWh+C,QAAU,OACnEgQ,EAAGktC,GAAUA,EAAOc,YAAcd,EAAOc,WAAWhuC,GAAK,KACzDj5B,EAAGmmE,GAAUA,EAAOc,YAAcd,EAAOc,WAAWjnE,GAAK,MAE3DgpB,MAAOm9C,GAAUA,EAAOn9C,MACxBC,OAAQk9C,GAAUA,EAAOl9C,OACzBi+C,gBAAiBf,QAAoC7mE,IAA1B6mE,EAAOe,gBAAgCf,EAAOe,gBAE3E/gE,KAAKqqB,WAAa,CAChB6U,MAAM,EACN7E,UAAW,EACX/P,KAAMA,EACNu3B,aAAc7hD,KAAK6hD,cAErB7hD,KAAKu4C,SAAW,GAChBv4C,KAAKmpD,gBAAkB,GACvBnpD,KAAKghE,WAAY,EACjBhhE,KAAK0sB,aAAe,KACtB,CAQA,SAASu0C,gBAKP,IAAItqE,EAIJ,IARAqJ,KAAKkhE,MAAQ,GACblhE,KAAKmhE,QAAU,EACfnhE,KAAKohE,IAAM,IAAIp7B,OACfhmC,KAAKqhE,GAAK,EAGVrhE,KAAKshE,QAAU1rD,iBAAiB,UADtB,IAGLjf,EAAI,EAAGA,EAHF,GAGWA,GAAK,EACxBqJ,KAAKkhE,MAAMvqE,GAAKif,iBAAiB,UAAW,IAG9C5V,KAAK00B,QAPK,EAQZ,CAgFA,SAAS6sC,wBACPvhE,KAAKwhE,UAAY,CAAC,EAClBxhE,KAAKyhE,aAAe,GACpBzhE,KAAK0hE,oBAAsB,CAC7B,CAl6BAnuD,gBAAgB,CAAC6vC,YAAae,iBAAkByH,eAAgBC,iBAAkBxI,aAAcyI,qBAAsByQ,cAAegD,sBAErIA,qBAAqB/+D,UAAU2tD,cAAgB,WACzCnuD,KAAKgO,KAAK2zD,cAAgB3hE,KAAKqqB,WAAWkB,YAAYnM,QACxDpf,KAAK4hE,cAAgBrmD,SAAS,QAElC,EAEAgkD,qBAAqB/+D,UAAUqhE,kBAAoB,SAAUC,GAM3D,IALA,IAAInrE,EAAI,EACJwH,EAAM2jE,EAAUprE,OAChBqrE,EAAe,GACfC,EAAqB,GAElBrrE,EAAIwH,GACL2jE,EAAUnrE,KAAO4C,OAAO0R,aAAa,KAAO62D,EAAUnrE,KAAO4C,OAAO0R,aAAa,IACnF82D,EAAazpE,KAAK0pE,GAClBA,EAAqB,IAErBA,GAAsBF,EAAUnrE,GAGlCA,GAAK,EAIP,OADAorE,EAAazpE,KAAK0pE,GACXD,CACT,EAEAxC,qBAAqB/+D,UAAUyhE,eAAiB,SAAUj0D,EAAMi5B,GAK9D,GAAIj5B,EAAK8P,QAAU9P,EAAK8P,OAAOpnB,OAAQ,CACrC,IAAIyrC,EAAQn0B,EAAK8P,OAAO,GAExB,GAAIqkB,EAAM9rC,GAAI,CACZ,IAAI6rE,EAAY//B,EAAM9rC,GAAG8rC,EAAM9rC,GAAGK,OAAS,GAEvCwrE,EAAUrrE,IACZqrE,EAAUrrE,EAAEqmB,EAAE,GAAK+pB,EACnBi7B,EAAUrrE,EAAEqmB,EAAE,GAAK+pB,EAEvB,CACF,CAEA,OAAOj5B,CACT,EAEAuxD,qBAAqB/+D,UAAUq+D,aAAe,WAE5C,IAAIloE,EACAwH,EAFJ6B,KAAK4/B,mBAAmB5/B,MAGxB,IAAI+e,EAAe/e,KAAK+6D,aAAaxG,YACrCv0D,KAAKq8D,gBAAkBpmD,iBAAiB8I,EAAeA,EAAa/iB,EAAEtF,OAAS,GAE3EqoB,EAAak1C,GACfj0D,KAAKinD,aAAah2B,aAAa,OAAQjxB,KAAKm/D,WAAWpgD,EAAak1C,KAEpEj0D,KAAKinD,aAAah2B,aAAa,OAAQ,iBAGrClS,EAAa+gC,KACf9/C,KAAKinD,aAAah2B,aAAa,SAAUjxB,KAAKm/D,WAAWpgD,EAAa+gC,KACtE9/C,KAAKinD,aAAah2B,aAAa,eAAgBlS,EAAai1C,KAG9Dh0D,KAAKinD,aAAah2B,aAAa,YAAalS,EAAaq2C,WACzD,IAAIpe,EAAWh3C,KAAKqqB,WAAWkB,YAAY40B,cAAcphC,EAAa5nB,GAEtE,GAAI6/C,EAASyG,OACXz9C,KAAKinD,aAAah2B,aAAa,QAAS+lB,EAASyG,YAC5C,CACLz9C,KAAKinD,aAAah2B,aAAa,cAAe+lB,EAASuG,SACvD,IAAIpG,EAAUp4B,EAAao4B,QACvBD,EAASn4B,EAAam4B,OAC1Bl3C,KAAKinD,aAAah2B,aAAa,aAAcimB,GAC7Cl3C,KAAKinD,aAAah2B,aAAa,cAAekmB,EAChD,CAEAn3C,KAAKinD,aAAah2B,aAAa,aAAclS,EAAa3iB,GAC1D,IAGI+lE,EAHAlK,EAAUl5C,EAAa/iB,GAAK,GAC5BomE,IAAepiE,KAAKqqB,WAAWkB,YAAYnM,MAC/CjhB,EAAM85D,EAAQvhE,OAEd,IAAIwmE,EAAel9D,KAAKmqD,QAEpBwX,EAAc3hE,KAAKgO,KAAK2zD,YACxBjF,EAAO,EACPC,EAAO,EACPa,GAAY,EACZhF,EAAmC,KAAlBz5C,EAAau4B,GAAav4B,EAAaq2C,UAE5D,IAAIuM,GAAgBS,GAAerjD,EAAamoB,GA4CzC,CACL,IACI7nB,EADAgjD,EAAoBriE,KAAKw/D,UAAU9oE,OAGvC,IAAKC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EAAG,CAS3B,GARKqJ,KAAKw/D,UAAU7oE,KAClBqJ,KAAKw/D,UAAU7oE,GAAK,CAClB2rE,KAAM,KACNC,UAAW,KACXC,MAAO,QAINJ,IAAeT,GAAqB,IAANhrE,EAAS,CAG1C,GAFAwrE,EAAQE,EAAoB1rE,EAAIqJ,KAAKw/D,UAAU7oE,GAAG2rE,KAAO/mD,SAAS6mD,EAAa,IAAM,QAEjFC,GAAqB1rE,EAAG,CAM1B,GALAwrE,EAAMlxC,aAAa,iBAAkB,QACrCkxC,EAAMlxC,aAAa,kBAAmB,SACtCkxC,EAAMlxC,aAAa,oBAAqB,KACxCjxB,KAAKw/D,UAAU7oE,GAAG2rE,KAAOH,EAErBC,EAAY,CACd,IAAIG,EAAYhnD,SAAS,KACzB4mD,EAAMt8C,YAAY08C,GAClBviE,KAAKw/D,UAAU7oE,GAAG4rE,UAAYA,CAChC,CAEAviE,KAAKw/D,UAAU7oE,GAAG2rE,KAAOH,EACzBniE,KAAKinD,aAAaphC,YAAYs8C,EAChC,CAEAA,EAAMpqD,MAAMI,QAAU,SACxB,CAkBA,GAhBA+kD,EAAa13D,QAETm8D,IACE1J,EAAQthE,GAAGG,IACb4lE,GAAQlE,EACRmE,GAAQ59C,EAAao2C,QACrBwH,GAAQa,EAAY,EAAI,EACxBA,GAAY,GAGdx9D,KAAKi/D,4BAA4BlgD,EAAcm+C,EAAcjF,EAAQthE,GAAG8vB,KAAMi2C,EAAMC,GACpFD,GAAQzE,EAAQthE,GAAGqF,GAAK,EAExB0gE,GAAQlE,GAGN4J,EAAY,CAEd,IAAIK,EAEJ,GAAmB,KAHnBpjD,EAAWrf,KAAKqqB,WAAWkB,YAAYw0B,YAAYhhC,EAAas2C,UAAU1+D,GAAIqgD,EAASE,OAAQl3C,KAAKqqB,WAAWkB,YAAY40B,cAAcphC,EAAa5nB,GAAGomD,UAG5InhD,EACXqmE,EAAe,IAAI5C,eAAexgD,EAASrR,KAAMhO,KAAKqqB,WAAYrqB,UAC7D,CACL,IAAIgO,EAAOsxD,eAEPjgD,EAASrR,MAAQqR,EAASrR,KAAK8P,SACjC9P,EAAOhO,KAAKiiE,eAAe5iD,EAASrR,KAAM+Q,EAAaq2C,YAGzDqN,EAAe,IAAI7O,gBAAgB5lD,EAAMhO,KAAKqqB,WAAYrqB,KAC5D,CAEA,GAAIA,KAAKw/D,UAAU7oE,GAAG6rE,MAAO,CAC3B,IAAIA,EAAQxiE,KAAKw/D,UAAU7oE,GAAG6rE,MAC9BxiE,KAAKw/D,UAAU7oE,GAAG4rE,UAAU7hB,YAAY8hB,EAAMvb,cAC9Cub,EAAMp9C,SACR,CAEAplB,KAAKw/D,UAAU7oE,GAAG6rE,MAAQC,EAC1BA,EAAaC,QAAS,EACtBD,EAAa96C,aAAa,GAC1B86C,EAAav1C,cACbltB,KAAKw/D,UAAU7oE,GAAG4rE,UAAU18C,YAAY48C,EAAaxb,cAGlC,IAAf5nC,EAASjjB,GACX4D,KAAKw/D,UAAU7oE,GAAG4rE,UAAUtxC,aAAa,YAAa,SAAWlS,EAAaq2C,UAAY,IAAM,IAAMr2C,EAAaq2C,UAAY,IAAM,IAEzI,MACMuM,GACFQ,EAAMlxC,aAAa,YAAa,aAAeisC,EAAax0D,MAAM,IAAM,IAAMw0D,EAAax0D,MAAM,IAAM,KAGzGy5D,EAAM3kB,YAAcya,EAAQthE,GAAGuH,IAC/BikE,EAAMz8C,eAAe,uCAAwC,YAAa,WAG9E,CAEIi8C,GAAeQ,GACjBA,EAAMlxC,aAAa,IAlJR,GAoJf,KA7IoD,CAClD,IAAI0xC,EAAW3iE,KAAK4hE,cAChBgB,EAAU,QAEd,OAAQ7jD,EAAa/B,GACnB,KAAK,EACH4lD,EAAU,MACV,MAEF,KAAK,EACHA,EAAU,SACV,MAEF,QACEA,EAAU,QAIdD,EAAS1xC,aAAa,cAAe2xC,GACrCD,EAAS1xC,aAAa,iBAAkBunC,GACxC,IAAIhb,EAAcx9C,KAAK6hE,kBAAkB9iD,EAAas2C,WAItD,IAHAl3D,EAAMq/C,EAAY9mD,OAClBimE,EAAO59C,EAAag2C,GAAKh2C,EAAag2C,GAAG,GAAKh2C,EAAay1C,OAAS,EAE/D79D,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,GACxBwrE,EAAQniE,KAAKw/D,UAAU7oE,GAAG2rE,MAAQ/mD,SAAS,UACrCiiC,YAAcA,EAAY7mD,GAChCwrE,EAAMlxC,aAAa,IAAK,GACxBkxC,EAAMlxC,aAAa,IAAK0rC,GACxBwF,EAAMpqD,MAAMI,QAAU,UACtBwqD,EAAS98C,YAAYs8C,GAEhBniE,KAAKw/D,UAAU7oE,KAClBqJ,KAAKw/D,UAAU7oE,GAAK,CAClB2rE,KAAM,KACNE,MAAO,OAIXxiE,KAAKw/D,UAAU7oE,GAAG2rE,KAAOH,EACzBxF,GAAQ59C,EAAau2C,gBAGvBt1D,KAAKinD,aAAaphC,YAAY88C,EAChC,CAmGA,KAAOhsE,EAAIqJ,KAAKw/D,UAAU9oE,QACxBsJ,KAAKw/D,UAAU7oE,GAAG2rE,KAAKvqD,MAAMI,QAAU,OACvCxhB,GAAK,EAGPqJ,KAAKwsD,cAAe,CACtB,EAEA+S,qBAAqB/+D,UAAUwhD,iBAAmB,WAIhD,GAHAhiD,KAAK2nB,aAAa3nB,KAAKie,KAAK0gB,cAAgB3+B,KAAKgO,KAAKwR,IACtDxf,KAAKouD,qBAEDpuD,KAAKwsD,aAAc,CACrBxsD,KAAKwsD,cAAe,EACpB,IAAIqW,EAAU7iE,KAAKinD,aAAa7iC,UAChCpkB,KAAK8iE,KAAO,CACV7qD,IAAK4qD,EAAQhpE,EACbqe,KAAM2qD,EAAQ/vC,EACdjQ,MAAOggD,EAAQhgD,MACfC,OAAQ+/C,EAAQ//C,OAEpB,CAEA,OAAO9iB,KAAK8iE,IACd,EAEAvD,qBAAqB/+D,UAAUu/B,SAAW,WACxC,IAAIppC,EAEA8rE,EADAtkE,EAAM6B,KAAKw/D,UAAU9oE,OAIzB,IAFAsJ,KAAK2+B,cAAgB3+B,KAAKie,KAAK0gB,cAE1BhoC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,GACxB8rE,EAAeziE,KAAKw/D,UAAU7oE,GAAG6rE,SAG/BC,EAAa96C,aAAa3nB,KAAKie,KAAK0gB,cAAgB3+B,KAAKgO,KAAKwR,IAE1DijD,EAAavjC,OACfl/B,KAAKk/B,MAAO,GAIpB,EAEAqgC,qBAAqB/+D,UAAU4tD,mBAAqB,WAClD,KAAKpuD,KAAKgO,KAAK2zD,aAAe3hE,KAAKk/B,QACjCl/B,KAAK4+D,aAAanC,YAAYz8D,KAAK+6D,aAAaxG,YAAav0D,KAAKs8D,oBAE9Dt8D,KAAKs8D,oBAAsBt8D,KAAK4+D,aAAatC,oBAAoB,CAEnE,IAAI3lE,EACAwH,EAFJ6B,KAAKwsD,cAAe,EAGpB,IAGIuW,EACAC,EACAP,EALApG,EAAkBr8D,KAAK4+D,aAAavC,gBACpCpE,EAAUj4D,KAAK+6D,aAAaxG,YAAYv4D,EAM5C,IALAmC,EAAM85D,EAAQvhE,OAKTC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACnBshE,EAAQthE,GAAGG,IACdisE,EAAiB1G,EAAgB1lE,GACjCqsE,EAAWhjE,KAAKw/D,UAAU7oE,GAAG2rE,MAC7BG,EAAeziE,KAAKw/D,UAAU7oE,GAAG6rE,QAG/BC,EAAav1C,cAGX61C,EAAe7jC,KAAKpkC,GACtBkoE,EAAS/xC,aAAa,YAAa8xC,EAAejoE,GAGhDioE,EAAe7jC,KAAK/oC,GACtB6sE,EAAS/xC,aAAa,UAAW8xC,EAAe5sE,GAG9C4sE,EAAe7jC,KAAK80B,IACtBgP,EAAS/xC,aAAa,eAAgB8xC,EAAe/O,IAGnD+O,EAAe7jC,KAAK4gB,IACtBkjB,EAAS/xC,aAAa,SAAU8xC,EAAejjB,IAG7CijB,EAAe7jC,KAAK+0B,IACtB+O,EAAS/xC,aAAa,OAAQ8xC,EAAe9O,IAIrD,CAEJ,EAMA1gD,gBAAgB,CAACw4C,eAAgB0T,eAEjCA,cAAcj/D,UAAU2tD,cAAgB,WACtC,IAAI3J,EAAOjpC,SAAS,QAIpBipC,EAAKvzB,aAAa,QAASjxB,KAAKgO,KAAKgmD,IACrCxP,EAAKvzB,aAAa,SAAUjxB,KAAKgO,KAAKquB,IACtCmoB,EAAKvzB,aAAa,OAAQjxB,KAAKgO,KAAK8xC,IACpC9/C,KAAKinD,aAAaphC,YAAY2+B,EAChC,EAUAkb,YAAYl/D,UAAUmnB,aAAe,SAAU65B,GAC7CxhD,KAAKonD,kBAAkB5F,GAAK,EAC9B,EAEAke,YAAYl/D,UAAU0sB,YAAc,WAAa,EAEjDwyC,YAAYl/D,UAAU+mD,eAAiB,WACrC,OAAO,IACT,EAEAmY,YAAYl/D,UAAU4kB,QAAU,WAAa,EAE7Cs6C,YAAYl/D,UAAUwhD,iBAAmB,WAAa,EAEtD0d,YAAYl/D,UAAU4uB,KAAO,WAAa,EAE1C7b,gBAAgB,CAAC6vC,YAAae,iBAAkB0H,iBAAkBxI,cAAeqc,aAIjFnsD,gBAAgB,CAAC2wC,cAAeyb,iBAEhCA,gBAAgBn/D,UAAU6nD,WAAa,SAAUr6C,GAC/C,OAAO,IAAI0xD,YAAY1xD,EAAMhO,KAAKqqB,WAAYrqB,KAChD,EAEA2/D,gBAAgBn/D,UAAU8nD,YAAc,SAAUt6C,GAChD,OAAO,IAAI4lD,gBAAgB5lD,EAAMhO,KAAKqqB,WAAYrqB,KACpD,EAEA2/D,gBAAgBn/D,UAAU+nD,WAAa,SAAUv6C,GAC/C,OAAO,IAAIuxD,qBAAqBvxD,EAAMhO,KAAKqqB,WAAYrqB,KACzD,EAEA2/D,gBAAgBn/D,UAAU0nD,YAAc,SAAUl6C,GAChD,OAAO,IAAI+9C,cAAc/9C,EAAMhO,KAAKqqB,WAAYrqB,KAClD,EAEA2/D,gBAAgBn/D,UAAU4nD,YAAc,SAAUp6C,GAChD,OAAO,IAAIyxD,cAAczxD,EAAMhO,KAAKqqB,WAAYrqB,KAClD,EAEA2/D,gBAAgBn/D,UAAUkpB,gBAAkB,SAAUyC,GACpDnsB,KAAKigE,WAAWhvC,aAAa,QAAS,8BACtCjxB,KAAKigE,WAAWhvC,aAAa,cAAe,gCAExCjxB,KAAK6hD,aAAa8e,YACpB3gE,KAAKigE,WAAWhvC,aAAa,UAAWjxB,KAAK6hD,aAAa8e,aAE1D3gE,KAAKigE,WAAWhvC,aAAa,UAAW,OAAS9E,EAAS2vB,EAAI,IAAM3vB,EAAS1wB,GAG1EuE,KAAK6hD,aAAa6e,cACrB1gE,KAAKigE,WAAWhvC,aAAa,QAAS9E,EAAS2vB,GAC/C97C,KAAKigE,WAAWhvC,aAAa,SAAU9E,EAAS1wB,GAChDuE,KAAKigE,WAAWloD,MAAM8K,MAAQ,OAC9B7iB,KAAKigE,WAAWloD,MAAM+K,OAAS,OAC/B9iB,KAAKigE,WAAWloD,MAAMwvB,UAAY,qBAClCvnC,KAAKigE,WAAWloD,MAAM0oD,kBAAoBzgE,KAAK6hD,aAAa4e,mBAG1DzgE,KAAK6hD,aAAah/B,OACpB7iB,KAAKigE,WAAWhvC,aAAa,QAASjxB,KAAK6hD,aAAah/B,OAGtD7iB,KAAK6hD,aAAa/+B,QACpB9iB,KAAKigE,WAAWhvC,aAAa,SAAUjxB,KAAK6hD,aAAa/+B,QAGvD9iB,KAAK6hD,aAAa+e,WACpB5gE,KAAKigE,WAAWhvC,aAAa,QAASjxB,KAAK6hD,aAAa+e,WAGtD5gE,KAAK6hD,aAAa7jC,IACpBhe,KAAKigE,WAAWhvC,aAAa,KAAMjxB,KAAK6hD,aAAa7jC,SAGnB7kB,IAAhC6G,KAAK6hD,aAAagf,WACpB7gE,KAAKigE,WAAWhvC,aAAa,YAAajxB,KAAK6hD,aAAagf,WAG9D7gE,KAAKigE,WAAWhvC,aAAa,sBAAuBjxB,KAAK6hD,aAAa2e,qBAGtExgE,KAAKwpD,cAAcx/B,QAAQnE,YAAY7lB,KAAKigE,YAE5C,IAAI31C,EAAOtqB,KAAKqqB,WAAWC,KAC3BtqB,KAAKspD,gBAAgBn9B,EAAU7B,GAC/BtqB,KAAKqqB,WAAWu+B,gBAAkB5oD,KAAK6hD,aAAa+G,gBACpD5oD,KAAKgO,KAAOme,EACZ,IAAIk4B,EAAc9oC,SAAS,YACvBipC,EAAOjpC,SAAS,QACpBipC,EAAKvzB,aAAa,QAAS9E,EAAS2vB,GACpC0I,EAAKvzB,aAAa,SAAU9E,EAAS1wB,GACrC+oD,EAAKvzB,aAAa,IAAK,GACvBuzB,EAAKvzB,aAAa,IAAK,GACvB,IAAI2gC,EAASh4C,kBACbyqC,EAAYpzB,aAAa,KAAM2gC,GAC/BvN,EAAYx+B,YAAY2+B,GACxBxkD,KAAKinD,aAAah2B,aAAa,YAAa,OAAS7d,kBAAoB,IAAMw+C,EAAS,KACxFtnC,EAAKzE,YAAYw+B,GACjBrkD,KAAK6c,OAASsP,EAAStP,OACvB7c,KAAKu4C,SAAWtiC,iBAAiBkW,EAAStP,OAAOnmB,OACnD,EAEAipE,gBAAgBn/D,UAAU4kB,QAAU,WAOlC,IAAIzuB,EANAqJ,KAAKwpD,cAAcx/B,UACrBhqB,KAAKwpD,cAAcx/B,QAAQoH,UAAY,IAGzCpxB,KAAKinD,aAAe,KACpBjnD,KAAKqqB,WAAWC,KAAO,KAEvB,IAAInsB,EAAM6B,KAAK6c,OAAS7c,KAAK6c,OAAOnmB,OAAS,EAE7C,IAAKC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACpBqJ,KAAKu4C,SAAS5hD,IAAMqJ,KAAKu4C,SAAS5hD,GAAGyuB,SACvCplB,KAAKu4C,SAAS5hD,GAAGyuB,UAIrBplB,KAAKu4C,SAAS7hD,OAAS,EACvBsJ,KAAKghE,WAAY,EACjBhhE,KAAKwpD,cAAgB,IACvB,EAEAmW,gBAAgBn/D,UAAUwsB,oBAAsB,WAAa,EAE7D2yC,gBAAgBn/D,UAAUyiE,eAAiB,SAAU1nC,GACnD,IAAI5kC,EAAI,EACJwH,EAAM6B,KAAK6c,OAAOnmB,OAEtB,IAAKC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACxB,GAAIqJ,KAAK6c,OAAOlmB,GAAG4kC,MAAQA,EACzB,OAAO5kC,EAIX,OAAQ,CACV,EAEAgpE,gBAAgBn/D,UAAUsnD,UAAY,SAAU3mB,GAC9C,IAAIoX,EAAWv4C,KAAKu4C,SAEpB,IAAIA,EAASpX,IAAgC,KAAxBnhC,KAAK6c,OAAOskB,GAAKzjB,GAAtC,CAIA66B,EAASpX,IAAO,EAChB,IAAIrpB,EAAU9X,KAAKgoD,WAAWhoD,KAAK6c,OAAOskB,IAa1C,GAZAoX,EAASpX,GAAOrpB,EAEZkD,yBAC0B,IAAxBhb,KAAK6c,OAAOskB,GAAKzjB,IACnB1d,KAAKqqB,WAAWd,iBAAiBhC,oBAAoBzP,GAGvDA,EAAQ4T,mBAGV1rB,KAAKkjE,mBAAmBprD,EAASqpB,GAE7BnhC,KAAK6c,OAAOskB,GAAK7kC,GAAI,CACvB,IAAI6mE,EAAe,OAAQnjE,KAAK6c,OAAOskB,GAAOnhC,KAAKijE,eAAejjE,KAAK6c,OAAOskB,GAAKiiC,IAAMjiC,EAAM,EAE/F,IAAsB,IAAlBgiC,EACF,OAGF,GAAKnjE,KAAKu4C,SAAS4qB,KAAiD,IAAhCnjE,KAAKu4C,SAAS4qB,GAG3C,CACL,IACIE,EADe9qB,EAAS4qB,GACC7V,SAASttD,KAAK6c,OAAOskB,GAAK7kC,IACvDwb,EAAQk2C,SAASqV,EACnB,MANErjE,KAAK8nD,UAAUqb,GACfnjE,KAAKkpD,kBAAkBpxC,EAM3B,CA/BA,CAgCF,EAEA6nD,gBAAgBn/D,UAAUunD,qBAAuB,WAC/C,KAAO/nD,KAAKmpD,gBAAgBzyD,QAAQ,CAClC,IAAIohB,EAAU9X,KAAKmpD,gBAAgB5pD,MAGnC,GAFAuY,EAAQo2C,iBAEJp2C,EAAQ9J,KAAK1R,GAIf,IAHA,IAAI3F,EAAI,EACJwH,EAAM6B,KAAKu4C,SAAS7hD,OAEjBC,EAAIwH,GAAK,CACd,GAAI6B,KAAKu4C,SAAS5hD,KAAOmhB,EAAS,CAChC,IAAIqrD,EAAe,OAAQrrD,EAAQ9J,KAAOhO,KAAKijE,eAAenrD,EAAQ9J,KAAKo1D,IAAMzsE,EAAI,EAEjF0sE,EADerjE,KAAKu4C,SAAS4qB,GACJ7V,SAASttD,KAAK6c,OAAOlmB,GAAG2F,IACrDwb,EAAQk2C,SAASqV,GACjB,KACF,CAEA1sE,GAAK,CACP,CAEJ,CACF,EAEAgpE,gBAAgBn/D,UAAU0sB,YAAc,SAAUs0B,GAChD,GAAIxhD,KAAK2+B,gBAAkB6iB,IAAOxhD,KAAKghE,UAAvC,CAgBA,IAAIrqE,EAZQ,OAAR6qD,EACFA,EAAMxhD,KAAK2+B,cAEX3+B,KAAK2+B,cAAgB6iB,EAKvBxhD,KAAKqqB,WAAWgQ,SAAWmnB,EAC3BxhD,KAAKqqB,WAAW+U,SAAW,EAC3Bp/B,KAAKqqB,WAAWd,iBAAiB1B,aAAe25B,EAChDxhD,KAAKqqB,WAAW6U,MAAO,EAEvB,IAAI/gC,EAAM6B,KAAK6c,OAAOnmB,OAMtB,IAJKsJ,KAAK4c,gBACR5c,KAAK6nD,YAAYrG,GAGd7qD,EAAIwH,EAAM,EAAGxH,GAAK,EAAGA,GAAK,GACzBqJ,KAAK4c,gBAAkB5c,KAAKu4C,SAAS5hD,KACvCqJ,KAAKu4C,SAAS5hD,GAAGgxB,aAAa65B,EAAMxhD,KAAK6c,OAAOlmB,GAAG6oB,IAIvD,GAAIxf,KAAKqqB,WAAW6U,KAClB,IAAKvoC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,GACpBqJ,KAAK4c,gBAAkB5c,KAAKu4C,SAAS5hD,KACvCqJ,KAAKu4C,SAAS5hD,GAAGu2B,aA9BvB,CAkCF,EAEAyyC,gBAAgBn/D,UAAU0iE,mBAAqB,SAAUprD,EAASqpB,GAChE,IAAItM,EAAa/c,EAAQyvC,iBAEzB,GAAK1yB,EAAL,CAOA,IAHA,IACIyuC,EADA3sE,EAAI,EAGDA,EAAIwqC,GACLnhC,KAAKu4C,SAAS5hD,KAA2B,IAArBqJ,KAAKu4C,SAAS5hD,IAAeqJ,KAAKu4C,SAAS5hD,GAAG4wD,mBACpE+b,EAActjE,KAAKu4C,SAAS5hD,GAAG4wD,kBAGjC5wD,GAAK,EAGH2sE,EACFtjE,KAAKinD,aAAasc,aAAa1uC,EAAYyuC,GAE3CtjE,KAAKinD,aAAaphC,YAAYgP,EAhBhC,CAkBF,EAEA8qC,gBAAgBn/D,UAAU4uB,KAAO,WAC/BpvB,KAAKinD,aAAalvC,MAAMI,QAAU,MACpC,EAEAwnD,gBAAgBn/D,UAAU6uB,KAAO,WAC/BrvB,KAAKinD,aAAalvC,MAAMI,QAAU,OACpC,EAIA5E,gBAAgB,CAAC6vC,YAAae,iBAAkB0H,iBAAkBxI,aAAcyI,sBAAuB8T,cAEvGA,aAAap/D,UAAUwrD,YAAc,SAAUh+C,EAAMqc,EAAYpM,GAC/Dje,KAAKk6B,YACLl6B,KAAKwjD,aAAax1C,EAAMqc,EAAYpM,GACpCje,KAAK0pD,cAAc17C,EAAMqc,EAAYpM,GACrCje,KAAK+gD,iBACL/gD,KAAKiuD,gBACLjuD,KAAKosD,sBACLpsD,KAAKqsD,0BACLrsD,KAAKotD,8BAEDptD,KAAKgO,KAAK4Z,IAAOyC,EAAWu+B,iBAC9B5oD,KAAK0oD,gBAGP1oD,KAAKovB,MACP,EAcAwwC,aAAap/D,UAAUmnB,aAAe,SAAU65B,GAK9C,GAJAxhD,KAAKk/B,MAAO,EACZl/B,KAAKuhD,uBAAuBC,GAC5BxhD,KAAKonD,kBAAkB5F,EAAKxhD,KAAKghD,WAE5BhhD,KAAKghD,WAAchhD,KAAKgO,KAAK4Z,GAAlC,CAIA,GAAK5nB,KAAKinB,GAAG88B,aASX/jD,KAAK2+B,cAAgB6iB,EAAMxhD,KAAKgO,KAAKyR,OATZ,CACzB,IAAIioC,EAAe1nD,KAAKinB,GAAGlN,EAEvB2tC,IAAiB1nD,KAAKgO,KAAKuR,KAC7BmoC,EAAe1nD,KAAKgO,KAAKuR,GAAK,GAGhCvf,KAAK2+B,cAAgB+oB,CACvB,CAIA,IAAI/wD,EACAwH,EAAM6B,KAAKu4C,SAAS7hD,OAOxB,IALKsJ,KAAK4c,gBACR5c,KAAK6nD,YAAY7nD,KAAK2+B,eAInBhoC,EAAIwH,EAAM,EAAGxH,GAAK,EAAGA,GAAK,GACzBqJ,KAAK4c,gBAAkB5c,KAAKu4C,SAAS5hD,MACvCqJ,KAAKu4C,SAAS5hD,GAAGgxB,aAAa3nB,KAAK2+B,cAAgB3+B,KAAK6c,OAAOlmB,GAAG6oB,IAE9Dxf,KAAKu4C,SAAS5hD,GAAGuoC,OACnBl/B,KAAKk/B,MAAO,GA3BlB,CA+BF,EAEA0gC,aAAap/D,UAAU4tD,mBAAqB,WAC1C,IAAIz3D,EACAwH,EAAM6B,KAAK6c,OAAOnmB,OAEtB,IAAKC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,GACpBqJ,KAAK4c,gBAAkB5c,KAAKu4C,SAAS5hD,KACvCqJ,KAAKu4C,SAAS5hD,GAAGu2B,aAGvB,EAEA0yC,aAAap/D,UAAUgjE,YAAc,SAAUjqB,GAC7Cv5C,KAAKu4C,SAAWgB,CAClB,EAEAqmB,aAAap/D,UAAUijE,YAAc,WACnC,OAAOzjE,KAAKu4C,QACd,EAEAqnB,aAAap/D,UAAUkjE,gBAAkB,WACvC,IAAI/sE,EACAwH,EAAM6B,KAAK6c,OAAOnmB,OAEtB,IAAKC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACpBqJ,KAAKu4C,SAAS5hD,IAChBqJ,KAAKu4C,SAAS5hD,GAAGyuB,SAGvB,EAEAw6C,aAAap/D,UAAU4kB,QAAU,WAC/BplB,KAAK0jE,kBACL1jE,KAAKmtD,oBACP,EAcA55C,gBAAgB,CAACosD,gBAAiBC,aAAchU,gBAAiBiU,gBAEjEA,eAAer/D,UAAU2nD,WAAa,SAAUn6C,GAC9C,OAAO,IAAI6xD,eAAe7xD,EAAMhO,KAAKqqB,WAAYrqB,KACnD,EAqEAuT,gBAAgB,CAACosD,iBAAkBI,aAEnCA,YAAYv/D,UAAU2nD,WAAa,SAAUn6C,GAC3C,OAAO,IAAI6xD,eAAe7xD,EAAMhO,KAAKqqB,WAAYrqB,KACnD,EAkBAihE,cAAczgE,UAAUmjE,UAAY,WAClC,IAAIC,EAA2B,EAAf5jE,KAAK00B,QACjBmvC,EAAiB7jE,KAAKshE,QAC1BthE,KAAKshE,QAAU1rD,iBAAiB,UAAWguD,GAC3C5jE,KAAKshE,QAAQwC,IAAID,GACjB,IAAIltE,EAAI,EAER,IAAKA,EAAIqJ,KAAK00B,QAAS/9B,EAAIitE,EAAWjtE,GAAK,EACzCqJ,KAAKkhE,MAAMvqE,GAAKif,iBAAiB,UAAW,IAG9C5V,KAAK00B,QAAUkvC,CACjB,EAEA3C,cAAczgE,UAAUgF,MAAQ,WAC9BxF,KAAKmhE,QAAU,EACfnhE,KAAKohE,IAAI57D,QACTxF,KAAKqhE,GAAK,CACZ,EAEAJ,cAAczgE,UAAUujE,aAAe,WACrC,IACIptE,EADAqtE,EAAShkE,KAAKkhE,MAAMlhE,KAAKmhE,SAEzBtpE,EAAMmI,KAAKohE,IAAI14D,MAEnB,IAAK/R,EAAI,EAAGA,EAAI,GAAIA,GAAK,EACvBkB,EAAIlB,GAAKqtE,EAAOrtE,GAGlB,OAAOqtE,CACT,EAEA/C,cAAczgE,UAAUyjE,WAAa,WACnC,IAAID,EAAShkE,KAAKshE,QAAQthE,KAAKmhE,SAE/B,OADAnhE,KAAKqhE,GAAK2C,EACHA,CACT,EAEA/C,cAAczgE,UAAUjB,IAAM,WAI5B,OAHAS,KAAKmhE,SAAW,EAGT,CACL55B,UAHcvnC,KAAK+jE,eAInBG,QAHYlkE,KAAKikE,aAKrB,EAEAhD,cAAczgE,UAAUlI,KAAO,WAC7B,IAMI3B,EANA+R,EAAQ1I,KAAKohE,IAAI14D,MAEjB1I,KAAK00B,SAAW10B,KAAKmhE,SACvBnhE,KAAK2jE,YAIP,IAAI9rE,EAAMmI,KAAKkhE,MAAMlhE,KAAKmhE,SAE1B,IAAKxqE,EAAI,EAAGA,EAAI,GAAIA,GAAK,EACvBkB,EAAIlB,GAAK+R,EAAM/R,GAGjBqJ,KAAKshE,QAAQthE,KAAKmhE,SAAWnhE,KAAKqhE,GAClCrhE,KAAKmhE,SAAW,CAClB,EAEAF,cAAczgE,UAAU2jE,aAAe,WACrC,OAAOnkE,KAAKohE,GACd,EAEAH,cAAczgE,UAAU4jE,WAAa,WACnC,OAAOpkE,KAAKqhE,EACd,EAEAJ,cAAczgE,UAAU6jE,WAAa,SAAUrtE,GAC7CgJ,KAAKqhE,GAAKrqE,CACZ,EAQAuqE,sBAAsB/gE,UAAY,CAChC8jE,qBAAsB,SAA8Bra,GAClD,IAAItzD,EACAwH,EAAM8rD,EAAWvzD,OACjBkK,EAAM,IAEV,IAAKjK,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACxBiK,GAAOqpD,EAAWtzD,GAAG4wC,UAAU3mC,IAAM,IAGvC,IAAI2jE,EAAWvkE,KAAKwhE,UAAU5gE,GAY9B,OAVK2jE,IACHA,EAAW,CACTta,WAAY,GAAGn5B,OAAOm5B,GACtBtI,eAAgB,IAAI3b,OACpB9G,MAAM,GAERl/B,KAAKwhE,UAAU5gE,GAAO2jE,EACtBvkE,KAAKyhE,aAAanpE,KAAKisE,IAGlBA,CACT,EACAC,gBAAiB,SAAyBD,EAAUla,GAKlD,IAJA,IAcM3hD,EAdF/R,EAAI,EACJwH,EAAMomE,EAASta,WAAWvzD,OAC1BwoC,EAAOmrB,EAEJ1zD,EAAIwH,IAAQksD,GAAc,CAC/B,GAAIka,EAASta,WAAWtzD,GAAG4wC,UAAUwS,OAAO7a,KAAM,CAChDA,GAAO,EACP,KACF,CAEAvoC,GAAK,CACP,CAEA,GAAIuoC,EAIF,IAFAqlC,EAAS5iB,eAAen8C,QAEnB7O,EAAIwH,EAAM,EAAGxH,GAAK,EAAGA,GAAK,EAC7B+R,EAAQ67D,EAASta,WAAWtzD,GAAG4wC,UAAUwS,OAAOhgC,EAAErR,MAClD67D,EAAS5iB,eAAepa,UAAU7+B,EAAM,GAAIA,EAAM,GAAIA,EAAM,GAAIA,EAAM,GAAIA,EAAM,GAAIA,EAAM,GAAIA,EAAM,GAAIA,EAAM,GAAIA,EAAM,GAAIA,EAAM,GAAIA,EAAM,IAAKA,EAAM,IAAKA,EAAM,IAAKA,EAAM,IAAKA,EAAM,IAAKA,EAAM,KAIvM67D,EAASrlC,KAAOA,CAClB,EACAulC,iBAAkB,SAA0Bpa,GAC1C,IAAI1zD,EACAwH,EAAM6B,KAAKyhE,aAAa/qE,OAE5B,IAAKC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACxBqJ,KAAKwkE,gBAAgBxkE,KAAKyhE,aAAa9qE,GAAI0zD,EAE/C,EACAqa,UAAW,WAET,OADA1kE,KAAK0hE,qBAAuB,EACrB,IAAM1hE,KAAK0hE,mBACpB,GAGF,IAAIiD,WAAa,WACf,IAAI3mD,EAAK,+BACL4mD,EAAa,KACbC,EAAgB,KAChBC,EAAM,KA4CV,SAASC,IACFH,IACHE,EAxBJ,WACE,IAAIE,EAAOzpD,SAAS,OAEhBsvC,EAAMtvC,SAAS,UACfs8B,EAASt8B,SAAS,iBAetB,OAdAsvC,EAAI55B,aAAa,KAAMjT,GACvB65B,EAAO5mB,aAAa,OAAQ,UAC5B4mB,EAAO5mB,aAAa,8BAA+B,QACnD4mB,EAAO5mB,aAAa,SAAU,sFAC9B45B,EAAIhlC,YAAYgyB,GAEhBmtB,EAAKn/C,YAAYglC,GAEjBma,EAAK/zC,aAAa,KAAMjT,EAAK,QAEzB+sC,eAAeC,gBACjBga,EAAKjtD,MAAMI,QAAU,QAGhB6sD,CACT,CAIUC,GACNn2D,SAASoiB,KAAKrL,YAAYi/C,GAC1BF,EAAavxD,UAAU,WACvBwxD,EAAgBD,EAAW5hD,WAAW,OAExB23B,OAAS,QAAU38B,EAAK,IACtC6mD,EAAc5hD,UAAY,gBAC1B4hD,EAAc3hD,SAAS,EAAG,EAAG,EAAG,GAEpC,CAcA,MAAO,CACLhC,KAAM6jD,EACNjlE,IAdF,SAAiB8iB,GASf,OARKgiD,GACHG,IAGFH,EAAW/hD,MAAQD,EAAOC,MAC1B+hD,EAAW9hD,OAASF,EAAOE,OAE3B+hD,EAAclqB,OAAS,QAAU38B,EAAK,IAC/B4mD,CACT,EAMF,EAEA,SAASM,aAAariD,EAAOC,GAC3B,GAAIioC,eAAeE,gBACjB,OAAO,IAAItN,gBAAgB96B,EAAOC,GAGpC,IAAIF,EAASvP,UAAU,UAGvB,OAFAuP,EAAOC,MAAQA,EACfD,EAAOE,OAASA,EACTF,CACT,CAEA,IAAIlC,YACK,CACLykD,eAAgBR,WAAWzjD,KAC3BkkD,cAAeT,WAAW7kE,IAC1BolE,aAAcA,cAIlB,SAASG,YAAa,CAItB,SAASC,cAAct3D,EAAM8J,GAK3B,IAAInhB,EAJJqJ,KAAKgO,KAAOA,EACZhO,KAAK8X,QAAUA,EACf9X,KAAKud,gBAAkBvd,KAAKgO,KAAKuP,iBAAmB,GACpDvd,KAAKskD,SAAWruC,iBAAiBjW,KAAKud,gBAAgB7mB,QAEtD,IAAIyH,EAAM6B,KAAKud,gBAAgB7mB,OAC3B6uE,GAAW,EAEf,IAAK5uE,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACa,MAAjCqJ,KAAKud,gBAAgB5mB,GAAG0rD,OAC1BkjB,GAAW,GAGbvlE,KAAKskD,SAAS3tD,GAAKgsC,qBAAqBqiB,aAAahlD,KAAK8X,QAAS9X,KAAKud,gBAAgB5mB,GAAI,GAG9FqJ,KAAKulE,SAAWA,EAEZA,GACFvlE,KAAK8X,QAAQspC,uBAAuBphD,KAExC,CAoDA,SAASwlE,gBAAiB,CA5E1BH,UAAU7kE,UAAU0sB,YAAc,WAAa,EA0B/Co4C,cAAc9kE,UAAU0sB,YAAc,WACpC,GAAKltB,KAAKulE,SAAV,CAIA,IAEI5uE,EAEA6mB,EACA8sB,EACAt8B,EANAu5B,EAAYvnC,KAAK8X,QAAQ6pC,eAAexR,IACxCptB,EAAM/iB,KAAK8X,QAAQ2tD,cAEnBtnE,EAAM6B,KAAKud,gBAAgB7mB,OAM/B,IAFAqsB,EAAI2iD,YAEC/uE,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACxB,GAAqC,MAAjCqJ,KAAKud,gBAAgB5mB,GAAG0rD,KAAc,CAYxC,IAAIrlC,EAXAhd,KAAKud,gBAAgB5mB,GAAGohD,MAC1Bh1B,EAAI4iD,OAAO,EAAG,GACd5iD,EAAI6iD,OAAO5lE,KAAK8X,QAAQuS,WAAWo/B,SAAS3N,EAAG,GAC/C/4B,EAAI6iD,OAAO5lE,KAAK8X,QAAQuS,WAAWo/B,SAAS3N,EAAG97C,KAAK8X,QAAQuS,WAAWo/B,SAAShuD,GAChFsnB,EAAI6iD,OAAO,EAAG5lE,KAAK8X,QAAQuS,WAAWo/B,SAAShuD,GAC/CsnB,EAAI6iD,OAAO,EAAG,IAGhB53D,EAAOhO,KAAKskD,SAAS3tD,GAAGojB,EACxByD,EAAK+pB,EAAU6C,kBAAkBp8B,EAAK+L,EAAE,GAAG,GAAI/L,EAAK+L,EAAE,GAAG,GAAI,GAC7DgJ,EAAI4iD,OAAOnoD,EAAG,GAAIA,EAAG,IAErB,IAAIP,EAAOjP,EAAK0mB,QAEhB,IAAK1X,EAAI,EAAGA,EAAIC,EAAMD,GAAK,EACzBstB,EAAM/C,EAAUiD,oBAAoBx8B,EAAK7X,EAAE6mB,EAAI,GAAIhP,EAAKrX,EAAEqmB,GAAIhP,EAAK+L,EAAEiD,IACrE+F,EAAI8iD,cAAcv7B,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAAIA,EAAI,IAGhEA,EAAM/C,EAAUiD,oBAAoBx8B,EAAK7X,EAAE6mB,EAAI,GAAIhP,EAAKrX,EAAE,GAAIqX,EAAK+L,EAAE,IACrEgJ,EAAI8iD,cAAcv7B,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAChE,CAGFtqC,KAAK8X,QAAQuS,WAAWtB,SAAS+8C,MAAK,GACtC/iD,EAAIgjD,MAtCJ,CAuCF,EAEAT,cAAc9kE,UAAU4pD,gBAAkBhG,YAAY5jD,UAAU4pD,gBAEhEkb,cAAc9kE,UAAU4kB,QAAU,WAChCplB,KAAK8X,QAAU,IACjB,EAIA,IAAIkuD,cAAgB,CAClB,EAAG,YACH,EAAG,aACH,EAAG,YACH,EAAG,cAyJL,SAASC,YAAYnuD,EAAS9J,EAAMipC,EAAQivB,GAC1ClmE,KAAKmmE,aAAe,GACpBnmE,KAAKs3C,GAAK,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAC1B,IAWI3gD,EAXA+mB,EAAK,EAEO,OAAZ1P,EAAK0P,GACPA,EAAK,EACgB,OAAZ1P,EAAK0P,GACdA,EAAK,EACgB,OAAZ1P,EAAK0P,KACdA,EAAK,GAGP1d,KAAKq8B,GAAKsG,qBAAqBqiB,aAAaltC,EAAS9J,EAAM0P,EAAI5F,GAE/D,IACIsuD,EADAjoE,EAAM84C,EAAOvgD,OAGjB,IAAKC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACnBsgD,EAAOtgD,GAAGypB,SACbgmD,EAAc,CACZnc,WAAYic,EAAkB5B,qBAAqBrtB,EAAOtgD,GAAGszD,YAC7Doc,QAAS,IAEXrmE,KAAKmmE,aAAa7tE,KAAK8tE,GACvBnvB,EAAOtgD,GAAG4hD,SAASjgD,KAAK8tE,GAG9B,CAIA,SAASE,eAAet4D,EAAMqc,EAAYpM,GACxCje,KAAK8d,OAAS,GACd9d,KAAKymD,WAAaz4C,EAAK8P,OACvB9d,KAAK6zD,WAAa,GAClB7zD,KAAK0mD,UAAY,GACjB1mD,KAAK+wD,aAAe,GACpB/wD,KAAKyuD,eAAiB,GACtBzuD,KAAK8uD,kBAAoB,GACzB9uD,KAAKkmE,kBAAoB,IAAI3E,sBAC7BvhE,KAAKgsD,YAAYh+C,EAAMqc,EAAYpM,EACrC,CAshBA,SAASsoD,cAAcv4D,EAAMqc,EAAYpM,GACvCje,KAAKw/D,UAAY,GACjBx/D,KAAKm1D,QAAU,EACfn1D,KAAKg1D,eAAgB,EACrBh1D,KAAKi1D,iBAAkB,EACvBj1D,KAAKk1D,iBAAkB,EACvBl1D,KAAKwmE,QAAS,EACdxmE,KAAKymE,MAAO,EACZzmE,KAAK20D,cAAgB,EACrB30D,KAAK0mE,cAAgB,KACrB1mE,KAAK47D,WAAa,SAClB57D,KAAK6C,OAAS,CACZ4jE,KAAM,gBACND,OAAQ,gBACRG,OAAQ,EACRC,OAAQ,IAEV5mE,KAAKgsD,YAAYh+C,EAAMqc,EAAYpM,EACrC,CAgOA,SAAS4oD,eAAe74D,EAAMqc,EAAYpM,GACxCje,KAAK2jB,UAAY0G,EAAW8E,aAAanhB,EAAK4P,OAC9C5d,KAAKikB,IAAMoG,EAAWk5B,YAAYl+B,SAASrlB,KAAK2jB,WAChD3jB,KAAKgsD,YAAYh+C,EAAMqc,EAAYpM,EACrC,CAyCA,SAAS6oD,eAAe94D,EAAMqc,EAAYpM,GACxCje,KAAKgsD,YAAYh+C,EAAMqc,EAAYpM,EACrC,CAYA,SAAS8oD,mBAAmBvd,EAAewW,GACzChgE,KAAKwpD,cAAgBA,EACrBxpD,KAAK6hD,aAAe,CAClBmlB,aAAahH,QAAiC7mE,IAAvB6mE,EAAOgH,aAA4BhH,EAAOgH,YACjEjlE,QAASi+D,GAAUA,EAAOj+D,SAAW,KACrC6mD,gBAAiBoX,GAAUA,EAAOpX,kBAAmB,EACrD4X,oBAAqBR,GAAUA,EAAOQ,qBAAuB,gBAC7DjS,yBAA0ByR,GAAUA,EAAOzR,0BAA4B,iBACvEkS,kBAAmBT,GAAUA,EAAOS,mBAAqB,UACzDG,UAAWZ,GAAUA,EAAOY,WAAa,GACzC5iD,GAAIgiD,GAAUA,EAAOhiD,IAAM,IAE7Bhe,KAAK6hD,aAAaolB,IAAMjH,GAAUA,EAAOiH,KAAO,EAE5CjnE,KAAKwpD,cAAcx/B,UACrBhqB,KAAK6hD,aAAaolB,IAAMjH,GAAUA,EAAOiH,KAAO/mE,OAAOgnE,kBAAoB,GAG7ElnE,KAAK2+B,eAAiB,EACtB3+B,KAAKqqB,WAAa,CAChBgQ,UAAW,EACX6E,MAAM,EACN2iB,aAAc7hD,KAAK6hD,aACnBslB,oBAAqB,GAEvBnnE,KAAKonE,YAAc,IAAInG,cACvBjhE,KAAKu4C,SAAW,GAChBv4C,KAAKmpD,gBAAkB,GACvBnpD,KAAKqnE,aAAe,IAAIrhC,OACxBhmC,KAAK4c,gBAAiB,EACtB5c,KAAK0sB,aAAe,QACtB,CAiVA,SAAS46C,cAAct5D,EAAMqc,EAAYpM,GACvCje,KAAK4c,gBAAiB,EACtB5c,KAAK6c,OAAS7O,EAAK6O,OACnB7c,KAAKmpD,gBAAkB,GACvBnpD,KAAKu4C,SAAWtiC,iBAAiBjW,KAAK6c,OAAOnmB,QAC7CsJ,KAAKgsD,YAAYh+C,EAAMqc,EAAYpM,GACnCje,KAAKinB,GAAKjZ,EAAKiZ,GAAKmZ,gBAAgBC,QAAQrgC,KAAMgO,EAAKiZ,GAAI,EAAGoD,EAAW9B,UAAWvoB,MAAQ,CAC1F+jD,cAAc,EAElB,CAyCA,SAASwjB,eAAe/d,EAAewW,GACrChgE,KAAKwpD,cAAgBA,EACrBxpD,KAAK6hD,aAAe,CAClBmlB,aAAahH,QAAiC7mE,IAAvB6mE,EAAOgH,aAA4BhH,EAAOgH,YACjEjlE,QAASi+D,GAAUA,EAAOj+D,SAAW,KACrC6mD,gBAAiBoX,GAAUA,EAAOpX,kBAAmB,EACrD4X,oBAAqBR,GAAUA,EAAOQ,qBAAuB,gBAC7DjS,yBAA0ByR,GAAUA,EAAOzR,0BAA4B,iBACvEkS,kBAAmBT,GAAUA,EAAOS,mBAAqB,UACzDG,UAAWZ,GAAUA,EAAOY,WAAa,GACzC5iD,GAAIgiD,GAAUA,EAAOhiD,IAAM,GAC3B+iD,gBAAiBf,QAAoC7mE,IAA1B6mE,EAAOe,gBAAgCf,EAAOe,gBAE3E/gE,KAAK6hD,aAAaolB,IAAMjH,GAAUA,EAAOiH,KAAO,EAE5CjnE,KAAKwpD,cAAcx/B,UACrBhqB,KAAK6hD,aAAaolB,IAAMjH,GAAUA,EAAOiH,KAAO/mE,OAAOgnE,kBAAoB,GAG7ElnE,KAAK2+B,eAAiB,EACtB3+B,KAAKqqB,WAAa,CAChBgQ,UAAW,EACX6E,MAAM,EACN2iB,aAAc7hD,KAAK6hD,aACnBslB,oBAAqB,GAEvBnnE,KAAKonE,YAAc,IAAInG,cACvBjhE,KAAKu4C,SAAW,GAChBv4C,KAAKmpD,gBAAkB,GACvBnpD,KAAKqnE,aAAe,IAAIrhC,OACxBhmC,KAAK4c,gBAAiB,EACtB5c,KAAK0sB,aAAe,QACtB,CAQA,SAAS86C,eAAgB,CAwFzB,SAASC,cAAcz5D,EAAMqc,EAAYpM,GACvCje,KAAKgsD,YAAYh+C,EAAMqc,EAAYpM,EACrC,CAwBA,SAASypD,cAAc15D,EAAMqc,EAAYpM,GAEvCje,KAAK8d,OAAS,GAEd9d,KAAKymD,WAAaz4C,EAAK8P,OAEvB9d,KAAK6zD,WAAa,GAElB7zD,KAAKyuD,eAAiB,GAEtBzuD,KAAK0mD,UAAY,GAEjB1mD,KAAK8uD,kBAAoB,GAEzB9uD,KAAK8zD,iBAAmB,GACxB9zD,KAAK2nE,gBAAkBpsD,SAAS,KAChCvb,KAAKgsD,YAAYh+C,EAAMqc,EAAYpM,GAGnCje,KAAK+wD,aAAe,GACpB/wD,KAAK4nE,YAAc,CACjB90C,EAAG,OACHj5B,GAAI,OACJ4B,EAAG,EACHqgD,EAAG,EAEP,CA+NA,SAAS+rB,aAAa75D,EAAMqc,EAAYpM,GACtCje,KAAKw/D,UAAY,GACjBx/D,KAAK8nE,UAAY,GACjB9nE,KAAK4nE,YAAc,CACjB90C,EAAG,OACHj5B,GAAI,OACJ4B,EAAG,EACHqgD,EAAG,GAEL97C,KAAK47D,WAAa,MAClB57D,KAAK+nE,UAAW,EAChB/nE,KAAKgsD,YAAYh+C,EAAMqc,EAAYpM,EACrC,CAyRA,SAAS+pD,eAAeh6D,EAAMqc,EAAYpM,GACxCje,KAAKk6B,YACLl6B,KAAKwjD,aAAax1C,EAAMqc,EAAYpM,GACpCje,KAAKiuD,gBACL,IAAI5tB,EAAUD,gBAAgBC,QAe9B,GAdArgC,KAAKioE,GAAK5nC,EAAQrgC,KAAMgO,EAAKi6D,GAAI,EAAG,EAAGjoE,MAEnCgO,EAAKsQ,GAAG1hB,EAAE/F,GACZmJ,KAAK2vC,GAAKtP,EAAQrgC,KAAMgO,EAAKsQ,GAAG1hB,EAAEk2B,EAAG,EAAG,EAAG9yB,MAC3CA,KAAK4vC,GAAKvP,EAAQrgC,KAAMgO,EAAKsQ,GAAG1hB,EAAE/C,EAAG,EAAG,EAAGmG,MAC3CA,KAAK6vC,GAAKxP,EAAQrgC,KAAMgO,EAAKsQ,GAAG1hB,EAAEgtC,EAAG,EAAG,EAAG5pC,OAE3CA,KAAKpD,EAAIyjC,EAAQrgC,KAAMgO,EAAKsQ,GAAG1hB,EAAG,EAAG,EAAGoD,MAGtCgO,EAAKsQ,GAAGoB,IACV1f,KAAK0f,EAAI2gB,EAAQrgC,KAAMgO,EAAKsQ,GAAGoB,EAAG,EAAG,EAAG1f,OAGtCgO,EAAKsQ,GAAGqmB,GAAGznB,EAAExmB,QAAUsX,EAAKsQ,GAAGqmB,GAAGznB,EAAE,GAAGxR,GAAI,CAC7C,IAAI/U,EACAwH,EAAM6P,EAAKsQ,GAAGqmB,GAAGznB,EAAExmB,OAEvB,IAAKC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACxBqX,EAAKsQ,GAAGqmB,GAAGznB,EAAEvmB,GAAG+U,GAAK,KACrBsC,EAAKsQ,GAAGqmB,GAAGznB,EAAEvmB,GAAG2kC,GAAK,IAEzB,CAEAt7B,KAAK2kC,GAAKtE,EAAQrgC,KAAMgO,EAAKsQ,GAAGqmB,GAAI,EAAGptB,UAAWvX,MAClDA,KAAK2kC,GAAGtI,IAAK,EACbr8B,KAAK8vC,GAAKzP,EAAQrgC,KAAMgO,EAAKsQ,GAAGwxB,GAAI,EAAGv4B,UAAWvX,MAClDA,KAAK+vC,GAAK1P,EAAQrgC,KAAMgO,EAAKsQ,GAAGyxB,GAAI,EAAGx4B,UAAWvX,MAClDA,KAAKgwC,GAAK3P,EAAQrgC,KAAMgO,EAAKsQ,GAAG0xB,GAAI,EAAGz4B,UAAWvX,MAClDA,KAAKmwC,IAAM,IAAInK,OACfhmC,KAAKkoE,SAAW,IAAIliC,OACpBhmC,KAAKu/B,eAAgB,EAErBv/B,KAAK2hD,eAAiB,CACpBC,MAAO5hD,KAEX,CAyIA,SAASmoE,cAAcn6D,EAAMqc,EAAYpM,GACvCje,KAAK2jB,UAAY0G,EAAW8E,aAAanhB,EAAK4P,OAC9C5d,KAAKgsD,YAAYh+C,EAAMqc,EAAYpM,EACrC,CA4BA,SAASmqD,mBAAmB5e,EAAewW,GACzChgE,KAAKwpD,cAAgBA,EACrBxpD,KAAK6c,OAAS,KACd7c,KAAK2+B,eAAiB,EACtB3+B,KAAK6hD,aAAe,CAClB+e,UAAWZ,GAAUA,EAAOY,WAAa,GACzCrS,yBAA0ByR,GAAUA,EAAOzR,0BAA4B,iBACvEzM,oBAAqBke,IAAuC,IAA7BA,EAAOle,mBACtCgf,WAAY,CACVj+C,MAAOm9C,GAAUA,EAAOc,YAAcd,EAAOc,WAAWj+C,OAAS,OACjEC,OAAQk9C,GAAUA,EAAOc,YAAcd,EAAOc,WAAWh+C,QAAU,OACnEgQ,EAAGktC,GAAUA,EAAOc,YAAcd,EAAOc,WAAWhuC,GAAK,QACzDj5B,EAAGmmE,GAAUA,EAAOc,YAAcd,EAAOc,WAAWjnE,GAAK,UAG7DmG,KAAKqqB,WAAa,CAChB6U,MAAM,EACN7E,UAAW,EACXwnB,aAAc7hD,KAAK6hD,cAErB7hD,KAAKmpD,gBAAkB,GACvBnpD,KAAKu4C,SAAW,GAChBv4C,KAAKqoE,eAAiB,GACtBroE,KAAKghE,WAAY,EACjBhhE,KAAKsoE,OAAS,KACdtoE,KAAK8/D,YAAa,EAClB9/D,KAAK0sB,aAAe,MACtB,CAyUA,SAAS67C,aAAav6D,EAAMqc,EAAYpM,GACtCje,KAAK6c,OAAS7O,EAAK6O,OACnB7c,KAAK8/D,YAAc9xD,EAAKqP,QACxBrd,KAAK4c,gBAAiB,EACtB5c,KAAKmpD,gBAAkB,GACvBnpD,KAAKu4C,SAAWv4C,KAAK6c,OAAS5G,iBAAiBjW,KAAK6c,OAAOnmB,QAAU,GACrEsJ,KAAKgsD,YAAYh+C,EAAMqc,EAAYpM,GACnCje,KAAKinB,GAAKjZ,EAAKiZ,GAAKmZ,gBAAgBC,QAAQrgC,KAAMgO,EAAKiZ,GAAI,EAAGoD,EAAW9B,UAAWvoB,MAAQ,CAC1F+jD,cAAc,EAElB,CA6CA,SAASykB,eAAehf,EAAewW,GACrChgE,KAAKwpD,cAAgBA,EACrBxpD,KAAK6c,OAAS,KACd7c,KAAK2+B,eAAiB,EACtB3+B,KAAK6hD,aAAe,CAClB+e,UAAWZ,GAAUA,EAAOY,WAAa,GACzCrS,yBAA0ByR,GAAUA,EAAOzR,0BAA4B,iBACvEzM,oBAAqBke,IAAuC,IAA7BA,EAAOle,mBACtCgf,WAAY,CACVj+C,MAAOm9C,GAAUA,EAAOc,YAAcd,EAAOc,WAAWj+C,OAAS,OACjEC,OAAQk9C,GAAUA,EAAOc,YAAcd,EAAOc,WAAWh+C,QAAU,OACnEgQ,EAAGktC,GAAUA,EAAOc,YAAcd,EAAOc,WAAWhuC,GAAK,QACzDj5B,EAAGmmE,GAAUA,EAAOc,YAAcd,EAAOc,WAAWjnE,GAAK,SAE3DknE,gBAAiBf,QAAoC7mE,IAA1B6mE,EAAOe,gBAAgCf,EAAOe,gBAE3E/gE,KAAKqqB,WAAa,CAChB6U,MAAM,EACN7E,UAAW,EACXwnB,aAAc7hD,KAAK6hD,cAErB7hD,KAAKmpD,gBAAkB,GACvBnpD,KAAKu4C,SAAW,GAChBv4C,KAAKqoE,eAAiB,GACtBroE,KAAKghE,WAAY,EACjBhhE,KAAKsoE,OAAS,KACdtoE,KAAK8/D,YAAa,EAClB9/D,KAAK0sB,aAAe,MACtB,CAtuFA84C,cAAchlE,UAAY,CACxBioE,eAAgB,WAA2B,EAC3Crc,oBAAqB,WAAgC,EACrDC,wBAAyB,WAMvB,GAAIrsD,KAAKgO,KAAK1R,IAAM,EAAG,CACrB0D,KAAK0oE,QAAU,GACf,IAAIjD,EAAgBzlE,KAAKqqB,WAAWo7C,cAChCkD,EAAejoD,YAAYwkD,aAAaO,EAAc7iD,OAAOC,MAAO4iD,EAAc7iD,OAAOE,QAC7F9iB,KAAK0oE,QAAQpwE,KAAKqwE,GAClB,IAAIC,EAAgBloD,YAAYwkD,aAAaO,EAAc7iD,OAAOC,MAAO4iD,EAAc7iD,OAAOE,QAC9F9iB,KAAK0oE,QAAQpwE,KAAKswE,GAEd5oE,KAAKgO,KAAK1R,IAAM,IAAMwS,SAAS+5D,UACjCnoD,YAAYykD,gBAEhB,CAEAnlE,KAAKylE,cAAgBzlE,KAAKqqB,WAAWo7C,cACrCzlE,KAAK8oE,gBAAkB9oE,KAAKqqB,WAAWy+C,gBACvC9oE,KAAKqtD,yBAA2B,IAAIgY,UAAUrlE,KAChD,EACAmuD,cAAe,WAA0B,EACzCtH,aAAc,WACZ,IAAIx8B,EAAarqB,KAAKqqB,WAEtB,GAAIA,EAAW0+C,YAAc/oE,KAAKgO,KAAK+4C,GAAI,CACzC18B,EAAW0+C,UAAY/oE,KAAKgO,KAAK+4C,GACjC,IAAID,EAAiB3E,aAAaniD,KAAKgO,KAAK+4C,IAC5C18B,EAAWo7C,cAAcuD,yBAA2BliB,CACtD,CACF,EACAsG,2BAA4B,WAC1BptD,KAAKmmD,YAAc,IAAImf,cAActlE,KAAKgO,KAAMhO,KAClD,EACAipE,YAAa,WACNjpE,KAAKihD,QAAYjhD,KAAKghD,YAAahhD,KAAKkhD,gBAC3ClhD,KAAKihD,QAAS,EAElB,EACAioB,YAAa,WACPlpE,KAAKghD,YAAchhD,KAAKkhD,gBAC1BlhD,KAAKihD,QAAS,EACdjhD,KAAKu/B,eAAgB,EACrBv/B,KAAKmmD,YAAY5mB,eAAgB,EAErC,EACAynC,YAAa,SAAqBvB,GAChCA,EAAc0D,UAAUnpE,KAAK8oE,gBAAgBzhC,GAAIrnC,KAAK8oE,gBAAgBprD,GAAI1d,KAAK8oE,gBAAgBhtB,EAAI97C,KAAK8oE,gBAAgBhiC,GAAI9mC,KAAK8oE,gBAAgBrtE,EAAIuE,KAAK8oE,gBAAgBzkC,GAC5K,EACA+kC,aAAc,WACZ,GAAIppE,KAAKgO,KAAK1R,IAAM,EAAG,CACrB,IACI+sE,EADSrpE,KAAK0oE,QAAQ,GACH1lD,WAAW,MAClChjB,KAAKgnE,YAAYqC,GAEjBA,EAAUC,UAAUtpE,KAAKylE,cAAc7iD,OAAQ,EAAG,GAGlD5iB,KAAK42D,iBAAmB52D,KAAKylE,cAActB,eAC3CnkE,KAAKylE,cAAct+B,aAAa,EAAG,EAAG,EAAG,EAAG,EAAG,GAC/CnnC,KAAKgnE,YAAYhnE,KAAKylE,eACtBzlE,KAAKylE,cAAct+B,aAAannC,KAAK42D,iBACvC,CACF,EACA2S,UAAW,WACT,GAAIvpE,KAAKgO,KAAK1R,IAAM,EAAG,CACrB,IAAIktE,EAASxpE,KAAK0oE,QAAQ,GAItBW,EAAYG,EAAOxmD,WAAW,MAclC,GAbAhjB,KAAKgnE,YAAYqC,GACjBA,EAAUC,UAAUtpE,KAAKylE,cAAc7iD,OAAQ,EAAG,GAElD5iB,KAAKylE,cAAct+B,aAAa,EAAG,EAAG,EAAG,EAAG,EAAG,GAC/CnnC,KAAKgnE,YAAYhnE,KAAKylE,eACtBzlE,KAAKylE,cAAct+B,aAAannC,KAAK42D,kBAE1B52D,KAAKie,KAAKmrC,eAAe,OAAQppD,KAAKgO,KAAOhO,KAAKgO,KAAKo1D,GAAKpjE,KAAKgO,KAAKutB,IAAM,GAClFrO,aAAY,GAEjBltB,KAAKylE,cAAct+B,aAAa,EAAG,EAAG,EAAG,EAAG,EAAG,GAG3CnnC,KAAKgO,KAAK1R,IAAM,IAAMwS,SAAS+5D,SAAU,CAG3C,IAAIjE,EAAalkD,YAAY0kD,cAAcplE,KAAKylE,cAAc7iD,QAC1CgiD,EAAW5hD,WAAW,MAC5BsmD,UAAUtpE,KAAKylE,cAAc7iD,OAAQ,EAAG,GACtD5iB,KAAKgnE,YAAYhnE,KAAKylE,eAEtBzlE,KAAKylE,cAAc6D,UAAU1E,EAAY,EAAG,EAC9C,CAEA5kE,KAAKylE,cAAcuD,yBAA2BhD,cAAchmE,KAAKgO,KAAK1R,IACtE0D,KAAKylE,cAAc6D,UAAUE,EAAQ,EAAG,GAGxCxpE,KAAKylE,cAAcuD,yBAA2B,mBAC9ChpE,KAAKylE,cAAc6D,UAAUtpE,KAAK0oE,QAAQ,GAAI,EAAG,GACjD1oE,KAAKylE,cAAct+B,aAAannC,KAAK42D,kBAErC52D,KAAKylE,cAAcuD,yBAA2B,aAChD,CACF,EACA97C,YAAa,SAAqBkjB,GAChC,IAAIpwC,KAAKihD,SAAUjhD,KAAKgO,KAAK8+C,KAIR,IAAjB9sD,KAAKgO,KAAK0+C,IAAatc,GAA3B,CAIApwC,KAAK8pD,kBACL9pD,KAAK+hD,mBACL/hD,KAAK6mD,eACL,IAAI4iB,EAAkC,IAAjBzpE,KAAKgO,KAAK0P,GAC/B1d,KAAKopE,eACLppE,KAAKqqB,WAAWtB,SAAS+8C,KAAK2D,GAC9BzpE,KAAKqqB,WAAWtB,SAAS2gD,aAAa1pE,KAAK2hD,eAAexR,IAAIznC,OAC9D1I,KAAKqqB,WAAWtB,SAAS4gD,WAAW3pE,KAAK2hD,eAAeC,MAAMzrD,EAAE4jB,GAChE/Z,KAAKouD,qBACLpuD,KAAKqqB,WAAWtB,SAAS6gD,QAAQH,GACjCzpE,KAAKupE,YAEDvpE,KAAKmmD,YAAYof,UACnBvlE,KAAKqqB,WAAWtB,SAAS6gD,SAAQ,GAG/B5pE,KAAKu/B,gBACPv/B,KAAKu/B,eAAgB,EAnBvB,CAqBF,EACAna,QAAS,WACPplB,KAAKylE,cAAgB,KACrBzlE,KAAKgO,KAAO,KACZhO,KAAKqqB,WAAa,KAClBrqB,KAAKmmD,YAAY/gC,SACnB,EACA+kC,QAAS,IAAInkB,QAEfw/B,cAAchlE,UAAU4uB,KAAOo2C,cAAchlE,UAAUyoE,YACvDzD,cAAchlE,UAAU6uB,KAAOm2C,cAAchlE,UAAU0oE,YAgCvDjD,YAAYzlE,UAAU6sC,cAAgB6hB,aAAa1uD,UAAU6sC,cAc7D95B,gBAAgB,CAAC6vC,YAAae,iBAAkBqhB,cAAerZ,cAAeN,iBAAkBxI,aAAcxC,mBAAoBylB,gBAClIA,eAAe9lE,UAAUwrD,YAAcF,qBAAqBtrD,UAAUwrD,YACtEsa,eAAe9lE,UAAUqpE,gBAAkB,CACzC3F,QAAS,EACTta,QAAQ,GAEV0c,eAAe9lE,UAAUspE,aAAe,GAExCxD,eAAe9lE,UAAU2tD,cAAgB,WACvCnuD,KAAK61D,aAAa71D,KAAKymD,WAAYzmD,KAAK0mD,UAAW1mD,KAAK+wD,cAAc,EAAM,GAC9E,EAEAuV,eAAe9lE,UAAU01D,mBAAqB,SAAUloD,EAAMi8C,GAC5D,IAAIgJ,EAAY,CACdjlD,KAAMA,EACN3L,KAAM2L,EAAK0P,GACXqsD,cAAe/pE,KAAKkmE,kBAAkB5B,qBAAqBra,GAC3DA,WAAY,GACZ1R,SAAU,GACVn4B,QAAoB,IAAZpS,EAAK8+C,IAEXqJ,EAAc,CAAC,EAsBnB,GApBgB,OAAZnoD,EAAK0P,IAA2B,OAAZ1P,EAAK0P,IAC3By4C,EAAYl2C,EAAImgB,gBAAgBC,QAAQrgC,KAAMgO,EAAKiS,EAAG,EAAG,IAAKjgB,MAEzDm2D,EAAYl2C,EAAE/C,IACjB+1C,EAAU+W,GAAK,OAASpzD,QAAQu/C,EAAYl2C,EAAElG,EAAE,IAAM,IAAMnD,QAAQu/C,EAAYl2C,EAAElG,EAAE,IAAM,IAAMnD,QAAQu/C,EAAYl2C,EAAElG,EAAE,IAAM,MAE3G,OAAZ/L,EAAK0P,IAA2B,OAAZ1P,EAAK0P,KAClCy4C,EAAYt/D,EAAIupC,gBAAgBC,QAAQrgC,KAAMgO,EAAKnX,EAAG,EAAG,KAAMmJ,MAC/Dm2D,EAAYl/D,EAAImpC,gBAAgBC,QAAQrgC,KAAMgO,EAAK/W,EAAG,EAAG,KAAM+I,MAC/Dm2D,EAAY16D,EAAI2kC,gBAAgBC,QAAQrgC,KAAMgO,EAAKvS,GAAK,CACtDyhB,EAAG,GACF,EAAG,IAAMld,MACZm2D,EAAYz2C,EAAI0gB,gBAAgBC,QAAQrgC,KAAMgO,EAAK0R,GAAK,CACtDxC,EAAG,GACF,EAAG3F,UAAWvX,MACjBm2D,EAAYp2D,EAAI,IAAIqwD,iBAAiBpwD,KAAMgO,EAAKjO,EAAGC,OAGrDm2D,EAAYhgE,EAAIiqC,gBAAgBC,QAAQrgC,KAAMgO,EAAK7X,EAAG,EAAG,IAAM6J,MAE/C,OAAZgO,EAAK0P,IAA2B,OAAZ1P,EAAK0P,IAe3B,GAdAu1C,EAAUnB,GAAK9C,YAAYhhD,EAAK8jD,IAAM,GACtCmB,EAAU1X,GAAK0T,aAAajhD,EAAKutC,IAAM,GAExB,GAAXvtC,EAAKutC,KAEP0X,EAAU3X,GAAKttC,EAAKstC,IAGtB6a,EAAYra,EAAI1b,gBAAgBC,QAAQrgC,KAAMgO,EAAK8tC,EAAG,EAAG,KAAM97C,MAE1Dm2D,EAAYra,EAAE5+B,IACjB+1C,EAAUgX,GAAK9T,EAAYra,EAAE/hC,GAG3B/L,EAAK1T,EAAG,CACV,IAAIA,EAAI,IAAIq1D,aAAa3vD,KAAMgO,EAAK1T,EAAG,SAAU0F,MACjDm2D,EAAY77D,EAAIA,EAEX67D,EAAY77D,EAAE4iB,IACjB+1C,EAAUiX,GAAK/T,EAAY77D,EAAEw1D,UAC7BmD,EAAc,GAAIkD,EAAY77D,EAAEy1D,WAAW,GAE/C,OAEAkD,EAAUj5C,EAAe,IAAXhM,EAAKgM,EAAU,UAAY,UAK3C,OAFAha,KAAK6zD,WAAWv7D,KAAK26D,GACrBkD,EAAYp+C,MAAQk7C,EACbkD,CACT,EAEAmQ,eAAe9lE,UAAU61D,mBAAqB,WAK5C,MAJkB,CAChBhgE,GAAI,GACJ06D,aAAc,GAGlB,EAEAuV,eAAe9lE,UAAU81D,uBAAyB,SAAUtoD,GAU1D,MATkB,CAChBu5B,UAAW,CACT28B,QAAS,EACTta,QAAQ,EACRhpD,IAAKZ,KAAKkmE,kBAAkBxB,YAC5BnlD,GAAI6gB,gBAAgBC,QAAQrgC,KAAMgO,EAAK7X,EAAG,EAAG,IAAM6J,MACnD+5C,OAAQzK,yBAAyBqB,qBAAqB3wC,KAAMgO,EAAMhO,OAIxE,EAEAsmE,eAAe9lE,UAAUg2D,mBAAqB,SAAUxoD,GACtD,IAAImoD,EAAc,IAAI8P,YAAYjmE,KAAMgO,EAAMhO,KAAK6zD,WAAY7zD,KAAKkmE,mBAGpE,OAFAlmE,KAAK8d,OAAOxlB,KAAK69D,GACjBn2D,KAAKwuD,oBAAoB2H,GAClBA,CACT,EAEAmQ,eAAe9lE,UAAU84C,aAAe,WAEtC,IAAI3iD,EADJqJ,KAAKu/B,eAAgB,EAErB,IAAIphC,EAAM6B,KAAK0mD,UAAUhwD,OAEzB,IAAKC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACxBqJ,KAAK+wD,aAAap6D,GAAKqJ,KAAK0mD,UAAU/vD,GAMxC,IAHAqJ,KAAK61D,aAAa71D,KAAKymD,WAAYzmD,KAAK0mD,UAAW1mD,KAAK+wD,cAAc,EAAM,IAC5E5yD,EAAM6B,KAAKygC,kBAAkB/pC,OAExBC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACxBqJ,KAAKygC,kBAAkB9pC,GAAGopC,WAG5B//B,KAAK4uD,kBACL5uD,KAAKkmE,kBAAkBzB,iBAAiBzkE,KAAKu/B,cAC/C,EAEA+mC,eAAe9lE,UAAU2pE,wBAA0B,SAAU5iC,GAC3D,IAAI5wC,EACAwH,EAAM6B,KAAK6zD,WAAWn9D,OAE1B,IAAKC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACnBqJ,KAAK6zD,WAAWl9D,GAAGypB,QACtBpgB,KAAK6zD,WAAWl9D,GAAGszD,WAAW3xD,KAAKivC,EAGzC,EAEA++B,eAAe9lE,UAAU4pE,6BAA+B,WACtD,IAAIzzE,EACAwH,EAAM6B,KAAK6zD,WAAWn9D,OAE1B,IAAKC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACnBqJ,KAAK6zD,WAAWl9D,GAAGypB,QACtBpgB,KAAK6zD,WAAWl9D,GAAGszD,WAAW1qD,KAGpC,EAEA+mE,eAAe9lE,UAAU6pE,YAAc,SAAUpzB,GAC/C,IAAItgD,EACAwH,EAAM84C,EAAOvgD,OAEjB,IAAKC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACxBsgD,EAAOtgD,GAAGypB,QAAS,CAEvB,EAEAkmD,eAAe9lE,UAAUq1D,aAAe,SAAUh+D,EAAK6uD,EAAWqK,EAAcuZ,EAAcrgB,GAC5F,IAAItzD,EAEAqmB,EACAC,EAGA65C,EACAD,EACAD,EAPAz4D,EAAMtG,EAAInB,OAAS,EAGnBqgE,EAAY,GACZC,EAAe,GAIfuT,EAAgB,GAAGz5C,OAAOm5B,GAE9B,IAAKtzD,EAAIwH,EAAKxH,GAAK,EAAGA,GAAK,EAAG,CAS5B,IARAmgE,EAAe92D,KAAK6uD,uBAAuBh3D,EAAIlB,KAK7C+vD,EAAU/vD,GAAKo6D,EAAa+F,EAAe,GAF3Cj/D,EAAIlB,GAAG6zE,cAAgBF,EAKP,OAAdzyE,EAAIlB,GAAG+mB,IAA6B,OAAd7lB,EAAIlB,GAAG+mB,IAA6B,OAAd7lB,EAAIlB,GAAG+mB,IAA6B,OAAd7lB,EAAIlB,GAAG+mB,GACtEo5C,EAGHpQ,EAAU/vD,GAAGohB,MAAMqI,QAAS,EAF5BsmC,EAAU/vD,GAAKqJ,KAAKk2D,mBAAmBr+D,EAAIlB,GAAI4zE,GAKjDxT,EAAUz+D,KAAKouD,EAAU/vD,GAAGohB,YACvB,GAAkB,OAAdlgB,EAAIlB,GAAG+mB,GAAa,CAC7B,GAAKo5C,EAKH,IAFA75C,EAAOypC,EAAU/vD,GAAGN,GAAGK,OAElBsmB,EAAI,EAAGA,EAAIC,EAAMD,GAAK,EACzB0pC,EAAU/vD,GAAGo6D,aAAa/zC,GAAK0pC,EAAU/vD,GAAGN,GAAG2mB,QALjD0pC,EAAU/vD,GAAKqJ,KAAKq2D,mBAAmBx+D,EAAIlB,IAS7CqJ,KAAK61D,aAAah+D,EAAIlB,GAAGN,GAAIqwD,EAAU/vD,GAAGN,GAAIqwD,EAAU/vD,GAAGo6D,aAAcuZ,EAAcC,EACzF,KAAyB,OAAd1yE,EAAIlB,GAAG+mB,IACXo5C,IACHF,EAAmB52D,KAAKs2D,uBAAuBz+D,EAAIlB,IACnD+vD,EAAU/vD,GAAKigE,GAGjB2T,EAAcjyE,KAAKouD,EAAU/vD,IAC7BqJ,KAAKmqE,wBAAwBzjB,EAAU/vD,KAChB,OAAdkB,EAAIlB,GAAG+mB,IAA6B,OAAd7lB,EAAIlB,GAAG+mB,IAA6B,OAAd7lB,EAAIlB,GAAG+mB,IAA6B,OAAd7lB,EAAIlB,GAAG+mB,GAC7Eo5C,IACHpQ,EAAU/vD,GAAKqJ,KAAKw2D,mBAAmB3+D,EAAIlB,KAEtB,OAAdkB,EAAIlB,GAAG+mB,IAA6B,OAAd7lB,EAAIlB,GAAG+mB,IAA6B,OAAd7lB,EAAIlB,GAAG+mB,IAA6B,OAAd7lB,EAAIlB,GAAG+mB,IAA6B,OAAd7lB,EAAIlB,GAAG+mB,IACnGo5C,GAMHD,EAAWnQ,EAAU/vD,IACZypB,QAAS,IANlBy2C,EAAWjqB,eAAeG,YAAYl1C,EAAIlB,GAAG+mB,KACpC6Q,KAAKvuB,KAAMnI,EAAIlB,IACxB+vD,EAAU/vD,GAAKkgE,EACf72D,KAAKyuD,eAAen2D,KAAKu+D,IAM3BG,EAAa1+D,KAAKu+D,IACK,OAAdh/D,EAAIlB,GAAG+mB,KACXo5C,GAOHD,EAAWnQ,EAAU/vD,IACZypB,QAAS,GAPlBy2C,EAAWjqB,eAAeG,YAAYl1C,EAAIlB,GAAG+mB,IAC7CgpC,EAAU/vD,GAAKkgE,EACfA,EAAStoC,KAAKvuB,KAAMnI,EAAKlB,EAAG+vD,GAC5B1mD,KAAKyuD,eAAen2D,KAAKu+D,GACzByT,GAAe,GAMjBtT,EAAa1+D,KAAKu+D,IAGpB72D,KAAK+uD,oBAAoBl3D,EAAIlB,GAAIA,EAAI,EACvC,CAMA,IAJAqJ,KAAKoqE,+BACLpqE,KAAKqqE,YAAYtT,GACjB54D,EAAM64D,EAAatgE,OAEdC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACxBqgE,EAAargE,GAAGypB,QAAS,CAE7B,EAEAkmD,eAAe9lE,UAAU4tD,mBAAqB,WAC5CpuD,KAAK6pE,gBAAgB3F,QAAU,EAC/BlkE,KAAK6pE,gBAAgBjgB,QAAS,EAC9B5pD,KAAK4uD,kBACL5uD,KAAKkmE,kBAAkBzB,iBAAiBzkE,KAAKu/B,eAC7Cv/B,KAAKi3D,YAAYj3D,KAAK6pE,gBAAiB7pE,KAAKymD,WAAYzmD,KAAK0mD,WAAW,EAC1E,EAEA4f,eAAe9lE,UAAUiqE,qBAAuB,SAAUC,EAAiBC,IACrED,EAAgB9gB,QAAU+gB,EAAeprD,GAAG2f,MAAQl/B,KAAKu/B,iBAC3DorC,EAAezG,QAAUwG,EAAgBxG,QACzCyG,EAAezG,SAAWyG,EAAeprD,GAAGxF,EAC5C4wD,EAAe/gB,QAAS,EAE5B,EAEA0c,eAAe9lE,UAAUoqE,UAAY,WACnC,IAAIj0E,EAEAqmB,EACAC,EACAC,EACAC,EACAo8B,EACAsxB,EAGAxoE,EACAyoE,EAVA3sE,EAAM6B,KAAK6zD,WAAWn9D,OAOtBqyB,EAAW/oB,KAAKqqB,WAAWtB,SAC3BhG,EAAM/iB,KAAKqqB,WAAWo7C,cAI1B,IAAK9uE,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EAQxB,IAAgB,QANhB0L,GADAyoE,EAAe9qE,KAAK6zD,WAAWl9D,IACX0L,OAMa,OAATA,GAAsC,IAApByoE,EAAab,KAAaa,EAAa98D,KAAKw8D,eAAuC,IAAtBM,EAAaC,MAAqD,IAAvC/qE,KAAKqqB,WAAW88C,mBAA2B,CAuB3K,IAtBAp+C,EAAS+8C,OACTvsB,EAAQuxB,EAAavyB,SAER,OAATl2C,GAA0B,OAATA,GACnB0gB,EAAIioD,YAAuB,OAAT3oE,EAAgByoE,EAAad,GAAKc,EAAaG,IACjEloD,EAAIu1C,UAAYwS,EAAab,GAC7BlnD,EAAImoD,QAAUJ,EAAahZ,GAC3B/uC,EAAI4yB,SAAWm1B,EAAavvB,GAC5Bx4B,EAAI6yB,WAAak1B,EAAaxvB,IAAM,GAEpCv4B,EAAIE,UAAqB,OAAT5gB,EAAgByoE,EAAad,GAAKc,EAAaG,IAGjEliD,EAAS4gD,WAAWmB,EAAaC,MAEpB,OAAT1oE,GAA0B,OAATA,GACnB0gB,EAAI2iD,YAGN38C,EAAS2gD,aAAaoB,EAAaf,cAAcpoB,eAAej5C,OAChEuU,EAAOs8B,EAAM7iD,OAERsmB,EAAI,EAAGA,EAAIC,EAAMD,GAAK,EAAG,CAa5B,IAZa,OAAT3a,GAA0B,OAATA,IACnB0gB,EAAI2iD,YAEAoF,EAAaZ,KACfnnD,EAAIooD,YAAYL,EAAaZ,IAC7BnnD,EAAIqoD,eAAiBN,EAAiB,KAK1C3tD,GADA0tD,EAAQtxB,EAAMv8B,GAAGqpD,SACJ3vE,OAERwmB,EAAI,EAAGA,EAAIC,EAAMD,GAAK,EACN,MAAf2tD,EAAM3tD,GAAG9gB,EACX2mB,EAAI4iD,OAAOkF,EAAM3tD,GAAGtgB,EAAE,GAAIiuE,EAAM3tD,GAAGtgB,EAAE,IACb,MAAfiuE,EAAM3tD,GAAG9gB,EAClB2mB,EAAI8iD,cAAcgF,EAAM3tD,GAAGotB,IAAI,GAAIugC,EAAM3tD,GAAGotB,IAAI,GAAIugC,EAAM3tD,GAAGotB,IAAI,GAAIugC,EAAM3tD,GAAGotB,IAAI,GAAIugC,EAAM3tD,GAAGotB,IAAI,GAAIugC,EAAM3tD,GAAGotB,IAAI,IAEpHvnB,EAAIsoD,YAIK,OAAThpE,GAA0B,OAATA,IACnB0gB,EAAIyjD,SAEAsE,EAAaZ,IACfnnD,EAAIooD,YAAYnrE,KAAK8pE,cAG3B,CAEa,OAATznE,GAA0B,OAATA,GACnB0gB,EAAI0jD,KAAKqE,EAAa9wD,GAGxB+O,EAAS6gD,SACX,CAEJ,EAEAtD,eAAe9lE,UAAUy2D,YAAc,SAAUyT,EAAiB5xB,EAAO9qC,EAAMs9D,GAC7E,IAAI30E,EAEAg0E,EAGJ,IAFAA,EAAiBD,EAEZ/zE,EAJKmiD,EAAMpiD,OAAS,EAIXC,GAAK,EAAGA,GAAK,EACL,OAAhBmiD,EAAMniD,GAAG+mB,IACXitD,EAAiB38D,EAAKrX,GAAG4wC,UACzBvnC,KAAKyqE,qBAAqBC,EAAiBC,IAClB,OAAhB7xB,EAAMniD,GAAG+mB,IAA+B,OAAhBo7B,EAAMniD,GAAG+mB,IAA+B,OAAhBo7B,EAAMniD,GAAG+mB,IAA+B,OAAhBo7B,EAAMniD,GAAG+mB,GAC1F1d,KAAK2yD,WAAW7Z,EAAMniD,GAAIqX,EAAKrX,IACN,OAAhBmiD,EAAMniD,GAAG+mB,GAClB1d,KAAKgzD,WAAWla,EAAMniD,GAAIqX,EAAKrX,GAAIg0E,GACV,OAAhB7xB,EAAMniD,GAAG+mB,GAClB1d,KAAKozD,aAAata,EAAMniD,GAAIqX,EAAKrX,GAAIg0E,GACZ,OAAhB7xB,EAAMniD,GAAG+mB,IAA+B,OAAhBo7B,EAAMniD,GAAG+mB,GAC1C1d,KAAKurE,mBAAmBzyB,EAAMniD,GAAIqX,EAAKrX,GAAIg0E,GAClB,OAAhB7xB,EAAMniD,GAAG+mB,GAClB1d,KAAKi3D,YAAY0T,EAAgB7xB,EAAMniD,GAAGN,GAAI2X,EAAKrX,GAAGN,IAC7CyiD,EAAMniD,GAAG+mB,GAIlB4tD,GACFtrE,KAAK4qE,WAET,EAEAtE,eAAe9lE,UAAUgrE,kBAAoB,SAAUpF,EAAajkC,GAClE,GAAIniC,KAAKu/B,eAAiB4C,EAAMjD,MAAQknC,EAAYnc,WAAW/qB,KAAM,CACnE,IAEIvoC,EACAwH,EACA6e,EAJAyuD,EAAarF,EAAYC,QACzB3mE,EAAQyiC,EAAMziC,MAIdud,EAAOvd,EAAMg1B,QACjB+2C,EAAW/0E,OAAS,EACpB,IAAIg1E,EAAoBtF,EAAYnc,WAAWtI,eAE/C,IAAK3kC,EAAI,EAAGA,EAAIC,EAAMD,GAAK,EAAG,CAC5B,IAAIutC,EAAY7qD,EAAMoe,OAAOd,GAE7B,GAAIutC,GAAaA,EAAUxwC,EAAG,CAG5B,IAFA5b,EAAMosD,EAAU71B,QAEX/9B,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACd,IAANA,GACF80E,EAAWnzE,KAAK,CACd8D,EAAG,IACHQ,EAAG8uE,EAAkBthC,kBAAkBmgB,EAAUxwC,EAAE,GAAG,GAAIwwC,EAAUxwC,EAAE,GAAG,GAAI,KAIjF0xD,EAAWnzE,KAAK,CACd8D,EAAG,IACHkuC,IAAKohC,EAAkBlhC,oBAAoB+f,EAAUp0D,EAAEQ,EAAI,GAAI4zD,EAAU5zD,EAAEA,GAAI4zD,EAAUxwC,EAAEpjB,MAInF,IAARwH,GACFstE,EAAWnzE,KAAK,CACd8D,EAAG,IACHQ,EAAG8uE,EAAkBthC,kBAAkBmgB,EAAUxwC,EAAE,GAAG,GAAIwwC,EAAUxwC,EAAE,GAAG,GAAI,KAI7EwwC,EAAUtqC,GAAK9hB,IACjBstE,EAAWnzE,KAAK,CACd8D,EAAG,IACHkuC,IAAKohC,EAAkBlhC,oBAAoB+f,EAAUp0D,EAAEQ,EAAI,GAAI4zD,EAAU5zD,EAAE,GAAI4zD,EAAUxwC,EAAE,MAE7F0xD,EAAWnzE,KAAK,CACd8D,EAAG,MAGT,CACF,CAEAgqE,EAAYC,QAAUoF,CACxB,CACF,EAEAnF,eAAe9lE,UAAUmyD,WAAa,SAAU7yC,EAAU2yC,GACxD,IAAoB,IAAhB3yC,EAASgtC,IAAehtC,EAAS0qD,cAAe,CAClD,IAAI7zE,EACAwH,EAAMs0D,EAAS0T,aAAazvE,OAEhC,IAAKC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACxBqJ,KAAKwrE,kBAAkB/Y,EAAS0T,aAAaxvE,GAAI87D,EAASp2B,GAE9D,CACF,EAEAiqC,eAAe9lE,UAAUwyD,WAAa,SAAUR,EAAWC,EAAUkY,GACnE,IAAI1X,EAAYR,EAAS16C,OAErB06C,EAASxyC,EAAEif,MAAQl/B,KAAKu/B,iBAC1B0zB,EAAU+W,GAAK,OAASpzD,QAAQ67C,EAASxyC,EAAElG,EAAE,IAAM,IAAMnD,QAAQ67C,EAASxyC,EAAElG,EAAE,IAAM,IAAMnD,QAAQ67C,EAASxyC,EAAElG,EAAE,IAAM,MAGnH04C,EAASt8D,EAAE+oC,MAAQyrC,EAAe/gB,QAAU5pD,KAAKu/B,iBACnD0zB,EAAU8X,KAAOtY,EAASt8D,EAAE4jB,EAAI4wD,EAAezG,QAEnD,EAEAoC,eAAe9lE,UAAU+qE,mBAAqB,SAAU/Y,EAAWC,EAAUkY,GAC3E,IACIM,EADAhY,EAAYR,EAAS16C,MAGzB,IAAKk7C,EAAUgY,KAAOxY,EAAS1yD,EAAEm/B,MAAQuzB,EAAS57D,EAAEqoC,MAAQuzB,EAASx7D,EAAEioC,MAAwB,IAAhBszB,EAAUp2D,IAAYq2D,EAASh3D,EAAEyjC,MAAQuzB,EAAS/yC,EAAEwf,MAAO,CACxI,IAuBIvoC,EAvBAosB,EAAM/iB,KAAKqqB,WAAWo7C,cACtBzvC,EAAMy8B,EAAS57D,EAAEkjB,EACjBkc,EAAMw8B,EAASx7D,EAAE8iB,EAErB,GAAoB,IAAhBy4C,EAAUp2D,EACZ6uE,EAAMloD,EAAI4oD,qBAAqB31C,EAAI,GAAIA,EAAI,GAAIC,EAAI,GAAIA,EAAI,QACtD,CACL,IAAI2O,EAAM1oC,KAAKya,KAAKza,KAAKsQ,IAAIwpB,EAAI,GAAKC,EAAI,GAAI,GAAK/5B,KAAKsQ,IAAIwpB,EAAI,GAAKC,EAAI,GAAI,IACzEy9B,EAAMx3D,KAAK6hC,MAAM9H,EAAI,GAAKD,EAAI,GAAIC,EAAI,GAAKD,EAAI,IAC/CwD,EAAUi5B,EAASh3D,EAAEse,EAErByf,GAAW,EACbA,EAAU,IACDA,IAAY,IACrBA,GAAW,KAGb,IAAIwb,EAAOpQ,EAAMpL,EACb1G,EAAI52B,KAAKkiC,IAAIs1B,EAAMjB,EAAS/yC,EAAE3F,GAAKi7B,EAAOhf,EAAI,GAC9Cn8B,EAAIqC,KAAKshC,IAAIk2B,EAAMjB,EAAS/yC,EAAE3F,GAAKi7B,EAAOhf,EAAI,GAClDi1C,EAAMloD,EAAI6oD,qBAAqB94C,EAAGj5B,EAAG,EAAGm8B,EAAI,GAAIA,EAAI,GAAI4O,EAC1D,CAGA,IAAIzmC,EAAMq0D,EAAUzyD,EAAEnD,EAClB42D,EAAUf,EAAS1yD,EAAEkgB,EACrBikD,EAAU,EAEd,IAAKvtE,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACpB87D,EAAS1yD,EAAE2wD,aAAe+B,EAAS1yD,EAAEywD,eACvC0T,EAAUzR,EAAS1yD,EAAE5J,EAAM,EAAJQ,EAAQ,IAGjCs0E,EAAIY,aAAarY,EAAY,EAAJ78D,GAAS,IAAK,QAAU68D,EAAY,EAAJ78D,EAAQ,GAAK,IAAM68D,EAAY,EAAJ78D,EAAQ,GAAK,IAAM68D,EAAY,EAAJ78D,EAAQ,GAAK,IAAMutE,EAAU,KAG9IjR,EAAUgY,IAAMA,CAClB,CAEAhY,EAAU8X,KAAOtY,EAASt8D,EAAE4jB,EAAI4wD,EAAezG,OACjD,EAEAoC,eAAe9lE,UAAU4yD,aAAe,SAAUZ,EAAWC,EAAUkY,GACrE,IAAI1X,EAAYR,EAAS16C,MACrBzd,EAAIm4D,EAASn4D,EAEbA,IAAMA,EAAE4kC,MAAQl/B,KAAKu/B,iBACvB0zB,EAAUiX,GAAK5vE,EAAEw1D,UACjBmD,EAAc,GAAI34D,EAAEy1D,WAAW,KAG7B0C,EAASxyC,EAAEif,MAAQl/B,KAAKu/B,iBAC1B0zB,EAAU+W,GAAK,OAASpzD,QAAQ67C,EAASxyC,EAAElG,EAAE,IAAM,IAAMnD,QAAQ67C,EAASxyC,EAAElG,EAAE,IAAM,IAAMnD,QAAQ67C,EAASxyC,EAAElG,EAAE,IAAM,MAGnH04C,EAASt8D,EAAE+oC,MAAQyrC,EAAe/gB,QAAU5pD,KAAKu/B,iBACnD0zB,EAAU8X,KAAOtY,EAASt8D,EAAE4jB,EAAI4wD,EAAezG,UAG7CzR,EAAS3W,EAAE5c,MAAQl/B,KAAKu/B,iBAC1B0zB,EAAUgX,GAAKxX,EAAS3W,EAAE/hC,EAE9B,EAEAusD,eAAe9lE,UAAU4kB,QAAU,WACjCplB,KAAKymD,WAAa,KAClBzmD,KAAKqqB,WAAa,KAClBrqB,KAAKylE,cAAgB,KACrBzlE,KAAK6zD,WAAWn9D,OAAS,EACzBsJ,KAAK0mD,UAAUhwD,OAAS,CAC1B,EAsBA6c,gBAAgB,CAAC6vC,YAAae,iBAAkBqhB,cAAe3Z,iBAAkBxI,aAAcxC,kBAAmB0b,cAAegK,eACjIA,cAAc/lE,UAAU88C,QAAUjqC,UAAU,UAAU2P,WAAW,MAEjEujD,cAAc/lE,UAAUq+D,aAAe,WACrC,IAAI9/C,EAAe/e,KAAK+6D,aAAaxG,YACrCv0D,KAAKq8D,gBAAkBpmD,iBAAiB8I,EAAa/iB,EAAI+iB,EAAa/iB,EAAEtF,OAAS,GACjF,IAAIo1E,GAAU,EAEV/sD,EAAak1C,IACf6X,GAAU,EACV9rE,KAAK6C,OAAO4jE,KAAOzmE,KAAKm/D,WAAWpgD,EAAak1C,KAEhDj0D,KAAK6C,OAAO4jE,KAAO,gBAGrBzmE,KAAKymE,KAAOqF,EACZ,IAAIC,GAAY,EAEZhtD,EAAa+gC,KACfisB,GAAY,EACZ/rE,KAAK6C,OAAO2jE,OAASxmE,KAAKm/D,WAAWpgD,EAAa+gC,IAClD9/C,KAAK6C,OAAO8jE,OAAS5nD,EAAai1C,IAGpC,IACIr9D,EACAwH,EAOAkhB,EACAsY,EACAza,EACAC,EACAW,EACAd,EACAC,EACAstC,EACAyhB,EACAC,EAlBAj1B,EAAWh3C,KAAKqqB,WAAWkB,YAAY40B,cAAcphC,EAAa5nB,GAGlE8gE,EAAUl5C,EAAa/iB,EACvBkhE,EAAel9D,KAAKmqD,QACxBnqD,KAAKwmE,OAASuF,EACd/rE,KAAK6C,OAAO+jE,OAAS7nD,EAAaq2C,UAAY,MAAQp1D,KAAKqqB,WAAWkB,YAAY40B,cAAcphC,EAAa5nB,GAAGomD,QAChHp/C,EAAM4gB,EAAas2C,UAAU3+D,OAY7B,IAAIirE,EAAc3hE,KAAKgO,KAAK2zD,YACxBnJ,EAAmC,KAAlBz5C,EAAau4B,GAAav4B,EAAaq2C,UACxDsH,EAAO,EACPC,EAAO,EACPa,GAAY,EACZz7B,EAAM,EAEV,IAAKprC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EAAG,CAE3BghC,GADAtY,EAAWrf,KAAKqqB,WAAWkB,YAAYw0B,YAAYhhC,EAAas2C,UAAU1+D,GAAIqgD,EAASE,OAAQl3C,KAAKqqB,WAAWkB,YAAY40B,cAAcphC,EAAa5nB,GAAGomD,WACjIl+B,EAASrR,MAAQ,CAAC,EAC1CkvD,EAAa13D,QAETm8D,GAAe1J,EAAQthE,GAAGG,IAC5B4lE,GAAQlE,EACRmE,GAAQ59C,EAAao2C,QACrBwH,GAAQa,EAAY,EAAI,EACxBA,GAAY,GAIdvgD,GADAa,EAAS6Z,EAAU7Z,OAAS6Z,EAAU7Z,OAAO,GAAGznB,GAAK,IACvCK,OACdwmE,EAAaj2B,MAAMloB,EAAaq2C,UAAY,IAAKr2C,EAAaq2C,UAAY,KAEtEuM,GACF3hE,KAAKi/D,4BAA4BlgD,EAAcm+C,EAAcjF,EAAQthE,GAAG8vB,KAAMi2C,EAAMC,GAGtFqP,EAAW/1D,iBAAiBgH,EAAO,GACnC,IAAIivD,EAAkB,EAEtB,IAAKlvD,EAAI,EAAGA,EAAIC,EAAMD,GAAK,EACzB,GAAqB,OAAjBc,EAAOd,GAAGU,GAAa,CAKzB,IAJAP,EAAOW,EAAOd,GAAGsB,GAAGpB,EAAEvmB,EAAED,OACxB6zD,EAAYzsC,EAAOd,GAAGsB,GAAGpB,EACzB+uD,EAAU,GAEL/uD,EAAI,EAAGA,EAAIC,EAAMD,GAAK,EACf,IAANA,GACF+uD,EAAQ3zE,KAAK4kE,EAAarzB,SAAS0gB,EAAUxwC,EAAE,GAAG,GAAIwwC,EAAUxwC,EAAE,GAAG,GAAI,GAAImjD,EAAapzB,SAASygB,EAAUxwC,EAAE,GAAG,GAAIwwC,EAAUxwC,EAAE,GAAG,GAAI,IAG3IkyD,EAAQ3zE,KAAK4kE,EAAarzB,SAAS0gB,EAAUp0D,EAAE+mB,EAAI,GAAG,GAAIqtC,EAAUp0D,EAAE+mB,EAAI,GAAG,GAAI,GAAIggD,EAAapzB,SAASygB,EAAUp0D,EAAE+mB,EAAI,GAAG,GAAIqtC,EAAUp0D,EAAE+mB,EAAI,GAAG,GAAI,GAAIggD,EAAarzB,SAAS0gB,EAAU5zD,EAAEumB,GAAG,GAAIqtC,EAAU5zD,EAAEumB,GAAG,GAAI,GAAIggD,EAAapzB,SAASygB,EAAU5zD,EAAEumB,GAAG,GAAIqtC,EAAU5zD,EAAEumB,GAAG,GAAI,GAAIggD,EAAarzB,SAAS0gB,EAAUxwC,EAAEmD,GAAG,GAAIqtC,EAAUxwC,EAAEmD,GAAG,GAAI,GAAIggD,EAAapzB,SAASygB,EAAUxwC,EAAEmD,GAAG,GAAIqtC,EAAUxwC,EAAEmD,GAAG,GAAI,IAG3Z+uD,EAAQ3zE,KAAK4kE,EAAarzB,SAAS0gB,EAAUp0D,EAAE+mB,EAAI,GAAG,GAAIqtC,EAAUp0D,EAAE+mB,EAAI,GAAG,GAAI,GAAIggD,EAAapzB,SAASygB,EAAUp0D,EAAE+mB,EAAI,GAAG,GAAIqtC,EAAUp0D,EAAE+mB,EAAI,GAAG,GAAI,GAAIggD,EAAarzB,SAAS0gB,EAAU5zD,EAAE,GAAG,GAAI4zD,EAAU5zD,EAAE,GAAG,GAAI,GAAIumE,EAAapzB,SAASygB,EAAU5zD,EAAE,GAAG,GAAI4zD,EAAU5zD,EAAE,GAAG,GAAI,GAAIumE,EAAarzB,SAAS0gB,EAAUxwC,EAAE,GAAG,GAAIwwC,EAAUxwC,EAAE,GAAG,GAAI,GAAImjD,EAAapzB,SAASygB,EAAUxwC,EAAE,GAAG,GAAIwwC,EAAUxwC,EAAE,GAAG,GAAI,IACzZiyD,EAASE,GAAmBD,EAC5BC,GAAmB,CACrB,CAGEvK,IACFjF,GAAQzE,EAAQthE,GAAGqF,EACnB0gE,GAAQlE,GAGNx4D,KAAKw/D,UAAUz9B,GACjB/hC,KAAKw/D,UAAUz9B,GAAK3R,KAAO47C,EAE3BhsE,KAAKw/D,UAAUz9B,GAAO,CACpB3R,KAAM47C,GAIVjqC,GAAO,CACT,CACF,EAEAwkC,cAAc/lE,UAAU4tD,mBAAqB,WAC3C,IAUIz3D,EACAwH,EACA6e,EACAC,EACAC,EACAC,EAfA4F,EAAM/iB,KAAKylE,cACf1iD,EAAIq5B,KAAOp8C,KAAK6C,OAAO+jE,OACvB7jD,EAAImoD,QAAU,OACdnoD,EAAI4yB,SAAW,QACf5yB,EAAI6yB,WAAa,EAEZ51C,KAAKgO,KAAK2zD,aACb3hE,KAAK4+D,aAAanC,YAAYz8D,KAAK+6D,aAAaxG,YAAav0D,KAAKs8D,oBASpE,IAGIyG,EAHA1G,EAAkBr8D,KAAK4+D,aAAavC,gBACpCpE,EAAUj4D,KAAK+6D,aAAaxG,YAAYv4D,EAC5CmC,EAAM85D,EAAQvhE,OAEd,IAGIs1E,EACAC,EAJAE,EAAW,KACXC,EAAa,KACbC,EAAc,KAIlB,IAAK11E,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACxB,IAAKshE,EAAQthE,GAAGG,EAAG,CASjB,IARAisE,EAAiB1G,EAAgB1lE,MAG/BqJ,KAAKqqB,WAAWtB,SAAS+8C,OACzB9lE,KAAKqqB,WAAWtB,SAAS2gD,aAAa3G,EAAenmE,GACrDoD,KAAKqqB,WAAWtB,SAAS4gD,WAAW5G,EAAe5sE,IAGjD6J,KAAKymE,KAAM,CAeb,IAdI1D,GAAkBA,EAAe9O,GAC/BkY,IAAapJ,EAAe9O,KAC9BkY,EAAWpJ,EAAe9O,GAC1BlxC,EAAIE,UAAY8/C,EAAe9O,IAExBkY,IAAansE,KAAK6C,OAAO4jE,OAClC0F,EAAWnsE,KAAK6C,OAAO4jE,KACvB1jD,EAAIE,UAAYjjB,KAAK6C,OAAO4jE,MAI9BxpD,GADA+uD,EAAWhsE,KAAKw/D,UAAU7oE,GAAGy5B,MACb15B,OAChBsJ,KAAKqqB,WAAWo7C,cAAcC,YAEzB1oD,EAAI,EAAGA,EAAIC,EAAMD,GAAK,EAKzB,IAHAG,GADA8uD,EAAUD,EAAShvD,IACJtmB,OACfsJ,KAAKqqB,WAAWo7C,cAAcE,OAAOsG,EAAQ,GAAIA,EAAQ,IAEpD/uD,EAAI,EAAGA,EAAIC,EAAMD,GAAK,EACzBld,KAAKqqB,WAAWo7C,cAAcI,cAAcoG,EAAQ/uD,GAAI+uD,EAAQ/uD,EAAI,GAAI+uD,EAAQ/uD,EAAI,GAAI+uD,EAAQ/uD,EAAI,GAAI+uD,EAAQ/uD,EAAI,GAAI+uD,EAAQ/uD,EAAI,IAIxIld,KAAKqqB,WAAWo7C,cAAc4F,YAC9BrrE,KAAKqqB,WAAWo7C,cAAcgB,MAChC,CAEA,GAAIzmE,KAAKwmE,OAAQ,CAyBf,IAxBIzD,GAAkBA,EAAe/O,GAC/BqY,IAAgBtJ,EAAe/O,KACjCqY,EAActJ,EAAe/O,GAC7BjxC,EAAIu1C,UAAYyK,EAAe/O,IAExBqY,IAAgBrsE,KAAK6C,OAAO8jE,SACrC0F,EAAcrsE,KAAK6C,OAAO8jE,OAC1B5jD,EAAIu1C,UAAYt4D,KAAK6C,OAAO8jE,QAG1B5D,GAAkBA,EAAejjB,GAC/BssB,IAAerJ,EAAejjB,KAChCssB,EAAarJ,EAAejjB,GAC5B/8B,EAAIioD,YAAcjI,EAAejjB,IAE1BssB,IAAepsE,KAAK6C,OAAO2jE,SACpC4F,EAAapsE,KAAK6C,OAAO2jE,OACzBzjD,EAAIioD,YAAchrE,KAAK6C,OAAO2jE,QAIhCvpD,GADA+uD,EAAWhsE,KAAKw/D,UAAU7oE,GAAGy5B,MACb15B,OAChBsJ,KAAKqqB,WAAWo7C,cAAcC,YAEzB1oD,EAAI,EAAGA,EAAIC,EAAMD,GAAK,EAKzB,IAHAG,GADA8uD,EAAUD,EAAShvD,IACJtmB,OACfsJ,KAAKqqB,WAAWo7C,cAAcE,OAAOsG,EAAQ,GAAIA,EAAQ,IAEpD/uD,EAAI,EAAGA,EAAIC,EAAMD,GAAK,EACzBld,KAAKqqB,WAAWo7C,cAAcI,cAAcoG,EAAQ/uD,GAAI+uD,EAAQ/uD,EAAI,GAAI+uD,EAAQ/uD,EAAI,GAAI+uD,EAAQ/uD,EAAI,GAAI+uD,EAAQ/uD,EAAI,GAAI+uD,EAAQ/uD,EAAI,IAIxIld,KAAKqqB,WAAWo7C,cAAc4F,YAC9BrrE,KAAKqqB,WAAWo7C,cAAce,QAChC,CAEIzD,GACF/iE,KAAKqqB,WAAWtB,SAAS6gD,SAE7B,CAEJ,EAQAr2D,gBAAgB,CAAC6vC,YAAae,iBAAkBqhB,cAAe3Z,iBAAkBxI,aAAcxC,mBAAoBgmB,gBACnHA,eAAermE,UAAUwrD,YAAc4H,gBAAgBpzD,UAAUwrD,YACjE6a,eAAermE,UAAUmnB,aAAeokC,cAAcvrD,UAAUmnB,aAEhEk/C,eAAermE,UAAU2tD,cAAgB,WACvC,GAAInuD,KAAKikB,IAAIpB,QAAU7iB,KAAK2jB,UAAUm4B,IAAM97C,KAAKikB,IAAIpB,OAAS7iB,KAAK2jB,UAAUloB,IAAMuE,KAAKikB,IAAInB,QAAS,CACnG,IAAIF,EAASvP,UAAU,UACvBuP,EAAOC,MAAQ7iB,KAAK2jB,UAAUm4B,EAC9Bl5B,EAAOE,OAAS9iB,KAAK2jB,UAAUloB,EAC/B,IAKI6wE,EACAC,EANAxpD,EAAMH,EAAOI,WAAW,MACxBwpD,EAAOxsE,KAAKikB,IAAIpB,MAChB4pD,EAAOzsE,KAAKikB,IAAInB,OAChB4pD,EAASF,EAAOC,EAChBE,EAAY3sE,KAAK2jB,UAAUm4B,EAAI97C,KAAK2jB,UAAUloB,EAG9CmxE,EAAM5sE,KAAK2jB,UAAU2qC,IAAMtuD,KAAKqqB,WAAWw3B,aAAa0M,yBAExDme,EAASC,GAAqB,mBAARC,GAA4BF,EAASC,GAAqB,mBAARC,EAE1EN,GADAC,EAAaE,GACYE,EAGzBJ,GADAD,EAAYE,GACaG,EAG3B5pD,EAAIumD,UAAUtpE,KAAKikB,KAAMuoD,EAAOF,GAAa,GAAIG,EAAOF,GAAc,EAAGD,EAAWC,EAAY,EAAG,EAAGvsE,KAAK2jB,UAAUm4B,EAAG97C,KAAK2jB,UAAUloB,GACvIuE,KAAKikB,IAAMrB,CACb,CACF,EAEAikD,eAAermE,UAAU4tD,mBAAqB,WAC5CpuD,KAAKylE,cAAc6D,UAAUtpE,KAAKikB,IAAK,EAAG,EAC5C,EAEA4iD,eAAermE,UAAU4kB,QAAU,WACjCplB,KAAKikB,IAAM,IACb,EAMA1Q,gBAAgB,CAAC6vC,YAAae,iBAAkBqhB,cAAe3Z,iBAAkBxI,aAAcxC,mBAAoBimB,gBACnHA,eAAetmE,UAAUwrD,YAAc4H,gBAAgBpzD,UAAUwrD,YACjE8a,eAAetmE,UAAUmnB,aAAeokC,cAAcvrD,UAAUmnB,aAEhEm/C,eAAetmE,UAAU4tD,mBAAqB,WAC5C,IAAIrrC,EAAM/iB,KAAKylE,cACf1iD,EAAIE,UAAYjjB,KAAKgO,KAAK8xC,GAC1B/8B,EAAIG,SAAS,EAAG,EAAGljB,KAAKgO,KAAKgmD,GAAIh0D,KAAKgO,KAAKquB,GAC7C,EAmCA9oB,gBAAgB,CAAC2wC,cAAe6iB,oBAEhCA,mBAAmBvmE,UAAU8nD,YAAc,SAAUt6C,GACnD,OAAO,IAAIs4D,eAAet4D,EAAMhO,KAAKqqB,WAAYrqB,KACnD,EAEA+mE,mBAAmBvmE,UAAU+nD,WAAa,SAAUv6C,GAClD,OAAO,IAAIu4D,cAAcv4D,EAAMhO,KAAKqqB,WAAYrqB,KAClD,EAEA+mE,mBAAmBvmE,UAAU0nD,YAAc,SAAUl6C,GACnD,OAAO,IAAI64D,eAAe74D,EAAMhO,KAAKqqB,WAAYrqB,KACnD,EAEA+mE,mBAAmBvmE,UAAU4nD,YAAc,SAAUp6C,GACnD,OAAO,IAAI84D,eAAe94D,EAAMhO,KAAKqqB,WAAYrqB,KACnD,EAEA+mE,mBAAmBvmE,UAAU6nD,WAAa0X,YAAYv/D,UAAU6nD,WAEhE0e,mBAAmBvmE,UAAUkpE,aAAe,SAAUhhE,GACpD,GAAiB,IAAbA,EAAM,IAAyB,IAAbA,EAAM,IAAyB,IAAbA,EAAM,IAAyB,IAAbA,EAAM,IAA0B,IAAdA,EAAM,KAA2B,IAAdA,EAAM,IAIrG,GAAK1I,KAAK6hD,aAAamlB,YAAvB,CAMAhnE,KAAKqnE,aAAa39B,eAAehhC,GAEjC,IAAIkuD,EAAmB52D,KAAKonE,YAAYjD,eACpC0I,EAASjW,EAAiBluD,MAE9B1I,KAAKqnE,aAAa9/B,UAAUslC,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,GAAIA,EAAO,IAAKA,EAAO,IAAKA,EAAO,IAAKA,EAAO,IAAKA,EAAO,IAAKA,EAAO,KAE7MjW,EAAiBltB,eAAe1pC,KAAKqnE,aAAa3+D,OAClD,IAAIokE,EAAUlW,EAAiBluD,MAE/B1I,KAAKylE,cAAct+B,aAAa2lC,EAAQ,GAAIA,EAAQ,GAAIA,EAAQ,GAAIA,EAAQ,GAAIA,EAAQ,IAAKA,EAAQ,IAbrG,MAFE9sE,KAAKylE,cAAcl+B,UAAU7+B,EAAM,GAAIA,EAAM,GAAIA,EAAM,GAAIA,EAAM,GAAIA,EAAM,IAAKA,EAAM,IAgB1F,EAEAq+D,mBAAmBvmE,UAAUmpE,WAAa,SAAUpqD,GAIlD,IAAIwtD,EAAiB/sE,KAAKonE,YAAYhD,aAEtC,IAAKpkE,KAAK6hD,aAAamlB,YAGrB,OAFAhnE,KAAKylE,cAAcuH,aAAeztD,EAAK,EAAI,EAAIA,OAC/Cvf,KAAKqqB,WAAW88C,mBAAqB4F,GAIvCA,GAAkBxtD,EAAK,EAAI,EAAIA,EAC/Bvf,KAAKonE,YAAY/C,WAAW0I,GAExB/sE,KAAKqqB,WAAW88C,qBAAuB4F,IACzC/sE,KAAKylE,cAAcuH,YAAcD,EACjC/sE,KAAKqqB,WAAW88C,mBAAqB4F,EAEzC,EAEAhG,mBAAmBvmE,UAAUgF,MAAQ,WAC9BxF,KAAK6hD,aAAamlB,YAKvBhnE,KAAKonE,YAAY5hE,QAJfxF,KAAKylE,cAAcmE,SAKvB,EAEA7C,mBAAmBvmE,UAAUslE,KAAO,SAAUmH,GACvCjtE,KAAK6hD,aAAamlB,aAKnBiG,GACFjtE,KAAKylE,cAAcK,OAGrB9lE,KAAKonE,YAAY9uE,QARf0H,KAAKylE,cAAcK,MASvB,EAEAiB,mBAAmBvmE,UAAUopE,QAAU,SAAUqD,GAC/C,GAAKjtE,KAAK6hD,aAAamlB,YAAvB,CAKIiG,IACFjtE,KAAKylE,cAAcmE,UACnB5pE,KAAKqqB,WAAW0+C,UAAY,eAG9B,IAAI/E,EAAShkE,KAAKonE,YAAY7nE,MAC1BgoC,EAAYy8B,EAAOz8B,UACnB28B,EAAUF,EAAOE,QACrBlkE,KAAKylE,cAAct+B,aAAaI,EAAU,GAAIA,EAAU,GAAIA,EAAU,GAAIA,EAAU,GAAIA,EAAU,IAAKA,EAAU,KAE7GvnC,KAAKqqB,WAAW88C,qBAAuBjD,IACzClkE,KAAKylE,cAAcuH,YAAc9I,EACjClkE,KAAKqqB,WAAW88C,mBAAqBjD,EAdvC,MAFElkE,KAAKylE,cAAcmE,SAkBvB,EAEA7C,mBAAmBvmE,UAAUkpB,gBAAkB,SAAUyC,GACvD,GAAInsB,KAAKwpD,cAAcx/B,QAAS,CAC9BhqB,KAAKwpD,cAAcv/B,UAAY5W,UAAU,UACzC,IAAI65D,EAAiBltE,KAAKwpD,cAAcv/B,UAAUlS,MAClDm1D,EAAerqD,MAAQ,OACvBqqD,EAAepqD,OAAS,OACxB,IAAIT,EAAS,cACb6qD,EAAe90D,gBAAkBiK,EACjC6qD,EAAeC,mBAAqB9qD,EACpC6qD,EAAe70D,sBAAwBgK,EACvC6qD,EAAe,qBAAuB7qD,EACtC6qD,EAAezM,kBAAoBzgE,KAAK6hD,aAAa4e,kBACrDzgE,KAAKwpD,cAAcx/B,QAAQnE,YAAY7lB,KAAKwpD,cAAcv/B,WAC1DjqB,KAAKylE,cAAgBzlE,KAAKwpD,cAAcv/B,UAAUjH,WAAW,MAEzDhjB,KAAK6hD,aAAa+e,WACpB5gE,KAAKwpD,cAAcv/B,UAAUgH,aAAa,QAASjxB,KAAK6hD,aAAa+e,WAGnE5gE,KAAK6hD,aAAa7jC,IACpBhe,KAAKwpD,cAAcv/B,UAAUgH,aAAa,KAAMjxB,KAAK6hD,aAAa7jC,GAEtE,MACEhe,KAAKylE,cAAgBzlE,KAAK6hD,aAAa9/C,QAGzC/B,KAAKgO,KAAOme,EACZnsB,KAAK6c,OAASsP,EAAStP,OACvB7c,KAAK8oE,gBAAkB,CACrBhtB,EAAG3vB,EAAS2vB,EACZrgD,EAAG0wB,EAAS1wB,EACZqrC,GAAI,EACJzC,GAAI,EACJgD,GAAI,EACJ3pB,GAAI,GAEN1d,KAAKspD,gBAAgBn9B,EAAUrd,SAASoiB,MACxClxB,KAAKqqB,WAAWo7C,cAAgBzlE,KAAKylE,cACrCzlE,KAAKqqB,WAAWtB,SAAW/oB,KAC3BA,KAAKqqB,WAAW+iD,UAAW,EAC3BptE,KAAKqqB,WAAWu+B,gBAAkB5oD,KAAK6hD,aAAa+G,gBACpD5oD,KAAKqqB,WAAWy+C,gBAAkB9oE,KAAK8oE,gBACvC9oE,KAAKu4C,SAAWtiC,iBAAiBkW,EAAStP,OAAOnmB,QACjDsJ,KAAKgtB,qBACP,EAEA+5C,mBAAmBvmE,UAAUwsB,oBAAsB,SAAUnK,EAAOC,GAElE,IAAIuqD,EACAC,EAoBAC,EACAC,EAEJ,GAzBAxtE,KAAKwF,QAIDqd,GACFwqD,EAAexqD,EACfyqD,EAAgBxqD,EAChB9iB,KAAKylE,cAAc7iD,OAAOC,MAAQwqD,EAClCrtE,KAAKylE,cAAc7iD,OAAOE,OAASwqD,IAE/BttE,KAAKwpD,cAAcx/B,SAAWhqB,KAAKwpD,cAAcv/B,WACnDojD,EAAertE,KAAKwpD,cAAcx/B,QAAQ4yB,YAC1C0wB,EAAgBttE,KAAKwpD,cAAcx/B,QAAQyjD,eAE3CJ,EAAertE,KAAKylE,cAAc7iD,OAAOC,MACzCyqD,EAAgBttE,KAAKylE,cAAc7iD,OAAOE,QAG5C9iB,KAAKylE,cAAc7iD,OAAOC,MAAQwqD,EAAertE,KAAK6hD,aAAaolB,IACnEjnE,KAAKylE,cAAc7iD,OAAOE,OAASwqD,EAAgBttE,KAAK6hD,aAAaolB,MAMR,IAA3DjnE,KAAK6hD,aAAa2e,oBAAoB/vD,QAAQ,UAA8E,IAA5DzQ,KAAK6hD,aAAa2e,oBAAoB/vD,QAAQ,SAAiB,CACjI,IAAIm8D,EAAM5sE,KAAK6hD,aAAa2e,oBAAoBn1D,MAAM,KAClDqiE,EAAWd,EAAI,IAAM,OACrBzrC,EAAMyrC,EAAI,IAAM,WAChBlQ,EAAOv7B,EAAIvW,OAAO,EAAG,GACrB+xC,EAAOx7B,EAAIvW,OAAO,GACtB2iD,EAAaF,EAAeC,GAC5BE,EAAextE,KAAK8oE,gBAAgBhtB,EAAI97C,KAAK8oE,gBAAgBrtE,GAE1C8xE,GAA2B,SAAbG,GAAuBF,EAAeD,GAA2B,UAAbG,GACnF1tE,KAAK8oE,gBAAgBhiC,GAAKumC,GAAgBrtE,KAAK8oE,gBAAgBhtB,EAAI97C,KAAK6hD,aAAaolB,KACrFjnE,KAAK8oE,gBAAgBzkC,GAAKgpC,GAAgBrtE,KAAK8oE,gBAAgBhtB,EAAI97C,KAAK6hD,aAAaolB,OAErFjnE,KAAK8oE,gBAAgBhiC,GAAKwmC,GAAiBttE,KAAK8oE,gBAAgBrtE,EAAIuE,KAAK6hD,aAAaolB,KACtFjnE,KAAK8oE,gBAAgBzkC,GAAKipC,GAAiBttE,KAAK8oE,gBAAgBrtE,EAAIuE,KAAK6hD,aAAaolB,MAItFjnE,KAAK8oE,gBAAgBzhC,GADV,SAATq1B,IAAoB8Q,EAAeD,GAA2B,SAAbG,GAAuBF,EAAeD,GAA2B,UAAbG,IAC5EL,EAAertE,KAAK8oE,gBAAgBhtB,GAAKwxB,EAAgBttE,KAAK8oE,gBAAgBrtE,IAAM,EAAIuE,KAAK6hD,aAAaolB,IACnH,SAATvK,IAAoB8Q,EAAeD,GAA2B,SAAbG,GAAuBF,EAAeD,GAA2B,UAAbG,IACnFL,EAAertE,KAAK8oE,gBAAgBhtB,GAAKwxB,EAAgBttE,KAAK8oE,gBAAgBrtE,IAAMuE,KAAK6hD,aAAaolB,IAEvG,EAI1BjnE,KAAK8oE,gBAAgBprD,GADV,SAATi/C,IAAoB6Q,EAAeD,GAA2B,SAAbG,GAAuBF,EAAeD,GAA2B,UAAbG,IAC5EJ,EAAgBttE,KAAK8oE,gBAAgBrtE,GAAK4xE,EAAertE,KAAK8oE,gBAAgBhtB,IAAM,EAAI97C,KAAK6hD,aAAaolB,IACnH,SAATtK,IAAoB6Q,EAAeD,GAA2B,SAAbG,GAAuBF,EAAeD,GAA2B,UAAbG,IACnFJ,EAAgBttE,KAAK8oE,gBAAgBrtE,GAAK4xE,EAAertE,KAAK8oE,gBAAgBhtB,IAAM97C,KAAK6hD,aAAaolB,IAEvG,CAE9B,KAAqD,SAA1CjnE,KAAK6hD,aAAa2e,qBAC3BxgE,KAAK8oE,gBAAgBhiC,GAAKumC,GAAgBrtE,KAAK8oE,gBAAgBhtB,EAAI97C,KAAK6hD,aAAaolB,KACrFjnE,KAAK8oE,gBAAgBzkC,GAAKipC,GAAiBttE,KAAK8oE,gBAAgBrtE,EAAIuE,KAAK6hD,aAAaolB,KACtFjnE,KAAK8oE,gBAAgBzhC,GAAK,EAC1BrnC,KAAK8oE,gBAAgBprD,GAAK,IAE1B1d,KAAK8oE,gBAAgBhiC,GAAK9mC,KAAK6hD,aAAaolB,IAC5CjnE,KAAK8oE,gBAAgBzkC,GAAKrkC,KAAK6hD,aAAaolB,IAC5CjnE,KAAK8oE,gBAAgBzhC,GAAK,EAC1BrnC,KAAK8oE,gBAAgBprD,GAAK,GAG5B1d,KAAK8oE,gBAAgBpgE,MAAQ,CAAC1I,KAAK8oE,gBAAgBhiC,GAAI,EAAG,EAAG,EAAG,EAAG9mC,KAAK8oE,gBAAgBzkC,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAGrkC,KAAK8oE,gBAAgBzhC,GAAIrnC,KAAK8oE,gBAAgBprD,GAAI,EAAG,GAQnK1d,KAAK0pE,aAAa1pE,KAAK8oE,gBAAgBpgE,OACvC1I,KAAKylE,cAAcC,YACnB1lE,KAAKylE,cAAcjhB,KAAK,EAAG,EAAGxkD,KAAK8oE,gBAAgBhtB,EAAG97C,KAAK8oE,gBAAgBrtE,GAC3EuE,KAAKylE,cAAc4F,YACnBrrE,KAAKylE,cAAcM,OACnB/lE,KAAKktB,YAAYltB,KAAK2+B,eAAe,EACvC,EAEAooC,mBAAmBvmE,UAAU4kB,QAAU,WAKrC,IAAIzuB,EAGJ,IAPIqJ,KAAK6hD,aAAamlB,aAAehnE,KAAKwpD,cAAcx/B,UACtDhqB,KAAKwpD,cAAcx/B,QAAQoH,UAAY,IAMpCz6B,GAFKqJ,KAAK6c,OAAS7c,KAAK6c,OAAOnmB,OAAS,GAE9B,EAAGC,GAAK,EAAGA,GAAK,EACzBqJ,KAAKu4C,SAAS5hD,IAAMqJ,KAAKu4C,SAAS5hD,GAAGyuB,SACvCplB,KAAKu4C,SAAS5hD,GAAGyuB,UAIrBplB,KAAKu4C,SAAS7hD,OAAS,EACvBsJ,KAAKqqB,WAAWo7C,cAAgB,KAChCzlE,KAAKwpD,cAAcv/B,UAAY,KAC/BjqB,KAAKghE,WAAY,CACnB,EAEA+F,mBAAmBvmE,UAAU0sB,YAAc,SAAUs0B,EAAKpR,GACxD,IAAIpwC,KAAK2+B,gBAAkB6iB,IAAyC,IAAlCxhD,KAAK6hD,aAAamlB,aAAyB52B,KAAepwC,KAAKghE,YAAsB,IAATxf,EAA9G,CAWA,IAAI7qD,EAPJqJ,KAAK2+B,cAAgB6iB,EACrBxhD,KAAKqqB,WAAWgQ,SAAWmnB,EAAMxhD,KAAKwpD,cAAcjqB,cACpDv/B,KAAKqqB,WAAW+U,SAAW,EAC3Bp/B,KAAKqqB,WAAW6U,MAAQl/B,KAAK6hD,aAAamlB,aAAe52B,EACzDpwC,KAAKqqB,WAAWd,iBAAiB1B,aAAe25B,EAIhD,IAAIrjD,EAAM6B,KAAK6c,OAAOnmB,OAMtB,IAJKsJ,KAAK4c,gBACR5c,KAAK6nD,YAAYrG,GAGd7qD,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,GACpBqJ,KAAK4c,gBAAkB5c,KAAKu4C,SAAS5hD,KACvCqJ,KAAKu4C,SAAS5hD,GAAGgxB,aAAa65B,EAAMxhD,KAAK6c,OAAOlmB,GAAG6oB,IAIvD,GAAIxf,KAAKqqB,WAAW6U,KAAM,CAOxB,KANsC,IAAlCl/B,KAAK6hD,aAAamlB,YACpBhnE,KAAKylE,cAAc0D,UAAU,EAAG,EAAGnpE,KAAK8oE,gBAAgBhtB,EAAG97C,KAAK8oE,gBAAgBrtE,GAEhFuE,KAAK8lE,OAGFnvE,EAAIwH,EAAM,EAAGxH,GAAK,EAAGA,GAAK,GACzBqJ,KAAK4c,gBAAkB5c,KAAKu4C,SAAS5hD,KACvCqJ,KAAKu4C,SAAS5hD,GAAGu2B,eAIiB,IAAlCltB,KAAK6hD,aAAamlB,aACpBhnE,KAAK4pE,SAET,CAtCA,CAuCF,EAEA7C,mBAAmBvmE,UAAUsnD,UAAY,SAAU3mB,GACjD,IAAIoX,EAAWv4C,KAAKu4C,SAEpB,IAAIA,EAASpX,IAAgC,KAAxBnhC,KAAK6c,OAAOskB,GAAKzjB,GAAtC,CAIA,IAAI5F,EAAU9X,KAAKgoD,WAAWhoD,KAAK6c,OAAOskB,GAAMnhC,KAAMA,KAAKqqB,YAC3DkuB,EAASpX,GAAOrpB,EAChBA,EAAQ4T,iBAJR,CAQF,EAEAq7C,mBAAmBvmE,UAAUunD,qBAAuB,WAClD,KAAO/nD,KAAKmpD,gBAAgBzyD,QACZsJ,KAAKmpD,gBAAgB5pD,MAC3B2uD,gBAEZ,EAEA6Y,mBAAmBvmE,UAAU4uB,KAAO,WAClCpvB,KAAKwpD,cAAcv/B,UAAUlS,MAAMI,QAAU,MAC/C,EAEA4uD,mBAAmBvmE,UAAU6uB,KAAO,WAClCrvB,KAAKwpD,cAAcv/B,UAAUlS,MAAMI,QAAU,OAC/C,EAaA5E,gBAAgB,CAACwzD,mBAAoBnH,aAAc4F,eAAgB8B,eAEnEA,cAAc9mE,UAAU4tD,mBAAqB,WAC3C,IAQIz3D,EARAosB,EAAM/iB,KAAKylE,cAWf,IAVA1iD,EAAI2iD,YACJ3iD,EAAI4iD,OAAO,EAAG,GACd5iD,EAAI6iD,OAAO5lE,KAAKgO,KAAK8tC,EAAG,GACxB/4B,EAAI6iD,OAAO5lE,KAAKgO,KAAK8tC,EAAG97C,KAAKgO,KAAKvS,GAClCsnB,EAAI6iD,OAAO,EAAG5lE,KAAKgO,KAAKvS,GACxBsnB,EAAI6iD,OAAO,EAAG,GACd7iD,EAAIgjD,OAICpvE,EAFKqJ,KAAK6c,OAAOnmB,OAEP,EAAGC,GAAK,EAAGA,GAAK,GACzBqJ,KAAK4c,gBAAkB5c,KAAKu4C,SAAS5hD,KACvCqJ,KAAKu4C,SAAS5hD,GAAGu2B,aAGvB,EAEAo6C,cAAc9mE,UAAU4kB,QAAU,WAChC,IAAIzuB,EAGJ,IAAKA,EAFKqJ,KAAK6c,OAAOnmB,OAEP,EAAGC,GAAK,EAAGA,GAAK,EACzBqJ,KAAKu4C,SAAS5hD,IAChBqJ,KAAKu4C,SAAS5hD,GAAGyuB,UAIrBplB,KAAK6c,OAAS,KACd7c,KAAKu4C,SAAW,IAClB,EAEA+uB,cAAc9mE,UAAU2nD,WAAa,SAAUn6C,GAC7C,OAAO,IAAIs5D,cAAct5D,EAAMhO,KAAKqqB,WAAYrqB,KAClD,EAoCAuT,gBAAgB,CAACwzD,oBAAqBQ,gBAEtCA,eAAe/mE,UAAU2nD,WAAa,SAAUn6C,GAC9C,OAAO,IAAIs5D,cAAct5D,EAAMhO,KAAKqqB,WAAYrqB,KAClD,EAIAwnE,aAAahnE,UAAY,CACvBmtE,eAAgB,WAA2B,EAC3CvhB,oBAAqB,WACnBpsD,KAAKgnD,YAAc3zC,UAAUrT,KAAKgO,KAAK4/D,IAAM,OAEzC5tE,KAAKgO,KAAKqP,SACZrd,KAAKigE,WAAa1kD,SAAS,OAC3Bvb,KAAKinD,aAAe1rC,SAAS,KAC7Bvb,KAAK0lD,cAAgB1lD,KAAKinD,aAC1BjnD,KAAKigE,WAAWp6C,YAAY7lB,KAAKinD,cACjCjnD,KAAKgnD,YAAYnhC,YAAY7lB,KAAKigE,aAElCjgE,KAAKinD,aAAejnD,KAAKgnD,YAG3BnvC,SAAS7X,KAAKgnD,YAChB,EACAqF,wBAAyB,WACvBrsD,KAAKqtD,yBAA2B,IAAIgY,UAAUrlE,MAC9CA,KAAKusD,mBAAqBvsD,KAAKgnD,YAC/BhnD,KAAK0lD,cAAgB1lD,KAAKinD,aAEtBjnD,KAAKgO,KAAK6+C,IACZ7sD,KAAKinD,aAAah2B,aAAa,KAAMjxB,KAAKgO,KAAK6+C,IAG7C7sD,KAAKgO,KAAKqS,IACZrgB,KAAKinD,aAAah2B,aAAa,QAASjxB,KAAKgO,KAAKqS,IAG/B,IAAjBrgB,KAAKgO,KAAK+4C,IACZ/mD,KAAK6mD,cAET,EACAqG,cAAe,WACb,IAAI2gB,EAA0B7tE,KAAKusD,mBAAqBvsD,KAAKusD,mBAAmBx0C,MAAQ,CAAC,EAEzF,GAAI/X,KAAK2hD,eAAegI,QAAS,CAC/B,IAAImkB,EAAc9tE,KAAK2hD,eAAexR,IAAIrF,QAC1C+iC,EAAwBtmC,UAAYumC,EACpCD,EAAwBE,gBAAkBD,CAC5C,CAEI9tE,KAAK2hD,eAAeiI,SACtBikB,EAAwB3J,QAAUlkE,KAAK2hD,eAAeC,MAAMzrD,EAAE4jB,EAElE,EACAmT,YAAa,WAGPltB,KAAKgO,KAAK8+C,IAAM9sD,KAAKihD,SAIzBjhD,KAAK8pD,kBACL9pD,KAAK+hD,mBACL/hD,KAAKktD,gBACLltD,KAAKouD,qBAEDpuD,KAAKu/B,gBACPv/B,KAAKu/B,eAAgB,GAEzB,EACAna,QAAS,WACPplB,KAAKinD,aAAe,KACpBjnD,KAAKusD,mBAAqB,KAEtBvsD,KAAKssD,eACPtsD,KAAKssD,aAAe,MAGlBtsD,KAAKmmD,cACPnmD,KAAKmmD,YAAY/gC,UACjBplB,KAAKmmD,YAAc,KAEvB,EACAiH,2BAA4B,WAC1BptD,KAAKmmD,YAAc,IAAI/B,YAAYpkD,KAAKgO,KAAMhO,KAAMA,KAAKqqB,WAC3D,EACA2jD,WAAY,WAAuB,EACnChgB,SAAU,WAAqB,GAEjCwZ,aAAahnE,UAAU+mD,eAAiBqE,eAAeprD,UAAU+mD,eACjEigB,aAAahnE,UAAU2sD,mBAAqBqa,aAAahnE,UAAU4kB,QACnEoiD,aAAahnE,UAAUqoD,sBAAwB3E,aAAa1jD,UAAUqoD,sBAMtEt1C,gBAAgB,CAAC6vC,YAAae,iBAAkBqjB,aAAc3b,iBAAkBxI,aAAcyI,sBAAuB2b,eAErHA,cAAcjnE,UAAU2tD,cAAgB,WACtC,IAAI3J,EAEAxkD,KAAKgO,KAAKqP,UACZmnC,EAAOjpC,SAAS,SACX0V,aAAa,QAASjxB,KAAKgO,KAAKgmD,IACrCxP,EAAKvzB,aAAa,SAAUjxB,KAAKgO,KAAKquB,IACtCmoB,EAAKvzB,aAAa,OAAQjxB,KAAKgO,KAAK8xC,IACpC9/C,KAAKigE,WAAWhvC,aAAa,QAASjxB,KAAKgO,KAAKgmD,IAChDh0D,KAAKigE,WAAWhvC,aAAa,SAAUjxB,KAAKgO,KAAKquB,OAEjDmoB,EAAOnxC,UAAU,QACZ0E,MAAM8K,MAAQ7iB,KAAKgO,KAAKgmD,GAAK,KAClCxP,EAAKzsC,MAAM+K,OAAS9iB,KAAKgO,KAAKquB,GAAK,KACnCmoB,EAAKzsC,MAAMk2D,gBAAkBjuE,KAAKgO,KAAK8xC,IAGzC9/C,KAAKinD,aAAaphC,YAAY2+B,EAChC,EA8BAjxC,gBAAgB,CAAC6vC,YAAae,iBAAkBsjB,cAAe7T,gBAAiB4T,aAAc3b,iBAAkBxI,aAAcxC,mBAAoB6mB,eAClJA,cAAclnE,UAAU0tE,kBAAoBxG,cAAclnE,UAAU4tD,mBAEpEsZ,cAAclnE,UAAU2tD,cAAgB,WACtC,IAAInV,EAGJ,GAFAh5C,KAAKgnD,YAAYjvC,MAAMwkC,SAAW,EAE9Bv8C,KAAKgO,KAAKqP,QACZrd,KAAKinD,aAAaphC,YAAY7lB,KAAK2nE,iBACnC3uB,EAAOh5C,KAAKigE,eACP,CACLjnB,EAAOz9B,SAAS,OAChB,IAAIwgC,EAAO/7C,KAAKie,KAAKjQ,KAAOhO,KAAKie,KAAKjQ,KAAOhO,KAAKqqB,WAAWo/B,SAC7DzQ,EAAK/nB,aAAa,QAAS8qB,EAAKD,GAChC9C,EAAK/nB,aAAa,SAAU8qB,EAAKtgD,GACjCu9C,EAAKnzB,YAAY7lB,KAAK2nE,iBACtB3nE,KAAKinD,aAAaphC,YAAYmzB,EAChC,CAEAh5C,KAAK61D,aAAa71D,KAAKymD,WAAYzmD,KAAK0mD,UAAW1mD,KAAK+wD,aAAc/wD,KAAK2nE,gBAAiB,EAAG,IAAI,GACnG3nE,KAAK81D,qBACL91D,KAAKmuE,UAAYn1B,CACnB,EAEA0uB,cAAclnE,UAAU4tE,oBAAsB,SAAUjf,EAAc34B,GACpE,IAAI7/B,EACAwH,EAAMgxD,EAAaz4D,OAEvB,IAAKC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACxB6/B,EAAQ24B,EAAax4D,GAAGojD,OAAOhgC,EAAEqwB,kBAAkB5T,EAAM,GAAIA,EAAM,GAAI,GAGzE,OAAOA,CACT,EAEAkxC,cAAclnE,UAAU6tE,0BAA4B,SAAUC,EAAMr8B,GAClE,IAEIt7C,EAEA43E,EACAC,EACAC,EACAC,EAPAvsC,EAAQmsC,EAAKjyC,GAAGtiB,EAChBo1C,EAAemf,EAAKnf,aAEpBhxD,EAAMgkC,EAAMzN,QAMhB,KAAIv2B,GAAO,GAAX,CAIA,IAAKxH,EAAI,EAAGA,EAAIwH,EAAM,EAAGxH,GAAK,EAC5B43E,EAASvuE,KAAKouE,oBAAoBjf,EAAchtB,EAAMpoB,EAAEpjB,IACxD63E,EAASxuE,KAAKouE,oBAAoBjf,EAAchtB,EAAMhsC,EAAEQ,IACxD83E,EAAazuE,KAAKouE,oBAAoBjf,EAAchtB,EAAMxrC,EAAEA,EAAI,IAChE+3E,EAAa1uE,KAAKouE,oBAAoBjf,EAAchtB,EAAMpoB,EAAEpjB,EAAI,IAChEqJ,KAAK2uE,YAAYJ,EAAQC,EAAQC,EAAYC,EAAYz8B,GAGvD9P,EAAMliB,IACRsuD,EAASvuE,KAAKouE,oBAAoBjf,EAAchtB,EAAMpoB,EAAEpjB,IACxD63E,EAASxuE,KAAKouE,oBAAoBjf,EAAchtB,EAAMhsC,EAAEQ,IACxD83E,EAAazuE,KAAKouE,oBAAoBjf,EAAchtB,EAAMxrC,EAAE,IAC5D+3E,EAAa1uE,KAAKouE,oBAAoBjf,EAAchtB,EAAMpoB,EAAE,IAC5D/Z,KAAK2uE,YAAYJ,EAAQC,EAAQC,EAAYC,EAAYz8B,GAf3D,CAiBF,EAEAy1B,cAAclnE,UAAUmuE,YAAc,SAAUJ,EAAQC,EAAQC,EAAYC,EAAYz8B,GACtFjyC,KAAK4uE,iBAAiBL,EAAQC,EAAQC,EAAYC,GAClD,IAAI1zB,EAASh7C,KAAK6uE,iBAClB58B,EAAYnf,EAAI/b,MAAMikC,EAAO9iC,KAAM+5B,EAAYnf,GAC/Cmf,EAAY68B,KAAOj4D,MAAMmkC,EAAOtE,MAAOzE,EAAY68B,MACnD78B,EAAYp4C,EAAIkd,MAAMikC,EAAO/iC,IAAKg6B,EAAYp4C,GAC9Co4C,EAAY88B,KAAOl4D,MAAMmkC,EAAOC,OAAQhJ,EAAY88B,KACtD,EAEArH,cAAclnE,UAAUquE,iBAAmB,CACzC32D,KAAM,EACNw+B,MAAO,EACPz+B,IAAK,EACLgjC,OAAQ,GAEVysB,cAAclnE,UAAUwuE,gBAAkB,CACxCl8C,EAAG,EACHg8C,KAAM,EACNj1E,EAAG,EACHk1E,KAAM,EACNlsD,MAAO,EACPC,OAAQ,GAGV4kD,cAAclnE,UAAUouE,iBAAmB,SAAU9qC,EAAIC,EAAIuE,EAAIgJ,GAG/D,IAFA,IAES5xB,EAAGzF,EAAGgG,EAAG7jB,EAAG6yE,EAAM72C,EAAI2Z,EAF3BiJ,EAAS,CAAC,CAAClX,EAAG,GAAIwN,EAAG,IAAK,CAACxN,EAAG,GAAIwN,EAAG,KAEN36C,EAAI,EAAGA,EAAI,IAAKA,EAEjDsjB,EAAI,EAAI6pB,EAAGntC,GAAK,GAAKotC,EAAGptC,GAAK,EAAI2xC,EAAG3xC,GACpC+oB,GAAK,EAAIokB,EAAGntC,GAAK,EAAIotC,EAAGptC,GAAK,EAAI2xC,EAAG3xC,GAAK,EAAI26C,EAAG36C,GAChDspB,EAAI,EAAI8jB,EAAGptC,GAAK,EAAImtC,EAAGntC,GACvBsjB,GAAK,EAILgG,GAAK,EAEK,KAJVP,GAAK,IAIgB,IAANzF,IACE,IAANyF,GACTtjB,GAAK6jB,EAAIhG,GAED,GAAK7d,EAAI,GACf4+C,EAAOrkD,GAAG2B,KAAK0H,KAAKkvE,WAAW9yE,EAAG0nC,EAAIC,EAAIuE,EAAIgJ,EAAI36C,KAGpDs4E,EAAOh1D,EAAIA,EAAI,EAAIgG,EAAIP,IAEX,KACV0Y,IAAOne,EAAIvD,OAAOu4D,KAAU,EAAIvvD,IACvB,GAAK0Y,EAAK,GAAG4iB,EAAOrkD,GAAG2B,KAAK0H,KAAKkvE,WAAW92C,EAAI0L,EAAIC,EAAIuE,EAAIgJ,EAAI36C,KACzEo7C,IAAO93B,EAAIvD,OAAOu4D,KAAU,EAAIvvD,IACvB,GAAKqyB,EAAK,GAAGiJ,EAAOrkD,GAAG2B,KAAK0H,KAAKkvE,WAAWn9B,EAAIjO,EAAIC,EAAIuE,EAAIgJ,EAAI36C,MAK/EqJ,KAAK6uE,iBAAiB32D,KAAOnB,MAAMvO,MAAM,KAAMwyC,EAAO,IACtDh7C,KAAK6uE,iBAAiB52D,IAAMlB,MAAMvO,MAAM,KAAMwyC,EAAO,IACrDh7C,KAAK6uE,iBAAiBn4B,MAAQ7/B,MAAMrO,MAAM,KAAMwyC,EAAO,IACvDh7C,KAAK6uE,iBAAiB5zB,OAASpkC,MAAMrO,MAAM,KAAMwyC,EAAO,GAC1D,EAEA0sB,cAAclnE,UAAU0uE,WAAa,SAAU9yE,EAAG0nC,EAAIC,EAAIuE,EAAIgJ,EAAI36C,GAChE,OAAO8f,MAAM,EAAIra,EAAG,GAAK0nC,EAAGntC,GAAK,EAAI8f,MAAM,EAAIra,EAAG,GAAKA,EAAI2nC,EAAGptC,GAAK,GAAK,EAAIyF,GAAKqa,MAAMra,EAAG,GAAKksC,EAAG3xC,GAAK8f,MAAMra,EAAG,GAAKk1C,EAAG36C,EAC1H,EAEA+wE,cAAclnE,UAAU2uE,qBAAuB,SAAUzoB,EAAWzU,GAClE,IAAIt7C,EACAwH,EAAMuoD,EAAUhwD,OAEpB,IAAKC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACpB+vD,EAAU/vD,IAAM+vD,EAAU/vD,GAAG0lC,GAC/Br8B,KAAKquE,0BAA0B3nB,EAAU/vD,GAAIs7C,GACpCyU,EAAU/vD,IAAM+vD,EAAU/vD,GAAGN,GACtC2J,KAAKmvE,qBAAqBzoB,EAAU/vD,GAAGN,GAAI47C,GAClCyU,EAAU/vD,IAAM+vD,EAAU/vD,GAAGohB,OAAS2uC,EAAU/vD,GAAGmlD,GAC5D97C,KAAKovE,wBAAwB1oB,EAAU/vD,GAAGmlD,EAAG7J,EAGnD,EAEAy1B,cAAclnE,UAAU4uE,wBAA0B,SAAUC,EAAep9B,GACzE,IAAIpvB,EAAQ,EAEZ,GAAIwsD,EAAcp0C,UAAW,CAC3B,IAAK,IAAItkC,EAAI,EAAGA,EAAI04E,EAAcp0C,UAAUvkC,OAAQC,GAAK,EAAG,CAC1D,IAAI24E,EAAMD,EAAcp0C,UAAUtkC,GAAGE,EAEjCy4E,EAAMzsD,IACRA,EAAQysD,EAEZ,CAEAzsD,GAASwsD,EAAcpwC,IACzB,MACEpc,EAAQwsD,EAAct1D,EAAIs1D,EAAcpwC,KAG1CgT,EAAYnf,GAAKjQ,EACjBovB,EAAY68B,MAAQjsD,EACpBovB,EAAYp4C,GAAKgpB,EACjBovB,EAAY88B,MAAQlsD,CACtB,EAEA6kD,cAAclnE,UAAU+uE,mBAAqB,SAAUv9B,GACrD,OAAOhyC,KAAK4nE,YAAY90C,GAAKkf,EAAIlf,GAAK9yB,KAAK4nE,YAAY/tE,GAAKm4C,EAAIn4C,GAAKmG,KAAK4nE,YAAY/kD,MAAQ7iB,KAAK4nE,YAAY90C,GAAKkf,EAAIlf,EAAIkf,EAAInvB,OAAS7iB,KAAK4nE,YAAY9kD,OAAS9iB,KAAK4nE,YAAY/tE,GAAKm4C,EAAIn4C,EAAIm4C,EAAIlvB,MACvM,EAEA4kD,cAAclnE,UAAU4tD,mBAAqB,WAG3C,GAFApuD,KAAKkuE,qBAEAluE,KAAKihD,SAAWjhD,KAAKu/B,eAAiBv/B,KAAKk/B,MAAO,CACrD,IAAI8vC,EAAkBhvE,KAAKgvE,gBACvBl4D,EAAM,OASV,GARAk4D,EAAgBl8C,EAAIhc,EACpBk4D,EAAgBF,MAAQh4D,EACxBk4D,EAAgBn1E,EAAIid,EACpBk4D,EAAgBD,MAAQj4D,EACxB9W,KAAKmvE,qBAAqBnvE,KAAK0mD,UAAWsoB,GAC1CA,EAAgBnsD,MAAQmsD,EAAgBF,KAAOE,EAAgBl8C,EAAI,EAAIk8C,EAAgBF,KAAOE,EAAgBl8C,EAC9Gk8C,EAAgBlsD,OAASksD,EAAgBD,KAAOC,EAAgBn1E,EAAI,EAAIm1E,EAAgBD,KAAOC,EAAgBn1E,EAE3GmG,KAAKuvE,mBAAmBP,GAC1B,OAGF,IAAIQ,GAAU,EAcd,GAZIxvE,KAAK4nE,YAAY9rB,IAAMkzB,EAAgBnsD,QACzC7iB,KAAK4nE,YAAY9rB,EAAIkzB,EAAgBnsD,MACrC7iB,KAAKmuE,UAAUl9C,aAAa,QAAS+9C,EAAgBnsD,OACrD2sD,GAAU,GAGRxvE,KAAK4nE,YAAYnsE,IAAMuzE,EAAgBlsD,SACzC9iB,KAAK4nE,YAAYnsE,EAAIuzE,EAAgBlsD,OACrC9iB,KAAKmuE,UAAUl9C,aAAa,SAAU+9C,EAAgBlsD,QACtD0sD,GAAU,GAGRA,GAAWxvE,KAAK4nE,YAAY90C,IAAMk8C,EAAgBl8C,GAAK9yB,KAAK4nE,YAAY/tE,IAAMm1E,EAAgBn1E,EAAG,CACnGmG,KAAK4nE,YAAY9rB,EAAIkzB,EAAgBnsD,MACrC7iB,KAAK4nE,YAAYnsE,EAAIuzE,EAAgBlsD,OACrC9iB,KAAK4nE,YAAY90C,EAAIk8C,EAAgBl8C,EACrC9yB,KAAK4nE,YAAY/tE,EAAIm1E,EAAgBn1E,EACrCmG,KAAKmuE,UAAUl9C,aAAa,UAAWjxB,KAAK4nE,YAAY90C,EAAI,IAAM9yB,KAAK4nE,YAAY/tE,EAAI,IAAMmG,KAAK4nE,YAAY9rB,EAAI,IAAM97C,KAAK4nE,YAAYnsE,GACzI,IAAIg0E,EAAazvE,KAAKmuE,UAAUp2D,MAC5B23D,EAAiB,aAAe1vE,KAAK4nE,YAAY90C,EAAI,MAAQ9yB,KAAK4nE,YAAY/tE,EAAI,MACtF41E,EAAWloC,UAAYmoC,EACvBD,EAAW1B,gBAAkB2B,CAC/B,CACF,CACF,EAgBAn8D,gBAAgB,CAAC6vC,YAAae,iBAAkBqjB,aAAc3b,iBAAkBxI,aAAcyI,qBAAsByQ,cAAesL,cAEnIA,aAAarnE,UAAU2tD,cAAgB,WAGrC,GAFAnuD,KAAK+nE,SAAW/nE,KAAK4lD,aAEjB5lD,KAAK+nE,SAAU,CACjB/nE,KAAK47D,WAAa,MAClB57D,KAAK2vE,MAAQ3vE,KAAKie,KAAKjQ,KAAK8tC,EAC5B97C,KAAK4vE,MAAQ5vE,KAAKie,KAAKjQ,KAAKvS,EAC5BuE,KAAKigE,WAAWhvC,aAAa,QAASjxB,KAAK2vE,OAC3C3vE,KAAKigE,WAAWhvC,aAAa,SAAUjxB,KAAK4vE,OAC5C,IAAI7vE,EAAIwb,SAAS,KACjBvb,KAAK0lD,cAAc7/B,YAAY9lB,GAC/BC,KAAKquD,UAAYtuD,CACnB,MACEC,KAAK47D,WAAa,OAClB57D,KAAKquD,UAAYruD,KAAKinD,aAGxBjnD,KAAKkuD,gBACP,EAEA2Z,aAAarnE,UAAUq+D,aAAe,WACpC,IAAI9/C,EAAe/e,KAAK+6D,aAAaxG,YACrCv0D,KAAKq8D,gBAAkBpmD,iBAAiB8I,EAAa/iB,EAAI+iB,EAAa/iB,EAAEtF,OAAS,GACjF,IAAIm5E,EAAiB7vE,KAAKquD,UAAUt2C,MAChC+3D,EAAY/wD,EAAak1C,GAAKj0D,KAAKm/D,WAAWpgD,EAAak1C,IAAM,gBACrE4b,EAAepJ,KAAOqJ,EACtBD,EAAex1D,MAAQy1D,EAEnB/wD,EAAa+gC,KACf+vB,EAAerJ,OAASxmE,KAAKm/D,WAAWpgD,EAAa+gC,IACrD+vB,EAAeE,YAAchxD,EAAai1C,GAAK,MAGjD,IAiBIr9D,EACAwH,EAlBA64C,EAAWh3C,KAAKqqB,WAAWkB,YAAY40B,cAAcphC,EAAa5nB,GAEtE,IAAK6I,KAAKqqB,WAAWkB,YAAYnM,MAI/B,GAHAywD,EAAetzB,SAAWx9B,EAAaq2C,UAAY,KACnDya,EAAeG,WAAajxD,EAAaq2C,UAAY,KAEjDpe,EAASyG,OACXz9C,KAAKquD,UAAUuS,UAAY5pB,EAASyG,WAC/B,CACLoyB,EAAevzB,WAAatF,EAASuG,QACrC,IAAIpG,EAAUp4B,EAAao4B,QACvBD,EAASn4B,EAAam4B,OAC1B24B,EAAepzB,UAAYvF,EAC3B24B,EAAenzB,WAAavF,CAC9B,CAKF,IAEIgrB,EACA8N,EACAC,EAJAjY,EAAUl5C,EAAa/iB,EAC3BmC,EAAM85D,EAAQvhE,OAId,IACIonB,EADAo/C,EAAel9D,KAAKmqD,QAEpB4U,EAAW,GACXh9B,EAAM,EAEV,IAAKprC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EAAG,CAuC3B,GAtCIqJ,KAAKqqB,WAAWkB,YAAYnM,OACzBpf,KAAK8nE,UAAU/lC,GAMlBogC,EAAQniE,KAAK8nE,UAAU/lC,KALvBogC,EAAQ5mD,SAAS,SACX0V,aAAa,iBAAkB+9B,YAAY,IACjDmT,EAAMlxC,aAAa,kBAAmBg+B,aAAa,IACnDkT,EAAMlxC,aAAa,oBAAqB,MAKrCjxB,KAAK+nE,WACJ/nE,KAAKw/D,UAAUz9B,GAEjBmuC,GADAD,EAAUjwE,KAAKw/D,UAAUz9B,IACTpiC,SAAS,KAEzBswE,EAAU58D,UAAU,QACZ0E,MAAMi4D,WAAa,GAC3BE,EAAQ30D,SAAS,QACXsK,YAAYs8C,GAClBtqD,SAASo4D,MAGHjwE,KAAK+nE,SAYf5F,EAAQniE,KAAK8nE,UAAU/lC,GAAO/hC,KAAK8nE,UAAU/lC,GAAOxmB,SAAS,QAXzDvb,KAAKw/D,UAAUz9B,IACjBkuC,EAAUjwE,KAAKw/D,UAAUz9B,GACzBogC,EAAQniE,KAAK8nE,UAAU/lC,KAGvBlqB,SADAo4D,EAAU58D,UAAU,SAGpBwE,SADAsqD,EAAQ9uD,UAAU,SAElB48D,EAAQpqD,YAAYs8C,IAOpBniE,KAAKqqB,WAAWkB,YAAYnM,MAAO,CACrC,IACIuY,EADAtY,EAAWrf,KAAKqqB,WAAWkB,YAAYw0B,YAAYhhC,EAAas2C,UAAU1+D,GAAIqgD,EAASE,OAAQl3C,KAAKqqB,WAAWkB,YAAY40B,cAAcphC,EAAa5nB,GAAGomD,SAkB7J,GAdE5lB,EADEtY,EACUA,EAASrR,KAET,KAGdkvD,EAAa13D,QAETmyB,GAAaA,EAAU7Z,QAAU6Z,EAAU7Z,OAAOpnB,SACpDonB,EAAS6Z,EAAU7Z,OAAO,GAAGznB,GAC7B6mE,EAAaj2B,MAAMloB,EAAaq2C,UAAY,IAAKr2C,EAAaq2C,UAAY,KAC1E2J,EAAW/+D,KAAK8+D,gBAAgB5B,EAAcp/C,GAC9CqkD,EAAMlxC,aAAa,IAAK8tC,IAGrB/+D,KAAK+nE,SAsBR/nE,KAAKquD,UAAUxoC,YAAYs8C,OAtBT,CAGlB,GAFAniE,KAAKquD,UAAUxoC,YAAYoqD,GAEvBt4C,GAAaA,EAAU7Z,OAAQ,CAEjChP,SAASoiB,KAAKrL,YAAYqqD,GAC1B,IAAIj+B,EAAci+B,EAAM9rD,UACxB8rD,EAAMj/C,aAAa,QAASghB,EAAYpvB,MAAQ,GAChDqtD,EAAMj/C,aAAa,SAAUghB,EAAYnvB,OAAS,GAClDotD,EAAMj/C,aAAa,UAAWghB,EAAYnf,EAAI,EAAI,KAAOmf,EAAYp4C,EAAI,GAAK,KAAOo4C,EAAYpvB,MAAQ,GAAK,KAAOovB,EAAYnvB,OAAS,IAC1I,IAAIqtD,EAAaD,EAAMn4D,MACnBq4D,EAAmB,cAAgBn+B,EAAYnf,EAAI,GAAK,OAASmf,EAAYp4C,EAAI,GAAK,MAC1Fs2E,EAAW5oC,UAAY6oC,EACvBD,EAAWpC,gBAAkBqC,EAC7BnY,EAAQthE,GAAGw+D,QAAUljB,EAAYp4C,EAAI,CACvC,MACEq2E,EAAMj/C,aAAa,QAAS,GAC5Bi/C,EAAMj/C,aAAa,SAAU,GAG/Bg/C,EAAQpqD,YAAYqqD,EACtB,CAGF,MAIE,GAHA/N,EAAM3kB,YAAcya,EAAQthE,GAAGuH,IAC/BikE,EAAMz8C,eAAe,uCAAwC,YAAa,YAErE1lB,KAAK+nE,SAQR/nE,KAAKquD,UAAUxoC,YAAYs8C,OART,CAClBniE,KAAKquD,UAAUxoC,YAAYoqD,GAE3B,IAAII,EAASlO,EAAMpqD,MACfu4D,EAAmB,kBAAoBvxD,EAAaq2C,UAAY,IAAM,QAC1Eib,EAAO9oC,UAAY+oC,EACnBD,EAAOtC,gBAAkBuC,CAC3B,CAMGtwE,KAAK+nE,SAGR/nE,KAAKw/D,UAAUz9B,GAAOogC,EAFtBniE,KAAKw/D,UAAUz9B,GAAOkuC,EAKxBjwE,KAAKw/D,UAAUz9B,GAAKhqB,MAAMI,QAAU,QACpCnY,KAAK8nE,UAAU/lC,GAAOogC,EACtBpgC,GAAO,CACT,CAEA,KAAOA,EAAM/hC,KAAKw/D,UAAU9oE,QAC1BsJ,KAAKw/D,UAAUz9B,GAAKhqB,MAAMI,QAAU,OACpC4pB,GAAO,CAEX,EAEA8lC,aAAarnE,UAAU4tD,mBAAqB,WAC1C,IAAImiB,EAEJ,GAAIvwE,KAAKgO,KAAK2zD,YAAa,CACzB,IAAK3hE,KAAKu/B,gBAAkBv/B,KAAKs8D,mBAC/B,OAGF,GAAIt8D,KAAK+nE,UAAY/nE,KAAK2hD,eAAegI,QAAS,CAEhD3pD,KAAKigE,WAAWhvC,aAAa,WAAYjxB,KAAK2hD,eAAeC,MAAMhlD,EAAEmd,EAAE,GAAK,KAAO/Z,KAAK2hD,eAAeC,MAAMhlD,EAAEmd,EAAE,GAAK,IAAM/Z,KAAK2vE,MAAQ,IAAM3vE,KAAK4vE,OACpJW,EAAWvwE,KAAKigE,WAAWloD,MAC3B,IAAIy4D,EAAc,cAAgBxwE,KAAK2hD,eAAeC,MAAMhlD,EAAEmd,EAAE,GAAK,OAAS/Z,KAAK2hD,eAAeC,MAAMhlD,EAAEmd,EAAE,GAAK,MACjHw2D,EAAShpC,UAAYipC,EACrBD,EAASxC,gBAAkByC,CAC7B,CACF,CAIA,GAFAxwE,KAAK4+D,aAAanC,YAAYz8D,KAAK+6D,aAAaxG,YAAav0D,KAAKs8D,oBAE7Dt8D,KAAKs8D,oBAAuBt8D,KAAK4+D,aAAatC,mBAAnD,CAIA,IAAI3lE,EACAwH,EAKA4kE,EACAC,EACAyN,EANAp1B,EAAQ,EACRghB,EAAkBr8D,KAAK4+D,aAAavC,gBACpCpE,EAAUj4D,KAAK+6D,aAAaxG,YAAYv4D,EAM5C,IALAmC,EAAM85D,EAAQvhE,OAKTC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACpBshE,EAAQthE,GAAGG,EACbukD,GAAS,GAET2nB,EAAWhjE,KAAKw/D,UAAU7oE,GAC1B85E,EAAWzwE,KAAK8nE,UAAUnxE,GAC1BosE,EAAiB1G,EAAgBhhB,GACjCA,GAAS,EAEL0nB,EAAe7jC,KAAKpkC,IACjBkF,KAAK+nE,SAIR/E,EAAS/xC,aAAa,YAAa8xC,EAAejoE,IAHlDkoE,EAASjrD,MAAMg2D,gBAAkBhL,EAAejoE,EAChDkoE,EAASjrD,MAAMwvB,UAAYw7B,EAAejoE,IAO9CkoE,EAASjrD,MAAMmsD,QAAUnB,EAAe5sE,EAEpC4sE,EAAe/O,IAAM+O,EAAe7jC,KAAK80B,IAC3Cyc,EAASx/C,aAAa,eAAgB8xC,EAAe/O,IAGnD+O,EAAejjB,IAAMijB,EAAe7jC,KAAK4gB,IAC3C2wB,EAASx/C,aAAa,SAAU8xC,EAAejjB,IAG7CijB,EAAe9O,IAAM8O,EAAe7jC,KAAK+0B,KAC3Cwc,EAASx/C,aAAa,OAAQ8xC,EAAe9O,IAC7Cwc,EAAS14D,MAAMsC,MAAQ0oD,EAAe9O,KAK5C,GAAIj0D,KAAKquD,UAAUjqC,UAAYpkB,KAAKihD,SAAWjhD,KAAKu/B,eAAiBv/B,KAAKk/B,MAAO,CAC/E,IAAI+S,EAAcjyC,KAAKquD,UAAUjqC,UAcjC,GAZIpkB,KAAK4nE,YAAY9rB,IAAM7J,EAAYpvB,QACrC7iB,KAAK4nE,YAAY9rB,EAAI7J,EAAYpvB,MACjC7iB,KAAKigE,WAAWhvC,aAAa,QAASghB,EAAYpvB,QAGhD7iB,KAAK4nE,YAAYnsE,IAAMw2C,EAAYnvB,SACrC9iB,KAAK4nE,YAAYnsE,EAAIw2C,EAAYnvB,OACjC9iB,KAAKigE,WAAWhvC,aAAa,SAAUghB,EAAYnvB,SAKjD9iB,KAAK4nE,YAAY9rB,IAAM7J,EAAYpvB,MAAQ6tD,GAAc1wE,KAAK4nE,YAAYnsE,IAAMw2C,EAAYnvB,OAAS4tD,GAAc1wE,KAAK4nE,YAAY90C,IAAMmf,EAAYnf,EAF7I,GAE2J9yB,KAAK4nE,YAAY/tE,IAAMo4C,EAAYp4C,EAF9L,EAE0M,CACrNmG,KAAK4nE,YAAY9rB,EAAI7J,EAAYpvB,MAAQ6tD,EACzC1wE,KAAK4nE,YAAYnsE,EAAIw2C,EAAYnvB,OAAS4tD,EAC1C1wE,KAAK4nE,YAAY90C,EAAImf,EAAYnf,EALtB,EAMX9yB,KAAK4nE,YAAY/tE,EAAIo4C,EAAYp4C,EANtB,EAOXmG,KAAKigE,WAAWhvC,aAAa,UAAWjxB,KAAK4nE,YAAY90C,EAAI,IAAM9yB,KAAK4nE,YAAY/tE,EAAI,IAAMmG,KAAK4nE,YAAY9rB,EAAI,IAAM97C,KAAK4nE,YAAYnsE,GAC1I80E,EAAWvwE,KAAKigE,WAAWloD,MAC3B,IAAI44D,EAAe,aAAe3wE,KAAK4nE,YAAY90C,EAAI,MAAQ9yB,KAAK4nE,YAAY/tE,EAAI,MACpF02E,EAAShpC,UAAYopC,EACrBJ,EAASxC,gBAAkB4C,CAC7B,CACF,CA1EA,CA2EF,EA6CAp9D,gBAAgB,CAAC6vC,YAAaC,aAAcwI,kBAAmBmc,gBAE/DA,eAAexnE,UAAUowE,MAAQ,WAC/B,IAAIj6E,EAEAsnB,EACA4yD,EACA3D,EAHA/uE,EAAM6B,KAAKie,KAAKoqD,eAAe3xE,OAKnC,IAAKC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EAIxB,GAAkB,QAFlBsnB,EAAOje,KAAKie,KAAKoqD,eAAe1xE,IAEvB0L,KAAe,CACtBwuE,EAAmB5yD,EAAK6yD,gBAAgB/4D,MACxCm1D,EAAiBjvD,EAAKgM,UAAUlS,MAChC,IAAIg5D,EAAc/wE,KAAKioE,GAAGluD,EAAI,KAC1BsI,EAAS,cACTw1B,EAAS,4CACbg5B,EAAiBE,YAAcA,EAC/BF,EAAiBG,kBAAoBD,EACrC7D,EAAe90D,gBAAkBiK,EACjC6qD,EAAeC,mBAAqB9qD,EACpC6qD,EAAe70D,sBAAwBgK,EACvCwuD,EAAiBtpC,UAAYsQ,EAC7Bg5B,EAAiB9C,gBAAkBl2B,CACrC,CAEJ,EAEAmwB,eAAexnE,UAAUioE,eAAiB,WAAa,EAEvDT,eAAexnE,UAAU4uB,KAAO,WAAa,EAE7C44C,eAAexnE,UAAU0sB,YAAc,WACrC,IACIv2B,EACAwH,EAFA+gC,EAAOl/B,KAAKu/B,cAIhB,GAAIv/B,KAAK+oD,UAGP,IAFA5qD,EAAM6B,KAAK+oD,UAAUryD,OAEhBC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACxBuoC,EAAOl/B,KAAK+oD,UAAUpyD,GAAGgrD,eAAeC,MAAM1iB,MAAQA,EAI1D,GAAIA,GAAQl/B,KAAKioE,GAAG/oC,MAAQl/B,KAAKpD,GAAKoD,KAAKpD,EAAEsiC,MAAQl/B,KAAK2vC,KAAO3vC,KAAK2vC,GAAGzQ,MAAQl/B,KAAK4vC,GAAG1Q,MAAQl/B,KAAK6vC,GAAG3Q,OAASl/B,KAAK8vC,GAAG5Q,MAAQl/B,KAAK+vC,GAAG7Q,MAAQl/B,KAAKgwC,GAAG9Q,MAAQl/B,KAAK2kC,GAAGzF,MAAQl/B,KAAK0f,GAAK1f,KAAK0f,EAAEwf,KAAM,CAGvM,GAFAl/B,KAAKmwC,IAAI3qC,QAELxF,KAAK+oD,UAGP,IAAKpyD,EAFLwH,EAAM6B,KAAK+oD,UAAUryD,OAAS,EAEhBC,GAAK,EAAGA,GAAK,EAAG,CAC5B,IAAIs6E,EAAUjxE,KAAK+oD,UAAUpyD,GAAGgrD,eAAeC,MAC/C5hD,KAAKmwC,IAAI/I,WAAW6pC,EAAQr0E,EAAEmd,EAAE,IAAKk3D,EAAQr0E,EAAEmd,EAAE,GAAIk3D,EAAQr0E,EAAEmd,EAAE,IACjE/Z,KAAKmwC,IAAIzJ,SAASuqC,EAAQtsC,GAAG5qB,EAAE,IAAI4sB,SAASsqC,EAAQtsC,GAAG5qB,EAAE,IAAI6sB,QAAQqqC,EAAQtsC,GAAG5qB,EAAE,IAClF/Z,KAAKmwC,IAAIzJ,SAASuqC,EAAQnhC,GAAG/1B,GAAG4sB,SAASsqC,EAAQlhC,GAAGh2B,GAAG6sB,QAAQqqC,EAAQjhC,GAAGj2B,GAC1E/Z,KAAKmwC,IAAIlJ,MAAM,EAAIgqC,EAAQp6E,EAAEkjB,EAAE,GAAI,EAAIk3D,EAAQp6E,EAAEkjB,EAAE,GAAI,EAAIk3D,EAAQp6E,EAAEkjB,EAAE,IACvE/Z,KAAKmwC,IAAI/I,UAAU6pC,EAAQvxD,EAAE3F,EAAE,GAAIk3D,EAAQvxD,EAAE3F,EAAE,GAAIk3D,EAAQvxD,EAAE3F,EAAE,GACjE,CASF,GANI/Z,KAAKpD,EACPoD,KAAKmwC,IAAI/I,WAAWpnC,KAAKpD,EAAEmd,EAAE,IAAK/Z,KAAKpD,EAAEmd,EAAE,GAAI/Z,KAAKpD,EAAEmd,EAAE,IAExD/Z,KAAKmwC,IAAI/I,WAAWpnC,KAAK2vC,GAAG51B,GAAI/Z,KAAK4vC,GAAG71B,EAAG/Z,KAAK6vC,GAAG91B,GAGjD/Z,KAAK0f,EAAG,CACV,IAAIwxD,EAGFA,EADElxE,KAAKpD,EACM,CAACoD,KAAKpD,EAAEmd,EAAE,GAAK/Z,KAAK0f,EAAE3F,EAAE,GAAI/Z,KAAKpD,EAAEmd,EAAE,GAAK/Z,KAAK0f,EAAE3F,EAAE,GAAI/Z,KAAKpD,EAAEmd,EAAE,GAAK/Z,KAAK0f,EAAE3F,EAAE,IAE9E,CAAC/Z,KAAK2vC,GAAG51B,EAAI/Z,KAAK0f,EAAE3F,EAAE,GAAI/Z,KAAK4vC,GAAG71B,EAAI/Z,KAAK0f,EAAE3F,EAAE,GAAI/Z,KAAK6vC,GAAG91B,EAAI/Z,KAAK0f,EAAE3F,EAAE,IAGvF,IAAIo3D,EAAMj1E,KAAKya,KAAKza,KAAKsQ,IAAI0kE,EAAW,GAAI,GAAKh1E,KAAKsQ,IAAI0kE,EAAW,GAAI,GAAKh1E,KAAKsQ,IAAI0kE,EAAW,GAAI,IAElGE,EAAU,CAACF,EAAW,GAAKC,EAAKD,EAAW,GAAKC,EAAKD,EAAW,GAAKC,GACrEE,EAAiBn1E,KAAKya,KAAKy6D,EAAQ,GAAKA,EAAQ,GAAKA,EAAQ,GAAKA,EAAQ,IAC1EE,EAAap1E,KAAK6hC,MAAMqzC,EAAQ,GAAIC,GACpCE,EAAar1E,KAAK6hC,MAAMqzC,EAAQ,IAAKA,EAAQ,IACjDpxE,KAAKmwC,IAAIxJ,QAAQ4qC,GAAY7qC,SAAS4qC,EACxC,CAEAtxE,KAAKmwC,IAAIzJ,SAAS1mC,KAAK8vC,GAAG/1B,GAAG4sB,SAAS3mC,KAAK+vC,GAAGh2B,GAAG6sB,QAAQ5mC,KAAKgwC,GAAGj2B,GACjE/Z,KAAKmwC,IAAIzJ,SAAS1mC,KAAK2kC,GAAG5qB,EAAE,IAAI4sB,SAAS3mC,KAAK2kC,GAAG5qB,EAAE,IAAI6sB,QAAQ5mC,KAAK2kC,GAAG5qB,EAAE,IACzE/Z,KAAKmwC,IAAI/I,UAAUpnC,KAAKqqB,WAAWo/B,SAAS3N,EAAI,EAAG97C,KAAKqqB,WAAWo/B,SAAShuD,EAAI,EAAG,GACnFuE,KAAKmwC,IAAI/I,UAAU,EAAG,EAAGpnC,KAAKioE,GAAGluD,GACjC,IAAIy3D,GAAoBxxE,KAAKkoE,SAAS1+B,OAAOxpC,KAAKmwC,KAElD,IAAKqhC,GAAoBxxE,KAAKioE,GAAG/oC,OAASl/B,KAAKie,KAAKoqD,eAAgB,CAElE,IAAIpqD,EACA4yD,EACA3D,EAEJ,IALA/uE,EAAM6B,KAAKie,KAAKoqD,eAAe3xE,OAK1BC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EAGxB,GAAkB,QAFlBsnB,EAAOje,KAAKie,KAAKoqD,eAAe1xE,IAEvB0L,KAAe,CACtB,GAAImvE,EAAkB,CACpB,IAAIC,EAAWzxE,KAAKmwC,IAAIrF,SACxBoiC,EAAiBjvD,EAAKgM,UAAUlS,OACjBwvB,UAAYkqC,EAC3BvE,EAAea,gBAAkB0D,CACnC,CAEIzxE,KAAKioE,GAAG/oC,QACV2xC,EAAmB5yD,EAAK6yD,gBAAgB/4D,OACvBg5D,YAAc/wE,KAAKioE,GAAGluD,EAAI,KAC3C82D,EAAiBG,kBAAoBhxE,KAAKioE,GAAGluD,EAAI,KAErD,CAGF/Z,KAAKmwC,IAAIjO,MAAMliC,KAAKkoE,SACtB,CACF,CAEAloE,KAAKu/B,eAAgB,CACvB,EAEAyoC,eAAexnE,UAAUmnB,aAAe,SAAU65B,GAChDxhD,KAAKonD,kBAAkB5F,GAAK,EAC9B,EAEAwmB,eAAexnE,UAAU4kB,QAAU,WAAa,EAEhD4iD,eAAexnE,UAAU+mD,eAAiB,WACxC,OAAO,IACT,EAOAh0C,gBAAgB,CAAC6vC,YAAae,iBAAkBqjB,aAAcC,cAAe5b,iBAAkBxI,aAAcxC,mBAAoBsnB,eAEjIA,cAAc3nE,UAAU2tD,cAAgB,WACtC,IAAIt5C,EAAY7U,KAAKqqB,WAAW3G,cAAc1jB,KAAK2jB,WAC/CM,EAAM,IAAIytD,MAEV1xE,KAAKgO,KAAKqP,SACZrd,KAAK2xE,UAAYp2D,SAAS,SAC1Bvb,KAAK2xE,UAAU1gD,aAAa,QAASjxB,KAAK2jB,UAAUm4B,EAAI,MACxD97C,KAAK2xE,UAAU1gD,aAAa,SAAUjxB,KAAK2jB,UAAUloB,EAAI,MACzDuE,KAAK2xE,UAAUjsD,eAAe,+BAAgC,OAAQ7Q,GACtE7U,KAAKinD,aAAaphC,YAAY7lB,KAAK2xE,WACnC3xE,KAAKgnD,YAAY/1B,aAAa,QAASjxB,KAAK2jB,UAAUm4B,GACtD97C,KAAKgnD,YAAY/1B,aAAa,SAAUjxB,KAAK2jB,UAAUloB,IAEvDuE,KAAKinD,aAAaphC,YAAY5B,GAGhCA,EAAIsB,YAAc,YAClBtB,EAAIlP,IAAMF,EAEN7U,KAAKgO,KAAK6+C,IACZ7sD,KAAKgnD,YAAY/1B,aAAa,KAAMjxB,KAAKgO,KAAK6+C,GAElD,EA+BAt5C,gBAAgB,CAAC2wC,cAAekkB,oBAChCA,mBAAmB5nE,UAAUsnD,UAAYiY,YAAYv/D,UAAUsnD,UAE/DsgB,mBAAmB5nE,UAAUunD,qBAAuB,WAClD,KAAO/nD,KAAKmpD,gBAAgBzyD,QACZsJ,KAAKmpD,gBAAgB5pD,MAC3B2uD,gBAEZ,EAEAka,mBAAmB5nE,UAAU0iE,mBAAqB,SAAUprD,EAASqpB,GACnE,IAAIywC,EAAgB95D,EAAQyvC,iBAE5B,GAAKqqB,EAAL,CAIA,IAAI3pB,EAAQjoD,KAAK6c,OAAOskB,GAExB,GAAK8mB,EAAMxtD,KAAQuF,KAAK8/D,WA4BtB9/D,KAAK6xE,iBAAiBD,EAAezwC,QA3BrC,GAAInhC,KAAKqoE,eACProE,KAAK6xE,iBAAiBD,EAAezwC,OAChC,CAML,IALA,IACI2wC,EACAC,EAFAp7E,EAAI,EAKDA,EAAIwqC,GACLnhC,KAAKu4C,SAAS5hD,KAA2B,IAArBqJ,KAAKu4C,SAAS5hD,IAAeqJ,KAAKu4C,SAAS5hD,GAAG4wD,iBACpEwqB,EAAY/xE,KAAKu4C,SAAS5hD,GAE1Bm7E,GADgB9xE,KAAK6c,OAAOlmB,GAAG8D,IAAMuF,KAAKgyE,wBAAwBr7E,GAAKo7E,EAAUxqB,mBAC/CuqB,GAGpCn7E,GAAK,EAGHm7E,EACG7pB,EAAMxtD,KAAQuF,KAAK8/D,YACtB9/D,KAAKinD,aAAasc,aAAaqO,EAAeE,GAEtC7pB,EAAMxtD,KAAQuF,KAAK8/D,YAC7B9/D,KAAKinD,aAAaphC,YAAY+rD,EAElC,CA9BF,CAkCF,EAEAxJ,mBAAmB5nE,UAAU8nD,YAAc,SAAUt6C,GACnD,OAAKhO,KAAK8/D,WAIH,IAAI4H,cAAc15D,EAAMhO,KAAKqqB,WAAYrqB,MAHvC,IAAI4zD,gBAAgB5lD,EAAMhO,KAAKqqB,WAAYrqB,KAItD,EAEAooE,mBAAmB5nE,UAAU+nD,WAAa,SAAUv6C,GAClD,OAAKhO,KAAK8/D,WAIH,IAAI+H,aAAa75D,EAAMhO,KAAKqqB,WAAYrqB,MAHtC,IAAIu/D,qBAAqBvxD,EAAMhO,KAAKqqB,WAAYrqB,KAI3D,EAEAooE,mBAAmB5nE,UAAUgoD,aAAe,SAAUx6C,GAEpD,OADAhO,KAAKsoE,OAAS,IAAIN,eAAeh6D,EAAMhO,KAAKqqB,WAAYrqB,MACjDA,KAAKsoE,MACd,EAEAF,mBAAmB5nE,UAAU0nD,YAAc,SAAUl6C,GACnD,OAAKhO,KAAK8/D,WAIH,IAAIqI,cAAcn6D,EAAMhO,KAAKqqB,WAAYrqB,MAHvC,IAAI+rD,cAAc/9C,EAAMhO,KAAKqqB,WAAYrqB,KAIpD,EAEAooE,mBAAmB5nE,UAAU4nD,YAAc,SAAUp6C,GACnD,OAAKhO,KAAK8/D,WAIH,IAAI2H,cAAcz5D,EAAMhO,KAAKqqB,WAAYrqB,MAHvC,IAAIy/D,cAAczxD,EAAMhO,KAAKqqB,WAAYrqB,KAIpD,EAEAooE,mBAAmB5nE,UAAU6nD,WAAa0X,YAAYv/D,UAAU6nD,WAEhE+f,mBAAmB5nE,UAAUwxE,wBAA0B,SAAU7wC,GAI/D,IAHA,IAAIxqC,EAAI,EACJwH,EAAM6B,KAAKqoE,eAAe3xE,OAEvBC,EAAIwH,GAAK,CACd,GAAI6B,KAAKqoE,eAAe1xE,GAAGs7E,UAAY9wC,GAAOnhC,KAAKqoE,eAAe1xE,GAAGu7E,QAAU/wC,EAC7E,OAAOnhC,KAAKqoE,eAAe1xE,GAAGm6E,gBAGhCn6E,GAAK,CACP,CAEA,OAAO,IACT,EAEAyxE,mBAAmB5nE,UAAU2xE,sBAAwB,SAAUhxC,EAAK9+B,GAClE,IACI0V,EACAm1D,EAFA4D,EAAkBz9D,UAAU,OAGhCwE,SAASi5D,GACT,IAAI7mD,EAAY5W,UAAU,OAG1B,GAFAwE,SAASoS,GAEI,OAAT5nB,EAAe,EACjB0V,EAAQ+4D,EAAgB/4D,OAClB8K,MAAQ7iB,KAAKqqB,WAAWo/B,SAAS3N,EAAI,KAC3C/jC,EAAM+K,OAAS9iB,KAAKqqB,WAAWo/B,SAAShuD,EAAI,KAC5C,IAAIu6C,EAAS,UACbj+B,EAAMM,sBAAwB29B,EAC9Bj+B,EAAMo1D,mBAAqBn3B,EAC3Bj+B,EAAMK,gBAAkB49B,EAExB,IAAI6B,EAAS,6CADbq1B,EAAiBjjD,EAAUlS,OAEZwvB,UAAYsQ,EAC3Bq1B,EAAea,gBAAkBl2B,CACnC,CAEAi5B,EAAgBjrD,YAAYoE,GAE5B,IAAImoD,EAAsB,CACxBnoD,UAAWA,EACX6mD,gBAAiBA,EACjBmB,SAAU9wC,EACV+wC,OAAQ/wC,EACR9+B,KAAMA,GAGR,OADArC,KAAKqoE,eAAe/vE,KAAK85E,GAClBA,CACT,EAEAhK,mBAAmB5nE,UAAU6xE,kBAAoB,WAC/C,IAAI17E,EAEA27E,EADAn0E,EAAM6B,KAAK6c,OAAOnmB,OAElB67E,EAAmB,GAEvB,IAAK57E,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACpBqJ,KAAK6c,OAAOlmB,GAAG8D,KAA6B,IAAtBuF,KAAK6c,OAAOlmB,GAAG+mB,IACd,OAArB60D,IACFA,EAAmB,KACnBD,EAA0BtyE,KAAKmyE,sBAAsBx7E,EAAG,OAG1D27E,EAAwBJ,OAASh2E,KAAK4a,IAAIw7D,EAAwBJ,OAAQv7E,KAEjD,OAArB47E,IACFA,EAAmB,KACnBD,EAA0BtyE,KAAKmyE,sBAAsBx7E,EAAG,OAG1D27E,EAAwBJ,OAASh2E,KAAK4a,IAAIw7D,EAAwBJ,OAAQv7E,IAM9E,IAAKA,GAFLwH,EAAM6B,KAAKqoE,eAAe3xE,QAEX,EAAGC,GAAK,EAAGA,GAAK,EAC7BqJ,KAAKwyE,YAAY3sD,YAAY7lB,KAAKqoE,eAAe1xE,GAAGm6E,gBAExD,EAEA1I,mBAAmB5nE,UAAUqxE,iBAAmB,SAAUzhD,EAAM+Q,GAI9D,IAHA,IAAIxqC,EAAI,EACJwH,EAAM6B,KAAKqoE,eAAe3xE,OAEvBC,EAAIwH,GAAK,CACd,GAAIgjC,GAAOnhC,KAAKqoE,eAAe1xE,GAAGu7E,OAAQ,CAIxC,IAHA,IACI5O,EADAtmD,EAAIhd,KAAKqoE,eAAe1xE,GAAGs7E,SAGxBj1D,EAAImkB,GACLnhC,KAAKu4C,SAASv7B,IAAMhd,KAAKu4C,SAASv7B,GAAGuqC,iBACvC+b,EAActjE,KAAKu4C,SAASv7B,GAAGuqC,kBAGjCvqC,GAAK,EAGHsmD,EACFtjE,KAAKqoE,eAAe1xE,GAAGszB,UAAUs5C,aAAanzC,EAAMkzC,GAEpDtjE,KAAKqoE,eAAe1xE,GAAGszB,UAAUpE,YAAYuK,GAG/C,KACF,CAEAz5B,GAAK,CACP,CACF,EAEAyxE,mBAAmB5nE,UAAUkpB,gBAAkB,SAAUyC,GACvD,IAAIqmD,EAAcn/D,UAAU,OACxB2W,EAAUhqB,KAAKwpD,cAAcx/B,QAC7BjS,EAAQy6D,EAAYz6D,MACxBA,EAAM8K,MAAQsJ,EAAS2vB,EAAI,KAC3B/jC,EAAM+K,OAASqJ,EAAS1wB,EAAI,KAC5BuE,KAAKwyE,YAAcA,EACnB36D,SAAS26D,GACTz6D,EAAMS,eAAiB,OACvBT,EAAMW,kBAAoB,OAC1BX,EAAMU,qBAAuB,OAEzBzY,KAAK6hD,aAAa+e,WACpB4R,EAAYvhD,aAAa,QAASjxB,KAAK6hD,aAAa+e,WAGtD52C,EAAQnE,YAAY2sD,GACpBz6D,EAAM06D,SAAW,SACjB,IAAI3N,EAAMvpD,SAAS,OACnBupD,EAAI7zC,aAAa,QAAS,KAC1B6zC,EAAI7zC,aAAa,SAAU,KAC3BpZ,SAASitD,GACT9kE,KAAKwyE,YAAY3sD,YAAYi/C,GAC7B,IAAIx6C,EAAO/O,SAAS,QACpBupD,EAAIj/C,YAAYyE,GAChBtqB,KAAKgO,KAAOme,EAEZnsB,KAAKspD,gBAAgBn9B,EAAU24C,GAC/B9kE,KAAKqqB,WAAWC,KAAOA,EACvBtqB,KAAK6c,OAASsP,EAAStP,OACvB7c,KAAKinD,aAAejnD,KAAKwyE,YACzBxyE,KAAKqyE,oBACLryE,KAAKgtB,qBACP,EAEAo7C,mBAAmB5nE,UAAU4kB,QAAU,WAOrC,IAAIzuB,EANAqJ,KAAKwpD,cAAcx/B,UACrBhqB,KAAKwpD,cAAcx/B,QAAQoH,UAAY,IAGzCpxB,KAAKwpD,cAAcv/B,UAAY,KAC/BjqB,KAAKqqB,WAAWC,KAAO,KAEvB,IAAInsB,EAAM6B,KAAK6c,OAAS7c,KAAK6c,OAAOnmB,OAAS,EAE7C,IAAKC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACpBqJ,KAAKu4C,SAAS5hD,IAAMqJ,KAAKu4C,SAAS5hD,GAAGyuB,SACvCplB,KAAKu4C,SAAS5hD,GAAGyuB,UAIrBplB,KAAKu4C,SAAS7hD,OAAS,EACvBsJ,KAAKghE,WAAY,EACjBhhE,KAAKwpD,cAAgB,IACvB,EAEA4e,mBAAmB5nE,UAAUwsB,oBAAsB,WACjD,IAII8Z,EACAzC,EACAgD,EACA3pB,EAPA2vD,EAAertE,KAAKwpD,cAAcx/B,QAAQ4yB,YAC1C0wB,EAAgBttE,KAAKwpD,cAAcx/B,QAAQyjD,aAC3CF,EAAaF,EAAeC,EACbttE,KAAKqqB,WAAWo/B,SAAS3N,EAAI97C,KAAKqqB,WAAWo/B,SAAShuD,EAMtD8xE,GACjBzmC,EAAKumC,EAAertE,KAAKqqB,WAAWo/B,SAAS3N,EAC7CzX,EAAKgpC,EAAertE,KAAKqqB,WAAWo/B,SAAS3N,EAC7CzU,EAAK,EACL3pB,GAAM4vD,EAAgBttE,KAAKqqB,WAAWo/B,SAAShuD,GAAK4xE,EAAertE,KAAKqqB,WAAWo/B,SAAS3N,IAAM,IAElGhV,EAAKwmC,EAAgBttE,KAAKqqB,WAAWo/B,SAAShuD,EAC9C4oC,EAAKipC,EAAgBttE,KAAKqqB,WAAWo/B,SAAShuD,EAC9C4rC,GAAMgmC,EAAertE,KAAKqqB,WAAWo/B,SAAS3N,GAAKwxB,EAAgBttE,KAAKqqB,WAAWo/B,SAAShuD,IAAM,EAClGiiB,EAAK,GAGP,IAAI3F,EAAQ/X,KAAKwyE,YAAYz6D,MAC7BA,EAAMg2D,gBAAkB,YAAcjnC,EAAK,YAAczC,EAAK,gBAAkBgD,EAAK,IAAM3pB,EAAK,QAChG3F,EAAMwvB,UAAYxvB,EAAMg2D,eAC1B,EAEA3F,mBAAmB5nE,UAAU0sB,YAAc6yC,YAAYv/D,UAAU0sB,YAEjEk7C,mBAAmB5nE,UAAU4uB,KAAO,WAClCpvB,KAAKwyE,YAAYz6D,MAAMI,QAAU,MACnC,EAEAiwD,mBAAmB5nE,UAAU6uB,KAAO,WAClCrvB,KAAKwyE,YAAYz6D,MAAMI,QAAU,OACnC,EAEAiwD,mBAAmB5nE,UAAUmsB,UAAY,WAGvC,GAFA3sB,KAAK0oD,gBAED1oD,KAAKsoE,OACPtoE,KAAKsoE,OAAOsI,YACP,CACL,IAEIj6E,EAFA+7E,EAAS1yE,KAAKqqB,WAAWo/B,SAAS3N,EAClC62B,EAAU3yE,KAAKqqB,WAAWo/B,SAAShuD,EAEnC0C,EAAM6B,KAAKqoE,eAAe3xE,OAE9B,IAAKC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EAAG,CAC3B,IAAIohB,EAAQ/X,KAAKqoE,eAAe1xE,GAAGm6E,gBAAgB/4D,MACnDA,EAAMi5D,kBAAoB90E,KAAKya,KAAKza,KAAKsQ,IAAIkmE,EAAQ,GAAKx2E,KAAKsQ,IAAImmE,EAAS,IAAM,KAClF56D,EAAMg5D,YAAch5D,EAAMi5D,iBAC5B,CACF,CACF,EAEA5I,mBAAmB5nE,UAAU6rB,wBAA0B,SAAUnN,GAC/D,IAAIvoB,EACAwH,EAAM+gB,EAAOxoB,OACbk8E,EAAoBv/D,UAAU,OAElC,IAAK1c,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACxB,GAAIuoB,EAAOvoB,GAAGixB,GAAI,CAChB,IAAI3J,EAAOje,KAAKmoD,WAAWjpC,EAAOvoB,GAAIi8E,EAAmB5yE,KAAKqqB,WAAWpM,KAAM,MAC/EA,EAAKyN,kBACL1rB,KAAKqqB,WAAWd,iBAAiBhC,oBAAoBtJ,EACvD,CAEJ,EAcA1K,gBAAgB,CAAC60D,mBAAoBxI,aAAc4H,cAAee,cAClEA,aAAa/nE,UAAUqyE,6BAA+BtK,aAAa/nE,UAAU6rD,wBAE7Ekc,aAAa/nE,UAAU6rD,wBAA0B,WAC/CrsD,KAAK6yE,+BAGD7yE,KAAKgO,KAAKqP,SACZrd,KAAKigE,WAAWhvC,aAAa,QAASjxB,KAAKgO,KAAK8tC,GAChD97C,KAAKigE,WAAWhvC,aAAa,SAAUjxB,KAAKgO,KAAKvS,GACjDuE,KAAKusD,mBAAqBvsD,KAAKgnD,aAE/BhnD,KAAKusD,mBAAqBvsD,KAAKinD,YAEnC,EAEAshB,aAAa/nE,UAAUqxE,iBAAmB,SAAUzhD,EAAM+Q,GAIxD,IAHA,IACImiC,EADAtmD,EAAI,EAGDA,EAAImkB,GACLnhC,KAAKu4C,SAASv7B,IAAMhd,KAAKu4C,SAASv7B,GAAGuqC,iBACvC+b,EAActjE,KAAKu4C,SAASv7B,GAAGuqC,kBAGjCvqC,GAAK,EAGHsmD,EACFtjE,KAAKinD,aAAasc,aAAanzC,EAAMkzC,GAErCtjE,KAAKinD,aAAaphC,YAAYuK,EAElC,EAEAm4C,aAAa/nE,UAAU2nD,WAAa,SAAUn6C,GAC5C,OAAKhO,KAAK8/D,WAIH,IAAIyI,aAAav6D,EAAMhO,KAAKqqB,WAAYrqB,MAHtC,IAAI6/D,eAAe7xD,EAAMhO,KAAKqqB,WAAYrqB,KAIrD,EAgCAuT,gBAAgB,CAAC60D,oBAAqBI,gBAEtCA,eAAehoE,UAAU2nD,WAAa,SAAUn6C,GAC9C,OAAKhO,KAAK8/D,WAIH,IAAIyI,aAAav6D,EAAMhO,KAAKqqB,WAAYrqB,MAHtC,IAAI6/D,eAAe7xD,EAAMhO,KAAKqqB,WAAYrqB,KAIrD,EAEA,IAAIimD,wBACK,SAAUhoC,GACf,SAAS60D,EAAmB9sE,GAI1B,IAHA,IAAIrP,EAAI,EACJwH,EAAM8f,EAAKpB,OAAOnmB,OAEfC,EAAIwH,GAAK,CACd,GAAI8f,EAAKpB,OAAOlmB,GAAG+wB,KAAO1hB,GAAQiY,EAAKpB,OAAOlmB,GAAG4kC,MAAQv1B,EACvD,OAAOiY,EAAKs6B,SAAS5hD,GAAGuvD,eAG1BvvD,GAAK,CACP,CAEA,OAAO,IACT,CAaA,OAXA0B,OAAOuH,eAAekzE,EAAoB,QAAS,CACjD97E,MAAOinB,EAAKjQ,KAAK0Z,KAEnBorD,EAAmB7qB,MAAQ6qB,EAC3BA,EAAmBC,YAAc,EACjCD,EAAmBhwD,OAAS7E,EAAKjQ,KAAKvS,GAAKwiB,EAAKoM,WAAWo/B,SAAShuD,EACpEq3E,EAAmBjwD,MAAQ5E,EAAKjQ,KAAK8tC,GAAK79B,EAAKoM,WAAWo/B,SAAS3N,EACnEg3B,EAAmBC,YAAc,EACjCD,EAAmBE,cAAgB,EAAI/0D,EAAKoM,WAAW9B,UACvDuqD,EAAmBG,iBAAmB,EACtCH,EAAmBI,UAAYj1D,EAAKpB,OAAOnmB,OACpCo8E,CACT,EAGEK,YAAc,WAChB,IAAI3uD,EAAK,CACTA,gBAEA,SAAyB3C,GACvB,IAAIuxD,EAAa,EACbC,EAAY,GA+BhBxxD,EAAUkH,SAASjB,cAAgBm+B,wBAAwBpkC,EAAUkH,UACrElH,EAAUkH,SAASsB,WAAWd,iBAAiBhC,oBAAoB1F,EAAUkH,UAC7ElH,EAAUkH,SAASsB,WAAWipD,eA/B9B,WACEF,GAAc,CAChB,EA8BAvxD,EAAUkH,SAASsB,WAAWkpD,cA5B9B,WAGqB,KAFnBH,GAAc,IAahB,WACE,IAAIz8E,EACAwH,EAAMk1E,EAAU38E,OAEpB,IAAKC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACxB08E,EAAU18E,GAAGm+B,UAGfu+C,EAAU38E,OAAS,CACrB,CAnBI88E,EAEJ,EAuBA3xD,EAAUkH,SAASsB,WAAWopD,2BArB9B,SAAoCC,IACK,IAAnCL,EAAU5iE,QAAQijE,IACpBL,EAAU/6E,KAAKo7E,EAEnB,CAkBF,GAEA,OAAOlvD,CACT,CA7CkB,GA+CdmvD,qBAAuB,WACzB,SAASC,EAAc96E,EAAMkV,GAC3BhO,KAAK6zE,MAAQ/6E,EACbkH,KAAK8zE,MAAQ9lE,CACf,CAgDA,OA9CA3V,OAAOuH,eAAeg0E,EAAcpzE,UAAW,WAAY,CACzDV,IAAK,WAKH,OAJIE,KAAK6zE,MAAMhgE,KAAKqJ,GAClBld,KAAK6zE,MAAMhgE,KAAKksB,WAGX//B,KAAK6zE,MAAMhgE,IACpB,IAEFxb,OAAOuH,eAAeg0E,EAAcpzE,UAAW,cAAe,CAC5DV,IAAK,WAKH,OAJIE,KAAK6zE,MAAMt0D,GAAGrC,GAChBld,KAAK6zE,MAAMt0D,GAAGwgB,WAGS,IAAlB//B,KAAK6zE,MAAMt0D,GAAGxF,CACvB,IAGgB,SAAqBosC,GACrC,IAEIxvD,EAFAo9E,EAAmB99D,iBAAiBkwC,EAAY7B,SAAS5tD,QAGzDyH,EAAMgoD,EAAY7B,SAAS5tD,OAE/B,IAAKC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACxBo9E,EAAiBp9E,GAAK,IAAIi9E,EAAcztB,EAAY7B,SAAS3tD,GAAIwvD,EAAY5oC,gBAAgB5mB,IAiB/F,OAdmB,SAAsBqP,GAGvC,IAFArP,EAAI,EAEGA,EAAIwH,GAAK,CACd,GAAIgoD,EAAY5oC,gBAAgB5mB,GAAG+wB,KAAO1hB,EACxC,OAAO+tE,EAAiBp9E,GAG1BA,GAAK,CACP,CAEA,OAAO,IACT,CAGF,CAGF,CArD2B,GAuDvBq9E,4BAA8B,WAChC,IAAIC,EAA6B,CAC/Bv5C,GAAI,EACJ3gB,EAAG,EACHklB,KAAM,GAEJi1C,EAA+B,CACjCx5C,GAAI,CAAC,EAAG,EAAG,GACX3gB,EAAG,CAAC,EAAG,EAAG,GACVklB,KAAM,GAGR,SAASk1C,EAAiBC,EAAiBhsE,EAAU/F,GACnDhK,OAAOuH,eAAew0E,EAAiB,WAAY,CACjDt0E,IAAK,WACH,OAAOsI,EAASisE,kBAAkBjsE,EAAS6V,KAAK4J,aAClD,IAEFusD,EAAgBE,QAAUlsE,EAAS6yB,UAAY7yB,EAAS6yB,UAAUvkC,OAAS,EAE3E09E,EAAgBxzE,IAAM,SAAUugC,GAC9B,IAAKizC,EAAgBE,QACnB,OAAO,EAGT,IAAIt9E,EAAQ,GAGVA,EADE,MAAOoR,EAAS6yB,UAAUkG,EAAM,GAC1B/4B,EAAS6yB,UAAUkG,EAAM,GAAGtqC,EAC3B,MAAOuR,EAAS6yB,UAAUkG,EAAM,GACjC/4B,EAAS6yB,UAAUkG,EAAM,GAAGlqC,EAE5BmR,EAAS6yB,UAAUkG,EAAM,GAAGtqC,EAGtC,IAAI09E,EAAqB,mBAATlyE,EAA4B,IAAIoI,OAAOzT,GAASqB,OAAOwS,OAAO,CAAC,EAAG7T,GAIlF,OAFAu9E,EAAUvtD,KAAO5e,EAAS6yB,UAAUkG,EAAM,GAAG/kC,EAAIgM,EAASgoB,KAAKnS,KAAKoM,WAAW9B,UAC/EgsD,EAAUv9E,MAAiB,mBAATqL,EAA4BrL,EAAM,GAAKA,EAClDu9E,CACT,EAEAH,EAAgBI,YAAcpsE,EAASooC,eACvC4jC,EAAgBK,YAAcrsE,EAASssE,eACvCN,EAAgBO,eAAiBvsE,EAASisE,kBAC1CD,EAAgBQ,cAAgBxsE,EAASwsE,aAC3C,CAyDA,SAASC,IACP,OAAOZ,CACT,CAEA,OAAO,SAAU7rE,GACf,OAAKA,EAIqB,mBAAtBA,EAASqyB,SAhEf,SAAyCryB,GAClCA,GAAc,OAAQA,IACzBA,EAAW6rE,GAGb,IAAIh1C,EAAO,EAAI72B,EAAS62B,KACpB/gC,EAAMkK,EAASsyB,GAAKuE,EACpBm1C,EAAkB,IAAI3pE,OAAOvM,GAIjC,OAFAk2E,EAAgBp9E,MAAQkH,EACxBi2E,EAAiBC,EAAiBhsE,EAAU,kBACrC,WAcL,OAbIA,EAAS8U,GACX9U,EAAS23B,WAGX7hC,EAAMkK,EAAS2R,EAAIklB,EAEfm1C,EAAgBp9E,QAAUkH,KAC5Bk2E,EAAkB,IAAI3pE,OAAOvM,IAEblH,MAAQkH,EACxBi2E,EAAiBC,EAAiBhsE,EAAU,mBAGvCgsE,CACT,CACF,CAsCWU,CAAgC1sE,GApC3C,SAA2CA,GACpCA,GAAc,OAAQA,IACzBA,EAAW8rE,GAGb,IAAIj1C,EAAO,EAAI72B,EAAS62B,KACpB9gC,EAAMiK,EAAS4F,MAAQ5F,EAAS4F,KAAKhS,GAAKoM,EAASsyB,GAAGhkC,OACtD09E,EAAkBx+D,iBAAiB,UAAWzX,GAC9C42E,EAAWn/D,iBAAiB,UAAWzX,GAG3C,OAFAi2E,EAAgBp9E,MAAQ+9E,EACxBZ,EAAiBC,EAAiBhsE,EAAU,oBACrC,WACDA,EAAS8U,GACX9U,EAAS23B,WAGX,IAAK,IAAIppC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EAC5Bo+E,EAASp+E,GAAKyR,EAAS2R,EAAEpjB,GAAKsoC,EAC9Bm1C,EAAgBz9E,GAAKo+E,EAASp+E,GAGhC,OAAOy9E,CACT,CACF,CAgBSY,CAAkC5sE,GAPhCysE,CAQX,CACF,CAtHkC,GAwH9BI,6BACK,SAAU1tC,GACf,SAAS2tC,EAAclvE,GACrB,OAAQA,GACN,IAAK,QACL,IAAK,QACL,IAAK,aACL,KAAK,EACH,OAAOkvE,EAAcjuC,MAEvB,IAAK,WACL,IAAK,WACL,IAAK,gBACL,IAAK,gBACL,KAAK,GACH,OAAOiuC,EAAcC,SAEvB,IAAK,gBACH,OAAOD,EAAcE,UAEvB,IAAK,gBACH,OAAOF,EAAcG,UAEvB,IAAK,WACL,IAAK,WACL,IAAK,gBACL,KAAK,EACH,OAAOH,EAAcl9D,SAEvB,IAAK,kBACH,OAAOk9D,EAAcI,UAEvB,IAAK,kBACH,OAAOJ,EAAcK,UAEvB,IAAK,kBACH,OAAOL,EAAcM,UAEvB,IAAK,cACL,IAAK,cACL,IAAK,eACL,IAAK,mBACL,KAAK,EACH,OAAON,EAAcO,YAEvB,IAAK,UACL,IAAK,UACL,KAAK,GACH,OAAOP,EAAchR,QAEvB,QACE,OAAO,KAEb,CAkBA,IAAIwR,EAEAC,EAEAC,EAEAC,EA8CJ,OApEAx9E,OAAOuH,eAAes1E,EAAe,WAAY,CAC/Cp1E,IAAKk0E,4BAA4BzsC,EAAUvtB,GAAKutB,EAAUyI,MAE5D33C,OAAOuH,eAAes1E,EAAe,YAAa,CAChDp1E,IAAKk0E,4BAA4BzsC,EAAUyI,IAAMzI,EAAUvtB,KAE7D3hB,OAAOuH,eAAes1E,EAAe,YAAa,CAChDp1E,IAAKk0E,4BAA4BzsC,EAAUuI,MAE7Cz3C,OAAOuH,eAAes1E,EAAe,YAAa,CAChDp1E,IAAKk0E,4BAA4BzsC,EAAUwI,MAE7C13C,OAAOuH,eAAes1E,EAAe,QAAS,CAC5Cp1E,IAAKk0E,4BAA4BzsC,EAAU1wC,KAWzC0wC,EAAU3qC,EACZi5E,EAAoB7B,4BAA4BzsC,EAAU3qC,IAE1D84E,EAAM1B,4BAA4BzsC,EAAUoI,IAC5CgmC,EAAM3B,4BAA4BzsC,EAAUqI,IAExCrI,EAAUsI,KACZ+lC,EAAM5B,4BAA4BzsC,EAAUsI,MAIhDx3C,OAAOuH,eAAes1E,EAAe,WAAY,CAC/Cp1E,IAAK,WACH,OAAIynC,EAAU3qC,EACLi5E,IAGF,CAACH,IAAOC,IAAOC,EAAMA,IAAQ,EACtC,IAEFv9E,OAAOuH,eAAes1E,EAAe,YAAa,CAChDp1E,IAAKk0E,4BAA4BzsC,EAAUoI,MAE7Ct3C,OAAOuH,eAAes1E,EAAe,YAAa,CAChDp1E,IAAKk0E,4BAA4BzsC,EAAUqI,MAE7Cv3C,OAAOuH,eAAes1E,EAAe,YAAa,CAChDp1E,IAAKk0E,4BAA4BzsC,EAAUsI,MAE7Cx3C,OAAOuH,eAAes1E,EAAe,cAAe,CAClDp1E,IAAKk0E,4BAA4BzsC,EAAU7nB,KAE7CrnB,OAAOuH,eAAes1E,EAAe,UAAW,CAC9Cp1E,IAAKk0E,4BAA4BzsC,EAAUpxC,KAE7CkC,OAAOuH,eAAes1E,EAAe,OAAQ,CAC3Cp1E,IAAKk0E,4BAA4BzsC,EAAU5nB,MAE7CtnB,OAAOuH,eAAes1E,EAAe,WAAY,CAC/Cp1E,IAAKk0E,4BAA4BzsC,EAAU3nB,MAE7CvnB,OAAOuH,eAAes1E,EAAe,cAAe,CAClDp1E,IAAKk0E,4BAA4BzsC,EAAU5C,MAEtCuwC,CACT,EAGErvB,yBAA2B,WAC7B,SAASiwB,EAAU9uD,GACjB,IAAI+uD,EAAa,IAAI/vC,OAWrB,YATa7sC,IAAT6tB,EACehnB,KAAKg8D,MAAMra,eAAeC,MAAMpR,eAAexpB,GAErDkb,MAAM6zC,GAEE/1E,KAAKg8D,MAAMra,eAAeC,MAChC1R,cAAc6lC,GAGtBA,CACT,CAEA,SAASC,EAAWn+E,EAAKmvB,GACvB,IAAI+uD,EAAa/1E,KAAK81E,UAAU9uD,GAIhC,OAHA+uD,EAAWrtE,MAAM,IAAM,EACvBqtE,EAAWrtE,MAAM,IAAM,EACvBqtE,EAAWrtE,MAAM,IAAM,EAChB1I,KAAKi2E,WAAWF,EAAYl+E,EACrC,CAEA,SAASq+E,EAAQr+E,EAAKmvB,GACpB,IAAI+uD,EAAa/1E,KAAK81E,UAAU9uD,GAChC,OAAOhnB,KAAKi2E,WAAWF,EAAYl+E,EACrC,CAEA,SAASs+E,EAAat+E,EAAKmvB,GACzB,IAAI+uD,EAAa/1E,KAAK81E,UAAU9uD,GAIhC,OAHA+uD,EAAWrtE,MAAM,IAAM,EACvBqtE,EAAWrtE,MAAM,IAAM,EACvBqtE,EAAWrtE,MAAM,IAAM,EAChB1I,KAAKo2E,YAAYL,EAAYl+E,EACtC,CAEA,SAASw+E,EAAUx+E,EAAKmvB,GACtB,IAAI+uD,EAAa/1E,KAAK81E,UAAU9uD,GAChC,OAAOhnB,KAAKo2E,YAAYL,EAAYl+E,EACtC,CAEA,SAASo+E,EAAWp+B,EAAQhgD,GAC1B,GAAImI,KAAKg8D,MAAMjT,WAAa/oD,KAAKg8D,MAAMjT,UAAUryD,OAAQ,CACvD,IAAIC,EACAwH,EAAM6B,KAAKg8D,MAAMjT,UAAUryD,OAE/B,IAAKC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACxBqJ,KAAKg8D,MAAMjT,UAAUpyD,GAAGgrD,eAAeC,MAAM1R,cAAc2H,EAE/D,CAEA,OAAOA,EAAOzN,kBAAkBvyC,EAAI,GAAIA,EAAI,GAAIA,EAAI,IAAM,EAC5D,CAEA,SAASu+E,EAAYv+B,EAAQhgD,GAC3B,GAAImI,KAAKg8D,MAAMjT,WAAa/oD,KAAKg8D,MAAMjT,UAAUryD,OAAQ,CACvD,IAAIC,EACAwH,EAAM6B,KAAKg8D,MAAMjT,UAAUryD,OAE/B,IAAKC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACxBqJ,KAAKg8D,MAAMjT,UAAUpyD,GAAGgrD,eAAeC,MAAM1R,cAAc2H,EAE/D,CAEA,OAAOA,EAAO1N,aAAatyC,EAC7B,CAEA,SAASy+E,EAASz+E,GAChB,IAAIk+E,EAAa,IAAI/vC,OAKrB,GAJA+vC,EAAWvwE,QAEXxF,KAAKg8D,MAAMra,eAAeC,MAAM1R,cAAc6lC,GAE1C/1E,KAAKg8D,MAAMjT,WAAa/oD,KAAKg8D,MAAMjT,UAAUryD,OAAQ,CACvD,IAAIC,EACAwH,EAAM6B,KAAKg8D,MAAMjT,UAAUryD,OAE/B,IAAKC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACxBqJ,KAAKg8D,MAAMjT,UAAUpyD,GAAGgrD,eAAeC,MAAM1R,cAAc6lC,GAG7D,OAAOA,EAAW5rC,aAAatyC,EACjC,CAEA,OAAOk+E,EAAW5rC,aAAatyC,EACjC,CAEA,SAAS0+E,IACP,MAAO,CAAC,EAAG,EAAG,EAAG,EACnB,CAEA,OAAO,SAAUnmD,GACf,IAAIomD,EAUJ,SAAS1D,EAAmB9sE,GAC1B,OAAQA,GACN,IAAK,0BACL,IAAK,WACL,KAAK,EACH,OAAO8sE,EAAmBtsB,eAE5B,KAAK,EACL,KAAK,EACL,IAAK,YACL,IAAK,YACL,IAAK,uBACH,OAAOgwB,EAET,KAAK,EACL,IAAK,qBACL,IAAK,UACL,IAAK,UACH,OAAO1D,EAAmBrnB,OAE5B,IAAK,uBACH,OAAOqnB,EAAmBlsB,cAE5B,QACE,OAAO,KAEb,CAEAksB,EAAmBgD,UAAYA,EAC/BhD,EAAmBsD,YAAcA,EACjCtD,EAAmBmD,WAAaA,EAChCnD,EAAmBoD,QAAUA,EAC7BpD,EAAmBkD,WAAaA,EAChClD,EAAmBuD,UAAYA,EAC/BvD,EAAmBqD,aAAeA,EAClCrD,EAAmB2D,OAASP,EAC5BpD,EAAmBwD,SAAWA,EAC9BxD,EAAmByD,YAAcA,EACjCzD,EAAmB9wB,iBAAmB5xB,EAAK4xB,iBAAiBn6C,KAAKuoB,GACjE0iD,EAAmB9W,MAAQ5rC,EAE3B,IAAIsmD,EAAwB9iE,cAD5B4iE,EAAqBvB,6BAA6B7kD,EAAKuxB,eAAeC,OACR,eAuC9D,OAtCAvpD,OAAOs+E,iBAAiB7D,EAAoB,CAC1C8D,UAAW,CACT92E,IAAK,WACH,OAAOswB,EAAK24B,UAAUryD,MACxB,GAEFsmD,OAAQ,CACNl9C,IAAK,WACH,OAAOswB,EAAK24B,UAAU,GAAG7C,cAC3B,GAEFivB,SAAUvhE,cAAc4iE,EAAoB,YAC5CvvC,MAAOrzB,cAAc4iE,EAAoB,SACzCx+D,SAAUpE,cAAc4iE,EAAoB,YAC5CtS,QAAStwD,cAAc4iE,EAAoB,WAC3Cf,YAAaiB,EACbG,aAAcH,EACdnvC,UAAW,CACTznC,IAAK,WACH,OAAO02E,CACT,GAEFM,OAAQ,CACNh3E,IAAK,WACH,OAAOswB,EAAK4wB,SACd,KAGJ8xB,EAAmBiE,UAAY3mD,EAAKpiB,KAAKwR,GACzCszD,EAAmBvlE,MAAQ6iB,EAAKpiB,KAAKutB,IACrCu3C,EAAmBtnE,OAAS4kB,EAAKpiB,KAAK4P,MACtCk1D,EAAmBhwD,OAA0B,IAAjBsN,EAAKpiB,KAAK0P,GAAW0S,EAAKpiB,KAAKvS,EAAI,IAC/Dq3E,EAAmBjwD,MAAyB,IAAjBuN,EAAKpiB,KAAK0P,GAAW0S,EAAKpiB,KAAK8tC,EAAI,IAC9Dg3B,EAAmBkE,QAAU5mD,EAAKpiB,KAAKsR,GAAK8Q,EAAKnS,KAAKoM,WAAW9B,UACjEuqD,EAAmBmE,SAAW7mD,EAAKpiB,KAAKuR,GAAK6Q,EAAKnS,KAAKoM,WAAW9B,UAClEuqD,EAAmBoE,MAAQ9mD,EAAKpiB,KAAK0Z,GACrCorD,EAAmB1sB,sBAtFnB,SAAgCD,GAC9B2sB,EAAmBh6E,KAAO,IAAI66E,qBAAqBxtB,EAAa/1B,EAClE,EAqFA0iD,EAAmBvsB,yBAnFnB,SAAmCxD,GACjC+vB,EAAmBrnB,OAAS1I,CAC9B,EAkFO+vB,CACT,CACF,CAzL+B,GA2L3BqE,qBACK,SAAUC,EAAmBC,GAClC,OAAO,SAAUn5E,GAGf,OAFAA,OAAc/E,IAAR+E,EAAoB,EAAIA,IAEnB,EACFk5E,EAGFC,EAAoBn5E,EAAM,EACnC,CACF,EAGEo5E,kBACK,SAAUC,EAAc3C,GAC7B,IAAIwC,EAAoB,CACtBF,MAAOK,GAaT,OAVA,SAAwBr5E,GAGtB,OAFAA,OAAc/E,IAAR+E,EAAoB,EAAIA,IAEnB,EACFk5E,EAGFxC,EAAc12E,EAAM,EAC7B,CAGF,EAGE4nD,2BAA6B,WA4C/B,SAAS0xB,EAAqBxpE,EAAMuqC,EAAUq8B,EAAexkD,GAC3D,SAASqnD,EAAezxE,GAKtB,IAJA,IAAI+8C,EAAU/0C,EAAKg1C,GACfrsD,EAAI,EACJwH,EAAM4kD,EAAQrsD,OAEXC,EAAIwH,GAAK,CACd,GAAI6H,IAAS+8C,EAAQpsD,GAAG+wB,IAAM1hB,IAAS+8C,EAAQpsD,GAAG+gF,IAAM1xE,IAAS+8C,EAAQpsD,GAAG0iD,GAC1E,OAAsB,IAAlB0J,EAAQpsD,GAAG+mB,GACNulC,EAAetsD,GAGjBssD,EAAetsD,KAGxBA,GAAK,CACP,CAEA,MAAM,IAAIsN,KACZ,CAEA,IAGItN,EAHAghF,EAAiBR,qBAAqBM,EAAgB7C,GAEtD3xB,EAAiB,GAEjB9kD,EAAM6P,EAAKg1C,GAAGtsD,OAElB,IAAKC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACF,IAAlBqX,EAAKg1C,GAAGrsD,GAAG+mB,GACbulC,EAAe3qD,KAAKk/E,EAAqBxpE,EAAKg1C,GAAGrsD,GAAI4hD,EAAS0K,eAAetsD,GAAI4hD,EAAS0K,eAAetsD,GAAGi+E,cAAexkD,IAE3H6yB,EAAe3qD,KAAKs/E,EAAqBr/B,EAAS0K,eAAetsD,GAAIqX,EAAKg1C,GAAGrsD,GAAG+mB,GAAI0S,EAAMunD,IA2B9F,MAvBgB,uBAAZ3pE,EAAK0pE,IACPr/E,OAAOuH,eAAe63E,EAAgB,QAAS,CAC7C33E,IAAK,WACH,OAAOmjD,EAAe,IACxB,IAIJ5qD,OAAOs+E,iBAAiBc,EAAgB,CACtCI,cAAe,CACb/3E,IAAK,WACH,OAAOkO,EAAK8pE,EACd,GAEFZ,MAAO,CACLlgF,MAAOgX,EAAK0Z,IAEdktD,cAAe,CACb59E,MAAO2gF,KAGXF,EAAeM,QAAsB,IAAZ/pE,EAAKgqE,GAC9BP,EAAeX,OAASW,EAAeM,QAChCN,CACT,CAEA,SAASG,EAAqB9/D,EAASzV,EAAM+tB,EAAMwkD,GACjD,IAAIqD,EAAqBjE,4BAA4Bl8D,EAAQlb,GAc7D,OAJIkb,EAAQlb,EAAEs7E,kBACZpgE,EAAQlb,EAAEs7E,iBAAiBZ,kBAAkB,GAAI1C,IATnD,WACE,OAAa,KAATvyE,EACK+tB,EAAKnS,KAAK6J,cAAchQ,EAAQlb,EAAEmd,GAGpCk+D,GACT,CAOF,CAEA,MA1HS,CACP3xB,uBAGF,SAAgCl2B,EAAMwkD,GACpC,GAAIxkD,EAAK82B,eAAgB,CACvB,IAEIvwD,EAFAssD,EAAiB,GACjBk1B,EAAc/nD,EAAKpiB,KAAKg1C,GAExB7kD,EAAMiyB,EAAK82B,eAAejE,eAAevsD,OAE7C,IAAKC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACxBssD,EAAe3qD,KAAKk/E,EAAqBW,EAAYxhF,GAAIy5B,EAAK82B,eAAejE,eAAetsD,GAAIi+E,EAAexkD,IAGjH,IAAI2yB,EAAU3yB,EAAKpiB,KAAKg1C,IAAM,GAE1By0B,EAAiB,SAAwBzxE,GAI3C,IAHArP,EAAI,EACJwH,EAAM4kD,EAAQrsD,OAEPC,EAAIwH,GAAK,CACd,GAAI6H,IAAS+8C,EAAQpsD,GAAG+wB,IAAM1hB,IAAS+8C,EAAQpsD,GAAG+gF,IAAM1xE,IAAS+8C,EAAQpsD,GAAG0iD,GAC1E,OAAO4J,EAAetsD,GAGxBA,GAAK,CACP,CAEA,OAAO,IACT,EAOA,OALA0B,OAAOuH,eAAe63E,EAAgB,gBAAiB,CACrD33E,IAAK,WACH,OAAOijD,EAAQrsD,MACjB,IAEK+gF,CACT,CAEA,OAAO,IACT,EAkFF,CA5HiC,GA8H7BW,mBACK,SAA8Bj2C,EAAOk2C,EAAMzD,GAChD,IAAI/gE,EAAOwkE,EAAKh8C,GAEhB,SAAS+6C,EAAkBl5E,GACzB,MAAY,UAARA,GAA2B,UAARA,GAA2B,SAARA,GAA0B,SAARA,GAA0B,sBAARA,GAAuC,IAARA,EACpGk5E,EAAkBl7D,KAGpB,IACT,CAEA,IAAIy7D,EAAiBR,qBAAqBC,EAAmBxC,GAsC7D,OApCA/gE,EAAKqkE,iBAAiBZ,kBAAkB,OAAQK,IAChDt/E,OAAOs+E,iBAAiBS,EAAmB,CACzCl7D,KAAM,CACJpc,IAAK,WAKH,OAJI+T,EAAKqJ,GACPrJ,EAAKksB,WAGAlsB,CACT,GAEFsuB,MAAO,CACLriC,IAAK,WAKH,OAJI+T,EAAKqJ,GACPrJ,EAAKksB,WAGAlsB,CACT,GAEFqjE,MAAO,CACLlgF,MAAOmrC,EAAMza,IAEf2xB,GAAI,CACFriD,MAAOmrC,EAAMkX,IAEfi/B,cAAe,CACbthF,MAAOmrC,EAAMkX,IAEfq+B,GAAI,CACF1gF,MAAOmrC,EAAMu1C,IAEf9C,cAAe,CACb59E,MAAO49E,KAGJwC,CACT,EAGErxB,yBAA2B,WAC7B,SAASwyB,EAAgBz6D,EAAQu6D,EAAMzD,GACrC,IACIj+E,EADAkB,EAAM,GAENsG,EAAM2f,EAASA,EAAOpnB,OAAS,EAEnC,IAAKC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACH,OAAjBmnB,EAAOnnB,GAAG+mB,GACZ7lB,EAAIS,KAAKkgF,EAAsB16D,EAAOnnB,GAAI0hF,EAAK1hF,GAAIi+E,IACzB,OAAjB92D,EAAOnnB,GAAG+mB,GACnB7lB,EAAIS,KAAKmgF,EAAqB36D,EAAOnnB,GAAI0hF,EAAK1hF,GAAIi+E,IACxB,OAAjB92D,EAAOnnB,GAAG+mB,GACnB7lB,EAAIS,KAAKogF,EAAuB56D,EAAOnnB,GAAI0hF,EAAK1hF,GAAIi+E,IAC1B,OAAjB92D,EAAOnnB,GAAG+mB,GACnB7lB,EAAIS,KAAKqgF,EAAqB76D,EAAOnnB,GAAI0hF,EAAK1hF,GAAIi+E,IACxB,OAAjB92D,EAAOnnB,GAAG+mB,KACO,OAAjBI,EAAOnnB,GAAG+mB,GACnB7lB,EAAIS,KAAKsgF,EAAwB96D,EAAOnnB,GAAI0hF,EAAK1hF,GAAIi+E,IAC3B,OAAjB92D,EAAOnnB,GAAG+mB,GACnB7lB,EAAIS,KAAKugF,EAAqB/6D,EAAOnnB,GAAI0hF,EAAK1hF,GAAIi+E,IACxB,OAAjB92D,EAAOnnB,GAAG+mB,GACnB7lB,EAAIS,KAAK8/E,mBAAmBt6D,EAAOnnB,GAAI0hF,EAAK1hF,GAAIi+E,IACtB,OAAjB92D,EAAOnnB,GAAG+mB,GACnB7lB,EAAIS,KAAKwgF,EAAqBh7D,EAAOnnB,GAAI0hF,EAAK1hF,GAAIi+E,IACxB,OAAjB92D,EAAOnnB,GAAG+mB,GACnB7lB,EAAIS,KAAKygF,EAAwBj7D,EAAOnnB,GAAI0hF,EAAK1hF,GAAIi+E,IAC3B,OAAjB92D,EAAOnnB,GAAG+mB,GACnB7lB,EAAIS,KAAK0gF,EAAyBl7D,EAAOnnB,GAAI0hF,EAAK1hF,GAAIi+E,IAC5B,OAAjB92D,EAAOnnB,GAAG+mB,GACnB7lB,EAAIS,KAAK2gF,EAA6Bn7D,EAAOnnB,GAAI0hF,EAAK1hF,GAAIi+E,IAE1D/8E,EAAIS,MAA6BwlB,EAAOnnB,GAAI0hF,EAAK1hF,GAuJrD,WACE,OAAO,IACT,KArJA,OAAOkB,CACT,CAkCA,SAAS2gF,EAAsBr2C,EAAOk2C,EAAMzD,GAC1C,IAAIwC,EAAoB,SAA4BpgF,GAClD,OAAQA,GACN,IAAK,qBACL,IAAK,WACL,KAAK,EACH,OAAOogF,EAAkBzwB,QAK3B,QACE,OAAOywB,EAAkB7vC,UAE/B,EAEA6vC,EAAkBxC,cAAgBuC,qBAAqBC,EAAmBxC,GAC1E,IAAIjuB,EAjDN,SAAkCxkB,EAAOk2C,EAAMzD,GAC7C,IAAIsE,EAEA9B,EAAoB,SAA4BpgF,GAIlD,IAHA,IAAIL,EAAI,EACJwH,EAAM+6E,EAAWxiF,OAEdC,EAAIwH,GAAK,CACd,GAAI+6E,EAAWviF,GAAGugF,QAAUlgF,GAASkiF,EAAWviF,GAAG+gF,KAAO1gF,GAASkiF,EAAWviF,GAAG2hF,gBAAkBthF,GAASkiF,EAAWviF,GAAG0iD,KAAOriD,GAASkiF,EAAWviF,GAAG4kC,MAAQvkC,EAC9J,OAAOkiF,EAAWviF,GAGpBA,GAAK,CACP,CAEA,MAAqB,kBAAVK,EACFkiF,EAAWliF,EAAQ,GAGrB,IACT,EAEAogF,EAAkBxC,cAAgBuC,qBAAqBC,EAAmBxC,GAC1EsE,EAAaX,EAAgBp2C,EAAM9rC,GAAIgiF,EAAKhiF,GAAI+gF,EAAkBxC,eAClEwC,EAAkBS,cAAgBqB,EAAWxiF,OAC7C,IAAI8/E,EAAqB2C,EAA0Bh3C,EAAM9rC,GAAG8rC,EAAM9rC,GAAGK,OAAS,GAAI2hF,EAAKhiF,GAAGgiF,EAAKhiF,GAAGK,OAAS,GAAI0gF,EAAkBxC,eAIjI,OAHAwC,EAAkB7vC,UAAYivC,EAC9BY,EAAkBkB,cAAgBn2C,EAAMi3C,IACxChC,EAAkBF,MAAQ/0C,EAAMza,GACzB0vD,CACT,CAmBgBiC,CAAyBl3C,EAAOk2C,EAAMjB,EAAkBxC,eAClE4B,EAAqB2C,EAA0Bh3C,EAAM9rC,GAAG8rC,EAAM9rC,GAAGK,OAAS,GAAI2hF,EAAKhiF,GAAGgiF,EAAKhiF,GAAGK,OAAS,GAAI0gF,EAAkBxC,eAajI,OAZAwC,EAAkBzwB,QAAUA,EAC5BywB,EAAkB7vC,UAAYivC,EAC9Bn+E,OAAOuH,eAAew3E,EAAmB,QAAS,CAChDt3E,IAAK,WACH,OAAOqiC,EAAMza,EACf,IAGF0vD,EAAkBS,cAAgB11C,EAAM21C,GACxCV,EAAkBkB,cAAgBn2C,EAAMkX,GACxC+9B,EAAkB1vD,GAAKya,EAAMza,GAC7B0vD,EAAkBM,GAAKv1C,EAAMu1C,GACtBN,CACT,CAEA,SAASqB,EAAqBt2C,EAAOk2C,EAAMzD,GACzC,SAASwC,EAAkBl5E,GACzB,MAAY,UAARA,GAA2B,UAARA,EACdk5E,EAAkB/8D,MAGf,YAARnc,GAA6B,YAARA,EAChBk5E,EAAkBlT,QAGpB,IACT,CAkBA,OAhBA7rE,OAAOs+E,iBAAiBS,EAAmB,CACzC/8D,MAAO,CACLva,IAAKk0E,4BAA4BqE,EAAKp4D,IAExCikD,QAAS,CACPpkE,IAAKk0E,4BAA4BqE,EAAKliF,IAExC+gF,MAAO,CACLlgF,MAAOmrC,EAAMza,IAEfgwD,GAAI,CACF1gF,MAAOmrC,EAAMu1C,MAGjBW,EAAKp4D,EAAEi4D,iBAAiBZ,kBAAkB,QAAS1C,IACnDyD,EAAKliF,EAAE+hF,iBAAiBZ,kBAAkB,UAAW1C,IAC9CwC,CACT,CAEA,SAAS6B,EAA6B92C,EAAOk2C,EAAMzD,GACjD,SAASwC,EAAkBl5E,GACzB,MAAY,gBAARA,GAAiC,gBAARA,EACpBk5E,EAAkBkC,WAGf,cAARp7E,GAA+B,cAARA,EAClBk5E,EAAkBmC,SAGf,YAARr7E,GAA6B,YAARA,EAChBk5E,EAAkBlT,QAGpB,IACT,CA2BA,OAzBA7rE,OAAOs+E,iBAAiBS,EAAmB,CACzCkC,WAAY,CACVx5E,IAAKk0E,4BAA4BqE,EAAKxhF,IAExC0iF,SAAU,CACRz5E,IAAKk0E,4BAA4BqE,EAAKphF,IAExCitE,QAAS,CACPpkE,IAAKk0E,4BAA4BqE,EAAKliF,IAExCkM,KAAM,CACJvC,IAAK,WACH,MAAO,GACT,GAEFo3E,MAAO,CACLlgF,MAAOmrC,EAAMza,IAEfgwD,GAAI,CACF1gF,MAAOmrC,EAAMu1C,MAGjBW,EAAKxhF,EAAEqhF,iBAAiBZ,kBAAkB,cAAe1C,IACzDyD,EAAKphF,EAAEihF,iBAAiBZ,kBAAkB,YAAa1C,IACvDyD,EAAKliF,EAAE+hF,iBAAiBZ,kBAAkB,UAAW1C,IAC9CwC,CACT,CAUA,SAASsB,EAAuBv2C,EAAOk2C,EAAMzD,GAC3C,IAUIj+E,EAVAghF,EAAiBR,qBAAqBC,EAAmBxC,GAEzD4E,EAAqBrC,qBAAqBsC,EAAQ9B,GAEtD,SAAS+B,EAAoB/iF,GAC3B0B,OAAOuH,eAAe65E,EAAQt3C,EAAM7nC,EAAE3D,GAAG+wB,GAAI,CAC3C5nB,IAAKk0E,4BAA4BqE,EAAK/9E,EAAEs1D,UAAUj5D,GAAGiG,IAEzD,CAGA,IAAIuB,EAAMgkC,EAAM7nC,EAAI6nC,EAAM7nC,EAAE5D,OAAS,EACjC+iF,EAAS,CAAC,EAEd,IAAK9iF,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACxB+iF,EAAoB/iF,GACpB0hF,EAAK/9E,EAAEs1D,UAAUj5D,GAAGiG,EAAEs7E,iBAAiBsB,GAGzC,SAASpC,EAAkBl5E,GACzB,MAAY,UAARA,GAA2B,UAARA,EACdk5E,EAAkB/8D,MAGf,YAARnc,GAA6B,YAARA,EAChBk5E,EAAkBlT,QAGf,iBAARhmE,GAAkC,iBAARA,EACrBk5E,EAAkBrH,YAGpB,IACT,CA2BA,OAzBA13E,OAAOs+E,iBAAiBS,EAAmB,CACzC/8D,MAAO,CACLva,IAAKk0E,4BAA4BqE,EAAKp4D,IAExCikD,QAAS,CACPpkE,IAAKk0E,4BAA4BqE,EAAKliF,IAExC45E,YAAa,CACXjwE,IAAKk0E,4BAA4BqE,EAAKv8B,IAExC69B,KAAM,CACJ75E,IAAK,WACH,OAAO25E,CACT,GAEFvC,MAAO,CACLlgF,MAAOmrC,EAAMza,IAEfgwD,GAAI,CACF1gF,MAAOmrC,EAAMu1C,MAGjBW,EAAKp4D,EAAEi4D,iBAAiBZ,kBAAkB,QAASK,IACnDU,EAAKliF,EAAE+hF,iBAAiBZ,kBAAkB,UAAWK,IACrDU,EAAKv8B,EAAEo8B,iBAAiBZ,kBAAkB,eAAgBK,IACnDP,CACT,CAEA,SAASuB,EAAqBx2C,EAAOk2C,EAAMzD,GACzC,SAASwC,EAAkBl5E,GACzB,OAAIA,IAAQikC,EAAMlrC,EAAEoiD,IAAc,QAARn7C,GAAyB,QAARA,EAClCk5E,EAAkB5oD,IAGvBtwB,IAAQikC,EAAMtrC,EAAEwiD,GACX+9B,EAAkBwC,MAGvB17E,IAAQikC,EAAMhsC,EAAEkjD,GACX+9B,EAAkB98D,OAGpB,IACT,CAEA,IAAIq9D,EAAiBR,qBAAqBC,EAAmBxC,GAuB7D,OArBAwC,EAAkBkB,cAAgBn2C,EAAMkX,GACxCg/B,EAAKxhF,EAAEqhF,iBAAiBZ,kBAAkB,QAASK,IACnDU,EAAKphF,EAAEihF,iBAAiBZ,kBAAkB,MAAOK,IACjDU,EAAKliF,EAAE+hF,iBAAiBZ,kBAAkB,SAAUK,IACpDP,EAAkBkB,cAAgBn2C,EAAMkX,GACxC+9B,EAAkBxC,cAAgBA,EAClCv8E,OAAOs+E,iBAAiBS,EAAmB,CACzCwC,MAAO,CACL95E,IAAKk0E,4BAA4BqE,EAAKxhF,IAExC23B,IAAK,CACH1uB,IAAKk0E,4BAA4BqE,EAAKphF,IAExCqjB,OAAQ,CACNxa,IAAKk0E,4BAA4BqE,EAAKliF,IAExC+gF,MAAO,CACLlgF,MAAOmrC,EAAMza,MAGjB0vD,EAAkBM,GAAKv1C,EAAMu1C,GACtBN,CACT,CAEA,SAAS+B,EAA0Bh3C,EAAOk2C,EAAMzD,GAC9C,SAASwC,EAAkBpgF,GACzB,OAAImrC,EAAMziB,EAAE25B,KAAOriD,GAAmB,iBAAVA,EACnBogF,EAAkB3B,YAGvBtzC,EAAMhsC,EAAEkjD,KAAOriD,GAAmB,YAAVA,EACnBogF,EAAkBlT,QAGvB/hC,EAAMvlC,EAAEy8C,KAAOriD,GAAmB,aAAVA,EACnBogF,EAAkBp/D,SAGvBmqB,EAAMnoB,EAAEq/B,KAAOriD,GAAmB,aAAVA,GAAkC,yBAAVA,EAC3CogF,EAAkBjC,SAGvBhzC,EAAMtrC,EAAEwiD,KAAOriD,GAAmB,UAAVA,EACnBogF,EAAkBnwC,MAGvB9E,EAAMxiB,IAAMwiB,EAAMxiB,GAAG05B,KAAOriD,GAAmB,SAAVA,EAChCogF,EAAkBrwC,KAGvB5E,EAAMviB,IAAMuiB,EAAMviB,GAAGy5B,KAAOriD,GAAmB,cAAVA,EAChCogF,EAAkByC,SAGpB,IACT,CAEA,IAAIlC,EAAiBR,qBAAqBC,EAAmBxC,GA2C7D,OAzCAyD,EAAK9wC,UAAUwS,OAAO5jD,EAAE+hF,iBAAiBZ,kBAAkB,UAAWK,IACtEU,EAAK9wC,UAAUwS,OAAOn9C,EAAEs7E,iBAAiBZ,kBAAkB,WAAYK,IACvEU,EAAK9wC,UAAUwS,OAAOr6B,EAAEw4D,iBAAiBZ,kBAAkB,eAAgBK,IAC3EU,EAAK9wC,UAAUwS,OAAOljD,EAAEqhF,iBAAiBZ,kBAAkB,QAASK,IACpEU,EAAK9wC,UAAUwS,OAAO//B,EAAEk+D,iBAAiBZ,kBAAkB,WAAYK,IAEnEU,EAAK9wC,UAAUwS,OAAOp6B,KACxB04D,EAAK9wC,UAAUwS,OAAOp6B,GAAGu4D,iBAAiBZ,kBAAkB,OAAQK,IACpEU,EAAK9wC,UAAUwS,OAAOn6B,GAAGs4D,iBAAiBZ,kBAAkB,aAAcK,KAG5EU,EAAK9wC,UAAUhoB,GAAG24D,iBAAiBZ,kBAAkB,UAAWK,IAChEt/E,OAAOs+E,iBAAiBS,EAAmB,CACzClT,QAAS,CACPpkE,IAAKk0E,4BAA4BqE,EAAK9wC,UAAUwS,OAAO5jD,IAEzD6hB,SAAU,CACRlY,IAAKk0E,4BAA4BqE,EAAK9wC,UAAUwS,OAAOn9C,IAEzD64E,YAAa,CACX31E,IAAKk0E,4BAA4BqE,EAAK9wC,UAAUwS,OAAOr6B,IAEzDunB,MAAO,CACLnnC,IAAKk0E,4BAA4BqE,EAAK9wC,UAAUwS,OAAOljD,IAEzDs+E,SAAU,CACRr1E,IAAKk0E,4BAA4BqE,EAAK9wC,UAAUwS,OAAO//B,IAEzD+sB,KAAM,CACJjnC,IAAKk0E,4BAA4BqE,EAAK9wC,UAAUwS,OAAOp6B,KAEzDk6D,SAAU,CACR/5E,IAAKk0E,4BAA4BqE,EAAK9wC,UAAUwS,OAAOn6B,KAEzDs3D,MAAO,CACLlgF,MAAOmrC,EAAMza,MAGjB0vD,EAAkB15D,GAAK,KACvB05D,EAAkBM,GAAKv1C,EAAMu1C,GAC7BN,EAAkBxC,cAAgBA,EAC3BwC,CACT,CAEA,SAASwB,EAAwBz2C,EAAOk2C,EAAMzD,GAC5C,SAASwC,EAAkBpgF,GACzB,OAAImrC,EAAMvlC,EAAEy8C,KAAOriD,EACVogF,EAAkBp/D,SAGvBmqB,EAAMtrC,EAAEwiD,KAAOriD,EACVogF,EAAkBr7B,KAGpB,IACT,CAEA,IAAI47B,EAAiBR,qBAAqBC,EAAmBxC,GAE7DwC,EAAkBkB,cAAgBn2C,EAAMkX,GACxC,IAAIxlC,EAAsB,OAAfwkE,EAAKh8C,GAAG3e,GAAc26D,EAAKh8C,GAAGxoB,KAAOwkE,EAAKh8C,GAerD,OAdAxoB,EAAKhd,EAAEqhF,iBAAiBZ,kBAAkB,OAAQK,IAClD9jE,EAAKjX,EAAEs7E,iBAAiBZ,kBAAkB,WAAYK,IACtDt/E,OAAOs+E,iBAAiBS,EAAmB,CACzCr7B,KAAM,CACJj8C,IAAKk0E,4BAA4BngE,EAAKhd,IAExCmhB,SAAU,CACRlY,IAAKk0E,4BAA4BngE,EAAKjX,IAExCs6E,MAAO,CACLlgF,MAAOmrC,EAAMza,MAGjB0vD,EAAkBM,GAAKv1C,EAAMu1C,GACtBN,CACT,CAEA,SAASyB,EAAqB12C,EAAOk2C,EAAMzD,GACzC,SAASwC,EAAkBpgF,GACzB,OAAImrC,EAAMvlC,EAAEy8C,KAAOriD,EACVogF,EAAkBp/D,SAGvBmqB,EAAMnoB,EAAEq/B,KAAOriD,EACVogF,EAAkBjC,SAGvBhzC,EAAM3kB,GAAG67B,KAAOriD,EACXogF,EAAkB1kD,OAGvByP,EAAMwC,GAAG0U,KAAOriD,GAAmB,kCAAVA,EACpBogF,EAAkB0C,YAGvB33C,EAAMhyB,GAAGkpC,KAAOriD,EACXogF,EAAkB2C,gBAGvB53C,EAAMmC,IAAOnC,EAAMmC,GAAG+U,KAAOriD,GAAmB,kCAAVA,EAItCmrC,EAAMoC,IAAMpC,EAAMoC,GAAG8U,KAAOriD,EACvBogF,EAAkB4C,eAGpB,KAPE5C,EAAkB6C,WAQ7B,CAEA,IAAItC,EAAiBR,qBAAqBC,EAAmBxC,GAEzD/gE,EAAsB,OAAfwkE,EAAKh8C,GAAG3e,GAAc26D,EAAKh8C,GAAGxoB,KAAOwkE,EAAKh8C,GAwCrD,OAvCA+6C,EAAkBkB,cAAgBn2C,EAAMkX,GACxCxlC,EAAK8wB,GAAGuzC,iBAAiBZ,kBAAkB,eAAgBK,IAC3D9jE,EAAK1D,GAAG+nE,iBAAiBZ,kBAAkB,kBAAmBK,IAC9D9jE,EAAK2J,GAAG06D,iBAAiBZ,kBAAkB,SAAUK,IACrD9jE,EAAKjX,EAAEs7E,iBAAiBZ,kBAAkB,WAAYK,IACtD9jE,EAAKmG,EAAEk+D,iBAAiBZ,kBAAkB,WAAYK,IAElDx1C,EAAMmC,KACRzwB,EAAKywB,GAAG4zC,iBAAiBZ,kBAAkB,eAAgBK,IAC3D9jE,EAAK0wB,GAAG2zC,iBAAiBZ,kBAAkB,kBAAmBK,KAGhEt/E,OAAOs+E,iBAAiBS,EAAmB,CACzCp/D,SAAU,CACRlY,IAAKk0E,4BAA4BngE,EAAKjX,IAExCu4E,SAAU,CACRr1E,IAAKk0E,4BAA4BngE,EAAKmG,IAExC0Y,OAAQ,CACN5yB,IAAKk0E,4BAA4BngE,EAAK2J,KAExCs8D,YAAa,CACXh6E,IAAKk0E,4BAA4BngE,EAAK8wB,KAExCo1C,eAAgB,CACdj6E,IAAKk0E,4BAA4BngE,EAAK1D,KAExC8pE,YAAa,CACXn6E,IAAKk0E,4BAA4BngE,EAAKywB,KAExC01C,eAAgB,CACdl6E,IAAKk0E,4BAA4BngE,EAAK0wB,KAExC2yC,MAAO,CACLlgF,MAAOmrC,EAAMza,MAGjB0vD,EAAkBM,GAAKv1C,EAAMu1C,GACtBN,CACT,CAEA,SAAS0B,EAAqB32C,EAAOk2C,EAAMzD,GACzC,SAASwC,EAAkBpgF,GACzB,OAAImrC,EAAMvlC,EAAEy8C,KAAOriD,EACVogF,EAAkBp/D,SAGvBmqB,EAAMnoB,EAAEq/B,KAAOriD,EACVogF,EAAkBvyC,UAGvB1C,EAAMtrC,EAAEwiD,KAAOriD,GAAmB,SAAVA,GAA8B,0BAAVA,EACvCogF,EAAkBr7B,KAGpB,IACT,CAEA,IAAI47B,EAAiBR,qBAAqBC,EAAmBxC,GAEzD/gE,EAAsB,OAAfwkE,EAAKh8C,GAAG3e,GAAc26D,EAAKh8C,GAAGxoB,KAAOwkE,EAAKh8C,GAoBrD,OAnBA+6C,EAAkBkB,cAAgBn2C,EAAMkX,GACxCxlC,EAAKjX,EAAEs7E,iBAAiBZ,kBAAkB,WAAYK,IACtD9jE,EAAKhd,EAAEqhF,iBAAiBZ,kBAAkB,OAAQK,IAClD9jE,EAAKmG,EAAEk+D,iBAAiBZ,kBAAkB,WAAYK,IACtDt/E,OAAOs+E,iBAAiBS,EAAmB,CACzCp/D,SAAU,CACRlY,IAAKk0E,4BAA4BngE,EAAKjX,IAExCioC,UAAW,CACT/kC,IAAKk0E,4BAA4BngE,EAAKmG,IAExC+hC,KAAM,CACJj8C,IAAKk0E,4BAA4BngE,EAAKhd,IAExCqgF,MAAO,CACLlgF,MAAOmrC,EAAMza,MAGjB0vD,EAAkBM,GAAKv1C,EAAMu1C,GACtBN,CACT,CAEA,SAAS2B,EAAwB52C,EAAOk2C,EAAMzD,GAC5C,SAASwC,EAAkBpgF,GACzB,OAAImrC,EAAMnoB,EAAEq/B,KAAOriD,GAAmB,oBAAVA,EACnBogF,EAAkBnhC,OAGpB,IACT,CAEA,IAAI0hC,EAAiBR,qBAAqBC,EAAmBxC,GAEzD/gE,EAAOwkE,EAYX,OAXAjB,EAAkBkB,cAAgBn2C,EAAMkX,GACxCxlC,EAAKmmC,GAAGk+B,iBAAiBZ,kBAAkB,SAAUK,IACrDt/E,OAAOs+E,iBAAiBS,EAAmB,CACzCnhC,OAAQ,CACNn2C,IAAKk0E,4BAA4BngE,EAAKmmC,KAExCk9B,MAAO,CACLlgF,MAAOmrC,EAAMza,MAGjB0vD,EAAkBM,GAAKv1C,EAAMu1C,GACtBN,CACT,CAEA,SAAS4B,EAAyB72C,EAAOk2C,EAAMzD,GAC7C,SAASwC,EAAkBpgF,GACzB,OAAImrC,EAAMliB,EAAEo5B,KAAOriD,GAAmB,WAAVA,EACnBogF,EAAkBl+B,OAGvB/W,EAAMhsC,EAAEkjD,KAAOriD,GAAmB,WAAVA,EACnBogF,EAAkB98D,OAGpB,IACT,CAEA,IAAIq9D,EAAiBR,qBAAqBC,EAAmBxC,GAEzD/gE,EAAOwkE,EAgBX,OAfAjB,EAAkBkB,cAAgBn2C,EAAMkX,GACxCxlC,EAAKoM,EAAEi4D,iBAAiBZ,kBAAkB,SAAUK,IACpD9jE,EAAK1d,EAAE+hF,iBAAiBZ,kBAAkB,SAAUK,IACpDt/E,OAAOs+E,iBAAiBS,EAAmB,CACzCl+B,OAAQ,CACNp5C,IAAKk0E,4BAA4BngE,EAAKoM,IAExC3F,OAAQ,CACNxa,IAAKk0E,4BAA4BngE,EAAK1d,IAExC+gF,MAAO,CACLlgF,MAAOmrC,EAAMza,MAGjB0vD,EAAkBM,GAAKv1C,EAAMu1C,GACtBN,CACT,CAEA,OAAO,SAAUt5D,EAAQu6D,EAAMzD,GAC7B,IAAIsE,EAEJ,SAASgB,EAAmBljF,GAC1B,GAAqB,kBAAVA,EAGT,OAAc,KAFdA,OAAkBmC,IAAVnC,EAAsB,EAAIA,GAGzB49E,EAGFsE,EAAWliF,EAAQ,GAM5B,IAHA,IAAIL,EAAI,EACJwH,EAAM+6E,EAAWxiF,OAEdC,EAAIwH,GAAK,CACd,GAAI+6E,EAAWviF,GAAGugF,QAAUlgF,EAC1B,OAAOkiF,EAAWviF,GAGpBA,GAAK,CACP,CAEA,OAAO,IACT,CAUA,OAJAujF,EAAmBtF,cAAgBuC,qBAAqB+C,GAJxD,WACE,OAAOtF,CACT,IAGAsE,EAAaX,EAAgBz6D,EAAQu6D,EAAM6B,EAAmBtF,eAC9DsF,EAAmBrC,cAAgBqB,EAAWxiF,OAC9CwjF,EAAmBhD,MAAQ,WACpBgD,CACT,CACF,CAnnB+B,GAqnB3Bl0B,wBACK,SAAU51B,GACf,IAAI+pD,EAEJ,SAASrH,EAAmB9sE,GAC1B,MACO,uBADCA,EAEG8sE,EAAmBsH,WAGnB,IAEb,CAyBA,OAvBA/hF,OAAOuH,eAAekzE,EAAoB,aAAc,CACtDhzE,IAAK,WACHswB,EAAK2qC,aAAah7B,WAClB,IAAIs6C,EAAcjqD,EAAK2qC,aAAaxG,YAAYn4D,EAiBhD,OAfK+9E,GAAeE,IAAgBF,EAAYnjF,SAC9CmjF,EAAc,IAAI5gF,OAAO8gF,IAGbrjF,MAAQqjF,GAAe,IAAI9gF,OAAO8gF,GAE9ChiF,OAAOuH,eAAeu6E,EAAa,QAAS,CAC1Cr6E,IAAK,WACH,MAAO,CACLw6E,UAAWlqD,EAAK2qC,aAAaxG,YAAYN,GAE7C,KAIGkmB,CACT,IAEKrH,CACT,EAGF,SAASyH,UAAU55E,GAAuV,OAA1O45E,UAArD,oBAAXjkF,QAAoD,kBAApBA,OAAOC,SAAqC,SAAiBoK,GAAO,cAAcA,CAAK,EAAwB,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXrK,QAAyBqK,EAAIoF,cAAgBzP,QAAUqK,IAAQrK,OAAOkK,UAAY,gBAAkBG,CAAK,EAAY45E,UAAU55E,EAAM,CAEjY,IAAI6mD,iBAAmB,WACrB,IAyCIgzB,EAAuB,SAA8BpqD,GACvD,SAASgnD,EAAkBpgF,GACzB,MAAc,YAAVA,EACKogF,EAAkBqD,mBAGpB,IACT,CAIA,OAFArD,EAAkBF,MAAQ,UAC1BE,EAAkBqD,iBAnDU,SAAiCrqD,GAC7D,IAAIsqD,EAAsB,GACtBC,EAAkBvqD,EAAKq3B,iBAQ3B,SAAS+N,EAAex+D,GACtB,GAAI2jF,EAAgB3jF,GAIlB,OAHA0jF,EAAsB1jF,EAGa,WAA/BujF,UAFJI,EAAkBA,EAAgB3jF,IAGzBw+D,EAGFmlB,EAGT,IAAIC,EAAoB5jF,EAAMyZ,QAAQiqE,GAEtC,IAA2B,IAAvBE,EAA0B,CAC5B,IAAIrtE,EAAQ0E,SAASjb,EAAM4zB,OAAOgwD,EAAoBF,EAAoBhkF,QAAS,IAGnF,MAAmC,WAA/B6jF,UAFJI,EAAkBA,EAAgBptE,IAGzBioD,EAGFmlB,CACT,CAEA,MAAO,EACT,CAEA,OAlCA,WAGE,OAFAD,EAAsB,GACtBC,EAAkBvqD,EAAKq3B,iBAChB+N,CACT,CA+BF,CAYuCqlB,CAAwBzqD,GACtDgnD,CACT,EAEA,OAAO,SAAUhnD,GACf,SAAS8pD,EAAmBljF,GAC1B,MAAc,SAAVA,EACKkjF,EAAmBY,cAGrB,IACT,CAIA,OAFAZ,EAAmBhD,MAAQ,OAC3BgD,EAAmBY,cAAgBN,EAAqBpqD,GACjD8pD,CACT,CACF,CArEuB,GAuEnBhB,WAAa,CACfjxB,MAAOpC,yBACP9C,QAAS+C,2BACT7nC,KAAMgoC,wBACN9jB,MAAO4jB,yBACPlI,KAAMmI,wBACN+0B,QAASvzB,kBAGX,SAASwzB,aAAa34E,GACpB,OAAO62E,WAAW72E,IAAS,IAC7B,CAEA,SAAS44E,UAAUt6E,GAAuV,OAA1Os6E,UAArD,oBAAX3kF,QAAoD,kBAApBA,OAAOC,SAAqC,SAAiBoK,GAAO,cAAcA,CAAK,EAAwB,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXrK,QAAyBqK,EAAIoF,cAAgBzP,QAAUqK,IAAQrK,OAAOkK,UAAY,gBAAkBG,CAAK,EAAYs6E,UAAUt6E,EAAM,CA2BjY,SAASu6E,WAAWtmD,EAAMU,GAIxB,IAaI6lD,EAbA7uE,EAAStM,KACT6iB,EAAQ,IAMZu4D,EAAU,SAEVC,EAAa/lD,EAAK9oB,IAAIqW,EANb,GAOLy4D,EAAehmD,EAAK9oB,IAAI,EALnB,IAMLimE,EAA0B,EAAf6I,EACXxiF,EAAO+pB,EAAQ,EA6FnB,SAAS04D,EAAK36E,GACZ,IAAIxE,EACAo/E,EAAS56E,EAAIlK,OACb+kF,EAAKz7E,KACLrJ,EAAI,EACJqmB,EAAIy+D,EAAG9kF,EAAI8kF,EAAGz+D,EAAI,EAClBnmB,EAAI4kF,EAAG5+E,EAAI,GAOf,IALK2+E,IACH56E,EAAM,CAAC46E,MAIF7kF,EAAIksB,GACThsB,EAAEF,GAAKA,IAGT,IAAKA,EAAI,EAAGA,EAAIksB,EAAOlsB,IACrBE,EAAEF,GAAKE,EAAEmmB,EAAIlkB,EAAOkkB,EAAIpc,EAAIjK,EAAI6kF,IAAWp/E,EAAIvF,EAAEF,KACjDE,EAAEmmB,GAAK5gB,EAITq/E,EAAG17E,EAAI,SAAUs7C,GAQf,IANA,IAAIj/C,EACA4d,EAAI,EACJrjB,EAAI8kF,EAAG9kF,EACPqmB,EAAIy+D,EAAGz+D,EACPnmB,EAAI4kF,EAAG5+E,EAEJw+C,KACLj/C,EAAIvF,EAAEF,EAAImC,EAAOnC,EAAI,GACrBqjB,EAAIA,EAAI6I,EAAQhsB,EAAEiC,GAAQjC,EAAEF,GAAKE,EAAEmmB,EAAIlkB,EAAOkkB,EAAI5gB,KAAOvF,EAAEmmB,GAAK5gB,IAKlE,OAFAq/E,EAAG9kF,EAAIA,EACP8kF,EAAGz+D,EAAIA,EACAhD,CAGT,CACF,CAMA,SAAS0hE,EAAKvkF,EAAGiF,GAIf,OAHAA,EAAEzF,EAAIQ,EAAER,EACRyF,EAAE4gB,EAAI7lB,EAAE6lB,EACR5gB,EAAES,EAAI1F,EAAE0F,EAAEpD,QACH2C,CACT,CAMA,SAASu/E,EAAQh7E,EAAK4xC,GACpB,IAEI1+B,EAFApQ,EAAS,GACTm4E,EAAMX,UAAUt6E,GAGpB,GAAI4xC,GAAgB,UAAPqpC,EACX,IAAK/nE,KAAQlT,EACX,IACE8C,EAAOnL,KAAKqjF,EAAQh7E,EAAIkT,GAAO0+B,EAAQ,GACzC,CAAE,MAAOt7C,GAAI,CAIjB,OAAOwM,EAAO/M,OAAS+M,EAAgB,UAAPm4E,EAAkBj7E,EAAMA,EAAM,IAChE,CAOA,SAASk7E,EAAOC,EAAMl7E,GAKpB,IAJA,IACIm7E,EADAC,EAAaF,EAAO,GAEpB9+D,EAAI,EAEDA,EAAIg/D,EAAWtlF,QACpBkK,EAAI9H,EAAOkkB,GAAKlkB,GAAQijF,GAAyB,GAAhBn7E,EAAI9H,EAAOkkB,IAAWg/D,EAAW/7B,WAAWjjC,KAG/E,OAAOi/D,EAASr7E,EAClB,CA2BA,SAASq7E,EAASv8D,GAChB,OAAOnmB,OAAO0R,aAAazC,MAAM,EAAGkX,EACtC,CAlIA4V,EAAK,OAAS8lD,GA3Ed,SAAoBU,EAAMI,EAASjvE,GACjC,IAAIrM,EAAM,GAKNu7E,EAAYN,EAAOF,GAJvBO,GAAsB,IAAZA,EAAmB,CAC3BE,SAAS,GACPF,GAAW,CAAC,GAEuBE,QAAU,CAACN,EAAMG,EAASrnD,IAAkB,OAATknD,EAiL5E,WACE,IACE,GAAIX,EACF,OAAOc,EAASd,EAAWkB,YAAYx5D,IAGzC,IAAIia,EAAM,IAAIw/C,WAAWz5D,GAEzB,OADCvW,EAAOiwE,QAAUjwE,EAAOkwE,UAAUC,gBAAgB3/C,GAC5Cm/C,EAASn/C,EAClB,CAAE,MAAO7lC,GACP,IAAIga,EAAU3E,EAAOwB,UACjB4uE,EAAUzrE,GAAWA,EAAQyrE,QACjC,MAAO,EAAE,IAAItjF,KAAQkT,EAAQowE,EAASpwE,EAAOqwE,OAAQV,EAASrnD,GAChE,CACF,CA/L4FgoD,GAAad,EAAM,GAAIl7E,GAE7Gi8E,EAAO,IAAItB,EAAK36E,GAGhBk8E,EAAO,WAOT,IANA,IAAIhmF,EAAI+lF,EAAK98E,EA5BR,GA8BLzF,EAAI+gF,EAEJvoD,EAAI,EAEGh8B,EAAIwkF,GAETxkF,GAAKA,EAAIg8B,GAAKjQ,EAEdvoB,GAAKuoB,EAELiQ,EAAI+pD,EAAK98E,EAAE,GAGb,KAAOjJ,GAAK27E,GAEV37E,GAAK,EAELwD,GAAK,EAELw4B,KAAO,EAGT,OAAQh8B,EAAIg8B,GAAKx4B,CACnB,EAcA,OAZAwiF,EAAKC,MAAQ,WACX,OAAmB,EAAZF,EAAK98E,EAAE,EAChB,EAEA+8E,EAAKE,MAAQ,WACX,OAAOH,EAAK98E,EAAE,GAAK,UACrB,EAEA+8E,EAAa,OAAIA,EAEjBjB,EAAOI,EAASY,EAAKhgF,GAAI+3B,IAEjBsnD,EAAQe,MAAQhwE,GAAY,SAAU6vE,EAAMhB,EAAMoB,EAAcl5E,GAetE,OAdIA,IAEEA,EAAMnH,GACR6+E,EAAK13E,EAAO64E,GAIdC,EAAK94E,MAAQ,WACX,OAAO03E,EAAKmB,EAAM,CAAC,EACrB,GAKEK,GACF5nD,EAAK8lD,GAAW0B,EACThB,GAGGgB,CACd,GAAGA,EAAMX,EAAW,WAAYD,EAAUA,EAAQ5vE,OAAStM,MAAQs1B,EAAM4mD,EAAQl4E,MACnF,EA6IA63E,EAAOvmD,EAAKle,SAAUwd,EAKxB,CAIA,SAASuoD,aAAalmE,GACpBikE,WAAW,GAAIjkE,EACjB,CAEA,IAAImmE,UAAY,CACdC,MAAO,SAGT,SAASv1E,QAAQnH,GAAmV,OAAtOmH,QAArD,oBAAXxR,QAAoD,kBAApBA,OAAOC,SAAmC,SAAiBoK,GAAO,cAAcA,CAAK,EAAsB,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXrK,QAAyBqK,EAAIoF,cAAgBzP,QAAUqK,IAAQrK,OAAOkK,UAAY,gBAAkBG,CAAK,EAAYmH,QAAQnH,EAAM,CAEzX,IAAI28E,kBAAoB,WAGtB,IAAI94D,GAAK,CAAC,EACNtoB,KAAO+a,OACP/W,OAAS,KACT4O,SAAW,KACXuS,eAAiB,KACjBk8D,MAAQ,KACRC,OAAS,KAGb,SAASC,sBAAsB5lF,GAC7B,OAAOA,EAAIkO,cAAgBvP,OAASqB,EAAIkO,cAAgBgQ,YAC1D,CAEA,SAAS2nE,YAAYC,EAAM5jE,GACzB,MAAgB,WAAT4jE,GAA8B,YAATA,GAA+B,WAATA,GAAqB5jE,aAAatP,MACtF,CAEA,SAASmzE,QAAQl+D,GACf,IAAIm+D,EAAO/1E,QAAQ4X,GAEnB,GAAa,WAATm+D,GAA8B,YAATA,GAAsBn+D,aAAajV,OAC1D,OAAQiV,EAGV,GAAI+9D,sBAAsB/9D,GAAI,CAC5B,IAAI/oB,EACAmnF,EAAOp+D,EAAEhpB,OACTqnF,EAAS,GAEb,IAAKpnF,EAAI,EAAGA,EAAImnF,EAAMnnF,GAAK,EACzBonF,EAAOpnF,IAAM+oB,EAAE/oB,GAGjB,OAAOonF,CACT,CAEA,OAAIr+D,EAAE+a,SACG/a,EAAE3F,GAGH2F,CACV,CAlCAy9D,aAAalmE,QAoCb,IAAI+mE,UAAYtsD,cAAc+J,gBAAgB,KAAO,EAAG,KAAO,KAAO,UAAU37B,IAC5Em+E,WAAavsD,cAAc+J,gBAAgB,KAAO,KAAO,KAAO,EAAG,WAAW37B,IAC9Eo+E,aAAexsD,cAAc+J,gBAAgB,IAAM,EAAG,KAAO,EAAG,aAAa37B,IAEjF,SAAS4+C,IAAIh/B,EAAGzF,GACd,IAAI4jE,EAAO/1E,QAAQ4X,GAEfy+D,EAAOr2E,QAAQmS,GAEnB,GAAa,WAAT4jE,GAA8B,WAATM,EACvB,OAAOz+D,EAAIzF,EAGb,GAAIyjE,YAAYG,EAAMn+D,IAAMg+D,YAAYS,EAAMlkE,GAC5C,OAAOyF,EAAIzF,EAGb,GAAIwjE,sBAAsB/9D,IAAMg+D,YAAYS,EAAMlkE,GAGhD,OAFAyF,EAAIA,EAAEjmB,MAAM,IACV,IAAMwgB,EACDyF,EAGT,GAAIg+D,YAAYG,EAAMn+D,IAAM+9D,sBAAsBxjE,GAGhD,OAFAA,EAAIA,EAAExgB,MAAM,IACV,GAAKimB,EAAIzF,EAAE,GACNA,EAGT,GAAIwjE,sBAAsB/9D,IAAM+9D,sBAAsBxjE,GAAI,CAMxD,IALA,IAAItjB,EAAI,EACJmnF,EAAOp+D,EAAEhpB,OACT0nF,EAAOnkE,EAAEvjB,OACTqnF,EAAS,GAENpnF,EAAImnF,GAAQnnF,EAAIynF,IACA,kBAAT1+D,EAAE/oB,IAAmB+oB,EAAE/oB,aAAc8T,UAA4B,kBAATwP,EAAEtjB,IAAmBsjB,EAAEtjB,aAAc8T,QACvGszE,EAAOpnF,GAAK+oB,EAAE/oB,GAAKsjB,EAAEtjB,GAErBonF,EAAOpnF,QAAcwC,IAAT8gB,EAAEtjB,GAAmB+oB,EAAE/oB,GAAK+oB,EAAE/oB,IAAMsjB,EAAEtjB,GAGpDA,GAAK,EAGP,OAAOonF,CACT,CAEA,OAAO,CACT,CAEA,IAAIhlB,IAAMra,IAEV,SAAS2/B,IAAI3+D,EAAGzF,GACd,IAAI4jE,EAAO/1E,QAAQ4X,GAEfy+D,EAAOr2E,QAAQmS,GAEnB,GAAIyjE,YAAYG,EAAMn+D,IAAMg+D,YAAYS,EAAMlkE,GAS5C,MARa,WAAT4jE,IACFn+D,EAAIzN,SAASyN,EAAG,KAGL,WAATy+D,IACFlkE,EAAIhI,SAASgI,EAAG,KAGXyF,EAAIzF,EAGb,GAAIwjE,sBAAsB/9D,IAAMg+D,YAAYS,EAAMlkE,GAGhD,OAFAyF,EAAIA,EAAEjmB,MAAM,IACV,IAAMwgB,EACDyF,EAGT,GAAIg+D,YAAYG,EAAMn+D,IAAM+9D,sBAAsBxjE,GAGhD,OAFAA,EAAIA,EAAExgB,MAAM,IACV,GAAKimB,EAAIzF,EAAE,GACNA,EAGT,GAAIwjE,sBAAsB/9D,IAAM+9D,sBAAsBxjE,GAAI,CAMxD,IALA,IAAItjB,EAAI,EACJmnF,EAAOp+D,EAAEhpB,OACT0nF,EAAOnkE,EAAEvjB,OACTqnF,EAAS,GAENpnF,EAAImnF,GAAQnnF,EAAIynF,IACA,kBAAT1+D,EAAE/oB,IAAmB+oB,EAAE/oB,aAAc8T,UAA4B,kBAATwP,EAAEtjB,IAAmBsjB,EAAEtjB,aAAc8T,QACvGszE,EAAOpnF,GAAK+oB,EAAE/oB,GAAKsjB,EAAEtjB,GAErBonF,EAAOpnF,QAAcwC,IAAT8gB,EAAEtjB,GAAmB+oB,EAAE/oB,GAAK+oB,EAAE/oB,IAAMsjB,EAAEtjB,GAGpDA,GAAK,EAGP,OAAOonF,CACT,CAEA,OAAO,CACT,CAEA,SAASO,IAAI5+D,EAAGzF,GACd,IAIIpiB,EAMAlB,EACAwH,EAXA0/E,EAAO/1E,QAAQ4X,GAEfy+D,EAAOr2E,QAAQmS,GAInB,GAAIyjE,YAAYG,EAAMn+D,IAAMg+D,YAAYS,EAAMlkE,GAC5C,OAAOyF,EAAIzF,EAMb,GAAIwjE,sBAAsB/9D,IAAMg+D,YAAYS,EAAMlkE,GAAI,CAIpD,IAHA9b,EAAMuhB,EAAEhpB,OACRmB,EAAM+d,iBAAiB,UAAWzX,GAE7BxH,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACxBkB,EAAIlB,GAAK+oB,EAAE/oB,GAAKsjB,EAGlB,OAAOpiB,CACT,CAEA,GAAI6lF,YAAYG,EAAMn+D,IAAM+9D,sBAAsBxjE,GAAI,CAIpD,IAHA9b,EAAM8b,EAAEvjB,OACRmB,EAAM+d,iBAAiB,UAAWzX,GAE7BxH,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACxBkB,EAAIlB,GAAK+oB,EAAIzF,EAAEtjB,GAGjB,OAAOkB,CACT,CAEA,OAAO,CACT,CAEA,SAASw5B,IAAI3R,EAAGzF,GACd,IAIIpiB,EAMAlB,EACAwH,EAXA0/E,EAAO/1E,QAAQ4X,GAEfy+D,EAAOr2E,QAAQmS,GAInB,GAAIyjE,YAAYG,EAAMn+D,IAAMg+D,YAAYS,EAAMlkE,GAC5C,OAAOyF,EAAIzF,EAMb,GAAIwjE,sBAAsB/9D,IAAMg+D,YAAYS,EAAMlkE,GAAI,CAIpD,IAHA9b,EAAMuhB,EAAEhpB,OACRmB,EAAM+d,iBAAiB,UAAWzX,GAE7BxH,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACxBkB,EAAIlB,GAAK+oB,EAAE/oB,GAAKsjB,EAGlB,OAAOpiB,CACT,CAEA,GAAI6lF,YAAYG,EAAMn+D,IAAM+9D,sBAAsBxjE,GAAI,CAIpD,IAHA9b,EAAM8b,EAAEvjB,OACRmB,EAAM+d,iBAAiB,UAAWzX,GAE7BxH,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACxBkB,EAAIlB,GAAK+oB,EAAIzF,EAAEtjB,GAGjB,OAAOkB,CACT,CAEA,OAAO,CACT,CAEA,SAAS0mF,IAAI7+D,EAAGzF,GASd,MARiB,kBAANyF,IACTA,EAAIzN,SAASyN,EAAG,KAGD,kBAANzF,IACTA,EAAIhI,SAASgI,EAAG,KAGXyF,EAAIzF,CACb,CAEA,IAAIukE,QAAU9/B,IACV+/B,QAAUJ,IACVK,QAAUJ,IACVK,QAAUttD,IACVutD,QAAUL,IAEd,SAASM,MAAMr9B,EAAKxqC,EAAKF,GACvB,GAAIE,EAAMF,EAAK,CACb,IAAI3b,EAAK2b,EACTA,EAAME,EACNA,EAAM7b,CACR,CAEA,OAAOe,KAAK8a,IAAI9a,KAAK4a,IAAI0qC,EAAKxqC,GAAMF,EACtC,CAEA,SAASgoE,iBAAiB5gF,GACxB,OAAOA,EAAMqZ,SACf,CAEA,IAAIwnE,mBAAqBD,iBAEzB,SAASE,iBAAiB9gF,GACxB,OAAOA,EAAMqZ,SACf,CAEA,IAAI0nE,mBAAqBH,iBACrBI,kBAAoB,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAExC,SAASxoF,OAAOyoF,EAAM51E,GACpB,GAAoB,kBAAT41E,GAAqBA,aAAgB10E,OAE9C,OADAlB,EAAOA,GAAQ,EACRrN,KAAKS,IAAIwiF,EAAO51E,GAOzB,IAAI5S,EAJC4S,IACHA,EAAO21E,mBAIT,IAAI/gF,EAAMjC,KAAK8a,IAAImoE,EAAKzoF,OAAQ6S,EAAK7S,QACjCs+B,EAAc,EAElB,IAAKr+B,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACxBq+B,GAAe94B,KAAKsQ,IAAIjD,EAAK5S,GAAKwoF,EAAKxoF,GAAI,GAG7C,OAAOuF,KAAKya,KAAKqe,EACnB,CAEA,SAASoqD,UAAUC,GACjB,OAAOhuD,IAAIguD,EAAK3oF,OAAO2oF,GACzB,CAEA,SAASC,SAASphF,GAChB,IAKIzC,EACA5E,EANAmjB,EAAI9b,EAAI,GACR6B,EAAI7B,EAAI,GACR+b,EAAI/b,EAAI,GACR4Y,EAAM5a,KAAK4a,IAAIkD,EAAGja,EAAGka,GACrBjD,EAAM9a,KAAK8a,IAAIgD,EAAGja,EAAGka,GAGrBje,GAAK8a,EAAME,GAAO,EAEtB,GAAIF,IAAQE,EACVvb,EAAI,EAEJ5E,EAAI,MACC,CACL,IAAIyD,EAAIwc,EAAME,EAGd,OAFAngB,EAAImF,EAAI,GAAM1B,GAAK,EAAIwc,EAAME,GAAO1c,GAAKwc,EAAME,GAEvCF,GACN,KAAKkD,EACHve,GAAKsE,EAAIka,GAAK3f,GAAKyF,EAAIka,EAAI,EAAI,GAC/B,MAEF,KAAKla,EACHtE,GAAKwe,EAAID,GAAK1f,EAAI,EAClB,MAEF,KAAK2f,EACHxe,GAAKue,EAAIja,GAAKzF,EAAI,EAOtBmB,GAAK,CACP,CAEA,MAAO,CAACA,EAAG5E,EAAGmF,EAAGkC,EAAI,GACvB,CAEA,SAASqhF,QAAQ3iF,EAAGsd,EAAG9d,GAGrB,OAFIA,EAAI,IAAGA,GAAK,GACZA,EAAI,IAAGA,GAAK,GACZA,EAAI,EAAI,EAAUQ,EAAc,GAATsd,EAAItd,GAASR,EACpCA,EAAI,GAAc8d,EAClB9d,EAAI,EAAI,EAAUQ,GAAKsd,EAAItd,IAAM,EAAI,EAAIR,GAAK,EAC3CQ,CACT,CAEA,SAAS4iF,SAASthF,GAChB,IAGI8b,EACAja,EACAka,EALAxe,EAAIyC,EAAI,GACRrH,EAAIqH,EAAI,GACRlC,EAAIkC,EAAI,GAKZ,GAAU,IAANrH,EACFmjB,EAAIhe,EAEJie,EAAIje,EAEJ+D,EAAI/D,MACC,CACL,IAAIke,EAAIle,EAAI,GAAMA,GAAK,EAAInF,GAAKmF,EAAInF,EAAImF,EAAInF,EACxC+F,EAAI,EAAIZ,EAAIke,EAChBF,EAAIulE,QAAQ3iF,EAAGsd,EAAGze,EAAI,EAAI,GAC1BsE,EAAIw/E,QAAQ3iF,EAAGsd,EAAGze,GAClBwe,EAAIslE,QAAQ3iF,EAAGsd,EAAGze,EAAI,EAAI,EAC5B,CAEA,MAAO,CAACue,EAAGja,EAAGka,EAAG/b,EAAI,GACvB,CAEA,SAASuhF,OAAOrjF,EAAGsjF,EAAMC,EAAMC,EAAQC,GAQrC,QAPe1mF,IAAXymF,QAAmCzmF,IAAX0mF,IAC1BD,EAASF,EACTG,EAASF,EACTD,EAAO,EACPC,EAAO,GAGLA,EAAOD,EAAM,CACf,IAAII,EAAQH,EACZA,EAAOD,EACPA,EAAOI,CACT,CAEA,GAAI1jF,GAAKsjF,EACP,OAAOE,EAGT,GAAIxjF,GAAKujF,EACP,OAAOE,EAGT,IAMIlpF,EANA0/B,EAAOspD,IAASD,EAAO,GAAKtjF,EAAIsjF,IAASC,EAAOD,GAEpD,IAAKE,EAAOlpF,OACV,OAAOkpF,GAAUC,EAASD,GAAUvpD,EAItC,IAAIl4B,EAAMyhF,EAAOlpF,OACbmB,EAAM+d,iBAAiB,UAAWzX,GAEtC,IAAKxH,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACxBkB,EAAIlB,GAAKipF,EAAOjpF,IAAMkpF,EAAOlpF,GAAKipF,EAAOjpF,IAAM0/B,EAGjD,OAAOx+B,CACT,CAEA,SAASuf,OAAOJ,EAAKF,GAWnB,QAVY3d,IAAR2d,SACU3d,IAAR6d,GACFA,EAAM,EACNF,EAAM,IAENA,EAAME,EACNA,OAAM7d,IAIN2d,EAAIpgB,OAAQ,CACd,IAAIC,EACAwH,EAAM2Y,EAAIpgB,OAETsgB,IACHA,EAAMpB,iBAAiB,UAAWzX,IAGpC,IAAItG,EAAM+d,iBAAiB,UAAWzX,GAClC4hF,EAAM9oE,OAAOG,SAEjB,IAAKzgB,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACxBkB,EAAIlB,GAAKqgB,EAAIrgB,GAAKopF,GAAOjpE,EAAIngB,GAAKqgB,EAAIrgB,IAGxC,OAAOkB,CACT,CAOA,YALYsB,IAAR6d,IACFA,EAAM,GAIDA,EADIC,OAAOG,UACGN,EAAME,EAC7B,CAEA,SAASgpE,WAAWttD,EAAQutD,EAAYC,EAAa9/D,GACnD,IAAIzpB,EACAwH,EAAMu0B,EAAOh8B,OACbwlB,EAAO8lB,UAAUnN,aACrB3Y,EAAK6kB,cAAc3gB,EAAQjiB,GAC3B,IACIgiF,EACAC,EAFAC,EAAiB,CAAC,EAAG,GAIzB,IAAK1pF,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACxBwpF,EAAgBF,GAAcA,EAAWtpF,GAAKspF,EAAWtpF,GAAK0pF,EAC9DD,EAAiBF,GAAeA,EAAYvpF,GAAKupF,EAAYvpF,GAAK0pF,EAClEnkE,EAAKklB,YAAY1O,EAAO/7B,GAAG,GAAI+7B,EAAO/7B,GAAG,GAAIypF,EAAe,GAAK1tD,EAAO/7B,GAAG,GAAIypF,EAAe,GAAK1tD,EAAO/7B,GAAG,GAAIwpF,EAAc,GAAKztD,EAAO/7B,GAAG,GAAIwpF,EAAc,GAAKztD,EAAO/7B,GAAG,GAAIA,GAAG,GAGxL,OAAOulB,CACT,CAEA,SAASokE,mBAAmBlwD,KAAMpiB,KAAM5F,UAEtC,SAASm4E,KAAKC,GACZ,OAAOA,CACT,CAEA,IAAKpwD,KAAK/F,WAAWw3B,aAAakf,eAChC,OAAOwf,KAGT,IAAIriF,IAAM8P,KAAK8kB,EACX2tD,cAAgB,qBAAqBvnF,KAAKgF,KAE1CwiF,cAA0C,IAA3BxiF,IAAIuS,QAAQ,UAE3BkwE,SAAWvwD,KAAKpiB,KAAK0P,GACrB6pB,UACAq5C,cACAj6B,QACA8E,OACAo1B,aAAez4E,SACnBy4E,aAAarM,YAAcqM,aAAarwC,eACxCn4C,OAAOuH,eAAeihF,aAAc,QAAS,CAC3C/gF,IAAK,WACH,OAAO+gF,aAAa9mE,CACtB,IAEFqW,KAAKnS,KAAK+0D,cAAgB,EAAI5iD,KAAKnS,KAAKoM,WAAW9B,UACnD6H,KAAKnS,KAAKg1D,iBAAmB,EAC7B,IAAI+D,QAAU5mD,KAAKpiB,KAAKsR,GAAK8Q,KAAKnS,KAAKoM,WAAW9B,UAC9C0uD,SAAW7mD,KAAKpiB,KAAKuR,GAAK6Q,KAAKnS,KAAKoM,WAAW9B,UAC/C1F,MAAQuN,KAAKpiB,KAAKgmD,GAAK5jC,KAAKpiB,KAAKgmD,GAAK,EACtClxC,OAASsN,KAAKpiB,KAAKquB,GAAKjM,KAAKpiB,KAAKquB,GAAK,EACvCr2B,KAAOoqB,KAAKpiB,KAAK0Z,GACjBo5D,OACAC,QACAC,QACAC,SACAC,OACAhL,QACAG,UACAC,SACAG,OACA0K,kBACAnpE,SACAm9D,SACAM,YACAxuC,MACAm6C,UACAC,SACAvoF,KACA07E,YACAG,eACA2M,aAEAC,oBAAsBC,KAAK,oCAAsCtjF,IAAM,0BAA0B,GAEjGo2E,QAAUlsE,SAASq3B,GAAKzxB,KAAKkP,EAAExmB,OAAS,EACxCogF,QAAU92E,KAAKgO,OAAyB,IAAjBhO,KAAKgO,KAAK8+C,GAEjC20B,OAAS,SAAgBC,EAAMC,GACjC,IAAIC,EACA5kE,EACA6kE,EAAY7hF,KAAK06B,GAAGhkC,OAASsJ,KAAK06B,GAAGhkC,OAAS,EAC9CorF,EAAYlsE,iBAAiB,UAAWisE,GAExC/uB,EAAa52D,KAAKC,MADf,EACqB6qB,MAI5B,IAHA46D,EAAU,EACV5kE,EAAI,EAEG4kE,EAAU9uB,GAAY,CAE3B,IAAK91C,EAAI,EAAGA,EAAI6kE,EAAW7kE,GAAK,EAC9B8kE,EAAU9kE,KAAO2kE,EAAY,EAANA,EAAU1qE,OAAOG,SAG1CwqE,GAAW,CACb,CAGA,IAAIG,EAfG,EAeO/6D,KACVqP,EAAO0rD,EAAU7lF,KAAKC,MAAM4lF,GAC5BlqF,EAAM+d,iBAAiB,UAAWisE,GAEtC,GAAIA,EAAY,EAAG,CACjB,IAAK7kE,EAAI,EAAGA,EAAI6kE,EAAW7kE,GAAK,EAC9BnlB,EAAImlB,GAAKhd,KAAK06B,GAAG1d,GAAK8kE,EAAU9kE,KAAO2kE,EAAY,EAANA,EAAU1qE,OAAOG,UAAYif,EAI5E,OAAOx+B,CACT,CAEA,OAAOmI,KAAK06B,GAAKonD,EAAU,KAAOH,EAAY,EAANA,EAAU1qE,OAAOG,UAAYif,CACvE,EAAExuB,KAAK7H,MAgBP,SAASgiF,eAAe3/E,EAAM6kB,GAC5B,OAAO45D,OAAOz+E,EAAM6kB,GAAU,EAChC,CAEA,SAAS+6D,gBAAgB5/E,EAAM6kB,GAC7B,OAAO85D,QAAQ3+E,EAAM6kB,GAAU,EACjC,CApBI25D,aAAaC,SACfA,OAASD,aAAaC,OAAOj5E,KAAKg5E,cAClCE,QAAUD,QAGRD,aAAaG,UACfA,QAAUH,aAAaG,QAAQn5E,KAAKg5E,cACpCI,SAAWD,SAGTH,aAAaK,SACfA,OAASL,aAAaK,OAAOr5E,KAAKg5E,eAWhC7gF,KAAKwwC,iBACPgkC,YAAcx0E,KAAKwwC,eAAe3oC,KAAK7H,OAGrCA,KAAKq0E,oBACPM,eAAiB30E,KAAKq0E,kBAAkBxsE,KAAK7H,OAG/C,IAAIie,KAAOmS,KAAKnS,KAAKoM,WAAWd,iBAAiB1hB,KAAKuoB,KAAKnS,KAAKoM,WAAWd,kBAsLvEvC,KACAk7D,SACAlrF,MACA6mD,KACAskC,UACAC,UACAC,cA1LJ,SAASC,OAAOC,EAAOC,GACrB,IAAIC,EAAO,CAACD,EAAM,GAAKD,EAAM,GAAIC,EAAM,GAAKD,EAAM,GAAIC,EAAM,GAAKD,EAAM,IACnEG,EAAQxmF,KAAK6hC,MAAM0kD,EAAK,GAAIvmF,KAAKya,KAAK8rE,EAAK,GAAKA,EAAK,GAAKA,EAAK,GAAKA,EAAK,KAAOlrE,UAEpF,MAAO,EADIrb,KAAK6hC,MAAM0kD,EAAK,GAAIA,EAAK,IAAMlrE,UAC7BmrE,EAAO,EACtB,CAEA,SAASC,QAAQvmF,EAAGsjF,EAAMC,EAAMiD,EAAMC,GACpC,OAAOC,UAAU7E,WAAY7hF,EAAGsjF,EAAMC,EAAMiD,EAAMC,EACpD,CAEA,SAASE,OAAO3mF,EAAGsjF,EAAMC,EAAMiD,EAAMC,GACnC,OAAOC,UAAU9E,UAAW5hF,EAAGsjF,EAAMC,EAAMiD,EAAMC,EACnD,CAEA,SAASG,KAAK5mF,EAAGsjF,EAAMC,EAAMiD,EAAMC,GACjC,OAAOC,UAAU5E,aAAc9hF,EAAGsjF,EAAMC,EAAMiD,EAAMC,EACtD,CAEA,SAASC,UAAU3gF,EAAI/F,EAAGsjF,EAAMC,EAAMiD,EAAMC,QAC7B1pF,IAATypF,GACFA,EAAOlD,EACPmD,EAAOlD,GAEPvjF,GAAKA,EAAIsjF,IAASC,EAAOD,GAGvBtjF,EAAI,EACNA,EAAI,EACKA,EAAI,IACbA,EAAI,GAGN,IAAI6iC,EAAO98B,EAAG/F,GAEd,GAAIqhF,sBAAsBmF,GAAO,CAC/B,IAAIK,EACAC,EAASN,EAAKlsF,OACdmB,EAAM+d,iBAAiB,UAAWstE,GAEtC,IAAKD,EAAO,EAAGA,EAAOC,EAAQD,GAAQ,EACpCprF,EAAIorF,IAASJ,EAAKI,GAAQL,EAAKK,IAAShkD,EAAO2jD,EAAKK,GAGtD,OAAOprF,CACT,CAEA,OAAQgrF,EAAOD,GAAQ3jD,EAAO2jD,CAChC,CAEA,SAASO,WAAWn8D,GAClB,IAAIi8D,EAEA11E,EACA8tB,EAFA6nD,EAASl1E,KAAKkP,EAAExmB,OAIpB,GAAKsX,KAAKkP,EAAExmB,QAA+B,kBAAdsX,KAAKkP,EAAE,GAOlC,GAHA3P,GAAS,GACTyZ,GAAQoJ,KAAKnS,KAAKoM,WAAW9B,WAElBva,KAAKkP,EAAE,GAAG9gB,EACnBmR,EAAQ,EACR8tB,EAAUrtB,KAAKkP,EAAE,GAAG9gB,MACf,CACL,IAAK6mF,EAAO,EAAGA,EAAOC,EAAS,EAAGD,GAAQ,EAAG,CAC3C,GAAIj8D,IAAShZ,KAAKkP,EAAE+lE,GAAM7mF,EAAG,CAC3BmR,EAAQ01E,EAAO,EACf5nD,EAAUrtB,KAAKkP,EAAE+lE,GAAM7mF,EACvB,KACF,CAAO,GAAI4qB,EAAOhZ,KAAKkP,EAAE+lE,GAAM7mF,GAAK4qB,EAAOhZ,KAAKkP,EAAE+lE,EAAO,GAAG7mF,EAAG,CACzD4qB,EAAOhZ,KAAKkP,EAAE+lE,GAAM7mF,EAAI4R,KAAKkP,EAAE+lE,EAAO,GAAG7mF,EAAI4qB,GAC/CzZ,EAAQ01E,EAAO,EACf5nD,EAAUrtB,KAAKkP,EAAE+lE,EAAO,GAAG7mF,IAE3BmR,EAAQ01E,EAAO,EACf5nD,EAAUrtB,KAAKkP,EAAE+lE,GAAM7mF,GAGzB,KACF,CACF,EAEe,IAAXmR,IACFA,EAAQ01E,EAAO,EACf5nD,EAAUrtB,KAAKkP,EAAE+lE,GAAM7mF,EAE3B,MAhCAmR,EAAQ,EACR8tB,EAAU,EAkCZ,IAAI+nD,EAAQ,CAAC,EAGb,OAFAA,EAAM71E,MAAQA,EACd61E,EAAMp8D,KAAOqU,EAAUjL,KAAKnS,KAAKoM,WAAW9B,UACrC66D,CACT,CAEA,SAASxiF,IAAI26B,GACX,IAAI6nD,EACAH,EACAC,EAEJ,IAAKl1E,KAAKkP,EAAExmB,QAA+B,kBAAdsX,KAAKkP,EAAE,GAClC,MAAM,IAAIjZ,MAAM,yCAA2Cs3B,GAG7DA,GAAO,EACP6nD,EAAQ,CACNp8D,KAAMhZ,KAAKkP,EAAEqe,GAAKn/B,EAAIg0B,KAAKnS,KAAKoM,WAAW9B,UAC3CvxB,MAAO,IAET,IAAIa,EAAMQ,OAAOmI,UAAUE,eAAelJ,KAAKwW,KAAKkP,EAAEqe,GAAM,KAAOvtB,KAAKkP,EAAEqe,GAAK1kC,EAAImX,KAAKkP,EAAEqe,EAAM,GAAGtkC,EAGnG,IAFAisF,EAASrrF,EAAInB,OAERusF,EAAO,EAAGA,EAAOC,EAAQD,GAAQ,EACpCG,EAAMH,GAAQprF,EAAIorF,GAClBG,EAAMpsF,MAAMisF,GAAQprF,EAAIorF,GAG1B,OAAOG,CACT,CAEA,SAASC,aAAaj3D,EAAIk3D,GAKxB,OAJKA,IACHA,EAAMlzD,KAAKnS,KAAKoM,WAAW9B,WAGtB6D,EAAKk3D,CACd,CAEA,SAASC,aAAannF,EAAGknF,GASvB,OARKlnF,GAAW,IAANA,IACRA,EAAI4qB,MAGDs8D,IACHA,EAAMlzD,KAAKnS,KAAKoM,WAAW9B,WAGtBnsB,EAAIknF,CACb,CAEA,SAASpI,WAAWY,GAClB7kE,OAAOusE,WAAWC,SAAW3H,EAC/B,CAEA,SAAS95B,mBACP,OAAO5xB,KAAK4xB,kBACd,CAEA,SAAS0hC,UAAUn1D,EAAMC,GACvB,MAAqB,kBAAVx3B,WACGmC,IAARq1B,EACKx3B,MAAM0sF,UAAUn1D,GAGlBv3B,MAAM0sF,UAAUn1D,EAAMC,GAGxB,EACT,CAEA,SAAS5D,OAAO2D,EAAMC,GACpB,MAAqB,kBAAVx3B,WACGmC,IAARq1B,EACKx3B,MAAM4zB,OAAO2D,GAGfv3B,MAAM4zB,OAAO2D,EAAMC,GAGrB,EACT,CAEA,SAASm1D,cAAcC,GACrB58D,KAA2B,IAApB48D,EAAwB,EAAI1nF,KAAKC,MAAM6qB,KAAO48D,GAAmBA,EACxE5sF,MAAQw9E,YAAYxtD,KACtB,CASA,IAAIzZ,MAAQ6iB,KAAKpiB,KAAKutB,IAClBq7C,aAAexmD,KAAK24B,YAAa34B,KAAK24B,UAAUryD,QAChDsmD,OACAymC,SAAWvnF,KAAKC,MAAsB,IAAhBD,KAAKkb,UAC3BiT,WAAa+F,KAAK/F,WAEtB,SAASw5D,kBAAkBrD,GAIzB,OAFAxpF,MAAQwpF,EAEJxgF,KAAK8jF,oBAAsB1zD,KAAK/F,WAAW+U,SAA6B,iBAAlBp/B,KAAKy6B,SACtDzjC,OAGa,iBAAlBgJ,KAAKy6B,WACP0nD,UAAYniF,KAAKmiF,UACjBC,UAAYpiF,KAAKoiF,UACjBC,cAAgBriF,KAAKqiF,eAGlBjB,YACHvjC,KAAOztB,KAAK81B,eAAerI,KAC3BujC,UAAYhxD,KAAK81B,eACjBm7B,SAAWjxD,KAAKnS,KAAK6J,cACrBouD,QAAUkL,UAAUlL,QAAQruE,KAAKu5E,WACjC/K,UAAY+K,UAAU/K,UAAUxuE,KAAKu5E,WACrC9K,SAAW8K,UAAU9K,SAASzuE,KAAKu5E,WACnC3K,OAAS2K,UAAU3K,OAAO5uE,KAAKu5E,WAC/BtoF,KAAOsoF,UAAUtoF,KAAOsoF,UAAUtoF,KAAK+O,KAAKu5E,WAAa,KACzDD,kBAAoB7K,UAGjB/uC,YACHA,UAAYnX,KAAK81B,eAAe,wBAChC06B,cAAgBr5C,UAEZA,YACFkuC,YAAcluC,UAAUkuC,cAOX,IAAbkL,UAAmBh6B,UACrBA,QAAUy6B,UAAU,4BAGjB31B,SACHA,OAAS21B,UAAU,KAGrBxK,aAAexmD,KAAK24B,YAAa34B,KAAK24B,UAAUryD,WAE9BsmD,SAChBA,OAAS5sB,KAAK24B,UAAU,GAAG7C,gBAG7Bl/B,KAAOhnB,KAAKie,KAAK0gB,cAAgB3+B,KAAKie,KAAKoM,WAAW9B,UAElDm4D,cACFxF,WAAWuI,SAAWz8D,MAGpBy5D,gBACFyB,SAAWvN,eAAe3tD,OAG5Bu6D,sBACAvhF,KAAK8jF,kBAAoB1zD,KAAK/F,WAAW+U,QAGzCkiD,aAAeA,aAAa7mD,WAAa2iD,UAAUC,MAAQiE,aAAavnE,EAAIunE,aAE9E,CAIA,OADAuC,kBAAkBE,yBAA2B,CAACnD,cAAenL,YAAazuD,KAAMk7D,SAAUlL,QAASC,SAAUp0D,MAAOC,OAAQ9c,KAAM+6E,QAASE,SAAUC,OAAQzK,OAAQ0K,kBAAmBjL,QAASG,UAAWv9E,KAAMkf,SAAUm9D,SAAUluC,MAAOo6C,SAAU/M,QAASwC,OAAQ2K,OAAQO,eAAgBC,gBAAiBhkE,KAAMqkE,OAAQK,QAASI,OAAQC,KAAMG,WAAYviF,IAAKi9C,KAAMskC,UAAWC,UAAWC,cAAegB,aAAcE,aAAcvhC,iBAAkB0hC,UAAW94D,OAAQ+4D,cAAep2E,MAAO8c,YAClew5D,iBACT,CAIA,OAFAr/D,GAAG87D,mBAAqBA,mBACxB97D,GAAGu/D,yBAA2B,CAAC7jF,OAAQ4O,SAAUuS,eAAgBk8D,MAAOC,OAAQI,QAAS7kB,IAAKylB,QAASC,QAASC,QAASC,QAASC,QAASC,MAAOE,mBAAoBC,iBAAkBC,mBAAoBG,UAAWE,SAAUE,SAAUC,OAAQroE,OAAQ4oE,YACpPx7D,EACT,CA91BwB,GAg2BpBw/D,kBAgFK,CACLC,kBAhFF,SAA2B7zD,EAAMpiB,EAAM6F,GACjC7F,EAAK8kB,IACPjf,EAAKqJ,GAAI,EACTrJ,EAAKif,GAAI,EACTjf,EAAKysE,mBAAqBhD,kBAAkBgD,mBAC5CzsE,EAAKwrB,gBAAgB/mC,KAAKub,EAAKysE,mBAAmBlwD,EAAMpiB,EAAM6F,GAAMhM,KAAKgM,IAE7E,EA0EE6gE,eA3DF,SAAwBr6C,GACtB,IACI0L,EAAK/lC,KAAKwwC,eAAenW,GACzBkW,EAAKvwC,KAAKwwC,eAAenW,GAFhB,KAGT6pD,EAAQ,EAEZ,GAAIn+C,EAAGrvC,OAAQ,CACb,IAAIC,EAEJ,IAAKA,EAAI,EAAGA,EAAIovC,EAAGrvC,OAAQC,GAAK,EAC9ButF,GAAShoF,KAAKsQ,IAAI+jC,EAAG55C,GAAKovC,EAAGpvC,GAAI,GAGnCutF,EAA2B,IAAnBhoF,KAAKya,KAAKutE,EACpB,MACEA,EAAQ,EAGV,OAAOA,CACT,EAyCE7P,kBAvCF,SAA2Bh6C,GACzB,QAAiBlhC,IAAb6G,KAAK8/B,IACP,OAAO9/B,KAAK8/B,IAGd,IAIIoiD,EAIEvrF,EARFy6C,GAAS,KAETrL,EAAK/lC,KAAKwwC,eAAenW,GACzBkW,EAAKvwC,KAAKwwC,eAAenW,EAAW+W,GAGxC,GAAIrL,EAAGrvC,OAIL,IAHAwrF,EAAWtsE,iBAAiB,UAAWmwB,EAAGrvC,QAGrCC,EAAI,EAAGA,EAAIovC,EAAGrvC,OAAQC,GAAK,EAI9BurF,EAASvrF,IAAM45C,EAAG55C,GAAKovC,EAAGpvC,IAAMy6C,OAGlC8wC,GAAY3xC,EAAKxK,GAAMqL,EAGzB,OAAO8wC,CACT,EAcE1xC,eA1EF,SAAwBnW,GAUtB,OATAA,GAAYr6B,KAAKowB,KAAK/F,WAAW9B,WACjC8R,GAAYr6B,KAAKw6B,cAEAx6B,KAAKmkF,eAAevoD,YACnC57B,KAAKmkF,eAAenpD,UAAYh7B,KAAKmkF,eAAevoD,UAAYvB,EAAWr6B,KAAKmkF,eAAenpD,UAAY,EAC3Gh7B,KAAKmkF,eAAentF,MAAQgJ,KAAKo6B,iBAAiBC,EAAUr6B,KAAKmkF,gBACjEnkF,KAAKmkF,eAAevoD,UAAYvB,GAG3Br6B,KAAKmkF,eAAentF,KAC7B,EAgEEotF,qBAbF,WACE,OAAOpkF,KAAK06B,EACd,EAYEw9C,iBAVF,SAA0BtD,GACxB50E,KAAK40E,cAAgBA,CACvB,GAYF,SAASyP,uBACP,SAASrD,EAAQ3+E,EAAM6kB,EAAUo9D,GAC/B,IAAKtkF,KAAKkd,IAAMld,KAAKi7B,UACnB,OAAOj7B,KAAK06B,GAGdr4B,EAAOA,EAAOA,EAAK+0C,cAAgB,GACnC,IAQImtC,EACAC,EAmBA7tF,EACAwH,EACAsmF,EA9BA58D,EAAe7nB,KAAKie,KAAK0gB,cACzB1D,EAAYj7B,KAAKi7B,UACjBypD,EAAezpD,EAAUA,EAAUvkC,OAAS,GAAG0F,EAEnD,GAAIyrB,GAAgB68D,EAClB,OAAO1kF,KAAK06B,GA2Bd,GArBK4pD,EAcHE,EAAgBE,GAHdH,EAHGr9D,EAGahrB,KAAKS,IAAI+nF,EAAe1kF,KAAKowB,KAAKnS,KAAKoM,WAAW9B,UAAYrB,GAF9DhrB,KAAK4a,IAAI,EAAG4tE,EAAe1kF,KAAKowB,KAAKpiB,KAAKsR,QARvD4H,GAAYA,EAAW+T,EAAUvkC,OAAS,KAC7CwwB,EAAW+T,EAAUvkC,OAAS,GAIhC6tF,EAAgBG,GADhBF,EAAgBvpD,EAAUA,EAAUvkC,OAAS,EAAIwwB,GAAU9qB,IAgBhD,aAATiG,GAGF,GAFiBnG,KAAKC,OAAO0rB,EAAe28D,GAAiBD,GAE5C,IAAM,EACrB,OAAOvkF,KAAKwwC,gBAAgB+zC,GAAiB18D,EAAe28D,GAAiBD,EAAgBC,GAAiBxkF,KAAKie,KAAKoM,WAAW9B,UAAW,OAE3I,IAAa,WAATlmB,EAAmB,CAC5B,IAAIsiF,EAAQ3kF,KAAKwwC,eAAeg0C,EAAgBxkF,KAAKie,KAAKoM,WAAW9B,UAAW,GAC5Eq8D,EAAO5kF,KAAKwwC,eAAek0C,EAAe1kF,KAAKie,KAAKoM,WAAW9B,UAAW,GAC1Es8D,EAAU7kF,KAAKwwC,iBAAiB3oB,EAAe28D,GAAiBD,EAAgBC,GAAiBxkF,KAAKie,KAAKoM,WAAW9B,UAAW,GAEjIu8D,EAAU5oF,KAAKC,OAAO0rB,EAAe28D,GAAiBD,GAE1D,GAAIvkF,KAAK06B,GAAGhkC,OAAQ,CAIlB,IAFAyH,GADAsmF,EAAM,IAAIjuF,MAAMmuF,EAAMjuF,SACZA,OAELC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACxB8tF,EAAI9tF,IAAMiuF,EAAKjuF,GAAKguF,EAAMhuF,IAAMmuF,EAAUD,EAAQluF,GAGpD,OAAO8tF,CACT,CAEA,OAAQG,EAAOD,GAASG,EAAUD,CACpC,CAAO,GAAa,aAATxiF,EAAqB,CAC9B,IAAI0iF,EAAY/kF,KAAKwwC,eAAek0C,EAAe1kF,KAAKie,KAAKoM,WAAW9B,UAAW,GAC/Ey8D,EAAgBhlF,KAAKwwC,gBAAgBk0C,EAAe,MAAS1kF,KAAKie,KAAKoM,WAAW9B,UAAW,GAEjG,GAAIvoB,KAAK06B,GAAGhkC,OAAQ,CAIlB,IAFAyH,GADAsmF,EAAM,IAAIjuF,MAAMuuF,EAAUruF,SAChBA,OAELC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACxB8tF,EAAI9tF,GAAKouF,EAAUpuF,IAAMouF,EAAUpuF,GAAKquF,EAAcruF,MAAQkxB,EAAe68D,GAAgB1kF,KAAKie,KAAKoM,WAAW9B,WAAa,KAGjI,OAAOk8D,CACT,CAEA,OAAOM,GAA4Cl9D,EAAe68D,GAAgB,MAA9DK,EAAYC,EAClC,EAEA,OAAOhlF,KAAKwwC,iBAAiB3oB,EAAe28D,GAAiBD,EAAgBC,GAAiBxkF,KAAKie,KAAKoM,WAAW9B,UAAW,EAChI,CAEA,SAASu4D,EAAOz+E,EAAM6kB,EAAUo9D,GAC9B,IAAKtkF,KAAKkd,EACR,OAAOld,KAAK06B,GAGdr4B,EAAOA,EAAOA,EAAK+0C,cAAgB,GACnC,IAQImtC,EACAG,EAmBA/tF,EACAwH,EACAsmF,EA9BA58D,EAAe7nB,KAAKie,KAAK0gB,cACzB1D,EAAYj7B,KAAKi7B,UACjBupD,EAAgBvpD,EAAU,GAAG7+B,EAEjC,GAAIyrB,GAAgB28D,EAClB,OAAOxkF,KAAK06B,GA2Bd,GArBK4pD,EAcHI,EAAeF,GAHbD,EAHGr9D,EAGahrB,KAAKS,IAAIqD,KAAKowB,KAAKnS,KAAKoM,WAAW9B,UAAYrB,GAF/ChrB,KAAK4a,IAAI,EAAG9W,KAAKowB,KAAKpiB,KAAKuR,GAAKilE,OAR7Ct9D,GAAYA,EAAW+T,EAAUvkC,OAAS,KAC7CwwB,EAAW+T,EAAUvkC,OAAS,GAIhC6tF,GADAG,EAAezpD,EAAU/T,GAAU9qB,GACJooF,GAepB,aAATniF,GAGF,GAFiBnG,KAAKC,OAAOqoF,EAAgB38D,GAAgB08D,GAE5C,IAAM,EACrB,OAAOvkF,KAAKwwC,iBAAiBg0C,EAAgB38D,GAAgB08D,EAAgBC,GAAiBxkF,KAAKie,KAAKoM,WAAW9B,UAAW,OAE3H,IAAa,WAATlmB,EAAmB,CAC5B,IAAIsiF,EAAQ3kF,KAAKwwC,eAAeg0C,EAAgBxkF,KAAKie,KAAKoM,WAAW9B,UAAW,GAC5Eq8D,EAAO5kF,KAAKwwC,eAAek0C,EAAe1kF,KAAKie,KAAKoM,WAAW9B,UAAW,GAC1Es8D,EAAU7kF,KAAKwwC,gBAAgB+zC,GAAiBC,EAAgB38D,GAAgB08D,EAAgBC,GAAiBxkF,KAAKie,KAAKoM,WAAW9B,UAAW,GACjJu8D,EAAU5oF,KAAKC,OAAOqoF,EAAgB38D,GAAgB08D,GAAiB,EAE3E,GAAIvkF,KAAK06B,GAAGhkC,OAAQ,CAIlB,IAFAyH,GADAsmF,EAAM,IAAIjuF,MAAMmuF,EAAMjuF,SACZA,OAELC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACxB8tF,EAAI9tF,GAAKkuF,EAAQluF,IAAMiuF,EAAKjuF,GAAKguF,EAAMhuF,IAAMmuF,EAG/C,OAAOL,CACT,CAEA,OAAOI,GAAWD,EAAOD,GAASG,CACpC,CAAO,GAAa,aAATziF,EAAqB,CAC9B,IAAI4iF,EAAajlF,KAAKwwC,eAAeg0C,EAAgBxkF,KAAKie,KAAKoM,WAAW9B,UAAW,GACjF28D,EAAiBllF,KAAKwwC,gBAAgBg0C,EAAgB,MAASxkF,KAAKie,KAAKoM,WAAW9B,UAAW,GAEnG,GAAIvoB,KAAK06B,GAAGhkC,OAAQ,CAIlB,IAFAyH,GADAsmF,EAAM,IAAIjuF,MAAMyuF,EAAWvuF,SACjBA,OAELC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACxB8tF,EAAI9tF,GAAKsuF,EAAWtuF,IAAMsuF,EAAWtuF,GAAKuuF,EAAevuF,KAAO6tF,EAAgB38D,GAAgB,KAGlG,OAAO48D,CACT,CAEA,OAAOQ,GAAcA,EAAaC,IAAmBV,EAAgB38D,GAAgB,IACvF,EAEA,OAAO7nB,KAAKwwC,gBAAgB+zC,IAAkBC,EAAgB38D,GAAgB08D,EAAgBC,IAAkBxkF,KAAKie,KAAKoM,WAAW9B,UAAW,EAClJ,CAEA,SAAS24D,EAAOr+D,EAAOsiE,GACrB,IAAKnlF,KAAKkd,EACR,OAAOld,KAAK06B,GAMd,GAHA7X,EAAyB,IAAhBA,GAAS,KAClBsiE,EAAUjpF,KAAKC,MAAMgpF,GAAW,KAEjB,EACb,OAAOnlF,KAAK06B,GAGd,IAMI1jC,EAQAouF,EAdAxsE,EAAc5Y,KAAKie,KAAK0gB,cAAgB3+B,KAAKie,KAAKoM,WAAW9B,UAC7D2R,EAAYthB,EAAciK,EAE1BwiE,EAAkBF,EAAU,GADjBvsE,EAAciK,EACmBqX,IAAcirD,EAAU,GAAK,EACzExuF,EAAI,EACJqmB,EAAI,EAWR,IAPEhmB,EADEgJ,KAAK06B,GAAGhkC,OACFkf,iBAAiB,UAAW5V,KAAK06B,GAAGhkC,QAEpC,EAKHC,EAAIwuF,GAAS,CAGlB,GAFAC,EAAcplF,KAAKwwC,eAAetW,EAAYvjC,EAAI0uF,GAE9CrlF,KAAK06B,GAAGhkC,OACV,IAAKsmB,EAAI,EAAGA,EAAIhd,KAAK06B,GAAGhkC,OAAQsmB,GAAK,EACnChmB,EAAMgmB,IAAMooE,EAAYpoE,QAG1BhmB,GAASouF,EAGXzuF,GAAK,CACP,CAEA,GAAIqJ,KAAK06B,GAAGhkC,OACV,IAAKsmB,EAAI,EAAGA,EAAIhd,KAAK06B,GAAGhkC,OAAQsmB,GAAK,EACnChmB,EAAMgmB,IAAMmoE,OAGdnuF,GAASmuF,EAGX,OAAOnuF,CACT,CAEA,SAASsuF,EAAwBt+D,GAC1BhnB,KAAKulF,0BACRvlF,KAAKulF,wBAA0B,CAC7BxrE,EAAG,IAAIisB,SAKX,IAAI6R,EAAS73C,KAAKulF,wBAAwBxrE,EAG1C,GAFA89B,EAAOnO,eAAe1pC,KAAKyvC,IAAI/mC,OAE3B1I,KAAK0vC,uBAAyB,EAAG,CACnC,IAAI81C,EAASxlF,KAAK0f,EAAE8wB,eAAexpB,GACnC6wB,EAAOzQ,WAAWo+C,EAAO,GAAKxlF,KAAK0f,EAAEuf,MAAOumD,EAAO,GAAKxlF,KAAK0f,EAAEuf,KAAMumD,EAAO,GAAKxlF,KAAK0f,EAAEuf,KAC1F,CAEA,GAAIj/B,KAAK0vC,uBAAyB,EAAG,CACnC,IAAIzI,EAAQjnC,KAAKnJ,EAAE25C,eAAexpB,GAClC6wB,EAAO5Q,MAAMA,EAAM,GAAKjnC,KAAKnJ,EAAEooC,KAAMgI,EAAM,GAAKjnC,KAAKnJ,EAAEooC,KAAMgI,EAAM,GAAKjnC,KAAKnJ,EAAEooC,KACjF,CAEA,GAAIj/B,KAAK2f,IAAM3f,KAAK0vC,uBAAyB,EAAG,CAC9C,IAAI3I,EAAO/mC,KAAK2f,GAAG6wB,eAAexpB,GAC9B6yD,EAAW75E,KAAK4f,GAAG4wB,eAAexpB,GACtC6wB,EAAO7Q,cAAcD,EAAO/mC,KAAK2f,GAAGsf,KAAM46C,EAAW75E,KAAK4f,GAAGqf,KAC/D,CAEA,GAAIj/B,KAAKga,GAAKha,KAAK0vC,uBAAyB,EAAG,CAC7C,IAAIylC,EAAWn1E,KAAKga,EAAEw2B,eAAexpB,GACrC6wB,EAAOvR,QAAQ6uC,EAAWn1E,KAAKga,EAAEilB,KACnC,MAAO,IAAKj/B,KAAKga,GAAKha,KAAK0vC,uBAAyB,EAAG,CACrD,IAAI+1C,EAAYzlF,KAAKgwC,GAAGQ,eAAexpB,GACnC0+D,EAAY1lF,KAAK+vC,GAAGS,eAAexpB,GACnC2+D,EAAY3lF,KAAK8vC,GAAGU,eAAexpB,GACnC4+D,EAAc5lF,KAAK2kC,GAAG6L,eAAexpB,GACzC6wB,EAAOjR,SAAS6+C,EAAYzlF,KAAKgwC,GAAG/Q,MAAM0H,QAAQ++C,EAAY1lF,KAAK+vC,GAAG9Q,MAAMyH,QAAQi/C,EAAY3lF,KAAK8vC,GAAG7Q,MAAM2H,SAASg/C,EAAY,GAAK5lF,KAAK2kC,GAAG1F,MAAM0H,QAAQi/C,EAAY,GAAK5lF,KAAK2kC,GAAG1F,MAAMyH,QAAQk/C,EAAY,GAAK5lF,KAAK2kC,GAAG1F,KAChO,CAEA,GAAIj/B,KAAKgO,KAAKpR,GAAKoD,KAAKgO,KAAKpR,EAAE/F,EAAG,CAChC,IAAIgvF,EAAY7lF,KAAK2vC,GAAGa,eAAexpB,GACnC8+D,EAAY9lF,KAAK4vC,GAAGY,eAAexpB,GAEvC,GAAIhnB,KAAKgO,KAAKpR,EAAEgtC,EAAG,CACjB,IAAIm8C,EAAY/lF,KAAK6vC,GAAGW,eAAexpB,GACvC6wB,EAAOzQ,UAAUy+C,EAAY7lF,KAAK2vC,GAAG1Q,KAAM6mD,EAAY9lF,KAAK4vC,GAAG3Q,MAAO8mD,EAAY/lF,KAAK6vC,GAAG5Q,KAC5F,MACE4Y,EAAOzQ,UAAUy+C,EAAY7lF,KAAK2vC,GAAG1Q,KAAM6mD,EAAY9lF,KAAK4vC,GAAG3Q,KAAM,EAEzE,KAAO,CACL,IAAIjnB,EAAWhY,KAAKpD,EAAE4zC,eAAexpB,GACrC6wB,EAAOzQ,UAAUpvB,EAAS,GAAKhY,KAAKpD,EAAEqiC,KAAMjnB,EAAS,GAAKhY,KAAKpD,EAAEqiC,MAAOjnB,EAAS,GAAKhY,KAAKpD,EAAEqiC,KAC/F,CAEA,OAAO4Y,CACT,CAEA,SAASmuC,IACP,OAAOhmF,KAAK+Z,EAAEmoB,MAAM,IAAI8D,OAC1B,CAEA,IAAI2K,EAAuBrB,yBAAyBqB,qBAEpDrB,yBAAyBqB,qBAAuB,SAAUvgB,EAAMpiB,EAAMic,GACpE,IAAIpW,EAAO88B,EAAqBvgB,EAAMpiB,EAAMic,GAS5C,OAPIpW,EAAK4sB,kBAAkB/pC,OACzBmd,EAAK28B,eAAiB80C,EAAwBz9E,KAAKgM,GAEnDA,EAAK28B,eAAiBw1C,EAA8Bn+E,KAAKgM,GAG3DA,EAAKqkE,iBAAmB8L,kBAAkB9L,iBACnCrkE,CACT,EAEA,IAAIoyE,EAAkB7lD,gBAAgBC,QAEtCD,gBAAgBC,QAAU,SAAUjQ,EAAMpiB,EAAM3L,EAAM48B,EAAMhV,GAC1D,IAAIpW,EAAOoyE,EAAgB71D,EAAMpiB,EAAM3L,EAAM48B,EAAMhV,GAI/CpW,EAAK4rB,GACP5rB,EAAK28B,eAAiBwzC,kBAAkBxzC,eAAe3oC,KAAKgM,GAE5DA,EAAK28B,eAAiBwzC,kBAAkBI,qBAAqBv8E,KAAKgM,GAGpEA,EAAKqkE,iBAAmB8L,kBAAkB9L,iBAC1CrkE,EAAKmtE,QAAUA,EACfntE,EAAKitE,OAASA,EACdjtE,EAAKqtE,OAASA,EACdrtE,EAAKwgE,kBAAoB2P,kBAAkB3P,kBAAkBxsE,KAAKgM,GAClEA,EAAK6gE,eAAiBsP,kBAAkBtP,eAAe7sE,KAAKgM,GAC5DA,EAAKygE,QAAqB,IAAXtmE,EAAK0R,EAAU1R,EAAKkP,EAAExmB,OAAS,EAC9Cmd,EAAKykE,cAAgBtqE,EAAKqrC,GAC1B,IAAIriD,EAAQ,EAiBZ,OAfa,IAATqL,IACFrL,EAAQ4e,iBAAiB,UAAsB,IAAX5H,EAAK0R,EAAU1R,EAAKkP,EAAE,GAAGrmB,EAAEH,OAASsX,EAAKkP,EAAExmB,SAGjFmd,EAAKswE,eAAiB,CACpBvoD,UAAW7oB,oBACXioB,UAAW,EACXhkC,MAAOA,GAETgtF,kBAAkBC,kBAAkB7zD,EAAMpiB,EAAM6F,GAE5CA,EAAKqJ,GACP+M,EAAU2V,mBAAmB/rB,GAGxBA,CACT,EAwBA,IAAIqyE,EAAmCvjD,qBAAqBwjD,yBACxDC,EAA4CzjD,qBAAqB0jD,kCAErE,SAASC,IAAoB,CAE7BA,EAAiB9lF,UAAY,CAC3BohC,SAAU,SAAkB/tB,EAAMmT,GAC5BhnB,KAAKkd,GACPld,KAAK+/B,WAGP,IAMIppC,EANAsrC,EAAYjiC,KAAK+Z,OAER5gB,IAAT6tB,IACFib,EAAYjiC,KAAKwwC,eAAexpB,EAAM,IAIxC,IAAI7oB,EAAM8jC,EAAUvN,QAChBkN,EAAWK,EAAUpuB,GACrB6e,EAASuP,EAAUloB,EACnBliB,EAAMoe,iBAAiB9X,GAE3B,IAAKxH,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EAEtBkB,EAAIlB,GADO,MAATkd,GAAyB,MAATA,EACT,CAAC+tB,EAASjrC,GAAG,GAAK+7B,EAAO/7B,GAAG,GAAIirC,EAASjrC,GAAG,GAAK+7B,EAAO/7B,GAAG,IAE3D,CAACirC,EAASjrC,GAAG,GAAIirC,EAASjrC,GAAG,IAI1C,OAAOkB,CACT,EACA66B,OAAQ,SAAgB1L,GACtB,OAAOhnB,KAAK4hC,SAAS,IAAK5a,EAC5B,EACAi5D,WAAY,SAAoBj5D,GAC9B,OAAOhnB,KAAK4hC,SAAS,IAAK5a,EAC5B,EACAk5D,YAAa,SAAqBl5D,GAChC,OAAOhnB,KAAK4hC,SAAS,IAAK5a,EAC5B,EACAu/D,SAAU,WACR,OAAOvmF,KAAK+Z,EAAEkG,CAChB,EACAumE,YAAa,SAAqBnwD,EAAMrP,GACtC,IAAIib,EAAYjiC,KAAK+Z,OAER5gB,IAAT6tB,IACFib,EAAYjiC,KAAKwwC,eAAexpB,EAAM,IAGnChnB,KAAKymF,kBACRzmF,KAAKymF,gBAAkBxsD,IAAIvC,kBAAkBuK,IAW/C,IARA,IAMIzkB,EANAoa,EAAiB53B,KAAKymF,gBACtBvxD,EAAU0C,EAAe1C,QACzBoC,EAAYM,EAAexC,YAAciB,EACzC1/B,EAAI,EACJwH,EAAM+2B,EAAQx+B,OACdgwF,EAAoB,EAGjB/vF,EAAIwH,GAAK,CACd,GAAIuoF,EAAoBxxD,EAAQv+B,GAAGq+B,YAAcsC,EAAW,CAC1D,IAAIqvD,EAAYhwF,EACZiwF,EAAW3kD,EAAUhiB,GAAKtpB,IAAMwH,EAAM,EAAI,EAAIxH,EAAI,EAClD+kC,GAAepE,EAAYovD,GAAqBxxD,EAAQv+B,GAAGq+B,YAC/DxX,EAAKyc,IAAIV,kBAAkB0I,EAAUloB,EAAE4sE,GAAY1kD,EAAUloB,EAAE6sE,GAAW3kD,EAAU9rC,EAAEwwF,GAAY1kD,EAAUtrC,EAAEiwF,GAAWlrD,EAAaxG,EAAQv+B,IAC9I,KACF,CACE+vF,GAAqBxxD,EAAQv+B,GAAGq+B,YAGlCr+B,GAAK,CACP,CAMA,OAJK6mB,IACHA,EAAKykB,EAAUhiB,EAAI,CAACgiB,EAAUloB,EAAE,GAAG,GAAIkoB,EAAUloB,EAAE,GAAG,IAAM,CAACkoB,EAAUloB,EAAEkoB,EAAUvN,QAAU,GAAG,GAAIuN,EAAUloB,EAAEkoB,EAAUvN,QAAU,GAAG,KAGlIlX,CACT,EACAqpE,aAAc,SAAsBxwD,EAAMrP,EAAM8/D,GAElC,GAARzwD,EAEFA,EAAOr2B,KAAK+Z,EAAEkG,EACG,GAARoW,IAETA,EAAO,MAGT,IAAIL,EAAMh2B,KAAKwmF,YAAYnwD,EAAMrP,GAC7BiP,EAAMj2B,KAAKwmF,YAAYnwD,EAAO,KAAOrP,GACrC+/D,EAAU9wD,EAAI,GAAKD,EAAI,GACvBgxD,EAAU/wD,EAAI,GAAKD,EAAI,GACvBixD,EAAY/qF,KAAKya,KAAKza,KAAKsQ,IAAIu6E,EAAS,GAAK7qF,KAAKsQ,IAAIw6E,EAAS,IAEnE,OAAkB,IAAdC,EACK,CAAC,EAAG,GAGmB,YAAfH,EAA2B,CAACC,EAAUE,EAAWD,EAAUC,GAAa,EAAED,EAAUC,EAAWF,EAAUE,EAE5H,EACAC,cAAe,SAAuB7wD,EAAMrP,GAC1C,OAAOhnB,KAAK6mF,aAAaxwD,EAAMrP,EAAM,UACvC,EACAmgE,aAAc,SAAsB9wD,EAAMrP,GACxC,OAAOhnB,KAAK6mF,aAAaxwD,EAAMrP,EAAM,SACvC,EACAkxD,iBAAkB8L,kBAAkB9L,iBACpC1nC,eAAgBwzC,kBAAkBI,sBAEpC7wE,gBAAgB,CAAC+yE,GAAmBJ,GACpC3yE,gBAAgB,CAAC+yE,GAAmBF,GACpCA,EAA0C5lF,UAAUgwC,eA5IpD,SAA6BnW,GAmB3B,OAjBKr6B,KAAKmkF,iBACRnkF,KAAKmkF,eAAiB,CACpBiD,WAAYplD,UAAUE,MAAMliC,KAAK06B,IACjCM,UAAW,EACXqsD,SAAUt0E,sBAIdsnB,GAAYr6B,KAAKowB,KAAK/F,WAAW9B,WACjC8R,GAAYr6B,KAAKw6B,cAEAx6B,KAAKmkF,eAAekD,WACnCrnF,KAAKmkF,eAAenpD,UAAYh7B,KAAKmkF,eAAekD,SAAWhtD,EAAWr6B,KAAK6+B,SAAS7D,UAAY,EACpGh7B,KAAKmkF,eAAekD,SAAWhtD,EAC/Br6B,KAAK4iC,iBAAiBvI,EAAUr6B,KAAKmkF,eAAeiD,WAAYpnF,KAAKmkF,iBAGhEnkF,KAAKmkF,eAAeiD,UAC7B,EAyHAhB,EAA0C5lF,UAAU8/E,mBAAqBhD,kBAAkBgD,mBAC3F,IAAIgH,EAAuB3kD,qBAAqBqiB,aAEhDriB,qBAAqBqiB,aAAe,SAAU50B,EAAMpiB,EAAM3L,EAAMxK,EAAK0vF,GACnE,IAAI1zE,EAAOyzE,EAAqBl3D,EAAMpiB,EAAM3L,EAAMxK,EAAK0vF,GAcvD,OAbA1zE,EAAKykE,cAAgBtqE,EAAKqrC,GAC1BxlC,EAAKyrB,MAAO,EAEC,IAATj9B,EACF2hF,kBAAkBC,kBAAkB7zD,EAAMpiB,EAAKwP,GAAI3J,GACjC,IAATxR,GACT2hF,kBAAkBC,kBAAkB7zD,EAAMpiB,EAAKsQ,GAAIzK,GAGjDA,EAAKqJ,GACPkT,EAAKwP,mBAAmB/rB,GAGnBA,CACT,CACF,CAEA,SAAS2zE,eACPnD,sBACF,CAEA,SAASoD,eAWPvzB,aAAa1zD,UAAUknF,mBAAqB,SAAUjwB,EAAc5Z,GAClE,IAAItjB,EAAWv6B,KAAK2nF,oBAAoB9pC,GAExC,GAAI4Z,EAAar7D,IAAMm+B,EAAU,CAC/B,IAAIw/B,EAAU,CAAC,EAIf,OAHA/5D,KAAKu1D,SAASwE,EAAStC,GACvBsC,EAAQ39D,EAAIm+B,EAASnxB,WACrB2wD,EAAQx5C,YAAa,EACdw5C,CACT,CAEA,OAAOtC,CACT,EAEAvD,aAAa1zD,UAAUg1D,eAAiB,WACtC,IAAIoyB,EAAc5nF,KAAKs3D,kBACnBuwB,EAAiB7nF,KAAKikF,oBAE1B,OADAjkF,KAAKy/B,GAAKmoD,GAAeC,EAClB7nF,KAAKy/B,EACd,EAEAy0B,aAAa1zD,UAAUyjF,kBA/BvB,WACE,OAAIjkF,KAAKgO,KAAK1T,EAAEw4B,GACd9yB,KAAK2nF,oBAAsBrK,kBAAkBgD,mBAAmBz4E,KAAK7H,KAA1Cs9E,CAAgDt9E,KAAKowB,KAAMpwB,KAAKgO,KAAK1T,EAAG0F,MACnGA,KAAK0/B,UAAU1/B,KAAK0nF,mBAAmB7/E,KAAK7H,QACrC,GAGF,IACT,CAwBF,CAEA,SAAS8nF,aACPL,cACF,CAEA,SAASM,sBAAuB,CAEhCA,oBAAoBvnF,UAAY,CAC9BwnF,gBAAiB,SAAyBC,EAAUC,GAClD,IAEIC,EACAxxF,EAHAyxF,EAAU7sE,SAAS,WAKvB,IAJA6sE,EAAQn3D,aAAa,SAAUg3D,GAI1BtxF,EAAI,EAAGA,EAAIuxF,EAAIxxF,OAAQC,GAAK,GAC/BwxF,EAAc5sE,SAAS,gBACX0V,aAAa,KAAMi3D,EAAIvxF,IACnCyxF,EAAQviE,YAAYsiE,GACpBC,EAAQviE,YAAYsiE,GAGtB,OAAOC,CACT,GAGF,IAAIC,kBAAoB,mFAExB,SAASC,cAAc3tC,EAAQ0Q,EAAej7B,EAAMpS,EAAIxS,GACtDxL,KAAKqrD,cAAgBA,EACrB,IAAIP,EAAgBvvC,SAAS,iBAC7BuvC,EAAc75B,aAAa,OAAQ,UACnC65B,EAAc75B,aAAa,8BAA+B,aAC1D65B,EAAc75B,aAAa,SAAUo3D,kBAAoB,QACzDroF,KAAKuoF,aAAez9B,EACpBA,EAAc75B,aAAa,SAAUjT,EAAK,WAC1C28B,EAAO90B,YAAYilC,IACnBA,EAAgBvvC,SAAS,kBACX0V,aAAa,OAAQ,UACnC65B,EAAc75B,aAAa,8BAA+B,QAC1D65B,EAAc75B,aAAa,SAAU,2CACrC65B,EAAc75B,aAAa,SAAUjT,EAAK,WAC1C28B,EAAO90B,YAAYilC,GACnB9qD,KAAKwoF,aAAe19B,EACpB,IAAIs9B,EAAUpoF,KAAKgoF,gBAAgBhqE,EAAI,CAACxS,EAAQwS,EAAK,UAAWA,EAAK,YACrE28B,EAAO90B,YAAYuiE,EACrB,CAcA,SAASK,cAAc9tC,EAAQ0Q,EAAej7B,EAAMpS,GAClDhe,KAAKqrD,cAAgBA,EACrB,IAAIP,EAAgBvvC,SAAS,iBAC7BuvC,EAAc75B,aAAa,OAAQ,UACnC65B,EAAc75B,aAAa,8BAA+B,QAC1D65B,EAAc75B,aAAa,SAAU,2CACrC65B,EAAc75B,aAAa,SAAUjT,GACrC28B,EAAO90B,YAAYilC,GACnB9qD,KAAKwoF,aAAe19B,CACtB,CAUA,SAAS49B,gBAAgB79B,EAAKQ,EAAej7B,GAC3CpwB,KAAK2oF,aAAc,EACnB3oF,KAAKqrD,cAAgBA,EACrBrrD,KAAKowB,KAAOA,EACZpwB,KAAKN,MAAQ,EACf,CAgIA,SAASkpF,iBAAiBjuC,EAAQ0Q,EAAej7B,EAAMpS,GACrDhe,KAAKqrD,cAAgBA,EACrB,IAAIP,EAAgBvvC,SAAS,iBAC7BuvC,EAAc75B,aAAa,OAAQ,UACnC65B,EAAc75B,aAAa,8BAA+B,aAC1D65B,EAAc75B,aAAa,SAAU,wFACrC0pB,EAAO90B,YAAYilC,GACnB,IAAI+9B,EAAsBttE,SAAS,uBACnCstE,EAAoB53D,aAAa,8BAA+B,QAChE43D,EAAoB53D,aAAa,SAAUjT,GAC3Che,KAAKwoF,aAAeK,EACpB,IAAIC,EAAUvtE,SAAS,WACvButE,EAAQ73D,aAAa,OAAQ,SAC7B43D,EAAoBhjE,YAAYijE,GAChC9oF,KAAK8oF,QAAUA,EACf,IAAIC,EAAUxtE,SAAS,WACvBwtE,EAAQ93D,aAAa,OAAQ,SAC7B43D,EAAoBhjE,YAAYkjE,GAChC/oF,KAAK+oF,QAAUA,EACf,IAAIC,EAAUztE,SAAS,WACvBytE,EAAQ/3D,aAAa,OAAQ,SAC7B43D,EAAoBhjE,YAAYmjE,GAChChpF,KAAKgpF,QAAUA,EACfruC,EAAO90B,YAAYgjE,EACrB,CAgBA,SAASI,mBAAmBtuC,EAAQ0Q,EAAej7B,EAAMpS,GACvDhe,KAAKqrD,cAAgBA,EACrB,IAAIpI,EAAiBjjD,KAAKqrD,cAAcpI,eACpC4lC,EAAsBttE,SAAS,wBAE/B0nC,EAAe,IAAIrmD,EAAEsgB,GAAgC,IAA3B+lC,EAAe,IAAIrmD,EAAEmd,GAAWkpC,EAAe,IAAIrmD,EAAEsgB,GAAgC,IAA3B+lC,EAAe,IAAIrmD,EAAEmd,GAAWkpC,EAAe,IAAIrmD,EAAEsgB,GAAgC,IAA3B+lC,EAAe,IAAIrmD,EAAEmd,GAAWkpC,EAAe,IAAIrmD,EAAEsgB,GAAgC,IAA3B+lC,EAAe,IAAIrmD,EAAEmd,GAAWkpC,EAAe,IAAIrmD,EAAEsgB,GAAgC,IAA3B+lC,EAAe,IAAIrmD,EAAEmd,KACzR/Z,KAAK8oF,QAAU9oF,KAAKkpF,aAAa,UAAWL,KAI1C5lC,EAAe,IAAIrmD,EAAEsgB,GAAgC,IAA3B+lC,EAAe,IAAIrmD,EAAEmd,GAAWkpC,EAAe,IAAIrmD,EAAEsgB,GAAgC,IAA3B+lC,EAAe,IAAIrmD,EAAEmd,GAAWkpC,EAAe,IAAIrmD,EAAEsgB,GAAgC,IAA3B+lC,EAAe,IAAIrmD,EAAEmd,GAAWkpC,EAAe,IAAIrmD,EAAEsgB,GAAgC,IAA3B+lC,EAAe,IAAIrmD,EAAEmd,GAAWkpC,EAAe,IAAIrmD,EAAEsgB,GAAgC,IAA3B+lC,EAAe,IAAIrmD,EAAEmd,KACzR/Z,KAAK+oF,QAAU/oF,KAAKkpF,aAAa,UAAWL,KAI1C5lC,EAAe,IAAIrmD,EAAEsgB,GAAgC,IAA3B+lC,EAAe,IAAIrmD,EAAEmd,GAAWkpC,EAAe,IAAIrmD,EAAEsgB,GAAgC,IAA3B+lC,EAAe,IAAIrmD,EAAEmd,GAAWkpC,EAAe,IAAIrmD,EAAEsgB,GAAgC,IAA3B+lC,EAAe,IAAIrmD,EAAEmd,GAAWkpC,EAAe,IAAIrmD,EAAEsgB,GAAgC,IAA3B+lC,EAAe,IAAIrmD,EAAEmd,GAAWkpC,EAAe,IAAIrmD,EAAEsgB,GAAgC,IAA3B+lC,EAAe,IAAIrmD,EAAEmd,KACzR/Z,KAAKgpF,QAAUhpF,KAAKkpF,aAAa,UAAWL,KAI1C5lC,EAAe,IAAIrmD,EAAEsgB,GAAgC,IAA3B+lC,EAAe,IAAIrmD,EAAEmd,GAAWkpC,EAAe,IAAIrmD,EAAEsgB,GAAgC,IAA3B+lC,EAAe,IAAIrmD,EAAEmd,GAAWkpC,EAAe,IAAIrmD,EAAEsgB,GAAgC,IAA3B+lC,EAAe,IAAIrmD,EAAEmd,GAAWkpC,EAAe,IAAIrmD,EAAEsgB,GAAgC,IAA3B+lC,EAAe,IAAIrmD,EAAEmd,GAAWkpC,EAAe,IAAIrmD,EAAEsgB,GAAgC,IAA3B+lC,EAAe,IAAIrmD,EAAEmd,KACzR/Z,KAAKmpF,QAAUnpF,KAAKkpF,aAAa,UAAWL,KAI1C7oF,KAAK8oF,SAAW9oF,KAAK+oF,SAAW/oF,KAAKgpF,SAAWhpF,KAAKmpF,WACvDN,EAAoB53D,aAAa,8BAA+B,QAChE0pB,EAAO90B,YAAYgjE,KAGjB5lC,EAAe,GAAGrmD,EAAEsgB,GAA+B,IAA1B+lC,EAAe,GAAGrmD,EAAEmd,GAAWkpC,EAAe,GAAGrmD,EAAEsgB,GAA+B,IAA1B+lC,EAAe,GAAGrmD,EAAEmd,GAAWkpC,EAAe,GAAGrmD,EAAEsgB,GAA+B,IAA1B+lC,EAAe,GAAGrmD,EAAEmd,GAAWkpC,EAAe,GAAGrmD,EAAEsgB,GAA+B,IAA1B+lC,EAAe,GAAGrmD,EAAEmd,GAAWkpC,EAAe,GAAGrmD,EAAEsgB,GAA+B,IAA1B+lC,EAAe,GAAGrmD,EAAEmd,MAC/Q8uE,EAAsBttE,SAAS,wBACX0V,aAAa,8BAA+B,QAChE43D,EAAoB53D,aAAa,SAAUjT,GAC3C28B,EAAO90B,YAAYgjE,GACnB7oF,KAAKopF,gBAAkBppF,KAAKkpF,aAAa,UAAWL,GACpD7oF,KAAKqpF,gBAAkBrpF,KAAKkpF,aAAa,UAAWL,GACpD7oF,KAAKspF,gBAAkBtpF,KAAKkpF,aAAa,UAAWL,GAExD,CA4EA,SAASU,oBAAoB5uC,EAAQ0Q,EAAej7B,EAAMpS,EAAIxS,GAC5D,IAAIg+E,EAAmBn+B,EAAcphC,UAAUI,WAAWw3B,aAAaif,WACnEA,EAAazV,EAAcr9C,KAAKyrD,IAAM+vB,EAC1C7uC,EAAO1pB,aAAa,IAAK6vC,EAAWhuC,GAAK02D,EAAiB12D,GAC1D6nB,EAAO1pB,aAAa,IAAK6vC,EAAWjnE,GAAK2vF,EAAiB3vF,GAC1D8gD,EAAO1pB,aAAa,QAAS6vC,EAAWj+C,OAAS2mE,EAAiB3mE,OAClE83B,EAAO1pB,aAAa,SAAU6vC,EAAWh+C,QAAU0mE,EAAiB1mE,QACpE9iB,KAAKqrD,cAAgBA,EACrB,IAAIo+B,EAAiBluE,SAAS,kBAC9BkuE,EAAex4D,aAAa,KAAM,eAClCw4D,EAAex4D,aAAa,SAAUjT,EAAK,kBAC3CyrE,EAAex4D,aAAa,eAAgB,KAC5CjxB,KAAKypF,eAAiBA,EACtB9uC,EAAO90B,YAAY4jE,GACnB,IAAIC,EAAWnuE,SAAS,YACxBmuE,EAASz4D,aAAa,KAAM,MAC5By4D,EAASz4D,aAAa,KAAM,KAC5By4D,EAASz4D,aAAa,KAAMjT,EAAK,kBACjC0rE,EAASz4D,aAAa,SAAUjT,EAAK,kBACrChe,KAAK0pF,SAAWA,EAChB/uC,EAAO90B,YAAY6jE,GACnB,IAAIC,EAAUpuE,SAAS,WACvBouE,EAAQ14D,aAAa,cAAe,WACpC04D,EAAQ14D,aAAa,gBAAiB,KACtC04D,EAAQ14D,aAAa,SAAUjT,EAAK,kBACpChe,KAAK2pF,QAAUA,EACfhvC,EAAO90B,YAAY8jE,GACnB,IAAIC,EAAcruE,SAAS,eAC3BquE,EAAY34D,aAAa,KAAMjT,EAAK,kBACpC4rE,EAAY34D,aAAa,MAAOjT,EAAK,kBACrC4rE,EAAY34D,aAAa,WAAY,MACrC24D,EAAY34D,aAAa,SAAUjT,EAAK,kBACxC28B,EAAO90B,YAAY+jE,GACnB,IAAIxB,EAAUpoF,KAAKgoF,gBAAgBhqE,EAAI,CAACA,EAAK,iBAAkBxS,IAC/DmvC,EAAO90B,YAAYuiE,EACrB,CAlWA70E,gBAAgB,CAACw0E,qBAAsBO,eAEvCA,cAAc9nF,UAAU0sB,YAAc,SAAUkjB,GAC9C,GAAIA,GAAepwC,KAAKqrD,cAAcnsB,KAAM,CAC1C,IAAI2qD,EAAa7pF,KAAKqrD,cAAcpI,eAAe,GAAGrmD,EAAEmd,EACpD+vE,EAAa9pF,KAAKqrD,cAAcpI,eAAe,GAAGrmD,EAAEmd,EACpDmqD,EAAUlkE,KAAKqrD,cAAcpI,eAAe,GAAGrmD,EAAEmd,EAAI,IACzD/Z,KAAKuoF,aAAat3D,aAAa,SAAUo3D,kBAAoB,IAAMnkB,EAAU,MAC7ElkE,KAAKwoF,aAAav3D,aAAa,SAAU64D,EAAW,GAAKD,EAAW,GAAK,UAAYA,EAAW,GAAK,KAAOC,EAAW,GAAKD,EAAW,IAAM,UAAYA,EAAW,GAAK,KAAOC,EAAW,GAAKD,EAAW,IAAM,UAAYA,EAAW,GAAK,aAC/O,CACF,EAaApB,cAAcjoF,UAAU0sB,YAAc,SAAUkjB,GAC9C,GAAIA,GAAepwC,KAAKqrD,cAAcnsB,KAAM,CAC1C,IAAI7kB,EAAQra,KAAKqrD,cAAcpI,eAAe,GAAGrmD,EAAEmd,EAC/CmqD,EAAUlkE,KAAKqrD,cAAcpI,eAAe,GAAGrmD,EAAEmd,EACrD/Z,KAAKwoF,aAAav3D,aAAa,SAAU,WAAa5W,EAAM,GAAK,YAAcA,EAAM,GAAK,YAAcA,EAAM,GAAK,UAAY6pD,EAAU,KAC3I,CACF,EASAwkB,gBAAgBloF,UAAUsnF,WAAa,WACrC,IACI5rE,EACA6tE,EACApzF,EACAwH,EAJA6rF,EAAehqF,KAAKowB,KAAK62B,aAAatnD,UAAYK,KAAKowB,KAAK62B,aAAagjC,WAmB7E,IAbiD,IAA7CjqF,KAAKqrD,cAAcpI,eAAe,GAAGrmD,EAAEmd,GACzC5b,EAAM6B,KAAKowB,KAAK+1B,YAAY5oC,gBAAgB7mB,OAC5CC,EAAI,GAGJwH,EAAU,GADVxH,EAAIqJ,KAAKqrD,cAAcpI,eAAe,GAAGrmD,EAAEmd,EAAI,IAIjDgwE,EAAYxuE,SAAS,MACX0V,aAAa,OAAQ,QAC/B84D,EAAU94D,aAAa,iBAAkB,SACzC84D,EAAU94D,aAAa,oBAAqB,GAEpCt6B,EAAIwH,EAAKxH,GAAK,EACpBulB,EAAOX,SAAS,QAChBwuE,EAAUlkE,YAAY3J,GACtBlc,KAAKN,MAAMpH,KAAK,CACdsE,EAAGsf,EACHphB,EAAGnE,IAIP,GAAkD,IAA9CqJ,KAAKqrD,cAAcpI,eAAe,IAAIrmD,EAAEmd,EAAS,CACnD,IAAIjhB,EAAOyiB,SAAS,QAChByC,EAAKpE,kBACT9gB,EAAKm4B,aAAa,KAAMjT,GACxBllB,EAAKm4B,aAAa,YAAa,SAC/Bn4B,EAAK+sB,YAAYkkE,GACjB/pF,KAAKowB,KAAK/F,WAAWC,KAAKzE,YAAY/sB,GACtC,IAAIiH,EAAIwb,SAAS,KAGjB,IAFAxb,EAAEkxB,aAAa,OAAQ,OAAS7d,kBAAoB,IAAM4K,EAAK,KAExDgsE,EAAa,IAClBjqF,EAAE8lB,YAAYmkE,EAAa,IAG7BhqF,KAAKowB,KAAK62B,aAAaphC,YAAY9lB,GACnCC,KAAKytD,OAAS30D,EACdixF,EAAU94D,aAAa,SAAU,OACnC,MAAO,GAAkD,IAA9CjxB,KAAKqrD,cAAcpI,eAAe,IAAIrmD,EAAEmd,GAAyD,IAA9C/Z,KAAKqrD,cAAcpI,eAAe,IAAIrmD,EAAEmd,EAAS,CAC7G,GAAkD,IAA9C/Z,KAAKqrD,cAAcpI,eAAe,IAAIrmD,EAAEmd,EAG1C,IAFAiwE,EAAehqF,KAAKowB,KAAK62B,aAAatnD,UAAYK,KAAKowB,KAAK62B,aAAagjC,WAElED,EAAatzF,QAClBsJ,KAAKowB,KAAK62B,aAAavG,YAAYspC,EAAa,IAIpDhqF,KAAKowB,KAAK62B,aAAaphC,YAAYkkE,GACnC/pF,KAAKowB,KAAK62B,aAAaijC,gBAAgB,QACvCH,EAAU94D,aAAa,SAAU,OACnC,CAEAjxB,KAAK2oF,aAAc,EACnB3oF,KAAKmqF,WAAaJ,CACpB,EAEArB,gBAAgBloF,UAAU0sB,YAAc,SAAUkjB,GAKhD,IAAIz5C,EAJCqJ,KAAK2oF,aACR3oF,KAAK8nF,aAIP,IACIhvF,EACAojB,EAFA/d,EAAM6B,KAAKN,MAAMhJ,OAIrB,IAAKC,EAAI,EAAGA,EAAIwH,EAAKxH,GAAK,EACxB,IAAyB,IAArBqJ,KAAKN,MAAM/I,GAAGmE,IAChBhC,EAAOkH,KAAKowB,KAAK+1B,YAAY7B,SAAStkD,KAAKN,MAAM/I,GAAGmE,GACpDohB,EAAOlc,KAAKN,MAAM/I,GAAGiG,GAEjBwzC,GAAepwC,KAAKqrD,cAAcnsB,MAAQpmC,EAAK+a,KAAKqrB,OACtDhjB,EAAK+U,aAAa,IAAKn4B,EAAKmsD,UAG1B7U,GAAepwC,KAAKqrD,cAAcpI,eAAe,GAAGrmD,EAAEsiC,MAAQl/B,KAAKqrD,cAAcpI,eAAe,GAAGrmD,EAAEsiC,MAAQl/B,KAAKqrD,cAAcpI,eAAe,GAAGrmD,EAAEsiC,MAAQl/B,KAAKqrD,cAAcpI,eAAe,GAAGrmD,EAAEsiC,MAAQpmC,EAAK+a,KAAKqrB,MAAM,CAC7N,IAAIkrD,EAEJ,GAAiD,IAA7CpqF,KAAKqrD,cAAcpI,eAAe,GAAGrmD,EAAEmd,GAAwD,MAA7C/Z,KAAKqrD,cAAcpI,eAAe,GAAGrmD,EAAEmd,EAAW,CACtG,IAAIljB,EAAmG,IAA/FqF,KAAK8a,IAAIhX,KAAKqrD,cAAcpI,eAAe,GAAGrmD,EAAEmd,EAAG/Z,KAAKqrD,cAAcpI,eAAe,GAAGrmD,EAAEmd,GAC9F9iB,EAAmG,IAA/FiF,KAAK4a,IAAI9W,KAAKqrD,cAAcpI,eAAe,GAAGrmD,EAAEmd,EAAG/Z,KAAKqrD,cAAcpI,eAAe,GAAGrmD,EAAEmd,GAC9F/d,EAAIkgB,EAAKmuE,iBACbD,EAAiB,SAAWpuF,EAAInF,EAAI,IACpC,IAGImmB,EAHAstE,EAAatuF,GAAK/E,EAAIJ,GACtB+0B,EAAU,EAA+C,EAA3C5rB,KAAKqrD,cAAcpI,eAAe,GAAGrmD,EAAEmd,EAAQ/Z,KAAKqrD,cAAcpI,eAAe,GAAGrmD,EAAEmd,EAAI,IACxGwwE,EAAQruF,KAAKC,MAAMmuF,EAAa1+D,GAGpC,IAAK5O,EAAI,EAAGA,EAAIutE,EAAOvtE,GAAK,EAC1BotE,GAAkB,KAAkD,EAA3CpqF,KAAKqrD,cAAcpI,eAAe,GAAGrmD,EAAEmd,EAAQ/Z,KAAKqrD,cAAcpI,eAAe,GAAGrmD,EAAEmd,EAAI,IAAO,IAG5HqwE,GAAkB,KAAW,GAAJpuF,EAAS,MACpC,MACEouF,EAAiB,KAAkD,EAA3CpqF,KAAKqrD,cAAcpI,eAAe,GAAGrmD,EAAEmd,EAAQ/Z,KAAKqrD,cAAcpI,eAAe,GAAGrmD,EAAEmd,EAAI,IAGpHmC,EAAK+U,aAAa,mBAAoBm5D,EACxC,CAYJ,IARIh6C,GAAepwC,KAAKqrD,cAAcpI,eAAe,GAAGrmD,EAAEsiC,OACxDl/B,KAAKmqF,WAAWl5D,aAAa,eAA2D,EAA3CjxB,KAAKqrD,cAAcpI,eAAe,GAAGrmD,EAAEmd,IAGlFq2B,GAAepwC,KAAKqrD,cAAcpI,eAAe,GAAGrmD,EAAEsiC,OACxDl/B,KAAKmqF,WAAWl5D,aAAa,UAAWjxB,KAAKqrD,cAAcpI,eAAe,GAAGrmD,EAAEmd,IAG/B,IAA9C/Z,KAAKqrD,cAAcpI,eAAe,IAAIrmD,EAAEmd,GAAyD,IAA9C/Z,KAAKqrD,cAAcpI,eAAe,IAAIrmD,EAAEmd,KACzFq2B,GAAepwC,KAAKqrD,cAAcpI,eAAe,GAAGrmD,EAAEsiC,MAAM,CAC9D,IAAI7kB,EAAQra,KAAKqrD,cAAcpI,eAAe,GAAGrmD,EAAEmd,EACnD/Z,KAAKmqF,WAAWl5D,aAAa,SAAU,OAASra,QAAmB,IAAXyD,EAAM,IAAY,IAAMzD,QAAmB,IAAXyD,EAAM,IAAY,IAAMzD,QAAmB,IAAXyD,EAAM,IAAY,IAC5I,CAEJ,EA4BAuuE,iBAAiBpoF,UAAU0sB,YAAc,SAAUkjB,GACjD,GAAIA,GAAepwC,KAAKqrD,cAAcnsB,KAAM,CAC1C,IAAIsrD,EAASxqF,KAAKqrD,cAAcpI,eAAe,GAAGrmD,EAAEmd,EAChD0wE,EAASzqF,KAAKqrD,cAAcpI,eAAe,GAAGrmD,EAAEmd,EAChD2wE,EAAS1qF,KAAKqrD,cAAcpI,eAAe,GAAGrmD,EAAEmd,EAChD4wE,EAASD,EAAO,GAAK,IAAMD,EAAO,GAAK,IAAMD,EAAO,GACpDI,EAASF,EAAO,GAAK,IAAMD,EAAO,GAAK,IAAMD,EAAO,GACpDK,EAASH,EAAO,GAAK,IAAMD,EAAO,GAAK,IAAMD,EAAO,GACxDxqF,KAAK8oF,QAAQ73D,aAAa,cAAe05D,GACzC3qF,KAAK+oF,QAAQ93D,aAAa,cAAe25D,GACzC5qF,KAAKgpF,QAAQ/3D,aAAa,cAAe45D,EAC3C,CACF,EA2CA5B,mBAAmBzoF,UAAU0oF,aAAe,SAAU7mF,EAAMwmF,GAC1D,IAAI/6B,EAASvyC,SAASlZ,GAGtB,OAFAyrD,EAAO78B,aAAa,OAAQ,SAC5B43D,EAAoBhjE,YAAYioC,GACzBA,CACT,EAEAm7B,mBAAmBzoF,UAAUsqF,cAAgB,SAAUC,EAAYC,EAAYC,EAAOC,EAAaC,GAcjG,IAbA,IAEI90D,EAMA+0D,EARArpD,EAAM,EAGN/qB,EAAM9a,KAAK8a,IAAI+zE,EAAYC,GAC3Bl0E,EAAM5a,KAAK4a,IAAIi0E,EAAYC,GAC3BK,EAAQ70F,MAAMgB,KAAK,KAAM,CAC3Bd,OALa,MAQXyqC,EAAM,EACNmqD,EAAcH,EAAcD,EAC5BK,EAAaP,EAAaD,EAEvBhpD,GAAO,KAIVqpD,GAHF/0D,EAAO0L,EAAM,MAED/qB,EACGu0E,EAAa,EAAIJ,EAAcD,EACnC70D,GAAQvf,EACJy0E,EAAa,EAAIL,EAAcC,EAE/BD,EAAcI,EAAcpvF,KAAKsQ,KAAK6pB,EAAO00D,GAAcQ,EAAY,EAAIN,GAG1FI,EAAMlqD,GAAOiqD,EACbjqD,GAAO,EACPY,GAAO,IAAM,IAGf,OAAOspD,EAAMlgF,KAAK,IACpB,EAEA89E,mBAAmBzoF,UAAU0sB,YAAc,SAAUkjB,GACnD,GAAIA,GAAepwC,KAAKqrD,cAAcnsB,KAAM,CAC1C,IAAIhhC,EACA+kD,EAAiBjjD,KAAKqrD,cAAcpI,eAEpCjjD,KAAKopF,kBAAoBh5C,GAAe6S,EAAe,GAAGrmD,EAAEsiC,MAAQ+jB,EAAe,GAAGrmD,EAAEsiC,MAAQ+jB,EAAe,GAAGrmD,EAAEsiC,MAAQ+jB,EAAe,GAAGrmD,EAAEsiC,MAAQ+jB,EAAe,GAAGrmD,EAAEsiC,QAC9KhhC,EAAM8B,KAAK8qF,cAAc7nC,EAAe,GAAGrmD,EAAEmd,EAAGkpC,EAAe,GAAGrmD,EAAEmd,EAAGkpC,EAAe,GAAGrmD,EAAEmd,EAAGkpC,EAAe,GAAGrmD,EAAEmd,EAAGkpC,EAAe,GAAGrmD,EAAEmd,GACzI/Z,KAAKopF,gBAAgBn4D,aAAa,cAAe/yB,GACjD8B,KAAKqpF,gBAAgBp4D,aAAa,cAAe/yB,GACjD8B,KAAKspF,gBAAgBr4D,aAAa,cAAe/yB,IAG/C8B,KAAK8oF,UAAY14C,GAAe6S,EAAe,IAAIrmD,EAAEsiC,MAAQ+jB,EAAe,IAAIrmD,EAAEsiC,MAAQ+jB,EAAe,IAAIrmD,EAAEsiC,MAAQ+jB,EAAe,IAAIrmD,EAAEsiC,MAAQ+jB,EAAe,IAAIrmD,EAAEsiC,QAC3KhhC,EAAM8B,KAAK8qF,cAAc7nC,EAAe,IAAIrmD,EAAEmd,EAAGkpC,EAAe,IAAIrmD,EAAEmd,EAAGkpC,EAAe,IAAIrmD,EAAEmd,EAAGkpC,EAAe,IAAIrmD,EAAEmd,EAAGkpC,EAAe,IAAIrmD,EAAEmd,GAC9I/Z,KAAK8oF,QAAQ73D,aAAa,cAAe/yB,IAGvC8B,KAAK+oF,UAAY34C,GAAe6S,EAAe,IAAIrmD,EAAEsiC,MAAQ+jB,EAAe,IAAIrmD,EAAEsiC,MAAQ+jB,EAAe,IAAIrmD,EAAEsiC,MAAQ+jB,EAAe,IAAIrmD,EAAEsiC,MAAQ+jB,EAAe,IAAIrmD,EAAEsiC,QAC3KhhC,EAAM8B,KAAK8qF,cAAc7nC,EAAe,IAAIrmD,EAAEmd,EAAGkpC,EAAe,IAAIrmD,EAAEmd,EAAGkpC,EAAe,IAAIrmD,EAAEmd,EAAGkpC,EAAe,IAAIrmD,EAAEmd,EAAGkpC,EAAe,IAAIrmD,EAAEmd,GAC9I/Z,KAAK+oF,QAAQ93D,aAAa,cAAe/yB,IAGvC8B,KAAKgpF,UAAY54C,GAAe6S,EAAe,IAAIrmD,EAAEsiC,MAAQ+jB,EAAe,IAAIrmD,EAAEsiC,MAAQ+jB,EAAe,IAAIrmD,EAAEsiC,MAAQ+jB,EAAe,IAAIrmD,EAAEsiC,MAAQ+jB,EAAe,IAAIrmD,EAAEsiC,QAC3KhhC,EAAM8B,KAAK8qF,cAAc7nC,EAAe,IAAIrmD,EAAEmd,EAAGkpC,EAAe,IAAIrmD,EAAEmd,EAAGkpC,EAAe,IAAIrmD,EAAEmd,EAAGkpC,EAAe,IAAIrmD,EAAEmd,EAAGkpC,EAAe,IAAIrmD,EAAEmd,GAC9I/Z,KAAKgpF,QAAQ/3D,aAAa,cAAe/yB,IAGvC8B,KAAKmpF,UAAY/4C,GAAe6S,EAAe,IAAIrmD,EAAEsiC,MAAQ+jB,EAAe,IAAIrmD,EAAEsiC,MAAQ+jB,EAAe,IAAIrmD,EAAEsiC,MAAQ+jB,EAAe,IAAIrmD,EAAEsiC,MAAQ+jB,EAAe,IAAIrmD,EAAEsiC,QAC3KhhC,EAAM8B,KAAK8qF,cAAc7nC,EAAe,IAAIrmD,EAAEmd,EAAGkpC,EAAe,IAAIrmD,EAAEmd,EAAGkpC,EAAe,IAAIrmD,EAAEmd,EAAGkpC,EAAe,IAAIrmD,EAAEmd,EAAGkpC,EAAe,IAAIrmD,EAAEmd,GAC9I/Z,KAAKmpF,QAAQl4D,aAAa,cAAe/yB,GAE7C,CACF,EAuCAqV,gBAAgB,CAACw0E,qBAAsBwB,qBAEvCA,oBAAoB/oF,UAAU0sB,YAAc,SAAUkjB,GACpD,GAAIA,GAAepwC,KAAKqrD,cAAcnsB,KAAM,CAK1C,IAJIkR,GAAepwC,KAAKqrD,cAAcpI,eAAe,GAAGrmD,EAAEsiC,OACxDl/B,KAAKypF,eAAex4D,aAAa,eAAgBjxB,KAAKqrD,cAAcpI,eAAe,GAAGrmD,EAAEmd,EAAI,GAG1Fq2B,GAAepwC,KAAKqrD,cAAcpI,eAAe,GAAGrmD,EAAEsiC,KAAM,CAC9D,IAAIssD,EAAMxrF,KAAKqrD,cAAcpI,eAAe,GAAGrmD,EAAEmd,EACjD/Z,KAAK2pF,QAAQ14D,aAAa,cAAevW,SAASxe,KAAK0b,MAAe,IAAT4zE,EAAI,IAAWtvF,KAAK0b,MAAe,IAAT4zE,EAAI,IAAWtvF,KAAK0b,MAAe,IAAT4zE,EAAI,KACvH,CAMA,IAJIp7C,GAAepwC,KAAKqrD,cAAcpI,eAAe,GAAGrmD,EAAEsiC,OACxDl/B,KAAK2pF,QAAQ14D,aAAa,gBAAiBjxB,KAAKqrD,cAAcpI,eAAe,GAAGrmD,EAAEmd,EAAI,KAGpFq2B,GAAepwC,KAAKqrD,cAAcpI,eAAe,GAAGrmD,EAAEsiC,MAAQl/B,KAAKqrD,cAAcpI,eAAe,GAAGrmD,EAAEsiC,KAAM,CAC7G,IAAImb,EAAWr6C,KAAKqrD,cAAcpI,eAAe,GAAGrmD,EAAEmd,EAClDirB,GAAShlC,KAAKqrD,cAAcpI,eAAe,GAAGrmD,EAAEmd,EAAI,IAAMxC,UAC1Dub,EAAIunB,EAAWn+C,KAAKkiC,IAAI4G,GACxBnrC,EAAIwgD,EAAWn+C,KAAKshC,IAAIwH,GAC5BhlC,KAAK0pF,SAASz4D,aAAa,KAAM6B,GACjC9yB,KAAK0pF,SAASz4D,aAAa,KAAMp3B,EACnC,CACF,CACF,EAEA,IAAI4xF,iBAAmB,GAEvB,SAASC,gBAAgBC,EAAYtgC,EAAej7B,GAClDpwB,KAAK2oF,aAAc,EACnB3oF,KAAKqrD,cAAgBA,EACrBrrD,KAAK2rF,WAAaA,EAClB3rF,KAAKowB,KAAOA,EACZA,EAAKk8B,aAAe/wC,SAAS,KAC7B6U,EAAKk8B,aAAazmC,YAAYuK,EAAK62B,cACnC72B,EAAKk8B,aAAazmC,YAAYuK,EAAKm8B,oBACnCn8B,EAAK42B,YAAc52B,EAAKk8B,YAC1B,CAqGA,SAASs/B,sBAAsBjxC,EAAQ0Q,EAAej7B,EAAMpS,GAE1D28B,EAAO1pB,aAAa,IAAK,SACzB0pB,EAAO1pB,aAAa,IAAK,SACzB0pB,EAAO1pB,aAAa,QAAS,QAC7B0pB,EAAO1pB,aAAa,SAAU,QAC9BjxB,KAAKqrD,cAAgBA,EACrB,IAAIo+B,EAAiBluE,SAAS,kBAC9BkuE,EAAex4D,aAAa,SAAUjT,GACtC28B,EAAO90B,YAAY4jE,GACnBzpF,KAAKypF,eAAiBA,CACxB,CAsDA,OApKAiC,gBAAgBlrF,UAAUqrF,WAAa,SAAU/yF,GAI/C,IAHA,IAAInC,EAAI,EACJwH,EAAMstF,iBAAiB/0F,OAEpBC,EAAIwH,GAAK,CACd,GAAIstF,iBAAiB90F,KAAOmC,EAC1B,OAAO2yF,iBAAiB90F,GAG1BA,GAAK,CACP,CAEA,OAAO,IACT,EAEA+0F,gBAAgBlrF,UAAUsrF,gBAAkB,SAAUhzF,EAAMizF,GAC1D,IAAI1vC,EAAavjD,EAAKmuD,aAAa5K,WAEnC,GAAKA,EAAL,CAQA,IAJA,IAYI2vC,EAZArsF,EAAW08C,EAAW18C,SACtBhJ,EAAI,EACJwH,EAAMwB,EAASjJ,OAEZC,EAAIwH,GACLwB,EAAShJ,KAAOmC,EAAKmuD,cAIzBtwD,GAAK,EAKHA,GAAKwH,EAAM,IACb6tF,EAAYrsF,EAAShJ,EAAI,IAG3B,IAAIs1F,EAAU1wE,SAAS,OACvB0wE,EAAQh7D,aAAa,OAAQ,IAAM86D,GAE/BC,EACF3vC,EAAWknB,aAAa0oB,EAASD,GAEjC3vC,EAAWx2B,YAAYomE,EA1BzB,CA4BF,EAEAP,gBAAgBlrF,UAAU0rF,iBAAmB,SAAU97D,EAAMt3B,GAC3D,IAAKkH,KAAK6rF,WAAW/yF,GAAO,CAC1B,IAAIizF,EAAWnyE,kBACX6zC,EAASlyC,SAAS,QACtBkyC,EAAOx8B,aAAa,KAAMn4B,EAAK+rD,SAC/B4I,EAAOx8B,aAAa,YAAa,SAEjCw6D,iBAAiBnzF,KAAKQ,GAEtB,IAAIwxB,EAAO8F,EAAK/F,WAAWC,KAC3BA,EAAKzE,YAAY4nC,GACjB,IAAI0+B,EAAS5wE,SAAS,UACtB4wE,EAAOl7D,aAAa,KAAM86D,GAC1B/rF,KAAK8rF,gBAAgBhzF,EAAMizF,GAC3BI,EAAOtmE,YAAY/sB,EAAKmuD,cACxB38B,EAAKzE,YAAYsmE,GACjB,IAAIF,EAAU1wE,SAAS,OACvB0wE,EAAQh7D,aAAa,OAAQ,IAAM86D,GACnCt+B,EAAO5nC,YAAYomE,GACnBnzF,EAAKkV,KAAK8+C,IAAK,EACfh0D,EAAKu2B,MACP,CAEAe,EAAK49B,SAASl1D,EAAK+rD,QACrB,EAEA6mC,gBAAgBlrF,UAAUsnF,WAAa,WAMrC,IALA,IAAIvsD,EAAMv7B,KAAKqrD,cAAcpI,eAAe,GAAGrmD,EAAEmd,EAC7Cw+B,EAAWv4C,KAAKowB,KAAKnS,KAAKs6B,SAC1B5hD,EAAI,EACJwH,EAAMo6C,EAAS7hD,OAEZC,EAAIwH,GACLo6C,EAAS5hD,IAAM4hD,EAAS5hD,GAAGqX,KAAKutB,MAAQA,GAC1Cv7B,KAAKksF,iBAAiBlsF,KAAKowB,KAAMmoB,EAAS5hD,IAG5CA,GAAK,EAGPqJ,KAAK2oF,aAAc,CACrB,EAEA+C,gBAAgBlrF,UAAU0sB,YAAc,WACjCltB,KAAK2oF,aACR3oF,KAAK8nF,YAET,EAeA8D,sBAAsBprF,UAAU0sB,YAAc,SAAUkjB,GACtD,GAAIA,GAAepwC,KAAKqrD,cAAcnsB,KAAM,CAE1C,IACIktD,EADqB,GACbpsF,KAAKqrD,cAAcpI,eAAe,GAAGrmD,EAAEmd,EAO/CsyE,EAAarsF,KAAKqrD,cAAcpI,eAAe,GAAGrmD,EAAEmd,EACpDuyE,EAAuB,GAAdD,EAAkB,EAAID,EAE/BG,EAAuB,GAAdF,EAAkB,EAAID,EAEnCpsF,KAAKypF,eAAex4D,aAAa,eAAgBq7D,EAAS,IAAMC,GAKhE,IAAIC,EAAuD,GAA5CxsF,KAAKqrD,cAAcpI,eAAe,GAAGrmD,EAAEmd,EAAS,OAAS,YAExE/Z,KAAKypF,eAAex4D,aAAa,WAAYu7D,EAC/C,CACF,EAEAxkE,iBAAiB,SAAUu/C,gBAC3Bv/C,iBAAiB,OAAQwgD,gBACzBxgD,iBAAiB,MAAO+3C,aAExBnzB,eAAeE,iBAAiB,KAAMG,cACtCL,eAAeE,iBAAiB,KAAMI,wBACtCN,eAAeE,iBAAiB,KAAM8D,kBACtChE,eAAeE,iBAAiB,KAAM+D,sBACtCjE,eAAeE,iBAAiB,KAAM0G,gBACtC5G,eAAeE,iBAAiB,KAAMgK,oBAEtC/7B,qBAAqBo4D,aACrBl4D,wBAAwB+/D,cACxBwM,eACAM,aAEAn8B,eAAe,GAAI28B,eAAe,GAClC38B,eAAe,GAAI88B,eAAe,GAClC98B,eAAe,GAAI+8B,iBAAiB,GACpC/8B,eAAe,GAAIi9B,kBAAkB,GACrCj9B,eAAe,GAAIs9B,oBAAoB,GACvCt9B,eAAe,GAAI49B,qBAAqB,GACxC59B,eAAe,GAAI+/B,iBAAiB,GACpC//B,eAAe,GAAIigC,uBAAuB,GAEnCzgD,MAET,EAzvmBiEp1C,OAAOC,QAAU2c,U,4FCGnE,SAAS85E,EAAmB50F,GACzC,OCJa,SAA4BA,GACzC,GAAIrB,MAAMC,QAAQoB,GAAM,OAAO,OAAA60F,EAAA,GAAiB70F,EAClD,CDES,CAAkBA,IELZ,SAA0B0O,GACvC,GAAsB,qBAAXjQ,QAAmD,MAAzBiQ,EAAKjQ,OAAOC,WAA2C,MAAtBgQ,EAAK,cAAuB,OAAO/P,MAAM6S,KAAK9C,EACtH,CFGmC,CAAgB1O,IAAQ,OAAAU,EAAA,GAA2BV,IGLvE,WACb,MAAM,IAAIT,UAAU,uIACtB,CHG8F,EAC9F,C,kCIEa,IAAI4E,EAAE/F,EAAQ,IAAiBa,EAAE,MAAM8F,EAAE,MAAM5G,EAAQ22F,SAAS,MAAM32F,EAAQ42F,WAAW,MAAM52F,EAAQ62F,SAAS,MAAM,IAAI3yE,EAAE,MAAMF,EAAE,MAAM5d,EAAE,MAAMpG,EAAQ82F,SAAS,MAAM,IAAI/oE,EAAE,MAAMhK,EAAE,MACpM,GAAG,oBAAoBzjB,QAAQA,OAAOy2F,IAAI,CAAC,IAAIjxC,EAAExlD,OAAOy2F,IAAIj2F,EAAEglD,EAAE,iBAAiBl/C,EAAEk/C,EAAE,gBAAgB9lD,EAAQ22F,SAAS7wC,EAAE,kBAAkB9lD,EAAQ42F,WAAW9wC,EAAE,qBAAqB9lD,EAAQ62F,SAAS/wC,EAAE,kBAAkB5hC,EAAE4hC,EAAE,kBAAkB9hC,EAAE8hC,EAAE,iBAAiB1/C,EAAE0/C,EAAE,qBAAqB9lD,EAAQ82F,SAAShxC,EAAE,kBAAkB/3B,EAAE+3B,EAAE,cAAc/hC,EAAE+hC,EAAE,aAAa,CAAC,IAAIhpB,EAAE,oBAAoBx8B,QAAQA,OAAOC,SACtR,SAASqzC,EAAElqB,GAAG,IAAI,IAAIzF,EAAE,yDAAyDyF,EAAEO,EAAE,EAAEA,EAAEhnB,UAAUvC,OAAOupB,IAAIhG,GAAG,WAAW+yE,mBAAmB/zF,UAAUgnB,IAAI,MAAM,yBAAyBP,EAAE,WAAWzF,EAAE,gHAAgH,CACpb,IAAIiY,EAAE,CAAC+6D,UAAU,WAAW,OAAM,CAAE,EAAEC,mBAAmB,WAAW,EAAEC,oBAAoB,WAAW,EAAEC,gBAAgB,WAAW,GAAG/6D,EAAE,CAAC,EAAE,SAASC,EAAE5S,EAAEzF,EAAEgG,GAAGjgB,KAAK0I,MAAMgX,EAAE1f,KAAK+B,QAAQkY,EAAEja,KAAKqtF,KAAKh7D,EAAEryB,KAAKstF,QAAQrtE,GAAGiS,CAAC,CACrN,SAASv4B,IAAI,CAAyB,SAAS4zF,EAAE7tE,EAAEzF,EAAEgG,GAAGjgB,KAAK0I,MAAMgX,EAAE1f,KAAK+B,QAAQkY,EAAEja,KAAKqtF,KAAKh7D,EAAEryB,KAAKstF,QAAQrtE,GAAGiS,CAAC,CADqGI,EAAE9xB,UAAUgtF,iBAAiB,CAAC,EAAEl7D,EAAE9xB,UAAUitF,SAAS,SAAS/tE,EAAEzF,GAAG,GAAG,kBAAkByF,GAAG,oBAAoBA,GAAG,MAAMA,EAAE,MAAMzb,MAAM2lC,EAAE,KAAK5pC,KAAKstF,QAAQF,gBAAgBptF,KAAK0f,EAAEzF,EAAE,WAAW,EAAEqY,EAAE9xB,UAAUktF,YAAY,SAAShuE,GAAG1f,KAAKstF,QAAQJ,mBAAmBltF,KAAK0f,EAAE,cAAc,EACje/lB,EAAE6G,UAAU8xB,EAAE9xB,UAAsF,IAAI5J,EAAE22F,EAAE/sF,UAAU,IAAI7G,EAAE/C,EAAEmP,YAAYwnF,EAAEvxF,EAAEpF,EAAE07B,EAAE9xB,WAAW5J,EAAE+2F,sBAAqB,EAAG,IAAIC,EAAE,CAAC/I,QAAQ,MAAMlpF,EAAEtD,OAAOmI,UAAUE,eAAemtF,EAAE,CAACjtF,KAAI,EAAGktF,KAAI,EAAGC,QAAO,EAAGC,UAAS,GAChS,SAASC,EAAEvuE,EAAEzF,EAAEgG,GAAG,IAAIhpB,EAAEqD,EAAE,CAAC,EAAE4iB,EAAE,KAAKzhB,EAAE,KAAK,GAAG,MAAMwe,EAAE,IAAIhjB,UAAK,IAASgjB,EAAE6zE,MAAMryF,EAAEwe,EAAE6zE,UAAK,IAAS7zE,EAAErZ,MAAMsc,EAAE,GAAGjD,EAAErZ,KAAKqZ,EAAEte,EAAEnE,KAAKyiB,EAAEhjB,KAAK42F,EAAEntF,eAAezJ,KAAKqD,EAAErD,GAAGgjB,EAAEhjB,IAAI,IAAI8I,EAAE9G,UAAUvC,OAAO,EAAE,GAAG,IAAIqJ,EAAEzF,EAAEqF,SAASsgB,OAAO,GAAG,EAAElgB,EAAE,CAAC,IAAI,IAAI5I,EAAEX,MAAMuJ,GAAGjF,EAAE,EAAEA,EAAEiF,EAAEjF,IAAI3D,EAAE2D,GAAG7B,UAAU6B,EAAE,GAAGR,EAAEqF,SAASxI,CAAC,CAAC,GAAGuoB,GAAGA,EAAEwuE,aAAa,IAAIj3F,KAAK8I,EAAE2f,EAAEwuE,kBAAe,IAAS5zF,EAAErD,KAAKqD,EAAErD,GAAG8I,EAAE9I,IAAI,MAAM,CAACk3F,SAASr3F,EAAEuL,KAAKqd,EAAE9e,IAAIsc,EAAE4wE,IAAIryF,EAAEiN,MAAMpO,EAAE8zF,OAAOR,EAAE/I,QAAQ,CAChV,SAAS5oF,EAAEyjB,GAAG,MAAM,kBAAkBA,GAAG,OAAOA,GAAGA,EAAEyuE,WAAWr3F,CAAC,CAAoG,IAAI+E,EAAE,OAAO,SAASmB,EAAE0iB,EAAEzF,GAAG,MAAM,kBAAkByF,GAAG,OAAOA,GAAG,MAAMA,EAAE9e,IAA7K,SAAgB8e,GAAG,IAAIzF,EAAE,CAAC,IAAI,KAAK,IAAI,MAAM,MAAM,IAAIyF,EAAExiB,QAAQ,SAAQ,SAASwiB,GAAG,OAAOzF,EAAEyF,EAAE,GAAE,CAA+E2uE,CAAO,GAAG3uE,EAAE9e,KAAKqZ,EAAE7Q,SAAS,GAAG,CAC/W,SAASklF,EAAE5uE,EAAEzF,EAAEgG,EAAEhpB,EAAEqD,GAAG,IAAI4iB,SAASwC,EAAK,cAAcxC,GAAG,YAAYA,IAAEwC,EAAE,MAAK,IAAIjkB,GAAE,EAAG,GAAG,OAAOikB,EAAEjkB,GAAE,OAAQ,OAAOyhB,GAAG,IAAK,SAAS,IAAK,SAASzhB,GAAE,EAAG,MAAM,IAAK,SAAS,OAAOikB,EAAEyuE,UAAU,KAAKr3F,EAAE,KAAK8F,EAAEnB,GAAE,GAAI,GAAGA,EAAE,OAAWnB,EAAEA,EAANmB,EAAEikB,GAASA,EAAE,KAAKzoB,EAAE,IAAI+F,EAAEvB,EAAE,GAAGxE,EAAET,MAAMC,QAAQ6D,IAAI2lB,EAAE,GAAG,MAAMP,IAAIO,EAAEP,EAAExiB,QAAQrB,EAAE,OAAO,KAAKyyF,EAAEh0F,EAAE2f,EAAEgG,EAAE,IAAG,SAASP,GAAG,OAAOA,CAAC,KAAI,MAAMplB,IAAI2B,EAAE3B,KAAKA,EAD/W,SAAWolB,EAAEzF,GAAG,MAAM,CAACk0E,SAASr3F,EAAEuL,KAAKqd,EAAErd,KAAKzB,IAAIqZ,EAAE6zE,IAAIpuE,EAAEouE,IAAIplF,MAAMgX,EAAEhX,MAAM0lF,OAAO1uE,EAAE0uE,OAAO,CACqRG,CAAEj0F,EAAE2lB,IAAI3lB,EAAEsG,KAAKnF,GAAGA,EAAEmF,MAAMtG,EAAEsG,IAAI,IAAI,GAAGtG,EAAEsG,KAAK1D,QAAQrB,EAAE,OAAO,KAAK6jB,IAAIzF,EAAE3hB,KAAKgC,IAAI,EAAyB,GAAvBmB,EAAE,EAAExE,EAAE,KAAKA,EAAE,IAAIA,EAAE,IAAOT,MAAMC,QAAQipB,GAAG,IAAI,IAAI3f,EACzf,EAAEA,EAAE2f,EAAEhpB,OAAOqJ,IAAI,CAAQ,IAAI5I,EAAEF,EAAE+F,EAAfkgB,EAAEwC,EAAE3f,GAAeA,GAAGtE,GAAG6yF,EAAEpxE,EAAEjD,EAAEgG,EAAE9oB,EAAEmD,EAAE,MAAM,GAAGnD,EANhE,SAAWuoB,GAAG,OAAG,OAAOA,GAAG,kBAAkBA,EAAS,KAAsC,oBAAjCA,EAAEoT,GAAGpT,EAAEoT,IAAIpT,EAAE,eAA0CA,EAAE,IAAI,CAMtD7lB,CAAE6lB,GAAG,oBAAoBvoB,EAAE,IAAIuoB,EAAEvoB,EAAEK,KAAKkoB,GAAG3f,EAAE,IAAImd,EAAEwC,EAAEhoB,QAAQX,MAA6B0E,GAAG6yF,EAA1BpxE,EAAEA,EAAElmB,MAA0BijB,EAAEgG,EAAtB9oB,EAAEF,EAAE+F,EAAEkgB,EAAEnd,KAAkBzF,QAAQ,GAAG,WAAW4iB,EAAE,MAAMjD,EAAE,GAAGyF,EAAEzb,MAAM2lC,EAAE,GAAG,oBAAoB3vB,EAAE,qBAAqB5hB,OAAOmO,KAAKkZ,GAAGvU,KAAK,MAAM,IAAI8O,IAAI,OAAOxe,CAAC,CAAC,SAAS+yF,EAAE9uE,EAAEzF,EAAEgG,GAAG,GAAG,MAAMP,EAAE,OAAOA,EAAE,IAAIzoB,EAAE,GAAGqD,EAAE,EAAmD,OAAjDg0F,EAAE5uE,EAAEzoB,EAAE,GAAG,IAAG,SAASyoB,GAAG,OAAOzF,EAAEziB,KAAKyoB,EAAEP,EAAEplB,IAAI,IAAUrD,CAAC,CAC3Z,SAASw3F,EAAE/uE,GAAG,IAAI,IAAIA,EAAEgvE,QAAQ,CAAC,IAAIz0E,EAAEyF,EAAEivE,QAAQ10E,EAAEA,IAAIyF,EAAEgvE,QAAQ,EAAEhvE,EAAEivE,QAAQ10E,EAAEA,EAAEtW,MAAK,SAASsW,GAAG,IAAIyF,EAAEgvE,UAAUz0E,EAAEA,EAAE7c,QAAQsiB,EAAEgvE,QAAQ,EAAEhvE,EAAEivE,QAAQ10E,EAAE,IAAE,SAASA,GAAG,IAAIyF,EAAEgvE,UAAUhvE,EAAEgvE,QAAQ,EAAEhvE,EAAEivE,QAAQ10E,EAAE,GAAE,CAAC,GAAG,IAAIyF,EAAEgvE,QAAQ,OAAOhvE,EAAEivE,QAAQ,MAAMjvE,EAAEivE,OAAQ,CAAC,IAAIC,EAAE,CAAC/J,QAAQ,MAAM,SAAShoF,IAAI,IAAI6iB,EAAEkvE,EAAE/J,QAAQ,GAAG,OAAOnlE,EAAE,MAAMzb,MAAM2lC,EAAE,MAAM,OAAOlqB,CAAC,CAAC,IAAInjB,EAAE,CAACsyF,uBAAuBD,EAAEE,wBAAwB,CAACC,WAAW,GAAGC,kBAAkBpB,EAAEqB,qBAAqB,CAACpK,SAAQ,GAAIh6E,OAAO7O,GACjehG,EAAQk5F,SAAS,CAAChkF,IAAIsjF,EAAExrF,QAAQ,SAAS0c,EAAEzF,EAAEgG,GAAGuuE,EAAE9uE,GAAE,WAAWzF,EAAEzR,MAAMxI,KAAK/G,UAAU,GAAEgnB,EAAE,EAAEo7B,MAAM,SAAS37B,GAAG,IAAIzF,EAAE,EAAuB,OAArBu0E,EAAE9uE,GAAE,WAAWzF,GAAG,IAAUA,CAAC,EAAEk1E,QAAQ,SAASzvE,GAAG,OAAO8uE,EAAE9uE,GAAE,SAASA,GAAG,OAAOA,CAAC,KAAI,EAAE,EAAE0vE,KAAK,SAAS1vE,GAAG,IAAIzjB,EAAEyjB,GAAG,MAAMzb,MAAM2lC,EAAE,MAAM,OAAOlqB,CAAC,GAAG1pB,EAAQq5F,UAAU/8D,EAAEt8B,EAAQs5F,cAAc/B,EAAEv3F,EAAQu5F,mDAAmDhzF,EAChXvG,EAAQw5F,aAAa,SAAS9vE,EAAEzF,EAAEgG,GAAG,GAAG,OAAOP,QAAG,IAASA,EAAE,MAAMzb,MAAM2lC,EAAE,IAAIlqB,IAAI,IAAIzoB,EAAE+E,EAAE,CAAC,EAAE0jB,EAAEhX,OAAOpO,EAAEolB,EAAE9e,IAAIsc,EAAEwC,EAAEouE,IAAIryF,EAAEikB,EAAE0uE,OAAO,GAAG,MAAMn0E,EAAE,CAAoE,QAAnE,IAASA,EAAE6zE,MAAM5wE,EAAEjD,EAAE6zE,IAAIryF,EAAEmyF,EAAE/I,cAAS,IAAS5qE,EAAErZ,MAAMtG,EAAE,GAAG2f,EAAErZ,KAAQ8e,EAAErd,MAAMqd,EAAErd,KAAK6rF,aAAa,IAAInuF,EAAE2f,EAAErd,KAAK6rF,aAAa,IAAI/2F,KAAK8iB,EAAEte,EAAEnE,KAAKyiB,EAAE9iB,KAAK02F,EAAEntF,eAAevJ,KAAKF,EAAEE,QAAG,IAAS8iB,EAAE9iB,SAAI,IAAS4I,EAAEA,EAAE5I,GAAG8iB,EAAE9iB,GAAG,CAAC,IAAIA,EAAE8B,UAAUvC,OAAO,EAAE,GAAG,IAAIS,EAAEF,EAAE0I,SAASsgB,OAAO,GAAG,EAAE9oB,EAAE,CAAC4I,EAAEvJ,MAAMW,GAAG,IAAI,IAAI2D,EAAE,EAAEA,EAAE3D,EAAE2D,IAAIiF,EAAEjF,GAAG7B,UAAU6B,EAAE,GAAG7D,EAAE0I,SAASI,CAAC,CAAC,MAAM,CAACouF,SAASr3F,EAAEuL,KAAKqd,EAAErd,KACxfzB,IAAItG,EAAEwzF,IAAI5wE,EAAExU,MAAMzR,EAAEm3F,OAAO3yF,EAAE,EAAEzF,EAAQy5F,cAAc,SAAS/vE,EAAEzF,GAA8K,YAA3K,IAASA,IAAIA,EAAE,OAAMyF,EAAE,CAACyuE,SAASn0E,EAAE01E,sBAAsBz1E,EAAE01E,cAAcjwE,EAAEkwE,eAAelwE,EAAEmwE,aAAa,EAAEC,SAAS,KAAKC,SAAS,OAAQD,SAAS,CAAC3B,SAASj0E,EAAE81E,SAAStwE,GAAUA,EAAEqwE,SAASrwE,CAAC,EAAE1pB,EAAQsd,cAAc26E,EAAEj4F,EAAQi6F,cAAc,SAASvwE,GAAG,IAAIzF,EAAEg0E,EAAEpmF,KAAK,KAAK6X,GAAY,OAATzF,EAAE5X,KAAKqd,EAASzF,CAAC,EAAEjkB,EAAQk6F,UAAU,WAAW,MAAM,CAACrL,QAAQ,KAAK,EAAE7uF,EAAQm6F,WAAW,SAASzwE,GAAG,MAAM,CAACyuE,SAAS/xF,EAAEu6D,OAAOj3C,EAAE,EAAE1pB,EAAQo6F,eAAen0F,EAC3ejG,EAAQq6F,KAAK,SAAS3wE,GAAG,MAAM,CAACyuE,SAASp0E,EAAEu2E,SAAS,CAAC5B,SAAS,EAAEC,QAAQjvE,GAAG6wE,MAAM9B,EAAE,EAAEz4F,EAAQw6F,KAAK,SAAS9wE,EAAEzF,GAAG,MAAM,CAACk0E,SAASpqE,EAAE1hB,KAAKqd,EAAE+wE,aAAQ,IAASx2E,EAAE,KAAKA,EAAE,EAAEjkB,EAAQ06F,YAAY,SAAShxE,EAAEzF,GAAG,OAAOpd,IAAI6zF,YAAYhxE,EAAEzF,EAAE,EAAEjkB,EAAQ26F,WAAW,SAASjxE,EAAEzF,GAAG,OAAOpd,IAAI8zF,WAAWjxE,EAAEzF,EAAE,EAAEjkB,EAAQ46F,cAAc,WAAW,EAAE56F,EAAQ66F,UAAU,SAASnxE,EAAEzF,GAAG,OAAOpd,IAAIg0F,UAAUnxE,EAAEzF,EAAE,EAAEjkB,EAAQ86F,oBAAoB,SAASpxE,EAAEzF,EAAEgG,GAAG,OAAOpjB,IAAIi0F,oBAAoBpxE,EAAEzF,EAAEgG,EAAE,EAChdjqB,EAAQ+6F,gBAAgB,SAASrxE,EAAEzF,GAAG,OAAOpd,IAAIk0F,gBAAgBrxE,EAAEzF,EAAE,EAAEjkB,EAAQg7F,QAAQ,SAAStxE,EAAEzF,GAAG,OAAOpd,IAAIm0F,QAAQtxE,EAAEzF,EAAE,EAAEjkB,EAAQi7F,WAAW,SAASvxE,EAAEzF,EAAEgG,GAAG,OAAOpjB,IAAIo0F,WAAWvxE,EAAEzF,EAAEgG,EAAE,EAAEjqB,EAAQk7F,OAAO,SAASxxE,GAAG,OAAO7iB,IAAIq0F,OAAOxxE,EAAE,EAAE1pB,EAAQm7F,SAAS,SAASzxE,GAAG,OAAO7iB,IAAIs0F,SAASzxE,EAAE,EAAE1pB,EAAQsZ,QAAQ,Q,kCCXxS,IAAI8hF,EAAGn7F,EAAQ,GAAS6E,EAAE7E,EAAQ,IAAiB+jB,EAAE/jB,EAAQ,IAAa,SAAS4D,EAAE6lB,GAAG,IAAI,IAAIzF,EAAE,yDAAyDyF,EAAEO,EAAE,EAAEA,EAAEhnB,UAAUvC,OAAOupB,IAAIhG,GAAG,WAAW+yE,mBAAmB/zF,UAAUgnB,IAAI,MAAM,yBAAyBP,EAAE,WAAWzF,EAAE,gHAAgH,CAAC,IAAIm3E,EAAG,MAAMntF,MAAMpK,EAAE,MAAM,IAAIw3F,EAAG,IAAIC,IAAIC,EAAG,CAAC,EAAE,SAASrnB,EAAGxqD,EAAEzF,GAAGu3E,EAAG9xE,EAAEzF,GAAGu3E,EAAG9xE,EAAE,UAAUzF,EAAE,CAC7e,SAASu3E,EAAG9xE,EAAEzF,GAAW,IAARs3E,EAAG7xE,GAAGzF,EAAMyF,EAAE,EAAEA,EAAEzF,EAAEvjB,OAAOgpB,IAAI2xE,EAAGt4B,IAAI9+C,EAAEyF,GAAG,CAC5D,IAAI+xE,IAAK,qBAAqBvxF,QAAQ,qBAAqBA,OAAO4O,UAAU,qBAAqB5O,OAAO4O,SAASwE,eAAeo+E,EAAG,8VAA8VC,EAAGt5F,OAAOmI,UAAUE,eACrfkxF,EAAG,CAAC,EAAEC,EAAG,CAAC,EAC8M,SAASx/D,EAAE3S,EAAEzF,EAAEgG,EAAE3lB,EAAErD,EAAEE,EAAE4I,GAAGC,KAAK8xF,gBAAgB,IAAI73E,GAAG,IAAIA,GAAG,IAAIA,EAAEja,KAAK+xF,cAAcz3F,EAAE0F,KAAKgyF,mBAAmB/6F,EAAE+I,KAAKiyF,gBAAgBhyE,EAAEjgB,KAAKu3E,aAAa73D,EAAE1f,KAAKqC,KAAK4X,EAAEja,KAAKkyF,YAAY/6F,EAAE6I,KAAKmyF,kBAAkBpyF,CAAC,CAAC,IAAIpG,EAAE,CAAC,EACpb,uIAAuI0R,MAAM,KAAKrI,SAAQ,SAAS0c,GAAG/lB,EAAE+lB,GAAG,IAAI2S,EAAE3S,EAAE,GAAE,EAAGA,EAAE,MAAK,GAAG,EAAG,IAAG,CAAC,CAAC,gBAAgB,kBAAkB,CAAC,YAAY,SAAS,CAAC,UAAU,OAAO,CAAC,YAAY,eAAe1c,SAAQ,SAAS0c,GAAG,IAAIzF,EAAEyF,EAAE,GAAG/lB,EAAEsgB,GAAG,IAAIoY,EAAEpY,EAAE,GAAE,EAAGyF,EAAE,GAAG,MAAK,GAAG,EAAG,IAAG,CAAC,kBAAkB,YAAY,aAAa,SAAS1c,SAAQ,SAAS0c,GAAG/lB,EAAE+lB,GAAG,IAAI2S,EAAE3S,EAAE,GAAE,EAAGA,EAAE03B,cAAc,MAAK,GAAG,EAAG,IAC1e,CAAC,cAAc,4BAA4B,YAAY,iBAAiBp0C,SAAQ,SAAS0c,GAAG/lB,EAAE+lB,GAAG,IAAI2S,EAAE3S,EAAE,GAAE,EAAGA,EAAE,MAAK,GAAG,EAAG,IAAG,8OAA8OrU,MAAM,KAAKrI,SAAQ,SAAS0c,GAAG/lB,EAAE+lB,GAAG,IAAI2S,EAAE3S,EAAE,GAAE,EAAGA,EAAE03B,cAAc,MAAK,GAAG,EAAG,IACxb,CAAC,UAAU,WAAW,QAAQ,YAAYp0C,SAAQ,SAAS0c,GAAG/lB,EAAE+lB,GAAG,IAAI2S,EAAE3S,EAAE,GAAE,EAAGA,EAAE,MAAK,GAAG,EAAG,IAAG,CAAC,UAAU,YAAY1c,SAAQ,SAAS0c,GAAG/lB,EAAE+lB,GAAG,IAAI2S,EAAE3S,EAAE,GAAE,EAAGA,EAAE,MAAK,GAAG,EAAG,IAAG,CAAC,OAAO,OAAO,OAAO,QAAQ1c,SAAQ,SAAS0c,GAAG/lB,EAAE+lB,GAAG,IAAI2S,EAAE3S,EAAE,GAAE,EAAGA,EAAE,MAAK,GAAG,EAAG,IAAG,CAAC,UAAU,SAAS1c,SAAQ,SAAS0c,GAAG/lB,EAAE+lB,GAAG,IAAI2S,EAAE3S,EAAE,GAAE,EAAGA,EAAE03B,cAAc,MAAK,GAAG,EAAG,IAAG,IAAIg7C,EAAG,gBAAgB,SAASC,EAAG3yE,GAAG,OAAOA,EAAE,GAAG7S,aAAa,CAIxZ,SAASylF,EAAG5yE,EAAEzF,EAAEgG,EAAE3lB,GAAG,IAAIrD,EAAE0C,EAAE+G,eAAeuZ,GAAGtgB,EAAEsgB,GAAG,MAAW,OAAOhjB,EAAE,IAAIA,EAAEoL,MAAK/H,IAAO,EAAE2f,EAAEvjB,SAAS,MAAMujB,EAAE,IAAI,MAAMA,EAAE,MAAI,MAAMA,EAAE,IAAI,MAAMA,EAAE,QAPnJ,SAAYyF,EAAEzF,EAAEgG,EAAE3lB,GAAG,GAAG,OAAO2f,GAAG,qBAAqBA,GADwE,SAAYyF,EAAEzF,EAAEgG,EAAE3lB,GAAG,GAAG,OAAO2lB,GAAG,IAAIA,EAAE5d,KAAK,OAAM,EAAG,cAAc4X,GAAG,IAAK,WAAW,IAAK,SAAS,OAAM,EAAG,IAAK,UAAU,OAAG3f,IAAc,OAAO2lB,GAASA,EAAE6xE,gBAAmD,WAAnCpyE,EAAEA,EAAE03B,cAAc39C,MAAM,EAAE,KAAsB,UAAUimB,GAAE,QAAQ,OAAM,EAAG,CAClU6yE,CAAG7yE,EAAEzF,EAAEgG,EAAE3lB,GAAG,OAAM,EAAG,GAAGA,EAAE,OAAM,EAAG,GAAG,OAAO2lB,EAAE,OAAOA,EAAE5d,MAAM,KAAK,EAAE,OAAO4X,EAAE,KAAK,EAAE,OAAM,IAAKA,EAAE,KAAK,EAAE,OAAO5gB,MAAM4gB,GAAG,KAAK,EAAE,OAAO5gB,MAAM4gB,IAAI,EAAEA,EAAE,OAAM,CAAE,CAOvDu4E,CAAGv4E,EAAEgG,EAAEhpB,EAAEqD,KAAK2lB,EAAE,MAAM3lB,GAAG,OAAOrD,EARpL,SAAYyoB,GAAG,QAAGiyE,EAAGn6F,KAAKq6F,EAAGnyE,KAAeiyE,EAAGn6F,KAAKo6F,EAAGlyE,KAAegyE,EAAGx4F,KAAKwmB,GAAUmyE,EAAGnyE,IAAG,GAAGkyE,EAAGlyE,IAAG,GAAS,GAAE,CAQoE+yE,CAAGx4E,KAAK,OAAOgG,EAAEP,EAAEwqE,gBAAgBjwE,GAAGyF,EAAEuR,aAAahX,EAAE,GAAGgG,IAAIhpB,EAAEg7F,gBAAgBvyE,EAAEzoB,EAAEsgF,cAAc,OAAOt3D,EAAE,IAAIhpB,EAAEoL,MAAQ,GAAG4d,GAAGhG,EAAEhjB,EAAE86F,cAAcz3F,EAAErD,EAAE+6F,mBAAmB,OAAO/xE,EAAEP,EAAEwqE,gBAAgBjwE,IAAagG,EAAE,KAAXhpB,EAAEA,EAAEoL,OAAc,IAAIpL,IAAG,IAAKgpB,EAAE,GAAG,GAAGA,EAAE3lB,EAAEolB,EAAEgG,eAAeprB,EAAE2f,EAAEgG,GAAGP,EAAEuR,aAAahX,EAAEgG,KAAK,CAHje,0jCAA0jC5U,MAAM,KAAKrI,SAAQ,SAAS0c,GAAG,IAAIzF,EAAEyF,EAAExiB,QAAQk1F,EACzmCC,GAAI14F,EAAEsgB,GAAG,IAAIoY,EAAEpY,EAAE,GAAE,EAAGyF,EAAE,MAAK,GAAG,EAAG,IAAG,2EAA2ErU,MAAM,KAAKrI,SAAQ,SAAS0c,GAAG,IAAIzF,EAAEyF,EAAExiB,QAAQk1F,EAAGC,GAAI14F,EAAEsgB,GAAG,IAAIoY,EAAEpY,EAAE,GAAE,EAAGyF,EAAE,gCAA+B,GAAG,EAAG,IAAG,CAAC,WAAW,WAAW,aAAa1c,SAAQ,SAAS0c,GAAG,IAAIzF,EAAEyF,EAAExiB,QAAQk1F,EAAGC,GAAI14F,EAAEsgB,GAAG,IAAIoY,EAAEpY,EAAE,GAAE,EAAGyF,EAAE,wCAAuC,GAAG,EAAG,IAAG,CAAC,WAAW,eAAe1c,SAAQ,SAAS0c,GAAG/lB,EAAE+lB,GAAG,IAAI2S,EAAE3S,EAAE,GAAE,EAAGA,EAAE03B,cAAc,MAAK,GAAG,EAAG,IACldz9C,EAAE+4F,UAAU,IAAIrgE,EAAE,YAAY,GAAE,EAAG,aAAa,gCAA+B,GAAG,GAAI,CAAC,MAAM,OAAO,SAAS,cAAcrvB,SAAQ,SAAS0c,GAAG/lB,EAAE+lB,GAAG,IAAI2S,EAAE3S,EAAE,GAAE,EAAGA,EAAE03B,cAAc,MAAK,GAAG,EAAG,IAE5L,IAAIu7C,EAAGvB,EAAG7B,mDAAmD3vE,EAAG,MAAMgzE,EAAG,MAAMjlF,EAAG,MAAMklF,EAAG,MAAMC,EAAG,MAAMC,EAAG,MAAMC,EAAG,MAAMC,EAAG,MAAMC,EAAG,MAAMC,EAAG,MAAMC,EAAG,MAAMC,EAAG,MAAMC,EAAG,MAAMC,EAAG,MAAMC,EAAG,MAAMC,EAAG,MAAMC,EAAG,MAChN,GAAG,oBAAoBp9F,QAAQA,OAAOy2F,IAAI,CAAC,IAAIQ,EAAEj3F,OAAOy2F,IAAIntE,EAAG2tE,EAAE,iBAAiBqF,EAAGrF,EAAE,gBAAgB5/E,EAAG4/E,EAAE,kBAAkBsF,EAAGtF,EAAE,qBAAqBuF,EAAGvF,EAAE,kBAAkBwF,EAAGxF,EAAE,kBAAkByF,EAAGzF,EAAE,iBAAiB0F,EAAG1F,EAAE,qBAAqB2F,EAAG3F,EAAE,kBAAkB4F,EAAG5F,EAAE,uBAAuB6F,EAAG7F,EAAE,cAAc8F,EAAG9F,EAAE,cAAc+F,EAAG/F,EAAE,eAAeA,EAAE,eAAegG,EAAGhG,EAAE,mBAAmBiG,EAAGjG,EAAE,0BAA0BkG,EAAGlG,EAAE,mBAAmBmG,EAAGnG,EAAE,sBAAsB,CAC9d,IAAmLoG,EAA/KC,EAAG,oBAAoBt9F,QAAQA,OAAOC,SAAS,SAASs9F,EAAGn0E,GAAG,OAAG,OAAOA,GAAG,kBAAkBA,EAAS,KAAwC,oBAAnCA,EAAEk0E,GAAIl0E,EAAEk0E,IAAKl0E,EAAE,eAA0CA,EAAE,IAAI,CAAQ,SAASo0E,EAAGp0E,GAAG,QAAG,IAASi0E,EAAG,IAAI,MAAM1vF,OAAQ,CAAC,MAAMgc,GAAG,IAAIhG,EAAEgG,EAAE8zE,MAAMhnF,OAAO5P,MAAM,gBAAgBw2F,EAAG15E,GAAGA,EAAE,IAAI,EAAE,CAAC,MAAM,KAAK05E,EAAGj0E,CAAC,CAAC,IAAIs0E,GAAG,EACjU,SAASC,EAAGv0E,EAAEzF,GAAG,IAAIyF,GAAGs0E,EAAG,MAAM,GAAGA,GAAG,EAAG,IAAI/zE,EAAEhc,MAAMiwF,kBAAkBjwF,MAAMiwF,uBAAkB,EAAO,IAAI,GAAGj6E,EAAE,GAAGA,EAAE,WAAW,MAAMhW,OAAQ,EAAE5L,OAAOuH,eAAeqa,EAAEzZ,UAAU,QAAQ,CAACsjE,IAAI,WAAW,MAAM7/D,OAAQ,IAAI,kBAAkBiE,SAASA,QAAQyB,UAAU,CAAC,IAAIzB,QAAQyB,UAAUsQ,EAAE,GAAG,CAAC,MAAMiD,GAAG,IAAI5iB,EAAE4iB,CAAC,CAAChV,QAAQyB,UAAU+V,EAAE,GAAGzF,EAAE,KAAK,CAAC,IAAIA,EAAEziB,MAAM,CAAC,MAAM0lB,GAAG5iB,EAAE4iB,CAAC,CAACwC,EAAEloB,KAAKyiB,EAAEzZ,UAAU,KAAK,CAAC,IAAI,MAAMyD,OAAQ,CAAC,MAAMiZ,GAAG5iB,EAAE4iB,CAAC,CAACwC,GAAG,CAAC,CAAC,MAAMxC,GAAG,GAAGA,GAAG5iB,GAAG,kBAAkB4iB,EAAE62E,MAAM,CAAC,IAAI,IAAI98F,EAAEimB,EAAE62E,MAAM1oF,MAAM,MACnflU,EAAEmD,EAAEy5F,MAAM1oF,MAAM,MAAMtL,EAAE9I,EAAEP,OAAO,EAAE+E,EAAEtE,EAAET,OAAO,EAAE,GAAGqJ,GAAG,GAAGtE,GAAGxE,EAAE8I,KAAK5I,EAAEsE,IAAIA,IAAI,KAAK,GAAGsE,GAAG,GAAGtE,EAAEsE,IAAItE,IAAI,GAAGxE,EAAE8I,KAAK5I,EAAEsE,GAAG,CAAC,GAAG,IAAIsE,GAAG,IAAItE,EAAG,MAAMsE,IAAQ,IAAJtE,GAASxE,EAAE8I,KAAK5I,EAAEsE,GAAG,MAAM,KAAKxE,EAAE8I,GAAG7C,QAAQ,WAAW,cAAc,GAAG6C,GAAG,GAAGtE,GAAG,KAAK,CAAC,CAAC,CAAC,QAAQu4F,GAAG,EAAG/vF,MAAMiwF,kBAAkBj0E,CAAC,CAAC,OAAOP,EAAEA,EAAEA,EAAE/Z,aAAa+Z,EAAE1Z,KAAK,IAAI8tF,EAAGp0E,GAAG,EAAE,CAC/T,SAASy0E,EAAGz0E,GAAG,OAAOA,EAAE00E,KAAK,KAAK,EAAE,OAAON,EAAGp0E,EAAErd,MAAM,KAAK,GAAG,OAAOyxF,EAAG,QAAQ,KAAK,GAAG,OAAOA,EAAG,YAAY,KAAK,GAAG,OAAOA,EAAG,gBAAgB,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,OAAOp0E,EAAEu0E,EAAGv0E,EAAErd,MAAK,GAAM,KAAK,GAAG,OAAOqd,EAAEu0E,EAAGv0E,EAAErd,KAAKs0D,QAAO,GAAM,KAAK,GAAG,OAAOj3C,EAAEu0E,EAAGv0E,EAAErd,KAAKw2C,SAAQ,GAAM,KAAK,EAAE,OAAOn5B,EAAEu0E,EAAGv0E,EAAErd,MAAK,GAAM,QAAQ,MAAM,GAAG,CACjU,SAASgyF,EAAG30E,GAAG,GAAG,MAAMA,EAAE,OAAO,KAAK,GAAG,oBAAoBA,EAAE,OAAOA,EAAE/Z,aAAa+Z,EAAE1Z,MAAM,KAAK,GAAG,kBAAkB0Z,EAAE,OAAOA,EAAE,OAAOA,GAAG,KAAK/R,EAAG,MAAM,WAAW,KAAKilF,EAAG,MAAM,SAAS,KAAKE,EAAG,MAAM,WAAW,KAAKD,EAAG,MAAM,aAAa,KAAKK,EAAG,MAAM,WAAW,KAAKC,EAAG,MAAM,eAAe,GAAG,kBAAkBzzE,EAAE,OAAOA,EAAEyuE,UAAU,KAAK6E,EAAG,OAAOtzE,EAAE/Z,aAAa,WAAW,YAAY,KAAKotF,EAAG,OAAOrzE,EAAEswE,SAASrqF,aAAa,WAAW,YAAY,KAAKstF,EAAG,IAAIh5E,EAAEyF,EAAEi3C,OACnd,OAD0d18C,EAAEA,EAAEtU,aAAasU,EAAEjU,MAAM,GAC5e0Z,EAAE/Z,cAAc,KAAKsU,EAAE,cAAcA,EAAE,IAAI,cAAc,KAAKm5E,EAAG,OAAOiB,EAAG30E,EAAErd,MAAM,KAAKixF,EAAG,OAAOe,EAAG30E,EAAEm5B,SAAS,KAAKw6C,EAAGp5E,EAAEyF,EAAE4wE,SAAS5wE,EAAEA,EAAE6wE,MAAM,IAAI,OAAO8D,EAAG30E,EAAEzF,GAAG,CAAC,MAAMgG,GAAG,EAAE,OAAO,IAAI,CAAC,SAASq0E,EAAG50E,GAAG,cAAcA,GAAG,IAAK,UAAU,IAAK,SAAS,IAAK,SAAS,IAAK,SAAS,IAAK,YAAY,OAAOA,EAAE,QAAQ,MAAM,GAAG,CAAC,SAAS60E,EAAG70E,GAAG,IAAIzF,EAAEyF,EAAErd,KAAK,OAAOqd,EAAEA,EAAE80E,WAAW,UAAU90E,EAAE03B,gBAAgB,aAAan9B,GAAG,UAAUA,EAAE,CAE5Z,SAASw6E,EAAG/0E,GAAGA,EAAEg1E,gBAAgBh1E,EAAEg1E,cADvD,SAAYh1E,GAAG,IAAIzF,EAAEs6E,EAAG70E,GAAG,UAAU,QAAQO,EAAE5nB,OAAOkQ,yBAAyBmX,EAAE3Z,YAAYvF,UAAUyZ,GAAG3f,EAAE,GAAGolB,EAAEzF,GAAG,IAAIyF,EAAEhf,eAAeuZ,IAAI,qBAAqBgG,GAAG,oBAAoBA,EAAEngB,KAAK,oBAAoBmgB,EAAE6jD,IAAI,CAAC,IAAI7sE,EAAEgpB,EAAEngB,IAAI3I,EAAE8oB,EAAE6jD,IAAiL,OAA7KzrE,OAAOuH,eAAe8f,EAAEzF,EAAE,CAAC5Y,cAAa,EAAGvB,IAAI,WAAW,OAAO7I,EAAEO,KAAKwI,KAAK,EAAE8jE,IAAI,SAASpkD,GAAGplB,EAAE,GAAGolB,EAAEvoB,EAAEK,KAAKwI,KAAK0f,EAAE,IAAIrnB,OAAOuH,eAAe8f,EAAEzF,EAAE,CAACpa,WAAWogB,EAAEpgB,aAAmB,CAACkgC,SAAS,WAAW,OAAOzlC,CAAC,EAAEq6F,SAAS,SAASj1E,GAAGplB,EAAE,GAAGolB,CAAC,EAAEk1E,aAAa,WAAWl1E,EAAEg1E,cACxf,YAAYh1E,EAAEzF,EAAE,EAAE,CAAC,CAAkD46E,CAAGn1E,GAAG,CAAC,SAASo1E,EAAGp1E,GAAG,IAAIA,EAAE,OAAM,EAAG,IAAIzF,EAAEyF,EAAEg1E,cAAc,IAAIz6E,EAAE,OAAM,EAAG,IAAIgG,EAAEhG,EAAE8lB,WAAezlC,EAAE,GAAqD,OAAlDolB,IAAIplB,EAAEi6F,EAAG70E,GAAGA,EAAEq1E,QAAQ,OAAO,QAAQr1E,EAAE1oB,QAAO0oB,EAAEplB,KAAa2lB,IAAGhG,EAAE06E,SAASj1E,IAAG,EAAM,CAAC,SAASs1E,EAAGt1E,GAAwD,GAAG,qBAAxDA,EAAEA,IAAI,qBAAqB5Q,SAASA,cAAS,IAAkC,OAAO,KAAK,IAAI,OAAO4Q,EAAEu1E,eAAev1E,EAAEwR,IAAI,CAAC,MAAMjX,GAAG,OAAOyF,EAAEwR,IAAI,CAAC,CACpa,SAASgkE,EAAGx1E,EAAEzF,GAAG,IAAIgG,EAAEhG,EAAE86E,QAAQ,OAAOj6F,EAAE,CAAC,EAAEmf,EAAE,CAACk7E,oBAAe,EAAOC,kBAAa,EAAOp+F,WAAM,EAAO+9F,QAAQ,MAAM90E,EAAEA,EAAEP,EAAE21E,cAAcC,gBAAgB,CAAC,SAASC,GAAG71E,EAAEzF,GAAG,IAAIgG,EAAE,MAAMhG,EAAEm7E,aAAa,GAAGn7E,EAAEm7E,aAAa96F,EAAE,MAAM2f,EAAE86E,QAAQ96E,EAAE86E,QAAQ96E,EAAEk7E,eAAel1E,EAAEq0E,EAAG,MAAMr6E,EAAEjjB,MAAMijB,EAAEjjB,MAAMipB,GAAGP,EAAE21E,cAAc,CAACC,eAAeh7F,EAAEk7F,aAAav1E,EAAEw1E,WAAW,aAAax7E,EAAE5X,MAAM,UAAU4X,EAAE5X,KAAK,MAAM4X,EAAE86E,QAAQ,MAAM96E,EAAEjjB,MAAM,CAAC,SAAS0+F,GAAGh2E,EAAEzF,GAAe,OAAZA,EAAEA,EAAE86E,UAAiBzC,EAAG5yE,EAAE,UAAUzF,GAAE,EAAG,CAC9d,SAAS07E,GAAGj2E,EAAEzF,GAAGy7E,GAAGh2E,EAAEzF,GAAG,IAAIgG,EAAEq0E,EAAGr6E,EAAEjjB,OAAOsD,EAAE2f,EAAE5X,KAAK,GAAG,MAAM4d,EAAK,WAAW3lB,GAAM,IAAI2lB,GAAG,KAAKP,EAAE1oB,OAAO0oB,EAAE1oB,OAAOipB,KAAEP,EAAE1oB,MAAM,GAAGipB,GAAOP,EAAE1oB,QAAQ,GAAGipB,IAAIP,EAAE1oB,MAAM,GAAGipB,QAAQ,GAAG,WAAW3lB,GAAG,UAAUA,EAA8B,YAA3BolB,EAAEwqE,gBAAgB,SAAgBjwE,EAAEvZ,eAAe,SAASk1F,GAAGl2E,EAAEzF,EAAE5X,KAAK4d,GAAGhG,EAAEvZ,eAAe,iBAAiBk1F,GAAGl2E,EAAEzF,EAAE5X,KAAKiyF,EAAGr6E,EAAEm7E,eAAe,MAAMn7E,EAAE86E,SAAS,MAAM96E,EAAEk7E,iBAAiBz1E,EAAEy1E,iBAAiBl7E,EAAEk7E,eAAe,CACla,SAASrwE,GAAGpF,EAAEzF,EAAEgG,GAAG,GAAGhG,EAAEvZ,eAAe,UAAUuZ,EAAEvZ,eAAe,gBAAgB,CAAC,IAAIpG,EAAE2f,EAAE5X,KAAK,KAAK,WAAW/H,GAAG,UAAUA,QAAG,IAAS2f,EAAEjjB,OAAO,OAAOijB,EAAEjjB,OAAO,OAAOijB,EAAE,GAAGyF,EAAE21E,cAAcG,aAAav1E,GAAGhG,IAAIyF,EAAE1oB,QAAQ0oB,EAAE1oB,MAAMijB,GAAGyF,EAAE01E,aAAan7E,CAAC,CAAU,MAATgG,EAAEP,EAAE1Z,QAAc0Z,EAAE1Z,KAAK,IAAI0Z,EAAEy1E,iBAAiBz1E,EAAE21E,cAAcC,eAAe,KAAKr1E,IAAIP,EAAE1Z,KAAKia,EAAE,CACzV,SAAS21E,GAAGl2E,EAAEzF,EAAEgG,GAAM,WAAWhG,GAAG+6E,EAAGt1E,EAAEm2E,iBAAiBn2E,IAAE,MAAMO,EAAEP,EAAE01E,aAAa,GAAG11E,EAAE21E,cAAcG,aAAa91E,EAAE01E,eAAe,GAAGn1E,IAAIP,EAAE01E,aAAa,GAAGn1E,GAAE,CAAsF,SAAS61E,GAAGp2E,EAAEzF,GAA6D,OAA1DyF,EAAE5kB,EAAE,CAAC6E,cAAS,GAAQsa,IAAMA,EAAlI,SAAYyF,GAAG,IAAIzF,EAAE,GAAuD,OAApDm3E,EAAGlC,SAASlsF,QAAQ0c,GAAE,SAASA,GAAG,MAAMA,IAAIzF,GAAGyF,EAAE,IAAUzF,CAAC,CAAgD87E,CAAG97E,EAAEta,aAAU+f,EAAE/f,SAASsa,GAASyF,CAAC,CACxU,SAASg6C,GAAGh6C,EAAEzF,EAAEgG,EAAE3lB,GAAe,GAAZolB,EAAEA,EAAEw8D,QAAWjiE,EAAE,CAACA,EAAE,CAAC,EAAE,IAAI,IAAIhjB,EAAE,EAAEA,EAAEgpB,EAAEvpB,OAAOO,IAAIgjB,EAAE,IAAIgG,EAAEhpB,KAAI,EAAG,IAAIgpB,EAAE,EAAEA,EAAEP,EAAEhpB,OAAOupB,IAAIhpB,EAAEgjB,EAAEvZ,eAAe,IAAIgf,EAAEO,GAAGjpB,OAAO0oB,EAAEO,GAAG+1E,WAAW/+F,IAAIyoB,EAAEO,GAAG+1E,SAAS/+F,GAAGA,GAAGqD,IAAIolB,EAAEO,GAAGg2E,iBAAgB,EAAG,KAAK,CAAmB,IAAlBh2E,EAAE,GAAGq0E,EAAGr0E,GAAGhG,EAAE,KAAShjB,EAAE,EAAEA,EAAEyoB,EAAEhpB,OAAOO,IAAI,CAAC,GAAGyoB,EAAEzoB,GAAGD,QAAQipB,EAAiD,OAA9CP,EAAEzoB,GAAG++F,UAAS,OAAG17F,IAAIolB,EAAEzoB,GAAGg/F,iBAAgB,IAAW,OAAOh8E,GAAGyF,EAAEzoB,GAAGi/F,WAAWj8E,EAAEyF,EAAEzoB,GAAG,CAAC,OAAOgjB,IAAIA,EAAE+7E,UAAS,EAAG,CAAC,CACxY,SAASG,GAAGz2E,EAAEzF,GAAG,GAAG,MAAMA,EAAEm8E,wBAAwB,MAAMnyF,MAAMpK,EAAE,KAAK,OAAOiB,EAAE,CAAC,EAAEmf,EAAE,CAACjjB,WAAM,EAAOo+F,kBAAa,EAAOz1F,SAAS,GAAG+f,EAAE21E,cAAcG,cAAc,CAAC,SAASa,GAAG32E,EAAEzF,GAAG,IAAIgG,EAAEhG,EAAEjjB,MAAM,GAAG,MAAMipB,EAAE,CAA+B,GAA9BA,EAAEhG,EAAEta,SAASsa,EAAEA,EAAEm7E,aAAgB,MAAMn1E,EAAE,CAAC,GAAG,MAAMhG,EAAE,MAAMhW,MAAMpK,EAAE,KAAK,GAAGrD,MAAMC,QAAQwpB,GAAG,CAAC,KAAK,GAAGA,EAAEvpB,QAAQ,MAAMuN,MAAMpK,EAAE,KAAKomB,EAAEA,EAAE,EAAE,CAAChG,EAAEgG,CAAC,CAAC,MAAMhG,IAAIA,EAAE,IAAIgG,EAAEhG,CAAC,CAACyF,EAAE21E,cAAc,CAACG,aAAalB,EAAGr0E,GAAG,CAClZ,SAASq2E,GAAG52E,EAAEzF,GAAG,IAAIgG,EAAEq0E,EAAGr6E,EAAEjjB,OAAOsD,EAAEg6F,EAAGr6E,EAAEm7E,cAAc,MAAMn1E,KAAIA,EAAE,GAAGA,KAAMP,EAAE1oB,QAAQ0oB,EAAE1oB,MAAMipB,GAAG,MAAMhG,EAAEm7E,cAAc11E,EAAE01E,eAAen1E,IAAIP,EAAE01E,aAAan1E,IAAI,MAAM3lB,IAAIolB,EAAE01E,aAAa,GAAG96F,EAAE,CAAC,SAASi8F,GAAG72E,GAAG,IAAIzF,EAAEyF,EAAE89B,YAAYvjC,IAAIyF,EAAE21E,cAAcG,cAAc,KAAKv7E,GAAG,OAAOA,IAAIyF,EAAE1oB,MAAMijB,EAAE,CAAC,IAAIu8E,GAAG,CAACC,KAAK,+BAA+BC,OAAO,qCAAqC5xB,IAAI,8BAC9X,SAAS6xB,GAAGj3E,GAAG,OAAOA,GAAG,IAAK,MAAM,MAAM,6BAA6B,IAAK,OAAO,MAAM,qCAAqC,QAAQ,MAAM,+BAA+B,CAAC,SAASk3E,GAAGl3E,EAAEzF,GAAG,OAAO,MAAMyF,GAAG,iCAAiCA,EAAEi3E,GAAG18E,GAAG,+BAA+ByF,GAAG,kBAAkBzF,EAAE,+BAA+ByF,CAAC,CAC5U,IAAIm3E,GAAen3E,GAAZ8E,IAAY9E,GAAsJ,SAASA,EAAEzF,GAAG,GAAGyF,EAAEo3E,eAAeN,GAAG1xB,KAAK,cAAcplD,EAAEA,EAAEq3E,UAAU98E,MAAM,CAA2F,KAA1F48E,GAAGA,IAAI/nF,SAASwE,cAAc,QAAUyjF,UAAU,QAAQ98E,EAAElQ,UAAUX,WAAW,SAAa6Q,EAAE48E,GAAGG,WAAWt3E,EAAEs3E,YAAYt3E,EAAEghC,YAAYhhC,EAAEs3E,YAAY,KAAK/8E,EAAE+8E,YAAYt3E,EAAEmG,YAAY5L,EAAE+8E,WAAW,CAAC,EAAja,qBAAqBC,OAAOA,MAAMC,wBAAwB,SAASj9E,EAAEgG,EAAE3lB,EAAErD,GAAGggG,MAAMC,yBAAwB,WAAW,OAAOx3E,GAAEzF,EAAEgG,EAAM,GAAE,EAAEP,IACtK,SAASy3E,GAAGz3E,EAAEzF,GAAG,GAAGA,EAAE,CAAC,IAAIgG,EAAEP,EAAEs3E,WAAW,GAAG/2E,GAAGA,IAAIP,EAAE03E,WAAW,IAAIn3E,EAAE7T,SAAwB,YAAd6T,EAAEo3E,UAAUp9E,EAAS,CAACyF,EAAE89B,YAAYvjC,CAAC,CACtH,IAAIq9E,GAAG,CAACC,yBAAwB,EAAGC,mBAAkB,EAAGC,kBAAiB,EAAGC,kBAAiB,EAAGC,SAAQ,EAAGC,cAAa,EAAGC,iBAAgB,EAAGC,aAAY,EAAGC,SAAQ,EAAGnhD,MAAK,EAAGohD,UAAS,EAAGC,cAAa,EAAGC,YAAW,EAAGC,cAAa,EAAGC,WAAU,EAAGC,UAAS,EAAGC,SAAQ,EAAGC,YAAW,EAAGC,aAAY,EAAGC,cAAa,EAAGC,YAAW,EAAGC,eAAc,EAAGC,gBAAe,EAAGC,iBAAgB,EAAGn8C,YAAW,EAAGo8C,WAAU,EAAG9oB,YAAW,EAAG9L,SAAQ,EAAG60B,OAAM,EAAGC,SAAQ,EAAGC,SAAQ,EAAGC,QAAO,EAAGC,QAAO,EAAGC,MAAK,EAAGC,aAAY,EAC1fC,cAAa,EAAGC,aAAY,EAAGC,iBAAgB,EAAGC,kBAAiB,EAAGC,kBAAiB,EAAGC,eAAc,EAAG5pB,aAAY,GAAI6pB,GAAG,CAAC,SAAS,KAAK,MAAM,KAA6H,SAASC,GAAGn6E,EAAEzF,EAAEgG,GAAG,OAAO,MAAMhG,GAAG,mBAAmBA,GAAG,KAAKA,EAAE,GAAGgG,GAAG,kBAAkBhG,GAAG,IAAIA,GAAGq9E,GAAG52F,eAAegf,IAAI43E,GAAG53E,IAAI,GAAGzF,GAAGlN,OAAOkN,EAAE,IAAI,CACla,SAAS6/E,GAAGp6E,EAAEzF,GAAa,IAAI,IAAIgG,KAAlBP,EAAEA,EAAE3H,MAAmBkC,EAAE,GAAGA,EAAEvZ,eAAeuf,GAAG,CAAC,IAAI3lB,EAAE,IAAI2lB,EAAExP,QAAQ,MAAMxZ,EAAE4iG,GAAG55E,EAAEhG,EAAEgG,GAAG3lB,GAAG,UAAU2lB,IAAIA,EAAE,YAAY3lB,EAAEolB,EAAEq6E,YAAY95E,EAAEhpB,GAAGyoB,EAAEO,GAAGhpB,CAAC,CAAC,CADXoB,OAAOmO,KAAK8wF,IAAIt0F,SAAQ,SAAS0c,GAAGk6E,GAAG52F,SAAQ,SAASiX,GAAGA,EAAEA,EAAEyF,EAAE7Y,OAAO,GAAGgG,cAAc6S,EAAEgkE,UAAU,GAAG4T,GAAGr9E,GAAGq9E,GAAG53E,EAAE,GAAE,IACzG,IAAIs6E,GAAGl/F,EAAE,CAACm/F,UAAS,GAAI,CAACC,MAAK,EAAG5xF,MAAK,EAAG6xF,IAAG,EAAG3O,KAAI,EAAG4O,OAAM,EAAGC,IAAG,EAAGp2E,KAAI,EAAG7Z,OAAM,EAAGkwF,QAAO,EAAGC,MAAK,EAAGC,MAAK,EAAGC,OAAM,EAAGjvF,QAAO,EAAGkvF,OAAM,EAAGC,KAAI,IAClT,SAASC,GAAGl7E,EAAEzF,GAAG,GAAGA,EAAE,CAAC,GAAG+/E,GAAGt6E,KAAK,MAAMzF,EAAEta,UAAU,MAAMsa,EAAEm8E,yBAAyB,MAAMnyF,MAAMpK,EAAE,IAAI6lB,IAAI,GAAG,MAAMzF,EAAEm8E,wBAAwB,CAAC,GAAG,MAAMn8E,EAAEta,SAAS,MAAMsE,MAAMpK,EAAE,KAAK,GAAK,kBAAkBogB,EAAEm8E,2BAAyB,WAAWn8E,EAAEm8E,yBAAyB,MAAMnyF,MAAMpK,EAAE,IAAK,CAAC,GAAG,MAAMogB,EAAElC,OAAO,kBAAkBkC,EAAElC,MAAM,MAAM9T,MAAMpK,EAAE,IAAK,CAAC,CAClW,SAASghG,GAAGn7E,EAAEzF,GAAG,IAAI,IAAIyF,EAAEjP,QAAQ,KAAK,MAAM,kBAAkBwJ,EAAEsqB,GAAG,OAAO7kB,GAAG,IAAK,iBAAiB,IAAK,gBAAgB,IAAK,YAAY,IAAK,gBAAgB,IAAK,gBAAgB,IAAK,mBAAmB,IAAK,iBAAiB,IAAK,gBAAgB,OAAM,EAAG,QAAQ,OAAM,EAAG,CAAC,SAASo7E,GAAGp7E,GAA6F,OAA1FA,EAAEA,EAAEvX,QAAQuX,EAAEq7E,YAAY76F,QAAS86F,0BAA0Bt7E,EAAEA,EAAEs7E,yBAAgC,IAAIt7E,EAAEtT,SAASsT,EAAE28B,WAAW38B,CAAC,CAAC,IAAIu7E,GAAG,KAAKC,GAAG,KAAKC,GAAG,KACxb,SAASC,GAAG17E,GAAG,GAAGA,EAAE27E,GAAG37E,GAAG,CAAC,GAAG,oBAAoBu7E,GAAG,MAAMh3F,MAAMpK,EAAE,MAAM,IAAIogB,EAAEyF,EAAE47E,UAAUrhF,IAAIA,EAAEshF,GAAGthF,GAAGghF,GAAGv7E,EAAE47E,UAAU57E,EAAErd,KAAK4X,GAAG,CAAC,CAAC,SAASuhF,GAAG97E,GAAGw7E,GAAGC,GAAGA,GAAG7iG,KAAKonB,GAAGy7E,GAAG,CAACz7E,GAAGw7E,GAAGx7E,CAAC,CAAC,SAAS+7E,KAAK,GAAGP,GAAG,CAAC,IAAIx7E,EAAEw7E,GAAGjhF,EAAEkhF,GAAoB,GAAjBA,GAAGD,GAAG,KAAKE,GAAG17E,GAAMzF,EAAE,IAAIyF,EAAE,EAAEA,EAAEzF,EAAEvjB,OAAOgpB,IAAI07E,GAAGnhF,EAAEyF,GAAG,CAAC,CAAC,SAASg8E,GAAGh8E,EAAEzF,GAAG,OAAOyF,EAAEzF,EAAE,CAAC,SAAS0hF,GAAGj8E,EAAEzF,EAAEgG,EAAE3lB,EAAErD,GAAG,OAAOyoB,EAAEzF,EAAEgG,EAAE3lB,EAAErD,EAAE,CAAC,SAAS2kG,KAAK,CAAC,IAAIC,GAAGH,GAAGI,IAAG,EAAGC,IAAG,EAAG,SAASC,KAAQ,OAAOd,IAAI,OAAOC,KAAGS,KAAKH,KAAI,CAEla,SAASQ,GAAGv8E,EAAEzF,GAAG,IAAIgG,EAAEP,EAAE47E,UAAU,GAAG,OAAOr7E,EAAE,OAAO,KAAK,IAAI3lB,EAAEihG,GAAGt7E,GAAG,GAAG,OAAO3lB,EAAE,OAAO,KAAK2lB,EAAE3lB,EAAE2f,GAAGyF,EAAE,OAAOzF,GAAG,IAAK,UAAU,IAAK,iBAAiB,IAAK,gBAAgB,IAAK,uBAAuB,IAAK,cAAc,IAAK,qBAAqB,IAAK,cAAc,IAAK,qBAAqB,IAAK,YAAY,IAAK,mBAAmB,IAAK,gBAAgB3f,GAAGA,EAAE47F,YAAqB57F,IAAI,YAAbolB,EAAEA,EAAErd,OAAuB,UAAUqd,GAAG,WAAWA,GAAG,aAAaA,IAAIA,GAAGplB,EAAE,MAAMolB,EAAE,QAAQA,GAAE,EAAG,GAAGA,EAAE,OAAO,KAAK,GAAGO,GAAG,oBACleA,EAAE,MAAMhc,MAAMpK,EAAE,IAAIogB,SAASgG,IAAI,OAAOA,CAAC,CAAC,IAAIi8E,IAAG,EAAG,GAAGzK,EAAG,IAAI,IAAI0K,GAAG,CAAC,EAAE9jG,OAAOuH,eAAeu8F,GAAG,UAAU,CAACr8F,IAAI,WAAWo8F,IAAG,CAAE,IAAIh8F,OAAOslB,iBAAiB,OAAO22E,GAAGA,IAAIj8F,OAAOmmB,oBAAoB,OAAO81E,GAAGA,GAAG,CAAC,MAAMz8E,IAAGw8E,IAAG,CAAE,CAAC,SAASE,GAAG18E,EAAEzF,EAAEgG,EAAE3lB,EAAErD,EAAEE,EAAE4I,EAAEtE,EAAEyhB,GAAG,IAAIlhB,EAAExF,MAAMgK,UAAU/G,MAAMjC,KAAKyB,UAAU,GAAG,IAAIghB,EAAEzR,MAAMyX,EAAEjkB,EAAE,CAAC,MAAMlF,GAAGkJ,KAAKgiB,QAAQlrB,EAAE,CAAC,CAAC,IAAIulG,IAAG,EAAGC,GAAG,KAAKC,IAAG,EAAGC,GAAG,KAAKC,GAAG,CAACz6E,QAAQ,SAAStC,GAAG28E,IAAG,EAAGC,GAAG58E,CAAC,GAAG,SAASg9E,GAAGh9E,EAAEzF,EAAEgG,EAAE3lB,EAAErD,EAAEE,EAAE4I,EAAEtE,EAAEyhB,GAAGm/E,IAAG,EAAGC,GAAG,KAAKF,GAAG5zF,MAAMi0F,GAAGxjG,UAAU,CACjW,SAAS0jG,GAAGj9E,GAAG,IAAIzF,EAAEyF,EAAEO,EAAEP,EAAE,GAAGA,EAAEk9E,UAAU,KAAK3iF,EAAE4iF,QAAQ5iF,EAAEA,EAAE4iF,WAAW,CAACn9E,EAAEzF,EAAE,GAAO,KAAa,MAAjBA,EAAEyF,GAASrlB,SAAc4lB,EAAEhG,EAAE4iF,QAAQn9E,EAAEzF,EAAE4iF,aAAan9E,EAAE,CAAC,OAAO,IAAIzF,EAAEm6E,IAAIn0E,EAAE,IAAI,CAAC,SAAS68E,GAAGp9E,GAAG,GAAG,KAAKA,EAAE00E,IAAI,CAAC,IAAIn6E,EAAEyF,EAAEq9E,cAAsE,GAAxD,OAAO9iF,IAAkB,QAAdyF,EAAEA,EAAEk9E,aAAqB3iF,EAAEyF,EAAEq9E,gBAAmB,OAAO9iF,EAAE,OAAOA,EAAE+iF,UAAU,CAAC,OAAO,IAAI,CAAC,SAASC,GAAGv9E,GAAG,GAAGi9E,GAAGj9E,KAAKA,EAAE,MAAMzb,MAAMpK,EAAE,KAAM,CAE1S,SAASqjG,GAAGx9E,GAAW,GAARA,EADtN,SAAYA,GAAG,IAAIzF,EAAEyF,EAAEk9E,UAAU,IAAI3iF,EAAE,CAAS,GAAG,QAAXA,EAAE0iF,GAAGj9E,IAAe,MAAMzb,MAAMpK,EAAE,MAAM,OAAOogB,IAAIyF,EAAE,KAAKA,CAAC,CAAC,IAAI,IAAIO,EAAEP,EAAEplB,EAAE2f,IAAI,CAAC,IAAIhjB,EAAEgpB,EAAE48E,OAAO,GAAG,OAAO5lG,EAAE,MAAM,IAAIE,EAAEF,EAAE2lG,UAAU,GAAG,OAAOzlG,EAAE,CAAY,GAAG,QAAdmD,EAAErD,EAAE4lG,QAAmB,CAAC58E,EAAE3lB,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAGrD,EAAEkmG,QAAQhmG,EAAEgmG,MAAM,CAAC,IAAIhmG,EAAEF,EAAEkmG,MAAMhmG,GAAG,CAAC,GAAGA,IAAI8oB,EAAE,OAAOg9E,GAAGhmG,GAAGyoB,EAAE,GAAGvoB,IAAImD,EAAE,OAAO2iG,GAAGhmG,GAAGgjB,EAAE9iB,EAAEA,EAAEimG,OAAO,CAAC,MAAMn5F,MAAMpK,EAAE,KAAM,CAAC,GAAGomB,EAAE48E,SAASviG,EAAEuiG,OAAO58E,EAAEhpB,EAAEqD,EAAEnD,MAAM,CAAC,IAAI,IAAI4I,GAAE,EAAGtE,EAAExE,EAAEkmG,MAAM1hG,GAAG,CAAC,GAAGA,IAAIwkB,EAAE,CAAClgB,GAAE,EAAGkgB,EAAEhpB,EAAEqD,EAAEnD,EAAE,KAAK,CAAC,GAAGsE,IAAInB,EAAE,CAACyF,GAAE,EAAGzF,EAAErD,EAAEgpB,EAAE9oB,EAAE,KAAK,CAACsE,EAAEA,EAAE2hG,OAAO,CAAC,IAAIr9F,EAAE,CAAC,IAAItE,EAAEtE,EAAEgmG,MAAM1hG,GAAG,CAAC,GAAGA,IAC5fwkB,EAAE,CAAClgB,GAAE,EAAGkgB,EAAE9oB,EAAEmD,EAAErD,EAAE,KAAK,CAAC,GAAGwE,IAAInB,EAAE,CAACyF,GAAE,EAAGzF,EAAEnD,EAAE8oB,EAAEhpB,EAAE,KAAK,CAACwE,EAAEA,EAAE2hG,OAAO,CAAC,IAAIr9F,EAAE,MAAMkE,MAAMpK,EAAE,KAAM,CAAC,CAAC,GAAGomB,EAAE28E,YAAYtiG,EAAE,MAAM2J,MAAMpK,EAAE,KAAM,CAAC,GAAG,IAAIomB,EAAEm0E,IAAI,MAAMnwF,MAAMpK,EAAE,MAAM,OAAOomB,EAAEq7E,UAAUzW,UAAU5kE,EAAEP,EAAEzF,CAAC,CAAkBojF,CAAG39E,IAAOA,EAAE,OAAO,KAAK,IAAI,IAAIzF,EAAEyF,IAAI,CAAC,GAAG,IAAIzF,EAAEm6E,KAAK,IAAIn6E,EAAEm6E,IAAI,OAAOn6E,EAAE,GAAGA,EAAEkjF,MAAMljF,EAAEkjF,MAAMN,OAAO5iF,EAAEA,EAAEA,EAAEkjF,UAAU,CAAC,GAAGljF,IAAIyF,EAAE,MAAM,MAAMzF,EAAEmjF,SAAS,CAAC,IAAInjF,EAAE4iF,QAAQ5iF,EAAE4iF,SAASn9E,EAAE,OAAO,KAAKzF,EAAEA,EAAE4iF,MAAM,CAAC5iF,EAAEmjF,QAAQP,OAAO5iF,EAAE4iF,OAAO5iF,EAAEA,EAAEmjF,OAAO,CAAC,CAAC,OAAO,IAAI,CAChd,SAASE,GAAG59E,EAAEzF,GAAG,IAAI,IAAIgG,EAAEP,EAAEk9E,UAAU,OAAO3iF,GAAG,CAAC,GAAGA,IAAIyF,GAAGzF,IAAIgG,EAAE,OAAM,EAAGhG,EAAEA,EAAE4iF,MAAM,CAAC,OAAM,CAAE,CAAC,IAAIU,GAAGtpC,GAAGupC,GAAGC,GAAGC,IAAG,EAAGC,GAAG,GAAGC,GAAG,KAAK9rC,GAAG,KAAK+rC,GAAG,KAAKC,GAAG,IAAIC,IAAIC,GAAG,IAAID,IAAIE,GAAG,GAAGC,GAAG,6PAA6P7yF,MAAM,KACrb,SAAS8yF,GAAGz+E,EAAEzF,EAAEgG,EAAE3lB,EAAErD,GAAG,MAAM,CAACmnG,UAAU1+E,EAAE2+E,aAAapkF,EAAEqkF,iBAAmB,GAAFr+E,EAAKs+E,YAAYtnG,EAAEunG,iBAAiB,CAAClkG,GAAG,CAAC,SAASwlD,GAAGpgC,EAAEzF,GAAG,OAAOyF,GAAG,IAAK,UAAU,IAAK,WAAWk+E,GAAG,KAAK,MAAM,IAAK,YAAY,IAAK,YAAY9rC,GAAG,KAAK,MAAM,IAAK,YAAY,IAAK,WAAW+rC,GAAG,KAAK,MAAM,IAAK,cAAc,IAAK,aAAaC,GAAGW,OAAOxkF,EAAEykF,WAAW,MAAM,IAAK,oBAAoB,IAAK,qBAAqBV,GAAGS,OAAOxkF,EAAEykF,WAAW,CACta,SAASC,GAAGj/E,EAAEzF,EAAEgG,EAAE3lB,EAAErD,EAAEE,GAAG,OAAG,OAAOuoB,GAAGA,EAAE6+E,cAAcpnG,GAASuoB,EAAEy+E,GAAGlkF,EAAEgG,EAAE3lB,EAAErD,EAAEE,GAAG,OAAO8iB,IAAY,QAARA,EAAEohF,GAAGphF,KAAag6C,GAAGh6C,IAAIyF,IAAEA,EAAE4+E,kBAAkBhkG,EAAE2f,EAAEyF,EAAE8+E,iBAAiB,OAAOvnG,IAAI,IAAIgjB,EAAExJ,QAAQxZ,IAAIgjB,EAAE3hB,KAAKrB,GAAUyoB,EAAC,CAE/M,SAASk/E,GAAGl/E,GAAG,IAAIzF,EAAE4kF,GAAGn/E,EAAEvX,QAAQ,GAAG,OAAO8R,EAAE,CAAC,IAAIgG,EAAE08E,GAAG1iF,GAAG,GAAG,OAAOgG,EAAE,GAAW,MAARhG,EAAEgG,EAAEm0E,MAAY,GAAW,QAARn6E,EAAE6iF,GAAG78E,IAAmH,OAAtGP,EAAE0+E,UAAUnkF,OAAEwjF,GAAG/9E,EAAEo/E,cAAa,WAAW9kF,EAAE+kF,yBAAyBr/E,EAAEs/E,UAAS,WAAWxB,GAAGv9E,EAAE,GAAE,SAAgB,GAAG,IAAIhG,GAAGgG,EAAEq7E,UAAU2D,QAA8D,YAArDv/E,EAAE0+E,UAAU,IAAIn+E,EAAEm0E,IAAIn0E,EAAEq7E,UAAU4D,cAAc,KAAY,CAACx/E,EAAE0+E,UAAU,IAAI,CAC9U,SAASe,GAAGz/E,GAAG,GAAG,OAAOA,EAAE0+E,UAAU,OAAM,EAAG,IAAI,IAAInkF,EAAEyF,EAAE8+E,iBAAiB,EAAEvkF,EAAEvjB,QAAQ,CAAC,IAAIupB,EAAEm/E,GAAG1/E,EAAE2+E,aAAa3+E,EAAE4+E,iBAAiBrkF,EAAE,GAAGyF,EAAE6+E,aAAa,GAAG,OAAOt+E,EAAE,OAAe,QAARhG,EAAEohF,GAAGp7E,KAAag0C,GAAGh6C,GAAGyF,EAAE0+E,UAAUn+E,GAAE,EAAGhG,EAAE4R,OAAO,CAAC,OAAM,CAAE,CAAC,SAASwzE,GAAG3/E,EAAEzF,EAAEgG,GAAGk/E,GAAGz/E,IAAIO,EAAEw+E,OAAOxkF,EAAE,CAC3Q,SAASqlF,KAAK,IAAI5B,IAAG,EAAG,EAAEC,GAAGjnG,QAAQ,CAAC,IAAIgpB,EAAEi+E,GAAG,GAAG,GAAG,OAAOj+E,EAAE0+E,UAAU,CAAmB,QAAlB1+E,EAAE27E,GAAG37E,EAAE0+E,aAAqBb,GAAG79E,GAAG,KAAK,CAAC,IAAI,IAAIzF,EAAEyF,EAAE8+E,iBAAiB,EAAEvkF,EAAEvjB,QAAQ,CAAC,IAAIupB,EAAEm/E,GAAG1/E,EAAE2+E,aAAa3+E,EAAE4+E,iBAAiBrkF,EAAE,GAAGyF,EAAE6+E,aAAa,GAAG,OAAOt+E,EAAE,CAACP,EAAE0+E,UAAUn+E,EAAE,KAAK,CAAChG,EAAE4R,OAAO,CAAC,OAAOnM,EAAE0+E,WAAWT,GAAG9xE,OAAO,CAAC,OAAO+xE,IAAIuB,GAAGvB,MAAMA,GAAG,MAAM,OAAO9rC,IAAIqtC,GAAGrtC,MAAMA,GAAG,MAAM,OAAO+rC,IAAIsB,GAAGtB,MAAMA,GAAG,MAAMC,GAAG96F,QAAQq8F,IAAIrB,GAAGh7F,QAAQq8F,GAAG,CACxZ,SAASE,GAAG7/E,EAAEzF,GAAGyF,EAAE0+E,YAAYnkF,IAAIyF,EAAE0+E,UAAU,KAAKV,KAAKA,IAAG,EAAG1jF,EAAEwlF,0BAA0BxlF,EAAEylF,wBAAwBH,KAAK,CAC1H,SAASI,GAAGhgF,GAAG,SAASzF,EAAEA,GAAG,OAAOslF,GAAGtlF,EAAEyF,EAAE,CAAC,GAAG,EAAEi+E,GAAGjnG,OAAO,CAAC6oG,GAAG5B,GAAG,GAAGj+E,GAAG,IAAI,IAAIO,EAAE,EAAEA,EAAE09E,GAAGjnG,OAAOupB,IAAI,CAAC,IAAI3lB,EAAEqjG,GAAG19E,GAAG3lB,EAAE8jG,YAAY1+E,IAAIplB,EAAE8jG,UAAU,KAAK,CAAC,CAAyF,IAAxF,OAAOR,IAAI2B,GAAG3B,GAAGl+E,GAAG,OAAOoyC,IAAIytC,GAAGztC,GAAGpyC,GAAG,OAAOm+E,IAAI0B,GAAG1B,GAAGn+E,GAAGo+E,GAAG96F,QAAQiX,GAAG+jF,GAAGh7F,QAAQiX,GAAOgG,EAAE,EAAEA,EAAEg+E,GAAGvnG,OAAOupB,KAAI3lB,EAAE2jG,GAAGh+E,IAAKm+E,YAAY1+E,IAAIplB,EAAE8jG,UAAU,MAAM,KAAK,EAAEH,GAAGvnG,QAAiB,QAARupB,EAAEg+E,GAAG,IAAYG,WAAYQ,GAAG3+E,GAAG,OAAOA,EAAEm+E,WAAWH,GAAGpyE,OAAO,CACtY,SAAS8zE,GAAGjgF,EAAEzF,GAAG,IAAIgG,EAAE,CAAC,EAAiF,OAA/EA,EAAEP,EAAE03B,eAAen9B,EAAEm9B,cAAcn3B,EAAE,SAASP,GAAG,SAASzF,EAAEgG,EAAE,MAAMP,GAAG,MAAMzF,EAASgG,CAAC,CAAC,IAAI2/E,GAAG,CAACC,aAAaF,GAAG,YAAY,gBAAgBG,mBAAmBH,GAAG,YAAY,sBAAsBI,eAAeJ,GAAG,YAAY,kBAAkBK,cAAcL,GAAG,aAAa,kBAAkBM,GAAG,CAAC,EAAEC,GAAG,CAAC,EACpF,SAASC,GAAGzgF,GAAG,GAAGugF,GAAGvgF,GAAG,OAAOugF,GAAGvgF,GAAG,IAAIkgF,GAAGlgF,GAAG,OAAOA,EAAE,IAAYO,EAARhG,EAAE2lF,GAAGlgF,GAAK,IAAIO,KAAKhG,EAAE,GAAGA,EAAEvZ,eAAeuf,IAAIA,KAAKigF,GAAG,OAAOD,GAAGvgF,GAAGzF,EAAEgG,GAAG,OAAOP,CAAC,CAA/X+xE,IAAKyO,GAAGpxF,SAASwE,cAAc,OAAOyE,MAAM,mBAAmB7X,gBAAgB0/F,GAAGC,aAAah+E,iBAAiB+9E,GAAGE,mBAAmBj+E,iBAAiB+9E,GAAGG,eAAel+E,WAAW,oBAAoB3hB,eAAe0/F,GAAGI,cAAcjR,YACxO,IAAIqR,GAAGD,GAAG,gBAAgBE,GAAGF,GAAG,sBAAsBG,GAAGH,GAAG,kBAAkBI,GAAGJ,GAAG,iBAAiBK,GAAG,IAAIzC,IAAI0C,GAAG,IAAI1C,IAAI2C,GAAG,CAAC,QAAQ,QAAQN,GAAG,eAAeC,GAAG,qBAAqBC,GAAG,iBAAiB,UAAU,UAAU,iBAAiB,iBAAiB,iBAAiB,iBAAiB,UAAU,UAAU,YAAY,YAAY,QAAQ,QAAQ,QAAQ,QAAQ,oBAAoB,oBAAoB,OAAO,OAAO,aAAa,aAAa,iBAAiB,iBAAiB,YAAY,YAC/e,qBAAqB,qBAAqB,UAAU,UAAU,WAAW,WAAW,UAAU,UAAU,UAAU,UAAU,UAAU,UAAU,aAAa,aAAaC,GAAG,gBAAgB,UAAU,WAAW,SAASI,GAAGjhF,EAAEzF,GAAG,IAAI,IAAIgG,EAAE,EAAEA,EAAEP,EAAEhpB,OAAOupB,GAAG,EAAE,CAAC,IAAI3lB,EAAEolB,EAAEO,GAAGhpB,EAAEyoB,EAAEO,EAAE,GAAGhpB,EAAE,MAAMA,EAAE,GAAG4V,cAAc5V,EAAEwC,MAAM,IAAIgnG,GAAG38B,IAAIxpE,EAAE2f,GAAGumF,GAAG18B,IAAIxpE,EAAErD,GAAGizE,EAAGjzE,EAAE,CAACqD,GAAG,CAAC,EAAuBsmG,EAAf5mF,EAAE6mF,gBAAkB,IAAIjqG,GAAE,EAC/X,SAASkqG,GAAGphF,GAAG,GAAG,KAAK,EAAEA,GAAG,OAAO9oB,GAAE,GAAG,EAAE,GAAG,KAAK,EAAE8oB,GAAG,OAAO9oB,GAAE,GAAG,EAAE,GAAG,KAAK,EAAE8oB,GAAG,OAAO9oB,GAAE,GAAG,EAAE,IAAIqjB,EAAE,GAAGyF,EAAE,OAAG,IAAIzF,GAASrjB,GAAE,GAAGqjB,GAAK,KAAO,GAAFyF,IAAa9oB,GAAE,GAAG,IAAc,KAAXqjB,EAAE,IAAIyF,IAAkB9oB,GAAE,GAAGqjB,GAAK,KAAO,IAAFyF,IAAc9oB,GAAE,EAAE,KAAgB,KAAZqjB,EAAE,KAAKyF,IAAkB9oB,GAAE,EAAEqjB,GAAK,KAAO,KAAFyF,IAAe9oB,GAAE,EAAE,MAAoB,KAAfqjB,EAAE,QAAQyF,IAAkB9oB,GAAE,EAAEqjB,GAAkB,KAAhBA,EAAE,SAASyF,IAAkB9oB,GAAE,EAAEqjB,GAAO,SAAFyF,GAAkB9oB,GAAE,EAAE,UAAY,KAAO,UAAF8oB,IAAoB9oB,GAAE,EAAE,WAA2B,KAAjBqjB,EAAE,UAAUyF,IAAkB9oB,GAAE,EAAEqjB,GAAK,KAAK,WAAWyF,IAAU9oB,GAAE,EAAE,aACjfA,GAAE,EAAS8oB,EAAC,CACZ,SAASqhF,GAAGrhF,EAAEzF,GAAG,IAAIgG,EAAEP,EAAEshF,aAAa,GAAG,IAAI/gF,EAAE,OAAOrpB,GAAE,EAAE,IAAI0D,EAAE,EAAErD,EAAE,EAAEE,EAAEuoB,EAAEuhF,aAAalhG,EAAE2f,EAAEwhF,eAAezlG,EAAEikB,EAAEyhF,YAAY,GAAG,IAAIhqG,EAAEmD,EAAEnD,EAAEF,EAAEL,GAAE,QAAQ,GAAiB,KAAdO,EAAI,UAAF8oB,GAAkB,CAAC,IAAI/C,EAAE/lB,GAAG4I,EAAE,IAAImd,GAAG5iB,EAAEwmG,GAAG5jF,GAAGjmB,EAAEL,IAAS,KAAL6E,GAAGtE,KAAUmD,EAAEwmG,GAAGrlG,GAAGxE,EAAEL,GAAG,MAAa,KAAPO,EAAE8oB,GAAGlgB,IAASzF,EAAEwmG,GAAG3pG,GAAGF,EAAEL,IAAG,IAAI6E,IAAInB,EAAEwmG,GAAGrlG,GAAGxE,EAAEL,IAAG,GAAG,IAAI0D,EAAE,OAAO,EAAqC,GAAxBA,EAAE2lB,IAAI,GAAjB3lB,EAAE,GAAG8mG,GAAG9mG,IAAa,EAAE,GAAGA,IAAI,GAAG,EAAK,IAAI2f,GAAGA,IAAI3f,GAAG,KAAK2f,EAAEla,GAAG,CAAO,GAAN+gG,GAAG7mF,GAAMhjB,GAAGL,GAAE,OAAOqjB,EAAErjB,GAAEK,CAAC,CAAoB,GAAG,KAAtBgjB,EAAEyF,EAAE2hF,gBAAwB,IAAI3hF,EAAEA,EAAE4hF,cAAcrnF,GAAG3f,EAAE,EAAE2f,GAAchjB,EAAE,IAAbgpB,EAAE,GAAGmhF,GAAGnnF,IAAU3f,GAAGolB,EAAEO,GAAGhG,IAAIhjB,EAAE,OAAOqD,CAAC,CAC3e,SAASinG,GAAG7hF,GAAgC,OAAO,KAApCA,GAAkB,WAAhBA,EAAEshF,cAAsCthF,EAAI,WAAFA,EAAa,WAAW,CAAC,CAAC,SAAS8hF,GAAG9hF,EAAEzF,GAAG,OAAOyF,GAAG,KAAK,GAAG,OAAO,EAAE,KAAK,GAAG,OAAO,EAAE,KAAK,GAAG,OAAmB,KAAZA,EAAE+hF,GAAG,IAAIxnF,IAASunF,GAAG,GAAGvnF,GAAGyF,EAAE,KAAK,GAAG,OAAoB,KAAbA,EAAE+hF,GAAG,KAAKxnF,IAASunF,GAAG,EAAEvnF,GAAGyF,EAAE,KAAK,EAAE,OAAqB,KAAdA,EAAE+hF,GAAG,MAAMxnF,MAA4B,KAAjByF,EAAE+hF,GAAG,SAASxnF,MAAWyF,EAAE,MAAMA,EAAE,KAAK,EAAE,OAA0B,KAAnBzF,EAAEwnF,GAAG,WAAWxnF,MAAWA,EAAE,WAAWA,EAAE,MAAMhW,MAAMpK,EAAE,IAAI6lB,GAAI,CAAC,SAAS+hF,GAAG/hF,GAAG,OAAOA,GAAGA,CAAC,CAAC,SAASgiF,GAAGhiF,GAAG,IAAI,IAAIzF,EAAE,GAAGgG,EAAE,EAAE,GAAGA,EAAEA,IAAIhG,EAAE3hB,KAAKonB,GAAG,OAAOzF,CAAC,CACtd,SAAS0nF,GAAGjiF,EAAEzF,EAAEgG,GAAGP,EAAEshF,cAAc/mF,EAAE,IAAI3f,EAAE2f,EAAE,EAAEyF,EAAEwhF,gBAAgB5mG,EAAEolB,EAAEyhF,aAAa7mG,GAAEolB,EAAEA,EAAEkiF,YAAW3nF,EAAE,GAAGmnF,GAAGnnF,IAAQgG,CAAC,CAAC,IAAImhF,GAAGllG,KAAK2lG,MAAM3lG,KAAK2lG,MAAiC,SAAYniF,GAAG,OAAO,IAAIA,EAAE,GAAG,IAAIoiF,GAAGpiF,GAAGqiF,GAAG,GAAG,CAAC,EAAxED,GAAG5lG,KAAK8lG,IAAID,GAAG7lG,KAAK+lG,IAAqD,IAAI1nG,GAAGyf,EAAEkoF,8BAA8BC,GAAGnoF,EAAE+kF,yBAAyBqD,IAAG,EAAG,SAASC,GAAG3iF,EAAEzF,EAAEgG,EAAE3lB,GAAGwhG,IAAIF,KAAK,IAAI3kG,EAAE61D,GAAG31D,EAAE2kG,GAAGA,IAAG,EAAG,IAAIH,GAAG1kG,EAAEyoB,EAAEzF,EAAEgG,EAAE3lB,EAAE,CAAC,SAASwhG,GAAG3kG,IAAI6kG,IAAI,CAAC,CAAC,SAASh+E,GAAG0B,EAAEzF,EAAEgG,EAAE3lB,GAAG6nG,GAAG5nG,GAAGuyD,GAAGjlD,KAAK,KAAK6X,EAAEzF,EAAEgG,EAAE3lB,GAAG,CACpb,SAASwyD,GAAGptC,EAAEzF,EAAEgG,EAAE3lB,GAAU,IAAIrD,EAAX,GAAGmrG,GAAU,IAAInrG,EAAE,KAAO,EAAFgjB,KAAO,EAAE0jF,GAAGjnG,SAAS,EAAEwnG,GAAGztF,QAAQiP,GAAGA,EAAEy+E,GAAG,KAAKz+E,EAAEzF,EAAEgG,EAAE3lB,GAAGqjG,GAAGrlG,KAAKonB,OAAO,CAAC,IAAIvoB,EAAEioG,GAAG1/E,EAAEzF,EAAEgG,EAAE3lB,GAAG,GAAG,OAAOnD,EAAEF,GAAG6oD,GAAGpgC,EAAEplB,OAAO,CAAC,GAAGrD,EAAE,CAAC,IAAI,EAAEinG,GAAGztF,QAAQiP,GAA+B,OAA3BA,EAAEy+E,GAAGhnG,EAAEuoB,EAAEzF,EAAEgG,EAAE3lB,QAAGqjG,GAAGrlG,KAAKonB,GAAU,GAfhO,SAAYA,EAAEzF,EAAEgG,EAAE3lB,EAAErD,GAAG,OAAOgjB,GAAG,IAAK,UAAU,OAAO2jF,GAAGe,GAAGf,GAAGl+E,EAAEzF,EAAEgG,EAAE3lB,EAAErD,IAAG,EAAG,IAAK,YAAY,OAAO66D,GAAG6sC,GAAG7sC,GAAGpyC,EAAEzF,EAAEgG,EAAE3lB,EAAErD,IAAG,EAAG,IAAK,YAAY,OAAO4mG,GAAGc,GAAGd,GAAGn+E,EAAEzF,EAAEgG,EAAE3lB,EAAErD,IAAG,EAAG,IAAK,cAAc,IAAIE,EAAEF,EAAEynG,UAAkD,OAAxCZ,GAAGh6B,IAAI3sE,EAAEwnG,GAAGb,GAAGh+F,IAAI3I,IAAI,KAAKuoB,EAAEzF,EAAEgG,EAAE3lB,EAAErD,KAAU,EAAG,IAAK,oBAAoB,OAAOE,EAAEF,EAAEynG,UAAUV,GAAGl6B,IAAI3sE,EAAEwnG,GAAGX,GAAGl+F,IAAI3I,IAAI,KAAKuoB,EAAEzF,EAAEgG,EAAE3lB,EAAErD,KAAI,EAAG,OAAM,CAAE,CAehIqrG,CAAGnrG,EAAEuoB,EAAEzF,EAAEgG,EAAE3lB,GAAG,OAAOwlD,GAAGpgC,EAAEplB,EAAE,CAACioG,GAAG7iF,EAAEzF,EAAE3f,EAAE,KAAK2lB,EAAE,CAAC,CAAE,CACnR,SAASm/E,GAAG1/E,EAAEzF,EAAEgG,EAAE3lB,GAAG,IAAIrD,EAAE6jG,GAAGxgG,GAAW,GAAG,QAAXrD,EAAE4nG,GAAG5nG,IAAe,CAAC,IAAIE,EAAEwlG,GAAG1lG,GAAG,GAAG,OAAOE,EAAEF,EAAE,SAAS,CAAC,IAAI8I,EAAE5I,EAAEi9F,IAAI,GAAG,KAAKr0F,EAAE,CAAS,GAAG,QAAX9I,EAAE6lG,GAAG3lG,IAAe,OAAOF,EAAEA,EAAE,IAAI,MAAM,GAAG,IAAI8I,EAAE,CAAC,GAAG5I,EAAEmkG,UAAU2D,QAAQ,OAAO,IAAI9nG,EAAEi9F,IAAIj9F,EAAEmkG,UAAU4D,cAAc,KAAKjoG,EAAE,IAAI,MAAME,IAAIF,IAAIA,EAAE,KAAK,CAAC,CAAe,OAAdsrG,GAAG7iF,EAAEzF,EAAE3f,EAAErD,EAAEgpB,GAAU,IAAI,CAAC,IAAIuiF,GAAG,KAAKC,GAAG,KAAKC,GAAG,KACzT,SAASC,KAAK,GAAGD,GAAG,OAAOA,GAAG,IAAIhjF,EAAkBplB,EAAhB2f,EAAEwoF,GAAGxiF,EAAEhG,EAAEvjB,OAASO,EAAE,UAAUurG,GAAGA,GAAGxrG,MAAMwrG,GAAGhlD,YAAYrmD,EAAEF,EAAEP,OAAO,IAAIgpB,EAAE,EAAEA,EAAEO,GAAGhG,EAAEyF,KAAKzoB,EAAEyoB,GAAGA,KAAK,IAAI3f,EAAEkgB,EAAEP,EAAE,IAAIplB,EAAE,EAAEA,GAAGyF,GAAGka,EAAEgG,EAAE3lB,KAAKrD,EAAEE,EAAEmD,GAAGA,KAAK,OAAOooG,GAAGzrG,EAAEwC,MAAMimB,EAAE,EAAEplB,EAAE,EAAEA,OAAE,EAAO,CAAC,SAASsoG,GAAGljF,GAAG,IAAIzF,EAAEyF,EAAEmjF,QAA+E,MAAvE,aAAanjF,EAAgB,KAAbA,EAAEA,EAAEm4C,WAAgB,KAAK59C,IAAIyF,EAAE,IAAKA,EAAEzF,EAAE,KAAKyF,IAAIA,EAAE,IAAW,IAAIA,GAAG,KAAKA,EAAEA,EAAE,CAAC,CAAC,SAASojF,KAAK,OAAM,CAAE,CAAC,SAASC,KAAK,OAAM,CAAE,CACnY,SAAS/oD,GAAGt6B,GAAG,SAASzF,EAAEA,EAAE3f,EAAErD,EAAEE,EAAE4I,GAA6G,IAAI,IAAIkgB,KAAlHjgB,KAAKgjG,WAAW/oF,EAAEja,KAAKijG,YAAYhsG,EAAE+I,KAAKqC,KAAK/H,EAAE0F,KAAKu+F,YAAYpnG,EAAE6I,KAAKmI,OAAOpI,EAAEC,KAAKkjG,cAAc,KAAkBxjF,EAAEA,EAAEhf,eAAeuf,KAAKhG,EAAEyF,EAAEO,GAAGjgB,KAAKigB,GAAGhG,EAAEA,EAAE9iB,GAAGA,EAAE8oB,IAAgI,OAA5HjgB,KAAKmjG,oBAAoB,MAAMhsG,EAAEisG,iBAAiBjsG,EAAEisG,kBAAiB,IAAKjsG,EAAEksG,aAAaP,GAAGC,GAAG/iG,KAAKsjG,qBAAqBP,GAAU/iG,IAAI,CAC9E,OAD+ElF,EAAEmf,EAAEzZ,UAAU,CAAC+iG,eAAe,WAAWvjG,KAAKojG,kBAAiB,EAAG,IAAI1jF,EAAE1f,KAAKu+F,YAAY7+E,IAAIA,EAAE6jF,eAAe7jF,EAAE6jF,iBAAiB,mBAAmB7jF,EAAE2jF,cAC7e3jF,EAAE2jF,aAAY,GAAIrjG,KAAKmjG,mBAAmBL,GAAG,EAAEU,gBAAgB,WAAW,IAAI9jF,EAAE1f,KAAKu+F,YAAY7+E,IAAIA,EAAE8jF,gBAAgB9jF,EAAE8jF,kBAAkB,mBAAmB9jF,EAAE+jF,eAAe/jF,EAAE+jF,cAAa,GAAIzjG,KAAKsjG,qBAAqBR,GAAG,EAAEY,QAAQ,WAAW,EAAEC,aAAab,KAAY7oF,CAAC,CACjR,IAAoL2pF,GAAGC,GAAGC,GAAtLC,GAAG,CAACC,WAAW,EAAEC,QAAQ,EAAEC,WAAW,EAAEC,UAAU,SAASzkF,GAAG,OAAOA,EAAEykF,WAAW/qG,KAAK8kD,KAAK,EAAEklD,iBAAiB,EAAEgB,UAAU,GAAG13C,GAAG1S,GAAG+pD,IAAIM,GAAGvpG,EAAE,CAAC,EAAEipG,GAAG,CAAC1rB,KAAK,EAAEisB,OAAO,IAAIC,GAAGvqD,GAAGqqD,IAAaG,GAAG1pG,EAAE,CAAC,EAAEupG,GAAG,CAACI,QAAQ,EAAEC,QAAQ,EAAEC,QAAQ,EAAEC,QAAQ,EAAEC,MAAM,EAAEC,MAAM,EAAEC,QAAQ,EAAEC,SAAS,EAAEC,OAAO,EAAEC,QAAQ,EAAEC,iBAAiBC,GAAGC,OAAO,EAAEC,QAAQ,EAAEC,cAAc,SAAS7lF,GAAG,YAAO,IAASA,EAAE6lF,cAAc7lF,EAAE8lF,cAAc9lF,EAAEq7E,WAAWr7E,EAAE+lF,UAAU/lF,EAAE8lF,YAAY9lF,EAAE6lF,aAAa,EAAEG,UAAU,SAAShmF,GAAG,MAAG,cAC3eA,EAASA,EAAEgmF,WAAUhmF,IAAIokF,KAAKA,IAAI,cAAcpkF,EAAErd,MAAMuhG,GAAGlkF,EAAE+kF,QAAQX,GAAGW,QAAQZ,GAAGnkF,EAAEglF,QAAQZ,GAAGY,SAASb,GAAGD,GAAG,EAAEE,GAAGpkF,GAAUkkF,GAAE,EAAE+B,UAAU,SAASjmF,GAAG,MAAM,cAAcA,EAAEA,EAAEimF,UAAU9B,EAAE,IAAI+B,GAAG5rD,GAAGwqD,IAAiCqB,GAAG7rD,GAA7Bl/C,EAAE,CAAC,EAAE0pG,GAAG,CAACsB,aAAa,KAA4CC,GAAG/rD,GAA9Bl/C,EAAE,CAAC,EAAEupG,GAAG,CAACkB,cAAc,KAA0ES,GAAGhsD,GAA5Dl/C,EAAE,CAAC,EAAEipG,GAAG,CAACkC,cAAc,EAAEz1E,YAAY,EAAE01E,cAAc,KAAcC,GAAGrrG,EAAE,CAAC,EAAEipG,GAAG,CAACqC,cAAc,SAAS1mF,GAAG,MAAM,kBAAkBA,EAAEA,EAAE0mF,cAAclmG,OAAOkmG,aAAa,IAAIC,GAAGrsD,GAAGmsD,IAAyBG,GAAGtsD,GAArBl/C,EAAE,CAAC,EAAEipG,GAAG,CAAC/1F,KAAK,KAAcu4F,GAAG,CAACC,IAAI,SACxfC,SAAS,IAAIC,KAAK,YAAYC,GAAG,UAAUC,MAAM,aAAaC,KAAK,YAAYC,IAAI,SAASC,IAAI,KAAKC,KAAK,cAAcC,KAAK,cAAcC,OAAO,aAAaC,gBAAgB,gBAAgBC,GAAG,CAAC,EAAE,YAAY,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,WAAW,GAAG,SAAS,GAAG,IAAI,GAAG,SAAS,GAAG,WAAW,GAAG,MAAM,GAAG,OAAO,GAAG,YAAY,GAAG,UAAU,GAAG,aAAa,GAAG,YAAY,GAAG,SAAS,GAAG,SAAS,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KACtf,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,IAAI,UAAU,IAAI,aAAa,IAAI,QAAQC,GAAG,CAACC,IAAI,SAASC,QAAQ,UAAUC,KAAK,UAAUC,MAAM,YAAY,SAASC,GAAGhoF,GAAG,IAAIzF,EAAEja,KAAKu+F,YAAY,OAAOtkF,EAAEkrF,iBAAiBlrF,EAAEkrF,iBAAiBzlF,MAAIA,EAAE2nF,GAAG3nF,OAAMzF,EAAEyF,EAAK,CAAC,SAAS0lF,KAAK,OAAOsC,EAAE,CAChS,IAAIC,GAAG7sG,EAAE,CAAC,EAAEupG,GAAG,CAACzjG,IAAI,SAAS8e,GAAG,GAAGA,EAAE9e,IAAI,CAAC,IAAIqZ,EAAEssF,GAAG7mF,EAAE9e,MAAM8e,EAAE9e,IAAI,GAAG,iBAAiBqZ,EAAE,OAAOA,CAAC,CAAC,MAAM,aAAayF,EAAErd,KAAc,MAARqd,EAAEkjF,GAAGljF,IAAU,QAAQnmB,OAAO0R,aAAayU,GAAI,YAAYA,EAAErd,MAAM,UAAUqd,EAAErd,KAAK+kG,GAAG1nF,EAAEmjF,UAAU,eAAe,EAAE,EAAE+E,KAAK,EAAExlF,SAAS,EAAE2iF,QAAQ,EAAEC,SAAS,EAAEC,OAAO,EAAEC,QAAQ,EAAE2C,OAAO,EAAEC,OAAO,EAAE3C,iBAAiBC,GAAGvtC,SAAS,SAASn4C,GAAG,MAAM,aAAaA,EAAErd,KAAKugG,GAAGljF,GAAG,CAAC,EAAEmjF,QAAQ,SAASnjF,GAAG,MAAM,YAAYA,EAAErd,MAAM,UAAUqd,EAAErd,KAAKqd,EAAEmjF,QAAQ,CAAC,EAAEkF,MAAM,SAASroF,GAAG,MAAM,aAC7eA,EAAErd,KAAKugG,GAAGljF,GAAG,YAAYA,EAAErd,MAAM,UAAUqd,EAAErd,KAAKqd,EAAEmjF,QAAQ,CAAC,IAAImF,GAAGhuD,GAAG2tD,IAAiIM,GAAGjuD,GAA7Hl/C,EAAE,CAAC,EAAE0pG,GAAG,CAAC9F,UAAU,EAAE77E,MAAM,EAAEC,OAAO,EAAEolF,SAAS,EAAEC,mBAAmB,EAAEC,MAAM,EAAEC,MAAM,EAAEC,MAAM,EAAEC,YAAY,EAAEC,UAAU,KAAmIC,GAAGzuD,GAArHl/C,EAAE,CAAC,EAAEupG,GAAG,CAACqE,QAAQ,EAAEC,cAAc,EAAEC,eAAe,EAAE3D,OAAO,EAAEC,QAAQ,EAAEH,QAAQ,EAAEC,SAAS,EAAEG,iBAAiBC,MAA0EyD,GAAG7uD,GAA3Dl/C,EAAE,CAAC,EAAEipG,GAAG,CAACxsB,aAAa,EAAE/mD,YAAY,EAAE01E,cAAc,KAAc4C,GAAGhuG,EAAE,CAAC,EAAE0pG,GAAG,CAACuE,OAAO,SAASrpF,GAAG,MAAM,WAAWA,EAAEA,EAAEqpF,OAAO,gBAAgBrpF,GAAGA,EAAEspF,YAAY,CAAC,EACnfC,OAAO,SAASvpF,GAAG,MAAM,WAAWA,EAAEA,EAAEupF,OAAO,gBAAgBvpF,GAAGA,EAAEwpF,YAAY,eAAexpF,GAAGA,EAAEypF,WAAW,CAAC,EAAEC,OAAO,EAAEC,UAAU,IAAIC,GAAGtvD,GAAG8uD,IAAIS,GAAG,CAAC,EAAE,GAAG,GAAG,IAAIC,GAAG/X,GAAI,qBAAqBvxF,OAAOupG,GAAG,KAAKhY,GAAI,iBAAiB3iF,WAAW26F,GAAG36F,SAAS+C,cAAc,IAAI63F,GAAGjY,GAAI,cAAcvxF,SAASupG,GAAGE,GAAGlY,KAAM+X,IAAIC,IAAI,EAAEA,IAAI,IAAIA,IAAIG,GAAGrwG,OAAO0R,aAAa,IAAI4+F,IAAG,EAC1W,SAASC,GAAGpqF,EAAEzF,GAAG,OAAOyF,GAAG,IAAK,QAAQ,OAAO,IAAI6pF,GAAG94F,QAAQwJ,EAAE4oF,SAAS,IAAK,UAAU,OAAO,MAAM5oF,EAAE4oF,QAAQ,IAAK,WAAW,IAAK,YAAY,IAAK,WAAW,OAAM,EAAG,QAAQ,OAAM,EAAG,CAAC,SAASkH,GAAGrqF,GAAc,MAAM,kBAAjBA,EAAEA,EAAE4kF,SAAkC,SAAS5kF,EAAEA,EAAE1R,KAAK,IAAI,CAAC,IAAIg8F,IAAG,EAE9Q,IAAIC,GAAG,CAAC5vF,OAAM,EAAGxhB,MAAK,EAAGqxG,UAAS,EAAG,kBAAiB,EAAGC,OAAM,EAAGC,OAAM,EAAGC,QAAO,EAAGC,UAAS,EAAGC,OAAM,EAAGC,QAAO,EAAGC,KAAI,EAAG5sD,MAAK,EAAG72B,MAAK,EAAGxK,KAAI,EAAGkuF,MAAK,GAAI,SAASjvB,GAAG/7D,GAAG,IAAIzF,EAAEyF,GAAGA,EAAE80E,UAAU90E,EAAE80E,SAASp9C,cAAc,MAAM,UAAUn9B,IAAIgwF,GAAGvqF,EAAErd,MAAM,aAAa4X,CAAO,CAAC,SAAS2gD,GAAGl7C,EAAEzF,EAAEgG,EAAE3lB,GAAGkhG,GAAGlhG,GAAsB,GAAnB2f,EAAE0wF,GAAG1wF,EAAE,aAAgBvjB,SAASupB,EAAE,IAAIysC,GAAG,WAAW,SAAS,KAAKzsC,EAAE3lB,GAAGolB,EAAEpnB,KAAK,CAACwpB,MAAM7B,EAAE2qF,UAAU3wF,IAAI,CAAC,IAAIguD,GAAG,KAAK4iC,GAAG,KAAK,SAASC,GAAGprF,GAAGqrF,GAAGrrF,EAAE,EAAE,CAAC,SAASsrF,GAAGtrF,GAAe,GAAGo1E,EAATmW,GAAGvrF,IAAY,OAAOA,CAAC,CACpe,SAASwrF,GAAGxrF,EAAEzF,GAAG,GAAG,WAAWyF,EAAE,OAAOzF,CAAC,CAAC,IAAIkxF,IAAG,EAAG,GAAG1Z,EAAG,CAAC,IAAI92B,GAAG,GAAG82B,EAAG,CAAC,IAAI2Z,GAAG,YAAYt8F,SAAS,IAAIs8F,GAAG,CAAC,IAAIC,GAAGv8F,SAASwE,cAAc,OAAO+3F,GAAGp6E,aAAa,UAAU,WAAWm6E,GAAG,oBAAoBC,GAAGC,OAAO,CAAC3wC,GAAGywC,EAAE,MAAMzwC,IAAG,EAAGwwC,GAAGxwC,MAAM7rD,SAAS+C,cAAc,EAAE/C,SAAS+C,aAAa,CAAC,SAAS05F,KAAKtjC,KAAKA,GAAGujC,YAAY,mBAAmBC,IAAIZ,GAAG5iC,GAAG,KAAK,CAAC,SAASwjC,GAAG/rF,GAAG,GAAG,UAAUA,EAAE63D,cAAcyzB,GAAGH,IAAI,CAAC,IAAI5wF,EAAE,GAAyB,GAAtB2gD,GAAG3gD,EAAE4wF,GAAGnrF,EAAEo7E,GAAGp7E,IAAIA,EAAEorF,GAAMhP,GAAGp8E,EAAEzF,OAAO,CAAC6hF,IAAG,EAAG,IAAIJ,GAAGh8E,EAAEzF,EAAE,CAAC,QAAQ6hF,IAAG,EAAGE,IAAI,CAAC,CAAC,CAAC,CAClf,SAAS0P,GAAGhsF,EAAEzF,EAAEgG,GAAG,YAAYP,GAAG6rF,KAAUV,GAAG5qF,GAARgoD,GAAGhuD,GAAU0xF,YAAY,mBAAmBF,KAAK,aAAa/rF,GAAG6rF,IAAI,CAAC,SAASK,GAAGlsF,GAAG,GAAG,oBAAoBA,GAAG,UAAUA,GAAG,YAAYA,EAAE,OAAOsrF,GAAGH,GAAG,CAAC,SAASgB,GAAGnsF,EAAEzF,GAAG,GAAG,UAAUyF,EAAE,OAAOsrF,GAAG/wF,EAAE,CAAC,SAAS6xF,GAAGpsF,EAAEzF,GAAG,GAAG,UAAUyF,GAAG,WAAWA,EAAE,OAAOsrF,GAAG/wF,EAAE,CAAiE,IAAI8xF,GAAG,oBAAoB1zG,OAAOksC,GAAGlsC,OAAOksC,GAA5G,SAAY7kB,EAAEzF,GAAG,OAAOyF,IAAIzF,IAAI,IAAIyF,GAAG,EAAEA,IAAI,EAAEzF,IAAIyF,IAAIA,GAAGzF,IAAIA,CAAC,EAAmD+xF,GAAG3zG,OAAOmI,UAAUE,eAC7a,SAASurG,GAAGvsF,EAAEzF,GAAG,GAAG8xF,GAAGrsF,EAAEzF,GAAG,OAAM,EAAG,GAAG,kBAAkByF,GAAG,OAAOA,GAAG,kBAAkBzF,GAAG,OAAOA,EAAE,OAAM,EAAG,IAAIgG,EAAE5nB,OAAOmO,KAAKkZ,GAAGplB,EAAEjC,OAAOmO,KAAKyT,GAAG,GAAGgG,EAAEvpB,SAAS4D,EAAE5D,OAAO,OAAM,EAAG,IAAI4D,EAAE,EAAEA,EAAE2lB,EAAEvpB,OAAO4D,IAAI,IAAI0xG,GAAGx0G,KAAKyiB,EAAEgG,EAAE3lB,MAAMyxG,GAAGrsF,EAAEO,EAAE3lB,IAAI2f,EAAEgG,EAAE3lB,KAAK,OAAM,EAAG,OAAM,CAAE,CAAC,SAAS4xG,GAAGxsF,GAAG,KAAKA,GAAGA,EAAEs3E,YAAYt3E,EAAEA,EAAEs3E,WAAW,OAAOt3E,CAAC,CACnU,SAASysF,GAAGzsF,EAAEzF,GAAG,IAAwB3f,EAApB2lB,EAAEisF,GAAGxsF,GAAO,IAAJA,EAAE,EAAYO,GAAG,CAAC,GAAG,IAAIA,EAAE7T,SAAS,CAA0B,GAAzB9R,EAAEolB,EAAEO,EAAEu9B,YAAY9mD,OAAUgpB,GAAGzF,GAAG3f,GAAG2f,EAAE,MAAM,CAAC7I,KAAK6O,EAAE3F,OAAOL,EAAEyF,GAAGA,EAAEplB,CAAC,CAAColB,EAAE,CAAC,KAAKO,GAAG,CAAC,GAAGA,EAAEmsF,YAAY,CAACnsF,EAAEA,EAAEmsF,YAAY,MAAM1sF,CAAC,CAACO,EAAEA,EAAEo8B,UAAU,CAACp8B,OAAE,CAAM,CAACA,EAAEisF,GAAGjsF,EAAE,CAAC,CAAC,SAASosF,GAAG3sF,EAAEzF,GAAG,SAAOyF,IAAGzF,KAAEyF,IAAIzF,KAAKyF,GAAG,IAAIA,EAAEtT,YAAY6N,GAAG,IAAIA,EAAE7N,SAASigG,GAAG3sF,EAAEzF,EAAEoiC,YAAY,aAAa38B,EAAEA,EAAE4sF,SAASryF,KAAGyF,EAAE6sF,4BAAwD,GAA7B7sF,EAAE6sF,wBAAwBtyF,KAAY,CAC9Z,SAASuyF,KAAK,IAAI,IAAI9sF,EAAExf,OAAO+Z,EAAE+6E,IAAK/6E,aAAayF,EAAE+sF,mBAAmB,CAAC,IAAI,IAAIxsF,EAAE,kBAAkBhG,EAAEyyF,cAActqF,SAASipB,IAAI,CAAC,MAAM/wC,GAAG2lB,GAAE,CAAE,CAAC,IAAGA,EAAyB,MAAMhG,EAAE+6E,GAA/Bt1E,EAAEzF,EAAEyyF,eAAgC59F,SAAS,CAAC,OAAOmL,CAAC,CAAC,SAAS0yF,GAAGjtF,GAAG,IAAIzF,EAAEyF,GAAGA,EAAE80E,UAAU90E,EAAE80E,SAASp9C,cAAc,OAAOn9B,IAAI,UAAUA,IAAI,SAASyF,EAAErd,MAAM,WAAWqd,EAAErd,MAAM,QAAQqd,EAAErd,MAAM,QAAQqd,EAAErd,MAAM,aAAaqd,EAAErd,OAAO,aAAa4X,GAAG,SAASyF,EAAEktF,gBAAgB,CACxa,IAAIC,GAAGpb,GAAI,iBAAiB3iF,UAAU,IAAIA,SAAS+C,aAAai7F,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,IAAG,EAC3F,SAASC,GAAGxtF,EAAEzF,EAAEgG,GAAG,IAAI3lB,EAAE2lB,EAAE/f,SAAS+f,EAAEA,EAAEnR,SAAS,IAAImR,EAAE7T,SAAS6T,EAAEA,EAAE41E,cAAcoX,IAAI,MAAMH,IAAIA,KAAK9X,EAAG16F,KAAU,mBAALA,EAAEwyG,KAAyBH,GAAGryG,GAAGA,EAAE,CAACs/E,MAAMt/E,EAAE6yG,eAAe3+E,IAAIl0B,EAAE8yG,cAAuF9yG,EAAE,CAAC+yG,YAA3E/yG,GAAGA,EAAEu7F,eAAev7F,EAAEu7F,cAAcyX,aAAaptG,QAAQqtG,gBAA+BF,WAAWG,aAAalzG,EAAEkzG,aAAaC,UAAUnzG,EAAEmzG,UAAUC,YAAYpzG,EAAEozG,aAAcV,IAAIf,GAAGe,GAAG1yG,KAAK0yG,GAAG1yG,EAAsB,GAApBA,EAAEqwG,GAAGoC,GAAG,aAAgBr2G,SAASujB,EAAE,IAAIyyC,GAAG,WAAW,SAAS,KAAKzyC,EAAEgG,GAAGP,EAAEpnB,KAAK,CAACwpB,MAAM7H,EAAE2wF,UAAUtwG,IAAI2f,EAAE9R,OAAO2kG,KAAK,CACtfnM,GAAG,mjBAAmjBt1F,MAAM,KAC5jB,GAAGs1F,GAAG,oRAAoRt1F,MAAM,KAAK,GAAGs1F,GAAGD,GAAG,GAAG,IAAI,IAAIiN,GAAG,qFAAqFtiG,MAAM,KAAKuiG,GAAG,EAAEA,GAAGD,GAAGj3G,OAAOk3G,KAAKnN,GAAG38B,IAAI6pC,GAAGC,IAAI,GAAGpc,EAAG,eAAe,CAAC,WAAW,cACleA,EAAG,eAAe,CAAC,WAAW,cAAcA,EAAG,iBAAiB,CAAC,aAAa,gBAAgBA,EAAG,iBAAiB,CAAC,aAAa,gBAAgBtnB,EAAG,WAAW,oEAAoE7+D,MAAM,MAAM6+D,EAAG,WAAW,uFAAuF7+D,MAAM,MAAM6+D,EAAG,gBAAgB,CAAC,iBAAiB,WAAW,YAAY,UAAUA,EAAG,mBAAmB,2DAA2D7+D,MAAM,MAC5f6+D,EAAG,qBAAqB,6DAA6D7+D,MAAM,MAAM6+D,EAAG,sBAAsB,8DAA8D7+D,MAAM,MAAM,IAAIwiG,GAAG,sNAAsNxiG,MAAM,KAAKyiG,GAAG,IAAIxc,IAAI,0CAA0CjmF,MAAM,KAAKylB,OAAO+8E,KACnf,SAASE,GAAGruF,EAAEzF,EAAEgG,GAAG,IAAI3lB,EAAEolB,EAAErd,MAAM,gBAAgBqd,EAAEwjF,cAAcjjF,EA/CjE,SAAYP,EAAEzF,EAAEgG,EAAE3lB,EAAErD,EAAEE,EAAE4I,EAAEtE,EAAEyhB,GAA4B,GAAzBw/E,GAAGl0F,MAAMxI,KAAK/G,WAAcojG,GAAG,CAAC,IAAGA,GAAgC,MAAMp4F,MAAMpK,EAAE,MAA1C,IAAImC,EAAEsgG,GAAGD,IAAG,EAAGC,GAAG,KAA8BC,KAAKA,IAAG,EAAGC,GAAGxgG,EAAE,CAAC,CA+CpEgyG,CAAG1zG,EAAE2f,OAAE,EAAOyF,GAAGA,EAAEwjF,cAAc,IAAI,CACxG,SAAS6H,GAAGrrF,EAAEzF,GAAGA,EAAE,KAAO,EAAFA,GAAK,IAAI,IAAIgG,EAAE,EAAEA,EAAEP,EAAEhpB,OAAOupB,IAAI,CAAC,IAAI3lB,EAAEolB,EAAEO,GAAGhpB,EAAEqD,EAAEwnB,MAAMxnB,EAAEA,EAAEswG,UAAUlrF,EAAE,CAAC,IAAIvoB,OAAE,EAAO,GAAG8iB,EAAE,IAAI,IAAIla,EAAEzF,EAAE5D,OAAO,EAAE,GAAGqJ,EAAEA,IAAI,CAAC,IAAItE,EAAEnB,EAAEyF,GAAGmd,EAAEzhB,EAAEuM,SAAShM,EAAEP,EAAEynG,cAA2B,GAAbznG,EAAEA,EAAEwyG,SAAY/wF,IAAI/lB,GAAGF,EAAEqsG,uBAAuB,MAAM5jF,EAAEquF,GAAG92G,EAAEwE,EAAEO,GAAG7E,EAAE+lB,CAAC,MAAM,IAAInd,EAAE,EAAEA,EAAEzF,EAAE5D,OAAOqJ,IAAI,CAAoD,GAA5Cmd,GAAPzhB,EAAEnB,EAAEyF,IAAOiI,SAAShM,EAAEP,EAAEynG,cAAcznG,EAAEA,EAAEwyG,SAAY/wF,IAAI/lB,GAAGF,EAAEqsG,uBAAuB,MAAM5jF,EAAEquF,GAAG92G,EAAEwE,EAAEO,GAAG7E,EAAE+lB,CAAC,CAAC,CAAC,CAAC,GAAGq/E,GAAG,MAAM78E,EAAE88E,GAAGD,IAAG,EAAGC,GAAG,KAAK98E,CAAE,CAC5a,SAASkuE,GAAEluE,EAAEzF,GAAG,IAAIgG,EAAEiuF,GAAGj0F,GAAG3f,EAAEolB,EAAE,WAAWO,EAAEkuF,IAAI7zG,KAAK8zG,GAAGn0F,EAAEyF,EAAE,GAAE,GAAIO,EAAE84C,IAAIz+D,GAAG,CAAC,IAAI+zG,GAAG,kBAAkBnyG,KAAKkb,SAAShO,SAAS,IAAI3P,MAAM,GAAG,SAAS60G,GAAG5uF,GAAGA,EAAE2uF,MAAM3uF,EAAE2uF,KAAI,EAAGhd,EAAGruF,SAAQ,SAASiX,GAAG6zF,GAAGK,IAAIl0F,IAAIs0F,GAAGt0F,GAAE,EAAGyF,EAAE,MAAM6uF,GAAGt0F,GAAE,EAAGyF,EAAE,KAAK,IAAG,CAC9O,SAAS6uF,GAAG7uF,EAAEzF,EAAEgG,EAAE3lB,GAAG,IAAIrD,EAAE,EAAEgC,UAAUvC,aAAQ,IAASuC,UAAU,GAAGA,UAAU,GAAG,EAAE9B,EAAE8oB,EAA6D,GAA3D,oBAAoBP,GAAG,IAAIO,EAAE7T,WAAWjV,EAAE8oB,EAAE41E,eAAkB,OAAOv7F,IAAI2f,GAAG6zF,GAAGK,IAAIzuF,GAAG,CAAC,GAAG,WAAWA,EAAE,OAAOzoB,GAAG,EAAEE,EAAEmD,CAAC,CAAC,IAAIyF,EAAEmuG,GAAG/2G,GAAGsE,EAAEikB,EAAE,MAAMzF,EAAE,UAAU,UAAUla,EAAEouG,IAAI1yG,KAAKwe,IAAIhjB,GAAG,GAAGm3G,GAAGj3G,EAAEuoB,EAAEzoB,EAAEgjB,GAAGla,EAAEg5D,IAAIt9D,GAAG,CACrS,SAAS2yG,GAAG1uF,EAAEzF,EAAEgG,EAAE3lB,GAAG,IAAIrD,EAAEwpG,GAAG3gG,IAAIma,GAAG,YAAO,IAAShjB,EAAE,EAAEA,GAAG,KAAK,EAAEA,EAAEorG,GAAG,MAAM,KAAK,EAAEprG,EAAE+mB,GAAG,MAAM,QAAQ/mB,EAAE61D,GAAG7sC,EAAEhpB,EAAE4Q,KAAK,KAAKoS,EAAEgG,EAAEP,GAAGzoB,OAAE,GAAQilG,IAAI,eAAejiF,GAAG,cAAcA,GAAG,UAAUA,IAAIhjB,GAAE,GAAIqD,OAAE,IAASrD,EAAEyoB,EAAE8F,iBAAiBvL,EAAEgG,EAAE,CAACuuF,SAAQ,EAAGC,QAAQx3G,IAAIyoB,EAAE8F,iBAAiBvL,EAAEgG,GAAE,QAAI,IAAShpB,EAAEyoB,EAAE8F,iBAAiBvL,EAAEgG,EAAE,CAACwuF,QAAQx3G,IAAIyoB,EAAE8F,iBAAiBvL,EAAEgG,GAAE,EAAG,CACvW,SAASsiF,GAAG7iF,EAAEzF,EAAEgG,EAAE3lB,EAAErD,GAAG,IAAIE,EAAEmD,EAAE,GAAG,KAAO,EAAF2f,IAAM,KAAO,EAAFA,IAAM,OAAO3f,EAAEolB,EAAE,OAAO,CAAC,GAAG,OAAOplB,EAAE,OAAO,IAAIyF,EAAEzF,EAAE85F,IAAI,GAAG,IAAIr0F,GAAG,IAAIA,EAAE,CAAC,IAAItE,EAAEnB,EAAEghG,UAAU4D,cAAc,GAAGzjG,IAAIxE,GAAG,IAAIwE,EAAE2Q,UAAU3Q,EAAE4gD,aAAaplD,EAAE,MAAM,GAAG,IAAI8I,EAAE,IAAIA,EAAEzF,EAAEuiG,OAAO,OAAO98F,GAAG,CAAC,IAAImd,EAAEnd,EAAEq0F,IAAI,IAAG,IAAIl3E,GAAG,IAAIA,MAAKA,EAAEnd,EAAEu7F,UAAU4D,iBAAkBjoG,GAAG,IAAIimB,EAAE9Q,UAAU8Q,EAAEm/B,aAAaplD,GAAE,OAAO8I,EAAEA,EAAE88F,MAAM,CAAC,KAAK,OAAOphG,GAAG,CAAS,GAAG,QAAXsE,EAAE8+F,GAAGpjG,IAAe,OAAe,GAAG,KAAXyhB,EAAEnd,EAAEq0F,MAAc,IAAIl3E,EAAE,CAAC5iB,EAAEnD,EAAE4I,EAAE,SAAS2f,CAAC,CAACjkB,EAAEA,EAAE4gD,UAAU,CAAC,CAAC/hD,EAAEA,EAAEuiG,MAAM,EAvDnd,SAAYn9E,EAAEzF,EAAEgG,GAAG,GAAG87E,GAAG,OAAOr8E,EAAEzF,EAAEgG,GAAG87E,IAAG,EAAG,IAAI,OAAOF,GAAGn8E,EAAEzF,EAAEgG,EAAE,CAAC,QAAQ87E,IAAG,EAAGC,IAAI,CAAC,CAuD+X0S,EAAG,WAAW,IAAIp0G,EAAEnD,EAAEF,EAAE6jG,GAAG76E,GAAGlgB,EAAE,GACpf2f,EAAE,CAAC,IAAIjkB,EAAE+kG,GAAG1gG,IAAI4f,GAAG,QAAG,IAASjkB,EAAE,CAAC,IAAIyhB,EAAEwvC,GAAG55B,EAAEpT,EAAE,OAAOA,GAAG,IAAK,WAAW,GAAG,IAAIkjF,GAAG3iF,GAAG,MAAMP,EAAE,IAAK,UAAU,IAAK,QAAQxC,EAAE8qF,GAAG,MAAM,IAAK,UAAUl1E,EAAE,QAAQ5V,EAAE6oF,GAAG,MAAM,IAAK,WAAWjzE,EAAE,OAAO5V,EAAE6oF,GAAG,MAAM,IAAK,aAAa,IAAK,YAAY7oF,EAAE6oF,GAAG,MAAM,IAAK,QAAQ,GAAG,IAAI9lF,EAAEolF,OAAO,MAAM3lF,EAAE,IAAK,WAAW,IAAK,WAAW,IAAK,YAAY,IAAK,YAAY,IAAK,UAAU,IAAK,WAAW,IAAK,YAAY,IAAK,cAAcxC,EAAE0oF,GAAG,MAAM,IAAK,OAAO,IAAK,UAAU,IAAK,YAAY,IAAK,WAAW,IAAK,YAAY,IAAK,WAAW,IAAK,YAAY,IAAK,OAAO1oF,EAC1iB2oF,GAAG,MAAM,IAAK,cAAc,IAAK,WAAW,IAAK,YAAY,IAAK,aAAa3oF,EAAEurF,GAAG,MAAM,KAAKrI,GAAG,KAAKC,GAAG,KAAKC,GAAGpjF,EAAE8oF,GAAG,MAAM,KAAKzF,GAAGrjF,EAAE2rF,GAAG,MAAM,IAAK,SAAS3rF,EAAEqnF,GAAG,MAAM,IAAK,QAAQrnF,EAAEosF,GAAG,MAAM,IAAK,OAAO,IAAK,MAAM,IAAK,QAAQpsF,EAAEmpF,GAAG,MAAM,IAAK,oBAAoB,IAAK,qBAAqB,IAAK,gBAAgB,IAAK,cAAc,IAAK,cAAc,IAAK,aAAa,IAAK,cAAc,IAAK,YAAYnpF,EAAE+qF,GAAG,IAAInsD,EAAE,KAAO,EAAF7hC,GAAK2vB,GAAGkS,GAAG,WAAWp8B,EAAEqE,EAAE+3B,EAAE,OAAOrgD,EAAEA,EAAE,UAAU,KAAKA,EAAEqgD,EAAE,GAAG,IAAI,IAAQ5hC,EAAJ9d,EAAE9B,EAAI,OAC/e8B,GAAG,CAAK,IAAI2d,GAARG,EAAE9d,GAAUk/F,UAAsF,GAA5E,IAAIphF,EAAEk6E,KAAK,OAAOr6E,IAAIG,EAAEH,EAAE,OAAOgK,IAAc,OAAVhK,EAAEkiF,GAAG7/F,EAAE2nB,KAAY+3B,EAAExjD,KAAK0qD,GAAG5mD,EAAE2d,EAAEG,MAAS0vB,EAAE,MAAMxtC,EAAEA,EAAEygG,MAAM,CAAC,EAAE/gD,EAAEplD,SAAS+E,EAAE,IAAIyhB,EAAEzhB,EAAEq3B,EAAE,KAAK7S,EAAEhpB,GAAG8I,EAAEzH,KAAK,CAACwpB,MAAMrmB,EAAEmvG,UAAU9uD,IAAI,CAAC,CAAC,GAAG,KAAO,EAAF7hC,GAAK,CAA4E,GAAnCiD,EAAE,aAAawC,GAAG,eAAeA,KAAtEjkB,EAAE,cAAcikB,GAAG,gBAAgBA,IAA2C,KAAO,GAAFzF,MAAQ6Y,EAAE7S,EAAEslF,eAAetlF,EAAEulF,eAAe3G,GAAG/rE,KAAIA,EAAE67E,OAAgBzxF,GAAGzhB,KAAGA,EAAExE,EAAEiJ,SAASjJ,EAAEA,GAAGwE,EAAExE,EAAE4+F,eAAep6F,EAAE6xG,aAAa7xG,EAAEmzG,aAAa1uG,OAAUgd,GAAqCA,EAAE5iB,EAAiB,QAAfw4B,GAAnCA,EAAE7S,EAAEslF,eAAetlF,EAAEwlF,WAAkB5G,GAAG/rE,GAAG,QACleA,KAAR8W,EAAE+yD,GAAG7pE,KAAU,IAAIA,EAAEshE,KAAK,IAAIthE,EAAEshE,OAAKthE,EAAE,QAAU5V,EAAE,KAAK4V,EAAEx4B,GAAK4iB,IAAI4V,GAAE,CAAgU,GAA/TgpB,EAAE8pD,GAAG7rF,EAAE,eAAegK,EAAE,eAAe3nB,EAAE,QAAW,eAAesjB,GAAG,gBAAgBA,IAAEo8B,EAAEmsD,GAAGluF,EAAE,iBAAiBgK,EAAE,iBAAiB3nB,EAAE,WAAUwtC,EAAE,MAAM1sB,EAAEzhB,EAAEwvG,GAAG/tF,GAAGhD,EAAE,MAAM4Y,EAAEr3B,EAAEwvG,GAAGn4E,IAAGr3B,EAAE,IAAIqgD,EAAE/hC,EAAE3d,EAAE,QAAQ8gB,EAAE+C,EAAEhpB,IAAKkR,OAAOyhC,EAAEnuC,EAAE8pG,cAAcrrF,EAAEH,EAAE,KAAK8kF,GAAG5nG,KAAKqD,KAAIwhD,EAAE,IAAIA,EAAE/3B,EAAE3nB,EAAE,QAAQ02B,EAAE7S,EAAEhpB,IAAKkR,OAAO+R,EAAE4hC,EAAEypD,cAAc37D,EAAE7vB,EAAE+hC,GAAGlS,EAAE7vB,EAAKmD,GAAG4V,EAAE7Y,EAAE,CAAa,IAAR8J,EAAE+O,EAAE12B,EAAE,EAAM8d,EAAhB4hC,EAAE5+B,EAAkBhD,EAAEA,EAAEu3C,GAAGv3C,GAAG9d,IAAQ,IAAJ8d,EAAE,EAAMH,EAAEgK,EAAEhK,EAAEA,EAAE03C,GAAG13C,GAAGG,IAAI,KAAK,EAAE9d,EAAE8d,GAAG4hC,EAAE2V,GAAG3V,GAAG1/C,IAAI,KAAK,EAAE8d,EAAE9d,GAAG2nB,EACpf0tC,GAAG1tC,GAAG7J,IAAI,KAAK9d,KAAK,CAAC,GAAG0/C,IAAI/3B,GAAG,OAAOA,GAAG+3B,IAAI/3B,EAAE64E,UAAU,MAAM3iF,EAAE6hC,EAAE2V,GAAG3V,GAAG/3B,EAAE0tC,GAAG1tC,EAAE,CAAC+3B,EAAE,IAAI,MAAMA,EAAE,KAAK,OAAO5+B,GAAG2xF,GAAG9uG,EAAEtE,EAAEyhB,EAAE4+B,GAAE,GAAI,OAAOhpB,GAAG,OAAO8W,GAAGilE,GAAG9uG,EAAE6pC,EAAE9W,EAAEgpB,GAAE,EAAG,CAA8D,GAAG,YAA1C5+B,GAAjBzhB,EAAEnB,EAAE2wG,GAAG3wG,GAAG4F,QAAWs0F,UAAU/4F,EAAE+4F,SAASp9C,gBAA+B,UAAUl6B,GAAG,SAASzhB,EAAE4G,KAAK,IAAI4rF,EAAEid,QAAQ,GAAGzvB,GAAGhgF,GAAG,GAAG0vG,GAAGld,EAAE6d,OAAO,CAAC7d,EAAE2d,GAAG,IAAIrd,EAAEmd,EAAE,MAAMxuF,EAAEzhB,EAAE+4F,WAAW,UAAUt3E,EAAEk6B,gBAAgB,aAAa37C,EAAE4G,MAAM,UAAU5G,EAAE4G,QAAQ4rF,EAAE4d,IAClV,OADyV5d,IAAIA,EAAEA,EAAEvuE,EAAEplB,IAAKsgE,GAAG76D,EAAEkuF,EAAEhuE,EAAEhpB,IAAWs3F,GAAGA,EAAE7uE,EAAEjkB,EAAEnB,GAAG,aAAaolB,IAAI6uE,EAAE9yF,EAAE45F,gBACte9G,EAAEkH,YAAY,WAAWh6F,EAAE4G,MAAMuzF,GAAGn6F,EAAE,SAASA,EAAEzE,QAAOu3F,EAAEj0F,EAAE2wG,GAAG3wG,GAAG4F,OAAcwf,GAAG,IAAK,WAAa+7D,GAAG8S,IAAI,SAASA,EAAEqe,mBAAgBE,GAAGve,EAAEwe,GAAGzyG,EAAE0yG,GAAG,MAAK,MAAM,IAAK,WAAWA,GAAGD,GAAGD,GAAG,KAAK,MAAM,IAAK,YAAYG,IAAG,EAAG,MAAM,IAAK,cAAc,IAAK,UAAU,IAAK,UAAUA,IAAG,EAAGC,GAAGntG,EAAEkgB,EAAEhpB,GAAG,MAAM,IAAK,kBAAkB,GAAG41G,GAAG,MAAM,IAAK,UAAU,IAAK,QAAQK,GAAGntG,EAAEkgB,EAAEhpB,GAAG,IAAIw3F,EAAE,GAAG+a,GAAGvvF,EAAE,CAAC,OAAOyF,GAAG,IAAK,mBAAmB,IAAIzjB,EAAE,qBAAqB,MAAMge,EAAE,IAAK,iBAAiBhe,EAAE,mBAAmB,MAAMge,EACrf,IAAK,oBAAoBhe,EAAE,sBAAsB,MAAMge,EAAEhe,OAAE,CAAM,MAAM+tG,GAAGF,GAAGpqF,EAAEO,KAAKhkB,EAAE,oBAAoB,YAAYyjB,GAAG,MAAMO,EAAE4iF,UAAU5mG,EAAE,sBAAsBA,IAAI0tG,IAAI,OAAO1pF,EAAE6nF,SAASkC,IAAI,uBAAuB/tG,EAAE,qBAAqBA,GAAG+tG,KAAKvb,EAAEkU,OAAYF,GAAG,UAARD,GAAGvrG,GAAkBurG,GAAGxrG,MAAMwrG,GAAGhlD,YAAYwsD,IAAG,IAAe,GAAVzb,EAAEoc,GAAGrwG,EAAE2B,IAAOvF,SAASuF,EAAE,IAAIqqG,GAAGrqG,EAAEyjB,EAAE,KAAKO,EAAEhpB,GAAG8I,EAAEzH,KAAK,CAACwpB,MAAM7lB,EAAE2uG,UAAUrc,IAAIE,EAAExyF,EAAE+R,KAAKygF,EAAW,QAARA,EAAEsb,GAAG9pF,MAAchkB,EAAE+R,KAAKygF,MAASA,EAAEib,GA1BjK,SAAYhqF,EAAEzF,GAAG,OAAOyF,GAAG,IAAK,iBAAiB,OAAOqqF,GAAG9vF,GAAG,IAAK,WAAW,OAAG,KAAKA,EAAE8tF,MAAa,MAAK8B,IAAG,EAAUD,IAAG,IAAK,YAAY,OAAOlqF,EAAEzF,EAAEjM,QAAS47F,IAAIC,GAAG,KAAKnqF,EAAE,QAAQ,OAAO,KAAK,CA0B7BovF,CAAGpvF,EAAEO,GAzB1b,SAAYP,EAAEzF,GAAG,GAAG+vF,GAAG,MAAM,mBAAmBtqF,IAAI8pF,IAAIM,GAAGpqF,EAAEzF,IAAIyF,EAAEijF,KAAKD,GAAGD,GAAGD,GAAG,KAAKwH,IAAG,EAAGtqF,GAAG,KAAK,OAAOA,GAAG,IAAK,QAAgQ,QAAQ,OAAO,KAA3P,IAAK,WAAW,KAAKzF,EAAE8qF,SAAS9qF,EAAEgrF,QAAQhrF,EAAEirF,UAAUjrF,EAAE8qF,SAAS9qF,EAAEgrF,OAAO,CAAC,GAAGhrF,EAAE80F,MAAM,EAAE90F,EAAE80F,KAAKr4G,OAAO,OAAOujB,EAAE80F,KAAK,GAAG90F,EAAE8tF,MAAM,OAAOxuG,OAAO0R,aAAagP,EAAE8tF,MAAM,CAAC,OAAO,KAAK,IAAK,iBAAiB,OAAO4B,IAAI,OAAO1vF,EAAE6tF,OAAO,KAAK7tF,EAAEjM,KAAyB,CAyBsDghG,CAAGtvF,EAAEO,MAA2B,GAAxB3lB,EAAEqwG,GAAGrwG,EAAE,kBAAqB5D,SAASO,EAAE,IAAIqvG,GAAG,gBACnf,cAAc,KAAKrmF,EAAEhpB,GAAG8I,EAAEzH,KAAK,CAACwpB,MAAM7qB,EAAE2zG,UAAUtwG,IAAIrD,EAAE+W,KAAKygF,GAAE,CAACsc,GAAGhrG,EAAEka,EAAE,GAAE,CAAC,SAAS+oC,GAAGtjC,EAAEzF,EAAEgG,GAAG,MAAM,CAACjY,SAAS0X,EAAEuuF,SAASh0F,EAAEipF,cAAcjjF,EAAE,CAAC,SAAS0qF,GAAGjrF,EAAEzF,GAAG,IAAI,IAAIgG,EAAEhG,EAAE,UAAU3f,EAAE,GAAG,OAAOolB,GAAG,CAAC,IAAIzoB,EAAEyoB,EAAEvoB,EAAEF,EAAEqkG,UAAU,IAAIrkG,EAAEm9F,KAAK,OAAOj9F,IAAIF,EAAEE,EAAY,OAAVA,EAAE8kG,GAAGv8E,EAAEO,KAAY3lB,EAAEkW,QAAQwyC,GAAGtjC,EAAEvoB,EAAEF,IAAc,OAAVE,EAAE8kG,GAAGv8E,EAAEzF,KAAY3f,EAAEhC,KAAK0qD,GAAGtjC,EAAEvoB,EAAEF,KAAKyoB,EAAEA,EAAEm9E,MAAM,CAAC,OAAOviG,CAAC,CAAC,SAASm3D,GAAG/xC,GAAG,GAAG,OAAOA,EAAE,OAAO,KAAK,GAAGA,EAAEA,EAAEm9E,aAAan9E,GAAG,IAAIA,EAAE00E,KAAK,OAAO10E,GAAI,IAAI,CAC5a,SAASmvF,GAAGnvF,EAAEzF,EAAEgG,EAAE3lB,EAAErD,GAAG,IAAI,IAAIE,EAAE8iB,EAAE+oF,WAAWjjG,EAAE,GAAG,OAAOkgB,GAAGA,IAAI3lB,GAAG,CAAC,IAAImB,EAAEwkB,EAAE/C,EAAEzhB,EAAEmhG,UAAU5gG,EAAEP,EAAE6/F,UAAU,GAAG,OAAOp+E,GAAGA,IAAI5iB,EAAE,MAAM,IAAImB,EAAE24F,KAAK,OAAOp4F,IAAIP,EAAEO,EAAE/E,EAAa,OAAVimB,EAAE++E,GAAGh8E,EAAE9oB,KAAY4I,EAAEyQ,QAAQwyC,GAAG/iC,EAAE/C,EAAEzhB,IAAKxE,GAAc,OAAVimB,EAAE++E,GAAGh8E,EAAE9oB,KAAY4I,EAAEzH,KAAK0qD,GAAG/iC,EAAE/C,EAAEzhB,KAAMwkB,EAAEA,EAAE48E,MAAM,CAAC,IAAI98F,EAAErJ,QAAQgpB,EAAEpnB,KAAK,CAACwpB,MAAM7H,EAAE2wF,UAAU7qG,GAAG,CAAC,SAASkvG,KAAK,CAAC,IAAIxvE,GAAG,KAAKyvE,GAAG,KAAK,SAASC,GAAGzvF,EAAEzF,GAAG,OAAOyF,GAAG,IAAK,SAAS,IAAK,QAAQ,IAAK,SAAS,IAAK,WAAW,QAAQzF,EAAEm1F,UAAU,OAAM,CAAE,CAC7b,SAASC,GAAG3vF,EAAEzF,GAAG,MAAM,aAAayF,GAAG,WAAWA,GAAG,aAAaA,GAAG,kBAAkBzF,EAAEta,UAAU,kBAAkBsa,EAAEta,UAAU,kBAAkBsa,EAAEm8E,yBAAyB,OAAOn8E,EAAEm8E,yBAAyB,MAAMn8E,EAAEm8E,wBAAwBkZ,MAAM,CAAC,IAAIv9C,GAAG,oBAAoBtlC,WAAWA,gBAAW,EAAO8iF,GAAG,oBAAoBC,aAAaA,kBAAa,EAAO,SAASC,GAAG/vF,GAAG,IAAIA,EAAEtT,SAASsT,EAAE89B,YAAY,GAAG,IAAI99B,EAAEtT,WAAoB,OAATsT,EAAEA,EAAEwR,QAAexR,EAAE89B,YAAY,IAAI,CAC5c,SAASkyD,GAAGhwF,GAAG,KAAK,MAAMA,EAAEA,EAAEA,EAAE0sF,YAAY,CAAC,IAAInyF,EAAEyF,EAAEtT,SAAS,GAAG,IAAI6N,GAAG,IAAIA,EAAE,KAAK,CAAC,OAAOyF,CAAC,CAAC,SAASiwF,GAAGjwF,GAAGA,EAAEA,EAAEkwF,gBAAgB,IAAI,IAAI31F,EAAE,EAAEyF,GAAG,CAAC,GAAG,IAAIA,EAAEtT,SAAS,CAAC,IAAI6T,EAAEP,EAAE1R,KAAK,GAAG,MAAMiS,GAAG,OAAOA,GAAG,OAAOA,EAAE,CAAC,GAAG,IAAIhG,EAAE,OAAOyF,EAAEzF,GAAG,KAAK,OAAOgG,GAAGhG,GAAG,CAACyF,EAAEA,EAAEkwF,eAAe,CAAC,OAAO,IAAI,CAAC,IAAIC,GAAG,EAA0D,IAAIC,GAAG5zG,KAAKkb,SAAShO,SAAS,IAAI3P,MAAM,GAAGs2G,GAAG,gBAAgBD,GAAGE,GAAG,gBAAgBF,GAAGnB,GAAG,oBAAoBmB,GAAGG,GAAG,iBAAiBH,GAC9d,SAASjR,GAAGn/E,GAAG,IAAIzF,EAAEyF,EAAEqwF,IAAI,GAAG91F,EAAE,OAAOA,EAAE,IAAI,IAAIgG,EAAEP,EAAE28B,WAAWp8B,GAAG,CAAC,GAAGhG,EAAEgG,EAAE0uF,KAAK1uF,EAAE8vF,IAAI,CAAe,GAAd9vF,EAAEhG,EAAE2iF,UAAa,OAAO3iF,EAAEkjF,OAAO,OAAOl9E,GAAG,OAAOA,EAAEk9E,MAAM,IAAIz9E,EAAEiwF,GAAGjwF,GAAG,OAAOA,GAAG,CAAC,GAAGO,EAAEP,EAAEqwF,IAAI,OAAO9vF,EAAEP,EAAEiwF,GAAGjwF,EAAE,CAAC,OAAOzF,CAAC,CAAKgG,GAAJP,EAAEO,GAAMo8B,UAAU,CAAC,OAAO,IAAI,CAAC,SAASg/C,GAAG37E,GAAkB,QAAfA,EAAEA,EAAEqwF,KAAKrwF,EAAEivF,MAAc,IAAIjvF,EAAE00E,KAAK,IAAI10E,EAAE00E,KAAK,KAAK10E,EAAE00E,KAAK,IAAI10E,EAAE00E,IAAI,KAAK10E,CAAC,CAAC,SAASurF,GAAGvrF,GAAG,GAAG,IAAIA,EAAE00E,KAAK,IAAI10E,EAAE00E,IAAI,OAAO10E,EAAE47E,UAAU,MAAMr3F,MAAMpK,EAAE,IAAK,CAAC,SAAS0hG,GAAG77E,GAAG,OAAOA,EAAEswF,KAAK,IAAI,CACtb,SAAS9B,GAAGxuF,GAAG,IAAIzF,EAAEyF,EAAEuwF,IAAkC,YAA9B,IAASh2F,IAAIA,EAAEyF,EAAEuwF,IAAI,IAAI3e,KAAYr3E,CAAC,CAAC,IAAIi2F,GAAG,GAAGC,IAAI,EAAE,SAASC,GAAG1wF,GAAG,MAAM,CAACmlE,QAAQnlE,EAAE,CAAC,SAAS/jB,GAAE+jB,GAAG,EAAEywF,KAAKzwF,EAAEmlE,QAAQqrB,GAAGC,IAAID,GAAGC,IAAI,KAAKA,KAAK,CAAC,SAAStiB,GAAEnuE,EAAEzF,GAAGk2F,KAAKD,GAAGC,IAAIzwF,EAAEmlE,QAAQnlE,EAAEmlE,QAAQ5qE,CAAC,CAAC,IAAIo2F,GAAG,CAAC,EAAEx0G,GAAEu0G,GAAGC,IAAIrzG,GAAEozG,IAAG,GAAIE,GAAGD,GAC5P,SAASE,GAAG7wF,EAAEzF,GAAG,IAAIgG,EAAEP,EAAErd,KAAKmuG,aAAa,IAAIvwF,EAAE,OAAOowF,GAAG,IAAI/1G,EAAEolB,EAAE47E,UAAU,GAAGhhG,GAAGA,EAAEm2G,8CAA8Cx2F,EAAE,OAAO3f,EAAEo2G,0CAA0C,IAASv5G,EAALF,EAAE,CAAC,EAAI,IAAIE,KAAK8oB,EAAEhpB,EAAEE,GAAG8iB,EAAE9iB,GAAoH,OAAjHmD,KAAIolB,EAAEA,EAAE47E,WAAYmV,4CAA4Cx2F,EAAEyF,EAAEgxF,0CAA0Cz5G,GAAUA,CAAC,CAAC,SAAS05G,GAAGjxF,GAAyB,OAAO,QAA7BA,EAAEA,EAAEkxF,yBAAmC,IAASlxF,CAAC,CAAC,SAASmxF,KAAKl1G,GAAEqB,IAAGrB,GAAEE,GAAE,CAAC,SAASi1G,GAAGpxF,EAAEzF,EAAEgG,GAAG,GAAGpkB,GAAEgpF,UAAUwrB,GAAG,MAAMpsG,MAAMpK,EAAE,MAAMg0F,GAAEhyF,GAAEoe,GAAG4zE,GAAE7wF,GAAEijB,EAAE,CACjf,SAAS8wF,GAAGrxF,EAAEzF,EAAEgG,GAAG,IAAI3lB,EAAEolB,EAAE47E,UAAgC,GAAtB57E,EAAEzF,EAAE22F,kBAAqB,oBAAoBt2G,EAAE02G,gBAAgB,OAAO/wF,EAAwB,IAAI,IAAIhpB,KAA9BqD,EAAEA,EAAE02G,kBAAiC,KAAK/5G,KAAKyoB,GAAG,MAAMzb,MAAMpK,EAAE,IAAIw6F,EAAGp6E,IAAI,UAAUhjB,IAAI,OAAO6D,EAAE,CAAC,EAAEmlB,EAAE3lB,EAAE,CAAC,SAAS22G,GAAGvxF,GAAyG,OAAtGA,GAAGA,EAAEA,EAAE47E,YAAY57E,EAAEwxF,2CAA2Cb,GAAGC,GAAGz0G,GAAEgpF,QAAQgJ,GAAEhyF,GAAE6jB,GAAGmuE,GAAE7wF,GAAEA,GAAE6nF,UAAe,CAAE,CAAC,SAASssB,GAAGzxF,EAAEzF,EAAEgG,GAAG,IAAI3lB,EAAEolB,EAAE47E,UAAU,IAAIhhG,EAAE,MAAM2J,MAAMpK,EAAE,MAAMomB,GAAGP,EAAEqxF,GAAGrxF,EAAEzF,EAAEq2F,IAAIh2G,EAAE42G,0CAA0CxxF,EAAE/jB,GAAEqB,IAAGrB,GAAEE,IAAGgyF,GAAEhyF,GAAE6jB,IAAI/jB,GAAEqB,IAAG6wF,GAAE7wF,GAAEijB,EAAE,CAC/e,IAAImxF,GAAG,KAAKC,GAAG,KAAKC,GAAGt3F,EAAE+kF,yBAAyBwS,GAAGv3F,EAAEwlF,0BAA0BgS,GAAGx3F,EAAEy3F,wBAAwBC,GAAG13F,EAAE23F,qBAAqBC,GAAG53F,EAAE63F,sBAAsBC,GAAG93F,EAAE6mF,aAAakR,GAAG/3F,EAAEg4F,iCAAiCC,GAAGj4F,EAAEk4F,2BAA2BC,GAAGn4F,EAAEkoF,8BAA8BkQ,GAAGp4F,EAAEylF,wBAAwB4S,GAAGr4F,EAAEs4F,qBAAqBC,GAAGv4F,EAAEw4F,sBAAsBC,GAAG,CAAC,EAAEC,QAAG,IAASd,GAAGA,GAAG,WAAW,EAAEe,GAAG,KAAKC,GAAG,KAAKC,IAAG,EAAGC,GAAGhB,KAAKxjB,GAAE,IAAIwkB,GAAGhB,GAAG,WAAW,OAAOA,KAAKgB,EAAE,EACxd,SAASC,KAAK,OAAOhB,MAAM,KAAKE,GAAG,OAAO,GAAG,KAAKE,GAAG,OAAO,GAAG,KAAKC,GAAG,OAAO,GAAG,KAAKC,GAAG,OAAO,GAAG,KAAKE,GAAG,OAAO,GAAG,QAAQ,MAAMtuG,MAAMpK,EAAE,MAAO,CAAC,SAASm5G,GAAGtzF,GAAG,OAAOA,GAAG,KAAK,GAAG,OAAOuyF,GAAG,KAAK,GAAG,OAAOE,GAAG,KAAK,GAAG,OAAOC,GAAG,KAAK,GAAG,OAAOC,GAAG,KAAK,GAAG,OAAOE,GAAG,QAAQ,MAAMtuG,MAAMpK,EAAE,MAAO,CAAC,SAAS+yD,GAAGltC,EAAEzF,GAAW,OAARyF,EAAEszF,GAAGtzF,GAAU4xF,GAAG5xF,EAAEzF,EAAE,CAAC,SAASg5F,GAAGvzF,EAAEzF,EAAEgG,GAAW,OAARP,EAAEszF,GAAGtzF,GAAU6xF,GAAG7xF,EAAEzF,EAAEgG,EAAE,CAAC,SAASizF,KAAK,GAAG,OAAON,GAAG,CAAC,IAAIlzF,EAAEkzF,GAAGA,GAAG,KAAKpB,GAAG9xF,EAAE,CAACyzF,IAAI,CAC/a,SAASA,KAAK,IAAIN,IAAI,OAAOF,GAAG,CAACE,IAAG,EAAG,IAAInzF,EAAE,EAAE,IAAI,IAAIzF,EAAE04F,GAAG/lD,GAAG,IAAG,WAAW,KAAKltC,EAAEzF,EAAEvjB,OAAOgpB,IAAI,CAAC,IAAIO,EAAEhG,EAAEyF,GAAG,GAAGO,EAAEA,GAAE,SAAU,OAAOA,EAAE,CAAC,IAAG0yF,GAAG,IAAI,CAAC,MAAM1yF,GAAG,MAAM,OAAO0yF,KAAKA,GAAGA,GAAGl5G,MAAMimB,EAAE,IAAI6xF,GAAGU,GAAGiB,IAAIjzF,CAAE,CAAC,QAAQ4yF,IAAG,CAAE,CAAC,CAAC,CAAC,IAAIO,GAAGzgB,EAAG7D,wBAAwB,SAASukB,GAAG3zF,EAAEzF,GAAG,GAAGyF,GAAGA,EAAEwuE,aAAa,CAA4B,IAAI,IAAIjuE,KAAnChG,EAAEnf,EAAE,CAAC,EAAEmf,GAAGyF,EAAEA,EAAEwuE,kBAA4B,IAASj0E,EAAEgG,KAAKhG,EAAEgG,GAAGP,EAAEO,IAAI,OAAOhG,CAAC,CAAC,OAAOA,CAAC,CAAC,IAAIq5F,GAAGlD,GAAG,MAAMmD,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAK,SAASC,KAAKD,GAAGD,GAAGD,GAAG,IAAI,CAChc,SAASI,GAAGj0F,GAAG,IAAIzF,EAAEq5F,GAAGzuB,QAAQlpF,GAAE23G,IAAI5zF,EAAErd,KAAK2tF,SAASL,cAAc11E,CAAC,CAAC,SAAS25F,GAAGl0F,EAAEzF,GAAG,KAAK,OAAOyF,GAAG,CAAC,IAAIO,EAAEP,EAAEk9E,UAAU,IAAIl9E,EAAEm0F,WAAW55F,KAAKA,EAAC,CAAC,GAAG,OAAOgG,IAAIA,EAAE4zF,WAAW55F,KAAKA,EAAE,MAAWgG,EAAE4zF,YAAY55F,CAAE,MAAKyF,EAAEm0F,YAAY55F,EAAE,OAAOgG,IAAIA,EAAE4zF,YAAY55F,GAAGyF,EAAEA,EAAEm9E,MAAM,CAAC,CAAC,SAASjvB,GAAGluD,EAAEzF,GAAGs5F,GAAG7zF,EAAE+zF,GAAGD,GAAG,KAAsB,QAAjB9zF,EAAEA,EAAEo0F,eAAuB,OAAOp0F,EAAEq0F,eAAe,KAAKr0F,EAAEs0F,MAAM/5F,KAAKg6F,IAAG,GAAIv0F,EAAEq0F,aAAa,KAAK,CAC5Y,SAASG,GAAGx0F,EAAEzF,GAAG,GAAGw5F,KAAK/zF,IAAG,IAAKzF,GAAG,IAAIA,EAAmG,GAA7F,kBAAkBA,GAAG,aAAaA,IAAEw5F,GAAG/zF,EAAEzF,EAAE,YAAWA,EAAE,CAAClY,QAAQ2d,EAAEy0F,aAAal6F,EAAEviB,KAAK,MAAS,OAAO87G,GAAG,CAAC,GAAG,OAAOD,GAAG,MAAMtvG,MAAMpK,EAAE,MAAM25G,GAAGv5F,EAAEs5F,GAAGO,aAAa,CAACE,MAAM,EAAED,aAAa95F,EAAEm6F,WAAW,KAAK,MAAMZ,GAAGA,GAAG97G,KAAKuiB,EAAE,OAAOyF,EAAEiwE,aAAa,CAAC,IAAI0kB,IAAG,EAAG,SAASC,GAAG50F,GAAGA,EAAE60F,YAAY,CAACC,UAAU90F,EAAEq9E,cAAc0X,gBAAgB,KAAKC,eAAe,KAAKC,OAAO,CAACC,QAAQ,MAAM7xD,QAAQ,KAAK,CAC/a,SAAS8xD,GAAGn1F,EAAEzF,GAAGyF,EAAEA,EAAE60F,YAAYt6F,EAAEs6F,cAAc70F,IAAIzF,EAAEs6F,YAAY,CAACC,UAAU90F,EAAE80F,UAAUC,gBAAgB/0F,EAAE+0F,gBAAgBC,eAAeh1F,EAAEg1F,eAAeC,OAAOj1F,EAAEi1F,OAAO5xD,QAAQrjC,EAAEqjC,SAAS,CAAC,SAAS+xD,GAAGp1F,EAAEzF,GAAG,MAAM,CAAC86F,UAAUr1F,EAAEs1F,KAAK/6F,EAAEm6E,IAAI,EAAExyE,QAAQ,KAAK3U,SAAS,KAAKvV,KAAK,KAAK,CAAC,SAASu9G,GAAGv1F,EAAEzF,GAAmB,GAAG,QAAnByF,EAAEA,EAAE60F,aAAwB,CAAY,IAAIt0F,GAAfP,EAAEA,EAAEi1F,QAAeC,QAAQ,OAAO30F,EAAEhG,EAAEviB,KAAKuiB,GAAGA,EAAEviB,KAAKuoB,EAAEvoB,KAAKuoB,EAAEvoB,KAAKuiB,GAAGyF,EAAEk1F,QAAQ36F,CAAC,CAAC,CACvZ,SAASi7F,GAAGx1F,EAAEzF,GAAG,IAAIgG,EAAEP,EAAE60F,YAAYj6G,EAAEolB,EAAEk9E,UAAU,GAAG,OAAOtiG,GAAoB2lB,KAAhB3lB,EAAEA,EAAEi6G,aAAmB,CAAC,IAAIt9G,EAAE,KAAKE,EAAE,KAAyB,GAAG,QAAvB8oB,EAAEA,EAAEw0F,iBAA4B,CAAC,EAAE,CAAC,IAAI10G,EAAE,CAACg1G,UAAU90F,EAAE80F,UAAUC,KAAK/0F,EAAE+0F,KAAK5gB,IAAIn0E,EAAEm0E,IAAIxyE,QAAQ3B,EAAE2B,QAAQ3U,SAASgT,EAAEhT,SAASvV,KAAK,MAAM,OAAOP,EAAEF,EAAEE,EAAE4I,EAAE5I,EAAEA,EAAEO,KAAKqI,EAAEkgB,EAAEA,EAAEvoB,IAAI,OAAO,OAAOuoB,GAAG,OAAO9oB,EAAEF,EAAEE,EAAE8iB,EAAE9iB,EAAEA,EAAEO,KAAKuiB,CAAC,MAAMhjB,EAAEE,EAAE8iB,EAAiH,OAA/GgG,EAAE,CAACu0F,UAAUl6G,EAAEk6G,UAAUC,gBAAgBx9G,EAAEy9G,eAAev9G,EAAEw9G,OAAOr6G,EAAEq6G,OAAO5xD,QAAQzoD,EAAEyoD,cAASrjC,EAAE60F,YAAYt0F,EAAQ,CAAoB,QAAnBP,EAAEO,EAAEy0F,gBAAwBz0F,EAAEw0F,gBAAgBx6F,EAAEyF,EAAEhoB,KACnfuiB,EAAEgG,EAAEy0F,eAAez6F,CAAC,CACpB,SAASk7F,GAAGz1F,EAAEzF,EAAEgG,EAAE3lB,GAAG,IAAIrD,EAAEyoB,EAAE60F,YAAYF,IAAG,EAAG,IAAIl9G,EAAEF,EAAEw9G,gBAAgB10G,EAAE9I,EAAEy9G,eAAej5G,EAAExE,EAAE09G,OAAOC,QAAQ,GAAG,OAAOn5G,EAAE,CAACxE,EAAE09G,OAAOC,QAAQ,KAAK,IAAI13F,EAAEzhB,EAAEO,EAAEkhB,EAAExlB,KAAKwlB,EAAExlB,KAAK,KAAK,OAAOqI,EAAE5I,EAAE6E,EAAE+D,EAAErI,KAAKsE,EAAE+D,EAAEmd,EAAE,IAAIpmB,EAAE4oB,EAAEk9E,UAAU,GAAG,OAAO9lG,EAAE,CAAiB,IAAIo7B,GAApBp7B,EAAEA,EAAEy9G,aAAoBG,eAAexiF,IAAInyB,IAAI,OAAOmyB,EAAEp7B,EAAE29G,gBAAgBz4G,EAAEk2B,EAAEx6B,KAAKsE,EAAElF,EAAE49G,eAAex3F,EAAE,CAAC,CAAC,GAAG,OAAO/lB,EAAE,CAA8B,IAA7B+6B,EAAEj7B,EAAEu9G,UAAUz0G,EAAE,EAAEjJ,EAAEkF,EAAEkhB,EAAE,OAAO,CAACzhB,EAAEtE,EAAE69G,KAAK,IAAIp4G,EAAEzF,EAAE49G,UAAU,IAAIz6G,EAAEmB,KAAKA,EAAE,CAAC,OAAO3E,IAAIA,EAAEA,EAAEY,KAAK,CAACq9G,UAAUn4G,EAAEo4G,KAAK,EAAE5gB,IAAIj9F,EAAEi9F,IAAIxyE,QAAQzqB,EAAEyqB,QAAQ3U,SAAS9V,EAAE8V,SACrfvV,KAAK,OAAOgoB,EAAE,CAAC,IAAI4S,EAAE5S,EAAEoT,EAAE37B,EAAU,OAARsE,EAAEwe,EAAErd,EAAEqjB,EAAS6S,EAAEshE,KAAK,KAAK,EAAc,GAAG,oBAAf9hE,EAAEQ,EAAElR,SAAiC,CAACsQ,EAAEI,EAAE96B,KAAKoF,EAAEs1B,EAAEz2B,GAAG,MAAMikB,CAAC,CAACwS,EAAEI,EAAE,MAAM5S,EAAE,KAAK,EAAE4S,EAAEj4B,OAAe,KAATi4B,EAAEj4B,MAAY,GAAG,KAAK,EAAsD,GAAG,QAA3CoB,EAAE,oBAAd62B,EAAEQ,EAAElR,SAAgC0Q,EAAE96B,KAAKoF,EAAEs1B,EAAEz2B,GAAG62B,SAAe,IAAS72B,EAAE,MAAMikB,EAAEwS,EAAEp3B,EAAE,CAAC,EAAEo3B,EAAEz2B,GAAG,MAAMikB,EAAE,KAAK,EAAE20F,IAAG,EAAG,CAAC,OAAOl9G,EAAE8V,WAAWyS,EAAErlB,OAAO,GAAe,QAAZoB,EAAExE,EAAE8rD,SAAiB9rD,EAAE8rD,QAAQ,CAAC5rD,GAAGsE,EAAEnD,KAAKnB,GAAG,MAAMyF,EAAE,CAACm4G,UAAUn4G,EAAEo4G,KAAKv5G,EAAE24F,IAAIj9F,EAAEi9F,IAAIxyE,QAAQzqB,EAAEyqB,QAAQ3U,SAAS9V,EAAE8V,SAASvV,KAAK,MAAM,OAAOZ,GAAGkF,EAAElF,EAAE8F,EAAEsgB,EAAEgV,GAAGp7B,EAAEA,EAAEY,KAAKkF,EAAEmD,GAAGtE,EAAW,GAAG,QAAZtE,EAAEA,EAAEO,MAC1e,IAAsB,QAAnB+D,EAAExE,EAAE09G,OAAOC,SAAiB,MAAWz9G,EAAEsE,EAAE/D,KAAK+D,EAAE/D,KAAK,KAAKT,EAAEy9G,eAAej5G,EAAExE,EAAE09G,OAAOC,QAAQ,IAAI,EAAU,OAAO99G,IAAIomB,EAAEgV,GAAGj7B,EAAEu9G,UAAUt3F,EAAEjmB,EAAEw9G,gBAAgBz4G,EAAE/E,EAAEy9G,eAAe59G,EAAEs+G,IAAIr1G,EAAE2f,EAAEs0F,MAAMj0G,EAAE2f,EAAEq9E,cAAc7qE,CAAC,CAAC,CAAC,SAASmjF,GAAG31F,EAAEzF,EAAEgG,GAA8B,GAA3BP,EAAEzF,EAAE8oC,QAAQ9oC,EAAE8oC,QAAQ,KAAQ,OAAOrjC,EAAE,IAAIzF,EAAE,EAAEA,EAAEyF,EAAEhpB,OAAOujB,IAAI,CAAC,IAAI3f,EAAEolB,EAAEzF,GAAGhjB,EAAEqD,EAAE2S,SAAS,GAAG,OAAOhW,EAAE,CAAqB,GAApBqD,EAAE2S,SAAS,KAAK3S,EAAE2lB,EAAK,oBAAoBhpB,EAAE,MAAMgN,MAAMpK,EAAE,IAAI5C,IAAIA,EAAEO,KAAK8C,EAAE,CAAC,CAAC,CAAC,IAAIg7G,IAAI,IAAIlkB,EAAG/B,WAAWhC,KAC3b,SAASkoB,GAAG71F,EAAEzF,EAAEgG,EAAE3lB,GAA8B2lB,EAAE,QAAXA,EAAEA,EAAE3lB,EAAtB2f,EAAEyF,EAAEq9E,sBAAmC,IAAS98E,EAAEhG,EAAEnf,EAAE,CAAC,EAAEmf,EAAEgG,GAAGP,EAAEq9E,cAAc98E,EAAE,IAAIP,EAAEs0F,QAAQt0F,EAAE60F,YAAYC,UAAUv0F,EAAE,CAC7I,IAAIu1F,GAAG,CAACvoB,UAAU,SAASvtE,GAAG,SAAOA,EAAEA,EAAE+1F,kBAAiB9Y,GAAGj9E,KAAKA,CAAI,EAAE0tE,gBAAgB,SAAS1tE,EAAEzF,EAAEgG,GAAGP,EAAEA,EAAE+1F,gBAAgB,IAAIn7G,EAAEo7G,KAAKz+G,EAAE0+G,GAAGj2F,GAAGvoB,EAAE29G,GAAGx6G,EAAErD,GAAGE,EAAEyqB,QAAQ3H,OAAE,IAASgG,GAAG,OAAOA,IAAI9oB,EAAE8V,SAASgT,GAAGg1F,GAAGv1F,EAAEvoB,GAAGy+G,GAAGl2F,EAAEzoB,EAAEqD,EAAE,EAAE6yF,oBAAoB,SAASztE,EAAEzF,EAAEgG,GAAGP,EAAEA,EAAE+1F,gBAAgB,IAAIn7G,EAAEo7G,KAAKz+G,EAAE0+G,GAAGj2F,GAAGvoB,EAAE29G,GAAGx6G,EAAErD,GAAGE,EAAEi9F,IAAI,EAAEj9F,EAAEyqB,QAAQ3H,OAAE,IAASgG,GAAG,OAAOA,IAAI9oB,EAAE8V,SAASgT,GAAGg1F,GAAGv1F,EAAEvoB,GAAGy+G,GAAGl2F,EAAEzoB,EAAEqD,EAAE,EAAE4yF,mBAAmB,SAASxtE,EAAEzF,GAAGyF,EAAEA,EAAE+1F,gBAAgB,IAAIx1F,EAAEy1F,KAAKp7G,EAAEq7G,GAAGj2F,GAAGzoB,EAAE69G,GAAG70F,EAAE3lB,GAAGrD,EAAEm9F,IAAI,OAAE,IAASn6E,GAAG,OAAOA,IAAIhjB,EAAEgW,SACjfgN,GAAGg7F,GAAGv1F,EAAEzoB,GAAG2+G,GAAGl2F,EAAEplB,EAAE2lB,EAAE,GAAG,SAAS41F,GAAGn2F,EAAEzF,EAAEgG,EAAE3lB,EAAErD,EAAEE,EAAE4I,GAAiB,MAAM,oBAApB2f,EAAEA,EAAE47E,WAAsCwa,sBAAsBp2F,EAAEo2F,sBAAsBx7G,EAAEnD,EAAE4I,IAAGka,EAAEzZ,YAAWyZ,EAAEzZ,UAAUmtF,wBAAsBse,GAAGhsF,EAAE3lB,KAAK2xG,GAAGh1G,EAAEE,GAAK,CACpN,SAAS4+G,GAAGr2F,EAAEzF,EAAEgG,GAAG,IAAI3lB,GAAE,EAAGrD,EAAEo5G,GAAOl5G,EAAE8iB,EAAE+7F,YAA2W,MAA/V,kBAAkB7+G,GAAG,OAAOA,EAAEA,EAAE+8G,GAAG/8G,IAAIF,EAAE05G,GAAG12F,GAAGq2F,GAAGz0G,GAAEgpF,QAAyB1tF,GAAGmD,EAAE,QAAtBA,EAAE2f,EAAEu2F,oBAA4B,IAASl2G,GAAGi2G,GAAG7wF,EAAEzoB,GAAGo5G,IAAIp2F,EAAE,IAAIA,EAAEgG,EAAE9oB,GAAGuoB,EAAEq9E,cAAc,OAAO9iF,EAAEjW,YAAO,IAASiW,EAAEjW,MAAMiW,EAAEjW,MAAM,KAAKiW,EAAEqzE,QAAQkoB,GAAG91F,EAAE47E,UAAUrhF,EAAEA,EAAEw7F,gBAAgB/1F,EAAEplB,KAAIolB,EAAEA,EAAE47E,WAAYmV,4CAA4Cx5G,EAAEyoB,EAAEgxF,0CAA0Cv5G,GAAU8iB,CAAC,CAC5Z,SAASg8F,GAAGv2F,EAAEzF,EAAEgG,EAAE3lB,GAAGolB,EAAEzF,EAAEjW,MAAM,oBAAoBiW,EAAEi8F,2BAA2Bj8F,EAAEi8F,0BAA0Bj2F,EAAE3lB,GAAG,oBAAoB2f,EAAEk8F,kCAAkCl8F,EAAEk8F,iCAAiCl2F,EAAE3lB,GAAG2f,EAAEjW,QAAQ0b,GAAG81F,GAAGroB,oBAAoBlzE,EAAEA,EAAEjW,MAAM,KAAK,CACpQ,SAASoyG,GAAG12F,EAAEzF,EAAEgG,EAAE3lB,GAAG,IAAIrD,EAAEyoB,EAAE47E,UAAUrkG,EAAEyR,MAAMuX,EAAEhpB,EAAE+M,MAAM0b,EAAEq9E,cAAc9lG,EAAEo2F,KAAKioB,GAAGhB,GAAG50F,GAAG,IAAIvoB,EAAE8iB,EAAE+7F,YAAY,kBAAkB7+G,GAAG,OAAOA,EAAEF,EAAE8K,QAAQmyG,GAAG/8G,IAAIA,EAAEw5G,GAAG12F,GAAGq2F,GAAGz0G,GAAEgpF,QAAQ5tF,EAAE8K,QAAQwuG,GAAG7wF,EAAEvoB,IAAIg+G,GAAGz1F,EAAEO,EAAEhpB,EAAEqD,GAAGrD,EAAE+M,MAAM0b,EAAEq9E,cAA2C,oBAA7B5lG,EAAE8iB,EAAEo8F,4BAAiDd,GAAG71F,EAAEzF,EAAE9iB,EAAE8oB,GAAGhpB,EAAE+M,MAAM0b,EAAEq9E,eAAe,oBAAoB9iF,EAAEo8F,0BAA0B,oBAAoBp/G,EAAEq/G,yBAAyB,oBAAoBr/G,EAAEs/G,2BAA2B,oBAAoBt/G,EAAEu/G,qBACvev8F,EAAEhjB,EAAE+M,MAAM,oBAAoB/M,EAAEu/G,oBAAoBv/G,EAAEu/G,qBAAqB,oBAAoBv/G,EAAEs/G,2BAA2Bt/G,EAAEs/G,4BAA4Bt8F,IAAIhjB,EAAE+M,OAAOwxG,GAAGroB,oBAAoBl2F,EAAEA,EAAE+M,MAAM,MAAMmxG,GAAGz1F,EAAEO,EAAEhpB,EAAEqD,GAAGrD,EAAE+M,MAAM0b,EAAEq9E,eAAe,oBAAoB9lG,EAAEw/G,oBAAoB/2F,EAAErlB,OAAO,EAAE,CAAC,IAAIq8G,GAAGlgH,MAAMC,QACvT,SAASkgH,GAAGj3F,EAAEzF,EAAEgG,GAAW,GAAG,QAAXP,EAAEO,EAAE6tE,MAAiB,oBAAoBpuE,GAAG,kBAAkBA,EAAE,CAAC,GAAGO,EAAEmuE,OAAO,CAAY,GAAXnuE,EAAEA,EAAEmuE,OAAY,CAAC,GAAG,IAAInuE,EAAEm0E,IAAI,MAAMnwF,MAAMpK,EAAE,MAAM,IAAIS,EAAE2lB,EAAEq7E,SAAS,CAAC,IAAIhhG,EAAE,MAAM2J,MAAMpK,EAAE,IAAI6lB,IAAI,IAAIzoB,EAAE,GAAGyoB,EAAE,OAAG,OAAOzF,GAAG,OAAOA,EAAE6zE,KAAK,oBAAoB7zE,EAAE6zE,KAAK7zE,EAAE6zE,IAAI8oB,aAAa3/G,EAASgjB,EAAE6zE,KAAI7zE,EAAE,SAASyF,GAAG,IAAIzF,EAAE3f,EAAE+yF,KAAKpzE,IAAIq7F,KAAKr7F,EAAE3f,EAAE+yF,KAAK,CAAC,GAAG,OAAO3tE,SAASzF,EAAEhjB,GAAGgjB,EAAEhjB,GAAGyoB,CAAC,EAAEzF,EAAE28F,WAAW3/G,EAASgjB,EAAC,CAAC,GAAG,kBAAkByF,EAAE,MAAMzb,MAAMpK,EAAE,MAAM,IAAIomB,EAAEmuE,OAAO,MAAMnqF,MAAMpK,EAAE,IAAI6lB,GAAI,CAAC,OAAOA,CAAC,CACje,SAASm3F,GAAGn3F,EAAEzF,GAAG,GAAG,aAAayF,EAAErd,KAAK,MAAM4B,MAAMpK,EAAE,GAAG,oBAAoBxB,OAAOmI,UAAU4I,SAAS5R,KAAKyiB,GAAG,qBAAqB5hB,OAAOmO,KAAKyT,GAAG9O,KAAK,MAAM,IAAI8O,GAAI,CACtK,SAAS68F,GAAGp3F,GAAG,SAASzF,EAAEA,EAAEgG,GAAG,GAAGP,EAAE,CAAC,IAAIplB,EAAE2f,EAAE88F,WAAW,OAAOz8G,GAAGA,EAAE08G,WAAW/2F,EAAEhG,EAAE88F,WAAW92F,GAAGhG,EAAEg9F,YAAYh9F,EAAE88F,WAAW92F,EAAEA,EAAE+2F,WAAW,KAAK/2F,EAAE5lB,MAAM,CAAC,CAAC,CAAC,SAAS4lB,EAAEA,EAAE3lB,GAAG,IAAIolB,EAAE,OAAO,KAAK,KAAK,OAAOplB,GAAG2f,EAAEgG,EAAE3lB,GAAGA,EAAEA,EAAE8iG,QAAQ,OAAO,IAAI,CAAC,SAAS9iG,EAAEolB,EAAEzF,GAAG,IAAIyF,EAAE,IAAIq+E,IAAI,OAAO9jF,GAAG,OAAOA,EAAErZ,IAAI8e,EAAEokD,IAAI7pD,EAAErZ,IAAIqZ,GAAGyF,EAAEokD,IAAI7pD,EAAE1M,MAAM0M,GAAGA,EAAEA,EAAEmjF,QAAQ,OAAO19E,CAAC,CAAC,SAASzoB,EAAEyoB,EAAEzF,GAAsC,OAAnCyF,EAAEw3F,GAAGx3F,EAAEzF,IAAK1M,MAAM,EAAEmS,EAAE09E,QAAQ,KAAY19E,CAAC,CAAC,SAASvoB,EAAE8iB,EAAEgG,EAAE3lB,GAAa,OAAV2f,EAAE1M,MAAMjT,EAAMolB,EAA4B,QAAjBplB,EAAE2f,EAAE2iF,YAA6BtiG,EAAEA,EAAEiT,OAAQ0S,GAAGhG,EAAE5f,MAAM,EACpf4lB,GAAG3lB,GAAE2f,EAAE5f,MAAM,EAAS4lB,GADoaA,CACna,CAAC,SAASlgB,EAAEka,GAAsC,OAAnCyF,GAAG,OAAOzF,EAAE2iF,YAAY3iF,EAAE5f,MAAM,GAAU4f,CAAC,CAAC,SAASxe,EAAEikB,EAAEzF,EAAEgG,EAAE3lB,GAAG,OAAG,OAAO2f,GAAG,IAAIA,EAAEm6E,MAAWn6E,EAAEk9F,GAAGl3F,EAAEP,EAAE2iC,KAAK/nD,IAAKuiG,OAAOn9E,EAAEzF,KAAEA,EAAEhjB,EAAEgjB,EAAEgG,IAAK48E,OAAOn9E,EAASzF,EAAC,CAAC,SAASiD,EAAEwC,EAAEzF,EAAEgG,EAAE3lB,GAAG,OAAG,OAAO2f,GAAGA,EAAEm9F,cAAcn3F,EAAE5d,OAAY/H,EAAErD,EAAEgjB,EAAEgG,EAAEvX,QAASolF,IAAI6oB,GAAGj3F,EAAEzF,EAAEgG,GAAG3lB,EAAEuiG,OAAOn9E,EAAEplB,KAAEA,EAAE+8G,GAAGp3F,EAAE5d,KAAK4d,EAAErf,IAAIqf,EAAEvX,MAAM,KAAKgX,EAAE2iC,KAAK/nD,IAAKwzF,IAAI6oB,GAAGj3F,EAAEzF,EAAEgG,GAAG3lB,EAAEuiG,OAAOn9E,EAASplB,EAAC,CAAC,SAAS0B,EAAE0jB,EAAEzF,EAAEgG,EAAE3lB,GAAG,OAAG,OAAO2f,GAAG,IAAIA,EAAEm6E,KAAKn6E,EAAEqhF,UAAU4D,gBAAgBj/E,EAAEi/E,eAAejlF,EAAEqhF,UAAUgc,iBAAiBr3F,EAAEq3F,iBAAsBr9F,EACrgBs9F,GAAGt3F,EAAEP,EAAE2iC,KAAK/nD,IAAKuiG,OAAOn9E,EAAEzF,KAAEA,EAAEhjB,EAAEgjB,EAAEgG,EAAEtgB,UAAU,KAAMk9F,OAAOn9E,EAASzF,EAAC,CAAC,SAASnjB,EAAE4oB,EAAEzF,EAAEgG,EAAE3lB,EAAEnD,GAAG,OAAG,OAAO8iB,GAAG,IAAIA,EAAEm6E,MAAWn6E,EAAEu9F,GAAGv3F,EAAEP,EAAE2iC,KAAK/nD,EAAEnD,IAAK0lG,OAAOn9E,EAAEzF,KAAEA,EAAEhjB,EAAEgjB,EAAEgG,IAAK48E,OAAOn9E,EAASzF,EAAC,CAAC,SAASiY,EAAExS,EAAEzF,EAAEgG,GAAG,GAAG,kBAAkBhG,GAAG,kBAAkBA,EAAE,OAAOA,EAAEk9F,GAAG,GAAGl9F,EAAEyF,EAAE2iC,KAAKpiC,IAAK48E,OAAOn9E,EAAEzF,EAAE,GAAG,kBAAkBA,GAAG,OAAOA,EAAE,CAAC,OAAOA,EAAEk0E,UAAU,KAAKvuE,EAAG,OAAOK,EAAEo3F,GAAGp9F,EAAE5X,KAAK4X,EAAErZ,IAAIqZ,EAAEvR,MAAM,KAAKgX,EAAE2iC,KAAKpiC,IAAK6tE,IAAI6oB,GAAGj3F,EAAE,KAAKzF,GAAGgG,EAAE48E,OAAOn9E,EAAEO,EAAE,KAAK2yE,EAAG,OAAO34E,EAAEs9F,GAAGt9F,EAAEyF,EAAE2iC,KAAKpiC,IAAK48E,OAAOn9E,EAAEzF,EAAE,GAAGy8F,GAAGz8F,IAAI45E,EAAG55E,GAAG,OAAOA,EAAEu9F,GAAGv9F,EACnfyF,EAAE2iC,KAAKpiC,EAAE,OAAQ48E,OAAOn9E,EAAEzF,EAAE48F,GAAGn3F,EAAEzF,EAAE,CAAC,OAAO,IAAI,CAAC,SAASrd,EAAE8iB,EAAEzF,EAAEgG,EAAE3lB,GAAG,IAAIrD,EAAE,OAAOgjB,EAAEA,EAAErZ,IAAI,KAAK,GAAG,kBAAkBqf,GAAG,kBAAkBA,EAAE,OAAO,OAAOhpB,EAAE,KAAKwE,EAAEikB,EAAEzF,EAAE,GAAGgG,EAAE3lB,GAAG,GAAG,kBAAkB2lB,GAAG,OAAOA,EAAE,CAAC,OAAOA,EAAEkuE,UAAU,KAAKvuE,EAAG,OAAOK,EAAErf,MAAM3J,EAAEgpB,EAAE5d,OAAOsL,EAAG7W,EAAE4oB,EAAEzF,EAAEgG,EAAEvX,MAAM/I,SAASrF,EAAErD,GAAGimB,EAAEwC,EAAEzF,EAAEgG,EAAE3lB,GAAG,KAAK,KAAKs4F,EAAG,OAAO3yE,EAAErf,MAAM3J,EAAE+E,EAAE0jB,EAAEzF,EAAEgG,EAAE3lB,GAAG,KAAK,GAAGo8G,GAAGz2F,IAAI4zE,EAAG5zE,GAAG,OAAO,OAAOhpB,EAAE,KAAKH,EAAE4oB,EAAEzF,EAAEgG,EAAE3lB,EAAE,MAAMu8G,GAAGn3F,EAAEO,EAAE,CAAC,OAAO,IAAI,CAAC,SAASqS,EAAE5S,EAAEzF,EAAEgG,EAAE3lB,EAAErD,GAAG,GAAG,kBAAkBqD,GAAG,kBAAkBA,EAAE,OAClemB,EAAEwe,EADueyF,EAAEA,EAAE5f,IAAImgB,IACtf,KAAW,GAAG3lB,EAAErD,GAAG,GAAG,kBAAkBqD,GAAG,OAAOA,EAAE,CAAC,OAAOA,EAAE6zF,UAAU,KAAKvuE,EAAG,OAAOF,EAAEA,EAAE5f,IAAI,OAAOxF,EAAEsG,IAAIqf,EAAE3lB,EAAEsG,MAAM,KAAKtG,EAAE+H,OAAOsL,EAAG7W,EAAEmjB,EAAEyF,EAAEplB,EAAEoO,MAAM/I,SAAS1I,EAAEqD,EAAEsG,KAAKsc,EAAEjD,EAAEyF,EAAEplB,EAAErD,GAAG,KAAK27F,EAAG,OAA2C52F,EAAEie,EAAtCyF,EAAEA,EAAE5f,IAAI,OAAOxF,EAAEsG,IAAIqf,EAAE3lB,EAAEsG,MAAM,KAAWtG,EAAErD,GAAG,GAAGy/G,GAAGp8G,IAAIu5F,EAAGv5F,GAAG,OAAwBxD,EAAEmjB,EAAnByF,EAAEA,EAAE5f,IAAImgB,IAAI,KAAW3lB,EAAErD,EAAE,MAAM4/G,GAAG58F,EAAE3f,EAAE,CAAC,OAAO,IAAI,CAAC,SAASw4B,EAAE77B,EAAE8I,EAAEtE,EAAEyhB,GAAG,IAAI,IAAIlhB,EAAE,KAAKI,EAAE,KAAK2nB,EAAEhkB,EAAE6pC,EAAE7pC,EAAE,EAAEma,EAAE,KAAK,OAAO6J,GAAG6lB,EAAEnuC,EAAE/E,OAAOkzC,IAAI,CAAC7lB,EAAExW,MAAMq8B,GAAG1vB,EAAE6J,EAAEA,EAAE,MAAM7J,EAAE6J,EAAEq5E,QAAQ,IAAItmG,EAAE8F,EAAE3F,EAAE8sB,EAAEtoB,EAAEmuC,GAAG1sB,GAAG,GAAG,OAAOpmB,EAAE,CAAC,OAAOitB,IAAIA,EAAE7J,GAAG,KAAK,CAACwF,GAAGqE,GAAG,OACjfjtB,EAAE8lG,WAAW3iF,EAAEhjB,EAAE8sB,GAAGhkB,EAAE5I,EAAEL,EAAEiJ,EAAE6pC,GAAG,OAAOxtC,EAAEJ,EAAElF,EAAEsF,EAAEghG,QAAQtmG,EAAEsF,EAAEtF,EAAEitB,EAAE7J,CAAC,CAAC,GAAG0vB,IAAInuC,EAAE/E,OAAO,OAAOupB,EAAEhpB,EAAE8sB,GAAG/nB,EAAE,GAAG,OAAO+nB,EAAE,CAAC,KAAK6lB,EAAEnuC,EAAE/E,OAAOkzC,IAAkB,QAAd7lB,EAAEmO,EAAEj7B,EAAEwE,EAAEmuC,GAAG1sB,MAAcnd,EAAE5I,EAAE4sB,EAAEhkB,EAAE6pC,GAAG,OAAOxtC,EAAEJ,EAAE+nB,EAAE3nB,EAAEghG,QAAQr5E,EAAE3nB,EAAE2nB,GAAG,OAAO/nB,CAAC,CAAC,IAAI+nB,EAAEzpB,EAAErD,EAAE8sB,GAAG6lB,EAAEnuC,EAAE/E,OAAOkzC,IAAsB,QAAlB1vB,EAAEoY,EAAEvO,EAAE9sB,EAAE2yC,EAAEnuC,EAAEmuC,GAAG1sB,MAAcwC,GAAG,OAAOxF,EAAE0iF,WAAW74E,EAAE06E,OAAO,OAAOvkF,EAAEtZ,IAAIgpC,EAAE1vB,EAAEtZ,KAAKb,EAAE5I,EAAE+iB,EAAEna,EAAE6pC,GAAG,OAAOxtC,EAAEJ,EAAEke,EAAE9d,EAAEghG,QAAQljF,EAAE9d,EAAE8d,GAA4C,OAAzCwF,GAAGqE,EAAE/gB,SAAQ,SAAS0c,GAAG,OAAOzF,EAAEhjB,EAAEyoB,EAAE,IAAU1jB,CAAC,CAAC,SAAS8/C,EAAE7kD,EAAE8I,EAAEtE,EAAEyhB,GAAG,IAAIlhB,EAAE63F,EAAGp4F,GAAG,GAAG,oBAAoBO,EAAE,MAAMiI,MAAMpK,EAAE,MAAkB,GAAG,OAAf4B,EAAEO,EAAExE,KAAKiE,IAC1e,MAAMwI,MAAMpK,EAAE,MAAM,IAAI,IAAIuC,EAAEJ,EAAE,KAAK+nB,EAAEhkB,EAAE6pC,EAAE7pC,EAAE,EAAEma,EAAE,KAAKpjB,EAAE2E,EAAE/D,OAAO,OAAOqsB,IAAIjtB,EAAEC,KAAK6yC,IAAI9yC,EAAE2E,EAAE/D,OAAO,CAACqsB,EAAExW,MAAMq8B,GAAG1vB,EAAE6J,EAAEA,EAAE,MAAM7J,EAAE6J,EAAEq5E,QAAQ,IAAIthD,EAAEl/C,EAAE3F,EAAE8sB,EAAEjtB,EAAEE,MAAMkmB,GAAG,GAAG,OAAO4+B,EAAE,CAAC,OAAO/3B,IAAIA,EAAE7J,GAAG,KAAK,CAACwF,GAAGqE,GAAG,OAAO+3B,EAAE8gD,WAAW3iF,EAAEhjB,EAAE8sB,GAAGhkB,EAAE5I,EAAE2kD,EAAE/7C,EAAE6pC,GAAG,OAAOxtC,EAAEJ,EAAE8/C,EAAE1/C,EAAEghG,QAAQthD,EAAE1/C,EAAE0/C,EAAE/3B,EAAE7J,CAAC,CAAC,GAAGpjB,EAAEC,KAAK,OAAOkpB,EAAEhpB,EAAE8sB,GAAG/nB,EAAE,GAAG,OAAO+nB,EAAE,CAAC,MAAMjtB,EAAEC,KAAK6yC,IAAI9yC,EAAE2E,EAAE/D,OAAwB,QAAjBZ,EAAEo7B,EAAEj7B,EAAEH,EAAEE,MAAMkmB,MAAcnd,EAAE5I,EAAEL,EAAEiJ,EAAE6pC,GAAG,OAAOxtC,EAAEJ,EAAElF,EAAEsF,EAAEghG,QAAQtmG,EAAEsF,EAAEtF,GAAG,OAAOkF,CAAC,CAAC,IAAI+nB,EAAEzpB,EAAErD,EAAE8sB,IAAIjtB,EAAEC,KAAK6yC,IAAI9yC,EAAE2E,EAAE/D,OAA4B,QAArBZ,EAAEw7B,EAAEvO,EAAE9sB,EAAE2yC,EAAE9yC,EAAEE,MAAMkmB,MAAcwC,GAAG,OAAO5oB,EAAE8lG,WAChf74E,EAAE06E,OAAO,OAAO3nG,EAAE8J,IAAIgpC,EAAE9yC,EAAE8J,KAAKb,EAAE5I,EAAEL,EAAEiJ,EAAE6pC,GAAG,OAAOxtC,EAAEJ,EAAElF,EAAEsF,EAAEghG,QAAQtmG,EAAEsF,EAAEtF,GAA4C,OAAzC4oB,GAAGqE,EAAE/gB,SAAQ,SAAS0c,GAAG,OAAOzF,EAAEhjB,EAAEyoB,EAAE,IAAU1jB,CAAC,CAAC,OAAO,SAAS0jB,EAAEplB,EAAEnD,EAAEsE,GAAG,IAAIyhB,EAAE,kBAAkB/lB,GAAG,OAAOA,GAAGA,EAAEkL,OAAOsL,GAAI,OAAOxW,EAAEyJ,IAAIsc,IAAI/lB,EAAEA,EAAEuR,MAAM/I,UAAU,IAAI3D,EAAE,kBAAkB7E,GAAG,OAAOA,EAAE,GAAG6E,EAAE,OAAO7E,EAAEg3F,UAAU,KAAKvuE,EAAGF,EAAE,CAAS,IAAR1jB,EAAE7E,EAAEyJ,IAAQsc,EAAE5iB,EAAE,OAAO4iB,GAAG,CAAC,GAAGA,EAAEtc,MAAM5E,EAAE,CAAC,GAAmB,IAAZkhB,EAAEk3E,KAAY,GAAGj9F,EAAEkL,OAAOsL,EAAG,CAACsS,EAAEP,EAAExC,EAAEkgF,UAAS9iG,EAAErD,EAAEimB,EAAE/lB,EAAEuR,MAAM/I,WAAYk9F,OAAOn9E,EAAEA,EAAEplB,EAAE,MAAMolB,CAAC,OAAe,GAAGxC,EAAEk6F,cAAcjgH,EAAEkL,KAAK,CAAC4d,EAAEP,EAAExC,EAAEkgF,UAC5e9iG,EAAErD,EAAEimB,EAAE/lB,EAAEuR,QAASolF,IAAI6oB,GAAGj3F,EAAExC,EAAE/lB,GAAGmD,EAAEuiG,OAAOn9E,EAAEA,EAAEplB,EAAE,MAAMolB,CAAC,CAAEO,EAAEP,EAAExC,GAAG,KAAK,CAAMjD,EAAEyF,EAAExC,GAAGA,EAAEA,EAAEkgF,OAAO,CAACjmG,EAAEkL,OAAOsL,IAAIrT,EAAEk9G,GAAGrgH,EAAEuR,MAAM/I,SAAS+f,EAAE2iC,KAAK5mD,EAAEtE,EAAEyJ,MAAOi8F,OAAOn9E,EAAEA,EAAEplB,KAAImB,EAAE47G,GAAGlgH,EAAEkL,KAAKlL,EAAEyJ,IAAIzJ,EAAEuR,MAAM,KAAKgX,EAAE2iC,KAAK5mD,IAAKqyF,IAAI6oB,GAAGj3F,EAAEplB,EAAEnD,GAAGsE,EAAEohG,OAAOn9E,EAAEA,EAAEjkB,EAAE,CAAC,OAAOsE,EAAE2f,GAAG,KAAKkzE,EAAGlzE,EAAE,CAAC,IAAIxC,EAAE/lB,EAAEyJ,IAAI,OAAOtG,GAAG,CAAC,GAAGA,EAAEsG,MAAMsc,EAAC,CAAC,GAAG,IAAI5iB,EAAE85F,KAAK95F,EAAEghG,UAAU4D,gBAAgB/nG,EAAE+nG,eAAe5kG,EAAEghG,UAAUgc,iBAAiBngH,EAAEmgH,eAAe,CAACr3F,EAAEP,EAAEplB,EAAE8iG,UAAS9iG,EAAErD,EAAEqD,EAAEnD,EAAEwI,UAAU,KAAMk9F,OAAOn9E,EAAEA,EAAEplB,EAAE,MAAMolB,CAAC,CAAMO,EAAEP,EAAEplB,GAAG,KAAM,CAAK2f,EAAEyF,EAAEplB,GAAGA,EAAEA,EAAE8iG,OAAO,EAAC9iG,EACpfi9G,GAAGpgH,EAAEuoB,EAAE2iC,KAAK5mD,IAAKohG,OAAOn9E,EAAEA,EAAEplB,CAAC,CAAC,OAAOyF,EAAE2f,GAAG,GAAG,kBAAkBvoB,GAAG,kBAAkBA,EAAE,OAAOA,EAAE,GAAGA,EAAE,OAAOmD,GAAG,IAAIA,EAAE85F,KAAKn0E,EAAEP,EAAEplB,EAAE8iG,UAAS9iG,EAAErD,EAAEqD,EAAEnD,IAAK0lG,OAAOn9E,EAAEA,EAAEplB,IAAI2lB,EAAEP,EAAEplB,IAAGA,EAAE68G,GAAGhgH,EAAEuoB,EAAE2iC,KAAK5mD,IAAKohG,OAAOn9E,EAAEA,EAAEplB,GAAGyF,EAAE2f,GAAG,GAAGg3F,GAAGv/G,GAAG,OAAO27B,EAAEpT,EAAEplB,EAAEnD,EAAEsE,GAAG,GAAGo4F,EAAG18F,GAAG,OAAO2kD,EAAEp8B,EAAEplB,EAAEnD,EAAEsE,GAAc,GAAXO,GAAG66G,GAAGn3F,EAAEvoB,GAAM,qBAAqBA,IAAI+lB,EAAE,OAAOwC,EAAE00E,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,MAAMnwF,MAAMpK,EAAE,IAAIw6F,EAAG30E,EAAErd,OAAO,cAAe,OAAO4d,EAAEP,EAAEplB,EAAE,CAAC,CAAC,IAAIm9G,GAAGX,IAAG,GAAIY,GAAGZ,IAAG,GAAIa,GAAG,CAAC,EAAEC,GAAGxH,GAAGuH,IAAIE,GAAGzH,GAAGuH,IAAI34D,GAAGoxD,GAAGuH,IACtd,SAASG,GAAGp4F,GAAG,GAAGA,IAAIi4F,GAAG,MAAM1zG,MAAMpK,EAAE,MAAM,OAAO6lB,CAAC,CAAC,SAASq4F,GAAGr4F,EAAEzF,GAAyC,OAAtC4zE,GAAE7uC,GAAG/kC,GAAG4zE,GAAEgqB,GAAGn4F,GAAGmuE,GAAE+pB,GAAGD,IAAIj4F,EAAEzF,EAAE7N,UAAmB,KAAK,EAAE,KAAK,GAAG6N,GAAGA,EAAEA,EAAE+9F,iBAAiB/9F,EAAE68E,aAAaF,GAAG,KAAK,IAAI,MAAM,QAAkE38E,EAAE28E,GAArC38E,GAAvByF,EAAE,IAAIA,EAAEzF,EAAEoiC,WAAWpiC,GAAM68E,cAAc,KAAKp3E,EAAEA,EAAEu4F,SAAkBt8G,GAAEi8G,IAAI/pB,GAAE+pB,GAAG39F,EAAE,CAAC,SAASu/C,KAAK79D,GAAEi8G,IAAIj8G,GAAEk8G,IAAIl8G,GAAEqjD,GAAG,CAAC,SAASk5D,GAAGx4F,GAAGo4F,GAAG94D,GAAG6lC,SAAS,IAAI5qE,EAAE69F,GAAGF,GAAG/yB,SAAa5kE,EAAE22E,GAAG38E,EAAEyF,EAAErd,MAAM4X,IAAIgG,IAAI4tE,GAAEgqB,GAAGn4F,GAAGmuE,GAAE+pB,GAAG33F,GAAG,CAAC,SAASvkB,GAAGgkB,GAAGm4F,GAAGhzB,UAAUnlE,IAAI/jB,GAAEi8G,IAAIj8G,GAAEk8G,IAAI,CAAC,IAAIrpB,GAAE4hB,GAAG,GAC9c,SAAS+H,GAAGz4F,GAAG,IAAI,IAAIzF,EAAEyF,EAAE,OAAOzF,GAAG,CAAC,GAAG,KAAKA,EAAEm6E,IAAI,CAAC,IAAIn0E,EAAEhG,EAAE8iF,cAAc,GAAG,OAAO98E,IAAmB,QAAfA,EAAEA,EAAE+8E,aAAqB,OAAO/8E,EAAEjS,MAAM,OAAOiS,EAAEjS,MAAM,OAAOiM,CAAC,MAAM,GAAG,KAAKA,EAAEm6E,UAAK,IAASn6E,EAAEm+F,cAAcC,aAAa,GAAG,KAAa,GAARp+F,EAAE5f,OAAU,OAAO4f,OAAO,GAAG,OAAOA,EAAEkjF,MAAM,CAACljF,EAAEkjF,MAAMN,OAAO5iF,EAAEA,EAAEA,EAAEkjF,MAAM,QAAQ,CAAC,GAAGljF,IAAIyF,EAAE,MAAM,KAAK,OAAOzF,EAAEmjF,SAAS,CAAC,GAAG,OAAOnjF,EAAE4iF,QAAQ5iF,EAAE4iF,SAASn9E,EAAE,OAAO,KAAKzF,EAAEA,EAAE4iF,MAAM,CAAC5iF,EAAEmjF,QAAQP,OAAO5iF,EAAE4iF,OAAO5iF,EAAEA,EAAEmjF,OAAO,CAAC,OAAO,IAAI,CAAC,IAAIkb,GAAG,KAAKC,GAAG,KAAK3jD,IAAG,EACpd,SAAS4jD,GAAG94F,EAAEzF,GAAG,IAAIgG,EAAEw4F,GAAG,EAAE,KAAK,KAAK,GAAGx4F,EAAEm3F,YAAY,UAAUn3F,EAAE5d,KAAK,UAAU4d,EAAEq7E,UAAUrhF,EAAEgG,EAAE48E,OAAOn9E,EAAEO,EAAE5lB,MAAM,EAAE,OAAOqlB,EAAEq3F,YAAYr3F,EAAEq3F,WAAWC,WAAW/2F,EAAEP,EAAEq3F,WAAW92F,GAAGP,EAAEu3F,YAAYv3F,EAAEq3F,WAAW92F,CAAC,CAAC,SAASy4F,GAAGh5F,EAAEzF,GAAG,OAAOyF,EAAE00E,KAAK,KAAK,EAAE,IAAIn0E,EAAEP,EAAErd,KAAyE,OAAO,QAA3E4X,EAAE,IAAIA,EAAE7N,UAAU6T,EAAEm3B,gBAAgBn9B,EAAEu6E,SAASp9C,cAAc,KAAKn9B,KAAmByF,EAAE47E,UAAUrhF,GAAE,GAAO,KAAK,EAAE,OAAoD,QAA7CA,EAAE,KAAKyF,EAAEi5F,cAAc,IAAI1+F,EAAE7N,SAAS,KAAK6N,KAAYyF,EAAE47E,UAAUrhF,GAAE,GAAwB,QAAQ,OAAM,EAAG,CAC1e,SAAS2+F,GAAGl5F,GAAG,GAAGk1C,GAAG,CAAC,IAAI36C,EAAEs+F,GAAG,GAAGt+F,EAAE,CAAC,IAAIgG,EAAEhG,EAAE,IAAIy+F,GAAGh5F,EAAEzF,GAAG,CAAqB,KAApBA,EAAEy1F,GAAGzvF,EAAEmsF,gBAAqBsM,GAAGh5F,EAAEzF,GAAuC,OAAnCyF,EAAErlB,OAAe,KAATqlB,EAAErlB,MAAY,EAAEu6D,IAAG,OAAG0jD,GAAG54F,GAAS84F,GAAGF,GAAGr4F,EAAE,CAACq4F,GAAG54F,EAAE64F,GAAG7I,GAAGz1F,EAAE+8E,WAAW,MAAMt3E,EAAErlB,OAAe,KAATqlB,EAAErlB,MAAY,EAAEu6D,IAAG,EAAG0jD,GAAG54F,CAAC,CAAC,CAAC,SAASm5F,GAAGn5F,GAAG,IAAIA,EAAEA,EAAEm9E,OAAO,OAAOn9E,GAAG,IAAIA,EAAE00E,KAAK,IAAI10E,EAAE00E,KAAK,KAAK10E,EAAE00E,KAAK10E,EAAEA,EAAEm9E,OAAOyb,GAAG54F,CAAC,CAC7S,SAASo5F,GAAGp5F,GAAG,GAAGA,IAAI44F,GAAG,OAAM,EAAG,IAAI1jD,GAAG,OAAOikD,GAAGn5F,GAAGk1C,IAAG,GAAG,EAAG,IAAI36C,EAAEyF,EAAErd,KAAK,GAAG,IAAIqd,EAAE00E,KAAK,SAASn6E,GAAG,SAASA,IAAIo1F,GAAGp1F,EAAEyF,EAAE04F,eAAe,IAAIn+F,EAAEs+F,GAAGt+F,GAAGu+F,GAAG94F,EAAEzF,GAAGA,EAAEy1F,GAAGz1F,EAAEmyF,aAAmB,GAANyM,GAAGn5F,GAAM,KAAKA,EAAE00E,IAAI,CAAgD,KAA7B10E,EAAE,QAApBA,EAAEA,EAAEq9E,eAAyBr9E,EAAEs9E,WAAW,MAAW,MAAM/4F,MAAMpK,EAAE,MAAM6lB,EAAE,CAAiB,IAAhBA,EAAEA,EAAE0sF,YAAgBnyF,EAAE,EAAEyF,GAAG,CAAC,GAAG,IAAIA,EAAEtT,SAAS,CAAC,IAAI6T,EAAEP,EAAE1R,KAAK,GAAG,OAAOiS,EAAE,CAAC,GAAG,IAAIhG,EAAE,CAACs+F,GAAG7I,GAAGhwF,EAAE0sF,aAAa,MAAM1sF,CAAC,CAACzF,GAAG,KAAK,MAAMgG,GAAG,OAAOA,GAAG,OAAOA,GAAGhG,GAAG,CAACyF,EAAEA,EAAE0sF,WAAW,CAACmM,GAAG,IAAI,CAAC,MAAMA,GAAGD,GAAG5I,GAAGhwF,EAAE47E,UAAU8Q,aAAa,KAAK,OAAM,CAAE,CACxf,SAAS/vE,KAAKk8E,GAAGD,GAAG,KAAK1jD,IAAG,CAAE,CAAC,IAAImkD,GAAG,GAAG,SAASC,KAAK,IAAI,IAAIt5F,EAAE,EAAEA,EAAEq5F,GAAGriH,OAAOgpB,IAAIq5F,GAAGr5F,GAAGu5F,8BAA8B,KAAKF,GAAGriH,OAAO,CAAC,CAAC,IAAIwiH,GAAGvmB,EAAG9D,uBAAuBsqB,GAAGxmB,EAAG7D,wBAAwBsqB,GAAG,EAAExqB,GAAE,KAAK/xF,GAAE,KAAKN,GAAE,KAAK88G,IAAG,EAAGC,IAAG,EAAG,SAASC,KAAK,MAAMt1G,MAAMpK,EAAE,KAAM,CAAC,SAAS2/G,GAAG95F,EAAEzF,GAAG,GAAG,OAAOA,EAAE,OAAM,EAAG,IAAI,IAAIgG,EAAE,EAAEA,EAAEhG,EAAEvjB,QAAQupB,EAAEP,EAAEhpB,OAAOupB,IAAI,IAAI8rF,GAAGrsF,EAAEO,GAAGhG,EAAEgG,IAAI,OAAM,EAAG,OAAM,CAAE,CAChY,SAASw5F,GAAG/5F,EAAEzF,EAAEgG,EAAE3lB,EAAErD,EAAEE,GAAyH,GAAtHiiH,GAAGjiH,EAAEy3F,GAAE30E,EAAEA,EAAE8iF,cAAc,KAAK9iF,EAAEs6F,YAAY,KAAKt6F,EAAE+5F,MAAM,EAAEkF,GAAGr0B,QAAQ,OAAOnlE,GAAG,OAAOA,EAAEq9E,cAAc2c,GAAGC,GAAGj6F,EAAEO,EAAE3lB,EAAErD,GAAMqiH,GAAG,CAACniH,EAAE,EAAE,EAAE,CAAO,GAANmiH,IAAG,IAAQ,GAAGniH,GAAG,MAAM8M,MAAMpK,EAAE,MAAM1C,GAAG,EAAEoF,GAAEM,GAAE,KAAKod,EAAEs6F,YAAY,KAAK2E,GAAGr0B,QAAQ+0B,GAAGl6F,EAAEO,EAAE3lB,EAAErD,EAAE,OAAOqiH,GAAG,CAA+D,GAA9DJ,GAAGr0B,QAAQg1B,GAAG5/F,EAAE,OAAOpd,IAAG,OAAOA,GAAEnF,KAAK0hH,GAAG,EAAE78G,GAAEM,GAAE+xF,GAAE,KAAKyqB,IAAG,EAAMp/F,EAAE,MAAMhW,MAAMpK,EAAE,MAAM,OAAO6lB,CAAC,CAAC,SAASo6F,KAAK,IAAIp6F,EAAE,CAACq9E,cAAc,KAAKyX,UAAU,KAAKuF,UAAU,KAAKC,MAAM,KAAKtiH,KAAK,MAA8C,OAAxC,OAAO6E,GAAEqyF,GAAEmO,cAAcxgG,GAAEmjB,EAAEnjB,GAAEA,GAAE7E,KAAKgoB,EAASnjB,EAAC,CAChf,SAAS09G,KAAK,GAAG,OAAOp9G,GAAE,CAAC,IAAI6iB,EAAEkvE,GAAEgO,UAAUl9E,EAAE,OAAOA,EAAEA,EAAEq9E,cAAc,IAAI,MAAMr9E,EAAE7iB,GAAEnF,KAAK,IAAIuiB,EAAE,OAAO1d,GAAEqyF,GAAEmO,cAAcxgG,GAAE7E,KAAK,GAAG,OAAOuiB,EAAE1d,GAAE0d,EAAEpd,GAAE6iB,MAAM,CAAC,GAAG,OAAOA,EAAE,MAAMzb,MAAMpK,EAAE,MAAU6lB,EAAE,CAACq9E,eAAPlgG,GAAE6iB,GAAqBq9E,cAAcyX,UAAU33G,GAAE23G,UAAUuF,UAAUl9G,GAAEk9G,UAAUC,MAAMn9G,GAAEm9G,MAAMtiH,KAAK,MAAM,OAAO6E,GAAEqyF,GAAEmO,cAAcxgG,GAAEmjB,EAAEnjB,GAAEA,GAAE7E,KAAKgoB,CAAC,CAAC,OAAOnjB,EAAC,CAAC,SAAS29G,GAAGx6F,EAAEzF,GAAG,MAAM,oBAAoBA,EAAEA,EAAEyF,GAAGzF,CAAC,CACxY,SAASkgG,GAAGz6F,GAAG,IAAIzF,EAAEggG,KAAKh6F,EAAEhG,EAAE+/F,MAAM,GAAG,OAAO/5F,EAAE,MAAMhc,MAAMpK,EAAE,MAAMomB,EAAEm6F,oBAAoB16F,EAAE,IAAIplB,EAAEuC,GAAE5F,EAAEqD,EAAEy/G,UAAU5iH,EAAE8oB,EAAE20F,QAAQ,GAAG,OAAOz9G,EAAE,CAAC,GAAG,OAAOF,EAAE,CAAC,IAAI8I,EAAE9I,EAAES,KAAKT,EAAES,KAAKP,EAAEO,KAAKP,EAAEO,KAAKqI,CAAC,CAACzF,EAAEy/G,UAAU9iH,EAAEE,EAAE8oB,EAAE20F,QAAQ,IAAI,CAAC,GAAG,OAAO39G,EAAE,CAACA,EAAEA,EAAES,KAAK4C,EAAEA,EAAEk6G,UAAU,IAAI/4G,EAAEsE,EAAE5I,EAAE,KAAK+lB,EAAEjmB,EAAE,EAAE,CAAC,IAAI+E,EAAEkhB,EAAE83F,KAAK,IAAIoE,GAAGp9G,KAAKA,EAAE,OAAOP,IAAIA,EAAEA,EAAE/D,KAAK,CAACs9G,KAAK,EAAEqF,OAAOn9F,EAAEm9F,OAAOC,aAAap9F,EAAEo9F,aAAaC,WAAWr9F,EAAEq9F,WAAW7iH,KAAK,OAAO4C,EAAE4iB,EAAEo9F,eAAe56F,EAAExC,EAAEq9F,WAAW76F,EAAEplB,EAAE4iB,EAAEm9F,YAAY,CAAC,IAAIvjH,EAAE,CAACk+G,KAAKh5G,EAAEq+G,OAAOn9F,EAAEm9F,OAAOC,aAAap9F,EAAEo9F,aAC9fC,WAAWr9F,EAAEq9F,WAAW7iH,KAAK,MAAM,OAAO+D,GAAGsE,EAAEtE,EAAE3E,EAAEK,EAAEmD,GAAGmB,EAAEA,EAAE/D,KAAKZ,EAAE83F,GAAEolB,OAAOh4G,EAAEo5G,IAAIp5G,CAAC,CAACkhB,EAAEA,EAAExlB,IAAI,OAAO,OAAOwlB,GAAGA,IAAIjmB,GAAG,OAAOwE,EAAEtE,EAAEmD,EAAEmB,EAAE/D,KAAKqI,EAAEgsG,GAAGzxG,EAAE2f,EAAE8iF,iBAAiBkX,IAAG,GAAIh6F,EAAE8iF,cAAcziG,EAAE2f,EAAEu6F,UAAUr9G,EAAE8iB,EAAE8/F,UAAUt+G,EAAEwkB,EAAEu6F,kBAAkBlgH,CAAC,CAAC,MAAM,CAAC2f,EAAE8iF,cAAc98E,EAAEw6F,SAAS,CAC/Q,SAASC,GAAGh7F,GAAG,IAAIzF,EAAEggG,KAAKh6F,EAAEhG,EAAE+/F,MAAM,GAAG,OAAO/5F,EAAE,MAAMhc,MAAMpK,EAAE,MAAMomB,EAAEm6F,oBAAoB16F,EAAE,IAAIplB,EAAE2lB,EAAEw6F,SAASxjH,EAAEgpB,EAAE20F,QAAQz9G,EAAE8iB,EAAE8iF,cAAc,GAAG,OAAO9lG,EAAE,CAACgpB,EAAE20F,QAAQ,KAAK,IAAI70G,EAAE9I,EAAEA,EAAES,KAAK,GAAGP,EAAEuoB,EAAEvoB,EAAE4I,EAAEs6G,QAAQt6G,EAAEA,EAAErI,WAAWqI,IAAI9I,GAAG80G,GAAG50G,EAAE8iB,EAAE8iF,iBAAiBkX,IAAG,GAAIh6F,EAAE8iF,cAAc5lG,EAAE,OAAO8iB,EAAE8/F,YAAY9/F,EAAEu6F,UAAUr9G,GAAG8oB,EAAEu6F,kBAAkBrjH,CAAC,CAAC,MAAM,CAACA,EAAEmD,EAAE,CACrV,SAASqgH,GAAGj7F,EAAEzF,EAAEgG,GAAG,IAAI3lB,EAAE2f,EAAE2gG,YAAYtgH,EAAEA,EAAE2f,EAAE4gG,SAAS,IAAI5jH,EAAEgjB,EAAEg/F,8BAAyI,GAAxG,OAAOhiH,EAAEyoB,EAAEzoB,IAAIqD,GAAUolB,EAAEA,EAAEo7F,kBAAiBp7F,GAAG05F,GAAG15F,KAAKA,KAAEzF,EAAEg/F,8BAA8B3+G,EAAEy+G,GAAGzgH,KAAK2hB,KAAMyF,EAAE,OAAOO,EAAEhG,EAAE4gG,SAAoB,MAAX9B,GAAGzgH,KAAK2hB,GAAShW,MAAMpK,EAAE,KAAM,CAC/P,SAASkhH,GAAGr7F,EAAEzF,EAAEgG,EAAE3lB,GAAG,IAAIrD,EAAE+jH,GAAE,GAAG,OAAO/jH,EAAE,MAAMgN,MAAMpK,EAAE,MAAM,IAAI1C,EAAE8iB,EAAE2gG,YAAY76G,EAAE5I,EAAE8iB,EAAE4gG,SAASp/G,EAAEy9G,GAAGr0B,QAAQ3nE,EAAEzhB,EAAE01F,UAAS,WAAW,OAAOwpB,GAAG1jH,EAAEgjB,EAAEgG,EAAE,IAAGjkB,EAAEkhB,EAAE,GAAGpmB,EAAEomB,EAAE,GAAGA,EAAE3gB,GAAE,IAAI21B,EAAExS,EAAEq9E,cAAcngG,EAAEs1B,EAAEm7D,KAAK/6D,EAAE11B,EAAEq+G,YAAYnoF,EAAEZ,EAAE1mB,OAAO0mB,EAAEA,EAAEgpF,UAAU,IAAIp/D,EAAE8yC,GACuO,OADrOlvE,EAAEq9E,cAAc,CAAC1P,KAAKzwF,EAAE4O,OAAOyO,EAAEihG,UAAU5gH,GAAGmB,EAAEo1F,WAAU,WAAWj0F,EAAEq+G,YAAYh7F,EAAErjB,EAAEu+G,YAAYn/G,EAAE,IAAI0jB,EAAEvoB,EAAE8iB,EAAE4gG,SAAS,IAAI9O,GAAGhsG,EAAE2f,GAAG,CAACA,EAAEO,EAAEhG,EAAE4gG,SAAS9O,GAAGj1G,EAAE4oB,KAAK1jB,EAAE0jB,GAAGA,EAAEi2F,GAAG75D,GAAG7kD,EAAE6jH,kBAAkBp7F,EAAEzoB,EAAE+pG,cAActhF,EAAEzoB,EAAE6jH,iBAAiB7jH,EAAEoqG,gBAAgB3hF,EAAE,IAAI,IAAIplB,EAC5frD,EAAEqqG,cAAc7lG,EAAEikB,EAAE,EAAEjkB,GAAG,CAAC,IAAIyhB,EAAE,GAAGkkF,GAAG3lG,GAAGse,EAAE,GAAGmD,EAAE5iB,EAAE4iB,IAAIwC,EAAEjkB,IAAIse,CAAC,CAAC,CAAC,GAAE,CAACkG,EAAEhG,EAAE3f,IAAImB,EAAEo1F,WAAU,WAAW,OAAOv2F,EAAE2f,EAAE4gG,SAAQ,WAAW,IAAIn7F,EAAE9iB,EAAEq+G,YAAYh7F,EAAErjB,EAAEu+G,YAAY,IAAIl7F,EAAEP,EAAEzF,EAAE4gG,UAAU,IAAIvgH,EAAEq7G,GAAG75D,GAAG7kD,EAAE6jH,kBAAkBxgH,EAAErD,EAAE+pG,YAAY,CAAC,MAAM9mF,GAAG+F,GAAE,WAAW,MAAM/F,CAAE,GAAE,CAAC,GAAE,GAAE,CAACD,EAAE3f,IAAIyxG,GAAGz5E,EAAErS,IAAI8rF,GAAGj5E,EAAE7Y,IAAI8xF,GAAG75E,EAAE53B,MAAKolB,EAAE,CAACk1F,QAAQ,KAAK6F,SAAS,KAAKL,oBAAoBF,GAAGM,kBAAkB1jH,IAAK2jH,SAASz+G,EAAEo/G,GAAGvzG,KAAK,KAAK+mF,GAAElvE,GAAGxC,EAAE88F,MAAMt6F,EAAExC,EAAE68F,UAAU,KAAKjjH,EAAE6jH,GAAG1jH,EAAEgjB,EAAEgG,GAAG/C,EAAE6/E,cAAc7/E,EAAEs3F,UAAU19G,GAAUA,CAAC,CACve,SAASukH,GAAG37F,EAAEzF,EAAEgG,GAAc,OAAO86F,GAAZd,KAAiBv6F,EAAEzF,EAAEgG,EAAE,CAAC,SAASq7F,GAAG57F,GAAG,IAAIzF,EAAE6/F,KAAmL,MAA9K,oBAAoBp6F,IAAIA,EAAEA,KAAKzF,EAAE8iF,cAAc9iF,EAAEu6F,UAAU90F,EAAoFA,GAAlFA,EAAEzF,EAAE+/F,MAAM,CAACpF,QAAQ,KAAK6F,SAAS,KAAKL,oBAAoBF,GAAGM,kBAAkB96F,IAAO+6F,SAASW,GAAGvzG,KAAK,KAAK+mF,GAAElvE,GAAS,CAACzF,EAAE8iF,cAAcr9E,EAAE,CAClR,SAAS67F,GAAG77F,EAAEzF,EAAEgG,EAAE3lB,GAAkO,OAA/NolB,EAAE,CAAC00E,IAAI10E,EAAE5d,OAAOmY,EAAEmL,QAAQnF,EAAEu7F,KAAKlhH,EAAE5C,KAAK,MAAsB,QAAhBuiB,EAAE20E,GAAE2lB,cAAsBt6F,EAAE,CAAC88F,WAAW,MAAMnoB,GAAE2lB,YAAYt6F,EAAEA,EAAE88F,WAAWr3F,EAAEhoB,KAAKgoB,GAAmB,QAAfO,EAAEhG,EAAE88F,YAAoB98F,EAAE88F,WAAWr3F,EAAEhoB,KAAKgoB,GAAGplB,EAAE2lB,EAAEvoB,KAAKuoB,EAAEvoB,KAAKgoB,EAAEA,EAAEhoB,KAAK4C,EAAE2f,EAAE88F,WAAWr3F,GAAWA,CAAC,CAAC,SAAS+7F,GAAG/7F,GAA4B,OAAdA,EAAE,CAACmlE,QAAQnlE,GAAhBo6F,KAA4B/c,cAAcr9E,CAAC,CAAC,SAASg8F,KAAK,OAAOzB,KAAKld,aAAa,CAAC,SAAS4e,GAAGj8F,EAAEzF,EAAEgG,EAAE3lB,GAAG,IAAIrD,EAAE6iH,KAAKlrB,GAAEv0F,OAAOqlB,EAAEzoB,EAAE8lG,cAAcwe,GAAG,EAAEthG,EAAEgG,OAAE,OAAO,IAAS3lB,EAAE,KAAKA,EAAE,CACnc,SAASshH,GAAGl8F,EAAEzF,EAAEgG,EAAE3lB,GAAG,IAAIrD,EAAEgjH,KAAK3/G,OAAE,IAASA,EAAE,KAAKA,EAAE,IAAInD,OAAE,EAAO,GAAG,OAAO0F,GAAE,CAAC,IAAIkD,EAAElD,GAAEkgG,cAA0B,GAAZ5lG,EAAE4I,EAAEqlB,QAAW,OAAO9qB,GAAGk/G,GAAGl/G,EAAEyF,EAAEy7G,MAAmB,YAAZD,GAAGthG,EAAEgG,EAAE9oB,EAAEmD,EAAU,CAACs0F,GAAEv0F,OAAOqlB,EAAEzoB,EAAE8lG,cAAcwe,GAAG,EAAEthG,EAAEgG,EAAE9oB,EAAEmD,EAAE,CAAC,SAASuhH,GAAGn8F,EAAEzF,GAAG,OAAO0hG,GAAG,IAAI,EAAEj8F,EAAEzF,EAAE,CAAC,SAAS6hG,GAAGp8F,EAAEzF,GAAG,OAAO2hG,GAAG,IAAI,EAAEl8F,EAAEzF,EAAE,CAAC,SAAS8hG,GAAGr8F,EAAEzF,GAAG,OAAO2hG,GAAG,EAAE,EAAEl8F,EAAEzF,EAAE,CAAC,SAAS+hG,GAAGt8F,EAAEzF,GAAG,MAAG,oBAAoBA,GAASyF,EAAEA,IAAIzF,EAAEyF,GAAG,WAAWzF,EAAE,KAAK,GAAK,OAAOA,QAAG,IAASA,GAASyF,EAAEA,IAAIzF,EAAE4qE,QAAQnlE,EAAE,WAAWzF,EAAE4qE,QAAQ,IAAI,QAA1E,CAA2E,CACnd,SAASo3B,GAAGv8F,EAAEzF,EAAEgG,GAA6C,OAA1CA,EAAE,OAAOA,QAAG,IAASA,EAAEA,EAAE6Q,OAAO,CAACpR,IAAI,KAAYk8F,GAAG,EAAE,EAAEI,GAAGn0G,KAAK,KAAKoS,EAAEyF,GAAGO,EAAE,CAAC,SAASi8F,KAAK,CAAC,SAASC,GAAGz8F,EAAEzF,GAAG,IAAIgG,EAAEg6F,KAAKhgG,OAAE,IAASA,EAAE,KAAKA,EAAE,IAAI3f,EAAE2lB,EAAE88E,cAAc,OAAG,OAAOziG,GAAG,OAAO2f,GAAGu/F,GAAGv/F,EAAE3f,EAAE,IAAWA,EAAE,IAAG2lB,EAAE88E,cAAc,CAACr9E,EAAEzF,GAAUyF,EAAC,CAAC,SAAS08F,GAAG18F,EAAEzF,GAAG,IAAIgG,EAAEg6F,KAAKhgG,OAAE,IAASA,EAAE,KAAKA,EAAE,IAAI3f,EAAE2lB,EAAE88E,cAAc,OAAG,OAAOziG,GAAG,OAAO2f,GAAGu/F,GAAGv/F,EAAE3f,EAAE,IAAWA,EAAE,IAAGolB,EAAEA,IAAIO,EAAE88E,cAAc,CAACr9E,EAAEzF,GAAUyF,EAAC,CAC1Z,SAAS28F,GAAG38F,EAAEzF,GAAG,IAAIgG,EAAE8yF,KAAKnmD,GAAG,GAAG3sC,EAAE,GAAGA,GAAE,WAAWP,GAAE,EAAG,IAAGktC,GAAG,GAAG3sC,EAAE,GAAGA,GAAE,WAAW,IAAIA,EAAEk5F,GAAGpqB,WAAWoqB,GAAGpqB,WAAW,EAAE,IAAIrvE,GAAE,GAAIzF,GAAG,CAAC,QAAQk/F,GAAGpqB,WAAW9uE,CAAC,CAAC,GAAE,CAChK,SAASm7F,GAAG17F,EAAEzF,EAAEgG,GAAG,IAAI3lB,EAAEo7G,KAAKz+G,EAAE0+G,GAAGj2F,GAAGvoB,EAAE,CAAC69G,KAAK/9G,EAAEojH,OAAOp6F,EAAEq6F,aAAa,KAAKC,WAAW,KAAK7iH,KAAK,MAAMqI,EAAEka,EAAE26F,QAA6E,GAArE,OAAO70G,EAAE5I,EAAEO,KAAKP,GAAGA,EAAEO,KAAKqI,EAAErI,KAAKqI,EAAErI,KAAKP,GAAG8iB,EAAE26F,QAAQz9G,EAAE4I,EAAE2f,EAAEk9E,UAAal9E,IAAIkvE,IAAG,OAAO7uF,GAAGA,IAAI6uF,GAAE0qB,GAAGD,IAAG,MAAO,CAAC,GAAG,IAAI35F,EAAEs0F,QAAQ,OAAOj0G,GAAG,IAAIA,EAAEi0G,QAAiC,QAAxBj0G,EAAEka,EAAEmgG,qBAA8B,IAAI,IAAI3+G,EAAEwe,EAAEugG,kBAAkBt9F,EAAEnd,EAAEtE,EAAEwkB,GAAmC,GAAhC9oB,EAAEmjH,aAAav6G,EAAE5I,EAAEojH,WAAWr9F,EAAK6uF,GAAG7uF,EAAEzhB,GAAG,MAAM,CAAC,MAAMO,GAAG,CAAU45G,GAAGl2F,EAAEzoB,EAAEqD,EAAE,CAAC,CACja,IAAIu/G,GAAG,CAACyC,YAAYpI,GAAGxjB,YAAY6oB,GAAG5oB,WAAW4oB,GAAG1oB,UAAU0oB,GAAGzoB,oBAAoByoB,GAAGxoB,gBAAgBwoB,GAAGvoB,QAAQuoB,GAAGtoB,WAAWsoB,GAAGroB,OAAOqoB,GAAGpoB,SAASooB,GAAG3oB,cAAc2oB,GAAGgD,iBAAiBhD,GAAGiD,cAAcjD,GAAGkD,iBAAiBlD,GAAGmD,oBAAoBnD,GAAGoD,0BAAyB,GAAIjD,GAAG,CAAC4C,YAAYpI,GAAGxjB,YAAY,SAAShxE,EAAEzF,GAA4C,OAAzC6/F,KAAK/c,cAAc,CAACr9E,OAAE,IAASzF,EAAE,KAAKA,GAAUyF,CAAC,EAAEixE,WAAWujB,GAAGrjB,UAAUgrB,GAAG/qB,oBAAoB,SAASpxE,EAAEzF,EAAEgG,GAA6C,OAA1CA,EAAE,OAAOA,QAAG,IAASA,EAAEA,EAAE6Q,OAAO,CAACpR,IAAI,KAAYi8F,GAAG,EAAE,EAAEK,GAAGn0G,KAAK,KACvfoS,EAAEyF,GAAGO,EAAE,EAAE8wE,gBAAgB,SAASrxE,EAAEzF,GAAG,OAAO0hG,GAAG,EAAE,EAAEj8F,EAAEzF,EAAE,EAAE+2E,QAAQ,SAAStxE,EAAEzF,GAAG,IAAIgG,EAAE65F,KAAqD,OAAhD7/F,OAAE,IAASA,EAAE,KAAKA,EAAEyF,EAAEA,IAAIO,EAAE88E,cAAc,CAACr9E,EAAEzF,GAAUyF,CAAC,EAAEuxE,WAAW,SAASvxE,EAAEzF,EAAEgG,GAAG,IAAI3lB,EAAEw/G,KAAuK,OAAlK7/F,OAAE,IAASgG,EAAEA,EAAEhG,GAAGA,EAAE3f,EAAEyiG,cAAcziG,EAAEk6G,UAAUv6F,EAAmFyF,GAAjFA,EAAEplB,EAAE0/G,MAAM,CAACpF,QAAQ,KAAK6F,SAAS,KAAKL,oBAAoB16F,EAAE86F,kBAAkBvgG,IAAOwgG,SAASW,GAAGvzG,KAAK,KAAK+mF,GAAElvE,GAAS,CAACplB,EAAEyiG,cAAcr9E,EAAE,EAAEwxE,OAAOuqB,GAAGtqB,SAASmqB,GAAG1qB,cAAcsrB,GAAGK,iBAAiB,SAAS78F,GAAG,IAAIzF,EAAEqhG,GAAG57F,GAAGO,EAAEhG,EAAE,GAAG3f,EAAE2f,EAAE,GAC5Z,OAD+Z4hG,IAAG,WAAW,IAAI5hG,EAAEk/F,GAAGpqB,WAC9eoqB,GAAGpqB,WAAW,EAAE,IAAIz0F,EAAEolB,EAAE,CAAC,QAAQy5F,GAAGpqB,WAAW90E,CAAC,CAAC,GAAE,CAACyF,IAAWO,CAAC,EAAEu8F,cAAc,WAAW,IAAI98F,EAAE47F,IAAG,GAAIrhG,EAAEyF,EAAE,GAA8B,OAAN+7F,GAArB/7F,EAAE28F,GAAGx0G,KAAK,KAAK6X,EAAE,KAAgB,CAACA,EAAEzF,EAAE,EAAEwiG,iBAAiB,SAAS/8F,EAAEzF,EAAEgG,GAAG,IAAI3lB,EAAEw/G,KAAkF,OAA7Ex/G,EAAEyiG,cAAc,CAAC1P,KAAK,CAAC4tB,YAAYhhG,EAAEkhG,YAAY,MAAM3vG,OAAOkU,EAAEw7F,UAAUj7F,GAAU86F,GAAGzgH,EAAEolB,EAAEzF,EAAEgG,EAAE,EAAEy8F,oBAAoB,WAAW,GAAG9nD,GAAG,CAAC,IAAIl1C,GAAE,EAAGzF,EAzDlD,SAAYyF,GAAG,MAAM,CAACyuE,SAASoF,EAAGnqF,SAASsW,EAAE3V,QAAQ2V,EAAE,CAyDHk9F,EAAG,WAAiD,MAAtCl9F,IAAIA,GAAE,EAAGO,EAAE,MAAM4vF,MAAMzmG,SAAS,MAAYnF,MAAMpK,EAAE,KAAM,IAAGomB,EAAEq7F,GAAGrhG,GAAG,GAC1Z,OAD6Z,KAAY,EAAP20E,GAAEvsC,QAAUusC,GAAEv0F,OAAO,IAAIkhH,GAAG,GAAE,WAAWt7F,EAAE,MAAM4vF,MAAMzmG,SAAS,IAAI,QACpf,EAAO,OAAc6Q,CAAC,CAAkC,OAANqhG,GAA3BrhG,EAAE,MAAM41F,MAAMzmG,SAAS,KAAiB6Q,CAAC,EAAE0iG,0BAAyB,GAAIhD,GAAG,CAAC2C,YAAYpI,GAAGxjB,YAAYyrB,GAAGxrB,WAAWujB,GAAGrjB,UAAUirB,GAAGhrB,oBAAoBmrB,GAAGlrB,gBAAgBgrB,GAAG/qB,QAAQorB,GAAGnrB,WAAWkpB,GAAGjpB,OAAOwqB,GAAGvqB,SAAS,WAAW,OAAOgpB,GAAGD,GAAG,EAAEtpB,cAAcsrB,GAAGK,iBAAiB,SAAS78F,GAAG,IAAIzF,EAAEkgG,GAAGD,IAAIj6F,EAAEhG,EAAE,GAAG3f,EAAE2f,EAAE,GAA6F,OAA1F6hG,IAAG,WAAW,IAAI7hG,EAAEk/F,GAAGpqB,WAAWoqB,GAAGpqB,WAAW,EAAE,IAAIz0F,EAAEolB,EAAE,CAAC,QAAQy5F,GAAGpqB,WAAW90E,CAAC,CAAC,GAAE,CAACyF,IAAWO,CAAC,EAAEu8F,cAAc,WAAW,IAAI98F,EAAEy6F,GAAGD,IAAI,GAAG,MAAM,CAACwB,KAAK72B,QAC9enlE,EAAE,EAAE+8F,iBAAiBpB,GAAGqB,oBAAoB,WAAW,OAAOvC,GAAGD,IAAI,EAAE,EAAEyC,0BAAyB,GAAI/C,GAAG,CAAC0C,YAAYpI,GAAGxjB,YAAYyrB,GAAGxrB,WAAWujB,GAAGrjB,UAAUirB,GAAGhrB,oBAAoBmrB,GAAGlrB,gBAAgBgrB,GAAG/qB,QAAQorB,GAAGnrB,WAAWypB,GAAGxpB,OAAOwqB,GAAGvqB,SAAS,WAAW,OAAOupB,GAAGR,GAAG,EAAEtpB,cAAcsrB,GAAGK,iBAAiB,SAAS78F,GAAG,IAAIzF,EAAEygG,GAAGR,IAAIj6F,EAAEhG,EAAE,GAAG3f,EAAE2f,EAAE,GAA6F,OAA1F6hG,IAAG,WAAW,IAAI7hG,EAAEk/F,GAAGpqB,WAAWoqB,GAAGpqB,WAAW,EAAE,IAAIz0F,EAAEolB,EAAE,CAAC,QAAQy5F,GAAGpqB,WAAW90E,CAAC,CAAC,GAAE,CAACyF,IAAWO,CAAC,EAAEu8F,cAAc,WAAW,IAAI98F,EAAEg7F,GAAGR,IAAI,GAAG,MAAM,CAACwB,KAAK72B,QACrfnlE,EAAE,EAAE+8F,iBAAiBpB,GAAGqB,oBAAoB,WAAW,OAAOhC,GAAGR,IAAI,EAAE,EAAEyC,0BAAyB,GAAIE,GAAGlqB,EAAG3D,kBAAkBilB,IAAG,EAAG,SAAS6I,GAAGp9F,EAAEzF,EAAEgG,EAAE3lB,GAAG2f,EAAEkjF,MAAM,OAAOz9E,EAAEg4F,GAAGz9F,EAAE,KAAKgG,EAAE3lB,GAAGm9G,GAAGx9F,EAAEyF,EAAEy9E,MAAMl9E,EAAE3lB,EAAE,CAAC,SAASyiH,GAAGr9F,EAAEzF,EAAEgG,EAAE3lB,EAAErD,GAAGgpB,EAAEA,EAAE02C,OAAO,IAAIx/D,EAAE8iB,EAAE6zE,IAA8B,OAA1BlgB,GAAG3zD,EAAEhjB,GAAGqD,EAAEm/G,GAAG/5F,EAAEzF,EAAEgG,EAAE3lB,EAAEnD,EAAEF,GAAM,OAAOyoB,GAAIu0F,IAA0Eh6F,EAAE5f,OAAO,EAAEyiH,GAAGp9F,EAAEzF,EAAE3f,EAAErD,GAAUgjB,EAAEkjF,QAAhGljF,EAAEs6F,YAAY70F,EAAE60F,YAAYt6F,EAAE5f,QAAQ,IAAIqlB,EAAEs0F,QAAQ/8G,EAAE+lH,GAAGt9F,EAAEzF,EAAEhjB,GAAwC,CAChZ,SAASgmH,GAAGv9F,EAAEzF,EAAEgG,EAAE3lB,EAAErD,EAAEE,GAAG,GAAG,OAAOuoB,EAAE,CAAC,IAAI3f,EAAEkgB,EAAE5d,KAAK,MAAG,oBAAoBtC,GAAIm9G,GAAGn9G,SAAI,IAASA,EAAEmuF,cAAc,OAAOjuE,EAAEwwE,cAAS,IAASxwE,EAAEiuE,eAAsDxuE,EAAE23F,GAAGp3F,EAAE5d,KAAK,KAAK/H,EAAE2f,EAAEA,EAAEooC,KAAKlrD,IAAK22F,IAAI7zE,EAAE6zE,IAAIpuE,EAAEm9E,OAAO5iF,EAASA,EAAEkjF,MAAMz9E,IAAvGzF,EAAEm6E,IAAI,GAAGn6E,EAAE5X,KAAKtC,EAAEo9G,GAAGz9F,EAAEzF,EAAEla,EAAEzF,EAAErD,EAAEE,GAAyE,CAAW,OAAV4I,EAAE2f,EAAEy9E,MAAS,KAAKlmG,EAAEE,KAAKF,EAAE8I,EAAEq4G,eAA0Bn4F,EAAE,QAAdA,EAAEA,EAAEwwE,SAAmBxwE,EAAEgsF,IAAKh1G,EAAEqD,IAAIolB,EAAEouE,MAAM7zE,EAAE6zE,KAAYkvB,GAAGt9F,EAAEzF,EAAE9iB,IAAG8iB,EAAE5f,OAAO,GAAEqlB,EAAEw3F,GAAGn3G,EAAEzF,IAAKwzF,IAAI7zE,EAAE6zE,IAAIpuE,EAAEm9E,OAAO5iF,EAASA,EAAEkjF,MAAMz9E,EAAC,CACnb,SAASy9F,GAAGz9F,EAAEzF,EAAEgG,EAAE3lB,EAAErD,EAAEE,GAAG,GAAG,OAAOuoB,GAAGusF,GAAGvsF,EAAE04F,cAAc99G,IAAIolB,EAAEouE,MAAM7zE,EAAE6zE,IAAI,IAAGmmB,IAAG,EAAG,KAAK98G,EAAEF,GAAqC,OAAOgjB,EAAE+5F,MAAMt0F,EAAEs0F,MAAMgJ,GAAGt9F,EAAEzF,EAAE9iB,GAAhE,KAAa,MAARuoB,EAAErlB,SAAe45G,IAAG,EAAyC,CAAC,OAAOmJ,GAAG19F,EAAEzF,EAAEgG,EAAE3lB,EAAEnD,EAAE,CACrL,SAASkmH,GAAG39F,EAAEzF,EAAEgG,GAAG,IAAI3lB,EAAE2f,EAAE0+F,aAAa1hH,EAAEqD,EAAEqF,SAASxI,EAAE,OAAOuoB,EAAEA,EAAEq9E,cAAc,KAAK,GAAG,WAAWziG,EAAE+nD,MAAM,kCAAkC/nD,EAAE+nD,KAAK,GAAG,KAAY,EAAPpoC,EAAEooC,MAAQpoC,EAAE8iF,cAAc,CAACugB,UAAU,GAAGC,GAAGtjG,EAAEgG,OAAQ,IAAG,KAAO,WAAFA,GAA8E,OAAOP,EAAE,OAAOvoB,EAAEA,EAAEmmH,UAAUr9F,EAAEA,EAAEhG,EAAE+5F,MAAM/5F,EAAE45F,WAAW,WAAW55F,EAAE8iF,cAAc,CAACugB,UAAU59F,GAAG69F,GAAGtjG,EAAEyF,GAAG,KAAxKzF,EAAE8iF,cAAc,CAACugB,UAAU,GAAGC,GAAGtjG,EAAE,OAAO9iB,EAAEA,EAAEmmH,UAAUr9F,EAAoH,MAAM,OAAO9oB,GAAGmD,EAAEnD,EAAEmmH,UAAUr9F,EAAEhG,EAAE8iF,cAAc,MAAMziG,EAAE2lB,EAAEs9F,GAAGtjG,EAAE3f,GAAe,OAAZwiH,GAAGp9F,EAAEzF,EAAEhjB,EAAEgpB,GAAUhG,EAAEkjF,KAAK,CAC/e,SAASqgB,GAAG99F,EAAEzF,GAAG,IAAIgG,EAAEhG,EAAE6zE,KAAO,OAAOpuE,GAAG,OAAOO,GAAG,OAAOP,GAAGA,EAAEouE,MAAM7tE,KAAEhG,EAAE5f,OAAO,IAAG,CAAC,SAAS+iH,GAAG19F,EAAEzF,EAAEgG,EAAE3lB,EAAErD,GAAG,IAAIE,EAAEw5G,GAAG1wF,GAAGqwF,GAAGz0G,GAAEgpF,QAA4C,OAApC1tF,EAAEo5G,GAAGt2F,EAAE9iB,GAAGy2E,GAAG3zD,EAAEhjB,GAAGgpB,EAAEw5F,GAAG/5F,EAAEzF,EAAEgG,EAAE3lB,EAAEnD,EAAEF,GAAM,OAAOyoB,GAAIu0F,IAA0Eh6F,EAAE5f,OAAO,EAAEyiH,GAAGp9F,EAAEzF,EAAEgG,EAAEhpB,GAAUgjB,EAAEkjF,QAAhGljF,EAAEs6F,YAAY70F,EAAE60F,YAAYt6F,EAAE5f,QAAQ,IAAIqlB,EAAEs0F,QAAQ/8G,EAAE+lH,GAAGt9F,EAAEzF,EAAEhjB,GAAwC,CACtS,SAASomE,GAAG39C,EAAEzF,EAAEgG,EAAE3lB,EAAErD,GAAG,GAAG05G,GAAG1wF,GAAG,CAAC,IAAI9oB,GAAE,EAAG85G,GAAGh3F,EAAE,MAAM9iB,GAAE,EAAW,GAARy2E,GAAG3zD,EAAEhjB,GAAM,OAAOgjB,EAAEqhF,UAAU,OAAO57E,IAAIA,EAAEk9E,UAAU,KAAK3iF,EAAE2iF,UAAU,KAAK3iF,EAAE5f,OAAO,GAAG07G,GAAG97F,EAAEgG,EAAE3lB,GAAG87G,GAAGn8F,EAAEgG,EAAE3lB,EAAErD,GAAGqD,GAAE,OAAQ,GAAG,OAAOolB,EAAE,CAAC,IAAI3f,EAAEka,EAAEqhF,UAAU7/F,EAAEwe,EAAEm+F,cAAcr4G,EAAE2I,MAAMjN,EAAE,IAAIyhB,EAAEnd,EAAEgC,QAAQ/F,EAAEikB,EAAE+1F,YAAY,kBAAkBh6G,GAAG,OAAOA,EAAEA,EAAEk4G,GAAGl4G,GAAyBA,EAAEu0G,GAAGt2F,EAA1Bje,EAAE20G,GAAG1wF,GAAGqwF,GAAGz0G,GAAEgpF,SAAmB,IAAI/tF,EAAEmpB,EAAEo2F,yBAAyBnkF,EAAE,oBAAoBp7B,GAAG,oBAAoBiJ,EAAEu2G,wBAAwBpkF,GAAG,oBAAoBnyB,EAAEo2G,kCACpd,oBAAoBp2G,EAAEm2G,4BAA4Bz6G,IAAInB,GAAG4iB,IAAIlhB,IAAIi6G,GAAGh8F,EAAEla,EAAEzF,EAAE0B,GAAGq4G,IAAG,EAAG,IAAIz3G,EAAEqd,EAAE8iF,cAAch9F,EAAEiE,MAAMpH,EAAEu4G,GAAGl7F,EAAE3f,EAAEyF,EAAE9I,GAAGimB,EAAEjD,EAAE8iF,cAActhG,IAAInB,GAAGsC,IAAIsgB,GAAGlgB,GAAE6nF,SAASwvB,IAAI,oBAAoBv9G,IAAIy+G,GAAGt7F,EAAEgG,EAAEnpB,EAAEwD,GAAG4iB,EAAEjD,EAAE8iF,gBAAgBthG,EAAE44G,IAAIwB,GAAG57F,EAAEgG,EAAExkB,EAAEnB,EAAEsC,EAAEsgB,EAAElhB,KAAKk2B,GAAG,oBAAoBnyB,EAAEw2G,2BAA2B,oBAAoBx2G,EAAEy2G,qBAAqB,oBAAoBz2G,EAAEy2G,oBAAoBz2G,EAAEy2G,qBAAqB,oBAAoBz2G,EAAEw2G,2BAA2Bx2G,EAAEw2G,6BAA6B,oBACzex2G,EAAE02G,oBAAoBx8F,EAAE5f,OAAO,KAAK,oBAAoB0F,EAAE02G,oBAAoBx8F,EAAE5f,OAAO,GAAG4f,EAAEm+F,cAAc99G,EAAE2f,EAAE8iF,cAAc7/E,GAAGnd,EAAE2I,MAAMpO,EAAEyF,EAAEiE,MAAMkZ,EAAEnd,EAAEgC,QAAQ/F,EAAE1B,EAAEmB,IAAI,oBAAoBsE,EAAE02G,oBAAoBx8F,EAAE5f,OAAO,GAAGC,GAAE,EAAG,KAAK,CAACyF,EAAEka,EAAEqhF,UAAUuZ,GAAGn1F,EAAEzF,GAAGxe,EAAEwe,EAAEm+F,cAAcp8G,EAAEie,EAAE5X,OAAO4X,EAAEm9F,YAAY37G,EAAE43G,GAAGp5F,EAAE5X,KAAK5G,GAAGsE,EAAE2I,MAAM1M,EAAEk2B,EAAEjY,EAAE0+F,aAAa/7G,EAAEmD,EAAEgC,QAAwB,kBAAhBmb,EAAE+C,EAAE+1F,cAAiC,OAAO94F,EAAEA,EAAEg3F,GAAGh3F,GAAyBA,EAAEqzF,GAAGt2F,EAA1BiD,EAAEyzF,GAAG1wF,GAAGqwF,GAAGz0G,GAAEgpF,SAAmB,IAAIvyD,EAAErS,EAAEo2F,0BAA0Bv/G,EAAE,oBAAoBw7B,GACnf,oBAAoBvyB,EAAEu2G,0BAA0B,oBAAoBv2G,EAAEo2G,kCAAkC,oBAAoBp2G,EAAEm2G,4BAA4Bz6G,IAAIy2B,GAAGt1B,IAAIsgB,IAAI+4F,GAAGh8F,EAAEla,EAAEzF,EAAE4iB,GAAGm3F,IAAG,EAAGz3G,EAAEqd,EAAE8iF,cAAch9F,EAAEiE,MAAMpH,EAAEu4G,GAAGl7F,EAAE3f,EAAEyF,EAAE9I,GAAG,IAAI67B,EAAE7Y,EAAE8iF,cAActhG,IAAIy2B,GAAGt1B,IAAIk2B,GAAG91B,GAAE6nF,SAASwvB,IAAI,oBAAoB/hF,IAAIijF,GAAGt7F,EAAEgG,EAAEqS,EAAEh4B,GAAGw4B,EAAE7Y,EAAE8iF,gBAAgB/gG,EAAEq4G,IAAIwB,GAAG57F,EAAEgG,EAAEjkB,EAAE1B,EAAEsC,EAAEk2B,EAAE5V,KAAKpmB,GAAG,oBAAoBiJ,EAAE09G,4BAA4B,oBAAoB19G,EAAE29G,sBAAsB,oBAAoB39G,EAAE29G,qBAAqB39G,EAAE29G,oBAAoBpjH,EAC1gBw4B,EAAE5V,GAAG,oBAAoBnd,EAAE09G,4BAA4B19G,EAAE09G,2BAA2BnjH,EAAEw4B,EAAE5V,IAAI,oBAAoBnd,EAAE49G,qBAAqB1jG,EAAE5f,OAAO,GAAG,oBAAoB0F,EAAEu2G,0BAA0Br8F,EAAE5f,OAAO,OAAO,oBAAoB0F,EAAE49G,oBAAoBliH,IAAIikB,EAAE04F,eAAex7G,IAAI8iB,EAAEq9E,gBAAgB9iF,EAAE5f,OAAO,GAAG,oBAAoB0F,EAAEu2G,yBAAyB76G,IAAIikB,EAAE04F,eAAex7G,IAAI8iB,EAAEq9E,gBAAgB9iF,EAAE5f,OAAO,KAAK4f,EAAEm+F,cAAc99G,EAAE2f,EAAE8iF,cAAcjqE,GAAG/yB,EAAE2I,MAAMpO,EAAEyF,EAAEiE,MAAM8uB,EAAE/yB,EAAEgC,QAAQmb,EAAE5iB,EAAE0B,IAAI,oBAAoB+D,EAAE49G,oBAC7fliH,IAAIikB,EAAE04F,eAAex7G,IAAI8iB,EAAEq9E,gBAAgB9iF,EAAE5f,OAAO,GAAG,oBAAoB0F,EAAEu2G,yBAAyB76G,IAAIikB,EAAE04F,eAAex7G,IAAI8iB,EAAEq9E,gBAAgB9iF,EAAE5f,OAAO,KAAKC,GAAE,EAAG,CAAC,OAAOsjH,GAAGl+F,EAAEzF,EAAEgG,EAAE3lB,EAAEnD,EAAEF,EAAE,CAC3L,SAAS2mH,GAAGl+F,EAAEzF,EAAEgG,EAAE3lB,EAAErD,EAAEE,GAAGqmH,GAAG99F,EAAEzF,GAAG,IAAIla,EAAE,KAAa,GAARka,EAAE5f,OAAU,IAAIC,IAAIyF,EAAE,OAAO9I,GAAGk6G,GAAGl3F,EAAEgG,GAAE,GAAI+8F,GAAGt9F,EAAEzF,EAAE9iB,GAAGmD,EAAE2f,EAAEqhF,UAAUuhB,GAAGh4B,QAAQ5qE,EAAE,IAAIxe,EAAEsE,GAAG,oBAAoBkgB,EAAE49F,yBAAyB,KAAKvjH,EAAEq8D,SAAwI,OAA/H18C,EAAE5f,OAAO,EAAE,OAAOqlB,GAAG3f,GAAGka,EAAEkjF,MAAMsa,GAAGx9F,EAAEyF,EAAEy9E,MAAM,KAAKhmG,GAAG8iB,EAAEkjF,MAAMsa,GAAGx9F,EAAE,KAAKxe,EAAEtE,IAAI2lH,GAAGp9F,EAAEzF,EAAExe,EAAEtE,GAAG8iB,EAAE8iF,cAAcziG,EAAE0J,MAAM/M,GAAGk6G,GAAGl3F,EAAEgG,GAAE,GAAWhG,EAAEkjF,KAAK,CAAC,SAAS2gB,GAAGp+F,GAAG,IAAIzF,EAAEyF,EAAE47E,UAAUrhF,EAAE8jG,eAAejN,GAAGpxF,EAAEzF,EAAE8jG,eAAe9jG,EAAE8jG,iBAAiB9jG,EAAElY,SAASkY,EAAElY,SAAS+uG,GAAGpxF,EAAEzF,EAAElY,SAAQ,GAAIg2G,GAAGr4F,EAAEzF,EAAEilF,cAAc,CAC3e,IAS0V8e,GAAGC,GAAGC,GAAGC,GAT/VC,GAAG,CAACphB,WAAW,KAAKqhB,UAAU,GAClC,SAAS/iF,GAAG5b,EAAEzF,EAAEgG,GAAG,IAAsClgB,EAAlCzF,EAAE2f,EAAE0+F,aAAa1hH,EAAEu3F,GAAE3J,QAAQ1tF,GAAE,EAA6M,OAAvM4I,EAAE,KAAa,GAARka,EAAE5f,UAAa0F,GAAE,OAAO2f,GAAG,OAAOA,EAAEq9E,gBAAiB,KAAO,EAAF9lG,IAAM8I,GAAG5I,GAAE,EAAG8iB,EAAE5f,QAAQ,IAAI,OAAOqlB,GAAG,OAAOA,EAAEq9E,oBAAe,IAASziG,EAAEgkH,WAAU,IAAKhkH,EAAEikH,6BAA6BtnH,GAAG,GAAG42F,GAAEW,GAAI,EAAFv3F,GAAQ,OAAOyoB,QAAG,IAASplB,EAAEgkH,UAAU1F,GAAG3+F,GAAGyF,EAAEplB,EAAEqF,SAAS1I,EAAEqD,EAAEgkH,SAAYnnH,GAASuoB,EAAE8+F,GAAGvkG,EAAEyF,EAAEzoB,EAAEgpB,GAAGhG,EAAEkjF,MAAMJ,cAAc,CAACugB,UAAUr9F,GAAGhG,EAAE8iF,cAAcqhB,GAAG1+F,GAAK,kBAAkBplB,EAAEmkH,2BAAiC/+F,EAAE8+F,GAAGvkG,EAAEyF,EAAEzoB,EAAEgpB,GAAGhG,EAAEkjF,MAAMJ,cAAc,CAACugB,UAAUr9F,GAC/fhG,EAAE8iF,cAAcqhB,GAAGnkG,EAAE+5F,MAAM,SAASt0F,KAAEO,EAAEy+F,GAAG,CAACr8D,KAAK,UAAU1iD,SAAS+f,GAAGzF,EAAEooC,KAAKpiC,EAAE,OAAQ48E,OAAO5iF,EAASA,EAAEkjF,MAAMl9E,KAAYP,EAAEq9E,cAAkB5lG,GAASmD,EAAE2vE,GAAGvqD,EAAEzF,EAAE3f,EAAEqF,SAASrF,EAAEgkH,SAASr+F,GAAG9oB,EAAE8iB,EAAEkjF,MAAMlmG,EAAEyoB,EAAEy9E,MAAMJ,cAAc5lG,EAAE4lG,cAAc,OAAO9lG,EAAE,CAACqmH,UAAUr9F,GAAG,CAACq9F,UAAUrmH,EAAEqmH,UAAUr9F,GAAG9oB,EAAE08G,WAAWn0F,EAAEm0F,YAAY5zF,EAAEhG,EAAE8iF,cAAcqhB,GAAG9jH,IAAE2lB,EAAE0+F,GAAGj/F,EAAEzF,EAAE3f,EAAEqF,SAASsgB,GAAGhG,EAAE8iF,cAAc,KAAY98E,GACnQ,CAAC,SAASu+F,GAAG9+F,EAAEzF,EAAEgG,EAAE3lB,GAAG,IAAIrD,EAAEyoB,EAAE2iC,KAAKlrD,EAAEuoB,EAAEy9E,MAAuK,OAAjKljF,EAAE,CAACooC,KAAK,SAAS1iD,SAASsa,GAAG,KAAO,EAAFhjB,IAAM,OAAOE,GAAGA,EAAE08G,WAAW,EAAE18G,EAAEwhH,aAAa1+F,GAAG9iB,EAAEunH,GAAGzkG,EAAEhjB,EAAE,EAAE,MAAMgpB,EAAEu3F,GAAGv3F,EAAEhpB,EAAEqD,EAAE,MAAMnD,EAAE0lG,OAAOn9E,EAAEO,EAAE48E,OAAOn9E,EAAEvoB,EAAEimG,QAAQn9E,EAAEP,EAAEy9E,MAAMhmG,EAAS8oB,CAAC,CACtV,SAAS0+F,GAAGj/F,EAAEzF,EAAEgG,EAAE3lB,GAAG,IAAIrD,EAAEyoB,EAAEy9E,MAAiL,OAA3Kz9E,EAAEzoB,EAAEmmG,QAAQn9E,EAAEi3F,GAAGjgH,EAAE,CAACorD,KAAK,UAAU1iD,SAASsgB,IAAI,KAAY,EAAPhG,EAAEooC,QAAUpiC,EAAE+zF,MAAM15G,GAAG2lB,EAAE48E,OAAO5iF,EAAEgG,EAAEm9E,QAAQ,KAAK,OAAO19E,IAAIA,EAAEs3F,WAAW,KAAKt3F,EAAErlB,MAAM,EAAE4f,EAAEg9F,YAAYh9F,EAAE88F,WAAWr3F,GAAUzF,EAAEkjF,MAAMl9E,CAAC,CAC9N,SAASgqD,GAAGvqD,EAAEzF,EAAEgG,EAAE3lB,EAAErD,GAAG,IAAIE,EAAE8iB,EAAEooC,KAAKtiD,EAAE2f,EAAEy9E,MAAMz9E,EAAE3f,EAAEq9F,QAAQ,IAAI3hG,EAAE,CAAC4mD,KAAK,SAAS1iD,SAASsgB,GAAoS,OAAjS,KAAO,EAAF9oB,IAAM8iB,EAAEkjF,QAAQp9F,IAAGkgB,EAAEhG,EAAEkjF,OAAQ0W,WAAW,EAAE5zF,EAAE04F,aAAal9G,EAAiB,QAAfsE,EAAEkgB,EAAE82F,aAAqB98F,EAAEg9F,YAAYh3F,EAAEg3F,YAAYh9F,EAAE88F,WAAWh3G,EAAEA,EAAEi3G,WAAW,MAAM/8F,EAAEg9F,YAAYh9F,EAAE88F,WAAW,MAAM92F,EAAEi3F,GAAGn3G,EAAEtE,GAAG,OAAOikB,EAAEplB,EAAE48G,GAAGx3F,EAAEplB,IAAIA,EAAEk9G,GAAGl9G,EAAEnD,EAAEF,EAAE,OAAQoD,OAAO,EAAGC,EAAEuiG,OAAO5iF,EAAEgG,EAAE48E,OAAO5iF,EAAEgG,EAAEm9E,QAAQ9iG,EAAE2f,EAAEkjF,MAAMl9E,EAAS3lB,CAAC,CAAC,SAASskH,GAAGl/F,EAAEzF,GAAGyF,EAAEs0F,OAAO/5F,EAAE,IAAIgG,EAAEP,EAAEk9E,UAAU,OAAO38E,IAAIA,EAAE+zF,OAAO/5F,GAAG25F,GAAGl0F,EAAEm9E,OAAO5iF,EAAE,CACxd,SAAS4kG,GAAGn/F,EAAEzF,EAAEgG,EAAE3lB,EAAErD,EAAEE,GAAG,IAAI4I,EAAE2f,EAAEq9E,cAAc,OAAOh9F,EAAE2f,EAAEq9E,cAAc,CAAC+hB,YAAY7kG,EAAE8kG,UAAU,KAAKC,mBAAmB,EAAEC,KAAK3kH,EAAE4kH,KAAKj/F,EAAEk/F,SAASloH,EAAE8/G,WAAW5/G,IAAI4I,EAAE++G,YAAY7kG,EAAEla,EAAEg/G,UAAU,KAAKh/G,EAAEi/G,mBAAmB,EAAEj/G,EAAEk/G,KAAK3kH,EAAEyF,EAAEm/G,KAAKj/F,EAAElgB,EAAEo/G,SAASloH,EAAE8I,EAAEg3G,WAAW5/G,EAAE,CACzQ,SAASioH,GAAG1/F,EAAEzF,EAAEgG,GAAG,IAAI3lB,EAAE2f,EAAE0+F,aAAa1hH,EAAEqD,EAAE+9G,YAAYlhH,EAAEmD,EAAE4kH,KAAsC,GAAjCpC,GAAGp9F,EAAEzF,EAAE3f,EAAEqF,SAASsgB,GAAkB,KAAO,GAAtB3lB,EAAEk0F,GAAE3J,UAAqBvqF,EAAI,EAAFA,EAAI,EAAE2f,EAAE5f,OAAO,OAAO,CAAC,GAAG,OAAOqlB,GAAG,KAAa,GAARA,EAAErlB,OAAUqlB,EAAE,IAAIA,EAAEzF,EAAEkjF,MAAM,OAAOz9E,GAAG,CAAC,GAAG,KAAKA,EAAE00E,IAAI,OAAO10E,EAAEq9E,eAAe6hB,GAAGl/F,EAAEO,QAAQ,GAAG,KAAKP,EAAE00E,IAAIwqB,GAAGl/F,EAAEO,QAAQ,GAAG,OAAOP,EAAEy9E,MAAM,CAACz9E,EAAEy9E,MAAMN,OAAOn9E,EAAEA,EAAEA,EAAEy9E,MAAM,QAAQ,CAAC,GAAGz9E,IAAIzF,EAAE,MAAMyF,EAAE,KAAK,OAAOA,EAAE09E,SAAS,CAAC,GAAG,OAAO19E,EAAEm9E,QAAQn9E,EAAEm9E,SAAS5iF,EAAE,MAAMyF,EAAEA,EAAEA,EAAEm9E,MAAM,CAACn9E,EAAE09E,QAAQP,OAAOn9E,EAAEm9E,OAAOn9E,EAAEA,EAAE09E,OAAO,CAAC9iG,GAAG,CAAC,CAAQ,GAAPuzF,GAAEW,GAAEl0F,GAAM,KAAY,EAAP2f,EAAEooC,MAAQpoC,EAAE8iF,cACze,UAAU,OAAO9lG,GAAG,IAAK,WAAqB,IAAVgpB,EAAEhG,EAAEkjF,MAAUlmG,EAAE,KAAK,OAAOgpB,GAAiB,QAAdP,EAAEO,EAAE28E,YAAoB,OAAOub,GAAGz4F,KAAKzoB,EAAEgpB,GAAGA,EAAEA,EAAEm9E,QAAY,QAAJn9E,EAAEhpB,IAAYA,EAAEgjB,EAAEkjF,MAAMljF,EAAEkjF,MAAM,OAAOlmG,EAAEgpB,EAAEm9E,QAAQn9E,EAAEm9E,QAAQ,MAAMyhB,GAAG5kG,GAAE,EAAGhjB,EAAEgpB,EAAE9oB,EAAE8iB,EAAE88F,YAAY,MAAM,IAAK,YAA6B,IAAjB92F,EAAE,KAAKhpB,EAAEgjB,EAAEkjF,MAAUljF,EAAEkjF,MAAM,KAAK,OAAOlmG,GAAG,CAAe,GAAG,QAAjByoB,EAAEzoB,EAAE2lG,YAAuB,OAAOub,GAAGz4F,GAAG,CAACzF,EAAEkjF,MAAMlmG,EAAE,KAAK,CAACyoB,EAAEzoB,EAAEmmG,QAAQnmG,EAAEmmG,QAAQn9E,EAAEA,EAAEhpB,EAAEA,EAAEyoB,CAAC,CAACm/F,GAAG5kG,GAAE,EAAGgG,EAAE,KAAK9oB,EAAE8iB,EAAE88F,YAAY,MAAM,IAAK,WAAW8H,GAAG5kG,GAAE,EAAG,KAAK,UAAK,EAAOA,EAAE88F,YAAY,MAAM,QAAQ98F,EAAE8iF,cAAc,KAAK,OAAO9iF,EAAEkjF,KAAK,CACpgB,SAAS6f,GAAGt9F,EAAEzF,EAAEgG,GAAyD,GAAtD,OAAOP,IAAIzF,EAAE65F,aAAap0F,EAAEo0F,cAAcsB,IAAIn7F,EAAE+5F,MAAS,KAAK/zF,EAAEhG,EAAE45F,YAAY,CAAC,GAAG,OAAOn0F,GAAGzF,EAAEkjF,QAAQz9E,EAAEy9E,MAAM,MAAMl5F,MAAMpK,EAAE,MAAM,GAAG,OAAOogB,EAAEkjF,MAAM,CAA4C,IAAjCl9E,EAAEi3F,GAAZx3F,EAAEzF,EAAEkjF,MAAaz9E,EAAEi5F,cAAc1+F,EAAEkjF,MAAMl9E,EAAMA,EAAE48E,OAAO5iF,EAAE,OAAOyF,EAAE09E,SAAS19E,EAAEA,EAAE09E,SAAQn9E,EAAEA,EAAEm9E,QAAQ8Z,GAAGx3F,EAAEA,EAAEi5F,eAAgB9b,OAAO5iF,EAAEgG,EAAEm9E,QAAQ,IAAI,CAAC,OAAOnjF,EAAEkjF,KAAK,CAAC,OAAO,IAAI,CAKhQ,SAASkiB,GAAG3/F,EAAEzF,GAAG,IAAI26C,GAAG,OAAOl1C,EAAEy/F,UAAU,IAAK,SAASllG,EAAEyF,EAAEw/F,KAAK,IAAI,IAAIj/F,EAAE,KAAK,OAAOhG,GAAG,OAAOA,EAAE2iF,YAAY38E,EAAEhG,GAAGA,EAAEA,EAAEmjF,QAAQ,OAAOn9E,EAAEP,EAAEw/F,KAAK,KAAKj/F,EAAEm9E,QAAQ,KAAK,MAAM,IAAK,YAAYn9E,EAAEP,EAAEw/F,KAAK,IAAI,IAAI5kH,EAAE,KAAK,OAAO2lB,GAAG,OAAOA,EAAE28E,YAAYtiG,EAAE2lB,GAAGA,EAAEA,EAAEm9E,QAAQ,OAAO9iG,EAAE2f,GAAG,OAAOyF,EAAEw/F,KAAKx/F,EAAEw/F,KAAK,KAAKx/F,EAAEw/F,KAAK9hB,QAAQ,KAAK9iG,EAAE8iG,QAAQ,KAAK,CACla,SAASkiB,GAAG5/F,EAAEzF,EAAEgG,GAAG,IAAI3lB,EAAE2f,EAAE0+F,aAAa,OAAO1+F,EAAEm6E,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,EAAE,KAAK,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK,EAAE,KAAK,GAAG,OAAO,KAAK,KAAK,EAQyC,KAAK,GAAG,OAAOuc,GAAG12F,EAAE5X,OAAOwuG,KAAK,KAR1C,KAAK,EAAsL,OAApLr3C,KAAK79D,GAAEqB,IAAGrB,GAAEE,IAAGm9G,MAAK1+G,EAAE2f,EAAEqhF,WAAYyiB,iBAAiBzjH,EAAEyH,QAAQzH,EAAEyjH,eAAezjH,EAAEyjH,eAAe,MAAS,OAAOr+F,GAAG,OAAOA,EAAEy9E,QAAM2b,GAAG7+F,GAAGA,EAAE5f,OAAO,EAAEC,EAAE2kG,UAAUhlF,EAAE5f,OAAO,MAAK4jH,GAAGhkG,GAAU,KAAK,KAAK,EAAEve,GAAGue,GAAG,IAAIhjB,EAAE6gH,GAAG94D,GAAG6lC,SAAkB,GAAT5kE,EAAEhG,EAAE5X,KAAQ,OAAOqd,GAAG,MAAMzF,EAAEqhF,UAAU4iB,GAAGx+F,EAAEzF,EAAEgG,EAAE3lB,EAAErD,GAAGyoB,EAAEouE,MAAM7zE,EAAE6zE,MAAM7zE,EAAE5f,OAAO,SAAS,CAAC,IAAIC,EAAE,CAAC,GAAG,OAC7f2f,EAAEqhF,UAAU,MAAMr3F,MAAMpK,EAAE,MAAM,OAAO,IAAI,CAAkB,GAAjB6lB,EAAEo4F,GAAGF,GAAG/yB,SAAYi0B,GAAG7+F,GAAG,CAAC3f,EAAE2f,EAAEqhF,UAAUr7E,EAAEhG,EAAE5X,KAAK,IAAIlL,EAAE8iB,EAAEm+F,cAA8B,OAAhB99G,EAAEy1G,IAAI91F,EAAE3f,EAAE01G,IAAI74G,EAAS8oB,GAAG,IAAK,SAAS2tE,GAAE,SAAStzF,GAAGszF,GAAE,QAAQtzF,GAAG,MAAM,IAAK,SAAS,IAAK,SAAS,IAAK,QAAQszF,GAAE,OAAOtzF,GAAG,MAAM,IAAK,QAAQ,IAAK,QAAQ,IAAIolB,EAAE,EAAEA,EAAEmuF,GAAGn3G,OAAOgpB,IAAIkuE,GAAEigB,GAAGnuF,GAAGplB,GAAG,MAAM,IAAK,SAASszF,GAAE,QAAQtzF,GAAG,MAAM,IAAK,MAAM,IAAK,QAAQ,IAAK,OAAOszF,GAAE,QAAQtzF,GAAGszF,GAAE,OAAOtzF,GAAG,MAAM,IAAK,UAAUszF,GAAE,SAAStzF,GAAG,MAAM,IAAK,QAAQi7F,GAAGj7F,EAAEnD,GAAGy2F,GAAE,UAAUtzF,GAAG,MAAM,IAAK,SAASA,EAAE+6F,cAC5f,CAACkqB,cAAcpoH,EAAEqoH,UAAU5xB,GAAE,UAAUtzF,GAAG,MAAM,IAAK,WAAW+7F,GAAG/7F,EAAEnD,GAAGy2F,GAAE,UAAUtzF,GAAkB,IAAI,IAAIyF,KAAvB66F,GAAG36E,EAAE9oB,GAAGuoB,EAAE,KAAkBvoB,EAAEA,EAAEuJ,eAAeX,KAAK9I,EAAEE,EAAE4I,GAAG,aAAaA,EAAE,kBAAkB9I,EAAEqD,EAAEkjD,cAAcvmD,IAAIyoB,EAAE,CAAC,WAAWzoB,IAAI,kBAAkBA,GAAGqD,EAAEkjD,cAAc,GAAGvmD,IAAIyoB,EAAE,CAAC,WAAW,GAAGzoB,IAAIs6F,EAAG7wF,eAAeX,IAAI,MAAM9I,GAAG,aAAa8I,GAAG6tF,GAAE,SAAStzF,IAAI,OAAO2lB,GAAG,IAAK,QAAQw0E,EAAGn6F,GAAGwqB,GAAGxqB,EAAEnD,GAAE,GAAI,MAAM,IAAK,WAAWs9F,EAAGn6F,GAAGi8F,GAAGj8F,GAAG,MAAM,IAAK,SAAS,IAAK,SAAS,MAAM,QAAQ,oBAAoBnD,EAAEsoH,UAAUnlH,EAAEolH,QACtfzQ,IAAI30G,EAAEolB,EAAEzF,EAAEs6F,YAAYj6G,EAAE,OAAOA,IAAI2f,EAAE5f,OAAO,EAAE,KAAK,CAAiZ,OAAhZ0F,EAAE,IAAI9I,EAAEmV,SAASnV,EAAEA,EAAE4+F,cAAcn2E,IAAI82E,GAAGC,OAAO/2E,EAAEi3E,GAAG12E,IAAIP,IAAI82E,GAAGC,KAAK,WAAWx2E,IAAGP,EAAE3f,EAAEuT,cAAc,QAASyjF,UAAU,qBAAuBr3E,EAAEA,EAAEghC,YAAYhhC,EAAEs3E,aAAa,kBAAkB18F,EAAEiqC,GAAG7kB,EAAE3f,EAAEuT,cAAc2M,EAAE,CAACskB,GAAGjqC,EAAEiqC,MAAM7kB,EAAE3f,EAAEuT,cAAc2M,GAAG,WAAWA,IAAIlgB,EAAE2f,EAAEplB,EAAEklH,SAASz/G,EAAEy/G,UAAS,EAAGllH,EAAEyhD,OAAOh8C,EAAEg8C,KAAKzhD,EAAEyhD,QAAQr8B,EAAE3f,EAAEyb,gBAAgBkE,EAAEO,GAAGP,EAAEqwF,IAAI91F,EAAEyF,EAAEswF,IAAI11G,EAAE0jH,GAAGt+F,EAAEzF,GAAE,GAAG,GAAIA,EAAEqhF,UAAU57E,EAAE3f,EAAE86F,GAAG56E,EAAE3lB,GAAU2lB,GAAG,IAAK,SAAS2tE,GAAE,SAASluE,GAAGkuE,GAAE,QAAQluE,GACpfzoB,EAAEqD,EAAE,MAAM,IAAK,SAAS,IAAK,SAAS,IAAK,QAAQszF,GAAE,OAAOluE,GAAGzoB,EAAEqD,EAAE,MAAM,IAAK,QAAQ,IAAK,QAAQ,IAAIrD,EAAE,EAAEA,EAAE42G,GAAGn3G,OAAOO,IAAI22F,GAAEigB,GAAG52G,GAAGyoB,GAAGzoB,EAAEqD,EAAE,MAAM,IAAK,SAASszF,GAAE,QAAQluE,GAAGzoB,EAAEqD,EAAE,MAAM,IAAK,MAAM,IAAK,QAAQ,IAAK,OAAOszF,GAAE,QAAQluE,GAAGkuE,GAAE,OAAOluE,GAAGzoB,EAAEqD,EAAE,MAAM,IAAK,UAAUszF,GAAE,SAASluE,GAAGzoB,EAAEqD,EAAE,MAAM,IAAK,QAAQi7F,GAAG71E,EAAEplB,GAAGrD,EAAEi+F,EAAGx1E,EAAEplB,GAAGszF,GAAE,UAAUluE,GAAG,MAAM,IAAK,SAASzoB,EAAE6+F,GAAGp2E,EAAEplB,GAAG,MAAM,IAAK,SAASolB,EAAE21E,cAAc,CAACkqB,cAAcjlH,EAAEklH,UAAUvoH,EAAE6D,EAAE,CAAC,EAAER,EAAE,CAACtD,WAAM,IAAS42F,GAAE,UAAUluE,GAAG,MAAM,IAAK,WAAW22E,GAAG32E,EAAEplB,GAAGrD,EACpfk/F,GAAGz2E,EAAEplB,GAAGszF,GAAE,UAAUluE,GAAG,MAAM,QAAQzoB,EAAEqD,EAAEsgG,GAAG36E,EAAEhpB,GAAG,IAAIwE,EAAExE,EAAE,IAAIE,KAAKsE,EAAE,GAAGA,EAAEiF,eAAevJ,GAAG,CAAC,IAAI+lB,EAAEzhB,EAAEtE,GAAG,UAAUA,EAAE2iG,GAAGp6E,EAAExC,GAAG,4BAA4B/lB,EAAuB,OAApB+lB,EAAEA,EAAEA,EAAEoyF,YAAO,IAAgB9qF,GAAG9E,EAAExC,GAAI,aAAa/lB,EAAE,kBAAkB+lB,GAAG,aAAa+C,GAAG,KAAK/C,IAAIi6E,GAAGz3E,EAAExC,GAAG,kBAAkBA,GAAGi6E,GAAGz3E,EAAE,GAAGxC,GAAG,mCAAmC/lB,GAAG,6BAA6BA,GAAG,cAAcA,IAAIo6F,EAAG7wF,eAAevJ,GAAG,MAAM+lB,GAAG,aAAa/lB,GAAGy2F,GAAE,SAASluE,GAAG,MAAMxC,GAAGo1E,EAAG5yE,EAAEvoB,EAAE+lB,EAAEnd,GAAG,CAAC,OAAOkgB,GAAG,IAAK,QAAQw0E,EAAG/0E,GAAGoF,GAAGpF,EAAEplB,GAAE,GACnf,MAAM,IAAK,WAAWm6F,EAAG/0E,GAAG62E,GAAG72E,GAAG,MAAM,IAAK,SAAS,MAAMplB,EAAEtD,OAAO0oB,EAAEuR,aAAa,QAAQ,GAAGqjE,EAAGh6F,EAAEtD,QAAQ,MAAM,IAAK,SAAS0oB,EAAE8/F,WAAWllH,EAAEklH,SAAmB,OAAVroH,EAAEmD,EAAEtD,OAAc0iE,GAAGh6C,IAAIplB,EAAEklH,SAASroH,GAAE,GAAI,MAAMmD,EAAE86F,cAAc17B,GAAGh6C,IAAIplB,EAAEklH,SAASllH,EAAE86F,cAAa,GAAI,MAAM,QAAQ,oBAAoBn+F,EAAEwoH,UAAU//F,EAAEggG,QAAQzQ,IAAIE,GAAGlvF,EAAE3lB,KAAK2f,EAAE5f,OAAO,EAAE,CAAC,OAAO4f,EAAE6zE,MAAM7zE,EAAE5f,OAAO,IAAI,CAAC,OAAO,KAAK,KAAK,EAAE,GAAGqlB,GAAG,MAAMzF,EAAEqhF,UAAU6iB,GAAGz+F,EAAEzF,EAAEyF,EAAE04F,cAAc99G,OAAO,CAAC,GAAG,kBAAkBA,GAAG,OAAO2f,EAAEqhF,UAAU,MAAMr3F,MAAMpK,EAAE,MAC/eomB,EAAE63F,GAAG94D,GAAG6lC,SAASizB,GAAGF,GAAG/yB,SAASi0B,GAAG7+F,IAAI3f,EAAE2f,EAAEqhF,UAAUr7E,EAAEhG,EAAEm+F,cAAc99G,EAAEy1G,IAAI91F,EAAE3f,EAAE+8F,YAAYp3E,IAAIhG,EAAE5f,OAAO,MAAKC,GAAG,IAAI2lB,EAAE7T,SAAS6T,EAAEA,EAAE41E,eAAe8pB,eAAerlH,IAAKy1G,IAAI91F,EAAEA,EAAEqhF,UAAUhhG,EAAE,CAAC,OAAO,KAAK,KAAK,GAA0B,OAAvBqB,GAAE6yF,IAAGl0F,EAAE2f,EAAE8iF,cAAiB,KAAa,GAAR9iF,EAAE5f,QAAiB4f,EAAE+5F,MAAM/zF,EAAEhG,IAAE3f,EAAE,OAAOA,EAAE2lB,GAAE,EAAG,OAAOP,OAAE,IAASzF,EAAEm+F,cAAckG,UAAUxF,GAAG7+F,GAAGgG,EAAE,OAAOP,EAAEq9E,cAAiBziG,IAAI2lB,GAAG,KAAY,EAAPhG,EAAEooC,QAAW,OAAO3iC,IAAG,IAAKzF,EAAEm+F,cAAcmG,4BAA4B,KAAe,EAAV/vB,GAAE3J,SAAW,IAAI+6B,KAAIA,GAAE,IAAW,IAAIA,IAAG,IAAIA,KAAEA,GACrf,GAAE,OAAO5E,IAAG,KAAQ,UAAH5F,KAAe,KAAQ,UAAHyK,KAAeC,GAAG9E,GAAEl+G,OAAMxC,GAAG2lB,KAAEhG,EAAE5f,OAAO,GAAS,MAAK,KAAK,EAAE,OAAOm/D,KAAKykD,GAAGhkG,GAAG,OAAOyF,GAAG4uF,GAAGr0F,EAAEqhF,UAAU4D,eAAe,KAAK,KAAK,GAAG,OAAOyU,GAAG15F,GAAG,KAA0C,KAAK,GAA0B,GAAvBte,GAAE6yF,IAAwB,QAArBl0F,EAAE2f,EAAE8iF,eAA0B,OAAO,KAAsC,GAAjC5lG,EAAE,KAAa,GAAR8iB,EAAE5f,OAA2B,QAAjB0F,EAAEzF,EAAEykH,WAAsB,GAAG5nH,EAAEkoH,GAAG/kH,GAAE,OAAQ,CAAC,GAAG,IAAIslH,IAAG,OAAOlgG,GAAG,KAAa,GAARA,EAAErlB,OAAU,IAAIqlB,EAAEzF,EAAEkjF,MAAM,OAAOz9E,GAAG,CAAS,GAAG,QAAX3f,EAAEo4G,GAAGz4F,IAAe,CACjW,IADkWzF,EAAE5f,OAAO,GAAGglH,GAAG/kH,GAAE,GAAoB,QAAhBnD,EAAE4I,EAAEw0G,eAAuBt6F,EAAEs6F,YAAYp9G,EAAE8iB,EAAE5f,OAAO,GACnf,OAAOC,EAAEy8G,aAAa98F,EAAEg9F,YAAY,MAAMh9F,EAAE88F,WAAWz8G,EAAEy8G,WAAWz8G,EAAE2lB,EAAMA,EAAEhG,EAAEkjF,MAAM,OAAOl9E,GAAOP,EAAEplB,GAANnD,EAAE8oB,GAAQ5lB,OAAO,EAAElD,EAAE6/G,WAAW,KAAK7/G,EAAE8/G,YAAY,KAAK9/G,EAAE4/G,WAAW,KAAmB,QAAdh3G,EAAE5I,EAAEylG,YAAoBzlG,EAAE08G,WAAW,EAAE18G,EAAE68G,MAAMt0F,EAAEvoB,EAAEgmG,MAAM,KAAKhmG,EAAEihH,cAAc,KAAKjhH,EAAE4lG,cAAc,KAAK5lG,EAAEo9G,YAAY,KAAKp9G,EAAE28G,aAAa,KAAK38G,EAAEmkG,UAAU,OAAOnkG,EAAE08G,WAAW9zG,EAAE8zG,WAAW18G,EAAE68G,MAAMj0G,EAAEi0G,MAAM78G,EAAEgmG,MAAMp9F,EAAEo9F,MAAMhmG,EAAEihH,cAAcr4G,EAAEq4G,cAAcjhH,EAAE4lG,cAAch9F,EAAEg9F,cAAc5lG,EAAEo9G,YAAYx0G,EAAEw0G,YAAYp9G,EAAEkL,KAAKtC,EAAEsC,KAAKqd,EAAE3f,EAAE+zG,aACpf38G,EAAE28G,aAAa,OAAOp0F,EAAE,KAAK,CAACs0F,MAAMt0F,EAAEs0F,MAAMD,aAAar0F,EAAEq0F,eAAe9zF,EAAEA,EAAEm9E,QAA2B,OAAnBvP,GAAEW,GAAY,EAAVA,GAAE3J,QAAU,GAAU5qE,EAAEkjF,KAAK,CAACz9E,EAAEA,EAAE09E,OAAO,CAAC,OAAO9iG,EAAE4kH,MAAM5wB,KAAIyxB,KAAK9lG,EAAE5f,OAAO,GAAGlD,GAAE,EAAGkoH,GAAG/kH,GAAE,GAAI2f,EAAE+5F,MAAM,SAAS,KAAK,CAAC,IAAI78G,EAAE,GAAW,QAARuoB,EAAEy4F,GAAGp4G,KAAa,GAAGka,EAAE5f,OAAO,GAAGlD,GAAE,EAAmB,QAAhB8oB,EAAEP,EAAE60F,eAAuBt6F,EAAEs6F,YAAYt0F,EAAEhG,EAAE5f,OAAO,GAAGglH,GAAG/kH,GAAE,GAAI,OAAOA,EAAE4kH,MAAM,WAAW5kH,EAAE6kH,WAAWp/G,EAAE68F,YAAYhoC,GAAG,OAAmC,QAA5B36C,EAAEA,EAAE88F,WAAWz8G,EAAEy8G,cAAsB98F,EAAE+8F,WAAW,MAAM,UAAU,EAAE1oB,KAAIh0F,EAAE0kH,mBAAmBe,IAAI,aAAa9/F,IAAIhG,EAAE5f,OACjf,GAAGlD,GAAE,EAAGkoH,GAAG/kH,GAAE,GAAI2f,EAAE+5F,MAAM,UAAU15G,EAAEwkH,aAAa/+G,EAAEq9F,QAAQnjF,EAAEkjF,MAAMljF,EAAEkjF,MAAMp9F,IAAa,QAATkgB,EAAE3lB,EAAE2kH,MAAch/F,EAAEm9E,QAAQr9F,EAAEka,EAAEkjF,MAAMp9F,EAAEzF,EAAE2kH,KAAKl/G,EAAE,CAAC,OAAO,OAAOzF,EAAE4kH,MAAMj/F,EAAE3lB,EAAE4kH,KAAK5kH,EAAEykH,UAAU9+F,EAAE3lB,EAAE4kH,KAAKj/F,EAAEm9E,QAAQ9iG,EAAEy8G,WAAW98F,EAAE88F,WAAWz8G,EAAE0kH,mBAAmB1wB,KAAIruE,EAAEm9E,QAAQ,KAAKnjF,EAAEu0E,GAAE3J,QAAQgJ,GAAEW,GAAEr3F,EAAI,EAAF8iB,EAAI,EAAI,EAAFA,GAAKgG,GAAG,KAAK,KAAK,GAAG,KAAK,GAAG,OAAO+/F,KAAK,OAAOtgG,GAAG,OAAOA,EAAEq9E,iBAAiB,OAAO9iF,EAAE8iF,gBAAgB,kCAAkCziG,EAAE+nD,OAAOpoC,EAAE5f,OAAO,GAAG,KAAK,MAAM4J,MAAMpK,EAAE,IAAIogB,EAAEm6E,KAAM,CACtd,SAAS6rB,GAAGvgG,GAAG,OAAOA,EAAE00E,KAAK,KAAK,EAAEuc,GAAGjxF,EAAErd,OAAOwuG,KAAK,IAAI52F,EAAEyF,EAAErlB,MAAM,OAAS,KAAF4f,GAAQyF,EAAErlB,OAAS,KAAH4f,EAAQ,GAAGyF,GAAG,KAAK,KAAK,EAAgC,GAA9B85C,KAAK79D,GAAEqB,IAAGrB,GAAEE,IAAGm9G,KAAkB,KAAO,IAApB/+F,EAAEyF,EAAErlB,QAAoB,MAAM4J,MAAMpK,EAAE,MAAyB,OAAnB6lB,EAAErlB,OAAS,KAAH4f,EAAQ,GAAUyF,EAAE,KAAK,EAAE,OAAOhkB,GAAGgkB,GAAG,KAAK,KAAK,GAAG,OAAO/jB,GAAE6yF,IAAe,MAAZv0E,EAAEyF,EAAErlB,QAAcqlB,EAAErlB,OAAS,KAAH4f,EAAQ,GAAGyF,GAAG,KAAK,KAAK,GAAG,OAAO/jB,GAAE6yF,IAAG,KAAK,KAAK,EAAE,OAAOh1B,KAAK,KAAK,KAAK,GAAG,OAAOm6C,GAAGj0F,GAAG,KAAK,KAAK,GAAG,KAAK,GAAG,OAAOsgG,KAAK,KAAK,QAAQ,OAAO,KAAK,CAC1a,SAASE,GAAGxgG,EAAEzF,GAAG,IAAI,IAAIgG,EAAE,GAAG3lB,EAAE2f,EAAE,GAAGgG,GAAGk0E,EAAG75F,GAAGA,EAAEA,EAAEuiG,aAAaviG,GAAG,IAAIrD,EAAEgpB,CAAC,CAAC,MAAM9oB,GAAGF,EAAE,6BAA6BE,EAAEgpH,QAAQ,KAAKhpH,EAAE48F,KAAK,CAAC,MAAM,CAAC/8F,MAAM0oB,EAAElU,OAAOyO,EAAE85E,MAAM98F,EAAE,CAAC,SAASmpH,GAAG1gG,EAAEzF,GAAG,IAAIhR,QAAQpF,MAAMoW,EAAEjjB,MAAM,CAAC,MAAMipB,GAAGwM,YAAW,WAAW,MAAMxM,CAAE,GAAE,CAAC,CAlBhQ+9F,GAAG,SAASt+F,EAAEzF,GAAG,IAAI,IAAIgG,EAAEhG,EAAEkjF,MAAM,OAAOl9E,GAAG,CAAC,GAAG,IAAIA,EAAEm0E,KAAK,IAAIn0E,EAAEm0E,IAAI10E,EAAEmG,YAAY5F,EAAEq7E,gBAAgB,GAAG,IAAIr7E,EAAEm0E,KAAK,OAAOn0E,EAAEk9E,MAAM,CAACl9E,EAAEk9E,MAAMN,OAAO58E,EAAEA,EAAEA,EAAEk9E,MAAM,QAAQ,CAAC,GAAGl9E,IAAIhG,EAAE,MAAM,KAAK,OAAOgG,EAAEm9E,SAAS,CAAC,GAAG,OAAOn9E,EAAE48E,QAAQ58E,EAAE48E,SAAS5iF,EAAE,OAAOgG,EAAEA,EAAE48E,MAAM,CAAC58E,EAAEm9E,QAAQP,OAAO58E,EAAE48E,OAAO58E,EAAEA,EAAEm9E,OAAO,CAAC,EAAE6gB,GAAG,WAAW,EACxTC,GAAG,SAASx+F,EAAEzF,EAAEgG,EAAE3lB,GAAG,IAAIrD,EAAEyoB,EAAE04F,cAAc,GAAGnhH,IAAIqD,EAAE,CAAColB,EAAEzF,EAAEqhF,UAAUwc,GAAGF,GAAG/yB,SAAS,IAAyU9kF,EAArU5I,EAAE,KAAK,OAAO8oB,GAAG,IAAK,QAAQhpB,EAAEi+F,EAAGx1E,EAAEzoB,GAAGqD,EAAE46F,EAAGx1E,EAAEplB,GAAGnD,EAAE,GAAG,MAAM,IAAK,SAASF,EAAE6+F,GAAGp2E,EAAEzoB,GAAGqD,EAAEw7F,GAAGp2E,EAAEplB,GAAGnD,EAAE,GAAG,MAAM,IAAK,SAASF,EAAE6D,EAAE,CAAC,EAAE7D,EAAE,CAACD,WAAM,IAASsD,EAAEQ,EAAE,CAAC,EAAER,EAAE,CAACtD,WAAM,IAASG,EAAE,GAAG,MAAM,IAAK,WAAWF,EAAEk/F,GAAGz2E,EAAEzoB,GAAGqD,EAAE67F,GAAGz2E,EAAEplB,GAAGnD,EAAE,GAAG,MAAM,QAAQ,oBAAoBF,EAAEwoH,SAAS,oBAAoBnlH,EAAEmlH,UAAU//F,EAAEggG,QAAQzQ,IAAyB,IAAIjzG,KAAzB4+F,GAAG36E,EAAE3lB,GAAS2lB,EAAE,KAAchpB,EAAE,IAAIqD,EAAEoG,eAAe1E,IAAI/E,EAAEyJ,eAAe1E,IAAI,MAAM/E,EAAE+E,GAAG,GAAG,UAC3eA,EAAE,CAAC,IAAIP,EAAExE,EAAE+E,GAAG,IAAI+D,KAAKtE,EAAEA,EAAEiF,eAAeX,KAAKkgB,IAAIA,EAAE,CAAC,GAAGA,EAAElgB,GAAG,GAAG,KAAK,4BAA4B/D,GAAG,aAAaA,GAAG,mCAAmCA,GAAG,6BAA6BA,GAAG,cAAcA,IAAIu1F,EAAG7wF,eAAe1E,GAAG7E,IAAIA,EAAE,KAAKA,EAAEA,GAAG,IAAImB,KAAK0D,EAAE,OAAO,IAAIA,KAAK1B,EAAE,CAAC,IAAI4iB,EAAE5iB,EAAE0B,GAAyB,GAAtBP,EAAE,MAAMxE,EAAEA,EAAE+E,QAAG,EAAU1B,EAAEoG,eAAe1E,IAAIkhB,IAAIzhB,IAAI,MAAMyhB,GAAG,MAAMzhB,GAAG,GAAG,UAAUO,EAAE,GAAGP,EAAE,CAAC,IAAIsE,KAAKtE,GAAGA,EAAEiF,eAAeX,IAAImd,GAAGA,EAAExc,eAAeX,KAAKkgB,IAAIA,EAAE,CAAC,GAAGA,EAAElgB,GAAG,IAAI,IAAIA,KAAKmd,EAAEA,EAAExc,eAAeX,IAAItE,EAAEsE,KAAKmd,EAAEnd,KAAKkgB,IAClfA,EAAE,CAAC,GAAGA,EAAElgB,GAAGmd,EAAEnd,GAAG,MAAMkgB,IAAI9oB,IAAIA,EAAE,IAAIA,EAAEmB,KAAK0D,EAAEikB,IAAIA,EAAE/C,MAAM,4BAA4BlhB,GAAGkhB,EAAEA,EAAEA,EAAEoyF,YAAO,EAAO7zG,EAAEA,EAAEA,EAAE6zG,YAAO,EAAO,MAAMpyF,GAAGzhB,IAAIyhB,IAAI/lB,EAAEA,GAAG,IAAImB,KAAK0D,EAAEkhB,IAAI,aAAalhB,EAAE,kBAAkBkhB,GAAG,kBAAkBA,IAAI/lB,EAAEA,GAAG,IAAImB,KAAK0D,EAAE,GAAGkhB,GAAG,mCAAmClhB,GAAG,6BAA6BA,IAAIu1F,EAAG7wF,eAAe1E,IAAI,MAAMkhB,GAAG,aAAalhB,GAAG4xF,GAAE,SAASluE,GAAGvoB,GAAGsE,IAAIyhB,IAAI/lB,EAAE,KAAK,kBAAkB+lB,GAAG,OAAOA,GAAGA,EAAEixE,WAAWoF,EAAGr2E,EAAE9T,YAAYjS,EAAEA,GAAG,IAAImB,KAAK0D,EAAEkhB,GAAG,CAAC+C,IAAI9oB,EAAEA,GAAG,IAAImB,KAAK,QAC/e2nB,GAAG,IAAIjkB,EAAE7E,GAAK8iB,EAAEs6F,YAAYv4G,KAAEie,EAAE5f,OAAO,EAAC,CAAC,EAAE8jH,GAAG,SAASz+F,EAAEzF,EAAEgG,EAAE3lB,GAAG2lB,IAAI3lB,IAAI2f,EAAE5f,OAAO,EAAE,EAc8K,IAAIgmH,GAAG,oBAAoBC,QAAQA,QAAQviB,IAAI,SAASwiB,GAAG7gG,EAAEzF,EAAEgG,IAAGA,EAAE60F,IAAI,EAAE70F,IAAKm0E,IAAI,EAAEn0E,EAAE2B,QAAQ,CAAC9J,QAAQ,MAAM,IAAIxd,EAAE2f,EAAEjjB,MAAsD,OAAhDipB,EAAEhT,SAAS,WAAWuzG,KAAKA,IAAG,EAAGC,GAAGnmH,GAAG8lH,GAAG1gG,EAAEzF,EAAE,EAASgG,CAAC,CACrb,SAASygG,GAAGhhG,EAAEzF,EAAEgG,IAAGA,EAAE60F,IAAI,EAAE70F,IAAKm0E,IAAI,EAAE,IAAI95F,EAAEolB,EAAErd,KAAKw7G,yBAAyB,GAAG,oBAAoBvjH,EAAE,CAAC,IAAIrD,EAAEgjB,EAAEjjB,MAAMipB,EAAE2B,QAAQ,WAAmB,OAARw+F,GAAG1gG,EAAEzF,GAAU3f,EAAErD,EAAE,CAAC,CAAC,IAAIE,EAAEuoB,EAAE47E,UAA8O,OAApO,OAAOnkG,GAAG,oBAAoBA,EAAEwpH,oBAAoB1gG,EAAEhT,SAAS,WAAW,oBAAoB3S,IAAI,OAAOsmH,GAAGA,GAAG,IAAItvB,IAAI,CAACtxF,OAAO4gH,GAAG7nD,IAAI/4D,MAAMogH,GAAG1gG,EAAEzF,IAAI,IAAIgG,EAAEhG,EAAE85E,MAAM/zF,KAAK2gH,kBAAkB1mG,EAAEjjB,MAAM,CAAC6pH,eAAe,OAAO5gG,EAAEA,EAAE,IAAI,GAAUA,CAAC,CAAC,IAAI6gG,GAAG,oBAAoBC,QAAQA,QAAQzvB,IACxc,SAAS0vB,GAAGthG,GAAG,IAAIzF,EAAEyF,EAAEouE,IAAI,GAAG,OAAO7zE,EAAE,GAAG,oBAAoBA,EAAE,IAAIA,EAAE,KAAK,CAAC,MAAMgG,GAAGghG,GAAGvhG,EAAEO,EAAE,MAAMhG,EAAE4qE,QAAQ,IAAI,CAAC,SAASq8B,GAAGxhG,EAAEzF,GAAG,OAAOA,EAAEm6E,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAA8Q,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,OAAjS,KAAK,EAAE,GAAW,IAARn6E,EAAE5f,OAAW,OAAOqlB,EAAE,CAAC,IAAIO,EAAEP,EAAE04F,cAAc99G,EAAEolB,EAAEq9E,cAA4B9iF,GAAdyF,EAAEzF,EAAEqhF,WAAcgb,wBAAwBr8F,EAAEm9F,cAAcn9F,EAAE5X,KAAK4d,EAAEozF,GAAGp5F,EAAE5X,KAAK4d,GAAG3lB,GAAGolB,EAAEyhG,oCAAoClnG,CAAC,CAAC,OAAO,KAAK,EAA6C,YAAnC,IAARA,EAAE5f,OAAWo1G,GAAGx1F,EAAEqhF,UAAU4D,gBAA0D,MAAMj7F,MAAMpK,EAAE,KAAM,CAClf,SAASunH,GAAG1hG,EAAEzF,EAAEgG,GAAG,OAAOA,EAAEm0E,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAgD,GAAG,QAAhCn6E,EAAE,QAAlBA,EAAEgG,EAAEs0F,aAAuBt6F,EAAE88F,WAAW,MAAiB,CAACr3F,EAAEzF,EAAEA,EAAEviB,KAAK,EAAE,CAAC,GAAG,KAAW,EAANgoB,EAAE00E,KAAO,CAAC,IAAI95F,EAAEolB,EAAE5d,OAAO4d,EAAE0F,QAAQ9qB,GAAG,CAAColB,EAAEA,EAAEhoB,IAAI,OAAOgoB,IAAIzF,EAAE,CAA8C,GAAG,QAAhCA,EAAE,QAAlBA,EAAEgG,EAAEs0F,aAAuBt6F,EAAE88F,WAAW,MAAiB,CAACr3F,EAAEzF,EAAEA,EAAEviB,KAAK,EAAE,CAAC,IAAIT,EAAEyoB,EAAEplB,EAAErD,EAAES,KAAa,KAAO,GAAfT,EAAEA,EAAEm9F,OAAe,KAAO,EAAFn9F,KAAOoqH,GAAGphG,EAAEP,GAAG4hG,GAAGrhG,EAAEP,IAAIA,EAAEplB,CAAC,OAAOolB,IAAIzF,EAAE,CAAC,OAAO,KAAK,EACtR,OADwRyF,EAAEO,EAAEq7E,UAAkB,EAARr7E,EAAE5lB,QAAU,OAAO4f,EAAEyF,EAAE+2F,qBAAqBn8G,EAAE2lB,EAAEm3F,cAAcn3F,EAAE5d,KAAK4X,EAAEm+F,cAAc/E,GAAGpzF,EAAE5d,KAAK4X,EAAEm+F,eAAe14F,EAAEi+F,mBAAmBrjH,EACxgB2f,EAAE8iF,cAAcr9E,EAAEyhG,4CAAuD,QAAhBlnG,EAAEgG,EAAEs0F,cAAsBc,GAAGp1F,EAAEhG,EAAEyF,IAAU,KAAK,EAAkB,GAAG,QAAnBzF,EAAEgG,EAAEs0F,aAAwB,CAAQ,GAAP70F,EAAE,KAAQ,OAAOO,EAAEk9E,MAAM,OAAOl9E,EAAEk9E,MAAM/I,KAAK,KAAK,EAA4B,KAAK,EAAE10E,EAAEO,EAAEk9E,MAAM7B,UAAU+Z,GAAGp1F,EAAEhG,EAAEyF,EAAE,CAAC,OAAO,KAAK,EAA2E,OAAzEA,EAAEO,EAAEq7E,eAAU,OAAOrhF,GAAW,EAARgG,EAAE5lB,OAAS80G,GAAGlvF,EAAE5d,KAAK4d,EAAEm4F,gBAAgB14F,EAAE6hG,SAAe,KAAK,EAAS,KAAK,EAAS,KAAK,GACnX,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,OAD6U,KAAK,GACzY,YAD4Y,OAAOthG,EAAE88E,gBAAgB98E,EAAEA,EAAE28E,UAAU,OAAO38E,IAAIA,EAAEA,EAAE88E,cAAc,OAAO98E,IAAIA,EAAEA,EAAE+8E,WAAW,OAAO/8E,GAAGy/E,GAAGz/E,OACzb,MAAMhc,MAAMpK,EAAE,KAAM,CAClF,SAAS2nH,GAAG9hG,EAAEzF,GAAG,IAAI,IAAIgG,EAAEP,IAAI,CAAC,GAAG,IAAIO,EAAEm0E,IAAI,CAAC,IAAI95F,EAAE2lB,EAAEq7E,UAAU,GAAGrhF,EAAY,oBAAV3f,EAAEA,EAAEyd,OAA4BgiF,YAAYz/F,EAAEy/F,YAAY,UAAU,OAAO,aAAaz/F,EAAE6d,QAAQ,WAAW,CAAC7d,EAAE2lB,EAAEq7E,UAAU,IAAIrkG,EAAEgpB,EAAEm4F,cAAcrgG,MAAM9gB,OAAE,IAASA,GAAG,OAAOA,GAAGA,EAAEyJ,eAAe,WAAWzJ,EAAEkhB,QAAQ,KAAK7d,EAAEyd,MAAMI,QAAQ0hF,GAAG,UAAU5iG,EAAE,CAAC,MAAM,GAAG,IAAIgpB,EAAEm0E,IAAIn0E,EAAEq7E,UAAUjE,UAAUp9E,EAAE,GAAGgG,EAAEm4F,mBAAmB,IAAI,KAAKn4F,EAAEm0E,KAAK,KAAKn0E,EAAEm0E,KAAK,OAAOn0E,EAAE88E,eAAe98E,IAAIP,IAAI,OAAOO,EAAEk9E,MAAM,CAACl9E,EAAEk9E,MAAMN,OAAO58E,EAAEA,EAAEA,EAAEk9E,MAAM,QAAQ,CAAC,GAAGl9E,IACtfP,EAAE,MAAM,KAAK,OAAOO,EAAEm9E,SAAS,CAAC,GAAG,OAAOn9E,EAAE48E,QAAQ58E,EAAE48E,SAASn9E,EAAE,OAAOO,EAAEA,EAAE48E,MAAM,CAAC58E,EAAEm9E,QAAQP,OAAO58E,EAAE48E,OAAO58E,EAAEA,EAAEm9E,OAAO,CAAC,CACzH,SAASqkB,GAAG/hG,EAAEzF,GAAG,GAAGo3F,IAAI,oBAAoBA,GAAGqQ,qBAAqB,IAAIrQ,GAAGqQ,qBAAqBtQ,GAAGn3F,EAAE,CAAC,MAAM9iB,GAAG,CAAC,OAAO8iB,EAAEm6E,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAmB,GAAG,QAAnB10E,EAAEzF,EAAEs6F,cAAyC,QAAf70F,EAAEA,EAAEq3F,YAAqB,CAAC,IAAI92F,EAAEP,EAAEA,EAAEhoB,KAAK,EAAE,CAAC,IAAI4C,EAAE2lB,EAAEhpB,EAAEqD,EAAE8qB,QAAgB,GAAR9qB,EAAEA,EAAE85F,SAAO,IAASn9F,EAAE,GAAG,KAAO,EAAFqD,GAAK+mH,GAAGpnG,EAAEgG,OAAO,CAAC3lB,EAAE2f,EAAE,IAAIhjB,GAAG,CAAC,MAAME,GAAG8pH,GAAG3mH,EAAEnD,EAAE,CAAC,CAAC8oB,EAAEA,EAAEvoB,IAAI,OAAOuoB,IAAIP,EAAE,CAAC,MAAM,KAAK,EAAsB,GAApBshG,GAAG/mG,GAAoB,oBAAjByF,EAAEzF,EAAEqhF,WAAmCqmB,qBAAqB,IAAIjiG,EAAEhX,MAAMuR,EAAEm+F,cAAc14F,EAAE1b,MAAMiW,EAAE8iF,cAAcr9E,EAAEiiG,sBAAsB,CAAC,MAAMxqH,GAAG8pH,GAAGhnG,EAC/gB9iB,EAAE,CAAC,MAAM,KAAK,EAAE6pH,GAAG/mG,GAAG,MAAM,KAAK,EAAE2nG,GAAGliG,EAAEzF,GAAG,CAAC,SAAS4nG,GAAGniG,GAAGA,EAAEk9E,UAAU,KAAKl9E,EAAEy9E,MAAM,KAAKz9E,EAAEo0F,aAAa,KAAKp0F,EAAEu3F,YAAY,KAAKv3F,EAAEq3F,WAAW,KAAKr3F,EAAE04F,cAAc,KAAK14F,EAAEq9E,cAAc,KAAKr9E,EAAEi5F,aAAa,KAAKj5F,EAAEm9E,OAAO,KAAKn9E,EAAE60F,YAAY,IAAI,CAAC,SAASuN,GAAGpiG,GAAG,OAAO,IAAIA,EAAE00E,KAAK,IAAI10E,EAAE00E,KAAK,IAAI10E,EAAE00E,GAAG,CACtS,SAAS2tB,GAAGriG,GAAGA,EAAE,CAAC,IAAI,IAAIzF,EAAEyF,EAAEm9E,OAAO,OAAO5iF,GAAG,CAAC,GAAG6nG,GAAG7nG,GAAG,MAAMyF,EAAEzF,EAAEA,EAAE4iF,MAAM,CAAC,MAAM54F,MAAMpK,EAAE,KAAM,CAAC,IAAIomB,EAAEhG,EAAgB,OAAdA,EAAEgG,EAAEq7E,UAAiBr7E,EAAEm0E,KAAK,KAAK,EAAE,IAAI95F,GAAE,EAAG,MAAM,KAAK,EAA+B,KAAK,EAAE2f,EAAEA,EAAEilF,cAAc5kG,GAAE,EAAG,MAAM,QAAQ,MAAM2J,MAAMpK,EAAE,MAAe,GAARomB,EAAE5lB,QAAW88F,GAAGl9E,EAAE,IAAIgG,EAAE5lB,QAAQ,IAAIqlB,EAAEzF,EAAE,IAAIgG,EAAEP,IAAI,CAAC,KAAK,OAAOO,EAAEm9E,SAAS,CAAC,GAAG,OAAOn9E,EAAE48E,QAAQilB,GAAG7hG,EAAE48E,QAAQ,CAAC58E,EAAE,KAAK,MAAMP,CAAC,CAACO,EAAEA,EAAE48E,MAAM,CAA2B,IAA1B58E,EAAEm9E,QAAQP,OAAO58E,EAAE48E,OAAW58E,EAAEA,EAAEm9E,QAAQ,IAAIn9E,EAAEm0E,KAAK,IAAIn0E,EAAEm0E,KAAK,KAAKn0E,EAAEm0E,KAAK,CAAC,GAAW,EAARn0E,EAAE5lB,MAAQ,SAAS4f,EAAE,GAAG,OAC/egG,EAAEk9E,OAAO,IAAIl9E,EAAEm0E,IAAI,SAASn6E,EAAOgG,EAAEk9E,MAAMN,OAAO58E,EAAEA,EAAEA,EAAEk9E,KAAK,CAAC,KAAa,EAARl9E,EAAE5lB,OAAS,CAAC4lB,EAAEA,EAAEq7E,UAAU,MAAM57E,CAAC,CAAC,CAACplB,EAAE0nH,GAAGtiG,EAAEO,EAAEhG,GAAGgoG,GAAGviG,EAAEO,EAAEhG,EAAE,CAC3H,SAAS+nG,GAAGtiG,EAAEzF,EAAEgG,GAAG,IAAI3lB,EAAEolB,EAAE00E,IAAIn9F,EAAE,IAAIqD,GAAG,IAAIA,EAAE,GAAGrD,EAAEyoB,EAAEzoB,EAAEyoB,EAAE47E,UAAU57E,EAAE47E,UAAUtzF,SAASiS,EAAE,IAAIgG,EAAE7T,SAAS6T,EAAEo8B,WAAWknB,aAAa7jD,EAAEzF,GAAGgG,EAAEsjD,aAAa7jD,EAAEzF,IAAI,IAAIgG,EAAE7T,UAAU6N,EAAEgG,EAAEo8B,YAAaknB,aAAa7jD,EAAEO,IAAKhG,EAAEgG,GAAI4F,YAAYnG,GAA4B,QAAxBO,EAAEA,EAAEiiG,2BAA8B,IAASjiG,GAAG,OAAOhG,EAAEylG,UAAUzlG,EAAEylG,QAAQzQ,UAAU,GAAG,IAAI30G,GAAc,QAAVolB,EAAEA,EAAEy9E,OAAgB,IAAI6kB,GAAGtiG,EAAEzF,EAAEgG,GAAGP,EAAEA,EAAE09E,QAAQ,OAAO19E,GAAGsiG,GAAGtiG,EAAEzF,EAAEgG,GAAGP,EAAEA,EAAE09E,OAAO,CACrZ,SAAS6kB,GAAGviG,EAAEzF,EAAEgG,GAAG,IAAI3lB,EAAEolB,EAAE00E,IAAIn9F,EAAE,IAAIqD,GAAG,IAAIA,EAAE,GAAGrD,EAAEyoB,EAAEzoB,EAAEyoB,EAAE47E,UAAU57E,EAAE47E,UAAUtzF,SAASiS,EAAEgG,EAAEsjD,aAAa7jD,EAAEzF,GAAGgG,EAAE4F,YAAYnG,QAAQ,GAAG,IAAIplB,GAAc,QAAVolB,EAAEA,EAAEy9E,OAAgB,IAAI8kB,GAAGviG,EAAEzF,EAAEgG,GAAGP,EAAEA,EAAE09E,QAAQ,OAAO19E,GAAGuiG,GAAGviG,EAAEzF,EAAEgG,GAAGP,EAAEA,EAAE09E,OAAO,CAC5N,SAASwkB,GAAGliG,EAAEzF,GAAG,IAAI,IAAahjB,EAAEE,EAAX8oB,EAAEhG,EAAE3f,GAAE,IAAS,CAAC,IAAIA,EAAE,CAACA,EAAE2lB,EAAE48E,OAAOn9E,EAAE,OAAO,CAAC,GAAG,OAAOplB,EAAE,MAAM2J,MAAMpK,EAAE,MAAoB,OAAd5C,EAAEqD,EAAEghG,UAAiBhhG,EAAE85F,KAAK,KAAK,EAAEj9F,GAAE,EAAG,MAAMuoB,EAAE,KAAK,EAAiC,KAAK,EAAEzoB,EAAEA,EAAEioG,cAAc/nG,GAAE,EAAG,MAAMuoB,EAAEplB,EAAEA,EAAEuiG,MAAM,CAACviG,GAAE,CAAE,CAAC,GAAG,IAAI2lB,EAAEm0E,KAAK,IAAIn0E,EAAEm0E,IAAI,CAAC10E,EAAE,IAAI,IAAI3f,EAAE2f,EAAEjkB,EAAEwkB,EAAE/C,EAAEzhB,IAAI,GAAGgmH,GAAG1hH,EAAEmd,GAAG,OAAOA,EAAEigF,OAAO,IAAIjgF,EAAEk3E,IAAIl3E,EAAEigF,MAAMN,OAAO3/E,EAAEA,EAAEA,EAAEigF,UAAU,CAAC,GAAGjgF,IAAIzhB,EAAE,MAAMikB,EAAE,KAAK,OAAOxC,EAAEkgF,SAAS,CAAC,GAAG,OAAOlgF,EAAE2/E,QAAQ3/E,EAAE2/E,SAASphG,EAAE,MAAMikB,EAAExC,EAAEA,EAAE2/E,MAAM,CAAC3/E,EAAEkgF,QAAQP,OAAO3/E,EAAE2/E,OAAO3/E,EAAEA,EAAEkgF,OAAO,CAACjmG,GAAG4I,EAAE9I,EAAEwE,EAAEwkB,EAAEq7E,UACrf,IAAIv7F,EAAEqM,SAASrM,EAAEs8C,WAAWqE,YAAYjlD,GAAGsE,EAAE2gD,YAAYjlD,IAAIxE,EAAEypD,YAAYzgC,EAAEq7E,UAAU,MAAM,GAAG,IAAIr7E,EAAEm0E,KAAK,GAAG,OAAOn0E,EAAEk9E,MAAM,CAAClmG,EAAEgpB,EAAEq7E,UAAU4D,cAAc/nG,GAAE,EAAG8oB,EAAEk9E,MAAMN,OAAO58E,EAAEA,EAAEA,EAAEk9E,MAAM,QAAQ,OAAO,GAAGskB,GAAG/hG,EAAEO,GAAG,OAAOA,EAAEk9E,MAAM,CAACl9E,EAAEk9E,MAAMN,OAAO58E,EAAEA,EAAEA,EAAEk9E,MAAM,QAAQ,CAAC,GAAGl9E,IAAIhG,EAAE,MAAM,KAAK,OAAOgG,EAAEm9E,SAAS,CAAC,GAAG,OAAOn9E,EAAE48E,QAAQ58E,EAAE48E,SAAS5iF,EAAE,OAAkB,KAAXgG,EAAEA,EAAE48E,QAAazI,MAAM95F,GAAE,EAAG,CAAC2lB,EAAEm9E,QAAQP,OAAO58E,EAAE48E,OAAO58E,EAAEA,EAAEm9E,OAAO,CAAC,CAC1Z,SAAS+kB,GAAGziG,EAAEzF,GAAG,OAAOA,EAAEm6E,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,IAAIn0E,EAAEhG,EAAEs6F,YAAyC,GAAG,QAAhCt0F,EAAE,OAAOA,EAAEA,EAAE82F,WAAW,MAAiB,CAAC,IAAIz8G,EAAE2lB,EAAEA,EAAEvoB,KAAK,GAAG,KAAW,EAAN4C,EAAE85F,OAAS10E,EAAEplB,EAAE8qB,QAAQ9qB,EAAE8qB,aAAQ,OAAO,IAAS1F,GAAGA,KAAKplB,EAAEA,EAAE5C,WAAW4C,IAAI2lB,EAAE,CAAC,OAAO,KAAK,EAErJ,KAAK,GAAoG,KAAK,GAAG,OAF6C,KAAK,EAAgB,GAAG,OAAjBA,EAAEhG,EAAEqhF,WAAqB,CAAChhG,EAAE2f,EAAEm+F,cAAc,IAAInhH,EAAE,OAAOyoB,EAAEA,EAAE04F,cAAc99G,EAAEolB,EAAEzF,EAAE5X,KAAK,IAAIlL,EAAE8iB,EAAEs6F,YAA+B,GAAnBt6F,EAAEs6F,YAAY,KAAQ,OAAOp9G,EAAE,CAAgF,IAA/E8oB,EAAE+vF,IAAI11G,EAAE,UAAUolB,GAAG,UAAUplB,EAAE+H,MAAM,MAAM/H,EAAE0L,MAAM0vF,GAAGz1E,EAAE3lB,GAAGugG,GAAGn7E,EAAEzoB,GAAGgjB,EAAE4gF,GAAGn7E,EAAEplB,GAAOrD,EAAE,EAAEA,EAAEE,EAAET,OAAOO,GAClf,EAAE,CAAC,IAAI8I,EAAE5I,EAAEF,GAAGwE,EAAEtE,EAAEF,EAAE,GAAG,UAAU8I,EAAE+5F,GAAG75E,EAAExkB,GAAG,4BAA4BsE,EAAEykB,GAAGvE,EAAExkB,GAAG,aAAasE,EAAEo3F,GAAGl3E,EAAExkB,GAAG62F,EAAGryE,EAAElgB,EAAEtE,EAAEwe,EAAE,CAAC,OAAOyF,GAAG,IAAK,QAAQi2E,GAAG11E,EAAE3lB,GAAG,MAAM,IAAK,WAAWg8F,GAAGr2E,EAAE3lB,GAAG,MAAM,IAAK,SAASolB,EAAEO,EAAEo1E,cAAckqB,YAAYt/F,EAAEo1E,cAAckqB,cAAcjlH,EAAEklH,SAAmB,OAAVroH,EAAEmD,EAAEtD,OAAc0iE,GAAGz5C,IAAI3lB,EAAEklH,SAASroH,GAAE,GAAIuoB,MAAMplB,EAAEklH,WAAW,MAAMllH,EAAE86F,aAAa17B,GAAGz5C,IAAI3lB,EAAEklH,SAASllH,EAAE86F,cAAa,GAAI17B,GAAGz5C,IAAI3lB,EAAEklH,SAASllH,EAAEklH,SAAS,GAAG,IAAG,IAAK,CAAC,CAAC,OAAO,KAAK,EAAE,GAAG,OAAOvlG,EAAEqhF,UAAU,MAAMr3F,MAAMpK,EAAE,MAC/c,YADqdogB,EAAEqhF,UAAUjE,UACjfp9E,EAAEm+F,eAAqB,KAAK,EAA8D,aAA5Dn4F,EAAEhG,EAAEqhF,WAAY2D,UAAUh/E,EAAEg/E,SAAQ,EAAGS,GAAGz/E,EAAEi/E,iBAAsC,KAAK,GAAyD,OAAtD,OAAOjlF,EAAE8iF,gBAAgBqlB,GAAG9zB,KAAIkzB,GAAGvnG,EAAEkjF,OAAM,SAAKklB,GAAGpoG,GAAU,KAAK,GAAS,YAANooG,GAAGpoG,GAAyB,KAAK,GAAG,KAAK,GAAgC,YAA7BunG,GAAGvnG,EAAE,OAAOA,EAAE8iF,eAAsB,MAAM94F,MAAMpK,EAAE,KAAM,CAAC,SAASwoH,GAAG3iG,GAAG,IAAIzF,EAAEyF,EAAE60F,YAAY,GAAG,OAAOt6F,EAAE,CAACyF,EAAE60F,YAAY,KAAK,IAAIt0F,EAAEP,EAAE47E,UAAU,OAAOr7E,IAAIA,EAAEP,EAAE47E,UAAU,IAAIwlB,IAAI7mG,EAAEjX,SAAQ,SAASiX,GAAG,IAAI3f,EAAEihD,GAAG1zC,KAAK,KAAK6X,EAAEzF,GAAGgG,EAAEkuF,IAAIl0F,KAAKgG,EAAE84C,IAAI9+C,GAAGA,EAAEtW,KAAKrJ,EAAEA,GAAG,GAAE,CAAC,CACze,SAASgoH,GAAG5iG,EAAEzF,GAAG,OAAO,OAAOyF,IAAsB,QAAlBA,EAAEA,EAAEq9E,gBAAwB,OAAOr9E,EAAEs9E,cAA+B,QAAlB/iF,EAAEA,EAAE8iF,gBAAwB,OAAO9iF,EAAE+iF,WAAc,CAAC,IAAIulB,GAAGrmH,KAAKi9C,KAAKqpE,GAAG7vB,EAAG9D,uBAAuB4zB,GAAG9vB,EAAG3D,kBAAkB0zB,GAAE,EAAE1H,GAAE,KAAK2H,GAAE,KAAK7lH,GAAE,EAAE8lH,GAAG,EAAEC,GAAGzS,GAAG,GAAGwP,GAAE,EAAEkD,GAAG,KAAKC,GAAG,EAAE3N,GAAG,EAAEyK,GAAG,EAAEmD,GAAG,EAAEC,GAAG,KAAKb,GAAG,EAAErC,GAAGmD,IAAS,SAASC,KAAKpD,GAAGzxB,KAAI,GAAG,CAAC,IA8BsF80B,GA9BlF3mH,GAAE,KAAK+jH,IAAG,EAAGC,GAAG,KAAKG,GAAG,KAAKyC,IAAG,EAAGC,GAAG,KAAKC,GAAG,GAAGC,GAAG,GAAGC,GAAG,GAAGC,GAAG,KAAKC,GAAG,EAAEC,GAAG,KAAKC,IAAI,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,KAAKC,IAAG,EAAG,SAASvO,KAAK,OAAO,KAAO,GAAFgN,IAAMp0B,MAAK,IAAIu1B,GAAGA,GAAGA,GAAGv1B,IAAG,CAC9e,SAASqnB,GAAGj2F,GAAY,GAAG,KAAO,GAAnBA,EAAEA,EAAE2iC,OAAkB,OAAO,EAAE,GAAG,KAAO,EAAF3iC,GAAK,OAAO,KAAKqzF,KAAK,EAAE,EAAkB,GAAhB,IAAI+Q,KAAKA,GAAGf,IAAO,IAAI3P,GAAGrkB,WAAW,CAAC,IAAIg1B,KAAKA,GAAG,OAAOd,GAAGA,GAAGjiB,aAAa,GAAGthF,EAAEokG,GAAG,IAAI7pG,EAAE,SAAS8pG,GAAsD,OAA7C,KAAN9pG,IAAIA,KAA8B,KAAPA,GAAbyF,EAAE,SAASA,IAAOA,KAAUzF,EAAE,OAAcA,CAAC,CAA2D,OAA1DyF,EAAEqzF,KAAK,KAAO,EAAF2P,KAAM,KAAKhjG,EAAEA,EAAE8hF,GAAG,GAAGsiB,IAAapkG,EAAE8hF,GAAV9hF,EAtK3Q,SAAYA,GAAG,OAAOA,GAAG,KAAK,GAAG,OAAO,GAAG,KAAK,GAAG,OAAO,GAAG,KAAK,GAAG,KAAK,GAAG,OAAO,EAAE,KAAK,GAAG,OAAO,EAAE,QAAQ,OAAO,EAAE,CAsKqJwkG,CAAGxkG,GAAUokG,IAAYpkG,CAAC,CACpT,SAASk2F,GAAGl2F,EAAEzF,EAAEgG,GAAG,GAAG,GAAG0jG,GAAG,MAAMA,GAAG,EAAEC,GAAG,KAAK3/G,MAAMpK,EAAE,MAAgB,GAAG,QAAb6lB,EAAEykG,GAAGzkG,EAAEzF,IAAe,OAAO,KAAK0nF,GAAGjiF,EAAEzF,EAAEgG,GAAGP,IAAIs7F,KAAI6E,IAAI5lG,EAAE,IAAI2lG,IAAGE,GAAGpgG,EAAE5iB,KAAI,IAAIxC,EAAEy4G,KAAK,IAAI94F,EAAE,KAAO,EAAFyoG,KAAM,KAAO,GAAFA,IAAM0B,GAAG1kG,IAAI2kG,GAAG3kG,EAAEO,GAAG,IAAIyiG,KAAIS,KAAKjQ,QAAQ,KAAO,EAAFwP,KAAM,KAAKpoH,GAAG,KAAKA,IAAI,OAAOopH,GAAGA,GAAG,IAAIpyB,IAAI,CAAC5xE,IAAIgkG,GAAG3qD,IAAIr5C,IAAI2kG,GAAG3kG,EAAEO,IAAIgjG,GAAGvjG,CAAC,CAAC,SAASykG,GAAGzkG,EAAEzF,GAAGyF,EAAEs0F,OAAO/5F,EAAE,IAAIgG,EAAEP,EAAEk9E,UAAqC,IAA3B,OAAO38E,IAAIA,EAAE+zF,OAAO/5F,GAAGgG,EAAEP,EAAMA,EAAEA,EAAEm9E,OAAO,OAAOn9E,GAAGA,EAAEm0F,YAAY55F,EAAgB,QAAdgG,EAAEP,EAAEk9E,aAAqB38E,EAAE4zF,YAAY55F,GAAGgG,EAAEP,EAAEA,EAAEA,EAAEm9E,OAAO,OAAO,IAAI58E,EAAEm0E,IAAIn0E,EAAEq7E,UAAU,IAAI,CAC7e,SAAS+oB,GAAG3kG,EAAEzF,GAAG,IAAI,IAAIgG,EAAEP,EAAE4kG,aAAahqH,EAAEolB,EAAEwhF,eAAejqG,EAAEyoB,EAAEyhF,YAAYhqG,EAAEuoB,EAAE6kG,gBAAgBxkH,EAAE2f,EAAEshF,aAAa,EAAEjhG,GAAG,CAAC,IAAItE,EAAE,GAAG2lG,GAAGrhG,GAAGmd,EAAE,GAAGzhB,EAAEO,EAAE7E,EAAEsE,GAAG,IAAI,IAAIO,GAAG,GAAG,KAAKkhB,EAAE5iB,IAAI,KAAK4iB,EAAEjmB,GAAG,CAAC+E,EAAEie,EAAE6mF,GAAG5jF,GAAG,IAAIpmB,EAAEF,GAAEO,EAAEsE,GAAG,IAAI3E,EAAEkF,EAAE,IAAI,GAAGlF,EAAEkF,EAAE,KAAK,CAAC,OAAOA,GAAGie,IAAIyF,EAAEuhF,cAAc/jF,GAAGnd,IAAImd,CAAC,CAAuB,GAAtB5iB,EAAEymG,GAAGrhF,EAAEA,IAAIs7F,GAAEl+G,GAAE,GAAGmd,EAAErjB,GAAK,IAAI0D,EAAE,OAAO2lB,IAAIA,IAAIwyF,IAAIjB,GAAGvxF,GAAGP,EAAE4kG,aAAa,KAAK5kG,EAAE8kG,iBAAiB,OAAO,CAAC,GAAG,OAAOvkG,EAAE,CAAC,GAAGP,EAAE8kG,mBAAmBvqG,EAAE,OAAOgG,IAAIwyF,IAAIjB,GAAGvxF,EAAE,CAAC,KAAKhG,GAAGgG,EAAEmkG,GAAGv8G,KAAK,KAAK6X,GAAG,OAAOizF,IAAIA,GAAG,CAAC1yF,GAAG2yF,GAAGrB,GAAGU,GAAGkB,KAAKR,GAAGr6G,KAAK2nB,GACrfA,EAAEwyF,IAAI,KAAKx4F,EAAEgG,EAAEgzF,GAAG,GAAGmR,GAAGv8G,KAAK,KAAK6X,KAAKO,EAzK+F,SAAYP,GAAG,OAAOA,GAAG,KAAK,GAAG,KAAK,GAAG,OAAO,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,OAAO,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,GAAG,KAAK,EAAE,OAAO,GAAG,QAAQ,MAAMzb,MAAMpK,EAAE,IAAI6lB,IAAK,CAyK7T+kG,CAAGxqG,GAAGgG,EAAEgzF,GAAGhzF,EAAEykG,GAAG78G,KAAK,KAAK6X,KAAKA,EAAE8kG,iBAAiBvqG,EAAEyF,EAAE4kG,aAAarkG,CAAC,CAAC,CAC9G,SAASykG,GAAGhlG,GAAiB,GAAdmkG,IAAI,EAAEE,GAAGD,GAAG,EAAK,KAAO,GAAFpB,IAAM,MAAMz+G,MAAMpK,EAAE,MAAM,IAAIogB,EAAEyF,EAAE4kG,aAAa,GAAGK,MAAMjlG,EAAE4kG,eAAerqG,EAAE,OAAO,KAAK,IAAIgG,EAAE8gF,GAAGrhF,EAAEA,IAAIs7F,GAAEl+G,GAAE,GAAG,GAAG,IAAImjB,EAAE,OAAO,KAAK,IAAI3lB,EAAE2lB,EAAMhpB,EAAEyrH,GAAEA,IAAG,GAAG,IAAIvrH,EAAEytH,KAAkC,IAA1B5J,KAAIt7F,GAAG5iB,KAAIxC,IAAE6oH,KAAK0B,GAAGnlG,EAAEplB,UAAUwqH,KAAK,KAAK,CAAC,MAAMrpH,GAAGspH,GAAGrlG,EAAEjkB,EAAE,CAA8D,GAApDi4G,KAAK8O,GAAG39B,QAAQ1tF,EAAEurH,GAAEzrH,EAAE,OAAO0rH,GAAEroH,EAAE,GAAG0gH,GAAE,KAAKl+G,GAAE,EAAExC,EAAEslH,IAAM,KAAKmD,GAAGlD,IAAIgF,GAAGnlG,EAAE,QAAQ,GAAG,IAAIplB,EAAE,CAAyF,GAAxF,IAAIA,IAAIooH,IAAG,GAAGhjG,EAAEu/E,UAAUv/E,EAAEu/E,SAAQ,EAAGwQ,GAAG/vF,EAAEw/E,gBAAwB,KAARj/E,EAAEshF,GAAG7hF,MAAWplB,EAAE0qH,GAAGtlG,EAAEO,KAAQ,IAAI3lB,EAAE,MAAM2f,EAAE6oG,GAAG+B,GAAGnlG,EAAE,GAAGogG,GAAGpgG,EAAEO,GAAGokG,GAAG3kG,EAAE4uE,MAAKr0E,EAC3c,OAD6cyF,EAAEulG,aACrfvlG,EAAEmlE,QAAQ+X,UAAUl9E,EAAEwlG,cAAcjlG,EAAS3lB,GAAG,KAAK,EAAE,KAAK,EAAE,MAAM2J,MAAMpK,EAAE,MAAM,KAAK,EACI,KAAK,EAAEsrH,GAAGzlG,GAAG,MADH,KAAK,EAAU,GAARogG,GAAGpgG,EAAEO,IAAS,SAAFA,KAAcA,GAAiB,IAAb3lB,EAAE8nH,GAAG,IAAI9zB,MAAU,CAAC,GAAG,IAAIyS,GAAGrhF,EAAE,GAAG,MAAyB,KAAnBzoB,EAAEyoB,EAAEwhF,gBAAqBjhF,KAAKA,EAAE,CAACy1F,KAAKh2F,EAAEyhF,aAAazhF,EAAEwhF,eAAejqG,EAAE,KAAK,CAACyoB,EAAE0lG,cAAcrzD,GAAGozD,GAAGt9G,KAAK,KAAK6X,GAAGplB,GAAG,KAAK,CAAC6qH,GAAGzlG,GAAG,MAAM,KAAK,EAAU,GAARogG,GAAGpgG,EAAEO,IAAS,QAAFA,KAAaA,EAAE,MAAqB,IAAf3lB,EAAEolB,EAAEkiF,WAAe3qG,GAAG,EAAE,EAAEgpB,GAAG,CAAC,IAAIlgB,EAAE,GAAGqhG,GAAGnhF,GAAG9oB,EAAE,GAAG4I,GAAEA,EAAEzF,EAAEyF,IAAK9I,IAAIA,EAAE8I,GAAGkgB,IAAI9oB,CAAC,CAClZ,GADmZ8oB,EAAEhpB,EAClZ,IAD4ZgpB,GAAG,KAAXA,EAAEquE,KAAIruE,GAAW,IAAI,IAAIA,EAAE,IAAI,KAAKA,EAAE,KAAK,KAAKA,EAAE,KAAK,IAAIA,EAAE,IAAI,KAClfA,EAAE,KAAK,KAAKsiG,GAAGtiG,EAAE,OAAOA,GAAU,CAACP,EAAE0lG,cAAcrzD,GAAGozD,GAAGt9G,KAAK,KAAK6X,GAAGO,GAAG,KAAK,CAACklG,GAAGzlG,GAAG,MAAyB,QAAQ,MAAMzb,MAAMpK,EAAE,MAAO,CAAW,OAAVwqH,GAAG3kG,EAAE4uE,MAAY5uE,EAAE4kG,eAAerqG,EAAEyqG,GAAG78G,KAAK,KAAK6X,GAAG,IAAI,CAAC,SAASogG,GAAGpgG,EAAEzF,GAAuD,IAApDA,IAAI+oG,GAAG/oG,IAAI4lG,GAAGngG,EAAEwhF,gBAAgBjnF,EAAEyF,EAAEyhF,cAAclnF,EAAMyF,EAAEA,EAAE6kG,gBAAgB,EAAEtqG,GAAG,CAAC,IAAIgG,EAAE,GAAGmhF,GAAGnnF,GAAG3f,EAAE,GAAG2lB,EAAEP,EAAEO,IAAI,EAAEhG,IAAI3f,CAAC,CAAC,CAC5U,SAAS8pH,GAAG1kG,GAAG,GAAG,KAAO,GAAFgjG,IAAM,MAAMz+G,MAAMpK,EAAE,MAAW,GAAL8qH,KAAQjlG,IAAIs7F,IAAG,KAAKt7F,EAAEuhF,aAAankG,IAAG,CAAC,IAAImd,EAAEnd,GAAMmjB,EAAE+kG,GAAGtlG,EAAEzF,GAAG,KAAK8oG,GAAGlD,MAAgB5/F,EAAE+kG,GAAGtlG,EAAfzF,EAAE8mF,GAAGrhF,EAAEzF,IAAa,MAAgBgG,EAAE+kG,GAAGtlG,EAAfzF,EAAE8mF,GAAGrhF,EAAE,IAAgH,GAAnG,IAAIA,EAAE00E,KAAK,IAAIn0E,IAAIyiG,IAAG,GAAGhjG,EAAEu/E,UAAUv/E,EAAEu/E,SAAQ,EAAGwQ,GAAG/vF,EAAEw/E,gBAAwB,KAARjlF,EAAEsnF,GAAG7hF,MAAWO,EAAE+kG,GAAGtlG,EAAEzF,KAAQ,IAAIgG,EAAE,MAAMA,EAAE6iG,GAAG+B,GAAGnlG,EAAE,GAAGogG,GAAGpgG,EAAEzF,GAAGoqG,GAAG3kG,EAAE4uE,MAAKruE,EAAuE,OAArEP,EAAEulG,aAAavlG,EAAEmlE,QAAQ+X,UAAUl9E,EAAEwlG,cAAcjrG,EAAEkrG,GAAGzlG,GAAG2kG,GAAG3kG,EAAE4uE,MAAY,IAAI,CACvR,SAAS+2B,GAAG3lG,EAAEzF,GAAG,IAAIgG,EAAEyiG,GAAEA,IAAG,EAAE,IAAI,OAAOhjG,EAAEzF,EAAE,CAAC,QAAY,KAAJyoG,GAAEziG,KAAUkjG,KAAKjQ,KAAK,CAAC,CAAC,SAASoS,GAAG5lG,EAAEzF,GAAG,IAAIgG,EAAEyiG,GAAEA,KAAI,EAAEA,IAAG,EAAE,IAAI,OAAOhjG,EAAEzF,EAAE,CAAC,QAAY,KAAJyoG,GAAEziG,KAAUkjG,KAAKjQ,KAAK,CAAC,CAAC,SAASqK,GAAG79F,EAAEzF,GAAG4zE,GAAEg1B,GAAGD,IAAIA,IAAI3oG,EAAE8oG,IAAI9oG,CAAC,CAAC,SAAS+lG,KAAK4C,GAAGC,GAAGh+B,QAAQlpF,GAAEknH,GAAG,CAC/V,SAASgC,GAAGnlG,EAAEzF,GAAGyF,EAAEulG,aAAa,KAAKvlG,EAAEwlG,cAAc,EAAE,IAAIjlG,EAAEP,EAAE0lG,cAAiD,IAAlC,IAAInlG,IAAIP,EAAE0lG,eAAe,EAAE7V,GAAGtvF,IAAO,OAAO0iG,GAAE,IAAI1iG,EAAE0iG,GAAE9lB,OAAO,OAAO58E,GAAG,CAAC,IAAI3lB,EAAE2lB,EAAE,OAAO3lB,EAAE85F,KAAK,KAAK,EAA6B,QAA3B95F,EAAEA,EAAE+H,KAAKuuG,yBAA4B,IAASt2G,GAAGu2G,KAAK,MAAM,KAAK,EAAEr3C,KAAK79D,GAAEqB,IAAGrB,GAAEE,IAAGm9G,KAAK,MAAM,KAAK,EAAEt9G,GAAGpB,GAAG,MAAM,KAAK,EAAEk/D,KAAK,MAAM,KAAK,GAAc,KAAK,GAAG79D,GAAE6yF,IAAG,MAAM,KAAK,GAAGmlB,GAAGr5G,GAAG,MAAM,KAAK,GAAG,KAAK,GAAG0lH,KAAK//F,EAAEA,EAAE48E,MAAM,CAACme,GAAEt7F,EAAEijG,GAAEzL,GAAGx3F,EAAEmlE,QAAQ,MAAM/nF,GAAE8lH,GAAGG,GAAG9oG,EAAE2lG,GAAE,EAAEkD,GAAG,KAAKE,GAAGnD,GAAGzK,GAAG,CAAC,CACxc,SAAS2P,GAAGrlG,EAAEzF,GAAG,OAAE,CAAC,IAAIgG,EAAE0iG,GAAE,IAAuB,GAAnBjP,KAAKwF,GAAGr0B,QAAQg1B,GAAMR,GAAG,CAAC,IAAI,IAAI/+G,EAAEs0F,GAAEmO,cAAc,OAAOziG,GAAG,CAAC,IAAIrD,EAAEqD,EAAE0/G,MAAM,OAAO/iH,IAAIA,EAAE29G,QAAQ,MAAMt6G,EAAEA,EAAE5C,IAAI,CAAC2hH,IAAG,CAAE,CAAuC,GAAtCD,GAAG,EAAE78G,GAAEM,GAAE+xF,GAAE,KAAK0qB,IAAG,EAAGmJ,GAAG59B,QAAQ,KAAQ,OAAO5kE,GAAG,OAAOA,EAAE48E,OAAO,CAAC+iB,GAAE,EAAEkD,GAAG7oG,EAAE0oG,GAAE,KAAK,KAAK,CAACjjG,EAAE,CAAC,IAAIvoB,EAAEuoB,EAAE3f,EAAEkgB,EAAE48E,OAAOphG,EAAEwkB,EAAE/C,EAAEjD,EAAoD,GAAlDA,EAAEnd,GAAErB,EAAEpB,OAAO,KAAKoB,EAAEw7G,YAAYx7G,EAAEs7G,WAAW,KAAQ,OAAO75F,GAAG,kBAAkBA,GAAG,oBAAoBA,EAAEvZ,KAAK,CAAC,IAAI3H,EAAEkhB,EAAE,GAAG,KAAY,EAAPzhB,EAAE4mD,MAAQ,CAAC,IAAIvrD,EAAE2E,EAAEmhG,UAAU9lG,GAAG2E,EAAE84G,YAAYz9G,EAAEy9G,YAAY94G,EAAEshG,cAAcjmG,EAAEimG,cAActhG,EAAEu4G,MAAMl9G,EAAEk9G,QACpfv4G,EAAE84G,YAAY,KAAK94G,EAAEshG,cAAc,KAAK,CAAC,IAAI7qE,EAAE,KAAe,EAAVs8D,GAAE3J,SAAWjoF,EAAEmD,EAAE,EAAE,CAAC,IAAIuyB,EAAE,GAAGA,EAAE,KAAK11B,EAAEw3F,IAAI,CAAC,IAAIthE,EAAEl2B,EAAEmgG,cAAc,GAAG,OAAOjqE,EAAER,EAAE,OAAOQ,EAAEkqE,eAAqB,CAAC,IAAIlhD,EAAEl/C,EAAEw7G,cAAc9lF,OAAE,IAASwpB,EAAEwiE,YAAY,IAAKxiE,EAAEyiE,6BAA8BrsF,EAAO,CAAC,CAAC,GAAGI,EAAE,CAAC,IAAIsX,EAAEhtC,EAAE23G,YAAY,GAAG,OAAO3qE,EAAE,CAAC,IAAI7lB,EAAE,IAAIutE,IAAIvtE,EAAEg1C,IAAI/8D,GAAGY,EAAE23G,YAAYxwF,CAAC,MAAM6lB,EAAEmvB,IAAI/8D,GAAG,GAAG,KAAY,EAAPY,EAAEylD,MAAQ,CAA2C,GAA1CzlD,EAAEvC,OAAO,GAAGoB,EAAEpB,OAAO,MAAMoB,EAAEpB,QAAQ,KAAQ,IAAIoB,EAAE24F,IAAI,GAAG,OAAO34F,EAAEmhG,UAAUnhG,EAAE24F,IAAI,OAAO,CAAC,IAAIh4F,EAAE04G,IAAI,EAAE,GAAG14G,EAAEg4F,IAAI,EAAE6gB,GAAGx5G,EAAEW,EAAE,CAACX,EAAEu4G,OAAO,EAAE,MAAMt0F,CAAC,CAACxC,OAC5f,EAAOzhB,EAAEwe,EAAE,IAAIC,EAAE/iB,EAAEouH,UAA+G,GAArG,OAAOrrG,GAAGA,EAAE/iB,EAAEouH,UAAU,IAAIlF,GAAGnjG,EAAE,IAAIo0E,IAAIp3E,EAAE4pD,IAAI9nE,EAAEkhB,SAAgB,KAAXA,EAAEhD,EAAEpa,IAAI9D,MAAgBkhB,EAAE,IAAIo0E,IAAIp3E,EAAE4pD,IAAI9nE,EAAEkhB,KAASA,EAAEixF,IAAI1yG,GAAG,CAACyhB,EAAE67C,IAAIt9D,GAAG,IAAIse,EAAEyrG,GAAG39G,KAAK,KAAK1Q,EAAE6E,EAAEP,GAAGO,EAAE2H,KAAKoW,EAAEA,EAAE,CAACnd,EAAEvC,OAAO,KAAKuC,EAAEo3G,MAAM/5F,EAAE,MAAMyF,CAAC,CAAC9iB,EAAEA,EAAEigG,MAAM,OAAO,OAAOjgG,GAAGsgB,EAAEjZ,OAAOowF,EAAG54F,EAAE4G,OAAO,qBAAqB,wLAAwL,CAAC,IAAIu9G,KAAIA,GAAE,GAAG1iG,EAAEgjG,GAAGhjG,EAAEzhB,GAAGmB,EACpfmD,EAAE,EAAE,CAAC,OAAOnD,EAAEw3F,KAAK,KAAK,EAAEj9F,EAAE+lB,EAAEtgB,EAAEvC,OAAO,KAAK4f,IAAIA,EAAErd,EAAEo3G,OAAO/5F,EAAkBi7F,GAAGt4G,EAAb2jH,GAAG3jH,EAAEzF,EAAE8iB,IAAW,MAAMyF,EAAE,KAAK,EAAEvoB,EAAE+lB,EAAE,IAAIqxE,EAAE3xF,EAAEyF,KAAKosF,EAAE7xF,EAAE0+F,UAAU,GAAG,KAAa,GAAR1+F,EAAEvC,SAAY,oBAAoBk0F,EAAEsvB,0BAA0B,OAAOpvB,GAAG,oBAAoBA,EAAEkyB,oBAAoB,OAAOC,KAAKA,GAAGzS,IAAI1f,KAAK,CAAC7xF,EAAEvC,OAAO,KAAK4f,IAAIA,EAAErd,EAAEo3G,OAAO/5F,EAAkBi7F,GAAGt4G,EAAb8jH,GAAG9jH,EAAEzF,EAAE8iB,IAAW,MAAMyF,CAAC,EAAE9iB,EAAEA,EAAEigG,MAAM,OAAO,OAAOjgG,EAAE,CAAC6oH,GAAGxlG,EAAE,CAAC,MAAMylG,GAAIzrG,EAAEyrG,EAAG/C,KAAI1iG,GAAG,OAAOA,IAAI0iG,GAAE1iG,EAAEA,EAAE48E,QAAQ,QAAQ,CAAC,KAAK,CAAS,CAC7b,SAAS+nB,KAAK,IAAIllG,EAAE8iG,GAAG39B,QAAsB,OAAd29B,GAAG39B,QAAQg1B,GAAU,OAAOn6F,EAAEm6F,GAAGn6F,CAAC,CAAC,SAASslG,GAAGtlG,EAAEzF,GAAG,IAAIgG,EAAEyiG,GAAEA,IAAG,GAAG,IAAIpoH,EAAEsqH,KAA2B,IAAtB5J,KAAIt7F,GAAG5iB,KAAImd,GAAG4qG,GAAGnlG,EAAEzF,SAAU0rG,KAAK,KAAK,CAAC,MAAM1uH,GAAG8tH,GAAGrlG,EAAEzoB,EAAE,CAAgC,GAAtBy8G,KAAKgP,GAAEziG,EAAEuiG,GAAG39B,QAAQvqF,EAAK,OAAOqoH,GAAE,MAAM1+G,MAAMpK,EAAE,MAAiB,OAAXmhH,GAAE,KAAKl+G,GAAE,EAAS8iH,EAAC,CAAC,SAAS+F,KAAK,KAAK,OAAOhD,IAAGiD,GAAGjD,GAAE,CAAC,SAASmC,KAAK,KAAK,OAAOnC,KAAIjR,MAAMkU,GAAGjD,GAAE,CAAC,SAASiD,GAAGlmG,GAAG,IAAIzF,EAAEmpG,GAAG1jG,EAAEk9E,UAAUl9E,EAAEkjG,IAAIljG,EAAE04F,cAAc14F,EAAEi5F,aAAa,OAAO1+F,EAAEwrG,GAAG/lG,GAAGijG,GAAE1oG,EAAEwoG,GAAG59B,QAAQ,IAAI,CAChb,SAAS4gC,GAAG/lG,GAAG,IAAIzF,EAAEyF,EAAE,EAAE,CAAC,IAAIO,EAAEhG,EAAE2iF,UAAqB,GAAXl9E,EAAEzF,EAAE4iF,OAAU,KAAa,KAAR5iF,EAAE5f,OAAY,CAAc,GAAG,QAAhB4lB,EAAEq/F,GAAGr/F,EAAEhG,EAAE2oG,KAAqB,YAAJD,GAAE1iG,GAAa,GAAG,MAAPA,EAAEhG,GAAYm6E,KAAK,KAAKn0E,EAAEm0E,KAAK,OAAOn0E,EAAE88E,eAAe,KAAQ,WAAH6lB,KAAgB,KAAY,EAAP3iG,EAAEoiC,MAAQ,CAAC,IAAI,IAAI/nD,EAAE,EAAErD,EAAEgpB,EAAEk9E,MAAM,OAAOlmG,GAAGqD,GAAGrD,EAAE+8G,MAAM/8G,EAAE48G,WAAW58G,EAAEA,EAAEmmG,QAAQn9E,EAAE4zF,WAAWv5G,CAAC,CAAC,OAAOolB,GAAG,KAAa,KAARA,EAAErlB,SAAc,OAAOqlB,EAAEu3F,cAAcv3F,EAAEu3F,YAAYh9F,EAAEg9F,aAAa,OAAOh9F,EAAE88F,aAAa,OAAOr3F,EAAEq3F,aAAar3F,EAAEq3F,WAAWC,WAAW/8F,EAAEg9F,aAAav3F,EAAEq3F,WAAW98F,EAAE88F,YAAY,EAAE98F,EAAE5f,QAAQ,OAC/eqlB,EAAEq3F,WAAWr3F,EAAEq3F,WAAWC,WAAW/8F,EAAEyF,EAAEu3F,YAAYh9F,EAAEyF,EAAEq3F,WAAW98F,GAAG,KAAK,CAAS,GAAG,QAAXgG,EAAEggG,GAAGhmG,IAAkC,OAAlBgG,EAAE5lB,OAAO,UAAKsoH,GAAE1iG,GAAS,OAAOP,IAAIA,EAAEu3F,YAAYv3F,EAAEq3F,WAAW,KAAKr3F,EAAErlB,OAAO,KAAK,CAAa,GAAG,QAAf4f,EAAEA,EAAEmjF,SAAyB,YAAJulB,GAAE1oG,GAAS0oG,GAAE1oG,EAAEyF,CAAC,OAAO,OAAOzF,GAAG,IAAI2lG,KAAIA,GAAE,EAAE,CAAC,SAASuF,GAAGzlG,GAAG,IAAIzF,EAAE84F,KAA8B,OAAzBnmD,GAAG,GAAGi5D,GAAGh+G,KAAK,KAAK6X,EAAEzF,IAAW,IAAI,CAC1T,SAAS4rG,GAAGnmG,EAAEzF,GAAG,GAAG0qG,WAAW,OAAOrB,IAAI,GAAG,KAAO,GAAFZ,IAAM,MAAMz+G,MAAMpK,EAAE,MAAM,IAAIomB,EAAEP,EAAEulG,aAAa,GAAG,OAAOhlG,EAAE,OAAO,KAA2C,GAAtCP,EAAEulG,aAAa,KAAKvlG,EAAEwlG,cAAc,EAAKjlG,IAAIP,EAAEmlE,QAAQ,MAAM5gF,MAAMpK,EAAE,MAAM6lB,EAAE4kG,aAAa,KAAK,IAAIhqH,EAAE2lB,EAAE+zF,MAAM/zF,EAAE4zF,WAAW58G,EAAEqD,EAAEnD,EAAEuoB,EAAEshF,cAAc/pG,EAAEyoB,EAAEshF,aAAa/pG,EAAEyoB,EAAEwhF,eAAe,EAAExhF,EAAEyhF,YAAY,EAAEzhF,EAAEuhF,cAAchqG,EAAEyoB,EAAEo7F,kBAAkB7jH,EAAEyoB,EAAE2hF,gBAAgBpqG,EAAEA,EAAEyoB,EAAE4hF,cAAc,IAAI,IAAIvhG,EAAE2f,EAAEkiF,WAAWnmG,EAAEikB,EAAE6kG,gBAAgB,EAAEptH,GAAG,CAAC,IAAI+lB,EAAE,GAAGkkF,GAAGjqG,GAAG6E,EAAE,GAAGkhB,EAAEjmB,EAAEimB,GAAG,EAAEnd,EAAEmd,IAAI,EAAEzhB,EAAEyhB,IAAI,EAAE/lB,IAAI6E,CAAC,CACpV,GADqV,OACjf0nH,IAAI,KAAO,GAAFppH,IAAOopH,GAAGvV,IAAIzuF,IAAIgkG,GAAGjlB,OAAO/+E,GAAGA,IAAIs7F,KAAI2H,GAAE3H,GAAE,KAAKl+G,GAAE,GAAG,EAAEmjB,EAAE5lB,MAAM,OAAO4lB,EAAE82F,YAAY92F,EAAE82F,WAAWC,WAAW/2F,EAAE3lB,EAAE2lB,EAAEg3F,aAAa38G,EAAE2lB,EAAE3lB,EAAE2lB,EAAEg3F,YAAe,OAAO38G,EAAE,CAAwC,GAAvCrD,EAAEyrH,GAAEA,IAAG,GAAGD,GAAG59B,QAAQ,KAAKplD,GAAG2iE,GAAauK,GAAV5sG,EAAEysG,MAAc,CAAC,GAAG,mBAAmBzsG,EAAEtE,EAAE,CAACm+E,MAAM75E,EAAEotG,eAAe3+E,IAAIzuB,EAAEqtG,mBAAmB1tF,EAAE,GAAGjkB,GAAGA,EAAEsE,EAAE81F,gBAAgBp6F,EAAE6xG,aAAaptG,QAAQlE,EAAEP,EAAE8xG,cAAc9xG,EAAE8xG,iBAAiB,IAAIvxG,EAAE8pH,WAAW,CAACrqH,EAAEO,EAAEqxG,WAAWl2G,EAAE6E,EAAEwxG,aAAatwF,EAAElhB,EAAEyxG,UAAUzxG,EAAEA,EAAE0xG,YAAY,IAAIjyG,EAAE2Q,SAAS8Q,EAAE9Q,QAAQ,CAAC,MAAMs5G,GAAIjqH,EAAE,KACnf,MAAMikB,CAAC,CAAC,IAAI5oB,EAAE,EAAEo7B,GAAG,EAAEt1B,GAAG,EAAE01B,EAAE,EAAEQ,EAAE,EAAEgpB,EAAE/7C,EAAE6pC,EAAE,KAAK3vB,EAAE,OAAO,CAAC,IAAI,IAAI8J,EAAK+3B,IAAIrgD,GAAG,IAAItE,GAAG,IAAI2kD,EAAE1vC,WAAW8lB,EAAEp7B,EAAEK,GAAG2kD,IAAI5+B,GAAG,IAAIlhB,GAAG,IAAI8/C,EAAE1vC,WAAWxP,EAAE9F,EAAEkF,GAAG,IAAI8/C,EAAE1vC,WAAWtV,GAAGglD,EAAEu7C,UAAU3gG,QAAW,QAAQqtB,EAAE+3B,EAAEk7C,aAAkBptD,EAAEkS,EAAEA,EAAE/3B,EAAE,OAAO,CAAC,GAAG+3B,IAAI/7C,EAAE,MAAMka,EAA8C,GAA5C2vB,IAAInuC,KAAK62B,IAAIn7B,IAAI+6B,EAAEp7B,GAAG8yC,IAAI1sB,KAAK4V,IAAI92B,IAAIY,EAAE9F,GAAM,QAAQitB,EAAE+3B,EAAEswD,aAAa,MAAUxiE,GAAJkS,EAAElS,GAAMyS,UAAU,CAACP,EAAE/3B,CAAC,CAACtoB,GAAG,IAAIy2B,IAAI,IAAIt1B,EAAE,KAAK,CAACg9E,MAAM1nD,EAAE1D,IAAI5xB,EAAE,MAAMnB,EAAE,KAAKA,EAAEA,GAAG,CAACm+E,MAAM,EAAEprD,IAAI,EAAE,MAAM/yB,EAAE,KAAKyzG,GAAG,CAAC6W,YAAYhmH,EAAEimH,eAAevqH,GAAG2mG,IAAG,EAAG4hB,GAAG,KAAKC,IAAG,EAAGxnH,GAAEnC,EAAE,OAAO2rH,IAAI,CAAC,MAAMP,GAAI,GAAG,OACvgBjpH,GAAE,MAAMwH,MAAMpK,EAAE,MAAMonH,GAAGxkH,GAAEipH,GAAIjpH,GAAEA,GAAEu6G,UAAU,QAAO,OAAOv6G,IAAGunH,GAAG,KAAKvnH,GAAEnC,EAAE,OAAO,IAAIyF,EAAE2f,EAAE,OAAOjjB,IAAG,CAAC,IAAIL,EAAEK,GAAEpC,MAA+B,GAAvB,GAAF+B,GAAM+6F,GAAG16F,GAAE6+F,UAAU,IAAS,IAAFl/F,EAAM,CAAC,IAAI8d,EAAEzd,GAAEmgG,UAAU,GAAG,OAAO1iF,EAAE,CAAC,IAAIH,EAAEG,EAAE4zE,IAAI,OAAO/zE,IAAI,oBAAoBA,EAAEA,EAAE,MAAMA,EAAE8qE,QAAQ,KAAK,CAAC,CAAC,OAAS,KAAFzoF,GAAQ,KAAK,EAAE2lH,GAAGtlH,IAAGA,GAAEpC,QAAQ,EAAE,MAAM,KAAK,EAAE0nH,GAAGtlH,IAAGA,GAAEpC,QAAQ,EAAE8nH,GAAG1lH,GAAEmgG,UAAUngG,IAAG,MAAM,KAAK,KAAKA,GAAEpC,QAAQ,KAAK,MAAM,KAAK,KAAKoC,GAAEpC,QAAQ,KAAK8nH,GAAG1lH,GAAEmgG,UAAUngG,IAAG,MAAM,KAAK,EAAE0lH,GAAG1lH,GAAEmgG,UAAUngG,IAAG,MAAM,KAAK,EAAMmlH,GAAG7hH,EAAPtE,EAAEgB,IAAU,IAAIwxF,EAAExyF,EAAEmhG,UAAUilB,GAAGpmH,GAAG,OACnfwyF,GAAG4zB,GAAG5zB,GAAGxxF,GAAEA,GAAEu6G,UAAU,CAAC,CAAC,MAAM0O,GAAI,GAAG,OAAOjpH,GAAE,MAAMwH,MAAMpK,EAAE,MAAMonH,GAAGxkH,GAAEipH,GAAIjpH,GAAEA,GAAEu6G,UAAU,QAAO,OAAOv6G,IAAkD,GAA/Csd,EAAEm1F,GAAGh1F,EAAEsyF,KAAKpwG,EAAE2d,EAAEgsG,YAAYhmH,EAAEga,EAAEisG,eAAkB9rG,IAAI9d,GAAGA,GAAGA,EAAEy5F,eAAewW,GAAGjwG,EAAEy5F,cAAcmiB,gBAAgB57G,GAAG,CAAC,OAAO2D,GAAG4sG,GAAGvwG,KAAK8d,EAAEna,EAAE65E,WAAc,KAAR7/D,EAAEha,EAAEyuB,OAAiBzU,EAAEG,GAAG,mBAAmB9d,GAAGA,EAAE+wG,eAAejzF,EAAE9d,EAAEgxG,aAAalxG,KAAK8a,IAAI+C,EAAE3d,EAAEpF,MAAMN,UAAUqjB,GAAGG,EAAE9d,EAAEy5F,eAAe/mF,WAAWoL,EAAEozF,aAAaptG,QAASqtG,eAAexzF,EAAEA,EAAEwzF,eAAe9xG,EAAEW,EAAEohD,YAAY9mD,OAAOu3F,EAAE/xF,KAAK8a,IAAIjX,EAAE65E,MAAMn+E,GAAGsE,OAAE,IACpfA,EAAEyuB,IAAIy/D,EAAE/xF,KAAK8a,IAAIjX,EAAEyuB,IAAI/yB,IAAIse,EAAEmsG,QAAQj4B,EAAEluF,IAAItE,EAAEsE,EAAEA,EAAEkuF,EAAEA,EAAExyF,GAAGA,EAAE0wG,GAAG/vG,EAAE6xF,GAAG92F,EAAEg1G,GAAG/vG,EAAE2D,GAAGtE,GAAGtE,IAAI,IAAI4iB,EAAE+rG,YAAY/rG,EAAEszF,aAAa5xG,EAAE2V,MAAM2I,EAAEyzF,eAAe/xG,EAAE6e,QAAQP,EAAE0zF,YAAYt2G,EAAEia,MAAM2I,EAAE2zF,cAAcv2G,EAAEmjB,WAAUJ,EAAEA,EAAEisG,eAAgBC,SAAS3qH,EAAE2V,KAAK3V,EAAE6e,QAAQP,EAAEssG,kBAAkBp4B,EAAEluF,GAAGga,EAAEusG,SAASpsG,GAAGH,EAAEmsG,OAAO/uH,EAAEia,KAAKja,EAAEmjB,UAAUJ,EAAEqsG,OAAOpvH,EAAEia,KAAKja,EAAEmjB,QAAQP,EAAEusG,SAASpsG,OAAQA,EAAE,GAAG,IAAIH,EAAE3d,EAAE2d,EAAEA,EAAEsiC,YAAY,IAAItiC,EAAE3N,UAAU8N,EAAE5hB,KAAK,CAACwf,QAAQiC,EAAE7B,KAAK6B,EAAEysG,WAAWvuG,IAAI8B,EAAE0sG,YAAmD,IAAvC,oBAAoBrqH,EAAEmlH,OAAOnlH,EAAEmlH,QAAYnlH,EACrf,EAAEA,EAAE8d,EAAExjB,OAAO0F,KAAI2d,EAAEG,EAAE9d,IAAK0b,QAAQ0uG,WAAWzsG,EAAE7B,KAAK6B,EAAEjC,QAAQ2uG,UAAU1sG,EAAE9B,GAAG,CAACmqF,KAAK3iE,GAAGyvE,GAAGzvE,GAAG,KAAK/f,EAAEmlE,QAAQ5kE,EAAExjB,GAAEnC,EAAE,OAAO,IAAI8B,EAAEsjB,EAAE,OAAOjjB,IAAG,CAAC,IAAI8xF,EAAE9xF,GAAEpC,MAAgC,GAAxB,GAAFk0F,GAAM6yB,GAAGhlH,EAAEK,GAAEmgG,UAAUngG,IAAQ,IAAF8xF,EAAM,CAACr0E,OAAE,EAAO,IAAIu0E,EAAEhyF,GAAEqxF,IAAI,GAAG,OAAOW,EAAE,CAAC,IAAIxyF,EAAEQ,GAAE6+F,UAAiB7+F,GAAE23F,IAA8Bl6E,EAAEje,EAAE,oBAAoBwyF,EAAEA,EAAEv0E,GAAGu0E,EAAE5J,QAAQ3qE,CAAC,CAAC,CAACzd,GAAEA,GAAEu6G,UAAU,CAAC,CAAC,MAAM0O,GAAI,GAAG,OAAOjpH,GAAE,MAAMwH,MAAMpK,EAAE,MAAMonH,GAAGxkH,GAAEipH,GAAIjpH,GAAEA,GAAEu6G,UAAU,QAAO,OAAOv6G,IAAGA,GAAE,KAAKi2G,KAAKgQ,GAAEzrH,CAAC,MAAMyoB,EAAEmlE,QAAQ5kE,EAAE,GAAGojG,GAAGA,IAAG,EAAGC,GAAG5jG,EAAE6jG,GAAGtpG,OAAO,IAAIxd,GAAEnC,EAAE,OAAOmC,IAAGwd,EACpfxd,GAAEu6G,WAAWv6G,GAAEu6G,WAAW,KAAa,EAARv6G,GAAEpC,SAAUk0F,EAAE9xF,IAAI2gG,QAAQ,KAAK7O,EAAE+M,UAAU,MAAM7+F,GAAEwd,EAAqF,GAAlE,KAAjB3f,EAAEolB,EAAEshF,gBAAqB4f,GAAG,MAAM,IAAItmH,EAAEolB,IAAIkkG,GAAGD,MAAMA,GAAG,EAAEC,GAAGlkG,GAAGikG,GAAG,EAAE1jG,EAAEA,EAAEq7E,UAAa+V,IAAI,oBAAoBA,GAAGqV,kBAAkB,IAAIrV,GAAGqV,kBAAkBtV,GAAGnxF,OAAE,EAAO,MAAsB,GAAhBA,EAAE4kE,QAAQxqF,OAAU,CAAC,MAAMqrH,GAAI,CAAW,GAAVrB,GAAG3kG,EAAE4uE,MAAQkyB,GAAG,MAAMA,IAAG,EAAG9gG,EAAE+gG,GAAGA,GAAG,KAAK/gG,EAAE,OAAG,KAAO,EAAFgjG,KAAiBxP,KAAL,IAAqB,CACtX,SAAS+S,KAAK,KAAK,OAAOxpH,IAAG,CAAC,IAAIijB,EAAEjjB,GAAEmgG,UAAUqnB,IAAI,OAAOD,KAAK,KAAa,EAARvnH,GAAEpC,OAASijG,GAAG7gG,GAAEunH,MAAMC,IAAG,GAAI,KAAKxnH,GAAE23F,KAAKkuB,GAAG5iG,EAAEjjB,KAAI6gG,GAAG7gG,GAAEunH,MAAMC,IAAG,IAAK,IAAIhqG,EAAExd,GAAEpC,MAAM,KAAO,IAAF4f,IAAQinG,GAAGxhG,EAAEjjB,IAAG,KAAO,IAAFwd,IAAQopG,KAAKA,IAAG,EAAGpQ,GAAG,IAAG,WAAgB,OAAL0R,KAAY,IAAI,KAAIloH,GAAEA,GAAEu6G,UAAU,CAAC,CAAC,SAAS2N,KAAK,GAAG,KAAKpB,GAAG,CAAC,IAAI7jG,EAAE,GAAG6jG,GAAG,GAAGA,GAAS,OAANA,GAAG,GAAU32D,GAAGltC,EAAEinG,GAAG,CAAC,OAAM,CAAE,CAAC,SAASrF,GAAG5hG,EAAEzF,GAAGupG,GAAGlrH,KAAK2hB,EAAEyF,GAAG2jG,KAAKA,IAAG,EAAGpQ,GAAG,IAAG,WAAgB,OAAL0R,KAAY,IAAI,IAAG,CAAC,SAAStD,GAAG3hG,EAAEzF,GAAGwpG,GAAGnrH,KAAK2hB,EAAEyF,GAAG2jG,KAAKA,IAAG,EAAGpQ,GAAG,IAAG,WAAgB,OAAL0R,KAAY,IAAI,IAAG,CAChe,SAASgC,KAAK,GAAG,OAAOrD,GAAG,OAAM,EAAG,IAAI5jG,EAAE4jG,GAAW,GAARA,GAAG,KAAQ,KAAO,GAAFZ,IAAM,MAAMz+G,MAAMpK,EAAE,MAAM,IAAIogB,EAAEyoG,GAAEA,IAAG,GAAG,IAAIziG,EAAEwjG,GAAGA,GAAG,GAAG,IAAI,IAAInpH,EAAE,EAAEA,EAAE2lB,EAAEvpB,OAAO4D,GAAG,EAAE,CAAC,IAAIrD,EAAEgpB,EAAE3lB,GAAGnD,EAAE8oB,EAAE3lB,EAAE,GAAGyF,EAAE9I,EAAEmuB,QAAyB,GAAjBnuB,EAAEmuB,aAAQ,EAAU,oBAAoBrlB,EAAE,IAAIA,GAAG,CAAC,MAAMmd,GAAG,GAAG,OAAO/lB,EAAE,MAAM8M,MAAMpK,EAAE,MAAMonH,GAAG9pH,EAAE+lB,EAAE,CAAC,CAAY,IAAX+C,EAAEujG,GAAGA,GAAG,GAAOlpH,EAAE,EAAEA,EAAE2lB,EAAEvpB,OAAO4D,GAAG,EAAE,CAACrD,EAAEgpB,EAAE3lB,GAAGnD,EAAE8oB,EAAE3lB,EAAE,GAAG,IAAI,IAAImB,EAAExE,EAAE6K,OAAO7K,EAAEmuB,QAAQ3pB,GAAG,CAAC,MAAMyhB,GAAG,GAAG,OAAO/lB,EAAE,MAAM8M,MAAMpK,EAAE,MAAMonH,GAAG9pH,EAAE+lB,EAAE,CAAC,CAAC,IAAIzhB,EAAEikB,EAAEmlE,QAAQoyB,YAAY,OAAOx7G,GAAGikB,EAAEjkB,EAAEu7G,WAAWv7G,EAAEu7G,WAAW,KAAa,EAARv7G,EAAEpB,QAAUoB,EAAE2hG,QACjf,KAAK3hG,EAAE6/F,UAAU,MAAM7/F,EAAEikB,EAAW,OAATgjG,GAAEzoG,EAAEi5F,MAAW,CAAE,CAAC,SAAS0T,GAAGlnG,EAAEzF,EAAEgG,GAAyBg1F,GAAGv1F,EAAfzF,EAAEsmG,GAAG7gG,EAAfzF,EAAEimG,GAAGjgG,EAAEhG,GAAY,IAAWA,EAAEy7F,KAAe,QAAVh2F,EAAEykG,GAAGzkG,EAAE,MAAciiF,GAAGjiF,EAAE,EAAEzF,GAAGoqG,GAAG3kG,EAAEzF,GAAG,CAC5I,SAASgnG,GAAGvhG,EAAEzF,GAAG,GAAG,IAAIyF,EAAE00E,IAAIwyB,GAAGlnG,EAAEA,EAAEzF,QAAQ,IAAI,IAAIgG,EAAEP,EAAEm9E,OAAO,OAAO58E,GAAG,CAAC,GAAG,IAAIA,EAAEm0E,IAAI,CAACwyB,GAAG3mG,EAAEP,EAAEzF,GAAG,KAAK,CAAM,GAAG,IAAIgG,EAAEm0E,IAAI,CAAC,IAAI95F,EAAE2lB,EAAEq7E,UAAU,GAAG,oBAAoBr7E,EAAE5d,KAAKw7G,0BAA0B,oBAAoBvjH,EAAEqmH,oBAAoB,OAAOC,KAAKA,GAAGzS,IAAI7zG,IAAI,CAAW,IAAIrD,EAAEypH,GAAGzgG,EAAnBP,EAAEwgG,GAAGjmG,EAAEyF,GAAgB,GAA4B,GAAzBu1F,GAAGh1F,EAAEhpB,GAAGA,EAAEy+G,KAAkB,QAAbz1F,EAAEkkG,GAAGlkG,EAAE,IAAe0hF,GAAG1hF,EAAE,EAAEhpB,GAAGotH,GAAGpkG,EAAEhpB,QAAQ,GAAG,oBAAoBqD,EAAEqmH,oBAAoB,OAAOC,KAAKA,GAAGzS,IAAI7zG,IAAI,IAAIA,EAAEqmH,kBAAkB1mG,EAAEyF,EAAE,CAAC,MAAMvoB,GAAG,CAAC,KAAK,CAAC,CAAC8oB,EAAEA,EAAE48E,MAAM,CAAC,CAC3d,SAAS2oB,GAAG9lG,EAAEzF,EAAEgG,GAAG,IAAI3lB,EAAEolB,EAAE6lG,UAAU,OAAOjrH,GAAGA,EAAEmkG,OAAOxkF,GAAGA,EAAEy7F,KAAKh2F,EAAEyhF,aAAazhF,EAAEwhF,eAAejhF,EAAE+6F,KAAIt7F,IAAI5iB,GAAEmjB,KAAKA,IAAI,IAAI2/F,IAAG,IAAIA,KAAM,SAAF9iH,MAAcA,IAAG,IAAIwxF,KAAI8zB,GAAGyC,GAAGnlG,EAAE,GAAGsjG,IAAI/iG,GAAGokG,GAAG3kG,EAAEzF,EAAE,CAAC,SAASshC,GAAG77B,EAAEzF,GAAG,IAAIgG,EAAEP,EAAE47E,UAAU,OAAOr7E,GAAGA,EAAEw+E,OAAOxkF,GAAO,KAAJA,EAAE,KAAmB,KAAO,GAAhBA,EAAEyF,EAAE2iC,OAAepoC,EAAE,EAAE,KAAO,EAAFA,GAAKA,EAAE,KAAK84F,KAAK,EAAE,GAAG,IAAI+Q,KAAKA,GAAGf,IAAuB,KAAnB9oG,EAAEwnF,GAAG,UAAUqiB,OAAY7pG,EAAE,WAAWgG,EAAEy1F,KAAe,QAAVh2F,EAAEykG,GAAGzkG,EAAEzF,MAAc0nF,GAAGjiF,EAAEzF,EAAEgG,GAAGokG,GAAG3kG,EAAEO,GAAG,CAUpZ,SAAS4mG,GAAGnnG,EAAEzF,EAAEgG,EAAE3lB,GAAG0F,KAAKo0F,IAAI10E,EAAE1f,KAAKY,IAAIqf,EAAEjgB,KAAKo9F,QAAQp9F,KAAKm9F,MAAMn9F,KAAK68F,OAAO78F,KAAKs7F,UAAUt7F,KAAKqC,KAAKrC,KAAKo3G,YAAY,KAAKp3G,KAAKuN,MAAM,EAAEvN,KAAK8tF,IAAI,KAAK9tF,KAAK24G,aAAa1+F,EAAEja,KAAK8zG,aAAa9zG,KAAK+8F,cAAc/8F,KAAKu0G,YAAYv0G,KAAKo4G,cAAc,KAAKp4G,KAAKqiD,KAAK/nD,EAAE0F,KAAK3F,MAAM,EAAE2F,KAAK+2G,WAAW/2G,KAAKi3G,YAAYj3G,KAAKg3G,WAAW,KAAKh3G,KAAK6zG,WAAW7zG,KAAKg0G,MAAM,EAAEh0G,KAAK48F,UAAU,IAAI,CAAC,SAAS6b,GAAG/4F,EAAEzF,EAAEgG,EAAE3lB,GAAG,OAAO,IAAIusH,GAAGnnG,EAAEzF,EAAEgG,EAAE3lB,EAAE,CAAC,SAAS4iH,GAAGx9F,GAAiB,UAAdA,EAAEA,EAAElf,aAAuBkf,EAAE8tE,iBAAiB,CAEte,SAAS0pB,GAAGx3F,EAAEzF,GAAG,IAAIgG,EAAEP,EAAEk9E,UACuB,OADb,OAAO38E,IAAGA,EAAEw4F,GAAG/4F,EAAE00E,IAAIn6E,EAAEyF,EAAE9e,IAAI8e,EAAE2iC,OAAQ+0D,YAAY13F,EAAE03F,YAAYn3F,EAAE5d,KAAKqd,EAAErd,KAAK4d,EAAEq7E,UAAU57E,EAAE47E,UAAUr7E,EAAE28E,UAAUl9E,EAAEA,EAAEk9E,UAAU38E,IAAIA,EAAE04F,aAAa1+F,EAAEgG,EAAE5d,KAAKqd,EAAErd,KAAK4d,EAAE5lB,MAAM,EAAE4lB,EAAE+2F,WAAW,KAAK/2F,EAAEg3F,YAAY,KAAKh3F,EAAE82F,WAAW,MAAM92F,EAAE4zF,WAAWn0F,EAAEm0F,WAAW5zF,EAAE+zF,MAAMt0F,EAAEs0F,MAAM/zF,EAAEk9E,MAAMz9E,EAAEy9E,MAAMl9E,EAAEm4F,cAAc14F,EAAE04F,cAAcn4F,EAAE88E,cAAcr9E,EAAEq9E,cAAc98E,EAAEs0F,YAAY70F,EAAE60F,YAAYt6F,EAAEyF,EAAEo0F,aAAa7zF,EAAE6zF,aAAa,OAAO75F,EAAE,KAAK,CAAC+5F,MAAM/5F,EAAE+5F,MAAMD,aAAa95F,EAAE85F,cAC3e9zF,EAAEm9E,QAAQ19E,EAAE09E,QAAQn9E,EAAE1S,MAAMmS,EAAEnS,MAAM0S,EAAE6tE,IAAIpuE,EAAEouE,IAAW7tE,CAAC,CACxD,SAASo3F,GAAG33F,EAAEzF,EAAEgG,EAAE3lB,EAAErD,EAAEE,GAAG,IAAI4I,EAAE,EAAM,GAAJzF,EAAEolB,EAAK,oBAAoBA,EAAEw9F,GAAGx9F,KAAK3f,EAAE,QAAQ,GAAG,kBAAkB2f,EAAE3f,EAAE,OAAO2f,EAAE,OAAOA,GAAG,KAAK/R,EAAG,OAAO6pG,GAAGv3F,EAAEtgB,SAAS1I,EAAEE,EAAE8iB,GAAG,KAAKu5E,EAAGzzF,EAAE,EAAE9I,GAAG,GAAG,MAAM,KAAK47F,EAAG9yF,EAAE,EAAE9I,GAAG,EAAE,MAAM,KAAK67F,EAAG,OAAOpzE,EAAE+4F,GAAG,GAAGx4F,EAAEhG,EAAI,EAAFhjB,IAAOmgH,YAAYtkB,EAAGpzE,EAAErd,KAAKywF,EAAGpzE,EAAEs0F,MAAM78G,EAAEuoB,EAAE,KAAKwzE,EAAG,OAAOxzE,EAAE+4F,GAAG,GAAGx4F,EAAEhG,EAAEhjB,IAAKoL,KAAK6wF,EAAGxzE,EAAE03F,YAAYlkB,EAAGxzE,EAAEs0F,MAAM78G,EAAEuoB,EAAE,KAAKyzE,EAAG,OAAOzzE,EAAE+4F,GAAG,GAAGx4F,EAAEhG,EAAEhjB,IAAKmgH,YAAYjkB,EAAGzzE,EAAEs0F,MAAM78G,EAAEuoB,EAAE,KAAK+zE,EAAG,OAAOirB,GAAGz+F,EAAEhpB,EAAEE,EAAE8iB,GAAG,KAAKy5E,EAAG,OAAOh0E,EAAE+4F,GAAG,GAAGx4F,EAAEhG,EAAEhjB,IAAKmgH,YAAY1jB,EAAGh0E,EAAEs0F,MAAM78G,EAAEuoB,EAAE,QAAQ,GAAG,kBAChfA,GAAG,OAAOA,EAAE,OAAOA,EAAEyuE,UAAU,KAAK4E,EAAGhzF,EAAE,GAAG,MAAM2f,EAAE,KAAKszE,EAAGjzF,EAAE,EAAE,MAAM2f,EAAE,KAAKuzE,EAAGlzF,EAAE,GAAG,MAAM2f,EAAE,KAAK0zE,EAAGrzF,EAAE,GAAG,MAAM2f,EAAE,KAAK2zE,EAAGtzF,EAAE,GAAGzF,EAAE,KAAK,MAAMolB,EAAE,KAAK4zE,EAAGvzF,EAAE,GAAG,MAAM2f,EAAE,MAAMzb,MAAMpK,EAAE,IAAI,MAAM6lB,EAAEA,SAASA,EAAE,KAAuD,OAAjDzF,EAAEw+F,GAAG14G,EAAEkgB,EAAEhG,EAAEhjB,IAAKmgH,YAAY13F,EAAEzF,EAAE5X,KAAK/H,EAAE2f,EAAE+5F,MAAM78G,EAAS8iB,CAAC,CAAC,SAASu9F,GAAG93F,EAAEzF,EAAEgG,EAAE3lB,GAA2B,OAAxBolB,EAAE+4F,GAAG,EAAE/4F,EAAEplB,EAAE2f,IAAK+5F,MAAM/zF,EAASP,CAAC,CAAC,SAASg/F,GAAGh/F,EAAEzF,EAAEgG,EAAE3lB,GAA6C,OAA1ColB,EAAE+4F,GAAG,GAAG/4F,EAAEplB,EAAE2f,IAAKm9F,YAAY3jB,EAAG/zE,EAAEs0F,MAAM/zF,EAASP,CAAC,CAAC,SAASy3F,GAAGz3F,EAAEzF,EAAEgG,GAA8B,OAA3BP,EAAE+4F,GAAG,EAAE/4F,EAAE,KAAKzF,IAAK+5F,MAAM/zF,EAASP,CAAC,CACnc,SAAS63F,GAAG73F,EAAEzF,EAAEgG,GAA8J,OAA3JhG,EAAEw+F,GAAG,EAAE,OAAO/4F,EAAE/f,SAAS+f,EAAE/f,SAAS,GAAG+f,EAAE9e,IAAIqZ,IAAK+5F,MAAM/zF,EAAEhG,EAAEqhF,UAAU,CAAC4D,cAAcx/E,EAAEw/E,cAAc4nB,gBAAgB,KAAKxP,eAAe53F,EAAE43F,gBAAuBr9F,CAAC,CACtL,SAAS8sG,GAAGrnG,EAAEzF,EAAEgG,GAAGjgB,KAAKo0F,IAAIn6E,EAAEja,KAAKk/F,cAAcx/E,EAAE1f,KAAKilH,aAAajlH,KAAKulH,UAAUvlH,KAAK6kF,QAAQ7kF,KAAK8mH,gBAAgB,KAAK9mH,KAAKolH,eAAe,EAAEplH,KAAK+9G,eAAe/9G,KAAK+B,QAAQ,KAAK/B,KAAKi/F,QAAQh/E,EAAEjgB,KAAKskH,aAAa,KAAKtkH,KAAKwkH,iBAAiB,EAAExkH,KAAK4hG,WAAWF,GAAG,GAAG1hG,KAAKukH,gBAAgB7iB,IAAI,GAAG1hG,KAAKqhG,eAAerhG,KAAKklH,cAAcllH,KAAK86G,iBAAiB96G,KAAKihG,aAAajhG,KAAKmhG,YAAYnhG,KAAKkhG,eAAelhG,KAAKghG,aAAa,EAAEhhG,KAAKshG,cAAcI,GAAG,GAAG1hG,KAAKgnH,gCAAgC,IAAI,CAEjf,SAASC,GAAGvnG,EAAEzF,EAAEgG,EAAE3lB,GAAG,IAAIrD,EAAEgjB,EAAE4qE,QAAQ1tF,EAAEu+G,KAAK31G,EAAE41G,GAAG1+G,GAAGyoB,EAAE,GAAGO,EAAE,CAAqBhG,EAAE,CAAC,GAAG0iF,GAA1B18E,EAAEA,EAAEw1F,mBAA8Bx1F,GAAG,IAAIA,EAAEm0E,IAAI,MAAMnwF,MAAMpK,EAAE,MAAM,IAAI4B,EAAEwkB,EAAE,EAAE,CAAC,OAAOxkB,EAAE24F,KAAK,KAAK,EAAE34F,EAAEA,EAAE6/F,UAAUv5F,QAAQ,MAAMkY,EAAE,KAAK,EAAE,GAAG02F,GAAGl1G,EAAE4G,MAAM,CAAC5G,EAAEA,EAAE6/F,UAAU4V,0CAA0C,MAAMj3F,CAAC,EAAExe,EAAEA,EAAEohG,MAAM,OAAO,OAAOphG,GAAG,MAAMwI,MAAMpK,EAAE,KAAM,CAAC,GAAG,IAAIomB,EAAEm0E,IAAI,CAAC,IAAIl3E,EAAE+C,EAAE5d,KAAK,GAAGsuG,GAAGzzF,GAAG,CAAC+C,EAAE8wF,GAAG9wF,EAAE/C,EAAEzhB,GAAG,MAAMikB,CAAC,CAAC,CAACO,EAAExkB,CAAC,MAAMwkB,EAAEowF,GACrW,OADwW,OAAOp2F,EAAElY,QAAQkY,EAAElY,QAAQke,EAAEhG,EAAE8jG,eAAe99F,GAAEhG,EAAE66F,GAAG39G,EAAE4I,IAAK6hB,QAAQ,CAAC9J,QAAQ4H,GAAuB,QAApBplB,OAAE,IAASA,EAAE,KAAKA,KAC1e2f,EAAEhN,SAAS3S,GAAG26G,GAAGh+G,EAAEgjB,GAAG27F,GAAG3+G,EAAE8I,EAAE5I,GAAU4I,CAAC,CAAC,SAASmnH,GAAGxnG,GAAe,OAAZA,EAAEA,EAAEmlE,SAAcsY,OAAyBz9E,EAAEy9E,MAAM/I,IAAoD10E,EAAEy9E,MAAM7B,WAAhF,IAA0F,CAAC,SAAS6rB,GAAGznG,EAAEzF,GAAqB,GAAG,QAArByF,EAAEA,EAAEq9E,gBAA2B,OAAOr9E,EAAEs9E,WAAW,CAAC,IAAI/8E,EAAEP,EAAE2+F,UAAU3+F,EAAE2+F,UAAU,IAAIp+F,GAAGA,EAAEhG,EAAEgG,EAAEhG,CAAC,CAAC,CAAC,SAASmtG,GAAG1nG,EAAEzF,GAAGktG,GAAGznG,EAAEzF,IAAIyF,EAAEA,EAAEk9E,YAAYuqB,GAAGznG,EAAEzF,EAAE,CAC1V,SAASotG,GAAG3nG,EAAEzF,EAAEgG,GAAG,IAAI3lB,EAAE,MAAM2lB,GAAG,MAAMA,EAAEqnG,kBAAkBrnG,EAAEqnG,iBAAiBC,gBAAgB,KAAiK,GAA5JtnG,EAAE,IAAI8mG,GAAGrnG,EAAEzF,EAAE,MAAMgG,IAAG,IAAKA,EAAEg/E,SAAShlF,EAAEw+F,GAAG,EAAE,KAAK,KAAK,IAAIx+F,EAAE,EAAE,IAAIA,EAAE,EAAE,GAAGgG,EAAE4kE,QAAQ5qE,EAAEA,EAAEqhF,UAAUr7E,EAAEq0F,GAAGr6F,GAAGyF,EAAEivF,IAAI1uF,EAAE4kE,QAAQypB,GAAG,IAAI5uF,EAAEtT,SAASsT,EAAE28B,WAAW38B,GAAMplB,EAAE,IAAIolB,EAAE,EAAEA,EAAEplB,EAAE5D,OAAOgpB,IAAI,CAAQ,IAAIzoB,GAAXgjB,EAAE3f,EAAEolB,IAAWk7F,YAAY3jH,EAAEA,EAAEgjB,EAAE4gG,SAAS,MAAM56F,EAAE+mG,gCAAgC/mG,EAAE+mG,gCAAgC,CAAC/sG,EAAEhjB,GAAGgpB,EAAE+mG,gCAAgC1uH,KAAK2hB,EAAEhjB,EAAE,CAAC+I,KAAKwnH,cAAcvnG,CAAC,CAChS,SAASwnG,GAAG/nG,GAAG,SAASA,GAAG,IAAIA,EAAEtT,UAAU,IAAIsT,EAAEtT,UAAU,KAAKsT,EAAEtT,WAAW,IAAIsT,EAAEtT,UAAU,iCAAiCsT,EAAE23E,WAAW,CAElU,SAASqwB,GAAGhoG,EAAEzF,EAAEgG,EAAE3lB,EAAErD,GAAG,IAAIE,EAAE8oB,EAAEiiG,oBAAoB,GAAG/qH,EAAE,CAAC,IAAI4I,EAAE5I,EAAEqwH,cAAc,GAAG,oBAAoBvwH,EAAE,CAAC,IAAIwE,EAAExE,EAAEA,EAAE,WAAW,IAAIyoB,EAAEwnG,GAAGnnH,GAAGtE,EAAEjE,KAAKkoB,EAAE,CAAC,CAACunG,GAAGhtG,EAAEla,EAAE2f,EAAEzoB,EAAE,KAAK,CAAmD,GAAlDE,EAAE8oB,EAAEiiG,oBAD1K,SAAYxiG,EAAEzF,GAA0H,GAAvHA,IAA2DA,MAAvDA,EAAEyF,EAAE,IAAIA,EAAEtT,SAASsT,EAAEs4F,gBAAgBt4F,EAAEs3E,WAAW,OAAa,IAAI/8E,EAAE7N,WAAW6N,EAAE0tG,aAAa,qBAAwB1tG,EAAE,IAAI,IAAIgG,EAAEA,EAAEP,EAAE03E,WAAW13E,EAAEghC,YAAYzgC,GAAG,OAAO,IAAIonG,GAAG3nG,EAAE,EAAEzF,EAAE,CAACglF,SAAQ,QAAI,EAAO,CAClCt/E,CAAGM,EAAE3lB,GAAGyF,EAAE5I,EAAEqwH,cAAiB,oBAAoBvwH,EAAE,CAAC,IAAIimB,EAAEjmB,EAAEA,EAAE,WAAW,IAAIyoB,EAAEwnG,GAAGnnH,GAAGmd,EAAE1lB,KAAKkoB,EAAE,CAAC,CAAC4lG,IAAG,WAAW2B,GAAGhtG,EAAEla,EAAE2f,EAAEzoB,EAAE,GAAE,CAAC,OAAOiwH,GAAGnnH,EAAE,CAGpG,SAAS6nH,GAAGloG,EAAEzF,GAAG,IAAIgG,EAAE,EAAEhnB,UAAUvC,aAAQ,IAASuC,UAAU,GAAGA,UAAU,GAAG,KAAK,IAAIwuH,GAAGxtG,GAAG,MAAMhW,MAAMpK,EAAE,MAAM,OATnV,SAAY6lB,EAAEzF,EAAEgG,GAAG,IAAI3lB,EAAE,EAAErB,UAAUvC,aAAQ,IAASuC,UAAU,GAAGA,UAAU,GAAG,KAAK,MAAM,CAACk1F,SAASyE,EAAGhyF,IAAI,MAAMtG,EAAE,KAAK,GAAGA,EAAEqF,SAAS+f,EAAEw/E,cAAcjlF,EAAEq9F,eAAer3F,EAAE,CASgL4nG,CAAGnoG,EAAEzF,EAAE,KAAKgG,EAAE,CA1BxWmjG,GAAG,SAAS1jG,EAAEzF,EAAEgG,GAAG,IAAI3lB,EAAE2f,EAAE+5F,MAAM,GAAG,OAAOt0F,EAAE,GAAGA,EAAE04F,gBAAgBn+F,EAAE0+F,cAAc37G,GAAE6nF,QAAQovB,IAAG,MAAQ,IAAG,KAAKh0F,EAAE3lB,GAAoC,CAAO,OAAN25G,IAAG,EAAUh6F,EAAEm6E,KAAK,KAAK,EAAE0pB,GAAG7jG,GAAGoiB,KAAK,MAAM,KAAK,EAAE67E,GAAGj+F,GAAG,MAAM,KAAK,EAAE02F,GAAG12F,EAAE5X,OAAO4uG,GAAGh3F,GAAG,MAAM,KAAK,EAAE89F,GAAG99F,EAAEA,EAAEqhF,UAAU4D,eAAe,MAAM,KAAK,GAAG5kG,EAAE2f,EAAEm+F,cAAcphH,MAAM,IAAIC,EAAEgjB,EAAE5X,KAAK2tF,SAASnC,GAAEylB,GAAGr8G,EAAE04F,eAAe14F,EAAE04F,cAAcr1F,EAAE,MAAM,KAAK,GAAG,GAAG,OAAO2f,EAAE8iF,cAAe,OAAG,KAAK98E,EAAEhG,EAAEkjF,MAAM0W,YAAmBv4E,GAAG5b,EAAEzF,EAAEgG,IAAG4tE,GAAEW,GAAY,EAAVA,GAAE3J,SAA8B,QAAnB5qE,EAAE+iG,GAAGt9F,EAAEzF,EAAEgG,IAC/ehG,EAAEmjF,QAAQ,MAAKvP,GAAEW,GAAY,EAAVA,GAAE3J,SAAW,MAAM,KAAK,GAA0B,GAAvBvqF,EAAE,KAAK2lB,EAAEhG,EAAE45F,YAAe,KAAa,GAARn0F,EAAErlB,OAAU,CAAC,GAAGC,EAAE,OAAO8kH,GAAG1/F,EAAEzF,EAAEgG,GAAGhG,EAAE5f,OAAO,EAAE,CAA6F,GAA1E,QAAlBpD,EAAEgjB,EAAE8iF,iBAAyB9lG,EAAE8nH,UAAU,KAAK9nH,EAAEioH,KAAK,KAAKjoH,EAAE8/G,WAAW,MAAMlpB,GAAEW,GAAEA,GAAE3J,SAAYvqF,EAAE,MAAW,OAAO,KAAK,KAAK,GAAG,KAAK,GAAG,OAAO2f,EAAE+5F,MAAM,EAAEqJ,GAAG39F,EAAEzF,EAAEgG,GAAG,OAAO+8F,GAAGt9F,EAAEzF,EAAEgG,EAAE,CAD7Lg0F,GAAG,KAAa,MAARv0F,EAAErlB,MACmL,MAAM45G,IAAG,EAAa,OAAVh6F,EAAE+5F,MAAM,EAAS/5F,EAAEm6E,KAAK,KAAK,EAA+I,GAA7I95F,EAAE2f,EAAE5X,KAAK,OAAOqd,IAAIA,EAAEk9E,UAAU,KAAK3iF,EAAE2iF,UAAU,KAAK3iF,EAAE5f,OAAO,GAAGqlB,EAAEzF,EAAE0+F,aAAa1hH,EAAEs5G,GAAGt2F,EAAEpe,GAAEgpF,SAASjX,GAAG3zD,EAAEgG,GAAGhpB,EAAEwiH,GAAG,KAAKx/F,EAAE3f,EAAEolB,EAAEzoB,EAAEgpB,GAAGhG,EAAE5f,OAAO,EAAK,kBACrepD,GAAG,OAAOA,GAAG,oBAAoBA,EAAE0/D,aAAQ,IAAS1/D,EAAEk3F,SAAS,CAAiD,GAAhDl0E,EAAEm6E,IAAI,EAAEn6E,EAAE8iF,cAAc,KAAK9iF,EAAEs6F,YAAY,KAAQ5D,GAAGr2G,GAAG,CAAC,IAAInD,GAAE,EAAG85G,GAAGh3F,EAAE,MAAM9iB,GAAE,EAAG8iB,EAAE8iF,cAAc,OAAO9lG,EAAE+M,YAAO,IAAS/M,EAAE+M,MAAM/M,EAAE+M,MAAM,KAAKswG,GAAGr6F,GAAG,IAAIla,EAAEzF,EAAE+7G,yBAAyB,oBAAoBt2G,GAAGw1G,GAAGt7F,EAAE3f,EAAEyF,EAAE2f,GAAGzoB,EAAEq2F,QAAQkoB,GAAGv7F,EAAEqhF,UAAUrkG,EAAEA,EAAEw+G,gBAAgBx7F,EAAEm8F,GAAGn8F,EAAE3f,EAAEolB,EAAEO,GAAGhG,EAAE2jG,GAAG,KAAK3jG,EAAE3f,GAAE,EAAGnD,EAAE8oB,EAAE,MAAMhG,EAAEm6E,IAAI,EAAE0oB,GAAG,KAAK7iG,EAAEhjB,EAAEgpB,GAAGhG,EAAEA,EAAEkjF,MAAM,OAAOljF,EAAE,KAAK,GAAGhjB,EAAEgjB,EAAEm9F,YAAY13F,EAAE,CAChX,OADiX,OAAOA,IAAIA,EAAEk9E,UAAU,KAAK3iF,EAAE2iF,UAAU,KAAK3iF,EAAE5f,OAAO,GACnfqlB,EAAEzF,EAAE0+F,aAAuB1hH,GAAVE,EAAEF,EAAEs5F,OAAUt5F,EAAEq5F,UAAUr2E,EAAE5X,KAAKpL,EAAEE,EAAE8iB,EAAEm6E,IAOxD,SAAY10E,GAAG,GAAG,oBAAoBA,EAAE,OAAOw9F,GAAGx9F,GAAG,EAAE,EAAE,QAAG,IAASA,GAAG,OAAOA,EAAE,CAAc,IAAbA,EAAEA,EAAEyuE,YAAgB8E,EAAG,OAAO,GAAG,GAAGvzE,IAAI0zE,EAAG,OAAO,EAAE,CAAC,OAAO,CAAC,CAPnF00B,CAAG7wH,GAAGyoB,EAAE2zF,GAAGp8G,EAAEyoB,GAAUvoB,GAAG,KAAK,EAAE8iB,EAAEmjG,GAAG,KAAKnjG,EAAEhjB,EAAEyoB,EAAEO,GAAG,MAAMP,EAAE,KAAK,EAAEzF,EAAEojD,GAAG,KAAKpjD,EAAEhjB,EAAEyoB,EAAEO,GAAG,MAAMP,EAAE,KAAK,GAAGzF,EAAE8iG,GAAG,KAAK9iG,EAAEhjB,EAAEyoB,EAAEO,GAAG,MAAMP,EAAE,KAAK,GAAGzF,EAAEgjG,GAAG,KAAKhjG,EAAEhjB,EAAEo8G,GAAGp8G,EAAEoL,KAAKqd,GAAGplB,EAAE2lB,GAAG,MAAMP,EAAE,MAAMzb,MAAMpK,EAAE,IAAI5C,EAAE,IAAK,CAAC,OAAOgjB,EAAE,KAAK,EAAE,OAAO3f,EAAE2f,EAAE5X,KAAKpL,EAAEgjB,EAAE0+F,aAA2CyE,GAAG19F,EAAEzF,EAAE3f,EAArCrD,EAAEgjB,EAAEm9F,cAAc98G,EAAErD,EAAEo8G,GAAG/4G,EAAErD,GAAcgpB,GAAG,KAAK,EAAE,OAAO3lB,EAAE2f,EAAE5X,KAAKpL,EAAEgjB,EAAE0+F,aAA2Ct7C,GAAG39C,EAAEzF,EAAE3f,EAArCrD,EAAEgjB,EAAEm9F,cAAc98G,EAAErD,EAAEo8G,GAAG/4G,EAAErD,GAAcgpB,GAAG,KAAK,EAAwB,GAAtB69F,GAAG7jG,GAAG3f,EAAE2f,EAAEs6F,YAAe,OAAO70F,GAAG,OAAOplB,EAAE,MAAM2J,MAAMpK,EAAE,MAC3Y,GAA9GS,EAAE2f,EAAE0+F,aAA+B1hH,EAAE,QAApBA,EAAEgjB,EAAE8iF,eAAyB9lG,EAAE6gB,QAAQ,KAAK+8F,GAAGn1F,EAAEzF,GAAGk7F,GAAGl7F,EAAE3f,EAAE,KAAK2lB,IAAG3lB,EAAE2f,EAAE8iF,cAAcjlF,WAAe7gB,EAAEolC,KAAKpiB,EAAE+iG,GAAGt9F,EAAEzF,EAAEgG,OAAO,CAAuF,IAArE9oB,GAAjBF,EAAEgjB,EAAEqhF,WAAiB2D,WAAQsZ,GAAG7I,GAAGz1F,EAAEqhF,UAAU4D,cAAclI,YAAYshB,GAAGr+F,EAAE9iB,EAAEy9D,IAAG,GAAMz9D,EAAE,CAAqC,GAAG,OAAvCuoB,EAAEzoB,EAAE+vH,iCAA2C,IAAI/vH,EAAE,EAAEA,EAAEyoB,EAAEhpB,OAAOO,GAAG,GAAEE,EAAEuoB,EAAEzoB,IAAKgiH,8BAA8Bv5F,EAAEzoB,EAAE,GAAG8hH,GAAGzgH,KAAKnB,GAAoB,IAAjB8oB,EAAEy3F,GAAGz9F,EAAE,KAAK3f,EAAE2lB,GAAOhG,EAAEkjF,MAAMl9E,EAAEA,GAAGA,EAAE5lB,OAAe,EAAT4lB,EAAE5lB,MAAS,KAAK4lB,EAAEA,EAAEm9E,OAAO,MAAM0f,GAAGp9F,EAAEzF,EAAE3f,EAAE2lB,GAAGoc,KAAKpiB,EAAEA,EAAEkjF,KAAK,CAAC,OAAOljF,EAAE,KAAK,EAAE,OAAOi+F,GAAGj+F,GAAG,OAAOyF,GACnfk5F,GAAG3+F,GAAG3f,EAAE2f,EAAE5X,KAAKpL,EAAEgjB,EAAE0+F,aAAaxhH,EAAE,OAAOuoB,EAAEA,EAAE04F,cAAc,KAAKr4G,EAAE9I,EAAE0I,SAAS0vG,GAAG/0G,EAAErD,GAAG8I,EAAE,KAAK,OAAO5I,GAAGk4G,GAAG/0G,EAAEnD,KAAK8iB,EAAE5f,OAAO,IAAImjH,GAAG99F,EAAEzF,GAAG6iG,GAAGp9F,EAAEzF,EAAEla,EAAEkgB,GAAGhG,EAAEkjF,MAAM,KAAK,EAAE,OAAO,OAAOz9E,GAAGk5F,GAAG3+F,GAAG,KAAK,KAAK,GAAG,OAAOqhB,GAAG5b,EAAEzF,EAAEgG,GAAG,KAAK,EAAE,OAAO83F,GAAG99F,EAAEA,EAAEqhF,UAAU4D,eAAe5kG,EAAE2f,EAAE0+F,aAAa,OAAOj5F,EAAEzF,EAAEkjF,MAAMsa,GAAGx9F,EAAE,KAAK3f,EAAE2lB,GAAG68F,GAAGp9F,EAAEzF,EAAE3f,EAAE2lB,GAAGhG,EAAEkjF,MAAM,KAAK,GAAG,OAAO7iG,EAAE2f,EAAE5X,KAAKpL,EAAEgjB,EAAE0+F,aAA2CoE,GAAGr9F,EAAEzF,EAAE3f,EAArCrD,EAAEgjB,EAAEm9F,cAAc98G,EAAErD,EAAEo8G,GAAG/4G,EAAErD,GAAcgpB,GAAG,KAAK,EAAE,OAAO68F,GAAGp9F,EAAEzF,EAAEA,EAAE0+F,aAAa14F,GAAGhG,EAAEkjF,MAAM,KAAK,EACtc,KAAK,GAAG,OAAO2f,GAAGp9F,EAAEzF,EAAEA,EAAE0+F,aAAah5G,SAASsgB,GAAGhG,EAAEkjF,MAAM,KAAK,GAAGz9E,EAAE,CAACplB,EAAE2f,EAAE5X,KAAK2tF,SAAS/4F,EAAEgjB,EAAE0+F,aAAa54G,EAAEka,EAAEm+F,cAAcjhH,EAAEF,EAAED,MAAM,IAAIyE,EAAEwe,EAAE5X,KAAK2tF,SAAiD,GAAxCnC,GAAEylB,GAAG73G,EAAEk0F,eAAel0F,EAAEk0F,cAAcx4F,EAAK,OAAO4I,EAAE,GAAGtE,EAAEsE,EAAE/I,MAA0G,KAApGG,EAAE40G,GAAGtwG,EAAEtE,GAAG,EAAwF,GAArF,oBAAoBmD,EAAEo1F,sBAAsBp1F,EAAEo1F,sBAAsBj0F,EAAEtE,GAAG,cAAqB,GAAG4I,EAAEJ,WAAW1I,EAAE0I,WAAW3C,GAAE6nF,QAAQ,CAAC5qE,EAAE+iG,GAAGt9F,EAAEzF,EAAEgG,GAAG,MAAMP,CAAC,OAAO,IAAc,QAAVjkB,EAAEwe,EAAEkjF,SAAiB1hG,EAAEohG,OAAO5iF,GAAG,OAAOxe,GAAG,CAAC,IAAIyhB,EAAEzhB,EAAEq4G,aAAa,GAAG,OAAO52F,EAAE,CAACnd,EAAEtE,EAAE0hG,MAAM,IAAI,IAAInhG,EACtfkhB,EAAE62F,aAAa,OAAO/3G,GAAG,CAAC,GAAGA,EAAE+F,UAAUzH,GAAG,KAAK0B,EAAEm4G,aAAah9G,GAAG,CAAC,IAAIsE,EAAE24F,OAAMp4F,EAAE84G,IAAI,EAAE70F,GAAGA,IAAKm0E,IAAI,EAAE6gB,GAAGx5G,EAAEO,IAAIP,EAAEu4G,OAAO/zF,EAAgB,QAAdjkB,EAAEP,EAAEmhG,aAAqB5gG,EAAEg4G,OAAO/zF,GAAG2zF,GAAGn4G,EAAEohG,OAAO58E,GAAG/C,EAAE82F,OAAO/zF,EAAE,KAAK,CAACjkB,EAAEA,EAAEtE,IAAI,CAAC,MAAMqI,EAAE,KAAKtE,EAAE24F,KAAI34F,EAAE4G,OAAO4X,EAAE5X,KAAK,KAAa5G,EAAE0hG,MAAM,GAAG,OAAOp9F,EAAEA,EAAE88F,OAAOphG,OAAO,IAAIsE,EAAEtE,EAAE,OAAOsE,GAAG,CAAC,GAAGA,IAAIka,EAAE,CAACla,EAAE,KAAK,KAAK,CAAa,GAAG,QAAftE,EAAEsE,EAAEq9F,SAAoB,CAAC3hG,EAAEohG,OAAO98F,EAAE88F,OAAO98F,EAAEtE,EAAE,KAAK,CAACsE,EAAEA,EAAE88F,MAAM,CAACphG,EAAEsE,CAAC,CAAC+8G,GAAGp9F,EAAEzF,EAAEhjB,EAAE0I,SAASsgB,GAAGhG,EAAEA,EAAEkjF,KAAK,CAAC,OAAOljF,EAAE,KAAK,EAAE,OAAOhjB,EAAEgjB,EAAE5X,KAAsB/H,GAAjBnD,EAAE8iB,EAAE0+F,cAAiBh5G,SAASiuE,GAAG3zD,EAAEgG,GACnd3lB,EAAEA,EADodrD,EAAEi9G,GAAGj9G,EACpfE,EAAE4wH,wBAA8B9tG,EAAE5f,OAAO,EAAEyiH,GAAGp9F,EAAEzF,EAAE3f,EAAE2lB,GAAGhG,EAAEkjF,MAAM,KAAK,GAAG,OAAgBhmG,EAAEk8G,GAAXp8G,EAAEgjB,EAAE5X,KAAY4X,EAAE0+F,cAA6BsE,GAAGv9F,EAAEzF,EAAEhjB,EAAtBE,EAAEk8G,GAAGp8G,EAAEoL,KAAKlL,GAAcmD,EAAE2lB,GAAG,KAAK,GAAG,OAAOk9F,GAAGz9F,EAAEzF,EAAEA,EAAE5X,KAAK4X,EAAE0+F,aAAar+G,EAAE2lB,GAAG,KAAK,GAAG,OAAO3lB,EAAE2f,EAAE5X,KAAKpL,EAAEgjB,EAAE0+F,aAAa1hH,EAAEgjB,EAAEm9F,cAAc98G,EAAErD,EAAEo8G,GAAG/4G,EAAErD,GAAG,OAAOyoB,IAAIA,EAAEk9E,UAAU,KAAK3iF,EAAE2iF,UAAU,KAAK3iF,EAAE5f,OAAO,GAAG4f,EAAEm6E,IAAI,EAAEuc,GAAGr2G,IAAIolB,GAAE,EAAGuxF,GAAGh3F,IAAIyF,GAAE,EAAGkuD,GAAG3zD,EAAEgG,GAAG81F,GAAG97F,EAAE3f,EAAErD,GAAGm/G,GAAGn8F,EAAE3f,EAAErD,EAAEgpB,GAAG29F,GAAG,KAAK3jG,EAAE3f,GAAE,EAAGolB,EAAEO,GAAG,KAAK,GAAG,OAAOm/F,GAAG1/F,EAAEzF,EAAEgG,GAAG,KAAK,GAAoB,KAAK,GAAG,OAAOo9F,GAAG39F,EAAEzF,EAAEgG,GAAG,MAAMhc,MAAMpK,EAAE,IAAIogB,EAAEm6E,KAC/e,EAYAizB,GAAG7mH,UAAUm2D,OAAO,SAASj3C,GAAGunG,GAAGvnG,EAAE1f,KAAKwnH,cAAc,KAAK,KAAK,EAAEH,GAAG7mH,UAAUwnH,QAAQ,WAAW,IAAItoG,EAAE1f,KAAKwnH,cAAcvtG,EAAEyF,EAAEw/E,cAAc+nB,GAAG,KAAKvnG,EAAE,MAAK,WAAWzF,EAAE00F,IAAI,IAAI,GAAE,EAEkJpR,GAAG,SAAS79E,GAAM,KAAKA,EAAE00E,MAAgBwhB,GAAGl2F,EAAE,EAAVg2F,MAAe0R,GAAG1nG,EAAE,GAAG,EAAEu0C,GAAG,SAASv0C,GAAM,KAAKA,EAAE00E,MAAgBwhB,GAAGl2F,EAAE,SAAVg2F,MAAsB0R,GAAG1nG,EAAE,UAAU,EAC7c89E,GAAG,SAAS99E,GAAG,GAAG,KAAKA,EAAE00E,IAAI,CAAC,IAAIn6E,EAAEy7F,KAAKz1F,EAAE01F,GAAGj2F,GAAGk2F,GAAGl2F,EAAEO,EAAEhG,GAAGmtG,GAAG1nG,EAAEO,EAAE,CAAC,EAAEw9E,GAAG,SAAS/9E,EAAEzF,GAAG,OAAOA,GAAG,EAChGghF,GAAG,SAASv7E,EAAEzF,EAAEgG,GAAG,OAAOhG,GAAG,IAAK,QAAyB,GAAjB07E,GAAGj2E,EAAEO,GAAGhG,EAAEgG,EAAEja,KAAQ,UAAUia,EAAE5d,MAAM,MAAM4X,EAAE,CAAC,IAAIgG,EAAEP,EAAEO,EAAEo8B,YAAYp8B,EAAEA,EAAEo8B,WAAsF,IAA3Ep8B,EAAEA,EAAE2/B,iBAAiB,cAAcxhC,KAAKC,UAAU,GAAGpE,GAAG,mBAAuBA,EAAE,EAAEA,EAAEgG,EAAEvpB,OAAOujB,IAAI,CAAC,IAAI3f,EAAE2lB,EAAEhG,GAAG,GAAG3f,IAAIolB,GAAGplB,EAAE2tH,OAAOvoG,EAAEuoG,KAAK,CAAC,IAAIhxH,EAAEskG,GAAGjhG,GAAG,IAAIrD,EAAE,MAAMgN,MAAMpK,EAAE,KAAKi7F,EAAGx6F,GAAGq7F,GAAGr7F,EAAErD,EAAE,CAAC,CAAC,CAAC,MAAM,IAAK,WAAWq/F,GAAG52E,EAAEO,GAAG,MAAM,IAAK,SAAmB,OAAVhG,EAAEgG,EAAEjpB,QAAe0iE,GAAGh6C,IAAIO,EAAEu/F,SAASvlG,GAAE,GAAI,EAAEyhF,GAAG2pB,GAC9Z1pB,GAAG,SAASj8E,EAAEzF,EAAEgG,EAAE3lB,EAAErD,GAAG,IAAIE,EAAEurH,GAAEA,IAAG,EAAE,IAAI,OAAO91D,GAAG,GAAGltC,EAAE7X,KAAK,KAAKoS,EAAEgG,EAAE3lB,EAAErD,GAAG,CAAC,QAAY,KAAJyrH,GAAEvrH,KAAUgsH,KAAKjQ,KAAK,CAAC,EAAEtX,GAAG,WAAW,KAAO,GAAF8mB,MAhD/H,WAAc,GAAG,OAAOgB,GAAG,CAAC,IAAIhkG,EAAEgkG,GAAGA,GAAG,KAAKhkG,EAAE1c,SAAQ,SAAS0c,GAAGA,EAAEuhF,cAAc,GAAGvhF,EAAEshF,aAAaqjB,GAAG3kG,EAAE4uE,KAAI,GAAE,CAAC4kB,IAAI,CAgDkBgV,GAAKvD,KAAK,EAAE9oB,GAAG,SAASn8E,EAAEzF,GAAG,IAAIgG,EAAEyiG,GAAEA,IAAG,EAAE,IAAI,OAAOhjG,EAAEzF,EAAE,CAAC,QAAY,KAAJyoG,GAAEziG,KAAUkjG,KAAKjQ,KAAK,CAAC,EAAyI,IAAIiV,GAAG,CAACC,OAAO,CAAC/sB,GAAG4P,GAAG1P,GAAGC,GAAGC,GAAGkpB,GAAG,CAAC9/B,SAAQ,KAAMwjC,GAAG,CAACC,wBAAwBzpB,GAAG0pB,WAAW,EAAEj5G,QAAQ,SAASk5G,oBAAoB,aACveC,GAAG,CAACF,WAAWF,GAAGE,WAAWj5G,QAAQ+4G,GAAG/4G,QAAQk5G,oBAAoBH,GAAGG,oBAAoBE,eAAeL,GAAGK,eAAeC,kBAAkB,KAAKC,4BAA4B,KAAKC,4BAA4B,KAAKC,cAAc,KAAKC,wBAAwB,KAAKC,wBAAwB,KAAKC,mBAAmB,KAAKC,eAAe,KAAKC,qBAAqBx2B,EAAG9D,uBAAuBu6B,wBAAwB,SAAS1pG,GAAW,OAAO,QAAfA,EAAEw9E,GAAGx9E,IAAmB,KAAKA,EAAE47E,SAAS,EAAEgtB,wBAAwBD,GAAGC,yBAR/I,WAAc,OAAO,IAAI,EASjXe,4BAA4B,KAAKC,gBAAgB,KAAKC,aAAa,KAAKC,kBAAkB,KAAKC,gBAAgB,MAAM,GAAG,qBAAqBzgH,+BAA+B,CAAC,IAAI0gH,GAAG1gH,+BAA+B,IAAI0gH,GAAGC,YAAYD,GAAGE,cAAc,IAAIxY,GAAGsY,GAAGG,OAAOpB,IAAIpX,GAAGqY,EAAE,CAAC,MAAMhqG,IAAG,CAAC,CAAC1pB,EAAQu5F,mDAAmD44B,GAAGnyH,EAAQ8zH,aAAalC,GACnX5xH,EAAQ+zH,YAAY,SAASrqG,GAAG,GAAG,MAAMA,EAAE,OAAO,KAAK,GAAG,IAAIA,EAAEtT,SAAS,OAAOsT,EAAE,IAAIzF,EAAEyF,EAAE+1F,gBAAgB,QAAG,IAASx7F,EAAE,CAAC,GAAG,oBAAoByF,EAAEi3C,OAAO,MAAM1yD,MAAMpK,EAAE,MAAM,MAAMoK,MAAMpK,EAAE,IAAIxB,OAAOmO,KAAKkZ,IAAK,CAAqC,OAA5BA,EAAE,QAAVA,EAAEw9E,GAAGjjF,IAAc,KAAKyF,EAAE47E,SAAkB,EAAEtlG,EAAQg0H,UAAU,SAAStqG,EAAEzF,GAAG,IAAIgG,EAAEyiG,GAAE,GAAG,KAAO,GAAFziG,GAAM,OAAOP,EAAEzF,GAAGyoG,IAAG,EAAE,IAAI,GAAGhjG,EAAE,OAAOktC,GAAG,GAAGltC,EAAE7X,KAAK,KAAKoS,GAAG,CAAC,QAAQyoG,GAAEziG,EAAEizF,IAAI,CAAC,EAAEl9G,EAAQipG,QAAQ,SAASv/E,EAAEzF,EAAEgG,GAAG,IAAIwnG,GAAGxtG,GAAG,MAAMhW,MAAMpK,EAAE,MAAM,OAAO6tH,GAAG,KAAKhoG,EAAEzF,GAAE,EAAGgG,EAAE,EACrdjqB,EAAQ2gE,OAAO,SAASj3C,EAAEzF,EAAEgG,GAAG,IAAIwnG,GAAGxtG,GAAG,MAAMhW,MAAMpK,EAAE,MAAM,OAAO6tH,GAAG,KAAKhoG,EAAEzF,GAAE,EAAGgG,EAAE,EAAEjqB,EAAQi0H,uBAAuB,SAASvqG,GAAG,IAAI+nG,GAAG/nG,GAAG,MAAMzb,MAAMpK,EAAE,KAAK,QAAO6lB,EAAEwiG,sBAAqBoD,IAAG,WAAWoC,GAAG,KAAK,KAAKhoG,GAAE,GAAG,WAAWA,EAAEwiG,oBAAoB,KAAKxiG,EAAEivF,IAAI,IAAI,GAAE,KAAG,EAAM,EAAE34G,EAAQk0H,wBAAwB7E,GAAGrvH,EAAQm0H,sBAAsB,SAASzqG,EAAEzF,GAAG,OAAO2tG,GAAGloG,EAAEzF,EAAE,EAAEhhB,UAAUvC,aAAQ,IAASuC,UAAU,GAAGA,UAAU,GAAG,KAAK,EACnbjD,EAAQo0H,oCAAoC,SAAS1qG,EAAEzF,EAAEgG,EAAE3lB,GAAG,IAAImtH,GAAGxnG,GAAG,MAAMhc,MAAMpK,EAAE,MAAM,GAAG,MAAM6lB,QAAG,IAASA,EAAE+1F,gBAAgB,MAAMxxG,MAAMpK,EAAE,KAAK,OAAO6tH,GAAGhoG,EAAEzF,EAAEgG,GAAE,EAAG3lB,EAAE,EAAEtE,EAAQsZ,QAAQ,Q,kCCrS3LvZ,EAAOC,QAAUC,EAAQ,G,kCCKd,IAAIkB,EAAE4I,EAAEtE,EAAEyhB,EAAE,GAAG,kBAAkBmtG,aAAa,oBAAoBA,YAAYnsE,IAAI,CAAC,IAAIliD,EAAEquH,YAAYr0H,EAAQ6qG,aAAa,WAAW,OAAO7kG,EAAEkiD,KAAK,CAAC,KAAK,CAAC,IAAIthD,EAAExD,KAAK8gB,EAAEtd,EAAEshD,MAAMloD,EAAQ6qG,aAAa,WAAW,OAAOjkG,EAAEshD,MAAMhkC,CAAC,CAAC,CAC7O,GAAG,qBAAqBha,QAAQ,oBAAoBoqH,eAAe,CAAC,IAAIluH,EAAE,KAAK2nB,EAAE,KAAK+3B,EAAE,SAAFA,IAAa,GAAG,OAAO1/C,EAAE,IAAI,IAAIsjB,EAAE1pB,EAAQ6qG,eAAezkG,GAAE,EAAGsjB,GAAGtjB,EAAE,IAAI,CAAC,MAAM6d,GAAG,MAAMwS,WAAWqvB,EAAE,GAAG7hC,CAAE,CAAC,EAAE9iB,EAAE,SAASuoB,GAAG,OAAOtjB,EAAEqwB,WAAWt1B,EAAE,EAAEuoB,IAAItjB,EAAEsjB,EAAE+M,WAAWqvB,EAAE,GAAG,EAAE/7C,EAAE,SAAS2f,EAAEzF,GAAG8J,EAAE0I,WAAW/M,EAAEzF,EAAE,EAAExe,EAAE,WAAW+zG,aAAazrF,EAAE,EAAE/tB,EAAQ27G,qBAAqB,WAAW,OAAM,CAAE,EAAEz0F,EAAElnB,EAAQu0H,wBAAwB,WAAW,CAAC,KAAK,CAAC,IAAIz3F,EAAE5yB,OAAOusB,WAAW5yB,EAAEqG,OAAOsvG,aAAa,GAAG,qBAAqBvmG,QAAQ,CAAC,IAAI2gC,EAC7f1pC,OAAOsqH,qBAAqB,oBAAoBtqH,OAAOuwB,uBAAuBxnB,QAAQpF,MAAM,sJAAsJ,oBAAoB+lC,GAAG3gC,QAAQpF,MAAM,oJAAoJ,CAAC,IAAIquB,GAAE,EAAGG,EAAE,KAAKC,GAAG,EAAE34B,EAAE,EAAE4zF,EAAE,EAAEv3F,EAAQ27G,qBAAqB,WAAW,OAAO37G,EAAQ6qG,gBAChgBtT,CAAC,EAAErwE,EAAE,WAAW,EAAElnB,EAAQu0H,wBAAwB,SAAS7qG,GAAG,EAAEA,GAAG,IAAIA,EAAEzW,QAAQpF,MAAM,mHAAmHlK,EAAE,EAAE+lB,EAAExjB,KAAKC,MAAM,IAAIujB,GAAG,CAAC,EAAE,IAAI9oB,EAAE,IAAI0zH,eAAe18B,EAAEh3F,EAAE6zH,MAAM7zH,EAAE8zH,MAAM1uG,UAAU,WAAW,GAAG,OAAOqW,EAAE,CAAC,IAAI3S,EAAE1pB,EAAQ6qG,eAAetT,EAAE7tE,EAAE/lB,EAAE,IAAI04B,GAAE,EAAG3S,GAAGkuE,EAAE3xE,YAAY,OAAOiW,GAAE,EAAGG,EAAE,KAAK,CAAC,MAAMpY,GAAG,MAAM2zE,EAAE3xE,YAAY,MAAMhC,CAAE,CAAC,MAAMiY,GAAE,CAAE,EAAE/6B,EAAE,SAASuoB,GAAG2S,EAAE3S,EAAEwS,IAAIA,GAAE,EAAG07D,EAAE3xE,YAAY,MAAM,EAAElc,EAAE,SAAS2f,EAAEzF,GAAGqY,EACtfQ,GAAE,WAAWpT,EAAE1pB,EAAQ6qG,eAAe,GAAE5mF,EAAE,EAAExe,EAAE,WAAW5B,EAAEy4B,GAAGA,GAAG,CAAC,CAAC,CAAC,SAAS32B,EAAE+jB,EAAEzF,GAAG,IAAIgG,EAAEP,EAAEhpB,OAAOgpB,EAAEpnB,KAAK2hB,GAAGyF,EAAE,OAAO,CAAC,IAAIplB,EAAE2lB,EAAE,IAAI,EAAEhpB,EAAEyoB,EAAEplB,GAAG,UAAG,IAASrD,GAAG,EAAE42F,EAAE52F,EAAEgjB,IAA0B,MAAMyF,EAA7BA,EAAEplB,GAAG2f,EAAEyF,EAAEO,GAAGhpB,EAAEgpB,EAAE3lB,CAAc,CAAC,CAAC,SAAS2zF,EAAEvuE,GAAU,YAAO,KAAdA,EAAEA,EAAE,IAAqB,KAAKA,CAAC,CACjP,SAAS6uE,EAAE7uE,GAAG,IAAIzF,EAAEyF,EAAE,GAAG,QAAG,IAASzF,EAAE,CAAC,IAAIgG,EAAEP,EAAEngB,MAAM,GAAG0gB,IAAIhG,EAAE,CAACyF,EAAE,GAAGO,EAAEP,EAAE,IAAI,IAAIplB,EAAE,EAAErD,EAAEyoB,EAAEhpB,OAAO4D,EAAErD,GAAG,CAAC,IAAI6D,EAAE,GAAGR,EAAE,GAAG,EAAExD,EAAE4oB,EAAE5kB,GAAGif,EAAEjf,EAAE,EAAEkf,EAAE0F,EAAE3F,GAAG,QAAG,IAASjjB,GAAG,EAAE+2F,EAAE/2F,EAAEmpB,QAAG,IAASjG,GAAG,EAAE6zE,EAAE7zE,EAAEljB,IAAI4oB,EAAEplB,GAAG0f,EAAE0F,EAAE3F,GAAGkG,EAAE3lB,EAAEyf,IAAI2F,EAAEplB,GAAGxD,EAAE4oB,EAAE5kB,GAAGmlB,EAAE3lB,EAAEQ,OAAQ,WAAG,IAASkf,GAAG,EAAE6zE,EAAE7zE,EAAEiG,IAA0B,MAAMP,EAA7BA,EAAEplB,GAAG0f,EAAE0F,EAAE3F,GAAGkG,EAAE3lB,EAAEyf,CAAc,EAAC,CAAC,OAAOE,CAAC,CAAC,OAAO,IAAI,CAAC,SAAS4zE,EAAEnuE,EAAEzF,GAAG,IAAIgG,EAAEP,EAAEirG,UAAU1wG,EAAE0wG,UAAU,OAAO,IAAI1qG,EAAEA,EAAEP,EAAE1B,GAAG/D,EAAE+D,EAAE,CAAC,IAAI/hB,EAAE,GAAGJ,EAAE,GAAGmB,EAAE,EAAEsxF,EAAE,KAAKE,EAAE,EAAEC,GAAE,EAAGG,GAAE,EAAG/xF,GAAE,EACja,SAASN,EAAEmjB,GAAG,IAAI,IAAIzF,EAAEg0E,EAAEpyF,GAAG,OAAOoe,GAAG,CAAC,GAAG,OAAOA,EAAEhN,SAASshF,EAAE1yF,OAAQ,MAAGoe,EAAE88D,WAAWr3D,GAAgD,MAA9C6uE,EAAE1yF,GAAGoe,EAAE0wG,UAAU1wG,EAAE2wG,eAAejvH,EAAEM,EAAEge,EAAa,CAACA,EAAEg0E,EAAEpyF,EAAE,CAAC,CAAC,SAASm/G,EAAEt7F,GAAa,GAAV7iB,GAAE,EAAGN,EAAEmjB,IAAOkvE,EAAE,GAAG,OAAOX,EAAEhyF,GAAG2yF,GAAE,EAAGz3F,EAAEyoH,OAAO,CAAC,IAAI3lG,EAAEg0E,EAAEpyF,GAAG,OAAOoe,GAAGla,EAAEi7G,EAAE/gG,EAAE88D,UAAUr3D,EAAE,CAAC,CACzP,SAASkgG,EAAElgG,EAAEzF,GAAG20E,GAAE,EAAG/xF,IAAIA,GAAE,EAAGpB,KAAKgzF,GAAE,EAAG,IAAIxuE,EAAEuuE,EAAE,IAAS,IAALjyF,EAAE0d,GAAOq0E,EAAEL,EAAEhyF,GAAG,OAAOqyF,MAAMA,EAAEs8B,eAAe3wG,IAAIyF,IAAI1pB,EAAQ27G,yBAAyB,CAAC,IAAIr3G,EAAEg0F,EAAErhF,SAAS,GAAG,oBAAoB3S,EAAE,CAACg0F,EAAErhF,SAAS,KAAKuhF,EAAEF,EAAEu8B,cAAc,IAAI5zH,EAAEqD,EAAEg0F,EAAEs8B,gBAAgB3wG,GAAGA,EAAEjkB,EAAQ6qG,eAAe,oBAAoB5pG,EAAEq3F,EAAErhF,SAAShW,EAAEq3F,IAAIL,EAAEhyF,IAAIsyF,EAAEtyF,GAAGM,EAAE0d,EAAE,MAAMs0E,EAAEtyF,GAAGqyF,EAAEL,EAAEhyF,EAAE,CAAC,GAAG,OAAOqyF,EAAE,IAAIxzF,GAAE,MAAO,CAAC,IAAIhE,EAAEm3F,EAAEpyF,GAAG,OAAO/E,GAAGiJ,EAAEi7G,EAAElkH,EAAEigF,UAAU98D,GAAGnf,GAAE,CAAE,CAAC,OAAOA,CAAC,CAAC,QAAQwzF,EAAE,KAAKE,EAAEvuE,EAAEwuE,GAAE,CAAE,CAAC,CAAC,IAAI3xF,EAAEogB,EAAElnB,EAAQw8G,sBAAsB,EACtex8G,EAAQk8G,2BAA2B,EAAEl8G,EAAQs8G,qBAAqB,EAAEt8G,EAAQypG,wBAAwB,EAAEzpG,EAAQ80H,mBAAmB,KAAK90H,EAAQksG,8BAA8B,EAAElsG,EAAQy7G,wBAAwB,SAAS/xF,GAAGA,EAAEzS,SAAS,IAAI,EAAEjX,EAAQ+0H,2BAA2B,WAAWn8B,GAAGH,IAAIG,GAAE,EAAGz3F,EAAEyoH,GAAG,EAAE5pH,EAAQg8G,iCAAiC,WAAW,OAAOxjB,CAAC,EAAEx4F,EAAQg1H,8BAA8B,WAAW,OAAO/8B,EAAEhyF,EAAE,EACtajG,EAAQi1H,cAAc,SAASvrG,GAAG,OAAO8uE,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAIv0E,EAAE,EAAE,MAAM,QAAQA,EAAEu0E,EAAE,IAAIvuE,EAAEuuE,EAAEA,EAAEv0E,EAAE,IAAI,OAAOyF,GAAG,CAAC,QAAQ8uE,EAAEvuE,CAAC,CAAC,EAAEjqB,EAAQk1H,wBAAwB,WAAW,EAAEl1H,EAAQ67G,sBAAsB/0G,EAAE9G,EAAQ+oG,yBAAyB,SAASr/E,EAAEzF,GAAG,OAAOyF,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,QAAQA,EAAE,EAAE,IAAIO,EAAEuuE,EAAEA,EAAE9uE,EAAE,IAAI,OAAOzF,GAAG,CAAC,QAAQu0E,EAAEvuE,CAAC,CAAC,EACtWjqB,EAAQwpG,0BAA0B,SAAS9/E,EAAEzF,EAAEgG,GAAG,IAAI3lB,EAAEtE,EAAQ6qG,eAA8F,OAA/E,kBAAkB5gF,GAAG,OAAOA,EAAaA,EAAE,kBAAZA,EAAEA,EAAEkrG,QAA6B,EAAElrG,EAAE3lB,EAAE2lB,EAAE3lB,EAAG2lB,EAAE3lB,EAASolB,GAAG,KAAK,EAAE,IAAIzoB,GAAG,EAAE,MAAM,KAAK,EAAEA,EAAE,IAAI,MAAM,KAAK,EAAEA,EAAE,WAAW,MAAM,KAAK,EAAEA,EAAE,IAAI,MAAM,QAAQA,EAAE,IAA2M,OAAjMyoB,EAAE,CAAC1B,GAAGhhB,IAAIiQ,SAASgN,EAAE4wG,cAAcnrG,EAAEq3D,UAAU92D,EAAE2qG,eAAvD3zH,EAAEgpB,EAAEhpB,EAAoE0zH,WAAW,GAAG1qG,EAAE3lB,GAAGolB,EAAEirG,UAAU1qG,EAAEtkB,EAAEE,EAAE6jB,GAAG,OAAOuuE,EAAEhyF,IAAIyjB,IAAIuuE,EAAEpyF,KAAKgB,EAAEpB,IAAIoB,GAAE,EAAGkD,EAAEi7G,EAAE/6F,EAAE3lB,MAAMolB,EAAEirG,UAAU1zH,EAAE0E,EAAEM,EAAEyjB,GAAGkvE,GAAGH,IAAIG,GAAE,EAAGz3F,EAAEyoH,KAAYlgG,CAAC,EAC3d1pB,EAAQo1H,sBAAsB,SAAS1rG,GAAG,IAAIzF,EAAEu0E,EAAE,OAAO,WAAW,IAAIvuE,EAAEuuE,EAAEA,EAAEv0E,EAAE,IAAI,OAAOyF,EAAElX,MAAMxI,KAAK/G,UAAU,CAAC,QAAQu1F,EAAEvuE,CAAC,CAAC,CAAC,C,mBClBhI,IAOIorG,EACAC,EARAt6G,EAAUjb,EAAOC,QAAU,CAAC,EAUhC,SAASu1H,IACL,MAAM,IAAItnH,MAAM,kCACpB,CACA,SAASunH,IACL,MAAM,IAAIvnH,MAAM,oCACpB,CAqBA,SAASwnH,EAAWC,GAChB,GAAIL,IAAqB5+F,WAErB,OAAOA,WAAWi/F,EAAK,GAG3B,IAAKL,IAAqBE,IAAqBF,IAAqB5+F,WAEhE,OADA4+F,EAAmB5+F,WACZA,WAAWi/F,EAAK,GAE3B,IAEI,OAAOL,EAAiBK,EAAK,EACjC,CAAE,MAAMz0H,GACJ,IAEI,OAAOo0H,EAAiB7zH,KAAK,KAAMk0H,EAAK,EAC5C,CAAE,MAAMz0H,GAEJ,OAAOo0H,EAAiB7zH,KAAKwI,KAAM0rH,EAAK,EAC5C,CACJ,CAGJ,EA5CC,WACG,IAEQL,EADsB,oBAAf5+F,WACYA,WAEA8+F,CAE3B,CAAE,MAAOt0H,GACLo0H,EAAmBE,CACvB,CACA,IAEQD,EADwB,oBAAjB9b,aACcA,aAEAgc,CAE7B,CAAE,MAAOv0H,GACLq0H,EAAqBE,CACzB,CACH,CAnBA,GAwED,IAEIG,EAFA3R,EAAQ,GACR4R,GAAW,EAEXC,GAAc,EAElB,SAASC,IACAF,GAAaD,IAGlBC,GAAW,EACPD,EAAaj1H,OACbsjH,EAAQ2R,EAAa76F,OAAOkpF,GAE5B6R,GAAc,EAEd7R,EAAMtjH,QACNq1H,IAER,CAEA,SAASA,IACL,IAAIH,EAAJ,CAGA,IAAII,EAAUP,EAAWK,GACzBF,GAAW,EAGX,IADA,IAAIztH,EAAM67G,EAAMtjH,OACVyH,GAAK,CAGP,IAFAwtH,EAAe3R,EACfA,EAAQ,KACC6R,EAAa1tH,GACdwtH,GACAA,EAAaE,GAAYI,MAGjCJ,GAAc,EACd1tH,EAAM67G,EAAMtjH,MAChB,CACAi1H,EAAe,KACfC,GAAW,EAnEf,SAAyBp+F,GACrB,GAAI89F,IAAuB9b,aAEvB,OAAOA,aAAahiF,GAGxB,IAAK89F,IAAuBE,IAAwBF,IAAuB9b,aAEvE,OADA8b,EAAqB9b,aACdA,aAAahiF,GAExB,IAEI,OAAO89F,EAAmB99F,EAC9B,CAAE,MAAOv2B,GACL,IAEI,OAAOq0H,EAAmB9zH,KAAK,KAAMg2B,EACzC,CAAE,MAAOv2B,GAGL,OAAOq0H,EAAmB9zH,KAAKwI,KAAMwtB,EACzC,CACJ,CAIJ,CA0CI0+F,CAAgBF,EAlBhB,CAmBJ,CAgBA,SAASG,EAAKT,EAAKr+G,GACfrN,KAAK0rH,IAAMA,EACX1rH,KAAKqN,MAAQA,CACjB,CAWA,SAAS++G,IAAQ,CA5BjBp7G,EAAQq7G,SAAW,SAAUX,GACzB,IAAIh5G,EAAO,IAAIlc,MAAMyC,UAAUvC,OAAS,GACxC,GAAIuC,UAAUvC,OAAS,EACnB,IAAK,IAAIC,EAAI,EAAGA,EAAIsC,UAAUvC,OAAQC,IAClC+b,EAAK/b,EAAI,GAAKsC,UAAUtC,GAGhCqjH,EAAM1hH,KAAK,IAAI6zH,EAAKT,EAAKh5G,IACJ,IAAjBsnG,EAAMtjH,QAAiBk1H,GACvBH,EAAWM,EAEnB,EAOAI,EAAK3rH,UAAUyrH,IAAM,WACjBjsH,KAAK0rH,IAAIljH,MAAM,KAAMxI,KAAKqN,MAC9B,EACA2D,EAAQmvD,MAAQ,UAChBnvD,EAAQC,SAAU,EAClBD,EAAQs7G,IAAM,CAAC,EACft7G,EAAQu7G,KAAO,GACfv7G,EAAQ1B,QAAU,GAClB0B,EAAQE,SAAW,CAAC,EAIpBF,EAAQw7G,GAAKJ,EACbp7G,EAAQy7G,YAAcL,EACtBp7G,EAAQ07G,KAAON,EACfp7G,EAAQ27G,IAAMP,EACdp7G,EAAQ47G,eAAiBR,EACzBp7G,EAAQ67G,mBAAqBT,EAC7Bp7G,EAAQ87G,KAAOV,EACfp7G,EAAQ+7G,gBAAkBX,EAC1Bp7G,EAAQg8G,oBAAsBZ,EAE9Bp7G,EAAQ45F,UAAY,SAAU5kG,GAAQ,MAAO,EAAG,EAEhDgL,EAAQi8G,QAAU,SAAUjnH,GACxB,MAAM,IAAI/B,MAAM,mCACpB,EAEA+M,EAAQk8G,IAAM,WAAc,MAAO,GAAI,EACvCl8G,EAAQm8G,MAAQ,SAAU31F,GACtB,MAAM,IAAIvzB,MAAM,iCACpB,EACA+M,EAAQo8G,MAAQ,WAAa,OAAO,CAAG,C,+ECtLxB,SAASC,EAAgB1sH,EAAKC,EAAK5J,GAYhD,OAXA4J,EAAM,OAAA0sH,EAAA,GAAc1sH,MACTD,EACTtI,OAAOuH,eAAee,EAAKC,EAAK,CAC9B5J,MAAOA,EACP6I,YAAY,EACZwB,cAAc,EACdC,UAAU,IAGZX,EAAIC,GAAO5J,EAEN2J,CACT,CCbA,SAAS4sH,EAAQ9mH,EAAQ+mH,GACvB,IAAIhnH,EAAOnO,OAAOmO,KAAKC,GACvB,GAAIpO,OAAOqS,sBAAuB,CAChC,IAAIe,EAAUpT,OAAOqS,sBAAsBjE,GAC3C+mH,IAAmB/hH,EAAUA,EAAQkvC,QAAO,SAAU8yE,GACpD,OAAOp1H,OAAOkQ,yBAAyB9B,EAAQgnH,GAAK5tH,UACtD,KAAK2G,EAAKlO,KAAKkQ,MAAMhC,EAAMiF,EAC7B,CACA,OAAOjF,CACT,CACe,SAASknH,EAAevlH,GACrC,IAAK,IAAIxR,EAAI,EAAGA,EAAIsC,UAAUvC,OAAQC,IAAK,CACzC,IAAI6U,EAAS,MAAQvS,UAAUtC,GAAKsC,UAAUtC,GAAK,CAAC,EACpDA,EAAI,EAAI42H,EAAQl1H,OAAOmT,IAAS,GAAIxI,SAAQ,SAAUpC,GACpD,EAAeuH,EAAQvH,EAAK4K,EAAO5K,GACrC,IAAKvI,OAAOs1H,0BAA4Bt1H,OAAOs+E,iBAAiBxuE,EAAQ9P,OAAOs1H,0BAA0BniH,IAAW+hH,EAAQl1H,OAAOmT,IAASxI,SAAQ,SAAUpC,GAC5JvI,OAAOuH,eAAeuI,EAAQvH,EAAKvI,OAAOkQ,yBAAyBiD,EAAQ5K,GAC7E,GACF,CACA,OAAOuH,CACT,C,kCCbalS,EAAQ,IAAiB,IAAIkB,EAAElB,EAAQ,GAAS8J,EAAE,MAA6B,GAAvB/J,EAAQ22F,SAAS,MAAS,oBAAoBr2F,QAAQA,OAAOy2F,IAAI,CAAC,IAAItxF,EAAEnF,OAAOy2F,IAAIhtF,EAAEtE,EAAE,iBAAiBzF,EAAQ22F,SAASlxF,EAAE,iBAAiB,CAAC,IAAIX,EAAE3D,EAAEo4F,mDAAmDP,kBAAkBl4F,EAAEuB,OAAOmI,UAAUE,eAAe9D,EAAE,CAACgE,KAAI,EAAGktF,KAAI,EAAGC,QAAO,EAAGC,UAAS,GACrW,SAAS9zE,EAAE+F,EAAEP,EAAExC,GAAG,IAAIjD,EAAE3f,EAAE,CAAC,EAAErD,EAAE,KAAK+E,EAAE,KAAiF,IAAIie,UAAhF,IAASiD,IAAIjmB,EAAE,GAAGimB,QAAG,IAASwC,EAAE9e,MAAM3J,EAAE,GAAGyoB,EAAE9e,UAAK,IAAS8e,EAAEouE,MAAM9xF,EAAE0jB,EAAEouE,KAAcpuE,EAAE5oB,EAAEU,KAAKkoB,EAAEzF,KAAKrd,EAAE8D,eAAeuZ,KAAK3f,EAAE2f,GAAGyF,EAAEzF,IAAI,GAAGgG,GAAGA,EAAEiuE,aAAa,IAAIj0E,KAAKyF,EAAEO,EAAEiuE,kBAAe,IAAS5zF,EAAE2f,KAAK3f,EAAE2f,GAAGyF,EAAEzF,IAAI,MAAM,CAACk0E,SAASpuF,EAAEsC,KAAK4d,EAAErf,IAAI3J,EAAE62F,IAAI9xF,EAAE0M,MAAMpO,EAAE8zF,OAAOtzF,EAAE+pF,QAAQ,CAAC7uF,EAAQ43H,IAAI1zG,EAAElkB,EAAQ63H,KAAK3zG,C","file":"static/js/2.2c496761.chunk.js","sourcesContent":["'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n var F = function F() {};\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"];\n if (null != _i) {\n var _s,\n _e,\n _x,\n _r,\n _arr = [],\n _n = !0,\n _d = !1;\n try {\n if (_x = (_i = _i.call(arr)).next, 0 === i) {\n if (Object(_i) !== _i) return;\n _n = !1;\n } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0);\n } catch (err) {\n _d = !0, _e = err;\n } finally {\n try {\n if (!_n && null != _i[\"return\"] && (_r = _i[\"return\"](), Object(_r) !== _r)) return;\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n }\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","/* globals __webpack_amd_options__ */\nmodule.exports = __webpack_amd_options__;\n","var token=/d{1,4}|D{3,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\\1?|W{1,2}|[LlopSZN]|\"[^\"]*\"|'[^']*'/g;var timezone=/\\b(?:[A-Z]{1,3}[A-Z][TC])(?:[-+]\\d{4})?|((?:Australian )?(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time)\\b/g;var timezoneClip=/[^-+\\dA-Z]/g;export default function dateFormat(date,mask,utc,gmt){if(arguments.length===1&&typeof date===\"string\"&&!/\\d/.test(date)){mask=date;date=undefined}date=date||date===0?date:new Date;if(!(date instanceof Date)){date=new Date(date)}if(isNaN(date)){throw TypeError(\"Invalid date\")}mask=String(masks[mask]||mask||masks[\"default\"]);var maskSlice=mask.slice(0,4);if(maskSlice===\"UTC:\"||maskSlice===\"GMT:\"){mask=mask.slice(4);utc=true;if(maskSlice===\"GMT:\"){gmt=true}}var _=function _(){return utc?\"getUTC\":\"get\"};var _d=function d(){return date[_()+\"Date\"]()};var D=function D(){return date[_()+\"Day\"]()};var _m=function m(){return date[_()+\"Month\"]()};var y=function y(){return date[_()+\"FullYear\"]()};var _H=function H(){return date[_()+\"Hours\"]()};var _M=function M(){return date[_()+\"Minutes\"]()};var _s=function s(){return date[_()+\"Seconds\"]()};var _L=function L(){return date[_()+\"Milliseconds\"]()};var _o=function o(){return utc?0:date.getTimezoneOffset()};var _W=function W(){return getWeek(date)};var _N=function N(){return getDayOfWeek(date)};var flags={d:function d(){return _d()},dd:function dd(){return pad(_d())},ddd:function ddd(){return i18n.dayNames[D()]},DDD:function DDD(){return getDayName({y:y(),m:_m(),d:_d(),_:_(),dayName:i18n.dayNames[D()],short:true})},dddd:function dddd(){return i18n.dayNames[D()+7]},DDDD:function DDDD(){return getDayName({y:y(),m:_m(),d:_d(),_:_(),dayName:i18n.dayNames[D()+7]})},m:function m(){return _m()+1},mm:function mm(){return pad(_m()+1)},mmm:function mmm(){return i18n.monthNames[_m()]},mmmm:function mmmm(){return i18n.monthNames[_m()+12]},yy:function yy(){return String(y()).slice(2)},yyyy:function yyyy(){return pad(y(),4)},h:function h(){return _H()%12||12},hh:function hh(){return pad(_H()%12||12)},H:function H(){return _H()},HH:function HH(){return pad(_H())},M:function M(){return _M()},MM:function MM(){return pad(_M())},s:function s(){return _s()},ss:function ss(){return pad(_s())},l:function l(){return pad(_L(),3)},L:function L(){return pad(Math.floor(_L()/10))},t:function t(){return _H()<12?i18n.timeNames[0]:i18n.timeNames[1]},tt:function tt(){return _H()<12?i18n.timeNames[2]:i18n.timeNames[3]},T:function T(){return _H()<12?i18n.timeNames[4]:i18n.timeNames[5]},TT:function TT(){return _H()<12?i18n.timeNames[6]:i18n.timeNames[7]},Z:function Z(){return gmt?\"GMT\":utc?\"UTC\":formatTimezone(date)},o:function o(){return(_o()>0?\"-\":\"+\")+pad(Math.floor(Math.abs(_o())/60)*100+Math.abs(_o())%60,4)},p:function p(){return(_o()>0?\"-\":\"+\")+pad(Math.floor(Math.abs(_o())/60),2)+\":\"+pad(Math.floor(Math.abs(_o())%60),2)},S:function S(){return[\"th\",\"st\",\"nd\",\"rd\"][_d()%10>3?0:(_d()%100-_d()%10!=10)*_d()%10]},W:function W(){return _W()},WW:function WW(){return pad(_W())},N:function N(){return _N()}};return mask.replace(token,function(match){if(match in flags){return flags[match]()}return match.slice(1,match.length-1)})}export var masks={default:\"ddd mmm dd yyyy HH:MM:ss\",shortDate:\"m/d/yy\",paddedShortDate:\"mm/dd/yyyy\",mediumDate:\"mmm d, yyyy\",longDate:\"mmmm d, yyyy\",fullDate:\"dddd, mmmm d, yyyy\",shortTime:\"h:MM TT\",mediumTime:\"h:MM:ss TT\",longTime:\"h:MM:ss TT Z\",isoDate:\"yyyy-mm-dd\",isoTime:\"HH:MM:ss\",isoDateTime:\"yyyy-mm-dd'T'HH:MM:sso\",isoUtcDateTime:\"UTC:yyyy-mm-dd'T'HH:MM:ss'Z'\",expiresHeaderFormat:\"ddd, dd mmm yyyy HH:MM:ss Z\"};export var i18n={dayNames:[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\",\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"],monthNames:[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\",\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"],timeNames:[\"a\",\"p\",\"am\",\"pm\",\"A\",\"P\",\"AM\",\"PM\"]};var pad=function pad(val){var len=arguments.length>1&&arguments[1]!==undefined?arguments[1]:2;return String(val).padStart(len,\"0\")};var getDayName=function getDayName(_ref){var y=_ref.y,m=_ref.m,d=_ref.d,_=_ref._,dayName=_ref.dayName,_ref$short=_ref[\"short\"],_short=_ref$short===void 0?false:_ref$short;var today=new Date;var yesterday=new Date;yesterday.setDate(yesterday[_+\"Date\"]()-1);var tomorrow=new Date;tomorrow.setDate(tomorrow[_+\"Date\"]()+1);var today_d=function today_d(){return today[_+\"Date\"]()};var today_m=function today_m(){return today[_+\"Month\"]()};var today_y=function today_y(){return today[_+\"FullYear\"]()};var yesterday_d=function yesterday_d(){return yesterday[_+\"Date\"]()};var yesterday_m=function yesterday_m(){return yesterday[_+\"Month\"]()};var yesterday_y=function yesterday_y(){return yesterday[_+\"FullYear\"]()};var tomorrow_d=function tomorrow_d(){return tomorrow[_+\"Date\"]()};var tomorrow_m=function tomorrow_m(){return tomorrow[_+\"Month\"]()};var tomorrow_y=function tomorrow_y(){return tomorrow[_+\"FullYear\"]()};if(today_y()===y&&today_m()===m&&today_d()===d){return _short?\"Tdy\":\"Today\"}else if(yesterday_y()===y&&yesterday_m()===m&&yesterday_d()===d){return _short?\"Ysd\":\"Yesterday\"}else if(tomorrow_y()===y&&tomorrow_m()===m&&tomorrow_d()===d){return _short?\"Tmw\":\"Tomorrow\"}return dayName};var getWeek=function getWeek(date){var targetThursday=new Date(date.getFullYear(),date.getMonth(),date.getDate());targetThursday.setDate(targetThursday.getDate()-(targetThursday.getDay()+6)%7+3);var firstThursday=new Date(targetThursday.getFullYear(),0,4);firstThursday.setDate(firstThursday.getDate()-(firstThursday.getDay()+6)%7+3);var ds=targetThursday.getTimezoneOffset()-firstThursday.getTimezoneOffset();targetThursday.setHours(targetThursday.getHours()-ds);var weekDiff=(targetThursday-firstThursday)/(864e5*7);return 1+Math.floor(weekDiff)};var getDayOfWeek=function getDayOfWeek(date){var dow=date.getDay();if(dow===0){dow=7}return dow};export var formatTimezone=function formatTimezone(date){return(String(date).match(timezone)||[\"\"]).pop().replace(timezoneClip,\"\").replace(/GMT\\+0000/g,\"UTC\")};","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}","import _typeof from \"./typeof.js\";\nexport default function _regeneratorRuntime() {\n \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n _regeneratorRuntime = function _regeneratorRuntime() {\n return exports;\n };\n var exports = {},\n Op = Object.prototype,\n hasOwn = Op.hasOwnProperty,\n defineProperty = Object.defineProperty || function (obj, key, desc) {\n obj[key] = desc.value;\n },\n $Symbol = \"function\" == typeof Symbol ? Symbol : {},\n iteratorSymbol = $Symbol.iterator || \"@@iterator\",\n asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\",\n toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n function define(obj, key, value) {\n return Object.defineProperty(obj, key, {\n value: value,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), obj[key];\n }\n try {\n define({}, \"\");\n } catch (err) {\n define = function define(obj, key, value) {\n return obj[key] = value;\n };\n }\n function wrap(innerFn, outerFn, self, tryLocsList) {\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator,\n generator = Object.create(protoGenerator.prototype),\n context = new Context(tryLocsList || []);\n return defineProperty(generator, \"_invoke\", {\n value: makeInvokeMethod(innerFn, self, context)\n }), generator;\n }\n function tryCatch(fn, obj, arg) {\n try {\n return {\n type: \"normal\",\n arg: fn.call(obj, arg)\n };\n } catch (err) {\n return {\n type: \"throw\",\n arg: err\n };\n }\n }\n exports.wrap = wrap;\n var ContinueSentinel = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n var getProto = Object.getPrototypeOf,\n NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype);\n var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function (method) {\n define(prototype, method, function (arg) {\n return this._invoke(method, arg);\n });\n });\n }\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (\"throw\" !== record.type) {\n var result = record.arg,\n value = result.value;\n return value && \"object\" == _typeof(value) && hasOwn.call(value, \"__await\") ? PromiseImpl.resolve(value.__await).then(function (value) {\n invoke(\"next\", value, resolve, reject);\n }, function (err) {\n invoke(\"throw\", err, resolve, reject);\n }) : PromiseImpl.resolve(value).then(function (unwrapped) {\n result.value = unwrapped, resolve(result);\n }, function (error) {\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n reject(record.arg);\n }\n var previousPromise;\n defineProperty(this, \"_invoke\", {\n value: function value(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function (resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n });\n }\n function makeInvokeMethod(innerFn, self, context) {\n var state = \"suspendedStart\";\n return function (method, arg) {\n if (\"executing\" === state) throw new Error(\"Generator is already running\");\n if (\"completed\" === state) {\n if (\"throw\" === method) throw arg;\n return doneResult();\n }\n for (context.method = method, context.arg = arg;;) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n if (\"next\" === context.method) context.sent = context._sent = context.arg;else if (\"throw\" === context.method) {\n if (\"suspendedStart\" === state) throw state = \"completed\", context.arg;\n context.dispatchException(context.arg);\n } else \"return\" === context.method && context.abrupt(\"return\", context.arg);\n state = \"executing\";\n var record = tryCatch(innerFn, self, context);\n if (\"normal\" === record.type) {\n if (state = context.done ? \"completed\" : \"suspendedYield\", record.arg === ContinueSentinel) continue;\n return {\n value: record.arg,\n done: context.done\n };\n }\n \"throw\" === record.type && (state = \"completed\", context.method = \"throw\", context.arg = record.arg);\n }\n };\n }\n function maybeInvokeDelegate(delegate, context) {\n var methodName = context.method,\n method = delegate.iterator[methodName];\n if (undefined === method) return context.delegate = null, \"throw\" === methodName && delegate.iterator[\"return\"] && (context.method = \"return\", context.arg = undefined, maybeInvokeDelegate(delegate, context), \"throw\" === context.method) || \"return\" !== methodName && (context.method = \"throw\", context.arg = new TypeError(\"The iterator does not provide a '\" + methodName + \"' method\")), ContinueSentinel;\n var record = tryCatch(method, delegate.iterator, context.arg);\n if (\"throw\" === record.type) return context.method = \"throw\", context.arg = record.arg, context.delegate = null, ContinueSentinel;\n var info = record.arg;\n return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, \"return\" !== context.method && (context.method = \"next\", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = \"throw\", context.arg = new TypeError(\"iterator result is not an object\"), context.delegate = null, ContinueSentinel);\n }\n function pushTryEntry(locs) {\n var entry = {\n tryLoc: locs[0]\n };\n 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry);\n }\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\", delete record.arg, entry.completion = record;\n }\n function Context(tryLocsList) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0);\n }\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) return iteratorMethod.call(iterable);\n if (\"function\" == typeof iterable.next) return iterable;\n if (!isNaN(iterable.length)) {\n var i = -1,\n next = function next() {\n for (; ++i < iterable.length;) if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next;\n return next.value = undefined, next.done = !0, next;\n };\n return next.next = next;\n }\n }\n return {\n next: doneResult\n };\n }\n function doneResult() {\n return {\n value: undefined,\n done: !0\n };\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, \"constructor\", {\n value: GeneratorFunctionPrototype,\n configurable: !0\n }), defineProperty(GeneratorFunctionPrototype, \"constructor\", {\n value: GeneratorFunction,\n configurable: !0\n }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, \"GeneratorFunction\"), exports.isGeneratorFunction = function (genFun) {\n var ctor = \"function\" == typeof genFun && genFun.constructor;\n return !!ctor && (ctor === GeneratorFunction || \"GeneratorFunction\" === (ctor.displayName || ctor.name));\n }, exports.mark = function (genFun) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, \"GeneratorFunction\")), genFun.prototype = Object.create(Gp), genFun;\n }, exports.awrap = function (arg) {\n return {\n __await: arg\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n void 0 === PromiseImpl && (PromiseImpl = Promise);\n var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl);\n return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) {\n return result.done ? result.value : iter.next();\n });\n }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, \"Generator\"), define(Gp, iteratorSymbol, function () {\n return this;\n }), define(Gp, \"toString\", function () {\n return \"[object Generator]\";\n }), exports.keys = function (val) {\n var object = Object(val),\n keys = [];\n for (var key in object) keys.push(key);\n return keys.reverse(), function next() {\n for (; keys.length;) {\n var key = keys.pop();\n if (key in object) return next.value = key, next.done = !1, next;\n }\n return next.done = !0, next;\n };\n }, exports.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(skipTempReset) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) \"t\" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined);\n },\n stop: function stop() {\n this.done = !0;\n var rootRecord = this.tryEntries[0].completion;\n if (\"throw\" === rootRecord.type) throw rootRecord.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(exception) {\n if (this.done) throw exception;\n var context = this;\n function handle(loc, caught) {\n return record.type = \"throw\", record.arg = exception, context.next = loc, caught && (context.method = \"next\", context.arg = undefined), !!caught;\n }\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i],\n record = entry.completion;\n if (\"root\" === entry.tryLoc) return handle(\"end\");\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\"),\n hasFinally = hasOwn.call(entry, \"finallyLoc\");\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n } else {\n if (!hasFinally) throw new Error(\"try statement without catch or finally\");\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev && hasOwn.call(entry, \"finallyLoc\") && this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n finallyEntry && (\"break\" === type || \"continue\" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null);\n var record = finallyEntry ? finallyEntry.completion : {};\n return record.type = type, record.arg = arg, finallyEntry ? (this.method = \"next\", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record);\n },\n complete: function complete(record, afterLoc) {\n if (\"throw\" === record.type) throw record.arg;\n return \"break\" === record.type || \"continue\" === record.type ? this.next = record.arg : \"return\" === record.type ? (this.rval = this.arg = record.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel;\n },\n finish: function finish(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel;\n }\n },\n \"catch\": function _catch(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (\"throw\" === record.type) {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(iterable, resultName, nextLoc) {\n return this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n }, \"next\" === this.method && (this.arg = undefined), ContinueSentinel;\n }\n }, exports;\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","import superPropBase from \"./superPropBase.js\";\nexport default function _get() {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n _get = Reflect.get.bind();\n } else {\n _get = function _get(target, property, receiver) {\n var base = superPropBase(target, property);\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n if (desc.get) {\n return desc.get.call(arguments.length < 3 ? target : receiver);\n }\n return desc.value;\n };\n }\n return _get.apply(this, arguments);\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nexport default function _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = getPrototypeOf(object);\n if (object === null) break;\n }\n return object;\n}","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, toPropertyKey(descriptor.key), descriptor);\n }\n}\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn.js\";\nexport default function _createSuper(Derived) {\n var hasNativeReflectConstruct = isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = getPrototypeOf(Derived),\n result;\n if (hasNativeReflectConstruct) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n return possibleConstructorReturn(this, result);\n };\n}","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n return assertThisInitialized(self);\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}","import _typeof from \"./typeof.js\";\nexport default function _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","/*!\n * Platform.js v1.3.6\n * Copyright 2014-2020 Benjamin Tan\n * Copyright 2011-2013 John-David Dalton\n * Available under MIT license\n */\n;(function() {\n 'use strict';\n\n /** Used to determine if values are of the language type `Object`. */\n var objectTypes = {\n 'function': true,\n 'object': true\n };\n\n /** Used as a reference to the global object. */\n var root = (objectTypes[typeof window] && window) || this;\n\n /** Backup possible global object. */\n var oldRoot = root;\n\n /** Detect free variable `exports`. */\n var freeExports = objectTypes[typeof exports] && exports;\n\n /** Detect free variable `module`. */\n var freeModule = objectTypes[typeof module] && module && !module.nodeType && module;\n\n /** Detect free variable `global` from Node.js or Browserified code and use it as `root`. */\n var freeGlobal = freeExports && freeModule && typeof global == 'object' && global;\n if (freeGlobal && (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal || freeGlobal.self === freeGlobal)) {\n root = freeGlobal;\n }\n\n /**\n * Used as the maximum length of an array-like object.\n * See the [ES6 spec](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength)\n * for more details.\n */\n var maxSafeInteger = Math.pow(2, 53) - 1;\n\n /** Regular expression to detect Opera. */\n var reOpera = /\\bOpera/;\n\n /** Possible global object. */\n var thisBinding = this;\n\n /** Used for native method references. */\n var objectProto = Object.prototype;\n\n /** Used to check for own properties of an object. */\n var hasOwnProperty = objectProto.hasOwnProperty;\n\n /** Used to resolve the internal `[[Class]]` of values. */\n var toString = objectProto.toString;\n\n /*--------------------------------------------------------------------------*/\n\n /**\n * Capitalizes a string value.\n *\n * @private\n * @param {string} string The string to capitalize.\n * @returns {string} The capitalized string.\n */\n function capitalize(string) {\n string = String(string);\n return string.charAt(0).toUpperCase() + string.slice(1);\n }\n\n /**\n * A utility function to clean up the OS name.\n *\n * @private\n * @param {string} os The OS name to clean up.\n * @param {string} [pattern] A `RegExp` pattern matching the OS name.\n * @param {string} [label] A label for the OS.\n */\n function cleanupOS(os, pattern, label) {\n // Platform tokens are defined at:\n // http://msdn.microsoft.com/en-us/library/ms537503(VS.85).aspx\n // http://web.archive.org/web/20081122053950/http://msdn.microsoft.com/en-us/library/ms537503(VS.85).aspx\n var data = {\n '10.0': '10',\n '6.4': '10 Technical Preview',\n '6.3': '8.1',\n '6.2': '8',\n '6.1': 'Server 2008 R2 / 7',\n '6.0': 'Server 2008 / Vista',\n '5.2': 'Server 2003 / XP 64-bit',\n '5.1': 'XP',\n '5.01': '2000 SP1',\n '5.0': '2000',\n '4.0': 'NT',\n '4.90': 'ME'\n };\n // Detect Windows version from platform tokens.\n if (pattern && label && /^Win/i.test(os) && !/^Windows Phone /i.test(os) &&\n (data = data[/[\\d.]+$/.exec(os)])) {\n os = 'Windows ' + data;\n }\n // Correct character case and cleanup string.\n os = String(os);\n\n if (pattern && label) {\n os = os.replace(RegExp(pattern, 'i'), label);\n }\n\n os = format(\n os.replace(/ ce$/i, ' CE')\n .replace(/\\bhpw/i, 'web')\n .replace(/\\bMacintosh\\b/, 'Mac OS')\n .replace(/_PowerPC\\b/i, ' OS')\n .replace(/\\b(OS X) [^ \\d]+/i, '$1')\n .replace(/\\bMac (OS X)\\b/, '$1')\n .replace(/\\/(\\d)/, ' $1')\n .replace(/_/g, '.')\n .replace(/(?: BePC|[ .]*fc[ \\d.]+)$/i, '')\n .replace(/\\bx86\\.64\\b/gi, 'x86_64')\n .replace(/\\b(Windows Phone) OS\\b/, '$1')\n .replace(/\\b(Chrome OS \\w+) [\\d.]+\\b/, '$1')\n .split(' on ')[0]\n );\n\n return os;\n }\n\n /**\n * An iteration utility for arrays and objects.\n *\n * @private\n * @param {Array|Object} object The object to iterate over.\n * @param {Function} callback The function called per iteration.\n */\n function each(object, callback) {\n var index = -1,\n length = object ? object.length : 0;\n\n if (typeof length == 'number' && length > -1 && length <= maxSafeInteger) {\n while (++index < length) {\n callback(object[index], index, object);\n }\n } else {\n forOwn(object, callback);\n }\n }\n\n /**\n * Trim and conditionally capitalize string values.\n *\n * @private\n * @param {string} string The string to format.\n * @returns {string} The formatted string.\n */\n function format(string) {\n string = trim(string);\n return /^(?:webOS|i(?:OS|P))/.test(string)\n ? string\n : capitalize(string);\n }\n\n /**\n * Iterates over an object's own properties, executing the `callback` for each.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} callback The function executed per own property.\n */\n function forOwn(object, callback) {\n for (var key in object) {\n if (hasOwnProperty.call(object, key)) {\n callback(object[key], key, object);\n }\n }\n }\n\n /**\n * Gets the internal `[[Class]]` of a value.\n *\n * @private\n * @param {*} value The value.\n * @returns {string} The `[[Class]]`.\n */\n function getClassOf(value) {\n return value == null\n ? capitalize(value)\n : toString.call(value).slice(8, -1);\n }\n\n /**\n * Host objects can return type values that are different from their actual\n * data type. The objects we are concerned with usually return non-primitive\n * types of \"object\", \"function\", or \"unknown\".\n *\n * @private\n * @param {*} object The owner of the property.\n * @param {string} property The property to check.\n * @returns {boolean} Returns `true` if the property value is a non-primitive, else `false`.\n */\n function isHostType(object, property) {\n var type = object != null ? typeof object[property] : 'number';\n return !/^(?:boolean|number|string|undefined)$/.test(type) &&\n (type == 'object' ? !!object[property] : true);\n }\n\n /**\n * Prepares a string for use in a `RegExp` by making hyphens and spaces optional.\n *\n * @private\n * @param {string} string The string to qualify.\n * @returns {string} The qualified string.\n */\n function qualify(string) {\n return String(string).replace(/([ -])(?!$)/g, '$1?');\n }\n\n /**\n * A bare-bones `Array#reduce` like utility function.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} callback The function called per iteration.\n * @returns {*} The accumulated result.\n */\n function reduce(array, callback) {\n var accumulator = null;\n each(array, function(value, index) {\n accumulator = callback(accumulator, value, index, array);\n });\n return accumulator;\n }\n\n /**\n * Removes leading and trailing whitespace from a string.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} The trimmed string.\n */\n function trim(string) {\n return String(string).replace(/^ +| +$/g, '');\n }\n\n /*--------------------------------------------------------------------------*/\n\n /**\n * Creates a new platform object.\n *\n * @memberOf platform\n * @param {Object|string} [ua=navigator.userAgent] The user agent string or\n * context object.\n * @returns {Object} A platform object.\n */\n function parse(ua) {\n\n /** The environment context object. */\n var context = root;\n\n /** Used to flag when a custom context is provided. */\n var isCustomContext = ua && typeof ua == 'object' && getClassOf(ua) != 'String';\n\n // Juggle arguments.\n if (isCustomContext) {\n context = ua;\n ua = null;\n }\n\n /** Browser navigator object. */\n var nav = context.navigator || {};\n\n /** Browser user agent string. */\n var userAgent = nav.userAgent || '';\n\n ua || (ua = userAgent);\n\n /** Used to flag when `thisBinding` is the [ModuleScope]. */\n var isModuleScope = isCustomContext || thisBinding == oldRoot;\n\n /** Used to detect if browser is like Chrome. */\n var likeChrome = isCustomContext\n ? !!nav.likeChrome\n : /\\bChrome\\b/.test(ua) && !/internal|\\n/i.test(toString.toString());\n\n /** Internal `[[Class]]` value shortcuts. */\n var objectClass = 'Object',\n airRuntimeClass = isCustomContext ? objectClass : 'ScriptBridgingProxyObject',\n enviroClass = isCustomContext ? objectClass : 'Environment',\n javaClass = (isCustomContext && context.java) ? 'JavaPackage' : getClassOf(context.java),\n phantomClass = isCustomContext ? objectClass : 'RuntimeObject';\n\n /** Detect Java environments. */\n var java = /\\bJava/.test(javaClass) && context.java;\n\n /** Detect Rhino. */\n var rhino = java && getClassOf(context.environment) == enviroClass;\n\n /** A character to represent alpha. */\n var alpha = java ? 'a' : '\\u03b1';\n\n /** A character to represent beta. */\n var beta = java ? 'b' : '\\u03b2';\n\n /** Browser document object. */\n var doc = context.document || {};\n\n /**\n * Detect Opera browser (Presto-based).\n * http://www.howtocreate.co.uk/operaStuff/operaObject.html\n * http://dev.opera.com/articles/view/opera-mini-web-content-authoring-guidelines/#operamini\n */\n var opera = context.operamini || context.opera;\n\n /** Opera `[[Class]]`. */\n var operaClass = reOpera.test(operaClass = (isCustomContext && opera) ? opera['[[Class]]'] : getClassOf(opera))\n ? operaClass\n : (opera = null);\n\n /*------------------------------------------------------------------------*/\n\n /** Temporary variable used over the script's lifetime. */\n var data;\n\n /** The CPU architecture. */\n var arch = ua;\n\n /** Platform description array. */\n var description = [];\n\n /** Platform alpha/beta indicator. */\n var prerelease = null;\n\n /** A flag to indicate that environment features should be used to resolve the platform. */\n var useFeatures = ua == userAgent;\n\n /** The browser/environment version. */\n var version = useFeatures && opera && typeof opera.version == 'function' && opera.version();\n\n /** A flag to indicate if the OS ends with \"/ Version\" */\n var isSpecialCasedOS;\n\n /* Detectable layout engines (order is important). */\n var layout = getLayout([\n { 'label': 'EdgeHTML', 'pattern': 'Edge' },\n 'Trident',\n { 'label': 'WebKit', 'pattern': 'AppleWebKit' },\n 'iCab',\n 'Presto',\n 'NetFront',\n 'Tasman',\n 'KHTML',\n 'Gecko'\n ]);\n\n /* Detectable browser names (order is important). */\n var name = getName([\n 'Adobe AIR',\n 'Arora',\n 'Avant Browser',\n 'Breach',\n 'Camino',\n 'Electron',\n 'Epiphany',\n 'Fennec',\n 'Flock',\n 'Galeon',\n 'GreenBrowser',\n 'iCab',\n 'Iceweasel',\n 'K-Meleon',\n 'Konqueror',\n 'Lunascape',\n 'Maxthon',\n { 'label': 'Microsoft Edge', 'pattern': '(?:Edge|Edg|EdgA|EdgiOS)' },\n 'Midori',\n 'Nook Browser',\n 'PaleMoon',\n 'PhantomJS',\n 'Raven',\n 'Rekonq',\n 'RockMelt',\n { 'label': 'Samsung Internet', 'pattern': 'SamsungBrowser' },\n 'SeaMonkey',\n { 'label': 'Silk', 'pattern': '(?:Cloud9|Silk-Accelerated)' },\n 'Sleipnir',\n 'SlimBrowser',\n { 'label': 'SRWare Iron', 'pattern': 'Iron' },\n 'Sunrise',\n 'Swiftfox',\n 'Vivaldi',\n 'Waterfox',\n 'WebPositive',\n { 'label': 'Yandex Browser', 'pattern': 'YaBrowser' },\n { 'label': 'UC Browser', 'pattern': 'UCBrowser' },\n 'Opera Mini',\n { 'label': 'Opera Mini', 'pattern': 'OPiOS' },\n 'Opera',\n { 'label': 'Opera', 'pattern': 'OPR' },\n 'Chromium',\n 'Chrome',\n { 'label': 'Chrome', 'pattern': '(?:HeadlessChrome)' },\n { 'label': 'Chrome Mobile', 'pattern': '(?:CriOS|CrMo)' },\n { 'label': 'Firefox', 'pattern': '(?:Firefox|Minefield)' },\n { 'label': 'Firefox for iOS', 'pattern': 'FxiOS' },\n { 'label': 'IE', 'pattern': 'IEMobile' },\n { 'label': 'IE', 'pattern': 'MSIE' },\n 'Safari'\n ]);\n\n /* Detectable products (order is important). */\n var product = getProduct([\n { 'label': 'BlackBerry', 'pattern': 'BB10' },\n 'BlackBerry',\n { 'label': 'Galaxy S', 'pattern': 'GT-I9000' },\n { 'label': 'Galaxy S2', 'pattern': 'GT-I9100' },\n { 'label': 'Galaxy S3', 'pattern': 'GT-I9300' },\n { 'label': 'Galaxy S4', 'pattern': 'GT-I9500' },\n { 'label': 'Galaxy S5', 'pattern': 'SM-G900' },\n { 'label': 'Galaxy S6', 'pattern': 'SM-G920' },\n { 'label': 'Galaxy S6 Edge', 'pattern': 'SM-G925' },\n { 'label': 'Galaxy S7', 'pattern': 'SM-G930' },\n { 'label': 'Galaxy S7 Edge', 'pattern': 'SM-G935' },\n 'Google TV',\n 'Lumia',\n 'iPad',\n 'iPod',\n 'iPhone',\n 'Kindle',\n { 'label': 'Kindle Fire', 'pattern': '(?:Cloud9|Silk-Accelerated)' },\n 'Nexus',\n 'Nook',\n 'PlayBook',\n 'PlayStation Vita',\n 'PlayStation',\n 'TouchPad',\n 'Transformer',\n { 'label': 'Wii U', 'pattern': 'WiiU' },\n 'Wii',\n 'Xbox One',\n { 'label': 'Xbox 360', 'pattern': 'Xbox' },\n 'Xoom'\n ]);\n\n /* Detectable manufacturers. */\n var manufacturer = getManufacturer({\n 'Apple': { 'iPad': 1, 'iPhone': 1, 'iPod': 1 },\n 'Alcatel': {},\n 'Archos': {},\n 'Amazon': { 'Kindle': 1, 'Kindle Fire': 1 },\n 'Asus': { 'Transformer': 1 },\n 'Barnes & Noble': { 'Nook': 1 },\n 'BlackBerry': { 'PlayBook': 1 },\n 'Google': { 'Google TV': 1, 'Nexus': 1 },\n 'HP': { 'TouchPad': 1 },\n 'HTC': {},\n 'Huawei': {},\n 'Lenovo': {},\n 'LG': {},\n 'Microsoft': { 'Xbox': 1, 'Xbox One': 1 },\n 'Motorola': { 'Xoom': 1 },\n 'Nintendo': { 'Wii U': 1, 'Wii': 1 },\n 'Nokia': { 'Lumia': 1 },\n 'Oppo': {},\n 'Samsung': { 'Galaxy S': 1, 'Galaxy S2': 1, 'Galaxy S3': 1, 'Galaxy S4': 1 },\n 'Sony': { 'PlayStation': 1, 'PlayStation Vita': 1 },\n 'Xiaomi': { 'Mi': 1, 'Redmi': 1 }\n });\n\n /* Detectable operating systems (order is important). */\n var os = getOS([\n 'Windows Phone',\n 'KaiOS',\n 'Android',\n 'CentOS',\n { 'label': 'Chrome OS', 'pattern': 'CrOS' },\n 'Debian',\n { 'label': 'DragonFly BSD', 'pattern': 'DragonFly' },\n 'Fedora',\n 'FreeBSD',\n 'Gentoo',\n 'Haiku',\n 'Kubuntu',\n 'Linux Mint',\n 'OpenBSD',\n 'Red Hat',\n 'SuSE',\n 'Ubuntu',\n 'Xubuntu',\n 'Cygwin',\n 'Symbian OS',\n 'hpwOS',\n 'webOS ',\n 'webOS',\n 'Tablet OS',\n 'Tizen',\n 'Linux',\n 'Mac OS X',\n 'Macintosh',\n 'Mac',\n 'Windows 98;',\n 'Windows '\n ]);\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Picks the layout engine from an array of guesses.\n *\n * @private\n * @param {Array} guesses An array of guesses.\n * @returns {null|string} The detected layout engine.\n */\n function getLayout(guesses) {\n return reduce(guesses, function(result, guess) {\n return result || RegExp('\\\\b' + (\n guess.pattern || qualify(guess)\n ) + '\\\\b', 'i').exec(ua) && (guess.label || guess);\n });\n }\n\n /**\n * Picks the manufacturer from an array of guesses.\n *\n * @private\n * @param {Array} guesses An object of guesses.\n * @returns {null|string} The detected manufacturer.\n */\n function getManufacturer(guesses) {\n return reduce(guesses, function(result, value, key) {\n // Lookup the manufacturer by product or scan the UA for the manufacturer.\n return result || (\n value[product] ||\n value[/^[a-z]+(?: +[a-z]+\\b)*/i.exec(product)] ||\n RegExp('\\\\b' + qualify(key) + '(?:\\\\b|\\\\w*\\\\d)', 'i').exec(ua)\n ) && key;\n });\n }\n\n /**\n * Picks the browser name from an array of guesses.\n *\n * @private\n * @param {Array} guesses An array of guesses.\n * @returns {null|string} The detected browser name.\n */\n function getName(guesses) {\n return reduce(guesses, function(result, guess) {\n return result || RegExp('\\\\b' + (\n guess.pattern || qualify(guess)\n ) + '\\\\b', 'i').exec(ua) && (guess.label || guess);\n });\n }\n\n /**\n * Picks the OS name from an array of guesses.\n *\n * @private\n * @param {Array} guesses An array of guesses.\n * @returns {null|string} The detected OS name.\n */\n function getOS(guesses) {\n return reduce(guesses, function(result, guess) {\n var pattern = guess.pattern || qualify(guess);\n if (!result && (result =\n RegExp('\\\\b' + pattern + '(?:/[\\\\d.]+|[ \\\\w.]*)', 'i').exec(ua)\n )) {\n result = cleanupOS(result, pattern, guess.label || guess);\n }\n return result;\n });\n }\n\n /**\n * Picks the product name from an array of guesses.\n *\n * @private\n * @param {Array} guesses An array of guesses.\n * @returns {null|string} The detected product name.\n */\n function getProduct(guesses) {\n return reduce(guesses, function(result, guess) {\n var pattern = guess.pattern || qualify(guess);\n if (!result && (result =\n RegExp('\\\\b' + pattern + ' *\\\\d+[.\\\\w_]*', 'i').exec(ua) ||\n RegExp('\\\\b' + pattern + ' *\\\\w+-[\\\\w]*', 'i').exec(ua) ||\n RegExp('\\\\b' + pattern + '(?:; *(?:[a-z]+[_-])?[a-z]+\\\\d+|[^ ();-]*)', 'i').exec(ua)\n )) {\n // Split by forward slash and append product version if needed.\n if ((result = String((guess.label && !RegExp(pattern, 'i').test(guess.label)) ? guess.label : result).split('/'))[1] && !/[\\d.]+/.test(result[0])) {\n result[0] += ' ' + result[1];\n }\n // Correct character case and cleanup string.\n guess = guess.label || guess;\n result = format(result[0]\n .replace(RegExp(pattern, 'i'), guess)\n .replace(RegExp('; *(?:' + guess + '[_-])?', 'i'), ' ')\n .replace(RegExp('(' + guess + ')[-_.]?(\\\\w)', 'i'), '$1 $2'));\n }\n return result;\n });\n }\n\n /**\n * Resolves the version using an array of UA patterns.\n *\n * @private\n * @param {Array} patterns An array of UA patterns.\n * @returns {null|string} The detected version.\n */\n function getVersion(patterns) {\n return reduce(patterns, function(result, pattern) {\n return result || (RegExp(pattern +\n '(?:-[\\\\d.]+/|(?: for [\\\\w-]+)?[ /-])([\\\\d.]+[^ ();/_-]*)', 'i').exec(ua) || 0)[1] || null;\n });\n }\n\n /**\n * Returns `platform.description` when the platform object is coerced to a string.\n *\n * @name toString\n * @memberOf platform\n * @returns {string} Returns `platform.description` if available, else an empty string.\n */\n function toStringPlatform() {\n return this.description || '';\n }\n\n /*------------------------------------------------------------------------*/\n\n // Convert layout to an array so we can add extra details.\n layout && (layout = [layout]);\n\n // Detect Android products.\n // Browsers on Android devices typically provide their product IDS after \"Android;\"\n // up to \"Build\" or \") AppleWebKit\".\n // Example:\n // \"Mozilla/5.0 (Linux; Android 8.1.0; Moto G (5) Plus) AppleWebKit/537.36\n // (KHTML, like Gecko) Chrome/70.0.3538.80 Mobile Safari/537.36\"\n if (/\\bAndroid\\b/.test(os) && !product &&\n (data = /\\bAndroid[^;]*;(.*?)(?:Build|\\) AppleWebKit)\\b/i.exec(ua))) {\n product = trim(data[1])\n // Replace any language codes (eg. \"en-US\").\n .replace(/^[a-z]{2}-[a-z]{2};\\s*/i, '')\n || null;\n }\n // Detect product names that contain their manufacturer's name.\n if (manufacturer && !product) {\n product = getProduct([manufacturer]);\n } else if (manufacturer && product) {\n product = product\n .replace(RegExp('^(' + qualify(manufacturer) + ')[-_.\\\\s]', 'i'), manufacturer + ' ')\n .replace(RegExp('^(' + qualify(manufacturer) + ')[-_.]?(\\\\w)', 'i'), manufacturer + ' $2');\n }\n // Clean up Google TV.\n if ((data = /\\bGoogle TV\\b/.exec(product))) {\n product = data[0];\n }\n // Detect simulators.\n if (/\\bSimulator\\b/i.test(ua)) {\n product = (product ? product + ' ' : '') + 'Simulator';\n }\n // Detect Opera Mini 8+ running in Turbo/Uncompressed mode on iOS.\n if (name == 'Opera Mini' && /\\bOPiOS\\b/.test(ua)) {\n description.push('running in Turbo/Uncompressed mode');\n }\n // Detect IE Mobile 11.\n if (name == 'IE' && /\\blike iPhone OS\\b/.test(ua)) {\n data = parse(ua.replace(/like iPhone OS/, ''));\n manufacturer = data.manufacturer;\n product = data.product;\n }\n // Detect iOS.\n else if (/^iP/.test(product)) {\n name || (name = 'Safari');\n os = 'iOS' + ((data = / OS ([\\d_]+)/i.exec(ua))\n ? ' ' + data[1].replace(/_/g, '.')\n : '');\n }\n // Detect Kubuntu.\n else if (name == 'Konqueror' && /^Linux\\b/i.test(os)) {\n os = 'Kubuntu';\n }\n // Detect Android browsers.\n else if ((manufacturer && manufacturer != 'Google' &&\n ((/Chrome/.test(name) && !/\\bMobile Safari\\b/i.test(ua)) || /\\bVita\\b/.test(product))) ||\n (/\\bAndroid\\b/.test(os) && /^Chrome/.test(name) && /\\bVersion\\//i.test(ua))) {\n name = 'Android Browser';\n os = /\\bAndroid\\b/.test(os) ? os : 'Android';\n }\n // Detect Silk desktop/accelerated modes.\n else if (name == 'Silk') {\n if (!/\\bMobi/i.test(ua)) {\n os = 'Android';\n description.unshift('desktop mode');\n }\n if (/Accelerated *= *true/i.test(ua)) {\n description.unshift('accelerated');\n }\n }\n // Detect UC Browser speed mode.\n else if (name == 'UC Browser' && /\\bUCWEB\\b/.test(ua)) {\n description.push('speed mode');\n }\n // Detect PaleMoon identifying as Firefox.\n else if (name == 'PaleMoon' && (data = /\\bFirefox\\/([\\d.]+)\\b/.exec(ua))) {\n description.push('identifying as Firefox ' + data[1]);\n }\n // Detect Firefox OS and products running Firefox.\n else if (name == 'Firefox' && (data = /\\b(Mobile|Tablet|TV)\\b/i.exec(ua))) {\n os || (os = 'Firefox OS');\n product || (product = data[1]);\n }\n // Detect false positives for Firefox/Safari.\n else if (!name || (data = !/\\bMinefield\\b/i.test(ua) && /\\b(?:Firefox|Safari)\\b/.exec(name))) {\n // Escape the `/` for Firefox 1.\n if (name && !product && /[\\/,]|^[^(]+?\\)/.test(ua.slice(ua.indexOf(data + '/') + 8))) {\n // Clear name of false positives.\n name = null;\n }\n // Reassign a generic name.\n if ((data = product || manufacturer || os) &&\n (product || manufacturer || /\\b(?:Android|Symbian OS|Tablet OS|webOS)\\b/.test(os))) {\n name = /[a-z]+(?: Hat)?/i.exec(/\\bAndroid\\b/.test(os) ? os : data) + ' Browser';\n }\n }\n // Add Chrome version to description for Electron.\n else if (name == 'Electron' && (data = (/\\bChrome\\/([\\d.]+)\\b/.exec(ua) || 0)[1])) {\n description.push('Chromium ' + data);\n }\n // Detect non-Opera (Presto-based) versions (order is important).\n if (!version) {\n version = getVersion([\n '(?:Cloud9|CriOS|CrMo|Edge|Edg|EdgA|EdgiOS|FxiOS|HeadlessChrome|IEMobile|Iron|Opera ?Mini|OPiOS|OPR|Raven|SamsungBrowser|Silk(?!/[\\\\d.]+$)|UCBrowser|YaBrowser)',\n 'Version',\n qualify(name),\n '(?:Firefox|Minefield|NetFront)'\n ]);\n }\n // Detect stubborn layout engines.\n if ((data =\n layout == 'iCab' && parseFloat(version) > 3 && 'WebKit' ||\n /\\bOpera\\b/.test(name) && (/\\bOPR\\b/.test(ua) ? 'Blink' : 'Presto') ||\n /\\b(?:Midori|Nook|Safari)\\b/i.test(ua) && !/^(?:Trident|EdgeHTML)$/.test(layout) && 'WebKit' ||\n !layout && /\\bMSIE\\b/i.test(ua) && (os == 'Mac OS' ? 'Tasman' : 'Trident') ||\n layout == 'WebKit' && /\\bPlayStation\\b(?! Vita\\b)/i.test(name) && 'NetFront'\n )) {\n layout = [data];\n }\n // Detect Windows Phone 7 desktop mode.\n if (name == 'IE' && (data = (/; *(?:XBLWP|ZuneWP)(\\d+)/i.exec(ua) || 0)[1])) {\n name += ' Mobile';\n os = 'Windows Phone ' + (/\\+$/.test(data) ? data : data + '.x');\n description.unshift('desktop mode');\n }\n // Detect Windows Phone 8.x desktop mode.\n else if (/\\bWPDesktop\\b/i.test(ua)) {\n name = 'IE Mobile';\n os = 'Windows Phone 8.x';\n description.unshift('desktop mode');\n version || (version = (/\\brv:([\\d.]+)/.exec(ua) || 0)[1]);\n }\n // Detect IE 11 identifying as other browsers.\n else if (name != 'IE' && layout == 'Trident' && (data = /\\brv:([\\d.]+)/.exec(ua))) {\n if (name) {\n description.push('identifying as ' + name + (version ? ' ' + version : ''));\n }\n name = 'IE';\n version = data[1];\n }\n // Leverage environment features.\n if (useFeatures) {\n // Detect server-side environments.\n // Rhino has a global function while others have a global object.\n if (isHostType(context, 'global')) {\n if (java) {\n data = java.lang.System;\n arch = data.getProperty('os.arch');\n os = os || data.getProperty('os.name') + ' ' + data.getProperty('os.version');\n }\n if (rhino) {\n try {\n version = context.require('ringo/engine').version.join('.');\n name = 'RingoJS';\n } catch(e) {\n if ((data = context.system) && data.global.system == context.system) {\n name = 'Narwhal';\n os || (os = data[0].os || null);\n }\n }\n if (!name) {\n name = 'Rhino';\n }\n }\n else if (\n typeof context.process == 'object' && !context.process.browser &&\n (data = context.process)\n ) {\n if (typeof data.versions == 'object') {\n if (typeof data.versions.electron == 'string') {\n description.push('Node ' + data.versions.node);\n name = 'Electron';\n version = data.versions.electron;\n } else if (typeof data.versions.nw == 'string') {\n description.push('Chromium ' + version, 'Node ' + data.versions.node);\n name = 'NW.js';\n version = data.versions.nw;\n }\n }\n if (!name) {\n name = 'Node.js';\n arch = data.arch;\n os = data.platform;\n version = /[\\d.]+/.exec(data.version);\n version = version ? version[0] : null;\n }\n }\n }\n // Detect Adobe AIR.\n else if (getClassOf((data = context.runtime)) == airRuntimeClass) {\n name = 'Adobe AIR';\n os = data.flash.system.Capabilities.os;\n }\n // Detect PhantomJS.\n else if (getClassOf((data = context.phantom)) == phantomClass) {\n name = 'PhantomJS';\n version = (data = data.version || null) && (data.major + '.' + data.minor + '.' + data.patch);\n }\n // Detect IE compatibility modes.\n else if (typeof doc.documentMode == 'number' && (data = /\\bTrident\\/(\\d+)/i.exec(ua))) {\n // We're in compatibility mode when the Trident version + 4 doesn't\n // equal the document mode.\n version = [version, doc.documentMode];\n if ((data = +data[1] + 4) != version[1]) {\n description.push('IE ' + version[1] + ' mode');\n layout && (layout[1] = '');\n version[1] = data;\n }\n version = name == 'IE' ? String(version[1].toFixed(1)) : version[0];\n }\n // Detect IE 11 masking as other browsers.\n else if (typeof doc.documentMode == 'number' && /^(?:Chrome|Firefox)\\b/.test(name)) {\n description.push('masking as ' + name + ' ' + version);\n name = 'IE';\n version = '11.0';\n layout = ['Trident'];\n os = 'Windows';\n }\n os = os && format(os);\n }\n // Detect prerelease phases.\n if (version && (data =\n /(?:[ab]|dp|pre|[ab]\\d+pre)(?:\\d+\\+?)?$/i.exec(version) ||\n /(?:alpha|beta)(?: ?\\d)?/i.exec(ua + ';' + (useFeatures && nav.appMinorVersion)) ||\n /\\bMinefield\\b/i.test(ua) && 'a'\n )) {\n prerelease = /b/i.test(data) ? 'beta' : 'alpha';\n version = version.replace(RegExp(data + '\\\\+?$'), '') +\n (prerelease == 'beta' ? beta : alpha) + (/\\d+\\+?/.exec(data) || '');\n }\n // Detect Firefox Mobile.\n if (name == 'Fennec' || name == 'Firefox' && /\\b(?:Android|Firefox OS|KaiOS)\\b/.test(os)) {\n name = 'Firefox Mobile';\n }\n // Obscure Maxthon's unreliable version.\n else if (name == 'Maxthon' && version) {\n version = version.replace(/\\.[\\d.]+/, '.x');\n }\n // Detect Xbox 360 and Xbox One.\n else if (/\\bXbox\\b/i.test(product)) {\n if (product == 'Xbox 360') {\n os = null;\n }\n if (product == 'Xbox 360' && /\\bIEMobile\\b/.test(ua)) {\n description.unshift('mobile mode');\n }\n }\n // Add mobile postfix.\n else if ((/^(?:Chrome|IE|Opera)$/.test(name) || name && !product && !/Browser|Mobi/.test(name)) &&\n (os == 'Windows CE' || /Mobi/i.test(ua))) {\n name += ' Mobile';\n }\n // Detect IE platform preview.\n else if (name == 'IE' && useFeatures) {\n try {\n if (context.external === null) {\n description.unshift('platform preview');\n }\n } catch(e) {\n description.unshift('embedded');\n }\n }\n // Detect BlackBerry OS version.\n // http://docs.blackberry.com/en/developers/deliverables/18169/HTTP_headers_sent_by_BB_Browser_1234911_11.jsp\n else if ((/\\bBlackBerry\\b/.test(product) || /\\bBB10\\b/.test(ua)) && (data =\n (RegExp(product.replace(/ +/g, ' *') + '/([.\\\\d]+)', 'i').exec(ua) || 0)[1] ||\n version\n )) {\n data = [data, /BB10/.test(ua)];\n os = (data[1] ? (product = null, manufacturer = 'BlackBerry') : 'Device Software') + ' ' + data[0];\n version = null;\n }\n // Detect Opera identifying/masking itself as another browser.\n // http://www.opera.com/support/kb/view/843/\n else if (this != forOwn && product != 'Wii' && (\n (useFeatures && opera) ||\n (/Opera/.test(name) && /\\b(?:MSIE|Firefox)\\b/i.test(ua)) ||\n (name == 'Firefox' && /\\bOS X (?:\\d+\\.){2,}/.test(os)) ||\n (name == 'IE' && (\n (os && !/^Win/.test(os) && version > 5.5) ||\n /\\bWindows XP\\b/.test(os) && version > 8 ||\n version == 8 && !/\\bTrident\\b/.test(ua)\n ))\n ) && !reOpera.test((data = parse.call(forOwn, ua.replace(reOpera, '') + ';'))) && data.name) {\n // When \"identifying\", the UA contains both Opera and the other browser's name.\n data = 'ing as ' + data.name + ((data = data.version) ? ' ' + data : '');\n if (reOpera.test(name)) {\n if (/\\bIE\\b/.test(data) && os == 'Mac OS') {\n os = null;\n }\n data = 'identify' + data;\n }\n // When \"masking\", the UA contains only the other browser's name.\n else {\n data = 'mask' + data;\n if (operaClass) {\n name = format(operaClass.replace(/([a-z])([A-Z])/g, '$1 $2'));\n } else {\n name = 'Opera';\n }\n if (/\\bIE\\b/.test(data)) {\n os = null;\n }\n if (!useFeatures) {\n version = null;\n }\n }\n layout = ['Presto'];\n description.push(data);\n }\n // Detect WebKit Nightly and approximate Chrome/Safari versions.\n if ((data = (/\\bAppleWebKit\\/([\\d.]+\\+?)/i.exec(ua) || 0)[1])) {\n // Correct build number for numeric comparison.\n // (e.g. \"532.5\" becomes \"532.05\")\n data = [parseFloat(data.replace(/\\.(\\d)$/, '.0$1')), data];\n // Nightly builds are postfixed with a \"+\".\n if (name == 'Safari' && data[1].slice(-1) == '+') {\n name = 'WebKit Nightly';\n prerelease = 'alpha';\n version = data[1].slice(0, -1);\n }\n // Clear incorrect browser versions.\n else if (version == data[1] ||\n version == (data[2] = (/\\bSafari\\/([\\d.]+\\+?)/i.exec(ua) || 0)[1])) {\n version = null;\n }\n // Use the full Chrome version when available.\n data[1] = (/\\b(?:Headless)?Chrome\\/([\\d.]+)/i.exec(ua) || 0)[1];\n // Detect Blink layout engine.\n if (data[0] == 537.36 && data[2] == 537.36 && parseFloat(data[1]) >= 28 && layout == 'WebKit') {\n layout = ['Blink'];\n }\n // Detect JavaScriptCore.\n // http://stackoverflow.com/questions/6768474/how-can-i-detect-which-javascript-engine-v8-or-jsc-is-used-at-runtime-in-androi\n if (!useFeatures || (!likeChrome && !data[1])) {\n layout && (layout[1] = 'like Safari');\n data = (data = data[0], data < 400 ? 1 : data < 500 ? 2 : data < 526 ? 3 : data < 533 ? 4 : data < 534 ? '4+' : data < 535 ? 5 : data < 537 ? 6 : data < 538 ? 7 : data < 601 ? 8 : data < 602 ? 9 : data < 604 ? 10 : data < 606 ? 11 : data < 608 ? 12 : '12');\n } else {\n layout && (layout[1] = 'like Chrome');\n data = data[1] || (data = data[0], data < 530 ? 1 : data < 532 ? 2 : data < 532.05 ? 3 : data < 533 ? 4 : data < 534.03 ? 5 : data < 534.07 ? 6 : data < 534.10 ? 7 : data < 534.13 ? 8 : data < 534.16 ? 9 : data < 534.24 ? 10 : data < 534.30 ? 11 : data < 535.01 ? 12 : data < 535.02 ? '13+' : data < 535.07 ? 15 : data < 535.11 ? 16 : data < 535.19 ? 17 : data < 536.05 ? 18 : data < 536.10 ? 19 : data < 537.01 ? 20 : data < 537.11 ? '21+' : data < 537.13 ? 23 : data < 537.18 ? 24 : data < 537.24 ? 25 : data < 537.36 ? 26 : layout != 'Blink' ? '27' : '28');\n }\n // Add the postfix of \".x\" or \"+\" for approximate versions.\n layout && (layout[1] += ' ' + (data += typeof data == 'number' ? '.x' : /[.+]/.test(data) ? '' : '+'));\n // Obscure version for some Safari 1-2 releases.\n if (name == 'Safari' && (!version || parseInt(version) > 45)) {\n version = data;\n } else if (name == 'Chrome' && /\\bHeadlessChrome/i.test(ua)) {\n description.unshift('headless');\n }\n }\n // Detect Opera desktop modes.\n if (name == 'Opera' && (data = /\\bzbov|zvav$/.exec(os))) {\n name += ' ';\n description.unshift('desktop mode');\n if (data == 'zvav') {\n name += 'Mini';\n version = null;\n } else {\n name += 'Mobile';\n }\n os = os.replace(RegExp(' *' + data + '$'), '');\n }\n // Detect Chrome desktop mode.\n else if (name == 'Safari' && /\\bChrome\\b/.exec(layout && layout[1])) {\n description.unshift('desktop mode');\n name = 'Chrome Mobile';\n version = null;\n\n if (/\\bOS X\\b/.test(os)) {\n manufacturer = 'Apple';\n os = 'iOS 4.3+';\n } else {\n os = null;\n }\n }\n // Newer versions of SRWare Iron uses the Chrome tag to indicate its version number.\n else if (/\\bSRWare Iron\\b/.test(name) && !version) {\n version = getVersion('Chrome');\n }\n // Strip incorrect OS versions.\n if (version && version.indexOf((data = /[\\d.]+$/.exec(os))) == 0 &&\n ua.indexOf('/' + data + '-') > -1) {\n os = trim(os.replace(data, ''));\n }\n // Ensure OS does not include the browser name.\n if (os && os.indexOf(name) != -1 && !RegExp(name + ' OS').test(os)) {\n os = os.replace(RegExp(' *' + qualify(name) + ' *'), '');\n }\n // Add layout engine.\n if (layout && !/\\b(?:Avant|Nook)\\b/.test(name) && (\n /Browser|Lunascape|Maxthon/.test(name) ||\n name != 'Safari' && /^iOS/.test(os) && /\\bSafari\\b/.test(layout[1]) ||\n /^(?:Adobe|Arora|Breach|Midori|Opera|Phantom|Rekonq|Rock|Samsung Internet|Sleipnir|SRWare Iron|Vivaldi|Web)/.test(name) && layout[1])) {\n // Don't add layout details to description if they are falsey.\n (data = layout[layout.length - 1]) && description.push(data);\n }\n // Combine contextual information.\n if (description.length) {\n description = ['(' + description.join('; ') + ')'];\n }\n // Append manufacturer to description.\n if (manufacturer && product && product.indexOf(manufacturer) < 0) {\n description.push('on ' + manufacturer);\n }\n // Append product to description.\n if (product) {\n description.push((/^on /.test(description[description.length - 1]) ? '' : 'on ') + product);\n }\n // Parse the OS into an object.\n if (os) {\n data = / ([\\d.+]+)$/.exec(os);\n isSpecialCasedOS = data && os.charAt(os.length - data[0].length - 1) == '/';\n os = {\n 'architecture': 32,\n 'family': (data && !isSpecialCasedOS) ? os.replace(data[0], '') : os,\n 'version': data ? data[1] : null,\n 'toString': function() {\n var version = this.version;\n return this.family + ((version && !isSpecialCasedOS) ? ' ' + version : '') + (this.architecture == 64 ? ' 64-bit' : '');\n }\n };\n }\n // Add browser/OS architecture.\n if ((data = /\\b(?:AMD|IA|Win|WOW|x86_|x)64\\b/i.exec(arch)) && !/\\bi686\\b/i.test(arch)) {\n if (os) {\n os.architecture = 64;\n os.family = os.family.replace(RegExp(' *' + data), '');\n }\n if (\n name && (/\\bWOW64\\b/i.test(ua) ||\n (useFeatures && /\\w(?:86|32)$/.test(nav.cpuClass || nav.platform) && !/\\bWin64; x64\\b/i.test(ua)))\n ) {\n description.unshift('32-bit');\n }\n }\n // Chrome 39 and above on OS X is always 64-bit.\n else if (\n os && /^OS X/.test(os.family) &&\n name == 'Chrome' && parseFloat(version) >= 39\n ) {\n os.architecture = 64;\n }\n\n ua || (ua = null);\n\n /*------------------------------------------------------------------------*/\n\n /**\n * The platform object.\n *\n * @name platform\n * @type Object\n */\n var platform = {};\n\n /**\n * The platform description.\n *\n * @memberOf platform\n * @type string|null\n */\n platform.description = ua;\n\n /**\n * The name of the browser's layout engine.\n *\n * The list of common layout engines include:\n * \"Blink\", \"EdgeHTML\", \"Gecko\", \"Trident\" and \"WebKit\"\n *\n * @memberOf platform\n * @type string|null\n */\n platform.layout = layout && layout[0];\n\n /**\n * The name of the product's manufacturer.\n *\n * The list of manufacturers include:\n * \"Apple\", \"Archos\", \"Amazon\", \"Asus\", \"Barnes & Noble\", \"BlackBerry\",\n * \"Google\", \"HP\", \"HTC\", \"LG\", \"Microsoft\", \"Motorola\", \"Nintendo\",\n * \"Nokia\", \"Samsung\" and \"Sony\"\n *\n * @memberOf platform\n * @type string|null\n */\n platform.manufacturer = manufacturer;\n\n /**\n * The name of the browser/environment.\n *\n * The list of common browser names include:\n * \"Chrome\", \"Electron\", \"Firefox\", \"Firefox for iOS\", \"IE\",\n * \"Microsoft Edge\", \"PhantomJS\", \"Safari\", \"SeaMonkey\", \"Silk\",\n * \"Opera Mini\" and \"Opera\"\n *\n * Mobile versions of some browsers have \"Mobile\" appended to their name:\n * eg. \"Chrome Mobile\", \"Firefox Mobile\", \"IE Mobile\" and \"Opera Mobile\"\n *\n * @memberOf platform\n * @type string|null\n */\n platform.name = name;\n\n /**\n * The alpha/beta release indicator.\n *\n * @memberOf platform\n * @type string|null\n */\n platform.prerelease = prerelease;\n\n /**\n * The name of the product hosting the browser.\n *\n * The list of common products include:\n *\n * \"BlackBerry\", \"Galaxy S4\", \"Lumia\", \"iPad\", \"iPod\", \"iPhone\", \"Kindle\",\n * \"Kindle Fire\", \"Nexus\", \"Nook\", \"PlayBook\", \"TouchPad\" and \"Transformer\"\n *\n * @memberOf platform\n * @type string|null\n */\n platform.product = product;\n\n /**\n * The browser's user agent string.\n *\n * @memberOf platform\n * @type string|null\n */\n platform.ua = ua;\n\n /**\n * The browser/environment version.\n *\n * @memberOf platform\n * @type string|null\n */\n platform.version = name && version;\n\n /**\n * The name of the operating system.\n *\n * @memberOf platform\n * @type Object\n */\n platform.os = os || {\n\n /**\n * The CPU architecture the OS is built for.\n *\n * @memberOf platform.os\n * @type number|null\n */\n 'architecture': null,\n\n /**\n * The family of the OS.\n *\n * Common values include:\n * \"Windows\", \"Windows Server 2008 R2 / 7\", \"Windows Server 2008 / Vista\",\n * \"Windows XP\", \"OS X\", \"Linux\", \"Ubuntu\", \"Debian\", \"Fedora\", \"Red Hat\",\n * \"SuSE\", \"Android\", \"iOS\" and \"Windows Phone\"\n *\n * @memberOf platform.os\n * @type string|null\n */\n 'family': null,\n\n /**\n * The version of the OS.\n *\n * @memberOf platform.os\n * @type string|null\n */\n 'version': null,\n\n /**\n * Returns the OS string.\n *\n * @memberOf platform.os\n * @returns {string} The OS string.\n */\n 'toString': function() { return 'null'; }\n };\n\n platform.parse = parse;\n platform.toString = toStringPlatform;\n\n if (platform.version) {\n description.unshift(version);\n }\n if (platform.name) {\n description.unshift(name);\n }\n if (os && name && !(os == String(os).split(' ')[0] && (os == name.split(' ')[0] || product))) {\n description.push(product ? '(' + os + ')' : 'on ' + os);\n }\n if (description.length) {\n platform.description = description.join(' ');\n }\n return platform;\n }\n\n /*--------------------------------------------------------------------------*/\n\n // Export platform.\n var platform = parse();\n\n // Some AMD build optimizers, like r.js, check for condition patterns like the following:\n if (typeof define == 'function' && typeof define.amd == 'object' && define.amd) {\n // Expose platform on the global object to prevent errors when platform is\n // loaded by a script tag in the presence of an AMD loader.\n // See http://requirejs.org/docs/errors.html#mismatch for more details.\n root.platform = platform;\n\n // Define as an anonymous module so platform can be aliased through path mapping.\n define(function() {\n return platform;\n });\n }\n // Check for `exports` after `define` in case a build optimizer adds an `exports` object.\n else if (freeExports && freeModule) {\n // Export for CommonJS support.\n forOwn(platform, function(value, key) {\n freeExports[key] = value;\n });\n }\n else {\n // Export to the global object.\n root.platform = platform;\n }\n}.call(this));\n","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n _next(undefined);\n });\n };\n}","(typeof navigator !== \"undefined\") && (function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.lottie = factory());\n})(this, (function () { 'use strict';\n\n var svgNS = 'http://www.w3.org/2000/svg';\n var locationHref = '';\n var _useWebWorker = false;\n var initialDefaultFrame = -999999;\n\n var setWebWorker = function setWebWorker(flag) {\n _useWebWorker = !!flag;\n };\n\n var getWebWorker = function getWebWorker() {\n return _useWebWorker;\n };\n\n var setLocationHref = function setLocationHref(value) {\n locationHref = value;\n };\n\n var getLocationHref = function getLocationHref() {\n return locationHref;\n };\n\n function createTag(type) {\n // return {appendChild:function(){},setAttribute:function(){},style:{}}\n return document.createElement(type);\n }\n\n function extendPrototype(sources, destination) {\n var i;\n var len = sources.length;\n var sourcePrototype;\n\n for (i = 0; i < len; i += 1) {\n sourcePrototype = sources[i].prototype;\n\n for (var attr in sourcePrototype) {\n if (Object.prototype.hasOwnProperty.call(sourcePrototype, attr)) destination.prototype[attr] = sourcePrototype[attr];\n }\n }\n }\n\n function getDescriptor(object, prop) {\n return Object.getOwnPropertyDescriptor(object, prop);\n }\n\n function createProxyFunction(prototype) {\n function ProxyFunction() {}\n\n ProxyFunction.prototype = prototype;\n return ProxyFunction;\n }\n\n // import Howl from '../../3rd_party/howler';\n var audioControllerFactory = function () {\n function AudioController(audioFactory) {\n this.audios = [];\n this.audioFactory = audioFactory;\n this._volume = 1;\n this._isMuted = false;\n }\n\n AudioController.prototype = {\n addAudio: function addAudio(audio) {\n this.audios.push(audio);\n },\n pause: function pause() {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].pause();\n }\n },\n resume: function resume() {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].resume();\n }\n },\n setRate: function setRate(rateValue) {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].setRate(rateValue);\n }\n },\n createAudio: function createAudio(assetPath) {\n if (this.audioFactory) {\n return this.audioFactory(assetPath);\n }\n\n if (window.Howl) {\n return new window.Howl({\n src: [assetPath]\n });\n }\n\n return {\n isPlaying: false,\n play: function play() {\n this.isPlaying = true;\n },\n seek: function seek() {\n this.isPlaying = false;\n },\n playing: function playing() {},\n rate: function rate() {},\n setVolume: function setVolume() {}\n };\n },\n setAudioFactory: function setAudioFactory(audioFactory) {\n this.audioFactory = audioFactory;\n },\n setVolume: function setVolume(value) {\n this._volume = value;\n\n this._updateVolume();\n },\n mute: function mute() {\n this._isMuted = true;\n\n this._updateVolume();\n },\n unmute: function unmute() {\n this._isMuted = false;\n\n this._updateVolume();\n },\n getVolume: function getVolume() {\n return this._volume;\n },\n _updateVolume: function _updateVolume() {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].volume(this._volume * (this._isMuted ? 0 : 1));\n }\n }\n };\n return function () {\n return new AudioController();\n };\n }();\n\n var createTypedArray = function () {\n function createRegularArray(type, len) {\n var i = 0;\n var arr = [];\n var value;\n\n switch (type) {\n case 'int16':\n case 'uint8c':\n value = 1;\n break;\n\n default:\n value = 1.1;\n break;\n }\n\n for (i = 0; i < len; i += 1) {\n arr.push(value);\n }\n\n return arr;\n }\n\n function createTypedArrayFactory(type, len) {\n if (type === 'float32') {\n return new Float32Array(len);\n }\n\n if (type === 'int16') {\n return new Int16Array(len);\n }\n\n if (type === 'uint8c') {\n return new Uint8ClampedArray(len);\n }\n\n return createRegularArray(type, len);\n }\n\n if (typeof Uint8ClampedArray === 'function' && typeof Float32Array === 'function') {\n return createTypedArrayFactory;\n }\n\n return createRegularArray;\n }();\n\n function createSizedArray(len) {\n return Array.apply(null, {\n length: len\n });\n }\n\n function _typeof$6(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$6 = function _typeof(obj) { return typeof obj; }; } else { _typeof$6 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$6(obj); }\n var subframeEnabled = true;\n var expressionsPlugin = null;\n var expressionsInterfaces = null;\n var idPrefix$1 = '';\n var isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n var _shouldRoundValues = false;\n var bmPow = Math.pow;\n var bmSqrt = Math.sqrt;\n var bmFloor = Math.floor;\n var bmMax = Math.max;\n var bmMin = Math.min;\n var BMMath = {};\n\n (function () {\n var 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 var i;\n var len = propertyNames.length;\n\n for (i = 0; i < len; i += 1) {\n BMMath[propertyNames[i]] = Math[propertyNames[i]];\n }\n })();\n\n function ProjectInterface$1() {\n return {};\n }\n\n BMMath.random = Math.random;\n\n BMMath.abs = function (val) {\n var tOfVal = _typeof$6(val);\n\n if (tOfVal === 'object' && val.length) {\n var absArr = createSizedArray(val.length);\n var i;\n var len = val.length;\n\n for (i = 0; i < len; i += 1) {\n absArr[i] = Math.abs(val[i]);\n }\n\n return absArr;\n }\n\n return Math.abs(val);\n };\n\n var defaultCurveSegments = 150;\n var degToRads = Math.PI / 180;\n var roundCorner = 0.5519;\n\n function roundValues(flag) {\n _shouldRoundValues = !!flag;\n }\n\n function bmRnd(value) {\n if (_shouldRoundValues) {\n return Math.round(value);\n }\n\n return value;\n }\n\n function styleDiv(element) {\n element.style.position = 'absolute';\n element.style.top = 0;\n element.style.left = 0;\n element.style.display = 'block';\n element.style.transformOrigin = '0 0';\n element.style.webkitTransformOrigin = '0 0';\n element.style.backfaceVisibility = 'visible';\n element.style.webkitBackfaceVisibility = 'visible';\n element.style.transformStyle = 'preserve-3d';\n element.style.webkitTransformStyle = 'preserve-3d';\n element.style.mozTransformStyle = 'preserve-3d';\n }\n\n function BMEnterFrameEvent(type, currentTime, totalTime, frameMultiplier) {\n this.type = type;\n this.currentTime = currentTime;\n this.totalTime = totalTime;\n this.direction = frameMultiplier < 0 ? -1 : 1;\n }\n\n function BMCompleteEvent(type, frameMultiplier) {\n this.type = type;\n this.direction = frameMultiplier < 0 ? -1 : 1;\n }\n\n function BMCompleteLoopEvent(type, totalLoops, currentLoop, frameMultiplier) {\n this.type = type;\n this.currentLoop = currentLoop;\n this.totalLoops = totalLoops;\n this.direction = frameMultiplier < 0 ? -1 : 1;\n }\n\n function BMSegmentStartEvent(type, firstFrame, totalFrames) {\n this.type = type;\n this.firstFrame = firstFrame;\n this.totalFrames = totalFrames;\n }\n\n function BMDestroyEvent(type, target) {\n this.type = type;\n this.target = target;\n }\n\n function BMRenderFrameErrorEvent(nativeError, currentTime) {\n this.type = 'renderFrameError';\n this.nativeError = nativeError;\n this.currentTime = currentTime;\n }\n\n function BMConfigErrorEvent(nativeError) {\n this.type = 'configError';\n this.nativeError = nativeError;\n }\n\n function BMAnimationConfigErrorEvent(type, nativeError) {\n this.type = type;\n this.nativeError = nativeError;\n }\n\n var createElementID = function () {\n var _count = 0;\n return function createID() {\n _count += 1;\n return idPrefix$1 + '__lottie_element_' + _count;\n };\n }();\n\n function HSVtoRGB(h, s, v) {\n var r;\n var g;\n var b;\n var i;\n var f;\n var p;\n var q;\n var t;\n i = Math.floor(h * 6);\n f = h * 6 - i;\n p = v * (1 - s);\n q = v * (1 - f * s);\n t = v * (1 - (1 - f) * s);\n\n switch (i % 6) {\n case 0:\n r = v;\n g = t;\n b = p;\n break;\n\n case 1:\n r = q;\n g = v;\n b = p;\n break;\n\n case 2:\n r = p;\n g = v;\n b = t;\n break;\n\n case 3:\n r = p;\n g = q;\n b = v;\n break;\n\n case 4:\n r = t;\n g = p;\n b = v;\n break;\n\n case 5:\n r = v;\n g = p;\n b = q;\n break;\n\n default:\n break;\n }\n\n return [r, g, b];\n }\n\n function RGBtoHSV(r, g, b) {\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var d = max - min;\n var h;\n var s = max === 0 ? 0 : d / max;\n var v = max / 255;\n\n switch (max) {\n case min:\n h = 0;\n break;\n\n case r:\n h = g - b + d * (g < b ? 6 : 0);\n h /= 6 * d;\n break;\n\n case g:\n h = b - r + d * 2;\n h /= 6 * d;\n break;\n\n case b:\n h = r - g + d * 4;\n h /= 6 * d;\n break;\n\n default:\n break;\n }\n\n return [h, s, v];\n }\n\n function addSaturationToRGB(color, offset) {\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n hsv[1] += offset;\n\n if (hsv[1] > 1) {\n hsv[1] = 1;\n } else if (hsv[1] <= 0) {\n hsv[1] = 0;\n }\n\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n }\n\n function addBrightnessToRGB(color, offset) {\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n hsv[2] += offset;\n\n if (hsv[2] > 1) {\n hsv[2] = 1;\n } else if (hsv[2] < 0) {\n hsv[2] = 0;\n }\n\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n }\n\n function addHueToRGB(color, offset) {\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n hsv[0] += offset / 360;\n\n if (hsv[0] > 1) {\n hsv[0] -= 1;\n } else if (hsv[0] < 0) {\n hsv[0] += 1;\n }\n\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n }\n\n var rgbToHex = function () {\n var colorMap = [];\n var i;\n var hex;\n\n for (i = 0; i < 256; i += 1) {\n hex = i.toString(16);\n colorMap[i] = hex.length === 1 ? '0' + hex : hex;\n }\n\n return function (r, g, b) {\n if (r < 0) {\n r = 0;\n }\n\n if (g < 0) {\n g = 0;\n }\n\n if (b < 0) {\n b = 0;\n }\n\n return '#' + colorMap[r] + colorMap[g] + colorMap[b];\n };\n }();\n\n var setSubframeEnabled = function setSubframeEnabled(flag) {\n subframeEnabled = !!flag;\n };\n\n var getSubframeEnabled = function getSubframeEnabled() {\n return subframeEnabled;\n };\n\n var setExpressionsPlugin = function setExpressionsPlugin(value) {\n expressionsPlugin = value;\n };\n\n var getExpressionsPlugin = function getExpressionsPlugin() {\n return expressionsPlugin;\n };\n\n var setExpressionInterfaces = function setExpressionInterfaces(value) {\n expressionsInterfaces = value;\n };\n\n var getExpressionInterfaces = function getExpressionInterfaces() {\n return expressionsInterfaces;\n };\n\n var setDefaultCurveSegments = function setDefaultCurveSegments(value) {\n defaultCurveSegments = value;\n };\n\n var getDefaultCurveSegments = function getDefaultCurveSegments() {\n return defaultCurveSegments;\n };\n\n var setIdPrefix = function setIdPrefix(value) {\n idPrefix$1 = value;\n };\n\n var getIdPrefix = function getIdPrefix() {\n return idPrefix$1;\n };\n\n function createNS(type) {\n // return {appendChild:function(){},setAttribute:function(){},style:{}}\n return document.createElementNS(svgNS, type);\n }\n\n function _typeof$5(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$5 = function _typeof(obj) { return typeof obj; }; } else { _typeof$5 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$5(obj); }\n\n var dataManager = function () {\n var _counterId = 1;\n var processes = [];\n var workerFn;\n var workerInstance;\n var workerProxy = {\n onmessage: function onmessage() {},\n postMessage: function postMessage(path) {\n workerFn({\n data: path\n });\n }\n };\n var _workerSelf = {\n postMessage: function postMessage(data) {\n workerProxy.onmessage({\n data: data\n });\n }\n };\n\n function createWorker(fn) {\n if (window.Worker && window.Blob && getWebWorker()) {\n var blob = new Blob(['var _workerSelf = self; self.onmessage = ', fn.toString()], {\n type: 'text/javascript'\n }); // var blob = new Blob(['self.onmessage = ', fn.toString()], { type: 'text/javascript' });\n\n var url = URL.createObjectURL(blob);\n return new Worker(url);\n }\n\n workerFn = fn;\n return workerProxy;\n }\n\n function setupWorker() {\n if (!workerInstance) {\n workerInstance = createWorker(function workerStart(e) {\n function dataFunctionManager() {\n function completeLayers(layers, comps) {\n var layerData;\n var i;\n var len = layers.length;\n var j;\n var jLen;\n var k;\n var kLen;\n\n for (i = 0; i < len; i += 1) {\n layerData = layers[i];\n\n if ('ks' in layerData && !layerData.completed) {\n layerData.completed = true;\n\n if (layerData.hasMask) {\n var maskProps = layerData.masksProperties;\n jLen = maskProps.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (maskProps[j].pt.k.i) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k);\n } else {\n kLen = maskProps[j].pt.k.length;\n\n for (k = 0; k < kLen; k += 1) {\n if (maskProps[j].pt.k[k].s) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k[k].s[0]);\n }\n\n if (maskProps[j].pt.k[k].e) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k[k].e[0]);\n }\n }\n }\n }\n }\n\n if (layerData.ty === 0) {\n layerData.layers = findCompLayers(layerData.refId, comps);\n completeLayers(layerData.layers, comps);\n } else if (layerData.ty === 4) {\n completeShapes(layerData.shapes);\n } else if (layerData.ty === 5) {\n completeText(layerData);\n }\n }\n }\n }\n\n function completeChars(chars, assets) {\n if (chars) {\n var i = 0;\n var len = chars.length;\n\n for (i = 0; i < len; i += 1) {\n if (chars[i].t === 1) {\n // var compData = findComp(chars[i].data.refId, assets);\n chars[i].data.layers = findCompLayers(chars[i].data.refId, assets); // chars[i].data.ip = 0;\n // chars[i].data.op = 99999;\n // chars[i].data.st = 0;\n // chars[i].data.sr = 1;\n // chars[i].w = compData.w;\n // chars[i].data.ks = {\n // a: { k: [0, 0, 0], a: 0 },\n // p: { k: [0, -compData.h, 0], a: 0 },\n // r: { k: 0, a: 0 },\n // s: { k: [100, 100], a: 0 },\n // o: { k: 100, a: 0 },\n // };\n\n completeLayers(chars[i].data.layers, assets);\n }\n }\n }\n }\n\n function findComp(id, comps) {\n var i = 0;\n var len = comps.length;\n\n while (i < len) {\n if (comps[i].id === id) {\n return comps[i];\n }\n\n i += 1;\n }\n\n return null;\n }\n\n function findCompLayers(id, comps) {\n var comp = findComp(id, comps);\n\n if (comp) {\n if (!comp.layers.__used) {\n comp.layers.__used = true;\n return comp.layers;\n }\n\n return JSON.parse(JSON.stringify(comp.layers));\n }\n\n return null;\n }\n\n function completeShapes(arr) {\n var i;\n var len = arr.length;\n var j;\n var jLen;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (arr[i].ty === 'sh') {\n if (arr[i].ks.k.i) {\n convertPathsToAbsoluteValues(arr[i].ks.k);\n } else {\n jLen = arr[i].ks.k.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (arr[i].ks.k[j].s) {\n convertPathsToAbsoluteValues(arr[i].ks.k[j].s[0]);\n }\n\n if (arr[i].ks.k[j].e) {\n convertPathsToAbsoluteValues(arr[i].ks.k[j].e[0]);\n }\n }\n }\n } else if (arr[i].ty === 'gr') {\n completeShapes(arr[i].it);\n }\n }\n }\n\n function convertPathsToAbsoluteValues(path) {\n var i;\n var len = path.i.length;\n\n for (i = 0; i < len; i += 1) {\n path.i[i][0] += path.v[i][0];\n path.i[i][1] += path.v[i][1];\n path.o[i][0] += path.v[i][0];\n path.o[i][1] += path.v[i][1];\n }\n }\n\n function checkVersion(minimum, animVersionString) {\n var animVersion = animVersionString ? animVersionString.split('.') : [100, 100, 100];\n\n if (minimum[0] > animVersion[0]) {\n return true;\n }\n\n if (animVersion[0] > minimum[0]) {\n return false;\n }\n\n if (minimum[1] > animVersion[1]) {\n return true;\n }\n\n if (animVersion[1] > minimum[1]) {\n return false;\n }\n\n if (minimum[2] > animVersion[2]) {\n return true;\n }\n\n if (animVersion[2] > minimum[2]) {\n return false;\n }\n\n return null;\n }\n\n var checkText = function () {\n var minimumVersion = [4, 4, 14];\n\n function updateTextLayer(textLayer) {\n var documentData = textLayer.t.d;\n textLayer.t.d = {\n k: [{\n s: documentData,\n t: 0\n }]\n };\n }\n\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 5) {\n updateTextLayer(layers[i]);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n var checkChars = function () {\n var minimumVersion = [4, 7, 99];\n return function (animationData) {\n if (animationData.chars && !checkVersion(minimumVersion, animationData.v)) {\n var i;\n var len = animationData.chars.length;\n\n for (i = 0; i < len; i += 1) {\n var charData = animationData.chars[i];\n\n if (charData.data && charData.data.shapes) {\n completeShapes(charData.data.shapes);\n charData.data.ip = 0;\n charData.data.op = 99999;\n charData.data.st = 0;\n charData.data.sr = 1;\n charData.data.ks = {\n p: {\n k: [0, 0],\n a: 0\n },\n s: {\n k: [100, 100],\n a: 0\n },\n a: {\n k: [0, 0],\n a: 0\n },\n r: {\n k: 0,\n a: 0\n },\n o: {\n k: 100,\n a: 0\n }\n };\n\n if (!animationData.chars[i].t) {\n charData.data.shapes.push({\n ty: 'no'\n });\n charData.data.shapes[0].it.push({\n p: {\n k: [0, 0],\n a: 0\n },\n s: {\n k: [100, 100],\n a: 0\n },\n a: {\n k: [0, 0],\n a: 0\n },\n r: {\n k: 0,\n a: 0\n },\n o: {\n k: 100,\n a: 0\n },\n sk: {\n k: 0,\n a: 0\n },\n sa: {\n k: 0,\n a: 0\n },\n ty: 'tr'\n });\n }\n }\n }\n }\n };\n }();\n\n var checkPathProperties = function () {\n var minimumVersion = [5, 7, 15];\n\n function updateTextLayer(textLayer) {\n var pathData = textLayer.t.p;\n\n if (typeof pathData.a === 'number') {\n pathData.a = {\n a: 0,\n k: pathData.a\n };\n }\n\n if (typeof pathData.p === 'number') {\n pathData.p = {\n a: 0,\n k: pathData.p\n };\n }\n\n if (typeof pathData.r === 'number') {\n pathData.r = {\n a: 0,\n k: pathData.r\n };\n }\n }\n\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 5) {\n updateTextLayer(layers[i]);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n var checkColors = function () {\n var minimumVersion = [4, 1, 9];\n\n function iterateShapes(shapes) {\n var i;\n var len = shapes.length;\n var j;\n var jLen;\n\n for (i = 0; i < len; i += 1) {\n if (shapes[i].ty === 'gr') {\n iterateShapes(shapes[i].it);\n } else if (shapes[i].ty === 'fl' || shapes[i].ty === 'st') {\n if (shapes[i].c.k && shapes[i].c.k[0].i) {\n jLen = shapes[i].c.k.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (shapes[i].c.k[j].s) {\n shapes[i].c.k[j].s[0] /= 255;\n shapes[i].c.k[j].s[1] /= 255;\n shapes[i].c.k[j].s[2] /= 255;\n shapes[i].c.k[j].s[3] /= 255;\n }\n\n if (shapes[i].c.k[j].e) {\n shapes[i].c.k[j].e[0] /= 255;\n shapes[i].c.k[j].e[1] /= 255;\n shapes[i].c.k[j].e[2] /= 255;\n shapes[i].c.k[j].e[3] /= 255;\n }\n }\n } else {\n shapes[i].c.k[0] /= 255;\n shapes[i].c.k[1] /= 255;\n shapes[i].c.k[2] /= 255;\n shapes[i].c.k[3] /= 255;\n }\n }\n }\n }\n\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 4) {\n iterateShapes(layers[i].shapes);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n var checkShapes = function () {\n var minimumVersion = [4, 4, 18];\n\n function completeClosingShapes(arr) {\n var i;\n var len = arr.length;\n var j;\n var jLen;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (arr[i].ty === 'sh') {\n if (arr[i].ks.k.i) {\n arr[i].ks.k.c = arr[i].closed;\n } else {\n jLen = arr[i].ks.k.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (arr[i].ks.k[j].s) {\n arr[i].ks.k[j].s[0].c = arr[i].closed;\n }\n\n if (arr[i].ks.k[j].e) {\n arr[i].ks.k[j].e[0].c = arr[i].closed;\n }\n }\n }\n } else if (arr[i].ty === 'gr') {\n completeClosingShapes(arr[i].it);\n }\n }\n }\n\n function iterateLayers(layers) {\n var layerData;\n var i;\n var len = layers.length;\n var j;\n var jLen;\n var k;\n var kLen;\n\n for (i = 0; i < len; i += 1) {\n layerData = layers[i];\n\n if (layerData.hasMask) {\n var maskProps = layerData.masksProperties;\n jLen = maskProps.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (maskProps[j].pt.k.i) {\n maskProps[j].pt.k.c = maskProps[j].cl;\n } else {\n kLen = maskProps[j].pt.k.length;\n\n for (k = 0; k < kLen; k += 1) {\n if (maskProps[j].pt.k[k].s) {\n maskProps[j].pt.k[k].s[0].c = maskProps[j].cl;\n }\n\n if (maskProps[j].pt.k[k].e) {\n maskProps[j].pt.k[k].e[0].c = maskProps[j].cl;\n }\n }\n }\n }\n }\n\n if (layerData.ty === 4) {\n completeClosingShapes(layerData.shapes);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n function completeData(animationData) {\n if (animationData.__complete) {\n return;\n }\n\n checkColors(animationData);\n checkText(animationData);\n checkChars(animationData);\n checkPathProperties(animationData);\n checkShapes(animationData);\n completeLayers(animationData.layers, animationData.assets);\n completeChars(animationData.chars, animationData.assets);\n animationData.__complete = true;\n }\n\n function completeText(data) {\n if (data.t.a.length === 0 && !('m' in data.t.p)) {// data.singleShape = true;\n }\n }\n\n var moduleOb = {};\n moduleOb.completeData = completeData;\n moduleOb.checkColors = checkColors;\n moduleOb.checkChars = checkChars;\n moduleOb.checkPathProperties = checkPathProperties;\n moduleOb.checkShapes = checkShapes;\n moduleOb.completeLayers = completeLayers;\n return moduleOb;\n }\n\n if (!_workerSelf.dataManager) {\n _workerSelf.dataManager = dataFunctionManager();\n }\n\n if (!_workerSelf.assetLoader) {\n _workerSelf.assetLoader = function () {\n function formatResponse(xhr) {\n // using typeof doubles the time of execution of this method,\n // so if available, it's better to use the header to validate the type\n var contentTypeHeader = xhr.getResponseHeader('content-type');\n\n if (contentTypeHeader && xhr.responseType === 'json' && contentTypeHeader.indexOf('json') !== -1) {\n return xhr.response;\n }\n\n if (xhr.response && _typeof$5(xhr.response) === 'object') {\n return xhr.response;\n }\n\n if (xhr.response && typeof xhr.response === 'string') {\n return JSON.parse(xhr.response);\n }\n\n if (xhr.responseText) {\n return JSON.parse(xhr.responseText);\n }\n\n return null;\n }\n\n function loadAsset(path, fullPath, callback, errorCallback) {\n var response;\n var xhr = new XMLHttpRequest(); // set responseType after calling open or IE will break.\n\n try {\n // This crashes on Android WebView prior to KitKat\n xhr.responseType = 'json';\n } catch (err) {} // eslint-disable-line no-empty\n\n\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 4) {\n if (xhr.status === 200) {\n response = formatResponse(xhr);\n callback(response);\n } else {\n try {\n response = formatResponse(xhr);\n callback(response);\n } catch (err) {\n if (errorCallback) {\n errorCallback(err);\n }\n }\n }\n }\n };\n\n try {\n // Hack to workaround banner validation\n xhr.open(['G', 'E', 'T'].join(''), path, true);\n } catch (error) {\n // Hack to workaround banner validation\n xhr.open(['G', 'E', 'T'].join(''), fullPath + '/' + path, true);\n }\n\n xhr.send();\n }\n\n return {\n load: loadAsset\n };\n }();\n }\n\n if (e.data.type === 'loadAnimation') {\n _workerSelf.assetLoader.load(e.data.path, e.data.fullPath, function (data) {\n _workerSelf.dataManager.completeData(data);\n\n _workerSelf.postMessage({\n id: e.data.id,\n payload: data,\n status: 'success'\n });\n }, function () {\n _workerSelf.postMessage({\n id: e.data.id,\n status: 'error'\n });\n });\n } else if (e.data.type === 'complete') {\n var animation = e.data.animation;\n\n _workerSelf.dataManager.completeData(animation);\n\n _workerSelf.postMessage({\n id: e.data.id,\n payload: animation,\n status: 'success'\n });\n } else if (e.data.type === 'loadData') {\n _workerSelf.assetLoader.load(e.data.path, e.data.fullPath, function (data) {\n _workerSelf.postMessage({\n id: e.data.id,\n payload: data,\n status: 'success'\n });\n }, function () {\n _workerSelf.postMessage({\n id: e.data.id,\n status: 'error'\n });\n });\n }\n });\n\n workerInstance.onmessage = function (event) {\n var data = event.data;\n var id = data.id;\n var process = processes[id];\n processes[id] = null;\n\n if (data.status === 'success') {\n process.onComplete(data.payload);\n } else if (process.onError) {\n process.onError();\n }\n };\n }\n }\n\n function createProcess(onComplete, onError) {\n _counterId += 1;\n var id = 'processId_' + _counterId;\n processes[id] = {\n onComplete: onComplete,\n onError: onError\n };\n return id;\n }\n\n function loadAnimation(path, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'loadAnimation',\n path: path,\n fullPath: window.location.origin + window.location.pathname,\n id: processId\n });\n }\n\n function loadData(path, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'loadData',\n path: path,\n fullPath: window.location.origin + window.location.pathname,\n id: processId\n });\n }\n\n function completeAnimation(anim, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'complete',\n animation: anim,\n id: processId\n });\n }\n\n return {\n loadAnimation: loadAnimation,\n loadData: loadData,\n completeAnimation: completeAnimation\n };\n }();\n\n var ImagePreloader = function () {\n var proxyImage = function () {\n var canvas = createTag('canvas');\n canvas.width = 1;\n canvas.height = 1;\n var ctx = canvas.getContext('2d');\n ctx.fillStyle = 'rgba(0,0,0,0)';\n ctx.fillRect(0, 0, 1, 1);\n return canvas;\n }();\n\n function imageLoaded() {\n this.loadedAssets += 1;\n\n if (this.loadedAssets === this.totalImages && this.loadedFootagesCount === this.totalFootages) {\n if (this.imagesLoadedCb) {\n this.imagesLoadedCb(null);\n }\n }\n }\n\n function footageLoaded() {\n this.loadedFootagesCount += 1;\n\n if (this.loadedAssets === this.totalImages && this.loadedFootagesCount === this.totalFootages) {\n if (this.imagesLoadedCb) {\n this.imagesLoadedCb(null);\n }\n }\n }\n\n function getAssetsPath(assetData, assetsPath, originalPath) {\n var path = '';\n\n if (assetData.e) {\n path = assetData.p;\n } else if (assetsPath) {\n var imagePath = assetData.p;\n\n if (imagePath.indexOf('images/') !== -1) {\n imagePath = imagePath.split('/')[1];\n }\n\n path = assetsPath + imagePath;\n } else {\n path = originalPath;\n path += assetData.u ? assetData.u : '';\n path += assetData.p;\n }\n\n return path;\n }\n\n function testImageLoaded(img) {\n var _count = 0;\n var intervalId = setInterval(function () {\n var box = img.getBBox();\n\n if (box.width || _count > 500) {\n this._imageLoaded();\n\n clearInterval(intervalId);\n }\n\n _count += 1;\n }.bind(this), 50);\n }\n\n function createImageData(assetData) {\n var path = getAssetsPath(assetData, this.assetsPath, this.path);\n var img = createNS('image');\n\n if (isSafari) {\n this.testImageLoaded(img);\n } else {\n img.addEventListener('load', this._imageLoaded, false);\n }\n\n img.addEventListener('error', function () {\n ob.img = proxyImage;\n\n this._imageLoaded();\n }.bind(this), false);\n img.setAttributeNS('http://www.w3.org/1999/xlink', 'href', path);\n\n if (this._elementHelper.append) {\n this._elementHelper.append(img);\n } else {\n this._elementHelper.appendChild(img);\n }\n\n var ob = {\n img: img,\n assetData: assetData\n };\n return ob;\n }\n\n function createImgData(assetData) {\n var path = getAssetsPath(assetData, this.assetsPath, this.path);\n var img = createTag('img');\n img.crossOrigin = 'anonymous';\n img.addEventListener('load', this._imageLoaded, false);\n img.addEventListener('error', function () {\n ob.img = proxyImage;\n\n this._imageLoaded();\n }.bind(this), false);\n img.src = path;\n var ob = {\n img: img,\n assetData: assetData\n };\n return ob;\n }\n\n function createFootageData(data) {\n var ob = {\n assetData: data\n };\n var path = getAssetsPath(data, this.assetsPath, this.path);\n dataManager.loadData(path, function (footageData) {\n ob.img = footageData;\n\n this._footageLoaded();\n }.bind(this), function () {\n ob.img = {};\n\n this._footageLoaded();\n }.bind(this));\n return ob;\n }\n\n function loadAssets(assets, cb) {\n this.imagesLoadedCb = cb;\n var i;\n var len = assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (!assets[i].layers) {\n if (!assets[i].t || assets[i].t === 'seq') {\n this.totalImages += 1;\n this.images.push(this._createImageData(assets[i]));\n } else if (assets[i].t === 3) {\n this.totalFootages += 1;\n this.images.push(this.createFootageData(assets[i]));\n }\n }\n }\n }\n\n function setPath(path) {\n this.path = path || '';\n }\n\n function setAssetsPath(path) {\n this.assetsPath = path || '';\n }\n\n function getAsset(assetData) {\n var i = 0;\n var len = this.images.length;\n\n while (i < len) {\n if (this.images[i].assetData === assetData) {\n return this.images[i].img;\n }\n\n i += 1;\n }\n\n return null;\n }\n\n function destroy() {\n this.imagesLoadedCb = null;\n this.images.length = 0;\n }\n\n function loadedImages() {\n return this.totalImages === this.loadedAssets;\n }\n\n function loadedFootages() {\n return this.totalFootages === this.loadedFootagesCount;\n }\n\n function setCacheType(type, elementHelper) {\n if (type === 'svg') {\n this._elementHelper = elementHelper;\n this._createImageData = this.createImageData.bind(this);\n } else {\n this._createImageData = this.createImgData.bind(this);\n }\n }\n\n function ImagePreloaderFactory() {\n this._imageLoaded = imageLoaded.bind(this);\n this._footageLoaded = footageLoaded.bind(this);\n this.testImageLoaded = testImageLoaded.bind(this);\n this.createFootageData = createFootageData.bind(this);\n this.assetsPath = '';\n this.path = '';\n this.totalImages = 0;\n this.totalFootages = 0;\n this.loadedAssets = 0;\n this.loadedFootagesCount = 0;\n this.imagesLoadedCb = null;\n this.images = [];\n }\n\n ImagePreloaderFactory.prototype = {\n loadAssets: loadAssets,\n setAssetsPath: setAssetsPath,\n setPath: setPath,\n loadedImages: loadedImages,\n loadedFootages: loadedFootages,\n destroy: destroy,\n getAsset: getAsset,\n createImgData: createImgData,\n createImageData: createImageData,\n imageLoaded: imageLoaded,\n footageLoaded: footageLoaded,\n setCacheType: setCacheType\n };\n return ImagePreloaderFactory;\n }();\n\n function BaseEvent() {}\n\n BaseEvent.prototype = {\n triggerEvent: function triggerEvent(eventName, args) {\n if (this._cbs[eventName]) {\n var callbacks = this._cbs[eventName];\n\n for (var i = 0; i < callbacks.length; i += 1) {\n callbacks[i](args);\n }\n }\n },\n addEventListener: function addEventListener(eventName, callback) {\n if (!this._cbs[eventName]) {\n this._cbs[eventName] = [];\n }\n\n this._cbs[eventName].push(callback);\n\n return function () {\n this.removeEventListener(eventName, callback);\n }.bind(this);\n },\n removeEventListener: function removeEventListener(eventName, callback) {\n if (!callback) {\n this._cbs[eventName] = null;\n } else if (this._cbs[eventName]) {\n var i = 0;\n var len = this._cbs[eventName].length;\n\n while (i < len) {\n if (this._cbs[eventName][i] === callback) {\n this._cbs[eventName].splice(i, 1);\n\n i -= 1;\n len -= 1;\n }\n\n i += 1;\n }\n\n if (!this._cbs[eventName].length) {\n this._cbs[eventName] = null;\n }\n }\n }\n };\n\n var markerParser = function () {\n function parsePayloadLines(payload) {\n var lines = payload.split('\\r\\n');\n var keys = {};\n var line;\n var keysCount = 0;\n\n for (var i = 0; i < lines.length; i += 1) {\n line = lines[i].split(':');\n\n if (line.length === 2) {\n keys[line[0]] = line[1].trim();\n keysCount += 1;\n }\n }\n\n if (keysCount === 0) {\n throw new Error();\n }\n\n return keys;\n }\n\n return function (_markers) {\n var markers = [];\n\n for (var i = 0; i < _markers.length; i += 1) {\n var _marker = _markers[i];\n var markerData = {\n time: _marker.tm,\n duration: _marker.dr\n };\n\n try {\n markerData.payload = JSON.parse(_markers[i].cm);\n } catch (_) {\n try {\n markerData.payload = parsePayloadLines(_markers[i].cm);\n } catch (__) {\n markerData.payload = {\n name: _markers[i].cm\n };\n }\n }\n\n markers.push(markerData);\n }\n\n return markers;\n };\n }();\n\n var ProjectInterface = function () {\n function registerComposition(comp) {\n this.compositions.push(comp);\n }\n\n return function () {\n function _thisProjectFunction(name) {\n var i = 0;\n var len = this.compositions.length;\n\n while (i < len) {\n if (this.compositions[i].data && this.compositions[i].data.nm === name) {\n if (this.compositions[i].prepareFrame && this.compositions[i].data.xt) {\n this.compositions[i].prepareFrame(this.currentFrame);\n }\n\n return this.compositions[i].compInterface;\n }\n\n i += 1;\n }\n\n return null;\n }\n\n _thisProjectFunction.compositions = [];\n _thisProjectFunction.currentFrame = 0;\n _thisProjectFunction.registerComposition = registerComposition;\n return _thisProjectFunction;\n };\n }();\n\n var renderers = {};\n\n var registerRenderer = function registerRenderer(key, value) {\n renderers[key] = value;\n };\n\n function getRenderer(key) {\n return renderers[key];\n }\n\n function getRegisteredRenderer() {\n // Returns canvas by default for compatibility\n if (renderers.canvas) {\n return 'canvas';\n } // Returns any renderer that is registered\n\n\n for (var key in renderers) {\n if (renderers[key]) {\n return key;\n }\n }\n\n return '';\n }\n\n function _typeof$4(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$4 = function _typeof(obj) { return typeof obj; }; } else { _typeof$4 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$4(obj); }\n\n var AnimationItem = function AnimationItem() {\n this._cbs = [];\n this.name = '';\n this.path = '';\n this.isLoaded = false;\n this.currentFrame = 0;\n this.currentRawFrame = 0;\n this.firstFrame = 0;\n this.totalFrames = 0;\n this.frameRate = 0;\n this.frameMult = 0;\n this.playSpeed = 1;\n this.playDirection = 1;\n this.playCount = 0;\n this.animationData = {};\n this.assets = [];\n this.isPaused = true;\n this.autoplay = false;\n this.loop = true;\n this.renderer = null;\n this.animationID = createElementID();\n this.assetsPath = '';\n this.timeCompleted = 0;\n this.segmentPos = 0;\n this.isSubframeEnabled = getSubframeEnabled();\n this.segments = [];\n this._idle = true;\n this._completedLoop = false;\n this.projectInterface = ProjectInterface();\n this.imagePreloader = new ImagePreloader();\n this.audioController = audioControllerFactory();\n this.markers = [];\n this.configAnimation = this.configAnimation.bind(this);\n this.onSetupError = this.onSetupError.bind(this);\n this.onSegmentComplete = this.onSegmentComplete.bind(this);\n this.drawnFrameEvent = new BMEnterFrameEvent('drawnFrame', 0, 0, 0);\n };\n\n extendPrototype([BaseEvent], AnimationItem);\n\n AnimationItem.prototype.setParams = function (params) {\n if (params.wrapper || params.container) {\n this.wrapper = params.wrapper || params.container;\n }\n\n var animType = 'svg';\n\n if (params.animType) {\n animType = params.animType;\n } else if (params.renderer) {\n animType = params.renderer;\n }\n\n var RendererClass = getRenderer(animType);\n this.renderer = new RendererClass(this, params.rendererSettings);\n this.imagePreloader.setCacheType(animType, this.renderer.globalData.defs);\n this.renderer.setProjectInterface(this.projectInterface);\n this.animType = animType;\n\n if (params.loop === '' || params.loop === null || params.loop === undefined || params.loop === true) {\n this.loop = true;\n } else if (params.loop === false) {\n this.loop = false;\n } else {\n this.loop = parseInt(params.loop, 10);\n }\n\n this.autoplay = 'autoplay' in params ? params.autoplay : true;\n this.name = params.name ? params.name : '';\n this.autoloadSegments = Object.prototype.hasOwnProperty.call(params, 'autoloadSegments') ? params.autoloadSegments : true;\n this.assetsPath = params.assetsPath;\n this.initialSegment = params.initialSegment;\n\n if (params.audioFactory) {\n this.audioController.setAudioFactory(params.audioFactory);\n }\n\n if (params.animationData) {\n this.setupAnimation(params.animationData);\n } else if (params.path) {\n if (params.path.lastIndexOf('\\\\') !== -1) {\n this.path = params.path.substr(0, params.path.lastIndexOf('\\\\') + 1);\n } else {\n this.path = params.path.substr(0, params.path.lastIndexOf('/') + 1);\n }\n\n this.fileName = params.path.substr(params.path.lastIndexOf('/') + 1);\n this.fileName = this.fileName.substr(0, this.fileName.lastIndexOf('.json'));\n dataManager.loadAnimation(params.path, this.configAnimation, this.onSetupError);\n }\n };\n\n AnimationItem.prototype.onSetupError = function () {\n this.trigger('data_failed');\n };\n\n AnimationItem.prototype.setupAnimation = function (data) {\n dataManager.completeAnimation(data, this.configAnimation);\n };\n\n AnimationItem.prototype.setData = function (wrapper, animationData) {\n if (animationData) {\n if (_typeof$4(animationData) !== 'object') {\n animationData = JSON.parse(animationData);\n }\n }\n\n var params = {\n wrapper: wrapper,\n animationData: animationData\n };\n var wrapperAttributes = wrapper.attributes;\n params.path = wrapperAttributes.getNamedItem('data-animation-path') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-animation-path').value : wrapperAttributes.getNamedItem('data-bm-path') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-path').value : wrapperAttributes.getNamedItem('bm-path') ? wrapperAttributes.getNamedItem('bm-path').value : '';\n params.animType = wrapperAttributes.getNamedItem('data-anim-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-type').value : wrapperAttributes.getNamedItem('data-bm-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-type').value : wrapperAttributes.getNamedItem('bm-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('bm-type').value : wrapperAttributes.getNamedItem('data-bm-renderer') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-renderer').value : wrapperAttributes.getNamedItem('bm-renderer') ? wrapperAttributes.getNamedItem('bm-renderer').value : getRegisteredRenderer() || 'canvas';\n var loop = wrapperAttributes.getNamedItem('data-anim-loop') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-loop').value : wrapperAttributes.getNamedItem('data-bm-loop') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-loop').value : wrapperAttributes.getNamedItem('bm-loop') ? wrapperAttributes.getNamedItem('bm-loop').value : '';\n\n if (loop === 'false') {\n params.loop = false;\n } else if (loop === 'true') {\n params.loop = true;\n } else if (loop !== '') {\n params.loop = parseInt(loop, 10);\n }\n\n var autoplay = wrapperAttributes.getNamedItem('data-anim-autoplay') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-autoplay').value : wrapperAttributes.getNamedItem('data-bm-autoplay') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-autoplay').value : wrapperAttributes.getNamedItem('bm-autoplay') ? wrapperAttributes.getNamedItem('bm-autoplay').value : true;\n params.autoplay = autoplay !== 'false';\n params.name = wrapperAttributes.getNamedItem('data-name') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-name').value : wrapperAttributes.getNamedItem('data-bm-name') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-name').value : wrapperAttributes.getNamedItem('bm-name') ? wrapperAttributes.getNamedItem('bm-name').value : '';\n var prerender = wrapperAttributes.getNamedItem('data-anim-prerender') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-prerender').value : wrapperAttributes.getNamedItem('data-bm-prerender') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-prerender').value : wrapperAttributes.getNamedItem('bm-prerender') ? wrapperAttributes.getNamedItem('bm-prerender').value : '';\n\n if (prerender === 'false') {\n params.prerender = false;\n }\n\n if (!params.path) {\n this.trigger('destroy');\n } else {\n this.setParams(params);\n }\n };\n\n AnimationItem.prototype.includeLayers = function (data) {\n if (data.op > this.animationData.op) {\n this.animationData.op = data.op;\n this.totalFrames = Math.floor(data.op - this.animationData.ip);\n }\n\n var layers = this.animationData.layers;\n var i;\n var len = layers.length;\n var newLayers = data.layers;\n var j;\n var jLen = newLayers.length;\n\n for (j = 0; j < jLen; j += 1) {\n i = 0;\n\n while (i < len) {\n if (layers[i].id === newLayers[j].id) {\n layers[i] = newLayers[j];\n break;\n }\n\n i += 1;\n }\n }\n\n if (data.chars || data.fonts) {\n this.renderer.globalData.fontManager.addChars(data.chars);\n this.renderer.globalData.fontManager.addFonts(data.fonts, this.renderer.globalData.defs);\n }\n\n if (data.assets) {\n len = data.assets.length;\n\n for (i = 0; i < len; i += 1) {\n this.animationData.assets.push(data.assets[i]);\n }\n }\n\n this.animationData.__complete = false;\n dataManager.completeAnimation(this.animationData, this.onSegmentComplete);\n };\n\n AnimationItem.prototype.onSegmentComplete = function (data) {\n this.animationData = data;\n var expressionsPlugin = getExpressionsPlugin();\n\n if (expressionsPlugin) {\n expressionsPlugin.initExpressions(this);\n }\n\n this.loadNextSegment();\n };\n\n AnimationItem.prototype.loadNextSegment = function () {\n var segments = this.animationData.segments;\n\n if (!segments || segments.length === 0 || !this.autoloadSegments) {\n this.trigger('data_ready');\n this.timeCompleted = this.totalFrames;\n return;\n }\n\n var segment = segments.shift();\n this.timeCompleted = segment.time * this.frameRate;\n var segmentPath = this.path + this.fileName + '_' + this.segmentPos + '.json';\n this.segmentPos += 1;\n dataManager.loadData(segmentPath, this.includeLayers.bind(this), function () {\n this.trigger('data_failed');\n }.bind(this));\n };\n\n AnimationItem.prototype.loadSegments = function () {\n var segments = this.animationData.segments;\n\n if (!segments) {\n this.timeCompleted = this.totalFrames;\n }\n\n this.loadNextSegment();\n };\n\n AnimationItem.prototype.imagesLoaded = function () {\n this.trigger('loaded_images');\n this.checkLoaded();\n };\n\n AnimationItem.prototype.preloadImages = function () {\n this.imagePreloader.setAssetsPath(this.assetsPath);\n this.imagePreloader.setPath(this.path);\n this.imagePreloader.loadAssets(this.animationData.assets, this.imagesLoaded.bind(this));\n };\n\n AnimationItem.prototype.configAnimation = function (animData) {\n if (!this.renderer) {\n return;\n }\n\n try {\n this.animationData = animData;\n\n if (this.initialSegment) {\n this.totalFrames = Math.floor(this.initialSegment[1] - this.initialSegment[0]);\n this.firstFrame = Math.round(this.initialSegment[0]);\n } else {\n this.totalFrames = Math.floor(this.animationData.op - this.animationData.ip);\n this.firstFrame = Math.round(this.animationData.ip);\n }\n\n this.renderer.configAnimation(animData);\n\n if (!animData.assets) {\n animData.assets = [];\n }\n\n this.assets = this.animationData.assets;\n this.frameRate = this.animationData.fr;\n this.frameMult = this.animationData.fr / 1000;\n this.renderer.searchExtraCompositions(animData.assets);\n this.markers = markerParser(animData.markers || []);\n this.trigger('config_ready');\n this.preloadImages();\n this.loadSegments();\n this.updaFrameModifier();\n this.waitForFontsLoaded();\n\n if (this.isPaused) {\n this.audioController.pause();\n }\n } catch (error) {\n this.triggerConfigError(error);\n }\n };\n\n AnimationItem.prototype.waitForFontsLoaded = function () {\n if (!this.renderer) {\n return;\n }\n\n if (this.renderer.globalData.fontManager.isLoaded) {\n this.checkLoaded();\n } else {\n setTimeout(this.waitForFontsLoaded.bind(this), 20);\n }\n };\n\n AnimationItem.prototype.checkLoaded = function () {\n if (!this.isLoaded && this.renderer.globalData.fontManager.isLoaded && (this.imagePreloader.loadedImages() || this.renderer.rendererType !== 'canvas') && this.imagePreloader.loadedFootages()) {\n this.isLoaded = true;\n var expressionsPlugin = getExpressionsPlugin();\n\n if (expressionsPlugin) {\n expressionsPlugin.initExpressions(this);\n }\n\n this.renderer.initItems();\n setTimeout(function () {\n this.trigger('DOMLoaded');\n }.bind(this), 0);\n this.gotoFrame();\n\n if (this.autoplay) {\n this.play();\n }\n }\n };\n\n AnimationItem.prototype.resize = function (width, height) {\n // Adding this validation for backwards compatibility in case an event object was being passed down\n var _width = typeof width === 'number' ? width : undefined;\n\n var _height = typeof height === 'number' ? height : undefined;\n\n this.renderer.updateContainerSize(_width, _height);\n };\n\n AnimationItem.prototype.setSubframe = function (flag) {\n this.isSubframeEnabled = !!flag;\n };\n\n AnimationItem.prototype.gotoFrame = function () {\n this.currentFrame = this.isSubframeEnabled ? this.currentRawFrame : ~~this.currentRawFrame; // eslint-disable-line no-bitwise\n\n if (this.timeCompleted !== this.totalFrames && this.currentFrame > this.timeCompleted) {\n this.currentFrame = this.timeCompleted;\n }\n\n this.trigger('enterFrame');\n this.renderFrame();\n this.trigger('drawnFrame');\n };\n\n AnimationItem.prototype.renderFrame = function () {\n if (this.isLoaded === false || !this.renderer) {\n return;\n }\n\n try {\n this.renderer.renderFrame(this.currentFrame + this.firstFrame);\n } catch (error) {\n this.triggerRenderFrameError(error);\n }\n };\n\n AnimationItem.prototype.play = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n if (this.isPaused === true) {\n this.isPaused = false;\n this.trigger('_pause');\n this.audioController.resume();\n\n if (this._idle) {\n this._idle = false;\n this.trigger('_active');\n }\n }\n };\n\n AnimationItem.prototype.pause = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n if (this.isPaused === false) {\n this.isPaused = true;\n this.trigger('_play');\n this._idle = true;\n this.trigger('_idle');\n this.audioController.pause();\n }\n };\n\n AnimationItem.prototype.togglePause = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n if (this.isPaused === true) {\n this.play();\n } else {\n this.pause();\n }\n };\n\n AnimationItem.prototype.stop = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.pause();\n this.playCount = 0;\n this._completedLoop = false;\n this.setCurrentRawFrameValue(0);\n };\n\n AnimationItem.prototype.getMarkerData = function (markerName) {\n var marker;\n\n for (var i = 0; i < this.markers.length; i += 1) {\n marker = this.markers[i];\n\n if (marker.payload && marker.payload.name === markerName) {\n return marker;\n }\n }\n\n return null;\n };\n\n AnimationItem.prototype.goToAndStop = function (value, isFrame, name) {\n if (name && this.name !== name) {\n return;\n }\n\n var numValue = Number(value);\n\n if (isNaN(numValue)) {\n var marker = this.getMarkerData(value);\n\n if (marker) {\n this.goToAndStop(marker.time, true);\n }\n } else if (isFrame) {\n this.setCurrentRawFrameValue(value);\n } else {\n this.setCurrentRawFrameValue(value * this.frameModifier);\n }\n\n this.pause();\n };\n\n AnimationItem.prototype.goToAndPlay = function (value, isFrame, name) {\n if (name && this.name !== name) {\n return;\n }\n\n var numValue = Number(value);\n\n if (isNaN(numValue)) {\n var marker = this.getMarkerData(value);\n\n if (marker) {\n if (!marker.duration) {\n this.goToAndStop(marker.time, true);\n } else {\n this.playSegments([marker.time, marker.time + marker.duration], true);\n }\n }\n } else {\n this.goToAndStop(numValue, isFrame, name);\n }\n\n this.play();\n };\n\n AnimationItem.prototype.advanceTime = function (value) {\n if (this.isPaused === true || this.isLoaded === false) {\n return;\n }\n\n var nextValue = this.currentRawFrame + value * this.frameModifier;\n var _isComplete = false; // Checking if nextValue > totalFrames - 1 for addressing non looping and looping animations.\n // 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\n if (nextValue >= this.totalFrames - 1 && this.frameModifier > 0) {\n if (!this.loop || this.playCount === this.loop) {\n if (!this.checkSegments(nextValue > this.totalFrames ? nextValue % this.totalFrames : 0)) {\n _isComplete = true;\n nextValue = this.totalFrames - 1;\n }\n } else if (nextValue >= this.totalFrames) {\n this.playCount += 1;\n\n if (!this.checkSegments(nextValue % this.totalFrames)) {\n this.setCurrentRawFrameValue(nextValue % this.totalFrames);\n this._completedLoop = true;\n this.trigger('loopComplete');\n }\n } else {\n this.setCurrentRawFrameValue(nextValue);\n }\n } else if (nextValue < 0) {\n if (!this.checkSegments(nextValue % this.totalFrames)) {\n if (this.loop && !(this.playCount-- <= 0 && this.loop !== true)) {\n // eslint-disable-line no-plusplus\n this.setCurrentRawFrameValue(this.totalFrames + nextValue % this.totalFrames);\n\n if (!this._completedLoop) {\n this._completedLoop = true;\n } else {\n this.trigger('loopComplete');\n }\n } else {\n _isComplete = true;\n nextValue = 0;\n }\n }\n } else {\n this.setCurrentRawFrameValue(nextValue);\n }\n\n if (_isComplete) {\n this.setCurrentRawFrameValue(nextValue);\n this.pause();\n this.trigger('complete');\n }\n };\n\n AnimationItem.prototype.adjustSegment = function (arr, offset) {\n this.playCount = 0;\n\n if (arr[1] < arr[0]) {\n if (this.frameModifier > 0) {\n if (this.playSpeed < 0) {\n this.setSpeed(-this.playSpeed);\n } else {\n this.setDirection(-1);\n }\n }\n\n this.totalFrames = arr[0] - arr[1];\n this.timeCompleted = this.totalFrames;\n this.firstFrame = arr[1];\n this.setCurrentRawFrameValue(this.totalFrames - 0.001 - offset);\n } else if (arr[1] > arr[0]) {\n if (this.frameModifier < 0) {\n if (this.playSpeed < 0) {\n this.setSpeed(-this.playSpeed);\n } else {\n this.setDirection(1);\n }\n }\n\n this.totalFrames = arr[1] - arr[0];\n this.timeCompleted = this.totalFrames;\n this.firstFrame = arr[0];\n this.setCurrentRawFrameValue(0.001 + offset);\n }\n\n this.trigger('segmentStart');\n };\n\n AnimationItem.prototype.setSegment = function (init, end) {\n var pendingFrame = -1;\n\n if (this.isPaused) {\n if (this.currentRawFrame + this.firstFrame < init) {\n pendingFrame = init;\n } else if (this.currentRawFrame + this.firstFrame > end) {\n pendingFrame = end - init;\n }\n }\n\n this.firstFrame = init;\n this.totalFrames = end - init;\n this.timeCompleted = this.totalFrames;\n\n if (pendingFrame !== -1) {\n this.goToAndStop(pendingFrame, true);\n }\n };\n\n AnimationItem.prototype.playSegments = function (arr, forceFlag) {\n if (forceFlag) {\n this.segments.length = 0;\n }\n\n if (_typeof$4(arr[0]) === 'object') {\n var i;\n var len = arr.length;\n\n for (i = 0; i < len; i += 1) {\n this.segments.push(arr[i]);\n }\n } else {\n this.segments.push(arr);\n }\n\n if (this.segments.length && forceFlag) {\n this.adjustSegment(this.segments.shift(), 0);\n }\n\n if (this.isPaused) {\n this.play();\n }\n };\n\n AnimationItem.prototype.resetSegments = function (forceFlag) {\n this.segments.length = 0;\n this.segments.push([this.animationData.ip, this.animationData.op]);\n\n if (forceFlag) {\n this.checkSegments(0);\n }\n };\n\n AnimationItem.prototype.checkSegments = function (offset) {\n if (this.segments.length) {\n this.adjustSegment(this.segments.shift(), offset);\n return true;\n }\n\n return false;\n };\n\n AnimationItem.prototype.destroy = function (name) {\n if (name && this.name !== name || !this.renderer) {\n return;\n }\n\n this.renderer.destroy();\n this.imagePreloader.destroy();\n this.trigger('destroy');\n this._cbs = null;\n this.onEnterFrame = null;\n this.onLoopComplete = null;\n this.onComplete = null;\n this.onSegmentStart = null;\n this.onDestroy = null;\n this.renderer = null;\n this.renderer = null;\n this.imagePreloader = null;\n this.projectInterface = null;\n };\n\n AnimationItem.prototype.setCurrentRawFrameValue = function (value) {\n this.currentRawFrame = value;\n this.gotoFrame();\n };\n\n AnimationItem.prototype.setSpeed = function (val) {\n this.playSpeed = val;\n this.updaFrameModifier();\n };\n\n AnimationItem.prototype.setDirection = function (val) {\n this.playDirection = val < 0 ? -1 : 1;\n this.updaFrameModifier();\n };\n\n AnimationItem.prototype.setLoop = function (isLooping) {\n this.loop = isLooping;\n };\n\n AnimationItem.prototype.setVolume = function (val, name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.audioController.setVolume(val);\n };\n\n AnimationItem.prototype.getVolume = function () {\n return this.audioController.getVolume();\n };\n\n AnimationItem.prototype.mute = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.audioController.mute();\n };\n\n AnimationItem.prototype.unmute = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.audioController.unmute();\n };\n\n AnimationItem.prototype.updaFrameModifier = function () {\n this.frameModifier = this.frameMult * this.playSpeed * this.playDirection;\n this.audioController.setRate(this.playSpeed * this.playDirection);\n };\n\n AnimationItem.prototype.getPath = function () {\n return this.path;\n };\n\n AnimationItem.prototype.getAssetsPath = function (assetData) {\n var path = '';\n\n if (assetData.e) {\n path = assetData.p;\n } else if (this.assetsPath) {\n var imagePath = assetData.p;\n\n if (imagePath.indexOf('images/') !== -1) {\n imagePath = imagePath.split('/')[1];\n }\n\n path = this.assetsPath + imagePath;\n } else {\n path = this.path;\n path += assetData.u ? assetData.u : '';\n path += assetData.p;\n }\n\n return path;\n };\n\n AnimationItem.prototype.getAssetData = function (id) {\n var i = 0;\n var len = this.assets.length;\n\n while (i < len) {\n if (id === this.assets[i].id) {\n return this.assets[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n AnimationItem.prototype.hide = function () {\n this.renderer.hide();\n };\n\n AnimationItem.prototype.show = function () {\n this.renderer.show();\n };\n\n AnimationItem.prototype.getDuration = function (isFrame) {\n return isFrame ? this.totalFrames : this.totalFrames / this.frameRate;\n };\n\n AnimationItem.prototype.updateDocumentData = function (path, documentData, index) {\n try {\n var element = this.renderer.getElementByPath(path);\n element.updateDocumentData(documentData, index);\n } catch (error) {// TODO: decide how to handle catch case\n }\n };\n\n AnimationItem.prototype.trigger = function (name) {\n if (this._cbs && this._cbs[name]) {\n switch (name) {\n case 'enterFrame':\n this.triggerEvent(name, new BMEnterFrameEvent(name, this.currentFrame, this.totalFrames, this.frameModifier));\n break;\n\n case 'drawnFrame':\n this.drawnFrameEvent.currentTime = this.currentFrame;\n this.drawnFrameEvent.totalTime = this.totalFrames;\n this.drawnFrameEvent.direction = this.frameModifier;\n this.triggerEvent(name, this.drawnFrameEvent);\n break;\n\n case 'loopComplete':\n this.triggerEvent(name, new BMCompleteLoopEvent(name, this.loop, this.playCount, this.frameMult));\n break;\n\n case 'complete':\n this.triggerEvent(name, new BMCompleteEvent(name, this.frameMult));\n break;\n\n case 'segmentStart':\n this.triggerEvent(name, new BMSegmentStartEvent(name, this.firstFrame, this.totalFrames));\n break;\n\n case 'destroy':\n this.triggerEvent(name, new BMDestroyEvent(name, this));\n break;\n\n default:\n this.triggerEvent(name);\n }\n }\n\n if (name === 'enterFrame' && this.onEnterFrame) {\n this.onEnterFrame.call(this, new BMEnterFrameEvent(name, this.currentFrame, this.totalFrames, this.frameMult));\n }\n\n if (name === 'loopComplete' && this.onLoopComplete) {\n this.onLoopComplete.call(this, new BMCompleteLoopEvent(name, this.loop, this.playCount, this.frameMult));\n }\n\n if (name === 'complete' && this.onComplete) {\n this.onComplete.call(this, new BMCompleteEvent(name, this.frameMult));\n }\n\n if (name === 'segmentStart' && this.onSegmentStart) {\n this.onSegmentStart.call(this, new BMSegmentStartEvent(name, this.firstFrame, this.totalFrames));\n }\n\n if (name === 'destroy' && this.onDestroy) {\n this.onDestroy.call(this, new BMDestroyEvent(name, this));\n }\n };\n\n AnimationItem.prototype.triggerRenderFrameError = function (nativeError) {\n var error = new BMRenderFrameErrorEvent(nativeError, this.currentFrame);\n this.triggerEvent('error', error);\n\n if (this.onError) {\n this.onError.call(this, error);\n }\n };\n\n AnimationItem.prototype.triggerConfigError = function (nativeError) {\n var error = new BMConfigErrorEvent(nativeError, this.currentFrame);\n this.triggerEvent('error', error);\n\n if (this.onError) {\n this.onError.call(this, error);\n }\n };\n\n var animationManager = function () {\n var moduleOb = {};\n var registeredAnimations = [];\n var initTime = 0;\n var len = 0;\n var playingAnimationsNum = 0;\n var _stopped = true;\n var _isFrozen = false;\n\n function removeElement(ev) {\n var i = 0;\n var animItem = ev.target;\n\n while (i < len) {\n if (registeredAnimations[i].animation === animItem) {\n registeredAnimations.splice(i, 1);\n i -= 1;\n len -= 1;\n\n if (!animItem.isPaused) {\n subtractPlayingCount();\n }\n }\n\n i += 1;\n }\n }\n\n function registerAnimation(element, animationData) {\n if (!element) {\n return null;\n }\n\n var i = 0;\n\n while (i < len) {\n if (registeredAnimations[i].elem === element && registeredAnimations[i].elem !== null) {\n return registeredAnimations[i].animation;\n }\n\n i += 1;\n }\n\n var animItem = new AnimationItem();\n setupAnimation(animItem, element);\n animItem.setData(element, animationData);\n return animItem;\n }\n\n function getRegisteredAnimations() {\n var i;\n var lenAnims = registeredAnimations.length;\n var animations = [];\n\n for (i = 0; i < lenAnims; i += 1) {\n animations.push(registeredAnimations[i].animation);\n }\n\n return animations;\n }\n\n function addPlayingCount() {\n playingAnimationsNum += 1;\n activate();\n }\n\n function subtractPlayingCount() {\n playingAnimationsNum -= 1;\n }\n\n function setupAnimation(animItem, element) {\n animItem.addEventListener('destroy', removeElement);\n animItem.addEventListener('_active', addPlayingCount);\n animItem.addEventListener('_idle', subtractPlayingCount);\n registeredAnimations.push({\n elem: element,\n animation: animItem\n });\n len += 1;\n }\n\n function loadAnimation(params) {\n var animItem = new AnimationItem();\n setupAnimation(animItem, null);\n animItem.setParams(params);\n return animItem;\n }\n\n function setSpeed(val, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.setSpeed(val, animation);\n }\n }\n\n function setDirection(val, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.setDirection(val, animation);\n }\n }\n\n function play(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.play(animation);\n }\n }\n\n function resume(nowTime) {\n var elapsedTime = nowTime - initTime;\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.advanceTime(elapsedTime);\n }\n\n initTime = nowTime;\n\n if (playingAnimationsNum && !_isFrozen) {\n window.requestAnimationFrame(resume);\n } else {\n _stopped = true;\n }\n }\n\n function first(nowTime) {\n initTime = nowTime;\n window.requestAnimationFrame(resume);\n }\n\n function pause(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.pause(animation);\n }\n }\n\n function goToAndStop(value, isFrame, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.goToAndStop(value, isFrame, animation);\n }\n }\n\n function stop(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.stop(animation);\n }\n }\n\n function togglePause(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.togglePause(animation);\n }\n }\n\n function destroy(animation) {\n var i;\n\n for (i = len - 1; i >= 0; i -= 1) {\n registeredAnimations[i].animation.destroy(animation);\n }\n }\n\n function searchAnimations(animationData, standalone, renderer) {\n var animElements = [].concat([].slice.call(document.getElementsByClassName('lottie')), [].slice.call(document.getElementsByClassName('bodymovin')));\n var i;\n var lenAnims = animElements.length;\n\n for (i = 0; i < lenAnims; i += 1) {\n if (renderer) {\n animElements[i].setAttribute('data-bm-type', renderer);\n }\n\n registerAnimation(animElements[i], animationData);\n }\n\n if (standalone && lenAnims === 0) {\n if (!renderer) {\n renderer = 'svg';\n }\n\n var body = document.getElementsByTagName('body')[0];\n body.innerText = '';\n var div = createTag('div');\n div.style.width = '100%';\n div.style.height = '100%';\n div.setAttribute('data-bm-type', renderer);\n body.appendChild(div);\n registerAnimation(div, animationData);\n }\n }\n\n function resize() {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.resize();\n }\n }\n\n function activate() {\n if (!_isFrozen && playingAnimationsNum) {\n if (_stopped) {\n window.requestAnimationFrame(first);\n _stopped = false;\n }\n }\n }\n\n function freeze() {\n _isFrozen = true;\n }\n\n function unfreeze() {\n _isFrozen = false;\n activate();\n }\n\n function setVolume(val, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.setVolume(val, animation);\n }\n }\n\n function mute(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.mute(animation);\n }\n }\n\n function unmute(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.unmute(animation);\n }\n }\n\n moduleOb.registerAnimation = registerAnimation;\n moduleOb.loadAnimation = loadAnimation;\n moduleOb.setSpeed = setSpeed;\n moduleOb.setDirection = setDirection;\n moduleOb.play = play;\n moduleOb.pause = pause;\n moduleOb.stop = stop;\n moduleOb.togglePause = togglePause;\n moduleOb.searchAnimations = searchAnimations;\n moduleOb.resize = resize; // moduleOb.start = start;\n\n moduleOb.goToAndStop = goToAndStop;\n moduleOb.destroy = destroy;\n moduleOb.freeze = freeze;\n moduleOb.unfreeze = unfreeze;\n moduleOb.setVolume = setVolume;\n moduleOb.mute = mute;\n moduleOb.unmute = unmute;\n moduleOb.getRegisteredAnimations = getRegisteredAnimations;\n return moduleOb;\n }();\n\n /* eslint-disable */\n var BezierFactory = function () {\n /**\r\n * BezierEasing - use bezier curve for transition easing function\r\n * by Gaëtan Renaudeau 2014 - 2015 – MIT License\r\n *\r\n * Credits: is based on Firefox's nsSMILKeySpline.cpp\r\n * Usage:\r\n * var spline = BezierEasing([ 0.25, 0.1, 0.25, 1.0 ])\r\n * spline.get(x) => returns the easing value | x must be in [0, 1] range\r\n *\r\n */\n var ob = {};\n ob.getBezierEasing = getBezierEasing;\n var beziers = {};\n\n function getBezierEasing(a, b, c, d, nm) {\n var str = nm || ('bez_' + a + '_' + b + '_' + c + '_' + d).replace(/\\./g, 'p');\n\n if (beziers[str]) {\n return beziers[str];\n }\n\n var bezEasing = new BezierEasing([a, b, c, d]);\n beziers[str] = bezEasing;\n return bezEasing;\n } // These values are established by empiricism with tests (tradeoff: performance VS precision)\n\n\n var NEWTON_ITERATIONS = 4;\n var NEWTON_MIN_SLOPE = 0.001;\n var SUBDIVISION_PRECISION = 0.0000001;\n var SUBDIVISION_MAX_ITERATIONS = 10;\n var kSplineTableSize = 11;\n var kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);\n var float32ArraySupported = typeof Float32Array === 'function';\n\n function A(aA1, aA2) {\n return 1.0 - 3.0 * aA2 + 3.0 * aA1;\n }\n\n function B(aA1, aA2) {\n return 3.0 * aA2 - 6.0 * aA1;\n }\n\n function C(aA1) {\n return 3.0 * aA1;\n } // Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\n\n\n function calcBezier(aT, aA1, aA2) {\n return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT;\n } // Returns dx/dt given t, x1, and x2, or dy/dt given t, y1, and y2.\n\n\n function getSlope(aT, aA1, aA2) {\n return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1);\n }\n\n function binarySubdivide(aX, aA, aB, mX1, mX2) {\n var currentX,\n currentT,\n i = 0;\n\n do {\n currentT = aA + (aB - aA) / 2.0;\n currentX = calcBezier(currentT, mX1, mX2) - aX;\n\n if (currentX > 0.0) {\n aB = currentT;\n } else {\n aA = currentT;\n }\n } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);\n\n return currentT;\n }\n\n function newtonRaphsonIterate(aX, aGuessT, mX1, mX2) {\n for (var i = 0; i < NEWTON_ITERATIONS; ++i) {\n var currentSlope = getSlope(aGuessT, mX1, mX2);\n if (currentSlope === 0.0) return aGuessT;\n var currentX = calcBezier(aGuessT, mX1, mX2) - aX;\n aGuessT -= currentX / currentSlope;\n }\n\n return aGuessT;\n }\n /**\r\n * points is an array of [ mX1, mY1, mX2, mY2 ]\r\n */\n\n\n function BezierEasing(points) {\n this._p = points;\n this._mSampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize);\n this._precomputed = false;\n this.get = this.get.bind(this);\n }\n\n BezierEasing.prototype = {\n get: function get(x) {\n var mX1 = this._p[0],\n mY1 = this._p[1],\n mX2 = this._p[2],\n mY2 = this._p[3];\n if (!this._precomputed) this._precompute();\n if (mX1 === mY1 && mX2 === mY2) return x; // linear\n // Because JavaScript number are imprecise, we should guarantee the extremes are right.\n\n if (x === 0) return 0;\n if (x === 1) return 1;\n return calcBezier(this._getTForX(x), mY1, mY2);\n },\n // Private part\n _precompute: function _precompute() {\n var mX1 = this._p[0],\n mY1 = this._p[1],\n mX2 = this._p[2],\n mY2 = this._p[3];\n this._precomputed = true;\n\n if (mX1 !== mY1 || mX2 !== mY2) {\n this._calcSampleValues();\n }\n },\n _calcSampleValues: function _calcSampleValues() {\n var mX1 = this._p[0],\n mX2 = this._p[2];\n\n for (var i = 0; i < kSplineTableSize; ++i) {\n this._mSampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\n }\n },\n\n /**\r\n * getTForX chose the fastest heuristic to determine the percentage value precisely from a given X projection.\r\n */\n _getTForX: function _getTForX(aX) {\n var mX1 = this._p[0],\n mX2 = this._p[2],\n mSampleValues = this._mSampleValues;\n var intervalStart = 0.0;\n var currentSample = 1;\n var lastSample = kSplineTableSize - 1;\n\n for (; currentSample !== lastSample && mSampleValues[currentSample] <= aX; ++currentSample) {\n intervalStart += kSampleStepSize;\n }\n\n --currentSample; // Interpolate to provide an initial guess for t\n\n var dist = (aX - mSampleValues[currentSample]) / (mSampleValues[currentSample + 1] - mSampleValues[currentSample]);\n var guessForT = intervalStart + dist * kSampleStepSize;\n var initialSlope = getSlope(guessForT, mX1, mX2);\n\n if (initialSlope >= NEWTON_MIN_SLOPE) {\n return newtonRaphsonIterate(aX, guessForT, mX1, mX2);\n }\n\n if (initialSlope === 0.0) {\n return guessForT;\n }\n\n return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);\n }\n };\n return ob;\n }();\n\n var pooling = function () {\n function _double(arr) {\n return arr.concat(createSizedArray(arr.length));\n }\n\n return {\n \"double\": _double\n };\n }();\n\n var poolFactory = function () {\n return function (initialLength, _create, _release) {\n var _length = 0;\n var _maxLength = initialLength;\n var pool = createSizedArray(_maxLength);\n var ob = {\n newElement: newElement,\n release: release\n };\n\n function newElement() {\n var element;\n\n if (_length) {\n _length -= 1;\n element = pool[_length];\n } else {\n element = _create();\n }\n\n return element;\n }\n\n function release(element) {\n if (_length === _maxLength) {\n pool = pooling[\"double\"](pool);\n _maxLength *= 2;\n }\n\n if (_release) {\n _release(element);\n }\n\n pool[_length] = element;\n _length += 1;\n }\n\n return ob;\n };\n }();\n\n var bezierLengthPool = function () {\n function create() {\n return {\n addedLength: 0,\n percents: createTypedArray('float32', getDefaultCurveSegments()),\n lengths: createTypedArray('float32', getDefaultCurveSegments())\n };\n }\n\n return poolFactory(8, create);\n }();\n\n var segmentsLengthPool = function () {\n function create() {\n return {\n lengths: [],\n totalLength: 0\n };\n }\n\n function release(element) {\n var i;\n var len = element.lengths.length;\n\n for (i = 0; i < len; i += 1) {\n bezierLengthPool.release(element.lengths[i]);\n }\n\n element.lengths.length = 0;\n }\n\n return poolFactory(8, create, release);\n }();\n\n function bezFunction() {\n var math = Math;\n\n function pointOnLine2D(x1, y1, x2, y2, x3, y3) {\n var det1 = x1 * y2 + y1 * x3 + x2 * y3 - x3 * y2 - y3 * x1 - x2 * y1;\n return det1 > -0.001 && det1 < 0.001;\n }\n\n function pointOnLine3D(x1, y1, z1, x2, y2, z2, x3, y3, z3) {\n if (z1 === 0 && z2 === 0 && z3 === 0) {\n return pointOnLine2D(x1, y1, x2, y2, x3, y3);\n }\n\n var dist1 = math.sqrt(math.pow(x2 - x1, 2) + math.pow(y2 - y1, 2) + math.pow(z2 - z1, 2));\n var dist2 = math.sqrt(math.pow(x3 - x1, 2) + math.pow(y3 - y1, 2) + math.pow(z3 - z1, 2));\n var dist3 = math.sqrt(math.pow(x3 - x2, 2) + math.pow(y3 - y2, 2) + math.pow(z3 - z2, 2));\n var diffDist;\n\n if (dist1 > dist2) {\n if (dist1 > dist3) {\n diffDist = dist1 - dist2 - dist3;\n } else {\n diffDist = dist3 - dist2 - dist1;\n }\n } else if (dist3 > dist2) {\n diffDist = dist3 - dist2 - dist1;\n } else {\n diffDist = dist2 - dist1 - dist3;\n }\n\n return diffDist > -0.0001 && diffDist < 0.0001;\n }\n\n var getBezierLength = function () {\n return function (pt1, pt2, pt3, pt4) {\n var curveSegments = getDefaultCurveSegments();\n var k;\n var i;\n var len;\n var ptCoord;\n var perc;\n var addedLength = 0;\n var ptDistance;\n var point = [];\n var lastPoint = [];\n var lengthData = bezierLengthPool.newElement();\n len = pt3.length;\n\n for (k = 0; k < curveSegments; k += 1) {\n perc = k / (curveSegments - 1);\n ptDistance = 0;\n\n for (i = 0; i < len; i += 1) {\n ptCoord = 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 point[i] = ptCoord;\n\n if (lastPoint[i] !== null) {\n ptDistance += bmPow(point[i] - lastPoint[i], 2);\n }\n\n lastPoint[i] = point[i];\n }\n\n if (ptDistance) {\n ptDistance = bmSqrt(ptDistance);\n addedLength += ptDistance;\n }\n\n lengthData.percents[k] = perc;\n lengthData.lengths[k] = addedLength;\n }\n\n lengthData.addedLength = addedLength;\n return lengthData;\n };\n }();\n\n function getSegmentsLength(shapeData) {\n var segmentsLength = segmentsLengthPool.newElement();\n var closed = shapeData.c;\n var pathV = shapeData.v;\n var pathO = shapeData.o;\n var pathI = shapeData.i;\n var i;\n var len = shapeData._length;\n var lengths = segmentsLength.lengths;\n var totalLength = 0;\n\n for (i = 0; i < len - 1; i += 1) {\n lengths[i] = getBezierLength(pathV[i], pathV[i + 1], pathO[i], pathI[i + 1]);\n totalLength += lengths[i].addedLength;\n }\n\n if (closed && len) {\n lengths[i] = getBezierLength(pathV[i], pathV[0], pathO[i], pathI[0]);\n totalLength += lengths[i].addedLength;\n }\n\n segmentsLength.totalLength = totalLength;\n return segmentsLength;\n }\n\n function BezierData(length) {\n this.segmentLength = 0;\n this.points = new Array(length);\n }\n\n function PointData(partial, point) {\n this.partialLength = partial;\n this.point = point;\n }\n\n var buildBezierData = function () {\n var storedData = {};\n return function (pt1, pt2, pt3, pt4) {\n var bezierName = (pt1[0] + '_' + pt1[1] + '_' + pt2[0] + '_' + pt2[1] + '_' + pt3[0] + '_' + pt3[1] + '_' + pt4[0] + '_' + pt4[1]).replace(/\\./g, 'p');\n\n if (!storedData[bezierName]) {\n var curveSegments = getDefaultCurveSegments();\n var k;\n var i;\n var len;\n var ptCoord;\n var perc;\n var addedLength = 0;\n var ptDistance;\n var point;\n var lastPoint = null;\n\n if (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 curveSegments = 2;\n }\n\n var bezierData = new BezierData(curveSegments);\n len = pt3.length;\n\n for (k = 0; k < curveSegments; k += 1) {\n point = createSizedArray(len);\n perc = k / (curveSegments - 1);\n ptDistance = 0;\n\n for (i = 0; i < len; i += 1) {\n ptCoord = 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 point[i] = ptCoord;\n\n if (lastPoint !== null) {\n ptDistance += bmPow(point[i] - lastPoint[i], 2);\n }\n }\n\n ptDistance = bmSqrt(ptDistance);\n addedLength += ptDistance;\n bezierData.points[k] = new PointData(ptDistance, point);\n lastPoint = point;\n }\n\n bezierData.segmentLength = addedLength;\n storedData[bezierName] = bezierData;\n }\n\n return storedData[bezierName];\n };\n }();\n\n function getDistancePerc(perc, bezierData) {\n var percents = bezierData.percents;\n var lengths = bezierData.lengths;\n var len = percents.length;\n var initPos = bmFloor((len - 1) * perc);\n var lengthPos = perc * bezierData.addedLength;\n var lPerc = 0;\n\n if (initPos === len - 1 || initPos === 0 || lengthPos === lengths[initPos]) {\n return percents[initPos];\n }\n\n var dir = lengths[initPos] > lengthPos ? -1 : 1;\n var flag = true;\n\n while (flag) {\n if (lengths[initPos] <= lengthPos && lengths[initPos + 1] > lengthPos) {\n lPerc = (lengthPos - lengths[initPos]) / (lengths[initPos + 1] - lengths[initPos]);\n flag = false;\n } else {\n initPos += dir;\n }\n\n if (initPos < 0 || initPos >= len - 1) {\n // FIX for TypedArrays that don't store floating point values with enough accuracy\n if (initPos === len - 1) {\n return percents[initPos];\n }\n\n flag = false;\n }\n }\n\n return percents[initPos] + (percents[initPos + 1] - percents[initPos]) * lPerc;\n }\n\n function getPointInSegment(pt1, pt2, pt3, pt4, percent, bezierData) {\n var t1 = getDistancePerc(percent, bezierData);\n var u1 = 1 - t1;\n var 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 var 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 return [ptX, ptY];\n }\n\n var bezierSegmentPoints = createTypedArray('float32', 8);\n\n function getNewSegment(pt1, pt2, pt3, pt4, startPerc, endPerc, bezierData) {\n if (startPerc < 0) {\n startPerc = 0;\n } else if (startPerc > 1) {\n startPerc = 1;\n }\n\n var t0 = getDistancePerc(startPerc, bezierData);\n endPerc = endPerc > 1 ? 1 : endPerc;\n var t1 = getDistancePerc(endPerc, bezierData);\n var i;\n var len = pt1.length;\n var u0 = 1 - t0;\n var u1 = 1 - t1;\n var u0u0u0 = u0 * u0 * u0;\n var t0u0u0_3 = t0 * u0 * u0 * 3; // eslint-disable-line camelcase\n\n var t0t0u0_3 = t0 * t0 * u0 * 3; // eslint-disable-line camelcase\n\n var t0t0t0 = t0 * t0 * t0; //\n\n var u0u0u1 = u0 * u0 * u1;\n var t0u0u1_3 = t0 * u0 * u1 + u0 * t0 * u1 + u0 * u0 * t1; // eslint-disable-line camelcase\n\n var t0t0u1_3 = t0 * t0 * u1 + u0 * t0 * t1 + t0 * u0 * t1; // eslint-disable-line camelcase\n\n var t0t0t1 = t0 * t0 * t1; //\n\n var u0u1u1 = u0 * u1 * u1;\n var t0u1u1_3 = t0 * u1 * u1 + u0 * t1 * u1 + u0 * u1 * t1; // eslint-disable-line camelcase\n\n var t0t1u1_3 = t0 * t1 * u1 + u0 * t1 * t1 + t0 * u1 * t1; // eslint-disable-line camelcase\n\n var t0t1t1 = t0 * t1 * t1; //\n\n var u1u1u1 = u1 * u1 * u1;\n var t1u1u1_3 = t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1; // eslint-disable-line camelcase\n\n var t1t1u1_3 = t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1; // eslint-disable-line camelcase\n\n var t1t1t1 = t1 * t1 * t1;\n\n for (i = 0; i < len; i += 1) {\n bezierSegmentPoints[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\n bezierSegmentPoints[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\n bezierSegmentPoints[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\n bezierSegmentPoints[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 }\n\n return bezierSegmentPoints;\n }\n\n return {\n getSegmentsLength: getSegmentsLength,\n getNewSegment: getNewSegment,\n getPointInSegment: getPointInSegment,\n buildBezierData: buildBezierData,\n pointOnLine2D: pointOnLine2D,\n pointOnLine3D: pointOnLine3D\n };\n }\n\n var bez = bezFunction();\n\n var initFrame = initialDefaultFrame;\n var mathAbs = Math.abs;\n\n function interpolateValue(frameNum, caching) {\n var offsetTime = this.offsetTime;\n var newValue;\n\n if (this.propType === 'multidimensional') {\n newValue = createTypedArray('float32', this.pv.length);\n }\n\n var iterationIndex = caching.lastIndex;\n var i = iterationIndex;\n var len = this.keyframes.length - 1;\n var flag = true;\n var keyData;\n var nextKeyData;\n var keyframeMetadata;\n\n while (flag) {\n keyData = this.keyframes[i];\n nextKeyData = this.keyframes[i + 1];\n\n if (i === len - 1 && frameNum >= nextKeyData.t - offsetTime) {\n if (keyData.h) {\n keyData = nextKeyData;\n }\n\n iterationIndex = 0;\n break;\n }\n\n if (nextKeyData.t - offsetTime > frameNum) {\n iterationIndex = i;\n break;\n }\n\n if (i < len - 1) {\n i += 1;\n } else {\n iterationIndex = 0;\n flag = false;\n }\n }\n\n keyframeMetadata = this.keyframesMetadata[i] || {};\n var k;\n var kLen;\n var perc;\n var jLen;\n var j;\n var fnc;\n var nextKeyTime = nextKeyData.t - offsetTime;\n var keyTime = keyData.t - offsetTime;\n var endValue;\n\n if (keyData.to) {\n if (!keyframeMetadata.bezierData) {\n keyframeMetadata.bezierData = bez.buildBezierData(keyData.s, nextKeyData.s || keyData.e, keyData.to, keyData.ti);\n }\n\n var bezierData = keyframeMetadata.bezierData;\n\n if (frameNum >= nextKeyTime || frameNum < keyTime) {\n var ind = frameNum >= nextKeyTime ? bezierData.points.length - 1 : 0;\n kLen = bezierData.points[ind].point.length;\n\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[ind].point[k];\n } // caching._lastKeyframeIndex = -1;\n\n } else {\n if (keyframeMetadata.__fnct) {\n fnc = keyframeMetadata.__fnct;\n } else {\n fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y, keyData.n).get;\n keyframeMetadata.__fnct = fnc;\n }\n\n perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\n var distanceInLine = bezierData.segmentLength * perc;\n var segmentPerc;\n var addedLength = caching.lastFrame < frameNum && caching._lastKeyframeIndex === i ? caching._lastAddedLength : 0;\n j = caching.lastFrame < frameNum && caching._lastKeyframeIndex === i ? caching._lastPoint : 0;\n flag = true;\n jLen = bezierData.points.length;\n\n while (flag) {\n addedLength += bezierData.points[j].partialLength;\n\n if (distanceInLine === 0 || perc === 0 || j === bezierData.points.length - 1) {\n kLen = bezierData.points[j].point.length;\n\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[j].point[k];\n }\n\n break;\n } else if (distanceInLine >= addedLength && distanceInLine < addedLength + bezierData.points[j + 1].partialLength) {\n segmentPerc = (distanceInLine - addedLength) / bezierData.points[j + 1].partialLength;\n kLen = bezierData.points[j].point.length;\n\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[j].point[k] + (bezierData.points[j + 1].point[k] - bezierData.points[j].point[k]) * segmentPerc;\n }\n\n break;\n }\n\n if (j < jLen - 1) {\n j += 1;\n } else {\n flag = false;\n }\n }\n\n caching._lastPoint = j;\n caching._lastAddedLength = addedLength - bezierData.points[j].partialLength;\n caching._lastKeyframeIndex = i;\n }\n } else {\n var outX;\n var outY;\n var inX;\n var inY;\n var keyValue;\n len = keyData.s.length;\n endValue = nextKeyData.s || keyData.e;\n\n if (this.sh && keyData.h !== 1) {\n if (frameNum >= nextKeyTime) {\n newValue[0] = endValue[0];\n newValue[1] = endValue[1];\n newValue[2] = endValue[2];\n } else if (frameNum <= keyTime) {\n newValue[0] = keyData.s[0];\n newValue[1] = keyData.s[1];\n newValue[2] = keyData.s[2];\n } else {\n var quatStart = createQuaternion(keyData.s);\n var quatEnd = createQuaternion(endValue);\n var time = (frameNum - keyTime) / (nextKeyTime - keyTime);\n quaternionToEuler(newValue, slerp(quatStart, quatEnd, time));\n }\n } else {\n for (i = 0; i < len; i += 1) {\n if (keyData.h !== 1) {\n if (frameNum >= nextKeyTime) {\n perc = 1;\n } else if (frameNum < keyTime) {\n perc = 0;\n } else {\n if (keyData.o.x.constructor === Array) {\n if (!keyframeMetadata.__fnct) {\n keyframeMetadata.__fnct = [];\n }\n\n if (!keyframeMetadata.__fnct[i]) {\n outX = keyData.o.x[i] === undefined ? keyData.o.x[0] : keyData.o.x[i];\n outY = keyData.o.y[i] === undefined ? keyData.o.y[0] : keyData.o.y[i];\n inX = keyData.i.x[i] === undefined ? keyData.i.x[0] : keyData.i.x[i];\n inY = keyData.i.y[i] === undefined ? keyData.i.y[0] : keyData.i.y[i];\n fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\n keyframeMetadata.__fnct[i] = fnc;\n } else {\n fnc = keyframeMetadata.__fnct[i];\n }\n } else if (!keyframeMetadata.__fnct) {\n outX = keyData.o.x;\n outY = keyData.o.y;\n inX = keyData.i.x;\n inY = keyData.i.y;\n fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\n keyData.keyframeMetadata = fnc;\n } else {\n fnc = keyframeMetadata.__fnct;\n }\n\n perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\n }\n }\n\n endValue = nextKeyData.s || keyData.e;\n keyValue = keyData.h === 1 ? keyData.s[i] : keyData.s[i] + (endValue[i] - keyData.s[i]) * perc;\n\n if (this.propType === 'multidimensional') {\n newValue[i] = keyValue;\n } else {\n newValue = keyValue;\n }\n }\n }\n }\n\n caching.lastIndex = iterationIndex;\n return newValue;\n } // based on @Toji's https://github.com/toji/gl-matrix/\n\n\n function slerp(a, b, t) {\n var out = [];\n var ax = a[0];\n var ay = a[1];\n var az = a[2];\n var aw = a[3];\n var bx = b[0];\n var by = b[1];\n var bz = b[2];\n var bw = b[3];\n var omega;\n var cosom;\n var sinom;\n var scale0;\n var scale1;\n cosom = ax * bx + ay * by + az * bz + aw * bw;\n\n if (cosom < 0.0) {\n cosom = -cosom;\n bx = -bx;\n by = -by;\n bz = -bz;\n bw = -bw;\n }\n\n if (1.0 - cosom > 0.000001) {\n omega = Math.acos(cosom);\n sinom = Math.sin(omega);\n scale0 = Math.sin((1.0 - t) * omega) / sinom;\n scale1 = Math.sin(t * omega) / sinom;\n } else {\n scale0 = 1.0 - t;\n scale1 = t;\n }\n\n out[0] = scale0 * ax + scale1 * bx;\n out[1] = scale0 * ay + scale1 * by;\n out[2] = scale0 * az + scale1 * bz;\n out[3] = scale0 * aw + scale1 * bw;\n return out;\n }\n\n function quaternionToEuler(out, quat) {\n var qx = quat[0];\n var qy = quat[1];\n var qz = quat[2];\n var qw = quat[3];\n var heading = Math.atan2(2 * qy * qw - 2 * qx * qz, 1 - 2 * qy * qy - 2 * qz * qz);\n var attitude = Math.asin(2 * qx * qy + 2 * qz * qw);\n var bank = Math.atan2(2 * qx * qw - 2 * qy * qz, 1 - 2 * qx * qx - 2 * qz * qz);\n out[0] = heading / degToRads;\n out[1] = attitude / degToRads;\n out[2] = bank / degToRads;\n }\n\n function createQuaternion(values) {\n var heading = values[0] * degToRads;\n var attitude = values[1] * degToRads;\n var bank = values[2] * degToRads;\n var c1 = Math.cos(heading / 2);\n var c2 = Math.cos(attitude / 2);\n var c3 = Math.cos(bank / 2);\n var s1 = Math.sin(heading / 2);\n var s2 = Math.sin(attitude / 2);\n var s3 = Math.sin(bank / 2);\n var w = c1 * c2 * c3 - s1 * s2 * s3;\n var x = s1 * s2 * c3 + c1 * c2 * s3;\n var y = s1 * c2 * c3 + c1 * s2 * s3;\n var z = c1 * s2 * c3 - s1 * c2 * s3;\n return [x, y, z, w];\n }\n\n function getValueAtCurrentTime() {\n var frameNum = this.comp.renderedFrame - this.offsetTime;\n var initTime = this.keyframes[0].t - this.offsetTime;\n var endTime = this.keyframes[this.keyframes.length - 1].t - this.offsetTime;\n\n if (!(frameNum === this._caching.lastFrame || this._caching.lastFrame !== initFrame && (this._caching.lastFrame >= endTime && frameNum >= endTime || this._caching.lastFrame < initTime && frameNum < initTime))) {\n if (this._caching.lastFrame >= frameNum) {\n this._caching._lastKeyframeIndex = -1;\n this._caching.lastIndex = 0;\n }\n\n var renderResult = this.interpolateValue(frameNum, this._caching);\n this.pv = renderResult;\n }\n\n this._caching.lastFrame = frameNum;\n return this.pv;\n }\n\n function setVValue(val) {\n var multipliedValue;\n\n if (this.propType === 'unidimensional') {\n multipliedValue = val * this.mult;\n\n if (mathAbs(this.v - multipliedValue) > 0.00001) {\n this.v = multipliedValue;\n this._mdf = true;\n }\n } else {\n var i = 0;\n var len = this.v.length;\n\n while (i < len) {\n multipliedValue = val[i] * this.mult;\n\n if (mathAbs(this.v[i] - multipliedValue) > 0.00001) {\n this.v[i] = multipliedValue;\n this._mdf = true;\n }\n\n i += 1;\n }\n }\n }\n\n function processEffectsSequence() {\n if (this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) {\n return;\n }\n\n if (this.lock) {\n this.setVValue(this.pv);\n return;\n }\n\n this.lock = true;\n this._mdf = this._isFirstFrame;\n var i;\n var len = this.effectsSequence.length;\n var finalValue = this.kf ? this.pv : this.data.k;\n\n for (i = 0; i < len; i += 1) {\n finalValue = this.effectsSequence[i](finalValue);\n }\n\n this.setVValue(finalValue);\n this._isFirstFrame = false;\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n }\n\n function addEffect(effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.container.addDynamicProperty(this);\n }\n\n function ValueProperty(elem, data, mult, container) {\n this.propType = 'unidimensional';\n this.mult = mult || 1;\n this.data = data;\n this.v = mult ? data.k * mult : data.k;\n this.pv = data.k;\n this._mdf = false;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.k = false;\n this.kf = false;\n this.vel = 0;\n this.effectsSequence = [];\n this._isFirstFrame = true;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.addEffect = addEffect;\n }\n\n function MultiDimensionalProperty(elem, data, mult, container) {\n this.propType = 'multidimensional';\n this.mult = mult || 1;\n this.data = data;\n this._mdf = false;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.k = false;\n this.kf = false;\n this.frameId = -1;\n var i;\n var len = data.k.length;\n this.v = createTypedArray('float32', len);\n this.pv = createTypedArray('float32', len);\n this.vel = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n this.v[i] = data.k[i] * this.mult;\n this.pv[i] = data.k[i];\n }\n\n this._isFirstFrame = true;\n this.effectsSequence = [];\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.addEffect = addEffect;\n }\n\n function KeyframedValueProperty(elem, data, mult, container) {\n this.propType = 'unidimensional';\n this.keyframes = data.k;\n this.keyframesMetadata = [];\n this.offsetTime = elem.data.st;\n this.frameId = -1;\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0,\n value: 0,\n _lastKeyframeIndex: -1\n };\n this.k = true;\n this.kf = true;\n this.data = data;\n this.mult = mult || 1;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.v = initFrame;\n this.pv = initFrame;\n this._isFirstFrame = true;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.interpolateValue = interpolateValue;\n this.effectsSequence = [getValueAtCurrentTime.bind(this)];\n this.addEffect = addEffect;\n }\n\n function KeyframedMultidimensionalProperty(elem, data, mult, container) {\n this.propType = 'multidimensional';\n var i;\n var len = data.k.length;\n var s;\n var e;\n var to;\n var ti;\n\n for (i = 0; i < len - 1; i += 1) {\n if (data.k[i].to && data.k[i].s && data.k[i + 1] && data.k[i + 1].s) {\n s = data.k[i].s;\n e = data.k[i + 1].s;\n to = data.k[i].to;\n ti = data.k[i].ti;\n\n if (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 data.k[i].to = null;\n data.k[i].ti = null;\n }\n\n if (s[0] === e[0] && s[1] === e[1] && to[0] === 0 && to[1] === 0 && ti[0] === 0 && ti[1] === 0) {\n if (s.length === 2 || s[2] === e[2] && to[2] === 0 && ti[2] === 0) {\n data.k[i].to = null;\n data.k[i].ti = null;\n }\n }\n }\n }\n\n this.effectsSequence = [getValueAtCurrentTime.bind(this)];\n this.data = data;\n this.keyframes = data.k;\n this.keyframesMetadata = [];\n this.offsetTime = elem.data.st;\n this.k = true;\n this.kf = true;\n this._isFirstFrame = true;\n this.mult = mult || 1;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.interpolateValue = interpolateValue;\n this.frameId = -1;\n var arrLen = data.k[0].s.length;\n this.v = createTypedArray('float32', arrLen);\n this.pv = createTypedArray('float32', arrLen);\n\n for (i = 0; i < arrLen; i += 1) {\n this.v[i] = initFrame;\n this.pv[i] = initFrame;\n }\n\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0,\n value: createTypedArray('float32', arrLen)\n };\n this.addEffect = addEffect;\n }\n\n var PropertyFactory = function () {\n function getProp(elem, data, type, mult, container) {\n if (data.sid) {\n data = elem.globalData.slotManager.getProp(data);\n }\n\n var p;\n\n if (!data.k.length) {\n p = new ValueProperty(elem, data, mult, container);\n } else if (typeof data.k[0] === 'number') {\n p = new MultiDimensionalProperty(elem, data, mult, container);\n } else {\n switch (type) {\n case 0:\n p = new KeyframedValueProperty(elem, data, mult, container);\n break;\n\n case 1:\n p = new KeyframedMultidimensionalProperty(elem, data, mult, container);\n break;\n\n default:\n break;\n }\n }\n\n if (p.effectsSequence.length) {\n container.addDynamicProperty(p);\n }\n\n return p;\n }\n\n var ob = {\n getProp: getProp\n };\n return ob;\n }();\n\n function DynamicPropertyContainer() {}\n\n DynamicPropertyContainer.prototype = {\n addDynamicProperty: function addDynamicProperty(prop) {\n if (this.dynamicProperties.indexOf(prop) === -1) {\n this.dynamicProperties.push(prop);\n this.container.addDynamicProperty(this);\n this._isAnimated = true;\n }\n },\n iterateDynamicProperties: function iterateDynamicProperties() {\n this._mdf = false;\n var i;\n var len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n this.dynamicProperties[i].getValue();\n\n if (this.dynamicProperties[i]._mdf) {\n this._mdf = true;\n }\n }\n },\n initDynamicPropertyContainer: function initDynamicPropertyContainer(container) {\n this.container = container;\n this.dynamicProperties = [];\n this._mdf = false;\n this._isAnimated = false;\n }\n };\n\n var pointPool = function () {\n function create() {\n return createTypedArray('float32', 2);\n }\n\n return poolFactory(8, create);\n }();\n\n function ShapePath() {\n this.c = false;\n this._length = 0;\n this._maxLength = 8;\n this.v = createSizedArray(this._maxLength);\n this.o = createSizedArray(this._maxLength);\n this.i = createSizedArray(this._maxLength);\n }\n\n ShapePath.prototype.setPathData = function (closed, len) {\n this.c = closed;\n this.setLength(len);\n var i = 0;\n\n while (i < len) {\n this.v[i] = pointPool.newElement();\n this.o[i] = pointPool.newElement();\n this.i[i] = pointPool.newElement();\n i += 1;\n }\n };\n\n ShapePath.prototype.setLength = function (len) {\n while (this._maxLength < len) {\n this.doubleArrayLength();\n }\n\n this._length = len;\n };\n\n ShapePath.prototype.doubleArrayLength = function () {\n this.v = this.v.concat(createSizedArray(this._maxLength));\n this.i = this.i.concat(createSizedArray(this._maxLength));\n this.o = this.o.concat(createSizedArray(this._maxLength));\n this._maxLength *= 2;\n };\n\n ShapePath.prototype.setXYAt = function (x, y, type, pos, replace) {\n var arr;\n this._length = Math.max(this._length, pos + 1);\n\n if (this._length >= this._maxLength) {\n this.doubleArrayLength();\n }\n\n switch (type) {\n case 'v':\n arr = this.v;\n break;\n\n case 'i':\n arr = this.i;\n break;\n\n case 'o':\n arr = this.o;\n break;\n\n default:\n arr = [];\n break;\n }\n\n if (!arr[pos] || arr[pos] && !replace) {\n arr[pos] = pointPool.newElement();\n }\n\n arr[pos][0] = x;\n arr[pos][1] = y;\n };\n\n ShapePath.prototype.setTripleAt = function (vX, vY, oX, oY, iX, iY, pos, replace) {\n this.setXYAt(vX, vY, 'v', pos, replace);\n this.setXYAt(oX, oY, 'o', pos, replace);\n this.setXYAt(iX, iY, 'i', pos, replace);\n };\n\n ShapePath.prototype.reverse = function () {\n var newPath = new ShapePath();\n newPath.setPathData(this.c, this._length);\n var vertices = this.v;\n var outPoints = this.o;\n var inPoints = this.i;\n var init = 0;\n\n if (this.c) {\n newPath.setTripleAt(vertices[0][0], vertices[0][1], inPoints[0][0], inPoints[0][1], outPoints[0][0], outPoints[0][1], 0, false);\n init = 1;\n }\n\n var cnt = this._length - 1;\n var len = this._length;\n var i;\n\n for (i = init; i < len; i += 1) {\n newPath.setTripleAt(vertices[cnt][0], vertices[cnt][1], inPoints[cnt][0], inPoints[cnt][1], outPoints[cnt][0], outPoints[cnt][1], i, false);\n cnt -= 1;\n }\n\n return newPath;\n };\n\n ShapePath.prototype.length = function () {\n return this._length;\n };\n\n var shapePool = function () {\n function create() {\n return new ShapePath();\n }\n\n function release(shapePath) {\n var len = shapePath._length;\n var i;\n\n for (i = 0; i < len; i += 1) {\n pointPool.release(shapePath.v[i]);\n pointPool.release(shapePath.i[i]);\n pointPool.release(shapePath.o[i]);\n shapePath.v[i] = null;\n shapePath.i[i] = null;\n shapePath.o[i] = null;\n }\n\n shapePath._length = 0;\n shapePath.c = false;\n }\n\n function clone(shape) {\n var cloned = factory.newElement();\n var i;\n var len = shape._length === undefined ? shape.v.length : shape._length;\n cloned.setLength(len);\n cloned.c = shape.c;\n\n for (i = 0; i < len; i += 1) {\n cloned.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 }\n\n return cloned;\n }\n\n var factory = poolFactory(4, create, release);\n factory.clone = clone;\n return factory;\n }();\n\n function ShapeCollection() {\n this._length = 0;\n this._maxLength = 4;\n this.shapes = createSizedArray(this._maxLength);\n }\n\n ShapeCollection.prototype.addShape = function (shapeData) {\n if (this._length === this._maxLength) {\n this.shapes = this.shapes.concat(createSizedArray(this._maxLength));\n this._maxLength *= 2;\n }\n\n this.shapes[this._length] = shapeData;\n this._length += 1;\n };\n\n ShapeCollection.prototype.releaseShapes = function () {\n var i;\n\n for (i = 0; i < this._length; i += 1) {\n shapePool.release(this.shapes[i]);\n }\n\n this._length = 0;\n };\n\n var shapeCollectionPool = function () {\n var ob = {\n newShapeCollection: newShapeCollection,\n release: release\n };\n var _length = 0;\n var _maxLength = 4;\n var pool = createSizedArray(_maxLength);\n\n function newShapeCollection() {\n var shapeCollection;\n\n if (_length) {\n _length -= 1;\n shapeCollection = pool[_length];\n } else {\n shapeCollection = new ShapeCollection();\n }\n\n return shapeCollection;\n }\n\n function release(shapeCollection) {\n var i;\n var len = shapeCollection._length;\n\n for (i = 0; i < len; i += 1) {\n shapePool.release(shapeCollection.shapes[i]);\n }\n\n shapeCollection._length = 0;\n\n if (_length === _maxLength) {\n pool = pooling[\"double\"](pool);\n _maxLength *= 2;\n }\n\n pool[_length] = shapeCollection;\n _length += 1;\n }\n\n return ob;\n }();\n\n var ShapePropertyFactory = function () {\n var initFrame = -999999;\n\n function interpolateShape(frameNum, previousValue, caching) {\n var iterationIndex = caching.lastIndex;\n var keyPropS;\n var keyPropE;\n var isHold;\n var j;\n var k;\n var jLen;\n var kLen;\n var perc;\n var vertexValue;\n var kf = this.keyframes;\n\n if (frameNum < kf[0].t - this.offsetTime) {\n keyPropS = kf[0].s[0];\n isHold = true;\n iterationIndex = 0;\n } else if (frameNum >= kf[kf.length - 1].t - this.offsetTime) {\n keyPropS = kf[kf.length - 1].s ? kf[kf.length - 1].s[0] : kf[kf.length - 2].e[0];\n /* if(kf[kf.length - 1].s){\r\n keyPropS = kf[kf.length - 1].s[0];\r\n }else{\r\n keyPropS = kf[kf.length - 2].e[0];\r\n } */\n\n isHold = true;\n } else {\n var i = iterationIndex;\n var len = kf.length - 1;\n var flag = true;\n var keyData;\n var nextKeyData;\n var keyframeMetadata;\n\n while (flag) {\n keyData = kf[i];\n nextKeyData = kf[i + 1];\n\n if (nextKeyData.t - this.offsetTime > frameNum) {\n break;\n }\n\n if (i < len - 1) {\n i += 1;\n } else {\n flag = false;\n }\n }\n\n keyframeMetadata = this.keyframesMetadata[i] || {};\n isHold = keyData.h === 1;\n iterationIndex = i;\n\n if (!isHold) {\n if (frameNum >= nextKeyData.t - this.offsetTime) {\n perc = 1;\n } else if (frameNum < keyData.t - this.offsetTime) {\n perc = 0;\n } else {\n var fnc;\n\n if (keyframeMetadata.__fnct) {\n fnc = keyframeMetadata.__fnct;\n } else {\n fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y).get;\n keyframeMetadata.__fnct = fnc;\n }\n\n perc = fnc((frameNum - (keyData.t - this.offsetTime)) / (nextKeyData.t - this.offsetTime - (keyData.t - this.offsetTime)));\n }\n\n keyPropE = nextKeyData.s ? nextKeyData.s[0] : keyData.e[0];\n }\n\n keyPropS = keyData.s[0];\n }\n\n jLen = previousValue._length;\n kLen = keyPropS.i[0].length;\n caching.lastIndex = iterationIndex;\n\n for (j = 0; j < jLen; j += 1) {\n for (k = 0; k < kLen; k += 1) {\n vertexValue = isHold ? keyPropS.i[j][k] : keyPropS.i[j][k] + (keyPropE.i[j][k] - keyPropS.i[j][k]) * perc;\n previousValue.i[j][k] = vertexValue;\n vertexValue = isHold ? keyPropS.o[j][k] : keyPropS.o[j][k] + (keyPropE.o[j][k] - keyPropS.o[j][k]) * perc;\n previousValue.o[j][k] = vertexValue;\n vertexValue = isHold ? keyPropS.v[j][k] : keyPropS.v[j][k] + (keyPropE.v[j][k] - keyPropS.v[j][k]) * perc;\n previousValue.v[j][k] = vertexValue;\n }\n }\n }\n\n function interpolateShapeCurrentTime() {\n var frameNum = this.comp.renderedFrame - this.offsetTime;\n var initTime = this.keyframes[0].t - this.offsetTime;\n var endTime = this.keyframes[this.keyframes.length - 1].t - this.offsetTime;\n var lastFrame = this._caching.lastFrame;\n\n if (!(lastFrame !== initFrame && (lastFrame < initTime && frameNum < initTime || lastFrame > endTime && frameNum > endTime))) {\n /// /\n this._caching.lastIndex = lastFrame < frameNum ? this._caching.lastIndex : 0;\n this.interpolateShape(frameNum, this.pv, this._caching); /// /\n }\n\n this._caching.lastFrame = frameNum;\n return this.pv;\n }\n\n function resetShape() {\n this.paths = this.localShapeCollection;\n }\n\n function shapesEqual(shape1, shape2) {\n if (shape1._length !== shape2._length || shape1.c !== shape2.c) {\n return false;\n }\n\n var i;\n var len = shape1._length;\n\n for (i = 0; i < len; i += 1) {\n if (shape1.v[i][0] !== shape2.v[i][0] || shape1.v[i][1] !== shape2.v[i][1] || shape1.o[i][0] !== shape2.o[i][0] || shape1.o[i][1] !== shape2.o[i][1] || shape1.i[i][0] !== shape2.i[i][0] || shape1.i[i][1] !== shape2.i[i][1]) {\n return false;\n }\n }\n\n return true;\n }\n\n function setVValue(newPath) {\n if (!shapesEqual(this.v, newPath)) {\n this.v = shapePool.clone(newPath);\n this.localShapeCollection.releaseShapes();\n this.localShapeCollection.addShape(this.v);\n this._mdf = true;\n this.paths = this.localShapeCollection;\n }\n }\n\n function processEffectsSequence() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n if (!this.effectsSequence.length) {\n this._mdf = false;\n return;\n }\n\n if (this.lock) {\n this.setVValue(this.pv);\n return;\n }\n\n this.lock = true;\n this._mdf = false;\n var finalValue;\n\n if (this.kf) {\n finalValue = this.pv;\n } else if (this.data.ks) {\n finalValue = this.data.ks.k;\n } else {\n finalValue = this.data.pt.k;\n }\n\n var i;\n var len = this.effectsSequence.length;\n\n for (i = 0; i < len; i += 1) {\n finalValue = this.effectsSequence[i](finalValue);\n }\n\n this.setVValue(finalValue);\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n }\n\n function ShapeProperty(elem, data, type) {\n this.propType = 'shape';\n this.comp = elem.comp;\n this.container = elem;\n this.elem = elem;\n this.data = data;\n this.k = false;\n this.kf = false;\n this._mdf = false;\n var pathData = type === 3 ? data.pt.k : data.ks.k;\n this.v = shapePool.clone(pathData);\n this.pv = shapePool.clone(this.v);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.paths.addShape(this.v);\n this.reset = resetShape;\n this.effectsSequence = [];\n }\n\n function addEffect(effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.container.addDynamicProperty(this);\n }\n\n ShapeProperty.prototype.interpolateShape = interpolateShape;\n ShapeProperty.prototype.getValue = processEffectsSequence;\n ShapeProperty.prototype.setVValue = setVValue;\n ShapeProperty.prototype.addEffect = addEffect;\n\n function KeyframedShapeProperty(elem, data, type) {\n this.propType = 'shape';\n this.comp = elem.comp;\n this.elem = elem;\n this.container = elem;\n this.offsetTime = elem.data.st;\n this.keyframes = type === 3 ? data.pt.k : data.ks.k;\n this.keyframesMetadata = [];\n this.k = true;\n this.kf = true;\n var len = this.keyframes[0].s[0].i.length;\n this.v = shapePool.newElement();\n this.v.setPathData(this.keyframes[0].s[0].c, len);\n this.pv = shapePool.clone(this.v);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.paths.addShape(this.v);\n this.lastFrame = initFrame;\n this.reset = resetShape;\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0\n };\n this.effectsSequence = [interpolateShapeCurrentTime.bind(this)];\n }\n\n KeyframedShapeProperty.prototype.getValue = processEffectsSequence;\n KeyframedShapeProperty.prototype.interpolateShape = interpolateShape;\n KeyframedShapeProperty.prototype.setVValue = setVValue;\n KeyframedShapeProperty.prototype.addEffect = addEffect;\n\n var EllShapeProperty = function () {\n var cPoint = roundCorner;\n\n function EllShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.setPathData(true, 4);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.localShapeCollection.addShape(this.v);\n this.d = data.d;\n this.elem = elem;\n this.comp = elem.comp;\n this.frameId = -1;\n this.initDynamicPropertyContainer(elem);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, 0, this);\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertEllToPath();\n }\n }\n\n EllShapePropertyFactory.prototype = {\n reset: resetShape,\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n\n if (this._mdf) {\n this.convertEllToPath();\n }\n },\n convertEllToPath: function convertEllToPath() {\n var p0 = this.p.v[0];\n var p1 = this.p.v[1];\n var s0 = this.s.v[0] / 2;\n var s1 = this.s.v[1] / 2;\n\n var _cw = this.d !== 3;\n\n var _v = this.v;\n _v.v[0][0] = p0;\n _v.v[0][1] = p1 - s1;\n _v.v[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.v[1][1] = p1;\n _v.v[2][0] = p0;\n _v.v[2][1] = p1 + s1;\n _v.v[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.v[3][1] = p1;\n _v.i[0][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\n _v.i[0][1] = p1 - s1;\n _v.i[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.i[1][1] = p1 - s1 * cPoint;\n _v.i[2][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\n _v.i[2][1] = p1 + s1;\n _v.i[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.i[3][1] = p1 + s1 * cPoint;\n _v.o[0][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\n _v.o[0][1] = p1 - s1;\n _v.o[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.o[1][1] = p1 + s1 * cPoint;\n _v.o[2][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\n _v.o[2][1] = p1 + s1;\n _v.o[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.o[3][1] = p1 - s1 * cPoint;\n }\n };\n extendPrototype([DynamicPropertyContainer], EllShapePropertyFactory);\n return EllShapePropertyFactory;\n }();\n\n var StarShapeProperty = function () {\n function StarShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.setPathData(true, 0);\n this.elem = elem;\n this.comp = elem.comp;\n this.data = data;\n this.frameId = -1;\n this.d = data.d;\n this.initDynamicPropertyContainer(elem);\n\n if (data.sy === 1) {\n this.ir = PropertyFactory.getProp(elem, data.ir, 0, 0, this);\n this.is = PropertyFactory.getProp(elem, data.is, 0, 0.01, this);\n this.convertToPath = this.convertStarToPath;\n } else {\n this.convertToPath = this.convertPolygonToPath;\n }\n\n this.pt = PropertyFactory.getProp(elem, data.pt, 0, 0, this);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.r = PropertyFactory.getProp(elem, data.r, 0, degToRads, this);\n this.or = PropertyFactory.getProp(elem, data.or, 0, 0, this);\n this.os = PropertyFactory.getProp(elem, data.os, 0, 0.01, this);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.localShapeCollection.addShape(this.v);\n this.paths = this.localShapeCollection;\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertToPath();\n }\n }\n\n StarShapePropertyFactory.prototype = {\n reset: resetShape,\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n\n if (this._mdf) {\n this.convertToPath();\n }\n },\n convertStarToPath: function convertStarToPath() {\n var numPts = Math.floor(this.pt.v) * 2;\n var angle = Math.PI * 2 / numPts;\n /* this.v.v.length = numPts;\r\n this.v.i.length = numPts;\r\n this.v.o.length = numPts; */\n\n var longFlag = true;\n var longRad = this.or.v;\n var shortRad = this.ir.v;\n var longRound = this.os.v;\n var shortRound = this.is.v;\n var longPerimSegment = 2 * Math.PI * longRad / (numPts * 2);\n var shortPerimSegment = 2 * Math.PI * shortRad / (numPts * 2);\n var i;\n var rad;\n var roundness;\n var perimSegment;\n var currentAng = -Math.PI / 2;\n currentAng += this.r.v;\n var dir = this.data.d === 3 ? -1 : 1;\n this.v._length = 0;\n\n for (i = 0; i < numPts; i += 1) {\n rad = longFlag ? longRad : shortRad;\n roundness = longFlag ? longRound : shortRound;\n perimSegment = longFlag ? longPerimSegment : shortPerimSegment;\n var x = rad * Math.cos(currentAng);\n var y = rad * Math.sin(currentAng);\n var ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);\n var oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);\n x += +this.p.v[0];\n y += +this.p.v[1];\n this.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 /* this.v.v[i] = [x,y];\r\n this.v.i[i] = [x+ox*perimSegment*roundness*dir,y+oy*perimSegment*roundness*dir];\r\n this.v.o[i] = [x-ox*perimSegment*roundness*dir,y-oy*perimSegment*roundness*dir];\r\n this.v._length = numPts; */\n\n longFlag = !longFlag;\n currentAng += angle * dir;\n }\n },\n convertPolygonToPath: function convertPolygonToPath() {\n var numPts = Math.floor(this.pt.v);\n var angle = Math.PI * 2 / numPts;\n var rad = this.or.v;\n var roundness = this.os.v;\n var perimSegment = 2 * Math.PI * rad / (numPts * 4);\n var i;\n var currentAng = -Math.PI * 0.5;\n var dir = this.data.d === 3 ? -1 : 1;\n currentAng += this.r.v;\n this.v._length = 0;\n\n for (i = 0; i < numPts; i += 1) {\n var x = rad * Math.cos(currentAng);\n var y = rad * Math.sin(currentAng);\n var ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);\n var oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);\n x += +this.p.v[0];\n y += +this.p.v[1];\n this.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 currentAng += angle * dir;\n }\n\n this.paths.length = 0;\n this.paths[0] = this.v;\n }\n };\n extendPrototype([DynamicPropertyContainer], StarShapePropertyFactory);\n return StarShapePropertyFactory;\n }();\n\n var RectShapeProperty = function () {\n function RectShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.c = true;\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.localShapeCollection.addShape(this.v);\n this.paths = this.localShapeCollection;\n this.elem = elem;\n this.comp = elem.comp;\n this.frameId = -1;\n this.d = data.d;\n this.initDynamicPropertyContainer(elem);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, 0, this);\n this.r = PropertyFactory.getProp(elem, data.r, 0, 0, this);\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertRectToPath();\n }\n }\n\n RectShapePropertyFactory.prototype = {\n convertRectToPath: function convertRectToPath() {\n var p0 = this.p.v[0];\n var p1 = this.p.v[1];\n var v0 = this.s.v[0] / 2;\n var v1 = this.s.v[1] / 2;\n var round = bmMin(v0, v1, this.r.v);\n var cPoint = round * (1 - roundCorner);\n this.v._length = 0;\n\n if (this.d === 2 || this.d === 1) {\n this.v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, 0, true);\n this.v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, p0 + v0, p1 + v1 - round, 1, true);\n\n if (round !== 0) {\n this.v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, 2, true);\n this.v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0 + round, p1 + v1, 3, true);\n this.v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, 4, true);\n this.v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1 + round, 5, true);\n this.v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, 6, true);\n this.v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, p0 + v0 - round, p1 - v1, 7, true);\n } else {\n this.v.setTripleAt(p0 - v0, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0, p1 + v1, 2);\n this.v.setTripleAt(p0 - v0, p1 - v1, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1, 3);\n }\n } else {\n this.v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, p0 + v0, p1 - v1 + round, 0, true);\n\n if (round !== 0) {\n this.v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, 1, true);\n this.v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0 + round, p1 - v1, 2, true);\n this.v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, 3, true);\n this.v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1 - round, 4, true);\n this.v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, 5, true);\n this.v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0 - round, p1 + v1, 6, true);\n this.v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, 7, true);\n } else {\n this.v.setTripleAt(p0 - v0, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0, p1 - v1, 1, true);\n this.v.setTripleAt(p0 - v0, p1 + v1, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1, 2, true);\n this.v.setTripleAt(p0 + v0, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0, p1 + v1, 3, true);\n }\n }\n },\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n\n if (this._mdf) {\n this.convertRectToPath();\n }\n },\n reset: resetShape\n };\n extendPrototype([DynamicPropertyContainer], RectShapePropertyFactory);\n return RectShapePropertyFactory;\n }();\n\n function getShapeProp(elem, data, type) {\n var prop;\n\n if (type === 3 || type === 4) {\n var dataProp = type === 3 ? data.pt : data.ks;\n var keys = dataProp.k;\n\n if (keys.length) {\n prop = new KeyframedShapeProperty(elem, data, type);\n } else {\n prop = new ShapeProperty(elem, data, type);\n }\n } else if (type === 5) {\n prop = new RectShapeProperty(elem, data);\n } else if (type === 6) {\n prop = new EllShapeProperty(elem, data);\n } else if (type === 7) {\n prop = new StarShapeProperty(elem, data);\n }\n\n if (prop.k) {\n elem.addDynamicProperty(prop);\n }\n\n return prop;\n }\n\n function getConstructorFunction() {\n return ShapeProperty;\n }\n\n function getKeyframedConstructorFunction() {\n return KeyframedShapeProperty;\n }\n\n var ob = {};\n ob.getShapeProp = getShapeProp;\n ob.getConstructorFunction = getConstructorFunction;\n ob.getKeyframedConstructorFunction = getKeyframedConstructorFunction;\n return ob;\n }();\n\n /*!\r\n Transformation Matrix v2.0\r\n (c) Epistemex 2014-2015\r\n www.epistemex.com\r\n By Ken Fyrstenberg\r\n Contributions by leeoniya.\r\n License: MIT, header required.\r\n */\n\n /**\r\n * 2D transformation matrix object initialized with identity matrix.\r\n *\r\n * The matrix can synchronize a canvas context by supplying the context\r\n * as an argument, or later apply current absolute transform to an\r\n * existing context.\r\n *\r\n * All values are handled as floating point values.\r\n *\r\n * @param {CanvasRenderingContext2D} [context] - Optional context to sync with Matrix\r\n * @prop {number} a - scale x\r\n * @prop {number} b - shear y\r\n * @prop {number} c - shear x\r\n * @prop {number} d - scale y\r\n * @prop {number} e - translate x\r\n * @prop {number} f - translate y\r\n * @prop {CanvasRenderingContext2D|null} [context=null] - set or get current canvas context\r\n * @constructor\r\n */\n\n var Matrix = function () {\n var _cos = Math.cos;\n var _sin = Math.sin;\n var _tan = Math.tan;\n var _rnd = Math.round;\n\n function reset() {\n this.props[0] = 1;\n this.props[1] = 0;\n this.props[2] = 0;\n this.props[3] = 0;\n this.props[4] = 0;\n this.props[5] = 1;\n this.props[6] = 0;\n this.props[7] = 0;\n this.props[8] = 0;\n this.props[9] = 0;\n this.props[10] = 1;\n this.props[11] = 0;\n this.props[12] = 0;\n this.props[13] = 0;\n this.props[14] = 0;\n this.props[15] = 1;\n return this;\n }\n\n function rotate(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n }\n\n function rotateX(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(1, 0, 0, 0, 0, mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1);\n }\n\n function rotateY(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, 0, mSin, 0, 0, 1, 0, 0, -mSin, 0, mCos, 0, 0, 0, 0, 1);\n }\n\n function rotateZ(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n }\n\n function shear(sx, sy) {\n return this._t(1, sy, sx, 1, 0, 0);\n }\n\n function skew(ax, ay) {\n return this.shear(_tan(ax), _tan(ay));\n }\n\n function skewFromAxis(ax, angle) {\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, mSin, 0, 0, -mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)._t(1, 0, 0, 0, _tan(ax), 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); // 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 }\n\n function scale(sx, sy, sz) {\n if (!sz && sz !== 0) {\n sz = 1;\n }\n\n if (sx === 1 && sy === 1 && sz === 1) {\n return this;\n }\n\n return this._t(sx, 0, 0, 0, 0, sy, 0, 0, 0, 0, sz, 0, 0, 0, 0, 1);\n }\n\n function setTransform(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) {\n this.props[0] = a;\n this.props[1] = b;\n this.props[2] = c;\n this.props[3] = d;\n this.props[4] = e;\n this.props[5] = f;\n this.props[6] = g;\n this.props[7] = h;\n this.props[8] = i;\n this.props[9] = j;\n this.props[10] = k;\n this.props[11] = l;\n this.props[12] = m;\n this.props[13] = n;\n this.props[14] = o;\n this.props[15] = p;\n return this;\n }\n\n function translate(tx, ty, tz) {\n tz = tz || 0;\n\n if (tx !== 0 || ty !== 0 || tz !== 0) {\n return this._t(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, tx, ty, tz, 1);\n }\n\n return this;\n }\n\n function transform(a2, b2, c2, d2, e2, f2, g2, h2, i2, j2, k2, l2, m2, n2, o2, p2) {\n var _p = this.props;\n\n if (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 // NOTE: commenting this condition because TurboFan deoptimizes code when present\n // if(m2 !== 0 || n2 !== 0 || o2 !== 0){\n _p[12] = _p[12] * a2 + _p[15] * m2;\n _p[13] = _p[13] * f2 + _p[15] * n2;\n _p[14] = _p[14] * k2 + _p[15] * o2;\n _p[15] *= p2; // }\n\n this._identityCalculated = false;\n return this;\n }\n\n var a1 = _p[0];\n var b1 = _p[1];\n var c1 = _p[2];\n var d1 = _p[3];\n var e1 = _p[4];\n var f1 = _p[5];\n var g1 = _p[6];\n var h1 = _p[7];\n var i1 = _p[8];\n var j1 = _p[9];\n var k1 = _p[10];\n var l1 = _p[11];\n var m1 = _p[12];\n var n1 = _p[13];\n var o1 = _p[14];\n var p1 = _p[15];\n /* matrix order (canvas compatible):\r\n * ace\r\n * bdf\r\n * 001\r\n */\n\n _p[0] = a1 * a2 + b1 * e2 + c1 * i2 + d1 * m2;\n _p[1] = a1 * b2 + b1 * f2 + c1 * j2 + d1 * n2;\n _p[2] = a1 * c2 + b1 * g2 + c1 * k2 + d1 * o2;\n _p[3] = a1 * d2 + b1 * h2 + c1 * l2 + d1 * p2;\n _p[4] = e1 * a2 + f1 * e2 + g1 * i2 + h1 * m2;\n _p[5] = e1 * b2 + f1 * f2 + g1 * j2 + h1 * n2;\n _p[6] = e1 * c2 + f1 * g2 + g1 * k2 + h1 * o2;\n _p[7] = e1 * d2 + f1 * h2 + g1 * l2 + h1 * p2;\n _p[8] = i1 * a2 + j1 * e2 + k1 * i2 + l1 * m2;\n _p[9] = i1 * b2 + j1 * f2 + k1 * j2 + l1 * n2;\n _p[10] = i1 * c2 + j1 * g2 + k1 * k2 + l1 * o2;\n _p[11] = i1 * d2 + j1 * h2 + k1 * l2 + l1 * p2;\n _p[12] = m1 * a2 + n1 * e2 + o1 * i2 + p1 * m2;\n _p[13] = m1 * b2 + n1 * f2 + o1 * j2 + p1 * n2;\n _p[14] = m1 * c2 + n1 * g2 + o1 * k2 + p1 * o2;\n _p[15] = m1 * d2 + n1 * h2 + o1 * l2 + p1 * p2;\n this._identityCalculated = false;\n return this;\n }\n\n function isIdentity() {\n if (!this._identityCalculated) {\n this._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 this._identityCalculated = true;\n }\n\n return this._identity;\n }\n\n function equals(matr) {\n var i = 0;\n\n while (i < 16) {\n if (matr.props[i] !== this.props[i]) {\n return false;\n }\n\n i += 1;\n }\n\n return true;\n }\n\n function clone(matr) {\n var i;\n\n for (i = 0; i < 16; i += 1) {\n matr.props[i] = this.props[i];\n }\n\n return matr;\n }\n\n function cloneFromProps(props) {\n var i;\n\n for (i = 0; i < 16; i += 1) {\n this.props[i] = props[i];\n }\n }\n\n function applyToPoint(x, y, z) {\n return {\n x: x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12],\n y: x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13],\n z: x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14]\n };\n /* return {\r\n x: x * me.a + y * me.c + me.e,\r\n y: x * me.b + y * me.d + me.f\r\n }; */\n }\n\n function applyToX(x, y, z) {\n return x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12];\n }\n\n function applyToY(x, y, z) {\n return x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13];\n }\n\n function applyToZ(x, y, z) {\n return x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14];\n }\n\n function getInverseMatrix() {\n var determinant = this.props[0] * this.props[5] - this.props[1] * this.props[4];\n var a = this.props[5] / determinant;\n var b = -this.props[1] / determinant;\n var c = -this.props[4] / determinant;\n var d = this.props[0] / determinant;\n var e = (this.props[4] * this.props[13] - this.props[5] * this.props[12]) / determinant;\n var f = -(this.props[0] * this.props[13] - this.props[1] * this.props[12]) / determinant;\n var inverseMatrix = new Matrix();\n inverseMatrix.props[0] = a;\n inverseMatrix.props[1] = b;\n inverseMatrix.props[4] = c;\n inverseMatrix.props[5] = d;\n inverseMatrix.props[12] = e;\n inverseMatrix.props[13] = f;\n return inverseMatrix;\n }\n\n function inversePoint(pt) {\n var inverseMatrix = this.getInverseMatrix();\n return inverseMatrix.applyToPointArray(pt[0], pt[1], pt[2] || 0);\n }\n\n function inversePoints(pts) {\n var i;\n var len = pts.length;\n var retPts = [];\n\n for (i = 0; i < len; i += 1) {\n retPts[i] = inversePoint(pts[i]);\n }\n\n return retPts;\n }\n\n function applyToTriplePoints(pt1, pt2, pt3) {\n var arr = createTypedArray('float32', 6);\n\n if (this.isIdentity()) {\n arr[0] = pt1[0];\n arr[1] = pt1[1];\n arr[2] = pt2[0];\n arr[3] = pt2[1];\n arr[4] = pt3[0];\n arr[5] = pt3[1];\n } else {\n var p0 = this.props[0];\n var p1 = this.props[1];\n var p4 = this.props[4];\n var p5 = this.props[5];\n var p12 = this.props[12];\n var p13 = this.props[13];\n arr[0] = pt1[0] * p0 + pt1[1] * p4 + p12;\n arr[1] = pt1[0] * p1 + pt1[1] * p5 + p13;\n arr[2] = pt2[0] * p0 + pt2[1] * p4 + p12;\n arr[3] = pt2[0] * p1 + pt2[1] * p5 + p13;\n arr[4] = pt3[0] * p0 + pt3[1] * p4 + p12;\n arr[5] = pt3[0] * p1 + pt3[1] * p5 + p13;\n }\n\n return arr;\n }\n\n function applyToPointArray(x, y, z) {\n var arr;\n\n if (this.isIdentity()) {\n arr = [x, y, z];\n } else {\n arr = [x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12], x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13], x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14]];\n }\n\n return arr;\n }\n\n function applyToPointStringified(x, y) {\n if (this.isIdentity()) {\n return x + ',' + y;\n }\n\n var _p = this.props;\n return 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 }\n\n function toCSS() {\n // 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\n /* if(this.isIdentity()) {\r\n return '';\r\n } */\n var i = 0;\n var props = this.props;\n var cssValue = 'matrix3d(';\n var v = 10000;\n\n while (i < 16) {\n cssValue += _rnd(props[i] * v) / v;\n cssValue += i === 15 ? ')' : ',';\n i += 1;\n }\n\n return cssValue;\n }\n\n function roundMatrixProperty(val) {\n var v = 10000;\n\n if (val < 0.000001 && val > 0 || val > -0.000001 && val < 0) {\n return _rnd(val * v) / v;\n }\n\n return val;\n }\n\n function to2dCSS() {\n // 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\n /* if(this.isIdentity()) {\r\n return '';\r\n } */\n var props = this.props;\n\n var _a = roundMatrixProperty(props[0]);\n\n var _b = roundMatrixProperty(props[1]);\n\n var _c = roundMatrixProperty(props[4]);\n\n var _d = roundMatrixProperty(props[5]);\n\n var _e = roundMatrixProperty(props[12]);\n\n var _f = roundMatrixProperty(props[13]);\n\n return 'matrix(' + _a + ',' + _b + ',' + _c + ',' + _d + ',' + _e + ',' + _f + ')';\n }\n\n return function () {\n this.reset = reset;\n this.rotate = rotate;\n this.rotateX = rotateX;\n this.rotateY = rotateY;\n this.rotateZ = rotateZ;\n this.skew = skew;\n this.skewFromAxis = skewFromAxis;\n this.shear = shear;\n this.scale = scale;\n this.setTransform = setTransform;\n this.translate = translate;\n this.transform = transform;\n this.applyToPoint = applyToPoint;\n this.applyToX = applyToX;\n this.applyToY = applyToY;\n this.applyToZ = applyToZ;\n this.applyToPointArray = applyToPointArray;\n this.applyToTriplePoints = applyToTriplePoints;\n this.applyToPointStringified = applyToPointStringified;\n this.toCSS = toCSS;\n this.to2dCSS = to2dCSS;\n this.clone = clone;\n this.cloneFromProps = cloneFromProps;\n this.equals = equals;\n this.inversePoints = inversePoints;\n this.inversePoint = inversePoint;\n this.getInverseMatrix = getInverseMatrix;\n this._t = this.transform;\n this.isIdentity = isIdentity;\n this._identity = true;\n this._identityCalculated = false;\n this.props = createTypedArray('float32', 16);\n this.reset();\n };\n }();\n\n function _typeof$3(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$3 = function _typeof(obj) { return typeof obj; }; } else { _typeof$3 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$3(obj); }\n var lottie = {};\n var standalone = '__[STANDALONE]__';\n var animationData = '__[ANIMATIONDATA]__';\n var renderer = '';\n\n function setLocation(href) {\n setLocationHref(href);\n }\n\n function searchAnimations() {\n if (standalone === true) {\n animationManager.searchAnimations(animationData, standalone, renderer);\n } else {\n animationManager.searchAnimations();\n }\n }\n\n function setSubframeRendering(flag) {\n setSubframeEnabled(flag);\n }\n\n function setPrefix(prefix) {\n setIdPrefix(prefix);\n }\n\n function loadAnimation(params) {\n if (standalone === true) {\n params.animationData = JSON.parse(animationData);\n }\n\n return animationManager.loadAnimation(params);\n }\n\n function setQuality(value) {\n if (typeof value === 'string') {\n switch (value) {\n case 'high':\n setDefaultCurveSegments(200);\n break;\n\n default:\n case 'medium':\n setDefaultCurveSegments(50);\n break;\n\n case 'low':\n setDefaultCurveSegments(10);\n break;\n }\n } else if (!isNaN(value) && value > 1) {\n setDefaultCurveSegments(value);\n }\n\n if (getDefaultCurveSegments() >= 50) {\n roundValues(false);\n } else {\n roundValues(true);\n }\n }\n\n function inBrowser() {\n return typeof navigator !== 'undefined';\n }\n\n function installPlugin(type, plugin) {\n if (type === 'expressions') {\n setExpressionsPlugin(plugin);\n }\n }\n\n function getFactory(name) {\n switch (name) {\n case 'propertyFactory':\n return PropertyFactory;\n\n case 'shapePropertyFactory':\n return ShapePropertyFactory;\n\n case 'matrix':\n return Matrix;\n\n default:\n return null;\n }\n }\n\n lottie.play = animationManager.play;\n lottie.pause = animationManager.pause;\n lottie.setLocationHref = setLocation;\n lottie.togglePause = animationManager.togglePause;\n lottie.setSpeed = animationManager.setSpeed;\n lottie.setDirection = animationManager.setDirection;\n lottie.stop = animationManager.stop;\n lottie.searchAnimations = searchAnimations;\n lottie.registerAnimation = animationManager.registerAnimation;\n lottie.loadAnimation = loadAnimation;\n lottie.setSubframeRendering = setSubframeRendering;\n lottie.resize = animationManager.resize; // lottie.start = start;\n\n lottie.goToAndStop = animationManager.goToAndStop;\n lottie.destroy = animationManager.destroy;\n lottie.setQuality = setQuality;\n lottie.inBrowser = inBrowser;\n lottie.installPlugin = installPlugin;\n lottie.freeze = animationManager.freeze;\n lottie.unfreeze = animationManager.unfreeze;\n lottie.setVolume = animationManager.setVolume;\n lottie.mute = animationManager.mute;\n lottie.unmute = animationManager.unmute;\n lottie.getRegisteredAnimations = animationManager.getRegisteredAnimations;\n lottie.useWebWorker = setWebWorker;\n lottie.setIDPrefix = setPrefix;\n lottie.__getFactory = getFactory;\n lottie.version = '5.11.0';\n\n function checkReady() {\n if (document.readyState === 'complete') {\n clearInterval(readyStateCheckInterval);\n searchAnimations();\n }\n }\n\n function getQueryVariable(variable) {\n var vars = queryString.split('&');\n\n for (var i = 0; i < vars.length; i += 1) {\n var pair = vars[i].split('=');\n\n if (decodeURIComponent(pair[0]) == variable) {\n // eslint-disable-line eqeqeq\n return decodeURIComponent(pair[1]);\n }\n }\n\n return null;\n }\n\n var queryString = '';\n\n if (standalone) {\n var scripts = document.getElementsByTagName('script');\n var index = scripts.length - 1;\n var myScript = scripts[index] || {\n src: ''\n };\n queryString = myScript.src ? myScript.src.replace(/^[^\\?]+\\??/, '') : ''; // eslint-disable-line no-useless-escape\n\n renderer = getQueryVariable('renderer');\n }\n\n var readyStateCheckInterval = setInterval(checkReady, 100); // this adds bodymovin to the window object for backwards compatibility\n\n try {\n if (!((typeof exports === \"undefined\" ? \"undefined\" : _typeof$3(exports)) === 'object' && typeof module !== 'undefined') && !(typeof define === 'function' && define.amd) // eslint-disable-line no-undef\n ) {\n window.bodymovin = lottie;\n }\n } catch (err) {//\n }\n\n var ShapeModifiers = function () {\n var ob = {};\n var modifiers = {};\n ob.registerModifier = registerModifier;\n ob.getModifier = getModifier;\n\n function registerModifier(nm, factory) {\n if (!modifiers[nm]) {\n modifiers[nm] = factory;\n }\n }\n\n function getModifier(nm, elem, data) {\n return new modifiers[nm](elem, data);\n }\n\n return ob;\n }();\n\n function ShapeModifier() {}\n\n ShapeModifier.prototype.initModifierProperties = function () {};\n\n ShapeModifier.prototype.addShapeToModifier = function () {};\n\n ShapeModifier.prototype.addShape = function (data) {\n if (!this.closed) {\n // 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 data.sh.container.addDynamicProperty(data.sh);\n var shapeData = {\n shape: data.sh,\n data: data,\n localShapeCollection: shapeCollectionPool.newShapeCollection()\n };\n this.shapes.push(shapeData);\n this.addShapeToModifier(shapeData);\n\n if (this._isAnimated) {\n data.setAsAnimated();\n }\n }\n };\n\n ShapeModifier.prototype.init = function (elem, data) {\n this.shapes = [];\n this.elem = elem;\n this.initDynamicPropertyContainer(elem);\n this.initModifierProperties(elem, data);\n this.frameId = initialDefaultFrame;\n this.closed = false;\n this.k = false;\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.getValue(true);\n }\n };\n\n ShapeModifier.prototype.processKeys = function () {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n };\n\n extendPrototype([DynamicPropertyContainer], ShapeModifier);\n\n function TrimModifier() {}\n\n extendPrototype([ShapeModifier], TrimModifier);\n\n TrimModifier.prototype.initModifierProperties = function (elem, data) {\n this.s = PropertyFactory.getProp(elem, data.s, 0, 0.01, this);\n this.e = PropertyFactory.getProp(elem, data.e, 0, 0.01, this);\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0, this);\n this.sValue = 0;\n this.eValue = 0;\n this.getValue = this.processKeys;\n this.m = data.m;\n this._isAnimated = !!this.s.effectsSequence.length || !!this.e.effectsSequence.length || !!this.o.effectsSequence.length;\n };\n\n TrimModifier.prototype.addShapeToModifier = function (shapeData) {\n shapeData.pathsData = [];\n };\n\n TrimModifier.prototype.calculateShapeEdges = function (s, e, shapeLength, addedLength, totalModifierLength) {\n var segments = [];\n\n if (e <= 1) {\n segments.push({\n s: s,\n e: e\n });\n } else if (s >= 1) {\n segments.push({\n s: s - 1,\n e: e - 1\n });\n } else {\n segments.push({\n s: s,\n e: 1\n });\n segments.push({\n s: 0,\n e: e - 1\n });\n }\n\n var shapeSegments = [];\n var i;\n var len = segments.length;\n var segmentOb;\n\n for (i = 0; i < len; i += 1) {\n segmentOb = segments[i];\n\n if (!(segmentOb.e * totalModifierLength < addedLength || segmentOb.s * totalModifierLength > addedLength + shapeLength)) {\n var shapeS;\n var shapeE;\n\n if (segmentOb.s * totalModifierLength <= addedLength) {\n shapeS = 0;\n } else {\n shapeS = (segmentOb.s * totalModifierLength - addedLength) / shapeLength;\n }\n\n if (segmentOb.e * totalModifierLength >= addedLength + shapeLength) {\n shapeE = 1;\n } else {\n shapeE = (segmentOb.e * totalModifierLength - addedLength) / shapeLength;\n }\n\n shapeSegments.push([shapeS, shapeE]);\n }\n }\n\n if (!shapeSegments.length) {\n shapeSegments.push([0, 0]);\n }\n\n return shapeSegments;\n };\n\n TrimModifier.prototype.releasePathsData = function (pathsData) {\n var i;\n var len = pathsData.length;\n\n for (i = 0; i < len; i += 1) {\n segmentsLengthPool.release(pathsData[i]);\n }\n\n pathsData.length = 0;\n return pathsData;\n };\n\n TrimModifier.prototype.processShapes = function (_isFirstFrame) {\n var s;\n var e;\n\n if (this._mdf || _isFirstFrame) {\n var o = this.o.v % 360 / 360;\n\n if (o < 0) {\n o += 1;\n }\n\n if (this.s.v > 1) {\n s = 1 + o;\n } else if (this.s.v < 0) {\n s = 0 + o;\n } else {\n s = this.s.v + o;\n }\n\n if (this.e.v > 1) {\n e = 1 + o;\n } else if (this.e.v < 0) {\n e = 0 + o;\n } else {\n e = this.e.v + o;\n }\n\n if (s > e) {\n var _s = s;\n s = e;\n e = _s;\n }\n\n s = Math.round(s * 10000) * 0.0001;\n e = Math.round(e * 10000) * 0.0001;\n this.sValue = s;\n this.eValue = e;\n } else {\n s = this.sValue;\n e = this.eValue;\n }\n\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var pathsData;\n var pathData;\n var totalShapeLength;\n var totalModifierLength = 0;\n\n if (e === s) {\n for (i = 0; i < len; i += 1) {\n this.shapes[i].localShapeCollection.releaseShapes();\n this.shapes[i].shape._mdf = true;\n this.shapes[i].shape.paths = this.shapes[i].localShapeCollection;\n\n if (this._mdf) {\n this.shapes[i].pathsData.length = 0;\n }\n }\n } else if (!(e === 1 && s === 0 || e === 0 && s === 1)) {\n var segments = [];\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i]; // if shape hasn't changed and trim properties haven't changed, cached previous path can be used\n\n if (!shapeData.shape._mdf && !this._mdf && !_isFirstFrame && this.m !== 2) {\n shapeData.shape.paths = shapeData.localShapeCollection;\n } else {\n shapePaths = shapeData.shape.paths;\n jLen = shapePaths._length;\n totalShapeLength = 0;\n\n if (!shapeData.shape._mdf && shapeData.pathsData.length) {\n totalShapeLength = shapeData.totalShapeLength;\n } else {\n pathsData = this.releasePathsData(shapeData.pathsData);\n\n for (j = 0; j < jLen; j += 1) {\n pathData = bez.getSegmentsLength(shapePaths.shapes[j]);\n pathsData.push(pathData);\n totalShapeLength += pathData.totalLength;\n }\n\n shapeData.totalShapeLength = totalShapeLength;\n shapeData.pathsData = pathsData;\n }\n\n totalModifierLength += totalShapeLength;\n shapeData.shape._mdf = true;\n }\n }\n\n var shapeS = s;\n var shapeE = e;\n var addedLength = 0;\n var edges;\n\n for (i = len - 1; i >= 0; i -= 1) {\n shapeData = this.shapes[i];\n\n if (shapeData.shape._mdf) {\n localShapeCollection = shapeData.localShapeCollection;\n localShapeCollection.releaseShapes(); // if m === 2 means paths are trimmed individually so edges need to be found for this specific shape relative to whoel group\n\n if (this.m === 2 && len > 1) {\n edges = this.calculateShapeEdges(s, e, shapeData.totalShapeLength, addedLength, totalModifierLength);\n addedLength += shapeData.totalShapeLength;\n } else {\n edges = [[shapeS, shapeE]];\n }\n\n jLen = edges.length;\n\n for (j = 0; j < jLen; j += 1) {\n shapeS = edges[j][0];\n shapeE = edges[j][1];\n segments.length = 0;\n\n if (shapeE <= 1) {\n segments.push({\n s: shapeData.totalShapeLength * shapeS,\n e: shapeData.totalShapeLength * shapeE\n });\n } else if (shapeS >= 1) {\n segments.push({\n s: shapeData.totalShapeLength * (shapeS - 1),\n e: shapeData.totalShapeLength * (shapeE - 1)\n });\n } else {\n segments.push({\n s: shapeData.totalShapeLength * shapeS,\n e: shapeData.totalShapeLength\n });\n segments.push({\n s: 0,\n e: shapeData.totalShapeLength * (shapeE - 1)\n });\n }\n\n var newShapesData = this.addShapes(shapeData, segments[0]);\n\n if (segments[0].s !== segments[0].e) {\n if (segments.length > 1) {\n var lastShapeInCollection = shapeData.shape.paths.shapes[shapeData.shape.paths._length - 1];\n\n if (lastShapeInCollection.c) {\n var lastShape = newShapesData.pop();\n this.addPaths(newShapesData, localShapeCollection);\n newShapesData = this.addShapes(shapeData, segments[1], lastShape);\n } else {\n this.addPaths(newShapesData, localShapeCollection);\n newShapesData = this.addShapes(shapeData, segments[1]);\n }\n }\n\n this.addPaths(newShapesData, localShapeCollection);\n }\n }\n\n shapeData.shape.paths = localShapeCollection;\n }\n }\n } else if (this._mdf) {\n for (i = 0; i < len; i += 1) {\n // Releasign Trim Cached paths data when no trim applied in case shapes are modified inbetween.\n // Don't remove this even if it's losing cached info.\n this.shapes[i].pathsData.length = 0;\n this.shapes[i].shape._mdf = true;\n }\n }\n };\n\n TrimModifier.prototype.addPaths = function (newPaths, localShapeCollection) {\n var i;\n var len = newPaths.length;\n\n for (i = 0; i < len; i += 1) {\n localShapeCollection.addShape(newPaths[i]);\n }\n };\n\n TrimModifier.prototype.addSegment = function (pt1, pt2, pt3, pt4, shapePath, pos, newShape) {\n shapePath.setXYAt(pt2[0], pt2[1], 'o', pos);\n shapePath.setXYAt(pt3[0], pt3[1], 'i', pos + 1);\n\n if (newShape) {\n shapePath.setXYAt(pt1[0], pt1[1], 'v', pos);\n }\n\n shapePath.setXYAt(pt4[0], pt4[1], 'v', pos + 1);\n };\n\n TrimModifier.prototype.addSegmentFromArray = function (points, shapePath, pos, newShape) {\n shapePath.setXYAt(points[1], points[5], 'o', pos);\n shapePath.setXYAt(points[2], points[6], 'i', pos + 1);\n\n if (newShape) {\n shapePath.setXYAt(points[0], points[4], 'v', pos);\n }\n\n shapePath.setXYAt(points[3], points[7], 'v', pos + 1);\n };\n\n TrimModifier.prototype.addShapes = function (shapeData, shapeSegment, shapePath) {\n var pathsData = shapeData.pathsData;\n var shapePaths = shapeData.shape.paths.shapes;\n var i;\n var len = shapeData.shape.paths._length;\n var j;\n var jLen;\n var addedLength = 0;\n var currentLengthData;\n var segmentCount;\n var lengths;\n var segment;\n var shapes = [];\n var initPos;\n var newShape = true;\n\n if (!shapePath) {\n shapePath = shapePool.newElement();\n segmentCount = 0;\n initPos = 0;\n } else {\n segmentCount = shapePath._length;\n initPos = shapePath._length;\n }\n\n shapes.push(shapePath);\n\n for (i = 0; i < len; i += 1) {\n lengths = pathsData[i].lengths;\n shapePath.c = shapePaths[i].c;\n jLen = shapePaths[i].c ? lengths.length : lengths.length + 1;\n\n for (j = 1; j < jLen; j += 1) {\n currentLengthData = lengths[j - 1];\n\n if (addedLength + currentLengthData.addedLength < shapeSegment.s) {\n addedLength += currentLengthData.addedLength;\n shapePath.c = false;\n } else if (addedLength > shapeSegment.e) {\n shapePath.c = false;\n break;\n } else {\n if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + currentLengthData.addedLength) {\n this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[j], shapePaths[i].v[j], shapePath, segmentCount, newShape);\n newShape = false;\n } else {\n segment = 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 this.addSegmentFromArray(segment, shapePath, segmentCount, newShape); // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\n\n newShape = false;\n shapePath.c = false;\n }\n\n addedLength += currentLengthData.addedLength;\n segmentCount += 1;\n }\n }\n\n if (shapePaths[i].c && lengths.length) {\n currentLengthData = lengths[j - 1];\n\n if (addedLength <= shapeSegment.e) {\n var segmentLength = lengths[j - 1].addedLength;\n\n if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + segmentLength) {\n this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[0], shapePaths[i].v[0], shapePath, segmentCount, newShape);\n newShape = false;\n } else {\n segment = 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 this.addSegmentFromArray(segment, shapePath, segmentCount, newShape); // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\n\n newShape = false;\n shapePath.c = false;\n }\n } else {\n shapePath.c = false;\n }\n\n addedLength += currentLengthData.addedLength;\n segmentCount += 1;\n }\n\n if (shapePath._length) {\n shapePath.setXYAt(shapePath.v[initPos][0], shapePath.v[initPos][1], 'i', initPos);\n shapePath.setXYAt(shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1], 'o', shapePath._length - 1);\n }\n\n if (addedLength > shapeSegment.e) {\n break;\n }\n\n if (i < len - 1) {\n shapePath = shapePool.newElement();\n newShape = true;\n shapes.push(shapePath);\n segmentCount = 0;\n }\n }\n\n return shapes;\n };\n\n function PuckerAndBloatModifier() {}\n\n extendPrototype([ShapeModifier], PuckerAndBloatModifier);\n\n PuckerAndBloatModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.amount = PropertyFactory.getProp(elem, data.a, 0, null, this);\n this._isAnimated = !!this.amount.effectsSequence.length;\n };\n\n PuckerAndBloatModifier.prototype.processPath = function (path, amount) {\n var percent = amount / 100;\n var centerPoint = [0, 0];\n var pathLength = path._length;\n var i = 0;\n\n for (i = 0; i < pathLength; i += 1) {\n centerPoint[0] += path.v[i][0];\n centerPoint[1] += path.v[i][1];\n }\n\n centerPoint[0] /= pathLength;\n centerPoint[1] /= pathLength;\n var clonedPath = shapePool.newElement();\n clonedPath.c = path.c;\n var vX;\n var vY;\n var oX;\n var oY;\n var iX;\n var iY;\n\n for (i = 0; i < pathLength; i += 1) {\n vX = path.v[i][0] + (centerPoint[0] - path.v[i][0]) * percent;\n vY = path.v[i][1] + (centerPoint[1] - path.v[i][1]) * percent;\n oX = path.o[i][0] + (centerPoint[0] - path.o[i][0]) * -percent;\n oY = path.o[i][1] + (centerPoint[1] - path.o[i][1]) * -percent;\n iX = path.i[i][0] + (centerPoint[0] - path.i[i][0]) * -percent;\n iY = path.i[i][1] + (centerPoint[1] - path.i[i][1]) * -percent;\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, i);\n }\n\n return clonedPath;\n };\n\n PuckerAndBloatModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var amount = this.amount.v;\n\n if (amount !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], amount));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n var TransformPropertyFactory = function () {\n var defaultVector = [0, 0];\n\n function applyToMatrix(mat) {\n var _mdf = this._mdf;\n this.iterateDynamicProperties();\n this._mdf = this._mdf || _mdf;\n\n if (this.a) {\n mat.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n }\n\n if (this.s) {\n mat.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n }\n\n if (this.sk) {\n mat.skewFromAxis(-this.sk.v, this.sa.v);\n }\n\n if (this.r) {\n mat.rotate(-this.r.v);\n } else {\n mat.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\n }\n\n if (this.data.p.s) {\n if (this.data.p.z) {\n mat.translate(this.px.v, this.py.v, -this.pz.v);\n } else {\n mat.translate(this.px.v, this.py.v, 0);\n }\n } else {\n mat.translate(this.p.v[0], this.p.v[1], -this.p.v[2]);\n }\n }\n\n function processKeys(forceRender) {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n if (this._isDirty) {\n this.precalculateMatrix();\n this._isDirty = false;\n }\n\n this.iterateDynamicProperties();\n\n if (this._mdf || forceRender) {\n var frameRate;\n this.v.cloneFromProps(this.pre.props);\n\n if (this.appliedTransformations < 1) {\n this.v.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n }\n\n if (this.appliedTransformations < 2) {\n this.v.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n }\n\n if (this.sk && this.appliedTransformations < 3) {\n this.v.skewFromAxis(-this.sk.v, this.sa.v);\n }\n\n if (this.r && this.appliedTransformations < 4) {\n this.v.rotate(-this.r.v);\n } else if (!this.r && this.appliedTransformations < 4) {\n this.v.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\n }\n\n if (this.autoOriented) {\n var v1;\n var v2;\n frameRate = this.elem.globalData.frameRate;\n\n if (this.p && this.p.keyframes && this.p.getValueAtTime) {\n if (this.p._caching.lastFrame + this.p.offsetTime <= this.p.keyframes[0].t) {\n v1 = this.p.getValueAtTime((this.p.keyframes[0].t + 0.01) / frameRate, 0);\n v2 = this.p.getValueAtTime(this.p.keyframes[0].t / frameRate, 0);\n } else if (this.p._caching.lastFrame + this.p.offsetTime >= this.p.keyframes[this.p.keyframes.length - 1].t) {\n v1 = this.p.getValueAtTime(this.p.keyframes[this.p.keyframes.length - 1].t / frameRate, 0);\n v2 = this.p.getValueAtTime((this.p.keyframes[this.p.keyframes.length - 1].t - 0.05) / frameRate, 0);\n } else {\n v1 = this.p.pv;\n v2 = this.p.getValueAtTime((this.p._caching.lastFrame + this.p.offsetTime - 0.01) / frameRate, this.p.offsetTime);\n }\n } else if (this.px && this.px.keyframes && this.py.keyframes && this.px.getValueAtTime && this.py.getValueAtTime) {\n v1 = [];\n v2 = [];\n var px = this.px;\n var py = this.py;\n\n if (px._caching.lastFrame + px.offsetTime <= px.keyframes[0].t) {\n v1[0] = px.getValueAtTime((px.keyframes[0].t + 0.01) / frameRate, 0);\n v1[1] = py.getValueAtTime((py.keyframes[0].t + 0.01) / frameRate, 0);\n v2[0] = px.getValueAtTime(px.keyframes[0].t / frameRate, 0);\n v2[1] = py.getValueAtTime(py.keyframes[0].t / frameRate, 0);\n } else if (px._caching.lastFrame + px.offsetTime >= px.keyframes[px.keyframes.length - 1].t) {\n v1[0] = px.getValueAtTime(px.keyframes[px.keyframes.length - 1].t / frameRate, 0);\n v1[1] = py.getValueAtTime(py.keyframes[py.keyframes.length - 1].t / frameRate, 0);\n v2[0] = px.getValueAtTime((px.keyframes[px.keyframes.length - 1].t - 0.01) / frameRate, 0);\n v2[1] = py.getValueAtTime((py.keyframes[py.keyframes.length - 1].t - 0.01) / frameRate, 0);\n } else {\n v1 = [px.pv, py.pv];\n v2[0] = px.getValueAtTime((px._caching.lastFrame + px.offsetTime - 0.01) / frameRate, px.offsetTime);\n v2[1] = py.getValueAtTime((py._caching.lastFrame + py.offsetTime - 0.01) / frameRate, py.offsetTime);\n }\n } else {\n v2 = defaultVector;\n v1 = v2;\n }\n\n this.v.rotate(-Math.atan2(v1[1] - v2[1], v1[0] - v2[0]));\n }\n\n if (this.data.p && this.data.p.s) {\n if (this.data.p.z) {\n this.v.translate(this.px.v, this.py.v, -this.pz.v);\n } else {\n this.v.translate(this.px.v, this.py.v, 0);\n }\n } else {\n this.v.translate(this.p.v[0], this.p.v[1], -this.p.v[2]);\n }\n }\n\n this.frameId = this.elem.globalData.frameId;\n }\n\n function precalculateMatrix() {\n if (!this.a.k) {\n this.pre.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n this.appliedTransformations = 1;\n } else {\n return;\n }\n\n if (!this.s.effectsSequence.length) {\n this.pre.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n this.appliedTransformations = 2;\n } else {\n return;\n }\n\n if (this.sk) {\n if (!this.sk.effectsSequence.length && !this.sa.effectsSequence.length) {\n this.pre.skewFromAxis(-this.sk.v, this.sa.v);\n this.appliedTransformations = 3;\n } else {\n return;\n }\n }\n\n if (this.r) {\n if (!this.r.effectsSequence.length) {\n this.pre.rotate(-this.r.v);\n this.appliedTransformations = 4;\n }\n } else if (!this.rz.effectsSequence.length && !this.ry.effectsSequence.length && !this.rx.effectsSequence.length && !this.or.effectsSequence.length) {\n this.pre.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\n this.appliedTransformations = 4;\n }\n }\n\n function autoOrient() {//\n // var prevP = this.getValueAtTime();\n }\n\n function addDynamicProperty(prop) {\n this._addDynamicProperty(prop);\n\n this.elem.addDynamicProperty(prop);\n this._isDirty = true;\n }\n\n function TransformProperty(elem, data, container) {\n this.elem = elem;\n this.frameId = -1;\n this.propType = 'transform';\n this.data = data;\n this.v = new Matrix(); // Precalculated matrix with non animated properties\n\n this.pre = new Matrix();\n this.appliedTransformations = 0;\n this.initDynamicPropertyContainer(container || elem);\n\n if (data.p && data.p.s) {\n this.px = PropertyFactory.getProp(elem, data.p.x, 0, 0, this);\n this.py = PropertyFactory.getProp(elem, data.p.y, 0, 0, this);\n\n if (data.p.z) {\n this.pz = PropertyFactory.getProp(elem, data.p.z, 0, 0, this);\n }\n } else {\n this.p = PropertyFactory.getProp(elem, data.p || {\n k: [0, 0, 0]\n }, 1, 0, this);\n }\n\n if (data.rx) {\n this.rx = PropertyFactory.getProp(elem, data.rx, 0, degToRads, this);\n this.ry = PropertyFactory.getProp(elem, data.ry, 0, degToRads, this);\n this.rz = PropertyFactory.getProp(elem, data.rz, 0, degToRads, this);\n\n if (data.or.k[0].ti) {\n var i;\n var len = data.or.k.length;\n\n for (i = 0; i < len; i += 1) {\n data.or.k[i].to = null;\n data.or.k[i].ti = null;\n }\n }\n\n this.or = PropertyFactory.getProp(elem, data.or, 1, degToRads, this); // sh Indicates it needs to be capped between -180 and 180\n\n this.or.sh = true;\n } else {\n this.r = PropertyFactory.getProp(elem, data.r || {\n k: 0\n }, 0, degToRads, this);\n }\n\n if (data.sk) {\n this.sk = PropertyFactory.getProp(elem, data.sk, 0, degToRads, this);\n this.sa = PropertyFactory.getProp(elem, data.sa, 0, degToRads, this);\n }\n\n this.a = PropertyFactory.getProp(elem, data.a || {\n k: [0, 0, 0]\n }, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s || {\n k: [100, 100, 100]\n }, 1, 0.01, this); // 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\n if (data.o) {\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, elem);\n } else {\n this.o = {\n _mdf: false,\n v: 1\n };\n }\n\n this._isDirty = true;\n\n if (!this.dynamicProperties.length) {\n this.getValue(true);\n }\n }\n\n TransformProperty.prototype = {\n applyToMatrix: applyToMatrix,\n getValue: processKeys,\n precalculateMatrix: precalculateMatrix,\n autoOrient: autoOrient\n };\n extendPrototype([DynamicPropertyContainer], TransformProperty);\n TransformProperty.prototype.addDynamicProperty = addDynamicProperty;\n TransformProperty.prototype._addDynamicProperty = DynamicPropertyContainer.prototype.addDynamicProperty;\n\n function getTransformProperty(elem, data, container) {\n return new TransformProperty(elem, data, container);\n }\n\n return {\n getTransformProperty: getTransformProperty\n };\n }();\n\n function RepeaterModifier() {}\n\n extendPrototype([ShapeModifier], RepeaterModifier);\n\n RepeaterModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.c = PropertyFactory.getProp(elem, data.c, 0, null, this);\n this.o = PropertyFactory.getProp(elem, data.o, 0, null, this);\n this.tr = TransformPropertyFactory.getTransformProperty(elem, data.tr, this);\n this.so = PropertyFactory.getProp(elem, data.tr.so, 0, 0.01, this);\n this.eo = PropertyFactory.getProp(elem, data.tr.eo, 0, 0.01, this);\n this.data = data;\n\n if (!this.dynamicProperties.length) {\n this.getValue(true);\n }\n\n this._isAnimated = !!this.dynamicProperties.length;\n this.pMatrix = new Matrix();\n this.rMatrix = new Matrix();\n this.sMatrix = new Matrix();\n this.tMatrix = new Matrix();\n this.matrix = new Matrix();\n };\n\n RepeaterModifier.prototype.applyTransforms = function (pMatrix, rMatrix, sMatrix, transform, perc, inv) {\n var dir = inv ? -1 : 1;\n var scaleX = transform.s.v[0] + (1 - transform.s.v[0]) * (1 - perc);\n var scaleY = transform.s.v[1] + (1 - transform.s.v[1]) * (1 - perc);\n pMatrix.translate(transform.p.v[0] * dir * perc, transform.p.v[1] * dir * perc, transform.p.v[2]);\n rMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);\n rMatrix.rotate(-transform.r.v * dir * perc);\n rMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);\n sMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);\n sMatrix.scale(inv ? 1 / scaleX : scaleX, inv ? 1 / scaleY : scaleY);\n sMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);\n };\n\n RepeaterModifier.prototype.init = function (elem, arr, pos, elemsData) {\n this.elem = elem;\n this.arr = arr;\n this.pos = pos;\n this.elemsData = elemsData;\n this._currentCopies = 0;\n this._elements = [];\n this._groups = [];\n this.frameId = -1;\n this.initDynamicPropertyContainer(elem);\n this.initModifierProperties(elem, arr[pos]);\n\n while (pos > 0) {\n pos -= 1; // this._elements.unshift(arr.splice(pos,1)[0]);\n\n this._elements.unshift(arr[pos]);\n }\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.getValue(true);\n }\n };\n\n RepeaterModifier.prototype.resetElements = function (elements) {\n var i;\n var len = elements.length;\n\n for (i = 0; i < len; i += 1) {\n elements[i]._processed = false;\n\n if (elements[i].ty === 'gr') {\n this.resetElements(elements[i].it);\n }\n }\n };\n\n RepeaterModifier.prototype.cloneElements = function (elements) {\n var newElements = JSON.parse(JSON.stringify(elements));\n this.resetElements(newElements);\n return newElements;\n };\n\n RepeaterModifier.prototype.changeGroupRender = function (elements, renderFlag) {\n var i;\n var len = elements.length;\n\n for (i = 0; i < len; i += 1) {\n elements[i]._render = renderFlag;\n\n if (elements[i].ty === 'gr') {\n this.changeGroupRender(elements[i].it, renderFlag);\n }\n }\n };\n\n RepeaterModifier.prototype.processShapes = function (_isFirstFrame) {\n var items;\n var itemsTransform;\n var i;\n var dir;\n var cont;\n var hasReloaded = false;\n\n if (this._mdf || _isFirstFrame) {\n var copies = Math.ceil(this.c.v);\n\n if (this._groups.length < copies) {\n while (this._groups.length < copies) {\n var group = {\n it: this.cloneElements(this._elements),\n ty: 'gr'\n };\n group.it.push({\n a: {\n a: 0,\n ix: 1,\n k: [0, 0]\n },\n nm: 'Transform',\n o: {\n a: 0,\n ix: 7,\n k: 100\n },\n p: {\n a: 0,\n ix: 2,\n k: [0, 0]\n },\n r: {\n a: 1,\n ix: 6,\n k: [{\n s: 0,\n e: 0,\n t: 0\n }, {\n s: 0,\n e: 0,\n t: 1\n }]\n },\n s: {\n a: 0,\n ix: 3,\n k: [100, 100]\n },\n sa: {\n a: 0,\n ix: 5,\n k: 0\n },\n sk: {\n a: 0,\n ix: 4,\n k: 0\n },\n ty: 'tr'\n });\n this.arr.splice(0, 0, group);\n\n this._groups.splice(0, 0, group);\n\n this._currentCopies += 1;\n }\n\n this.elem.reloadShapes();\n hasReloaded = true;\n }\n\n cont = 0;\n var renderFlag;\n\n for (i = 0; i <= this._groups.length - 1; i += 1) {\n renderFlag = cont < copies;\n this._groups[i]._render = renderFlag;\n this.changeGroupRender(this._groups[i].it, renderFlag);\n\n if (!renderFlag) {\n var elems = this.elemsData[i].it;\n var transformData = elems[elems.length - 1];\n\n if (transformData.transform.op.v !== 0) {\n transformData.transform.op._mdf = true;\n transformData.transform.op.v = 0;\n } else {\n transformData.transform.op._mdf = false;\n }\n }\n\n cont += 1;\n }\n\n this._currentCopies = copies; /// /\n\n var offset = this.o.v;\n var offsetModulo = offset % 1;\n var roundOffset = offset > 0 ? Math.floor(offset) : Math.ceil(offset);\n var pProps = this.pMatrix.props;\n var rProps = this.rMatrix.props;\n var sProps = this.sMatrix.props;\n this.pMatrix.reset();\n this.rMatrix.reset();\n this.sMatrix.reset();\n this.tMatrix.reset();\n this.matrix.reset();\n var iteration = 0;\n\n if (offset > 0) {\n while (iteration < roundOffset) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false);\n iteration += 1;\n }\n\n if (offsetModulo) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, offsetModulo, false);\n iteration += offsetModulo;\n }\n } else if (offset < 0) {\n while (iteration > roundOffset) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, true);\n iteration -= 1;\n }\n\n if (offsetModulo) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, -offsetModulo, true);\n iteration -= offsetModulo;\n }\n }\n\n i = this.data.m === 1 ? 0 : this._currentCopies - 1;\n dir = this.data.m === 1 ? 1 : -1;\n cont = this._currentCopies;\n var j;\n var jLen;\n\n while (cont) {\n items = this.elemsData[i].it;\n itemsTransform = items[items.length - 1].transform.mProps.v.props;\n jLen = itemsTransform.length;\n items[items.length - 1].transform.mProps._mdf = true;\n items[items.length - 1].transform.op._mdf = true;\n items[items.length - 1].transform.op.v = this._currentCopies === 1 ? this.so.v : this.so.v + (this.eo.v - this.so.v) * (i / (this._currentCopies - 1));\n\n if (iteration !== 0) {\n if (i !== 0 && dir === 1 || i !== this._currentCopies - 1 && dir === -1) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false);\n }\n\n this.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 this.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 this.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 for (j = 0; j < jLen; j += 1) {\n itemsTransform[j] = this.matrix.props[j];\n }\n\n this.matrix.reset();\n } else {\n this.matrix.reset();\n\n for (j = 0; j < jLen; j += 1) {\n itemsTransform[j] = this.matrix.props[j];\n }\n }\n\n iteration += 1;\n cont -= 1;\n i += dir;\n }\n } else {\n cont = this._currentCopies;\n i = 0;\n dir = 1;\n\n while (cont) {\n items = this.elemsData[i].it;\n itemsTransform = items[items.length - 1].transform.mProps.v.props;\n items[items.length - 1].transform.mProps._mdf = false;\n items[items.length - 1].transform.op._mdf = false;\n cont -= 1;\n i += dir;\n }\n }\n\n return hasReloaded;\n };\n\n RepeaterModifier.prototype.addShape = function () {};\n\n function RoundCornersModifier() {}\n\n extendPrototype([ShapeModifier], RoundCornersModifier);\n\n RoundCornersModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.rd = PropertyFactory.getProp(elem, data.r, 0, null, this);\n this._isAnimated = !!this.rd.effectsSequence.length;\n };\n\n RoundCornersModifier.prototype.processPath = function (path, round) {\n var clonedPath = shapePool.newElement();\n clonedPath.c = path.c;\n var i;\n var len = path._length;\n var currentV;\n var currentI;\n var currentO;\n var closerV;\n var distance;\n var newPosPerc;\n var index = 0;\n var vX;\n var vY;\n var oX;\n var oY;\n var iX;\n var iY;\n\n for (i = 0; i < len; i += 1) {\n currentV = path.v[i];\n currentO = path.o[i];\n currentI = path.i[i];\n\n if (currentV[0] === currentO[0] && currentV[1] === currentO[1] && currentV[0] === currentI[0] && currentV[1] === currentI[1]) {\n if ((i === 0 || i === len - 1) && !path.c) {\n clonedPath.setTripleAt(currentV[0], currentV[1], currentO[0], currentO[1], currentI[0], currentI[1], index);\n /* clonedPath.v[index] = currentV;\r\n clonedPath.o[index] = currentO;\r\n clonedPath.i[index] = currentI; */\n\n index += 1;\n } else {\n if (i === 0) {\n closerV = path.v[len - 1];\n } else {\n closerV = path.v[i - 1];\n }\n\n distance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));\n newPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;\n iX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;\n vX = iX;\n iY = currentV[1] - (currentV[1] - closerV[1]) * newPosPerc;\n vY = iY;\n oX = vX - (vX - currentV[0]) * roundCorner;\n oY = vY - (vY - currentV[1]) * roundCorner;\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);\n index += 1;\n\n if (i === len - 1) {\n closerV = path.v[0];\n } else {\n closerV = path.v[i + 1];\n }\n\n distance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));\n newPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;\n oX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;\n vX = oX;\n oY = currentV[1] + (closerV[1] - currentV[1]) * newPosPerc;\n vY = oY;\n iX = vX - (vX - currentV[0]) * roundCorner;\n iY = vY - (vY - currentV[1]) * roundCorner;\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);\n index += 1;\n }\n } else {\n clonedPath.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 index += 1;\n }\n }\n\n return clonedPath;\n };\n\n RoundCornersModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var rd = this.rd.v;\n\n if (rd !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], rd));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n function floatEqual(a, b) {\n return Math.abs(a - b) * 100000 <= Math.min(Math.abs(a), Math.abs(b));\n }\n\n function floatZero(f) {\n return Math.abs(f) <= 0.00001;\n }\n\n function lerp(p0, p1, amount) {\n return p0 * (1 - amount) + p1 * amount;\n }\n\n function lerpPoint(p0, p1, amount) {\n return [lerp(p0[0], p1[0], amount), lerp(p0[1], p1[1], amount)];\n }\n\n function quadRoots(a, b, c) {\n // no root\n if (a === 0) return [];\n var s = b * b - 4 * a * c; // Complex roots\n\n if (s < 0) return [];\n var singleRoot = -b / (2 * a); // 1 root\n\n if (s === 0) return [singleRoot];\n var delta = Math.sqrt(s) / (2 * a); // 2 roots\n\n return [singleRoot - delta, singleRoot + delta];\n }\n\n function polynomialCoefficients(p0, p1, p2, p3) {\n return [-p0 + 3 * p1 - 3 * p2 + p3, 3 * p0 - 6 * p1 + 3 * p2, -3 * p0 + 3 * p1, p0];\n }\n\n function singlePoint(p) {\n return new PolynomialBezier(p, p, p, p, false);\n }\n\n function PolynomialBezier(p0, p1, p2, p3, linearize) {\n if (linearize && pointEqual(p0, p1)) {\n p1 = lerpPoint(p0, p3, 1 / 3);\n }\n\n if (linearize && pointEqual(p2, p3)) {\n p2 = lerpPoint(p0, p3, 2 / 3);\n }\n\n var coeffx = polynomialCoefficients(p0[0], p1[0], p2[0], p3[0]);\n var coeffy = polynomialCoefficients(p0[1], p1[1], p2[1], p3[1]);\n this.a = [coeffx[0], coeffy[0]];\n this.b = [coeffx[1], coeffy[1]];\n this.c = [coeffx[2], coeffy[2]];\n this.d = [coeffx[3], coeffy[3]];\n this.points = [p0, p1, p2, p3];\n }\n\n PolynomialBezier.prototype.point = function (t) {\n return [((this.a[0] * t + this.b[0]) * t + this.c[0]) * t + this.d[0], ((this.a[1] * t + this.b[1]) * t + this.c[1]) * t + this.d[1]];\n };\n\n PolynomialBezier.prototype.derivative = function (t) {\n return [(3 * t * this.a[0] + 2 * this.b[0]) * t + this.c[0], (3 * t * this.a[1] + 2 * this.b[1]) * t + this.c[1]];\n };\n\n PolynomialBezier.prototype.tangentAngle = function (t) {\n var p = this.derivative(t);\n return Math.atan2(p[1], p[0]);\n };\n\n PolynomialBezier.prototype.normalAngle = function (t) {\n var p = this.derivative(t);\n return Math.atan2(p[0], p[1]);\n };\n\n PolynomialBezier.prototype.inflectionPoints = function () {\n var denom = this.a[1] * this.b[0] - this.a[0] * this.b[1];\n if (floatZero(denom)) return [];\n var tcusp = -0.5 * (this.a[1] * this.c[0] - this.a[0] * this.c[1]) / denom;\n var square = tcusp * tcusp - 1 / 3 * (this.b[1] * this.c[0] - this.b[0] * this.c[1]) / denom;\n if (square < 0) return [];\n var root = Math.sqrt(square);\n\n if (floatZero(root)) {\n if (root > 0 && root < 1) return [tcusp];\n return [];\n }\n\n return [tcusp - root, tcusp + root].filter(function (r) {\n return r > 0 && r < 1;\n });\n };\n\n PolynomialBezier.prototype.split = function (t) {\n if (t <= 0) return [singlePoint(this.points[0]), this];\n if (t >= 1) return [this, singlePoint(this.points[this.points.length - 1])];\n var p10 = lerpPoint(this.points[0], this.points[1], t);\n var p11 = lerpPoint(this.points[1], this.points[2], t);\n var p12 = lerpPoint(this.points[2], this.points[3], t);\n var p20 = lerpPoint(p10, p11, t);\n var p21 = lerpPoint(p11, p12, t);\n var p3 = lerpPoint(p20, p21, t);\n return [new PolynomialBezier(this.points[0], p10, p20, p3, true), new PolynomialBezier(p3, p21, p12, this.points[3], true)];\n };\n\n function extrema(bez, comp) {\n var min = bez.points[0][comp];\n var max = bez.points[bez.points.length - 1][comp];\n\n if (min > max) {\n var e = max;\n max = min;\n min = e;\n } // Derivative roots to find min/max\n\n\n var f = quadRoots(3 * bez.a[comp], 2 * bez.b[comp], bez.c[comp]);\n\n for (var i = 0; i < f.length; i += 1) {\n if (f[i] > 0 && f[i] < 1) {\n var val = bez.point(f[i])[comp];\n if (val < min) min = val;else if (val > max) max = val;\n }\n }\n\n return {\n min: min,\n max: max\n };\n }\n\n PolynomialBezier.prototype.bounds = function () {\n return {\n x: extrema(this, 0),\n y: extrema(this, 1)\n };\n };\n\n PolynomialBezier.prototype.boundingBox = function () {\n var bounds = this.bounds();\n return {\n left: bounds.x.min,\n right: bounds.x.max,\n top: bounds.y.min,\n bottom: bounds.y.max,\n width: bounds.x.max - bounds.x.min,\n height: bounds.y.max - bounds.y.min,\n cx: (bounds.x.max + bounds.x.min) / 2,\n cy: (bounds.y.max + bounds.y.min) / 2\n };\n };\n\n function intersectData(bez, t1, t2) {\n var box = bez.boundingBox();\n return {\n cx: box.cx,\n cy: box.cy,\n width: box.width,\n height: box.height,\n bez: bez,\n t: (t1 + t2) / 2,\n t1: t1,\n t2: t2\n };\n }\n\n function splitData(data) {\n var split = data.bez.split(0.5);\n return [intersectData(split[0], data.t1, data.t), intersectData(split[1], data.t, data.t2)];\n }\n\n function boxIntersect(b1, b2) {\n return Math.abs(b1.cx - b2.cx) * 2 < b1.width + b2.width && Math.abs(b1.cy - b2.cy) * 2 < b1.height + b2.height;\n }\n\n function intersectsImpl(d1, d2, depth, tolerance, intersections, maxRecursion) {\n if (!boxIntersect(d1, d2)) return;\n\n if (depth >= maxRecursion || d1.width <= tolerance && d1.height <= tolerance && d2.width <= tolerance && d2.height <= tolerance) {\n intersections.push([d1.t, d2.t]);\n return;\n }\n\n var d1s = splitData(d1);\n var d2s = splitData(d2);\n intersectsImpl(d1s[0], d2s[0], depth + 1, tolerance, intersections, maxRecursion);\n intersectsImpl(d1s[0], d2s[1], depth + 1, tolerance, intersections, maxRecursion);\n intersectsImpl(d1s[1], d2s[0], depth + 1, tolerance, intersections, maxRecursion);\n intersectsImpl(d1s[1], d2s[1], depth + 1, tolerance, intersections, maxRecursion);\n }\n\n PolynomialBezier.prototype.intersections = function (other, tolerance, maxRecursion) {\n if (tolerance === undefined) tolerance = 2;\n if (maxRecursion === undefined) maxRecursion = 7;\n var intersections = [];\n intersectsImpl(intersectData(this, 0, 1), intersectData(other, 0, 1), 0, tolerance, intersections, maxRecursion);\n return intersections;\n };\n\n PolynomialBezier.shapeSegment = function (shapePath, index) {\n var nextIndex = (index + 1) % shapePath.length();\n return new PolynomialBezier(shapePath.v[index], shapePath.o[index], shapePath.i[nextIndex], shapePath.v[nextIndex], true);\n };\n\n PolynomialBezier.shapeSegmentInverted = function (shapePath, index) {\n var nextIndex = (index + 1) % shapePath.length();\n return new PolynomialBezier(shapePath.v[nextIndex], shapePath.i[nextIndex], shapePath.o[index], shapePath.v[index], true);\n };\n\n function crossProduct(a, b) {\n return [a[1] * b[2] - a[2] * b[1], a[2] * b[0] - a[0] * b[2], a[0] * b[1] - a[1] * b[0]];\n }\n\n function lineIntersection(start1, end1, start2, end2) {\n var v1 = [start1[0], start1[1], 1];\n var v2 = [end1[0], end1[1], 1];\n var v3 = [start2[0], start2[1], 1];\n var v4 = [end2[0], end2[1], 1];\n var r = crossProduct(crossProduct(v1, v2), crossProduct(v3, v4));\n if (floatZero(r[2])) return null;\n return [r[0] / r[2], r[1] / r[2]];\n }\n\n function polarOffset(p, angle, length) {\n return [p[0] + Math.cos(angle) * length, p[1] - Math.sin(angle) * length];\n }\n\n function pointDistance(p1, p2) {\n return Math.hypot(p1[0] - p2[0], p1[1] - p2[1]);\n }\n\n function pointEqual(p1, p2) {\n return floatEqual(p1[0], p2[0]) && floatEqual(p1[1], p2[1]);\n }\n\n function ZigZagModifier() {}\n\n extendPrototype([ShapeModifier], ZigZagModifier);\n\n ZigZagModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.amplitude = PropertyFactory.getProp(elem, data.s, 0, null, this);\n this.frequency = PropertyFactory.getProp(elem, data.r, 0, null, this);\n this.pointsType = PropertyFactory.getProp(elem, data.pt, 0, null, this);\n this._isAnimated = this.amplitude.effectsSequence.length !== 0 || this.frequency.effectsSequence.length !== 0 || this.pointsType.effectsSequence.length !== 0;\n };\n\n function setPoint(outputBezier, point, angle, direction, amplitude, outAmplitude, inAmplitude) {\n var angO = angle - Math.PI / 2;\n var angI = angle + Math.PI / 2;\n var px = point[0] + Math.cos(angle) * direction * amplitude;\n var py = point[1] - Math.sin(angle) * direction * amplitude;\n outputBezier.setTripleAt(px, py, px + Math.cos(angO) * outAmplitude, py - Math.sin(angO) * outAmplitude, px + Math.cos(angI) * inAmplitude, py - Math.sin(angI) * inAmplitude, outputBezier.length());\n }\n\n function getPerpendicularVector(pt1, pt2) {\n var vector = [pt2[0] - pt1[0], pt2[1] - pt1[1]];\n var rot = -Math.PI * 0.5;\n var rotatedVector = [Math.cos(rot) * vector[0] - Math.sin(rot) * vector[1], Math.sin(rot) * vector[0] + Math.cos(rot) * vector[1]];\n return rotatedVector;\n }\n\n function getProjectingAngle(path, cur) {\n var prevIndex = cur === 0 ? path.length() - 1 : cur - 1;\n var nextIndex = (cur + 1) % path.length();\n var prevPoint = path.v[prevIndex];\n var nextPoint = path.v[nextIndex];\n var pVector = getPerpendicularVector(prevPoint, nextPoint);\n return Math.atan2(0, 1) - Math.atan2(pVector[1], pVector[0]);\n }\n\n function zigZagCorner(outputBezier, path, cur, amplitude, frequency, pointType, direction) {\n var angle = getProjectingAngle(path, cur);\n var point = path.v[cur % path._length];\n var prevPoint = path.v[cur === 0 ? path._length - 1 : cur - 1];\n var nextPoint = path.v[(cur + 1) % path._length];\n var prevDist = pointType === 2 ? Math.sqrt(Math.pow(point[0] - prevPoint[0], 2) + Math.pow(point[1] - prevPoint[1], 2)) : 0;\n var nextDist = pointType === 2 ? Math.sqrt(Math.pow(point[0] - nextPoint[0], 2) + Math.pow(point[1] - nextPoint[1], 2)) : 0;\n setPoint(outputBezier, path.v[cur % path._length], angle, direction, amplitude, nextDist / ((frequency + 1) * 2), prevDist / ((frequency + 1) * 2), pointType);\n }\n\n function zigZagSegment(outputBezier, segment, amplitude, frequency, pointType, direction) {\n for (var i = 0; i < frequency; i += 1) {\n var t = (i + 1) / (frequency + 1);\n var dist = pointType === 2 ? Math.sqrt(Math.pow(segment.points[3][0] - segment.points[0][0], 2) + Math.pow(segment.points[3][1] - segment.points[0][1], 2)) : 0;\n var angle = segment.normalAngle(t);\n var point = segment.point(t);\n setPoint(outputBezier, point, angle, direction, amplitude, dist / ((frequency + 1) * 2), dist / ((frequency + 1) * 2), pointType);\n direction = -direction;\n }\n\n return direction;\n }\n\n ZigZagModifier.prototype.processPath = function (path, amplitude, frequency, pointType) {\n var count = path._length;\n var clonedPath = shapePool.newElement();\n clonedPath.c = path.c;\n\n if (!path.c) {\n count -= 1;\n }\n\n if (count === 0) return clonedPath;\n var direction = -1;\n var segment = PolynomialBezier.shapeSegment(path, 0);\n zigZagCorner(clonedPath, path, 0, amplitude, frequency, pointType, direction);\n\n for (var i = 0; i < count; i += 1) {\n direction = zigZagSegment(clonedPath, segment, amplitude, frequency, pointType, -direction);\n\n if (i === count - 1 && !path.c) {\n segment = null;\n } else {\n segment = PolynomialBezier.shapeSegment(path, (i + 1) % count);\n }\n\n zigZagCorner(clonedPath, path, i + 1, amplitude, frequency, pointType, direction);\n }\n\n return clonedPath;\n };\n\n ZigZagModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var amplitude = this.amplitude.v;\n var frequency = Math.max(0, Math.round(this.frequency.v));\n var pointType = this.pointsType.v;\n\n if (amplitude !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], amplitude, frequency, pointType));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n function linearOffset(p1, p2, amount) {\n var angle = Math.atan2(p2[0] - p1[0], p2[1] - p1[1]);\n return [polarOffset(p1, angle, amount), polarOffset(p2, angle, amount)];\n }\n\n function offsetSegment(segment, amount) {\n var p0;\n var p1a;\n var p1b;\n var p2b;\n var p2a;\n var p3;\n var e;\n e = linearOffset(segment.points[0], segment.points[1], amount);\n p0 = e[0];\n p1a = e[1];\n e = linearOffset(segment.points[1], segment.points[2], amount);\n p1b = e[0];\n p2b = e[1];\n e = linearOffset(segment.points[2], segment.points[3], amount);\n p2a = e[0];\n p3 = e[1];\n var p1 = lineIntersection(p0, p1a, p1b, p2b);\n if (p1 === null) p1 = p1a;\n var p2 = lineIntersection(p2a, p3, p1b, p2b);\n if (p2 === null) p2 = p2a;\n return new PolynomialBezier(p0, p1, p2, p3);\n }\n\n function joinLines(outputBezier, seg1, seg2, lineJoin, miterLimit) {\n var p0 = seg1.points[3];\n var p1 = seg2.points[0]; // Bevel\n\n if (lineJoin === 3) return p0; // Connected, they don't need a joint\n\n if (pointEqual(p0, p1)) return p0; // Round\n\n if (lineJoin === 2) {\n var angleOut = -seg1.tangentAngle(1);\n var angleIn = -seg2.tangentAngle(0) + Math.PI;\n var center = lineIntersection(p0, polarOffset(p0, angleOut + Math.PI / 2, 100), p1, polarOffset(p1, angleOut + Math.PI / 2, 100));\n var radius = center ? pointDistance(center, p0) : pointDistance(p0, p1) / 2;\n var tan = polarOffset(p0, angleOut, 2 * radius * roundCorner);\n outputBezier.setXYAt(tan[0], tan[1], 'o', outputBezier.length() - 1);\n tan = polarOffset(p1, angleIn, 2 * radius * roundCorner);\n outputBezier.setTripleAt(p1[0], p1[1], p1[0], p1[1], tan[0], tan[1], outputBezier.length());\n return p1;\n } // Miter\n\n\n var t0 = pointEqual(p0, seg1.points[2]) ? seg1.points[0] : seg1.points[2];\n var t1 = pointEqual(p1, seg2.points[1]) ? seg2.points[3] : seg2.points[1];\n var intersection = lineIntersection(t0, p0, p1, t1);\n\n if (intersection && pointDistance(intersection, p0) < miterLimit) {\n outputBezier.setTripleAt(intersection[0], intersection[1], intersection[0], intersection[1], intersection[0], intersection[1], outputBezier.length());\n return intersection;\n }\n\n return p0;\n }\n\n function getIntersection(a, b) {\n var intersect = a.intersections(b);\n if (intersect.length && floatEqual(intersect[0][0], 1)) intersect.shift();\n if (intersect.length) return intersect[0];\n return null;\n }\n\n function pruneSegmentIntersection(a, b) {\n var outa = a.slice();\n var outb = b.slice();\n var intersect = getIntersection(a[a.length - 1], b[0]);\n\n if (intersect) {\n outa[a.length - 1] = a[a.length - 1].split(intersect[0])[0];\n outb[0] = b[0].split(intersect[1])[1];\n }\n\n if (a.length > 1 && b.length > 1) {\n intersect = getIntersection(a[0], b[b.length - 1]);\n\n if (intersect) {\n return [[a[0].split(intersect[0])[0]], [b[b.length - 1].split(intersect[1])[1]]];\n }\n }\n\n return [outa, outb];\n }\n\n function pruneIntersections(segments) {\n var e;\n\n for (var i = 1; i < segments.length; i += 1) {\n e = pruneSegmentIntersection(segments[i - 1], segments[i]);\n segments[i - 1] = e[0];\n segments[i] = e[1];\n }\n\n if (segments.length > 1) {\n e = pruneSegmentIntersection(segments[segments.length - 1], segments[0]);\n segments[segments.length - 1] = e[0];\n segments[0] = e[1];\n }\n\n return segments;\n }\n\n function offsetSegmentSplit(segment, amount) {\n /*\r\n We split each bezier segment into smaller pieces based\r\n on inflection points, this ensures the control point\r\n polygon is convex.\r\n (A cubic bezier can have none, one, or two inflection points)\r\n */\n var flex = segment.inflectionPoints();\n var left;\n var right;\n var split;\n var mid;\n\n if (flex.length === 0) {\n return [offsetSegment(segment, amount)];\n }\n\n if (flex.length === 1 || floatEqual(flex[1], 1)) {\n split = segment.split(flex[0]);\n left = split[0];\n right = split[1];\n return [offsetSegment(left, amount), offsetSegment(right, amount)];\n }\n\n split = segment.split(flex[0]);\n left = split[0];\n var t = (flex[1] - flex[0]) / (1 - flex[0]);\n split = split[1].split(t);\n mid = split[0];\n right = split[1];\n return [offsetSegment(left, amount), offsetSegment(mid, amount), offsetSegment(right, amount)];\n }\n\n function OffsetPathModifier() {}\n\n extendPrototype([ShapeModifier], OffsetPathModifier);\n\n OffsetPathModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.amount = PropertyFactory.getProp(elem, data.a, 0, null, this);\n this.miterLimit = PropertyFactory.getProp(elem, data.ml, 0, null, this);\n this.lineJoin = data.lj;\n this._isAnimated = this.amount.effectsSequence.length !== 0;\n };\n\n OffsetPathModifier.prototype.processPath = function (inputBezier, amount, lineJoin, miterLimit) {\n var outputBezier = shapePool.newElement();\n outputBezier.c = inputBezier.c;\n var count = inputBezier.length();\n\n if (!inputBezier.c) {\n count -= 1;\n }\n\n var i;\n var j;\n var segment;\n var multiSegments = [];\n\n for (i = 0; i < count; i += 1) {\n segment = PolynomialBezier.shapeSegment(inputBezier, i);\n multiSegments.push(offsetSegmentSplit(segment, amount));\n }\n\n if (!inputBezier.c) {\n for (i = count - 1; i >= 0; i -= 1) {\n segment = PolynomialBezier.shapeSegmentInverted(inputBezier, i);\n multiSegments.push(offsetSegmentSplit(segment, amount));\n }\n }\n\n multiSegments = pruneIntersections(multiSegments); // Add bezier segments to the output and apply line joints\n\n var lastPoint = null;\n var lastSeg = null;\n\n for (i = 0; i < multiSegments.length; i += 1) {\n var multiSegment = multiSegments[i];\n if (lastSeg) lastPoint = joinLines(outputBezier, lastSeg, multiSegment[0], lineJoin, miterLimit);\n lastSeg = multiSegment[multiSegment.length - 1];\n\n for (j = 0; j < multiSegment.length; j += 1) {\n segment = multiSegment[j];\n\n if (lastPoint && pointEqual(segment.points[0], lastPoint)) {\n outputBezier.setXYAt(segment.points[1][0], segment.points[1][1], 'o', outputBezier.length() - 1);\n } else {\n outputBezier.setTripleAt(segment.points[0][0], segment.points[0][1], segment.points[1][0], segment.points[1][1], segment.points[0][0], segment.points[0][1], outputBezier.length());\n }\n\n outputBezier.setTripleAt(segment.points[3][0], segment.points[3][1], segment.points[3][0], segment.points[3][1], segment.points[2][0], segment.points[2][1], outputBezier.length());\n lastPoint = segment.points[3];\n }\n }\n\n if (multiSegments.length) joinLines(outputBezier, lastSeg, multiSegments[0][0], lineJoin, miterLimit);\n return outputBezier;\n };\n\n OffsetPathModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var amount = this.amount.v;\n var miterLimit = this.miterLimit.v;\n var lineJoin = this.lineJoin;\n\n if (amount !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], amount, lineJoin, miterLimit));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n function getFontProperties(fontData) {\n var styles = fontData.fStyle ? fontData.fStyle.split(' ') : [];\n var fWeight = 'normal';\n var fStyle = 'normal';\n var len = styles.length;\n var styleName;\n\n for (var i = 0; i < len; i += 1) {\n styleName = styles[i].toLowerCase();\n\n switch (styleName) {\n case 'italic':\n fStyle = 'italic';\n break;\n\n case 'bold':\n fWeight = '700';\n break;\n\n case 'black':\n fWeight = '900';\n break;\n\n case 'medium':\n fWeight = '500';\n break;\n\n case 'regular':\n case 'normal':\n fWeight = '400';\n break;\n\n case 'light':\n case 'thin':\n fWeight = '200';\n break;\n\n default:\n break;\n }\n }\n\n return {\n style: fStyle,\n weight: fontData.fWeight || fWeight\n };\n }\n\n var FontManager = function () {\n var maxWaitingTime = 5000;\n var emptyChar = {\n w: 0,\n size: 0,\n shapes: [],\n data: {\n shapes: []\n }\n };\n var combinedCharacters = []; // Hindi characters\n\n combinedCharacters = combinedCharacters.concat([2304, 2305, 2306, 2307, 2362, 2363, 2364, 2364, 2366, 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379, 2380, 2381, 2382, 2383, 2387, 2388, 2389, 2390, 2391, 2402, 2403]);\n var surrogateModifiers = ['d83cdffb', 'd83cdffc', 'd83cdffd', 'd83cdffe', 'd83cdfff'];\n var zeroWidthJoiner = [65039, 8205];\n\n function trimFontOptions(font) {\n var familyArray = font.split(',');\n var i;\n var len = familyArray.length;\n var enabledFamilies = [];\n\n for (i = 0; i < len; i += 1) {\n if (familyArray[i] !== 'sans-serif' && familyArray[i] !== 'monospace') {\n enabledFamilies.push(familyArray[i]);\n }\n }\n\n return enabledFamilies.join(',');\n }\n\n function setUpNode(font, family) {\n var parentNode = createTag('span'); // Node is invisible to screen readers.\n\n parentNode.setAttribute('aria-hidden', true);\n parentNode.style.fontFamily = family;\n var node = createTag('span'); // Characters that vary significantly among different fonts\n\n node.innerText = 'giItT1WQy@!-/#'; // Visible - so we can measure it - but not on the screen\n\n parentNode.style.position = 'absolute';\n parentNode.style.left = '-10000px';\n parentNode.style.top = '-10000px'; // Large font size makes even subtle changes obvious\n\n parentNode.style.fontSize = '300px'; // Reset any font properties\n\n parentNode.style.fontVariant = 'normal';\n parentNode.style.fontStyle = 'normal';\n parentNode.style.fontWeight = 'normal';\n parentNode.style.letterSpacing = '0';\n parentNode.appendChild(node);\n document.body.appendChild(parentNode); // Remember width with no applied web font\n\n var width = node.offsetWidth;\n node.style.fontFamily = trimFontOptions(font) + ', ' + family;\n return {\n node: node,\n w: width,\n parent: parentNode\n };\n }\n\n function checkLoadedFonts() {\n var i;\n var len = this.fonts.length;\n var node;\n var w;\n var loadedCount = len;\n\n for (i = 0; i < len; i += 1) {\n if (this.fonts[i].loaded) {\n loadedCount -= 1;\n } else if (this.fonts[i].fOrigin === 'n' || this.fonts[i].origin === 0) {\n this.fonts[i].loaded = true;\n } else {\n node = this.fonts[i].monoCase.node;\n w = this.fonts[i].monoCase.w;\n\n if (node.offsetWidth !== w) {\n loadedCount -= 1;\n this.fonts[i].loaded = true;\n } else {\n node = this.fonts[i].sansCase.node;\n w = this.fonts[i].sansCase.w;\n\n if (node.offsetWidth !== w) {\n loadedCount -= 1;\n this.fonts[i].loaded = true;\n }\n }\n\n if (this.fonts[i].loaded) {\n this.fonts[i].sansCase.parent.parentNode.removeChild(this.fonts[i].sansCase.parent);\n this.fonts[i].monoCase.parent.parentNode.removeChild(this.fonts[i].monoCase.parent);\n }\n }\n }\n\n if (loadedCount !== 0 && Date.now() - this.initTime < maxWaitingTime) {\n setTimeout(this.checkLoadedFontsBinded, 20);\n } else {\n setTimeout(this.setIsLoadedBinded, 10);\n }\n }\n\n function createHelper(fontData, def) {\n var engine = document.body && def ? 'svg' : 'canvas';\n var helper;\n var fontProps = getFontProperties(fontData);\n\n if (engine === 'svg') {\n var tHelper = createNS('text');\n tHelper.style.fontSize = '100px'; // tHelper.style.fontFamily = fontData.fFamily;\n\n tHelper.setAttribute('font-family', fontData.fFamily);\n tHelper.setAttribute('font-style', fontProps.style);\n tHelper.setAttribute('font-weight', fontProps.weight);\n tHelper.textContent = '1';\n\n if (fontData.fClass) {\n tHelper.style.fontFamily = 'inherit';\n tHelper.setAttribute('class', fontData.fClass);\n } else {\n tHelper.style.fontFamily = fontData.fFamily;\n }\n\n def.appendChild(tHelper);\n helper = tHelper;\n } else {\n var tCanvasHelper = new OffscreenCanvas(500, 500).getContext('2d');\n tCanvasHelper.font = fontProps.style + ' ' + fontProps.weight + ' 100px ' + fontData.fFamily;\n helper = tCanvasHelper;\n }\n\n function measure(text) {\n if (engine === 'svg') {\n helper.textContent = text;\n return helper.getComputedTextLength();\n }\n\n return helper.measureText(text).width;\n }\n\n return {\n measureText: measure\n };\n }\n\n function addFonts(fontData, defs) {\n if (!fontData) {\n this.isLoaded = true;\n return;\n }\n\n if (this.chars) {\n this.isLoaded = true;\n this.fonts = fontData.list;\n return;\n }\n\n if (!document.body) {\n this.isLoaded = true;\n fontData.list.forEach(function (data) {\n data.helper = createHelper(data);\n data.cache = {};\n });\n this.fonts = fontData.list;\n return;\n }\n\n var fontArr = fontData.list;\n var i;\n var len = fontArr.length;\n var _pendingFonts = len;\n\n for (i = 0; i < len; i += 1) {\n var shouldLoadFont = true;\n var loadedSelector;\n var j;\n fontArr[i].loaded = false;\n fontArr[i].monoCase = setUpNode(fontArr[i].fFamily, 'monospace');\n fontArr[i].sansCase = setUpNode(fontArr[i].fFamily, 'sans-serif');\n\n if (!fontArr[i].fPath) {\n fontArr[i].loaded = true;\n _pendingFonts -= 1;\n } else if (fontArr[i].fOrigin === 'p' || fontArr[i].origin === 3) {\n loadedSelector = document.querySelectorAll('style[f-forigin=\"p\"][f-family=\"' + fontArr[i].fFamily + '\"], style[f-origin=\"3\"][f-family=\"' + fontArr[i].fFamily + '\"]');\n\n if (loadedSelector.length > 0) {\n shouldLoadFont = false;\n }\n\n if (shouldLoadFont) {\n var s = createTag('style');\n s.setAttribute('f-forigin', fontArr[i].fOrigin);\n s.setAttribute('f-origin', fontArr[i].origin);\n s.setAttribute('f-family', fontArr[i].fFamily);\n s.type = 'text/css';\n s.innerText = '@font-face {font-family: ' + fontArr[i].fFamily + \"; font-style: normal; src: url('\" + fontArr[i].fPath + \"');}\";\n defs.appendChild(s);\n }\n } else if (fontArr[i].fOrigin === 'g' || fontArr[i].origin === 1) {\n loadedSelector = document.querySelectorAll('link[f-forigin=\"g\"], link[f-origin=\"1\"]');\n\n for (j = 0; j < loadedSelector.length; j += 1) {\n if (loadedSelector[j].href.indexOf(fontArr[i].fPath) !== -1) {\n // Font is already loaded\n shouldLoadFont = false;\n }\n }\n\n if (shouldLoadFont) {\n var l = createTag('link');\n l.setAttribute('f-forigin', fontArr[i].fOrigin);\n l.setAttribute('f-origin', fontArr[i].origin);\n l.type = 'text/css';\n l.rel = 'stylesheet';\n l.href = fontArr[i].fPath;\n document.body.appendChild(l);\n }\n } else if (fontArr[i].fOrigin === 't' || fontArr[i].origin === 2) {\n loadedSelector = document.querySelectorAll('script[f-forigin=\"t\"], script[f-origin=\"2\"]');\n\n for (j = 0; j < loadedSelector.length; j += 1) {\n if (fontArr[i].fPath === loadedSelector[j].src) {\n // Font is already loaded\n shouldLoadFont = false;\n }\n }\n\n if (shouldLoadFont) {\n var sc = createTag('link');\n sc.setAttribute('f-forigin', fontArr[i].fOrigin);\n sc.setAttribute('f-origin', fontArr[i].origin);\n sc.setAttribute('rel', 'stylesheet');\n sc.setAttribute('href', fontArr[i].fPath);\n defs.appendChild(sc);\n }\n }\n\n fontArr[i].helper = createHelper(fontArr[i], defs);\n fontArr[i].cache = {};\n this.fonts.push(fontArr[i]);\n }\n\n if (_pendingFonts === 0) {\n this.isLoaded = true;\n } else {\n // On some cases even if the font is loaded, it won't load correctly when measuring text on canvas.\n // Adding this timeout seems to fix it\n setTimeout(this.checkLoadedFonts.bind(this), 100);\n }\n }\n\n function addChars(chars) {\n if (!chars) {\n return;\n }\n\n if (!this.chars) {\n this.chars = [];\n }\n\n var i;\n var len = chars.length;\n var j;\n var jLen = this.chars.length;\n var found;\n\n for (i = 0; i < len; i += 1) {\n j = 0;\n found = false;\n\n while (j < jLen) {\n if (this.chars[j].style === chars[i].style && this.chars[j].fFamily === chars[i].fFamily && this.chars[j].ch === chars[i].ch) {\n found = true;\n }\n\n j += 1;\n }\n\n if (!found) {\n this.chars.push(chars[i]);\n jLen += 1;\n }\n }\n }\n\n function getCharData(_char, style, font) {\n var i = 0;\n var len = this.chars.length;\n\n while (i < len) {\n if (this.chars[i].ch === _char && this.chars[i].style === style && this.chars[i].fFamily === font) {\n return this.chars[i];\n }\n\n i += 1;\n }\n\n if ((typeof _char === 'string' && _char.charCodeAt(0) !== 13 || !_char) && console && console.warn // eslint-disable-line no-console\n && !this._warned) {\n this._warned = true;\n console.warn('Missing character from exported characters list: ', _char, style, font); // eslint-disable-line no-console\n }\n\n return emptyChar;\n }\n\n function measureText(_char2, fontName, size) {\n var fontData = this.getFontByName(fontName);\n\n var index = _char2.charCodeAt(0);\n\n if (!fontData.cache[index + 1]) {\n var tHelper = fontData.helper;\n\n if (_char2 === ' ') {\n var doubleSize = tHelper.measureText('|' + _char2 + '|');\n var singleSize = tHelper.measureText('||');\n fontData.cache[index + 1] = (doubleSize - singleSize) / 100;\n } else {\n fontData.cache[index + 1] = tHelper.measureText(_char2) / 100;\n }\n }\n\n return fontData.cache[index + 1] * size;\n }\n\n function getFontByName(name) {\n var i = 0;\n var len = this.fonts.length;\n\n while (i < len) {\n if (this.fonts[i].fName === name) {\n return this.fonts[i];\n }\n\n i += 1;\n }\n\n return this.fonts[0];\n }\n\n function isModifier(firstCharCode, secondCharCode) {\n var sum = firstCharCode.toString(16) + secondCharCode.toString(16);\n return surrogateModifiers.indexOf(sum) !== -1;\n }\n\n function isZeroWidthJoiner(firstCharCode, secondCharCode) {\n if (!secondCharCode) {\n return firstCharCode === zeroWidthJoiner[1];\n }\n\n return firstCharCode === zeroWidthJoiner[0] && secondCharCode === zeroWidthJoiner[1];\n }\n\n function isCombinedCharacter(_char3) {\n return combinedCharacters.indexOf(_char3) !== -1;\n }\n\n function setIsLoaded() {\n this.isLoaded = true;\n }\n\n var Font = function Font() {\n this.fonts = [];\n this.chars = null;\n this.typekitLoaded = 0;\n this.isLoaded = false;\n this._warned = false;\n this.initTime = Date.now();\n this.setIsLoadedBinded = this.setIsLoaded.bind(this);\n this.checkLoadedFontsBinded = this.checkLoadedFonts.bind(this);\n };\n\n Font.isModifier = isModifier;\n Font.isZeroWidthJoiner = isZeroWidthJoiner;\n Font.isCombinedCharacter = isCombinedCharacter;\n var fontPrototype = {\n addChars: addChars,\n addFonts: addFonts,\n getCharData: getCharData,\n getFontByName: getFontByName,\n measureText: measureText,\n checkLoadedFonts: checkLoadedFonts,\n setIsLoaded: setIsLoaded\n };\n Font.prototype = fontPrototype;\n return Font;\n }();\n\n function SlotManager(animationData) {\n this.animationData = animationData;\n }\n\n SlotManager.prototype.getProp = function (data) {\n if (this.animationData.slots && this.animationData.slots[data.sid]) {\n return Object.assign(data, this.animationData.slots[data.sid].p);\n }\n\n return data;\n };\n\n function slotFactory(animationData) {\n return new SlotManager(animationData);\n }\n\n function RenderableElement() {}\n\n RenderableElement.prototype = {\n initRenderable: function initRenderable() {\n // layer's visibility related to inpoint and outpoint. Rename isVisible to isInRange\n this.isInRange = false; // layer's display state\n\n this.hidden = false; // If layer's transparency equals 0, it can be hidden\n\n this.isTransparent = false; // list of animated components\n\n this.renderableComponents = [];\n },\n addRenderableComponent: function addRenderableComponent(component) {\n if (this.renderableComponents.indexOf(component) === -1) {\n this.renderableComponents.push(component);\n }\n },\n removeRenderableComponent: function removeRenderableComponent(component) {\n if (this.renderableComponents.indexOf(component) !== -1) {\n this.renderableComponents.splice(this.renderableComponents.indexOf(component), 1);\n }\n },\n prepareRenderableFrame: function prepareRenderableFrame(num) {\n this.checkLayerLimits(num);\n },\n checkTransparency: function checkTransparency() {\n if (this.finalTransform.mProp.o.v <= 0) {\n if (!this.isTransparent && this.globalData.renderConfig.hideOnTransparent) {\n this.isTransparent = true;\n this.hide();\n }\n } else if (this.isTransparent) {\n this.isTransparent = false;\n this.show();\n }\n },\n\n /**\r\n * @function\r\n * Initializes frame related properties.\r\n *\r\n * @param {number} num\r\n * current frame number in Layer's time\r\n *\r\n */\n checkLayerLimits: function checkLayerLimits(num) {\n if (this.data.ip - this.data.st <= num && this.data.op - this.data.st > num) {\n if (this.isInRange !== true) {\n this.globalData._mdf = true;\n this._mdf = true;\n this.isInRange = true;\n this.show();\n }\n } else if (this.isInRange !== false) {\n this.globalData._mdf = true;\n this.isInRange = false;\n this.hide();\n }\n },\n renderRenderable: function renderRenderable() {\n var i;\n var len = this.renderableComponents.length;\n\n for (i = 0; i < len; i += 1) {\n this.renderableComponents[i].renderFrame(this._isFirstFrame);\n }\n /* this.maskManager.renderFrame(this.finalTransform.mat);\r\n this.renderableEffectsManager.renderFrame(this._isFirstFrame); */\n\n },\n sourceRectAtTime: function sourceRectAtTime() {\n return {\n top: 0,\n left: 0,\n width: 100,\n height: 100\n };\n },\n getLayerSize: function getLayerSize() {\n if (this.data.ty === 5) {\n return {\n w: this.data.textData.width,\n h: this.data.textData.height\n };\n }\n\n return {\n w: this.data.width,\n h: this.data.height\n };\n }\n };\n\n var getBlendMode = function () {\n var blendModeEnums = {\n 0: 'source-over',\n 1: 'multiply',\n 2: 'screen',\n 3: 'overlay',\n 4: 'darken',\n 5: 'lighten',\n 6: 'color-dodge',\n 7: 'color-burn',\n 8: 'hard-light',\n 9: 'soft-light',\n 10: 'difference',\n 11: 'exclusion',\n 12: 'hue',\n 13: 'saturation',\n 14: 'color',\n 15: 'luminosity'\n };\n return function (mode) {\n return blendModeEnums[mode] || '';\n };\n }();\n\n function SliderEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function AngleEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function ColorEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\n }\n\n function PointEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\n }\n\n function LayerIndexEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function MaskIndexEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function CheckboxEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function NoValueEffect() {\n this.p = {};\n }\n\n function EffectsManager(data, element) {\n var effects = data.ef || [];\n this.effectElements = [];\n var i;\n var len = effects.length;\n var effectItem;\n\n for (i = 0; i < len; i += 1) {\n effectItem = new GroupEffect(effects[i], element);\n this.effectElements.push(effectItem);\n }\n }\n\n function GroupEffect(data, element) {\n this.init(data, element);\n }\n\n extendPrototype([DynamicPropertyContainer], GroupEffect);\n GroupEffect.prototype.getValue = GroupEffect.prototype.iterateDynamicProperties;\n\n GroupEffect.prototype.init = function (data, element) {\n this.data = data;\n this.effectElements = [];\n this.initDynamicPropertyContainer(element);\n var i;\n var len = this.data.ef.length;\n var eff;\n var effects = this.data.ef;\n\n for (i = 0; i < len; i += 1) {\n eff = null;\n\n switch (effects[i].ty) {\n case 0:\n eff = new SliderEffect(effects[i], element, this);\n break;\n\n case 1:\n eff = new AngleEffect(effects[i], element, this);\n break;\n\n case 2:\n eff = new ColorEffect(effects[i], element, this);\n break;\n\n case 3:\n eff = new PointEffect(effects[i], element, this);\n break;\n\n case 4:\n case 7:\n eff = new CheckboxEffect(effects[i], element, this);\n break;\n\n case 10:\n eff = new LayerIndexEffect(effects[i], element, this);\n break;\n\n case 11:\n eff = new MaskIndexEffect(effects[i], element, this);\n break;\n\n case 5:\n eff = new EffectsManager(effects[i], element, this);\n break;\n // case 6:\n\n default:\n eff = new NoValueEffect(effects[i], element, this);\n break;\n }\n\n if (eff) {\n this.effectElements.push(eff);\n }\n }\n };\n\n function BaseElement() {}\n\n BaseElement.prototype = {\n checkMasks: function checkMasks() {\n if (!this.data.hasMask) {\n return false;\n }\n\n var i = 0;\n var len = this.data.masksProperties.length;\n\n while (i < len) {\n if (this.data.masksProperties[i].mode !== 'n' && this.data.masksProperties[i].cl !== false) {\n return true;\n }\n\n i += 1;\n }\n\n return false;\n },\n initExpressions: function initExpressions() {\n var expressionsInterfaces = getExpressionInterfaces();\n\n if (!expressionsInterfaces) {\n return;\n }\n\n var LayerExpressionInterface = expressionsInterfaces('layer');\n var EffectsExpressionInterface = expressionsInterfaces('effects');\n var ShapeExpressionInterface = expressionsInterfaces('shape');\n var TextExpressionInterface = expressionsInterfaces('text');\n var CompExpressionInterface = expressionsInterfaces('comp');\n this.layerInterface = LayerExpressionInterface(this);\n\n if (this.data.hasMask && this.maskManager) {\n this.layerInterface.registerMaskInterface(this.maskManager);\n }\n\n var effectsInterface = EffectsExpressionInterface.createEffectsInterface(this, this.layerInterface);\n this.layerInterface.registerEffectsInterface(effectsInterface);\n\n if (this.data.ty === 0 || this.data.xt) {\n this.compInterface = CompExpressionInterface(this);\n } else if (this.data.ty === 4) {\n this.layerInterface.shapeInterface = ShapeExpressionInterface(this.shapesData, this.itemsData, this.layerInterface);\n this.layerInterface.content = this.layerInterface.shapeInterface;\n } else if (this.data.ty === 5) {\n this.layerInterface.textInterface = TextExpressionInterface(this);\n this.layerInterface.text = this.layerInterface.textInterface;\n }\n },\n setBlendMode: function setBlendMode() {\n var blendModeValue = getBlendMode(this.data.bm);\n var elem = this.baseElement || this.layerElement;\n elem.style['mix-blend-mode'] = blendModeValue;\n },\n initBaseData: function initBaseData(data, globalData, comp) {\n this.globalData = globalData;\n this.comp = comp;\n this.data = data;\n this.layerId = createElementID(); // Stretch factor for old animations missing this property.\n\n if (!this.data.sr) {\n this.data.sr = 1;\n } // effects manager\n\n\n this.effectsManager = new EffectsManager(this.data, this, this.dynamicProperties);\n },\n getType: function getType() {\n return this.type;\n },\n sourceRectAtTime: function sourceRectAtTime() {}\n };\n\n /**\r\n * @file\r\n * Handles element's layer frame update.\r\n * Checks layer in point and out point\r\n *\r\n */\n function FrameElement() {}\n\n FrameElement.prototype = {\n /**\r\n * @function\r\n * Initializes frame related properties.\r\n *\r\n */\n initFrame: function initFrame() {\n // set to true when inpoint is rendered\n this._isFirstFrame = false; // list of animated properties\n\n this.dynamicProperties = []; // If layer has been modified in current tick this will be true\n\n this._mdf = false;\n },\n\n /**\r\n * @function\r\n * Calculates all dynamic values\r\n *\r\n * @param {number} num\r\n * current frame number in Layer's time\r\n * @param {boolean} isVisible\r\n * if layers is currently in range\r\n *\r\n */\n prepareProperties: function prepareProperties(num, isVisible) {\n var i;\n var len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n if (isVisible || this._isParent && this.dynamicProperties[i].propType === 'transform') {\n this.dynamicProperties[i].getValue();\n\n if (this.dynamicProperties[i]._mdf) {\n this.globalData._mdf = true;\n this._mdf = true;\n }\n }\n }\n },\n addDynamicProperty: function addDynamicProperty(prop) {\n if (this.dynamicProperties.indexOf(prop) === -1) {\n this.dynamicProperties.push(prop);\n }\n }\n };\n\n function FootageElement(data, globalData, comp) {\n this.initFrame();\n this.initRenderable();\n this.assetData = globalData.getAssetData(data.refId);\n this.footageData = globalData.imageLoader.getAsset(this.assetData);\n this.initBaseData(data, globalData, comp);\n }\n\n FootageElement.prototype.prepareFrame = function () {};\n\n extendPrototype([RenderableElement, BaseElement, FrameElement], FootageElement);\n\n FootageElement.prototype.getBaseElement = function () {\n return null;\n };\n\n FootageElement.prototype.renderFrame = function () {};\n\n FootageElement.prototype.destroy = function () {};\n\n FootageElement.prototype.initExpressions = function () {\n var expressionsInterfaces = getExpressionInterfaces();\n\n if (!expressionsInterfaces) {\n return;\n }\n\n var FootageInterface = expressionsInterfaces('footage');\n this.layerInterface = FootageInterface(this);\n };\n\n FootageElement.prototype.getFootageData = function () {\n return this.footageData;\n };\n\n function AudioElement(data, globalData, comp) {\n this.initFrame();\n this.initRenderable();\n this.assetData = globalData.getAssetData(data.refId);\n this.initBaseData(data, globalData, comp);\n this._isPlaying = false;\n this._canPlay = false;\n var assetPath = this.globalData.getAssetsPath(this.assetData);\n this.audio = this.globalData.audioController.createAudio(assetPath);\n this._currentTime = 0;\n this.globalData.audioController.addAudio(this);\n this._volumeMultiplier = 1;\n this._volume = 1;\n this._previousVolume = null;\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n this.lv = PropertyFactory.getProp(this, data.au && data.au.lv ? data.au.lv : {\n k: [100]\n }, 1, 0.01, this);\n }\n\n AudioElement.prototype.prepareFrame = function (num) {\n this.prepareRenderableFrame(num, true);\n this.prepareProperties(num, true);\n\n if (!this.tm._placeholder) {\n var timeRemapped = this.tm.v;\n this._currentTime = timeRemapped;\n } else {\n this._currentTime = num / this.data.sr;\n }\n\n this._volume = this.lv.v[0];\n var totalVolume = this._volume * this._volumeMultiplier;\n\n if (this._previousVolume !== totalVolume) {\n this._previousVolume = totalVolume;\n this.audio.volume(totalVolume);\n }\n };\n\n extendPrototype([RenderableElement, BaseElement, FrameElement], AudioElement);\n\n AudioElement.prototype.renderFrame = function () {\n if (this.isInRange && this._canPlay) {\n if (!this._isPlaying) {\n this.audio.play();\n this.audio.seek(this._currentTime / this.globalData.frameRate);\n this._isPlaying = true;\n } else if (!this.audio.playing() || Math.abs(this._currentTime / this.globalData.frameRate - this.audio.seek()) > 0.1) {\n this.audio.seek(this._currentTime / this.globalData.frameRate);\n }\n }\n };\n\n AudioElement.prototype.show = function () {// this.audio.play()\n };\n\n AudioElement.prototype.hide = function () {\n this.audio.pause();\n this._isPlaying = false;\n };\n\n AudioElement.prototype.pause = function () {\n this.audio.pause();\n this._isPlaying = false;\n this._canPlay = false;\n };\n\n AudioElement.prototype.resume = function () {\n this._canPlay = true;\n };\n\n AudioElement.prototype.setRate = function (rateValue) {\n this.audio.rate(rateValue);\n };\n\n AudioElement.prototype.volume = function (volumeValue) {\n this._volumeMultiplier = volumeValue;\n this._previousVolume = volumeValue * this._volume;\n this.audio.volume(this._previousVolume);\n };\n\n AudioElement.prototype.getBaseElement = function () {\n return null;\n };\n\n AudioElement.prototype.destroy = function () {};\n\n AudioElement.prototype.sourceRectAtTime = function () {};\n\n AudioElement.prototype.initExpressions = function () {};\n\n function BaseRenderer() {}\n\n BaseRenderer.prototype.checkLayers = function (num) {\n var i;\n var len = this.layers.length;\n var data;\n this.completeLayers = true;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (!this.elements[i]) {\n data = this.layers[i];\n\n if (data.ip - data.st <= num - this.layers[i].st && data.op - data.st > num - this.layers[i].st) {\n this.buildItem(i);\n }\n }\n\n this.completeLayers = this.elements[i] ? this.completeLayers : false;\n }\n\n this.checkPendingElements();\n };\n\n BaseRenderer.prototype.createItem = function (layer) {\n switch (layer.ty) {\n case 2:\n return this.createImage(layer);\n\n case 0:\n return this.createComp(layer);\n\n case 1:\n return this.createSolid(layer);\n\n case 3:\n return this.createNull(layer);\n\n case 4:\n return this.createShape(layer);\n\n case 5:\n return this.createText(layer);\n\n case 6:\n return this.createAudio(layer);\n\n case 13:\n return this.createCamera(layer);\n\n case 15:\n return this.createFootage(layer);\n\n default:\n return this.createNull(layer);\n }\n };\n\n BaseRenderer.prototype.createCamera = function () {\n throw new Error('You\\'re using a 3d camera. Try the html renderer.');\n };\n\n BaseRenderer.prototype.createAudio = function (data) {\n return new AudioElement(data, this.globalData, this);\n };\n\n BaseRenderer.prototype.createFootage = function (data) {\n return new FootageElement(data, this.globalData, this);\n };\n\n BaseRenderer.prototype.buildAllItems = function () {\n var i;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n this.buildItem(i);\n }\n\n this.checkPendingElements();\n };\n\n BaseRenderer.prototype.includeLayers = function (newLayers) {\n this.completeLayers = false;\n var i;\n var len = newLayers.length;\n var j;\n var jLen = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n j = 0;\n\n while (j < jLen) {\n if (this.layers[j].id === newLayers[i].id) {\n this.layers[j] = newLayers[i];\n break;\n }\n\n j += 1;\n }\n }\n };\n\n BaseRenderer.prototype.setProjectInterface = function (pInterface) {\n this.globalData.projectInterface = pInterface;\n };\n\n BaseRenderer.prototype.initItems = function () {\n if (!this.globalData.progressiveLoad) {\n this.buildAllItems();\n }\n };\n\n BaseRenderer.prototype.buildElementParenting = function (element, parentName, hierarchy) {\n var elements = this.elements;\n var layers = this.layers;\n var i = 0;\n var len = layers.length;\n\n while (i < len) {\n if (layers[i].ind == parentName) {\n // eslint-disable-line eqeqeq\n if (!elements[i] || elements[i] === true) {\n this.buildItem(i);\n this.addPendingElement(element);\n } else {\n hierarchy.push(elements[i]);\n elements[i].setAsParent();\n\n if (layers[i].parent !== undefined) {\n this.buildElementParenting(element, layers[i].parent, hierarchy);\n } else {\n element.setHierarchy(hierarchy);\n }\n }\n }\n\n i += 1;\n }\n };\n\n BaseRenderer.prototype.addPendingElement = function (element) {\n this.pendingElements.push(element);\n };\n\n BaseRenderer.prototype.searchExtraCompositions = function (assets) {\n var i;\n var len = assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (assets[i].xt) {\n var comp = this.createComp(assets[i]);\n comp.initExpressions();\n this.globalData.projectInterface.registerComposition(comp);\n }\n }\n };\n\n BaseRenderer.prototype.getElementById = function (ind) {\n var i;\n var len = this.elements.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i].data.ind === ind) {\n return this.elements[i];\n }\n }\n\n return null;\n };\n\n BaseRenderer.prototype.getElementByPath = function (path) {\n var pathValue = path.shift();\n var element;\n\n if (typeof pathValue === 'number') {\n element = this.elements[pathValue];\n } else {\n var i;\n var len = this.elements.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i].data.nm === pathValue) {\n element = this.elements[i];\n break;\n }\n }\n }\n\n if (path.length === 0) {\n return element;\n }\n\n return element.getElementByPath(path);\n };\n\n BaseRenderer.prototype.setupGlobalData = function (animData, fontsContainer) {\n this.globalData.fontManager = new FontManager();\n this.globalData.slotManager = slotFactory(animData);\n this.globalData.fontManager.addChars(animData.chars);\n this.globalData.fontManager.addFonts(animData.fonts, fontsContainer);\n this.globalData.getAssetData = this.animationItem.getAssetData.bind(this.animationItem);\n this.globalData.getAssetsPath = this.animationItem.getAssetsPath.bind(this.animationItem);\n this.globalData.imageLoader = this.animationItem.imagePreloader;\n this.globalData.audioController = this.animationItem.audioController;\n this.globalData.frameId = 0;\n this.globalData.frameRate = animData.fr;\n this.globalData.nm = animData.nm;\n this.globalData.compSize = {\n w: animData.w,\n h: animData.h\n };\n };\n\n function TransformElement() {}\n\n TransformElement.prototype = {\n initTransform: function initTransform() {\n this.finalTransform = {\n mProp: this.data.ks ? TransformPropertyFactory.getTransformProperty(this, this.data.ks, this) : {\n o: 0\n },\n _matMdf: false,\n _opMdf: false,\n mat: new Matrix()\n };\n\n if (this.data.ao) {\n this.finalTransform.mProp.autoOriented = true;\n } // TODO: check TYPE 11: Guided elements\n\n\n if (this.data.ty !== 11) {// this.createElements();\n }\n },\n renderTransform: function renderTransform() {\n this.finalTransform._opMdf = this.finalTransform.mProp.o._mdf || this._isFirstFrame;\n this.finalTransform._matMdf = this.finalTransform.mProp._mdf || this._isFirstFrame;\n\n if (this.hierarchy) {\n var mat;\n var finalMat = this.finalTransform.mat;\n var i = 0;\n var len = this.hierarchy.length; // Checking if any of the transformation matrices in the hierarchy chain has changed.\n\n if (!this.finalTransform._matMdf) {\n while (i < len) {\n if (this.hierarchy[i].finalTransform.mProp._mdf) {\n this.finalTransform._matMdf = true;\n break;\n }\n\n i += 1;\n }\n }\n\n if (this.finalTransform._matMdf) {\n mat = this.finalTransform.mProp.v.props;\n finalMat.cloneFromProps(mat);\n\n for (i = 0; i < len; i += 1) {\n mat = this.hierarchy[i].finalTransform.mProp.v.props;\n finalMat.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 }\n }\n }\n },\n globalToLocal: function globalToLocal(pt) {\n var transforms = [];\n transforms.push(this.finalTransform);\n var flag = true;\n var comp = this.comp;\n\n while (flag) {\n if (comp.finalTransform) {\n if (comp.data.hasMask) {\n transforms.splice(0, 0, comp.finalTransform);\n }\n\n comp = comp.comp;\n } else {\n flag = false;\n }\n }\n\n var i;\n var len = transforms.length;\n var ptNew;\n\n for (i = 0; i < len; i += 1) {\n ptNew = transforms[i].mat.applyToPointArray(0, 0, 0); // ptNew = transforms[i].mat.applyToPointArray(pt[0],pt[1],pt[2]);\n\n pt = [pt[0] - ptNew[0], pt[1] - ptNew[1], 0];\n }\n\n return pt;\n },\n mHelper: new Matrix()\n };\n\n function MaskElement(data, element, globalData) {\n this.data = data;\n this.element = element;\n this.globalData = globalData;\n this.storedData = [];\n this.masksProperties = this.data.masksProperties || [];\n this.maskElement = null;\n var defs = this.globalData.defs;\n var i;\n var len = this.masksProperties ? this.masksProperties.length : 0;\n this.viewData = createSizedArray(len);\n this.solidPath = '';\n var path;\n var properties = this.masksProperties;\n var count = 0;\n var currentMasks = [];\n var j;\n var jLen;\n var layerId = createElementID();\n var rect;\n var expansor;\n var feMorph;\n var x;\n var maskType = 'clipPath';\n var maskRef = 'clip-path';\n\n for (i = 0; i < len; i += 1) {\n if (properties[i].mode !== 'a' && properties[i].mode !== 'n' || properties[i].inv || properties[i].o.k !== 100 || properties[i].o.x) {\n maskType = 'mask';\n maskRef = 'mask';\n }\n\n if ((properties[i].mode === 's' || properties[i].mode === 'i') && count === 0) {\n rect = createNS('rect');\n rect.setAttribute('fill', '#ffffff');\n rect.setAttribute('width', this.element.comp.data.w || 0);\n rect.setAttribute('height', this.element.comp.data.h || 0);\n currentMasks.push(rect);\n } else {\n rect = null;\n }\n\n path = createNS('path');\n\n if (properties[i].mode === 'n') {\n // TODO move this to a factory or to a constructor\n this.viewData[i] = {\n op: PropertyFactory.getProp(this.element, properties[i].o, 0, 0.01, this.element),\n prop: ShapePropertyFactory.getShapeProp(this.element, properties[i], 3),\n elem: path,\n lastPath: ''\n };\n defs.appendChild(path);\n } else {\n count += 1;\n path.setAttribute('fill', properties[i].mode === 's' ? '#000000' : '#ffffff');\n path.setAttribute('clip-rule', 'nonzero');\n var filterID;\n\n if (properties[i].x.k !== 0) {\n maskType = 'mask';\n maskRef = 'mask';\n x = PropertyFactory.getProp(this.element, properties[i].x, 0, null, this.element);\n filterID = createElementID();\n expansor = createNS('filter');\n expansor.setAttribute('id', filterID);\n feMorph = createNS('feMorphology');\n feMorph.setAttribute('operator', 'erode');\n feMorph.setAttribute('in', 'SourceGraphic');\n feMorph.setAttribute('radius', '0');\n expansor.appendChild(feMorph);\n defs.appendChild(expansor);\n path.setAttribute('stroke', properties[i].mode === 's' ? '#000000' : '#ffffff');\n } else {\n feMorph = null;\n x = null;\n } // TODO move this to a factory or to a constructor\n\n\n this.storedData[i] = {\n elem: path,\n x: x,\n expan: feMorph,\n lastPath: '',\n lastOperator: '',\n filterId: filterID,\n lastRadius: 0\n };\n\n if (properties[i].mode === 'i') {\n jLen = currentMasks.length;\n var g = createNS('g');\n\n for (j = 0; j < jLen; j += 1) {\n g.appendChild(currentMasks[j]);\n }\n\n var mask = createNS('mask');\n mask.setAttribute('mask-type', 'alpha');\n mask.setAttribute('id', layerId + '_' + count);\n mask.appendChild(path);\n defs.appendChild(mask);\n g.setAttribute('mask', 'url(' + getLocationHref() + '#' + layerId + '_' + count + ')');\n currentMasks.length = 0;\n currentMasks.push(g);\n } else {\n currentMasks.push(path);\n }\n\n if (properties[i].inv && !this.solidPath) {\n this.solidPath = this.createLayerSolidPath();\n } // TODO move this to a factory or to a constructor\n\n\n this.viewData[i] = {\n elem: path,\n lastPath: '',\n op: PropertyFactory.getProp(this.element, properties[i].o, 0, 0.01, this.element),\n prop: ShapePropertyFactory.getShapeProp(this.element, properties[i], 3),\n invRect: rect\n };\n\n if (!this.viewData[i].prop.k) {\n this.drawPath(properties[i], this.viewData[i].prop.v, this.viewData[i]);\n }\n }\n }\n\n this.maskElement = createNS(maskType);\n len = currentMasks.length;\n\n for (i = 0; i < len; i += 1) {\n this.maskElement.appendChild(currentMasks[i]);\n }\n\n if (count > 0) {\n this.maskElement.setAttribute('id', layerId);\n this.element.maskedElement.setAttribute(maskRef, 'url(' + getLocationHref() + '#' + layerId + ')');\n defs.appendChild(this.maskElement);\n }\n\n if (this.viewData.length) {\n this.element.addRenderableComponent(this);\n }\n }\n\n MaskElement.prototype.getMaskProperty = function (pos) {\n return this.viewData[pos].prop;\n };\n\n MaskElement.prototype.renderFrame = function (isFirstFrame) {\n var finalMat = this.element.finalTransform.mat;\n var i;\n var len = this.masksProperties.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.viewData[i].prop._mdf || isFirstFrame) {\n this.drawPath(this.masksProperties[i], this.viewData[i].prop.v, this.viewData[i]);\n }\n\n if (this.viewData[i].op._mdf || isFirstFrame) {\n this.viewData[i].elem.setAttribute('fill-opacity', this.viewData[i].op.v);\n }\n\n if (this.masksProperties[i].mode !== 'n') {\n if (this.viewData[i].invRect && (this.element.finalTransform.mProp._mdf || isFirstFrame)) {\n this.viewData[i].invRect.setAttribute('transform', finalMat.getInverseMatrix().to2dCSS());\n }\n\n if (this.storedData[i].x && (this.storedData[i].x._mdf || isFirstFrame)) {\n var feMorph = this.storedData[i].expan;\n\n if (this.storedData[i].x.v < 0) {\n if (this.storedData[i].lastOperator !== 'erode') {\n this.storedData[i].lastOperator = 'erode';\n this.storedData[i].elem.setAttribute('filter', 'url(' + getLocationHref() + '#' + this.storedData[i].filterId + ')');\n }\n\n feMorph.setAttribute('radius', -this.storedData[i].x.v);\n } else {\n if (this.storedData[i].lastOperator !== 'dilate') {\n this.storedData[i].lastOperator = 'dilate';\n this.storedData[i].elem.setAttribute('filter', null);\n }\n\n this.storedData[i].elem.setAttribute('stroke-width', this.storedData[i].x.v * 2);\n }\n }\n }\n }\n };\n\n MaskElement.prototype.getMaskelement = function () {\n return this.maskElement;\n };\n\n MaskElement.prototype.createLayerSolidPath = function () {\n var path = 'M0,0 ';\n path += ' h' + this.globalData.compSize.w;\n path += ' v' + this.globalData.compSize.h;\n path += ' h-' + this.globalData.compSize.w;\n path += ' v-' + this.globalData.compSize.h + ' ';\n return path;\n };\n\n MaskElement.prototype.drawPath = function (pathData, pathNodes, viewData) {\n var pathString = ' M' + pathNodes.v[0][0] + ',' + pathNodes.v[0][1];\n var i;\n var len;\n len = pathNodes._length;\n\n for (i = 1; i < len; i += 1) {\n // 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 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 } // 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\n\n if (pathNodes.c && len > 1) {\n 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 } // pathNodes.__renderedString = pathString;\n\n\n if (viewData.lastPath !== pathString) {\n var pathShapeValue = '';\n\n if (viewData.elem) {\n if (pathNodes.c) {\n pathShapeValue = pathData.inv ? this.solidPath + pathString : pathString;\n }\n\n viewData.elem.setAttribute('d', pathShapeValue);\n }\n\n viewData.lastPath = pathString;\n }\n };\n\n MaskElement.prototype.destroy = function () {\n this.element = null;\n this.globalData = null;\n this.maskElement = null;\n this.data = null;\n this.masksProperties = null;\n };\n\n var filtersFactory = function () {\n var ob = {};\n ob.createFilter = createFilter;\n ob.createAlphaToLuminanceFilter = createAlphaToLuminanceFilter;\n\n function createFilter(filId, skipCoordinates) {\n var fil = createNS('filter');\n fil.setAttribute('id', filId);\n\n if (skipCoordinates !== true) {\n fil.setAttribute('filterUnits', 'objectBoundingBox');\n fil.setAttribute('x', '0%');\n fil.setAttribute('y', '0%');\n fil.setAttribute('width', '100%');\n fil.setAttribute('height', '100%');\n }\n\n return fil;\n }\n\n function createAlphaToLuminanceFilter() {\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n feColorMatrix.setAttribute('values', '0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1');\n return feColorMatrix;\n }\n\n return ob;\n }();\n\n var featureSupport = function () {\n var ob = {\n maskType: true,\n svgLumaHidden: true,\n offscreenCanvas: typeof OffscreenCanvas !== 'undefined'\n };\n\n if (/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 ob.maskType = false;\n }\n\n if (/firefox/i.test(navigator.userAgent)) {\n ob.svgLumaHidden = false;\n }\n\n return ob;\n }();\n\n var registeredEffects = {};\n var idPrefix = 'filter_result_';\n\n function SVGEffects(elem) {\n var i;\n var source = 'SourceGraphic';\n var len = elem.data.ef ? elem.data.ef.length : 0;\n var filId = createElementID();\n var fil = filtersFactory.createFilter(filId, true);\n var count = 0;\n this.filters = [];\n var filterManager;\n\n for (i = 0; i < len; i += 1) {\n filterManager = null;\n var type = elem.data.ef[i].ty;\n\n if (registeredEffects[type]) {\n var Effect = registeredEffects[type].effect;\n filterManager = new Effect(fil, elem.effectsManager.effectElements[i], elem, idPrefix + count, source);\n source = idPrefix + count;\n\n if (registeredEffects[type].countsAsEffect) {\n count += 1;\n }\n }\n\n if (filterManager) {\n this.filters.push(filterManager);\n }\n }\n\n if (count) {\n elem.globalData.defs.appendChild(fil);\n elem.layerElement.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n }\n\n if (this.filters.length) {\n elem.addRenderableComponent(this);\n }\n }\n\n SVGEffects.prototype.renderFrame = function (_isFirstFrame) {\n var i;\n var len = this.filters.length;\n\n for (i = 0; i < len; i += 1) {\n this.filters[i].renderFrame(_isFirstFrame);\n }\n };\n\n function registerEffect(id, effect, countsAsEffect) {\n registeredEffects[id] = {\n effect: effect,\n countsAsEffect: countsAsEffect\n };\n }\n\n function SVGBaseElement() {}\n\n SVGBaseElement.prototype = {\n initRendererElement: function initRendererElement() {\n this.layerElement = createNS('g');\n },\n createContainerElements: function createContainerElements() {\n this.matteElement = createNS('g');\n this.transformedElement = this.layerElement;\n this.maskedElement = this.layerElement;\n this._sizeChanged = false;\n var layerElementParent = null; // If this layer acts as a mask for the following layer\n\n if (this.data.td) {\n this.matteMasks = {};\n var gg = createNS('g');\n gg.setAttribute('id', this.layerId);\n gg.appendChild(this.layerElement);\n layerElementParent = gg;\n this.globalData.defs.appendChild(gg);\n } else if (this.data.tt) {\n this.matteElement.appendChild(this.layerElement);\n layerElementParent = this.matteElement;\n this.baseElement = this.matteElement;\n } else {\n this.baseElement = this.layerElement;\n }\n\n if (this.data.ln) {\n this.layerElement.setAttribute('id', this.data.ln);\n }\n\n if (this.data.cl) {\n this.layerElement.setAttribute('class', this.data.cl);\n } // Clipping compositions to hide content that exceeds boundaries. If collapsed transformations is on, component should not be clipped\n\n\n if (this.data.ty === 0 && !this.data.hd) {\n var cp = createNS('clipPath');\n var pt = createNS('path');\n pt.setAttribute('d', 'M0,0 L' + this.data.w + ',0 L' + this.data.w + ',' + this.data.h + ' L0,' + this.data.h + 'z');\n var clipId = createElementID();\n cp.setAttribute('id', clipId);\n cp.appendChild(pt);\n this.globalData.defs.appendChild(cp);\n\n if (this.checkMasks()) {\n var cpGroup = createNS('g');\n cpGroup.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + clipId + ')');\n cpGroup.appendChild(this.layerElement);\n this.transformedElement = cpGroup;\n\n if (layerElementParent) {\n layerElementParent.appendChild(this.transformedElement);\n } else {\n this.baseElement = this.transformedElement;\n }\n } else {\n this.layerElement.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + clipId + ')');\n }\n }\n\n if (this.data.bm !== 0) {\n this.setBlendMode();\n }\n },\n renderElement: function renderElement() {\n if (this.finalTransform._matMdf) {\n this.transformedElement.setAttribute('transform', this.finalTransform.mat.to2dCSS());\n }\n\n if (this.finalTransform._opMdf) {\n this.transformedElement.setAttribute('opacity', this.finalTransform.mProp.o.v);\n }\n },\n destroyBaseElement: function destroyBaseElement() {\n this.layerElement = null;\n this.matteElement = null;\n this.maskManager.destroy();\n },\n getBaseElement: function getBaseElement() {\n if (this.data.hd) {\n return null;\n }\n\n return this.baseElement;\n },\n createRenderableComponents: function createRenderableComponents() {\n this.maskManager = new MaskElement(this.data, this, this.globalData);\n this.renderableEffectsManager = new SVGEffects(this);\n },\n getMatte: function getMatte(matteType) {\n // This should not be a common case. But for backward compatibility, we'll create the matte object.\n // It solves animations that have two consecutive layers marked as matte masks.\n // Which is an undefined behavior in AE.\n if (!this.matteMasks) {\n this.matteMasks = {};\n }\n\n if (!this.matteMasks[matteType]) {\n var id = this.layerId + '_' + matteType;\n var filId;\n var fil;\n var useElement;\n var gg;\n\n if (matteType === 1 || matteType === 3) {\n var masker = createNS('mask');\n masker.setAttribute('id', id);\n masker.setAttribute('mask-type', matteType === 3 ? 'luminance' : 'alpha');\n useElement = createNS('use');\n useElement.setAttributeNS('http://www.w3.org/1999/xlink', 'href', '#' + this.layerId);\n masker.appendChild(useElement);\n this.globalData.defs.appendChild(masker);\n\n if (!featureSupport.maskType && matteType === 1) {\n masker.setAttribute('mask-type', 'luminance');\n filId = createElementID();\n fil = filtersFactory.createFilter(filId);\n this.globalData.defs.appendChild(fil);\n fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\n gg = createNS('g');\n gg.appendChild(useElement);\n masker.appendChild(gg);\n gg.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n }\n } else if (matteType === 2) {\n var maskGroup = createNS('mask');\n maskGroup.setAttribute('id', id);\n maskGroup.setAttribute('mask-type', 'alpha');\n var maskGrouper = createNS('g');\n maskGroup.appendChild(maskGrouper);\n filId = createElementID();\n fil = filtersFactory.createFilter(filId); /// /\n\n var feCTr = createNS('feComponentTransfer');\n feCTr.setAttribute('in', 'SourceGraphic');\n fil.appendChild(feCTr);\n var feFunc = createNS('feFuncA');\n feFunc.setAttribute('type', 'table');\n feFunc.setAttribute('tableValues', '1.0 0.0');\n feCTr.appendChild(feFunc); /// /\n\n this.globalData.defs.appendChild(fil);\n var alphaRect = createNS('rect');\n alphaRect.setAttribute('width', this.comp.data.w);\n alphaRect.setAttribute('height', this.comp.data.h);\n alphaRect.setAttribute('x', '0');\n alphaRect.setAttribute('y', '0');\n alphaRect.setAttribute('fill', '#ffffff');\n alphaRect.setAttribute('opacity', '0');\n maskGrouper.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n maskGrouper.appendChild(alphaRect);\n useElement = createNS('use');\n useElement.setAttributeNS('http://www.w3.org/1999/xlink', 'href', '#' + this.layerId);\n maskGrouper.appendChild(useElement);\n\n if (!featureSupport.maskType) {\n maskGroup.setAttribute('mask-type', 'luminance');\n fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\n gg = createNS('g');\n maskGrouper.appendChild(alphaRect);\n gg.appendChild(this.layerElement);\n maskGrouper.appendChild(gg);\n }\n\n this.globalData.defs.appendChild(maskGroup);\n }\n\n this.matteMasks[matteType] = id;\n }\n\n return this.matteMasks[matteType];\n },\n setMatte: function setMatte(id) {\n if (!this.matteElement) {\n return;\n }\n\n this.matteElement.setAttribute('mask', 'url(' + getLocationHref() + '#' + id + ')');\n }\n };\n\n /**\r\n * @file\r\n * Handles AE's layer parenting property.\r\n *\r\n */\n function HierarchyElement() {}\n\n HierarchyElement.prototype = {\n /**\r\n * @function\r\n * Initializes hierarchy properties\r\n *\r\n */\n initHierarchy: function initHierarchy() {\n // element's parent list\n this.hierarchy = []; // if element is parent of another layer _isParent will be true\n\n this._isParent = false;\n this.checkParenting();\n },\n\n /**\r\n * @function\r\n * Sets layer's hierarchy.\r\n * @param {array} hierarch\r\n * layer's parent list\r\n *\r\n */\n setHierarchy: function setHierarchy(hierarchy) {\n this.hierarchy = hierarchy;\n },\n\n /**\r\n * @function\r\n * Sets layer as parent.\r\n *\r\n */\n setAsParent: function setAsParent() {\n this._isParent = true;\n },\n\n /**\r\n * @function\r\n * Searches layer's parenting chain\r\n *\r\n */\n checkParenting: function checkParenting() {\n if (this.data.parent !== undefined) {\n this.comp.buildElementParenting(this, this.data.parent, []);\n }\n }\n };\n\n function RenderableDOMElement() {}\n\n (function () {\n var _prototype = {\n initElement: function initElement(data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n this.initRenderable();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n this.createContent();\n this.hide();\n },\n hide: function hide() {\n // console.log('HIDE', this);\n if (!this.hidden && (!this.isInRange || this.isTransparent)) {\n var elem = this.baseElement || this.layerElement;\n elem.style.display = 'none';\n this.hidden = true;\n }\n },\n show: function show() {\n // console.log('SHOW', this);\n if (this.isInRange && !this.isTransparent) {\n if (!this.data.hd) {\n var elem = this.baseElement || this.layerElement;\n elem.style.display = 'block';\n }\n\n this.hidden = false;\n this._isFirstFrame = true;\n }\n },\n renderFrame: function renderFrame() {\n // If it is exported as hidden (data.hd === true) no need to render\n // If it is not visible no need to render\n if (this.data.hd || this.hidden) {\n return;\n }\n\n this.renderTransform();\n this.renderRenderable();\n this.renderElement();\n this.renderInnerContent();\n\n if (this._isFirstFrame) {\n this._isFirstFrame = false;\n }\n },\n renderInnerContent: function renderInnerContent() {},\n prepareFrame: function prepareFrame(num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n this.checkTransparency();\n },\n destroy: function destroy() {\n this.innerElem = null;\n this.destroyBaseElement();\n }\n };\n extendPrototype([RenderableElement, createProxyFunction(_prototype)], RenderableDOMElement);\n })();\n\n function IImageElement(data, globalData, comp) {\n this.assetData = globalData.getAssetData(data.refId);\n\n if (this.assetData && this.assetData.sid) {\n this.assetData = globalData.slotManager.getProp(this.assetData);\n }\n\n this.initElement(data, globalData, comp);\n this.sourceRect = {\n top: 0,\n left: 0,\n width: this.assetData.w,\n height: this.assetData.h\n };\n }\n\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], IImageElement);\n\n IImageElement.prototype.createContent = function () {\n var assetPath = this.globalData.getAssetsPath(this.assetData);\n this.innerElem = createNS('image');\n this.innerElem.setAttribute('width', this.assetData.w + 'px');\n this.innerElem.setAttribute('height', this.assetData.h + 'px');\n this.innerElem.setAttribute('preserveAspectRatio', this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio);\n this.innerElem.setAttributeNS('http://www.w3.org/1999/xlink', 'href', assetPath);\n this.layerElement.appendChild(this.innerElem);\n };\n\n IImageElement.prototype.sourceRectAtTime = function () {\n return this.sourceRect;\n };\n\n function ProcessedElement(element, position) {\n this.elem = element;\n this.pos = position;\n }\n\n function IShapeElement() {}\n\n IShapeElement.prototype = {\n addShapeToModifiers: function addShapeToModifiers(data) {\n var i;\n var len = this.shapeModifiers.length;\n\n for (i = 0; i < len; i += 1) {\n this.shapeModifiers[i].addShape(data);\n }\n },\n isShapeInAnimatedModifiers: function isShapeInAnimatedModifiers(data) {\n var i = 0;\n var len = this.shapeModifiers.length;\n\n while (i < len) {\n if (this.shapeModifiers[i].isAnimatedWithShape(data)) {\n return true;\n }\n }\n\n return false;\n },\n renderModifiers: function renderModifiers() {\n if (!this.shapeModifiers.length) {\n return;\n }\n\n var i;\n var len = this.shapes.length;\n\n for (i = 0; i < len; i += 1) {\n this.shapes[i].sh.reset();\n }\n\n len = this.shapeModifiers.length;\n var shouldBreakProcess;\n\n for (i = len - 1; i >= 0; i -= 1) {\n shouldBreakProcess = this.shapeModifiers[i].processShapes(this._isFirstFrame); // workaround to fix cases where a repeater resets the shape so the following processes get called twice\n // TODO: find a better solution for this\n\n if (shouldBreakProcess) {\n break;\n }\n }\n },\n searchProcessedElement: function searchProcessedElement(elem) {\n var elements = this.processedElements;\n var i = 0;\n var len = elements.length;\n\n while (i < len) {\n if (elements[i].elem === elem) {\n return elements[i].pos;\n }\n\n i += 1;\n }\n\n return 0;\n },\n addProcessedElement: function addProcessedElement(elem, pos) {\n var elements = this.processedElements;\n var i = elements.length;\n\n while (i) {\n i -= 1;\n\n if (elements[i].elem === elem) {\n elements[i].pos = pos;\n return;\n }\n }\n\n elements.push(new ProcessedElement(elem, pos));\n },\n prepareFrame: function prepareFrame(num) {\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n }\n };\n\n var lineCapEnum = {\n 1: 'butt',\n 2: 'round',\n 3: 'square'\n };\n var lineJoinEnum = {\n 1: 'miter',\n 2: 'round',\n 3: 'bevel'\n };\n\n function SVGShapeData(transformers, level, shape) {\n this.caches = [];\n this.styles = [];\n this.transformers = transformers;\n this.lStr = '';\n this.sh = shape;\n this.lvl = level; // TODO find if there are some cases where _isAnimated can be false.\n // For now, since shapes add up with other shapes. They have to be calculated every time.\n // One way of finding out is checking if all styles associated to this shape depend only of this shape\n\n this._isAnimated = !!shape.k; // TODO: commenting this for now since all shapes are animated\n\n var i = 0;\n var len = transformers.length;\n\n while (i < len) {\n if (transformers[i].mProps.dynamicProperties.length) {\n this._isAnimated = true;\n break;\n }\n\n i += 1;\n }\n }\n\n SVGShapeData.prototype.setAsAnimated = function () {\n this._isAnimated = true;\n };\n\n function SVGStyleData(data, level) {\n this.data = data;\n this.type = data.ty;\n this.d = '';\n this.lvl = level;\n this._mdf = false;\n this.closed = data.hd === true;\n this.pElem = createNS('path');\n this.msElem = null;\n }\n\n SVGStyleData.prototype.reset = function () {\n this.d = '';\n this._mdf = false;\n };\n\n function DashProperty(elem, data, renderer, container) {\n this.elem = elem;\n this.frameId = -1;\n this.dataProps = createSizedArray(data.length);\n this.renderer = renderer;\n this.k = false;\n this.dashStr = '';\n this.dashArray = createTypedArray('float32', data.length ? data.length - 1 : 0);\n this.dashoffset = createTypedArray('float32', 1);\n this.initDynamicPropertyContainer(container);\n var i;\n var len = data.length || 0;\n var prop;\n\n for (i = 0; i < len; i += 1) {\n prop = PropertyFactory.getProp(elem, data[i].v, 0, 0, this);\n this.k = prop.k || this.k;\n this.dataProps[i] = {\n n: data[i].n,\n p: prop\n };\n }\n\n if (!this.k) {\n this.getValue(true);\n }\n\n this._isAnimated = this.k;\n }\n\n DashProperty.prototype.getValue = function (forceRender) {\n if (this.elem.globalData.frameId === this.frameId && !forceRender) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n this._mdf = this._mdf || forceRender;\n\n if (this._mdf) {\n var i = 0;\n var len = this.dataProps.length;\n\n if (this.renderer === 'svg') {\n this.dashStr = '';\n }\n\n for (i = 0; i < len; i += 1) {\n if (this.dataProps[i].n !== 'o') {\n if (this.renderer === 'svg') {\n this.dashStr += ' ' + this.dataProps[i].p.v;\n } else {\n this.dashArray[i] = this.dataProps[i].p.v;\n }\n } else {\n this.dashoffset[0] = this.dataProps[i].p.v;\n }\n }\n }\n };\n\n extendPrototype([DynamicPropertyContainer], DashProperty);\n\n function SVGStrokeStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.w = PropertyFactory.getProp(elem, data.w, 0, null, this);\n this.d = new DashProperty(elem, data.d || {}, 'svg', this);\n this.c = PropertyFactory.getProp(elem, data.c, 1, 255, this);\n this.style = styleOb;\n this._isAnimated = !!this._isAnimated;\n }\n\n extendPrototype([DynamicPropertyContainer], SVGStrokeStyleData);\n\n function SVGFillStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.c = PropertyFactory.getProp(elem, data.c, 1, 255, this);\n this.style = styleOb;\n }\n\n extendPrototype([DynamicPropertyContainer], SVGFillStyleData);\n\n function SVGNoStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.style = styleOb;\n }\n\n extendPrototype([DynamicPropertyContainer], SVGNoStyleData);\n\n function GradientProperty(elem, data, container) {\n this.data = data;\n this.c = createTypedArray('uint8c', data.p * 4);\n var cLength = data.k.k[0].s ? data.k.k[0].s.length - data.p * 4 : data.k.k.length - data.p * 4;\n this.o = createTypedArray('float32', cLength);\n this._cmdf = false;\n this._omdf = false;\n this._collapsable = this.checkCollapsable();\n this._hasOpacity = cLength;\n this.initDynamicPropertyContainer(container);\n this.prop = PropertyFactory.getProp(elem, data.k, 1, null, this);\n this.k = this.prop.k;\n this.getValue(true);\n }\n\n GradientProperty.prototype.comparePoints = function (values, points) {\n var i = 0;\n var len = this.o.length / 2;\n var diff;\n\n while (i < len) {\n diff = Math.abs(values[i * 4] - values[points * 4 + i * 2]);\n\n if (diff > 0.01) {\n return false;\n }\n\n i += 1;\n }\n\n return true;\n };\n\n GradientProperty.prototype.checkCollapsable = function () {\n if (this.o.length / 2 !== this.c.length / 4) {\n return false;\n }\n\n if (this.data.k.k[0].s) {\n var i = 0;\n var len = this.data.k.k.length;\n\n while (i < len) {\n if (!this.comparePoints(this.data.k.k[i].s, this.data.p)) {\n return false;\n }\n\n i += 1;\n }\n } else if (!this.comparePoints(this.data.k.k, this.data.p)) {\n return false;\n }\n\n return true;\n };\n\n GradientProperty.prototype.getValue = function (forceRender) {\n this.prop.getValue();\n this._mdf = false;\n this._cmdf = false;\n this._omdf = false;\n\n if (this.prop._mdf || forceRender) {\n var i;\n var len = this.data.p * 4;\n var mult;\n var val;\n\n for (i = 0; i < len; i += 1) {\n mult = i % 4 === 0 ? 100 : 255;\n val = Math.round(this.prop.v[i] * mult);\n\n if (this.c[i] !== val) {\n this.c[i] = val;\n this._cmdf = !forceRender;\n }\n }\n\n if (this.o.length) {\n len = this.prop.v.length;\n\n for (i = this.data.p * 4; i < len; i += 1) {\n mult = i % 2 === 0 ? 100 : 1;\n val = i % 2 === 0 ? Math.round(this.prop.v[i] * 100) : this.prop.v[i];\n\n if (this.o[i - this.data.p * 4] !== val) {\n this.o[i - this.data.p * 4] = val;\n this._omdf = !forceRender;\n }\n }\n }\n\n this._mdf = !forceRender;\n }\n };\n\n extendPrototype([DynamicPropertyContainer], GradientProperty);\n\n function SVGGradientFillStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.initGradientData(elem, data, styleOb);\n }\n\n SVGGradientFillStyleData.prototype.initGradientData = function (elem, data, styleOb) {\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, null, this);\n this.e = PropertyFactory.getProp(elem, data.e, 1, null, this);\n this.h = PropertyFactory.getProp(elem, data.h || {\n k: 0\n }, 0, 0.01, this);\n this.a = PropertyFactory.getProp(elem, data.a || {\n k: 0\n }, 0, degToRads, this);\n this.g = new GradientProperty(elem, data.g, this);\n this.style = styleOb;\n this.stops = [];\n this.setGradientData(styleOb.pElem, data);\n this.setGradientOpacity(data, styleOb);\n this._isAnimated = !!this._isAnimated;\n };\n\n SVGGradientFillStyleData.prototype.setGradientData = function (pathElement, data) {\n var gradientId = createElementID();\n var gfill = createNS(data.t === 1 ? 'linearGradient' : 'radialGradient');\n gfill.setAttribute('id', gradientId);\n gfill.setAttribute('spreadMethod', 'pad');\n gfill.setAttribute('gradientUnits', 'userSpaceOnUse');\n var stops = [];\n var stop;\n var j;\n var jLen;\n jLen = data.g.p * 4;\n\n for (j = 0; j < jLen; j += 4) {\n stop = createNS('stop');\n gfill.appendChild(stop);\n stops.push(stop);\n }\n\n pathElement.setAttribute(data.ty === 'gf' ? 'fill' : 'stroke', 'url(' + getLocationHref() + '#' + gradientId + ')');\n this.gf = gfill;\n this.cst = stops;\n };\n\n SVGGradientFillStyleData.prototype.setGradientOpacity = function (data, styleOb) {\n if (this.g._hasOpacity && !this.g._collapsable) {\n var stop;\n var j;\n var jLen;\n var mask = createNS('mask');\n var maskElement = createNS('path');\n mask.appendChild(maskElement);\n var opacityId = createElementID();\n var maskId = createElementID();\n mask.setAttribute('id', maskId);\n var opFill = createNS(data.t === 1 ? 'linearGradient' : 'radialGradient');\n opFill.setAttribute('id', opacityId);\n opFill.setAttribute('spreadMethod', 'pad');\n opFill.setAttribute('gradientUnits', 'userSpaceOnUse');\n jLen = data.g.k.k[0].s ? data.g.k.k[0].s.length : data.g.k.k.length;\n var stops = this.stops;\n\n for (j = data.g.p * 4; j < jLen; j += 2) {\n stop = createNS('stop');\n stop.setAttribute('stop-color', 'rgb(255,255,255)');\n opFill.appendChild(stop);\n stops.push(stop);\n }\n\n maskElement.setAttribute(data.ty === 'gf' ? 'fill' : 'stroke', 'url(' + getLocationHref() + '#' + opacityId + ')');\n\n if (data.ty === 'gs') {\n maskElement.setAttribute('stroke-linecap', lineCapEnum[data.lc || 2]);\n maskElement.setAttribute('stroke-linejoin', lineJoinEnum[data.lj || 2]);\n\n if (data.lj === 1) {\n maskElement.setAttribute('stroke-miterlimit', data.ml);\n }\n }\n\n this.of = opFill;\n this.ms = mask;\n this.ost = stops;\n this.maskId = maskId;\n styleOb.msElem = maskElement;\n }\n };\n\n extendPrototype([DynamicPropertyContainer], SVGGradientFillStyleData);\n\n function SVGGradientStrokeStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.w = PropertyFactory.getProp(elem, data.w, 0, null, this);\n this.d = new DashProperty(elem, data.d || {}, 'svg', this);\n this.initGradientData(elem, data, styleOb);\n this._isAnimated = !!this._isAnimated;\n }\n\n extendPrototype([SVGGradientFillStyleData, DynamicPropertyContainer], SVGGradientStrokeStyleData);\n\n function ShapeGroupData() {\n this.it = [];\n this.prevViewData = [];\n this.gr = createNS('g');\n }\n\n function SVGTransformData(mProps, op, container) {\n this.transform = {\n mProps: mProps,\n op: op,\n container: container\n };\n this.elements = [];\n this._isAnimated = this.transform.mProps.dynamicProperties.length || this.transform.op.effectsSequence.length;\n }\n\n var buildShapeString = function buildShapeString(pathNodes, length, closed, mat) {\n if (length === 0) {\n return '';\n }\n\n var _o = pathNodes.o;\n var _i = pathNodes.i;\n var _v = pathNodes.v;\n var i;\n var shapeString = ' M' + mat.applyToPointStringified(_v[0][0], _v[0][1]);\n\n for (i = 1; i < length; i += 1) {\n shapeString += ' 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 }\n\n if (closed && length) {\n shapeString += ' 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 shapeString += 'z';\n }\n\n return shapeString;\n };\n\n var SVGElementsRenderer = function () {\n var _identityMatrix = new Matrix();\n\n var _matrixHelper = new Matrix();\n\n var ob = {\n createRenderFunction: createRenderFunction\n };\n\n function createRenderFunction(data) {\n switch (data.ty) {\n case 'fl':\n return renderFill;\n\n case 'gf':\n return renderGradient;\n\n case 'gs':\n return renderGradientStroke;\n\n case 'st':\n return renderStroke;\n\n case 'sh':\n case 'el':\n case 'rc':\n case 'sr':\n return renderPath;\n\n case 'tr':\n return renderContentTransform;\n\n case 'no':\n return renderNoop;\n\n default:\n return null;\n }\n }\n\n function renderContentTransform(styleData, itemData, isFirstFrame) {\n if (isFirstFrame || itemData.transform.op._mdf) {\n itemData.transform.container.setAttribute('opacity', itemData.transform.op.v);\n }\n\n if (isFirstFrame || itemData.transform.mProps._mdf) {\n itemData.transform.container.setAttribute('transform', itemData.transform.mProps.v.to2dCSS());\n }\n }\n\n function renderNoop() {}\n\n function renderPath(styleData, itemData, isFirstFrame) {\n var j;\n var jLen;\n var pathStringTransformed;\n var redraw;\n var pathNodes;\n var l;\n var lLen = itemData.styles.length;\n var lvl = itemData.lvl;\n var paths;\n var mat;\n var props;\n var iterations;\n var k;\n\n for (l = 0; l < lLen; l += 1) {\n redraw = itemData.sh._mdf || isFirstFrame;\n\n if (itemData.styles[l].lvl < lvl) {\n mat = _matrixHelper.reset();\n iterations = lvl - itemData.styles[l].lvl;\n k = itemData.transformers.length - 1;\n\n while (!redraw && iterations > 0) {\n redraw = itemData.transformers[k].mProps._mdf || redraw;\n iterations -= 1;\n k -= 1;\n }\n\n if (redraw) {\n iterations = lvl - itemData.styles[l].lvl;\n k = itemData.transformers.length - 1;\n\n while (iterations > 0) {\n props = itemData.transformers[k].mProps.v.props;\n mat.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 iterations -= 1;\n k -= 1;\n }\n }\n } else {\n mat = _identityMatrix;\n }\n\n paths = itemData.sh.paths;\n jLen = paths._length;\n\n if (redraw) {\n pathStringTransformed = '';\n\n for (j = 0; j < jLen; j += 1) {\n pathNodes = paths.shapes[j];\n\n if (pathNodes && pathNodes._length) {\n pathStringTransformed += buildShapeString(pathNodes, pathNodes._length, pathNodes.c, mat);\n }\n }\n\n itemData.caches[l] = pathStringTransformed;\n } else {\n pathStringTransformed = itemData.caches[l];\n }\n\n itemData.styles[l].d += styleData.hd === true ? '' : pathStringTransformed;\n itemData.styles[l]._mdf = redraw || itemData.styles[l]._mdf;\n }\n }\n\n function renderFill(styleData, itemData, isFirstFrame) {\n var styleElem = itemData.style;\n\n if (itemData.c._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('fill', 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')');\n }\n\n if (itemData.o._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('fill-opacity', itemData.o.v);\n }\n }\n\n function renderGradientStroke(styleData, itemData, isFirstFrame) {\n renderGradient(styleData, itemData, isFirstFrame);\n renderStroke(styleData, itemData, isFirstFrame);\n }\n\n function renderGradient(styleData, itemData, isFirstFrame) {\n var gfill = itemData.gf;\n var hasOpacity = itemData.g._hasOpacity;\n var pt1 = itemData.s.v;\n var pt2 = itemData.e.v;\n\n if (itemData.o._mdf || isFirstFrame) {\n var attr = styleData.ty === 'gf' ? 'fill-opacity' : 'stroke-opacity';\n itemData.style.pElem.setAttribute(attr, itemData.o.v);\n }\n\n if (itemData.s._mdf || isFirstFrame) {\n var attr1 = styleData.t === 1 ? 'x1' : 'cx';\n var attr2 = attr1 === 'x1' ? 'y1' : 'cy';\n gfill.setAttribute(attr1, pt1[0]);\n gfill.setAttribute(attr2, pt1[1]);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute(attr1, pt1[0]);\n itemData.of.setAttribute(attr2, pt1[1]);\n }\n }\n\n var stops;\n var i;\n var len;\n var stop;\n\n if (itemData.g._cmdf || isFirstFrame) {\n stops = itemData.cst;\n var cValues = itemData.g.c;\n len = stops.length;\n\n for (i = 0; i < len; i += 1) {\n stop = stops[i];\n stop.setAttribute('offset', cValues[i * 4] + '%');\n stop.setAttribute('stop-color', 'rgb(' + cValues[i * 4 + 1] + ',' + cValues[i * 4 + 2] + ',' + cValues[i * 4 + 3] + ')');\n }\n }\n\n if (hasOpacity && (itemData.g._omdf || isFirstFrame)) {\n var oValues = itemData.g.o;\n\n if (itemData.g._collapsable) {\n stops = itemData.cst;\n } else {\n stops = itemData.ost;\n }\n\n len = stops.length;\n\n for (i = 0; i < len; i += 1) {\n stop = stops[i];\n\n if (!itemData.g._collapsable) {\n stop.setAttribute('offset', oValues[i * 2] + '%');\n }\n\n stop.setAttribute('stop-opacity', oValues[i * 2 + 1]);\n }\n }\n\n if (styleData.t === 1) {\n if (itemData.e._mdf || isFirstFrame) {\n gfill.setAttribute('x2', pt2[0]);\n gfill.setAttribute('y2', pt2[1]);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute('x2', pt2[0]);\n itemData.of.setAttribute('y2', pt2[1]);\n }\n }\n } else {\n var rad;\n\n if (itemData.s._mdf || itemData.e._mdf || isFirstFrame) {\n rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n gfill.setAttribute('r', rad);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute('r', rad);\n }\n }\n\n if (itemData.e._mdf || itemData.h._mdf || itemData.a._mdf || isFirstFrame) {\n if (!rad) {\n rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n }\n\n var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);\n var percent = itemData.h.v;\n\n if (percent >= 1) {\n percent = 0.99;\n } else if (percent <= -1) {\n percent = -0.99;\n }\n\n var dist = rad * percent;\n var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\n var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\n gfill.setAttribute('fx', x);\n gfill.setAttribute('fy', y);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute('fx', x);\n itemData.of.setAttribute('fy', y);\n }\n } // gfill.setAttribute('fy','200');\n\n }\n }\n\n function renderStroke(styleData, itemData, isFirstFrame) {\n var styleElem = itemData.style;\n var d = itemData.d;\n\n if (d && (d._mdf || isFirstFrame) && d.dashStr) {\n styleElem.pElem.setAttribute('stroke-dasharray', d.dashStr);\n styleElem.pElem.setAttribute('stroke-dashoffset', d.dashoffset[0]);\n }\n\n if (itemData.c && (itemData.c._mdf || isFirstFrame)) {\n styleElem.pElem.setAttribute('stroke', 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')');\n }\n\n if (itemData.o._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('stroke-opacity', itemData.o.v);\n }\n\n if (itemData.w._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('stroke-width', itemData.w.v);\n\n if (styleElem.msElem) {\n styleElem.msElem.setAttribute('stroke-width', itemData.w.v);\n }\n }\n }\n\n return ob;\n }();\n\n function SVGShapeElement(data, globalData, comp) {\n // List of drawable elements\n this.shapes = []; // Full shape data\n\n this.shapesData = data.shapes; // List of styles that will be applied to shapes\n\n this.stylesList = []; // List of modifiers that will be applied to shapes\n\n this.shapeModifiers = []; // List of items in shape tree\n\n this.itemsData = []; // List of items in previous shape tree\n\n this.processedElements = []; // List of animated components\n\n this.animatedContents = [];\n this.initElement(data, globalData, comp); // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n // List of elements that have been created\n\n this.prevViewData = []; // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n }\n\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableDOMElement], SVGShapeElement);\n\n SVGShapeElement.prototype.initSecondaryElement = function () {};\n\n SVGShapeElement.prototype.identityMatrix = new Matrix();\n\n SVGShapeElement.prototype.buildExpressionInterface = function () {};\n\n SVGShapeElement.prototype.createContent = function () {\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.layerElement, 0, [], true);\n this.filterUniqueShapes();\n };\n /*\r\n This method searches for multiple shapes that affect a single element and one of them is animated\r\n */\n\n\n SVGShapeElement.prototype.filterUniqueShapes = function () {\n var i;\n var len = this.shapes.length;\n var shape;\n var j;\n var jLen = this.stylesList.length;\n var style;\n var tempShapes = [];\n var areAnimated = false;\n\n for (j = 0; j < jLen; j += 1) {\n style = this.stylesList[j];\n areAnimated = false;\n tempShapes.length = 0;\n\n for (i = 0; i < len; i += 1) {\n shape = this.shapes[i];\n\n if (shape.styles.indexOf(style) !== -1) {\n tempShapes.push(shape);\n areAnimated = shape._isAnimated || areAnimated;\n }\n }\n\n if (tempShapes.length > 1 && areAnimated) {\n this.setShapesAsAnimated(tempShapes);\n }\n }\n };\n\n SVGShapeElement.prototype.setShapesAsAnimated = function (shapes) {\n var i;\n var len = shapes.length;\n\n for (i = 0; i < len; i += 1) {\n shapes[i].setAsAnimated();\n }\n };\n\n SVGShapeElement.prototype.createStyleElement = function (data, level) {\n // TODO: prevent drawing of hidden styles\n var elementData;\n var styleOb = new SVGStyleData(data, level);\n var pathElement = styleOb.pElem;\n\n if (data.ty === 'st') {\n elementData = new SVGStrokeStyleData(this, data, styleOb);\n } else if (data.ty === 'fl') {\n elementData = new SVGFillStyleData(this, data, styleOb);\n } else if (data.ty === 'gf' || data.ty === 'gs') {\n var GradientConstructor = data.ty === 'gf' ? SVGGradientFillStyleData : SVGGradientStrokeStyleData;\n elementData = new GradientConstructor(this, data, styleOb);\n this.globalData.defs.appendChild(elementData.gf);\n\n if (elementData.maskId) {\n this.globalData.defs.appendChild(elementData.ms);\n this.globalData.defs.appendChild(elementData.of);\n pathElement.setAttribute('mask', 'url(' + getLocationHref() + '#' + elementData.maskId + ')');\n }\n } else if (data.ty === 'no') {\n elementData = new SVGNoStyleData(this, data, styleOb);\n }\n\n if (data.ty === 'st' || data.ty === 'gs') {\n pathElement.setAttribute('stroke-linecap', lineCapEnum[data.lc || 2]);\n pathElement.setAttribute('stroke-linejoin', lineJoinEnum[data.lj || 2]);\n pathElement.setAttribute('fill-opacity', '0');\n\n if (data.lj === 1) {\n pathElement.setAttribute('stroke-miterlimit', data.ml);\n }\n }\n\n if (data.r === 2) {\n pathElement.setAttribute('fill-rule', 'evenodd');\n }\n\n if (data.ln) {\n pathElement.setAttribute('id', data.ln);\n }\n\n if (data.cl) {\n pathElement.setAttribute('class', data.cl);\n }\n\n if (data.bm) {\n pathElement.style['mix-blend-mode'] = getBlendMode(data.bm);\n }\n\n this.stylesList.push(styleOb);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n\n SVGShapeElement.prototype.createGroupElement = function (data) {\n var elementData = new ShapeGroupData();\n\n if (data.ln) {\n elementData.gr.setAttribute('id', data.ln);\n }\n\n if (data.cl) {\n elementData.gr.setAttribute('class', data.cl);\n }\n\n if (data.bm) {\n elementData.gr.style['mix-blend-mode'] = getBlendMode(data.bm);\n }\n\n return elementData;\n };\n\n SVGShapeElement.prototype.createTransformElement = function (data, container) {\n var transformProperty = TransformPropertyFactory.getTransformProperty(this, data, this);\n var elementData = new SVGTransformData(transformProperty, transformProperty.o, container);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n\n SVGShapeElement.prototype.createShapeElement = function (data, ownTransformers, level) {\n var ty = 4;\n\n if (data.ty === 'rc') {\n ty = 5;\n } else if (data.ty === 'el') {\n ty = 6;\n } else if (data.ty === 'sr') {\n ty = 7;\n }\n\n var shapeProperty = ShapePropertyFactory.getShapeProp(this, data, ty, this);\n var elementData = new SVGShapeData(ownTransformers, level, shapeProperty);\n this.shapes.push(elementData);\n this.addShapeToModifiers(elementData);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n\n SVGShapeElement.prototype.addToAnimatedContents = function (data, element) {\n var i = 0;\n var len = this.animatedContents.length;\n\n while (i < len) {\n if (this.animatedContents[i].element === element) {\n return;\n }\n\n i += 1;\n }\n\n this.animatedContents.push({\n fn: SVGElementsRenderer.createRenderFunction(data),\n element: element,\n data: data\n });\n };\n\n SVGShapeElement.prototype.setElementStyles = function (elementData) {\n var arr = elementData.styles;\n var j;\n var jLen = this.stylesList.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (!this.stylesList[j].closed) {\n arr.push(this.stylesList[j]);\n }\n }\n };\n\n SVGShapeElement.prototype.reloadShapes = function () {\n this._isFirstFrame = true;\n var i;\n var len = this.itemsData.length;\n\n for (i = 0; i < len; i += 1) {\n this.prevViewData[i] = this.itemsData[i];\n }\n\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.layerElement, 0, [], true);\n this.filterUniqueShapes();\n len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n this.dynamicProperties[i].getValue();\n }\n\n this.renderModifiers();\n };\n\n SVGShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, container, level, transformers, render) {\n var ownTransformers = [].concat(transformers);\n var i;\n var len = arr.length - 1;\n var j;\n var jLen;\n var ownStyles = [];\n var ownModifiers = [];\n var currentTransform;\n var modifier;\n var processedPos;\n\n for (i = len; i >= 0; i -= 1) {\n processedPos = this.searchProcessedElement(arr[i]);\n\n if (!processedPos) {\n arr[i]._render = render;\n } else {\n itemsData[i] = prevViewData[processedPos - 1];\n }\n\n if (arr[i].ty === 'fl' || arr[i].ty === 'st' || arr[i].ty === 'gf' || arr[i].ty === 'gs' || arr[i].ty === 'no') {\n if (!processedPos) {\n itemsData[i] = this.createStyleElement(arr[i], level);\n } else {\n itemsData[i].style.closed = false;\n }\n\n if (arr[i]._render) {\n if (itemsData[i].style.pElem.parentNode !== container) {\n container.appendChild(itemsData[i].style.pElem);\n }\n }\n\n ownStyles.push(itemsData[i].style);\n } else if (arr[i].ty === 'gr') {\n if (!processedPos) {\n itemsData[i] = this.createGroupElement(arr[i]);\n } else {\n jLen = itemsData[i].it.length;\n\n for (j = 0; j < jLen; j += 1) {\n itemsData[i].prevViewData[j] = itemsData[i].it[j];\n }\n }\n\n this.searchShapes(arr[i].it, itemsData[i].it, itemsData[i].prevViewData, itemsData[i].gr, level + 1, ownTransformers, render);\n\n if (arr[i]._render) {\n if (itemsData[i].gr.parentNode !== container) {\n container.appendChild(itemsData[i].gr);\n }\n }\n } else if (arr[i].ty === 'tr') {\n if (!processedPos) {\n itemsData[i] = this.createTransformElement(arr[i], container);\n }\n\n currentTransform = itemsData[i].transform;\n ownTransformers.push(currentTransform);\n } else if (arr[i].ty === 'sh' || arr[i].ty === 'rc' || arr[i].ty === 'el' || arr[i].ty === 'sr') {\n if (!processedPos) {\n itemsData[i] = this.createShapeElement(arr[i], ownTransformers, level);\n }\n\n this.setElementStyles(itemsData[i]);\n } else if (arr[i].ty === 'tm' || arr[i].ty === 'rd' || arr[i].ty === 'ms' || arr[i].ty === 'pb' || arr[i].ty === 'zz' || arr[i].ty === 'op') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n modifier.init(this, arr[i]);\n itemsData[i] = modifier;\n this.shapeModifiers.push(modifier);\n } else {\n modifier = itemsData[i];\n modifier.closed = false;\n }\n\n ownModifiers.push(modifier);\n } else if (arr[i].ty === 'rp') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n itemsData[i] = modifier;\n modifier.init(this, arr, i, itemsData);\n this.shapeModifiers.push(modifier);\n render = false;\n } else {\n modifier = itemsData[i];\n modifier.closed = true;\n }\n\n ownModifiers.push(modifier);\n }\n\n this.addProcessedElement(arr[i], i + 1);\n }\n\n len = ownStyles.length;\n\n for (i = 0; i < len; i += 1) {\n ownStyles[i].closed = true;\n }\n\n len = ownModifiers.length;\n\n for (i = 0; i < len; i += 1) {\n ownModifiers[i].closed = true;\n }\n };\n\n SVGShapeElement.prototype.renderInnerContent = function () {\n this.renderModifiers();\n var i;\n var len = this.stylesList.length;\n\n for (i = 0; i < len; i += 1) {\n this.stylesList[i].reset();\n }\n\n this.renderShape();\n\n for (i = 0; i < len; i += 1) {\n if (this.stylesList[i]._mdf || this._isFirstFrame) {\n if (this.stylesList[i].msElem) {\n this.stylesList[i].msElem.setAttribute('d', this.stylesList[i].d); // Adding M0 0 fixes same mask bug on all browsers\n\n this.stylesList[i].d = 'M0 0' + this.stylesList[i].d;\n }\n\n this.stylesList[i].pElem.setAttribute('d', this.stylesList[i].d || 'M0 0');\n }\n }\n };\n\n SVGShapeElement.prototype.renderShape = function () {\n var i;\n var len = this.animatedContents.length;\n var animatedContent;\n\n for (i = 0; i < len; i += 1) {\n animatedContent = this.animatedContents[i];\n\n if ((this._isFirstFrame || animatedContent.element._isAnimated) && animatedContent.data !== true) {\n animatedContent.fn(animatedContent.data, animatedContent.element, this._isFirstFrame);\n }\n }\n };\n\n SVGShapeElement.prototype.destroy = function () {\n this.destroyBaseElement();\n this.shapesData = null;\n this.itemsData = null;\n };\n\n function LetterProps(o, sw, sc, fc, m, p) {\n this.o = o;\n this.sw = sw;\n this.sc = sc;\n this.fc = fc;\n this.m = m;\n this.p = p;\n this._mdf = {\n o: true,\n sw: !!sw,\n sc: !!sc,\n fc: !!fc,\n m: true,\n p: true\n };\n }\n\n LetterProps.prototype.update = function (o, sw, sc, fc, m, p) {\n this._mdf.o = false;\n this._mdf.sw = false;\n this._mdf.sc = false;\n this._mdf.fc = false;\n this._mdf.m = false;\n this._mdf.p = false;\n var updated = false;\n\n if (this.o !== o) {\n this.o = o;\n this._mdf.o = true;\n updated = true;\n }\n\n if (this.sw !== sw) {\n this.sw = sw;\n this._mdf.sw = true;\n updated = true;\n }\n\n if (this.sc !== sc) {\n this.sc = sc;\n this._mdf.sc = true;\n updated = true;\n }\n\n if (this.fc !== fc) {\n this.fc = fc;\n this._mdf.fc = true;\n updated = true;\n }\n\n if (this.m !== m) {\n this.m = m;\n this._mdf.m = true;\n updated = true;\n }\n\n if (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 this.p = p;\n this._mdf.p = true;\n updated = true;\n }\n\n return updated;\n };\n\n function TextProperty(elem, data) {\n this._frameId = initialDefaultFrame;\n this.pv = '';\n this.v = '';\n this.kf = false;\n this._isFirstFrame = true;\n this._mdf = false;\n\n if (data.d && data.d.sid) {\n data.d = elem.globalData.slotManager.getProp(data.d);\n }\n\n this.data = data;\n this.elem = elem;\n this.comp = this.elem.comp;\n this.keysIndex = 0;\n this.canResize = false;\n this.minimumFontSize = 1;\n this.effectsSequence = [];\n this.currentData = {\n ascent: 0,\n boxWidth: this.defaultBoxWidth,\n f: '',\n fStyle: '',\n fWeight: '',\n fc: '',\n j: '',\n justifyOffset: '',\n l: [],\n lh: 0,\n lineWidths: [],\n ls: '',\n of: '',\n s: '',\n sc: '',\n sw: 0,\n t: 0,\n tr: 0,\n sz: 0,\n ps: null,\n fillColorAnim: false,\n strokeColorAnim: false,\n strokeWidthAnim: false,\n yOffset: 0,\n finalSize: 0,\n finalText: [],\n finalLineHeight: 0,\n __complete: false\n };\n this.copyData(this.currentData, this.data.d.k[0].s);\n\n if (!this.searchProperty()) {\n this.completeTextData(this.currentData);\n }\n }\n\n TextProperty.prototype.defaultBoxWidth = [0, 0];\n\n TextProperty.prototype.copyData = function (obj, data) {\n for (var s in data) {\n if (Object.prototype.hasOwnProperty.call(data, s)) {\n obj[s] = data[s];\n }\n }\n\n return obj;\n };\n\n TextProperty.prototype.setCurrentData = function (data) {\n if (!data.__complete) {\n this.completeTextData(data);\n }\n\n this.currentData = data;\n this.currentData.boxWidth = this.currentData.boxWidth || this.defaultBoxWidth;\n this._mdf = true;\n };\n\n TextProperty.prototype.searchProperty = function () {\n return this.searchKeyframes();\n };\n\n TextProperty.prototype.searchKeyframes = function () {\n this.kf = this.data.d.k.length > 1;\n\n if (this.kf) {\n this.addEffect(this.getKeyframeValue.bind(this));\n }\n\n return this.kf;\n };\n\n TextProperty.prototype.addEffect = function (effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.elem.addDynamicProperty(this);\n };\n\n TextProperty.prototype.getValue = function (_finalValue) {\n if ((this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) && !_finalValue) {\n return;\n }\n\n this.currentData.t = this.data.d.k[this.keysIndex].s.t;\n var currentValue = this.currentData;\n var currentIndex = this.keysIndex;\n\n if (this.lock) {\n this.setCurrentData(this.currentData);\n return;\n }\n\n this.lock = true;\n this._mdf = false;\n var i;\n var len = this.effectsSequence.length;\n var finalValue = _finalValue || this.data.d.k[this.keysIndex].s;\n\n for (i = 0; i < len; i += 1) {\n // Checking if index changed to prevent creating a new object every time the expression updates.\n if (currentIndex !== this.keysIndex) {\n finalValue = this.effectsSequence[i](finalValue, finalValue.t);\n } else {\n finalValue = this.effectsSequence[i](this.currentData, finalValue.t);\n }\n }\n\n if (currentValue !== finalValue) {\n this.setCurrentData(finalValue);\n }\n\n this.v = this.currentData;\n this.pv = this.v;\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n };\n\n TextProperty.prototype.getKeyframeValue = function () {\n var textKeys = this.data.d.k;\n var frameNum = this.elem.comp.renderedFrame;\n var i = 0;\n var len = textKeys.length;\n\n while (i <= len - 1) {\n if (i === len - 1 || textKeys[i + 1].t > frameNum) {\n break;\n }\n\n i += 1;\n }\n\n if (this.keysIndex !== i) {\n this.keysIndex = i;\n }\n\n return this.data.d.k[this.keysIndex].s;\n };\n\n TextProperty.prototype.buildFinalText = function (text) {\n var charactersArray = [];\n var i = 0;\n var len = text.length;\n var charCode;\n var secondCharCode;\n var shouldCombine = false;\n\n while (i < len) {\n charCode = text.charCodeAt(i);\n\n if (FontManager.isCombinedCharacter(charCode)) {\n charactersArray[charactersArray.length - 1] += text.charAt(i);\n } else if (charCode >= 0xD800 && charCode <= 0xDBFF) {\n secondCharCode = text.charCodeAt(i + 1);\n\n if (secondCharCode >= 0xDC00 && secondCharCode <= 0xDFFF) {\n if (shouldCombine || FontManager.isModifier(charCode, secondCharCode)) {\n charactersArray[charactersArray.length - 1] += text.substr(i, 2);\n shouldCombine = false;\n } else {\n charactersArray.push(text.substr(i, 2));\n }\n\n i += 1;\n } else {\n charactersArray.push(text.charAt(i));\n }\n } else if (charCode > 0xDBFF) {\n secondCharCode = text.charCodeAt(i + 1);\n\n if (FontManager.isZeroWidthJoiner(charCode, secondCharCode)) {\n shouldCombine = true;\n charactersArray[charactersArray.length - 1] += text.substr(i, 2);\n i += 1;\n } else {\n charactersArray.push(text.charAt(i));\n }\n } else if (FontManager.isZeroWidthJoiner(charCode)) {\n charactersArray[charactersArray.length - 1] += text.charAt(i);\n shouldCombine = true;\n } else {\n charactersArray.push(text.charAt(i));\n }\n\n i += 1;\n }\n\n return charactersArray;\n };\n\n TextProperty.prototype.completeTextData = function (documentData) {\n documentData.__complete = true;\n var fontManager = this.elem.globalData.fontManager;\n var data = this.data;\n var letters = [];\n var i;\n var len;\n var newLineFlag;\n var index = 0;\n var val;\n var anchorGrouping = data.m.g;\n var currentSize = 0;\n var currentPos = 0;\n var currentLine = 0;\n var lineWidths = [];\n var lineWidth = 0;\n var maxLineWidth = 0;\n var j;\n var jLen;\n var fontData = fontManager.getFontByName(documentData.f);\n var charData;\n var cLength = 0;\n var fontProps = getFontProperties(fontData);\n documentData.fWeight = fontProps.weight;\n documentData.fStyle = fontProps.style;\n documentData.finalSize = documentData.s;\n documentData.finalText = this.buildFinalText(documentData.t);\n len = documentData.finalText.length;\n documentData.finalLineHeight = documentData.lh;\n var trackingOffset = documentData.tr / 1000 * documentData.finalSize;\n var charCode;\n\n if (documentData.sz) {\n var flag = true;\n var boxWidth = documentData.sz[0];\n var boxHeight = documentData.sz[1];\n var currentHeight;\n var finalText;\n\n while (flag) {\n finalText = this.buildFinalText(documentData.t);\n currentHeight = 0;\n lineWidth = 0;\n len = finalText.length;\n trackingOffset = documentData.tr / 1000 * documentData.finalSize;\n var lastSpaceIndex = -1;\n\n for (i = 0; i < len; i += 1) {\n charCode = finalText[i].charCodeAt(0);\n newLineFlag = false;\n\n if (finalText[i] === ' ') {\n lastSpaceIndex = i;\n } else if (charCode === 13 || charCode === 3) {\n lineWidth = 0;\n newLineFlag = true;\n currentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\n }\n\n if (fontManager.chars) {\n charData = fontManager.getCharData(finalText[i], fontData.fStyle, fontData.fFamily);\n cLength = newLineFlag ? 0 : charData.w * documentData.finalSize / 100;\n } else {\n // tCanvasHelper.font = documentData.s + 'px '+ fontData.fFamily;\n cLength = fontManager.measureText(finalText[i], documentData.f, documentData.finalSize);\n }\n\n if (lineWidth + cLength > boxWidth && finalText[i] !== ' ') {\n if (lastSpaceIndex === -1) {\n len += 1;\n } else {\n i = lastSpaceIndex;\n }\n\n currentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\n finalText.splice(i, lastSpaceIndex === i ? 1 : 0, '\\r'); // finalText = finalText.substr(0,i) + \"\\r\" + finalText.substr(i === lastSpaceIndex ? i + 1 : i);\n\n lastSpaceIndex = -1;\n lineWidth = 0;\n } else {\n lineWidth += cLength;\n lineWidth += trackingOffset;\n }\n }\n\n currentHeight += fontData.ascent * documentData.finalSize / 100;\n\n if (this.canResize && documentData.finalSize > this.minimumFontSize && boxHeight < currentHeight) {\n documentData.finalSize -= 1;\n documentData.finalLineHeight = documentData.finalSize * documentData.lh / documentData.s;\n } else {\n documentData.finalText = finalText;\n len = documentData.finalText.length;\n flag = false;\n }\n }\n }\n\n lineWidth = -trackingOffset;\n cLength = 0;\n var uncollapsedSpaces = 0;\n var currentChar;\n\n for (i = 0; i < len; i += 1) {\n newLineFlag = false;\n currentChar = documentData.finalText[i];\n charCode = currentChar.charCodeAt(0);\n\n if (charCode === 13 || charCode === 3) {\n uncollapsedSpaces = 0;\n lineWidths.push(lineWidth);\n maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\n lineWidth = -2 * trackingOffset;\n val = '';\n newLineFlag = true;\n currentLine += 1;\n } else {\n val = currentChar;\n }\n\n if (fontManager.chars) {\n charData = fontManager.getCharData(currentChar, fontData.fStyle, fontManager.getFontByName(documentData.f).fFamily);\n cLength = newLineFlag ? 0 : charData.w * documentData.finalSize / 100;\n } else {\n // var charWidth = fontManager.measureText(val, documentData.f, documentData.finalSize);\n // tCanvasHelper.font = documentData.finalSize + 'px '+ fontManager.getFontByName(documentData.f).fFamily;\n cLength = fontManager.measureText(val, documentData.f, documentData.finalSize);\n } //\n\n\n if (currentChar === ' ') {\n uncollapsedSpaces += cLength + trackingOffset;\n } else {\n lineWidth += cLength + trackingOffset + uncollapsedSpaces;\n uncollapsedSpaces = 0;\n }\n\n letters.push({\n l: cLength,\n an: cLength,\n add: currentSize,\n n: newLineFlag,\n anIndexes: [],\n val: val,\n line: currentLine,\n animatorJustifyOffset: 0\n });\n\n if (anchorGrouping == 2) {\n // eslint-disable-line eqeqeq\n currentSize += cLength;\n\n if (val === '' || val === ' ' || i === len - 1) {\n if (val === '' || val === ' ') {\n currentSize -= cLength;\n }\n\n while (currentPos <= i) {\n letters[currentPos].an = currentSize;\n letters[currentPos].ind = index;\n letters[currentPos].extra = cLength;\n currentPos += 1;\n }\n\n index += 1;\n currentSize = 0;\n }\n } else if (anchorGrouping == 3) {\n // eslint-disable-line eqeqeq\n currentSize += cLength;\n\n if (val === '' || i === len - 1) {\n if (val === '') {\n currentSize -= cLength;\n }\n\n while (currentPos <= i) {\n letters[currentPos].an = currentSize;\n letters[currentPos].ind = index;\n letters[currentPos].extra = cLength;\n currentPos += 1;\n }\n\n currentSize = 0;\n index += 1;\n }\n } else {\n letters[index].ind = index;\n letters[index].extra = 0;\n index += 1;\n }\n }\n\n documentData.l = letters;\n maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\n lineWidths.push(lineWidth);\n\n if (documentData.sz) {\n documentData.boxWidth = documentData.sz[0];\n documentData.justifyOffset = 0;\n } else {\n documentData.boxWidth = maxLineWidth;\n\n switch (documentData.j) {\n case 1:\n documentData.justifyOffset = -documentData.boxWidth;\n break;\n\n case 2:\n documentData.justifyOffset = -documentData.boxWidth / 2;\n break;\n\n default:\n documentData.justifyOffset = 0;\n }\n }\n\n documentData.lineWidths = lineWidths;\n var animators = data.a;\n var animatorData;\n var letterData;\n jLen = animators.length;\n var based;\n var ind;\n var indexes = [];\n\n for (j = 0; j < jLen; j += 1) {\n animatorData = animators[j];\n\n if (animatorData.a.sc) {\n documentData.strokeColorAnim = true;\n }\n\n if (animatorData.a.sw) {\n documentData.strokeWidthAnim = true;\n }\n\n if (animatorData.a.fc || animatorData.a.fh || animatorData.a.fs || animatorData.a.fb) {\n documentData.fillColorAnim = true;\n }\n\n ind = 0;\n based = animatorData.s.b;\n\n for (i = 0; i < len; i += 1) {\n letterData = letters[i];\n letterData.anIndexes[j] = ind;\n\n if (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)) {\n // eslint-disable-line eqeqeq\n if (animatorData.s.rn === 1) {\n indexes.push(ind);\n }\n\n ind += 1;\n }\n }\n\n data.a[j].s.totalChars = ind;\n var currentInd = -1;\n var newInd;\n\n if (animatorData.s.rn === 1) {\n for (i = 0; i < len; i += 1) {\n letterData = letters[i];\n\n if (currentInd != letterData.anIndexes[j]) {\n // eslint-disable-line eqeqeq\n currentInd = letterData.anIndexes[j];\n newInd = indexes.splice(Math.floor(Math.random() * indexes.length), 1)[0];\n }\n\n letterData.anIndexes[j] = newInd;\n }\n }\n }\n\n documentData.yOffset = documentData.finalLineHeight || documentData.finalSize * 1.2;\n documentData.ls = documentData.ls || 0;\n documentData.ascent = fontData.ascent * documentData.finalSize / 100;\n };\n\n TextProperty.prototype.updateDocumentData = function (newData, index) {\n index = index === undefined ? this.keysIndex : index;\n var dData = this.copyData({}, this.data.d.k[index].s);\n dData = this.copyData(dData, newData);\n this.data.d.k[index].s = dData;\n this.recalculate(index);\n this.setCurrentData(dData);\n this.elem.addDynamicProperty(this);\n };\n\n TextProperty.prototype.recalculate = function (index) {\n var dData = this.data.d.k[index].s;\n dData.__complete = false;\n this.keysIndex = 0;\n this._isFirstFrame = true;\n this.getValue(dData);\n };\n\n TextProperty.prototype.canResizeFont = function (_canResize) {\n this.canResize = _canResize;\n this.recalculate(this.keysIndex);\n this.elem.addDynamicProperty(this);\n };\n\n TextProperty.prototype.setMinimumFontSize = function (_fontValue) {\n this.minimumFontSize = Math.floor(_fontValue) || 1;\n this.recalculate(this.keysIndex);\n this.elem.addDynamicProperty(this);\n };\n\n var TextSelectorProp = function () {\n var max = Math.max;\n var min = Math.min;\n var floor = Math.floor;\n\n function TextSelectorPropFactory(elem, data) {\n this._currentTextLength = -1;\n this.k = false;\n this.data = data;\n this.elem = elem;\n this.comp = elem.comp;\n this.finalS = 0;\n this.finalE = 0;\n this.initDynamicPropertyContainer(elem);\n this.s = PropertyFactory.getProp(elem, data.s || {\n k: 0\n }, 0, 0, this);\n\n if ('e' in data) {\n this.e = PropertyFactory.getProp(elem, data.e, 0, 0, this);\n } else {\n this.e = {\n v: 100\n };\n }\n\n this.o = PropertyFactory.getProp(elem, data.o || {\n k: 0\n }, 0, 0, this);\n this.xe = PropertyFactory.getProp(elem, data.xe || {\n k: 0\n }, 0, 0, this);\n this.ne = PropertyFactory.getProp(elem, data.ne || {\n k: 0\n }, 0, 0, this);\n this.sm = PropertyFactory.getProp(elem, data.sm || {\n k: 100\n }, 0, 0, this);\n this.a = PropertyFactory.getProp(elem, data.a, 0, 0.01, this);\n\n if (!this.dynamicProperties.length) {\n this.getValue();\n }\n }\n\n TextSelectorPropFactory.prototype = {\n getMult: function getMult(ind) {\n if (this._currentTextLength !== this.elem.textProperty.currentData.l.length) {\n this.getValue();\n }\n\n var x1 = 0;\n var y1 = 0;\n var x2 = 1;\n var y2 = 1;\n\n if (this.ne.v > 0) {\n x1 = this.ne.v / 100.0;\n } else {\n y1 = -this.ne.v / 100.0;\n }\n\n if (this.xe.v > 0) {\n x2 = 1.0 - this.xe.v / 100.0;\n } else {\n y2 = 1.0 + this.xe.v / 100.0;\n }\n\n var easer = BezierFactory.getBezierEasing(x1, y1, x2, y2).get;\n var mult = 0;\n var s = this.finalS;\n var e = this.finalE;\n var type = this.data.sh;\n\n if (type === 2) {\n if (e === s) {\n mult = ind >= e ? 1 : 0;\n } else {\n mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n }\n\n mult = easer(mult);\n } else if (type === 3) {\n if (e === s) {\n mult = ind >= e ? 0 : 1;\n } else {\n mult = 1 - max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n }\n\n mult = easer(mult);\n } else if (type === 4) {\n if (e === s) {\n mult = 0;\n } else {\n mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n\n if (mult < 0.5) {\n mult *= 2;\n } else {\n mult = 1 - 2 * (mult - 0.5);\n }\n }\n\n mult = easer(mult);\n } else if (type === 5) {\n if (e === s) {\n mult = 0;\n } else {\n var tot = e - s;\n /* ind += 0.5;\r\n mult = -4/(tot*tot)*(ind*ind)+(4/tot)*ind; */\n\n ind = min(max(0, ind + 0.5 - s), e - s);\n var x = -tot / 2 + ind;\n var a = tot / 2;\n mult = Math.sqrt(1 - x * x / (a * a));\n }\n\n mult = easer(mult);\n } else if (type === 6) {\n if (e === s) {\n mult = 0;\n } else {\n ind = min(max(0, ind + 0.5 - s), e - s);\n mult = (1 + Math.cos(Math.PI + Math.PI * 2 * ind / (e - s))) / 2; // eslint-disable-line\n }\n\n mult = easer(mult);\n } else {\n if (ind >= floor(s)) {\n if (ind - s < 0) {\n mult = max(0, min(min(e, 1) - (s - ind), 1));\n } else {\n mult = max(0, min(e - ind, 1));\n }\n }\n\n mult = easer(mult);\n } // Smoothness implementation.\n // The smoothness represents a reduced range of the original [0; 1] range.\n // if smoothness is 25%, the new range will be [0.375; 0.625]\n // Steps are:\n // - find the lower value of the new range (threshold)\n // - if multiplier is smaller than that value, floor it to 0\n // - if it is larger,\n // - subtract the threshold\n // - divide it by the smoothness (this will return the range to [0; 1])\n // Note: If it doesn't work on some scenarios, consider applying it before the easer.\n\n\n if (this.sm.v !== 100) {\n var smoothness = this.sm.v * 0.01;\n\n if (smoothness === 0) {\n smoothness = 0.00000001;\n }\n\n var threshold = 0.5 - smoothness * 0.5;\n\n if (mult < threshold) {\n mult = 0;\n } else {\n mult = (mult - threshold) / smoothness;\n\n if (mult > 1) {\n mult = 1;\n }\n }\n }\n\n return mult * this.a.v;\n },\n getValue: function getValue(newCharsFlag) {\n this.iterateDynamicProperties();\n this._mdf = newCharsFlag || this._mdf;\n this._currentTextLength = this.elem.textProperty.currentData.l.length || 0;\n\n if (newCharsFlag && this.data.r === 2) {\n this.e.v = this._currentTextLength;\n }\n\n var divisor = this.data.r === 2 ? 1 : 100 / this.data.totalChars;\n var o = this.o.v / divisor;\n var s = this.s.v / divisor + o;\n var e = this.e.v / divisor + o;\n\n if (s > e) {\n var _s = s;\n s = e;\n e = _s;\n }\n\n this.finalS = s;\n this.finalE = e;\n }\n };\n extendPrototype([DynamicPropertyContainer], TextSelectorPropFactory);\n\n function getTextSelectorProp(elem, data, arr) {\n return new TextSelectorPropFactory(elem, data, arr);\n }\n\n return {\n getTextSelectorProp: getTextSelectorProp\n };\n }();\n\n function TextAnimatorDataProperty(elem, animatorProps, container) {\n var defaultData = {\n propType: false\n };\n var getProp = PropertyFactory.getProp;\n var textAnimatorAnimatables = animatorProps.a;\n this.a = {\n r: textAnimatorAnimatables.r ? getProp(elem, textAnimatorAnimatables.r, 0, degToRads, container) : defaultData,\n rx: textAnimatorAnimatables.rx ? getProp(elem, textAnimatorAnimatables.rx, 0, degToRads, container) : defaultData,\n ry: textAnimatorAnimatables.ry ? getProp(elem, textAnimatorAnimatables.ry, 0, degToRads, container) : defaultData,\n sk: textAnimatorAnimatables.sk ? getProp(elem, textAnimatorAnimatables.sk, 0, degToRads, container) : defaultData,\n sa: textAnimatorAnimatables.sa ? getProp(elem, textAnimatorAnimatables.sa, 0, degToRads, container) : defaultData,\n s: textAnimatorAnimatables.s ? getProp(elem, textAnimatorAnimatables.s, 1, 0.01, container) : defaultData,\n a: textAnimatorAnimatables.a ? getProp(elem, textAnimatorAnimatables.a, 1, 0, container) : defaultData,\n o: textAnimatorAnimatables.o ? getProp(elem, textAnimatorAnimatables.o, 0, 0.01, container) : defaultData,\n p: textAnimatorAnimatables.p ? getProp(elem, textAnimatorAnimatables.p, 1, 0, container) : defaultData,\n sw: textAnimatorAnimatables.sw ? getProp(elem, textAnimatorAnimatables.sw, 0, 0, container) : defaultData,\n sc: textAnimatorAnimatables.sc ? getProp(elem, textAnimatorAnimatables.sc, 1, 0, container) : defaultData,\n fc: textAnimatorAnimatables.fc ? getProp(elem, textAnimatorAnimatables.fc, 1, 0, container) : defaultData,\n fh: textAnimatorAnimatables.fh ? getProp(elem, textAnimatorAnimatables.fh, 0, 0, container) : defaultData,\n fs: textAnimatorAnimatables.fs ? getProp(elem, textAnimatorAnimatables.fs, 0, 0.01, container) : defaultData,\n fb: textAnimatorAnimatables.fb ? getProp(elem, textAnimatorAnimatables.fb, 0, 0.01, container) : defaultData,\n t: textAnimatorAnimatables.t ? getProp(elem, textAnimatorAnimatables.t, 0, 0, container) : defaultData\n };\n this.s = TextSelectorProp.getTextSelectorProp(elem, animatorProps.s, container);\n this.s.t = animatorProps.s.t;\n }\n\n function TextAnimatorProperty(textData, renderType, elem) {\n this._isFirstFrame = true;\n this._hasMaskedPath = false;\n this._frameId = -1;\n this._textData = textData;\n this._renderType = renderType;\n this._elem = elem;\n this._animatorsData = createSizedArray(this._textData.a.length);\n this._pathData = {};\n this._moreOptions = {\n alignment: {}\n };\n this.renderedLetters = [];\n this.lettersChangedFlag = false;\n this.initDynamicPropertyContainer(elem);\n }\n\n TextAnimatorProperty.prototype.searchProperties = function () {\n var i;\n var len = this._textData.a.length;\n var animatorProps;\n var getProp = PropertyFactory.getProp;\n\n for (i = 0; i < len; i += 1) {\n animatorProps = this._textData.a[i];\n this._animatorsData[i] = new TextAnimatorDataProperty(this._elem, animatorProps, this);\n }\n\n if (this._textData.p && 'm' in this._textData.p) {\n this._pathData = {\n a: getProp(this._elem, this._textData.p.a, 0, 0, this),\n f: getProp(this._elem, this._textData.p.f, 0, 0, this),\n l: getProp(this._elem, this._textData.p.l, 0, 0, this),\n r: getProp(this._elem, this._textData.p.r, 0, 0, this),\n p: getProp(this._elem, this._textData.p.p, 0, 0, this),\n m: this._elem.maskManager.getMaskProperty(this._textData.p.m)\n };\n this._hasMaskedPath = true;\n } else {\n this._hasMaskedPath = false;\n }\n\n this._moreOptions.alignment = getProp(this._elem, this._textData.m.a, 1, 0, this);\n };\n\n TextAnimatorProperty.prototype.getMeasures = function (documentData, lettersChangedFlag) {\n this.lettersChangedFlag = lettersChangedFlag;\n\n if (!this._mdf && !this._isFirstFrame && !lettersChangedFlag && (!this._hasMaskedPath || !this._pathData.m._mdf)) {\n return;\n }\n\n this._isFirstFrame = false;\n var alignment = this._moreOptions.alignment.v;\n var animators = this._animatorsData;\n var textData = this._textData;\n var matrixHelper = this.mHelper;\n var renderType = this._renderType;\n var renderedLettersCount = this.renderedLetters.length;\n var xPos;\n var yPos;\n var i;\n var len;\n var letters = documentData.l;\n var pathInfo;\n var currentLength;\n var currentPoint;\n var segmentLength;\n var flag;\n var pointInd;\n var segmentInd;\n var prevPoint;\n var points;\n var segments;\n var partialLength;\n var totalLength;\n var perc;\n var tanAngle;\n var mask;\n\n if (this._hasMaskedPath) {\n mask = this._pathData.m;\n\n if (!this._pathData.n || this._pathData._mdf) {\n var paths = mask.v;\n\n if (this._pathData.r.v) {\n paths = paths.reverse();\n } // TODO: release bezier data cached from previous pathInfo: this._pathData.pi\n\n\n pathInfo = {\n tLength: 0,\n segments: []\n };\n len = paths._length - 1;\n var bezierData;\n totalLength = 0;\n\n for (i = 0; i < len; i += 1) {\n bezierData = bez.buildBezierData(paths.v[i], paths.v[i + 1], [paths.o[i][0] - paths.v[i][0], paths.o[i][1] - paths.v[i][1]], [paths.i[i + 1][0] - paths.v[i + 1][0], paths.i[i + 1][1] - paths.v[i + 1][1]]);\n pathInfo.tLength += bezierData.segmentLength;\n pathInfo.segments.push(bezierData);\n totalLength += bezierData.segmentLength;\n }\n\n i = len;\n\n if (mask.v.c) {\n bezierData = bez.buildBezierData(paths.v[i], paths.v[0], [paths.o[i][0] - paths.v[i][0], paths.o[i][1] - paths.v[i][1]], [paths.i[0][0] - paths.v[0][0], paths.i[0][1] - paths.v[0][1]]);\n pathInfo.tLength += bezierData.segmentLength;\n pathInfo.segments.push(bezierData);\n totalLength += bezierData.segmentLength;\n }\n\n this._pathData.pi = pathInfo;\n }\n\n pathInfo = this._pathData.pi;\n currentLength = this._pathData.f.v;\n segmentInd = 0;\n pointInd = 1;\n segmentLength = 0;\n flag = true;\n segments = pathInfo.segments;\n\n if (currentLength < 0 && mask.v.c) {\n if (pathInfo.tLength < Math.abs(currentLength)) {\n currentLength = -Math.abs(currentLength) % pathInfo.tLength;\n }\n\n segmentInd = segments.length - 1;\n points = segments[segmentInd].points;\n pointInd = points.length - 1;\n\n while (currentLength < 0) {\n currentLength += points[pointInd].partialLength;\n pointInd -= 1;\n\n if (pointInd < 0) {\n segmentInd -= 1;\n points = segments[segmentInd].points;\n pointInd = points.length - 1;\n }\n }\n }\n\n points = segments[segmentInd].points;\n prevPoint = points[pointInd - 1];\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n }\n\n len = letters.length;\n xPos = 0;\n yPos = 0;\n var yOff = documentData.finalSize * 1.2 * 0.714;\n var firstLine = true;\n var animatorProps;\n var animatorSelector;\n var j;\n var jLen;\n var letterValue;\n jLen = animators.length;\n var mult;\n var ind = -1;\n var offf;\n var xPathPos;\n var yPathPos;\n var initPathPos = currentLength;\n var initSegmentInd = segmentInd;\n var initPointInd = pointInd;\n var currentLine = -1;\n var elemOpacity;\n var sc;\n var sw;\n var fc;\n var k;\n var letterSw;\n var letterSc;\n var letterFc;\n var letterM = '';\n var letterP = this.defaultPropsArray;\n var letterO; //\n\n if (documentData.j === 2 || documentData.j === 1) {\n var animatorJustifyOffset = 0;\n var animatorFirstCharOffset = 0;\n var justifyOffsetMult = documentData.j === 2 ? -0.5 : -1;\n var lastIndex = 0;\n var isNewLine = true;\n\n for (i = 0; i < len; i += 1) {\n if (letters[i].n) {\n if (animatorJustifyOffset) {\n animatorJustifyOffset += animatorFirstCharOffset;\n }\n\n while (lastIndex < i) {\n letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\n lastIndex += 1;\n }\n\n animatorJustifyOffset = 0;\n isNewLine = true;\n } else {\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.t.propType) {\n if (isNewLine && documentData.j === 2) {\n animatorFirstCharOffset += animatorProps.t.v * justifyOffsetMult;\n }\n\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n animatorJustifyOffset += animatorProps.t.v * mult[0] * justifyOffsetMult;\n } else {\n animatorJustifyOffset += animatorProps.t.v * mult * justifyOffsetMult;\n }\n }\n }\n\n isNewLine = false;\n }\n }\n\n if (animatorJustifyOffset) {\n animatorJustifyOffset += animatorFirstCharOffset;\n }\n\n while (lastIndex < i) {\n letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\n lastIndex += 1;\n }\n } //\n\n\n for (i = 0; i < len; i += 1) {\n matrixHelper.reset();\n elemOpacity = 1;\n\n if (letters[i].n) {\n xPos = 0;\n yPos += documentData.yOffset;\n yPos += firstLine ? 1 : 0;\n currentLength = initPathPos;\n firstLine = false;\n\n if (this._hasMaskedPath) {\n segmentInd = initSegmentInd;\n pointInd = initPointInd;\n points = segments[segmentInd].points;\n prevPoint = points[pointInd - 1];\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n segmentLength = 0;\n }\n\n letterM = '';\n letterFc = '';\n letterSw = '';\n letterO = '';\n letterP = this.defaultPropsArray;\n } else {\n if (this._hasMaskedPath) {\n if (currentLine !== letters[i].line) {\n switch (documentData.j) {\n case 1:\n currentLength += totalLength - documentData.lineWidths[letters[i].line];\n break;\n\n case 2:\n currentLength += (totalLength - documentData.lineWidths[letters[i].line]) / 2;\n break;\n\n default:\n break;\n }\n\n currentLine = letters[i].line;\n }\n\n if (ind !== letters[i].ind) {\n if (letters[ind]) {\n currentLength += letters[ind].extra;\n }\n\n currentLength += letters[i].an / 2;\n ind = letters[i].ind;\n }\n\n currentLength += alignment[0] * letters[i].an * 0.005;\n var animatorOffset = 0;\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.p.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n animatorOffset += animatorProps.p.v[0] * mult[0];\n } else {\n animatorOffset += animatorProps.p.v[0] * mult;\n }\n }\n\n if (animatorProps.a.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n animatorOffset += animatorProps.a.v[0] * mult[0];\n } else {\n animatorOffset += animatorProps.a.v[0] * mult;\n }\n }\n }\n\n flag = true; // Force alignment only works with a single line for now\n\n if (this._pathData.a.v) {\n currentLength = 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 currentLength += this._pathData.f.v;\n }\n\n while (flag) {\n if (segmentLength + partialLength >= currentLength + animatorOffset || !points) {\n perc = (currentLength + animatorOffset - segmentLength) / currentPoint.partialLength;\n xPathPos = prevPoint.point[0] + (currentPoint.point[0] - prevPoint.point[0]) * perc;\n yPathPos = prevPoint.point[1] + (currentPoint.point[1] - prevPoint.point[1]) * perc;\n matrixHelper.translate(-alignment[0] * letters[i].an * 0.005, -(alignment[1] * yOff) * 0.01);\n flag = false;\n } else if (points) {\n segmentLength += currentPoint.partialLength;\n pointInd += 1;\n\n if (pointInd >= points.length) {\n pointInd = 0;\n segmentInd += 1;\n\n if (!segments[segmentInd]) {\n if (mask.v.c) {\n pointInd = 0;\n segmentInd = 0;\n points = segments[segmentInd].points;\n } else {\n segmentLength -= currentPoint.partialLength;\n points = null;\n }\n } else {\n points = segments[segmentInd].points;\n }\n }\n\n if (points) {\n prevPoint = currentPoint;\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n }\n }\n }\n\n offf = letters[i].an / 2 - letters[i].add;\n matrixHelper.translate(-offf, 0, 0);\n } else {\n offf = letters[i].an / 2 - letters[i].add;\n matrixHelper.translate(-offf, 0, 0); // Grouping alignment\n\n matrixHelper.translate(-alignment[0] * letters[i].an * 0.005, -alignment[1] * yOff * 0.01, 0);\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.t.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars); // This condition is to prevent applying tracking to first character in each line. Might be better to use a boolean \"isNewLine\"\n\n if (xPos !== 0 || documentData.j !== 0) {\n if (this._hasMaskedPath) {\n if (mult.length) {\n currentLength += animatorProps.t.v * mult[0];\n } else {\n currentLength += animatorProps.t.v * mult;\n }\n } else if (mult.length) {\n xPos += animatorProps.t.v * mult[0];\n } else {\n xPos += animatorProps.t.v * mult;\n }\n }\n }\n }\n\n if (documentData.strokeWidthAnim) {\n sw = documentData.sw || 0;\n }\n\n if (documentData.strokeColorAnim) {\n if (documentData.sc) {\n sc = [documentData.sc[0], documentData.sc[1], documentData.sc[2]];\n } else {\n sc = [0, 0, 0];\n }\n }\n\n if (documentData.fillColorAnim && documentData.fc) {\n fc = [documentData.fc[0], documentData.fc[1], documentData.fc[2]];\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.a.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n matrixHelper.translate(-animatorProps.a.v[0] * mult[0], -animatorProps.a.v[1] * mult[1], animatorProps.a.v[2] * mult[2]);\n } else {\n matrixHelper.translate(-animatorProps.a.v[0] * mult, -animatorProps.a.v[1] * mult, animatorProps.a.v[2] * mult);\n }\n }\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.s.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n matrixHelper.scale(1 + (animatorProps.s.v[0] - 1) * mult[0], 1 + (animatorProps.s.v[1] - 1) * mult[1], 1);\n } else {\n matrixHelper.scale(1 + (animatorProps.s.v[0] - 1) * mult, 1 + (animatorProps.s.v[1] - 1) * mult, 1);\n }\n }\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (animatorProps.sk.propType) {\n if (mult.length) {\n matrixHelper.skewFromAxis(-animatorProps.sk.v * mult[0], animatorProps.sa.v * mult[1]);\n } else {\n matrixHelper.skewFromAxis(-animatorProps.sk.v * mult, animatorProps.sa.v * mult);\n }\n }\n\n if (animatorProps.r.propType) {\n if (mult.length) {\n matrixHelper.rotateZ(-animatorProps.r.v * mult[2]);\n } else {\n matrixHelper.rotateZ(-animatorProps.r.v * mult);\n }\n }\n\n if (animatorProps.ry.propType) {\n if (mult.length) {\n matrixHelper.rotateY(animatorProps.ry.v * mult[1]);\n } else {\n matrixHelper.rotateY(animatorProps.ry.v * mult);\n }\n }\n\n if (animatorProps.rx.propType) {\n if (mult.length) {\n matrixHelper.rotateX(animatorProps.rx.v * mult[0]);\n } else {\n matrixHelper.rotateX(animatorProps.rx.v * mult);\n }\n }\n\n if (animatorProps.o.propType) {\n if (mult.length) {\n elemOpacity += (animatorProps.o.v * mult[0] - elemOpacity) * mult[0];\n } else {\n elemOpacity += (animatorProps.o.v * mult - elemOpacity) * mult;\n }\n }\n\n if (documentData.strokeWidthAnim && animatorProps.sw.propType) {\n if (mult.length) {\n sw += animatorProps.sw.v * mult[0];\n } else {\n sw += animatorProps.sw.v * mult;\n }\n }\n\n if (documentData.strokeColorAnim && animatorProps.sc.propType) {\n for (k = 0; k < 3; k += 1) {\n if (mult.length) {\n sc[k] += (animatorProps.sc.v[k] - sc[k]) * mult[0];\n } else {\n sc[k] += (animatorProps.sc.v[k] - sc[k]) * mult;\n }\n }\n }\n\n if (documentData.fillColorAnim && documentData.fc) {\n if (animatorProps.fc.propType) {\n for (k = 0; k < 3; k += 1) {\n if (mult.length) {\n fc[k] += (animatorProps.fc.v[k] - fc[k]) * mult[0];\n } else {\n fc[k] += (animatorProps.fc.v[k] - fc[k]) * mult;\n }\n }\n }\n\n if (animatorProps.fh.propType) {\n if (mult.length) {\n fc = addHueToRGB(fc, animatorProps.fh.v * mult[0]);\n } else {\n fc = addHueToRGB(fc, animatorProps.fh.v * mult);\n }\n }\n\n if (animatorProps.fs.propType) {\n if (mult.length) {\n fc = addSaturationToRGB(fc, animatorProps.fs.v * mult[0]);\n } else {\n fc = addSaturationToRGB(fc, animatorProps.fs.v * mult);\n }\n }\n\n if (animatorProps.fb.propType) {\n if (mult.length) {\n fc = addBrightnessToRGB(fc, animatorProps.fb.v * mult[0]);\n } else {\n fc = addBrightnessToRGB(fc, animatorProps.fb.v * mult);\n }\n }\n }\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.p.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (this._hasMaskedPath) {\n if (mult.length) {\n matrixHelper.translate(0, animatorProps.p.v[1] * mult[0], -animatorProps.p.v[2] * mult[1]);\n } else {\n matrixHelper.translate(0, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);\n }\n } else if (mult.length) {\n matrixHelper.translate(animatorProps.p.v[0] * mult[0], animatorProps.p.v[1] * mult[1], -animatorProps.p.v[2] * mult[2]);\n } else {\n matrixHelper.translate(animatorProps.p.v[0] * mult, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);\n }\n }\n }\n\n if (documentData.strokeWidthAnim) {\n letterSw = sw < 0 ? 0 : sw;\n }\n\n if (documentData.strokeColorAnim) {\n letterSc = 'rgb(' + Math.round(sc[0] * 255) + ',' + Math.round(sc[1] * 255) + ',' + Math.round(sc[2] * 255) + ')';\n }\n\n if (documentData.fillColorAnim && documentData.fc) {\n letterFc = 'rgb(' + Math.round(fc[0] * 255) + ',' + Math.round(fc[1] * 255) + ',' + Math.round(fc[2] * 255) + ')';\n }\n\n if (this._hasMaskedPath) {\n matrixHelper.translate(0, -documentData.ls);\n matrixHelper.translate(0, alignment[1] * yOff * 0.01 + yPos, 0);\n\n if (this._pathData.p.v) {\n tanAngle = (currentPoint.point[1] - prevPoint.point[1]) / (currentPoint.point[0] - prevPoint.point[0]);\n var rot = Math.atan(tanAngle) * 180 / Math.PI;\n\n if (currentPoint.point[0] < prevPoint.point[0]) {\n rot += 180;\n }\n\n matrixHelper.rotate(-rot * Math.PI / 180);\n }\n\n matrixHelper.translate(xPathPos, yPathPos, 0);\n currentLength -= alignment[0] * letters[i].an * 0.005;\n\n if (letters[i + 1] && ind !== letters[i + 1].ind) {\n currentLength += letters[i].an / 2;\n currentLength += documentData.tr * 0.001 * documentData.finalSize;\n }\n } else {\n matrixHelper.translate(xPos, yPos, 0);\n\n if (documentData.ps) {\n // matrixHelper.translate(documentData.ps[0],documentData.ps[1],0);\n matrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);\n }\n\n switch (documentData.j) {\n case 1:\n matrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]), 0, 0);\n break;\n\n case 2:\n matrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]) / 2, 0, 0);\n break;\n\n default:\n break;\n }\n\n matrixHelper.translate(0, -documentData.ls);\n matrixHelper.translate(offf, 0, 0);\n matrixHelper.translate(alignment[0] * letters[i].an * 0.005, alignment[1] * yOff * 0.01, 0);\n xPos += letters[i].l + documentData.tr * 0.001 * documentData.finalSize;\n }\n\n if (renderType === 'html') {\n letterM = matrixHelper.toCSS();\n } else if (renderType === 'svg') {\n letterM = matrixHelper.to2dCSS();\n } else {\n letterP = [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 }\n\n letterO = elemOpacity;\n }\n\n if (renderedLettersCount <= i) {\n letterValue = new LetterProps(letterO, letterSw, letterSc, letterFc, letterM, letterP);\n this.renderedLetters.push(letterValue);\n renderedLettersCount += 1;\n this.lettersChangedFlag = true;\n } else {\n letterValue = this.renderedLetters[i];\n this.lettersChangedFlag = letterValue.update(letterO, letterSw, letterSc, letterFc, letterM, letterP) || this.lettersChangedFlag;\n }\n }\n };\n\n TextAnimatorProperty.prototype.getValue = function () {\n if (this._elem.globalData.frameId === this._frameId) {\n return;\n }\n\n this._frameId = this._elem.globalData.frameId;\n this.iterateDynamicProperties();\n };\n\n TextAnimatorProperty.prototype.mHelper = new Matrix();\n TextAnimatorProperty.prototype.defaultPropsArray = [];\n extendPrototype([DynamicPropertyContainer], TextAnimatorProperty);\n\n function ITextElement() {}\n\n ITextElement.prototype.initElement = function (data, globalData, comp) {\n this.lettersChangedFlag = true;\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.textProperty = new TextProperty(this, data.t, this.dynamicProperties);\n this.textAnimator = new TextAnimatorProperty(data.t, this.renderType, this);\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n this.initRenderable();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n this.createContent();\n this.hide();\n this.textAnimator.searchProperties(this.dynamicProperties);\n };\n\n ITextElement.prototype.prepareFrame = function (num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n\n if (this.textProperty._mdf || this.textProperty._isFirstFrame) {\n this.buildNewText();\n this.textProperty._isFirstFrame = false;\n this.textProperty._mdf = false;\n }\n };\n\n ITextElement.prototype.createPathShape = function (matrixHelper, shapes) {\n var j;\n var jLen = shapes.length;\n var pathNodes;\n var shapeStr = '';\n\n for (j = 0; j < jLen; j += 1) {\n if (shapes[j].ty === 'sh') {\n pathNodes = shapes[j].ks.k;\n shapeStr += buildShapeString(pathNodes, pathNodes.i.length, true, matrixHelper);\n }\n }\n\n return shapeStr;\n };\n\n ITextElement.prototype.updateDocumentData = function (newData, index) {\n this.textProperty.updateDocumentData(newData, index);\n };\n\n ITextElement.prototype.canResizeFont = function (_canResize) {\n this.textProperty.canResizeFont(_canResize);\n };\n\n ITextElement.prototype.setMinimumFontSize = function (_fontSize) {\n this.textProperty.setMinimumFontSize(_fontSize);\n };\n\n ITextElement.prototype.applyTextPropertiesToMatrix = function (documentData, matrixHelper, lineNumber, xPos, yPos) {\n if (documentData.ps) {\n matrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);\n }\n\n matrixHelper.translate(0, -documentData.ls, 0);\n\n switch (documentData.j) {\n case 1:\n matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]), 0, 0);\n break;\n\n case 2:\n matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]) / 2, 0, 0);\n break;\n\n default:\n break;\n }\n\n matrixHelper.translate(xPos, yPos, 0);\n };\n\n ITextElement.prototype.buildColor = function (colorData) {\n return 'rgb(' + Math.round(colorData[0] * 255) + ',' + Math.round(colorData[1] * 255) + ',' + Math.round(colorData[2] * 255) + ')';\n };\n\n ITextElement.prototype.emptyProp = new LetterProps();\n\n ITextElement.prototype.destroy = function () {};\n\n var emptyShapeData = {\n shapes: []\n };\n\n function SVGTextLottieElement(data, globalData, comp) {\n this.textSpans = [];\n this.renderType = 'svg';\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], SVGTextLottieElement);\n\n SVGTextLottieElement.prototype.createContent = function () {\n if (this.data.singleShape && !this.globalData.fontManager.chars) {\n this.textContainer = createNS('text');\n }\n };\n\n SVGTextLottieElement.prototype.buildTextContents = function (textArray) {\n var i = 0;\n var len = textArray.length;\n var textContents = [];\n var currentTextContent = '';\n\n while (i < len) {\n if (textArray[i] === String.fromCharCode(13) || textArray[i] === String.fromCharCode(3)) {\n textContents.push(currentTextContent);\n currentTextContent = '';\n } else {\n currentTextContent += textArray[i];\n }\n\n i += 1;\n }\n\n textContents.push(currentTextContent);\n return textContents;\n };\n\n SVGTextLottieElement.prototype.buildShapeData = function (data, scale) {\n // data should probably be cloned to apply scale separately to each instance of a text on different layers\n // but since text internal content gets only rendered once and then it's never rerendered,\n // it's probably safe not to clone data and reuse always the same instance even if the object is mutated.\n // Avoiding cloning is preferred since cloning each character shape data is expensive\n if (data.shapes && data.shapes.length) {\n var shape = data.shapes[0];\n\n if (shape.it) {\n var shapeItem = shape.it[shape.it.length - 1];\n\n if (shapeItem.s) {\n shapeItem.s.k[0] = scale;\n shapeItem.s.k[1] = scale;\n }\n }\n }\n\n return data;\n };\n\n SVGTextLottieElement.prototype.buildNewText = function () {\n this.addDynamicProperty(this);\n var i;\n var len;\n var documentData = this.textProperty.currentData;\n this.renderedLetters = createSizedArray(documentData ? documentData.l.length : 0);\n\n if (documentData.fc) {\n this.layerElement.setAttribute('fill', this.buildColor(documentData.fc));\n } else {\n this.layerElement.setAttribute('fill', 'rgba(0,0,0,0)');\n }\n\n if (documentData.sc) {\n this.layerElement.setAttribute('stroke', this.buildColor(documentData.sc));\n this.layerElement.setAttribute('stroke-width', documentData.sw);\n }\n\n this.layerElement.setAttribute('font-size', documentData.finalSize);\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\n\n if (fontData.fClass) {\n this.layerElement.setAttribute('class', fontData.fClass);\n } else {\n this.layerElement.setAttribute('font-family', fontData.fFamily);\n var fWeight = documentData.fWeight;\n var fStyle = documentData.fStyle;\n this.layerElement.setAttribute('font-style', fStyle);\n this.layerElement.setAttribute('font-weight', fWeight);\n }\n\n this.layerElement.setAttribute('aria-label', documentData.t);\n var letters = documentData.l || [];\n var usesGlyphs = !!this.globalData.fontManager.chars;\n len = letters.length;\n var tSpan;\n var matrixHelper = this.mHelper;\n var shapeStr = '';\n var singleShape = this.data.singleShape;\n var xPos = 0;\n var yPos = 0;\n var firstLine = true;\n var trackingOffset = documentData.tr * 0.001 * documentData.finalSize;\n\n if (singleShape && !usesGlyphs && !documentData.sz) {\n var tElement = this.textContainer;\n var justify = 'start';\n\n switch (documentData.j) {\n case 1:\n justify = 'end';\n break;\n\n case 2:\n justify = 'middle';\n break;\n\n default:\n justify = 'start';\n break;\n }\n\n tElement.setAttribute('text-anchor', justify);\n tElement.setAttribute('letter-spacing', trackingOffset);\n var textContent = this.buildTextContents(documentData.finalText);\n len = textContent.length;\n yPos = documentData.ps ? documentData.ps[1] + documentData.ascent : 0;\n\n for (i = 0; i < len; i += 1) {\n tSpan = this.textSpans[i].span || createNS('tspan');\n tSpan.textContent = textContent[i];\n tSpan.setAttribute('x', 0);\n tSpan.setAttribute('y', yPos);\n tSpan.style.display = 'inherit';\n tElement.appendChild(tSpan);\n\n if (!this.textSpans[i]) {\n this.textSpans[i] = {\n span: null,\n glyph: null\n };\n }\n\n this.textSpans[i].span = tSpan;\n yPos += documentData.finalLineHeight;\n }\n\n this.layerElement.appendChild(tElement);\n } else {\n var cachedSpansLength = this.textSpans.length;\n var charData;\n\n for (i = 0; i < len; i += 1) {\n if (!this.textSpans[i]) {\n this.textSpans[i] = {\n span: null,\n childSpan: null,\n glyph: null\n };\n }\n\n if (!usesGlyphs || !singleShape || i === 0) {\n tSpan = cachedSpansLength > i ? this.textSpans[i].span : createNS(usesGlyphs ? 'g' : 'text');\n\n if (cachedSpansLength <= i) {\n tSpan.setAttribute('stroke-linecap', 'butt');\n tSpan.setAttribute('stroke-linejoin', 'round');\n tSpan.setAttribute('stroke-miterlimit', '4');\n this.textSpans[i].span = tSpan;\n\n if (usesGlyphs) {\n var childSpan = createNS('g');\n tSpan.appendChild(childSpan);\n this.textSpans[i].childSpan = childSpan;\n }\n\n this.textSpans[i].span = tSpan;\n this.layerElement.appendChild(tSpan);\n }\n\n tSpan.style.display = 'inherit';\n }\n\n matrixHelper.reset();\n\n if (singleShape) {\n if (letters[i].n) {\n xPos = -trackingOffset;\n yPos += documentData.yOffset;\n yPos += firstLine ? 1 : 0;\n firstLine = false;\n }\n\n this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\n xPos += letters[i].l || 0; // xPos += letters[i].val === ' ' ? 0 : trackingOffset;\n\n xPos += trackingOffset;\n }\n\n if (usesGlyphs) {\n charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n var glyphElement; // t === 1 means the character has been replaced with an animated shaped\n\n if (charData.t === 1) {\n glyphElement = new SVGCompElement(charData.data, this.globalData, this);\n } else {\n var data = emptyShapeData;\n\n if (charData.data && charData.data.shapes) {\n data = this.buildShapeData(charData.data, documentData.finalSize);\n }\n\n glyphElement = new SVGShapeElement(data, this.globalData, this);\n }\n\n if (this.textSpans[i].glyph) {\n var glyph = this.textSpans[i].glyph;\n this.textSpans[i].childSpan.removeChild(glyph.layerElement);\n glyph.destroy();\n }\n\n this.textSpans[i].glyph = glyphElement;\n glyphElement._debug = true;\n glyphElement.prepareFrame(0);\n glyphElement.renderFrame();\n this.textSpans[i].childSpan.appendChild(glyphElement.layerElement); // when using animated shapes, the layer will be scaled instead of replacing the internal scale\n // this might have issues with strokes and might need a different solution\n\n if (charData.t === 1) {\n this.textSpans[i].childSpan.setAttribute('transform', 'scale(' + documentData.finalSize / 100 + ',' + documentData.finalSize / 100 + ')');\n }\n } else {\n if (singleShape) {\n tSpan.setAttribute('transform', 'translate(' + matrixHelper.props[12] + ',' + matrixHelper.props[13] + ')');\n }\n\n tSpan.textContent = letters[i].val;\n tSpan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\n } //\n\n }\n\n if (singleShape && tSpan) {\n tSpan.setAttribute('d', shapeStr);\n }\n }\n\n while (i < this.textSpans.length) {\n this.textSpans[i].span.style.display = 'none';\n i += 1;\n }\n\n this._sizeChanged = true;\n };\n\n SVGTextLottieElement.prototype.sourceRectAtTime = function () {\n this.prepareFrame(this.comp.renderedFrame - this.data.st);\n this.renderInnerContent();\n\n if (this._sizeChanged) {\n this._sizeChanged = false;\n var textBox = this.layerElement.getBBox();\n this.bbox = {\n top: textBox.y,\n left: textBox.x,\n width: textBox.width,\n height: textBox.height\n };\n }\n\n return this.bbox;\n };\n\n SVGTextLottieElement.prototype.getValue = function () {\n var i;\n var len = this.textSpans.length;\n var glyphElement;\n this.renderedFrame = this.comp.renderedFrame;\n\n for (i = 0; i < len; i += 1) {\n glyphElement = this.textSpans[i].glyph;\n\n if (glyphElement) {\n glyphElement.prepareFrame(this.comp.renderedFrame - this.data.st);\n\n if (glyphElement._mdf) {\n this._mdf = true;\n }\n }\n }\n };\n\n SVGTextLottieElement.prototype.renderInnerContent = function () {\n if (!this.data.singleShape || this._mdf) {\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n\n if (this.lettersChangedFlag || this.textAnimator.lettersChangedFlag) {\n this._sizeChanged = true;\n var i;\n var len;\n var renderedLetters = this.textAnimator.renderedLetters;\n var letters = this.textProperty.currentData.l;\n len = letters.length;\n var renderedLetter;\n var textSpan;\n var glyphElement;\n\n for (i = 0; i < len; i += 1) {\n if (!letters[i].n) {\n renderedLetter = renderedLetters[i];\n textSpan = this.textSpans[i].span;\n glyphElement = this.textSpans[i].glyph;\n\n if (glyphElement) {\n glyphElement.renderFrame();\n }\n\n if (renderedLetter._mdf.m) {\n textSpan.setAttribute('transform', renderedLetter.m);\n }\n\n if (renderedLetter._mdf.o) {\n textSpan.setAttribute('opacity', renderedLetter.o);\n }\n\n if (renderedLetter._mdf.sw) {\n textSpan.setAttribute('stroke-width', renderedLetter.sw);\n }\n\n if (renderedLetter._mdf.sc) {\n textSpan.setAttribute('stroke', renderedLetter.sc);\n }\n\n if (renderedLetter._mdf.fc) {\n textSpan.setAttribute('fill', renderedLetter.fc);\n }\n }\n }\n }\n }\n };\n\n function ISolidElement(data, globalData, comp) {\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([IImageElement], ISolidElement);\n\n ISolidElement.prototype.createContent = function () {\n var rect = createNS('rect'); /// /rect.style.width = this.data.sw;\n /// /rect.style.height = this.data.sh;\n /// /rect.style.fill = this.data.sc;\n\n rect.setAttribute('width', this.data.sw);\n rect.setAttribute('height', this.data.sh);\n rect.setAttribute('fill', this.data.sc);\n this.layerElement.appendChild(rect);\n };\n\n function NullElement(data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initFrame();\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n }\n\n NullElement.prototype.prepareFrame = function (num) {\n this.prepareProperties(num, true);\n };\n\n NullElement.prototype.renderFrame = function () {};\n\n NullElement.prototype.getBaseElement = function () {\n return null;\n };\n\n NullElement.prototype.destroy = function () {};\n\n NullElement.prototype.sourceRectAtTime = function () {};\n\n NullElement.prototype.hide = function () {};\n\n extendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement], NullElement);\n\n function SVGRendererBase() {}\n\n extendPrototype([BaseRenderer], SVGRendererBase);\n\n SVGRendererBase.prototype.createNull = function (data) {\n return new NullElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createShape = function (data) {\n return new SVGShapeElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createText = function (data) {\n return new SVGTextLottieElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createImage = function (data) {\n return new IImageElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createSolid = function (data) {\n return new ISolidElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.configAnimation = function (animData) {\n this.svgElement.setAttribute('xmlns', 'http://www.w3.org/2000/svg');\n this.svgElement.setAttribute('xmlns:xlink', 'http://www.w3.org/1999/xlink');\n\n if (this.renderConfig.viewBoxSize) {\n this.svgElement.setAttribute('viewBox', this.renderConfig.viewBoxSize);\n } else {\n this.svgElement.setAttribute('viewBox', '0 0 ' + animData.w + ' ' + animData.h);\n }\n\n if (!this.renderConfig.viewBoxOnly) {\n this.svgElement.setAttribute('width', animData.w);\n this.svgElement.setAttribute('height', animData.h);\n this.svgElement.style.width = '100%';\n this.svgElement.style.height = '100%';\n this.svgElement.style.transform = 'translate3d(0,0,0)';\n this.svgElement.style.contentVisibility = this.renderConfig.contentVisibility;\n }\n\n if (this.renderConfig.width) {\n this.svgElement.setAttribute('width', this.renderConfig.width);\n }\n\n if (this.renderConfig.height) {\n this.svgElement.setAttribute('height', this.renderConfig.height);\n }\n\n if (this.renderConfig.className) {\n this.svgElement.setAttribute('class', this.renderConfig.className);\n }\n\n if (this.renderConfig.id) {\n this.svgElement.setAttribute('id', this.renderConfig.id);\n }\n\n if (this.renderConfig.focusable !== undefined) {\n this.svgElement.setAttribute('focusable', this.renderConfig.focusable);\n }\n\n this.svgElement.setAttribute('preserveAspectRatio', this.renderConfig.preserveAspectRatio); // this.layerElement.style.transform = 'translate3d(0,0,0)';\n // this.layerElement.style.transformOrigin = this.layerElement.style.mozTransformOrigin = this.layerElement.style.webkitTransformOrigin = this.layerElement.style['-webkit-transform'] = \"0px 0px 0px\";\n\n this.animationItem.wrapper.appendChild(this.svgElement); // Mask animation\n\n var defs = this.globalData.defs;\n this.setupGlobalData(animData, defs);\n this.globalData.progressiveLoad = this.renderConfig.progressiveLoad;\n this.data = animData;\n var maskElement = createNS('clipPath');\n var rect = createNS('rect');\n rect.setAttribute('width', animData.w);\n rect.setAttribute('height', animData.h);\n rect.setAttribute('x', 0);\n rect.setAttribute('y', 0);\n var maskId = createElementID();\n maskElement.setAttribute('id', maskId);\n maskElement.appendChild(rect);\n this.layerElement.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + maskId + ')');\n defs.appendChild(maskElement);\n this.layers = animData.layers;\n this.elements = createSizedArray(animData.layers.length);\n };\n\n SVGRendererBase.prototype.destroy = function () {\n if (this.animationItem.wrapper) {\n this.animationItem.wrapper.innerText = '';\n }\n\n this.layerElement = null;\n this.globalData.defs = null;\n var i;\n var len = this.layers ? this.layers.length : 0;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i] && this.elements[i].destroy) {\n this.elements[i].destroy();\n }\n }\n\n this.elements.length = 0;\n this.destroyed = true;\n this.animationItem = null;\n };\n\n SVGRendererBase.prototype.updateContainerSize = function () {};\n\n SVGRendererBase.prototype.findIndexByInd = function (ind) {\n var i = 0;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.layers[i].ind === ind) {\n return i;\n }\n }\n\n return -1;\n };\n\n SVGRendererBase.prototype.buildItem = function (pos) {\n var elements = this.elements;\n\n if (elements[pos] || this.layers[pos].ty === 99) {\n return;\n }\n\n elements[pos] = true;\n var element = this.createItem(this.layers[pos]);\n elements[pos] = element;\n\n if (getExpressionsPlugin()) {\n if (this.layers[pos].ty === 0) {\n this.globalData.projectInterface.registerComposition(element);\n }\n\n element.initExpressions();\n }\n\n this.appendElementInPos(element, pos);\n\n if (this.layers[pos].tt) {\n var elementIndex = 'tp' in this.layers[pos] ? this.findIndexByInd(this.layers[pos].tp) : pos - 1;\n\n if (elementIndex === -1) {\n return;\n }\n\n if (!this.elements[elementIndex] || this.elements[elementIndex] === true) {\n this.buildItem(elementIndex);\n this.addPendingElement(element);\n } else {\n var matteElement = elements[elementIndex];\n var matteMask = matteElement.getMatte(this.layers[pos].tt);\n element.setMatte(matteMask);\n }\n }\n };\n\n SVGRendererBase.prototype.checkPendingElements = function () {\n while (this.pendingElements.length) {\n var element = this.pendingElements.pop();\n element.checkParenting();\n\n if (element.data.tt) {\n var i = 0;\n var len = this.elements.length;\n\n while (i < len) {\n if (this.elements[i] === element) {\n var elementIndex = 'tp' in element.data ? this.findIndexByInd(element.data.tp) : i - 1;\n var matteElement = this.elements[elementIndex];\n var matteMask = matteElement.getMatte(this.layers[i].tt);\n element.setMatte(matteMask);\n break;\n }\n\n i += 1;\n }\n }\n }\n };\n\n SVGRendererBase.prototype.renderFrame = function (num) {\n if (this.renderedFrame === num || this.destroyed) {\n return;\n }\n\n if (num === null) {\n num = this.renderedFrame;\n } else {\n this.renderedFrame = num;\n } // console.log('-------');\n // console.log('FRAME ',num);\n\n\n this.globalData.frameNum = num;\n this.globalData.frameId += 1;\n this.globalData.projectInterface.currentFrame = num;\n this.globalData._mdf = false;\n var i;\n var len = this.layers.length;\n\n if (!this.completeLayers) {\n this.checkLayers(num);\n }\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].prepareFrame(num - this.layers[i].st);\n }\n }\n\n if (this.globalData._mdf) {\n for (i = 0; i < len; i += 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n }\n };\n\n SVGRendererBase.prototype.appendElementInPos = function (element, pos) {\n var newElement = element.getBaseElement();\n\n if (!newElement) {\n return;\n }\n\n var i = 0;\n var nextElement;\n\n while (i < pos) {\n if (this.elements[i] && this.elements[i] !== true && this.elements[i].getBaseElement()) {\n nextElement = this.elements[i].getBaseElement();\n }\n\n i += 1;\n }\n\n if (nextElement) {\n this.layerElement.insertBefore(newElement, nextElement);\n } else {\n this.layerElement.appendChild(newElement);\n }\n };\n\n SVGRendererBase.prototype.hide = function () {\n this.layerElement.style.display = 'none';\n };\n\n SVGRendererBase.prototype.show = function () {\n this.layerElement.style.display = 'block';\n };\n\n function ICompElement() {}\n\n extendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement, RenderableDOMElement], ICompElement);\n\n ICompElement.prototype.initElement = function (data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initTransform(data, globalData, comp);\n this.initRenderable();\n this.initHierarchy();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n\n if (this.data.xt || !globalData.progressiveLoad) {\n this.buildAllItems();\n }\n\n this.hide();\n };\n /* ICompElement.prototype.hide = function(){\r\n if(!this.hidden){\r\n this.hideElement();\r\n var i,len = this.elements.length;\r\n for( i = 0; i < len; i+=1 ){\r\n if(this.elements[i]){\r\n this.elements[i].hide();\r\n }\r\n }\r\n }\r\n }; */\n\n\n ICompElement.prototype.prepareFrame = function (num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n\n if (!this.isInRange && !this.data.xt) {\n return;\n }\n\n if (!this.tm._placeholder) {\n var timeRemapped = this.tm.v;\n\n if (timeRemapped === this.data.op) {\n timeRemapped = this.data.op - 1;\n }\n\n this.renderedFrame = timeRemapped;\n } else {\n this.renderedFrame = num / this.data.sr;\n }\n\n var i;\n var len = this.elements.length;\n\n if (!this.completeLayers) {\n this.checkLayers(this.renderedFrame);\n } // This iteration needs to be backwards because of how expressions connect between each other\n\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].prepareFrame(this.renderedFrame - this.layers[i].st);\n\n if (this.elements[i]._mdf) {\n this._mdf = true;\n }\n }\n }\n };\n\n ICompElement.prototype.renderInnerContent = function () {\n var i;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n };\n\n ICompElement.prototype.setElements = function (elems) {\n this.elements = elems;\n };\n\n ICompElement.prototype.getElements = function () {\n return this.elements;\n };\n\n ICompElement.prototype.destroyElements = function () {\n var i;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i]) {\n this.elements[i].destroy();\n }\n }\n };\n\n ICompElement.prototype.destroy = function () {\n this.destroyElements();\n this.destroyBaseElement();\n };\n\n function SVGCompElement(data, globalData, comp) {\n this.layers = data.layers;\n this.supports3d = true;\n this.completeLayers = false;\n this.pendingElements = [];\n this.elements = this.layers ? createSizedArray(this.layers.length) : [];\n this.initElement(data, globalData, comp);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n\n extendPrototype([SVGRendererBase, ICompElement, SVGBaseElement], SVGCompElement);\n\n SVGCompElement.prototype.createComp = function (data) {\n return new SVGCompElement(data, this.globalData, this);\n };\n\n function SVGRenderer(animationItem, config) {\n this.animationItem = animationItem;\n this.layers = null;\n this.renderedFrame = -1;\n this.svgElement = createNS('svg');\n var ariaLabel = '';\n\n if (config && config.title) {\n var titleElement = createNS('title');\n var titleId = createElementID();\n titleElement.setAttribute('id', titleId);\n titleElement.textContent = config.title;\n this.svgElement.appendChild(titleElement);\n ariaLabel += titleId;\n }\n\n if (config && config.description) {\n var descElement = createNS('desc');\n var descId = createElementID();\n descElement.setAttribute('id', descId);\n descElement.textContent = config.description;\n this.svgElement.appendChild(descElement);\n ariaLabel += ' ' + descId;\n }\n\n if (ariaLabel) {\n this.svgElement.setAttribute('aria-labelledby', ariaLabel);\n }\n\n var defs = createNS('defs');\n this.svgElement.appendChild(defs);\n var maskElement = createNS('g');\n this.svgElement.appendChild(maskElement);\n this.layerElement = maskElement;\n this.renderConfig = {\n preserveAspectRatio: config && config.preserveAspectRatio || 'xMidYMid meet',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n contentVisibility: config && config.contentVisibility || 'visible',\n progressiveLoad: config && config.progressiveLoad || false,\n hideOnTransparent: !(config && config.hideOnTransparent === false),\n viewBoxOnly: config && config.viewBoxOnly || false,\n viewBoxSize: config && config.viewBoxSize || false,\n className: config && config.className || '',\n id: config && config.id || '',\n focusable: config && config.focusable,\n filterSize: {\n width: config && config.filterSize && config.filterSize.width || '100%',\n height: config && config.filterSize && config.filterSize.height || '100%',\n x: config && config.filterSize && config.filterSize.x || '0%',\n y: config && config.filterSize && config.filterSize.y || '0%'\n },\n width: config && config.width,\n height: config && config.height,\n runExpressions: !config || config.runExpressions === undefined || config.runExpressions\n };\n this.globalData = {\n _mdf: false,\n frameNum: -1,\n defs: defs,\n renderConfig: this.renderConfig\n };\n this.elements = [];\n this.pendingElements = [];\n this.destroyed = false;\n this.rendererType = 'svg';\n }\n\n extendPrototype([SVGRendererBase], SVGRenderer);\n\n SVGRenderer.prototype.createComp = function (data) {\n return new SVGCompElement(data, this.globalData, this);\n };\n\n function CVContextData() {\n this.saved = [];\n this.cArrPos = 0;\n this.cTr = new Matrix();\n this.cO = 1;\n var i;\n var len = 15;\n this.savedOp = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n this.saved[i] = createTypedArray('float32', 16);\n }\n\n this._length = len;\n }\n\n CVContextData.prototype.duplicate = function () {\n var newLength = this._length * 2;\n var currentSavedOp = this.savedOp;\n this.savedOp = createTypedArray('float32', newLength);\n this.savedOp.set(currentSavedOp);\n var i = 0;\n\n for (i = this._length; i < newLength; i += 1) {\n this.saved[i] = createTypedArray('float32', 16);\n }\n\n this._length = newLength;\n };\n\n CVContextData.prototype.reset = function () {\n this.cArrPos = 0;\n this.cTr.reset();\n this.cO = 1;\n };\n\n CVContextData.prototype.popTransform = function () {\n var popped = this.saved[this.cArrPos];\n var i;\n var arr = this.cTr.props;\n\n for (i = 0; i < 16; i += 1) {\n arr[i] = popped[i];\n }\n\n return popped;\n };\n\n CVContextData.prototype.popOpacity = function () {\n var popped = this.savedOp[this.cArrPos];\n this.cO = popped;\n return popped;\n };\n\n CVContextData.prototype.pop = function () {\n this.cArrPos -= 1;\n var transform = this.popTransform();\n var opacity = this.popOpacity();\n return {\n transform: transform,\n opacity: opacity\n };\n };\n\n CVContextData.prototype.push = function () {\n var props = this.cTr.props;\n\n if (this._length <= this.cArrPos) {\n this.duplicate();\n }\n\n var i;\n var arr = this.saved[this.cArrPos];\n\n for (i = 0; i < 16; i += 1) {\n arr[i] = props[i];\n }\n\n this.savedOp[this.cArrPos] = this.cO;\n this.cArrPos += 1;\n };\n\n CVContextData.prototype.getTransform = function () {\n return this.cTr;\n };\n\n CVContextData.prototype.getOpacity = function () {\n return this.cO;\n };\n\n CVContextData.prototype.setOpacity = function (value) {\n this.cO = value;\n };\n\n function ShapeTransformManager() {\n this.sequences = {};\n this.sequenceList = [];\n this.transform_key_count = 0;\n }\n\n ShapeTransformManager.prototype = {\n addTransformSequence: function addTransformSequence(transforms) {\n var i;\n var len = transforms.length;\n var key = '_';\n\n for (i = 0; i < len; i += 1) {\n key += transforms[i].transform.key + '_';\n }\n\n var sequence = this.sequences[key];\n\n if (!sequence) {\n sequence = {\n transforms: [].concat(transforms),\n finalTransform: new Matrix(),\n _mdf: false\n };\n this.sequences[key] = sequence;\n this.sequenceList.push(sequence);\n }\n\n return sequence;\n },\n processSequence: function processSequence(sequence, isFirstFrame) {\n var i = 0;\n var len = sequence.transforms.length;\n var _mdf = isFirstFrame;\n\n while (i < len && !isFirstFrame) {\n if (sequence.transforms[i].transform.mProps._mdf) {\n _mdf = true;\n break;\n }\n\n i += 1;\n }\n\n if (_mdf) {\n var props;\n sequence.finalTransform.reset();\n\n for (i = len - 1; i >= 0; i -= 1) {\n props = sequence.transforms[i].transform.mProps.v.props;\n sequence.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 }\n }\n\n sequence._mdf = _mdf;\n },\n processSequences: function processSequences(isFirstFrame) {\n var i;\n var len = this.sequenceList.length;\n\n for (i = 0; i < len; i += 1) {\n this.processSequence(this.sequenceList[i], isFirstFrame);\n }\n },\n getNewKey: function getNewKey() {\n this.transform_key_count += 1;\n return '_' + this.transform_key_count;\n }\n };\n\n var lumaLoader = function lumaLoader() {\n var id = '__lottie_element_luma_buffer';\n var lumaBuffer = null;\n var lumaBufferCtx = null;\n var svg = null; // This alternate solution has a slight delay before the filter is applied, resulting in a flicker on the first frame.\n // Keeping this here for reference, and in the future, if offscreen canvas supports url filters, this can be used.\n // For now, neither of them work for offscreen canvas, so canvas workers can't support the luma track matte mask.\n // Naming it solution 2 to mark the extra comment lines.\n\n /*\r\n var svgString = [\r\n '',\r\n '',\r\n '',\r\n '',\r\n '',\r\n ].join('');\r\n var blob = new Blob([svgString], { type: 'image/svg+xml' });\r\n var url = URL.createObjectURL(blob);\r\n */\n\n function createLumaSvgFilter() {\n var _svg = createNS('svg');\n\n var fil = createNS('filter');\n var matrix = createNS('feColorMatrix');\n fil.setAttribute('id', id);\n matrix.setAttribute('type', 'matrix');\n matrix.setAttribute('color-interpolation-filters', 'sRGB');\n matrix.setAttribute('values', '0.3, 0.3, 0.3, 0, 0, 0.3, 0.3, 0.3, 0, 0, 0.3, 0.3, 0.3, 0, 0, 0.3, 0.3, 0.3, 0, 0');\n fil.appendChild(matrix);\n\n _svg.appendChild(fil);\n\n _svg.setAttribute('id', id + '_svg');\n\n if (featureSupport.svgLumaHidden) {\n _svg.style.display = 'none';\n }\n\n return _svg;\n }\n\n function loadLuma() {\n if (!lumaBuffer) {\n svg = createLumaSvgFilter();\n document.body.appendChild(svg);\n lumaBuffer = createTag('canvas');\n lumaBufferCtx = lumaBuffer.getContext('2d'); // lumaBufferCtx.filter = `url('${url}#__lottie_element_luma_buffer')`; // part of solution 2\n\n lumaBufferCtx.filter = 'url(#' + id + ')';\n lumaBufferCtx.fillStyle = 'rgba(0,0,0,0)';\n lumaBufferCtx.fillRect(0, 0, 1, 1);\n }\n }\n\n function getLuma(canvas) {\n if (!lumaBuffer) {\n loadLuma();\n }\n\n lumaBuffer.width = canvas.width;\n lumaBuffer.height = canvas.height; // lumaBufferCtx.filter = `url('${url}#__lottie_element_luma_buffer')`; // part of solution 2\n\n lumaBufferCtx.filter = 'url(#' + id + ')';\n return lumaBuffer;\n }\n\n return {\n load: loadLuma,\n get: getLuma\n };\n };\n\n function createCanvas(width, height) {\n if (featureSupport.offscreenCanvas) {\n return new OffscreenCanvas(width, height);\n }\n\n var canvas = createTag('canvas');\n canvas.width = width;\n canvas.height = height;\n return canvas;\n }\n\n var assetLoader = function () {\n return {\n loadLumaCanvas: lumaLoader.load,\n getLumaCanvas: lumaLoader.get,\n createCanvas: createCanvas\n };\n }();\n\n function CVEffects() {}\n\n CVEffects.prototype.renderFrame = function () {};\n\n function CVMaskElement(data, element) {\n this.data = data;\n this.element = element;\n this.masksProperties = this.data.masksProperties || [];\n this.viewData = createSizedArray(this.masksProperties.length);\n var i;\n var len = this.masksProperties.length;\n var hasMasks = false;\n\n for (i = 0; i < len; i += 1) {\n if (this.masksProperties[i].mode !== 'n') {\n hasMasks = true;\n }\n\n this.viewData[i] = ShapePropertyFactory.getShapeProp(this.element, this.masksProperties[i], 3);\n }\n\n this.hasMasks = hasMasks;\n\n if (hasMasks) {\n this.element.addRenderableComponent(this);\n }\n }\n\n CVMaskElement.prototype.renderFrame = function () {\n if (!this.hasMasks) {\n return;\n }\n\n var transform = this.element.finalTransform.mat;\n var ctx = this.element.canvasContext;\n var i;\n var len = this.masksProperties.length;\n var pt;\n var pts;\n var data;\n ctx.beginPath();\n\n for (i = 0; i < len; i += 1) {\n if (this.masksProperties[i].mode !== 'n') {\n if (this.masksProperties[i].inv) {\n ctx.moveTo(0, 0);\n ctx.lineTo(this.element.globalData.compSize.w, 0);\n ctx.lineTo(this.element.globalData.compSize.w, this.element.globalData.compSize.h);\n ctx.lineTo(0, this.element.globalData.compSize.h);\n ctx.lineTo(0, 0);\n }\n\n data = this.viewData[i].v;\n pt = transform.applyToPointArray(data.v[0][0], data.v[0][1], 0);\n ctx.moveTo(pt[0], pt[1]);\n var j;\n var jLen = data._length;\n\n for (j = 1; j < jLen; j += 1) {\n pts = transform.applyToTriplePoints(data.o[j - 1], data.i[j], data.v[j]);\n ctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);\n }\n\n pts = transform.applyToTriplePoints(data.o[j - 1], data.i[0], data.v[0]);\n ctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);\n }\n }\n\n this.element.globalData.renderer.save(true);\n ctx.clip();\n };\n\n CVMaskElement.prototype.getMaskProperty = MaskElement.prototype.getMaskProperty;\n\n CVMaskElement.prototype.destroy = function () {\n this.element = null;\n };\n\n function CVBaseElement() {}\n\n var operationsMap = {\n 1: 'source-in',\n 2: 'source-out',\n 3: 'source-in',\n 4: 'source-out'\n };\n CVBaseElement.prototype = {\n createElements: function createElements() {},\n initRendererElement: function initRendererElement() {},\n createContainerElements: function createContainerElements() {\n // If the layer is masked we will use two buffers to store each different states of the drawing\n // This solution is not ideal for several reason. But unfortunately, because of the recursive\n // nature of the render tree, it's the only simple way to make sure one inner mask doesn't override an outer mask.\n // TODO: try to reduce the size of these buffers to the size of the composition contaning the layer\n // It might be challenging because the layer most likely is transformed in some way\n if (this.data.tt >= 1) {\n this.buffers = [];\n var canvasContext = this.globalData.canvasContext;\n var bufferCanvas = assetLoader.createCanvas(canvasContext.canvas.width, canvasContext.canvas.height);\n this.buffers.push(bufferCanvas);\n var bufferCanvas2 = assetLoader.createCanvas(canvasContext.canvas.width, canvasContext.canvas.height);\n this.buffers.push(bufferCanvas2);\n\n if (this.data.tt >= 3 && !document._isProxy) {\n assetLoader.loadLumaCanvas();\n }\n }\n\n this.canvasContext = this.globalData.canvasContext;\n this.transformCanvas = this.globalData.transformCanvas;\n this.renderableEffectsManager = new CVEffects(this);\n },\n createContent: function createContent() {},\n setBlendMode: function setBlendMode() {\n var globalData = this.globalData;\n\n if (globalData.blendMode !== this.data.bm) {\n globalData.blendMode = this.data.bm;\n var blendModeValue = getBlendMode(this.data.bm);\n globalData.canvasContext.globalCompositeOperation = blendModeValue;\n }\n },\n createRenderableComponents: function createRenderableComponents() {\n this.maskManager = new CVMaskElement(this.data, this);\n },\n hideElement: function hideElement() {\n if (!this.hidden && (!this.isInRange || this.isTransparent)) {\n this.hidden = true;\n }\n },\n showElement: function showElement() {\n if (this.isInRange && !this.isTransparent) {\n this.hidden = false;\n this._isFirstFrame = true;\n this.maskManager._isFirstFrame = true;\n }\n },\n clearCanvas: function clearCanvas(canvasContext) {\n canvasContext.clearRect(this.transformCanvas.tx, this.transformCanvas.ty, this.transformCanvas.w * this.transformCanvas.sx, this.transformCanvas.h * this.transformCanvas.sy);\n },\n prepareLayer: function prepareLayer() {\n if (this.data.tt >= 1) {\n var buffer = this.buffers[0];\n var bufferCtx = buffer.getContext('2d');\n this.clearCanvas(bufferCtx); // on the first buffer we store the current state of the global drawing\n\n bufferCtx.drawImage(this.canvasContext.canvas, 0, 0); // The next four lines are to clear the canvas\n // TODO: Check if there is a way to clear the canvas without resetting the transform\n\n this.currentTransform = this.canvasContext.getTransform();\n this.canvasContext.setTransform(1, 0, 0, 1, 0, 0);\n this.clearCanvas(this.canvasContext);\n this.canvasContext.setTransform(this.currentTransform);\n }\n },\n exitLayer: function exitLayer() {\n if (this.data.tt >= 1) {\n var buffer = this.buffers[1]; // On the second buffer we store the current state of the global drawing\n // that only contains the content of this layer\n // (if it is a composition, it also includes the nested layers)\n\n var bufferCtx = buffer.getContext('2d');\n this.clearCanvas(bufferCtx);\n bufferCtx.drawImage(this.canvasContext.canvas, 0, 0); // We clear the canvas again\n\n this.canvasContext.setTransform(1, 0, 0, 1, 0, 0);\n this.clearCanvas(this.canvasContext);\n this.canvasContext.setTransform(this.currentTransform); // We draw the mask\n\n var mask = this.comp.getElementById('tp' in this.data ? this.data.tp : this.data.ind - 1);\n mask.renderFrame(true); // We draw the second buffer (that contains the content of this layer)\n\n this.canvasContext.setTransform(1, 0, 0, 1, 0, 0); // If the mask is a Luma matte, we need to do two extra painting operations\n // the _isProxy check is to avoid drawing a fake canvas in workers that will throw an error\n\n if (this.data.tt >= 3 && !document._isProxy) {\n // We copy the painted mask to a buffer that has a color matrix filter applied to it\n // that applies the rgb values to the alpha channel\n var lumaBuffer = assetLoader.getLumaCanvas(this.canvasContext.canvas);\n var lumaBufferCtx = lumaBuffer.getContext('2d');\n lumaBufferCtx.drawImage(this.canvasContext.canvas, 0, 0);\n this.clearCanvas(this.canvasContext); // we repaint the context with the mask applied to it\n\n this.canvasContext.drawImage(lumaBuffer, 0, 0);\n }\n\n this.canvasContext.globalCompositeOperation = operationsMap[this.data.tt];\n this.canvasContext.drawImage(buffer, 0, 0); // We finally draw the first buffer (that contains the content of the global drawing)\n // We use destination-over to draw the global drawing below the current layer\n\n this.canvasContext.globalCompositeOperation = 'destination-over';\n this.canvasContext.drawImage(this.buffers[0], 0, 0);\n this.canvasContext.setTransform(this.currentTransform); // We reset the globalCompositeOperation to source-over, the standard type of operation\n\n this.canvasContext.globalCompositeOperation = 'source-over';\n }\n },\n renderFrame: function renderFrame(forceRender) {\n if (this.hidden || this.data.hd) {\n return;\n }\n\n if (this.data.td === 1 && !forceRender) {\n return;\n }\n\n this.renderTransform();\n this.renderRenderable();\n this.setBlendMode();\n var forceRealStack = this.data.ty === 0;\n this.prepareLayer();\n this.globalData.renderer.save(forceRealStack);\n this.globalData.renderer.ctxTransform(this.finalTransform.mat.props);\n this.globalData.renderer.ctxOpacity(this.finalTransform.mProp.o.v);\n this.renderInnerContent();\n this.globalData.renderer.restore(forceRealStack);\n this.exitLayer();\n\n if (this.maskManager.hasMasks) {\n this.globalData.renderer.restore(true);\n }\n\n if (this._isFirstFrame) {\n this._isFirstFrame = false;\n }\n },\n destroy: function destroy() {\n this.canvasContext = null;\n this.data = null;\n this.globalData = null;\n this.maskManager.destroy();\n },\n mHelper: new Matrix()\n };\n CVBaseElement.prototype.hide = CVBaseElement.prototype.hideElement;\n CVBaseElement.prototype.show = CVBaseElement.prototype.showElement;\n\n function CVShapeData(element, data, styles, transformsManager) {\n this.styledShapes = [];\n this.tr = [0, 0, 0, 0, 0, 0];\n var ty = 4;\n\n if (data.ty === 'rc') {\n ty = 5;\n } else if (data.ty === 'el') {\n ty = 6;\n } else if (data.ty === 'sr') {\n ty = 7;\n }\n\n this.sh = ShapePropertyFactory.getShapeProp(element, data, ty, element);\n var i;\n var len = styles.length;\n var styledShape;\n\n for (i = 0; i < len; i += 1) {\n if (!styles[i].closed) {\n styledShape = {\n transforms: transformsManager.addTransformSequence(styles[i].transforms),\n trNodes: []\n };\n this.styledShapes.push(styledShape);\n styles[i].elements.push(styledShape);\n }\n }\n }\n\n CVShapeData.prototype.setAsAnimated = SVGShapeData.prototype.setAsAnimated;\n\n function CVShapeElement(data, globalData, comp) {\n this.shapes = [];\n this.shapesData = data.shapes;\n this.stylesList = [];\n this.itemsData = [];\n this.prevViewData = [];\n this.shapeModifiers = [];\n this.processedElements = [];\n this.transformsManager = new ShapeTransformManager();\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableElement], CVShapeElement);\n CVShapeElement.prototype.initElement = RenderableDOMElement.prototype.initElement;\n CVShapeElement.prototype.transformHelper = {\n opacity: 1,\n _opMdf: false\n };\n CVShapeElement.prototype.dashResetter = [];\n\n CVShapeElement.prototype.createContent = function () {\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, true, []);\n };\n\n CVShapeElement.prototype.createStyleElement = function (data, transforms) {\n var styleElem = {\n data: data,\n type: data.ty,\n preTransforms: this.transformsManager.addTransformSequence(transforms),\n transforms: [],\n elements: [],\n closed: data.hd === true\n };\n var elementData = {};\n\n if (data.ty === 'fl' || data.ty === 'st') {\n elementData.c = PropertyFactory.getProp(this, data.c, 1, 255, this);\n\n if (!elementData.c.k) {\n styleElem.co = 'rgb(' + bmFloor(elementData.c.v[0]) + ',' + bmFloor(elementData.c.v[1]) + ',' + bmFloor(elementData.c.v[2]) + ')';\n }\n } else if (data.ty === 'gf' || data.ty === 'gs') {\n elementData.s = PropertyFactory.getProp(this, data.s, 1, null, this);\n elementData.e = PropertyFactory.getProp(this, data.e, 1, null, this);\n elementData.h = PropertyFactory.getProp(this, data.h || {\n k: 0\n }, 0, 0.01, this);\n elementData.a = PropertyFactory.getProp(this, data.a || {\n k: 0\n }, 0, degToRads, this);\n elementData.g = new GradientProperty(this, data.g, this);\n }\n\n elementData.o = PropertyFactory.getProp(this, data.o, 0, 0.01, this);\n\n if (data.ty === 'st' || data.ty === 'gs') {\n styleElem.lc = lineCapEnum[data.lc || 2];\n styleElem.lj = lineJoinEnum[data.lj || 2];\n\n if (data.lj == 1) {\n // eslint-disable-line eqeqeq\n styleElem.ml = data.ml;\n }\n\n elementData.w = PropertyFactory.getProp(this, data.w, 0, null, this);\n\n if (!elementData.w.k) {\n styleElem.wi = elementData.w.v;\n }\n\n if (data.d) {\n var d = new DashProperty(this, data.d, 'canvas', this);\n elementData.d = d;\n\n if (!elementData.d.k) {\n styleElem.da = elementData.d.dashArray;\n styleElem[\"do\"] = elementData.d.dashoffset[0];\n }\n }\n } else {\n styleElem.r = data.r === 2 ? 'evenodd' : 'nonzero';\n }\n\n this.stylesList.push(styleElem);\n elementData.style = styleElem;\n return elementData;\n };\n\n CVShapeElement.prototype.createGroupElement = function () {\n var elementData = {\n it: [],\n prevViewData: []\n };\n return elementData;\n };\n\n CVShapeElement.prototype.createTransformElement = function (data) {\n var elementData = {\n transform: {\n opacity: 1,\n _opMdf: false,\n key: this.transformsManager.getNewKey(),\n op: PropertyFactory.getProp(this, data.o, 0, 0.01, this),\n mProps: TransformPropertyFactory.getTransformProperty(this, data, this)\n }\n };\n return elementData;\n };\n\n CVShapeElement.prototype.createShapeElement = function (data) {\n var elementData = new CVShapeData(this, data, this.stylesList, this.transformsManager);\n this.shapes.push(elementData);\n this.addShapeToModifiers(elementData);\n return elementData;\n };\n\n CVShapeElement.prototype.reloadShapes = function () {\n this._isFirstFrame = true;\n var i;\n var len = this.itemsData.length;\n\n for (i = 0; i < len; i += 1) {\n this.prevViewData[i] = this.itemsData[i];\n }\n\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, true, []);\n len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n this.dynamicProperties[i].getValue();\n }\n\n this.renderModifiers();\n this.transformsManager.processSequences(this._isFirstFrame);\n };\n\n CVShapeElement.prototype.addTransformToStyleList = function (transform) {\n var i;\n var len = this.stylesList.length;\n\n for (i = 0; i < len; i += 1) {\n if (!this.stylesList[i].closed) {\n this.stylesList[i].transforms.push(transform);\n }\n }\n };\n\n CVShapeElement.prototype.removeTransformFromStyleList = function () {\n var i;\n var len = this.stylesList.length;\n\n for (i = 0; i < len; i += 1) {\n if (!this.stylesList[i].closed) {\n this.stylesList[i].transforms.pop();\n }\n }\n };\n\n CVShapeElement.prototype.closeStyles = function (styles) {\n var i;\n var len = styles.length;\n\n for (i = 0; i < len; i += 1) {\n styles[i].closed = true;\n }\n };\n\n CVShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, shouldRender, transforms) {\n var i;\n var len = arr.length - 1;\n var j;\n var jLen;\n var ownStyles = [];\n var ownModifiers = [];\n var processedPos;\n var modifier;\n var currentTransform;\n var ownTransforms = [].concat(transforms);\n\n for (i = len; i >= 0; i -= 1) {\n processedPos = this.searchProcessedElement(arr[i]);\n\n if (!processedPos) {\n arr[i]._shouldRender = shouldRender;\n } else {\n itemsData[i] = prevViewData[processedPos - 1];\n }\n\n if (arr[i].ty === 'fl' || arr[i].ty === 'st' || arr[i].ty === 'gf' || arr[i].ty === 'gs') {\n if (!processedPos) {\n itemsData[i] = this.createStyleElement(arr[i], ownTransforms);\n } else {\n itemsData[i].style.closed = false;\n }\n\n ownStyles.push(itemsData[i].style);\n } else if (arr[i].ty === 'gr') {\n if (!processedPos) {\n itemsData[i] = this.createGroupElement(arr[i]);\n } else {\n jLen = itemsData[i].it.length;\n\n for (j = 0; j < jLen; j += 1) {\n itemsData[i].prevViewData[j] = itemsData[i].it[j];\n }\n }\n\n this.searchShapes(arr[i].it, itemsData[i].it, itemsData[i].prevViewData, shouldRender, ownTransforms);\n } else if (arr[i].ty === 'tr') {\n if (!processedPos) {\n currentTransform = this.createTransformElement(arr[i]);\n itemsData[i] = currentTransform;\n }\n\n ownTransforms.push(itemsData[i]);\n this.addTransformToStyleList(itemsData[i]);\n } else if (arr[i].ty === 'sh' || arr[i].ty === 'rc' || arr[i].ty === 'el' || arr[i].ty === 'sr') {\n if (!processedPos) {\n itemsData[i] = this.createShapeElement(arr[i]);\n }\n } else if (arr[i].ty === 'tm' || arr[i].ty === 'rd' || arr[i].ty === 'pb' || arr[i].ty === 'zz' || arr[i].ty === 'op') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n modifier.init(this, arr[i]);\n itemsData[i] = modifier;\n this.shapeModifiers.push(modifier);\n } else {\n modifier = itemsData[i];\n modifier.closed = false;\n }\n\n ownModifiers.push(modifier);\n } else if (arr[i].ty === 'rp') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n itemsData[i] = modifier;\n modifier.init(this, arr, i, itemsData);\n this.shapeModifiers.push(modifier);\n shouldRender = false;\n } else {\n modifier = itemsData[i];\n modifier.closed = true;\n }\n\n ownModifiers.push(modifier);\n }\n\n this.addProcessedElement(arr[i], i + 1);\n }\n\n this.removeTransformFromStyleList();\n this.closeStyles(ownStyles);\n len = ownModifiers.length;\n\n for (i = 0; i < len; i += 1) {\n ownModifiers[i].closed = true;\n }\n };\n\n CVShapeElement.prototype.renderInnerContent = function () {\n this.transformHelper.opacity = 1;\n this.transformHelper._opMdf = false;\n this.renderModifiers();\n this.transformsManager.processSequences(this._isFirstFrame);\n this.renderShape(this.transformHelper, this.shapesData, this.itemsData, true);\n };\n\n CVShapeElement.prototype.renderShapeTransform = function (parentTransform, groupTransform) {\n if (parentTransform._opMdf || groupTransform.op._mdf || this._isFirstFrame) {\n groupTransform.opacity = parentTransform.opacity;\n groupTransform.opacity *= groupTransform.op.v;\n groupTransform._opMdf = true;\n }\n };\n\n CVShapeElement.prototype.drawLayer = function () {\n var i;\n var len = this.stylesList.length;\n var j;\n var jLen;\n var k;\n var kLen;\n var elems;\n var nodes;\n var renderer = this.globalData.renderer;\n var ctx = this.globalData.canvasContext;\n var type;\n var currentStyle;\n\n for (i = 0; i < len; i += 1) {\n currentStyle = this.stylesList[i];\n type = currentStyle.type; // Skipping style when\n // Stroke width equals 0\n // style should not be rendered (extra unused repeaters)\n // current opacity equals 0\n // global opacity equals 0\n\n if (!((type === 'st' || type === 'gs') && currentStyle.wi === 0 || !currentStyle.data._shouldRender || currentStyle.coOp === 0 || this.globalData.currentGlobalAlpha === 0)) {\n renderer.save();\n elems = currentStyle.elements;\n\n if (type === 'st' || type === 'gs') {\n ctx.strokeStyle = type === 'st' ? currentStyle.co : currentStyle.grd;\n ctx.lineWidth = currentStyle.wi;\n ctx.lineCap = currentStyle.lc;\n ctx.lineJoin = currentStyle.lj;\n ctx.miterLimit = currentStyle.ml || 0;\n } else {\n ctx.fillStyle = type === 'fl' ? currentStyle.co : currentStyle.grd;\n }\n\n renderer.ctxOpacity(currentStyle.coOp);\n\n if (type !== 'st' && type !== 'gs') {\n ctx.beginPath();\n }\n\n renderer.ctxTransform(currentStyle.preTransforms.finalTransform.props);\n jLen = elems.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (type === 'st' || type === 'gs') {\n ctx.beginPath();\n\n if (currentStyle.da) {\n ctx.setLineDash(currentStyle.da);\n ctx.lineDashOffset = currentStyle[\"do\"];\n }\n }\n\n nodes = elems[j].trNodes;\n kLen = nodes.length;\n\n for (k = 0; k < kLen; k += 1) {\n if (nodes[k].t === 'm') {\n ctx.moveTo(nodes[k].p[0], nodes[k].p[1]);\n } else if (nodes[k].t === 'c') {\n ctx.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 } else {\n ctx.closePath();\n }\n }\n\n if (type === 'st' || type === 'gs') {\n ctx.stroke();\n\n if (currentStyle.da) {\n ctx.setLineDash(this.dashResetter);\n }\n }\n }\n\n if (type !== 'st' && type !== 'gs') {\n ctx.fill(currentStyle.r);\n }\n\n renderer.restore();\n }\n }\n };\n\n CVShapeElement.prototype.renderShape = function (parentTransform, items, data, isMain) {\n var i;\n var len = items.length - 1;\n var groupTransform;\n groupTransform = parentTransform;\n\n for (i = len; i >= 0; i -= 1) {\n if (items[i].ty === 'tr') {\n groupTransform = data[i].transform;\n this.renderShapeTransform(parentTransform, groupTransform);\n } else if (items[i].ty === 'sh' || items[i].ty === 'el' || items[i].ty === 'rc' || items[i].ty === 'sr') {\n this.renderPath(items[i], data[i]);\n } else if (items[i].ty === 'fl') {\n this.renderFill(items[i], data[i], groupTransform);\n } else if (items[i].ty === 'st') {\n this.renderStroke(items[i], data[i], groupTransform);\n } else if (items[i].ty === 'gf' || items[i].ty === 'gs') {\n this.renderGradientFill(items[i], data[i], groupTransform);\n } else if (items[i].ty === 'gr') {\n this.renderShape(groupTransform, items[i].it, data[i].it);\n } else if (items[i].ty === 'tm') {//\n }\n }\n\n if (isMain) {\n this.drawLayer();\n }\n };\n\n CVShapeElement.prototype.renderStyledShape = function (styledShape, shape) {\n if (this._isFirstFrame || shape._mdf || styledShape.transforms._mdf) {\n var shapeNodes = styledShape.trNodes;\n var paths = shape.paths;\n var i;\n var len;\n var j;\n var jLen = paths._length;\n shapeNodes.length = 0;\n var groupTransformMat = styledShape.transforms.finalTransform;\n\n for (j = 0; j < jLen; j += 1) {\n var pathNodes = paths.shapes[j];\n\n if (pathNodes && pathNodes.v) {\n len = pathNodes._length;\n\n for (i = 1; i < len; i += 1) {\n if (i === 1) {\n shapeNodes.push({\n t: 'm',\n p: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0)\n });\n }\n\n shapeNodes.push({\n t: 'c',\n pts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[i], pathNodes.v[i])\n });\n }\n\n if (len === 1) {\n shapeNodes.push({\n t: 'm',\n p: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0)\n });\n }\n\n if (pathNodes.c && len) {\n shapeNodes.push({\n t: 'c',\n pts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[0], pathNodes.v[0])\n });\n shapeNodes.push({\n t: 'z'\n });\n }\n }\n }\n\n styledShape.trNodes = shapeNodes;\n }\n };\n\n CVShapeElement.prototype.renderPath = function (pathData, itemData) {\n if (pathData.hd !== true && pathData._shouldRender) {\n var i;\n var len = itemData.styledShapes.length;\n\n for (i = 0; i < len; i += 1) {\n this.renderStyledShape(itemData.styledShapes[i], itemData.sh);\n }\n }\n };\n\n CVShapeElement.prototype.renderFill = function (styleData, itemData, groupTransform) {\n var styleElem = itemData.style;\n\n if (itemData.c._mdf || this._isFirstFrame) {\n styleElem.co = 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')';\n }\n\n if (itemData.o._mdf || groupTransform._opMdf || this._isFirstFrame) {\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\n }\n };\n\n CVShapeElement.prototype.renderGradientFill = function (styleData, itemData, groupTransform) {\n var styleElem = itemData.style;\n var grd;\n\n if (!styleElem.grd || itemData.g._mdf || itemData.s._mdf || itemData.e._mdf || styleData.t !== 1 && (itemData.h._mdf || itemData.a._mdf)) {\n var ctx = this.globalData.canvasContext;\n var pt1 = itemData.s.v;\n var pt2 = itemData.e.v;\n\n if (styleData.t === 1) {\n grd = ctx.createLinearGradient(pt1[0], pt1[1], pt2[0], pt2[1]);\n } else {\n var rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);\n var percent = itemData.h.v;\n\n if (percent >= 1) {\n percent = 0.99;\n } else if (percent <= -1) {\n percent = -0.99;\n }\n\n var dist = rad * percent;\n var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\n var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\n grd = ctx.createRadialGradient(x, y, 0, pt1[0], pt1[1], rad);\n }\n\n var i;\n var len = styleData.g.p;\n var cValues = itemData.g.c;\n var opacity = 1;\n\n for (i = 0; i < len; i += 1) {\n if (itemData.g._hasOpacity && itemData.g._collapsable) {\n opacity = itemData.g.o[i * 2 + 1];\n }\n\n grd.addColorStop(cValues[i * 4] / 100, 'rgba(' + cValues[i * 4 + 1] + ',' + cValues[i * 4 + 2] + ',' + cValues[i * 4 + 3] + ',' + opacity + ')');\n }\n\n styleElem.grd = grd;\n }\n\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\n };\n\n CVShapeElement.prototype.renderStroke = function (styleData, itemData, groupTransform) {\n var styleElem = itemData.style;\n var d = itemData.d;\n\n if (d && (d._mdf || this._isFirstFrame)) {\n styleElem.da = d.dashArray;\n styleElem[\"do\"] = d.dashoffset[0];\n }\n\n if (itemData.c._mdf || this._isFirstFrame) {\n styleElem.co = 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')';\n }\n\n if (itemData.o._mdf || groupTransform._opMdf || this._isFirstFrame) {\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\n }\n\n if (itemData.w._mdf || this._isFirstFrame) {\n styleElem.wi = itemData.w.v;\n }\n };\n\n CVShapeElement.prototype.destroy = function () {\n this.shapesData = null;\n this.globalData = null;\n this.canvasContext = null;\n this.stylesList.length = 0;\n this.itemsData.length = 0;\n };\n\n function CVTextElement(data, globalData, comp) {\n this.textSpans = [];\n this.yOffset = 0;\n this.fillColorAnim = false;\n this.strokeColorAnim = false;\n this.strokeWidthAnim = false;\n this.stroke = false;\n this.fill = false;\n this.justifyOffset = 0;\n this.currentRender = null;\n this.renderType = 'canvas';\n this.values = {\n fill: 'rgba(0,0,0,0)',\n stroke: 'rgba(0,0,0,0)',\n sWidth: 0,\n fValue: ''\n };\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement, ITextElement], CVTextElement);\n CVTextElement.prototype.tHelper = createTag('canvas').getContext('2d');\n\n CVTextElement.prototype.buildNewText = function () {\n var documentData = this.textProperty.currentData;\n this.renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);\n var hasFill = false;\n\n if (documentData.fc) {\n hasFill = true;\n this.values.fill = this.buildColor(documentData.fc);\n } else {\n this.values.fill = 'rgba(0,0,0,0)';\n }\n\n this.fill = hasFill;\n var hasStroke = false;\n\n if (documentData.sc) {\n hasStroke = true;\n this.values.stroke = this.buildColor(documentData.sc);\n this.values.sWidth = documentData.sw;\n }\n\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\n var i;\n var len;\n var letters = documentData.l;\n var matrixHelper = this.mHelper;\n this.stroke = hasStroke;\n this.values.fValue = documentData.finalSize + 'px ' + this.globalData.fontManager.getFontByName(documentData.f).fFamily;\n len = documentData.finalText.length; // this.tHelper.font = this.values.fValue;\n\n var charData;\n var shapeData;\n var k;\n var kLen;\n var shapes;\n var j;\n var jLen;\n var pathNodes;\n var commands;\n var pathArr;\n var singleShape = this.data.singleShape;\n var trackingOffset = documentData.tr * 0.001 * documentData.finalSize;\n var xPos = 0;\n var yPos = 0;\n var firstLine = true;\n var cnt = 0;\n\n for (i = 0; i < len; i += 1) {\n charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n shapeData = charData && charData.data || {};\n matrixHelper.reset();\n\n if (singleShape && letters[i].n) {\n xPos = -trackingOffset;\n yPos += documentData.yOffset;\n yPos += firstLine ? 1 : 0;\n firstLine = false;\n }\n\n shapes = shapeData.shapes ? shapeData.shapes[0].it : [];\n jLen = shapes.length;\n matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\n\n if (singleShape) {\n this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\n }\n\n commands = createSizedArray(jLen - 1);\n var commandsCounter = 0;\n\n for (j = 0; j < jLen; j += 1) {\n if (shapes[j].ty === 'sh') {\n kLen = shapes[j].ks.k.i.length;\n pathNodes = shapes[j].ks.k;\n pathArr = [];\n\n for (k = 1; k < kLen; k += 1) {\n if (k === 1) {\n pathArr.push(matrixHelper.applyToX(pathNodes.v[0][0], pathNodes.v[0][1], 0), matrixHelper.applyToY(pathNodes.v[0][0], pathNodes.v[0][1], 0));\n }\n\n pathArr.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 }\n\n pathArr.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 commands[commandsCounter] = pathArr;\n commandsCounter += 1;\n }\n }\n\n if (singleShape) {\n xPos += letters[i].l;\n xPos += trackingOffset;\n }\n\n if (this.textSpans[cnt]) {\n this.textSpans[cnt].elem = commands;\n } else {\n this.textSpans[cnt] = {\n elem: commands\n };\n }\n\n cnt += 1;\n }\n };\n\n CVTextElement.prototype.renderInnerContent = function () {\n var ctx = this.canvasContext;\n ctx.font = this.values.fValue;\n ctx.lineCap = 'butt';\n ctx.lineJoin = 'miter';\n ctx.miterLimit = 4;\n\n if (!this.data.singleShape) {\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n }\n\n var i;\n var len;\n var j;\n var jLen;\n var k;\n var kLen;\n var renderedLetters = this.textAnimator.renderedLetters;\n var letters = this.textProperty.currentData.l;\n len = letters.length;\n var renderedLetter;\n var lastFill = null;\n var lastStroke = null;\n var lastStrokeW = null;\n var commands;\n var pathArr;\n\n for (i = 0; i < len; i += 1) {\n if (!letters[i].n) {\n renderedLetter = renderedLetters[i];\n\n if (renderedLetter) {\n this.globalData.renderer.save();\n this.globalData.renderer.ctxTransform(renderedLetter.p);\n this.globalData.renderer.ctxOpacity(renderedLetter.o);\n }\n\n if (this.fill) {\n if (renderedLetter && renderedLetter.fc) {\n if (lastFill !== renderedLetter.fc) {\n lastFill = renderedLetter.fc;\n ctx.fillStyle = renderedLetter.fc;\n }\n } else if (lastFill !== this.values.fill) {\n lastFill = this.values.fill;\n ctx.fillStyle = this.values.fill;\n }\n\n commands = this.textSpans[i].elem;\n jLen = commands.length;\n this.globalData.canvasContext.beginPath();\n\n for (j = 0; j < jLen; j += 1) {\n pathArr = commands[j];\n kLen = pathArr.length;\n this.globalData.canvasContext.moveTo(pathArr[0], pathArr[1]);\n\n for (k = 2; k < kLen; k += 6) {\n this.globalData.canvasContext.bezierCurveTo(pathArr[k], pathArr[k + 1], pathArr[k + 2], pathArr[k + 3], pathArr[k + 4], pathArr[k + 5]);\n }\n }\n\n this.globalData.canvasContext.closePath();\n this.globalData.canvasContext.fill(); /// ctx.fillText(this.textSpans[i].val,0,0);\n }\n\n if (this.stroke) {\n if (renderedLetter && renderedLetter.sw) {\n if (lastStrokeW !== renderedLetter.sw) {\n lastStrokeW = renderedLetter.sw;\n ctx.lineWidth = renderedLetter.sw;\n }\n } else if (lastStrokeW !== this.values.sWidth) {\n lastStrokeW = this.values.sWidth;\n ctx.lineWidth = this.values.sWidth;\n }\n\n if (renderedLetter && renderedLetter.sc) {\n if (lastStroke !== renderedLetter.sc) {\n lastStroke = renderedLetter.sc;\n ctx.strokeStyle = renderedLetter.sc;\n }\n } else if (lastStroke !== this.values.stroke) {\n lastStroke = this.values.stroke;\n ctx.strokeStyle = this.values.stroke;\n }\n\n commands = this.textSpans[i].elem;\n jLen = commands.length;\n this.globalData.canvasContext.beginPath();\n\n for (j = 0; j < jLen; j += 1) {\n pathArr = commands[j];\n kLen = pathArr.length;\n this.globalData.canvasContext.moveTo(pathArr[0], pathArr[1]);\n\n for (k = 2; k < kLen; k += 6) {\n this.globalData.canvasContext.bezierCurveTo(pathArr[k], pathArr[k + 1], pathArr[k + 2], pathArr[k + 3], pathArr[k + 4], pathArr[k + 5]);\n }\n }\n\n this.globalData.canvasContext.closePath();\n this.globalData.canvasContext.stroke(); /// ctx.strokeText(letters[i].val,0,0);\n }\n\n if (renderedLetter) {\n this.globalData.renderer.restore();\n }\n }\n }\n };\n\n function CVImageElement(data, globalData, comp) {\n this.assetData = globalData.getAssetData(data.refId);\n this.img = globalData.imageLoader.getAsset(this.assetData);\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVImageElement);\n CVImageElement.prototype.initElement = SVGShapeElement.prototype.initElement;\n CVImageElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;\n\n CVImageElement.prototype.createContent = function () {\n if (this.img.width && (this.assetData.w !== this.img.width || this.assetData.h !== this.img.height)) {\n var canvas = createTag('canvas');\n canvas.width = this.assetData.w;\n canvas.height = this.assetData.h;\n var ctx = canvas.getContext('2d');\n var imgW = this.img.width;\n var imgH = this.img.height;\n var imgRel = imgW / imgH;\n var canvasRel = this.assetData.w / this.assetData.h;\n var widthCrop;\n var heightCrop;\n var par = this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio;\n\n if (imgRel > canvasRel && par === 'xMidYMid slice' || imgRel < canvasRel && par !== 'xMidYMid slice') {\n heightCrop = imgH;\n widthCrop = heightCrop * canvasRel;\n } else {\n widthCrop = imgW;\n heightCrop = widthCrop / canvasRel;\n }\n\n ctx.drawImage(this.img, (imgW - widthCrop) / 2, (imgH - heightCrop) / 2, widthCrop, heightCrop, 0, 0, this.assetData.w, this.assetData.h);\n this.img = canvas;\n }\n };\n\n CVImageElement.prototype.renderInnerContent = function () {\n this.canvasContext.drawImage(this.img, 0, 0);\n };\n\n CVImageElement.prototype.destroy = function () {\n this.img = null;\n };\n\n function CVSolidElement(data, globalData, comp) {\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVSolidElement);\n CVSolidElement.prototype.initElement = SVGShapeElement.prototype.initElement;\n CVSolidElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;\n\n CVSolidElement.prototype.renderInnerContent = function () {\n var ctx = this.canvasContext;\n ctx.fillStyle = this.data.sc;\n ctx.fillRect(0, 0, this.data.sw, this.data.sh); //\n };\n\n function CanvasRendererBase(animationItem, config) {\n this.animationItem = animationItem;\n this.renderConfig = {\n clearCanvas: config && config.clearCanvas !== undefined ? config.clearCanvas : true,\n context: config && config.context || null,\n progressiveLoad: config && config.progressiveLoad || false,\n preserveAspectRatio: config && config.preserveAspectRatio || 'xMidYMid meet',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n contentVisibility: config && config.contentVisibility || 'visible',\n className: config && config.className || '',\n id: config && config.id || ''\n };\n this.renderConfig.dpr = config && config.dpr || 1;\n\n if (this.animationItem.wrapper) {\n this.renderConfig.dpr = config && config.dpr || window.devicePixelRatio || 1;\n }\n\n this.renderedFrame = -1;\n this.globalData = {\n frameNum: -1,\n _mdf: false,\n renderConfig: this.renderConfig,\n currentGlobalAlpha: -1\n };\n this.contextData = new CVContextData();\n this.elements = [];\n this.pendingElements = [];\n this.transformMat = new Matrix();\n this.completeLayers = false;\n this.rendererType = 'canvas';\n }\n\n extendPrototype([BaseRenderer], CanvasRendererBase);\n\n CanvasRendererBase.prototype.createShape = function (data) {\n return new CVShapeElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createText = function (data) {\n return new CVTextElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createImage = function (data) {\n return new CVImageElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createSolid = function (data) {\n return new CVSolidElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createNull = SVGRenderer.prototype.createNull;\n\n CanvasRendererBase.prototype.ctxTransform = function (props) {\n if (props[0] === 1 && props[1] === 0 && props[4] === 0 && props[5] === 1 && props[12] === 0 && props[13] === 0) {\n return;\n }\n\n if (!this.renderConfig.clearCanvas) {\n this.canvasContext.transform(props[0], props[1], props[4], props[5], props[12], props[13]);\n return;\n } // Resetting the canvas transform matrix to the new transform\n\n\n this.transformMat.cloneFromProps(props); // Taking the last transform value from the stored stack of transforms\n\n var currentTransform = this.contextData.getTransform();\n var cProps = currentTransform.props; // Applying the last transform value after the new transform to respect the order of transformations\n\n this.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]); // Storing the new transformed value in the stored transform\n\n currentTransform.cloneFromProps(this.transformMat.props);\n var trProps = currentTransform.props; // Applying the new transform to the canvas\n\n this.canvasContext.setTransform(trProps[0], trProps[1], trProps[4], trProps[5], trProps[12], trProps[13]);\n };\n\n CanvasRendererBase.prototype.ctxOpacity = function (op) {\n /* if(op === 1){\r\n return;\r\n } */\n var currentOpacity = this.contextData.getOpacity();\n\n if (!this.renderConfig.clearCanvas) {\n this.canvasContext.globalAlpha *= op < 0 ? 0 : op;\n this.globalData.currentGlobalAlpha = currentOpacity;\n return;\n }\n\n currentOpacity *= op < 0 ? 0 : op;\n this.contextData.setOpacity(currentOpacity);\n\n if (this.globalData.currentGlobalAlpha !== currentOpacity) {\n this.canvasContext.globalAlpha = currentOpacity;\n this.globalData.currentGlobalAlpha = currentOpacity;\n }\n };\n\n CanvasRendererBase.prototype.reset = function () {\n if (!this.renderConfig.clearCanvas) {\n this.canvasContext.restore();\n return;\n }\n\n this.contextData.reset();\n };\n\n CanvasRendererBase.prototype.save = function (actionFlag) {\n if (!this.renderConfig.clearCanvas) {\n this.canvasContext.save();\n return;\n }\n\n if (actionFlag) {\n this.canvasContext.save();\n }\n\n this.contextData.push();\n };\n\n CanvasRendererBase.prototype.restore = function (actionFlag) {\n if (!this.renderConfig.clearCanvas) {\n this.canvasContext.restore();\n return;\n }\n\n if (actionFlag) {\n this.canvasContext.restore();\n this.globalData.blendMode = 'source-over';\n }\n\n var popped = this.contextData.pop();\n var transform = popped.transform;\n var opacity = popped.opacity;\n this.canvasContext.setTransform(transform[0], transform[1], transform[4], transform[5], transform[12], transform[13]);\n\n if (this.globalData.currentGlobalAlpha !== opacity) {\n this.canvasContext.globalAlpha = opacity;\n this.globalData.currentGlobalAlpha = opacity;\n }\n };\n\n CanvasRendererBase.prototype.configAnimation = function (animData) {\n if (this.animationItem.wrapper) {\n this.animationItem.container = createTag('canvas');\n var containerStyle = this.animationItem.container.style;\n containerStyle.width = '100%';\n containerStyle.height = '100%';\n var origin = '0px 0px 0px';\n containerStyle.transformOrigin = origin;\n containerStyle.mozTransformOrigin = origin;\n containerStyle.webkitTransformOrigin = origin;\n containerStyle['-webkit-transform'] = origin;\n containerStyle.contentVisibility = this.renderConfig.contentVisibility;\n this.animationItem.wrapper.appendChild(this.animationItem.container);\n this.canvasContext = this.animationItem.container.getContext('2d');\n\n if (this.renderConfig.className) {\n this.animationItem.container.setAttribute('class', this.renderConfig.className);\n }\n\n if (this.renderConfig.id) {\n this.animationItem.container.setAttribute('id', this.renderConfig.id);\n }\n } else {\n this.canvasContext = this.renderConfig.context;\n }\n\n this.data = animData;\n this.layers = animData.layers;\n this.transformCanvas = {\n w: animData.w,\n h: animData.h,\n sx: 0,\n sy: 0,\n tx: 0,\n ty: 0\n };\n this.setupGlobalData(animData, document.body);\n this.globalData.canvasContext = this.canvasContext;\n this.globalData.renderer = this;\n this.globalData.isDashed = false;\n this.globalData.progressiveLoad = this.renderConfig.progressiveLoad;\n this.globalData.transformCanvas = this.transformCanvas;\n this.elements = createSizedArray(animData.layers.length);\n this.updateContainerSize();\n };\n\n CanvasRendererBase.prototype.updateContainerSize = function (width, height) {\n this.reset();\n var elementWidth;\n var elementHeight;\n\n if (width) {\n elementWidth = width;\n elementHeight = height;\n this.canvasContext.canvas.width = elementWidth;\n this.canvasContext.canvas.height = elementHeight;\n } else {\n if (this.animationItem.wrapper && this.animationItem.container) {\n elementWidth = this.animationItem.wrapper.offsetWidth;\n elementHeight = this.animationItem.wrapper.offsetHeight;\n } else {\n elementWidth = this.canvasContext.canvas.width;\n elementHeight = this.canvasContext.canvas.height;\n }\n\n this.canvasContext.canvas.width = elementWidth * this.renderConfig.dpr;\n this.canvasContext.canvas.height = elementHeight * this.renderConfig.dpr;\n }\n\n var elementRel;\n var animationRel;\n\n if (this.renderConfig.preserveAspectRatio.indexOf('meet') !== -1 || this.renderConfig.preserveAspectRatio.indexOf('slice') !== -1) {\n var par = this.renderConfig.preserveAspectRatio.split(' ');\n var fillType = par[1] || 'meet';\n var pos = par[0] || 'xMidYMid';\n var xPos = pos.substr(0, 4);\n var yPos = pos.substr(4);\n elementRel = elementWidth / elementHeight;\n animationRel = this.transformCanvas.w / this.transformCanvas.h;\n\n if (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice') {\n this.transformCanvas.sx = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n this.transformCanvas.sy = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n } else {\n this.transformCanvas.sx = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n this.transformCanvas.sy = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n }\n\n if (xPos === 'xMid' && (animationRel < elementRel && fillType === 'meet' || animationRel > elementRel && fillType === 'slice')) {\n this.transformCanvas.tx = (elementWidth - this.transformCanvas.w * (elementHeight / this.transformCanvas.h)) / 2 * this.renderConfig.dpr;\n } else if (xPos === 'xMax' && (animationRel < elementRel && fillType === 'meet' || animationRel > elementRel && fillType === 'slice')) {\n this.transformCanvas.tx = (elementWidth - this.transformCanvas.w * (elementHeight / this.transformCanvas.h)) * this.renderConfig.dpr;\n } else {\n this.transformCanvas.tx = 0;\n }\n\n if (yPos === 'YMid' && (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice')) {\n this.transformCanvas.ty = (elementHeight - this.transformCanvas.h * (elementWidth / this.transformCanvas.w)) / 2 * this.renderConfig.dpr;\n } else if (yPos === 'YMax' && (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice')) {\n this.transformCanvas.ty = (elementHeight - this.transformCanvas.h * (elementWidth / this.transformCanvas.w)) * this.renderConfig.dpr;\n } else {\n this.transformCanvas.ty = 0;\n }\n } else if (this.renderConfig.preserveAspectRatio === 'none') {\n this.transformCanvas.sx = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n this.transformCanvas.sy = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n this.transformCanvas.tx = 0;\n this.transformCanvas.ty = 0;\n } else {\n this.transformCanvas.sx = this.renderConfig.dpr;\n this.transformCanvas.sy = this.renderConfig.dpr;\n this.transformCanvas.tx = 0;\n this.transformCanvas.ty = 0;\n }\n\n this.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 /* var i, len = this.elements.length;\r\n for(i=0;i= 0; i -= 1) {\n if (this.elements[i] && this.elements[i].destroy) {\n this.elements[i].destroy();\n }\n }\n\n this.elements.length = 0;\n this.globalData.canvasContext = null;\n this.animationItem.container = null;\n this.destroyed = true;\n };\n\n CanvasRendererBase.prototype.renderFrame = function (num, forceRender) {\n if (this.renderedFrame === num && this.renderConfig.clearCanvas === true && !forceRender || this.destroyed || num === -1) {\n return;\n }\n\n this.renderedFrame = num;\n this.globalData.frameNum = num - this.animationItem._isFirstFrame;\n this.globalData.frameId += 1;\n this.globalData._mdf = !this.renderConfig.clearCanvas || forceRender;\n this.globalData.projectInterface.currentFrame = num; // console.log('--------');\n // console.log('NEW: ',num);\n\n var i;\n var len = this.layers.length;\n\n if (!this.completeLayers) {\n this.checkLayers(num);\n }\n\n for (i = 0; i < len; i += 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].prepareFrame(num - this.layers[i].st);\n }\n }\n\n if (this.globalData._mdf) {\n if (this.renderConfig.clearCanvas === true) {\n this.canvasContext.clearRect(0, 0, this.transformCanvas.w, this.transformCanvas.h);\n } else {\n this.save();\n }\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n\n if (this.renderConfig.clearCanvas !== true) {\n this.restore();\n }\n }\n };\n\n CanvasRendererBase.prototype.buildItem = function (pos) {\n var elements = this.elements;\n\n if (elements[pos] || this.layers[pos].ty === 99) {\n return;\n }\n\n var element = this.createItem(this.layers[pos], this, this.globalData);\n elements[pos] = element;\n element.initExpressions();\n /* if(this.layers[pos].ty === 0){\r\n element.resize(this.globalData.transformCanvas);\r\n } */\n };\n\n CanvasRendererBase.prototype.checkPendingElements = function () {\n while (this.pendingElements.length) {\n var element = this.pendingElements.pop();\n element.checkParenting();\n }\n };\n\n CanvasRendererBase.prototype.hide = function () {\n this.animationItem.container.style.display = 'none';\n };\n\n CanvasRendererBase.prototype.show = function () {\n this.animationItem.container.style.display = 'block';\n };\n\n function CVCompElement(data, globalData, comp) {\n this.completeLayers = false;\n this.layers = data.layers;\n this.pendingElements = [];\n this.elements = createSizedArray(this.layers.length);\n this.initElement(data, globalData, comp);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n\n extendPrototype([CanvasRendererBase, ICompElement, CVBaseElement], CVCompElement);\n\n CVCompElement.prototype.renderInnerContent = function () {\n var ctx = this.canvasContext;\n ctx.beginPath();\n ctx.moveTo(0, 0);\n ctx.lineTo(this.data.w, 0);\n ctx.lineTo(this.data.w, this.data.h);\n ctx.lineTo(0, this.data.h);\n ctx.lineTo(0, 0);\n ctx.clip();\n var i;\n var len = this.layers.length;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n };\n\n CVCompElement.prototype.destroy = function () {\n var i;\n var len = this.layers.length;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.elements[i]) {\n this.elements[i].destroy();\n }\n }\n\n this.layers = null;\n this.elements = null;\n };\n\n CVCompElement.prototype.createComp = function (data) {\n return new CVCompElement(data, this.globalData, this);\n };\n\n function CanvasRenderer(animationItem, config) {\n this.animationItem = animationItem;\n this.renderConfig = {\n clearCanvas: config && config.clearCanvas !== undefined ? config.clearCanvas : true,\n context: config && config.context || null,\n progressiveLoad: config && config.progressiveLoad || false,\n preserveAspectRatio: config && config.preserveAspectRatio || 'xMidYMid meet',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n contentVisibility: config && config.contentVisibility || 'visible',\n className: config && config.className || '',\n id: config && config.id || '',\n runExpressions: !config || config.runExpressions === undefined || config.runExpressions\n };\n this.renderConfig.dpr = config && config.dpr || 1;\n\n if (this.animationItem.wrapper) {\n this.renderConfig.dpr = config && config.dpr || window.devicePixelRatio || 1;\n }\n\n this.renderedFrame = -1;\n this.globalData = {\n frameNum: -1,\n _mdf: false,\n renderConfig: this.renderConfig,\n currentGlobalAlpha: -1\n };\n this.contextData = new CVContextData();\n this.elements = [];\n this.pendingElements = [];\n this.transformMat = new Matrix();\n this.completeLayers = false;\n this.rendererType = 'canvas';\n }\n\n extendPrototype([CanvasRendererBase], CanvasRenderer);\n\n CanvasRenderer.prototype.createComp = function (data) {\n return new CVCompElement(data, this.globalData, this);\n };\n\n function HBaseElement() {}\n\n HBaseElement.prototype = {\n checkBlendMode: function checkBlendMode() {},\n initRendererElement: function initRendererElement() {\n this.baseElement = createTag(this.data.tg || 'div');\n\n if (this.data.hasMask) {\n this.svgElement = createNS('svg');\n this.layerElement = createNS('g');\n this.maskedElement = this.layerElement;\n this.svgElement.appendChild(this.layerElement);\n this.baseElement.appendChild(this.svgElement);\n } else {\n this.layerElement = this.baseElement;\n }\n\n styleDiv(this.baseElement);\n },\n createContainerElements: function createContainerElements() {\n this.renderableEffectsManager = new CVEffects(this);\n this.transformedElement = this.baseElement;\n this.maskedElement = this.layerElement;\n\n if (this.data.ln) {\n this.layerElement.setAttribute('id', this.data.ln);\n }\n\n if (this.data.cl) {\n this.layerElement.setAttribute('class', this.data.cl);\n }\n\n if (this.data.bm !== 0) {\n this.setBlendMode();\n }\n },\n renderElement: function renderElement() {\n var transformedElementStyle = this.transformedElement ? this.transformedElement.style : {};\n\n if (this.finalTransform._matMdf) {\n var matrixValue = this.finalTransform.mat.toCSS();\n transformedElementStyle.transform = matrixValue;\n transformedElementStyle.webkitTransform = matrixValue;\n }\n\n if (this.finalTransform._opMdf) {\n transformedElementStyle.opacity = this.finalTransform.mProp.o.v;\n }\n },\n renderFrame: function renderFrame() {\n // If it is exported as hidden (data.hd === true) no need to render\n // If it is not visible no need to render\n if (this.data.hd || this.hidden) {\n return;\n }\n\n this.renderTransform();\n this.renderRenderable();\n this.renderElement();\n this.renderInnerContent();\n\n if (this._isFirstFrame) {\n this._isFirstFrame = false;\n }\n },\n destroy: function destroy() {\n this.layerElement = null;\n this.transformedElement = null;\n\n if (this.matteElement) {\n this.matteElement = null;\n }\n\n if (this.maskManager) {\n this.maskManager.destroy();\n this.maskManager = null;\n }\n },\n createRenderableComponents: function createRenderableComponents() {\n this.maskManager = new MaskElement(this.data, this, this.globalData);\n },\n addEffects: function addEffects() {},\n setMatte: function setMatte() {}\n };\n HBaseElement.prototype.getBaseElement = SVGBaseElement.prototype.getBaseElement;\n HBaseElement.prototype.destroyBaseElement = HBaseElement.prototype.destroy;\n HBaseElement.prototype.buildElementParenting = BaseRenderer.prototype.buildElementParenting;\n\n function HSolidElement(data, globalData, comp) {\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], HSolidElement);\n\n HSolidElement.prototype.createContent = function () {\n var rect;\n\n if (this.data.hasMask) {\n rect = createNS('rect');\n rect.setAttribute('width', this.data.sw);\n rect.setAttribute('height', this.data.sh);\n rect.setAttribute('fill', this.data.sc);\n this.svgElement.setAttribute('width', this.data.sw);\n this.svgElement.setAttribute('height', this.data.sh);\n } else {\n rect = createTag('div');\n rect.style.width = this.data.sw + 'px';\n rect.style.height = this.data.sh + 'px';\n rect.style.backgroundColor = this.data.sc;\n }\n\n this.layerElement.appendChild(rect);\n };\n\n function HShapeElement(data, globalData, comp) {\n // List of drawable elements\n this.shapes = []; // Full shape data\n\n this.shapesData = data.shapes; // List of styles that will be applied to shapes\n\n this.stylesList = []; // List of modifiers that will be applied to shapes\n\n this.shapeModifiers = []; // List of items in shape tree\n\n this.itemsData = []; // List of items in previous shape tree\n\n this.processedElements = []; // List of animated components\n\n this.animatedContents = [];\n this.shapesContainer = createNS('g');\n this.initElement(data, globalData, comp); // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n // List of elements that have been created\n\n this.prevViewData = [];\n this.currentBBox = {\n x: 999999,\n y: -999999,\n h: 0,\n w: 0\n };\n }\n\n extendPrototype([BaseElement, TransformElement, HSolidElement, SVGShapeElement, HBaseElement, HierarchyElement, FrameElement, RenderableElement], HShapeElement);\n HShapeElement.prototype._renderShapeFrame = HShapeElement.prototype.renderInnerContent;\n\n HShapeElement.prototype.createContent = function () {\n var cont;\n this.baseElement.style.fontSize = 0;\n\n if (this.data.hasMask) {\n this.layerElement.appendChild(this.shapesContainer);\n cont = this.svgElement;\n } else {\n cont = createNS('svg');\n var size = this.comp.data ? this.comp.data : this.globalData.compSize;\n cont.setAttribute('width', size.w);\n cont.setAttribute('height', size.h);\n cont.appendChild(this.shapesContainer);\n this.layerElement.appendChild(cont);\n }\n\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.shapesContainer, 0, [], true);\n this.filterUniqueShapes();\n this.shapeCont = cont;\n };\n\n HShapeElement.prototype.getTransformedPoint = function (transformers, point) {\n var i;\n var len = transformers.length;\n\n for (i = 0; i < len; i += 1) {\n point = transformers[i].mProps.v.applyToPointArray(point[0], point[1], 0);\n }\n\n return point;\n };\n\n HShapeElement.prototype.calculateShapeBoundingBox = function (item, boundingBox) {\n var shape = item.sh.v;\n var transformers = item.transformers;\n var i;\n var len = shape._length;\n var vPoint;\n var oPoint;\n var nextIPoint;\n var nextVPoint;\n\n if (len <= 1) {\n return;\n }\n\n for (i = 0; i < len - 1; i += 1) {\n vPoint = this.getTransformedPoint(transformers, shape.v[i]);\n oPoint = this.getTransformedPoint(transformers, shape.o[i]);\n nextIPoint = this.getTransformedPoint(transformers, shape.i[i + 1]);\n nextVPoint = this.getTransformedPoint(transformers, shape.v[i + 1]);\n this.checkBounds(vPoint, oPoint, nextIPoint, nextVPoint, boundingBox);\n }\n\n if (shape.c) {\n vPoint = this.getTransformedPoint(transformers, shape.v[i]);\n oPoint = this.getTransformedPoint(transformers, shape.o[i]);\n nextIPoint = this.getTransformedPoint(transformers, shape.i[0]);\n nextVPoint = this.getTransformedPoint(transformers, shape.v[0]);\n this.checkBounds(vPoint, oPoint, nextIPoint, nextVPoint, boundingBox);\n }\n };\n\n HShapeElement.prototype.checkBounds = function (vPoint, oPoint, nextIPoint, nextVPoint, boundingBox) {\n this.getBoundsOfCurve(vPoint, oPoint, nextIPoint, nextVPoint);\n var bounds = this.shapeBoundingBox;\n boundingBox.x = bmMin(bounds.left, boundingBox.x);\n boundingBox.xMax = bmMax(bounds.right, boundingBox.xMax);\n boundingBox.y = bmMin(bounds.top, boundingBox.y);\n boundingBox.yMax = bmMax(bounds.bottom, boundingBox.yMax);\n };\n\n HShapeElement.prototype.shapeBoundingBox = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n };\n HShapeElement.prototype.tempBoundingBox = {\n x: 0,\n xMax: 0,\n y: 0,\n yMax: 0,\n width: 0,\n height: 0\n };\n\n HShapeElement.prototype.getBoundsOfCurve = function (p0, p1, p2, p3) {\n var bounds = [[p0[0], p3[0]], [p0[1], p3[1]]];\n\n for (var a, b, c, t, b2ac, t1, t2, i = 0; i < 2; ++i) {\n // eslint-disable-line no-plusplus\n b = 6 * p0[i] - 12 * p1[i] + 6 * p2[i];\n a = -3 * p0[i] + 9 * p1[i] - 9 * p2[i] + 3 * p3[i];\n c = 3 * p1[i] - 3 * p0[i];\n b |= 0; // eslint-disable-line no-bitwise\n\n a |= 0; // eslint-disable-line no-bitwise\n\n c |= 0; // eslint-disable-line no-bitwise\n\n if (a === 0 && b === 0) {//\n } else if (a === 0) {\n t = -c / b;\n\n if (t > 0 && t < 1) {\n bounds[i].push(this.calculateF(t, p0, p1, p2, p3, i));\n }\n } else {\n b2ac = b * b - 4 * c * a;\n\n if (b2ac >= 0) {\n t1 = (-b + bmSqrt(b2ac)) / (2 * a);\n if (t1 > 0 && t1 < 1) bounds[i].push(this.calculateF(t1, p0, p1, p2, p3, i));\n t2 = (-b - bmSqrt(b2ac)) / (2 * a);\n if (t2 > 0 && t2 < 1) bounds[i].push(this.calculateF(t2, p0, p1, p2, p3, i));\n }\n }\n }\n\n this.shapeBoundingBox.left = bmMin.apply(null, bounds[0]);\n this.shapeBoundingBox.top = bmMin.apply(null, bounds[1]);\n this.shapeBoundingBox.right = bmMax.apply(null, bounds[0]);\n this.shapeBoundingBox.bottom = bmMax.apply(null, bounds[1]);\n };\n\n HShapeElement.prototype.calculateF = function (t, p0, p1, p2, p3, i) {\n return bmPow(1 - t, 3) * p0[i] + 3 * bmPow(1 - t, 2) * t * p1[i] + 3 * (1 - t) * bmPow(t, 2) * p2[i] + bmPow(t, 3) * p3[i];\n };\n\n HShapeElement.prototype.calculateBoundingBox = function (itemsData, boundingBox) {\n var i;\n var len = itemsData.length;\n\n for (i = 0; i < len; i += 1) {\n if (itemsData[i] && itemsData[i].sh) {\n this.calculateShapeBoundingBox(itemsData[i], boundingBox);\n } else if (itemsData[i] && itemsData[i].it) {\n this.calculateBoundingBox(itemsData[i].it, boundingBox);\n } else if (itemsData[i] && itemsData[i].style && itemsData[i].w) {\n this.expandStrokeBoundingBox(itemsData[i].w, boundingBox);\n }\n }\n };\n\n HShapeElement.prototype.expandStrokeBoundingBox = function (widthProperty, boundingBox) {\n var width = 0;\n\n if (widthProperty.keyframes) {\n for (var i = 0; i < widthProperty.keyframes.length; i += 1) {\n var kfw = widthProperty.keyframes[i].s;\n\n if (kfw > width) {\n width = kfw;\n }\n }\n\n width *= widthProperty.mult;\n } else {\n width = widthProperty.v * widthProperty.mult;\n }\n\n boundingBox.x -= width;\n boundingBox.xMax += width;\n boundingBox.y -= width;\n boundingBox.yMax += width;\n };\n\n HShapeElement.prototype.currentBoxContains = function (box) {\n return this.currentBBox.x <= box.x && this.currentBBox.y <= box.y && this.currentBBox.width + this.currentBBox.x >= box.x + box.width && this.currentBBox.height + this.currentBBox.y >= box.y + box.height;\n };\n\n HShapeElement.prototype.renderInnerContent = function () {\n this._renderShapeFrame();\n\n if (!this.hidden && (this._isFirstFrame || this._mdf)) {\n var tempBoundingBox = this.tempBoundingBox;\n var max = 999999;\n tempBoundingBox.x = max;\n tempBoundingBox.xMax = -max;\n tempBoundingBox.y = max;\n tempBoundingBox.yMax = -max;\n this.calculateBoundingBox(this.itemsData, tempBoundingBox);\n tempBoundingBox.width = tempBoundingBox.xMax < tempBoundingBox.x ? 0 : tempBoundingBox.xMax - tempBoundingBox.x;\n tempBoundingBox.height = tempBoundingBox.yMax < tempBoundingBox.y ? 0 : tempBoundingBox.yMax - tempBoundingBox.y; // var tempBoundingBox = this.shapeCont.getBBox();\n\n if (this.currentBoxContains(tempBoundingBox)) {\n return;\n }\n\n var changed = false;\n\n if (this.currentBBox.w !== tempBoundingBox.width) {\n this.currentBBox.w = tempBoundingBox.width;\n this.shapeCont.setAttribute('width', tempBoundingBox.width);\n changed = true;\n }\n\n if (this.currentBBox.h !== tempBoundingBox.height) {\n this.currentBBox.h = tempBoundingBox.height;\n this.shapeCont.setAttribute('height', tempBoundingBox.height);\n changed = true;\n }\n\n if (changed || this.currentBBox.x !== tempBoundingBox.x || this.currentBBox.y !== tempBoundingBox.y) {\n this.currentBBox.w = tempBoundingBox.width;\n this.currentBBox.h = tempBoundingBox.height;\n this.currentBBox.x = tempBoundingBox.x;\n this.currentBBox.y = tempBoundingBox.y;\n this.shapeCont.setAttribute('viewBox', this.currentBBox.x + ' ' + this.currentBBox.y + ' ' + this.currentBBox.w + ' ' + this.currentBBox.h);\n var shapeStyle = this.shapeCont.style;\n var shapeTransform = 'translate(' + this.currentBBox.x + 'px,' + this.currentBBox.y + 'px)';\n shapeStyle.transform = shapeTransform;\n shapeStyle.webkitTransform = shapeTransform;\n }\n }\n };\n\n function HTextElement(data, globalData, comp) {\n this.textSpans = [];\n this.textPaths = [];\n this.currentBBox = {\n x: 999999,\n y: -999999,\n h: 0,\n w: 0\n };\n this.renderType = 'svg';\n this.isMasked = false;\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], HTextElement);\n\n HTextElement.prototype.createContent = function () {\n this.isMasked = this.checkMasks();\n\n if (this.isMasked) {\n this.renderType = 'svg';\n this.compW = this.comp.data.w;\n this.compH = this.comp.data.h;\n this.svgElement.setAttribute('width', this.compW);\n this.svgElement.setAttribute('height', this.compH);\n var g = createNS('g');\n this.maskedElement.appendChild(g);\n this.innerElem = g;\n } else {\n this.renderType = 'html';\n this.innerElem = this.layerElement;\n }\n\n this.checkParenting();\n };\n\n HTextElement.prototype.buildNewText = function () {\n var documentData = this.textProperty.currentData;\n this.renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);\n var innerElemStyle = this.innerElem.style;\n var textColor = documentData.fc ? this.buildColor(documentData.fc) : 'rgba(0,0,0,0)';\n innerElemStyle.fill = textColor;\n innerElemStyle.color = textColor;\n\n if (documentData.sc) {\n innerElemStyle.stroke = this.buildColor(documentData.sc);\n innerElemStyle.strokeWidth = documentData.sw + 'px';\n }\n\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\n\n if (!this.globalData.fontManager.chars) {\n innerElemStyle.fontSize = documentData.finalSize + 'px';\n innerElemStyle.lineHeight = documentData.finalSize + 'px';\n\n if (fontData.fClass) {\n this.innerElem.className = fontData.fClass;\n } else {\n innerElemStyle.fontFamily = fontData.fFamily;\n var fWeight = documentData.fWeight;\n var fStyle = documentData.fStyle;\n innerElemStyle.fontStyle = fStyle;\n innerElemStyle.fontWeight = fWeight;\n }\n }\n\n var i;\n var len;\n var letters = documentData.l;\n len = letters.length;\n var tSpan;\n var tParent;\n var tCont;\n var matrixHelper = this.mHelper;\n var shapes;\n var shapeStr = '';\n var cnt = 0;\n\n for (i = 0; i < len; i += 1) {\n if (this.globalData.fontManager.chars) {\n if (!this.textPaths[cnt]) {\n tSpan = createNS('path');\n tSpan.setAttribute('stroke-linecap', lineCapEnum[1]);\n tSpan.setAttribute('stroke-linejoin', lineJoinEnum[2]);\n tSpan.setAttribute('stroke-miterlimit', '4');\n } else {\n tSpan = this.textPaths[cnt];\n }\n\n if (!this.isMasked) {\n if (this.textSpans[cnt]) {\n tParent = this.textSpans[cnt];\n tCont = tParent.children[0];\n } else {\n tParent = createTag('div');\n tParent.style.lineHeight = 0;\n tCont = createNS('svg');\n tCont.appendChild(tSpan);\n styleDiv(tParent);\n }\n }\n } else if (!this.isMasked) {\n if (this.textSpans[cnt]) {\n tParent = this.textSpans[cnt];\n tSpan = this.textPaths[cnt];\n } else {\n tParent = createTag('span');\n styleDiv(tParent);\n tSpan = createTag('span');\n styleDiv(tSpan);\n tParent.appendChild(tSpan);\n }\n } else {\n tSpan = this.textPaths[cnt] ? this.textPaths[cnt] : createNS('text');\n } // tSpan.setAttribute('visibility', 'hidden');\n\n\n if (this.globalData.fontManager.chars) {\n var charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n var shapeData;\n\n if (charData) {\n shapeData = charData.data;\n } else {\n shapeData = null;\n }\n\n matrixHelper.reset();\n\n if (shapeData && shapeData.shapes && shapeData.shapes.length) {\n shapes = shapeData.shapes[0].it;\n matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\n shapeStr = this.createPathShape(matrixHelper, shapes);\n tSpan.setAttribute('d', shapeStr);\n }\n\n if (!this.isMasked) {\n this.innerElem.appendChild(tParent);\n\n if (shapeData && shapeData.shapes) {\n // document.body.appendChild is needed to get exact measure of shape\n document.body.appendChild(tCont);\n var boundingBox = tCont.getBBox();\n tCont.setAttribute('width', boundingBox.width + 2);\n tCont.setAttribute('height', boundingBox.height + 2);\n tCont.setAttribute('viewBox', boundingBox.x - 1 + ' ' + (boundingBox.y - 1) + ' ' + (boundingBox.width + 2) + ' ' + (boundingBox.height + 2));\n var tContStyle = tCont.style;\n var tContTranslation = 'translate(' + (boundingBox.x - 1) + 'px,' + (boundingBox.y - 1) + 'px)';\n tContStyle.transform = tContTranslation;\n tContStyle.webkitTransform = tContTranslation;\n letters[i].yOffset = boundingBox.y - 1;\n } else {\n tCont.setAttribute('width', 1);\n tCont.setAttribute('height', 1);\n }\n\n tParent.appendChild(tCont);\n } else {\n this.innerElem.appendChild(tSpan);\n }\n } else {\n tSpan.textContent = letters[i].val;\n tSpan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\n\n if (!this.isMasked) {\n this.innerElem.appendChild(tParent); //\n\n var tStyle = tSpan.style;\n var tSpanTranslation = 'translate3d(0,' + -documentData.finalSize / 1.2 + 'px,0)';\n tStyle.transform = tSpanTranslation;\n tStyle.webkitTransform = tSpanTranslation;\n } else {\n this.innerElem.appendChild(tSpan);\n }\n } //\n\n\n if (!this.isMasked) {\n this.textSpans[cnt] = tParent;\n } else {\n this.textSpans[cnt] = tSpan;\n }\n\n this.textSpans[cnt].style.display = 'block';\n this.textPaths[cnt] = tSpan;\n cnt += 1;\n }\n\n while (cnt < this.textSpans.length) {\n this.textSpans[cnt].style.display = 'none';\n cnt += 1;\n }\n };\n\n HTextElement.prototype.renderInnerContent = function () {\n var svgStyle;\n\n if (this.data.singleShape) {\n if (!this._isFirstFrame && !this.lettersChangedFlag) {\n return;\n }\n\n if (this.isMasked && this.finalTransform._matMdf) {\n // Todo Benchmark if using this is better than getBBox\n this.svgElement.setAttribute('viewBox', -this.finalTransform.mProp.p.v[0] + ' ' + -this.finalTransform.mProp.p.v[1] + ' ' + this.compW + ' ' + this.compH);\n svgStyle = this.svgElement.style;\n var translation = 'translate(' + -this.finalTransform.mProp.p.v[0] + 'px,' + -this.finalTransform.mProp.p.v[1] + 'px)';\n svgStyle.transform = translation;\n svgStyle.webkitTransform = translation;\n }\n }\n\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n\n if (!this.lettersChangedFlag && !this.textAnimator.lettersChangedFlag) {\n return;\n }\n\n var i;\n var len;\n var count = 0;\n var renderedLetters = this.textAnimator.renderedLetters;\n var letters = this.textProperty.currentData.l;\n len = letters.length;\n var renderedLetter;\n var textSpan;\n var textPath;\n\n for (i = 0; i < len; i += 1) {\n if (letters[i].n) {\n count += 1;\n } else {\n textSpan = this.textSpans[i];\n textPath = this.textPaths[i];\n renderedLetter = renderedLetters[count];\n count += 1;\n\n if (renderedLetter._mdf.m) {\n if (!this.isMasked) {\n textSpan.style.webkitTransform = renderedLetter.m;\n textSpan.style.transform = renderedLetter.m;\n } else {\n textSpan.setAttribute('transform', renderedLetter.m);\n }\n } /// /textSpan.setAttribute('opacity',renderedLetter.o);\n\n\n textSpan.style.opacity = renderedLetter.o;\n\n if (renderedLetter.sw && renderedLetter._mdf.sw) {\n textPath.setAttribute('stroke-width', renderedLetter.sw);\n }\n\n if (renderedLetter.sc && renderedLetter._mdf.sc) {\n textPath.setAttribute('stroke', renderedLetter.sc);\n }\n\n if (renderedLetter.fc && renderedLetter._mdf.fc) {\n textPath.setAttribute('fill', renderedLetter.fc);\n textPath.style.color = renderedLetter.fc;\n }\n }\n }\n\n if (this.innerElem.getBBox && !this.hidden && (this._isFirstFrame || this._mdf)) {\n var boundingBox = this.innerElem.getBBox();\n\n if (this.currentBBox.w !== boundingBox.width) {\n this.currentBBox.w = boundingBox.width;\n this.svgElement.setAttribute('width', boundingBox.width);\n }\n\n if (this.currentBBox.h !== boundingBox.height) {\n this.currentBBox.h = boundingBox.height;\n this.svgElement.setAttribute('height', boundingBox.height);\n }\n\n var margin = 1;\n\n if (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 this.currentBBox.w = boundingBox.width + margin * 2;\n this.currentBBox.h = boundingBox.height + margin * 2;\n this.currentBBox.x = boundingBox.x - margin;\n this.currentBBox.y = boundingBox.y - margin;\n this.svgElement.setAttribute('viewBox', this.currentBBox.x + ' ' + this.currentBBox.y + ' ' + this.currentBBox.w + ' ' + this.currentBBox.h);\n svgStyle = this.svgElement.style;\n var svgTransform = 'translate(' + this.currentBBox.x + 'px,' + this.currentBBox.y + 'px)';\n svgStyle.transform = svgTransform;\n svgStyle.webkitTransform = svgTransform;\n }\n }\n };\n\n function HCameraElement(data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initHierarchy();\n var getProp = PropertyFactory.getProp;\n this.pe = getProp(this, data.pe, 0, 0, this);\n\n if (data.ks.p.s) {\n this.px = getProp(this, data.ks.p.x, 1, 0, this);\n this.py = getProp(this, data.ks.p.y, 1, 0, this);\n this.pz = getProp(this, data.ks.p.z, 1, 0, this);\n } else {\n this.p = getProp(this, data.ks.p, 1, 0, this);\n }\n\n if (data.ks.a) {\n this.a = getProp(this, data.ks.a, 1, 0, this);\n }\n\n if (data.ks.or.k.length && data.ks.or.k[0].to) {\n var i;\n var len = data.ks.or.k.length;\n\n for (i = 0; i < len; i += 1) {\n data.ks.or.k[i].to = null;\n data.ks.or.k[i].ti = null;\n }\n }\n\n this.or = getProp(this, data.ks.or, 1, degToRads, this);\n this.or.sh = true;\n this.rx = getProp(this, data.ks.rx, 0, degToRads, this);\n this.ry = getProp(this, data.ks.ry, 0, degToRads, this);\n this.rz = getProp(this, data.ks.rz, 0, degToRads, this);\n this.mat = new Matrix();\n this._prevMat = new Matrix();\n this._isFirstFrame = true; // TODO: find a better way to make the HCamera element to be compatible with the LayerInterface and TransformInterface.\n\n this.finalTransform = {\n mProp: this\n };\n }\n\n extendPrototype([BaseElement, FrameElement, HierarchyElement], HCameraElement);\n\n HCameraElement.prototype.setup = function () {\n var i;\n var len = this.comp.threeDElements.length;\n var comp;\n var perspectiveStyle;\n var containerStyle;\n\n for (i = 0; i < len; i += 1) {\n // [perspectiveElem,container]\n comp = this.comp.threeDElements[i];\n\n if (comp.type === '3d') {\n perspectiveStyle = comp.perspectiveElem.style;\n containerStyle = comp.container.style;\n var perspective = this.pe.v + 'px';\n var origin = '0px 0px 0px';\n var matrix = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)';\n perspectiveStyle.perspective = perspective;\n perspectiveStyle.webkitPerspective = perspective;\n containerStyle.transformOrigin = origin;\n containerStyle.mozTransformOrigin = origin;\n containerStyle.webkitTransformOrigin = origin;\n perspectiveStyle.transform = matrix;\n perspectiveStyle.webkitTransform = matrix;\n }\n }\n };\n\n HCameraElement.prototype.createElements = function () {};\n\n HCameraElement.prototype.hide = function () {};\n\n HCameraElement.prototype.renderFrame = function () {\n var _mdf = this._isFirstFrame;\n var i;\n var len;\n\n if (this.hierarchy) {\n len = this.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n _mdf = this.hierarchy[i].finalTransform.mProp._mdf || _mdf;\n }\n }\n\n if (_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 this.mat.reset();\n\n if (this.hierarchy) {\n len = this.hierarchy.length - 1;\n\n for (i = len; i >= 0; i -= 1) {\n var mTransf = this.hierarchy[i].finalTransform.mProp;\n this.mat.translate(-mTransf.p.v[0], -mTransf.p.v[1], mTransf.p.v[2]);\n this.mat.rotateX(-mTransf.or.v[0]).rotateY(-mTransf.or.v[1]).rotateZ(mTransf.or.v[2]);\n this.mat.rotateX(-mTransf.rx.v).rotateY(-mTransf.ry.v).rotateZ(mTransf.rz.v);\n this.mat.scale(1 / mTransf.s.v[0], 1 / mTransf.s.v[1], 1 / mTransf.s.v[2]);\n this.mat.translate(mTransf.a.v[0], mTransf.a.v[1], mTransf.a.v[2]);\n }\n }\n\n if (this.p) {\n this.mat.translate(-this.p.v[0], -this.p.v[1], this.p.v[2]);\n } else {\n this.mat.translate(-this.px.v, -this.py.v, this.pz.v);\n }\n\n if (this.a) {\n var diffVector;\n\n if (this.p) {\n diffVector = [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 } else {\n diffVector = [this.px.v - this.a.v[0], this.py.v - this.a.v[1], this.pz.v - this.a.v[2]];\n }\n\n var mag = Math.sqrt(Math.pow(diffVector[0], 2) + Math.pow(diffVector[1], 2) + Math.pow(diffVector[2], 2)); // var lookDir = getNormalizedPoint(getDiffVector(this.a.v,this.p.v));\n\n var lookDir = [diffVector[0] / mag, diffVector[1] / mag, diffVector[2] / mag];\n var lookLengthOnXZ = Math.sqrt(lookDir[2] * lookDir[2] + lookDir[0] * lookDir[0]);\n var mRotationX = Math.atan2(lookDir[1], lookLengthOnXZ);\n var mRotationY = Math.atan2(lookDir[0], -lookDir[2]);\n this.mat.rotateY(mRotationY).rotateX(-mRotationX);\n }\n\n this.mat.rotateX(-this.rx.v).rotateY(-this.ry.v).rotateZ(this.rz.v);\n this.mat.rotateX(-this.or.v[0]).rotateY(-this.or.v[1]).rotateZ(this.or.v[2]);\n this.mat.translate(this.globalData.compSize.w / 2, this.globalData.compSize.h / 2, 0);\n this.mat.translate(0, 0, this.pe.v);\n var hasMatrixChanged = !this._prevMat.equals(this.mat);\n\n if ((hasMatrixChanged || this.pe._mdf) && this.comp.threeDElements) {\n len = this.comp.threeDElements.length;\n var comp;\n var perspectiveStyle;\n var containerStyle;\n\n for (i = 0; i < len; i += 1) {\n comp = this.comp.threeDElements[i];\n\n if (comp.type === '3d') {\n if (hasMatrixChanged) {\n var matValue = this.mat.toCSS();\n containerStyle = comp.container.style;\n containerStyle.transform = matValue;\n containerStyle.webkitTransform = matValue;\n }\n\n if (this.pe._mdf) {\n perspectiveStyle = comp.perspectiveElem.style;\n perspectiveStyle.perspective = this.pe.v + 'px';\n perspectiveStyle.webkitPerspective = this.pe.v + 'px';\n }\n }\n }\n\n this.mat.clone(this._prevMat);\n }\n }\n\n this._isFirstFrame = false;\n };\n\n HCameraElement.prototype.prepareFrame = function (num) {\n this.prepareProperties(num, true);\n };\n\n HCameraElement.prototype.destroy = function () {};\n\n HCameraElement.prototype.getBaseElement = function () {\n return null;\n };\n\n function HImageElement(data, globalData, comp) {\n this.assetData = globalData.getAssetData(data.refId);\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, HBaseElement, HSolidElement, HierarchyElement, FrameElement, RenderableElement], HImageElement);\n\n HImageElement.prototype.createContent = function () {\n var assetPath = this.globalData.getAssetsPath(this.assetData);\n var img = new Image();\n\n if (this.data.hasMask) {\n this.imageElem = createNS('image');\n this.imageElem.setAttribute('width', this.assetData.w + 'px');\n this.imageElem.setAttribute('height', this.assetData.h + 'px');\n this.imageElem.setAttributeNS('http://www.w3.org/1999/xlink', 'href', assetPath);\n this.layerElement.appendChild(this.imageElem);\n this.baseElement.setAttribute('width', this.assetData.w);\n this.baseElement.setAttribute('height', this.assetData.h);\n } else {\n this.layerElement.appendChild(img);\n }\n\n img.crossOrigin = 'anonymous';\n img.src = assetPath;\n\n if (this.data.ln) {\n this.baseElement.setAttribute('id', this.data.ln);\n }\n };\n\n function HybridRendererBase(animationItem, config) {\n this.animationItem = animationItem;\n this.layers = null;\n this.renderedFrame = -1;\n this.renderConfig = {\n className: config && config.className || '',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n hideOnTransparent: !(config && config.hideOnTransparent === false),\n filterSize: {\n width: config && config.filterSize && config.filterSize.width || '400%',\n height: config && config.filterSize && config.filterSize.height || '400%',\n x: config && config.filterSize && config.filterSize.x || '-100%',\n y: config && config.filterSize && config.filterSize.y || '-100%'\n }\n };\n this.globalData = {\n _mdf: false,\n frameNum: -1,\n renderConfig: this.renderConfig\n };\n this.pendingElements = [];\n this.elements = [];\n this.threeDElements = [];\n this.destroyed = false;\n this.camera = null;\n this.supports3d = true;\n this.rendererType = 'html';\n }\n\n extendPrototype([BaseRenderer], HybridRendererBase);\n HybridRendererBase.prototype.buildItem = SVGRenderer.prototype.buildItem;\n\n HybridRendererBase.prototype.checkPendingElements = function () {\n while (this.pendingElements.length) {\n var element = this.pendingElements.pop();\n element.checkParenting();\n }\n };\n\n HybridRendererBase.prototype.appendElementInPos = function (element, pos) {\n var newDOMElement = element.getBaseElement();\n\n if (!newDOMElement) {\n return;\n }\n\n var layer = this.layers[pos];\n\n if (!layer.ddd || !this.supports3d) {\n if (this.threeDElements) {\n this.addTo3dContainer(newDOMElement, pos);\n } else {\n var i = 0;\n var nextDOMElement;\n var nextLayer;\n var tmpDOMElement;\n\n while (i < pos) {\n if (this.elements[i] && this.elements[i] !== true && this.elements[i].getBaseElement) {\n nextLayer = this.elements[i];\n tmpDOMElement = this.layers[i].ddd ? this.getThreeDContainerByPos(i) : nextLayer.getBaseElement();\n nextDOMElement = tmpDOMElement || nextDOMElement;\n }\n\n i += 1;\n }\n\n if (nextDOMElement) {\n if (!layer.ddd || !this.supports3d) {\n this.layerElement.insertBefore(newDOMElement, nextDOMElement);\n }\n } else if (!layer.ddd || !this.supports3d) {\n this.layerElement.appendChild(newDOMElement);\n }\n }\n } else {\n this.addTo3dContainer(newDOMElement, pos);\n }\n };\n\n HybridRendererBase.prototype.createShape = function (data) {\n if (!this.supports3d) {\n return new SVGShapeElement(data, this.globalData, this);\n }\n\n return new HShapeElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createText = function (data) {\n if (!this.supports3d) {\n return new SVGTextLottieElement(data, this.globalData, this);\n }\n\n return new HTextElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createCamera = function (data) {\n this.camera = new HCameraElement(data, this.globalData, this);\n return this.camera;\n };\n\n HybridRendererBase.prototype.createImage = function (data) {\n if (!this.supports3d) {\n return new IImageElement(data, this.globalData, this);\n }\n\n return new HImageElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createSolid = function (data) {\n if (!this.supports3d) {\n return new ISolidElement(data, this.globalData, this);\n }\n\n return new HSolidElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createNull = SVGRenderer.prototype.createNull;\n\n HybridRendererBase.prototype.getThreeDContainerByPos = function (pos) {\n var i = 0;\n var len = this.threeDElements.length;\n\n while (i < len) {\n if (this.threeDElements[i].startPos <= pos && this.threeDElements[i].endPos >= pos) {\n return this.threeDElements[i].perspectiveElem;\n }\n\n i += 1;\n }\n\n return null;\n };\n\n HybridRendererBase.prototype.createThreeDContainer = function (pos, type) {\n var perspectiveElem = createTag('div');\n var style;\n var containerStyle;\n styleDiv(perspectiveElem);\n var container = createTag('div');\n styleDiv(container);\n\n if (type === '3d') {\n style = perspectiveElem.style;\n style.width = this.globalData.compSize.w + 'px';\n style.height = this.globalData.compSize.h + 'px';\n var center = '50% 50%';\n style.webkitTransformOrigin = center;\n style.mozTransformOrigin = center;\n style.transformOrigin = center;\n containerStyle = container.style;\n var matrix = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)';\n containerStyle.transform = matrix;\n containerStyle.webkitTransform = matrix;\n }\n\n perspectiveElem.appendChild(container); // this.resizerElem.appendChild(perspectiveElem);\n\n var threeDContainerData = {\n container: container,\n perspectiveElem: perspectiveElem,\n startPos: pos,\n endPos: pos,\n type: type\n };\n this.threeDElements.push(threeDContainerData);\n return threeDContainerData;\n };\n\n HybridRendererBase.prototype.build3dContainers = function () {\n var i;\n var len = this.layers.length;\n var lastThreeDContainerData;\n var currentContainer = '';\n\n for (i = 0; i < len; i += 1) {\n if (this.layers[i].ddd && this.layers[i].ty !== 3) {\n if (currentContainer !== '3d') {\n currentContainer = '3d';\n lastThreeDContainerData = this.createThreeDContainer(i, '3d');\n }\n\n lastThreeDContainerData.endPos = Math.max(lastThreeDContainerData.endPos, i);\n } else {\n if (currentContainer !== '2d') {\n currentContainer = '2d';\n lastThreeDContainerData = this.createThreeDContainer(i, '2d');\n }\n\n lastThreeDContainerData.endPos = Math.max(lastThreeDContainerData.endPos, i);\n }\n }\n\n len = this.threeDElements.length;\n\n for (i = len - 1; i >= 0; i -= 1) {\n this.resizerElem.appendChild(this.threeDElements[i].perspectiveElem);\n }\n };\n\n HybridRendererBase.prototype.addTo3dContainer = function (elem, pos) {\n var i = 0;\n var len = this.threeDElements.length;\n\n while (i < len) {\n if (pos <= this.threeDElements[i].endPos) {\n var j = this.threeDElements[i].startPos;\n var nextElement;\n\n while (j < pos) {\n if (this.elements[j] && this.elements[j].getBaseElement) {\n nextElement = this.elements[j].getBaseElement();\n }\n\n j += 1;\n }\n\n if (nextElement) {\n this.threeDElements[i].container.insertBefore(elem, nextElement);\n } else {\n this.threeDElements[i].container.appendChild(elem);\n }\n\n break;\n }\n\n i += 1;\n }\n };\n\n HybridRendererBase.prototype.configAnimation = function (animData) {\n var resizerElem = createTag('div');\n var wrapper = this.animationItem.wrapper;\n var style = resizerElem.style;\n style.width = animData.w + 'px';\n style.height = animData.h + 'px';\n this.resizerElem = resizerElem;\n styleDiv(resizerElem);\n style.transformStyle = 'flat';\n style.mozTransformStyle = 'flat';\n style.webkitTransformStyle = 'flat';\n\n if (this.renderConfig.className) {\n resizerElem.setAttribute('class', this.renderConfig.className);\n }\n\n wrapper.appendChild(resizerElem);\n style.overflow = 'hidden';\n var svg = createNS('svg');\n svg.setAttribute('width', '1');\n svg.setAttribute('height', '1');\n styleDiv(svg);\n this.resizerElem.appendChild(svg);\n var defs = createNS('defs');\n svg.appendChild(defs);\n this.data = animData; // Mask animation\n\n this.setupGlobalData(animData, svg);\n this.globalData.defs = defs;\n this.layers = animData.layers;\n this.layerElement = this.resizerElem;\n this.build3dContainers();\n this.updateContainerSize();\n };\n\n HybridRendererBase.prototype.destroy = function () {\n if (this.animationItem.wrapper) {\n this.animationItem.wrapper.innerText = '';\n }\n\n this.animationItem.container = null;\n this.globalData.defs = null;\n var i;\n var len = this.layers ? this.layers.length : 0;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i] && this.elements[i].destroy) {\n this.elements[i].destroy();\n }\n }\n\n this.elements.length = 0;\n this.destroyed = true;\n this.animationItem = null;\n };\n\n HybridRendererBase.prototype.updateContainerSize = function () {\n var elementWidth = this.animationItem.wrapper.offsetWidth;\n var elementHeight = this.animationItem.wrapper.offsetHeight;\n var elementRel = elementWidth / elementHeight;\n var animationRel = this.globalData.compSize.w / this.globalData.compSize.h;\n var sx;\n var sy;\n var tx;\n var ty;\n\n if (animationRel > elementRel) {\n sx = elementWidth / this.globalData.compSize.w;\n sy = elementWidth / this.globalData.compSize.w;\n tx = 0;\n ty = (elementHeight - this.globalData.compSize.h * (elementWidth / this.globalData.compSize.w)) / 2;\n } else {\n sx = elementHeight / this.globalData.compSize.h;\n sy = elementHeight / this.globalData.compSize.h;\n tx = (elementWidth - this.globalData.compSize.w * (elementHeight / this.globalData.compSize.h)) / 2;\n ty = 0;\n }\n\n var style = this.resizerElem.style;\n style.webkitTransform = 'matrix3d(' + sx + ',0,0,0,0,' + sy + ',0,0,0,0,1,0,' + tx + ',' + ty + ',0,1)';\n style.transform = style.webkitTransform;\n };\n\n HybridRendererBase.prototype.renderFrame = SVGRenderer.prototype.renderFrame;\n\n HybridRendererBase.prototype.hide = function () {\n this.resizerElem.style.display = 'none';\n };\n\n HybridRendererBase.prototype.show = function () {\n this.resizerElem.style.display = 'block';\n };\n\n HybridRendererBase.prototype.initItems = function () {\n this.buildAllItems();\n\n if (this.camera) {\n this.camera.setup();\n } else {\n var cWidth = this.globalData.compSize.w;\n var cHeight = this.globalData.compSize.h;\n var i;\n var len = this.threeDElements.length;\n\n for (i = 0; i < len; i += 1) {\n var style = this.threeDElements[i].perspectiveElem.style;\n style.webkitPerspective = Math.sqrt(Math.pow(cWidth, 2) + Math.pow(cHeight, 2)) + 'px';\n style.perspective = style.webkitPerspective;\n }\n }\n };\n\n HybridRendererBase.prototype.searchExtraCompositions = function (assets) {\n var i;\n var len = assets.length;\n var floatingContainer = createTag('div');\n\n for (i = 0; i < len; i += 1) {\n if (assets[i].xt) {\n var comp = this.createComp(assets[i], floatingContainer, this.globalData.comp, null);\n comp.initExpressions();\n this.globalData.projectInterface.registerComposition(comp);\n }\n }\n };\n\n function HCompElement(data, globalData, comp) {\n this.layers = data.layers;\n this.supports3d = !data.hasMask;\n this.completeLayers = false;\n this.pendingElements = [];\n this.elements = this.layers ? createSizedArray(this.layers.length) : [];\n this.initElement(data, globalData, comp);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n\n extendPrototype([HybridRendererBase, ICompElement, HBaseElement], HCompElement);\n HCompElement.prototype._createBaseContainerElements = HCompElement.prototype.createContainerElements;\n\n HCompElement.prototype.createContainerElements = function () {\n this._createBaseContainerElements(); // divElement.style.clip = 'rect(0px, '+this.data.w+'px, '+this.data.h+'px, 0px)';\n\n\n if (this.data.hasMask) {\n this.svgElement.setAttribute('width', this.data.w);\n this.svgElement.setAttribute('height', this.data.h);\n this.transformedElement = this.baseElement;\n } else {\n this.transformedElement = this.layerElement;\n }\n };\n\n HCompElement.prototype.addTo3dContainer = function (elem, pos) {\n var j = 0;\n var nextElement;\n\n while (j < pos) {\n if (this.elements[j] && this.elements[j].getBaseElement) {\n nextElement = this.elements[j].getBaseElement();\n }\n\n j += 1;\n }\n\n if (nextElement) {\n this.layerElement.insertBefore(elem, nextElement);\n } else {\n this.layerElement.appendChild(elem);\n }\n };\n\n HCompElement.prototype.createComp = function (data) {\n if (!this.supports3d) {\n return new SVGCompElement(data, this.globalData, this);\n }\n\n return new HCompElement(data, this.globalData, this);\n };\n\n function HybridRenderer(animationItem, config) {\n this.animationItem = animationItem;\n this.layers = null;\n this.renderedFrame = -1;\n this.renderConfig = {\n className: config && config.className || '',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n hideOnTransparent: !(config && config.hideOnTransparent === false),\n filterSize: {\n width: config && config.filterSize && config.filterSize.width || '400%',\n height: config && config.filterSize && config.filterSize.height || '400%',\n x: config && config.filterSize && config.filterSize.x || '-100%',\n y: config && config.filterSize && config.filterSize.y || '-100%'\n },\n runExpressions: !config || config.runExpressions === undefined || config.runExpressions\n };\n this.globalData = {\n _mdf: false,\n frameNum: -1,\n renderConfig: this.renderConfig\n };\n this.pendingElements = [];\n this.elements = [];\n this.threeDElements = [];\n this.destroyed = false;\n this.camera = null;\n this.supports3d = true;\n this.rendererType = 'html';\n }\n\n extendPrototype([HybridRendererBase], HybridRenderer);\n\n HybridRenderer.prototype.createComp = function (data) {\n if (!this.supports3d) {\n return new SVGCompElement(data, this.globalData, this);\n }\n\n return new HCompElement(data, this.globalData, this);\n };\n\n var CompExpressionInterface = function () {\n return function (comp) {\n function _thisLayerFunction(name) {\n var i = 0;\n var len = comp.layers.length;\n\n while (i < len) {\n if (comp.layers[i].nm === name || comp.layers[i].ind === name) {\n return comp.elements[i].layerInterface;\n }\n\n i += 1;\n }\n\n return null; // return {active:false};\n }\n\n Object.defineProperty(_thisLayerFunction, '_name', {\n value: comp.data.nm\n });\n _thisLayerFunction.layer = _thisLayerFunction;\n _thisLayerFunction.pixelAspect = 1;\n _thisLayerFunction.height = comp.data.h || comp.globalData.compSize.h;\n _thisLayerFunction.width = comp.data.w || comp.globalData.compSize.w;\n _thisLayerFunction.pixelAspect = 1;\n _thisLayerFunction.frameDuration = 1 / comp.globalData.frameRate;\n _thisLayerFunction.displayStartTime = 0;\n _thisLayerFunction.numLayers = comp.layers.length;\n return _thisLayerFunction;\n };\n }();\n\n var Expressions = function () {\n var ob = {};\n ob.initExpressions = initExpressions;\n\n function initExpressions(animation) {\n var stackCount = 0;\n var registers = [];\n\n function pushExpression() {\n stackCount += 1;\n }\n\n function popExpression() {\n stackCount -= 1;\n\n if (stackCount === 0) {\n releaseInstances();\n }\n }\n\n function registerExpressionProperty(expression) {\n if (registers.indexOf(expression) === -1) {\n registers.push(expression);\n }\n }\n\n function releaseInstances() {\n var i;\n var len = registers.length;\n\n for (i = 0; i < len; i += 1) {\n registers[i].release();\n }\n\n registers.length = 0;\n }\n\n animation.renderer.compInterface = CompExpressionInterface(animation.renderer);\n animation.renderer.globalData.projectInterface.registerComposition(animation.renderer);\n animation.renderer.globalData.pushExpression = pushExpression;\n animation.renderer.globalData.popExpression = popExpression;\n animation.renderer.globalData.registerExpressionProperty = registerExpressionProperty;\n }\n\n return ob;\n }();\n\n var MaskManagerInterface = function () {\n function MaskInterface(mask, data) {\n this._mask = mask;\n this._data = data;\n }\n\n Object.defineProperty(MaskInterface.prototype, 'maskPath', {\n get: function get() {\n if (this._mask.prop.k) {\n this._mask.prop.getValue();\n }\n\n return this._mask.prop;\n }\n });\n Object.defineProperty(MaskInterface.prototype, 'maskOpacity', {\n get: function get() {\n if (this._mask.op.k) {\n this._mask.op.getValue();\n }\n\n return this._mask.op.v * 100;\n }\n });\n\n var MaskManager = function MaskManager(maskManager) {\n var _masksInterfaces = createSizedArray(maskManager.viewData.length);\n\n var i;\n var len = maskManager.viewData.length;\n\n for (i = 0; i < len; i += 1) {\n _masksInterfaces[i] = new MaskInterface(maskManager.viewData[i], maskManager.masksProperties[i]);\n }\n\n var maskFunction = function maskFunction(name) {\n i = 0;\n\n while (i < len) {\n if (maskManager.masksProperties[i].nm === name) {\n return _masksInterfaces[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n return maskFunction;\n };\n\n return MaskManager;\n }();\n\n var ExpressionPropertyInterface = function () {\n var defaultUnidimensionalValue = {\n pv: 0,\n v: 0,\n mult: 1\n };\n var defaultMultidimensionalValue = {\n pv: [0, 0, 0],\n v: [0, 0, 0],\n mult: 1\n };\n\n function completeProperty(expressionValue, property, type) {\n Object.defineProperty(expressionValue, 'velocity', {\n get: function get() {\n return property.getVelocityAtTime(property.comp.currentFrame);\n }\n });\n expressionValue.numKeys = property.keyframes ? property.keyframes.length : 0;\n\n expressionValue.key = function (pos) {\n if (!expressionValue.numKeys) {\n return 0;\n }\n\n var value = '';\n\n if ('s' in property.keyframes[pos - 1]) {\n value = property.keyframes[pos - 1].s;\n } else if ('e' in property.keyframes[pos - 2]) {\n value = property.keyframes[pos - 2].e;\n } else {\n value = property.keyframes[pos - 2].s;\n }\n\n var valueProp = type === 'unidimensional' ? new Number(value) : Object.assign({}, value); // eslint-disable-line no-new-wrappers\n\n valueProp.time = property.keyframes[pos - 1].t / property.elem.comp.globalData.frameRate;\n valueProp.value = type === 'unidimensional' ? value[0] : value;\n return valueProp;\n };\n\n expressionValue.valueAtTime = property.getValueAtTime;\n expressionValue.speedAtTime = property.getSpeedAtTime;\n expressionValue.velocityAtTime = property.getVelocityAtTime;\n expressionValue.propertyGroup = property.propertyGroup;\n }\n\n function UnidimensionalPropertyInterface(property) {\n if (!property || !('pv' in property)) {\n property = defaultUnidimensionalValue;\n }\n\n var mult = 1 / property.mult;\n var val = property.pv * mult;\n var expressionValue = new Number(val); // eslint-disable-line no-new-wrappers\n\n expressionValue.value = val;\n completeProperty(expressionValue, property, 'unidimensional');\n return function () {\n if (property.k) {\n property.getValue();\n }\n\n val = property.v * mult;\n\n if (expressionValue.value !== val) {\n expressionValue = new Number(val); // eslint-disable-line no-new-wrappers\n\n expressionValue.value = val;\n completeProperty(expressionValue, property, 'unidimensional');\n }\n\n return expressionValue;\n };\n }\n\n function MultidimensionalPropertyInterface(property) {\n if (!property || !('pv' in property)) {\n property = defaultMultidimensionalValue;\n }\n\n var mult = 1 / property.mult;\n var len = property.data && property.data.l || property.pv.length;\n var expressionValue = createTypedArray('float32', len);\n var arrValue = createTypedArray('float32', len);\n expressionValue.value = arrValue;\n completeProperty(expressionValue, property, 'multidimensional');\n return function () {\n if (property.k) {\n property.getValue();\n }\n\n for (var i = 0; i < len; i += 1) {\n arrValue[i] = property.v[i] * mult;\n expressionValue[i] = arrValue[i];\n }\n\n return expressionValue;\n };\n } // TODO: try to avoid using this getter\n\n\n function defaultGetter() {\n return defaultUnidimensionalValue;\n }\n\n return function (property) {\n if (!property) {\n return defaultGetter;\n }\n\n if (property.propType === 'unidimensional') {\n return UnidimensionalPropertyInterface(property);\n }\n\n return MultidimensionalPropertyInterface(property);\n };\n }();\n\n var TransformExpressionInterface = function () {\n return function (transform) {\n function _thisFunction(name) {\n switch (name) {\n case 'scale':\n case 'Scale':\n case 'ADBE Scale':\n case 6:\n return _thisFunction.scale;\n\n case 'rotation':\n case 'Rotation':\n case 'ADBE Rotation':\n case 'ADBE Rotate Z':\n case 10:\n return _thisFunction.rotation;\n\n case 'ADBE Rotate X':\n return _thisFunction.xRotation;\n\n case 'ADBE Rotate Y':\n return _thisFunction.yRotation;\n\n case 'position':\n case 'Position':\n case 'ADBE Position':\n case 2:\n return _thisFunction.position;\n\n case 'ADBE Position_0':\n return _thisFunction.xPosition;\n\n case 'ADBE Position_1':\n return _thisFunction.yPosition;\n\n case 'ADBE Position_2':\n return _thisFunction.zPosition;\n\n case 'anchorPoint':\n case 'AnchorPoint':\n case 'Anchor Point':\n case 'ADBE AnchorPoint':\n case 1:\n return _thisFunction.anchorPoint;\n\n case 'opacity':\n case 'Opacity':\n case 11:\n return _thisFunction.opacity;\n\n default:\n return null;\n }\n }\n\n Object.defineProperty(_thisFunction, 'rotation', {\n get: ExpressionPropertyInterface(transform.r || transform.rz)\n });\n Object.defineProperty(_thisFunction, 'zRotation', {\n get: ExpressionPropertyInterface(transform.rz || transform.r)\n });\n Object.defineProperty(_thisFunction, 'xRotation', {\n get: ExpressionPropertyInterface(transform.rx)\n });\n Object.defineProperty(_thisFunction, 'yRotation', {\n get: ExpressionPropertyInterface(transform.ry)\n });\n Object.defineProperty(_thisFunction, 'scale', {\n get: ExpressionPropertyInterface(transform.s)\n });\n\n var _px;\n\n var _py;\n\n var _pz;\n\n var _transformFactory;\n\n if (transform.p) {\n _transformFactory = ExpressionPropertyInterface(transform.p);\n } else {\n _px = ExpressionPropertyInterface(transform.px);\n _py = ExpressionPropertyInterface(transform.py);\n\n if (transform.pz) {\n _pz = ExpressionPropertyInterface(transform.pz);\n }\n }\n\n Object.defineProperty(_thisFunction, 'position', {\n get: function get() {\n if (transform.p) {\n return _transformFactory();\n }\n\n return [_px(), _py(), _pz ? _pz() : 0];\n }\n });\n Object.defineProperty(_thisFunction, 'xPosition', {\n get: ExpressionPropertyInterface(transform.px)\n });\n Object.defineProperty(_thisFunction, 'yPosition', {\n get: ExpressionPropertyInterface(transform.py)\n });\n Object.defineProperty(_thisFunction, 'zPosition', {\n get: ExpressionPropertyInterface(transform.pz)\n });\n Object.defineProperty(_thisFunction, 'anchorPoint', {\n get: ExpressionPropertyInterface(transform.a)\n });\n Object.defineProperty(_thisFunction, 'opacity', {\n get: ExpressionPropertyInterface(transform.o)\n });\n Object.defineProperty(_thisFunction, 'skew', {\n get: ExpressionPropertyInterface(transform.sk)\n });\n Object.defineProperty(_thisFunction, 'skewAxis', {\n get: ExpressionPropertyInterface(transform.sa)\n });\n Object.defineProperty(_thisFunction, 'orientation', {\n get: ExpressionPropertyInterface(transform.or)\n });\n return _thisFunction;\n };\n }();\n\n var LayerExpressionInterface = function () {\n function getMatrix(time) {\n var toWorldMat = new Matrix();\n\n if (time !== undefined) {\n var propMatrix = this._elem.finalTransform.mProp.getValueAtTime(time);\n\n propMatrix.clone(toWorldMat);\n } else {\n var transformMat = this._elem.finalTransform.mProp;\n transformMat.applyToMatrix(toWorldMat);\n }\n\n return toWorldMat;\n }\n\n function toWorldVec(arr, time) {\n var toWorldMat = this.getMatrix(time);\n toWorldMat.props[12] = 0;\n toWorldMat.props[13] = 0;\n toWorldMat.props[14] = 0;\n return this.applyPoint(toWorldMat, arr);\n }\n\n function toWorld(arr, time) {\n var toWorldMat = this.getMatrix(time);\n return this.applyPoint(toWorldMat, arr);\n }\n\n function fromWorldVec(arr, time) {\n var toWorldMat = this.getMatrix(time);\n toWorldMat.props[12] = 0;\n toWorldMat.props[13] = 0;\n toWorldMat.props[14] = 0;\n return this.invertPoint(toWorldMat, arr);\n }\n\n function fromWorld(arr, time) {\n var toWorldMat = this.getMatrix(time);\n return this.invertPoint(toWorldMat, arr);\n }\n\n function applyPoint(matrix, arr) {\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\n var i;\n var len = this._elem.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);\n }\n }\n\n return matrix.applyToPointArray(arr[0], arr[1], arr[2] || 0);\n }\n\n function invertPoint(matrix, arr) {\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\n var i;\n var len = this._elem.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);\n }\n }\n\n return matrix.inversePoint(arr);\n }\n\n function fromComp(arr) {\n var toWorldMat = new Matrix();\n toWorldMat.reset();\n\n this._elem.finalTransform.mProp.applyToMatrix(toWorldMat);\n\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\n var i;\n var len = this._elem.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(toWorldMat);\n }\n\n return toWorldMat.inversePoint(arr);\n }\n\n return toWorldMat.inversePoint(arr);\n }\n\n function sampleImage() {\n return [1, 1, 1, 1];\n }\n\n return function (elem) {\n var transformInterface;\n\n function _registerMaskInterface(maskManager) {\n _thisLayerFunction.mask = new MaskManagerInterface(maskManager, elem);\n }\n\n function _registerEffectsInterface(effects) {\n _thisLayerFunction.effect = effects;\n }\n\n function _thisLayerFunction(name) {\n switch (name) {\n case 'ADBE Root Vectors Group':\n case 'Contents':\n case 2:\n return _thisLayerFunction.shapeInterface;\n\n case 1:\n case 6:\n case 'Transform':\n case 'transform':\n case 'ADBE Transform Group':\n return transformInterface;\n\n case 4:\n case 'ADBE Effect Parade':\n case 'effects':\n case 'Effects':\n return _thisLayerFunction.effect;\n\n case 'ADBE Text Properties':\n return _thisLayerFunction.textInterface;\n\n default:\n return null;\n }\n }\n\n _thisLayerFunction.getMatrix = getMatrix;\n _thisLayerFunction.invertPoint = invertPoint;\n _thisLayerFunction.applyPoint = applyPoint;\n _thisLayerFunction.toWorld = toWorld;\n _thisLayerFunction.toWorldVec = toWorldVec;\n _thisLayerFunction.fromWorld = fromWorld;\n _thisLayerFunction.fromWorldVec = fromWorldVec;\n _thisLayerFunction.toComp = toWorld;\n _thisLayerFunction.fromComp = fromComp;\n _thisLayerFunction.sampleImage = sampleImage;\n _thisLayerFunction.sourceRectAtTime = elem.sourceRectAtTime.bind(elem);\n _thisLayerFunction._elem = elem;\n transformInterface = TransformExpressionInterface(elem.finalTransform.mProp);\n var anchorPointDescriptor = getDescriptor(transformInterface, 'anchorPoint');\n Object.defineProperties(_thisLayerFunction, {\n hasParent: {\n get: function get() {\n return elem.hierarchy.length;\n }\n },\n parent: {\n get: function get() {\n return elem.hierarchy[0].layerInterface;\n }\n },\n rotation: getDescriptor(transformInterface, 'rotation'),\n scale: getDescriptor(transformInterface, 'scale'),\n position: getDescriptor(transformInterface, 'position'),\n opacity: getDescriptor(transformInterface, 'opacity'),\n anchorPoint: anchorPointDescriptor,\n anchor_point: anchorPointDescriptor,\n transform: {\n get: function get() {\n return transformInterface;\n }\n },\n active: {\n get: function get() {\n return elem.isInRange;\n }\n }\n });\n _thisLayerFunction.startTime = elem.data.st;\n _thisLayerFunction.index = elem.data.ind;\n _thisLayerFunction.source = elem.data.refId;\n _thisLayerFunction.height = elem.data.ty === 0 ? elem.data.h : 100;\n _thisLayerFunction.width = elem.data.ty === 0 ? elem.data.w : 100;\n _thisLayerFunction.inPoint = elem.data.ip / elem.comp.globalData.frameRate;\n _thisLayerFunction.outPoint = elem.data.op / elem.comp.globalData.frameRate;\n _thisLayerFunction._name = elem.data.nm;\n _thisLayerFunction.registerMaskInterface = _registerMaskInterface;\n _thisLayerFunction.registerEffectsInterface = _registerEffectsInterface;\n return _thisLayerFunction;\n };\n }();\n\n var propertyGroupFactory = function () {\n return function (interfaceFunction, parentPropertyGroup) {\n return function (val) {\n val = val === undefined ? 1 : val;\n\n if (val <= 0) {\n return interfaceFunction;\n }\n\n return parentPropertyGroup(val - 1);\n };\n };\n }();\n\n var PropertyInterface = function () {\n return function (propertyName, propertyGroup) {\n var interfaceFunction = {\n _name: propertyName\n };\n\n function _propertyGroup(val) {\n val = val === undefined ? 1 : val;\n\n if (val <= 0) {\n return interfaceFunction;\n }\n\n return propertyGroup(val - 1);\n }\n\n return _propertyGroup;\n };\n }();\n\n var EffectsExpressionInterface = function () {\n var ob = {\n createEffectsInterface: createEffectsInterface\n };\n\n function createEffectsInterface(elem, propertyGroup) {\n if (elem.effectsManager) {\n var effectElements = [];\n var effectsData = elem.data.ef;\n var i;\n var len = elem.effectsManager.effectElements.length;\n\n for (i = 0; i < len; i += 1) {\n effectElements.push(createGroupInterface(effectsData[i], elem.effectsManager.effectElements[i], propertyGroup, elem));\n }\n\n var effects = elem.data.ef || [];\n\n var groupInterface = function groupInterface(name) {\n i = 0;\n len = effects.length;\n\n while (i < len) {\n if (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {\n return effectElements[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n Object.defineProperty(groupInterface, 'numProperties', {\n get: function get() {\n return effects.length;\n }\n });\n return groupInterface;\n }\n\n return null;\n }\n\n function createGroupInterface(data, elements, propertyGroup, elem) {\n function groupInterface(name) {\n var effects = data.ef;\n var i = 0;\n var len = effects.length;\n\n while (i < len) {\n if (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {\n if (effects[i].ty === 5) {\n return effectElements[i];\n }\n\n return effectElements[i]();\n }\n\n i += 1;\n }\n\n throw new Error();\n }\n\n var _propertyGroup = propertyGroupFactory(groupInterface, propertyGroup);\n\n var effectElements = [];\n var i;\n var len = data.ef.length;\n\n for (i = 0; i < len; i += 1) {\n if (data.ef[i].ty === 5) {\n effectElements.push(createGroupInterface(data.ef[i], elements.effectElements[i], elements.effectElements[i].propertyGroup, elem));\n } else {\n effectElements.push(createValueInterface(elements.effectElements[i], data.ef[i].ty, elem, _propertyGroup));\n }\n }\n\n if (data.mn === 'ADBE Color Control') {\n Object.defineProperty(groupInterface, 'color', {\n get: function get() {\n return effectElements[0]();\n }\n });\n }\n\n Object.defineProperties(groupInterface, {\n numProperties: {\n get: function get() {\n return data.np;\n }\n },\n _name: {\n value: data.nm\n },\n propertyGroup: {\n value: _propertyGroup\n }\n });\n groupInterface.enabled = data.en !== 0;\n groupInterface.active = groupInterface.enabled;\n return groupInterface;\n }\n\n function createValueInterface(element, type, elem, propertyGroup) {\n var expressionProperty = ExpressionPropertyInterface(element.p);\n\n function interfaceFunction() {\n if (type === 10) {\n return elem.comp.compInterface(element.p.v);\n }\n\n return expressionProperty();\n }\n\n if (element.p.setGroupProperty) {\n element.p.setGroupProperty(PropertyInterface('', propertyGroup));\n }\n\n return interfaceFunction;\n }\n\n return ob;\n }();\n\n var ShapePathInterface = function () {\n return function pathInterfaceFactory(shape, view, propertyGroup) {\n var prop = view.sh;\n\n function interfaceFunction(val) {\n if (val === 'Shape' || val === 'shape' || val === 'Path' || val === 'path' || val === 'ADBE Vector Shape' || val === 2) {\n return interfaceFunction.path;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n prop.setGroupProperty(PropertyInterface('Path', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n path: {\n get: function get() {\n if (prop.k) {\n prop.getValue();\n }\n\n return prop;\n }\n },\n shape: {\n get: function get() {\n if (prop.k) {\n prop.getValue();\n }\n\n return prop;\n }\n },\n _name: {\n value: shape.nm\n },\n ix: {\n value: shape.ix\n },\n propertyIndex: {\n value: shape.ix\n },\n mn: {\n value: shape.mn\n },\n propertyGroup: {\n value: propertyGroup\n }\n });\n return interfaceFunction;\n };\n }();\n\n var ShapeExpressionInterface = function () {\n function iterateElements(shapes, view, propertyGroup) {\n var arr = [];\n var i;\n var len = shapes ? shapes.length : 0;\n\n for (i = 0; i < len; i += 1) {\n if (shapes[i].ty === 'gr') {\n arr.push(groupInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'fl') {\n arr.push(fillInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'st') {\n arr.push(strokeInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'tm') {\n arr.push(trimInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'tr') {// arr.push(transformInterfaceFactory(shapes[i],view[i],propertyGroup));\n } else if (shapes[i].ty === 'el') {\n arr.push(ellipseInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'sr') {\n arr.push(starInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'sh') {\n arr.push(ShapePathInterface(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'rc') {\n arr.push(rectInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'rd') {\n arr.push(roundedInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'rp') {\n arr.push(repeaterInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'gf') {\n arr.push(gradientFillInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else {\n arr.push(defaultInterfaceFactory(shapes[i], view[i], propertyGroup));\n }\n }\n\n return arr;\n }\n\n function contentsInterfaceFactory(shape, view, propertyGroup) {\n var interfaces;\n\n var interfaceFunction = function _interfaceFunction(value) {\n var i = 0;\n var len = interfaces.length;\n\n while (i < len) {\n if (interfaces[i]._name === value || interfaces[i].mn === value || interfaces[i].propertyIndex === value || interfaces[i].ix === value || interfaces[i].ind === value) {\n return interfaces[i];\n }\n\n i += 1;\n }\n\n if (typeof value === 'number') {\n return interfaces[value - 1];\n }\n\n return null;\n };\n\n interfaceFunction.propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n interfaces = iterateElements(shape.it, view.it, interfaceFunction.propertyGroup);\n interfaceFunction.numProperties = interfaces.length;\n var transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1], view.it[view.it.length - 1], interfaceFunction.propertyGroup);\n interfaceFunction.transform = transformInterface;\n interfaceFunction.propertyIndex = shape.cix;\n interfaceFunction._name = shape.nm;\n return interfaceFunction;\n }\n\n function groupInterfaceFactory(shape, view, propertyGroup) {\n var interfaceFunction = function _interfaceFunction(value) {\n switch (value) {\n case 'ADBE Vectors Group':\n case 'Contents':\n case 2:\n return interfaceFunction.content;\n // Not necessary for now. Keeping them here in case a new case appears\n // case 'ADBE Vector Transform Group':\n // case 3:\n\n default:\n return interfaceFunction.transform;\n }\n };\n\n interfaceFunction.propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n var content = contentsInterfaceFactory(shape, view, interfaceFunction.propertyGroup);\n var transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1], view.it[view.it.length - 1], interfaceFunction.propertyGroup);\n interfaceFunction.content = content;\n interfaceFunction.transform = transformInterface;\n Object.defineProperty(interfaceFunction, '_name', {\n get: function get() {\n return shape.nm;\n }\n }); // interfaceFunction.content = interfaceFunction;\n\n interfaceFunction.numProperties = shape.np;\n interfaceFunction.propertyIndex = shape.ix;\n interfaceFunction.nm = shape.nm;\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function fillInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(val) {\n if (val === 'Color' || val === 'color') {\n return interfaceFunction.color;\n }\n\n if (val === 'Opacity' || val === 'opacity') {\n return interfaceFunction.opacity;\n }\n\n return null;\n }\n\n Object.defineProperties(interfaceFunction, {\n color: {\n get: ExpressionPropertyInterface(view.c)\n },\n opacity: {\n get: ExpressionPropertyInterface(view.o)\n },\n _name: {\n value: shape.nm\n },\n mn: {\n value: shape.mn\n }\n });\n view.c.setGroupProperty(PropertyInterface('Color', propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Opacity', propertyGroup));\n return interfaceFunction;\n }\n\n function gradientFillInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(val) {\n if (val === 'Start Point' || val === 'start point') {\n return interfaceFunction.startPoint;\n }\n\n if (val === 'End Point' || val === 'end point') {\n return interfaceFunction.endPoint;\n }\n\n if (val === 'Opacity' || val === 'opacity') {\n return interfaceFunction.opacity;\n }\n\n return null;\n }\n\n Object.defineProperties(interfaceFunction, {\n startPoint: {\n get: ExpressionPropertyInterface(view.s)\n },\n endPoint: {\n get: ExpressionPropertyInterface(view.e)\n },\n opacity: {\n get: ExpressionPropertyInterface(view.o)\n },\n type: {\n get: function get() {\n return 'a';\n }\n },\n _name: {\n value: shape.nm\n },\n mn: {\n value: shape.mn\n }\n });\n view.s.setGroupProperty(PropertyInterface('Start Point', propertyGroup));\n view.e.setGroupProperty(PropertyInterface('End Point', propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Opacity', propertyGroup));\n return interfaceFunction;\n }\n\n function defaultInterfaceFactory() {\n function interfaceFunction() {\n return null;\n }\n\n return interfaceFunction;\n }\n\n function strokeInterfaceFactory(shape, view, propertyGroup) {\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var _dashPropertyGroup = propertyGroupFactory(dashOb, _propertyGroup);\n\n function addPropertyToDashOb(i) {\n Object.defineProperty(dashOb, shape.d[i].nm, {\n get: ExpressionPropertyInterface(view.d.dataProps[i].p)\n });\n }\n\n var i;\n var len = shape.d ? shape.d.length : 0;\n var dashOb = {};\n\n for (i = 0; i < len; i += 1) {\n addPropertyToDashOb(i);\n view.d.dataProps[i].p.setGroupProperty(_dashPropertyGroup);\n }\n\n function interfaceFunction(val) {\n if (val === 'Color' || val === 'color') {\n return interfaceFunction.color;\n }\n\n if (val === 'Opacity' || val === 'opacity') {\n return interfaceFunction.opacity;\n }\n\n if (val === 'Stroke Width' || val === 'stroke width') {\n return interfaceFunction.strokeWidth;\n }\n\n return null;\n }\n\n Object.defineProperties(interfaceFunction, {\n color: {\n get: ExpressionPropertyInterface(view.c)\n },\n opacity: {\n get: ExpressionPropertyInterface(view.o)\n },\n strokeWidth: {\n get: ExpressionPropertyInterface(view.w)\n },\n dash: {\n get: function get() {\n return dashOb;\n }\n },\n _name: {\n value: shape.nm\n },\n mn: {\n value: shape.mn\n }\n });\n view.c.setGroupProperty(PropertyInterface('Color', _propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n view.w.setGroupProperty(PropertyInterface('Stroke Width', _propertyGroup));\n return interfaceFunction;\n }\n\n function trimInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(val) {\n if (val === shape.e.ix || val === 'End' || val === 'end') {\n return interfaceFunction.end;\n }\n\n if (val === shape.s.ix) {\n return interfaceFunction.start;\n }\n\n if (val === shape.o.ix) {\n return interfaceFunction.offset;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n interfaceFunction.propertyIndex = shape.ix;\n view.s.setGroupProperty(PropertyInterface('Start', _propertyGroup));\n view.e.setGroupProperty(PropertyInterface('End', _propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Offset', _propertyGroup));\n interfaceFunction.propertyIndex = shape.ix;\n interfaceFunction.propertyGroup = propertyGroup;\n Object.defineProperties(interfaceFunction, {\n start: {\n get: ExpressionPropertyInterface(view.s)\n },\n end: {\n get: ExpressionPropertyInterface(view.e)\n },\n offset: {\n get: ExpressionPropertyInterface(view.o)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function transformInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.a.ix === value || value === 'Anchor Point') {\n return interfaceFunction.anchorPoint;\n }\n\n if (shape.o.ix === value || value === 'Opacity') {\n return interfaceFunction.opacity;\n }\n\n if (shape.p.ix === value || value === 'Position') {\n return interfaceFunction.position;\n }\n\n if (shape.r.ix === value || value === 'Rotation' || value === 'ADBE Vector Rotation') {\n return interfaceFunction.rotation;\n }\n\n if (shape.s.ix === value || value === 'Scale') {\n return interfaceFunction.scale;\n }\n\n if (shape.sk && shape.sk.ix === value || value === 'Skew') {\n return interfaceFunction.skew;\n }\n\n if (shape.sa && shape.sa.ix === value || value === 'Skew Axis') {\n return interfaceFunction.skewAxis;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n view.transform.mProps.o.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n view.transform.mProps.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n view.transform.mProps.a.setGroupProperty(PropertyInterface('Anchor Point', _propertyGroup));\n view.transform.mProps.s.setGroupProperty(PropertyInterface('Scale', _propertyGroup));\n view.transform.mProps.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n\n if (view.transform.mProps.sk) {\n view.transform.mProps.sk.setGroupProperty(PropertyInterface('Skew', _propertyGroup));\n view.transform.mProps.sa.setGroupProperty(PropertyInterface('Skew Angle', _propertyGroup));\n }\n\n view.transform.op.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n opacity: {\n get: ExpressionPropertyInterface(view.transform.mProps.o)\n },\n position: {\n get: ExpressionPropertyInterface(view.transform.mProps.p)\n },\n anchorPoint: {\n get: ExpressionPropertyInterface(view.transform.mProps.a)\n },\n scale: {\n get: ExpressionPropertyInterface(view.transform.mProps.s)\n },\n rotation: {\n get: ExpressionPropertyInterface(view.transform.mProps.r)\n },\n skew: {\n get: ExpressionPropertyInterface(view.transform.mProps.sk)\n },\n skewAxis: {\n get: ExpressionPropertyInterface(view.transform.mProps.sa)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.ty = 'tr';\n interfaceFunction.mn = shape.mn;\n interfaceFunction.propertyGroup = propertyGroup;\n return interfaceFunction;\n }\n\n function ellipseInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.p.ix === value) {\n return interfaceFunction.position;\n }\n\n if (shape.s.ix === value) {\n return interfaceFunction.size;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n interfaceFunction.propertyIndex = shape.ix;\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n prop.s.setGroupProperty(PropertyInterface('Size', _propertyGroup));\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n size: {\n get: ExpressionPropertyInterface(prop.s)\n },\n position: {\n get: ExpressionPropertyInterface(prop.p)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function starInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.p.ix === value) {\n return interfaceFunction.position;\n }\n\n if (shape.r.ix === value) {\n return interfaceFunction.rotation;\n }\n\n if (shape.pt.ix === value) {\n return interfaceFunction.points;\n }\n\n if (shape.or.ix === value || value === 'ADBE Vector Star Outer Radius') {\n return interfaceFunction.outerRadius;\n }\n\n if (shape.os.ix === value) {\n return interfaceFunction.outerRoundness;\n }\n\n if (shape.ir && (shape.ir.ix === value || value === 'ADBE Vector Star Inner Radius')) {\n return interfaceFunction.innerRadius;\n }\n\n if (shape.is && shape.is.ix === value) {\n return interfaceFunction.innerRoundness;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n interfaceFunction.propertyIndex = shape.ix;\n prop.or.setGroupProperty(PropertyInterface('Outer Radius', _propertyGroup));\n prop.os.setGroupProperty(PropertyInterface('Outer Roundness', _propertyGroup));\n prop.pt.setGroupProperty(PropertyInterface('Points', _propertyGroup));\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n prop.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n\n if (shape.ir) {\n prop.ir.setGroupProperty(PropertyInterface('Inner Radius', _propertyGroup));\n prop.is.setGroupProperty(PropertyInterface('Inner Roundness', _propertyGroup));\n }\n\n Object.defineProperties(interfaceFunction, {\n position: {\n get: ExpressionPropertyInterface(prop.p)\n },\n rotation: {\n get: ExpressionPropertyInterface(prop.r)\n },\n points: {\n get: ExpressionPropertyInterface(prop.pt)\n },\n outerRadius: {\n get: ExpressionPropertyInterface(prop.or)\n },\n outerRoundness: {\n get: ExpressionPropertyInterface(prop.os)\n },\n innerRadius: {\n get: ExpressionPropertyInterface(prop.ir)\n },\n innerRoundness: {\n get: ExpressionPropertyInterface(prop.is)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function rectInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.p.ix === value) {\n return interfaceFunction.position;\n }\n\n if (shape.r.ix === value) {\n return interfaceFunction.roundness;\n }\n\n if (shape.s.ix === value || value === 'Size' || value === 'ADBE Vector Rect Size') {\n return interfaceFunction.size;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n interfaceFunction.propertyIndex = shape.ix;\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n prop.s.setGroupProperty(PropertyInterface('Size', _propertyGroup));\n prop.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n position: {\n get: ExpressionPropertyInterface(prop.p)\n },\n roundness: {\n get: ExpressionPropertyInterface(prop.r)\n },\n size: {\n get: ExpressionPropertyInterface(prop.s)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function roundedInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.r.ix === value || value === 'Round Corners 1') {\n return interfaceFunction.radius;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view;\n interfaceFunction.propertyIndex = shape.ix;\n prop.rd.setGroupProperty(PropertyInterface('Radius', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n radius: {\n get: ExpressionPropertyInterface(prop.rd)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function repeaterInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.c.ix === value || value === 'Copies') {\n return interfaceFunction.copies;\n }\n\n if (shape.o.ix === value || value === 'Offset') {\n return interfaceFunction.offset;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view;\n interfaceFunction.propertyIndex = shape.ix;\n prop.c.setGroupProperty(PropertyInterface('Copies', _propertyGroup));\n prop.o.setGroupProperty(PropertyInterface('Offset', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n copies: {\n get: ExpressionPropertyInterface(prop.c)\n },\n offset: {\n get: ExpressionPropertyInterface(prop.o)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n return function (shapes, view, propertyGroup) {\n var interfaces;\n\n function _interfaceFunction(value) {\n if (typeof value === 'number') {\n value = value === undefined ? 1 : value;\n\n if (value === 0) {\n return propertyGroup;\n }\n\n return interfaces[value - 1];\n }\n\n var i = 0;\n var len = interfaces.length;\n\n while (i < len) {\n if (interfaces[i]._name === value) {\n return interfaces[i];\n }\n\n i += 1;\n }\n\n return null;\n }\n\n function parentGroupWrapper() {\n return propertyGroup;\n }\n\n _interfaceFunction.propertyGroup = propertyGroupFactory(_interfaceFunction, parentGroupWrapper);\n interfaces = iterateElements(shapes, view, _interfaceFunction.propertyGroup);\n _interfaceFunction.numProperties = interfaces.length;\n _interfaceFunction._name = 'Contents';\n return _interfaceFunction;\n };\n }();\n\n var TextExpressionInterface = function () {\n return function (elem) {\n var _sourceText;\n\n function _thisLayerFunction(name) {\n switch (name) {\n case 'ADBE Text Document':\n return _thisLayerFunction.sourceText;\n\n default:\n return null;\n }\n }\n\n Object.defineProperty(_thisLayerFunction, 'sourceText', {\n get: function get() {\n elem.textProperty.getValue();\n var stringValue = elem.textProperty.currentData.t;\n\n if (!_sourceText || stringValue !== _sourceText.value) {\n _sourceText = new String(stringValue); // eslint-disable-line no-new-wrappers\n // If stringValue is an empty string, eval returns undefined, so it has to be returned as a String primitive\n\n _sourceText.value = stringValue || new String(stringValue); // eslint-disable-line no-new-wrappers\n\n Object.defineProperty(_sourceText, 'style', {\n get: function get() {\n return {\n fillColor: elem.textProperty.currentData.fc\n };\n }\n });\n }\n\n return _sourceText;\n }\n });\n return _thisLayerFunction;\n };\n }();\n\n function _typeof$2(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$2 = function _typeof(obj) { return typeof obj; }; } else { _typeof$2 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$2(obj); }\n\n var FootageInterface = function () {\n var outlineInterfaceFactory = function outlineInterfaceFactory(elem) {\n var currentPropertyName = '';\n var currentProperty = elem.getFootageData();\n\n function init() {\n currentPropertyName = '';\n currentProperty = elem.getFootageData();\n return searchProperty;\n }\n\n function searchProperty(value) {\n if (currentProperty[value]) {\n currentPropertyName = value;\n currentProperty = currentProperty[value];\n\n if (_typeof$2(currentProperty) === 'object') {\n return searchProperty;\n }\n\n return currentProperty;\n }\n\n var propertyNameIndex = value.indexOf(currentPropertyName);\n\n if (propertyNameIndex !== -1) {\n var index = parseInt(value.substr(propertyNameIndex + currentPropertyName.length), 10);\n currentProperty = currentProperty[index];\n\n if (_typeof$2(currentProperty) === 'object') {\n return searchProperty;\n }\n\n return currentProperty;\n }\n\n return '';\n }\n\n return init;\n };\n\n var dataInterfaceFactory = function dataInterfaceFactory(elem) {\n function interfaceFunction(value) {\n if (value === 'Outline') {\n return interfaceFunction.outlineInterface();\n }\n\n return null;\n }\n\n interfaceFunction._name = 'Outline';\n interfaceFunction.outlineInterface = outlineInterfaceFactory(elem);\n return interfaceFunction;\n };\n\n return function (elem) {\n function _interfaceFunction(value) {\n if (value === 'Data') {\n return _interfaceFunction.dataInterface;\n }\n\n return null;\n }\n\n _interfaceFunction._name = 'Data';\n _interfaceFunction.dataInterface = dataInterfaceFactory(elem);\n return _interfaceFunction;\n };\n }();\n\n var interfaces = {\n layer: LayerExpressionInterface,\n effects: EffectsExpressionInterface,\n comp: CompExpressionInterface,\n shape: ShapeExpressionInterface,\n text: TextExpressionInterface,\n footage: FootageInterface\n };\n\n function getInterface(type) {\n return interfaces[type] || null;\n }\n\n function _typeof$1(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$1 = function _typeof(obj) { return typeof obj; }; } else { _typeof$1 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$1(obj); }\n\n /* eslint-disable */\n\n /*\r\n Copyright 2014 David Bau.\r\n\r\n Permission is hereby granted, free of charge, to any person obtaining\r\n a copy of this software and associated documentation files (the\r\n \"Software\"), to deal in the Software without restriction, including\r\n without limitation the rights to use, copy, modify, merge, publish,\r\n distribute, sublicense, and/or sell copies of the Software, and to\r\n permit persons to whom the Software is furnished to do so, subject to\r\n the following conditions:\r\n\r\n The above copyright notice and this permission notice shall be\r\n included in all copies or substantial portions of the Software.\r\n\r\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\r\n EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r\n MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\r\n IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\r\n CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\r\n TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n\r\n */\n function seedRandom(pool, math) {\n //\n // The following constants are related to IEEE 754 limits.\n //\n var global = this,\n width = 256,\n // each RC4 output is 0 <= x < 256\n chunks = 6,\n // at least six RC4 outputs for each double\n digits = 52,\n // there are 52 significant digits in a double\n rngname = 'random',\n // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n //\n // seedrandom()\n // This is the seedrandom function described above.\n //\n\n function seedrandom(seed, options, callback) {\n var key = [];\n options = options === true ? {\n entropy: true\n } : options || {}; // Flatten the seed string or build one from local entropy if needed.\n\n var shortseed = mixkey(flatten(options.entropy ? [seed, tostring(pool)] : seed === null ? autoseed() : seed, 3), key); // Use the seed to initialize an ARC4 generator.\n\n var arc4 = new ARC4(key); // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n\n var prng = function prng() {\n var n = arc4.g(chunks),\n // Start with a numerator n < 2 ^ 48\n d = startdenom,\n // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n\n while (n < significance) {\n // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n\n d *= width; // denominator and generating a\n\n x = arc4.g(1); // new least-significant-byte.\n }\n\n while (n >= overflow) {\n // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n\n d /= 2; // right using integer math until\n\n x >>>= 1; // we have exactly the desired bits.\n }\n\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function () {\n return arc4.g(4) | 0;\n };\n\n prng.quick = function () {\n return arc4.g(4) / 0x100000000;\n };\n\n prng[\"double\"] = prng; // Mix the randomness into accumulated entropy.\n\n mixkey(tostring(arc4.S), pool); // Calling convention: what to return as a function of prng, seed, is_math.\n\n return (options.pass || callback || function (prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) {\n copy(state, arc4);\n } // Only provide the .state method if requested via options.state.\n\n\n prng.state = function () {\n return copy(arc4, {});\n };\n } // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n\n\n if (is_math_call) {\n math[rngname] = prng;\n return seed;\n } // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(prng, shortseed, 'global' in options ? options.global : this == math, options.state);\n }\n\n math['seed' + rngname] = seedrandom; //\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\n function ARC4(key) {\n var t,\n keylen = key.length,\n me = this,\n i = 0,\n j = me.i = me.j = 0,\n s = me.S = []; // The empty key [] is treated as [0].\n\n if (!keylen) {\n key = [keylen++];\n } // Set up S using the standard key scheduling algorithm.\n\n\n while (i < width) {\n s[i] = i++;\n }\n\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & j + key[i % keylen] + (t = s[i])];\n s[j] = t;\n } // The \"g\" method returns the next (count) outputs as one number.\n\n\n me.g = function (count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t,\n r = 0,\n i = me.i,\n j = me.j,\n s = me.S;\n\n while (count--) {\n t = s[i = mask & i + 1];\n r = r * width + s[mask & (s[i] = s[j = mask & j + t]) + (s[j] = t)];\n }\n\n me.i = i;\n me.j = j;\n return r; // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n };\n } //\n // copy()\n // Copies internal state of ARC4 to or from a plain object.\n //\n\n\n function copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n } //\n // flatten()\n // Converts an object tree to nested arrays of strings.\n //\n\n\n function flatten(obj, depth) {\n var result = [],\n typ = _typeof$1(obj),\n prop;\n\n if (depth && typ == 'object') {\n for (prop in obj) {\n try {\n result.push(flatten(obj[prop], depth - 1));\n } catch (e) {}\n }\n }\n\n return result.length ? result : typ == 'string' ? obj : obj + '\\0';\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\n\n function mixkey(seed, key) {\n var stringseed = seed + '',\n smear,\n j = 0;\n\n while (j < stringseed.length) {\n key[mask & j] = mask & (smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++);\n }\n\n return tostring(key);\n } //\n // autoseed()\n // Returns an object for autoseeding, using window.crypto and Node crypto\n // module if available.\n //\n\n\n function autoseed() {\n try {\n if (nodecrypto) {\n return tostring(nodecrypto.randomBytes(width));\n }\n\n var out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date(), global, plugins, global.screen, tostring(pool)];\n }\n } //\n // tostring()\n // Converts an array of charcodes to a string\n //\n\n\n function tostring(a) {\n return String.fromCharCode.apply(0, a);\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\n\n mixkey(math.random(), pool); //\n // Nodejs and AMD support: export the implementation as a module using\n // either convention.\n //\n // End anonymous scope, and pass initial values.\n }\n\n ;\n\n function initialize$2(BMMath) {\n seedRandom([], BMMath);\n }\n\n var propTypes = {\n SHAPE: 'shape'\n };\n\n function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n var ExpressionManager = function () {\n 'use strict';\n\n var ob = {};\n var Math = BMMath;\n var window = null;\n var document = null;\n var XMLHttpRequest = null;\n var fetch = null;\n var frames = null;\n initialize$2(BMMath);\n\n function $bm_isInstanceOfArray(arr) {\n return arr.constructor === Array || arr.constructor === Float32Array;\n }\n\n function isNumerable(tOfV, v) {\n return tOfV === 'number' || tOfV === 'boolean' || tOfV === 'string' || v instanceof Number;\n }\n\n function $bm_neg(a) {\n var tOfA = _typeof(a);\n\n if (tOfA === 'number' || tOfA === 'boolean' || a instanceof Number) {\n return -a;\n }\n\n if ($bm_isInstanceOfArray(a)) {\n var i;\n var lenA = a.length;\n var retArr = [];\n\n for (i = 0; i < lenA; i += 1) {\n retArr[i] = -a[i];\n }\n\n return retArr;\n }\n\n if (a.propType) {\n return a.v;\n }\n\n return -a;\n }\n\n var easeInBez = BezierFactory.getBezierEasing(0.333, 0, 0.833, 0.833, 'easeIn').get;\n var easeOutBez = BezierFactory.getBezierEasing(0.167, 0.167, 0.667, 1, 'easeOut').get;\n var easeInOutBez = BezierFactory.getBezierEasing(0.33, 0, 0.667, 1, 'easeInOut').get;\n\n function sum(a, b) {\n var tOfA = _typeof(a);\n\n var tOfB = _typeof(b);\n\n if (tOfA === 'string' || tOfB === 'string') {\n return a + b;\n }\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n return a + b;\n }\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n a = a.slice(0);\n a[0] += b;\n return a;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n b = b.slice(0);\n b[0] = a + b[0];\n return b;\n }\n\n if ($bm_isInstanceOfArray(a) && $bm_isInstanceOfArray(b)) {\n var i = 0;\n var lenA = a.length;\n var lenB = b.length;\n var retArr = [];\n\n while (i < lenA || i < lenB) {\n if ((typeof a[i] === 'number' || a[i] instanceof Number) && (typeof b[i] === 'number' || b[i] instanceof Number)) {\n retArr[i] = a[i] + b[i];\n } else {\n retArr[i] = b[i] === undefined ? a[i] : a[i] || b[i];\n }\n\n i += 1;\n }\n\n return retArr;\n }\n\n return 0;\n }\n\n var add = sum;\n\n function sub(a, b) {\n var tOfA = _typeof(a);\n\n var tOfB = _typeof(b);\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n if (tOfA === 'string') {\n a = parseInt(a, 10);\n }\n\n if (tOfB === 'string') {\n b = parseInt(b, 10);\n }\n\n return a - b;\n }\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n a = a.slice(0);\n a[0] -= b;\n return a;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n b = b.slice(0);\n b[0] = a - b[0];\n return b;\n }\n\n if ($bm_isInstanceOfArray(a) && $bm_isInstanceOfArray(b)) {\n var i = 0;\n var lenA = a.length;\n var lenB = b.length;\n var retArr = [];\n\n while (i < lenA || i < lenB) {\n if ((typeof a[i] === 'number' || a[i] instanceof Number) && (typeof b[i] === 'number' || b[i] instanceof Number)) {\n retArr[i] = a[i] - b[i];\n } else {\n retArr[i] = b[i] === undefined ? a[i] : a[i] || b[i];\n }\n\n i += 1;\n }\n\n return retArr;\n }\n\n return 0;\n }\n\n function mul(a, b) {\n var tOfA = _typeof(a);\n\n var tOfB = _typeof(b);\n\n var arr;\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n return a * b;\n }\n\n var i;\n var len;\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n len = a.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a[i] * b;\n }\n\n return arr;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n len = b.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a * b[i];\n }\n\n return arr;\n }\n\n return 0;\n }\n\n function div(a, b) {\n var tOfA = _typeof(a);\n\n var tOfB = _typeof(b);\n\n var arr;\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n return a / b;\n }\n\n var i;\n var len;\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n len = a.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a[i] / b;\n }\n\n return arr;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n len = b.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a / b[i];\n }\n\n return arr;\n }\n\n return 0;\n }\n\n function mod(a, b) {\n if (typeof a === 'string') {\n a = parseInt(a, 10);\n }\n\n if (typeof b === 'string') {\n b = parseInt(b, 10);\n }\n\n return a % b;\n }\n\n var $bm_sum = sum;\n var $bm_sub = sub;\n var $bm_mul = mul;\n var $bm_div = div;\n var $bm_mod = mod;\n\n function clamp(num, min, max) {\n if (min > max) {\n var mm = max;\n max = min;\n min = mm;\n }\n\n return Math.min(Math.max(num, min), max);\n }\n\n function radiansToDegrees(val) {\n return val / degToRads;\n }\n\n var radians_to_degrees = radiansToDegrees;\n\n function degreesToRadians(val) {\n return val * degToRads;\n }\n\n var degrees_to_radians = radiansToDegrees;\n var helperLengthArray = [0, 0, 0, 0, 0, 0];\n\n function length(arr1, arr2) {\n if (typeof arr1 === 'number' || arr1 instanceof Number) {\n arr2 = arr2 || 0;\n return Math.abs(arr1 - arr2);\n }\n\n if (!arr2) {\n arr2 = helperLengthArray;\n }\n\n var i;\n var len = Math.min(arr1.length, arr2.length);\n var addedLength = 0;\n\n for (i = 0; i < len; i += 1) {\n addedLength += Math.pow(arr2[i] - arr1[i], 2);\n }\n\n return Math.sqrt(addedLength);\n }\n\n function normalize(vec) {\n return div(vec, length(vec));\n }\n\n function rgbToHsl(val) {\n var r = val[0];\n var g = val[1];\n var b = val[2];\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h;\n var s;\n var l = (max + min) / 2;\n\n if (max === min) {\n h = 0; // achromatic\n\n s = 0; // achromatic\n } else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n\n case g:\n h = (b - r) / d + 2;\n break;\n\n case b:\n h = (r - g) / d + 4;\n break;\n\n default:\n break;\n }\n\n h /= 6;\n }\n\n return [h, s, l, val[3]];\n }\n\n function hue2rgb(p, q, t) {\n if (t < 0) t += 1;\n if (t > 1) t -= 1;\n if (t < 1 / 6) return p + (q - p) * 6 * t;\n if (t < 1 / 2) return q;\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n }\n\n function hslToRgb(val) {\n var h = val[0];\n var s = val[1];\n var l = val[2];\n var r;\n var g;\n var b;\n\n if (s === 0) {\n r = l; // achromatic\n\n b = l; // achromatic\n\n g = l; // achromatic\n } else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n\n return [r, g, b, val[3]];\n }\n\n function linear(t, tMin, tMax, value1, value2) {\n if (value1 === undefined || value2 === undefined) {\n value1 = tMin;\n value2 = tMax;\n tMin = 0;\n tMax = 1;\n }\n\n if (tMax < tMin) {\n var _tMin = tMax;\n tMax = tMin;\n tMin = _tMin;\n }\n\n if (t <= tMin) {\n return value1;\n }\n\n if (t >= tMax) {\n return value2;\n }\n\n var perc = tMax === tMin ? 0 : (t - tMin) / (tMax - tMin);\n\n if (!value1.length) {\n return value1 + (value2 - value1) * perc;\n }\n\n var i;\n var len = value1.length;\n var arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = value1[i] + (value2[i] - value1[i]) * perc;\n }\n\n return arr;\n }\n\n function random(min, max) {\n if (max === undefined) {\n if (min === undefined) {\n min = 0;\n max = 1;\n } else {\n max = min;\n min = undefined;\n }\n }\n\n if (max.length) {\n var i;\n var len = max.length;\n\n if (!min) {\n min = createTypedArray('float32', len);\n }\n\n var arr = createTypedArray('float32', len);\n var rnd = BMMath.random();\n\n for (i = 0; i < len; i += 1) {\n arr[i] = min[i] + rnd * (max[i] - min[i]);\n }\n\n return arr;\n }\n\n if (min === undefined) {\n min = 0;\n }\n\n var rndm = BMMath.random();\n return min + rndm * (max - min);\n }\n\n function createPath(points, inTangents, outTangents, closed) {\n var i;\n var len = points.length;\n var path = shapePool.newElement();\n path.setPathData(!!closed, len);\n var arrPlaceholder = [0, 0];\n var inVertexPoint;\n var outVertexPoint;\n\n for (i = 0; i < len; i += 1) {\n inVertexPoint = inTangents && inTangents[i] ? inTangents[i] : arrPlaceholder;\n outVertexPoint = outTangents && outTangents[i] ? outTangents[i] : arrPlaceholder;\n path.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 }\n\n return path;\n }\n\n function initiateExpression(elem, data, property) {\n // Bail out if we don't want expressions\n function noOp(_value) {\n return _value;\n }\n\n if (!elem.globalData.renderConfig.runExpressions) {\n return noOp;\n }\n\n var val = data.x;\n var needsVelocity = /velocity(?![\\w\\d])/.test(val);\n\n var _needsRandom = val.indexOf('random') !== -1;\n\n var elemType = elem.data.ty;\n var transform;\n var $bm_transform;\n var content;\n var effect;\n var thisProperty = property;\n thisProperty.valueAtTime = thisProperty.getValueAtTime;\n Object.defineProperty(thisProperty, 'value', {\n get: function get() {\n return thisProperty.v;\n }\n });\n elem.comp.frameDuration = 1 / elem.comp.globalData.frameRate;\n elem.comp.displayStartTime = 0;\n var inPoint = elem.data.ip / elem.comp.globalData.frameRate;\n var outPoint = elem.data.op / elem.comp.globalData.frameRate;\n var width = elem.data.sw ? elem.data.sw : 0;\n var height = elem.data.sh ? elem.data.sh : 0;\n var name = elem.data.nm;\n var loopIn;\n var loop_in;\n var loopOut;\n var loop_out;\n var smooth;\n var toWorld;\n var fromWorld;\n var fromComp;\n var toComp;\n var fromCompToSurface;\n var position;\n var rotation;\n var anchorPoint;\n var scale;\n var thisLayer;\n var thisComp;\n var mask;\n var valueAtTime;\n var velocityAtTime;\n var scoped_bm_rt; // val = val.replace(/(\\\\?\"|')((http)(s)?(:\\/))?\\/.*?(\\\\?\"|')/g, \"\\\"\\\"\"); // deter potential network calls\n\n var expression_function = eval('[function _expression_function(){' + val + ';scoped_bm_rt=$bm_rt}]')[0]; // eslint-disable-line no-eval\n\n var numKeys = property.kf ? data.k.length : 0;\n var active = !this.data || this.data.hd !== true;\n\n var wiggle = function wiggle(freq, amp) {\n var iWiggle;\n var j;\n var lenWiggle = this.pv.length ? this.pv.length : 1;\n var addedAmps = createTypedArray('float32', lenWiggle);\n freq = 5;\n var iterations = Math.floor(time * freq);\n iWiggle = 0;\n j = 0;\n\n while (iWiggle < iterations) {\n // var rnd = BMMath.random();\n for (j = 0; j < lenWiggle; j += 1) {\n addedAmps[j] += -amp + amp * 2 * BMMath.random(); // addedAmps[j] += -amp + amp*2*rnd;\n }\n\n iWiggle += 1;\n } // var rnd2 = BMMath.random();\n\n\n var periods = time * freq;\n var perc = periods - Math.floor(periods);\n var arr = createTypedArray('float32', lenWiggle);\n\n if (lenWiggle > 1) {\n for (j = 0; j < lenWiggle; j += 1) {\n arr[j] = this.pv[j] + addedAmps[j] + (-amp + amp * 2 * BMMath.random()) * perc; // arr[j] = this.pv[j] + addedAmps[j] + (-amp + amp*2*rnd)*perc;\n // arr[i] = this.pv[i] + addedAmp + amp1*perc + amp2*(1-perc);\n }\n\n return arr;\n }\n\n return this.pv + addedAmps[0] + (-amp + amp * 2 * BMMath.random()) * perc;\n }.bind(this);\n\n if (thisProperty.loopIn) {\n loopIn = thisProperty.loopIn.bind(thisProperty);\n loop_in = loopIn;\n }\n\n if (thisProperty.loopOut) {\n loopOut = thisProperty.loopOut.bind(thisProperty);\n loop_out = loopOut;\n }\n\n if (thisProperty.smooth) {\n smooth = thisProperty.smooth.bind(thisProperty);\n }\n\n function loopInDuration(type, duration) {\n return loopIn(type, duration, true);\n }\n\n function loopOutDuration(type, duration) {\n return loopOut(type, duration, true);\n }\n\n if (this.getValueAtTime) {\n valueAtTime = this.getValueAtTime.bind(this);\n }\n\n if (this.getVelocityAtTime) {\n velocityAtTime = this.getVelocityAtTime.bind(this);\n }\n\n var comp = elem.comp.globalData.projectInterface.bind(elem.comp.globalData.projectInterface);\n\n function lookAt(elem1, elem2) {\n var fVec = [elem2[0] - elem1[0], elem2[1] - elem1[1], elem2[2] - elem1[2]];\n var pitch = Math.atan2(fVec[0], Math.sqrt(fVec[1] * fVec[1] + fVec[2] * fVec[2])) / degToRads;\n var yaw = -Math.atan2(fVec[1], fVec[2]) / degToRads;\n return [yaw, pitch, 0];\n }\n\n function easeOut(t, tMin, tMax, val1, val2) {\n return applyEase(easeOutBez, t, tMin, tMax, val1, val2);\n }\n\n function easeIn(t, tMin, tMax, val1, val2) {\n return applyEase(easeInBez, t, tMin, tMax, val1, val2);\n }\n\n function ease(t, tMin, tMax, val1, val2) {\n return applyEase(easeInOutBez, t, tMin, tMax, val1, val2);\n }\n\n function applyEase(fn, t, tMin, tMax, val1, val2) {\n if (val1 === undefined) {\n val1 = tMin;\n val2 = tMax;\n } else {\n t = (t - tMin) / (tMax - tMin);\n }\n\n if (t > 1) {\n t = 1;\n } else if (t < 0) {\n t = 0;\n }\n\n var mult = fn(t);\n\n if ($bm_isInstanceOfArray(val1)) {\n var iKey;\n var lenKey = val1.length;\n var arr = createTypedArray('float32', lenKey);\n\n for (iKey = 0; iKey < lenKey; iKey += 1) {\n arr[iKey] = (val2[iKey] - val1[iKey]) * mult + val1[iKey];\n }\n\n return arr;\n }\n\n return (val2 - val1) * mult + val1;\n }\n\n function nearestKey(time) {\n var iKey;\n var lenKey = data.k.length;\n var index;\n var keyTime;\n\n if (!data.k.length || typeof data.k[0] === 'number') {\n index = 0;\n keyTime = 0;\n } else {\n index = -1;\n time *= elem.comp.globalData.frameRate;\n\n if (time < data.k[0].t) {\n index = 1;\n keyTime = data.k[0].t;\n } else {\n for (iKey = 0; iKey < lenKey - 1; iKey += 1) {\n if (time === data.k[iKey].t) {\n index = iKey + 1;\n keyTime = data.k[iKey].t;\n break;\n } else if (time > data.k[iKey].t && time < data.k[iKey + 1].t) {\n if (time - data.k[iKey].t > data.k[iKey + 1].t - time) {\n index = iKey + 2;\n keyTime = data.k[iKey + 1].t;\n } else {\n index = iKey + 1;\n keyTime = data.k[iKey].t;\n }\n\n break;\n }\n }\n\n if (index === -1) {\n index = iKey + 1;\n keyTime = data.k[iKey].t;\n }\n }\n }\n\n var obKey = {};\n obKey.index = index;\n obKey.time = keyTime / elem.comp.globalData.frameRate;\n return obKey;\n }\n\n function key(ind) {\n var obKey;\n var iKey;\n var lenKey;\n\n if (!data.k.length || typeof data.k[0] === 'number') {\n throw new Error('The property has no keyframe at index ' + ind);\n }\n\n ind -= 1;\n obKey = {\n time: data.k[ind].t / elem.comp.globalData.frameRate,\n value: []\n };\n var arr = Object.prototype.hasOwnProperty.call(data.k[ind], 's') ? data.k[ind].s : data.k[ind - 1].e;\n lenKey = arr.length;\n\n for (iKey = 0; iKey < lenKey; iKey += 1) {\n obKey[iKey] = arr[iKey];\n obKey.value[iKey] = arr[iKey];\n }\n\n return obKey;\n }\n\n function framesToTime(fr, fps) {\n if (!fps) {\n fps = elem.comp.globalData.frameRate;\n }\n\n return fr / fps;\n }\n\n function timeToFrames(t, fps) {\n if (!t && t !== 0) {\n t = time;\n }\n\n if (!fps) {\n fps = elem.comp.globalData.frameRate;\n }\n\n return t * fps;\n }\n\n function seedRandom(seed) {\n BMMath.seedrandom(randSeed + seed);\n }\n\n function sourceRectAtTime() {\n return elem.sourceRectAtTime();\n }\n\n function substring(init, end) {\n if (typeof value === 'string') {\n if (end === undefined) {\n return value.substring(init);\n }\n\n return value.substring(init, end);\n }\n\n return '';\n }\n\n function substr(init, end) {\n if (typeof value === 'string') {\n if (end === undefined) {\n return value.substr(init);\n }\n\n return value.substr(init, end);\n }\n\n return '';\n }\n\n function posterizeTime(framesPerSecond) {\n time = framesPerSecond === 0 ? 0 : Math.floor(time * framesPerSecond) / framesPerSecond;\n value = valueAtTime(time);\n }\n\n var time;\n var velocity;\n var value;\n var text;\n var textIndex;\n var textTotal;\n var selectorValue;\n var index = elem.data.ind;\n var hasParent = !!(elem.hierarchy && elem.hierarchy.length);\n var parent;\n var randSeed = Math.floor(Math.random() * 1000000);\n var globalData = elem.globalData;\n\n function executeExpression(_value) {\n // globalData.pushExpression();\n value = _value;\n\n if (this.frameExpressionId === elem.globalData.frameId && this.propType !== 'textSelector') {\n return value;\n }\n\n if (this.propType === 'textSelector') {\n textIndex = this.textIndex;\n textTotal = this.textTotal;\n selectorValue = this.selectorValue;\n }\n\n if (!thisLayer) {\n text = elem.layerInterface.text;\n thisLayer = elem.layerInterface;\n thisComp = elem.comp.compInterface;\n toWorld = thisLayer.toWorld.bind(thisLayer);\n fromWorld = thisLayer.fromWorld.bind(thisLayer);\n fromComp = thisLayer.fromComp.bind(thisLayer);\n toComp = thisLayer.toComp.bind(thisLayer);\n mask = thisLayer.mask ? thisLayer.mask.bind(thisLayer) : null;\n fromCompToSurface = fromComp;\n }\n\n if (!transform) {\n transform = elem.layerInterface('ADBE Transform Group');\n $bm_transform = transform;\n\n if (transform) {\n anchorPoint = transform.anchorPoint;\n /* position = transform.position;\r\n rotation = transform.rotation;\r\n scale = transform.scale; */\n }\n }\n\n if (elemType === 4 && !content) {\n content = thisLayer('ADBE Root Vectors Group');\n }\n\n if (!effect) {\n effect = thisLayer(4);\n }\n\n hasParent = !!(elem.hierarchy && elem.hierarchy.length);\n\n if (hasParent && !parent) {\n parent = elem.hierarchy[0].layerInterface;\n }\n\n time = this.comp.renderedFrame / this.comp.globalData.frameRate;\n\n if (_needsRandom) {\n seedRandom(randSeed + time);\n }\n\n if (needsVelocity) {\n velocity = velocityAtTime(time);\n }\n\n expression_function();\n this.frameExpressionId = elem.globalData.frameId; // TODO: Check if it's possible to return on ShapeInterface the .v value\n // Changed this to a ternary operation because Rollup failed compiling it correctly\n\n scoped_bm_rt = scoped_bm_rt.propType === propTypes.SHAPE ? scoped_bm_rt.v : scoped_bm_rt;\n return scoped_bm_rt;\n } // Bundlers will see these as dead code and unless we reference them\n\n\n executeExpression.__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 return executeExpression;\n }\n\n ob.initiateExpression = initiateExpression;\n ob.__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 return ob;\n }();\n\n var expressionHelpers = function () {\n function searchExpressions(elem, data, prop) {\n if (data.x) {\n prop.k = true;\n prop.x = true;\n prop.initiateExpression = ExpressionManager.initiateExpression;\n prop.effectsSequence.push(prop.initiateExpression(elem, data, prop).bind(prop));\n }\n }\n\n function getValueAtTime(frameNum) {\n frameNum *= this.elem.globalData.frameRate;\n frameNum -= this.offsetTime;\n\n if (frameNum !== this._cachingAtTime.lastFrame) {\n this._cachingAtTime.lastIndex = this._cachingAtTime.lastFrame < frameNum ? this._cachingAtTime.lastIndex : 0;\n this._cachingAtTime.value = this.interpolateValue(frameNum, this._cachingAtTime);\n this._cachingAtTime.lastFrame = frameNum;\n }\n\n return this._cachingAtTime.value;\n }\n\n function getSpeedAtTime(frameNum) {\n var delta = -0.01;\n var v1 = this.getValueAtTime(frameNum);\n var v2 = this.getValueAtTime(frameNum + delta);\n var speed = 0;\n\n if (v1.length) {\n var i;\n\n for (i = 0; i < v1.length; i += 1) {\n speed += Math.pow(v2[i] - v1[i], 2);\n }\n\n speed = Math.sqrt(speed) * 100;\n } else {\n speed = 0;\n }\n\n return speed;\n }\n\n function getVelocityAtTime(frameNum) {\n if (this.vel !== undefined) {\n return this.vel;\n }\n\n var delta = -0.001; // frameNum += this.elem.data.st;\n\n var v1 = this.getValueAtTime(frameNum);\n var v2 = this.getValueAtTime(frameNum + delta);\n var velocity;\n\n if (v1.length) {\n velocity = createTypedArray('float32', v1.length);\n var i;\n\n for (i = 0; i < v1.length; i += 1) {\n // removing frameRate\n // if needed, don't add it here\n // velocity[i] = this.elem.globalData.frameRate*((v2[i] - v1[i])/delta);\n velocity[i] = (v2[i] - v1[i]) / delta;\n }\n } else {\n velocity = (v2 - v1) / delta;\n }\n\n return velocity;\n }\n\n function getStaticValueAtTime() {\n return this.pv;\n }\n\n function setGroupProperty(propertyGroup) {\n this.propertyGroup = propertyGroup;\n }\n\n return {\n searchExpressions: searchExpressions,\n getSpeedAtTime: getSpeedAtTime,\n getVelocityAtTime: getVelocityAtTime,\n getValueAtTime: getValueAtTime,\n getStaticValueAtTime: getStaticValueAtTime,\n setGroupProperty: setGroupProperty\n };\n }();\n\n function addPropertyDecorator() {\n function loopOut(type, duration, durationFlag) {\n if (!this.k || !this.keyframes) {\n return this.pv;\n }\n\n type = type ? type.toLowerCase() : '';\n var currentFrame = this.comp.renderedFrame;\n var keyframes = this.keyframes;\n var lastKeyFrame = keyframes[keyframes.length - 1].t;\n\n if (currentFrame <= lastKeyFrame) {\n return this.pv;\n }\n\n var cycleDuration;\n var firstKeyFrame;\n\n if (!durationFlag) {\n if (!duration || duration > keyframes.length - 1) {\n duration = keyframes.length - 1;\n }\n\n firstKeyFrame = keyframes[keyframes.length - 1 - duration].t;\n cycleDuration = lastKeyFrame - firstKeyFrame;\n } else {\n if (!duration) {\n cycleDuration = Math.max(0, lastKeyFrame - this.elem.data.ip);\n } else {\n cycleDuration = Math.abs(lastKeyFrame - this.elem.comp.globalData.frameRate * duration);\n }\n\n firstKeyFrame = lastKeyFrame - cycleDuration;\n }\n\n var i;\n var len;\n var ret;\n\n if (type === 'pingpong') {\n var iterations = Math.floor((currentFrame - firstKeyFrame) / cycleDuration);\n\n if (iterations % 2 !== 0) {\n return this.getValueAtTime((cycleDuration - (currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n } else if (type === 'offset') {\n var initV = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n var endV = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n var current = this.getValueAtTime(((currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n\n var repeats = Math.floor((currentFrame - firstKeyFrame) / cycleDuration);\n\n if (this.pv.length) {\n ret = new Array(initV.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = (endV[i] - initV[i]) * repeats + current[i];\n }\n\n return ret;\n }\n\n return (endV - initV) * repeats + current;\n } else if (type === 'continue') {\n var lastValue = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n var nextLastValue = this.getValueAtTime((lastKeyFrame - 0.001) / this.comp.globalData.frameRate, 0);\n\n if (this.pv.length) {\n ret = new Array(lastValue.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = lastValue[i] + (lastValue[i] - nextLastValue[i]) * ((currentFrame - lastKeyFrame) / this.comp.globalData.frameRate) / 0.0005; // eslint-disable-line\n }\n\n return ret;\n }\n\n return lastValue + (lastValue - nextLastValue) * ((currentFrame - lastKeyFrame) / 0.001);\n }\n\n return this.getValueAtTime(((currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n\n function loopIn(type, duration, durationFlag) {\n if (!this.k) {\n return this.pv;\n }\n\n type = type ? type.toLowerCase() : '';\n var currentFrame = this.comp.renderedFrame;\n var keyframes = this.keyframes;\n var firstKeyFrame = keyframes[0].t;\n\n if (currentFrame >= firstKeyFrame) {\n return this.pv;\n }\n\n var cycleDuration;\n var lastKeyFrame;\n\n if (!durationFlag) {\n if (!duration || duration > keyframes.length - 1) {\n duration = keyframes.length - 1;\n }\n\n lastKeyFrame = keyframes[duration].t;\n cycleDuration = lastKeyFrame - firstKeyFrame;\n } else {\n if (!duration) {\n cycleDuration = Math.max(0, this.elem.data.op - firstKeyFrame);\n } else {\n cycleDuration = Math.abs(this.elem.comp.globalData.frameRate * duration);\n }\n\n lastKeyFrame = firstKeyFrame + cycleDuration;\n }\n\n var i;\n var len;\n var ret;\n\n if (type === 'pingpong') {\n var iterations = Math.floor((firstKeyFrame - currentFrame) / cycleDuration);\n\n if (iterations % 2 === 0) {\n return this.getValueAtTime(((firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n } else if (type === 'offset') {\n var initV = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n var endV = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n var current = this.getValueAtTime((cycleDuration - (firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0);\n var repeats = Math.floor((firstKeyFrame - currentFrame) / cycleDuration) + 1;\n\n if (this.pv.length) {\n ret = new Array(initV.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = current[i] - (endV[i] - initV[i]) * repeats;\n }\n\n return ret;\n }\n\n return current - (endV - initV) * repeats;\n } else if (type === 'continue') {\n var firstValue = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n var nextFirstValue = this.getValueAtTime((firstKeyFrame + 0.001) / this.comp.globalData.frameRate, 0);\n\n if (this.pv.length) {\n ret = new Array(firstValue.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = firstValue[i] + (firstValue[i] - nextFirstValue[i]) * (firstKeyFrame - currentFrame) / 0.001;\n }\n\n return ret;\n }\n\n return firstValue + (firstValue - nextFirstValue) * (firstKeyFrame - currentFrame) / 0.001;\n }\n\n return this.getValueAtTime((cycleDuration - ((firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame)) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n\n function smooth(width, samples) {\n if (!this.k) {\n return this.pv;\n }\n\n width = (width || 0.4) * 0.5;\n samples = Math.floor(samples || 5);\n\n if (samples <= 1) {\n return this.pv;\n }\n\n var currentTime = this.comp.renderedFrame / this.comp.globalData.frameRate;\n var initFrame = currentTime - width;\n var endFrame = currentTime + width;\n var sampleFrequency = samples > 1 ? (endFrame - initFrame) / (samples - 1) : 1;\n var i = 0;\n var j = 0;\n var value;\n\n if (this.pv.length) {\n value = createTypedArray('float32', this.pv.length);\n } else {\n value = 0;\n }\n\n var sampleValue;\n\n while (i < samples) {\n sampleValue = this.getValueAtTime(initFrame + i * sampleFrequency);\n\n if (this.pv.length) {\n for (j = 0; j < this.pv.length; j += 1) {\n value[j] += sampleValue[j];\n }\n } else {\n value += sampleValue;\n }\n\n i += 1;\n }\n\n if (this.pv.length) {\n for (j = 0; j < this.pv.length; j += 1) {\n value[j] /= samples;\n }\n } else {\n value /= samples;\n }\n\n return value;\n }\n\n function getTransformValueAtTime(time) {\n if (!this._transformCachingAtTime) {\n this._transformCachingAtTime = {\n v: new Matrix()\n };\n } /// /\n\n\n var matrix = this._transformCachingAtTime.v;\n matrix.cloneFromProps(this.pre.props);\n\n if (this.appliedTransformations < 1) {\n var anchor = this.a.getValueAtTime(time);\n matrix.translate(-anchor[0] * this.a.mult, -anchor[1] * this.a.mult, anchor[2] * this.a.mult);\n }\n\n if (this.appliedTransformations < 2) {\n var scale = this.s.getValueAtTime(time);\n matrix.scale(scale[0] * this.s.mult, scale[1] * this.s.mult, scale[2] * this.s.mult);\n }\n\n if (this.sk && this.appliedTransformations < 3) {\n var skew = this.sk.getValueAtTime(time);\n var skewAxis = this.sa.getValueAtTime(time);\n matrix.skewFromAxis(-skew * this.sk.mult, skewAxis * this.sa.mult);\n }\n\n if (this.r && this.appliedTransformations < 4) {\n var rotation = this.r.getValueAtTime(time);\n matrix.rotate(-rotation * this.r.mult);\n } else if (!this.r && this.appliedTransformations < 4) {\n var rotationZ = this.rz.getValueAtTime(time);\n var rotationY = this.ry.getValueAtTime(time);\n var rotationX = this.rx.getValueAtTime(time);\n var orientation = this.or.getValueAtTime(time);\n matrix.rotateZ(-rotationZ * this.rz.mult).rotateY(rotationY * this.ry.mult).rotateX(rotationX * this.rx.mult).rotateZ(-orientation[2] * this.or.mult).rotateY(orientation[1] * this.or.mult).rotateX(orientation[0] * this.or.mult);\n }\n\n if (this.data.p && this.data.p.s) {\n var positionX = this.px.getValueAtTime(time);\n var positionY = this.py.getValueAtTime(time);\n\n if (this.data.p.z) {\n var positionZ = this.pz.getValueAtTime(time);\n matrix.translate(positionX * this.px.mult, positionY * this.py.mult, -positionZ * this.pz.mult);\n } else {\n matrix.translate(positionX * this.px.mult, positionY * this.py.mult, 0);\n }\n } else {\n var position = this.p.getValueAtTime(time);\n matrix.translate(position[0] * this.p.mult, position[1] * this.p.mult, -position[2] * this.p.mult);\n }\n\n return matrix; /// /\n }\n\n function getTransformStaticValueAtTime() {\n return this.v.clone(new Matrix());\n }\n\n var getTransformProperty = TransformPropertyFactory.getTransformProperty;\n\n TransformPropertyFactory.getTransformProperty = function (elem, data, container) {\n var prop = getTransformProperty(elem, data, container);\n\n if (prop.dynamicProperties.length) {\n prop.getValueAtTime = getTransformValueAtTime.bind(prop);\n } else {\n prop.getValueAtTime = getTransformStaticValueAtTime.bind(prop);\n }\n\n prop.setGroupProperty = expressionHelpers.setGroupProperty;\n return prop;\n };\n\n var propertyGetProp = PropertyFactory.getProp;\n\n PropertyFactory.getProp = function (elem, data, type, mult, container) {\n var prop = propertyGetProp(elem, data, type, mult, container); // prop.getVelocityAtTime = getVelocityAtTime;\n // prop.loopOut = loopOut;\n // prop.loopIn = loopIn;\n\n if (prop.kf) {\n prop.getValueAtTime = expressionHelpers.getValueAtTime.bind(prop);\n } else {\n prop.getValueAtTime = expressionHelpers.getStaticValueAtTime.bind(prop);\n }\n\n prop.setGroupProperty = expressionHelpers.setGroupProperty;\n prop.loopOut = loopOut;\n prop.loopIn = loopIn;\n prop.smooth = smooth;\n prop.getVelocityAtTime = expressionHelpers.getVelocityAtTime.bind(prop);\n prop.getSpeedAtTime = expressionHelpers.getSpeedAtTime.bind(prop);\n prop.numKeys = data.a === 1 ? data.k.length : 0;\n prop.propertyIndex = data.ix;\n var value = 0;\n\n if (type !== 0) {\n value = createTypedArray('float32', data.a === 1 ? data.k[0].s.length : data.k.length);\n }\n\n prop._cachingAtTime = {\n lastFrame: initialDefaultFrame,\n lastIndex: 0,\n value: value\n };\n expressionHelpers.searchExpressions(elem, data, prop);\n\n if (prop.k) {\n container.addDynamicProperty(prop);\n }\n\n return prop;\n };\n\n function getShapeValueAtTime(frameNum) {\n // For now this caching object is created only when needed instead of creating it when the shape is initialized.\n if (!this._cachingAtTime) {\n this._cachingAtTime = {\n shapeValue: shapePool.clone(this.pv),\n lastIndex: 0,\n lastTime: initialDefaultFrame\n };\n }\n\n frameNum *= this.elem.globalData.frameRate;\n frameNum -= this.offsetTime;\n\n if (frameNum !== this._cachingAtTime.lastTime) {\n this._cachingAtTime.lastIndex = this._cachingAtTime.lastTime < frameNum ? this._caching.lastIndex : 0;\n this._cachingAtTime.lastTime = frameNum;\n this.interpolateShape(frameNum, this._cachingAtTime.shapeValue, this._cachingAtTime);\n }\n\n return this._cachingAtTime.shapeValue;\n }\n\n var ShapePropertyConstructorFunction = ShapePropertyFactory.getConstructorFunction();\n var KeyframedShapePropertyConstructorFunction = ShapePropertyFactory.getKeyframedConstructorFunction();\n\n function ShapeExpressions() {}\n\n ShapeExpressions.prototype = {\n vertices: function vertices(prop, time) {\n if (this.k) {\n this.getValue();\n }\n\n var shapePath = this.v;\n\n if (time !== undefined) {\n shapePath = this.getValueAtTime(time, 0);\n }\n\n var i;\n var len = shapePath._length;\n var vertices = shapePath[prop];\n var points = shapePath.v;\n var arr = createSizedArray(len);\n\n for (i = 0; i < len; i += 1) {\n if (prop === 'i' || prop === 'o') {\n arr[i] = [vertices[i][0] - points[i][0], vertices[i][1] - points[i][1]];\n } else {\n arr[i] = [vertices[i][0], vertices[i][1]];\n }\n }\n\n return arr;\n },\n points: function points(time) {\n return this.vertices('v', time);\n },\n inTangents: function inTangents(time) {\n return this.vertices('i', time);\n },\n outTangents: function outTangents(time) {\n return this.vertices('o', time);\n },\n isClosed: function isClosed() {\n return this.v.c;\n },\n pointOnPath: function pointOnPath(perc, time) {\n var shapePath = this.v;\n\n if (time !== undefined) {\n shapePath = this.getValueAtTime(time, 0);\n }\n\n if (!this._segmentsLength) {\n this._segmentsLength = bez.getSegmentsLength(shapePath);\n }\n\n var segmentsLength = this._segmentsLength;\n var lengths = segmentsLength.lengths;\n var lengthPos = segmentsLength.totalLength * perc;\n var i = 0;\n var len = lengths.length;\n var accumulatedLength = 0;\n var pt;\n\n while (i < len) {\n if (accumulatedLength + lengths[i].addedLength > lengthPos) {\n var initIndex = i;\n var endIndex = shapePath.c && i === len - 1 ? 0 : i + 1;\n var segmentPerc = (lengthPos - accumulatedLength) / lengths[i].addedLength;\n pt = bez.getPointInSegment(shapePath.v[initIndex], shapePath.v[endIndex], shapePath.o[initIndex], shapePath.i[endIndex], segmentPerc, lengths[i]);\n break;\n } else {\n accumulatedLength += lengths[i].addedLength;\n }\n\n i += 1;\n }\n\n if (!pt) {\n pt = shapePath.c ? [shapePath.v[0][0], shapePath.v[0][1]] : [shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1]];\n }\n\n return pt;\n },\n vectorOnPath: function vectorOnPath(perc, time, vectorType) {\n // perc doesn't use triple equality because it can be a Number object as well as a primitive.\n if (perc == 1) {\n // eslint-disable-line eqeqeq\n perc = this.v.c;\n } else if (perc == 0) {\n // eslint-disable-line eqeqeq\n perc = 0.999;\n }\n\n var pt1 = this.pointOnPath(perc, time);\n var pt2 = this.pointOnPath(perc + 0.001, time);\n var xLength = pt2[0] - pt1[0];\n var yLength = pt2[1] - pt1[1];\n var magnitude = Math.sqrt(Math.pow(xLength, 2) + Math.pow(yLength, 2));\n\n if (magnitude === 0) {\n return [0, 0];\n }\n\n var unitVector = vectorType === 'tangent' ? [xLength / magnitude, yLength / magnitude] : [-yLength / magnitude, xLength / magnitude];\n return unitVector;\n },\n tangentOnPath: function tangentOnPath(perc, time) {\n return this.vectorOnPath(perc, time, 'tangent');\n },\n normalOnPath: function normalOnPath(perc, time) {\n return this.vectorOnPath(perc, time, 'normal');\n },\n setGroupProperty: expressionHelpers.setGroupProperty,\n getValueAtTime: expressionHelpers.getStaticValueAtTime\n };\n extendPrototype([ShapeExpressions], ShapePropertyConstructorFunction);\n extendPrototype([ShapeExpressions], KeyframedShapePropertyConstructorFunction);\n KeyframedShapePropertyConstructorFunction.prototype.getValueAtTime = getShapeValueAtTime;\n KeyframedShapePropertyConstructorFunction.prototype.initiateExpression = ExpressionManager.initiateExpression;\n var propertyGetShapeProp = ShapePropertyFactory.getShapeProp;\n\n ShapePropertyFactory.getShapeProp = function (elem, data, type, arr, trims) {\n var prop = propertyGetShapeProp(elem, data, type, arr, trims);\n prop.propertyIndex = data.ix;\n prop.lock = false;\n\n if (type === 3) {\n expressionHelpers.searchExpressions(elem, data.pt, prop);\n } else if (type === 4) {\n expressionHelpers.searchExpressions(elem, data.ks, prop);\n }\n\n if (prop.k) {\n elem.addDynamicProperty(prop);\n }\n\n return prop;\n };\n }\n\n function initialize$1() {\n addPropertyDecorator();\n }\n\n function addDecorator() {\n function searchExpressions() {\n if (this.data.d.x) {\n this.calculateExpression = ExpressionManager.initiateExpression.bind(this)(this.elem, this.data.d, this);\n this.addEffect(this.getExpressionValue.bind(this));\n return true;\n }\n\n return null;\n }\n\n TextProperty.prototype.getExpressionValue = function (currentValue, text) {\n var newValue = this.calculateExpression(text);\n\n if (currentValue.t !== newValue) {\n var newData = {};\n this.copyData(newData, currentValue);\n newData.t = newValue.toString();\n newData.__complete = false;\n return newData;\n }\n\n return currentValue;\n };\n\n TextProperty.prototype.searchProperty = function () {\n var isKeyframed = this.searchKeyframes();\n var hasExpressions = this.searchExpressions();\n this.kf = isKeyframed || hasExpressions;\n return this.kf;\n };\n\n TextProperty.prototype.searchExpressions = searchExpressions;\n }\n\n function initialize() {\n addDecorator();\n }\n\n function SVGComposableEffect() {}\n\n SVGComposableEffect.prototype = {\n createMergeNode: function createMergeNode(resultId, ins) {\n var feMerge = createNS('feMerge');\n feMerge.setAttribute('result', resultId);\n var feMergeNode;\n var i;\n\n for (i = 0; i < ins.length; i += 1) {\n feMergeNode = createNS('feMergeNode');\n feMergeNode.setAttribute('in', ins[i]);\n feMerge.appendChild(feMergeNode);\n feMerge.appendChild(feMergeNode);\n }\n\n return feMerge;\n }\n };\n\n var linearFilterValue = '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';\n\n function SVGTintFilter(filter, filterManager, elem, id, source) {\n this.filterManager = filterManager;\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'linearRGB');\n feColorMatrix.setAttribute('values', linearFilterValue + ' 1 0');\n this.linearFilter = feColorMatrix;\n feColorMatrix.setAttribute('result', id + '_tint_1');\n filter.appendChild(feColorMatrix);\n 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 0');\n feColorMatrix.setAttribute('result', id + '_tint_2');\n filter.appendChild(feColorMatrix);\n this.matrixFilter = feColorMatrix;\n var feMerge = this.createMergeNode(id, [source, id + '_tint_1', id + '_tint_2']);\n filter.appendChild(feMerge);\n }\n\n extendPrototype([SVGComposableEffect], SVGTintFilter);\n\n SVGTintFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var colorBlack = this.filterManager.effectElements[0].p.v;\n var colorWhite = this.filterManager.effectElements[1].p.v;\n var opacity = this.filterManager.effectElements[2].p.v / 100;\n this.linearFilter.setAttribute('values', linearFilterValue + ' ' + opacity + ' 0');\n this.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 1 0');\n }\n };\n\n function SVGFillFilter(filter, filterManager, elem, id) {\n this.filterManager = filterManager;\n 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 0');\n feColorMatrix.setAttribute('result', id);\n filter.appendChild(feColorMatrix);\n this.matrixFilter = feColorMatrix;\n }\n\n SVGFillFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var color = this.filterManager.effectElements[2].p.v;\n var opacity = this.filterManager.effectElements[6].p.v;\n this.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 }\n };\n\n function SVGStrokeEffect(fil, filterManager, elem) {\n this.initialized = false;\n this.filterManager = filterManager;\n this.elem = elem;\n this.paths = [];\n }\n\n SVGStrokeEffect.prototype.initialize = function () {\n var elemChildren = this.elem.layerElement.children || this.elem.layerElement.childNodes;\n var path;\n var groupPath;\n var i;\n var len;\n\n if (this.filterManager.effectElements[1].p.v === 1) {\n len = this.elem.maskManager.masksProperties.length;\n i = 0;\n } else {\n i = this.filterManager.effectElements[0].p.v - 1;\n len = i + 1;\n }\n\n groupPath = createNS('g');\n groupPath.setAttribute('fill', 'none');\n groupPath.setAttribute('stroke-linecap', 'round');\n groupPath.setAttribute('stroke-dashoffset', 1);\n\n for (i; i < len; i += 1) {\n path = createNS('path');\n groupPath.appendChild(path);\n this.paths.push({\n p: path,\n m: i\n });\n }\n\n if (this.filterManager.effectElements[10].p.v === 3) {\n var mask = createNS('mask');\n var id = createElementID();\n mask.setAttribute('id', id);\n mask.setAttribute('mask-type', 'alpha');\n mask.appendChild(groupPath);\n this.elem.globalData.defs.appendChild(mask);\n var g = createNS('g');\n g.setAttribute('mask', 'url(' + getLocationHref() + '#' + id + ')');\n\n while (elemChildren[0]) {\n g.appendChild(elemChildren[0]);\n }\n\n this.elem.layerElement.appendChild(g);\n this.masker = mask;\n groupPath.setAttribute('stroke', '#fff');\n } else if (this.filterManager.effectElements[10].p.v === 1 || this.filterManager.effectElements[10].p.v === 2) {\n if (this.filterManager.effectElements[10].p.v === 2) {\n elemChildren = this.elem.layerElement.children || this.elem.layerElement.childNodes;\n\n while (elemChildren.length) {\n this.elem.layerElement.removeChild(elemChildren[0]);\n }\n }\n\n this.elem.layerElement.appendChild(groupPath);\n this.elem.layerElement.removeAttribute('mask');\n groupPath.setAttribute('stroke', '#fff');\n }\n\n this.initialized = true;\n this.pathMasker = groupPath;\n };\n\n SVGStrokeEffect.prototype.renderFrame = function (forceRender) {\n if (!this.initialized) {\n this.initialize();\n }\n\n var i;\n var len = this.paths.length;\n var mask;\n var path;\n\n for (i = 0; i < len; i += 1) {\n if (this.paths[i].m !== -1) {\n mask = this.elem.maskManager.viewData[this.paths[i].m];\n path = this.paths[i].p;\n\n if (forceRender || this.filterManager._mdf || mask.prop._mdf) {\n path.setAttribute('d', mask.lastPath);\n }\n\n if (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 var dasharrayValue;\n\n if (this.filterManager.effectElements[7].p.v !== 0 || this.filterManager.effectElements[8].p.v !== 100) {\n var s = Math.min(this.filterManager.effectElements[7].p.v, this.filterManager.effectElements[8].p.v) * 0.01;\n var e = Math.max(this.filterManager.effectElements[7].p.v, this.filterManager.effectElements[8].p.v) * 0.01;\n var l = path.getTotalLength();\n dasharrayValue = '0 0 0 ' + l * s + ' ';\n var lineLength = l * (e - s);\n var segment = 1 + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01;\n var units = Math.floor(lineLength / segment);\n var j;\n\n for (j = 0; j < units; j += 1) {\n dasharrayValue += '1 ' + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01 + ' ';\n }\n\n dasharrayValue += '0 ' + l * 10 + ' 0 0';\n } else {\n dasharrayValue = '1 ' + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01;\n }\n\n path.setAttribute('stroke-dasharray', dasharrayValue);\n }\n }\n }\n\n if (forceRender || this.filterManager.effectElements[4].p._mdf) {\n this.pathMasker.setAttribute('stroke-width', this.filterManager.effectElements[4].p.v * 2);\n }\n\n if (forceRender || this.filterManager.effectElements[6].p._mdf) {\n this.pathMasker.setAttribute('opacity', this.filterManager.effectElements[6].p.v);\n }\n\n if (this.filterManager.effectElements[10].p.v === 1 || this.filterManager.effectElements[10].p.v === 2) {\n if (forceRender || this.filterManager.effectElements[3].p._mdf) {\n var color = this.filterManager.effectElements[3].p.v;\n this.pathMasker.setAttribute('stroke', 'rgb(' + bmFloor(color[0] * 255) + ',' + bmFloor(color[1] * 255) + ',' + bmFloor(color[2] * 255) + ')');\n }\n }\n };\n\n function SVGTritoneFilter(filter, filterManager, elem, id) {\n this.filterManager = filterManager;\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'linearRGB');\n feColorMatrix.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 filter.appendChild(feColorMatrix);\n var feComponentTransfer = createNS('feComponentTransfer');\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n feComponentTransfer.setAttribute('result', id);\n this.matrixFilter = feComponentTransfer;\n var feFuncR = createNS('feFuncR');\n feFuncR.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFuncR);\n this.feFuncR = feFuncR;\n var feFuncG = createNS('feFuncG');\n feFuncG.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFuncG);\n this.feFuncG = feFuncG;\n var feFuncB = createNS('feFuncB');\n feFuncB.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFuncB);\n this.feFuncB = feFuncB;\n filter.appendChild(feComponentTransfer);\n }\n\n SVGTritoneFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var color1 = this.filterManager.effectElements[0].p.v;\n var color2 = this.filterManager.effectElements[1].p.v;\n var color3 = this.filterManager.effectElements[2].p.v;\n var tableR = color3[0] + ' ' + color2[0] + ' ' + color1[0];\n var tableG = color3[1] + ' ' + color2[1] + ' ' + color1[1];\n var tableB = color3[2] + ' ' + color2[2] + ' ' + color1[2];\n this.feFuncR.setAttribute('tableValues', tableR);\n this.feFuncG.setAttribute('tableValues', tableG);\n this.feFuncB.setAttribute('tableValues', tableB);\n }\n };\n\n function SVGProLevelsFilter(filter, filterManager, elem, id) {\n this.filterManager = filterManager;\n var effectElements = this.filterManager.effectElements;\n var feComponentTransfer = createNS('feComponentTransfer'); // Red\n\n if (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 this.feFuncR = this.createFeFunc('feFuncR', feComponentTransfer);\n } // Green\n\n\n if (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 this.feFuncG = this.createFeFunc('feFuncG', feComponentTransfer);\n } // Blue\n\n\n if (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 this.feFuncB = this.createFeFunc('feFuncB', feComponentTransfer);\n } // Alpha\n\n\n if (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 this.feFuncA = this.createFeFunc('feFuncA', feComponentTransfer);\n } // RGB\n\n\n if (this.feFuncR || this.feFuncG || this.feFuncB || this.feFuncA) {\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n filter.appendChild(feComponentTransfer);\n }\n\n if (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 feComponentTransfer = createNS('feComponentTransfer');\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n feComponentTransfer.setAttribute('result', id);\n filter.appendChild(feComponentTransfer);\n this.feFuncRComposed = this.createFeFunc('feFuncR', feComponentTransfer);\n this.feFuncGComposed = this.createFeFunc('feFuncG', feComponentTransfer);\n this.feFuncBComposed = this.createFeFunc('feFuncB', feComponentTransfer);\n }\n }\n\n SVGProLevelsFilter.prototype.createFeFunc = function (type, feComponentTransfer) {\n var feFunc = createNS(type);\n feFunc.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFunc);\n return feFunc;\n };\n\n SVGProLevelsFilter.prototype.getTableValue = function (inputBlack, inputWhite, gamma, outputBlack, outputWhite) {\n var cnt = 0;\n var segments = 256;\n var perc;\n var min = Math.min(inputBlack, inputWhite);\n var max = Math.max(inputBlack, inputWhite);\n var table = Array.call(null, {\n length: segments\n });\n var colorValue;\n var pos = 0;\n var outputDelta = outputWhite - outputBlack;\n var inputDelta = inputWhite - inputBlack;\n\n while (cnt <= 256) {\n perc = cnt / 256;\n\n if (perc <= min) {\n colorValue = inputDelta < 0 ? outputWhite : outputBlack;\n } else if (perc >= max) {\n colorValue = inputDelta < 0 ? outputBlack : outputWhite;\n } else {\n colorValue = outputBlack + outputDelta * Math.pow((perc - inputBlack) / inputDelta, 1 / gamma);\n }\n\n table[pos] = colorValue;\n pos += 1;\n cnt += 256 / (segments - 1);\n }\n\n return table.join(' ');\n };\n\n SVGProLevelsFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var val;\n var effectElements = this.filterManager.effectElements;\n\n if (this.feFuncRComposed && (forceRender || effectElements[3].p._mdf || effectElements[4].p._mdf || effectElements[5].p._mdf || effectElements[6].p._mdf || effectElements[7].p._mdf)) {\n val = this.getTableValue(effectElements[3].p.v, effectElements[4].p.v, effectElements[5].p.v, effectElements[6].p.v, effectElements[7].p.v);\n this.feFuncRComposed.setAttribute('tableValues', val);\n this.feFuncGComposed.setAttribute('tableValues', val);\n this.feFuncBComposed.setAttribute('tableValues', val);\n }\n\n if (this.feFuncR && (forceRender || effectElements[10].p._mdf || effectElements[11].p._mdf || effectElements[12].p._mdf || effectElements[13].p._mdf || effectElements[14].p._mdf)) {\n val = this.getTableValue(effectElements[10].p.v, effectElements[11].p.v, effectElements[12].p.v, effectElements[13].p.v, effectElements[14].p.v);\n this.feFuncR.setAttribute('tableValues', val);\n }\n\n if (this.feFuncG && (forceRender || effectElements[17].p._mdf || effectElements[18].p._mdf || effectElements[19].p._mdf || effectElements[20].p._mdf || effectElements[21].p._mdf)) {\n val = this.getTableValue(effectElements[17].p.v, effectElements[18].p.v, effectElements[19].p.v, effectElements[20].p.v, effectElements[21].p.v);\n this.feFuncG.setAttribute('tableValues', val);\n }\n\n if (this.feFuncB && (forceRender || effectElements[24].p._mdf || effectElements[25].p._mdf || effectElements[26].p._mdf || effectElements[27].p._mdf || effectElements[28].p._mdf)) {\n val = this.getTableValue(effectElements[24].p.v, effectElements[25].p.v, effectElements[26].p.v, effectElements[27].p.v, effectElements[28].p.v);\n this.feFuncB.setAttribute('tableValues', val);\n }\n\n if (this.feFuncA && (forceRender || effectElements[31].p._mdf || effectElements[32].p._mdf || effectElements[33].p._mdf || effectElements[34].p._mdf || effectElements[35].p._mdf)) {\n val = this.getTableValue(effectElements[31].p.v, effectElements[32].p.v, effectElements[33].p.v, effectElements[34].p.v, effectElements[35].p.v);\n this.feFuncA.setAttribute('tableValues', val);\n }\n }\n };\n\n function SVGDropShadowEffect(filter, filterManager, elem, id, source) {\n var globalFilterSize = filterManager.container.globalData.renderConfig.filterSize;\n var filterSize = filterManager.data.fs || globalFilterSize;\n filter.setAttribute('x', filterSize.x || globalFilterSize.x);\n filter.setAttribute('y', filterSize.y || globalFilterSize.y);\n filter.setAttribute('width', filterSize.width || globalFilterSize.width);\n filter.setAttribute('height', filterSize.height || globalFilterSize.height);\n this.filterManager = filterManager;\n var feGaussianBlur = createNS('feGaussianBlur');\n feGaussianBlur.setAttribute('in', 'SourceAlpha');\n feGaussianBlur.setAttribute('result', id + '_drop_shadow_1');\n feGaussianBlur.setAttribute('stdDeviation', '0');\n this.feGaussianBlur = feGaussianBlur;\n filter.appendChild(feGaussianBlur);\n var feOffset = createNS('feOffset');\n feOffset.setAttribute('dx', '25');\n feOffset.setAttribute('dy', '0');\n feOffset.setAttribute('in', id + '_drop_shadow_1');\n feOffset.setAttribute('result', id + '_drop_shadow_2');\n this.feOffset = feOffset;\n filter.appendChild(feOffset);\n var feFlood = createNS('feFlood');\n feFlood.setAttribute('flood-color', '#00ff00');\n feFlood.setAttribute('flood-opacity', '1');\n feFlood.setAttribute('result', id + '_drop_shadow_3');\n this.feFlood = feFlood;\n filter.appendChild(feFlood);\n var feComposite = createNS('feComposite');\n feComposite.setAttribute('in', id + '_drop_shadow_3');\n feComposite.setAttribute('in2', id + '_drop_shadow_2');\n feComposite.setAttribute('operator', 'in');\n feComposite.setAttribute('result', id + '_drop_shadow_4');\n filter.appendChild(feComposite);\n var feMerge = this.createMergeNode(id, [id + '_drop_shadow_4', source]);\n filter.appendChild(feMerge); //\n }\n\n extendPrototype([SVGComposableEffect], SVGDropShadowEffect);\n\n SVGDropShadowEffect.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n if (forceRender || this.filterManager.effectElements[4].p._mdf) {\n this.feGaussianBlur.setAttribute('stdDeviation', this.filterManager.effectElements[4].p.v / 4);\n }\n\n if (forceRender || this.filterManager.effectElements[0].p._mdf) {\n var col = this.filterManager.effectElements[0].p.v;\n this.feFlood.setAttribute('flood-color', rgbToHex(Math.round(col[0] * 255), Math.round(col[1] * 255), Math.round(col[2] * 255)));\n }\n\n if (forceRender || this.filterManager.effectElements[1].p._mdf) {\n this.feFlood.setAttribute('flood-opacity', this.filterManager.effectElements[1].p.v / 255);\n }\n\n if (forceRender || this.filterManager.effectElements[2].p._mdf || this.filterManager.effectElements[3].p._mdf) {\n var distance = this.filterManager.effectElements[3].p.v;\n var angle = (this.filterManager.effectElements[2].p.v - 90) * degToRads;\n var x = distance * Math.cos(angle);\n var y = distance * Math.sin(angle);\n this.feOffset.setAttribute('dx', x);\n this.feOffset.setAttribute('dy', y);\n }\n }\n };\n\n var _svgMatteSymbols = [];\n\n function SVGMatte3Effect(filterElem, filterManager, elem) {\n this.initialized = false;\n this.filterManager = filterManager;\n this.filterElem = filterElem;\n this.elem = elem;\n elem.matteElement = createNS('g');\n elem.matteElement.appendChild(elem.layerElement);\n elem.matteElement.appendChild(elem.transformedElement);\n elem.baseElement = elem.matteElement;\n }\n\n SVGMatte3Effect.prototype.findSymbol = function (mask) {\n var i = 0;\n var len = _svgMatteSymbols.length;\n\n while (i < len) {\n if (_svgMatteSymbols[i] === mask) {\n return _svgMatteSymbols[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n SVGMatte3Effect.prototype.replaceInParent = function (mask, symbolId) {\n var parentNode = mask.layerElement.parentNode;\n\n if (!parentNode) {\n return;\n }\n\n var children = parentNode.children;\n var i = 0;\n var len = children.length;\n\n while (i < len) {\n if (children[i] === mask.layerElement) {\n break;\n }\n\n i += 1;\n }\n\n var nextChild;\n\n if (i <= len - 2) {\n nextChild = children[i + 1];\n }\n\n var useElem = createNS('use');\n useElem.setAttribute('href', '#' + symbolId);\n\n if (nextChild) {\n parentNode.insertBefore(useElem, nextChild);\n } else {\n parentNode.appendChild(useElem);\n }\n };\n\n SVGMatte3Effect.prototype.setElementAsMask = function (elem, mask) {\n if (!this.findSymbol(mask)) {\n var symbolId = createElementID();\n var masker = createNS('mask');\n masker.setAttribute('id', mask.layerId);\n masker.setAttribute('mask-type', 'alpha');\n\n _svgMatteSymbols.push(mask);\n\n var defs = elem.globalData.defs;\n defs.appendChild(masker);\n var symbol = createNS('symbol');\n symbol.setAttribute('id', symbolId);\n this.replaceInParent(mask, symbolId);\n symbol.appendChild(mask.layerElement);\n defs.appendChild(symbol);\n var useElem = createNS('use');\n useElem.setAttribute('href', '#' + symbolId);\n masker.appendChild(useElem);\n mask.data.hd = false;\n mask.show();\n }\n\n elem.setMatte(mask.layerId);\n };\n\n SVGMatte3Effect.prototype.initialize = function () {\n var ind = this.filterManager.effectElements[0].p.v;\n var elements = this.elem.comp.elements;\n var i = 0;\n var len = elements.length;\n\n while (i < len) {\n if (elements[i] && elements[i].data.ind === ind) {\n this.setElementAsMask(this.elem, elements[i]);\n }\n\n i += 1;\n }\n\n this.initialized = true;\n };\n\n SVGMatte3Effect.prototype.renderFrame = function () {\n if (!this.initialized) {\n this.initialize();\n }\n };\n\n function SVGGaussianBlurEffect(filter, filterManager, elem, id) {\n // Outset the filter region by 100% on all sides to accommodate blur expansion.\n filter.setAttribute('x', '-100%');\n filter.setAttribute('y', '-100%');\n filter.setAttribute('width', '300%');\n filter.setAttribute('height', '300%');\n this.filterManager = filterManager;\n var feGaussianBlur = createNS('feGaussianBlur');\n feGaussianBlur.setAttribute('result', id);\n filter.appendChild(feGaussianBlur);\n this.feGaussianBlur = feGaussianBlur;\n }\n\n SVGGaussianBlurEffect.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n // Empirical value, matching AE's blur appearance.\n var kBlurrinessToSigma = 0.3;\n var sigma = this.filterManager.effectElements[0].p.v * kBlurrinessToSigma; // Dimensions mapping:\n //\n // 1 -> horizontal & vertical\n // 2 -> horizontal only\n // 3 -> vertical only\n //\n\n var dimensions = this.filterManager.effectElements[1].p.v;\n var sigmaX = dimensions == 3 ? 0 : sigma; // eslint-disable-line eqeqeq\n\n var sigmaY = dimensions == 2 ? 0 : sigma; // eslint-disable-line eqeqeq\n\n this.feGaussianBlur.setAttribute('stdDeviation', sigmaX + ' ' + sigmaY); // Repeat edges mapping:\n //\n // 0 -> off -> duplicate\n // 1 -> on -> wrap\n\n var edgeMode = this.filterManager.effectElements[2].p.v == 1 ? 'wrap' : 'duplicate'; // eslint-disable-line eqeqeq\n\n this.feGaussianBlur.setAttribute('edgeMode', edgeMode);\n }\n };\n\n registerRenderer('canvas', CanvasRenderer);\n registerRenderer('html', HybridRenderer);\n registerRenderer('svg', SVGRenderer); // Registering shape modifiers\n\n ShapeModifiers.registerModifier('tm', TrimModifier);\n ShapeModifiers.registerModifier('pb', PuckerAndBloatModifier);\n ShapeModifiers.registerModifier('rp', RepeaterModifier);\n ShapeModifiers.registerModifier('rd', RoundCornersModifier);\n ShapeModifiers.registerModifier('zz', ZigZagModifier);\n ShapeModifiers.registerModifier('op', OffsetPathModifier); // Registering expression plugin\n\n setExpressionsPlugin(Expressions);\n setExpressionInterfaces(getInterface);\n initialize$1();\n initialize(); // Registering svg effects\n\n registerEffect(20, SVGTintFilter, true);\n registerEffect(21, SVGFillFilter, true);\n registerEffect(22, SVGStrokeEffect, false);\n registerEffect(23, SVGTritoneFilter, true);\n registerEffect(24, SVGProLevelsFilter, true);\n registerEffect(25, SVGDropShadowEffect, true);\n registerEffect(28, SVGMatte3Effect, false);\n registerEffect(29, SVGGaussianBlurEffect, true);\n\n return lottie;\n\n}));\n","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","/** @license React v17.0.2\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=require(\"object-assign\"),n=60103,p=60106;exports.Fragment=60107;exports.StrictMode=60108;exports.Profiler=60114;var q=60109,r=60110,t=60112;exports.Suspense=60113;var u=60115,v=60116;\nif(\"function\"===typeof Symbol&&Symbol.for){var w=Symbol.for;n=w(\"react.element\");p=w(\"react.portal\");exports.Fragment=w(\"react.fragment\");exports.StrictMode=w(\"react.strict_mode\");exports.Profiler=w(\"react.profiler\");q=w(\"react.provider\");r=w(\"react.context\");t=w(\"react.forward_ref\");exports.Suspense=w(\"react.suspense\");u=w(\"react.memo\");v=w(\"react.lazy\")}var x=\"function\"===typeof Symbol&&Symbol.iterator;\nfunction y(a){if(null===a||\"object\"!==typeof a)return null;a=x&&a[x]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}function z(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function B(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var D={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){D[a]=new B(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];D[b]=new B(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){D[a]=new B(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){D[a]=new B(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){D[a]=new B(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){D[a]=new B(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){D[a]=new B(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){D[a]=new B(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){D[a]=new B(a,5,!1,a.toLowerCase(),null,!1,!1)});var oa=/[\\-:]([a-z])/g;function pa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(oa,\npa);D[b]=new B(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(oa,pa);D[b]=new B(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(oa,pa);D[b]=new B(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!1,!1)});\nD.xlinkHref=new B(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction qa(a,b,c,d){var e=D.hasOwnProperty(b)?D[b]:null;var f=null!==e?0===e.type:d?!1:!(2h||e[g]!==f[h])return\"\\n\"+e[g].replace(\" at new \",\" at \");while(1<=g&&0<=h)}break}}}finally{Oa=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Na(a):\"\"}\nfunction Qa(a){switch(a.tag){case 5:return Na(a.type);case 16:return Na(\"Lazy\");case 13:return Na(\"Suspense\");case 19:return Na(\"SuspenseList\");case 0:case 2:case 15:return a=Pa(a.type,!1),a;case 11:return a=Pa(a.type.render,!1),a;case 22:return a=Pa(a.type._render,!1),a;case 1:return a=Pa(a.type,!0),a;default:return\"\"}}\nfunction Ra(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ua:return\"Fragment\";case ta:return\"Portal\";case xa:return\"Profiler\";case wa:return\"StrictMode\";case Ba:return\"Suspense\";case Ca:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case za:return(a.displayName||\"Context\")+\".Consumer\";case ya:return(a._context.displayName||\"Context\")+\".Provider\";case Aa:var b=a.render;b=b.displayName||b.name||\"\";\nreturn a.displayName||(\"\"!==b?\"ForwardRef(\"+b+\")\":\"ForwardRef\");case Da:return Ra(a.type);case Fa:return Ra(a._render);case Ea:b=a._payload;a=a._init;try{return Ra(a(b))}catch(c){}}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"object\":case \"string\":case \"undefined\":return a;default:return\"\"}}function Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return m({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function $a(a,b){b=b.checked;null!=b&&qa(a,\"checked\",b,!1)}\nfunction ab(a,b){$a(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?bb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&bb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction cb(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction bb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}function db(a){var b=\"\";aa.Children.forEach(a,function(a){null!=a&&(b+=a)});return b}function eb(a,b){a=m({children:void 0},b);if(b=db(b.children))a.children=b;return a}\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e=c.length))throw Error(y(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:Sa(c)}}\nfunction ib(a,b){var c=Sa(b.value),d=Sa(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function jb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}var kb={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};\nfunction lb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}function mb(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?lb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar nb,ob=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(a.namespaceURI!==kb.svg||\"innerHTML\"in a)a.innerHTML=b;else{nb=nb||document.createElement(\"div\");nb.innerHTML=\"\"+b.valueOf().toString()+\"\";for(b=nb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction pb(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar qb={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,\nfloodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},rb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(qb).forEach(function(a){rb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);qb[b]=qb[a]})});function sb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||qb.hasOwnProperty(a)&&qb[a]?(\"\"+b).trim():b+\"px\"}\nfunction tb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=sb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var ub=m({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction vb(a,b){if(b){if(ub[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(y(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(y(60));if(!(\"object\"===typeof b.dangerouslySetInnerHTML&&\"__html\"in b.dangerouslySetInnerHTML))throw Error(y(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(y(62));}}\nfunction wb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(y(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;ad?0:1<c;c++)b.push(a);return b}\nfunction $c(a,b,c){a.pendingLanes|=b;var d=b-1;a.suspendedLanes&=d;a.pingedLanes&=d;a=a.eventTimes;b=31-Vc(b);a[b]=c}var Vc=Math.clz32?Math.clz32:ad,bd=Math.log,cd=Math.LN2;function ad(a){return 0===a?32:31-(bd(a)/cd|0)|0}var dd=r.unstable_UserBlockingPriority,ed=r.unstable_runWithPriority,fd=!0;function gd(a,b,c,d){Kb||Ib();var e=hd,f=Kb;Kb=!0;try{Hb(e,a,b,c,d)}finally{(Kb=f)||Mb()}}function id(a,b,c,d){ed(dd,hd.bind(null,a,b,c,d))}\nfunction hd(a,b,c,d){if(fd){var e;if((e=0===(b&4))&&0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Ke(c)}}function Me(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Me(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Ne(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Oe(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nvar Pe=fa&&\"documentMode\"in document&&11>=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Oe(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Je(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Af||(a.current=zf[Af],zf[Af]=null,Af--)}function I(a,b){Af++;zf[Af]=a.current;a.current=b}var Cf={},M=Bf(Cf),N=Bf(!1),Df=Cf;\nfunction Ef(a,b){var c=a.type.contextTypes;if(!c)return Cf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}function Ff(a){a=a.childContextTypes;return null!==a&&void 0!==a}function Gf(){H(N);H(M)}function Hf(a,b,c){if(M.current!==Cf)throw Error(y(168));I(M,b);I(N,c)}\nfunction If(a,b,c){var d=a.stateNode;a=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in a))throw Error(y(108,Ra(b)||\"Unknown\",e));return m({},c,d)}function Jf(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Cf;Df=M.current;I(M,a);I(N,N.current);return!0}function Kf(a,b,c){var d=a.stateNode;if(!d)throw Error(y(169));c?(a=If(a,b,Df),d.__reactInternalMemoizedMergedChildContext=a,H(N),H(M),I(M,a)):H(N);I(N,c)}\nvar Lf=null,Mf=null,Nf=r.unstable_runWithPriority,Of=r.unstable_scheduleCallback,Pf=r.unstable_cancelCallback,Qf=r.unstable_shouldYield,Rf=r.unstable_requestPaint,Sf=r.unstable_now,Tf=r.unstable_getCurrentPriorityLevel,Uf=r.unstable_ImmediatePriority,Vf=r.unstable_UserBlockingPriority,Wf=r.unstable_NormalPriority,Xf=r.unstable_LowPriority,Yf=r.unstable_IdlePriority,Zf={},$f=void 0!==Rf?Rf:function(){},ag=null,bg=null,cg=!1,dg=Sf(),O=1E4>dg?Sf:function(){return Sf()-dg};\nfunction eg(){switch(Tf()){case Uf:return 99;case Vf:return 98;case Wf:return 97;case Xf:return 96;case Yf:return 95;default:throw Error(y(332));}}function fg(a){switch(a){case 99:return Uf;case 98:return Vf;case 97:return Wf;case 96:return Xf;case 95:return Yf;default:throw Error(y(332));}}function gg(a,b){a=fg(a);return Nf(a,b)}function hg(a,b,c){a=fg(a);return Of(a,b,c)}function ig(){if(null!==bg){var a=bg;bg=null;Pf(a)}jg()}\nfunction jg(){if(!cg&&null!==ag){cg=!0;var a=0;try{var b=ag;gg(99,function(){for(;az?(q=u,u=null):q=u.sibling;var n=p(e,u,h[z],k);if(null===n){null===u&&(u=q);break}a&&u&&null===\nn.alternate&&b(e,u);g=f(n,g,z);null===t?l=n:t.sibling=n;t=n;u=q}if(z===h.length)return c(e,u),l;if(null===u){for(;zz?(q=u,u=null):q=u.sibling;var w=p(e,u,n.value,k);if(null===w){null===u&&(u=q);break}a&&u&&null===w.alternate&&b(e,u);g=f(w,g,z);null===t?l=w:t.sibling=w;t=w;u=q}if(n.done)return c(e,u),l;if(null===u){for(;!n.done;z++,n=h.next())n=A(e,n.value,k),null!==n&&(g=f(n,g,z),null===t?l=n:t.sibling=n,t=n);return l}for(u=d(e,u);!n.done;z++,n=h.next())n=C(u,e,z,n.value,k),null!==n&&(a&&null!==n.alternate&&\nu.delete(null===n.key?z:n.key),g=f(n,g,z),null===t?l=n:t.sibling=n,t=n);a&&u.forEach(function(a){return b(e,a)});return l}return function(a,d,f,h){var k=\"object\"===typeof f&&null!==f&&f.type===ua&&null===f.key;k&&(f=f.props.children);var l=\"object\"===typeof f&&null!==f;if(l)switch(f.$$typeof){case sa:a:{l=f.key;for(k=d;null!==k;){if(k.key===l){switch(k.tag){case 7:if(f.type===ua){c(a,k.sibling);d=e(k,f.props.children);d.return=a;a=d;break a}break;default:if(k.elementType===f.type){c(a,k.sibling);\nd=e(k,f.props);d.ref=Qg(a,k,f);d.return=a;a=d;break a}}c(a,k);break}else b(a,k);k=k.sibling}f.type===ua?(d=Xg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Vg(f.type,f.key,f.props,null,a.mode,h),h.ref=Qg(a,d,f),h.return=a,a=h)}return g(a);case ta:a:{for(k=f.key;null!==d;){if(d.key===k)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=\nWg(f,a.mode,h);d.return=a;a=d}return g(a)}if(\"string\"===typeof f||\"number\"===typeof f)return f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):(c(a,d),d=Ug(f,a.mode,h),d.return=a,a=d),g(a);if(Pg(f))return x(a,d,f,h);if(La(f))return w(a,d,f,h);l&&Rg(a,f);if(\"undefined\"===typeof f&&!k)switch(a.tag){case 1:case 22:case 0:case 11:case 15:throw Error(y(152,Ra(a.type)||\"Component\"));}return c(a,d)}}var Yg=Sg(!0),Zg=Sg(!1),$g={},ah=Bf($g),bh=Bf($g),ch=Bf($g);\nfunction dh(a){if(a===$g)throw Error(y(174));return a}function eh(a,b){I(ch,b);I(bh,a);I(ah,$g);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:mb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=mb(b,a)}H(ah);I(ah,b)}function fh(){H(ah);H(bh);H(ch)}function gh(a){dh(ch.current);var b=dh(ah.current);var c=mb(b,a.type);b!==c&&(I(bh,a),I(ah,c))}function hh(a){bh.current===a&&(H(ah),H(bh))}var P=Bf(0);\nfunction ih(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&64))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var jh=null,kh=null,lh=!1;\nfunction mh(a,b){var c=nh(5,null,null,0);c.elementType=\"DELETED\";c.type=\"DELETED\";c.stateNode=b;c.return=a;c.flags=8;null!==a.lastEffect?(a.lastEffect.nextEffect=c,a.lastEffect=c):a.firstEffect=a.lastEffect=c}function oh(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,!0):!1;case 6:return b=\"\"===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,!0):!1;case 13:return!1;default:return!1}}\nfunction ph(a){if(lh){var b=kh;if(b){var c=b;if(!oh(a,b)){b=rf(c.nextSibling);if(!b||!oh(a,b)){a.flags=a.flags&-1025|2;lh=!1;jh=a;return}mh(jh,c)}jh=a;kh=rf(b.firstChild)}else a.flags=a.flags&-1025|2,lh=!1,jh=a}}function qh(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;jh=a}\nfunction rh(a){if(a!==jh)return!1;if(!lh)return qh(a),lh=!0,!1;var b=a.type;if(5!==a.tag||\"head\"!==b&&\"body\"!==b&&!nf(b,a.memoizedProps))for(b=kh;b;)mh(a,b),b=rf(b.nextSibling);qh(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(y(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if(\"/$\"===c){if(0===b){kh=rf(a.nextSibling);break a}b--}else\"$\"!==c&&\"$!\"!==c&&\"$?\"!==c||b++}a=a.nextSibling}kh=null}}else kh=jh?rf(a.stateNode.nextSibling):null;return!0}\nfunction sh(){kh=jh=null;lh=!1}var th=[];function uh(){for(var a=0;af))throw Error(y(301));f+=1;T=S=null;b.updateQueue=null;vh.current=Fh;a=c(d,e)}while(zh)}vh.current=Gh;b=null!==S&&null!==S.next;xh=0;T=S=R=null;yh=!1;if(b)throw Error(y(300));return a}function Hh(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===T?R.memoizedState=T=a:T=T.next=a;return T}\nfunction Ih(){if(null===S){var a=R.alternate;a=null!==a?a.memoizedState:null}else a=S.next;var b=null===T?R.memoizedState:T.next;if(null!==b)T=b,S=a;else{if(null===a)throw Error(y(310));S=a;a={memoizedState:S.memoizedState,baseState:S.baseState,baseQueue:S.baseQueue,queue:S.queue,next:null};null===T?R.memoizedState=T=a:T=T.next=a}return T}function Jh(a,b){return\"function\"===typeof b?b(a):b}\nfunction Kh(a){var b=Ih(),c=b.queue;if(null===c)throw Error(y(311));c.lastRenderedReducer=a;var d=S,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){e=e.next;d=d.baseState;var h=g=f=null,k=e;do{var l=k.lane;if((xh&l)===l)null!==h&&(h=h.next={lane:0,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null}),d=k.eagerReducer===a?k.eagerState:a(d,k.action);else{var n={lane:l,action:k.action,eagerReducer:k.eagerReducer,\neagerState:k.eagerState,next:null};null===h?(g=h=n,f=d):h=h.next=n;R.lanes|=l;Dg|=l}k=k.next}while(null!==k&&k!==e);null===h?f=d:h.next=g;He(d,b.memoizedState)||(ug=!0);b.memoizedState=d;b.baseState=f;b.baseQueue=h;c.lastRenderedState=d}return[b.memoizedState,c.dispatch]}\nfunction Lh(a){var b=Ih(),c=b.queue;if(null===c)throw Error(y(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);He(f,b.memoizedState)||(ug=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}\nfunction Mh(a,b,c){var d=b._getVersion;d=d(b._source);var e=b._workInProgressVersionPrimary;if(null!==e)a=e===d;else if(a=a.mutableReadLanes,a=(xh&a)===a)b._workInProgressVersionPrimary=d,th.push(b);if(a)return c(b._source);th.push(b);throw Error(y(350));}\nfunction Nh(a,b,c,d){var e=U;if(null===e)throw Error(y(349));var f=b._getVersion,g=f(b._source),h=vh.current,k=h.useState(function(){return Mh(e,b,c)}),l=k[1],n=k[0];k=T;var A=a.memoizedState,p=A.refs,C=p.getSnapshot,x=A.source;A=A.subscribe;var w=R;a.memoizedState={refs:p,source:b,subscribe:d};h.useEffect(function(){p.getSnapshot=c;p.setSnapshot=l;var a=f(b._source);if(!He(g,a)){a=c(b._source);He(n,a)||(l(a),a=Ig(w),e.mutableReadLanes|=a&e.pendingLanes);a=e.mutableReadLanes;e.entangledLanes|=a;for(var d=\ne.entanglements,h=a;0c?98:c,function(){a(!0)});gg(97\\x3c/script>\",a=a.removeChild(a.firstChild)):\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[wf]=b;a[xf]=d;Bi(a,b,!1,!1);b.stateNode=a;g=wb(c,d);switch(c){case \"dialog\":G(\"cancel\",a);G(\"close\",a);\ne=d;break;case \"iframe\":case \"object\":case \"embed\":G(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eJi&&(b.flags|=64,f=!0,Fi(d,!1),b.lanes=33554432)}else{if(!f)if(a=ih(g),null!==a){if(b.flags|=64,f=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Fi(d,!0),null===d.tail&&\"hidden\"===d.tailMode&&!g.alternate&&!lh)return b=b.lastEffect=d.lastEffect,null!==b&&(b.nextEffect=null),null}else 2*O()-d.renderingStartTime>Ji&&1073741824!==c&&(b.flags|=\n64,f=!0,Fi(d,!1),b.lanes=33554432);d.isBackwards?(g.sibling=b.child,b.child=g):(c=d.last,null!==c?c.sibling=g:b.child=g,d.last=g)}return null!==d.tail?(c=d.tail,d.rendering=c,d.tail=c.sibling,d.lastEffect=b.lastEffect,d.renderingStartTime=O(),c.sibling=null,b=P.current,I(P,f?b&1|2:b&1),c):null;case 23:case 24:return Ki(),null!==a&&null!==a.memoizedState!==(null!==b.memoizedState)&&\"unstable-defer-without-hiding\"!==d.mode&&(b.flags|=4),null}throw Error(y(156,b.tag));}\nfunction Li(a){switch(a.tag){case 1:Ff(a.type)&&Gf();var b=a.flags;return b&4096?(a.flags=b&-4097|64,a):null;case 3:fh();H(N);H(M);uh();b=a.flags;if(0!==(b&64))throw Error(y(285));a.flags=b&-4097|64;return a;case 5:return hh(a),null;case 13:return H(P),b=a.flags,b&4096?(a.flags=b&-4097|64,a):null;case 19:return H(P),null;case 4:return fh(),null;case 10:return rg(a),null;case 23:case 24:return Ki(),null;default:return null}}\nfunction Mi(a,b){try{var c=\"\",d=b;do c+=Qa(d),d=d.return;while(d);var e=c}catch(f){e=\"\\nError generating stack: \"+f.message+\"\\n\"+f.stack}return{value:a,source:b,stack:e}}function Ni(a,b){try{console.error(b.value)}catch(c){setTimeout(function(){throw c;})}}var Oi=\"function\"===typeof WeakMap?WeakMap:Map;function Pi(a,b,c){c=zg(-1,c);c.tag=3;c.payload={element:null};var d=b.value;c.callback=function(){Qi||(Qi=!0,Ri=d);Ni(a,b)};return c}\nfunction Si(a,b,c){c=zg(-1,c);c.tag=3;var d=a.type.getDerivedStateFromError;if(\"function\"===typeof d){var e=b.value;c.payload=function(){Ni(a,b);return d(e)}}var f=a.stateNode;null!==f&&\"function\"===typeof f.componentDidCatch&&(c.callback=function(){\"function\"!==typeof d&&(null===Ti?Ti=new Set([this]):Ti.add(this),Ni(a,b));var c=b.stack;this.componentDidCatch(b.value,{componentStack:null!==c?c:\"\"})});return c}var Ui=\"function\"===typeof WeakSet?WeakSet:Set;\nfunction Vi(a){var b=a.ref;if(null!==b)if(\"function\"===typeof b)try{b(null)}catch(c){Wi(a,c)}else b.current=null}function Xi(a,b){switch(b.tag){case 0:case 11:case 15:case 22:return;case 1:if(b.flags&256&&null!==a){var c=a.memoizedProps,d=a.memoizedState;a=b.stateNode;b=a.getSnapshotBeforeUpdate(b.elementType===b.type?c:lg(b.type,c),d);a.__reactInternalSnapshotBeforeUpdate=b}return;case 3:b.flags&256&&qf(b.stateNode.containerInfo);return;case 5:case 6:case 4:case 17:return}throw Error(y(163));}\nfunction Yi(a,b,c){switch(c.tag){case 0:case 11:case 15:case 22:b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{if(3===(a.tag&3)){var d=a.create;a.destroy=d()}a=a.next}while(a!==b)}b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{var e=a;d=e.next;e=e.tag;0!==(e&4)&&0!==(e&1)&&(Zi(c,a),$i(c,a));a=d}while(a!==b)}return;case 1:a=c.stateNode;c.flags&4&&(null===b?a.componentDidMount():(d=c.elementType===c.type?b.memoizedProps:lg(c.type,b.memoizedProps),a.componentDidUpdate(d,\nb.memoizedState,a.__reactInternalSnapshotBeforeUpdate)));b=c.updateQueue;null!==b&&Eg(c,b,a);return;case 3:b=c.updateQueue;if(null!==b){a=null;if(null!==c.child)switch(c.child.tag){case 5:a=c.child.stateNode;break;case 1:a=c.child.stateNode}Eg(c,b,a)}return;case 5:a=c.stateNode;null===b&&c.flags&4&&mf(c.type,c.memoizedProps)&&a.focus();return;case 6:return;case 4:return;case 12:return;case 13:null===c.memoizedState&&(c=c.alternate,null!==c&&(c=c.memoizedState,null!==c&&(c=c.dehydrated,null!==c&&Cc(c))));\nreturn;case 19:case 17:case 20:case 21:case 23:case 24:return}throw Error(y(163));}\nfunction aj(a,b){for(var c=a;;){if(5===c.tag){var d=c.stateNode;if(b)d=d.style,\"function\"===typeof d.setProperty?d.setProperty(\"display\",\"none\",\"important\"):d.display=\"none\";else{d=c.stateNode;var e=c.memoizedProps.style;e=void 0!==e&&null!==e&&e.hasOwnProperty(\"display\")?e.display:null;d.style.display=sb(\"display\",e)}}else if(6===c.tag)c.stateNode.nodeValue=b?\"\":c.memoizedProps;else if((23!==c.tag&&24!==c.tag||null===c.memoizedState||c===a)&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===\na)break;for(;null===c.sibling;){if(null===c.return||c.return===a)return;c=c.return}c.sibling.return=c.return;c=c.sibling}}\nfunction bj(a,b){if(Mf&&\"function\"===typeof Mf.onCommitFiberUnmount)try{Mf.onCommitFiberUnmount(Lf,b)}catch(f){}switch(b.tag){case 0:case 11:case 14:case 15:case 22:a=b.updateQueue;if(null!==a&&(a=a.lastEffect,null!==a)){var c=a=a.next;do{var d=c,e=d.destroy;d=d.tag;if(void 0!==e)if(0!==(d&4))Zi(b,c);else{d=b;try{e()}catch(f){Wi(d,f)}}c=c.next}while(c!==a)}break;case 1:Vi(b);a=b.stateNode;if(\"function\"===typeof a.componentWillUnmount)try{a.props=b.memoizedProps,a.state=b.memoizedState,a.componentWillUnmount()}catch(f){Wi(b,\nf)}break;case 5:Vi(b);break;case 4:cj(a,b)}}function dj(a){a.alternate=null;a.child=null;a.dependencies=null;a.firstEffect=null;a.lastEffect=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.return=null;a.updateQueue=null}function ej(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction fj(a){a:{for(var b=a.return;null!==b;){if(ej(b))break a;b=b.return}throw Error(y(160));}var c=b;b=c.stateNode;switch(c.tag){case 5:var d=!1;break;case 3:b=b.containerInfo;d=!0;break;case 4:b=b.containerInfo;d=!0;break;default:throw Error(y(161));}c.flags&16&&(pb(b,\"\"),c.flags&=-17);a:b:for(c=a;;){for(;null===c.sibling;){if(null===c.return||ej(c.return)){c=null;break a}c=c.return}c.sibling.return=c.return;for(c=c.sibling;5!==c.tag&&6!==c.tag&&18!==c.tag;){if(c.flags&2)continue b;if(null===\nc.child||4===c.tag)continue b;else c.child.return=c,c=c.child}if(!(c.flags&2)){c=c.stateNode;break a}}d?gj(a,c,b):hj(a,c,b)}\nfunction gj(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=jf));else if(4!==d&&(a=a.child,null!==a))for(gj(a,b,c),a=a.sibling;null!==a;)gj(a,b,c),a=a.sibling}\nfunction hj(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(hj(a,b,c),a=a.sibling;null!==a;)hj(a,b,c),a=a.sibling}\nfunction cj(a,b){for(var c=b,d=!1,e,f;;){if(!d){d=c.return;a:for(;;){if(null===d)throw Error(y(160));e=d.stateNode;switch(d.tag){case 5:f=!1;break a;case 3:e=e.containerInfo;f=!0;break a;case 4:e=e.containerInfo;f=!0;break a}d=d.return}d=!0}if(5===c.tag||6===c.tag){a:for(var g=a,h=c,k=h;;)if(bj(g,k),null!==k.child&&4!==k.tag)k.child.return=k,k=k.child;else{if(k===h)break a;for(;null===k.sibling;){if(null===k.return||k.return===h)break a;k=k.return}k.sibling.return=k.return;k=k.sibling}f?(g=e,h=c.stateNode,\n8===g.nodeType?g.parentNode.removeChild(h):g.removeChild(h)):e.removeChild(c.stateNode)}else if(4===c.tag){if(null!==c.child){e=c.stateNode.containerInfo;f=!0;c.child.return=c;c=c.child;continue}}else if(bj(a,c),null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return;4===c.tag&&(d=!1)}c.sibling.return=c.return;c=c.sibling}}\nfunction ij(a,b){switch(b.tag){case 0:case 11:case 14:case 15:case 22:var c=b.updateQueue;c=null!==c?c.lastEffect:null;if(null!==c){var d=c=c.next;do 3===(d.tag&3)&&(a=d.destroy,d.destroy=void 0,void 0!==a&&a()),d=d.next;while(d!==c)}return;case 1:return;case 5:c=b.stateNode;if(null!=c){d=b.memoizedProps;var e=null!==a?a.memoizedProps:d;a=b.type;var f=b.updateQueue;b.updateQueue=null;if(null!==f){c[xf]=d;\"input\"===a&&\"radio\"===d.type&&null!=d.name&&$a(c,d);wb(a,e);b=wb(a,d);for(e=0;ee&&(e=g);c&=~f}c=e;c=O()-c;c=(120>c?120:480>c?480:1080>c?1080:1920>c?1920:3E3>c?3E3:4320>\nc?4320:1960*nj(c/1960))-c;if(10 component higher in the tree to provide a loading indicator or placeholder to display.\")}5!==V&&(V=2);k=Mi(k,h);p=\ng;do{switch(p.tag){case 3:f=k;p.flags|=4096;b&=-b;p.lanes|=b;var J=Pi(p,f,b);Bg(p,J);break a;case 1:f=k;var K=p.type,Q=p.stateNode;if(0===(p.flags&64)&&(\"function\"===typeof K.getDerivedStateFromError||null!==Q&&\"function\"===typeof Q.componentDidCatch&&(null===Ti||!Ti.has(Q)))){p.flags|=4096;b&=-b;p.lanes|=b;var L=Si(p,f,b);Bg(p,L);break a}}p=p.return}while(null!==p)}Zj(c)}catch(va){b=va;Y===c&&null!==c&&(Y=c=c.return);continue}break}while(1)}\nfunction Pj(){var a=oj.current;oj.current=Gh;return null===a?Gh:a}function Tj(a,b){var c=X;X|=16;var d=Pj();U===a&&W===b||Qj(a,b);do try{ak();break}catch(e){Sj(a,e)}while(1);qg();X=c;oj.current=d;if(null!==Y)throw Error(y(261));U=null;W=0;return V}function ak(){for(;null!==Y;)bk(Y)}function Rj(){for(;null!==Y&&!Qf();)bk(Y)}function bk(a){var b=ck(a.alternate,a,qj);a.memoizedProps=a.pendingProps;null===b?Zj(a):Y=b;pj.current=null}\nfunction Zj(a){var b=a;do{var c=b.alternate;a=b.return;if(0===(b.flags&2048)){c=Gi(c,b,qj);if(null!==c){Y=c;return}c=b;if(24!==c.tag&&23!==c.tag||null===c.memoizedState||0!==(qj&1073741824)||0===(c.mode&4)){for(var d=0,e=c.child;null!==e;)d|=e.lanes|e.childLanes,e=e.sibling;c.childLanes=d}null!==a&&0===(a.flags&2048)&&(null===a.firstEffect&&(a.firstEffect=b.firstEffect),null!==b.lastEffect&&(null!==a.lastEffect&&(a.lastEffect.nextEffect=b.firstEffect),a.lastEffect=b.lastEffect),1g&&(h=g,g=J,J=h),h=Le(t,J),f=Le(t,g),h&&f&&(1!==v.rangeCount||v.anchorNode!==h.node||v.anchorOffset!==h.offset||v.focusNode!==f.node||v.focusOffset!==f.offset)&&(q=q.createRange(),q.setStart(h.node,h.offset),v.removeAllRanges(),J>g?(v.addRange(q),v.extend(f.node,f.offset)):(q.setEnd(f.node,f.offset),v.addRange(q))))));q=[];for(v=t;v=v.parentNode;)1===v.nodeType&&q.push({element:v,left:v.scrollLeft,top:v.scrollTop});\"function\"===typeof t.focus&&t.focus();for(t=\n0;tO()-jj?Qj(a,0):uj|=c);Mj(a,b)}function lj(a,b){var c=a.stateNode;null!==c&&c.delete(b);b=0;0===b&&(b=a.mode,0===(b&2)?b=1:0===(b&4)?b=99===eg()?1:2:(0===Gj&&(Gj=tj),b=Yc(62914560&~Gj),0===b&&(b=4194304)));c=Hg();a=Kj(a,b);null!==a&&($c(a,b,c),Mj(a,c))}var ck;\nck=function(a,b,c){var d=b.lanes;if(null!==a)if(a.memoizedProps!==b.pendingProps||N.current)ug=!0;else if(0!==(c&d))ug=0!==(a.flags&16384)?!0:!1;else{ug=!1;switch(b.tag){case 3:ri(b);sh();break;case 5:gh(b);break;case 1:Ff(b.type)&&Jf(b);break;case 4:eh(b,b.stateNode.containerInfo);break;case 10:d=b.memoizedProps.value;var e=b.type._context;I(mg,e._currentValue);e._currentValue=d;break;case 13:if(null!==b.memoizedState){if(0!==(c&b.child.childLanes))return ti(a,b,c);I(P,P.current&1);b=hi(a,b,c);return null!==\nb?b.sibling:null}I(P,P.current&1);break;case 19:d=0!==(c&b.childLanes);if(0!==(a.flags&64)){if(d)return Ai(a,b,c);b.flags|=64}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null,e.lastEffect=null);I(P,P.current);if(d)break;else return null;case 23:case 24:return b.lanes=0,mi(a,b,c)}return hi(a,b,c)}else ug=!1;b.lanes=0;switch(b.tag){case 2:d=b.type;null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);a=b.pendingProps;e=Ef(b,M.current);tg(b,c);e=Ch(null,b,d,a,e,c);b.flags|=1;if(\"object\"===\ntypeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof){b.tag=1;b.memoizedState=null;b.updateQueue=null;if(Ff(d)){var f=!0;Jf(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;xg(b);var g=d.getDerivedStateFromProps;\"function\"===typeof g&&Gg(b,d,g,a);e.updater=Kg;b.stateNode=e;e._reactInternals=b;Og(b,d,a,c);b=qi(null,b,d,!0,f,c)}else b.tag=0,fi(null,b,e,c),b=b.child;return b;case 16:e=b.elementType;a:{null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);\na=b.pendingProps;f=e._init;e=f(e._payload);b.type=e;f=b.tag=hk(e);a=lg(e,a);switch(f){case 0:b=li(null,b,e,a,c);break a;case 1:b=pi(null,b,e,a,c);break a;case 11:b=gi(null,b,e,a,c);break a;case 14:b=ii(null,b,e,lg(e.type,a),d,c);break a}throw Error(y(306,e,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),li(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),pi(a,b,d,e,c);case 3:ri(b);d=b.updateQueue;if(null===a||null===d)throw Error(y(282));\nd=b.pendingProps;e=b.memoizedState;e=null!==e?e.element:null;yg(a,b);Cg(b,d,null,c);d=b.memoizedState.element;if(d===e)sh(),b=hi(a,b,c);else{e=b.stateNode;if(f=e.hydrate)kh=rf(b.stateNode.containerInfo.firstChild),jh=b,f=lh=!0;if(f){a=e.mutableSourceEagerHydrationData;if(null!=a)for(e=0;e=\nE};k=function(){};exports.unstable_forceFrameRate=function(a){0>a||125>>1,e=a[d];if(void 0!==e&&0I(n,c))void 0!==r&&0>I(r,n)?(a[d]=r,a[v]=c,d=v):(a[d]=n,a[m]=c,d=m);else if(void 0!==r&&0>I(r,c))a[d]=r,a[v]=c,d=v;else break a}}return b}return null}function I(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}var L=[],M=[],N=1,O=null,P=3,Q=!1,R=!1,S=!1;\nfunction T(a){for(var b=J(M);null!==b;){if(null===b.callback)K(M);else if(b.startTime<=a)K(M),b.sortIndex=b.expirationTime,H(L,b);else break;b=J(M)}}function U(a){S=!1;T(a);if(!R)if(null!==J(L))R=!0,f(V);else{var b=J(M);null!==b&&g(U,b.startTime-a)}}\nfunction V(a,b){R=!1;S&&(S=!1,h());Q=!0;var c=P;try{T(b);for(O=J(L);null!==O&&(!(O.expirationTime>b)||a&&!exports.unstable_shouldYield());){var d=O.callback;if(\"function\"===typeof d){O.callback=null;P=O.priorityLevel;var e=d(O.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?O.callback=e:O===J(L)&&K(L);T(b)}else K(L);O=J(L)}if(null!==O)var m=!0;else{var n=J(M);null!==n&&g(U,n.startTime-b);m=!1}return m}finally{O=null,P=c,Q=!1}}var W=k;exports.unstable_IdlePriority=5;\nexports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){R||Q||(R=!0,f(V))};exports.unstable_getCurrentPriorityLevel=function(){return P};exports.unstable_getFirstCallbackNode=function(){return J(L)};\nexports.unstable_next=function(a){switch(P){case 1:case 2:case 3:var b=3;break;default:b=P}var c=P;P=b;try{return a()}finally{P=c}};exports.unstable_pauseExecution=function(){};exports.unstable_requestPaint=W;exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=P;P=a;try{return b()}finally{P=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();\"object\"===typeof c&&null!==c?(c=c.delay,c=\"number\"===typeof c&&0d?(a.sortIndex=c,H(M,a),null===J(L)&&a===J(M)&&(S?h():S=!0,g(U,c-d))):(a.sortIndex=e,H(L,a),R||Q||(R=!0,f(V)));return a};\nexports.unstable_wrapCallback=function(a){var b=P;return function(){var c=P;P=b;try{return a.apply(this,arguments)}finally{P=c}}};\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}","import defineProperty from \"./defineProperty.js\";\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n return keys;\n}\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n}","/** @license React v17.0.2\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';require(\"object-assign\");var f=require(\"react\"),g=60103;exports.Fragment=60107;if(\"function\"===typeof Symbol&&Symbol.for){var h=Symbol.for;g=h(\"react.element\");exports.Fragment=h(\"react.fragment\")}var m=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,n=Object.prototype.hasOwnProperty,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,k){var b,d={},e=null,l=null;void 0!==k&&(e=\"\"+k);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(l=a.ref);for(b in a)n.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:g,type:c,key:e,ref:l,props:d,_owner:m.current}}exports.jsx=q;exports.jsxs=q;\n"],"sourceRoot":""}