{"version":3,"sources":["../node_modules/react/index.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/regenerator/index.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createSuper.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","../node_modules/prop-types/index.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/crypto-js/core.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/get.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/superPropBase.js","../node_modules/chart.js/dist/chunks/helpers.segment.mjs","../node_modules/chart.js/dist/chart.mjs","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/crypto-js/cipher-core.js","../ls/webpack/universalModuleDefinition","../ls/webpack/bootstrap","../webpack:/ls/webpack/runtime/define property getters","../webpack:/ls/webpack/runtime/hasOwnProperty shorthand","../ls/src/helpers.ts","../ls/src/ls.ts","../node_modules/tiny-invariant/dist/tiny-invariant.esm.js","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/resolve-pathname/esm/resolve-pathname.js","../node_modules/value-equal/esm/value-equal.js","../node_modules/history/esm/history.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/mini-create-react-context/dist/esm/index.js","../../modules/RouterContext.js","../../modules/Router.js","../../modules/MemoryRouter.js","../../modules/Lifecycle.js","../../modules/matchPath.js","../../modules/Route.js","../../modules/StaticRouter.js","../../modules/Switch.js","../../modules/hooks.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/fast-memoize/src/index.js","../node_modules/crypto-js/evpkdf.js","../node_modules/crypto-js/enc-base64.js","../node_modules/crypto-js/md5.js","../node_modules/react-dom/index.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/crypto-js/x64-core.js","../node_modules/react-draggable/build/cjs/utils/shims.js","../node_modules/react-rnd/node_modules/react-draggable/build/cjs/utils/shims.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../node_modules/react-rnd/node_modules/re-resizable/lib/resizer.js","../node_modules/react-rnd/node_modules/re-resizable/lib/index.js","../node_modules/react-rnd/lib/index.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../../src/utils.ts","../../src/chart.tsx","../../src/typedCharts.tsx","../node_modules/crypto-js/sha1.js","../node_modules/crypto-js/hmac.js","../node_modules/react-draggable/build/cjs/utils/domFns.js","../node_modules/react-rnd/node_modules/react-draggable/build/cjs/utils/domFns.js","../node_modules/@babel/runtime/helpers/inheritsLoose.js","../node_modules/path-to-regexp/index.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/construct.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","../node_modules/exifr/dist/full.esm.mjs","../node_modules/object-assign/index.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/arrayLikeToArray.js","../node_modules/crypto-js/sha256.js","../node_modules/crypto-js/sha512.js","../node_modules/clsx/dist/clsx.m.js","../node_modules/react-draggable/build/cjs/utils/positionFns.js","../node_modules/react-draggable/build/cjs/utils/log.js","../node_modules/react-rnd/node_modules/react-draggable/build/cjs/utils/positionFns.js","../node_modules/react-rnd/node_modules/react-draggable/build/cjs/utils/log.js","../node_modules/react-is/index.js","../node_modules/react-rnd/node_modules/react-draggable/build/cjs/cjs.js","../node_modules/classnames/index.js","../node_modules/gud/index.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../../modules/BrowserRouter.js","../../modules/HashRouter.js","../../modules/utils/locationUtils.js","../../modules/Link.js","../../modules/NavLink.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/babel-preset-react-app/node_modules/regenerator-runtime/runtime.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/defineProperty.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/toConsumableArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/iterableToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/nonIterableSpread.js","../node_modules/crypto-js/index.js","../node_modules/crypto-js/lib-typedarrays.js","../node_modules/crypto-js/enc-utf16.js","../node_modules/crypto-js/sha224.js","../node_modules/crypto-js/sha384.js","../node_modules/crypto-js/sha3.js","../node_modules/crypto-js/ripemd160.js","../node_modules/crypto-js/pbkdf2.js","../node_modules/crypto-js/mode-cfb.js","../node_modules/crypto-js/mode-ctr.js","../node_modules/crypto-js/mode-ctr-gladman.js","../node_modules/crypto-js/mode-ofb.js","../node_modules/crypto-js/mode-ecb.js","../node_modules/crypto-js/pad-ansix923.js","../node_modules/crypto-js/pad-iso10126.js","../node_modules/crypto-js/pad-iso97971.js","../node_modules/crypto-js/pad-zeropadding.js","../node_modules/crypto-js/pad-nopadding.js","../node_modules/crypto-js/format-hex.js","../node_modules/crypto-js/aes.js","../node_modules/crypto-js/tripledes.js","../node_modules/crypto-js/rc4.js","../node_modules/crypto-js/rabbit.js","../node_modules/crypto-js/rabbit-legacy.js","../node_modules/react-draggable/build/cjs/cjs.js","../node_modules/react-draggable/build/cjs/Draggable.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/react-draggable/build/cjs/utils/getPrefix.js","../node_modules/react-draggable/build/cjs/DraggableCore.js","../node_modules/react-rnd/node_modules/react-draggable/build/cjs/Draggable.js","../node_modules/react-rnd/node_modules/react-draggable/build/cjs/utils/getPrefix.js","../node_modules/react-rnd/node_modules/react-draggable/build/cjs/DraggableCore.js","../node_modules/webpack/buildin/global.js","../node_modules/isarray/index.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/reactstrap/es/utils.js","../node_modules/reactstrap/es/Input.js"],"names":["module","exports","require","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_createClass","Constructor","protoProps","staticProps","prototype","_classCallCheck","instance","TypeError","_inherits","subClass","superClass","create","constructor","value","_createSuper","Derived","result","Super","NewTarget","this","Reflect","construct","arguments","apply","asyncGeneratorStep","gen","resolve","reject","_next","_throw","arg","info","error","done","Promise","then","_asyncToGenerator","fn","self","args","err","undefined","_createForOfIteratorHelper","o","Symbol","iterator","Array","isArray","F","s","n","e","_e","f","it","normalCompletion","didErr","step","next","_e2","_defineProperty","obj","CryptoJS","Math","subtype","C","C_lib","lib","Base","extend","overrides","mixIn","hasOwnProperty","init","$super","properties","propertyName","toString","clone","WordArray","words","sigBytes","encoder","Hex","stringify","concat","wordArray","thisWords","thatWords","thisSigBytes","thatSigBytes","clamp","thatByte","ceil","call","slice","random","nBytes","rcache","r","m_w","m_z","mask","_r","push","C_enc","enc","hexChars","bite","join","parse","hexStr","hexStrLength","parseInt","substr","Latin1","latin1Chars","String","fromCharCode","latin1Str","latin1StrLength","charCodeAt","Utf8","decodeURIComponent","escape","Error","utf8Str","unescape","encodeURIComponent","BufferedBlockAlgorithm","reset","_data","_nDataBytes","_append","data","_process","doFlush","dataWords","dataSigBytes","blockSize","nBlocksReady","nWordsReady","max","_minBufferSize","nBytesReady","min","offset","_doProcessBlock","processedWords","splice","C_algo","Hasher","cfg","_doReset","update","messageUpdate","finalize","_doFinalize","_createHelper","hasher","message","_createHmacHelper","HMAC","algo","factory","_getPrototypeOf","setPrototypeOf","getPrototypeOf","__proto__","_slicedToArray","arr","_arr","_n","_d","_s","_i","unsupportedIterableToArray","_assertThisInitialized","ReferenceError","_toConsumableArray","arrayLikeToArray","iter","from","property","receiver","get","base","object","desc","getOwnPropertyDescriptor","noop","uid","id","isNullOrUndef","type","isObject","isNumberFinite","Number","isFinite","finiteOrDefault","defaultValue","valueOrDefault","toDimension","dimension","endsWith","parseFloat","callback","thisArg","each","loopable","reverse","len","keys","_elementsEqual","a0","a1","ilen","v0","v1","datasetIndex","index","clone$1","source","map","klen","k","isValidKey","indexOf","_merger","options","tval","sval","merge","sources","merger","mergeIf","_mergerIf","keyResolvers","v","x","y","resolveObjectKey","parts","split","tmp","part","_splitKey","_getKeyResolver","_capitalize","str","charAt","toUpperCase","defined","isFunction","setsEqual","a","b","size","item","has","PI","TAU","PITAU","INFINITY","POSITIVE_INFINITY","RAD_PER_DEG","HALF_PI","QUARTER_PI","TWO_THIRDS_PI","log10","sign","niceNum","range","roundedRange","round","almostEquals","niceRange","pow","floor","fraction","isNumber","isNaN","epsilon","abs","_setMinAndMaxByKey","array","toRadians","degrees","toDegrees","radians","_decimalPlaces","p","getAngleFromPoint","centrePoint","anglePoint","distanceFromXCenter","distanceFromYCenter","radialDistanceFromCenter","sqrt","angle","atan2","distance","distanceBetweenPoints","pt1","pt2","_angleDiff","_normalizeAngle","_angleBetween","start","end","sameAngleIsFullCircle","angleToStart","angleToEnd","startToAngle","endToAngle","_limitValue","_isBetween","_lookup","table","cmp","mid","hi","lo","_lookupByKey","last","_rlookupByKey","arrayEvents","unlistenArrayEvents","listener","stub","_chartjs","listeners","forEach","_arrayUnique","items","set","Set","add","requestAnimFrame","window","requestAnimationFrame","throttled","updateFn","updateArgs","ticking","rest","_toLeftRightCenter","align","_alignStartEnd","_getStartAndCountOfVisiblePoints","meta","points","animationsDisabled","pointCount","count","_sorted","iScale","_parsed","axis","getUserBounds","minDefined","maxDefined","getPixelForValue","_scaleRangesChanged","xScale","yScale","_scaleRanges","newRanges","xmin","xmax","ymin","ymax","changed","assign","atEdge","t","elasticIn","sin","elasticOut","effects","linear","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","easeInSine","cos","easeOutSine","easeInOutSine","easeInExpo","easeOutExpo","easeInOutExpo","easeInCirc","easeOutCirc","easeInOutCirc","easeInElastic","easeOutElastic","easeInOutElastic","easeInBack","easeOutBack","easeInOutBack","easeInBounce","easeOutBounce","m","d","easeInOutBounce","lim","l","h","p2b","n2b","b2n","n2p","map$1","0","1","2","3","4","5","6","7","8","9","A","B","D","E","c","hex","h1","h2","eq","hexString","g","isShort","alpha","HUE_RE","hsl2rgbn","hsv2rgbn","hwb2rgbn","w","rgb","rgb2hsl","hueValue","calln","hsl2rgb","hue","hueParse","exec","p1","p2","hwb2rgb","hsv2rgb","names","Z","Y","X","W","V","U","T","S","R","Q","P","O","N","M","L","K","G","H","I","J","names$1","OiceXe","antiquewEte","aqua","aquamarRe","azuY","beige","bisque","black","blanKedOmond","Xe","XeviTet","bPwn","burlywood","caMtXe","KartYuse","KocTate","cSO","cSnflowerXe","cSnsilk","crimson","cyan","xXe","xcyan","xgTMnPd","xWay","xgYF","xgYy","xkhaki","xmagFta","xTivegYF","xSange","xScEd","xYd","xsOmon","xsHgYF","xUXe","xUWay","xUgYy","xQe","xviTet","dAppRk","dApskyXe","dimWay","dimgYy","dodgerXe","fiYbrick","flSOwEte","foYstWAn","fuKsia","gaRsbSo","ghostwEte","gTd","gTMnPd","Way","gYF","gYFLw","gYy","honeyMw","hotpRk","RdianYd","Rdigo","ivSy","khaki","lavFMr","lavFMrXsh","lawngYF","NmoncEffon","ZXe","ZcSO","Zcyan","ZgTMnPdLw","ZWay","ZgYF","ZgYy","ZpRk","ZsOmon","ZsHgYF","ZskyXe","ZUWay","ZUgYy","ZstAlXe","ZLw","lime","limegYF","lRF","magFta","maPon","VaquamarRe","VXe","VScEd","VpurpN","VsHgYF","VUXe","VsprRggYF","VQe","VviTetYd","midnightXe","mRtcYam","mistyPse","moccasR","navajowEte","navy","Tdlace","Tive","TivedBb","Sange","SangeYd","ScEd","pOegTMnPd","pOegYF","pOeQe","pOeviTetYd","papayawEp","pHKpuff","peru","pRk","plum","powMrXe","purpN","YbeccapurpN","Yd","Psybrown","PyOXe","saddNbPwn","sOmon","sandybPwn","sHgYF","sHshell","siFna","silver","skyXe","UXe","UWay","UgYy","snow","sprRggYF","stAlXe","tan","teO","tEstN","tomato","Qe","viTet","JHt","wEte","wEtesmoke","Lw","LwgYF","nameParse","j","ok","nk","unpacked","tkeys","replace","unpack","transparent","toLowerCase","RGB_RE","to","modHSL","ratio","proto","fromObject","input","functionParse","rgbParse","Color","ret","hexParse","_rgb","_valid","hslString","color","weight","w2","c1","c2","w1","rgb1","rgb2","interpolate","val","deg","rotate","index_esm","isPatternOrGradient","getHoverColor","saturate","darken","descriptors","getScope$1","node","root","scope","values","defaults","_descriptors","animation","backgroundColor","borderColor","datasets","devicePixelRatio","context","chart","platform","getDevicePixelRatio","elements","events","font","family","style","lineHeight","hover","hoverBackgroundColor","ctx","hoverBorderColor","hoverColor","indexAxis","interaction","mode","intersect","includeInvisible","maintainAspectRatio","onHover","onClick","parsing","plugins","responsive","scale","scales","showLine","drawActiveElementsOnTop","describe","name","targetScope","targetName","scopeObject","targetScopeObject","privateName","defineProperties","local","_scriptable","startsWith","_indexable","_fallback","_measureText","gc","longest","string","textWidth","measureText","width","_longestText","arrayOfThings","cache","garbageCollect","save","jlen","thing","nestedThing","restore","gcLen","_alignPixel","pixel","currentDevicePixelRatio","halfWidth","clearCanvas","canvas","getContext","resetTransform","clearRect","height","drawPoint","drawPointLegend","xOffset","yOffset","cornerRadius","pointStyle","rotation","radius","rad","translate","drawImage","beginPath","ellipse","arc","closePath","moveTo","lineTo","SQRT1_2","rect","fill","borderWidth","stroke","_isPointInArea","point","area","margin","left","right","top","bottom","clipArea","clip","unclipArea","_steppedLineTo","previous","flip","midpoint","_bezierCurveTo","bezierCurveTo","cp1x","cp2x","cp1y","cp2y","renderText","text","line","opts","lines","strokeWidth","strokeColor","setRenderOpts","strokeStyle","lineWidth","strokeText","maxWidth","fillText","decorateText","translation","fillStyle","textAlign","textBaseline","strikethrough","underline","metrics","actualBoundingBoxLeft","actualBoundingBoxRight","actualBoundingBoxAscent","actualBoundingBoxDescent","yDecoration","decorationWidth","addRoundedRectPath","topLeft","bottomLeft","bottomRight","topRight","LINE_HEIGHT","RegExp","FONT_STYLE","toLineHeight","matches","match","_readValueToProps","objProps","read","prop","toTRBL","toTRBLCorners","toPadding","toFont","fallback","console","warn","toFontString","inputs","cacheable","createContext","parentContext","_createResolver","scopes","prefixes","rootScopes","getTarget","_resolve","toStringTag","Proxy","deleteProperty","_keys","_cached","_resolveWithPrefixes","_scopes","getKeysFromAllScopes","includes","ownKeys","storage","_storage","_attachContext","proxy","subProxy","descriptorDefaults","_cacheable","_proxy","_context","_subProxy","_stack","setContext","override","isScriptable","delete","needsSubResolver","createSubResolver","_resolveScriptable","isIndexable","filter","resolver","_resolveArray","_resolveWithContext","allKeys","scriptable","indexable","_allKeys","readKey","prefix","resolveFallback","getScope","parent","addScopes","parentScopes","parentFallback","_rootScopes","allScopes","addScopesFromKey","_getTarget","subGetTarget","resolveKeysFromAllScopes","_parseObjectDataRadialScale","_parsing","parsed","EPSILON","getPoint","skip","getValueAxis","splineCurve","firstPoint","middlePoint","afterPoint","current","d01","d12","s01","s12","fa","fb","monotoneAdjust","deltaK","mK","alphaK","betaK","tauK","squaredMagnitude","pointCurrent","pointsLen","pointAfter","monotoneCompute","delta","pointBefore","valueAxis","iPixel","vPixel","capControlPoint","pt","_updateBezierControlPoints","loop","controlPoints","spanGaps","cubicInterpolationMode","slopeDelta","splineCurveMonotone","prev","tension","capBezierPoints","inArea","inAreaPrev","inAreaNext","_isDomSupported","document","_getParentNode","domNode","parentNode","host","parseMaxStyle","styleValue","parentProperty","valueInPixels","getComputedStyle","element","positions","getPositionedStyle","styles","suffix","pos","getRelativePosition","evt","borderBox","boxSizing","paddings","borders","touches","offsetX","offsetY","box","shadowRoot","useOffsetPos","getBoundingClientRect","clientX","clientY","getCanvasPosition","round1","getMaximumSize","bbWidth","bbHeight","aspectRatio","margins","maxHeight","containerSize","container","containerStyle","containerBorder","containerPadding","clientWidth","clientHeight","getContainerSize","retinaScale","forceRatio","forceStyle","pixelRatio","deviceHeight","deviceWidth","setTransform","supportsEventListenerOptions","passiveSupported","addEventListener","removeEventListener","readUsedSize","el","getPropertyValue","getStyle","_pointInLine","_steppedInterpolation","_bezierInterpolation","cp1","cp2","intlCache","Map","formatNumber","num","locale","cacheKey","JSON","formatter","Intl","NumberFormat","getNumberFormat","format","getRtlAdapter","rtl","rectX","setWidth","xPlus","leftForLtr","itemWidth","getRightToLeftAdapter","_itemWidth","overrideTextDirection","direction","original","getPropertyPriority","setProperty","prevTextDirection","restoreTextDirection","propertyFn","between","compare","normalize","normalizeSegment","_boundSegment","segment","bounds","prevValue","startBound","endBound","getSegment","inside","subStart","shouldStart","shouldStop","_boundSegments","segments","sub","splitByStyles","segmentOptions","chartContext","_chart","baseStyle","readStyle","_datasetIndex","prevStyle","addStyle","st","dir","styleChanged","p0","p0DataIndex","p1DataIndex","doSplitByStyles","borderCapStyle","borderDash","borderDashOffset","borderJoinStyle","animator","_request","_charts","_running","_lastDate","anims","date","callbacks","numSteps","duration","initial","currentStep","_update","_refresh","Date","now","remaining","running","draw","_active","_total","tick","pop","_notify","charts","complete","progress","event","cb","_getAnims","reduce","acc","cur","_duration","cancel","interpolators","boolean","factor","c0","valid","mix","number","Animation","currentValue","_fn","_easing","easing","_start","delay","_loop","_target","_prop","_from","_to","_promises","elapsed","remain","promises","res","rej","resolved","method","animationOptions","colors","numbers","active","resize","show","animations","visible","hide","Animations","config","_properties","configure","animatedProps","getOwnPropertyNames","option","newOptions","$shared","$animations","resolveTargetOptions","_createAnimations","anim","wait","all","awaitAll","_animateOptions","scaleClip","allowedOverflow","getSortedDatasetIndices","filterVisible","metasets","_getSortedDatasetMetas","applyStack","stack","dsIndex","otherValue","singleMode","isStacked","stacked","getOrCreateStack","stacks","stackKey","indexValue","subStack","getLastIndexInStack","vScale","positive","getMatchingVisibleMetas","updateStacks","controller","_cachedMeta","_stacks","iAxis","vAxis","indexScale","valueScale","getStackKey","_top","_bottom","getFirstScaleId","shift","clearStacks","isDirectUpdateMode","cloneIfNotShared","cached","shared","DatasetController","_ctx","_cachedDataOpts","getMeta","_type","_objectData","_sharedOptions","_drawStart","_drawCount","enableOptionSharing","supportsDecimation","$context","_syncList","initialize","linkScales","_stacked","addElements","dataset","getDataset","chooseId","xid","xAxisID","yid","yAxisID","rid","rAxisID","iid","iAxisID","vid","vAxisID","getScaleForId","rScale","getDatasetMeta","scaleID","adata","convertObjectDataToArray","isExtensible","_dataCheck","datasetElementType","resetNewElements","stackChanged","oldStacked","_resyncElements","scopeKeys","datasetScopeKeys","getOptionScopes","createResolver","sorted","parseArrayData","parseObjectData","parsePrimitiveData","labels","getLabels","singleScale","xAxisKey","yAxisKey","parsedValue","NaN","canStack","otherScale","_getOtherScale","hidden","createStack","NEGATIVE_INFINITY","otherMin","otherMax","_skip","updateRangeFromParsed","getParsed","label","getLabelForValue","_clip","disabled","toClip","defaultClip","getMaxOverflow","chartArea","resolveDatasetElementOptions","resolveDataElementOptions","dataIndex","raw","createDataContext","createDatasetContext","_resolveElementOptions","dataElementType","elementType","sharing","datasetElementScopeKeys","resolveNamedOptions","freeze","transition","datasetAnimationScopeKeys","sharedOptions","_animationsDisabled","firstOpts","previouslySharedOptions","getSharedOptions","includeOptions","updateSharedOptions","_resolveAnimations","_setStyle","arg1","arg2","numMeta","numData","_insertElements","_removeElements","move","updateElements","removed","_dataChanges","_sync","newCount","computeMinSampleSize","curr","_cache","$bar","visibleMetas","getAllParsedValues","sort","getAllScaleValues","_length","updateMinAndPrev","ticks","getPixelForTick","parseValue","entry","startValue","endValue","barStart","barEnd","_custom","parseFloatBar","parseArrayOrPrimitive","isFloatBar","custom","setBorderSkipped","edge","borderSkipped","horizontal","borderProps","enableBorderRadius","parseEdge","orig","v2","startEnd","setInflateAmount","inflateAmount","BarController","iAxisKey","vAxisKey","bars","getBasePixel","isHorizontal","ruler","_getRuler","_getSharedOptions","vpixels","head","_calculateBarValuePixels","ipixels","_calculateBarIndexPixels","center","updateElement","grouped","skipNull","_getStacks","pixels","barThickness","_startPixel","_endPixel","stackCount","_getStackCount","categoryPercentage","barPercentage","baseValue","minBarLength","actualBase","floating","getDataVisibility","barSign","startPixel","getPixelForDecimal","endPixel","halfGrid","getLineWidthForValue","maxBarThickness","Infinity","percent","chunk","computeFlexCategoryTraits","thickness","computeFitCategoryTraits","stackIndex","_getStackIndex","rects","_index_","grid","_value_","beginAtZero","BubbleController","tooltip","title","DoughnutController","innerRadius","outerRadius","getter","circumference","isDatasetVisible","_getRotation","_getCircumference","arcs","spacing","getMaxBorderWidth","getMaxOffset","maxSize","cutout","chartWeight","_getRingWeight","_getRotationExtents","ratioX","ratioY","startAngle","endAngle","startX","startY","endX","endY","calcMax","calcMin","maxX","maxY","minX","minY","getRatioAndOffset","maxRadius","radiusLength","_getVisibleDatasetWeightTotal","total","calculateTotal","_getRingWeightOffset","animateRotate","calculateCircumference","animationOpts","centerX","centerY","animateScale","_circumference","metaData","borderAlign","hoverBorderWidth","hoverOffset","ringWeightOffset","legend","generateLabels","legendItem","toggleDataVisibility","tooltipItem","dataLabel","formattedValue","LineController","_dataset","_decimated","animated","maxGapLength","directUpdate","prevParsed","nullData","stop","border","lastPoint","updateControlPoints","PolarAreaController","bind","_updateRadius","minSize","cutoutPercentage","getVisibleDatasetCount","xCenter","yCenter","datasetStartAngle","getIndexAngle","defaultAngle","countVisibleElements","_computeAngle","getDistanceFromCenterForValue","angleLines","display","circular","pointLabels","PieController","RadarController","_fullLoop","pointPosition","getPointPositionForValue","Element","useFinalPosition","getProps","final","defaultRoutes","formatters","numeric","tickValue","notation","maxTick","calculateDelta","logDelta","numDecimal","minimumFractionDigits","maximumFractionDigits","logarithmic","Ticks","autoSkip","tickOpts","ticksLimit","maxTicksLimit","tickLength","_tickSize","maxScale","maxChart","_maxLength","determineMaxTicks","majorIndices","major","enabled","getMajorIndices","numMajorIndices","first","newTicks","skipMajors","evenMajorSpacing","diff","getEvenSpacing","factors","_factorize","calculateSpacing","avgMajorSpacing","majorStart","majorEnd","grace","drawBorder","drawOnChartArea","drawTicks","tickWidth","tickColor","padding","minRotation","maxRotation","mirror","textStrokeWidth","textStrokeColor","autoSkipPadding","labelOffset","minor","crossAlign","showLabelBackdrop","backdropColor","backdropPadding","route","offsetFromEdge","sample","numItems","increment","getPixelForGridLine","offsetGridLines","validIndex","lineValue","getTickMarkLength","getTitleHeight","titleAlign","position","reverseAlign","Scale","_margins","paddingTop","paddingBottom","paddingLeft","paddingRight","labelRotation","_range","_gridLineItems","_labelItems","_labelSizes","_longestTextCache","_reversePixels","_userMax","_userMin","_suggestedMax","_suggestedMin","_ticksLength","_borderValue","_dataLimitsCached","suggestedMin","suggestedMax","metas","getMinMax","xLabels","yLabels","beforeUpdate","sampleSize","beforeSetDimensions","setDimensions","afterSetDimensions","beforeDataLimits","determineDataLimits","afterDataLimits","minmax","change","keepZero","_addGrace","beforeBuildTicks","buildTicks","afterBuildTicks","samplingEnabled","_convertTicksToLabels","beforeCalculateLabelRotation","calculateLabelRotation","afterCalculateLabelRotation","afterAutoSkip","beforeFit","fit","afterFit","afterUpdate","reversePixels","_alignToPixels","alignToPixels","notifyPlugins","_callHooks","beforeTickToLabelConversion","afterTickToLabelConversion","maxLabelDiagonal","numTicks","_isVisible","labelSizes","_getLabelSizes","maxLabelWidth","widest","maxLabelHeight","highest","asin","titleOpts","gridOpts","titleHeight","tickPadding","angleRadians","labelHeight","labelWidth","_calculatePadding","_handleMargins","isRotated","labelsBelowTicks","offsetLeft","offsetRight","fullSize","generateTickLabels","_computeLabelSizes","tickFont","fontString","nestedLabel","caches","widths","heights","widestLabelSize","highestLabelSize","_resolveTickFontOptions","valueAt","idx","decimal","getBaseValue","createTickContext","optionTicks","rot","borderValue","alignedLineValue","tx1","ty1","tx2","ty2","x1","y1","x2","y2","ticksLength","tl","borderOpts","axisWidth","axisHalfWidth","alignBorderValue","positionAxisID","limit","optsAtIndex","lineColor","tickBorderDash","tickBorderDashOffset","lineCount","textOffset","tickAndPadding","hTickAndPadding","_getXAxisLabelAlignment","_getYAxisLabelAlignment","halfCount","tickTextAlign","backdrop","labelPadding","fillRect","findIndex","_computeGridLineItems","drawLine","setLineDash","lineDashOffset","lastLineWidth","_computeLabelArea","_computeLabelItems","titleX","titleY","titleArgs","drawBackground","drawGrid","drawTitle","drawLabels","tz","z","gz","getSortedVisibleDatasetMetas","axisID","fontSize","TypedRegistry","isPrototypeOf","parentScope","isIChartComponent","register","itemDefaults","routes","propertyParts","sourceName","sourceScope","routeDefaults","registerDefaults","registry","controllers","_typedRegistries","_each","_get","typedRegistry","reg","_getRegistryForType","isForType","_exec","itemReg","component","camelMethod","ScatterController","getElement","abstract","DateAdapter","chartOptions","timestamp","amount","unit","weekday","members","adapters","_date","binarySearch","metaset","lookupMethod","getRange","evaluateInteractionItems","handler","getIntersectItems","isPointInArea","inRange","getNearestCartesianItems","distanceMetric","useX","useY","deltaX","deltaY","getDistanceMetricForAxis","minDistance","getCenterPoint","getNearestItems","getNearestRadialItems","getAxisItems","rangeMethod","intersectsItem","Interaction","modes","nearest","STATIC_POSITIONS","filterByPosition","filterDynamicPositionByAxis","sortByWeight","setLayoutDims","layouts","params","layout","wrap","stackWeight","placed","buildStacks","vBoxMaxWidth","hBoxMaxHeight","availableWidth","availableHeight","getCombinedMax","maxPadding","updateMaxPadding","boxPadding","updateDims","getPadding","newWidth","outerWidth","newHeight","outerHeight","widthChanged","heightChanged","same","other","getMargins","marginForPositions","fitBoxes","boxes","refit","refitBoxes","setBoxDims","placeBoxes","userPadding","autoPadding","_layers","layoutItem","minPadding","layoutBoxes","wrapBoxes","centerHorizontal","centerVertical","leftAndTop","rightAndBottom","vertical","buildLayoutBoxes","verticalBoxes","horizontalBoxes","beforeLayout","visibleVerticalBoxCount","updatePos","handleMaxPadding","BasePlatform","BasicPlatform","EVENT_TYPES","touchstart","touchmove","touchend","pointerenter","pointerdown","pointermove","pointerup","pointerleave","pointerout","isNullOrEmpty","eventListenerOptions","passive","removeListener","nodeListContains","nodeList","contains","createAttachObserver","observer","MutationObserver","entries","trigger","addedNodes","removedNodes","observe","childList","subtree","createDetachObserver","drpListeningCharts","oldDevicePixelRatio","onWindowResize","dpr","createResizeObserver","ResizeObserver","contentRect","listenDevicePixelRatioChanges","releaseObserver","disconnect","unlistenDevicePixelRatioChanges","createProxyAndListen","native","fromNativeEvent","addListener","DomPlatform","renderHeight","getAttribute","renderWidth","displayWidth","displayHeight","initCanvas","removeAttribute","setAttribute","proxies","$proxies","attach","detach","isConnected","PluginService","_init","hook","_createDescriptors","plugin","cancelable","_oldCache","_notifyStateChanges","localIds","getPlugin","allPlugins","getOpts","pluginOpts","createDescriptors","previousDescriptors","some","pluginScopeKeys","getIndexAxis","datasetDefaults","determineAxis","scaleOptions","initOptions","chartDefaults","configScales","chartIndexAxis","firstIDs","scaleConf","defaultId","getDefaultScaleIDFromAxis","defaultScaleOptions","defaultID","getAxisFromDefaultScaleID","mergeScaleConfig","initData","keyCache","keysCached","cachedKeys","generate","addIfFound","Config","_config","initConfig","_scopeCache","_resolverCache","clearCache","clear","datasetType","additionalOptionScopes","mainScope","resetCache","keyLists","_cachedScopes","getResolver","subPrefixes","needContext","subResolver","resolverCache","hasFunction","KNOWN_POSITIONS","positionIsHorizontal","compare2Level","l1","l2","onAnimationsComplete","onComplete","onAnimationProgress","onProgress","getCanvas","getElementById","instances","getChart","moveNumericKeys","intKey","Chart","userConfig","initialCanvas","existingChart","chartOptionScopes","OffscreenCanvas","_detectPlatform","updateConfig","acquireContext","_options","_aspectRatio","_metasets","_lastEvent","_listeners","_responsiveListeners","_sortedMetasets","_plugins","_hiddenIndices","attached","_doResize","timeout","clearTimeout","setTimeout","debounce","resizeDelay","listen","_initialize","bindEvents","_resizeBeforeDraw","_resize","newSize","newRatio","onResize","render","axisOptions","scaleOpts","updated","isRadial","dposition","dtype","scaleType","getScale","hasUpdated","_destroyDatasetMeta","newControllers","_removeUnreferencedMetasets","order","updateIndex","ControllerClass","getController","_updateMetasets","_resetElements","animsDisabled","_updateScales","_checkEventBindings","_updateHiddenIndices","invalidate","buildOrUpdateControllers","buildOrUpdateElements","_minPadding","_updateLayout","_updateDatasets","_eventHandler","_updateHoverStyles","ensureScalesHaveIDs","buildOrUpdateScales","existingEvents","newEvents","unbindEvents","changes","_getUniformDataChanges","datasetCount","makeSet","changeSet","noArea","_idx","_updateDataset","layers","_drawDatasets","_drawDataset","useClip","setDatasetVisibility","_updateVisibility","_destroy","remove","_stop","releaseContext","toDataURL","bindUserEvents","bindResponsiveEvents","_add","detached","_remove","isAttached","activeElements","lastActive","notify","replay","hoverOptions","deactivated","activated","updateHoverStyle","inChartArea","eventFilter","_handleEvent","_getActiveElements","isClick","_isClickEvent","lastEvent","determineLastEvent","getElementsAtEventForMode","invalidatePlugins","clipArc","pixelMargin","angleMargin","parseBorderRadius$1","angleDelta","borderRadius","halfThickness","innerLimit","computeOuterLimit","outerArcLimit","outerStart","outerEnd","innerStart","innerEnd","rThetaToXY","theta","pathArc","innerR","spacingOffset","avNogSpacingRadius","angleOffset","outerStartAdjustedRadius","outerEndAdjustedRadius","outerStartAdjustedAngle","outerEndAdjustedAngle","innerStartAdjustedRadius","innerEndAdjustedRadius","innerStartAdjustedAngle","innerEndAdjustedAngle","pCenter","p4","p8","outerStartX","outerStartY","outerEndX","outerEndY","inner","lineJoin","fullCircles","drawFullCircleBorders","version","unregister","ArcElement","chartX","chartY","rAdjust","betweenAngles","withinRadius","halfAngle","halfRadius","radiusOffset","drawArc","setStyle","lineCap","pathVars","paramsStart","paramsEnd","segmentStart","segmentEnd","outside","pathSegment","lineMethod","stepped","getLineMethod","fastPathSegment","prevX","lastY","avgX","countX","pointIndex","drawX","truncX","_getSegmentMethod","usePath2D","Path2D","path","_path","strokePathWithCache","segmentMethod","strokePathDirect","LineElement","_points","_segments","_pointsUpdated","_interpolate","_getInterpolationMethod","interpolated","findStartAndEnd","solidSegments","_computeSegments","inRange$1","hitRadius","PointElement","mouseX","mouseY","hoverRadius","getBarBounds","bar","half","skipOrLimit","boundingRects","maxW","maxH","parseBorderWidth","maxR","enableBorder","parseBorderRadius","outer","skipX","skipY","addNormalRectPath","inflateRect","refRect","BarElement","addRectPath","getBoxSize","labelOpts","boxHeight","boxWidth","usePointStyle","pointStyleWidth","itemHeight","Legend","_added","legendHitBoxes","_hoveredItem","doughnutMode","legendItems","columnSizes","lineWidths","buildLabels","labelFont","_computeTitleHeight","_fitRows","_fitCols","hitboxes","totalHeight","row","heightLimit","totalWidth","currentColWidth","currentColHeight","col","rtlHelper","hitbox","_draw","cursor","defaultColor","fontColor","halfFontSize","textDirection","lineDash","drawOptions","SQRT2","yBoxTop","xBoxLeft","drawLegendBox","_textX","titleFont","titlePadding","topPaddingPlusHalfFontSize","hitBox","lh","onLeave","isListened","hoveredItem","_getLegendItemAt","sameItem","plugin_legend","_element","_args","adjustHitBoxes","afterEvent","handleEvent","ci","Title","_padding","textSize","fontOpts","_drawArgs","plugin_title","titleBlock","createTitle","positioners","WeakMap","average","hasValue","tooltipPosition","eventPosition","nearestElement","tp","pushOrConcat","toPush","splitNewlines","createTooltipItem","getLabelAndValue","getTooltipSize","body","footer","bodyFont","footerFont","titleLineCount","footerLineCount","bodyLineItemCount","combinedBodyLength","bodyItem","before","after","beforeBody","afterBody","titleSpacing","titleMarginBottom","displayColors","bodySpacing","footerMarginTop","footerSpacing","widthPadding","maxLineWidth","determineXAlign","yAlign","chartWidth","xAlign","caret","caretSize","caretPadding","doesNotFitWithAlign","determineAlignment","determineYAlign","getBackgroundPoint","alignment","paddingAndSize","alignX","alignY","getAlignedX","getBeforeAfterBodyLines","overrideCallbacks","Tooltip","opacity","_eventPosition","_size","_cachedAnimations","_tooltipItems","dataPoints","caretX","caretY","labelColors","labelPointStyles","labelTextColors","tooltipItems","beforeTitle","afterTitle","bodyItems","scoped","beforeLabel","afterLabel","beforeFooter","afterFooter","itemSort","labelColor","labelPointStyle","labelTextColor","_createItems","getTitle","getBeforeBody","getBody","getAfterBody","getFooter","positionAndSize","backgroundPoint","external","tooltipPoint","caretPosition","getCaretPosition","x3","y3","ptX","ptY","titleColor","colorX","rtlColorX","yOffSet","colorY","multiKeyBackground","outerX","innerX","strokeRect","textColor","bodyAlign","bodyLineHeight","xLinePadding","fillLineOfText","bodyAlignForCalculation","bodyColor","_drawColorBox","footerAlign","footerColor","tooltipSize","drawCaret","quadraticCurveTo","animX","animY","_updateAnimationTarget","hasTooltipContent","globalAlpha","drawBody","drawFooter","positionChanged","_positionChanged","_ignoreReplayEvents","plugin_tooltip","afterInit","afterDraw","_willRender","labelCount","findOrAddLabel","addedLabels","unshift","addIfString","lastIndexOf","CategoryScale","_startValue","_valueRange","_addedLabels","added","getDecimalForPixel","generateTicks$1","generationOptions","dataRange","niceMin","niceMax","numSpaces","precision","maxTicks","maxDigits","includeBounds","maxSpaces","rmin","rmax","countDefined","minSpacing","rounded","almostWhole","decimalPlaces","relativeLabelSize","LinearScaleBase","_endValue","setMin","setMax","minSign","maxSign","MAX_SAFE_INTEGER","MIN_SAFE_INTEGER","stepSize","computeTickLimit","getTickLimit","_maxDigits","LinearScale","handleTickRangeOptions","isMajor","tickVal","LogarithmicScale","_zero","exp","endExp","endSignificand","significand","lastTick","generateTicks","getTickBackdropHeight","determineLimits","fitWithPointLabels","limits","valueCount","_pointLabels","pointLabelOpts","additionalAngle","centerPointLabels","getPointLabelContext","getPointPosition","drawingArea","plFont","updateLimits","setCenterPoint","_pointLabelItems","extra","outerDistance","pointLabelPosition","yForAngle","getTextAlignForAngle","leftForTextAlign","buildPointLabelItems","hLimits","vLimits","pathRadiusLine","RadialLinearScale","leftMovement","rightMovement","topMovement","bottomMovement","scalingFactor","scaledDistance","pointLabel","createPointLabelContext","distanceFromCenter","backdropLeft","backdropTop","backdropWidth","backdropHeight","drawPointLabels","gridLineOpts","drawRadiusLine","animate","INTERVALS","millisecond","common","steps","second","minute","hour","day","week","month","quarter","year","UNITS","sorter","adapter","_adapter","_parseOpts","parser","isoWeekday","startOf","determineUnitForAutoTicks","minUnit","capacity","interval","addTick","time","timestamps","ticksFromTimestamps","majorUnit","setMajorTicks","TimeScale","_unit","_majorUnit","_offsets","_normalized","displayFormats","formats","normalized","_applyBounds","_getLabelBounds","endOf","getLabelTimestamps","timeOpts","_generate","_filterBetween","_getLabelCapacity","determineUnitForFormatting","determineMajorUnit","initOffsets","offsetAfterAutoskip","getDecimalForValue","hasWeekday","getDataTimestamps","tooltipFormat","datetime","minorFormat","majorFormat","_tickFormatFunction","offsets","ticksOpts","tickLabelWidth","cosRotation","sinRotation","tickFontSize","exampleTime","exampleLabel","_getLabelSize","prevSource","nextSource","prevTarget","nextTarget","span","TimeSeriesScale","_table","_minPos","_tableRange","_getTimestampsForTable","buildLookupTable","_extends","undef","Cipher","Base64","EvpKDF","createEncryptor","_ENC_XFORM_MODE","createDecryptor","_DEC_XFORM_MODE","xformMode","_xformMode","_key","process","dataUpdate","keySize","ivSize","selectCipherStrategy","PasswordBasedCipher","SerializableCipher","cipher","encrypt","decrypt","ciphertext","C_mode","StreamCipher","BlockCipherMode","iv","Encryptor","Decryptor","_cipher","_iv","CBC","xorBlock","block","_prevBlock","processBlock","encryptBlock","thisBlock","decryptBlock","Pkcs7","pad","blockSizeBytes","nPaddingBytes","paddingWord","paddingWords","unpad","CipherParams","BlockCipher","modeCreator","_mode","__creator","finalProcessedBlocks","cipherParams","OpenSSLFormatter","OpenSSL","salt","openSSLStr","ciphertextWords","encryptor","cipherCfg","algorithm","_parse","OpenSSLKdf","kdf","execute","password","compute","derivedParams","__webpack_require__","definition","hasLS","NOOP","supportsLS","localStorage","flush","APX","obfus","ttl","encrypter","decrypter","secret","force","getItem","removeItem","localConfig","_conf","hasTTL","setItem","invariant","condition","_inheritsLoose","isAbsolute","pathname","spliceOne","list","resolvePathname","hasTrailingSlash","toParts","fromParts","isToAbs","isFromAbs","mustEndAbs","up","valueOf","valueEqual","every","aValue","bValue","addLeadingSlash","stripLeadingSlash","stripBasename","hasBasename","stripTrailingSlash","createPath","location","search","hash","createLocation","state","currentLocation","hashIndex","searchIndex","parsePath","decodeURI","URIError","locationsAreEqual","createTransitionManager","prompt","setPrompt","nextPrompt","confirmTransitionTo","action","getUserConfirmation","appendListener","isActive","notifyListeners","_len","canUseDOM","createElement","getConfirmation","confirm","getHistoryState","history","createBrowserHistory","globalHistory","canUseHistory","ua","navigator","userAgent","supportsHistory","needsHashChangeListener","_props","_props$forceRefresh","forceRefresh","_props$getUserConfirm","_props$keyLength","keyLength","basename","getDOMLocation","historyState","_ref","_window$location","createKey","transitionManager","setState","nextState","handlePopState","isExtraneousPopstateEvent","handlePop","handleHashChange","forceNextPop","fromLocation","toLocation","toIndex","fromIndex","go","revertPop","initialLocation","createHref","listenerCount","checkDOMListeners","isBlocked","href","pushState","prevIndex","nextKeys","replaceState","goBack","goForward","unblock","unlisten","HashPathCoders","hashbang","encodePath","decodePath","noslash","slash","stripHash","url","getHashPath","substring","replaceHashPath","createHashHistory","_props$hashType","hashType","_HashPathCoders$hashT","ignorePath","encodedPath","prevLocation","allPaths","baseTag","querySelector","pushHashPath","nextPaths","lowerBound","upperBound","createMemoryHistory","_props$initialEntries","initialEntries","_props$initialIndex","initialIndex","nextIndex","nextEntries","canGo","enumerableOnly","getOwnPropertySymbols","symbols","sym","_objectSpread2","getOwnPropertyDescriptors","createEventEmitter","handlers","on","off","newValue","changedBits","React","calculateChangedBits","_Provider$childContex","_Consumer$contextType","contextProp","gud","Provider","_Component","_this","emitter","_proto","getChildContext","componentWillReceiveProps","nextProps","oldValue","children","Component","childContextTypes","PropTypes","isRequired","Consumer","_Component2","_this2","getValue","onUpdate","observedBits","_proto2","componentDidMount","componentWillUnmount","contextTypes","createNamedContext","Router","computeRootMatch","isExact","_pendingLocation","RouterContext","staticContext","cacheCount","matchPath","exact","strict","sensitive","matched","pathCache","regexp","pathToRegexp","compilePath","memo","Route","createURL","staticHandler","methodName","_objectWithoutPropertiesLoose","excluded","sourceKeys","monadic","serializer","computedValue","variadic","assemble","strategy","serialize","strategyDefault","serializerDefault","ObjectWithoutPrototypeCache","cacheDefault","strategies","MD5","iterations","derivedKey","derivedKeyWords","_map","base64Chars","triplet","paddingChar","base64Str","base64StrLength","reverseMap","_reverseMap","paddingIndex","bits1","bits2","parseLoop","_hash","offset_i","M_offset_i","M_offset_0","M_offset_1","M_offset_2","M_offset_3","M_offset_4","M_offset_5","M_offset_6","M_offset_7","M_offset_8","M_offset_9","M_offset_10","M_offset_11","M_offset_12","M_offset_13","M_offset_14","M_offset_15","FF","GG","HH","II","nBitsTotal","nBitsLeft","nBitsTotalH","nBitsTotalL","H_i","HmacMD5","checkDCE","__REACT_DEVTOOLS_GLOBAL_HOOK__","_setPrototypeOf","_unsupportedIterableToArray","minLen","test","_arrayLikeToArray","arr2","X32WordArray","C_x64","x64","Word","high","low","toX32","x64Words","x64WordsLength","x32Words","x64Word","wordsLength","dontSetMe","propName","componentName","findInArray","int","func","isNum","_isNativeReflectConstruct","sham","__extends","extendStatics","__","__assign","Resizer","_super","onMouseDown","onResizeStart","onTouchStart","className","userSelect","replaceStyles","DEFAULT_SIZE","memoize","snap","hasDirection","isTouchEvent","Boolean","findClosestSnap","snapArray","snapGap","closestGapIndex","gap","searchStr","getStringSize","getPixelSize","parentSize","innerWidth","innerHeight","calculateNewMax","minWidth","minHeight","definedProps","Resizable","resizable","parentLeft","parentTop","resizableLeft","resizableRight","resizableTop","resizableBottom","targetLeft","targetTop","appendBase","transform","flex","classList","appendChild","removeBase","removeChild","ref","isResizing","propsSize","backgroundStyle","zIndex","flexBasis","onMouseMove","onMouseUp","ownerDocument","defaultView","defaultSize","orgWidth","offsetWidth","orgHeight","offsetHeight","orgPosition","getSize","getParentSize","wrapChanged","flexWrap","capture","computedStyle","createSizeForCssProperty","kind","calculateNewMaxFromBoundary","boundWidth","boundHeight","boundsByDirection","widthByDirection","heightByDirection","parent_1","calculateNewSizeFromDirection","resizeRatio","_a","_b","lockAspectRatio","lockAspectRatioExtraHeight","lockAspectRatioExtraWidth","extraHeight","extraWidth","calculateNewSizeFromAspectRatio","computedMinWidth","computedMaxWidth","computedMinHeight","computedMaxHeight","extraMinWidth","extraMaxWidth","extraMinHeight","extraMaxHeight","lockedMinWidth","lockedMaxWidth","lockedMinHeight","lockedMaxHeight","setBoundingClientRect","parent_2","parentRect","targetRect","top_1","nativeEvent","isMouseEvent","parent_3","flexDirection","flexDir","TouchEvent","preventDefault","stopPropagation","_c","boundaryMax","newGridWidth","newGridHeight","newState","onResizeStop","updateSize","renderResizer","enable","handleStyles","handleClasses","handleWrapperStyle","handleWrapperClass","handleComponent","resizers","extendsProps","sizeStyle","flexShrink","Wrapper","as","defaultProps","Draggable","DraggableRoot","resizableStyle","Rnd","resizingPosition","offsetFromParent","resizableElement","originalPosition","refDraggable","draggable","refResizable","resizing","onDragStart","onDrag","onDragStop","getMaxSizesFromProps","updateOffsetFromParent","getDraggablePosition","forceUpdate","getParent","getSelfElement","getOffsetHeight","boundary","getOffsetWidth","parentRect_1","parentLeft_1","parentTop_1","bodyRect","left_1","offsetTop","parentRect_2","parentLeft_2","parentTop_2","left_2","top_2","HTMLElement","boundaryRect","boundaryLeft","boundaryTop","dragAxis","elementRef","self_1","selfRect","selfLeft","selfTop","hasLeft","hasRight","hasTop","hasBottom","newPos","updatePosition","scrollLeft","scrollTop","disableDragging","dragHandleClassName","dragGrid","enableUserSelectHack","resizeHandleStyles","resizeHandleClasses","resizeHandleComponent","enableResizing","resizeGrid","resizeHandleWrapperClass","resizeHandleWrapperStyle","allowAnyClick","resizableProps","propertyIsEnumerable","__rest","default","draggablePosition","cursorStyle","innerStyle","flag","dragAxisOrUndefined","handle","defaultPosition","onStart","onStop","nodeRef","PureComponent","_typeof","_possibleConstructorReturn","assertThisInitialized","_objectWithoutProperties","sourceSymbolKeys","reforwardRef","setLabels","currentData","nextLabels","setDatasets","nextDatasets","datasetIdKey","addedDatasets","nextDataset","currentDataset","find","cloneData","nextData","ChartComponent","redraw","fallbackContent","updateMode","canvasRef","useRef","chartRef","renderChart","ChartJS","destroyChart","destroy","useEffect","nextOptions","setOptions","role","forwardRef","createTypedChart","registerables","Line","Bar","Pie","SHA1","HmacSHA1","_hasher","hasherBlockSize","hasherBlockSizeBytes","oKey","_oKey","iKey","_iKey","oKeyWords","iKeyWords","innerHash","addClassName","addEvent","inputOptions","_objectSpread","attachEvent","addUserSelectStyles","doc","styleEl","innerHTML","getElementsByTagName","createCSSTransform","controlPos","positionOffset","getTranslation","_getPrefix","browserPrefixToKey","createSVGTransform","getTouch","identifier","targetTouches","_shims","changedTouches","getTouchIdentifier","matchesSelector","matchesSelectorAndParentsTo","selector","baseNode","offsetXYFromParent","offsetParent","offsetParentRect","borderTopWidth","borderBottomWidth","borderLeftWidth","borderRightWidth","removeClassName","removeEvent","detachEvent","removeUserSelectStyles","selection","empty","getSelection","removeAllRanges","nodeInterop","__esModule","_getRequireWildcardCache","newObj","hasPropertyDescriptor","_interopRequireWildcard","cacheBabelInterop","cacheNodeInterop","matchesSelectorFunc","_ref2","unitSuffix","defaultX","defaultY","isarray","compile","tokensToFunction","tokensToRegExp","PATH_REGEXP","tokens","defaultDelimiter","delimiter","escaped","group","modifier","asterisk","partial","repeat","optional","pattern","escapeGroup","escapeString","encodeURIComponentPretty","encodeURI","flags","encode","pretty","token","attachKeys","re","endsWithDelimiter","groups","regexpToRegexp","arrayToRegexp","stringToRegexp","Parent","Class","isNativeReflectConstruct","Function","global","HTMLImageElement","versions","Buffer","BigInt","import","fetch","headers","URL","port","hostname","u","protocol","request","statusCode","catch","status","arrayBuffer","trim","ifd0","exif","makerNote","userComment","gps","interop","ifd1","jfif","xmp","iptc","icc","TextDecoder","decode","le","Uint8Array","byteOffset","byteLength","ArrayBuffer","DataView","_swapDataView","buffer","dataView","toUint8","_lengthToEnd","getUint8Array","getUint16","getInt8","getUint8","getInt16","getInt32","getUint32","getFloat32","getFloat64","getUint64","src","Blob","FileReader","onloadend","onerror","readAsArrayBuffer","allValues","_","translateKeys","translateValues","reviveValues","applyInheritables","canBeFiltered","dict","translateTagSet","pick","deps","tagKeys","tagValues","ee","$","tiff","ihdr","multiSegment","sanitize","mergeOutput","silentErrors","chunked","firstChunkSize","firstChunkSizeNode","firstChunkSizeBrowser","chunkSize","chunkLimit","q","setupFromTrue","setupFromUndefined","setupFromArray","setupFromObject","filterNestedSegmentTags","traverseTiffDependencyTree","checkLoadedPlugins","setupGlobalFilters","image","thumbnail","batchEnableWithBool","batchEnableWithUserValue","needed","finalizeFilters","te","errors","useCached","file","fileParser","canHandle","parsers","close","output","setup","executeParsers","pushToErrors","assignToOutput","jpeg","getOrFindSegment","ensureSegmentChunk","extractThumbnail","ie","ne","Exifr","fileParsers","segmentParsers","fileReaders","tagRevivers","createDictionary","extendDictionary","fetchUrlAsArrayBuffer","readBlobAsArrayBuffer","chunkedProps","otherSegments","tiffBlocks","segmentsAndBlocks","tiffExtractables","inheritables","allFormatters","Options","se","available","subarray","readChunk","extendOptions","createParser","append","normalizeInput","globalOptions","localOptions","canTranslate","headerLength","translated","translateBlock","translateValue","DEFAULT","assignObjectToOutput","fromEntries","ae","oe","he","findAppSegments","readSegments","appSegments","mergeMultiSegments","createParsers","mergedAppSegments","findAll","wanted","keyList","unfinishedMultiSegment","setupSegmentFinderArgs","readWhole","findAppSegmentsInRange","onlyTiff","canReadNextChunk","nextChunkOffset","readNextChunk","findPosition","chunkNumber","chunkCount","recordUnknownSegments","marker","unknownSegments","stopAfterSos","recordJpegSegments","jpegSegments","handleMultiSegments","ue","fe","parseHeader","parseIfd0Block","safeParse","createOutput","handleError","ifd0Offset","ifd1Offset","findIfd0Offset","parseTags","ensureChunk","parseBlock","exifOffset","interopOffset","gpsOffset","de","parseExifBlock","ifd1Parsed","findIfd1Offset","headerParsed","parseThumbnailBlock","parseTag","getString","parseTagValue","Uint16Array","Uint32Array","Int8Array","Int16Array","Int32Array","Float32Array","Float64Array","getFloat","getDouble","pe","ge","me","Se","latitude","longitude","Ce","ye","be","createObjectURL","Ie","Pe","ke","dimensionSwapped","scaleX","scaleY","we","Te","Ae","css","De","Oe","ranges","_extend","allocUnsafe","uintView","_tryExtend","xe","ve","fullyRead","chunksRead","safeWrapAddress","_readChunk","readChunked","_swapArrayBuffer","Me","gpsOnlyOptions","thumbnailOnlyOptions","thumbnailUrl","orientationOnlyOptions","orientation","rotations","_swapBuffer","httpHeaders","Le","parseBoxHead","parseBoxFullHead","parseSubBoxes","findIcc","findExif","findBox","registerSegment","findExifLocIdInIinf","findExtentInIloc","getUintBytes","get8bits","parseBoxes","Ue","Fe","Ee","255","10","11","12","13","14","15","17","18","19","20","21","22","23","24","16","25","29","31","32","65","69","71","73","77","79","89","93","95","Be","Ne","Ge","Ve","ze","setHours","setMinutes","setSeconds","He","je","fromCodePoint","We","Ze","et","Je","ns","extended","Ke","qe","unpackMatch","attrString","innerXml","attrs","isPrimitive","isListContainer","isList","$e","Ye","isListItem","tt","at","fs","readFile","open","fh","stat","atob","ot","adaptTiffPropAsSegment","injectSegment","lt","ht","ut","findPngChunksInRange","metaChunks","findIhdr","parseTextChunks","catchError","findXmp","unknownChunks","injectKeyValToIhdr","inflateSync","ct","ft","dt","gt","parseDesc","parseMluc","parseText","parseSig","getUnicodeString","lang","country","mt","UTC","36","40","48","52","64","80","St","AAMA","ACER","ACLT","ACTI","ADAR","ADBE","ADI","AGFA","ALMD","ALPS","ALWN","AMTI","AOC","APAG","APPL","AST","BAEL","BRCO","BRKP","BROT","BULL","BUS","CAMR","CANO","CARR","CASI","CBUS","CEL","CELx","CGS","CHM","CIGL","CITI","CL00","CLIQ","CMCO","CMiX","COLO","COMP","COMp","CONR","CORD","CPQ","CPRO","CRN","CTX","CVIS","CWC","DARI","DATA","DCP","DCRC","DELL","DIC","DICO","DIGI","DPLG","DS","DSOL","DUPN","EPSO","ESKO","ETRI","EVER","EXAC","Eizo","FALC","FFEI","FNRD","FORA","FORE","FP","FPA","FUJI","FX","GCC","GGSL","GMB","GMG","GOLD","GOOG","GPRT","GTMB","GVC","GW2K","HCI","HDM","HERM","HITA","HP","HTC","HiTi","IBM","IDNT","IEC","IIYA","IKEG","IMAG","IMI","INTC","INTL","INTR","IOCO","IPS","IRIS","ISL","ITNL","IVM","IWAT","Idnt","Inca","Iris","JPEG","JSFT","JVC","KART","KFC","KLH","KMHD","KNCA","KODA","KYOC","Kart","LCAG","LCCD","LDAK","LEAD","LEXM","LINK","LINO","LITE","Leaf","Lino","MAGC","MAGI","MANN","MICN","MICR","MICV","MINO","MITS","MITs","MNLT","MODG","MONI","MONS","MORS","MOTI","MSFT","MUTO","Mits","NANA","NEC","NEXP","NISS","NKON","NONE","OCE","OCEC","OKI","OKID","OKIP","OLIV","OLYM","ONYX","OPTI","PACK","PANA","PANT","PBN","PFU","PHIL","PNTX","POne","PREM","PRIN","PRIP","QLUX","QMS","QPCD","QUAD","QUME","RADI","RDDx","RDG","REDM","RELI","RGMS","RICO","RNLD","ROYA","RPC","RTL","SAMP","SAMS","SANT","SCIT","SCRN","SDP","SEC","SEIK","SEIk","SGUY","SHAR","SICC","SONY","SPCL","STAR","STC","Scit","Sdp","Sony","TALO","TAND","TATU","TAXA","TDS","TECO","TEGR","TEKT","TI","TMKR","TOSB","TOSH","TOTK","TRIU","TSBT","TTX","TVM","TW","ULSX","UNIS","UTZF","VARI","VIEW","VISL","VIVO","WANG","WLBR","WTG2","WYSE","XERX","XRIT","ZRAN","Zebr","appl","bICC","berg","ceyd","clsp","ds","dupn","ffei","flux","iris","kart","lcms","lino","none","ob4d","obic","quby","scit","scrn","sdp","siwi","yxym","Ct","scnr","mntr","prtr","link","abst","spac","nmcl","cenc","mlnk","mvis","nkpf","amd","crt","kpcd","pmd","dcam","dcpj","dmpc","dsub","epho","esta","fprn","fscn","grav","ijet","imgs","mpfr","mpfs","offs","pjtv","rpho","rscn","silk","twax","vidc","vidm","yt","getLatin1String","pluralizeValue","containsIptc8bim","isIptcSegmentHead","propIsEnumerable","toObject","test1","test2","test3","letter","shouldUseNative","isPrime","sqrtN","getFractionalBits","nPrime","SHA256","gamma0x","gamma0","gamma1x","gamma1","maj","sigma0","t1","HmacSHA256","X64Word","X64WordArray","X64Word_create","SHA512","H0","H1","H2","H3","H4","H5","H6","H7","H0h","H0l","H1h","H1l","H2h","H2l","H3h","H3l","H4h","H4l","H5h","H5l","H6h","H6l","H7h","H7l","ah","al","bh","bl","ch","cl","dh","dl","eh","fl","gh","gl","hh","hl","Wi","Wih","Wil","gamma0xh","gamma0xl","gamma0h","gamma0l","gamma1xh","gamma1xl","gamma1h","gamma1l","Wi7","Wi7h","Wi7l","Wi16","Wi16h","Wi16l","t1l","chh","chl","majh","majl","sigma0h","sigma0l","sigma1h","sigma1l","Ki","Kih","Kil","t1h","t2l","HmacSHA512","clsx","canDragX","canDragY","createCoreData","isStart","lastX","findDOMNode","createDraggableData","coreData","getBoundPosition","cloneBounds","boundNode","ownerWindow","boundNodeEl","nodeStyle","boundNodeStyle","marginLeft","marginTop","_domFns","marginRight","marginBottom","getControlPosition","touchIdentifier","draggableCore","touchObj","snapToGrid","pendingX","pendingY","_require","DraggableCore","hasOwn","classNames","classes","argType","reactIs","REACT_STATICS","contextType","displayName","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","mixins","propTypes","KNOWN_STATICS","caller","callee","arity","MEMO_STATICS","TYPE_STATICS","getStatics","isMemo","ForwardRef","Memo","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","BrowserRouter","createHistory","resolveToLocation","normalizeToLocation","forwardRefShim","LinkAnchor","innerRef","navigate","ex","isModifiedEvent","forwardedRef","Link","ariaCurrent","activeClassName","activeStyle","classNameProp","isActiveProp","locationProp","styleProp","escapedPath","classnames","joinClassnames","for","isMounted","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","refs","updater","isReactComponent","isPureReactComponent","__self","__source","$$typeof","_owner","keyPrefix","aa","ba","ReactCurrentDispatcher","ReactCurrentBatchConfig","suspense","ReactCurrentOwner","IsSomeRendererActing","Children","toArray","only","Fragment","Profiler","StrictMode","Suspense","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","cloneElement","_calculateChangedBits","_currentValue","_currentValue2","_threadCount","createFactory","createRef","isValidElement","lazy","_ctor","_status","_result","useCallback","useContext","useDebugValue","useImperativeHandle","useLayoutEffect","useMemo","useReducer","useState","ca","da","ea","extractEvents","eventTypes","phasedRegistrationNames","ha","registrationName","ia","ja","dependencies","ka","onError","la","ma","na","oa","pa","qa","sa","va","wa","currentTarget","ra","xa","ya","za","Aa","_dispatchListeners","_dispatchInstances","isPropagationStopped","isPersistent","release","Ba","Ca","injectEventPluginOrder","injectEventPluginsByName","Da","stateNode","Ea","Fa","Ga","Ha","Ia","Ja","Ka","La","Ma","Na","Oa","Pa","Qa","Ra","Sa","Ta","Ua","Wa","Xa","tag","_debugOwner","_debugSource","fileName","lineNumber","return","Ya","Za","$a","ab","bb","db","eb","gb","hb","ib","jb","kb","lb","mb","nb","ob","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","sanitizeURL","sb","tb","ub","vb","qb","rb","pb","setAttributeNS","wb","nodeName","yb","_valueTracker","setValue","stopTracking","xb","zb","checked","Ab","defaultChecked","_wrapperState","initialChecked","Bb","initialValue","controlled","Cb","Eb","Fb","Gb","activeElement","Ib","Hb","Jb","selected","defaultSelected","Kb","dangerouslySetInnerHTML","Lb","Mb","Nb","textContent","xlinkHref","Ob","Pb","Qb","Rb","Sb","MSApp","execUnsafeLocalFunction","namespaceURI","firstChild","Tb","lastChild","nodeType","nodeValue","Ub","Vb","animationend","animationiteration","animationstart","transitionend","Wb","Xb","Yb","Zb","$b","ac","bc","cc","ec","alternate","effectTag","fc","memoizedState","dehydrated","ic","child","sibling","hc","jc","kc","lc","mc","nc","oc","pc","qc","rc","sc","tc","uc","vc","zc","blockedOn","topLevelType","eventSystemFlags","Ac","pointerId","Bc","Cc","Ec","Fc","unstable_runWithPriority","priority","hydrate","containerInfo","Gc","Hc","Ic","Jc","Kc","unstable_scheduleCallback","unstable_NormalPriority","Lc","Mc","srcElement","correspondingUseElement","Nc","Oc","dispatchConfig","Pc","_targetInst","Qc","Rc","Sc","Tc","Uc","Interface","isDefaultPrevented","defaultPrevented","returnValue","Wc","eventPool","Xc","destructor","Vc","getPooled","cancelBubble","persist","eventPhase","bubbles","timeStamp","isTrusted","Yc","animationName","elapsedTime","pseudoElement","Zc","clipboardData","$c","view","detail","ad","relatedTarget","bd","keyCode","charCode","cd","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","dd","27","33","34","35","37","38","39","45","46","112","113","114","115","116","117","118","119","120","121","122","123","144","145","224","ed","Alt","Control","Meta","Shift","gd","getModifierState","hd","ctrlKey","shiftKey","altKey","metaKey","which","jd","kd","ld","md","nd","screenX","screenY","pageX","pageY","button","buttons","fromElement","toElement","movementX","movementY","od","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","pd","dataTransfer","qd","rd","sd","wheelDeltaX","wheelDeltaY","wheelDelta","deltaZ","deltaMode","td","ud","vd","wd","yd","zd","Ad","Bd","Cd","Dd","bubbled","captured","eventPriority","Ed","getEventPriority","Fd","unstable_UserBlockingPriority","Gd","Hd","Jd","Kd","targetInst","ancestors","Ld","Md","Nd","Od","Pd","Qd","Dc","Rd","Sd","xc","yc","Td","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flexGrow","flexPositive","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","fontWeight","lineClamp","orphans","tabSize","widows","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","Ud","Vd","Wd","Xd","menuitem","br","embed","hr","img","keygen","param","track","wbr","Zd","is","$d","ce","nextSibling","HTMLIFrameElement","contentWindow","contentEditable","autoFocus","__html","previousSibling","documentMode","beforeInput","compositionEnd","compositionStart","compositionUpdate","char","Re","email","tel","af","bf","cf","df","ef","ff","gf","hf","lf","jf","_isInputEventSupported","kf","mouseEnter","mouseLeave","pointerEnter","pointerLeave","mf","parentWindow","of","pf","qf","rf","sf","select","tf","uf","vf","wf","xf","selectionStart","selectionEnd","anchorNode","anchorOffset","focusNode","focusOffset","yf","onSelect","SimpleEventPlugin","EnterLeaveEventPlugin","ChangeEventPlugin","SelectEventPlugin","BeforeInputEventPlugin","Af","Bf","Cf","Df","Ef","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Ff","Gf","Hf","If","Jf","__reactInternalMemoizedMergedChildContext","Kf","Lf","Mf","Nf","unstable_cancelCallback","Of","unstable_shouldYield","Pf","unstable_requestPaint","Qf","unstable_now","Rf","unstable_getCurrentPriorityLevel","Sf","unstable_ImmediatePriority","Tf","Uf","Vf","unstable_LowPriority","Wf","unstable_IdlePriority","Xf","Yf","Zf","$f","ag","bg","cg","dg","eg","fg","gg","hg","ig","jg","kg","lg","mg","ng","og","pg","qg","rg","sg","tg","ug","childExpirationTime","vg","firstContext","expirationTime","wg","xg","responders","yg","zg","baseState","firstUpdate","lastUpdate","firstCapturedUpdate","lastCapturedUpdate","firstEffect","lastEffect","firstCapturedEffect","lastCapturedEffect","Ag","Bg","suspenseConfig","payload","nextEffect","Cg","Dg","updateQueue","Eg","Fg","Gg","Hg","Ig","Jg","Kg","Lg","Mg","Ng","Og","Sg","_reactInternalFiber","Pg","Qg","Rg","Tg","shouldComponentUpdate","Ug","Vg","UNSAFE_componentWillReceiveProps","Wg","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","Xg","Yg","_stringRef","Zg","$g","implementation","ta","ih","jh","kh","mh","documentElement","tagName","nh","oh","ph","qh","memoizedProps","revealOrder","rh","responder","sh","th","uh","vh","wh","xh","yh","zh","Ah","Bh","Ch","Gh","Hh","Ih","Jh","Kh","Lh","Mh","Nh","queue","baseUpdate","Oh","Ph","Qh","lastRenderedReducer","dispatch","lastRenderedState","eagerReducer","eagerState","Rh","Sh","Th","Uh","Vh","Wh","Xh","Yh","Zh","$h","ai","bi","readContext","useResponder","useDeferredValue","useTransition","unstable_next","di","ei","fi","gi","pendingProps","ii","ji","ki","li","mi","ni","oi","pi","qi","ri","si","ti","ui","UNSAFE_componentWillUpdate","componentWillUpdate","componentDidUpdate","vi","wi","pendingContext","Hi","Ji","xi","retryTime","yi","unstable_avoidThisFallback","zi","Ai","isBackwards","rendering","tail","tailExpiration","tailMode","Bi","Ci","Li","Mi","Ni","onclick","Oi","WeakSet","Pi","Si","Ri","Ti","Ui","__reactInternalSnapshotBeforeUpdate","Vi","Qi","Xi","Yi","Zi","$i","insertBefore","_reactRootContainer","aj","wasMultiple","multiple","bj","cj","dj","ej","fj","gj","hj","ij","componentDidCatch","jj","componentStack","gk","kj","lj","mj","wj","xj","yj","zj","Aj","Bj","Dj","Ej","Fj","Gj","Hj","Ij","Jj","timeoutMs","Kj","Lj","Mj","Nj","Oj","lastExpiredTime","Pj","firstPendingTime","lastPingedTime","nextKnownPendingLevel","callbackExpirationTime","callbackPriority","callbackNode","Qj","Rj","Sj","Tj","Uj","Vj","Wj","finishedWork","finishedExpirationTime","lastSuspendedTime","Xj","timeoutHandle","Yj","busyMinDurationMs","busyDelayMs","Zj","bk","ck","pingCache","dk","ek","fk","createElementNS","createTextNode","ik","firstSuspendedTime","rangeCount","Db","focusedElem","selectionRange","jk","compareDocumentPosition","createRange","setStart","addRange","setEnd","focus","Dh","dc","fd","hk","Eh","Fh","xk","Di","Ei","Fi","xd","Gi","kk","lk","mk","Va","unstable_observedBits","pk","pendingChildren","qk","rk","sk","tk","uk","vk","wc","_internalRoot","wk","zk","hasAttribute","yk","Ak","Bk","unmount","querySelectorAll","form","ak","Ck","createPortal","unstable_renderSubtreeIntoContainer","unmountComponentAtNode","unstable_createPortal","unstable_batchedUpdates","flushSync","Events","findFiberByHostInstance","isDisabled","supportsFiber","inject","onCommitFiberRoot","onCommitFiberUnmount","overrideHookState","overrideProps","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","bundleType","rendererPackageName","Dk","Ek","MessageChannel","unstable_forceFrameRate","performance","cancelAnimationFrame","port2","port1","onmessage","postMessage","sortIndex","startTime","priorityLevel","unstable_wrapCallback","unstable_continueExecution","unstable_pauseExecution","unstable_getFirstCallbackNode","unstable_Profiling","runtime","Op","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","Context","_invoke","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","record","tryCatch","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","previousPromise","callInvokeWithMethodAndArg","invoke","__await","unwrapped","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","iterable","iteratorMethod","isGeneratorFunction","genFun","ctor","mark","awrap","async","skipTempReset","rootRecord","rval","exception","loc","caught","hasCatch","hasFinally","finallyEntry","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","arrayWithoutHoles","iterableToArray","nonIterableSpread","superInit","typedArray","Uint8ClampedArray","typedArrayByteLength","swapEndian","word","Utf16","Utf16BE","utf16Chars","codePoint","utf16Str","utf16StrLength","Utf16LE","SHA224","HmacSHA224","SHA384","HmacSHA384","RHO_OFFSETS","PI_INDEXES","ROUND_CONSTANTS","newY","LFSR","roundConstantMsw","roundConstantLsw","bitPosition","SHA3","outputLength","_state","nBlockSizeLanes","M2i","M2i1","lane","tMsw","tLsw","Tx","Tx4","Tx1","Tx1Msw","Tx1Lsw","laneIndex","laneMsw","laneLsw","rhoOffset","TPiLane","T0","state0","TLane","Tx1Lane","Tx2Lane","roundConstant","blockSizeBits","outputLengthBytes","outputLengthLanes","hashWords","HmacSHA3","_zl","_zr","_sl","_sr","_hl","_hr","RIPEMD160","ar","cr","dr","er","zl","zr","sl","sr","f1","f2","f3","f4","f5","rotl","HmacRIPEMD160","PBKDF2","hmac","blockIndex","blockIndexWords","blockWords","blockWordsLength","intermediate","intermediateWords","CFB","generateKeystreamAndEncrypt","keystream","CTR","counter","_counter","CTRGladman","incWord","b1","b2","b3","incCounter","OFB","_keystream","ECB","AnsiX923","lastBytePos","Ansix923","Iso10126","Iso97971","ZeroPadding","NoPadding","SBOX","INV_SBOX","SUB_MIX_0","SUB_MIX_1","SUB_MIX_2","SUB_MIX_3","INV_SUB_MIX_0","INV_SUB_MIX_1","INV_SUB_MIX_2","INV_SUB_MIX_3","sx","x4","x8","RCON","AES","_nRounds","_keyPriorReset","keyWords","ksRows","keySchedule","_keySchedule","ksRow","invKeySchedule","_invKeySchedule","invKsRow","_doCryptBlock","nRounds","s0","s1","s2","s3","t0","t2","t3","PC1","PC2","BIT_SHIFTS","SBOX_P","SBOX_MASK","DES","keyBits","keyBitPos","subKeys","_subKeys","nSubKey","subKey","bitShift","invSubKeys","_invSubKeys","_lBlock","_rBlock","exchangeLR","exchangeRL","lBlock","rBlock","TripleDES","_des1","_des2","_des3","RC4","keySigBytes","_S","keyByteIndex","keyByte","_j","generateKeystreamWord","keystreamWord","RC4Drop","drop","C_","Rabbit","_X","_C","IV","IV_0","IV_1","i0","i2","i1","i3","gx","ga","RabbitLegacy","_DraggableCore","_propTypes","_interopRequireDefault","_reactDom","_clsx2","_positionFns","_log","_excluded","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","hasNativeReflectConstruct","_React$Component","dragging","dragged","uiData","slackX","slackY","_getBoundPosition2","newStateX","newStateY","_this$props$position","prevPropsPosition","isElementSVG","SVGElement","_this$props$nodeRef$c","_this$props","_this$props$nodeRef","_clsx","_this$props2","defaultClassName","defaultClassNameDragging","defaultClassNameDragged","draggableCoreProps","svgTransform","validPosition","transformOpts","oneOf","oneOfType","shape","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","propFullName","getShim","ReactPropTypes","bigint","bool","symbol","any","arrayOf","instanceOf","objectOf","checkPropTypes","browserPrefixToStyle","getPrefix","_window$document","_window$document$docu","out","shouldCapitalize","kebabToTitleCase","_default","eventsFor","dragEventFor","thisNode","Node","coreEvent","mounted","handleDrag","handleDragStop","_snapToGrid2","MouseEvent","createEvent","initMouseEvent","_snapToGrid4","handleDragStart","_this$props2$nodeRef","onTouchEnd","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Lazy","Portal","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","globalCssModule","warned","warnOnce","tagPropType","bsSize","invalid","plaintext","addon","cssModule","Input","getRef","attributes","checkInput","isNotaNumber","Tag","formControlClass","mapToCssModules"],"mappings":";gGAGEA,EAAOC,QAAUC,EAAQ,M,6BCH3B,SAASC,EAAkBC,EAAQC,GACjC,IAAK,IAAIC,EAAI,EAAGA,EAAID,EAAME,OAAQD,IAAK,CACrC,IAAIE,EAAaH,EAAMC,GACvBE,EAAWC,WAAaD,EAAWC,aAAc,EACjDD,EAAWE,cAAe,EACtB,UAAWF,IAAYA,EAAWG,UAAW,GACjDC,OAAOC,eAAeT,EAAQI,EAAWM,IAAKN,IAInC,SAASO,EAAaC,EAAaC,EAAYC,GAG5D,OAFID,GAAYd,EAAkBa,EAAYG,UAAWF,GACrDC,GAAaf,EAAkBa,EAAaE,GACzCF,EAbT,mC,6BCAe,SAASI,EAAgBC,EAAUL,GAChD,KAAMK,aAAoBL,GACxB,MAAM,IAAIM,UAAU,qCAFxB,mC,gBCAAtB,EAAOC,QAAU,EAAQ,M,6BCAzB,8CACe,SAASsB,EAAUC,EAAUC,GAC1C,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAIH,UAAU,sDAGtBE,EAASL,UAAYP,OAAOc,OAAOD,GAAcA,EAAWN,UAAW,CACrEQ,YAAa,CACXC,MAAOJ,EACPb,UAAU,EACVD,cAAc,KAGde,GAAY,YAAeD,EAAUC,K,6BCb3C,8DAGe,SAASI,EAAaC,GACnC,OAAO,WACL,IACIC,EADAC,EAAQ,YAAeF,GAG3B,GAAI,cAA4B,CAC9B,IAAIG,EAAY,YAAeC,MAAMP,YACrCI,EAASI,QAAQC,UAAUJ,EAAOK,UAAWJ,QAE7CF,EAASC,EAAMM,MAAMJ,KAAMG,WAG7B,OAAO,YAA0BH,KAAMH,M,6BCf3C,SAASQ,EAAmBC,EAAKC,EAASC,EAAQC,EAAOC,EAAQ9B,EAAK+B,GACpE,IACE,IAAIC,EAAON,EAAI1B,GAAK+B,GAChBjB,EAAQkB,EAAKlB,MACjB,MAAOmB,GAEP,YADAL,EAAOK,GAILD,EAAKE,KACPP,EAAQb,GAERqB,QAAQR,QAAQb,GAAOsB,KAAKP,EAAOC,GAIxB,SAASO,EAAkBC,GACxC,OAAO,WACL,IAAIC,EAAOnB,KACPoB,EAAOjB,UACX,OAAO,IAAIY,SAAQ,SAAUR,EAASC,GACpC,IAAIF,EAAMY,EAAGd,MAAMe,EAAMC,GAEzB,SAASX,EAAMf,GACbW,EAAmBC,EAAKC,EAASC,EAAQC,EAAOC,EAAQ,OAAQhB,GAGlE,SAASgB,EAAOW,GACdhB,EAAmBC,EAAKC,EAASC,EAAQC,EAAOC,EAAQ,QAASW,GAGnEZ,OAAMa,OA/BZ,mC,6BCAA,8CACe,SAASC,EAA2BC,GACjD,GAAsB,qBAAXC,QAAgD,MAAtBD,EAAEC,OAAOC,UAAmB,CAC/D,GAAIC,MAAMC,QAAQJ,KAAOA,EAAI,YAA2BA,IAAK,CAC3D,IAAIpD,EAAI,EAEJyD,EAAI,aAER,MAAO,CACLC,EAAGD,EACHE,EAAG,WACD,OAAI3D,GAAKoD,EAAEnD,OAAe,CACxByC,MAAM,GAED,CACLA,MAAM,EACNpB,MAAO8B,EAAEpD,OAGb4D,EAAG,SAAWC,GACZ,MAAMA,GAERC,EAAGL,GAIP,MAAM,IAAIzC,UAAU,yIAGtB,IAAI+C,EAGAd,EAFAe,GAAmB,EACnBC,GAAS,EAEb,MAAO,CACLP,EAAG,WACDK,EAAKX,EAAEC,OAAOC,aAEhBK,EAAG,WACD,IAAIO,EAAOH,EAAGI,OAEd,OADAH,EAAmBE,EAAKxB,KACjBwB,GAETN,EAAG,SAAWQ,GACZH,GAAS,EACThB,EAAMmB,GAERN,EAAG,WACD,IACOE,GAAoC,MAAhBD,EAAW,QAAWA,EAAW,SAC1D,QACA,GAAIE,EAAQ,MAAMhB,O,gBCjCxBvD,EAAOC,QAAUC,EAAQ,IAARA,I,6BCjBJ,SAASyE,EAAgBC,EAAK9D,EAAKc,GAYhD,OAXId,KAAO8D,EACThE,OAAOC,eAAe+D,EAAK9D,EAAK,CAC9Bc,MAAOA,EACPnB,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZiE,EAAI9D,GAAOc,EAGNgD,EAZT,mC,gBCGE5E,EAAOC,QAUD,WAKP,IAAI4E,EAAWA,GAAa,SAAUC,EAAMtB,GAIxC,IAAI9B,EAASd,OAAOc,QAAW,WAC3B,SAASqC,KAET,OAAO,SAAUa,GACb,IAAIG,EAQJ,OANAhB,EAAE5C,UAAYyD,EAEdG,EAAU,IAAIhB,EAEdA,EAAE5C,UAAY,KAEP4D,GAZgB,GAmB3BC,EAAI,GAKJC,EAAQD,EAAEE,IAAM,GAKhBC,EAAOF,EAAME,KAGN,CAmBHC,OAAQ,SAAUC,GAEd,IAAIN,EAAUrD,EAAOQ,MAoBrB,OAjBImD,GACAN,EAAQO,MAAMD,GAIbN,EAAQQ,eAAe,SAAWrD,KAAKsD,OAAST,EAAQS,OACzDT,EAAQS,KAAO,WACXT,EAAQU,OAAOD,KAAKlD,MAAMJ,KAAMG,aAKxC0C,EAAQS,KAAKrE,UAAY4D,EAGzBA,EAAQU,OAASvD,KAEV6C,GAeXrD,OAAQ,WACJ,IAAIL,EAAWa,KAAKkD,SAGpB,OAFA/D,EAASmE,KAAKlD,MAAMjB,EAAUgB,WAEvBhB,GAeXmE,KAAM,aAcNF,MAAO,SAAUI,GACb,IAAK,IAAIC,KAAgBD,EACjBA,EAAWH,eAAeI,KAC1BzD,KAAKyD,GAAgBD,EAAWC,IAKpCD,EAAWH,eAAe,cAC1BrD,KAAK0D,SAAWF,EAAWE,WAanCC,MAAO,WACH,OAAO3D,KAAKsD,KAAKrE,UAAUiE,OAAOlD,QAW1C4D,EAAYb,EAAMa,UAAYX,EAAKC,OAAO,CAa1CI,KAAM,SAAUO,EAAOC,GACnBD,EAAQ7D,KAAK6D,MAAQA,GAAS,GAG1B7D,KAAK8D,cAhLO,GA+KZA,EACgBA,EAEe,EAAfD,EAAMxF,QAiB9BqF,SAAU,SAAUK,GAChB,OAAQA,GAAWC,GAAKC,UAAUjE,OActCkE,OAAQ,SAAUC,GAEd,IAAIC,EAAYpE,KAAK6D,MACjBQ,EAAYF,EAAUN,MACtBS,EAAetE,KAAK8D,SACpBS,EAAeJ,EAAUL,SAM7B,GAHA9D,KAAKwE,QAGDF,EAAe,EAEf,IAAK,IAAIlG,EAAI,EAAGA,EAAImG,EAAcnG,IAAK,CACnC,IAAIqG,EAAYJ,EAAUjG,IAAM,KAAQ,GAAMA,EAAI,EAAK,EAAM,IAC7DgG,EAAWE,EAAelG,IAAO,IAAMqG,GAAa,IAAOH,EAAelG,GAAK,EAAK,OAIxF,IAASA,EAAI,EAAGA,EAAImG,EAAcnG,GAAK,EACnCgG,EAAWE,EAAelG,IAAO,GAAKiG,EAAUjG,IAAM,GAM9D,OAHA4B,KAAK8D,UAAYS,EAGVvE,MAUXwE,MAAO,WAEH,IAAIX,EAAQ7D,KAAK6D,MACbC,EAAW9D,KAAK8D,SAGpBD,EAAMC,IAAa,IAAM,YAAe,GAAMA,EAAW,EAAK,EAC9DD,EAAMxF,OAASuE,EAAK8B,KAAKZ,EAAW,IAYxCH,MAAO,WACH,IAAIA,EAAQV,EAAKU,MAAMgB,KAAK3E,MAG5B,OAFA2D,EAAME,MAAQ7D,KAAK6D,MAAMe,MAAM,GAExBjB,GAgBXkB,OAAQ,SAAUC,GAkBd,IAjBA,IAiBgBC,EAjBZlB,EAAQ,GAERmB,EAAK,SAAUC,GACXA,EAAMA,EAAV,IACIC,EAAM,UACNC,EAAO,WAEX,OAAO,WAGH,IAAItF,IAFJqF,EAAO,OAAgB,MAANA,IAAiBA,GAAO,IAASC,IAE5B,KADtBF,EAAO,MAAgB,MAANA,IAAiBA,GAAO,IAASE,GACbA,EAGrC,OAFAtF,GAAU,YACVA,GAAU,KACO+C,EAAKiC,SAAW,GAAK,GAAK,KAI1CzG,EAAI,EAAWA,EAAI0G,EAAQ1G,GAAK,EAAG,CACxC,IAAIgH,EAAKJ,EAA8B,YAA3BD,GAAUnC,EAAKiC,WAE3BE,EAAgB,UAAPK,IACTvB,EAAMwB,KAAa,WAAPD,IAAsB,GAGtC,OAAO,IAAIxB,EAAUN,KAAKO,EAAOiB,MAOrCQ,EAAQxC,EAAEyC,IAAM,GAKhBvB,EAAMsB,EAAMtB,IAAM,CAclBC,UAAW,SAAUE,GAOjB,IALA,IAAIN,EAAQM,EAAUN,MAClBC,EAAWK,EAAUL,SAGrB0B,EAAW,GACNpH,EAAI,EAAGA,EAAI0F,EAAU1F,IAAK,CAC/B,IAAIqH,EAAQ5B,EAAMzF,IAAM,KAAQ,GAAMA,EAAI,EAAK,EAAM,IACrDoH,EAASH,MAAMI,IAAS,GAAG/B,SAAS,KACpC8B,EAASH,MAAa,GAAPI,GAAa/B,SAAS,KAGzC,OAAO8B,EAASE,KAAK,KAgBzBC,MAAO,SAAUC,GAMb,IAJA,IAAIC,EAAeD,EAAOvH,OAGtBwF,EAAQ,GACHzF,EAAI,EAAGA,EAAIyH,EAAczH,GAAK,EACnCyF,EAAMzF,IAAM,IAAM0H,SAASF,EAAOG,OAAO3H,EAAG,GAAI,KAAQ,GAAMA,EAAI,EAAK,EAG3E,OAAO,IAAIwF,EAAUN,KAAKO,EAAOgC,EAAe,KAOpDG,EAASV,EAAMU,OAAS,CAcxB/B,UAAW,SAAUE,GAOjB,IALA,IAAIN,EAAQM,EAAUN,MAClBC,EAAWK,EAAUL,SAGrBmC,EAAc,GACT7H,EAAI,EAAGA,EAAI0F,EAAU1F,IAAK,CAC/B,IAAIqH,EAAQ5B,EAAMzF,IAAM,KAAQ,GAAMA,EAAI,EAAK,EAAM,IACrD6H,EAAYZ,KAAKa,OAAOC,aAAaV,IAGzC,OAAOQ,EAAYP,KAAK,KAgB5BC,MAAO,SAAUS,GAMb,IAJA,IAAIC,EAAkBD,EAAU/H,OAG5BwF,EAAQ,GACHzF,EAAI,EAAGA,EAAIiI,EAAiBjI,IACjCyF,EAAMzF,IAAM,KAAiC,IAA1BgI,EAAUE,WAAWlI,KAAe,GAAMA,EAAI,EAAK,EAG1E,OAAO,IAAIwF,EAAUN,KAAKO,EAAOwC,KAOrCE,EAAOjB,EAAMiB,KAAO,CAcpBtC,UAAW,SAAUE,GACjB,IACI,OAAOqC,mBAAmBC,OAAOT,EAAO/B,UAAUE,KACpD,MAAOnC,GACL,MAAM,IAAI0E,MAAM,0BAiBxBf,MAAO,SAAUgB,GACb,OAAOX,EAAOL,MAAMiB,SAASC,mBAAmBF,OAWpDG,EAAyB/D,EAAM+D,uBAAyB7D,EAAKC,OAAO,CAQpE6D,MAAO,WAEH/G,KAAKgH,MAAQ,IAAIpD,EAAUN,KAC3BtD,KAAKiH,YAAc,GAavBC,QAAS,SAAUC,GAEI,iBAARA,IACPA,EAAOZ,EAAKZ,MAAMwB,IAItBnH,KAAKgH,MAAM9C,OAAOiD,GAClBnH,KAAKiH,aAAeE,EAAKrD,UAiB7BsD,SAAU,SAAUC,GAEhB,IAAIF,EAAOnH,KAAKgH,MACZM,EAAYH,EAAKtD,MACjB0D,EAAeJ,EAAKrD,SACpB0D,EAAYxH,KAAKwH,UAIjBC,EAAeF,GAHc,EAAZC,GAcjBE,GARAD,EAFAJ,EAEezE,EAAK8B,KAAK+C,GAIV7E,EAAK+E,KAAoB,EAAfF,GAAoBzH,KAAK4H,eAAgB,IAIrCJ,EAG7BK,EAAcjF,EAAKkF,IAAkB,EAAdJ,EAAiBH,GAG5C,GAAIG,EAAa,CACb,IAAK,IAAIK,EAAS,EAAGA,EAASL,EAAaK,GAAUP,EAEjDxH,KAAKgI,gBAAgBV,EAAWS,GAIpC,IAAIE,EAAiBX,EAAUY,OAAO,EAAGR,GACzCP,EAAKrD,UAAY+D,EAIrB,OAAO,IAAIjE,EAAUN,KAAK2E,EAAgBJ,IAY9ClE,MAAO,WACH,IAAIA,EAAQV,EAAKU,MAAMgB,KAAK3E,MAG5B,OAFA2D,EAAMqD,MAAQhH,KAAKgH,MAAMrD,QAElBA,GAGXiE,eAAgB,IA2IhBO,GAnISpF,EAAMqF,OAAStB,EAAuB5D,OAAO,CAItDmF,IAAKpF,EAAKC,SAWVI,KAAM,SAAU+E,GAEZrI,KAAKqI,IAAMrI,KAAKqI,IAAInF,OAAOmF,GAG3BrI,KAAK+G,SAUTA,MAAO,WAEHD,EAAuBC,MAAMpC,KAAK3E,MAGlCA,KAAKsI,YAeTC,OAAQ,SAAUC,GAQd,OANAxI,KAAKkH,QAAQsB,GAGbxI,KAAKoH,WAGEpH,MAiBXyI,SAAU,SAAUD,GAShB,OAPIA,GACAxI,KAAKkH,QAAQsB,GAINxI,KAAK0I,eAKpBlB,UAAW,GAeXmB,cAAe,SAAUC,GACrB,OAAO,SAAUC,EAASR,GACtB,OAAO,IAAIO,EAAOtF,KAAK+E,GAAKI,SAASI,KAiB7CC,kBAAmB,SAAUF,GACzB,OAAO,SAAUC,EAASjK,GACtB,OAAO,IAAIuJ,EAAOY,KAAKzF,KAAKsF,EAAQhK,GAAK6J,SAASI,OAQjD/F,EAAEkG,KAAO,IAEtB,OAAOlG,EA/tBiB,CAguB1BF,MAGF,OAAOD,EAlvBqBsG,I,6BCHd,SAASC,EAAgB1H,GAItC,OAHA0H,EAAkBxK,OAAOyK,eAAiBzK,OAAO0K,eAAiB,SAAyB5H,GACzF,OAAOA,EAAE6H,WAAa3K,OAAO0K,eAAe5H,KAEvBA,GAJzB,mC,2ECIe,SAAS8H,EAAeC,EAAKnL,GAC1C,OCLa,SAAyBmL,GACtC,GAAI5H,MAAMC,QAAQ2H,GAAM,OAAOA,EDIxB,CAAeA,IELT,SAA+BA,EAAKnL,GACjD,GAAsB,qBAAXqD,QAA4BA,OAAOC,YAAYhD,OAAO6K,GAAjE,CACA,IAAIC,EAAO,GACPC,GAAK,EACLC,GAAK,EACLzH,OAAKX,EAET,IACE,IAAK,IAAiCqI,EAA7BC,EAAKL,EAAI9H,OAAOC,cAAmB+H,GAAME,EAAKC,EAAGrH,QAAQzB,QAChE0I,EAAKnE,KAAKsE,EAAGjK,QAETtB,GAAKoL,EAAKnL,SAAWD,GAH8CqL,GAAK,IAK9E,MAAOpI,GACPqI,GAAK,EACLzH,EAAKZ,EACL,QACA,IACOoI,GAAsB,MAAhBG,EAAW,QAAWA,EAAW,SAC5C,QACA,GAAIF,EAAI,MAAMzH,GAIlB,OAAOuH,GFnBuB,CAAqBD,EAAKnL,IAAM,OAAAyL,EAAA,GAA2BN,EAAKnL,IGLjF,WACb,MAAM,IAAIgB,UAAU,6IHIgF,K,6BILvF,SAAS0K,EAAuB3I,GAC7C,QAAa,IAATA,EACF,MAAM,IAAI4I,eAAe,6DAG3B,OAAO5I,EALT,mC,uFCIe,SAAS6I,EAAmBT,GACzC,OCJa,SAA4BA,GACzC,GAAI5H,MAAMC,QAAQ2H,GAAM,OAAO,OAAAU,EAAA,GAAiBV,GDGzC,CAAkBA,IELZ,SAA0BW,GACvC,GAAsB,qBAAXzI,QAA0BA,OAAOC,YAAYhD,OAAOwL,GAAO,OAAOvI,MAAMwI,KAAKD,GFIvD,CAAgBX,IAAQ,OAAAM,EAAA,GAA2BN,IGLvE,WACb,MAAM,IAAInK,UAAU,wIHIwE,K,2EIJ/E,SAAS,EAAKlB,EAAQkM,EAAUC,GAiB7C,OAfE,EADqB,qBAAZpK,SAA2BA,QAAQqK,IACrCrK,QAAQqK,IAER,SAAcpM,EAAQkM,EAAUC,GACrC,IAAIE,ECLK,SAAwBC,EAAQJ,GAC7C,MAAQ1L,OAAOO,UAAUoE,eAAesB,KAAK6F,EAAQJ,IAEpC,QADfI,EAAS,OAAApB,EAAA,GAAeoB,MAI1B,OAAOA,EDDQ,CAActM,EAAQkM,GACjC,GAAKG,EAAL,CACA,IAAIE,EAAO/L,OAAOgM,yBAAyBH,EAAMH,GAEjD,OAAIK,EAAKH,IACAG,EAAKH,IAAI3F,KAAK0F,GAGhBI,EAAK/K,SAIJxB,EAAQkM,EAAUC,GAAYnM,K,+uBEZ5C,SAASyM,KACT,IAAMC,EAAO,WACX,IAAIC,EAAK,EACT,OAAO,WACL,OAAOA,KAHE,GAMb,SAASC,EAAcpL,GACrB,OAAiB,OAAVA,GAAmC,qBAAVA,EAElC,SAASkC,EAAQlC,GACf,GAAIiC,MAAMC,SAAWD,MAAMC,QAAQlC,GACjC,OAAO,EAET,IAAMqL,EAAOrM,OAAOO,UAAUyE,SAASiB,KAAKjF,GAC5C,MAAyB,YAArBqL,EAAKnG,MAAM,EAAG,IAAuC,WAAnBmG,EAAKnG,OAAO,GAKpD,SAASoG,EAAStL,GAChB,OAAiB,OAAVA,GAA4D,oBAA1ChB,OAAOO,UAAUyE,SAASiB,KAAKjF,GAE1D,IAAMuL,EAAiB,SAACvL,GAAD,OAA6B,kBAAVA,GAAsBA,aAAiBwL,SAAWC,UAAUzL,IACtG,SAAS0L,EAAgB1L,EAAO2L,GAC9B,OAAOJ,EAAevL,GAASA,EAAQ2L,EAEzC,SAASC,EAAe5L,EAAO2L,GAC7B,MAAwB,qBAAV3L,EAAwB2L,EAAe3L,EAEvD,IAIM6L,EAAc,SAAC7L,EAAO8L,GAAR,MACD,kBAAV9L,GAAsBA,EAAM+L,SAAS,KAC1CC,WAAWhM,GAAS,IAAM8L,GACvB9L,GACP,SAASiM,EAASzK,EAAIE,EAAMwK,GAC1B,GAAI1K,GAAyB,oBAAZA,EAAGyD,KAClB,OAAOzD,EAAGd,MAAMwL,EAASxK,GAG7B,SAASyK,EAAKC,EAAU5K,EAAI0K,EAASG,GACnC,IAAI3N,EAAG4N,EAAKC,EACZ,GAAIrK,EAAQkK,GAEV,GADAE,EAAMF,EAASzN,OACX0N,EACF,IAAK3N,EAAI4N,EAAM,EAAG5N,GAAK,EAAGA,IACxB8C,EAAGyD,KAAKiH,EAASE,EAAS1N,GAAIA,QAGhC,IAAKA,EAAI,EAAGA,EAAI4N,EAAK5N,IACnB8C,EAAGyD,KAAKiH,EAASE,EAAS1N,GAAIA,QAG7B,GAAI4M,EAASc,GAGlB,IADAE,GADAC,EAAOvN,OAAOuN,KAAKH,IACRzN,OACND,EAAI,EAAGA,EAAI4N,EAAK5N,IACnB8C,EAAGyD,KAAKiH,EAASE,EAASG,EAAK7N,IAAK6N,EAAK7N,IAI/C,SAAS8N,EAAeC,EAAIC,GAC1B,IAAIhO,EAAGiO,EAAMC,EAAIC,EACjB,IAAKJ,IAAOC,GAAMD,EAAG9N,SAAW+N,EAAG/N,OACjC,OAAO,EAET,IAAKD,EAAI,EAAGiO,EAAOF,EAAG9N,OAAQD,EAAIiO,IAAQjO,EAGxC,GAFAkO,EAAKH,EAAG/N,GACRmO,EAAKH,EAAGhO,GACJkO,EAAGE,eAAiBD,EAAGC,cAAgBF,EAAGG,QAAUF,EAAGE,MACzD,OAAO,EAGX,OAAO,EAET,SAASC,EAAQC,GACf,GAAI/K,EAAQ+K,GACV,OAAOA,EAAOC,IAAIF,GAEpB,GAAI1B,EAAS2B,GAAS,CAKpB,IAJA,IAAMzO,EAASQ,OAAOc,OAAO,MACvByM,EAAOvN,OAAOuN,KAAKU,GACnBE,EAAOZ,EAAK5N,OACdyO,EAAI,EACDA,EAAID,IAAQC,EACjB5O,EAAO+N,EAAKa,IAAMJ,EAAQC,EAAOV,EAAKa,KAExC,OAAO5O,EAET,OAAOyO,EAET,SAASI,EAAWnO,GAClB,OAAmE,IAA5D,CAAC,YAAa,YAAa,eAAeoO,QAAQpO,GAE3D,SAASqO,EAAQrO,EAAKV,EAAQyO,EAAQO,GACpC,GAAKH,EAAWnO,GAAhB,CAGA,IAAMuO,EAAOjP,EAAOU,GACdwO,EAAOT,EAAO/N,GAChBoM,EAASmC,IAASnC,EAASoC,GAC7BC,EAAMF,EAAMC,EAAMF,GAElBhP,EAAOU,GAAO8N,EAAQU,IAG1B,SAASC,EAAMnP,EAAQyO,EAAQO,GAC7B,IAAMI,EAAU1L,EAAQ+K,GAAUA,EAAS,CAACA,GACtCN,EAAOiB,EAAQjP,OACrB,IAAK2M,EAAS9M,GACZ,OAAOA,EAIT,IADA,IAAMqP,GADNL,EAAUA,GAAW,IACEK,QAAUN,EACxB7O,EAAI,EAAGA,EAAIiO,IAAQjO,EAE1B,GAAK4M,EADL2B,EAASW,EAAQlP,IAKjB,IADA,IAAM6N,EAAOvN,OAAOuN,KAAKU,GAChBG,EAAI,EAAGD,EAAOZ,EAAK5N,OAAQyO,EAAID,IAAQC,EAC9CS,EAAOtB,EAAKa,GAAI5O,EAAQyO,EAAQO,GAGpC,OAAOhP,EAET,SAASsP,EAAQtP,EAAQyO,GACvB,OAAOU,EAAMnP,EAAQyO,EAAQ,CAACY,OAAQE,IAExC,SAASA,EAAU7O,EAAKV,EAAQyO,GAC9B,GAAKI,EAAWnO,GAAhB,CAGA,IAAMuO,EAAOjP,EAAOU,GACdwO,EAAOT,EAAO/N,GAChBoM,EAASmC,IAASnC,EAASoC,GAC7BI,EAAQL,EAAMC,GACJ1O,OAAOO,UAAUoE,eAAesB,KAAKzG,EAAQU,KACvDV,EAAOU,GAAO8N,EAAQU,KAS1B,IAAMM,EAAe,CACnB,GAAI,SAAAC,GAAC,OAAIA,GACTC,EAAG,SAAApM,GAAC,OAAIA,EAAEoM,GACVC,EAAG,SAAArM,GAAC,OAAIA,EAAEqM,IAEZ,SAASC,EAAiBpL,EAAK9D,GAE7B,OADiB8O,EAAa9O,KAAS8O,EAAa9O,GAGtD,SAAyBA,GACvB,IAAMqN,EAWR,SAAmBrN,GACjB,IADsB,EAChBmP,EAAQnP,EAAIoP,MAAM,KAClB/B,EAAO,GACTgC,EAAM,GAHY,cAIHF,GAJG,IAItB,2BAA0B,KAAfG,EAAe,SACxBD,GAAOC,GACCzC,SAAS,MACfwC,EAAMA,EAAIrJ,MAAM,GAAI,GAAK,KAEzBqH,EAAK5G,KAAK4I,GACVA,EAAM,KAVY,8BAatB,OAAOhC,EAxBMkC,CAAUvP,GACvB,OAAO,SAAA8D,GAAO,oBACIuJ,GADJ,IACZ,2BAAsB,KAAXa,EAAW,QACpB,GAAU,KAANA,EACF,MAEFpK,EAAMA,GAAOA,EAAIoK,IALP,8BAOZ,OAAOpK,GAZkD0L,CAAgBxP,KAC3D8D,GA6BlB,SAAS2L,EAAYC,GACnB,OAAOA,EAAIC,OAAO,GAAGC,cAAgBF,EAAI1J,MAAM,GAEjD,IAAM6J,EAAU,SAAC/O,GAAD,MAA4B,qBAAVA,GAC5BgP,EAAa,SAAChP,GAAD,MAA4B,oBAAVA,GAC/BiP,EAAY,SAACC,EAAGC,GACpB,GAAID,EAAEE,OAASD,EAAEC,KACf,OAAO,EAFiB,oBAIPF,GAJO,IAI1B,2BAAsB,KAAXG,EAAW,QACpB,IAAKF,EAAEG,IAAID,GACT,OAAO,GANe,8BAS1B,OAAO,GAMT,IAAME,EAAKrM,KAAKqM,GACVC,EAAM,EAAID,EACVE,EAAQD,EAAMD,EACdG,EAAWlE,OAAOmE,kBAClBC,EAAcL,EAAK,IACnBM,EAAUN,EAAK,EACfO,EAAaP,EAAK,EAClBQ,EAAqB,EAALR,EAAS,EACzBS,EAAQ9M,KAAK8M,MACbC,EAAO/M,KAAK+M,KAClB,SAASC,EAAQC,GACf,IAAMC,EAAelN,KAAKmN,MAAMF,GAChCA,EAAQG,EAAaH,EAAOC,EAAcD,EAAQ,KAAQC,EAAeD,EACzE,IAAMI,EAAYrN,KAAKsN,IAAI,GAAItN,KAAKuN,MAAMT,EAAMG,KAC1CO,EAAWP,EAAQI,EAEzB,OADqBG,GAAY,EAAI,EAAIA,GAAY,EAAI,EAAIA,GAAY,EAAI,EAAI,IAC3DH,EAkBxB,SAASI,EAAStO,GAChB,OAAQuO,MAAM5E,WAAW3J,KAAOoJ,SAASpJ,GAE3C,SAASiO,EAAapC,EAAGC,EAAG0C,GAC1B,OAAO3N,KAAK4N,IAAI5C,EAAIC,GAAK0C,EAM3B,SAASE,EAAmBC,EAAOxS,EAAQkM,GACzC,IAAIhM,EAAGiO,EAAM3M,EACb,IAAKtB,EAAI,EAAGiO,EAAOqE,EAAMrS,OAAQD,EAAIiO,EAAMjO,IACzCsB,EAAQgR,EAAMtS,GAAGgM,GACZkG,MAAM5Q,KACTxB,EAAO4J,IAAMlF,KAAKkF,IAAI5J,EAAO4J,IAAKpI,GAClCxB,EAAOyJ,IAAM/E,KAAK+E,IAAIzJ,EAAOyJ,IAAKjI,IAIxC,SAASiR,EAAUC,GACjB,OAAOA,GAAW3B,EAAK,KAEzB,SAAS4B,EAAUC,GACjB,OAAOA,GAAW,IAAM7B,GAE1B,SAAS8B,GAAenD,GACtB,GAAK3C,EAAe2C,GAApB,CAKA,IAFA,IAAI5L,EAAI,EACJgP,EAAI,EACDpO,KAAKmN,MAAMnC,EAAI5L,GAAKA,IAAM4L,GAC/B5L,GAAK,GACLgP,IAEF,OAAOA,GAET,SAASC,GAAkBC,EAAaC,GACtC,IAAMC,EAAsBD,EAAWvD,EAAIsD,EAAYtD,EACjDyD,EAAsBF,EAAWtD,EAAIqD,EAAYrD,EACjDyD,EAA2B1O,KAAK2O,KAAKH,EAAsBA,EAAsBC,EAAsBA,GACzGG,EAAQ5O,KAAK6O,MAAMJ,EAAqBD,GAI5C,OAHII,GAAU,GAAMvC,IAClBuC,GAAStC,GAEJ,CACLsC,QACAE,SAAUJ,GAGd,SAASK,GAAsBC,EAAKC,GAClC,OAAOjP,KAAK2O,KAAK3O,KAAKsN,IAAI2B,EAAIjE,EAAIgE,EAAIhE,EAAG,GAAKhL,KAAKsN,IAAI2B,EAAIhE,EAAI+D,EAAI/D,EAAG,IAExE,SAASiE,GAAWlD,EAAGC,GACrB,OAAQD,EAAIC,EAAIM,GAASD,EAAMD,EAEjC,SAAS8C,GAAgBnD,GACvB,OAAQA,EAAIM,EAAMA,GAAOA,EAE3B,SAAS8C,GAAcR,EAAOS,EAAOC,EAAKC,GACxC,IAAMvD,EAAImD,GAAgBP,GACpB1P,EAAIiQ,GAAgBE,GACpBjQ,EAAI+P,GAAgBG,GACpBE,EAAeL,GAAgBjQ,EAAI8M,GACnCyD,EAAaN,GAAgB/P,EAAI4M,GACjC0D,EAAeP,GAAgBnD,EAAI9M,GACnCyQ,EAAaR,GAAgBnD,EAAI5M,GACvC,OAAO4M,IAAM9M,GAAK8M,IAAM5M,GAAMmQ,GAAyBrQ,IAAME,GACvDoQ,EAAeC,GAAcC,EAAeC,EAEpD,SAASC,GAAY9S,EAAOoI,EAAKH,GAC/B,OAAO/E,KAAK+E,IAAIG,EAAKlF,KAAKkF,IAAIH,EAAKjI,IAKrC,SAAS+S,GAAW/S,EAAOuS,EAAOC,GAAqB,IAAhB3B,EAAgB,uDAAN,KAC/C,OAAO7Q,GAASkD,KAAKkF,IAAImK,EAAOC,GAAO3B,GAAW7Q,GAASkD,KAAK+E,IAAIsK,EAAOC,GAAO3B,EAGpF,SAASmC,GAAQC,EAAOjT,EAAOkT,GAC7BA,EAAMA,GAAQ,SAACnG,GAAD,OAAWkG,EAAMlG,GAAS/M,GAIxC,IAHA,IAEImT,EAFAC,EAAKH,EAAMtU,OAAS,EACpB0U,EAAK,EAEFD,EAAKC,EAAK,GAEXH,EADJC,EAAOE,EAAKD,GAAO,GAEjBC,EAAKF,EAELC,EAAKD,EAGT,MAAO,CAACE,KAAID,MAEd,IAAME,GAAe,SAACL,EAAO/T,EAAKc,EAAOuT,GAApB,OACnBP,GAAQC,EAAOjT,EAAOuT,EAClB,SAAAxG,GAAK,OAAIkG,EAAMlG,GAAO7N,IAAQc,GAC9B,SAAA+M,GAAK,OAAIkG,EAAMlG,GAAO7N,GAAOc,KAC7BwT,GAAgB,SAACP,EAAO/T,EAAKc,GAAb,OACpBgT,GAAQC,EAAOjT,GAAO,SAAA+M,GAAK,OAAIkG,EAAMlG,GAAO7N,IAAQc,MActD,IAAMyT,GAAc,CAAC,OAAQ,MAAO,QAAS,SAAU,WA+BvD,SAASC,GAAoB1C,EAAO2C,GAClC,IAAMC,EAAO5C,EAAM6C,SACnB,GAAKD,EAAL,CAGA,IAAME,EAAYF,EAAKE,UACjB/G,EAAQ+G,EAAUxG,QAAQqG,IACjB,IAAX5G,GACF+G,EAAUtL,OAAOuE,EAAO,GAEtB+G,EAAUnV,OAAS,IAGvB8U,GAAYM,SAAQ,SAAC7U,UACZ8R,EAAM9R,aAER8R,EAAM6C,WAEf,SAASG,GAAaC,GACpB,IACIvV,EAAGiO,EADDuH,EAAM,IAAIC,IAEhB,IAAKzV,EAAI,EAAGiO,EAAOsH,EAAMtV,OAAQD,EAAIiO,IAAQjO,EAC3CwV,EAAIE,IAAIH,EAAMvV,IAEhB,OAAIwV,EAAI9E,OAASzC,EACRsH,EAEFhS,MAAMwI,KAAKyJ,GAMpB,IAAMG,GACkB,qBAAXC,OACF,SAASrI,GACd,OAAOA,KAGJqI,OAAOC,sBAEhB,SAASC,GAAUhT,EAAI0K,EAASuI,GAC9B,IAAMC,EAAaD,GAAa,SAAC/S,GAAD,OAAUO,MAAM1C,UAAU2F,MAAMD,KAAKvD,IACjEiT,GAAU,EACVjT,EAAO,GACX,OAAO,WAAkB,2BAANkT,EAAM,yBAANA,EAAM,gBACvBlT,EAAOgT,EAAWE,GACbD,IACHA,GAAU,EACVN,GAAiBpP,KAAKqP,QAAQ,WAC5BK,GAAU,EACVnT,EAAGd,MAAMwL,EAASxK,QAiB1B,IAAMmT,GAAqB,SAACC,GAAD,MAAqB,UAAVA,EAAoB,OAAmB,QAAVA,EAAkB,QAAU,UACzFC,GAAiB,SAACD,EAAOvC,EAAOC,GAAf,MAAiC,UAAVsC,EAAoBvC,EAAkB,QAAVuC,EAAkBtC,GAAOD,EAAQC,GAAO,GAKlH,SAASwC,GAAiCC,EAAMC,EAAQC,GACtD,IAAMC,EAAaF,EAAOvW,OACtB4T,EAAQ,EACR8C,EAAQD,EACZ,GAAIH,EAAKK,QAAS,KACTC,EAAmBN,EAAnBM,OAAQC,EAAWP,EAAXO,QACTC,EAAOF,EAAOE,KAFJ,EAG2BF,EAAOG,gBAA3CtN,EAHS,EAGTA,IAAKH,EAHI,EAGJA,IAAK0N,EAHD,EAGCA,WAAYC,EAHb,EAGaA,WACzBD,IACFpD,EAAQO,GAAY5P,KAAKkF,IACvBkL,GAAakC,EAASD,EAAOE,KAAMrN,GAAKiL,GACxC8B,EAAqBC,EAAa9B,GAAa4B,EAAQO,EAAMF,EAAOM,iBAAiBzN,IAAMiL,IAC7F,EAAG+B,EAAa,IAGhBC,EADEO,EACM9C,GAAY5P,KAAK+E,IACvBqL,GAAakC,EAASD,EAAOE,KAAMxN,GAAK,GAAMmL,GAAK,EACnD+B,EAAqB,EAAI7B,GAAa4B,EAAQO,EAAMF,EAAOM,iBAAiB5N,IAAM,GAAMmL,GAAK,GAC/Fb,EAAO6C,GAAc7C,EAEb6C,EAAa7C,EAGzB,MAAO,CAACA,QAAO8C,SAEjB,SAASS,GAAoBb,GAAM,IAC1Bc,EAAgCd,EAAhCc,OAAQC,EAAwBf,EAAxBe,OAAQC,EAAgBhB,EAAhBgB,aACjBC,EAAY,CAChBC,KAAMJ,EAAO3N,IACbgO,KAAML,EAAO9N,IACboO,KAAML,EAAO5N,IACbkO,KAAMN,EAAO/N,KAEf,IAAKgO,EAEH,OADAhB,EAAKgB,aAAeC,GACb,EAET,IAAMK,EAAUN,EAAaE,OAASJ,EAAO3N,KAC1C6N,EAAaG,OAASL,EAAO9N,KAC7BgO,EAAaI,OAASL,EAAO5N,KAC7B6N,EAAaK,OAASN,EAAO/N,IAEhC,OADAjJ,OAAOwX,OAAOP,EAAcC,GACrBK,EAGT,IAAME,GAAS,SAACC,GAAD,OAAa,IAANA,GAAiB,IAANA,GAC3BC,GAAY,SAACD,EAAGtU,EAAGkP,GAAP,OAAepO,KAAKsN,IAAI,EAAG,IAAMkG,GAAK,IAAMxT,KAAK0T,KAAKF,EAAItU,GAAKoN,EAAM8B,IACjFuF,GAAa,SAACH,EAAGtU,EAAGkP,GAAP,OAAapO,KAAKsN,IAAI,GAAI,GAAKkG,GAAKxT,KAAK0T,KAAKF,EAAItU,GAAKoN,EAAM8B,GAAK,GAC/EwF,GAAU,CACdC,OAAQ,SAAAL,GAAC,OAAIA,GACbM,WAAY,SAAAN,GAAC,OAAIA,EAAIA,GACrBO,YAAa,SAAAP,GAAC,OAAKA,GAAKA,EAAI,IAC5BQ,cAAe,SAAAR,GAAC,OAAMA,GAAK,IAAO,EAC9B,GAAMA,EAAIA,GACT,MAAUA,GAAMA,EAAI,GAAK,IAC9BS,YAAa,SAAAT,GAAC,OAAIA,EAAIA,EAAIA,GAC1BU,aAAc,SAAAV,GAAC,OAAKA,GAAK,GAAKA,EAAIA,EAAI,GACtCW,eAAgB,SAAAX,GAAC,OAAMA,GAAK,IAAO,EAC/B,GAAMA,EAAIA,EAAIA,EACd,KAAQA,GAAK,GAAKA,EAAIA,EAAI,IAC9BY,YAAa,SAAAZ,GAAC,OAAIA,EAAIA,EAAIA,EAAIA,GAC9Ba,aAAc,SAAAb,GAAC,SAAOA,GAAK,GAAKA,EAAIA,EAAIA,EAAI,IAC5Cc,eAAgB,SAAAd,GAAC,OAAMA,GAAK,IAAO,EAC/B,GAAMA,EAAIA,EAAIA,EAAIA,GACjB,KAAQA,GAAK,GAAKA,EAAIA,EAAIA,EAAI,IACnCe,YAAa,SAAAf,GAAC,OAAIA,EAAIA,EAAIA,EAAIA,EAAIA,GAClCgB,aAAc,SAAAhB,GAAC,OAAKA,GAAK,GAAKA,EAAIA,EAAIA,EAAIA,EAAI,GAC9CiB,eAAgB,SAAAjB,GAAC,OAAMA,GAAK,IAAO,EAC/B,GAAMA,EAAIA,EAAIA,EAAIA,EAAIA,EACtB,KAAQA,GAAK,GAAKA,EAAIA,EAAIA,EAAIA,EAAI,IACtCkB,WAAY,SAAAlB,GAAC,OAA6B,EAAxBxT,KAAK2U,IAAInB,EAAI7G,IAC/BiI,YAAa,SAAApB,GAAC,OAAIxT,KAAK0T,IAAIF,EAAI7G,IAC/BkI,cAAe,SAAArB,GAAC,OAAK,IAAOxT,KAAK2U,IAAItI,EAAKmH,GAAK,IAC/CsB,WAAY,SAAAtB,GAAC,OAAW,IAANA,EAAW,EAAIxT,KAAKsN,IAAI,EAAG,IAAMkG,EAAI,KACvDuB,YAAa,SAAAvB,GAAC,OAAW,IAANA,EAAW,EAA4B,EAAvBxT,KAAKsN,IAAI,GAAI,GAAKkG,IACrDwB,cAAe,SAAAxB,GAAC,OAAID,GAAOC,GAAKA,EAAIA,EAAI,GACpC,GAAMxT,KAAKsN,IAAI,EAAG,IAAU,EAAJkG,EAAQ,IAChC,IAAyC,EAAjCxT,KAAKsN,IAAI,GAAI,IAAU,EAAJkG,EAAQ,MACvCyB,WAAY,SAAAzB,GAAC,OAAKA,GAAK,EAAKA,IAAMxT,KAAK2O,KAAK,EAAI6E,EAAIA,GAAK,IACzD0B,YAAa,SAAA1B,GAAC,OAAIxT,KAAK2O,KAAK,GAAK6E,GAAK,GAAKA,IAC3C2B,cAAe,SAAA3B,GAAC,OAAMA,GAAK,IAAO,GAC7B,IAAOxT,KAAK2O,KAAK,EAAI6E,EAAIA,GAAK,GAC/B,IAAOxT,KAAK2O,KAAK,GAAK6E,GAAK,GAAKA,GAAK,IACzC4B,cAAe,SAAA5B,GAAC,OAAID,GAAOC,GAAKA,EAAIC,GAAUD,EAAG,KAAO,KACxD6B,eAAgB,SAAA7B,GAAC,OAAID,GAAOC,GAAKA,EAAIG,GAAWH,EAAG,KAAO,KAC1D8B,iBArCc,SAqCG9B,GACf,IAAMtU,EAAI,MAEV,OAAOqU,GAAOC,GAAKA,EACjBA,EAAI,GACA,GAAMC,GAAc,EAAJD,EAAOtU,EAHnB,KAIJ,GAAM,GAAMyU,GAAe,EAAJH,EAAQ,EAAGtU,EAJ9B,MAMZqW,WA7Cc,SA6CH/B,GACT,IAAMtU,EAAI,QACV,OAAOsU,EAAIA,IAAMtU,EAAI,GAAKsU,EAAItU,IAEhCsW,YAjDc,SAiDFhC,GACV,IAAMtU,EAAI,QACV,OAAQsU,GAAK,GAAKA,IAAMtU,EAAI,GAAKsU,EAAItU,GAAK,GAE5CuW,cArDc,SAqDAjC,GACZ,IAAItU,EAAI,QACR,OAAKsU,GAAK,IAAO,EACDA,EAAIA,IAAuB,GAAhBtU,GAAM,QAAesU,EAAItU,GAA3C,GAEF,KAAQsU,GAAK,GAAKA,IAAuB,GAAhBtU,GAAM,QAAesU,EAAItU,GAAK,IAEhEwW,aAAc,SAAAlC,GAAC,OAAI,EAAII,GAAQ+B,cAAc,EAAInC,IACjDmC,cA7Dc,SA6DAnC,GACZ,IAAMoC,EAAI,OACJC,EAAI,KACV,OAAIrC,EAAK,EAAIqC,EACJD,EAAIpC,EAAIA,EAEbA,EAAK,EAAIqC,EACJD,GAAKpC,GAAM,IAAMqC,GAAMrC,EAAI,IAEhCA,EAAK,IAAMqC,EACND,GAAKpC,GAAM,KAAOqC,GAAMrC,EAAI,MAE9BoC,GAAKpC,GAAM,MAAQqC,GAAMrC,EAAI,SAEtCsC,gBAAiB,SAAAtC,GAAC,OAAKA,EAAI,GACO,GAA9BI,GAAQ8B,aAAiB,EAAJlC,GACc,GAAnCI,GAAQ+B,cAAkB,EAAJnC,EAAQ,GAAW,KAS/C,SAASrG,GAAMpC,GACb,OAAOA,EAAI,GAAM,EAEnB,IAAMgL,GAAM,SAAChL,EAAGiL,EAAGC,GAAP,OAAajW,KAAK+E,IAAI/E,KAAKkF,IAAI6F,EAAGkL,GAAID,IAClD,SAASE,GAAInL,GACX,OAAOgL,GAAI5I,GAAU,KAAJpC,GAAW,EAAG,KAEjC,SAASoL,GAAIpL,GACX,OAAOgL,GAAI5I,GAAU,IAAJpC,GAAU,EAAG,KAEhC,SAASqL,GAAIrL,GACX,OAAOgL,GAAI5I,GAAMpC,EAAI,MAAQ,IAAK,EAAG,GAEvC,SAASsL,GAAItL,GACX,OAAOgL,GAAI5I,GAAU,IAAJpC,GAAU,EAAG,KAEhC,IAAMuL,GAAQ,CAACC,EAAG,EAAGC,EAAG,EAAGC,EAAG,EAAGC,EAAG,EAAGC,EAAG,EAAGC,EAAG,EAAGC,EAAG,EAAGC,EAAG,EAAGC,EAAG,EAAGC,EAAG,EAAGC,EAAG,GAAIC,EAAG,GAAIhX,EAAG,GAAIiX,EAAG,GAAIC,EAAG,GAAInY,EAAG,GAAI+M,EAAG,GAAIC,EAAG,GAAIoL,EAAG,GAAIxB,EAAG,GAAIzW,EAAG,GAAIE,EAAG,IACrJgY,GAAM,YAAI,oBACVC,GAAK,SAAAtL,GAAC,OAAIqL,GAAQ,GAAJrL,IACduL,GAAK,SAAAvL,GAAC,OAAIqL,IAAS,IAAJrL,IAAa,GAAKqL,GAAQ,GAAJrL,IACrCwL,GAAK,SAAAxL,GAAC,OAAU,IAAJA,IAAa,KAAY,GAAJA,IAyBvC,SAASyL,GAAU3M,GACjB,IAAIzL,EAzBU,SAAAyL,GAAC,OAAI0M,GAAG1M,EAAE3I,IAAMqV,GAAG1M,EAAE4M,IAAMF,GAAG1M,EAAEkB,IAAMwL,GAAG1M,EAAEiB,GAyBjD4L,CAAQ7M,GAAKwM,GAAKC,GAC1B,OAAOzM,EACH,IAAMzL,EAAEyL,EAAE3I,GAAK9C,EAAEyL,EAAE4M,GAAKrY,EAAEyL,EAAEkB,GAJpB,SAACD,EAAG1M,GAAJ,OAAU0M,EAAI,IAAM1M,EAAE0M,GAAK,GAIF6L,CAAM9M,EAAEiB,EAAG1M,QAC5CZ,EAEN,IAAMoZ,GAAS,+GACf,SAASC,GAAS9B,EAAG/W,EAAG8W,GACtB,IAAMhK,EAAI9M,EAAIc,KAAKkF,IAAI8Q,EAAG,EAAIA,GACxB1W,EAAI,SAACH,GAAD,IAAI+K,EAAJ,wDAAS/K,EAAI8W,EAAI,IAAM,GAAvB,OAA8BD,EAAIhK,EAAIhM,KAAK+E,IAAI/E,KAAKkF,IAAIgF,EAAI,EAAG,EAAIA,EAAG,IAAK,IACrF,MAAO,CAAC5K,EAAE,GAAIA,EAAE,GAAIA,EAAE,IAExB,SAAS0Y,GAAS/B,EAAG/W,EAAG6L,GACtB,IAAMzL,EAAI,SAACH,GAAD,IAAI+K,EAAJ,wDAAS/K,EAAI8W,EAAI,IAAM,EAAvB,OAA6BlL,EAAIA,EAAI7L,EAAIc,KAAK+E,IAAI/E,KAAKkF,IAAIgF,EAAG,EAAIA,EAAG,GAAI,IACnF,MAAO,CAAC5K,EAAE,GAAIA,EAAE,GAAIA,EAAE,IAExB,SAAS2Y,GAAShC,EAAGiC,EAAGjM,GACtB,IACIzQ,EADE2c,EAAMJ,GAAS9B,EAAG,EAAG,IAO3B,IALIiC,EAAIjM,EAAI,IAEViM,GADA1c,EAAI,GAAK0c,EAAIjM,GAEbA,GAAKzQ,GAEFA,EAAI,EAAGA,EAAI,EAAGA,IACjB2c,EAAI3c,IAAM,EAAI0c,EAAIjM,EAClBkM,EAAI3c,IAAM0c,EAEZ,OAAOC,EAWT,SAASC,GAAQrN,GACf,IAOIkL,EAAG/W,EAAG2W,EANJzT,EAAI2I,EAAE3I,EADE,IAERuV,EAAI5M,EAAE4M,EAFE,IAGR1L,EAAIlB,EAAEkB,EAHE,IAIRlH,EAAM/E,KAAK+E,IAAI3C,EAAGuV,EAAG1L,GACrB/G,EAAMlF,KAAKkF,IAAI9C,EAAGuV,EAAG1L,GACrB+J,GAAKjR,EAAMG,GAAO,EAQxB,OANIH,IAAQG,IACV2Q,EAAI9Q,EAAMG,EACVhG,EAAI8W,EAAI,GAAMH,GAAK,EAAI9Q,EAAMG,GAAO2Q,GAAK9Q,EAAMG,GAE/C+Q,EAAQ,IADRA,EArBJ,SAAkB7T,EAAGuV,EAAG1L,EAAG4J,EAAG9Q,GAC5B,OAAI3C,IAAM2C,GACC4S,EAAI1L,GAAK4J,GAAM8B,EAAI1L,EAAI,EAAI,GAElC0L,IAAM5S,GACAkH,EAAI7J,GAAKyT,EAAI,GAEfzT,EAAIuV,GAAK9B,EAAI,EAcfwC,CAASjW,EAAGuV,EAAG1L,EAAG4J,EAAG9Q,IACZ,IAER,CAAK,EAAJkR,EAAO/W,GAAK,EAAG8W,GAEzB,SAASsC,GAAMhZ,EAAG0M,EAAGC,EAAGoL,GACtB,OACEtY,MAAMC,QAAQgN,GACV1M,EAAE0M,EAAE,GAAIA,EAAE,GAAIA,EAAE,IAChB1M,EAAE0M,EAAGC,EAAGoL,IACZrN,IAAImM,IAER,SAASoC,GAAQtC,EAAG/W,EAAG8W,GACrB,OAAOsC,GAAMP,GAAU9B,EAAG/W,EAAG8W,GAQ/B,SAASwC,GAAIvC,GACX,OAAQA,EAAI,IAAM,KAAO,IAE3B,SAASwC,GAAS/M,GAChB,IAEIX,EAFE6K,EAAIkC,GAAOY,KAAKhN,GAClBM,EAAI,IAER,GAAK4J,EAAL,CAGIA,EAAE,KAAO7K,IACXiB,EAAI4J,EAAE,GAAKM,IAAKN,EAAE,IAAMO,IAAKP,EAAE,KAEjC,IAAMK,EAAIuC,IAAK5C,EAAE,IACX+C,GAAM/C,EAAE,GAAK,IACbgD,GAAMhD,EAAE,GAAK,IAQnB,MAAO,CACLxT,GAPA2I,EADW,QAAT6K,EAAE,GAtBR,SAAiBK,EAAGiC,EAAGjM,GACrB,OAAOqM,GAAML,GAAUhC,EAAGiC,EAAGjM,GAsBvB4M,CAAQ5C,EAAG0C,EAAIC,GACD,QAAThD,EAAE,GArBf,SAAiBK,EAAG/W,EAAG6L,GACrB,OAAOuN,GAAMN,GAAU/B,EAAG/W,EAAG6L,GAqBvB+N,CAAQ7C,EAAG0C,EAAIC,GAEfL,GAAQtC,EAAG0C,EAAIC,IAGd,GACLjB,EAAG5M,EAAE,GACLkB,EAAGlB,EAAE,GACLiB,EAAGA,IAuBP,IAmMI+M,GAnME/O,GAAM,CACVgB,EAAG,OACHgO,EAAG,QACHC,EAAG,KACHC,EAAG,MACHC,EAAG,KACHC,EAAG,SACHC,EAAG,QACHpC,EAAG,KACHqC,EAAG,KACHC,EAAG,KACHrC,EAAG,KACHhX,EAAG,QACHiX,EAAG,QACHqC,EAAG,KACHC,EAAG,WACHrC,EAAG,KACHsC,EAAG,KACHC,EAAG,KACHC,EAAG,KACHC,EAAG,KACHC,EAAG,QACH7a,EAAG,KACH8a,EAAG,KACHC,EAAG,OACHC,EAAG,KACHC,EAAG,QACHC,EAAG,MAECC,GAAU,CACdC,OAAQ,SACRC,YAAa,SACbC,KAAM,OACNC,UAAW,SACXC,KAAM,SACNC,MAAO,SACPC,OAAQ,SACRC,MAAO,IACPC,aAAc,SACdC,GAAI,KACJC,QAAS,SACTC,KAAM,SACNC,UAAW,SACXC,OAAQ,SACRC,SAAU,SACVC,QAAS,SACTC,IAAK,SACLC,YAAa,SACbC,QAAS,SACTC,QAAS,SACTC,KAAM,OACNC,IAAK,KACLC,MAAO,OACPC,QAAS,SACTC,KAAM,SACNC,KAAM,OACNC,KAAM,SACNC,OAAQ,SACRC,QAAS,SACTC,SAAU,SACVC,OAAQ,SACRC,MAAO,SACPC,IAAK,SACLC,OAAQ,SACRC,OAAQ,SACRC,KAAM,SACNC,MAAO,SACPC,MAAO,SACPC,IAAK,OACLC,OAAQ,SACRC,OAAQ,SACRC,SAAU,OACVC,OAAQ,SACRC,OAAQ,SACRC,SAAU,SACVC,SAAU,SACVC,SAAU,SACVC,SAAU,SACVC,OAAQ,SACRC,QAAS,SACTC,UAAW,SACXC,IAAK,SACLC,OAAQ,SACRC,IAAK,SACLC,IAAK,OACLC,MAAO,SACPC,IAAK,SACLC,QAAS,SACTC,OAAQ,SACRC,QAAS,SACTC,MAAO,SACPC,KAAM,SACNC,MAAO,SACPC,OAAQ,SACRC,UAAW,SACXC,QAAS,SACTC,WAAY,SACZC,IAAK,SACLC,KAAM,SACNC,MAAO,SACPC,UAAW,SACXC,KAAM,SACNC,KAAM,SACNC,KAAM,SACNC,KAAM,SACNC,OAAQ,SACRC,OAAQ,SACRC,OAAQ,SACRC,MAAO,SACPC,MAAO,SACPC,QAAS,SACTC,IAAK,SACLC,KAAM,OACNC,QAAS,SACTC,IAAK,SACLC,OAAQ,SACRC,MAAO,SACPC,WAAY,SACZC,IAAK,KACLC,MAAO,SACPC,OAAQ,SACRC,OAAQ,SACRC,KAAM,SACNC,UAAW,OACXC,IAAK,SACLC,SAAU,SACVC,WAAY,SACZC,QAAS,SACTC,SAAU,SACVC,QAAS,SACTC,WAAY,SACZC,KAAM,KACNC,OAAQ,SACRC,KAAM,SACNC,QAAS,SACTC,MAAO,SACPC,QAAS,SACTC,KAAM,SACNC,UAAW,SACXC,OAAQ,SACRC,MAAO,SACPC,WAAY,SACZC,UAAW,SACXC,QAAS,SACTC,KAAM,SACNC,IAAK,SACLC,KAAM,SACNC,QAAS,SACTC,MAAO,SACPC,YAAa,SACbC,GAAI,SACJC,SAAU,SACVC,MAAO,SACPC,UAAW,SACXC,MAAO,SACPC,UAAW,SACXC,MAAO,SACPC,QAAS,SACTC,MAAO,SACPC,OAAQ,SACRC,MAAO,SACPC,IAAK,SACLC,KAAM,SACNC,KAAM,SACNC,KAAM,SACNC,SAAU,OACVC,OAAQ,SACRC,IAAK,SACLC,IAAK,OACLC,MAAO,SACPC,OAAQ,SACRC,GAAI,SACJC,MAAO,SACPC,IAAK,SACLC,KAAM,SACNC,UAAW,SACXC,GAAI,SACJC,MAAO,UAmBT,SAASC,GAAU/X,GACZqN,MACHA,GAnBJ,WACE,IAGIvd,EAAGkoB,EAAGxZ,EAAGyZ,EAAIC,EAHXC,EAAW,GACXxa,EAAOvN,OAAOuN,KAAK+Q,IACnB0J,EAAQhoB,OAAOuN,KAAKW,IAE1B,IAAKxO,EAAI,EAAGA,EAAI6N,EAAK5N,OAAQD,IAAK,CAEhC,IADAmoB,EAAKC,EAAKva,EAAK7N,GACVkoB,EAAI,EAAGA,EAAII,EAAMroB,OAAQioB,IAC5BxZ,EAAI4Z,EAAMJ,GACVE,EAAKA,EAAGG,QAAQ7Z,EAAGF,GAAIE,IAEzBA,EAAIhH,SAASkX,GAAQuJ,GAAK,IAC1BE,EAASD,GAAM,CAAC1Z,GAAK,GAAK,IAAMA,GAAK,EAAI,IAAU,IAAJA,GAEjD,OAAO2Z,EAKGG,IACFC,YAAc,CAAC,EAAG,EAAG,EAAG,IAEhC,IAAMjY,EAAI+M,GAAMrN,EAAIwY,eACpB,OAAOlY,GAAK,CACV5J,EAAG4J,EAAE,GACL2L,EAAG3L,EAAE,GACLC,EAAGD,EAAE,GACLA,EAAgB,IAAbA,EAAEvQ,OAAeuQ,EAAE,GAAK,KAG/B,IAAMmY,GAAS,uGAgCf,IAAMC,GAAK,SAAArZ,GAAC,OAAIA,GAAK,SAAgB,MAAJA,EAAqC,MAAzB/K,KAAKsN,IAAIvC,EAAG,EAAM,KAAe,MACxExD,GAAO,SAAAwD,GAAC,OAAIA,GAAK,OAAUA,EAAI,MAAQ/K,KAAKsN,KAAKvC,EAAI,MAAS,MAAO,MAY3E,SAASsZ,GAAOtZ,EAAGvP,EAAG8oB,GACpB,GAAIvZ,EAAG,CACL,IAAIM,EAAM+M,GAAQrN,GAClBM,EAAI7P,GAAKwE,KAAK+E,IAAI,EAAG/E,KAAKkF,IAAImG,EAAI7P,GAAK6P,EAAI7P,GAAK8oB,EAAa,IAAN9oB,EAAU,IAAM,IACvE6P,EAAMkN,GAAQlN,GACdN,EAAE3I,EAAIiJ,EAAI,GACVN,EAAE4M,EAAItM,EAAI,GACVN,EAAEkB,EAAIZ,EAAI,IAGd,SAAStK,GAAMgK,EAAGwZ,GAChB,OAAOxZ,EAAIjP,OAAOwX,OAAOiR,GAAS,GAAIxZ,GAAKA,EAE7C,SAASyZ,GAAWC,GAClB,IAAI1Z,EAAI,CAAC3I,EAAG,EAAGuV,EAAG,EAAG1L,EAAG,EAAGD,EAAG,KAY9B,OAXIjN,MAAMC,QAAQylB,GACZA,EAAMhpB,QAAU,IAClBsP,EAAI,CAAC3I,EAAGqiB,EAAM,GAAI9M,EAAG8M,EAAM,GAAIxY,EAAGwY,EAAM,GAAIzY,EAAG,KAC3CyY,EAAMhpB,OAAS,IACjBsP,EAAEiB,EAAImK,GAAIsO,EAAM,OAIpB1Z,EAAIhK,GAAM0jB,EAAO,CAACriB,EAAG,EAAGuV,EAAG,EAAG1L,EAAG,EAAGD,EAAG,KACrCA,EAAImK,GAAIpL,EAAEiB,GAEPjB,EAET,SAAS2Z,GAAchZ,GACrB,MAAsB,MAAlBA,EAAIC,OAAO,GAzEjB,SAAkBD,GAChB,IAEItJ,EAAGuV,EAAG1L,EAFJ2J,EAAIuO,GAAOzL,KAAKhN,GAClBM,EAAI,IAER,GAAK4J,EAAL,CAGA,GAAIA,EAAE,KAAOxT,EAAG,CACd,IAAM2I,GAAK6K,EAAE,GACb5J,EAAI4J,EAAE,GAAKM,GAAInL,GAAKgL,GAAQ,IAAJhL,EAAS,EAAG,KAQtC,OANA3I,GAAKwT,EAAE,GACP+B,GAAK/B,EAAE,GACP3J,GAAK2J,EAAE,GAIA,CACLxT,EAJFA,EAAI,KAAOwT,EAAE,GAAKM,GAAI9T,GAAK2T,GAAI3T,EAAG,EAAG,MAKnCuV,EAJFA,EAAI,KAAO/B,EAAE,GAAKM,GAAIyB,GAAK5B,GAAI4B,EAAG,EAAG,MAKnC1L,EAJFA,EAAI,KAAO2J,EAAE,GAAKM,GAAIjK,GAAK8J,GAAI9J,EAAG,EAAG,MAKnCD,EAAGA,IAqDI2Y,CAASjZ,GAEX+M,GAAS/M,G,IAEZkZ,G,WACJ,WAAYH,GACV,GADiB,oBACbA,aAAiBG,EACnB,OAAOH,EAET,IACI1Z,EADE5C,SAAcsc,EAEP,WAATtc,EACF4C,EAAIyZ,GAAWC,GACG,WAATtc,IACT4C,EA3bN,SAAkBW,GAChB,IACImZ,EADAzb,EAAMsC,EAAIjQ,OAmBd,MAjBe,MAAXiQ,EAAI,KACM,IAARtC,GAAqB,IAARA,EACfyb,EAAM,CACJziB,EAAG,IAAsB,GAAhBkU,GAAM5K,EAAI,IACnBiM,EAAG,IAAsB,GAAhBrB,GAAM5K,EAAI,IACnBO,EAAG,IAAsB,GAAhBqK,GAAM5K,EAAI,IACnBM,EAAW,IAAR5C,EAA4B,GAAhBkN,GAAM5K,EAAI,IAAW,KAErB,IAARtC,GAAqB,IAARA,IACtByb,EAAM,CACJziB,EAAGkU,GAAM5K,EAAI,KAAO,EAAI4K,GAAM5K,EAAI,IAClCiM,EAAGrB,GAAM5K,EAAI,KAAO,EAAI4K,GAAM5K,EAAI,IAClCO,EAAGqK,GAAM5K,EAAI,KAAO,EAAI4K,GAAM5K,EAAI,IAClCM,EAAW,IAAR5C,EAAakN,GAAM5K,EAAI,KAAO,EAAI4K,GAAM5K,EAAI,IAAO,OAIrDmZ,EAuaCC,CAASL,IAAUhB,GAAUgB,IAAUC,GAAcD,IAE3DrnB,KAAK2nB,KAAOha,EACZ3N,KAAK4nB,SAAWja,E,wDAgBhB,OAAO3N,KAAK4nB,QAnFGja,EAmFgB3N,KAAK2nB,QAjFpCha,EAAEiB,EAAI,IAAN,eACYjB,EAAE3I,EADd,aACoB2I,EAAE4M,EADtB,aAC4B5M,EAAEkB,EAD9B,aACoCmK,GAAIrL,EAAEiB,GAD1C,mBAEWjB,EAAE3I,EAFb,aAEmB2I,EAAE4M,EAFrB,aAE2B5M,EAAEkB,EAF7B,WAiF4CvN,EAnFhD,IAAmBqM,I,kCAsFf,OAAO3N,KAAK4nB,OAAStN,GAAUta,KAAK2nB,WAAQrmB,I,kCAG5C,OAAOtB,KAAK4nB,OA/UhB,SAAmBja,GACjB,GAAKA,EAAL,CAGA,IAAMiB,EAAIoM,GAAQrN,GACZkL,EAAIjK,EAAE,GACN9M,EAAImX,GAAIrK,EAAE,IACVgK,EAAIK,GAAIrK,EAAE,IAChB,OAAOjB,EAAEiB,EAAI,IAAN,eACKiK,EADL,aACW/W,EADX,cACkB8W,EADlB,cACyBI,GAAIrL,EAAEiB,GAD/B,mBAEIiK,EAFJ,aAEU/W,EAFV,cAEiB8W,EAFjB,OAuUgBiP,CAAU7nB,KAAK2nB,WAAQrmB,I,0BAE1CwmB,EAAOC,GACT,GAAID,EAAO,CACT,IAEIE,EAFEC,EAAKjoB,KAAK+a,IACVmN,EAAKJ,EAAM/M,IAEX/J,EAAI+W,IAAWC,EAAK,GAAMD,EAC1BjN,EAAI,EAAI9J,EAAI,EACZpC,EAAIqZ,EAAGrZ,EAAIsZ,EAAGtZ,EACduZ,IAAOrN,EAAIlM,KAAO,EAAIkM,GAAKA,EAAIlM,IAAM,EAAIkM,EAAIlM,IAAM,GAAK,EAC9DoZ,EAAK,EAAIG,EACTF,EAAGjjB,EAAI,IAAOmjB,EAAKF,EAAGjjB,EAAIgjB,EAAKE,EAAGljB,EAAI,GACtCijB,EAAG1N,EAAI,IAAO4N,EAAKF,EAAG1N,EAAIyN,EAAKE,EAAG3N,EAAI,GACtC0N,EAAGpZ,EAAI,IAAOsZ,EAAKF,EAAGpZ,EAAImZ,EAAKE,EAAGrZ,EAAI,GACtCoZ,EAAGrZ,EAAIoC,EAAIiX,EAAGrZ,GAAK,EAAIoC,GAAKkX,EAAGtZ,EAC/B5O,KAAK+a,IAAMkN,EAEb,OAAOjoB,O,kCAEG8nB,EAAO1R,GAIjB,OAHI0R,IACF9nB,KAAK2nB,KAtGX,SAAqBS,EAAMC,EAAMjS,GAC/B,IAAMpR,EAAImF,GAAK6O,GAAIoP,EAAKpjB,IAClBuV,EAAIpQ,GAAK6O,GAAIoP,EAAK7N,IAClB1L,EAAI1E,GAAK6O,GAAIoP,EAAKvZ,IACxB,MAAO,CACL7J,EAAG+T,GAAIiO,GAAGhiB,EAAIoR,GAAKjM,GAAK6O,GAAIqP,EAAKrjB,IAAMA,KACvCuV,EAAGxB,GAAIiO,GAAGzM,EAAInE,GAAKjM,GAAK6O,GAAIqP,EAAK9N,IAAMA,KACvC1L,EAAGkK,GAAIiO,GAAGnY,EAAIuH,GAAKjM,GAAK6O,GAAIqP,EAAKxZ,IAAMA,KACvCD,EAAGwZ,EAAKxZ,EAAIwH,GAAKiS,EAAKzZ,EAAIwZ,EAAKxZ,IA8FjB0Z,CAAYtoB,KAAK2nB,KAAMG,EAAMH,KAAMvR,IAE1CpW,O,8BAGP,OAAO,IAAIwnB,EAAMxnB,KAAK+a,O,4BAElBnM,GAEJ,OADA5O,KAAK2nB,KAAK/Y,EAAImK,GAAInK,GACX5O,O,8BAEDknB,GAGN,OAFYlnB,KAAK2nB,KACb/Y,GAAK,EAAIsY,EACNlnB,O,kCAGP,IAAM+a,EAAM/a,KAAK2nB,KACXY,EAAMxY,GAAc,GAARgL,EAAI/V,EAAkB,IAAR+V,EAAIR,EAAmB,IAARQ,EAAIlM,GAEnD,OADAkM,EAAI/V,EAAI+V,EAAIR,EAAIQ,EAAIlM,EAAI0Z,EACjBvoB,O,8BAEDknB,GAGN,OAFYlnB,KAAK2nB,KACb/Y,GAAK,EAAIsY,EACNlnB,O,+BAGP,IAAM2N,EAAI3N,KAAK2nB,KAIf,OAHAha,EAAE3I,EAAI,IAAM2I,EAAE3I,EACd2I,EAAE4M,EAAI,IAAM5M,EAAE4M,EACd5M,EAAEkB,EAAI,IAAMlB,EAAEkB,EACP7O,O,8BAEDknB,GAEN,OADAD,GAAOjnB,KAAK2nB,KAAM,EAAGT,GACdlnB,O,6BAEFknB,GAEL,OADAD,GAAOjnB,KAAK2nB,KAAM,GAAIT,GACflnB,O,+BAEAknB,GAEP,OADAD,GAAOjnB,KAAK2nB,KAAM,EAAGT,GACdlnB,O,iCAEEknB,GAET,OADAD,GAAOjnB,KAAK2nB,KAAM,GAAIT,GACflnB,O,6BAEFwoB,GAEL,OAjaJ,SAAgB7a,EAAG6a,GACjB,IAAI3P,EAAImC,GAAQrN,GAChBkL,EAAE,GAAKuC,GAAIvC,EAAE,GAAK2P,GAClB3P,EAAIsC,GAAQtC,GACZlL,EAAE3I,EAAI6T,EAAE,GACRlL,EAAE4M,EAAI1B,EAAE,GACRlL,EAAEkB,EAAIgK,EAAE,GA0ZN4P,CAAOzoB,KAAK2nB,KAAMa,GACXxoB,O,4BA7FP,OAAOA,KAAK4nB,S,0BAGZ,IAAIja,EAAIhK,GAAM3D,KAAK2nB,MAInB,OAHIha,IACFA,EAAEiB,EAAIoK,GAAIrL,EAAEiB,IAEPjB,G,aAEDjL,GACN1C,KAAK2nB,KAAOP,GAAW1kB,O,KAsF3B,SAASgmB,GAAUrB,GACjB,OAAO,IAAIG,GAAMH,GAGnB,SAASsB,GAAoBjpB,GAC3B,GAAIA,GAA0B,kBAAVA,EAAoB,CACtC,IAAMqL,EAAOrL,EAAMgE,WACnB,MAAgB,2BAATqH,GAA8C,4BAATA,EAE9C,OAAO,EAET,SAAS+c,GAAMpoB,GACb,OAAOipB,GAAoBjpB,GAASA,EAAQgpB,GAAUhpB,GAExD,SAASkpB,GAAclpB,GACrB,OAAOipB,GAAoBjpB,GACvBA,EACAgpB,GAAUhpB,GAAOmpB,SAAS,IAAKC,OAAO,IAAKxO,YAGjD,IAAMnX,GAAYzE,OAAOc,OAAO,MAC1BupB,GAAcrqB,OAAOc,OAAO,MAClC,SAASwpB,GAAWC,EAAMrqB,GACxB,IAAKA,EACH,OAAOqqB,EAGT,IADA,IAAMhd,EAAOrN,EAAIoP,MAAM,KACd5P,EAAI,EAAG2D,EAAIkK,EAAK5N,OAAQD,EAAI2D,IAAK3D,EAAG,CAC3C,IAAM0O,EAAIb,EAAK7N,GACf6qB,EAAOA,EAAKnc,KAAOmc,EAAKnc,GAAKpO,OAAOc,OAAO,OAE7C,OAAOypB,EAET,SAASrV,GAAIsV,EAAMC,EAAOC,GACxB,MAAqB,kBAAVD,EACF9b,EAAM2b,GAAWE,EAAMC,GAAQC,GAEjC/b,EAAM2b,GAAWE,EAAM,IAAKC,G,IAqFjCE,GAAW,I,WAlFb,WAAYC,GAAc,oBACxBtpB,KAAKupB,eAAYjoB,EACjBtB,KAAKwpB,gBAAkB,kBACvBxpB,KAAKypB,YAAc,kBACnBzpB,KAAK8nB,MAAQ,OACb9nB,KAAK0pB,SAAW,GAChB1pB,KAAK2pB,iBAAmB,SAACC,GAAD,OAAaA,EAAQC,MAAMC,SAASC,uBAC5D/pB,KAAKgqB,SAAW,GAChBhqB,KAAKiqB,OAAS,CACZ,YACA,WACA,QACA,aACA,aAEFjqB,KAAKkqB,KAAO,CACVC,OAAQ,qDACRrb,KAAM,GACNsb,MAAO,SACPC,WAAY,IACZtC,OAAQ,MAEV/nB,KAAKsqB,MAAQ,GACbtqB,KAAKuqB,qBAAuB,SAACC,EAAKtd,GAAN,OAAkB0b,GAAc1b,EAAQsc,kBACpExpB,KAAKyqB,iBAAmB,SAACD,EAAKtd,GAAN,OAAkB0b,GAAc1b,EAAQuc,cAChEzpB,KAAK0qB,WAAa,SAACF,EAAKtd,GAAN,OAAkB0b,GAAc1b,EAAQ4a,QAC1D9nB,KAAK2qB,UAAY,IACjB3qB,KAAK4qB,YAAc,CACjBC,KAAM,UACNC,WAAW,EACXC,kBAAkB,GAEpB/qB,KAAKgrB,qBAAsB,EAC3BhrB,KAAKirB,QAAU,KACfjrB,KAAKkrB,QAAU,KACflrB,KAAKmrB,SAAU,EACfnrB,KAAKorB,QAAU,GACfprB,KAAKqrB,YAAa,EAClBrrB,KAAKsrB,WAAQhqB,EACbtB,KAAKurB,OAAS,GACdvrB,KAAKwrB,UAAW,EAChBxrB,KAAKyrB,yBAA0B,EAC/BzrB,KAAK0rB,SAASpC,G,gDAEZH,EAAOC,GACT,OAAOxV,GAAI5T,KAAMmpB,EAAOC,K,0BAEtBD,GACF,OAAOH,GAAWhpB,KAAMmpB,K,+BAEjBA,EAAOC,GACd,OAAOxV,GAAImV,GAAaI,EAAOC,K,+BAExBD,EAAOC,GACd,OAAOxV,GAAIzQ,GAAWgmB,EAAOC,K,4BAEzBD,EAAOwC,EAAMC,EAAaC,GAAY,MACpCC,EAAc9C,GAAWhpB,KAAMmpB,GAC/B4C,EAAoB/C,GAAWhpB,KAAM4rB,GACrCI,EAAc,IAAML,EAC1BjtB,OAAOutB,iBAAiBH,GAAxB,KAAAptB,OAAA,IAAAA,CAAA,EACGstB,EAAc,CACbtsB,MAAOosB,EAAYH,GACnBltB,UAAU,IAHdC,OAAA,IAAAA,CAAA,EAKGitB,EAAO,CACNptB,YAAY,EACZ+L,IAFM,WAGJ,IAAM4hB,EAAQlsB,KAAKgsB,GACb9tB,EAAS6tB,EAAkBF,GACjC,OAAI7gB,EAASkhB,GACJxtB,OAAOwX,OAAO,GAAIhY,EAAQguB,GAE5B5gB,EAAe4gB,EAAOhuB,IAE/B0V,IAVM,SAUFlU,GACFM,KAAKgsB,GAAetsB,KAhB1B,Q,KAsBW,CAAa,CAC1BysB,YAAa,SAACR,GAAD,OAAWA,EAAKS,WAAW,OACxCC,WAAY,SAACV,GAAD,MAAmB,WAATA,GACtBrB,MAAO,CACLgC,UAAW,eAEb1B,YAAa,CACXuB,aAAa,EACbE,YAAY,KAahB,SAASE,GAAa/B,EAAKrjB,EAAMqlB,EAAIC,EAASC,GAC5C,IAAIC,EAAYxlB,EAAKulB,GAQrB,OAPKC,IACHA,EAAYxlB,EAAKulB,GAAUlC,EAAIoC,YAAYF,GAAQG,MACnDL,EAAGnnB,KAAKqnB,IAENC,EAAYF,IACdA,EAAUE,GAELF,EAET,SAASK,GAAatC,EAAKN,EAAM6C,EAAeC,GAE9C,IAAI7lB,GADJ6lB,EAAQA,GAAS,IACA7lB,KAAO6lB,EAAM7lB,MAAQ,GAClCqlB,EAAKQ,EAAMC,eAAiBD,EAAMC,gBAAkB,GACpDD,EAAM9C,OAASA,IACjB/iB,EAAO6lB,EAAM7lB,KAAO,GACpBqlB,EAAKQ,EAAMC,eAAiB,GAC5BD,EAAM9C,KAAOA,GAEfM,EAAI0C,OACJ1C,EAAIN,KAAOA,EACX,IAEI9rB,EAAGkoB,EAAG6G,EAAMC,EAAOC,EAFnBZ,EAAU,EACRpgB,EAAO0gB,EAAc1uB,OAE3B,IAAKD,EAAI,EAAGA,EAAIiO,EAAMjO,IAEpB,QAAckD,KADd8rB,EAAQL,EAAc3uB,KACe,OAAVgvB,IAAqC,IAAnBxrB,EAAQwrB,GACnDX,EAAUF,GAAa/B,EAAKrjB,EAAMqlB,EAAIC,EAASW,QAC1C,GAAIxrB,EAAQwrB,GACjB,IAAK9G,EAAI,EAAG6G,EAAOC,EAAM/uB,OAAQioB,EAAI6G,EAAM7G,SAErBhlB,KADpB+rB,EAAcD,EAAM9G,KAC6B,OAAhB+G,GAAyBzrB,EAAQyrB,KAChEZ,EAAUF,GAAa/B,EAAKrjB,EAAMqlB,EAAIC,EAASY,IAKvD7C,EAAI8C,UACJ,IAAMC,EAAQf,EAAGnuB,OAAS,EAC1B,GAAIkvB,EAAQR,EAAc1uB,OAAQ,CAChC,IAAKD,EAAI,EAAGA,EAAImvB,EAAOnvB,WACd+I,EAAKqlB,EAAGpuB,IAEjBouB,EAAGtkB,OAAO,EAAGqlB,GAEf,OAAOd,EAET,SAASe,GAAY3D,EAAO4D,EAAOZ,GACjC,IAAMlD,EAAmBE,EAAM6D,wBACzBC,EAAsB,IAAVd,EAAcjqB,KAAK+E,IAAIklB,EAAQ,EAAG,IAAO,EAC3D,OAAOjqB,KAAKmN,OAAO0d,EAAQE,GAAahE,GAAoBA,EAAmBgE,EAEjF,SAASC,GAAYC,EAAQrD,IAC3BA,EAAMA,GAAOqD,EAAOC,WAAW,OAC3BZ,OACJ1C,EAAIuD,iBACJvD,EAAIwD,UAAU,EAAG,EAAGH,EAAOhB,MAAOgB,EAAOI,QACzCzD,EAAI8C,UAEN,SAASY,GAAU1D,EAAKtd,EAASU,EAAGC,GAClCsgB,GAAgB3D,EAAKtd,EAASU,EAAGC,EAAG,MAEtC,SAASsgB,GAAgB3D,EAAKtd,EAASU,EAAGC,EAAGiN,GAC3C,IAAI/P,EAAMqjB,EAASC,EAASvf,EAAMwf,EAAczB,EAC1CzC,EAAQld,EAAQqhB,WAChBC,EAAWthB,EAAQshB,SACnBC,EAASvhB,EAAQuhB,OACnBC,GAAOF,GAAY,GAAKlf,EAC5B,GAAI8a,GAA0B,kBAAVA,IAEL,+BADbrf,EAAOqf,EAAM1mB,aACwC,+BAATqH,GAM1C,OALAyf,EAAI0C,OACJ1C,EAAImE,UAAU/gB,EAAGC,GACjB2c,EAAI/B,OAAOiG,GACXlE,EAAIoE,UAAUxE,GAAQA,EAAMyC,MAAQ,GAAIzC,EAAM6D,OAAS,EAAG7D,EAAMyC,MAAOzC,EAAM6D,aAC7EzD,EAAI8C,UAIR,KAAIhd,MAAMme,IAAWA,GAAU,GAA/B,CAIA,OADAjE,EAAIqE,YACIzE,GACR,QACMtP,EACF0P,EAAIsE,QAAQlhB,EAAGC,EAAGiN,EAAI,EAAG2T,EAAQ,EAAG,EAAGvf,GAEvCsb,EAAIuE,IAAInhB,EAAGC,EAAG4gB,EAAQ,EAAGvf,GAE3Bsb,EAAIwE,YACJ,MACF,IAAK,WACHxE,EAAIyE,OAAOrhB,EAAIhL,KAAK0T,IAAIoY,GAAOD,EAAQ5gB,EAAIjL,KAAK2U,IAAImX,GAAOD,GAC3DC,GAAOjf,EACP+a,EAAI0E,OAAOthB,EAAIhL,KAAK0T,IAAIoY,GAAOD,EAAQ5gB,EAAIjL,KAAK2U,IAAImX,GAAOD,GAC3DC,GAAOjf,EACP+a,EAAI0E,OAAOthB,EAAIhL,KAAK0T,IAAIoY,GAAOD,EAAQ5gB,EAAIjL,KAAK2U,IAAImX,GAAOD,GAC3DjE,EAAIwE,YACJ,MACF,IAAK,cAEHlgB,EAAO2f,GADPH,EAAwB,KAATG,GAEfL,EAAUxrB,KAAK2U,IAAImX,EAAMlf,GAAcV,EACvCuf,EAAUzrB,KAAK0T,IAAIoY,EAAMlf,GAAcV,EACvC0b,EAAIuE,IAAInhB,EAAIwgB,EAASvgB,EAAIwgB,EAASC,EAAcI,EAAMzf,EAAIyf,EAAMnf,GAChEib,EAAIuE,IAAInhB,EAAIygB,EAASxgB,EAAIugB,EAASE,EAAcI,EAAMnf,EAASmf,GAC/DlE,EAAIuE,IAAInhB,EAAIwgB,EAASvgB,EAAIwgB,EAASC,EAAcI,EAAKA,EAAMnf,GAC3Dib,EAAIuE,IAAInhB,EAAIygB,EAASxgB,EAAIugB,EAASE,EAAcI,EAAMnf,EAASmf,EAAMzf,GACrEub,EAAIwE,YACJ,MACF,IAAK,OACH,IAAKR,EAAU,CACb1f,EAAOlM,KAAKusB,QAAUV,EACtB5B,EAAQ/R,EAAIA,EAAI,EAAIhM,EACpB0b,EAAI4E,KAAKxhB,EAAIif,EAAOhf,EAAIiB,EAAM,EAAI+d,EAAO,EAAI/d,GAC7C,MAEF4f,GAAOlf,EACT,IAAK,UACH4e,EAAUxrB,KAAK2U,IAAImX,GAAOD,EAC1BJ,EAAUzrB,KAAK0T,IAAIoY,GAAOD,EAC1BjE,EAAIyE,OAAOrhB,EAAIwgB,EAASvgB,EAAIwgB,GAC5B7D,EAAI0E,OAAOthB,EAAIygB,EAASxgB,EAAIugB,GAC5B5D,EAAI0E,OAAOthB,EAAIwgB,EAASvgB,EAAIwgB,GAC5B7D,EAAI0E,OAAOthB,EAAIygB,EAASxgB,EAAIugB,GAC5B5D,EAAIwE,YACJ,MACF,IAAK,WACHN,GAAOlf,EACT,IAAK,QACH4e,EAAUxrB,KAAK2U,IAAImX,GAAOD,EAC1BJ,EAAUzrB,KAAK0T,IAAIoY,GAAOD,EAC1BjE,EAAIyE,OAAOrhB,EAAIwgB,EAASvgB,EAAIwgB,GAC5B7D,EAAI0E,OAAOthB,EAAIwgB,EAASvgB,EAAIwgB,GAC5B7D,EAAIyE,OAAOrhB,EAAIygB,EAASxgB,EAAIugB,GAC5B5D,EAAI0E,OAAOthB,EAAIygB,EAASxgB,EAAIugB,GAC5B,MACF,IAAK,OACHA,EAAUxrB,KAAK2U,IAAImX,GAAOD,EAC1BJ,EAAUzrB,KAAK0T,IAAIoY,GAAOD,EAC1BjE,EAAIyE,OAAOrhB,EAAIwgB,EAASvgB,EAAIwgB,GAC5B7D,EAAI0E,OAAOthB,EAAIwgB,EAASvgB,EAAIwgB,GAC5B7D,EAAIyE,OAAOrhB,EAAIygB,EAASxgB,EAAIugB,GAC5B5D,EAAI0E,OAAOthB,EAAIygB,EAASxgB,EAAIugB,GAC5BM,GAAOlf,EACP4e,EAAUxrB,KAAK2U,IAAImX,GAAOD,EAC1BJ,EAAUzrB,KAAK0T,IAAIoY,GAAOD,EAC1BjE,EAAIyE,OAAOrhB,EAAIwgB,EAASvgB,EAAIwgB,GAC5B7D,EAAI0E,OAAOthB,EAAIwgB,EAASvgB,EAAIwgB,GAC5B7D,EAAIyE,OAAOrhB,EAAIygB,EAASxgB,EAAIugB,GAC5B5D,EAAI0E,OAAOthB,EAAIygB,EAASxgB,EAAIugB,GAC5B,MACF,IAAK,OACHA,EAAUtT,EAAIA,EAAI,EAAIlY,KAAK2U,IAAImX,GAAOD,EACtCJ,EAAUzrB,KAAK0T,IAAIoY,GAAOD,EAC1BjE,EAAIyE,OAAOrhB,EAAIwgB,EAASvgB,EAAIwgB,GAC5B7D,EAAI0E,OAAOthB,EAAIwgB,EAASvgB,EAAIwgB,GAC5B,MACF,IAAK,OACH7D,EAAIyE,OAAOrhB,EAAGC,GACd2c,EAAI0E,OAAOthB,EAAIhL,KAAK2U,IAAImX,GAAOD,EAAQ5gB,EAAIjL,KAAK0T,IAAIoY,GAAOD,GAG7DjE,EAAI6E,OACAniB,EAAQoiB,YAAc,GACxB9E,EAAI+E,UAGR,SAASC,GAAeC,EAAOC,EAAMC,GAEnC,OADAA,EAASA,GAAU,IACXD,GAASD,GAASA,EAAM7hB,EAAI8hB,EAAKE,KAAOD,GAAUF,EAAM7hB,EAAI8hB,EAAKG,MAAQF,GACjFF,EAAM5hB,EAAI6hB,EAAKI,IAAMH,GAAUF,EAAM5hB,EAAI6hB,EAAKK,OAASJ,EAEzD,SAASK,GAASxF,EAAKkF,GACrBlF,EAAI0C,OACJ1C,EAAIqE,YACJrE,EAAI4E,KAAKM,EAAKE,KAAMF,EAAKI,IAAKJ,EAAKG,MAAQH,EAAKE,KAAMF,EAAKK,OAASL,EAAKI,KACzEtF,EAAIyF,OAEN,SAASC,GAAW1F,GAClBA,EAAI8C,UAEN,SAAS6C,GAAe3F,EAAK4F,EAAUlyB,EAAQmyB,EAAMxF,GACnD,IAAKuF,EACH,OAAO5F,EAAI0E,OAAOhxB,EAAO0P,EAAG1P,EAAO2P,GAErC,GAAa,WAATgd,EAAmB,CACrB,IAAMyF,GAAYF,EAASxiB,EAAI1P,EAAO0P,GAAK,EAC3C4c,EAAI0E,OAAOoB,EAAUF,EAASviB,GAC9B2c,EAAI0E,OAAOoB,EAAUpyB,EAAO2P,OACV,UAATgd,MAAuBwF,EAChC7F,EAAI0E,OAAOkB,EAASxiB,EAAG1P,EAAO2P,GAE9B2c,EAAI0E,OAAOhxB,EAAO0P,EAAGwiB,EAASviB,GAEhC2c,EAAI0E,OAAOhxB,EAAO0P,EAAG1P,EAAO2P,GAE9B,SAAS0iB,GAAe/F,EAAK4F,EAAUlyB,EAAQmyB,GAC7C,IAAKD,EACH,OAAO5F,EAAI0E,OAAOhxB,EAAO0P,EAAG1P,EAAO2P,GAErC2c,EAAIgG,cACFH,EAAOD,EAASK,KAAOL,EAASM,KAChCL,EAAOD,EAASO,KAAOP,EAASQ,KAChCP,EAAOnyB,EAAOwyB,KAAOxyB,EAAOuyB,KAC5BJ,EAAOnyB,EAAO0yB,KAAO1yB,EAAOyyB,KAC5BzyB,EAAO0P,EACP1P,EAAO2P,GAEX,SAASgjB,GAAWrG,EAAKsG,EAAMljB,EAAGC,EAAGqc,GAAiB,IAGhD9rB,EAAG2yB,EAHkCC,EAAW,uDAAJ,GAC1CC,EAAQrvB,EAAQkvB,GAAQA,EAAO,CAACA,GAChCvB,EAASyB,EAAKE,YAAc,GAA0B,KAArBF,EAAKG,YAK5C,IAHA3G,EAAI0C,OACJ1C,EAAIN,KAAOA,EAAKwC,OAChB0E,GAAc5G,EAAKwG,GACd5yB,EAAI,EAAGA,EAAI6yB,EAAM5yB,SAAUD,EAC9B2yB,EAAOE,EAAM7yB,GACTmxB,IACEyB,EAAKG,cACP3G,EAAI6G,YAAcL,EAAKG,aAEpBrmB,EAAckmB,EAAKE,eACtB1G,EAAI8G,UAAYN,EAAKE,aAEvB1G,EAAI+G,WAAWR,EAAMnjB,EAAGC,EAAGmjB,EAAKQ,WAElChH,EAAIiH,SAASV,EAAMnjB,EAAGC,EAAGmjB,EAAKQ,UAC9BE,GAAalH,EAAK5c,EAAGC,EAAGkjB,EAAMC,GAC9BnjB,GAAKqc,EAAKG,WAEZG,EAAI8C,UAEN,SAAS8D,GAAc5G,EAAKwG,GACtBA,EAAKW,aACPnH,EAAImE,UAAUqC,EAAKW,YAAY,GAAIX,EAAKW,YAAY,IAEjD7mB,EAAckmB,EAAKxC,WACtBhE,EAAI/B,OAAOuI,EAAKxC,UAEdwC,EAAKlJ,QACP0C,EAAIoH,UAAYZ,EAAKlJ,OAEnBkJ,EAAKa,YACPrH,EAAIqH,UAAYb,EAAKa,WAEnBb,EAAKc,eACPtH,EAAIsH,aAAed,EAAKc,cAG5B,SAASJ,GAAalH,EAAK5c,EAAGC,EAAGkjB,EAAMC,GACrC,GAAIA,EAAKe,eAAiBf,EAAKgB,UAAW,CACxC,IAAMC,EAAUzH,EAAIoC,YAAYmE,GAC1BnB,EAAOhiB,EAAIqkB,EAAQC,sBACnBrC,EAAQjiB,EAAIqkB,EAAQE,uBACpBrC,EAAMjiB,EAAIokB,EAAQG,wBAClBrC,EAASliB,EAAIokB,EAAQI,yBACrBC,EAActB,EAAKe,eAAiBjC,EAAMC,GAAU,EAAIA,EAC9DvF,EAAI6G,YAAc7G,EAAIoH,UACtBpH,EAAIqE,YACJrE,EAAI8G,UAAYN,EAAKuB,iBAAmB,EACxC/H,EAAIyE,OAAOW,EAAM0C,GACjB9H,EAAI0E,OAAOW,EAAOyC,GAClB9H,EAAI+E,UAGR,SAASiD,GAAmBhI,EAAK4E,GAAM,IAC9BxhB,EAAsBwhB,EAAtBxhB,EAAGC,EAAmBuhB,EAAnBvhB,EAAGiN,EAAgBsU,EAAhBtU,EAAGjC,EAAauW,EAAbvW,EAAG4V,EAAUW,EAAVX,OACnBjE,EAAIuE,IAAInhB,EAAI6gB,EAAOgE,QAAS5kB,EAAI4gB,EAAOgE,QAAShE,EAAOgE,SAAUljB,EAASN,GAAI,GAC9Eub,EAAI0E,OAAOthB,EAAGC,EAAIgL,EAAI4V,EAAOiE,YAC7BlI,EAAIuE,IAAInhB,EAAI6gB,EAAOiE,WAAY7kB,EAAIgL,EAAI4V,EAAOiE,WAAYjE,EAAOiE,WAAYzjB,EAAIM,GAAS,GAC1Fib,EAAI0E,OAAOthB,EAAIkN,EAAI2T,EAAOkE,YAAa9kB,EAAIgL,GAC3C2R,EAAIuE,IAAInhB,EAAIkN,EAAI2T,EAAOkE,YAAa9kB,EAAIgL,EAAI4V,EAAOkE,YAAalE,EAAOkE,YAAapjB,EAAS,GAAG,GAChGib,EAAI0E,OAAOthB,EAAIkN,EAAGjN,EAAI4gB,EAAOmE,UAC7BpI,EAAIuE,IAAInhB,EAAIkN,EAAI2T,EAAOmE,SAAU/kB,EAAI4gB,EAAOmE,SAAUnE,EAAOmE,SAAU,GAAIrjB,GAAS,GACpFib,EAAI0E,OAAOthB,EAAI6gB,EAAOgE,QAAS5kB,GAGjC,IAAMglB,GAAc,IAAIC,OAAO,wCACzBC,GAAa,IAAID,OAAO,yEAC9B,SAASE,GAAatzB,EAAOoP,GAC3B,IAAMmkB,GAAW,GAAKvzB,GAAOwzB,MAAML,IACnC,IAAKI,GAA0B,WAAfA,EAAQ,GACtB,OAAc,IAAPnkB,EAGT,OADApP,GAASuzB,EAAQ,GACTA,EAAQ,IAChB,IAAK,KACH,OAAOvzB,EACT,IAAK,IACHA,GAAS,IAGX,OAAOoP,EAAOpP,EAGhB,SAASyzB,GAAkBzzB,EAAOvB,GAChC,IADuC,EACjCspB,EAAM,GACN2L,EAAWpoB,EAAS7M,GACpB8N,EAAOmnB,EAAW10B,OAAOuN,KAAK9N,GAASA,EACvCk1B,EAAOroB,EAAStL,GAClB0zB,EACE,SAAAE,GAAI,OAAIhoB,EAAe5L,EAAM4zB,GAAO5zB,EAAMvB,EAAMm1B,MAChD,SAAAA,GAAI,OAAI5zB,EAAM4zB,IAChB,kBAAM5zB,GAR6B,cASpBuM,GAToB,IASvC,2BAAyB,KAAdqnB,EAAc,QACvB7L,EAAI6L,IAAqBD,EAAKC,IAXF,GACS,8BAYvC,OAAO7L,EAET,SAAS8L,GAAO7zB,GACd,OAAOyzB,GAAkBzzB,EAAO,CAACowB,IAAK,IAAKD,MAAO,IAAKE,OAAQ,IAAKH,KAAM,MAE5E,SAAS4D,GAAc9zB,GACrB,OAAOyzB,GAAkBzzB,EAAO,CAAC,UAAW,WAAY,aAAc,gBAExE,SAAS+zB,GAAU/zB,GACjB,IAAMgD,EAAM6wB,GAAO7zB,GAGnB,OAFAgD,EAAImqB,MAAQnqB,EAAIktB,KAAOltB,EAAImtB,MAC3BntB,EAAIurB,OAASvrB,EAAIotB,IAAMptB,EAAIqtB,OACpBrtB,EAET,SAASgxB,GAAOxmB,EAASymB,GACvBzmB,EAAUA,GAAW,GACrBymB,EAAWA,GAAYtK,GAASa,KAChC,IAAIpb,EAAOxD,EAAe4B,EAAQ4B,KAAM6kB,EAAS7kB,MAC7B,kBAATA,IACTA,EAAOhJ,SAASgJ,EAAM,KAExB,IAAIsb,EAAQ9e,EAAe4B,EAAQkd,MAAOuJ,EAASvJ,OAC/CA,KAAW,GAAKA,GAAO8I,MAAMH,MAC/Ba,QAAQC,KAAK,kCAAoCzJ,EAAQ,KACzDA,EAAQ,IAEV,IAAMF,EAAO,CACXC,OAAQ7e,EAAe4B,EAAQid,OAAQwJ,EAASxJ,QAChDE,WAAY2I,GAAa1nB,EAAe4B,EAAQmd,WAAYsJ,EAAStJ,YAAavb,GAClFA,OACAsb,QACArC,OAAQzc,EAAe4B,EAAQ6a,OAAQ4L,EAAS5L,QAChD2E,OAAQ,IAGV,OADAxC,EAAKwC,OAjWP,SAAsBxC,GACpB,OAAKA,GAAQpf,EAAcof,EAAKpb,OAAShE,EAAcof,EAAKC,QACnD,MAEDD,EAAKE,MAAQF,EAAKE,MAAQ,IAAM,KACrCF,EAAKnC,OAASmC,EAAKnC,OAAS,IAAM,IACnCmC,EAAKpb,KAAO,MACZob,EAAKC,OA0VO2J,CAAa5J,GACpBA,EAET,SAAS3pB,GAAQwzB,EAAQnK,EAASnd,EAAO7L,GACvC,IACIxC,EAAGiO,EAAM3M,EADTs0B,GAAY,EAEhB,IAAK51B,EAAI,EAAGiO,EAAO0nB,EAAO11B,OAAQD,EAAIiO,IAAQjO,EAE5C,QAAckD,KADd5B,EAAQq0B,EAAO31B,WAICkD,IAAZsoB,GAA0C,oBAAVlqB,IAClCA,EAAQA,EAAMkqB,GACdoK,GAAY,QAEA1yB,IAAVmL,GAAuB7K,EAAQlC,KACjCA,EAAQA,EAAM+M,EAAQ/M,EAAMrB,QAC5B21B,GAAY,QAEA1yB,IAAV5B,GAIF,OAHIkB,IAASozB,IACXpzB,EAAKozB,WAAY,GAEZt0B,EAab,SAASu0B,GAAcC,EAAetK,GACpC,OAAOlrB,OAAOwX,OAAOxX,OAAOc,OAAO00B,GAAgBtK,GAGrD,SAASuK,GAAgBC,GAAqF,MAA7EC,EAA6E,uDAAlE,CAAC,IAAKC,EAA4D,uDAA/CF,EAAQT,EAAuC,uCAA7BY,EAA6B,uDAAjB,kBAAMH,EAAO,IACnG3lB,EAAQklB,KACXA,EAAWa,GAAS,YAAaJ,IAEnC,IAAMpH,GAAK,mBACRvrB,OAAOgzB,YAAc,UADb,4BAEG,GAFH,wBAGAL,GAHA,4BAIIE,GAJJ,0BAKEX,GALF,2BAMGY,GANH,0BAOC,SAACpL,GAAD,OAAWgL,GAAgB,CAAChL,GAAF,mBAAYiL,IAASC,EAAUC,EAAYX,MAPtE,GASX,OAAO,IAAIe,MAAM1H,EAAO,CACtB2H,eADsB,SACPz2B,EAAQo1B,GAIrB,cAHOp1B,EAAOo1B,UACPp1B,EAAO02B,aACPR,EAAO,GAAGd,IACV,GAEThpB,IAPsB,SAOlBpM,EAAQo1B,GACV,OAAOuB,GAAQ32B,EAAQo1B,GACrB,kBAAMwB,GAAqBxB,EAAMe,EAAUD,EAAQl2B,OAEvDwM,yBAXsB,SAWGxM,EAAQo1B,GAC/B,OAAOrzB,QAAQyK,yBAAyBxM,EAAO62B,QAAQ,GAAIzB,IAE7DlqB,eAdsB,WAepB,OAAOnJ,QAAQmJ,eAAegrB,EAAO,KAEvCplB,IAjBsB,SAiBlB9Q,EAAQo1B,GACV,OAAO0B,GAAqB92B,GAAQ+2B,SAAS3B,IAE/C4B,QApBsB,SAoBdh3B,GACN,OAAO82B,GAAqB92B,IAE9B0V,IAvBsB,SAuBlB1V,EAAQo1B,EAAM5zB,GAChB,IAAMy1B,EAAUj3B,EAAOk3B,WAAal3B,EAAOk3B,SAAWb,KAGtD,OAFAr2B,EAAOo1B,GAAQ6B,EAAQ7B,GAAQ5zB,SACxBxB,EAAO02B,OACP,KAIb,SAASS,GAAeC,EAAO1L,EAAS2L,EAAUC,GAChD,IAAMxI,EAAQ,CACZyI,YAAY,EACZC,OAAQJ,EACRK,SAAU/L,EACVgM,UAAWL,EACXM,OAAQ,IAAIhiB,IACZyV,aAAcA,GAAagM,EAAOE,GAClCM,WAAY,SAACtL,GAAD,OAAS6K,GAAeC,EAAO9K,EAAK+K,EAAUC,IAC1DO,SAAU,SAAC5M,GAAD,OAAWkM,GAAeC,EAAMS,SAAS5M,GAAQS,EAAS2L,EAAUC,KAEhF,OAAO,IAAId,MAAM1H,EAAO,CACtB2H,eADsB,SACPz2B,EAAQo1B,GAGrB,cAFOp1B,EAAOo1B,UACPgC,EAAMhC,IACN,GAEThpB,IANsB,SAMlBpM,EAAQo1B,EAAMjpB,GAChB,OAAOwqB,GAAQ32B,EAAQo1B,GACrB,kBA4CR,SAA6Bp1B,EAAQo1B,EAAMjpB,GAAU,IAC5CqrB,EAA0Dx3B,EAA1Dw3B,OAAQC,EAAkDz3B,EAAlDy3B,SAAUC,EAAwC13B,EAAxC03B,UAAyB7M,EAAe7qB,EAA7BorB,aAChC5pB,EAAQg2B,EAAOpC,GACf5kB,EAAWhP,IAAUqpB,EAAYiN,aAAa1C,KAChD5zB,EAUJ,SAA4B4zB,EAAM5zB,EAAOxB,EAAQmM,GAAU,IAClDqrB,EAAuCx3B,EAAvCw3B,OAAQC,EAA+Bz3B,EAA/By3B,SAAUC,EAAqB13B,EAArB03B,UAAWC,EAAU33B,EAAV23B,OACpC,GAAIA,EAAO7mB,IAAIskB,GACb,MAAM,IAAI5sB,MAAM,uBAAyB/E,MAAMwI,KAAK0rB,GAAQnwB,KAAK,MAAQ,KAAO4tB,GAElFuC,EAAO/hB,IAAIwf,GACX5zB,EAAQA,EAAMi2B,EAAUC,GAAavrB,GACrCwrB,EAAOI,OAAO3C,GACV4C,GAAiB5C,EAAM5zB,KACzBA,EAAQy2B,GAAkBT,EAAOX,QAASW,EAAQpC,EAAM5zB,IAE1D,OAAOA,EArBG02B,CAAmB9C,EAAM5zB,EAAOxB,EAAQmM,IAE9CzI,EAAQlC,IAAUA,EAAMrB,SAC1BqB,EAoBJ,SAAuB4zB,EAAM5zB,EAAOxB,EAAQm4B,GAAa,IAChDX,EAA0Dx3B,EAA1Dw3B,OAAQC,EAAkDz3B,EAAlDy3B,SAAUC,EAAwC13B,EAAxC03B,UAAyB7M,EAAe7qB,EAA7BorB,aACpC,GAAI7a,EAAQknB,EAASlpB,QAAU4pB,EAAY/C,GACzC5zB,EAAQA,EAAMi2B,EAASlpB,MAAQ/M,EAAMrB,aAChC,GAAI2M,EAAStL,EAAM,IAAK,CAC7B,IAAM6J,EAAM7J,EACN00B,EAASsB,EAAOX,QAAQuB,QAAO,SAAAx0B,GAAC,OAAIA,IAAMyH,KAChD7J,EAAQ,GAHqB,oBAIV6J,GAJU,IAI7B,2BAAwB,KAAbwF,EAAa,QAChBwnB,EAAWJ,GAAkB/B,EAAQsB,EAAQpC,EAAMvkB,GACzDrP,EAAM2F,KAAKgwB,GAAekB,EAAUZ,EAAUC,GAAaA,EAAUtC,GAAOvK,KANjD,+BAS/B,OAAOrpB,EAjCG82B,CAAclD,EAAM5zB,EAAOxB,EAAQ6qB,EAAYsN,cAErDH,GAAiB5C,EAAM5zB,KACzBA,EAAQ21B,GAAe31B,EAAOi2B,EAAUC,GAAaA,EAAUtC,GAAOvK,IAExE,OAAOrpB,EAxDK+2B,CAAoBv4B,EAAQo1B,EAAMjpB,OAE5CK,yBAVsB,SAUGxM,EAAQo1B,GAC/B,OAAOp1B,EAAOorB,aAAaoN,QACvBz2B,QAAQ+O,IAAIsmB,EAAOhC,GAAQ,CAAC/0B,YAAY,EAAMC,cAAc,QAAQ8C,EACpErB,QAAQyK,yBAAyB4qB,EAAOhC,IAE9ClqB,eAfsB,WAgBpB,OAAOnJ,QAAQmJ,eAAeksB,IAEhCtmB,IAlBsB,SAkBlB9Q,EAAQo1B,GACV,OAAOrzB,QAAQ+O,IAAIsmB,EAAOhC,IAE5B4B,QArBsB,WAsBpB,OAAOj1B,QAAQi1B,QAAQI,IAEzB1hB,IAxBsB,SAwBlB1V,EAAQo1B,EAAM5zB,GAGhB,OAFA41B,EAAMhC,GAAQ5zB,SACPxB,EAAOo1B,IACP,KAIb,SAAShK,GAAagM,GAAuD,IAAhDjM,EAAgD,uDAArC,CAACsN,YAAY,EAAMC,WAAW,GAAO,EAC+BtB,EAAnGnJ,mBADoE,MACtD9C,EAASsN,WAD6C,IAC+BrB,EAAhEjJ,kBADiC,MACpBhD,EAASuN,UADW,IAC+BtB,EAA/BuB,gBADA,MACWxN,EAASqN,QADpB,EAE3E,MAAO,CACLA,QAASG,EACTF,WAAYxK,EACZyK,UAAWvK,EACX2J,aAActnB,EAAWyd,GAAeA,EAAc,kBAAMA,GAC5DkK,YAAa3nB,EAAW2d,GAAcA,EAAa,kBAAMA,IAG7D,IAAMyK,GAAU,SAACC,EAAQpL,GAAT,OAAkBoL,EAASA,EAAS1oB,EAAYsd,GAAQA,GAClEuK,GAAmB,SAAC5C,EAAM5zB,GAAP,OAAiBsL,EAAStL,IAAmB,aAAT4zB,IACzB,OAAjC50B,OAAO0K,eAAe1J,IAAmBA,EAAMD,cAAgBf,SAClE,SAASm2B,GAAQ32B,EAAQo1B,EAAM/yB,GAC7B,GAAI7B,OAAOO,UAAUoE,eAAesB,KAAKzG,EAAQo1B,GAC/C,OAAOp1B,EAAOo1B,GAEhB,IAAM5zB,EAAQa,IAEd,OADArC,EAAOo1B,GAAQ5zB,EACRA,EA4CT,SAASs3B,GAAgBrD,EAAUL,EAAM5zB,GACvC,OAAOgP,EAAWilB,GAAYA,EAASL,EAAM5zB,GAASi0B,EAExD,IAAMsD,GAAW,SAACr4B,EAAKs4B,GAAN,OAAyB,IAARt4B,EAAes4B,EAC9B,kBAARt4B,EAAmBkP,EAAiBopB,EAAQt4B,QAAO0C,GAC9D,SAAS61B,GAAUvjB,EAAKwjB,EAAcx4B,EAAKy4B,EAAgB33B,GAAO,oBAC3C03B,GAD2C,IAChE,2BAAmC,KAAxBF,EAAwB,QAC3B/N,EAAQ8N,GAASr4B,EAAKs4B,GAC5B,GAAI/N,EAAO,CACTvV,EAAIE,IAAIqV,GACR,IAAMwK,EAAWqD,GAAgB7N,EAAMmD,UAAW1tB,EAAKc,GACvD,GAAI+O,EAAQklB,IAAaA,IAAa/0B,GAAO+0B,IAAa0D,EACxD,OAAO1D,OAEJ,IAAc,IAAVxK,GAAmB1a,EAAQ4oB,IAAmBz4B,IAAQy4B,EAC/D,OAAO,MAVqD,8BAahE,OAAO,EAET,SAASlB,GAAkBiB,EAAcb,EAAUjD,EAAM5zB,GACvD,IAAM40B,EAAaiC,EAASe,YACtB3D,EAAWqD,GAAgBT,EAASjK,UAAWgH,EAAM5zB,GACrD63B,EAAY,GAAH,mBAAOH,GAAP,YAAwB9C,IACjC1gB,EAAM,IAAIC,IAChBD,EAAIE,IAAIpU,GACR,IAAId,EAAM44B,GAAiB5jB,EAAK2jB,EAAWjE,EAAMK,GAAYL,EAAM5zB,GACnE,OAAY,OAARd,MAGA6P,EAAQklB,IAAaA,IAAaL,GAExB,QADZ10B,EAAM44B,GAAiB5jB,EAAK2jB,EAAW5D,EAAU/0B,EAAKc,MAKjDy0B,GAAgBxyB,MAAMwI,KAAKyJ,GAAM,CAAC,IAAK0gB,EAAYX,GACxD,kBAQJ,SAAsB4C,EAAUjD,EAAM5zB,GACpC,IAAMw3B,EAASX,EAASkB,aAClBnE,KAAQ4D,IACZA,EAAO5D,GAAQ,IAEjB,IAAMp1B,EAASg5B,EAAO5D,GACtB,GAAI1xB,EAAQ1D,IAAW8M,EAAStL,GAC9B,OAAOA,EAET,OAAOxB,EAjBCw5B,CAAanB,EAAUjD,EAAM5zB,OAEvC,SAAS83B,GAAiB5jB,EAAK2jB,EAAW34B,EAAK+0B,EAAU5kB,GACvD,KAAOnQ,GACLA,EAAMu4B,GAAUvjB,EAAK2jB,EAAW34B,EAAK+0B,EAAU5kB,GAEjD,OAAOnQ,EAaT,SAASk2B,GAAqBxB,EAAMe,EAAUD,EAAQkB,GACpD,IAAI51B,EADuD,gBAEtC20B,GAFsC,IAE3D,2BAA+B,KAApB0C,EAAoB,QAE7B,GADAr3B,EAAQ80B,GAASsC,GAAQC,EAAQzD,GAAOc,GACpC3lB,EAAQ/O,GACV,OAAOw2B,GAAiB5C,EAAM5zB,GAC1By2B,GAAkB/B,EAAQkB,EAAOhC,EAAM5zB,GACvCA,GAPmD,+BAW7D,SAAS80B,GAAS51B,EAAKw1B,GAAQ,oBACTA,GADS,IAC7B,2BAA4B,KAAjBjL,EAAiB,QAC1B,GAAKA,EAAL,CAGA,IAAMzpB,EAAQypB,EAAMvqB,GACpB,GAAI6P,EAAQ/O,GACV,OAAOA,IAPkB,+BAW/B,SAASs1B,GAAqB92B,GAC5B,IAAI+N,EAAO/N,EAAO02B,MAIlB,OAHK3oB,IACHA,EAAO/N,EAAO02B,MAIlB,SAAkCR,GAChC,IADwC,EAClCxgB,EAAM,IAAIC,IADwB,cAEpBugB,GAFoB,IAExC,2BAA4B,OAAjBjL,EAAiB,sBACRzqB,OAAOuN,KAAKkd,GAAOmN,QAAO,SAAAxpB,GAAC,OAAKA,EAAEsf,WAAW,SADrC,IAC1B,2BAAsE,KAA3DxtB,EAA2D,QACpEgV,EAAIE,IAAIlV,IAFgB,gCAFY,8BAOxC,OAAO+C,MAAMwI,KAAKyJ,GAXM+jB,CAAyBz5B,EAAO62B,UAEjD9oB,EAWT,SAAS2rB,GAA4BjjB,EAAMxN,EAAM8K,EAAO8C,GAAO,IAIzD3W,EAAGiO,EAAMI,EAAOsC,EAHbkG,EAAUN,EAAVM,OADsD,EAEzCjV,KAAK63B,SAAlBj5B,WAFsD,MAEhD,IAFgD,EAGvDk5B,EAAS,IAAIn2B,MAAMoT,GAEzB,IAAK3W,EAAI,EAAGiO,EAAO0I,EAAO3W,EAAIiO,IAAQjO,EAEpC2Q,EAAO5H,EADPsF,EAAQrO,EAAI6T,GAEZ6lB,EAAO15B,GAAK,CACV4G,EAAGiQ,EAAOtP,MAAMmI,EAAiBiB,EAAMnQ,GAAM6N,IAGjD,OAAOqrB,EAGT,IAAMC,GAAU7sB,OAAO6sB,SAAW,MAC5BC,GAAW,SAACpjB,EAAQxW,GAAT,OAAeA,EAAIwW,EAAOvW,SAAWuW,EAAOxW,GAAG65B,MAAQrjB,EAAOxW,IACzE85B,GAAe,SAACvN,GAAD,MAA6B,MAAdA,EAAoB,IAAM,KAC9D,SAASwN,GAAYC,EAAYC,EAAaC,EAAYliB,GACxD,IAAMga,EAAWgI,EAAWH,KAAOI,EAAcD,EAC3CG,EAAUF,EACV91B,EAAO+1B,EAAWL,KAAOI,EAAcC,EACvCE,EAAM7mB,GAAsB4mB,EAASnI,GACrCqI,EAAM9mB,GAAsBpP,EAAMg2B,GACpCG,EAAMF,GAAOA,EAAMC,GACnBE,EAAMF,GAAOD,EAAMC,GAGjBG,EAAKxiB,GAFXsiB,EAAMpoB,MAAMooB,GAAO,EAAIA,GAGjBG,EAAKziB,GAFXuiB,EAAMroB,MAAMqoB,GAAO,EAAIA,GAGvB,MAAO,CACLvI,SAAU,CACRxiB,EAAG2qB,EAAQ3qB,EAAIgrB,GAAMr2B,EAAKqL,EAAIwiB,EAASxiB,GACvCC,EAAG0qB,EAAQ1qB,EAAI+qB,GAAMr2B,EAAKsL,EAAIuiB,EAASviB,IAEzCtL,KAAM,CACJqL,EAAG2qB,EAAQ3qB,EAAIirB,GAAMt2B,EAAKqL,EAAIwiB,EAASxiB,GACvCC,EAAG0qB,EAAQ1qB,EAAIgrB,GAAMt2B,EAAKsL,EAAIuiB,EAASviB,KAI7C,SAASirB,GAAelkB,EAAQmkB,EAAQC,GAItC,IAHA,IACIC,EAAQC,EAAOC,EAAMC,EAAkBC,EADrCC,EAAY1kB,EAAOvW,OAErBk7B,EAAavB,GAASpjB,EAAQ,GACzBxW,EAAI,EAAGA,EAAIk7B,EAAY,IAAKl7B,EACnCi7B,EAAeE,EACfA,EAAavB,GAASpjB,EAAQxW,EAAI,GAC7Bi7B,GAAiBE,IAGlBvpB,EAAa+oB,EAAO36B,GAAI,EAAG25B,IAC7BiB,EAAG56B,GAAK46B,EAAG56B,EAAI,GAAK,GAGtB66B,EAASD,EAAG56B,GAAK26B,EAAO36B,GACxB86B,EAAQF,EAAG56B,EAAI,GAAK26B,EAAO36B,IAC3Bg7B,EAAmBx2B,KAAKsN,IAAI+oB,EAAQ,GAAKr2B,KAAKsN,IAAIgpB,EAAO,KACjC,IAGxBC,EAAO,EAAIv2B,KAAK2O,KAAK6nB,GACrBJ,EAAG56B,GAAK66B,EAASE,EAAOJ,EAAO36B,GAC/B46B,EAAG56B,EAAI,GAAK86B,EAAQC,EAAOJ,EAAO36B,MAGtC,SAASo7B,GAAgB5kB,EAAQokB,GAK/B,IALoD,IAGhDS,EAAOC,EAAaL,EAHW1O,EAAiB,uDAAL,IACzCgP,EAAYzB,GAAavN,GACzB2O,EAAY1kB,EAAOvW,OAErBk7B,EAAavB,GAASpjB,EAAQ,GACzBxW,EAAI,EAAGA,EAAIk7B,IAAal7B,EAI/B,GAHAs7B,EAAcL,EACdA,EAAeE,EACfA,EAAavB,GAASpjB,EAAQxW,EAAI,GAC7Bi7B,EAAL,CAGA,IAAMO,EAASP,EAAa1O,GACtBkP,EAASR,EAAaM,GACxBD,IACFD,GAASG,EAASF,EAAY/O,IAAc,EAC5C0O,EAAa,MAAD,OAAO1O,IAAeiP,EAASH,EAC3CJ,EAAa,MAAD,OAAOM,IAAeE,EAASJ,EAAQT,EAAG56B,IAEpDm7B,IACFE,GAASF,EAAW5O,GAAaiP,GAAU,EAC3CP,EAAa,MAAD,OAAO1O,IAAeiP,EAASH,EAC3CJ,EAAa,MAAD,OAAOM,IAAeE,EAASJ,EAAQT,EAAG56B,KA8B5D,SAAS07B,GAAgBC,EAAIjyB,EAAKH,GAChC,OAAO/E,KAAK+E,IAAI/E,KAAKkF,IAAIiyB,EAAIpyB,GAAMG,GAuBrC,SAASkyB,GAA2BplB,EAAQ1H,EAASwiB,EAAMuK,EAAMtP,GAC/D,IAAIvsB,EAAGiO,EAAMojB,EAAOyK,EAIpB,GAHIhtB,EAAQitB,WACVvlB,EAASA,EAAO0hB,QAAO,SAACyD,GAAD,OAASA,EAAG9B,SAEE,aAAnC/qB,EAAQktB,wBAvDd,SAA6BxlB,GAAyB,IAKhDxW,EAAGs7B,EAAaL,EALe1O,EAAiB,uDAAL,IACzCgP,EAAYzB,GAAavN,GACzB2O,EAAY1kB,EAAOvW,OACnB06B,EAASp3B,MAAM23B,GAAWjK,KAAK,GAC/B2J,EAAKr3B,MAAM23B,GAEbC,EAAavB,GAASpjB,EAAQ,GAClC,IAAKxW,EAAI,EAAGA,EAAIk7B,IAAal7B,EAI3B,GAHAs7B,EAAcL,EACdA,EAAeE,EACfA,EAAavB,GAASpjB,EAAQxW,EAAI,GAC7Bi7B,EAAL,CAGA,GAAIE,EAAY,CACd,IAAMc,EAAad,EAAW5O,GAAa0O,EAAa1O,GACxDoO,EAAO36B,GAAoB,IAAfi8B,GAAoBd,EAAWI,GAAaN,EAAaM,IAAcU,EAAa,EAElGrB,EAAG56B,GAAMs7B,EACJH,EACA5pB,EAAKopB,EAAO36B,EAAI,MAAQuR,EAAKopB,EAAO36B,IAAO,GAC3C26B,EAAO36B,EAAI,GAAK26B,EAAO36B,IAAM,EAFhB26B,EAAO36B,EAAI,GADN26B,EAAO36B,GAKhC06B,GAAelkB,EAAQmkB,EAAQC,GAC/BQ,GAAgB5kB,EAAQokB,EAAIrO,GAgC1B2P,CAAoB1lB,EAAQ+V,OACvB,CACL,IAAI4P,EAAON,EAAOrlB,EAAOA,EAAOvW,OAAS,GAAKuW,EAAO,GACrD,IAAKxW,EAAI,EAAGiO,EAAOuI,EAAOvW,OAAQD,EAAIiO,IAAQjO,EAE5C87B,EAAgB/B,GACdoC,EAFF9K,EAAQ7a,EAAOxW,GAIbwW,EAAOhS,KAAKkF,IAAI1J,EAAI,EAAGiO,GAAQ4tB,EAAO,EAAI,IAAM5tB,GAChDa,EAAQstB,SAEV/K,EAAMgB,KAAOyJ,EAAc9J,SAASxiB,EACpC6hB,EAAMkB,KAAOuJ,EAAc9J,SAASviB,EACpC4hB,EAAMiB,KAAOwJ,EAAc33B,KAAKqL,EAChC6hB,EAAMmB,KAAOsJ,EAAc33B,KAAKsL,EAChC0sB,EAAO9K,EAGPviB,EAAQutB,iBA7Cd,SAAyB7lB,EAAQ8a,GAC/B,IAAItxB,EAAGiO,EAAMojB,EAAOiL,EAAQC,EACxBC,EAAapL,GAAe5a,EAAO,GAAI8a,GAC3C,IAAKtxB,EAAI,EAAGiO,EAAOuI,EAAOvW,OAAQD,EAAIiO,IAAQjO,EAC5Cu8B,EAAaD,EACbA,EAASE,EACTA,EAAax8B,EAAIiO,EAAO,GAAKmjB,GAAe5a,EAAOxW,EAAI,GAAIsxB,GACtDgL,IAGLjL,EAAQ7a,EAAOxW,GACXu8B,IACFlL,EAAMgB,KAAOqJ,GAAgBrK,EAAMgB,KAAMf,EAAKE,KAAMF,EAAKG,OACzDJ,EAAMkB,KAAOmJ,GAAgBrK,EAAMkB,KAAMjB,EAAKI,IAAKJ,EAAKK,SAEtD6K,IACFnL,EAAMiB,KAAOoJ,GAAgBrK,EAAMiB,KAAMhB,EAAKE,KAAMF,EAAKG,OACzDJ,EAAMmB,KAAOkJ,GAAgBrK,EAAMmB,KAAMlB,EAAKI,IAAKJ,EAAKK,UA6B1D0K,CAAgB7lB,EAAQ8a,GAI5B,SAASmL,KACP,MAAyB,qBAAX7mB,QAA8C,qBAAb8mB,SAEjD,SAASC,GAAeC,GACtB,IAAI9D,EAAS8D,EAAQC,WAIrB,OAHI/D,GAAgC,wBAAtBA,EAAOxzB,aACnBwzB,EAASA,EAAOgE,MAEXhE,EAET,SAASiE,GAAcC,EAAYnS,EAAMoS,GACvC,IAAIC,EASJ,MAR0B,kBAAfF,GACTE,EAAgBx1B,SAASs1B,EAAY,KACJ,IAA7BA,EAAWpuB,QAAQ,OACrBsuB,EAAgBA,EAAgB,IAAMrS,EAAKgS,WAAWI,KAGxDC,EAAgBF,EAEXE,EAET,IAAMC,GAAmB,SAACC,GAAD,OAAaxnB,OAAOunB,iBAAiBC,EAAS,OAIvE,IAAMC,GAAY,CAAC,MAAO,QAAS,SAAU,QAC7C,SAASC,GAAmBC,EAAQvR,EAAOwR,GACzC,IAAM/7B,EAAS,GACf+7B,EAASA,EAAS,IAAMA,EAAS,GACjC,IAAK,IAAIx9B,EAAI,EAAGA,EAAI,EAAGA,IAAK,CAC1B,IAAMy9B,EAAMJ,GAAUr9B,GACtByB,EAAOg8B,GAAOnwB,WAAWiwB,EAAOvR,EAAQ,IAAMyR,EAAMD,KAAY,EAIlE,OAFA/7B,EAAOgtB,MAAQhtB,EAAO+vB,KAAO/vB,EAAOgwB,MACpChwB,EAAOouB,OAASpuB,EAAOiwB,IAAMjwB,EAAOkwB,OAC7BlwB,EAoBT,SAASi8B,GAAoBC,EAAKlS,GAChC,GAAI,WAAYkS,EACd,OAAOA,EAF8B,IAIhClO,EAAmChE,EAAnCgE,OAAQH,EAA2B7D,EAA3B6D,wBACTtD,EAAQmR,GAAiB1N,GACzBmO,EAAgC,eAApB5R,EAAM6R,UAClBC,EAAWR,GAAmBtR,EAAO,WACrC+R,EAAUT,GAAmBtR,EAAO,SAAU,SARb,EAjBzC,SAA2BpoB,EAAG6rB,GAC5B,IAIIjgB,EAAGC,EAJDuuB,EAAUp6B,EAAEo6B,QACZzvB,EAASyvB,GAAWA,EAAQ/9B,OAAS+9B,EAAQ,GAAKp6B,EACjDq6B,EAAoB1vB,EAApB0vB,QAASC,EAAW3vB,EAAX2vB,QACZC,GAAM,EAEV,GAPmB,SAAC3uB,EAAGC,EAAG3P,GAAP,OAAmB0P,EAAI,GAAKC,EAAI,MAAQ3P,IAAWA,EAAOs+B,YAOzEC,CAAaJ,EAASC,EAASt6B,EAAE9D,QACnC0P,EAAIyuB,EACJxuB,EAAIyuB,MACC,CACL,IAAMlN,EAAOvB,EAAO6O,wBACpB9uB,EAAIjB,EAAOgwB,QAAUvN,EAAKQ,KAC1B/hB,EAAIlB,EAAOiwB,QAAUxN,EAAKU,IAC1ByM,GAAM,EAER,MAAO,CAAC3uB,IAAGC,IAAG0uB,OAWMM,CAAkBd,EAAKlO,GAApCjgB,EATgC,EAShCA,EAAGC,EAT6B,EAS7BA,EAAG0uB,EAT0B,EAS1BA,IACPnO,EAAU8N,EAAStM,MAAQ2M,GAAOJ,EAAQvM,MAC1CvB,EAAU6N,EAASpM,KAAOyM,GAAOJ,EAAQrM,KAC1CjD,EAAiBhD,EAAjBgD,MAAOoB,EAAUpE,EAAVoE,OAKZ,OAJI+N,IACFnP,GAASqP,EAASrP,MAAQsP,EAAQtP,MAClCoB,GAAUiO,EAASjO,OAASkO,EAAQlO,QAE/B,CACLrgB,EAAGhL,KAAKmN,OAAOnC,EAAIwgB,GAAWvB,EAAQgB,EAAOhB,MAAQa,GACrD7f,EAAGjL,KAAKmN,OAAOlC,EAAIwgB,GAAWJ,EAASJ,EAAOI,OAASP,IA4B3D,IAAMoP,GAAS,SAAAnvB,GAAC,OAAI/K,KAAKmN,MAAU,GAAJpC,GAAU,IACzC,SAASovB,GAAelP,EAAQmP,EAASC,EAAUC,GACjD,IAAM9S,EAAQmR,GAAiB1N,GACzBsP,EAAUzB,GAAmBtR,EAAO,UACpCoH,EAAW2J,GAAc/Q,EAAMoH,SAAU3D,EAAQ,gBAAkBze,EACnEguB,EAAYjC,GAAc/Q,EAAMgT,UAAWvP,EAAQ,iBAAmBze,EACtEiuB,EA/BR,SAA0BxP,EAAQhB,EAAOoB,GACvC,IAAIuD,EAAU4L,EACd,QAAc97B,IAAVurB,QAAkCvrB,IAAX2sB,EAAsB,CAC/C,IAAMqP,EAAYvC,GAAelN,GACjC,GAAKyP,EAGE,CACL,IAAMlO,EAAOkO,EAAUZ,wBACjBa,EAAiBhC,GAAiB+B,GAClCE,EAAkB9B,GAAmB6B,EAAgB,SAAU,SAC/DE,EAAmB/B,GAAmB6B,EAAgB,WAC5D1Q,EAAQuC,EAAKvC,MAAQ4Q,EAAiB5Q,MAAQ2Q,EAAgB3Q,MAC9DoB,EAASmB,EAAKnB,OAASwP,EAAiBxP,OAASuP,EAAgBvP,OACjEuD,EAAW2J,GAAcoC,EAAe/L,SAAU8L,EAAW,eAC7DF,EAAYjC,GAAcoC,EAAeH,UAAWE,EAAW,qBAV/DzQ,EAAQgB,EAAO6P,YACfzP,EAASJ,EAAO8P,aAYpB,MAAO,CACL9Q,QACAoB,SACAuD,SAAUA,GAAYpiB,EACtBguB,UAAWA,GAAahuB,GASJwuB,CAAiB/P,EAAQmP,EAASC,GACnDpQ,EAAiBwQ,EAAjBxQ,MAAOoB,EAAUoP,EAAVpP,OACZ,GAAwB,gBAApB7D,EAAM6R,UAA6B,CACrC,IAAME,EAAUT,GAAmBtR,EAAO,SAAU,SAC9C8R,EAAWR,GAAmBtR,EAAO,WAC3CyC,GAASqP,EAASrP,MAAQsP,EAAQtP,MAClCoB,GAAUiO,EAASjO,OAASkO,EAAQlO,OAStC,OAPApB,EAAQjqB,KAAK+E,IAAI,EAAGklB,EAAQsQ,EAAQtQ,OACpCoB,EAASrrB,KAAK+E,IAAI,EAAGu1B,EAAct6B,KAAKuN,MAAM0c,EAAQqQ,GAAejP,EAASkP,EAAQlP,QACtFpB,EAAQiQ,GAAOl6B,KAAKkF,IAAI+kB,EAAO2E,EAAU6L,EAAc7L,WACvDvD,EAAS6O,GAAOl6B,KAAKkF,IAAImmB,EAAQmP,EAAWC,EAAcD,YACtDvQ,IAAUoB,IACZA,EAAS6O,GAAOjQ,EAAQ,IAEnB,CACLA,QACAoB,UAGJ,SAAS4P,GAAYhU,EAAOiU,EAAYC,GACtC,IAAMC,EAAaF,GAAc,EAC3BG,EAAer7B,KAAKuN,MAAM0Z,EAAMoE,OAAS+P,GACzCE,EAAct7B,KAAKuN,MAAM0Z,EAAMgD,MAAQmR,GAC7CnU,EAAMoE,OAASgQ,EAAeD,EAC9BnU,EAAMgD,MAAQqR,EAAcF,EAC5B,IAAMnQ,EAAShE,EAAMgE,OAKrB,OAJIA,EAAOzD,QAAU2T,IAAgBlQ,EAAOzD,MAAM6D,SAAWJ,EAAOzD,MAAMyC,SACxEgB,EAAOzD,MAAM6D,OAAb,UAAyBpE,EAAMoE,OAA/B,MACAJ,EAAOzD,MAAMyC,MAAb,UAAwBhD,EAAMgD,MAA9B,QAEEhD,EAAM6D,0BAA4BsQ,GAC/BnQ,EAAOI,SAAWgQ,GAClBpQ,EAAOhB,QAAUqR,KACtBrU,EAAM6D,wBAA0BsQ,EAChCnQ,EAAOI,OAASgQ,EAChBpQ,EAAOhB,MAAQqR,EACfrU,EAAMW,IAAI2T,aAAaH,EAAY,EAAG,EAAGA,EAAY,EAAG,IACjD,GAIX,IAAMI,GAAgC,WACpC,IAAIC,GAAmB,EACvB,IACE,IAAMnxB,EAAU,CACd,cAEE,OADAmxB,GAAmB,GACZ,IAGXrqB,OAAOsqB,iBAAiB,OAAQ,KAAMpxB,GACtC8G,OAAOuqB,oBAAoB,OAAQ,KAAMrxB,GACzC,MAAOlL,IAET,OAAOq8B,EAb6B,GAetC,SAASG,GAAahD,EAASpxB,GAC7B,IAAM1K,EAhJR,SAAkB++B,EAAIr0B,GACpB,OAAOmxB,GAAiBkD,GAAIC,iBAAiBt0B,GA+I/Bu0B,CAASnD,EAASpxB,GAC1B6oB,EAAUvzB,GAASA,EAAMwzB,MAAM,qBACrC,OAAOD,GAAWA,EAAQ,QAAK3xB,EAGjC,SAASs9B,GAAarjB,EAAIC,EAAIpF,EAAGyU,GAC/B,MAAO,CACLjd,EAAG2N,EAAG3N,EAAIwI,GAAKoF,EAAG5N,EAAI2N,EAAG3N,GACzBC,EAAG0N,EAAG1N,EAAIuI,GAAKoF,EAAG3N,EAAI0N,EAAG1N,IAG7B,SAASgxB,GAAsBtjB,EAAIC,EAAIpF,EAAGyU,GACxC,MAAO,CACLjd,EAAG2N,EAAG3N,EAAIwI,GAAKoF,EAAG5N,EAAI2N,EAAG3N,GACzBC,EAAY,WAATgd,EAAoBzU,EAAI,GAAMmF,EAAG1N,EAAI2N,EAAG3N,EAChC,UAATgd,EAAmBzU,EAAI,EAAImF,EAAG1N,EAAI2N,EAAG3N,EACrCuI,EAAI,EAAIoF,EAAG3N,EAAI0N,EAAG1N,GAGxB,SAASixB,GAAqBvjB,EAAIC,EAAIpF,EAAGyU,GACvC,IAAMkU,EAAM,CAACnxB,EAAG2N,EAAGmV,KAAM7iB,EAAG0N,EAAGqV,MACzBoO,EAAM,CAACpxB,EAAG4N,EAAGiV,KAAM5iB,EAAG2N,EAAGmV,MACzB/hB,EAAIgwB,GAAarjB,EAAIwjB,EAAK3oB,GAC1BvH,EAAI+vB,GAAaG,EAAKC,EAAK5oB,GAC3B6D,EAAI2kB,GAAaI,EAAKxjB,EAAIpF,GAC1BqC,EAAImmB,GAAahwB,EAAGC,EAAGuH,GACvBpU,EAAI48B,GAAa/vB,EAAGoL,EAAG7D,GAC7B,OAAOwoB,GAAanmB,EAAGzW,EAAGoU,GAG5B,IAAM6oB,GAAY,IAAIC,IAWtB,SAASC,GAAaC,EAAKC,EAAQnyB,GACjC,OAXF,SAAyBmyB,EAAQnyB,GAC/BA,EAAUA,GAAW,GACrB,IAAMoyB,EAAWD,EAASE,KAAKt7B,UAAUiJ,GACrCsyB,EAAYP,GAAU30B,IAAIg1B,GAK9B,OAJKE,IACHA,EAAY,IAAIC,KAAKC,aAAaL,EAAQnyB,GAC1C+xB,GAAUrrB,IAAI0rB,EAAUE,IAEnBA,EAGAG,CAAgBN,EAAQnyB,GAAS0yB,OAAOR,GA2CjD,SAASS,GAAcC,EAAKC,EAAOlT,GACjC,OAAOiT,EAzCqB,SAASC,EAAOlT,GAC5C,MAAO,CACLjf,EADK,SACHA,GACA,OAAOmyB,EAAQA,EAAQlT,EAAQjf,GAEjCoyB,SAJK,SAIIllB,GACP+R,EAAQ/R,GAEV+W,UAPK,SAOKrd,GACR,MAAc,WAAVA,EACKA,EAEQ,UAAVA,EAAoB,OAAS,SAEtCyrB,MAbK,SAaCryB,EAAGlO,GACP,OAAOkO,EAAIlO,GAEbwgC,WAhBK,SAgBMtyB,EAAGuyB,GACZ,OAAOvyB,EAAIuyB,IAuBFC,CAAsBL,EAAOlT,GAlBnC,CACLjf,EADK,SACHA,GACA,OAAOA,GAEToyB,SAJK,SAIIllB,KAET+W,UANK,SAMKrd,GACR,OAAOA,GAETyrB,MATK,SASCryB,EAAGlO,GACP,OAAOkO,EAAIlO,GAEbwgC,WAZK,SAYMtyB,EAAGyyB,GACZ,OAAOzyB,IAOb,SAAS0yB,GAAsB9V,EAAK+V,GAClC,IAAInW,EAAOoW,EACO,QAAdD,GAAqC,QAAdA,IAEzBC,EAAW,EADXpW,EAAQI,EAAIqD,OAAOzD,OAEXsU,iBAAiB,aACvBtU,EAAMqW,oBAAoB,cAE5BrW,EAAMsW,YAAY,YAAaH,EAAW,aAC1C/V,EAAImW,kBAAoBH,GAG5B,SAASI,GAAqBpW,EAAKgW,QAChBl/B,IAAbk/B,WACKhW,EAAImW,kBACXnW,EAAIqD,OAAOzD,MAAMsW,YAAY,YAAaF,EAAS,GAAIA,EAAS,KAIpE,SAASK,GAAWz2B,GAClB,MAAiB,UAAbA,EACK,CACL02B,QAAS9uB,GACT+uB,QAASjvB,GACTkvB,UAAWjvB,IAGR,CACL+uB,QAASruB,GACTsuB,QAAS,SAACnyB,EAAGC,GAAJ,OAAUD,EAAIC,GACvBmyB,UAAW,SAAApzB,GAAC,OAAIA,IAGpB,SAASqzB,GAAT,GAA4D,IAAjChvB,EAAiC,EAAjCA,MAAOC,EAA0B,EAA1BA,IAAK6C,EAAqB,EAArBA,MACrC,MAAO,CACL9C,MAAOA,EAAQ8C,EACf7C,IAAKA,EAAM6C,EACXklB,KAJwD,EAAdA,OAI3B/nB,EAAMD,EAAQ,GAAK8C,IAAU,EAC5CqV,MALwD,EAARA,OAgCpD,SAAS8W,GAAcC,EAASvsB,EAAQwsB,GACtC,IAAKA,EACH,MAAO,CAACD,GAcV,IAhB8C,IAW1CzhC,EAAO+vB,EAAO4R,EAPXj3B,EAA8Cg3B,EAA9Ch3B,SAAiBk3B,EAA6BF,EAApCnvB,MAAwBsvB,EAAYH,EAAjBlvB,IAC9B6C,EAAQH,EAAOvW,OALyB,EAMRwiC,GAAWz2B,GAA1C22B,EANuC,EAMvCA,QAASD,EAN8B,EAM9BA,QAASE,EANqB,EAMrBA,UANqB,EAxBhD,SAAoBG,EAASvsB,EAAQwsB,GAAQ,IAKvChjC,EAAGiO,EAJAjC,EAA8Cg3B,EAA9Ch3B,SAAiBk3B,EAA6BF,EAApCnvB,MAAwBsvB,EAAYH,EAAjBlvB,IADO,EAEd2uB,GAAWz2B,GAAjC02B,EAFoC,EAEpCA,QAASE,EAF2B,EAE3BA,UACVjsB,EAAQH,EAAOvW,OAChB4T,EAAoBkvB,EAApBlvB,MAAOC,EAAaivB,EAAbjvB,IAAK+nB,EAAQkH,EAARlH,KAEjB,GAAIA,EAAM,CAGR,IAFAhoB,GAAS8C,EACT7C,GAAO6C,EACF3W,EAAI,EAAGiO,EAAO0I,EAAO3W,EAAIiO,GACvBy0B,EAAQE,EAAUpsB,EAAO3C,EAAQ8C,GAAO3K,IAAYk3B,EAAYC,KADjCnjC,EAIpC6T,IACAC,IAEFD,GAAS8C,EACT7C,GAAO6C,EAKT,OAHI7C,EAAMD,IACRC,GAAO6C,GAEF,CAAC9C,QAAOC,MAAK+nB,OAAM7P,MAAO+W,EAAQ/W,OASPoX,CAAWL,EAASvsB,EAAQwsB,GAAvDnvB,EAPuC,EAOvCA,MAAOC,EAPgC,EAOhCA,IAAK+nB,EAP2B,EAO3BA,KAAM7P,EAPqB,EAOrBA,MACnBvqB,EAAS,GACX4hC,GAAS,EACTC,EAAW,KAITC,EAAc,kBAAMF,GAFEX,EAAQQ,EAAYD,EAAW3hC,IAA6C,IAAnCqhC,EAAQO,EAAYD,IAGnFO,EAAa,kBAAOH,GAF6B,IAA7BV,EAAQQ,EAAU7hC,IAAgBohC,EAAQS,EAAUF,EAAW3hC,IAGhFtB,EAAI6T,EAAOsoB,EAAOtoB,EAAO7T,GAAK8T,IAAO9T,GAC5CqxB,EAAQ7a,EAAOxW,EAAI2W,IACTkjB,OAGVv4B,EAAQshC,EAAUvR,EAAMrlB,OACVi3B,IAGdI,EAASX,EAAQphC,EAAO4hC,EAAYC,GACnB,OAAbG,GAAqBC,MACvBD,EAA0C,IAA/BX,EAAQrhC,EAAO4hC,GAAoBljC,EAAIm8B,GAEnC,OAAbmH,GAAqBE,MACvB/hC,EAAOwF,KAAK47B,GAAiB,CAAChvB,MAAOyvB,EAAUxvB,IAAK9T,EAAG67B,OAAMllB,QAAOqV,WACpEsX,EAAW,MAEbnH,EAAOn8B,EACPijC,EAAY3hC,GAKd,OAHiB,OAAbgiC,GACF7hC,EAAOwF,KAAK47B,GAAiB,CAAChvB,MAAOyvB,EAAUxvB,MAAK+nB,OAAMllB,QAAOqV,WAE5DvqB,EAET,SAASgiC,GAAe9Q,EAAMqQ,GAG5B,IAFA,IAAMvhC,EAAS,GACTiiC,EAAW/Q,EAAK+Q,SACb1jC,EAAI,EAAGA,EAAI0jC,EAASzjC,OAAQD,IAAK,CACxC,IAAM2jC,EAAMb,GAAcY,EAAS1jC,GAAI2yB,EAAKnc,OAAQwsB,GAChDW,EAAI1jC,QACNwB,EAAOwF,KAAP,MAAAxF,EAAM,YAASkiC,IAGnB,OAAOliC,EAkET,SAASmiC,GAAcjR,EAAM+Q,EAAUltB,EAAQqtB,GAC7C,OAAKA,GAAmBA,EAAenM,YAAelhB,EAKxD,SAAyBmc,EAAM+Q,EAAUltB,EAAQqtB,GAC/C,IAAMC,EAAenR,EAAKoR,OAAOrU,aAC3BsU,EAAYC,GAAUtR,EAAK7jB,SACXV,EAAqCukB,EAApDuR,cAAuCnI,EAAapJ,EAAvB7jB,QAAUitB,SACxCplB,EAAQH,EAAOvW,OACfwB,EAAS,GACX0iC,EAAYH,EACZnwB,EAAQ6vB,EAAS,GAAG7vB,MACpB7T,EAAI6T,EACR,SAASuwB,EAAS1gC,EAAGE,EAAG4W,EAAG6pB,GACzB,IAAMC,EAAMvI,GAAY,EAAI,EAC5B,GAAIr4B,IAAME,EAAV,CAIA,IADAF,GAAKiT,EACEH,EAAO9S,EAAIiT,GAAOkjB,MACvBn2B,GAAK4gC,EAEP,KAAO9tB,EAAO5S,EAAI+S,GAAOkjB,MACvBj2B,GAAK0gC,EAEH5gC,EAAIiT,IAAU/S,EAAI+S,IACpBlV,EAAOwF,KAAK,CAAC4M,MAAOnQ,EAAIiT,EAAO7C,IAAKlQ,EAAI+S,EAAOklB,KAAMrhB,EAAGwR,MAAOqY,IAC/DF,EAAYE,EACZxwB,EAAQjQ,EAAI+S,IAxB+C,oBA2BzC+sB,GA3ByC,IA2B/D,2BAAgC,KAArBX,EAAqB,QAC9BlvB,EAAQkoB,EAAWloB,EAAQkvB,EAAQlvB,MACnC,IAAIsoB,EAAO3lB,EAAO3C,EAAQ8C,GACtBqV,OAAK,EACT,IAAKhsB,EAAI6T,EAAQ,EAAG7T,GAAK+iC,EAAQjvB,IAAK9T,IAAK,CACzC,IAAM27B,EAAKnlB,EAAOxW,EAAI2W,GASlB4tB,GARJvY,EAAQiY,GAAUJ,EAAenM,WAAW7B,GAAciO,EAAc,CACtEn3B,KAAM,UACN63B,GAAIrI,EACJhf,GAAIwe,EACJ8I,aAAczkC,EAAI,GAAK2W,EACvB+tB,YAAa1kC,EAAI2W,EACjBvI,mBAEsB+1B,IACtBC,EAASvwB,EAAO7T,EAAI,EAAG+iC,EAAQlH,KAAMsI,GAEvChI,EAAOR,EACPwI,EAAYnY,EAEVnY,EAAQ7T,EAAI,GACdokC,EAASvwB,EAAO7T,EAAI,EAAG+iC,EAAQlH,KAAMsI,IAhDsB,8BAmD/D,OAAO1iC,EArDAkjC,CAAgBhS,EAAM+Q,EAAUltB,EAAQqtB,GAFtCH,EAyDX,SAASO,GAAUn1B,GACjB,MAAO,CACLsc,gBAAiBtc,EAAQsc,gBACzBwZ,eAAgB91B,EAAQ81B,eACxBC,WAAY/1B,EAAQ+1B,WACpBC,iBAAkBh2B,EAAQg2B,iBAC1BC,gBAAiBj2B,EAAQi2B,gBACzB7T,YAAapiB,EAAQoiB,YACrB7F,YAAavc,EAAQuc,aAGzB,SAASkZ,GAAavY,EAAOmY,GAC3B,OAAOA,GAAahD,KAAKt7B,UAAUmmB,KAAWmV,KAAKt7B,UAAUs+B,G,ICv6E3Da,GAAW,I,WAtIb,aAAc,oBACZpjC,KAAKqjC,SAAW,KAChBrjC,KAAKsjC,QAAU,IAAIpE,IACnBl/B,KAAKujC,UAAW,EAChBvjC,KAAKwjC,eAAYliC,E,oDAEXuoB,EAAO4Z,EAAOC,EAAM34B,GAC1B,IAAM44B,EAAYF,EAAMjwB,UAAUzI,GAC5B64B,EAAWH,EAAMI,SACvBF,EAAUlwB,SAAQ,SAAAvS,GAAE,OAAIA,EAAG,CACzB2oB,QACAia,QAASL,EAAMK,QACfF,WACAG,YAAanhC,KAAKkF,IAAI47B,EAAOD,EAAMxxB,MAAO2xB,U,iCAGnC,WACL5jC,KAAKqjC,WAGTrjC,KAAKujC,UAAW,EAChBvjC,KAAKqjC,SAAWtvB,GAAiBpP,KAAKqP,QAAQ,WAC5C,EAAKgwB,UACL,EAAKX,SAAW,KACZ,EAAKE,UACP,EAAKU,iB,gCAIgB,WAAnBP,EAAmB,uDAAZQ,KAAKC,MACdC,EAAY,EAChBpkC,KAAKsjC,QAAQ7vB,SAAQ,SAACgwB,EAAO5Z,GAC3B,GAAK4Z,EAAMY,SAAYZ,EAAM9vB,MAAMtV,OAAnC,CAOA,IAJA,IAGI0Q,EAHE4E,EAAQ8vB,EAAM9vB,MAChBvV,EAAIuV,EAAMtV,OAAS,EACnBimC,GAAO,EAEJlmC,GAAK,IAAKA,GACf2Q,EAAO4E,EAAMvV,IACJmmC,SACHx1B,EAAKy1B,OAASf,EAAMI,WACtBJ,EAAMI,SAAW90B,EAAKy1B,QAExBz1B,EAAK01B,KAAKf,GACVY,GAAO,IAEP3wB,EAAMvV,GAAKuV,EAAMA,EAAMtV,OAAS,GAChCsV,EAAM+wB,OAGNJ,IACFza,EAAMya,OACN,EAAKK,QAAQ9a,EAAO4Z,EAAOC,EAAM,aAE9B/vB,EAAMtV,SACTolC,EAAMY,SAAU,EAChB,EAAKM,QAAQ9a,EAAO4Z,EAAOC,EAAM,YACjCD,EAAMK,SAAU,GAElBM,GAAazwB,EAAMtV,WAErB2B,KAAKwjC,UAAYE,EACC,IAAdU,IACFpkC,KAAKujC,UAAW,K,gCAGV1Z,GACR,IAAM+a,EAAS5kC,KAAKsjC,QAChBG,EAAQmB,EAAOt6B,IAAIuf,GAavB,OAZK4Z,IACHA,EAAQ,CACNY,SAAS,EACTP,SAAS,EACTnwB,MAAO,GACPH,UAAW,CACTqxB,SAAU,GACVC,SAAU,KAGdF,EAAOhxB,IAAIiW,EAAO4Z,IAEbA,I,6BAEF5Z,EAAOkb,EAAOC,GACnBhlC,KAAKilC,UAAUpb,GAAOrW,UAAUuxB,GAAO1/B,KAAK2/B,K,0BAE1Cnb,EAAOlW,GAAO,MACXA,GAAUA,EAAMtV,SAGrB,EAAA2B,KAAKilC,UAAUpb,GAAOlW,OAAMtO,KAA5B,oBAAoCsO,M,0BAElCkW,GACF,OAAO7pB,KAAKilC,UAAUpb,GAAOlW,MAAMtV,OAAS,I,4BAExCwrB,GACJ,IAAM4Z,EAAQzjC,KAAKsjC,QAAQh5B,IAAIuf,GAC1B4Z,IAGLA,EAAMY,SAAU,EAChBZ,EAAMxxB,MAAQiyB,KAAKC,MACnBV,EAAMI,SAAWJ,EAAM9vB,MAAMuxB,QAAO,SAACC,EAAKC,GAAN,OAAcxiC,KAAK+E,IAAIw9B,EAAKC,EAAIC,aAAY,GAChFrlC,KAAKikC,c,8BAECpa,GACN,IAAK7pB,KAAKujC,SACR,OAAO,EAET,IAAME,EAAQzjC,KAAKsjC,QAAQh5B,IAAIuf,GAC/B,SAAK4Z,GAAUA,EAAMY,SAAYZ,EAAM9vB,MAAMtV,U,2BAK1CwrB,GACH,IAAM4Z,EAAQzjC,KAAKsjC,QAAQh5B,IAAIuf,GAC/B,GAAK4Z,GAAUA,EAAM9vB,MAAMtV,OAA3B,CAKA,IAFA,IAAMsV,EAAQ8vB,EAAM9vB,MAChBvV,EAAIuV,EAAMtV,OAAS,EAChBD,GAAK,IAAKA,EACfuV,EAAMvV,GAAGknC,SAEX7B,EAAM9vB,MAAQ,GACd3T,KAAK2kC,QAAQ9a,EAAO4Z,EAAOS,KAAKC,MAAO,e,6BAElCta,GACL,OAAO7pB,KAAKsjC,QAAQrN,OAAOpM,O,MAMzB0b,GAAgB,CACpBC,QADoB,SACZr7B,EAAM6c,EAAIye,GAChB,OAAOA,EAAS,GAAMze,EAAK7c,GAE7B2d,MAJoB,SAId3d,EAAM6c,EAAIye,GACd,IAAMC,EAAK5d,GAAM3d,GAND,eAOV8d,EAAKyd,EAAGC,OAAS7d,GAAMd,GAPb,eAQhB,OAAOiB,GAAMA,EAAG0d,MACZ1d,EAAG2d,IAAIF,EAAID,GAAQnrB,YACnB0M,GAEN6e,OAXoB,SAWb17B,EAAM6c,EAAIye,GACf,OAAOt7B,GAAQ6c,EAAK7c,GAAQs7B,IAG1BK,G,WACJ,WAAYz9B,EAAKnK,EAAQo1B,EAAMtM,GAAI,oBACjC,IAAM+e,EAAe7nC,EAAOo1B,GAC5BtM,EAAKzmB,GAAQ,CAAC8H,EAAI2e,GAAIA,EAAI+e,EAAc19B,EAAI8B,OAC5C,IAAMA,EAAO5J,GAAQ,CAAC8H,EAAI8B,KAAM47B,EAAc/e,IAC9ChnB,KAAKukC,SAAU,EACfvkC,KAAKgmC,IAAM39B,EAAInH,IAAMqkC,GAAcl9B,EAAI0C,aAAeZ,GACtDnK,KAAKimC,QAAUzvB,GAAQnO,EAAI69B,SAAW1vB,GAAQC,OAC9CzW,KAAKmmC,OAASvjC,KAAKuN,MAAM+zB,KAAKC,OAAS97B,EAAI+9B,OAAS,IACpDpmC,KAAKqlC,UAAYrlC,KAAKwkC,OAAS5hC,KAAKuN,MAAM9H,EAAIw7B,UAC9C7jC,KAAKqmC,QAAUh+B,EAAI4xB,KACnBj6B,KAAKsmC,QAAUpoC,EACf8B,KAAKumC,MAAQjT,EACbtzB,KAAKwmC,MAAQr8B,EACbnK,KAAKymC,IAAMzf,EACXhnB,KAAK0mC,eAAYplC,E,qDAGjB,OAAOtB,KAAKukC,U,6BAEPl8B,EAAK2e,EAAI0c,GACd,GAAI1jC,KAAKukC,QAAS,CAChBvkC,KAAK2kC,SAAQ,GACb,IAAMoB,EAAe/lC,KAAKsmC,QAAQtmC,KAAKumC,OACjCI,EAAUjD,EAAO1jC,KAAKmmC,OACtBS,EAAS5mC,KAAKqlC,UAAYsB,EAChC3mC,KAAKmmC,OAASzC,EACd1jC,KAAKqlC,UAAYziC,KAAKuN,MAAMvN,KAAK+E,IAAIi/B,EAAQv+B,EAAIw7B,WACjD7jC,KAAKwkC,QAAUmC,EACf3mC,KAAKqmC,QAAUh+B,EAAI4xB,KACnBj6B,KAAKymC,IAAMlmC,GAAQ,CAAC8H,EAAI2e,GAAIA,EAAI+e,EAAc19B,EAAI8B,OAClDnK,KAAKwmC,MAAQjmC,GAAQ,CAAC8H,EAAI8B,KAAM47B,EAAc/e,O,+BAI5ChnB,KAAKukC,UACPvkC,KAAKykC,KAAKP,KAAKC,OACfnkC,KAAKukC,SAAU,EACfvkC,KAAK2kC,SAAQ,M,2BAGZjB,GACH,IAMI+B,EANEkB,EAAUjD,EAAO1jC,KAAKmmC,OACtBtC,EAAW7jC,KAAKqlC,UAChB/R,EAAOtzB,KAAKumC,MACZp8B,EAAOnK,KAAKwmC,MACZvM,EAAOj6B,KAAKqmC,MACZrf,EAAKhnB,KAAKymC,IAGhB,GADAzmC,KAAKukC,QAAUp6B,IAAS6c,IAAOiT,GAAS0M,EAAU9C,IAC7C7jC,KAAKukC,QAGR,OAFAvkC,KAAKsmC,QAAQhT,GAAQtM,OACrBhnB,KAAK2kC,SAAQ,GAGXgC,EAAU,EACZ3mC,KAAKsmC,QAAQhT,GAAQnpB,GAGvBs7B,EAAUkB,EAAU9C,EAAY,EAChC4B,EAASxL,GAAQwL,EAAS,EAAI,EAAIA,EAASA,EAC3CA,EAASzlC,KAAKimC,QAAQrjC,KAAKkF,IAAI,EAAGlF,KAAK+E,IAAI,EAAG89B,KAC9CzlC,KAAKsmC,QAAQhT,GAAQtzB,KAAKgmC,IAAI77B,EAAM6c,EAAIye,M,6BAGxC,IAAMoB,EAAW7mC,KAAK0mC,YAAc1mC,KAAK0mC,UAAY,IACrD,OAAO,IAAI3lC,SAAQ,SAAC+lC,EAAKC,GACvBF,EAASxhC,KAAK,CAACyhC,MAAKC,a,8BAGhBC,GAGN,IAFA,IAAMC,EAASD,EAAW,MAAQ,MAC5BH,EAAW7mC,KAAK0mC,WAAa,GAC1BtoC,EAAI,EAAGA,EAAIyoC,EAASxoC,OAAQD,IACnCyoC,EAASzoC,GAAG6oC,S,KAOlB5d,GAASzV,IAAI,YAAa,CACxBwyB,WAAO9kC,EACPuiC,SAAU,IACVqC,OAAQ,eACRhlC,QAAII,EACJ6I,UAAM7I,EACN24B,UAAM34B,EACN0lB,QAAI1lB,EACJyJ,UAAMzJ,IAER,IAAM4lC,GAAmBxoC,OAAOuN,KAAKod,GAASE,WAC9CF,GAASqC,SAAS,YAAa,CAC7BY,WAAW,EACXD,YAAY,EACZF,YAAa,SAACR,GAAD,MAAmB,eAATA,GAAkC,eAATA,GAAkC,OAATA,KAE3EtC,GAASzV,IAAI,aAAc,CACzBuzB,OAAQ,CACNp8B,KAAM,QACNvH,WApBW,CAAC,QAAS,cAAe,oBAsBtC4jC,QAAS,CACPr8B,KAAM,SACNvH,WAzBY,CAAC,IAAK,IAAK,cAAe,SAAU,cA4BpD6lB,GAASqC,SAAS,aAAc,CAC9BY,UAAW,cAEbjD,GAASzV,IAAI,cAAe,CAC1ByzB,OAAQ,CACN9d,UAAW,CACTsa,SAAU,MAGdyD,OAAQ,CACN/d,UAAW,CACTsa,SAAU,IAGd0D,KAAM,CACJC,WAAY,CACVL,OAAQ,CACNh9B,KAAM,eAERs9B,QAAS,CACP18B,KAAM,UACN84B,SAAU,KAIhB6D,KAAM,CACJF,WAAY,CACVL,OAAQ,CACNngB,GAAI,eAENygB,QAAS,CACP18B,KAAM,UACNm7B,OAAQ,SACRhlC,GAAI,SAAAyM,GAAC,OAAQ,EAAJA,Q,IAKXg6B,G,WACJ,WAAY9d,EAAO+d,GAAQ,oBACzB5nC,KAAKmiC,OAAStY,EACd7pB,KAAK6nC,YAAc,IAAI3I,IACvBl/B,KAAK8nC,UAAUF,G,sDAEPA,GACR,GAAK58B,EAAS48B,GAAd,CAGA,IAAMG,EAAgB/nC,KAAK6nC,YAC3BnpC,OAAOspC,oBAAoBJ,GAAQn0B,SAAQ,SAAA7U,GACzC,IAAMyJ,EAAMu/B,EAAOhpC,GACnB,GAAKoM,EAAS3C,GAAd,CAGA,IALgD,EAK1C2+B,EAAW,GAL+B,cAM3BE,IAN2B,IAMhD,2BAAuC,KAA5Be,EAA4B,QACrCjB,EAASiB,GAAU5/B,EAAI4/B,IAPuB,+BAS/CrmC,EAAQyG,EAAI7E,aAAe6E,EAAI7E,YAAc,CAAC5E,IAAM6U,SAAQ,SAAC6f,GACxDA,IAAS10B,GAAQmpC,EAAc/4B,IAAIskB,IACrCyU,EAAcn0B,IAAI0f,EAAM0T,a,sCAKhB9oC,EAAQkrB,GACtB,IAAM8e,EAAa9e,EAAOlc,QACpBA,EAwEV,SAA8BhP,EAAQgqC,GACpC,IAAKA,EACH,OAEF,IAAIh7B,EAAUhP,EAAOgP,QACrB,IAAKA,EAEH,YADAhP,EAAOgP,QAAUg7B,GAGfh7B,EAAQi7B,UACVjqC,EAAOgP,QAAUA,EAAUxO,OAAOwX,OAAO,GAAIhJ,EAAS,CAACi7B,SAAS,EAAOC,YAAa,MAEtF,OAAOl7B,EApFWm7B,CAAqBnqC,EAAQgqC,GAC7C,IAAKh7B,EACH,MAAO,GAET,IAAMs6B,EAAaxnC,KAAKsoC,kBAAkBp7B,EAASg7B,GAOnD,OANIA,EAAWC,SAwDnB,SAAkBX,EAAYhkC,GAG5B,IAFA,IAAM6gC,EAAU,GACVp4B,EAAOvN,OAAOuN,KAAKzI,GAChBpF,EAAI,EAAGA,EAAI6N,EAAK5N,OAAQD,IAAK,CACpC,IAAMmqC,EAAOf,EAAWv7B,EAAK7N,IACzBmqC,GAAQA,EAAKlB,UACfhD,EAAQh/B,KAAKkjC,EAAKC,QAGtB,OAAOznC,QAAQ0nC,IAAIpE,GAhEfqE,CAASxqC,EAAOgP,QAAQk7B,YAAaF,GAAYlnC,MAAK,WACpD9C,EAAOgP,QAAUg7B,KAChB,eAGEV,I,wCAEStpC,EAAQkrB,GACxB,IAKIhrB,EALE2pC,EAAgB/nC,KAAK6nC,YACrBL,EAAa,GACbnD,EAAUnmC,EAAOkqC,cAAgBlqC,EAAOkqC,YAAc,IACtDjqC,EAAQO,OAAOuN,KAAKmd,GACpBsa,EAAOQ,KAAKC,MAElB,IAAK/lC,EAAID,EAAME,OAAS,EAAGD,GAAK,IAAKA,EAAG,CACtC,IAAMk1B,EAAOn1B,EAAMC,GACnB,GAAuB,MAAnBk1B,EAAK/kB,OAAO,GAGhB,GAAa,YAAT+kB,EAAJ,CAIA,IAAM5zB,EAAQ0pB,EAAOkK,GACjB/J,EAAY8a,EAAQ/Q,GAClBjrB,EAAM0/B,EAAcz9B,IAAIgpB,GAC9B,GAAI/J,EAAW,CACb,GAAIlhB,GAAOkhB,EAAU8d,SAAU,CAC7B9d,EAAUhhB,OAAOF,EAAK3I,EAAOgkC,GAC7B,SAEAna,EAAU+b,SAGTj9B,GAAQA,EAAIw7B,UAIjBQ,EAAQ/Q,GAAQ/J,EAAY,IAAIuc,GAAUz9B,EAAKnK,EAAQo1B,EAAM5zB,GAC7D8nC,EAAWniC,KAAKkkB,IAJdrrB,EAAOo1B,GAAQ5zB,OAff8nC,EAAWniC,KAAX,MAAAmiC,EAAU,YAASxnC,KAAK2oC,gBAAgBzqC,EAAQkrB,KAqBpD,OAAOoe,I,6BAEFtpC,EAAQkrB,GACb,GAA8B,IAA1BppB,KAAK6nC,YAAY/4B,KAArB,CAIA,IAAM04B,EAAaxnC,KAAKsoC,kBAAkBpqC,EAAQkrB,GAClD,OAAIoe,EAAWnpC,QACb+kC,GAAStvB,IAAI9T,KAAKmiC,OAAQqF,IACnB,QAFT,EAJE9oC,OAAOwX,OAAOhY,EAAQkrB,O,KAoC5B,SAASwf,GAAUtd,EAAOud,GACxB,IAAM7X,EAAO1F,GAASA,EAAMpe,SAAW,GACjCnB,EAAUilB,EAAKjlB,QACfjE,OAAmBxG,IAAb0vB,EAAKlpB,IAAoB+gC,EAAkB,EACjDlhC,OAAmBrG,IAAb0vB,EAAKrpB,IAAoBkhC,EAAkB,EACvD,MAAO,CACL52B,MAAOlG,EAAUpE,EAAMG,EACvBoK,IAAKnG,EAAUjE,EAAMH,GAkCzB,SAASmhC,GAAwBjf,EAAOkf,GACtC,IAEI3qC,EAAGiO,EAFDJ,EAAO,GACP+8B,EAAWnf,EAAMof,uBAAuBF,GAE9C,IAAK3qC,EAAI,EAAGiO,EAAO28B,EAAS3qC,OAAQD,EAAIiO,IAAQjO,EAC9C6N,EAAK5G,KAAK2jC,EAAS5qC,GAAGqO,OAExB,OAAOR,EAET,SAASi9B,GAAWC,EAAOzpC,EAAO0pC,GAAuB,IAGnDhrC,EAAGiO,EAAMG,EAAc68B,EAHcn8B,EAAc,uDAAJ,GAC7CjB,EAAOk9B,EAAMl9B,KACbq9B,EAA8B,WAAjBp8B,EAAQ2d,KAE3B,GAAc,OAAVnrB,EAAJ,CAGA,IAAKtB,EAAI,EAAGiO,EAAOJ,EAAK5N,OAAQD,EAAIiO,IAAQjO,EAAG,CAE7C,IADAoO,GAAgBP,EAAK7N,MACAgrC,EAAS,CAC5B,GAAIl8B,EAAQu7B,IACV,SAEF,MAEFY,EAAaF,EAAM/f,OAAO5c,GACtBvB,EAAeo+B,KAAgBC,GAAyB,IAAV5pC,GAAeiQ,EAAKjQ,KAAWiQ,EAAK05B,MACpF3pC,GAAS2pC,GAGb,OAAO3pC,GAeT,SAAS6pC,GAAUje,EAAO3W,GACxB,IAAM60B,EAAUle,GAASA,EAAMpe,QAAQs8B,QACvC,OAAOA,QAAwBloC,IAAZkoC,QAAwCloC,IAAfqT,EAAKw0B,MAYnD,SAASM,GAAiBC,EAAQC,EAAUC,GAC1C,IAAMC,EAAWH,EAAOC,KAAcD,EAAOC,GAAY,IACzD,OAAOE,EAASD,KAAgBC,EAASD,GAAc,IAEzD,SAASE,GAAoBX,EAAOY,EAAQC,EAAUj/B,GAAM,oBACvCg/B,EAAOE,wBAAwBl/B,GAAMgB,WADE,IAC1D,2BAAmE,KAAxD4I,EAAwD,QAC3DjV,EAAQypC,EAAMx0B,EAAKlI,OACzB,GAAKu9B,GAAYtqC,EAAQ,IAAQsqC,GAAYtqC,EAAQ,EACnD,OAAOiV,EAAKlI,OAJ0C,8BAO1D,OAAO,KAET,SAASy9B,GAAaC,EAAYrS,GAShC,IATwC,IAQpCqR,EAPGtf,EAA4BsgB,EAA5BtgB,MAAoBlV,EAAQw1B,EAArBC,YACRV,EAAS7f,EAAMwgB,UAAYxgB,EAAMwgB,QAAU,IAC1Cp1B,EAAuCN,EAAvCM,OAAQ80B,EAA+Bp1B,EAA/Bo1B,OAAev9B,EAAgBmI,EAAvBlI,MACjB69B,EAAQr1B,EAAOE,KACfo1B,EAAQR,EAAO50B,KACfvW,EA7BR,SAAqB4rC,EAAYC,EAAY91B,GAC3C,gBAAU61B,EAAW3/B,GAArB,YAA2B4/B,EAAW5/B,GAAtC,YAA4C8J,EAAKw0B,OAASx0B,EAAK5J,MA4BnD2/B,CAAYz1B,EAAQ80B,EAAQp1B,GAClCtI,EAAOyrB,EAAOz5B,OAEXD,EAAI,EAAGA,EAAIiO,IAAQjO,EAAG,CAC7B,IAAM2Q,EAAO+oB,EAAO15B,GACJqO,EAAyBsC,EAAjCu7B,GAAwB5qC,EAASqP,EAAjBw7B,IAExBpB,GADmBp6B,EAAKs7B,UAAYt7B,EAAKs7B,QAAU,KAChCE,GAASd,GAAiBC,EAAQ9qC,EAAK6N,IACpDD,GAAgB9M,EACtBypC,EAAMwB,KAAOb,GAAoBX,EAAOY,GAAQ,EAAMp1B,EAAK5J,MAC3Do+B,EAAMyB,QAAUd,GAAoBX,EAAOY,GAAQ,EAAOp1B,EAAK5J,OAGnE,SAAS8/B,GAAgBhhB,EAAO1U,GAC9B,IAAMoW,EAAS1B,EAAM0B,OACrB,OAAO7sB,OAAOuN,KAAKsf,GAAQ+K,QAAO,SAAA13B,GAAG,OAAI2sB,EAAO3sB,GAAKuW,OAASA,KAAM21B,QA0BtE,SAASC,GAAYp2B,EAAMhB,GACzB,IAAMnH,EAAemI,EAAKw1B,WAAW19B,MAC/B0I,EAAOR,EAAKo1B,QAAUp1B,EAAKo1B,OAAO50B,KACxC,GAAKA,EAAL,CAGAxB,EAAQA,GAASgB,EAAKO,QANU,oBAOXvB,GAPW,IAOhC,2BAA4B,KACpB+1B,EADoB,QACJW,QACtB,IAAKX,QAA2BpoC,IAAjBooC,EAAOv0B,SAAsD7T,IAA/BooC,EAAOv0B,GAAM3I,GACxD,cAEKk9B,EAAOv0B,GAAM3I,IAZU,gCAelC,IAAMw+B,GAAqB,SAACngB,GAAD,MAAmB,UAATA,GAA6B,SAATA,GACnDogB,GAAmB,SAACC,EAAQC,GAAT,OAAoBA,EAASD,EAASxsC,OAAOwX,OAAO,GAAIg1B,IAG3EE,G,WACJ,WAAYvhB,EAAOrd,GAAc,oBAC/BxM,KAAK6pB,MAAQA,EACb7pB,KAAKqrC,KAAOxhB,EAAMW,IAClBxqB,KAAKyM,MAAQD,EACbxM,KAAKsrC,gBAAkB,GACvBtrC,KAAKoqC,YAAcpqC,KAAKurC,UACxBvrC,KAAKwrC,MAAQxrC,KAAKoqC,YAAYr/B,KAC9B/K,KAAKkN,aAAU5L,EACftB,KAAK63B,UAAW,EAChB73B,KAAKgH,WAAQ1F,EACbtB,KAAKyrC,iBAAcnqC,EACnBtB,KAAK0rC,oBAAiBpqC,EACtBtB,KAAK2rC,gBAAarqC,EAClBtB,KAAK4rC,gBAAatqC,EAClBtB,KAAK6rC,qBAAsB,EAC3B7rC,KAAK8rC,oBAAqB,EAC1B9rC,KAAK+rC,cAAWzqC,EAChBtB,KAAKgsC,UAAY,GACjBhsC,KAAKisC,a,yDAGL,IAAMt3B,EAAO3U,KAAKoqC,YAClBpqC,KAAK8nC,YACL9nC,KAAKksC,aACLv3B,EAAKw3B,SAAW5C,GAAU50B,EAAKo1B,OAAQp1B,GACvC3U,KAAKosC,gB,kCAEK5/B,GACNxM,KAAKyM,QAAUD,GACjBu+B,GAAY/qC,KAAKoqC,aAEnBpqC,KAAKyM,MAAQD,I,mCAGb,IAAMqd,EAAQ7pB,KAAK6pB,MACblV,EAAO3U,KAAKoqC,YACZiC,EAAUrsC,KAAKssC,aACfC,EAAW,SAACp3B,EAAMvH,EAAGC,EAAG7I,GAAb,MAA4B,MAATmQ,EAAevH,EAAa,MAATuH,EAAenQ,EAAI6I,GACpE2+B,EAAM73B,EAAK83B,QAAUnhC,EAAe+gC,EAAQI,QAAS5B,GAAgBhhB,EAAO,MAC5E6iB,EAAM/3B,EAAKg4B,QAAUrhC,EAAe+gC,EAAQM,QAAS9B,GAAgBhhB,EAAO,MAC5E+iB,EAAMj4B,EAAKk4B,QAAUvhC,EAAe+gC,EAAQQ,QAAShC,GAAgBhhB,EAAO,MAC5Ec,EAAYhW,EAAKgW,UACjBmiB,EAAMn4B,EAAKo4B,QAAUR,EAAS5hB,EAAW6hB,EAAKE,EAAKE,GACnDI,EAAMr4B,EAAKs4B,QAAUV,EAAS5hB,EAAW+hB,EAAKF,EAAKI,GACzDj4B,EAAKc,OAASzV,KAAKktC,cAAcV,GACjC73B,EAAKe,OAAS1V,KAAKktC,cAAcR,GACjC/3B,EAAKw4B,OAASntC,KAAKktC,cAAcN,GACjCj4B,EAAKM,OAASjV,KAAKktC,cAAcJ,GACjCn4B,EAAKo1B,OAAS/pC,KAAKktC,cAAcF,K,mCAGjC,OAAOhtC,KAAK6pB,MAAM1iB,KAAKuiB,SAAS1pB,KAAKyM,S,gCAGrC,OAAOzM,KAAK6pB,MAAMujB,eAAeptC,KAAKyM,S,oCAE1B4gC,GACZ,OAAOrtC,KAAK6pB,MAAM0B,OAAO8hB,K,qCAEZ/hB,GACb,IAAM3W,EAAO3U,KAAKoqC,YAClB,OAAO9e,IAAU3W,EAAKM,OAClBN,EAAKo1B,OACLp1B,EAAKM,S,8BAGTjV,KAAKgkC,QAAQ,W,iCAGb,IAAMrvB,EAAO3U,KAAKoqC,YACdpqC,KAAKgH,OACPoM,GAAoBpT,KAAKgH,MAAOhH,MAE9B2U,EAAKw3B,UACPpB,GAAYp2B,K,mCAId,ID9TuBjE,EAAO2C,EC8TxBg5B,EAAUrsC,KAAKssC,aACfnlC,EAAOklC,EAAQllC,OAASklC,EAAQllC,KAAO,IACvCH,EAAQhH,KAAKgH,MACnB,GAAIgE,EAAS7D,GACXnH,KAAKgH,MA7LX,SAAkCG,GAChC,IAEI/I,EAAGiO,EAAMzN,EAFPqN,EAAOvN,OAAOuN,KAAK9E,GACnBmmC,EAAQ,IAAI3rC,MAAMsK,EAAK5N,QAE7B,IAAKD,EAAI,EAAGiO,EAAOJ,EAAK5N,OAAQD,EAAIiO,IAAQjO,EAC1CQ,EAAMqN,EAAK7N,GACXkvC,EAAMlvC,GAAK,CACTwP,EAAGhP,EACHiP,EAAG1G,EAAKvI,IAGZ,OAAO0uC,EAkLUC,CAAyBpmC,QACjC,GAAIH,IAAUG,EAAM,CACzB,GAAIH,EAAO,CACToM,GAAoBpM,EAAOhH,MAC3B,IAAM2U,EAAO3U,KAAKoqC,YAClBW,GAAYp2B,GACZA,EAAKO,QAAU,GAEb/N,GAAQzI,OAAO8uC,aAAarmC,KD1UJkM,EC2UFrT,MD3UL0Q,EC2UDvJ,GD1UdoM,SACR7C,EAAM6C,SAASC,UAAUnO,KAAKgO,IAGhC3U,OAAOC,eAAe+R,EAAO,WAAY,CACvClS,cAAc,EACdD,YAAY,EACZmB,MAAO,CACL8T,UAAW,CAACH,MAGhBF,GAAYM,SAAQ,SAAC7U,GACnB,IAAMqoC,EAAS,UAAY54B,EAAYzP,GACjC2L,EAAOmG,EAAM9R,GACnBF,OAAOC,eAAe+R,EAAO9R,EAAK,CAChCJ,cAAc,EACdD,YAAY,EACZmB,MAHgC,WAGjB,2BAAN0B,EAAM,yBAANA,EAAM,gBACb,IAAM0lC,EAAMv8B,EAAKnK,MAAMJ,KAAMoB,GAM7B,OALAsP,EAAM6C,SAASC,UAAUC,SAAQ,SAACjJ,GACF,oBAAnBA,EAAOy8B,IAChBz8B,EAAOy8B,GAAP,MAAAz8B,EAAkBpJ,MAGf0lC,UCoTT9mC,KAAKgsC,UAAY,GACjBhsC,KAAKgH,MAAQG,K,oCAIf,IAAMwN,EAAO3U,KAAKoqC,YAClBpqC,KAAKytC,aACDztC,KAAK0tC,qBACP/4B,EAAK03B,QAAU,IAAIrsC,KAAK0tC,sB,4CAGNC,GACpB,IAAMh5B,EAAO3U,KAAKoqC,YACZiC,EAAUrsC,KAAKssC,aACjBsB,GAAe,EACnB5tC,KAAKytC,aACL,IAAMI,EAAal5B,EAAKw3B,SACxBx3B,EAAKw3B,SAAW5C,GAAU50B,EAAKo1B,OAAQp1B,GACnCA,EAAKw0B,QAAUkD,EAAQlD,QACzByE,GAAe,EACf7C,GAAYp2B,GACZA,EAAKw0B,MAAQkD,EAAQlD,OAEvBnpC,KAAK8tC,gBAAgBH,IACjBC,GAAgBC,IAAel5B,EAAKw3B,WACtCjC,GAAalqC,KAAM2U,EAAKO,W,kCAI1B,IAAM0yB,EAAS5nC,KAAK6pB,MAAM+d,OACpBmG,EAAYnG,EAAOoG,iBAAiBhuC,KAAKwrC,OACzCpX,EAASwT,EAAOqG,gBAAgBjuC,KAAKssC,aAAcyB,GAAW,GACpE/tC,KAAKkN,QAAU06B,EAAOsG,eAAe9Z,EAAQp0B,KAAK8tB,cAClD9tB,KAAK63B,SAAW73B,KAAKkN,QAAQie,QAC7BnrB,KAAKsrC,gBAAkB,K,4BAEnBr5B,EAAO8C,GAAO,IAMd3W,EAAGgnC,EAAKtN,EALQnjB,EAAqB3U,KAAlCoqC,YAA0BjjC,EAAQnH,KAAfgH,MACnBiO,EAAoBN,EAApBM,OAAQk3B,EAAYx3B,EAAZw3B,SACT7B,EAAQr1B,EAAOE,KACjBg5B,EAAmB,IAAVl8B,GAAe8C,IAAU5N,EAAK9I,QAAgBsW,EAAKK,QAC5DulB,EAAOtoB,EAAQ,GAAK0C,EAAKO,QAAQjD,EAAQ,GAE7C,IAAsB,IAAlBjS,KAAK63B,SACPljB,EAAKO,QAAU/N,EACfwN,EAAKK,SAAU,EACf8iB,EAAS3wB,MACJ,CAEH2wB,EADEl2B,EAAQuF,EAAK8K,IACNjS,KAAKouC,eAAez5B,EAAMxN,EAAM8K,EAAO8C,GACvC/J,EAAS7D,EAAK8K,IACdjS,KAAKquC,gBAAgB15B,EAAMxN,EAAM8K,EAAO8C,GAExC/U,KAAKsuC,mBAAmB35B,EAAMxN,EAAM8K,EAAO8C,GAGtD,IAAK3W,EAAI,EAAGA,EAAI2W,IAAS3W,EACvBuW,EAAKO,QAAQ9W,EAAI6T,GAASmzB,EAAMtN,EAAO15B,GACnC+vC,KAHkD,OAAf/I,EAAIkF,IAAoB/P,GAAQ6K,EAAIkF,GAAS/P,EAAK+P,MAKrF6D,GAAS,GAEX5T,EAAO6K,GAGXzwB,EAAKK,QAAUm5B,EAEbhC,GACFjC,GAAalqC,KAAM83B,K,yCAGJnjB,EAAMxN,EAAM8K,EAAO8C,GAAO,IAOvC3W,EAAGiO,EAAMI,EANNwI,EAAkBN,EAAlBM,OAAQ80B,EAAUp1B,EAAVo1B,OACTO,EAAQr1B,EAAOE,KACfo1B,EAAQR,EAAO50B,KACfo5B,EAASt5B,EAAOu5B,YAChBC,EAAcx5B,IAAW80B,EACzBjS,EAAS,IAAIn2B,MAAMoT,GAEzB,IAAK3W,EAAI,EAAGiO,EAAO0I,EAAO3W,EAAIiO,IAAQjO,EAAG,OACvCqO,EAAQrO,EAAI6T,EACZ6lB,EAAO15B,IAAP,mBACGksC,EAAQmE,GAAex5B,EAAOtP,MAAM4oC,EAAO9hC,GAAQA,IADtD,cAEG89B,EAAQR,EAAOpkC,MAAMwB,EAAKsF,GAAQA,IAFrC,GAKF,OAAOqrB,I,qCAEMnjB,EAAMxN,EAAM8K,EAAO8C,GAAO,IAGnC3W,EAAGiO,EAAMI,EAAOsC,EAFb0G,EAAkBd,EAAlBc,OAAQC,EAAUf,EAAVe,OACToiB,EAAS,IAAIn2B,MAAMoT,GAEzB,IAAK3W,EAAI,EAAGiO,EAAO0I,EAAO3W,EAAIiO,IAAQjO,EAEpC2Q,EAAO5H,EADPsF,EAAQrO,EAAI6T,GAEZ6lB,EAAO15B,GAAK,CACVwP,EAAG6H,EAAO9P,MAAMoJ,EAAK,GAAItC,GACzBoB,EAAG6H,EAAO/P,MAAMoJ,EAAK,GAAItC,IAG7B,OAAOqrB,I,sCAEOnjB,EAAMxN,EAAM8K,EAAO8C,GAAO,IAIpC3W,EAAGiO,EAAMI,EAAOsC,EAHb0G,EAAkBd,EAAlBc,OAAQC,EAAUf,EAAVe,OADyB,EAEC1V,KAAK63B,SAFN,IAEjC6W,gBAFiC,MAEtB,IAFsB,MAEjBC,gBAFiB,MAEN,IAFM,EAGlC7W,EAAS,IAAIn2B,MAAMoT,GAEzB,IAAK3W,EAAI,EAAGiO,EAAO0I,EAAO3W,EAAIiO,IAAQjO,EAEpC2Q,EAAO5H,EADPsF,EAAQrO,EAAI6T,GAEZ6lB,EAAO15B,GAAK,CACVwP,EAAG6H,EAAO9P,MAAMmI,EAAiBiB,EAAM2/B,GAAWjiC,GAClDoB,EAAG6H,EAAO/P,MAAMmI,EAAiBiB,EAAM4/B,GAAWliC,IAGtD,OAAOqrB,I,gCAECrrB,GACR,OAAOzM,KAAKoqC,YAAYl1B,QAAQzI,K,qCAEnBA,GACb,OAAOzM,KAAKoqC,YAAYjjC,KAAKsF,K,iCAEpB6e,EAAOwM,EAAQjN,GACxB,IAAMhB,EAAQ7pB,KAAK6pB,MACblV,EAAO3U,KAAKoqC,YACZ1qC,EAAQo4B,EAAOxM,EAAMnW,MAK3B,OAAO+zB,GAJO,CACZj9B,KAAM68B,GAAwBjf,GAAO,GACrCT,OAAQ0O,EAAOuS,QAAQ/e,EAAMnW,OAENzV,EAAOiV,EAAKlI,MAAO,CAACoe,W,4CAEzBhb,EAAOyb,EAAOwM,EAAQqR,GAC1C,IAAMyF,EAAc9W,EAAOxM,EAAMnW,MAC7BzV,EAAwB,OAAhBkvC,EAAuBC,IAAMD,EACnCxlB,EAAS+f,GAASrR,EAAOuS,QAAQ/e,EAAMnW,MACzCg0B,GAAS/f,IACX+f,EAAM/f,OAASA,EACf1pB,EAAQwpC,GAAWC,EAAOyF,EAAa5uC,KAAKoqC,YAAY39B,QAE1DoD,EAAM/H,IAAMlF,KAAKkF,IAAI+H,EAAM/H,IAAKpI,GAChCmQ,EAAMlI,IAAM/E,KAAK+E,IAAIkI,EAAMlI,IAAKjI,K,gCAExB4rB,EAAOwjB,GACf,IAQI1wC,EAAG05B,EARDnjB,EAAO3U,KAAKoqC,YACZl1B,EAAUP,EAAKO,QACfi5B,EAASx5B,EAAKK,SAAWsW,IAAU3W,EAAKM,OACxC5I,EAAO6I,EAAQ7W,OACf0wC,EAAa/uC,KAAKgvC,eAAe1jB,GACjC6d,EAtPU,SAAC2F,EAAUn6B,EAAMkV,GAAjB,OAA2BilB,IAAan6B,EAAKs6B,QAAUt6B,EAAKw3B,UAC3E,CAAClgC,KAAM68B,GAAwBjf,GAAO,GAAOT,OAAQ,MAqPxC8lB,CAAYJ,EAAUn6B,EAAM3U,KAAK6pB,OACzCha,EAAQ,CAAC/H,IAAKoD,OAAOmE,kBAAmB1H,IAAKuD,OAAOikC,mBAPjC,EApU7B,SAAuB7jB,GAAO,MACeA,EAAMlW,gBAA1CtN,EADqB,EACrBA,IAAKH,EADgB,EAChBA,IAAK0N,EADW,EACXA,WAAYC,EADD,EACCA,WAC7B,MAAO,CACLxN,IAAKuN,EAAavN,EAAMoD,OAAOikC,kBAC/BxnC,IAAK2N,EAAa3N,EAAMuD,OAAOmE,mBAwUQ+F,CAAc25B,GAAzCK,EARa,EAQlBtnC,IAAoBunC,EARF,EAQH1nC,IAEtB,SAAS2nC,IAEP,IAAMjG,GADNvR,EAAS5iB,EAAQ9W,IACS2wC,EAAW55B,MACrC,OAAQlK,EAAe6sB,EAAOxM,EAAMnW,QAAUi6B,EAAW/F,GAAcgG,EAAWhG,EAEpF,IAAKjrC,EAAI,EAAGA,EAAIiO,IACVijC,MAGJtvC,KAAKuvC,sBAAsB1/B,EAAOyb,EAAOwM,EAAQqR,IAC7CgF,MALkB/vC,GASxB,GAAI+vC,EACF,IAAK/vC,EAAIiO,EAAO,EAAGjO,GAAK,IAAKA,EAC3B,IAAIkxC,IAAJ,CAGAtvC,KAAKuvC,sBAAsB1/B,EAAOyb,EAAOwM,EAAQqR,GACjD,MAGJ,OAAOt5B,I,yCAEUyb,GACjB,IAEIltB,EAAGiO,EAAM3M,EAFPo4B,EAAS93B,KAAKoqC,YAAYl1B,QAC1BkU,EAAS,GAEf,IAAKhrB,EAAI,EAAGiO,EAAOyrB,EAAOz5B,OAAQD,EAAIiO,IAAQjO,EAC5CsB,EAAQo4B,EAAO15B,GAAGktB,EAAMnW,MACpBlK,EAAevL,IACjB0pB,EAAO/jB,KAAK3F,GAGhB,OAAO0pB,I,uCAGP,OAAO,I,uCAEQ3c,GACf,IAAMkI,EAAO3U,KAAKoqC,YACZn1B,EAASN,EAAKM,OACd80B,EAASp1B,EAAKo1B,OACdjS,EAAS93B,KAAKwvC,UAAU/iC,GAC9B,MAAO,CACLgjC,MAAOx6B,EAAS,GAAKA,EAAOy6B,iBAAiB5X,EAAO7iB,EAAOE,OAAS,GACpEzV,MAAOqqC,EAAS,GAAKA,EAAO2F,iBAAiB5X,EAAOiS,EAAO50B,OAAS,M,8BAGhE0V,GACN,IAAMlW,EAAO3U,KAAKoqC,YAClBpqC,KAAKuI,OAAOsiB,GAAQ,WACpBlW,EAAKg7B,MAxcT,SAAgBjwC,GACd,IAAI0W,EAAGpR,EAAG6J,EAAG+J,EASb,OARI5N,EAAStL,IACX0W,EAAI1W,EAAMowB,IACV9qB,EAAItF,EAAMmwB,MACVhhB,EAAInP,EAAMqwB,OACVnX,EAAIlZ,EAAMkwB,MAEVxZ,EAAIpR,EAAI6J,EAAI+J,EAAIlZ,EAEX,CACLowB,IAAK1Z,EACLyZ,MAAO7qB,EACP+qB,OAAQlhB,EACR+gB,KAAMhX,EACNg3B,UAAoB,IAAVlwC,GAybGmwC,CAAOvkC,EAAetL,KAAKkN,QAAQ+iB,KArdpD,SAAqBxa,EAAQC,EAAQmzB,GACnC,IAAwB,IAApBA,EACF,OAAO,EAET,IAAMj7B,EAAIg7B,GAAUnzB,EAAQozB,GACtBh7B,EAAI+6B,GAAUlzB,EAAQmzB,GAC5B,MAAO,CACL/Y,IAAKjiB,EAAEqE,IACP2d,MAAOjiB,EAAEsE,IACT6d,OAAQliB,EAAEoE,MACV2d,KAAMhiB,EAAEqE,OA2c8C69B,CAAYn7B,EAAKc,OAAQd,EAAKe,OAAQ1V,KAAK+vC,sB,6BAE5FllB,M,6BAEL,IASIzsB,EATEosB,EAAMxqB,KAAKqrC,KACXxhB,EAAQ7pB,KAAK6pB,MACblV,EAAO3U,KAAKoqC,YACZpgB,EAAWrV,EAAKxN,MAAQ,GACxBuoB,EAAO7F,EAAMmmB,UACb3I,EAAS,GACTp1B,EAAQjS,KAAK2rC,YAAc,EAC3B52B,EAAQ/U,KAAK4rC,YAAe5hB,EAAS3rB,OAAS4T,EAC9CwZ,EAA0BzrB,KAAKkN,QAAQue,wBAK7C,IAHI9W,EAAK03B,SACP13B,EAAK03B,QAAQ/H,KAAK9Z,EAAKkF,EAAMzd,EAAO8C,GAEjC3W,EAAI6T,EAAO7T,EAAI6T,EAAQ8C,IAAS3W,EAAG,CACtC,IAAMo9B,EAAUxR,EAAS5rB,GACrBo9B,EAAQyT,SAGRzT,EAAQ6L,QAAU5b,EACpB4b,EAAOhiC,KAAKm2B,GAEZA,EAAQ8I,KAAK9Z,EAAKkF,IAGtB,IAAKtxB,EAAI,EAAGA,EAAIipC,EAAOhpC,SAAUD,EAC/BipC,EAAOjpC,GAAGkmC,KAAK9Z,EAAKkF,K,+BAGfjjB,EAAO46B,GACd,IAAMxc,EAAOwc,EAAS,SAAW,UACjC,YAAiB/lC,IAAVmL,GAAuBzM,KAAKoqC,YAAYiC,QAC3CrsC,KAAKiwC,6BAA6BplB,GAClC7qB,KAAKkwC,0BAA0BzjC,GAAS,EAAGoe,K,iCAEtCpe,EAAO46B,EAAQxc,GACxB,IACIjB,EADEyiB,EAAUrsC,KAAKssC,aAErB,GAAI7/B,GAAS,GAAKA,EAAQzM,KAAKoqC,YAAYjjC,KAAK9I,OAAQ,CACtD,IAAMm9B,EAAUx7B,KAAKoqC,YAAYjjC,KAAKsF,IACtCmd,EAAU4R,EAAQuQ,WACfvQ,EAAQuQ,SAxXjB,SAA2B7U,EAAQzqB,EAAO+uB,GACxC,OAAOvH,GAAciD,EAAQ,CAC3BmQ,QAAQ,EACR8I,UAAW1jC,EACXqrB,YAAQx2B,EACR8uC,SAAK9uC,EACLk6B,UACA/uB,QACAoe,KAAM,UACN9f,KAAM,SA+WkBslC,CAAkBrwC,KAAK8tB,aAAcrhB,EAAO+uB,KAC1D1D,OAAS93B,KAAKwvC,UAAU/iC,GAChCmd,EAAQwmB,IAAM/D,EAAQllC,KAAKsF,GAC3Bmd,EAAQnd,MAAQmd,EAAQumB,UAAY1jC,OAEpCmd,EAAU5pB,KAAK+rC,WACZ/rC,KAAK+rC,SA1Yd,SAA8B7U,EAAQzqB,GACpC,OAAOwnB,GAAciD,EACnB,CACEmQ,QAAQ,EACRgF,aAAS/qC,EACTkL,aAAcC,EACdA,QACAoe,KAAM,UACN9f,KAAM,YAkYaulC,CAAqBtwC,KAAK6pB,MAAMiE,aAAc9tB,KAAKyM,SAC9D4/B,QAAUA,EAClBziB,EAAQnd,MAAQmd,EAAQpd,aAAexM,KAAKyM,MAI9C,OAFAmd,EAAQyd,SAAWA,EACnBzd,EAAQiB,KAAOA,EACRjB,I,mDAEoBiB,GAC3B,OAAO7qB,KAAKuwC,uBAAuBvwC,KAAK0tC,mBAAmB7iC,GAAIggB,K,gDAEvCpe,EAAOoe,GAC/B,OAAO7qB,KAAKuwC,uBAAuBvwC,KAAKwwC,gBAAgB3lC,GAAIggB,EAAMpe,K,6CAE7CgkC,GAAsC,WAAzB5lB,EAAyB,uDAAlB,UAAWpe,EAAO,uCACrD46B,EAAkB,WAATxc,EACTmC,EAAQhtB,KAAKsrC,gBACbhM,EAAWmR,EAAc,IAAM5lB,EAC/BqgB,EAASle,EAAMsS,GACfoR,EAAU1wC,KAAK6rC,qBAAuBp9B,EAAQhC,GACpD,GAAIy+B,EACF,OAAOD,GAAiBC,EAAQwF,GAElC,IAAM9I,EAAS5nC,KAAK6pB,MAAM+d,OACpBmG,EAAYnG,EAAO+I,wBAAwB3wC,KAAKwrC,MAAOiF,GACvDpc,EAAWgT,EAAS,CAAC,GAAD,OAAIoJ,EAAJ,SAAwB,QAASA,EAAa,IAAM,CAACA,EAAa,IACtFrc,EAASwT,EAAOqG,gBAAgBjuC,KAAKssC,aAAcyB,GACnDpyB,EAAQjd,OAAOuN,KAAKod,GAASW,SAASymB,IACtC7mB,EAAU,kBAAM,EAAKkE,WAAWrhB,EAAO46B,IACvCje,EAASwe,EAAOgJ,oBAAoBxc,EAAQzY,EAAOiO,EAASyK,GAKlE,OAJIjL,EAAO+e,UACT/e,EAAO+e,QAAUuI,EACjB1jB,EAAMsS,GAAY5gC,OAAOmyC,OAAO5F,GAAiB7hB,EAAQsnB,KAEpDtnB,I,yCAEU3c,EAAOqkC,EAAYzJ,GACpC,IAOIn6B,EAPE2c,EAAQ7pB,KAAK6pB,MACbmD,EAAQhtB,KAAKsrC,gBACbhM,EAAW,aAAH,OAAgBwR,GACxB5F,EAASle,EAAMsS,GACrB,GAAI4L,EACF,OAAOA,EAGT,IAAgC,IAA5BrhB,EAAM3c,QAAQqc,UAAqB,CACrC,IAAMqe,EAAS5nC,KAAK6pB,MAAM+d,OACpBmG,EAAYnG,EAAOmJ,0BAA0B/wC,KAAKwrC,MAAOsF,GACzD1c,EAASwT,EAAOqG,gBAAgBjuC,KAAKssC,aAAcyB,GACzD7gC,EAAU06B,EAAOsG,eAAe9Z,EAAQp0B,KAAK8tB,WAAWrhB,EAAO46B,EAAQyJ,IAEzE,IAAMtJ,EAAa,IAAIG,GAAW9d,EAAO3c,GAAWA,EAAQs6B,YAI5D,OAHIt6B,GAAWA,EAAQuoB,aACrBzI,EAAMsS,GAAY5gC,OAAOmyC,OAAOrJ,IAE3BA,I,uCAEQt6B,GACf,GAAKA,EAAQi7B,QAGb,OAAOnoC,KAAK0rC,iBAAmB1rC,KAAK0rC,eAAiBhtC,OAAOwX,OAAO,GAAIhJ,M,qCAE1D2d,EAAMmmB,GACnB,OAAQA,GAAiBhG,GAAmBngB,IAAS7qB,KAAK6pB,MAAMonB,sB,wCAEhDh/B,EAAO4Y,GACvB,IAAMqmB,EAAYlxC,KAAKkwC,0BAA0Bj+B,EAAO4Y,GAClDsmB,EAA0BnxC,KAAK0rC,eAC/BsF,EAAgBhxC,KAAKoxC,iBAAiBF,GACtCG,EAAiBrxC,KAAKqxC,eAAexmB,EAAMmmB,IAAmBA,IAAkBG,EAEtF,OADAnxC,KAAKsxC,oBAAoBN,EAAenmB,EAAMqmB,GACvC,CAACF,gBAAeK,oB,oCAEX7V,EAAS/uB,EAAOjJ,EAAYqnB,GACpCmgB,GAAmBngB,GACrBnsB,OAAOwX,OAAOslB,EAASh4B,GAEvBxD,KAAKuxC,mBAAmB9kC,EAAOoe,GAAMtiB,OAAOizB,EAASh4B,K,0CAGrCwtC,EAAenmB,EAAMqd,GACnC8I,IAAkBhG,GAAmBngB,IACvC7qB,KAAKuxC,wBAAmBjwC,EAAWupB,GAAMtiB,OAAOyoC,EAAe9I,K,gCAGzD1M,EAAS/uB,EAAOoe,EAAMwc,GAC9B7L,EAAQ6L,OAASA,EACjB,IAAMn6B,EAAUlN,KAAK2+B,SAASlyB,EAAO46B,GACrCrnC,KAAKuxC,mBAAmB9kC,EAAOoe,EAAMwc,GAAQ9+B,OAAOizB,EAAS,CAC3DtuB,SAAWm6B,GAAUrnC,KAAKoxC,iBAAiBlkC,IAAaA,M,uCAG3CsuB,EAAShvB,EAAcC,GACtCzM,KAAKwxC,UAAUhW,EAAS/uB,EAAO,UAAU,K,oCAE7B+uB,EAAShvB,EAAcC,GACnCzM,KAAKwxC,UAAUhW,EAAS/uB,EAAO,UAAU,K,iDAGzC,IAAM+uB,EAAUx7B,KAAKoqC,YAAYiC,QAC7B7Q,GACFx7B,KAAKwxC,UAAUhW,OAASl6B,EAAW,UAAU,K,8CAI/C,IAAMk6B,EAAUx7B,KAAKoqC,YAAYiC,QAC7B7Q,GACFx7B,KAAKwxC,UAAUhW,OAASl6B,EAAW,UAAU,K,sCAGjCqsC,GACd,IADgC,EAC1BxmC,EAAOnH,KAAKgH,MACZgjB,EAAWhqB,KAAKoqC,YAAYjjC,KAFF,cAGGnH,KAAKgsC,WAHR,IAGhC,2BAAmD,8BAAvC/E,EAAuC,KAA/BwK,EAA+B,KAAzBC,EAAyB,KACjD1xC,KAAKinC,GAAQwK,EAAMC,IAJW,8BAMhC1xC,KAAKgsC,UAAY,GACjB,IAAM2F,EAAU3nB,EAAS3rB,OACnBuzC,EAAUzqC,EAAK9I,OACf0W,EAAQnS,KAAKkF,IAAI8pC,EAASD,GAC5B58B,GACF/U,KAAK2F,MAAM,EAAGoP,GAEZ68B,EAAUD,EACZ3xC,KAAK6xC,gBAAgBF,EAASC,EAAUD,EAAShE,GACxCiE,EAAUD,GACnB3xC,KAAK8xC,gBAAgBF,EAASD,EAAUC,K,sCAG5B3/B,EAAO8C,GAAgC,IAIjD3W,EAJwBuvC,IAAyB,yDAC/Ch5B,EAAO3U,KAAKoqC,YACZjjC,EAAOwN,EAAKxN,KACZ+K,EAAMD,EAAQ8C,EAEdg9B,EAAO,SAACxoC,GAEZ,IADAA,EAAIlL,QAAU0W,EACT3W,EAAImL,EAAIlL,OAAS,EAAGD,GAAK8T,EAAK9T,IACjCmL,EAAInL,GAAKmL,EAAInL,EAAI2W,IAIrB,IADAg9B,EAAK5qC,GACA/I,EAAI6T,EAAO7T,EAAI8T,IAAO9T,EACzB+I,EAAK/I,GAAK,IAAI4B,KAAKwwC,gBAEjBxwC,KAAK63B,UACPka,EAAKp9B,EAAKO,SAEZlV,KAAK2F,MAAMsM,EAAO8C,GACd44B,GACF3tC,KAAKgyC,eAAe7qC,EAAM8K,EAAO8C,EAAO,W,qCAG7BymB,EAASvpB,EAAO8C,EAAO8V,M,sCACtB5Y,EAAO8C,GACrB,IAAMJ,EAAO3U,KAAKoqC,YAClB,GAAIpqC,KAAK63B,SAAU,CACjB,IAAMoa,EAAUt9B,EAAKO,QAAQhN,OAAO+J,EAAO8C,GACvCJ,EAAKw3B,UACPpB,GAAYp2B,EAAMs9B,GAGtBt9B,EAAKxN,KAAKe,OAAO+J,EAAO8C,K,4BAEpB3T,GACJ,GAAIpB,KAAK63B,SACP73B,KAAKgsC,UAAU3mC,KAAKjE,OACf,mBACwBA,EADxB,GACE6lC,EADF,KACUwK,EADV,KACgBC,EADhB,KAEL1xC,KAAKinC,GAAQwK,EAAMC,GAErB1xC,KAAK6pB,MAAMqoB,aAAa7sC,KAAxB,CAA8BrF,KAAKyM,OAAnC,mBAA6CrL,O,oCAG7C,IAAM2T,EAAQ5U,UAAU9B,OACxB2B,KAAKmyC,MAAM,CAAC,kBAAmBnyC,KAAKssC,aAAanlC,KAAK9I,OAAS0W,EAAOA,M,mCAGtE/U,KAAKmyC,MAAM,CAAC,kBAAmBnyC,KAAKoqC,YAAYjjC,KAAK9I,OAAS,EAAG,M,qCAGjE2B,KAAKmyC,MAAM,CAAC,kBAAmB,EAAG,M,oCAEtBlgC,EAAO8C,GACfA,GACF/U,KAAKmyC,MAAM,CAAC,kBAAmBlgC,EAAO8C,IAExC,IAAMq9B,EAAWjyC,UAAU9B,OAAS,EAChC+zC,GACFpyC,KAAKmyC,MAAM,CAAC,kBAAmBlgC,EAAOmgC,M,uCAIxCpyC,KAAKmyC,MAAM,CAAC,kBAAmB,EAAGhyC,UAAU9B,a,KAkBhD,SAASg0C,GAAqB19B,GAC5B,IAGIvW,EAAGiO,EAAMimC,EAAM/X,EAHbjP,EAAQ3W,EAAKM,OACbmU,EAbR,SAA2BkC,EAAOvgB,GAChC,IAAKugB,EAAMinB,OAAOC,KAAM,CAGtB,IAFA,IAAMC,EAAennB,EAAM2e,wBAAwBl/B,GAC/Cqe,EAAS,GACJhrB,EAAI,EAAGiO,EAAOomC,EAAap0C,OAAQD,EAAIiO,EAAMjO,IACpDgrB,EAASA,EAAOllB,OAAOuuC,EAAar0C,GAAG+rC,WAAWuI,mBAAmBpnB,IAEvEA,EAAMinB,OAAOC,KAAO9+B,GAAa0V,EAAOupB,MAAK,SAAC/jC,EAAGC,GAAJ,OAAUD,EAAIC,MAE7D,OAAOyc,EAAMinB,OAAOC,KAILI,CAAkBtnB,EAAO3W,EAAK5J,MACzCjD,EAAMwjB,EAAMunB,QAEVC,EAAmB,WACV,QAATR,IAA4B,QAAVA,IAGlB7jC,EAAQ8rB,KACVzyB,EAAMlF,KAAKkF,IAAIA,EAAKlF,KAAK4N,IAAI8hC,EAAO/X,IAASzyB,IAE/CyyB,EAAO+X,IAET,IAAKl0C,EAAI,EAAGiO,EAAO+c,EAAO/qB,OAAQD,EAAIiO,IAAQjO,EAC5Ck0C,EAAOhnB,EAAM/V,iBAAiB6T,EAAOhrB,IACrC00C,IAGF,IADAvY,OAAOj5B,EACFlD,EAAI,EAAGiO,EAAOif,EAAMynB,MAAM10C,OAAQD,EAAIiO,IAAQjO,EACjDk0C,EAAOhnB,EAAM0nB,gBAAgB50C,GAC7B00C,IAEF,OAAOhrC,EA2DT,SAASmrC,GAAWC,EAAOnkC,EAAMg7B,EAAQ3rC,GAMvC,OALIwD,EAAQsxC,GAtBd,SAAuBA,EAAOnkC,EAAMg7B,EAAQ3rC,GAC1C,IAAM+0C,EAAapJ,EAAOpkC,MAAMutC,EAAM,GAAI90C,GACpCg1C,EAAWrJ,EAAOpkC,MAAMutC,EAAM,GAAI90C,GAClC0J,EAAMlF,KAAKkF,IAAIqrC,EAAYC,GAC3BzrC,EAAM/E,KAAK+E,IAAIwrC,EAAYC,GAC7BC,EAAWvrC,EACXwrC,EAAS3rC,EACT/E,KAAK4N,IAAI1I,GAAOlF,KAAK4N,IAAI7I,KAC3B0rC,EAAW1rC,EACX2rC,EAASxrC,GAEXiH,EAAKg7B,EAAO50B,MAAQm+B,EACpBvkC,EAAKwkC,QAAU,CACbF,WACAC,SACArhC,MAAOkhC,EACPjhC,IAAKkhC,EACLtrC,MACAH,OAKA6rC,CAAcN,EAAOnkC,EAAMg7B,EAAQ3rC,GAEnC2Q,EAAKg7B,EAAO50B,MAAQ40B,EAAOpkC,MAAMutC,EAAO90C,GAEnC2Q,EAET,SAAS0kC,GAAsB9+B,EAAMxN,EAAM8K,EAAO8C,GAChD,IAKI3W,EAAGiO,EAAM0C,EAAMmkC,EALbj+B,EAASN,EAAKM,OACd80B,EAASp1B,EAAKo1B,OACdwE,EAASt5B,EAAOu5B,YAChBC,EAAcx5B,IAAW80B,EACzBjS,EAAS,GAEf,IAAK15B,EAAI6T,EAAO5F,EAAO4F,EAAQ8C,EAAO3W,EAAIiO,IAAQjO,EAChD80C,EAAQ/rC,EAAK/I,IACb2Q,EAAO,IACFkG,EAAOE,MAAQs5B,GAAex5B,EAAOtP,MAAM4oC,EAAOnwC,GAAIA,GAC3D05B,EAAOzyB,KAAK4tC,GAAWC,EAAOnkC,EAAMg7B,EAAQ3rC,IAE9C,OAAO05B,EAET,SAAS4b,GAAWC,GAClB,OAAOA,QAA8BryC,IAApBqyC,EAAON,eAA4C/xC,IAAlBqyC,EAAOL,OA4B3D,SAASM,GAAiBpwC,EAAY0J,EAASi8B,EAAO18B,GACpD,IAAIonC,EAAO3mC,EAAQ4mC,cACbhN,EAAM,GACZ,GAAK+M,EAIL,IAAa,IAATA,EAAJ,CAP2D,MApB7D,SAAqBrwC,GACnB,IAAIuI,EAASkG,EAAOC,EAAK4d,EAAKC,EAiB9B,OAhBIvsB,EAAWuwC,YACbhoC,EAAUvI,EAAW+G,KAAO/G,EAAWoK,EACvCqE,EAAQ,OACRC,EAAM,UAENnG,EAAUvI,EAAW+G,KAAO/G,EAAWqK,EACvCoE,EAAQ,SACRC,EAAM,OAEJnG,GACF+jB,EAAM,MACNC,EAAS,UAETD,EAAM,QACNC,EAAS,OAEJ,CAAC9d,QAAOC,MAAKnG,UAAS+jB,MAAKC,UAaSikB,CAAYxwC,GAAhDyO,EAXoD,EAWpDA,MAAOC,EAX6C,EAW7CA,IAAKnG,EAXwC,EAWxCA,QAAS+jB,EAX+B,EAW/BA,IAAKC,EAX0B,EAW1BA,OACpB,WAAT8jB,GAAqB1K,IACvB3lC,EAAWywC,oBAAqB,GAC3B9K,EAAMwB,MAAQ,KAAOl+B,EACxBonC,EAAO/jB,GACGqZ,EAAMyB,SAAW,KAAOn+B,EAClConC,EAAO9jB,GAEP+W,EAAIoN,GAAUnkB,EAAQ9d,EAAOC,EAAKnG,KAAY,EAC9C8nC,EAAO/jB,IAGXgX,EAAIoN,GAAUL,EAAM5hC,EAAOC,EAAKnG,KAAY,EAC5CvI,EAAWswC,cAAgBhN,OAhBzBtjC,EAAWswC,cAAgB,CAAChkB,KAAK,EAAMD,OAAO,EAAME,QAAQ,EAAMH,MAAM,QAJxEpsB,EAAWswC,cAAgBhN,EAsB/B,SAASoN,GAAUL,EAAMjlC,EAAGC,EAAG9C,GAS/B,IAAcooC,EAAM5nC,EAAI6nC,EAFtB,OANIroC,GAQkBqoC,EAPCvlC,EACrBglC,EAAOQ,GADPR,GAOUM,EAPEN,MAOItnC,EAPEqC,GAQCwlC,EAAKD,IAASC,EAAK7nC,EAAK4nC,EAPrBtlC,EAAGD,IAEzBilC,EAAOQ,GAASR,EAAMjlC,EAAGC,GAEpBglC,EAKT,SAASQ,GAAS1mC,EAAGsE,EAAOC,GAC1B,MAAa,UAANvE,EAAgBsE,EAAc,QAANtE,EAAcuE,EAAMvE,EAErD,SAAS2mC,GAAiB9wC,EAA1B,EAAuD0jB,GAAO,IAAvBqtB,EAAuB,EAAvBA,cACrC/wC,EAAW+wC,cAAkC,SAAlBA,EACb,IAAVrtB,EAAc,IAAO,EACrBqtB,EAjMNnJ,GAAkB/hB,SAAW,GAC7B+hB,GAAkBnsC,UAAUyuC,mBAAqB,KACjDtC,GAAkBnsC,UAAUuxC,gBAAkB,K,IAiMxCgE,G,iLACe7/B,EAAMxN,EAAM8K,EAAO8C,GACpC,OAAO0+B,GAAsB9+B,EAAMxN,EAAM8K,EAAO8C,K,qCAEnCJ,EAAMxN,EAAM8K,EAAO8C,GAChC,OAAO0+B,GAAsB9+B,EAAMxN,EAAM8K,EAAO8C,K,sCAElCJ,EAAMxN,EAAM8K,EAAO8C,GAAO,IAMpC3W,EAAGiO,EAAM0C,EAAMrM,EALZuS,EAAkBN,EAAlBM,OAAQ80B,EAAUp1B,EAAVo1B,OADyB,EAEC/pC,KAAK63B,SAFN,IAEjC6W,gBAFiC,MAEtB,IAFsB,MAEjBC,gBAFiB,MAEN,IAFM,EAGlC8F,EAA2B,MAAhBx/B,EAAOE,KAAeu5B,EAAWC,EAC5C+F,EAA2B,MAAhB3K,EAAO50B,KAAeu5B,EAAWC,EAC5C7W,EAAS,GAEf,IAAK15B,EAAI6T,EAAO5F,EAAO4F,EAAQ8C,EAAO3W,EAAIiO,IAAQjO,EAChDsE,EAAMyE,EAAK/I,IACX2Q,EAAO,IACFkG,EAAOE,MAAQF,EAAOtP,MAAMmI,EAAiBpL,EAAK+xC,GAAWr2C,GAClE05B,EAAOzyB,KAAK4tC,GAAWnlC,EAAiBpL,EAAKgyC,GAAW3lC,EAAMg7B,EAAQ3rC,IAExE,OAAO05B,I,4CAEajoB,EAAOyb,EAAOwM,EAAQqR,GAC1C,6EAA4Bt5B,EAAOyb,EAAOwM,EAAQqR,GAClD,IAAMwK,EAAS7b,EAAOyb,QAClBI,GAAUroB,IAAUtrB,KAAKoqC,YAAYL,SACvCl6B,EAAM/H,IAAMlF,KAAKkF,IAAI+H,EAAM/H,IAAK6rC,EAAO7rC,KACvC+H,EAAMlI,IAAM/E,KAAK+E,IAAIkI,EAAMlI,IAAKgsC,EAAOhsC,Q,uCAIzC,OAAO,I,uCAEQ8E,GACf,IAAMkI,EAAO3U,KAAKoqC,YACXn1B,EAAkBN,EAAlBM,OAAQ80B,EAAUp1B,EAAVo1B,OACTjS,EAAS93B,KAAKwvC,UAAU/iC,GACxBknC,EAAS7b,EAAOyb,QAChB7zC,EAAQg0C,GAAWC,GACrB,IAAMA,EAAO1hC,MAAQ,KAAO0hC,EAAOzhC,IAAM,IACzC,GAAK63B,EAAO2F,iBAAiB5X,EAAOiS,EAAO50B,OAC/C,MAAO,CACLs6B,MAAO,GAAKx6B,EAAOy6B,iBAAiB5X,EAAO7iB,EAAOE,OAClDzV,W,mCAIFM,KAAK6rC,qBAAsB,EAC3B,mEACa7rC,KAAKoqC,YACbjB,MAAQnpC,KAAKssC,aAAanD,Q,6BAE1Bte,GACL,IAAMlW,EAAO3U,KAAKoqC,YAClBpqC,KAAKgyC,eAAer9B,EAAKxN,KAAM,EAAGwN,EAAKxN,KAAK9I,OAAQwsB,K,qCAEvC8pB,EAAM1iC,EAAO8C,EAAO8V,GAOjC,IANA,IAAM9jB,EAAiB,UAAT8jB,EACPpe,EAAgCzM,KAAhCyM,MAAqBs9B,EAAW/pC,KAAzBoqC,YAAcL,OACtBx/B,EAAOw/B,EAAO6K,eACdb,EAAahK,EAAO8K,eACpBC,EAAQ90C,KAAK+0C,YALoB,EAMC/0C,KAAKg1C,kBAAkB/iC,EAAO4Y,GAA/DmmB,EANgC,EAMhCA,cAAeK,EANiB,EAMjBA,eACbjzC,EAAI6T,EAAO7T,EAAI6T,EAAQ8C,EAAO3W,IAAK,CAC1C,IAAM05B,EAAS93B,KAAKwvC,UAAUpxC,GACxB62C,EAAUluC,GAAS+D,EAAcgtB,EAAOiS,EAAO50B,OAAS,CAAC5K,OAAM2qC,KAAM3qC,GAAQvK,KAAKm1C,yBAAyB/2C,GAC3Gg3C,EAAUp1C,KAAKq1C,yBAAyBj3C,EAAG02C,GAC3C3L,GAASrR,EAAOuS,SAAW,IAAIN,EAAO50B,MACtC3R,EAAa,CACjBuwC,aACAxpC,KAAM0qC,EAAQ1qC,KACd0pC,oBAAqB9K,GAASuK,GAAW5b,EAAOyb,UAAa9mC,IAAU08B,EAAMwB,MAAQl+B,IAAU08B,EAAMyB,QACrGh9B,EAAGmmC,EAAakB,EAAQC,KAAOE,EAAQE,OACvCznC,EAAGkmC,EAAaqB,EAAQE,OAASL,EAAQC,KACzCjnB,OAAQ8lB,EAAaqB,EAAQtmC,KAAOlM,KAAK4N,IAAIykC,EAAQnmC,MACrD+d,MAAOknB,EAAanxC,KAAK4N,IAAIykC,EAAQnmC,MAAQsmC,EAAQtmC,MAEnDuiC,IACF7tC,EAAW0J,QAAU8jC,GAAiBhxC,KAAKkwC,0BAA0B9xC,EAAGu2C,EAAKv2C,GAAGipC,OAAS,SAAWxc,IAEtG,IAAM3d,EAAU1J,EAAW0J,SAAWynC,EAAKv2C,GAAG8O,QAC9C0mC,GAAiBpwC,EAAY0J,EAASi8B,EAAO18B,GAC7C6nC,GAAiB9wC,EAAY0J,EAAS4nC,EAAM5tB,OAC5ClnB,KAAKu1C,cAAcZ,EAAKv2C,GAAIA,EAAGoF,EAAYqnB,M,iCAGpC5X,EAAMk9B,GAAW,MACnBl7B,EAAUjV,KAAKoqC,YAAfn1B,OACD+zB,EAAW/zB,EAAOg1B,wBAAwBjqC,KAAKwrC,OAClDlV,QAAO,SAAA3hB,GAAI,OAAIA,EAAKw1B,WAAWj9B,QAAQsoC,WACpChM,EAAUv0B,EAAO/H,QAAQs8B,QACzBE,EAAS,GACT+L,EAAW,SAAC9gC,GAChB,IAAMmjB,EAASnjB,EAAKw1B,WAAWqF,UAAUW,GACnC5nB,EAAMuP,GAAUA,EAAOnjB,EAAKo1B,OAAO50B,MACzC,GAAIrK,EAAcyd,IAAQjY,MAAMiY,GAC9B,OAAO,GAVe,cAaPygB,GAbO,IAa1B,2BAA6B,KAAlBr0B,EAAkB,QAC3B,SAAkBrT,IAAd6uC,IAA2BsF,EAAS9gC,QAGxB,IAAZ60B,IAAqD,IAAhCE,EAAO18B,QAAQ2H,EAAKw0B,aAClC7nC,IAAZkoC,QAAwCloC,IAAfqT,EAAKw0B,QAC3BO,EAAOrkC,KAAKsP,EAAKw0B,OAEfx0B,EAAKlI,QAAUwG,GACjB,OAtBsB,8BA4B1B,OAHKy2B,EAAOrrC,QACVqrC,EAAOrkC,UAAK/D,GAEPooC,I,qCAEMj9B,GACb,OAAOzM,KAAK01C,gBAAWp0C,EAAWmL,GAAOpO,S,qCAE5BmO,EAAcmf,EAAMwkB,GACjC,IAAMzG,EAAS1pC,KAAK01C,WAAWlpC,EAAc2jC,GACvC1jC,OAAkBnL,IAATqqB,EACX+d,EAAO18B,QAAQ2e,IACd,EACL,OAAmB,IAAXlf,EACJi9B,EAAOrrC,OAAS,EAChBoO,I,kCAGJ,IAIIrO,EAAGiO,EAJD2kB,EAAOhxB,KAAKkN,QACZyH,EAAO3U,KAAKoqC,YACZn1B,EAASN,EAAKM,OACd0gC,EAAS,GAEf,IAAKv3C,EAAI,EAAGiO,EAAOsI,EAAKxN,KAAK9I,OAAQD,EAAIiO,IAAQjO,EAC/Cu3C,EAAOtwC,KAAK4P,EAAOM,iBAAiBvV,KAAKwvC,UAAUpxC,GAAG6W,EAAOE,MAAO/W,IAEtE,IAAMw3C,EAAe5kB,EAAK4kB,aAE1B,MAAO,CACL9tC,IAFU8tC,GAAgBvD,GAAqB19B,GAG/CghC,SACA1jC,MAAOgD,EAAO4gC,YACd3jC,IAAK+C,EAAO6gC,UACZC,WAAY/1C,KAAKg2C,iBACjB1qB,MAAOrW,EACPugC,QAASxkB,EAAKwkB,QACdtuB,MAAO0uB,EAAe,EAAI5kB,EAAKilB,mBAAqBjlB,EAAKklB,iB,+CAGpCzpC,GAAO,IAS1ByoC,EAAMpmC,EAToB,EACsD9O,KAA7EoqC,YAAcL,EADS,EACTA,OAAQoC,EADC,EACDA,SADC,EACsDnsC,KAA5CkN,QAAgBipC,EAD1B,EACoB5rC,KAAiB6rC,EADrC,EACqCA,aAC7DC,EAAaF,GAAa,EAC1Bre,EAAS93B,KAAKwvC,UAAU/iC,GACxBknC,EAAS7b,EAAOyb,QAChB+C,EAAW5C,GAAWC,GACxBj0C,EAAQo4B,EAAOiS,EAAO50B,MACtBlD,EAAQ,EACR5T,EAAS8tC,EAAWnsC,KAAKkpC,WAAWa,EAAQjS,EAAQqU,GAAYzsC,EAEhErB,IAAWqB,IACbuS,EAAQ5T,EAASqB,EACjBrB,EAASqB,GAEP42C,IACF52C,EAAQi0C,EAAON,SACfh1C,EAASs1C,EAAOL,OAASK,EAAON,SAClB,IAAV3zC,GAAeiQ,EAAKjQ,KAAWiQ,EAAKgkC,EAAOL,UAC7CrhC,EAAQ,GAEVA,GAASvS,GAEX,IAAMyzC,EAAcroC,EAAcqrC,IAAeG,EAAuBrkC,EAAZkkC,EACxD5rC,EAAOw/B,EAAOx0B,iBAAiB49B,GAOnC,GADArkC,GAJEomC,EADEl1C,KAAK6pB,MAAM0sB,kBAAkB9pC,GACxBs9B,EAAOx0B,iBAAiBtD,EAAQ5T,GAEhCkM,GAEKA,EACV3H,KAAK4N,IAAI1B,GAAQsnC,EAAc,CACjCtnC,EA7PN,SAAiBA,EAAMi7B,EAAQsM,GAC7B,OAAa,IAATvnC,EACKa,EAAKb,IAENi7B,EAAO8K,eAAiB,GAAK,IAAM9K,EAAOjiC,KAAOuuC,EAAa,GAAK,GAyPhEG,CAAQ1nC,EAAMi7B,EAAQsM,GAAcD,EACvC12C,IAAU22C,IACZ9rC,GAAQuE,EAAO,GAEjB,IAAM2nC,EAAa1M,EAAO2M,mBAAmB,GACvCC,EAAW5M,EAAO2M,mBAAmB,GACrC5uC,EAAMlF,KAAKkF,IAAI2uC,EAAYE,GAC3BhvC,EAAM/E,KAAK+E,IAAI8uC,EAAYE,GAEjCzB,GADA3qC,EAAO3H,KAAK+E,IAAI/E,KAAKkF,IAAIyC,EAAM5C,GAAMG,IACvBgH,EAEhB,GAAIvE,IAASw/B,EAAOx0B,iBAAiB8gC,GAAa,CAChD,IAAMO,EAAWjnC,EAAKb,GAAQi7B,EAAO8M,qBAAqBR,GAAc,EACxE9rC,GAAQqsC,EACR9nC,GAAQ8nC,EAEV,MAAO,CACL9nC,OACAvE,OACA2qC,OACAI,OAAQJ,EAAOpmC,EAAO,K,+CAGDrC,EAAOqoC,GAC9B,IAIIQ,EAAQxmC,EAJNwc,EAAQwpB,EAAMxpB,MACdpe,EAAUlN,KAAKkN,QACfuoC,EAAWvoC,EAAQuoC,SACnBqB,EAAkBxrC,EAAe4B,EAAQ4pC,gBAAiBC,KAEhE,GAAIjC,EAAMU,QAAS,CACjB,IAAMO,EAAaN,EAAWz1C,KAAKg2C,eAAevpC,GAASqoC,EAAMiB,WAC3DlmC,EAAiC,SAAzB3C,EAAQ0oC,aA/V5B,SAAmCnpC,EAAOqoC,EAAO5nC,EAAS6oC,GACxD,IAAMJ,EAASb,EAAMa,OACfrD,EAAOqD,EAAOlpC,GAChB8tB,EAAO9tB,EAAQ,EAAIkpC,EAAOlpC,EAAQ,GAAK,KACvClK,EAAOkK,EAAQkpC,EAAOt3C,OAAS,EAAIs3C,EAAOlpC,EAAQ,GAAK,KACrDuqC,EAAU9pC,EAAQ+oC,mBACX,OAAT1b,IACFA,EAAO+X,GAAiB,OAAT/vC,EAAgBuyC,EAAM5iC,IAAM4iC,EAAM7iC,MAAQ1P,EAAO+vC,IAErD,OAAT/vC,IACFA,EAAO+vC,EAAOA,EAAO/X,GAEvB,IAAMtoB,EAAQqgC,GAAQA,EAAO1vC,KAAKkF,IAAIyyB,EAAMh4B,IAAS,EAAIy0C,EAEzD,MAAO,CACLC,MAFWr0C,KAAK4N,IAAIjO,EAAOg4B,GAAQ,EAAIyc,EAEzBjB,EACd7uB,MAAOha,EAAQgpC,cACfjkC,SA+UMilC,CAA0BzqC,EAAOqoC,EAAO5nC,EAAS6oC,GAhX3D,SAAkCtpC,EAAOqoC,EAAO5nC,EAAS6oC,GACvD,IACIjnC,EAAMoY,EADJiwB,EAAYjqC,EAAQ0oC,aAS1B,OAPI9qC,EAAcqsC,IAChBroC,EAAOgmC,EAAMhtC,IAAMoF,EAAQ+oC,mBAC3B/uB,EAAQha,EAAQgpC,gBAEhBpnC,EAAOqoC,EAAYpB,EACnB7uB,EAAQ,GAEH,CACL+vB,MAAOnoC,EAAOinC,EACd7uB,QACAjV,MAAO6iC,EAAMa,OAAOlpC,GAAUqC,EAAO,GAoW/BsoC,CAAyB3qC,EAAOqoC,EAAO5nC,EAAS6oC,GAC9CsB,EAAar3C,KAAKs3C,eAAet3C,KAAKyM,MAAOzM,KAAKoqC,YAAYjB,MAAOsM,EAAWhpC,OAAQnL,GAC9Fg0C,EAASzlC,EAAMoC,MAASpC,EAAMonC,MAAQI,EAAexnC,EAAMonC,MAAQ,EACnEnoC,EAAOlM,KAAKkF,IAAIgvC,EAAiBjnC,EAAMonC,MAAQpnC,EAAMqX,YAErDouB,EAAShqB,EAAM/V,iBAAiBvV,KAAKwvC,UAAU/iC,GAAO6e,EAAMnW,MAAO1I,GACnEqC,EAAOlM,KAAKkF,IAAIgvC,EAAiBhC,EAAMhtC,IAAMgtC,EAAM5tB,OAErD,MAAO,CACL3c,KAAM+qC,EAASxmC,EAAO,EACtBomC,KAAMI,EAASxmC,EAAO,EACtBwmC,SACAxmC,U,6BASF,IALA,IAAM6F,EAAO3U,KAAKoqC,YACZL,EAASp1B,EAAKo1B,OACdwN,EAAQ5iC,EAAKxN,KACbkF,EAAOkrC,EAAMl5C,OACfD,EAAI,EACDA,EAAIiO,IAAQjO,EACsB,OAAnC4B,KAAKwvC,UAAUpxC,GAAG2rC,EAAO50B,OAC3BoiC,EAAMn5C,GAAGkmC,KAAKtkC,KAAKqrC,U,GA7OCD,IAkP5BoJ,GAAc3pC,GAAK,MACnB2pC,GAAcnrB,SAAW,CACvBqkB,oBAAoB,EACpB8C,gBAAiB,MACjByF,mBAAoB,GACpBC,cAAe,GACfV,SAAS,EACThO,WAAY,CACVJ,QAAS,CACPr8B,KAAM,SACNvH,WAAY,CAAC,IAAK,IAAK,OAAQ,QAAS,aAI9CgxC,GAAcrxC,UAAY,CACxBooB,OAAQ,CACNisB,QAAS,CACPzsC,KAAM,WACNhD,QAAQ,EACR0vC,KAAM,CACJ1vC,QAAQ,IAGZ2vC,QAAS,CACP3sC,KAAM,SACN4sC,aAAa,K,IAKbC,G,2KAEF53C,KAAK6rC,qBAAsB,EAC3B,qE,yCAEiBl3B,EAAMxN,EAAM8K,EAAO8C,GAEpC,IADA,IAAM+iB,EAAS,0EAAyBnjB,EAAMxN,EAAM8K,EAAO8C,GAClD3W,EAAI,EAAGA,EAAI05B,EAAOz5B,OAAQD,IACjC05B,EAAO15B,GAAGm1C,QAAUvzC,KAAKkwC,0BAA0B9xC,EAAI6T,GAAOwc,OAEhE,OAAOqJ,I,qCAEMnjB,EAAMxN,EAAM8K,EAAO8C,GAEhC,IADA,IAAM+iB,EAAS,sEAAqBnjB,EAAMxN,EAAM8K,EAAO8C,GAC9C3W,EAAI,EAAGA,EAAI05B,EAAOz5B,OAAQD,IAAK,CACtC,IAAM2Q,EAAO5H,EAAK8K,EAAQ7T,GAC1B05B,EAAO15B,GAAGm1C,QAAUjoC,EAAeyD,EAAK,GAAI/O,KAAKkwC,0BAA0B9xC,EAAI6T,GAAOwc,QAExF,OAAOqJ,I,sCAEOnjB,EAAMxN,EAAM8K,EAAO8C,GAEjC,IADA,IAAM+iB,EAAS,uEAAsBnjB,EAAMxN,EAAM8K,EAAO8C,GAC/C3W,EAAI,EAAGA,EAAI05B,EAAOz5B,OAAQD,IAAK,CACtC,IAAM2Q,EAAO5H,EAAK8K,EAAQ7T,GAC1B05B,EAAO15B,GAAGm1C,QAAUjoC,EAAeyD,GAAQA,EAAK/J,IAAM+J,EAAK/J,EAAGhF,KAAKkwC,0BAA0B9xC,EAAI6T,GAAOwc,QAE1G,OAAOqJ,I,uCAKP,IAFA,IAAM3wB,EAAOnH,KAAKoqC,YAAYjjC,KAC1BQ,EAAM,EACDvJ,EAAI+I,EAAK9I,OAAS,EAAGD,GAAK,IAAKA,EACtCuJ,EAAM/E,KAAK+E,IAAIA,EAAKR,EAAK/I,GAAG0Q,KAAK9O,KAAKkwC,0BAA0B9xC,IAAM,GAExE,OAAOuJ,EAAM,GAAKA,I,uCAEH8E,GACf,IAAMkI,EAAO3U,KAAKoqC,YACX30B,EAAkBd,EAAlBc,OAAQC,EAAUf,EAAVe,OACToiB,EAAS93B,KAAKwvC,UAAU/iC,GACxBmB,EAAI6H,EAAOi6B,iBAAiB5X,EAAOlqB,GACnCC,EAAI6H,EAAOg6B,iBAAiB5X,EAAOjqB,GACnC7I,EAAI8yB,EAAOyb,QACjB,MAAO,CACL9D,MAAO96B,EAAK86B,MACZ/vC,MAAO,IAAMkO,EAAI,KAAOC,GAAK7I,EAAI,KAAOA,EAAI,IAAM,O,6BAG/C6lB,GACL,IAAMjW,EAAS5U,KAAKoqC,YAAYjjC,KAChCnH,KAAKgyC,eAAep9B,EAAQ,EAAGA,EAAOvW,OAAQwsB,K,qCAEjCjW,EAAQ3C,EAAO8C,EAAO8V,GAMnC,IALA,IAAM9jB,EAAiB,UAAT8jB,EAD2B,EAEhB7qB,KAAKoqC,YAAvBn1B,EAFkC,EAElCA,OAAQ80B,EAF0B,EAE1BA,OAF0B,EAGD/pC,KAAKg1C,kBAAkB/iC,EAAO4Y,GAA/DmmB,EAHkC,EAGlCA,cAAeK,EAHmB,EAGnBA,eAChB/G,EAAQr1B,EAAOE,KACfo1B,EAAQR,EAAO50B,KACZ/W,EAAI6T,EAAO7T,EAAI6T,EAAQ8C,EAAO3W,IAAK,CAC1C,IAAMqxB,EAAQ7a,EAAOxW,GACf05B,GAAU/wB,GAAS/G,KAAKwvC,UAAUpxC,GAClCoF,EAAa,GACbo2B,EAASp2B,EAAW8mC,GAASvjC,EAAQkO,EAAOyhC,mBAAmB,IAAOzhC,EAAOM,iBAAiBuiB,EAAOwS,IACrGzQ,EAASr2B,EAAW+mC,GAASxjC,EAAQgjC,EAAO6K,eAAiB7K,EAAOx0B,iBAAiBuiB,EAAOyS,IAClG/mC,EAAWy0B,KAAO3nB,MAAMspB,IAAWtpB,MAAMupB,GACrCwX,IACF7tC,EAAW0J,QAAU8jC,GAAiBhxC,KAAKkwC,0BAA0B9xC,EAAGqxB,EAAM4X,OAAS,SAAWxc,GAC9F9jB,IACFvD,EAAW0J,QAAQuhB,OAAS,IAGhCzuB,KAAKu1C,cAAc9lB,EAAOrxB,EAAGoF,EAAYqnB,M,gDAGnBpe,EAAOoe,GAC/B,IAAMiN,EAAS93B,KAAKwvC,UAAU/iC,GAC1B2c,EAAS,iFAAgC3c,EAAOoe,GAChDzB,EAAO+e,UACT/e,EAAS1qB,OAAOwX,OAAO,GAAIkT,EAAQ,CAAC+e,SAAS,KAE/C,IAAM1Z,EAASrF,EAAOqF,OAKtB,MAJa,WAAT5D,IACFzB,EAAOqF,OAAS,GAElBrF,EAAOqF,QAAUnjB,EAAewsB,GAAUA,EAAOyb,QAAS9kB,GACnDrF,M,GArFoBgiB,IAwF/BwM,GAAiB/sC,GAAK,SACtB+sC,GAAiBvuB,SAAW,CAC1BqkB,oBAAoB,EACpB8C,gBAAiB,QACjBhJ,WAAY,CACVJ,QAAS,CACPr8B,KAAM,SACNvH,WAAY,CAAC,IAAK,IAAK,cAAe,aAI5Co0C,GAAiBz0C,UAAY,CAC3BooB,OAAQ,CACN3d,EAAG,CACD7C,KAAM,UAER8C,EAAG,CACD9C,KAAM,WAGVqgB,QAAS,CACPysB,QAAS,CACPlU,UAAW,CACTmU,MADS,WAEP,MAAO,Q,IAgCXC,G,kDACJ,WAAYluB,EAAOrd,GAAc,kCAC/B,cAAMqd,EAAOrd,IACRq/B,qBAAsB,EAC3B,EAAKmM,iBAAc12C,EACnB,EAAK22C,iBAAc32C,EACnB,EAAK+6B,aAAU/6B,EACf,EAAKg7B,aAAUh7B,EANgB,E,wFAS3B2Q,EAAO8C,GACX,IAAM5N,EAAOnH,KAAKssC,aAAanlC,KACzBwN,EAAO3U,KAAKoqC,YAClB,IAAsB,IAAlBpqC,KAAK63B,SACPljB,EAAKO,QAAU/N,MACV,CACL,IAKI/I,EAAGiO,EALH6rC,EAAS,SAAC95C,GAAD,OAAQ+I,EAAK/I,IAC1B,GAAI4M,EAAS7D,EAAK8K,IAAS,OACDjS,KAAK63B,SAAtBj5B,WADkB,MACZ,QADY,EAEzBs5C,EAAS,SAAC95C,GAAD,OAAQ0P,EAAiB3G,EAAK/I,GAAIQ,IAG7C,IAAKR,EAAI6T,EAAO5F,EAAO4F,EAAQ8C,EAAO3W,EAAIiO,IAAQjO,EAChDuW,EAAKO,QAAQ9W,GAAK85C,EAAO95C,M,qCAK7B,OAAOuS,EAAU3Q,KAAKkN,QAAQshB,SAAW,M,0CAGzC,OAAO7d,EAAU3Q,KAAKkN,QAAQirC,iB,4CAK9B,IAFA,IAAIrwC,EAAMoH,EACNvH,GAAOuH,EACF9Q,EAAI,EAAGA,EAAI4B,KAAK6pB,MAAM1iB,KAAKuiB,SAASrrB,SAAUD,EACrD,GAAI4B,KAAK6pB,MAAMuuB,iBAAiBh6C,GAAI,CAClC,IAAM+rC,EAAanqC,KAAK6pB,MAAMujB,eAAehvC,GAAG+rC,WAC1C3b,EAAW2b,EAAWkO,eACtBF,EAAgBhO,EAAWmO,oBACjCxwC,EAAMlF,KAAKkF,IAAIA,EAAK0mB,GACpB7mB,EAAM/E,KAAK+E,IAAIA,EAAK6mB,EAAW2pB,GAGnC,MAAO,CACL3pB,SAAU1mB,EACVqwC,cAAexwC,EAAMG,K,6BAGlB+iB,GACL,ID9uDkBnrB,EAAO8L,EC+uDlBwkC,EADOhwC,KAAK6pB,MACZmmB,UACDr7B,EAAO3U,KAAKoqC,YACZmO,EAAO5jC,EAAKxN,KACZqxC,EAAUx4C,KAAKy4C,oBAAsBz4C,KAAK04C,aAAaH,GAAQv4C,KAAKkN,QAAQsrC,QAC5EG,EAAU/1C,KAAK+E,KAAK/E,KAAKkF,IAAIkoC,EAAUnjB,MAAOmjB,EAAU/hB,QAAUuqB,GAAW,EAAG,GAChFI,EAASh2C,KAAKkF,KDpvDFpI,ECovDmBM,KAAKkN,QAAQ0rC,ODpvDzBptC,ECovDiCmtC,EDnvD3C,kBAAVj5C,GAAsBA,EAAM+L,SAAS,KAC1CC,WAAWhM,GAAS,IAClBA,EAAQ8L,GCivD0D,GAC9DqtC,EAAc74C,KAAK84C,eAAe94C,KAAKyM,OARlC,EASuBzM,KAAK+4C,sBAAhCZ,EATI,EASJA,cATI,EA3Ef,SAA2B3pB,EAAU2pB,EAAeS,GAClD,IAAII,EAAS,EACTC,EAAS,EACT5c,EAAU,EACVC,EAAU,EACd,GAAI6b,EAAgBjpC,EAAK,CACvB,IAAMgqC,EAAa1qB,EACb2qB,EAAWD,EAAaf,EACxBiB,EAASx2C,KAAK2U,IAAI2hC,GAClBG,EAASz2C,KAAK0T,IAAI4iC,GAClBI,EAAO12C,KAAK2U,IAAI4hC,GAChBI,EAAO32C,KAAK0T,IAAI6iC,GAChBK,EAAU,SAAChoC,EAAO5C,EAAGC,GAAX,OAAiBmD,GAAcR,EAAO0nC,EAAYC,GAAU,GAAQ,EAAIv2C,KAAK+E,IAAIiH,EAAGA,EAAIgqC,EAAQ/pC,EAAGA,EAAI+pC,IACjHa,EAAU,SAACjoC,EAAO5C,EAAGC,GAAX,OAAiBmD,GAAcR,EAAO0nC,EAAYC,GAAU,IAAS,EAAIv2C,KAAKkF,IAAI8G,EAAGA,EAAIgqC,EAAQ/pC,EAAGA,EAAI+pC,IAClHc,EAAOF,EAAQ,EAAGJ,EAAQE,GAC1BK,EAAOH,EAAQjqC,EAAS8pC,EAAQE,GAChCK,EAAOH,EAAQxqC,EAAImqC,EAAQE,GAC3BO,EAAOJ,EAAQxqC,EAAKM,EAAS8pC,EAAQE,GAC3CP,GAAUU,EAAOE,GAAQ,EACzBX,GAAUU,EAAOE,GAAQ,EACzBxd,IAAYqd,EAAOE,GAAQ,EAC3Btd,IAAYqd,EAAOE,GAAQ,EAE7B,MAAO,CAACb,SAAQC,SAAQ5c,UAASC,WA8DYwd,CAVhC,EASWtrB,SACiD2pB,EAAeS,GAA/EI,EAVI,EAUJA,OAAQC,EAVJ,EAUIA,OAAQ5c,EAVZ,EAUYA,QAASC,EAVrB,EAUqBA,QAC1B9K,GAAYwe,EAAUnjB,MAAQ2rB,GAAWQ,EACzC5b,GAAa4S,EAAU/hB,OAASuqB,GAAWS,EAC3Cc,EAAYn3C,KAAK+E,IAAI/E,KAAKkF,IAAI0pB,EAAU4L,GAAa,EAAG,GACxD6a,EAAc1sC,EAAYvL,KAAKkN,QAAQuhB,OAAQsrB,GAE/CC,GAAgB/B,EADFr1C,KAAK+E,IAAIswC,EAAcW,EAAQ,IACA54C,KAAKi6C,gCACxDj6C,KAAKq8B,QAAUA,EAAU4b,EACzBj4C,KAAKs8B,QAAUA,EAAU2b,EACzBtjC,EAAKulC,MAAQl6C,KAAKm6C,iBAClBn6C,KAAKi4C,YAAcA,EAAc+B,EAAeh6C,KAAKo6C,qBAAqBp6C,KAAKyM,OAC/EzM,KAAKg4C,YAAcp1C,KAAK+E,IAAI3H,KAAKi4C,YAAc+B,EAAenB,EAAa,GAC3E74C,KAAKgyC,eAAeuG,EAAM,EAAGA,EAAKl6C,OAAQwsB,K,qCAE7BzsB,EAAG2I,GAChB,IAAMiqB,EAAOhxB,KAAKkN,QACZyH,EAAO3U,KAAKoqC,YACZ+N,EAAgBn4C,KAAKs4C,oBAC3B,OAAKvxC,GAASiqB,EAAKzH,UAAU8wB,gBAAmBr6C,KAAK6pB,MAAM0sB,kBAAkBn4C,IAA0B,OAApBuW,EAAKO,QAAQ9W,IAAeuW,EAAKxN,KAAK/I,GAAG6wC,OACnH,EAEFjvC,KAAKs6C,uBAAuB3lC,EAAKO,QAAQ9W,GAAK+5C,EAAgBjpC,K,qCAExDqpC,EAAMtmC,EAAO8C,EAAO8V,GACjC,IAYIzsB,EAZE2I,EAAiB,UAAT8jB,EACRhB,EAAQ7pB,KAAK6pB,MACbmmB,EAAYnmB,EAAMmmB,UAElBuK,EADO1wB,EAAM3c,QACQqc,UACrBixB,GAAWxK,EAAUpgB,KAAOogB,EAAUngB,OAAS,EAC/C4qB,GAAWzK,EAAUlgB,IAAMkgB,EAAUjgB,QAAU,EAC/C2qB,EAAe3zC,GAASwzC,EAAcG,aACtC1C,EAAc0C,EAAe,EAAI16C,KAAKg4C,YACtCC,EAAcyC,EAAe,EAAI16C,KAAKi4C,YAVL,EAWCj4C,KAAKg1C,kBAAkB/iC,EAAO4Y,GAA/DmmB,EAXgC,EAWhCA,cAAeK,EAXiB,EAWjBA,eAClB6H,EAAal5C,KAAKq4C,eAEtB,IAAKj6C,EAAI,EAAGA,EAAI6T,IAAS7T,EACvB86C,GAAcl5C,KAAK26C,eAAev8C,EAAG2I,GAEvC,IAAK3I,EAAI6T,EAAO7T,EAAI6T,EAAQ8C,IAAS3W,EAAG,CACtC,IAAM+5C,EAAgBn4C,KAAK26C,eAAev8C,EAAG2I,GACvCgoB,EAAMwpB,EAAKn6C,GACXoF,EAAa,CACjBoK,EAAG4sC,EAAUx6C,KAAKq8B,QAClBxuB,EAAG4sC,EAAUz6C,KAAKs8B,QAClB4c,aACAC,SAAUD,EAAaf,EACvBA,gBACAF,cACAD,eAEE3G,IACF7tC,EAAW0J,QAAU8jC,GAAiBhxC,KAAKkwC,0BAA0B9xC,EAAG2wB,EAAIsY,OAAS,SAAWxc,IAElGquB,GAAcf,EACdn4C,KAAKu1C,cAAcxmB,EAAK3wB,EAAGoF,EAAYqnB,M,uCAIzC,IAGIzsB,EAHEuW,EAAO3U,KAAKoqC,YACZwQ,EAAWjmC,EAAKxN,KAClB+yC,EAAQ,EAEZ,IAAK97C,EAAI,EAAGA,EAAIw8C,EAASv8C,OAAQD,IAAK,CACpC,IAAMsB,EAAQiV,EAAKO,QAAQ9W,GACb,OAAVsB,GAAmB4Q,MAAM5Q,KAAUM,KAAK6pB,MAAM0sB,kBAAkBn4C,IAAOw8C,EAASx8C,GAAG6wC,SACrFiL,GAASt3C,KAAK4N,IAAI9Q,IAGtB,OAAOw6C,I,6CAEcx6C,GACrB,IAAMw6C,EAAQl6C,KAAKoqC,YAAY8P,MAC/B,OAAIA,EAAQ,IAAM5pC,MAAM5Q,GACfwP,GAAOtM,KAAK4N,IAAI9Q,GAASw6C,GAE3B,I,uCAEQztC,GACf,IAAMkI,EAAO3U,KAAKoqC,YACZvgB,EAAQ7pB,KAAK6pB,MACb0kB,EAAS1kB,EAAM1iB,KAAKonC,QAAU,GAC9B7uC,EAAQy/B,GAAaxqB,EAAKO,QAAQzI,GAAQod,EAAM3c,QAAQmyB,QAC9D,MAAO,CACLoQ,MAAOlB,EAAO9hC,IAAU,GACxB/M,W,wCAGc64C,GAChB,IAEIn6C,EAAGiO,EAAMsI,EAAMw1B,EAAYj9B,EAF3BvF,EAAM,EACJkiB,EAAQ7pB,KAAK6pB,MAEnB,IAAK0uB,EACH,IAAKn6C,EAAI,EAAGiO,EAAOwd,EAAM1iB,KAAKuiB,SAASrrB,OAAQD,EAAIiO,IAAQjO,EACzD,GAAIyrB,EAAMuuB,iBAAiBh6C,GAAI,CAE7Bm6C,GADA5jC,EAAOkV,EAAMujB,eAAehvC,IAChB+I,KACZgjC,EAAax1B,EAAKw1B,WAClB,MAIN,IAAKoO,EACH,OAAO,EAET,IAAKn6C,EAAI,EAAGiO,EAAOksC,EAAKl6C,OAAQD,EAAIiO,IAAQjO,EAEd,WAD5B8O,EAAUi9B,EAAW+F,0BAA0B9xC,IACnCy8C,cACVlzC,EAAM/E,KAAK+E,IAAIA,EAAKuF,EAAQoiB,aAAe,EAAGpiB,EAAQ4tC,kBAAoB,IAG9E,OAAOnzC,I,mCAEI4wC,GAEX,IADA,IAAI5wC,EAAM,EACDvJ,EAAI,EAAGiO,EAAOksC,EAAKl6C,OAAQD,EAAIiO,IAAQjO,EAAG,CACjD,IAAM8O,EAAUlN,KAAKkwC,0BAA0B9xC,GAC/CuJ,EAAM/E,KAAK+E,IAAIA,EAAKuF,EAAQnF,QAAU,EAAGmF,EAAQ6tC,aAAe,GAElE,OAAOpzC,I,2CAEY6E,GAEnB,IADA,IAAIwuC,EAAmB,EACd58C,EAAI,EAAGA,EAAIoO,IAAgBpO,EAC9B4B,KAAK6pB,MAAMuuB,iBAAiBh6C,KAC9B48C,GAAoBh7C,KAAK84C,eAAe16C,IAG5C,OAAO48C,I,qCAEMxuC,GACb,OAAO5J,KAAK+E,IAAI2D,EAAetL,KAAK6pB,MAAM1iB,KAAKuiB,SAASld,GAAcub,OAAQ,GAAI,K,sDAGlF,OAAO/nB,KAAKo6C,qBAAqBp6C,KAAK6pB,MAAM1iB,KAAKuiB,SAASrrB,SAAW,M,GAnMxC+sC,IAsMjC2M,GAAmBltC,GAAK,WACxBktC,GAAmB1uB,SAAW,CAC5BqkB,oBAAoB,EACpB8C,gBAAiB,MACjBjnB,UAAW,CACT8wB,eAAe,EACfK,cAAc,GAEhBlT,WAAY,CACVJ,QAAS,CACPr8B,KAAM,SACNvH,WAAY,CAAC,gBAAiB,WAAY,cAAe,cAAe,aAAc,IAAK,IAAK,SAAU,cAAe,aAG7Ho1C,OAAQ,MACRpqB,SAAU,EACV2pB,cAAe,IACf1pB,OAAQ,OACR+pB,QAAS,EACT7tB,UAAW,KAEbotB,GAAmBhvB,YAAc,CAC/BoD,YAAa,SAACR,GAAD,MAAmB,YAATA,GACvBU,WAAY,SAACV,GAAD,MAAmB,YAATA,IAExBosB,GAAmB50C,UAAY,CAC7B+5B,YAAa,EACb9R,QAAS,CACP6vB,OAAQ,CACN1M,OAAQ,CACN2M,eADM,SACSrxB,GACb,IAAM1iB,EAAO0iB,EAAM1iB,KACnB,GAAIA,EAAKonC,OAAOlwC,QAAU8I,EAAKuiB,SAASrrB,OAAQ,KAC9BkwB,EAAe1E,EAAMoxB,OAAO/tC,QAArCqhC,OAAShgB,WAChB,OAAOpnB,EAAKonC,OAAO3hC,KAAI,SAAC6iC,EAAOrxC,GAC7B,IACMgsB,EADOP,EAAMujB,eAAe,GACfjD,WAAWxL,SAASvgC,GACvC,MAAO,CACL0yB,KAAM2e,EACN7d,UAAWxH,EAAMZ,gBACjB6H,YAAajH,EAAMX,YACnB6H,UAAWlH,EAAMkF,YACjBf,WAAYA,EACZ0gB,QAASplB,EAAM0sB,kBAAkBn4C,GACjCqO,MAAOrO,MAIb,MAAO,KAGX8sB,QAvBM,SAuBElpB,EAAGm5C,EAAYF,GACrBA,EAAOpxB,MAAMuxB,qBAAqBD,EAAW1uC,OAC7CwuC,EAAOpxB,MAAMthB,WAGjBsvC,QAAS,CACPlU,UAAW,CACTmU,MADS,WAEP,MAAO,IAETrI,MAJS,SAIH4L,GACJ,IAAIC,EAAYD,EAAY5L,MACtB/vC,EAAQ,KAAO27C,EAAYE,eAOjC,OANI35C,EAAQ05C,IACVA,EAAYA,EAAU12C,SACZ,IAAMlF,EAEhB47C,GAAa57C,EAER47C,O,IAOXE,G,2KAEFx7C,KAAK6rC,qBAAsB,EAC3B7rC,KAAK8rC,oBAAqB,EAC1B,qE,6BAEKjhB,GACL,IAAMlW,EAAO3U,KAAKoqC,YACFrZ,EAAqCpc,EAA9C03B,QAFI,EAE0C13B,EAA/BxN,KAAMyN,OAFjB,MAE0B,GAF1B,EAE8B6mC,EAAY9mC,EAAZ8mC,SACnC5mC,EAAqB7U,KAAK6pB,MAAMonB,oBAH3B,EAIUv8B,GAAiCC,EAAMC,EAAQC,GAA/D5C,EAJM,EAINA,MAAO8C,EAJD,EAICA,MACZ/U,KAAK2rC,WAAa15B,EAClBjS,KAAK4rC,WAAa72B,EACdS,GAAoBb,KACtB1C,EAAQ,EACR8C,EAAQH,EAAOvW,QAEjB0yB,EAAKoR,OAASniC,KAAK6pB,MACnBkH,EAAKuR,cAAgBtiC,KAAKyM,MAC1BskB,EAAK2qB,aAAeD,EAASC,WAC7B3qB,EAAKnc,OAASA,EACd,IAAM1H,EAAUlN,KAAKiwC,6BAA6BplB,GAC7C7qB,KAAKkN,QAAQse,WAChBte,EAAQoiB,YAAc,GAExBpiB,EAAQi0B,QAAUnhC,KAAKkN,QAAQi0B,QAC/BnhC,KAAKu1C,cAAcxkB,OAAMzvB,EAAW,CAClCq6C,UAAW9mC,EACX3H,WACC2d,GACH7qB,KAAKgyC,eAAep9B,EAAQ3C,EAAO8C,EAAO8V,K,qCAE7BjW,EAAQ3C,EAAO8C,EAAO8V,GAUnC,IATA,IAAM9jB,EAAiB,UAAT8jB,EAD2B,EAEI7qB,KAAKoqC,YAA3Cn1B,EAFkC,EAElCA,OAAQ80B,EAF0B,EAE1BA,OAAQoC,EAFkB,EAElBA,SAAUsP,EAFQ,EAERA,SAFQ,EAGDz7C,KAAKg1C,kBAAkB/iC,EAAO4Y,GAA/DmmB,EAHkC,EAGlCA,cAAeK,EAHmB,EAGnBA,eAChB/G,EAAQr1B,EAAOE,KACfo1B,EAAQR,EAAO50B,KALoB,EAMbnV,KAAKkN,QAA1BitB,EANkC,EAMlCA,SAAUgH,EANwB,EAMxBA,QACXya,EAAevrC,EAAS8pB,GAAYA,EAAWjvB,OAAOmE,kBACtDwsC,EAAe77C,KAAK6pB,MAAMonB,qBAAuBlqC,GAAkB,SAAT8jB,EAC5DixB,EAAa7pC,EAAQ,GAAKjS,KAAKwvC,UAAUv9B,EAAQ,GAC5C7T,EAAI6T,EAAO7T,EAAI6T,EAAQ8C,IAAS3W,EAAG,CAC1C,IAAMqxB,EAAQ7a,EAAOxW,GACf05B,EAAS93B,KAAKwvC,UAAUpxC,GACxBoF,EAAaq4C,EAAepsB,EAAQ,GACpCssB,EAAWjxC,EAAcgtB,EAAOyS,IAChC3Q,EAASp2B,EAAW8mC,GAASr1B,EAAOM,iBAAiBuiB,EAAOwS,GAAQlsC,GACpEy7B,EAASr2B,EAAW+mC,GAASxjC,GAASg1C,EAAWhS,EAAO6K,eAAiB7K,EAAOx0B,iBAAiB42B,EAAWnsC,KAAKkpC,WAAWa,EAAQjS,EAAQqU,GAAYrU,EAAOyS,GAAQnsC,GAC7KoF,EAAWy0B,KAAO3nB,MAAMspB,IAAWtpB,MAAMupB,IAAWkiB,EACpDv4C,EAAWw4C,KAAO59C,EAAI,GAAMwE,KAAK4N,IAAIsnB,EAAOwS,GAASwR,EAAWxR,IAAWsR,EACvEza,IACF39B,EAAWs0B,OAASA,EACpBt0B,EAAW4sC,IAAMqL,EAASt0C,KAAK/I,IAE7BizC,IACF7tC,EAAW0J,QAAU8jC,GAAiBhxC,KAAKkwC,0BAA0B9xC,EAAGqxB,EAAM4X,OAAS,SAAWxc,IAE/FgxB,GACH77C,KAAKu1C,cAAc9lB,EAAOrxB,EAAGoF,EAAYqnB,GAE3CixB,EAAahkB,K,uCAIf,IAAMnjB,EAAO3U,KAAKoqC,YACZiC,EAAU13B,EAAK03B,QACf4P,EAAS5P,EAAQn/B,SAAWm/B,EAAQn/B,QAAQoiB,aAAe,EAC3DnoB,EAAOwN,EAAKxN,MAAQ,GAC1B,IAAKA,EAAK9I,OACR,OAAO49C,EAET,IAAM7jB,EAAajxB,EAAK,GAAG2H,KAAK9O,KAAKkwC,0BAA0B,IACzDgM,EAAY/0C,EAAKA,EAAK9I,OAAS,GAAGyQ,KAAK9O,KAAKkwC,0BAA0B/oC,EAAK9I,OAAS,IAC1F,OAAOuE,KAAK+E,IAAIs0C,EAAQ7jB,EAAY8jB,GAAa,I,6BAGjD,IAAMvnC,EAAO3U,KAAKoqC,YAClBz1B,EAAK03B,QAAQ8P,oBAAoBn8C,KAAK6pB,MAAMmmB,UAAWr7B,EAAKM,OAAOE,MACnE,iE,GA/EyBi2B,IAkF7BoQ,GAAe3wC,GAAK,OACpB2wC,GAAenyB,SAAW,CACxBqkB,mBAAoB,OACpB8C,gBAAiB,QACjBhlB,UAAU,EACV2O,UAAU,GAEZqhB,GAAer4C,UAAY,CACzBooB,OAAQ,CACNisB,QAAS,CACPzsC,KAAM,YAER2sC,QAAS,CACP3sC,KAAM,Y,IAKNqxC,G,kDACJ,WAAYvyB,EAAOrd,GAAc,kCAC/B,cAAMqd,EAAOrd,IACRwrC,iBAAc12C,EACnB,EAAK22C,iBAAc32C,EAHY,E,6DAKhBmL,GACf,IAAMkI,EAAO3U,KAAKoqC,YACZvgB,EAAQ7pB,KAAK6pB,MACb0kB,EAAS1kB,EAAM1iB,KAAKonC,QAAU,GAC9B7uC,EAAQy/B,GAAaxqB,EAAKO,QAAQzI,GAAOzH,EAAG6kB,EAAM3c,QAAQmyB,QAChE,MAAO,CACLoQ,MAAOlB,EAAO9hC,IAAU,GACxB/M,W,sCAGYiV,EAAMxN,EAAM8K,EAAO8C,GACjC,OAAO6iB,GAA4BykB,KAAKr8C,KAAjC43B,CAAuCjjB,EAAMxN,EAAM8K,EAAO8C,K,6BAE5D8V,GACL,IAAM0tB,EAAOv4C,KAAKoqC,YAAYjjC,KAC9BnH,KAAKs8C,gBACLt8C,KAAKgyC,eAAeuG,EAAM,EAAGA,EAAKl6C,OAAQwsB,K,kCAEhC,WACJlW,EAAO3U,KAAKoqC,YACZv6B,EAAQ,CAAC/H,IAAKoD,OAAOmE,kBAAmB1H,IAAKuD,OAAOikC,mBAY1D,OAXAx6B,EAAKxN,KAAKsM,SAAQ,SAAC+nB,EAAS/uB,GAC1B,IAAMqrB,EAAS,EAAK0X,UAAU/iC,GAAOzH,GAChCsL,MAAMwnB,IAAW,EAAKjO,MAAM0sB,kBAAkB9pC,KAC7CqrB,EAASjoB,EAAM/H,MACjB+H,EAAM/H,IAAMgwB,GAEVA,EAASjoB,EAAMlI,MACjBkI,EAAMlI,IAAMmwB,OAIXjoB,I,sCAGP,IAAMga,EAAQ7pB,KAAK6pB,MACbmmB,EAAYnmB,EAAMmmB,UAClBhf,EAAOnH,EAAM3c,QACbqvC,EAAU35C,KAAKkF,IAAIkoC,EAAUngB,MAAQmgB,EAAUpgB,KAAMogB,EAAUjgB,OAASigB,EAAUlgB,KAClFmoB,EAAcr1C,KAAK+E,IAAI40C,EAAU,EAAG,GAEpCvC,GAAgB/B,EADFr1C,KAAK+E,IAAIqpB,EAAKwrB,iBAAoBvE,EAAc,IAAQjnB,EAAKwrB,iBAAoB,EAAG,IACrD3yB,EAAM4yB,yBACzDz8C,KAAKi4C,YAAcA,EAAe+B,EAAeh6C,KAAKyM,MACtDzM,KAAKg4C,YAAch4C,KAAKi4C,YAAc+B,I,qCAEzBzB,EAAMtmC,EAAO8C,EAAO8V,GACjC,IASIzsB,EATE2I,EAAiB,UAAT8jB,EACRhB,EAAQ7pB,KAAK6pB,MAEb0wB,EADO1wB,EAAM3c,QACQqc,UACrB+B,EAAQtrB,KAAKoqC,YAAY+C,OACzBqN,EAAUlvB,EAAMoxB,QAChBjC,EAAUnvB,EAAMqxB,QAChBC,EAAoBtxB,EAAMuxB,cAAc,GAAK,GAAM5tC,EACrDuC,EAAQorC,EAENE,EAAe,IAAM98C,KAAK+8C,uBAChC,IAAK3+C,EAAI,EAAGA,EAAI6T,IAAS7T,EACvBoT,GAASxR,KAAKg9C,cAAc5+C,EAAGysB,EAAMiyB,GAEvC,IAAK1+C,EAAI6T,EAAO7T,EAAI6T,EAAQ8C,EAAO3W,IAAK,CACtC,IAAM2wB,EAAMwpB,EAAKn6C,GACb86C,EAAa1nC,EACb2nC,EAAW3nC,EAAQxR,KAAKg9C,cAAc5+C,EAAGysB,EAAMiyB,GAC/C7E,EAAcpuB,EAAM0sB,kBAAkBn4C,GAAKktB,EAAM2xB,8BAA8Bj9C,KAAKwvC,UAAUpxC,GAAG4G,GAAK,EAC1GwM,EAAQ2nC,EACJpyC,IACEwzC,EAAcG,eAChBzC,EAAc,GAEZsC,EAAcF,gBAChBnB,EAAaC,EAAWyD,IAG5B,IAAMp5C,EAAa,CACjBoK,EAAG4sC,EACH3sC,EAAG4sC,EACHzC,YAAa,EACbC,cACAiB,aACAC,WACAjsC,QAASlN,KAAKkwC,0BAA0B9xC,EAAG2wB,EAAIsY,OAAS,SAAWxc,IAErE7qB,KAAKu1C,cAAcxmB,EAAK3wB,EAAGoF,EAAYqnB,M,6CAGpB,WACflW,EAAO3U,KAAKoqC,YACdr1B,EAAQ,EAMZ,OALAJ,EAAKxN,KAAKsM,SAAQ,SAAC+nB,EAAS/uB,IACrB6D,MAAM,EAAKk/B,UAAU/iC,GAAOzH,IAAM,EAAK6kB,MAAM0sB,kBAAkB9pC,IAClEsI,OAGGA,I,oCAEKtI,EAAOoe,EAAMiyB,GACzB,OAAO98C,KAAK6pB,MAAM0sB,kBAAkB9pC,GAChCkE,EAAU3Q,KAAKkwC,0BAA0BzjC,EAAOoe,GAAMrZ,OAASsrC,GAC/D,M,GAzG0B1R,IA4GlCgR,GAAoBvxC,GAAK,YACzBuxC,GAAoB/yB,SAAW,CAC7BmnB,gBAAiB,MACjBjnB,UAAW,CACT8wB,eAAe,EACfK,cAAc,GAEhBlT,WAAY,CACVJ,QAAS,CACPr8B,KAAM,SACNvH,WAAY,CAAC,IAAK,IAAK,aAAc,WAAY,cAAe,iBAGpEmnB,UAAW,IACXuuB,WAAY,GAEdkD,GAAoBj5C,UAAY,CAC9B+5B,YAAa,EACb9R,QAAS,CACP6vB,OAAQ,CACN1M,OAAQ,CACN2M,eADM,SACSrxB,GACb,IAAM1iB,EAAO0iB,EAAM1iB,KACnB,GAAIA,EAAKonC,OAAOlwC,QAAU8I,EAAKuiB,SAASrrB,OAAQ,KAC9BkwB,EAAe1E,EAAMoxB,OAAO/tC,QAArCqhC,OAAShgB,WAChB,OAAOpnB,EAAKonC,OAAO3hC,KAAI,SAAC6iC,EAAOrxC,GAC7B,IACMgsB,EADOP,EAAMujB,eAAe,GACfjD,WAAWxL,SAASvgC,GACvC,MAAO,CACL0yB,KAAM2e,EACN7d,UAAWxH,EAAMZ,gBACjB6H,YAAajH,EAAMX,YACnB6H,UAAWlH,EAAMkF,YACjBf,WAAYA,EACZ0gB,QAASplB,EAAM0sB,kBAAkBn4C,GACjCqO,MAAOrO,MAIb,MAAO,KAGX8sB,QAvBM,SAuBElpB,EAAGm5C,EAAYF,GACrBA,EAAOpxB,MAAMuxB,qBAAqBD,EAAW1uC,OAC7CwuC,EAAOpxB,MAAMthB,WAGjBsvC,QAAS,CACPlU,UAAW,CACTmU,MADS,WAEP,MAAO,IAETrI,MAJS,SAIH7lB,GACJ,OAAOA,EAAQC,MAAM1iB,KAAKonC,OAAO3kB,EAAQumB,WAAa,KAAOvmB,EAAQ2xB,mBAK7EhwB,OAAQ,CACNvmB,EAAG,CACD+F,KAAM,eACNmyC,WAAY,CACVC,SAAS,GAEXxF,aAAa,EACbF,KAAM,CACJ2F,UAAU,GAEZC,YAAa,CACXF,SAAS,GAEXjE,WAAY,K,IAKZoE,G,4HAAsBvF,IAE5BuF,GAAczyC,GAAK,MACnByyC,GAAcj0B,SAAW,CACvBuvB,OAAQ,EACRpqB,SAAU,EACV2pB,cAAe,IACf1pB,OAAQ,Q,IAGJ8uB,G,+KACa9wC,GACf,IAAMs9B,EAAS/pC,KAAKoqC,YAAYL,OAC1BjS,EAAS93B,KAAKwvC,UAAU/iC,GAC9B,MAAO,CACLgjC,MAAO1F,EAAOyE,YAAY/hC,GAC1B/M,MAAO,GAAKqqC,EAAO2F,iBAAiB5X,EAAOiS,EAAO50B,U,sCAGtCR,EAAMxN,EAAM8K,EAAO8C,GACjC,OAAO6iB,GAA4BykB,KAAKr8C,KAAjC43B,CAAuCjjB,EAAMxN,EAAM8K,EAAO8C,K,6BAE5D8V,GACL,IAAMlW,EAAO3U,KAAKoqC,YACZrZ,EAAOpc,EAAK03B,QACZz3B,EAASD,EAAKxN,MAAQ,GACtBonC,EAAS55B,EAAKM,OAAOu5B,YAE3B,GADAzd,EAAKnc,OAASA,EACD,WAATiW,EAAmB,CACrB,IAAM3d,EAAUlN,KAAKiwC,6BAA6BplB,GAC7C7qB,KAAKkN,QAAQse,WAChBte,EAAQoiB,YAAc,GAExB,IAAM9rB,EAAa,CACjB6iC,OAAO,EACPmX,UAAWjP,EAAOlwC,SAAWuW,EAAOvW,OACpC6O,WAEFlN,KAAKu1C,cAAcxkB,OAAMzvB,EAAWkC,EAAYqnB,GAElD7qB,KAAKgyC,eAAep9B,EAAQ,EAAGA,EAAOvW,OAAQwsB,K,qCAEjCjW,EAAQ3C,EAAO8C,EAAO8V,GAGnC,IAFA,IAAMS,EAAQtrB,KAAKoqC,YAAY+C,OACzBpmC,EAAiB,UAAT8jB,EACLzsB,EAAI6T,EAAO7T,EAAI6T,EAAQ8C,EAAO3W,IAAK,CAC1C,IAAMqxB,EAAQ7a,EAAOxW,GACf8O,EAAUlN,KAAKkwC,0BAA0B9xC,EAAGqxB,EAAM4X,OAAS,SAAWxc,GACtE4yB,EAAgBnyB,EAAMoyB,yBAAyBt/C,EAAG4B,KAAKwvC,UAAUpxC,GAAG4G,GACpE4I,EAAI7G,EAAQukB,EAAMoxB,QAAUe,EAAc7vC,EAC1CC,EAAI9G,EAAQukB,EAAMqxB,QAAUc,EAAc5vC,EAC1CrK,EAAa,CACjBoK,IACAC,IACA2D,MAAOisC,EAAcjsC,MACrBymB,KAAM3nB,MAAM1C,IAAM0C,MAAMzC,GACxBX,WAEFlN,KAAKu1C,cAAc9lB,EAAOrxB,EAAGoF,EAAYqnB,Q,GAhDjBugB,IAoD9BmS,GAAgB1yC,GAAK,QACrB0yC,GAAgBl0B,SAAW,CACzBqkB,mBAAoB,OACpB8C,gBAAiB,QACjB7lB,UAAW,IACXa,UAAU,EACVxB,SAAU,CACR+G,KAAM,CACJ1B,KAAM,WAIZkuB,GAAgBp6C,UAAY,CAC1B+5B,YAAa,EACb3R,OAAQ,CACNvmB,EAAG,CACD+F,KAAM,kB,IAKN4yC,G,WACJ,aAAc,oBACZ39C,KAAK4N,OAAItM,EACTtB,KAAK6N,OAAIvM,EACTtB,KAAKqnC,QAAS,EACdrnC,KAAKkN,aAAU5L,EACftB,KAAKooC,iBAAc9mC,E,4DAELs8C,GAAkB,MACjB59C,KAAK69C,SAAS,CAAC,IAAK,KAAMD,GACzC,MAAO,CAAChwC,EAFwB,EACzBA,EACIC,EAFqB,EACtBA,K,iCAIV,OAAOwC,EAASrQ,KAAK4N,IAAMyC,EAASrQ,KAAK6N,K,+BAElC1P,EAAO2/C,GAAO,WACfra,EAAQzjC,KAAKooC,YACnB,IAAK0V,IAAUra,EACb,OAAOzjC,KAET,IAAMynB,EAAM,GAIZ,OAHAtpB,EAAMsV,SAAQ,SAAA6f,GACZ7L,EAAI6L,GAAQmQ,EAAMnQ,IAASmQ,EAAMnQ,GAAM+T,SAAW5D,EAAMnQ,GAAMmT,IAAM,EAAKnT,MAEpE7L,M,KAGXk2B,GAAQt0B,SAAW,GACnBs0B,GAAQI,mBAAgBz8C,EAExB,IAAM08C,GAAa,CACjB50B,OADiB,SACV1pB,GACL,OAAOkC,EAAQlC,GAASA,EAAQ,GAAKA,GAEvCu+C,QAJiB,SAITC,EAAWzxC,EAAOsmC,GACxB,GAAkB,IAAdmL,EACF,MAAO,IAET,IACIC,EADE9e,EAASr/B,KAAK6pB,MAAM3c,QAAQmyB,OAE9B5F,EAAQykB,EACZ,GAAInL,EAAM10C,OAAS,EAAG,CACpB,IAAM+/C,EAAUx7C,KAAK+E,IAAI/E,KAAK4N,IAAIuiC,EAAM,GAAGrzC,OAAQkD,KAAK4N,IAAIuiC,EAAMA,EAAM10C,OAAS,GAAGqB,SAChF0+C,EAAU,MAAQA,EAAU,QAC9BD,EAAW,cAEb1kB,EAmBN,SAAwBykB,EAAWnL,GACjC,IAAItZ,EAAQsZ,EAAM10C,OAAS,EAAI00C,EAAM,GAAGrzC,MAAQqzC,EAAM,GAAGrzC,MAAQqzC,EAAM,GAAGrzC,MAAQqzC,EAAM,GAAGrzC,MACvFkD,KAAK4N,IAAIipB,IAAU,GAAKykB,IAAct7C,KAAKuN,MAAM+tC,KACnDzkB,EAAQykB,EAAYt7C,KAAKuN,MAAM+tC,IAEjC,OAAOzkB,EAxBK4kB,CAAeH,EAAWnL,GAEpC,IAAMuL,EAAW5uC,EAAM9M,KAAK4N,IAAIipB,IAC1B8kB,EAAa37C,KAAK+E,IAAI/E,KAAKkF,KAAK,EAAIlF,KAAKuN,MAAMmuC,GAAW,IAAK,GAC/DpxC,EAAU,CAACixC,WAAUK,sBAAuBD,EAAYE,sBAAuBF,GAErF,OADA7/C,OAAOwX,OAAOhJ,EAASlN,KAAKkN,QAAQ6lC,MAAMnT,QACnCT,GAAa+e,EAAW7e,EAAQnyB,IAEzCwxC,YAxBiB,SAwBLR,EAAWzxC,EAAOsmC,GAC5B,GAAkB,IAAdmL,EACF,MAAO,IAET,IAAMtX,EAASsX,EAAat7C,KAAKsN,IAAI,GAAItN,KAAKuN,MAAMT,EAAMwuC,KAC1D,OAAe,IAAXtX,GAA2B,IAAXA,GAA2B,IAAXA,EAC3BoX,GAAWC,QAAQt5C,KAAK3E,KAAMk+C,EAAWzxC,EAAOsmC,GAElD,KAUX,IAAI4L,GAAQ,CAACX,eAqEb,SAASY,GAAStzB,EAAOynB,GACvB,IAAM8L,EAAWvzB,EAAMpe,QAAQ6lC,MACzB+L,EAAaD,EAASE,eAwB9B,SAA2BzzB,GACzB,IAAMvjB,EAASujB,EAAMpe,QAAQnF,OACvBi3C,EAAa1zB,EAAM2zB,YACnBC,EAAW5zB,EAAMunB,QAAUmM,GAAcj3C,EAAS,EAAI,GACtDo3C,EAAW7zB,EAAM8zB,WAAaJ,EACpC,OAAOp8C,KAAKuN,MAAMvN,KAAKkF,IAAIo3C,EAAUC,IA7BQE,CAAkB/zB,GACzDg0B,EAAeT,EAASU,MAAMC,QA6CtC,SAAyBzM,GACvB,IACI30C,EAAGiO,EADDxM,EAAS,GAEf,IAAKzB,EAAI,EAAGiO,EAAO0mC,EAAM10C,OAAQD,EAAIiO,EAAMjO,IACrC20C,EAAM30C,GAAGmhD,OACX1/C,EAAOwF,KAAKjH,GAGhB,OAAOyB,EArDuC4/C,CAAgB1M,GAAS,GACjE2M,EAAkBJ,EAAajhD,OAC/BshD,EAAQL,EAAa,GACrBrsC,EAAOqsC,EAAaI,EAAkB,GACtCE,EAAW,GACjB,GAAIF,EAAkBZ,EAEpB,OAgDJ,SAAoB/L,EAAO6M,EAAUN,EAAc9G,GACjD,IAEIp6C,EAFA2W,EAAQ,EACRxS,EAAO+8C,EAAa,GAGxB,IADA9G,EAAU51C,KAAK8B,KAAK8zC,GACfp6C,EAAI,EAAGA,EAAI20C,EAAM10C,OAAQD,IACxBA,IAAMmE,IACRq9C,EAASv6C,KAAK0tC,EAAM30C,IACpB2W,IACAxS,EAAO+8C,EAAavqC,EAAQyjC,IA1D9BqH,CAAW9M,EAAO6M,EAAUN,EAAcI,EAAkBZ,GACrDc,EAET,IAAMpH,EAqBR,SAA0B8G,EAAcvM,EAAO+L,GAC7C,IAAMgB,EA4DR,SAAwBv2C,GACtB,IACInL,EAAG2hD,EADD/zC,EAAMzC,EAAIlL,OAEhB,GAAI2N,EAAM,EACR,OAAO,EAET,IAAK+zC,EAAOx2C,EAAI,GAAInL,EAAI,EAAGA,EAAI4N,IAAO5N,EACpC,GAAImL,EAAInL,GAAKmL,EAAInL,EAAI,KAAO2hD,EAC1B,OAAO,EAGX,OAAOA,EAvEkBC,CAAeV,GAClC9G,EAAUzF,EAAM10C,OAASygD,EAC/B,IAAKgB,EACH,OAAOl9C,KAAK+E,IAAI6wC,EAAS,GAG3B,IADA,IAAMyH,ED/yER,SAAoBvgD,GAClB,IAEItB,EAFEyB,EAAS,GACT0R,EAAO3O,KAAK2O,KAAK7R,GAEvB,IAAKtB,EAAI,EAAGA,EAAImT,EAAMnT,IAChBsB,EAAQtB,IAAM,IAChByB,EAAOwF,KAAKjH,GACZyB,EAAOwF,KAAK3F,EAAQtB,IAOxB,OAJImT,KAAiB,EAAPA,IACZ1R,EAAOwF,KAAKkM,GAEd1R,EAAO8yC,MAAK,SAAC/jC,EAAGC,GAAJ,OAAUD,EAAIC,KAAG61B,MACtB7kC,ECiyESqgD,CAAWJ,GAClB1hD,EAAI,EAAGiO,EAAO4zC,EAAQ5hD,OAAS,EAAGD,EAAIiO,EAAMjO,IAAK,CACxD,IAAMqnC,EAASwa,EAAQ7hD,GACvB,GAAIqnC,EAAS+S,EACX,OAAO/S,EAGX,OAAO7iC,KAAK+E,IAAI6wC,EAAS,GAlCT2H,CAAiBb,EAAcvM,EAAO+L,GACtD,GAAIY,EAAkB,EAAG,CACvB,IAAIthD,EAAGiO,EACD+zC,EAAkBV,EAAkB,EAAI98C,KAAKmN,OAAOkD,EAAO0sC,IAAUD,EAAkB,IAAM,KAEnG,IADAznB,GAAK8a,EAAO6M,EAAUpH,EAAS1tC,EAAcs1C,GAAmB,EAAIT,EAAQS,EAAiBT,GACxFvhD,EAAI,EAAGiO,EAAOqzC,EAAkB,EAAGthD,EAAIiO,EAAMjO,IAChD65B,GAAK8a,EAAO6M,EAAUpH,EAAS8G,EAAalhD,GAAIkhD,EAAalhD,EAAI,IAGnE,OADA65B,GAAK8a,EAAO6M,EAAUpH,EAASvlC,EAAMnI,EAAcs1C,GAAmBrN,EAAM10C,OAAS4U,EAAOmtC,GACrFR,EAGT,OADA3nB,GAAK8a,EAAO6M,EAAUpH,GACfoH,EA+CT,SAAS3nB,GAAK8a,EAAO6M,EAAUpH,EAAS6H,EAAYC,GAClD,IAGIjiD,EAAQD,EAAGmE,EAHT0P,EAAQ3G,EAAe+0C,EAAY,GACnCnuC,EAAMtP,KAAKkF,IAAIwD,EAAeg1C,EAAUvN,EAAM10C,QAAS00C,EAAM10C,QAC/D0W,EAAQ,EAQZ,IANAyjC,EAAU51C,KAAK8B,KAAK8zC,GAChB8H,IAEF9H,GADAn6C,EAASiiD,EAAWD,GACDz9C,KAAKuN,MAAM9R,EAASm6C,IAEzCj2C,EAAO0P,EACA1P,EAAO,GACZwS,IACAxS,EAAOK,KAAKmN,MAAMkC,EAAQ8C,EAAQyjC,GAEpC,IAAKp6C,EAAIwE,KAAK+E,IAAIsK,EAAO,GAAI7T,EAAI8T,EAAK9T,IAChCA,IAAMmE,IACRq9C,EAASv6C,KAAK0tC,EAAM30C,IACpB2W,IACAxS,EAAOK,KAAKmN,MAAMkC,EAAQ8C,EAAQyjC,IA7JxCnvB,GAASzV,IAAI,QAAS,CACpBupC,SAAS,EACTp1C,QAAQ,EACRgE,SAAS,EACT4rC,aAAa,EACbvW,OAAQ,QACRmf,MAAO,EACP9I,KAAM,CACJ0F,SAAS,EACT7rB,UAAW,EACXkvB,YAAY,EACZC,iBAAiB,EACjBC,WAAW,EACX1B,WAAY,EACZ2B,UAAW,SAACtV,EAAMn+B,GAAP,OAAmBA,EAAQokB,WACtCsvB,UAAW,SAACvV,EAAMn+B,GAAP,OAAmBA,EAAQ4a,OACtC/f,QAAQ,EACRk7B,WAAY,GACZC,iBAAkB,EAClB5T,YAAa,GAEfwoB,MAAO,CACLqF,SAAS,EACTrsB,KAAM,GACN+vB,QAAS,CACP/wB,IAAK,EACLC,OAAQ,IAGZgjB,MAAO,CACL+N,YAAa,EACbC,YAAa,GACbC,QAAQ,EACRC,gBAAiB,EACjBC,gBAAiB,GACjBL,QAAS,EACT1D,SAAS,EACTyB,UAAU,EACVuC,gBAAiB,EACjBC,YAAa,EACbz1C,SAAUgzC,GAAMX,WAAW50B,OAC3Bi4B,MAAO,GACP9B,MAAO,GACP/qC,MAAO,SACP8sC,WAAY,OACZC,mBAAmB,EACnBC,cAAe,4BACfC,gBAAiB,KAGrBp4B,GAASq4B,MAAM,cAAe,QAAS,GAAI,SAC3Cr4B,GAASq4B,MAAM,aAAc,QAAS,GAAI,eAC1Cr4B,GAASq4B,MAAM,aAAc,cAAe,GAAI,eAChDr4B,GAASq4B,MAAM,cAAe,QAAS,GAAI,SAC3Cr4B,GAASqC,SAAS,QAAS,CACzBY,WAAW,EACXH,YAAa,SAACR,GAAD,OAAWA,EAAKS,WAAW,YAAcT,EAAKS,WAAW,UAAqB,aAATT,GAAgC,WAATA,GACzGU,WAAY,SAACV,GAAD,MAAmB,eAATA,GAAkC,mBAATA,KAEjDtC,GAASqC,SAAS,SAAU,CAC1BY,UAAW,UAEbjD,GAASqC,SAAS,cAAe,CAC/BS,YAAa,SAACR,GAAD,MAAmB,oBAATA,GAAuC,aAATA,GACrDU,WAAY,SAACV,GAAD,MAAmB,oBAATA,KA+GxB,IACMg2B,GAAiB,SAACr2B,EAAOuoB,EAAM9rC,GAAd,MAAkC,QAAT8rC,GAA2B,SAATA,EAAkBvoB,EAAMuoB,GAAQ9rC,EAASujB,EAAMuoB,GAAQ9rC,GACzH,SAAS65C,GAAOr4C,EAAKs4C,GAKnB,IAJA,IAAMhiD,EAAS,GACTiiD,EAAYv4C,EAAIlL,OAASwjD,EACzB71C,EAAMzC,EAAIlL,OACZD,EAAI,EACDA,EAAI4N,EAAK5N,GAAK0jD,EACnBjiD,EAAOwF,KAAKkE,EAAI3G,KAAKuN,MAAM/R,KAE7B,OAAOyB,EAET,SAASkiD,GAAoBz2B,EAAO7e,EAAOu1C,GACzC,IAMIj6C,EANE1J,EAASitB,EAAMynB,MAAM10C,OACrB4jD,EAAar/C,KAAKkF,IAAI2E,EAAOpO,EAAS,GACtC4T,EAAQqZ,EAAMuqB,YACd3jC,EAAMoZ,EAAMwqB,UAEdoM,EAAY52B,EAAM0nB,gBAAgBiP,GAEtC,KAAID,IAEAj6C,EADa,IAAX1J,EACOuE,KAAK+E,IAAIu6C,EAAYjwC,EAAOC,EAAMgwC,GACxB,IAAVz1C,GACC6e,EAAM0nB,gBAAgB,GAAKkP,GAAa,GAExCA,EAAY52B,EAAM0nB,gBAAgBiP,EAAa,IAAM,GAEjEC,GAAaD,EAAax1C,EAAQ1E,GAAUA,GAC5BkK,EAZF,MAYqBiwC,EAAYhwC,EAZjC,OAgBhB,OAAOgwC,EAeT,SAASC,GAAkBj1C,GACzB,OAAOA,EAAQwzC,UAAYxzC,EAAQ8xC,WAAa,EAElD,SAASoD,GAAel1C,EAASymB,GAC/B,IAAKzmB,EAAQiwC,QACX,OAAO,EAET,IAAMjzB,EAAOwJ,GAAOxmB,EAAQgd,KAAMyJ,GAC5BktB,EAAUptB,GAAUvmB,EAAQ2zC,SAElC,OADcj/C,EAAQsL,EAAQ4jB,MAAQ5jB,EAAQ4jB,KAAKzyB,OAAS,GAC5C6rB,EAAKG,WAAcw2B,EAAQ5yB,OAe7C,SAASo0B,GAAW7tC,EAAO8tC,EAAUv2C,GACnC,IAAI0b,EAAMlT,GAAmBC,GAI7B,OAHKzI,GAAwB,UAAbu2C,IAA2Bv2C,GAAwB,UAAbu2C,KACpD76B,EA5EiB,SAACjT,GAAD,MAAqB,SAAVA,EAAmB,QAAoB,UAAVA,EAAoB,OAASA,EA4EhF+tC,CAAa96B,IAEdA,E,IAoCH+6B,G,kDACJ,WAAYn6C,GAAK,kCACf,gBACKwC,GAAKxC,EAAIwC,GACd,EAAKE,KAAO1C,EAAI0C,KAChB,EAAKmC,aAAU5L,EACf,EAAKkpB,IAAMniB,EAAImiB,IACf,EAAKX,MAAQxhB,EAAIwhB,MACjB,EAAKiG,SAAMxuB,EACX,EAAKyuB,YAASzuB,EACd,EAAKsuB,UAAOtuB,EACZ,EAAKuuB,WAAQvuB,EACb,EAAKurB,WAAQvrB,EACb,EAAK2sB,YAAS3sB,EACd,EAAKmhD,SAAW,CACd7yB,KAAM,EACNC,MAAO,EACPC,IAAK,EACLC,OAAQ,GAEV,EAAKyB,cAAWlwB,EAChB,EAAK87B,eAAY97B,EACjB,EAAKohD,gBAAaphD,EAClB,EAAKqhD,mBAAgBrhD,EACrB,EAAKshD,iBAActhD,EACnB,EAAKuhD,kBAAevhD,EACpB,EAAK6T,UAAO7T,EACZ,EAAKwhD,mBAAgBxhD,EACrB,EAAKwG,SAAMxG,EACX,EAAKqG,SAAMrG,EACX,EAAKyhD,YAASzhD,EACd,EAAKyxC,MAAQ,GACb,EAAKiQ,eAAiB,KACtB,EAAKC,YAAc,KACnB,EAAKC,YAAc,KACnB,EAAKrQ,QAAU,EACf,EAAKuM,WAAa,EAClB,EAAK+D,kBAAoB,GACzB,EAAKtN,iBAAcv0C,EACnB,EAAKw0C,eAAYx0C,EACjB,EAAK8hD,gBAAiB,EACtB,EAAKC,cAAW/hD,EAChB,EAAKgiD,cAAWhiD,EAChB,EAAKiiD,mBAAgBjiD,EACrB,EAAKkiD,mBAAgBliD,EACrB,EAAKmiD,aAAe,EACpB,EAAKC,aAAe,EACpB,EAAKnR,OAAS,GACd,EAAKoR,mBAAoB,EACzB,EAAK5X,cAAWzqC,EAhDD,E,iDAkDZ4L,GACHlN,KAAKkN,QAAUA,EAAQ4oB,WAAW91B,KAAK8tB,cACvC9tB,KAAKmV,KAAOjI,EAAQiI,KACpBnV,KAAKsjD,SAAWtjD,KAAK2F,MAAMuH,EAAQpF,KACnC9H,KAAKqjD,SAAWrjD,KAAK2F,MAAMuH,EAAQvF,KACnC3H,KAAKwjD,cAAgBxjD,KAAK2F,MAAMuH,EAAQ02C,cACxC5jD,KAAKujD,cAAgBvjD,KAAK2F,MAAMuH,EAAQ22C,gB,4BAEpCzT,EAAK3jC,GACT,OAAO2jC,I,sCAEO,IACTkT,EAAoDtjD,KAApDsjD,SAAUD,EAA0CrjD,KAA1CqjD,SAAUG,EAAgCxjD,KAAhCwjD,cAAeD,EAAiBvjD,KAAjBujD,cAKxC,OAJAD,EAAWl4C,EAAgBk4C,EAAUp4C,OAAOmE,mBAC5Cg0C,EAAWj4C,EAAgBi4C,EAAUn4C,OAAOikC,mBAC5CqU,EAAgBp4C,EAAgBo4C,EAAet4C,OAAOmE,mBACtDk0C,EAAgBn4C,EAAgBm4C,EAAer4C,OAAOikC,mBAC/C,CACLrnC,IAAKsD,EAAgBk4C,EAAUE,GAC/B77C,IAAKyD,EAAgBi4C,EAAUE,GAC/BluC,WAAYpK,EAAeq4C,GAC3BhuC,WAAYrK,EAAeo4C,M,gCAGrBvU,GAAU,IAEdj/B,EAFc,EACuB7P,KAAKoV,gBAAzCtN,EADa,EACbA,IAAKH,EADQ,EACRA,IAAK0N,EADG,EACHA,WAAYC,EADT,EACSA,WAE3B,GAAID,GAAcC,EAChB,MAAO,CAACxN,MAAKH,OAGf,IADA,IAAMm8C,EAAQ9jD,KAAKiqC,0BACV7rC,EAAI,EAAGiO,EAAOy3C,EAAMzlD,OAAQD,EAAIiO,IAAQjO,EAC/CyR,EAAQi0C,EAAM1lD,GAAG+rC,WAAW4Z,UAAU/jD,KAAM8uC,GACvCz5B,IACHvN,EAAMlF,KAAKkF,IAAIA,EAAK+H,EAAM/H,MAEvBwN,IACH3N,EAAM/E,KAAK+E,IAAIA,EAAKkI,EAAMlI,MAK9B,MAAO,CACLG,IAAKsD,EAHPtD,EAAMwN,GAAcxN,EAAMH,EAAMA,EAAMG,EAGVsD,EAF5BzD,EAAM0N,GAAcvN,EAAMH,EAAMG,EAAMH,EAEWG,IAC/CH,IAAKyD,EAAgBzD,EAAKyD,EAAgBtD,EAAKH,O,mCAIjD,MAAO,CACLioB,KAAM5vB,KAAK4iD,aAAe,EAC1B9yB,IAAK9vB,KAAK0iD,YAAc,EACxB7yB,MAAO7vB,KAAK6iD,cAAgB,EAC5B9yB,OAAQ/vB,KAAK2iD,eAAiB,K,iCAIhC,OAAO3iD,KAAK+yC,Q,kCAGZ,IAAM5rC,EAAOnH,KAAK6pB,MAAM1iB,KACxB,OAAOnH,KAAKkN,QAAQqhC,SAAWvuC,KAAK60C,eAAiB1tC,EAAK68C,QAAU78C,EAAK88C,UAAY98C,EAAKonC,QAAU,K,qCAGpGvuC,KAAKuyC,OAAS,GACdvyC,KAAK2jD,mBAAoB,I,qCAGzBh4C,EAAS3L,KAAKkN,QAAQg3C,aAAc,CAAClkD,S,6BAEhCwxB,EAAU4L,EAAWD,GAAS,MACWn9B,KAAKkN,QAA5CyqC,EAD4B,EAC5BA,YAAa4I,EADe,EACfA,MAAc1B,EADC,EACR9L,MACrBoR,EAAatF,EAASsF,WAC5BnkD,KAAKkkD,eACLlkD,KAAKwxB,SAAWA,EAChBxxB,KAAKo9B,UAAYA,EACjBp9B,KAAKyiD,SAAWtlB,EAAUz+B,OAAOwX,OAAO,CACtC0Z,KAAM,EACNC,MAAO,EACPC,IAAK,EACLC,OAAQ,GACPoN,GACHn9B,KAAK+yC,MAAQ,KACb/yC,KAAKkjD,YAAc,KACnBljD,KAAKgjD,eAAiB,KACtBhjD,KAAKijD,YAAc,KACnBjjD,KAAKokD,sBACLpkD,KAAKqkD,gBACLrkD,KAAKskD,qBACLtkD,KAAKo/C,WAAap/C,KAAK60C,eACnB70C,KAAK6sB,MAAQsQ,EAAQvN,KAAOuN,EAAQtN,MACpC7vB,KAAKiuB,OAASkP,EAAQrN,IAAMqN,EAAQpN,OACnC/vB,KAAK2jD,oBACR3jD,KAAKukD,mBACLvkD,KAAKwkD,sBACLxkD,KAAKykD,kBACLzkD,KAAK+iD,OD7sCX,SAAmB2B,EAAQnE,EAAO5I,GAAa,IACtC7vC,EAAY48C,EAAZ58C,IAAKH,EAAO+8C,EAAP/8C,IACNg9C,EAASp5C,EAAYg1C,GAAQ54C,EAAMG,GAAO,GAC1C88C,EAAW,SAACllD,EAAOoU,GAAR,OAAgB6jC,GAAyB,IAAVj4C,EAAc,EAAIA,EAAQoU,GAC1E,MAAO,CACLhM,IAAK88C,EAAS98C,GAAMlF,KAAK4N,IAAIm0C,IAC7Bh9C,IAAKi9C,EAASj9C,EAAKg9C,ICusCHE,CAAU7kD,KAAMugD,EAAO5I,GACrC33C,KAAK2jD,mBAAoB,GAE3B3jD,KAAK8kD,mBACL9kD,KAAK+yC,MAAQ/yC,KAAK+kD,cAAgB,GAClC/kD,KAAKglD,kBACL,IAAMC,EAAkBd,EAAankD,KAAK+yC,MAAM10C,OAChD2B,KAAKklD,sBAAsBD,EAAkBrD,GAAO5hD,KAAK+yC,MAAOoR,GAAcnkD,KAAK+yC,OACnF/yC,KAAK8nC,YACL9nC,KAAKmlD,+BACLnlD,KAAKolD,yBACLplD,KAAKqlD,8BACDxG,EAAS1B,UAAY0B,EAASD,UAAgC,SAApBC,EAASlyC,UACrD3M,KAAK+yC,MAAQ6L,GAAS5+C,KAAMA,KAAK+yC,OACjC/yC,KAAKkjD,YAAc,KACnBljD,KAAKslD,iBAEHL,GACFjlD,KAAKklD,sBAAsBllD,KAAK+yC,OAElC/yC,KAAKulD,YACLvlD,KAAKwlD,MACLxlD,KAAKylD,WACLzlD,KAAK0lD,gB,kCAGL,IACIjP,EAAYE,EADZgP,EAAgB3lD,KAAKkN,QAAQnB,QAE7B/L,KAAK60C,gBACP4B,EAAaz2C,KAAK4vB,KAClB+mB,EAAW32C,KAAK6vB,QAEhB4mB,EAAaz2C,KAAK8vB,IAClB6mB,EAAW32C,KAAK+vB,OAChB41B,GAAiBA,GAEnB3lD,KAAK61C,YAAcY,EACnBz2C,KAAK81C,UAAYa,EACjB32C,KAAKojD,eAAiBuC,EACtB3lD,KAAK6yC,QAAU8D,EAAWF,EAC1Bz2C,KAAK4lD,eAAiB5lD,KAAKkN,QAAQ24C,gB,oCAGnCl6C,EAAS3L,KAAKkN,QAAQw4C,YAAa,CAAC1lD,S,4CAGpC2L,EAAS3L,KAAKkN,QAAQk3C,oBAAqB,CAACpkD,S,sCAGxCA,KAAK60C,gBACP70C,KAAK6sB,MAAQ7sB,KAAKwxB,SAClBxxB,KAAK4vB,KAAO,EACZ5vB,KAAK6vB,MAAQ7vB,KAAK6sB,QAElB7sB,KAAKiuB,OAASjuB,KAAKo9B,UACnBp9B,KAAK8vB,IAAM,EACX9vB,KAAK+vB,OAAS/vB,KAAKiuB,QAErBjuB,KAAK4iD,YAAc,EACnB5iD,KAAK0iD,WAAa,EAClB1iD,KAAK6iD,aAAe,EACpB7iD,KAAK2iD,cAAgB,I,2CAGrBh3C,EAAS3L,KAAKkN,QAAQo3C,mBAAoB,CAACtkD,S,iCAElC2rB,GACT3rB,KAAK6pB,MAAMi8B,cAAcn6B,EAAM3rB,KAAK8tB,cACpCniB,EAAS3L,KAAKkN,QAAQye,GAAO,CAAC3rB,S,yCAG9BA,KAAK+lD,WAAW,sB,uFAIhB/lD,KAAK+lD,WAAW,qB,yCAGhB/lD,KAAK+lD,WAAW,sB,mCAGhB,MAAO,K,wCAGP/lD,KAAK+lD,WAAW,qB,oDAGhBp6C,EAAS3L,KAAKkN,QAAQ84C,4BAA6B,CAAChmD,S,yCAEnC+yC,GACjB,IACI30C,EAAGiO,EAAMo4B,EADPoa,EAAW7+C,KAAKkN,QAAQ6lC,MAE9B,IAAK30C,EAAI,EAAGiO,EAAO0mC,EAAM10C,OAAQD,EAAIiO,EAAMjO,KACzCqmC,EAAOsO,EAAM30C,IACRqxC,MAAQ9jC,EAASkzC,EAASlzC,SAAU,CAAC84B,EAAK/kC,MAAOtB,EAAG20C,GAAQ/yC,Q,mDAInE2L,EAAS3L,KAAKkN,QAAQ+4C,2BAA4B,CAACjmD,S,qDAGnD2L,EAAS3L,KAAKkN,QAAQi4C,6BAA8B,CAACnlD,S,+CAGrD,IAMI2gD,EAAWvjB,EAAW8oB,EANpBh5C,EAAUlN,KAAKkN,QACf2xC,EAAW3xC,EAAQ6lC,MACnBoT,EAAWnmD,KAAK+yC,MAAM10C,OACtByiD,EAAcjC,EAASiC,aAAe,EACtCC,EAAclC,EAASkC,YACzB+B,EAAgBhC,EAEpB,IAAK9gD,KAAKomD,eAAiBvH,EAAS1B,SAAW2D,GAAeC,GAAeoF,GAAY,IAAMnmD,KAAK60C,eAClG70C,KAAK8iD,cAAgBhC,MADvB,CAIA,IAAMuF,EAAarmD,KAAKsmD,iBAClBC,EAAgBF,EAAWG,OAAO35B,MAClC45B,EAAiBJ,EAAWK,QAAQz4B,OACpCuD,EAAWhf,GAAYxS,KAAK6pB,MAAMgD,MAAQ05B,EAAe,EAAGvmD,KAAKwxB,UAEnE+0B,EAAgB,GADpB5F,EAAYzzC,EAAQnF,OAAS/H,KAAKwxB,SAAW20B,EAAW30B,GAAY20B,EAAW,MAE7ExF,EAAYnvB,GAAY20B,GAAYj5C,EAAQnF,OAAS,GAAM,IAC3Dq1B,EAAYp9B,KAAKo9B,UAAY+kB,GAAkBj1C,EAAQuqC,MACvDoH,EAASgC,QAAUuB,GAAel1C,EAAQ4qC,MAAO93C,KAAK6pB,MAAM3c,QAAQgd,MACpEg8B,EAAmBtjD,KAAK2O,KAAKg1C,EAAgBA,EAAgBE,EAAiBA,GAC9E3D,EAAgBjyC,EAAUjO,KAAKkF,IAC7BlF,KAAK+jD,KAAKn0C,IAAa6zC,EAAWK,QAAQz4B,OAAS,GAAK0yB,GAAY,EAAG,IACvE/9C,KAAK+jD,KAAKn0C,GAAY4qB,EAAY8oB,GAAmB,EAAG,IAAMtjD,KAAK+jD,KAAKn0C,GAAYi0C,EAAiBP,GAAmB,EAAG,MAE7HpD,EAAgBlgD,KAAK+E,IAAIm5C,EAAal+C,KAAKkF,IAAIi5C,EAAa+B,KAE9D9iD,KAAK8iD,cAAgBA,K,oDAGrBn3C,EAAS3L,KAAKkN,QAAQm4C,4BAA6B,CAACrlD,S,2EAIpD2L,EAAS3L,KAAKkN,QAAQq4C,UAAW,CAACvlD,S,4BAGlC,IAAMu8C,EAAU,CACd1vB,MAAO,EACPoB,OAAQ,GAEHpE,EAAuE7pB,KAAvE6pB,MALH,EAK0E7pB,KAAhEkN,QAAiB2xC,EAL3B,EAKoB9L,MAAwB6T,EAL5C,EAKqC9O,MAAwB+O,EAL7D,EAKuDpP,KACrD0F,EAAUn9C,KAAKomD,aACfvR,EAAe70C,KAAK60C,eAC1B,GAAIsI,EAAS,CACX,IAAM2J,EAAc1E,GAAewE,EAAW/8B,EAAM3c,QAAQgd,MAQ5D,GAPI2qB,GACF0H,EAAQ1vB,MAAQ7sB,KAAKwxB,SACrB+qB,EAAQtuB,OAASk0B,GAAkB0E,GAAYC,IAE/CvK,EAAQtuB,OAASjuB,KAAKo9B,UACtBmf,EAAQ1vB,MAAQs1B,GAAkB0E,GAAYC,GAE5CjI,EAAS1B,SAAWn9C,KAAK+yC,MAAM10C,OAAQ,OACF2B,KAAKsmD,iBAArC3G,EADkC,EAClCA,MAAO1sC,EAD2B,EAC3BA,KAAMuzC,EADqB,EACrBA,OAAQE,EADa,EACbA,QACtBK,EAAiC,EAAnBlI,EAASgC,QACvBmG,EAAer2C,EAAU3Q,KAAK8iD,eAC9BvrC,EAAM3U,KAAK2U,IAAIyvC,GACf1wC,EAAM1T,KAAK0T,IAAI0wC,GACrB,GAAInS,EAAc,CAChB,IAAMoS,EAAcpI,EAASmC,OAAS,EAAI1qC,EAAMkwC,EAAO35B,MAAQtV,EAAMmvC,EAAQz4B,OAC7EsuB,EAAQtuB,OAASrrB,KAAKkF,IAAI9H,KAAKo9B,UAAWmf,EAAQtuB,OAASg5B,EAAcF,OACpE,CACL,IAAMG,EAAarI,EAASmC,OAAS,EAAIzpC,EAAMivC,EAAO35B,MAAQvW,EAAMowC,EAAQz4B,OAC5EsuB,EAAQ1vB,MAAQjqB,KAAKkF,IAAI9H,KAAKwxB,SAAU+qB,EAAQ1vB,MAAQq6B,EAAaH,GAEvE/mD,KAAKmnD,kBAAkBxH,EAAO1sC,EAAMqD,EAAKiB,IAG7CvX,KAAKonD,iBACDvS,GACF70C,KAAK6sB,MAAQ7sB,KAAK6yC,QAAUhpB,EAAMgD,MAAQ7sB,KAAKyiD,SAAS7yB,KAAO5vB,KAAKyiD,SAAS5yB,MAC7E7vB,KAAKiuB,OAASsuB,EAAQtuB,SAEtBjuB,KAAK6sB,MAAQ0vB,EAAQ1vB,MACrB7sB,KAAKiuB,OAASjuB,KAAK6yC,QAAUhpB,EAAMoE,OAASjuB,KAAKyiD,SAAS3yB,IAAM9vB,KAAKyiD,SAAS1yB,U,wCAGhE4vB,EAAO1sC,EAAMqD,EAAKiB,GAAK,MACKvX,KAAKkN,QADV,IAChC6lC,MAAQv+B,EADwB,EACxBA,MAAOqsC,EADiB,EACjBA,QAAUyB,EADO,EACPA,SAC1B+E,EAAmC,IAAvBrnD,KAAK8iD,cACjBwE,EAAgC,QAAbhF,GAAoC,MAAdtiD,KAAKmV,KACpD,GAAInV,KAAK60C,eAAgB,CACvB,IAAM0S,EAAavnD,KAAKgzC,gBAAgB,GAAKhzC,KAAK4vB,KAC5C43B,EAAcxnD,KAAK6vB,MAAQ7vB,KAAKgzC,gBAAgBhzC,KAAK+yC,MAAM10C,OAAS,GACtEukD,EAAc,EACdC,EAAe,EACfwE,EACEC,GACF1E,EAAcrrC,EAAMooC,EAAM9yB,MAC1Bg2B,EAAevsC,EAAMrD,EAAKgb,SAE1B20B,EAActsC,EAAMqpC,EAAM1xB,OAC1B40B,EAAetrC,EAAMtE,EAAK4Z,OAET,UAAVrY,EACTquC,EAAe5vC,EAAK4Z,MACD,QAAVrY,EACTouC,EAAcjD,EAAM9yB,MACD,UAAVrY,IACTouC,EAAcjD,EAAM9yB,MAAQ,EAC5Bg2B,EAAe5vC,EAAK4Z,MAAQ,GAE9B7sB,KAAK4iD,YAAchgD,KAAK+E,KAAKi7C,EAAc2E,EAAa1G,GAAW7gD,KAAK6sB,OAAS7sB,KAAK6sB,MAAQ06B,GAAa,GAC3GvnD,KAAK6iD,aAAejgD,KAAK+E,KAAKk7C,EAAe2E,EAAc3G,GAAW7gD,KAAK6sB,OAAS7sB,KAAK6sB,MAAQ26B,GAAc,OAC1G,CACL,IAAI9E,EAAazvC,EAAKgb,OAAS,EAC3B00B,EAAgBhD,EAAM1xB,OAAS,EACrB,UAAVzZ,GACFkuC,EAAa,EACbC,EAAgBhD,EAAM1xB,QACH,QAAVzZ,IACTkuC,EAAazvC,EAAKgb,OAClB00B,EAAgB,GAElB3iD,KAAK0iD,WAAaA,EAAa7B,EAC/B7gD,KAAK2iD,cAAgBA,EAAgB9B,K,uCAInC7gD,KAAKyiD,WACPziD,KAAKyiD,SAAS7yB,KAAOhtB,KAAK+E,IAAI3H,KAAK4iD,YAAa5iD,KAAKyiD,SAAS7yB,MAC9D5vB,KAAKyiD,SAAS3yB,IAAMltB,KAAK+E,IAAI3H,KAAK0iD,WAAY1iD,KAAKyiD,SAAS3yB,KAC5D9vB,KAAKyiD,SAAS5yB,MAAQjtB,KAAK+E,IAAI3H,KAAK6iD,aAAc7iD,KAAKyiD,SAAS5yB,OAChE7vB,KAAKyiD,SAAS1yB,OAASntB,KAAK+E,IAAI3H,KAAK2iD,cAAe3iD,KAAKyiD,SAAS1yB,W,iCAIpEpkB,EAAS3L,KAAKkN,QAAQu4C,SAAU,CAACzlD,S,qCAEpB,MACYA,KAAKkN,QAAvBiI,EADM,EACNA,KAAMmtC,EADA,EACAA,SACb,MAAoB,QAAbA,GAAmC,WAAbA,GAAkC,MAATntC,I,mCAGtD,OAAOnV,KAAKkN,QAAQu6C,W,4CAEA1U,GAGpB,IAAI30C,EAAGiO,EACP,IAHArM,KAAKgmD,8BACLhmD,KAAK0nD,mBAAmB3U,GAEnB30C,EAAI,EAAGiO,EAAO0mC,EAAM10C,OAAQD,EAAIiO,EAAMjO,IACrC0M,EAAcioC,EAAM30C,GAAGqxC,SACzBsD,EAAM7qC,OAAO9J,EAAG,GAChBiO,IACAjO,KAGJ4B,KAAKimD,+B,uCAGL,IAAII,EAAarmD,KAAKkjD,YACtB,IAAKmD,EAAY,CACf,IAAMlC,EAAankD,KAAKkN,QAAQ6lC,MAAMoR,WAClCpR,EAAQ/yC,KAAK+yC,MACboR,EAAapR,EAAM10C,SACrB00C,EAAQ6O,GAAO7O,EAAOoR,IAExBnkD,KAAKkjD,YAAcmD,EAAarmD,KAAK2nD,mBAAmB5U,EAAOA,EAAM10C,QAEvE,OAAOgoD,I,yCAEUtT,EAAO10C,GAAQ,IAM5BD,EAAGkoB,EAAG6G,EAAMsiB,EAAOmY,EAAUC,EAAY76B,EAAO3C,EAAYwC,EAAOoB,EAAQ65B,EALxEt9B,EAAkCxqB,KAAlCwqB,IAAwBu9B,EAAU/nD,KAA7BmjD,kBACN6E,EAAS,GACTC,EAAU,GACZC,EAAkB,EAClBC,EAAmB,EAEvB,IAAK/pD,EAAI,EAAGA,EAAIC,IAAUD,EAAG,CAO3B,GANAqxC,EAAQsD,EAAM30C,GAAGqxC,MACjBmY,EAAW5nD,KAAKooD,wBAAwBhqD,GACxCosB,EAAIN,KAAO29B,EAAaD,EAASl7B,OACjCM,EAAQ+6B,EAAOF,GAAcE,EAAOF,IAAe,CAAC1gD,KAAM,GAAIqlB,GAAI,IAClEnC,EAAau9B,EAASv9B,WACtBwC,EAAQoB,EAAS,EACZnjB,EAAc2kC,IAAW7tC,EAAQ6tC,IAG/B,GAAI7tC,EAAQ6tC,GACjB,IAAKnpB,EAAI,EAAG6G,EAAOsiB,EAAMpxC,OAAQioB,EAAI6G,IAAQ7G,EAEtCxb,EADLg9C,EAAcrY,EAAMnpB,KACgB1kB,EAAQkmD,KAC1Cj7B,EAAQN,GAAa/B,EAAKwC,EAAM7lB,KAAM6lB,EAAMR,GAAIK,EAAOi7B,GACvD75B,GAAU5D,QAPdwC,EAAQN,GAAa/B,EAAKwC,EAAM7lB,KAAM6lB,EAAMR,GAAIK,EAAO4iB,GACvDxhB,EAAS5D,EAUX29B,EAAO3iD,KAAKwnB,GACZo7B,EAAQ5iD,KAAK4oB,GACbi6B,EAAkBtlD,KAAK+E,IAAIklB,EAAOq7B,GAClCC,EAAmBvlD,KAAK+E,IAAIsmB,EAAQk6B,IAxgB1C,SAAwBJ,EAAQ1pD,GAC9BwN,EAAKk8C,GAAQ,SAAC/6B,GACZ,IAEI5uB,EAFEouB,EAAKQ,EAAMR,GACXe,EAAQf,EAAGnuB,OAAS,EAE1B,GAAIkvB,EAAQlvB,EAAQ,CAClB,IAAKD,EAAI,EAAGA,EAAImvB,IAASnvB,SAChB4uB,EAAM7lB,KAAKqlB,EAAGpuB,IAEvBouB,EAAGtkB,OAAO,EAAGqlB,OAigBfN,CAAe86B,EAAQ1pD,GACvB,IAAMmoD,EAASwB,EAAOh7C,QAAQk7C,GACxBxB,EAAUuB,EAAQj7C,QAAQm7C,GAC1BE,EAAU,SAACC,GAAD,MAAU,CAACz7B,MAAOm7B,EAAOM,IAAQ,EAAGr6B,OAAQg6B,EAAQK,IAAQ,IAC5E,MAAO,CACL3I,MAAO0I,EAAQ,GACfp1C,KAAMo1C,EAAQhqD,EAAS,GACvBmoD,OAAQ6B,EAAQ7B,GAChBE,QAAS2B,EAAQ3B,GACjBsB,SACAC,a,uCAGavoD,GACf,OAAOA,I,uCAEQA,EAAO+M,GACtB,OAAOoiC,M,uCAEQphB,M,sCACDhhB,GACd,IAAMsmC,EAAQ/yC,KAAK+yC,MACnB,OAAItmC,EAAQ,GAAKA,EAAQsmC,EAAM10C,OAAS,EAC/B,KAEF2B,KAAKuV,iBAAiBw9B,EAAMtmC,GAAO/M,S,yCAEzB6oD,GACbvoD,KAAKojD,iBACPmF,EAAU,EAAIA,GAEhB,IAAM96B,EAAQztB,KAAK61C,YAAc0S,EAAUvoD,KAAK6yC,QAChD,ODt2FKrgC,GCs2FcxS,KAAK4lD,eAAiBp4B,GAAYxtB,KAAK6pB,MAAO4D,EAAO,GAAKA,GDt2FpD,MAAO,S,yCCw2FfA,GACjB,IAAM86B,GAAW96B,EAAQztB,KAAK61C,aAAe71C,KAAK6yC,QAClD,OAAO7yC,KAAKojD,eAAiB,EAAImF,EAAUA,I,qCAG3C,OAAOvoD,KAAKuV,iBAAiBvV,KAAKwoD,kB,qCAErB,IACN1gD,EAAY9H,KAAZ8H,IAAKH,EAAO3H,KAAP2H,IACZ,OAAOG,EAAM,GAAKH,EAAM,EAAIA,EAC1BG,EAAM,GAAKH,EAAM,EAAIG,EACrB,I,iCAEO2E,GACT,IAAMsmC,EAAQ/yC,KAAK+yC,OAAS,GAC5B,GAAItmC,GAAS,GAAKA,EAAQsmC,EAAM10C,OAAQ,CACtC,IAAMomC,EAAOsO,EAAMtmC,GACnB,OAAOg4B,EAAKsH,WACbtH,EAAKsH,SA/hBV,SAA2B7U,EAAQzqB,EAAOg4B,GACxC,OAAOxQ,GAAciD,EAAQ,CAC3BuN,OACAh4B,QACA1B,KAAM,SA2hBW09C,CAAkBzoD,KAAK8tB,aAAcrhB,EAAOg4B,IAE7D,OAAOzkC,KAAK+rC,WACZ/rC,KAAK+rC,SAviBA9X,GAuiB8Bj0B,KAAK6pB,MAAMiE,aAviBnB,CAC3BxC,MAsiB4DtrB,KAriB5D+K,KAAM,a,kCAwiBN,IAAM29C,EAAc1oD,KAAKkN,QAAQ6lC,MAC3B4V,EAAMh4C,EAAU3Q,KAAK8iD,eACrBvrC,EAAM3U,KAAK4N,IAAI5N,KAAK2U,IAAIoxC,IACxBryC,EAAM1T,KAAK4N,IAAI5N,KAAK0T,IAAIqyC,IACxBtC,EAAarmD,KAAKsmD,iBAClBzF,EAAU6H,EAAYvH,iBAAmB,EACzCrmC,EAAIurC,EAAaA,EAAWG,OAAO35B,MAAQg0B,EAAU,EACrDhoC,EAAIwtC,EAAaA,EAAWK,QAAQz4B,OAAS4yB,EAAU,EAC7D,OAAO7gD,KAAK60C,eACRh8B,EAAItB,EAAMuD,EAAIxE,EAAMwE,EAAIvD,EAAMsB,EAAIvC,EAClCuC,EAAIvC,EAAMwE,EAAIvD,EAAMsB,EAAItB,EAAMuD,EAAIxE,I,mCAGtC,IAAM6mC,EAAUn9C,KAAKkN,QAAQiwC,QAC7B,MAAgB,SAAZA,IACOA,EAEJn9C,KAAKiqC,0BAA0B5rC,OAAS,I,4CAE3B2xC,GACpB,IAgBI4Y,EAAaxqD,EAAG8jD,EAAW2G,EAC3BC,EAAKC,EAAKC,EAAKC,EAAKC,EAAIC,EAAIC,EAAIC,EAjB9Bl0C,EAAOnV,KAAKmV,KACZ0U,EAAQ7pB,KAAK6pB,MACb3c,EAAUlN,KAAKkN,QACduqC,EAAkBvqC,EAAlBuqC,KAAM6K,EAAYp1C,EAAZo1C,SACPv6C,EAAS0vC,EAAK1vC,OACd8sC,EAAe70C,KAAK60C,eAEpByU,EADQtpD,KAAK+yC,MACO10C,QAAU0J,EAAS,EAAI,GAC3CwhD,EAAKpH,GAAkB1K,GACvB9jC,EAAQ,GACR61C,EAAa/R,EAAK3hB,WAAW91B,KAAK8tB,cAClC27B,EAAYD,EAAWhJ,WAAagJ,EAAWl6B,YAAc,EAC7Do6B,EAAgBD,EAAY,EAC5BE,EAAmB,SAASl8B,GAChC,OAAOD,GAAY3D,EAAO4D,EAAOg8B,IAInC,GAAiB,QAAbnH,EACFsG,EAAce,EAAiB3pD,KAAK+vB,QACpCg5B,EAAM/oD,KAAK+vB,OAASw5B,EACpBN,EAAML,EAAcc,EACpBP,EAAKQ,EAAiB3Z,EAAUlgB,KAAO45B,EACvCL,EAAKrZ,EAAUjgB,YACV,GAAiB,WAAbuyB,EACTsG,EAAce,EAAiB3pD,KAAK8vB,KACpCq5B,EAAKnZ,EAAUlgB,IACfu5B,EAAKM,EAAiB3Z,EAAUjgB,QAAU25B,EAC1CX,EAAMH,EAAcc,EACpBT,EAAMjpD,KAAK8vB,IAAMy5B,OACZ,GAAiB,SAAbjH,EACTsG,EAAce,EAAiB3pD,KAAK6vB,OACpCi5B,EAAM9oD,KAAK6vB,MAAQ05B,EACnBP,EAAMJ,EAAcc,EACpBR,EAAKS,EAAiB3Z,EAAUpgB,MAAQ85B,EACxCN,EAAKpZ,EAAUngB,WACV,GAAiB,UAAbyyB,EACTsG,EAAce,EAAiB3pD,KAAK4vB,MACpCs5B,EAAKlZ,EAAUpgB,KACfw5B,EAAKO,EAAiB3Z,EAAUngB,OAAS65B,EACzCZ,EAAMF,EAAcc,EACpBV,EAAMhpD,KAAK4vB,KAAO25B,OACb,GAAa,MAATp0C,EAAc,CACvB,GAAiB,WAAbmtC,EACFsG,EAAce,GAAkB3Z,EAAUlgB,IAAMkgB,EAAUjgB,QAAU,EAAI,SACnE,GAAI/kB,EAASs3C,GAAW,CAC7B,IAAMsH,EAAiBlrD,OAAOuN,KAAKq2C,GAAU,GACvC5iD,EAAQ4iD,EAASsH,GACvBhB,EAAce,EAAiB3pD,KAAK6pB,MAAM0B,OAAOq+B,GAAgBr0C,iBAAiB7V,IAEpFypD,EAAKnZ,EAAUlgB,IACfu5B,EAAKrZ,EAAUjgB,OAEfk5B,GADAF,EAAMH,EAAcc,GACRH,OACP,GAAa,MAATp0C,EAAc,CACvB,GAAiB,WAAbmtC,EACFsG,EAAce,GAAkB3Z,EAAUpgB,KAAOogB,EAAUngB,OAAS,QAC/D,GAAI7kB,EAASs3C,GAAW,CAC7B,IAAMsH,EAAiBlrD,OAAOuN,KAAKq2C,GAAU,GACvC5iD,EAAQ4iD,EAASsH,GACvBhB,EAAce,EAAiB3pD,KAAK6pB,MAAM0B,OAAOq+B,GAAgBr0C,iBAAiB7V,IAGpFspD,GADAF,EAAMF,EAAcc,GACRH,EACZL,EAAKlZ,EAAUpgB,KACfw5B,EAAKpZ,EAAUngB,MAEjB,IAAMg6B,EAAQv+C,EAAe4B,EAAQ6lC,MAAMgM,cAAeuK,GACpDhnD,EAAOM,KAAK+E,IAAI,EAAG/E,KAAK8B,KAAK4kD,EAAcO,IACjD,IAAKzrD,EAAI,EAAGA,EAAIkrD,EAAalrD,GAAKkE,EAAM,CACtC,IAAMwnD,EAAcrS,EAAK3hB,WAAW91B,KAAK8tB,WAAW1vB,IAC9CkzB,EAAYw4B,EAAYx4B,UACxBy4B,EAAYD,EAAYhiC,MACxBmb,EAAa6mB,EAAY7mB,YAAc,GACvCC,EAAmB4mB,EAAY5mB,iBAC/Byd,EAAYmJ,EAAYnJ,UACxBC,EAAYkJ,EAAYlJ,UACxBoJ,EAAiBF,EAAYE,gBAAkB,GAC/CC,EAAuBH,EAAYG,0BAEvB3oD,KADlB4gD,EAAYH,GAAoB/hD,KAAM5B,EAAG2J,MAIzC8gD,EAAmBr7B,GAAY3D,EAAOq4B,EAAW5wB,GAC7CujB,EACFiU,EAAME,EAAME,EAAKE,EAAKP,EAEtBE,EAAME,EAAME,EAAKE,EAAKR,EAExBl1C,EAAMtO,KAAK,CACTyjD,MACAC,MACAC,MACAC,MACAC,KACAC,KACAC,KACAC,KACAx8B,MAAOyE,EACPxJ,MAAOiiC,EACP9mB,aACAC,mBACAyd,YACAC,YACAoJ,iBACAC,0BAKJ,OAFAjqD,KAAKyjD,aAAe6F,EACpBtpD,KAAK0jD,aAAekF,EACbj1C,I,yCAEUq8B,GACjB,IAWI5xC,EAAGiO,EAAYojC,EAAO7hC,EAAGC,EAAGgkB,EAAWpE,EAAOvD,EAAMG,EAAY6/B,EAAWC,EAXzEh1C,EAAOnV,KAAKmV,KACZjI,EAAUlN,KAAKkN,QACdo1C,EAAgCp1C,EAAhCo1C,SAAiBoG,EAAex7C,EAAtB6lC,MACX8B,EAAe70C,KAAK60C,eACpB9B,EAAQ/yC,KAAK+yC,MACZv+B,EAAsCk0C,EAAtCl0C,MAAO8sC,EAA+BoH,EAA/BpH,WAAYT,EAAmB6H,EAAnB7H,QAASG,EAAU0H,EAAV1H,OAC7BuI,EAAKpH,GAAkBj1C,EAAQuqC,MAC/B2S,EAAiBb,EAAK1I,EACtBwJ,EAAkBrJ,GAAUH,EAAUuJ,EACtC57B,GAAY7d,EAAU3Q,KAAK8iD,eAC3BnvC,EAAQ,GAEVme,EAAe,SACnB,GAAiB,QAAbwwB,EACFz0C,EAAI7N,KAAK+vB,OAASs6B,EAClBx4B,EAAY7xB,KAAKsqD,+BACZ,GAAiB,WAAbhI,EACTz0C,EAAI7N,KAAK8vB,IAAMu6B,EACfx4B,EAAY7xB,KAAKsqD,+BACZ,GAAiB,SAAbhI,EAAqB,CAC9B,IAAM76B,EAAMznB,KAAKuqD,wBAAwBhB,GACzC13B,EAAYpK,EAAIoK,UAChBjkB,EAAI6Z,EAAI7Z,OACH,GAAiB,UAAb00C,EAAsB,CAC/B,IAAM76B,EAAMznB,KAAKuqD,wBAAwBhB,GACzC13B,EAAYpK,EAAIoK,UAChBjkB,EAAI6Z,EAAI7Z,OACH,GAAa,MAATuH,EAAc,CACvB,GAAiB,WAAbmtC,EACFz0C,GAAMmiC,EAAUlgB,IAAMkgB,EAAUjgB,QAAU,EAAKq6B,OAC1C,GAAIp/C,EAASs3C,GAAW,CAC7B,IAAMsH,EAAiBlrD,OAAOuN,KAAKq2C,GAAU,GACvC5iD,EAAQ4iD,EAASsH,GACvB/7C,EAAI7N,KAAK6pB,MAAM0B,OAAOq+B,GAAgBr0C,iBAAiB7V,GAAS0qD,EAElEv4B,EAAY7xB,KAAKsqD,+BACZ,GAAa,MAATn1C,EAAc,CACvB,GAAiB,WAAbmtC,EACF10C,GAAMoiC,EAAUpgB,KAAOogB,EAAUngB,OAAS,EAAKu6B,OAC1C,GAAIp/C,EAASs3C,GAAW,CAC7B,IAAMsH,EAAiBlrD,OAAOuN,KAAKq2C,GAAU,GACvC5iD,EAAQ4iD,EAASsH,GACvBh8C,EAAI5N,KAAK6pB,MAAM0B,OAAOq+B,GAAgBr0C,iBAAiB7V,GAEzDmyB,EAAY7xB,KAAKuqD,wBAAwBhB,GAAI13B,UAElC,MAAT1c,IACY,UAAVX,EACFsd,EAAe,MACI,QAAVtd,IACTsd,EAAe,WAGnB,IAAMu0B,EAAarmD,KAAKsmD,iBACxB,IAAKloD,EAAI,EAAGiO,EAAO0mC,EAAM10C,OAAQD,EAAIiO,IAAQjO,EAAG,CAE9CqxC,EADOsD,EAAM30C,GACAqxC,MACb,IAAMqa,EAAcpB,EAAY5yB,WAAW91B,KAAK8tB,WAAW1vB,IAC3DqvB,EAAQztB,KAAKgzC,gBAAgB50C,GAAKsqD,EAAYtH,YAE9C/2B,GADAH,EAAOlqB,KAAKooD,wBAAwBhqD,IAClBisB,WAElB,IAAMmgC,GADNN,EAAYtoD,EAAQ6tC,GAASA,EAAMpxC,OAAS,GACd,EACxBypB,EAAQgiC,EAAYhiC,MACpBqJ,EAAc24B,EAAY5I,gBAC1BhwB,EAAc44B,EAAY7I,gBAC5BwJ,EAAgB54B,EAChBgjB,GACFjnC,EAAI6f,EACc,UAAdoE,IAEA44B,EADErsD,IAAMiO,EAAO,EACErM,KAAKkN,QAAQnB,QAAoB,OAAV,QACzB,IAAN3N,EACQ4B,KAAKkN,QAAQnB,QAAmB,QAAT,OAExB,UAKhBo+C,EAFa,QAAb7H,EACiB,SAAfhB,GAAsC,IAAb9yB,GACb07B,EAAY7/B,EAAaA,EAAa,EAC5B,WAAfi3B,GACK+E,EAAWK,QAAQz4B,OAAS,EAAIu8B,EAAYngC,EAAaA,GAEzDg8B,EAAWK,QAAQz4B,OAAS5D,EAAa,EAGtC,SAAfi3B,GAAsC,IAAb9yB,EACdnE,EAAa,EACF,WAAfi3B,EACI+E,EAAWK,QAAQz4B,OAAS,EAAIu8B,EAAYngC,EAE5Cg8B,EAAWK,QAAQz4B,OAASi8B,EAAY7/B,EAGrD22B,IACFmJ,IAAe,KAGjBt8C,EAAI4f,EACJ08B,GAAc,EAAID,GAAa7/B,EAAa,GAE9C,IAAIqgC,OAAQ,EACZ,GAAIZ,EAAYvI,kBAAmB,CACjC,IAAMoJ,EAAel3B,GAAUq2B,EAAYrI,iBACrCxzB,EAASo4B,EAAW4B,QAAQ7pD,GAC5ByuB,EAAQw5B,EAAW2B,OAAO5pD,GAC5B0xB,EAAMjiB,EAAIs8C,EAAaQ,EAAa76B,IACpCF,EAAOhiB,EAAI+8C,EAAa/6B,KAC5B,OAAQkC,GACR,IAAK,SACHhC,GAAO7B,EAAS,EAChB,MACF,IAAK,SACH6B,GAAO7B,EAGT,OAAQ4D,GACR,IAAK,SACHjC,GAAQ/C,EAAQ,EAChB,MACF,IAAK,QACH+C,GAAQ/C,EAGV69B,EAAW,CACT96B,OACAE,MACAjD,MAAOA,EAAQ89B,EAAa99B,MAC5BoB,OAAQA,EAAS08B,EAAa18B,OAC9BnG,MAAOgiC,EAAYtI,eAGvB7tC,EAAMtO,KAAK,CACTmpB,WACAihB,QACAvlB,OACApC,QACAqJ,cACAD,cACAi5B,aACAt4B,UAAW44B,EACX34B,eACAH,YAAa,CAAC/jB,EAAGC,GACjB68C,aAGJ,OAAO/2C,I,gDAEiB,MACE3T,KAAKkN,QAAxBo1C,EADiB,EACjBA,SAAUvP,EADO,EACPA,MAEjB,IADkBpiC,EAAU3Q,KAAK8iD,eAE/B,MAAoB,QAAbR,EAAqB,OAAS,QAEvC,IAAI9tC,EAAQ,SAQZ,MAPoB,UAAhBu+B,EAAMv+B,MACRA,EAAQ,OACiB,QAAhBu+B,EAAMv+B,MACfA,EAAQ,QACiB,UAAhBu+B,EAAMv+B,QACfA,EAAQ,SAEHA,I,8CAEe+0C,GAAI,IAKtB13B,EACAjkB,EANsB,EAC+B5N,KAAKkN,QAAvDo1C,EADmB,EACnBA,SADmB,IACTvP,MAAQuO,EADC,EACDA,WAAYN,EADX,EACWA,OAAQH,EADnB,EACmBA,QAEvCuJ,EAAiBb,EAAK1I,EACtB2F,EAFaxmD,KAAKsmD,iBAEEE,OAAO35B,MAsDjC,MAnDiB,SAAby1B,EACEtB,GACFpzC,EAAI5N,KAAK6vB,MAAQgxB,EACE,SAAfS,EACFzvB,EAAY,OACY,WAAfyvB,GACTzvB,EAAY,SACZjkB,GAAM44C,EAAS,IAEf30B,EAAY,QACZjkB,GAAK44C,KAGP54C,EAAI5N,KAAK6vB,MAAQu6B,EACE,SAAf9I,EACFzvB,EAAY,QACY,WAAfyvB,GACTzvB,EAAY,SACZjkB,GAAM44C,EAAS,IAEf30B,EAAY,OACZjkB,EAAI5N,KAAK4vB,OAGS,UAAb0yB,EACLtB,GACFpzC,EAAI5N,KAAK4vB,KAAOixB,EACG,SAAfS,EACFzvB,EAAY,QACY,WAAfyvB,GACTzvB,EAAY,SACZjkB,GAAM44C,EAAS,IAEf30B,EAAY,OACZjkB,GAAK44C,KAGP54C,EAAI5N,KAAK4vB,KAAOw6B,EACG,SAAf9I,EACFzvB,EAAY,OACY,WAAfyvB,GACTzvB,EAAY,SACZjkB,GAAK44C,EAAS,IAEd30B,EAAY,QACZjkB,EAAI5N,KAAK6vB,QAIbgC,EAAY,QAEP,CAACA,YAAWjkB,O,0CAGnB,IAAI5N,KAAKkN,QAAQ6lC,MAAMiO,OAAvB,CAGA,IAAMn3B,EAAQ7pB,KAAK6pB,MACby4B,EAAWtiD,KAAKkN,QAAQo1C,SAC9B,MAAiB,SAAbA,GAAoC,UAAbA,EAClB,CAACxyB,IAAK,EAAGF,KAAM5vB,KAAK4vB,KAAMG,OAAQlG,EAAMoE,OAAQ4B,MAAO7vB,KAAK6vB,OAClD,QAAbyyB,GAAmC,WAAbA,EACnB,CAACxyB,IAAK9vB,KAAK8vB,IAAKF,KAAM,EAAGG,OAAQ/vB,KAAK+vB,OAAQF,MAAOhG,EAAMgD,YADlE,K,uCAIa,IACRrC,EAA6DxqB,KAA7DwqB,IAAehB,EAA8CxpB,KAAxDkN,QAAUsc,gBAAkBoG,EAA4B5vB,KAA5B4vB,KAAME,EAAsB9vB,KAAtB8vB,IAAKjD,EAAiB7sB,KAAjB6sB,MAAOoB,EAAUjuB,KAAViuB,OACtDzE,IACFgB,EAAI0C,OACJ1C,EAAIoH,UAAYpI,EAChBgB,EAAIogC,SAASh7B,EAAME,EAAKjD,EAAOoB,GAC/BzD,EAAI8C,a,2CAGa5tB,GACnB,IAAM+3C,EAAOz3C,KAAKkN,QAAQuqC,KAC1B,IAAKz3C,KAAKomD,eAAiB3O,EAAK0F,QAC9B,OAAO,EAET,IACM1wC,EADQzM,KAAK+yC,MACC8X,WAAU,SAAAz0C,GAAC,OAAIA,EAAE1W,QAAUA,KAC/C,OAAI+M,GAAS,EACEgrC,EAAK3hB,WAAW91B,KAAK8tB,WAAWrhB,IACjC6kB,UAEP,I,+BAEA0e,GACP,IAGI5xC,EAAGiO,EAHDorC,EAAOz3C,KAAKkN,QAAQuqC,KACpBjtB,EAAMxqB,KAAKwqB,IACX7W,EAAQ3T,KAAKgjD,iBAAmBhjD,KAAKgjD,eAAiBhjD,KAAK8qD,sBAAsB9a,IAEjF+a,EAAW,SAACxvC,EAAIC,EAAI4O,GACnBA,EAAMyC,OAAUzC,EAAMtC,QAG3B0C,EAAI0C,OACJ1C,EAAI8G,UAAYlH,EAAMyC,MACtBrC,EAAI6G,YAAcjH,EAAMtC,MACxB0C,EAAIwgC,YAAY5gC,EAAM6Y,YAAc,IACpCzY,EAAIygC,eAAiB7gC,EAAM8Y,iBAC3B1Y,EAAIqE,YACJrE,EAAIyE,OAAO1T,EAAG3N,EAAG2N,EAAG1N,GACpB2c,EAAI0E,OAAO1T,EAAG5N,EAAG4N,EAAG3N,GACpB2c,EAAI+E,SACJ/E,EAAI8C,YAEN,GAAImqB,EAAK0F,QACP,IAAK/+C,EAAI,EAAGiO,EAAOsH,EAAMtV,OAAQD,EAAIiO,IAAQjO,EAAG,CAC9C,IAAM2Q,EAAO4E,EAAMvV,GACfq5C,EAAKgJ,iBACPsK,EACE,CAACn9C,EAAGmB,EAAKm6C,GAAIr7C,EAAGkB,EAAKo6C,IACrB,CAACv7C,EAAGmB,EAAKq6C,GAAIv7C,EAAGkB,EAAKs6C,IACrBt6C,GAGA0oC,EAAKiJ,WACPqK,EACE,CAACn9C,EAAGmB,EAAK+5C,IAAKj7C,EAAGkB,EAAKg6C,KACtB,CAACn7C,EAAGmB,EAAKi6C,IAAKn7C,EAAGkB,EAAKk6C,KACtB,CACEnhC,MAAO/Y,EAAK6xC,UACZ/zB,MAAO9d,EAAK4xC,UACZ1d,WAAYl0B,EAAKi7C,eACjB9mB,iBAAkBn0B,EAAKk7C,0B,mCAOtB,IACJpgC,EAA+B7pB,KAA/B6pB,MAAOW,EAAwBxqB,KAAxBwqB,IAAeitB,EAASz3C,KAAnBkN,QAAUuqC,KACvB+R,EAAa/R,EAAK3hB,WAAW91B,KAAK8tB,cAClC27B,EAAYhS,EAAK+I,WAAagJ,EAAWl6B,YAAc,EAC7D,GAAKm6B,EAAL,CAGA,IAEIP,EAAIE,EAAID,EAAIE,EAFV6B,EAAgBzT,EAAK3hB,WAAW91B,KAAK8tB,WAAW,IAAIwD,UACpDs3B,EAAc5oD,KAAK0jD,aAErB1jD,KAAK60C,gBACPqU,EAAK17B,GAAY3D,EAAO7pB,KAAK4vB,KAAM65B,GAAaA,EAAY,EAC5DL,EAAK57B,GAAY3D,EAAO7pB,KAAK6vB,MAAOq7B,GAAiBA,EAAgB,EACrE/B,EAAKE,EAAKT,IAEVO,EAAK37B,GAAY3D,EAAO7pB,KAAK8vB,IAAK25B,GAAaA,EAAY,EAC3DJ,EAAK77B,GAAY3D,EAAO7pB,KAAK+vB,OAAQm7B,GAAiBA,EAAgB,EACtEhC,EAAKE,EAAKR,GAEZp+B,EAAI0C,OACJ1C,EAAI8G,UAAYk4B,EAAWl6B,YAC3B9E,EAAI6G,YAAcm4B,EAAW//B,YAC7Be,EAAIqE,YACJrE,EAAIyE,OAAOi6B,EAAIC,GACf3+B,EAAI0E,OAAOk6B,EAAIC,GACf7+B,EAAI+E,SACJ/E,EAAI8C,a,iCAEK0iB,GAET,GADoBhwC,KAAKkN,QAAQ6lC,MAChBoK,QAAjB,CAGA,IAAM3yB,EAAMxqB,KAAKwqB,IACXkF,EAAO1vB,KAAKmrD,oBACdz7B,GACFM,GAASxF,EAAKkF,GAEhB,IACItxB,EAAGiO,EADDsH,EAAQ3T,KAAKijD,cAAgBjjD,KAAKijD,YAAcjjD,KAAKorD,mBAAmBpb,IAE9E,IAAK5xC,EAAI,EAAGiO,EAAOsH,EAAMtV,OAAQD,EAAIiO,IAAQjO,EAAG,CAC9C,IAAM2Q,EAAO4E,EAAMvV,GACbwpD,EAAW74C,EAAKmb,KAChBulB,EAAQ1gC,EAAK0gC,MACf1gC,EAAK27C,WACPlgC,EAAIoH,UAAY7iB,EAAK27C,SAAS5iC,MAC9B0C,EAAIogC,SAAS77C,EAAK27C,SAAS96B,KAAM7gB,EAAK27C,SAAS56B,IAAK/gB,EAAK27C,SAAS79B,MAAO9d,EAAK27C,SAASz8B,SAGzF4C,GAAWrG,EAAKilB,EAAO,EADf1gC,EAAKo7C,WACgBvC,EAAU74C,GAErC2gB,GACFQ,GAAW1F,M,kCAGH,IACHA,EAA4CxqB,KAA5CwqB,IADG,EACyCxqB,KAAvCkN,QAAUo1C,EADZ,EACYA,SAAUxK,EADtB,EACsBA,MAAO/rC,EAD7B,EAC6BA,QACvC,GAAK+rC,EAAMqF,QAAX,CAGA,IAAMjzB,EAAOwJ,GAAOokB,EAAM5tB,MACpB22B,EAAUptB,GAAUqkB,EAAM+I,SAC1BrsC,EAAQsjC,EAAMtjC,MAChBzM,EAASmiB,EAAKG,WAAa,EACd,WAAbi4B,GAAsC,WAAbA,GAAyBt3C,EAASs3C,IAC7Dv6C,GAAU84C,EAAQ9wB,OACdnuB,EAAQk2C,EAAMhnB,QAChB/oB,GAAUmiB,EAAKG,YAAcytB,EAAMhnB,KAAKzyB,OAAS,KAGnD0J,GAAU84C,EAAQ/wB,IAfV,MAngCd,SAAmBxE,EAAOvjB,EAAQu6C,EAAU9tC,GAAO,IAI7Cgd,EAAU65B,EAAQC,EAHfx7B,EAAmCxE,EAAnCwE,IAAKF,EAA8BtE,EAA9BsE,KAAMG,EAAwBzE,EAAxByE,OAAQF,EAAgBvE,EAAhBuE,MAAOhG,EAASyB,EAATzB,MAC1BmmB,EAAqBnmB,EAArBmmB,UAAWzkB,EAAU1B,EAAV0B,OACdiD,EAAW,EAETP,EAAS8B,EAASD,EAClBjD,EAAQgD,EAAQD,EACtB,GAAItE,EAAMupB,eAAgB,CAExB,GADAwW,EAAS52C,GAAeD,EAAOob,EAAMC,GACjC7kB,EAASs3C,GAAW,CACtB,IAAMsH,EAAiBlrD,OAAOuN,KAAKq2C,GAAU,GACvC5iD,EAAQ4iD,EAASsH,GACvB0B,EAAS//B,EAAOq+B,GAAgBr0C,iBAAiB7V,GAASuuB,EAASlmB,OAEnEujD,EADsB,WAAbhJ,GACCtS,EAAUjgB,OAASigB,EAAUlgB,KAAO,EAAI7B,EAASlmB,EAElD45C,GAAer2B,EAAOg3B,EAAUv6C,GAE3CypB,EAAW3B,EAAQD,MACd,CACL,GAAI5kB,EAASs3C,GAAW,CACtB,IAAMsH,EAAiBlrD,OAAOuN,KAAKq2C,GAAU,GACvC5iD,EAAQ4iD,EAASsH,GACvByB,EAAS9/B,EAAOq+B,GAAgBr0C,iBAAiB7V,GAASmtB,EAAQ9kB,OAElEsjD,EADsB,WAAb/I,GACCtS,EAAUpgB,KAAOogB,EAAUngB,OAAS,EAAIhD,EAAQ9kB,EAEjD45C,GAAer2B,EAAOg3B,EAAUv6C,GAE3CujD,EAAS72C,GAAeD,EAAOub,EAAQD,GACvCtB,EAAwB,SAAb8zB,GAAuB/yC,EAAUA,EAE9C,MAAO,CAAC87C,SAAQC,SAAQ95B,WAAUhD,YAo/Ba+8B,CAAUvrD,KAAM+H,EAAQu6C,EAAU9tC,GAAxE62C,EAjBG,EAiBHA,OAAQC,EAjBL,EAiBKA,OAAQ95B,EAjBb,EAiBaA,SAAUhD,EAjBvB,EAiBuBA,SACjCqC,GAAWrG,EAAKstB,EAAMhnB,KAAM,EAAG,EAAG5G,EAAM,CACtCpC,MAAOgwB,EAAMhwB,MACb0J,WACAhD,WACAqD,UAAWwwB,GAAW7tC,EAAO8tC,EAAUv2C,GACvC+lB,aAAc,SACdH,YAAa,CAAC05B,EAAQC,Q,2BAGrBtb,GACEhwC,KAAKomD,eAGVpmD,KAAKwrD,iBACLxrD,KAAKyrD,SAASzb,GACdhwC,KAAKwgD,aACLxgD,KAAK0rD,YACL1rD,KAAK2rD,WAAW3b,M,gCAER,WACFhf,EAAOhxB,KAAKkN,QACZ0+C,EAAK56B,EAAK+hB,OAAS/hB,EAAK+hB,MAAM8Y,GAAK,EACnCC,EAAKxgD,EAAe0lB,EAAKymB,MAAQzmB,EAAKymB,KAAKoU,GAAI,GACrD,OAAK7rD,KAAKomD,cAAgBpmD,KAAKskC,OAASke,EAAMvjD,UAAUqlC,KAQjD,CAAC,CACNunB,EAAGC,EACHxnB,KAAM,SAAC0L,GACL,EAAKwb,iBACL,EAAKC,SAASzb,GACd,EAAK0b,cAEN,CACDG,EAAGC,EAAK,EACRxnB,KAAM,WACJ,EAAKkc,eAEN,CACDqL,EAAGD,EACHtnB,KAAM,SAAC0L,GACL,EAAK2b,WAAW3b,MAtBX,CAAC,CACN6b,EAAGD,EACHtnB,KAAM,SAAC0L,GACL,EAAK1L,KAAK0L,Q,8CAuBMjlC,GACtB,IAGI3M,EAAGiO,EAHDy3C,EAAQ9jD,KAAK6pB,MAAMkiC,+BACnBC,EAAShsD,KAAKmV,KAAO,SACrBtV,EAAS,GAEf,IAAKzB,EAAI,EAAGiO,EAAOy3C,EAAMzlD,OAAQD,EAAIiO,IAAQjO,EAAG,CAC9C,IAAMuW,EAAOmvC,EAAM1lD,GACfuW,EAAKq3C,KAAYhsD,KAAK6K,IAAQE,GAAQ4J,EAAK5J,OAASA,GACtDlL,EAAOwF,KAAKsP,GAGhB,OAAO9U,I,8CAEe4M,GAEtB,OAAOinB,GADM1zB,KAAKkN,QAAQ6lC,MAAMjd,WAAW91B,KAAK8tB,WAAWrhB,IACxCyd,Q,mCAGnB,IAAM+hC,EAAWjsD,KAAKooD,wBAAwB,GAAG/9B,WACjD,OAAQrqB,KAAK60C,eAAiB70C,KAAK6sB,MAAQ7sB,KAAKiuB,QAAUg+B,M,GAxjC1CtO,IA4jCduO,G,WACJ,WAAYnhD,EAAMoe,EAAO4M,GAAU,oBACjC/1B,KAAK+K,KAAOA,EACZ/K,KAAKmpB,MAAQA,EACbnpB,KAAK+1B,SAAWA,EAChB/1B,KAAK2T,MAAQjV,OAAOc,OAAO,M,sDAEnBuL,GACR,OAAOrM,OAAOO,UAAUktD,cAAcxnD,KAAK3E,KAAK+K,KAAK9L,UAAW8L,EAAK9L,a,+BAE9D8P,GACP,IACIq9C,EADEjlC,EAAQzoB,OAAO0K,eAAe2F,IAgExC,SAA2BoY,GACzB,MAAO,OAAQA,GAAS,aAAcA,GA/DhCklC,CAAkBllC,KACpBilC,EAAcpsD,KAAKssD,SAASnlC,IAE9B,IAAMxT,EAAQ3T,KAAK2T,MACb9I,EAAKkE,EAAKlE,GACVse,EAAQnpB,KAAKmpB,MAAQ,IAAMte,EACjC,IAAKA,EACH,MAAM,IAAInE,MAAM,2BAA6BqI,GAE/C,OAAIlE,KAAM8I,IAGVA,EAAM9I,GAAMkE,EAyBhB,SAA0BA,EAAMoa,EAAOijC,GACrC,IAAMG,EAAel/C,EAAM3O,OAAOc,OAAO,MAAO,CAC9C4sD,EAAc/iC,GAAS/e,IAAI8hD,GAAe,GAC1C/iC,GAAS/e,IAAI6e,GACbpa,EAAKsa,WAEPA,GAASzV,IAAIuV,EAAOojC,GAChBx9C,EAAKgvC,eAOX,SAAuB50B,EAAOqjC,GAC5B9tD,OAAOuN,KAAKugD,GAAQ/4C,SAAQ,SAAArJ,GAC1B,IAAMqiD,EAAgBriD,EAAS4D,MAAM,KAC/B0+C,EAAaD,EAAc/nB,MAC3BioB,EAAc,CAACxjC,GAAOjlB,OAAOuoD,GAAe/mD,KAAK,KACjDqI,EAAQy+C,EAAOpiD,GAAU4D,MAAM,KAC/B6d,EAAa9d,EAAM22B,MACnB9Y,EAAc7d,EAAMrI,KAAK,KAC/B2jB,GAASq4B,MAAMiL,EAAaD,EAAY9gC,EAAaC,MAdrD+gC,CAAczjC,EAAOpa,EAAKgvC,eAExBhvC,EAAKga,aACPM,GAASqC,SAASvC,EAAOpa,EAAKga,aAnC9B8jC,CAAiB99C,EAAMoa,EAAOijC,GAC1BpsD,KAAK+1B,UACP1M,GAAS0M,SAAShnB,EAAKlE,GAAIkE,EAAK5L,YALzBgmB,I,0BASPte,GACF,OAAO7K,KAAK2T,MAAM9I,K,iCAETkE,GACT,IAAM4E,EAAQ3T,KAAK2T,MACb9I,EAAKkE,EAAKlE,GACVse,EAAQnpB,KAAKmpB,MACfte,KAAM8I,UACDA,EAAM9I,GAEXse,GAASte,KAAMwe,GAASF,YACnBE,GAASF,GAAOte,GACnB7K,KAAK+1B,iBACA5yB,GAAU0H,Q,SAwHrBiiD,GAAW,I,WArFb,aAAc,oBACZ9sD,KAAK+sD,YAAc,IAAIb,GAAc9gB,GAAmB,YAAY,GACpEprC,KAAKgqB,SAAW,IAAIkiC,GAAcvO,GAAS,YAC3C39C,KAAKorB,QAAU,IAAI8gC,GAAcxtD,OAAQ,WACzCsB,KAAKurB,OAAS,IAAI2gC,GAAc1J,GAAO,UACvCxiD,KAAKgtD,iBAAmB,CAAChtD,KAAK+sD,YAAa/sD,KAAKurB,OAAQvrB,KAAKgqB,U,kDAElD,2BAAN5oB,EAAM,yBAANA,EAAM,gBACXpB,KAAKitD,MAAM,WAAY7rD,K,+BAET,2BAANA,EAAM,yBAANA,EAAM,gBACdpB,KAAKitD,MAAM,aAAc7rD,K,uCAEH,2BAANA,EAAM,yBAANA,EAAM,gBACtBpB,KAAKitD,MAAM,WAAY7rD,EAAMpB,KAAK+sD,e,oCAEf,2BAAN3rD,EAAM,yBAANA,EAAM,gBACnBpB,KAAKitD,MAAM,WAAY7rD,EAAMpB,KAAKgqB,Y,mCAEhB,2BAAN5oB,EAAM,yBAANA,EAAM,gBAClBpB,KAAKitD,MAAM,WAAY7rD,EAAMpB,KAAKorB,W,kCAEjB,2BAANhqB,EAAM,yBAANA,EAAM,gBACjBpB,KAAKitD,MAAM,WAAY7rD,EAAMpB,KAAKurB,U,oCAEtB1gB,GACZ,OAAO7K,KAAKktD,KAAKriD,EAAI7K,KAAK+sD,YAAa,gB,iCAE9BliD,GACT,OAAO7K,KAAKktD,KAAKriD,EAAI7K,KAAKgqB,SAAU,a,gCAE5Bnf,GACR,OAAO7K,KAAKktD,KAAKriD,EAAI7K,KAAKorB,QAAS,Y,+BAE5BvgB,GACP,OAAO7K,KAAKktD,KAAKriD,EAAI7K,KAAKurB,OAAQ,W,0CAET,2BAANnqB,EAAM,yBAANA,EAAM,gBACzBpB,KAAKitD,MAAM,aAAc7rD,EAAMpB,KAAK+sD,e,uCAEd,2BAAN3rD,EAAM,yBAANA,EAAM,gBACtBpB,KAAKitD,MAAM,aAAc7rD,EAAMpB,KAAKgqB,Y,sCAEf,2BAAN5oB,EAAM,yBAANA,EAAM,gBACrBpB,KAAKitD,MAAM,aAAc7rD,EAAMpB,KAAKorB,W,qCAEhB,2BAANhqB,EAAM,yBAANA,EAAM,gBACpBpB,KAAKitD,MAAM,aAAc7rD,EAAMpB,KAAKurB,U,4BAEhC0b,EAAQ7lC,EAAM+rD,GAAe,WACjC,YAAI/rD,GAAMqS,SAAQ,SAAA9S,GAChB,IAAMysD,EAAMD,GAAiB,EAAKE,oBAAoB1sD,GAClDwsD,GAAiBC,EAAIE,UAAU3sD,IAASysD,IAAQ,EAAKhiC,SAAWzqB,EAAIkK,GACtE,EAAK0iD,MAAMtmB,EAAQmmB,EAAKzsD,GAExBkL,EAAKlL,GAAK,SAAAoO,GACR,IAAMy+C,EAAUL,GAAiB,EAAKE,oBAAoBt+C,GAC1D,EAAKw+C,MAAMtmB,EAAQumB,EAASz+C,W,4BAK9Bk4B,EAAQ6lB,EAAUW,GACtB,IAAMC,EAAcr/C,EAAY44B,GAChCt7B,EAAS8hD,EAAU,SAAWC,GAAc,GAAID,GAChDX,EAAS7lB,GAAQwmB,GACjB9hD,EAAS8hD,EAAU,QAAUC,GAAc,GAAID,K,0CAE7B1iD,GAClB,IAAK,IAAI3M,EAAI,EAAGA,EAAI4B,KAAKgtD,iBAAiB3uD,OAAQD,IAAK,CACrD,IAAMgvD,EAAMptD,KAAKgtD,iBAAiB5uD,GAClC,GAAIgvD,EAAIE,UAAUviD,GAChB,OAAOqiD,EAGX,OAAOptD,KAAKorB,U,2BAETvgB,EAAIsiD,EAAepiD,GACtB,IAAMgE,EAAOo+C,EAAc7iD,IAAIO,GAC/B,QAAavJ,IAATyN,EACF,MAAM,IAAIrI,MAAM,IAAMmE,EAAK,yBAA2BE,EAAO,KAE/D,OAAOgE,M,MAKL4+C,G,qKACG9iC,GACL,IAAMlW,EAAO3U,KAAKoqC,YADP,EAEiBz1B,EAArBxN,KAAMyN,OAFF,MAEW,GAFX,EAGLC,EAAqB7U,KAAK6pB,MAAMonB,oBAH3B,EAIUv8B,GAAiCC,EAAMC,EAAQC,GAA/D5C,EAJM,EAINA,MAAO8C,EAJD,EAICA,MAOZ,GANA/U,KAAK2rC,WAAa15B,EAClBjS,KAAK4rC,WAAa72B,EACdS,GAAoBb,KACtB1C,EAAQ,EACR8C,EAAQH,EAAOvW,QAEb2B,KAAKkN,QAAQse,SAAU,KACTuF,EAAkBpc,EAA3B03B,QAAeoP,EAAY9mC,EAAZ8mC,SACtB1qB,EAAKoR,OAASniC,KAAK6pB,MACnBkH,EAAKuR,cAAgBtiC,KAAKyM,MAC1BskB,EAAK2qB,aAAeD,EAASC,WAC7B3qB,EAAKnc,OAASA,EACd,IAAM1H,EAAUlN,KAAKiwC,6BAA6BplB,GAClD3d,EAAQi0B,QAAUnhC,KAAKkN,QAAQi0B,QAC/BnhC,KAAKu1C,cAAcxkB,OAAMzvB,EAAW,CAClCq6C,UAAW9mC,EACX3H,WACC2d,GAEL7qB,KAAKgyC,eAAep9B,EAAQ3C,EAAO8C,EAAO8V,K,oCAE9B,IACLW,EAAYxrB,KAAKkN,QAAjBse,UACFxrB,KAAK0tC,oBAAsBliB,IAC9BxrB,KAAK0tC,mBAAqBof,GAASc,WAAW,SAEhD,sE,qCAEah5C,EAAQ3C,EAAO8C,EAAO8V,GAYnC,IAXA,IAAM9jB,EAAiB,UAAT8jB,EAD2B,EAEI7qB,KAAKoqC,YAA3Cn1B,EAFkC,EAElCA,OAAQ80B,EAF0B,EAE1BA,OAAQoC,EAFkB,EAElBA,SAAUsP,EAFQ,EAERA,SAC3BvK,EAAYlxC,KAAKkwC,0BAA0Bj+B,EAAO4Y,GAClDmmB,EAAgBhxC,KAAKoxC,iBAAiBF,GACtCG,EAAiBrxC,KAAKqxC,eAAexmB,EAAMmmB,GAC3C1G,EAAQr1B,EAAOE,KACfo1B,EAAQR,EAAO50B,KAPoB,EAQbnV,KAAKkN,QAA1BitB,EARkC,EAQlCA,SAAUgH,EARwB,EAQxBA,QACXya,EAAevrC,EAAS8pB,GAAYA,EAAWjvB,OAAOmE,kBACtDwsC,EAAe77C,KAAK6pB,MAAMonB,qBAAuBlqC,GAAkB,SAAT8jB,EAC5DixB,EAAa7pC,EAAQ,GAAKjS,KAAKwvC,UAAUv9B,EAAQ,GAC5C7T,EAAI6T,EAAO7T,EAAI6T,EAAQ8C,IAAS3W,EAAG,CAC1C,IAAMqxB,EAAQ7a,EAAOxW,GACf05B,EAAS93B,KAAKwvC,UAAUpxC,GACxBoF,EAAaq4C,EAAepsB,EAAQ,GACpCssB,EAAWjxC,EAAcgtB,EAAOyS,IAChC3Q,EAASp2B,EAAW8mC,GAASr1B,EAAOM,iBAAiBuiB,EAAOwS,GAAQlsC,GACpEy7B,EAASr2B,EAAW+mC,GAASxjC,GAASg1C,EAAWhS,EAAO6K,eAAiB7K,EAAOx0B,iBAAiB42B,EAAWnsC,KAAKkpC,WAAWa,EAAQjS,EAAQqU,GAAYrU,EAAOyS,GAAQnsC,GAC7KoF,EAAWy0B,KAAO3nB,MAAMspB,IAAWtpB,MAAMupB,IAAWkiB,EACpDv4C,EAAWw4C,KAAO59C,EAAI,GAAMwE,KAAK4N,IAAIsnB,EAAOwS,GAASwR,EAAWxR,IAAWsR,EACvEza,IACF39B,EAAWs0B,OAASA,EACpBt0B,EAAW4sC,IAAMqL,EAASt0C,KAAK/I,IAE7BizC,IACF7tC,EAAW0J,QAAU8jC,GAAiBhxC,KAAKkwC,0BAA0B9xC,EAAGqxB,EAAM4X,OAAS,SAAWxc,IAE/FgxB,GACH77C,KAAKu1C,cAAc9lB,EAAOrxB,EAAGoF,EAAYqnB,GAE3CixB,EAAahkB,EAEf93B,KAAKsxC,oBAAoBN,EAAenmB,EAAMqmB,K,uCAG9C,IAAMv8B,EAAO3U,KAAKoqC,YACZjjC,EAAOwN,EAAKxN,MAAQ,GAC1B,IAAKnH,KAAKkN,QAAQse,SAAU,CAE1B,IADA,IAAI7jB,EAAM,EACDvJ,EAAI+I,EAAK9I,OAAS,EAAGD,GAAK,IAAKA,EACtCuJ,EAAM/E,KAAK+E,IAAIA,EAAKR,EAAK/I,GAAG0Q,KAAK9O,KAAKkwC,0BAA0B9xC,IAAM,GAExE,OAAOuJ,EAAM,GAAKA,EAEpB,IAAM0kC,EAAU13B,EAAK03B,QACf4P,EAAS5P,EAAQn/B,SAAWm/B,EAAQn/B,QAAQoiB,aAAe,EACjE,IAAKnoB,EAAK9I,OACR,OAAO49C,EAET,IAAM7jB,EAAajxB,EAAK,GAAG2H,KAAK9O,KAAKkwC,0BAA0B,IACzDgM,EAAY/0C,EAAKA,EAAK9I,OAAS,GAAGyQ,KAAK9O,KAAKkwC,0BAA0B/oC,EAAK9I,OAAS,IAC1F,OAAOuE,KAAK+E,IAAIs0C,EAAQ7jB,EAAY8jB,GAAa,M,GAtFrB9Q,IAyFhCuiB,GAAkB9iD,GAAK,UACvB8iD,GAAkBtkC,SAAW,CAC3BqkB,oBAAoB,EACpB8C,gBAAiB,QACjBhlB,UAAU,EACV6D,MAAM,GAERs+B,GAAkBxqD,UAAY,CAC5BynB,YAAa,CACXC,KAAM,SAERO,QAAS,CACPysB,QAAS,CACPlU,UAAW,CACTmU,MADS,WAEP,MAAO,IAETrI,MAJS,SAIH1gC,GACJ,MAAO,IAAMA,EAAK0gC,MAAQ,KAAO1gC,EAAKwsC,eAAiB,QAK/DhwB,OAAQ,CACN3d,EAAG,CACD7C,KAAM,UAER8C,EAAG,CACD9C,KAAM,YAiBZ,SAAS8iD,KACP,MAAM,IAAInnD,MAAM,mF,IAEZonD,G,WACJ,WAAY5gD,GAAS,oBACnBlN,KAAKkN,QAAUA,GAAW,G,iDAEvB6gD,M,gCAEH,OAAOF,O,4BAEHnuD,EAAOkgC,GACX,OAAOiuB,O,6BAEFG,EAAWpuB,GAChB,OAAOiuB,O,0BAELG,EAAWC,EAAQC,GACrB,OAAOL,O,2BAEJj/C,EAAGC,EAAGq/C,GACT,OAAOL,O,8BAEDG,EAAWE,EAAMC,GACvB,OAAON,O,4BAEHG,EAAWE,GACf,OAAOL,S,KAGXC,GAAY/3B,SAAW,SAASq4B,GAC9B1vD,OAAOwX,OAAO43C,GAAY7uD,UAAWmvD,IAEvC,IAAIC,GAAW,CACbC,MAAOR,IAGT,SAASS,GAAaC,EAASr5C,EAAMzV,EAAOorB,GAAW,IAC9Cqf,EAA6BqkB,EAA7BrkB,WAAYhjC,EAAiBqnD,EAAjBrnD,KAAM6N,EAAWw5C,EAAXx5C,QACnBC,EAASk1B,EAAWC,YAAYn1B,OACtC,GAAIA,GAAUE,IAASF,EAAOE,MAAiB,MAATA,GAAgBH,GAAW7N,EAAK9I,OAAQ,CAC5E,IAAMowD,EAAex5C,EAAOmuC,eAAiBlwC,GAAgBF,GAC7D,IAAK8X,EACH,OAAO2jC,EAAatnD,EAAMgO,EAAMzV,GAC3B,GAAIyqC,EAAWuB,eAAgB,CACpC,IAAMjN,EAAKt3B,EAAK,GACV0I,EAA+B,oBAAhB4uB,EAAGiwB,UAA2BjwB,EAAGiwB,SAASv5C,GAC/D,GAAItF,EAAO,CACT,IAAMoC,EAAQw8C,EAAatnD,EAAMgO,EAAMzV,EAAQmQ,GACzCqC,EAAMu8C,EAAatnD,EAAMgO,EAAMzV,EAAQmQ,GAC7C,MAAO,CAACkD,GAAId,EAAMc,GAAID,GAAIZ,EAAIY,MAIpC,MAAO,CAACC,GAAI,EAAGD,GAAI3L,EAAK9I,OAAS,GAEnC,SAASswD,GAAyB9kC,EAAO1U,EAAMmtC,EAAUsM,EAAS9jC,GAGhE,IAFA,IAAMke,EAAWnf,EAAMkiC,+BACjBrsD,EAAQ4iD,EAASntC,GACd/W,EAAI,EAAGiO,EAAO28B,EAAS3qC,OAAQD,EAAIiO,IAAQjO,EAGlD,IAHqD,MAC/B4qC,EAAS5qC,GAAxBqO,EAD8C,EAC9CA,MAAOtF,EADuC,EACvCA,KADuC,EAEpConD,GAAavlB,EAAS5qC,GAAI+W,EAAMzV,EAAOorB,GAAjD/X,EAF8C,EAE9CA,GAAID,EAF0C,EAE1CA,GACFwT,EAAIvT,EAAIuT,GAAKxT,IAAMwT,EAAG,CAC7B,IAAMkV,EAAUr0B,EAAKmf,GAChBkV,EAAQvD,MACX22B,EAAQpzB,EAAS/uB,EAAO6Z,IAchC,SAASuoC,GAAkBhlC,EAAOy4B,EAAUntC,EAAMyoC,EAAkB7yB,GAClE,IAAMpX,EAAQ,GACd,IAAKoX,IAAqBlB,EAAMilC,cAAcxM,GAC5C,OAAO3uC,EAWT,OADAg7C,GAAyB9kC,EAAO1U,EAAMmtC,GARf,SAAS9mB,EAAShvB,EAAcC,IAChDse,GAAqByE,GAAegM,EAAS3R,EAAMmmB,UAAW,KAG/DxU,EAAQuzB,QAAQzM,EAAS10C,EAAG00C,EAASz0C,EAAG+vC,IAC1CjqC,EAAMtO,KAAK,CAACm2B,UAAShvB,eAAcC,aAGyB,GACzDkH,EAcT,SAASq7C,GAAyBnlC,EAAOy4B,EAAUntC,EAAM2V,EAAW8yB,EAAkB7yB,GACpF,IAAIpX,EAAQ,GACNs7C,EAvCR,SAAkC95C,GAChC,IAAM+5C,GAA8B,IAAvB/5C,EAAKnI,QAAQ,KACpBmiD,GAA8B,IAAvBh6C,EAAKnI,QAAQ,KAC1B,OAAO,SAAS4E,EAAKC,GACnB,IAAMu9C,EAASF,EAAOtsD,KAAK4N,IAAIoB,EAAIhE,EAAIiE,EAAIjE,GAAK,EAC1CyhD,EAASF,EAAOvsD,KAAK4N,IAAIoB,EAAI/D,EAAIgE,EAAIhE,GAAK,EAChD,OAAOjL,KAAK2O,KAAK3O,KAAKsN,IAAIk/C,EAAQ,GAAKxsD,KAAKsN,IAAIm/C,EAAQ,KAiCnCC,CAAyBn6C,GAC5Co6C,EAAcrkD,OAAOmE,kBAoBzB,OADAs/C,GAAyB9kC,EAAO1U,EAAMmtC,GAlBtC,SAAwB9mB,EAAShvB,EAAcC,GAC7C,IAAMsiD,EAAUvzB,EAAQuzB,QAAQzM,EAAS10C,EAAG00C,EAASz0C,EAAG+vC,GACxD,IAAI9yB,GAAcikC,EAAlB,CAGA,IAAMzZ,EAAS9Z,EAAQg0B,eAAe5R,GAEtC,KADsB7yB,GAAoBlB,EAAMilC,cAAcxZ,IACzCyZ,EAArB,CAGA,IAAMr9C,EAAWu9C,EAAe3M,EAAUhN,GACtC5jC,EAAW69C,GACb57C,EAAQ,CAAC,CAAC6nB,UAAShvB,eAAcC,UACjC8iD,EAAc79C,GACLA,IAAa69C,GACtB57C,EAAMtO,KAAK,CAACm2B,UAAShvB,eAAcC,eAIhCkH,EAET,SAAS87C,GAAgB5lC,EAAOy4B,EAAUntC,EAAM2V,EAAW8yB,EAAkB7yB,GAC3E,OAAKA,GAAqBlB,EAAMilC,cAAcxM,GAG9B,MAATntC,GAAiB2V,EAEpBkkC,GAAyBnlC,EAAOy4B,EAAUntC,EAAM2V,EAAW8yB,EAAkB7yB,GA3CnF,SAA+BlB,EAAOy4B,EAAUntC,EAAMyoC,GACpD,IAAIjqC,EAAQ,GASZ,OADAg7C,GAAyB9kC,EAAO1U,EAAMmtC,GAPtC,SAAwB9mB,EAAShvB,EAAcC,GAAO,MACrB+uB,EAAQqiB,SAAS,CAAC,aAAc,YAAaD,GAArE1E,EAD6C,EAC7CA,WAAYC,EADiC,EACjCA,SAEfnnC,GADYf,GAAkBuqB,EAAS,CAAC5tB,EAAG00C,EAAS10C,EAAGC,EAAGy0C,EAASz0C,IAAhE2D,MACkB0nC,EAAYC,IACnCxlC,EAAMtO,KAAK,CAACm2B,UAAShvB,eAAcC,aAIhCkH,EAgCH+7C,CAAsB7lC,EAAOy4B,EAAUntC,EAAMyoC,GAHxC,GAMX,SAAS+R,GAAa9lC,EAAOy4B,EAAUntC,EAAM2V,EAAW8yB,GACtD,IAAMjqC,EAAQ,GACRi8C,EAAuB,MAATz6C,EAAe,WAAa,WAC5C06C,GAAiB,EAOrB,OANAlB,GAAyB9kC,EAAO1U,EAAMmtC,GAAU,SAAC9mB,EAAShvB,EAAcC,GAClE+uB,EAAQo0B,GAAatN,EAASntC,GAAOyoC,KACvCjqC,EAAMtO,KAAK,CAACm2B,UAAShvB,eAAcC,UACnCojD,EAAiBA,GAAkBr0B,EAAQuzB,QAAQzM,EAAS10C,EAAG00C,EAASz0C,EAAG+vC,OAG3E9yB,IAAc+kC,EACT,GAEFl8C,EAET,IAAIm8C,GAAc,CAChBnB,4BACAoB,MAAO,CACLtjD,MADK,SACCod,EAAO7nB,EAAGkL,EAAS0wC,GACvB,IAAM0E,EAAWxmB,GAAoB95B,EAAG6nB,GAClC1U,EAAOjI,EAAQiI,MAAQ,IACvB4V,EAAmB7d,EAAQ6d,mBAAoB,EAC/CpX,EAAQzG,EAAQ4d,UAClB+jC,GAAkBhlC,EAAOy4B,EAAUntC,EAAMyoC,EAAkB7yB,GAC3D0kC,GAAgB5lC,EAAOy4B,EAAUntC,GAAM,EAAOyoC,EAAkB7yB,GAC9Df,EAAW,GACjB,OAAKrW,EAAMtV,QAGXwrB,EAAMkiC,+BAA+Bt4C,SAAQ,SAACkB,GAC5C,IAAMlI,EAAQkH,EAAM,GAAGlH,MACjB+uB,EAAU7mB,EAAKxN,KAAKsF,GACtB+uB,IAAYA,EAAQvD,MACtBjO,EAAS3kB,KAAK,CAACm2B,UAAShvB,aAAcmI,EAAKlI,MAAOA,aAG/Cud,GATE,IAWXqiB,QArBK,SAqBGxiB,EAAO7nB,EAAGkL,EAAS0wC,GACzB,IAAM0E,EAAWxmB,GAAoB95B,EAAG6nB,GAClC1U,EAAOjI,EAAQiI,MAAQ,KACvB4V,EAAmB7d,EAAQ6d,mBAAoB,EACjDpX,EAAQzG,EAAQ4d,UAChB+jC,GAAkBhlC,EAAOy4B,EAAUntC,EAAMyoC,EAAkB7yB,GAC7D0kC,GAAgB5lC,EAAOy4B,EAAUntC,GAAM,EAAOyoC,EAAkB7yB,GAClE,GAAIpX,EAAMtV,OAAS,EAAG,CACpB,IAAMmO,EAAemH,EAAM,GAAGnH,aACxBrF,EAAO0iB,EAAMujB,eAAe5gC,GAAcrF,KAChDwM,EAAQ,GACR,IAAK,IAAIvV,EAAI,EAAGA,EAAI+I,EAAK9I,SAAUD,EACjCuV,EAAMtO,KAAK,CAACm2B,QAASr0B,EAAK/I,GAAIoO,eAAcC,MAAOrO,IAGvD,OAAOuV,GAET8b,MAtCK,SAsCC5F,EAAO7nB,EAAGkL,EAAS0wC,GAIvB,OAAOiR,GAAkBhlC,EAHRiS,GAAoB95B,EAAG6nB,GAC3B3c,EAAQiI,MAAQ,KAEmByoC,EADvB1wC,EAAQ6d,mBAAoB,IAGvDilC,QA5CK,SA4CGnmC,EAAO7nB,EAAGkL,EAAS0wC,GACzB,IAAM0E,EAAWxmB,GAAoB95B,EAAG6nB,GAClC1U,EAAOjI,EAAQiI,MAAQ,KACvB4V,EAAmB7d,EAAQ6d,mBAAoB,EACrD,OAAO0kC,GAAgB5lC,EAAOy4B,EAAUntC,EAAMjI,EAAQ4d,UAAW8yB,EAAkB7yB,IAErFnd,EAlDK,SAkDHic,EAAO7nB,EAAGkL,EAAS0wC,GAEnB,OAAO+R,GAAa9lC,EADHiS,GAAoB95B,EAAG6nB,GACH,IAAK3c,EAAQ4d,UAAW8yB,IAE/D/vC,EAtDK,SAsDHgc,EAAO7nB,EAAGkL,EAAS0wC,GAEnB,OAAO+R,GAAa9lC,EADHiS,GAAoB95B,EAAG6nB,GACH,IAAK3c,EAAQ4d,UAAW8yB,MAK7DqS,GAAmB,CAAC,OAAQ,MAAO,QAAS,UAClD,SAASC,GAAiBx/C,EAAO4xC,GAC/B,OAAO5xC,EAAM4lB,QAAO,SAAA3oB,GAAC,OAAIA,EAAEkuB,MAAQymB,KAErC,SAAS6N,GAA4Bz/C,EAAOyE,GAC1C,OAAOzE,EAAM4lB,QAAO,SAAA3oB,GAAC,OAAyC,IAArCsiD,GAAiBjjD,QAAQW,EAAEkuB,MAAeluB,EAAE4uB,IAAIpnB,OAASA,KAEpF,SAASi7C,GAAa1/C,EAAO3E,GAC3B,OAAO2E,EAAMiiC,MAAK,SAAC/jC,EAAGC,GACpB,IAAMvC,EAAKP,EAAU8C,EAAID,EACnBrC,EAAKR,EAAU6C,EAAIC,EACzB,OAAOvC,EAAGyb,SAAWxb,EAAGwb,OACtBzb,EAAGG,MAAQF,EAAGE,MACdH,EAAGyb,OAASxb,EAAGwb,UAkCrB,SAASsoC,GAAcC,EAASC,GAC9B,IAEInyD,EAAGiO,EAAMmkD,EAFP9mB,EAdR,SAAqB4mB,GACnB,IAD4B,EACtB5mB,EAAS,GADa,cAET4mB,GAFS,IAE5B,2BAA4B,KAAjBG,EAAiB,QACnBtnB,EAA2BsnB,EAA3BtnB,MAAOtN,EAAoB40B,EAApB50B,IAAK60B,EAAeD,EAAfC,YACnB,GAAKvnB,GAAU8mB,GAAiBh7B,SAAS4G,GAAzC,CAGA,IAAMhG,EAAS6T,EAAOP,KAAWO,EAAOP,GAAS,CAACp0B,MAAO,EAAG47C,OAAQ,EAAG5oC,OAAQ,EAAGjZ,KAAM,IACxF+mB,EAAO9gB,QACP8gB,EAAO9N,QAAU2oC,IATS,8BAW5B,OAAOhnB,EAGQknB,CAAYN,GACpBO,EAA+BN,EAA/BM,aAAcC,EAAiBP,EAAjBO,cAErB,IAAK1yD,EAAI,EAAGiO,EAAOikD,EAAQjyD,OAAQD,EAAIiO,IAAQjO,EAAG,KAEzCqpD,GADP+I,EAASF,EAAQlyD,IACSm+B,IAAnBkrB,SACDte,EAAQO,EAAO8mB,EAAOrnB,OACtB1D,EAAS0D,GAASqnB,EAAOE,YAAcvnB,EAAMphB,OAC/CyoC,EAAOzc,YACTyc,EAAO3jC,MAAQ4Y,EAASA,EAASorB,EAAepJ,GAAY8I,EAAOQ,eACnEP,EAAOviC,OAAS6iC,IAEhBN,EAAO3jC,MAAQgkC,EACfL,EAAOviC,OAASwX,EAASA,EAASqrB,EAAgBrJ,GAAY8I,EAAOS,iBAGzE,OAAOtnB,EAoBT,SAASunB,GAAeC,EAAYlhB,EAAWphC,EAAGC,GAChD,OAAOjM,KAAK+E,IAAIupD,EAAWtiD,GAAIohC,EAAUphC,IAAMhM,KAAK+E,IAAIupD,EAAWriD,GAAImhC,EAAUnhC,IAEnF,SAASsiD,GAAiBD,EAAYE,GACpCF,EAAWphC,IAAMltB,KAAK+E,IAAIupD,EAAWphC,IAAKshC,EAAWthC,KACrDohC,EAAWthC,KAAOhtB,KAAK+E,IAAIupD,EAAWthC,KAAMwhC,EAAWxhC,MACvDshC,EAAWnhC,OAASntB,KAAK+E,IAAIupD,EAAWnhC,OAAQqhC,EAAWrhC,QAC3DmhC,EAAWrhC,MAAQjtB,KAAK+E,IAAIupD,EAAWrhC,MAAOuhC,EAAWvhC,OAE3D,SAASwhC,GAAWrhB,EAAWugB,EAAQC,EAAQ9mB,GAAQ,IAC9C7N,EAAY20B,EAAZ30B,IAAKU,EAAOi0B,EAAPj0B,IACN20B,EAAalhB,EAAUkhB,WAC7B,IAAKlmD,EAAS6wB,GAAM,CACd20B,EAAO1hD,OACTkhC,EAAUnU,IAAQ20B,EAAO1hD,MAE3B,IAAMq6B,EAAQO,EAAO8mB,EAAOrnB,QAAU,CAACr6B,KAAM,EAAGiG,MAAO,GACvDo0B,EAAMr6B,KAAOlM,KAAK+E,IAAIwhC,EAAMr6B,KAAM0hD,EAAOzc,WAAaxX,EAAItO,OAASsO,EAAI1P,OACvE2jC,EAAO1hD,KAAOq6B,EAAMr6B,KAAOq6B,EAAMp0B,MACjCi7B,EAAUnU,IAAQ20B,EAAO1hD,KAEvBytB,EAAI+0B,YACNH,GAAiBD,EAAY30B,EAAI+0B,cAEnC,IAAMC,EAAW3uD,KAAK+E,IAAI,EAAG4oD,EAAOiB,WAAaP,GAAeC,EAAYlhB,EAAW,OAAQ,UACzFyhB,EAAY7uD,KAAK+E,IAAI,EAAG4oD,EAAOmB,YAAcT,GAAeC,EAAYlhB,EAAW,MAAO,WAC1F2hB,EAAeJ,IAAavhB,EAAUl1B,EACtC82C,EAAgBH,IAAczhB,EAAUn3B,EAG9C,OAFAm3B,EAAUl1B,EAAIy2C,EACdvhB,EAAUn3B,EAAI44C,EACPjB,EAAOzc,WACV,CAAC8d,KAAMF,EAAcG,MAAOF,GAC5B,CAACC,KAAMD,EAAeE,MAAOH,GAcnC,SAASI,GAAWhe,EAAY/D,GAC9B,IAAMkhB,EAAalhB,EAAUkhB,WAC7B,SAASc,EAAmBv2B,GAC1B,IAAM9L,EAAS,CAACC,KAAM,EAAGE,IAAK,EAAGD,MAAO,EAAGE,OAAQ,GAInD,OAHA0L,EAAUhoB,SAAQ,SAACooB,GACjBlM,EAAOkM,GAAOj5B,KAAK+E,IAAIqoC,EAAUnU,GAAMq1B,EAAWr1B,OAE7ClM,EAET,OACIqiC,EADGje,EACgB,CAAC,OAAQ,SACT,CAAC,MAAO,WAEjC,SAASke,GAASC,EAAOliB,EAAWugB,EAAQ7mB,GAC1C,IACItrC,EAAGiO,EAAMmkD,EAAQj0B,EAAK41B,EAAOl8C,EAD3Bm8C,EAAa,GAEnB,IAAKh0D,EAAI,EAAGiO,EAAO6lD,EAAM7zD,OAAQ8zD,EAAQ,EAAG/zD,EAAIiO,IAAQjO,EAAG,EAEzDm+B,GADAi0B,EAAS0B,EAAM9zD,IACFm+B,KACTh0B,OACFioD,EAAO3jC,OAASmjB,EAAUl1B,EAC1B01C,EAAOviC,QAAU+hB,EAAUn3B,EAC3Bk5C,GAAWvB,EAAOzc,WAAY/D,IANyB,MAQnCqhB,GAAWrhB,EAAWugB,EAAQC,EAAQ9mB,GAArDmoB,EARkD,EAQlDA,KAAMC,EAR4C,EAQ5CA,MACbK,GAASN,GAAQO,EAAW/zD,OAC5B4X,EAAUA,GAAW67C,EAChBv1B,EAAIkrB,UACP2K,EAAW/sD,KAAKmrD,GAGpB,OAAO2B,GAASF,GAASG,EAAYpiB,EAAWugB,EAAQ7mB,IAAWzzB,EAErE,SAASo8C,GAAW91B,EAAK3M,EAAME,EAAKjD,EAAOoB,GACzCsO,EAAIzM,IAAMA,EACVyM,EAAI3M,KAAOA,EACX2M,EAAI1M,MAAQD,EAAO/C,EACnB0P,EAAIxM,OAASD,EAAM7B,EACnBsO,EAAI1P,MAAQA,EACZ0P,EAAItO,OAASA,EAEf,SAASqkC,GAAWJ,EAAOliB,EAAWugB,EAAQ7mB,GAC5C,IADoD,EAC9C6oB,EAAchC,EAAO1P,QACtBjzC,EAAQoiC,EAARpiC,EAAGC,EAAKmiC,EAALniC,EAF4C,cAG/BqkD,GAH+B,IAGpD,2BAA4B,KAAjB1B,EAAiB,QACpBj0B,EAAMi0B,EAAOj0B,IACb4M,EAAQO,EAAO8mB,EAAOrnB,QAAU,CAACp0B,MAAO,EAAG47C,OAAQ,EAAG5oC,OAAQ,GAC9DA,EAAUyoC,EAAOE,YAAcvnB,EAAMphB,QAAW,EACtD,GAAIyoC,EAAOzc,WAAY,CACrB,IAAMlnB,EAAQmjB,EAAUl1B,EAAIiN,EACtBkG,EAASkb,EAAMr6B,MAAQytB,EAAItO,OAC7Bxf,EAAQ06B,EAAMl3B,SAChBpE,EAAIs7B,EAAMl3B,OAERsqB,EAAIkrB,SACN4K,GAAW91B,EAAKg2B,EAAY3iC,KAAM/hB,EAAG0iD,EAAOiB,WAAae,EAAY1iC,MAAQ0iC,EAAY3iC,KAAM3B,GAE/FokC,GAAW91B,EAAKyT,EAAUpgB,KAAOuZ,EAAMwnB,OAAQ9iD,EAAGgf,EAAOoB,GAE3Dkb,EAAMl3B,MAAQpE,EACds7B,EAAMwnB,QAAU9jC,EAChBhf,EAAI0uB,EAAIxM,WACH,CACL,IAAM9B,EAAS+hB,EAAUn3B,EAAIkP,EACvB8E,EAAQsc,EAAMr6B,MAAQytB,EAAI1P,MAC5Bpe,EAAQ06B,EAAMl3B,SAChBrE,EAAIu7B,EAAMl3B,OAERsqB,EAAIkrB,SACN4K,GAAW91B,EAAK3uB,EAAG2kD,EAAYziC,IAAKjD,EAAO0jC,EAAOmB,YAAca,EAAYxiC,OAASwiC,EAAYziC,KAEjGuiC,GAAW91B,EAAK3uB,EAAGoiC,EAAUlgB,IAAMqZ,EAAMwnB,OAAQ9jC,EAAOoB,GAE1Dkb,EAAMl3B,MAAQrE,EACdu7B,EAAMwnB,QAAU1iC,EAChBrgB,EAAI2uB,EAAI1M,QAlCwC,8BAqCpDmgB,EAAUpiC,EAAIA,EACdoiC,EAAUniC,EAAIA,EAEhBwb,GAASzV,IAAI,SAAU,CACrB4+C,aAAa,EACb3R,QAAS,CACP/wB,IAAK,EACLD,MAAO,EACPE,OAAQ,EACRH,KAAM,KAGV,IAAI0gC,GAAU,SACLzmC,EAAO9a,GACP8a,EAAMqoC,QACTroC,EAAMqoC,MAAQ,IAEhBnjD,EAAK04C,SAAW14C,EAAK04C,WAAY,EACjC14C,EAAKuzC,SAAWvzC,EAAKuzC,UAAY,MACjCvzC,EAAKgZ,OAAShZ,EAAKgZ,QAAU,EAC7BhZ,EAAK0jD,QAAU1jD,EAAK0jD,SAAW,WAC7B,MAAO,CAAC,CACN5G,EAAG,EACHvnB,KAFM,SAED0L,GACHjhC,EAAKu1B,KAAK0L,OAIhBnmB,EAAMqoC,MAAM7sD,KAAK0J,IAhBjBuhD,GAAU,SAkBFzmC,EAAO6oC,GACf,IAAMjmD,EAAQod,EAAMqoC,MAAQroC,EAAMqoC,MAAMllD,QAAQ0lD,IAAe,GAChD,IAAXjmD,GACFod,EAAMqoC,MAAMhqD,OAAOuE,EAAO,IArB5B6jD,GAAU,SAwBFzmC,EAAO9a,EAAM7B,GACrB6B,EAAK04C,SAAWv6C,EAAQu6C,SACxB14C,EAAKuzC,SAAWp1C,EAAQo1C,SACxBvzC,EAAKgZ,OAAS7a,EAAQ6a,QA3BtBuoC,GAAU,SA6BLzmC,EAAOgD,EAAOoB,EAAQ0kC,GAC3B,GAAK9oC,EAAL,CAGA,IAAMg3B,EAAUptB,GAAU5J,EAAM3c,QAAQsjD,OAAO3P,SACzCkQ,EAAiBnuD,KAAK+E,IAAIklB,EAAQg0B,EAAQh0B,MAAO,GACjDmkC,EAAkBpuD,KAAK+E,IAAIsmB,EAAS4yB,EAAQ5yB,OAAQ,GACpDikC,EA9LV,SAA0BA,GACxB,IAAMU,EAnDR,SAAmBV,GACjB,IACI9zD,EAAGiO,EAAMkwB,EAAKV,EAAKsN,EAAOunB,EADxBkC,EAAc,GAEpB,IAAKx0D,EAAI,EAAGiO,GAAQ6lD,GAAS,IAAI7zD,OAAQD,EAAIiO,IAAQjO,EAAG,OACtDm+B,EAAM21B,EAAM9zD,GACAy9B,EAF0C,EAEpDymB,SAFoD,QAErCp1C,QAAUi8B,EAF2B,EAE3BA,MAF2B,QAEpBunB,mBAFoB,MAEN,EAFM,EAGtDkC,EAAYvtD,KAAK,CACfoH,MAAOrO,EACPm+B,MACAV,MACAkY,WAAYxX,EAAIsY,eAChB9sB,OAAQwU,EAAIxU,OACZohB,MAAOA,GAAUtN,EAAMsN,EACvBunB,gBAGJ,OAAOkC,EAmCaC,CAAUX,GACxBzK,EAAW2I,GAAawC,EAAYt8B,QAAO,SAAAm6B,GAAI,OAAIA,EAAKl0B,IAAIkrB,aAAW,GACvE73B,EAAOwgC,GAAaF,GAAiB0C,EAAa,SAAS,GAC3D/iC,EAAQugC,GAAaF,GAAiB0C,EAAa,UACnD9iC,EAAMsgC,GAAaF,GAAiB0C,EAAa,QAAQ,GACzD7iC,EAASqgC,GAAaF,GAAiB0C,EAAa,WACpDE,EAAmB3C,GAA4ByC,EAAa,KAC5DG,EAAiB5C,GAA4ByC,EAAa,KAChE,MAAO,CACLnL,WACAuL,WAAYpjC,EAAK1rB,OAAO4rB,GACxBmjC,eAAgBpjC,EAAM3rB,OAAO6uD,GAAgB7uD,OAAO6rB,GAAQ7rB,OAAO4uD,GACnE9iB,UAAWkgB,GAAiB0C,EAAa,aACzCM,SAAUtjC,EAAK1rB,OAAO2rB,GAAO3rB,OAAO6uD,GACpChf,WAAYjkB,EAAI5rB,OAAO6rB,GAAQ7rB,OAAO4uD,IA+KxBK,CAAiBtpC,EAAMqoC,OAC/BkB,EAAgBlB,EAAMgB,SACtBG,EAAkBnB,EAAMne,WAC9BloC,EAAKge,EAAMqoC,OAAO,SAAA31B,GACgB,oBAArBA,EAAI+2B,cACb/2B,EAAI+2B,kBAGR,IAAMC,EAA0BH,EAAcluB,QAAO,SAACgV,EAAOuW,GAAR,OACnDA,EAAKl0B,IAAIrvB,UAAwC,IAA7BujD,EAAKl0B,IAAIrvB,QAAQiwC,QAAoBjD,EAAQA,EAAQ,IAAG,IAAM,EAC9EqW,EAAS7xD,OAAOmyC,OAAO,CAC3B2gB,WAAY3kC,EACZ6kC,YAAazjC,EACb4yB,UACAkQ,iBACAC,kBACAH,aAAcE,EAAiB,EAAIwC,EACnCzC,cAAeE,EAAkB,IAE7BE,EAAaxyD,OAAOwX,OAAO,GAAI2qC,GACrCsQ,GAAiBD,EAAYz9B,GAAUk/B,IACvC,IAAM3iB,EAAYtxC,OAAOwX,OAAO,CAC9Bg7C,aACAp2C,EAAGi2C,EACHl4C,EAAGm4C,EACHpjD,EAAGizC,EAAQjxB,KACX/hB,EAAGgzC,EAAQ/wB,KACV+wB,GACGnX,EAAS2mB,GAAc+C,EAAclvD,OAAOmvD,GAAkB9C,GACpE0B,GAASC,EAAMzK,SAAUzX,EAAWugB,EAAQ7mB,GAC5CuoB,GAASmB,EAAepjB,EAAWugB,EAAQ7mB,GACvCuoB,GAASoB,EAAiBrjB,EAAWugB,EAAQ7mB,IAC/CuoB,GAASmB,EAAepjB,EAAWugB,EAAQ7mB,GA1KjD,SAA0BsG,GACxB,IAAMkhB,EAAalhB,EAAUkhB,WAC7B,SAASsC,EAAU33B,GACjB,IAAM8oB,EAAS/hD,KAAK+E,IAAIupD,EAAWr1B,GAAOmU,EAAUnU,GAAM,GAE1D,OADAmU,EAAUnU,IAAQ8oB,EACXA,EAET3U,EAAUniC,GAAK2lD,EAAU,OACzBxjB,EAAUpiC,GAAK4lD,EAAU,QACzBA,EAAU,SACVA,EAAU,UAkKRC,CAAiBzjB,GACjBsiB,GAAWJ,EAAMc,WAAYhjB,EAAWugB,EAAQ7mB,GAChDsG,EAAUpiC,GAAKoiC,EAAUl1B,EACzBk1B,EAAUniC,GAAKmiC,EAAUn3B,EACzBy5C,GAAWJ,EAAMe,eAAgBjjB,EAAWugB,EAAQ7mB,GACpD7f,EAAMmmB,UAAY,CAChBpgB,KAAMogB,EAAUpgB,KAChBE,IAAKkgB,EAAUlgB,IACfD,MAAOmgB,EAAUpgB,KAAOogB,EAAUl1B,EAClCiV,OAAQigB,EAAUlgB,IAAMkgB,EAAUn3B,EAClCoV,OAAQ+hB,EAAUn3B,EAClBgU,MAAOmjB,EAAUl1B,GAEnBjP,EAAKqmD,EAAMliB,WAAW,SAACwgB,GACrB,IAAMj0B,EAAMi0B,EAAOj0B,IACnB79B,OAAOwX,OAAOqmB,EAAK1S,EAAMmmB,WACzBzT,EAAIh0B,OAAOynC,EAAUl1B,EAAGk1B,EAAUn3B,EAAG,CAAC+W,KAAM,EAAGE,IAAK,EAAGD,MAAO,EAAGE,OAAQ,SAKzE2jC,G,uGACW7lC,EAAQqP,M,qCACRtT,GACb,OAAO,I,uCAEQC,EAAO9e,EAAMsI,M,0CACVwW,EAAO9e,EAAMsI,M,4CAE/B,OAAO,I,qCAEMmoB,EAAS3O,EAAOoB,EAAQiP,GAGrC,OAFArQ,EAAQjqB,KAAK+E,IAAI,EAAGklB,GAAS2O,EAAQ3O,OACrCoB,EAASA,GAAUuN,EAAQvN,OACpB,CACLpB,QACAoB,OAAQrrB,KAAK+E,IAAI,EAAGu1B,EAAct6B,KAAKuN,MAAM0c,EAAQqQ,GAAejP,M,iCAG7DJ,GACT,OAAO,I,mCAEI+Z,Q,KAIT+rB,G,6KACW5kD,GACb,OAAOA,GAAQA,EAAK+e,YAAc/e,EAAK+e,WAAW,OAAS,O,mCAEhD8Z,GACXA,EAAO16B,QAAQqc,WAAY,M,GALHmqC,IAUtBE,GAAc,CAClBC,WAAY,YACZC,UAAW,YACXC,SAAU,UACVC,aAAc,aACdC,YAAa,YACbC,YAAa,YACbC,UAAW,UACXC,aAAc,WACdC,WAAY,YAERC,GAAgB,SAAA50D,GAAK,OAAc,OAAVA,GAA4B,KAAVA,GAoCjD,IAAM60D,KAAuBn2B,IAA+B,CAACo2B,SAAS,GAItE,SAASC,GAAe5qC,EAAO9e,EAAMsI,GACnCwW,EAAMgE,OAAO0Q,oBAAoBxzB,EAAMsI,EAAUkhD,IAanD,SAASG,GAAiBC,EAAU9mC,GAAQ,oBACvB8mC,GADuB,IAC1C,2BAA6B,KAAlB1rC,EAAkB,QAC3B,GAAIA,IAAS4E,GAAU5E,EAAK2rC,SAAS/mC,GACnC,OAAO,GAH+B,+BAO5C,SAASgnC,GAAqBhrC,EAAO9e,EAAMsI,GACzC,IAAMwa,EAAShE,EAAMgE,OACfinC,EAAW,IAAIC,kBAAiB,SAAAC,GACpC,IAD+C,EAC3CC,GAAU,EADiC,cAE3BD,GAF2B,IAE/C,2BAA6B,KAAlB9hB,EAAkB,QAE3B+hB,GADAA,EAAUA,GAAWP,GAAiBxhB,EAAMgiB,WAAYrnC,MAClC6mC,GAAiBxhB,EAAMiiB,aAActnC,IAJd,8BAM3ConC,GACF5hD,OAIJ,OADAyhD,EAASM,QAAQt6B,SAAU,CAACu6B,WAAW,EAAMC,SAAS,IAC/CR,EAET,SAASS,GAAqB1rC,EAAO9e,EAAMsI,GACzC,IAAMwa,EAAShE,EAAMgE,OACfinC,EAAW,IAAIC,kBAAiB,SAAAC,GACpC,IAD+C,EAC3CC,GAAU,EADiC,cAE3BD,GAF2B,IAE/C,2BAA6B,KAAlB9hB,EAAkB,QAE3B+hB,GADAA,EAAUA,GAAWP,GAAiBxhB,EAAMiiB,aAActnC,MACpC6mC,GAAiBxhB,EAAMgiB,WAAYrnC,IAJZ,8BAM3ConC,GACF5hD,OAIJ,OADAyhD,EAASM,QAAQt6B,SAAU,CAACu6B,WAAW,EAAMC,SAAS,IAC/CR,EAET,IAAMU,GAAqB,IAAIt2B,IAC3Bu2B,GAAsB,EAC1B,SAASC,KACP,IAAMC,EAAM3hD,OAAO2V,iBACfgsC,IAAQF,KAGZA,GAAsBE,EACtBH,GAAmB/hD,SAAQ,SAAC6zB,EAAQzd,GAC9BA,EAAM6D,0BAA4BioC,GACpCruB,QAgBN,SAASsuB,GAAqB/rC,EAAO9e,EAAMsI,GACzC,IAAMwa,EAAShE,EAAMgE,OACfyP,EAAYzP,GAAUkN,GAAelN,GAC3C,GAAKyP,EAAL,CAGA,IAAMgK,EAASpzB,IAAU,SAAC2Y,EAAOoB,GAC/B,IAAMnT,EAAIwiB,EAAUI,YACpBrqB,EAASwZ,EAAOoB,GACZnT,EAAIwiB,EAAUI,aAChBrqB,MAEDW,QACG8gD,EAAW,IAAIe,gBAAe,SAAAb,GAClC,IAAM9hB,EAAQ8hB,EAAQ,GAChBnoC,EAAQqmB,EAAM4iB,YAAYjpC,MAC1BoB,EAASilB,EAAM4iB,YAAY7nC,OACnB,IAAVpB,GAA0B,IAAXoB,GAGnBqZ,EAAOza,EAAOoB,MAIhB,OAFA6mC,EAASM,QAAQ93B,GAlCnB,SAAuCzT,EAAOyd,GACvCkuB,GAAmB1mD,MACtBkF,OAAOsqB,iBAAiB,SAAUo3B,IAEpCF,GAAmB5hD,IAAIiW,EAAOyd,GA+B9ByuB,CAA8BlsC,EAAOyd,GAC9BwtB,GAET,SAASkB,GAAgBnsC,EAAO9e,EAAM+pD,GAChCA,GACFA,EAASmB,aAEE,WAATlrD,GApCN,SAAyC8e,GACvC2rC,GAAmBv/B,OAAOpM,GACrB2rC,GAAmB1mD,MACtBkF,OAAOuqB,oBAAoB,SAAUm3B,IAkCrCQ,CAAgCrsC,GAGpC,SAASssC,GAAqBtsC,EAAO9e,EAAMsI,GACzC,IAAMwa,EAAShE,EAAMgE,OACfyH,EAAQphB,IAAU,SAAC6wB,GACL,OAAdlb,EAAMW,KACRnX,EAhHN,SAAyB0xB,EAAOlb,GAC9B,IAAM9e,EAAO6oD,GAAY7uB,EAAMh6B,OAASg6B,EAAMh6B,KADT,EAEtB+wB,GAAoBiJ,EAAOlb,GAAnCjc,EAF8B,EAE9BA,EAAGC,EAF2B,EAE3BA,EACV,MAAO,CACL9C,OACA8e,QACAusC,OAAQrxB,EACRn3B,OAAStM,IAANsM,EAAkBA,EAAI,KACzBC,OAASvM,IAANuM,EAAkBA,EAAI,MAwGdwoD,CAAgBtxB,EAAOlb,MAEjCA,GAAO,SAACzoB,GACT,IAAM2jC,EAAQ3jC,EAAK,GACnB,MAAO,CAAC2jC,EAAOA,EAAM1I,QAAS0I,EAAMzI,YAGtC,OA7HF,SAAqBrT,EAAMle,EAAMsI,GAC/B4V,EAAKqV,iBAAiBvzB,EAAMsI,EAAUkhD,IA2HtC+B,CAAYzoC,EAAQ9iB,EAAMuqB,GACnBA,E,IAEHihC,G,6KACW1oC,EAAQqP,GACrB,IAAMtT,EAAUiE,GAAUA,EAAOC,YAAcD,EAAOC,WAAW,MACjE,OAAIlE,GAAWA,EAAQiE,SAAWA,GAtKtC,SAAoBA,EAAQqP,GAC1B,IAAM9S,EAAQyD,EAAOzD,MACfosC,EAAe3oC,EAAO4oC,aAAa,UACnCC,EAAc7oC,EAAO4oC,aAAa,SAcxC,GAbA5oC,EAAM,SAAgB,CACpBiW,QAAS,CACP7V,OAAQuoC,EACR3pC,MAAO6pC,EACPtsC,MAAO,CACL+yB,QAAS/yB,EAAM+yB,QACflvB,OAAQ7D,EAAM6D,OACdpB,MAAOzC,EAAMyC,SAInBzC,EAAM+yB,QAAU/yB,EAAM+yB,SAAW,QACjC/yB,EAAM6R,UAAY7R,EAAM6R,WAAa,aACjCq4B,GAAcoC,GAAc,CAC9B,IAAMC,EAAen4B,GAAa3Q,EAAQ,cACrBvsB,IAAjBq1D,IACF9oC,EAAOhB,MAAQ8pC,GAGnB,GAAIrC,GAAckC,GAChB,GAA4B,KAAxB3oC,EAAOzD,MAAM6D,OACfJ,EAAOI,OAASJ,EAAOhB,OAASqQ,GAAe,OAC1C,CACL,IAAM05B,EAAgBp4B,GAAa3Q,EAAQ,eACrBvsB,IAAlBs1D,IACF/oC,EAAOI,OAAS2oC,IA0IlBC,CAAWhpC,EAAQqP,GACZtT,GAEF,O,qCAEMA,GACb,IAAMiE,EAASjE,EAAQiE,OACvB,IAAKA,EAAM,SACT,OAAO,EAET,IAAMiW,EAAUjW,EAAM,SAAciW,QACpC,CAAC,SAAU,SAASrwB,SAAQ,SAAC6f,GAC3B,IAAM5zB,EAAQokC,EAAQxQ,GAClBxoB,EAAcpL,GAChBmuB,EAAOipC,gBAAgBxjC,GAEvBzF,EAAOkpC,aAAazjC,EAAM5zB,MAG9B,IAAM0qB,EAAQ0Z,EAAQ1Z,OAAS,GAM/B,OALA1rB,OAAOuN,KAAKme,GAAO3W,SAAQ,SAAC7U,GAC1BivB,EAAOzD,MAAMxrB,GAAOwrB,EAAMxrB,MAE5BivB,EAAOhB,MAAQgB,EAAOhB,aACfgB,EAAM,UACN,I,uCAEQhE,EAAO9e,EAAMsI,GAC5BrT,KAAKu+B,oBAAoB1U,EAAO9e,GAChC,IAAMisD,EAAUntC,EAAMotC,WAAaptC,EAAMotC,SAAW,IAM9CrI,EALW,CACfsI,OAAQrC,GACRsC,OAAQ5B,GACRjuB,OAAQsuB,IAEe7qD,IAASorD,GAClCa,EAAQjsD,GAAQ6jD,EAAQ/kC,EAAO9e,EAAMsI,K,0CAEnBwW,EAAO9e,GACzB,IAAMisD,EAAUntC,EAAMotC,WAAaptC,EAAMotC,SAAW,IAC9C3hC,EAAQ0hC,EAAQjsD,GACjBuqB,KAGY,CACf4hC,OAAQlB,GACRmB,OAAQnB,GACR1uB,OAAQ0uB,IAEejrD,IAAS0pD,IAC1B5qC,EAAO9e,EAAMuqB,GACrB0hC,EAAQjsD,QAAQzJ,K,4CAGhB,OAAO0S,OAAO2V,mB,qCAEDkE,EAAQhB,EAAOoB,EAAQiP,GACpC,OAAOH,GAAelP,EAAQhB,EAAOoB,EAAQiP,K,iCAEpCrP,GACT,IAAMyP,EAAYvC,GAAelN,GACjC,SAAUyP,IAAaA,EAAU85B,iB,GAjEX1D,I,IA4EpB2D,G,WACJ,aAAc,oBACZr3D,KAAKs3D,MAAQ,G,mDAERztC,EAAO0tC,EAAMn2D,EAAMk1B,GACX,eAATihC,IACFv3D,KAAKs3D,MAAQt3D,KAAKw3D,mBAAmB3tC,GAAO,GAC5C7pB,KAAK2kC,QAAQ3kC,KAAKs3D,MAAOztC,EAAO,YAElC,IAAMd,EAAcuN,EAASt2B,KAAKspB,aAAaO,GAAOyM,OAAOA,GAAUt2B,KAAKspB,aAAaO,GACnFhqB,EAASG,KAAK2kC,QAAQ5b,EAAac,EAAO0tC,EAAMn2D,GAKtD,MAJa,iBAATm2D,IACFv3D,KAAK2kC,QAAQ5b,EAAac,EAAO,QACjC7pB,KAAK2kC,QAAQ3kC,KAAKs3D,MAAOztC,EAAO,cAE3BhqB,I,8BAEDkpB,EAAac,EAAO0tC,EAAMn2D,GAChCA,EAAOA,GAAQ,GADuB,oBAEb2nB,GAFa,IAEtC,2BAAsC,KAA3BzqB,EAA2B,QAC9Bm5D,EAASn5D,EAAWm5D,OAG1B,IAAyC,IAArC9rD,EAFW8rD,EAAOF,GACP,CAAC1tC,EAAOzoB,EAAM9C,EAAW4O,SACXuqD,IAAqBr2D,EAAKs2D,WACrD,OAAO,GAP2B,8BAUtC,OAAO,I,mCAGF5sD,EAAc9K,KAAKuyC,UACtBvyC,KAAK23D,UAAY33D,KAAKuyC,OACtBvyC,KAAKuyC,YAASjxC,K,mCAGLuoB,GACX,GAAI7pB,KAAKuyC,OACP,OAAOvyC,KAAKuyC,OAEd,IAAMxpB,EAAc/oB,KAAKuyC,OAASvyC,KAAKw3D,mBAAmB3tC,GAE1D,OADA7pB,KAAK43D,oBAAoB/tC,GAClBd,I,yCAEUc,EAAO4e,GACxB,IAAMb,EAAS/d,GAASA,EAAM+d,OACxB16B,EAAU5B,EAAes8B,EAAO16B,SAAW06B,EAAO16B,QAAQke,QAAS,IACnEA,EAWV,SAAoBwc,GAIlB,IAHA,IAAMiwB,EAAW,GACXzsC,EAAU,GACVnf,EAAOvN,OAAOuN,KAAK6gD,GAAS1hC,QAAQzX,OACjCvV,EAAI,EAAGA,EAAI6N,EAAK5N,OAAQD,IAC/BgtB,EAAQ/lB,KAAKynD,GAASgL,UAAU7rD,EAAK7N,KAGvC,IADA,IAAM8tB,EAAQ0b,EAAOxc,SAAW,GACvBhtB,EAAI,EAAGA,EAAI8tB,EAAM7tB,OAAQD,IAAK,CACrC,IAAMq5D,EAASvrC,EAAM9tB,IACY,IAA7BgtB,EAAQpe,QAAQyqD,KAClBrsC,EAAQ/lB,KAAKoyD,GACbI,EAASJ,EAAO5sD,KAAM,GAG1B,MAAO,CAACugB,UAASysC,YA1BCE,CAAWnwB,GAC3B,OAAmB,IAAZ16B,GAAsBu7B,EAoCjC,SAA2B5e,EAA3B,EAAuD3c,EAASu7B,GAAK,MAAlCrd,EAAkC,EAAlCA,QAASysC,EAAyB,EAAzBA,SACpCh4D,EAAS,GACT+pB,EAAUC,EAAMiE,aAF6C,cAG9C1C,GAH8C,IAGnE,2BAA8B,KAAnBqsC,EAAmB,QACtB5sD,EAAK4sD,EAAO5sD,GACZmmB,EAAOgnC,GAAQ9qD,EAAQrC,GAAK49B,GACrB,OAATzX,GAGJnxB,EAAOwF,KAAK,CACVoyD,SACAvqD,QAAS+qD,GAAWpuC,EAAM+d,OAAQ,CAAC6vB,SAAQvrC,MAAO2rC,EAAShtD,IAAMmmB,EAAMpH,MAXR,8BAcnE,OAAO/pB,EAlDmCq4D,CAAkBruC,EAAOuB,EAASle,EAASu7B,GAAhD,K,0CAEjB5e,GAClB,IAAMsuC,EAAsBn4D,KAAK23D,WAAa,GACxC5uC,EAAc/oB,KAAKuyC,OACnBwN,EAAO,SAACnxC,EAAGC,GAAJ,OAAUD,EAAE0nB,QAAO,SAAA1oB,GAAC,OAAKiB,EAAEupD,MAAK,SAAAvqD,GAAC,OAAID,EAAE6pD,OAAO5sD,KAAOgD,EAAE4pD,OAAO5sD,UAC3E7K,KAAK2kC,QAAQob,EAAKoY,EAAqBpvC,GAAcc,EAAO,QAC5D7pB,KAAK2kC,QAAQob,EAAKh3B,EAAaovC,GAAsBtuC,EAAO,a,KAoBhE,SAASmuC,GAAQ9qD,EAASu7B,GACxB,OAAKA,IAAmB,IAAZv7B,GAGI,IAAZA,EACK,GAEFA,EALE,KAuBX,SAAS+qD,GAAWrwB,EAApB,EAA6C5W,EAAMpH,GAAS,IAA/B6tC,EAA+B,EAA/BA,OAAQvrC,EAAuB,EAAvBA,MAC7BjgB,EAAO27B,EAAOywB,gBAAgBZ,GAC9BrjC,EAASwT,EAAOqG,gBAAgBjd,EAAM/kB,GAI5C,OAHIigB,GAASurC,EAAOpuC,UAClB+K,EAAO/uB,KAAKoyD,EAAOpuC,UAEdue,EAAOsG,eAAe9Z,EAAQxK,EAAS,CAAC,IAAK,CAClD+M,YAAY,EACZC,WAAW,EACXF,SAAS,IAIb,SAAS4hC,GAAavtD,EAAMmC,GAC1B,IAAMqrD,EAAkBlvC,GAASK,SAAS3e,IAAS,GAEnD,QADwBmC,EAAQwc,UAAY,IAAI3e,IAAS,IACnC4f,WAAazd,EAAQyd,WAAa4tC,EAAgB5tC,WAAa,IAsBvF,SAAS6tC,GAAc3tD,EAAI4tD,GACzB,MAAW,MAAP5tD,GAAqB,MAAPA,EACTA,EAEF4tD,EAAatjD,OAXH,SADOmtC,EAYqBmW,EAAanW,WAXnB,WAAbA,EACjB,IAEQ,SAAbA,GAAoC,UAAbA,EAClB,SADT,IAQuEz3C,EAAG0D,OAAO,GAAGuY,cAZtF,IAA0Bw7B,EAoD1B,SAASoW,GAAY9wB,GACnB,IAAM16B,EAAU06B,EAAO16B,UAAY06B,EAAO16B,QAAU,IACpDA,EAAQke,QAAU9f,EAAe4B,EAAQke,QAAS,IAClDle,EAAQqe,OAzCV,SAA0Bqc,EAAQ16B,GAChC,IAAMyrD,EAAgBx1D,GAAUykC,EAAO78B,OAAS,CAACwgB,OAAQ,IACnDqtC,EAAe1rD,EAAQqe,QAAU,GACjCstC,EAAiBP,GAAa1wB,EAAO78B,KAAMmC,GAC3C4rD,EAAWp6D,OAAOc,OAAO,MACzB+rB,EAAS7sB,OAAOc,OAAO,MA+B7B,OA9BAd,OAAOuN,KAAK2sD,GAAcnlD,SAAQ,SAAA5I,GAChC,IAAMkuD,EAAYH,EAAa/tD,GAC/B,IAAKG,EAAS+tD,GACZ,OAAOnlC,QAAQ/yB,MAAR,iDAAwDgK,IAEjE,GAAIkuD,EAAUrjC,OACZ,OAAO9B,QAAQC,KAAR,yDAA+DhpB,IAExE,IAAMsK,EAAOqjD,GAAc3tD,EAAIkuD,GACzBC,EAhCV,SAAmC7jD,EAAMwV,GACvC,OAAOxV,IAASwV,EAAY,UAAY,UA+BpBsuC,CAA0B9jD,EAAM0jD,GAC5CK,EAAsBP,EAAcptC,QAAU,GACpDutC,EAAS3jD,GAAQ2jD,EAAS3jD,IAAStK,EACnC0gB,EAAO1gB,GAAM2C,EAAQ9O,OAAOc,OAAO,MAAO,CAAC,CAAC2V,QAAO4jD,EAAWG,EAAoB/jD,GAAO+jD,EAAoBF,QAE/GpxB,EAAOzgC,KAAKuiB,SAASjW,SAAQ,SAAA44B,GAC3B,IAAMthC,EAAOshC,EAAQthC,MAAQ68B,EAAO78B,KAC9B4f,EAAY0hB,EAAQ1hB,WAAa2tC,GAAavtD,EAAMmC,GAEpDgsD,GADkB/1D,GAAU4H,IAAS,IACCwgB,QAAU,GACtD7sB,OAAOuN,KAAKitD,GAAqBzlD,SAAQ,SAAA0lD,GACvC,IAAMhkD,EApDZ,SAAmCtK,EAAI8f,GACrC,IAAIxV,EAAOtK,EAMX,MALW,YAAPA,EACFsK,EAAOwV,EACS,YAAP9f,IACTsK,EAAqB,MAAdwV,EAAoB,IAAM,KAE5BxV,EA6CUikD,CAA0BD,EAAWxuC,GAC5C9f,EAAKwhC,EAAQl3B,EAAO,WAAa2jD,EAAS3jD,IAASA,EACzDoW,EAAO1gB,GAAM0gB,EAAO1gB,IAAOnM,OAAOc,OAAO,MACzCgO,EAAQ+d,EAAO1gB,GAAK,CAAC,CAACsK,QAAOyjD,EAAa/tD,GAAKquD,EAAoBC,WAGvEz6D,OAAOuN,KAAKsf,GAAQ9X,SAAQ,SAAA7U,GAC1B,IAAM0sB,EAAQC,EAAO3sB,GACrB4O,EAAQ8d,EAAO,CAACjC,GAASkC,OAAOD,EAAMvgB,MAAOse,GAASiC,WAEjDC,EAKU8tC,CAAiBzxB,EAAQ16B,GAE5C,SAASosD,GAASnyD,GAIhB,OAHAA,EAAOA,GAAQ,IACVuiB,SAAWviB,EAAKuiB,UAAY,GACjCviB,EAAKonC,OAASpnC,EAAKonC,QAAU,GACtBpnC,EAQT,IAAMoyD,GAAW,IAAIr6B,IACfs6B,GAAa,IAAI3lD,IACvB,SAAS4lD,GAAWn6B,EAAUo6B,GAC5B,IAAIztD,EAAOstD,GAASjvD,IAAIg1B,GAMxB,OALKrzB,IACHA,EAAOytD,IACPH,GAAS3lD,IAAI0rB,EAAUrzB,GACvButD,GAAW1lD,IAAI7H,IAEVA,EAET,IAAM0tD,GAAa,SAAC/lD,EAAKlR,EAAK9D,GAC5B,IAAMoyB,EAAOljB,EAAiBpL,EAAK9D,QACtB0C,IAAT0vB,GACFpd,EAAIE,IAAIkd,IAGN4oC,G,WACJ,WAAYhyB,GAAQ,oBAClB5nC,KAAK65D,QAzBT,SAAoBjyB,GAIlB,OAHAA,EAASA,GAAU,IACZzgC,KAAOmyD,GAAS1xB,EAAOzgC,MAC9BuxD,GAAY9wB,GACLA,EAqBUkyB,CAAWlyB,GAC1B5nC,KAAK+5D,YAAc,IAAI76B,IACvBl/B,KAAKg6D,eAAiB,IAAI96B,I,qDA2B1B,IAAM0I,EAAS5nC,KAAK65D,QACpB75D,KAAKi6D,aACLvB,GAAY9wB,K,mCAGZ5nC,KAAK+5D,YAAYG,QACjBl6D,KAAKg6D,eAAeE,U,uCAELC,GACf,OAAOV,GAAWU,GAChB,iBAAM,CAAC,CAAC,YAAD,OACOA,GACZ,U,gDAGoBA,EAAarpB,GACrC,OAAO2oB,GAAW,GAAD,OAAIU,EAAJ,uBAA8BrpB,IAC7C,iBAAM,CACJ,CAAC,YAAD,OACcqpB,EADd,wBACyCrpB,GADzC,sBAEiBA,IAEjB,CAAC,YAAD,OACcqpB,GACZ,U,8CAIgBA,EAAa1pB,GACnC,OAAOgpB,GAAW,GAAD,OAAIU,EAAJ,YAAmB1pB,IAClC,iBAAM,CAAC,CAAC,YAAD,OACO0pB,EADP,qBAC+B1pB,GAD/B,mBAEO0pB,GAFP,mBAGO1pB,GACZ,U,sCAGUgnB,GACd,IAAM5sD,EAAK4sD,EAAO5sD,GACZE,EAAO/K,KAAK+K,KAClB,OAAO0uD,GAAW,GAAD,OAAI1uD,EAAJ,mBAAmBF,IAClC,iBAAM,CAAC,CAAC,WAAF,OACOA,IADP,mBAED4sD,EAAO2C,wBAA0B,W,oCAG5BC,EAAWC,GACvB,IAAMP,EAAc/5D,KAAK+5D,YACrB/sC,EAAQ+sC,EAAYzvD,IAAI+vD,GAK5B,OAJKrtC,IAASstC,IACZttC,EAAQ,IAAIkS,IACZ66B,EAAYnmD,IAAIymD,EAAWrtC,IAEtBA,I,sCAEOqtC,EAAWE,EAAUD,GAAY,IACxCptD,EAAiBlN,KAAjBkN,QAASnC,EAAQ/K,KAAR+K,KACViiB,EAAQhtB,KAAKw6D,cAAcH,EAAWC,GACtCpvB,EAASle,EAAM1iB,IAAIiwD,GACzB,GAAIrvB,EACF,OAAOA,EAET,IAAM9W,EAAS,IAAIvgB,IACnB0mD,EAAS9mD,SAAQ,SAAAxH,GACXouD,IACFjmC,EAAOtgB,IAAIumD,GACXpuD,EAAKwH,SAAQ,SAAA7U,GAAG,OAAI+6D,GAAWvlC,EAAQimC,EAAWz7D,OAEpDqN,EAAKwH,SAAQ,SAAA7U,GAAG,OAAI+6D,GAAWvlC,EAAQlnB,EAAStO,MAChDqN,EAAKwH,SAAQ,SAAA7U,GAAG,OAAI+6D,GAAWvlC,EAAQjxB,GAAU4H,IAAS,GAAInM,MAC9DqN,EAAKwH,SAAQ,SAAA7U,GAAG,OAAI+6D,GAAWvlC,EAAQ/K,GAAUzqB,MACjDqN,EAAKwH,SAAQ,SAAA7U,GAAG,OAAI+6D,GAAWvlC,EAAQrL,GAAanqB,SAEtD,IAAM8R,EAAQ/O,MAAMwI,KAAKiqB,GAOzB,OANqB,IAAjB1jB,EAAMrS,QACRqS,EAAMrL,KAAK3G,OAAOc,OAAO,OAEvBg6D,GAAWxqD,IAAIurD,IACjBvtC,EAAMpZ,IAAI2mD,EAAU7pD,GAEfA,I,0CAEW,IACXxD,EAAiBlN,KAAjBkN,QAASnC,EAAQ/K,KAAR+K,KAChB,MAAO,CACLmC,EACA/J,GAAU4H,IAAS,GACnBse,GAASK,SAAS3e,IAAS,GAC3B,CAACA,QACDse,GACAN,M,0CAGgBqL,EAAQzY,EAAOiO,GAA0B,IAAjByK,EAAiB,uDAAN,CAAC,IAChDx0B,EAAS,CAACsoC,SAAS,GADkC,EAE3BsyB,GAAYz6D,KAAKg6D,eAAgB5lC,EAAQC,GAAlEkC,EAFoD,EAEpDA,SAAUmkC,EAF0C,EAE1CA,YACbxtD,EAAUqpB,EACd,GAAIokC,GAAYpkC,EAAU5a,GAAQ,CAChC9b,EAAOsoC,SAAU,EACjBve,EAAUlb,EAAWkb,GAAWA,IAAYA,EAC5C,IAAMgxC,EAAc56D,KAAKkuC,eAAe9Z,EAAQxK,EAAS8wC,GACzDxtD,EAAUmoB,GAAekB,EAAU3M,EAASgxC,GARa,oBAUxCj/C,GAVwC,IAU3D,2BAA0B,KAAf2X,EAAe,QACxBzzB,EAAOyzB,GAAQpmB,EAAQomB,IAXkC,8BAa3D,OAAOzzB,I,qCAEMu0B,EAAQxK,GAA8C,IAArCyK,EAAqC,uDAA1B,CAAC,IAAKmB,EAAoB,yCAChDilC,GAAYz6D,KAAKg6D,eAAgB5lC,EAAQC,GAArDkC,EAD4D,EAC5DA,SACP,OAAOvrB,EAAS4e,GACZyL,GAAekB,EAAU3M,OAAStoB,EAAWk0B,GAC7Ce,I,+BAxIJ,OAAOv2B,KAAK65D,QAAQ/vC,W,2BAGpB,OAAO9pB,KAAK65D,QAAQ9uD,M,aAEbA,GACP/K,KAAK65D,QAAQ9uD,KAAOA,I,2BAGpB,OAAO/K,KAAK65D,QAAQ1yD,M,aAEbA,GACPnH,KAAK65D,QAAQ1yD,KAAOmyD,GAASnyD,K,8BAG7B,OAAOnH,KAAK65D,QAAQ3sD,S,aAEVA,GACVlN,KAAK65D,QAAQ3sD,QAAUA,I,8BAGvB,OAAOlN,KAAK65D,QAAQzuC,Y,KAsHxB,SAASqvC,GAAYI,EAAezmC,EAAQC,GAC1C,IAAIrH,EAAQ6tC,EAAcvwD,IAAI8pB,GACzBpH,IACHA,EAAQ,IAAIkS,IACZ27B,EAAcjnD,IAAIwgB,EAAQpH,IAE5B,IAAMsS,EAAWjL,EAAS3uB,OACtBwlC,EAASle,EAAM1iB,IAAIg1B,GAClB4L,IAEHA,EAAS,CACP3U,SAFepC,GAAgBC,EAAQC,GAGvCqmC,YAAarmC,EAASiC,QAAO,SAAAtlB,GAAC,OAAKA,EAAE8V,cAAcmO,SAAS,aAE9DjI,EAAMpZ,IAAI0rB,EAAU4L,IAEtB,OAAOA,EAET,IAAM4vB,GAAc,SAAAp7D,GAAK,OAAIsL,EAAStL,IACjChB,OAAOspC,oBAAoBtoC,GAAOwlC,QAAO,SAACC,EAAKvmC,GAAN,OAAcumC,GAAOz2B,EAAWhP,EAAMd,OAAO,IAC3F,SAAS+7D,GAAYrlC,EAAO3Z,GAAO,QACG2N,GAAagM,GAA1CU,EAD0B,EAC1BA,aAAcK,EADY,EACZA,YADY,cAEd1a,GAFc,IAEjC,2BAA0B,KAAf2X,EAAe,QAClBqD,EAAaX,EAAa1C,GAC1BsD,EAAYP,EAAY/C,GACxB5zB,GAASk3B,GAAaD,IAAerB,EAAMhC,GACjD,GAAKqD,IAAejoB,EAAWhP,IAAUo7D,GAAYp7D,KAC/Ck3B,GAAah1B,EAAQlC,GACzB,OAAO,GARsB,8BAWjC,OAAO,EAGT,IAEMq7D,GAAkB,CAAC,MAAO,SAAU,OAAQ,QAAS,aAC3D,SAASC,GAAqB1Y,EAAUntC,GACtC,MAAoB,QAAbmtC,GAAmC,WAAbA,IAAiE,IAAvCyY,GAAgB/tD,QAAQs1C,IAA6B,MAATntC,EAErG,SAAS8lD,GAAcC,EAAIC,GACzB,OAAO,SAASvsD,EAAGC,GACjB,OAAOD,EAAEssD,KAAQrsD,EAAEqsD,GACftsD,EAAEusD,GAAMtsD,EAAEssD,GACVvsD,EAAEssD,GAAMrsD,EAAEqsD,IAGlB,SAASE,GAAqBxxC,GAC5B,IAAMC,EAAQD,EAAQC,MAChBqd,EAAmBrd,EAAM3c,QAAQqc,UACvCM,EAAMi8B,cAAc,eACpBn6C,EAASu7B,GAAoBA,EAAiBm0B,WAAY,CAACzxC,GAAUC,GAEvE,SAASyxC,GAAoB1xC,GAC3B,IAAMC,EAAQD,EAAQC,MAChBqd,EAAmBrd,EAAM3c,QAAQqc,UACvC5d,EAASu7B,GAAoBA,EAAiBq0B,WAAY,CAAC3xC,GAAUC,GAEvE,SAAS2xC,GAAUzsD,GASjB,OARI8rB,MAAqC,kBAAT9rB,EAC9BA,EAAO+rB,SAAS2gC,eAAe1sD,GACtBA,GAAQA,EAAK1Q,SACtB0Q,EAAOA,EAAK,IAEVA,GAAQA,EAAK8e,SACf9e,EAAOA,EAAK8e,QAEP9e,EAET,IAAM2sD,GAAY,GACZC,GAAW,SAAC/8D,GAChB,IAAMivB,EAAS2tC,GAAU58D,GACzB,OAAOF,OAAO0qB,OAAOsyC,IAAWplC,QAAO,SAACrc,GAAD,OAAOA,EAAE4T,SAAWA,KAAQ6W,OAErE,SAASk3B,GAAgBl5D,EAAKuP,EAAO8/B,GAEnC,IADA,IACA,MADarzC,OAAOuN,KAAKvJ,GACzB,eAAwB,CAAnB,IAAM9D,EAAG,KACNi9D,GAAUj9D,EAChB,GAAIi9D,GAAU5pD,EAAO,CACnB,IAAMvS,EAAQgD,EAAI9D,UACX8D,EAAI9D,IACPmzC,EAAO,GAAK8pB,EAAS5pD,KACvBvP,EAAIm5D,EAAS9pB,GAAQryC,K,IAcvBo8D,G,WACJ,WAAY/sD,EAAMgtD,GAAY,+BAC5B,IAAMn0B,EAAS5nC,KAAK4nC,OAAS,IAAIgyB,GAAOmC,GAClCC,EAAgBR,GAAUzsD,GAC1BktD,EAAgBN,GAASK,GAC/B,GAAIC,EACF,MAAM,IAAIv1D,MACR,4CAA+Cu1D,EAAcpxD,GAA7D,kDACgDoxD,EAAcpuC,OAAOhjB,GAAK,oBAG9E,IAAMqC,EAAU06B,EAAOsG,eAAetG,EAAOs0B,oBAAqBl8D,KAAK8tB,cACvE9tB,KAAK8pB,SAAW,IAAK8d,EAAO9d,UA5dhC,SAAyB+D,GACvB,OAAKgN,MAAiD,qBAApBshC,iBAAmCtuC,aAAkBsuC,gBAC9ExI,GAEF4C,GAwdmC6F,CAAgBJ,IACxDh8D,KAAK8pB,SAASuyC,aAAaz0B,GAC3B,IAAMhe,EAAU5pB,KAAK8pB,SAASwyC,eAAeN,EAAe9uD,EAAQgwB,aAC9DrP,EAASjE,GAAWA,EAAQiE,OAC5BI,EAASJ,GAAUA,EAAOI,OAC1BpB,EAAQgB,GAAUA,EAAOhB,MAC/B7sB,KAAK6K,GAAKD,IACV5K,KAAKwqB,IAAMZ,EACX5pB,KAAK6tB,OAASA,EACd7tB,KAAK6sB,MAAQA,EACb7sB,KAAKiuB,OAASA,EACdjuB,KAAKu8D,SAAWrvD,EAChBlN,KAAKw8D,aAAex8D,KAAKk9B,YACzBl9B,KAAKyyD,QAAU,GACfzyD,KAAKy8D,UAAY,GACjBz8D,KAAKqqC,aAAU/oC,EACftB,KAAKkyD,MAAQ,GACblyD,KAAK0tB,6BAA0BpsB,EAC/BtB,KAAKgwC,eAAY1uC,EACjBtB,KAAKukC,QAAU,GACfvkC,KAAK08D,gBAAap7D,EAClBtB,KAAK28D,WAAa,GAClB38D,KAAK48D,0BAAuBt7D,EAC5BtB,KAAK68D,gBAAkB,GACvB78D,KAAKurB,OAAS,GACdvrB,KAAK88D,SAAW,IAAIzF,GACpBr3D,KAAKi3D,SAAW,GAChBj3D,KAAK+8D,eAAiB,GACtB/8D,KAAKg9D,UAAW,EAChBh9D,KAAKixC,yBAAsB3vC,EAC3BtB,KAAK+rC,cAAWzqC,EAChBtB,KAAKi9D,UDx5JT,SAAkB/7D,EAAIklC,GACpB,IAAI82B,EACJ,OAAO,WAAkB,2BAAN97D,EAAM,yBAANA,EAAM,gBAOvB,OANIglC,GACF+2B,aAAaD,GACbA,EAAUE,WAAWl8D,EAAIklC,EAAOhlC,IAEhCF,EAAGd,MAAMJ,KAAMoB,GAEVglC,GC+4JUi3B,EAAS,SAAAxyC,GAAI,OAAI,EAAKtiB,OAAOsiB,KAAO3d,EAAQowD,aAAe,GAC5Et9D,KAAKkyC,aAAe,GACpBwpB,GAAU17D,KAAK6K,IAAM7K,KAChB4pB,GAAYiE,GAIjBuV,GAASm6B,OAAOv9D,KAAM,WAAYo7D,IAClCh4B,GAASm6B,OAAOv9D,KAAM,WAAYs7D,IAClCt7D,KAAKw9D,cACDx9D,KAAKg9D,UACPh9D,KAAKuI,UAPLqrB,QAAQ/yB,MAAM,qE,0DAyChB,OARAb,KAAK8lD,cAAc,cACf9lD,KAAKkN,QAAQme,WACfrrB,KAAKsnC,SAELzJ,GAAY79B,KAAMA,KAAKkN,QAAQyc,kBAEjC3pB,KAAKy9D,aACLz9D,KAAK8lD,cAAc,aACZ9lD,O,8BAIP,OADA4tB,GAAY5tB,KAAK6tB,OAAQ7tB,KAAKwqB,KACvBxqB,O,6BAIP,OADAojC,GAAS4Y,KAAKh8C,MACPA,O,6BAEF6sB,EAAOoB,GACPmV,GAASiB,QAAQrkC,MAGpBA,KAAK09D,kBAAoB,CAAC7wC,QAAOoB,UAFjCjuB,KAAK29D,QAAQ9wC,EAAOoB,K,8BAKhBpB,EAAOoB,GACb,IAAM/gB,EAAUlN,KAAKkN,QACf2gB,EAAS7tB,KAAK6tB,OACdqP,EAAchwB,EAAQ8d,qBAAuBhrB,KAAKk9B,YAClD0gC,EAAU59D,KAAK8pB,SAASiT,eAAelP,EAAQhB,EAAOoB,EAAQiP,GAC9D2gC,EAAW3wD,EAAQyc,kBAAoB3pB,KAAK8pB,SAASC,sBACrDc,EAAO7qB,KAAK6sB,MAAQ,SAAW,SACrC7sB,KAAK6sB,MAAQ+wC,EAAQ/wC,MACrB7sB,KAAKiuB,OAAS2vC,EAAQ3vC,OACtBjuB,KAAKw8D,aAAex8D,KAAKk9B,YACpBW,GAAY79B,KAAM69D,GAAU,KAGjC79D,KAAK8lD,cAAc,SAAU,CAACh3C,KAAM8uD,IACpCjyD,EAASuB,EAAQ4wD,SAAU,CAAC99D,KAAM49D,GAAU59D,MACxCA,KAAKg9D,UACHh9D,KAAKi9D,UAAUpyC,IACjB7qB,KAAK+9D,Y,4CAOTlyD,EAFgB7L,KAAKkN,QACSqe,QAAU,IACpB,SAACyyC,EAAahS,GAChCgS,EAAYnzD,GAAKmhD,O,4CAGC,WACd9+C,EAAUlN,KAAKkN,QACf+wD,EAAY/wD,EAAQqe,OACpBA,EAASvrB,KAAKurB,OACd2yC,EAAUx/D,OAAOuN,KAAKsf,GAAQ2Z,QAAO,SAACxiC,EAAKmI,GAE/C,OADAnI,EAAImI,IAAM,EACHnI,IACN,IACCiR,EAAQ,GACRsqD,IACFtqD,EAAQA,EAAMzP,OACZxF,OAAOuN,KAAKgyD,GAAWrxD,KAAI,SAAC/B,GAC1B,IAAM4tD,EAAewF,EAAUpzD,GACzBsK,EAAOqjD,GAAc3tD,EAAI4tD,GACzB0F,EAAoB,MAAThpD,EACX0/B,EAAwB,MAAT1/B,EACrB,MAAO,CACLjI,QAASurD,EACT2F,UAAWD,EAAW,YAActpB,EAAe,SAAW,OAC9DwpB,MAAOF,EAAW,eAAiBtpB,EAAe,WAAa,eAKvEhpC,EAAK8H,GAAO,SAAC5E,GACX,IAAM0pD,EAAe1pD,EAAK7B,QACpBrC,EAAK4tD,EAAa5tD,GAClBsK,EAAOqjD,GAAc3tD,EAAI4tD,GACzB6F,EAAYhzD,EAAemtD,EAAa1tD,KAAMgE,EAAKsvD,YAC3B/8D,IAA1Bm3D,EAAanW,UAA0B0Y,GAAqBvC,EAAanW,SAAUntC,KAAU6lD,GAAqBjsD,EAAKqvD,aACzH3F,EAAanW,SAAWvzC,EAAKqvD,WAE/BF,EAAQrzD,IAAM,EACd,IAAIygB,EAAQ,KACRzgB,KAAM0gB,GAAUA,EAAO1gB,GAAIE,OAASuzD,EACtChzC,EAAQC,EAAO1gB,IAGfygB,EAAQ,IADWwhC,GAASyR,SAASD,GAC7B,CAAe,CACrBzzD,KACAE,KAAMuzD,EACN9zC,IAAK,EAAKA,IACVX,MAAO,IAET0B,EAAOD,EAAMzgB,IAAMygB,GAErBA,EAAMhoB,KAAKm1D,EAAcvrD,MAE3BrB,EAAKqyD,GAAS,SAACM,EAAY3zD,GACpB2zD,UACIjzC,EAAO1gB,MAGlBgB,EAAK0f,GAAQ,SAACD,GACZglC,GAAkB,EAAMhlC,EAAOA,EAAMpe,SACrCojD,GAAe,EAAMhlC,Q,wCAIvB,IAAM0d,EAAWhpC,KAAKy8D,UAChB7qB,EAAU5xC,KAAKmH,KAAKuiB,SAASrrB,OAC7BszC,EAAU3I,EAAS3qC,OAEzB,GADA2qC,EAAS2J,MAAK,SAAC/jC,EAAGC,GAAJ,OAAUD,EAAEnC,MAAQoC,EAAEpC,SAChCklC,EAAUC,EAAS,CACrB,IAAK,IAAIxzC,EAAIwzC,EAASxzC,EAAIuzC,IAAWvzC,EACnC4B,KAAKy+D,oBAAoBrgE,GAE3B4qC,EAAS9gC,OAAO0pC,EAASD,EAAUC,GAErC5xC,KAAK68D,gBAAkB7zB,EAASpkC,MAAM,GAAG+tC,KAAKsoB,GAAc,QAAS,Y,oDAEzC,WACVjyB,EAA8BhpC,KAAzCy8D,UAA4B/yC,EAAa1pB,KAApBmH,KAAOuiB,SAC/Bsf,EAAS3qC,OAASqrB,EAASrrB,eACtB2B,KAAKqqC,QAEdrB,EAASv1B,SAAQ,SAACkB,EAAMlI,GACmC,IAArDid,EAAS4M,QAAO,SAAA1oB,GAAC,OAAIA,IAAM+G,EAAK8mC,YAAUp9C,QAC5C,EAAKogE,oBAAoBhyD,Q,iDAK7B,IAEIrO,EAAGiO,EAFDqyD,EAAiB,GACjBh1C,EAAW1pB,KAAKmH,KAAKuiB,SAG3B,IADA1pB,KAAK2+D,8BACAvgE,EAAI,EAAGiO,EAAOqd,EAASrrB,OAAQD,EAAIiO,EAAMjO,IAAK,CACjD,IAAMiuC,EAAU3iB,EAAStrB,GACrBuW,EAAO3U,KAAKotC,eAAehvC,GACzB2M,EAAOshC,EAAQthC,MAAQ/K,KAAK4nC,OAAO78B,KAWzC,GAVI4J,EAAK5J,MAAQ4J,EAAK5J,OAASA,IAC7B/K,KAAKy+D,oBAAoBrgE,GACzBuW,EAAO3U,KAAKotC,eAAehvC,IAE7BuW,EAAK5J,KAAOA,EACZ4J,EAAKgW,UAAY0hB,EAAQ1hB,WAAa2tC,GAAavtD,EAAM/K,KAAKkN,SAC9DyH,EAAKiqD,MAAQvyB,EAAQuyB,OAAS,EAC9BjqD,EAAKlI,MAAQrO,EACbuW,EAAK86B,MAAQ,GAAKpD,EAAQoD,MAC1B96B,EAAK8yB,QAAUznC,KAAKo4C,iBAAiBh6C,GACjCuW,EAAKw1B,WACPx1B,EAAKw1B,WAAW00B,YAAYzgE,GAC5BuW,EAAKw1B,WAAW+B,iBACX,CACL,IAAM4yB,EAAkBhS,GAASiS,cAAch0D,GAD1C,EAEyCse,GAASK,SAAS3e,GAAzD2iC,EAFF,EAEEA,mBAAoB8C,EAFtB,EAEsBA,gBAC3B9xC,OAAOwX,OAAO4oD,EAAgB7/D,UAAW,CACvCuxC,gBAAiBsc,GAASc,WAAWpd,GACrC9C,mBAAoBA,GAAsBof,GAASc,WAAWlgB,KAEhE/4B,EAAKw1B,WAAa,IAAI20B,EAAgB9+D,KAAM5B,GAC5CsgE,EAAer5D,KAAKsP,EAAKw1B,aAI7B,OADAnqC,KAAKg/D,kBACEN,I,uCAEQ,WACf7yD,EAAK7L,KAAKmH,KAAKuiB,UAAU,SAAC2iB,EAAS7/B,GACjC,EAAK4gC,eAAe5gC,GAAc29B,WAAWpjC,UAC5C/G,Q,8BAGHA,KAAKi/D,iBACLj/D,KAAK8lD,cAAc,W,6BAEdj7B,GACL,IAAM+c,EAAS5nC,KAAK4nC,OACpBA,EAAOr/B,SACP,IAAM2E,EAAUlN,KAAKu8D,SAAW30B,EAAOsG,eAAetG,EAAOs0B,oBAAqBl8D,KAAK8tB,cACjFoxC,EAAgBl/D,KAAKixC,qBAAuB/jC,EAAQqc,UAK1D,GAJAvpB,KAAKm/D,gBACLn/D,KAAKo/D,sBACLp/D,KAAKq/D,uBACLr/D,KAAK88D,SAASwC,cACuD,IAAjEt/D,KAAK8lD,cAAc,eAAgB,CAACj7B,OAAM6sC,YAAY,IAA1D,CAGA,IAAMgH,EAAiB1+D,KAAKu/D,2BAC5Bv/D,KAAK8lD,cAAc,wBAEnB,IADA,IAAI6M,EAAa,EACRv0D,EAAI,EAAGiO,EAAOrM,KAAKmH,KAAKuiB,SAASrrB,OAAQD,EAAIiO,EAAMjO,IAAK,KACxD+rC,EAAcnqC,KAAKotC,eAAehvC,GAAlC+rC,WACDpjC,GAASm4D,IAAyD,IAAxCR,EAAe1xD,QAAQm9B,GACvDA,EAAWq1B,sBAAsBz4D,GACjC4rD,EAAa/vD,KAAK+E,KAAKwiC,EAAW4F,iBAAkB4iB,GAEtDA,EAAa3yD,KAAKy/D,YAAcvyD,EAAQsjD,OAAOgC,YAAcG,EAAa,EAC1E3yD,KAAK0/D,cAAc/M,GACduM,GACHrzD,EAAK6yD,GAAgB,SAACv0B,GACpBA,EAAWpjC,WAGf/G,KAAK2/D,gBAAgB90C,GACrB7qB,KAAK8lD,cAAc,cAAe,CAACj7B,SACnC7qB,KAAKyyD,QAAQ9f,KAAKsoB,GAAc,IAAK,SA9B1B,IA+BJ12B,EAAuBvkC,KAAvBukC,QAASm4B,EAAc18D,KAAd08D,WACZA,EACF18D,KAAK4/D,cAAclD,GAAY,GACtBn4B,EAAQlmC,QACjB2B,KAAK6/D,mBAAmBt7B,EAASA,GAAS,GAE5CvkC,KAAK+9D,Y,sCAES,WACdlyD,EAAK7L,KAAKurB,QAAQ,SAACD,GACjBglC,GAAkB,EAAMhlC,MAE1BtrB,KAAK8/D,sBACL9/D,KAAK+/D,wB,4CAGL,IAAM7yD,EAAUlN,KAAKkN,QACf8yD,EAAiB,IAAInsD,IAAInV,OAAOuN,KAAKjM,KAAK28D,aAC1CsD,EAAY,IAAIpsD,IAAI3G,EAAQ+c,QAC7Btb,EAAUqxD,EAAgBC,MAAgBjgE,KAAK48D,uBAAyB1vD,EAAQme,aACnFrrB,KAAKkgE,eACLlgE,KAAKy9D,gB,6CAGc,MACdV,EAAkB/8D,KAAlB+8D,eACDoD,EAAUngE,KAAKogE,0BAA4B,GAF5B,cAGgBD,GAHhB,IAGrB,2BAA8C,eAAlCl5B,EAAkC,EAAlCA,OAAQh1B,EAA0B,EAA1BA,MAAO8C,EAAmB,EAAnBA,MAEzB6mD,GAAgBmB,EAAgB9qD,EADR,oBAAXg1B,GAAgClyB,EAAQA,IAJlC,iC,+CASrB,IAAMm9B,EAAelyC,KAAKkyC,aAC1B,GAAKA,GAAiBA,EAAa7zC,OAAnC,CAGA2B,KAAKkyC,aAAe,GAQpB,IAPA,IAAMmuB,EAAergE,KAAKmH,KAAKuiB,SAASrrB,OAClCiiE,EAAU,SAAChY,GAAD,OAAS,IAAIz0C,IAC3Bq+B,EACG5b,QAAO,SAAArc,GAAC,OAAIA,EAAE,KAAOquC,KACrB17C,KAAI,SAACqN,EAAG7b,GAAJ,OAAUA,EAAI,IAAM6b,EAAE/R,OAAO,GAAGxC,KAAK,UAExC66D,EAAYD,EAAQ,GACjBliE,EAAI,EAAGA,EAAIiiE,EAAcjiE,IAChC,IAAKuQ,EAAU4xD,EAAWD,EAAQliE,IAChC,OAGJ,OAAOuD,MAAMwI,KAAKo2D,GACf3zD,KAAI,SAAAqN,GAAC,OAAIA,EAAEjM,MAAM,QACjBpB,KAAI,SAAAgC,GAAC,MAAK,CAACq4B,OAAQr4B,EAAE,GAAIqD,OAAQrD,EAAE,GAAImG,OAAQnG,EAAE,U,oCAExC+jD,GAAY,WACxB,IAA+D,IAA3D3yD,KAAK8lD,cAAc,eAAgB,CAAC4R,YAAY,IAApD,CAGApH,GAAetwD,KAAMA,KAAK6sB,MAAO7sB,KAAKiuB,OAAQ0kC,GAC9C,IAAMjjC,EAAO1vB,KAAKgwC,UACZwwB,EAAS9wC,EAAK7C,OAAS,GAAK6C,EAAKzB,QAAU,EACjDjuB,KAAKyyD,QAAU,GACf5mD,EAAK7L,KAAKkyD,OAAO,SAAC31B,GAAQ,MACpBikC,GAA2B,cAAjBjkC,EAAI+lB,WAGd/lB,EAAIuL,WACNvL,EAAIuL,aAEN,IAAK2qB,SAAQptD,KAAb,oBAAqBk3B,EAAIk2B,eACxBzyD,MACHA,KAAKyyD,QAAQh/C,SAAQ,SAAC1E,EAAMtC,GAC1BsC,EAAK0xD,KAAOh0D,KAEdzM,KAAK8lD,cAAc,kB,sCAELj7B,GACd,IAA6E,IAAzE7qB,KAAK8lD,cAAc,uBAAwB,CAACj7B,OAAM6sC,YAAY,IAAlE,CAGA,IAAK,IAAIt5D,EAAI,EAAGiO,EAAOrM,KAAKmH,KAAKuiB,SAASrrB,OAAQD,EAAIiO,IAAQjO,EAC5D4B,KAAKotC,eAAehvC,GAAG+rC,WAAWrC,YAEpC,IAAK,IAAI1pC,EAAI,EAAGiO,EAAOrM,KAAKmH,KAAKuiB,SAASrrB,OAAQD,EAAIiO,IAAQjO,EAC5D4B,KAAK0gE,eAAetiE,EAAGsQ,EAAWmc,GAAQA,EAAK,CAACre,aAAcpO,IAAMysB,GAEtE7qB,KAAK8lD,cAAc,sBAAuB,CAACj7B,Y,qCAE9Bpe,EAAOoe,GACpB,IAAMlW,EAAO3U,KAAKotC,eAAe3gC,GAC3BrL,EAAO,CAACuT,OAAMlI,QAAOoe,OAAM6sC,YAAY,IACW,IAApD13D,KAAK8lD,cAAc,sBAAuB1kD,KAG9CuT,EAAKw1B,WAAWnG,QAAQnZ,GACxBzpB,EAAKs2D,YAAa,EAClB13D,KAAK8lD,cAAc,qBAAsB1kD,M,gCAGsB,IAA3DpB,KAAK8lD,cAAc,eAAgB,CAAC4R,YAAY,MAGhDt0B,GAASp0B,IAAIhP,MACXA,KAAKg9D,WAAa55B,GAASiB,QAAQrkC,OACrCojC,GAASnxB,MAAMjS,OAGjBA,KAAKskC,OACL82B,GAAqB,CAACvxC,MAAO7pB,W,6BAI/B,IAAI5B,EACJ,GAAI4B,KAAK09D,kBAAmB,OACF19D,KAAK09D,kBAAtB7wC,EADmB,EACnBA,MAAOoB,EADY,EACZA,OACdjuB,KAAK29D,QAAQ9wC,EAAOoB,GACpBjuB,KAAK09D,kBAAoB,KAG3B,GADA19D,KAAKk6D,UACDl6D,KAAK6sB,OAAS,GAAK7sB,KAAKiuB,QAAU,KAGuB,IAAzDjuB,KAAK8lD,cAAc,aAAc,CAAC4R,YAAY,IAAlD,CAGA,IAAMiJ,EAAS3gE,KAAKyyD,QACpB,IAAKr0D,EAAI,EAAGA,EAAIuiE,EAAOtiE,QAAUsiE,EAAOviE,GAAGytD,GAAK,IAAKztD,EACnDuiE,EAAOviE,GAAGkmC,KAAKtkC,KAAKgwC,WAGtB,IADAhwC,KAAK4gE,gBACExiE,EAAIuiE,EAAOtiE,SAAUD,EAC1BuiE,EAAOviE,GAAGkmC,KAAKtkC,KAAKgwC,WAEtBhwC,KAAK8lD,cAAc,gB,6CAEE/c,GACrB,IAEI3qC,EAAGiO,EAFD28B,EAAWhpC,KAAK68D,gBAChBh9D,EAAS,GAEf,IAAKzB,EAAI,EAAGiO,EAAO28B,EAAS3qC,OAAQD,EAAIiO,IAAQjO,EAAG,CACjD,IAAMuW,EAAOq0B,EAAS5qC,GACjB2qC,IAAiBp0B,EAAK8yB,SACzB5nC,EAAOwF,KAAKsP,GAGhB,OAAO9U,I,qDAGP,OAAOG,KAAKipC,wBAAuB,K,sCAGnC,IAAqE,IAAjEjpC,KAAK8lD,cAAc,qBAAsB,CAAC4R,YAAY,IAA1D,CAIA,IADA,IAAM1uB,EAAWhpC,KAAK+rD,+BACb3tD,EAAI4qC,EAAS3qC,OAAS,EAAGD,GAAK,IAAKA,EAC1C4B,KAAK6gE,aAAa73B,EAAS5qC,IAE7B4B,KAAK8lD,cAAc,wB,mCAERnxC,GACX,IAAM6V,EAAMxqB,KAAKwqB,IACXyF,EAAOtb,EAAKg7B,MACZmxB,GAAW7wC,EAAK2f,SAChBlgB,EAAO1vB,KAAKgwC,UACZ5uC,EAAO,CACXuT,OACAlI,MAAOkI,EAAKlI,MACZirD,YAAY,IAEwC,IAAlD13D,KAAK8lD,cAAc,oBAAqB1kD,KAGxC0/D,GACF9wC,GAASxF,EAAK,CACZoF,MAAoB,IAAdK,EAAKL,KAAiB,EAAIF,EAAKE,KAAOK,EAAKL,KACjDC,OAAsB,IAAfI,EAAKJ,MAAkB7vB,KAAK6sB,MAAQ6C,EAAKG,MAAQI,EAAKJ,MAC7DC,KAAkB,IAAbG,EAAKH,IAAgB,EAAIJ,EAAKI,IAAMG,EAAKH,IAC9CC,QAAwB,IAAhBE,EAAKF,OAAmB/vB,KAAKiuB,OAASyB,EAAKK,OAASE,EAAKF,SAGrEpb,EAAKw1B,WAAW7F,OACZw8B,GACF5wC,GAAW1F,GAEbppB,EAAKs2D,YAAa,EAClB13D,KAAK8lD,cAAc,mBAAoB1kD,M,oCAE3BquB,GACZ,OAAOD,GAAeC,EAAOzvB,KAAKgwC,UAAWhwC,KAAKy/D,e,gDAE1Bz9D,EAAG6oB,EAAM3d,EAAS0wC,GAC1C,IAAM3W,EAAS6oB,GAAYC,MAAMllC,GACjC,MAAsB,oBAAXoc,EACFA,EAAOjnC,KAAMgC,EAAGkL,EAAS0wC,GAE3B,K,qCAEMpxC,GACb,IAAM6/B,EAAUrsC,KAAKmH,KAAKuiB,SAASld,GAC7Bw8B,EAAWhpC,KAAKy8D,UAClB9nD,EAAOq0B,EAAS1S,QAAO,SAAA1oB,GAAC,OAAIA,GAAKA,EAAE6tC,WAAapP,KAAS3H,MAkB7D,OAjBK/vB,IACHA,EAAO,CACL5J,KAAM,KACN5D,KAAM,GACNklC,QAAS,KACTlC,WAAY,KACZ8E,OAAQ,KACRxC,QAAS,KACTE,QAAS,KACTiyB,MAAOvyB,GAAWA,EAAQuyB,OAAS,EACnCnyD,MAAOD,EACPivC,SAAUpP,EACVn3B,QAAS,GACTF,SAAS,GAEXg0B,EAAS3jC,KAAKsP,IAETA,I,mCAGP,OAAO3U,KAAK+rC,WAAa/rC,KAAK+rC,SAAW9X,GAAc,KAAM,CAACpK,MAAO7pB,KAAM+K,KAAM,a,+CAGjF,OAAO/K,KAAK+rD,+BAA+B1tD,S,uCAE5BmO,GACf,IAAM6/B,EAAUrsC,KAAKmH,KAAKuiB,SAASld,GACnC,IAAK6/B,EACH,OAAO,EAET,IAAM13B,EAAO3U,KAAKotC,eAAe5gC,GACjC,MAA8B,mBAAhBmI,EAAKs6B,QAAwBt6B,EAAKs6B,QAAU5C,EAAQ4C,S,2CAE/CziC,EAAci7B,GACpBznC,KAAKotC,eAAe5gC,GAC5ByiC,QAAUxH,I,2CAEIh7B,GACnBzM,KAAK+8D,eAAetwD,IAAUzM,KAAK+8D,eAAetwD,K,wCAElCA,GAChB,OAAQzM,KAAK+8D,eAAetwD,K,wCAEZD,EAAc2jC,EAAW1I,GACzC,IAAM5c,EAAO4c,EAAU,OAAS,OAC1B9yB,EAAO3U,KAAKotC,eAAe5gC,GAC3Bi3B,EAAQ9uB,EAAKw1B,WAAWoH,wBAAmBjwC,EAAWupB,GACxDpc,EAAQ0hC,IACVx7B,EAAKxN,KAAKgpC,GAAWlB,QAAUxH,EAC/BznC,KAAKuI,WAELvI,KAAK+gE,qBAAqBv0D,EAAci7B,GACxChE,EAAMl7B,OAAOoM,EAAM,CAAC8yB,YACpBznC,KAAKuI,QAAO,SAACiiB,GAAD,OAASA,EAAIhe,eAAiBA,EAAeqe,OAAOvpB,Q,2BAG/DkL,EAAc2jC,GACjBnwC,KAAKghE,kBAAkBx0D,EAAc2jC,GAAW,K,2BAE7C3jC,EAAc2jC,GACjBnwC,KAAKghE,kBAAkBx0D,EAAc2jC,GAAW,K,0CAE9B3jC,GAClB,IAAMmI,EAAO3U,KAAKy8D,UAAUjwD,GACxBmI,GAAQA,EAAKw1B,YACfx1B,EAAKw1B,WAAW82B,kBAEXjhE,KAAKy8D,UAAUjwD,K,8BAGtB,IAAIpO,EAAGiO,EAGP,IAFArM,KAAKg8C,OACL5Y,GAAS89B,OAAOlhE,MACX5B,EAAI,EAAGiO,EAAOrM,KAAKmH,KAAKuiB,SAASrrB,OAAQD,EAAIiO,IAAQjO,EACxD4B,KAAKy+D,oBAAoBrgE,K,gCAI3B4B,KAAK8lD,cAAc,iBADX,IAEDj4B,EAAe7tB,KAAf6tB,OAAQrD,EAAOxqB,KAAPwqB,IACfxqB,KAAKmhE,QACLnhE,KAAK4nC,OAAOqyB,aACRpsC,IACF7tB,KAAKkgE,eACLtyC,GAAYC,EAAQrD,GACpBxqB,KAAK8pB,SAASs3C,eAAe52C,GAC7BxqB,KAAK6tB,OAAS,KACd7tB,KAAKwqB,IAAM,MAEbxqB,KAAK8lD,cAAc,kBACZ4V,GAAU17D,KAAK6K,IACtB7K,KAAK8lD,cAAc,kB,sCAEE,MACrB,OAAO,EAAA9lD,KAAK6tB,QAAOwzC,UAAZ,qB,mCAGPrhE,KAAKshE,iBACDthE,KAAKkN,QAAQme,WACfrrB,KAAKuhE,uBAELvhE,KAAKg9D,UAAW,I,uCAGH,WACTxpD,EAAYxT,KAAK28D,WACjB7yC,EAAW9pB,KAAK8pB,SAKhBzW,EAAW,SAACrR,EAAG4L,EAAGC,GACtB7L,EAAEq6B,QAAUzuB,EACZ5L,EAAEs6B,QAAUzuB,EACZ,EAAK+xD,cAAc59D,IAErB6J,EAAK7L,KAAKkN,QAAQ+c,QAAQ,SAAClf,GAAD,OATb,SAACA,EAAMsI,GAClByW,EAASwU,iBAAiB,EAAMvzB,EAAMsI,GACtCG,EAAUzI,GAAQsI,EAOgBmuD,CAAKz2D,EAAMsI,Q,6CAE1B,WAChBrT,KAAK48D,uBACR58D,KAAK48D,qBAAuB,IAE9B,IAiBI6E,EAjBEjuD,EAAYxT,KAAK48D,qBACjB9yC,EAAW9pB,KAAK8pB,SAChB03C,EAAO,SAACz2D,EAAMsI,GAClByW,EAASwU,iBAAiB,EAAMvzB,EAAMsI,GACtCG,EAAUzI,GAAQsI,GAEdquD,EAAU,SAAC32D,EAAMsI,GACjBG,EAAUzI,KACZ+e,EAASyU,oBAAoB,EAAMxzB,EAAMsI,UAClCG,EAAUzI,KAGfsI,EAAW,SAACwZ,EAAOoB,GACnB,EAAKJ,QACP,EAAKyZ,OAAOza,EAAOoB,IAIjB+uC,EAAW,SAAXA,IACJ0E,EAAQ,SAAU1E,GAClB,EAAKA,UAAW,EAChB,EAAK11B,SACLk6B,EAAK,SAAUnuD,GACfmuD,EAAK,SAAUC,IAEjBA,EAAW,WACT,EAAKzE,UAAW,EAChB0E,EAAQ,SAAUruD,GAClB,EAAK8tD,QACL,EAAKxD,QAAQ,EAAG,GAChB6D,EAAK,SAAUxE,IAEblzC,EAAS63C,WAAW3hE,KAAK6tB,QAC3BmvC,IAEAyE,M,qCAGW,WACb51D,EAAK7L,KAAK28D,YAAY,SAACtpD,EAAUtI,GAC/B,EAAK+e,SAASyU,oBAAoB,EAAMxzB,EAAMsI,MAEhDrT,KAAK28D,WAAa,GAClB9wD,EAAK7L,KAAK48D,sBAAsB,SAACvpD,EAAUtI,GACzC,EAAK+e,SAASyU,oBAAoB,EAAMxzB,EAAMsI,MAEhDrT,KAAK48D,0BAAuBt7D,I,uCAEbqS,EAAOkX,EAAM20B,GAC5B,IACUzwC,EAAM3Q,EAAGiO,EADb0qB,EAASyoB,EAAU,MAAQ,SAMjC,IAJa,YAAT30B,GACK7qB,KAAKotC,eAAez5B,EAAM,GAAGnH,cAC/B29B,WAAW,IAAMpT,EAAS,uBAE5B34B,EAAI,EAAGiO,EAAOsH,EAAMtV,OAAQD,EAAIiO,IAAQjO,EAAG,CAE9C,IAAM+rC,GADNp7B,EAAO4E,EAAMvV,KACc4B,KAAKotC,eAAer+B,EAAKvC,cAAc29B,WAC9DA,GACFA,EAAWpT,EAAS,cAAchoB,EAAKysB,QAASzsB,EAAKvC,aAAcuC,EAAKtC,U,0CAK5E,OAAOzM,KAAKukC,SAAW,K,wCAEPq9B,GAAgB,WAC1BC,EAAa7hE,KAAKukC,SAAW,GAC7B8C,EAASu6B,EAAeh1D,KAAI,YAA2B,IAAzBJ,EAAyB,EAAzBA,aAAcC,EAAW,EAAXA,MAC1CkI,EAAO,EAAKy4B,eAAe5gC,GACjC,IAAKmI,EACH,MAAM,IAAIjO,MAAM,6BAA+B8F,GAEjD,MAAO,CACLA,eACAgvB,QAAS7mB,EAAKxN,KAAKsF,GACnBA,aAGaP,EAAem7B,EAAQw6B,KAEtC7hE,KAAKukC,QAAU8C,EACfrnC,KAAK08D,WAAa,KAClB18D,KAAK6/D,mBAAmBx4B,EAAQw6B,M,oCAGtBtK,EAAMn2D,EAAMk1B,GACxB,OAAOt2B,KAAK88D,SAASgF,OAAO9hE,KAAMu3D,EAAMn2D,EAAMk1B,K,yCAE7B+Q,EAAQw6B,EAAYE,GACrC,IAAMC,EAAehiE,KAAKkN,QAAQod,MAC5By1B,EAAO,SAACnxC,EAAGC,GAAJ,OAAUD,EAAE0nB,QAAO,SAAA1oB,GAAC,OAAKiB,EAAEupD,MAAK,SAAAvqD,GAAC,OAAID,EAAEpB,eAAiBqB,EAAErB,cAAgBoB,EAAEnB,QAAUoB,EAAEpB,aAC/Fw1D,EAAcliB,EAAK8hB,EAAYx6B,GAC/B66B,EAAYH,EAAS16B,EAAS0Y,EAAK1Y,EAAQw6B,GAC7CI,EAAY5jE,QACd2B,KAAKmiE,iBAAiBF,EAAaD,EAAan3C,MAAM,GAEpDq3C,EAAU7jE,QAAU2jE,EAAan3C,MACnC7qB,KAAKmiE,iBAAiBD,EAAWF,EAAan3C,MAAM,K,oCAG1C7oB,EAAG+/D,GAAQ,WACjB3gE,EAAO,CACX2jC,MAAO/iC,EACP+/D,SACArK,YAAY,EACZ0K,YAAapiE,KAAK8uD,cAAc9sD,IAE5BqgE,EAAc,SAAC5K,GAAD,OAAaA,EAAOvqD,QAAQ+c,QAAU,EAAK/c,QAAQ+c,QAAQgL,SAASjzB,EAAEo0D,OAAOrrD,OACjG,IAA6D,IAAzD/K,KAAK8lD,cAAc,cAAe1kD,EAAMihE,GAA5C,CAGA,IAAMpsD,EAAUjW,KAAKsiE,aAAatgE,EAAG+/D,EAAQ3gE,EAAKghE,aAMlD,OALAhhE,EAAKs2D,YAAa,EAClB13D,KAAK8lD,cAAc,aAAc1kD,EAAMihE,IACnCpsD,GAAW7U,EAAK6U,UAClBjW,KAAK+9D,SAEA/9D,Q,mCAEIgC,EAAG+/D,EAAQK,GAAa,MACSpiE,KAArCukC,QAASs9B,OADmB,MACN,GADM,EACF30D,EAAWlN,KAAXkN,QAC3B0wC,EAAmBmkB,EACnB16B,EAASrnC,KAAKuiE,mBAAmBvgE,EAAG6/D,EAAYO,EAAaxkB,GAC7D4kB,EDh0LV,SAAuBxgE,GACrB,MAAkB,YAAXA,EAAE+I,MAAiC,UAAX/I,EAAE+I,MAA+B,gBAAX/I,EAAE+I,KC+zLrC03D,CAAczgE,GACxB0gE,EA7uBV,SAA4B1gE,EAAG0gE,EAAWN,EAAaI,GACrD,OAAKJ,GAA0B,aAAXpgE,EAAE+I,KAGlBy3D,EACKE,EAEF1gE,EALE,KA2uBW2gE,CAAmB3gE,EAAGhC,KAAK08D,WAAY0F,EAAaI,GAClEJ,IACFpiE,KAAK08D,WAAa,KAClB/wD,EAASuB,EAAQ+d,QAAS,CAACjpB,EAAGqlC,EAAQrnC,MAAOA,MACzCwiE,GACF72D,EAASuB,EAAQge,QAAS,CAAClpB,EAAGqlC,EAAQrnC,MAAOA,OAGjD,IAAMiW,GAAW/J,EAAem7B,EAAQw6B,GAMxC,OALI5rD,GAAW8rD,KACb/hE,KAAKukC,QAAU8C,EACfrnC,KAAK6/D,mBAAmBx4B,EAAQw6B,EAAYE,IAE9C/hE,KAAK08D,WAAagG,EACXzsD,I,yCAEUjU,EAAG6/D,EAAYO,EAAaxkB,GAC7C,GAAe,aAAX57C,EAAE+I,KACJ,MAAO,GAET,IAAKq3D,EACH,OAAOP,EAET,IAAMG,EAAehiE,KAAKkN,QAAQod,MAClC,OAAOtqB,KAAK4iE,0BAA0B5gE,EAAGggE,EAAan3C,KAAMm3C,EAAcpkB,K,kCAnsB1D,MACmE59C,KAA5EkN,QAAUgwB,EADD,EACCA,YAAalS,EADd,EACcA,oBAAsB6B,EAA+B7sB,KAA/B6sB,MAAOoB,EAAwBjuB,KAAxBiuB,OAAQuuC,EAAgBx8D,KAAhBw8D,aACnE,OAAK1xD,EAAcoyB,GAGflS,GAAuBwxC,EAClBA,EAEFvuC,EAASpB,EAAQoB,EAAS,KALxBiP,I,2BAQT,OAAOl9B,KAAK4nC,OAAOzgC,M,aAEZA,GACPnH,KAAK4nC,OAAOzgC,KAAOA,I,8BAGnB,OAAOnH,KAAKu8D,U,aAEFrvD,GACVlN,KAAK4nC,OAAO16B,QAAUA,M,KAkrBpB21D,GAAoB,kBAAMh3D,EAAKiwD,GAAMJ,WAAW,SAAC7xC,GAAD,OAAWA,EAAMizC,SAASwC,iBA2ChF,SAASwD,GAAQt4C,EAAKgR,EAAS2d,GAAU,IAChCD,EAA2D1d,EAA3D0d,WAAY6pB,EAA+CvnC,EAA/CunC,YAAan1D,EAAkC4tB,EAAlC5tB,EAAGC,EAA+B2tB,EAA/B3tB,EAAGoqC,EAA4Bzc,EAA5Byc,YAAaD,EAAexc,EAAfwc,YAC/CgrB,EAAcD,EAAc9qB,EAChCztB,EAAIqE,YACJrE,EAAIuE,IAAInhB,EAAGC,EAAGoqC,EAAaiB,EAAa8pB,EAAa7pB,EAAW6pB,GAC5DhrB,EAAc+qB,GAChBC,EAAcD,EAAc/qB,EAC5BxtB,EAAIuE,IAAInhB,EAAGC,EAAGmqC,EAAamB,EAAW6pB,EAAa9pB,EAAa8pB,GAAa,IAE7Ex4C,EAAIuE,IAAInhB,EAAGC,EAAGk1D,EAAa5pB,EAAW5pC,EAAS2pC,EAAa3pC,GAE9Dib,EAAIwE,YACJxE,EAAIyF,OAKN,SAASgzC,GAAoBl0C,EAAKipB,EAAaC,EAAairB,GAC1D,IAAM1hE,EAHC2xB,GAGmBpE,EAAI7hB,QAAQi2D,aAHN,CAAC,aAAc,WAAY,aAAc,aAInEC,GAAiBnrB,EAAcD,GAAe,EAC9CqrB,EAAazgE,KAAKkF,IAAIs7D,EAAeF,EAAalrB,EAAc,GAChEsrB,EAAoB,SAAC/6C,GACzB,IAAMg7C,GAAiBtrB,EAAcr1C,KAAKkF,IAAIs7D,EAAe76C,IAAQ26C,EAAa,EAClF,OAAO1wD,GAAY+V,EAAK,EAAG3lB,KAAKkF,IAAIs7D,EAAeG,KAErD,MAAO,CACLC,WAAYF,EAAkB9hE,EAAEgiE,YAChCC,SAAUH,EAAkB9hE,EAAEiiE,UAC9BC,WAAYlxD,GAAYhR,EAAEkiE,WAAY,EAAGL,GACzCM,SAAUnxD,GAAYhR,EAAEmiE,SAAU,EAAGN,IAGzC,SAASO,GAAW5+D,EAAG6+D,EAAOj2D,EAAGC,GAC/B,MAAO,CACLD,EAAGA,EAAI5I,EAAIpC,KAAK2U,IAAIssD,GACpBh2D,EAAGA,EAAI7I,EAAIpC,KAAK0T,IAAIutD,IAGxB,SAASC,GAAQt5C,EAAKgR,EAASzzB,EAAQywC,EAAStmC,EAAKkrC,GAAU,IACtDxvC,EAA6D4tB,EAA7D5tB,EAAGC,EAA0D2tB,EAA1D3tB,EAAeoE,EAA2CupB,EAAvD0d,WAAmB6pB,EAAoCvnC,EAApCunC,YAA0BgB,EAAUvoC,EAAvBwc,YACvCC,EAAcr1C,KAAK+E,IAAI6zB,EAAQyc,YAAcO,EAAUzwC,EAASg7D,EAAa,GAC7E/qB,EAAc+rB,EAAS,EAAIA,EAASvrB,EAAUzwC,EAASg7D,EAAc,EACvEiB,EAAgB,EACdvpD,EAAQvI,EAAMD,EACpB,GAAIumC,EAAS,CACX,IAEMyrB,IAFuBF,EAAS,EAAIA,EAASvrB,EAAU,IAChCP,EAAc,EAAIA,EAAcO,EAAU,IACI,EAE3EwrB,GAAiBvpD,GAD4B,IAAvBwpD,EAA4BxpD,EAAQwpD,GAAuBA,EAAqBzrB,GAAW/9B,IACvE,EAE5C,IACMypD,GAAezpD,EADR7X,KAAK+E,IAAI,KAAO8S,EAAQw9B,EAAclwC,EAASkH,GAAMgpC,GAC7B,EAC/BiB,EAAajnC,EAAQiyD,EAAcF,EACnC7qB,EAAWjnC,EAAMgyD,EAAcF,EAhBwB,EAiBRf,GAAoBznC,EAASwc,EAAaC,EAAakB,EAAWD,GAAhHsqB,EAjBsD,EAiBtDA,WAAYC,EAjB0C,EAiB1CA,SAAUC,EAjBgC,EAiBhCA,WAAYC,EAjBoB,EAiBpBA,SACnCQ,EAA2BlsB,EAAcurB,EACzCY,EAAyBnsB,EAAcwrB,EACvCY,EAA0BnrB,EAAasqB,EAAaW,EACpDG,EAAwBnrB,EAAWsqB,EAAWW,EAC9CG,EAA2BvsB,EAAc0rB,EACzCc,EAAyBxsB,EAAc2rB,EACvCc,EAA0BvrB,EAAawqB,EAAaa,EACpDG,EAAwBvrB,EAAWwqB,EAAWa,EAEpD,GADAh6C,EAAIqE,YACAuuB,EAAU,CAEZ,GADA5yB,EAAIuE,IAAInhB,EAAGC,EAAGoqC,EAAaosB,EAAyBC,GAChDb,EAAW,EAAG,CAChB,IAAMkB,EAAUf,GAAWQ,EAAwBE,EAAuB12D,EAAGC,GAC7E2c,EAAIuE,IAAI41C,EAAQ/2D,EAAG+2D,EAAQ92D,EAAG41D,EAAUa,EAAuBnrB,EAAW5pC,GAE5E,IAAMq1D,EAAKhB,GAAWY,EAAwBrrB,EAAUvrC,EAAGC,GAE3D,GADA2c,EAAI0E,OAAO01C,EAAGh3D,EAAGg3D,EAAG/2D,GAChB81D,EAAW,EAAG,CAChB,IAAMgB,EAAUf,GAAWY,EAAwBE,EAAuB92D,EAAGC,GAC7E2c,EAAIuE,IAAI41C,EAAQ/2D,EAAG+2D,EAAQ92D,EAAG81D,EAAUxqB,EAAW5pC,EAASm1D,EAAwB9hE,KAAKqM,IAG3F,GADAub,EAAIuE,IAAInhB,EAAGC,EAAGmqC,EAAamB,EAAYwqB,EAAW3rB,EAAckB,EAAcwqB,EAAa1rB,GAAc,GACrG0rB,EAAa,EAAG,CAClB,IAAMiB,EAAUf,GAAWW,EAA0BE,EAAyB72D,EAAGC,GACjF2c,EAAIuE,IAAI41C,EAAQ/2D,EAAG+2D,EAAQ92D,EAAG61D,EAAYe,EAA0B7hE,KAAKqM,GAAIiqC,EAAa3pC,GAE5F,IAAMs1D,EAAKjB,GAAWO,EAA0BjrB,EAAYtrC,EAAGC,GAE/D,GADA2c,EAAI0E,OAAO21C,EAAGj3D,EAAGi3D,EAAGh3D,GAChB21D,EAAa,EAAG,CAClB,IAAMmB,EAAUf,GAAWO,EAA0BE,EAAyBz2D,EAAGC,GACjF2c,EAAIuE,IAAI41C,EAAQ/2D,EAAG+2D,EAAQ92D,EAAG21D,EAAYtqB,EAAa3pC,EAAS80D,QAE7D,CACL75C,EAAIyE,OAAOrhB,EAAGC,GACd,IAAMi3D,EAAcliE,KAAK2U,IAAI8sD,GAA2BpsB,EAAcrqC,EAChEm3D,EAAcniE,KAAK0T,IAAI+tD,GAA2BpsB,EAAcpqC,EACtE2c,EAAI0E,OAAO41C,EAAaC,GACxB,IAAMC,EAAYpiE,KAAK2U,IAAI+sD,GAAyBrsB,EAAcrqC,EAC5Dq3D,EAAYriE,KAAK0T,IAAIguD,GAAyBrsB,EAAcpqC,EAClE2c,EAAI0E,OAAO81C,EAAWC,GAExBz6C,EAAIwE,YAwCN,SAASwxB,GAAWh2B,EAAKgR,EAASzzB,EAAQywC,EAASW,EAAUiE,GAAU,IAC9DlwC,EAAWsuB,EAAXtuB,QACAoiB,EAAgCpiB,EAAhCoiB,YAAa6T,EAAmBj2B,EAAnBi2B,gBACd+hC,EAAgC,UAAxBh4D,EAAQ2tC,YACjBvrB,IAGD41C,GACF16C,EAAI8G,UAA0B,EAAdhC,EAChB9E,EAAI26C,SAAWhiC,GAAmB,UAElC3Y,EAAI8G,UAAYhC,EAChB9E,EAAI26C,SAAWhiC,GAAmB,SAEhC3H,EAAQ4pC,aAjCd,SAA+B56C,EAAKgR,EAAS0pC,GAAO,IAI9C9mE,EAHGwP,EAA8C4tB,EAA9C5tB,EAAGC,EAA2C2tB,EAA3C3tB,EAAGqrC,EAAwC1d,EAAxC0d,WAAY6pB,EAA4BvnC,EAA5BunC,YAAaqC,EAAe5pC,EAAf4pC,YAChCntB,EAAcr1C,KAAK+E,IAAI6zB,EAAQyc,YAAc8qB,EAAa,GAC1D/qB,EAAcxc,EAAQwc,YAAc+qB,EAO1C,IALImC,GACFpC,GAAQt4C,EAAKgR,EAAS0d,EAAahqC,GAErCsb,EAAIqE,YACJrE,EAAIuE,IAAInhB,EAAGC,EAAGmqC,EAAakB,EAAahqC,EAAKgqC,GAAY,GACpD96C,EAAI,EAAGA,EAAIgnE,IAAehnE,EAC7BosB,EAAI+E,SAIN,IAFA/E,EAAIqE,YACJrE,EAAIuE,IAAInhB,EAAGC,EAAGoqC,EAAaiB,EAAYA,EAAahqC,GAC/C9Q,EAAI,EAAGA,EAAIgnE,IAAehnE,EAC7BosB,EAAI+E,SAkBJ81C,CAAsB76C,EAAKgR,EAAS0pC,GAElCA,GACFpC,GAAQt4C,EAAKgR,EAAS2d,GAExB2qB,GAAQt5C,EAAKgR,EAASzzB,EAAQywC,EAASW,EAAUiE,GACjD5yB,EAAI+E,UAvMN7wB,OAAOutB,iBAAiB6vC,GAAO,CAC7BzyC,SAAU,CACR9qB,YAHe,EAIfmB,MAAO2pB,IAETqyC,UAAW,CACTn9D,YAPe,EAQfmB,MAAOg8D,IAETv4D,UAAW,CACT5E,YAXe,EAYfmB,MAAOyD,IAET2pD,SAAU,CACRvuD,YAfe,EAgBfmB,MAAOotD,IAETwY,QAAS,CACP/mE,YAnBe,EAoBfmB,MAl1BU,SAo1BZi8D,SAAU,CACRp9D,YAvBe,EAwBfmB,MAAOi8D,IAETrP,SAAU,CACR/tD,YA3Be,EA4BfmB,MAAO,WACLotD,GAASh5C,IAAT,MAAAg5C,GAAQ,WACR+V,OAGJ0C,WAAY,CACVhnE,YAlCe,EAmCfmB,MAAO,WACLotD,GAASoU,OAAT,MAAApU,GAAQ,WACR+V,S,IAqKA2C,G,kDACJ,WAAYn9D,GAAK,kCACf,gBACK6E,aAAU5L,EACf,EAAK62C,mBAAgB72C,EACrB,EAAK43C,gBAAa53C,EAClB,EAAK63C,cAAW73C,EAChB,EAAK02C,iBAAc12C,EACnB,EAAK22C,iBAAc32C,EACnB,EAAKyhE,YAAc,EACnB,EAAKqC,YAAc,EACf/8D,GACF3J,OAAOwX,OAAPxX,OAAA,IAAAA,CAAA,GAAoB2J,GAXP,E,oDAcTo9D,EAAQC,EAAQ9nB,GACtB,IADwC,EAEd3sC,GADZjR,KAAK69C,SAAS,CAAC,IAAK,KAAMD,GACW,CAAChwC,EAAG63D,EAAQ53D,EAAG63D,IAA3Dl0D,EAFiC,EAEjCA,MAAOE,EAF0B,EAE1BA,SAF0B,EAGgC1R,KAAK69C,SAAS,CACpF,aACA,WACA,cACA,cACA,iBACCD,GANI1E,EAHiC,EAGjCA,WAAYC,EAHqB,EAGrBA,SAAUnB,EAHW,EAGXA,YAAaC,EAHF,EAGEA,YAAaE,EAHf,EAGeA,cAOjDwtB,EAAU3lE,KAAKkN,QAAQsrC,QAAU,EAEjCotB,EADiBt6D,EAAe6sC,EAAegB,EAAWD,IACxBhqC,GAAO8C,GAAcR,EAAO0nC,EAAYC,GAC1E0sB,EAAepzD,GAAWf,EAAUsmC,EAAc2tB,EAAS1tB,EAAc0tB,GAC/E,OAAQC,GAAiBC,I,qCAEZjoB,GAAkB,MACgC59C,KAAK69C,SAAS,CAC3E,IACA,IACA,aACA,WACA,cACA,cACA,iBACCD,GARIhwC,EADwB,EACxBA,EAAGC,EADqB,EACrBA,EAAGqrC,EADkB,EAClBA,WAAYC,EADM,EACNA,SAAUnB,EADJ,EACIA,YAAaC,EADjB,EACiBA,YADjB,EAULj4C,KAAKkN,QAAxBnF,EAVwB,EAUxBA,OACD+9D,GAAa5sB,EAAaC,GAAY,EACtC4sB,GAAc/tB,EAAcC,EAZH,EAUhBO,QAE2CzwC,GAAU,EACpE,MAAO,CACL6F,EAAGA,EAAIhL,KAAK2U,IAAIuuD,GAAaC,EAC7Bl4D,EAAGA,EAAIjL,KAAK0T,IAAIwvD,GAAaC,K,sCAGjBnoB,GACd,OAAO59C,KAAKwvD,eAAe5R,K,2BAExBpzB,GAAK,IACDtd,EAA0BlN,KAA1BkN,QAASirC,EAAiBn4C,KAAjBm4C,cACVpwC,GAAUmF,EAAQnF,QAAU,GAAK,EACjCywC,GAAWtrC,EAAQsrC,SAAW,GAAK,EACnC4E,EAAWlwC,EAAQkwC,SAGzB,GAFAp9C,KAAK+iE,YAAuC,UAAxB71D,EAAQ2tC,YAA2B,IAAO,EAC9D76C,KAAKolE,YAAcjtB,EAAgBjpC,EAAMtM,KAAKuN,MAAMgoC,EAAgBjpC,GAAO,IACrD,IAAlBipC,GAAuBn4C,KAAKg4C,YAAc,GAAKh4C,KAAKi4C,YAAc,GAAtE,CAGAztB,EAAI0C,OACJ,IAAI84C,EAAe,EACnB,GAAIj+D,EAAQ,CACVi+D,EAAej+D,EAAS,EACxB,IAAM+9D,GAAa9lE,KAAKk5C,WAAal5C,KAAKm5C,UAAY,EACtD3uB,EAAImE,UAAU/rB,KAAK2U,IAAIuuD,GAAaE,EAAcpjE,KAAK0T,IAAIwvD,GAAaE,GACpEhmE,KAAKm4C,eAAiBlpC,IACxB+2D,EAAej+D,GAGnByiB,EAAIoH,UAAY1kB,EAAQsc,gBACxBgB,EAAI6G,YAAcnkB,EAAQuc,YAC1B,IAAM0vB,EAvIV,SAAiB3uB,EAAKgR,EAASzzB,EAAQywC,EAAS4E,GAAU,IACjDgoB,EAA0C5pC,EAA1C4pC,YAAalsB,EAA6B1d,EAA7B0d,WAAYf,EAAiB3c,EAAjB2c,cAC5BgB,EAAW3d,EAAQ2d,SACvB,GAAIisB,EAAa,CACftB,GAAQt5C,EAAKgR,EAASzzB,EAAQywC,EAASU,EAAahqC,EAAKkuC,GACzD,IAAK,IAAIh/C,EAAI,EAAGA,EAAIgnE,IAAehnE,EACjCosB,EAAI6E,OAED/e,MAAM6nC,KACTgB,EAAWD,EAAaf,EAAgBjpC,EACpCipC,EAAgBjpC,IAAQ,IAC1BiqC,GAAYjqC,IAMlB,OAFA40D,GAAQt5C,EAAKgR,EAASzzB,EAAQywC,EAASW,EAAUiE,GACjD5yB,EAAI6E,OACG8pB,EAsHY8sB,CAAQz7C,EAAKxqB,KAAMgmE,EAAcxtB,EAAS4E,GAC3DoD,GAAWh2B,EAAKxqB,KAAMgmE,EAAcxtB,EAASW,EAAUiE,GACvD5yB,EAAI8C,e,GA5EiBqwB,IA+FzB,SAASuoB,GAAS17C,EAAKtd,GAA0B,IAAjBkd,EAAiB,uDAATld,EACtCsd,EAAI27C,QAAU76D,EAAe8e,EAAM4Y,eAAgB91B,EAAQ81B,gBAC3DxY,EAAIwgC,YAAY1/C,EAAe8e,EAAM6Y,WAAY/1B,EAAQ+1B,aACzDzY,EAAIygC,eAAiB3/C,EAAe8e,EAAM8Y,iBAAkBh2B,EAAQg2B,kBACpE1Y,EAAI26C,SAAW75D,EAAe8e,EAAM+Y,gBAAiBj2B,EAAQi2B,iBAC7D3Y,EAAI8G,UAAYhmB,EAAe8e,EAAMkF,YAAapiB,EAAQoiB,aAC1D9E,EAAI6G,YAAc/lB,EAAe8e,EAAMX,YAAavc,EAAQuc,aAE9D,SAASyF,GAAO1E,EAAK4F,EAAUlyB,GAC7BssB,EAAI0E,OAAOhxB,EAAO0P,EAAG1P,EAAO2P,GAW9B,SAASu4D,GAASxxD,EAAQusB,GAAsB,IAAbovB,EAAa,uDAAJ,GACpCx7C,EAAQH,EAAOvW,OADyB,EAEekyD,EAAtDt+C,MAAOo0D,OAFgC,MAElB,EAFkB,IAEe9V,EAA9Br+C,IAAKo0D,OAFU,MAEEvxD,EAAQ,EAFV,EAGhCwxD,EAAiCplC,EAAxClvB,MAA0Bu0D,EAAcrlC,EAAnBjvB,IACtBD,EAAQrP,KAAK+E,IAAI0+D,EAAaE,GAC9Br0D,EAAMtP,KAAKkF,IAAIw+D,EAAWE,GAC1BC,EAAUJ,EAAcE,GAAgBD,EAAYC,GAAgBF,EAAcG,GAAcF,EAAYE,EAClH,MAAO,CACLzxD,QACA9C,QACAgoB,KAAMkH,EAAQlH,KACd5tB,KAAM6F,EAAMD,IAAUw0D,EAAU1xD,EAAQ7C,EAAMD,EAAQC,EAAMD,GAGhE,SAASy0D,GAAYl8C,EAAKuG,EAAMoQ,EAASovB,GAAQ,IAK3CnyD,EAAGqxB,EAAO8K,EAJP3lB,EAAmBmc,EAAnBnc,OAAQ1H,EAAW6jB,EAAX7jB,QADgC,EAEZk5D,GAASxxD,EAAQusB,EAASovB,GAAtDx7C,EAFwC,EAExCA,MAAO9C,EAFiC,EAEjCA,MAAOgoB,EAF0B,EAE1BA,KAAM5tB,EAFoB,EAEpBA,KACrBs6D,EA1BR,SAAuBz5D,GACrB,OAAIA,EAAQ05D,QACHz2C,GAELjjB,EAAQstB,SAA8C,aAAnCttB,EAAQktB,uBACtB7J,GAEFrB,GAmBY23C,CAAc35D,GAHc,EAIlBqjD,GAAU,GAJQ,IAI1Cxe,YAJ0C,SAI7BhmC,EAJ6B,EAI7BA,QAElB,IAAK3N,EAAI,EAAGA,GAAKiO,IAAQjO,GACvBqxB,EAAQ7a,GAAQ3C,GAASlG,EAAUM,EAAOjO,EAAIA,IAAM2W,IAC1CkjB,OAEC8Z,GACTvnB,EAAIyE,OAAOQ,EAAM7hB,EAAG6hB,EAAM5hB,GAC1BkkC,GAAO,GAEP40B,EAAWn8C,EAAK+P,EAAM9K,EAAO1jB,EAASmB,EAAQ05D,SAEhDrsC,EAAO9K,GAMT,OAJIwK,GAEF0sC,EAAWn8C,EAAK+P,EADhB9K,EAAQ7a,GAAQ3C,GAASlG,EAAUM,EAAO,IAAM0I,GACnBhJ,EAASmB,EAAQ05D,WAEvC3sC,EAEX,SAAS6sC,GAAgBt8C,EAAKuG,EAAMoQ,EAASovB,GAC3C,IAKInyD,EAAGqxB,EAAOs3C,EAAOltB,EAAMF,EAAMqtB,EAL3BpyD,EAASmc,EAAKnc,OAD+B,EAEtBwxD,GAASxxD,EAAQusB,EAASovB,GAAhDx7C,EAF4C,EAE5CA,MAAO9C,EAFqC,EAErCA,MAAO5F,EAF8B,EAE9BA,KAF8B,EAGpBkkD,GAAU,GAHU,IAG5Cxe,YAH4C,SAG/BhmC,EAH+B,EAG/BA,QAChBk7D,EAAO,EACPC,EAAS,EAEPC,EAAa,SAAC16D,GAAD,OAAYwF,GAASlG,EAAUM,EAAOI,EAAQA,IAAUsI,GACrEqyD,EAAQ,WACRvtB,IAASF,IACXnvB,EAAI0E,OAAO+3C,EAAMttB,GACjBnvB,EAAI0E,OAAO+3C,EAAMptB,GACjBrvB,EAAI0E,OAAO+3C,EAAMD,KAOrB,IAJIj1B,IACFtiB,EAAQ7a,EAAOuyD,EAAW,IAC1B38C,EAAIyE,OAAOQ,EAAM7hB,EAAG6hB,EAAM5hB,IAEvBzP,EAAI,EAAGA,GAAKiO,IAAQjO,EAEvB,KADAqxB,EAAQ7a,EAAOuyD,EAAW/oE,KAChB65B,KAAV,CAGA,IAAMrqB,EAAI6hB,EAAM7hB,EACVC,EAAI4hB,EAAM5hB,EACVw5D,EAAa,EAAJz5D,EACXy5D,IAAWN,GACTl5D,EAAIgsC,EACNA,EAAOhsC,EACEA,EAAI8rC,IACbA,EAAO9rC,GAETo5D,GAAQC,EAASD,EAAOr5D,KAAOs5D,IAE/BE,IACA58C,EAAI0E,OAAOthB,EAAGC,GACdk5D,EAAQM,EACRH,EAAS,EACTrtB,EAAOF,EAAO9rC,GAEhBm5D,EAAQn5D,EAEVu5D,IAEF,SAASE,GAAkBv2C,GACzB,IAAMC,EAAOD,EAAK7jB,QACZ+1B,EAAajS,EAAKiS,YAAcjS,EAAKiS,WAAW5kC,OAEtD,OADqB0yB,EAAK2qB,aAAe3qB,EAAKsV,QAAUrV,EAAKwJ,SAA2C,aAAhCxJ,EAAKoJ,yBAA0CpJ,EAAK41C,UAAY3jC,EACnH6jC,GAAkBJ,GA3HzClB,GAAW36D,GAAK,MAChB26D,GAAWn8C,SAAW,CACpBwxB,YAAa,SACbpxB,YAAa,OACb0Z,qBAAiB7hC,EACjB6hE,aAAc,EACd7zC,YAAa,EACbvnB,OAAQ,EACRywC,QAAS,EACThnC,WAAOlQ,EACP87C,UAAU,GAEZooB,GAAWznB,cAAgB,CACzBv0B,gBAAiB,mBAgJnB,IAAM+9C,GAA8B,oBAAXC,OACzB,SAASljC,GAAK9Z,EAAKuG,EAAM9e,EAAO8C,GAC1BwyD,KAAcx2C,EAAK7jB,QAAQi0B,QAzBjC,SAA6B3W,EAAKuG,EAAM9e,EAAO8C,GAC7C,IAAI0yD,EAAO12C,EAAK22C,MACXD,IACHA,EAAO12C,EAAK22C,MAAQ,IAAIF,OACpBz2C,EAAK02C,KAAKA,EAAMx1D,EAAO8C,IACzB0yD,EAAKz4C,aAGTk3C,GAAS17C,EAAKuG,EAAK7jB,SACnBsd,EAAI+E,OAAOk4C,GAiBTE,CAAoBn9C,EAAKuG,EAAM9e,EAAO8C,GAf1C,SAA0ByV,EAAKuG,EAAM9e,EAAO8C,GAAO,MAC1C+sB,EAAqB/Q,EAArB+Q,SAAU50B,EAAW6jB,EAAX7jB,QACX06D,EAAgBN,GAAkBv2C,GAFS,cAG3B+Q,GAH2B,IAGjD,2BAAgC,KAArBX,EAAqB,QAC9B+kC,GAAS17C,EAAKtd,EAASi0B,EAAQ/W,OAC/BI,EAAIqE,YACA+4C,EAAcp9C,EAAKuG,EAAMoQ,EAAS,CAAClvB,QAAOC,IAAKD,EAAQ8C,EAAQ,KACjEyV,EAAIwE,YAENxE,EAAI+E,UAT2C,+BAiB/Cs4C,CAAiBr9C,EAAKuG,EAAM9e,EAAO8C,G,IAGjC+yD,G,kDACJ,WAAYz/D,GAAK,kCACf,gBACKszC,UAAW,EAChB,EAAKzuC,aAAU5L,EACf,EAAK6gC,YAAS7gC,EACd,EAAK+kC,WAAQ/kC,EACb,EAAKk8C,eAAYl8C,EACjB,EAAKomE,WAAQpmE,EACb,EAAKymE,aAAUzmE,EACf,EAAK0mE,eAAY1mE,EACjB,EAAKo6C,YAAa,EAClB,EAAKusB,gBAAiB,EACtB,EAAK3lC,mBAAgBhhC,EACjB+G,GACF3J,OAAOwX,OAAPxX,OAAA,IAAAA,CAAA,GAAoB2J,GAdP,E,gEAiBG2nC,EAAWrlB,GAC7B,IAAMzd,EAAUlN,KAAKkN,QACrB,IAAKA,EAAQstB,SAA8C,aAAnCttB,EAAQktB,0BAA2CltB,EAAQ05D,UAAY5mE,KAAKioE,eAAgB,CAClH,IAAMhuC,EAAO/sB,EAAQitB,SAAWn6B,KAAKqmC,MAAQrmC,KAAKw9C,UAClDxjB,GAA2Bh6B,KAAK+nE,QAAS76D,EAAS8iC,EAAW/V,EAAMtP,GACnE3qB,KAAKioE,gBAAiB,K,8BAgBxB,IAAMnmC,EAAW9hC,KAAK8hC,SAChBltB,EAAS5U,KAAK4U,OACpB,OAAOktB,EAASzjC,QAAUuW,EAAOktB,EAAS,GAAG7vB,S,6BAG7C,IAAM6vB,EAAW9hC,KAAK8hC,SAChBltB,EAAS5U,KAAK4U,OACdG,EAAQ+sB,EAASzjC,OACvB,OAAO0W,GAASH,EAAOktB,EAAS/sB,EAAQ,GAAG7C,O,kCAEjCud,EAAOrlB,GACjB,IAAM8C,EAAUlN,KAAKkN,QACfxN,EAAQ+vB,EAAMrlB,GACdwK,EAAS5U,KAAK4U,OACdktB,EAAWD,GAAe7hC,KAAM,CAACoK,WAAU6H,MAAOvS,EAAOwS,IAAKxS,IACpE,GAAKoiC,EAASzjC,OAAd,CAGA,IAEID,EAAGiO,EAFDxM,EAAS,GACTqoE,EAlGV,SAAiCh7D,GAC/B,OAAIA,EAAQ05D,QACH/nC,GAEL3xB,EAAQstB,SAA8C,aAAnCttB,EAAQktB,uBACtB0E,GAEFF,GA2FgBupC,CAAwBj7D,GAE7C,IAAK9O,EAAI,EAAGiO,EAAOy1B,EAASzjC,OAAQD,EAAIiO,IAAQjO,EAAG,OAC5B0jC,EAAS1jC,GAAvB6T,EAD0C,EAC1CA,MAAOC,EADmC,EACnCA,IACRqJ,EAAK3G,EAAO3C,GACZuJ,EAAK5G,EAAO1C,GAClB,GAAIqJ,IAAOC,EAAX,CAIA,IACM4sD,EAAeF,EAAa3sD,EAAIC,EAD5B5Y,KAAK4N,KAAK9Q,EAAQ6b,EAAGnR,KAAcoR,EAAGpR,GAAYmR,EAAGnR,KAClB8C,EAAQ05D,SACrDwB,EAAah+D,GAAYqlB,EAAMrlB,GAC/BvK,EAAOwF,KAAK+iE,QANVvoE,EAAOwF,KAAKkW,GAQhB,OAAyB,IAAlB1b,EAAOxB,OAAewB,EAAO,GAAKA,K,kCAE/B2qB,EAAK2W,EAASovB,GAExB,OADsB+W,GAAkBtnE,KACjC4nE,CAAcp9C,EAAKxqB,KAAMmhC,EAASovB,K,2BAEtC/lC,EAAKvY,EAAO8C,GACf,IAAM+sB,EAAW9hC,KAAK8hC,SAChB8lC,EAAgBN,GAAkBtnE,MACpCi6B,EAAOj6B,KAAKqmC,MAChBp0B,EAAQA,GAAS,EACjB8C,EAAQA,GAAU/U,KAAK4U,OAAOvW,OAAS4T,EALjB,oBAMA6vB,GANA,IAMtB,2BAAgC,CAC9B7H,GAAQ2tC,EAAcp9C,EAAKxqB,KADG,QACY,CAACiS,QAAOC,IAAKD,EAAQ8C,EAAQ,KAPnD,8BAStB,QAASklB,I,2BAENzP,EAAKwlB,EAAW/9B,EAAO8C,GAC1B,IAAM7H,EAAUlN,KAAKkN,SAAW,IACjBlN,KAAK4U,QAAU,IACnBvW,QAAU6O,EAAQoiB,cAC3B9E,EAAI0C,OACJoX,GAAK9Z,EAAKxqB,KAAMiS,EAAO8C,GACvByV,EAAI8C,WAEFttB,KAAK27C,WACP37C,KAAKioE,gBAAiB,EACtBjoE,KAAK0nE,WAAQpmE,K,2BA1ENsT,GACT5U,KAAK+nE,QAAUnzD,SACR5U,KAAKgoE,iBACLhoE,KAAK0nE,MACZ1nE,KAAKioE,gBAAiB,G,eAGtB,OAAOjoE,KAAK+nE,U,+BAGZ,OAAO/nE,KAAKgoE,YAAchoE,KAAKgoE,UD/iInC,SAA0Bj3C,EAAMkR,GAC9B,IAAMrtB,EAASmc,EAAKnc,OACdulB,EAAWpJ,EAAK7jB,QAAQitB,SACxBplB,EAAQH,EAAOvW,OACrB,IAAK0W,EACH,MAAO,GAET,IAAMklB,IAASlJ,EAAKsV,MAP0B,EAhDhD,SAAyBzxB,EAAQG,EAAOklB,EAAME,GAC5C,IAAIloB,EAAQ,EACRC,EAAM6C,EAAQ,EAClB,GAAIklB,IAASE,EACX,KAAOloB,EAAQ8C,IAAUH,EAAO3C,GAAOgmB,MACrChmB,IAGJ,KAAOA,EAAQ8C,GAASH,EAAO3C,GAAOgmB,MACpChmB,IAMF,IAJAA,GAAS8C,EACLklB,IACF/nB,GAAOD,GAEFC,EAAMD,GAAS2C,EAAO1C,EAAM6C,GAAOkjB,MACxC/lB,IAGF,MAAO,CAACD,QAAOC,IADfA,GAAO6C,GAsCcszD,CAAgBzzD,EAAQG,EAAOklB,EAAME,GAAnDloB,EARuC,EAQvCA,MAAOC,EARgC,EAQhCA,IACd,OACS8vB,GAAcjR,GADN,IAAboJ,EACyB,CAAC,CAACloB,QAAOC,MAAK+nB,SArC7C,SAAuBrlB,EAAQ3C,EAAOtK,EAAKsyB,GACzC,IAII/nB,EAJE6C,EAAQH,EAAOvW,OACfwB,EAAS,GACXoT,EAAOhB,EACPsoB,EAAO3lB,EAAO3C,GAElB,IAAKC,EAAMD,EAAQ,EAAGC,GAAOvK,IAAOuK,EAAK,CACvC,IAAMkzB,EAAMxwB,EAAO1C,EAAM6C,GACrBqwB,EAAInN,MAAQmN,EAAI4W,KACbzhB,EAAKtC,OACRgC,GAAO,EACPp6B,EAAOwF,KAAK,CAAC4M,MAAOA,EAAQ8C,EAAO7C,KAAMA,EAAM,GAAK6C,EAAOklB,SAC3DhoB,EAAQgB,EAAOmyB,EAAI4W,KAAO9pC,EAAM,OAGlCe,EAAOf,EACHqoB,EAAKtC,OACPhmB,EAAQC,IAGZqoB,EAAO6K,EAKT,OAHa,OAATnyB,GACFpT,EAAOwF,KAAK,CAAC4M,MAAOA,EAAQ8C,EAAO7C,IAAKe,EAAO8B,EAAOklB,SAEjDp6B,EAgBoByoE,CAAc1zD,EAAQ3C,EAFrCC,EAAMD,EAAQC,EAAM6C,EAAQ7C,IACjB6e,EAAKysB,WAAuB,IAAVvrC,GAAeC,IAAQ6C,EAAQ,GAHrBH,EAAQqtB,GCqiIdsmC,CAAiBvoE,KAAMA,KAAKkN,QAAQi0B,c,GApCzDwc,IA+H1B,SAAS6qB,GAAU/pC,EAAI5C,EAAK1mB,EAAMyoC,GAChC,IAAM1wC,EAAUuxB,EAAGvxB,QACJxN,EAAS++B,EAAGof,SAAS,CAAC1oC,GAAOyoC,GAApCzoC,GACR,OAAQvS,KAAK4N,IAAIqrB,EAAMn8B,GAASwN,EAAQuhB,OAASvhB,EAAQu7D,UA1B3DX,GAAYj9D,GAAK,OACjBi9D,GAAYz+C,SAAW,CACrB2Z,eAAgB,OAChBC,WAAY,GACZC,iBAAkB,EAClBC,gBAAiB,QACjB7T,YAAa,EACbmL,iBAAiB,EACjBL,uBAAwB,UACxB/K,MAAM,EACN8K,UAAU,EACVysC,SAAS,EACTpsC,QAAS,GAEXstC,GAAY/pB,cAAgB,CAC1Bv0B,gBAAiB,kBACjBC,YAAa,eAEfq+C,GAAY/+C,YAAc,CACxBoD,aAAa,EACbE,WAAY,SAACV,GAAD,MAAmB,eAATA,GAAkC,SAATA,I,IAQ3C+8C,G,kDACJ,WAAYrgE,GAAK,kCACf,gBACK6E,aAAU5L,EACf,EAAKw2B,YAASx2B,EACd,EAAK22B,UAAO32B,EACZ,EAAK06C,UAAO16C,EACR+G,GACF3J,OAAOwX,OAAPxX,OAAA,IAAAA,CAAA,GAAoB2J,GAPP,E,oDAUTsgE,EAAQC,EAAQhrB,GACtB,IAAM1wC,EAAUlN,KAAKkN,QADmB,EAEzBlN,KAAK69C,SAAS,CAAC,IAAK,KAAMD,GAAlChwC,EAFiC,EAEjCA,EAAGC,EAF8B,EAE9BA,EACV,OAASjL,KAAKsN,IAAIy4D,EAAS/6D,EAAG,GAAKhL,KAAKsN,IAAI04D,EAAS/6D,EAAG,GAAMjL,KAAKsN,IAAIhD,EAAQu7D,UAAYv7D,EAAQuhB,OAAQ,K,+BAEpGk6C,EAAQ/qB,GACf,OAAO4qB,GAAUxoE,KAAM2oE,EAAQ,IAAK/qB,K,+BAE7BgrB,EAAQhrB,GACf,OAAO4qB,GAAUxoE,KAAM4oE,EAAQ,IAAKhrB,K,qCAEvBA,GAAkB,MAChB59C,KAAK69C,SAAS,CAAC,IAAK,KAAMD,GACzC,MAAO,CAAChwC,EAFuB,EACxBA,EACIC,EAFoB,EACrBA,K,2BAGPX,GAEH,IAAIuhB,GADJvhB,EAAUA,GAAWlN,KAAKkN,SAAW,IAChBuhB,QAAU,EAG/B,OAAgC,IAFhCA,EAAS7rB,KAAK+E,IAAI8mB,EAAQA,GAAUvhB,EAAQ27D,aAAe,KACvCp6C,GAAUvhB,EAAQoiB,aAAe,M,2BAGlD9E,EAAKkF,GACR,IAAMxiB,EAAUlN,KAAKkN,QACjBlN,KAAKi4B,MAAQ/qB,EAAQuhB,OAAS,KAAQe,GAAexvB,KAAM0vB,EAAM1vB,KAAK8O,KAAK5B,GAAW,KAG1Fsd,EAAI6G,YAAcnkB,EAAQuc,YAC1Be,EAAI8G,UAAYpkB,EAAQoiB,YACxB9E,EAAIoH,UAAY1kB,EAAQsc,gBACxB0E,GAAU1D,EAAKtd,EAASlN,KAAK4N,EAAG5N,KAAK6N,M,iCAGrC,IAAMX,EAAUlN,KAAKkN,SAAW,GAChC,OAAOA,EAAQuhB,OAASvhB,EAAQu7D,c,GA7CT9qB,IA+D3B,SAASmrB,GAAaC,EAAKnrB,GAAkB,IAEvChuB,EAAMC,EAAOC,EAAKC,EAAQi5C,EAFa,EACPD,EAAIlrB,SAAS,CAAC,IAAK,IAAK,OAAQ,QAAS,UAAWD,GAAjFhwC,EADoC,EACpCA,EAAGC,EADiC,EACjCA,EAAGtD,EAD8B,EAC9BA,KAAMsiB,EADwB,EACxBA,MAAOoB,EADiB,EACjBA,OAe1B,OAbI86C,EAAIh1B,YACNi1B,EAAO/6C,EAAS,EAChB2B,EAAOhtB,KAAKkF,IAAI8F,EAAGrD,GACnBslB,EAAQjtB,KAAK+E,IAAIiG,EAAGrD,GACpBulB,EAAMjiB,EAAIm7D,EACVj5C,EAASliB,EAAIm7D,IAGbp5C,EAAOhiB,GADPo7D,EAAOn8C,EAAQ,GAEfgD,EAAQjiB,EAAIo7D,EACZl5C,EAAMltB,KAAKkF,IAAI+F,EAAGtD,GAClBwlB,EAASntB,KAAK+E,IAAIkG,EAAGtD,IAEhB,CAACqlB,OAAME,MAAKD,QAAOE,UAE5B,SAASk5C,GAAYhxC,EAAMv4B,EAAOoI,EAAKH,GACrC,OAAOswB,EAAO,EAAIzlB,GAAY9S,EAAOoI,EAAKH,GA2B5C,SAASuhE,GAAcH,GACrB,IAAM3nC,EAAS0nC,GAAaC,GACtBl8C,EAAQuU,EAAOvR,MAAQuR,EAAOxR,KAC9B3B,EAASmT,EAAOrR,OAASqR,EAAOtR,IAChCmsB,EA7BR,SAA0B8sB,EAAKI,EAAMC,GACnC,IAAM1pE,EAAQqpE,EAAI77D,QAAQoiB,YACpB2I,EAAO8wC,EAAIj1B,cACXtyC,EAAI+xB,GAAO7zB,GACjB,MAAO,CACL0W,EAAG6yD,GAAYhxC,EAAKnI,IAAKtuB,EAAEsuB,IAAK,EAAGs5C,GACnCpkE,EAAGikE,GAAYhxC,EAAKpI,MAAOruB,EAAEquB,MAAO,EAAGs5C,GACvCt6D,EAAGo6D,GAAYhxC,EAAKlI,OAAQvuB,EAAEuuB,OAAQ,EAAGq5C,GACzCxwD,EAAGqwD,GAAYhxC,EAAKrI,KAAMpuB,EAAEouB,KAAM,EAAGu5C,IAqBxBE,CAAiBN,EAAKl8C,EAAQ,EAAGoB,EAAS,GACnDQ,EAnBR,SAA2Bs6C,EAAKI,EAAMC,GAAM,IACnCn1B,EAAsB80B,EAAIlrB,SAAS,CAAC,uBAApC5J,mBACDv0C,EAAQqpE,EAAI77D,QAAQi2D,aACpB3hE,EAAIgyB,GAAc9zB,GAClB4pE,EAAO1mE,KAAKkF,IAAIqhE,EAAMC,GACtBnxC,EAAO8wC,EAAIj1B,cACXy1B,EAAet1B,GAAsBjpC,EAAStL,GACpD,MAAO,CACL+yB,QAASw2C,IAAaM,GAAgBtxC,EAAKnI,KAAOmI,EAAKrI,KAAMpuB,EAAEixB,QAAS,EAAG62C,GAC3E12C,SAAUq2C,IAAaM,GAAgBtxC,EAAKnI,KAAOmI,EAAKpI,MAAOruB,EAAEoxB,SAAU,EAAG02C,GAC9E52C,WAAYu2C,IAAaM,GAAgBtxC,EAAKlI,QAAUkI,EAAKrI,KAAMpuB,EAAEkxB,WAAY,EAAG42C,GACpF32C,YAAas2C,IAAaM,GAAgBtxC,EAAKlI,QAAUkI,EAAKpI,MAAOruB,EAAEmxB,YAAa,EAAG22C,IAQ1EE,CAAkBT,EAAKl8C,EAAQ,EAAGoB,EAAS,GAC1D,MAAO,CACLw7C,MAAO,CACL77D,EAAGwzB,EAAOxR,KACV/hB,EAAGuzB,EAAOtR,IACVhV,EAAG+R,EACHhU,EAAGoV,EACHQ,UAEFy2C,MAAO,CACLt3D,EAAGwzB,EAAOxR,KAAOqsB,EAAOrjC,EACxB/K,EAAGuzB,EAAOtR,IAAMmsB,EAAO7lC,EACvB0E,EAAG+R,EAAQovB,EAAOrjC,EAAIqjC,EAAOj3C,EAC7B6T,EAAGoV,EAASguB,EAAO7lC,EAAI6lC,EAAOptC,EAC9B4f,OAAQ,CACNgE,QAAS7vB,KAAK+E,IAAI,EAAG8mB,EAAOgE,QAAU7vB,KAAK+E,IAAIs0C,EAAO7lC,EAAG6lC,EAAOrjC,IAChEga,SAAUhwB,KAAK+E,IAAI,EAAG8mB,EAAOmE,SAAWhwB,KAAK+E,IAAIs0C,EAAO7lC,EAAG6lC,EAAOj3C,IAClE0tB,WAAY9vB,KAAK+E,IAAI,EAAG8mB,EAAOiE,WAAa9vB,KAAK+E,IAAIs0C,EAAOptC,EAAGotC,EAAOrjC,IACtE+Z,YAAa/vB,KAAK+E,IAAI,EAAG8mB,EAAOkE,YAAc/vB,KAAK+E,IAAIs0C,EAAOptC,EAAGotC,EAAOj3C,OAKhF,SAAS+pD,GAAQga,EAAKn7D,EAAGC,EAAG+vC,GAC1B,IAAM8rB,EAAc,OAAN97D,EACR+7D,EAAc,OAAN97D,EAERuzB,EAAS2nC,KADEW,GAASC,IACSb,GAAaC,EAAKnrB,GACrD,OAAOxc,IACHsoC,GAASj3D,GAAW7E,EAAGwzB,EAAOxR,KAAMwR,EAAOvR,UAC3C85C,GAASl3D,GAAW5E,EAAGuzB,EAAOtR,IAAKsR,EAAOrR,SAKhD,SAAS65C,GAAkBp/C,EAAK4E,GAC9B5E,EAAI4E,KAAKA,EAAKxhB,EAAGwhB,EAAKvhB,EAAGuhB,EAAKtU,EAAGsU,EAAKvW,GAExC,SAASgxD,GAAYz6C,EAAM6+B,GAAsB,IAAd6b,EAAc,uDAAJ,GACrCl8D,EAAIwhB,EAAKxhB,IAAMk8D,EAAQl8D,GAAKqgD,EAAS,EACrCpgD,EAAIuhB,EAAKvhB,IAAMi8D,EAAQj8D,GAAKogD,EAAS,EACrCnzC,GAAKsU,EAAKxhB,EAAIwhB,EAAKtU,IAAMgvD,EAAQl8D,EAAIk8D,EAAQhvD,EAAImzC,EAAS,GAAKrgD,EAC/DiL,GAAKuW,EAAKvhB,EAAIuhB,EAAKvW,IAAMixD,EAAQj8D,EAAIi8D,EAAQjxD,EAAIo1C,EAAS,GAAKpgD,EACrE,MAAO,CACLD,EAAGwhB,EAAKxhB,EAAIA,EACZC,EAAGuhB,EAAKvhB,EAAIA,EACZiN,EAAGsU,EAAKtU,EAAIA,EACZjC,EAAGuW,EAAKvW,EAAIA,EACZ4V,OAAQW,EAAKX,QAlHjBi6C,GAAa79D,GAAK,QAClB69D,GAAar/C,SAAW,CACtBiG,YAAa,EACbm5C,UAAW,EACX3tB,iBAAkB,EAClB+tB,YAAa,EACbt6C,WAAY,SACZE,OAAQ,EACRD,SAAU,GAEZk6C,GAAa3qB,cAAgB,CAC3Bv0B,gBAAiB,kBACjBC,YAAa,e,IAyGTsgD,G,kDACJ,WAAY1hE,GAAK,kCACf,gBACK6E,aAAU5L,EACf,EAAKyyC,gBAAazyC,EAClB,EAAKiJ,UAAOjJ,EACZ,EAAKurB,WAAQvrB,EACb,EAAK2sB,YAAS3sB,EACd,EAAKizC,mBAAgBjzC,EACjB+G,GACF3J,OAAOwX,OAAPxX,OAAA,IAAAA,CAAA,GAAoB2J,GATP,E,iDAYZmiB,GAAK,IAhCOiE,EAiCR8lB,EAA0Dv0C,KAA1Du0C,cADC,EACyDv0C,KAA3CkN,QAAUuc,EADxB,EACwBA,YAAaD,EADrC,EACqCA,gBADrC,EAEe0/C,GAAclpE,MAA9BklE,EAFC,EAEDA,MAAOuE,EAFN,EAEMA,MACRO,GAnCSv7C,EAmCeg7C,EAAMh7C,QAlCxBgE,SAAWhE,EAAOmE,UAAYnE,EAAOiE,YAAcjE,EAAOkE,YAkCxBH,GAAqBo3C,GACnEp/C,EAAI0C,OACAu8C,EAAM3uD,IAAMoqD,EAAMpqD,GAAK2uD,EAAM5wD,IAAMqsD,EAAMrsD,IAC3C2R,EAAIqE,YACJm7C,EAAYx/C,EAAKq/C,GAAYJ,EAAOl1B,EAAe2wB,IACnD16C,EAAIyF,OACJ+5C,EAAYx/C,EAAKq/C,GAAY3E,GAAQ3wB,EAAek1B,IACpDj/C,EAAIoH,UAAYnI,EAChBe,EAAI6E,KAAK,YAEX7E,EAAIqE,YACJm7C,EAAYx/C,EAAKq/C,GAAY3E,EAAO3wB,IACpC/pB,EAAIoH,UAAYpI,EAChBgB,EAAI6E,OACJ7E,EAAI8C,Y,8BAEEq7C,EAAQC,EAAQhrB,GACtB,OAAOmR,GAAQ/uD,KAAM2oE,EAAQC,EAAQhrB,K,+BAE9B+qB,EAAQ/qB,GACf,OAAOmR,GAAQ/uD,KAAM2oE,EAAQ,KAAM/qB,K,+BAE5BgrB,EAAQhrB,GACf,OAAOmR,GAAQ/uD,KAAM,KAAM4oE,EAAQhrB,K,qCAEtBA,GAAkB,MACE59C,KAAK69C,SAAS,CAAC,IAAK,IAAK,OAAQ,cAAeD,GAA1EhwC,EADwB,EACxBA,EAAGC,EADqB,EACrBA,EAAGtD,EADkB,EAClBA,KAAMwpC,EADY,EACZA,WACnB,MAAO,CACLnmC,EAAGmmC,GAAcnmC,EAAIrD,GAAQ,EAAIqD,EACjCC,EAAGkmC,EAAalmC,GAAKA,EAAItD,GAAQ,K,+BAG5B4K,GACP,MAAgB,MAATA,EAAenV,KAAK6sB,MAAQ,EAAI7sB,KAAKiuB,OAAS,M,GAjDhC0vB,IAoDzBosB,GAAWl/D,GAAK,MAChBk/D,GAAW1gD,SAAW,CACpByqB,cAAe,QACfxkB,YAAa,EACb6zC,aAAc,EACd5uB,cAAe,OACfhmB,gBAAYjtB,GAEdyoE,GAAWhsB,cAAgB,CACzBv0B,gBAAiB,kBACjBC,YAAa,eA4oBf,IAwEMwgD,GAAa,SAACC,EAAWje,GAAa,MACQie,EAA7CC,iBADqC,MACzBle,EADyB,IACQie,EAAvBE,gBADe,MACJne,EADI,EAM1C,OAJIie,EAAUG,gBACZF,EAAYvnE,KAAKkF,IAAIqiE,EAAWle,GAChCme,EAAWF,EAAUI,iBAAmB1nE,KAAKkF,IAAIsiE,EAAUne,IAEtD,CACLme,WACAD,YACAI,WAAY3nE,KAAK+E,IAAIskD,EAAUke,KAI7BK,G,kDACJ,WAAY5iC,GAAQ,kCAClB,gBACK6iC,QAAS,EACd,EAAKC,eAAiB,GACtB,EAAKC,aAAe,KACpB,EAAKC,cAAe,EACpB,EAAK/gD,MAAQ+d,EAAO/d,MACpB,EAAK3c,QAAU06B,EAAO16B,QACtB,EAAKsd,IAAMod,EAAOpd,IAClB,EAAKqgD,iBAAcvpE,EACnB,EAAKwpE,iBAAcxpE,EACnB,EAAKypE,gBAAazpE,EAClB,EAAK87B,eAAY97B,EACjB,EAAKkwB,cAAWlwB,EAChB,EAAKwuB,SAAMxuB,EACX,EAAKyuB,YAASzuB,EACd,EAAKsuB,UAAOtuB,EACZ,EAAKuuB,WAAQvuB,EACb,EAAK2sB,YAAS3sB,EACd,EAAKurB,WAAQvrB,EACb,EAAKmhD,cAAWnhD,EAChB,EAAKghD,cAAWhhD,EAChB,EAAKymB,YAASzmB,EACd,EAAKmmD,cAAWnmD,EAvBE,E,mDAyBbkwB,EAAU4L,EAAWD,GAC1Bn9B,KAAKwxB,SAAWA,EAChBxxB,KAAKo9B,UAAYA,EACjBp9B,KAAKyiD,SAAWtlB,EAChBn9B,KAAKqkD,gBACLrkD,KAAKgrE,cACLhrE,KAAKwlD,Q,sCAGDxlD,KAAK60C,gBACP70C,KAAK6sB,MAAQ7sB,KAAKwxB,SAClBxxB,KAAK4vB,KAAO5vB,KAAKyiD,SAAS7yB,KAC1B5vB,KAAK6vB,MAAQ7vB,KAAK6sB,QAElB7sB,KAAKiuB,OAASjuB,KAAKo9B,UACnBp9B,KAAK8vB,IAAM9vB,KAAKyiD,SAAS3yB,IACzB9vB,KAAK+vB,OAAS/vB,KAAKiuB,U,oCAGT,WACNi8C,EAAYlqE,KAAKkN,QAAQqhC,QAAU,GACrCs8B,EAAcl/D,EAASu+D,EAAUhvB,eAAgB,CAACl7C,KAAK6pB,OAAQ7pB,OAAS,GACxEkqE,EAAU5zC,SACZu0C,EAAcA,EAAYv0C,QAAO,SAACvnB,GAAD,OAAUm7D,EAAU5zC,OAAOvnB,EAAM,EAAK8a,MAAM1iB,UAE3E+iE,EAAUv3B,OACZk4B,EAAcA,EAAYl4B,MAAK,SAAC/jC,EAAGC,GAAJ,OAAUq7D,EAAUv3B,KAAK/jC,EAAGC,EAAG,EAAKgb,MAAM1iB,UAEvEnH,KAAKkN,QAAQnB,SACf8+D,EAAY9+D,UAEd/L,KAAK6qE,YAAcA,I,4BAEf,IACG39D,EAAgBlN,KAAhBkN,QAASsd,EAAOxqB,KAAPwqB,IAChB,GAAKtd,EAAQiwC,QAAb,CAIA,IAKItwB,EAAOoB,EALLi8C,EAAYh9D,EAAQqhC,OACpB08B,EAAYv3C,GAAOw2C,EAAUhgD,MAC7B+hC,EAAWgf,EAAUn8D,KACrBg4C,EAAc9mD,KAAKkrE,sBATrB,EAU2BjB,GAAWC,EAAWje,GAA9Cme,EAVH,EAUGA,SAAUG,EAVb,EAUaA,WAEjB//C,EAAIN,KAAO+gD,EAAUv+C,OACjB1sB,KAAK60C,gBACPhoB,EAAQ7sB,KAAKwxB,SACbvD,EAASjuB,KAAKmrE,SAASrkB,EAAamF,EAAUme,EAAUG,GAAc,KAEtEt8C,EAASjuB,KAAKo9B,UACdvQ,EAAQ7sB,KAAKorE,SAAStkB,EAAamF,EAAUme,EAAUG,GAAc,IAEvEvqE,KAAK6sB,MAAQjqB,KAAKkF,IAAI+kB,EAAO3f,EAAQskB,UAAYxxB,KAAKwxB,UACtDxxB,KAAKiuB,OAASrrB,KAAKkF,IAAImmB,EAAQ/gB,EAAQkwB,WAAap9B,KAAKo9B,gBAlBvDp9B,KAAK6sB,MAAQ7sB,KAAKiuB,OAAS,I,+BAoBtB64B,EAAamF,EAAUme,EAAUG,GAAY,IAC7C//C,EAA+CxqB,KAA/CwqB,IAAKgH,EAA0CxxB,KAA1CwxB,SAA6BqvB,EAAa7gD,KAAhCkN,QAAUqhC,OAASsS,QACnCwqB,EAAWrrE,KAAK0qE,eAAiB,GACjCK,EAAa/qE,KAAK+qE,WAAa,CAAC,GAChC1gD,EAAakgD,EAAa1pB,EAC5ByqB,EAAcxkB,EAClBt8B,EAAIqH,UAAY,OAChBrH,EAAIsH,aAAe,SACnB,IAAIy5C,GAAO,EACPz7C,GAAOzF,EAYX,OAXArqB,KAAK6qE,YAAYp3D,SAAQ,SAAC0nC,EAAY/8C,GACpC,IAAM+hC,EAAYiqC,EAAYne,EAAW,EAAKzhC,EAAIoC,YAAYuuB,EAAWrqB,MAAMjE,OACrE,IAANzuB,GAAW2sE,EAAWA,EAAW1sE,OAAS,GAAK8hC,EAAY,EAAI0gB,EAAUrvB,KAC3E85C,GAAejhD,EACf0gD,EAAWA,EAAW1sE,QAAUD,EAAI,EAAI,EAAI,IAAM,EAClD0xB,GAAOzF,EACPkhD,KAEFF,EAASjtE,GAAK,CAACwxB,KAAM,EAAGE,MAAKy7C,MAAK1+C,MAAOsT,EAAWlS,OAAQs8C,GAC5DQ,EAAWA,EAAW1sE,OAAS,IAAM8hC,EAAY0gB,KAE5CyqB,I,+BAEAxkB,EAAamF,EAAUme,EAAUG,GAAY,IAC7C//C,EAAgDxqB,KAAhDwqB,IAAK4S,EAA2Cp9B,KAA3Co9B,UAA8ByjB,EAAa7gD,KAAhCkN,QAAUqhC,OAASsS,QACpCwqB,EAAWrrE,KAAK0qE,eAAiB,GACjCI,EAAc9qE,KAAK8qE,YAAc,GACjCU,EAAcpuC,EAAY0pB,EAC5B2kB,EAAa5qB,EACb6qB,EAAkB,EAClBC,EAAmB,EACnB/7C,EAAO,EACPg8C,EAAM,EAgBV,OAfA5rE,KAAK6qE,YAAYp3D,SAAQ,SAAC0nC,EAAY/8C,GACpC,IAAM+hC,EAAYiqC,EAAYne,EAAW,EAAKzhC,EAAIoC,YAAYuuB,EAAWrqB,MAAMjE,MAC3EzuB,EAAI,GAAKutE,EAAmBpB,EAAa,EAAI1pB,EAAU2qB,IACzDC,GAAcC,EAAkB7qB,EAChCiqB,EAAYzlE,KAAK,CAACwnB,MAAO6+C,EAAiBz9C,OAAQ09C,IAClD/7C,GAAQ87C,EAAkB7qB,EAC1B+qB,IACAF,EAAkBC,EAAmB,GAEvCN,EAASjtE,GAAK,CAACwxB,OAAME,IAAK67C,EAAkBC,MAAK/+C,MAAOsT,EAAWlS,OAAQs8C,GAC3EmB,EAAkB9oE,KAAK+E,IAAI+jE,EAAiBvrC,GAC5CwrC,GAAoBpB,EAAa1pB,KAEnC4qB,GAAcC,EACdZ,EAAYzlE,KAAK,CAACwnB,MAAO6+C,EAAiBz9C,OAAQ09C,IAC3CF,I,uCAGP,GAAKzrE,KAAKkN,QAAQiwC,QAAlB,CAGA,IAAM2J,EAAc9mD,KAAKkrE,sBACFG,EAAsDrrE,KAAtE0qE,eALQ,EAK8D1qE,KAA5CkN,QAAUsH,EAL5B,EAK4BA,MAAgBqsC,EAL5C,EAKmCtS,OAASsS,QACrDgrB,EAAYhsC,GANH,EAKsDC,IAChC9/B,KAAK4vB,KAAM5vB,KAAK6sB,OACrD,GAAI7sB,KAAK60C,eAAgB,CACvB,IADuB,EACnB02B,EAAM,EACN37C,EAAOnb,GAAeD,EAAOxU,KAAK4vB,KAAOixB,EAAS7gD,KAAK6vB,MAAQ7vB,KAAK+qE,WAAWQ,IAF5D,cAGFF,GAHE,IAGvB,2BAA+B,KAApBS,EAAoB,QACzBP,IAAQO,EAAOP,MACjBA,EAAMO,EAAOP,IACb37C,EAAOnb,GAAeD,EAAOxU,KAAK4vB,KAAOixB,EAAS7gD,KAAK6vB,MAAQ7vB,KAAK+qE,WAAWQ,KAEjFO,EAAOh8C,KAAO9vB,KAAK8vB,IAAMg3B,EAAcjG,EACvCirB,EAAOl8C,KAAOi8C,EAAU3rC,WAAW2rC,EAAUj+D,EAAEgiB,GAAOk8C,EAAOj/C,OAC7D+C,GAAQk8C,EAAOj/C,MAAQg0B,GAVF,mCAYlB,CACL,IADK,EACD+qB,EAAM,EACN97C,EAAMrb,GAAeD,EAAOxU,KAAK8vB,IAAMg3B,EAAcjG,EAAS7gD,KAAK+vB,OAAS/vB,KAAK8qE,YAAYc,GAAK39C,QAFjG,cAGgBo9C,GAHhB,IAGL,2BAA+B,KAApBS,EAAoB,QACzBA,EAAOF,MAAQA,IACjBA,EAAME,EAAOF,IACb97C,EAAMrb,GAAeD,EAAOxU,KAAK8vB,IAAMg3B,EAAcjG,EAAS7gD,KAAK+vB,OAAS/vB,KAAK8qE,YAAYc,GAAK39C,SAEpG69C,EAAOh8C,IAAMA,EACbg8C,EAAOl8C,MAAQ5vB,KAAK4vB,KAAOixB,EAC3BirB,EAAOl8C,KAAOi8C,EAAU3rC,WAAW2rC,EAAUj+D,EAAEk+D,EAAOl8C,MAAOk8C,EAAOj/C,OACpEiD,GAAOg8C,EAAO79C,OAAS4yB,GAXpB,mC,qCAgBP,MAAiC,QAA1B7gD,KAAKkN,QAAQo1C,UAAgD,WAA1BtiD,KAAKkN,QAAQo1C,W,6BAGvD,GAAItiD,KAAKkN,QAAQiwC,QAAS,CACxB,IAAM3yB,EAAMxqB,KAAKwqB,IACjBwF,GAASxF,EAAKxqB,MACdA,KAAK+rE,QACL77C,GAAW1F,M,8BAGP,IASFwhD,EATE,OACUh7C,EAAsChxB,KAA/CkN,QAAe49D,EAAgC9qE,KAAhC8qE,YAAaC,EAAmB/qE,KAAnB+qE,WAAYvgD,EAAOxqB,KAAPwqB,IACxChW,EAA4Bwc,EAA5Bxc,MAAe01D,EAAal5C,EAArBud,OACR09B,EAAe5iD,GAASvB,MACxB+jD,EAAYhsC,GAAc7O,EAAK8O,IAAK9/B,KAAK4vB,KAAM5vB,KAAK6sB,OACpDo+C,EAAYv3C,GAAOw2C,EAAUhgD,MACrBgiD,EAAsBhC,EAA7BpiD,MAAkB+4B,EAAWqpB,EAAXrpB,QACnBoL,EAAWgf,EAAUn8D,KACrBq9D,EAAelgB,EAAW,EAEhCjsD,KAAK0rD,YACLlhC,EAAIqH,UAAYg6C,EAAUh6C,UAAU,QACpCrH,EAAIsH,aAAe,SACnBtH,EAAI8G,UAAY,GAChB9G,EAAIN,KAAO+gD,EAAUv+C,OAdf,MAeoCu9C,GAAWC,EAAWje,GAAzDme,EAfD,EAeCA,SAAUD,EAfX,EAeWA,UAAWI,EAftB,EAesBA,WAqDtB11B,EAAe70C,KAAK60C,eACpBiS,EAAc9mD,KAAKkrE,sBAEvBc,EADEn3B,EACO,CACPjnC,EAAG6G,GAAeD,EAAOxU,KAAK4vB,KAAOixB,EAAS7gD,KAAK6vB,MAAQk7C,EAAW,IACtEl9D,EAAG7N,KAAK8vB,IAAM+wB,EAAUiG,EACxB/1B,KAAM,GAGC,CACPnjB,EAAG5N,KAAK4vB,KAAOixB,EACfhzC,EAAG4G,GAAeD,EAAOxU,KAAK8vB,IAAMg3B,EAAcjG,EAAS7gD,KAAK+vB,OAAS+6C,EAAY,GAAG78C,QACxF8C,KAAM,GAGVuP,GAAsBtgC,KAAKwqB,IAAKwG,EAAKo7C,eACrC,IAAM/hD,EAAakgD,EAAa1pB,EAChC7gD,KAAK6qE,YAAYp3D,SAAQ,SAAC0nC,EAAY/8C,GACpCosB,EAAI6G,YAAc8pB,EAAW+wB,WAAaA,EAC1C1hD,EAAIoH,UAAYupB,EAAW+wB,WAAaA,EACxC,IAAMv/C,EAAYnC,EAAIoC,YAAYuuB,EAAWrqB,MAAMjE,MAC7CgF,EAAYg6C,EAAUh6C,UAAUspB,EAAWtpB,YAAcspB,EAAWtpB,UAAYq4C,EAAUr4C,YAC1FhF,EAAQu9C,EAAW+B,EAAex/C,EACpC/e,EAAIo+D,EAAOp+D,EACXC,EAAIm+D,EAAOn+D,EACfg+D,EAAU7rC,SAAS,EAAKnT,OACpBgoB,EACEz2C,EAAI,GAAKwP,EAAIif,EAAQg0B,EAAU,EAAKhxB,QACtChiB,EAAIm+D,EAAOn+D,GAAKwc,EAChB2hD,EAAOj7C,OACPnjB,EAAIo+D,EAAOp+D,EAAI6G,GAAeD,EAAO,EAAKob,KAAOixB,EAAS,EAAKhxB,MAAQk7C,EAAWiB,EAAOj7C,QAElF3yB,EAAI,GAAKyP,EAAIwc,EAAa,EAAK0F,SACxCniB,EAAIo+D,EAAOp+D,EAAIA,EAAIk9D,EAAYkB,EAAOj7C,MAAMlE,MAAQg0B,EACpDmrB,EAAOj7C,OACPljB,EAAIm+D,EAAOn+D,EAAI4G,GAAeD,EAAO,EAAKsb,IAAMg3B,EAAcjG,EAAS,EAAK9wB,OAAS+6C,EAAYkB,EAAOj7C,MAAM9C,SAvF5F,SAASrgB,EAAGC,EAAGstC,GACnC,KAAI7qC,MAAM85D,IAAaA,GAAY,GAAK95D,MAAM65D,IAAcA,EAAY,GAAxE,CAGA3/C,EAAI0C,OACJ,IAAMoE,EAAYhmB,EAAe6vC,EAAW7pB,UAAW,GAQvD,GAPA9G,EAAIoH,UAAYtmB,EAAe6vC,EAAWvpB,UAAWq6C,GACrDzhD,EAAI27C,QAAU76D,EAAe6vC,EAAWgrB,QAAS,QACjD37C,EAAIygC,eAAiB3/C,EAAe6vC,EAAW8P,eAAgB,GAC/DzgC,EAAI26C,SAAW75D,EAAe6vC,EAAWgqB,SAAU,SACnD36C,EAAI8G,UAAYA,EAChB9G,EAAI6G,YAAc/lB,EAAe6vC,EAAW9pB,YAAa46C,GACzDzhD,EAAIwgC,YAAY1/C,EAAe6vC,EAAWkxB,SAAU,KAChDnC,EAAUG,cAAe,CAC3B,IAAMiC,EAAc,CAClB79C,OAAQ07C,EAAYvnE,KAAK2pE,MAAQ,EACjCh+C,WAAY4sB,EAAW5sB,WACvBC,SAAU2sB,EAAW3sB,SACrBc,YAAagC,GAETkpB,EAAUqxB,EAAU5rC,MAAMryB,EAAGw8D,EAAW,GAE9Cj8C,GAAgB3D,EAAK8hD,EAAa9xB,EADlB3sC,EAAIs+D,EACgCjC,EAAUI,iBAAmBF,OAC5E,CACL,IAAMoC,EAAU3+D,EAAIjL,KAAK+E,KAAKskD,EAAWke,GAAa,EAAG,GACnDsC,EAAWZ,EAAU3rC,WAAWtyB,EAAGw8D,GACnCjH,EAAe3vC,GAAc2nB,EAAWgoB,cAC9C34C,EAAIqE,YACAnwB,OAAO0qB,OAAO+5C,GAAc/K,MAAK,SAAAzqD,GAAC,OAAU,IAANA,KACxC6kB,GAAmBhI,EAAK,CACtB5c,EAAG6+D,EACH5+D,EAAG2+D,EACH1xD,EAAGsvD,EACHvxD,EAAGsxD,EACH17C,OAAQ00C,IAGV34C,EAAI4E,KAAKq9C,EAAUD,EAASpC,EAAUD,GAExC3/C,EAAI6E,OACc,IAAdiC,GACF9G,EAAI+E,SAGR/E,EAAI8C,WA8CJo/C,CADcb,EAAUj+D,EAAEA,GACLC,EAAGstC,GACxBvtC,EDj4OS,SAAC4G,EAAOob,EAAMC,EAAOiQ,GAElC,OAAOtrB,KADOsrB,EAAM,OAAS,SACJjQ,EAAkB,WAAVrb,GAAsBob,EAAOC,GAAS,EAAID,EC+3OnE+8C,CAAO96C,EAAWjkB,EAAIw8D,EAAW+B,EAAct3B,EAAejnC,EAAIif,EAAQ,EAAKgD,MAAOmB,EAAK8O,KA7ChF,SAASlyB,EAAGC,EAAGstC,GAC9BtqB,GAAWrG,EAAK2wB,EAAWrqB,KAAMljB,EAAGC,EAAK08D,EAAa,EAAIU,EAAW,CACnEl5C,cAAeopB,EAAWlM,OAC1Bpd,UAAWg6C,EAAUh6C,UAAUspB,EAAWtpB,aA2C5CJ,CAASo6C,EAAUj+D,EAAEA,GAAIC,EAAGstC,GACxBtG,EACFm3B,EAAOp+D,GAAKif,EAAQg0B,EAEpBmrB,EAAOn+D,GAAKwc,KAGhBuW,GAAqB5gC,KAAKwqB,IAAKwG,EAAKo7C,iB,kCAGpC,IAAMp7C,EAAOhxB,KAAKkN,QACZ05C,EAAY51B,EAAK8mB,MACjB80B,EAAYl5C,GAAOkzB,EAAU18B,MAC7B2iD,EAAep5C,GAAUmzB,EAAU/F,SACzC,GAAK+F,EAAUzJ,QAAf,CAGA,IAKItvC,EALEg+D,EAAYhsC,GAAc7O,EAAK8O,IAAK9/B,KAAK4vB,KAAM5vB,KAAK6sB,OACpDrC,EAAMxqB,KAAKwqB,IACX83B,EAAWsE,EAAUtE,SACrB6pB,EAAeS,EAAU99D,KAAO,EAChCg+D,EAA6BD,EAAa/8C,IAAMq8C,EAElDv8C,EAAO5vB,KAAK4vB,KACZ4B,EAAWxxB,KAAK6sB,MACpB,GAAI7sB,KAAK60C,eACPrjB,EAAW5uB,KAAK+E,IAAL,MAAA/E,KAAI,YAAQ5C,KAAK+qE,aAC5Bl9D,EAAI7N,KAAK8vB,IAAMg9C,EACfl9C,EAAOnb,GAAeuc,EAAKxc,MAAOob,EAAM5vB,KAAK6vB,MAAQ2B,OAChD,CACL,IAAM4L,EAAYp9B,KAAK8qE,YAAY5lC,QAAO,SAACC,EAAKr2B,GAAN,OAAelM,KAAK+E,IAAIw9B,EAAKr2B,EAAKmf,UAAS,GACrFpgB,EAAIi/D,EAA6Br4D,GAAeuc,EAAKxc,MAAOxU,KAAK8vB,IAAK9vB,KAAK+vB,OAASqN,EAAYpM,EAAKud,OAAOsS,QAAU7gD,KAAKkrE,uBAE7H,IAAMt9D,EAAI6G,GAAe6tC,EAAU1yB,EAAMA,EAAO4B,GAChDhH,EAAIqH,UAAYg6C,EAAUh6C,UAAUtd,GAAmB+tC,IACvD93B,EAAIsH,aAAe,SACnBtH,EAAI6G,YAAcu1B,EAAU9+B,MAC5B0C,EAAIoH,UAAYg1B,EAAU9+B,MAC1B0C,EAAIN,KAAO0iD,EAAUlgD,OACrBmE,GAAWrG,EAAKo8B,EAAU91B,KAAMljB,EAAGC,EAAG++D,M,4CAGtC,IAAMhmB,EAAY5mD,KAAKkN,QAAQ4qC,MACzB80B,EAAYl5C,GAAOkzB,EAAU18B,MAC7B2iD,EAAep5C,GAAUmzB,EAAU/F,SACzC,OAAO+F,EAAUzJ,QAAUyvB,EAAUviD,WAAawiD,EAAa5+C,OAAS,I,uCAEzDrgB,EAAGC,GAClB,IAAIzP,EAAG2uE,EAAQC,EACf,GAAIv6D,GAAW7E,EAAG5N,KAAK4vB,KAAM5vB,KAAK6vB,QAC7Bpd,GAAW5E,EAAG7N,KAAK8vB,IAAK9vB,KAAK+vB,QAEhC,IADAi9C,EAAKhtE,KAAK0qE,eACLtsE,EAAI,EAAGA,EAAI4uE,EAAG3uE,SAAUD,EAE3B,GAAIqU,GAAW7E,GADfm/D,EAASC,EAAG5uE,IACawxB,KAAMm9C,EAAOn9C,KAAOm9C,EAAOlgD,QAC/Cpa,GAAW5E,EAAGk/D,EAAOj9C,IAAKi9C,EAAOj9C,IAAMi9C,EAAO9+C,QACjD,OAAOjuB,KAAK6qE,YAAYzsE,GAI9B,OAAO,O,kCAEG4D,GACV,IAAMgvB,EAAOhxB,KAAKkN,QAClB,GAmBJ,SAAoBnC,EAAMimB,GACxB,IAAc,cAATjmB,GAAiC,aAATA,KAAyBimB,EAAK/F,SAAW+F,EAAKi8C,SACzE,OAAO,EAET,GAAIj8C,EAAK9F,UAAqB,UAATngB,GAA6B,YAATA,GACvC,OAAO,EAET,OAAO,EA1BAmiE,CAAWlrE,EAAE+I,KAAMimB,GAAxB,CAGA,IAjWgBpiB,EAAGC,EAiWbs+D,EAAcntE,KAAKotE,iBAAiBprE,EAAE4L,EAAG5L,EAAE6L,GACjD,GAAe,cAAX7L,EAAE+I,MAAmC,aAAX/I,EAAE+I,KAAqB,CACnD,IAAMqlB,EAAWpwB,KAAK2qE,aAChB0C,GApWWx+D,EAoWqBs+D,EApWT,QAAfv+D,EAoWcwhB,IApWe,OAANvhB,GAAcD,EAAEpC,eAAiBqC,EAAErC,cAAgBoC,EAAEnC,QAAUoC,EAAEpC,OAqWlG2jB,IAAai9C,GACf1hE,EAASqlB,EAAKi8C,QAAS,CAACjrE,EAAGouB,EAAUpwB,MAAOA,MAE9CA,KAAK2qE,aAAewC,EAChBA,IAAgBE,GAClB1hE,EAASqlB,EAAK/F,QAAS,CAACjpB,EAAGmrE,EAAantE,MAAOA,WAExCmtE,GACTxhE,EAASqlB,EAAK9F,QAAS,CAAClpB,EAAGmrE,EAAantE,MAAOA,W,GA5WhC29C,IAyXrB,IAAI2vB,GAAgB,CAClBziE,GAAI,SACJ0iE,SAAU/C,GACVv4D,MAHkB,SAGZ4X,EAAO2jD,EAAOtgE,GAClB,IAAM+tC,EAASpxB,EAAMoxB,OAAS,IAAIuvB,GAAO,CAAChgD,IAAKX,EAAMW,IAAKtd,UAAS2c,UACnEymC,GAAkBzmC,EAAOoxB,EAAQ/tC,GACjCojD,GAAezmC,EAAOoxB,IAExBe,KARkB,SAQbnyB,GACHymC,GAAkBzmC,EAAOA,EAAMoxB,eACxBpxB,EAAMoxB,QAEfiJ,aAZkB,SAYLr6B,EAAO2jD,EAAOtgE,GACzB,IAAM+tC,EAASpxB,EAAMoxB,OACrBqV,GAAkBzmC,EAAOoxB,EAAQ/tC,GACjC+tC,EAAO/tC,QAAUA,GAEnBw4C,YAjBkB,SAiBN77B,GACV,IAAMoxB,EAASpxB,EAAMoxB,OACrBA,EAAO+vB,cACP/vB,EAAOwyB,kBAETC,WAtBkB,SAsBP7jD,EAAOzoB,GACXA,EAAK2gE,QACRl4C,EAAMoxB,OAAO0yB,YAAYvsE,EAAK2jC,QAGlC1b,SAAU,CACR8zB,SAAS,EACTmF,SAAU,MACV9tC,MAAO,SACPizC,UAAU,EACV17C,SAAS,EACTgc,OAAQ,IACRmD,QAPQ,SAOAlpB,EAAGm5C,EAAYF,GACrB,IAAMxuC,EAAQ0uC,EAAW3uC,aACnBohE,EAAK3yB,EAAOpxB,MACd+jD,EAAGx1B,iBAAiB3rC,IACtBmhE,EAAGlmC,KAAKj7B,GACR0uC,EAAWlM,QAAS,IAEpB2+B,EAAGrmC,KAAK96B,GACR0uC,EAAWlM,QAAS,IAGxBhkB,QAAS,KACTgiD,QAAS,KACT1+B,OAAQ,CACNzmB,MAAO,SAAC0C,GAAD,OAASA,EAAIX,MAAM3c,QAAQ4a,OAClCsiD,SAAU,GACVvpB,QAAS,GACT3F,eAJM,SAISrxB,GACb,IAAMH,EAAWG,EAAM1iB,KAAKuiB,SADR,EAE4CG,EAAMoxB,OAAO/tC,QAAtEqhC,OAAS87B,EAFI,EAEJA,cAAe97C,EAFX,EAEWA,WAAYsD,EAFvB,EAEuBA,UAAW/J,EAFlC,EAEkCA,MACtD,OAAO+B,EAAMof,yBAAyBr8B,KAAI,SAAC+H,GACzC,IAAMyV,EAAQzV,EAAKw1B,WAAWxL,SAAS0rC,EAAgB,OAAI/oE,GACrDguB,EAAcmE,GAAUrJ,EAAMkF,aACpC,MAAO,CACLwB,KAAMpH,EAAS/U,EAAKlI,OAAOgjC,MAC3B7d,UAAWxH,EAAMZ,gBACjB0iD,UAAWpkD,EACXmnB,QAASt6B,EAAK8yB,QACd0+B,QAAS/7C,EAAM4Y,eACfqpC,SAAUjiD,EAAM6Y,WAChBgoB,eAAgB7gC,EAAM8Y,iBACtBiiC,SAAU/6C,EAAM+Y,gBAChB7R,WAAYhC,EAAYzC,MAAQyC,EAAYrB,QAAU,EACtDoD,YAAajH,EAAMX,YACnB8E,WAAYA,GAAcnE,EAAMmE,WAChCC,SAAUpE,EAAMoE,SAChBqD,UAAWA,GAAazH,EAAMyH,UAC9BsxC,aAAc,EACd32D,aAAcmI,EAAKlI,SAEpBzM,QAGP83C,MAAO,CACLhwB,MAAO,SAAC0C,GAAD,OAASA,EAAIX,MAAM3c,QAAQ4a,OAClCq1B,SAAS,EACTmF,SAAU,SACVxxB,KAAM,KAGV/H,YAAa,CACXoD,YAAa,SAACR,GAAD,OAAWA,EAAKS,WAAW,OACxCmiB,OAAQ,CACNpiB,YAAa,SAACR,GAAD,OAAW,CAAC,iBAAkB,SAAU,QAAQsJ,SAAStJ,OAKtEkiD,G,kDACJ,WAAYjmC,GAAQ,kCAClB,gBACK/d,MAAQ+d,EAAO/d,MACpB,EAAK3c,QAAU06B,EAAO16B,QACtB,EAAKsd,IAAMod,EAAOpd,IAClB,EAAKsjD,cAAWxsE,EAChB,EAAKwuB,SAAMxuB,EACX,EAAKyuB,YAASzuB,EACd,EAAKsuB,UAAOtuB,EACZ,EAAKuuB,WAAQvuB,EACb,EAAKurB,WAAQvrB,EACb,EAAK2sB,YAAS3sB,EACd,EAAKghD,cAAWhhD,EAChB,EAAKymB,YAASzmB,EACd,EAAKmmD,cAAWnmD,EAdE,E,mDAgBbkwB,EAAU4L,GACf,IAAMpM,EAAOhxB,KAAKkN,QAGlB,GAFAlN,KAAK4vB,KAAO,EACZ5vB,KAAK8vB,IAAM,EACNkB,EAAKmsB,QAAV,CAIAn9C,KAAK6sB,MAAQ7sB,KAAK6vB,MAAQ2B,EAC1BxxB,KAAKiuB,OAASjuB,KAAK+vB,OAASqN,EAC5B,IAAM8sB,EAAYtoD,EAAQovB,EAAKF,MAAQE,EAAKF,KAAKzyB,OAAS,EAC1D2B,KAAK8tE,SAAWr6C,GAAUzC,EAAK6vB,SAC/B,IAAMktB,EAAW7jB,EAAYx2B,GAAO1C,EAAK9G,MAAMG,WAAarqB,KAAK8tE,SAAS7/C,OACtEjuB,KAAK60C,eACP70C,KAAKiuB,OAAS8/C,EAEd/tE,KAAK6sB,MAAQkhD,OAXb/tE,KAAK6sB,MAAQ7sB,KAAKiuB,OAASjuB,KAAK6vB,MAAQ7vB,KAAK+vB,OAAS,I,qCAexD,IAAM8L,EAAM77B,KAAKkN,QAAQo1C,SACzB,MAAe,QAARzmB,GAAyB,WAARA,I,gCAEhB9zB,GAAQ,IAIZypB,EAAU65B,EAAQC,EAHfx7B,EAAqC9vB,KAArC8vB,IAAKF,EAAgC5vB,KAAhC4vB,KAAMG,EAA0B/vB,KAA1B+vB,OAAQF,EAAkB7vB,KAAlB6vB,MAAO3iB,EAAWlN,KAAXkN,QAC3BsH,EAAQtH,EAAQsH,MAClBga,EAAW,EAkBf,OAhBIxuB,KAAK60C,gBACPwW,EAAS52C,GAAeD,EAAOob,EAAMC,GACrCy7B,EAASx7B,EAAM/nB,EACfypB,EAAW3B,EAAQD,IAEM,SAArB1iB,EAAQo1C,UACV+I,EAASz7B,EAAO7nB,EAChBujD,EAAS72C,GAAeD,EAAOub,EAAQD,GACvCtB,GAAiB,GAANvf,IAEXo8C,EAASx7B,EAAQ9nB,EACjBujD,EAAS72C,GAAeD,EAAOsb,EAAKC,GACpCvB,EAAgB,GAALvf,GAEbuiB,EAAWzB,EAASD,GAEf,CAACu7B,SAAQC,SAAQ95B,WAAUhD,c,6BAGlC,IAAMhE,EAAMxqB,KAAKwqB,IACXwG,EAAOhxB,KAAKkN,QAClB,GAAK8jB,EAAKmsB,QAAV,CAGA,IAAM6wB,EAAWt6C,GAAO1C,EAAK9G,MAEvBniB,EADaimE,EAAS3jD,WACA,EAAIrqB,KAAK8tE,SAASh+C,IARzC,EASwC9vB,KAAKiuE,UAAUlmE,GAArDsjD,EATF,EASEA,OAAQC,EATV,EASUA,OAAQ95B,EATlB,EASkBA,SAAUhD,EAT5B,EAS4BA,SACjCqC,GAAWrG,EAAKwG,EAAKF,KAAM,EAAG,EAAGk9C,EAAU,CACzClmD,MAAOkJ,EAAKlJ,MACZ0J,WACAhD,WACAqD,UAAWtd,GAAmByc,EAAKxc,OACnCsd,aAAc,SACdH,YAAa,CAAC05B,EAAQC,U,GA/ER3N,IA6FpB,IAAIuwB,GAAe,CACjBrjE,GAAI,QACJ0iE,SAAUM,GACV57D,MAHiB,SAGX4X,EAAO2jD,EAAOtgE,IAbtB,SAAqB2c,EAAO+8B,GAC1B,IAAM9O,EAAQ,IAAI+1B,GAAM,CACtBrjD,IAAKX,EAAMW,IACXtd,QAAS05C,EACT/8B,UAEFymC,GAAkBzmC,EAAOiuB,EAAO8O,GAChC0J,GAAezmC,EAAOiuB,GACtBjuB,EAAMskD,WAAar2B,EAMjBs2B,CAAYvkD,EAAO3c,IAErB8uC,KANiB,SAMZnyB,GACH,IAAMskD,EAAatkD,EAAMskD,WACzB7d,GAAkBzmC,EAAOskD,UAClBtkD,EAAMskD,YAEfjqB,aAXiB,SAWJr6B,EAAO2jD,EAAOtgE,GACzB,IAAM4qC,EAAQjuB,EAAMskD,WACpB7d,GAAkBzmC,EAAOiuB,EAAO5qC,GAChC4qC,EAAM5qC,QAAUA,GAElBmc,SAAU,CACR7U,MAAO,SACP2oC,SAAS,EACTjzB,KAAM,CACJnC,OAAQ,QAEV0/B,UAAU,EACV5G,QAAS,GACTyB,SAAU,MACVxxB,KAAM,GACN/I,OAAQ,KAEVg2B,cAAe,CACbj2B,MAAO,SAETiB,YAAa,CACXoD,aAAa,EACbE,YAAY,IA+CVgiD,IA3CM,IAAIC,QA2CI,CAClBC,QADkB,SACV56D,GACN,IAAKA,EAAMtV,OACT,OAAO,EAET,IAAID,EAAG4N,EACH4B,EAAI,EACJC,EAAI,EACJkH,EAAQ,EACZ,IAAK3W,EAAI,EAAG4N,EAAM2H,EAAMtV,OAAQD,EAAI4N,IAAO5N,EAAG,CAC5C,IAAMqgC,EAAK9qB,EAAMvV,GAAGo9B,QACpB,GAAIiD,GAAMA,EAAG+vC,WAAY,CACvB,IAAM3yC,EAAM4C,EAAGgwC,kBACf7gE,GAAKiuB,EAAIjuB,EACTC,GAAKguB,EAAIhuB,IACPkH,GAGN,MAAO,CACLnH,EAAGA,EAAImH,EACPlH,EAAGA,EAAIkH,IAGXi7C,QAvBkB,SAuBVr8C,EAAO+6D,GACb,IAAK/6D,EAAMtV,OACT,OAAO,EAET,IAGID,EAAG4N,EAAK2iE,EAHR/gE,EAAI8gE,EAAc9gE,EAClBC,EAAI6gE,EAAc7gE,EAClB0hD,EAAcrkD,OAAOmE,kBAEzB,IAAKjR,EAAI,EAAG4N,EAAM2H,EAAMtV,OAAQD,EAAI4N,IAAO5N,EAAG,CAC5C,IAAMqgC,EAAK9qB,EAAMvV,GAAGo9B,QACpB,GAAIiD,GAAMA,EAAG+vC,WAAY,CACvB,IACM/1D,EAAI9G,GAAsB+8D,EADjBjwC,EAAG+wB,kBAEd/2C,EAAI82C,IACNA,EAAc92C,EACdk2D,EAAiBlwC,IAIvB,GAAIkwC,EAAgB,CAClB,IAAMC,EAAKD,EAAeF,kBAC1B7gE,EAAIghE,EAAGhhE,EACPC,EAAI+gE,EAAG/gE,EAET,MAAO,CACLD,IACAC,QAIN,SAASghE,GAAatkE,EAAMukE,GAQ1B,OAPIA,IACEltE,EAAQktE,GACVntE,MAAM1C,UAAUoG,KAAKjF,MAAMmK,EAAMukE,GAEjCvkE,EAAKlF,KAAKypE,IAGPvkE,EAET,SAASwkE,GAAczgE,GACrB,OAAoB,kBAARA,GAAoBA,aAAepI,SAAWoI,EAAItB,QAAQ,OAAS,EACtEsB,EAAIN,MAAM,MAEZM,EAET,SAAS0gE,GAAkBnlD,EAAO9a,GAAM,IAC/BysB,EAAgCzsB,EAAhCysB,QAAShvB,EAAuBuC,EAAvBvC,aAAcC,EAASsC,EAATtC,MACxB09B,EAAatgB,EAAMujB,eAAe5gC,GAAc29B,WAFhB,EAGfA,EAAW8kC,iBAAiBxiE,GAA5CgjC,EAH+B,EAG/BA,MAAO/vC,EAHwB,EAGxBA,MACd,MAAO,CACLmqB,QACA4lB,QACA3X,OAAQqS,EAAWqF,UAAU/iC,GAC7B2jC,IAAKvmB,EAAM1iB,KAAKuiB,SAASld,GAAcrF,KAAKsF,GAC5C8uC,eAAgB77C,EAChB2sC,QAASlC,EAAWmC,aACpB6D,UAAW1jC,EACXD,eACAgvB,WAGJ,SAAS0zC,GAAer3B,EAAS3qC,GAC/B,IAAMsd,EAAMqtB,EAAQhuB,MAAMW,IACnB2kD,EAAuBt3B,EAAvBs3B,KAAMC,EAAiBv3B,EAAjBu3B,OAAQt3B,EAASD,EAATC,MACdsyB,EAAuBl9D,EAAvBk9D,SAAUD,EAAaj9D,EAAbi9D,UACXkF,EAAW37C,GAAOxmB,EAAQmiE,UAC1BzC,EAAYl5C,GAAOxmB,EAAQ0/D,WAC3B0C,EAAa57C,GAAOxmB,EAAQoiE,YAC5BC,EAAiBz3B,EAAMz5C,OACvBmxE,EAAkBJ,EAAO/wE,OACzBoxE,EAAoBN,EAAK9wE,OACzBwiD,EAAUptB,GAAUvmB,EAAQ2zC,SAC9B5yB,EAAS4yB,EAAQ5yB,OACjBpB,EAAQ,EACR6iD,EAAqBP,EAAKjqC,QAAO,SAACnwB,EAAO46D,GAAR,OAAqB56D,EAAQ46D,EAASC,OAAOvxE,OAASsxE,EAAS1+C,MAAM5yB,OAASsxE,EAASE,MAAMxxE,SAAQ,IAC1IqxE,GAAsB73B,EAAQi4B,WAAWzxE,OAASw5C,EAAQk4B,UAAU1xE,OAChEkxE,IACFthD,GAAUshD,EAAiB3C,EAAUviD,YACnCklD,EAAiB,GAAKriE,EAAQ8iE,aAC/B9iE,EAAQ+iE,mBAEPP,KAEFzhD,GAAUwhD,GADaviE,EAAQgjE,cAAgBttE,KAAK+E,IAAIwiE,EAAWkF,EAAShlD,YAAcglD,EAAShlD,aAEjGqlD,EAAqBD,GAAqBJ,EAAShlD,YACnDqlD,EAAqB,GAAKxiE,EAAQijE,aAElCX,IACFvhD,GAAU/gB,EAAQkjE,gBACjBZ,EAAkBF,EAAWjlD,YAC5BmlD,EAAkB,GAAKtiE,EAAQmjE,eAEnC,IAAIC,EAAe,EACbC,EAAe,SAASx/C,GAC5BlE,EAAQjqB,KAAK+E,IAAIklB,EAAOrC,EAAIoC,YAAYmE,GAAMlE,MAAQyjD,IAkBxD,OAhBA9lD,EAAI0C,OACJ1C,EAAIN,KAAO0iD,EAAUlgD,OACrB7gB,EAAKgsC,EAAQC,MAAOy4B,GACpB/lD,EAAIN,KAAOmlD,EAAS3iD,OACpB7gB,EAAKgsC,EAAQi4B,WAAW5rE,OAAO2zC,EAAQk4B,WAAYQ,GACnDD,EAAepjE,EAAQgjE,cAAiB9F,EAAW,EAAIl9D,EAAQkkD,WAAc,EAC7EvlD,EAAKsjE,GAAM,SAACQ,GACV9jE,EAAK8jE,EAASC,OAAQW,GACtB1kE,EAAK8jE,EAAS1+C,MAAOs/C,GACrB1kE,EAAK8jE,EAASE,MAAOU,MAEvBD,EAAe,EACf9lD,EAAIN,KAAOolD,EAAW5iD,OACtB7gB,EAAKgsC,EAAQu3B,OAAQmB,GACrB/lD,EAAI8C,UAEG,CAACT,MADRA,GAASg0B,EAAQh0B,MACFoB,UAqBjB,SAASuiD,GAAgB3mD,EAAO3c,EAAS4B,EAAM2hE,GAAQ,IAC9C7iE,EAAYkB,EAAZlB,EAAGif,EAAS/d,EAAT+d,MACI6jD,EAAwC7mD,EAA/CgD,MAF8C,EAEChD,EAA5BmmB,UAAYpgB,EAFe,EAEfA,KAAMC,EAFS,EAETA,MACxC8gD,EAAS,SAWb,MAVe,WAAXF,EACFE,EAAS/iE,IAAMgiB,EAAOC,GAAS,EAAI,OAAS,QACnCjiB,GAAKif,EAAQ,EACtB8jD,EAAS,OACA/iE,GAAK8iE,EAAa7jD,EAAQ,IACnC8jD,EAAS,SAnBb,SAA6BA,EAAQ9mD,EAAO3c,EAAS4B,GAAM,IAClDlB,EAAYkB,EAAZlB,EAAGif,EAAS/d,EAAT+d,MACJ+jD,EAAQ1jE,EAAQ2jE,UAAY3jE,EAAQ4jE,aAC1C,MAAe,SAAXH,GAAqB/iE,EAAIif,EAAQ+jD,EAAQ/mD,EAAMgD,QAGpC,UAAX8jD,GAAsB/iE,EAAIif,EAAQ+jD,EAAQ,QAA9C,GAeIG,CAAoBJ,EAAQ9mD,EAAO3c,EAAS4B,KAC9C6hE,EAAS,UAEJA,EAET,SAASK,GAAmBnnD,EAAO3c,EAAS4B,GAC1C,IAAM2hE,EAAS3hE,EAAK2hE,QAAUvjE,EAAQujE,QApCxC,SAAyB5mD,EAAO/a,GAAM,IAC7BjB,EAAaiB,EAAbjB,EAAGogB,EAAUnf,EAAVmf,OACV,OAAIpgB,EAAIogB,EAAS,EACR,MACEpgB,EAAKgc,EAAMoE,OAASA,EAAS,EAC/B,SAEF,SA6ByCgjD,CAAgBpnD,EAAO/a,GACvE,MAAO,CACL6hE,OAAQ7hE,EAAK6hE,QAAUzjE,EAAQyjE,QAAUH,GAAgB3mD,EAAO3c,EAAS4B,EAAM2hE,GAC/EA,UAuBJ,SAASS,GAAmBhkE,EAAS4B,EAAMqiE,EAAWtnD,GAAO,IACpDgnD,EAAyC3jE,EAAzC2jE,UAAWC,EAA8B5jE,EAA9B4jE,aAAcxiD,EAAgBphB,EAAhBohB,aACzBqiD,EAAkBQ,EAAlBR,OAAQF,EAAUU,EAAVV,OACTW,EAAiBP,EAAYC,EAHwB,EAINt9C,GAAclF,GAA5DmE,EAJoD,EAIpDA,QAASG,EAJ2C,EAI3CA,SAAUF,EAJiC,EAIjCA,WAAYC,EAJqB,EAIrBA,YAClC/kB,EAzBN,SAAgBkB,EAAM6hE,GAAQ,IACvB/iE,EAAYkB,EAAZlB,EAAGif,EAAS/d,EAAT+d,MAMR,MALe,UAAX8jD,EACF/iE,GAAKif,EACe,WAAX8jD,IACT/iE,GAAMif,EAAQ,GAETjf,EAkBCyjE,CAAOviE,EAAM6hE,GACf9iE,EAjBR,SAAgBiB,EAAM2hE,EAAQW,GAAgB,IACvCvjE,EAAaiB,EAAbjB,EAAGogB,EAAUnf,EAAVmf,OAQR,MAPe,QAAXwiD,EACF5iE,GAAKujE,EAELvjE,GADoB,WAAX4iE,EACJxiD,EAASmjD,EAERnjD,EAAS,EAEVpgB,EAQGyjE,CAAOxiE,EAAM2hE,EAAQW,GAY/B,MAXe,WAAXX,EACa,SAAXE,EACF/iE,GAAKwjE,EACe,UAAXT,IACT/iE,GAAKwjE,GAEa,SAAXT,EACT/iE,GAAKhL,KAAK+E,IAAI8qB,EAASC,GAAcm+C,EACjB,UAAXF,IACT/iE,GAAKhL,KAAK+E,IAAIirB,EAAUD,GAAek+C,GAElC,CACLjjE,EAAG4E,GAAY5E,EAAG,EAAGic,EAAMgD,MAAQ/d,EAAK+d,OACxChf,EAAG2E,GAAY3E,EAAG,EAAGgc,EAAMoE,OAASnf,EAAKmf,SAG7C,SAASsjD,GAAY15B,EAASrjC,EAAOtH,GACnC,IAAM2zC,EAAUptB,GAAUvmB,EAAQ2zC,SAClC,MAAiB,WAAVrsC,EACHqjC,EAAQjqC,EAAIiqC,EAAQhrB,MAAQ,EAClB,UAAVrY,EACEqjC,EAAQjqC,EAAIiqC,EAAQhrB,MAAQg0B,EAAQhxB,MACpCgoB,EAAQjqC,EAAIizC,EAAQjxB,KAE5B,SAAS4hD,GAAwB7lE,GAC/B,OAAOkjE,GAAa,GAAIE,GAAcpjE,IASxC,SAAS8lE,GAAkB9tC,EAAW/Z,GACpC,IAAMmM,EAAWnM,GAAWA,EAAQyiB,SAAWziB,EAAQyiB,QAAQwL,SAAWjuB,EAAQyiB,QAAQwL,QAAQlU,UAClG,OAAO5N,EAAW4N,EAAU5N,SAASA,GAAY4N,E,IAE7C+tC,G,kDACJ,WAAY9pC,GAAQ,kCAClB,gBACK+pC,QAAU,EACf,EAAKptC,QAAU,GACf,EAAKqtC,oBAAiBtwE,EACtB,EAAKuwE,WAAQvwE,EACb,EAAKwwE,uBAAoBxwE,EACzB,EAAKywE,cAAgB,GACrB,EAAK3pC,iBAAc9mC,EACnB,EAAKyqC,cAAWzqC,EAChB,EAAKuoB,MAAQ+d,EAAO/d,OAAS+d,EAAOzF,OACpC,EAAKA,OAAS,EAAKtY,MACnB,EAAK3c,QAAU06B,EAAO16B,QACtB,EAAK8kE,gBAAa1wE,EAClB,EAAKw2C,WAAQx2C,EACb,EAAKwuE,gBAAaxuE,EAClB,EAAK6tE,UAAO7tE,EACZ,EAAKyuE,eAAYzuE,EACjB,EAAK8tE,YAAS9tE,EACd,EAAKqvE,YAASrvE,EACd,EAAKmvE,YAASnvE,EACd,EAAKsM,OAAItM,EACT,EAAKuM,OAAIvM,EACT,EAAK2sB,YAAS3sB,EACd,EAAKurB,WAAQvrB,EACb,EAAK2wE,YAAS3wE,EACd,EAAK4wE,YAAS5wE,EACd,EAAK6wE,iBAAc7wE,EACnB,EAAK8wE,sBAAmB9wE,EACxB,EAAK+wE,qBAAkB/wE,EA7BL,E,uDA+BT4L,GACTlN,KAAKkN,QAAUA,EACflN,KAAK8xE,uBAAoBxwE,EACzBtB,KAAK+rC,cAAWzqC,I,2CAGhB,IAAM4pC,EAASlrC,KAAK8xE,kBACpB,GAAI5mC,EACF,OAAOA,EAET,IAAMrhB,EAAQ7pB,KAAK6pB,MACb3c,EAAUlN,KAAKkN,QAAQ4oB,WAAW91B,KAAK8tB,cACvCkD,EAAO9jB,EAAQsyC,SAAW31B,EAAM3c,QAAQqc,WAAarc,EAAQs6B,WAC7DA,EAAa,IAAIG,GAAW3nC,KAAK6pB,MAAOmH,GAI9C,OAHIA,EAAKyE,aACPz1B,KAAK8xE,kBAAoBpzE,OAAOmyC,OAAOrJ,IAElCA,I,mCAGP,OAAOxnC,KAAK+rC,WACZ/rC,KAAK+rC,UAhEqB7U,EAgEWl3B,KAAK6pB,MAAMiE,aAhEd+pB,EAgE4B73C,KAhEnBsyE,EAgEyBtyE,KAAK+xE,cA/DpE99C,GAAciD,EAAQ,CAC3B2gB,UACAy6B,eACAvnE,KAAM,cAJV,IAA8BmsB,EAAQ2gB,EAASy6B,I,+BAkEpC1oD,EAAS1c,GAAS,IAClBy2B,EAAaz2B,EAAby2B,UACD4uC,EAAc5uC,EAAU4uC,YAAYnyE,MAAMJ,KAAM,CAAC4pB,IACjDkuB,EAAQnU,EAAUmU,MAAM13C,MAAMJ,KAAM,CAAC4pB,IACrC4oD,EAAa7uC,EAAU6uC,WAAWpyE,MAAMJ,KAAM,CAAC4pB,IACjDqH,EAAQ,GAIZ,OAHAA,EAAQ49C,GAAa59C,EAAO89C,GAAcwD,IAC1CthD,EAAQ49C,GAAa59C,EAAO89C,GAAcj3B,IAC1C7mB,EAAQ49C,GAAa59C,EAAO89C,GAAcyD,M,oCAG9BF,EAAcplE,GAC1B,OAAOskE,GAAwBtkE,EAAQy2B,UAAUmsC,WAAW1vE,MAAMJ,KAAM,CAACsyE,O,8BAEnEA,EAAcplE,GAAS,WACtBy2B,EAAaz2B,EAAby2B,UACD8uC,EAAY,GAalB,OAZA5mE,EAAKymE,GAAc,SAAC1oD,GAClB,IAAM+lD,EAAW,CACfC,OAAQ,GACR3+C,MAAO,GACP4+C,MAAO,IAEH6C,EAASjB,GAAkB9tC,EAAW/Z,GAC5CilD,GAAac,EAASC,OAAQb,GAAc2D,EAAOC,YAAYhuE,KAAK,EAAMilB,KAC1EilD,GAAac,EAAS1+C,MAAOyhD,EAAOjjC,MAAM9qC,KAAK,EAAMilB,IACrDilD,GAAac,EAASE,MAAOd,GAAc2D,EAAOE,WAAWjuE,KAAK,EAAMilB,KACxE6oD,EAAUptE,KAAKsqE,MAEV8C,I,mCAEIH,EAAcplE,GACzB,OAAOskE,GAAwBtkE,EAAQy2B,UAAUosC,UAAU3vE,MAAMJ,KAAM,CAACsyE,O,gCAEhEA,EAAcplE,GAAS,IACxBy2B,EAAaz2B,EAAby2B,UACDkvC,EAAelvC,EAAUkvC,aAAazyE,MAAMJ,KAAM,CAACsyE,IACnDlD,EAASzrC,EAAUyrC,OAAOhvE,MAAMJ,KAAM,CAACsyE,IACvCQ,EAAcnvC,EAAUmvC,YAAY1yE,MAAMJ,KAAM,CAACsyE,IACnDrhD,EAAQ,GAIZ,OAHAA,EAAQ49C,GAAa59C,EAAO89C,GAAc8D,IAC1C5hD,EAAQ49C,GAAa59C,EAAO89C,GAAcK,IAC1Cn+C,EAAQ49C,GAAa59C,EAAO89C,GAAc+D,M,mCAG/B5lE,GAAS,IAOhB9O,EAAG4N,EAPa,OACdq7B,EAASrnC,KAAKukC,QACdp9B,EAAOnH,KAAK6pB,MAAM1iB,KAClBgrE,EAAc,GACdC,EAAmB,GACnBC,EAAkB,GACpBC,EAAe,GAEnB,IAAKl0E,EAAI,EAAG4N,EAAMq7B,EAAOhpC,OAAQD,EAAI4N,IAAO5N,EAC1Ck0E,EAAajtE,KAAK2pE,GAAkBhvE,KAAK6pB,MAAOwd,EAAOjpC,KAkBzD,OAhBI8O,EAAQopB,SACVg8C,EAAeA,EAAah8C,QAAO,SAACkF,EAAS/uB,EAAOiE,GAAjB,OAA2BxD,EAAQopB,OAAOkF,EAAS/uB,EAAOiE,EAAOvJ,OAElG+F,EAAQ6lE,WACVT,EAAeA,EAAa3/B,MAAK,SAAC/jC,EAAGC,GAAJ,OAAU3B,EAAQ6lE,SAASnkE,EAAGC,EAAG1H,OAEpE0E,EAAKymE,GAAc,SAAC1oD,GAClB,IAAM8oD,EAASjB,GAAkBvkE,EAAQy2B,UAAW/Z,GACpDuoD,EAAY9sE,KAAKqtE,EAAOM,WAAWruE,KAAK,EAAMilB,IAC9CwoD,EAAiB/sE,KAAKqtE,EAAOO,gBAAgBtuE,KAAK,EAAMilB,IACxDyoD,EAAgBhtE,KAAKqtE,EAAOQ,eAAevuE,KAAK,EAAMilB,OAExD5pB,KAAKmyE,YAAcA,EACnBnyE,KAAKoyE,iBAAmBA,EACxBpyE,KAAKqyE,gBAAkBA,EACvBryE,KAAKgyE,WAAaM,EACXA,I,6BAEFr8D,EAAS8rD,GACd,IAEIv+D,EAFE0J,EAAUlN,KAAKkN,QAAQ4oB,WAAW91B,KAAK8tB,cACvCuZ,EAASrnC,KAAKukC,QAEhB+tC,EAAe,GACnB,GAAKjrC,EAAOhpC,OAML,CACL,IAAMikD,EAAW+rB,GAAYnhE,EAAQo1C,UAAU39C,KAAK3E,KAAMqnC,EAAQrnC,KAAK4xE,gBACvEU,EAAetyE,KAAKmzE,aAAajmE,GACjClN,KAAK83C,MAAQ93C,KAAKozE,SAASd,EAAcplE,GACzClN,KAAK8vE,WAAa9vE,KAAKqzE,cAAcf,EAAcplE,GACnDlN,KAAKmvE,KAAOnvE,KAAKszE,QAAQhB,EAAcplE,GACvClN,KAAK+vE,UAAY/vE,KAAKuzE,aAAajB,EAAcplE,GACjDlN,KAAKovE,OAASpvE,KAAKwzE,UAAUlB,EAAcplE,GAC3C,IAAM4B,EAAO9O,KAAK6xE,MAAQ3C,GAAelvE,KAAMkN,GACzCumE,EAAkB/0E,OAAOwX,OAAO,GAAIosC,EAAUxzC,GAC9CqiE,EAAYH,GAAmBhxE,KAAK6pB,MAAO3c,EAASumE,GACpDC,EAAkBxC,GAAmBhkE,EAASumE,EAAiBtC,EAAWnxE,KAAK6pB,OACrF7pB,KAAK2wE,OAASQ,EAAUR,OACxB3wE,KAAKywE,OAASU,EAAUV,OACxBjtE,EAAa,CACXmuE,QAAS,EACT/jE,EAAG8lE,EAAgB9lE,EACnBC,EAAG6lE,EAAgB7lE,EACnBgf,MAAO/d,EAAK+d,MACZoB,OAAQnf,EAAKmf,OACbgkD,OAAQ3vB,EAAS10C,EACjBskE,OAAQ5vB,EAASz0C,QA1BE,IAAjB7N,KAAK2xE,UACPnuE,EAAa,CACXmuE,QAAS,IA2Bf3xE,KAAK+xE,cAAgBO,EACrBtyE,KAAK+rC,cAAWzqC,EACZkC,GACFxD,KAAKuxC,qBAAqBhpC,OAAOvI,KAAMwD,GAErCyS,GAAW/I,EAAQymE,UACrBzmE,EAAQymE,SAAShvE,KAAK3E,KAAM,CAAC6pB,MAAO7pB,KAAK6pB,MAAOguB,QAAS73C,KAAM+hE,a,gCAGzD6R,EAAcppD,EAAK1b,EAAM5B,GACjC,IAAM2mE,EAAgB7zE,KAAK8zE,iBAAiBF,EAAc9kE,EAAM5B,GAChEsd,EAAI0E,OAAO2kD,EAAc3qB,GAAI2qB,EAAc1qB,IAC3C3+B,EAAI0E,OAAO2kD,EAAczqB,GAAIyqB,EAAcxqB,IAC3C7+B,EAAI0E,OAAO2kD,EAAcE,GAAIF,EAAcG,M,uCAE5BJ,EAAc9kE,EAAM5B,GAAS,IAMxCg8C,EAAIE,EAAI2qB,EAAI5qB,EAAIE,EAAI2qB,EALjBrD,EAAkB3wE,KAAlB2wE,OAAQF,EAAUzwE,KAAVywE,OACRI,EAA2B3jE,EAA3B2jE,UAFqC,EAGSr9C,GADnBtmB,EAAhBohB,cACXmE,EAHqC,EAGrCA,QAASG,EAH4B,EAG5BA,SAAUF,EAHkB,EAGlBA,WAAYC,EAHM,EAGNA,YAC5BshD,EAAeL,EAAlBhmE,EAAWsmE,EAAON,EAAV/lE,EACRgf,EAAiB/d,EAAjB+d,MAAOoB,EAAUnf,EAAVmf,OAqCd,MAnCe,WAAXwiD,GACFpnB,EAAK6qB,EAAOjmD,EAAS,EACN,SAAX0iD,GAEFvnB,GADAF,EAAK+qB,GACKpD,EACV1nB,EAAKE,EAAKwnB,EACVmD,EAAK3qB,EAAKwnB,IAGVznB,GADAF,EAAK+qB,EAAMpnD,GACDgkD,EACV1nB,EAAKE,EAAKwnB,EACVmD,EAAK3qB,EAAKwnB,GAEZkD,EAAK7qB,IAGHE,EADa,SAAXunB,EACGsD,EAAMrxE,KAAK+E,IAAI8qB,EAASC,GAAem+C,EACxB,UAAXF,EACJsD,EAAMpnD,EAAQjqB,KAAK+E,IAAIirB,EAAUD,GAAek+C,EAEhD7wE,KAAKiyE,OAEG,QAAXxB,GAEFpnB,GADAF,EAAK+qB,GACKrD,EACV3nB,EAAKE,EAAKynB,EACVkD,EAAK3qB,EAAKynB,IAGVxnB,GADAF,EAAK+qB,EAAMjmD,GACD4iD,EACV3nB,EAAKE,EAAKynB,EACVkD,EAAK3qB,EAAKynB,GAEZmD,EAAK7qB,GAEA,CAACD,KAAIE,KAAI2qB,KAAI5qB,KAAIE,KAAI2qB,Q,gCAEpBj6C,EAAIvP,EAAKtd,GACjB,IAEI0/D,EAAWoD,EAAc5xE,EAFvB05C,EAAQ93C,KAAK83C,MACbz5C,EAASy5C,EAAMz5C,OAErB,GAAIA,EAAQ,CACV,IAAMwtE,EAAYhsC,GAAc3yB,EAAQ4yB,IAAK9/B,KAAK4N,EAAG5N,KAAK6sB,OAQ1D,IAPAkN,EAAGnsB,EAAI2jE,GAAYvxE,KAAMkN,EAAQm1C,WAAYn1C,GAC7Csd,EAAIqH,UAAYg6C,EAAUh6C,UAAU3kB,EAAQm1C,YAC5C73B,EAAIsH,aAAe,SACnB86C,EAAYl5C,GAAOxmB,EAAQ0/D,WAC3BoD,EAAe9iE,EAAQ8iE,aACvBxlD,EAAIoH,UAAY1kB,EAAQinE,WACxB3pD,EAAIN,KAAO0iD,EAAUlgD,OAChBtuB,EAAI,EAAGA,EAAIC,IAAUD,EACxBosB,EAAIiH,SAASqmB,EAAM15C,GAAIytE,EAAUj+D,EAAEmsB,EAAGnsB,GAAImsB,EAAGlsB,EAAI++D,EAAUviD,WAAa,GACxE0P,EAAGlsB,GAAK++D,EAAUviD,WAAa2lD,EAC3B5xE,EAAI,IAAMC,IACZ07B,EAAGlsB,GAAKX,EAAQ+iE,kBAAoBD,M,oCAK9BxlD,EAAKuP,EAAI37B,EAAGytE,EAAW3+D,GACnC,IAAMilE,EAAcnyE,KAAKmyE,YAAY/zE,GAC/B60E,EAAkBjzE,KAAKoyE,iBAAiBh0E,GACvC+rE,EAAmCj9D,EAAnCi9D,UAAWC,EAAwBl9D,EAAxBk9D,SAAUhZ,EAAclkD,EAAdkkD,WACtBie,EAAW37C,GAAOxmB,EAAQmiE,UAC1B+E,EAAS7C,GAAYvxE,KAAM,OAAQkN,GACnCmnE,EAAYxI,EAAUj+D,EAAEwmE,GACxBE,EAAUnK,EAAYkF,EAAShlD,YAAcglD,EAAShlD,WAAa8/C,GAAa,EAAI,EACpFoK,EAASx6C,EAAGlsB,EAAIymE,EACtB,GAAIpnE,EAAQm9D,cAAe,CACzB,IAAMiC,EAAc,CAClB79C,OAAQ7rB,KAAKkF,IAAIsiE,EAAUD,GAAa,EACxC57C,WAAY0kD,EAAgB1kD,WAC5BC,SAAUykD,EAAgBzkD,SAC1Bc,YAAa,GAETkrB,EAAUqxB,EAAU3rC,WAAWm0C,EAAWjK,GAAYA,EAAW,EACjE3vB,EAAU85B,EAASpK,EAAY,EACrC3/C,EAAI6G,YAAcnkB,EAAQsnE,mBAC1BhqD,EAAIoH,UAAY1kB,EAAQsnE,mBACxBtmD,GAAU1D,EAAK8hD,EAAa9xB,EAASC,GACrCjwB,EAAI6G,YAAc8gD,EAAY1oD,YAC9Be,EAAIoH,UAAYugD,EAAY3oD,gBAC5B0E,GAAU1D,EAAK8hD,EAAa9xB,EAASC,OAChC,CACLjwB,EAAI8G,UAAYtmB,EAASmnE,EAAY7iD,aAAe1sB,KAAK+E,IAAL,MAAA/E,KAAI,YAAQlE,OAAO0qB,OAAO+oD,EAAY7iD,eAAiB6iD,EAAY7iD,aAAe,EACtI9E,EAAI6G,YAAc8gD,EAAY1oD,YAC9Be,EAAIwgC,YAAYmnB,EAAYlvC,YAAc,IAC1CzY,EAAIygC,eAAiBknB,EAAYjvC,kBAAoB,EACrD,IAAMuxC,EAAS5I,EAAU3rC,WAAWm0C,EAAWjK,EAAWhZ,GACpDsjB,EAAS7I,EAAU3rC,WAAW2rC,EAAU5rC,MAAMo0C,EAAW,GAAIjK,EAAWhZ,EAAa,GACrF+R,EAAe3vC,GAAc2+C,EAAYhP,cAC3CzkE,OAAO0qB,OAAO+5C,GAAc/K,MAAK,SAAAzqD,GAAC,OAAU,IAANA,MACxC6c,EAAIqE,YACJrE,EAAIoH,UAAY1kB,EAAQsnE,mBACxBhiD,GAAmBhI,EAAK,CACtB5c,EAAG6mE,EACH5mE,EAAG0mE,EACHz5D,EAAGsvD,EACHvxD,EAAGsxD,EACH17C,OAAQ00C,IAEV34C,EAAI6E,OACJ7E,EAAI+E,SACJ/E,EAAIoH,UAAYugD,EAAY3oD,gBAC5BgB,EAAIqE,YACJ2D,GAAmBhI,EAAK,CACtB5c,EAAG8mE,EACH7mE,EAAG0mE,EAAS,EACZz5D,EAAGsvD,EAAW,EACdvxD,EAAGsxD,EAAY,EACf17C,OAAQ00C,IAEV34C,EAAI6E,SAEJ7E,EAAIoH,UAAY1kB,EAAQsnE,mBACxBhqD,EAAIogC,SAAS6pB,EAAQF,EAAQnK,EAAUD,GACvC3/C,EAAImqD,WAAWF,EAAQF,EAAQnK,EAAUD,GACzC3/C,EAAIoH,UAAYugD,EAAY3oD,gBAC5BgB,EAAIogC,SAAS8pB,EAAQH,EAAS,EAAGnK,EAAW,EAAGD,EAAY,IAG/D3/C,EAAIoH,UAAY5xB,KAAKqyE,gBAAgBj0E,K,+BAE9B27B,EAAIvP,EAAKtd,GAAS,IAYrByiE,EAAUiF,EAAW3jD,EAAO7yB,EAAGkoB,EAAGja,EAAM8gB,EAXrCgiD,EAAQnvE,KAARmvE,KACAgB,EAA0EjjE,EAA1EijE,YAAa0E,EAA6D3nE,EAA7D2nE,UAAW3E,EAAkDhjE,EAAlDgjE,cAAe/F,EAAmCj9D,EAAnCi9D,UAAWC,EAAwBl9D,EAAxBk9D,SAAUhZ,EAAclkD,EAAdkkD,WAC7Die,EAAW37C,GAAOxmB,EAAQmiE,UAC5ByF,EAAiBzF,EAAShlD,WAC1B0qD,EAAe,EACblJ,EAAYhsC,GAAc3yB,EAAQ4yB,IAAK9/B,KAAK4N,EAAG5N,KAAK6sB,OACpDmoD,EAAiB,SAASjkD,GAC9BvG,EAAIiH,SAASV,EAAM86C,EAAUj+D,EAAEmsB,EAAGnsB,EAAImnE,GAAeh7C,EAAGlsB,EAAIinE,EAAiB,GAC7E/6C,EAAGlsB,GAAKinE,EAAiB3E,GAErB8E,EAA0BpJ,EAAUh6C,UAAUgjD,GAWpD,IATArqD,EAAIqH,UAAYgjD,EAChBrqD,EAAIsH,aAAe,SACnBtH,EAAIN,KAAOmlD,EAAS3iD,OACpBqN,EAAGnsB,EAAI2jE,GAAYvxE,KAAMi1E,EAAyB/nE,GAClDsd,EAAIoH,UAAY1kB,EAAQgoE,UACxBrpE,EAAK7L,KAAK8vE,WAAYkF,GACtBD,EAAe7E,GAA6C,UAA5B+E,EACd,WAAdJ,EAA0BzK,EAAW,EAAIhZ,EAAegZ,EAAW,EAAIhZ,EACvE,EACChzD,EAAI,EAAGiO,EAAO8iE,EAAK9wE,OAAQD,EAAIiO,IAAQjO,EAAG,CAU7C,IATAuxE,EAAWR,EAAK/wE,GAChBw2E,EAAY50E,KAAKqyE,gBAAgBj0E,GACjCosB,EAAIoH,UAAYgjD,EAChB/oE,EAAK8jE,EAASC,OAAQoF,GACtB/jD,EAAQ0+C,EAAS1+C,MACbi/C,GAAiBj/C,EAAM5yB,SACzB2B,KAAKm1E,cAAc3qD,EAAKuP,EAAI37B,EAAGytE,EAAW3+D,GAC1C4nE,EAAiBlyE,KAAK+E,IAAI0nE,EAAShlD,WAAY8/C,IAE5C7jD,EAAI,EAAG6G,EAAO8D,EAAM5yB,OAAQioB,EAAI6G,IAAQ7G,EAC3C0uD,EAAe/jD,EAAM3K,IACrBwuD,EAAiBzF,EAAShlD,WAE5Bxe,EAAK8jE,EAASE,MAAOmF,GAEvBD,EAAe,EACfD,EAAiBzF,EAAShlD,WAC1Bxe,EAAK7L,KAAK+vE,UAAWiF,GACrBj7C,EAAGlsB,GAAKsiE,I,iCAECp2C,EAAIvP,EAAKtd,GAClB,IAEIoiE,EAAYlxE,EAFVgxE,EAASpvE,KAAKovE,OACd/wE,EAAS+wE,EAAO/wE,OAEtB,GAAIA,EAAQ,CACV,IAAMwtE,EAAYhsC,GAAc3yB,EAAQ4yB,IAAK9/B,KAAK4N,EAAG5N,KAAK6sB,OAQ1D,IAPAkN,EAAGnsB,EAAI2jE,GAAYvxE,KAAMkN,EAAQkoE,YAAaloE,GAC9C6sB,EAAGlsB,GAAKX,EAAQkjE,gBAChB5lD,EAAIqH,UAAYg6C,EAAUh6C,UAAU3kB,EAAQkoE,aAC5C5qD,EAAIsH,aAAe,SACnBw9C,EAAa57C,GAAOxmB,EAAQoiE,YAC5B9kD,EAAIoH,UAAY1kB,EAAQmoE,YACxB7qD,EAAIN,KAAOolD,EAAW5iD,OACjBtuB,EAAI,EAAGA,EAAIC,IAAUD,EACxBosB,EAAIiH,SAAS29C,EAAOhxE,GAAIytE,EAAUj+D,EAAEmsB,EAAGnsB,GAAImsB,EAAGlsB,EAAIyhE,EAAWjlD,WAAa,GAC1E0P,EAAGlsB,GAAKyhE,EAAWjlD,WAAand,EAAQmjE,iB,qCAI/Bt2C,EAAIvP,EAAK8qD,EAAapoE,GAAS,IACrCyjE,EAAkB3wE,KAAlB2wE,OAAQF,EAAUzwE,KAAVywE,OACR7iE,EAAQmsB,EAARnsB,EAAGC,EAAKksB,EAALlsB,EACHgf,EAAiByoD,EAAjBzoD,MAAOoB,EAAUqnD,EAAVrnD,OAH8B,EAISuF,GAActmB,EAAQohB,cAApEmE,EAJqC,EAIrCA,QAASG,EAJ4B,EAI5BA,SAAUF,EAJkB,EAIlBA,WAAYC,EAJM,EAINA,YACtCnI,EAAIoH,UAAY1kB,EAAQsc,gBACxBgB,EAAI6G,YAAcnkB,EAAQuc,YAC1Be,EAAI8G,UAAYpkB,EAAQoiB,YACxB9E,EAAIqE,YACJrE,EAAIyE,OAAOrhB,EAAI6kB,EAAS5kB,GACT,QAAX4iE,GACFzwE,KAAKu1E,UAAUx7C,EAAIvP,EAAK8qD,EAAapoE,GAEvCsd,EAAI0E,OAAOthB,EAAIif,EAAQ+F,EAAU/kB,GACjC2c,EAAIgrD,iBAAiB5nE,EAAIif,EAAOhf,EAAGD,EAAIif,EAAOhf,EAAI+kB,GACnC,WAAX69C,GAAkC,UAAXE,GACzB3wE,KAAKu1E,UAAUx7C,EAAIvP,EAAK8qD,EAAapoE,GAEvCsd,EAAI0E,OAAOthB,EAAIif,EAAOhf,EAAIogB,EAAS0E,GACnCnI,EAAIgrD,iBAAiB5nE,EAAIif,EAAOhf,EAAIogB,EAAQrgB,EAAIif,EAAQ8F,EAAa9kB,EAAIogB,GAC1D,WAAXwiD,GACFzwE,KAAKu1E,UAAUx7C,EAAIvP,EAAK8qD,EAAapoE,GAEvCsd,EAAI0E,OAAOthB,EAAI8kB,EAAY7kB,EAAIogB,GAC/BzD,EAAIgrD,iBAAiB5nE,EAAGC,EAAIogB,EAAQrgB,EAAGC,EAAIogB,EAASyE,GACrC,WAAX+9C,GAAkC,SAAXE,GACzB3wE,KAAKu1E,UAAUx7C,EAAIvP,EAAK8qD,EAAapoE,GAEvCsd,EAAI0E,OAAOthB,EAAGC,EAAI4kB,GAClBjI,EAAIgrD,iBAAiB5nE,EAAGC,EAAGD,EAAI6kB,EAAS5kB,GACxC2c,EAAIwE,YACJxE,EAAI6E,OACAniB,EAAQoiB,YAAc,GACxB9E,EAAI+E,W,6CAGeriB,GACrB,IAAM2c,EAAQ7pB,KAAK6pB,MACb4Z,EAAQzjC,KAAKooC,YACbqtC,EAAQhyC,GAASA,EAAM71B,EACvB8nE,EAAQjyC,GAASA,EAAM51B,EAC7B,GAAI4nE,GAASC,EAAO,CAClB,IAAMpzB,EAAW+rB,GAAYnhE,EAAQo1C,UAAU39C,KAAK3E,KAAMA,KAAKukC,QAASvkC,KAAK4xE,gBAC7E,IAAKtvB,EACH,OAEF,IAAMxzC,EAAO9O,KAAK6xE,MAAQ3C,GAAelvE,KAAMkN,GACzCumE,EAAkB/0E,OAAOwX,OAAO,GAAIosC,EAAUtiD,KAAK6xE,OACnDV,EAAYH,GAAmBnnD,EAAO3c,EAASumE,GAC/ChkD,EAAQyhD,GAAmBhkE,EAASumE,EAAiBtC,EAAWtnD,GAClE4rD,EAAMhvC,MAAQhX,EAAM7hB,GAAK8nE,EAAMjvC,MAAQhX,EAAM5hB,IAC/C7N,KAAK2wE,OAASQ,EAAUR,OACxB3wE,KAAKywE,OAASU,EAAUV,OACxBzwE,KAAK6sB,MAAQ/d,EAAK+d,MAClB7sB,KAAKiuB,OAASnf,EAAKmf,OACnBjuB,KAAKiyE,OAAS3vB,EAAS10C,EACvB5N,KAAKkyE,OAAS5vB,EAASz0C,EACvB7N,KAAKuxC,qBAAqBhpC,OAAOvI,KAAMyvB,O,oCAK3C,QAASzvB,KAAK2xE,U,2BAEXnnD,GACH,IAAMtd,EAAUlN,KAAKkN,QAAQ4oB,WAAW91B,KAAK8tB,cACzC6jD,EAAU3xE,KAAK2xE,QACnB,GAAKA,EAAL,CAGA3xE,KAAK21E,uBAAuBzoE,GAC5B,IAAMooE,EAAc,CAClBzoD,MAAO7sB,KAAK6sB,MACZoB,OAAQjuB,KAAKiuB,QAET8L,EAAK,CACTnsB,EAAG5N,KAAK4N,EACRC,EAAG7N,KAAK6N,GAEV8jE,EAAU/uE,KAAK4N,IAAImhE,GAAW,KAAO,EAAIA,EACzC,IAAM9wB,EAAUptB,GAAUvmB,EAAQ2zC,SAC5B+0B,EAAoB51E,KAAK83C,MAAMz5C,QAAU2B,KAAK8vE,WAAWzxE,QAAU2B,KAAKmvE,KAAK9wE,QAAU2B,KAAK+vE,UAAU1xE,QAAU2B,KAAKovE,OAAO/wE,OAC9H6O,EAAQsyC,SAAWo2B,IACrBprD,EAAI0C,OACJ1C,EAAIqrD,YAAclE,EAClB3xE,KAAKwrD,eAAezxB,EAAIvP,EAAK8qD,EAAapoE,GAC1CozB,GAAsB9V,EAAKtd,EAAQk/D,eACnCryC,EAAGlsB,GAAKgzC,EAAQ/wB,IAChB9vB,KAAK0rD,UAAU3xB,EAAIvP,EAAKtd,GACxBlN,KAAK81E,SAAS/7C,EAAIvP,EAAKtd,GACvBlN,KAAK+1E,WAAWh8C,EAAIvP,EAAKtd,GACzB0zB,GAAqBpW,EAAKtd,EAAQk/D,eAClC5hD,EAAI8C,c,0CAIN,OAAOttB,KAAKukC,SAAW,K,wCAEPq9B,EAAgB8M,GAAe,WACzC7M,EAAa7hE,KAAKukC,QAClB8C,EAASu6B,EAAeh1D,KAAI,YAA2B,IAAzBJ,EAAyB,EAAzBA,aAAcC,EAAW,EAAXA,MAC1CkI,EAAO,EAAKkV,MAAMujB,eAAe5gC,GACvC,IAAKmI,EACH,MAAM,IAAIjO,MAAM,kCAAoC8F,GAEtD,MAAO,CACLA,eACAgvB,QAAS7mB,EAAKxN,KAAKsF,GACnBA,YAGEwJ,GAAW/J,EAAe21D,EAAYx6B,GACtC2uC,EAAkBh2E,KAAKi2E,iBAAiB5uC,EAAQqnC,IAClDz4D,GAAW+/D,KACbh2E,KAAKukC,QAAU8C,EACfrnC,KAAK4xE,eAAiBlD,EACtB1uE,KAAKk2E,qBAAsB,EAC3Bl2E,KAAKuI,QAAO,M,kCAGJvG,EAAG+/D,GAA4B,IAApBK,IAAoB,yDACzC,GAAIL,GAAU/hE,KAAKk2E,oBACjB,OAAO,EAETl2E,KAAKk2E,qBAAsB,EAC3B,IAAMhpE,EAAUlN,KAAKkN,QACf20D,EAAa7hE,KAAKukC,SAAW,GAC7B8C,EAASrnC,KAAKuiE,mBAAmBvgE,EAAG6/D,EAAYE,EAAQK,GACxD4T,EAAkBh2E,KAAKi2E,iBAAiB5uC,EAAQrlC,GAChDiU,EAAU8rD,IAAW71D,EAAem7B,EAAQw6B,IAAemU,EAWjE,OAVI//D,IACFjW,KAAKukC,QAAU8C,GACXn6B,EAAQsyC,SAAWtyC,EAAQymE,YAC7B3zE,KAAK4xE,eAAiB,CACpBhkE,EAAG5L,EAAE4L,EACLC,EAAG7L,EAAE6L,GAEP7N,KAAKuI,QAAO,EAAMw5D,KAGf9rD,I,yCAEUjU,EAAG6/D,EAAYE,EAAQK,GACxC,IAAMl1D,EAAUlN,KAAKkN,QACrB,GAAe,aAAXlL,EAAE+I,KACJ,MAAO,GAET,IAAKq3D,EACH,OAAOP,EAET,IAAMx6B,EAASrnC,KAAK6pB,MAAM+4C,0BAA0B5gE,EAAGkL,EAAQ2d,KAAM3d,EAAS60D,GAI9E,OAHI70D,EAAQnB,SACVs7B,EAAOt7B,UAEFs7B,I,uCAEQA,EAAQrlC,GAAG,IACnBiwE,EAA2BjyE,KAA3BiyE,OAAQC,EAAmBlyE,KAAnBkyE,OAAQhlE,EAAWlN,KAAXkN,QACjBo1C,EAAW+rB,GAAYnhE,EAAQo1C,UAAU39C,KAAK3E,KAAMqnC,EAAQrlC,GAClE,OAAoB,IAAbsgD,IAAuB2vB,IAAW3vB,EAAS10C,GAAKskE,IAAW5vB,EAASz0C,O,GAlhBzD8vC,IAqhBtB+zB,GAAQrD,YAAcA,GACtB,IAAI8H,GAAiB,CACnBtrE,GAAI,UACJ0iE,SAAUmE,GACVrD,eACA+H,UAJmB,SAITvsD,EAAO2jD,EAAOtgE,GAClBA,IACF2c,EAAMguB,QAAU,IAAI65B,GAAQ,CAAC7nD,QAAO3c,cAGxCg3C,aATmB,SASNr6B,EAAO2jD,EAAOtgE,GACrB2c,EAAMguB,SACRhuB,EAAMguB,QAAQ5L,WAAW/+B,IAG7BnG,MAdmB,SAcb8iB,EAAO2jD,EAAOtgE,GACd2c,EAAMguB,SACRhuB,EAAMguB,QAAQ5L,WAAW/+B,IAG7BmpE,UAnBmB,SAmBTxsD,GACR,IAAMguB,EAAUhuB,EAAMguB,QACtB,GAAIA,GAAWA,EAAQy+B,cAAe,CACpC,IAAMl1E,EAAO,CACXy2C,WAEF,IAAuD,IAAnDhuB,EAAMi8B,cAAc,oBAAqB1kD,GAC3C,OAEFy2C,EAAQvT,KAAKza,EAAMW,KACnBX,EAAMi8B,cAAc,mBAAoB1kD,KAG5CssE,WAhCmB,SAgCR7jD,EAAOzoB,GAChB,GAAIyoB,EAAMguB,QAAS,CACjB,IAAM+F,EAAmBx8C,EAAK2gE,OAC1Bl4C,EAAMguB,QAAQ81B,YAAYvsE,EAAK2jC,MAAO6Y,EAAkBx8C,EAAKghE,eAC/DhhE,EAAK6U,SAAU,KAIrBoT,SAAU,CACRm2B,SAAS,EACTm0B,SAAU,KACVrxB,SAAU,UACV94B,gBAAiB,kBACjB2qD,WAAY,OACZvH,UAAW,CACT7kD,OAAQ,QAEVioD,aAAc,EACdC,kBAAmB,EACnB5tB,WAAY,OACZ6yB,UAAW,OACX/E,YAAa,EACbd,SAAU,GAEVwF,UAAW,OACXQ,YAAa,OACbhF,cAAe,EACfD,gBAAiB,EACjBd,WAAY,CACVvnD,OAAQ,QAEVqtD,YAAa,OACbv0B,QAAS,EACTiwB,aAAc,EACdD,UAAW,EACXviD,aAAc,EACd67C,UAAW,SAAC3/C,EAAKwG,GAAN,OAAeA,EAAKq+C,SAASvgE,MACxCs7D,SAAU,SAAC5/C,EAAKwG,GAAN,OAAeA,EAAKq+C,SAASvgE,MACvC0lE,mBAAoB,OACpBtE,eAAe,EACf9e,WAAY,EACZ3nC,YAAa,gBACb6F,YAAa,EACb/F,UAAW,CACTsa,SAAU,IACVqC,OAAQ,gBAEVsB,WAAY,CACVJ,QAAS,CACPr8B,KAAM,SACNvH,WAAY,CAAC,IAAK,IAAK,QAAS,SAAU,SAAU,WAEtDmuE,QAAS,CACPzrC,OAAQ,SACRrC,SAAU,MAGdF,UAAW,CACT4uC,YAAa5nE,EACbmtC,MAFS,SAEHw6B,GACJ,GAAIA,EAAaj0E,OAAS,EAAG,CAC3B,IAAM0Q,EAAOujE,EAAa,GACpB/jC,EAASx/B,EAAK8a,MAAM1iB,KAAKonC,OACzBgoC,EAAahoC,EAASA,EAAOlwC,OAAS,EAC5C,GAAI2B,MAAQA,KAAKkN,SAAiC,YAAtBlN,KAAKkN,QAAQ2d,KACvC,OAAO9b,EAAKs9B,QAAQoD,OAAS,GACxB,GAAI1gC,EAAK0gC,MACd,OAAO1gC,EAAK0gC,MACP,GAAI8mC,EAAa,GAAKxnE,EAAKohC,UAAYomC,EAC5C,OAAOhoC,EAAOx/B,EAAKohC,WAGvB,MAAO,IAETqiC,WAAY7nE,EACZmlE,WAAYnlE,EACZgoE,YAAahoE,EACb8kC,MApBS,SAoBH4L,GACJ,GAAIr7C,MAAQA,KAAKkN,SAAiC,YAAtBlN,KAAKkN,QAAQ2d,KACvC,OAAOwwB,EAAY5L,MAAQ,KAAO4L,EAAYE,gBAAkBF,EAAYE,eAE9E,IAAI9L,EAAQ4L,EAAYhP,QAAQoD,OAAS,GACrCA,IACFA,GAAS,MAEX,IAAM/vC,EAAQ27C,EAAYE,eAI1B,OAHKzwC,EAAcpL,KACjB+vC,GAAS/vC,GAEJ+vC,GAETujC,WAlCS,SAkCE33B,GACT,IACMnuC,EADOmuC,EAAYxxB,MAAMujB,eAAeiO,EAAY7uC,cACrC29B,WAAWxL,SAAS0c,EAAYlL,WACrD,MAAO,CACL1mB,YAAavc,EAAQuc,YACrBD,gBAAiBtc,EAAQsc,gBACzB8F,YAAapiB,EAAQoiB,YACrB2T,WAAY/1B,EAAQ+1B,WACpBC,iBAAkBh2B,EAAQg2B,iBAC1BigC,aAAc,IAGlB+P,eA9CS,WA+CP,OAAOlzE,KAAKkN,QAAQgoE,WAEtBjC,gBAjDS,SAiDO53B,GACd,IACMnuC,EADOmuC,EAAYxxB,MAAMujB,eAAeiO,EAAY7uC,cACrC29B,WAAWxL,SAAS0c,EAAYlL,WACrD,MAAO,CACL5hB,WAAYrhB,EAAQqhB,WACpBC,SAAUthB,EAAQshB,WAGtBokD,WAAYjoE,EACZolE,UAAWplE,EACXkoE,aAAcloE,EACdykE,OAAQzkE,EACRmoE,YAAanoE,IAGjBozC,cAAe,CACbsxB,SAAU,OACVC,WAAY,OACZ1C,UAAW,QAEb7jD,YAAa,CACXoD,YAAa,SAACR,GAAD,MAAmB,WAATA,GAA8B,aAATA,GAAgC,aAATA,GACnEU,YAAY,EACZsX,UAAW,CACTxX,aAAa,EACbE,YAAY,GAEd9C,UAAW,CACT+C,WAAW,GAEbkb,WAAY,CACVlb,UAAW,cAGf8tC,uBAAwB,CAAC,gBAsB3B,SAASoc,GAAejoC,EAAQ6B,EAAK3jC,EAAOgqE,GAC1C,IAAM92B,EAAQpR,EAAOvhC,QAAQojC,GAC7B,OAAe,IAAXuP,EAXc,SAACpR,EAAQ6B,EAAK3jC,EAAOgqE,GAOvC,MANmB,kBAARrmC,GACT3jC,EAAQ8hC,EAAOlpC,KAAK+qC,GAAO,EAC3BqmC,EAAYC,QAAQ,CAACjqE,QAAOgjC,MAAOW,KAC1B9/B,MAAM8/B,KACf3jC,EAAQ,MAEHA,EAKEkqE,CAAYpoC,EAAQ6B,EAAK3jC,EAAOgqE,GAGlC92B,IADMpR,EAAOqoC,YAAYxmC,GACR3jC,EAAQkzC,EAElC,IACMk3B,G,kDACJ,WAAYxuE,GAAK,kCACf,cAAMA,IACDyuE,iBAAcx1E,EACnB,EAAKy1E,YAAc,EACnB,EAAKC,aAAe,GAJL,E,iDAMZve,GACH,IAAMwe,EAAQj3E,KAAKg3E,aACnB,GAAIC,EAAM54E,OAAQ,CAChB,IADgB,EACVkwC,EAASvuC,KAAKwuC,YADJ,cAEayoC,GAFb,IAEhB,2BAAoC,eAAxBxqE,EAAwB,EAAxBA,MAAOgjC,EAAiB,EAAjBA,MACblB,EAAO9hC,KAAWgjC,GACpBlB,EAAOrmC,OAAOuE,EAAO,IAJT,8BAOhBzM,KAAKg3E,aAAe,GAEtB,4DAAWve,K,4BAEProB,EAAK3jC,GACT,GAAI3B,EAAcslC,GAChB,OAAO,KAET,IAAM7B,EAASvuC,KAAKwuC,YAGpB,OA5Be,SAAC/hC,EAAO9E,GAAR,OAA0B,OAAV8E,EAAiB,KAAO+F,GAAY5P,KAAKmN,MAAMtD,GAAQ,EAAG9E,GA4BlFs6C,CAFPx1C,EAAQtB,SAASsB,IAAU8hC,EAAO9hC,KAAW2jC,EAAM3jC,EAC/C+pE,GAAejoC,EAAQ6B,EAAK9kC,EAAemB,EAAO2jC,GAAMpwC,KAAKg3E,cACxCzoC,EAAOlwC,OAAS,K,4CAErB,MACa2B,KAAKoV,gBAA/BC,EADa,EACbA,WAAYC,EADC,EACDA,WADC,EAEHtV,KAAK+jD,WAAU,GAA3Bj8C,EAFe,EAEfA,IAAKH,EAFU,EAEVA,IACkB,UAAxB3H,KAAKkN,QAAQk0B,SACV/rB,IACHvN,EAAM,GAEHwN,IACH3N,EAAM3H,KAAKwuC,YAAYnwC,OAAS,IAGpC2B,KAAK8H,IAAMA,EACX9H,KAAK2H,IAAMA,I,mCAGX,IAAMG,EAAM9H,KAAK8H,IACXH,EAAM3H,KAAK2H,IACXI,EAAS/H,KAAKkN,QAAQnF,OACtBgrC,EAAQ,GACVxE,EAASvuC,KAAKwuC,YAClBD,EAAkB,IAARzmC,GAAaH,IAAQ4mC,EAAOlwC,OAAS,EAAKkwC,EAASA,EAAO3pC,MAAMkD,EAAKH,EAAM,GACrF3H,KAAK+2E,YAAcn0E,KAAK+E,IAAI4mC,EAAOlwC,QAAU0J,EAAS,EAAI,GAAI,GAC9D/H,KAAK82E,YAAc92E,KAAK8H,KAAOC,EAAS,GAAM,GAC9C,IAAK,IAAIrI,EAAQoI,EAAKpI,GAASiI,EAAKjI,IAClCqzC,EAAM1tC,KAAK,CAAC3F,UAEd,OAAOqzC,I,uCAEQrzC,GACf,IAAM6uC,EAASvuC,KAAKwuC,YACpB,OAAI9uC,GAAS,GAAKA,EAAQ6uC,EAAOlwC,OACxBkwC,EAAO7uC,GAETA,I,kCAGP,kEACKM,KAAK60C,iBACR70C,KAAKojD,gBAAkBpjD,KAAKojD,kB,uCAGf1jD,GAIf,MAHqB,kBAAVA,IACTA,EAAQM,KAAK2F,MAAMjG,IAEJ,OAAVA,EAAiBmvC,IAAM7uC,KAAK02C,oBAAoBh3C,EAAQM,KAAK82E,aAAe92E,KAAK+2E,e,sCAE1EtqE,GACd,IAAMsmC,EAAQ/yC,KAAK+yC,MACnB,OAAItmC,EAAQ,GAAKA,EAAQsmC,EAAM10C,OAAS,EAC/B,KAEF2B,KAAKuV,iBAAiBw9B,EAAMtmC,GAAO/M,S,uCAE3B+tB,GACf,OAAO7qB,KAAKmN,MAAM/P,KAAK82E,YAAc92E,KAAKk3E,mBAAmBzpD,GAASztB,KAAK+2E,e,qCAG3E,OAAO/2E,KAAK+vB,W,GAvFYyyB,IAiG5B,SAAS20B,GAAgBC,EAAmBC,GAC1C,IAWI5xC,EAAQ6xC,EAASC,EAASC,EAXxBzkC,EAAQ,GAEP3R,EAAgFg2C,EAAhFh2C,OAAQ9+B,EAAwE80E,EAAxE90E,KAAMwF,EAAkEsvE,EAAlEtvE,IAAKH,EAA6DyvE,EAA7DzvE,IAAK8vE,EAAwDL,EAAxDK,UAAW1iE,EAA6CqiE,EAA7CriE,MAAO2iE,EAAsCN,EAAtCM,SAAUC,EAA4BP,EAA5BO,UAAWC,EAAiBR,EAAjBQ,cAChE1pB,EAAO5rD,GAAQ,EACfu1E,EAAYH,EAAW,EACjBI,EAAmBT,EAAxBvvE,IAAgBiwE,EAAQV,EAAb1vE,IACZ0N,GAAcvK,EAAchD,GAC5BwN,GAAcxK,EAAcnD,GAC5BqwE,GAAgBltE,EAAciK,GAC9BkjE,GAAcF,EAAOD,IAASH,EAAY,GAC5Cn/B,EAAU5oC,GAASmoE,EAAOD,GAAQD,EAAY3pB,GAAQA,EAE1D,GAAI1V,EAXgB,QAWUnjC,IAAeC,EAC3C,MAAO,CAAC,CAAC5V,MAAOo4E,GAAO,CAACp4E,MAAOq4E,KAEjCP,EAAY50E,KAAK8B,KAAKqzE,EAAOv/B,GAAW51C,KAAKuN,MAAM2nE,EAAOt/B,IAC1Cq/B,IACdr/B,EAAU5oC,EAAQ4nE,EAAYh/B,EAAUq/B,EAAY3pB,GAAQA,GAEzDpjD,EAAc2sE,KACjBhyC,EAAS7iC,KAAKsN,IAAI,GAAIunE,GACtBj/B,EAAU51C,KAAK8B,KAAK8zC,EAAU/S,GAAUA,GAE3B,UAAXrE,GACFk2C,EAAU10E,KAAKuN,MAAM2nE,EAAOt/B,GAAWA,EACvC++B,EAAU30E,KAAK8B,KAAKqzE,EAAOv/B,GAAWA,IAEtC8+B,EAAUQ,EACVP,EAAUQ,GAER1iE,GAAcC,GAAchT,GD/gSlC,SAAqBsL,EAAG2C,GACtB,IAAM2nE,EAAUt1E,KAAKmN,MAAMnC,GAC3B,OAASsqE,EAAU3nE,GAAY3C,GAAQsqE,EAAU3nE,GAAY3C,EC6gSrBuqE,EAAaxwE,EAAMG,GAAOxF,EAAMk2C,EAAU,MAEhFA,GAAW7wC,EAAMG,IADjB0vE,EAAY50E,KAAKmN,MAAMnN,KAAKkF,KAAKH,EAAMG,GAAO0wC,EAASk/B,KAEvDJ,EAAUxvE,EACVyvE,EAAU5vE,GACDqwE,EAITx/B,IAFA++B,EAAUjiE,EAAa3N,EAAM4vE,IAD7BD,EAAUjiE,EAAavN,EAAMwvE,KAE7BE,EAAYziE,EAAQ,GAKlByiE,EADExnE,EADJwnE,GAAaD,EAAUD,GAAW9+B,EACN51C,KAAKmN,MAAMynE,GAAYh/B,EAAU,KAC/C51C,KAAKmN,MAAMynE,GAEX50E,KAAK8B,KAAK8yE,GAG1B,IAAMY,EAAgBx1E,KAAK+E,IACzBoJ,GAAeynC,GACfznC,GAAeumE,IAEjB7xC,EAAS7iC,KAAKsN,IAAI,GAAIpF,EAAc2sE,GAAaW,EAAgBX,GACjEH,EAAU10E,KAAKmN,MAAMunE,EAAU7xC,GAAUA,EACzC8xC,EAAU30E,KAAKmN,MAAMwnE,EAAU9xC,GAAUA,EACzC,IAAInf,EAAI,EAcR,IAbIjR,IACEuiE,GAAiBN,IAAYxvE,GAC/BirC,EAAM1tC,KAAK,CAAC3F,MAAOoI,IACfwvE,EAAUxvE,GACZwe,IAEEtW,EAAapN,KAAKmN,OAAOunE,EAAUhxD,EAAIkyB,GAAW/S,GAAUA,EAAQ39B,EAAKuwE,GAAkBvwE,EAAKmwE,EAAYb,KAC9G9wD,KAEOgxD,EAAUxvE,GACnBwe,KAGGA,EAAIkxD,IAAalxD,EACtBysB,EAAM1tC,KAAK,CAAC3F,MAAOkD,KAAKmN,OAAOunE,EAAUhxD,EAAIkyB,GAAW/S,GAAUA,IAWpE,OATInwB,GAAcsiE,GAAiBL,IAAY5vE,EACzCorC,EAAM10C,QAAU2R,EAAa+iC,EAAMA,EAAM10C,OAAS,GAAGqB,MAAOiI,EAAK0wE,GAAkB1wE,EAAKswE,EAAYb,IACtGrkC,EAAMA,EAAM10C,OAAS,GAAGqB,MAAQiI,EAEhCorC,EAAM1tC,KAAK,CAAC3F,MAAOiI,IAEX2N,GAAciiE,IAAY5vE,GACpCorC,EAAM1tC,KAAK,CAAC3F,MAAO63E,IAEdxkC,EAET,SAASslC,GAAkB34E,EAAOu4E,EAAlC,GAAyE,IAA1BlkC,EAA0B,EAA1BA,WACvCrlB,EAAM/d,EAD2D,EAAdmwC,aAEnD55B,GAAS6sB,EAAanxC,KAAK0T,IAAIoY,GAAO9rB,KAAK2U,IAAImX,KAAS,KACxDrwB,EAAS,IAAO45E,GAAc,GAAKv4E,GAAOrB,OAChD,OAAOuE,KAAKkF,IAAImwE,EAAa/wD,EAAO7oB,GA/FtCw4E,GAAchsE,GAAK,WACnBgsE,GAAcxtD,SAAW,CACvB0pB,MAAO,CACLpnC,SAAUkrE,GAAc53E,UAAUywC,mB,IA8FhC4oC,G,kDACJ,WAAYjwE,GAAK,kCACf,cAAMA,IACD4J,WAAQ3Q,EACb,EAAK4Q,SAAM5Q,EACX,EAAKw1E,iBAAcx1E,EACnB,EAAKi3E,eAAYj3E,EACjB,EAAKy1E,YAAc,EANJ,E,kDAQX3mC,EAAK3jC,GACT,OAAI3B,EAAcslC,KAGE,kBAARA,GAAoBA,aAAellC,UAAYC,UAAUilC,GAF5D,MAKDA,I,+CAEe,IAChBuH,EAAe33C,KAAKkN,QAApByqC,YADgB,EAEU33C,KAAKoV,gBAA/BC,EAFgB,EAEhBA,WAAYC,EAFI,EAEJA,WACdxN,EAAY9H,KAAZ8H,IAAKH,EAAO3H,KAAP2H,IACJ6wE,EAAS,SAAA7qE,GAAC,OAAK7F,EAAMuN,EAAavN,EAAM6F,GACxC8qE,EAAS,SAAA9qE,GAAC,OAAKhG,EAAM2N,EAAa3N,EAAMgG,GAC9C,GAAIgqC,EAAa,CACf,IAAM+gC,EAAU/oE,EAAK7H,GACf6wE,EAAUhpE,EAAKhI,GACjB+wE,EAAU,GAAKC,EAAU,EAC3BF,EAAO,GACEC,EAAU,GAAKC,EAAU,GAClCH,EAAO,GAGX,GAAI1wE,IAAQH,EAAK,CACf,IAAII,EAAS,GACTJ,GAAOuD,OAAO0tE,kBAAoB9wE,GAAOoD,OAAO2tE,oBAClD9wE,EAASnF,KAAK4N,IAAU,IAAN7I,IAEpB8wE,EAAO9wE,EAAMI,GACR4vC,GACH6gC,EAAO1wE,EAAMC,GAGjB/H,KAAK8H,IAAMA,EACX9H,KAAK2H,IAAMA,I,qCAGX,IAEI+vE,EAFE74B,EAAW7+C,KAAKkN,QAAQ6lC,MACzBgM,EAA2BF,EAA3BE,cAAe+5B,EAAYj6B,EAAZi6B,SAepB,OAbIA,GACFpB,EAAW90E,KAAK8B,KAAK1E,KAAK2H,IAAMmxE,GAAYl2E,KAAKuN,MAAMnQ,KAAK8H,IAAMgxE,GAAY,GAC/D,MACbllD,QAAQC,KAAR,iBAAuB7zB,KAAK6K,GAA5B,4BAAkDiuE,EAAlD,0CAA4FpB,EAA5F,8BACAA,EAAW,MAGbA,EAAW13E,KAAK+4E,mBAChBh6B,EAAgBA,GAAiB,IAE/BA,IACF24B,EAAW90E,KAAKkF,IAAIi3C,EAAe24B,IAE9BA,I,yCAGP,OAAOxsE,OAAOmE,oB,mCAGd,IAAM2hB,EAAOhxB,KAAKkN,QACZ2xC,EAAW7tB,EAAK+hB,MAClB2kC,EAAW13E,KAAKg5E,eAgBdjmC,EAAQokC,GAdkB,CAC9BO,SAFFA,EAAW90E,KAAK+E,IAAI,EAAG+vE,GAGrBt2C,OAAQpQ,EAAKoQ,OACbt5B,IAAKkpB,EAAKlpB,IACVH,IAAKqpB,EAAKrpB,IACV8vE,UAAW54B,EAAS44B,UACpBn1E,KAAMu8C,EAASi6B,SACf/jE,MAAO8pC,EAAS9pC,MAChB4iE,UAAW33E,KAAKi5E,aAChBllC,WAAY/zC,KAAK60C,eACjBiM,YAAajC,EAASiC,aAAe,EACrC82B,eAA0C,IAA3B/4B,EAAS+4B,eAER53E,KAAK+iD,QAAU/iD,MAajC,MAXoB,UAAhBgxB,EAAKoQ,QACP3wB,EAAmBsiC,EAAO/yC,KAAM,SAE9BgxB,EAAKjlB,SACPgnC,EAAMhnC,UACN/L,KAAKiS,MAAQjS,KAAK2H,IAClB3H,KAAKkS,IAAMlS,KAAK8H,MAEhB9H,KAAKiS,MAAQjS,KAAK8H,IAClB9H,KAAKkS,IAAMlS,KAAK2H,KAEXorC,I,kCAGP,IAAMA,EAAQ/yC,KAAK+yC,MACf9gC,EAAQjS,KAAK8H,IACboK,EAAMlS,KAAK2H,IAEf,GADA,kEACI3H,KAAKkN,QAAQnF,QAAUgrC,EAAM10C,OAAQ,CACvC,IAAM0J,GAAUmK,EAAMD,GAASrP,KAAK+E,IAAIorC,EAAM10C,OAAS,EAAG,GAAK,EAC/D4T,GAASlK,EACTmK,GAAOnK,EAET/H,KAAK82E,YAAc7kE,EACnBjS,KAAKu4E,UAAYrmE,EACjBlS,KAAK+2E,YAAc7kE,EAAMD,I,uCAEVvS,GACf,OAAOy/B,GAAaz/B,EAAOM,KAAK6pB,MAAM3c,QAAQmyB,OAAQr/B,KAAKkN,QAAQ6lC,MAAMnT,Y,GApH/C4iB,IAwHxB02B,G,oLACkB,MACDl5E,KAAK+jD,WAAU,GAA3Bj8C,EADa,EACbA,IAAKH,EADQ,EACRA,IACZ3H,KAAK8H,IAAMmD,EAAenD,GAAOA,EAAM,EACvC9H,KAAK2H,IAAMsD,EAAetD,GAAOA,EAAM,EACvC3H,KAAKm5E,2B,yCAGL,IAAMplC,EAAa/zC,KAAK60C,eAClBx2C,EAAS01C,EAAa/zC,KAAK6sB,MAAQ7sB,KAAKiuB,OACxC6yB,EAAcnwC,EAAU3Q,KAAKkN,QAAQ6lC,MAAM+N,aAC3C55B,GAAS6sB,EAAanxC,KAAK0T,IAAIwqC,GAAel+C,KAAK2U,IAAIupC,KAAiB,KACxE8G,EAAW5nD,KAAKooD,wBAAwB,GAC9C,OAAOxlD,KAAK8B,KAAKrG,EAASuE,KAAKkF,IAAI,GAAI8/C,EAASv9B,WAAanD,M,uCAE9CxnB,GACf,OAAiB,OAAVA,EAAiBmvC,IAAM7uC,KAAK02C,oBAAoBh3C,EAAQM,KAAK82E,aAAe92E,KAAK+2E,e,uCAEzEtpD,GACf,OAAOztB,KAAK82E,YAAc92E,KAAKk3E,mBAAmBzpD,GAASztB,KAAK+2E,gB,GAnB1CuB,IA6B1B,SAASc,GAAQC,GAEf,OAAkB,IADHA,EAAWz2E,KAAKsN,IAAI,GAAItN,KAAKuN,MAAMT,EAAM2pE,KAR1DH,GAAYruE,GAAK,SACjBquE,GAAY7vD,SAAW,CACrB0pB,MAAO,CACLpnC,SAAUgzC,GAAMX,WAAWC,U,IA8BzBq7B,G,kDACJ,WAAYjxE,GAAK,kCACf,cAAMA,IACD4J,WAAQ3Q,EACb,EAAK4Q,SAAM5Q,EACX,EAAKw1E,iBAAcx1E,EACnB,EAAKy1E,YAAc,EALJ,E,kDAOX3mC,EAAK3jC,GACT,IAAM/M,EAAQ44E,GAAgBr5E,UAAU0G,MAAMvF,MAAMJ,KAAM,CAACowC,EAAK3jC,IAChE,GAAc,IAAV/M,EAIJ,OAAOuL,EAAevL,IAAUA,EAAQ,EAAIA,EAAQ,KAHlDM,KAAKu5E,OAAQ,I,4CAKK,MACDv5E,KAAK+jD,WAAU,GAA3Bj8C,EADa,EACbA,IAAKH,EADQ,EACRA,IACZ3H,KAAK8H,IAAMmD,EAAenD,GAAOlF,KAAK+E,IAAI,EAAGG,GAAO,KACpD9H,KAAK2H,IAAMsD,EAAetD,GAAO/E,KAAK+E,IAAI,EAAGA,GAAO,KAChD3H,KAAKkN,QAAQyqC,cACf33C,KAAKu5E,OAAQ,GAEfv5E,KAAKm5E,2B,+CAEkB,MACUn5E,KAAKoV,gBAA/BC,EADgB,EAChBA,WAAYC,EADI,EACJA,WACfxN,EAAM9H,KAAK8H,IACXH,EAAM3H,KAAK2H,IACT6wE,EAAS,SAAA7qE,GAAC,OAAK7F,EAAMuN,EAAavN,EAAM6F,GACxC8qE,EAAS,SAAA9qE,GAAC,OAAKhG,EAAM2N,EAAa3N,EAAMgG,GACxC6rE,EAAM,SAAC7rE,EAAG6K,GAAJ,OAAU5V,KAAKsN,IAAI,GAAItN,KAAKuN,MAAMT,EAAM/B,IAAM6K,IACtD1Q,IAAQH,IACNG,GAAO,GACT0wE,EAAO,GACPC,EAAO,MAEPD,EAAOgB,EAAI1xE,GAAM,IACjB2wE,EAAOe,EAAI7xE,EAAK,MAGhBG,GAAO,GACT0wE,EAAOgB,EAAI7xE,GAAM,IAEfA,GAAO,GACT8wE,EAAOe,EAAI1xE,EAAK,IAEd9H,KAAKu5E,OAASv5E,KAAK8H,MAAQ9H,KAAKwjD,eAAiB17C,IAAQ0xE,EAAIx5E,KAAK8H,IAAK,IACzE0wE,EAAOgB,EAAI1xE,GAAM,IAEnB9H,KAAK8H,IAAMA,EACX9H,KAAK2H,IAAMA,I,mCAGX,IAAMqpB,EAAOhxB,KAAKkN,QAKZ6lC,EAjFV,SAAuBqkC,EAAmBC,GACxC,IAAMoC,EAAS72E,KAAKuN,MAAMT,EAAM2nE,EAAU1vE,MACpC+xE,EAAiB92E,KAAK8B,KAAK2yE,EAAU1vE,IAAM/E,KAAKsN,IAAI,GAAIupE,IACxD1mC,EAAQ,GACVsmC,EAAUjuE,EAAgBgsE,EAAkBtvE,IAAKlF,KAAKsN,IAAI,GAAItN,KAAKuN,MAAMT,EAAM2nE,EAAUvvE,QACzF0xE,EAAM52E,KAAKuN,MAAMT,EAAM2pE,IACvBM,EAAc/2E,KAAKuN,MAAMkpE,EAAUz2E,KAAKsN,IAAI,GAAIspE,IAChD/B,EAAY+B,EAAM,EAAI52E,KAAKsN,IAAI,GAAItN,KAAK4N,IAAIgpE,IAAQ,EACxD,GACEzmC,EAAM1tC,KAAK,CAAC3F,MAAO25E,EAAS95B,MAAO65B,GAAQC,KAEvB,OADlBM,IAEAA,EAAc,EAEdlC,IADE+B,GACiB,EAAI,EAAI/B,GAE7B4B,EAAUz2E,KAAKmN,MAAM4pE,EAAc/2E,KAAKsN,IAAI,GAAIspE,GAAO/B,GAAaA,QAC7D+B,EAAMC,GAAWD,IAAQC,GAAUE,EAAcD,GAC1D,IAAME,EAAWxuE,EAAgBgsE,EAAkBzvE,IAAK0xE,GAExD,OADAtmC,EAAM1tC,KAAK,CAAC3F,MAAOk6E,EAAUr6B,MAAO65B,GAAQC,KACrCtmC,EA6DS8mC,CAJY,CACxB/xE,IAAK9H,KAAKsjD,SACV37C,IAAK3H,KAAKqjD,UAEmCrjD,MAY/C,MAXoB,UAAhBgxB,EAAKoQ,QACP3wB,EAAmBsiC,EAAO/yC,KAAM,SAE9BgxB,EAAKjlB,SACPgnC,EAAMhnC,UACN/L,KAAKiS,MAAQjS,KAAK2H,IAClB3H,KAAKkS,IAAMlS,KAAK8H,MAEhB9H,KAAKiS,MAAQjS,KAAK8H,IAClB9H,KAAKkS,IAAMlS,KAAK2H,KAEXorC,I,uCAEQrzC,GACf,YAAiB4B,IAAV5B,EACH,IACAy/B,GAAaz/B,EAAOM,KAAK6pB,MAAM3c,QAAQmyB,OAAQr/B,KAAKkN,QAAQ6lC,MAAMnT,U,kCAGtE,IAAM3tB,EAAQjS,KAAK8H,IACnB,kEACA9H,KAAK82E,YAAcpnE,EAAMuC,GACzBjS,KAAK+2E,YAAcrnE,EAAM1P,KAAK2H,KAAO+H,EAAMuC,K,uCAE5BvS,GAIf,YAHc4B,IAAV5B,GAAiC,IAAVA,IACzBA,EAAQM,KAAK8H,KAED,OAAVpI,GAAkB4Q,MAAM5Q,GACnBmvC,IAEF7uC,KAAK02C,mBAAmBh3C,IAAUM,KAAK8H,IAC1C,GACC4H,EAAMhQ,GAASM,KAAK82E,aAAe92E,KAAK+2E,e,uCAE9BtpD,GACf,IAAM86B,EAAUvoD,KAAKk3E,mBAAmBzpD,GACxC,OAAO7qB,KAAKsN,IAAI,GAAIlQ,KAAK82E,YAAcvuB,EAAUvoD,KAAK+2E,iB,GAjG3Bv0B,IA8G/B,SAASs3B,GAAsB9oD,GAC7B,IAAM6tB,EAAW7tB,EAAK+hB,MACtB,GAAI8L,EAAS1B,SAAWnsB,EAAKmsB,QAAS,CACpC,IAAM0D,EAAUptB,GAAUorB,EAAS4C,iBACnC,OAAOn2C,EAAeuzC,EAAS30B,MAAQ20B,EAAS30B,KAAKpb,KAAMua,GAASa,KAAKpb,MAAQ+xC,EAAQ5yB,OAE3F,OAAO,EAST,SAAS8rD,GAAgBvoE,EAAOqqB,EAAK/sB,EAAMhH,EAAKH,GAC9C,OAAI6J,IAAU1J,GAAO0J,IAAU7J,EACtB,CACLsK,MAAO4pB,EAAO/sB,EAAO,EACrBoD,IAAK2pB,EAAO/sB,EAAO,GAEZ0C,EAAQ1J,GAAO0J,EAAQ7J,EACzB,CACLsK,MAAO4pB,EAAM/sB,EACboD,IAAK2pB,GAGF,CACL5pB,MAAO4pB,EACP3pB,IAAK2pB,EAAM/sB,GAGf,SAASkrE,GAAmB1uD,GAa1B,IAZA,IAzBwBd,EAAKN,EAAMulB,EAyB7B0E,EAAO,CACXv7B,EAAG0S,EAAMsE,KAAOtE,EAAMwiD,SAASl+C,KAC/B5qB,EAAGsmB,EAAMuE,MAAQvE,EAAMwiD,SAASj+C,MAChCzZ,EAAGkV,EAAMwE,IAAMxE,EAAMwiD,SAASh+C,IAC9BjhB,EAAGyc,EAAMyE,OAASzE,EAAMwiD,SAAS/9C,QAE7BkqD,EAASv7E,OAAOwX,OAAO,GAAIi+B,GAC3BkS,EAAa,GACbxF,EAAU,GACVq5B,EAAa5uD,EAAM6uD,aAAa97E,OAChC+7E,EAAiB9uD,EAAMpe,QAAQmwC,YAC/Bg9B,EAAkBD,EAAeE,kBAAoBrrE,EAAKirE,EAAa,EACpE97E,EAAI,EAAGA,EAAI87E,EAAY97E,IAAK,CACnC,IAAM4yB,EAAOopD,EAAetkD,WAAWxK,EAAMivD,qBAAqBn8E,IAClEyiD,EAAQziD,GAAK4yB,EAAK6vB,QAClB,IAAMpD,EAAgBnyB,EAAMkvD,iBAAiBp8E,EAAGktB,EAAMmvD,YAAc55B,EAAQziD,GAAIi8E,GAC1EK,EAAShnD,GAAO1C,EAAK9G,MACrB6jD,GA1CgBvjD,EA0CYc,EAAMd,IA1CbN,EA0CkBwwD,EAzC/CjrC,EAAQ7tC,EAD2B6tC,EA0CoBnkB,EAAM6uD,aAAa/7E,IAzCjDqxC,EAAQ,CAACA,GAC3B,CACL30B,EAAGgS,GAAatC,EAAKN,EAAKwC,OAAQ+iB,GAClC52B,EAAG42B,EAAMpxC,OAAS6rB,EAAKG,aAuCvBg8B,EAAWjoD,GAAK2vE,EAChB,IAAM/mB,EAAej1C,GAAgBuZ,EAAMuxB,cAAcz+C,GAAKi8E,GACxD7oE,EAAQ5O,KAAKmN,MAAMc,EAAUm2C,IAGnC2zB,GAAaV,EAAQ9lC,EAAM6S,EAFX+yB,GAAgBvoE,EAAOisC,EAAc7vC,EAAGmgE,EAASjzD,EAAG,EAAG,KACvDi/D,GAAgBvoE,EAAOisC,EAAc5vC,EAAGkgE,EAASl1D,EAAG,GAAI,MAG1EyS,EAAMsvD,eACJzmC,EAAKv7B,EAAIqhE,EAAOrhE,EAChBqhE,EAAOj1E,EAAImvC,EAAKnvC,EAChBmvC,EAAK/9B,EAAI6jE,EAAO7jE,EAChB6jE,EAAOprE,EAAIslC,EAAKtlC,GAElByc,EAAMuvD,iBAsBR,SAA8BvvD,EAAO+6B,EAAYxF,GAO/C,IANA,IAAMltC,EAAQ,GACRumE,EAAa5uD,EAAM6uD,aAAa97E,OAChC2yB,EAAO1F,EAAMpe,QACb4tE,EAAQhB,GAAsB9oD,GAAQ,EACtC+pD,EAAgBzvD,EAAMmvD,YACtBJ,EAAkBrpD,EAAKqsB,YAAYi9B,kBAAoBrrE,EAAKirE,EAAa,EACtE97E,EAAI,EAAGA,EAAI87E,EAAY97E,IAAK,CACnC,IAAM48E,EAAqB1vD,EAAMkvD,iBAAiBp8E,EAAG28E,EAAgBD,EAAQj6B,EAAQziD,GAAIi8E,GACnF7oE,EAAQ5O,KAAKmN,MAAMc,EAAUkB,GAAgBipE,EAAmBxpE,MAAQjC,KACxET,EAAOu3C,EAAWjoD,GAClByP,EAAIotE,GAAUD,EAAmBntE,EAAGiB,EAAK+J,EAAGrH,GAC5CqgB,EAAYqpD,GAAqB1pE,GACjCoe,EAAOurD,GAAiBH,EAAmBptE,EAAGkB,EAAKgM,EAAG+W,GAC5Dle,EAAMtO,KAAK,CACTuI,EAAGotE,EAAmBptE,EACtBC,IACAgkB,YACAjC,OACAE,IAAKjiB,EACLgiB,MAAOD,EAAO9gB,EAAKgM,EACnBiV,OAAQliB,EAAIiB,EAAK+J,IAGrB,OAAOlF,EA9CkBynE,CAAqB9vD,EAAO+6B,EAAYxF,GAEnE,SAAS85B,GAAaV,EAAQ9lC,EAAM3iC,EAAO6pE,EAASC,GAClD,IAAMhlE,EAAM1T,KAAK4N,IAAI5N,KAAK0T,IAAI9E,IACxB+F,EAAM3U,KAAK4N,IAAI5N,KAAK2U,IAAI/F,IAC1B5D,EAAI,EACJC,EAAI,EACJwtE,EAAQppE,MAAQkiC,EAAKv7B,GACvBhL,GAAKumC,EAAKv7B,EAAIyiE,EAAQppE,OAASqE,EAC/B2jE,EAAOrhE,EAAIhW,KAAKkF,IAAImyE,EAAOrhE,EAAGu7B,EAAKv7B,EAAIhL,IAC9BytE,EAAQnpE,IAAMiiC,EAAKnvC,IAC5B4I,GAAKytE,EAAQnpE,IAAMiiC,EAAKnvC,GAAKsR,EAC7B2jE,EAAOj1E,EAAIpC,KAAK+E,IAAIsyE,EAAOj1E,EAAGmvC,EAAKnvC,EAAI4I,IAErC0tE,EAAQrpE,MAAQkiC,EAAK/9B,GACvBvI,GAAKsmC,EAAK/9B,EAAIklE,EAAQrpE,OAASsF,EAC/B0iE,EAAO7jE,EAAIxT,KAAKkF,IAAImyE,EAAO7jE,EAAG+9B,EAAK/9B,EAAIvI,IAC9BytE,EAAQppE,IAAMiiC,EAAKtlC,IAC5BhB,GAAKytE,EAAQppE,IAAMiiC,EAAKtlC,GAAK0I,EAC7B0iE,EAAOprE,EAAIjM,KAAK+E,IAAIsyE,EAAOprE,EAAGslC,EAAKtlC,EAAIhB,IA6B3C,SAASqtE,GAAqB1pE,GAC5B,OAAc,IAAVA,GAAyB,MAAVA,EACV,SACEA,EAAQ,IACV,OAEF,QAET,SAAS2pE,GAAiBvtE,EAAGkN,EAAGtG,GAM9B,MALc,UAAVA,EACF5G,GAAKkN,EACc,WAAVtG,IACT5G,GAAMkN,EAAI,GAELlN,EAET,SAASqtE,GAAUptE,EAAGgL,EAAGrH,GAMvB,OALc,KAAVA,GAA0B,MAAVA,EAClB3D,GAAMgL,EAAI,GACDrH,EAAQ,KAAOA,EAAQ,MAChC3D,GAAKgL,GAEAhL,EA6CT,SAAS0tE,GAAejwD,EAAOmD,EAAQ2uB,EAAUm5B,GAAY,IACpD/rD,EAAOc,EAAPd,IACP,GAAI4yB,EACF5yB,EAAIuE,IAAIzD,EAAMoxB,QAASpxB,EAAMqxB,QAASluB,EAAQ,EAAGvf,OAC5C,CACL,IAAIuuC,EAAgBnyB,EAAMkvD,iBAAiB,EAAG/rD,GAC9CjE,EAAIyE,OAAOwuB,EAAc7vC,EAAG6vC,EAAc5vC,GAC1C,IAAK,IAAIzP,EAAI,EAAGA,EAAIm4E,EAAYn4E,IAC9Bq/C,EAAgBnyB,EAAMkvD,iBAAiBp8E,EAAGqwB,GAC1CjE,EAAI0E,OAAOuuB,EAAc7vC,EAAG6vC,EAAc5vC,IAtMhDyrE,GAAiBzuE,GAAK,cACtByuE,GAAiBjwD,SAAW,CAC1B0pB,MAAO,CACLpnC,SAAUgzC,GAAMX,WAAWU,YAC3Ba,MAAO,CACLC,SAAS,K,IA8NTg8B,G,kDACJ,WAAYnzE,GAAK,kCACf,cAAMA,IACDq0C,aAAUp7C,EACf,EAAKq7C,aAAUr7C,EACf,EAAKm5E,iBAAcn5E,EACnB,EAAK64E,aAAe,GACpB,EAAKU,iBAAmB,GANT,E,4DASf,IAAMh6B,EAAU7gD,KAAK8tE,SAAWr6C,GAAUqmD,GAAsB95E,KAAKkN,SAAW,GAC1E4N,EAAI9a,KAAK6sB,MAAQ7sB,KAAKwxB,SAAWqvB,EAAQh0B,MACzChU,EAAI7Y,KAAKiuB,OAASjuB,KAAKo9B,UAAYyjB,EAAQ5yB,OACjDjuB,KAAK08C,QAAU95C,KAAKuN,MAAMnQ,KAAK4vB,KAAO9U,EAAI,EAAI+lC,EAAQjxB,MACtD5vB,KAAK28C,QAAU/5C,KAAKuN,MAAMnQ,KAAK8vB,IAAMjX,EAAI,EAAIgoC,EAAQ/wB,KACrD9vB,KAAKy6E,YAAc73E,KAAKuN,MAAMvN,KAAKkF,IAAIgT,EAAGjC,GAAK,K,4CAE3B,MACD7Y,KAAK+jD,WAAU,GAA3Bj8C,EADa,EACbA,IAAKH,EADQ,EACRA,IACZ3H,KAAK8H,IAAMmD,EAAenD,KAASwI,MAAMxI,GAAOA,EAAM,EACtD9H,KAAK2H,IAAMsD,EAAetD,KAAS2I,MAAM3I,GAAOA,EAAM,EACtD3H,KAAKm5E,2B,yCAGL,OAAOv2E,KAAK8B,KAAK1E,KAAKy6E,YAAcX,GAAsB95E,KAAKkN,Y,yCAE9C6lC,GAAO,WACxBulC,GAAgBr5E,UAAUyoD,mBAAmB/iD,KAAK3E,KAAM+yC,GACxD/yC,KAAKm6E,aAAen6E,KAAKwuC,YACtB5hC,KAAI,SAAClN,EAAO+M,GACX,IAAMgjC,EAAQ9jC,EAAS,EAAKuB,QAAQmwC,YAAY1xC,SAAU,CAACjM,EAAO+M,GAAQ,GAC1E,OAAOgjC,GAAmB,IAAVA,EAAcA,EAAQ,MAEvCnZ,QAAO,SAAC3oB,EAAGvP,GAAJ,OAAU,EAAKyrB,MAAM0sB,kBAAkBn4C,Q,4BAGjD,IAAM4yB,EAAOhxB,KAAKkN,QACd8jB,EAAKmsB,SAAWnsB,EAAKqsB,YAAYF,QACnC68B,GAAmBh6E,MAEnBA,KAAK46E,eAAe,EAAG,EAAG,EAAG,K,qCAGlBa,EAAcC,EAAeC,EAAaC,GACvD57E,KAAK08C,SAAW95C,KAAKuN,OAAOsrE,EAAeC,GAAiB,GAC5D17E,KAAK28C,SAAW/5C,KAAKuN,OAAOwrE,EAAcC,GAAkB,GAC5D57E,KAAKy6E,aAAe73E,KAAKkF,IAAI9H,KAAKy6E,YAAc,EAAG73E,KAAK+E,IAAI8zE,EAAcC,EAAeC,EAAaC,M,oCAE1FnvE,GAGZ,OAAOsF,GAAgBtF,GAFCyC,GAAOlP,KAAKm6E,aAAa97E,QAAU,IAEVsS,EAD9B3Q,KAAKkN,QAAQgsC,YAAc,M,oDAGlBx5C,GAC5B,GAAIoL,EAAcpL,GAChB,OAAOmvC,IAET,IAAMgtC,EAAgB77E,KAAKy6E,aAAez6E,KAAK2H,IAAM3H,KAAK8H,KAC1D,OAAI9H,KAAKkN,QAAQnB,SACP/L,KAAK2H,IAAMjI,GAASm8E,GAEtBn8E,EAAQM,KAAK8H,KAAO+zE,I,oDAEAnqE,GAC5B,GAAI5G,EAAc4G,GAChB,OAAOm9B,IAET,IAAMitC,EAAiBpqE,GAAY1R,KAAKy6E,aAAez6E,KAAK2H,IAAM3H,KAAK8H,MACvE,OAAO9H,KAAKkN,QAAQnB,QAAU/L,KAAK2H,IAAMm0E,EAAiB97E,KAAK8H,IAAMg0E,I,2CAElDrvE,GACnB,IAAM4wC,EAAcr9C,KAAKm6E,cAAgB,GACzC,GAAI1tE,GAAS,GAAKA,EAAQ4wC,EAAYh/C,OAAQ,CAC5C,IAAM09E,EAAa1+B,EAAY5wC,GAC/B,OAjFN,SAAiCyqB,EAAQzqB,EAAOgjC,GAC9C,OAAOxb,GAAciD,EAAQ,CAC3BuY,QACAhjC,QACA1B,KAAM,eA6EGixE,CAAwBh8E,KAAK8tB,aAAcrhB,EAAOsvE,M,uCAG5CtvE,EAAOwvE,GAAyC,IAArB5B,EAAqB,uDAAH,EACtD7oE,EAAQxR,KAAK68C,cAAcpwC,GAAS8C,EAAU8qE,EACpD,MAAO,CACLzsE,EAAGhL,KAAK2U,IAAI/F,GAASyqE,EAAqBj8E,KAAK08C,QAC/C7uC,EAAGjL,KAAK0T,IAAI9E,GAASyqE,EAAqBj8E,KAAK28C,QAC/CnrC,W,+CAGqB/E,EAAO/M,GAC9B,OAAOM,KAAKw6E,iBAAiB/tE,EAAOzM,KAAKi9C,8BAA8Bv9C,M,sCAEzD+M,GACd,OAAOzM,KAAK09C,yBAAyBjxC,GAAS,EAAGzM,KAAKwoD,kB,4CAElC/7C,GAAO,MACQzM,KAAK66E,iBAAiBpuE,GACzD,MAAO,CACLmjB,KAHyB,EACpBA,KAGLE,IAJyB,EACdA,IAIXD,MALyB,EACTA,MAKhBE,OANyB,EACFA,U,uCAQV,MAC6B/vB,KAAKkN,QAA1Csc,EADQ,EACRA,gBAAwB4zB,EADhB,EACS3F,KAAO2F,SAC/B,GAAI5zB,EAAiB,CACnB,IAAMgB,EAAMxqB,KAAKwqB,IACjBA,EAAI0C,OACJ1C,EAAIqE,YACJ0sD,GAAev7E,KAAMA,KAAKi9C,8BAA8Bj9C,KAAKu4E,WAAYn7B,EAAUp9C,KAAKm6E,aAAa97E,QACrGmsB,EAAIwE,YACJxE,EAAIoH,UAAYpI,EAChBgB,EAAI6E,OACJ7E,EAAI8C,a,iCAGG,IAKLlvB,EAAG2J,EAAQu6C,EALN,OACH93B,EAAMxqB,KAAKwqB,IACXwG,EAAOhxB,KAAKkN,QACXgwC,EAAoBlsB,EAApBksB,WAAYzF,EAAQzmB,EAARymB,KACb8+B,EAAav2E,KAAKm6E,aAAa97E,OAcrC,GAZI2yB,EAAKqsB,YAAYF,SAxMzB,SAAyB7xB,EAAOirD,GAE9B,IAF0C,IACnC/rD,EAA+Bc,EAA/Bd,IAAe6yB,EAAgB/xB,EAA1Bpe,QAAUmwC,YACbj/C,EAAIm4E,EAAa,EAAGn4E,GAAK,EAAGA,IAAK,CACxC,IAAM0rD,EAAczM,EAAYvnB,WAAWxK,EAAMivD,qBAAqBn8E,IAChEs8E,EAAShnD,GAAOo2B,EAAY5/B,MAFM,EAGYoB,EAAMuvD,iBAAiBz8E,GAApEwP,EAHiC,EAGjCA,EAAGC,EAH8B,EAG9BA,EAAGgkB,EAH2B,EAG3BA,UAAWjC,EAHgB,EAGhBA,KAAME,EAHU,EAGVA,IAAKD,EAHK,EAGLA,MAAOE,EAHF,EAGEA,OACnCyxB,EAAiBsI,EAAjBtI,cACP,IAAK12C,EAAc02C,GAAgB,CACjC,IAAM2hB,EAAe3vC,GAAcs2B,EAAYqZ,cACzCtiB,EAAUptB,GAAUq2B,EAAYrI,iBACtCj3B,EAAIoH,UAAY4vB,EAChB,IAAM06B,EAAetsD,EAAOixB,EAAQjxB,KAC9BusD,EAAcrsD,EAAM+wB,EAAQ/wB,IAC5BssD,EAAgBvsD,EAAQD,EAAOixB,EAAQh0B,MACvCwvD,EAAiBtsD,EAASD,EAAM+wB,EAAQ5yB,OAC1CvvB,OAAO0qB,OAAO+5C,GAAc/K,MAAK,SAAAzqD,GAAC,OAAU,IAANA,MACxC6c,EAAIqE,YACJ2D,GAAmBhI,EAAK,CACtB5c,EAAGsuE,EACHruE,EAAGsuE,EACHrhE,EAAGshE,EACHvjE,EAAGwjE,EACH5tD,OAAQ00C,IAEV34C,EAAI6E,QAEJ7E,EAAIogC,SAASsxB,EAAcC,EAAaC,EAAeC,GAG3DxrD,GACErG,EACAc,EAAM6uD,aAAa/7E,GACnBwP,EACAC,EAAK6sE,EAAOrwD,WAAa,EACzBqwD,EACA,CACE5yD,MAAOgiC,EAAYhiC,MACnB+J,UAAWA,EACXC,aAAc,YAmKhBwqD,CAAgBt8E,KAAMu2E,GAEpB9+B,EAAK0F,SACPn9C,KAAK+yC,MAAMt/B,SAAQ,SAACgxB,EAAMh4B,GACxB,GAAc,IAAVA,EAAa,CACf1E,EAAS,EAAKk1C,8BAA8BxY,EAAK/kC,OACjD,IAAMoqD,EAAcrS,EAAK3hB,WAAW,EAAKhI,WAAWrhB,EAAQ,KAvJtE,SAAwB6e,EAAOixD,EAAc9tD,EAAQ8nD,GACnD,IAAM/rD,EAAMc,EAAMd,IACZ4yB,EAAWm/B,EAAan/B,SACvBt1B,EAAoBy0D,EAApBz0D,MAAOwJ,EAAairD,EAAbjrD,WACR8rB,IAAam5B,IAAgBzuD,IAAUwJ,GAAa7C,EAAS,IAGnEjE,EAAI0C,OACJ1C,EAAI6G,YAAcvJ,EAClB0C,EAAI8G,UAAYA,EAChB9G,EAAIwgC,YAAYuxB,EAAat5C,YAC7BzY,EAAIygC,eAAiBsxB,EAAar5C,iBAClC1Y,EAAIqE,YACJ0sD,GAAejwD,EAAOmD,EAAQ2uB,EAAUm5B,GACxC/rD,EAAIwE,YACJxE,EAAI+E,SACJ/E,EAAI8C,WAwIIkvD,CAAe,EAAM1yB,EAAa/hD,EAAQwuE,OAI5Cr5B,EAAWC,QAAS,CAEtB,IADA3yB,EAAI0C,OACC9uB,EAAIm4E,EAAa,EAAGn4E,GAAK,EAAGA,IAAK,CACpC,IAAM0rD,EAAc5M,EAAWpnB,WAAW91B,KAAKu6E,qBAAqBn8E,IAC7D0pB,EAAoBgiC,EAApBhiC,MAAOwJ,EAAaw4B,EAAbx4B,UACTA,GAAcxJ,IAGnB0C,EAAI8G,UAAYA,EAChB9G,EAAI6G,YAAcvJ,EAClB0C,EAAIwgC,YAAYlB,EAAY7mB,YAC5BzY,EAAIygC,eAAiBnB,EAAY5mB,iBACjCn7B,EAAS/H,KAAKi9C,8BAA8BjsB,EAAK+hB,MAAMhnC,QAAU/L,KAAK8H,IAAM9H,KAAK2H,KACjF26C,EAAWtiD,KAAKw6E,iBAAiBp8E,EAAG2J,GACpCyiB,EAAIqE,YACJrE,EAAIyE,OAAOjvB,KAAK08C,QAAS18C,KAAK28C,SAC9BnyB,EAAI0E,OAAOozB,EAAS10C,EAAG00C,EAASz0C,GAChC2c,EAAI+E,UAEN/E,EAAI8C,a,yEAIK,WACL9C,EAAMxqB,KAAKwqB,IACXwG,EAAOhxB,KAAKkN,QACZ2xC,EAAW7tB,EAAK+hB,MACtB,GAAK8L,EAAS1B,QAAd,CAGA,IACIp1C,EAAQ8kB,EADNqsB,EAAal5C,KAAK68C,cAAc,GAEtCryB,EAAI0C,OACJ1C,EAAImE,UAAU3uB,KAAK08C,QAAS18C,KAAK28C,SACjCnyB,EAAI/B,OAAOywB,GACX1uB,EAAIqH,UAAY,SAChBrH,EAAIsH,aAAe,SACnB9xB,KAAK+yC,MAAMt/B,SAAQ,SAACgxB,EAAMh4B,GACxB,GAAc,IAAVA,GAAgBukB,EAAKjlB,QAAzB,CAGA,IAAM+9C,EAAcjL,EAAS/oB,WAAW,EAAKhI,WAAWrhB,IAClDm7C,EAAWl0B,GAAOo2B,EAAY5/B,MAEpC,GADAniB,EAAS,EAAKk1C,8BAA8B,EAAKlK,MAAMtmC,GAAO/M,OAC1DoqD,EAAYvI,kBAAmB,CACjC/2B,EAAIN,KAAO09B,EAASl7B,OACpBG,EAAQrC,EAAIoC,YAAY6X,EAAKgL,OAAO5iB,MACpCrC,EAAIoH,UAAYk4B,EAAYtI,cAC5B,IAAMX,EAAUptB,GAAUq2B,EAAYrI,iBACtCj3B,EAAIogC,UACD/9B,EAAQ,EAAIg0B,EAAQjxB,MACpB7nB,EAAS6/C,EAAS94C,KAAO,EAAI+xC,EAAQ/wB,IACtCjD,EAAQg0B,EAAQh0B,MAChB+6B,EAAS94C,KAAO+xC,EAAQ5yB,QAG5B4C,GAAWrG,EAAKia,EAAKgL,MAAO,GAAI1nC,EAAQ6/C,EAAU,CAChD9/B,MAAOgiC,EAAYhiC,YAGvB0C,EAAI8C,a,0CA/LwBgrD,IAmMhCkD,GAAkB3wE,GAAK,eACvB2wE,GAAkBnyD,SAAW,CAC3B8zB,SAAS,EACTs/B,SAAS,EACTn6B,SAAU,YACVpF,WAAY,CACVC,SAAS,EACT7rB,UAAW,EACX2R,WAAY,GACZC,iBAAkB,GAEpBuU,KAAM,CACJ2F,UAAU,GAEZlE,WAAY,EACZnG,MAAO,CACLwO,mBAAmB,EACnB51C,SAAUgzC,GAAMX,WAAWC,SAE7BZ,YAAa,CACXmE,mBAAelgD,EACfmgD,gBAAiB,EACjBtE,SAAS,EACTjzB,KAAM,CACJpb,KAAM,IAERnD,SAPW,SAOF8jC,GACP,OAAOA,GAEToR,QAAS,EACTy5B,mBAAmB,IAGvBkB,GAAkBz9B,cAAgB,CAChC,mBAAoB,cACpB,oBAAqB,QACrB,cAAe,SAEjBy9B,GAAkBzyD,YAAc,CAC9Bm0B,WAAY,CACV5wB,UAAW,SAIf,IAAMowD,GAAY,CAChBC,YAAa,CAACC,QAAQ,EAAM9tE,KAAM,EAAG+tE,MAAO,KAC5CC,OAAQ,CAACF,QAAQ,EAAM9tE,KAAM,IAAM+tE,MAAO,IAC1CE,OAAQ,CAACH,QAAQ,EAAM9tE,KAAM,IAAO+tE,MAAO,IAC3CG,KAAM,CAACJ,QAAQ,EAAM9tE,KAAM,KAAS+tE,MAAO,IAC3CI,IAAK,CAACL,QAAQ,EAAM9tE,KAAM,MAAU+tE,MAAO,IAC3CK,KAAM,CAACN,QAAQ,EAAO9tE,KAAM,OAAW+tE,MAAO,GAC9CM,MAAO,CAACP,QAAQ,EAAM9tE,KAAM,OAAS+tE,MAAO,IAC5CO,QAAS,CAACR,QAAQ,EAAO9tE,KAAM,OAAS+tE,MAAO,GAC/CQ,KAAM,CAACT,QAAQ,EAAM9tE,KAAM,SAEvBwuE,GAAS5+E,OAAOuN,KAAKywE,IAC3B,SAASa,GAAO3uE,EAAGC,GACjB,OAAOD,EAAIC,EAEb,SAASlJ,GAAM2lB,EAAOjE,GACpB,GAAIvc,EAAcuc,GAChB,OAAO,KAET,IAAMm2D,EAAUlyD,EAAMmyD,SAJK,EAKSnyD,EAAMoyD,WAAnCC,EALoB,EAKpBA,OAAQ5tE,EALY,EAKZA,MAAO6tE,EALK,EAKLA,WAClBl+E,EAAQ2nB,EASZ,MARsB,oBAAXs2D,IACTj+E,EAAQi+E,EAAOj+E,IAEZuL,EAAevL,KAClBA,EAA0B,kBAAXi+E,EACXH,EAAQ73E,MAAMjG,EAAOi+E,GACrBH,EAAQ73E,MAAMjG,IAEN,OAAVA,EACK,MAELqQ,IACFrQ,EAAkB,SAAVqQ,IAAqBM,EAASutE,KAA8B,IAAfA,EAEjDJ,EAAQK,QAAQn+E,EAAOqQ,GADvBytE,EAAQK,QAAQn+E,EAAO,UAAWk+E,KAGhCl+E,GAEV,SAASo+E,GAA0BC,EAASj2E,EAAKH,EAAKq2E,GAEpD,IADA,IAAM3xE,EAAOixE,GAAMj/E,OACVD,EAAIk/E,GAAMtwE,QAAQ+wE,GAAU3/E,EAAIiO,EAAO,IAAKjO,EAAG,CACtD,IAAM6/E,EAAWvB,GAAUY,GAAMl/E,IAC3BqnC,EAASw4C,EAASpB,MAAQoB,EAASpB,MAAQ3xE,OAAO0tE,iBACxD,GAAIqF,EAASrB,QAAUh6E,KAAK8B,MAAMiD,EAAMG,IAAQ29B,EAASw4C,EAASnvE,QAAUkvE,EAC1E,OAAOV,GAAMl/E,GAGjB,OAAOk/E,GAAMjxE,EAAO,GAkBtB,SAAS6xE,GAAQnrC,EAAOorC,EAAMC,GAC5B,GAAKA,GAEE,GAAIA,EAAW//E,OAAQ,OACXqU,GAAQ0rE,EAAYD,GAA9BprE,EADqB,EACrBA,GAAID,EADiB,EACjBA,GAEXigC,EADkBqrC,EAAWrrE,IAAOorE,EAAOC,EAAWrrE,GAAMqrE,EAAWtrE,KACpD,QAJnBigC,EAAMorC,IAAQ,EAoBlB,SAASE,GAAoB/yD,EAAOlC,EAAQk1D,GAC1C,IAGIlgF,EAAGsB,EAHDqzC,EAAQ,GACRnmC,EAAM,GACNP,EAAO+c,EAAO/qB,OAEpB,IAAKD,EAAI,EAAGA,EAAIiO,IAAQjO,EAEtBwO,EADAlN,EAAQ0pB,EAAOhrB,IACFA,EACb20C,EAAM1tC,KAAK,CACT3F,QACA6/C,OAAO,IAGX,OAAiB,IAATlzC,GAAeiyE,EA1BzB,SAAuBhzD,EAAOynB,EAAOnmC,EAAK0xE,GACxC,IAGI/+B,EAAO9yC,EAHL+wE,EAAUlyD,EAAMmyD,SAChB99B,GAAS69B,EAAQK,QAAQ9qC,EAAM,GAAGrzC,MAAO4+E,GACzCrrE,EAAO8/B,EAAMA,EAAM10C,OAAS,GAAGqB,MAErC,IAAK6/C,EAAQI,EAAOJ,GAAStsC,EAAMssC,GAASi+B,EAAQ1pE,IAAIyrC,EAAO,EAAG++B,IAChE7xE,EAAQG,EAAI2yC,KACC,IACXxM,EAAMtmC,GAAO8yC,OAAQ,GAGzB,OAAOxM,EAeqCwrC,CAAcjzD,EAAOynB,EAAOnmC,EAAK0xE,GAAzCvrC,E,IAEhCyrC,G,kDACJ,WAAYrgF,GAAO,kCACjB,cAAMA,IACDo0C,OAAS,CACZprC,KAAM,GACNonC,OAAQ,GACR9F,IAAK,IAEP,EAAKg2C,MAAQ,MACb,EAAKC,gBAAap9E,EAClB,EAAKq9E,SAAW,GAChB,EAAKC,aAAc,EACnB,EAAKlB,gBAAap8E,EAXD,E,iDAad28D,EAAWjtC,GACd,IAAMmtD,EAAOlgB,EAAUkgB,OAASlgB,EAAUkgB,KAAO,IAC3CX,EAAUx9E,KAAKy9E,SAAW,IAAIpvB,GAASC,MAAM2P,EAAU5P,SAAS3qB,MACtE85C,EAAQl6E,KAAK0tB,GACbxjB,EAAQ2wE,EAAKU,eAAgBrB,EAAQsB,WACrC9+E,KAAK09E,WAAa,CAChBC,OAAQQ,EAAKR,OACb5tE,MAAOouE,EAAKpuE,MACZ6tE,WAAYO,EAAKP,YAEnB,4DAAW3f,GACXj+D,KAAK4+E,YAAc5tD,EAAK+tD,a,4BAEpB3uC,EAAK3jC,GACT,YAAYnL,IAAR8uC,EACK,KAEFzqC,GAAM3F,KAAMowC,K,qCAGnB,qEACApwC,KAAKuyC,OAAS,CACZprC,KAAM,GACNonC,OAAQ,GACR9F,IAAK,M,4CAIP,IAAMv7B,EAAUlN,KAAKkN,QACfswE,EAAUx9E,KAAKy9E,SACfvvB,EAAOhhD,EAAQixE,KAAKjwB,MAAQ,MAHd,EAIqBluD,KAAKoV,gBAAzCtN,EAJe,EAIfA,IAAKH,EAJU,EAIVA,IAAK0N,EAJK,EAILA,WAAYC,EAJP,EAIOA,WAC3B,SAAS0pE,EAAa59C,GACf/rB,GAAe/E,MAAM8wB,EAAOt5B,OAC/BA,EAAMlF,KAAKkF,IAAIA,EAAKs5B,EAAOt5B,MAExBwN,GAAehF,MAAM8wB,EAAOz5B,OAC/BA,EAAM/E,KAAK+E,IAAIA,EAAKy5B,EAAOz5B,MAG1B0N,GAAeC,IAClB0pE,EAAah/E,KAAKi/E,mBACK,UAAnB/xE,EAAQk0B,QAA+C,WAAzBl0B,EAAQ6lC,MAAMpmC,QAC9CqyE,EAAah/E,KAAK+jD,WAAU,KAGhCj8C,EAAMmD,EAAenD,KAASwI,MAAMxI,GAAOA,GAAO01E,EAAQK,QAAQ35C,KAAKC,MAAO+pB,GAC9EvmD,EAAMsD,EAAetD,KAAS2I,MAAM3I,GAAOA,GAAO61E,EAAQ0B,MAAMh7C,KAAKC,MAAO+pB,GAAQ,EACpFluD,KAAK8H,IAAMlF,KAAKkF,IAAIA,EAAKH,EAAM,GAC/B3H,KAAK2H,IAAM/E,KAAK+E,IAAIG,EAAM,EAAGH,K,wCAG7B,IAAM4B,EAAMvJ,KAAKm/E,qBACbr3E,EAAMoD,OAAOmE,kBACb1H,EAAMuD,OAAOikC,kBAKjB,OAJI5lC,EAAIlL,SACNyJ,EAAMyB,EAAI,GACV5B,EAAM4B,EAAIA,EAAIlL,OAAS,IAElB,CAACyJ,MAAKH,S,mCAGb,IAAMuF,EAAUlN,KAAKkN,QACfkyE,EAAWlyE,EAAQixE,KACnBt/B,EAAW3xC,EAAQ6lC,MACnBqrC,EAAiC,WAApBv/B,EAASlyC,OAAsB3M,KAAKm/E,qBAAuBn/E,KAAKq/E,YAC5D,UAAnBnyE,EAAQk0B,QAAsBg9C,EAAW//E,SAC3C2B,KAAK8H,IAAM9H,KAAKsjD,UAAY86B,EAAW,GACvCp+E,KAAK2H,IAAM3H,KAAKqjD,UAAY+6B,EAAWA,EAAW//E,OAAS,IAE7D,IAAMyJ,EAAM9H,KAAK8H,IAEXirC,ED74TV,SAAwB3pB,EAAQthB,EAAKH,GAGnC,IAFA,IAAIsK,EAAQ,EACRC,EAAMkX,EAAO/qB,OACV4T,EAAQC,GAAOkX,EAAOnX,GAASnK,GACpCmK,IAEF,KAAOC,EAAMD,GAASmX,EAAOlX,EAAM,GAAKvK,GACtCuK,IAEF,OAAOD,EAAQ,GAAKC,EAAMkX,EAAO/qB,OAC7B+qB,EAAOxkB,MAAMqN,EAAOC,GACpBkX,ECk4TYk2D,CAAelB,EAAYt2E,EAD7B9H,KAAK2H,KAWjB,OATA3H,KAAKy+E,MAAQW,EAASlxB,OAASrP,EAASD,SACpCk/B,GAA0BsB,EAASrB,QAAS/9E,KAAK8H,IAAK9H,KAAK2H,IAAK3H,KAAKu/E,kBAAkBz3E,IA7I/F,SAAoCwjB,EAAO66B,EAAU43B,EAASj2E,EAAKH,GACjE,IAAK,IAAIvJ,EAAIk/E,GAAMj/E,OAAS,EAAGD,GAAKk/E,GAAMtwE,QAAQ+wE,GAAU3/E,IAAK,CAC/D,IAAM8vD,EAAOovB,GAAMl/E,GACnB,GAAIs+E,GAAUxuB,GAAM0uB,QAAUtxD,EAAMmyD,SAAS19B,KAAKp4C,EAAKG,EAAKomD,IAAS/H,EAAW,EAC9E,OAAO+H,EAGX,OAAOovB,GAAMS,EAAUT,GAAMtwE,QAAQ+wE,GAAW,GAuI1CyB,CAA2Bx/E,KAAM+yC,EAAM10C,OAAQ+gF,EAASrB,QAAS/9E,KAAK8H,IAAK9H,KAAK2H,MACpF3H,KAAK0+E,WAAc7/B,EAASU,MAAMC,SAA0B,SAAfx/C,KAAKy+E,MAtItD,SAA4BvwB,GAC1B,IAAK,IAAI9vD,EAAIk/E,GAAMtwE,QAAQkhD,GAAQ,EAAG7hD,EAAOixE,GAAMj/E,OAAQD,EAAIiO,IAAQjO,EACrE,GAAIs+E,GAAUY,GAAMl/E,IAAIw+E,OACtB,OAAOU,GAAMl/E,GAoIXqhF,CAAmBz/E,KAAKy+E,YADyCn9E,EAErEtB,KAAK0/E,YAAYtB,GACblxE,EAAQnB,SACVgnC,EAAMhnC,UAEDsyE,GAAoBr+E,KAAM+yC,EAAO/yC,KAAK0+E,c,sCAGzC1+E,KAAKkN,QAAQyyE,qBACf3/E,KAAK0/E,YAAY1/E,KAAK+yC,MAAMnmC,KAAI,SAAA63B,GAAI,OAAKA,EAAK/kC,Y,kCAGtC0+E,GACV,IAEIz+B,EAAO1sC,EAFPhB,EAAQ,EACRC,EAAM,EAENlS,KAAKkN,QAAQnF,QAAUq2E,EAAW//E,SACpCshD,EAAQ3/C,KAAK4/E,mBAAmBxB,EAAW,IAEzCnsE,EADwB,IAAtBmsE,EAAW//E,OACL,EAAIshD,GAEH3/C,KAAK4/E,mBAAmBxB,EAAW,IAAMz+B,GAAS,EAE7D1sC,EAAOjT,KAAK4/E,mBAAmBxB,EAAWA,EAAW//E,OAAS,IAE5D6T,EADwB,IAAtBksE,EAAW//E,OACP4U,GAECA,EAAOjT,KAAK4/E,mBAAmBxB,EAAWA,EAAW//E,OAAS,KAAO,GAGhF,IAAMwrD,EAAQu0B,EAAW//E,OAAS,EAAI,GAAM,IAC5C4T,EAAQO,GAAYP,EAAO,EAAG43C,GAC9B33C,EAAMM,GAAYN,EAAK,EAAG23C,GAC1B7pD,KAAK2+E,SAAW,CAAC1sE,QAAOC,MAAKuzB,OAAQ,GAAKxzB,EAAQ,EAAIC,M,kCAGtD,IAWIisE,EAAMppE,EAXJyoE,EAAUx9E,KAAKy9E,SACf31E,EAAM9H,KAAK8H,IACXH,EAAM3H,KAAK2H,IACXuF,EAAUlN,KAAKkN,QACfkyE,EAAWlyE,EAAQixE,KACnB98B,EAAQ+9B,EAASlxB,MAAQ4vB,GAA0BsB,EAASrB,QAASj2E,EAAKH,EAAK3H,KAAKu/E,kBAAkBz3E,IACtGgxE,EAAWxtE,EAAe8zE,EAAStG,SAAU,GAC7C3qB,EAAoB,SAAV9M,GAAmB+9B,EAASxB,WACtCiC,EAAaxvE,EAAS89C,KAAwB,IAAZA,EAClCpb,EAAQ,GACV4M,EAAQ73C,EAMZ,GAJI+3E,IACFlgC,GAAS69B,EAAQK,QAAQl+B,EAAO,UAAWwO,IAE7CxO,GAAS69B,EAAQK,QAAQl+B,EAAOkgC,EAAa,MAAQx+B,GACjDm8B,EAAQz9B,KAAKp4C,EAAKG,EAAKu5C,GAAS,IAASy3B,EAC3C,MAAM,IAAIpyE,MAAMoB,EAAM,QAAUH,EAAM,uCAAyCmxE,EAAW,IAAMz3B,GAElG,IAAM+8B,EAAsC,SAAzBlxE,EAAQ6lC,MAAMpmC,QAAqB3M,KAAK8/E,oBAC3D,IAAK3B,EAAOx+B,EAAO5qC,EAAQ,EAAGopE,EAAOx2E,EAAKw2E,GAAQX,EAAQ1pE,IAAIqqE,EAAMrF,EAAUz3B,GAAQtsC,IACpFmpE,GAAQnrC,EAAOorC,EAAMC,GAKvB,OAHID,IAASx2E,GAA0B,UAAnBuF,EAAQk0B,QAAgC,IAAVrsB,GAChDmpE,GAAQnrC,EAAOorC,EAAMC,GAEhB1/E,OAAOuN,KAAK8mC,GAAOJ,MAAK,SAAC/jC,EAAGC,GAAJ,OAAUD,EAAIC,KAAGjC,KAAI,SAAAgB,GAAC,OAAKA,O,uCAE3ClO,GACf,IAAM89E,EAAUx9E,KAAKy9E,SACf2B,EAAWp/E,KAAKkN,QAAQixE,KAC9B,OAAIiB,EAASW,cACJvC,EAAQ59C,OAAOlgC,EAAO0/E,EAASW,eAEjCvC,EAAQ59C,OAAOlgC,EAAO0/E,EAASP,eAAemB,Y,0CAEnC7B,EAAM1xE,EAAOsmC,EAAOnT,GACtC,IAAM1yB,EAAUlN,KAAKkN,QACf4xE,EAAU5xE,EAAQixE,KAAKU,eACvB3wB,EAAOluD,KAAKy+E,MACZH,EAAYt+E,KAAK0+E,WACjBuB,EAAc/xB,GAAQ4wB,EAAQ5wB,GAC9BgyB,EAAc5B,GAAaQ,EAAQR,GACnC75C,EAAOsO,EAAMtmC,GACb8yC,EAAQ++B,GAAa4B,GAAez7C,GAAQA,EAAK8a,MACjD9P,EAAQzvC,KAAKy9E,SAAS79C,OAAOu+C,EAAMv+C,IAAW2f,EAAQ2gC,EAAcD,IACpEzgD,EAAYtyB,EAAQ6lC,MAAMpnC,SAChC,OAAO6zB,EAAY7zB,EAAS6zB,EAAW,CAACiQ,EAAOhjC,EAAOsmC,GAAQ/yC,MAAQyvC,I,yCAErDsD,GACjB,IAAI30C,EAAGiO,EAAMo4B,EACb,IAAKrmC,EAAI,EAAGiO,EAAO0mC,EAAM10C,OAAQD,EAAIiO,IAAQjO,GAC3CqmC,EAAOsO,EAAM30C,IACRqxC,MAAQzvC,KAAKmgF,oBAAoB17C,EAAK/kC,MAAOtB,EAAG20C,K,yCAGtCrzC,GACjB,OAAiB,OAAVA,EAAiBmvC,KAAOnvC,EAAQM,KAAK8H,MAAQ9H,KAAK2H,IAAM3H,KAAK8H,O,uCAErDpI,GACf,IAAM0gF,EAAUpgF,KAAK2+E,SACf9iD,EAAM77B,KAAK4/E,mBAAmBlgF,GACpC,OAAOM,KAAK02C,oBAAoB0pC,EAAQnuE,MAAQ4pB,GAAOukD,EAAQ36C,U,uCAEhDhY,GACf,IAAM2yD,EAAUpgF,KAAK2+E,SACf9iD,EAAM77B,KAAKk3E,mBAAmBzpD,GAAS2yD,EAAQ36C,OAAS26C,EAAQluE,IACtE,OAAOlS,KAAK8H,IAAM+zB,GAAO77B,KAAK2H,IAAM3H,KAAK8H,O,oCAE7B2nC,GACZ,IAAM4wC,EAAYrgF,KAAKkN,QAAQ6lC,MACzButC,EAAiBtgF,KAAKwqB,IAAIoC,YAAY6iB,GAAO5iB,MAC7Crb,EAAQb,EAAU3Q,KAAK60C,eAAiBwrC,EAAUt/B,YAAcs/B,EAAUv/B,aAC1Ey/B,EAAc39E,KAAK2U,IAAI/F,GACvBgvE,EAAc59E,KAAK0T,IAAI9E,GACvBivE,EAAezgF,KAAKooD,wBAAwB,GAAGt5C,KACrD,MAAO,CACLgM,EAAIwlE,EAAiBC,EAAgBE,EAAeD,EACpD3nE,EAAIynE,EAAiBE,EAAgBC,EAAeF,K,wCAGtCG,GAChB,IAAMtB,EAAWp/E,KAAKkN,QAAQixE,KACxBU,EAAiBO,EAASP,eAC1Bj/C,EAASi/C,EAAeO,EAASlxB,OAAS2wB,EAAelC,YACzDgE,EAAe3gF,KAAKmgF,oBAAoBO,EAAa,EAAGrC,GAAoBr+E,KAAM,CAAC0gF,GAAc1gF,KAAK0+E,YAAa9+C,GACnH9wB,EAAO9O,KAAK4gF,cAAcD,GAC1B3C,EAAWp7E,KAAKuN,MAAMnQ,KAAK60C,eAAiB70C,KAAK6sB,MAAQ/d,EAAKgM,EAAI9a,KAAKiuB,OAASnf,EAAK+J,GAAK,EAChG,OAAOmlE,EAAW,EAAIA,EAAW,I,0CAGjC,IACI5/E,EAAGiO,EADH+xE,EAAap+E,KAAKuyC,OAAOprC,MAAQ,GAErC,GAAIi3E,EAAW//E,OACb,OAAO+/E,EAET,IAAMt6B,EAAQ9jD,KAAKiqC,0BACnB,GAAIjqC,KAAK4+E,aAAe96B,EAAMzlD,OAC5B,OAAQ2B,KAAKuyC,OAAOprC,KAAO28C,EAAM,GAAG3Z,WAAWuI,mBAAmB1yC,MAEpE,IAAK5B,EAAI,EAAGiO,EAAOy3C,EAAMzlD,OAAQD,EAAIiO,IAAQjO,EAC3CggF,EAAaA,EAAWl6E,OAAO4/C,EAAM1lD,GAAG+rC,WAAWuI,mBAAmB1yC,OAExE,OAAQA,KAAKuyC,OAAOprC,KAAOnH,KAAKghC,UAAUo9C,K,2CAG1C,IACIhgF,EAAGiO,EADD+xE,EAAap+E,KAAKuyC,OAAOhE,QAAU,GAEzC,GAAI6vC,EAAW//E,OACb,OAAO+/E,EAET,IAAM7vC,EAASvuC,KAAKwuC,YACpB,IAAKpwC,EAAI,EAAGiO,EAAOkiC,EAAOlwC,OAAQD,EAAIiO,IAAQjO,EAC5CggF,EAAW/4E,KAAKM,GAAM3F,KAAMuuC,EAAOnwC,KAErC,OAAQ4B,KAAKuyC,OAAOhE,OAASvuC,KAAK4+E,YAAcR,EAAap+E,KAAKghC,UAAUo9C,K,gCAEpEh1D,GACR,OAAO1V,GAAa0V,EAAOupB,KAAK4qC,S,GArPZ/6B,IA4QxB,SAASl6B,GAAY3V,EAAO4V,EAAKxc,GAC/B,IAEI80E,EAAYC,EAAYC,EAAYC,EAFpCjuE,EAAK,EACLD,EAAKH,EAAMtU,OAAS,EAExB,GAAI0N,EAAS,CACX,GAAIwc,GAAO5V,EAAMI,GAAI8oB,KAAOtT,GAAO5V,EAAMG,GAAI+oB,IAAK,OACpC7oB,GAAaL,EAAO,MAAO4V,GAArCxV,EAD8C,EAC9CA,GAAID,EAD0C,EAC1CA,GAFG,MAI4BH,EAAMI,GAAtC8tE,EAJI,EAIThlD,IAAuBklD,EAJd,EAIQ5C,KAJR,MAK4BxrE,EAAMG,GAAtCguE,EALI,EAKTjlD,IAAuBmlD,EALd,EAKQ7C,SACd,CACL,GAAI51D,GAAO5V,EAAMI,GAAIorE,MAAQ51D,GAAO5V,EAAMG,GAAIqrE,KAAM,OACtCnrE,GAAaL,EAAO,OAAQ4V,GAAtCxV,EADgD,EAChDA,GAAID,EAD4C,EAC5CA,GAFH,MAIkCH,EAAMI,GAArC8tE,EAJH,EAIH1C,KAAuB4C,EAJpB,EAIellD,IAJf,MAKkClpB,EAAMG,GAArCguE,EALH,EAKH3C,KAAuB6C,EALpB,EAKenlD,IAEtB,IAAMolD,EAAOH,EAAaD,EAC1B,OAAOI,EAAOF,GAAcC,EAAaD,IAAex4D,EAAMs4D,GAAcI,EAAOF,EAtCrFvC,GAAU3zE,GAAK,OACf2zE,GAAUn1D,SAAW,CACnB+X,OAAQ,OACRitB,SAAU,GACV8vB,KAAM,CACJR,QAAQ,EACRzvB,MAAM,EACNn+C,OAAO,EACP6tE,YAAY,EACZG,QAAS,cACTc,eAAgB,IAElB9rC,MAAO,CACLpmC,OAAQ,OACR4yC,MAAO,CACLC,SAAS,K,IAyBT0hC,G,kDACJ,WAAY/iF,GAAO,kCACjB,cAAMA,IACDgjF,OAAS,GACd,EAAKC,aAAU9/E,EACf,EAAK+/E,iBAAc//E,EAJF,E,0DAOjB,IAAM88E,EAAap+E,KAAKshF,yBAClB3uE,EAAQ3S,KAAKmhF,OAASnhF,KAAKuhF,iBAAiBnD,GAClDp+E,KAAKohF,QAAU94D,GAAY3V,EAAO3S,KAAK8H,KACvC9H,KAAKqhF,YAAc/4D,GAAY3V,EAAO3S,KAAK2H,KAAO3H,KAAKohF,QACvD,mEAAkBhD,K,uCAEHA,GAAY,IAIvBhgF,EAAGiO,EAAMkuB,EAAM+X,EAAM/vC,EAHlBuF,EAAY9H,KAAZ8H,IAAKH,EAAO3H,KAAP2H,IACNgM,EAAQ,GACRhB,EAAQ,GAEd,IAAKvU,EAAI,EAAGiO,EAAO+xE,EAAW//E,OAAQD,EAAIiO,IAAQjO,GAChDk0C,EAAO8rC,EAAWhgF,KACN0J,GAAOwqC,GAAQ3qC,GACzBgM,EAAMtO,KAAKitC,GAGf,GAAI3+B,EAAMtV,OAAS,EACjB,MAAO,CACL,CAAC8/E,KAAMr2E,EAAK+zB,IAAK,GACjB,CAACsiD,KAAMx2E,EAAKk0B,IAAK,IAGrB,IAAKz9B,EAAI,EAAGiO,EAAOsH,EAAMtV,OAAQD,EAAIiO,IAAQjO,EAC3CmE,EAAOoR,EAAMvV,EAAI,GACjBm8B,EAAO5mB,EAAMvV,EAAI,GACjBk0C,EAAO3+B,EAAMvV,GACTwE,KAAKmN,OAAOxN,EAAOg4B,GAAQ,KAAO+X,GACpC3/B,EAAMtN,KAAK,CAAC84E,KAAM7rC,EAAMzW,IAAKz9B,GAAKiO,EAAO,KAG7C,OAAOsG,I,+CAGP,IAAIyrE,EAAap+E,KAAKuyC,OAAO9J,KAAO,GACpC,GAAI21C,EAAW//E,OACb,OAAO+/E,EAET,IAAMj3E,EAAOnH,KAAK8/E,oBACZrwC,EAAQzvC,KAAKm/E,qBAOnB,OALEf,EADEj3E,EAAK9I,QAAUoxC,EAAMpxC,OACV2B,KAAKghC,UAAU75B,EAAKjD,OAAOurC,IAE3BtoC,EAAK9I,OAAS8I,EAAOsoC,EAEpC2uC,EAAap+E,KAAKuyC,OAAO9J,IAAM21C,I,yCAGd1+E,GACjB,OAAQ4oB,GAAYtoB,KAAKmhF,OAAQzhF,GAASM,KAAKohF,SAAWphF,KAAKqhF,c,uCAEhD5zD,GACf,IAAM2yD,EAAUpgF,KAAK2+E,SACfp2B,EAAUvoD,KAAKk3E,mBAAmBzpD,GAAS2yD,EAAQ36C,OAAS26C,EAAQluE,IAC1E,OAAOoW,GAAYtoB,KAAKmhF,OAAQ54B,EAAUvoD,KAAKqhF,YAAcrhF,KAAKohF,SAAS,O,GA9DjD5C,IAiE9B0C,GAAgBr2E,GAAK,aACrBq2E,GAAgB73D,SAAWm1D,GAAUn1D,U,6BCr/UtB,SAASm4D,IAetB,OAdAA,EAAW9iF,OAAOwX,QAAU,SAAUhY,GACpC,IAAK,IAAIE,EAAI,EAAGA,EAAI+B,UAAU9B,OAAQD,IAAK,CACzC,IAAIuO,EAASxM,UAAU/B,GAEvB,IAAK,IAAIQ,KAAO+N,EACVjO,OAAOO,UAAUoE,eAAesB,KAAKgI,EAAQ/N,KAC/CV,EAAOU,GAAO+N,EAAO/N,IAK3B,OAAOV,IAGOkC,MAAMJ,KAAMG,WAf9B,mC,iBCAE,SAAU+oB,EAAMjgB,EAASw4E,GAanB,IAAU9+E,EAVhB7E,EAAOC,SAUS4E,EAVmB3E,EAAQ,IAAWA,EAAQ,SAe/D2E,EAASK,IAAI0+E,QAAW,SAAUpgF,GAE9B,IAAIwB,EAAIH,EACJI,EAAQD,EAAEE,IACVC,EAAOF,EAAME,KACbW,EAAYb,EAAMa,UAClBkD,EAAyB/D,EAAM+D,uBAC/BxB,EAAQxC,EAAEyC,IAEVo8E,GADOr8E,EAAMiB,KACJjB,EAAMq8E,QAEfC,EADS9+E,EAAEkG,KACK44E,OAUhBF,EAAS3+E,EAAM2+E,OAAS56E,EAAuB5D,OAAO,CAMtDmF,IAAKpF,EAAKC,SAgBV2+E,gBAAiB,SAAUjjF,EAAKyJ,GAC5B,OAAOrI,KAAKR,OAAOQ,KAAK8hF,gBAAiBljF,EAAKyJ,IAiBlD05E,gBAAiB,SAAUnjF,EAAKyJ,GAC5B,OAAOrI,KAAKR,OAAOQ,KAAKgiF,gBAAiBpjF,EAAKyJ,IAclD/E,KAAM,SAAU2+E,EAAWrjF,EAAKyJ,GAE5BrI,KAAKqI,IAAMrI,KAAKqI,IAAInF,OAAOmF,GAG3BrI,KAAKkiF,WAAaD,EAClBjiF,KAAKmiF,KAAOvjF,EAGZoB,KAAK+G,SAUTA,MAAO,WAEHD,EAAuBC,MAAMpC,KAAK3E,MAGlCA,KAAKsI,YAeT85E,QAAS,SAAUC,GAKf,OAHAriF,KAAKkH,QAAQm7E,GAGNriF,KAAKoH,YAiBhBqB,SAAU,SAAU45E,GAShB,OAPIA,GACAriF,KAAKkH,QAAQm7E,GAIQriF,KAAK0I,eAKlC45E,QAAS,EAETC,OAAQ,EAERT,gBAAiB,EAEjBE,gBAAiB,EAejBr5E,cAAgB,WACZ,SAAS65E,EAAqB5jF,GAC1B,MAAkB,iBAAPA,EACA6jF,EAEAC,EAIf,OAAO,SAAUC,GACb,MAAO,CACHC,QAAS,SAAU/5E,EAASjK,EAAKyJ,GAC7B,OAAOm6E,EAAqB5jF,GAAKgkF,QAAQD,EAAQ95E,EAASjK,EAAKyJ,IAGnEw6E,QAAS,SAAUC,EAAYlkF,EAAKyJ,GAChC,OAAOm6E,EAAqB5jF,GAAKikF,QAAQF,EAAQG,EAAYlkF,EAAKyJ,MAhBlE,KA0ChB06E,GAdehgF,EAAMigF,aAAetB,EAAOx+E,OAAO,CAClDwF,YAAa,WAIT,OAF2B1I,KAAKoH,UAAS,IAK7CI,UAAW,IAMF1E,EAAE+nB,KAAO,IAKlBo4D,EAAkBlgF,EAAMkgF,gBAAkBhgF,EAAKC,OAAO,CAatD2+E,gBAAiB,SAAUc,EAAQO,GAC/B,OAAOljF,KAAKmjF,UAAU3jF,OAAOmjF,EAAQO,IAezCnB,gBAAiB,SAAUY,EAAQO,GAC/B,OAAOljF,KAAKojF,UAAU5jF,OAAOmjF,EAAQO,IAazC5/E,KAAM,SAAUq/E,EAAQO,GACpBljF,KAAKqjF,QAAUV,EACf3iF,KAAKsjF,IAAMJ,KAOfK,EAAMR,EAAOQ,IAAO,WAIpB,IAAIA,EAAMN,EAAgB//E,SA6D1B,SAASsgF,EAAS3/E,EAAOkE,EAAQP,GAE7B,IAAI07E,EAAKljF,KAAKsjF,IAGd,GAAIJ,EAAI,CACJ,IAAIO,EAAQP,EAGZljF,KAAKsjF,SAvVG,OAyVJG,EAAQzjF,KAAK0jF,WAIrB,IAAK,IAAItlF,EAAI,EAAGA,EAAIoJ,EAAWpJ,IAC3ByF,EAAMkE,EAAS3J,IAAMqlF,EAAMrlF,GAInC,OA5EAmlF,EAAIJ,UAAYI,EAAIrgF,OAAO,CAWvBygF,aAAc,SAAU9/E,EAAOkE,GAE3B,IAAI46E,EAAS3iF,KAAKqjF,QACd77E,EAAYm7E,EAAOn7E,UAGvBg8E,EAAS7+E,KAAK3E,KAAM6D,EAAOkE,EAAQP,GACnCm7E,EAAOiB,aAAa//E,EAAOkE,GAG3B/H,KAAK0jF,WAAa7/E,EAAMe,MAAMmD,EAAQA,EAASP,MAOvD+7E,EAAIH,UAAYG,EAAIrgF,OAAO,CAWvBygF,aAAc,SAAU9/E,EAAOkE,GAE3B,IAAI46E,EAAS3iF,KAAKqjF,QACd77E,EAAYm7E,EAAOn7E,UAGnBq8E,EAAYhgF,EAAMe,MAAMmD,EAAQA,EAASP,GAG7Cm7E,EAAOmB,aAAajgF,EAAOkE,GAC3By7E,EAAS7+E,KAAK3E,KAAM6D,EAAOkE,EAAQP,GAGnCxH,KAAK0jF,WAAaG,KAwBnBN,EArFa,GAgGpBQ,GALQjhF,EAAEkhF,IAAM,IAKFD,MAAQ,CAatBC,IAAK,SAAU78E,EAAMK,GAYjB,IAVA,IAAIy8E,EAA6B,EAAZz8E,EAGjB08E,EAAgBD,EAAiB98E,EAAKrD,SAAWmgF,EAGjDE,EAAeD,GAAiB,GAAOA,GAAiB,GAAOA,GAAiB,EAAKA,EAGrFE,EAAe,GACVhmF,EAAI,EAAGA,EAAI8lF,EAAe9lF,GAAK,EACpCgmF,EAAa/+E,KAAK8+E,GAEtB,IAAItjC,EAAUj9C,EAAUpE,OAAO4kF,EAAcF,GAG7C/8E,EAAKjD,OAAO28C,IAchBwjC,MAAO,SAAUl9E,GAEb,IAAI+8E,EAAwD,IAAxC/8E,EAAKtD,MAAOsD,EAAKrD,SAAW,IAAO,GAGvDqD,EAAKrD,UAAYogF,IAyFrBI,GAhFcvhF,EAAMwhF,YAAc7C,EAAOx+E,OAAO,CAOhDmF,IAAKq5E,EAAOr5E,IAAInF,OAAO,CACnB2nB,KAAM04D,EACN1iC,QAASkjC,IAGbh9E,MAAO,WAEH26E,EAAO36E,MAAMpC,KAAK3E,MAGlB,IAAIqI,EAAMrI,KAAKqI,IACX66E,EAAK76E,EAAI66E,GACTr4D,EAAOxiB,EAAIwiB,KAGf,GAAI7qB,KAAKkiF,YAAcliF,KAAK8hF,gBACxB,IAAI0C,EAAc35D,EAAKg3D,qBAEnB2C,EAAc35D,EAAKk3D,gBAEvB/hF,KAAK4H,eAAiB,EAGtB5H,KAAKykF,OAASzkF,KAAKykF,MAAMC,WAAaF,EACtCxkF,KAAKykF,MAAMnhF,KAAKtD,KAAMkjF,GAAMA,EAAGr/E,QAE/B7D,KAAKykF,MAAQD,EAAY7/E,KAAKkmB,EAAM7qB,KAAMkjF,GAAMA,EAAGr/E,OACnD7D,KAAKykF,MAAMC,UAAYF,IAI/Bx8E,gBAAiB,SAAUnE,EAAOkE,GAC9B/H,KAAKykF,MAAMd,aAAa9/E,EAAOkE,IAGnCW,YAAa,WAET,IAAIm4C,EAAU7gD,KAAKqI,IAAIw4C,QAGvB,GAAI7gD,KAAKkiF,YAAcliF,KAAK8hF,gBAAiB,CAEzCjhC,EAAQmjC,IAAIhkF,KAAKgH,MAAOhH,KAAKwH,WAG7B,IAAIm9E,EAAuB3kF,KAAKoH,UAAS,QAGrCu9E,EAAuB3kF,KAAKoH,UAAS,GAGzCy5C,EAAQwjC,MAAMM,GAGlB,OAAOA,GAGXn9E,UAAW,IAgBIzE,EAAMuhF,aAAerhF,EAAKC,OAAO,CAoBhDI,KAAM,SAAUshF,GACZ5kF,KAAKoD,MAAMwhF,IAkBflhF,SAAU,SAAU87B,GAChB,OAAQA,GAAax/B,KAAKw/B,WAAWv7B,UAAUjE,UAYnD6kF,GALW/hF,EAAE88B,OAAS,IAKMklD,QAAU,CActC7gF,UAAW,SAAU2gF,GAEjB,IAAI9B,EAAa8B,EAAa9B,WAC1BiC,EAAOH,EAAaG,KAGxB,GAAIA,EACA,IAAI5gF,EAAYP,EAAUpE,OAAO,CAAC,WAAY,aAAa0E,OAAO6gF,GAAM7gF,OAAO4+E,QAE3E3+E,EAAY2+E,EAGpB,OAAO3+E,EAAUT,SAASi+E,IAgB9Bh8E,MAAO,SAAUq/E,GAEb,IAAIlC,EAAanB,EAAOh8E,MAAMq/E,GAG1BC,EAAkBnC,EAAWj/E,MAGjC,GAA0B,YAAtBohF,EAAgB,IAA0C,YAAtBA,EAAgB,GAAkB,CAEtE,IAAIF,EAAOnhF,EAAUpE,OAAOylF,EAAgBrgF,MAAM,EAAG,IAGrDqgF,EAAgB/8E,OAAO,EAAG,GAC1B46E,EAAWh/E,UAAY,GAG3B,OAAOwgF,EAAa9kF,OAAO,CAAEsjF,WAAYA,EAAYiC,KAAMA,MAO/DrC,EAAqB3/E,EAAM2/E,mBAAqBz/E,EAAKC,OAAO,CAM5DmF,IAAKpF,EAAKC,OAAO,CACb08B,OAAQilD,IAqBZjC,QAAS,SAAUD,EAAQ95E,EAASjK,EAAKyJ,GAErCA,EAAMrI,KAAKqI,IAAInF,OAAOmF,GAGtB,IAAI68E,EAAYvC,EAAOd,gBAAgBjjF,EAAKyJ,GACxCy6E,EAAaoC,EAAUz8E,SAASI,GAGhCs8E,EAAYD,EAAU78E,IAG1B,OAAOi8E,EAAa9kF,OAAO,CACvBsjF,WAAYA,EACZlkF,IAAKA,EACLskF,GAAIiC,EAAUjC,GACdkC,UAAWzC,EACX93D,KAAMs6D,EAAUt6D,KAChBg2B,QAASskC,EAAUtkC,QACnBr5C,UAAWm7E,EAAOn7E,UAClBg4B,UAAWn3B,EAAIu3B,UAqBvBijD,QAAS,SAAUF,EAAQG,EAAYlkF,EAAKyJ,GAUxC,OARAA,EAAMrI,KAAKqI,IAAInF,OAAOmF,GAGtBy6E,EAAa9iF,KAAKqlF,OAAOvC,EAAYz6E,EAAIu3B,QAGzB+iD,EAAOZ,gBAAgBnjF,EAAKyJ,GAAKI,SAASq6E,EAAWA,aAoBzEuC,OAAQ,SAAUvC,EAAYljD,GAC1B,MAAyB,iBAAdkjD,EACAljD,EAAOj6B,MAAMm9E,EAAY9iF,MAEzB8iF,KAafwC,GALQxiF,EAAEyiF,IAAM,IAKGT,QAAU,CAkB7BU,QAAS,SAAUC,EAAUnD,EAASC,EAAQwC,GAErCA,IACDA,EAAOnhF,EAAUiB,OAAO,IAI5B,IAAIjG,EAAMgjF,EAAOpiF,OAAO,CAAE8iF,QAASA,EAAUC,IAAUmD,QAAQD,EAAUV,GAGrE7B,EAAKt/E,EAAUpE,OAAOZ,EAAIiF,MAAMe,MAAM09E,GAAmB,EAATC,GAIpD,OAHA3jF,EAAIkF,SAAqB,EAAVw+E,EAGRgC,EAAa9kF,OAAO,CAAEZ,IAAKA,EAAKskF,GAAIA,EAAI6B,KAAMA,MAQzDtC,EAAsB1/E,EAAM0/E,oBAAsBC,EAAmBx/E,OAAO,CAM5EmF,IAAKq6E,EAAmBr6E,IAAInF,OAAO,CAC/BqiF,IAAKD,IAoBT1C,QAAS,SAAUD,EAAQ95E,EAAS48E,EAAUp9E,GAK1C,IAAIs9E,GAHJt9E,EAAMrI,KAAKqI,IAAInF,OAAOmF,IAGEk9E,IAAIC,QAAQC,EAAU9C,EAAOL,QAASK,EAAOJ,QAGrEl6E,EAAI66E,GAAKyC,EAAczC,GAGvB,IAAIJ,EAAaJ,EAAmBE,QAAQj+E,KAAK3E,KAAM2iF,EAAQ95E,EAAS88E,EAAc/mF,IAAKyJ,GAK3F,OAFAy6E,EAAW1/E,MAAMuiF,GAEV7C,GAoBXD,QAAS,SAAUF,EAAQG,EAAY2C,EAAUp9E,GAE7CA,EAAMrI,KAAKqI,IAAInF,OAAOmF,GAGtBy6E,EAAa9iF,KAAKqlF,OAAOvC,EAAYz6E,EAAIu3B,QAGzC,IAAI+lD,EAAgBt9E,EAAIk9E,IAAIC,QAAQC,EAAU9C,EAAOL,QAASK,EAAOJ,OAAQO,EAAWiC,MAQxF,OALA18E,EAAI66E,GAAKyC,EAAczC,GAGPR,EAAmBG,QAAQl+E,KAAK3E,KAAM2iF,EAAQG,EAAY6C,EAAc/mF,IAAKyJ,MAr1BjF,KAlBvB,I,sCCEAvK,EAAOC,Q,wBCDT,IAAI6nF,EAAsB,CCA1B,EAAwB,SAAC7nF,EAAS8nF,GACjC,IAAI,IAAIjnF,KAAOinF,EACXD,EAAoBpkF,EAAEqkF,EAAYjnF,KAASgnF,EAAoBpkF,EAAEzD,EAASa,IAC5EF,OAAOC,eAAeZ,EAASa,EAAK,CAAEL,cAAkB+L,IAAKu7E,EAAWjnF,MCJ3E,EAAwB,SAAC8D,EAAK4wB,GAAN,OAAgB50B,OAAOO,UAAUoE,eAAesB,KAAKjC,EAAK4wB,K,2CCA3E,ICUHwyD,EDVSC,EAAO,aAIP/6E,EAAY+D,mBACP,OAATA,GAA2C,WAA1BA,EAAKtP,YAAYksB,MCOrCq6D,EAAa,WACjB,YAAIF,EAAqB,OAAOA,EAChCA,KAEA,IACOG,eACHH,MAEF,MAAO9jF,GAGP8jF,KAMF,OAFAI,IAEOJ,GAIHK,EAAMjgF,OAAOC,aAAa,GAG1BigF,EAA+B,SAAC93E,EAAK1P,GAAN,IAAWgkF,IAAX,gEACnCA,EACI,EAAMrjD,KAAKt7B,UAAUqK,IACpB1B,KAAKgB,mBAAM1H,OAAOC,aAAayH,EAAEtH,WAAW,GAAM1H,MAClD8G,KAAK,IACN65B,KAAK55B,MAAM,EAAK2I,GAAkB1B,KAAKgB,mBAAM1H,OAAOC,aAAayH,EAAEtH,WAAW,GAAM1H,MAAiB8G,KAAK,MAM1GkiC,EAA6B,CACjCy+C,IAAK,KACLzD,WACA0D,UAAWF,EACXG,UAR2B,SAACj4E,EAAK1P,GAAN,OACpBwnF,EAAM93E,EAAK1P,OAQlB4nF,OAAQ,IAiFJN,EAAQ,WAAS,IAARO,EAAQ,wDACrB,IAAKT,IAAc,OAAO,EAC1BtnF,OAAOuN,KAAKg6E,cAAcxyE,SAAS7U,YACjC,IAAM0P,EAAM23E,aAAaS,QAAQ9nF,GACjC,GAAK0P,EAAL,CACA,IAAIS,EACJ,IACEA,EAAOwwB,KAAK55B,MAAM2I,GAClB,MAAOtM,GAEP,OAGEgJ,EAAS+D,IAASo3E,KAAOp3E,IAASm1B,KAAKC,MAAQp1B,EAAKs3E,KAAOI,IAC7DR,aAAaU,WAAW/nF,QAe9B,GACEgpC,SACAh0B,IA7GU,SAAchV,EAAac,GAA4C,IAAlCknF,EAAkC,0DACjF,IAAKZ,IAAc,OAAO,EAE1B,IAAMa,EAAQ,OAAH,sCACNj/C,GACAg/C,GAAW,CACdhE,aAASgE,EAAYhE,UAA4BgE,EAAYhE,SAAWh7C,EAAOg7C,SAC/EyD,IAAyB,OAApBO,EAAYP,IAAe,KAAOO,EAAYP,KAAOz+C,EAAOy+C,MAGnE,UACQS,EAASD,EAAMR,MAAQ/1E,MAAMu2E,EAAMR,MAAQQ,EAAMR,IAAM,EACzD99D,EAAMu+D,UAAYX,EAAMzmF,GAAlBonF,UAA8B5iD,KAAKC,MAAgC,IAAvB0iD,EAAMR,KAAlDS,GAA2EpnF,EAEjFmnF,EAAMjE,UAEJkE,EACDv+D,EAAgC49D,IAAQU,EAAMP,WAAaP,GACzDx9D,EAAgC49D,GACjCU,EAAML,QAGRj+D,GAAOs+D,EAAMP,WAAaP,GAAMx9D,EAAKs+D,EAAML,SAI/CP,aAAac,QAAQnoF,EAAK2gC,KAAKt7B,UAAUskB,IACzC,MAAOvmB,GAEP,WAiFFsI,IA7EU,SAAc1L,GAA+C,IAAlCgoF,EAAkC,0DACvE,IAAKZ,IAAc,OAAO,KAE1B,IAAM13E,EAAM23E,aAAaS,QAAQ9nF,GAEjC,IAAK0P,EACH,OAAO,KAGT,IAAMu4E,EAAQ,OAAH,sCACNj/C,GACAg/C,GAAW,CACdhE,aAASgE,EAAYhE,UAA4BgE,EAAYhE,SAAWh7C,EAAOg7C,SAC/EyD,IAAyB,OAApBO,EAAYP,IAAe,KAAOO,EAAYP,KAAOz+C,EAAOy+C,MAG/Dt3E,EAAOwwB,KAAK55B,MAAM2I,GAChBw4E,EAAS97E,EAAS+D,IAASo3E,KAAOp3E,EAExC,GAAI83E,EAAMhE,SAAWgE,EAAMjE,QACzB,IACMkE,EACF/3E,EAAKo3E,IAAQU,EAAMN,WAAaR,GAAMh3E,EAAKo3E,GAAMU,EAAML,QAEvDz3E,GAAQ83E,EAAMN,WAAaR,GAAMh3E,EAAM83E,EAAML,QAE/C,MAAOxkF,IAOX,OAAK8kF,EAID5iD,KAAKC,MAAQp1B,EAAKs3E,KACpBJ,aAAaU,WAAW/nF,GACjB,MAGFmQ,EAAKo3E,GARHp3E,GA4CTm3E,QACAhsB,MAVY,WACZ,IAAK8rB,IAAc,OAAO,EAC1BC,aAAa/rB,SASbgH,OAhBctiE,YACd,IAAKonF,IAAc,OAAO,EAC1BC,aAAaU,WAAW/nF,K,kDC9IXooF,IAVf,SAAmBC,EAAWp+E,GAC1B,IAAIo+E,EAIA,MAAM,IAAIvgF,MANL,sB,6BCDE,SAASwgF,EAAe5nF,EAAUC,GAC/CD,EAASL,UAAYP,OAAOc,OAAOD,EAAWN,WAC9CK,EAASL,UAAUQ,YAAcH,EACjCA,EAAS+J,UAAY9J,EAHvB,mC,qPCAA,SAAS4nF,EAAWC,GAClB,MAA8B,MAAvBA,EAAS74E,OAAO,GAIzB,SAAS84E,EAAUC,EAAM76E,GACvB,IAAK,IAAIrO,EAAIqO,EAAOK,EAAI1O,EAAI,EAAG2D,EAAIulF,EAAKjpF,OAAQyO,EAAI/K,EAAG3D,GAAK,EAAG0O,GAAK,EAClEw6E,EAAKlpF,GAAKkpF,EAAKx6E,GAGjBw6E,EAAK5iD,MAgEQ6iD,MA5Df,SAAyBvgE,EAAI7c,QACd7I,IAAT6I,IAAoBA,EAAO,IAE/B,IAkBIq9E,EAlBAC,EAAWzgE,GAAMA,EAAGhZ,MAAM,MAAS,GACnC05E,EAAav9E,GAAQA,EAAK6D,MAAM,MAAS,GAEzC25E,EAAU3gE,GAAMmgE,EAAWngE,GAC3B4gE,EAAYz9E,GAAQg9E,EAAWh9E,GAC/B09E,EAAaF,GAAWC,EAW5B,GATI5gE,GAAMmgE,EAAWngE,GAEnB0gE,EAAYD,EACHA,EAAQppF,SAEjBqpF,EAAUhjD,MACVgjD,EAAYA,EAAUxjF,OAAOujF,KAG1BC,EAAUrpF,OAAQ,MAAO,IAG9B,GAAIqpF,EAAUrpF,OAAQ,CACpB,IAAI4U,EAAOy0E,EAAUA,EAAUrpF,OAAS,GACxCmpF,EAA4B,MAATv0E,GAAyB,OAATA,GAA0B,KAATA,OAEpDu0E,GAAmB,EAIrB,IADA,IAAIM,EAAK,EACA1pF,EAAIspF,EAAUrpF,OAAQD,GAAK,EAAGA,IAAK,CAC1C,IAAI8P,EAAOw5E,EAAUtpF,GAER,MAAT8P,EACFm5E,EAAUK,EAAWtpF,GACH,OAAT8P,GACTm5E,EAAUK,EAAWtpF,GACrB0pF,KACSA,IACTT,EAAUK,EAAWtpF,GACrB0pF,KAIJ,IAAKD,EAAY,KAAOC,IAAMA,EAAIJ,EAAUhR,QAAQ,OAGlDmR,GACiB,KAAjBH,EAAU,IACRA,EAAU,IAAOP,EAAWO,EAAU,KAExCA,EAAUhR,QAAQ,IAEpB,IAAI72E,EAAS6nF,EAAUhiF,KAAK,KAI5B,OAFI8hF,GAA0C,MAAtB3nF,EAAOkG,QAAQ,KAAYlG,GAAU,KAEtDA,GCvET,SAASkoF,EAAQrlF,GACf,OAAOA,EAAIqlF,QAAUrlF,EAAIqlF,UAAYrpF,OAAOO,UAAU8oF,QAAQpjF,KAAKjC,GAkCtDslF,MA/Bf,SAASA,EAAWp5E,EAAGC,GAErB,GAAID,IAAMC,EAAG,OAAO,EAGpB,GAAS,MAALD,GAAkB,MAALC,EAAW,OAAO,EAEnC,GAAIlN,MAAMC,QAAQgN,GAChB,OACEjN,MAAMC,QAAQiN,IACdD,EAAEvQ,SAAWwQ,EAAExQ,QACfuQ,EAAEq5E,OAAM,SAASl5E,EAAMtC,GACrB,OAAOu7E,EAAWj5E,EAAMF,EAAEpC,OAKhC,GAAiB,kBAANmC,GAA+B,kBAANC,EAAgB,CAClD,IAAIq5E,EAASH,EAAQn5E,GACjBu5E,EAASJ,EAAQl5E,GAErB,OAAIq5E,IAAWt5E,GAAKu5E,IAAWt5E,EAAUm5E,EAAWE,EAAQC,GAErDzpF,OAAOuN,KAAKvN,OAAOwX,OAAO,GAAItH,EAAGC,IAAIo5E,OAAM,SAASrpF,GACzD,OAAOopF,EAAWp5E,EAAEhQ,GAAMiQ,EAAEjQ,OAIhC,OAAO,G,QC1BT,SAASwpF,EAAgB3gB,GACvB,MAA0B,MAAnBA,EAAKl5D,OAAO,GAAak5D,EAAO,IAAMA,EAE/C,SAAS4gB,EAAkB5gB,GACzB,MAA0B,MAAnBA,EAAKl5D,OAAO,GAAak5D,EAAK1hE,OAAO,GAAK0hE,EAKnD,SAAS6gB,EAAc7gB,EAAM1wC,GAC3B,OAJF,SAAqB0wC,EAAM1wC,GACzB,OAA4D,IAArD0wC,EAAK3gD,cAAc9Z,QAAQ+pB,EAAOjQ,iBAAuE,IAA/C,MAAM9Z,QAAQy6D,EAAKl5D,OAAOwoB,EAAO14B,SAG3FkqF,CAAY9gB,EAAM1wC,GAAU0wC,EAAK1hE,OAAOgxB,EAAO14B,QAAUopE,EAElE,SAAS+gB,EAAmB/gB,GAC1B,MAAwC,MAAjCA,EAAKl5D,OAAOk5D,EAAKppE,OAAS,GAAaopE,EAAK7iE,MAAM,GAAI,GAAK6iE,EA0BpE,SAASghB,EAAWC,GAClB,IAAItB,EAAWsB,EAAStB,SACpBuB,EAASD,EAASC,OAClBC,EAAOF,EAASE,KAChBnhB,EAAO2f,GAAY,IAGvB,OAFIuB,GAAqB,MAAXA,IAAgBlhB,GAA6B,MAArBkhB,EAAOp6E,OAAO,GAAao6E,EAAS,IAAMA,GAC5EC,GAAiB,MAATA,IAAcnhB,GAA2B,MAAnBmhB,EAAKr6E,OAAO,GAAaq6E,EAAO,IAAMA,GACjEnhB,EAGT,SAASohB,EAAephB,EAAMqhB,EAAOlqF,EAAKmqF,GACxC,IAAIL,EAEgB,kBAATjhB,GAETihB,EAvCJ,SAAmBjhB,GACjB,IAAI2f,EAAW3f,GAAQ,IACnBkhB,EAAS,GACTC,EAAO,GACPI,EAAY5B,EAASp6E,QAAQ,MAEd,IAAfg8E,IACFJ,EAAOxB,EAASrhF,OAAOijF,GACvB5B,EAAWA,EAASrhF,OAAO,EAAGijF,IAGhC,IAAIC,EAAc7B,EAASp6E,QAAQ,KAOnC,OALqB,IAAjBi8E,IACFN,EAASvB,EAASrhF,OAAOkjF,GACzB7B,EAAWA,EAASrhF,OAAO,EAAGkjF,IAGzB,CACL7B,SAAUA,EACVuB,OAAmB,MAAXA,EAAiB,GAAKA,EAC9BC,KAAe,MAATA,EAAe,GAAKA,GAkBfM,CAAUzhB,IACZqhB,MAAQA,QAISxnF,KAD1BonF,EAAWlH,YAAS,GAAI/Z,IACX2f,WAAwBsB,EAAStB,SAAW,IAErDsB,EAASC,OACuB,MAA9BD,EAASC,OAAOp6E,OAAO,KAAYm6E,EAASC,OAAS,IAAMD,EAASC,QAExED,EAASC,OAAS,GAGhBD,EAASE,KACqB,MAA5BF,EAASE,KAAKr6E,OAAO,KAAYm6E,EAASE,KAAO,IAAMF,EAASE,MAEpEF,EAASE,KAAO,QAGJtnF,IAAVwnF,QAA0CxnF,IAAnBonF,EAASI,QAAqBJ,EAASI,MAAQA,IAG5E,IACEJ,EAAStB,SAAW+B,UAAUT,EAAStB,UACvC,MAAOplF,GACP,MAAIA,aAAaonF,SACT,IAAIA,SAAS,aAAeV,EAAStB,SAAxB,iFAEbplF,EAoBV,OAhBIpD,IAAK8pF,EAAS9pF,IAAMA,GAEpBmqF,EAEGL,EAAStB,SAE6B,MAAhCsB,EAAStB,SAAS74E,OAAO,KAClCm6E,EAAStB,SAAWG,EAAgBmB,EAAStB,SAAU2B,EAAgB3B,WAFvEsB,EAAStB,SAAW2B,EAAgB3B,SAMjCsB,EAAStB,WACZsB,EAAStB,SAAW,KAIjBsB,EAET,SAASW,EAAkBz6E,EAAGC,GAC5B,OAAOD,EAAEw4E,WAAav4E,EAAEu4E,UAAYx4E,EAAE+5E,SAAW95E,EAAE85E,QAAU/5E,EAAEg6E,OAAS/5E,EAAE+5E,MAAQh6E,EAAEhQ,MAAQiQ,EAAEjQ,KAAOopF,EAAWp5E,EAAEk6E,MAAOj6E,EAAEi6E,OAG7H,SAASQ,IACP,IAAIC,EAAS,KAiCb,IAAI/1E,EAAY,GA4BhB,MAAO,CACLg2E,UA5DF,SAAmBC,GAGjB,OADAF,EAASE,EACF,WACDF,IAAWE,IAAYF,EAAS,QAyDtCG,oBArDF,SAA6BhB,EAAUiB,EAAQC,EAAqBj+E,GAIlE,GAAc,MAAV49E,EAAgB,CAClB,IAAI1pF,EAA2B,oBAAX0pF,EAAwBA,EAAOb,EAAUiB,GAAUJ,EAEjD,kBAAX1pF,EAC0B,oBAAxB+pF,EACTA,EAAoB/pF,EAAQ8L,GAG5BA,GAAS,GAIXA,GAAoB,IAAX9L,QAGX8L,GAAS,IAmCXk+E,eA7BF,SAAwB3oF,GACtB,IAAI4oF,GAAW,EAEf,SAASz2E,IACHy2E,GAAU5oF,EAAGd,WAAM,EAAQD,WAIjC,OADAqT,EAAUnO,KAAKgO,GACR,WACLy2E,GAAW,EACXt2E,EAAYA,EAAU8iB,QAAO,SAAUvnB,GACrC,OAAOA,IAASsE,OAmBpB02E,gBAdF,WACE,IAAK,IAAIC,EAAO7pF,UAAU9B,OAAQ+C,EAAO,IAAIO,MAAMqoF,GAAO7H,EAAO,EAAGA,EAAO6H,EAAM7H,IAC/E/gF,EAAK+gF,GAAQhiF,UAAUgiF,GAGzB3uE,EAAUC,SAAQ,SAAUJ,GAC1B,OAAOA,EAASjT,WAAM,EAAQgB,QAYpC,IAAI6oF,IAAiC,qBAAXj2E,SAA0BA,OAAO8mB,WAAY9mB,OAAO8mB,SAASovD,eACvF,SAASC,EAAgBthF,EAAS8C,GAChCA,EAASqI,OAAOo2E,QAAQvhF,IA2C1B,SAASwhF,IACP,IACE,OAAOr2E,OAAOs2E,QAAQxB,OAAS,GAC/B,MAAO9mF,GAGP,MAAO,IASX,SAASuoF,EAAqBpsF,QACd,IAAVA,IACFA,EAAQ,IAGT8rF,GAAsGjD,aAAU,GACjH,IAAIwD,EAAgBx2E,OAAOs2E,QACvBG,EAvDN,WACE,IAAIC,EAAK12E,OAAO22E,UAAUC,UAC1B,QAAmC,IAA9BF,EAAG19E,QAAQ,gBAAuD,IAA/B09E,EAAG19E,QAAQ,iBAA2D,IAAjC09E,EAAG19E,QAAQ,mBAAqD,IAA1B09E,EAAG19E,QAAQ,YAAqD,IAAjC09E,EAAG19E,QAAQ,oBACtJgH,OAAOs2E,SAAW,cAAet2E,OAAOs2E,SAoD3BO,GAChBC,KA7CsD,IAAnD92E,OAAO22E,UAAUC,UAAU59E,QAAQ,YA8CtC+9E,EAAS5sF,EACT6sF,EAAsBD,EAAOE,aAC7BA,OAAuC,IAAxBD,GAAyCA,EACxDE,EAAwBH,EAAOnB,oBAC/BA,OAAgD,IAA1BsB,EAAmCf,EAAkBe,EAC3EC,EAAmBJ,EAAOK,UAC1BA,OAAiC,IAArBD,EAA8B,EAAIA,EAC9CE,EAAWltF,EAAMktF,SAAW7C,EAAmBJ,EAAgBjqF,EAAMktF,WAAa,GAEtF,SAASC,EAAeC,GACtB,IAAIC,EAAOD,GAAgB,GACvB3sF,EAAM4sF,EAAK5sF,IACXkqF,EAAQ0C,EAAK1C,MAEb2C,EAAmBz3E,OAAO00E,SAI1BjhB,EAHWgkB,EAAiBrE,SACnBqE,EAAiB9C,OACnB8C,EAAiB7C,KAI5B,OADIyC,IAAU5jB,EAAO6gB,EAAc7gB,EAAM4jB,IAClCxC,EAAephB,EAAMqhB,EAAOlqF,GAGrC,SAAS8sF,IACP,OAAO9oF,KAAKiC,SAASnB,SAAS,IAAIqC,OAAO,EAAGqlF,GAG9C,IAAIO,EAAoBrC,IAExB,SAASsC,EAASC,GAChBrK,YAAS8I,EAASuB,GAElBvB,EAAQjsF,OAASmsF,EAAcnsF,OAC/BstF,EAAkB5B,gBAAgBO,EAAQ5B,SAAU4B,EAAQX,QAG9D,SAASmC,EAAe/mD,IApE1B,SAAmCA,GACjC,YAAuBzjC,IAAhByjC,EAAM+jD,QAAiE,IAA1C6B,UAAUC,UAAU59E,QAAQ,UAqE1D++E,CAA0BhnD,IAC9BinD,EAAUV,EAAevmD,EAAM+jD,QAGjC,SAASmD,IACPD,EAAUV,EAAejB,MAG3B,IAAI6B,GAAe,EAEnB,SAASF,EAAUtD,GACjB,GAAIwD,EACFA,GAAe,EACfN,QACK,CAELD,EAAkBjC,oBAAoBhB,EADzB,MAC2CkB,GAAqB,SAAUrjE,GACjFA,EACFqlE,EAAS,CACPjC,OAJO,MAKPjB,SAAUA,IASpB,SAAmByD,GACjB,IAAIC,EAAa9B,EAAQ5B,SAIrB2D,EAAU31D,EAAQ1pB,QAAQo/E,EAAWxtF,MACxB,IAAbytF,IAAgBA,EAAU,GAC9B,IAAIC,EAAY51D,EAAQ1pB,QAAQm/E,EAAavtF,MAC1B,IAAf0tF,IAAkBA,EAAY,GAClC,IAAI7yD,EAAQ4yD,EAAUC,EAElB7yD,IACFyyD,GAAe,EACfK,EAAG9yD,IAnBC+yD,CAAU9D,OAuBlB,IAAI+D,EAAkBnB,EAAejB,KACjC3zD,EAAU,CAAC+1D,EAAgB7tF,KAE/B,SAAS8tF,EAAWhE,GAClB,OAAO2C,EAAW5C,EAAWC,GAuE/B,SAAS6D,EAAGxqF,GACVyoF,EAAc+B,GAAGxqF,GAWnB,IAAI4qF,EAAgB,EAEpB,SAASC,EAAkBnzD,GAGH,KAFtBkzD,GAAiBlzD,IAEoB,IAAVA,GACzBzlB,OAAOsqB,iBA7MO,WA6MyBwtD,GACnChB,GAAyB92E,OAAOsqB,iBA7MpB,aA6MsD2tD,IAC3C,IAAlBU,IACT34E,OAAOuqB,oBAhNO,WAgN4ButD,GACtChB,GAAyB92E,OAAOuqB,oBAhNpB,aAgNyD0tD,IAI7E,IAAIY,GAAY,EAiChB,IAAIvC,EAAU,CACZjsF,OAAQmsF,EAAcnsF,OACtBsrF,OAAQ,MACRjB,SAAU+D,EACVC,WAAYA,EACZrnF,KApIF,SAAcoiE,EAAMqhB,GAElB,IACIJ,EAAWG,EAAephB,EAAMqhB,EAAO4C,IAAapB,EAAQ5B,UAChEiD,EAAkBjC,oBAAoBhB,EAFzB,OAE2CkB,GAAqB,SAAUrjE,GACrF,GAAKA,EAAL,CACA,IAAIumE,EAAOJ,EAAWhE,GAClB9pF,EAAM8pF,EAAS9pF,IACfkqF,EAAQJ,EAASI,MAErB,GAAI2B,EAMF,GALAD,EAAcuC,UAAU,CACtBnuF,IAAKA,EACLkqF,MAAOA,GACN,KAAMgE,GAEL7B,EACFj3E,OAAO00E,SAASoE,KAAOA,MAClB,CACL,IAAIE,EAAYt2D,EAAQ1pB,QAAQs9E,EAAQ5B,SAAS9pF,KAC7CquF,EAAWv2D,EAAQ9xB,MAAM,EAAGooF,EAAY,GAC5CC,EAAS5nF,KAAKqjF,EAAS9pF,KACvB83B,EAAUu2D,EACVrB,EAAS,CACPjC,OAtBK,OAuBLjB,SAAUA,SAKd10E,OAAO00E,SAASoE,KAAOA,OAuG3BnmE,QAlGF,SAAiB8gD,EAAMqhB,GAErB,IACIJ,EAAWG,EAAephB,EAAMqhB,EAAO4C,IAAapB,EAAQ5B,UAChEiD,EAAkBjC,oBAAoBhB,EAFzB,UAE2CkB,GAAqB,SAAUrjE,GACrF,GAAKA,EAAL,CACA,IAAIumE,EAAOJ,EAAWhE,GAClB9pF,EAAM8pF,EAAS9pF,IACfkqF,EAAQJ,EAASI,MAErB,GAAI2B,EAMF,GALAD,EAAc0C,aAAa,CACzBtuF,IAAKA,EACLkqF,MAAOA,GACN,KAAMgE,GAEL7B,EACFj3E,OAAO00E,SAAS/hE,QAAQmmE,OACnB,CACL,IAAIE,EAAYt2D,EAAQ1pB,QAAQs9E,EAAQ5B,SAAS9pF,MAC9B,IAAfouF,IAAkBt2D,EAAQs2D,GAAatE,EAAS9pF,KACpDgtF,EAAS,CACPjC,OApBK,UAqBLjB,SAAUA,SAKd10E,OAAO00E,SAAS/hE,QAAQmmE,QAuE5BP,GAAIA,EACJY,OA/DF,WACEZ,GAAI,IA+DJa,UA5DF,WACEb,EAAG,IA4DH9I,MAzCF,SAAe8F,QACE,IAAXA,IACFA,GAAS,GAGX,IAAI8D,EAAU1B,EAAkBnC,UAAUD,GAO1C,OALKsD,IACHD,EAAkB,GAClBC,GAAY,GAGP,WAML,OALIA,IACFA,GAAY,EACZD,GAAmB,IAGdS,MAwBT9vB,OApBF,SAAgBlqD,GACd,IAAIi6E,EAAW3B,EAAkB9B,eAAex2E,GAEhD,OADAu5E,EAAkB,GACX,WACLA,GAAmB,GACnBU,OAiBJ,OAAOhD,EAGT,IACIiD,EAAiB,CACnBC,SAAU,CACRC,WAAY,SAAoBhmB,GAC9B,MAA0B,MAAnBA,EAAKl5D,OAAO,GAAak5D,EAAO,KAAO4gB,EAAkB5gB,IAElEimB,WAAY,SAAoBjmB,GAC9B,MAA0B,MAAnBA,EAAKl5D,OAAO,GAAak5D,EAAK1hE,OAAO,GAAK0hE,IAGrDkmB,QAAS,CACPF,WAAYpF,EACZqF,WAAYtF,GAEdwF,MAAO,CACLH,WAAYrF,EACZsF,WAAYtF,IAIhB,SAASyF,EAAUC,GACjB,IAAI9E,EAAY8E,EAAI9gF,QAAQ,KAC5B,OAAsB,IAAfg8E,EAAmB8E,EAAMA,EAAIlpF,MAAM,EAAGokF,GAG/C,SAAS+E,IAGP,IAAIjB,EAAO94E,OAAO00E,SAASoE,KACvB9D,EAAY8D,EAAK9/E,QAAQ,KAC7B,OAAsB,IAAfg8E,EAAmB,GAAK8D,EAAKkB,UAAUhF,EAAY,GAO5D,SAASiF,EAAgBxmB,GACvBzzD,OAAO00E,SAAS/hE,QAAQknE,EAAU75E,OAAO00E,SAASoE,MAAQ,IAAMrlB,GAGlE,SAASymB,EAAkB/vF,QACX,IAAVA,IACFA,EAAQ,IAGT8rF,GAAmGjD,aAAU,GAC9G,IAAIwD,EAAgBx2E,OAAOs2E,QAEvBS,GAnUG/2E,OAAO22E,UAAUC,UAAU59E,QAAQ,WAmU7B7O,GACT+sF,EAAwBH,EAAOnB,oBAC/BA,OAAgD,IAA1BsB,EAAmCf,EAAkBe,EAC3EiD,EAAkBpD,EAAOqD,SACzBA,OAA+B,IAApBD,EAA6B,QAAUA,EAClD9C,EAAWltF,EAAMktF,SAAW7C,EAAmBJ,EAAgBjqF,EAAMktF,WAAa,GAClFgD,EAAwBd,EAAea,GACvCX,EAAaY,EAAsBZ,WACnCC,EAAaW,EAAsBX,WAEvC,SAASpC,IACP,IAAI7jB,EAAOimB,EAAWK,KAGtB,OADI1C,IAAU5jB,EAAO6gB,EAAc7gB,EAAM4jB,IAClCxC,EAAephB,GAGxB,IAAIkkB,EAAoBrC,IAExB,SAASsC,EAASC,GAChBrK,YAAS8I,EAASuB,GAElBvB,EAAQjsF,OAASmsF,EAAcnsF,OAC/BstF,EAAkB5B,gBAAgBO,EAAQ5B,SAAU4B,EAAQX,QAG9D,IAAIuC,GAAe,EACfoC,EAAa,KAMjB,SAASrC,IACP,IAL4Br9E,EAAGC,EAK3B44D,EAAOsmB,IACPQ,EAAcd,EAAWhmB,GAE7B,GAAIA,IAAS8mB,EAEXN,EAAgBM,OACX,CACL,IAAI7F,EAAW4C,IACXkD,EAAelE,EAAQ5B,SAC3B,IAAKwD,IAdwBr9E,EAc2B65E,GAd9B95E,EAcgB4/E,GAbnCpH,WAAav4E,EAAEu4E,UAAYx4E,EAAE+5E,SAAW95E,EAAE85E,QAAU/5E,EAAEg6E,OAAS/5E,EAAE+5E,MAaL,OAEnE,GAAI0F,IAAe7F,EAAWC,GAAW,OAEzC4F,EAAa,KAKjB,SAAmB5F,GACjB,GAAIwD,EACFA,GAAe,EACfN,QACK,CAELD,EAAkBjC,oBAAoBhB,EADzB,MAC2CkB,GAAqB,SAAUrjE,GACjFA,EACFqlE,EAAS,CACPjC,OAJO,MAKPjB,SAAUA,IASpB,SAAmByD,GACjB,IAAIC,EAAa9B,EAAQ5B,SAIrB2D,EAAUoC,EAAS7X,YAAY6R,EAAW2D,KAC7B,IAAbC,IAAgBA,EAAU,GAC9B,IAAIC,EAAYmC,EAAS7X,YAAY6R,EAAW0D,KAC7B,IAAfG,IAAkBA,EAAY,GAClC,IAAI7yD,EAAQ4yD,EAAUC,EAElB7yD,IACFyyD,GAAe,EACfK,EAAG9yD,IAnBC+yD,CAAU9D,OAjBdsD,CAAUtD,IAyCd,IAAIjhB,EAAOsmB,IACPQ,EAAcd,EAAWhmB,GACzBA,IAAS8mB,GAAaN,EAAgBM,GAC1C,IAAI9B,EAAkBnB,IAClBmD,EAAW,CAAChG,EAAWgE,IAuE3B,SAASF,EAAGxqF,GAEVyoF,EAAc+B,GAAGxqF,GAWnB,IAAI4qF,EAAgB,EAEpB,SAASC,EAAkBnzD,GAGH,KAFtBkzD,GAAiBlzD,IAEoB,IAAVA,EACzBzlB,OAAOsqB,iBAxOW,aAwOyB2tD,GAChB,IAAlBU,GACT34E,OAAOuqB,oBA1OW,aA0O4B0tD,GAIlD,IAAIY,GAAY,EAiChB,IAAIvC,EAAU,CACZjsF,OAAQmsF,EAAcnsF,OACtBsrF,OAAQ,MACRjB,SAAU+D,EACVC,WAnIF,SAAoBhE,GAClB,IAAIgG,EAAU5zD,SAAS6zD,cAAc,QACjC7B,EAAO,GAMX,OAJI4B,GAAWA,EAAQj4B,aAAa,UAClCq2B,EAAOe,EAAU75E,OAAO00E,SAASoE,OAG5BA,EAAO,IAAMW,EAAWpC,EAAW5C,EAAWC,KA4HrDrjF,KAzHF,SAAcoiE,EAAMqhB,GAElB,IACIJ,EAAWG,EAAephB,OAAMnmE,OAAWA,EAAWgpF,EAAQ5B,UAClEiD,EAAkBjC,oBAAoBhB,EAFzB,OAE2CkB,GAAqB,SAAUrjE,GACrF,GAAKA,EAAL,CACA,IAAIkhD,EAAOghB,EAAWC,GAClB6F,EAAcd,EAAWpC,EAAW5jB,GAGxC,GAFkBsmB,MAAkBQ,EAEnB,CAIfD,EAAa7mB,EAxIrB,SAAsBA,GACpBzzD,OAAO00E,SAASE,KAAOnhB,EAwIjBmnB,CAAaL,GACb,IAAIvB,EAAYyB,EAAS7X,YAAY6R,EAAW6B,EAAQ5B,WACpDmG,EAAYJ,EAAS7pF,MAAM,EAAGooF,EAAY,GAC9C6B,EAAUxpF,KAAKoiE,GACfgnB,EAAWI,EACXjD,EAAS,CACPjC,OAnBO,OAoBPjB,SAAUA,SAIZkD,SAgGJjlE,QA3FF,SAAiB8gD,EAAMqhB,GAErB,IACIJ,EAAWG,EAAephB,OAAMnmE,OAAWA,EAAWgpF,EAAQ5B,UAClEiD,EAAkBjC,oBAAoBhB,EAFzB,UAE2CkB,GAAqB,SAAUrjE,GACrF,GAAKA,EAAL,CACA,IAAIkhD,EAAOghB,EAAWC,GAClB6F,EAAcd,EAAWpC,EAAW5jB,GACtBsmB,MAAkBQ,IAMlCD,EAAa7mB,EACbwmB,EAAgBM,IAGlB,IAAIvB,EAAYyB,EAASzhF,QAAQy7E,EAAW6B,EAAQ5B,YACjC,IAAfsE,IAAkByB,EAASzB,GAAavlB,GAC5CmkB,EAAS,CACPjC,OAnBS,UAoBTjB,SAAUA,SAsEd6D,GAAIA,EACJY,OA7DF,WACEZ,GAAI,IA6DJa,UA1DF,WACEb,EAAG,IA0DH9I,MAzCF,SAAe8F,QACE,IAAXA,IACFA,GAAS,GAGX,IAAI8D,EAAU1B,EAAkBnC,UAAUD,GAO1C,OALKsD,IACHD,EAAkB,GAClBC,GAAY,GAGP,WAML,OALIA,IACFA,GAAY,EACZD,GAAmB,IAGdS,MAwBT9vB,OApBF,SAAgBlqD,GACd,IAAIi6E,EAAW3B,EAAkB9B,eAAex2E,GAEhD,OADAu5E,EAAkB,GACX,WACLA,GAAmB,GACnBU,OAiBJ,OAAOhD,EAGT,SAAS9lF,EAAMzC,EAAG+sF,EAAYC,GAC5B,OAAOnsF,KAAKkF,IAAIlF,KAAK+E,IAAI5F,EAAG+sF,GAAaC,GAO3C,SAASC,EAAoB7wF,QACb,IAAVA,IACFA,EAAQ,IAGV,IAAI4sF,EAAS5sF,EACTyrF,EAAsBmB,EAAOnB,oBAC7BqF,EAAwBlE,EAAOmE,eAC/BA,OAA2C,IAA1BD,EAAmC,CAAC,KAAOA,EAC5DE,EAAsBpE,EAAOqE,aAC7BA,OAAuC,IAAxBD,EAAiC,EAAIA,EACpDhE,EAAmBJ,EAAOK,UAC1BA,OAAiC,IAArBD,EAA8B,EAAIA,EAC9CQ,EAAoBrC,IAExB,SAASsC,EAASC,GAChBrK,YAAS8I,EAASuB,GAElBvB,EAAQjsF,OAASisF,EAAQt1B,QAAQ32D,OACjCstF,EAAkB5B,gBAAgBO,EAAQ5B,SAAU4B,EAAQX,QAG9D,SAAS+B,IACP,OAAO9oF,KAAKiC,SAASnB,SAAS,IAAIqC,OAAO,EAAGqlF,GAG9C,IAAI3+E,EAAQjI,EAAM4qF,EAAc,EAAGF,EAAe7wF,OAAS,GACvD22D,EAAUk6B,EAAetiF,KAAI,SAAUsmC,GACzC,OAAmC21C,EAAe31C,OAAO5xC,EAAjC,kBAAV4xC,EAAsDw4C,IAAgDx4C,EAAMt0C,KAAO8sF,QAG/HgB,EAAajE,EAyCjB,SAAS8D,EAAGxqF,GACV,IAAIstF,EAAY7qF,EAAM8lF,EAAQ79E,MAAQ1K,EAAG,EAAGuoF,EAAQt1B,QAAQ32D,OAAS,GAEjEqqF,EAAW4B,EAAQt1B,QAAQq6B,GAC/B1D,EAAkBjC,oBAAoBhB,EAFzB,MAE2CkB,GAAqB,SAAUrjE,GACjFA,EACFqlE,EAAS,CACPjC,OALO,MAMPjB,SAAUA,EACVj8E,MAAO4iF,IAKTzD,OA8BN,IAAItB,EAAU,CACZjsF,OAAQ22D,EAAQ32D,OAChBsrF,OAAQ,MACRjB,SAAU1zB,EAAQvoD,GAClBA,MAAOA,EACPuoD,QAASA,EACT03B,WAAYA,EACZrnF,KA1FF,SAAcoiE,EAAMqhB,GAElB,IACIJ,EAAWG,EAAephB,EAAMqhB,EAAO4C,IAAapB,EAAQ5B,UAChEiD,EAAkBjC,oBAAoBhB,EAFzB,OAE2CkB,GAAqB,SAAUrjE,GACrF,GAAKA,EAAL,CACA,IACI8oE,EADY/E,EAAQ79E,MACI,EACxB6iF,EAAchF,EAAQt1B,QAAQpwD,MAAM,GAEpC0qF,EAAYjxF,OAASgxF,EACvBC,EAAYpnF,OAAOmnF,EAAWC,EAAYjxF,OAASgxF,EAAW3G,GAE9D4G,EAAYjqF,KAAKqjF,GAGnBkD,EAAS,CACPjC,OAfS,OAgBTjB,SAAUA,EACVj8E,MAAO4iF,EACPr6B,QAASs6B,SAuEb3oE,QAlEF,SAAiB8gD,EAAMqhB,GAErB,IACIJ,EAAWG,EAAephB,EAAMqhB,EAAO4C,IAAapB,EAAQ5B,UAChEiD,EAAkBjC,oBAAoBhB,EAFzB,UAE2CkB,GAAqB,SAAUrjE,GAChFA,IACL+jE,EAAQt1B,QAAQs1B,EAAQ79E,OAASi8E,EACjCkD,EAAS,CACPjC,OANS,UAOTjB,SAAUA,SA0Dd6D,GAAIA,EACJY,OAnCF,WACEZ,GAAI,IAmCJa,UAhCF,WACEb,EAAG,IAgCHgD,MA7BF,SAAextF,GACb,IAAIstF,EAAY/E,EAAQ79E,MAAQ1K,EAChC,OAAOstF,GAAa,GAAKA,EAAY/E,EAAQt1B,QAAQ32D,QA4BrDolF,MAzBF,SAAe8F,GAKb,YAJe,IAAXA,IACFA,GAAS,GAGJoC,EAAkBnC,UAAUD,IAqBnChsB,OAlBF,SAAgBlqD,GACd,OAAOs4E,EAAkB9B,eAAex2E,KAmB1C,OAAOi3E,I,6BCn5BT,6CAEA,SAASp1D,EAAQ1qB,EAAQglF,GACvB,IAAIvjF,EAAOvN,OAAOuN,KAAKzB,GAEvB,GAAI9L,OAAO+wF,sBAAuB,CAChC,IAAIC,EAAUhxF,OAAO+wF,sBAAsBjlF,GACvCglF,IAAgBE,EAAUA,EAAQp5D,QAAO,SAAUq5D,GACrD,OAAOjxF,OAAOgM,yBAAyBF,EAAQmlF,GAAKpxF,eAEtD0N,EAAK5G,KAAKjF,MAAM6L,EAAMyjF,GAGxB,OAAOzjF,EAGM,SAAS2jF,EAAe1xF,GACrC,IAAK,IAAIE,EAAI,EAAGA,EAAI+B,UAAU9B,OAAQD,IAAK,CACzC,IAAIuO,EAAyB,MAAhBxM,UAAU/B,GAAa+B,UAAU/B,GAAK,GAE/CA,EAAI,EACN82B,EAAQx2B,OAAOiO,IAAS,GAAM8G,SAAQ,SAAU7U,GAC9C,YAAeV,EAAQU,EAAK+N,EAAO/N,OAE5BF,OAAOmxF,0BAChBnxF,OAAOutB,iBAAiB/tB,EAAQQ,OAAOmxF,0BAA0BljF,IAEjEuoB,EAAQx2B,OAAOiO,IAAS8G,SAAQ,SAAU7U,GACxCF,OAAOC,eAAeT,EAAQU,EAAKF,OAAOgM,yBAAyBiC,EAAQ/N,OAKjF,OAAOV,I,4PCjBT,SAAS4xF,EAAmBpwF,GAC1B,IAAIqwF,EAAW,GACf,MAAO,CACLC,GAAI,SAAYphC,GACdmhC,EAAS1qF,KAAKupD,IAEhBqhC,IAAK,SAAarhC,GAChBmhC,EAAWA,EAASz5D,QAAO,SAAUzd,GACnC,OAAOA,IAAM+1C,MAGjBtkD,IAAK,WACH,OAAO5K,GAETkU,IAAK,SAAas8E,EAAUC,GAC1BzwF,EAAQwwF,EACRH,EAASt8E,SAAQ,SAAUm7C,GACzB,OAAOA,EAAQlvD,EAAOywF,QA2I9B,IAEe1jF,EAFH2jF,IAAMn8D,eAjIlB,SAA4B5oB,EAAcglF,GACxC,IAAIC,EAAuBC,EAEvBC,EAAc,0BAA4BC,MAAQ,KAElDC,EAEJ,SAAUC,GAGR,SAASD,IACP,IAAIE,EAIJ,OAFAA,EAAQD,EAAWvwF,MAAMJ,KAAMG,YAAcH,MACvC6wF,QAAUf,EAAmBc,EAAMzyF,MAAMuB,OACxCkxF,EAPT1J,IAAewJ,EAAUC,GAUzB,IAAIG,EAASJ,EAASzxF,UAoCtB,OAlCA6xF,EAAOC,gBAAkB,WACvB,IAAIvF,EAEJ,OAAOA,EAAO,IAASgF,GAAexwF,KAAK6wF,QAASrF,GAGtDsF,EAAOE,0BAA4B,SAAmCC,GACpE,GAAIjxF,KAAK7B,MAAMuB,QAAUuxF,EAAUvxF,MAAO,CACxC,IAEIywF,EAFAe,EAAWlxF,KAAK7B,MAAMuB,MACtBwwF,EAAWe,EAAUvxF,QAhEfkO,EAmEGsjF,MAnEArjF,EAmEUqiF,GAjEd,IAANtiF,GAAW,EAAIA,IAAM,EAAIC,EAEzBD,IAAMA,GAAKC,IAAMA,GAgElBsiF,EAAc,GAEdA,EAA8C,oBAAzBE,EAAsCA,EAAqBa,EAAUhB,GAxExE,WAgFE,KAFpBC,GAAe,IAGbnwF,KAAK6wF,QAAQj9E,IAAIq9E,EAAUvxF,MAAOywF,IA/E9C,IAAkBviF,EAAGC,GAqFjBijF,EAAO/yB,OAAS,WACd,OAAO/9D,KAAK7B,MAAMgzF,UAGbT,EA/CT,CAgDEU,aAEFV,EAASW,oBAAqBf,EAAwB,IAA0BE,GAAec,IAAU9mF,OAAO+mF,WAAYjB,GAE5H,IAAIkB,EAEJ,SAAUC,GAGR,SAASD,IACP,IAAIE,EAiBJ,OAfAA,EAASD,EAAYrxF,MAAMJ,KAAMG,YAAcH,MACxC8oF,MAAQ,CACbppF,MAAOgyF,EAAOC,YAGhBD,EAAOE,SAAW,SAAU1B,EAAUC,GAGC,MAFI,EAAtBuB,EAAOG,cAEN1B,IAClBuB,EAAO9F,SAAS,CACdlsF,MAAOgyF,EAAOC,cAKbD,EApBTxK,IAAesK,EAAUC,GAuBzB,IAAIK,EAAUN,EAASvyF,UAkCvB,OAhCA6yF,EAAQd,0BAA4B,SAAmCC,GACrE,IAAIY,EAAeZ,EAAUY,aAC7B7xF,KAAK6xF,kBAAgCvwF,IAAjBuwF,GAA+C,OAAjBA,EA9H5B,WA8H4EA,GAGpGC,EAAQC,kBAAoB,WACtB/xF,KAAK4pB,QAAQ4mE,IACfxwF,KAAK4pB,QAAQ4mE,GAAaR,GAAGhwF,KAAK4xF,UAGpC,IAAIC,EAAe7xF,KAAK7B,MAAM0zF,aAC9B7xF,KAAK6xF,kBAAgCvwF,IAAjBuwF,GAA+C,OAAjBA,EAvI5B,WAuI4EA,GAGpGC,EAAQE,qBAAuB,WACzBhyF,KAAK4pB,QAAQ4mE,IACfxwF,KAAK4pB,QAAQ4mE,GAAaP,IAAIjwF,KAAK4xF,WAIvCE,EAAQH,SAAW,WACjB,OAAI3xF,KAAK4pB,QAAQ4mE,GACRxwF,KAAK4pB,QAAQ4mE,GAAalmF,MAE1Be,GAIXymF,EAAQ/zB,OAAS,WACf,OAxHaozB,EAwHInxF,KAAK7B,MAAMgzF,SAvHzBxvF,MAAMC,QAAQuvF,GAAYA,EAAS,GAAKA,GAuHLnxF,KAAK8oF,MAAMppF,OAxHvD,IAAmByxF,GA2HRK,EA1DT,CA2DEJ,aAGF,OADAI,EAASS,eAAgB1B,EAAwB,IAA0BC,GAAec,IAAU9mF,OAAQ+lF,GACrG,CACLG,SAAUA,EACVc,SAAUA,I,iDC9JR5nE,G,OAPqB,SAAA+B,G,IACnB/B,EAAUqK,I,OAChBrK,gBAEA,EAG4BsoE,CAA9B,WCDMC,E,uBAKJ,G,2BACE,UAEA,MAAa,CACXzJ,SAAUvqF,UAAcuqF,U,EAQ1B,c,EACA,sBAEKvqF,EAAL,gB,EACE,SAAgBA,EAAA,gBAAqB,SAAAuqF,GAC/B,EAAJ,W,EACE,SAAc,CAAEA,a,EAEhB,uB,qBAxBD0J,iBAAP,Y,MACS,CAAE3qB,KAAF,IAAaqmB,IAAb,IAAuBv9B,OAAvB,GAAmC8hC,QAAsB,MAAbjL,I,2BA6BrD2K,6B,KACE,cAEI/xF,KAAJ,kB,KACE,SAAc,CAAE0oF,SAAU1oF,KAAKsyF,oB,EAInCN,gCACMhyF,KAAJ,UAAmBA,KAAKstF,Y,EAG1BvvB,kB,OAEI,kBAACw0B,EAAD,UACEpB,SAAUnxF,KAAK7B,MAAMgzF,UADvB,KAEEzxF,MAAO,CACL4qF,QAAStqF,KAAK7B,MADT,QAELuqF,SAAU1oF,KAAK8oF,MAFV,SAGL51D,MAAOi/D,mBAAwBnyF,KAAK8oF,MAAMJ,SAHrC,UAIL8J,cAAexyF,KAAK7B,MAAMq0F,kB,GAnDfpC,IAAMgB,WCCAhB,IAAMgB,UCRThB,IAAMgB,UCA9B,IAAMpkE,EAAN,GAEIylE,EAAJ,EAuBA,SAASC,EAAUtL,EAAUl6E,QAAc,IAAdA,MAAU,KACd,kBAAZA,GAAwBvL,cAAnC,MACEuL,EAAU,CAAEu6D,KAAMv6D,I,MAFqB,EAKjCu6D,EALiC,O,IAAA,MAK3BkrB,OAL2B,S,IAAA,OAKZC,OALY,S,IAAA,UAKIC,OALJ,S,MAO3B,GAAG3uF,OAAjB,GAEO,QAAa,c,IACbujE,GAAL,KAAaA,EAAa,OAAO,K,GACjC,EAAa,OAAOqrB,E,MAhCxB,c,IACQxzD,EAAW,GAAGpyB,EAAN,IAAoBA,EAApB,OAAqCA,EAAnD,UACM6lF,EAAY/lE,OAAoBA,KAAtC,I,GAEI+lE,EAAJ,GAAqB,OAAOA,EAAP,G,IAEf9mF,EAAN,GAEMpM,EAAS,CAAEmzF,OADFC,IAAaxrB,EAAMx7D,EAAlC,GACyBA,Q,OAErBwmF,EAbN,MAcIM,OACAN,KAGF,EAmB2BS,CAAYzrB,EAAM,CACzCv1D,IADyC,EAEzC0gF,OAFyC,EAGzCC,cAHMG,EAJ6B,SAIrB/mF,EAJqB,OAS/BinB,EAAQ8/D,OAAd,G,IAEA,EAAY,OAAO,K,IAEZlF,EAAkB56D,EAbY,GAatB9J,EAAU8J,EAbY,SAc/Bm/D,EAAUjL,IAAhB,E,OAEIuL,IAAJ,EAA8B,KAEvB,CACLlrB,KADK,EAELqmB,IAAKrmB,cAAgBqmB,EAAhBrmB,IAFA,EAGL4qB,QAHK,EAIL9hC,OAAQtkD,EAAA,QAAY,gB,OAClBknF,EAAKv0F,EAALu0F,MAAiB/pE,EAAjB+pE,GACA,IAFM,OAtBZ,M,ICPIC,E,kGACJr1B,kB,kBAEI,kBAACw0B,EAAD,eACG,YACC,mB,IAEM7J,EAAW,kBAAuB9+D,EAAxC,SACMsJ,EAAQ,sBACV,QADU,cAEV,aACAw/D,EAAUhK,EAAD,SAAoB,EAD7B,OAEA9+D,EAJJ,MAMMzrB,EAAQ,OAAH,IAAG,CAAH,MAAiBuqF,SAAjB,EAA2Bx1D,U,EAEA,EAZ5B,MAYJi+D,EAZI,WAYM1jC,EAZN,YAYiBsQ,EAZjB,S,OAgBNp8D,kBAAJ,IAA+BwvF,WAC7BA,QAIA,kBAACoB,EAAD,UAAwB7yF,MAAOvB,GAC5BA,QACGgzF,EACsB,oBAAbA,EAGHA,EAHJ,GADM,EAMN1jC,EACA2iC,oBADS,GAETryB,EACAA,EADM,GATX5/D,KAYuB,oBAAbgzF,EAGLA,EAHF,GAdR,U,GAxBUf,IAAMgB,WCrB1B,SAAShJ,EAAgB3gB,G,MAChBA,oBAAgC,IAAvC,EAYF,SAAS6gB,EAAc+C,EAAU3C,G,IAC/B,EAAe,OAAOA,E,IAEhBn+E,EAAO69E,EAAb,G,OAEA,IAAIM,sBAA8CA,E,eAElD,GAEEtB,SAAUsB,kBAAyBn+E,EAAzBm+E,UAId,SAAS2K,EAAU3K,G,MACU,kBAAbA,EAAwBA,EAAWD,YAAjD,GAGF,SAAS6K,EAAcC,G,OACd,WACLvM,iBAIJ,SAASr8E,KAQkBylF,IAAMgB,UCzCZhB,IAAMgB,UCLRhB,IAAnB,Y,6BCNe,SAASoD,EAA8B7mF,EAAQ8mF,GAC5D,GAAc,MAAV9mF,EAAgB,MAAO,GAC3B,IAEI/N,EAAKR,EAFLF,EAAS,GACTw1F,EAAah1F,OAAOuN,KAAKU,GAG7B,IAAKvO,EAAI,EAAGA,EAAIs1F,EAAWr1F,OAAQD,IACjCQ,EAAM80F,EAAWt1F,GACbq1F,EAASzmF,QAAQpO,IAAQ,IAC7BV,EAAOU,GAAO+N,EAAO/N,IAGvB,OAAOV,EAZT,mC,cC+BA,SAASy1F,EAASzyF,EAAI8rB,EAAO4mE,EAAYjzF,GACvC,IALoBjB,EAKhB4/B,EAJY,OADI5/B,EAKOiB,IAJc,kBAAVjB,GAAuC,mBAAVA,EAI1BiB,EAAMizF,EAAWjzF,GAE/CkzF,EAAgB7mE,EAAM1iB,IAAIg1B,GAM9B,MAL6B,qBAAlBu0D,IACTA,EAAgB3yF,EAAGyD,KAAK3E,KAAMW,GAC9BqsB,EAAMpZ,IAAI0rB,EAAUu0D,IAGfA,EAGT,SAASC,EAAU5yF,EAAI8rB,EAAO4mE,GAC5B,IAAIxyF,EAAOO,MAAM1C,UAAU2F,MAAMD,KAAKxE,UAAW,GAC7Cm/B,EAAWs0D,EAAWxyF,GAEtByyF,EAAgB7mE,EAAM1iB,IAAIg1B,GAM9B,MAL6B,qBAAlBu0D,IACTA,EAAgB3yF,EAAGd,MAAMJ,KAAMoB,GAC/B4rB,EAAMpZ,IAAI0rB,EAAUu0D,IAGfA,EAGT,SAASE,EAAU7yF,EAAI0oB,EAASoqE,EAAUhnE,EAAOinE,GAC/C,OAAOD,EAAS33C,KACdzyB,EACA1oB,EACA8rB,EACAinE,GAIJ,SAASC,EAAiBhzF,EAAIgM,GAG5B,OAAO6mF,EACL7yF,EACAlB,KAJ2B,IAAdkB,EAAG7C,OAAes1F,EAAUG,EAMzC5mF,EAAQ8f,MAAMxtB,SACd0N,EAAQ0mF,YAgCZ,SAASO,IACP,OAAO50D,KAAKt7B,UAAU9D,WAOxB,SAASi0F,IACPp0F,KAAKgtB,MAAQtuB,OAAOc,OAAO,MAG7B40F,EAA4Bn1F,UAAU+P,IAAM,SAAUpQ,GACpD,OAAQA,KAAOoB,KAAKgtB,OAGtBonE,EAA4Bn1F,UAAUqL,IAAM,SAAU1L,GACpD,OAAOoB,KAAKgtB,MAAMpuB,IAGpBw1F,EAA4Bn1F,UAAU2U,IAAM,SAAUhV,EAAKc,GACzDM,KAAKgtB,MAAMpuB,GAAOc,GAGpB,IAAI20F,EAAe,CACjB70F,OAAQ,WACN,OAAO,IAAI40F,IAQft2F,EAAOC,QAvIP,SAAkBmD,EAAIgM,GACpB,IAAI8f,EAAQ9f,GAAWA,EAAQ8f,MAC3B9f,EAAQ8f,MACRqnE,EAEAT,EAAa1mF,GAAWA,EAAQ0mF,WAChC1mF,EAAQ0mF,WACRO,EAMJ,OAJejnF,GAAWA,EAAQ8mF,SAC9B9mF,EAAQ8mF,SACRE,GAEYhzF,EAAI,CAClB8rB,MAAOA,EACP4mE,WAAYA,KAyHhB91F,EAAOC,QAAQu2F,WAAa,CAC1BR,SAhEF,SAA2B5yF,EAAIgM,GAG7B,OAAO6mF,EACL7yF,EACAlB,KAJa8zF,EAMb5mF,EAAQ8f,MAAMxtB,SACd0N,EAAQ0mF,aAyDVD,QArDF,SAA0BzyF,EAAIgM,GAG5B,OAAO6mF,EACL7yF,EACAlB,KAJa2zF,EAMbzmF,EAAQ8f,MAAMxtB,SACd0N,EAAQ0mF,e,iBCjGV,SAAU1qE,EAAMjgB,EAASw4E,GAanB,IAAU9+E,EAVhB7E,EAAOC,SAUS4E,EAVmB3E,EAAQ,IAAWA,EAAQ,IAAWA,EAAQ,IAYjF,WAEG,IAAI8E,EAAIH,EACJI,EAAQD,EAAEE,IACVC,EAAOF,EAAME,KACbW,EAAYb,EAAMa,UAClBuE,EAASrF,EAAEkG,KACXurF,EAAMpsF,EAAOosF,IAMb3S,EAASz5E,EAAOy5E,OAAS3+E,EAAKC,OAAO,CAQrCmF,IAAKpF,EAAKC,OAAO,CACbo/E,QAAS,EACT15E,OAAQ2rF,EACRC,WAAY,IAchBlxF,KAAM,SAAU+E,GACZrI,KAAKqI,IAAMrI,KAAKqI,IAAInF,OAAOmF,IAe/Bq9E,QAAS,SAAUD,EAAUV,GAgBzB,IAdA,IAAI18E,EAAMrI,KAAKqI,IAGXO,EAASP,EAAIO,OAAOpJ,SAGpBi1F,EAAa7wF,EAAUpE,SAGvBk1F,EAAkBD,EAAW5wF,MAC7By+E,EAAUj6E,EAAIi6E,QACdkS,EAAansF,EAAImsF,WAGdE,EAAgBr2F,OAASikF,GAAS,CACjCmB,GACA76E,EAAOL,OAAOk7E,GAElB,IAAIA,EAAQ76E,EAAOL,OAAOk9E,GAAUh9E,SAASs8E,GAC7Cn8E,EAAO7B,QAGP,IAAK,IAAI3I,EAAI,EAAGA,EAAIo2F,EAAYp2F,IAC5BqlF,EAAQ76E,EAAOH,SAASg7E,GACxB76E,EAAO7B,QAGX0tF,EAAWvwF,OAAOu/E,GAItB,OAFAgR,EAAW3wF,SAAqB,EAAVw+E,EAEfmS,KAqBf3xF,EAAE8+E,OAAS,SAAU6D,EAAUV,EAAM18E,GACjC,OAAOu5E,EAAOpiF,OAAO6I,GAAKq9E,QAAQD,EAAUV,IA7GnD,GAkHMpiF,EAASi/E,QAjIf,I,iBCAA,SAAU14D,EAAMjgB,GAaV,IAAUtG,EAVhB7E,EAAOC,SAUS4E,EAVmB3E,EAAQ,IAY3C,WAEG,IAAI8E,EAAIH,EAEJiB,EADQd,EAAEE,IACQY,UACVd,EAAEyC,IAKKo8E,OAAS,CAcxB19E,UAAW,SAAUE,GAEjB,IAAIN,EAAQM,EAAUN,MAClBC,EAAWK,EAAUL,SACrB8I,EAAM5M,KAAK20F,KAGfxwF,EAAUK,QAIV,IADA,IAAIowF,EAAc,GACTx2F,EAAI,EAAGA,EAAI0F,EAAU1F,GAAK,EAO/B,IANA,IAIIy2F,GAJShxF,EAAMzF,IAAM,KAAc,GAAMA,EAAI,EAAK,EAAY,MAI1C,IAHXyF,EAAOzF,EAAI,IAAO,KAAQ,IAAOA,EAAI,GAAK,EAAK,EAAM,MAG1B,EAF3ByF,EAAOzF,EAAI,IAAO,KAAQ,IAAOA,EAAI,GAAK,EAAK,EAAM,IAIzDkoB,EAAI,EAAIA,EAAI,GAAOloB,EAAQ,IAAJkoB,EAAWxiB,EAAWwiB,IAClDsuE,EAAYvvF,KAAKuH,EAAI2B,OAAQsmF,IAAa,GAAK,EAAIvuE,GAAO,KAKlE,IAAIwuE,EAAcloF,EAAI2B,OAAO,IAC7B,GAAIumF,EACA,KAAOF,EAAYv2F,OAAS,GACxBu2F,EAAYvvF,KAAKyvF,GAIzB,OAAOF,EAAYlvF,KAAK,KAgB5BC,MAAO,SAAUovF,GAEb,IAAIC,EAAkBD,EAAU12F,OAC5BuO,EAAM5M,KAAK20F,KACXM,EAAaj1F,KAAKk1F,YAEtB,IAAKD,EAAY,CACTA,EAAaj1F,KAAKk1F,YAAc,GAChC,IAAK,IAAI5uE,EAAI,EAAGA,EAAI1Z,EAAIvO,OAAQioB,IAC5B2uE,EAAWroF,EAAItG,WAAWggB,IAAMA,EAK5C,IAAIwuE,EAAcloF,EAAI2B,OAAO,IAC7B,GAAIumF,EAAa,CACb,IAAIK,EAAeJ,EAAU/nF,QAAQ8nF,IACf,IAAlBK,IACAH,EAAkBG,GAK1B,OAOR,SAAmBJ,EAAWC,EAAiBC,GAG7C,IAFA,IAAIpxF,EAAQ,GACRiB,EAAS,EACJ1G,EAAI,EAAGA,EAAI42F,EAAiB52F,IACjC,GAAIA,EAAI,EAAG,CACP,IAAIg3F,EAAQH,EAAWF,EAAUzuF,WAAWlI,EAAI,KAASA,EAAI,EAAK,EAC9Di3F,EAAQJ,EAAWF,EAAUzuF,WAAWlI,MAAS,EAAKA,EAAI,EAAK,EACnEyF,EAAMiB,IAAW,KAAOswF,EAAQC,IAAW,GAAMvwF,EAAS,EAAK,EAC/DA,IAGR,OAAOlB,EAAUpE,OAAOqE,EAAOiB,GAlBlBwwF,CAAUP,EAAWC,EAAiBC,IAIjDN,KAAM,qEAlGb,GAqHMhyF,EAAS4C,IAAIo8E,QApInB,I,iBCAA,SAAUz4D,EAAMjgB,GAaV,IAAUtG,EAVhB7E,EAAOC,SAUS4E,EAVmB3E,EAAQ,IAY3C,SAAU4E,GAEP,IAAIE,EAAIH,EACJI,EAAQD,EAAEE,IACVY,EAAYb,EAAMa,UAClBwE,EAASrF,EAAMqF,OACfD,EAASrF,EAAEkG,KAGXkT,EAAI,IAGP,WACG,IAAK,IAAI9d,EAAI,EAAGA,EAAI,GAAIA,IACpB8d,EAAE9d,GAAkC,WAA5BwE,EAAK4N,IAAI5N,EAAK0T,IAAIlY,EAAI,IAAqB,EAF1D,GASD,IAAIm2F,EAAMpsF,EAAOosF,IAAMnsF,EAAOlF,OAAO,CACjCoF,SAAU,WACNtI,KAAKu1F,MAAQ,IAAI3xF,EAAUN,KAAK,CAC5B,WAAY,WACZ,WAAY,aAIpB0E,gBAAiB,SAAUyU,EAAG1U,GAE1B,IAAK,IAAI3J,EAAI,EAAGA,EAAI,GAAIA,IAAK,CAEzB,IAAIo3F,EAAWztF,EAAS3J,EACpBq3F,EAAah5E,EAAE+4E,GAEnB/4E,EAAE+4E,GACgD,UAA3CC,GAAc,EAAOA,IAAe,IACO,YAA3CA,GAAc,GAAOA,IAAe,GAK/C,IAAI54E,EAAI7c,KAAKu1F,MAAM1xF,MAEf6xF,EAAcj5E,EAAE1U,EAAS,GACzB4tF,EAAcl5E,EAAE1U,EAAS,GACzB6tF,EAAcn5E,EAAE1U,EAAS,GACzB8tF,EAAcp5E,EAAE1U,EAAS,GACzB+tF,EAAcr5E,EAAE1U,EAAS,GACzBguF,EAAct5E,EAAE1U,EAAS,GACzBiuF,EAAcv5E,EAAE1U,EAAS,GACzBkuF,EAAcx5E,EAAE1U,EAAS,GACzBmuF,EAAcz5E,EAAE1U,EAAS,GACzBouF,EAAc15E,EAAE1U,EAAS,GACzBquF,EAAc35E,EAAE1U,EAAS,IACzBsuF,EAAc55E,EAAE1U,EAAS,IACzBuuF,EAAc75E,EAAE1U,EAAS,IACzBwuF,EAAc95E,EAAE1U,EAAS,IACzByuF,EAAc/5E,EAAE1U,EAAS,IACzB0uF,EAAch6E,EAAE1U,EAAS,IAGzB6G,EAAIiO,EAAE,GACNhO,EAAIgO,EAAE,GACN5C,EAAI4C,EAAE,GACNpE,EAAIoE,EAAE,GAGVjO,EAAI8nF,EAAG9nF,EAAGC,EAAGoL,EAAGxB,EAAGi9E,EAAa,EAAIx5E,EAAE,IACtCzD,EAAIi+E,EAAGj+E,EAAG7J,EAAGC,EAAGoL,EAAG07E,EAAa,GAAIz5E,EAAE,IACtCjC,EAAIy8E,EAAGz8E,EAAGxB,EAAG7J,EAAGC,EAAG+mF,EAAa,GAAI15E,EAAE,IACtCrN,EAAI6nF,EAAG7nF,EAAGoL,EAAGxB,EAAG7J,EAAGinF,EAAa,GAAI35E,EAAE,IACtCtN,EAAI8nF,EAAG9nF,EAAGC,EAAGoL,EAAGxB,EAAGq9E,EAAa,EAAI55E,EAAE,IACtCzD,EAAIi+E,EAAGj+E,EAAG7J,EAAGC,EAAGoL,EAAG87E,EAAa,GAAI75E,EAAE,IACtCjC,EAAIy8E,EAAGz8E,EAAGxB,EAAG7J,EAAGC,EAAGmnF,EAAa,GAAI95E,EAAE,IACtCrN,EAAI6nF,EAAG7nF,EAAGoL,EAAGxB,EAAG7J,EAAGqnF,EAAa,GAAI/5E,EAAE,IACtCtN,EAAI8nF,EAAG9nF,EAAGC,EAAGoL,EAAGxB,EAAGy9E,EAAa,EAAIh6E,EAAE,IACtCzD,EAAIi+E,EAAGj+E,EAAG7J,EAAGC,EAAGoL,EAAGk8E,EAAa,GAAIj6E,EAAE,IACtCjC,EAAIy8E,EAAGz8E,EAAGxB,EAAG7J,EAAGC,EAAGunF,EAAa,GAAIl6E,EAAE,KACtCrN,EAAI6nF,EAAG7nF,EAAGoL,EAAGxB,EAAG7J,EAAGynF,EAAa,GAAIn6E,EAAE,KACtCtN,EAAI8nF,EAAG9nF,EAAGC,EAAGoL,EAAGxB,EAAG69E,EAAa,EAAIp6E,EAAE,KACtCzD,EAAIi+E,EAAGj+E,EAAG7J,EAAGC,EAAGoL,EAAGs8E,EAAa,GAAIr6E,EAAE,KACtCjC,EAAIy8E,EAAGz8E,EAAGxB,EAAG7J,EAAGC,EAAG2nF,EAAa,GAAIt6E,EAAE,KAGtCtN,EAAI+nF,EAAG/nF,EAFPC,EAAI6nF,EAAG7nF,EAAGoL,EAAGxB,EAAG7J,EAAG6nF,EAAa,GAAIv6E,EAAE,KAEzBjC,EAAGxB,EAAGk9E,EAAa,EAAIz5E,EAAE,KACtCzD,EAAIk+E,EAAGl+E,EAAG7J,EAAGC,EAAGoL,EAAG+7E,EAAa,EAAI95E,EAAE,KACtCjC,EAAI08E,EAAG18E,EAAGxB,EAAG7J,EAAGC,EAAGwnF,EAAa,GAAIn6E,EAAE,KACtCrN,EAAI8nF,EAAG9nF,EAAGoL,EAAGxB,EAAG7J,EAAG8mF,EAAa,GAAIx5E,EAAE,KACtCtN,EAAI+nF,EAAG/nF,EAAGC,EAAGoL,EAAGxB,EAAGs9E,EAAa,EAAI75E,EAAE,KACtCzD,EAAIk+E,EAAGl+E,EAAG7J,EAAGC,EAAGoL,EAAGm8E,EAAa,EAAIl6E,EAAE,KACtCjC,EAAI08E,EAAG18E,EAAGxB,EAAG7J,EAAGC,EAAG4nF,EAAa,GAAIv6E,EAAE,KACtCrN,EAAI8nF,EAAG9nF,EAAGoL,EAAGxB,EAAG7J,EAAGknF,EAAa,GAAI55E,EAAE,KACtCtN,EAAI+nF,EAAG/nF,EAAGC,EAAGoL,EAAGxB,EAAG09E,EAAa,EAAIj6E,EAAE,KACtCzD,EAAIk+E,EAAGl+E,EAAG7J,EAAGC,EAAGoL,EAAGu8E,EAAa,EAAIt6E,EAAE,KACtCjC,EAAI08E,EAAG18E,EAAGxB,EAAG7J,EAAGC,EAAGgnF,EAAa,GAAI35E,EAAE,KACtCrN,EAAI8nF,EAAG9nF,EAAGoL,EAAGxB,EAAG7J,EAAGsnF,EAAa,GAAIh6E,EAAE,KACtCtN,EAAI+nF,EAAG/nF,EAAGC,EAAGoL,EAAGxB,EAAG89E,EAAa,EAAIr6E,EAAE,KACtCzD,EAAIk+E,EAAGl+E,EAAG7J,EAAGC,EAAGoL,EAAG27E,EAAa,EAAI15E,EAAE,KACtCjC,EAAI08E,EAAG18E,EAAGxB,EAAG7J,EAAGC,EAAGonF,EAAa,GAAI/5E,EAAE,KAGtCtN,EAAIgoF,EAAGhoF,EAFPC,EAAI8nF,EAAG9nF,EAAGoL,EAAGxB,EAAG7J,EAAG0nF,EAAa,GAAIp6E,EAAE,KAEzBjC,EAAGxB,EAAGs9E,EAAa,EAAI75E,EAAE,KACtCzD,EAAIm+E,EAAGn+E,EAAG7J,EAAGC,EAAGoL,EAAGi8E,EAAa,GAAIh6E,EAAE,KACtCjC,EAAI28E,EAAG38E,EAAGxB,EAAG7J,EAAGC,EAAGwnF,EAAa,GAAIn6E,EAAE,KACtCrN,EAAI+nF,EAAG/nF,EAAGoL,EAAGxB,EAAG7J,EAAG4nF,EAAa,GAAIt6E,EAAE,KACtCtN,EAAIgoF,EAAGhoF,EAAGC,EAAGoL,EAAGxB,EAAGk9E,EAAa,EAAIz5E,EAAE,KACtCzD,EAAIm+E,EAAGn+E,EAAG7J,EAAGC,EAAGoL,EAAG67E,EAAa,GAAI55E,EAAE,KACtCjC,EAAI28E,EAAG38E,EAAGxB,EAAG7J,EAAGC,EAAGonF,EAAa,GAAI/5E,EAAE,KACtCrN,EAAI+nF,EAAG/nF,EAAGoL,EAAGxB,EAAG7J,EAAGwnF,EAAa,GAAIl6E,EAAE,KACtCtN,EAAIgoF,EAAGhoF,EAAGC,EAAGoL,EAAGxB,EAAG89E,EAAa,EAAIr6E,EAAE,KACtCzD,EAAIm+E,EAAGn+E,EAAG7J,EAAGC,EAAGoL,EAAGy7E,EAAa,GAAIx5E,EAAE,KACtCjC,EAAI28E,EAAG38E,EAAGxB,EAAG7J,EAAGC,EAAGgnF,EAAa,GAAI35E,EAAE,KACtCrN,EAAI+nF,EAAG/nF,EAAGoL,EAAGxB,EAAG7J,EAAGonF,EAAa,GAAI95E,EAAE,KACtCtN,EAAIgoF,EAAGhoF,EAAGC,EAAGoL,EAAGxB,EAAG09E,EAAa,EAAIj6E,EAAE,KACtCzD,EAAIm+E,EAAGn+E,EAAG7J,EAAGC,EAAGoL,EAAGq8E,EAAa,GAAIp6E,EAAE,KACtCjC,EAAI28E,EAAG38E,EAAGxB,EAAG7J,EAAGC,EAAG4nF,EAAa,GAAIv6E,EAAE,KAGtCtN,EAAIioF,EAAGjoF,EAFPC,EAAI+nF,EAAG/nF,EAAGoL,EAAGxB,EAAG7J,EAAGgnF,EAAa,GAAI15E,EAAE,KAEzBjC,EAAGxB,EAAGi9E,EAAa,EAAIx5E,EAAE,KACtCzD,EAAIo+E,EAAGp+E,EAAG7J,EAAGC,EAAGoL,EAAGg8E,EAAa,GAAI/5E,EAAE,KACtCjC,EAAI48E,EAAG58E,EAAGxB,EAAG7J,EAAGC,EAAG2nF,EAAa,GAAIt6E,EAAE,KACtCrN,EAAIgoF,EAAGhoF,EAAGoL,EAAGxB,EAAG7J,EAAGmnF,EAAa,GAAI75E,EAAE,KACtCtN,EAAIioF,EAAGjoF,EAAGC,EAAGoL,EAAGxB,EAAG69E,EAAa,EAAIp6E,EAAE,KACtCzD,EAAIo+E,EAAGp+E,EAAG7J,EAAGC,EAAGoL,EAAG47E,EAAa,GAAI35E,EAAE,KACtCjC,EAAI48E,EAAG58E,EAAGxB,EAAG7J,EAAGC,EAAGunF,EAAa,GAAIl6E,EAAE,KACtCrN,EAAIgoF,EAAGhoF,EAAGoL,EAAGxB,EAAG7J,EAAG+mF,EAAa,GAAIz5E,EAAE,KACtCtN,EAAIioF,EAAGjoF,EAAGC,EAAGoL,EAAGxB,EAAGy9E,EAAa,EAAIh6E,EAAE,KACtCzD,EAAIo+E,EAAGp+E,EAAG7J,EAAGC,EAAGoL,EAAGw8E,EAAa,GAAIv6E,EAAE,KACtCjC,EAAI48E,EAAG58E,EAAGxB,EAAG7J,EAAGC,EAAGmnF,EAAa,GAAI95E,EAAE,KACtCrN,EAAIgoF,EAAGhoF,EAAGoL,EAAGxB,EAAG7J,EAAG2nF,EAAa,GAAIr6E,EAAE,KACtCtN,EAAIioF,EAAGjoF,EAAGC,EAAGoL,EAAGxB,EAAGq9E,EAAa,EAAI55E,EAAE,KACtCzD,EAAIo+E,EAAGp+E,EAAG7J,EAAGC,EAAGoL,EAAGo8E,EAAa,GAAIn6E,EAAE,KACtCjC,EAAI48E,EAAG58E,EAAGxB,EAAG7J,EAAGC,EAAG+mF,EAAa,GAAI15E,EAAE,KACtCrN,EAAIgoF,EAAGhoF,EAAGoL,EAAGxB,EAAG7J,EAAGunF,EAAa,GAAIj6E,EAAE,KAGtCW,EAAE,GAAMA,EAAE,GAAKjO,EAAK,EACpBiO,EAAE,GAAMA,EAAE,GAAKhO,EAAK,EACpBgO,EAAE,GAAMA,EAAE,GAAK5C,EAAK,EACpB4C,EAAE,GAAMA,EAAE,GAAKpE,EAAK,GAGxB/P,YAAa,WAET,IAAIvB,EAAOnH,KAAKgH,MACZM,EAAYH,EAAKtD,MAEjBizF,EAAgC,EAAnB92F,KAAKiH,YAClB8vF,EAA4B,EAAhB5vF,EAAKrD,SAGrBwD,EAAUyvF,IAAc,IAAM,KAAS,GAAKA,EAAY,GAExD,IAAIC,EAAcp0F,EAAKuN,MAAM2mF,EAAa,YACtCG,EAAcH,EAClBxvF,EAA4C,IAA/ByvF,EAAY,KAAQ,GAAM,IACa,UAA7CC,GAAe,EAAOA,IAAgB,IACO,YAA7CA,GAAe,GAAOA,IAAgB,GAE7C1vF,EAA4C,IAA/ByvF,EAAY,KAAQ,GAAM,IACa,UAA7CE,GAAe,EAAOA,IAAgB,IACO,YAA7CA,GAAe,GAAOA,IAAgB,GAG7C9vF,EAAKrD,SAAoC,GAAxBwD,EAAUjJ,OAAS,GAGpC2B,KAAKoH,WAOL,IAJA,IAAIwhF,EAAO5oF,KAAKu1F,MACZ14E,EAAI+rE,EAAK/kF,MAGJzF,EAAI,EAAGA,EAAI,EAAGA,IAAK,CAExB,IAAI84F,EAAMr6E,EAAEze,GAEZye,EAAEze,GAAqC,UAA7B84F,GAAO,EAAOA,IAAQ,IACO,YAA7BA,GAAO,GAAOA,IAAQ,GAIpC,OAAOtO,GAGXjlF,MAAO,WACH,IAAIA,EAAQyE,EAAOzE,MAAMgB,KAAK3E,MAG9B,OAFA2D,EAAM4xF,MAAQv1F,KAAKu1F,MAAM5xF,QAElBA,KAIf,SAAS+yF,EAAG9nF,EAAGC,EAAGoL,EAAGxB,EAAG7K,EAAG9L,EAAGsU,GAC1B,IAAIrU,EAAI6M,GAAMC,EAAIoL,GAAOpL,EAAI4J,GAAM7K,EAAIwI,EACvC,OAASrU,GAAKD,EAAMC,IAAO,GAAKD,GAAO+M,EAG3C,SAAS8nF,EAAG/nF,EAAGC,EAAGoL,EAAGxB,EAAG7K,EAAG9L,EAAGsU,GAC1B,IAAIrU,EAAI6M,GAAMC,EAAI4J,EAAMwB,GAAKxB,GAAM7K,EAAIwI,EACvC,OAASrU,GAAKD,EAAMC,IAAO,GAAKD,GAAO+M,EAG3C,SAAS+nF,EAAGhoF,EAAGC,EAAGoL,EAAGxB,EAAG7K,EAAG9L,EAAGsU,GAC1B,IAAIrU,EAAI6M,GAAKC,EAAIoL,EAAIxB,GAAK7K,EAAIwI,EAC9B,OAASrU,GAAKD,EAAMC,IAAO,GAAKD,GAAO+M,EAG3C,SAASgoF,EAAGjoF,EAAGC,EAAGoL,EAAGxB,EAAG7K,EAAG9L,EAAGsU,GAC1B,IAAIrU,EAAI6M,GAAKqL,GAAKpL,GAAK4J,IAAM7K,EAAIwI,EACjC,OAASrU,GAAKD,EAAMC,IAAO,GAAKD,GAAO+M,EAiB3C/L,EAAEyxF,IAAMnsF,EAAOO,cAAc4rF,GAgB7BzxF,EAAEq0F,QAAU/uF,EAAOU,kBAAkByrF,GAtPxC,CAuPC3xF,MAGKD,EAAS4xF,KAzQf,I,8BCEF,SAAS6C,IAEP,GAC4C,qBAAnCC,gCAC4C,oBAA5CA,+BAA+BD,SAFxC,CAMIhV,EAUJ,IAEEiV,+BAA+BD,SAASA,GACxC,MAAO/1F,GAGPuyB,QAAQ/yB,MAAMQ,KAOhB+1F,GACAt5F,EAAOC,QAAUC,EAAQ,M,6BClCZ,SAASs5F,EAAgB91F,EAAGwP,GAMzC,OALAsmF,EAAkB54F,OAAOyK,gBAAkB,SAAyB3H,EAAGwP,GAErE,OADAxP,EAAE6H,UAAY2H,EACPxP,IAGcA,EAAGwP,GAN5B,mC,6BCAA,8CACe,SAASumF,EAA4B/1F,EAAGg2F,GACrD,GAAKh2F,EAAL,CACA,GAAiB,kBAANA,EAAgB,OAAO,YAAiBA,EAAGg2F,GACtD,IAAIz1F,EAAIrD,OAAOO,UAAUyE,SAASiB,KAAKnD,GAAGoD,MAAM,GAAI,GAEpD,MADU,WAAN7C,GAAkBP,EAAE/B,cAAasC,EAAIP,EAAE/B,YAAYksB,MAC7C,QAAN5pB,GAAqB,QAANA,EAAoBJ,MAAMwI,KAAKpI,GACxC,cAANA,GAAqB,2CAA2C01F,KAAK11F,GAAW,YAAiBP,EAAGg2F,QAAxG,K,6BCPa,SAASE,EAAkBnuF,EAAKyC,IAClC,MAAPA,GAAeA,EAAMzC,EAAIlL,UAAQ2N,EAAMzC,EAAIlL,QAE/C,IAAK,IAAID,EAAI,EAAGu5F,EAAO,IAAIh2F,MAAMqK,GAAM5N,EAAI4N,EAAK5N,IAC9Cu5F,EAAKv5F,GAAKmL,EAAInL,GAGhB,OAAOu5F,EAPT,mC,kBCAE,SAAUzuE,EAAMjgB,GAaV,IAAUtG,EAVhB7E,EAAOC,SAUS4E,EAVmB3E,EAAQ,IAY3C,SAAUsD,GAEP,IAAIwB,EAAIH,EACJI,EAAQD,EAAEE,IACVC,EAAOF,EAAME,KACb20F,EAAe70F,EAAMa,UAKrBi0F,EAAQ/0F,EAAEg1F,IAAM,GAKND,EAAME,KAAO90F,EAAKC,OAAO,CAWnCI,KAAM,SAAU00F,EAAMC,GAClBj4F,KAAKg4F,KAAOA,EACZh4F,KAAKi4F,IAAMA,KA+KAJ,EAAMj0F,UAAYX,EAAKC,OAAO,CAqB7CI,KAAM,SAAUO,EAAOC,GACnBD,EAAQ7D,KAAK6D,MAAQA,GAAS,GAG1B7D,KAAK8D,cApOpB,GAmOeA,EACgBA,EAEe,EAAfD,EAAMxF,QAa9B65F,MAAO,WAOH,IALA,IAAIC,EAAWn4F,KAAK6D,MAChBu0F,EAAiBD,EAAS95F,OAG1Bg6F,EAAW,GACNj6F,EAAI,EAAGA,EAAIg6F,EAAgBh6F,IAAK,CACrC,IAAIk6F,EAAUH,EAAS/5F,GACvBi6F,EAAShzF,KAAKizF,EAAQN,MACtBK,EAAShzF,KAAKizF,EAAQL,KAG1B,OAAOL,EAAap4F,OAAO64F,EAAUr4F,KAAK8D,WAY9CH,MAAO,WAQH,IAPA,IAAIA,EAAQV,EAAKU,MAAMgB,KAAK3E,MAGxB6D,EAAQF,EAAME,MAAQ7D,KAAK6D,MAAMe,MAAM,GAGvC2zF,EAAc10F,EAAMxF,OACfD,EAAI,EAAGA,EAAIm6F,EAAan6F,IAC7ByF,EAAMzF,GAAKyF,EAAMzF,GAAGuF,QAGxB,OAAOA,KAxRlB,GA8RMhB,GA7SN,I,6BCEFjE,OAAOC,eAAeZ,EAAS,aAAc,CAC3C2B,OAAO,IAET3B,EAAQy6F,UA4CR,SAAmBr6F,EAEjBs6F,EAEAC,GAKA,GAAIv6F,EAAMs6F,GACR,OAAO,IAAI/xF,MAAM,gBAAgBxC,OAAOu0F,EAAU,eAAev0F,OAAOw0F,EAAe,8CArD3F36F,EAAQ46F,YAMR,SAAqBjoF,EAEnB/E,GAKA,IAAK,IAAIvN,EAAI,EAAGC,EAASqS,EAAMrS,OAAQD,EAAIC,EAAQD,IACjD,GAAIuN,EAASvL,MAAMuL,EAAU,CAAC+E,EAAMtS,GAAIA,EAAGsS,IAAS,OAAOA,EAAMtS,IAbrEL,EAAQ66F,IAkCR,SAAahqF,GAKX,OAAO9I,SAAS8I,EAAG,KAtCrB7Q,EAAQ2Q,WAgBR,SAAoBmqF,GAMlB,MAAuB,oBAATA,GAAgE,sBAAzCn6F,OAAOO,UAAUyE,SAASiB,KAAKk0F,IArBtE96F,EAAQ+6F,MAwBR,SAAe15D,GAKb,MAAsB,kBAARA,IAAqB9uB,MAAM8uB,K,6BCpC3C1gC,OAAOC,eAAeZ,EAAS,aAAc,CAC3C2B,OAAO,IAET3B,EAAQ46F,YAOR,SAAqBjoF,EAEnB/E,GAKA,IAAK,IAAIvN,EAAI,EAAGC,EAASqS,EAAMrS,OAAQD,EAAIC,EAAQD,IACjD,GAAIuN,EAASvL,MAAMuL,EAAU,CAAC+E,EAAMtS,GAAIA,EAAGsS,IAAS,OAAOA,EAAMtS,IAdrEL,EAAQ2Q,WAkBR,SAAoBmqF,GAMlB,MAAuB,oBAATA,GAAgE,sBAAzCn6F,OAAOO,UAAUyE,SAASiB,KAAKk0F,IAvBtE96F,EAAQ+6F,MA0BR,SAAe15D,GAKb,MAAsB,kBAARA,IAAqB9uB,MAAM8uB,IA9B3CrhC,EAAQ66F,IAiCR,SAAahqF,GAKX,OAAO9I,SAAS8I,EAAG,KArCrB7Q,EAAQy6F,UAwCR,SAAmBr6F,EAEjBs6F,EAEAC,GAKA,GAAIv6F,EAAMs6F,GACR,OAAO,IAAI/xF,MAAM,gBAAgBxC,OAAOu0F,EAAU,eAAev0F,OAAOw0F,EAAe,+C,6BC3D5E,SAASK,IACtB,GAAuB,qBAAZ94F,UAA4BA,QAAQC,UAAW,OAAO,EACjE,GAAID,QAAQC,UAAU84F,KAAM,OAAO,EACnC,GAAqB,oBAAVtkE,MAAsB,OAAO,EAExC,IAEE,OADAwP,KAAKjlC,UAAUyE,SAASiB,KAAK1E,QAAQC,UAAUgkC,KAAM,IAAI,iBAClD,EACP,MAAOliC,GACP,OAAO,GATX,mC,2FCAIi3F,EAAyC,WACzC,IAAIC,EAAgB,SAAUzgF,EAAG5J,GAI7B,OAHAqqF,EAAgBx6F,OAAOyK,gBAClB,CAAEE,UAAW,cAAgB1H,OAAS,SAAU8W,EAAG5J,GAAK4J,EAAEpP,UAAYwF,IACvE,SAAU4J,EAAG5J,GAAK,IAAK,IAAImC,KAAKnC,EAAOnQ,OAAOO,UAAUoE,eAAesB,KAAKkK,EAAGmC,KAAIyH,EAAEzH,GAAKnC,EAAEmC,MAC3EyH,EAAG5J,IAE5B,OAAO,SAAU4J,EAAG5J,GAEhB,SAASsqF,IAAOn5F,KAAKP,YAAcgZ,EADnCygF,EAAczgF,EAAG5J,GAEjB4J,EAAExZ,UAAkB,OAAN4P,EAAanQ,OAAOc,OAAOqP,IAAMsqF,EAAGl6F,UAAY4P,EAAE5P,UAAW,IAAIk6F,IAV1C,GAazCC,EAAsC,WAStC,OARAA,EAAW16F,OAAOwX,QAAU,SAASE,GACjC,IAAK,IAAItU,EAAG1D,EAAI,EAAG2D,EAAI5B,UAAU9B,OAAQD,EAAI2D,EAAG3D,IAE5C,IAAK,IAAI4S,KADTlP,EAAI3B,UAAU/B,GACOM,OAAOO,UAAUoE,eAAesB,KAAK7C,EAAGkP,KACzDoF,EAAEpF,GAAKlP,EAAEkP,IAEjB,OAAOoF,IAEKhW,MAAMJ,KAAMG,YAG5Bw7B,EAAS,CACT7L,IAAK,CACDjD,MAAO,OACPoB,OAAQ,OACR6B,IAAK,OACLF,KAAM,MACNo8C,OAAQ,cAEZn8C,MAAO,CACHhD,MAAO,OACPoB,OAAQ,OACR6B,IAAK,MACLD,MAAO,OACPm8C,OAAQ,cAEZj8C,OAAQ,CACJlD,MAAO,OACPoB,OAAQ,OACR8B,OAAQ,OACRH,KAAM,MACNo8C,OAAQ,cAEZp8C,KAAM,CACF/C,MAAO,OACPoB,OAAQ,OACR6B,IAAK,MACLF,KAAM,OACNo8C,OAAQ,cAEZp5C,SAAU,CACN/F,MAAO,OACPoB,OAAQ,OACRq0B,SAAU,WACVzyB,MAAO,QACPC,IAAK,QACLk8C,OAAQ,aAEZr5C,YAAa,CACT9F,MAAO,OACPoB,OAAQ,OACRq0B,SAAU,WACVzyB,MAAO,QACPE,OAAQ,QACRi8C,OAAQ,aAEZt5C,WAAY,CACR7F,MAAO,OACPoB,OAAQ,OACRq0B,SAAU,WACV1yB,KAAM,QACNG,OAAQ,QACRi8C,OAAQ,aAEZv5C,QAAS,CACL5F,MAAO,OACPoB,OAAQ,OACRq0B,SAAU,WACV1yB,KAAM,QACNE,IAAK,QACLk8C,OAAQ,cAGZqtB,EAAyB,SAAUC,GAEnC,SAASD,IACL,IAAIzI,EAAmB,OAAX0I,GAAmBA,EAAOl5F,MAAMJ,KAAMG,YAAcH,KAOhE,OANA4wF,EAAM2I,YAAc,SAAUv3F,GAC1B4uF,EAAMzyF,MAAMq7F,cAAcx3F,EAAG4uF,EAAMzyF,MAAMoiC,YAE7CqwD,EAAM6I,aAAe,SAAUz3F,GAC3B4uF,EAAMzyF,MAAMq7F,cAAcx3F,EAAG4uF,EAAMzyF,MAAMoiC,YAEtCqwD,EAKX,OAdAqI,EAAUI,EAASC,GAWnBD,EAAQp6F,UAAU8+D,OAAS,WACvB,OAAQqyB,gBAAoB,MAAO,CAAEsJ,UAAW15F,KAAK7B,MAAMu7F,WAAa,GAAItvE,MAAOgvE,EAASA,EAAS,CAAE92C,SAAU,WAAYq3C,WAAY,QAAUh+D,EAAO37B,KAAK7B,MAAMoiC,YAAcvgC,KAAK7B,MAAMy7F,eAAiB,IAAML,YAAav5F,KAAKu5F,YAAaE,aAAcz5F,KAAKy5F,cAAgBz5F,KAAK7B,MAAMgzF,WAE/RkI,EAfkB,CAgB3BjJ,iB,iBCvGE6I,EAAyC,WACzC,IAAIC,EAAgB,SAAUzgF,EAAG5J,GAI7B,OAHAqqF,EAAgBx6F,OAAOyK,gBAClB,CAAEE,UAAW,cAAgB1H,OAAS,SAAU8W,EAAG5J,GAAK4J,EAAEpP,UAAYwF,IACvE,SAAU4J,EAAG5J,GAAK,IAAK,IAAImC,KAAKnC,EAAOnQ,OAAOO,UAAUoE,eAAesB,KAAKkK,EAAGmC,KAAIyH,EAAEzH,GAAKnC,EAAEmC,MAC3EyH,EAAG5J,IAE5B,OAAO,SAAU4J,EAAG5J,GAEhB,SAASsqF,IAAOn5F,KAAKP,YAAcgZ,EADnCygF,EAAczgF,EAAG5J,GAEjB4J,EAAExZ,UAAkB,OAAN4P,EAAanQ,OAAOc,OAAOqP,IAAMsqF,EAAGl6F,UAAY4P,EAAE5P,UAAW,IAAIk6F,IAV1C,GAazCC,EAAsC,WAStC,OARAA,EAAW16F,OAAOwX,QAAU,SAASE,GACjC,IAAK,IAAItU,EAAG1D,EAAI,EAAG2D,EAAI5B,UAAU9B,OAAQD,EAAI2D,EAAG3D,IAE5C,IAAK,IAAI4S,KADTlP,EAAI3B,UAAU/B,GACOM,OAAOO,UAAUoE,eAAesB,KAAK7C,EAAGkP,KACzDoF,EAAEpF,GAAKlP,EAAEkP,IAEjB,OAAOoF,IAEKhW,MAAMJ,KAAMG,YAK5B05F,EAAe,CACfhtE,MAAO,OACPoB,OAAQ,QAERzpB,EAAQs1F,KAAQ,SAAU/3F,EAAG+F,EAAKH,GAAO,OAAO/E,KAAK+E,IAAI/E,KAAKkF,IAAI/F,EAAG4F,GAAMG,MAC3EiyF,EAAOD,KAAQ,SAAU/3F,EAAG+M,GAAQ,OAAOlM,KAAKmN,MAAMhO,EAAI+M,GAAQA,KAClEkrF,EAAeF,KAAQ,SAAUp3D,EAAKxkC,GACtC,OAAO,IAAI40B,OAAO4P,EAAK,KAAK+0D,KAAKv5F,MAGjC+7F,EAAe,SAAUl1D,GACzB,OAAOm1D,QAAQn1D,EAAM3I,SAAW2I,EAAM3I,QAAQ/9B,SAM9C87F,EAAkBL,KAAQ,SAAU/3F,EAAGq4F,EAAWC,QAClC,IAAZA,IAAsBA,EAAU,GACpC,IAAIC,EAAkBF,EAAUl1D,QAAO,SAAU3K,EAAM+X,EAAM7lC,GAAS,OAAQ7J,KAAK4N,IAAI8hC,EAAOvwC,GAAKa,KAAK4N,IAAI4pF,EAAU7/D,GAAQx4B,GAAK0K,EAAQ8tB,IAAU,GACjJggE,EAAM33F,KAAK4N,IAAI4pF,EAAUE,GAAmBv4F,GAChD,OAAmB,IAAZs4F,GAAiBE,EAAMF,EAAUD,EAAUE,GAAmBv4F,KAErE0J,EAAWquF,KAAQ,SAAUxrF,EAAKksF,GAClC,OAAOlsF,EAAIvI,OAAOuI,EAAIjQ,OAASm8F,EAAUn8F,OAAQm8F,EAAUn8F,UAAYm8F,KAEvEC,EAAgBX,KAAQ,SAAU/3F,GAElC,MAAU,UADVA,EAAIA,EAAE2B,aAIF+H,EAAS1J,EAAG,OAGZ0J,EAAS1J,EAAG,MAGZ0J,EAAS1J,EAAG,OAGZ0J,EAAS1J,EAAG,OAGZ0J,EAAS1J,EAAG,SAGZ0J,EAAS1J,EAAG,QAjBLA,EAoBJA,EAAI,QAEX24F,EAAe,SAAU5rF,EAAM6rF,EAAYC,EAAYC,GACvD,GAAI/rF,GAAwB,kBAATA,EAAmB,CAClC,GAAIrD,EAASqD,EAAM,MACf,OAAO5D,OAAO4D,EAAK6X,QAAQ,KAAM,KAErC,GAAIlb,EAASqD,EAAM,KAEf,OAAO6rF,GADKzvF,OAAO4D,EAAK6X,QAAQ,IAAK,KAAO,KAGhD,GAAIlb,EAASqD,EAAM,MAEf,OAAO8rF,GADK1vF,OAAO4D,EAAK6X,QAAQ,KAAM,KAAO,KAGjD,GAAIlb,EAASqD,EAAM,MAEf,OAAO+rF,GADK3vF,OAAO4D,EAAK6X,QAAQ,KAAM,KAAO,KAIrD,OAAO7X,GAEPgsF,EAAkBhB,KAAQ,SAAUa,EAAYC,EAAYC,EAAarpE,EAAU4L,EAAW29D,EAAUC,GAKxG,OAJAxpE,EAAWkpE,EAAalpE,EAAUmpE,EAAW9tE,MAAO+tE,EAAYC,GAChEz9D,EAAYs9D,EAAat9D,EAAWu9D,EAAW1sE,OAAQ2sE,EAAYC,GACnEE,EAAWL,EAAaK,EAAUJ,EAAW9tE,MAAO+tE,EAAYC,GAChEG,EAAYN,EAAaM,EAAWL,EAAW1sE,OAAQ2sE,EAAYC,GAC5D,CACHrpE,SAA8B,qBAAbA,OAA2BlwB,EAAY4J,OAAOsmB,GAC/D4L,UAAgC,qBAAdA,OAA4B97B,EAAY4J,OAAOkyB,GACjE29D,SAA8B,qBAAbA,OAA2Bz5F,EAAY4J,OAAO6vF,GAC/DC,UAAgC,qBAAdA,OAA4B15F,EAAY4J,OAAO8vF,OAGrEC,EAAe,CACf,KACA,QACA,YACA,OACA,OACA,SACA,oBACA,OACA,cACA,WACA,YACA,WACA,YACA,kBACA,4BACA,6BACA,SACA,eACA,gBACA,qBACA,qBACA,WACA,gBACA,WACA,eACA,kBACA,QACA,cACA,WAIAC,EAA2B,SAAU5B,GAErC,SAAS4B,EAAU/8F,GACf,IAAIyyF,EAAQ0I,EAAO30F,KAAK3E,KAAM7B,IAAU6B,KAmFxC,OAlFA4wF,EAAM1pE,MAAQ,EACd0pE,EAAMuK,UAAY,KAElBvK,EAAMwK,WAAa,EACnBxK,EAAMyK,UAAY,EAElBzK,EAAM0K,cAAgB,EACtB1K,EAAM2K,eAAiB,EACvB3K,EAAM4K,aAAe,EACrB5K,EAAM6K,gBAAkB,EAExB7K,EAAM8K,WAAa,EACnB9K,EAAM+K,UAAY,EAClB/K,EAAMgL,WAAa,WACf,IAAKhL,EAAMuK,YAAcvK,EAAM58E,OAC3B,OAAO,KAEX,IAAIkjB,EAAS05D,EAAM31D,WACnB,IAAK/D,EACD,OAAO,KAEX,IAAIsE,EAAUo1D,EAAM58E,OAAO8mB,SAASovD,cAAc,OAclD,OAbA1uD,EAAQpR,MAAMyC,MAAQ,OACtB2O,EAAQpR,MAAM6D,OAAS,OACvBuN,EAAQpR,MAAMk4B,SAAW,WACzB9mB,EAAQpR,MAAMyxE,UAAY,cAC1BrgE,EAAQpR,MAAMwF,KAAO,IACrB4L,EAAQpR,MAAM0xE,KAAO,WACjBtgE,EAAQugE,UACRvgE,EAAQugE,UAAUjoF,IAlCd,sBAqCJ0nB,EAAQk+D,WArCJ,qBAuCRxiE,EAAO8kE,YAAYxgE,GACZA,GAEXo1D,EAAMqL,WAAa,SAAU1xF,GACzB,IAAI2sB,EAAS05D,EAAM31D,WACd/D,GAGLA,EAAOglE,YAAY3xF,IAEvBqmF,EAAMuL,IAAM,SAAUliF,GACdA,IACA22E,EAAMuK,UAAYlhF,IAG1B22E,EAAM9H,MAAQ,CACVsT,YAAY,EACZvvE,MAA6D,qBAA9C+jE,EAAMyL,WAAazL,EAAMyL,UAAUxvE,OAC5C,OACA+jE,EAAMyL,WAAazL,EAAMyL,UAAUxvE,MACzCoB,OAA+D,qBAA/C2iE,EAAMyL,WAAazL,EAAMyL,UAAUpuE,QAC7C,OACA2iE,EAAMyL,WAAazL,EAAMyL,UAAUpuE,OACzCsS,UAAW,QACXC,SAAU,CACN5yB,EAAG,EACHC,EAAG,EACHgf,MAAO,EACPoB,OAAQ,GAEZquE,gBAAiB,CACbruE,OAAQ,OACRpB,MAAO,OACPrD,gBAAiB,gBACjBwiD,OAAQ,OACR2F,QAAS,EACTrvB,SAAU,QACVi6C,OAAQ,KACRzsE,IAAK,IACLF,KAAM,IACNG,OAAQ,IACRF,MAAO,KAEX2sE,eAAWl7F,GAEfsvF,EAAM4I,cAAgB5I,EAAM4I,cAAcn9C,KAAKu0C,GAC/CA,EAAM6L,YAAc7L,EAAM6L,YAAYpgD,KAAKu0C,GAC3CA,EAAM8L,UAAY9L,EAAM8L,UAAUrgD,KAAKu0C,GAChCA,EA2gBX,OAhmBAqI,EAAUiC,EAAW5B,GAuFrB56F,OAAOC,eAAeu8F,EAAUj8F,UAAW,aAAc,CACrDqL,IAAK,WACD,OAAKtK,KAAKm7F,UAGHn7F,KAAKm7F,UAAUlgE,WAFX,MAIf18B,YAAY,EACZC,cAAc,IAElBE,OAAOC,eAAeu8F,EAAUj8F,UAAW,SAAU,CACjDqL,IAAK,WACD,OAAKtK,KAAKm7F,WAGLn7F,KAAKm7F,UAAUwB,cAGb38F,KAAKm7F,UAAUwB,cAAcC,YALzB,MAOfr+F,YAAY,EACZC,cAAc,IAElBE,OAAOC,eAAeu8F,EAAUj8F,UAAW,YAAa,CACpDqL,IAAK,WACD,OAAOtK,KAAK7B,MAAM2Q,MAAQ9O,KAAK7B,MAAM0+F,aAAehD,GAExDt7F,YAAY,EACZC,cAAc,IAElBE,OAAOC,eAAeu8F,EAAUj8F,UAAW,OAAQ,CAC/CqL,IAAK,WACD,IAAIuiB,EAAQ,EACRoB,EAAS,EACb,GAAIjuB,KAAKm7F,WAAan7F,KAAKgU,OAAQ,CAC/B,IAAI8oF,EAAW98F,KAAKm7F,UAAU4B,YAC1BC,EAAYh9F,KAAKm7F,UAAU8B,aAG3BC,EAAcl9F,KAAKm7F,UAAU/wE,MAAMk4B,SACnB,aAAhB46C,IACAl9F,KAAKm7F,UAAU/wE,MAAMk4B,SAAW,YAGpCz1B,EAAuC,SAA/B7sB,KAAKm7F,UAAU/wE,MAAMyC,MAAmB7sB,KAAKm7F,UAAU4B,YAAcD,EAC7E7uE,EAAyC,SAAhCjuB,KAAKm7F,UAAU/wE,MAAM6D,OAAoBjuB,KAAKm7F,UAAU8B,aAAeD,EAEhFh9F,KAAKm7F,UAAU/wE,MAAMk4B,SAAW46C,EAEpC,MAAO,CAAErwE,MAAOA,EAAOoB,OAAQA,IAEnC1vB,YAAY,EACZC,cAAc,IAElBE,OAAOC,eAAeu8F,EAAUj8F,UAAW,YAAa,CACpDqL,IAAK,WACD,IAAIsmF,EAAQ5wF,KACR8O,EAAO9O,KAAK7B,MAAM2Q,KAClBquF,EAAU,SAAUv+F,GACpB,GAAgC,qBAArBgyF,EAAM9H,MAAMlqF,IAA6C,SAArBgyF,EAAM9H,MAAMlqF,GACvD,MAAO,OAEX,GAAIgyF,EAAMyL,WAAazL,EAAMyL,UAAUz9F,IAAQ6M,EAASmlF,EAAMyL,UAAUz9F,GAAK8E,WAAY,KAAM,CAC3F,GAAI+H,EAASmlF,EAAM9H,MAAMlqF,GAAK8E,WAAY,KACtC,OAAOktF,EAAM9H,MAAMlqF,GAAK8E,WAE5B,IAAIi3F,EAAa/J,EAAMwM,gBAGvB,OAFYlyF,OAAO0lF,EAAM9H,MAAMlqF,GAAK8E,WAAWijB,QAAQ,KAAM,KACtCg0E,EAAW/7F,GAAQ,IACzB,IAErB,OAAO67F,EAAc7J,EAAM9H,MAAMlqF,KAQrC,MAAO,CAAEiuB,MANG/d,GAA8B,qBAAfA,EAAK+d,QAA0B7sB,KAAK8oF,MAAMsT,WAC/D3B,EAAc3rF,EAAK+d,OACnBswE,EAAQ,SAISlvE,OAHVnf,GAA+B,qBAAhBA,EAAKmf,SAA2BjuB,KAAK8oF,MAAMsT,WACjE3B,EAAc3rF,EAAKmf,QACnBkvE,EAAQ,YAGlB5+F,YAAY,EACZC,cAAc,IAElB08F,EAAUj8F,UAAUm+F,cAAgB,WAChC,IAAKp9F,KAAKi7B,WACN,OAAKj7B,KAAKgU,OAGH,CAAE6Y,MAAO7sB,KAAKgU,OAAO4mF,WAAY3sE,OAAQjuB,KAAKgU,OAAO6mF,aAFjD,CAAEhuE,MAAO,EAAGoB,OAAQ,GAInC,IAAI1jB,EAAOvK,KAAK47F,aAChB,IAAKrxF,EACD,MAAO,CAAEsiB,MAAO,EAAGoB,OAAQ,GAG/B,IAAIovE,GAAc,EACd5sC,EAAOzwD,KAAKi7B,WAAW7Q,MAAMkzE,SACpB,SAAT7sC,IACA4sC,GAAc,EACdr9F,KAAKi7B,WAAW7Q,MAAMkzE,SAAW,QAGrC/yF,EAAK6f,MAAMk4B,SAAW,WACtB/3C,EAAK6f,MAAM2wE,SAAW,OACtBxwF,EAAK6f,MAAM4wE,UAAY,OACvB,IAAIlsF,EAAO,CACP+d,MAAOtiB,EAAKwyF,YACZ9uE,OAAQ1jB,EAAK0yF,cAMjB,OAJII,IACAr9F,KAAKi7B,WAAW7Q,MAAMkzE,SAAW7sC,GAErCzwD,KAAKi8F,WAAW1xF,GACTuE,GAEXosF,EAAUj8F,UAAUw+D,WAAa,WACzBz9D,KAAKgU,SACLhU,KAAKgU,OAAOsqB,iBAAiB,UAAWt+B,KAAK08F,WAC7C18F,KAAKgU,OAAOsqB,iBAAiB,YAAat+B,KAAKy8F,aAC/Cz8F,KAAKgU,OAAOsqB,iBAAiB,aAAct+B,KAAK08F,WAChD18F,KAAKgU,OAAOsqB,iBAAiB,YAAat+B,KAAKy8F,YAAa,CACxDc,SAAS,EACT/oC,SAAS,IAEbx0D,KAAKgU,OAAOsqB,iBAAiB,WAAYt+B,KAAK08F,aAGtDxB,EAAUj8F,UAAUihE,aAAe,WAC3BlgE,KAAKgU,SACLhU,KAAKgU,OAAOuqB,oBAAoB,UAAWv+B,KAAK08F,WAChD18F,KAAKgU,OAAOuqB,oBAAoB,YAAav+B,KAAKy8F,aAClDz8F,KAAKgU,OAAOuqB,oBAAoB,aAAcv+B,KAAK08F,WACnD18F,KAAKgU,OAAOuqB,oBAAoB,YAAav+B,KAAKy8F,aAAa,GAC/Dz8F,KAAKgU,OAAOuqB,oBAAoB,WAAYv+B,KAAK08F,aAGzDxB,EAAUj8F,UAAU8yF,kBAAoB,WACpC,GAAK/xF,KAAKm7F,WAAcn7F,KAAKgU,OAA7B,CAGA,IAAIwpF,EAAgBx9F,KAAKgU,OAAOunB,iBAAiBv7B,KAAKm7F,WACtDn7F,KAAK4rF,SAAS,CACV/+D,MAAO7sB,KAAK8oF,MAAMj8D,OAAS7sB,KAAK8O,KAAK+d,MACrCoB,OAAQjuB,KAAK8oF,MAAM76D,QAAUjuB,KAAK8O,KAAKmf,OACvCuuE,UAAuC,SAA5BgB,EAAchB,UAAuBgB,EAAchB,eAAYl7F,MAGlF45F,EAAUj8F,UAAU+yF,qBAAuB,WACnChyF,KAAKgU,QACLhU,KAAKkgE,gBAGbg7B,EAAUj8F,UAAUw+F,yBAA2B,SAAU7/B,EAAS8/B,GAC9D,IAAIrB,EAAYr8F,KAAKq8F,WAAar8F,KAAKq8F,UAAUqB,GACjD,MAA4B,SAArB19F,KAAK8oF,MAAM4U,IACd19F,KAAK8oF,MAAMtoD,SAASk9D,KAAU9/B,GACR,qBAAdy+B,GAA2C,SAAdA,EAEnCz+B,EADA,QAGVs9B,EAAUj8F,UAAU0+F,4BAA8B,SAAUnsE,EAAU4L,GAClE,IAIIwgE,EACAC,EALAC,EAAoB99F,KAAK7B,MAAM2/F,kBAC/Bv9D,EAAYvgC,KAAK8oF,MAAMvoD,UACvBw9D,EAAmBD,GAAqB9D,EAAa,OAAQz5D,GAC7Dy9D,EAAoBF,GAAqB9D,EAAa,MAAOz5D,GAGjE,GAA0B,WAAtBvgC,KAAK7B,MAAMijC,OAAqB,CAChC,IAAI68D,EAAWj+F,KAAKi7B,WAChBgjE,IACAL,EAAaG,EACP/9F,KAAKu7F,eAAiBv7F,KAAKo7F,WAC3B6C,EAASlB,aAAe/8F,KAAKo7F,WAAap7F,KAAKs7F,eACrDuC,EAAcG,EACRh+F,KAAKy7F,gBAAkBz7F,KAAKq7F,UAC5B4C,EAAShB,cAAgBj9F,KAAKq7F,UAAYr7F,KAAKw7F,mBAG9B,WAAtBx7F,KAAK7B,MAAMijC,OACZphC,KAAKgU,SACL4pF,EAAaG,EAAmB/9F,KAAKu7F,eAAiBv7F,KAAKgU,OAAO4mF,WAAa56F,KAAKs7F,cACpFuC,EAAcG,EAAoBh+F,KAAKy7F,gBAAkBz7F,KAAKgU,OAAO6mF,YAAc76F,KAAKw7F,cAGvFx7F,KAAK7B,MAAMijC,SAChBw8D,EAAaG,EACP/9F,KAAKu7F,eAAiBv7F,KAAK07F,WAC3B17F,KAAK7B,MAAMijC,OAAO27D,aAAe/8F,KAAK07F,WAAa17F,KAAKs7F,eAC9DuC,EAAcG,EACRh+F,KAAKy7F,gBAAkBz7F,KAAK27F,UAC5B37F,KAAK7B,MAAMijC,OAAO67D,cAAgBj9F,KAAK27F,UAAY37F,KAAKw7F,eAQlE,OANIoC,GAAc1yF,OAAOC,SAASyyF,KAC9BpsE,EAAWA,GAAYA,EAAWosE,EAAapsE,EAAWosE,GAE1DC,GAAe3yF,OAAOC,SAAS0yF,KAC/BzgE,EAAYA,GAAaA,EAAYygE,EAAczgE,EAAYygE,GAE5D,CAAErsE,SAAUA,EAAU4L,UAAWA,IAE5C89D,EAAUj8F,UAAUi/F,8BAAgC,SAAUvhE,EAASC,GACnE,IAAItR,EAAQtrB,KAAK7B,MAAMmtB,OAAS,EAC5B6yE,EAAcn+F,KAAK7B,MAAMggG,aAAe,EACxCC,EAAKp+F,KAAK8oF,MAAOvoD,EAAY69D,EAAG79D,UAAWC,EAAW49D,EAAG59D,SACzD69D,EAAKr+F,KAAK7B,MAAOmgG,EAAkBD,EAAGC,gBAAiBC,EAA6BF,EAAGE,2BAA4BC,EAA4BH,EAAGG,0BAClJjtC,EAAW/wB,EAAS3T,MACpB4kC,EAAYjxB,EAASvS,OACrBwwE,EAAcF,GAA8B,EAC5CG,EAAaF,GAA6B,EAyB9C,OAxBIxE,EAAa,QAASz5D,KACtBgxB,EAAW/wB,EAAS3T,OAAU8P,EAAU6D,EAAS5yB,GAAKuwF,EAAe7yE,EACjEgzE,IACA7sC,GAAaF,EAAWmtC,GAAc1+F,KAAKknB,MAAQu3E,IAGvDzE,EAAa,OAAQz5D,KACrBgxB,EAAW/wB,EAAS3T,OAAU8P,EAAU6D,EAAS5yB,GAAKuwF,EAAe7yE,EACjEgzE,IACA7sC,GAAaF,EAAWmtC,GAAc1+F,KAAKknB,MAAQu3E,IAGvDzE,EAAa,SAAUz5D,KACvBkxB,EAAYjxB,EAASvS,QAAW2O,EAAU4D,EAAS3yB,GAAKswF,EAAe7yE,EACnEgzE,IACA/sC,GAAYE,EAAYgtC,GAAez+F,KAAKknB,MAAQw3E,IAGxD1E,EAAa,MAAOz5D,KACpBkxB,EAAYjxB,EAASvS,QAAW2O,EAAU4D,EAAS3yB,GAAKswF,EAAe7yE,EACnEgzE,IACA/sC,GAAYE,EAAYgtC,GAAez+F,KAAKknB,MAAQw3E,IAGrD,CAAEntC,SAAUA,EAAUE,UAAWA,IAE5CypC,EAAUj8F,UAAU0/F,gCAAkC,SAAUptC,EAAUE,EAAW9pD,EAAKG,GACtF,IAAIs2F,EAAKp+F,KAAK7B,MAAOmgG,EAAkBF,EAAGE,gBAAiBC,EAA6BH,EAAGG,2BAA4BC,EAA4BJ,EAAGI,0BAClJI,EAAwC,qBAAd92F,EAAI+kB,MAAwB,GAAK/kB,EAAI+kB,MAC/DgyE,EAAwC,qBAAdl3F,EAAIklB,OAAyBllB,EAAIklB,MAAQ,EAAI0kC,EAAW5pD,EAAIklB,MACtFiyE,EAA0C,qBAAfh3F,EAAImmB,OAAyB,GAAKnmB,EAAImmB,OACjE8wE,EAA0C,qBAAfp3F,EAAIsmB,QAA0BtmB,EAAIsmB,OAAS,EAAIwjC,EAAY9pD,EAAIsmB,OAC1FwwE,EAAcF,GAA8B,EAC5CG,EAAaF,GAA6B,EAC9C,GAAIF,EAAiB,CACjB,IAAIU,GAAiBF,EAAoBL,GAAez+F,KAAKknB,MAAQw3E,EACjEO,GAAiBF,EAAoBN,GAAez+F,KAAKknB,MAAQw3E,EACjEQ,GAAkBN,EAAmBF,GAAc1+F,KAAKknB,MAAQu3E,EAChEU,GAAkBN,EAAmBH,GAAc1+F,KAAKknB,MAAQu3E,EAChEW,EAAiBx8F,KAAK+E,IAAIi3F,EAAkBI,GAC5CK,EAAiBz8F,KAAKkF,IAAI+2F,EAAkBI,GAC5CK,EAAkB18F,KAAK+E,IAAIm3F,EAAmBI,GAC9CK,EAAkB38F,KAAKkF,IAAIi3F,EAAmBI,GAClD5tC,EAAW/sD,EAAM+sD,EAAU6tC,EAAgBC,GAC3C5tC,EAAYjtD,EAAMitD,EAAW6tC,EAAiBC,QAG9ChuC,EAAW/sD,EAAM+sD,EAAUqtC,EAAkBC,GAC7CptC,EAAYjtD,EAAMitD,EAAWqtC,EAAmBC,GAEpD,MAAO,CAAExtC,SAAUA,EAAUE,UAAWA,IAE5CypC,EAAUj8F,UAAUugG,sBAAwB,WAExC,GAA0B,WAAtBx/F,KAAK7B,MAAMijC,OAAqB,CAChC,IAAIq+D,EAAWz/F,KAAKi7B,WACpB,GAAIwkE,EAAU,CACV,IAAIC,EAAaD,EAAS/iE,wBAC1B18B,KAAKo7F,WAAasE,EAAW9vE,KAC7B5vB,KAAKq7F,UAAYqE,EAAW5vE,KAIpC,GAAI9vB,KAAK7B,MAAMijC,QAAuC,kBAAtBphC,KAAK7B,MAAMijC,OAAqB,CAC5D,IAAIu+D,EAAa3/F,KAAK7B,MAAMijC,OAAO1E,wBACnC18B,KAAK07F,WAAaiE,EAAW/vE,KAC7B5vB,KAAK27F,UAAYgE,EAAW7vE,IAGhC,GAAI9vB,KAAKm7F,UAAW,CAChB,IAAIiD,EAAKp+F,KAAKm7F,UAAUz+D,wBAAyB9M,EAAOwuE,EAAGxuE,KAAMgwE,EAAQxB,EAAGtuE,IAAKD,EAAQuuE,EAAGvuE,MAAOE,EAASquE,EAAGruE,OAC/G/vB,KAAKs7F,cAAgB1rE,EACrB5vB,KAAKu7F,eAAiB1rE,EACtB7vB,KAAKw7F,aAAeoE,EACpB5/F,KAAKy7F,gBAAkB1rE,IAG/BmrE,EAAUj8F,UAAUu6F,cAAgB,SAAUz0D,EAAOxE,GACjD,GAAKvgC,KAAKm7F,WAAcn7F,KAAKgU,OAA7B,CAGA,IA8BIwoF,EA9BA7/D,EAAU,EACVC,EAAU,EASd,GARImI,EAAM86D,aApeC,SAAU96D,GACzB,OAAOm1D,SAASn1D,EAAMpI,SAA6B,IAAlBoI,EAAMpI,WAClCoI,EAAMnI,SAA6B,IAAlBmI,EAAMnI,UAkeCkjE,CAAa/6D,EAAM86D,cACxCljE,EAAUoI,EAAM86D,YAAYljE,QAC5BC,EAAUmI,EAAM86D,YAAYjjE,SAEvBmI,EAAM86D,aAAe5F,EAAal1D,EAAM86D,eAC7CljE,EAAUoI,EAAM86D,YAAYzjE,QAAQ,GAAGO,QACvCC,EAAUmI,EAAM86D,YAAYzjE,QAAQ,GAAGQ,SAEvC58B,KAAK7B,MAAMq7F,cACX,GAAIx5F,KAAKm7F,UAEL,IAAoB,IADFn7F,KAAK7B,MAAMq7F,cAAcz0D,EAAOxE,EAAWvgC,KAAKm7F,WAE9D,OAKRn7F,KAAK7B,MAAM2Q,OAC2B,qBAA3B9O,KAAK7B,MAAM2Q,KAAKmf,QAA0BjuB,KAAK7B,MAAM2Q,KAAKmf,SAAWjuB,KAAK8oF,MAAM76D,QACvFjuB,KAAK4rF,SAAS,CAAE39D,OAAQjuB,KAAK7B,MAAM2Q,KAAKmf,SAEP,qBAA1BjuB,KAAK7B,MAAM2Q,KAAK+d,OAAyB7sB,KAAK7B,MAAM2Q,KAAK+d,QAAU7sB,KAAK8oF,MAAMj8D,OACrF7sB,KAAK4rF,SAAS,CAAE/+D,MAAO7sB,KAAK7B,MAAM2Q,KAAK+d,SAI/C7sB,KAAKknB,MACqC,kBAA/BlnB,KAAK7B,MAAMmgG,gBAA+Bt+F,KAAK7B,MAAMmgG,gBAAkBt+F,KAAK8O,KAAK+d,MAAQ7sB,KAAK8O,KAAKmf,OAE9G,IAAIuvE,EAAgBx9F,KAAKgU,OAAOunB,iBAAiBv7B,KAAKm7F,WACtD,GAAgC,SAA5BqC,EAAchB,UAAsB,CACpC,IAAIuD,EAAW//F,KAAKi7B,WACpB,GAAI8kE,EAAU,CACV,IAAIr9D,EAAM1iC,KAAKgU,OAAOunB,iBAAiBwkE,GAAUC,cACjDhgG,KAAKigG,QAAUv9D,EAAItW,WAAW,OAAS,MAAQ,SAC/CowE,EAAYgB,EAAchB,WAIlCx8F,KAAKw/F,wBACLx/F,KAAKy9D,aACL,IAAIqrB,EAAQ,CACRtoD,SAAU,CACN5yB,EAAG+uB,EACH9uB,EAAG+uB,EACH/P,MAAO7sB,KAAK8O,KAAK+d,MACjBoB,OAAQjuB,KAAK8O,KAAKmf,QAEtBmuE,YAAY,EACZE,gBAAiBlD,EAASA,EAAS,GAAIp5F,KAAK8oF,MAAMwT,iBAAkB,CAAEtwB,OAAQhsE,KAAKgU,OAAOunB,iBAAiBwJ,EAAM7mC,QAAQ8tE,QAAU,SACnIzrC,UAAWA,EACXi8D,UAAWA,GAEfx8F,KAAK4rF,SAAS9C,KAElBoS,EAAUj8F,UAAUw9F,YAAc,SAAU13D,GACxC,GAAK/kC,KAAK8oF,MAAMsT,YAAep8F,KAAKm7F,WAAcn7F,KAAKgU,OAAvD,CAGA,GAAIhU,KAAKgU,OAAOksF,YAAcjG,EAAal1D,GACvC,IACIA,EAAMo7D,iBACNp7D,EAAMq7D,kBAEV,MAAOp+F,IAIX,IAAIo8F,EAAKp+F,KAAK7B,MAAOqzB,EAAW4sE,EAAG5sE,SAAU4L,EAAYghE,EAAGhhE,UAAW29D,EAAWqD,EAAGrD,SAAUC,EAAYoD,EAAGpD,UAC1Gr+D,EAAUs9D,EAAal1D,GAASA,EAAM3I,QAAQ,GAAGO,QAAUoI,EAAMpI,QACjEC,EAAUq9D,EAAal1D,GAASA,EAAM3I,QAAQ,GAAGQ,QAAUmI,EAAMnI,QACjEyhE,EAAKr+F,KAAK8oF,MAAOvoD,EAAY89D,EAAG99D,UAAWC,EAAW69D,EAAG79D,SAAU3T,EAAQwxE,EAAGxxE,MAAOoB,EAASowE,EAAGpwE,OACjG0sE,EAAa36F,KAAKo9F,gBAClBz1F,EAAMmzF,EAAgBH,EAAY36F,KAAKgU,OAAO4mF,WAAY56F,KAAKgU,OAAO6mF,YAAarpE,EAAU4L,EAAW29D,EAAUC,GACtHxpE,EAAW7pB,EAAI6pB,SACf4L,EAAYz1B,EAAIy1B,UAChB29D,EAAWpzF,EAAIozF,SACfC,EAAYrzF,EAAIqzF,UAEhB,IAAIqF,EAAKrgG,KAAKk+F,8BAA8BvhE,EAASC,GAAU60B,EAAY4uC,EAAG5uC,UAAWF,EAAW8uC,EAAG9uC,SAEnG+uC,EAActgG,KAAK29F,4BAA4BnsE,EAAU4L,GACzDp9B,KAAK7B,MAAM47F,MAAQ/5F,KAAK7B,MAAM47F,KAAKnsF,IACnC2jD,EAAW4oC,EAAgB5oC,EAAUvxD,KAAK7B,MAAM47F,KAAKnsF,EAAG5N,KAAK7B,MAAMk8F,UAEnEr6F,KAAK7B,MAAM47F,MAAQ/5F,KAAK7B,MAAM47F,KAAKlsF,IACnC4jD,EAAY0oC,EAAgB1oC,EAAWzxD,KAAK7B,MAAM47F,KAAKlsF,EAAG7N,KAAK7B,MAAMk8F,UAGzE,IAAIz8B,EAAU59D,KAAK2+F,gCAAgCptC,EAAUE,EAAW,CAAE5kC,MAAOyzE,EAAY9uE,SAAUvD,OAAQqyE,EAAYljE,WAAa,CAAEvQ,MAAOkuE,EAAU9sE,OAAQ+sE,IAGnK,GAFAzpC,EAAWqM,EAAQrM,SACnBE,EAAYmM,EAAQnM,UAChBzxD,KAAK7B,MAAMs5C,KAAM,CACjB,IAAI8oD,EAAexG,EAAKxoC,EAAUvxD,KAAK7B,MAAMs5C,KAAK,IAC9C+oD,EAAgBzG,EAAKtoC,EAAWzxD,KAAK7B,MAAMs5C,KAAK,IAChD8iD,EAAMv6F,KAAK7B,MAAMk8F,SAAW,EAChC9oC,EAAmB,IAARgpC,GAAa33F,KAAK4N,IAAI+vF,EAAehvC,IAAagpC,EAAMgG,EAAehvC,EAClFE,EAAoB,IAAR8oC,GAAa33F,KAAK4N,IAAIgwF,EAAgB/uC,IAAc8oC,EAAMiG,EAAgB/uC,EAE1F,IAAIh4B,EAAQ,CACR5M,MAAO0kC,EAAW/wB,EAAS3T,MAC3BoB,OAAQwjC,EAAYjxB,EAASvS,QAEjC,GAAIpB,GAA0B,kBAAVA,EAChB,GAAIphB,EAASohB,EAAO,KAEhB0kC,EADeA,EAAWopC,EAAW9tE,MAAS,IACzB,SAEpB,GAAIphB,EAASohB,EAAO,MAAO,CAE5B0kC,EADUA,EAAWvxD,KAAKgU,OAAO4mF,WAAc,IAC/B,UAEf,GAAInvF,EAASohB,EAAO,MAAO,CAE5B0kC,EADUA,EAAWvxD,KAAKgU,OAAO6mF,YAAe,IAChC,KAGxB,GAAI5sE,GAA4B,kBAAXA,EACjB,GAAIxiB,EAASwiB,EAAQ,KAEjBwjC,EADeA,EAAYkpC,EAAW1sE,OAAU,IAC1B,SAErB,GAAIxiB,EAASwiB,EAAQ,MAAO,CAE7BwjC,EADUA,EAAYzxD,KAAKgU,OAAO4mF,WAAc,IAC/B,UAEhB,GAAInvF,EAASwiB,EAAQ,MAAO,CAE7BwjC,EADUA,EAAYzxD,KAAKgU,OAAO6mF,YAAe,IAChC,KAGzB,IAAI4F,EAAW,CACX5zE,MAAO7sB,KAAKy9F,yBAAyBlsC,EAAU,SAC/CtjC,OAAQjuB,KAAKy9F,yBAAyBhsC,EAAW,WAEhC,QAAjBzxD,KAAKigG,QACLQ,EAASjE,UAAYiE,EAAS5zE,MAER,WAAjB7sB,KAAKigG,UACVQ,EAASjE,UAAYiE,EAASxyE,QAElCjuB,KAAK4rF,SAAS6U,GACVzgG,KAAK7B,MAAM2/D,UACX99D,KAAK7B,MAAM2/D,SAAS/4B,EAAOxE,EAAWvgC,KAAKm7F,UAAW1hE,KAG9DyhE,EAAUj8F,UAAUy9F,UAAY,SAAU33D,GACtC,IAAIq5D,EAAKp+F,KAAK8oF,MAAOsT,EAAagC,EAAGhC,WAAY77D,EAAY69D,EAAG79D,UAAWC,EAAW49D,EAAG59D,SACzF,GAAK47D,GAAep8F,KAAKm7F,UAAzB,CAGA,IAAI1hE,EAAQ,CACR5M,MAAO7sB,KAAK8O,KAAK+d,MAAQ2T,EAAS3T,MAClCoB,OAAQjuB,KAAK8O,KAAKmf,OAASuS,EAASvS,QAEpCjuB,KAAK7B,MAAMuiG,cACX1gG,KAAK7B,MAAMuiG,aAAa37D,EAAOxE,EAAWvgC,KAAKm7F,UAAW1hE,GAE1Dz5B,KAAK7B,MAAM2Q,MACX9O,KAAK4rF,SAAS5rF,KAAK7B,MAAM2Q,MAE7B9O,KAAKkgE,eACLlgE,KAAK4rF,SAAS,CACVwQ,YAAY,EACZE,gBAAiBlD,EAASA,EAAS,GAAIp5F,KAAK8oF,MAAMwT,iBAAkB,CAAEtwB,OAAQ,aAGtFkvB,EAAUj8F,UAAU0hG,WAAa,SAAU7xF,GACvC9O,KAAK4rF,SAAS,CAAE/+D,MAAO/d,EAAK+d,MAAOoB,OAAQnf,EAAKmf,UAEpDitE,EAAUj8F,UAAU2hG,cAAgB,WAChC,IAAIhQ,EAAQ5wF,KACRo+F,EAAKp+F,KAAK7B,MAAO0iG,EAASzC,EAAGyC,OAAQC,EAAe1C,EAAG0C,aAAcC,EAAgB3C,EAAG2C,cAAeC,EAAqB5C,EAAG4C,mBAAoBC,EAAqB7C,EAAG6C,mBAAoBC,EAAkB9C,EAAG8C,gBACxN,IAAKL,EACD,OAAO,KAEX,IAAIM,EAAWziG,OAAOuN,KAAK40F,GAAQj0F,KAAI,SAAU81B,GAC7C,OAAoB,IAAhBm+D,EAAOn+D,GACC0tD,gBAAoBiJ,EAAS,CAAEz6F,IAAK8jC,EAAKnC,UAAWmC,EAAK82D,cAAe5I,EAAM4I,cAAeI,cAAekH,GAAgBA,EAAap+D,GAAMg3D,UAAWqH,GAAiBA,EAAcr+D,IAAQw+D,GAAmBA,EAAgBx+D,GAAOw+D,EAAgBx+D,GAAO,MAEvQ,QAGX,OAAQ0tD,gBAAoB,MAAO,CAAEsJ,UAAWuH,EAAoB72E,MAAO42E,GAAsBG,IAErGjG,EAAUj8F,UAAU8+D,OAAS,WACzB,IAAI6yB,EAAQ5wF,KACRohG,EAAe1iG,OAAOuN,KAAKjM,KAAK7B,OAAO+mC,QAAO,SAAUC,EAAKvmC,GAC7D,OAAmC,IAA/Bq8F,EAAajuF,QAAQpO,KAGzBumC,EAAIvmC,GAAOgyF,EAAMzyF,MAAMS,IAFZumC,IAIZ,IACC/a,EAAQgvE,EAASA,EAASA,EAAS,CAAE92C,SAAU,WAAYq3C,WAAY35F,KAAK8oF,MAAMsT,WAAa,OAAS,QAAUp8F,KAAK7B,MAAMisB,OAAQpqB,KAAKqhG,WAAY,CAAE7vE,SAAUxxB,KAAK7B,MAAMqzB,SAAU4L,UAAWp9B,KAAK7B,MAAMi/B,UAAW29D,SAAU/6F,KAAK7B,MAAM48F,SAAUC,UAAWh7F,KAAK7B,MAAM68F,UAAW/+D,UAAW,aAAcqlE,WAAY,IAC7TthG,KAAK8oF,MAAM0T,YACXpyE,EAAMoyE,UAAYx8F,KAAK8oF,MAAM0T,WAEjC,IAAI+E,EAAUvhG,KAAK7B,MAAMqjG,IAAM,MAC/B,OAAQpR,gBAAoBmR,EAASnI,EAAS,CAAE+C,IAAKn8F,KAAKm8F,IAAK/xE,MAAOA,EAAOsvE,UAAW15F,KAAK7B,MAAMu7F,WAAa0H,GAC5GphG,KAAK8oF,MAAMsT,YAAchM,gBAAoB,MAAO,CAAEhmE,MAAOpqB,KAAK8oF,MAAMwT,kBACxEt8F,KAAK7B,MAAMgzF,SACXnxF,KAAK4gG,kBAEb1F,EAAUuG,aAAe,CACrBD,GAAI,MACJhI,cAAe,aACf17B,SAAU,aACV4iC,aAAc,aACdG,OAAQ,CACJ/wE,KAAK,EACLD,OAAO,EACPE,QAAQ,EACRH,MAAM,EACNgD,UAAU,EACVD,aAAa,EACbD,YAAY,EACZD,SAAS,GAEbrI,MAAO,GACPqtB,KAAM,CAAC,EAAG,GACV6mD,iBAAiB,EACjBE,0BAA2B,EAC3BD,2BAA4B,EAC5BjzE,MAAO,EACP6yE,YAAa,EACb9D,QAAS,GAENa,EAjmBoB,CAkmB7B9K,iBC7tBE8I,EAAgB,SAASzgF,EAAG5J,GAI5B,OAHAqqF,EAAgBx6F,OAAOyK,gBAClB,CAAEE,UAAW,cAAgB1H,OAAS,SAAU8W,EAAG5J,GAAK4J,EAAEpP,UAAYwF,IACvE,SAAU4J,EAAG5J,GAAK,IAAK,IAAImC,KAAKnC,EAAOA,EAAExL,eAAe2N,KAAIyH,EAAEzH,GAAKnC,EAAEmC,MACpDyH,EAAG5J,IAS5B,IAAIuqF,EAAW,WAQX,OAPAA,EAAW16F,OAAOwX,QAAU,SAAkBE,GAC1C,IAAK,IAAItU,EAAG1D,EAAI,EAAG2D,EAAI5B,UAAU9B,OAAQD,EAAI2D,EAAG3D,IAE5C,IAAK,IAAI4S,KADTlP,EAAI3B,UAAU/B,GACOM,OAAOO,UAAUoE,eAAesB,KAAK7C,EAAGkP,KAAIoF,EAAEpF,GAAKlP,EAAEkP,IAE9E,OAAOoF,IAEKhW,MAAMJ,KAAMG,YAehC,IAAIuhG,EAAYC,IACZC,EAAiB,CACjB/0E,MAAO,OACPoB,OAAQ,OACRkvB,QAAS,eACTmF,SAAU,WACVxyB,IAAK,EACLF,KAAM,GAYNiyE,EAAqB,SAAUvI,GAE/B,SAASuI,EAAI1jG,GACT,IAAIyyF,EAAQ0I,EAAO30F,KAAK3E,KAAM7B,IAAU6B,KAkCxC,OAjCA4wF,EAAMkR,iBAAmB,CAAEl0F,EAAG,EAAGC,EAAG,GACpC+iF,EAAMmR,iBAAmB,CAAEnyE,KAAM,EAAGE,IAAK,GACzC8gE,EAAMoR,iBAAmB,CAAEzpE,QAAS,MACpCq4D,EAAMqR,iBAAmB,CAAEr0F,EAAG,EAAGC,EAAG,GACpC+iF,EAAMsR,aAAe,SAAUjoF,GACtBA,IAEL22E,EAAMuR,UAAYloF,IAEtB22E,EAAMwR,aAAe,SAAUnoF,GACtBA,IAEL22E,EAAMuK,UAAYlhF,EAClB22E,EAAMoR,iBAAiBzpE,QAAUte,EAAEkhF,YAEvCvK,EAAM9H,MAAQ,CACVuZ,UAAU,EACVjhE,OAAQ,CACJtR,IAAK,EACLD,MAAO,EACPE,OAAQ,EACRH,KAAM,GAEV4B,SAAUrzB,EAAMqzB,SAChB4L,UAAWj/B,EAAMi/B,WAErBwzD,EAAM4I,cAAgB5I,EAAM4I,cAAcn9C,KAAKu0C,GAC/CA,EAAM9yB,SAAW8yB,EAAM9yB,SAASzhB,KAAKu0C,GACrCA,EAAM8P,aAAe9P,EAAM8P,aAAarkD,KAAKu0C,GAC7CA,EAAM0R,YAAc1R,EAAM0R,YAAYjmD,KAAKu0C,GAC3CA,EAAM2R,OAAS3R,EAAM2R,OAAOlmD,KAAKu0C,GACjCA,EAAM4R,WAAa5R,EAAM4R,WAAWnmD,KAAKu0C,GACzCA,EAAM6R,qBAAuB7R,EAAM6R,qBAAqBpmD,KAAKu0C,GACtDA,EA0VX,OA/aJ,SAAmBn4E,EAAG5J,GAElB,SAASsqF,IAAOn5F,KAAKP,YAAcgZ,EADnCygF,EAAczgF,EAAG5J,GAEjB4J,EAAExZ,UAAkB,OAAN4P,EAAanQ,OAAOc,OAAOqP,IAAMsqF,EAAGl6F,UAAY4P,EAAE5P,UAAW,IAAIk6F,GA8C/EF,CAAU4I,EAAKvI,GAsCfuI,EAAI5iG,UAAU8yF,kBAAoB,WAC9B/xF,KAAK0iG,yBACL,IAAItE,EAAKp+F,KAAK+hG,iBAAkBnyE,EAAOwuE,EAAGxuE,KAAME,EAAMsuE,EAAGtuE,IACrDuuE,EAAKr+F,KAAK2iG,uBAAwB/0F,EAAIywF,EAAGzwF,EAAGC,EAAIwwF,EAAGxwF,EACvD7N,KAAKmiG,UAAUvW,SAAS,CACpBh+E,EAAGA,EAAIgiB,EACP/hB,EAAGA,EAAIiiB,IAGX9vB,KAAK4iG,eAGTf,EAAI5iG,UAAU0jG,qBAAuB,WACjC,IAAIvE,EAAKp+F,KAAKmiG,UAAUrZ,MACxB,MAAO,CAAEl7E,EAD0BwwF,EAAGxwF,EACvBC,EAD8BuwF,EAAGvwF,IAGpDg0F,EAAI5iG,UAAU4jG,UAAY,WACtB,OAAO7iG,KAAKm7F,WAAan7F,KAAKm7F,UAAUlgE,YAE5C4mE,EAAI5iG,UAAUm+F,cAAgB,WAC1B,OAAOp9F,KAAKm7F,UAAUiC,iBAE1ByE,EAAI5iG,UAAUwjG,qBAAuB,WAGjC,MAAO,CAAEjxE,SAFqC,qBAAxBxxB,KAAK7B,MAAMqzB,SAA2BtmB,OAAO0tE,iBAAmB54E,KAAK7B,MAAMqzB,SAEpE4L,UADmB,qBAAzBp9B,KAAK7B,MAAMi/B,UAA4BlyB,OAAO0tE,iBAAmB54E,KAAK7B,MAAMi/B,YAGvGykE,EAAI5iG,UAAU6jG,eAAiB,WAC3B,OAAO9iG,KAAKm7F,WAAan7F,KAAKm7F,UAAUA,WAE5C0G,EAAI5iG,UAAU8jG,gBAAkB,SAAUC,GACtC,IAAI13E,EAAQtrB,KAAK7B,MAAMmtB,MACvB,OAAQtrB,KAAK7B,MAAMijC,QACf,IAAK,SACD,OAAOptB,OAAO6mF,YAAcvvE,EAChC,IAAK,OACD,OAAOwP,SAASq0C,KAAK8tB,aAAe3xE,EACxC,QACI,OAAO03E,EAAS/F,eAG5B4E,EAAI5iG,UAAUgkG,eAAiB,SAAUD,GACrC,IAAI13E,EAAQtrB,KAAK7B,MAAMmtB,MACvB,OAAQtrB,KAAK7B,MAAMijC,QACf,IAAK,SACD,OAAOptB,OAAO4mF,WAAatvE,EAC/B,IAAK,OACD,OAAOwP,SAASq0C,KAAK4tB,YAAczxE,EACvC,QACI,OAAO03E,EAASjG,cAG5B8E,EAAI5iG,UAAUqjG,YAAc,SAAUtgG,EAAGmF,GACjCnH,KAAK7B,MAAMmkG,aACXtiG,KAAK7B,MAAMmkG,YAAYtgG,EAAGmF,GAE9B,IAAI00B,EAAM77B,KAAK2iG,uBAEf,GADA3iG,KAAKiiG,iBAAmBpmE,EACnB77B,KAAK7B,MAAMijC,OAAhB,CAEA,IAEI4hE,EAFA9rE,EAASl3B,KAAK6iG,YACdv3E,EAAQtrB,KAAK7B,MAAMmtB,MAEvB,GAA0B,WAAtBtrB,KAAK7B,MAAMijC,OACX4hE,EAAW9rE,MAEV,IAA0B,SAAtBl3B,KAAK7B,MAAMijC,OAAmB,CACnC,IAAI8hE,EAAehsE,EAAOwF,wBACtBymE,EAAeD,EAAatzE,KAC5BwzE,EAAcF,EAAapzE,IAC3BuzE,EAAWvoE,SAASq0C,KAAKzyC,wBACzB4mE,IAAWH,EAAejsE,EAAOqwB,WAAaj8B,EAAQ+3E,EAASzzE,MAAQtE,EACvEs0E,IAAUwD,EAAclsE,EAAOqsE,UAAYj4E,EAAQ+3E,EAASvzE,KAAOxE,EACnEuE,GAASiL,SAASq0C,KAAK4tB,YAAc/8F,KAAKm7F,UAAUrsF,KAAK+d,MAAQvB,GAASA,EAAQg4E,EAClFvzE,GAAU+K,SAASq0C,KAAK8tB,aAAej9F,KAAKm7F,UAAUrsF,KAAKmf,OAAS3C,GAASA,EAAQs0E,EACzF,OAAO5/F,KAAK4rF,SAAS,CAAExqD,OAAQ,CAAEtR,IAAK8vE,EAAO/vE,MAAOA,EAAOE,OAAQA,EAAQH,KAAM0zE,KAEhF,GAA0B,WAAtBtjG,KAAK7B,MAAMijC,OAAqB,CACrC,IAAKphC,KAAKm7F,UACN,OACJ,IAAIqI,EAAetsE,EAAOwF,wBACtB+mE,EAAeD,EAAa5zE,KAC5B8zE,EAAcF,EAAa1zE,IAC3B6zE,IAAWF,EAAevsE,EAAOqwB,WAAaj8B,GAASA,EACvDs4E,IAAUF,EAAcxsE,EAAOqsE,UAAYj4E,GAASA,EACpDuE,GAAS7b,OAAO4mF,WAAa56F,KAAKm7F,UAAUrsF,KAAK+d,MAAQvB,GAASA,EAAQq4E,EAC1E5zE,GAAU/b,OAAO6mF,YAAc76F,KAAKm7F,UAAUrsF,KAAKmf,OAAS3C,GAASA,EAAQs4E,EACjF,OAAO5jG,KAAK4rF,SAAS,CAAExqD,OAAQ,CAAEtR,IAAK8zE,EAAO/zE,MAAOA,EAAOE,OAAQA,EAAQH,KAAM+zE,KAGjFX,EAAWloE,SAAS6zD,cAAc3uF,KAAK7B,MAAMijC,QAEjD,GAAM4hE,aAAoBa,aAAkB3sE,aAAkB2sE,YAA9D,CAGA,IAAIC,EAAed,EAAStmE,wBACxBqnE,EAAeD,EAAal0E,KAC5Bo0E,EAAcF,EAAah0E,IAC3B4vE,EAAaxoE,EAAOwF,wBAGpB9M,GAAQm0E,EAFKrE,EAAW9vE,MAEatE,EACrCwE,EAAMk0E,EAFMtE,EAAW5vE,IAG3B,GAAK9vB,KAAKm7F,UAAV,CAEAn7F,KAAK0iG,yBACL,IAAI36F,EAAS/H,KAAK+hG,iBAClB/hG,KAAK4rF,SAAS,CACVxqD,OAAQ,CACJtR,IAAKA,EAAM/nB,EAAO+nB,IAClBD,MAAOD,GAAQozE,EAASjG,YAAc/8F,KAAKm7F,UAAUrsF,KAAK+d,OAAS9kB,EAAO6nB,KAAOtE,EACjFyE,OAAQD,GAAOkzE,EAAS/F,aAAej9F,KAAKm7F,UAAUrsF,KAAKmf,QAAUlmB,EAAO+nB,IAC5EF,KAAMA,EAAO7nB,EAAO6nB,KAAOtE,SAIvCu2E,EAAI5iG,UAAUsjG,OAAS,SAAUvgG,EAAGmF,GAChC,GAAKnH,KAAK7B,MAAMokG,OAAhB,CAEA,IAAInE,EAAKp+F,KAAK+hG,iBAAkBnyE,EAAOwuE,EAAGxuE,KAAME,EAAMsuE,EAAGtuE,IACzD,OAAK9vB,KAAK7B,MAAM8lG,UAAoC,SAAxBjkG,KAAK7B,MAAM8lG,SAGN,MAAxBjkG,KAAK7B,MAAM8lG,SACTjkG,KAAK7B,MAAMokG,OAAOvgG,EAAGo3F,EAASA,EAAS,GAAIjyF,GAAO,CAAEyG,EAAGzG,EAAKyG,EAAIgiB,EAAM/hB,EAAG7N,KAAKiiG,iBAAiBp0F,EAAIiiB,EAAKu/B,OAAQ,KAE1F,MAAxBrvD,KAAK7B,MAAM8lG,SACTjkG,KAAK7B,MAAMokG,OAAOvgG,EAAGo3F,EAASA,EAAS,GAAIjyF,GAAO,CAAEyG,EAAG5N,KAAKiiG,iBAAiBr0F,EAAIgiB,EAAM/hB,EAAG1G,EAAK0G,EAAIiiB,EAAKs/B,OAAQ,UADtH,EALMpvD,KAAK7B,MAAMokG,OAAOvgG,EAAGo3F,EAASA,EAAS,GAAIjyF,GAAO,CAAEyG,EAAGzG,EAAKyG,EAAIgiB,EAAM/hB,EAAG1G,EAAK0G,EAAIiiB,OASjG+xE,EAAI5iG,UAAUujG,WAAa,SAAUxgG,EAAGmF,GACpC,GAAKnH,KAAK7B,MAAMqkG,WAAhB,CAEA,IAAIpE,EAAKp+F,KAAK+hG,iBAAkBnyE,EAAOwuE,EAAGxuE,KAAME,EAAMsuE,EAAGtuE,IACzD,OAAK9vB,KAAK7B,MAAM8lG,UAAoC,SAAxBjkG,KAAK7B,MAAM8lG,SAGN,MAAxBjkG,KAAK7B,MAAM8lG,SACTjkG,KAAK7B,MAAMqkG,WAAWxgG,EAAGo3F,EAASA,EAAS,GAAIjyF,GAAO,CAAEyG,EAAGzG,EAAKyG,EAAIgiB,EAAM/hB,EAAG7N,KAAKiiG,iBAAiBp0F,EAAIiiB,EAAKu/B,OAAQ,KAE9F,MAAxBrvD,KAAK7B,MAAM8lG,SACTjkG,KAAK7B,MAAMqkG,WAAWxgG,EAAGo3F,EAASA,EAAS,GAAIjyF,GAAO,CAAEyG,EAAG5N,KAAKiiG,iBAAiBr0F,EAAIgiB,EAAM/hB,EAAG1G,EAAK0G,EAAIiiB,EAAKs/B,OAAQ,UAD1H,EALMpvD,KAAK7B,MAAMqkG,WAAWxgG,EAAGo3F,EAASA,EAAS,GAAIjyF,GAAO,CAAEyG,EAAGzG,EAAKyG,EAAIgiB,EAAM/hB,EAAG1G,EAAK0G,EAAIiiB,OASrG+xE,EAAI5iG,UAAUu6F,cAAgB,SAAUx3F,EAAG0gC,EAAKwhE,GAC5CliG,EAAEo+F,kBACFpgG,KAAK4rF,SAAS,CACVyW,UAAU,IAEd,IAAI/2E,EAAQtrB,KAAK7B,MAAMmtB,MACnBvjB,EAAS/H,KAAK+hG,iBACdlmE,EAAM77B,KAAK2iG,uBAGf,GAFA3iG,KAAK8hG,iBAAmB,CAAEl0F,EAAGiuB,EAAIjuB,EAAI7F,EAAO6nB,KAAM/hB,EAAGguB,EAAIhuB,EAAI9F,EAAO+nB,KACpE9vB,KAAKiiG,iBAAmBpmE,EACpB77B,KAAK7B,MAAMijC,OAAQ,CACnB,IAAI68D,EAAWj+F,KAAK6iG,YAChBG,OAAW,EAEXA,EADsB,WAAtBhjG,KAAK7B,MAAMijC,OACA68D,EAEgB,SAAtBj+F,KAAK7B,MAAMijC,OACLtG,SAASq0C,KAEO,WAAtBnvE,KAAK7B,MAAMijC,OACLptB,OAGA8mB,SAAS6zD,cAAc3uF,KAAK7B,MAAMijC,QAEjD,IAAI+iE,EAASnkG,KAAK8iG,iBAClB,GAAIqB,aAAkBxmD,UACjBqlD,aAAoBa,aAAeb,IAAahvF,SACjDiqF,aAAoB4F,YAAa,CACjC,IAAIzF,EAAKp+F,KAAKyiG,uBAAwBjxE,EAAW4sE,EAAG5sE,SAAU4L,EAAYghE,EAAGhhE,UACzEu9D,EAAa36F,KAAKo9F,gBACtB,GAAI5rE,GAAgC,kBAAbA,EACnB,GAAIA,EAAS/lB,SAAS,KAAM,CACxB,IAAIyb,EAAQhc,OAAOsmB,EAAS7K,QAAQ,IAAK,KAAO,IAChD6K,EAAWmpE,EAAW9tE,MAAQ3F,OAEzBsK,EAAS/lB,SAAS,QACvB+lB,EAAWtmB,OAAOsmB,EAAS7K,QAAQ,KAAM,MAGjD,GAAIyW,GAAkC,kBAAdA,EACpB,GAAIA,EAAU3xB,SAAS,KAAM,CACrByb,EAAQhc,OAAOkyB,EAAUzW,QAAQ,IAAK,KAAO,IACjDyW,EAAYu9D,EAAW9tE,MAAQ3F,OAE1BkW,EAAU3xB,SAAS,QACxB2xB,EAAYlyB,OAAOkyB,EAAUzW,QAAQ,KAAM,MAGnD,IAAIy9E,EAAWD,EAAOznE,wBAClB2nE,EAAWD,EAASx0E,KACpB00E,EAAUF,EAASt0E,IACnBg0E,EAAqC,WAAtB9jG,KAAK7B,MAAMijC,OAAsB,CAAExR,KAAM,EAAGE,IAAK,GAAMkzE,EAAStmE,wBAC/EqnE,EAAeD,EAAal0E,KAC5Bo0E,EAAcF,EAAah0E,IAC3BitE,EAAc/8F,KAAKijG,eAAeD,GAClC/F,EAAej9F,KAAK+iG,gBAAgBC,GACpCuB,EAAU7hE,EAAI5b,cAAcrb,SAAS,QACrC+4F,EAAW9hE,EAAI5b,cAAcrb,SAAS,SACtCg5F,EAAS/hE,EAAItW,WAAW,OACxBs4E,EAAYhiE,EAAItW,WAAW,UAC/B,IAAKm4E,GAAWE,IAAWzkG,KAAKm7F,UAAW,CACvC,IAAIxzF,GAAO08F,EAAWN,GAAgBz4E,EAAQtrB,KAAKm7F,UAAUrsF,KAAK+d,MAClE7sB,KAAK4rF,SAAS,CAAEp6D,SAAU7pB,EAAMuD,OAAOsmB,GAAYA,EAAW7pB,IAGlE,GAAI68F,GAAaxkG,KAAK7B,MAAMmgG,kBAAoBiG,IAAYE,EAAS,CAC7D98F,EAAMo1F,GAAegH,EAAeM,GAAY/4E,EACpDtrB,KAAK4rF,SAAS,CAAEp6D,SAAU7pB,EAAMuD,OAAOsmB,GAAYA,EAAW7pB,IAElE,IAAK88F,GAAUF,IAAYvkG,KAAKm7F,UAAW,CACnCxzF,GAAO28F,EAAUN,GAAe14E,EAAQtrB,KAAKm7F,UAAUrsF,KAAKmf,OAChEjuB,KAAK4rF,SAAS,CACVxuD,UAAWz1B,EAAMuD,OAAOkyB,GAAaA,EAAYz1B,IAIzD,GAAI+8F,GAAc1kG,KAAK7B,MAAMmgG,kBAAoBmG,IAAWF,EAAU,CAC9D58F,EAAMs1F,GAAgB+G,EAAcM,GAAWh5E,EACnDtrB,KAAK4rF,SAAS,CACVxuD,UAAWz1B,EAAMuD,OAAOkyB,GAAaA,EAAYz1B,WAM7D3H,KAAK4rF,SAAS,CACVp6D,SAAUxxB,KAAK7B,MAAMqzB,SACrB4L,UAAWp9B,KAAK7B,MAAMi/B,YAG1Bp9B,KAAK7B,MAAMq7F,eACXx5F,KAAK7B,MAAMq7F,cAAcx3F,EAAG0gC,EAAKwhE,IAGzCrC,EAAI5iG,UAAU6+D,SAAW,SAAU97D,EAAGu+B,EAAW2jE,EAAYzqE,GAEzD,IAAIkrE,EAAS,CAAE/2F,EAAG5N,KAAKiiG,iBAAiBr0F,EAAGC,EAAG7N,KAAKiiG,iBAAiBp0F,GAChE+hB,GAAQ6J,EAAM5M,MACdiD,GAAO2J,EAAMxL,QAEsB,IADtB,CAAC,MAAO,OAAQ,UAAW,aAAc,YAC3CjhB,QAAQuzB,KACD,eAAdA,EACAokE,EAAO/2F,GAAKgiB,GAEO,aAAd2Q,IAILokE,EAAO/2F,GAAKgiB,GAHZ+0E,EAAO92F,GAAKiiB,IAOhB60E,EAAO/2F,IAAM5N,KAAKmiG,UAAUrZ,MAAMl7E,GAAK+2F,EAAO92F,IAAM7N,KAAKmiG,UAAUrZ,MAAMj7E,GACzE7N,KAAKmiG,UAAUvW,SAAS+Y,GAE5B3kG,KAAK0iG,yBACL,IAAI36F,EAAS/H,KAAK+hG,iBACdn0F,EAAI5N,KAAK2iG,uBAAuB/0F,EAAI7F,EAAO6nB,KAC3C/hB,EAAI7N,KAAK2iG,uBAAuB90F,EAAI9F,EAAO+nB,IAC/C9vB,KAAK8hG,iBAAmB,CAAEl0F,EAAGA,EAAGC,EAAGA,GAC9B7N,KAAK7B,MAAM2/D,UAEhB99D,KAAK7B,MAAM2/D,SAAS97D,EAAGu+B,EAAW2jE,EAAYzqE,EAAO,CACjD7rB,EAAGA,EACHC,EAAGA,KAGXg0F,EAAI5iG,UAAUyhG,aAAe,SAAU1+F,EAAGu+B,EAAW2jE,EAAYzqE,GAC7Dz5B,KAAK4rF,SAAS,CACVyW,UAAU,IAEd,IAAIjE,EAAKp+F,KAAKyiG,uBAAwBjxE,EAAW4sE,EAAG5sE,SAAU4L,EAAYghE,EAAGhhE,UAC7Ep9B,KAAK4rF,SAAS,CAAEp6D,SAAUA,EAAU4L,UAAWA,IAC3Cp9B,KAAK7B,MAAMuiG,cACX1gG,KAAK7B,MAAMuiG,aAAa1+F,EAAGu+B,EAAW2jE,EAAYzqE,EAAOz5B,KAAK8hG,mBAGtED,EAAI5iG,UAAU0hG,WAAa,SAAU7xF,GAC5B9O,KAAKm7F,WAEVn7F,KAAKm7F,UAAUwF,WAAW,CAAE9zE,MAAO/d,EAAK+d,MAAOoB,OAAQnf,EAAKmf,UAEhE4zE,EAAI5iG,UAAU2lG,eAAiB,SAAUtiD,GACrCtiD,KAAKmiG,UAAUvW,SAAStpC,IAE5Bu/C,EAAI5iG,UAAUyjG,uBAAyB,WACnC,IAAIp3E,EAAQtrB,KAAK7B,MAAMmtB,MACnB4L,EAASl3B,KAAK6iG,YACd1hG,EAAOnB,KAAK8iG,iBAChB,IAAK5rE,GAAmB,OAAT/1B,EACX,MAAO,CACH2uB,IAAK,EACLF,KAAM,GAGd,IAAI8vE,EAAaxoE,EAAOwF,wBACpB0+D,EAAasE,EAAW9vE,KACxByrE,EAAYqE,EAAW5vE,IACvBs0E,EAAWjjG,EAAKu7B,wBAChB4lB,EAAWtiD,KAAK2iG,uBAChBkC,EAAa3tE,EAAO2tE,WACpBC,EAAY5tE,EAAO4tE,UACvB9kG,KAAK+hG,iBAAmB,CACpBnyE,KAAMw0E,EAASx0E,KAAOwrE,EAAayJ,EAAaviD,EAAS10C,EAAI0d,EAC7DwE,IAAKs0E,EAASt0E,IAAMurE,EAAYyJ,EAAYxiD,EAASz0C,EAAIyd,IAGjEu2E,EAAI5iG,UAAU8+D,OAAS,WACnB,IAAIqgC,EAAKp+F,KAAK7B,MAAO4mG,EAAkB3G,EAAG2G,gBAAiB36E,EAAQg0E,EAAGh0E,MAAO46E,EAAsB5G,EAAG4G,oBAAqB1iD,EAAW87C,EAAG97C,SAAUi3C,EAAc6E,EAAG7E,YAAamD,EAAY0B,EAAG1B,UAAWuH,EAAW7F,EAAG6F,SAAUgB,EAAW7G,EAAG6G,SAAU7jE,EAASg9D,EAAGh9D,OAAQ8jE,EAAuB9G,EAAG8G,qBAAsB5/D,EAAS84D,EAAG94D,OAAQ6rD,EAAWiN,EAAGjN,SAAkLgU,GAAxJ/G,EAAG5E,cAA0B4E,EAAGtgC,SAAyBsgC,EAAGsC,aAA4BtC,EAAGkE,YAAsBlE,EAAGmE,OAAqBnE,EAAGoE,WAAiCpE,EAAG+G,oBAAoBC,EAAsBhH,EAAGgH,oBAAqBC,EAAwBjH,EAAGiH,sBAAuBC,EAAiBlH,EAAGkH,eAAgBC,EAAanH,EAAGmH,WAAYC,EAA2BpH,EAAGoH,yBAA0BC,EAA2BrH,EAAGqH,yBAA0Bn6E,EAAQ8yE,EAAG9yE,MAAOo6E,EAAgBtH,EAAGsH,cAAeC,EA/X34B,SAAgB7jG,EAAGE,GACf,IAAIoU,EAAI,GACR,IAAK,IAAIpF,KAAKlP,EAAOpD,OAAOO,UAAUoE,eAAesB,KAAK7C,EAAGkP,IAAMhP,EAAEgL,QAAQgE,GAAK,IAC9EoF,EAAEpF,GAAKlP,EAAEkP,IACb,GAAS,MAALlP,GAAqD,oBAAjCpD,OAAO+wF,sBACtB,KAAIrxF,EAAI,EAAb,IAAgB4S,EAAItS,OAAO+wF,sBAAsB3tF,GAAI1D,EAAI4S,EAAE3S,OAAQD,IAC3D4D,EAAEgL,QAAQgE,EAAE5S,IAAM,GAAKM,OAAOO,UAAU2mG,qBAAqBjhG,KAAK7C,EAAGkP,EAAE5S,MACvEgY,EAAEpF,EAAE5S,IAAM0D,EAAEkP,EAAE5S,KAE1B,OAAOgY,EAsXi5ByvF,CAAOzH,EAAI,CAAC,kBAAmB,QAAS,sBAAuB,WAAY,cAAe,YAAa,WAAY,WAAY,SAAU,uBAAwB,SAAU,WAAY,gBAAiB,WAAY,eAAgB,cAAe,SAAU,aAAc,qBAAsB,sBAAuB,wBAAyB,iBAAkB,aAAc,2BAA4B,2BAA4B,QAAS,kBACl0C/yF,EAAerL,KAAK7B,MAAM2nG,QAAU1M,EAAS,GAAIp5F,KAAK7B,MAAM2nG,cAAWxkG,SAEpEqkG,EAAeG,QACtB,IAGIC,EAHAC,EAAcjB,GAAmBC,EAAsB,CAAEh5B,OAAQ,QAAW,CAAEA,OAAQ,QACtFi6B,EAAa7M,EAASA,EAASA,EAAS,GAAIwI,GAAiBoE,GAAc57E,GAC3Ei0E,EAAKr+F,KAAK+hG,iBAAkBnyE,EAAOyuE,EAAGzuE,KAAME,EAAMuuE,EAAGvuE,IAErDwyB,IACAyjD,EAAoB,CAChBn4F,EAAG00C,EAAS10C,EAAIgiB,EAChB/hB,EAAGy0C,EAASz0C,EAAIiiB,IAIxB,IAzXgCo2E,EAyX5BrqE,EAAM77B,KAAK8oF,MAAMuZ,cAAW/gG,EAAYykG,EACxCI,EAAsBnmG,KAAK8oF,MAAMuZ,SAAW,OAAS4B,EACzD,OAAQ/Z,wBAAcwX,EAAW,CAAEvF,IAAKn8F,KAAKkiG,aAAckE,OAAQpB,EAAsB,IAAI9gG,OAAO8gG,QAAuB1jG,EAAW+kG,gBAAiBh7F,EAAckuF,YAAaA,EAAamD,UAAWA,EAAW4J,QAAStmG,KAAKsiG,YAAaC,OAAQviG,KAAKuiG,OAAQgE,OAAQvmG,KAAKwiG,WAAYrtF,KAAMgxF,EAAqBv2D,SAAUm1D,EAAiBttD,KAAMwtD,EAAU7jE,OAAQA,EAASphC,KAAK8oF,MAAM1nD,YAAS9/B,EAAWghD,SAAUzmB,EAAKqpE,qBAAsBA,EAAsB5/D,OAAQA,EAAQha,MAAOA,EAAOo6E,cAAeA,EAAec,QAASxmG,KAAKgiG,kBACrhB9X,wBAAcgR,EAAW9B,EAAS,GAAIuM,EAAgB,CAAExJ,IAAKn8F,KAAKoiG,aAAcvF,YAAaxxF,EAAcyD,KAAM9O,KAAK7B,MAAM2Q,KAAM+xF,OAAkC,mBAAnByE,GA5XrHY,EA4X4KZ,EA5X5J,CACpDv1E,OAAQm2E,EACRxzE,WAAYwzE,EACZvzE,YAAauzE,EACbt2E,KAAMs2E,EACNr2E,MAAOq2E,EACPp2E,IAAKo2E,EACLzzE,QAASyzE,EACTtzE,SAAUszE,IAoXwNZ,EAAgB9L,cAAex5F,KAAKw5F,cAAe17B,SAAU99D,KAAK89D,SAAU4iC,aAAc1gG,KAAK0gG,aAAct2E,MAAO67E,EAAYlL,SAAU/6F,KAAK7B,MAAM48F,SAAUC,UAAWh7F,KAAK7B,MAAM68F,UAAWxpE,SAAUxxB,KAAK8oF,MAAMuZ,SAAWriG,KAAK8oF,MAAMt3D,SAAWxxB,KAAK7B,MAAMqzB,SAAU4L,UAAWp9B,KAAK8oF,MAAMuZ,SAAWriG,KAAK8oF,MAAM1rD,UAAYp9B,KAAK7B,MAAMi/B,UAAWqa,KAAM8tD,EAAYtE,mBAAoBuE,EAA0BxE,mBAAoByE,EAA0BnH,gBAAiBt+F,KAAK7B,MAAMmgG,gBAAiBE,0BAA2Bx+F,KAAK7B,MAAMqgG,0BAA2BD,2BAA4Bv+F,KAAK7B,MAAMogG,2BAA4BuC,aAAcqE,EAAoBpE,cAAeqE,EAAqBlE,gBAAiBmE,EAAuB/5E,MAAOtrB,KAAK7B,MAAMmtB,QAAU6lE,KAEp+B0Q,EAAIJ,aAAe,CACfjwE,SAAUtmB,OAAO0tE,iBACjBx7C,UAAWlyB,OAAO0tE,iBAClBttD,MAAO,EACPkuE,cAAe,aACf17B,SAAU,aACV4iC,aAAc,aACd4B,YAAa,aACbC,OAAQ,aACRC,WAAY,cAETX,EA/Xc,CAgYvB4E,kB,6BC3ca,SAASC,EAAQhkG,GAa9B,OATEgkG,EADoB,oBAAXjlG,QAAoD,kBAApBA,OAAOC,SACtC,SAAiBgB,GACzB,cAAcA,GAGN,SAAiBA,GACzB,OAAOA,GAAyB,oBAAXjB,QAAyBiB,EAAIjD,cAAgBgC,QAAUiB,IAAQjB,OAAOxC,UAAY,gBAAkByD,IAI9GA,G,8CCXF,SAASikG,EAA2BxlG,EAAMwD,GACvD,OAAIA,GAA2B,WAAlB+hG,EAAQ/hG,IAAsC,oBAATA,EAI3C,OAAAiiG,EAAA,GAAsBzlG,GAHpBwD,I,8BCHI,SAASkiG,EAAyBl6F,EAAQ8mF,GACvD,GAAc,MAAV9mF,EAAgB,MAAO,GAC3B,IACI/N,EAAKR,EADLF,ECHS,SAAuCyO,EAAQ8mF,GAC5D,GAAc,MAAV9mF,EAAgB,MAAO,GAC3B,IAEI/N,EAAKR,EAFLF,EAAS,GACTw1F,EAAah1F,OAAOuN,KAAKU,GAG7B,IAAKvO,EAAI,EAAGA,EAAIs1F,EAAWr1F,OAAQD,IACjCQ,EAAM80F,EAAWt1F,GACbq1F,EAASzmF,QAAQpO,IAAQ,IAC7BV,EAAOU,GAAO+N,EAAO/N,IAGvB,OAAOV,EDTM,CAA6ByO,EAAQ8mF,GAGlD,GAAI/0F,OAAO+wF,sBAAuB,CAChC,IAAIqX,EAAmBpoG,OAAO+wF,sBAAsB9iF,GAEpD,IAAKvO,EAAI,EAAGA,EAAI0oG,EAAiBzoG,OAAQD,IACvCQ,EAAMkoG,EAAiB1oG,GACnBq1F,EAASzmF,QAAQpO,IAAQ,GACxBF,OAAOO,UAAU2mG,qBAAqBjhG,KAAKgI,EAAQ/N,KACxDV,EAAOU,GAAO+N,EAAO/N,IAIzB,OAAOV,E,mJEHO6oG,EAAgB5K,EAAsBz8F,GACjC,oBAARy8F,EACTA,EAAIz8F,GACKy8F,IACTA,EAAI5jE,QAAU74B,G,SAYFsnG,EAKdC,EACAC,GAEAD,EAAY14D,OAAS24D,E,SAGPC,EAKdF,EACAG,G,IACAC,EAAe,UAAH,6CApCc,QAsCpBC,EAA8C,GAEpDL,EAAYv9E,SAAW09E,EAAax6F,KAAG,SACpC26F,GAEC,IAAMC,EAAiBP,EAAYv9E,SAAS+9E,MAAI,SAC7Cp7D,GAD6C,OAE5CA,EAAQg7D,KAAkBE,EAAYF,MAI1C,OACGG,GACAD,EAAYpgG,OACbmgG,EAAcryE,SAASuyE,IAKzBF,EAAcjiG,KAAKmiG,GAEnB9oG,OAAOwX,OAAOsxF,EAAgBD,GAEvBC,GAPL,eAAYD,M,SAYJG,EAIdvgG,G,IAAuCkgG,EAAe,UAAH,6CAtEzB,QAuEpBM,EAA4C,CAChDp5D,OAAQ,GACR7kB,SAAU,IAMZ,OAHAs9E,EAAUW,EAAUxgG,EAAKonC,QACzB44D,EAAYQ,EAAUxgG,EAAKuiB,SAAU29E,GAE9BM,E,SC9EAC,EAKP,EAaAzL,GACA,MAdA,EACEluE,cAaF,MAbW,IAaX,IAdA,EAEEpB,aAYF,MAZU,IAYV,IAdA,EAGEg7E,cAWF,SAVER,EAJF,EAIEA,aACAt8F,EALF,EAKEA,KACA5D,EANF,EAMEA,KACA+F,EAPF,EAOEA,QAOF,EAdA,EAQEke,eAMF,MANY,GAMZ,EALE08E,EATF,EASEA,gBACAC,EAVF,EAUEA,WACG5pG,EAGL,EAdA,EAcA,6GAGM6pG,EAAYC,iBAA0B,MACtCC,EAAWD,mBAEXE,EAAc,WACbH,EAAUzvE,UAEf2vE,EAAS3vE,QAAU,IAAI6vE,IAAQJ,EAAUzvE,QAAS,CAChDxtB,OACA5D,KAAMugG,EAAUvgG,EAAMkgG,GACtBn6F,QAASA,GAAW,eAAKA,GACzBke,YAGF27E,EAAa5K,EAAK+L,EAAS3vE,WAGvB8vE,EAAe,WACnBtB,EAAa5K,EAAK,MAEd+L,EAAS3vE,UACX2vE,EAAS3vE,QAAQ+vE,UACjBJ,EAAS3vE,QAAU,OA8CvB,OA1CAgwE,qBAAU,YACHV,GAAUK,EAAS3vE,SAAWrrB,G,SDnCrC2c,EAAoC2+E,GACpC9pG,OAAOwX,OAAO2T,EAAM3c,QAASs7F,GCmCzBC,CAAWP,EAAS3vE,QAASrrB,KAE9B,CAAC26F,EAAQ36F,IAEZq7F,qBAAU,YACHV,GAAUK,EAAS3vE,SACtByuE,EAAUkB,EAAS3vE,QAAQqP,OAAOzgC,KAAMA,EAAKonC,UAE9C,CAACs5D,EAAQ1gG,EAAKonC,SAEjBg6D,qBAAU,YACHV,GAAUK,EAAS3vE,SAAWpxB,EAAKuiB,UACtCy9E,EAAYe,EAAS3vE,QAAQqP,OAAOzgC,KAAMA,EAAKuiB,SAAU29E,KAE1D,CAACQ,EAAQ1gG,EAAKuiB,WAEjB6+E,qBAAU,WACHL,EAAS3vE,UAEVsvE,GACFQ,IACAjrC,WAAW+qC,IAEXD,EAAS3vE,QAAQhwB,OAAOw/F,MAEzB,CAACF,EAAQ36F,EAAS/F,EAAKonC,OAAQpnC,EAAKuiB,SAAUq+E,IAEjDQ,qBAAU,WACHL,EAAS3vE,UAEd8vE,IACAjrC,WAAW+qC,MACV,CAACp9F,IAEJw9F,qBAAU,WAGR,OAFAJ,IAEA,kBAAaE,OACZ,IAEH,kBACGx6E,wBAAOsuE,IAAK6L,EAAWU,KAAK,MAAMz6E,OAAQA,EAAQpB,MAAOA,GAAW1uB,GAClE2pG,GAKK,IAAChsC,EAAQ6sC,qBAAWf,G,SCxFvBgB,EACP79F,EACA89F,GAIA,OAFAT,IAAQ97C,SAASu8C,GAEVF,sBAAU,SACdxqG,EAAOg+F,GADO,OACJ,kBAAMrgC,EAAK,iBAAK39D,EAAK,CAAEg+F,IAAKA,EAAKpxF,KAAMA,QAI1C,IAAC+9F,EAAuBF,EAAiB,OAAQptD,KAEhDutD,EAAsBH,EAAiB,MAAOp0D,KAmB9Cw0D,GAjBkDzrD,IAI7DxF,IAKAqE,IAKAxE,IAGiCgxD,EAAiB,MAAOtrD,MAIzDqQ,K,kBCzDA,SAAUzkC,EAAMjgB,GAaV,IAAUtG,EAVhB7E,EAAOC,SAUS4E,EAVmB3E,EAAQ,IAY3C,WAEG,IAAI8E,EAAIH,EACJI,EAAQD,EAAEE,IACVY,EAAYb,EAAMa,UAClBwE,EAASrF,EAAMqF,OACfD,EAASrF,EAAEkG,KAGX+S,EAAI,GAKJktF,EAAO9gG,EAAO8gG,KAAO7gG,EAAOlF,OAAO,CACnCoF,SAAU,WACNtI,KAAKu1F,MAAQ,IAAI3xF,EAAUN,KAAK,CAC5B,WAAY,WACZ,WAAY,UACZ,cAIR0E,gBAAiB,SAAUyU,EAAG1U,GAY1B,IAVA,IAAI8U,EAAI7c,KAAKu1F,MAAM1xF,MAGf+K,EAAIiO,EAAE,GACNhO,EAAIgO,EAAE,GACN5C,EAAI4C,EAAE,GACNpE,EAAIoE,EAAE,GACN7a,EAAI6a,EAAE,GAGDze,EAAI,EAAGA,EAAI,GAAIA,IAAK,CACzB,GAAIA,EAAI,GACJ2d,EAAE3d,GAAqB,EAAhBqe,EAAE1U,EAAS3J,OACf,CACH,IAAI2D,EAAIga,EAAE3d,EAAI,GAAK2d,EAAE3d,EAAI,GAAK2d,EAAE3d,EAAI,IAAM2d,EAAE3d,EAAI,IAChD2d,EAAE3d,GAAM2D,GAAK,EAAMA,IAAM,GAG7B,IAAIqU,GAAMxH,GAAK,EAAMA,IAAM,IAAO5M,EAAI+Z,EAAE3d,GAEpCgY,GADAhY,EAAI,GACwB,YAArByQ,EAAIoL,GAAOpL,EAAI4J,GACfra,EAAI,GACQ,YAAbyQ,EAAIoL,EAAIxB,GACPra,EAAI,IACJyQ,EAAIoL,EAAMpL,EAAI4J,EAAMwB,EAAIxB,GAAM,YAE/B5J,EAAIoL,EAAIxB,GAAK,UAGvBzW,EAAIyW,EACJA,EAAIwB,EACJA,EAAKpL,GAAK,GAAOA,IAAM,EACvBA,EAAID,EACJA,EAAIwH,EAIRyG,EAAE,GAAMA,EAAE,GAAKjO,EAAK,EACpBiO,EAAE,GAAMA,EAAE,GAAKhO,EAAK,EACpBgO,EAAE,GAAMA,EAAE,GAAK5C,EAAK,EACpB4C,EAAE,GAAMA,EAAE,GAAKpE,EAAK,EACpBoE,EAAE,GAAMA,EAAE,GAAK7a,EAAK,GAGxB0G,YAAa,WAET,IAAIvB,EAAOnH,KAAKgH,MACZM,EAAYH,EAAKtD,MAEjBizF,EAAgC,EAAnB92F,KAAKiH,YAClB8vF,EAA4B,EAAhB5vF,EAAKrD,SAYrB,OATAwD,EAAUyvF,IAAc,IAAM,KAAS,GAAKA,EAAY,GACxDzvF,EAA4C,IAA/ByvF,EAAY,KAAQ,GAAM,IAAWn0F,KAAKuN,MAAM2mF,EAAa,YAC1ExvF,EAA4C,IAA/ByvF,EAAY,KAAQ,GAAM,IAAWD,EAClD3vF,EAAKrD,SAA8B,EAAnBwD,EAAUjJ,OAG1B2B,KAAKoH,WAGEpH,KAAKu1F,OAGhB5xF,MAAO,WACH,IAAIA,EAAQyE,EAAOzE,MAAMgB,KAAK3E,MAG9B,OAFA2D,EAAM4xF,MAAQv1F,KAAKu1F,MAAM5xF,QAElBA,KAkBfb,EAAEmmG,KAAO7gG,EAAOO,cAAcsgG,GAgB9BnmG,EAAEomG,SAAW9gG,EAAOU,kBAAkBmgG,GAhIzC,GAoIMtmG,EAASsmG,MAnJf,I,iBCAA,SAAU//E,EAAMjgB,GAaV,IAAUtG,EAVhB7E,EAAOC,SAUS4E,EAVmB3E,EAAQ,SAY3C,WAEG,IAAI8E,EAAIH,EAEJM,EADQH,EAAEE,IACGC,KAEbsD,EADQzD,EAAEyC,IACGgB,KACJzD,EAAEkG,KAKGD,KAAO9F,EAAKC,OAAO,CAWjCI,KAAM,SAAUsF,EAAQhK,GAEpBgK,EAAS5I,KAAKmpG,QAAU,IAAIvgG,EAAOtF,KAGjB,iBAAP1E,IACPA,EAAM2H,EAAKZ,MAAM/G,IAIrB,IAAIwqG,EAAkBxgG,EAAOpB,UACzB6hG,EAAyC,EAAlBD,EAGvBxqG,EAAIkF,SAAWulG,IACfzqG,EAAMgK,EAAOH,SAAS7J,IAI1BA,EAAI4F,QAWJ,IARA,IAAI8kG,EAAOtpG,KAAKupG,MAAQ3qG,EAAI+E,QACxB6lG,EAAOxpG,KAAKypG,MAAQ7qG,EAAI+E,QAGxB+lG,EAAYJ,EAAKzlG,MACjB8lG,EAAYH,EAAK3lG,MAGZzF,EAAI,EAAGA,EAAIgrG,EAAiBhrG,IACjCsrG,EAAUtrG,IAAM,WAChBurG,EAAUvrG,IAAM,UAEpBkrG,EAAKxlG,SAAW0lG,EAAK1lG,SAAWulG,EAGhCrpG,KAAK+G,SAUTA,MAAO,WAEH,IAAI6B,EAAS5I,KAAKmpG,QAGlBvgG,EAAO7B,QACP6B,EAAOL,OAAOvI,KAAKypG,QAevBlhG,OAAQ,SAAUC,GAId,OAHAxI,KAAKmpG,QAAQ5gG,OAAOC,GAGbxI,MAiBXyI,SAAU,SAAUD,GAEhB,IAAII,EAAS5I,KAAKmpG,QAGdS,EAAYhhG,EAAOH,SAASD,GAIhC,OAHAI,EAAO7B,QACI6B,EAAOH,SAASzI,KAAKupG,MAAM5lG,QAAQO,OAAO0lG,OAvHhE,IAfA,I,6BCEF,SAASlD,EAAQhkG,GAAkC,OAAOgkG,EAAU,mBAAqBjlG,QAAU,iBAAmBA,OAAOC,SAAW,SAAUgB,GAAO,cAAcA,GAAS,SAAUA,GAAO,OAAOA,GAAO,mBAAqBjB,QAAUiB,EAAIjD,cAAgBgC,QAAUiB,IAAQjB,OAAOxC,UAAY,gBAAkByD,IAAgBA,GAEzUhE,OAAOC,eAAeZ,EAAS,aAAc,CAC3C2B,OAAO,IAET3B,EAAQ8rG,aAAeA,EACvB9rG,EAAQ+rG,SA4ER,SAAkBrrE,EAEhBsG,EAEA6pB,EAEAm7C,GAKA,IAAKtrE,EAAI,OAET,IAAIvxB,EAAU88F,EAAc,CAC1BzM,SAAS,GACRwM,GAGCtrE,EAAGH,iBACLG,EAAGH,iBAAiByG,EAAO6pB,EAAS1hD,GAC3BuxB,EAAGwrE,YACZxrE,EAAGwrE,YAAY,KAAOllE,EAAO6pB,GAG7BnwB,EAAG,KAAOsG,GAAS6pB,GAnGvB7wD,EAAQmsG,oBAuRR,SAA6BC,GAG3B,IAAKA,EAAK,OACV,IAAIC,EAAUD,EAAI1uC,eAAe,4BAE5B2uC,KACHA,EAAUD,EAAIjgB,cAAc,UACpBn/E,KAAO,WACfq/F,EAAQv/F,GAAK,2BACbu/F,EAAQC,UAAY,6EACpBD,EAAQC,WAAa,wEACrBF,EAAIG,qBAAqB,QAAQ,GAAGtO,YAAYoO,IAG9CD,EAAIh7B,MAAM06B,EAAaM,EAAIh7B,KAAM,0CArSvCpxE,EAAQwsG,mBAiNR,SAA4BC,EAE1BC,GAKA,IAAI94E,EAAc+4E,EAAeF,EAAYC,EAAgB,MAC7D,OAAOhoG,EAAgB,IAAI,EAAIkoG,EAAWC,oBAAoB,YAAaD,EAAW7E,SAAUn0E,IAxNlG5zB,EAAQ8sG,mBA2NR,SAA4BL,EAE1BC,GAMA,OADkBC,EAAeF,EAAYC,EAAgB,KAjO/D1sG,EAAQ+sG,SAyPR,SAAkB9oG,EAEhB+oG,GAKA,OAAO/oG,EAAEgpG,gBAAiB,EAAIC,EAAOtS,aAAa32F,EAAEgpG,eAAe,SAAU50F,GAC3E,OAAO20F,IAAe30F,EAAE20F,eACpB/oG,EAAEkpG,iBAAkB,EAAID,EAAOtS,aAAa32F,EAAEkpG,gBAAgB,SAAU90F,GAC5E,OAAO20F,IAAe30F,EAAE20F,eAlQ5BhtG,EAAQotG,mBAsQR,SAA4BnpG,GAK1B,GAAIA,EAAEgpG,eAAiBhpG,EAAEgpG,cAAc,GAAI,OAAOhpG,EAAEgpG,cAAc,GAAGD,WACrE,GAAI/oG,EAAEkpG,gBAAkBlpG,EAAEkpG,eAAe,GAAI,OAAOlpG,EAAEkpG,eAAe,GAAGH,YA3Q1EhtG,EAAQ2sG,eAAiBA,EACzB3sG,EAAQ88F,YAyJR,SAAqB5xE,GAKnB,IAAIgF,EAAShF,EAAK0U,aACd6/D,EAAgBv0E,EAAK0zE,cAAcC,YAAYrhE,iBAAiBtS,GAGpE,OAFAgF,IAAU,EAAIg9E,EAAOrS,KAAK4E,EAAc96C,YACxCz0B,IAAU,EAAIg9E,EAAOrS,KAAK4E,EAAc76C,gBAhK1C5kD,EAAQ68F,WAoKR,SAAoB3xE,GAKlB,IAAI4D,EAAQ5D,EAAKyU,YACb8/D,EAAgBv0E,EAAK0zE,cAAcC,YAAYrhE,iBAAiBtS,GAGpE,OAFA4D,IAAS,EAAIo+E,EAAOrS,KAAK4E,EAAc56C,aACvC/1B,IAAS,EAAIo+E,EAAOrS,KAAK4E,EAAc36C,eA3KzC9kD,EAAQqtG,gBAAkBA,EAC1BrtG,EAAQstG,4BA8CR,SAAqC5sE,EAEnC6sE,EAEAC,GAKA,IAAItiF,EAAOwV,EAEX,EAAG,CACD,GAAI2sE,EAAgBniF,EAAMqiF,GAAW,OAAO,EAC5C,GAAIriF,IAASsiF,EAAU,OAAO,EAC9BtiF,EAAOA,EAAKgS,iBACLhS,GAET,OAAO,GA9DTlrB,EAAQytG,mBAkLR,SAA4BzvE,EAE1B0vE,EAEAngF,GAKA,IACIogF,EADSD,IAAiBA,EAAa9O,cAAcxtB,KACzB,CAC9Bv/C,KAAM,EACNE,IAAK,GACH27E,EAAa/uE,wBACb9uB,GAAKmuB,EAAIY,QAAU8uE,EAAa5G,WAAa6G,EAAiB97E,MAAQtE,EACtEzd,GAAKkuB,EAAIa,QAAU6uE,EAAa3G,UAAY4G,EAAiB57E,KAAOxE,EACxE,MAAO,CACL1d,EAAGA,EACHC,EAAGA,IAnMP9P,EAAQ2zD,YAwHR,SAAqBzoC,GAOnB,IAAIgF,EAAShF,EAAK0U,aACd6/D,EAAgBv0E,EAAK0zE,cAAcC,YAAYrhE,iBAAiBtS,GAGpE,OAFAgF,IAAU,EAAIg9E,EAAOrS,KAAK4E,EAAcmO,gBACxC19E,IAAU,EAAIg9E,EAAOrS,KAAK4E,EAAcoO,oBAjI1C7tG,EAAQyzD,WAqIR,SAAoBvoC,GAOlB,IAAI4D,EAAQ5D,EAAKyU,YACb8/D,EAAgBv0E,EAAK0zE,cAAcC,YAAYrhE,iBAAiBtS,GAGpE,OAFA4D,IAAS,EAAIo+E,EAAOrS,KAAK4E,EAAcqO,iBACvCh/E,IAAS,EAAIo+E,EAAOrS,KAAK4E,EAAcsO,mBA9IzC/tG,EAAQguG,gBAAkBA,EAC1BhuG,EAAQiuG,YAyFR,SAAqBvtE,EAEnBsG,EAEA6pB,EAEAm7C,GAKA,IAAKtrE,EAAI,OAET,IAAIvxB,EAAU88F,EAAc,CAC1BzM,SAAS,GACRwM,GAGCtrE,EAAGF,oBACLE,EAAGF,oBAAoBwG,EAAO6pB,EAAS1hD,GAC9BuxB,EAAGwtE,YACZxtE,EAAGwtE,YAAY,KAAOlnE,EAAO6pB,GAG7BnwB,EAAG,KAAOsG,GAAS,MAhHvBhnC,EAAQmuG,uBA0RR,SAAgC/B,GAG9B,IAAKA,EAAK,OAEV,IAGE,GAFIA,EAAIh7B,MAAM48B,EAAgB5B,EAAIh7B,KAAM,yCAEpCg7B,EAAIgC,UAENhC,EAAIgC,UAAUC,YACT,CAGL,IAAID,GAAahC,EAAIvN,aAAe5oF,QAAQq4F,eAExCF,GAAgC,UAAnBA,EAAUphG,MACzBohG,EAAUG,mBAGd,MAAOtqG,MA5SX,IAAIipG,EAASjtG,EAAQ,IAEjB2sG,EAIJ,SAAiCjoG,EAAK6pG,GAAe,IAAKA,GAAe7pG,GAAOA,EAAI8pG,WAAc,OAAO9pG,EAAO,GAAY,OAARA,GAAiC,WAAjBgkG,EAAQhkG,IAAoC,oBAARA,EAAsB,MAAO,CAAEojG,QAASpjG,GAAS,IAAIsqB,EAAQy/E,EAAyBF,GAAc,GAAIv/E,GAASA,EAAMhe,IAAItM,GAAQ,OAAOsqB,EAAM1iB,IAAI5H,GAAQ,IAAIgqG,EAAS,GAAQC,EAAwBjuG,OAAOC,gBAAkBD,OAAOgM,yBAA0B,IAAK,IAAI9L,KAAO8D,EAAO,GAAY,YAAR9D,GAAqBF,OAAOO,UAAUoE,eAAesB,KAAKjC,EAAK9D,GAAM,CAAE,IAAI6L,EAAOkiG,EAAwBjuG,OAAOgM,yBAAyBhI,EAAK9D,GAAO,KAAU6L,IAASA,EAAKH,KAAOG,EAAKmJ,KAAQlV,OAAOC,eAAe+tG,EAAQ9tG,EAAK6L,GAAgBiiG,EAAO9tG,GAAO8D,EAAI9D,GAAY8tG,EAAO5G,QAAUpjG,EAASsqB,GAASA,EAAMpZ,IAAIlR,EAAKgqG,GAAW,OAAOA,EAJ5wBE,CAAwB5uG,EAAQ,MAEjD,SAASyuG,EAAyBF,GAAe,GAAuB,oBAAZj+B,QAAwB,OAAO,KAAM,IAAIu+B,EAAoB,IAAIv+B,QAAew+B,EAAmB,IAAIx+B,QAAW,OAAQm+B,EAA2B,SAAkCF,GAAe,OAAOA,EAAcO,EAAmBD,IAAsBN,GAIhU,SAASr3E,EAAQ1qB,EAAQglF,GAAkB,IAAIvjF,EAAOvN,OAAOuN,KAAKzB,GAAS,GAAI9L,OAAO+wF,sBAAuB,CAAE,IAAIC,EAAUhxF,OAAO+wF,sBAAsBjlF,GAASglF,IAAmBE,EAAUA,EAAQp5D,QAAO,SAAUq5D,GAAO,OAAOjxF,OAAOgM,yBAAyBF,EAAQmlF,GAAKpxF,eAAiB0N,EAAK5G,KAAKjF,MAAM6L,EAAMyjF,GAAY,OAAOzjF,EAE9U,SAAS+9F,EAAc9rG,GAAU,IAAK,IAAIE,EAAI,EAAGA,EAAI+B,UAAU9B,OAAQD,IAAK,CAAE,IAAIuO,EAAS,MAAQxM,UAAU/B,GAAK+B,UAAU/B,GAAK,GAAIA,EAAI,EAAI82B,EAAQx2B,OAAOiO,IAAS,GAAI8G,SAAQ,SAAU7U,GAAO6D,EAAgBvE,EAAQU,EAAK+N,EAAO/N,OAAYF,OAAOmxF,0BAA4BnxF,OAAOutB,iBAAiB/tB,EAAQQ,OAAOmxF,0BAA0BljF,IAAWuoB,EAAQx2B,OAAOiO,IAAS8G,SAAQ,SAAU7U,GAAOF,OAAOC,eAAeT,EAAQU,EAAKF,OAAOgM,yBAAyBiC,EAAQ/N,OAAa,OAAOV,EAEjf,SAASuE,EAAgBC,EAAK9D,EAAKc,GAAiK,OAApJd,KAAO8D,EAAOhE,OAAOC,eAAe+D,EAAK9D,EAAK,CAAEc,MAAOA,EAAOnB,YAAY,EAAMC,cAAc,EAAMC,UAAU,IAAkBiE,EAAI9D,GAAOc,EAAgBgD,EAE3M,IAAIqqG,EAAsB,GAE1B,SAAS3B,EAAgB3sE,EAEvB6sE,GAcA,OATKyB,IACHA,GAAsB,EAAI9B,EAAOtS,aAAa,CAAC,UAAW,wBAAyB,qBAAsB,oBAAqB,qBAAqB,SAAU1xD,GAE3J,OAAO,EAAIgkE,EAAOv8F,YAAY+vB,EAAGwI,WAMhC,EAAIgkE,EAAOv8F,YAAY+vB,EAAGsuE,KAExBtuE,EAAGsuE,GAAqBzB,GAqLjC,SAASZ,EAAesC,EAAOvC,EAE7BwC,GAKA,IAAIr/F,EAAIo/F,EAAMp/F,EACVC,EAAIm/F,EAAMn/F,EACV8jB,EAAc,aAAaztB,OAAO0J,GAAG1J,OAAO+oG,EAAY,KAAK/oG,OAAO2J,GAAG3J,OAAO+oG,EAAY,KAE9F,GAAIxC,EAAgB,CAClB,IAAIyC,EAAW,GAAGhpG,OAAmC,kBAArBumG,EAAe78F,EAAiB68F,EAAe78F,EAAI68F,EAAe78F,EAAIq/F,GAClGE,EAAW,GAAGjpG,OAAmC,kBAArBumG,EAAe58F,EAAiB48F,EAAe58F,EAAI48F,EAAe58F,EAAIo/F,GACtGt7E,EAAc,aAAaztB,OAAOgpG,EAAU,MAAMhpG,OAAOipG,EAAU,KAAOx7E,EAG5E,OAAOA,EAwET,SAASk4E,EAAaprE,EAEpBi7D,GAGIj7D,EAAGs9D,UACLt9D,EAAGs9D,UAAUjoF,IAAI4lF,GAEZj7D,EAAGi7D,UAAUxmE,MAAM,IAAIJ,OAAO,YAAY5uB,OAAOw1F,EAAW,eAC/Dj7D,EAAGi7D,WAAa,IAAIx1F,OAAOw1F,IAKjC,SAASqS,EAAgBttE,EAEvBi7D,GAGIj7D,EAAGs9D,UACLt9D,EAAGs9D,UAAU76B,OAAOw4B,GAEpBj7D,EAAGi7D,UAAYj7D,EAAGi7D,UAAU/yE,QAAQ,IAAImM,OAAO,YAAY5uB,OAAOw1F,EAAW,WAAY,KAAM,M,6BC9VnG,SAASgN,EAAQhkG,GAAmV,OAAtOgkG,EAArD,oBAAXjlG,QAAoD,kBAApBA,OAAOC,SAAmC,SAAiBgB,GAAO,cAAcA,GAA2B,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXjB,QAAyBiB,EAAIjD,cAAgBgC,QAAUiB,IAAQjB,OAAOxC,UAAY,gBAAkByD,IAAyBA,GAEnXhE,OAAOC,eAAeZ,EAAS,aAAc,CAC3C2B,OAAO,IAET3B,EAAQqtG,gBAAkBA,EAC1BrtG,EAAQstG,4BAwDR,SAAqC5sE,EAEnC6sE,EAEAC,GAKA,IAAItiF,EAAOwV,EAEX,EAAG,CACD,GAAI2sE,EAAgBniF,EAAMqiF,GAAW,OAAO,EAC5C,GAAIriF,IAASsiF,EAAU,OAAO,EAC9BtiF,EAAOA,EAAKgS,iBACLhS,GAET,OAAO,GAxETlrB,EAAQ+rG,SA2ER,SAAkBrrE,EAEhBsG,EAEA6pB,EAEAm7C,GAKA,IAAKtrE,EAAI,OAET,IAAIvxB,EAAU88F,EAAc,CAC1BzM,SAAS,GACRwM,GAGCtrE,EAAGH,iBACLG,EAAGH,iBAAiByG,EAAO6pB,EAAS1hD,GAC3BuxB,EAAGwrE,YACZxrE,EAAGwrE,YAAY,KAAOllE,EAAO6pB,GAG7BnwB,EAAG,KAAOsG,GAAS6pB,GAlGvB7wD,EAAQiuG,YAsGR,SAAqBvtE,EAEnBsG,EAEA6pB,EAEAm7C,GAKA,IAAKtrE,EAAI,OAET,IAAIvxB,EAAU88F,EAAc,CAC1BzM,SAAS,GACRwM,GAGCtrE,EAAGF,oBACLE,EAAGF,oBAAoBwG,EAAO6pB,EAAS1hD,GAC9BuxB,EAAGwtE,YACZxtE,EAAGwtE,YAAY,KAAOlnE,EAAO6pB,GAG7BnwB,EAAG,KAAOsG,GAAS,MA7HvBhnC,EAAQ2zD,YAiIR,SAAqBzoC,GAOnB,IAAIgF,EAAShF,EAAK0U,aACd6/D,EAAgBv0E,EAAK0zE,cAAcC,YAAYrhE,iBAAiBtS,GAGpE,OAFAgF,IAAU,EAAIg9E,EAAOrS,KAAK4E,EAAcmO,gBACxC19E,IAAU,EAAIg9E,EAAOrS,KAAK4E,EAAcoO,oBA1I1C7tG,EAAQyzD,WA8IR,SAAoBvoC,GAOlB,IAAI4D,EAAQ5D,EAAKyU,YACb8/D,EAAgBv0E,EAAK0zE,cAAcC,YAAYrhE,iBAAiBtS,GAGpE,OAFA4D,IAAS,EAAIo+E,EAAOrS,KAAK4E,EAAcqO,iBACvCh/E,IAAS,EAAIo+E,EAAOrS,KAAK4E,EAAcsO,mBAvJzC/tG,EAAQ88F,YA2JR,SAAqB5xE,GAKnB,IAAIgF,EAAShF,EAAK0U,aACd6/D,EAAgBv0E,EAAK0zE,cAAcC,YAAYrhE,iBAAiBtS,GAGpE,OAFAgF,IAAU,EAAIg9E,EAAOrS,KAAK4E,EAAc96C,YACxCz0B,IAAU,EAAIg9E,EAAOrS,KAAK4E,EAAc76C,gBAlK1C5kD,EAAQ68F,WAsKR,SAAoB3xE,GAKlB,IAAI4D,EAAQ5D,EAAKyU,YACb8/D,EAAgBv0E,EAAK0zE,cAAcC,YAAYrhE,iBAAiBtS,GAGpE,OAFA4D,IAAS,EAAIo+E,EAAOrS,KAAK4E,EAAc56C,aACvC/1B,IAAS,EAAIo+E,EAAOrS,KAAK4E,EAAc36C,eA7KzC9kD,EAAQytG,mBAsLR,SAA4BzvE,EAE1B0vE,EAEAngF,GAKA,IACIogF,EADSD,IAAiBA,EAAa9O,cAAcxtB,KACzB,CAC9Bv/C,KAAM,EACNE,IAAK,GACH27E,EAAa/uE,wBACb9uB,GAAKmuB,EAAIY,QAAU8uE,EAAa5G,WAAa6G,EAAiB97E,MAAQtE,EACtEzd,GAAKkuB,EAAIa,QAAU6uE,EAAa3G,UAAY4G,EAAiB57E,KAAOxE,EACxE,MAAO,CACL1d,EAAGA,EACHC,EAAGA,IAvMP9P,EAAQwsG,mBA2MR,SAA4BC,EAE1BC,GAKA,IAAI94E,EAAc+4E,EAAeF,EAAYC,EAAgB,MAC7D,OAAOhoG,EAAgB,IAAI,EAAIkoG,EAAWC,oBAAoB,YAAaD,EAAW7E,SAAUn0E,IAlNlG5zB,EAAQ8sG,mBAqNR,SAA4BL,EAE1BC,GAMA,OADkBC,EAAeF,EAAYC,EAAgB,KA3N/D1sG,EAAQ2sG,eAAiBA,EACzB3sG,EAAQ+sG,SAkPR,SAAkB9oG,EAEhB+oG,GAKA,OAAO/oG,EAAEgpG,gBAAiB,EAAIC,EAAOtS,aAAa32F,EAAEgpG,eAAe,SAAU50F,GAC3E,OAAO20F,IAAe30F,EAAE20F,eACpB/oG,EAAEkpG,iBAAkB,EAAID,EAAOtS,aAAa32F,EAAEkpG,gBAAgB,SAAU90F,GAC5E,OAAO20F,IAAe30F,EAAE20F,eA3P5BhtG,EAAQotG,mBA+PR,SAA4BnpG,GAK1B,GAAIA,EAAEgpG,eAAiBhpG,EAAEgpG,cAAc,GAAI,OAAOhpG,EAAEgpG,cAAc,GAAGD,WACrE,GAAI/oG,EAAEkpG,gBAAkBlpG,EAAEkpG,eAAe,GAAI,OAAOlpG,EAAEkpG,eAAe,GAAGH,YApQ1EhtG,EAAQmsG,oBA2QR,SAA6BC,GAG3B,IAAKA,EAAK,OACV,IAAIC,EAAUD,EAAI1uC,eAAe,4BAE5B2uC,KACHA,EAAUD,EAAIjgB,cAAc,UACpBn/E,KAAO,WACfq/F,EAAQv/F,GAAK,2BACbu/F,EAAQC,UAAY,6EACpBD,EAAQC,WAAa,wEACrBF,EAAIG,qBAAqB,QAAQ,GAAGtO,YAAYoO,IAG9CD,EAAIh7B,MAAM06B,EAAaM,EAAIh7B,KAAM,0CAzRvCpxE,EAAQmuG,uBA4RR,SAAgC/B,GAG9B,IAAKA,EAAK,OAEV,IAGE,GAFIA,EAAIh7B,MAAM48B,EAAgB5B,EAAIh7B,KAAM,yCAEpCg7B,EAAIgC,UAENhC,EAAIgC,UAAUC,YACT,CAGL,IAAID,GAAahC,EAAIvN,aAAe5oF,QAAQq4F,eAExCF,GAAgC,UAAnBA,EAAUphG,MACzBohG,EAAUG,mBAGd,MAAOtqG,MA/SXjE,EAAQ8rG,aAAeA,EACvB9rG,EAAQguG,gBAAkBA,EAE1B,IAAId,EAASjtG,EAAQ,IAEjB2sG,EAIJ,SAAiCjoG,EAAK6pG,GAAe,IAAKA,GAAe7pG,GAAOA,EAAI8pG,WAAc,OAAO9pG,EAAO,GAAY,OAARA,GAAiC,WAAjBgkG,EAAQhkG,IAAoC,oBAARA,EAAsB,MAAO,CAAEojG,QAASpjG,GAAS,IAAIsqB,EAAQy/E,EAAyBF,GAAc,GAAIv/E,GAASA,EAAMhe,IAAItM,GAAQ,OAAOsqB,EAAM1iB,IAAI5H,GAAQ,IAAIgqG,EAAS,GAAQC,EAAwBjuG,OAAOC,gBAAkBD,OAAOgM,yBAA0B,IAAK,IAAI9L,KAAO8D,EAAO,GAAY,YAAR9D,GAAqBF,OAAOO,UAAUoE,eAAesB,KAAKjC,EAAK9D,GAAM,CAAE,IAAI6L,EAAOkiG,EAAwBjuG,OAAOgM,yBAAyBhI,EAAK9D,GAAO,KAAU6L,IAASA,EAAKH,KAAOG,EAAKmJ,KAAQlV,OAAOC,eAAe+tG,EAAQ9tG,EAAK6L,GAAgBiiG,EAAO9tG,GAAO8D,EAAI9D,GAAY8tG,EAAO5G,QAAUpjG,EAASsqB,GAASA,EAAMpZ,IAAIlR,EAAKgqG,GAAW,OAAOA,EAJ5wBE,CAAwB5uG,EAAQ,MAEjD,SAASyuG,EAAyBF,GAAe,GAAuB,oBAAZj+B,QAAwB,OAAO,KAAM,IAAIu+B,EAAoB,IAAIv+B,QAAew+B,EAAmB,IAAIx+B,QAAW,OAAQm+B,EAA2B,SAAkCF,GAAe,OAAOA,EAAcO,EAAmBD,IAAsBN,GAIhU,SAASr3E,EAAQ1qB,EAAQglF,GAAkB,IAAIvjF,EAAOvN,OAAOuN,KAAKzB,GAAS,GAAI9L,OAAO+wF,sBAAuB,CAAE,IAAIC,EAAUhxF,OAAO+wF,sBAAsBjlF,GAAaglF,IAAkBE,EAAUA,EAAQp5D,QAAO,SAAUq5D,GAAO,OAAOjxF,OAAOgM,yBAAyBF,EAAQmlF,GAAKpxF,eAAkB0N,EAAK5G,KAAKjF,MAAM6L,EAAMyjF,GAAY,OAAOzjF,EAElV,SAAS+9F,EAAc9rG,GAAU,IAAK,IAAIE,EAAI,EAAGA,EAAI+B,UAAU9B,OAAQD,IAAK,CAAE,IAAIuO,EAAyB,MAAhBxM,UAAU/B,GAAa+B,UAAU/B,GAAK,GAAQA,EAAI,EAAK82B,EAAQx2B,OAAOiO,IAAS,GAAM8G,SAAQ,SAAU7U,GAAO6D,EAAgBvE,EAAQU,EAAK+N,EAAO/N,OAAsBF,OAAOmxF,0BAA6BnxF,OAAOutB,iBAAiB/tB,EAAQQ,OAAOmxF,0BAA0BljF,IAAmBuoB,EAAQx2B,OAAOiO,IAAS8G,SAAQ,SAAU7U,GAAOF,OAAOC,eAAeT,EAAQU,EAAKF,OAAOgM,yBAAyBiC,EAAQ/N,OAAe,OAAOV,EAE7gB,SAASuE,EAAgBC,EAAK9D,EAAKc,GAAiK,OAApJd,KAAO8D,EAAOhE,OAAOC,eAAe+D,EAAK9D,EAAK,CAAEc,MAAOA,EAAOnB,YAAY,EAAMC,cAAc,EAAMC,UAAU,IAAkBiE,EAAI9D,GAAOc,EAAgBgD,EAE3M,IAAIqqG,EAAsB,GAE1B,SAAS3B,EAAgB3sE,EAEvB6sE,GAcA,OATKyB,IACHA,GAAsB,EAAI9B,EAAOtS,aAAa,CAAC,UAAW,wBAAyB,qBAAsB,oBAAqB,qBAAqB,SAAU1xD,GAE3J,OAAO,EAAIgkE,EAAOv8F,YAAY+vB,EAAGwI,WAMhC,EAAIgkE,EAAOv8F,YAAY+vB,EAAGsuE,KAExBtuE,EAAGsuE,GAAqBzB,GAqLjC,SAASZ,EAAesC,EAAOvC,EAE7BwC,GAKA,IAAIr/F,EAAIo/F,EAAMp/F,EACVC,EAAIm/F,EAAMn/F,EACV8jB,EAAc,aAAaztB,OAAO0J,GAAG1J,OAAO+oG,EAAY,KAAK/oG,OAAO2J,GAAG3J,OAAO+oG,EAAY,KAE9F,GAAIxC,EAAgB,CAClB,IAAIyC,EAAW,GAAGhpG,OAAmC,kBAArBumG,EAAe78F,EAAiB68F,EAAe78F,EAAI68F,EAAe78F,EAAIq/F,GAClGE,EAAW,GAAGjpG,OAAmC,kBAArBumG,EAAe58F,EAAiB48F,EAAe58F,EAAI48F,EAAe58F,EAAIo/F,GACtGt7E,EAAc,aAAaztB,OAAOgpG,EAAU,MAAMhpG,OAAOipG,EAAU,KAAOx7E,EAG5E,OAAOA,EAwET,SAASk4E,EAAaprE,EAEpBi7D,GAGIj7D,EAAGs9D,UACLt9D,EAAGs9D,UAAUjoF,IAAI4lF,GAEZj7D,EAAGi7D,UAAUxmE,MAAM,IAAIJ,OAAO,YAAY5uB,OAAOw1F,EAAW,eAC/Dj7D,EAAGi7D,WAAa,IAAIx1F,OAAOw1F,IAKjC,SAASqS,EAAgBttE,EAEvBi7D,GAGIj7D,EAAGs9D,UACLt9D,EAAGs9D,UAAU76B,OAAOw4B,GAEpBj7D,EAAGi7D,UAAYj7D,EAAGi7D,UAAU/yE,QAAQ,IAAImM,OAAO,YAAY5uB,OAAOw1F,EAAW,WAAY,KAAM,M,gBC1VnG57F,EAAOC,QANP,SAAwBuB,EAAUC,GAChCD,EAASL,UAAYP,OAAOc,OAAOD,EAAWN,WAC9CK,EAASL,UAAUQ,YAAcH,EACjCA,EAAS+J,UAAY9J,I,gBCHvB,IAAI6tG,EAAUpvG,EAAQ,KAKtBF,EAAOC,QAAUk1F,EACjBn1F,EAAOC,QAAQ4H,MAAQA,EACvB7H,EAAOC,QAAQsvG,QAsGf,SAAkB/+F,EAAKpB,GACrB,OAAOogG,EAAiB3nG,EAAM2I,EAAKpB,GAAUA,IAtG/CpP,EAAOC,QAAQuvG,iBAAmBA,EAClCxvG,EAAOC,QAAQwvG,eAAiBA,EAOhC,IAAIC,EAAc,IAAI16E,OAAO,CAG3B,UAOA,0GACAptB,KAAK,KAAM,KASb,SAASC,EAAO2I,EAAKpB,GAQnB,IAPA,IAKI45B,EALA2mE,EAAS,GACT7uG,EAAM,EACN6N,EAAQ,EACRg7D,EAAO,GACPimC,EAAmBxgG,GAAWA,EAAQygG,WAAa,IAGf,OAAhC7mE,EAAM0mE,EAAYlyF,KAAKhN,KAAe,CAC5C,IAAIkK,EAAIsuB,EAAI,GACR8mE,EAAU9mE,EAAI,GACd/+B,EAAS++B,EAAIr6B,MAKjB,GAJAg7D,GAAQn5D,EAAI1J,MAAM6H,EAAO1E,GACzB0E,EAAQ1E,EAASyQ,EAAEna,OAGfuvG,EACFnmC,GAAQmmC,EAAQ,OADlB,CAKA,IAAIrrG,EAAO+L,EAAI7B,GACXsqB,EAAS+P,EAAI,GACbnb,EAAOmb,EAAI,GACXy2D,EAAUz2D,EAAI,GACd+mE,EAAQ/mE,EAAI,GACZgnE,EAAWhnE,EAAI,GACfinE,EAAWjnE,EAAI,GAGf2gC,IACFgmC,EAAOpoG,KAAKoiE,GACZA,EAAO,IAGT,IAAIumC,EAAoB,MAAVj3E,GAA0B,MAARx0B,GAAgBA,IAASw0B,EACrDk3E,EAAsB,MAAbH,GAAiC,MAAbA,EAC7BI,EAAwB,MAAbJ,GAAiC,MAAbA,EAC/BH,EAAY7mE,EAAI,IAAM4mE,EACtBS,EAAU5Q,GAAWsQ,EAEzBJ,EAAOpoG,KAAK,CACVsmB,KAAMA,GAAQ/sB,IACdm4B,OAAQA,GAAU,GAClB42E,UAAWA,EACXO,SAAUA,EACVD,OAAQA,EACRD,QAASA,EACTD,WAAYA,EACZI,QAASA,EAAUC,EAAYD,GAAYJ,EAAW,KAAO,KAAOM,EAAaV,GAAa,SAclG,OATIlhG,EAAQ6B,EAAIjQ,SACdopE,GAAQn5D,EAAIvI,OAAO0G,IAIjBg7D,GACFgmC,EAAOpoG,KAAKoiE,GAGPgmC,EAoBT,SAASa,EAA0BhgG,GACjC,OAAOigG,UAAUjgG,GAAKqY,QAAQ,WAAW,SAAU1M,GACjD,MAAO,IAAMA,EAAE3T,WAAW,GAAG5C,SAAS,IAAI8K,iBAmB9C,SAAS8+F,EAAkBG,EAAQvgG,GAKjC,IAHA,IAAI+lB,EAAU,IAAItxB,MAAM8rG,EAAOpvG,QAGtBD,EAAI,EAAGA,EAAIqvG,EAAOpvG,OAAQD,IACR,kBAAdqvG,EAAOrvG,KAChB60B,EAAQ70B,GAAK,IAAI00B,OAAO,OAAS26E,EAAOrvG,GAAG+vG,QAAU,KAAMK,EAAMthG,KAIrE,OAAO,SAAUxK,EAAKsuB,GAMpB,IALA,IAAIy2C,EAAO,GACPtgE,EAAOzE,GAAO,GAEd+rG,GADUz9E,GAAQ,IACD09E,OAASJ,EAA2BznG,mBAEhDzI,EAAI,EAAGA,EAAIqvG,EAAOpvG,OAAQD,IAAK,CACtC,IAAIuwG,EAAQlB,EAAOrvG,GAEnB,GAAqB,kBAAVuwG,EAAX,CAMA,IACIxtE,EADAzhC,EAAQyH,EAAKwnG,EAAMhjF,MAGvB,GAAa,MAATjsB,EAAe,CACjB,GAAIivG,EAAMT,SAAU,CAEdS,EAAMX,UACRvmC,GAAQknC,EAAM53E,QAGhB,SAEA,MAAM,IAAI33B,UAAU,aAAeuvG,EAAMhjF,KAAO,mBAIpD,GAAIyhF,EAAQ1tG,GAAZ,CACE,IAAKivG,EAAMV,OACT,MAAM,IAAI7uG,UAAU,aAAeuvG,EAAMhjF,KAAO,kCAAoC4T,KAAKt7B,UAAUvE,GAAS,KAG9G,GAAqB,IAAjBA,EAAMrB,OAAc,CACtB,GAAIswG,EAAMT,SACR,SAEA,MAAM,IAAI9uG,UAAU,aAAeuvG,EAAMhjF,KAAO,qBAIpD,IAAK,IAAIrF,EAAI,EAAGA,EAAI5mB,EAAMrB,OAAQioB,IAAK,CAGrC,GAFA6a,EAAUstE,EAAO/uG,EAAM4mB,KAElB2M,EAAQ70B,GAAGq5F,KAAKt2D,GACnB,MAAM,IAAI/hC,UAAU,iBAAmBuvG,EAAMhjF,KAAO,eAAiBgjF,EAAMR,QAAU,oBAAsB5uE,KAAKt7B,UAAUk9B,GAAW,KAGvIsmC,IAAe,IAANnhD,EAAUqoF,EAAM53E,OAAS43E,EAAMhB,WAAaxsE,OApBzD,CA4BA,GAFAA,EAAUwtE,EAAMZ,SA5EbQ,UA4EuC7uG,GA5ExBinB,QAAQ,SAAS,SAAU1M,GAC/C,MAAO,IAAMA,EAAE3T,WAAW,GAAG5C,SAAS,IAAI8K,iBA2EWigG,EAAO/uG,IAErDuzB,EAAQ70B,GAAGq5F,KAAKt2D,GACnB,MAAM,IAAI/hC,UAAU,aAAeuvG,EAAMhjF,KAAO,eAAiBgjF,EAAMR,QAAU,oBAAsBhtE,EAAU,KAGnHsmC,GAAQknC,EAAM53E,OAASoK,QArDrBsmC,GAAQknC,EAwDZ,OAAOlnC,GAUX,SAAS4mC,EAAc//F,GACrB,OAAOA,EAAIqY,QAAQ,6BAA8B,QASnD,SAASynF,EAAaP,GACpB,OAAOA,EAAMlnF,QAAQ,gBAAiB,QAUxC,SAASioF,EAAYC,EAAI5iG,GAEvB,OADA4iG,EAAG5iG,KAAOA,EACH4iG,EAST,SAASL,EAAOthG,GACd,OAAOA,GAAWA,EAAQ2lF,UAAY,GAAK,IAwE7C,SAAS0a,EAAgBE,EAAQxhG,EAAMiB,GAChCkgG,EAAQnhG,KACXiB,EAAkCjB,GAAQiB,EAC1CjB,EAAO,IAUT,IALA,IAAI2mF,GAFJ1lF,EAAUA,GAAW,IAEA0lF,OACjB1gF,GAAsB,IAAhBhF,EAAQgF,IACdwvC,EAAQ,GAGHtjD,EAAI,EAAGA,EAAIqvG,EAAOpvG,OAAQD,IAAK,CACtC,IAAIuwG,EAAQlB,EAAOrvG,GAEnB,GAAqB,kBAAVuwG,EACTjtD,GAAS2sD,EAAaM,OACjB,CACL,IAAI53E,EAASs3E,EAAaM,EAAM53E,QAC5BwmE,EAAU,MAAQoR,EAAMR,QAAU,IAEtCliG,EAAK5G,KAAKspG,GAENA,EAAMV,SACR1Q,GAAW,MAAQxmE,EAASwmE,EAAU,MAaxC77C,GANI67C,EAJAoR,EAAMT,SACHS,EAAMX,QAGCj3E,EAAS,IAAMwmE,EAAU,KAFzB,MAAQxmE,EAAS,IAAMwmE,EAAU,MAKnCxmE,EAAS,IAAMwmE,EAAU,KAOzC,IAAIoQ,EAAYU,EAAanhG,EAAQygG,WAAa,KAC9CmB,EAAoBptD,EAAM98C,OAAO+oG,EAAUtvG,UAAYsvG,EAkB3D,OAZK/a,IACHlxC,GAASotD,EAAoBptD,EAAM98C,MAAM,GAAI+oG,EAAUtvG,QAAUqjD,GAAS,MAAQisD,EAAY,WAI9FjsD,GADExvC,EACO,IAIA0gF,GAAUkc,EAAoB,GAAK,MAAQnB,EAAY,MAG3DiB,EAAW,IAAI97E,OAAO,IAAM4uB,EAAO8sD,EAAMthG,IAAWjB,GAe7D,SAASgnF,EAAcxrB,EAAMx7D,EAAMiB,GAQjC,OAPKkgG,EAAQnhG,KACXiB,EAAkCjB,GAAQiB,EAC1CjB,EAAO,IAGTiB,EAAUA,GAAW,GAEjBu6D,aAAgB30C,OAlJtB,SAAyB20C,EAAMx7D,GAE7B,IAAI8iG,EAAStnC,EAAK96D,OAAOumB,MAAM,aAE/B,GAAI67E,EACF,IAAK,IAAI3wG,EAAI,EAAGA,EAAI2wG,EAAO1wG,OAAQD,IACjC6N,EAAK5G,KAAK,CACRsmB,KAAMvtB,EACN24B,OAAQ,KACR42E,UAAW,KACXO,UAAU,EACVD,QAAQ,EACRD,SAAS,EACTD,UAAU,EACVI,QAAS,OAKf,OAAOS,EAAWnnC,EAAMx7D,GAgIf+iG,CAAevnC,EAA6Bx7D,GAGjDmhG,EAAQ3lC,GAxHd,SAAwBA,EAAMx7D,EAAMiB,GAGlC,IAFA,IAAIa,EAAQ,GAEH3P,EAAI,EAAGA,EAAIqpE,EAAKppE,OAAQD,IAC/B2P,EAAM1I,KAAK4tF,EAAaxrB,EAAKrpE,GAAI6N,EAAMiB,GAASP,QAKlD,OAAOiiG,EAFM,IAAI97E,OAAO,MAAQ/kB,EAAMrI,KAAK,KAAO,IAAK8oG,EAAMthG,IAEnCjB,GAgHjBgjG,CAAqCxnC,EAA8Bx7D,EAAOiB,GArGrF,SAAyBu6D,EAAMx7D,EAAMiB,GACnC,OAAOqgG,EAAe5nG,EAAM8hE,EAAMv6D,GAAUjB,EAAMiB,GAuG3CgiG,CAAsCznC,EAA8Bx7D,EAAOiB,K,iICtarE,SAAS,EAAWiiG,EAAQ/tG,EAAMguG,GAc/C,OAZE,EADE,OAAAC,EAAA,KACWpvG,QAAQC,UAER,SAAoBivG,EAAQ/tG,EAAMguG,GAC7C,IAAIxgG,EAAI,CAAC,MACTA,EAAEvJ,KAAKjF,MAAMwO,EAAGxN,GAChB,IACIjC,EAAW,IADGmwG,SAASjzD,KAAKj8C,MAAM+uG,EAAQvgG,IAG9C,OADIwgG,GAAO,OAAAjmG,EAAA,GAAehK,EAAUiwG,EAAMnwG,WACnCE,IAIOiB,MAAM,KAAMD,WCZjB,SAAS,EAAiBivG,GACvC,IAAI78D,EAAwB,oBAARrT,IAAqB,IAAIA,SAAQ59B,EA8BrD,OA5BA,EAAmB,SAA0B8tG,GAC3C,GAAc,OAAVA,ICRkCluG,EDQEkuG,GCPsB,IAAzDE,SAAS5rG,SAASiB,KAAKzD,GAAI8L,QAAQ,kBDOQ,OAAOoiG,ECR5C,IAA2BluG,EDUtC,GAAqB,oBAAVkuG,EACT,MAAM,IAAIhwG,UAAU,sDAGtB,GAAsB,qBAAXmzC,EAAwB,CACjC,GAAIA,EAAOvjC,IAAIogG,GAAQ,OAAO78D,EAAOjoC,IAAI8kG,GAEzC78D,EAAO3+B,IAAIw7F,EAAO7N,GAGpB,SAASA,IACP,OAAO,EAAU6N,EAAOjvG,UAAW,OAAAiJ,EAAA,GAAepJ,MAAMP,aAW1D,OARA8hG,EAAQtiG,UAAYP,OAAOc,OAAO4vG,EAAMnwG,UAAW,CACjDQ,YAAa,CACXC,MAAO6hG,EACPhjG,YAAY,EACZE,UAAU,EACVD,cAAc,KAGX,OAAA2K,EAAA,GAAeo4F,EAAS6N,KAGTA,G,gCEnCtBptG,EAAE,oBAAoBb,KAAKA,KAAKouG,OAAan5F,EAAE,oBAAoBu0E,UAAUvsF,EAAEgY,GAAG,oBAAoBo5F,iBAAiBztG,IAAI,oBAAoBwtG,QAAQ,oBAAoBntB,UAAUA,QAAQqtB,WAAWrtB,QAAQqtB,SAASxmF,MAAMnnB,EAAEE,EAAE0tG,OAAO1qG,EAAEhD,EAAE2tG,OAAO/gG,IAAI9M,EAAEN,EAAE,SAAAQ,GAAC,OAAEA,GAAE,SAAS4W,EAAE5W,GAAM,IAAJoU,EAAI,uDAAF5U,EAAG,GAAGO,EAAE,IAAI,MAAM,mBAAmB/D,QAAQ+C,QAAQR,QAAQ6V,EAAEpY,QAAQgE,KAAK4tG,OAAiC5tG,GAAGhB,KAAKoV,GAAG,MAAMA,GAAGwd,QAAQC,KAAR,wBAA8B7xB,KAAM,IAAI6W,EAAE7W,EAAE6tG,MAAqB,IAAI7tG,EAAE6tG,MAAM,CAAC,IAAM7tG,EAAE4W,EAAE,QAAQ,SAAA5W,GAAC,OAAEA,KAAIoU,EAAEwC,EAAE,SAAS,SAAA5W,GAAC,OAAEA,KAA1D6W,EAAgE,SAAFza,EAAG2D,GAAD,6DAAe,GAAHD,EAAZ,EAAIguG,QAAJ,OAAoB,IAAI/uG,QAAJ,qCAAa,WAAMiE,EAAE4J,GAAR,wFAAmE,IAAImhG,IAAIhuG,GAArDP,EAAtB,EAAiBwuG,KAAgBp3F,EAAjC,EAAwBq3F,SAAoBp3F,EAA5C,EAAmCuuE,SAAoB8oB,EAAvD,EAA8CC,SAAkBl2F,EAAhE,EAAyD0uE,OAA2BzmF,EAAE,CAAC+kC,OAAO,MAAMgpE,SAASr3F,EAAE6uD,KAAK8mC,UAAU11F,GAAGoB,EAAE61F,QAAQhuG,GAAG,KAAKN,IAAIU,EAAE8tG,KAAK9kG,OAAO1J,IAAa,WAAW0uG,EAA7L,gCAAqM95F,EAArM,2DAA6MpU,EAA7M,6BAA+KyW,EAA/K,KAAgN23F,QAAQluG,GAAG,SAAAF,GAAI,GAAG,MAAMA,EAAEquG,YAAY,MAAMruG,EAAEquG,WAAW,CAAC,IAAIj6F,EAAE,IAAI25F,IAAI/tG,EAAE8tG,QAAQpnB,SAAS3mF,GAAG2B,WAAW,OAAOtF,EAAEgY,EAAE,CAAC05F,QAAQhuG,IAAId,KAAKgE,GAAGsrG,MAAM1hG,GAAG5J,EAAE,CAACurG,OAAOvuG,EAAEquG,WAAWG,YAAY,kBAAI,IAAIzvG,SAAS,SAAAqV,GAAI,IAAIhY,EAAE,GAAG4D,EAAEguF,GAAG,QAAQ,SAAAhuF,GAAC,OAAE5D,EAAEiH,KAAKrD,MAAKA,EAAEguF,GAAG,OAAO,kBAAI55E,EAAEs5F,OAAOxrG,OAAO9F,iBAAgB4xF,GAAG,QAAQphF,GAAG6J,EAAEvG,MAA/f,4CAAb,0DAA0hB,SAAS+H,EAAEjY,EAAEoU,EAAEhY,GAAG,OAAOgY,KAAKpU,EAAEtD,OAAOC,eAAeqD,EAAEoU,EAAE,CAAC1W,MAAMtB,EAAEG,YAAW,EAAGC,cAAa,EAAGC,UAAS,IAAKuD,EAAEoU,GAAGhY,EAAE4D,EAAE,IAAME,EAAE,SAAAF,GAAC,OAAEgP,EAAEhP,QAAG,EAAOA,GAAEyW,EAAE,SAAAzW,GAAC,YAAE,IAASA,GAAE,SAASgP,EAAEhP,GAAG,YAAO,IAASA,IAAIA,aAAak9B,IAAI,IAAIl9B,EAAE8M,KAAK,IAAIpQ,OAAO0qB,OAAOpnB,GAAGs0B,OAAO7d,GAAGpa,QAAQ,SAASkc,EAAEvY,GAAG,IAAIoU,EAAE,IAAI1P,MAAM1E,GAAG,aAAaoU,EAAE+yB,MAAM/yB,EAAE,SAASoC,EAAExW,GAAG,MAAM,MAAMA,EAAE,SAASA,GAAG,KAAKA,EAAEyJ,SAAS,OAAOzJ,EAAEA,EAAE4C,MAAM,GAAG,GAAG,OAAO5C,EAA1D,CAA6DA,GAAGyuG,aAAQ,EAAOzuG,EAAE,SAASma,EAAEna,GAAG,IAAIoU,EAAE,SAASpU,GAAG,IAAIoU,EAAE,EAAE,OAAOpU,EAAE0uG,KAAKlxD,UAAUppC,GAAG,MAAMpU,EAAE2uG,KAAKnxD,UAAUppC,GAAG,MAAMpU,EAAE4uG,YAAYx6F,GAAG,MAAMpU,EAAE6uG,cAAcz6F,GAAG,MAAMpU,EAAE8uG,IAAItxD,UAAUppC,GAAG,KAAKpU,EAAE+uG,QAAQvxD,UAAUppC,GAAG,KAAKpU,EAAEgvG,KAAKxxD,UAAUppC,GAAG,MAAMA,EAAE,KAA/M,CAAqNpU,GAAG,OAAOA,EAAEivG,KAAKzxD,UAAUppC,GAAG,IAAIpU,EAAEkvG,IAAI1xD,UAAUppC,GAAG,KAAKpU,EAAEmvG,KAAK3xD,UAAUppC,GAAG,MAAMpU,EAAEovG,IAAI5xD,UAAUppC,GAAG,KAAKA,EAAE,IAAMtT,EAAE,SAAAd,GAAC,OAAEkE,OAAOC,aAAa/F,MAAM,KAAK4B,IAAG6L,EAAE,oBAAoBwjG,YAAY,IAAIA,YAAY,cAAS,EAAO,SAASxiG,EAAE7M,GAAG,OAAO6L,EAAEA,EAAEyjG,OAAOtvG,GAAG4M,EAAE8gG,OAAOvlG,KAAKnI,GAAG0B,SAAS,QAAQ8C,mBAAmBC,OAAO3D,EAAEd,K,IAAW8a,E,WAAiF,WAAY9a,GAAU,IAARoU,EAAQ,uDAAN,EAAEhY,EAAI,uCAAF2D,EAAE,uCAAC,GAAD,oBAAI,kBAAkBA,IAAI/B,KAAKuxG,GAAGxvG,GAAGJ,MAAMC,QAAQI,KAAKA,EAAE,IAAIwvG,WAAWxvG,IAAI,IAAIA,EAAEhC,KAAKyxG,WAAW,EAAEzxG,KAAK0xG,WAAW,OAAO,GAAG1vG,aAAa2vG,YAAY,MAAC,IAASvzG,IAAIA,EAAE4D,EAAE0vG,WAAWt7F,GAAG,IAAIrU,EAAE,IAAI6vG,SAAS5vG,EAAEoU,EAAEhY,GAAG4B,KAAK6xG,cAAc9vG,QAAQ,GAAGC,aAAawvG,YAAYxvG,aAAa4vG,UAAU5vG,aAAa8a,EAAE,MAAC,IAAS1e,IAAIA,EAAE4D,EAAE0vG,WAAWt7F,IAAIA,GAAGpU,EAAEyvG,YAAYrzG,EAAE4D,EAAEyvG,WAAWzvG,EAAE0vG,YAAYn3F,EAAE,4DAA4D,IAAIxY,EAAE,IAAI6vG,SAAS5vG,EAAE8vG,OAAO17F,EAAEhY,GAAG4B,KAAK6xG,cAAc9vG,QAAQ,GAAG,iBAAiBC,EAAE,CAAC,IAAIoU,EAAE,IAAIw7F,SAAS,IAAID,YAAY3vG,IAAIhC,KAAK6xG,cAAcz7F,QAAQmE,EAAE,0CAA0CvY,G,sDAAttBA,EAAEoU,GAAG,OAAOpU,aAAahC,MAAMgC,EAAEuvG,KAAKn7F,EAAEpU,EAAE,IAAI8a,EAAE9a,OAAE,OAAO,EAAOoU,O,sDAA0qBpU,GAAGhC,KAAK6xG,cAAc,IAAID,SAAS5vG,M,kCAAgBA,GAAGhC,KAAK6xG,cAAc,IAAID,SAAS5vG,EAAE8vG,OAAO9vG,EAAEyvG,WAAWzvG,EAAE0vG,e,oCAA2B1vG,GAAGhC,KAAK+xG,SAAS/vG,EAAEhC,KAAK8xG,OAAO9vG,EAAE8vG,OAAO9xG,KAAKyxG,WAAWzvG,EAAEyvG,WAAWzxG,KAAK0xG,WAAW1vG,EAAE0vG,a,mCAAwB1vG,GAAG,OAAOhC,KAAK0xG,WAAW1vG,I,0BAAMA,EAAEoU,GAAM,IAAJhY,EAAI,uDAAF0e,EAAG,OAAO9a,aAAa4vG,UAAU5vG,aAAa8a,EAAE9a,EAAE,IAAIwvG,WAAWxvG,EAAE8vG,OAAO9vG,EAAEyvG,WAAWzvG,EAAE0vG,YAAY1vG,aAAa2vG,cAAc3vG,EAAE,IAAIwvG,WAAWxvG,IAAIA,aAAawvG,YAAYj3F,EAAE,4CAA4Cva,KAAKgyG,UAAUp+F,IAAI5R,EAAEoU,GAAG,IAAIhY,EAAE4B,KAAKoW,EAAEpU,EAAE0vG,c,+BAAqB1vG,EAAEoU,GAAG,OAAiC,IAAI0G,EAAE9c,KAAKgC,EAArCoU,EAAEA,GAAGpW,KAAKiyG,aAAajwG,M,gCAA6B,OAAO,IAAIwvG,WAAWxxG,KAAK8xG,OAAO9xG,KAAKyxG,WAAWzxG,KAAK0xG,c,oCAA0B1vG,EAAEoU,GAAG,OAAO,IAAIo7F,WAAWxxG,KAAK8xG,OAAO9xG,KAAKyxG,WAAWzvG,EAAEoU,K,kCAAmC,IAAtBpU,EAAsB,uDAApB,EAAEoU,EAAkB,uDAAhBpW,KAAK0xG,WAAY,OAAO7iG,EAAE7O,KAAKkyG,cAAclwG,EAAEoU,M,wCAA0C,IAAtBpU,EAAsB,uDAApB,EAAEoU,EAAkB,uDAAhBpW,KAAK0xG,WAAgBtzG,EAAE4B,KAAKkyG,cAAclwG,EAAEoU,GAAG,OAAOtT,EAAE1E,K,yCAAsD,IAAZ,IAAtB4D,EAAsB,uDAApB,EAAEoU,EAAkB,uDAAhBpW,KAAK0xG,WAAkBtzG,EAAE,GAAW2D,EAAE,EAAEA,EAAEqU,GAAGpU,EAAED,EAAE/B,KAAK0xG,WAAW3vG,GAAG,EAAE3D,EAAEiH,KAAKrF,KAAKmyG,UAAUnwG,EAAED,IAAI,OAAOe,EAAE1E,K,8BAAW4D,GAAG,OAAOhC,KAAK+xG,SAASK,QAAQpwG,K,+BAAYA,GAAG,OAAOhC,KAAK+xG,SAASM,SAASrwG,K,+BAAYA,GAAY,IAAVoU,EAAU,uDAARpW,KAAKuxG,GAAI,OAAOvxG,KAAK+xG,SAASO,SAAStwG,EAAEoU,K,+BAAYpU,GAAY,IAAVoU,EAAU,uDAARpW,KAAKuxG,GAAI,OAAOvxG,KAAK+xG,SAASQ,SAASvwG,EAAEoU,K,gCAAapU,GAAY,IAAVoU,EAAU,uDAARpW,KAAKuxG,GAAI,OAAOvxG,KAAK+xG,SAASI,UAAUnwG,EAAEoU,K,gCAAapU,GAAY,IAAVoU,EAAU,uDAARpW,KAAKuxG,GAAI,OAAOvxG,KAAK+xG,SAASS,UAAUxwG,EAAEoU,K,iCAAcpU,GAAY,IAAVoU,EAAU,uDAARpW,KAAKuxG,GAAI,OAAOvxG,KAAK+xG,SAASU,WAAWzwG,EAAEoU,K,iCAAcpU,GAAY,IAAVoU,EAAU,uDAARpW,KAAKuxG,GAAI,OAAOvxG,KAAK+xG,SAASW,WAAW1wG,EAAEoU,K,+BAAYpU,GAAY,IAAVoU,EAAU,uDAARpW,KAAKuxG,GAAI,OAAOvxG,KAAK+xG,SAASU,WAAWzwG,EAAEoU,K,gCAAapU,GAAY,IAAVoU,EAAU,uDAARpW,KAAKuxG,GAAI,OAAOvxG,KAAK+xG,SAASW,WAAW1wG,EAAEoU,K,mCAAgBpU,EAAEoU,EAAEhY,GAAG,OAAOgY,GAAG,KAAK,EAAE,OAAOpW,KAAKqyG,SAASrwG,EAAE5D,GAAG,KAAK,EAAE,OAAO4B,KAAKmyG,UAAUnwG,EAAE5D,GAAG,KAAK,EAAE,OAAO4B,KAAKwyG,UAAUxwG,EAAE5D,GAAG,KAAK,EAAE,OAAO4B,KAAK2yG,WAAW3yG,KAAK2yG,UAAU3wG,EAAE5D,M,8BAAY4D,EAAEoU,EAAEhY,GAAG,OAAOgY,GAAG,KAAK,EAAE,OAAOpW,KAAKqyG,SAASrwG,EAAE5D,GAAG,KAAK,GAAG,OAAO4B,KAAKmyG,UAAUnwG,EAAE5D,GAAG,KAAK,GAAG,OAAO4B,KAAKwyG,UAAUxwG,EAAE5D,GAAG,KAAK,GAAG,OAAO4B,KAAK2yG,WAAW3yG,KAAK2yG,UAAU3wG,EAAE5D,M,+BAAa4D,GAAG,OAAOhC,KAAK+xG,SAASruG,SAAS1B,EAAEhC,KAAKP,YAAYksB,Q,8CAAsB,SAASrP,EAAEta,EAAEoU,GAAGmE,EAAE,GAAD,OAAIvY,EAAJ,aAAUoU,EAAV,qD,IAAqEtJ,E,kDAAc,WAAY9K,GAAE,kCAAC,gBAAa07F,KAAK17F,EAAnB,E,gDAAyBA,EAAEoU,GAAG,OAAOpW,KAAKgP,IAAIhN,IAAIsa,EAAEtc,KAAK09F,KAAK17F,GAAGoU,IAAIpU,KAAKoU,GAAG,SAASpU,EAAEoU,GAAGmE,EAAE,WAAD,OAAYvY,EAAZ,aAAkBoU,EAAlB,OAAf,CAAyCpW,KAAK09F,KAAK17F,GAAGoU,EAAEpU,GAAGw9C,SAASljC,EAAEtc,KAAK09F,KAAK17F,IAAxH,2CAAAhC,MAAA,KAAAA,KAAsIgC,K,gCAAa,OAAOL,MAAMwI,KAAKnK,KAAKiM,Y,KAAjOizB,MAA8OpkB,EAAE,IAAIhO,EAAE,eAAeoP,EAAE,IAAIpP,EAAE,kBAAkB+M,EAAE,IAAI/M,EAAE,eAAe,SAASiN,EAAE/X,EAAED,GAAG,MAAM,iBAAiBC,EAAEua,EAAEva,EAAED,GAAGqU,IAAIhY,GAAG4D,aAAawtG,iBAAiBjzF,EAAEva,EAAE4wG,IAAI7wG,GAAGC,aAAawvG,YAAYxvG,aAAa2vG,aAAa3vG,aAAa4vG,SAAS,IAAI90F,EAAE9a,GAAGoU,GAAGpU,aAAa6wG,KAAKjlG,EAAE5L,EAAED,EAAE,OAAOqa,SAAQ7B,EAAE,0BAA0B,SAASgC,EAAEva,EAAE5D,GAAG,OAAO0D,EAAEE,GAAGoqB,WAAW,UAAUtqB,EAAEzD,OAAO,IAAIsP,EAAE3L,EAAE5D,EAAE,UAAU2D,GAAGC,EAAEizB,SAAS,OAAOrnB,EAAE5L,EAAE5D,EAAE,MAAMqe,IAAG1a,EAAE4L,EAAE3L,EAAE5D,EAAE,MAAMgY,EAAExI,EAAE5L,EAAE5D,EAAE,MAAMqe,SAAQlC,EAAE,0BAA0B,IAAIzY,E,SAAiB8L,E,kFAAf,WAAiB5L,EAAEoU,EAAEhY,EAAE2D,GAAvB,wFAAiC8X,EAAE7K,IAAI5Q,GAAGuP,EAAE3L,EAAEoU,EAAEhY,GAAG2D,EAAE,gDAAeC,EAAEoU,GAAjB,qFAAgCA,EAAEpU,GAAlC,cAAwB5D,EAAxB,yBAA4C,IAAI0e,EAAE1e,IAAlD,mGAAsD4D,EAAED,QAAQwY,EAAE,UAAD,OAAWnc,EAAX,oBAAtH,4C,+BAAmKuP,E,mFAAf,WAAiB3L,EAAEoU,EAAEhY,GAArB,4EAA4B2D,EAAE,IAAI8X,EAAEvP,IAAIlM,GAAV,CAAc4D,EAAEoU,GAA9C,SAA8DrU,EAAEsxB,OAAhE,gCAAuEtxB,GAAvE,4C,sBAAyE,IAAM0a,GAAE,SAAAza,GAAC,OAAE6W,EAAE7W,GAAGhB,MAAM,SAAAgB,GAAC,OAAEA,EAAEwuG,kBAAgBp0F,GAAE,SAAApa,GAAC,OAAE,IAAIjB,SAAS,SAACqV,EAAEhY,GAAK,IAAI2D,EAAE,IAAI+wG,WAAW/wG,EAAEgxG,UAAU,kBAAI38F,EAAErU,EAAElC,QAAQ,IAAI8xG,cAAa5vG,EAAEixG,QAAQ50G,EAAE2D,EAAEkxG,kBAAkBjxG,OAAY0a,G,sKAA4B,OAAO1c,KAAK02B,UAAU12B,KAAK02B,QAAQ/0B,MAAMwI,KAAKnK,KAAKiM,SAASjM,KAAK02B,U,gCAAwB,OAAO12B,KAAKkzG,YAAYlzG,KAAKkzG,UAAUvxG,MAAMwI,KAAKnK,KAAKopB,WAAWppB,KAAKkzG,c,KAAlLh0E,MAA6L,SAASjjB,GAAEja,EAAEoU,EAAEhY,GAAG,IAAD,EAAK2D,EAAE,IAAI2a,GAAX,cAA4Bte,GAA5B,IAAa,yDAAQ4D,EAAR,KAAUoU,EAAV,KAAiBrU,EAAE6R,IAAI5R,EAAEoU,IAAtC,8BAAyC,GAAGzU,MAAMC,QAAQwU,GAAjB,qBAAiCA,GAAjC,IAAoB,gCAAQhY,EAAR,QAAe4D,EAAE4R,IAAIxV,EAAE2D,IAA3C,oCAAmDC,EAAE4R,IAAIwC,EAAErU,GAAG,OAAOA,EAAE,SAASF,GAAEG,EAAEoU,EAAEhY,GAAG,IAAI2D,EAAL,EAAOD,EAAEE,EAAEsI,IAAI8L,GAAf,cAA2BhY,GAA3B,IAAkB,2BAAI2D,EAAJ,QAAWD,EAAE8R,IAAI7R,EAAE,GAAGA,EAAE,IAA1C,+BAA8C,IAAMiY,GAAE,IAAIklB,IAAIplB,GAAE,IAAIolB,IAAI1iB,GAAE,IAAI0iB,IAAItiB,GAAE,CAAC,UAAU,iBAAiB,qBAAqB,wBAAwB,YAAY,cAAcZ,GAAE,CAAC,OAAO,MAAM,MAAM,OAAO,QAAQ6vC,GAAC,CAAE,QAAF,OAAY7vC,IAAGa,GAAE,CAAC,OAAO,OAAO,OAAO,MAAM,WAAWyJ,GAAC,sBAAKulC,IAAKhvC,IAAGd,GAAE,CAAC,YAAY,eAAeY,GAAE,CAAC,gBAAgB,kBAAkB,eAAe,gBAAgBb,GAAC,UAAKa,GAAL,CAAO,WAAW,cAAc,iBAAsBw2F,G,kGAAkB,OAAOnzG,KAAKozG,eAAepzG,KAAKqzG,iBAAiBrzG,KAAKszG,iB,KAAoBz3F,G,kDAA+D,WAAY7Z,EAAEoU,EAAEhY,EAAE2D,GAAE,MAAC,GAAD,oBAAI,eAAQkY,EAAE,eAAK,WAAU,GAAIA,EAAE,eAAK,OAAO,IAAIpG,KAAKoG,EAAE,eAAK,OAAO,IAAIpG,KAAKoG,EAAE,eAAK,OAAO,IAAIpG,KAAKoG,EAAE,eAAK,iBAAgB,GAAIA,EAAE,eAAK,mBAAkB,GAAIA,EAAE,eAAK,gBAAe,GAAI,EAAKrb,IAAIoD,EAAE,EAAKw9C,QAAQppC,EAAE,EAAKzQ,MAAM,EAAK65C,QAAQ,EAAK+zD,kBAAkBxxG,GAAG,EAAKyxG,cAAc32F,GAAEoY,SAASjzB,GAAG,EAAKwxG,gBAAgB,EAAKC,KAAKz5F,GAAE1P,IAAItI,SAAI,IAAS5D,EAAE,GAAGuD,MAAMC,QAAQxD,GAAG,EAAKuH,MAAM,EAAK65C,SAAQ,EAAG,EAAKg0D,eAAep1G,EAAEC,OAAO,GAAG,EAAKq1G,gBAAgBt1G,EAAE,EAAKu1G,WAAW,GAAG,iBAAiBv1G,EAAE,CAAC,GAAG,EAAKohD,SAAQ,EAAG,EAAK75C,OAAM,IAAKvH,EAAEuH,MAAM,EAAK6tG,cAAc,KAAUxxG,EAAU5D,EAAfu1G,KAAYv9F,EAAGhY,EAAR65B,KAAUj2B,GAAGA,EAAE3D,OAAO,GAAG,EAAKq1G,gBAAgB1xG,EAAE,EAAK2xG,MAAMv9F,GAAGA,EAAE/X,OAAO,GAAG,EAAKq1G,gBAAgBt9F,EAAE,EAAK6hB,MAAM,EAAKs7E,kBAAkBn1G,QAAO,IAAKA,IAAG,IAAKA,EAAE,EAAKuH,MAAM,EAAK65C,QAAQphD,EAAEmc,EAAE,6BAAD,OAA8Bnc,IAAlwB,sB,mDAA1D,OAAO4B,KAAKw/C,SAASx/C,KAAK4zG,KAAK9kG,KAAK,M,uDAA+yB9M,GAAG,IAAIoU,EAAEhY,EAAP,gBAAkBue,IAAlB,IAAS,gCAAkB,KAAPve,EAAE4D,EAAToU,EAAJ,YAA+BpW,KAAKoW,GAAGhY,GAAhD,iC,sCAAmE4D,EAAEoU,GAAG,GAAGpW,KAAKyzG,KAAK,CAAK,IAAAr1G,EAAE2D,EAAP,EAAM,EAA2B/B,KAAKyzG,KAApB3xG,EAAZ,EAAI+xG,QAAoB7uG,EAAxB,EAAc8uG,UAApB,cAAoD9xG,GAApD,IAA2C,2BAAW,iBAAP5D,EAAJ,WAA+C,KAAhB2D,EAAEiD,EAAEgI,QAAQ5O,MAAY2D,EAAED,EAAEkL,QAAQ9B,OAAO9M,MAAM,IAAI2D,GAAGqU,EAAEtC,IAAI5I,OAAOpJ,EAAEC,MAAMqU,EAAEtC,IAAI1V,GAA7J,mCAAb,qBAA+L4D,GAA/L,IAAkL,gCAAQ5D,EAAR,QAAegY,EAAEtC,IAAI1V,IAAvM,kC,yCAA6N4B,KAAKw/C,SAASx/C,KAAK4zG,KAAK9kG,KAAK,GAAG9O,KAAKw/C,SAAQ,EAAGu0D,GAAG/zG,KAAK2zG,KAAK3zG,KAAK4zG,OAAO5zG,KAAKw/C,SAASx/C,KAAK2zG,KAAK7kG,KAAK,GAAGilG,GAAG/zG,KAAK2zG,KAAK3zG,KAAK4zG,U,GAApwCT,IAA+wCa,GAAE,CAAC/C,MAAK,EAAGgD,MAAK,EAAG/C,KAAI,EAAGE,KAAI,EAAGD,MAAK,EAAGT,MAAK,EAAGM,MAAK,EAAGL,MAAK,EAAGG,KAAI,EAAGC,SAAQ,EAAGmD,UAAK,EAAOtD,WAAU,EAAGC,aAAY,EAAGsD,cAAa,EAAGl8E,KAAK,GAAG07E,KAAK,GAAGP,eAAc,EAAGC,iBAAgB,EAAGC,cAAa,EAAGc,UAAS,EAAGC,aAAY,EAAGC,cAAa,EAAGC,SAAQ,EAAGC,oBAAe,EAAOC,mBAAmB,IAAIC,sBAAsB,MAAMC,UAAU,MAAMC,WAAW,GAAG73F,GAAE,IAAImiB,IAAU21E,G,kDAA+F,WAAY7yG,GAAE,iCAAC,gBAAQ,IAAKA,EAAE,EAAK8yG,qBAAgB,IAAS9yG,EAAE,EAAK+yG,qBAAqBpzG,MAAMC,QAAQI,GAAG,EAAKgzG,eAAehzG,GAAG,iBAAiBA,EAAE,EAAKizG,gBAAgBjzG,GAAGuY,EAAE,4BAAD,OAA6BvY,SAAK,IAAS,EAAKwyG,iBAAiB,EAAKA,eAAep+F,EAAE,EAAKs+F,sBAAsB,EAAKD,oBAAoB,EAAKJ,cAAc,EAAKrD,KAAKxxD,SAAQ,GAAI,EAAK01D,0BAA0B,EAAKC,6BAA6B,EAAKC,qBAAxZ,E,2DAAhFpzG,GAAG,IAAIoU,EAAE2G,GAAEzS,IAAItI,GAAG,YAAO,IAASoU,IAAIA,EAAE,IAAIpW,KAAKgC,GAAG+a,GAAEnJ,IAAI5R,EAAEoU,IAAIA,M,0DAAkd,IAAIpU,EAAL,gBAAgB4a,IAAhB,IAAO,2BAAW5c,KAAPgC,EAAJ,SAAmBgyG,GAAEhyG,GAA5B,kDAAwC8Z,IAAxC,IAA+B,2BAAW9b,KAAPgC,EAAJ,SAAmBgyG,GAAEhyG,GAApD,kDAAgE+Z,IAAhE,IAAuD,2BAAW/b,KAAPgC,EAAJ,SAAmBgyG,GAAEhyG,GAA5E,kDAAwFskB,IAAxF,IAA+E,2BAAWtmB,KAAPgC,EAAJ,SAAmB,IAAI6Z,GAAE7Z,EAAEgyG,GAAEhyG,QAAG,EAAOhC,MAAtH,iC,sCAA4I,IAAIgC,EAAL,gBAAgB4a,IAAhB,IAAO,2BAAW5c,KAAPgC,EAAJ,SAAmBgyG,GAAEhyG,GAA5B,kDAAwC8Z,IAAxC,IAA+B,2BAAW9b,KAAPgC,EAAJ,SAAmBgyG,GAAEhyG,GAApD,kDAAgE+Z,IAAhE,IAAuD,2BAAW/b,KAAPgC,EAAJ,UAAmB,EAA1E,kDAAsFskB,IAAtF,IAA6E,2BAAWtmB,KAAPgC,EAAJ,SAAmB,IAAI6Z,GAAE7Z,GAAE,OAAG,EAAOhC,MAAlH,iC,qCAAuIgC,GAAG,IAAIoU,EAAL,gBAAgBwG,IAAhB,IAAO,2BAAW5c,KAAPoW,EAAJ,SAAmB49F,GAAE59F,GAA5B,kDAAwC0F,IAAxC,IAA+B,2BAAW9b,KAAPoW,EAAJ,SAAmB49F,GAAE59F,GAApD,kDAAgE2F,IAAhE,IAAuD,2BAAW/b,KAAPoW,EAAJ,SAAmB49F,GAAE59F,GAA5E,kDAAwFkQ,IAAxF,IAA+E,2BAAWtmB,KAAPoW,EAAJ,SAAmB,IAAIyF,GAAEzF,GAAE,OAAG,EAAOpW,MAApH,8BAA0HA,KAAKq1G,mBAAmBrzG,OAAE,EAAO6a,M,sCAAmB7a,GAAG,IAAIoU,EAAL,iBAAgByG,GAAE6zF,KAAK7zF,GAAE6zF,MAAM7zF,GAAEy4F,MAAMz4F,GAAEm0F,KAAKn0F,GAAEm0F,MAAMn0F,GAAE04F,UAAU72G,OAAOwX,OAAOlW,KAAKgC,GAAG4a,KAAxF,IAAO,2BAAoF5c,KAAhFoW,EAAJ,SAA4FwF,GAAE5Z,EAAEoU,GAAG49F,GAAE59F,IAA5G,kDAAyH0F,IAAzH,IAAgH,2BAAW9b,KAAPoW,EAAJ,SAAmBwF,GAAE5Z,EAAEoU,GAAG49F,GAAE59F,IAA5I,kDAAyJ2F,IAAzJ,IAAgJ,2BAAW/b,KAAPoW,EAAJ,SAAmBwF,GAAE5Z,EAAEoU,GAAG49F,GAAE59F,IAA5K,kDAAyLy1C,IAAzL,IAAgL,2BAAW7rD,KAAPoW,EAAJ,SAAmB,IAAIyF,GAAEzF,EAAE49F,GAAE59F,GAAGpU,EAAEoU,GAAGpW,MAArN,kDAAoO6c,IAApO,IAA2N,2BAAW7c,KAAPoW,EAAJ,SAAmB,IAAIyF,GAAEzF,EAAE49F,GAAE59F,GAAGpU,EAAEoU,GAAGpW,KAAKi0G,MAArQ,8BAA2Qj0G,KAAKq1G,mBAAmBrzG,EAAE2xG,KAAK3xG,EAAEi2B,KAAKpb,GAAEyJ,KAAG,IAAKtkB,EAAEiyG,KAAKj0G,KAAKw1G,oBAAoB34F,IAAE,IAAI,IAAK7a,EAAEiyG,KAAKj0G,KAAKy1G,yBAAyB54F,GAAE7a,GAAGL,MAAMC,QAAQI,EAAEiyG,MAAMj0G,KAAKq1G,mBAAmBrzG,EAAEiyG,UAAK,EAAOp3F,IAAG,iBAAiB7a,EAAEiyG,MAAMj0G,KAAKq1G,mBAAmBrzG,EAAEiyG,KAAKN,KAAK3xG,EAAEiyG,KAAKh8E,KAAKpb,M,0CAAuB7a,EAAEoU,GAAE,oBAAcpU,GAAd,IAAC,4BAAehC,KAAf,SAAuBw/C,QAAQppC,GAAhC,iC,+CAA2DpU,EAAEoU,GAAE,oBAAcpU,GAAd,IAAC,2BAAe,KAAP5D,EAAO,QAAK4D,EAAEoU,EAAEhY,GAAG4B,KAAK5B,GAAGohD,SAAQ,IAAKx9C,QAAG,IAASA,GAA7D,iC,yCAAmFA,EAAEoU,EAAEhY,GAAM,IAAJ2D,EAAI,uDAAF3D,EAAG,GAAG4D,GAAGA,EAAE3D,OAAO,qBAAc0D,GAAd,IAAC,gCAAQC,EAAR,QAAehC,KAAKgC,GAAGw9C,SAAQ,GAAhC,8BAAmC,IAAnC,EAAuCppC,EAAEiG,GAAEra,EAAE5D,GAA7C,cAA+DgY,GAA/D,IAAgD,yDAAQpU,EAAR,KAAU5D,EAAV,KAAiB21G,GAAG/zG,KAAKgC,GAAG2xG,KAAKv1G,GAAG4B,KAAKgC,GAAGw9C,SAAQ,GAApG,oCAA4G,GAAGppC,GAAGA,EAAE/X,OAAO,CAAC,IAAD,EAAK2D,EAAEqa,GAAEjG,EAAEhY,GAAX,cAA6B4D,GAA7B,IAAc,yDAAQoU,EAAR,KAAUhY,EAAV,KAAiB21G,GAAG/zG,KAAKoW,GAAG6hB,KAAK75B,IAA/C,kC,gDAA4E,IAAU4D,EAA6BhC,KAAlC0wG,KAAYt6F,EAAsBpW,KAA3B2wG,KAAWvyG,EAAgB4B,KAApBkxG,IAAWnvG,EAAS/B,KAAdmxG,KAAWrvG,EAAG9B,KAAPoxG,IAAYpxG,KAAK4wG,UAAUx6F,EAAEw9F,KAAK9/F,IAAI,OAAOsC,EAAE6hB,KAAKnkB,IAAI,OAAO9T,KAAK6wG,YAAYz6F,EAAEw9F,KAAK9/F,IAAI,OAAOsC,EAAE6hB,KAAKnkB,IAAI,OAAO1V,EAAEohD,SAASx9C,EAAEi2B,KAAKnkB,IAAI,KAAK/R,EAAEy9C,SAASx9C,EAAEi2B,KAAKnkB,IAAI,OAAOhS,EAAE09C,SAASx9C,EAAEi2B,KAAKnkB,IAAI,S,mDAAmC,WAAU9R,EAA0BhC,KAA/B0wG,KAAYt6F,EAAmBpW,KAAxB2wG,KAAWvyG,EAAa4B,KAAjB8wG,IAAiB9wG,KAAX+wG,QAAkB2E,SAASt/F,EAAEw9F,KAAK9/F,IAAI,OAAO9R,EAAE4xG,KAAK9/F,IAAI,QAAQsC,EAAEs/F,QAAQ1zG,EAAE4xG,KAAK9/F,IAAI,OAAO1V,EAAEs3G,QAAQ1zG,EAAE4xG,KAAK9/F,IAAI,OAAO9T,KAAKi0G,KAAKz0D,QAAQ3iC,GAAEu7C,MAAM,SAAAp2D,GAAC,OAAE,IAAK,EAAKA,GAAGw9C,YAAWx/C,KAAK4wG,WAAW5wG,KAAK6wG,YAA3N,oBAAoPh0F,IAApP,IAAuO,4BAAe7c,KAAf,SAAuB21G,mBAA9P,iC,2CAA2X,oBAAc9pD,IAAd,IAAC,gCAAQ7pD,EAAR,QAAehC,KAAKgC,GAAGw9C,UAAUtjC,EAAElN,IAAIhN,IAAIsa,EAAE,iBAAiBta,IAA/D,iC,+BAA7F,WAAC,OAAOga,GAAEpP,KAAK,SAAA5K,GAAC,OAAE,EAAKA,GAAGw9C,WAAU4Y,MAAM,SAAAp2D,GAAC,OAAE,IAAKA,MAAKhC,KAAKi0G,KAAKz0D,Y,GAAl/E2zD,IAAilF,SAAS92F,GAAEra,EAAEoU,GAAG,IAAIhY,EAAE2D,EAAED,EAAEkD,EAAX,EAAa4J,EAAE,GAAf,cAA2BwH,GAA3B,IAAkB,2BAAW,CAAPtU,EAAO,6BAAU1D,EAAE4b,GAAE1P,IAAIxI,GAAGC,EAAE,GAAG3D,IAA1B,IAAC,2BAAI4G,EAAJ,SAA6BhD,EAAEizB,SAASjwB,EAAE,KAAKhD,EAAEizB,SAASjwB,EAAE,MAAMjD,EAAEsD,KAAKL,EAAE,IAA5E,8BAAgFjD,EAAE1D,QAAQuQ,EAAEvJ,KAAK,CAACvD,EAAEC,KAAjI,8BAAqI,OAAO6M,EAAE,SAASgN,GAAE5Z,EAAEoU,GAAG,YAAO,IAASpU,EAAEA,OAAE,IAASoU,EAAEA,OAAE,EAAO,SAAS29F,GAAG/xG,EAAEoU,GAAE,oBAAcA,GAAd,IAAC,gCAAQhY,EAAR,QAAe4D,EAAE8R,IAAI1V,IAAtB,+BAAyB6b,EAAE46F,GAAE,UAAUb,I,IAAS4B,G,WAAG,WAAY5zG,GAAE,+BAACiY,EAAEja,KAAK,UAAU,IAAIia,EAAEja,KAAK,SAAS,IAAIia,EAAEja,KAAK,SAAS,IAAIia,EAAEja,KAAK,gBAAgB,SAAAgC,GAAC,OAAE,EAAK6zG,OAAOxwG,KAAKrD,MAAKhC,KAAKkN,QAAQ2nG,GAAEiB,UAAU9zG,G,wFAAcA,G,+EAAmB+X,EAAE/X,EAAEhC,KAAKkN,S,OAAzBlN,KAAK+1G,K,4IAAqC,IAAG/1G,KAAKg2G,WAAR,CAA6B,IAA9B,EAAoCh0G,EAAGhC,KAAR+1G,KAAa3/F,EAAEpU,EAAEmwG,UAAU,GAA1D,cAA4Er3F,GAA5E,IAA6D,yDAAQ1c,EAAR,KAAU2D,EAAV,KAAiB,GAAGA,EAAEk0G,UAAUj0G,EAAEoU,GAAG,OAAOpW,KAAKg2G,WAAW,IAAIj0G,EAAE/B,KAAKkN,QAAQlN,KAAK+1G,KAAK/1G,KAAKk2G,SAASl0G,EAAE5D,IAAG,GAAzK,8BAA4K4B,KAAK+1G,KAAKI,OAAOn2G,KAAK+1G,KAAKI,QAAQ57F,EAAE,0B,+IAAgDvY,EAAYhC,KAAnBo2G,OAAgBhgG,EAAGpW,KAAV61G,OAAsB71G,KAAKq2G,SAAQr2G,KAAKkN,QAAQonG,a,gCAAoBt0G,KAAKs2G,iBAAiBhG,MAAMtwG,KAAKu2G,c,OAAcngG,EAAE/Q,KAAF,MAAA+Q,EAAC,YAASpW,KAAKg2G,WAAWH,S,wCAAe71G,KAAKs2G,iB,eAAiBt2G,KAAK+1G,KAAKI,OAAOn2G,KAAK+1G,KAAKI,QAAQn2G,KAAKkN,QAAQonG,cAAcl+F,EAAE/X,OAAO,IAAI2D,EAAE6zG,OAAOz/F,G,kBAAGlU,EAAEF,I,0QAAqCA,EAAGhC,KAAVo2G,O,SAAqBp2G,KAAKg2G,WAAWrwG,Q,cAAYyQ,EAAE1X,OAAO0qB,OAAOppB,KAAKk2G,SAAStpG,IAA5B,iBAAAlO,OAAA,IAAAA,CAAA,QAAiC,WAAM0X,GAAN,qFAAsBA,EAAEzQ,QAAxB,OAAcvH,EAAd,OAAgCgY,EAAEogG,eAAex0G,EAAE5D,GAAnD,2CAAjC,uDAA0F4B,KAAKkN,QAAQonG,eAAel+F,EAAEA,EAAExJ,KAAK,SAAA5K,GAAC,OAAEA,EAAEsuG,MAAM,EAAKiG,kB,SAAuBx1G,QAAQ0nC,IAAIryB,G,0QAA4BpW,KAAKq2G,QAAoBr0G,EAAUhC,KAAlBkN,QAAekJ,EAAGpW,KAAR+1G,KAAa33G,EAAE8d,EAAE5R,IAAI,OAAOtI,IAAYoU,EAAE69F,K,gBAAKlyG,EAAE,CAACkQ,MAAM,EAAElH,KAAK,Q,+BAAQqL,EAAEqgG,M,uCAAez2G,KAAKg2G,WAAWU,iBAAiB,Q,QAAzC30G,E,uBAAkD,IAASA,E,oEAAqB/B,KAAKg2G,WAAWW,mBAAmB50G,G,eAA3CD,E,OAA8CkD,EAAEhF,KAAKk2G,QAAQjC,KAAK,IAAI71G,EAAE0D,EAAEE,EAAEoU,G,UAAWpR,EAAE4xG,mB,eAAVhoG,E,0BAAoCwH,EAAE+/F,OAAO//F,EAAE+/F,QAAQvnG,I,uHAAkBioG,G,iFAAf,WAAkB70G,EAAEoU,GAApB,4EAA2BhY,EAAE,IAAIw3G,GAAGx/F,GAApC,SAAoDhY,EAAEi1B,KAAKrxB,GAA3D,gCAA8D5D,EAAEuH,SAAhE,4C,sBAAwE,IAAImxG,GAAGp4G,OAAOmyC,OAAO,CAACxnC,UAAU,KAAK1D,MAAMkxG,GAAGE,MAAMnB,GAAGoB,YAAYl8F,EAAEm8F,eAAe/6F,EAAEg7F,YAAYr9F,EAAEg6F,QAAQ75F,GAAE85F,UAAUh6F,GAAEq9F,YAAY36F,GAAE46F,iBAAiBn7F,GAAEo7F,iBAAiBx1G,GAAEy1G,sBAAsB76F,GAAE86F,sBAAsBn7F,GAAEo7F,aAAa56F,GAAE66F,cAAcz7F,GAAE8lB,SAAS+pB,GAAE6rD,WAAW76F,GAAE86F,kBAAkBrxF,GAAEsxF,iBAAiB77F,GAAE87F,aAAal7F,GAAEm7F,cAAch8F,GAAEi8F,QAAQlD,KAAUmD,G,WAAG,WAAYh2G,EAAEoU,EAAEhY,GAAE,+BAAC6b,EAAEja,KAAK,SAAS,IAAIia,EAAEja,KAAK,qBAAN,qCAA4B,WAAMgC,GAAN,0EAAcoU,EAAEpU,EAAEiQ,MAAM7T,EAAE4D,EAAE8M,MAAM,OAAS,EAAKinG,KAAKxB,QAArD,qBAAgE,EAAKwB,KAAKkC,UAAU7hG,EAAEhY,GAAtF,gBAAyF4D,EAAEi1C,MAAM,EAAK8+D,KAAKmC,SAAS9hG,EAAEhY,GAAtH,gDAAgJ,EAAK23G,KAAKoC,UAAU/hG,EAAEhY,GAAtK,OAAkI4D,EAAEi1C,MAApI,yDAAkL18B,EAAE,0BAAD,OAA2BglB,KAAKt7B,UAAUjC,GAA1C,aAAiD,KAAE6G,UAAtO,gCAAsP,EAAKktG,KAAKrE,WAAWt7F,EAAEhY,EAAE4D,EAAEi1C,MAAM,EAAK8+D,KAAKmC,SAAS9hG,EAAEhY,QAAG,IAAS4D,EAAE8M,KAAK9M,EAAEi1C,MAAM,EAAK8+D,KAAKmC,SAAS9hG,GAAGmE,EAAE,wBAAwBglB,KAAKt7B,UAAUjC,IAAtY,iCAAiZA,EAAEi1C,OAAnZ,0DAA5B,uDAAwbj3C,KAAKo4G,eAAep4G,KAAKo4G,cAAcp2G,GAAGhC,KAAKkN,QAAQlL,EAAEhC,KAAK+1G,KAAK3/F,EAAEpW,KAAKk2G,QAAQ93G,E,0DAAgB4D,EAAEoU,GAAGpW,KAAKkN,QAAQlL,GAAGw9C,SAASx/C,KAAKq4G,aAAar2G,EAAEoU,K,mCAAgBpU,EAAEoU,GAAG,IAAIhY,EAAE,IAAI8d,EAAE5R,IAAItI,GAAV,CAAcoU,EAAEpW,KAAKkN,QAAQlN,KAAK+1G,MAAM,OAAO/1G,KAAKk2G,QAAQl0G,GAAG5D,I,oCAAgB4D,GAAE,oBAAcA,GAAd,IAAC,2BAAe,KAAPoU,EAAO,QAAUpU,EAAWoU,EAAhBrL,KAAa3M,EAAGgY,EAAT6gC,MAAWl1C,EAAE/B,KAAKkN,QAAQlL,GAAG,GAAGD,GAAGA,EAAEy9C,QAAQ,CAAC,IAAIppC,EAAEpW,KAAKk2G,QAAQl0G,GAAGoU,GAAGA,EAAEkiG,QAAQliG,GAAGpW,KAAKq4G,aAAar2G,EAAE5D,KAApI,iC,0EAA4J4D,G,4EAAOoU,EAAEpU,EAAE4K,IAAI5M,KAAK22G,oB,SAA0B51G,QAAQ0nC,IAAIryB,G,8GAAUy4F,G,WAA+U,WAAY7sG,GAAS,WAAPoU,EAAO,uDAAL,GAAGhY,EAAE,2DAAC6b,EAAEja,KAAK,SAAS,IAAIia,EAAEja,KAAK,MAAM,IAAIk/B,KAAKjlB,EAAEja,KAAK,eAAe,SAAAgC,GAAI,IAAI,EAAKkL,QAAQonG,aAAa,MAAMtyG,EAAE,EAAK6zG,OAAOxwG,KAAKrD,EAAE6G,YAAY7I,KAAKi3C,MAAMj3C,KAAKu4G,eAAev2G,GAAGhC,KAAK+1G,KAAK33G,EAAE4B,KAAK+K,KAAK/K,KAAKP,YAAYsL,KAAK/K,KAAKw4G,cAAcx4G,KAAKkN,QAAQkJ,EAAEpW,KAAKy4G,aAAariG,EAAEpW,KAAK+K,MAAM/K,KAAK04G,aAAa14G,KAAKy4G,cAAcz4G,KAAKy4G,aAAa9pF,U,2DAAzY3sB,GAAG,OAAOA,aAAa8a,EAAE9a,EAAE,IAAI8a,EAAE9a,M,oCAArTA,EAAEoU,GAAG,IAAIhY,EAAE4D,EAAEmwG,UAAU/7F,EAAE,GAAG,EAAErU,EAAE,mBAAmB/B,KAAK24G,aAAa34G,KAAK24G,aAAa32G,EAAEoU,EAAEhY,GAAG4B,KAAK24G,aAAa72G,EAAEsU,EAAErU,EAAEiD,EAAE5G,EAAE2D,EAAE,MAAM,CAACgG,OAAOqO,EAAE/X,OAAOD,EAAEu6G,aAAa52G,EAAEkQ,MAAMnQ,EAAEgN,KAAK9J,EAAEkN,IAAIpQ,EAAEkD,K,4BAAgBhD,GAAO,IAALoU,EAAK,uDAAH,GAAI,OAAO,IAAIpW,KAAKgC,EAAE,IAAI6yG,GAAJ,eAAQ70G,KAAK+K,KAAMqL,IAAIpU,GAAG2D,Y,iDAAsb3F,KAAK04G,eAAe14G,KAAK44G,WAAW54G,KAAK64G,eAAe74G,KAAKowC,IAAIpwC,KAAK+K,S,qCAAuH/I,EAAEoU,GAAG,IAAD,EAAKhY,EAAEoe,GAAElS,IAAI8L,GAAGrU,EAAE+X,GAAExP,IAAI8L,GAAGtU,EAAEkY,GAAE1P,IAAI8L,GAAGpR,EAAEhF,KAAKkN,QAAQkJ,GAAGxH,EAAE5J,EAAEsuG,gBAAgBl1G,EAAEoD,EAAEwD,EAAEquG,mBAAmBtxG,EAAE6W,EAAE5T,EAAEouG,iBAAiBtxG,EAAE+W,EAAE,GAAhI,cAAkJ7W,GAAlJ,IAAmI,yDAAQoU,EAAR,KAAUpR,EAAV,KAAiB4J,GAAGxQ,EAAE4Q,IAAIoH,GAAGpR,EAAE5G,EAAEkM,IAAI8L,EAANhY,CAAS4G,GAAGxD,GAAGO,EAAEiN,IAAIoH,KAAKpR,EAAEhF,KAAK84G,eAAe9zG,EAAEjD,EAAEuI,IAAI8L,KAAKwC,GAAG9W,EAAEkN,IAAIoH,KAAKA,EAAEtU,EAAEwI,IAAI8L,IAAIA,GAAGyC,EAAEzC,GAAGpR,GAAjQ,8BAAmQ,OAAO6T,I,qCAAiB7W,EAAEoU,GAAG,OAAOA,EAAEpU,IAAIoU,EAAE2iG,SAAS/2G,I,qCAAiBA,EAAEoU,GAAGpW,KAAKg5G,qBAAqBh3G,EAAEhC,KAAKP,YAAYsL,KAAKqL,K,2CAAwBpU,EAAEoU,EAAEhY,GAAG,GAAG4B,KAAKw4G,cAAcnE,YAAY,OAAO31G,OAAOwX,OAAOlU,EAAE5D,GAAG4D,EAAEoU,GAAG1X,OAAOwX,OAAOlU,EAAEoU,GAAGhY,GAAG4D,EAAEoU,GAAGhY,I,6BAAlmB,OAAO4B,KAAK44G,WAAW54G,KAAK44G,WAAW54G,KAAKowC,IAAI1xC,OAAOu6G,YAAYj5G,KAAKowC,UAAK,M,KAAsnB,SAAS8oE,GAAGl3G,GAAG,OAAO,MAAMA,GAAG,MAAMA,GAAG,MAAMA,GAAG,MAAMA,GAAG,MAAMA,GAAG,MAAMA,GAAG,MAAMA,EAAE,SAASm3G,GAAGn3G,GAAG,OAAOA,GAAG,KAAKA,GAAG,IAAI,SAASuvG,GAAGvvG,EAAEoU,EAAEhY,GAAE,oBAAgB8d,GAAhB,IAAC,yDAAQna,EAAR,KAAiB,GAAjB,KAAsBk0G,UAAUj0G,EAAEoU,EAAEhY,GAAG,OAAO2D,GAA/C,+BAAzOkY,EAAE40F,GAAG,eAAe,GAAG50F,EAAE40F,GAAG,YAAO,GAAQ50F,EAAE40F,GAAG,gBAAe,GAAI50F,EAAE40F,GAAG,aAAa,kBAAI,K,IAAuMuK,G,kDAAc,aAAiB,qDAAFp3G,EAAE,yBAAFA,EAAE,uBAAC,+BAASA,IAAGiY,EAAE,eAAK,cAAc,IAAIA,EAAE,eAAK,eAAe,IAAIA,EAAE,eAAK,kBAAkB,IAAzF,E,0KAAwJja,KAAKq5G,kB,uBAAwBr5G,KAAKs5G,aAAat5G,KAAKu5G,a,OAAav5G,KAAKw5G,qBAAqBx5G,KAAKy5G,cAAcz5G,KAAK05G,mBAAmB15G,KAAKu5G,a,mJAAoCv3G,GAAE,YAAC,IAAKA,GAAGhC,KAAK25G,SAAQ,EAAG35G,KAAK45G,OAAO,IAAI/lG,IAAIqI,EAAE29F,aAAa73G,OAAE,IAASA,EAAEka,EAAE29F,UAAUvjF,QAAQ,SAAAt0B,GAAC,OAAE,EAAKkL,QAAQlL,GAAGw9C,WAAUx9C,EAAEs0B,QAAQ,SAAAt0B,GAAC,OAAE,EAAKkL,QAAQlL,GAAGw9C,SAAStjC,EAAElN,IAAIhN,MAAKhC,KAAK25G,SAAQ,EAAG35G,KAAKokC,UAAU,IAAIvwB,IAAI7R,GAAGhC,KAAK45G,OAAO,IAAI/lG,IAAI7R,IAAIhC,KAAK85G,wBAAuB,I,0LAAyB93G,E,+BAAE,EAAEoU,E,uBAAGpW,KAAK+5G,uBAAuB3jG,GAAYhY,EAAkC4B,KAAvC+1G,KAAeh0G,EAAwB/B,KAAhC25G,QAAiB73G,EAAe9B,KAAtB45G,OAAmB50G,EAAGhF,KAAbokC,U,MAAsBriC,GAAG/B,KAAK+1G,KAAKxB,S,yBAAUxyG,EAAEJ,MAAMwI,KAAKrI,GAAGs2D,MAAM,SAAAp2D,GAAI,IAAIoU,EAAE8F,EAAE5R,IAAItI,GAAG5D,EAAE,EAAK8O,QAAQlL,GAAG,OAAOoU,EAAE+9F,cAAc/1G,EAAE+1G,gB,KAAgBpyG,G,uCAAS/B,KAAK+1G,KAAKiE,Y,WAAah4G,EAAEhC,KAAKi6G,uBAAuBj4G,EAAE5D,EAAEszG,YAAa1xG,KAAKkN,QAAQgtG,WAAU97G,EAAEm2G,Q,iBAAan+F,GAAE,E,aAAQpR,EAAE8J,KAAK,IAAIsH,IAAIhY,EAAE+7G,mBAAkBn6G,KAAK85G,uB,oBAA8C/3G,EAAG3D,EAAnBg8G,gBAAqBt4G,EAAE9B,KAAKu5G,YAAYnhD,MAAM,SAAAp2D,GAAC,OAAG,EAAK+zG,KAAKkC,UAAUj2G,EAAE+F,QAAQ/F,EAAEiQ,MAAMjQ,EAAE3D,QAAQ2D,EAAE8M,WAAa9M,EAAED,IAAID,E,kCAAS1D,EAAEi8G,cAAcr4G,G,8DAAU5D,EAAEi8G,cAAct4G,G,gCAA3DqU,E,UAA8D,KAAUpU,EAAEhC,KAAKi6G,uBAAuBj4G,EAAE5D,EAAEszG,a,uNAA6C1vG,EAAEoU,GAAGA,GAAG,EAAyE,IAAnE,IAAAhY,EAAE2D,EAAED,EAAEkD,EAAE4J,EAAEpN,EAAQoX,EAA4C5Y,KAAjD+1G,KAAel9F,EAAkC7Y,KAA1C25G,QAAiBzJ,EAAyBlwG,KAAhC45G,OAAmB3/F,EAAaja,KAAvBokC,UAAoBliC,EAAGlC,KAAXkN,QAAqBlL,EAAEoU,EAAEpU,IAAI,GAAG,MAAM4W,EAAEy5F,SAASrwG,GAAG,GAAqBm3G,GAAlB/6G,EAAEwa,EAAEy5F,SAASrwG,EAAE,IAAS,CAAC,GAAGD,EAAE6W,EAAEu5F,UAAUnwG,EAAE,IAAGF,EAAEyvG,GAAG34F,EAAE5W,EAAED,KAAMmuG,EAAElhG,IAAIlN,KAAgB8M,GAAX5J,EAAEkX,EAAE5R,IAAIxI,IAAOw4G,aAAa1hG,EAAE5W,GAAGR,EAAEU,EAAEJ,GAAG8M,EAAE7D,KAAKjJ,EAAE9B,KAAKu5G,YAAYl0G,KAAKuJ,IAAIiK,IAAI7T,EAAEmvG,cAAc3yG,EAAE2yG,cAAcn0G,KAAK85G,uBAAuBlrG,EAAE2rG,YAAY3rG,EAAE4rG,WAAWx6G,KAAK85G,wBAAwB7/F,EAAEgc,OAAOn0B,IAAImY,EAAEgc,OAAOn0B,GAAG,IAAImY,EAAEnL,OAAO,MAAM5M,EAAEu4G,yBAAwB7rG,EAAEigG,GAAGyL,aAAa1hG,EAAE5W,IAAK04G,OAAOt8G,EAAE4B,KAAK26G,gBAAgBt1G,KAAKuJ,IAAI5M,GAAGD,EAAE,OAAO,GAAGm3G,GAAG96G,GAAG,CAAC,GAAG2D,EAAE6W,EAAEu5F,UAAUnwG,EAAE,GAAG,MAAM5D,IAAG,IAAK8D,EAAE04G,aAAa,OAAO14G,EAAE24G,oBAAoB76G,KAAK86G,aAAaz1G,KAAK,CAAC0C,OAAO/F,EAAE3D,OAAO0D,EAAE24G,OAAOt8G,IAAI4D,GAAGD,EAAE,EAAE,OAAOC,I,2CAAsB,WAAC,GAAIhC,KAAKu5G,YAAYnhD,MAAM,SAAAp2D,GAAC,OAAEA,EAAEmyG,gBAAhC,CAAsD,IAAInyG,EAAE,SAASA,EAAEoU,GAAuB,IAApB,IAAIhY,EAAE2D,EAAED,EAAEkD,EAAE,IAAIk6B,IAAYtwB,EAAE,EAAEA,EAAE5M,EAAE3D,OAAOuQ,IAAW7M,GAAP3D,EAAE4D,EAAE4M,IAAM,KAAI5J,EAAEgK,IAAIjN,GAAGD,EAAEkD,EAAEsF,IAAIvI,GAAGiD,EAAE4O,IAAI7R,EAAED,EAAE,IAAIA,EAAEuD,KAAKjH,GAAG,OAAOuD,MAAMwI,KAAKnF,GAAzI,CAA6IhF,KAAKu5G,aAAoBv5G,KAAK05G,kBAAkB13G,EAAE4K,KAAK,YAAS,uBAAP5K,EAAO,KAALoU,EAAK,KAAKhY,EAAE8d,EAAE5R,IAAItI,EAAE,EAAKkL,SAAS,OAAG9O,EAAE28G,oBAA2B,CAAChwG,KAAK/I,EAAEi1C,MAAM74C,EAAE28G,oBAAoB3kG,IAAWA,EAAE,S,iCAAiBpU,GAAG,OAAOhC,KAAKu5G,YAAY9R,MAAM,SAAArxF,GAAC,OAAEA,EAAErL,OAAO/I,O,8EAA2BA,G,wEAAOoU,EAAEpW,KAAKwhC,WAAWx/B,G,UAAU,IAASoU,G,qCAAUpW,KAAKq5G,gBAAgB,EAAE,CAACr3G,I,OAAIoU,EAAEpW,KAAKwhC,WAAWx/B,G,gCAAIoU,G,yIAA/5EpU,EAAEoU,GAAG,OAAO,QAAQA,M,GAAtJ4hG,IAAoiF/9F,EAAEm/F,GAAG,OAAO,QAAQt+F,EAAElH,IAAI,OAAOwlG,IAAI,IAAM4B,GAAG,MAAC,EAAO,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAkzDC,G,qRAAoIj7G,KAAKk7G,cAA0Bl5G,EAAGhC,KAAXkN,Q,KAAuBlL,EAAE0uG,KAAKlxD,S,qCAAex/C,KAAKm7G,iB,eAAiBn5G,EAAE2uG,KAAKnxD,S,uCAAex/C,KAAKo7G,UAAU,kB,gBAAkBp5G,EAAE8uG,IAAItxD,S,uCAAex/C,KAAKo7G,UAAU,iB,gBAAiBp5G,EAAE+uG,QAAQvxD,S,uCAAex/C,KAAKo7G,UAAU,qB,gBAAqBp5G,EAAEgvG,KAAKxxD,S,uCAAex/C,KAAKo7G,UAAU,uB,iCAAuBp7G,KAAKq7G,gB,uIAAyBr5G,GAAG,IAAIoU,EAAEpW,KAAKgC,KAAK,YAAO,IAASoU,EAAEk6F,QAAQl6F,EAAEA,EAAEk6F,MAAMtwG,KAAKs7G,cAAcllG,I,4CAAmB,IAASpW,KAAKu7G,aAAav7G,KAAKu7G,WAAWv7G,KAAKi3C,MAAMu7D,UAAU,M,uCAAqB,QAAG,IAASxyG,KAAKw7G,WAAW,CAACx7G,KAAKy7G,iBAAiB,IAAIz5G,EAAEhC,KAAKi3C,MAAMk7D,UAAUnyG,KAAKu7G,YAAYnlG,EAAEpW,KAAKu7G,WAAW,EAAE,GAAGv5G,EAAEhC,KAAKw7G,WAAWx7G,KAAKi3C,MAAMu7D,UAAUp8F,M,iCAAepU,EAAEoU,GAAG,IAAIhY,EAAE,IAAI8gC,IAAI,OAAOl/B,KAAKoW,GAAGhY,EAAE4B,KAAK07G,UAAU15G,EAAEoU,EAAEhY,GAAGA,I,yJAA4B4B,KAAK0wG,K,oDAAqB1uG,EAAGhC,KAAR+1G,KAAa/1G,KAAKy7G,iBAAiBz7G,KAAKu7G,WAAW,GAAGhhG,EAAE,wBAAwBvY,EAAEuyG,SAASv0G,KAAKu7G,WAAWv5G,EAAE0vG,YAAYn3F,EAAE,4DAAD,OAA6Dva,KAAKu7G,WAAlE,8BAAkGv5G,EAAE0vG,a,KAAc1vG,EAAEiyG,M,uCAAYjyG,EAAE25G,YAAY37G,KAAKu7G,WAAWp/F,EAAEnc,KAAKkN,U,eAAckJ,EAAEpW,KAAK47G,WAAW57G,KAAKu7G,WAAW,Q,kBAAe,IAAInlG,EAAEtH,MAAM9O,KAAK67G,WAAWzlG,EAAE9L,IAAI,OAAOtK,KAAK87G,cAAc1lG,EAAE9L,IAAI,OAAOtK,KAAK+7G,UAAU3lG,EAAE9L,IAAI,OAAOtK,KAAKkxG,IAAI96F,EAAE9L,IAAI,KAAKtK,KAAKmxG,KAAK/6F,EAAE9L,IAAI,OAAOtK,KAAKoxG,IAAIh7F,EAAE9L,IAAI,OAAOtK,KAAKkN,QAAQknG,WAAWh+F,EAAE6f,OAAO,OAAO7f,EAAE6f,OAAO,OAAO7f,EAAE6f,OAAO,OAAO7f,EAAE6f,OAAO,KAAK7f,EAAE6f,OAAO,OAAO7f,EAAE6f,OAAO,QAAQ7f,QAAG,G,8PAAiCpW,KAAK2wG,K,yDAAe3wG,KAAK0wG,K,qCAAY1wG,KAAKm7G,iB,eAAiB,IAASn7G,KAAK67G,W,yDAAkB77G,KAAK+1G,KAAK9B,M,uCAAYj0G,KAAK+1G,KAAK4F,YAAY37G,KAAK67G,WAAW1/F,EAAEnc,KAAKkN,U,eAAclL,EAAEhC,KAAK47G,WAAW57G,KAAK67G,WAAW,Q,mBAAe77G,KAAK87G,gBAAgB97G,KAAK87G,cAAc95G,EAAEsI,IAAI,QAAQtK,KAAK4wG,UAAU5uG,EAAEsI,IAAI,OAAOtK,KAAK6wG,YAAY7uG,EAAEsI,IAAI,OAAOtK,KAAKkN,QAAQknG,WAAWpyG,EAAEi0B,OAAO,OAAOj0B,EAAEi0B,OAAO,OAAOj0B,EAAEi0B,OAAO,QAAQj2B,KAAK4mB,OAAO5kB,EAAE,OAAOhC,KAAK4mB,OAAO5kB,EAAE,OAAOA,I,oIAASA,EAAEoU,GAAG,IAAIhY,EAAE4D,EAAEsI,IAAI8L,GAAGhY,GAAG,IAAIA,EAAEC,QAAQ2D,EAAE4R,IAAIwC,EAAEhY,EAAE,M,sJAA6B4B,KAAK8wG,I,yDAAc9wG,KAAK0wG,K,qCAAY1wG,KAAKm7G,iB,eAAiB,IAASn7G,KAAK+7G,U,wDAAqB/5G,EAAEhC,KAAK47G,WAAW57G,KAAK+7G,UAAU,O,mBAAc/5G,GAAGA,EAAEgN,IAAI,IAAIhN,EAAEgN,IAAI,KAAKhN,EAAE4R,IAAI,WAAWooG,GAAE,WAAF,cAAMh6G,EAAEsI,IAAI,IAAZ,QAAetI,EAAEsI,IAAI,OAAKtI,EAAE4R,IAAI,YAAYooG,GAAE,WAAF,cAAMh6G,EAAEsI,IAAI,IAAZ,QAAetI,EAAEsI,IAAI,QAAMtI,I,gQAAgChC,KAAK+wG,S,8BAAU/wG,KAAK0wG,K,qCAAY1wG,KAAKm7G,iB,oBAAiB,IAASn7G,KAAK87G,eAAe97G,KAAK2wG,K,uCAAY3wG,KAAKi8G,iB,kBAAiB,IAASj8G,KAAK87G,c,2DAAsB97G,KAAK47G,WAAW57G,KAAK87G,cAAc,Y,8QAAqC95G,E,gCAAUhC,KAAKgxG,MAAOhxG,KAAKk8G,YAAcl8G,KAAKkN,QAAQmnG,cAAaryG,E,0CAAUhC,KAAKm8G,iBAAiBn8G,KAAKw7G,WAAW,IAAIx7G,KAAK47G,WAAW57G,KAAKw7G,WAAW,QAAQx7G,KAAKk8G,YAAW,GAAIl8G,KAAKgxG,O,gQAAiChxG,KAAKo8G,cAAcp8G,KAAKk7G,c,KAAcl7G,KAAKk8G,W,qCAAkBl8G,KAAKq8G,qBAAoB,G,eAAI,IAASr8G,KAAKgxG,K,wDAAgBhvG,EAAEhC,KAAKgxG,KAAK1mG,IAAI,KAAK8L,EAAEpW,KAAKgxG,KAAK1mG,IAAI,K,kBAAYtK,KAAKi3C,MAAMi7D,cAAclwG,EAAEoU,I,2IAAgF,IAAIpU,EAAEoU,EAAEhY,EAAT,EAAW2D,EAAE,GAAb,cAAyB8a,IAAzB,IAAgB,2BAAW,IAAc7L,EAAXhP,EAAEhC,KAAZoW,EAAJ,UAA8B,GAAGhY,EAAE4B,KAAK04G,aAAa14G,KAAK64G,eAAe72G,EAAEoU,GAAG1X,OAAOu6G,YAAYj3G,GAAGhC,KAAKkN,QAAQmnG,YAAY,CAAC,GAAG,SAASj+F,EAAE,SAAS1X,OAAOwX,OAAOnU,EAAE3D,QAAQ2D,EAAEqU,GAAGhY,EAAlM,8BAAoM,OAAO4B,KAAK4wG,YAAY7uG,EAAE6uG,UAAU5wG,KAAK4wG,WAAW5wG,KAAK6wG,cAAc9uG,EAAE8uG,YAAY7wG,KAAK6wG,aAAa9uG,I,qCAAiBC,EAAEoU,GAAG,GAAGpW,KAAKw4G,cAAcnE,YAAY31G,OAAOwX,OAAOlU,EAAEoU,QAAQ,cAAe1X,OAAOs2D,QAAQ5+C,GAA9B,0CAAQhY,EAAR,KAAU2D,EAAV,KAAiC/B,KAAKg5G,qBAAqBh3G,EAAE5D,EAAE2D,M,4BAA1f,OAAO/B,KAAK0wG,O,gCAAqB,OAAO1wG,KAAKgxG,Q,iCAA1hGhvG,EAAEoU,GAAG,OAAO,MAAMpU,EAAEqwG,SAASj8F,EAAE,IAAI,aAAapU,EAAEwwG,UAAUp8F,EAAE,IAAI,IAAIpU,EAAEmwG,UAAU/7F,EAAE,O,+KAAh4D,IAAIpU,EAAEhC,KAAKi3C,MAAMk7D,YAAY,QAAQnwG,EAAEhC,KAAKuxG,IAAG,EAAG,QAAQvvG,IAAIhC,KAAKuxG,IAAG,GAAIvxG,KAAKi3C,MAAMs6D,GAAGvxG,KAAKuxG,GAAGvxG,KAAKo8G,cAAa,I,gCAAap6G,EAAEoU,GAAY,IAAVhY,EAAU,uDAAR,IAAI8gC,IAAI,EAAoBl/B,KAAKkN,QAAQkJ,GAAvBrU,EAAV,EAAK4xG,KAAY7xG,EAAjB,EAAYm2B,KAAyCjzB,GAAjBjD,EAAE,IAAI8R,IAAI9R,IAAW+M,KAAK,EAAEF,EAAE,IAAI9M,EAAEgN,KAAKtN,EAAExB,KAAKi3C,MAAMk7D,UAAUnwG,GAAGA,GAAG,EAAE,IAAI,IAAI4W,EAAE,EAAEA,EAAEpX,EAAEoX,IAAI,CAAC,IAAIpX,EAAExB,KAAKi3C,MAAMk7D,UAAUnwG,GAAG,GAAGgD,GAAG,GAAGjD,EAAEiN,IAAIxN,KAAKpD,EAAEwV,IAAIpS,EAAExB,KAAKs8G,SAASt6G,EAAER,EAAE4U,IAAIrU,EAAEk0B,OAAOz0B,GAAG,IAAIO,EAAE+M,MAAM,WAAWF,GAAG9M,EAAEkN,IAAIxN,IAAIpD,EAAEwV,IAAIpS,EAAExB,KAAKs8G,SAASt6G,EAAER,EAAE4U,IAAIpU,GAAG,GAAG,OAAO5D,I,+BAAW4D,EAAEoU,EAAEhY,GAAM,IAAO2D,EAAG/B,KAATi3C,MAAcn1C,EAAEC,EAAEowG,UAAUnwG,EAAE,GAAGgD,EAAEjD,EAAEywG,UAAUxwG,EAAE,GAAG4M,EAAEosG,GAAGl5G,GAAG,GAAG8M,EAAE5J,GAAG,EAAEhD,GAAG,EAAEA,EAAED,EAAEywG,UAAUxwG,EAAE,IAAIF,EAAE,GAAGA,EAAE,KAAKyY,EAAE,mCAAD,OAAoCnc,EAAEoQ,cAAtC,kBAA6D4H,EAAE1S,SAAS,IAAxE,mBAAsF5B,EAAtF,oBAAmGE,IAAKA,EAAED,EAAE2vG,YAAYn3F,EAAE,qCAAD,OAAsCnc,EAAEoQ,cAAxC,kBAA+D4H,EAAE1S,SAAS,IAA1E,mBAAwF5B,EAAxF,oBAAqGE,EAArG,qCAAmID,EAAE2vG,aAAc,IAAI5vG,EAAE,OAAOC,EAAEmwG,cAAclwG,EAAEgD,GAAG,GAAG,IAAIlD,EAAE,OAAO0W,EAAEzW,EAAEw6G,UAAUv6G,EAAEgD,IAAI,GAAG,IAAIlD,EAAE,OAAOC,EAAEmwG,cAAclwG,EAAEgD,GAAG,GAAG,IAAIA,EAAE,OAAOhF,KAAKw8G,cAAc16G,EAAEE,GAA8T,IAA1T,IAAIoU,EAAE,IAAI,SAASpU,GAAG,OAAOA,GAAG,KAAK,EAAE,OAAOwvG,WAAW,KAAK,EAAE,OAAOiL,YAAY,KAAK,EAAE,OAAOC,YAAY,KAAK,EAAE,OAAO/6G,MAAM,KAAK,EAAE,OAAOg7G,UAAU,KAAK,EAAE,OAAOC,WAAW,KAAK,EAAE,OAAOC,WAAW,KAAK,GAAG,OAAOl7G,MAAM,KAAK,GAAG,OAAOm7G,aAAa,KAAK,GAAG,OAAOC,aAAa,QAAQ,OAAOp7G,OAAjS,CAAySG,GAAzS,CAA6SkD,GAAG5G,EAAEwQ,EAAU7M,EAAE,EAAEA,EAAEiD,EAAEjD,IAAIqU,EAAErU,GAAG/B,KAAKw8G,cAAc16G,EAAEE,GAAGA,GAAG5D,EAAE,OAAOgY,I,oCAAiBpU,EAAEoU,GAAE,IAAWhY,EAAG4B,KAATi3C,MAAc,OAAOj1C,GAAG,KAAK,EAAE,OAAO5D,EAAEi0G,SAASj8F,GAAG,KAAK,EAAE,OAAOhY,EAAE+zG,UAAU/7F,GAAG,KAAK,EAAE,OAAOhY,EAAEo0G,UAAUp8F,GAAG,KAAK,EAAE,OAAOhY,EAAEo0G,UAAUp8F,GAAGhY,EAAEo0G,UAAUp8F,EAAE,GAAG,KAAK,EAAE,OAAOhY,EAAEg0G,QAAQh8F,GAAG,KAAK,EAAE,OAAOhY,EAAEk0G,SAASl8F,GAAG,KAAK,EAAE,OAAOhY,EAAEm0G,SAASn8F,GAAG,KAAK,GAAG,OAAOhY,EAAEm0G,SAASn8F,GAAGhY,EAAEm0G,SAASn8F,EAAE,GAAG,KAAK,GAAG,OAAOhY,EAAE4+G,SAAS5mG,GAAG,KAAK,GAAG,OAAOhY,EAAE6+G,UAAU7mG,GAAG,KAAK,GAAG,OAAOhY,EAAEo0G,UAAUp8F,GAAG,QAAQmE,EAAE,qBAAD,OAAsBvY,S,GAAjxD6sG,KAAwyK,SAASmN,GAAGh6G,EAAEoU,EAAEhY,EAAE2D,GAAG,IAAID,EAAEE,EAAEoU,EAAE,GAAGhY,EAAE,KAAK,MAAM,MAAM2D,GAAG,MAAMA,IAAID,IAAI,GAAGA,EAAEmY,EAAEghG,GAAG,OAAO,QAAQhhG,EAAEghG,GAAG,eAAe,IAAI/+F,EAAEtI,IAAI,OAAOqnG,IAAI,IAAIiC,GAAGx+G,OAAOmyC,OAAO,CAACxnC,UAAU,KAAKy8F,QAAQgR,GAAGC,MAAMnB,GAAGoB,YAAYl8F,EAAEm8F,eAAe/6F,EAAEg7F,YAAYr9F,EAAEg6F,QAAQ75F,GAAE85F,UAAUh6F,GAAEq9F,YAAY36F,GAAE46F,iBAAiBn7F,GAAEo7F,iBAAiBx1G,GAAEy1G,sBAAsB76F,GAAE86F,sBAAsBn7F,GAAEo7F,aAAa56F,GAAE66F,cAAcz7F,GAAE8lB,SAAS+pB,GAAE6rD,WAAW76F,GAAE86F,kBAAkBrxF,GAAEsxF,iBAAiB77F,GAAE87F,aAAal7F,GAAEm7F,cAAch8F,GAAEi8F,QAAQlD,GAAElvG,MAAMkxG,KAAWsG,GAAG,CAACzM,MAAK,EAAGM,MAAK,EAAGL,MAAK,EAAGG,KAAI,EAAGC,SAAQ,EAAGqD,UAAS,EAAGd,cAAa,EAAGF,eAAc,EAAGC,iBAAgB,EAAGgB,aAAY,GAAI+I,GAAG1+G,OAAOwX,OAAO,GAAGinG,GAAG,CAAC3I,eAAe,IAAI1D,IAAI,CAAC,EAAE,EAAE,EAAE,K,SAAoBuM,G,+EAAf,WAAkBr7G,GAAlB,oFAAyBoU,EAAE,IAAIw/F,GAAGwH,IAAlC,SAA4ChnG,EAAEid,KAAKrxB,GAAnD,uBAAkEoU,EAAEzQ,QAApE,YAA0DvH,EAA1D,UAAkFA,EAAE0yG,IAApF,yBAAqH1yG,EAAE0yG,IAAjB9uG,EAAtG,EAA6Fs7G,SAAqBlnG,EAAlH,EAAwGmnG,UAAxG,kBAAiI,CAACD,SAASt7G,EAAEu7G,UAAUnnG,IAAvJ,4C,sBAA2J,IAAMonG,GAAG9+G,OAAOwX,OAAO,GAAGinG,GAAG,CAAClJ,MAAK,EAAGjD,MAAK,EAAGqD,aAAY,I,SAAoBoJ,G,+EAAf,WAAkBz7G,GAAlB,8EAAyBoU,EAAE,IAAIw/F,GAAG4H,IAAlC,SAA4CpnG,EAAEid,KAAKrxB,GAAnD,uBAAkEoU,EAAEwgG,mBAApE,cAA0Dx4G,EAA1D,yBAA8FA,GAAGwQ,EAAE9M,EAAEqI,KAAK/L,GAAGA,GAA7G,4C,+BAA8Hs/G,G,+EAAf,WAAkB17G,GAAlB,uFAAiChC,KAAKu1G,UAAUvzG,GAAhD,eAAsD,KAA7BoU,EAAzB,+BAAsEpU,EAAE,IAAI6wG,KAAK,CAACz8F,IAAlF,kBAA6F25F,IAAI4N,gBAAgB37G,IAAjH,iD,sBAAqH,IAAM47G,GAAGl/G,OAAOwX,OAAO,GAAGinG,GAAG,CAAC3I,eAAe,IAAI9D,KAAK,CAAC,O,SAAsBmN,G,+EAAf,WAAkB77G,GAAlB,8EAAyBoU,EAAE,IAAIw/F,GAAGgI,IAAlC,SAA4CxnG,EAAEid,KAAKrxB,GAAnD,uBAAkEoU,EAAEzQ,QAApE,YAA0DvH,EAA1D,UAAkFA,EAAEsyG,KAApF,yCAAgGtyG,EAAEsyG,KAAK,MAAvG,4C,sBAA4G,IAAMoN,GAAGp/G,OAAOmyC,OAAO,CAACz3B,EAAE,CAAC2kG,kBAAiB,EAAGC,OAAO,EAAEC,OAAO,EAAEz1F,IAAI,EAAEkG,IAAI,GAAGrV,EAAE,CAAC0kG,kBAAiB,EAAGC,QAAQ,EAAEC,OAAO,EAAEz1F,IAAI,EAAEkG,IAAI,GAAGpV,EAAE,CAACykG,kBAAiB,EAAGC,OAAO,EAAEC,OAAO,EAAEz1F,IAAI,IAAIkG,IAAI,IAAI9rB,KAAKqM,GAAG,KAAKsK,EAAE,CAACwkG,kBAAiB,EAAGC,QAAQ,EAAEC,OAAO,EAAEz1F,IAAI,IAAIkG,IAAI,IAAI9rB,KAAKqM,GAAG,KAAKuK,EAAE,CAACukG,kBAAiB,EAAGC,OAAO,EAAEC,QAAQ,EAAEz1F,IAAI,GAAGkG,IAAI,GAAG9rB,KAAKqM,GAAG,KAAKwK,EAAE,CAACskG,kBAAiB,EAAGC,OAAO,EAAEC,OAAO,EAAEz1F,IAAI,GAAGkG,IAAI,GAAG9rB,KAAKqM,GAAG,KAAKyK,EAAE,CAACqkG,kBAAiB,EAAGC,OAAO,EAAEC,QAAQ,EAAEz1F,IAAI,IAAIkG,IAAI,IAAI9rB,KAAKqM,GAAG,KAAK0K,EAAE,CAACokG,kBAAiB,EAAGC,OAAO,EAAEC,OAAO,EAAEz1F,IAAI,IAAIkG,IAAI,IAAI9rB,KAAKqM,GAAG,OAAWivG,IAAG,EAAGC,IAAG,EAAG,GAAG,iBAAiBxzB,UAAU,CAAC,IAAI3oF,GAAE2oF,UAAUC,UAAU,GAAG5oF,GAAEizB,SAAS,SAASjzB,GAAEizB,SAAS,UAAU,CAAC,IAAI7e,GAAEpU,GAAEkxB,MAAM,kBAAkB,GAAG9c,GAAE,oBAAWA,GAAX,GAAMpU,GAAN,MAAQ5D,GAAR,MAAa2D,EAAEmJ,OAAOlJ,IAAG,GAAGkJ,OAAO9M,IAAG8/G,GAAGn8G,EAAE,KAAKo8G,IAAG,QAAS,GAAGn8G,GAAEizB,SAAS,WAAW,QAASjzB,GAAEkxB,MAAM,oBAAX9c,GAAN,qBAAqC8nG,GAAGC,GAAGjzG,OAAOkL,IAAG,GAAG,GAAGpU,GAAEizB,SAAS,WAAW,QAASjzB,GAAEkxB,MAAM,iBAAX9c,GAAN,qBAAkC8nG,GAAGC,GAAGjzG,OAAOkL,IAAG,QAAQ,GAAGpU,GAAEizB,SAAS,YAAY,QAASjzB,GAAEkxB,MAAM,kBAAX9c,GAAN,qBAAmC8nG,GAAGC,GAAGjzG,OAAOkL,IAAG,I,SAAmBgoG,G,+EAAf,WAAkBp8G,GAAlB,qFAAiC67G,GAAG77G,GAApC,cAAyBoU,EAAzB,yBAA8C1X,OAAOwX,OAAO,CAAC2X,OAAOqwF,GAAGG,IAAIF,IAAIL,GAAG1nG,KAAlF,4C,0BAA4FkoG,G,kDAAa,aAAiB,qDAAFt8G,EAAE,yBAAFA,EAAE,uBAAC,+BAASA,IAAGiY,EAAE,eAAK,SAAS,IAAIskG,IAAI,IAAI,EAAK7M,YAAY,EAAK8M,OAAO1qG,IAAI,EAAE,EAAK49F,YAAjF,E,uDAAwG1vG,EAAEoU,EAAEhY,GAAG,GAAG,IAAI4D,GAAG,IAAIhC,KAAK0xG,YAAYtzG,EAAE,CAAC,IAAI4D,EAAE,IAAI4vG,SAASxzG,EAAE0zG,QAAQ1zG,EAAEA,EAAEqzG,WAAWrzG,EAAEszG,YAAY1xG,KAAK6xG,cAAc7vG,OAAO,CAAC,IAAI5D,EAAE4D,EAAEoU,EAAE,GAAGhY,EAAE4B,KAAK0xG,WAAW,KAAc1vG,EAAGhC,KAAKy+G,QAAQrgH,GAAzB2zG,SAA4B/xG,KAAK6xG,cAAc7vG,O,8BAAaA,GAAG,IAAIoU,EAAEA,EAAExH,EAAE9M,EAAE48G,YAAY18G,GAAG,IAAIwvG,WAAWxvG,GAAG,IAAI5D,EAAE,IAAIwzG,SAASx7F,EAAE07F,OAAO17F,EAAEq7F,WAAWr7F,EAAEs7F,YAAY,OAAOt7F,EAAExC,IAAI,IAAI49F,WAAWxxG,KAAK8xG,OAAO9xG,KAAKyxG,WAAWzxG,KAAK0xG,YAAY,GAAG,CAACiN,SAASvoG,EAAE27F,SAAS3zG,K,+BAAY4D,EAAEoU,GAAO,IAALhY,EAAK,wDAAC,OAAOgY,EAAEA,GAAGpW,KAAKiyG,aAAajwG,GAAG5D,GAAG4B,KAAK4+G,WAAW58G,EAAEoU,GAAGpW,KAAKw+G,OAAO1qG,IAAI9R,EAAEoU,GAApE,gEAAsFpU,EAAEoU,K,0BAAOpU,EAAEoU,GAAO,IAALhY,EAAK,wDAACA,GAAG4B,KAAK4+G,WAAWxoG,EAAEpU,EAAE0vG,WAAW1vG,GAAG,IAAID,EAAC,2DAAWC,EAAEoU,GAAG,OAAOpW,KAAKw+G,OAAO1qG,IAAIsC,EAAErU,EAAE2vG,YAAY3vG,I,yEAAoBC,EAAEoU,G,uEAAGpW,KAAKu0G,S,6BAAUv0G,KAAKw+G,OAAOvG,UAAUj2G,EAAEoU,G,qCAAUpW,KAAKm4G,UAAUn2G,EAAEoU,G,yIAAcpU,EAAEoU,GAAG,OAAOpW,KAAKw+G,OAAOvG,UAAUj2G,EAAEoU,O,GAAr5B0G,GAA+5ByhG,G,WAAG,aAAa,oBAACtkG,EAAEja,KAAK,OAAO,I,gDAA6CgC,EAAEoU,GAAM,4DAAKrU,EAAEC,EAAEoU,EAAEtU,EAAE9B,KAAKsnF,KAAKhxD,QAAQ,SAAAlgB,GAAC,OAAEyoG,GAAG78G,EAAEoU,EAAErO,OAAOhG,IAAI88G,GAAG78G,EAAEoU,EAAElE,IAAInQ,MAAK,GAAGD,EAAEzD,OAAO,EAAE,CAAC2D,EAAEY,KAAKkF,IAAL,MAAAlF,KAAI,CAAKZ,GAAL,mBAAUF,EAAE8K,KAAK,SAAA5K,GAAC,OAAEA,EAAE+F,aAA6CqO,GAAnCrU,EAAEa,KAAK+E,IAAL,MAAA/E,KAAI,CAAKb,GAAL,mBAAUD,EAAE8K,KAAK,SAAA5K,GAAC,OAAEA,EAAEkQ,WAAWlQ,EAAE,IAAI5D,EAAE0D,EAAEgpC,QAAQ1sC,EAAE2J,OAAO/F,EAAE5D,EAAEC,OAAO+X,EAAEhY,EAAE8T,IAAInQ,EAAE/B,KAAKsnF,KAAKtnF,KAAKsnF,KAAKhxD,QAAQ,SAAAt0B,GAAC,OAAGF,EAAEmzB,SAASjzB,WAAUhC,KAAKsnF,KAAKjiF,KAAK,CAAC0C,OAAO/F,EAAE3D,OAAO+X,EAAElE,IAAInQ,M,gCAAcC,EAAEoU,GAAG,IAAIhY,EAAE4D,EAAEoU,EAAE,OAAOpW,KAAKsnF,KAAKlvB,MAAM,SAAAhiD,GAAC,OAAEA,EAAErO,QAAQ/F,GAAG5D,GAAGgY,EAAElE,S,6BAAxZ,OAAOlS,KAAKsnF,KAAKjpF,W,KAA8Y,SAASwgH,GAAG78G,EAAEoU,EAAEhY,GAAG,OAAO4D,GAAGoU,GAAGA,GAAGhY,E,IAAQ0gH,G,kDAAc,WAAY98G,EAAEoU,GAAE,iCAAC,cAAM,GAAG6D,EAAE,eAAK,aAAa,GAAG,EAAKoN,MAAMrlB,EAAE,EAAKkL,QAAQkJ,EAA3D,E,qKAA+EpW,KAAKu0G,SAAQ,E,SAASv0G,KAAKm4G,UAAUn4G,KAAKo6G,iB,uPAAqCp6G,KAAKu0G,SAAQ,E,SAASv0G,KAAKm4G,UAAU,EAAEn4G,KAAKkN,QAAQsnG,gB,2QAAoCxyG,E,+BAAEhC,KAAKo6G,iBAAoBp6G,KAAK++G,U,0CAAiB/+G,KAAKg/G,cAAa,I,cAAO5oG,EAAEpW,KAAKkN,QAAQynG,U,SAAkB30G,KAAKm4G,UAAUn2G,EAAEoU,G,cAAzBhY,E,2BAAoCA,GAAGA,EAAEszG,aAAat7F,G,6KAAkBpU,EAAEoU,G,kEAAMpW,KAAKg/G,aAAa,KAAK5oG,EAAEpW,KAAKi/G,gBAAgBj9G,EAAEoU,I,yCAAWpW,KAAKk/G,WAAWl9G,EAAEoU,I,+IAAmBpU,EAAEoU,GAAG,YAAO,IAASpW,KAAK8O,MAAM9M,EAAEoU,EAAEpW,KAAK8O,KAAKlM,KAAK+E,IAAI,EAAE3H,KAAK8O,KAAK9M,GAAGoU,I,6BAAkP,OAAOpW,KAAKkN,QAAQqnG,QAAQv0G,KAAKm/G,cAAcn/G,KAAKg6G,c,uEAA9Q,GAAG,IAAIh6G,KAAKw+G,OAAOl3B,KAAKjpF,OAAO,OAAO2B,KAAKw+G,OAAOl3B,KAAK,GAAGjpF,S,uCAA8B,OAAO2B,KAAKg/G,WAAWh/G,KAAKkN,QAAQ0nG,a,gCAA2B,YAAO,IAAS50G,KAAK8O,MAAM9O,KAAKo6G,kBAAkBp6G,KAAK8O,S,GAAx0BwvG,IAA85BzkG,EAAEjG,IAAI,OAAN,6RAAgD5T,KAAKu0G,SAAQ,EAA7D,SAA4En4F,GAAEpc,KAAKqnB,OAAnF,OAAoErlB,EAApE,OAA0FhC,KAAKo/G,iBAAiBp9G,GAAhH,0IAAiI,OAAOhC,KAAKu0G,SAAQ,EAAGv0G,KAAK8O,KAAK9O,KAAKqnB,MAAMvY,KAArC,mDAAA9O,MAAA,KAAAA,QAAxI,wEAAuNgC,EAAEoU,GAAzN,gFAAgOhY,EAAEgY,EAAEpU,EAAEoU,OAAE,EAAOrU,EAAE/B,KAAKqnB,MAAMziB,MAAM5C,EAAE5D,GAApQ,SAA+Qge,GAAEra,GAAjR,cAAuQD,EAAvQ,yBAA2R9B,KAAK4T,IAAI9R,EAAEE,GAAE,IAAxS,8GAA2B88G,KAAoR,IAAIO,GAAG3gH,OAAOmyC,OAAO,CAACxnC,UAAU,KAAKy8F,QAAQoX,GAAGnG,MAAMnB,GAAGoB,YAAYl8F,EAAEm8F,eAAe/6F,EAAEg7F,YAAYr9F,EAAEg6F,QAAQ75F,GAAE85F,UAAUh6F,GAAEq9F,YAAY36F,GAAE46F,iBAAiBn7F,GAAEo7F,iBAAiBx1G,GAAEy1G,sBAAsB76F,GAAE86F,sBAAsBn7F,GAAEo7F,aAAa56F,GAAE66F,cAAcz7F,GAAE8lB,SAAS+pB,GAAE6rD,WAAW76F,GAAE86F,kBAAkBrxF,GAAEsxF,iBAAiB77F,GAAE87F,aAAal7F,GAAEm7F,cAAch8F,GAAEi8F,QAAQlD,GAAElvG,MAAMkxG,GAAGyI,eAAelC,GAAGtM,IAAIuM,GAAGkC,qBAAqB/B,GAAGjI,UAAUkI,GAAG+B,aAAa9B,GAAG+B,uBAAuB7B,GAAG8B,YAAY7B,GAAG8B,UAAU7B,GAAG,mBAAmB,OAAOI,IAAI,gBAAgB,OAAOC,IAAI3vF,SAAS4vF,KAAKvkG,EAAEjG,IAAI,MAAN,6RAA+C5T,KAAKu0G,SAAQ,EAA5D,SAA2E93F,GAAEzc,KAAKqnB,OAAlF,QAAmErlB,EAAnE,kBAAsG2vG,YAAY3xG,KAAKo/G,iBAAiBp9G,GAAGA,aAAawvG,YAAYxxG,KAAK4/G,YAAY59G,GAArL,8KAAyMA,EAAEoU,GAA3M,oFAAkNhY,EAAEgY,EAAEpU,EAAEoU,EAAE,OAAE,EAAOrU,EAAE/B,KAAKkN,QAAQ2yG,aAAa,IAAI79G,GAAG5D,KAAK2D,EAAE8N,MAAF,gBAAiB,CAAC7N,EAAE5D,GAAGsH,KAAK,OAAvS,SAA2TmT,EAAE7Y,KAAKqnB,MAAM,CAACyoF,QAAQ/tG,IAAjV,cAAmTD,EAAnT,gBAA6VA,EAAE0uG,cAA/V,UAAqVxrG,EAArV,OAA6W4J,EAAE5J,EAAE0sG,WAAc,MAAM5vG,EAAEyuG,OAAvY,2CAAqZ3hG,IAAIwH,IAAIpW,KAAK8O,KAAK9M,EAAE4M,GAAG5O,KAAK4T,IAAI5O,EAAEhD,GAAE,KAAzb,+GAA0B88G,KAAsahiG,EAAE7d,UAAU0zG,UAAU,SAAS3wG,GAAG,IAAIoU,EAAEpW,KAAKwyG,UAAUxwG,GAAG5D,EAAE4B,KAAKwyG,UAAUxwG,EAAE,GAAG,OAAOoU,EAAE,QAAQA,GAAG,GAAGhY,OAAE,WAAgB4G,GAAG4uB,QAAQC,KAAK,2EAA2E7uB,EAAEoR,IAAIpR,EAAE,IAAIA,EAAE5G,SAASmc,EAAE,iE,IAAmoBulG,G,oRAAiM99G,EAAEhC,KAAK+1G,KAAKvD,UAAU,GAAGp8F,EAAEpW,KAAK+/G,aAAa/9G,G,UAAQ,SAASoU,EAAEsnF,K,uBAAM17F,GAAGoU,EAAE/X,O,SAAa2B,KAAK+1G,KAAK4F,YAAY35G,EAAE,I,OAAIoU,EAAEpW,KAAK+/G,aAAa/9G,G,8CAAShC,KAAK+1G,KAAK4F,YAAYvlG,EAAErO,OAAOqO,EAAE/X,Q,WAAQ2B,KAAKggH,iBAAiB5pG,GAAGpW,KAAKigH,cAAc7pG,G,KAAGpW,KAAKkN,QAAQkkG,IAAI5xD,S,uCAAex/C,KAAKkgH,QAAQ9pG,G,gBAAGpW,KAAKkN,QAAQ+mG,KAAKz0D,S,uCAAex/C,KAAKmgH,SAAS/pG,G,oLAAyBpU,EAAEoU,EAAEhY,G,qFAAS4B,KAAK+1G,KAAK4F,YAAYvlG,EAAEhY,G,OAAO2D,EAAE/B,KAAK+1G,KAAKmC,SAAS9hG,EAAEhY,GAAG4B,KAAKq4G,aAAar2G,EAAED,G,gLAAiBC,G,iFAAmC,KAA5BoU,EAAEpW,KAAKogH,QAAQp+G,EAAE,S,yDAA6D,KAA5B5D,EAAE4B,KAAKogH,QAAQhqG,EAAE,S,oDAAiCrU,EAAE/B,KAAKogH,QAAQhiH,EAAE,Q,UAAQ,IAAS2D,G,uCAAS/B,KAAKqgH,gBAAgB,MAAMt+G,EAAEgG,OAAO,GAAGhG,EAAE1D,Q,8KAAuB2D,G,2FAAmC,KAA5BoU,EAAEpW,KAAKogH,QAAQp+G,EAAE,S,yDAA6D,KAA5B5D,EAAE4B,KAAKogH,QAAQp+G,EAAE,S,oDAAiCD,EAAE/B,KAAKsgH,oBAAoBlqG,QAAmC,KAAhCtU,EAAE9B,KAAKugH,iBAAiBniH,EAAE2D,I,sEAAiCD,E,GAALkD,E,KAAE4J,E,eAAW5O,KAAK+1G,KAAK4F,YAAY32G,EAAE4J,G,eAAOpN,EAAE,EAAExB,KAAK+1G,KAAKvD,UAAUxtG,GAAGA,GAAGxD,EAAEoN,GAAGpN,E,UAAQxB,KAAKqgH,gBAAgB,OAAOr7G,EAAE4J,G,kJAAuB5M,GAAGhC,KAAKggH,iBAAiBh+G,GAAG,IAAIoU,EAAEhY,EAAE2D,EAAIiD,EAAEhD,EAAEiQ,MAAMrD,EAAE5O,KAAK+1G,KAAK5D,UAAUntG,GAAG,IAAIA,GAAG,EAAE4J,KAAK,CAAC,GAAGwH,EAAEpW,KAAK+/G,aAAa/6G,GAAGhF,KAAKggH,iBAAiB5pG,GAAGhY,EAAEgY,EAAEnE,MAAMmE,EAAEkvD,SAAS,IAAIvjE,EAAE,IAAIqU,EAAEkvD,QAAQ,EAAE,EAAiC,SAA7BtlE,KAAK+1G,KAAKwG,UAAUn+G,EAAE2D,EAAE,EAAE,IAAe,OAAO/B,KAAK+1G,KAAKyK,aAAapiH,EAAE2D,GAAGiD,GAAGoR,EAAE/X,U,+BAAiB2D,GAAG,IAAIoU,EAAEpW,KAAK+1G,KAAK1D,SAASrwG,GAAG,MAAM,CAACoU,GAAG,EAAE,GAAGA,K,uCAAoBpU,EAAEoU,GAAGpW,KAAKggH,iBAAiBh+G,GAAO,IAAA5D,EAAE4D,EAAEiQ,MAAJ,EAAgBjS,KAAKygH,SAASriH,KAA9B,mBAAW2D,EAAX,KAAaD,EAAb,OAAyC9B,KAAKygH,SAASriH,KAAvD,mBAAoC4G,EAApC,KAAsC4J,EAAtC,KAA4DpN,EAAE,IAAIQ,EAAEsjE,QAAQ,EAAE,EAAE1sD,EAAE,IAAI5W,EAAEsjE,SAAS,IAAItjE,EAAEsjE,QAAQ,EAAE,EAAEzsD,EAAEjK,EAAE7M,EAAED,EAAEouG,EAAE,IAAIluG,EAAEsjE,QAAQ,EAAE,EAAErrD,EAAEja,KAAK+1G,KAAKyK,aAAapiH,EAAE8xG,GAAG,IAAI9xG,GAAG8xG,EAAEj2F,KAAK,CAAC,IAAIjY,EAAEhC,KAAK+1G,KAAKyK,aAAapiH,EAAEoD,GAAGpD,GAAGoD,EAAEoX,EAAE,EAAE5T,EAAE,IAAIkrG,EAAElwG,KAAK+1G,KAAK5D,UAAU/zG,GAAG,GAAGA,GAAG,EAAE4D,IAAIoU,EAAE,OAAO85F,EAAE,GAAGt8E,QAAQC,KAAK,kJAAkJ,CAAC7zB,KAAK+1G,KAAKyK,aAAapiH,EAAEwQ,EAAE7M,GAAG/B,KAAK+1G,KAAKyK,aAAapiH,EAAEwQ,EAAE7M,EAAED,IAAI1D,GAAG8xG,EAAEr3F,M,iCAArhE7W,EAAEoU,GAAG,GAAG,IAAIA,EAAE,OAAM,EAAG,IAAIhY,EAAE4D,EAAEmwG,UAAU,GAAG,GAAG/zG,EAAE,GAAG,OAAM,EAAiB,IAAd,IAAI2D,EAAE,GAAGD,EAAE,GAAQC,EAAE3D,GAAG0D,EAAEuD,KAAKrD,EAAEu6G,UAAUx6G,EAAE,IAAIA,GAAG,EAAE,OAAOD,EAAEmzB,SAASj1B,KAAK+K,U,8KAA9rB,IAAV,IAAJ/I,EAAI,uDAAF,EAAOoU,EAAE,GAAQpU,EAAEhC,KAAK+1G,KAAKrE,WAAW,GAAG,CAAC,IAAItzG,EAAE4B,KAAK+/G,aAAa/9G,GAAG,GAAGoU,EAAE/Q,KAAKjH,GAAG,IAAIA,EAAEC,OAAO,MAAM2D,GAAG5D,EAAEC,OAAO,OAAO+X,I,oCAAgBpU,GAAGA,EAAEkwD,MAAMlyD,KAAK0gH,WAAW1+G,EAAEiQ,S,8BAAejQ,EAAEoU,GAAG,YAAO,IAASpU,EAAEkwD,OAAOlyD,KAAKigH,cAAcj+G,GAAGA,EAAEkwD,MAAMu1C,MAAM,SAAAzlG,GAAC,OAAEA,EAAE07F,OAAOtnF,O,mCAAiBpU,GAAG,IAAIoU,EAAEpW,KAAK+1G,KAAKvD,UAAUxwG,GAAG5D,EAAE4B,KAAK+1G,KAAKwG,UAAUv6G,EAAE,EAAE,GAAGD,EAAEC,EAAE,EAAE,OAAO,IAAIoU,IAAIA,EAAEpW,KAAK+1G,KAAKpD,UAAU3wG,EAAE,GAAGD,GAAG,GAAG,CAACgG,OAAO/F,EAAE3D,OAAO+X,EAAEsnF,KAAKt/F,EAAE6T,MAAMlQ,K,uCAAoBC,GAAG,QAAG,IAASA,EAAEsjE,QAAd,CAA6B,IAAIlvD,EAAEpW,KAAK+1G,KAAKvD,UAAUxwG,EAAEiQ,OAAOjQ,EAAEsjE,QAAQlvD,GAAG,GAAGpU,EAAEiQ,OAAO,O,GAAxiB+lG,KAA+mF2I,G,4HAAWb,IAAI7lG,EAAE0mG,GAAG,OAAO,Q,IAAcC,G,4HAAWd,IAAI7lG,EAAE2mG,GAAG,OAAO,QAAQ9lG,EAAElH,IAAI,OAAO+sG,IAAI7lG,EAAElH,IAAI,OAAOgtG,IAAI3kG,GAAEjC,GAAE,CAAC,OAAO,QAAQ,CAAC,CAAC,IAAI,cAAc,CAAC,IAAI,eAAe,CAAC,IAAI,iBAAiB,CAAC,IAAI,eAAe,CAAC,IAAI,6BAA6B,CAAC,IAAI,oBAAoB,CAAC,IAAI,QAAQ,CAAC,IAAI,SAAS,CAAC,IAAI,gBAAgB,CAAC,IAAI,eAAe,CAAC,IAAI,mBAAmB,CAAC,IAAI,gBAAgB,CAAC,IAAI,mBAAmB,CAAC,IAAI,eAAe,CAAC,IAAI,eAAe,CAAC,IAAI,uBAAuB,CAAC,IAAI,kBAAkB,CAAC,IAAI,oBAAoB,CAAC,IAAI,YAAY,CAAC,IAAI,cAAc,CAAC,IAAI,UAAU,CAAC,IAAI,gBAAgB,CAAC,IAAI,aAAa,CAAC,IAAI,cAAc,CAAC,IAAI,yBAAyB,CAAC,IAAI,mBAAmB,CAAC,IAAI,mBAAmB,CAAC,IAAI,qBAAqB,CAAC,IAAI,oBAAoB,CAAC,IAAI,oBAAoB,CAAC,IAAI,uBAAuB,CAAC,IAAI,oBAAoB,CAAC,MAAM,aAAa,CAAC,MAAM,QAAQ,CAAC,MAAM,WAAW,CAAC,MAAM,OAAO,CAAC,MAAM,UAAU,CAAC,IAAI,UAAU,CAAC,MAAM,cAAc,CAAC,MAAM,WAAW,CAAC,MAAM,aAAa,CAAC,MAAM,YAAY,CAAC,MAAM,cAAc,CAAC,MAAM,eAAeiC,GAAEjC,GAAE,OAAO,CAAC,CAAC,MAAM,gBAAgB,CAAC,MAAM,WAAW,CAAC,MAAM,mBAAmB,CAAC,MAAM,uBAAuB,CAAC,MAAM,OAAO,CAAC,MAAM,kBAAkB,CAAC,MAAM,iBAAiB,CAAC,MAAM,mBAAmB,CAAC,MAAM,6BAA6B,CAAC,MAAM,4BAA4B,CAAC,MAAM,YAAY,CAAC,MAAM,uBAAuB,CAAC,MAAM,uBAAuB,CAAC,MAAM,eAAe,CAAC,MAAM,oBAAoB,CAAC,MAAM,cAAc,CAAC,MAAM,wBAAwB,CAAC,MAAM,cAAc,CAAC,MAAM,sBAAsB,CAAC,MAAM,uBAAuB,CAAC,MAAM,2BAA2B,CAAC,MAAM,0BAA0B,CAAC,MAAM,qBAAqB,CAAC,MAAM,iBAAiB,CAAC,MAAM,mBAAmB,CAAC,MAAM,wBAAwB,CAAC,MAAM,oBAAoB,CAAC,MAAM,mBAAmB,CAAC,MAAM,gBAAgB,CAAC,MAAM,eAAe,CAAC,MAAM,SAAS,CAAC,MAAM,eAAe,CAAC,MAAM,eAAe,CAAC,MAAM,0BAA0B,CAAC,MAAM,gBAAgB,CAAC,MAAM,eAAe,CAAC,MAAM,aAAa,CAAC,MAAM,eAAe,CAAC,MAAM,cAAc,CAAC,MAAM,sBAAsB,CAAC,MAAM,uBAAuB,CAAC,MAAM,sBAAsB,CAAC,MAAM,YAAY,CAAC,MAAM,YAAY,CAAC,MAAM,cAAc,CAAC,MAAM,gBAAgB,CAAC,MAAM,wBAAwB,CAAC,MAAM,mBAAmB,CAAC,MAAM,cAAc,CAAC,MAAM,kBAAkB,CAAC,MAAM,mBAAmB,CAAC,MAAM,oBAAoB,CAAC,MAAM,eAAe,CAAC,MAAM,yBAAyB,CAAC,MAAM,yBAAyB,CAAC,MAAM,4BAA4B,CAAC,MAAM,mBAAmB,CAAC,MAAM,iBAAiB,CAAC,MAAM,iBAAiB,CAAC,MAAM,cAAc,CAAC,MAAM,aAAa,CAAC,MAAM,cAAc,CAAC,MAAM,kBAAkB,CAAC,MAAM,gBAAgB,CAAC,MAAM,gBAAgB,CAAC,MAAM,oBAAoB,CAAC,MAAM,2BAA2B,CAAC,MAAM,oBAAoB,CAAC,MAAM,eAAe,CAAC,MAAM,YAAY,CAAC,MAAM,cAAc,CAAC,MAAM,aAAa,CAAC,MAAM,wBAAwB,CAAC,MAAM,iBAAiB,CAAC,MAAM,aAAa,CAAC,MAAM,gBAAgB,CAAC,MAAM,YAAY,CAAC,MAAM,YAAY,CAAC,MAAM,aAAa,CAAC,MAAM,oBAAoB,CAAC,MAAM,kBAAkB,CAAC,MAAM,uBAAuB,CAAC,MAAM,+BAA+B,CAAC,MAAM,SAAS,CAAC,MAAM,WAAW,CAAC,MAAM,gBAAgB,CAAC,KAAK,aAAa,CAAC,MAAM,gBAAgB,CAAC,MAAM,QAAQ,CAAC,MAAM,WAAW,CAAC,MAAM,aAAa,CAAC,MAAM,gBAAgB,CAAC,MAAM,YAAY,CAAC,MAAM,WAAW,CAAC,MAAM,cAAc,CAAC,MAAM,YAAY,CAAC,MAAM,cAAc,CAAC,MAAM,aAAa,CAAC,MAAM,cAAc,CAAC,MAAM,eAAe,CAAC,MAAM,gBAAgBiC,GAAEjC,GAAE,MAAM,CAAC,CAAC,EAAE,gBAAgB,CAAC,EAAE,kBAAkB,CAAC,EAAE,eAAe,CAAC,EAAE,mBAAmB,CAAC,EAAE,gBAAgB,CAAC,EAAE,kBAAkB,CAAC,EAAE,eAAe,CAAC,EAAE,gBAAgB,CAAC,EAAE,iBAAiB,CAAC,EAAE,aAAa,CAAC,GAAG,kBAAkB,CAAC,GAAG,UAAU,CAAC,GAAG,eAAe,CAAC,GAAG,YAAY,CAAC,GAAG,eAAe,CAAC,GAAG,YAAY,CAAC,GAAG,sBAAsB,CAAC,GAAG,mBAAmB,CAAC,GAAG,eAAe,CAAC,GAAG,sBAAsB,CAAC,GAAG,mBAAmB,CAAC,GAAG,uBAAuB,CAAC,GAAG,oBAAoB,CAAC,GAAG,qBAAqB,CAAC,GAAG,kBAAkB,CAAC,GAAG,sBAAsB,CAAC,GAAG,mBAAmB,CAAC,GAAG,uBAAuB,CAAC,GAAG,sBAAsB,CAAC,GAAG,gBAAgB,CAAC,GAAG,mBAAmB,CAAC,GAAG,0BAA0BiC,GAAEnC,GAAE,CAAC,OAAO,QAAQ,CAAC,CAAC,IAAI,CAACV,EAAE,sBAAsBC,EAAE,oBAAoBC,EAAE,aAAaC,EAAE,kBAAkBC,EAAE,sCAAsCC,EAAE,eAAeC,EAAE,qCAAqCC,EAAE,kBAAkB,CAAC,IAAI,CAACP,EAAE,OAAOC,EAAE,SAASC,EAAE,SAAS,IAAIunG,GAAG5kG,GAAEnC,GAAE,OAAO,CAAC,CAAC,MAAM,CAACX,EAAE,cAAcC,EAAE,SAASC,EAAE,iBAAiBC,EAAE,oBAAoBC,EAAE,mBAAmBC,EAAE,mBAAmBC,EAAE,iBAAiBC,EAAE,gBAAgBC,EAAE,mBAAmB,CAAC,MAAM,CAACR,EAAE,IAAIC,EAAE,IAAIC,EAAE,KAAKC,EAAE,KAAKC,EAAE,IAAIC,EAAE,IAAIC,EAAE,MAAM,CAAC,MAAM,CAACN,EAAE,UAAUC,EAAE,UAAUC,EAAE,wBAAwBC,EAAE,OAAOC,EAAE,YAAYC,EAAE,UAAUC,EAAE,UAAUqnG,IAAI,UAAU,CAAC,MAAM,CAAC3nG,EAAE,UAAUC,EAAE,WAAWC,EAAE,cAAcC,EAAE,gCAAgCC,EAAE,QAAQK,EAAE,eAAemnG,GAAG,iBAAiBC,GAAG,QAAQC,GAAG,wCAAwCC,GAAG,yCAAyCC,GAAG,0CAA0CC,GAAG,sCAAsCC,GAAG,mBAAmBC,GAAG,mBAAmBC,GAAG,mBAAmBC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,sBAAsBd,IAAI,UAAU,CAAC,MAAM,CAAC3nG,EAAE,qBAAqBC,EAAE,cAAcI,EAAE,mCAAmCE,EAAE,+BAA+BE,EAAE,qCAAqCsnG,GAAG,gEAAgEE,GAAG,4DAA4DS,GAAG,4CAA4CD,GAAG,gCAAgCE,GAAG,yBAAyBC,GAAG,oDAAoDC,GAAG,gDAAgDC,GAAG,oBAAoBC,GAAG,sCAAsCC,GAAG,iEAAiEC,GAAG,6DAA6DC,GAAG,6DAA6DC,GAAG,wFAAwFC,GAAG,oFAAoFC,GAAG,iDAAiDC,GAAG,4EAA4EC,GAAG,0EAA0E,CAAC,MAAM,CAACtpG,EAAE,cAAcC,EAAE,6BAA6BC,EAAE,6BAA6BC,EAAE,+BAA+BC,EAAE,+BAA+BE,EAAE,mBAAmBC,EAAE,mCAAmC,CAAC,MAAM,CAACP,EAAE,eAAeC,EAAE,2BAA2BC,EAAE,mBAAmB,CAAC,MAAM,CAACF,EAAE,0BAA0B,CAAC,MAAM,CAACD,EAAE,SAASC,EAAE,SAASC,EAAE,0BAA0BC,EAAE,uBAAuBC,EAAE,qBAAqBE,EAAE,WAAWC,EAAE,eAAeC,EAAE,aAAa,CAAC,MAAM,CAACR,EAAE,OAAOC,EAAE,SAASC,EAAE,iBAAiB,CAAC,MAAM,CAACF,EAAE,OAAOC,EAAE,WAAW,CAAC,MAAM,CAACD,EAAE,WAAWC,EAAE,YAAYC,EAAE,WAAWC,EAAE,QAAQC,EAAE,UAAU,CAAC,MAAM,CAACJ,EAAE,OAAOC,EAAE,cAAcC,EAAE,eAAeC,EAAE,gBAAgBC,EAAE,mBAAmB,CAAC,MAAM,CAACJ,EAAE,UAAUC,EAAE,QAAQC,EAAE,QAAQC,EAAE,YAAY,CAAC,MAAM,CAACH,EAAE,UAAUC,EAAE,wBAAwBC,EAAE,0BAA0BC,EAAE,8CAAoDqpG,GAAG,CAACvpG,EAAE,kCAAkCC,EAAE,OAAOC,EAAE,cAAcunG,GAAGjtG,IAAI,MAAM+uG,IAAI9B,GAAGjtG,IAAI,MAAM+uG,IAAI,IAAMC,GAAG,CAACzpG,EAAE,SAASC,EAAE,MAAMC,EAAE,QAAQ,SAASwpG,GAAG7gH,GAAG,MAAM,iBAAiBA,QAAG,IAASA,EAAE3D,OAAO2D,EAAE,GAAGA,EAAE,SAAS8gH,GAAG9gH,GAAG,IAAIoU,EAAEzU,MAAMwI,KAAKnI,GAAG4C,MAAM,GAAG,OAAOwR,EAAE,GAAG,KAAKA,EAAEA,EAAExJ,KAAK,SAAA5K,GAAC,OAAEkE,OAAOC,aAAanE,OAAM,MAAMoU,EAAE,IAAI,IAAIA,EAAE,IAAIA,EAAEsuB,MAAMtuB,EAAE1Q,KAAK,KAAK,SAASq9G,GAAG/gH,GAAG,GAAG,iBAAiBA,EAAE,OAAkBA,EAAEyuG,OAAOziG,MAAM,UAAUpB,IAAI1B,QAA/C,mBAAKkL,EAAL,KAAOhY,EAAP,KAAS2D,EAAT,KAAWD,EAAX,KAAakD,EAAb,KAAe4J,EAAf,KAAuDpN,EAAE,IAAI0iC,KAAK9tB,EAAEhY,EAAE,EAAE2D,GAAG,OAAOmJ,OAAOoF,MAAMxO,IAAIoJ,OAAOoF,MAAMtL,IAAIkG,OAAOoF,MAAM1B,KAAKpN,EAAEwhH,SAASlhH,GAAGN,EAAEyhH,WAAWj+G,GAAGxD,EAAE0hH,WAAWt0G,IAAI1D,OAAOoF,OAAO9O,GAAGQ,EAAER,GAAG,SAAS2hH,GAAGnhH,GAAG,GAAG,iBAAiBA,EAAE,OAAOA,EAAE,IAAIoU,EAAE,GAAG,GAAG,IAAIpU,EAAE,IAAI,IAAIA,EAAEA,EAAE3D,OAAO,GAAG,IAAI,IAAID,EAAE,EAAEA,EAAE4D,EAAE3D,OAAOD,GAAG,EAAEgY,EAAE/Q,KAAK+9G,GAAGphH,EAAE5D,EAAE,GAAG4D,EAAE5D,UAAU,IAAI,IAAIA,EAAE,EAAEA,EAAE4D,EAAE3D,OAAOD,GAAG,EAAEgY,EAAE/Q,KAAK+9G,GAAGphH,EAAE5D,GAAG4D,EAAE5D,EAAE,KAAK,OAAOoa,EAAEtS,OAAOm9G,cAAP,MAAAn9G,OAAwBkQ,IAAI,SAASgtG,GAAGphH,EAAEoU,GAAG,OAAOpU,GAAG,EAAEoU,EAAEyqG,GAAGjtG,IAAI,MAAMgvG,IAAI/B,GAAGjtG,IAAI,MAAMgvG,IAAI/B,GAAGjtG,IAAI,MAAMgvG,IAAI3mG,GAAEO,GAAE,CAAC,OAAO,QAAQ,CAAC,CAAC,MAAM,SAASxa,GAAG,MAAM,iBAAiBA,EAAE6M,EAAE7M,GAAGA,IAAI,CAAC,IAAI+gH,IAAI,CAAC,MAAMI,IAAI,CAAC,MAAMA,IAAI,CAAC,MAAMA,IAAI,CAAC,MAAMA,IAAI,CAAC,MAAMA,MAAMlnG,GAAEO,GAAE,OAAO,CAAC,CAAC,MAAMsmG,IAAI,CAAC,MAAMA,IAAI,CAAC,MAAMC,IAAI,CAAC,MAAMA,IAAI,CAAC,MAAMF,IAAI,CAAC,MAAMA,MAAM5mG,GAAEO,GAAE,MAAM,CAAC,CAAC,EAAE,SAAAxa,GAAC,OAAEL,MAAMwI,KAAKnI,GAAG0D,KAAK,OAAM,CAAC,EAAE,SAAA1D,GAAC,OAAEL,MAAMwI,KAAKnI,GAAG0D,KAAK,S,IAAc49G,G,6KAA4rBthH,GAAG,MAAM,iBAAiBA,EAAEA,EAAE8a,EAAE3S,KAAKnI,GAAGu6G,c,8BAA+B,IAAbv6G,EAAa,uDAAXhC,KAAKi3C,MAAO,IAAIj3C,KAAKy4G,aAAa9yG,MAAM,OAAO3D,EAAEA,EAAE,SAASA,GAAG,IAAD,EAAKoU,EAAE,GAAGhY,EAAE,GAAZ,cAA4BmlH,IAA5B,IAAe,gCAAQvhH,EAAR,QAAgBoU,EAAEpU,GAAG,GAAG5D,EAAE4D,GAAG,GAA5C,8BAA8C,OAAOA,EAAE2kB,QAAQ68F,IAAI,SAACxhH,EAAED,EAAED,GAAK,GAAG,MAAMC,EAAE,CAAC,IAAIA,IAAI3D,EAAE0D,GAAG,OAAOsU,EAAEtU,GAAGuD,KAAKtD,GAAV,UAAgBC,EAAhB,YAAqBD,GAAI,gBAASC,EAAT,YAAcoU,EAAEtU,GAAG4iC,UAApK,CAAgL1iC,GAAG,IAAIoU,EAAEsH,GAAGi8F,QAAQ33G,EAAE,MAAM,eAAe,IAAIoU,EAAE/X,QAAQ+X,EAAE/Q,KAAK,IAAIqY,GAAG,MAAM,mBAAc,EAAO1b,IAAI,IAA9T,EAAoUD,EAAE,GAAtU,cAAsVqU,GAAtV,IAAyU,kCAAQpU,EAAR,sBAA4BA,EAAEwB,YAA9B,IAAe,gCAAQ4S,EAAR,QAAuCnU,GAAGmU,EAAdqtG,GAAGrtG,EAAEstG,GAAG3hH,KAAnD,0BAAAG,MAAzU,8BAAuY,OAAO,SAASF,GAAS,IAAI,IAAI5D,KAAK4D,OAAiB,KAAbA,EAAE5D,GAAG8D,EAAEF,EAAE5D,aAAuB4D,EAAE5D,GAAG,OAAO8D,EAAEF,GAAjF,CAAqFD,K,qCAAkBC,EAAEoU,GAAG,GAAGpW,KAAKy4G,aAAa9yG,MAAM,cAAejH,OAAOs2D,QAAQ5+C,GAA9B,0CAAQhY,EAAR,KAAU2D,EAAV,KAAiC,OAAO3D,GAAG,IAAI,OAAO4B,KAAKg5G,qBAAqBh3G,EAAE,OAAOD,GAAG,MAAM,IAAI,OAAO/B,KAAKg5G,qBAAqBh3G,EAAE,OAAOD,GAAG,MAAM,IAAI,QAAQ,MAAM,QAAQ/B,KAAKg5G,qBAAqBh3G,EAAE5D,EAAE2D,SAAQC,EAAEkvG,IAAI96F,K,iCAAx9CpU,EAAEoU,GAAG,OAAO,MAAMpU,EAAEqwG,SAASj8F,EAAE,IAAI,aAAapU,EAAEwwG,UAAUp8F,EAAE,IAAI,yBAAyBpU,EAAEu6G,UAAUnmG,EAAE,EAAE,uBAAuB/X,U,mCAA4B2D,EAAEoU,GAAG,MAAM,uCAAuCpU,EAAEu6G,UAAUnmG,EAAE,EAAE,qCAAqC/X,QAAQ,GAAG,EAAE,+BAA+BA,OAAO,I,mCAAsB2D,EAAEoU,GAAG,IAAIhY,EAAC,0DAAoB4D,EAAEoU,GAAG,OAAOhY,EAAE+1G,aAAa/1G,EAAEulH,SAAS,KAAKvlH,EAAEu6G,aAAav6G,EAAE+1G,cAAc/1G,EAAEo8G,WAAWx4G,EAAEqwG,SAASj8F,EAAE,IAAIhY,EAAEm8G,YAAYv4G,EAAEqwG,SAASj8F,EAAE,IAAI,IAAIpU,EAAEqwG,SAASj8F,EAAE,KAAKhY,EAAEm8G,gBAAgBn8G,EAAEo8G,WAAW,IAAIp8G,EAAEm8G,aAAa,GAAGn8G,I,0CAA6B4D,GAAG,OAAOA,EAAE4K,KAAK,SAAA5K,GAAC,OAAEA,EAAEi1C,MAAMslE,eAAc72G,KAAK,Q,GAA9pBmpG,IAA++C50F,EAAEqpG,GAAG,OAAO,OAAOrpG,EAAEqpG,GAAG,gBAAe,GAAIpnG,EAAEtI,IAAI,MAAM0vG,I,IAAUM,G,WAAoM,WAAY5hH,EAAEoU,EAAEhY,GAAE,oBAAC4B,KAAK0jH,GAAG1hH,EAAEhC,KAAK2rB,KAAKvV,EAAEpW,KAAKN,MAAMtB,E,yDAAtO4D,GAAG,OAAO6hH,GAAG7hH,EAAE,uDAAuD4K,IAAIg3G,EAAGE,e,kCAAgC9hH,GAAG,IAAIoU,EAAEpU,EAAE,GAAG5D,EAAE4D,EAAE,GAAGD,EAAEC,EAAE,GAAG4C,MAAM,GAAG,GAAG,OAAe,IAAIg/G,EAAGxtG,EAAEhY,EAAjB2D,EAAE+jB,GAAG/jB,Q,iDAAmF,OAAO/B,KAAKN,U,KAAage,G,WAAkb,WAAY1b,EAAEoU,EAAEhY,EAAE2D,GAAE,oBAAC/B,KAAK0jH,GAAG1hH,EAAEhC,KAAK2rB,KAAKvV,EAAEpW,KAAK+jH,WAAW3lH,EAAE4B,KAAKgkH,SAASjiH,EAAE/B,KAAKikH,MAAML,GAAGjK,QAAQv7G,GAAG4B,KAAKmxF,SAASzzE,EAAGi8F,QAAQ53G,GAAG/B,KAAKN,MAAM,IAAIM,KAAKmxF,SAAS9yF,OAAOynB,GAAG/jB,QAAG,EAAO/B,KAAKwD,WAAL,sBAAoBxD,KAAKikH,OAAzB,YAAkCjkH,KAAKmxF,W,yDAA1nBnvF,EAAEoU,EAAEhY,GAAG,QAAG,IAASgY,QAAG,IAAShY,EAAE,CAACgY,EAAEA,GAAG,aAAahY,EAAEA,GAAG,aAAa,IAAI2D,EAAE,IAAI+wB,OAAJ,YAAgB1c,EAAhB,cAAuBhY,EAAvB,8FAAkH,WAAW2D,EAAE,qGAAqG,OAAO8hH,GAAG7hH,EAAED,GAAG6K,IAAI8Q,EAAGomG,e,kCAAgC9hH,GAAmC,OAAO,IAAI0b,EAArC1b,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAAKA,EAAE,Q,iDAAskB,GAAG,IAAIhC,KAAKwD,WAAWnF,aAAQ,IAAS2B,KAAKN,MAA7C,CAA0D,GAAGM,KAAKkkH,YAAY,OAAOlkH,KAAKN,MAAM,GAAGM,KAAKmkH,gBAAgB,OAAOnkH,KAAKmxF,SAAS,GAAG8C,YAAY,GAAGj0F,KAAKokH,OAAO,OAAOC,GAAGrkH,KAAKmxF,SAASvkF,IAAI03G,KAAK,GAAGtkH,KAAKukH,YAAY,IAAIvkH,KAAKmxF,SAAS9yF,QAAQ,IAAI2B,KAAKikH,MAAM5lH,OAAO,OAAO2B,KAAKmxF,SAAS,GAAG8C,YAAY,IAArT,EAAyTjyF,EAAE,GAA3T,cAA2UhC,KAAKwD,YAAhV,IAA8T,4BAA6BvB,GAA7B,QAAkCD,IAAhW,8BAAmW,YAAO,IAAShC,KAAKN,QAAQsC,EAAEtC,MAAMM,KAAKN,OAAOwC,EAAEF,M,kCAA3sB,YAAO,IAAShC,KAAKN,OAAO,IAAIM,KAAKikH,MAAM5lH,QAAQ,IAAI2B,KAAKmxF,SAAS9yF,S,sCAA6B,OAAO,IAAI2B,KAAKmxF,SAAS9yF,QAAQ2B,KAAKmxF,SAAS,GAAGizB,S,6BAAmB,IAAQpiH,EAAUhC,KAAb0jH,GAAUttG,EAAGpW,KAAR2rB,KAAa,MAAM,QAAQ3pB,IAAI,QAAQoU,GAAG,QAAQA,GAAG,QAAQA,K,iCAAoB,MAAM,QAAQpW,KAAK0jH,IAAI,OAAO1jH,KAAK2rB,S,KAA0a,SAAS1pB,GAAGD,EAAEoU,GAAG,IAAIhY,EAAE4D,EAAEiyF,iBAAY,IAAS71F,IAAIgY,EAAEpU,EAAE2pB,MAAMvtB,GAAG,IAAIkmH,GAAG,SAAAtiH,GAAC,OAAEA,EAAEiyF,aAAYowB,GAAG,SAAAriH,GAAC,OAAE,IAAIA,EAAE3D,OAAO2D,EAAE,GAAGA,GAAEyhH,GAAG,SAACzhH,EAAEoU,GAAH,OAAOA,EAAEpU,GAAGoU,EAAEpU,GAAGoU,EAAEpU,GAAG,IAAG,SAAS6hH,GAAG7hH,EAAEoU,GAAG,IAAIhY,EAAE2D,EAAE,GAAG,IAAIC,EAAE,OAAOD,EAAE,KAAK,QAAQ3D,EAAEgY,EAAEkF,KAAKtZ,KAAKD,EAAEsD,KAAKjH,GAAG,OAAO2D,EAAE,SAAS+jB,GAAG9jB,GAAG,IAAG,SAASA,GAAG,OAAO,MAAMA,GAAG,SAASA,GAAG,cAAcA,GAAG,KAAKA,GAAG,KAAKA,EAAEyuG,OAAxE,CAAgFzuG,GAAnF,CAA6F,IAAIoU,EAAElL,OAAOlJ,GAAG,IAAIkJ,OAAOoF,MAAM8F,GAAG,OAAOA,EAAE,IAAIhY,EAAE4D,EAAE8kB,cAAc,MAAM,SAAS1oB,GAAG,UAAUA,GAAG4D,EAAEyuG,QAAO,IAAM8S,GAAG,CAAC,SAAS,UAAU,UAAU,UAAU,mBAAmBC,GAAG,IAAI1wF,OAAJ,kBAAsBywF,GAAG79G,KAAK,KAA9B,KAAsC,KAAS8+G,GAAG9lH,OAAOmyC,OAAO,CAACxnC,UAAU,KAAKy8F,QAAQuZ,GAAGtI,MAAMnB,GAAGoB,YAAYl8F,EAAEm8F,eAAe/6F,EAAEg7F,YAAYr9F,EAAEg6F,QAAQ75F,GAAE85F,UAAUh6F,GAAEq9F,YAAY36F,GAAE46F,iBAAiBn7F,GAAEo7F,iBAAiBx1G,GAAEy1G,sBAAsB76F,GAAE86F,sBAAsBn7F,GAAEo7F,aAAa56F,GAAE66F,cAAcz7F,GAAE8lB,SAAS+pB,GAAE6rD,WAAW76F,GAAE86F,kBAAkBrxF,GAAEsxF,iBAAiB77F,GAAE87F,aAAal7F,GAAEm7F,cAAch8F,GAAEi8F,QAAQlD,GAAElvG,MAAMkxG,GAAGyI,eAAelC,GAAGtM,IAAIuM,GAAGkC,qBAAqB/B,GAAGjI,UAAUkI,GAAG+B,aAAa9B,GAAG+B,uBAAuB7B,GAAG8B,YAAY7B,GAAG8B,UAAU7B,GAAG,mBAAmB,OAAOI,IAAI,gBAAgB,OAAOC,IAAI3vF,SAAS4vF,KAAssB,IAAIqG,GAAG7rG,EAAE,MAAM,SAAA5W,GAAC,OAAEA,EAAE6kC,YAAWhtB,EAAEjG,IAAI,KAAN,6RAA8C5T,KAAKu0G,SAAQ,EAA3D,SAA4EkQ,GAA5E,cAA8DzkH,KAAK0kH,GAAnE,gBAA2F1kH,KAAK0kH,GAAGC,SAAS3kH,KAAKqnB,OAAjH,OAAmFrlB,EAAnF,OAAwHhC,KAAK4/G,YAAY59G,GAAzI,uPAAgKhC,KAAKu0G,SAAQ,EAA7K,SAA8LkQ,GAA9L,cAAgLzkH,KAAK0kH,GAArL,gBAAuM1kH,KAAK4kH,OAA5M,uBAAyN5kH,KAAKm4G,UAAU,EAAEn4G,KAAKkN,QAAQsnG,gBAAvP,sPAAoR,IAASx0G,KAAK6kH,IAAlS,qCAAqT7kH,KAAK0kH,GAAGE,KAAK5kH,KAAKqnB,MAAM,KAA7U,cAAuSrnB,KAAK6kH,GAA5S,gBAAmW7kH,KAAK6kH,GAAGC,KAAK9kH,KAAKqnB,OAArX,OAAkVrnB,KAAK8O,KAAvV,OAA6XA,KAA7X,8KAAoZ9M,EAAEoU,GAAtZ,kFAAyZ,IAASpW,KAAK6kH,IAAva,qCAAib7kH,KAAK4kH,OAAtb,cAA6b5iH,EAAEoU,EAAEpW,KAAK8O,OAAOsH,EAAEpW,KAAK8O,KAAK9M,GAAO5D,EAAE4B,KAAKk4G,SAASl2G,EAAEoU,GAAE,GAApf,SAAqgBpW,KAAK6kH,GAAGxxF,KAAKj1B,EAAE2zG,SAAS,EAAE37F,EAAEpU,GAAjiB,gCAAoiB5D,GAApiB,uPAAujB4B,KAAK6kH,GAA5jB,uBAAokB7iH,EAAEhC,KAAK6kH,GAAG7kH,KAAK6kH,QAAG,EAAtlB,SAAmmB7iH,EAAEm0G,QAArmB,2GAAyB2I,KAAwlBjlG,EAAEjG,IAAI,SAAN,kDAAgC,aAAiB,qDAAF5R,EAAE,yBAAFA,EAAE,uBAAC,+BAASA,KAAQqlB,MAAM,EAAKA,MAAMV,QAAQ,2BAA2B,IAAI,EAAK7X,KAAK,EAAKuY,MAAMhpB,OAAO,EAAE,EAAE,EAAKgpB,MAAM5b,SAAS,MAAM,EAAKqD,MAAM,EAAE,EAAKuY,MAAM5b,SAAS,OAAO,EAAKqD,MAAM,GAAvL,EAAjD,8FAA4P9M,EAAEoU,GAA9P,4FAAyQpR,EAAEhF,KAAKqnB,WAAM,IAASrlB,GAAGA,EAAE,EAAE5D,EAAE,EAAE2D,EAAE,IAAI3D,EAAE,EAAEwE,KAAKuN,MAAMnO,EAAE,GAAGD,EAAEC,EAAE5D,EAAE,EAAE,QAAG,IAASgY,IAAIA,EAAEpW,KAAK8O,MAAUtN,EAAEQ,EAAEoU,EAAEwC,EAAExa,EAAE,EAAEwE,KAAK8B,KAAKlD,EAAE,GAAGwD,EAAEA,EAAEJ,MAAMxG,EAAEwa,GAAOC,EAAEjW,KAAKkF,IAAIsO,EAAEpW,KAAK8O,KAAK9M,IAAM4M,EAAxb,uBAA+bwH,EAAEtU,EAAEqI,KAAKnF,EAAE,UAAUJ,MAAM7C,EAAEA,EAAE8W,GAA9d,kBAAwe7Y,KAAK4T,IAAIwC,EAAEpU,GAAE,IAArf,OAA8iB,IAAhDoU,EAAEpW,KAAKk4G,SAASl2G,EAAE6W,GAAE,GAAIza,EAAE2mH,KAAK//G,GAAGlD,EAAEsU,EAAE47F,UAAkBhwG,EAAE,EAAEA,EAAE6W,EAAE7W,IAAIF,EAAEE,GAAG5D,EAAEkI,WAAWvE,EAAEC,GAAtlB,yBAAgmBoU,GAAhmB,+GAA6B0oG,K,IAA+kBkG,G,4KAA8EhjH,GAAE,IAAUoU,EAAsBpU,EAA3B0uG,KAAWtyG,EAAgB4D,EAApBkvG,IAAWnvG,EAASC,EAAdmvG,KAAWrvG,EAAGE,EAAPovG,IAAShzG,EAAEohD,SAASppC,EAAEw9F,KAAK9/F,IAAI,KAAK/R,EAAEy9C,SAASppC,EAAEw9F,KAAK9/F,IAAI,OAAOhS,EAAE09C,SAASppC,EAAEw9F,KAAK9/F,IAAI,OAAOsC,EAAEu/F,oB,yJAA+D31G,KAAKkN,QAA3BlL,E,EAALiyG,KAAW79F,E,EAAJ86F,IAAW9yG,E,EAAL+yG,KAAWpvG,E,EAAJqvG,MAAuBpvG,EAAEw9C,SAASppC,EAAEopC,SAASphD,EAAEohD,SAASz9C,EAAEy9C,S,wBAAax9C,EAAEY,KAAK+E,IAAIwU,EAAEnc,KAAKkN,SAASlN,KAAKkN,QAAQynG,W,SAAiB30G,KAAK+1G,KAAK4F,YAAY,EAAE35G,G,cAAGhC,KAAKq4G,aAAa,OAAOr4G,KAAK+1G,MAAM/1G,KAAKk2G,QAAQjC,KAAKiH,c,SAAoBl7G,KAAKk2G,QAAQjC,KAAKkH,iB,OAAiBn7G,KAAKilH,uBAAuB,OAAOjlH,KAAKilH,uBAAuB,QAAQjlH,KAAKilH,uBAAuB,O,oJAA+BjjH,GAAG,GAAGhC,KAAKk2G,QAAQjC,KAAKjyG,GAAG,CAAC,IAAIoU,EAAEpW,KAAKk2G,QAAQjC,KAAKjyG,GAAGhC,KAAKklH,cAAcljH,EAAEoU,O,iCAAxrBpU,EAAEoU,GAAG,OAAO,QAAQA,GAAG,QAAQA,M,GAAnD4hG,IAAitB/9F,EAAE+qG,GAAG,OAAO,QAAQlqG,EAAElH,IAAI,OAAOoxG,IAAI,IAAIG,GAAGvsG,EAAE,QAAcwsG,GAAG,CAAC,OAAO,OAAO,OAAO,OAAO,QAAcC,G,kDAAc,aAAiB,qDAAFrjH,EAAE,yBAAFA,EAAE,uBAAC,+BAASA,IAAGiY,EAAE,eAAK,cAAc,SAAAjY,GAAC,OAAE,EAAK6zG,OAAOxwG,KAAKrD,MAAKiY,EAAE,eAAK,aAAa,IAAIA,EAAE,eAAK,gBAAgB,IAA1G,E,uKAAqOjY,EAAGhC,KAAR+1G,K,SAAmB/1G,KAAKslH,qBAAqB,oBAAcjnH,OAAO2D,EAAE0vG,Y,uBAAkB1xG,KAAKs5G,aAAat5G,KAAKulH,Y,cAAYvlH,KAAKwlH,WAAWxlH,KAAKylH,kB,SAAwBzlH,KAAKmgH,WAAW7P,MAAMtwG,KAAK0lH,Y,wBAAkB1lH,KAAK2lH,UAAUrV,MAAMtwG,KAAK0lH,Y,yBAAkB1lH,KAAKkgH,UAAU5P,MAAMtwG,KAAK0lH,Y,yLAAuC1jH,EAAEoU,G,+EAAoB,IAARhY,EAAG4B,KAAR+1G,KAAkB/zG,EAAEoU,GAAQA,EAAEhY,EAAEo0G,UAAUxwG,GAAGD,EAAE3D,EAAEo0G,UAAUxwG,EAAE,GAAGF,EAAE1D,EAAEm+G,UAAUv6G,EAAE,EAAE,GAAG8kB,cAAwBlY,EAAE,CAAC7D,KAAKjJ,EAAEiG,OAAO/F,EAAE3D,OAA7B2G,EAAEoR,EAAE,EAAE,EAAE,EAA8BnE,MAAMjQ,EAAE,EAAE,EAAE8M,KAAKsH,EAAEskG,OAAO34G,GAAGqjH,GAAGnwF,SAASnzB,GAAG9B,KAAKulH,WAAWlgH,KAAKuJ,GAAG5O,KAAK4lH,cAAcvgH,KAAKuJ,GAAG5M,GAAGgD,E,iJAAqB,IAAD,EAAKhD,EAAEhC,KAAKulH,WAAWjvF,QAAQ,SAAAt0B,GAAC,MAAE,SAASA,EAAE+I,QAA7C,cAAiE/I,GAAjE,IAAoD,2BAAe,KAAPoU,EAAO,UAAUpW,KAAK+1G,KAAKwG,UAAUnmG,EAAEnE,MAAMmE,EAAEtH,MAAMd,MAAM,MAApD,mBAAKhM,EAAL,KAAO5D,EAAP,KAA0D4B,KAAK6lH,mBAAmB7jH,EAAE5D,IAAvJ,iC,yCAA8K4D,EAAEoU,GAAG,IAAIhY,EAAE4B,KAAKk2G,QAAQhC,KAAK91G,GAAGA,EAAEgyC,IAAIx8B,IAAI5R,EAAEoU,K,iCAAc,IAAIpU,EAAEhC,KAAKulH,WAAW9d,MAAM,SAAAzlG,GAAC,MAAE,SAASA,EAAE+I,QAAO/I,IAAG,IAAKhC,KAAKkN,QAAQgnG,KAAK10D,SAASx/C,KAAKq4G,aAAa,OAAOr2G,EAAEi1C,S,8IAA4Bj1C,EAAEhC,KAAKulH,WAAW9d,MAAM,SAAAzlG,GAAC,MAAE,SAASA,EAAE+I,UAAU/K,KAAKklH,cAAc,OAAOljH,EAAEi1C,O,wPAA2Bj1C,EAAEhC,KAAKulH,WAAWjvF,QAAQ,SAAAt0B,GAAC,MAAE,SAASA,EAAE+I,Q,cAAoB/I,G,IAAb,2BAAgB,uBAARoU,EAAO,SAAyB6gC,MAAMslE,UAAU,EAAE,oBAAoBl+G,SAAS2B,KAAKklH,cAAc,MAAM9uG,EAAE6gC,O,iSAA4Bj1C,EAAEhC,KAAKulH,WAAW9d,MAAM,SAAAzlG,GAAC,MAAE,SAASA,EAAE+I,Q,iDAA+D,IAAjCqL,EAAGpU,EAATi1C,MAAW74C,EAAEgY,EAAE87F,cAAc,EAAE,IAAIpwG,EAAE,EAAOA,EAAE,IAAI,IAAI1D,EAAE0D,IAAIA,I,GAAQkD,EAAElD,EAAE,EAAE8M,EAAEwH,EAAEmmG,UAAU,EAAEz6G,GAAM9B,KAAK6lH,mBAAmB,cAAcj3G,IAAG7M,E,iCAAeojH,G,OAARnjH,E,OAAW5D,EAAEgY,EAAE87F,cAAcltG,GAAG5G,EAAE4D,EAAE8jH,YAAY1nH,GAAG4B,KAAKklH,cAAc,MAAM9mH,G,yIAA1lD4D,EAAEoU,GAAG,OAAO,QAAQA,GAAG,aAAapU,EAAEwwG,UAAU,IAAI,YAAYxwG,EAAEwwG,UAAU,O,GAA/NwF,IAAkvD/9F,EAAEorG,GAAG,OAAO,OAAOvqG,EAAElH,IAAI,MAAMyxG,IAAIppG,GAAEjC,GAAE,UAAU,CAAC,CAAC,EAAE,gBAAgB,CAAC,EAAE,kBAAkB,CAAC,KAAK,0BAA0B,CAAC,KAAK,qBAAqB,CAAC,KAAK,wBAAwBnY,GAAEmY,GAAE,OAAO,CAAC,CAAC,GAAG,sBAAsB,CAAC,IAAI,eAAe,CAAC,IAAI,kBAAkB,CAAC,IAAI,gBAAgB,CAAC,IAAI,aAAa,CAAC,IAAI,cAAc,CAAC,IAAI,aAAa,CAAC,IAAI,gBAAgB,CAAC,IAAI,kBAAkB,CAAC,IAAI,kBAAkB,CAAC,IAAI,YAAY,CAAC,IAAI,aAAa,CAAC,IAAI,aAAa,CAAC,IAAI,oBAAoB,CAAC,IAAI,cAAc,CAAC,IAAI,iBAAiB,CAAC,IAAI,aAAa,CAAC,IAAI,cAAc,CAAC,IAAI,UAAU,CAAC,IAAI,iBAAiB,CAAC,MAAM,UAAU,CAAC,MAAM,iBAAiB,CAAC,MAAM,cAAc,CAAC,MAAM,kBAAkB,CAAC,MAAM,qBAAqB,CAAC,MAAM,cAAc,CAAC,MAAM,sBAAsB,CAAC,MAAM,qBAAqB,CAAC,MAAM,wBAAwB,CAAC,MAAM,eAAe,CAAC,MAAM,eAAe,CAAC,MAAM,kBAAkB,CAAC,MAAM,oBAAoB,CAAC,MAAM,iBAAiB,CAAC,MAAM,WAAW,CAAC,MAAM,oBAAoB,CAAC,MAAM,uBAAuB,CAAC,MAAM,sBAAsB,CAAC,MAAM,WAAW,CAAC,MAAM,gBAAgB,CAAC,MAAM,gBAAgB,CAAC,MAAM,sBAAsB,CAAC,MAAM,sBAAsB,CAAC,MAAM,oBAAoB,CAAC,MAAM,oBAAoB,CAAC,MAAM,iBAAiB,CAAC,MAAM,iBAAiB,CAAC,MAAM,iBAAiB,CAAC,MAAM,oBAAoB,CAAC,MAAM,iBAAiB,CAAC,MAAM,qBAAqB,CAAC,MAAM,uBAAuB,CAAC,MAAM,sBAAsB,CAAC,MAAM,mBAAmB,CAAC,MAAM,0BAA0B,CAAC,MAAM,0BAA0B,CAAC,MAAM,mBAAmB,CAAC,MAAM,uBAAuB,CAAC,MAAM,uBAAuB,CAAC,MAAM,oBAAoB,CAAC,MAAM,0BAA0B,CAAC,MAAM,qBAAqB,CAAC,MAAM,2BAA2B,CAAC,MAAM,yBAAyB,CAAC,MAAM,YAAY,CAAC,MAAM,kBAAkB,CAAC,MAAM,mBAAmB,CAAC,MAAM,wBAAwB,CAAC,MAAM,yBAAyB,CAAC,MAAM,cAAc,CAAC,MAAM,qBAAqB,CAAC,MAAM,eAAe,CAAC,MAAM,wBAAwB,CAAC,MAAM,yBAAyB,CAAC,MAAM,yBAAyB,CAAC,MAAM,oBAAoB,CAAC,MAAM,sBAAsB,CAAC,MAAM,oBAAoB,CAAC,MAAM,kBAAkB,CAAC,MAAM,kBAAkB,CAAC,MAAM,0BAA0B,CAAC,MAAM,6BAA6B,CAAC,MAAM,uBAAuB,CAAC,MAAM,yBAAyB,CAAC,MAAM,qBAAqB,CAAC,MAAM,mBAAmB,CAAC,MAAM,kBAAkB,CAAC,MAAM,yBAAyB,CAAC,MAAM,wBAAwB,CAAC,MAAM,wBAAwB,CAAC,MAAM,aAAa,CAAC,MAAM,aAAa,CAAC,MAAM,SAAS,CAAC,MAAM,YAAY,CAAC,MAAM,4BAA4B,CAAC,MAAM,2BAA2B,CAAC,MAAM,2BAA2B,CAAC,MAAM,eAAe,CAAC,MAAM,4BAA4B,CAAC,MAAM,4BAA4B,CAAC,MAAM,0BAA0B,CAAC,MAAM,sBAAsB,CAAC,MAAM,qBAAqB,CAAC,MAAM,sBAAsB,IAAI+rG,GAAG,CAAC,CAAC,IAAI,gBAAgB,CAAC,IAAI,mBAAmB,CAAC,IAAI,eAAe,CAAC,IAAI,kBAAkB,CAAC,IAAI,qBAAqB,CAAC,IAAI,aAAa,CAAC,IAAI,aAAa,CAAC,IAAI,qBAAqB,CAAC,IAAI,YAAY,CAAC,IAAI,eAAe,CAAC,IAAI,kBAAkB,CAAC,IAAI,eAAe,CAAC,IAAI,gBAAgB,CAAC,IAAI,0BAA0B,CAAC,IAAI,UAAU,CAAC,IAAI,YAAY,CAAC,IAAI,gBAAgB,CAAC,IAAI,YAAY,CAAC,IAAI,gBAAgB,CAAC,IAAI,gBAAgB,CAAC,IAAI,mBAAmB,CAAC,IAAI,mBAAmB,CAAC,IAAI,iBAAiB,CAAC,IAAI,YAAY,CAAC,IAAI,kBAAkB,CAAC,IAAI,kBAAkB,CAAC,IAAI,WAAW,CAAC,IAAI,cAAc,CAAC,IAAI,YAAY,CAAC,IAAI,uBAAuB,CAAC,IAAI,eAAe,CAAC,IAAI,cAAc,CAAC,IAAI,iBAAiB,CAAC,IAAI,eAAe,CAAC,IAAI,cAAc,CAAC,IAAI,UAAU,CAAC,IAAI,qBAAqB,CAAC,IAAI,cAAc,CAAC,IAAI,cAAc,CAAC,IAAI,YAAY,CAAC,IAAI,uBAAuB,CAAC,IAAI,0BAA0B,CAAC,IAAI,uBAAuB,CAAC,IAAI,eAAe,CAAC,IAAI,gBAAgB,CAAC,IAAI,gBAAgB,CAAC,IAAI,kBAAkB,CAAC,IAAI,sBAAsB,CAAC,MAAM,cAAc,CAAC,MAAM,cAAc,CAAC,MAAM,mBAAmB,CAAC,MAAM,iBAAiB,CAAC,MAAM,wBAAwB,CAAC,MAAM,wBAAwB,CAAC,MAAM,iCAAiC,CAAC,MAAM,iCAAiC,CAAC,MAAM,wBAAwB,CAAC,MAAM,wBAAwB,CAAC,MAAM,mBAAmB,CAAC,MAAM,gBAAgB,CAAC,MAAM,WAAW,CAAC,MAAM,YAAY,CAAC,MAAM,kBAAkB,CAAC,MAAM,YAAY,CAAC,MAAM,YAAY,CAAC,MAAM,wBAAwB,CAAC,MAAM,wBAAwB,CAAC,MAAM,qBAAqB,CAAC,MAAM,sBAAsB,CAAC,MAAM,YAAY,CAAC,MAAM,YAAY,CAAC,MAAM,cAAc,CAAC,MAAM,aAAa,CAAC,MAAM,kBAAkB,CAAC,MAAM,mBAAmB,CAAC,MAAM,iBAAiB,CAAC,MAAM,aAAa,CAAC,MAAM,UAAU,CAAC,MAAM,uBAAuB,CAAC,MAAM,uBAAuB,CAAC,MAAM,UAAU,CAAC,MAAM,uBAAuB,CAAC,MAAM,eAAe,CAAC,MAAM,gBAAgB,CAAC,MAAM,YAAY,CAAC,MAAM,aAAa,CAAC,MAAM,gBAAgB,CAAC,MAAM,gBAAgB,CAAC,MAAM,aAAa,CAAC,MAAM,gBAAgB,CAAC,MAAM,cAAc,CAAC,MAAM,cAAc,CAAC,MAAM,eAAe,CAAC,MAAM,eAAe,CAAC,MAAM,kBAAkB,CAAC,MAAM,WAAW,CAAC,MAAM,WAAW,CAAC,MAAM,WAAW,CAAC,MAAM,WAAW,CAAC,MAAM,wBAAwB,CAAC,MAAM,2BAA2B,CAAC,MAAM,gBAAgB,CAAC,MAAM,QAAQ,CAAC,MAAM,iBAAiB,CAAC,MAAM,aAAa,CAAC,MAAM,iBAAiB,CAAC,MAAM,oBAAoB,CAAC,MAAM,4BAA4B,CAAC,MAAM,cAAc,CAAC,MAAM,uBAAuB,CAAC,MAAM,4BAA4B,CAAC,MAAM,mBAAmB,CAAC,MAAM,wBAAwB,CAAC,MAAM,uBAAuB,CAAC,MAAM,yBAAyB,CAAC,MAAM,yBAAyB,CAAC,MAAM,WAAW,CAAC,MAAM,iBAAiB,CAAC,MAAM,kBAAkB,CAAC,MAAM,aAAa,CAAC,MAAM,yBAAyB,CAAC,MAAM,eAAe,CAAC,MAAM,iBAAiB,CAAC,MAAM,YAAY,CAAC,MAAM,qBAAqB,CAAC,MAAM,iBAAiB,CAAC,MAAM,cAAc,CAAC,MAAM,cAAc,CAAC,MAAM,cAAc,CAAC,MAAM,eAAe,CAAC,MAAM,2BAA2B,CAAC,MAAM,aAAa,CAAC,MAAM,iBAAiB,CAAC,MAAM,iBAAiB,CAAC,MAAM,eAAe,CAAC,MAAM,YAAY,CAAC,MAAM,cAAc,CAAC,MAAM,eAAe,CAAC,MAAM,4BAA4B,CAAC,MAAM,SAAS,CAAC,MAAM,yBAAyB,CAAC,MAAM,yBAAyB,CAAC,MAAM,4BAA4B,CAAC,MAAM,iBAAiB,CAAC,MAAM,qBAAqB,CAAC,MAAM,iBAAiB,CAAC,MAAM,gBAAgB,CAAC,MAAM,aAAa,CAAC,MAAM,YAAY,CAAC,MAAM,WAAW,CAAC,MAAM,kBAAkB,CAAC,MAAM,wBAAwB,CAAC,MAAM,0BAA0B,CAAC,MAAM,mBAAmB,CAAC,MAAM,cAAc,CAAC,MAAM,4BAA4B,CAAC,MAAM,4BAA4B,CAAC,MAAM,uBAAuB,CAAC,MAAM,qBAAqB,CAAC,MAAM,4BAA4B,CAAC,MAAM,SAAS,CAAC,MAAM,eAAe,CAAC,MAAM,0BAA0B,CAAC,MAAM,gBAAgB,CAAC,MAAM,qBAAqB,CAAC,MAAM,4BAA4B,CAAC,MAAM,gBAAgB,CAAC,MAAM,cAAc,CAAC,MAAM,kBAAkB,CAAC,MAAM,cAAc,CAAC,MAAM,cAAc,CAAC,MAAM,oBAAoB,CAAC,MAAM,iBAAiB,CAAC,MAAM,mBAAmB,CAAC,MAAM,sBAAsB,CAAC,MAAM,eAAe,CAAC,MAAM,kBAAkB,CAAC,MAAM,gBAAgB,CAAC,MAAM,aAAa,CAAC,MAAM,cAAc,CAAC,MAAM,eAAe,CAAC,MAAM,mBAAmB,CAAC,MAAM,oBAAoB,CAAC,MAAM,eAAe,CAAC,MAAM,kBAAkB,CAAC,MAAM,eAAe,CAAC,MAAM,kBAAkB,CAAC,MAAM,oBAAoB,CAAC,MAAM,oBAAoB,CAAC,MAAM,kBAAkB,CAAC,MAAM,0BAA0B,CAAC,MAAM,eAAe,CAAC,MAAM,iBAAiB,CAAC,MAAM,eAAe,CAAC,MAAM,kBAAkB,CAAC,MAAM,oBAAoB,CAAC,MAAM,4BAA4B,CAAC,MAAM,iBAAiB,CAAC,MAAM,iBAAiB,CAAC,MAAM,aAAa,CAAC,MAAM,sBAAsB,CAAC,MAAM,uBAAuB,CAAC,MAAM,cAAc,CAAC,MAAM,oBAAoB,CAAC,MAAM,oBAAoB,CAAC,MAAM,cAAc,CAAC,MAAM,gBAAgB,CAAC,MAAM,qBAAqB,CAAC,MAAM,mBAAmB,CAAC,MAAM,mBAAmB,CAAC,MAAM,oBAAoB,CAAC,MAAM,qBAAqB,CAAC,MAAM,wBAAwB,CAAC,MAAM,oBAAoB,CAAC,MAAM,sBAAsB,CAAC,MAAM,cAAc,CAAC,MAAM,eAAe,CAAC,MAAM,yBAAyB,CAAC,MAAM,oBAAoB,CAAC,MAAM,uBAAuB,CAAC,MAAM,eAAe,CAAC,MAAM,eAAe,CAAC,MAAM,eAAe,CAAC,MAAM,gBAAgB,CAAC,MAAM,gBAAgB,CAAC,MAAM,mBAAmB,CAAC,MAAM,gBAAgB,CAAC,MAAM,WAAWlkH,GAAEmY,GAAE,OAAO+rG,IAAIlkH,GAAEmY,GAAE,OAAO+rG,IAAI9pG,GAAEnC,GAAE,MAAM,CAAC,CAAC,GAAG,CAAC2C,EAAE,iBAAiBP,EAAE,eAAe,CAAC,GAAG,CAACS,EAAE,aAAaF,EAAE,QAAQD,EAAE,qB,IAA2BwpG,G,sKAA6H,OAAOhmH,KAAK07G,YAAY17G,KAAK2uB,YAAY3uB,KAAKo2G,S,kCAAmBp2G,KAAKowC,IAAI,IAAIlR,IAAI,CAAC,CAAC,EAAEl/B,KAAKi3C,MAAMk7D,UAAU,IAAI,CAAC,EAAEnyG,KAAKi3C,MAAMo7D,SAAS,IAAI,CAAC,EAAEryG,KAAKi3C,MAAMk7D,UAAU,IAAI,CAAC,EAAEnyG,KAAKi3C,MAAMk7D,UAAU,IAAI,CAAC,EAAEnyG,KAAKi3C,MAAMo7D,SAAS,IAAI,CAAC,EAAEryG,KAAKi3C,MAAMo7D,SAAS,S,iCAAlVrwG,EAAEoU,GAAG,OAAO,MAAMpU,EAAEqwG,SAASj8F,EAAE,IAAI,aAAapU,EAAEwwG,UAAUp8F,EAAE,IAAI,IAAIpU,EAAEqwG,SAASj8F,EAAE,O,GAAvGy4F,IAA6W50F,EAAE+rG,GAAG,OAAO,QAAQ/rG,EAAE+rG,GAAG,eAAe,GAAG9pG,EAAEtI,IAAI,OAAOoyG,IAAI/pG,GAAEjC,GAAE,OAAO,CAAC,CAAC,EAAE,eAAe,CAAC,EAAE,kBAAkB,CAAC,EAAE,eAAe,CAAC,EAAE,eAAe,CAAC,EAAE,kBAAkB,CAAC,EAAE,qB,IAA2BisG,G,sKAAsB,OAAOjmH,KAAK07G,YAAY17G,KAAK2uB,YAAY3uB,KAAKo2G,S,kCAAmBp2G,KAAKowC,IAAI,IAAIlR,IAAJ,CAAS,CAAC,EAAEl/B,KAAKi3C,MAAMu7D,UAAU,IAAI,CAAC,EAAExyG,KAAKi3C,MAAMu7D,UAAU,IAAI,CAAC,EAAExyG,KAAKi3C,MAAMo7D,SAAS,IAAI,CAAC,EAAEryG,KAAKi3C,MAAMo7D,SAAS,IAAI,CAAC,GAAGryG,KAAKi3C,MAAMo7D,SAAS,KAAK,CAAC,GAAGryG,KAAKi3C,MAAMo7D,SAAS,KAAK,CAAC,GAAGryG,KAAKi3C,MAAMo7D,SAAS,MAAzM,mBAAiN1wG,MAAMwI,KAAKnK,KAAKowC,Y,GAAtTy+D,IAA8T50F,EAAEgsG,GAAG,OAAO,QAAQ/pG,EAAEtI,IAAI,OAAOqyG,IAAIhqG,GAAEjC,GAAE,OAAO,CAAC,CAAC,EAAE,cAAc,CAAC,EAAE,eAAe,CAAC,EAAE,YAAY,CAAC,EAAE,aAAa,CAAC,GAAG,eAAe,CAAC,GAAG,UAAU,CAAC,GAAG,eAAeiC,GAAEnC,GAAE,OAAO,CAAC,CAAC,EAAE,CAACX,EAAE,YAAYE,EAAE,MAAMC,EAAE,UAAUC,EAAE,uBAAuBE,EAAE,iBAAiBs/F,QAAQ,YAAY,CAAC,GAAG,CAAC5/F,EAAE,kBAAkB4/F,QAAQ,YAAY,CAAC,GAAG,CAAC5/F,EAAE,WAAW4/F,QAAQ,YAAY,CAAC,GAAG,CAAC5/F,EAAE,gBAAgBC,EAAE,kBAAkB2/F,QAAQ,c,IAAoBh/E,G,sKAAkf,OAAO/5B,KAAKowC,IAAI,IAAIlR,IAAIl/B,KAAKk7G,cAAcl7G,KAAK07G,YAAY17G,KAAK2uB,YAAY3uB,KAAKo2G,S,oCAAoB,IAASp0G,EAAGhC,KAAPowC,IAAYpwC,KAAKi3C,MAAMy6D,WAAW,IAAIn3F,EAAE,2BAA2B,cAAe7b,OAAOs2D,QAAQkxD,IAA9B,eAAkC,2BAA1B9vG,EAA0B,KAAxBhY,EAAwB,KAACgY,EAAEtQ,SAASsQ,EAAE,IAAI,IAAIrU,EAAE3D,EAAE4B,KAAKi3C,MAAM7gC,GAAG,aAAarU,GAAGC,EAAE4R,IAAIwC,EAAErU,M,kCAAqG,IAAjF,IAAAC,EAAEoU,EAAEhY,EAAE2D,EAAED,EAAOkD,EAAGhF,KAAPowC,IAAYxhC,EAAE5O,KAAKi3C,MAAMu7D,UAAU,KAAKhxG,EAAE,IAAIoX,EAAE5Y,KAAKi3C,MAAMy6D,WAAgB9iG,KAAK,CAAC,GAAG5M,EAAEhC,KAAKi3C,MAAMslE,UAAU/6G,EAAE,GAAG4U,EAAEpW,KAAKi3C,MAAMu7D,UAAUhxG,EAAE,GAAGpD,EAAE4B,KAAKi3C,MAAMu7D,UAAUhxG,EAAE,GAAGO,EAAE/B,KAAKi3C,MAAMslE,UAAUnmG,EAAE,GAAGA,EAAEhY,EAAEwa,EAAE,YAAYgb,QAAQC,KAAK,2GAA6H,KAAvB/xB,EAAE9B,KAAKs8G,SAASv6G,EAAEqU,EAAEhY,KAAe,aAAa0D,GAAGkD,EAAE4O,IAAI5R,EAAEF,GAAGN,GAAG,M,+BAAaQ,EAAEoU,EAAEhY,GAAG,OAAO4D,GAAG,IAAI,OAAO,OAAOhC,KAAKmmH,UAAU/vG,GAAG,IAAI,OAAO,OAAOpW,KAAKomH,UAAUhwG,GAAG,IAAI,OAAO,OAAOpW,KAAKqmH,UAAUjwG,EAAEhY,GAAG,IAAI,OAAO,OAAO4B,KAAKsmH,SAASlwG,GAAG,KAAKA,EAAEhY,EAAE4B,KAAKi3C,MAAMy6D,YAAY,OAAO1xG,KAAKi3C,MAAMi7D,cAAc97F,EAAEhY,K,gCAAa4D,GAAG,IAAIoU,EAAEpW,KAAKi3C,MAAMu7D,UAAUxwG,EAAE,GAAG,EAAE,OAAOwW,EAAExY,KAAKi3C,MAAMslE,UAAUv6G,EAAE,GAAGoU,M,gCAAcpU,EAAEoU,GAAG,OAAOoC,EAAExY,KAAKi3C,MAAMslE,UAAUv6G,EAAE,EAAEoU,EAAE,M,+BAAapU,GAAG,OAAOwW,EAAExY,KAAKi3C,MAAMslE,UAAUv6G,EAAE,EAAE,M,gCAAcA,GAAwE,IAAlE,IAAOoU,EAAGpW,KAATi3C,MAAc74C,EAAEgY,EAAEo8F,UAAUxwG,EAAE,GAAGD,EAAEqU,EAAEo8F,UAAUxwG,EAAE,IAAIF,EAAEE,EAAE,GAAGgD,EAAE,GAAW4J,EAAE,EAAEA,EAAExQ,EAAEwQ,IAAI,CAAC,IAAIxQ,EAAEgY,EAAEmmG,UAAUz6G,EAAE,EAAE,GAAG8M,EAAEwH,EAAEmmG,UAAUz6G,EAAE,EAAE,GAAGN,EAAE4U,EAAEo8F,UAAU1wG,EAAE,GAAG8W,EAAExC,EAAEo8F,UAAU1wG,EAAE,GAAGE,EAAE6W,EAAEL,EAAEpC,EAAEmwG,iBAAiB3tG,EAAEpX,IAAIwD,EAAEK,KAAK,CAACmhH,KAAKpoH,EAAEqoH,QAAQ73G,EAAEkiB,KAAKjY,IAAI/W,GAAGC,EAAE,OAAO,IAAI3D,EAAE4G,EAAE,GAAG8rB,KAAK9rB,I,qCAAiBhD,EAAEoU,GAAG,MAAM,iBAAiBpU,EAAEoU,EAAEpU,IAAIoU,EAAEpU,EAAE8kB,gBAAgB9kB,EAAEoU,EAAEpU,IAAIA,K,iCAAx6DA,EAAEoU,GAAG,OAAO,MAAMpU,EAAEqwG,SAASj8F,EAAE,IAAI,aAAapU,EAAEwwG,UAAUp8F,EAAE,K,mCAAuBpU,EAAEoU,GAAG,IAAIhY,EAAC,0DAAoB4D,EAAEoU,GAAG,OAAOhY,EAAEm8G,YAAYv4G,EAAEqwG,SAASj8F,EAAE,IAAIhY,EAAEo8G,WAAWx4G,EAAEqwG,SAASj8F,EAAE,IAAIhY,EAAE+1G,aAAa/1G,EAAEo8G,WAAW,EAAEp8G,I,0CAA6B4D,GAAG,OAAO,SAASA,GAAG,IAAIoU,EAAE,SAASpU,GAAG,IAAD,EAAKoU,EAAEpU,EAAE,GAAGvC,YAAYrB,EAAE,EAA1B,cAAyC4D,GAAzC,IAA4B,4BAAe5D,GAAf,QAAoBC,QAAhD,8BAAuD,IAAvD,EAA2D0D,EAAE,IAAIqU,EAAEhY,GAAG0D,EAAE,EAAxE,cAAuFE,GAAvF,IAA0E,gCAAQoU,EAAR,QAAerU,EAAE6R,IAAIwC,EAAEtU,GAAGA,GAAGsU,EAAE/X,QAAzG,8BAAgH,OAAO0D,EAAlI,CAAqIC,EAAE4K,KAAK,SAAA5K,GAAC,OAAEA,EAAEi1C,MAAM+6D,cAAa,OAAO,IAAIl1F,EAAE1G,GAAnM,CAAuMpU,O,GAA5d6sG,IAA+7D50F,EAAE8f,GAAG,OAAO,OAAO9f,EAAE8f,GAAG,gBAAe,GAAI9f,EAAE8f,GAAG,eAAe,IAAI,IAAMmsF,GAAG,CAAC3sG,EAAEmtG,GAAG/sG,EAAE,SAAS3X,EAAEoU,GAAG,MAAM,CAACpU,EAAEqwG,SAASj8F,GAAGpU,EAAEqwG,SAASj8F,EAAE,IAAI,EAAEpU,EAAEqwG,SAASj8F,EAAE,GAAG,IAAIxJ,KAAK,SAAA5K,GAAC,OAAEA,EAAE0B,SAAS,OAAMgC,KAAK,MAAMu7G,GAAGyF,GAAG7E,GAAG6E,GAAGlF,GAAGkF,GAAG9E,GAAG,SAAS5/G,EAAEoU,GAAG,IAAMhY,EAAE4D,EAAEmwG,UAAU/7F,GAAGrU,EAAEC,EAAEmwG,UAAU/7F,EAAE,GAAG,EAAEtU,EAAEE,EAAEmwG,UAAU/7F,EAAE,GAAGpR,EAAEhD,EAAEmwG,UAAU/7F,EAAE,GAAGxH,EAAE5M,EAAEmwG,UAAU/7F,EAAE,GAAG5U,EAAEQ,EAAEmwG,UAAU/7F,EAAE,IAAI,OAAO,IAAI8tB,KAAKA,KAAKyiF,IAAIvoH,EAAE2D,EAAED,EAAEkD,EAAE4J,EAAEpN,KAAKolH,GAAGF,GAAGG,GAAGH,GAAGI,GAAGJ,GAAGK,GAAGL,GAAGM,GAAG,SAAChlH,EAAEoU,GAAH,OAAOpU,EAAEwwG,UAAUp8F,IAAG6wG,GAAGP,IAAI,SAASA,GAAG1kH,EAAEoU,GAAG,OAAOoC,EAAExW,EAAEu6G,UAAUnmG,EAAE,IAAI8F,EAAEtI,IAAI,MAAMmmB,IAAI9d,GAAEjC,GAAE,MAAM,CAAC,CAAC,EAAE,kBAAkB,CAAC,EAAE,kBAAkB,CAAC,GAAG,gBAAgB,CAAC,GAAG,kBAAkB,CAAC,GAAG,0BAA0B,CAAC,GAAG,mBAAmB,CAAC,GAAG,wBAAwB,CAAC,GAAG,mBAAmB,CAAC,GAAG,YAAY,CAAC,GAAG,sBAAsB,CAAC,GAAG,eAAe,CAAC,GAAG,oBAAoB,CAAC,GAAG,mBAAmB,CAAC,GAAG,6BAA6B,CAAC,GAAG,kBAAkB,CAAC,GAAG,aAAa,CAAC,SAAS,iBAAiB,CAAC,OAAO,eAAe,CAAC,OAAO,WAAW,CAAC,OAAO,oBAAoB,CAAC,MAAM,SAAS,CAAC,OAAO,mBAAmB,CAAC,OAAO,uBAAuB,CAAC,OAAO,uBAAuB,CAAC,OAAO,gBAAgB,CAAC,OAAO,gCAAgC,CAAC,OAAO,oBAAoB,CAAC,OAAO,iBAAiB,CAAC,OAAO,iBAAiB,CAAC,OAAO,oBAAoB,CAAC,OAAO,WAAW,CAAC,OAAO,sBAAsB,CAAC,OAAO,kBAAkB,CAAC,OAAO,mBAAmB,CAAC,OAAO,iBAAiB,CAAC,OAAO,wBAAwB,CAAC,OAAO,kCAAkC,CAAC,OAAO,YAAY,CAAC,OAAO,qBAAqB,CAAC,OAAO,SAAS,CAAC,OAAO,WAAW,CAAC,OAAO,aAAa,CAAC,OAAO,eAAe,CAAC,OAAO,YAAY,CAAC,OAAO,gBAAgB,CAAC,OAAO,eAAe,CAAC,OAAO,cAAc,CAAC,OAAO,qBAAqB,CAAC,OAAO,YAAY,CAAC,OAAO,YAAY,CAAC,OAAO,YAAY,CAAC,OAAO,sBAAsB,CAAC,OAAO,kBAAkB,CAAC,OAAO,mBAAmB,CAAC,OAAO,mBAAmB,CAAC,OAAO,mBAAmB,CAAC,OAAO,mBAAmB,CAAC,OAAO,uBAAuB,CAAC,OAAO,6BAA6B,CAAC,OAAO,gBAAgB,CAAC,OAAO,UAAU,CAAC,OAAO,mBAAmB,CAAC,OAAO,kBAAkB,CAAC,OAAO,qCAAqC,CAAC,OAAO,kCAAkC,CAAC,OAAO,kCAAkC,CAAC,OAAO,oCAAoC,CAAC,OAAO,4BAA4B,CAAC,OAAO,6BAA6B,CAAC,OAAO,iBAAiB,CAAC,OAAO,aAAa,CAAC,OAAO,cAAc,CAAC,OAAO,cAAc,CAAC,OAAO,kBAAkB,CAAC,OAAO,qBAAqB,CAAC,OAAO,mBAAmB,CAAC,OAAO,qBAAqB,IAAMktG,GAAG,CAAC,OAAO,eAAeC,KAAK,wBAAwBC,KAAK,OAAOC,KAAK,yBAAyBC,KAAK,eAAeC,KAAK,mBAAmBC,KAAK,QAAQC,IAAI,cAAcC,KAAK,gBAAgBC,KAAK,gBAAgBC,KAAK,gBAAgBC,KAAK,wBAAwBC,KAAK,uBAAuBC,IAAI,oBAAoBC,KAAK,QAAQC,KAAK,iBAAiBC,IAAI,MAAM,OAAO,OAAOC,KAAK,sBAAsBC,KAAK,WAAWC,KAAK,aAAaC,KAAK,UAAUC,KAAK,OAAOC,IAAI,uBAAuB,OAAO,SAASC,KAAK,QAAQC,KAAK,QAAQC,KAAK,gBAAgBC,KAAK,QAAQC,KAAK,cAAcC,IAAI,aAAaC,KAAK,aAAaC,IAAI,4CAA4CC,IAAI,qBAAqBC,KAAK,+BAA+BC,KAAK,UAAUC,KAAK,UAAUC,KAAK,WAAWC,KAAK,WAAWC,KAAK,UAAUC,KAAK,8BAA8BC,KAAK,SAASC,KAAK,0BAA0BC,KAAK,0BAA0BC,KAAK,uBAAuBC,IAAI,SAASC,KAAK,WAAWC,IAAI,cAAcC,IAAI,oBAAoBC,KAAK,cAAcC,IAAI,uBAAuBC,KAAK,oBAAoBC,KAAK,eAAeC,IAAI,kBAAkBC,KAAK,yDAAyDC,KAAK,gBAAgBC,IAAI,8BAA8BC,KAAK,UAAUC,KAAK,UAAU,OAAO,wBAAwBC,KAAK,eAAeC,GAAG,mBAAmBC,KAAK,SAASC,KAAK,SAASC,KAAK,QAAQC,KAAK,gBAAgBC,KAAK,wDAAwDC,KAAK,iBAAiBC,KAAK,YAAYC,KAAK,OAAOC,KAAK,sBAAsB30B,GAAG,kBAAkB40B,KAAK,8BAA8BC,KAAK,iBAAiBC,KAAK,OAAOC,KAAK,uBAAuBC,GAAG,UAAUC,IAAI,sBAAsBC,KAAK,UAAUC,GAAG,aAAaC,IAAI,mBAAmBC,KAAK,2BAA2BC,IAAI,gBAAgBC,IAAI,MAAMC,KAAK,sBAAsBC,KAAK,SAASC,KAAK,aAAaC,KAAK,gBAAgBC,IAAI,sBAAsBC,KAAK,OAAOC,IAAI,MAAMC,IAAI,8BAA8BC,KAAK,SAASC,KAAK,kBAAkBC,GAAG,kBAAkBC,IAAI,UAAUC,KAAK,eAAeC,IAAI,MAAMC,KAAK,SAASC,IAAI,kBAAkBC,KAAK,uBAAuBC,KAAK,sBAAsBC,KAAK,gBAAgBC,IAAI,eAAeC,KAAK,QAAQC,KAAK,aAAaC,KAAK,oBAAoBC,KAAK,kCAAkCC,IAAI,8BAA8BC,KAAK,SAASC,IAAI,2BAA2BC,KAAK,aAAaC,IAAI,MAAMC,KAAK,kBAAkBC,KAAK,SAASC,KAAK,wBAAwBC,KAAK,SAASC,KAAK,mCAAmCC,KAAK,sBAAsBC,IAAI,2BAA2BC,KAAK,SAASC,IAAI,0BAA0BC,IAAI,gBAAgBC,KAAK,iBAAiBC,KAAK,SAASC,KAAK,QAAQC,KAAK,UAAUC,KAAK,SAASC,KAAK,QAAQC,KAAK,eAAeC,KAAK,cAAcC,KAAK,qBAAqBC,KAAK,wBAAwBC,KAAK,gBAAgBC,KAAK,aAAaC,KAAK,UAAUC,KAAK,OAAOC,KAAK,aAAaC,KAAK,kBAAkBC,KAAK,iBAAiBC,KAAK,aAAaC,KAAK,oBAAoBC,KAAK,WAAWC,KAAK,aAAaC,KAAK,UAAUC,KAAK,iCAAiCC,KAAK,UAAUC,KAAK,UAAUC,KAAK,WAAWC,KAAK,aAAaC,KAAK,iBAAiBC,KAAK,mBAAmBC,KAAK,iBAAiBC,KAAK,YAAYC,KAAK,mBAAmBC,KAAK,sBAAsBC,KAAK,QAAQC,IAAI,MAAMC,KAAK,qBAAqBC,KAAK,wBAAwBC,KAAK,QAAQC,KAAK,OAAOC,IAAI,mBAAmBC,KAAK,WAAWC,IAAI,MAAMC,KAAK,UAAUC,KAAK,UAAUC,KAAK,WAAWC,KAAK,UAAUC,KAAK,gBAAgBC,KAAK,YAAYC,KAAK,eAAeC,KAAK,iCAAiCC,KAAK,UAAUC,IAAI,eAAeC,IAAI,MAAMC,KAAK,+BAA+BC,KAAK,OAAOC,KAAK,gBAAgBC,KAAK,+BAA+BC,KAAK,4BAA4BC,KAAK,4BAA4BC,KAAK,YAAYC,IAAI,MAAMC,KAAK,YAAYC,KAAK,YAAYC,KAAK,OAAOC,KAAK,SAASC,KAAK,6BAA6BC,IAAI,YAAYC,KAAK,cAAcC,KAAK,UAAUC,KAAK,2BAA2BC,KAAK,QAAQC,KAAK,gBAAgBC,KAAK,QAAQC,IAAI,yBAAyBC,IAAI,gCAAgCC,KAAK,QAAQC,KAAK,UAAUC,KAAK,wBAAwBC,KAAK,SAASC,KAAK,mBAAmBC,IAAI,SAASC,IAAI,UAAUC,KAAK,oBAAoBC,KAAK,WAAWC,KAAK,cAAcC,KAAK,qBAAqBC,KAAK,iCAAiCC,KAAK,OAAOC,KAAK,aAAaC,KAAK,OAAOC,IAAI,mBAAmBC,KAAK,SAASC,IAAI,SAASC,KAAK,OAAOC,KAAK,mBAAmBC,KAAK,QAAQC,KAAK,SAASC,KAAK,gBAAgBC,IAAI,qBAAqBC,KAAK,2BAA2BC,KAAK,QAAQC,KAAK,YAAYC,GAAG,oBAAoBC,KAAK,YAAYC,KAAK,UAAUC,KAAK,UAAUC,KAAK,kBAAkBC,KAAK,UAAUC,KAAK,UAAUC,IAAI,wBAAwBC,IAAI,2BAA2BC,GAAG,YAAYC,KAAK,gBAAgBC,KAAK,SAASC,KAAK,oBAAoBC,KAAK,YAAYC,KAAK,YAAYC,KAAK,uBAAuBC,KAAK,4BAA4BC,KAAK,OAAOC,KAAK,iBAAiBC,KAAK,aAAaC,KAAK,kBAAkBC,KAAK,QAAQC,KAAK,SAASC,KAAK,QAAQC,KAAK,qBAAqBC,KAAK,iBAAiBC,KAAK,aAAaC,KAAK,aAAaC,KAAK,6BAA6BC,KAAK,sBAAsBC,GAAG,mBAAmBC,KAAK,SAASC,KAAK,8BAA8BC,KAAK,WAAWC,KAAK,SAASC,KAAK,SAASC,KAAK,aAAaC,KAAK,aAAaC,KAAK,OAAOC,KAAK,eAAeC,KAAK,YAAYC,KAAK,aAAaC,KAAK,SAASC,KAAK,mBAAmBC,IAAI,SAASC,KAAK,eAAeC,KAAK,aAAaC,GAAG,CAACC,KAAK,UAAUC,KAAK,UAAUC,KAAK,UAAUC,KAAK,cAAcC,KAAK,WAAWC,KAAK,iCAAiCC,KAAK,cAAcC,KAAK,6BAA6BzlH,IAAI,kCAAkC0lH,KAAK,wBAAwBC,KAAK,iCAAiCC,KAAK,8CAA8Cx8G,GAAEnC,GAAE,MAAM,CAAC,CAAC,EAAEotG,IAAI,CAAC,GAAG4Q,IAAI,CAAC,GAAGp5H,OAAOwX,OAAO,GAAGgxG,GAAG4Q,KAAK,CAAC,GAAG5Q,IAAI,CAAC,GAAGA,IAAI,CAAC,GAAG,CAAC/tG,EAAE,aAAaC,EAAE,wBAAwBC,EAAE,aAAaC,EAAE,0BAA0B,CAAC,OAAO,CAACo/G,IAAI,wBAAwBC,IAAI,2BAA2BC,KAAK,WAAWC,IAAI,yBAAyBC,KAAK,iBAAiBC,KAAK,2BAA2BC,KAAK,gCAAgCC,KAAK,0BAA0BC,KAAK,8BAA8BC,KAAK,wBAAwBr9B,KAAK,cAAcs9B,KAAK,cAAcC,KAAK,eAAeC,KAAK,UAAUC,KAAK,kBAAkBC,KAAK,qBAAqBC,KAAK,+BAA+BC,KAAK,8BAA8BC,KAAK,qBAAqBC,KAAK,wBAAwBC,KAAK,6BAA6BC,KAAK,qBAAqBC,KAAK,aAAaC,KAAK,sBAAsBC,KAAK,eAAeC,KAAK,oB,IAA0BC,G,sKAAwhB,IAA5C,IAAKn4H,EAAGhC,KAAPowC,IAAYh6B,EAAEpW,KAAKi3C,MAAMy6D,WAAW,EAAEtzG,GAAE,EAAW2D,EAAE,EAAEA,EAAEqU,EAAErU,IAAI,GAAG,KAAK/B,KAAKi3C,MAAMo7D,SAAStwG,IAAI,IAAI/B,KAAKi3C,MAAMo7D,SAAStwG,EAAE,GAAG,CAAC3D,GAAE,EAAG,IAAIgY,EAAEpW,KAAKi3C,MAAMk7D,UAAUpwG,EAAE,GAAGD,EAAE9B,KAAKi3C,MAAMo7D,SAAStwG,EAAE,GAAGiD,EAAEhF,KAAKi3C,MAAMmjF,gBAAgBr4H,EAAE,EAAEqU,GAAGpU,EAAE4R,IAAI9R,EAAE9B,KAAKq6H,eAAer4H,EAAEsI,IAAIxI,GAAGkD,IAAIjD,GAAG,EAAEqU,OAAO,GAAGhY,EAAE,MAAM,OAAO4B,KAAK2uB,YAAY3uB,KAAKo2G,S,qCAAsBp0G,EAAEoU,GAAG,YAAO,IAASpU,EAAEA,aAAaL,OAAOK,EAAEqD,KAAK+Q,GAAGpU,GAAG,CAACA,EAAEoU,GAAGA,K,iCAAh2BpU,EAAEoU,EAAEhY,GAAG,OAAO,MAAM4D,EAAEqwG,SAASj8F,EAAE,IAAI,cAAcpU,EAAEu6G,UAAUnmG,EAAE,EAAE,SAAI,IAASpW,KAAKs6H,iBAAiBt4H,EAAEoU,EAAEhY,K,mCAAuB4D,EAAEoU,EAAEhY,GAAG,IAAI2D,EAAED,EAAE9B,KAAKs6H,iBAAiBt4H,EAAEoU,EAAEhY,GAAG,QAAG,IAAS0D,EAAE,OAAOC,EAAEC,EAAEqwG,SAASj8F,EAAEtU,EAAE,IAAK,GAAG,IAAIC,GAAG,GAAG,IAAIA,IAAIA,EAAE,GAAGD,EAAE,EAAEC,I,uCAA0BC,EAAEoU,EAAEhY,GAAG,IAAI,IAAI2D,EAAE,EAAEA,EAAE3D,EAAE2D,IAAI,GAAG/B,KAAKu6H,kBAAkBv4H,EAAEoU,EAAErU,GAAG,OAAOA,I,wCAA2BC,EAAEoU,GAAG,OAAO,KAAKpU,EAAEqwG,SAASj8F,IAAI,YAAYpU,EAAEwwG,UAAUp8F,IAAI,OAAOpU,EAAEmwG,UAAU/7F,EAAE,O,GAAndy4F,IAAu3B50F,EAAEkgH,GAAG,OAAO,QAAQlgH,EAAEkgH,GAAG,mBAAkB,GAAIlgH,EAAEkgH,GAAG,gBAAe,GAAIj+G,EAAEtI,IAAI,OAAOumH,IAAIl+G,GAAEjC,GAAE,OAAO,CAAC,CAAC,EAAE,4BAA4B,CAAC,EAAE,uBAAuB,CAAC,EAAE,4BAA4B,CAAC,EAAE,cAAc,CAAC,EAAE,cAAc,CAAC,EAAE,mBAAmB,CAAC,GAAG,WAAW,CAAC,GAAG,oBAAoB,CAAC,GAAG,YAAY,CAAC,GAAG,0BAA0B,CAAC,GAAG,qBAAqB,CAAC,GAAG,YAAY,CAAC,GAAG,uBAAuB,CAAC,GAAG,uBAAuB,CAAC,GAAG,eAAe,CAAC,GAAG,eAAe,CAAC,GAAG,kBAAkB,CAAC,GAAG,kBAAkB,CAAC,GAAG,uBAAuB,CAAC,GAAG,iBAAiB,CAAC,GAAG,oBAAoB,CAAC,GAAG,iBAAiB,CAAC,GAAG,mBAAmB,CAAC,GAAG,eAAe,CAAC,GAAG,eAAe,CAAC,GAAG,uBAAuB,CAAC,GAAG,uBAAuB,CAAC,GAAG,sBAAsB,CAAC,GAAG,kBAAkB,CAAC,GAAG,eAAe,CAAC,GAAG,UAAU,CAAC,GAAG,eAAe,CAAC,GAAG,QAAQ,CAAC,GAAG,eAAe,CAAC,GAAG,SAAS,CAAC,IAAI,eAAe,CAAC,IAAI,WAAW,CAAC,IAAI,iCAAiC,CAAC,IAAI,YAAY,CAAC,IAAI,UAAU,CAAC,IAAI,UAAU,CAAC,IAAI,mBAAmB,CAAC,IAAI,WAAW,CAAC,IAAI,WAAW,CAAC,IAAI,gBAAgB,CAAC,IAAI,UAAU,CAAC,IAAI,qBAAqB,CAAC,IAAI,aAAa,CAAC,IAAI,oBAAoB,CAAC,IAAI,sBAAsB,CAAC,IAAI,aAAa,CAAC,IAAI,qBAAqB,CAAC,IAAI,2BAA2B,CAAC,IAAI,iBAAiB,CAAC,IAAI,eAAe,CAAC,IAAI,SAAS,CAAC,IAAI,oBAAoB,CAAC,IAAI,mBAAmB,CAAC,IAAI,oBAAoB,CAAC,IAAI,WAAW,CAAC,IAAI,2BAA2B,CAAC,IAAI,4BAA4B,CAAC,IAAI,qBAAqB,CAAC,IAAI,SAAS,CAAC,IAAI,iBAAiB,CAAC,IAAI,mBAAmB,CAAC,IAAI,iBAAiB,CAAC,IAAI,mBAAmB,CAAC,IAAI,kBAAkB,CAAC,IAAI,iBAAiBiC,GAAEnC,GAAE,OAAO,CAAC,CAAC,GAAG,CAACX,EAAE,eAAeC,EAAE,kBAAkBC,EAAE,IAAIC,EAAE,IAAIC,EAAE,IAAIC,EAAE,qBAAqBC,EAAE,IAAIC,EAAE,IAAIC,EAAE,mBAAmBC,EAAE,8BAA8B,CAAC,GAAG,CAAChL,EAAE,UAAUC,EAAE,2BAA2BmC,EAAE,YAAY,CAAC,IAAI,CAAC0L,EAAE,YAAYJ,EAAE,WAAWH,EAAE,aAA4BqoG,Q,6BCQzoyE,IAAI/0B,EAAwB/wF,OAAO+wF,sBAC/BpsF,EAAiB3E,OAAOO,UAAUoE,eAClCm3H,EAAmB97H,OAAOO,UAAU2mG,qBAExC,SAAS60B,EAASlyG,GACjB,GAAY,OAARA,QAAwBjnB,IAARinB,EACnB,MAAM,IAAInpB,UAAU,yDAGrB,OAAOV,OAAO6pB,GA+CfzqB,EAAOC,QA5CP,WACC,IACC,IAAKW,OAAOwX,OACX,OAAO,EAMR,IAAIwkH,EAAQ,IAAIx0H,OAAO,OAEvB,GADAw0H,EAAM,GAAK,KACkC,MAAzCh8H,OAAOspC,oBAAoB0yF,GAAO,GACrC,OAAO,EAKR,IADA,IAAIC,EAAQ,GACHv8H,EAAI,EAAGA,EAAI,GAAIA,IACvBu8H,EAAM,IAAMz0H,OAAOC,aAAa/H,IAAMA,EAKvC,GAAwB,eAHXM,OAAOspC,oBAAoB2yF,GAAO/tH,KAAI,SAAU7K,GAC5D,OAAO44H,EAAM54H,MAEH2D,KAAK,IACf,OAAO,EAIR,IAAIk1H,EAAQ,GAIZ,MAHA,uBAAuB5sH,MAAM,IAAIyF,SAAQ,SAAUonH,GAClDD,EAAMC,GAAUA,KAGf,yBADEn8H,OAAOuN,KAAKvN,OAAOwX,OAAO,GAAI0kH,IAAQl1H,KAAK,IAM9C,MAAOrE,GAER,OAAO,GAIQy5H,GAAoBp8H,OAAOwX,OAAS,SAAUhY,EAAQyO,GAKtE,IAJA,IAAIxC,EAEAulF,EADA1oE,EAAKyzG,EAASv8H,GAGT4D,EAAI,EAAGA,EAAI3B,UAAU9B,OAAQyD,IAAK,CAG1C,IAAK,IAAIlD,KAFTuL,EAAOzL,OAAOyB,UAAU2B,IAGnBuB,EAAesB,KAAKwF,EAAMvL,KAC7BooB,EAAGpoB,GAAOuL,EAAKvL,IAIjB,GAAI6wF,EAAuB,CAC1BC,EAAUD,EAAsBtlF,GAChC,IAAK,IAAI/L,EAAI,EAAGA,EAAIsxF,EAAQrxF,OAAQD,IAC/Bo8H,EAAiB71H,KAAKwF,EAAMulF,EAAQtxF,MACvC4oB,EAAG0oE,EAAQtxF,IAAM+L,EAAKulF,EAAQtxF,MAMlC,OAAO4oB,I,cC9ERlpB,EAAOC,QAVP,SAA2BwL,EAAKyC,IACnB,MAAPA,GAAeA,EAAMzC,EAAIlL,UAAQ2N,EAAMzC,EAAIlL,QAE/C,IAAK,IAAID,EAAI,EAAGu5F,EAAO,IAAIh2F,MAAMqK,GAAM5N,EAAI4N,EAAK5N,IAC9Cu5F,EAAKv5F,GAAKmL,EAAInL,GAGhB,OAAOu5F,I,iBCPP,SAAUzuE,EAAMjgB,GAaV,IAAUtG,EAVhB7E,EAAOC,SAUS4E,EAVmB3E,EAAQ,IAY3C,SAAU4E,GAEP,IAAIE,EAAIH,EACJI,EAAQD,EAAEE,IACVY,EAAYb,EAAMa,UAClBwE,EAASrF,EAAMqF,OACfD,EAASrF,EAAEkG,KAGX6T,EAAI,GACJF,EAAI,IAGP,WACG,SAASo+G,EAAQh5H,GAEb,IADA,IAAIi5H,EAAQp4H,EAAK2O,KAAKxP,GACb0jC,EAAS,EAAGA,GAAUu1F,EAAOv1F,IAClC,KAAM1jC,EAAI0jC,GACN,OAAO,EAIf,OAAO,EAGX,SAASw1F,EAAkBl5H,GACvB,OAAwB,YAAfA,GAAS,EAAJA,IAAyB,EAK3C,IAFA,IAAIA,EAAI,EACJm5H,EAAS,EACNA,EAAS,IACRH,EAAQh5H,KACJm5H,EAAS,IACTr+G,EAAEq+G,GAAUD,EAAkBr4H,EAAKsN,IAAInO,EAAG,MAE9C4a,EAAEu+G,GAAUD,EAAkBr4H,EAAKsN,IAAInO,EAAG,EAAI,IAE9Cm5H,KAGJn5H,IA5BP,GAiCD,IAAIga,EAAI,GAKJo/G,EAAShzH,EAAOgzH,OAAS/yH,EAAOlF,OAAO,CACvCoF,SAAU,WACNtI,KAAKu1F,MAAQ,IAAI3xF,EAAUN,KAAKuZ,EAAEjY,MAAM,KAG5CoD,gBAAiB,SAAUyU,EAAG1U,GAe1B,IAbA,IAAI8U,EAAI7c,KAAKu1F,MAAM1xF,MAGf+K,EAAIiO,EAAE,GACNhO,EAAIgO,EAAE,GACN5C,EAAI4C,EAAE,GACNpE,EAAIoE,EAAE,GACN7a,EAAI6a,EAAE,GACN3a,EAAI2a,EAAE,GACNtC,EAAIsC,EAAE,GACNhE,EAAIgE,EAAE,GAGDze,EAAI,EAAGA,EAAI,GAAIA,IAAK,CACzB,GAAIA,EAAI,GACJ2d,EAAE3d,GAAqB,EAAhBqe,EAAE1U,EAAS3J,OACf,CACH,IAAIg9H,EAAUr/G,EAAE3d,EAAI,IAChBi9H,GAAYD,GAAW,GAAOA,IAAY,IAC9BA,GAAW,GAAOA,IAAY,IAC9BA,IAAY,EAExBE,EAAUv/G,EAAE3d,EAAI,GAChBm9H,GAAYD,GAAW,GAAOA,IAAY,KAC9BA,GAAW,GAAOA,IAAY,IAC9BA,IAAY,GAE5Bv/G,EAAE3d,GAAKi9H,EAASt/G,EAAE3d,EAAI,GAAKm9H,EAASx/G,EAAE3d,EAAI,IAG9C,IACIo9H,EAAO5sH,EAAIC,EAAMD,EAAIqL,EAAMpL,EAAIoL,EAE/BwhH,GAAW7sH,GAAK,GAAOA,IAAM,IAAQA,GAAK,GAAOA,IAAM,KAASA,GAAK,GAAOA,IAAM,IAGlF8sH,EAAK7iH,IAFM7W,GAAK,GAAOA,IAAM,IAAQA,GAAK,GAAOA,IAAM,KAASA,GAAK,EAAOA,IAAM,MAJ3EA,EAAIE,GAAOF,EAAIuY,GAMCoC,EAAEve,GAAK2d,EAAE3d,GAGpCya,EAAI0B,EACJA,EAAIrY,EACJA,EAAIF,EACJA,EAAKyW,EAAIijH,EAAM,EACfjjH,EAAIwB,EACJA,EAAIpL,EACJA,EAAID,EACJA,EAAK8sH,GATID,EAASD,GASF,EAIpB3+G,EAAE,GAAMA,EAAE,GAAKjO,EAAK,EACpBiO,EAAE,GAAMA,EAAE,GAAKhO,EAAK,EACpBgO,EAAE,GAAMA,EAAE,GAAK5C,EAAK,EACpB4C,EAAE,GAAMA,EAAE,GAAKpE,EAAK,EACpBoE,EAAE,GAAMA,EAAE,GAAK7a,EAAK,EACpB6a,EAAE,GAAMA,EAAE,GAAK3a,EAAK,EACpB2a,EAAE,GAAMA,EAAE,GAAKtC,EAAK,EACpBsC,EAAE,GAAMA,EAAE,GAAKhE,EAAK,GAGxBnQ,YAAa,WAET,IAAIvB,EAAOnH,KAAKgH,MACZM,EAAYH,EAAKtD,MAEjBizF,EAAgC,EAAnB92F,KAAKiH,YAClB8vF,EAA4B,EAAhB5vF,EAAKrD,SAYrB,OATAwD,EAAUyvF,IAAc,IAAM,KAAS,GAAKA,EAAY,GACxDzvF,EAA4C,IAA/ByvF,EAAY,KAAQ,GAAM,IAAWn0F,EAAKuN,MAAM2mF,EAAa,YAC1ExvF,EAA4C,IAA/ByvF,EAAY,KAAQ,GAAM,IAAWD,EAClD3vF,EAAKrD,SAA8B,EAAnBwD,EAAUjJ,OAG1B2B,KAAKoH,WAGEpH,KAAKu1F,OAGhB5xF,MAAO,WACH,IAAIA,EAAQyE,EAAOzE,MAAMgB,KAAK3E,MAG9B,OAFA2D,EAAM4xF,MAAQv1F,KAAKu1F,MAAM5xF,QAElBA,KAkBfb,EAAEq4H,OAAS/yH,EAAOO,cAAcwyH,GAgBhCr4H,EAAE64H,WAAavzH,EAAOU,kBAAkBqyH,GAjL3C,CAkLCv4H,MAGKD,EAASw4H,QApMf,I,iBCAA,SAAUjyG,EAAMjgB,EAASw4E,GAanB,IAAU9+E,EAVhB7E,EAAOC,SAUS4E,EAVmB3E,EAAQ,IAAWA,EAAQ,IAY9D,WAEG,IAAI8E,EAAIH,EAEJyF,EADQtF,EAAEE,IACKoF,OACfyvF,EAAQ/0F,EAAEg1F,IACV8jC,EAAU/jC,EAAME,KAChB8jC,EAAehkC,EAAMj0F,UACrBuE,EAASrF,EAAEkG,KAEf,SAAS8yH,IACL,OAAOF,EAAQp8H,OAAOY,MAAMw7H,EAASz7H,WAIzC,IAAIwc,EAAI,CACJm/G,EAAe,WAAY,YAAaA,EAAe,WAAY,WACnEA,EAAe,WAAY,YAAaA,EAAe,WAAY,YACnEA,EAAe,UAAY,YAAaA,EAAe,WAAY,YACnEA,EAAe,WAAY,YAAaA,EAAe,WAAY,YACnEA,EAAe,WAAY,YAAaA,EAAe,UAAY,YACnEA,EAAe,UAAY,YAAaA,EAAe,WAAY,YACnEA,EAAe,WAAY,YAAaA,EAAe,WAAY,WACnEA,EAAe,WAAY,WAAaA,EAAe,WAAY,YACnEA,EAAe,WAAY,YAAaA,EAAe,WAAY,WACnEA,EAAe,UAAY,YAAaA,EAAe,UAAY,YACnEA,EAAe,UAAY,YAAaA,EAAe,WAAY,YACnEA,EAAe,WAAY,YAAaA,EAAe,WAAY,YACnEA,EAAe,WAAY,YAAaA,EAAe,WAAY,WACnEA,EAAe,WAAY,YAAaA,EAAe,WAAY,YACnEA,EAAe,WAAY,YAAaA,EAAe,WAAY,YACnEA,EAAe,UAAY,YAAaA,EAAe,UAAY,WACnEA,EAAe,UAAY,YAAaA,EAAe,UAAY,YACnEA,EAAe,WAAY,YAAaA,EAAe,WAAY,YACnEA,EAAe,WAAY,YAAaA,EAAe,WAAY,YACnEA,EAAe,WAAY,YAAaA,EAAe,WAAY,WACnEA,EAAe,WAAY,YAAaA,EAAe,WAAY,YACnEA,EAAe,WAAY,YAAaA,EAAe,WAAY,WACnEA,EAAe,WAAY,YAAaA,EAAe,WAAY,YACnEA,EAAe,WAAY,YAAaA,EAAe,UAAY,WACnEA,EAAe,UAAY,YAAaA,EAAe,UAAY,YACnEA,EAAe,UAAY,YAAaA,EAAe,UAAY,YACnEA,EAAe,UAAY,YAAaA,EAAe,WAAY,YACnEA,EAAe,WAAY,YAAaA,EAAe,WAAY,YACnEA,EAAe,WAAY,YAAaA,EAAe,WAAY,YACnEA,EAAe,WAAY,YAAaA,EAAe,WAAY,WACnEA,EAAe,WAAY,WAAaA,EAAe,WAAY,YACnEA,EAAe,WAAY,YAAaA,EAAe,WAAY,YACnEA,EAAe,WAAY,YAAaA,EAAe,WAAY,WACnEA,EAAe,WAAY,YAAaA,EAAe,WAAY,YACnEA,EAAe,UAAY,YAAaA,EAAe,UAAY,YACnEA,EAAe,UAAY,YAAaA,EAAe,UAAY,WACnEA,EAAe,UAAY,WAAaA,EAAe,UAAY,YACnEA,EAAe,WAAY,WAAaA,EAAe,WAAY,YACnEA,EAAe,WAAY,YAAaA,EAAe,WAAY,YACnEA,EAAe,WAAY,WAAaA,EAAe,WAAY,aAInE//G,EAAI,IACP,WACG,IAAK,IAAI3d,EAAI,EAAGA,EAAI,GAAIA,IACpB2d,EAAE3d,GAAK09H,IAFd,GASD,IAAIC,EAAS5zH,EAAO4zH,OAAS3zH,EAAOlF,OAAO,CACvCoF,SAAU,WACNtI,KAAKu1F,MAAQ,IAAIsmC,EAAav4H,KAAK,CAC/B,IAAIs4H,EAAQt4H,KAAK,WAAY,YAAa,IAAIs4H,EAAQt4H,KAAK,WAAY,YACvE,IAAIs4H,EAAQt4H,KAAK,WAAY,YAAa,IAAIs4H,EAAQt4H,KAAK,WAAY,YACvE,IAAIs4H,EAAQt4H,KAAK,WAAY,YAAa,IAAIs4H,EAAQt4H,KAAK,WAAY,WACvE,IAAIs4H,EAAQt4H,KAAK,UAAY,YAAa,IAAIs4H,EAAQt4H,KAAK,WAAY,cAI/E0E,gBAAiB,SAAUyU,EAAG1U,GAiD1B,IA/CA,IAAI8U,EAAI7c,KAAKu1F,MAAM1xF,MAEfm4H,EAAKn/G,EAAE,GACPo/G,EAAKp/G,EAAE,GACPq/G,EAAKr/G,EAAE,GACPs/G,EAAKt/G,EAAE,GACPu/G,EAAKv/G,EAAE,GACPw/G,EAAKx/G,EAAE,GACPy/G,EAAKz/G,EAAE,GACP0/G,EAAK1/G,EAAE,GAEP2/G,EAAMR,EAAGhkC,KACTykC,EAAMT,EAAG/jC,IACTykC,EAAMT,EAAGjkC,KACT2kC,EAAMV,EAAGhkC,IACT2kC,EAAMV,EAAGlkC,KACT6kC,EAAMX,EAAGjkC,IACT6kC,EAAMX,EAAGnkC,KACT+kC,EAAMZ,EAAGlkC,IACT+kC,EAAMZ,EAAGpkC,KACTilC,EAAMb,EAAGnkC,IACTilC,EAAMb,EAAGrkC,KACTmlC,EAAMd,EAAGpkC,IACTmlC,EAAMd,EAAGtkC,KACTqlC,EAAMf,EAAGrkC,IACTqlC,EAAMf,EAAGvkC,KACTulC,EAAMhB,EAAGtkC,IAGTulC,EAAKhB,EACLiB,EAAKhB,EACLiB,EAAKhB,EACLiB,EAAKhB,EACLiB,EAAKhB,EACLiB,EAAKhB,EACLiB,EAAKhB,EACLiB,EAAKhB,EACLiB,EAAKhB,EACLv+F,EAAKw+F,EACLpY,EAAKqY,EACLe,EAAKd,EACLe,EAAKd,EACLe,EAAKd,EACLe,EAAKd,EACLe,EAAKd,EAGAn/H,EAAI,EAAGA,EAAI,GAAIA,IAAK,CAEzB,IAAIkgI,EAAKviH,EAAE3d,GAGX,GAAIA,EAAI,GACJ,IAAImgI,EAAMD,EAAGtmC,KAA+B,EAAxBv7E,EAAE1U,EAAa,EAAJ3J,GAC3BogI,EAAMF,EAAGrmC,IAA+B,EAAxBx7E,EAAE1U,EAAa,EAAJ3J,EAAQ,OACpC,CAEH,IAAIg9H,EAAWr/G,EAAE3d,EAAI,IACjBqgI,EAAWrD,EAAQpjC,KACnB0mC,EAAWtD,EAAQnjC,IACnB0mC,GAAaF,IAAa,EAAMC,GAAY,KAASD,IAAa,EAAMC,GAAY,IAAQD,IAAa,EACzGG,GAAaF,IAAa,EAAMD,GAAY,KAASC,IAAa,EAAMD,GAAY,KAASC,IAAa,EAAMD,GAAY,IAG5HnD,GAAWv/G,EAAE3d,EAAI,GACjBygI,GAAWvD,GAAQtjC,KACnB8mC,GAAWxD,GAAQrjC,IACnB8mC,IAAaF,KAAa,GAAOC,IAAY,KAASD,IAAY,EAAMC,KAAa,IAAQD,KAAa,EAC1GG,IAAaF,KAAa,GAAOD,IAAY,KAASC,IAAY,EAAMD,KAAa,KAASC,KAAa,EAAMD,IAAY,IAG7HI,GAAOljH,EAAE3d,EAAI,GACb8gI,GAAOD,GAAIjnC,KACXmnC,GAAOF,GAAIhnC,IAEXmnC,GAAQrjH,EAAE3d,EAAI,IACdihI,GAAQD,GAAKpnC,KACbsnC,GAAQF,GAAKnnC,IAObsmC,GAFAA,GAFAA,EAAMI,EAAUO,KADhBV,EAAMI,EAAUO,MACiB,EAAMP,IAAY,EAAK,EAAI,IAEhDG,KADZP,GAAYQ,MACoB,EAAMA,KAAY,EAAK,EAAI,IAE/CK,KADZb,GAAYc,MACkB,EAAMA,KAAU,EAAK,EAAI,GAE3DhB,EAAGtmC,KAAOumC,EACVD,EAAGrmC,IAAOumC,EAGd,IAqBIe,GArBAC,GAAQxB,EAAKnZ,GAAQmZ,EAAKE,EAC1BuB,GAAQhhG,EAAKw/F,GAAQx/F,EAAK0/F,EAC1BuB,GAAQlC,EAAKE,EAAOF,EAAKI,EAAOF,EAAKE,EACrC+B,GAAQlC,EAAKE,EAAOF,EAAKI,EAAOF,EAAKE,EAErC+B,IAAYpC,IAAO,GAAOC,GAAM,IAASD,GAAM,GAAQC,IAAO,IAAQD,GAAM,GAAOC,IAAO,GAC1FoC,IAAYpC,IAAO,GAAOD,GAAM,IAASC,GAAM,GAAQD,IAAO,IAAQC,GAAM,GAAOD,IAAO,GAC1FsC,IAAY9B,IAAO,GAAOv/F,GAAM,KAASu/F,IAAO,GAAOv/F,GAAM,KAASu/F,GAAM,GAAOv/F,IAAO,GAC1FshG,IAAYthG,IAAO,GAAOu/F,GAAM,KAASv/F,IAAO,GAAOu/F,GAAM,KAASv/F,GAAM,GAAOu/F,IAAO,GAG1FgC,GAAMrjH,EAAEve,GACR6hI,GAAMD,GAAGhoC,KACTkoC,GAAMF,GAAG/nC,IAGTkoC,GAAM/B,EAAK0B,KADXP,GAAMlB,EAAK0B,MACoB,EAAM1B,IAAO,EAAK,EAAI,GASrD+B,GAAMP,GAAUF,GAIpBvB,EAAKF,EACLG,EAAKF,EACLD,EAAKrZ,EACLsZ,EAAKF,EACLpZ,EAAKmZ,EACLC,EAAKx/F,EAELu/F,EAAMF,GAdFqC,IAFAA,IAFAA,GAAMA,GAAMX,KADZD,IAAYE,MACgB,EAAMA,KAAQ,EAAK,EAAI,IAEvCQ,KADZV,IAAYW,MACgB,EAAMA,KAAQ,EAAK,EAAI,IAEvC3B,IADZgB,IAAYf,KACgB,EAAMA,IAAQ,EAAK,EAAI,MAavD//F,EAAMs/F,EAAKwB,GAAO,KACQ,EAAMxB,IAAO,EAAK,EAAI,GAAM,EACtDD,EAAKF,EACLG,EAAKF,EACLD,EAAKF,EACLG,EAAKF,EACLD,EAAKF,EACLG,EAAKF,EAELD,EAAM2C,IAlBIP,GAAUF,IAASU,KAAQ,EAAMP,KAAY,EAAK,EAAI,MAiBhEpC,EAAM8B,GAAMa,GAAO,KACQ,EAAMb,KAAQ,EAAK,EAAI,GAAM,EAI5D9C,EAAMT,EAAG/jC,IAAQwkC,EAAMgB,EACvBzB,EAAGhkC,KAAQwkC,EAAMgB,GAAOf,IAAQ,EAAMgB,IAAO,EAAK,EAAI,GACtDd,EAAMV,EAAGhkC,IAAQ0kC,EAAMgB,EACvB1B,EAAGjkC,KAAQ0kC,EAAMgB,GAAOf,IAAQ,EAAMgB,IAAO,EAAK,EAAI,GACtDd,EAAMX,EAAGjkC,IAAQ4kC,EAAMgB,EACvB3B,EAAGlkC,KAAQ4kC,EAAMgB,GAAOf,IAAQ,EAAMgB,IAAO,EAAK,EAAI,GACtDd,EAAMZ,EAAGlkC,IAAQ8kC,EAAMgB,EACvB5B,EAAGnkC,KAAQ8kC,EAAMgB,GAAOf,IAAQ,EAAMgB,IAAO,EAAK,EAAI,GACtDd,EAAMb,EAAGnkC,IAAQglC,EAAMx+F,EACvB29F,EAAGpkC,KAAQglC,EAAMgB,GAAOf,IAAQ,EAAMx+F,IAAO,EAAK,EAAI,GACtD0+F,EAAMd,EAAGpkC,IAAQklC,EAAMc,EACvB5B,EAAGrkC,KAAQklC,EAAMrY,GAAOsY,IAAQ,EAAMc,IAAO,EAAK,EAAI,GACtDZ,EAAMf,EAAGrkC,IAAQolC,EAAMc,EACvB7B,EAAGtkC,KAAQolC,EAAMc,GAAOb,IAAQ,EAAMc,IAAO,EAAK,EAAI,GACtDZ,EAAMhB,EAAGtkC,IAAQslC,EAAMc,EACvB9B,EAAGvkC,KAAQslC,EAAMc,GAAOb,IAAQ,EAAMc,IAAO,EAAK,EAAI,IAG1D31H,YAAa,WAET,IAAIvB,EAAOnH,KAAKgH,MACZM,EAAYH,EAAKtD,MAEjBizF,EAAgC,EAAnB92F,KAAKiH,YAClB8vF,EAA4B,EAAhB5vF,EAAKrD,SAerB,OAZAwD,EAAUyvF,IAAc,IAAM,KAAS,GAAKA,EAAY,GACxDzvF,EAA8C,IAAjCyvF,EAAY,MAAS,IAAO,IAAWn0F,KAAKuN,MAAM2mF,EAAa,YAC5ExvF,EAA8C,IAAjCyvF,EAAY,MAAS,IAAO,IAAWD,EACpD3vF,EAAKrD,SAA8B,EAAnBwD,EAAUjJ,OAG1B2B,KAAKoH,WAGMpH,KAAKu1F,MAAM2C,SAM1Bv0F,MAAO,WACH,IAAIA,EAAQyE,EAAOzE,MAAMgB,KAAK3E,MAG9B,OAFA2D,EAAM4xF,MAAQv1F,KAAKu1F,MAAM5xF,QAElBA,GAGX6D,UAAW,KAiBf1E,EAAEi5H,OAAS3zH,EAAOO,cAAcozH,GAgBhCj5H,EAAEu9H,WAAaj4H,EAAOU,kBAAkBizH,GA7S3C,GAiTMp5H,EAASo5H,QAhUf,I,6BCAF,SAAS/2H,EAAEhD,GAAG,IAAIoU,EAAElU,EAAEH,EAAE,GAAG,GAAG,iBAAiBC,GAAG,iBAAiBA,EAAED,GAAGC,OAAO,GAAG,iBAAiBA,EAAE,GAAGL,MAAMC,QAAQI,GAAG,IAAIoU,EAAE,EAAEA,EAAEpU,EAAE3D,OAAO+X,IAAIpU,EAAEoU,KAAKlU,EAAE8C,EAAEhD,EAAEoU,OAAOrU,IAAIA,GAAG,KAAKA,GAAGG,QAAQ,IAAIkU,KAAKpU,EAAEA,EAAEoU,KAAKrU,IAAIA,GAAG,KAAKA,GAAGqU,GAAG,OAAOrU,EAAS,SAASu+H,IAAO,IAAI,IAAIt+H,EAAEoU,EAAElU,EAAE,EAAEH,EAAE,GAAGG,EAAE/B,UAAU9B,SAAS2D,EAAE7B,UAAU+B,QAAQkU,EAAEpR,EAAEhD,MAAMD,IAAIA,GAAG,KAAKA,GAAGqU,GAAG,OAAOrU,EAAhW,4CAAiXu+H,a,6BCEjX5hI,OAAOC,eAAeZ,EAAS,aAAc,CAC3C2B,OAAO,IAET3B,EAAQwiI,SAiFR,SAAkBp+B,GAKhB,MAAgC,SAAzBA,EAAUhkG,MAAMgX,MAA4C,MAAzBgtF,EAAUhkG,MAAMgX,MArF5DpX,EAAQyiI,SAwFR,SAAkBr+B,GAKhB,MAAgC,SAAzBA,EAAUhkG,MAAMgX,MAA4C,MAAzBgtF,EAAUhkG,MAAMgX,MA5F5DpX,EAAQ0iI,eAmHR,SAAwBt+B,EAEtBv0F,EAEAC,GAKA,IAAIi7E,EAAQqZ,EAAUrZ,MAClB43C,IAAW,EAAIz1B,EAAOnS,OAAOhQ,EAAM63C,OACnC13G,EAAO23G,EAAYz+B,GAEvB,OAAIu+B,EAEK,CACLz3G,KAAMA,EACNmmC,OAAQ,EACRC,OAAQ,EACRsxE,MAAO/yH,EACPo5D,MAAOn5D,EACPD,EAAGA,EACHC,EAAGA,GAIE,CACLob,KAAMA,EACNmmC,OAAQxhD,EAAIk7E,EAAM63C,MAClBtxE,OAAQxhD,EAAIi7E,EAAM9hB,MAClB25D,MAAO73C,EAAM63C,MACb35D,MAAO8hB,EAAM9hB,MACbp5D,EAAGA,EACHC,EAAGA,IAnJT9P,EAAQ8iI,oBAyJR,SAA6B1+B,EAE3B2+B,GAKA,IAAIx1G,EAAQ62E,EAAUhkG,MAAMmtB,MAC5B,MAAO,CACLrC,KAAM63G,EAAS73G,KACfrb,EAAGu0F,EAAUrZ,MAAMl7E,EAAIkzH,EAAS1xE,OAAS9jC,EACzCzd,EAAGs0F,EAAUrZ,MAAMj7E,EAAIizH,EAASzxE,OAAS/jC,EACzC8jC,OAAQ0xE,EAAS1xE,OAAS9jC,EAC1B+jC,OAAQyxE,EAASzxE,OAAS/jC,EAC1Bq1G,MAAOx+B,EAAUrZ,MAAMl7E,EACvBo5D,MAAOm7B,EAAUrZ,MAAMj7E,IAvK3B9P,EAAQgjI,iBAQR,SAA0B5+B,EAExBv0F,EAEAC,GAMA,IAAKs0F,EAAUhkG,MAAMijC,OAAQ,MAAO,CAACxzB,EAAGC,GAExC,IAAIuzB,EAAS+gE,EAAUhkG,MAAMijC,OAC7BA,EAA2B,kBAAXA,EAAsBA,EAuJxC,SAAqBA,GAKnB,MAAO,CACLxR,KAAMwR,EAAOxR,KACbE,IAAKsR,EAAOtR,IACZD,MAAOuR,EAAOvR,MACdE,OAAQqR,EAAOrR,QAhK8BixG,CAAY5/F,GAC3D,IAAInY,EAAO23G,EAAYz+B,GAEvB,GAAsB,kBAAX/gE,EAAqB,CAC9B,IAEI6/F,EAFAtkC,EAAgB1zE,EAAK0zE,cACrBukC,EAAcvkC,EAAcC,YAShC,MALEqkC,EADa,WAAX7/F,EACUnY,EAAKgS,WAEL0hE,EAAchO,cAAcvtD,cAGf8/F,EAAYr9B,aACrC,MAAM,IAAIn9F,MAAM,oBAAsB06B,EAAS,gCAGjD,IAAI+/F,EAEFF,EAEEG,EAAYF,EAAY3lG,iBAAiBtS,GACzCo4G,EAAiBH,EAAY3lG,iBAAiB4lG,GAElD//F,EAAS,CACPxR,MAAO3G,EAAKs+B,YAAa,EAAI0jD,EAAOrS,KAAKyoC,EAAez+E,cAAe,EAAIqoD,EAAOrS,KAAKwoC,EAAUE,YACjGxxG,KAAM7G,EAAKs6E,WAAY,EAAI0H,EAAOrS,KAAKyoC,EAAe3+E,aAAc,EAAIuoD,EAAOrS,KAAKwoC,EAAUG,WAC9F1xG,OAAO,EAAI2xG,EAAQ5mC,YAAYumC,IAAe,EAAIK,EAAQhwE,YAAYvoC,GAAQA,EAAKs+B,YAAa,EAAI0jD,EAAOrS,KAAKyoC,EAAex+E,eAAgB,EAAIooD,EAAOrS,KAAKwoC,EAAUK,aACzK1xG,QAAQ,EAAIyxG,EAAQ3mC,aAAasmC,IAAe,EAAIK,EAAQ9vE,aAAazoC,GAAQA,EAAKs6E,WAAY,EAAI0H,EAAOrS,KAAKyoC,EAAe1+E,gBAAiB,EAAIsoD,EAAOrS,KAAKwoC,EAAUM,gBAK5K,EAAIz2B,EAAOnS,OAAO13D,EAAOvR,SAAQjiB,EAAIhL,KAAKkF,IAAI8F,EAAGwzB,EAAOvR,SACxD,EAAIo7E,EAAOnS,OAAO13D,EAAOrR,UAASliB,EAAIjL,KAAKkF,IAAI+F,EAAGuzB,EAAOrR,UAEzD,EAAIk7E,EAAOnS,OAAO13D,EAAOxR,QAAOhiB,EAAIhL,KAAK+E,IAAIiG,EAAGwzB,EAAOxR,QACvD,EAAIq7E,EAAOnS,OAAO13D,EAAOtR,OAAMjiB,EAAIjL,KAAK+E,IAAIkG,EAAGuzB,EAAOtR,MAC1D,MAAO,CAACliB,EAAGC,IA3Db9P,EAAQ4jI,mBA6FR,SAA4B3/H,EAE1B4/H,EAEAC,GAKA,IAAIC,EAAsC,kBAApBF,GAA+B,EAAIJ,EAAQ12B,UAAU9oG,EAAG4/H,GAAmB,KACjG,GAA+B,kBAApBA,IAAiCE,EAAU,OAAO,KAE7D,IAAI74G,EAAO23G,EAAYiB,GAEnBp2B,EAAeo2B,EAAc1jI,MAAMstG,cAAgBxiF,EAAKwiF,cAAgBxiF,EAAK0zE,cAAcxtB,KAC/F,OAAO,EAAIqyD,EAAQh2B,oBAAoBs2B,GAAY9/H,EAAGypG,EAAco2B,EAAc1jI,MAAMmtB,QA3G1FvtB,EAAQgkI,WA6DR,SAAoBtqF,EAElBuqF,EAEAC,GAKA,IAAIr0H,EAAIhL,KAAKmN,MAAMiyH,EAAWvqF,EAAK,IAAMA,EAAK,GAC1C5pC,EAAIjL,KAAKmN,MAAMkyH,EAAWxqF,EAAK,IAAMA,EAAK,GAC9C,MAAO,CAAC7pC,EAAGC,IAtEb,IAAIo9F,EAASjtG,EAAQ,IAEjBwjI,EAAUxjI,EAAQ,IAmLtB,SAAS4iI,EAAYz+B,GAKnB,IAAIl5E,EAAOk5E,EAAUy+B,cAErB,IAAK33G,EACH,MAAM,IAAIviB,MAAM,4CAIlB,OAAOuiB,I,6BC5MTvqB,OAAOC,eAAeZ,EAAS,aAAc,CAC3C2B,OAAO,IAET3B,EAAQ+nG,QAGR,gBAGMxkG,I,6BCTN5C,OAAOC,eAAeZ,EAAS,aAAc,CAC3C2B,OAAO,IAET3B,EAAQgjI,iBAYR,SAA0B5+B,EAExBv0F,EAEAC,GAMA,IAAKs0F,EAAUhkG,MAAMijC,OAAQ,MAAO,CAACxzB,EAAGC,GAExC,IAAIuzB,EAAS+gE,EAAUhkG,MAAMijC,OAC7BA,EAA2B,kBAAXA,EAAsBA,EAuJxC,SAAqBA,GAKnB,MAAO,CACLxR,KAAMwR,EAAOxR,KACbE,IAAKsR,EAAOtR,IACZD,MAAOuR,EAAOvR,MACdE,OAAQqR,EAAOrR,QAhK8BixG,CAAY5/F,GAC3D,IAAInY,EAAO23G,EAAYz+B,GAEvB,GAAsB,kBAAX/gE,EAAqB,CAC9B,IAEI6/F,EAFAtkC,EAAgB1zE,EAAK0zE,cACrBukC,EAAcvkC,EAAcC,YAShC,MALEqkC,EADa,WAAX7/F,EACUnY,EAAKgS,WAEL0hE,EAAchO,cAAcvtD,cAGf8/F,EAAYr9B,aACrC,MAAM,IAAIn9F,MAAM,oBAAsB06B,EAAS,gCAGjD,IAAI+/F,EAEFF,EAEEG,EAAYF,EAAY3lG,iBAAiBtS,GACzCo4G,EAAiBH,EAAY3lG,iBAAiB4lG,GAElD//F,EAAS,CACPxR,MAAO3G,EAAKs+B,YAAa,EAAI0jD,EAAOrS,KAAKyoC,EAAez+E,cAAe,EAAIqoD,EAAOrS,KAAKwoC,EAAUE,YACjGxxG,KAAM7G,EAAKs6E,WAAY,EAAI0H,EAAOrS,KAAKyoC,EAAe3+E,aAAc,EAAIuoD,EAAOrS,KAAKwoC,EAAUG,WAC9F1xG,OAAO,EAAI2xG,EAAQ5mC,YAAYumC,IAAe,EAAIK,EAAQhwE,YAAYvoC,GAAQA,EAAKs+B,YAAa,EAAI0jD,EAAOrS,KAAKyoC,EAAex+E,eAAgB,EAAIooD,EAAOrS,KAAKwoC,EAAUK,aACzK1xG,QAAQ,EAAIyxG,EAAQ3mC,aAAasmC,IAAe,EAAIK,EAAQ9vE,aAAazoC,GAAQA,EAAKs6E,WAAY,EAAI0H,EAAOrS,KAAKyoC,EAAe1+E,gBAAiB,EAAIsoD,EAAOrS,KAAKwoC,EAAUM,gBAK5K,EAAIz2B,EAAOnS,OAAO13D,EAAOvR,SAAQjiB,EAAIhL,KAAKkF,IAAI8F,EAAGwzB,EAAOvR,SACxD,EAAIo7E,EAAOnS,OAAO13D,EAAOrR,UAASliB,EAAIjL,KAAKkF,IAAI+F,EAAGuzB,EAAOrR,UAEzD,EAAIk7E,EAAOnS,OAAO13D,EAAOxR,QAAOhiB,EAAIhL,KAAK+E,IAAIiG,EAAGwzB,EAAOxR,QACvD,EAAIq7E,EAAOnS,OAAO13D,EAAOtR,OAAMjiB,EAAIjL,KAAK+E,IAAIkG,EAAGuzB,EAAOtR,MAC1D,MAAO,CAACliB,EAAGC,IA/Db9P,EAAQgkI,WAkER,SAAoBtqF,EAElBuqF,EAEAC,GAKA,IAAIr0H,EAAIhL,KAAKmN,MAAMiyH,EAAWvqF,EAAK,IAAMA,EAAK,GAC1C5pC,EAAIjL,KAAKmN,MAAMkyH,EAAWxqF,EAAK,IAAMA,EAAK,GAC9C,MAAO,CAAC7pC,EAAGC,IA5Eb9P,EAAQwiI,SA+ER,SAAkBp+B,GAKhB,MAAgC,SAAzBA,EAAUhkG,MAAMgX,MAA4C,MAAzBgtF,EAAUhkG,MAAMgX,MAnF5DpX,EAAQyiI,SAsFR,SAAkBr+B,GAKhB,MAAgC,SAAzBA,EAAUhkG,MAAMgX,MAA4C,MAAzBgtF,EAAUhkG,MAAMgX,MA1F5DpX,EAAQ4jI,mBA8FR,SAA4B3/H,EAE1B4/H,EAEAC,GAKA,IAAIC,EAAsC,kBAApBF,GAA+B,EAAIJ,EAAQ12B,UAAU9oG,EAAG4/H,GAAmB,KACjG,GAA+B,kBAApBA,IAAiCE,EAAU,OAAO,KAE7D,IAAI74G,EAAO23G,EAAYiB,GAEnBp2B,EAAeo2B,EAAc1jI,MAAMstG,cAAgBxiF,EAAKwiF,cAAgBxiF,EAAK0zE,cAAcxtB,KAC/F,OAAO,EAAIqyD,EAAQh2B,oBAAoBs2B,GAAY9/H,EAAGypG,EAAco2B,EAAc1jI,MAAMmtB,QA5G1FvtB,EAAQ0iI,eAgHR,SAAwBt+B,EAEtBv0F,EAEAC,GAKA,IAAIi7E,EAAQqZ,EAAUrZ,MAClB43C,IAAW,EAAIz1B,EAAOnS,OAAOhQ,EAAM63C,OACnC13G,EAAO23G,EAAYz+B,GAEvB,OAAIu+B,EAEK,CACLz3G,KAAMA,EACNmmC,OAAQ,EACRC,OAAQ,EACRsxE,MAAO/yH,EACPo5D,MAAOn5D,EACPD,EAAGA,EACHC,EAAGA,GAIE,CACLob,KAAMA,EACNmmC,OAAQxhD,EAAIk7E,EAAM63C,MAClBtxE,OAAQxhD,EAAIi7E,EAAM9hB,MAClB25D,MAAO73C,EAAM63C,MACb35D,MAAO8hB,EAAM9hB,MACbp5D,EAAGA,EACHC,EAAGA,IAhJT9P,EAAQ8iI,oBAsJR,SAA6B1+B,EAE3B2+B,GAKA,IAAIx1G,EAAQ62E,EAAUhkG,MAAMmtB,MAC5B,MAAO,CACLrC,KAAM63G,EAAS73G,KACfrb,EAAGu0F,EAAUrZ,MAAMl7E,EAAIkzH,EAAS1xE,OAAS9jC,EACzCzd,EAAGs0F,EAAUrZ,MAAMj7E,EAAIizH,EAASzxE,OAAS/jC,EACzC8jC,OAAQ0xE,EAAS1xE,OAAS9jC,EAC1B+jC,OAAQyxE,EAASzxE,OAAS/jC,EAC1Bq1G,MAAOx+B,EAAUrZ,MAAMl7E,EACvBo5D,MAAOm7B,EAAUrZ,MAAMj7E,IAnK3B,IAAIo9F,EAASjtG,EAAQ,IAEjBwjI,EAAUxjI,EAAQ,IAmLtB,SAAS4iI,EAAYz+B,GAKnB,IAAIl5E,EAAOk5E,EAAUy+B,cAErB,IAAK33G,EACH,MAAM,IAAIviB,MAAM,4CAIlB,OAAOuiB,I,6BC5MTvqB,OAAOC,eAAeZ,EAAS,aAAc,CAC3C2B,OAAO,IAET3B,EAAQ+nG,QAGR,gBAGMxkG,I,6BCRJxD,EAAOC,QAAUC,EAAQ,M,4CCD3B,IAAIkkI,EAAWlkI,EAAQ,KACnB0jG,EAAYwgC,EAASp8B,QACrBq8B,EAAgBD,EAASC,cAK7BrkI,EAAOC,QAAU2jG,EACjB5jG,EAAOC,QAAQ+nG,QAAUpE,EACzB5jG,EAAOC,QAAQokI,cAAgBA,G,sCCX/B,OAOC,WACA,aAEA,IAAIC,EAAS,GAAG/+H,eAEhB,SAASg/H,IAGR,IAFA,IAAIC,EAAU,GAELlkI,EAAI,EAAGA,EAAI+B,UAAU9B,OAAQD,IAAK,CAC1C,IAAIuC,EAAMR,UAAU/B,GACpB,GAAKuC,EAAL,CAEA,IAAI4hI,SAAiB5hI,EAErB,GAAgB,WAAZ4hI,GAAoC,WAAZA,EAC3BD,EAAQj9H,KAAK1E,QACP,GAAIgB,MAAMC,QAAQjB,IAAQA,EAAItC,OAAQ,CAC5C,IAAI6mE,EAAQm9D,EAAWjiI,MAAM,KAAMO,GAC/BukE,GACHo9D,EAAQj9H,KAAK6/D,QAER,GAAgB,WAAZq9D,EACV,IAAK,IAAI3jI,KAAO+B,EACXyhI,EAAOz9H,KAAKhE,EAAK/B,IAAQ+B,EAAI/B,IAChC0jI,EAAQj9H,KAAKzG,IAMjB,OAAO0jI,EAAQ58H,KAAK,KAGgB5H,EAAOC,SAC3CskI,EAAWv8B,QAAUu8B,EACrBvkI,EAAOC,QAAUskI,QAGX,kBACL,OAAOA,GADF,QAAe,OAAf,aAtCP,I,8CCPD,YAGA,IAAIzjI,EAAM,uBAEVd,EAAOC,QAAU,WACf,OAAOwxG,EAAO3wG,IAAQ2wG,EAAO3wG,IAAQ,GAAK,K,gDCJ5C,IAAI4jI,EAAUxkI,EAAQ,IAMlBykI,EAAgB,CAClBpxC,mBAAmB,EACnBqxC,aAAa,EACbzwC,cAAc,EACdwP,cAAc,EACdkhC,aAAa,EACbC,iBAAiB,EACjBC,0BAA0B,EAC1BC,0BAA0B,EAC1BC,QAAQ,EACRC,WAAW,EACXj4H,MAAM,GAEJk4H,EAAgB,CAClBt3G,MAAM,EACNttB,QAAQ,EACRY,WAAW,EACXikI,QAAQ,EACRC,QAAQ,EACRhjI,WAAW,EACXijI,OAAO,GASLC,EAAe,CACjB,UAAY,EACZtiG,SAAS,EACT0gE,cAAc,EACdkhC,aAAa,EACbK,WAAW,EACXj4H,MAAM,GAEJu4H,EAAe,GAInB,SAASC,EAAW91E,GAElB,OAAI+0E,EAAQgB,OAAO/1E,GACV41E,EAIFC,EAAa71E,EAAS,WAAiBg1E,EAVhDa,EAAad,EAAQiB,YAhBK,CACxB,UAAY,EACZ1lE,QAAQ,EACR0jC,cAAc,EACdkhC,aAAa,EACbK,WAAW,GAYbM,EAAad,EAAQkB,MAAQL,EAY7B,IAAI1kI,EAAiBD,OAAOC,eACxBqpC,EAAsBtpC,OAAOspC,oBAC7BynD,EAAwB/wF,OAAO+wF,sBAC/B/kF,EAA2BhM,OAAOgM,yBAClCtB,EAAiB1K,OAAO0K,eACxBu6H,EAAkBjlI,OAAOO,UAsC7BnB,EAAOC,QArCP,SAAS6lI,EAAqBC,EAAiBC,EAAiBC,GAC9D,GAA+B,kBAApBD,EAA8B,CAEvC,GAAIH,EAAiB,CACnB,IAAIK,EAAqB56H,EAAe06H,GAEpCE,GAAsBA,IAAuBL,GAC/CC,EAAqBC,EAAiBG,EAAoBD,GAI9D,IAAI93H,EAAO+7B,EAAoB87F,GAE3Br0C,IACFxjF,EAAOA,EAAK/H,OAAOurF,EAAsBq0C,KAM3C,IAHA,IAAIG,EAAgBV,EAAWM,GAC3BK,EAAgBX,EAAWO,GAEtB1lI,EAAI,EAAGA,EAAI6N,EAAK5N,SAAUD,EAAG,CACpC,IAAIQ,EAAMqN,EAAK7N,GAEf,IAAK6kI,EAAcrkI,MAAUmlI,IAAaA,EAAUnlI,OAAWslI,IAAiBA,EAActlI,OAAWqlI,IAAiBA,EAAcrlI,IAAO,CAC7I,IAAIN,EAAaoM,EAAyBo5H,EAAiBllI,GAE3D,IAEED,EAAeklI,EAAiBjlI,EAAKN,GACrC,MAAO0D,OAKf,OAAO6hI,I,mIC1FHM,E,oJACJ75C,QAAU85C,YAAc,EAAD,O,sCAEvBrmE,kB,OACS,uBAAQusB,QAAStqF,KAAjB,QAA+BmxF,SAAUnxF,KAAK7B,MAAMgzF,Y,GAJnCf,IAAMgB,WCAThB,IAAMgB,UCPxB,IAAMizC,EAAoB,SAACr9G,EAAI+hE,G,MACtB,oBAAP/hE,EAAoBA,EAA3B,GAD+B,GAGpBs9G,EAAsB,SAACt9G,EAAI+hE,G,MACjB,kBAAP/hE,EACV6hE,YAAe7hE,EAAI,KAAM,KADtB,GAAP,GCCIu9G,EAAiB,SAAAzhI,G,OAAC,GAClB6lG,EAAevY,IAAfuY,WACN,qBAAWA,IACTA,KAOF,IAAM67B,EAAa77B,GACjB,c,IAEI87B,EAMC,EANDA,SACAC,EAKC,EALDA,SACAx5G,EAIC,EAJDA,QACG5W,EAGF,iDACKpW,EAAWoW,EADhB,OAGCnW,EAAQ,OAAH,IAAG,CAAH,MAEP+sB,QAAS,SAAA6Z,G,IAEL,GAAa7Z,KACb,MAAOy5G,G,MACP5/F,mBACA,EAICA,EAAD,sBACAA,UACC,GAFD,UAEY7mC,GA7BtB,SAAyB6mC,G,SACbA,WAAiBA,EAAjBA,QAAiCA,EAAjCA,SAAkDA,EAA5D,UA6BS6/F,CAJH,KAME7/F,mBACA2/F,Q,OAOJvmI,MADEomI,IAAJ,GACcM,GAEZ1mI,EAGK,sBAAP,MAWJ,IAAM2mI,EAAOn8B,GACX,c,QAEIl7C,iBAOC,MAPW+2E,EAOX,EAND79G,EAMC,EANDA,QACAK,EAKC,EALDA,GACAy9G,EAIC,EAJDA,SACGnwH,EAGF,uD,OAED,kBAACi+E,IAAD,eACG,SAAA3oE,GACC,mB,IAEQ0gE,EAAY1gE,EAHV,QAKJ8+D,EAAW47C,EACfD,EAAkBr9G,EAAI4C,EADY,UAElCA,EAFF,UAKMkjE,EAAOpE,EAAW4B,aAAH,GAArB,GACMnsF,EAAQ,OAAH,IAAG,CAAH,MAET2uF,KAFS,EAGT43C,SAHS,W,IAIDh8C,EAAW27C,EAAkBr9G,EAAI4C,EAAvC,WACejD,EAAU2jE,EAAH,QAAqBA,EAA3C,MAEArjD,M,OAKAs9F,IAAJ,EACEpmI,MAAY0mI,GAAZ1mI,EAEAA,aAGKiyF,oBAAP,SCvGJm0C,EAAiB,SAAAzhI,G,OAAC,GAClB6lG,EAAevY,IAAfuY,WACN,qBAAW,IACTA,KAUcA,GACd,c,QAEI,gBAAgBo8B,OAcf,MAd6B,OAc7B,E,IAbDC,uBAaC,MAbiB,SAajB,EAZDC,EAYC,EAZDA,YACWC,EAWV,EAXDxrC,UACA/G,EAUC,EAVDA,MACUwyC,EAST,EATDr7C,SACUs7C,EAQT,EARD18C,SACAkK,EAOC,EAPDA,OACOyyC,EAMN,EANDj7G,MACApD,EAKC,EALDA,GACAy9G,EAIC,EAJDA,SACGnwH,EAGF,2I,OAED,kBAACi+E,IAAD,eACG,SAAA3oE,GACC,mB,IAEMm/D,EAAkBq8C,GAAgBx7G,EAAxC,SACMwiE,EAAak4C,EACjBD,EAAkBr9G,EADkB,GAAtC,GAIkBygD,EAAS2kB,EARjB,SAUJk5C,EACJ79D,GAAQA,sCADV,QAGMv0C,EAAQoyG,EACV5yC,YAAU3J,EAAD,SAA2B,CAClCthB,KADkC,EAElCkrB,MAFkC,EAGlCC,WAJN,KAOM9I,KAAcq7C,EAChBA,EAAajyG,EADe,GAAhC,GAIMwmE,EAAY5P,EAnD5B,W,2BAA2By7C,EAAY,yBAAZA,EAAY,gB,OAC9BA,EAAA,QAAkB,SAAAnnI,G,OAAC,KAAnB,KAAP,KAmDYonI,CAAeN,EADO,GAA1B,EAGM96G,EAAQ0/D,EAAW,OAAH,IAAG,CAAH,WAAtB,EAEM3rF,EAAQ,OAAH,IAAG,CAAH,C,eACQ2rF,GAAD,GADP,KAET4P,UAFS,EAGTtvE,MAHS,EAITpD,GAAIolE,GAjCI,G,OAsCNm4C,IAAJ,EACEpmI,MAAY0mI,GAAZ1mI,EAEAA,aAGK,oBAAP,U,gDC5EG,IAAIya,EAAE5a,EAAQ,IAAiB+D,EAAE,oBAAoBN,QAAQA,OAAOgkI,IAAIz0H,EAAEjP,EAAEN,OAAOgkI,IAAI,iBAAiB,MAAM5wB,EAAE9yG,EAAEN,OAAOgkI,IAAI,gBAAgB,MAAMzgI,EAAEjD,EAAEN,OAAOgkI,IAAI,kBAAkB,MAAMrvH,EAAErU,EAAEN,OAAOgkI,IAAI,qBAAqB,MAAMv1B,EAAEnuG,EAAEN,OAAOgkI,IAAI,kBAAkB,MAAM93H,EAAE5L,EAAEN,OAAOgkI,IAAI,kBAAkB,MAAM3qH,EAAE/Y,EAAEN,OAAOgkI,IAAI,iBAAiB,MAAM73H,EAAE7L,EAAEN,OAAOgkI,IAAI,qBAAqB,MAAM53H,EAAE9L,EAAEN,OAAOgkI,IAAI,kBAAkB,MAAM55E,EAAE9pD,EAAEN,OAAOgkI,IAAI,cAAc,MAAM5rH,EAAE9X,EAAEN,OAAOgkI,IAAI,cACxe,MAAM3rH,EAAE,oBAAoBrY,QAAQA,OAAOC,SAAS,SAASoB,EAAE8L,GAAG,IAAI,IAAIC,EAAE,yDAAyDD,EAAEqL,EAAE,EAAEA,EAAE9Z,UAAU9B,OAAO4b,IAAIpL,GAAG,WAAWhI,mBAAmB1G,UAAU8Z,IAAI,MAAM,yBAAyBrL,EAAE,WAAWC,EAAE,iHAC/P,IAAIkL,EAAE,CAAC2rH,UAAU,WAAW,OAAM,GAAIC,mBAAmB,aAAaC,oBAAoB,aAAaC,gBAAgB,cAAc7rH,EAAE,GAAG,SAASnY,EAAE+M,EAAEC,EAAEoL,GAAGja,KAAK7B,MAAMyQ,EAAE5O,KAAK4pB,QAAQ/a,EAAE7O,KAAK8lI,KAAK9rH,EAAEha,KAAK+lI,QAAQ9rH,GAAGF,EACpN,SAAS6C,KAA6B,SAASC,EAAEjO,EAAEC,EAAEoL,GAAGja,KAAK7B,MAAMyQ,EAAE5O,KAAK4pB,QAAQ/a,EAAE7O,KAAK8lI,KAAK9rH,EAAEha,KAAK+lI,QAAQ9rH,GAAGF,EADsGlY,EAAE5C,UAAU+mI,iBAAiB,GAAGnkI,EAAE5C,UAAU2sF,SAAS,SAASh9E,EAAEC,GAAG,GAAG,kBAAkBD,GAAG,oBAAoBA,GAAG,MAAMA,EAAE,MAAMlI,MAAM5D,EAAE,KAAK9C,KAAK+lI,QAAQF,gBAAgB7lI,KAAK4O,EAAEC,EAAE,aAAahN,EAAE5C,UAAU2jG,YAAY,SAASh0F,GAAG5O,KAAK+lI,QAAQJ,mBAAmB3lI,KAAK4O,EAAE,gBACndgO,EAAE3d,UAAU4C,EAAE5C,UAAsF,IAAI6d,EAAED,EAAE5d,UAAU,IAAI2d,EAAEE,EAAErd,YAAYod,EAAEjE,EAAEkE,EAAEjb,EAAE5C,WAAW6d,EAAEmpH,sBAAqB,EAAG,IAAIlpH,EAAE,CAACwb,QAAQ,MAAM5b,EAAEje,OAAOO,UAAUoE,eAAeqZ,EAAE,CAAC9d,KAAI,EAAGu9F,KAAI,EAAG+pC,QAAO,EAAGC,UAAS,GAChS,SAAS1pH,EAAE7N,EAAEC,EAAEoL,GAAG,IAAIjY,EAAEyW,EAAE,GAAG8B,EAAE,KAAKzN,EAAE,KAAK,GAAG,MAAM+B,EAAE,IAAI7M,UAAK,IAAS6M,EAAEstF,MAAMrvF,EAAE+B,EAAEstF,UAAK,IAASttF,EAAEjQ,MAAM2b,EAAE,GAAG1L,EAAEjQ,KAAKiQ,EAAE8N,EAAEhY,KAAKkK,EAAE7M,KAAK0a,EAAErZ,eAAerB,KAAKyW,EAAEzW,GAAG6M,EAAE7M,IAAI,IAAIE,EAAE/B,UAAU9B,OAAO,EAAE,GAAG,IAAI6D,EAAEuW,EAAE04E,SAASl3E,OAAO,GAAG,EAAE/X,EAAE,CAAC,IAAI,IAAI2W,EAAElX,MAAMO,GAAGsW,EAAE,EAAEA,EAAEtW,EAAEsW,IAAIK,EAAEL,GAAGrY,UAAUqY,EAAE,GAAGC,EAAE04E,SAASt4E,EAAE,GAAGjK,GAAGA,EAAE6yF,aAAa,IAAIz/F,KAAKE,EAAE0M,EAAE6yF,kBAAe,IAAShpF,EAAEzW,KAAKyW,EAAEzW,GAAGE,EAAEF,IAAI,MAAM,CAACokI,SAASp1H,EAAEjG,KAAK6D,EAAEhQ,IAAI2b,EAAE4hF,IAAIrvF,EAAE3O,MAAMsa,EAAE4tH,OAAOtpH,EAAEwb,SACxU,SAAShc,EAAE3N,GAAG,MAAM,kBAAkBA,GAAG,OAAOA,GAAGA,EAAEw3H,WAAWp1H,EAA0G,IAAIsL,EAAE,OAAOD,EAAE,GAAG,SAASD,EAAExN,EAAEC,EAAEoL,EAAEjY,GAAG,GAAGqa,EAAEhe,OAAO,CAAC,IAAIoa,EAAE4D,EAAEqoB,MAA8D,OAAxDjsB,EAAE5Y,OAAO+O,EAAE6J,EAAE6tH,UAAUz3H,EAAE4J,EAAEogF,KAAK5+E,EAAExB,EAAEmR,QAAQ5nB,EAAEyW,EAAE1D,MAAM,EAAS0D,EAAE,MAAM,CAAC5Y,OAAO+O,EAAE03H,UAAUz3H,EAAEgqF,KAAK5+E,EAAE2P,QAAQ5nB,EAAE+S,MAAM,GAC5b,SAASoH,EAAEvN,GAAGA,EAAE/O,OAAO,KAAK+O,EAAE03H,UAAU,KAAK13H,EAAEiqF,KAAK,KAAKjqF,EAAEgb,QAAQ,KAAKhb,EAAEmG,MAAM,EAAE,GAAGsH,EAAEhe,QAAQge,EAAEhX,KAAKuJ,GAE2F,SAASoN,EAAEpN,EAAEC,EAAEoL,GAAG,OAAO,MAAMrL,EAAE,EADlO,SAASsN,EAAEtN,EAAEC,EAAEoL,EAAEjY,GAAG,IAAIyW,SAAS7J,EAAK,cAAc6J,GAAG,YAAYA,IAAE7J,EAAE,MAAK,IAAI2L,GAAE,EAAG,GAAG,OAAO3L,EAAE2L,GAAE,OAAQ,OAAO9B,GAAG,IAAK,SAAS,IAAK,SAAS8B,GAAE,EAAG,MAAM,IAAK,SAAS,OAAO3L,EAAEw3H,UAAU,KAAKp1H,EAAE,KAAK6jG,EAAEt6F,GAAE,GAAI,GAAGA,EAAE,OAAON,EAAEjY,EAAE4M,EAAE,KAAKC,EAAE,IAAIoN,EAAErN,EAAE,GAAGC,GAAG,EAAyB,GAAvB0L,EAAE,EAAE1L,EAAE,KAAKA,EAAE,IAAIA,EAAE,IAAOlN,MAAMC,QAAQgN,GAAG,IAAI,IAAI9B,EAAE,EAAEA,EAAE8B,EAAEvQ,OAAOyO,IAAI,CAAQ,IAAI5K,EAAE2M,EAAEoN,EAAfxD,EAAE7J,EAAE9B,GAAeA,GAAGyN,GAAG2B,EAAEzD,EAAEvW,EAAE+X,EAAEjY,QAAQ,GAAG,OAAO4M,GAAG,kBAAkBA,EAAE1M,EAAE,KAAiCA,EAAE,oBAA7BA,EAAE4X,GAAGlL,EAAEkL,IAAIlL,EAAE,eAAsC1M,EAAE,KAAM,oBAAoBA,EAAE,IAAI0M,EAAE1M,EAAEyC,KAAKiK,GAAG9B,EACpf,IAAI2L,EAAE7J,EAAErM,QAAQzB,MAA6ByZ,GAAG2B,EAA1BzD,EAAEA,EAAE/Y,MAAMwC,EAAE2M,EAAEoN,EAAExD,EAAE3L,KAAcmN,EAAEjY,QAAQ,GAAG,WAAWyW,EAAE,MAAMwB,EAAE,GAAGrL,EAAElI,MAAM5D,EAAE,GAAG,oBAAoBmX,EAAE,qBAAqBvb,OAAOuN,KAAK2C,GAAGlJ,KAAK,MAAM,IAAIuU,EAAE,KAAK,OAAOM,EAAqC2B,CAAEtN,EAAE,GAAGC,EAAEoL,GAAG,SAASgC,EAAErN,EAAEC,GAAG,MAAM,kBAAkBD,GAAG,OAAOA,GAAG,MAAMA,EAAEhQ,IAH9I,SAAgBgQ,GAAG,IAAIC,EAAE,CAAC,IAAI,KAAK,IAAI,MAAM,MAAM,KAAK,GAAGD,GAAG+X,QAAQ,SAAQ,SAAS/X,GAAG,OAAOC,EAAED,MAG+CnI,CAAOmI,EAAEhQ,KAAKiQ,EAAEnL,SAAS,IAAI,SAASqY,EAAEnN,EAAEC,GAAGD,EAAEiqF,KAAKl0F,KAAKiK,EAAEgb,QAAQ/a,EAAED,EAAEmG,SACxX,SAASwxH,EAAG33H,EAAEC,EAAEoL,GAAG,IAAIjY,EAAE4M,EAAE/O,OAAO4Y,EAAE7J,EAAE03H,UAAU13H,EAAEA,EAAEiqF,KAAKl0F,KAAKiK,EAAEgb,QAAQ/a,EAAED,EAAEmG,SAASpT,MAAMC,QAAQgN,GAAGkN,EAAElN,EAAE5M,EAAEiY,GAAE,SAASrL,GAAG,OAAOA,KAAI,MAAMA,IAAI2N,EAAE3N,KAAKA,EAJtJ,SAAWA,EAAEC,GAAG,MAAM,CAACu3H,SAASp1H,EAAEjG,KAAK6D,EAAE7D,KAAKnM,IAAIiQ,EAAEstF,IAAIvtF,EAAEutF,IAAIh+F,MAAMyQ,EAAEzQ,MAAMkoI,OAAOz3H,EAAEy3H,QAImE7pH,CAAE5N,EAAE6J,IAAI7J,EAAEhQ,KAAKiQ,GAAGA,EAAEjQ,MAAMgQ,EAAEhQ,IAAI,IAAI,GAAGgQ,EAAEhQ,KAAK+nB,QAAQrK,EAAE,OAAO,KAAKrC,IAAIjY,EAAEqD,KAAKuJ,IAAI,SAASkN,EAAElN,EAAEC,EAAEoL,EAAEjY,EAAEyW,GAAG,IAAI8B,EAAE,GAAG,MAAMN,IAAIM,GAAG,GAAGN,GAAG0M,QAAQrK,EAAE,OAAO,KAAkBN,EAAEpN,EAAE23H,EAAjB13H,EAAEuN,EAAEvN,EAAE0L,EAAEvY,EAAEyW,IAAa0D,EAAEtN,GAAG,IAAIgN,EAAE,CAAC0c,QAAQ,MAAM,SAAS3c,IAAI,IAAIhN,EAAEiN,EAAE0c,QAAQ,GAAG,OAAO3pB,EAAE,MAAMlI,MAAM5D,EAAE,MAAM,OAAO8L,EACxa,IAAI43H,EAAG,CAACC,uBAAuB5qH,EAAE6qH,wBAAwB,CAACC,SAAS,MAAMC,kBAAkB7pH,EAAE8pH,qBAAqB,CAACtuG,SAAQ,GAAIriB,OAAO0C,GAAG7a,EAAQ+oI,SAAS,CAACl6H,IAAI,SAASgC,EAAEC,EAAEoL,GAAG,GAAG,MAAMrL,EAAE,OAAOA,EAAE,IAAI5M,EAAE,GAAmB,OAAhB8Z,EAAElN,EAAE5M,EAAE,KAAK6M,EAAEoL,GAAUjY,GAAGyR,QAAQ,SAAS7E,EAAEC,EAAEoL,GAAG,GAAG,MAAMrL,EAAE,OAAOA,EAAqBoN,EAAEpN,EAAEmN,EAAvBlN,EAAEuN,EAAE,KAAK,KAAKvN,EAAEoL,IAAYkC,EAAEtN,IAAIkG,MAAM,SAASnG,GAAG,OAAOoN,EAAEpN,GAAE,WAAW,OAAO,OAAM,OAAOm4H,QAAQ,SAASn4H,GAAG,IAAIC,EAAE,GAAqC,OAAlCiN,EAAElN,EAAEC,EAAE,MAAK,SAASD,GAAG,OAAOA,KAAWC,GAAGm4H,KAAK,SAASp4H,GAAG,IAAI2N,EAAE3N,GAAG,MAAMlI,MAAM5D,EAAE,MAAM,OAAO8L,IAC9e7Q,EAAQqzF,UAAUvvF,EAAE9D,EAAQkpI,SAASjiI,EAAEjH,EAAQmpI,SAASh3B,EAAEnyG,EAAQ0oG,cAAc5pF,EAAE9e,EAAQopI,WAAW/wH,EAAErY,EAAQqpI,SAASv5H,EAAE9P,EAAQspI,mDAAmDb,EACrLzoI,EAAQupI,aAAa,SAAS14H,EAAEC,EAAEoL,GAAG,GAAG,OAAOrL,QAAG,IAASA,EAAE,MAAMlI,MAAM5D,EAAE,IAAI8L,IAAI,IAAI5M,EAAE4W,EAAE,GAAGhK,EAAEzQ,OAAOsa,EAAE7J,EAAEhQ,IAAI2b,EAAE3L,EAAEutF,IAAIrvF,EAAE8B,EAAEy3H,OAAO,GAAG,MAAMx3H,EAAE,CAAoE,QAAnE,IAASA,EAAEstF,MAAM5hF,EAAE1L,EAAEstF,IAAIrvF,EAAEiQ,EAAEwb,cAAS,IAAS1pB,EAAEjQ,MAAM6Z,EAAE,GAAG5J,EAAEjQ,KAAQgQ,EAAE7D,MAAM6D,EAAE7D,KAAK02F,aAAa,IAAIv/F,EAAE0M,EAAE7D,KAAK02F,aAAa,IAAI5oF,KAAKhK,EAAE8N,EAAEhY,KAAKkK,EAAEgK,KAAK6D,EAAErZ,eAAewV,KAAK7W,EAAE6W,QAAG,IAAShK,EAAEgK,SAAI,IAAS3W,EAAEA,EAAE2W,GAAGhK,EAAEgK,IAAI,IAAIA,EAAE1Y,UAAU9B,OAAO,EAAE,GAAG,IAAIwa,EAAE7W,EAAEmvF,SAASl3E,OAAO,GAAG,EAAEpB,EAAE,CAAC3W,EAAEP,MAAMkX,GAAG,IAAI,IAAIL,EAAE,EAAEA,EAAEK,EAAEL,IAAItW,EAAEsW,GAAGrY,UAAUqY,EAAE,GAAGxW,EAAEmvF,SAASjvF,EAAE,MAAM,CAACkkI,SAASp1H,EAAEjG,KAAK6D,EAAE7D,KACxfnM,IAAI6Z,EAAE0jF,IAAI5hF,EAAEpc,MAAM6D,EAAEqkI,OAAOv5H,IAAI/O,EAAQk2B,cAAc,SAASrlB,EAAEC,GAA8K,YAA3K,IAASA,IAAIA,EAAE,OAAMD,EAAE,CAACw3H,SAAStrH,EAAEysH,sBAAsB14H,EAAE24H,cAAc54H,EAAE64H,eAAe74H,EAAE84H,aAAa,EAAEh3C,SAAS,KAAKc,SAAS,OAAQd,SAAS,CAAC01C,SAASz4H,EAAEgoB,SAAS/mB,GAAUA,EAAE4iF,SAAS5iF,GAAG7Q,EAAQmsF,cAAcztE,EAAE1e,EAAQ4pI,cAAc,SAAS/4H,GAAG,IAAIC,EAAE4N,EAAE4/B,KAAK,KAAKztC,GAAY,OAATC,EAAE9D,KAAK6D,EAASC,GAAG9Q,EAAQ6pI,UAAU,WAAW,MAAM,CAACrvG,QAAQ,OAAOx6B,EAAQ4qG,WAAW,SAAS/5F,GAAG,MAAM,CAACw3H,SAASx4H,EAAEmwD,OAAOnvD,IAAI7Q,EAAQ8pI,eAAetrH,EAC3exe,EAAQ+pI,KAAK,SAASl5H,GAAG,MAAM,CAACw3H,SAASvsH,EAAEkuH,MAAMn5H,EAAEo5H,SAAS,EAAEC,QAAQ,OAAOlqI,EAAQo1F,KAAK,SAASvkF,EAAEC,GAAG,MAAM,CAACu3H,SAASv6E,EAAE9gD,KAAK6D,EAAEmyB,aAAQ,IAASlyB,EAAE,KAAKA,IAAI9Q,EAAQmqI,YAAY,SAASt5H,EAAEC,GAAG,OAAO+M,IAAIssH,YAAYt5H,EAAEC,IAAI9Q,EAAQoqI,WAAW,SAASv5H,EAAEC,GAAG,OAAO+M,IAAIusH,WAAWv5H,EAAEC,IAAI9Q,EAAQqqI,cAAc,aAAarqI,EAAQwqG,UAAU,SAAS35F,EAAEC,GAAG,OAAO+M,IAAI2sF,UAAU35F,EAAEC,IAAI9Q,EAAQsqI,oBAAoB,SAASz5H,EAAEC,EAAEoL,GAAG,OAAO2B,IAAIysH,oBAAoBz5H,EAAEC,EAAEoL,IACtclc,EAAQuqI,gBAAgB,SAAS15H,EAAEC,GAAG,OAAO+M,IAAI0sH,gBAAgB15H,EAAEC,IAAI9Q,EAAQwqI,QAAQ,SAAS35H,EAAEC,GAAG,OAAO+M,IAAI2sH,QAAQ35H,EAAEC,IAAI9Q,EAAQyqI,WAAW,SAAS55H,EAAEC,EAAEoL,GAAG,OAAO2B,IAAI4sH,WAAW55H,EAAEC,EAAEoL,IAAIlc,EAAQkqG,OAAO,SAASr5F,GAAG,OAAOgN,IAAIqsF,OAAOr5F,IAAI7Q,EAAQ0qI,SAAS,SAAS75H,GAAG,OAAOgN,IAAI6sH,SAAS75H,IAAI7Q,EAAQunE,QAAQ,W,6BCZxS,IAAIihE,EAAGvoI,EAAQ,GAAS+D,EAAE/D,EAAQ,IAAiB62G,EAAE72G,EAAQ,KAAa,SAASkyG,EAAEthG,GAAG,IAAI,IAAIC,EAAE,yDAAyDD,EAAEqL,EAAE,EAAEA,EAAE9Z,UAAU9B,OAAO4b,IAAIpL,GAAG,WAAWhI,mBAAmB1G,UAAU8Z,IAAI,MAAM,yBAAyBrL,EAAE,WAAWC,EAAE,iHAAiH,IAAI03H,EAAG,MAAM7/H,MAAMwpG,EAAE,MAAM,IAAIs2B,EAAG,KAAKkC,EAAG,GAC7b,SAASC,IAAK,GAAGnC,EAAG,IAAI,IAAI53H,KAAK85H,EAAG,CAAC,IAAI75H,EAAE65H,EAAG95H,GAAGqL,EAAEusH,EAAGx5H,QAAQ4B,GAAG,MAAM,EAAEqL,GAAG,MAAMvT,MAAMwpG,EAAE,GAAGthG,IAAI,IAAIg6H,EAAG3uH,GAAG,CAAC,IAAIpL,EAAEg6H,cAAc,MAAMniI,MAAMwpG,EAAE,GAAGthG,IAA2B,IAAI,IAAI6J,KAA/BmwH,EAAG3uH,GAAGpL,EAAEoL,EAAEpL,EAAEi6H,WAA0B,CAAC,IAAI9mI,OAAE,EAAWE,EAAE+X,EAAExB,GAAG8B,EAAE1L,EAAEgK,EAAEJ,EAAE,GAAGmgB,EAAGv1B,eAAewV,GAAG,MAAMnS,MAAMwpG,EAAE,GAAGr3F,IAAI+f,EAAG/f,GAAG3W,EAAE,IAAI4K,EAAE5K,EAAE6mI,wBAAwB,GAAGj8H,EAAE,CAAC,IAAI9K,KAAK8K,EAAEA,EAAEzJ,eAAerB,IAAIgnI,EAAGl8H,EAAE9K,GAAGuY,EAAE1B,GAAG7W,GAAE,OAAQE,EAAE+mI,kBAAkBD,EAAG9mI,EAAE+mI,iBAAiB1uH,EAAE1B,GAAG7W,GAAE,GAAIA,GAAE,EAAG,IAAIA,EAAE,MAAM0E,MAAMwpG,EAAE,GAAGz3F,EAAE7J,OACjc,SAASo6H,EAAGp6H,EAAEC,EAAEoL,GAAG,GAAGivH,EAAGt6H,GAAG,MAAMlI,MAAMwpG,EAAE,IAAIthG,IAAIs6H,EAAGt6H,GAAGC,EAAEs6H,EAAGv6H,GAAGC,EAAEi6H,WAAW7uH,GAAGmvH,aAAa,IAAIR,EAAG,GAAGhwG,EAAG,GAAGswG,EAAG,GAAGC,EAAG,GAAG,SAASE,EAAGz6H,EAAEC,EAAEoL,EAAExB,EAAEzW,EAAEE,EAAEqY,EAAE1B,EAAE/L,GAAG,IAAI8L,EAAEjX,MAAM1C,UAAU2F,MAAMD,KAAKxE,UAAU,GAAG,IAAI0O,EAAEzO,MAAM6Z,EAAErB,GAAG,MAAMJ,GAAGxY,KAAKspI,QAAQ9wH,IAAI,IAAI+wH,GAAG,EAAGC,EAAG,KAAKC,GAAG,EAAGC,EAAG,KAAKC,EAAG,CAACL,QAAQ,SAAS16H,GAAG26H,GAAG,EAAGC,EAAG56H,IAAI,SAASg7H,EAAGh7H,EAAEC,EAAEoL,EAAExB,EAAEzW,EAAEE,EAAEqY,EAAE1B,EAAE/L,GAAGy8H,GAAG,EAAGC,EAAG,KAAKH,EAAGjpI,MAAMupI,EAAGxpI,WACvO,IAAI0pI,EAAG,KAAKn/C,EAAG,KAAKo/C,EAAG,KAAK,SAASC,EAAGn7H,EAAEC,EAAEoL,GAAG,IAAIxB,EAAE7J,EAAE7D,MAAM,gBAAgB6D,EAAEo7H,cAAcF,EAAG7vH,GAAxO,SAAYrL,EAAEC,EAAEoL,EAAExB,EAAEzW,EAAEE,EAAEqY,EAAE1B,EAAE/L,GAA4B,GAAzB88H,EAAGxpI,MAAMJ,KAAKG,WAAcopI,EAAG,CAAC,IAAGA,EAAgC,MAAM7iI,MAAMwpG,EAAE,MAA1C,IAAIt3F,EAAE4wH,EAAGD,GAAG,EAAGC,EAAG,KAA8BC,IAAKA,GAAG,EAAGC,EAAG9wH,IAAuGqxH,CAAGxxH,EAAE5J,OAAE,EAAOD,GAAGA,EAAEo7H,cAAc,KAAK,SAASE,EAAGt7H,EAAEC,GAAG,GAAG,MAAMA,EAAE,MAAMnI,MAAMwpG,EAAE,KAAK,OAAG,MAAMthG,EAASC,EAAKlN,MAAMC,QAAQgN,GAAOjN,MAAMC,QAAQiN,IAAUD,EAAEvJ,KAAKjF,MAAMwO,EAAEC,GAAGD,IAAEA,EAAEvJ,KAAKwJ,GAAUD,GAASjN,MAAMC,QAAQiN,GAAG,CAACD,GAAG1K,OAAO2K,GAAG,CAACD,EAAEC,GACpd,SAASs7H,EAAGv7H,EAAEC,EAAEoL,GAAGtY,MAAMC,QAAQgN,GAAGA,EAAE6E,QAAQ5E,EAAEoL,GAAGrL,GAAGC,EAAElK,KAAKsV,EAAErL,GAAG,IAAIw7H,EAAG,KAAK,SAASC,EAAGz7H,GAAG,GAAGA,EAAE,CAAC,IAAIC,EAAED,EAAE07H,mBAAmBrwH,EAAErL,EAAE27H,mBAAmB,GAAG5oI,MAAMC,QAAQiN,GAAG,IAAI,IAAI4J,EAAE,EAAEA,EAAE5J,EAAExQ,SAASuQ,EAAE47H,uBAAuB/xH,IAAIsxH,EAAGn7H,EAAEC,EAAE4J,GAAGwB,EAAExB,SAAS5J,GAAGk7H,EAAGn7H,EAAEC,EAAEoL,GAAGrL,EAAE07H,mBAAmB,KAAK17H,EAAE27H,mBAAmB,KAAK37H,EAAE67H,gBAAgB77H,EAAEnP,YAAYirI,QAAQ97H,IAAI,SAAS+7H,EAAG/7H,GAAwC,GAArC,OAAOA,IAAIw7H,EAAGF,EAAGE,EAAGx7H,IAAIA,EAAEw7H,EAAGA,EAAG,KAAQx7H,EAAE,CAAU,GAATu7H,EAAGv7H,EAAEy7H,GAAOD,EAAG,MAAM1jI,MAAMwpG,EAAE,KAAK,GAAGu5B,EAAG,MAAM76H,EAAE86H,EAAGD,GAAG,EAAGC,EAAG,KAAK96H,GAC5d,IAAIg8H,EAAG,CAACC,uBAAuB,SAASj8H,GAAG,GAAG43H,EAAG,MAAM9/H,MAAMwpG,EAAE,MAAMs2B,EAAG7kI,MAAM1C,UAAU2F,MAAMD,KAAKiK,GAAG+5H,KAAMmC,yBAAyB,SAASl8H,GAAG,IAASqL,EAALpL,GAAE,EAAK,IAAIoL,KAAKrL,EAAE,GAAGA,EAAEvL,eAAe4W,GAAG,CAAC,IAAIxB,EAAE7J,EAAEqL,GAAG,IAAIyuH,EAAGrlI,eAAe4W,IAAIyuH,EAAGzuH,KAAKxB,EAAE,CAAC,GAAGiwH,EAAGzuH,GAAG,MAAMvT,MAAMwpG,EAAE,IAAIj2F,IAAIyuH,EAAGzuH,GAAGxB,EAAE5J,GAAE,GAAIA,GAAG85H,MAC/R,SAASoC,EAAGn8H,EAAEC,GAAG,IAAIoL,EAAErL,EAAEo8H,UAAU,IAAI/wH,EAAE,OAAO,KAAK,IAAIxB,EAAEoxH,EAAG5vH,GAAG,IAAIxB,EAAE,OAAO,KAAKwB,EAAExB,EAAE5J,GAAGD,EAAE,OAAOC,GAAG,IAAK,UAAU,IAAK,iBAAiB,IAAK,gBAAgB,IAAK,uBAAuB,IAAK,cAAc,IAAK,qBAAqB,IAAK,cAAc,IAAK,qBAAqB,IAAK,YAAY,IAAK,oBAAoB4J,GAAGA,EAAEm3B,YAAqBn3B,IAAI,YAAb7J,EAAEA,EAAE7D,OAAuB,UAAU6D,GAAG,WAAWA,GAAG,aAAaA,IAAIA,GAAG6J,EAAE,MAAM7J,EAAE,QAAQA,GAAE,EAAG,GAAGA,EAAE,OAAO,KAAK,GAAGqL,GAAG,oBAAoBA,EAAE,MAAMvT,MAAMwpG,EAAE,IAAIrhG,SAASoL,IAC1f,OAAOA,EAAE,IAAIgxH,EAAG1E,EAAGc,mDAAmD4D,EAAG5nI,eAAe,4BAA4B4nI,EAAGxE,uBAAuB,CAACluG,QAAQ,OAAO0yG,EAAG5nI,eAAe,6BAA6B4nI,EAAGvE,wBAAwB,CAACC,SAAS,OAClP,IAAIuE,EAAG,cAAcpwH,EAAE,oBAAoBrZ,QAAQA,OAAOgkI,IAAI0F,EAAGrwH,EAAErZ,OAAOgkI,IAAI,iBAAiB,MAAM2F,EAAGtwH,EAAErZ,OAAOgkI,IAAI,gBAAgB,MAAM4F,EAAGvwH,EAAErZ,OAAOgkI,IAAI,kBAAkB,MAAM6F,EAAGxwH,EAAErZ,OAAOgkI,IAAI,qBAAqB,MAAM8F,EAAGzwH,EAAErZ,OAAOgkI,IAAI,kBAAkB,MAAM+F,EAAG1wH,EAAErZ,OAAOgkI,IAAI,kBAAkB,MAAMgG,EAAG3wH,EAAErZ,OAAOgkI,IAAI,iBAAiB,MAAMiG,EAAG5wH,EAAErZ,OAAOgkI,IAAI,yBAAyB,MAAMkG,EAAG7wH,EAAErZ,OAAOgkI,IAAI,qBAAqB,MAAMmG,EAAG9wH,EAAErZ,OAAOgkI,IAAI,kBAAkB,MAAMoG,EAAG/wH,EAAErZ,OAAOgkI,IAAI,uBACve,MAAMqG,EAAGhxH,EAAErZ,OAAOgkI,IAAI,cAAc,MAAMsG,EAAGjxH,EAAErZ,OAAOgkI,IAAI,cAAc,MAAM3qH,GAAGrZ,OAAOgkI,IAAI,qBAAqB3qH,GAAGrZ,OAAOgkI,IAAI,mBAAmB3qH,GAAGrZ,OAAOgkI,IAAI,eAAe,IAAIuG,EAAG,oBAAoBvqI,QAAQA,OAAOC,SAAS,SAASuqI,EAAGr9H,GAAG,OAAG,OAAOA,GAAG,kBAAkBA,EAAS,KAAwC,oBAAnCA,EAAEo9H,GAAIp9H,EAAEo9H,IAAKp9H,EAAE,eAA0CA,EAAE,KAEzV,SAASs9H,EAAGt9H,GAAG,GAAG,MAAMA,EAAE,OAAO,KAAK,GAAG,oBAAoBA,EAAE,OAAOA,EAAE+zH,aAAa/zH,EAAE+c,MAAM,KAAK,GAAG,kBAAkB/c,EAAE,OAAOA,EAAE,OAAOA,GAAG,KAAKy8H,EAAG,MAAM,WAAW,KAAKD,EAAG,MAAM,SAAS,KAAKG,EAAG,MAAM,WAAW,KAAKD,EAAG,MAAM,aAAa,KAAKM,EAAG,MAAM,WAAW,KAAKC,EAAG,MAAM,eAAe,GAAG,kBAAkBj9H,EAAE,OAAOA,EAAEw3H,UAAU,KAAKqF,EAAG,MAAM,mBAAmB,KAAKD,EAAG,MAAM,mBAAmB,KAAKG,EAAG,IAAI98H,EAAED,EAAEmvD,OAAmC,OAA5BlvD,EAAEA,EAAE8zH,aAAa9zH,EAAE8c,MAAM,GAAU/c,EAAE+zH,cAAc,KAAK9zH,EAAE,cAAcA,EAAE,IACnf,cAAc,KAAKi9H,EAAG,OAAOI,EAAGt9H,EAAE7D,MAAM,KAAKghI,EAAG,GAAGn9H,EAAE,IAAIA,EAAEo5H,QAAQp5H,EAAEq5H,QAAQ,KAAK,OAAOiE,EAAGt9H,GAAG,OAAO,KAAK,SAASu9H,EAAGv9H,GAAG,IAAIC,EAAE,GAAG,EAAE,CAACD,EAAE,OAAOA,EAAEw9H,KAAK,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK,EAAE,IAAInyH,EAAE,GAAG,MAAMrL,EAAE,QAAQ,IAAI6J,EAAE7J,EAAEy9H,YAAYrqI,EAAE4M,EAAE09H,aAAapqI,EAAEgqI,EAAGt9H,EAAE7D,MAAMkP,EAAE,KAAKxB,IAAIwB,EAAEiyH,EAAGzzH,EAAE1N,OAAO0N,EAAEvW,EAAEA,EAAE,GAAGF,EAAEE,EAAE,QAAQF,EAAEuqI,SAAS5lH,QAAQukH,EAAG,IAAI,IAAIlpI,EAAEwqI,WAAW,IAAIvyH,IAAI/X,EAAE,gBAAgB+X,EAAE,KAAKA,EAAE,aAAaxB,GAAG,WAAWvW,EAAE2M,GAAGoL,EAAErL,EAAEA,EAAE69H,aAAa79H,GAAG,OAAOC,EACrc,IAAI69H,IAAK,qBAAqB14H,QAAQ,qBAAqBA,OAAO8mB,UAAU,qBAAqB9mB,OAAO8mB,SAASovD,eAAeyiD,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAK,SAASC,GAAGl+H,GAAG,GAAGA,EAAE87E,EAAG97E,GAAG,CAAC,GAAG,oBAAoB+9H,GAAG,MAAMjmI,MAAMwpG,EAAE,MAAM,IAAIrhG,EAAEg7H,EAAGj7H,EAAEo8H,WAAW2B,GAAG/9H,EAAEo8H,UAAUp8H,EAAE7D,KAAK8D,IAAI,SAASm2B,GAAGp2B,GAAGg+H,GAAGC,GAAGA,GAAGxnI,KAAKuJ,GAAGi+H,GAAG,CAACj+H,GAAGg+H,GAAGh+H,EAAE,SAASm+H,KAAK,GAAGH,GAAG,CAAC,IAAIh+H,EAAEg+H,GAAG/9H,EAAEg+H,GAAoB,GAAjBA,GAAGD,GAAG,KAAKE,GAAGl+H,GAAMC,EAAE,IAAID,EAAE,EAAEA,EAAEC,EAAExQ,OAAOuQ,IAAIk+H,GAAGj+H,EAAED,KAAK,SAASo+H,GAAGp+H,EAAEC,GAAG,OAAOD,EAAEC,GAAG,SAASgqB,GAAGjqB,EAAEC,EAAEoL,EAAExB,GAAG,OAAO7J,EAAEC,EAAEoL,EAAExB,GAAG,SAASw0H,MACle,IAAIC,GAAGF,GAAGG,IAAG,EAAGC,IAAG,EAAG,SAASC,KAAQ,OAAOT,IAAI,OAAOC,KAAGI,KAAKF,MAAK,IAAI7tG,IAAI,IAAIouG,GAAG,8VAA8VC,GAAG7uI,OAAOO,UAAUoE,eAAemqI,GAAG,GAAGC,GAAG,GAEvQ,SAAS3zH,GAAElL,EAAEC,EAAEoL,EAAExB,EAAEzW,EAAEE,GAAGlC,KAAK0tI,gBAAgB,IAAI7+H,GAAG,IAAIA,GAAG,IAAIA,EAAE7O,KAAK2tI,cAAcl1H,EAAEzY,KAAK4tI,mBAAmB5rI,EAAEhC,KAAK6tI,gBAAgB5zH,EAAEja,KAAKyD,aAAamL,EAAE5O,KAAK+K,KAAK8D,EAAE7O,KAAK8tI,YAAY5rI,EAAE,IAAI6X,GAAE,GACxZ,uIAAuI/L,MAAM,KAAKyF,SAAQ,SAAS7E,GAAGmL,GAAEnL,GAAG,IAAIkL,GAAElL,EAAE,GAAE,EAAGA,EAAE,MAAK,MAAM,CAAC,CAAC,gBAAgB,kBAAkB,CAAC,YAAY,SAAS,CAAC,UAAU,OAAO,CAAC,YAAY,eAAe6E,SAAQ,SAAS7E,GAAG,IAAIC,EAAED,EAAE,GAAGmL,GAAElL,GAAG,IAAIiL,GAAEjL,EAAE,GAAE,EAAGD,EAAE,GAAG,MAAK,MAAM,CAAC,kBAAkB,YAAY,aAAa,SAAS6E,SAAQ,SAAS7E,GAAGmL,GAAEnL,GAAG,IAAIkL,GAAElL,EAAE,GAAE,EAAGA,EAAEkY,cAAc,MAAK,MAC9d,CAAC,cAAc,4BAA4B,YAAY,iBAAiBrT,SAAQ,SAAS7E,GAAGmL,GAAEnL,GAAG,IAAIkL,GAAElL,EAAE,GAAE,EAAGA,EAAE,MAAK,MAAM,wNAAwNZ,MAAM,KAAKyF,SAAQ,SAAS7E,GAAGmL,GAAEnL,GAAG,IAAIkL,GAAElL,EAAE,GAAE,EAAGA,EAAEkY,cAAc,MAAK,MACzZ,CAAC,UAAU,WAAW,QAAQ,YAAYrT,SAAQ,SAAS7E,GAAGmL,GAAEnL,GAAG,IAAIkL,GAAElL,EAAE,GAAE,EAAGA,EAAE,MAAK,MAAM,CAAC,UAAU,YAAY6E,SAAQ,SAAS7E,GAAGmL,GAAEnL,GAAG,IAAIkL,GAAElL,EAAE,GAAE,EAAGA,EAAE,MAAK,MAAM,CAAC,OAAO,OAAO,OAAO,QAAQ6E,SAAQ,SAAS7E,GAAGmL,GAAEnL,GAAG,IAAIkL,GAAElL,EAAE,GAAE,EAAGA,EAAE,MAAK,MAAM,CAAC,UAAU,SAAS6E,SAAQ,SAAS7E,GAAGmL,GAAEnL,GAAG,IAAIkL,GAAElL,EAAE,GAAE,EAAGA,EAAEkY,cAAc,MAAK,MAAM,IAAIinH,GAAG,gBAAgB,SAASC,GAAGp/H,GAAG,OAAOA,EAAE,GAAGJ,cAGtM,SAASy/H,GAAGr/H,GAAG,cAAcA,GAAG,IAAK,UAAU,IAAK,SAAS,IAAK,SAAS,IAAK,SAAS,IAAK,YAAY,OAAOA,EAAE,QAAQ,MAAM,IAC1T,SAASs/H,GAAGt/H,EAAEC,EAAEoL,EAAExB,GAAG,IAAIzW,EAAE+X,GAAE1W,eAAewL,GAAGkL,GAAElL,GAAG,MAAW,OAAO7M,EAAE,IAAIA,EAAE+I,MAAK0N,IAAO,EAAE5J,EAAExQ,SAAS,MAAMwQ,EAAE,IAAI,MAAMA,EAAE,MAAI,MAAMA,EAAE,IAAI,MAAMA,EAAE,QAPnJ,SAAYD,EAAEC,EAAEoL,EAAExB,GAAG,GAAG,OAAO5J,GAAG,qBAAqBA,GAD4D,SAAYD,EAAEC,EAAEoL,EAAExB,GAAG,GAAG,OAAOwB,GAAG,IAAIA,EAAElP,KAAK,OAAM,EAAG,cAAc8D,GAAG,IAAK,WAAW,IAAK,SAAS,OAAM,EAAG,IAAK,UAAU,OAAG4J,IAAc,OAAOwB,GAASA,EAAEyzH,gBAAmD,WAAnC9+H,EAAEA,EAAEkY,cAAcliB,MAAM,EAAE,KAAsB,UAAUgK,GAAE,QAAQ,OAAM,GACnTu/H,CAAGv/H,EAAEC,EAAEoL,EAAExB,GAAG,OAAM,EAAG,GAAGA,EAAE,OAAM,EAAG,GAAG,OAAOwB,EAAE,OAAOA,EAAElP,MAAM,KAAK,EAAE,OAAO8D,EAAE,KAAK,EAAE,OAAM,IAAKA,EAAE,KAAK,EAAE,OAAOyB,MAAMzB,GAAG,KAAK,EAAE,OAAOyB,MAAMzB,IAAI,EAAEA,EAAE,OAAM,EAOrDu/H,CAAGv/H,EAAEoL,EAAEjY,EAAEyW,KAAKwB,EAAE,MAAMxB,GAAG,OAAOzW,EARhM,SAAY4M,GAAG,QAAG2+H,GAAG5oI,KAAK8oI,GAAG7+H,KAAe2+H,GAAG5oI,KAAK6oI,GAAG5+H,KAAe0+H,GAAG71C,KAAK7oF,GAAU6+H,GAAG7+H,IAAG,GAAG4+H,GAAG5+H,IAAG,GAAS,IAQkFy/H,CAAGx/H,KAAK,OAAOoL,EAAErL,EAAEkoD,gBAAgBjoD,GAAGD,EAAEmoD,aAAaloD,EAAE,GAAGoL,IAAIjY,EAAE6rI,gBAAgBj/H,EAAE5M,EAAEyB,cAAc,OAAOwW,EAAE,IAAIjY,EAAE+I,MAAQ,GAAGkP,GAAGpL,EAAE7M,EAAE2rI,cAAcl1H,EAAEzW,EAAE4rI,mBAAmB,OAAO3zH,EAAErL,EAAEkoD,gBAAgBjoD,IAAaoL,EAAE,KAAXjY,EAAEA,EAAE+I,OAAc,IAAI/I,IAAG,IAAKiY,EAAE,GAAG,GAAGA,EAAExB,EAAE7J,EAAE0/H,eAAe71H,EAAE5J,EAAEoL,GAAGrL,EAAEmoD,aAAaloD,EAAEoL,MAC5d,SAASs0H,GAAG3/H,GAAG,IAAIC,EAAED,EAAE7D,KAAK,OAAO6D,EAAEA,EAAE4/H,WAAW,UAAU5/H,EAAEkY,gBAAgB,aAAajY,GAAG,UAAUA,GAEpF,SAAS4/H,GAAG7/H,GAAGA,EAAE8/H,gBAAgB9/H,EAAE8/H,cADvD,SAAY9/H,GAAG,IAAIC,EAAE0/H,GAAG3/H,GAAG,UAAU,QAAQqL,EAAEvb,OAAOgM,yBAAyBkE,EAAEnP,YAAYR,UAAU4P,GAAG4J,EAAE,GAAG7J,EAAEC,GAAG,IAAID,EAAEvL,eAAewL,IAAI,qBAAqBoL,GAAG,oBAAoBA,EAAE3P,KAAK,oBAAoB2P,EAAErG,IAAI,CAAC,IAAI5R,EAAEiY,EAAE3P,IAAIpI,EAAE+X,EAAErG,IAAiL,OAA7KlV,OAAOC,eAAeiQ,EAAEC,EAAE,CAACrQ,cAAa,EAAG8L,IAAI,WAAW,OAAOtI,EAAE2C,KAAK3E,OAAO4T,IAAI,SAAShF,GAAG6J,EAAE,GAAG7J,EAAE1M,EAAEyC,KAAK3E,KAAK4O,MAAMlQ,OAAOC,eAAeiQ,EAAEC,EAAE,CAACtQ,WAAW0b,EAAE1b,aAAmB,CAACozF,SAAS,WAAW,OAAOl5E,GAAGk2H,SAAS,SAAS//H,GAAG6J,EAAE,GAAG7J,GAAGggI,aAAa,WAAWhgI,EAAE8/H,cACxf,YAAY9/H,EAAEC,MAAuDggI,CAAGjgI,IAAI,SAASkgI,GAAGlgI,GAAG,IAAIA,EAAE,OAAM,EAAG,IAAIC,EAAED,EAAE8/H,cAAc,IAAI7/H,EAAE,OAAM,EAAG,IAAIoL,EAAEpL,EAAE8iF,WAAel5E,EAAE,GAAqD,OAAlD7J,IAAI6J,EAAE81H,GAAG3/H,GAAGA,EAAEmgI,QAAQ,OAAO,QAAQngI,EAAElP,QAAOkP,EAAE6J,KAAawB,IAAGpL,EAAE8/H,SAAS//H,IAAG,GAAO,SAASogI,GAAGpgI,EAAEC,GAAG,IAAIoL,EAAEpL,EAAEkgI,QAAQ,OAAOhtI,EAAE,GAAG8M,EAAE,CAACogI,oBAAe,EAAO5jI,kBAAa,EAAO3L,WAAM,EAAOqvI,QAAQ,MAAM90H,EAAEA,EAAErL,EAAEsgI,cAAcC,iBACzY,SAASC,GAAGxgI,EAAEC,GAAG,IAAIoL,EAAE,MAAMpL,EAAExD,aAAa,GAAGwD,EAAExD,aAAaoN,EAAE,MAAM5J,EAAEkgI,QAAQlgI,EAAEkgI,QAAQlgI,EAAEogI,eAAeh1H,EAAEg0H,GAAG,MAAMp/H,EAAEnP,MAAMmP,EAAEnP,MAAMua,GAAGrL,EAAEsgI,cAAc,CAACC,eAAe12H,EAAE42H,aAAap1H,EAAEq1H,WAAW,aAAazgI,EAAE9D,MAAM,UAAU8D,EAAE9D,KAAK,MAAM8D,EAAEkgI,QAAQ,MAAMlgI,EAAEnP,OAAO,SAAS6vI,GAAG3gI,EAAEC,GAAe,OAAZA,EAAEA,EAAEkgI,UAAiBb,GAAGt/H,EAAE,UAAUC,GAAE,GACjU,SAAS2gI,GAAG5gI,EAAEC,GAAG0gI,GAAG3gI,EAAEC,GAAG,IAAIoL,EAAEg0H,GAAGp/H,EAAEnP,OAAO+Y,EAAE5J,EAAE9D,KAAK,GAAG,MAAMkP,EAAK,WAAWxB,GAAM,IAAIwB,GAAG,KAAKrL,EAAElP,OAAOkP,EAAElP,OAAOua,KAAErL,EAAElP,MAAM,GAAGua,GAAOrL,EAAElP,QAAQ,GAAGua,IAAIrL,EAAElP,MAAM,GAAGua,QAAQ,GAAG,WAAWxB,GAAG,UAAUA,EAA8B,YAA3B7J,EAAEkoD,gBAAgB,SAAgBjoD,EAAExL,eAAe,SAASosI,GAAG7gI,EAAEC,EAAE9D,KAAKkP,GAAGpL,EAAExL,eAAe,iBAAiBosI,GAAG7gI,EAAEC,EAAE9D,KAAKkjI,GAAGp/H,EAAExD,eAAe,MAAMwD,EAAEkgI,SAAS,MAAMlgI,EAAEogI,iBAAiBrgI,EAAEqgI,iBAAiBpgI,EAAEogI,gBACnZ,SAASS,GAAG9gI,EAAEC,EAAEoL,GAAG,GAAGpL,EAAExL,eAAe,UAAUwL,EAAExL,eAAe,gBAAgB,CAAC,IAAIoV,EAAE5J,EAAE9D,KAAK,KAAK,WAAW0N,GAAG,UAAUA,QAAG,IAAS5J,EAAEnP,OAAO,OAAOmP,EAAEnP,OAAO,OAAOmP,EAAE,GAAGD,EAAEsgI,cAAcG,aAAap1H,GAAGpL,IAAID,EAAElP,QAAQkP,EAAElP,MAAMmP,GAAGD,EAAEvD,aAAawD,EAAW,MAAToL,EAAErL,EAAE+c,QAAc/c,EAAE+c,KAAK,IAAI/c,EAAEqgI,gBAAgBrgI,EAAEqgI,eAAergI,EAAEqgI,iBAAiBrgI,EAAEsgI,cAAcC,eAAe,KAAKl1H,IAAIrL,EAAE+c,KAAK1R,GAC1X,SAASw1H,GAAG7gI,EAAEC,EAAEoL,GAAM,WAAWpL,GAAGD,EAAE+tF,cAAcgzC,gBAAgB/gI,IAAE,MAAMqL,EAAErL,EAAEvD,aAAa,GAAGuD,EAAEsgI,cAAcG,aAAazgI,EAAEvD,eAAe,GAAG4O,IAAIrL,EAAEvD,aAAa,GAAG4O,IAAwF,SAAS21H,GAAGhhI,EAAEC,GAA6D,OAA1DD,EAAE7M,EAAE,CAACovF,cAAS,GAAQtiF,IAAMA,EAAlI,SAAYD,GAAG,IAAIC,EAAE,GAAuD,OAApD03H,EAAGO,SAASrzH,QAAQ7E,GAAE,SAASA,GAAG,MAAMA,IAAIC,GAAGD,MAAYC,EAAiDghI,CAAGhhI,EAAEsiF,aAAUviF,EAAEuiF,SAAStiF,GAASD,EACjV,SAASkhI,GAAGlhI,EAAEC,EAAEoL,EAAExB,GAAe,GAAZ7J,EAAEA,EAAE1B,QAAW2B,EAAE,CAACA,EAAE,GAAG,IAAI,IAAI7M,EAAE,EAAEA,EAAEiY,EAAE5b,OAAO2D,IAAI6M,EAAE,IAAIoL,EAAEjY,KAAI,EAAG,IAAIiY,EAAE,EAAEA,EAAErL,EAAEvQ,OAAO4b,IAAIjY,EAAE6M,EAAExL,eAAe,IAAIuL,EAAEqL,GAAGva,OAAOkP,EAAEqL,GAAG81H,WAAW/tI,IAAI4M,EAAEqL,GAAG81H,SAAS/tI,GAAGA,GAAGyW,IAAI7J,EAAEqL,GAAG+1H,iBAAgB,OAAQ,CAAmB,IAAlB/1H,EAAE,GAAGg0H,GAAGh0H,GAAGpL,EAAE,KAAS7M,EAAE,EAAEA,EAAE4M,EAAEvQ,OAAO2D,IAAI,CAAC,GAAG4M,EAAE5M,GAAGtC,QAAQua,EAAiD,OAA9CrL,EAAE5M,GAAG+tI,UAAS,OAAGt3H,IAAI7J,EAAE5M,GAAGguI,iBAAgB,IAAW,OAAOnhI,GAAGD,EAAE5M,GAAG4tC,WAAW/gC,EAAED,EAAE5M,IAAI,OAAO6M,IAAIA,EAAEkhI,UAAS,IACpY,SAASE,GAAGrhI,EAAEC,GAAG,GAAG,MAAMA,EAAEqhI,wBAAwB,MAAMxpI,MAAMwpG,EAAE,KAAK,OAAOnuG,EAAE,GAAG8M,EAAE,CAACnP,WAAM,EAAO2L,kBAAa,EAAO8lF,SAAS,GAAGviF,EAAEsgI,cAAcG,eAAe,SAASc,GAAGvhI,EAAEC,GAAG,IAAIoL,EAAEpL,EAAEnP,MAAM,GAAG,MAAMua,EAAE,CAA+B,GAA9BA,EAAEpL,EAAExD,aAA6B,OAAhBwD,EAAEA,EAAEsiF,UAAoB,CAAC,GAAG,MAAMl3E,EAAE,MAAMvT,MAAMwpG,EAAE,KAAK,GAAGvuG,MAAMC,QAAQiN,GAAG,CAAC,KAAK,GAAGA,EAAExQ,QAAQ,MAAMqI,MAAMwpG,EAAE,KAAKrhG,EAAEA,EAAE,GAAGoL,EAAEpL,EAAE,MAAMoL,IAAIA,EAAE,IAAIrL,EAAEsgI,cAAc,CAACG,aAAapB,GAAGh0H,IAC3Y,SAASm2H,GAAGxhI,EAAEC,GAAG,IAAIoL,EAAEg0H,GAAGp/H,EAAEnP,OAAO+Y,EAAEw1H,GAAGp/H,EAAExD,cAAc,MAAM4O,KAAIA,EAAE,GAAGA,KAAMrL,EAAElP,QAAQkP,EAAElP,MAAMua,GAAG,MAAMpL,EAAExD,cAAcuD,EAAEvD,eAAe4O,IAAIrL,EAAEvD,aAAa4O,IAAI,MAAMxB,IAAI7J,EAAEvD,aAAa,GAAGoN,GAAG,SAAS43H,GAAGzhI,GAAG,IAAIC,EAAED,EAAE0hI,YAAYzhI,IAAID,EAAEsgI,cAAcG,cAAc,KAAKxgI,GAAG,OAAOA,IAAID,EAAElP,MAAMmP,GAb/R,0jCAA0jCb,MAAM,KAAKyF,SAAQ,SAAS7E,GAAG,IAAIC,EAAED,EAAE+X,QAAQonH,GACzmCC,IAAIj0H,GAAElL,GAAG,IAAIiL,GAAEjL,EAAE,GAAE,EAAGD,EAAE,MAAK,MAAM,2EAA2EZ,MAAM,KAAKyF,SAAQ,SAAS7E,GAAG,IAAIC,EAAED,EAAE+X,QAAQonH,GAAGC,IAAIj0H,GAAElL,GAAG,IAAIiL,GAAEjL,EAAE,GAAE,EAAGD,EAAE,gCAA+B,MAAM,CAAC,WAAW,WAAW,aAAa6E,SAAQ,SAAS7E,GAAG,IAAIC,EAAED,EAAE+X,QAAQonH,GAAGC,IAAIj0H,GAAElL,GAAG,IAAIiL,GAAEjL,EAAE,GAAE,EAAGD,EAAE,wCAAuC,MAAM,CAAC,WAAW,eAAe6E,SAAQ,SAAS7E,GAAGmL,GAAEnL,GAAG,IAAIkL,GAAElL,EAAE,GAAE,EAAGA,EAAEkY,cAAc,MAAK,MACnc/M,GAAEw2H,UAAU,IAAIz2H,GAAE,YAAY,GAAE,EAAG,aAAa,gCAA+B,GAAI,CAAC,MAAM,OAAO,SAAS,cAAcrG,SAAQ,SAAS7E,GAAGmL,GAAEnL,GAAG,IAAIkL,GAAElL,EAAE,GAAE,EAAGA,EAAEkY,cAAc,MAAK,MAW+G,IAAI0pH,GAAS,+BAATA,GAAwF,6BAC9X,SAASC,GAAG7hI,GAAG,OAAOA,GAAG,IAAK,MAAM,MAAM,6BAA6B,IAAK,OAAO,MAAM,qCAAqC,QAAQ,MAAM,gCAAgC,SAAS8hI,GAAG9hI,EAAEC,GAAG,OAAO,MAAMD,GAAG,iCAAiCA,EAAE6hI,GAAG5hI,GAAG,+BAA+BD,GAAG,kBAAkBC,EAAE,+BAA+BD,EAC3U,IAAI+hI,GAAGC,GAAG,SAAShiI,GAAG,MAAM,qBAAqBiiI,OAAOA,MAAMC,wBAAwB,SAASjiI,EAAEoL,EAAExB,EAAEzW,GAAG6uI,MAAMC,yBAAwB,WAAW,OAAOliI,EAAEC,EAAEoL,OAAUrL,EAA5J,EAA+J,SAASA,EAAEC,GAAG,GAAGD,EAAEmiI,eAAeP,IAAQ,cAAc5hI,EAAEA,EAAEy7F,UAAUx7F,MAAM,CAA2F,KAA1F8hI,GAAGA,IAAI71G,SAASovD,cAAc,QAAUmgB,UAAU,QAAQx7F,EAAEk5E,UAAUrkF,WAAW,SAAamL,EAAE8hI,GAAGK,WAAWpiI,EAAEoiI,YAAYpiI,EAAEstF,YAAYttF,EAAEoiI,YAAY,KAAKniI,EAAEmiI,YAAYpiI,EAAEotF,YAAYntF,EAAEmiI,gBACjb,SAASC,GAAGriI,EAAEC,GAAG,GAAGA,EAAE,CAAC,IAAIoL,EAAErL,EAAEoiI,WAAW,GAAG/2H,GAAGA,IAAIrL,EAAEsiI,WAAW,IAAIj3H,EAAEk3H,SAAwB,YAAdl3H,EAAEm3H,UAAUviI,GAAUD,EAAE0hI,YAAYzhI,EAAE,SAASwiI,GAAGziI,EAAEC,GAAG,IAAIoL,EAAE,GAAkF,OAA/EA,EAAErL,EAAEkY,eAAejY,EAAEiY,cAAc7M,EAAE,SAASrL,GAAG,SAASC,EAAEoL,EAAE,MAAMrL,GAAG,MAAMC,EAASoL,EAAE,IAAIq3H,GAAG,CAACC,aAAaF,GAAG,YAAY,gBAAgBG,mBAAmBH,GAAG,YAAY,sBAAsBI,eAAeJ,GAAG,YAAY,kBAAkBK,cAAcL,GAAG,aAAa,kBAAkBM,GAAG,GAAGC,GAAG,GAC1M,SAASC,GAAGjjI,GAAG,GAAG+iI,GAAG/iI,GAAG,OAAO+iI,GAAG/iI,GAAG,IAAI0iI,GAAG1iI,GAAG,OAAOA,EAAE,IAAYqL,EAARpL,EAAEyiI,GAAG1iI,GAAK,IAAIqL,KAAKpL,EAAE,GAAGA,EAAExL,eAAe4W,IAAIA,KAAK23H,GAAG,OAAOD,GAAG/iI,GAAGC,EAAEoL,GAAG,OAAOrL,EAA9X89H,IAAKkF,GAAG92G,SAASovD,cAAc,OAAO9/D,MAAM,mBAAmBpW,gBAAgBs9H,GAAGC,aAAahoH,iBAAiB+nH,GAAGE,mBAAmBjoH,iBAAiB+nH,GAAGG,eAAeloH,WAAW,oBAAoBvV,eAAes9H,GAAGI,cAAc5gG,YAAwJ,IAAIghG,GAAGD,GAAG,gBAAgBE,GAAGF,GAAG,sBAAsBG,GAAGH,GAAG,kBAAkBI,GAAGJ,GAAG,iBAAiBK,GAAG,sNAAsNlkI,MAAM,KACpsB,SAASmkI,GAAGvjI,GAAG,IAAIC,EAAED,EAAEqL,EAAErL,EAAE,GAAGA,EAAEwjI,UAAU,KAAKvjI,EAAE49H,QAAQ59H,EAAEA,EAAE49H,WAAW,CAAC79H,EAAEC,EAAE,GAAO,KAAiB,MAArBA,EAAED,GAASyjI,aAAkBp4H,EAAEpL,EAAE49H,QAAQ79H,EAAEC,EAAE49H,aAAa79H,GAAG,OAAO,IAAIC,EAAEu9H,IAAInyH,EAAE,KAAK,SAASq4H,GAAG1jI,GAAG,GAAG,KAAKA,EAAEw9H,IAAI,CAAC,IAAIv9H,EAAED,EAAE2jI,cAAsE,GAAxD,OAAO1jI,IAAkB,QAAdD,EAAEA,EAAEwjI,aAAqBvjI,EAAED,EAAE2jI,gBAAmB,OAAO1jI,EAAE,OAAOA,EAAE2jI,WAAW,OAAO,KAAK,SAAShmH,GAAG5d,GAAG,GAAGujI,GAAGvjI,KAAKA,EAAE,MAAMlI,MAAMwpG,EAAE,MAEhK,SAASuiC,GAAG7jI,GAAW,KAARA,EADtN,SAAYA,GAAG,IAAIC,EAAED,EAAEwjI,UAAU,IAAIvjI,EAAE,CAAS,GAAG,QAAXA,EAAEsjI,GAAGvjI,IAAe,MAAMlI,MAAMwpG,EAAE,MAAM,OAAOrhG,IAAID,EAAE,KAAKA,EAAE,IAAI,IAAIqL,EAAErL,EAAE6J,EAAE5J,IAAI,CAAC,IAAI7M,EAAEiY,EAAEwyH,OAAO,GAAG,OAAOzqI,EAAE,MAAM,IAAIE,EAAEF,EAAEowI,UAAU,GAAG,OAAOlwI,EAAE,CAAY,GAAG,QAAduW,EAAEzW,EAAEyqI,QAAmB,CAACxyH,EAAExB,EAAE,SAAS,MAAM,GAAGzW,EAAE0wI,QAAQxwI,EAAEwwI,MAAM,CAAC,IAAIxwI,EAAEF,EAAE0wI,MAAMxwI,GAAG,CAAC,GAAGA,IAAI+X,EAAE,OAAOuS,GAAGxqB,GAAG4M,EAAE,GAAG1M,IAAIuW,EAAE,OAAO+T,GAAGxqB,GAAG6M,EAAE3M,EAAEA,EAAEywI,QAAQ,MAAMjsI,MAAMwpG,EAAE,MAAO,GAAGj2F,EAAEwyH,SAASh0H,EAAEg0H,OAAOxyH,EAAEjY,EAAEyW,EAAEvW,MAAM,CAAC,IAAI,IAAIqY,GAAE,EAAG1B,EAAE7W,EAAE0wI,MAAM75H,GAAG,CAAC,GAAGA,IAAIoB,EAAE,CAACM,GAAE,EAAGN,EAAEjY,EAAEyW,EAAEvW,EAAE,MAAM,GAAG2W,IAAIJ,EAAE,CAAC8B,GAAE,EAAG9B,EAAEzW,EAAEiY,EAAE/X,EAAE,MAAM2W,EAAEA,EAAE85H,QAAQ,IAAIp4H,EAAE,CAAC,IAAI1B,EAAE3W,EAAEwwI,MAAM75H,GAAG,CAAC,GAAGA,IAC5foB,EAAE,CAACM,GAAE,EAAGN,EAAE/X,EAAEuW,EAAEzW,EAAE,MAAM,GAAG6W,IAAIJ,EAAE,CAAC8B,GAAE,EAAG9B,EAAEvW,EAAE+X,EAAEjY,EAAE,MAAM6W,EAAEA,EAAE85H,QAAQ,IAAIp4H,EAAE,MAAM7T,MAAMwpG,EAAE,OAAQ,GAAGj2F,EAAEm4H,YAAY35H,EAAE,MAAM/R,MAAMwpG,EAAE,MAAO,GAAG,IAAIj2F,EAAEmyH,IAAI,MAAM1lI,MAAMwpG,EAAE,MAAM,OAAOj2F,EAAE+wH,UAAUzyG,UAAUte,EAAErL,EAAEC,EAAmB+jI,CAAGhkI,IAAS,OAAO,KAAK,IAAI,IAAIC,EAAED,IAAI,CAAC,GAAG,IAAIC,EAAEu9H,KAAK,IAAIv9H,EAAEu9H,IAAI,OAAOv9H,EAAE,GAAGA,EAAE6jI,MAAM7jI,EAAE6jI,MAAMjG,OAAO59H,EAAEA,EAAEA,EAAE6jI,UAAU,CAAC,GAAG7jI,IAAID,EAAE,MAAM,MAAMC,EAAE8jI,SAAS,CAAC,IAAI9jI,EAAE49H,QAAQ59H,EAAE49H,SAAS79H,EAAE,OAAO,KAAKC,EAAEA,EAAE49H,OAAO59H,EAAE8jI,QAAQlG,OAAO59H,EAAE49H,OAAO59H,EAAEA,EAAE8jI,SAAS,OAAO,KAC5c,IAAIE,GAAGC,GAAGC,GAAGC,IAAG,EAAGC,GAAG,GAAGC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,IAAIn0G,IAAIo0G,GAAG,IAAIp0G,IAAIq0G,GAAG,GAAGC,GAAG,0QAA0QxlI,MAAM,KAAKylI,GAAG,gHAAgHzlI,MAAM,KAC7X,SAAS0lI,GAAG9kI,EAAEC,EAAEoL,EAAExB,GAAG,MAAM,CAACk7H,UAAU/kI,EAAEglI,aAAa/kI,EAAEglI,iBAAmB,GAAF55H,EAAK4lF,YAAYpnF,GAAG,SAASq7H,GAAGllI,EAAEC,GAAG,OAAOD,GAAG,IAAK,QAAQ,IAAK,OAAOskI,GAAG,KAAK,MAAM,IAAK,YAAY,IAAK,YAAYC,GAAG,KAAK,MAAM,IAAK,YAAY,IAAK,WAAWC,GAAG,KAAK,MAAM,IAAK,cAAc,IAAK,aAAaC,GAAGp9G,OAAOpnB,EAAEklI,WAAW,MAAM,IAAK,oBAAoB,IAAK,qBAAqBT,GAAGr9G,OAAOpnB,EAAEklI,YAC/d,SAASC,GAAGplI,EAAEC,EAAEoL,EAAExB,EAAEzW,GAAG,OAAG,OAAO4M,GAAGA,EAAEixF,cAAc79F,GAAS4M,EAAE8kI,GAAG7kI,EAAEoL,EAAExB,EAAEzW,GAAG,OAAO6M,IAAY,QAARA,EAAEolI,GAAGplI,KAAaikI,GAAGjkI,IAAID,IAAEA,EAAEilI,kBAAkBp7H,EAAS7J,GAC9I,SAASslI,GAAGtlI,GAAG,IAAIC,EAAEslI,GAAGvlI,EAAE1Q,QAAQ,GAAG,OAAO2Q,EAAE,CAAC,IAAIoL,EAAEk4H,GAAGtjI,GAAG,GAAG,OAAOoL,EAAE,GAAW,MAARpL,EAAEoL,EAAEmyH,MAAY,GAAW,QAARv9H,EAAEyjI,GAAGr4H,IAAoF,OAAvErL,EAAE+kI,UAAU9kI,OAAEgmG,EAAEu/B,yBAAyBxlI,EAAEylI,UAAS,WAAWtB,GAAG94H,WAAkB,GAAG,IAAIpL,GAAGoL,EAAE+wH,UAAUsJ,QAA8D,YAArD1lI,EAAE+kI,UAAU,IAAI15H,EAAEmyH,IAAInyH,EAAE+wH,UAAUuJ,cAAc,MAAa3lI,EAAE+kI,UAAU,KAAK,SAASa,GAAG5lI,GAAG,GAAG,OAAOA,EAAE+kI,UAAU,OAAM,EAAG,IAAI9kI,EAAE4lI,GAAG7lI,EAAEglI,aAAahlI,EAAEilI,iBAAiBjlI,EAAEixF,aAAa,GAAG,OAAOhxF,EAAE,CAAC,IAAIoL,EAAEg6H,GAAGplI,GAAiC,OAA9B,OAAOoL,GAAG64H,GAAG74H,GAAGrL,EAAE+kI,UAAU9kI,GAAQ,EAAG,OAAM,EAC9d,SAAS6lI,GAAG9lI,EAAEC,EAAEoL,GAAGu6H,GAAG5lI,IAAIqL,EAAEgc,OAAOpnB,GAAG,SAAS8lI,KAAK,IAAI3B,IAAG,EAAG,EAAEC,GAAG50I,QAAQ,CAAC,IAAIuQ,EAAEqkI,GAAG,GAAG,GAAG,OAAOrkI,EAAE+kI,UAAU,CAAmB,QAAlB/kI,EAAEqlI,GAAGrlI,EAAE+kI,aAAqBd,GAAGjkI,GAAG,MAAM,IAAIC,EAAE4lI,GAAG7lI,EAAEglI,aAAahlI,EAAEilI,iBAAiBjlI,EAAEixF,aAAa,OAAOhxF,EAAED,EAAE+kI,UAAU9kI,EAAEokI,GAAGnoG,QAAQ,OAAOooG,IAAIsB,GAAGtB,MAAMA,GAAG,MAAM,OAAOC,IAAIqB,GAAGrB,MAAMA,GAAG,MAAM,OAAOC,IAAIoB,GAAGpB,MAAMA,GAAG,MAAMC,GAAG5/H,QAAQihI,IAAIpB,GAAG7/H,QAAQihI,IAAI,SAASE,GAAGhmI,EAAEC,GAAGD,EAAE+kI,YAAY9kI,IAAID,EAAE+kI,UAAU,KAAKX,KAAKA,IAAG,EAAGn+B,EAAEggC,0BAA0BhgC,EAAEigC,wBAAwBH,MAC7d,SAASI,GAAGnmI,GAAG,SAASC,EAAEA,GAAG,OAAO+lI,GAAG/lI,EAAED,GAAG,GAAG,EAAEqkI,GAAG50I,OAAO,CAACu2I,GAAG3B,GAAG,GAAGrkI,GAAG,IAAI,IAAIqL,EAAE,EAAEA,EAAEg5H,GAAG50I,OAAO4b,IAAI,CAAC,IAAIxB,EAAEw6H,GAAGh5H,GAAGxB,EAAEk7H,YAAY/kI,IAAI6J,EAAEk7H,UAAU,OAA+F,IAAxF,OAAOT,IAAI0B,GAAG1B,GAAGtkI,GAAG,OAAOukI,IAAIyB,GAAGzB,GAAGvkI,GAAG,OAAOwkI,IAAIwB,GAAGxB,GAAGxkI,GAAGykI,GAAG5/H,QAAQ5E,GAAGykI,GAAG7/H,QAAQ5E,GAAOoL,EAAE,EAAEA,EAAEs5H,GAAGl1I,OAAO4b,KAAIxB,EAAE86H,GAAGt5H,IAAK05H,YAAY/kI,IAAI6J,EAAEk7H,UAAU,MAAM,KAAK,EAAEJ,GAAGl1I,QAAiB,QAAR4b,EAAEs5H,GAAG,IAAYI,WAAYO,GAAGj6H,GAAG,OAAOA,EAAE05H,WAAWJ,GAAGzoG,QAC/X,SAASkqG,GAAGpmI,GAA6F,OAA1FA,EAAEA,EAAE1Q,QAAQ0Q,EAAEqmI,YAAYjhI,QAASkhI,0BAA0BtmI,EAAEA,EAAEsmI,yBAAgC,IAAItmI,EAAEuiI,SAASviI,EAAEqsB,WAAWrsB,EAAE,SAASumI,GAAGvmI,GAAG,GAAGA,EAAEA,EAAE69H,aAAa79H,GAAG,IAAIA,EAAEw9H,KAAK,OAAOx9H,GAAI,KAAK,SAASwmI,GAAGxmI,EAAEC,EAAEoL,IAAMpL,EAAEk8H,EAAGn8H,EAAEqL,EAAEo7H,eAAetM,wBAAwBl6H,OAAIoL,EAAEqwH,mBAAmBJ,EAAGjwH,EAAEqwH,mBAAmBz7H,GAAGoL,EAAEswH,mBAAmBL,EAAGjwH,EAAEswH,mBAAmB37H,IACtX,SAAS0mI,GAAG1mI,GAAG,GAAGA,GAAGA,EAAEymI,eAAetM,wBAAwB,CAAC,IAAI,IAAIl6H,EAAED,EAAE2mI,YAAYt7H,EAAE,GAAGpL,GAAGoL,EAAE5U,KAAKwJ,GAAGA,EAAEsmI,GAAGtmI,GAAG,IAAIA,EAAEoL,EAAE5b,OAAO,EAAEwQ,KAAKumI,GAAGn7H,EAAEpL,GAAG,WAAWD,GAAG,IAAIC,EAAE,EAAEA,EAAEoL,EAAE5b,OAAOwQ,IAAIumI,GAAGn7H,EAAEpL,GAAG,UAAUD,IAAI,SAAS4mI,GAAG5mI,EAAEC,EAAEoL,GAAGrL,GAAGqL,GAAGA,EAAEo7H,eAAepM,mBAAmBp6H,EAAEk8H,EAAGn8H,EAAEqL,EAAEo7H,eAAepM,qBAAqBhvH,EAAEqwH,mBAAmBJ,EAAGjwH,EAAEqwH,mBAAmBz7H,GAAGoL,EAAEswH,mBAAmBL,EAAGjwH,EAAEswH,mBAAmB37H,IAAI,SAAS6mI,GAAG7mI,GAAGA,GAAGA,EAAEymI,eAAepM,kBAAkBuM,GAAG5mI,EAAE2mI,YAAY,KAAK3mI,GAChe,SAAS8mI,GAAG9mI,GAAGu7H,EAAGv7H,EAAE0mI,IAAI,SAASK,KAAK,OAAM,EAAG,SAASC,KAAK,OAAM,EAAG,SAAS57H,GAAEpL,EAAEC,EAAEoL,EAAExB,GAA4F,IAAI,IAAIzW,KAAjGhC,KAAKq1I,eAAezmI,EAAE5O,KAAKu1I,YAAY1mI,EAAE7O,KAAK6/F,YAAY5lF,EAAErL,EAAE5O,KAAKP,YAAYo2I,UAAyBjnI,EAAEvL,eAAerB,MAAM6M,EAAED,EAAE5M,IAAIhC,KAAKgC,GAAG6M,EAAEoL,GAAG,WAAWjY,EAAEhC,KAAK9B,OAAOua,EAAEzY,KAAKgC,GAAGiY,EAAEjY,IAAgI,OAA5HhC,KAAK81I,oBAAoB,MAAM77H,EAAE87H,iBAAiB97H,EAAE87H,kBAAiB,IAAK97H,EAAE+7H,aAAaL,GAAGC,GAAG51I,KAAKwqI,qBAAqBoL,GAAU51I,KAG3J,SAASi2I,GAAGrnI,EAAEC,EAAEoL,EAAExB,GAAG,GAAGzY,KAAKk2I,UAAU73I,OAAO,CAAC,IAAI2D,EAAEhC,KAAKk2I,UAAUxxG,MAA2B,OAArB1kC,KAAK2E,KAAK3C,EAAE4M,EAAEC,EAAEoL,EAAExB,GAAUzW,EAAE,OAAO,IAAIhC,KAAK4O,EAAEC,EAAEoL,EAAExB,GAC7X,SAAS09H,GAAGvnI,GAAG,KAAKA,aAAa5O,MAAM,MAAM0G,MAAMwpG,EAAE,MAAMthG,EAAEwnI,aAAa,GAAGp2I,KAAKk2I,UAAU73I,QAAQ2B,KAAKk2I,UAAU7wI,KAAKuJ,GAAG,SAASynI,GAAGznI,GAAGA,EAAEsnI,UAAU,GAAGtnI,EAAE0nI,UAAUL,GAAGrnI,EAAE87H,QAAQyL,GAHlLp0I,EAAEiY,GAAE/a,UAAU,CAACkhG,eAAe,WAAWngG,KAAK+1I,kBAAiB,EAAG,IAAInnI,EAAE5O,KAAK6/F,YAAYjxF,IAAIA,EAAEuxF,eAAevxF,EAAEuxF,iBAAiB,mBAAmBvxF,EAAEonI,cAAcpnI,EAAEonI,aAAY,GAAIh2I,KAAK81I,mBAAmBH,KAAKv1C,gBAAgB,WAAW,IAAIxxF,EAAE5O,KAAK6/F,YAAYjxF,IAAIA,EAAEwxF,gBAAgBxxF,EAAEwxF,kBAAkB,mBAAmBxxF,EAAE2nI,eAAe3nI,EAAE2nI,cAAa,GAAIv2I,KAAKwqI,qBAAqBmL,KAAKa,QAAQ,WAAWx2I,KAAKyqI,aAAakL,IAAIlL,aAAamL,GAAGQ,WAAW,WAAW,IACpdvnI,EADwdD,EAAE5O,KAAKP,YAAYo2I,UACze,IAAIhnI,KAAKD,EAAE5O,KAAK6O,GAAG,KAAK7O,KAAK6/F,YAAY7/F,KAAKu1I,YAAYv1I,KAAKq1I,eAAe,KAAKr1I,KAAKwqI,qBAAqBxqI,KAAK81I,mBAAmBF,GAAG51I,KAAKuqI,mBAAmBvqI,KAAKsqI,mBAAmB,QAAQtwH,GAAE67H,UAAU,CAAC9qI,KAAK,KAAK7M,OAAO,KAAK8rI,cAAc,WAAW,OAAO,MAAMyM,WAAW,KAAKC,QAAQ,KAAKh/E,WAAW,KAAKi/E,UAAU,SAAS/nI,GAAG,OAAOA,EAAE+nI,WAAWzyG,KAAKC,OAAO4xG,iBAAiB,KAAKa,UAAU,MAC9Y58H,GAAE9W,OAAO,SAAS0L,GAAG,SAASC,KAAK,SAASoL,IAAI,OAAOxB,EAAErY,MAAMJ,KAAKG,WAAW,IAAIsY,EAAEzY,KAAK6O,EAAE5P,UAAUwZ,EAAExZ,UAAU,IAAI+C,EAAE,IAAI6M,EAAmH,OAAjH9M,EAAEC,EAAEiY,EAAEhb,WAAWgb,EAAEhb,UAAU+C,EAAEiY,EAAEhb,UAAUQ,YAAYwa,EAAEA,EAAE47H,UAAU9zI,EAAE,GAAG0W,EAAEo9H,UAAUjnI,GAAGqL,EAAE/W,OAAOuV,EAAEvV,OAAOmzI,GAAGp8H,GAAUA,GAAGo8H,GAAGr8H,IACvE,IAAI68H,GAAG78H,GAAE9W,OAAO,CAAC4zI,cAAc,KAAKC,YAAY,KAAKC,cAAc,OAAOC,GAAGj9H,GAAE9W,OAAO,CAACg0I,cAAc,SAAStoI,GAAG,MAAM,kBAAkBA,EAAEA,EAAEsoI,cAAcljI,OAAOkjI,iBAAiBC,GAAGn9H,GAAE9W,OAAO,CAACk0I,KAAK,KAAKC,OAAO,OAAOC,GAAGH,GAAGj0I,OAAO,CAACq0I,cAAc,OACza,SAASC,GAAG5oI,GAAG,IAAIC,EAAED,EAAE6oI,QAA+E,MAAvE,aAAa7oI,EAAgB,KAAbA,EAAEA,EAAE8oI,WAAgB,KAAK7oI,IAAID,EAAE,IAAKA,EAAEC,EAAE,KAAKD,IAAIA,EAAE,IAAW,IAAIA,GAAG,KAAKA,EAAEA,EAAE,EAC7H,IAAI+oI,GAAG,CAACC,IAAI,SAASC,SAAS,IAAIC,KAAK,YAAYC,GAAG,UAAUC,MAAM,aAAaC,KAAK,YAAYC,IAAI,SAASC,IAAI,KAAKC,KAAK,cAAcC,KAAK,cAAcC,OAAO,aAAaC,gBAAgB,gBAAgBC,GAAG,CAAC7+H,EAAE,YAAYC,EAAE,MAAMqnG,GAAG,QAAQC,GAAG,QAAQW,GAAG,QAAQR,GAAG,UAAUC,GAAG,MAAMC,GAAG,QAAQC,GAAG,WAAWi3B,GAAG,SAASx2B,GAAG,IAAIy2B,GAAG,SAASC,GAAG,WAAWC,GAAG,MAAMhyB,GAAG,OAAOiyB,GAAG,YAAYC,GAAG,UAAUC,GAAG,aAAalyB,GAAG,YAAYmyB,GAAG,SAASC,GAAG,SAASC,IAAI,KAAKC,IAAI,KAAKC,IAAI,KAAKC,IAAI,KAChfC,IAAI,KAAKC,IAAI,KAAKC,IAAI,KAAKC,IAAI,KAAKC,IAAI,KAAKC,IAAI,MAAMC,IAAI,MAAMC,IAAI,MAAMC,IAAI,UAAUC,IAAI,aAAaC,IAAI,QAAQC,GAAG,CAACC,IAAI,SAASC,QAAQ,UAAUC,KAAK,UAAUC,MAAM,YAAY,SAASC,GAAG1rI,GAAG,IAAIC,EAAE7O,KAAK6/F,YAAY,OAAOhxF,EAAE0rI,iBAAiB1rI,EAAE0rI,iBAAiB3rI,MAAIA,EAAEqrI,GAAGrrI,OAAMC,EAAED,GAAM,SAAS4rI,KAAK,OAAOF,GAQpI,IAPrL,IAAIzvI,GAAGssI,GAAGj0I,OAAO,CAACtE,IAAI,SAASgQ,GAAG,GAAGA,EAAEhQ,IAAI,CAAC,IAAIiQ,EAAE8oI,GAAG/oI,EAAEhQ,MAAMgQ,EAAEhQ,IAAI,GAAG,iBAAiBiQ,EAAE,OAAOA,EAAE,MAAM,aAAaD,EAAE7D,KAAc,MAAR6D,EAAE4oI,GAAG5oI,IAAU,QAAQ1I,OAAOC,aAAayI,GAAI,YAAYA,EAAE7D,MAAM,UAAU6D,EAAE7D,KAAKytI,GAAG5pI,EAAE6oI,UAAU,eAAe,IAAI/uD,SAAS,KAAK+xD,QAAQ,KAAKC,SAAS,KAAKC,OAAO,KAAKC,QAAQ,KAAK3sC,OAAO,KAAK5uE,OAAO,KAAKk7G,iBAAiBC,GAAG9C,SAAS,SAAS9oI,GAAG,MAAM,aAAaA,EAAE7D,KAAKysI,GAAG5oI,GAAG,GAAG6oI,QAAQ,SAAS7oI,GAAG,MAAM,YAAYA,EAAE7D,MAAM,UAAU6D,EAAE7D,KAAK6D,EAAE6oI,QAAQ,GAAGoD,MAAM,SAASjsI,GAAG,MAAM,aAC7fA,EAAE7D,KAAKysI,GAAG5oI,GAAG,YAAYA,EAAE7D,MAAM,UAAU6D,EAAE7D,KAAK6D,EAAE6oI,QAAQ,KAAKqD,GAAG,EAAEC,GAAG,EAAEC,IAAG,EAAGC,IAAG,EAAGC,GAAG/D,GAAGj0I,OAAO,CAACi4I,QAAQ,KAAKC,QAAQ,KAAKz+G,QAAQ,KAAKC,QAAQ,KAAKy+G,MAAM,KAAKC,MAAM,KAAKb,QAAQ,KAAKC,SAAS,KAAKC,OAAO,KAAKC,QAAQ,KAAKL,iBAAiBC,GAAGe,OAAO,KAAKC,QAAQ,KAAKjE,cAAc,SAAS3oI,GAAG,OAAOA,EAAE2oI,gBAAgB3oI,EAAE6sI,cAAc7sI,EAAEqmI,WAAWrmI,EAAE8sI,UAAU9sI,EAAE6sI,cAAcE,UAAU,SAAS/sI,GAAG,GAAG,cAAcA,EAAE,OAAOA,EAAE+sI,UAAU,IAAI9sI,EAAEisI,GAAgB,OAAbA,GAAGlsI,EAAEusI,QAAeH,GAAG,cAAcpsI,EAAE7D,KAAK6D,EAAEusI,QAC/etsI,EAAE,GAAGmsI,IAAG,EAAG,IAAIY,UAAU,SAAShtI,GAAG,GAAG,cAAcA,EAAE,OAAOA,EAAEgtI,UAAU,IAAI/sI,EAAEksI,GAAgB,OAAbA,GAAGnsI,EAAEwsI,QAAeH,GAAG,cAAcrsI,EAAE7D,KAAK6D,EAAEwsI,QAAQvsI,EAAE,GAAGosI,IAAG,EAAG,MAAMY,GAAGX,GAAGh4I,OAAO,CAAC6wI,UAAU,KAAKlnH,MAAM,KAAKoB,OAAO,KAAK6tH,SAAS,KAAKC,mBAAmB,KAAKC,MAAM,KAAKC,MAAM,KAAKC,MAAM,KAAKC,YAAY,KAAKC,UAAU,OAAOC,GAAGnB,GAAGh4I,OAAO,CAACo5I,aAAa,OAAOC,GAAGpF,GAAGj0I,OAAO,CAACk5B,QAAQ,KAAK4uE,cAAc,KAAKE,eAAe,KAAKyvC,OAAO,KAAKC,QAAQ,KAAKH,QAAQ,KAAKC,SAAS,KAAKH,iBAAiBC,KAAKgC,GAAGxiI,GAAE9W,OAAO,CAACO,aAAa,KAChgBszI,YAAY,KAAKC,cAAc,OAAOyF,GAAGvB,GAAGh4I,OAAO,CAACksD,OAAO,SAASxgD,GAAG,MAAM,WAAWA,EAAEA,EAAEwgD,OAAO,gBAAgBxgD,GAAGA,EAAE8tI,YAAY,GAAGrtF,OAAO,SAASzgD,GAAG,MAAM,WAAWA,EAAEA,EAAEygD,OAAO,gBAAgBzgD,GAAGA,EAAE+tI,YAAY,eAAe/tI,GAAGA,EAAEguI,WAAW,GAAGC,OAAO,KAAKC,UAAU,OAAOC,GAAG,CAAC,CAAC,OAAO,OAAO,GAAG,CAAC,SAAS,SAAS,GAAG,CAAC,QAAQ,QAAQ,GAAG,CAAC,QAAQ,QAAQ,GAAG,CAAC,cAAc,cAAc,GAAG,CAAC,OAAO,OAAO,GAAG,CAAC,MAAM,MAAM,GAAG,CAAC,WAAW,WAAW,GAAG,CAAC,WAAW,cAAc,GAAG,CAAC,UAAU,UAC9e,GAAG,CAAC,YAAY,YAAY,GAAG,CAAC,OAAO,OAAO,GAAG,CAAC,QAAQ,QAAQ,GAAG,CAAC,QAAQ,QAAQ,GAAG,CAAC,UAAU,UAAU,GAAG,CAAC,UAAU,UAAU,GAAG,CAAC,WAAW,WAAW,GAAG,CAAC,QAAQ,QAAQ,GAAG,CAAC,YAAY,YAAY,GAAG,CAAC,UAAU,UAAU,GAAG,CAAC,QAAQ,QAAQ,GAAG,CAAC,QAAQ,QAAQ,GAAG,CAAC,OAAO,OAAO,GAAG,CAAC,gBAAgB,gBAAgB,GAAG,CAAC,cAAc,cAAc,GAAG,CAAC,YAAY,YAAY,GAAG,CAAC,aAAa,aAAa,GAAG,CAAC,QAAQ,QAAQ,GAAG,CAAC,SAAS,SAAS,GAAG,CAAC,SAAS,SAAS,GAAG,CAAC,cAAc,cAClf,GAAG,CAAC,WAAW,WAAW,GAAG,CAAC,aAAa,aAAa,GAAG,CAAC,eAAe,eAAe,GAAG,CAAC,OAAO,OAAO,GAAG,CAAC,YAAY,YAAY,GAAG,CAAC,WAAW,WAAW,GAAG,CAAC,YAAY,YAAY,GAAG,CAAC,WAAW,WAAW,GAAG,CAAC,YAAY,YAAY,GAAG,CAAC,WAAW,WAAW,GAAG,CAAC,YAAY,YAAY,GAAG,CAAC,cAAc,cAAc,GAAG,CAAC,aAAa,aAAa,GAAG,CAAC,cAAc,cAAc,GAAG,CAAC,SAAS,SAAS,GAAG,CAAC,SAAS,SAAS,GAAG,CAAC,YAAY,YAAY,GAAG,CAAC,QAAQ,QAAQ,GAAG,CAAC,QAAQ,QAChf,GAAG,CAACjL,GAAG,eAAe,GAAG,CAACC,GAAG,qBAAqB,GAAG,CAACC,GAAG,iBAAiB,GAAG,CAAC,UAAU,UAAU,GAAG,CAAC,iBAAiB,iBAAiB,GAAG,CAAC,iBAAiB,iBAAiB,GAAG,CAAC,UAAU,UAAU,GAAG,CAAC,YAAY,YAAY,GAAG,CAAC,QAAQ,QAAQ,GAAG,CAAC,QAAQ,QAAQ,GAAG,CAAC,oBAAoB,oBAAoB,GAAG,CAAC,OAAO,OAAO,GAAG,CAAC,aAAa,aAAa,GAAG,CAAC,iBAAiB,iBAAiB,GAAG,CAAC,YAAY,YAAY,GAAG,CAAC,qBAAqB,qBAAqB,GAAG,CAAC,UAAU,UAAU,GAAG,CAAC,WAClf,WAAW,GAAG,CAAC,UAAU,UAAU,GAAG,CAAC,UAAU,UAAU,GAAG,CAAC,UAAU,UAAU,GAAG,CAAC,aAAa,aAAa,GAAG,CAACC,GAAG,gBAAgB,GAAG,CAAC,UAAU,UAAU,IAAI+K,GAAG,GAAGC,GAAG,GAAGC,GAAG,EAAOA,GAAGH,GAAG1+I,OAAO6+I,KAAK,CAAC,IAAIC,GAAGJ,GAAGG,IAAIE,GAAGD,GAAG,GAAGE,GAAGF,GAAG,GAAGG,GAAGH,GAAG,GAAGI,GAAG,MAAMF,GAAG,GAAG7uI,cAAc6uI,GAAGz4I,MAAM,IAAI44I,GAAG,CAACzU,wBAAwB,CAAC0U,QAAQF,GAAGG,SAASH,GAAG,WAAWnU,aAAa,CAACgU,IAAIO,cAAcL,IAAIN,GAAGK,IAAIG,GAAGP,GAAGG,IAAII,GACpZ,IAAII,GAAG,CAAC9U,WAAWkU,GAAGa,iBAAiB,SAASjvI,GAAW,YAAO,KAAfA,EAAEquI,GAAGruI,IAAqBA,EAAE+uI,cAAc,GAAG9U,cAAc,SAASj6H,EAAEC,EAAEoL,EAAExB,GAAG,IAAIzW,EAAEi7I,GAAGruI,GAAG,IAAI5M,EAAE,OAAO,KAAK,OAAO4M,GAAG,IAAK,WAAW,GAAG,IAAI4oI,GAAGv9H,GAAG,OAAO,KAAK,IAAK,UAAU,IAAK,QAAQrL,EAAE/D,GAAG,MAAM,IAAK,OAAO,IAAK,QAAQ+D,EAAE0oI,GAAG,MAAM,IAAK,QAAQ,GAAG,IAAIr9H,EAAEshI,OAAO,OAAO,KAAK,IAAK,WAAW,IAAK,WAAW,IAAK,YAAY,IAAK,YAAY,IAAK,UAAU,IAAK,WAAW,IAAK,YAAY,IAAK,cAAc3sI,EAAEssI,GAAG,MAAM,IAAK,OAAO,IAAK,UAAU,IAAK,YAAY,IAAK,WAAW,IAAK,YAAY,IAAK,WAAW,IAAK,YAAY,IAAK,OAAOtsI,EAC/kBytI,GAAG,MAAM,IAAK,cAAc,IAAK,WAAW,IAAK,YAAY,IAAK,aAAaztI,EAAE2tI,GAAG,MAAM,KAAKzK,GAAG,KAAKC,GAAG,KAAKC,GAAGpjI,EAAEioI,GAAG,MAAM,KAAK5E,GAAGrjI,EAAE4tI,GAAG,MAAM,IAAK,SAAS5tI,EAAEuoI,GAAG,MAAM,IAAK,QAAQvoI,EAAE6tI,GAAG,MAAM,IAAK,OAAO,IAAK,MAAM,IAAK,QAAQ7tI,EAAEqoI,GAAG,MAAM,IAAK,oBAAoB,IAAK,qBAAqB,IAAK,gBAAgB,IAAK,cAAc,IAAK,cAAc,IAAK,aAAa,IAAK,cAAc,IAAK,YAAYroI,EAAEitI,GAAG,MAAM,QAAQjtI,EAAEoL,GAA+B,OAAN07H,GAAvB7mI,EAAED,EAAE0nI,UAAUt0I,EAAE6M,EAAEoL,EAAExB,IAAgB5J,IAAIivI,GAAGjpC,EAAEkpC,8BACxdC,GAAGnpC,EAAEu/B,yBAAyB6J,GAAGL,GAAGC,iBAAuBK,GAAG,GAC9D,SAASC,GAAGvvI,GAAG,IAAIC,EAAED,EAAEwvI,WAAWnkI,EAAEpL,EAAE,EAAE,CAAC,IAAIoL,EAAE,CAACrL,EAAEyvI,UAAUh5I,KAAK4U,GAAG,MAAM,IAAIxB,EAAEwB,EAAE,GAAG,IAAIxB,EAAE2zH,IAAI3zH,EAAEA,EAAEuyH,UAAUuJ,kBAAkB,CAAC,KAAK97H,EAAEg0H,QAAQh0H,EAAEA,EAAEg0H,OAAOh0H,EAAE,IAAIA,EAAE2zH,IAAI,KAAK3zH,EAAEuyH,UAAUuJ,cAAc,IAAI97H,EAAE,MAAc,KAAR5J,EAAEoL,EAAEmyH,MAAW,IAAIv9H,GAAGD,EAAEyvI,UAAUh5I,KAAK4U,GAAGA,EAAEk6H,GAAG17H,SAASwB,GAAG,IAAIA,EAAE,EAAEA,EAAErL,EAAEyvI,UAAUhgJ,OAAO4b,IAAI,CAACpL,EAAED,EAAEyvI,UAAUpkI,GAAG,IAAIjY,EAAEgzI,GAAGpmI,EAAEixF,aAAapnF,EAAE7J,EAAEglI,aAAa,IAAI,IAAI1xI,EAAE0M,EAAEixF,YAAYtlF,EAAE3L,EAAEilI,iBAAiBh7H,EAAE,KAAK/L,EAAE,EAAEA,EAAE87H,EAAGvqI,OAAOyO,IAAI,CAAC,IAAI8L,EAAEgwH,EAAG97H,GAAG8L,IAAIA,EAAEA,EAAEiwH,cAAcpwH,EAAE5J,EAAE3M,EAAEF,EAAEuY,MAAM1B,EAAEqxH,EAAGrxH,EAAED,IAAI+xH,EAAG9xH,IAC/e,IAAIylI,IAAG,EAAG,SAASz8I,GAAE+M,EAAEC,GAAG0vI,GAAG1vI,EAAED,GAAE,GAAI,SAAS2vI,GAAG3vI,EAAEC,EAAEoL,GAAG,OAAOgkI,GAAGpvI,IAAI,KAAK,EAAE,IAAI4J,EAAE+lI,GAAGniG,KAAK,KAAKxtC,EAAE,GAAG,MAAM,KAAK,EAAE4J,EAAEgmI,GAAGpiG,KAAK,KAAKxtC,EAAE,GAAG,MAAM,QAAQ4J,EAAEimI,GAAGriG,KAAK,KAAKxtC,EAAE,GAAGoL,EAAErL,EAAE0vB,iBAAiBzvB,EAAE4J,GAAE,GAAI7J,EAAE0vB,iBAAiBzvB,EAAE4J,GAAE,GAAI,SAAS+lI,GAAG5vI,EAAEC,EAAEoL,GAAGkzH,IAAIF,KAAK,IAAIx0H,EAAEimI,GAAG18I,EAAEmrI,GAAGA,IAAG,EAAG,IAAIt0G,GAAGpgB,EAAE7J,EAAEC,EAAEoL,GAAb,SAAyBkzH,GAAGnrI,IAAIqrI,MAAM,SAASoR,GAAG7vI,EAAEC,EAAEoL,GAAG+jI,GAAGF,GAAGY,GAAGriG,KAAK,KAAKztC,EAAEC,EAAEoL,IAChW,SAAS0kI,GAAG/vI,EAAEC,EAAEoL,EAAExB,GAAG,GAAGylI,GAAG7/I,OAAO,CAAC,IAAI2D,EAAEk8I,GAAGx5G,MAAM1iC,EAAE4xI,aAAahlI,EAAE5M,EAAE6xI,iBAAiBhlI,EAAE7M,EAAE69F,YAAY5lF,EAAEjY,EAAEo8I,WAAW3lI,EAAE7J,EAAE5M,OAAO4M,EAAE,CAACglI,aAAahlI,EAAEilI,iBAAiBhlI,EAAEgxF,YAAY5lF,EAAEmkI,WAAW3lI,EAAE4lI,UAAU,IAAI,IAAI,GAAGxvI,EAAEsvI,GAAGlkI,EAAErL,EAAEw+H,GAAGv+H,EAAEoL,OAAE,OAAY,CAACmzH,IAAG,EAAG,IAAIF,GAAGr+H,EAAEoL,OAAE,GAAX,QAA2BmzH,IAAG,EAAGC,OAA3E,QAA0Fz+H,EAAEglI,aAAa,KAAKhlI,EAAEixF,YAAY,KAAKjxF,EAAEwvI,WAAW,KAAKxvI,EAAEyvI,UAAUhgJ,OAAO,EAAE6/I,GAAG7/I,OAHjU,IAG4U6/I,GAAG74I,KAAKuJ,IAC5Y,SAAS8vI,GAAG9vI,EAAEC,EAAEoL,GAAG,GAAGqkI,GAAG,GAAG,EAAErL,GAAG50I,SAAS,EAAEm1I,GAAGxmI,QAAQ4B,GAAGA,EAAE8kI,GAAG,KAAK9kI,EAAEC,EAAEoL,GAAGg5H,GAAG5tI,KAAKuJ,OAAO,CAAC,IAAI6J,EAAEg8H,GAAG7lI,EAAEC,EAAEoL,GAAG,OAAOxB,EAAEq7H,GAAGllI,EAAEqL,IAAI,EAAEu5H,GAAGxmI,QAAQ4B,IAAIA,EAAE8kI,GAAGj7H,EAAE7J,EAAEC,EAAEoL,GAAGg5H,GAAG5tI,KAAKuJ,IA5BpB,SAAYA,EAAEC,EAAEoL,EAAExB,GAAG,OAAO5J,GAAG,IAAK,QAAQ,OAAOqkI,GAAGc,GAAGd,GAAGtkI,EAAEC,EAAEoL,EAAExB,IAAG,EAAG,IAAK,YAAY,OAAO06H,GAAGa,GAAGb,GAAGvkI,EAAEC,EAAEoL,EAAExB,IAAG,EAAG,IAAK,YAAY,OAAO26H,GAAGY,GAAGZ,GAAGxkI,EAAEC,EAAEoL,EAAExB,IAAG,EAAG,IAAK,cAAc,IAAIzW,EAAEyW,EAAEs7H,UAAgD,OAAtCV,GAAGz/H,IAAI5R,EAAEgyI,GAAGX,GAAG/oI,IAAItI,IAAI,KAAK4M,EAAEC,EAAEoL,EAAExB,KAAU,EAAG,IAAK,oBAAoB,OAAOzW,EAAEyW,EAAEs7H,UAAUT,GAAG1/H,IAAI5R,EAAEgyI,GAAGV,GAAGhpI,IAAItI,IAAI,KAAK4M,EAAEC,EAAEoL,EAAExB,KAAI,EAAG,OAAM,EA4B3TmmI,CAAGnmI,EAAE7J,EAAEC,EAAEoL,KAAK65H,GAAGllI,EAAEqL,GAAG0kI,GAAG/vI,EAAEC,EAAEoL,EAAE,QAAQ,SAASw6H,GAAG7lI,EAAEC,EAAEoL,GAAG,IAAIxB,EAAEu8H,GAAG/6H,GAAW,GAAG,QAAXxB,EAAE07H,GAAG17H,IAAe,CAAC,IAAIzW,EAAEmwI,GAAG15H,GAAG,GAAG,OAAOzW,EAAEyW,EAAE,SAAS,CAAC,IAAIvW,EAAEF,EAAEoqI,IAAI,GAAG,KAAKlqI,EAAE,CAAS,GAAG,QAAXuW,EAAE65H,GAAGtwI,IAAe,OAAOyW,EAAEA,EAAE,UAAU,GAAG,IAAIvW,EAAE,CAAC,GAAGF,EAAEgpI,UAAUsJ,QAAQ,OAAO,IAAItyI,EAAEoqI,IAAIpqI,EAAEgpI,UAAUuJ,cAAc,KAAK97H,EAAE,UAAUzW,IAAIyW,IAAIA,EAAE,OAAmB,OAAZkmI,GAAG/vI,EAAEC,EAAEoL,EAAExB,GAAU,KACxe,SAASomI,GAAGjwI,GAAG,IAAI89H,EAAG,OAAM,EAAY,IAAI79H,GAAbD,EAAE,KAAKA,KAAaksB,SAAqG,OAA5FjsB,KAAIA,EAAEisB,SAASovD,cAAc,QAASnzB,aAAanoD,EAAE,WAAWC,EAAE,oBAAoBA,EAAED,IAAWC,EAAE,IAAIiwI,GAAG,IAAK,oBAAoBxwE,QAAQA,QAAQpvC,KAAK,SAAS6/G,GAAGnwI,GAAG,IAAIC,EAAEiwI,GAAGx0I,IAAIsE,GAAuC,YAApC,IAASC,IAAIA,EAAE,IAAIgF,IAAIirI,GAAGlrI,IAAIhF,EAAEC,IAAWA,EAChS,SAASmwI,GAAGpwI,EAAEC,EAAEoL,GAAG,IAAIA,EAAEjL,IAAIJ,GAAG,CAAC,OAAOA,GAAG,IAAK,SAAS2vI,GAAG1vI,EAAE,UAAS,GAAI,MAAM,IAAK,QAAQ,IAAK,OAAO0vI,GAAG1vI,EAAE,SAAQ,GAAI0vI,GAAG1vI,EAAE,QAAO,GAAIoL,EAAEnG,IAAI,QAAQmG,EAAEnG,IAAI,SAAS,MAAM,IAAK,SAAS,IAAK,QAAQ+qI,GAAGjwI,IAAI2vI,GAAG1vI,EAAED,GAAE,GAAI,MAAM,IAAK,UAAU,IAAK,SAAS,IAAK,QAAQ,MAAM,SAAS,IAAIsjI,GAAGllI,QAAQ4B,IAAI/M,GAAE+M,EAAEC,GAAGoL,EAAEnG,IAAIlF,IAC1T,IAAIqwI,GAAG,CAACC,yBAAwB,EAAGC,mBAAkB,EAAGC,kBAAiB,EAAGC,kBAAiB,EAAGC,SAAQ,EAAGC,cAAa,EAAGC,iBAAgB,EAAGC,aAAY,EAAGC,SAAQ,EAAG5jD,MAAK,EAAG6jD,UAAS,EAAGC,cAAa,EAAGt+C,YAAW,EAAGu+C,cAAa,EAAGC,WAAU,EAAGC,UAAS,EAAGC,SAAQ,EAAGC,YAAW,EAAGC,aAAY,EAAGC,cAAa,EAAGC,YAAW,EAAGC,eAAc,EAAGC,gBAAe,EAAGC,iBAAgB,EAAGC,YAAW,EAAGC,WAAU,EAAGp2H,YAAW,EAAGsnD,SAAQ,EAAG/S,OAAM,EAAG8hF,SAAQ,EAAGC,SAAQ,EAAGC,QAAO,EAAGrkD,QAAO,EAAGskD,MAAK,EAAGC,aAAY,EAC1fC,cAAa,EAAGC,aAAY,EAAGC,iBAAgB,EAAGC,kBAAiB,EAAGC,kBAAiB,EAAGC,eAAc,EAAGlwH,aAAY,GAAImwH,GAAG,CAAC,SAAS,KAAK,MAAM,KAA6H,SAASC,GAAG1yI,EAAEC,EAAEoL,GAAG,OAAO,MAAMpL,GAAG,mBAAmBA,GAAG,KAAKA,EAAE,GAAGoL,GAAG,kBAAkBpL,GAAG,IAAIA,GAAGowI,GAAG57I,eAAeuL,IAAIqwI,GAAGrwI,IAAI,GAAGC,GAAG4hG,OAAO5hG,EAAE,KAC9Z,SAAS0yI,GAAG3yI,EAAEC,GAAa,IAAI,IAAIoL,KAAlBrL,EAAEA,EAAEwb,MAAmBvb,EAAE,GAAGA,EAAExL,eAAe4W,GAAG,CAAC,IAAIxB,EAAE,IAAIwB,EAAEjN,QAAQ,MAAMhL,EAAEs/I,GAAGrnI,EAAEpL,EAAEoL,GAAGxB,GAAG,UAAUwB,IAAIA,EAAE,YAAYxB,EAAE7J,EAAE8xB,YAAYzmB,EAAEjY,GAAG4M,EAAEqL,GAAGjY,GADTtD,OAAOuN,KAAKgzI,IAAIxrI,SAAQ,SAAS7E,GAAGyyI,GAAG5tI,SAAQ,SAAS5E,GAAGA,EAAEA,EAAED,EAAEL,OAAO,GAAGC,cAAcI,EAAEo/E,UAAU,GAAGixD,GAAGpwI,GAAGowI,GAAGrwI,SACrG,IAAI4yI,GAAGz/I,EAAE,CAAC0/I,UAAS,GAAI,CAAC/xH,MAAK,EAAGnlB,MAAK,EAAGm3I,IAAG,EAAG91E,KAAI,EAAG+1E,OAAM,EAAGC,IAAG,EAAGC,KAAI,EAAGx6H,OAAM,EAAGy6H,QAAO,EAAG5pB,MAAK,EAAGvjH,MAAK,EAAGotI,OAAM,EAAGp1I,QAAO,EAAGq1I,OAAM,EAAGC,KAAI,IAClT,SAASx9H,GAAG7V,EAAEC,GAAG,GAAGA,EAAE,CAAC,GAAG2yI,GAAG5yI,KAAK,MAAMC,EAAEsiF,UAAU,MAAMtiF,EAAEqhI,yBAAyB,MAAMxpI,MAAMwpG,EAAE,IAAIthG,EAAE,KAAK,GAAG,MAAMC,EAAEqhI,wBAAwB,CAAC,GAAG,MAAMrhI,EAAEsiF,SAAS,MAAMzqF,MAAMwpG,EAAE,KAAK,GAAK,kBAAkBrhG,EAAEqhI,2BAAyB,WAAWrhI,EAAEqhI,yBAAyB,MAAMxpI,MAAMwpG,EAAE,KAAM,GAAG,MAAMrhG,EAAEub,OAAO,kBAAkBvb,EAAEub,MAAM,MAAM1jB,MAAMwpG,EAAE,GAAG,MAClW,SAASgyC,GAAGtzI,EAAEC,GAAG,IAAI,IAAID,EAAE5B,QAAQ,KAAK,MAAM,kBAAkB6B,EAAEszI,GAAG,OAAOvzI,GAAG,IAAK,iBAAiB,IAAK,gBAAgB,IAAK,YAAY,IAAK,gBAAgB,IAAK,gBAAgB,IAAK,mBAAmB,IAAK,iBAAiB,IAAK,gBAAgB,OAAM,EAAG,QAAQ,OAAM,GAAI,SAASwzI,GAAGxzI,EAAEC,GAAuD,IAAIoL,EAAE8kI,GAA1DnwI,EAAE,IAAIA,EAAEuiI,UAAU,KAAKviI,EAAEuiI,SAASviI,EAAEA,EAAE+tF,eAA0B9tF,EAAEs6H,EAAGt6H,GAAG,IAAI,IAAI4J,EAAE,EAAEA,EAAE5J,EAAExQ,OAAOoa,IAAIumI,GAAGnwI,EAAE4J,GAAG7J,EAAEqL,GAAG,SAASi/F,MAC7Z,SAASwE,GAAG9uG,GAAwD,GAAG,qBAAxDA,EAAEA,IAAI,qBAAqBksB,SAASA,cAAS,IAAkC,OAAO,KAAK,IAAI,OAAOlsB,EAAE+gI,eAAe/gI,EAAEugE,KAAK,MAAMtgE,GAAG,OAAOD,EAAEugE,MAAM,SAASkzE,GAAGzzI,GAAG,KAAKA,GAAGA,EAAEoiI,YAAYpiI,EAAEA,EAAEoiI,WAAW,OAAOpiI,EAAE,SAASotG,GAAGptG,EAAEC,GAAG,IAAwB4J,EAApBwB,EAAEooI,GAAGzzI,GAAO,IAAJA,EAAE,EAAYqL,GAAG,CAAC,GAAG,IAAIA,EAAEk3H,SAAS,CAA0B,GAAzB14H,EAAE7J,EAAEqL,EAAEq2H,YAAYjyI,OAAUuQ,GAAGC,GAAG4J,GAAG5J,EAAE,MAAM,CAACoa,KAAKhP,EAAElS,OAAO8G,EAAED,GAAGA,EAAE6J,EAAE7J,EAAE,CAAC,KAAKqL,GAAG,CAAC,GAAGA,EAAEqoI,YAAY,CAACroI,EAAEA,EAAEqoI,YAAY,MAAM1zI,EAAEqL,EAAEA,EAAEghB,WAAWhhB,OAAE,EAAOA,EAAEooI,GAAGpoI,IAC3P,SAASghG,KAAK,IAAI,IAAIrsG,EAAEoF,OAAOnF,EAAE6uG,KAAK7uG,aAAaD,EAAE2zI,mBAAmB,CAAC,IAAI,IAAItoI,EAAE,kBAAkBpL,EAAE2zI,cAAc95D,SAASoE,KAAK,MAAMr0E,GAAGwB,GAAE,EAAG,IAAGA,EAAyB,MAAMpL,EAAE6uG,IAA/B9uG,EAAEC,EAAE2zI,eAAgC1nH,UAAU,OAAOjsB,EAC5Y,SAASsuG,GAAGvuG,GAAG,IAAIC,EAAED,GAAGA,EAAE4/H,UAAU5/H,EAAE4/H,SAAS1nH,cAAc,OAAOjY,IAAI,UAAUA,IAAI,SAASD,EAAE7D,MAAM,WAAW6D,EAAE7D,MAAM,QAAQ6D,EAAE7D,MAAM,QAAQ6D,EAAE7D,MAAM,aAAa6D,EAAE7D,OAAO,aAAa8D,GAAG,SAASD,EAAE6zI,iBAAiB,IAAmClxC,GAAG,KAAK6L,GAAG,KAAK,SAAStG,GAAGloG,EAAEC,GAAG,OAAOD,GAAG,IAAK,SAAS,IAAK,QAAQ,IAAK,SAAS,IAAK,WAAW,QAAQC,EAAE6zI,UAAU,OAAM,EAC7X,SAASvpC,GAAGvqG,EAAEC,GAAG,MAAM,aAAaD,GAAG,WAAWA,GAAG,aAAaA,GAAG,kBAAkBC,EAAEsiF,UAAU,kBAAkBtiF,EAAEsiF,UAAU,kBAAkBtiF,EAAEqhI,yBAAyB,OAAOrhI,EAAEqhI,yBAAyB,MAAMrhI,EAAEqhI,wBAAwByS,OAAO,IAAIzlC,GAAG,oBAAoB9/C,WAAWA,gBAAW,EAAOymD,GAAG,oBAAoB1mD,aAAaA,kBAAa,EAAO,SAAS0xC,GAAGjgG,GAAG,KAAK,MAAMA,EAAEA,EAAEA,EAAE0zI,YAAY,CAAC,IAAIzzI,EAAED,EAAEuiI,SAAS,GAAG,IAAItiI,GAAG,IAAIA,EAAE,MAAM,OAAOD,EAClc,SAASopG,GAAGppG,GAAGA,EAAEA,EAAEg0I,gBAAgB,IAAI,IAAI/zI,EAAE,EAAED,GAAG,CAAC,GAAG,IAAIA,EAAEuiI,SAAS,CAAC,IAAIl3H,EAAErL,EAAEzH,KAAK,GAFgJ,MAE7I8S,GAFoK,OAE5JA,GAFoJ,OAE5IA,EAAO,CAAC,GAAG,IAAIpL,EAAE,OAAOD,EAAEC,QAF0G,OAEjGoL,GAAQpL,IAAID,EAAEA,EAAEg0I,gBAAgB,OAAO,KAAK,IAAIhtC,GAAGhzG,KAAKiC,SAASnB,SAAS,IAAIkB,MAAM,GAAGo2G,GAAG,2BAA2BpF,GAAGkJ,GAAG,wBAAwBlJ,GAAGsI,GAAG,qBAAqBtI,GACvT,SAASu+B,GAAGvlI,GAAG,IAAIC,EAAED,EAAEosG,IAAI,GAAGnsG,EAAE,OAAOA,EAAE,IAAI,IAAIoL,EAAErL,EAAEqsB,WAAWhhB,GAAG,CAAC,GAAGpL,EAAEoL,EAAEikG,KAAKjkG,EAAE+gG,IAAI,CAAe,GAAd/gG,EAAEpL,EAAEujI,UAAa,OAAOvjI,EAAE6jI,OAAO,OAAOz4H,GAAG,OAAOA,EAAEy4H,MAAM,IAAI9jI,EAAEopG,GAAGppG,GAAG,OAAOA,GAAG,CAAC,GAAGqL,EAAErL,EAAEosG,IAAI,OAAO/gG,EAAErL,EAAEopG,GAAGppG,GAAG,OAAOC,EAAMoL,GAAJrL,EAAEqL,GAAMghB,WAAW,OAAO,KAAK,SAASg5G,GAAGrlI,GAAkB,QAAfA,EAAEA,EAAEosG,KAAKpsG,EAAEsvG,MAAc,IAAItvG,EAAEw9H,KAAK,IAAIx9H,EAAEw9H,KAAK,KAAKx9H,EAAEw9H,KAAK,IAAIx9H,EAAEw9H,IAAI,KAAKx9H,EAAE,SAASiwG,GAAGjwG,GAAG,GAAG,IAAIA,EAAEw9H,KAAK,IAAIx9H,EAAEw9H,IAAI,OAAOx9H,EAAEo8H,UAAU,MAAMtkI,MAAMwpG,EAAE,KAAM,SAASuN,GAAG7uG,GAAG,OAAOA,EAAEkwG,KAAK,KAAK,IAAIiE,GAAG,KAAK3E,GAAG,KAAKuE,GAAG,KAC9c,SAASnF,KAAK,GAAGmF,GAAG,OAAOA,GAAG,IAAI/zG,EAAkB6J,EAAhB5J,EAAEuvG,GAAGnkG,EAAEpL,EAAExQ,OAAS2D,EAAE,UAAU+gH,GAAGA,GAAGrjH,MAAMqjH,GAAGutB,YAAYpuI,EAAEF,EAAE3D,OAAO,IAAIuQ,EAAE,EAAEA,EAAEqL,GAAGpL,EAAED,KAAK5M,EAAE4M,GAAGA,KAAK,IAAI2L,EAAEN,EAAErL,EAAE,IAAI6J,EAAE,EAAEA,GAAG8B,GAAG1L,EAAEoL,EAAExB,KAAKzW,EAAEE,EAAEuW,GAAGA,KAAK,OAAOkqG,GAAG3gH,EAAE4C,MAAMgK,EAAE,EAAE6J,EAAE,EAAEA,OAAE,GAAQ,IAAI6lG,GAAGtkG,GAAE9W,OAAO,CAACiE,KAAK,OAAO05G,GAAG7mG,GAAE9W,OAAO,CAACiE,KAAK,OAAOy5G,GAAG,CAAC,EAAE,GAAG,GAAG,IAAIiC,GAAG6pB,GAAI,qBAAqB14H,OAAOmvG,GAAG,KAAKupB,GAAI,iBAAiB5xG,WAAWqoF,GAAGroF,SAAS+nH,cACpX,IAAIjlC,GAAG8uB,GAAI,cAAc14H,SAASmvG,GAAGM,GAAGipB,KAAM7pB,IAAIM,IAAI,EAAEA,IAAI,IAAIA,IAAIS,GAAG19G,OAAOC,aAAa,IAAI25G,GAAG,CAACgjC,YAAY,CAAC/Z,wBAAwB,CAAC0U,QAAQ,gBAAgBC,SAAS,wBAAwBtU,aAAa,CAAC,iBAAiB,WAAW,YAAY,UAAU2Z,eAAe,CAACha,wBAAwB,CAAC0U,QAAQ,mBAAmBC,SAAS,2BAA2BtU,aAAa,uDAAuDp7H,MAAM,MAAMg1I,iBAAiB,CAACja,wBAAwB,CAAC0U,QAAQ,qBAC7eC,SAAS,6BAA6BtU,aAAa,yDAAyDp7H,MAAM,MAAMi1I,kBAAkB,CAACla,wBAAwB,CAAC0U,QAAQ,sBAAsBC,SAAS,8BAA8BtU,aAAa,0DAA0Dp7H,MAAM,OAAOqxG,IAAG,EAChU,SAASuD,GAAGh0G,EAAEC,GAAG,OAAOD,GAAG,IAAK,QAAQ,OAAO,IAAIgyG,GAAG5zG,QAAQ6B,EAAE4oI,SAAS,IAAK,UAAU,OAAO,MAAM5oI,EAAE4oI,QAAQ,IAAK,WAAW,IAAK,YAAY,IAAK,OAAO,OAAM,EAAG,QAAQ,OAAM,GAAI,SAASl5B,GAAG3vG,GAAc,MAAM,kBAAjBA,EAAEA,EAAEyoI,SAAkC,SAASzoI,EAAEA,EAAEzH,KAAK,KAAK,IAAI02G,IAAG,EAE1Q,IAAIR,GAAG,CAACyrB,WAAWhpB,GAAG+oB,cAAc,SAASj6H,EAAEC,EAAEoL,EAAExB,GAAG,IAAIzW,EAAE,GAAG6gH,GAAGh0G,EAAE,CAAC,OAAOD,GAAG,IAAK,mBAAmB,IAAI1M,EAAE49G,GAAGkjC,iBAAiB,MAAMn0I,EAAE,IAAK,iBAAiB3M,EAAE49G,GAAGijC,eAAe,MAAMl0I,EAAE,IAAK,oBAAoB3M,EAAE49G,GAAGmjC,kBAAkB,MAAMp0I,EAAE3M,OAAE,OAAY27G,GAAG+E,GAAGh0G,EAAEqL,KAAK/X,EAAE49G,GAAGijC,gBAAgB,YAAYn0I,GAAG,MAAMqL,EAAEw9H,UAAUv1I,EAAE49G,GAAGkjC,kBAClL,OADoM9gJ,GAAGuhH,IAAI,OAAOxpG,EAAEolB,SAASw+E,IAAI37G,IAAI49G,GAAGkjC,iBAAiB9gJ,IAAI49G,GAAGijC,gBAAgBllC,KAAK77G,EAAEw7G,OAAYY,GAAG,UAAR2E,GAAGtqG,GAAkBsqG,GAAGrjH,MAAMqjH,GAAGutB,YAAYzyB,IAAG,IAAK37G,EAAEo8G,GAAGg4B,UAAUp0I,EACzf2M,EAAEoL,EAAExB,GAAGzW,EAAEE,EAAEiF,KAAKnF,EAAW,QAARA,EAAEu8G,GAAGtkG,MAAc/X,EAAEiF,KAAKnF,GAAI0zI,GAAGxzI,GAAGF,EAAEE,GAAGF,EAAE,MAAM4M,EAAEgvG,GAHuM,SAAYhvG,EAAEC,GAAG,OAAOD,GAAG,IAAK,iBAAiB,OAAO2vG,GAAG1vG,GAAG,IAAK,WAAW,OAAG,KAAKA,EAAEgsI,MAAa,MAAKx7B,IAAG,EAAUuE,IAAG,IAAK,YAAY,OAAOh1G,EAAEC,EAAE1H,QAASy8G,IAAIvE,GAAG,KAAKzwG,EAAE,QAAQ,OAAO,MAGhYkX,CAAGlX,EAAEqL,GAF9E,SAAYrL,EAAEC,GAAG,GAAGgvG,GAAG,MAAM,mBAAmBjvG,IAAIi0G,IAAID,GAAGh0G,EAAEC,IAAID,EAAE4uG,KAAKmF,GAAGvE,GAAG2E,GAAG,KAAKlF,IAAG,EAAGjvG,GAAG,KAAK,OAAOA,GAAG,IAAK,QAAQ,OAAO,KAAK,IAAK,WAAW,KAAKC,EAAE4rI,SAAS5rI,EAAE8rI,QAAQ9rI,EAAE+rI,UAAU/rI,EAAE4rI,SAAS5rI,EAAE8rI,OAAO,CAAC,GAAG9rI,EAAEq0I,MAAM,EAAEr0I,EAAEq0I,KAAK7kJ,OAAO,OAAOwQ,EAAEq0I,KAAK,GAAGr0I,EAAEgsI,MAAM,OAAO30I,OAAOC,aAAa0I,EAAEgsI,OAAO,OAAO,KAAK,IAAK,iBAAiB,OAAOp3B,IAAI,OAAO50G,EAAEwwB,OAAO,KAAKxwB,EAAE1H,KAAK,QAAQ,OAAO,MAEjTg8I,CAAGv0I,EAAEqL,MAAKpL,EAAEgyG,GAAGy1B,UAAUx2B,GAAGgjC,YAAYj0I,EAAEoL,EAAExB,IAAKtR,KAAKyH,EAAE8mI,GAAG7mI,IAAIA,EAAE,KAAY,OAAO7M,EAAE6M,EAAE,OAAOA,EAAE7M,EAAE,CAACA,EAAE6M,KAAKsvG,GAAG,CAACr2F,OAAM,EAAG4b,MAAK,EAAGs8C,UAAS,EAAG,kBAAiB,EAAGojE,OAAM,EAAGjmE,OAAM,EAAGt3C,QAAO,EAAG4/C,UAAS,EAAG51E,OAAM,EAAG84E,QAAO,EAAG06D,KAAI,EAAGvyH,MAAK,EAAGqtD,MAAK,EAAG2P,KAAI,EAAG5Q,MAAK,GAAI,SAASyjC,GAAG/xG,GAAG,IAAIC,EAAED,GAAGA,EAAE4/H,UAAU5/H,EAAE4/H,SAAS1nH,cAAc,MAAM,UAAUjY,IAAIsvG,GAAGvvG,EAAE7D,MAAM,aAAa8D,EAC5b,IAAIi0G,GAAG,CAACn+D,OAAO,CAACokF,wBAAwB,CAAC0U,QAAQ,WAAWC,SAAS,mBAAmBtU,aAAa,8DAA8Dp7H,MAAM,OAAO,SAASs1G,GAAG10G,EAAEC,EAAEoL,GAA8D,OAA3DrL,EAAEoL,GAAEs8H,UAAUxzB,GAAGn+D,OAAO/1C,EAAEC,EAAEoL,IAAKlP,KAAK,SAASi6B,GAAG/qB,GAAGy7H,GAAG9mI,GAAUA,EAAE,IAAI8O,GAAG,KAAK4mG,GAAG,KAAK,SAASf,GAAG30G,GAAG+7H,EAAG/7H,GAAG,SAASy1G,GAAGz1G,GAAe,GAAGkgI,GAATjwB,GAAGjwG,IAAY,OAAOA,EAAE,SAAS00I,GAAG10I,EAAEC,GAAG,GAAG,WAAWD,EAAE,OAAOC,EAAE,IAAI00I,IAAG,EAC9Y,SAASC,KAAK9lI,KAAKA,GAAGuuF,YAAY,mBAAmBw3C,IAAIn/B,GAAG5mG,GAAG,MAAM,SAAS+lI,GAAG70I,GAAG,GAAG,UAAUA,EAAEnL,cAAc4gH,GAAGC,IAAI,GAAG11G,EAAE00G,GAAGgB,GAAG11G,EAAEomI,GAAGpmI,IAAIu+H,GAAGxC,EAAG/7H,OAAO,CAACu+H,IAAG,EAAG,IAAIH,GAAGzpB,GAAG30G,GAAV,QAAqBu+H,IAAG,EAAGE,OAAO,SAASqW,GAAG90I,EAAEC,EAAEoL,GAAG,UAAUrL,GAAG40I,KAAUl/B,GAAGrqG,GAARyD,GAAG7O,GAAUo7F,YAAY,mBAAmBw5C,KAAK,SAAS70I,GAAG40I,KAAK,SAASG,GAAG/0I,GAAG,GAAG,oBAAoBA,GAAG,UAAUA,GAAG,YAAYA,EAAE,OAAOy1G,GAAGC,IAAI,SAASs/B,GAAGh1I,EAAEC,GAAG,GAAG,UAAUD,EAAE,OAAOy1G,GAAGx1G,GAAG,SAASg1I,GAAGj1I,EAAEC,GAAG,GAAG,UAAUD,GAAG,WAAWA,EAAE,OAAOy1G,GAAGx1G,GAD/E69H,IAAK6W,GAAG1E,GAAG,YAAY/jH,SAAS+nH,cAAc,EAAE/nH,SAAS+nH,eAE1c,IACiTiB,GAD7SC,GAAG,CAACjb,WAAWhmB,GAAGkhC,uBAAuBT,GAAG1a,cAAc,SAASj6H,EAAEC,EAAEoL,EAAExB,GAAG,IAAIzW,EAAE6M,EAAEgwG,GAAGhwG,GAAGmF,OAAO9R,EAAEF,EAAEwsI,UAAUxsI,EAAEwsI,SAAS1nH,cAAc,GAAG,WAAW5kB,GAAG,UAAUA,GAAG,SAASF,EAAE+I,KAAK,IAAIwP,EAAE+oI,QAAQ,GAAG3iC,GAAG3+G,GAAG,GAAGuhJ,GAAGhpI,EAAEspI,OAAO,CAACtpI,EAAEopI,GAAG,IAAI9qI,EAAE6qI,QAAQxhJ,EAAEF,EAAEwsI,WAAW,UAAUtsI,EAAE4kB,gBAAgB,aAAa9kB,EAAE+I,MAAM,UAAU/I,EAAE+I,QAAQwP,EAAEqpI,IAAI,GAAGrpI,IAAIA,EAAEA,EAAE3L,EAAEC,IAAI,OAAOy0G,GAAG/oG,EAAEN,EAAExB,GAAGI,GAAGA,EAAEjK,EAAE5M,EAAE6M,GAAG,SAASD,IAAIA,EAAE5M,EAAEktI,gBAAgBtgI,EAAE0gI,YAAY,WAAWttI,EAAE+I,MAAM0kI,GAAGztI,EAAE,SAASA,EAAEtC,SAASukJ,GAAG,CAACC,WAAW,CAACjb,iBAAiB,eACxfG,aAAa,CAAC,WAAW,cAAc+a,WAAW,CAAClb,iBAAiB,eAAeG,aAAa,CAAC,WAAW,cAAcgb,aAAa,CAACnb,iBAAiB,iBAAiBG,aAAa,CAAC,aAAa,gBAAgBib,aAAa,CAACpb,iBAAiB,iBAAiBG,aAAa,CAAC,aAAa,iBAAoBkb,GAAG,CAACxb,WAAWmb,GAAGpb,cAAc,SAASj6H,EAAEC,EAAEoL,EAAExB,EAAEzW,GAAG,IAAIE,EAAE,cAAc0M,GAAG,gBAAgBA,EAAE2L,EAAE,aAAa3L,GAAG,eAAeA,EAAE,GAAG1M,GAAG,KAAO,GAAFF,KAAQiY,EAAEs9H,eAAet9H,EAAEwhI,eAAelhI,IAAIrY,EAAE,OAAO,KAC9S,GAAxMF,EAAEyW,EAAEzE,SAASyE,EAAEA,GAAGzW,EAAEyW,EAAEkkF,eAAe36F,EAAE46F,aAAa56F,EAAEuiJ,aAAavwI,OAAUuG,GAAMA,EAAE1L,EAAgD,QAA9CA,GAAGA,EAAEoL,EAAEs9H,eAAet9H,EAAEyhI,WAAWvH,GAAGtlI,GAAG,QAAwBA,KAAR3M,EAAEiwI,GAAGtjI,KAAU,IAAIA,EAAEu9H,KAAK,IAAIv9H,EAAEu9H,OAAKv9H,EAAE,OAAU0L,EAAE,KAAQA,IAAI1L,EAAE,OAAO,KAAK,GAAG,aAAaD,GAAG,cAAcA,EAAG,IAAIiK,EAAEqiI,GAAOpuI,EAAEm3I,GAAGE,WAAevrI,EAAEqrI,GAAGC,WAAe1rI,EAAE,YAAgB,eAAe5J,GAAG,gBAAgBA,IAAEiK,EAAEgjI,GAAG/uI,EAAEm3I,GAAGI,aAAazrI,EAAEqrI,GAAGG,aAAa5rI,EAAE,WACtT,GADgU5J,EAAE,MAAM2L,EAAEvY,EAAE68G,GAAGtkG,GAAGvY,EAAE,MAAM6M,EAAE7M,EAAE68G,GAAGhwG,IAAG/B,EAAE+L,EAAEy9H,UAAUxpI,EAAEyN,EAAEN,EAAExB,IAAK1N,KAAKyN,EAAE,QAAQ1L,EAAE5O,OAC/e0Q,EAAE9B,EAAEyqI,cAAcv1I,GAAEyW,EAAEI,EAAEy9H,UAAU19H,EAAE/J,EAAEoL,EAAExB,IAAK1N,KAAKyN,EAAE,QAAQC,EAAEva,OAAO8D,EAAEyW,EAAE8+H,cAAc3oI,EAAM4J,EAAE3J,GAANgK,EAAE0B,IAAY/B,EAAE5J,EAAE,CAAa,IAARA,EAAE4J,EAAE+B,EAAE,EAAM1L,EAAhB+J,EAAEC,EAAkBhK,EAAEA,EAAEsmI,GAAGtmI,GAAG0L,IAAQ,IAAJ1L,EAAE,EAAM7M,EAAE4M,EAAE5M,EAAEA,EAAEmzI,GAAGnzI,GAAG6M,IAAI,KAAK,EAAE0L,EAAE1L,GAAG+J,EAAEu8H,GAAGv8H,GAAG2B,IAAI,KAAK,EAAE1L,EAAE0L,GAAG3L,EAAEumI,GAAGvmI,GAAGC,IAAI,KAAK0L,KAAK,CAAC,GAAG3B,IAAIhK,GAAGgK,IAAIhK,EAAEwjI,UAAU,MAAMxjI,EAAEgK,EAAEu8H,GAAGv8H,GAAGhK,EAAEumI,GAAGvmI,GAAGgK,EAAE,UAAUA,EAAE,KAAS,IAAJhK,EAAEgK,EAAMA,EAAE,GAAGC,GAAGA,IAAIjK,IAAqB,QAAjB2L,EAAE1B,EAAEu5H,YAAuB73H,IAAI3L,IAAQgK,EAAEvT,KAAKwT,GAAGA,EAAEs8H,GAAGt8H,GAAG,IAAIA,EAAE,GAAGL,GAAGA,IAAI5J,IAAqB,QAAjB2L,EAAE/B,EAAE45H,YAAuB73H,IAAI3L,IAAQiK,EAAExT,KAAKmT,GAAGA,EAAE28H,GAAG38H,GAAG,IAAIA,EAAE,EAAEA,EAAEI,EAAEva,OAAOma,IAAIg9H,GAAG58H,EAAEJ,GAAG,UAAU1L,GAAG,IAAI0L,EACtfK,EAAExa,OAAO,EAAEma,KAAKg9H,GAAG38H,EAAEL,GAAG,WAAWC,GAAG,OAAGwB,IAAI6pI,IAAUA,GAAG,KAAK,CAACh3I,KAAGg3I,GAAG7pI,EAAQ,CAACnN,EAAE2L,MAAqE,IAAI+rI,GAAG,oBAAoB9lJ,OAAOyjJ,GAAGzjJ,OAAOyjJ,GAA5G,SAAYvzI,EAAEC,GAAG,OAAOD,IAAIC,IAAI,IAAID,GAAG,EAAEA,IAAI,EAAEC,IAAID,IAAIA,GAAGC,IAAIA,GAAoD41I,GAAG/lJ,OAAOO,UAAUoE,eAAe,SAASqhJ,GAAG91I,EAAEC,GAAG,GAAG21I,GAAG51I,EAAEC,GAAG,OAAM,EAAG,GAAG,kBAAkBD,GAAG,OAAOA,GAAG,kBAAkBC,GAAG,OAAOA,EAAE,OAAM,EAAG,IAAIoL,EAAEvb,OAAOuN,KAAK2C,GAAG6J,EAAE/Z,OAAOuN,KAAK4C,GAAG,GAAGoL,EAAE5b,SAASoa,EAAEpa,OAAO,OAAM,EAAG,IAAIoa,EAAE,EAAEA,EAAEwB,EAAE5b,OAAOoa,IAAI,IAAIgsI,GAAG9/I,KAAKkK,EAAEoL,EAAExB,MAAM+rI,GAAG51I,EAAEqL,EAAExB,IAAI5J,EAAEoL,EAAExB,KAAK,OAAM,EAAG,OAAM,EAC/e,IAAIksI,GAAGjY,GAAI,iBAAiB5xG,UAAU,IAAIA,SAAS+nH,aAAa+B,GAAG,CAACC,OAAO,CAAC9b,wBAAwB,CAAC0U,QAAQ,WAAWC,SAAS,mBAAmBtU,aAAa,iFAAiFp7H,MAAM,OAAO82I,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,IAAG,EAC1R,SAASC,GAAGt2I,EAAEC,GAAG,IAAIoL,EAAEpL,EAAEmF,SAASnF,EAAEA,EAAEisB,SAAS,IAAIjsB,EAAEsiI,SAAStiI,EAAEA,EAAE8tF,cAAc,OAAGsoD,IAAI,MAAMH,IAAIA,KAAKpnC,GAAGzjG,GAAU,MAAU,mBAALA,EAAE6qI,KAAyB3nC,GAAGljG,GAAGA,EAAE,CAAChI,MAAMgI,EAAEkrI,eAAejzI,IAAI+H,EAAEmrI,cAAuFnrI,EAAE,CAACorI,YAA3EprI,GAAGA,EAAE0iF,eAAe1iF,EAAE0iF,cAAcC,aAAa5oF,QAAQq4F,gBAA+Bg5C,WAAWC,aAAarrI,EAAEqrI,aAAaC,UAAUtrI,EAAEsrI,UAAUC,YAAYvrI,EAAEurI,aAAqBR,IAAIN,GAAGM,GAAG/qI,GAAG,MAAM+qI,GAAG/qI,GAAErL,EAAEoL,GAAEs8H,UAAUsO,GAAGC,OAAOE,GAAGn2I,EAAEC,IAAK9D,KAAK,SAAS6D,EAAE1Q,OAAO4mJ,GAAGpP,GAAG9mI,GAAGA,IAC1d,IAAI62I,GAAG,CAAC3c,WAAW8b,GAAG/b,cAAc,SAASj6H,EAAEC,EAAEoL,EAAExB,GAAG,IAA+DvW,EAA3DF,EAAEyW,EAAEzE,SAASyE,EAAEA,EAAEqiB,SAAS,IAAIriB,EAAE04H,SAAS14H,EAAEA,EAAEkkF,cAAgB,KAAKz6F,GAAGF,GAAG,CAAC4M,EAAE,CAAC5M,EAAE+8I,GAAG/8I,GAAGE,EAAEinI,EAAGuc,SAAS,IAAI,IAAInrI,EAAE,EAAEA,EAAErY,EAAE7D,OAAOkc,IAAI,IAAIvY,EAAEgN,IAAI9M,EAAEqY,IAAI,CAACvY,GAAE,EAAG,MAAM4M,EAAE5M,GAAE,EAAGE,GAAGF,EAAE,GAAGE,EAAE,OAAO,KAAsB,OAAjBF,EAAE6M,EAAEgwG,GAAGhwG,GAAGmF,OAAcpF,GAAG,IAAK,SAAW+xG,GAAG3+G,IAAI,SAASA,EAAEygJ,mBAAgBqC,GAAG9iJ,EAAE+iJ,GAAGl2I,EAAEm2I,GAAG,MAAK,MAAM,IAAK,OAAOA,GAAGD,GAAGD,GAAG,KAAK,MAAM,IAAK,YAAYG,IAAG,EAAG,MAAM,IAAK,cAAc,IAAK,UAAU,IAAK,UAAU,OAAOA,IAAG,EAAGC,GAAGjrI,EAAExB,GAAG,IAAK,kBAAkB,GAAGksI,GAAG,MACrf,IAAK,UAAU,IAAK,QAAQ,OAAOO,GAAGjrI,EAAExB,GAAG,OAAO,OAAOmyH,EAAGC,uBAAuB,0HAA0H78H,MAAM,MAAgB67H,EAAGpsB,GAAG/yB,EAATupD,GAAenK,EAAGjrB,GAAG+rB,EAAGE,yBAAyB,CAAC6a,kBAAkB/H,GAAGgI,sBAAsBtB,GAAGuB,kBAAkB9B,GAAG+B,kBAAkBL,GAAGM,uBAAuB1oC,KAAK,IAAIxpG,IAAI,IAAImyI,GAAG,GAAGC,IAAI,EAAE,SAASrpI,GAAEhO,GAAG,EAAEq3I,KAAKr3I,EAAE2pB,QAAQytH,GAAGC,IAAID,GAAGC,IAAI,KAAKA,MAChd,SAASnpI,GAAElO,EAAEC,GAAGo3I,KAAKD,GAAGC,IAAIr3I,EAAE2pB,QAAQ3pB,EAAE2pB,QAAQ1pB,EAAE,IAAIq3I,GAAG,GAAGnpI,GAAE,CAACwb,QAAQ2tH,IAAIvpI,GAAE,CAAC4b,SAAQ,GAAI4tH,GAAGD,GAAG,SAASE,GAAGx3I,EAAEC,GAAG,IAAIoL,EAAErL,EAAE7D,KAAKknF,aAAa,IAAIh4E,EAAE,OAAOisI,GAAG,IAAIztI,EAAE7J,EAAEo8H,UAAU,GAAGvyH,GAAGA,EAAE4tI,8CAA8Cx3I,EAAE,OAAO4J,EAAE6tI,0CAA0C,IAASpkJ,EAALF,EAAE,GAAK,IAAIE,KAAK+X,EAAEjY,EAAEE,GAAG2M,EAAE3M,GAAoH,OAAjHuW,KAAI7J,EAAEA,EAAEo8H,WAAYqb,4CAA4Cx3I,EAAED,EAAE03I,0CAA0CtkJ,GAAUA,EAAE,SAAS0a,GAAE9N,GAAyB,OAAO,QAA7BA,EAAEA,EAAEyiF,yBAAmC,IAASziF,EAChf,SAAS23I,GAAG33I,GAAGgO,GAAED,IAAKC,GAAEG,IAAK,SAASypI,GAAG53I,GAAGgO,GAAED,IAAKC,GAAEG,IAAK,SAAS0pI,GAAG73I,EAAEC,EAAEoL,GAAG,GAAG8C,GAAEwb,UAAU2tH,GAAG,MAAMx/I,MAAMwpG,EAAE,MAAMpzF,GAAEC,GAAElO,GAAKiO,GAAEH,GAAE1C,GAAK,SAASysI,GAAG93I,EAAEC,EAAEoL,GAAG,IAAIxB,EAAE7J,EAAEo8H,UAAgC,GAAtBp8H,EAAEC,EAAEwiF,kBAAqB,oBAAoB54E,EAAEs4E,gBAAgB,OAAO92E,EAAwB,IAAI,IAAIjY,KAA9ByW,EAAEA,EAAEs4E,kBAAiC,KAAK/uF,KAAK4M,GAAG,MAAMlI,MAAMwpG,EAAE,IAAIg8B,EAAGr9H,IAAI,UAAU7M,IAAI,OAAOD,EAAE,GAAGkY,EAAE,GAAGxB,GAAG,SAASkuI,GAAG/3I,GAAG,IAAIC,EAAED,EAAEo8H,UAAsG,OAA5Fn8H,EAAEA,GAAGA,EAAE+3I,2CAA2CV,GAAGC,GAAGppI,GAAEwb,QAAQzb,GAAEC,GAAElO,GAAKiO,GAAEH,GAAEA,GAAE4b,UAAiB,EACle,SAASsuH,GAAGj4I,EAAEC,EAAEoL,GAAG,IAAIxB,EAAE7J,EAAEo8H,UAAU,IAAIvyH,EAAE,MAAM/R,MAAMwpG,EAAE,MAAMj2F,GAAGpL,EAAE63I,GAAG93I,EAAEC,EAAEs3I,IAAI1tI,EAAEmuI,0CAA0C/3I,EAAE+N,GAAED,IAAKC,GAAEG,IAAKD,GAAEC,GAAElO,IAAM+N,GAAED,IAAKG,GAAEH,GAAE1C,GAChK,IAAI6sI,GAAGjyC,EAAEu/B,yBAAyB2S,GAAGlyC,EAAEggC,0BAA0BmS,GAAGnyC,EAAEoyC,wBAAwBC,GAAGryC,EAAEsyC,qBAAqBC,GAAGvyC,EAAEwyC,sBAAsBC,GAAGzyC,EAAE0yC,aAAaC,GAAG3yC,EAAE4yC,iCAAiCC,GAAG7yC,EAAE8yC,2BAA2BC,GAAG/yC,EAAEkpC,8BAA8B8J,GAAGhzC,EAAEigC,wBAAwBgT,GAAGjzC,EAAEkzC,qBAAqBC,GAAGnzC,EAAEozC,sBAAsBC,GAAG,GAAGC,QAAG,IAASf,GAAGA,GAAG,aAAagB,GAAG,KAAKC,GAAG,KAAKC,IAAG,EAAGC,GAAGjB,KAAKkB,GAAG,IAAID,GAAGjB,GAAG,WAAW,OAAOA,KAAKiB,IACvc,SAASE,KAAK,OAAOjB,MAAM,KAAKE,GAAG,OAAO,GAAG,KAAKE,GAAG,OAAO,GAAG,KAAKC,GAAG,OAAO,GAAG,KAAKC,GAAG,OAAO,GAAG,KAAKE,GAAG,OAAO,GAAG,QAAQ,MAAMthJ,MAAMwpG,EAAE,OAAQ,SAASw4C,GAAG95I,GAAG,OAAOA,GAAG,KAAK,GAAG,OAAO84I,GAAG,KAAK,GAAG,OAAOE,GAAG,KAAK,GAAG,OAAOC,GAAG,KAAK,GAAG,OAAOC,GAAG,KAAK,GAAG,OAAOE,GAAG,QAAQ,MAAMthJ,MAAMwpG,EAAE,OAAQ,SAASy4C,GAAG/5I,EAAEC,GAAW,OAARD,EAAE85I,GAAG95I,GAAUk4I,GAAGl4I,EAAEC,GAAG,SAAS+5I,GAAGh6I,EAAEC,EAAEoL,GAAW,OAARrL,EAAE85I,GAAG95I,GAAUm4I,GAAGn4I,EAAEC,EAAEoL,GAAG,SAAS4uI,GAAGj6I,GAA8C,OAA3C,OAAOw5I,IAAIA,GAAG,CAACx5I,GAAGy5I,GAAGtB,GAAGW,GAAGoB,KAAKV,GAAG/iJ,KAAKuJ,GAAUs5I,GAAG,SAASa,KAAK,GAAG,OAAOV,GAAG,CAAC,IAAIz5I,EAAEy5I,GAAGA,GAAG,KAAKrB,GAAGp4I,GAAGk6I,KAC/e,SAASA,KAAK,IAAIR,IAAI,OAAOF,GAAG,CAACE,IAAG,EAAG,IAAI15I,EAAE,EAAE,IAAI,IAAIC,EAAEu5I,GAAGO,GAAG,IAAG,WAAW,KAAK/5I,EAAEC,EAAExQ,OAAOuQ,IAAI,CAAC,IAAIqL,EAAEpL,EAAED,GAAG,GAAGqL,EAAEA,GAAE,SAAU,OAAOA,OAAMmuI,GAAG,KAAK,MAAMnuI,GAAG,MAAM,OAAOmuI,KAAKA,GAAGA,GAAGxjJ,MAAMgK,EAAE,IAAIm4I,GAAGW,GAAGqB,IAAI9uI,EAA3J,QAAsKquI,IAAG,IAAK,IAAIU,GAAG,EAAE,SAASC,GAAGr6I,EAAEC,EAAEoL,GAAS,OAAO,YAAsC,IAAxB,WAAWrL,EAAEC,EAAE,KAA1CoL,GAAG,IAA6C,IAAMA,EAAE,SAASivI,GAAGt6I,EAAEC,GAAG,GAAGD,GAAGA,EAAE6yF,aAAyC,IAAI,IAAIxnF,KAAnCpL,EAAE9M,EAAE,GAAG8M,GAAGD,EAAEA,EAAE6yF,kBAA4B,IAAS5yF,EAAEoL,KAAKpL,EAAEoL,GAAGrL,EAAEqL,IAAI,OAAOpL,EAAE,IAAIs6I,GAAG,CAAC5wH,QAAQ,MAAM6wH,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAK,SAASC,KAAKD,GAAGD,GAAGD,GAAG,KAC3e,SAASI,GAAG56I,EAAEC,GAAG,IAAIoL,EAAErL,EAAE7D,KAAK4qB,SAAS7Y,GAAEqsI,GAAGlvI,EAAEutH,eAAiBvtH,EAAEutH,cAAc34H,EAAE,SAAS46I,GAAG76I,GAAG,IAAIC,EAAEs6I,GAAG5wH,QAAQ3b,GAAEusI,IAAMv6I,EAAE7D,KAAK4qB,SAAS6xG,cAAc34H,EAAE,SAAS66I,GAAG96I,EAAEC,GAAG,KAAK,OAAOD,GAAG,CAAC,IAAIqL,EAAErL,EAAEwjI,UAAU,GAAGxjI,EAAE+6I,oBAAoB96I,EAAED,EAAE+6I,oBAAoB96I,EAAE,OAAOoL,GAAGA,EAAE0vI,oBAAoB96I,IAAIoL,EAAE0vI,oBAAoB96I,OAAQ,MAAG,OAAOoL,GAAGA,EAAE0vI,oBAAoB96I,GAA+B,MAA7BoL,EAAE0vI,oBAAoB96I,EAAaD,EAAEA,EAAE69H,QAC7Y,SAASmd,GAAGh7I,EAAEC,GAAGu6I,GAAGx6I,EAAE06I,GAAGD,GAAG,KAAsB,QAAjBz6I,EAAEA,EAAEw6H,eAAuB,OAAOx6H,EAAEi7I,eAAej7I,EAAEk7I,gBAAgBj7I,IAAIk7I,IAAG,GAAIn7I,EAAEi7I,aAAa,MAAM,SAASG,GAAGp7I,EAAEC,GAAG,GAAGy6I,KAAK16I,IAAG,IAAKC,GAAG,IAAIA,EAAmG,GAA7F,kBAAkBA,GAAG,aAAaA,IAAEy6I,GAAG16I,EAAEC,EAAE,YAAWA,EAAE,CAAC+a,QAAQhb,EAAEijF,aAAahjF,EAAEtM,KAAK,MAAS,OAAO8mJ,GAAG,CAAC,GAAG,OAAOD,GAAG,MAAM1iJ,MAAMwpG,EAAE,MAAMm5C,GAAGx6I,EAAEu6I,GAAGhgB,aAAa,CAAC0gB,eAAe,EAAED,aAAah7I,EAAEo7I,WAAW,WAAWZ,GAAGA,GAAG9mJ,KAAKsM,EAAE,OAAOD,EAAE44H,cAAc,IAAI0iB,IAAG,EACvb,SAASC,GAAGv7I,GAAG,MAAM,CAACw7I,UAAUx7I,EAAEy7I,YAAY,KAAKC,WAAW,KAAKC,oBAAoB,KAAKC,mBAAmB,KAAKC,YAAY,KAAKC,WAAW,KAAKC,oBAAoB,KAAKC,mBAAmB,MAAM,SAASC,GAAGj8I,GAAG,MAAM,CAACw7I,UAAUx7I,EAAEw7I,UAAUC,YAAYz7I,EAAEy7I,YAAYC,WAAW17I,EAAE07I,WAAWC,oBAAoB,KAAKC,mBAAmB,KAAKC,YAAY,KAAKC,WAAW,KAAKC,oBAAoB,KAAKC,mBAAmB,MACna,SAASE,GAAGl8I,EAAEC,GAAG,MAAM,CAACi7I,eAAel7I,EAAEm8I,eAAel8I,EAAEu9H,IAAI,EAAE4e,QAAQ,KAAKr/I,SAAS,KAAKpJ,KAAK,KAAK0oJ,WAAW,MAAM,SAASC,GAAGt8I,EAAEC,GAAG,OAAOD,EAAE07I,WAAW17I,EAAEy7I,YAAYz7I,EAAE07I,WAAWz7I,GAAGD,EAAE07I,WAAW/nJ,KAAKsM,EAAED,EAAE07I,WAAWz7I,GAC1N,SAASs8I,GAAGv8I,EAAEC,GAAG,IAAIoL,EAAErL,EAAEwjI,UAAU,GAAG,OAAOn4H,EAAE,CAAC,IAAIxB,EAAE7J,EAAEw8I,YAAgBppJ,EAAE,KAAK,OAAOyW,IAAIA,EAAE7J,EAAEw8I,YAAYjB,GAAGv7I,EAAE2jI,qBAAqB95H,EAAE7J,EAAEw8I,YAAYppJ,EAAEiY,EAAEmxI,YAAY,OAAO3yI,EAAE,OAAOzW,GAAGyW,EAAE7J,EAAEw8I,YAAYjB,GAAGv7I,EAAE2jI,eAAevwI,EAAEiY,EAAEmxI,YAAYjB,GAAGlwI,EAAEs4H,gBAAgB95H,EAAE7J,EAAEw8I,YAAYP,GAAG7oJ,GAAG,OAAOA,IAAIA,EAAEiY,EAAEmxI,YAAYP,GAAGpyI,IAAI,OAAOzW,GAAGyW,IAAIzW,EAAEkpJ,GAAGzyI,EAAE5J,GAAG,OAAO4J,EAAE6xI,YAAY,OAAOtoJ,EAAEsoJ,YAAYY,GAAGzyI,EAAE5J,GAAGq8I,GAAGlpJ,EAAE6M,KAAKq8I,GAAGzyI,EAAE5J,GAAG7M,EAAEsoJ,WAAWz7I,GACja,SAASw8I,GAAGz8I,EAAEC,GAAG,IAAIoL,EAAErL,EAAEw8I,YAAiE,QAArDnxI,EAAE,OAAOA,EAAErL,EAAEw8I,YAAYjB,GAAGv7I,EAAE2jI,eAAe+Y,GAAG18I,EAAEqL,IAAYuwI,mBAAmBvwI,EAAEswI,oBAAoBtwI,EAAEuwI,mBAAmB37I,GAAGoL,EAAEuwI,mBAAmBjoJ,KAAKsM,EAAEoL,EAAEuwI,mBAAmB37I,GAAG,SAASy8I,GAAG18I,EAAEC,GAAG,IAAIoL,EAAErL,EAAEwjI,UAA+D,OAArD,OAAOn4H,GAAGpL,IAAIoL,EAAEmxI,cAAcv8I,EAAED,EAAEw8I,YAAYP,GAAGh8I,IAAWA,EACvT,SAAS08I,GAAG38I,EAAEC,EAAEoL,EAAExB,EAAEzW,EAAEE,GAAG,OAAO+X,EAAEmyH,KAAK,KAAK,EAAE,MAAmB,oBAAZx9H,EAAEqL,EAAE+wI,SAA8Bp8I,EAAEjK,KAAKzC,EAAEuW,EAAEzW,GAAG4M,EAAE,KAAK,EAAEA,EAAEyjI,WAAuB,KAAbzjI,EAAEyjI,UAAgB,GAAG,KAAK,EAAsD,GAAG,QAA3CrwI,EAAE,oBAAd4M,EAAEqL,EAAE+wI,SAAgCp8I,EAAEjK,KAAKzC,EAAEuW,EAAEzW,GAAG4M,SAAe,IAAS5M,EAAE,MAAM,OAAOD,EAAE,GAAG0W,EAAEzW,GAAG,KAAK,EAAEkoJ,IAAG,EAAG,OAAOzxI,EAC7Q,SAAS+yI,GAAG58I,EAAEC,EAAEoL,EAAExB,EAAEzW,GAAGkoJ,IAAG,EAAa,IAAI,IAAIhoJ,GAAlB2M,EAAEy8I,GAAG18I,EAAEC,IAAeu7I,UAAU7vI,EAAE,KAAK1B,EAAE,EAAE/L,EAAE+B,EAAEw7I,YAAYzxI,EAAE1W,EAAE,OAAO4K,GAAG,CAAC,IAAI0L,EAAE1L,EAAEg9I,eAAetxI,EAAExW,GAAG,OAAOuY,IAAIA,EAAEzN,EAAE5K,EAAE0W,GAAGC,EAAEL,IAAIK,EAAEL,KAAKizI,GAAGjzI,EAAE1L,EAAEi+I,gBAAgBnyI,EAAE2yI,GAAG38I,EAAEC,EAAE/B,EAAE8L,EAAEqB,EAAExB,GAAG,OAAO3L,EAAEnB,WAAWiD,EAAEyjI,WAAW,GAAGvlI,EAAEm+I,WAAW,KAAK,OAAOp8I,EAAE67I,WAAW77I,EAAE47I,YAAY57I,EAAE67I,WAAW59I,GAAG+B,EAAE67I,WAAWO,WAAWn+I,EAAE+B,EAAE67I,WAAW59I,KAAKA,EAAEA,EAAEvK,KAAY,IAAPiW,EAAE,KAAS1L,EAAE+B,EAAE07I,oBAAoB,OAAOz9I,GAAG,CAAC,IAAIhK,EAAEgK,EAAEg9I,eAAehnJ,EAAEd,GAAG,OAAOwW,IAAIA,EAAE1L,EAAE,OAAOyN,IAAIrY,EAAE0W,IAAIC,EAAE/V,IAAI+V,EAAE/V,KAAK8V,EAAE2yI,GAAG38I,EAAEC,EAAE/B,EAAE8L,EAAEqB,EAAExB,GAAG,OACnf3L,EAAEnB,WAAWiD,EAAEyjI,WAAW,GAAGvlI,EAAEm+I,WAAW,KAAK,OAAOp8I,EAAE+7I,mBAAmB/7I,EAAE87I,oBAAoB97I,EAAE+7I,mBAAmB99I,GAAG+B,EAAE+7I,mBAAmBK,WAAWn+I,EAAE+B,EAAE+7I,mBAAmB99I,KAAKA,EAAEA,EAAEvK,KAAK,OAAOgY,IAAI1L,EAAEy7I,WAAW,MAAM,OAAO9xI,EAAE3J,EAAE27I,mBAAmB,KAAK57I,EAAEyjI,WAAW,GAAG,OAAO93H,GAAG,OAAO/B,IAAItW,EAAE0W,GAAG/J,EAAEu7I,UAAUloJ,EAAE2M,EAAEw7I,YAAY9vI,EAAE1L,EAAE07I,oBAAoB/xI,EAAEkzI,GAAG7yI,GAAGjK,EAAEk7I,eAAejxI,EAAEjK,EAAE2jI,cAAc35H,EACxY,SAAS+yI,GAAG/8I,EAAEC,EAAEoL,GAAG,OAAOpL,EAAE07I,sBAAsB,OAAO17I,EAAEy7I,aAAaz7I,EAAEy7I,WAAW/nJ,KAAKsM,EAAE07I,oBAAoB17I,EAAEy7I,WAAWz7I,EAAE27I,oBAAoB37I,EAAE07I,oBAAoB17I,EAAE27I,mBAAmB,MAAMoB,GAAG/8I,EAAE47I,YAAYxwI,GAAGpL,EAAE47I,YAAY57I,EAAE67I,WAAW,KAAKkB,GAAG/8I,EAAE87I,oBAAoB1wI,GAAGpL,EAAE87I,oBAAoB97I,EAAE+7I,mBAAmB,KAAK,SAASgB,GAAGh9I,EAAEC,GAAG,KAAK,OAAOD,GAAG,CAAC,IAAIqL,EAAErL,EAAEjD,SAAS,GAAG,OAAOsO,EAAE,CAACrL,EAAEjD,SAAS,KAAK,IAAI8M,EAAE5J,EAAE,GAAG,oBAAoBoL,EAAE,MAAMvT,MAAMwpG,EAAE,IAAIj2F,IAAIA,EAAEtV,KAAK8T,GAAG7J,EAAEA,EAAEq8I,YACxd,IAAIY,GAAG5gB,EAAGvE,wBAAwBolB,IAAI,IAAIvlB,EAAGn1C,WAAW00C,KAAK,SAASimB,GAAGn9I,EAAEC,EAAEoL,EAAExB,GAA8BwB,EAAE,QAAXA,EAAEA,EAAExB,EAAtB5J,EAAED,EAAE2jI,sBAAmC,IAASt4H,EAAEpL,EAAE9M,EAAE,GAAG8M,EAAEoL,GAAGrL,EAAE2jI,cAAct4H,EAAkB,QAAhBxB,EAAE7J,EAAEw8I,cAAsB,IAAIx8I,EAAEk7I,iBAAiBrxI,EAAE2xI,UAAUnwI,GAC/N,IAAI+xI,GAAG,CAACtmB,UAAU,SAAS92H,GAAG,SAAOA,EAAEA,EAAEq9I,sBAAqB9Z,GAAGvjI,KAAKA,GAAMi3H,gBAAgB,SAASj3H,EAAEC,EAAEoL,GAAGrL,EAAEA,EAAEq9I,oBAAoB,IAAIxzI,EAAEyzI,KAAKlqJ,EAAE6pJ,GAAGllB,UAAqB3kI,EAAE8oJ,GAAdryI,EAAE0zI,GAAG1zI,EAAE7J,EAAE5M,GAAUA,IAAKgpJ,QAAQn8I,OAAE,IAASoL,GAAG,OAAOA,IAAIjY,EAAE2J,SAASsO,GAAGkxI,GAAGv8I,EAAE5M,GAAGoqJ,GAAGx9I,EAAE6J,IAAImtH,oBAAoB,SAASh3H,EAAEC,EAAEoL,GAAGrL,EAAEA,EAAEq9I,oBAAoB,IAAIxzI,EAAEyzI,KAAKlqJ,EAAE6pJ,GAAGllB,UAAqB3kI,EAAE8oJ,GAAdryI,EAAE0zI,GAAG1zI,EAAE7J,EAAE5M,GAAUA,IAAKoqI,IAAI,EAAEpqI,EAAEgpJ,QAAQn8I,OAAE,IAASoL,GAAG,OAAOA,IAAIjY,EAAE2J,SAASsO,GAAGkxI,GAAGv8I,EAAE5M,GAAGoqJ,GAAGx9I,EAAE6J,IAAIktH,mBAAmB,SAAS/2H,EAAEC,GAAGD,EAAEA,EAAEq9I,oBAAoB,IAAIhyI,EAAEiyI,KAAKzzI,EAAEozI,GAAGllB,UACveluH,EAAEqyI,GAAd7wI,EAAEkyI,GAAGlyI,EAAErL,EAAE6J,GAAUA,IAAK2zH,IAAI,OAAE,IAASv9H,GAAG,OAAOA,IAAI4J,EAAE9M,SAASkD,GAAGs8I,GAAGv8I,EAAE6J,GAAG2zI,GAAGx9I,EAAEqL,KAAK,SAASoyI,GAAGz9I,EAAEC,EAAEoL,EAAExB,EAAEzW,EAAEE,EAAEqY,GAAiB,MAAM,oBAApB3L,EAAEA,EAAEo8H,WAAsCshB,sBAAsB19I,EAAE09I,sBAAsB7zI,EAAEvW,EAAEqY,IAAG1L,EAAE5P,YAAW4P,EAAE5P,UAAUgnI,wBAAsBye,GAAGzqI,EAAExB,KAAKisI,GAAG1iJ,EAAEE,IAC7Q,SAASqqJ,GAAG39I,EAAEC,EAAEoL,GAAG,IAAIxB,GAAE,EAAGzW,EAAEkkJ,GAAOhkJ,EAAE2M,EAAE6zH,YAA8W,MAAlW,kBAAkBxgI,GAAG,OAAOA,EAAEA,EAAE8nJ,GAAG9nJ,IAAIF,EAAE0a,GAAE7N,GAAGs3I,GAAGppI,GAAEwb,QAAyBr2B,GAAGuW,EAAE,QAAtBA,EAAE5J,EAAEojF,oBAA4B,IAASx5E,GAAG2tI,GAAGx3I,EAAE5M,GAAGkkJ,IAAIr3I,EAAE,IAAIA,EAAEoL,EAAE/X,GAAG0M,EAAE2jI,cAAc,OAAO1jI,EAAEi6E,YAAO,IAASj6E,EAAEi6E,MAAMj6E,EAAEi6E,MAAM,KAAKj6E,EAAEk3H,QAAQimB,GAAGp9I,EAAEo8H,UAAUn8H,EAAEA,EAAEo9I,oBAAoBr9I,EAAE6J,KAAI7J,EAAEA,EAAEo8H,WAAYqb,4CAA4CrkJ,EAAE4M,EAAE03I,0CAA0CpkJ,GAAU2M,EAC9Z,SAAS29I,GAAG59I,EAAEC,EAAEoL,EAAExB,GAAG7J,EAAEC,EAAEi6E,MAAM,oBAAoBj6E,EAAEmiF,2BAA2BniF,EAAEmiF,0BAA0B/2E,EAAExB,GAAG,oBAAoB5J,EAAE49I,kCAAkC59I,EAAE49I,iCAAiCxyI,EAAExB,GAAG5J,EAAEi6E,QAAQl6E,GAAGo9I,GAAGpmB,oBAAoB/2H,EAAEA,EAAEi6E,MAAM,MAC/P,SAAS4jE,GAAG99I,EAAEC,EAAEoL,EAAExB,GAAG,IAAIzW,EAAE4M,EAAEo8H,UAAUhpI,EAAE7D,MAAM8b,EAAEjY,EAAE8mF,MAAMl6E,EAAE2jI,cAAcvwI,EAAE8jI,KAAKgmB,GAAG,IAAI5pJ,EAAE2M,EAAE6zH,YAAY,kBAAkBxgI,GAAG,OAAOA,EAAEF,EAAE4nB,QAAQogI,GAAG9nJ,IAAIA,EAAEwa,GAAE7N,GAAGs3I,GAAGppI,GAAEwb,QAAQv2B,EAAE4nB,QAAQw8H,GAAGx3I,EAAE1M,IAAoB,QAAhBA,EAAE0M,EAAEw8I,eAAuBI,GAAG58I,EAAE1M,EAAE+X,EAAEjY,EAAEyW,GAAGzW,EAAE8mF,MAAMl6E,EAAE2jI,eAA4C,oBAA7BrwI,EAAE2M,EAAEi0H,4BAAiDipB,GAAGn9I,EAAEC,EAAE3M,EAAE+X,GAAGjY,EAAE8mF,MAAMl6E,EAAE2jI,eAAe,oBAAoB1jI,EAAEi0H,0BAA0B,oBAAoB9gI,EAAE2qJ,yBAAyB,oBAAoB3qJ,EAAE4qJ,2BAA2B,oBACle5qJ,EAAE6qJ,qBAAqBh+I,EAAE7M,EAAE8mF,MAAM,oBAAoB9mF,EAAE6qJ,oBAAoB7qJ,EAAE6qJ,qBAAqB,oBAAoB7qJ,EAAE4qJ,2BAA2B5qJ,EAAE4qJ,4BAA4B/9I,IAAI7M,EAAE8mF,OAAOkjE,GAAGpmB,oBAAoB5jI,EAAEA,EAAE8mF,MAAM,MAAsB,QAAhB5mF,EAAE0M,EAAEw8I,eAAuBI,GAAG58I,EAAE1M,EAAE+X,EAAEjY,EAAEyW,GAAGzW,EAAE8mF,MAAMl6E,EAAE2jI,gBAAgB,oBAAoBvwI,EAAE+vF,oBAAoBnjF,EAAEyjI,WAAW,GAAG,IAAIya,GAAGnrJ,MAAMC,QACtX,SAASmrJ,GAAGn+I,EAAEC,EAAEoL,GAAW,GAAG,QAAXrL,EAAEqL,EAAEkiF,MAAiB,oBAAoBvtF,GAAG,kBAAkBA,EAAE,CAAC,GAAGqL,EAAEosH,OAAO,CAAY,GAAXpsH,EAAEA,EAAEosH,OAAY,CAAC,GAAG,IAAIpsH,EAAEmyH,IAAI,MAAM1lI,MAAMwpG,EAAE,MAAM,IAAIz3F,EAAEwB,EAAE+wH,UAAU,IAAIvyH,EAAE,MAAM/R,MAAMwpG,EAAE,IAAIthG,IAAI,IAAI5M,EAAE,GAAG4M,EAAE,OAAG,OAAOC,GAAG,OAAOA,EAAEstF,KAAK,oBAAoBttF,EAAEstF,KAAKttF,EAAEstF,IAAI6wD,aAAahrJ,EAAS6M,EAAEstF,MAAIttF,EAAE,SAASD,GAAG,IAAIC,EAAE4J,EAAEqtH,KAAKj3H,IAAIi9I,KAAKj9I,EAAE4J,EAAEqtH,KAAK,IAAI,OAAOl3H,SAASC,EAAE7M,GAAG6M,EAAE7M,GAAG4M,IAAKo+I,WAAWhrJ,EAAS6M,GAAE,GAAG,kBAAkBD,EAAE,MAAMlI,MAAMwpG,EAAE,MAAM,IAAIj2F,EAAEosH,OAAO,MAAM3/H,MAAMwpG,EAAE,IAAIthG,IAAK,OAAOA,EAChe,SAASq+I,GAAGr+I,EAAEC,GAAG,GAAG,aAAaD,EAAE7D,KAAK,MAAMrE,MAAMwpG,EAAE,GAAG,oBAAoBxxG,OAAOO,UAAUyE,SAASiB,KAAKkK,GAAG,qBAAqBnQ,OAAOuN,KAAK4C,GAAGnJ,KAAK,MAAM,IAAImJ,EAAE,KACpK,SAASq+I,GAAGt+I,GAAG,SAASC,EAAEA,EAAEoL,GAAG,GAAGrL,EAAE,CAAC,IAAI6J,EAAE5J,EAAE67I,WAAW,OAAOjyI,GAAGA,EAAEwyI,WAAWhxI,EAAEpL,EAAE67I,WAAWzwI,GAAGpL,EAAE47I,YAAY57I,EAAE67I,WAAWzwI,EAAEA,EAAEgxI,WAAW,KAAKhxI,EAAEo4H,UAAU,GAAG,SAASp4H,EAAEA,EAAExB,GAAG,IAAI7J,EAAE,OAAO,KAAK,KAAK,OAAO6J,GAAG5J,EAAEoL,EAAExB,GAAGA,EAAEA,EAAEk6H,QAAQ,OAAO,KAAK,SAASl6H,EAAE7J,EAAEC,GAAG,IAAID,EAAE,IAAIswB,IAAI,OAAOrwB,GAAG,OAAOA,EAAEjQ,IAAIgQ,EAAEgF,IAAI/E,EAAEjQ,IAAIiQ,GAAGD,EAAEgF,IAAI/E,EAAEpC,MAAMoC,GAAGA,EAAEA,EAAE8jI,QAAQ,OAAO/jI,EAAE,SAAS5M,EAAE4M,EAAEC,EAAEoL,GAAwC,OAArCrL,EAAE4uH,GAAG5uH,EAAEC,IAAOpC,MAAM,EAAEmC,EAAE+jI,QAAQ,KAAY/jI,EAAE,SAAS1M,EAAE2M,EAAEoL,EAAExB,GAAa,OAAV5J,EAAEpC,MAAMgM,EAAM7J,EAA4B,QAAjB6J,EAAE5J,EAAEujI,YAA6B35H,EAAEA,EAAEhM,OAAQwN,GAAGpL,EAAEwjI,UACtf,EAAEp4H,GAAGxB,GAAE5J,EAAEwjI,UAAU,EAASp4H,GADsaA,EACpa,SAASM,EAAE1L,GAA0C,OAAvCD,GAAG,OAAOC,EAAEujI,YAAYvjI,EAAEwjI,UAAU,GAAUxjI,EAAE,SAASgK,EAAEjK,EAAEC,EAAEoL,EAAExB,GAAG,OAAG,OAAO5J,GAAG,IAAIA,EAAEu9H,MAAWv9H,EAAE6uH,GAAGzjH,EAAErL,EAAEic,KAAKpS,IAAKg0H,OAAO79H,EAAEC,KAAEA,EAAE7M,EAAE6M,EAAEoL,IAAOwyH,OAAO79H,EAASC,GAAE,SAAS/B,EAAE8B,EAAEC,EAAEoL,EAAExB,GAAG,OAAG,OAAO5J,GAAGA,EAAE4hC,cAAcx2B,EAAElP,OAAY0N,EAAEzW,EAAE6M,EAAEoL,EAAE9b,QAAWg+F,IAAI4wD,GAAGn+I,EAAEC,EAAEoL,GAAGxB,EAAEg0H,OAAO79H,EAAE6J,KAAEA,EAAEmlH,GAAG3jH,EAAElP,KAAKkP,EAAErb,IAAIqb,EAAE9b,MAAM,KAAKyQ,EAAEic,KAAKpS,IAAK0jF,IAAI4wD,GAAGn+I,EAAEC,EAAEoL,GAAGxB,EAAEg0H,OAAO79H,EAAS6J,GAAE,SAASG,EAAEhK,EAAEC,EAAEoL,EAAExB,GAAG,OAAG,OAAO5J,GAAG,IAAIA,EAAEu9H,KAAKv9H,EAAEm8H,UAAUuJ,gBAAgBt6H,EAAEs6H,eAAe1lI,EAAEm8H,UAAUmiB,iBAC1elzI,EAAEkzI,iBAAsBt+I,EAAEivH,GAAG7jH,EAAErL,EAAEic,KAAKpS,IAAKg0H,OAAO79H,EAAEC,KAAEA,EAAE7M,EAAE6M,EAAEoL,EAAEk3E,UAAU,KAAQs7C,OAAO79H,EAASC,GAAE,SAAS2J,EAAE5J,EAAEC,EAAEoL,EAAExB,EAAEvW,GAAG,OAAG,OAAO2M,GAAG,IAAIA,EAAEu9H,MAAWv9H,EAAEmvH,GAAG/jH,EAAErL,EAAEic,KAAKpS,EAAEvW,IAAKuqI,OAAO79H,EAAEC,KAAEA,EAAE7M,EAAE6M,EAAEoL,IAAOwyH,OAAO79H,EAASC,GAAE,SAAS/L,EAAE8L,EAAEC,EAAEoL,GAAG,GAAG,kBAAkBpL,GAAG,kBAAkBA,EAAE,OAAOA,EAAE6uH,GAAG,GAAG7uH,EAAED,EAAEic,KAAK5Q,IAAKwyH,OAAO79H,EAAEC,EAAE,GAAG,kBAAkBA,GAAG,OAAOA,EAAE,CAAC,OAAOA,EAAEu3H,UAAU,KAAK+E,EAAG,OAAOlxH,EAAE2jH,GAAG/uH,EAAE9D,KAAK8D,EAAEjQ,IAAIiQ,EAAE1Q,MAAM,KAAKyQ,EAAEic,KAAK5Q,IAAKkiF,IAAI4wD,GAAGn+I,EAAE,KAAKC,GAAGoL,EAAEwyH,OAAO79H,EAAEqL,EAAE,KAAKmxH,EAAG,OAAOv8H,EAAEivH,GAAGjvH,EAAED,EAAEic,KAAK5Q,IAAKwyH,OAAO79H,EAAEC,EAAE,GAAGi+I,GAAGj+I,IAC3fo9H,EAAGp9H,GAAG,OAAOA,EAAEmvH,GAAGnvH,EAAED,EAAEic,KAAK5Q,EAAE,OAAQwyH,OAAO79H,EAAEC,EAAEo+I,GAAGr+I,EAAEC,GAAG,OAAO,KAAK,SAAShB,EAAEe,EAAEC,EAAEoL,EAAExB,GAAG,IAAIzW,EAAE,OAAO6M,EAAEA,EAAEjQ,IAAI,KAAK,GAAG,kBAAkBqb,GAAG,kBAAkBA,EAAE,OAAO,OAAOjY,EAAE,KAAK6W,EAAEjK,EAAEC,EAAE,GAAGoL,EAAExB,GAAG,GAAG,kBAAkBwB,GAAG,OAAOA,EAAE,CAAC,OAAOA,EAAEmsH,UAAU,KAAK+E,EAAG,OAAOlxH,EAAErb,MAAMoD,EAAEiY,EAAElP,OAAOsgI,EAAG7yH,EAAE5J,EAAEC,EAAEoL,EAAE9b,MAAMgzF,SAAS14E,EAAEzW,GAAG8K,EAAE8B,EAAEC,EAAEoL,EAAExB,GAAG,KAAK,KAAK2yH,EAAG,OAAOnxH,EAAErb,MAAMoD,EAAE4W,EAAEhK,EAAEC,EAAEoL,EAAExB,GAAG,KAAK,GAAGq0I,GAAG7yI,IAAIgyH,EAAGhyH,GAAG,OAAO,OAAOjY,EAAE,KAAKwW,EAAE5J,EAAEC,EAAEoL,EAAExB,EAAE,MAAMw0I,GAAGr+I,EAAEqL,GAAG,OAAO,KAAK,SAAS4C,EAAEjO,EAAEC,EAAEoL,EAAExB,EAAEzW,GAAG,GAAG,kBAAkByW,GAAG,kBAAkBA,EAAE,OAC5eI,EAAEhK,EADifD,EAClgBA,EAAEtE,IAAI2P,IAAI,KAAW,GAAGxB,EAAEzW,GAAG,GAAG,kBAAkByW,GAAG,OAAOA,EAAE,CAAC,OAAOA,EAAE2tH,UAAU,KAAK+E,EAAG,OAAOv8H,EAAEA,EAAEtE,IAAI,OAAOmO,EAAE7Z,IAAIqb,EAAExB,EAAE7Z,MAAM,KAAK6Z,EAAE1N,OAAOsgI,EAAG7yH,EAAE3J,EAAED,EAAE6J,EAAEta,MAAMgzF,SAASnvF,EAAEyW,EAAE7Z,KAAKkO,EAAE+B,EAAED,EAAE6J,EAAEzW,GAAG,KAAKopI,EAAG,OAA2CxyH,EAAE/J,EAAtCD,EAAEA,EAAEtE,IAAI,OAAOmO,EAAE7Z,IAAIqb,EAAExB,EAAE7Z,MAAM,KAAW6Z,EAAEzW,GAAG,GAAG8qJ,GAAGr0I,IAAIwzH,EAAGxzH,GAAG,OAAwBD,EAAE3J,EAAnBD,EAAEA,EAAEtE,IAAI2P,IAAI,KAAWxB,EAAEzW,EAAE,MAAMirJ,GAAGp+I,EAAE4J,GAAG,OAAO,KAAK,SAASozC,EAAE7pD,EAAEuY,EAAE1B,EAAE/L,GAAG,IAAI,IAAI8L,EAAE,KAAKJ,EAAE,KAAKxT,EAAEuV,EAAE3M,EAAE2M,EAAE,EAAEV,EAAE,KAAK,OAAO7U,GAAG4I,EAAEiL,EAAExa,OAAOuP,IAAI,CAAC5I,EAAEyH,MAAMmB,GAAGiM,EAAE7U,EAAEA,EAAE,MAAM6U,EAAE7U,EAAE2tI,QAAQ,IAAI3hI,EAAEnD,EAAE7L,EAAEgD,EAAE6T,EAAEjL,GAAGd,GAAG,GAAG,OAAOkE,EAAE,CAAC,OAAOhM,IAAIA,EAAE6U,GAAG,MAAMjL,GACrf5J,GAAG,OAAOgM,EAAEohI,WAAWvjI,EAAE7M,EAAEgD,GAAGuV,EAAErY,EAAE8O,EAAEuJ,EAAE3M,GAAG,OAAO4K,EAAEI,EAAE5H,EAAEwH,EAAEm6H,QAAQ3hI,EAAEwH,EAAExH,EAAEhM,EAAE6U,EAAE,GAAGjM,IAAIiL,EAAExa,OAAO,OAAO4b,EAAEjY,EAAEgD,GAAG4T,EAAE,GAAG,OAAO5T,EAAE,CAAC,KAAK4I,EAAEiL,EAAExa,OAAOuP,IAAkB,QAAd5I,EAAElC,EAAEd,EAAE6W,EAAEjL,GAAGd,MAAcyN,EAAErY,EAAE8C,EAAEuV,EAAE3M,GAAG,OAAO4K,EAAEI,EAAE5T,EAAEwT,EAAEm6H,QAAQ3tI,EAAEwT,EAAExT,GAAG,OAAO4T,EAAE,IAAI5T,EAAEyT,EAAEzW,EAAEgD,GAAG4I,EAAEiL,EAAExa,OAAOuP,IAAsB,QAAlBiM,EAAEgD,EAAE7X,EAAEhD,EAAE4L,EAAEiL,EAAEjL,GAAGd,MAAc8B,GAAG,OAAOiL,EAAEu4H,WAAWptI,EAAEixB,OAAO,OAAOpc,EAAEjb,IAAIgP,EAAEiM,EAAEjb,KAAK2b,EAAErY,EAAE2X,EAAEU,EAAE3M,GAAG,OAAO4K,EAAEI,EAAEiB,EAAErB,EAAEm6H,QAAQ94H,EAAErB,EAAEqB,GAA4C,OAAzCjL,GAAG5J,EAAEyO,SAAQ,SAAS7E,GAAG,OAAOC,EAAE7M,EAAE4M,MAAYgK,EAAE,SAASw0I,EAAGprJ,EAAEuY,EAAE1B,EAAE/L,GAAG,IAAI8L,EAAEqzH,EAAGpzH,GAAG,GAAG,oBAAoBD,EAAE,MAAMlS,MAAMwpG,EAAE,MACxe,GAAG,OAD2er3F,EAAED,EAAEjU,KAAKkU,IAC5e,MAAMnS,MAAMwpG,EAAE,MAAM,IAAI,IAAI13F,EAAEI,EAAE,KAAK5T,EAAEuV,EAAE3M,EAAE2M,EAAE,EAAEV,EAAE,KAAK7I,EAAE6H,EAAEtW,OAAO,OAAOyC,IAAIgM,EAAElQ,KAAK8M,IAAIoD,EAAE6H,EAAEtW,OAAO,CAACyC,EAAEyH,MAAMmB,GAAGiM,EAAE7U,EAAEA,EAAE,MAAM6U,EAAE7U,EAAE2tI,QAAQ,IAAI9mF,EAAEh+C,EAAE7L,EAAEgD,EAAEgM,EAAEtR,MAAMoN,GAAG,GAAG,OAAO++C,EAAE,CAAC,OAAO7mD,IAAIA,EAAE6U,GAAG,MAAMjL,GAAG5J,GAAG,OAAO6mD,EAAEumF,WAAWvjI,EAAE7M,EAAEgD,GAAGuV,EAAErY,EAAE2pD,EAAEtxC,EAAE3M,GAAG,OAAO4K,EAAEI,EAAEizC,EAAErzC,EAAEm6H,QAAQ9mF,EAAErzC,EAAEqzC,EAAE7mD,EAAE6U,EAAE,GAAG7I,EAAElQ,KAAK,OAAOmZ,EAAEjY,EAAEgD,GAAG4T,EAAE,GAAG,OAAO5T,EAAE,CAAC,MAAMgM,EAAElQ,KAAK8M,IAAIoD,EAAE6H,EAAEtW,OAAwB,QAAjByO,EAAElO,EAAEd,EAAEgP,EAAEtR,MAAMoN,MAAcyN,EAAErY,EAAE8O,EAAEuJ,EAAE3M,GAAG,OAAO4K,EAAEI,EAAE5H,EAAEwH,EAAEm6H,QAAQ3hI,EAAEwH,EAAExH,GAAG,OAAO4H,EAAE,IAAI5T,EAAEyT,EAAEzW,EAAEgD,IAAIgM,EAAElQ,KAAK8M,IAAIoD,EAAE6H,EAAEtW,OAA4B,QAArByO,EAAE6L,EAAE7X,EAAEhD,EAAE4L,EAAEoD,EAAEtR,MAAMoN,MAAc8B,GAAG,OAChfoC,EAAEohI,WAAWptI,EAAEixB,OAAO,OAAOjlB,EAAEpS,IAAIgP,EAAEoD,EAAEpS,KAAK2b,EAAErY,EAAE8O,EAAEuJ,EAAE3M,GAAG,OAAO4K,EAAEI,EAAE5H,EAAEwH,EAAEm6H,QAAQ3hI,EAAEwH,EAAExH,GAA4C,OAAzCpC,GAAG5J,EAAEyO,SAAQ,SAAS7E,GAAG,OAAOC,EAAE7M,EAAE4M,MAAYgK,EAAE,OAAO,SAAShK,EAAE6J,EAAEvW,EAAE2W,GAAG,IAAI/L,EAAE,kBAAkB5K,GAAG,OAAOA,GAAGA,EAAE6I,OAAOsgI,GAAI,OAAOnpI,EAAEtD,IAAIkO,IAAI5K,EAAEA,EAAE/D,MAAMgzF,UAAU,IAAIv4E,EAAE,kBAAkB1W,GAAG,OAAOA,EAAE,GAAG0W,EAAE,OAAO1W,EAAEkkI,UAAU,KAAK+E,EAAGv8H,EAAE,CAAS,IAARgK,EAAE1W,EAAEtD,IAAQkO,EAAE2L,EAAE,OAAO3L,GAAG,CAAC,GAAGA,EAAElO,MAAMga,EAAX,CAAa,GAAG,IAAI9L,EAAEs/H,IAAIlqI,EAAE6I,OAAOsgI,EAAGv+H,EAAE2jC,cAAcvuC,EAAE6I,KAAK,CAACkP,EAAErL,EAAE9B,EAAE6lI,UAASl6H,EAAEzW,EAAE8K,EAAE5K,EAAE6I,OAAOsgI,EAAGnpI,EAAE/D,MAAMgzF,SAASjvF,EAAE/D,QAAWg+F,IAAI4wD,GAAGn+I,EAAE9B,EAAE5K,GAAGuW,EAAEg0H,OAAO79H,EAAEA,EAAE6J,EAAE,MAAM7J,EAAOqL,EAAErL,EAClgB9B,GAAG,MAAW+B,EAAED,EAAE9B,GAAGA,EAAEA,EAAE6lI,QAAQzwI,EAAE6I,OAAOsgI,IAAI5yH,EAAEulH,GAAG97H,EAAE/D,MAAMgzF,SAASviF,EAAEic,KAAKhS,EAAE3W,EAAEtD,MAAO6tI,OAAO79H,EAAEA,EAAE6J,KAAII,EAAE+kH,GAAG17H,EAAE6I,KAAK7I,EAAEtD,IAAIsD,EAAE/D,MAAM,KAAKyQ,EAAEic,KAAKhS,IAAKsjF,IAAI4wD,GAAGn+I,EAAE6J,EAAEvW,GAAG2W,EAAE4zH,OAAO79H,EAAEA,EAAEiK,GAAG,OAAO0B,EAAE3L,GAAG,KAAKw8H,EAAGx8H,EAAE,CAAC,IAAI9B,EAAE5K,EAAEtD,IAAI,OAAO6Z,GAAG,CAAC,GAAGA,EAAE7Z,MAAMkO,EAAX,CAAa,GAAG,IAAI2L,EAAE2zH,KAAK3zH,EAAEuyH,UAAUuJ,gBAAgBryI,EAAEqyI,eAAe97H,EAAEuyH,UAAUmiB,iBAAiBjrJ,EAAEirJ,eAAe,CAAClzI,EAAErL,EAAE6J,EAAEk6H,UAASl6H,EAAEzW,EAAEyW,EAAEvW,EAAEivF,UAAU,KAAQs7C,OAAO79H,EAAEA,EAAE6J,EAAE,MAAM7J,EAAOqL,EAAErL,EAAE6J,GAAG,MAAW5J,EAAED,EAAE6J,GAAGA,EAAEA,EAAEk6H,SAAQl6H,EAAEqlH,GAAG57H,EAAE0M,EAAEic,KAAKhS,IAAK4zH,OAAO79H,EAAEA,EAAE6J,EAAE,OAAO8B,EAAE3L,GAAG,GAAG,kBACne1M,GAAG,kBAAkBA,EAAE,OAAOA,EAAE,GAAGA,EAAE,OAAOuW,GAAG,IAAIA,EAAE2zH,KAAKnyH,EAAErL,EAAE6J,EAAEk6H,UAASl6H,EAAEzW,EAAEyW,EAAEvW,IAAOuqI,OAAO79H,EAAEA,EAAE6J,IAAIwB,EAAErL,EAAE6J,IAAGA,EAAEilH,GAAGx7H,EAAE0M,EAAEic,KAAKhS,IAAK4zH,OAAO79H,EAAEA,EAAE6J,GAAG8B,EAAE3L,GAAG,GAAGk+I,GAAG5qJ,GAAG,OAAO2pD,EAAEj9C,EAAE6J,EAAEvW,EAAE2W,GAAG,GAAGozH,EAAG/pI,GAAG,OAAOkrJ,EAAGx+I,EAAE6J,EAAEvW,EAAE2W,GAAc,GAAXD,GAAGq0I,GAAGr+I,EAAE1M,GAAM,qBAAqBA,IAAI4K,EAAE,OAAO8B,EAAEw9H,KAAK,KAAK,EAAE,KAAK,EAAE,MAAMx9H,EAAEA,EAAE7D,KAAKrE,MAAMwpG,EAAE,IAAIthG,EAAE+zH,aAAa/zH,EAAE+c,MAAM,cAAe,OAAO1R,EAAErL,EAAE6J,IAAI,IAAIosG,GAAGqoC,IAAG,GAAIhvB,GAAGgvB,IAAG,GAAI9uB,GAAG,GAAGivB,GAAG,CAAC90H,QAAQ6lG,IAAIkvB,GAAG,CAAC/0H,QAAQ6lG,IAAImvB,GAAG,CAACh1H,QAAQ6lG,IAAI,SAASpxD,GAAGp+D,GAAG,GAAGA,IAAIwvH,GAAG,MAAM13H,MAAMwpG,EAAE,MAAM,OAAOthG,EACve,SAAS4+I,GAAG5+I,EAAEC,GAAGiO,GAAEywI,GAAG1+I,GAAKiO,GAAEwwI,GAAG1+I,GAAKkO,GAAEuwI,GAAGjvB,IAAM,IAAInkH,EAAEpL,EAAEsiI,SAAS,OAAOl3H,GAAG,KAAK,EAAE,KAAK,GAAGpL,GAAGA,EAAEA,EAAE4+I,iBAAiB5+I,EAAEkiI,aAAaL,GAAG,KAAK,IAAI,MAAM,QAAkE7hI,EAAE6hI,GAArC7hI,GAAvBoL,EAAE,IAAIA,EAAEpL,EAAEosB,WAAWpsB,GAAMkiI,cAAc,KAAK92H,EAAEA,EAAEyzI,SAAkB9wI,GAAEywI,IAAMvwI,GAAEuwI,GAAGx+I,GAAK,SAAS8+I,GAAG/+I,GAAGgO,GAAEywI,IAAMzwI,GAAE0wI,IAAM1wI,GAAE2wI,IAAM,SAASK,GAAGh/I,GAAGo+D,GAAGugF,GAAGh1H,SAAS,IAAI1pB,EAAEm+D,GAAGqgF,GAAG90H,SAAate,EAAEy2H,GAAG7hI,EAAED,EAAE7D,MAAM8D,IAAIoL,IAAI6C,GAAEwwI,GAAG1+I,GAAKkO,GAAEuwI,GAAGpzI,IAAM,SAAS4zI,GAAGj/I,GAAG0+I,GAAG/0H,UAAU3pB,IAAIgO,GAAEywI,IAAMzwI,GAAE0wI,KAAO,IAAI7wI,GAAE,CAAC8b,QAAQ,GAC3b,SAASu1H,GAAGl/I,GAAG,IAAI,IAAIC,EAAED,EAAE,OAAOC,GAAG,CAAC,GAAG,KAAKA,EAAEu9H,IAAI,CAAC,IAAInyH,EAAEpL,EAAE0jI,cAAc,GAAG,OAAOt4H,IAAmB,QAAfA,EAAEA,EAAEu4H,aA1DqJ,OA0DhIv4H,EAAE9S,MA1DsI,OA0D3H8S,EAAE9S,MAAW,OAAO0H,OAAO,GAAG,KAAKA,EAAEu9H,UAAK,IAASv9H,EAAEk/I,cAAcC,aAAa,GAAG,KAAiB,GAAZn/I,EAAEwjI,WAAc,OAAOxjI,OAAO,GAAG,OAAOA,EAAE6jI,MAAM,CAAC7jI,EAAE6jI,MAAMjG,OAAO59H,EAAEA,EAAEA,EAAE6jI,MAAM,SAAS,GAAG7jI,IAAID,EAAE,MAAM,KAAK,OAAOC,EAAE8jI,SAAS,CAAC,GAAG,OAAO9jI,EAAE49H,QAAQ59H,EAAE49H,SAAS79H,EAAE,OAAO,KAAKC,EAAEA,EAAE49H,OAAO59H,EAAE8jI,QAAQlG,OAAO59H,EAAE49H,OAAO59H,EAAEA,EAAE8jI,QAAQ,OAAO,KAAK,SAASsb,GAAGr/I,EAAEC,GAAG,MAAM,CAACq/I,UAAUt/I,EAAEzQ,MAAM0Q,GACve,IAAIs/I,GAAGljB,EAAGxE,uBAAuBjqH,GAAEyuH,EAAGvE,wBAAwB0nB,GAAG,EAAEC,GAAG,KAAK9xI,GAAE,KAAK+xI,GAAG,KAAKC,GAAG,KAAKjyI,GAAE,KAAKkyI,GAAG,KAAKC,GAAG,EAAEC,GAAG,KAAKC,GAAG,EAAEC,IAAG,EAAGC,GAAG,KAAKC,GAAG,EAAE,SAASzyI,KAAI,MAAM3V,MAAMwpG,EAAE,MAAO,SAAS6+C,GAAGngJ,EAAEC,GAAG,GAAG,OAAOA,EAAE,OAAM,EAAG,IAAI,IAAIoL,EAAE,EAAEA,EAAEpL,EAAExQ,QAAQ4b,EAAErL,EAAEvQ,OAAO4b,IAAI,IAAIuqI,GAAG51I,EAAEqL,GAAGpL,EAAEoL,IAAI,OAAM,EAAG,OAAM,EACtS,SAAS+0I,GAAGpgJ,EAAEC,EAAEoL,EAAExB,EAAEzW,EAAEE,GAAkF,GAA/EksJ,GAAGlsJ,EAAEmsJ,GAAGx/I,EAAEy/I,GAAG,OAAO1/I,EAAEA,EAAE2jI,cAAc,KAAK4b,GAAG51H,QAAQ,OAAO+1H,GAAGW,GAAGC,GAAGrgJ,EAAEoL,EAAExB,EAAEzW,GAAM4sJ,GAAG,CAAC,GAAGA,IAAG,EAAGE,IAAI,EAAER,GAAG,OAAO1/I,EAAEA,EAAE2jI,cAAc,KAAKic,GAAGD,GAAGG,GAAGpyI,GAAEC,GAAE,KAAK4xI,GAAG51H,QAAQ22H,GAAGrgJ,EAAEoL,EAAExB,EAAEzW,SAAS4sJ,IAAIC,GAAG,KAAKC,GAAG,EAAmK,GAAjKX,GAAG51H,QAAQ42H,IAAGvgJ,EAAEy/I,IAAK9b,cAAcgc,GAAG3/I,EAAEk7I,eAAe2E,GAAG7/I,EAAEw8I,YAAYsD,GAAG9/I,EAAEyjI,WAAWsc,GAAG//I,EAAE,OAAO2N,IAAG,OAAOA,GAAEha,KAAK6rJ,GAAG,EAAEI,GAAGlyI,GAAEiyI,GAAGD,GAAG/xI,GAAE8xI,GAAG,KAAKI,GAAG,EAAEC,GAAG,KAAKC,GAAG,EAAK//I,EAAE,MAAMlI,MAAMwpG,EAAE,MAAM,OAAOrhG,EACha,SAASugJ,KAAKjB,GAAG51H,QAAQ42H,GAAGf,GAAG,EAAEI,GAAGlyI,GAAEiyI,GAAGD,GAAG/xI,GAAE8xI,GAAG,KAAKI,GAAG,EAAEC,GAAG,KAAKC,GAAG,EAAEC,IAAG,EAAGC,GAAG,KAAKC,GAAG,EAAE,SAASO,KAAK,IAAIzgJ,EAAE,CAAC2jI,cAAc,KAAK6X,UAAU,KAAKkF,MAAM,KAAKC,WAAW,KAAKhtJ,KAAK,MAAiC,OAA3B,OAAO+Z,GAAEiyI,GAAGjyI,GAAE1N,EAAE0N,GAAEA,GAAE/Z,KAAKqM,EAAS0N,GAAE,SAASkzI,KAAK,GAAG,OAAOhB,GAAQA,IAALlyI,GAAEkyI,IAAQjsJ,KAAU+rJ,GAAG,QAAR/xI,GAAE+xI,IAAe/xI,GAAEha,KAAK,SAAS,CAAC,GAAG,OAAO+rJ,GAAG,MAAM5nJ,MAAMwpG,EAAE,MAAW,IAAIthG,EAAE,CAAC2jI,eAAZh2H,GAAE+xI,IAA0B/b,cAAc6X,UAAU7tI,GAAE6tI,UAAUkF,MAAM/yI,GAAE+yI,MAAMC,WAAWhzI,GAAEgzI,WAAWhtJ,KAAK,MAAM+Z,GAAE,OAAOA,GAAEiyI,GAAG3/I,EAAE0N,GAAE/Z,KAAKqM,EAAE0/I,GAAG/xI,GAAEha,KAAK,OAAO+Z,GACpe,SAASmzI,GAAG7gJ,EAAEC,GAAG,MAAM,oBAAoBA,EAAEA,EAAED,GAAGC,EAClD,SAAS6gJ,GAAG9gJ,GAAG,IAAIC,EAAE2gJ,KAAKv1I,EAAEpL,EAAEygJ,MAAM,GAAG,OAAOr1I,EAAE,MAAMvT,MAAMwpG,EAAE,MAA8B,GAAxBj2F,EAAE01I,oBAAoB/gJ,EAAK,EAAEkgJ,GAAG,CAAC,IAAIr2I,EAAEwB,EAAE21I,SAAS,GAAG,OAAOf,GAAG,CAAC,IAAI7sJ,EAAE6sJ,GAAGvkJ,IAAI2P,GAAG,QAAG,IAASjY,EAAE,CAAC6sJ,GAAG54H,OAAOhc,GAAG,IAAI/X,EAAE2M,EAAE0jI,cAAc,GAAGrwI,EAAE0M,EAAE1M,EAAEF,EAAE2nF,QAAQ3nF,EAAEA,EAAEO,WAAW,OAAOP,GAAiH,OAA9GwiJ,GAAGtiJ,EAAE2M,EAAE0jI,iBAAiBwX,IAAG,GAAIl7I,EAAE0jI,cAAcrwI,EAAE2M,EAAE0gJ,aAAat1I,EAAEhH,OAAOpE,EAAEu7I,UAAUloJ,GAAG+X,EAAE41I,kBAAkB3tJ,EAAQ,CAACA,EAAEuW,IAAI,MAAM,CAAC5J,EAAE0jI,cAAc95H,GAAGA,EAAEwB,EAAEhH,KAAK,IAAIsH,EAAE1L,EAAE0gJ,WAA4F,GAAjFrtJ,EAAE2M,EAAEu7I,UAAU,OAAO7vI,GAAG,OAAO9B,IAAIA,EAAElW,KAAK,MAAMkW,EAAE8B,EAAEhY,MAAMkW,EAAE,OAAOA,EAAEA,EAAElW,KAAK,KAAQ,OACvfkW,EAAE,CAAC,IAAII,EAAE7W,EAAE,KAAK8K,EAAE2L,EAAEG,GAAE,EAAG,EAAE,CAAC,IAAIJ,EAAE1L,EAAEg9I,eAAetxI,EAAE41I,IAAIx1I,IAAIA,GAAE,EAAGC,EAAE0B,EAAEvY,EAAEE,GAAGsW,EAAEi2I,IAAU/C,GAAL+C,GAAGj2I,KAAYizI,GAAGjzI,EAAE1L,EAAEi+I,gBAAgB7oJ,EAAE4K,EAAEgjJ,eAAelhJ,EAAE9B,EAAEijJ,WAAWnhJ,EAAE1M,EAAE4K,EAAE68E,SAASpvE,EAAEzN,EAAEA,EAAEA,EAAEvK,WAAW,OAAOuK,GAAGA,IAAI2L,GAAGG,IAAIC,EAAE0B,EAAEvY,EAAEE,GAAGsiJ,GAAGtiJ,EAAE2M,EAAE0jI,iBAAiBwX,IAAG,GAAIl7I,EAAE0jI,cAAcrwI,EAAE2M,EAAE0gJ,WAAW12I,EAAEhK,EAAEu7I,UAAUpoJ,EAAEiY,EAAE41I,kBAAkB3tJ,EAAE,MAAM,CAAC2M,EAAE0jI,cAAct4H,EAAE21I,UACvV,SAASI,GAAGphJ,GAAG,IAAIC,EAAEwgJ,KAAiL,MAA5K,oBAAoBzgJ,IAAIA,EAAEA,KAAKC,EAAE0jI,cAAc1jI,EAAEu7I,UAAUx7I,EAAiFA,GAA/EA,EAAEC,EAAEygJ,MAAM,CAACr8I,KAAK,KAAK28I,SAAS,KAAKD,oBAAoBF,GAAGI,kBAAkBjhJ,IAAOghJ,SAASK,GAAG5zG,KAAK,KAAKgyG,GAAGz/I,GAAS,CAACC,EAAE0jI,cAAc3jI,GAAG,SAASshJ,GAAGthJ,GAAG,OAAO8gJ,GAAGD,IAAM,SAASU,GAAGvhJ,EAAEC,EAAEoL,EAAExB,GAAwM,OAArM7J,EAAE,CAACw9H,IAAIx9H,EAAEpP,OAAOqP,EAAEy5F,QAAQruF,EAAE25F,KAAKn7F,EAAElW,KAAK,MAAM,OAAOmsJ,IAAIA,GAAG,CAAChE,WAAW,OAASA,WAAW97I,EAAErM,KAAKqM,EAAoB,QAAhBC,EAAE6/I,GAAGhE,YAAoBgE,GAAGhE,WAAW97I,EAAErM,KAAKqM,GAAGqL,EAAEpL,EAAEtM,KAAKsM,EAAEtM,KAAKqM,EAAEA,EAAErM,KAAK0X,EAAEy0I,GAAGhE,WAAW97I,GAAWA,EAChe,SAASwhJ,GAAGxhJ,EAAEC,EAAEoL,EAAExB,GAAG,IAAIzW,EAAEqtJ,KAAKV,IAAI//I,EAAE5M,EAAEuwI,cAAc4d,GAAGthJ,EAAEoL,OAAE,OAAO,IAASxB,EAAE,KAAKA,GAAG,SAAS43I,GAAGzhJ,EAAEC,EAAEoL,EAAExB,GAAG,IAAIzW,EAAEwtJ,KAAK/2I,OAAE,IAASA,EAAE,KAAKA,EAAE,IAAIvW,OAAE,EAAO,GAAG,OAAOqa,GAAE,CAAC,IAAIhC,EAAEgC,GAAEg2H,cAA0B,GAAZrwI,EAAEqY,EAAE+tF,QAAW,OAAO7vF,GAAGs2I,GAAGt2I,EAAE8B,EAAEq5F,MAAmB,YAAZu8C,GAAG,EAAEl2I,EAAE/X,EAAEuW,GAAWk2I,IAAI//I,EAAE5M,EAAEuwI,cAAc4d,GAAGthJ,EAAEoL,EAAE/X,EAAEuW,GAAG,SAAS63I,GAAG1hJ,EAAEC,GAAG,OAAOuhJ,GAAG,IAAI,IAAIxhJ,EAAEC,GAAG,SAAS0hJ,GAAG3hJ,EAAEC,GAAG,OAAOwhJ,GAAG,IAAI,IAAIzhJ,EAAEC,GACrW,SAAS2hJ,GAAG5hJ,EAAEC,GAAG,MAAG,oBAAoBA,GAASD,EAAEA,IAAIC,EAAED,GAAG,WAAWC,EAAE,QAAU,OAAOA,QAAG,IAASA,GAASD,EAAEA,IAAIC,EAAE0pB,QAAQ3pB,EAAE,WAAWC,EAAE0pB,QAAQ,YAAtE,EAA4E,SAASk4H,MAAM,SAASC,GAAG9hJ,EAAEC,GAA4C,OAAzCwgJ,KAAK9c,cAAc,CAAC3jI,OAAE,IAASC,EAAE,KAAKA,GAAUD,EAAE,SAAS+hJ,GAAG/hJ,EAAEC,GAAG,IAAIoL,EAAEu1I,KAAK3gJ,OAAE,IAASA,EAAE,KAAKA,EAAE,IAAI4J,EAAEwB,EAAEs4H,cAAc,OAAG,OAAO95H,GAAG,OAAO5J,GAAGkgJ,GAAGlgJ,EAAE4J,EAAE,IAAWA,EAAE,IAAGwB,EAAEs4H,cAAc,CAAC3jI,EAAEC,GAAUD,GAC/X,SAASqhJ,GAAGrhJ,EAAEC,EAAEoL,GAAG,KAAK,GAAG60I,IAAI,MAAMpoJ,MAAMwpG,EAAE,MAAM,IAAIz3F,EAAE7J,EAAEwjI,UAAU,GAAGxjI,IAAIy/I,IAAI,OAAO51I,GAAGA,IAAI41I,GAAG,GAAGO,IAAG,EAAGhgJ,EAAE,CAACk7I,eAAesE,GAAGrD,eAAe,KAAKphE,OAAO1vE,EAAE61I,aAAa,KAAKC,WAAW,KAAKxtJ,KAAK,MAAM,OAAOssJ,KAAKA,GAAG,IAAI3vH,UAAiB,KAAZjlB,EAAE40I,GAAGvkJ,IAAIuE,IAAcggJ,GAAGj7I,IAAI/E,EAAED,OAAO,CAAC,IAAIC,EAAEoL,EAAE,OAAOpL,EAAEtM,MAAMsM,EAAEA,EAAEtM,KAAKsM,EAAEtM,KAAKqM,MAAM,CAAC,IAAI5M,EAAEkqJ,KAAKhqJ,EAAE2pJ,GAAGllB,SAAqBzkI,EAAE,CAAC4nJ,eAAf9nJ,EAAEmqJ,GAAGnqJ,EAAE4M,EAAE1M,GAAuB6oJ,eAAe7oJ,EAAEynF,OAAO1vE,EAAE61I,aAAa,KAAKC,WAAW,KAAKxtJ,KAAK,MAAM,IAAIgY,EAAE1L,EAAEoE,KAAK,GAAG,OAAOsH,EAAErY,EAAEK,KAAKL,MAAM,CAAC,IAAI2W,EAAE0B,EAAEhY,KAAK,OAAOsW,IACjf3W,EAAEK,KAAKsW,GAAG0B,EAAEhY,KAAKL,EAAW,GAAT2M,EAAEoE,KAAK/Q,EAAK,IAAI0M,EAAEk7I,iBAAiB,OAAOrxI,GAAG,IAAIA,EAAEqxI,iBAA0C,QAAxBrxI,EAAE5J,EAAE8gJ,qBAA8B,IAAI,IAAI7iJ,EAAE+B,EAAEghJ,kBAAkBj3I,EAAEH,EAAE3L,EAAEmN,GAAmC,GAAhC/X,EAAE4tJ,aAAar3I,EAAEvW,EAAE6tJ,WAAWn3I,EAAK4rI,GAAG5rI,EAAE9L,GAAG,OAAO,MAAM0L,IAAa4zI,GAAGx9I,EAAE5M,IAC5O,IAAImtJ,GAAG,CAACyB,YAAY5G,GAAG9hB,YAAY7rH,GAAE8rH,WAAW9rH,GAAEksF,UAAUlsF,GAAEgsH,oBAAoBhsH,GAAEisH,gBAAgBjsH,GAAEksH,QAAQlsH,GAAEmsH,WAAWnsH,GAAE4rF,OAAO5rF,GAAEosH,SAASpsH,GAAE+rH,cAAc/rH,GAAEw0I,aAAax0I,GAAEy0I,iBAAiBz0I,GAAE00I,cAAc10I,IAAG4yI,GAAG,CAAC2B,YAAY5G,GAAG9hB,YAAYwoB,GAAGvoB,WAAW6hB,GAAGzhD,UAAU+nD,GAAGjoB,oBAAoB,SAASz5H,EAAEC,EAAEoL,GAA6C,OAA1CA,EAAE,OAAOA,QAAG,IAASA,EAAEA,EAAE/V,OAAO,CAAC0K,IAAI,KAAYwhJ,GAAG,EAAE,GAAGI,GAAGn0G,KAAK,KAAKxtC,EAAED,GAAGqL,IAAIquH,gBAAgB,SAAS15H,EAAEC,GAAG,OAAOuhJ,GAAG,EAAE,GAAGxhJ,EAAEC,IAAI05H,QAAQ,SAAS35H,EAAEC,GAAG,IAAIoL,EAAEo1I,KAC7c,OADkdxgJ,OAAE,IAASA,EAAE,KAAKA,EAAED,EAAEA,IAAIqL,EAAEs4H,cACpf,CAAC3jI,EAAEC,GAAUD,GAAG45H,WAAW,SAAS55H,EAAEC,EAAEoL,GAAG,IAAIxB,EAAE42I,KAAqK,OAAhKxgJ,OAAE,IAASoL,EAAEA,EAAEpL,GAAGA,EAAE4J,EAAE85H,cAAc95H,EAAE2xI,UAAUv7I,EAAgFD,GAA9EA,EAAE6J,EAAE62I,MAAM,CAACr8I,KAAK,KAAK28I,SAAS,KAAKD,oBAAoB/gJ,EAAEihJ,kBAAkBhhJ,IAAO+gJ,SAASK,GAAG5zG,KAAK,KAAKgyG,GAAGz/I,GAAS,CAAC6J,EAAE85H,cAAc3jI,IAAIq5F,OAAO,SAASr5F,GAA4B,OAAdA,EAAE,CAAC2pB,QAAQ3pB,GAAhBygJ,KAA4B9c,cAAc3jI,GAAG65H,SAASunB,GAAG5nB,cAAcqoB,GAAGI,aAAa5C,GAAG6C,iBAAiB,SAASliJ,EAAEC,GAAG,IAAIoL,EAAE+1I,GAAGphJ,GAAG6J,EAAEwB,EAAE,GAAGjY,EAAEiY,EAAE,GAC7Y,OADgZq2I,IAAG,WAAWz7C,EAAEm8C,eAAc,WAAW,IAAI/2I,EAAEuC,GAAEmqH,SAASnqH,GAAEmqH,cAAS,IAAS93H,EAAE,KAAKA,EAAE,IAAI7M,EAAE4M,GAAN,QAAiB4N,GAAEmqH,SACvgB1sH,QAAM,CAACrL,EAAEC,IAAW4J,GAAGs4I,cAAc,SAASniJ,GAAG,IAAIC,EAAEmhJ,IAAG,GAAI/1I,EAAEpL,EAAE,GAAG4J,EAAE5J,EAAE,GAAG,MAAM,CAAC6hJ,IAAG,SAAS7hJ,GAAG4J,GAAE,GAAIo8F,EAAEm8C,eAAc,WAAW,IAAI/2I,EAAEuC,GAAEmqH,SAASnqH,GAAEmqH,cAAS,IAAS/3H,EAAE,KAAKA,EAAE,IAAI6J,GAAE,GAAI5J,IAAV,QAAsB2N,GAAEmqH,SAAS1sH,QAAM,CAACrL,EAAEqL,IAAIA,KAAKi1I,GAAG,CAAC0B,YAAY5G,GAAG9hB,YAAYyoB,GAAGxoB,WAAW6hB,GAAGzhD,UAAUgoD,GAAGloB,oBAAoB,SAASz5H,EAAEC,EAAEoL,GAA6C,OAA1CA,EAAE,OAAOA,QAAG,IAASA,EAAEA,EAAE/V,OAAO,CAAC0K,IAAI,KAAYyhJ,GAAG,EAAE,GAAGG,GAAGn0G,KAAK,KAAKxtC,EAAED,GAAGqL,IAAIquH,gBAAgB,SAAS15H,EAAEC,GAAG,OAAOwhJ,GAAG,EAAE,GAAGzhJ,EAAEC,IAAI05H,QAAQ,SAAS35H,EAAEC,GAAG,IAAIoL,EAAEu1I,KAAK3gJ,OAAE,IAASA,EACnf,KAAKA,EAAE,IAAI4J,EAAEwB,EAAEs4H,cAAc,OAAG,OAAO95H,GAAG,OAAO5J,GAAGkgJ,GAAGlgJ,EAAE4J,EAAE,IAAWA,EAAE,IAAG7J,EAAEA,IAAIqL,EAAEs4H,cAAc,CAAC3jI,EAAEC,GAAUD,IAAG45H,WAAWknB,GAAGznD,OAAO,WAAW,OAAOunD,KAAKjd,eAAe9J,SAASynB,GAAG9nB,cAAcqoB,GAAGI,aAAa5C,GAAG6C,iBAAiB,SAASliJ,EAAEC,GAAG,IAAIoL,EAAEi2I,KAAMz3I,EAAEwB,EAAE,GAAGjY,EAAEiY,EAAE,GAAmI,OAAhIs2I,IAAG,WAAW17C,EAAEm8C,eAAc,WAAW,IAAI/2I,EAAEuC,GAAEmqH,SAASnqH,GAAEmqH,cAAS,IAAS93H,EAAE,KAAKA,EAAE,IAAI7M,EAAE4M,GAAN,QAAiB4N,GAAEmqH,SAAS1sH,QAAM,CAACrL,EAAEC,IAAW4J,GAAGs4I,cAAc,SAASniJ,GAAG,IAAIC,EAAEqhJ,KAAOj2I,EAAEpL,EAAE,GAAG4J,EAAE5J,EAAE,GAAG,MAAM,CAAC8hJ,IAAG,SAAS9hJ,GAAG4J,GAAE,GAAIo8F,EAAEm8C,eAAc,WAAW,IAAI/2I,EAC5gBuC,GAAEmqH,SAASnqH,GAAEmqH,cAAS,IAAS/3H,EAAE,KAAKA,EAAE,IAAI6J,GAAE,GAAI5J,IAAV,QAAsB2N,GAAEmqH,SAAS1sH,QAAM,CAACrL,EAAEqL,IAAIA,KAAK2zD,GAAG,KAAKqjF,GAAG,KAAKC,IAAG,EAAG,SAASC,GAAGviJ,EAAEC,GAAG,IAAIoL,EAAEm3I,GAAG,EAAE,KAAK,KAAK,GAAGn3I,EAAEw2B,YAAY,UAAUx2B,EAAElP,KAAK,UAAUkP,EAAE+wH,UAAUn8H,EAAEoL,EAAEwyH,OAAO79H,EAAEqL,EAAEo4H,UAAU,EAAE,OAAOzjI,EAAE87I,YAAY97I,EAAE87I,WAAWO,WAAWhxI,EAAErL,EAAE87I,WAAWzwI,GAAGrL,EAAE67I,YAAY77I,EAAE87I,WAAWzwI,EACpU,SAASnH,GAAGlE,EAAEC,GAAG,OAAOD,EAAEw9H,KAAK,KAAK,EAAE,IAAInyH,EAAErL,EAAE7D,KAAyE,OAAO,QAA3E8D,EAAE,IAAIA,EAAEsiI,UAAUl3H,EAAE6M,gBAAgBjY,EAAE2/H,SAAS1nH,cAAc,KAAKjY,KAAmBD,EAAEo8H,UAAUn8H,GAAE,GAAO,KAAK,EAAE,OAAoD,QAA7CA,EAAE,KAAKD,EAAEyiJ,cAAc,IAAIxiJ,EAAEsiI,SAAS,KAAKtiI,KAAYD,EAAEo8H,UAAUn8H,GAAE,GAAO,KAAK,GAAY,QAAQ,OAAM,GACtR,SAASyiJ,GAAG1iJ,GAAG,GAAGsiJ,GAAG,CAAC,IAAIriJ,EAAEoiJ,GAAG,GAAGpiJ,EAAE,CAAC,IAAIoL,EAAEpL,EAAE,IAAIiE,GAAGlE,EAAEC,GAAG,CAAqB,KAApBA,EAAEggG,GAAG50F,EAAEqoI,gBAAqBxvI,GAAGlE,EAAEC,GAA+C,OAA3CD,EAAEyjI,WAAuB,KAAbzjI,EAAEyjI,UAAgB,EAAE6e,IAAG,OAAGtjF,GAAGh/D,GAASuiJ,GAAGvjF,GAAG3zD,GAAG2zD,GAAGh/D,EAAEqiJ,GAAGpiD,GAAGhgG,EAAEmiI,iBAAiBpiI,EAAEyjI,WAAuB,KAAbzjI,EAAEyjI,UAAgB,EAAE6e,IAAG,EAAGtjF,GAAGh/D,GAAG,SAAS2iJ,GAAG3iJ,GAAG,IAAIA,EAAEA,EAAE69H,OAAO,OAAO79H,GAAG,IAAIA,EAAEw9H,KAAK,IAAIx9H,EAAEw9H,KAAK,KAAKx9H,EAAEw9H,KAAKx9H,EAAEA,EAAE69H,OAAO7+D,GAAGh/D,EAC5T,SAAS4iJ,GAAG5iJ,GAAG,GAAGA,IAAIg/D,GAAG,OAAM,EAAG,IAAIsjF,GAAG,OAAOK,GAAG3iJ,GAAGsiJ,IAAG,GAAG,EAAG,IAAIriJ,EAAED,EAAE7D,KAAK,GAAG,IAAI6D,EAAEw9H,KAAK,SAASv9H,GAAG,SAASA,IAAIsqG,GAAGtqG,EAAED,EAAEm/I,eAAe,IAAIl/I,EAAEoiJ,GAAGpiJ,GAAGsiJ,GAAGviJ,EAAEC,GAAGA,EAAEggG,GAAGhgG,EAAEyzI,aAAmB,GAANiP,GAAG3iJ,GAAM,KAAKA,EAAEw9H,IAAI,CAAgD,KAA7Bx9H,EAAE,QAApBA,EAAEA,EAAE2jI,eAAyB3jI,EAAE4jI,WAAW,MAAW,MAAM9rI,MAAMwpG,EAAE,MAAMthG,EAAE,CAAiB,IAAhBA,EAAEA,EAAE0zI,YAAgBzzI,EAAE,EAAED,GAAG,CAAC,GAAG,IAAIA,EAAEuiI,SAAS,CAAC,IAAIl3H,EAAErL,EAAEzH,KAAK,GA7EpG,OA6EuG8S,EAAO,CAAC,GAAG,IAAIpL,EAAE,CAACoiJ,GAAGpiD,GAAGjgG,EAAE0zI,aAAa,MAAM1zI,EAAEC,QA7E7J,MA6EsKoL,GA7E/I,OA6EuJA,GA7E/J,OA6EuKA,GAAQpL,IAAID,EAAEA,EAAE0zI,YAAY2O,GAAG,WAAWA,GAAGrjF,GAAGihC,GAAGjgG,EAAEo8H,UAAUsX,aAAa,KAAK,OAAM,EAChf,SAASmP,KAAKR,GAAGrjF,GAAG,KAAKsjF,IAAG,EAAG,IAAIQ,GAAGzmB,EAAGrE,kBAAkBmjB,IAAG,EAAG,SAAS3tI,GAAExN,EAAEC,EAAEoL,EAAExB,GAAG5J,EAAE6jI,MAAM,OAAO9jI,EAAEsvH,GAAGrvH,EAAE,KAAKoL,EAAExB,GAAGosG,GAAGh2G,EAAED,EAAE8jI,MAAMz4H,EAAExB,GAAG,SAASk5I,GAAG/iJ,EAAEC,EAAEoL,EAAExB,EAAEzW,GAAGiY,EAAEA,EAAE8jD,OAAO,IAAI77D,EAAE2M,EAAEstF,IAA8B,OAA1BytD,GAAG/6I,EAAE7M,GAAGyW,EAAEu2I,GAAGpgJ,EAAEC,EAAEoL,EAAExB,EAAEvW,EAAEF,GAAM,OAAO4M,GAAIm7I,IAA4Gl7I,EAAEwjI,WAAW,EAAEj2H,GAAExN,EAAEC,EAAE4J,EAAEzW,GAAU6M,EAAE6jI,QAArI7jI,EAAEu8I,YAAYx8I,EAAEw8I,YAAYv8I,EAAEwjI,YAAY,IAAIzjI,EAAEk7I,gBAAgB9nJ,IAAI4M,EAAEk7I,eAAe,GAAG8H,GAAGhjJ,EAAEC,EAAE7M,IACtU,SAAS6vJ,GAAGjjJ,EAAEC,EAAEoL,EAAExB,EAAEzW,EAAEE,GAAG,GAAG,OAAO0M,EAAE,CAAC,IAAI2L,EAAEN,EAAElP,KAAK,MAAG,oBAAoBwP,GAAIu3I,GAAGv3I,SAAI,IAASA,EAAEknF,cAAc,OAAOxnF,EAAE8mB,cAAS,IAAS9mB,EAAEwnF,eAAsD7yF,EAAEgvH,GAAG3jH,EAAElP,KAAK,KAAK0N,EAAE,KAAK5J,EAAEgc,KAAK3oB,IAAKi6F,IAAIttF,EAAEstF,IAAIvtF,EAAE69H,OAAO59H,EAASA,EAAE6jI,MAAM9jI,IAA1GC,EAAEu9H,IAAI,GAAGv9H,EAAE9D,KAAKwP,EAAEw3I,GAAGnjJ,EAAEC,EAAE0L,EAAE9B,EAAEzW,EAAEE,IAAuF,OAAVqY,EAAE3L,EAAE8jI,MAAS1wI,EAAEE,IAAIF,EAAEuY,EAAEwzI,eAA0B9zI,EAAE,QAAdA,EAAEA,EAAE8mB,SAAmB9mB,EAAEyqI,IAAK1iJ,EAAEyW,IAAI7J,EAAEutF,MAAMttF,EAAEstF,KAAYy1D,GAAGhjJ,EAAEC,EAAE3M,IAAG2M,EAAEwjI,WAAW,GAAEzjI,EAAE4uH,GAAGjjH,EAAE9B,IAAO0jF,IAAIttF,EAAEstF,IAAIvtF,EAAE69H,OAAO59H,EAASA,EAAE6jI,MAAM9jI,GACrb,SAASmjJ,GAAGnjJ,EAAEC,EAAEoL,EAAExB,EAAEzW,EAAEE,GAAG,OAAO,OAAO0M,GAAG81I,GAAG91I,EAAEm/I,cAAct1I,IAAI7J,EAAEutF,MAAMttF,EAAEstF,MAAM4tD,IAAG,EAAG/nJ,EAAEE,GAAG0vJ,GAAGhjJ,EAAEC,EAAE3M,GAAG8vJ,GAAGpjJ,EAAEC,EAAEoL,EAAExB,EAAEvW,GAAG,SAAS+vJ,GAAGrjJ,EAAEC,GAAG,IAAIoL,EAAEpL,EAAEstF,KAAO,OAAOvtF,GAAG,OAAOqL,GAAG,OAAOrL,GAAGA,EAAEutF,MAAMliF,KAAEpL,EAAEwjI,WAAW,KAAI,SAAS2f,GAAGpjJ,EAAEC,EAAEoL,EAAExB,EAAEzW,GAAG,IAAIE,EAAEwa,GAAEzC,GAAGksI,GAAGppI,GAAEwb,QAA4C,OAApCr2B,EAAEkkJ,GAAGv3I,EAAE3M,GAAG0nJ,GAAG/6I,EAAE7M,GAAGiY,EAAE+0I,GAAGpgJ,EAAEC,EAAEoL,EAAExB,EAAEvW,EAAEF,GAAM,OAAO4M,GAAIm7I,IAA4Gl7I,EAAEwjI,WAAW,EAAEj2H,GAAExN,EAAEC,EAAEoL,EAAEjY,GAAU6M,EAAE6jI,QAArI7jI,EAAEu8I,YAAYx8I,EAAEw8I,YAAYv8I,EAAEwjI,YAAY,IAAIzjI,EAAEk7I,gBAAgB9nJ,IAAI4M,EAAEk7I,eAAe,GAAG8H,GAAGhjJ,EAAEC,EAAE7M,IACvZ,SAASkwJ,GAAGtjJ,EAAEC,EAAEoL,EAAExB,EAAEzW,GAAG,GAAG0a,GAAEzC,GAAG,CAAC,IAAI/X,GAAE,EAAGykJ,GAAG93I,QAAQ3M,GAAE,EAAW,GAAR0nJ,GAAG/6I,EAAE7M,GAAM,OAAO6M,EAAEm8H,UAAU,OAAOp8H,IAAIA,EAAEwjI,UAAU,KAAKvjI,EAAEujI,UAAU,KAAKvjI,EAAEwjI,WAAW,GAAGka,GAAG19I,EAAEoL,EAAExB,GAAKi0I,GAAG79I,EAAEoL,EAAExB,EAAEzW,GAAGyW,GAAE,OAAQ,GAAG,OAAO7J,EAAE,CAAC,IAAI2L,EAAE1L,EAAEm8H,UAAUnyH,EAAEhK,EAAEk/I,cAAcxzI,EAAEpc,MAAM0a,EAAE,IAAI/L,EAAEyN,EAAEqP,QAAQhR,EAAEqB,EAAEyoH,YAAY,kBAAkB9pH,GAAG,OAAOA,EAAEA,EAAEoxI,GAAGpxI,GAAwBA,EAAEwtI,GAAGv3I,EAAzB+J,EAAE8D,GAAEzC,GAAGksI,GAAGppI,GAAEwb,SAAmB,IAAI/f,EAAEyB,EAAE6oH,yBAAyBhgI,EAAE,oBAAoB0V,GAAG,oBAAoB+B,EAAEoyI,wBAAwB7pJ,GAAG,oBAAoByX,EAAEkyI,kCACxd,oBAAoBlyI,EAAEy2E,4BAA4Bn4E,IAAIJ,GAAG3L,IAAI8L,IAAI4zI,GAAG39I,EAAE0L,EAAE9B,EAAEG,GAAGsxI,IAAG,EAAG,IAAIr8I,EAAEgB,EAAE0jI,cAAczlI,EAAEyN,EAAEuuE,MAAMj7E,EAAE,IAAIgP,EAAEhO,EAAEu8I,YAAY,OAAOvuI,IAAI2uI,GAAG38I,EAAEgO,EAAEpE,EAAE8B,EAAEvY,GAAG8K,EAAE+B,EAAE0jI,eAAe15H,IAAIJ,GAAG5K,IAAIf,GAAG6P,GAAE4b,SAAS2xH,IAAI,oBAAoB1xI,IAAIuzI,GAAGl9I,EAAEoL,EAAEzB,EAAEC,GAAG3L,EAAE+B,EAAE0jI,gBAAgB15H,EAAEqxI,IAAImC,GAAGx9I,EAAEoL,EAAEpB,EAAEJ,EAAE5K,EAAEf,EAAE8L,KAAK9V,GAAG,oBAAoByX,EAAEqyI,2BAA2B,oBAAoBryI,EAAEsyI,qBAAqB,oBAAoBtyI,EAAEsyI,oBAAoBtyI,EAAEsyI,qBAAqB,oBAAoBtyI,EAAEqyI,2BAC1dryI,EAAEqyI,6BAA6B,oBAAoBryI,EAAEw3E,oBAAoBljF,EAAEwjI,WAAW,KAAK,oBAAoB93H,EAAEw3E,oBAAoBljF,EAAEwjI,WAAW,GAAGxjI,EAAEk/I,cAAct1I,EAAE5J,EAAE0jI,cAAczlI,GAAGyN,EAAEpc,MAAMsa,EAAE8B,EAAEuuE,MAAMh8E,EAAEyN,EAAEqP,QAAQhR,EAAEH,EAAEI,IAAI,oBAAoB0B,EAAEw3E,oBAAoBljF,EAAEwjI,WAAW,GAAG55H,GAAE,QAAS8B,EAAE1L,EAAEm8H,UAAUnyH,EAAEhK,EAAEk/I,cAAcxzI,EAAEpc,MAAM0Q,EAAE9D,OAAO8D,EAAE4hC,YAAY53B,EAAEqwI,GAAGr6I,EAAE9D,KAAK8N,GAAG/L,EAAEyN,EAAEqP,QAAwB,kBAAhBhR,EAAEqB,EAAEyoH,cAAiC,OAAO9pH,EAAEA,EAAEoxI,GAAGpxI,GAAwBA,EAAEwtI,GAAGv3I,EAAzB+J,EAAE8D,GAAEzC,GAAGksI,GAAGppI,GAAEwb,UAAiDz1B,EACnf,oBADqd0V,EAAEyB,EAAE6oH,2BAClc,oBAAoBvoH,EAAEoyI,0BAA0B,oBAAoBpyI,EAAEkyI,kCAAkC,oBAAoBlyI,EAAEy2E,4BAA4Bn4E,IAAIJ,GAAG3L,IAAI8L,IAAI4zI,GAAG39I,EAAE0L,EAAE9B,EAAEG,GAAGsxI,IAAG,EAAGp9I,EAAE+B,EAAE0jI,cAAc1kI,EAAE0M,EAAEuuE,MAAMh8E,EAAkB,QAAhB+P,EAAEhO,EAAEu8I,eAAuBI,GAAG38I,EAAEgO,EAAEpE,EAAE8B,EAAEvY,GAAG6L,EAAEgB,EAAE0jI,eAAe15H,IAAIJ,GAAG3L,IAAIe,GAAG8O,GAAE4b,SAAS2xH,IAAI,oBAAoB1xI,IAAIuzI,GAAGl9I,EAAEoL,EAAEzB,EAAEC,GAAG5K,EAAEgB,EAAE0jI,gBAAgB/5H,EAAE0xI,IAAImC,GAAGx9I,EAAEoL,EAAEpB,EAAEJ,EAAE3L,EAAEe,EAAE+K,KAAK9V,GAAG,oBAAoByX,EAAE43I,4BAA4B,oBAAoB53I,EAAE63I,sBACre,oBAAoB73I,EAAE63I,qBAAqB73I,EAAE63I,oBAAoB35I,EAAE5K,EAAE+K,GAAG,oBAAoB2B,EAAE43I,4BAA4B53I,EAAE43I,2BAA2B15I,EAAE5K,EAAE+K,IAAI,oBAAoB2B,EAAE83I,qBAAqBxjJ,EAAEwjI,WAAW,GAAG,oBAAoB93H,EAAEoyI,0BAA0B99I,EAAEwjI,WAAW,OAAO,oBAAoB93H,EAAE83I,oBAAoBx5I,IAAIjK,EAAEm/I,eAAejhJ,IAAI8B,EAAE2jI,gBAAgB1jI,EAAEwjI,WAAW,GAAG,oBAAoB93H,EAAEoyI,yBAAyB9zI,IAAIjK,EAAEm/I,eAAejhJ,IAAI8B,EAAE2jI,gBAAgB1jI,EAAEwjI,WAAW,KAAKxjI,EAAEk/I,cAClft1I,EAAE5J,EAAE0jI,cAAc1kI,GAAG0M,EAAEpc,MAAMsa,EAAE8B,EAAEuuE,MAAMj7E,EAAE0M,EAAEqP,QAAQhR,EAAEH,EAAED,IAAI,oBAAoB+B,EAAE83I,oBAAoBx5I,IAAIjK,EAAEm/I,eAAejhJ,IAAI8B,EAAE2jI,gBAAgB1jI,EAAEwjI,WAAW,GAAG,oBAAoB93H,EAAEoyI,yBAAyB9zI,IAAIjK,EAAEm/I,eAAejhJ,IAAI8B,EAAE2jI,gBAAgB1jI,EAAEwjI,WAAW,KAAK55H,GAAE,GAAI,OAAO65I,GAAG1jJ,EAAEC,EAAEoL,EAAExB,EAAEvW,EAAEF,GACtS,SAASswJ,GAAG1jJ,EAAEC,EAAEoL,EAAExB,EAAEzW,EAAEE,GAAG+vJ,GAAGrjJ,EAAEC,GAAG,IAAI0L,EAAE,KAAiB,GAAZ1L,EAAEwjI,WAAc,IAAI55H,IAAI8B,EAAE,OAAOvY,GAAG6kJ,GAAGh4I,EAAEoL,GAAE,GAAI23I,GAAGhjJ,EAAEC,EAAE3M,GAAGuW,EAAE5J,EAAEm8H,UAAU0mB,GAAGn5H,QAAQ1pB,EAAE,IAAIgK,EAAE0B,GAAG,oBAAoBN,EAAE4oH,yBAAyB,KAAKpqH,EAAEslD,SAA2I,OAAlIlvD,EAAEwjI,WAAW,EAAE,OAAOzjI,GAAG2L,GAAG1L,EAAE6jI,MAAM7tB,GAAGh2G,EAAED,EAAE8jI,MAAM,KAAKxwI,GAAG2M,EAAE6jI,MAAM7tB,GAAGh2G,EAAE,KAAKgK,EAAE3W,IAAIka,GAAExN,EAAEC,EAAEgK,EAAE3W,GAAG2M,EAAE0jI,cAAc95H,EAAEqwE,MAAM9mF,GAAG6kJ,GAAGh4I,EAAEoL,GAAE,GAAWpL,EAAE6jI,MAAM,SAAS6f,GAAG3jJ,GAAG,IAAIC,EAAED,EAAEo8H,UAAUn8H,EAAE2jJ,eAAe/L,GAAG73I,EAAEC,EAAE2jJ,eAAe3jJ,EAAE2jJ,iBAAiB3jJ,EAAE+a,SAAS/a,EAAE+a,SAAS68H,GAAG73I,EAAEC,EAAE+a,SAAQ,GAAI4jI,GAAG5+I,EAAEC,EAAE0lI,eACpe,IAOobke,GAAMC,GAAG1yB,GAPzb2yB,GAAG,CAACngB,WAAW,KAAKogB,UAAU,GAClC,SAASC,GAAGjkJ,EAAEC,EAAEoL,GAAG,IAA+CpB,EAA3CJ,EAAE5J,EAAEgc,KAAK7oB,EAAE6M,EAAEwiJ,aAAanvJ,EAAEua,GAAE8b,QAAQhe,GAAE,EAAuN,IAAjN1B,EAAE,KAAiB,GAAZhK,EAAEwjI,cAAiBx5H,EAAE,KAAO,EAAF3W,KAAO,OAAO0M,GAAG,OAAOA,EAAE2jI,gBAAgB15H,GAAG0B,GAAE,EAAG1L,EAAEwjI,YAAY,IAAI,OAAOzjI,GAAG,OAAOA,EAAE2jI,oBAAe,IAASvwI,EAAE2xB,WAAU,IAAK3xB,EAAE8wJ,6BAA6B5wJ,GAAG,GAAG4a,GAAEL,GAAI,EAAFva,GAAU,OAAO0M,EAAE,CAA4B,QAA3B,IAAS5M,EAAE2xB,UAAU29H,GAAGziJ,GAAM0L,EAAE,CAA6C,GAA5CA,EAAEvY,EAAE2xB,UAAS3xB,EAAEg8H,GAAG,KAAKvlH,EAAE,EAAE,OAAQg0H,OAAO59H,EAAK,KAAY,EAAPA,EAAEgc,MAAQ,IAAIjc,EAAE,OAAOC,EAAE0jI,cAAc1jI,EAAE6jI,MAAMA,MAAM7jI,EAAE6jI,MAAM1wI,EAAE0wI,MAAM9jI,EAAE,OAAOA,GAAGA,EAAE69H,OAAOzqI,EAAE4M,EAAEA,EAAE+jI,QAC7a,OADqb14H,EAAE+jH,GAAGzjH,EAAE9B,EAAEwB,EAAE,OAAQwyH,OACnf59H,EAAE7M,EAAE2wI,QAAQ14H,EAAEpL,EAAE0jI,cAAcogB,GAAG9jJ,EAAE6jI,MAAM1wI,EAASiY,EAAoC,OAAlCxB,EAAEzW,EAAEmvF,SAAStiF,EAAE0jI,cAAc,KAAY1jI,EAAE6jI,MAAMxU,GAAGrvH,EAAE,KAAK4J,EAAEwB,GAAG,GAAG,OAAOrL,EAAE2jI,cAAc,CAAuB,GAAZ95H,GAAV7J,EAAEA,EAAE8jI,OAAUC,QAAWp4H,EAAE,CAAkD,GAAjDvY,EAAEA,EAAE2xB,UAAS1Z,EAAEujH,GAAG5uH,EAAEA,EAAEyiJ,eAAkB5kB,OAAO59H,EAAK,KAAY,EAAPA,EAAEgc,QAAUtQ,EAAE,OAAO1L,EAAE0jI,cAAc1jI,EAAE6jI,MAAMA,MAAM7jI,EAAE6jI,SAAU9jI,EAAE8jI,MAAO,IAAIz4H,EAAEy4H,MAAMn4H,EAAE,OAAOA,GAAGA,EAAEkyH,OAAOxyH,EAAEM,EAAEA,EAAEo4H,QAA+G,OAAvGl6H,EAAE+kH,GAAG/kH,EAAEzW,EAAEyW,EAAEqxI,iBAAkBrd,OAAO59H,EAAEoL,EAAE04H,QAAQl6H,EAAEwB,EAAE0vI,oBAAoB,EAAE96I,EAAE0jI,cAAcogB,GAAG9jJ,EAAE6jI,MAAMz4H,EAASxB,EACpc,OADscwB,EAAE4qG,GAAGh2G,EAAED,EAAE8jI,MAAM1wI,EAAEmvF,SAASl3E,GAAGpL,EAAE0jI,cAC1e,KAAY1jI,EAAE6jI,MAAMz4H,EAAY,GAAVrL,EAAEA,EAAE8jI,MAASn4H,EAAE,CAA8E,GAA7EA,EAAEvY,EAAE2xB,UAAS3xB,EAAEg8H,GAAG,KAAKvlH,EAAE,EAAE,OAAQg0H,OAAO59H,EAAE7M,EAAE0wI,MAAM9jI,EAAE,OAAOA,IAAIA,EAAE69H,OAAOzqI,GAAM,KAAY,EAAP6M,EAAEgc,MAAQ,IAAIjc,EAAE,OAAOC,EAAE0jI,cAAc1jI,EAAE6jI,MAAMA,MAAM7jI,EAAE6jI,MAAM1wI,EAAE0wI,MAAM9jI,EAAE,OAAOA,GAAGA,EAAE69H,OAAOzqI,EAAE4M,EAAEA,EAAE+jI,QAAoH,OAA5G14H,EAAE+jH,GAAGzjH,EAAE9B,EAAEwB,EAAE,OAAQwyH,OAAO59H,EAAE7M,EAAE2wI,QAAQ14H,EAAEA,EAAEo4H,WAAW,EAAErwI,EAAE2nJ,oBAAoB,EAAE96I,EAAE0jI,cAAcogB,GAAG9jJ,EAAE6jI,MAAM1wI,EAASiY,EAAuB,OAArBpL,EAAE0jI,cAAc,KAAY1jI,EAAE6jI,MAAM7tB,GAAGh2G,EAAED,EAAE5M,EAAEmvF,SAASl3E,GAC9Y,SAAS84I,GAAGnkJ,EAAEC,GAAGD,EAAEk7I,eAAej7I,IAAID,EAAEk7I,eAAej7I,GAAG,IAAIoL,EAAErL,EAAEwjI,UAAU,OAAOn4H,GAAGA,EAAE6vI,eAAej7I,IAAIoL,EAAE6vI,eAAej7I,GAAG66I,GAAG96I,EAAE69H,OAAO59H,GAAG,SAASmkJ,GAAGpkJ,EAAEC,EAAEoL,EAAExB,EAAEzW,EAAEE,GAAG,IAAIqY,EAAE3L,EAAE2jI,cAAc,OAAOh4H,EAAE3L,EAAE2jI,cAAc,CAAC0gB,YAAYpkJ,EAAEqkJ,UAAU,KAAKjgJ,KAAKwF,EAAE06I,KAAKl5I,EAAEm5I,eAAe,EAAEC,SAASrxJ,EAAE0oJ,WAAWxoJ,IAAIqY,EAAE04I,YAAYpkJ,EAAE0L,EAAE24I,UAAU,KAAK34I,EAAEtH,KAAKwF,EAAE8B,EAAE44I,KAAKl5I,EAAEM,EAAE64I,eAAe,EAAE74I,EAAE84I,SAASrxJ,EAAEuY,EAAEmwI,WAAWxoJ,GAC7Y,SAASoxJ,GAAG1kJ,EAAEC,EAAEoL,GAAG,IAAIxB,EAAE5J,EAAEwiJ,aAAarvJ,EAAEyW,EAAEu1I,YAAY9rJ,EAAEuW,EAAE06I,KAAqC,GAAhC/2I,GAAExN,EAAEC,EAAE4J,EAAE04E,SAASl3E,GAAkB,KAAO,GAAtBxB,EAAEgE,GAAE8b,UAAqB9f,EAAI,EAAFA,EAAI,EAAE5J,EAAEwjI,WAAW,OAAO,CAAC,GAAG,OAAOzjI,GAAG,KAAiB,GAAZA,EAAEyjI,WAAczjI,EAAE,IAAIA,EAAEC,EAAE6jI,MAAM,OAAO9jI,GAAG,CAAC,GAAG,KAAKA,EAAEw9H,IAAI,OAAOx9H,EAAE2jI,eAAewgB,GAAGnkJ,EAAEqL,QAAQ,GAAG,KAAKrL,EAAEw9H,IAAI2mB,GAAGnkJ,EAAEqL,QAAQ,GAAG,OAAOrL,EAAE8jI,MAAM,CAAC9jI,EAAE8jI,MAAMjG,OAAO79H,EAAEA,EAAEA,EAAE8jI,MAAM,SAAS,GAAG9jI,IAAIC,EAAE,MAAMD,EAAE,KAAK,OAAOA,EAAE+jI,SAAS,CAAC,GAAG,OAAO/jI,EAAE69H,QAAQ79H,EAAE69H,SAAS59H,EAAE,MAAMD,EAAEA,EAAEA,EAAE69H,OAAO79H,EAAE+jI,QAAQlG,OAAO79H,EAAE69H,OAAO79H,EAAEA,EAAE+jI,QAAQl6H,GAAG,EAAW,GAATqE,GAAEL,GAAEhE,GAAQ,KAAY,EAAP5J,EAAEgc,MAAQhc,EAAE0jI,cAClf,UAAU,OAAOvwI,GAAG,IAAK,WAAqB,IAAViY,EAAEpL,EAAE6jI,MAAU1wI,EAAE,KAAK,OAAOiY,GAAiB,QAAdrL,EAAEqL,EAAEm4H,YAAoB,OAAO0b,GAAGl/I,KAAK5M,EAAEiY,GAAGA,EAAEA,EAAE04H,QAAY,QAAJ14H,EAAEjY,IAAYA,EAAE6M,EAAE6jI,MAAM7jI,EAAE6jI,MAAM,OAAO1wI,EAAEiY,EAAE04H,QAAQ14H,EAAE04H,QAAQ,MAAMqgB,GAAGnkJ,GAAE,EAAG7M,EAAEiY,EAAE/X,EAAE2M,EAAE67I,YAAY,MAAM,IAAK,YAA6B,IAAjBzwI,EAAE,KAAKjY,EAAE6M,EAAE6jI,MAAU7jI,EAAE6jI,MAAM,KAAK,OAAO1wI,GAAG,CAAe,GAAG,QAAjB4M,EAAE5M,EAAEowI,YAAuB,OAAO0b,GAAGl/I,GAAG,CAACC,EAAE6jI,MAAM1wI,EAAE,MAAM4M,EAAE5M,EAAE2wI,QAAQ3wI,EAAE2wI,QAAQ14H,EAAEA,EAAEjY,EAAEA,EAAE4M,EAAEokJ,GAAGnkJ,GAAE,EAAGoL,EAAE,KAAK/X,EAAE2M,EAAE67I,YAAY,MAAM,IAAK,WAAWsI,GAAGnkJ,GAAE,EAAG,KAAK,UAAK,EAAOA,EAAE67I,YAAY,MAAM,QAAQ77I,EAAE0jI,cAAc,KAAK,OAAO1jI,EAAE6jI,MAC/f,SAASkf,GAAGhjJ,EAAEC,EAAEoL,GAAG,OAAOrL,IAAIC,EAAEu6H,aAAax6H,EAAEw6H,cAAc,IAAI3wH,EAAE5J,EAAEi7I,eAA4B,GAAb,IAAIrxI,GAAGizI,GAAGjzI,GAAM5J,EAAE86I,oBAAoB1vI,EAAE,OAAO,KAAK,GAAG,OAAOrL,GAAGC,EAAE6jI,QAAQ9jI,EAAE8jI,MAAM,MAAMhsI,MAAMwpG,EAAE,MAAM,GAAG,OAAOrhG,EAAE6jI,MAAM,CAA6D,IAAlDz4H,EAAEujH,GAAZ5uH,EAAEC,EAAE6jI,MAAa9jI,EAAEyiJ,aAAaziJ,EAAEk7I,gBAAgBj7I,EAAE6jI,MAAMz4H,EAAMA,EAAEwyH,OAAO59H,EAAE,OAAOD,EAAE+jI,SAAS/jI,EAAEA,EAAE+jI,SAAQ14H,EAAEA,EAAE04H,QAAQnV,GAAG5uH,EAAEA,EAAEyiJ,aAAaziJ,EAAEk7I,iBAAkBrd,OAAO59H,EAAEoL,EAAE04H,QAAQ,KAAK,OAAO9jI,EAAE6jI,MAAM,SAAS6gB,GAAG3kJ,GAAGA,EAAEyjI,WAAW,EAK9a,SAASmhB,GAAG5kJ,EAAEC,GAAG,OAAOD,EAAEykJ,UAAU,IAAK,SAASxkJ,EAAED,EAAEukJ,KAAK,IAAI,IAAIl5I,EAAE,KAAK,OAAOpL,GAAG,OAAOA,EAAEujI,YAAYn4H,EAAEpL,GAAGA,EAAEA,EAAE8jI,QAAQ,OAAO14H,EAAErL,EAAEukJ,KAAK,KAAKl5I,EAAE04H,QAAQ,KAAK,MAAM,IAAK,YAAY14H,EAAErL,EAAEukJ,KAAK,IAAI,IAAI16I,EAAE,KAAK,OAAOwB,GAAG,OAAOA,EAAEm4H,YAAY35H,EAAEwB,GAAGA,EAAEA,EAAE04H,QAAQ,OAAOl6H,EAAE5J,GAAG,OAAOD,EAAEukJ,KAAKvkJ,EAAEukJ,KAAK,KAAKvkJ,EAAEukJ,KAAKxgB,QAAQ,KAAKl6H,EAAEk6H,QAAQ,MACjU,SAAS8gB,GAAG7kJ,GAAG,OAAOA,EAAEw9H,KAAK,KAAK,EAAE1vH,GAAE9N,EAAE7D,OAAOw7I,KAAM,IAAI13I,EAAED,EAAEyjI,UAAU,OAAS,KAAFxjI,GAAQD,EAAEyjI,WAAa,KAAHxjI,EAAQ,GAAGD,GAAG,KAAK,KAAK,EAA4B,GAA1B++I,KAAMnH,KAAuB,KAAO,IAAxB33I,EAAED,EAAEyjI,YAAwB,MAAM3rI,MAAMwpG,EAAE,MAA6B,OAAvBthG,EAAEyjI,WAAa,KAAHxjI,EAAQ,GAAUD,EAAE,KAAK,EAAE,OAAOi/I,GAAGj/I,GAAG,KAAK,KAAK,GAAG,OAAOgO,GAAEH,IAAqB,MAAhB5N,EAAED,EAAEyjI,YAAkBzjI,EAAEyjI,WAAa,KAAHxjI,EAAQ,GAAGD,GAAG,KAAK,KAAK,GAAG,OAAOgO,GAAEH,IAAK,KAAK,KAAK,EAAE,OAAOkxI,KAAM,KAAK,KAAK,GAAG,OAAOlE,GAAG76I,GAAG,KAAK,QAAQ,OAAO,MAAM,SAAS8kJ,GAAG9kJ,EAAEC,GAAG,MAAM,CAACnP,MAAMkP,EAAEjC,OAAOkC,EAAEs6B,MAAMgjG,EAAGt9H,IALjd4jJ,GAAG,SAAS7jJ,EAAEC,GAAG,IAAI,IAAIoL,EAAEpL,EAAE6jI,MAAM,OAAOz4H,GAAG,CAAC,GAAG,IAAIA,EAAEmyH,KAAK,IAAInyH,EAAEmyH,IAAIx9H,EAAEotF,YAAY/hF,EAAE+wH,gBAAgB,GAAG,IAAI/wH,EAAEmyH,KAAK,OAAOnyH,EAAEy4H,MAAM,CAACz4H,EAAEy4H,MAAMjG,OAAOxyH,EAAEA,EAAEA,EAAEy4H,MAAM,SAAS,GAAGz4H,IAAIpL,EAAE,MAAM,KAAK,OAAOoL,EAAE04H,SAAS,CAAC,GAAG,OAAO14H,EAAEwyH,QAAQxyH,EAAEwyH,SAAS59H,EAAE,OAAOoL,EAAEA,EAAEwyH,OAAOxyH,EAAE04H,QAAQlG,OAAOxyH,EAAEwyH,OAAOxyH,EAAEA,EAAE04H,UAChS+f,GAAG,SAAS9jJ,EAAEC,EAAEoL,EAAExB,EAAEzW,GAAG,IAAIE,EAAE0M,EAAEm/I,cAAc,GAAG7rJ,IAAIuW,EAAE,CAAC,IAAsWI,EAAE/L,EAApWyN,EAAE1L,EAAEm8H,UAAgC,OAAtBh+D,GAAGqgF,GAAG90H,SAAS3pB,EAAE,KAAYqL,GAAG,IAAK,QAAQ/X,EAAE8sI,GAAGz0H,EAAErY,GAAGuW,EAAEu2H,GAAGz0H,EAAE9B,GAAG7J,EAAE,GAAG,MAAM,IAAK,SAAS1M,EAAE0tI,GAAGr1H,EAAErY,GAAGuW,EAAEm3H,GAAGr1H,EAAE9B,GAAG7J,EAAE,GAAG,MAAM,IAAK,SAAS1M,EAAEH,EAAE,GAAGG,EAAE,CAACxC,WAAM,IAAS+Y,EAAE1W,EAAE,GAAG0W,EAAE,CAAC/Y,WAAM,IAASkP,EAAE,GAAG,MAAM,IAAK,WAAW1M,EAAE+tI,GAAG11H,EAAErY,GAAGuW,EAAEw3H,GAAG11H,EAAE9B,GAAG7J,EAAE,GAAG,MAAM,QAAQ,oBAAoB1M,EAAEgpB,SAAS,oBAAoBzS,EAAEyS,UAAU3Q,EAAEo5I,QAAQz6C,IAA2B,IAAIrgG,KAA3B4L,GAAGxK,EAAExB,GAAWwB,EAAE,KAAc/X,EAAE,IAAIuW,EAAEpV,eAAewV,IAAI3W,EAAEmB,eAAewV,IAAI,MAAM3W,EAAE2W,GAAG,GAAG,UAC/eA,EAAE,IAAI/L,KAAKyN,EAAErY,EAAE2W,GAAK0B,EAAElX,eAAeyJ,KAAKmN,IAAIA,EAAE,IAAIA,EAAEnN,GAAG,QAAQ,4BAA4B+L,GAAG,aAAaA,GAAG,mCAAmCA,GAAG,6BAA6BA,GAAG,cAAcA,IAAIqwH,EAAG7lI,eAAewV,GAAGjK,IAAIA,EAAE,KAAKA,EAAEA,GAAG,IAAIvJ,KAAKwT,EAAE,OAAO,IAAIA,KAAKJ,EAAE,CAAC,IAAIG,EAAEH,EAAEI,GAAyB,GAAtB0B,EAAE,MAAMrY,EAAEA,EAAE2W,QAAG,EAAUJ,EAAEpV,eAAewV,IAAID,IAAI2B,IAAI,MAAM3B,GAAG,MAAM2B,GAAG,GAAG,UAAU1B,EAAE,GAAG0B,EAAE,CAAC,IAAIzN,KAAKyN,GAAGA,EAAElX,eAAeyJ,IAAI8L,GAAGA,EAAEvV,eAAeyJ,KAAKmN,IAAIA,EAAE,IAAIA,EAAEnN,GAAG,IAAI,IAAIA,KAAK8L,EAAEA,EAAEvV,eAAeyJ,IAAIyN,EAAEzN,KAAK8L,EAAE9L,KAAKmN,IAAIA,EAAE,IACpfA,EAAEnN,GAAG8L,EAAE9L,SAASmN,IAAIrL,IAAIA,EAAE,IAAIA,EAAEvJ,KAAKwT,EAAEoB,IAAIA,EAAErB,MAAM,4BAA4BC,GAAGD,EAAEA,EAAEA,EAAE+pI,YAAO,EAAOpoI,EAAEA,EAAEA,EAAEooI,YAAO,EAAO,MAAM/pI,GAAG2B,IAAI3B,IAAIhK,EAAEA,GAAG,IAAIvJ,KAAKwT,EAAE,GAAGD,IAAI,aAAaC,EAAE0B,IAAI3B,GAAG,kBAAkBA,GAAG,kBAAkBA,IAAIhK,EAAEA,GAAG,IAAIvJ,KAAKwT,EAAE,GAAGD,GAAG,mCAAmCC,GAAG,6BAA6BA,IAAIqwH,EAAG7lI,eAAewV,IAAI,MAAMD,GAAGwpI,GAAGpgJ,EAAE6W,GAAGjK,GAAG2L,IAAI3B,IAAIhK,EAAE,MAAMA,EAAEA,GAAG,IAAIvJ,KAAKwT,EAAED,IAAIqB,IAAIrL,EAAEA,GAAG,IAAIvJ,KAAK,QAAQ4U,GAAGjY,EAAE4M,GAAGC,EAAEu8I,YAAYppJ,IAAIuxJ,GAAG1kJ,KAAKmxH,GAAG,SAASpxH,EAAEC,EAAEoL,EAAExB,GAAGwB,IAAIxB,GAAG86I,GAAG1kJ,IAGze,IAAI+kJ,GAAG,oBAAoBC,QAAQA,QAAQhgJ,IAAI,SAASigJ,GAAGllJ,EAAEC,GAAG,IAAIoL,EAAEpL,EAAElC,OAAO8L,EAAE5J,EAAEs6B,MAAM,OAAO1wB,GAAG,OAAOwB,IAAIxB,EAAE0zH,EAAGlyH,IAAI,OAAOA,GAAGiyH,EAAGjyH,EAAElP,MAAM8D,EAAEA,EAAEnP,MAAM,OAAOkP,GAAG,IAAIA,EAAEw9H,KAAKF,EAAGt9H,EAAE7D,MAAM,IAAI6oB,QAAQ/yB,MAAMgO,GAAG,MAAM7M,GAAGo7D,YAAW,WAAW,MAAMp7D,MAAsH,SAAS+xJ,GAAGnlJ,GAAG,IAAIC,EAAED,EAAEutF,IAAI,GAAG,OAAOttF,EAAE,GAAG,oBAAoBA,EAAE,IAAIA,EAAE,MAAM,MAAMoL,GAAG+5I,GAAGplJ,EAAEqL,QAAQpL,EAAE0pB,QAAQ,KACld,SAAS07H,GAAGrlJ,EAAEC,GAAG,OAAOA,EAAEu9H,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG8nB,GAAG,EAAE,EAAErlJ,GAAG,MAAM,KAAK,EAAE,GAAe,IAAZA,EAAEwjI,WAAe,OAAOzjI,EAAE,CAAC,IAAIqL,EAAErL,EAAEm/I,cAAct1I,EAAE7J,EAAE2jI,cAA4B1jI,GAAdD,EAAEC,EAAEm8H,WAAc2hB,wBAAwB99I,EAAE4hC,cAAc5hC,EAAE9D,KAAKkP,EAAEivI,GAAGr6I,EAAE9D,KAAKkP,GAAGxB,GAAG7J,EAAEulJ,oCAAoCtlJ,EAAE,MAAM,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,MAAM,QAAQ,MAAMnI,MAAMwpG,EAAE,OACpV,SAASgkD,GAAGtlJ,EAAEC,EAAEoL,GAAgD,GAAG,QAAhCA,EAAE,QAAlBA,EAAEA,EAAEmxI,aAAuBnxI,EAAEywI,WAAW,MAAiB,CAAC,IAAIjyI,EAAEwB,EAAEA,EAAE1X,KAAK,EAAE,CAAC,GAAG,KAAKkW,EAAE2zH,IAAIx9H,GAAG,CAAC,IAAI5M,EAAEyW,EAAE6vF,QAAQ7vF,EAAE6vF,aAAQ,OAAO,IAAStmG,GAAGA,IAAI,KAAKyW,EAAE2zH,IAAIv9H,KAAK7M,EAAEyW,EAAEjZ,OAAOiZ,EAAE6vF,QAAQtmG,KAAKyW,EAAEA,EAAElW,WAAWkW,IAAIwB,IAC/N,SAASm6I,GAAGxlJ,EAAEC,EAAEoL,GAAiC,OAA9B,oBAAoBqkH,IAAIA,GAAGzvH,GAAUA,EAAEu9H,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAmB,GAAG,QAAnBx9H,EAAEC,EAAEu8I,cAAyC,QAAfx8I,EAAEA,EAAE87I,YAAqB,CAAC,IAAIjyI,EAAE7J,EAAErM,KAAKomJ,GAAG,GAAG1uI,EAAE,GAAGA,GAAE,WAAW,IAAIrL,EAAE6J,EAAE,EAAE,CAAC,IAAIwB,EAAErL,EAAE05F,QAAQ,QAAG,IAASruF,EAAE,CAAC,IAAIM,EAAE1L,EAAE,IAAIoL,IAAI,MAAMpB,GAAGm7I,GAAGz5I,EAAE1B,IAAIjK,EAAEA,EAAErM,WAAWqM,IAAI6J,MAAK,MAAM,KAAK,EAAEs7I,GAAGllJ,GAAiB,oBAAdoL,EAAEpL,EAAEm8H,WAAgCh5C,sBAHhG,SAAYpjF,EAAEC,GAAG,IAAIA,EAAE1Q,MAAMyQ,EAAEm/I,cAAcl/I,EAAEi6E,MAAMl6E,EAAE2jI,cAAc1jI,EAAEmjF,uBAAuB,MAAM/3E,GAAG+5I,GAAGplJ,EAAEqL,IAGUo6I,CAAGxlJ,EAAEoL,GAAG,MAAM,KAAK,EAAE85I,GAAGllJ,GAAG,MAAM,KAAK,EAAEylJ,GAAG1lJ,EAAEC,EAAEoL,IAC3Z,SAASs6I,GAAG3lJ,GAAG,IAAIC,EAAED,EAAEwjI,UAAUxjI,EAAE69H,OAAO,KAAK79H,EAAE8jI,MAAM,KAAK9jI,EAAE2jI,cAAc,KAAK3jI,EAAEw8I,YAAY,KAAKx8I,EAAEw6H,aAAa,KAAKx6H,EAAEwjI,UAAU,KAAKxjI,EAAE67I,YAAY,KAAK77I,EAAE87I,WAAW,KAAK97I,EAAEyiJ,aAAa,KAAKziJ,EAAEm/I,cAAc,KAAK,OAAOl/I,GAAG0lJ,GAAG1lJ,GAAG,SAAS2lJ,GAAG5lJ,GAAG,OAAO,IAAIA,EAAEw9H,KAAK,IAAIx9H,EAAEw9H,KAAK,IAAIx9H,EAAEw9H,IACzR,SAASqoB,GAAG7lJ,GAAGA,EAAE,CAAC,IAAI,IAAIC,EAAED,EAAE69H,OAAO,OAAO59H,GAAG,CAAC,GAAG2lJ,GAAG3lJ,GAAG,CAAC,IAAIoL,EAAEpL,EAAE,MAAMD,EAAEC,EAAEA,EAAE49H,OAAO,MAAM/lI,MAAMwpG,EAAE,MAAqB,OAAdrhG,EAAEoL,EAAE+wH,UAAiB/wH,EAAEmyH,KAAK,KAAK,EAAE,IAAI3zH,GAAE,EAAG,MAAM,KAAK,EAA+B,KAAK,EAAE5J,EAAEA,EAAE0lI,cAAc97H,GAAE,EAAG,MAAM,QAAQ,MAAM/R,MAAMwpG,EAAE,MAAmB,GAAZj2F,EAAEo4H,YAAepB,GAAGpiI,EAAE,IAAIoL,EAAEo4H,YAAY,IAAIzjI,EAAEC,EAAE,IAAIoL,EAAErL,IAAI,CAAC,KAAK,OAAOqL,EAAE04H,SAAS,CAAC,GAAG,OAAO14H,EAAEwyH,QAAQ+nB,GAAGv6I,EAAEwyH,QAAQ,CAACxyH,EAAE,KAAK,MAAMrL,EAAEqL,EAAEA,EAAEwyH,OAAiC,IAA1BxyH,EAAE04H,QAAQlG,OAAOxyH,EAAEwyH,OAAWxyH,EAAEA,EAAE04H,QAAQ,IAAI14H,EAAEmyH,KAAK,IAAInyH,EAAEmyH,KAAK,KAAKnyH,EAAEmyH,KAAK,CAAC,GAAe,EAAZnyH,EAAEo4H,UAAY,SAASxjI,EACvf,GAAG,OAAOoL,EAAEy4H,OAAO,IAAIz4H,EAAEmyH,IAAI,SAASv9H,EAAOoL,EAAEy4H,MAAMjG,OAAOxyH,EAAEA,EAAEA,EAAEy4H,MAAM,KAAiB,EAAZz4H,EAAEo4H,WAAa,CAACp4H,EAAEA,EAAE+wH,UAAU,MAAMp8H,GAAG,IAAI,IAAI5M,EAAE4M,IAAI,CAAC,IAAI1M,EAAE,IAAIF,EAAEoqI,KAAK,IAAIpqI,EAAEoqI,IAAI,GAAGlqI,EAAE,CAAC,IAAIqY,EAAErY,EAAEF,EAAEgpI,UAAUhpI,EAAEgpI,UAAU7rI,SAAS,GAAG8a,EAAE,GAAGxB,EAAE,CAAK,IAAII,EAAE0B,EAAEA,EAAEN,EAAE,KAAhB/X,EAAE2M,GAAoBsiI,SAASjvI,EAAE+4B,WAAWy5H,aAAa77I,EAAE0B,GAAGrY,EAAEwyJ,aAAa77I,EAAE0B,QAAQ1L,EAAE6lJ,aAAan6I,EAAEN,QAAQxB,GAAO,KAAJI,EAAEhK,GAAQsiI,UAAUjvI,EAAE2W,EAAEoiB,YAAay5H,aAAan6I,EAAE1B,IAAK3W,EAAE2W,GAAImjF,YAAYzhF,GAA4B,QAAxB1B,EAAEA,EAAE87I,2BAA8B,IAAS97I,GAAG,OAAO3W,EAAEyxJ,UAAUzxJ,EAAEyxJ,QAAQz6C,KAAKrqG,EAAEmtF,YAAYzhF,QAAQ,GAAG,IACngBvY,EAAEoqI,KAAK,OAAOpqI,EAAE0wI,MAAM,CAAC1wI,EAAE0wI,MAAMjG,OAAOzqI,EAAEA,EAAEA,EAAE0wI,MAAM,SAAS,GAAG1wI,IAAI4M,EAAE,MAAM,KAAK,OAAO5M,EAAE2wI,SAAS,CAAC,GAAG,OAAO3wI,EAAEyqI,QAAQzqI,EAAEyqI,SAAS79H,EAAE,OAAO5M,EAAEA,EAAEyqI,OAAOzqI,EAAE2wI,QAAQlG,OAAOzqI,EAAEyqI,OAAOzqI,EAAEA,EAAE2wI,SACnL,SAAS2hB,GAAG1lJ,EAAEC,EAAEoL,GAAG,IAAI,IAAa/X,EAAEqY,EAAX9B,EAAE5J,EAAE7M,GAAE,IAAS,CAAC,IAAIA,EAAE,CAACA,EAAEyW,EAAEg0H,OAAO79H,EAAE,OAAO,CAAC,GAAG,OAAO5M,EAAE,MAAM0E,MAAMwpG,EAAE,MAAoB,OAAdhuG,EAAEF,EAAEgpI,UAAiBhpI,EAAEoqI,KAAK,KAAK,EAAE7xH,GAAE,EAAG,MAAM3L,EAAE,KAAK,EAAiC,KAAK,EAAE1M,EAAEA,EAAEqyI,cAAch6H,GAAE,EAAG,MAAM3L,EAAE5M,EAAEA,EAAEyqI,OAAOzqI,GAAE,EAAG,GAAG,IAAIyW,EAAE2zH,KAAK,IAAI3zH,EAAE2zH,IAAI,CAACx9H,EAAE,IAAI,IAAIiK,EAAEjK,EAAE9B,EAAE2L,EAAEG,EAAEqB,EAAEzB,EAAE1L,IAAI,GAAGsnJ,GAAGv7I,EAAEL,EAAEI,GAAG,OAAOJ,EAAEk6H,OAAO,IAAIl6H,EAAE4zH,IAAI5zH,EAAEk6H,MAAMjG,OAAOj0H,EAAEA,EAAEA,EAAEk6H,UAAU,CAAC,GAAGl6H,IAAI1L,EAAE,MAAM,KAAK,OAAO0L,EAAEm6H,SAAS,CAAC,GAAG,OAAOn6H,EAAEi0H,QAAQj0H,EAAEi0H,SAAS3/H,EAAE,MAAM8B,EAAE4J,EAAEA,EAAEi0H,OAAOj0H,EAAEm6H,QAAQlG,OAAOj0H,EAAEi0H,OAAOj0H,EAAEA,EAAEm6H,QAAQp4H,GAAG1B,EACnf3W,EAAE4K,EAAE2L,EAAEuyH,UAAU,IAAInyH,EAAEs4H,SAASt4H,EAAEoiB,WAAWihE,YAAYpvF,GAAG+L,EAAEqjF,YAAYpvF,IAAI5K,EAAEg6F,YAAYzjF,EAAEuyH,gBAAgB,GAAG,IAAIvyH,EAAE2zH,KAAK,GAAG,OAAO3zH,EAAEi6H,MAAM,CAACxwI,EAAEuW,EAAEuyH,UAAUuJ,cAAch6H,GAAE,EAAG9B,EAAEi6H,MAAMjG,OAAOh0H,EAAEA,EAAEA,EAAEi6H,MAAM,eAAe,GAAG0hB,GAAGxlJ,EAAE6J,EAAEwB,GAAG,OAAOxB,EAAEi6H,MAAM,CAACj6H,EAAEi6H,MAAMjG,OAAOh0H,EAAEA,EAAEA,EAAEi6H,MAAM,SAAS,GAAGj6H,IAAI5J,EAAE,MAAM,KAAK,OAAO4J,EAAEk6H,SAAS,CAAC,GAAG,OAAOl6H,EAAEg0H,QAAQh0H,EAAEg0H,SAAS59H,EAAE,OAAkB,KAAX4J,EAAEA,EAAEg0H,QAAaL,MAAMpqI,GAAE,GAAIyW,EAAEk6H,QAAQlG,OAAOh0H,EAAEg0H,OAAOh0H,EAAEA,EAAEk6H,SACpa,SAASiiB,GAAGhmJ,EAAEC,GAAG,OAAOA,EAAEu9H,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG8nB,GAAG,EAAE,EAAErlJ,GAAG,MAAM,KAAK,EAAE,MAAM,KAAK,EAAE,IAAIoL,EAAEpL,EAAEm8H,UAAU,GAAG,MAAM/wH,EAAE,CAAC,IAAIxB,EAAE5J,EAAEk/I,cAAc/rJ,EAAE,OAAO4M,EAAEA,EAAEm/I,cAAct1I,EAAE7J,EAAEC,EAAE9D,KAAK,IAAI7I,EAAE2M,EAAEu8I,YAA+B,GAAnBv8I,EAAEu8I,YAAY,KAAQ,OAAOlpJ,EAAE,CAAgF,IAA/E+X,EAAE6kG,IAAIrmG,EAAE,UAAU7J,GAAG,UAAU6J,EAAE1N,MAAM,MAAM0N,EAAEkT,MAAM4jH,GAAGt1H,EAAExB,GAAGypI,GAAGtzI,EAAE5M,GAAG6M,EAAEqzI,GAAGtzI,EAAE6J,GAAOzW,EAAE,EAAEA,EAAEE,EAAE7D,OAAO2D,GAAG,EAAE,CAAC,IAAIuY,EAAErY,EAAEF,GAAG6W,EAAE3W,EAAEF,EAAE,GAAG,UAAUuY,EAAEgnI,GAAGtnI,EAAEpB,GAAG,4BAA4B0B,EAAEq2H,GAAG32H,EAAEpB,GAAG,aAAa0B,EAAE02H,GAAGh3H,EAAEpB,GAAGq1H,GAAGj0H,EAAEM,EAAE1B,EAAEhK,GAAG,OAAOD,GAAG,IAAK,QAAQ4gI,GAAGv1H,EAAExB,GAAG,MAAM,IAAK,WAAW23H,GAAGn2H,EACjgBxB,GAAG,MAAM,IAAK,SAAS5J,EAAEoL,EAAEi1H,cAAc2lB,YAAY56I,EAAEi1H,cAAc2lB,cAAcp8I,EAAEq8I,SAAmB,OAAVlmJ,EAAE6J,EAAE/Y,OAAcowI,GAAG71H,IAAIxB,EAAEq8I,SAASlmJ,GAAE,GAAIC,MAAM4J,EAAEq8I,WAAW,MAAMr8I,EAAEpN,aAAaykI,GAAG71H,IAAIxB,EAAEq8I,SAASr8I,EAAEpN,cAAa,GAAIykI,GAAG71H,IAAIxB,EAAEq8I,SAASr8I,EAAEq8I,SAAS,GAAG,IAAG,MAAO,MAAM,KAAK,EAAE,GAAG,OAAOjmJ,EAAEm8H,UAAU,MAAMtkI,MAAMwpG,EAAE,MAAMrhG,EAAEm8H,UAAUoG,UAAUviI,EAAEk/I,cAAc,MAAM,KAAK,GAAEl/I,EAAEA,EAAEm8H,WAAYsJ,UAAUzlI,EAAEylI,SAAQ,EAAGS,GAAGlmI,EAAE0lI,gBAAgB,MAAM,KAAK,GAAG,MAAM,KAAK,GAC9b,GADict6H,EAAEpL,EAAE,OAAOA,EAAE0jI,cAAc95H,GAAE,GAAIA,GAAE,EAAGwB,EAAEpL,EAAE6jI,MAAMqiB,GAAGvM,MACjf,OAAOvuI,EAAErL,EAAE,IAAIA,EAAEqL,IAAI,CAAC,GAAG,IAAIrL,EAAEw9H,IAAIlqI,EAAE0M,EAAEo8H,UAAUvyH,EAAa,oBAAVvW,EAAEA,EAAEkoB,OAA4BsW,YAAYx+B,EAAEw+B,YAAY,UAAU,OAAO,aAAax+B,EAAEi7C,QAAQ,QAASj7C,EAAE0M,EAAEo8H,UAAkChpI,OAAE,KAA1BA,EAAE4M,EAAEm/I,cAAc3jI,QAAoB,OAAOpoB,GAAGA,EAAEqB,eAAe,WAAWrB,EAAEm7C,QAAQ,KAAKj7C,EAAEkoB,MAAM+yB,QAAQmkG,GAAG,UAAUt/I,SAAS,GAAG,IAAI4M,EAAEw9H,IAAIx9H,EAAEo8H,UAAUoG,UAAU34H,EAAE,GAAG7J,EAAEm/I,kBAAmB,IAAG,KAAKn/I,EAAEw9H,KAAK,OAAOx9H,EAAE2jI,eAAe,OAAO3jI,EAAE2jI,cAAcC,WAAW,EAACtwI,EAAE0M,EAAE8jI,MAAMC,SAAUlG,OAAO79H,EAAEA,EAAE1M,EAAE,SAAc,GAAG,OAAO0M,EAAE8jI,MAAM,CAAC9jI,EAAE8jI,MAAMjG,OAClgB79H,EAAEA,EAAEA,EAAE8jI,MAAM,UAAS,GAAG9jI,IAAIqL,EAAE,MAAMrL,EAAE,KAAK,OAAOA,EAAE+jI,SAAS,CAAC,GAAG,OAAO/jI,EAAE69H,QAAQ79H,EAAE69H,SAASxyH,EAAE,MAAMrL,EAAEA,EAAEA,EAAE69H,OAAO79H,EAAE+jI,QAAQlG,OAAO79H,EAAE69H,OAAO79H,EAAEA,EAAE+jI,QAAQqiB,GAAGnmJ,GAAG,MAAM,KAAK,GAAGmmJ,GAAGnmJ,GAAG,MAAM,KAAK,GAAS,KAAK,GAAS,KAAK,GAAG,MAAM,QAAQ,MAAMnI,MAAMwpG,EAAE,OAAQ,SAAS8kD,GAAGpmJ,GAAG,IAAIC,EAAED,EAAEw8I,YAAY,GAAG,OAAOv8I,EAAE,CAACD,EAAEw8I,YAAY,KAAK,IAAInxI,EAAErL,EAAEo8H,UAAU,OAAO/wH,IAAIA,EAAErL,EAAEo8H,UAAU,IAAI4oB,IAAI/kJ,EAAE4E,SAAQ,SAAS5E,GAAG,IAAI4J,EAAEw8I,GAAG54G,KAAK,KAAKztC,EAAEC,GAAGoL,EAAEjL,IAAIH,KAAKoL,EAAEnG,IAAIjF,GAAGA,EAAE7N,KAAKyX,EAAEA,QAAO,IAAIy8I,GAAG,oBAAoB5mF,QAAQA,QAAQpvC,IACnf,SAASi2H,GAAGvmJ,EAAEC,EAAEoL,IAAGA,EAAE6wI,GAAG7wI,EAAE,OAAQmyH,IAAI,EAAEnyH,EAAE+wI,QAAQ,CAACxvH,QAAQ,MAAM,IAAI/iB,EAAE5J,EAAEnP,MAAsD,OAAhDua,EAAEtO,SAAS,WAAWypJ,KAAKA,IAAG,EAAGC,GAAG58I,GAAGq7I,GAAGllJ,EAAEC,IAAWoL,EACtI,SAASq7I,GAAG1mJ,EAAEC,EAAEoL,IAAGA,EAAE6wI,GAAG7wI,EAAE,OAAQmyH,IAAI,EAAE,IAAI3zH,EAAE7J,EAAE7D,KAAK83H,yBAAyB,GAAG,oBAAoBpqH,EAAE,CAAC,IAAIzW,EAAE6M,EAAEnP,MAAMua,EAAE+wI,QAAQ,WAAmB,OAAR8I,GAAGllJ,EAAEC,GAAU4J,EAAEzW,IAAI,IAAIE,EAAE0M,EAAEo8H,UAA8O,OAApO,OAAO9oI,GAAG,oBAAoBA,EAAEqzJ,oBAAoBt7I,EAAEtO,SAAS,WAAW,oBAAoB8M,IAAI,OAAO+8I,GAAGA,GAAG,IAAI3hJ,IAAI,CAAC7T,OAAOw1J,GAAG1hJ,IAAI9T,MAAM8zJ,GAAGllJ,EAAEC,IAAI,IAAIoL,EAAEpL,EAAEs6B,MAAMnpC,KAAKu1J,kBAAkB1mJ,EAAEnP,MAAM,CAAC+1J,eAAe,OAAOx7I,EAAEA,EAAE,OAAcA,EAC7Z,IA6C8Yy7I,GA7C1YC,GAAG/yJ,KAAK8B,KAAKkxJ,GAAG3qB,EAAGxE,uBAAuBovB,GAAG5qB,EAAGrE,kBAAqE1qH,GAAjD,EAAqDD,GAAE,KAAKD,GAAE,KAAKD,GAAE,EAAED,GAAjD,EAAsDg6I,GAAG,KAAKC,GAAG,WAAWC,GAAG,WAAWC,GAAG,KAAKC,GAAG,EAAEC,IAAG,EAAGpB,GAAG,EAASl5I,GAAE,KAAKu5I,IAAG,EAAGC,GAAG,KAAKG,GAAG,KAAKY,IAAG,EAAGC,GAAG,KAAKC,GAAG,GAAGC,GAAG,KAAKC,GAAG,EAAEC,GAAG,KAAKC,GAAG,EAAE,SAASxK,KAAK,OAAxO,KAAgP,GAADhwI,IAAe,YAAYssI,KAAK,GAAG,GAAG,IAAIkO,GAAGA,GAAGA,GAAG,YAAYlO,KAAK,GAAG,GAC9X,SAAS2D,GAAGv9I,EAAEC,EAAEoL,GAAY,GAAG,KAAO,GAAnBpL,EAAEA,EAAEgc,OAAkB,OAAO,WAAW,IAAIpS,EAAEgwI,KAAK,GAAG,KAAO,EAAF55I,GAAK,OAAO,KAAK4J,EAAE,WAAW,WAAW,GAD/C,KAAU,GACyCyD,IAAU,OAAOH,GAAE,GAAG,OAAO9B,EAAErL,EAAEq6I,GAAGr6I,EAAc,EAAZqL,EAAE08I,WAAa,IAAI,UAAU,OAAOl+I,GAAG,KAAK,GAAG7J,EAAE,WAAW,MAAM,KAAK,GAAGA,EAAEq6I,GAAGr6I,EAAE,IAAI,KAAK,MAAM,KAAK,GAAG,KAAK,GAAGA,EAAEq6I,GAAGr6I,EAAE,IAAI,KAAK,MAAM,KAAK,GAAGA,EAAE,EAAE,MAAM,QAAQ,MAAMlI,MAAMwpG,EAAE,MAA4B,OAArB,OAAOj0F,IAAGrN,IAAImN,MAAKnN,EAASA,EAClX,SAASw9I,GAAGx9I,EAAEC,GAAG,GAAG,GAAG2nJ,GAAG,MAAMA,GAAG,EAAEC,GAAG,KAAK/vJ,MAAMwpG,EAAE,MAAgB,GAAG,QAAbthG,EAAEgoJ,GAAGhoJ,EAAEC,IAAe,CAAC,IAAIoL,EAAEwuI,KAAK,aAAa55I,EAFlC,KAAK,EAEgCqN,KAFrC,KAEkD,GAADA,IAAe26I,GAAGjoJ,IAAIgN,GAAEhN,GAFzE,IAE4EsN,IAAO6sI,MAAMntI,GAAEhN,GAF3F,KAEiG,EAAFsN,KAAU,KAAKjC,GAAG,KAAKA,IAAI,OAAOs8I,GAAGA,GAAG,IAAIr3H,IAAI,CAAC,CAACtwB,EAAEC,WAAmB,KAAboL,EAAEs8I,GAAGjsJ,IAAIsE,KAAgBqL,EAAEpL,IAAI0nJ,GAAG3iJ,IAAIhF,EAAEC,KACzQ,SAAS+nJ,GAAGhoJ,EAAEC,GAAGD,EAAEk7I,eAAej7I,IAAID,EAAEk7I,eAAej7I,GAAG,IAAIoL,EAAErL,EAAEwjI,UAAU,OAAOn4H,GAAGA,EAAE6vI,eAAej7I,IAAIoL,EAAE6vI,eAAej7I,GAAG,IAAI4J,EAAE7J,EAAE69H,OAAOzqI,EAAE,KAAK,GAAG,OAAOyW,GAAG,IAAI7J,EAAEw9H,IAAIpqI,EAAE4M,EAAEo8H,eAAe,KAAK,OAAOvyH,GAAG,CAA+H,GAA9HwB,EAAExB,EAAE25H,UAAU35H,EAAEkxI,oBAAoB96I,IAAI4J,EAAEkxI,oBAAoB96I,GAAG,OAAOoL,GAAGA,EAAE0vI,oBAAoB96I,IAAIoL,EAAE0vI,oBAAoB96I,GAAM,OAAO4J,EAAEg0H,QAAQ,IAAIh0H,EAAE2zH,IAAI,CAACpqI,EAAEyW,EAAEuyH,UAAU,MAAMvyH,EAAEA,EAAEg0H,OAA0D,OAAnD,OAAOzqI,IAAIia,KAAIja,IAAI0pJ,GAAG78I,GAH/S,IAGkTiN,IAAQg7I,GAAG90J,EAAE+Z,KAAIg7I,GAAG/0J,EAAE6M,IAAW7M,EACrc,SAASg1J,GAAGpoJ,GAAG,IAAIC,EAAED,EAAEqoJ,gBAAgB,OAAG,IAAIpoJ,EAASA,EAA2BqoJ,GAAGtoJ,EAA5BC,EAAED,EAAEuoJ,mBAAsCtoJ,EAAED,EAAEwoJ,iBAAexoJ,EAAEA,EAAEyoJ,uBAAiCxoJ,EAAED,EAA5DC,EACjG,SAAS+M,GAAEhN,GAAG,GAAG,IAAIA,EAAEqoJ,gBAAgBroJ,EAAE0oJ,uBAAuB,WAAW1oJ,EAAE2oJ,iBAAiB,GAAG3oJ,EAAE4oJ,aAAa3O,GAAGgO,GAAGx6G,KAAK,KAAKztC,QAAQ,CAAC,IAAIC,EAAEmoJ,GAAGpoJ,GAAGqL,EAAErL,EAAE4oJ,aAAa,GAAG,IAAI3oJ,EAAE,OAAOoL,IAAIrL,EAAE4oJ,aAAa,KAAK5oJ,EAAE0oJ,uBAAuB,EAAE1oJ,EAAE2oJ,iBAAiB,QAAQ,CAAC,IAAI9+I,EAAEyzI,KAAqH,GAAhH,aAAar9I,EAAE4J,EAAE,GAAG,IAAI5J,GAAG,IAAIA,EAAE4J,EAAE,GAA0CA,EAAE,IAAxCA,EAAE,IAAI,WAAW5J,GAAG,IAAI,WAAW4J,IAAU,GAAG,KAAKA,EAAE,GAAG,MAAMA,EAAE,GAAG,GAAO,OAAOwB,EAAE,CAAC,IAAIjY,EAAE4M,EAAE2oJ,iBAAiB,GAAG3oJ,EAAE0oJ,yBAAyBzoJ,GAAG7M,GAAGyW,EAAE,OAAOwB,IAAIiuI,IAAIlB,GAAG/sI,GAAGrL,EAAE0oJ,uBACnezoJ,EAAED,EAAE2oJ,iBAAiB9+I,EAAE5J,EAAE,aAAaA,EAAEg6I,GAAGgO,GAAGx6G,KAAK,KAAKztC,IAAIg6I,GAAGnwI,EAAEg/I,GAAGp7G,KAAK,KAAKztC,GAAG,CAACsuD,QAAQ,IAAI,WAAWruD,GAAG25I,OAAO55I,EAAE4oJ,aAAa3oJ,IAClI,SAAS4oJ,GAAG7oJ,EAAEC,GAAQ,GAAL6nJ,GAAG,EAAK7nJ,EAAE,OAAc6oJ,GAAG9oJ,EAAVC,EAAEq9I,MAAatwI,GAAEhN,GAAG,KAAK,IAAIqL,EAAE+8I,GAAGpoJ,GAAG,GAAG,IAAIqL,EAAE,CAAkB,GAAjBpL,EAAED,EAAE4oJ,aAPb,KAO+B,GAADt7I,IAAe,MAAMxV,MAAMwpG,EAAE,MAAiC,GAA3BynD,KAAK/oJ,IAAIqN,IAAGhC,IAAI8B,IAAG67I,GAAGhpJ,EAAEqL,GAAM,OAAO+B,GAAE,CAAC,IAAIvD,EAAEyD,GAAEA,IAPvG,GAOyH,IAAZ,IAAIla,EAAE61J,OAAS,IAAIC,KAAK,MAAM,MAAMj/I,GAAGk/I,GAAGnpJ,EAAEiK,GAAkC,GAAtB0wI,KAAKrtI,GAAEzD,EAAEm9I,GAAGr9H,QAAQv2B,EAPxK,IAO6K8Z,GAAO,MAAMjN,EAAEinJ,GAAG8B,GAAGhpJ,EAAEqL,GAAG68I,GAAGloJ,EAAEqL,GAAG2B,GAAEhN,GAAGC,EAAE,GAAG,OAAOmN,GAAE,OAAOha,EAAE4M,EAAEopJ,aAAappJ,EAAE2pB,QAAQ65G,UAAUxjI,EAAEqpJ,uBAAuBh+I,EAAExB,EAAEqD,GAAEG,GAAE,KAAKxD,GAAG,KAP5T,EAOoU,KAP/T,EAOuU,MAAM/R,MAAMwpG,EAAE,MAAM,KAPtV,EAO8VwnD,GAAG9oJ,EAAE,EAAEqL,EAAE,EAAEA,GAAG,MAAM,KAP7W,EAQtE,GAD2b68I,GAAGloJ,EAAEqL,GACveA,KAD0exB,EAAE7J,EAAEspJ,qBACtetpJ,EAAEyoJ,sBAAsBc,GAAGn2J,IAAO,aAAa+zJ,IAAkB,IAAb/zJ,EAAE+yJ,GARqJ,IAQ/IvM,MAAW,CAAC,GAAG2N,GAAG,CAAC,IAAIj0J,EAAE0M,EAAEwoJ,eAAe,GAAG,IAAIl1J,GAAGA,GAAG+X,EAAE,CAACrL,EAAEwoJ,eAAen9I,EAAE29I,GAAGhpJ,EAAEqL,GAAG,OAAe,GAAG,KAAX/X,EAAE80J,GAAGpoJ,KAAa1M,IAAI+X,EAAE,MAAM,GAAG,IAAIxB,GAAGA,IAAIwB,EAAE,CAACrL,EAAEwoJ,eAAe3+I,EAAE,MAAM7J,EAAEwpJ,cAAcl7C,GAAGm7C,GAAGh8G,KAAK,KAAKztC,GAAG5M,GAAG,MAAMq2J,GAAGzpJ,GAAG,MAAM,KAR9K,EAQ2P,GAArEkoJ,GAAGloJ,EAAEqL,GAAyBA,KAAtBxB,EAAE7J,EAAEspJ,qBAA0BtpJ,EAAEyoJ,sBAAsBc,GAAGn2J,IAAOm0J,KAAwB,KAAnBn0J,EAAE4M,EAAEwoJ,iBAAsBp1J,GAAGiY,GAAG,CAACrL,EAAEwoJ,eAAen9I,EAAE29I,GAAGhpJ,EAAEqL,GAAG,MAAc,GAAG,KAAXjY,EAAEg1J,GAAGpoJ,KAAa5M,IAAIiY,EAAE,MAAM,GAAG,IAAIxB,GAAGA,IAAIwB,EAAE,CAACrL,EAAEwoJ,eACxe3+I,EAAE,MAAgP,GAA1O,aAAau9I,GAAGv9I,EAAE,IAAI,WAAWu9I,IAAIxN,KAAK,aAAauN,GAAGt9I,EAAE,GAAGA,EAAE,IAAI,WAAWs9I,IAAI,IAAuC,GAANt9I,GAA7BzW,EAAEwmJ,MAA+B/vI,KAAQA,EAAE,IAApCwB,EAAE,IAAI,WAAWA,GAAGjY,IAAmByW,GAAG,IAAIA,EAAE,IAAI,IAAIA,EAAE,IAAI,KAAKA,EAAE,KAAK,KAAKA,EAAE,KAAK,IAAIA,EAAE,IAAI,KAAKA,EAAE,KAAK,KAAKk9I,GAAGl9I,EAAE,OAAOA,KAAQA,EAAEwB,IAAO,GAAGxB,EAAE,CAAC7J,EAAEwpJ,cAAcl7C,GAAGm7C,GAAGh8G,KAAK,KAAKztC,GAAG6J,GAAG,MAAM4/I,GAAGzpJ,GAAG,MAAM,KAT5L,EASoM,GAAG,aAAamnJ,IAAI,OAAOE,GAAG,CAAC/zJ,EAAE6zJ,GAAG,IAAIx7I,EAAE07I,GAAuH,GAA5F,IAAxBx9I,EAAsB,EAApB8B,EAAE+9I,mBAAyB7/I,EAAE,GAAGzW,EAAgB,EAAduY,EAAEg+I,YAA8D9/I,GAAhDvW,EAAEsmJ,MAAM,IAAI,WAAWtmJ,IAAgB,EAAZqY,EAAEo8I,WAAa,QAAW30J,EAAE,EAAEA,EAAEyW,EAAEvW,GAAM,GAAGuW,EAAE,CAACq+I,GAAGloJ,EAAEqL,GAAGrL,EAAEwpJ,cAC/el7C,GAAGm7C,GAAGh8G,KAAK,KAAKztC,GAAG6J,GAAG,OAAO4/I,GAAGzpJ,GAAG,MAAM,QAAQ,MAAMlI,MAAMwpG,EAAE,MAAY,GAALt0F,GAAEhN,GAAMA,EAAE4oJ,eAAe3oJ,EAAE,OAAO4oJ,GAAGp7G,KAAK,KAAKztC,IAAI,OAAO,KAChI,SAASioJ,GAAGjoJ,GAAG,IAAIC,EAAED,EAAEqoJ,gBAAqC,GAArBpoJ,EAAE,IAAIA,EAAEA,EAAE,WAAcD,EAAEqpJ,yBAAyBppJ,EAAEwpJ,GAAGzpJ,OAAO,CAAC,GAX/B,KAWoC,GAADsN,IAAe,MAAMxV,MAAMwpG,EAAE,MAAiC,GAA3BynD,KAAK/oJ,IAAIqN,IAAGpN,IAAIkN,IAAG67I,GAAGhpJ,EAAEC,GAAM,OAAOmN,GAAE,CAAC,IAAI/B,EAAEiC,GAAEA,IAX5G,GAW8H,IAAZ,IAAIzD,EAAEo/I,OAAS,IAAIW,KAAK,MAAM,MAAMx2J,GAAG+1J,GAAGnpJ,EAAE5M,GAAkC,GAAtBunJ,KAAKrtI,GAAEjC,EAAE27I,GAAGr9H,QAAQ9f,EAX7K,IAWkLqD,GAAO,MAAM7B,EAAE67I,GAAG8B,GAAGhpJ,EAAEC,GAAGioJ,GAAGloJ,EAAEC,GAAG+M,GAAEhN,GAAGqL,EAAE,GAAG,OAAO+B,GAAE,MAAMtV,MAAMwpG,EAAE,MAAMthG,EAAEopJ,aAAappJ,EAAE2pB,QAAQ65G,UAAUxjI,EAAEqpJ,uBAAuBppJ,EAAEoN,GAAE,KAAKo8I,GAAGzpJ,GAAGgN,GAAEhN,IAAI,OAAO,KAC5V,SAAS6pJ,GAAG7pJ,EAAEC,GAAG,IAAIoL,EAAEiC,GAAEA,IAAG,EAAE,IAAI,OAAOtN,EAAEC,GAAb,QAZhD,KAYwEqN,GAAEjC,IAAS8uI,MAAM,SAAS2P,GAAG9pJ,EAAEC,GAAG,IAAIoL,EAAEiC,GAAEA,KAAI,EAAEA,IAZnH,EAYyH,IAAI,OAAOtN,EAAEC,GAAb,QAZ9H,KAYsJqN,GAAEjC,IAAS8uI,MACzO,SAAS6O,GAAGhpJ,EAAEC,GAAGD,EAAEopJ,aAAa,KAAKppJ,EAAEqpJ,uBAAuB,EAAE,IAAIh+I,EAAErL,EAAEwpJ,cAAiD,IAAlC,IAAIn+I,IAAIrL,EAAEwpJ,eAAe,EAAEv0C,GAAG5pG,IAAO,OAAO+B,GAAE,IAAI/B,EAAE+B,GAAEywH,OAAO,OAAOxyH,GAAG,CAAC,IAAIxB,EAAEwB,EAAE,OAAOxB,EAAE2zH,KAAK,KAAK,EAAE,IAAIpqI,EAAEyW,EAAE1N,KAAKsmF,kBAAkB,OAAOrvF,QAAG,IAASA,GAAGukJ,KAAM,MAAM,KAAK,EAAEoH,KAAMnH,KAAM,MAAM,KAAK,EAAEqH,GAAGp1I,GAAG,MAAM,KAAK,EAAEk1I,KAAM,MAAM,KAAK,GAAgB,KAAK,GAAG/wI,GAAEH,IAAK,MAAM,KAAK,GAAGgtI,GAAGhxI,GAAGwB,EAAEA,EAAEwyH,OAAOxwH,GAAErN,EAAEoN,GAAEwhH,GAAG5uH,EAAE2pB,QAAQ,MAAQxc,GAAElN,EAAEiN,GAbhU,EAaqUg6I,GAAG,KAAKE,GAAGD,GAAG,WAAWE,GAAG,KAAKC,GAAG,EAAEC,IAAG,EAC5c,SAAS4B,GAAGnpJ,EAAEC,GAAG,OAAE,CAAC,IAAc,GAAV06I,KAAK6F,KAAQ,OAAOpzI,IAAG,OAAOA,GAAEywH,OAAO,OAAO3wH,GAd6B,EAcxBg6I,GAAGjnJ,EAAE,KAAKD,EAAE,CAAC,IAAIqL,EAAErL,EAAE6J,EAAEuD,GAAEywH,OAAOzqI,EAAEga,GAAE9Z,EAAE2M,EAAwD,GAAtDA,EAAEkN,GAAE/Z,EAAEqwI,WAAW,KAAKrwI,EAAEyoJ,YAAYzoJ,EAAE0oJ,WAAW,KAAQ,OAAOxoJ,GAAG,kBAAkBA,GAAG,oBAAoBA,EAAElB,KAAK,CAAC,IAAIuZ,EAAErY,EAAE2W,EAAE,KAAe,EAAV4D,GAAE8b,SAAWzrB,EAAE2L,EAAE,EAAE,CAAC,IAAIG,EAAE,GAAGA,EAAE,KAAK9L,EAAEs/H,IAAI,CAAC,IAAI5zH,EAAE1L,EAAEylI,cAAc,GAAG,OAAO/5H,EAAEI,EAAE,OAAOJ,EAAEg6H,eAAqB,CAAC,IAAI1vI,EAAEgK,EAAEihJ,cAAcn1I,OAAE,IAAS9V,EAAE6wB,YAAY,IAAK7wB,EAAEgwJ,6BAA8Bj6I,IAAS,GAAGD,EAAE,CAAC,IAAI/K,EAAEf,EAAEs+I,YAAY,GAAG,OAAOv9I,EAAE,CAAC,IAAIgP,EAAE,IAAIhJ,IAClfgJ,EAAE/I,IAAIyG,GAAGzN,EAAEs+I,YAAYvuI,OAAOhP,EAAEiG,IAAIyG,GAAG,GAAG,KAAY,EAAPzN,EAAE+d,MAAQ,CAAoC,GAAnC/d,EAAEulI,WAAW,GAAGrwI,EAAEqwI,YAAY,KAAQ,IAAIrwI,EAAEoqI,IAAI,GAAG,OAAOpqI,EAAEowI,UAAUpwI,EAAEoqI,IAAI,OAAO,CAAC,IAAIvgF,EAAEi/F,GAAG,WAAW,MAAMj/F,EAAEugF,IAAI,EAAE+e,GAAGnpJ,EAAE6pD,GAAG7pD,EAAE8nJ,eAAe,WAAW,MAAMl7I,EAAE1M,OAAE,EAAOF,EAAE6M,EAAE,IAAIu+I,EAAGnzI,EAAE0+I,UAAoH,GAA1G,OAAOvL,GAAIA,EAAGnzI,EAAE0+I,UAAU,IAAIzD,GAAGhzJ,EAAE,IAAI2R,IAAIu5I,EAAGx5I,IAAI2G,EAAErY,SAAiB,KAAZA,EAAEkrJ,EAAG9iJ,IAAIiQ,MAAgBrY,EAAE,IAAI2R,IAAIu5I,EAAGx5I,IAAI2G,EAAErY,KAASA,EAAE8M,IAAIhN,GAAG,CAACE,EAAE4R,IAAI9R,GAAG,IAAIgD,EAAE4zJ,GAAGv8G,KAAK,KAAKpiC,EAAEM,EAAEvY,GAAGuY,EAAEvZ,KAAKgE,EAAEA,GAAG8H,EAAEulI,WAAW,KAAKvlI,EAAEg9I,eAAej7I,EAAE,MAAMD,EAAE9B,EAAEA,EAAE2/H,aAAa,OAAO3/H,GAAG5K,EAAEwE,OAAOwlI,EAAGlqI,EAAE+I,OACzf,qBAAqB,wLAAwLohI,EAAGnqI,IAhBzF,IAgB6F8Z,KAASA,GAhBrH,GAgB2H5Z,EAAEwxJ,GAAGxxJ,EAAEF,GAAG8K,EAAE2L,EAAE,EAAE,CAAC,OAAO3L,EAAEs/H,KAAK,KAAK,EAAE7xH,EAAErY,EAAE4K,EAAEulI,WAAW,KAAKvlI,EAAEg9I,eAAej7I,EAAkBw8I,GAAGv+I,EAAbqoJ,GAAGroJ,EAAEyN,EAAE1L,IAAW,MAAMD,EAAE,KAAK,EAAE2L,EAAErY,EAAE,IAAI2X,EAAE/M,EAAE/B,KAAKiG,EAAElE,EAAEk+H,UAAU,GAAG,KAAiB,GAAZl+H,EAAEulI,aAAgB,oBAAoBx4H,EAAEgpH,0BAA0B,OAAO7xH,GAAG,oBAAoBA,EAAEukJ,oBACje,OAAOC,KAAKA,GAAGxmJ,IAAIgC,KAAK,CAAClE,EAAEulI,WAAW,KAAKvlI,EAAEg9I,eAAej7I,EAAkBw8I,GAAGv+I,EAAbwoJ,GAAGxoJ,EAAEyN,EAAE1L,IAAW,MAAMD,GAAG9B,EAAEA,EAAE2/H,aAAa,OAAO3/H,GAAGkP,GAAE68I,GAAG78I,IAAG,MAAMrO,GAAGkB,EAAElB,EAAE,SAAS,OAAe,SAASkqJ,KAAK,IAAIjpJ,EAAEgnJ,GAAGr9H,QAAsB,OAAdq9H,GAAGr9H,QAAQ42H,GAAU,OAAOvgJ,EAAEugJ,GAAGvgJ,EAAE,SAAS68I,GAAG78I,EAAEC,GAAGD,EAAEmnJ,IAAI,EAAEnnJ,IAAImnJ,GAAGnnJ,GAAG,OAAOC,GAAGD,EAAEonJ,IAAI,EAAEpnJ,IAAIonJ,GAAGpnJ,EAAEqnJ,GAAGpnJ,GAAG,SAAS68I,GAAG98I,GAAGA,EAAEsnJ,KAAKA,GAAGtnJ,GAAG,SAAS4pJ,KAAK,KAAK,OAAOx8I,IAAGA,GAAE88I,GAAG98I,IAAG,SAAS87I,KAAK,KAAK,OAAO97I,KAAIkrI,MAAMlrI,GAAE88I,GAAG98I,IACxZ,SAAS88I,GAAGlqJ,GAAG,IAAIC,EAAE6mJ,GAAG9mJ,EAAEwjI,UAAUxjI,EAAEmN,IAAsE,OAAnEnN,EAAEm/I,cAAcn/I,EAAEyiJ,aAAa,OAAOxiJ,IAAIA,EAAEgqJ,GAAGjqJ,IAAIinJ,GAAGt9H,QAAQ,KAAY1pB,EACnH,SAASgqJ,GAAGjqJ,GAAGoN,GAAEpN,EAAE,EAAE,CAAC,IAAIC,EAAEmN,GAAEo2H,UAAqB,GAAXxjI,EAAEoN,GAAEywH,OAAU,KAAiB,KAAZzwH,GAAEq2H,WAAgB,CAACzjI,EAAE,CAAC,IAAIqL,EAAEpL,EAAU4J,EAAEsD,GAAM/Z,GAAhB6M,EAAEmN,IAAkBq1I,aAAa,OAAOxiJ,EAAEu9H,KAAK,KAAK,EAAQ,KAAK,GAAG,MAAM,KAAK,GAAG,KAAK,EAAE,MAAM,KAAK,EAAE1vH,GAAE7N,EAAE9D,OAAOw7I,KAAM,MAAM,KAAK,EAAEoH,KAAMnH,MAAMxkJ,EAAE6M,EAAEm8H,WAAYwnB,iBAAiBxwJ,EAAE4nB,QAAQ5nB,EAAEwwJ,eAAexwJ,EAAEwwJ,eAAe,OAAO,OAAOv4I,GAAG,OAAOA,EAAEy4H,QAAQ8e,GAAG3iJ,IAAI0kJ,GAAG1kJ,GAAS,MAAM,KAAK,EAAEg/I,GAAGh/I,GAAG4J,EAAEu0D,GAAGugF,GAAGh1H,SAAS,IAAIr2B,EAAE2M,EAAE9D,KAAK,GAAG,OAAOkP,GAAG,MAAMpL,EAAEm8H,UAAU0nB,GAAGz4I,EAAEpL,EAAE3M,EAAEF,EAAEyW,GAAGwB,EAAEkiF,MAAMttF,EAAEstF,MAAMttF,EAAEwjI,WAAW,UAAU,GAAGrwI,EAAE,CAAC,IAAIuY,EAC1fyyD,GAAGqgF,GAAG90H,SAAS,GAAGi5H,GAAG3iJ,GAAG,CAAK,IAAIgK,GAAR7W,EAAE6M,GAAUm8H,UAAU/wH,EAAEjY,EAAE+I,KAAK,IAAI+B,EAAE9K,EAAE+rJ,cAAcn1I,EAAEH,EAA+B,OAA7BI,EAAEmiG,IAAIh5G,EAAE6W,EAAEimG,IAAIhyG,EAAE5K,OAAE,EAAOuW,EAAEI,EAASoB,GAAG,IAAK,SAAS,IAAK,SAAS,IAAK,QAAQpY,GAAE,OAAO4W,GAAG,MAAM,IAAK,QAAQ,IAAK,QAAQ,IAAII,EAAE,EAAEA,EAAEq5H,GAAG7zI,OAAOwa,IAAIhX,GAAEqwI,GAAGr5H,GAAGJ,GAAG,MAAM,IAAK,SAAS5W,GAAE,QAAQ4W,GAAG,MAAM,IAAK,MAAM,IAAK,QAAQ,IAAK,OAAO5W,GAAE,QAAQ4W,GAAG5W,GAAE,OAAO4W,GAAG,MAAM,IAAK,OAAO5W,GAAE,QAAQ4W,GAAG5W,GAAE,SAAS4W,GAAG,MAAM,IAAK,UAAU5W,GAAE,SAAS4W,GAAG,MAAM,IAAK,QAAQ22H,GAAG32H,EAAE3L,GAAGjL,GAAE,UAAU4W,GAAG2pI,GAAGxpI,EAAE,YAAY,MAAM,IAAK,SAASH,EAAEy2H,cACtf,CAAC2lB,cAAc/nJ,EAAEgoJ,UAAUjzJ,GAAE,UAAU4W,GAAG2pI,GAAGxpI,EAAE,YAAY,MAAM,IAAK,WAAWu3H,GAAG13H,EAAE3L,GAAGjL,GAAE,UAAU4W,GAAG2pI,GAAGxpI,EAAE,YAA2B,IAAI1W,KAAnBuiB,GAAGxK,EAAEnN,GAAG+L,EAAE,KAAc/L,EAAEA,EAAEzJ,eAAenB,KAAKqY,EAAEzN,EAAE5K,GAAG,aAAaA,EAAE,kBAAkBqY,EAAE9B,EAAE63H,cAAc/1H,IAAI1B,EAAE,CAAC,WAAW0B,IAAI,kBAAkBA,GAAG9B,EAAE63H,cAAc,GAAG/1H,IAAI1B,EAAE,CAAC,WAAW,GAAG0B,IAAI2uH,EAAG7lI,eAAenB,IAAI,MAAMqY,GAAG6nI,GAAGxpI,EAAE1W,IAAI,OAAO+X,GAAG,IAAK,QAAQw0H,GAAGh2H,GAAGi3H,GAAGj3H,EAAE3L,GAAE,GAAI,MAAM,IAAK,WAAW2hI,GAAGh2H,GAAG43H,GAAG53H,GAAK,MAAM,IAAK,SAAS,IAAK,SAAS,MAAM,QAAQ,oBAAoB3L,EAAEoe,UACnfzS,EAAEk7I,QAAQz6C,IAAIh3G,EAAE2W,EAAE7W,EAAEopJ,YAAYlpJ,GAAEF,EAAE,OAAOE,IAAWqxJ,GAAG1kJ,OAAO,CAACoL,EAAEpL,EAAE+J,EAAE1W,EAAE4K,EAAE9K,EAAE6W,EAAE,IAAIJ,EAAE04H,SAAS14H,EAAEA,EAAEkkF,cAAcpiF,IAAIi2H,KAAUj2H,EAAEk2H,GAAG73H,IAAI2B,IAAIi2H,GAAQ,WAAW53H,IAAG9L,EAAE+L,EAAEqxE,cAAc,QAASmgB,UAAU,qBAAuBxxF,EAAE/L,EAAEovF,YAAYpvF,EAAEkkI,aAAa,kBAAkBlkI,EAAEq1I,GAAGtpI,EAAEA,EAAEqxE,cAActxE,EAAE,CAACupI,GAAGr1I,EAAEq1I,MAAMtpI,EAAEA,EAAEqxE,cAActxE,GAAG,WAAWA,IAAIA,EAAEC,EAAE/L,EAAEgoJ,SAASl8I,EAAEk8I,UAAS,EAAGhoJ,EAAEgC,OAAO8J,EAAE9J,KAAKhC,EAAEgC,QAAQ+J,EAAEA,EAAEkgJ,gBAAgBx+I,EAAE3B,IAAG9L,EAAE+L,GAAImiG,IAAI/gG,EAAEnN,EAAEgyG,IAAI98G,EAAEywJ,GAAG3lJ,EAAE+B,GAASA,EAAEm8H,UAAUl+H,EAAU,IAAI0L,EAAEC,EAAE3V,EAAEo/I,GAAlBtpI,EAAE1W,EAAE+X,EAAEjY,GAAoB,OAAO4W,GAAG,IAAK,SAAS,IAAK,SAAS,IAAK,QAAQ/W,GAAE,OACviBiL,GAAG2L,EAAEwB,EAAE,MAAM,IAAK,QAAQ,IAAK,QAAQ,IAAIxB,EAAE,EAAEA,EAAEy5H,GAAG7zI,OAAOoa,IAAI5W,GAAEqwI,GAAGz5H,GAAG3L,GAAG2L,EAAEwB,EAAE,MAAM,IAAK,SAASpY,GAAE,QAAQiL,GAAG2L,EAAEwB,EAAE,MAAM,IAAK,MAAM,IAAK,QAAQ,IAAK,OAAOpY,GAAE,QAAQiL,GAAGjL,GAAE,OAAOiL,GAAG2L,EAAEwB,EAAE,MAAM,IAAK,OAAOpY,GAAE,QAAQiL,GAAGjL,GAAE,SAASiL,GAAG2L,EAAEwB,EAAE,MAAM,IAAK,UAAUpY,GAAE,SAASiL,GAAG2L,EAAEwB,EAAE,MAAM,IAAK,QAAQm1H,GAAGtiI,EAAEmN,GAAGxB,EAAEu2H,GAAGliI,EAAEmN,GAAGpY,GAAE,UAAUiL,GAAGs1I,GAAG5pI,EAAE,YAAY,MAAM,IAAK,SAASC,EAAEm3H,GAAG9iI,EAAEmN,GAAG,MAAM,IAAK,SAASnN,EAAEoiI,cAAc,CAAC2lB,cAAc56I,EAAE66I,UAAUr8I,EAAE1W,EAAE,GAAGkY,EAAE,CAACva,WAAM,IAASmC,GAAE,UAAUiL,GAAGs1I,GAAG5pI,EAAE,YAAY,MAAM,IAAK,WAAW23H,GAAGrjI,EACtgBmN,GAAGxB,EAAEw3H,GAAGnjI,EAAEmN,GAAGpY,GAAE,UAAUiL,GAAGs1I,GAAG5pI,EAAE,YAAY,MAAM,QAAQC,EAAEwB,EAAEwK,GAAG7L,EAAEH,GAAGI,OAAE,EAAO0B,EAAE3B,EAAE,IAAI/K,EAAEf,EAAE+P,EAAEpE,EAAE,IAAII,KAAKgE,EAAE,GAAGA,EAAExZ,eAAewV,GAAG,CAAC,IAAIgzC,EAAEhvC,EAAEhE,GAAG,UAAUA,EAAE0oI,GAAG1zI,EAAEg+C,GAAG,4BAA4BhzC,EAAuB,OAApBgzC,EAAEA,EAAEA,EAAE82F,YAAO,IAAgB/R,GAAG/iI,EAAEg+C,GAAI,aAAahzC,EAAE,kBAAkBgzC,GAAG,aAAatxC,GAAG,KAAKsxC,IAAIolF,GAAGpjI,EAAEg+C,GAAG,kBAAkBA,GAAGolF,GAAGpjI,EAAE,GAAGg+C,GAAG,mCAAmChzC,GAAG,6BAA6BA,GAAG,cAAcA,IAAIqwH,EAAG7lI,eAAewV,GAAG,MAAMgzC,GAAGu2F,GAAG5pI,EAAEK,GAAG,MAAMgzC,GAAGqiF,GAAGrgI,EAAEgL,EAAEgzC,EAAE/oD,IAAI,OAAO8V,GAAG,IAAK,QAAQ61H,GAAG3hI,GAC1f4iI,GAAG5iI,EAAEmN,GAAE,GAAI,MAAM,IAAK,WAAWw0H,GAAG3hI,GAAGujI,GAAGvjI,GAAK,MAAM,IAAK,SAAS,MAAMmN,EAAEva,OAAOoN,EAAEiqD,aAAa,QAAQ,GAAGk3E,GAAGh0H,EAAEva,QAAQ,MAAM,IAAK,UAAS+Y,EAAE3L,GAAIgoJ,WAAW76I,EAAE66I,SAAmB,OAAVhoJ,EAAEmN,EAAEva,OAAcowI,GAAGr3H,IAAIwB,EAAE66I,SAAShoJ,GAAE,GAAI,MAAMmN,EAAE5O,cAAcykI,GAAGr3H,IAAIwB,EAAE66I,SAAS76I,EAAE5O,cAAa,GAAI,MAAM,QAAQ,oBAAoBoN,EAAEyS,UAAUpe,EAAE6mJ,QAAQz6C,KAAKl3G,EAAE80G,GAAG50G,EAAEF,KAAKuxJ,GAAG1kJ,GAAG,OAAOA,EAAEstF,MAAMttF,EAAEwjI,WAAW,UAAU,GAAG,OAAOxjI,EAAEm8H,UAAU,MAAMtkI,MAAMwpG,EAAE,MAAM,MAAM,KAAK,EAAE,GAAGj2F,GAAG,MAAMpL,EAAEm8H,UAAUhL,GAAG/lH,EAAEpL,EAAEoL,EAAE8zI,cAAc/rJ,OAAO,CAAC,GAAG,kBAC7eA,GAAG,OAAO6M,EAAEm8H,UAAU,MAAMtkI,MAAMwpG,EAAE,MAAMz3F,EAAEu0D,GAAGugF,GAAGh1H,SAASy0C,GAAGqgF,GAAG90H,SAASi5H,GAAG3iJ,IAAQ3M,GAAJF,EAAE6M,GAAMm8H,UAAUvyH,EAAEzW,EAAE+rJ,cAAc7rJ,EAAE84G,IAAIh5G,GAAGA,EAAEE,EAAEkvI,YAAY34H,IAAI86I,GAAG1kJ,KAAK3M,EAAE2M,GAAE7M,GAAG,IAAIyW,EAAE04H,SAAS14H,EAAEA,EAAEkkF,eAAeq8D,eAAeh3J,IAAKg5G,IAAI94G,EAAE2M,EAAEm8H,UAAUhpI,GAAG,MAAM,KAAK,GAAG,MAAM,KAAK,GAA4B,GAAzB4a,GAAEH,IAAKza,EAAE6M,EAAE0jI,cAAiB,KAAiB,GAAZ1jI,EAAEwjI,WAAc,CAACxjI,EAAEi7I,eAAerxI,EAAE,MAAM7J,EAAE5M,EAAE,OAAOA,EAAEE,GAAE,EAAG,OAAO+X,OAAE,IAASpL,EAAEk/I,cAAcp6H,UAAU69H,GAAG3iJ,IAAsB3M,EAAE,QAApBuW,EAAEwB,EAAEs4H,eAAyBvwI,GAAG,OAAOyW,GAAsB,QAAlBA,EAAEwB,EAAEy4H,MAAMC,WACpd,QADue7lI,EAAE+B,EAAE47I,cACje57I,EAAE47I,YAAYhyI,EAAEA,EAAEwyI,WAAWn+I,IAAI+B,EAAE47I,YAAY57I,EAAE67I,WAAWjyI,EAAEA,EAAEwyI,WAAW,MAAMxyI,EAAE45H,UAAU,IAAQrwI,IAAIE,GAAG,KAAY,EAAP2M,EAAEgc,QAAW,OAAO5Q,IAAG,IAAKpL,EAAEk/I,cAAc+E,4BAA4B,KAAe,EAAVr2I,GAAE8b,SA3B5G,IA2BuHzc,KAASA,GA3BjH,IAAf,IA2B8IA,IA3B/H,IA2BuIA,KAAOA,GA3BzI,GA2B8I,IAAIo6I,IAAI,OAAOj6I,KAAI66I,GAAG76I,GAAEF,IAAGg7I,GAAG96I,GAAEi6I,QAAQl0J,GAAGE,KAAE2M,EAAEwjI,WAAW,GAAE,MAAM,KAAK,EAAQ,KAAK,EAAQ,KAAK,GAAG,MAAM,KAAK,EAAEsb,KAAY,MAAM,KAAK,GAAGlE,GAAG56I,GAAG,MAAM,KAAK,EAAQ,KAAK,GAAG,MAAM,KAAK,GAAG6N,GAAE7N,EAAE9D,OAAOw7I,KAAM,MAAM,KAAK,GAA4B,GAAzB3pI,GAAEH,IAA0B,QAArBza,EAAE6M,EAAE0jI,eACle,MAA2C,GAArCrwI,EAAE,KAAiB,GAAZ2M,EAAEwjI,WAA+B,QAAjBvlI,EAAE9K,EAAEkxJ,YAAsB,GAAGhxJ,EAAEsxJ,GAAGxxJ,GAAE,QAAS,GA5BkB,IA4Bf8Z,IAAQ,OAAO7B,GAAG,KAAiB,GAAZA,EAAEo4H,WAAc,IAAIp4H,EAAEpL,EAAE6jI,MAAM,OAAOz4H,GAAG,CAAS,GAAG,QAAXnN,EAAEghJ,GAAG7zI,IAAe,CAA6J,IAA5JpL,EAAEwjI,WAAW,GAAGmhB,GAAGxxJ,GAAE,GAAoB,QAAhBE,EAAE4K,EAAEs+I,eAAuBv8I,EAAEu8I,YAAYlpJ,EAAE2M,EAAEwjI,WAAW,GAAG,OAAOrwI,EAAE0oJ,aAAa77I,EAAE47I,YAAY,MAAM57I,EAAE67I,WAAW1oJ,EAAE0oJ,WAAW1oJ,EAAEyW,EAAMvW,EAAE2M,EAAE6jI,MAAM,OAAOxwI,GAAO+X,EAAEjY,GAANyW,EAAEvW,GAAQmwI,WAAW,EAAE55H,EAAEwyI,WAAW,KAAKxyI,EAAEgyI,YAAY,KAAKhyI,EAAEiyI,WAAW,KAAmB,QAAd59I,EAAE2L,EAAE25H,YAAoB35H,EAAEkxI,oBAAoB,EAAElxI,EAAEqxI,eAAe7vI,EAAExB,EAAEi6H,MAAM,KACjfj6H,EAAEs1I,cAAc,KAAKt1I,EAAE85H,cAAc,KAAK95H,EAAE2yI,YAAY,KAAK3yI,EAAE2wH,aAAa,OAAO3wH,EAAEkxI,oBAAoB78I,EAAE68I,oBAAoBlxI,EAAEqxI,eAAeh9I,EAAEg9I,eAAerxI,EAAEi6H,MAAM5lI,EAAE4lI,MAAMj6H,EAAEs1I,cAAcjhJ,EAAEihJ,cAAct1I,EAAE85H,cAAczlI,EAAEylI,cAAc95H,EAAE2yI,YAAYt+I,EAAEs+I,YAAYnxI,EAAEnN,EAAEs8H,aAAa3wH,EAAE2wH,aAAa,OAAOnvH,EAAE,KAAK,CAAC6vI,eAAe7vI,EAAE6vI,eAAeD,aAAa5vI,EAAE4vI,aAAaI,WAAWhwI,EAAEgwI,aAAa/nJ,EAAEA,EAAEywI,QAAQ71H,GAAEL,GAAY,EAAVA,GAAE8b,QAAU,GAAK1pB,EAAEA,EAAE6jI,MAAM,MAAM9jI,EAAEqL,EAAEA,EAAE04H,aAAa,CAAC,IAAIzwI,EAAE,GAAW,QAAR+X,EAAE6zI,GAAGhhJ,KAAa,GAAG+B,EAAEwjI,WACvf,GAAGnwI,GAAE,EAAmB,QAAhBuW,EAAEwB,EAAEmxI,eAAuBv8I,EAAEu8I,YAAY3yI,EAAE5J,EAAEwjI,WAAW,GAAGmhB,GAAGxxJ,GAAE,GAAI,OAAOA,EAAEmxJ,MAAM,WAAWnxJ,EAAEqxJ,WAAWvmJ,EAAEslI,UAAU,CAA6B,QAA5BvjI,EAAEA,EAAE67I,WAAW1oJ,EAAE0oJ,cAAsB77I,EAAEo8I,WAAW,MAAM,YAAYzC,KAAKxmJ,EAAEoxJ,gBAAgB,EAAE36I,IAAI5J,EAAEwjI,WAAW,GAAGnwI,GAAE,EAAGsxJ,GAAGxxJ,GAAE,GAAI6M,EAAEi7I,eAAej7I,EAAE86I,oBAAoBlxI,EAAE,GAAGzW,EAAEixJ,aAAanmJ,EAAE6lI,QAAQ9jI,EAAE6jI,MAAM7jI,EAAE6jI,MAAM5lI,IAAa,QAAT2L,EAAEzW,EAAEiR,MAAcwF,EAAEk6H,QAAQ7lI,EAAE+B,EAAE6jI,MAAM5lI,EAAE9K,EAAEiR,KAAKnG,GAAG,GAAG,OAAO9K,EAAEmxJ,KAAK,CAAC,IAAInxJ,EAAEoxJ,iBAAiBpxJ,EAAEoxJ,eAAe5K,KAAK,KAAK/vI,EAAEzW,EAAEmxJ,KAAKnxJ,EAAEkxJ,UAAUz6I,EAAEzW,EAAEmxJ,KAAK16I,EAAEk6H,QAChf3wI,EAAE0oJ,WAAW77I,EAAE67I,WAAWjyI,EAAEk6H,QAAQ,KAAK3wI,EAAEya,GAAE8b,QAAsBzb,GAAEL,GAAhBza,EAAEE,EAAI,EAAFF,EAAI,EAAI,EAAFA,GAAa6M,EAAE4J,EAAE,MAAM7J,EAAE,MAAM,KAAK,GAAS,KAAK,GAAG,MAAM,QAAQ,MAAMlI,MAAMwpG,EAAE,IAAIrhG,EAAEu9H,MAAOv9H,EAAE,KAAS,GAAJ7M,EAAEga,GAAK,IAAID,IAAG,IAAI/Z,EAAE2nJ,oBAAoB,CAAK,IAAJznJ,EAAE,EAAMuW,EAAEzW,EAAE0wI,MAAM,OAAOj6H,IAAGwB,EAAExB,EAAEqxI,gBAAyC5nJ,IAAIA,EAAE+X,IAAhCnN,EAAE2L,EAAEkxI,qBAAiCznJ,IAAIA,EAAE4K,GAAG2L,EAAEA,EAAEk6H,QAAQ3wI,EAAE2nJ,oBAAoBznJ,EAAE,GAAG,OAAO2M,EAAE,OAAOA,EAAE,OAAOD,GAAG,KAAiB,KAAZA,EAAEyjI,aAAkB,OAAOzjI,EAAE67I,cAAc77I,EAAE67I,YAAYzuI,GAAEyuI,aAAa,OAAOzuI,GAAE0uI,aAAa,OAAO97I,EAAE87I,aAAa97I,EAAE87I,WAAWO,WACnfjvI,GAAEyuI,aAAa77I,EAAE87I,WAAW1uI,GAAE0uI,YAAY,EAAE1uI,GAAEq2H,YAAY,OAAOzjI,EAAE87I,WAAW97I,EAAE87I,WAAWO,WAAWjvI,GAAEpN,EAAE67I,YAAYzuI,GAAEpN,EAAE87I,WAAW1uI,SAAQ,CAAW,GAAG,QAAbnN,EAAE4kJ,GAAGz3I,KAAiB,OAAOnN,EAAEwjI,WAAW,KAAKxjI,EAAE,OAAOD,IAAIA,EAAE67I,YAAY77I,EAAE87I,WAAW,KAAK97I,EAAEyjI,WAAW,MAAkB,GAAG,QAAfxjI,EAAEmN,GAAE22H,SAAoB,OAAO9jI,EAAEmN,GAAEpN,QAAQ,OAAOoN,IAAkB,OAhCnO,IAgCoNF,KAASA,GAhCpM,GAgCiN,KAAK,SAASq8I,GAAGvpJ,GAAG,IAAIC,EAAED,EAAEk7I,eAAuC,OAAOj7I,GAA/BD,EAAEA,EAAE+6I,qBAA+B96I,EAAED,EAAE,SAASypJ,GAAGzpJ,GAAG,IAAIC,EAAE45I,KAA8B,OAAzBE,GAAG,GAAGsQ,GAAG58G,KAAK,KAAKztC,EAAEC,IAAW,KACpd,SAASoqJ,GAAGrqJ,EAAEC,GAAG,GAAG8oJ,WAAW,OAAOtB,IAAI,GAjC8B,KAiCzB,GAADn6I,IAAe,MAAMxV,MAAMwpG,EAAE,MAAM,IAAIj2F,EAAErL,EAAEopJ,aAAav/I,EAAE7J,EAAEqpJ,uBAAuB,GAAG,OAAOh+I,EAAE,OAAO,KAAoD,GAA/CrL,EAAEopJ,aAAa,KAAKppJ,EAAEqpJ,uBAAuB,EAAKh+I,IAAIrL,EAAE2pB,QAAQ,MAAM7xB,MAAMwpG,EAAE,MAAMthG,EAAE4oJ,aAAa,KAAK5oJ,EAAE0oJ,uBAAuB,EAAE1oJ,EAAE2oJ,iBAAiB,GAAG3oJ,EAAEyoJ,sBAAsB,EAAE,IAAIr1J,EAAEm2J,GAAGl+I,GAClI,GADqIrL,EAAEuoJ,iBAAiBn1J,EAAEyW,GAAG7J,EAAEspJ,kBAAkBtpJ,EAAEsqJ,mBAAmBtqJ,EAAEspJ,kBAAkBtpJ,EAAEyoJ,sBAAsB,EAAE5+I,GAAG7J,EAAEsqJ,qBAAqBtqJ,EAAEsqJ,mBACnezgJ,EAAE,GAAGA,GAAG7J,EAAEwoJ,iBAAiBxoJ,EAAEwoJ,eAAe,GAAG3+I,GAAG7J,EAAEqoJ,kBAAkBroJ,EAAEqoJ,gBAAgB,GAAGroJ,IAAIqN,KAAID,GAAEC,GAAE,KAAKF,GAAE,GAAG,EAAE9B,EAAEo4H,UAAU,OAAOp4H,EAAEywI,YAAYzwI,EAAEywI,WAAWO,WAAWhxI,EAAEjY,EAAEiY,EAAEwwI,aAAazoJ,EAAEiY,EAAEjY,EAAEiY,EAAEwwI,YAAe,OAAOzoJ,EAAE,CAAC,IAAIE,EAAEga,GAAEA,IAlChJ,GAkCsJ25I,GAAGt9H,QAAQ,KAAKg5E,GAAG+sC,GAAG,IAAI/jI,EAAE0gG,KAAK,GAAGkC,GAAG5iG,GAAG,CAAC,GAAG,mBAAmBA,EAAE,IAAI1B,EAAE,CAAC5G,MAAMsI,EAAE4qI,eAAejzI,IAAIqI,EAAE6qI,mBAAmBx2I,EAAE,CAA8C,IAAI9B,GAAjD+L,GAAGA,EAAE0B,EAAEoiF,gBAAgB9jF,EAAE+jF,aAAa5oF,QAAeq4F,cAAcxzF,EAAEwzF,eAAe,GAAGv/F,GAAG,IAAIA,EAAEqsJ,WAAW,CAACtgJ,EAAE/L,EAAEu4I,WAAW,IAAIzsI,EAAE9L,EAAEw4I,aAC9e9sI,EAAE1L,EAAEy4I,UAAUz4I,EAAEA,EAAE04I,YAAY,IAAI3sI,EAAEs4H,SAAS34H,EAAE24H,SAAS,MAAMioB,GAAIvgJ,EAAE,KAAK,MAAMjK,EAAE,IAAI9L,EAAE,EAAE+K,GAAG,EAAEgP,GAAG,EAAEgvC,EAAE,EAAEuhG,EAAG,EAAEpoJ,EAAEuV,EAAE3M,EAAE,KAAKiB,EAAE,OAAO,CAAC,IAAI,IAAIgL,EAAK7U,IAAI6T,GAAG,IAAID,GAAG,IAAI5T,EAAEmsI,WAAWtjI,EAAE/K,EAAE8V,GAAG5T,IAAIwT,GAAG,IAAI1L,GAAG,IAAI9H,EAAEmsI,WAAWt0H,EAAE/Z,EAAEgK,GAAG,IAAI9H,EAAEmsI,WAAWruI,GAAGkC,EAAEosI,UAAU/yI,QAAW,QAAQwb,EAAE7U,EAAEgsI,aAAkBpjI,EAAE5I,EAAEA,EAAE6U,EAAE,OAAO,CAAC,GAAG7U,IAAIuV,EAAE,MAAM1L,EAA+C,GAA7CjB,IAAIiL,KAAKgzC,IAAIjzC,IAAI/K,EAAE/K,GAAG8K,IAAI4K,KAAK40I,IAAKtgJ,IAAI+P,EAAE/Z,GAAM,QAAQ+W,EAAE7U,EAAEs9I,aAAa,MAAU10I,GAAJ5I,EAAE4I,GAAMqtB,WAAWj2B,EAAE6U,EAAEhB,GAAG,IAAIhL,IAAI,IAAIgP,EAAE,KAAK,CAAC5K,MAAMpE,EAAEqE,IAAI2K,QAAQhE,EAAE,KAAKA,EAAEA,GAAG,CAAC5G,MAAM,EAAEC,IAAI,QAAQ2G,EACtf,KAAKukG,GAAG,CAACi8C,YAAY9+I,EAAE++I,eAAezgJ,GAAGylI,IAAG,EAAGziI,GAAE7Z,EAAE,GAAG,IAAIu3J,KAAK,MAAMH,GAAI,GAAG,OAAOv9I,GAAE,MAAMnV,MAAMwpG,EAAE,MAAM8jD,GAAGn4I,GAAEu9I,GAAIv9I,GAAEA,GAAEovI,kBAAiB,OAAOpvI,IAAGA,GAAE7Z,EAAE,GAAG,IAAI,IAAIuY,EAAE3L,EAAEiK,EAAEhK,EAAE,OAAOgN,IAAG,CAAC,IAAI7K,EAAE6K,GAAEw2H,UAAmC,GAAvB,GAAFrhI,GAAMigI,GAAGp1H,GAAEmvH,UAAU,IAAS,IAAFh6H,EAAM,CAAC,IAAIoF,EAAEyF,GAAEu2H,UAAU,GAAG,OAAOh8H,EAAE,CAAC,IAAIzI,EAAEyI,EAAE+lF,IAAI,OAAOxuF,IAAI,oBAAoBA,EAAEA,EAAE,MAAMA,EAAE4qB,QAAQ,OAAO,OAAS,KAAFvnB,GAAQ,KAAK,EAAEyjJ,GAAG54I,IAAGA,GAAEw2H,YAAY,EAAE,MAAM,KAAK,EAAEoiB,GAAG54I,IAAGA,GAAEw2H,YAAY,EAAEuiB,GAAG/4I,GAAEu2H,UAAUv2H,IAAG,MAAM,KAAK,KAAKA,GAAEw2H,YAAY,KAAK,MAAM,KAAK,KAAKx2H,GAAEw2H,YAAY,KAAKuiB,GAAG/4I,GAAEu2H,UACzfv2H,IAAG,MAAM,KAAK,EAAE+4I,GAAG/4I,GAAEu2H,UAAUv2H,IAAG,MAAM,KAAK,EAAMy4I,GAAG/5I,EAAP3B,EAAEiD,GAAShD,GAAG07I,GAAG37I,GAAGiD,GAAEA,GAAEovI,YAAY,MAAMmO,GAAI,GAAG,OAAOv9I,GAAE,MAAMnV,MAAMwpG,EAAE,MAAM8jD,GAAGn4I,GAAEu9I,GAAIv9I,GAAEA,GAAEovI,kBAAiB,OAAOpvI,IAAkD,GAA/ClO,EAAEyvG,GAAGhnG,EAAE6kG,KAAKjqG,EAAErD,EAAE0rJ,YAAYxgJ,EAAElL,EAAE2rJ,eAAkBljJ,IAAIpF,GAAGA,GAAGA,EAAE2rF,eA5JnO,SAASoX,EAAGnlG,EAAEC,GAAG,SAAOD,IAAGC,KAAED,IAAIC,KAAKD,GAAG,IAAIA,EAAEuiI,YAAYtiI,GAAG,IAAIA,EAAEsiI,SAASp9B,EAAGnlG,EAAEC,EAAEosB,YAAY,aAAarsB,EAAEA,EAAEgmD,SAAS/lD,KAAGD,EAAE4qJ,4BAAwD,GAA7B5qJ,EAAE4qJ,wBAAwB3qJ,MA4J8DklG,CAAG/iG,EAAE2rF,cAAc8wD,gBAAgBz8I,GAAG,CAAC,OAAO6H,GAAGskG,GAAGnsG,KAAKoF,EAAEyC,EAAE5G,WAAc,KAARtE,EAAEkL,EAAE3G,OAAiBvE,EAAEyI,GAAG,mBAAmBpF,GAAGA,EAAEm0I,eAAe/uI,EAAEpF,EAAEo0I,aAAaxiJ,KAAKkF,IAAI6F,EAAEqD,EAAEtR,MAAMrB,UAAUsP,GAAGyI,EAAEpF,EAAE2rF,eAAe7hE,WAAW1kB,EAAEwmF,aAAa5oF,QAASq4F,eAAe1+F,EAAEA,EAAE0+F,eAChfzzF,EAAE5H,EAAEs/H,YAAYjyI,OAAOkc,EAAE3X,KAAKkF,IAAI+Q,EAAE5G,MAAM2G,GAAGC,OAAE,IAASA,EAAE3G,IAAIqI,EAAE3X,KAAKkF,IAAI+Q,EAAE3G,IAAI0G,IAAIjL,EAAEzK,QAAQqX,EAAE1B,IAAID,EAAEC,EAAEA,EAAE0B,EAAEA,EAAE3B,GAAGA,EAAEojG,GAAGhrG,EAAEuJ,GAAG/B,EAAEwjG,GAAGhrG,EAAE6H,GAAGD,GAAGJ,IAAI,IAAI7K,EAAEwrJ,YAAYxrJ,EAAE03I,aAAazsI,EAAEqQ,MAAMtb,EAAE23I,eAAe1sI,EAAE7Q,QAAQ4F,EAAE43I,YAAY/sI,EAAEyQ,MAAMtb,EAAE63I,cAAchtI,EAAEzQ,WAAUqO,EAAEA,EAAEqjJ,eAAgBC,SAAS9gJ,EAAEqQ,KAAKrQ,EAAE7Q,QAAQ4F,EAAE2+F,kBAAkB/xF,EAAE1B,GAAGlL,EAAEgsJ,SAASvjJ,GAAGzI,EAAEzK,OAAOsV,EAAEyQ,KAAKzQ,EAAEzQ,UAAUqO,EAAEwjJ,OAAOphJ,EAAEyQ,KAAKzQ,EAAEzQ,QAAQ4F,EAAEgsJ,SAASvjJ,OAAQA,EAAE,GAAG,IAAIzI,EAAEqD,EAAErD,EAAEA,EAAEstB,YAAY,IAAIttB,EAAEwjI,UAAU/6H,EAAE/Q,KAAK,CAACm2B,QAAQ7tB,EAAEiiB,KAAKjiB,EAAEk3F,WAAW/0E,IAAIniB,EAAEm3F,YAC/c,IAAvC,oBAAoB9zF,EAAE6oJ,OAAO7oJ,EAAE6oJ,QAAY7oJ,EAAE,EAAEA,EAAEoF,EAAE/X,OAAO2S,KAAIrD,EAAEyI,EAAEpF,IAAKwqB,QAAQqpE,WAAWl3F,EAAEiiB,KAAKjiB,EAAE6tB,QAAQspE,UAAUn3F,EAAEmiB,IAAIstF,GAAG,KAAKkhC,KAAK/sC,GAAGA,GAAG,KAAK3iG,EAAE2pB,QAAQte,EAAE4B,GAAE7Z,EAAE,GAAG,IAAI,IAAIgP,EAAEyH,EAAE,OAAOoD,IAAG,CAAC,IAAIi+I,EAAGj+I,GAAEw2H,UAAU,GAAM,GAAHynB,EAAM,CAAC,IAAIC,EAAGl+I,GAAEu2H,UAAkB,OAAJzkI,EAAEqD,GAANoF,EAAEyF,IAAeuwH,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG8nB,GAAG,GAAG,GAAG99I,GAAG,MAAM,KAAK,EAAE,IAAI4jJ,EAAG5jJ,EAAE40H,UAAU,GAAe,EAAZ50H,EAAEi8H,UAAY,GAAG,OAAO0nB,EAAGC,EAAGjoE,wBAAwB,CAAC,IAAIkoE,EAAG7jJ,EAAEq6B,cAAcr6B,EAAErL,KAAKgvJ,EAAGhM,cAAc7E,GAAG9yI,EAAErL,KAAKgvJ,EAAGhM,eAAeiM,EAAG3H,mBAAmB4H,EAAGF,EAAGxnB,cACveynB,EAAG7F,qCAAqC,IAAI+F,EAAG9jJ,EAAEg1I,YAAY,OAAO8O,GAAIvO,GAAGv1I,EAAE8jJ,EAAGF,GAAM,MAAM,KAAK,EAAE,IAAIG,EAAG/jJ,EAAEg1I,YAAY,GAAG,OAAO+O,EAAG,CAAQ,GAAP5/I,EAAE,KAAQ,OAAOnE,EAAEs8H,MAAM,OAAOt8H,EAAEs8H,MAAMtG,KAAK,KAAK,EAAE7xH,EAAEnE,EAAEs8H,MAAM1H,UAAU,MAAM,KAAK,EAAEzwH,EAAEnE,EAAEs8H,MAAM1H,UAAU2gB,GAAGv1I,EAAE+jJ,EAAG5/I,GAAK,MAAM,KAAK,EAAE,IAAI6/I,EAAGhkJ,EAAE40H,UAAU,OAAO+uB,GAAgB,EAAZ3jJ,EAAEi8H,WAAav7B,GAAG1gG,EAAErL,KAAKqL,EAAE23I,gBAAgBqM,EAAGP,QAAQ,MAAM,KAAK,EAAQ,KAAK,EAAQ,KAAK,GAAG,MAAM,KAAK,GAAG,GAAG,OAAOzjJ,EAAEm8H,cAAc,CAAC,IAAI8nB,EAAGjkJ,EAAEg8H,UAAU,GAAG,OAAOioB,EAAG,CAAC,IAAIC,EAAGD,EAAG9nB,cAAc,GAAG,OAAO+nB,EAAG,CAAC,IAAIC,EACzfD,EAAG9nB,WAAW,OAAO+nB,GAAIxlB,GAAGwlB,KAAM,MAAM,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,QAAQ,MAAM7zJ,MAAMwpG,EAAE,OAAQ,GAAM,IAAH4pD,EAAO,CAAC1jJ,OAAE,EAAO,IAAIokJ,EAAG3+I,GAAEsgF,IAAI,GAAG,OAAOq+D,EAAG,CAAC,IAAIC,EAAG5+I,GAAEmvH,UAAU,OAAOnvH,GAAEuwH,KAAK,KAAK,EAAEh2H,EAAEqkJ,EAAG,MAAM,QAAQrkJ,EAAEqkJ,EAAG,oBAAoBD,EAAGA,EAAGpkJ,GAAGokJ,EAAGjiI,QAAQniB,GAAGyF,GAAEA,GAAEovI,YAAY,MAAMmO,GAAI,GAAG,OAAOv9I,GAAE,MAAMnV,MAAMwpG,EAAE,MAAM8jD,GAAGn4I,GAAEu9I,GAAIv9I,GAAEA,GAAEovI,kBAAiB,OAAOpvI,IAAGA,GAAE,KAAKssI,KAAKjsI,GAAEha,OAAO0M,EAAE2pB,QAAQte,EAAE,GAAGm8I,GAAGA,IAAG,EAAGC,GAAGznJ,EAAE0nJ,GAAGznJ,OAAO,IAAIgN,GAAE7Z,EAAE,OAAO6Z,IAAGhN,EAAEgN,GAAEovI,WAAWpvI,GAAEovI,WAAW,KAAKpvI,GAAEhN,EACpX,GAD2Y,KAArBA,EAAED,EAAEuoJ,oBAC9d3B,GAAG,MAAM,aAAa3mJ,EAAED,IAAI6nJ,GAAGD,MAAMA,GAAG,EAAEC,GAAG7nJ,GAAG4nJ,GAAG,EAAE,oBAAoBkE,IAAIA,GAAGzgJ,EAAE+wH,UAAUvyH,GAAGmD,GAAEhN,GAAMwmJ,GAAG,MAAMA,IAAG,EAAGxmJ,EAAEymJ,GAAGA,GAAG,KAAKzmJ,EAAE,OA1C9D,KAAK,EA0C6DsN,KAAsB6sI,KAAL,KAAsB,SAASwQ,KAAK,KAAK,OAAO19I,IAAG,CAAC,IAAIjN,EAAEiN,GAAEw2H,UAAU,KAAO,IAAFzjI,IAAQqlJ,GAAGp4I,GAAEu2H,UAAUv2H,IAAG,KAAO,IAAFjN,IAAQwnJ,KAAKA,IAAG,EAAGxN,GAAG,IAAG,WAAgB,OAAL+O,KAAY,SAAQ97I,GAAEA,GAAEovI,YAAY,SAAS0M,KAAK,GAAG,KAAKrB,GAAG,CAAC,IAAI1nJ,EAAE,GAAG0nJ,GAAG,GAAGA,GAAS,OAANA,GAAG,GAAU3N,GAAG/5I,EAAE+rJ,KAC3Y,SAASA,KAAK,GAAG,OAAOtE,GAAG,OAAM,EAAG,IAAIznJ,EAAEynJ,GAAW,GAARA,GAAG,KA3CwB,KA2Cd,GAADn6I,IAAe,MAAMxV,MAAMwpG,EAAE,MAAM,IAAIrhG,EAAEqN,GAAQ,IAANA,IA3CZ,GA2CsBtN,EAAEA,EAAE2pB,QAAQkyH,YAAY,OAAO77I,GAAG,CAAC,IAAI,IAAIqL,EAAErL,EAAE,GAAG,KAAiB,IAAZqL,EAAEo4H,WAAe,OAAOp4H,EAAEmyH,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG8nB,GAAG,IAAI,EAAEj6I,GAAGi6I,GAAG,EAAE,GAAGj6I,IAAI,MAAMxB,GAAG,GAAG,OAAO7J,EAAE,MAAMlI,MAAMwpG,EAAE,MAAM8jD,GAAGplJ,EAAE6J,GAAGwB,EAAErL,EAAEq8I,WAAWr8I,EAAEq8I,WAAW,KAAKr8I,EAAEqL,EAAW,OAATiC,GAAErN,EAAEk6I,MAAW,EAAG,SAAS6R,GAAGhsJ,EAAEC,EAAEoL,GAAkCkxI,GAAGv8I,EAAxBC,EAAEsmJ,GAAGvmJ,EAAfC,EAAE6kJ,GAAGz5I,EAAEpL,GAAY,aAAuC,QAAnBD,EAAEgoJ,GAAGhoJ,EAAE,cAAsBgN,GAAEhN,GACpb,SAASolJ,GAAGplJ,EAAEC,GAAG,GAAG,IAAID,EAAEw9H,IAAIwuB,GAAGhsJ,EAAEA,EAAEC,QAAQ,IAAI,IAAIoL,EAAErL,EAAE69H,OAAO,OAAOxyH,GAAG,CAAC,GAAG,IAAIA,EAAEmyH,IAAI,CAACwuB,GAAG3gJ,EAAErL,EAAEC,GAAG,MAAW,GAAG,IAAIoL,EAAEmyH,IAAI,CAAC,IAAI3zH,EAAEwB,EAAE+wH,UAAU,GAAG,oBAAoB/wH,EAAElP,KAAK83H,0BAA0B,oBAAoBpqH,EAAE88I,oBAAoB,OAAOC,KAAKA,GAAGxmJ,IAAIyJ,IAAI,CAAgC0yI,GAAGlxI,EAAxBrL,EAAE0mJ,GAAGr7I,EAAfrL,EAAE8kJ,GAAG7kJ,EAAED,GAAY,aAAuC,QAAnBqL,EAAE28I,GAAG38I,EAAE,cAAsB2B,GAAE3B,GAAG,OAAOA,EAAEA,EAAEwyH,QAC5V,SAASmsB,GAAGhqJ,EAAEC,EAAEoL,GAAG,IAAIxB,EAAE7J,EAAE+pJ,UAAU,OAAOlgJ,GAAGA,EAAEwd,OAAOpnB,GAAGoN,KAAIrN,GAAGmN,KAAI9B,EA7C4C,IA6C1C6B,IA7CqC,IA6C7BA,IAAQ,aAAai6I,IAAIvN,KAAKuM,GA7CqG,IA6C/F6C,GAAGhpJ,EAAEmN,IAAGo6I,IAAG,EAAGe,GAAGtoJ,EAAEqL,KAAwB,KAAnBpL,EAAED,EAAEwoJ,iBAAsBvoJ,EAAEoL,IAAIrL,EAAEwoJ,eAAen9I,EAAErL,EAAEqpJ,yBAAyBh+I,IAAIrL,EAAEqpJ,uBAAuB,EAAErpJ,EAAEopJ,aAAa,MAAMp8I,GAAEhN,KAAK,SAASqmJ,GAAGrmJ,EAAEC,GAAG,IAAIoL,EAAErL,EAAEo8H,UAAU,OAAO/wH,GAAGA,EAAEgc,OAAOpnB,GAAO,KAAJA,EAAE,KAAiBA,EAAEs9I,GAATt9I,EAAEq9I,KAAYt9I,EAAE,OAAiB,QAAVA,EAAEgoJ,GAAGhoJ,EAAEC,KAAa+M,GAAEhN,GACvY8mJ,GAAG,SAAS9mJ,EAAEC,EAAEoL,GAAG,IAAIxB,EAAE5J,EAAEi7I,eAAe,GAAG,OAAOl7I,EAAE,CAAC,IAAI5M,EAAE6M,EAAEwiJ,aAAa,GAAGziJ,EAAEm/I,gBAAgB/rJ,GAAG2a,GAAE4b,QAAQwxH,IAAG,MAAO,CAAC,GAAGtxI,EAAEwB,EAAE,CAAO,OAAN8vI,IAAG,EAAUl7I,EAAEu9H,KAAK,KAAK,EAAEmmB,GAAG1jJ,GAAG4iJ,KAAK,MAAM,KAAK,EAAQ,GAAN7D,GAAG/+I,GAAa,EAAPA,EAAEgc,MAAQ,IAAI5Q,GAAGjY,EAAEitC,OAAO,OAAOpgC,EAAEi7I,eAAej7I,EAAE86I,oBAAoB,EAAE,KAAK,MAAM,KAAK,EAAEjtI,GAAE7N,EAAE9D,OAAO47I,GAAG93I,GAAG,MAAM,KAAK,EAAE2+I,GAAG3+I,EAAEA,EAAEm8H,UAAUuJ,eAAe,MAAM,KAAK,GAAGiV,GAAG36I,EAAEA,EAAEk/I,cAAcruJ,OAAO,MAAM,KAAK,GAAG,GAAG,OAAOmP,EAAE0jI,cAA6C,OAAG,KAAjC95H,EAAE5J,EAAE6jI,MAAMiX,sBAA8BlxI,GAAGwB,EAAS44I,GAAGjkJ,EAAEC,EAAEoL,IAAG6C,GAAEL,GAC1e,EAD4eA,GAAE8b,SACtd,QAAnB1pB,EAAE+iJ,GAAGhjJ,EAAEC,EAAEoL,IAAmBpL,EAAE8jI,QAAQ,MAAK71H,GAAEL,GAAY,EAAVA,GAAE8b,SAAa,MAAM,KAAK,GAA8B,GAA3B9f,EAAE5J,EAAE86I,qBAAqB1vI,EAAK,KAAiB,GAAZrL,EAAEyjI,WAAc,CAAC,GAAG55H,EAAE,OAAO66I,GAAG1kJ,EAAEC,EAAEoL,GAAGpL,EAAEwjI,WAAW,GAA+E,GAA1D,QAAlBrwI,EAAE6M,EAAE0jI,iBAAyBvwI,EAAEkxJ,UAAU,KAAKlxJ,EAAEmxJ,KAAK,MAAMr2I,GAAEL,GAAEA,GAAE8b,UAAe9f,EAAE,OAAO,KAAK,OAAOm5I,GAAGhjJ,EAAEC,EAAEoL,GAAG8vI,IAAG,QAASA,IAAG,EAAsB,OAAnBl7I,EAAEi7I,eAAe,EAASj7I,EAAEu9H,KAAK,KAAK,EAAuJ,GAArJ3zH,EAAE5J,EAAE9D,KAAK,OAAO6D,IAAIA,EAAEwjI,UAAU,KAAKvjI,EAAEujI,UAAU,KAAKvjI,EAAEwjI,WAAW,GAAGzjI,EAAEC,EAAEwiJ,aAAarvJ,EAAEokJ,GAAGv3I,EAAEkO,GAAEwb,SAASqxH,GAAG/6I,EAAEoL,GAAGjY,EAAEgtJ,GAAG,KAAKngJ,EAAE4J,EAAE7J,EAAE5M,EAAEiY,GAAGpL,EAAEwjI,WAAW,EAAK,kBACrerwI,GAAG,OAAOA,GAAG,oBAAoBA,EAAE+7D,aAAQ,IAAS/7D,EAAEokI,SAAS,CAAc,GAAbv3H,EAAEu9H,IAAI,EAAEgjB,KAAQ1yI,GAAEjE,GAAG,CAAC,IAAIvW,GAAE,EAAGykJ,GAAG93I,QAAQ3M,GAAE,EAAG2M,EAAE0jI,cAAc,OAAOvwI,EAAE8mF,YAAO,IAAS9mF,EAAE8mF,MAAM9mF,EAAE8mF,MAAM,KAAK,IAAIvuE,EAAE9B,EAAEqqH,yBAAyB,oBAAoBvoH,GAAGwxI,GAAGl9I,EAAE4J,EAAE8B,EAAE3L,GAAG5M,EAAE+jI,QAAQimB,GAAGn9I,EAAEm8H,UAAUhpI,EAAEA,EAAEiqJ,oBAAoBp9I,EAAE69I,GAAG79I,EAAE4J,EAAE7J,EAAEqL,GAAGpL,EAAEyjJ,GAAG,KAAKzjJ,EAAE4J,GAAE,EAAGvW,EAAE+X,QAAQpL,EAAEu9H,IAAI,EAAEhwH,GAAE,KAAKvN,EAAE7M,EAAEiY,GAAGpL,EAAEA,EAAE6jI,MAAM,OAAO7jI,EAAE,KAAK,GAAuG,GAApG7M,EAAE6M,EAAE4hC,YAAY,OAAO7hC,IAAIA,EAAEwjI,UAAU,KAAKvjI,EAAEujI,UAAU,KAAKvjI,EAAEwjI,WAAW,GAAGzjI,EAAEC,EAAEwiJ,aA7Opd,SAAYziJ,GAAG,IAAI,IAAIA,EAAEo5H,QAAQ,CAACp5H,EAAEo5H,QAAQ,EAAE,IAAIn5H,EAAED,EAAEm5H,MAAMl5H,EAAEA,IAAID,EAAEq5H,QAAQp5H,EAAEA,EAAE7N,MAAK,SAAS6N,GAAG,IAAID,EAAEo5H,UAAUn5H,EAAEA,EAAEi3F,QAAQl3F,EAAEo5H,QAAQ,EAAEp5H,EAAEq5H,QAAQp5H,MAAI,SAASA,GAAG,IAAID,EAAEo5H,UAAUp5H,EAAEo5H,QAAQ,EAAEp5H,EAAEq5H,QAAQp5H,OA6OwRgsJ,CAAG74J,GAAM,IAAIA,EAAEgmI,QAAQ,MAAMhmI,EAAEimI,QACnd,OAA7CjmI,EAAEA,EAAEimI,QAAQp5H,EAAE9D,KAAK/I,EAAEE,EAAE2M,EAAEu9H,IAQqC,SAAYx9H,GAAG,GAAG,oBAAoBA,EAAE,OAAOkjJ,GAAGljJ,GAAG,EAAE,EAAE,QAAG,IAASA,GAAG,OAAOA,EAAE,CAAc,IAAbA,EAAEA,EAAEw3H,YAAgBuF,EAAG,OAAO,GAAG,GAAG/8H,IAAIk9H,EAAG,OAAO,GAAG,OAAO,EAR/KtlH,CAAGxkB,GAAG4M,EAAEs6I,GAAGlnJ,EAAE4M,GAAU1M,GAAG,KAAK,EAAE2M,EAAEmjJ,GAAG,KAAKnjJ,EAAE7M,EAAE4M,EAAEqL,GAAG,MAAM,KAAK,EAAEpL,EAAEqjJ,GAAG,KAAKrjJ,EAAE7M,EAAE4M,EAAEqL,GAAG,MAAM,KAAK,GAAGpL,EAAE8iJ,GAAG,KAAK9iJ,EAAE7M,EAAE4M,EAAEqL,GAAG,MAAM,KAAK,GAAGpL,EAAEgjJ,GAAG,KAAKhjJ,EAAE7M,EAAEknJ,GAAGlnJ,EAAE+I,KAAK6D,GAAG6J,EAAEwB,GAAG,MAAM,QAAQ,MAAMvT,MAAMwpG,EAAE,IAAIluG,EAAE,KAAM,OAAO6M,EAAE,KAAK,EAAE,OAAO4J,EAAE5J,EAAE9D,KAAK/I,EAAE6M,EAAEwiJ,aAA2CW,GAAGpjJ,EAAEC,EAAE4J,EAArCzW,EAAE6M,EAAE4hC,cAAch4B,EAAEzW,EAAEknJ,GAAGzwI,EAAEzW,GAAciY,GAAG,KAAK,EAAE,OAAOxB,EAAE5J,EAAE9D,KAAK/I,EAAE6M,EAAEwiJ,aAA2Ca,GAAGtjJ,EAAEC,EAAE4J,EAArCzW,EAAE6M,EAAE4hC,cAAch4B,EAAEzW,EAAEknJ,GAAGzwI,EAAEzW,GAAciY,GAAG,KAAK,EAAwB,GAAtBs4I,GAAG1jJ,GAAsB,QAAnB4J,EAAE5J,EAAEu8I,aAAwB,MAAM1kJ,MAAMwpG,EAAE,MACnZ,GAD2aluG,EAAE,QAApBA,EAAE6M,EAAE0jI,eAAyBvwI,EAAEw5B,QACrf,KAAKgwH,GAAG38I,EAAE4J,EAAE5J,EAAEwiJ,aAAa,KAAKp3I,IAAGxB,EAAE5J,EAAE0jI,cAAc/2G,WAAex5B,EAAEyvJ,KAAK5iJ,EAAE+iJ,GAAGhjJ,EAAEC,EAAEoL,OAAO,CAAmF,IAA/EjY,EAAE6M,EAAEm8H,UAAUsJ,WAAQ2c,GAAGpiD,GAAGhgG,EAAEm8H,UAAUuJ,cAAcvD,YAAYpjE,GAAG/+D,EAAE7M,EAAEkvJ,IAAG,GAAMlvJ,EAAE,IAAIiY,EAAEikH,GAAGrvH,EAAE,KAAK4J,EAAEwB,GAAGpL,EAAE6jI,MAAMz4H,EAAEA,GAAGA,EAAEo4H,WAAuB,EAAbp4H,EAAEo4H,UAAa,KAAKp4H,EAAEA,EAAE04H,aAAav2H,GAAExN,EAAEC,EAAE4J,EAAEwB,GAAGw3I,KAAK5iJ,EAAEA,EAAE6jI,MAAM,OAAO7jI,EAAE,KAAK,EAAE,OAAO++I,GAAG/+I,GAAG,OAAOD,GAAG0iJ,GAAGziJ,GAAG4J,EAAE5J,EAAE9D,KAAK/I,EAAE6M,EAAEwiJ,aAAanvJ,EAAE,OAAO0M,EAAEA,EAAEm/I,cAAc,KAAKxzI,EAAEvY,EAAEmvF,SAASgoB,GAAG1gG,EAAEzW,GAAGuY,EAAE,KAAK,OAAOrY,GAAGi3G,GAAG1gG,EAAEvW,KAAK2M,EAAEwjI,WAAW,IAAI4f,GAAGrjJ,EAAEC,GAAU,EAAPA,EAAEgc,MAAQ,IAAI5Q,GAAGjY,EAAEitC,QAAQpgC,EAAEi7I,eAC7ej7I,EAAE86I,oBAAoB,EAAE96I,EAAE,OAAOuN,GAAExN,EAAEC,EAAE0L,EAAEN,GAAGpL,EAAEA,EAAE6jI,OAAO7jI,EAAE,KAAK,EAAE,OAAO,OAAOD,GAAG0iJ,GAAGziJ,GAAG,KAAK,KAAK,GAAG,OAAOgkJ,GAAGjkJ,EAAEC,EAAEoL,GAAG,KAAK,EAAE,OAAOuzI,GAAG3+I,EAAEA,EAAEm8H,UAAUuJ,eAAe97H,EAAE5J,EAAEwiJ,aAAa,OAAOziJ,EAAEC,EAAE6jI,MAAM7tB,GAAGh2G,EAAE,KAAK4J,EAAEwB,GAAGmC,GAAExN,EAAEC,EAAE4J,EAAEwB,GAAGpL,EAAE6jI,MAAM,KAAK,GAAG,OAAOj6H,EAAE5J,EAAE9D,KAAK/I,EAAE6M,EAAEwiJ,aAA2CM,GAAG/iJ,EAAEC,EAAE4J,EAArCzW,EAAE6M,EAAE4hC,cAAch4B,EAAEzW,EAAEknJ,GAAGzwI,EAAEzW,GAAciY,GAAG,KAAK,EAAE,OAAOmC,GAAExN,EAAEC,EAAEA,EAAEwiJ,aAAap3I,GAAGpL,EAAE6jI,MAAM,KAAK,EAAkD,KAAK,GAAG,OAAOt2H,GAAExN,EAAEC,EAAEA,EAAEwiJ,aAAalgE,SAASl3E,GAAGpL,EAAE6jI,MAAM,KAAK,GAAG9jI,EAAE,CAC9a,GAD+a6J,EAAE5J,EAAE9D,KAAK4qB,SAC7e3zB,EAAE6M,EAAEwiJ,aAAa92I,EAAE1L,EAAEk/I,cAAwBvE,GAAG36I,EAAb3M,EAAEF,EAAEtC,OAAiB,OAAO6a,EAAE,CAAC,IAAI1B,EAAE0B,EAAE7a,MAA0G,GAAG,KAAvGwC,EAAEsiJ,GAAG3rI,EAAE3W,GAAG,EAAwF,GAArF,oBAAoBuW,EAAE8uH,sBAAsB9uH,EAAE8uH,sBAAsB1uH,EAAE3W,GAAG,cAAwB,GAAGqY,EAAE42E,WAAWnvF,EAAEmvF,WAAWx0E,GAAE4b,QAAQ,CAAC1pB,EAAE+iJ,GAAGhjJ,EAAEC,EAAEoL,GAAG,MAAMrL,QAAQ,IAAc,QAAViK,EAAEhK,EAAE6jI,SAAiB75H,EAAE4zH,OAAO59H,GAAG,OAAOgK,GAAG,CAAC,IAAI/L,EAAE+L,EAAEuwH,aAAa,GAAG,OAAOt8H,EAAE,CAACyN,EAAE1B,EAAE65H,MAAM,IAAI,IAAI95H,EAAE9L,EAAE+8I,aAAa,OAAOjxI,GAAG,CAAC,GAAGA,EAAEgR,UAAUnR,GAAG,KAAKG,EAAEi5E,aAAa3vF,GAAG,CAAC,IAAI2W,EAAEuzH,OAAMxzH,EAAEkyI,GAAG7wI,EAAE,OAAQmyH,IAAI,EAAE+e,GAAGtyI,EAAED,IAAIC,EAAEixI,eAAe7vI,IAAIpB,EAAEixI,eAC3e7vI,GAAiB,QAAdrB,EAAEC,EAAEu5H,YAAoBx5H,EAAEkxI,eAAe7vI,IAAIrB,EAAEkxI,eAAe7vI,GAAGyvI,GAAG7wI,EAAE4zH,OAAOxyH,GAAGnN,EAAEg9I,eAAe7vI,IAAInN,EAAEg9I,eAAe7vI,GAAG,MAAMrB,EAAEA,EAAErW,WAAWgY,EAAE,KAAK1B,EAAEuzH,KAAIvzH,EAAE9N,OAAO8D,EAAE9D,KAAK,KAAa8N,EAAE65H,MAAM,GAAG,OAAOn4H,EAAEA,EAAEkyH,OAAO5zH,OAAO,IAAI0B,EAAE1B,EAAE,OAAO0B,GAAG,CAAC,GAAGA,IAAI1L,EAAE,CAAC0L,EAAE,KAAK,MAAkB,GAAG,QAAf1B,EAAE0B,EAAEo4H,SAAoB,CAAC95H,EAAE4zH,OAAOlyH,EAAEkyH,OAAOlyH,EAAE1B,EAAE,MAAM0B,EAAEA,EAAEkyH,OAAO5zH,EAAE0B,GAAG6B,GAAExN,EAAEC,EAAE7M,EAAEmvF,SAASl3E,GAAGpL,EAAEA,EAAE6jI,MAAM,OAAO7jI,EAAE,KAAK,EAAE,OAAO7M,EAAE6M,EAAE9D,KAAsB0N,GAAjBvW,EAAE2M,EAAEwiJ,cAAiBlgE,SAASy4D,GAAG/6I,EAAEoL,GAAmCxB,EAAEA,EAAlCzW,EAAEgoJ,GAAGhoJ,EAAEE,EAAE44J,wBAA8BjsJ,EAAEwjI,WAAW,EAAEj2H,GAAExN,EAAEC,EAAE4J,EAAEwB,GAAGpL,EAAE6jI,MACrf,KAAK,GAAG,OAAgBxwI,EAAEgnJ,GAAXlnJ,EAAE6M,EAAE9D,KAAY8D,EAAEwiJ,cAA6BQ,GAAGjjJ,EAAEC,EAAE7M,EAAtBE,EAAEgnJ,GAAGlnJ,EAAE+I,KAAK7I,GAAcuW,EAAEwB,GAAG,KAAK,GAAG,OAAO83I,GAAGnjJ,EAAEC,EAAEA,EAAE9D,KAAK8D,EAAEwiJ,aAAa54I,EAAEwB,GAAG,KAAK,GAAG,OAAOxB,EAAE5J,EAAE9D,KAAK/I,EAAE6M,EAAEwiJ,aAAarvJ,EAAE6M,EAAE4hC,cAAch4B,EAAEzW,EAAEknJ,GAAGzwI,EAAEzW,GAAG,OAAO4M,IAAIA,EAAEwjI,UAAU,KAAKvjI,EAAEujI,UAAU,KAAKvjI,EAAEwjI,WAAW,GAAGxjI,EAAEu9H,IAAI,EAAE1vH,GAAEjE,IAAI7J,GAAE,EAAG+3I,GAAG93I,IAAID,GAAE,EAAGg7I,GAAG/6I,EAAEoL,GAAGsyI,GAAG19I,EAAE4J,EAAEzW,GAAK0qJ,GAAG79I,EAAE4J,EAAEzW,EAAEiY,GAAGq4I,GAAG,KAAKzjJ,EAAE4J,GAAE,EAAG7J,EAAEqL,GAAG,KAAK,GAAG,OAAOq5I,GAAG1kJ,EAAEC,EAAEoL,GAAG,MAAMvT,MAAMwpG,EAAE,IAAIrhG,EAAEu9H,OAAQ,IAAIsuB,GAAG,KAAKp8B,GAAG,KAE1Z,SAASy8B,GAAGnsJ,EAAEC,EAAEoL,EAAExB,GAAGzY,KAAKosI,IAAIx9H,EAAE5O,KAAKpB,IAAIqb,EAAEja,KAAK2yI,QAAQ3yI,KAAK0yI,MAAM1yI,KAAKysI,OAAOzsI,KAAKgrI,UAAUhrI,KAAK+K,KAAK/K,KAAKywC,YAAY,KAAKzwC,KAAKyM,MAAM,EAAEzM,KAAKm8F,IAAI,KAAKn8F,KAAKqxJ,aAAaxiJ,EAAE7O,KAAKopI,aAAappI,KAAKuyI,cAAcvyI,KAAKorJ,YAAYprJ,KAAK+tJ,cAAc,KAAK/tJ,KAAK6qB,KAAKpS,EAAEzY,KAAKqyI,UAAU,EAAEryI,KAAK0qJ,WAAW1qJ,KAAKyqJ,YAAYzqJ,KAAKirJ,WAAW,KAAKjrJ,KAAK2pJ,oBAAoB3pJ,KAAK8pJ,eAAe,EAAE9pJ,KAAKoyI,UAAU,KAAK,SAASgf,GAAGxiJ,EAAEC,EAAEoL,EAAExB,GAAG,OAAO,IAAIsiJ,GAAGnsJ,EAAEC,EAAEoL,EAAExB,GAC1b,SAASq5I,GAAGljJ,GAAiB,UAAdA,EAAEA,EAAE3P,aAAuB2P,EAAEo3H,kBAC5C,SAASxI,GAAG5uH,EAAEC,GAAG,IAAIoL,EAAErL,EAAEwjI,UAC4E,OADlE,OAAOn4H,IAAGA,EAAEm3I,GAAGxiJ,EAAEw9H,IAAIv9H,EAAED,EAAEhQ,IAAIgQ,EAAEic,OAAQ4lB,YAAY7hC,EAAE6hC,YAAYx2B,EAAElP,KAAK6D,EAAE7D,KAAKkP,EAAE+wH,UAAUp8H,EAAEo8H,UAAU/wH,EAAEm4H,UAAUxjI,EAAEA,EAAEwjI,UAAUn4H,IAAIA,EAAEo3I,aAAaxiJ,EAAEoL,EAAEo4H,UAAU,EAAEp4H,EAAEgxI,WAAW,KAAKhxI,EAAEwwI,YAAY,KAAKxwI,EAAEywI,WAAW,MAAMzwI,EAAE0vI,oBAAoB/6I,EAAE+6I,oBAAoB1vI,EAAE6vI,eAAel7I,EAAEk7I,eAAe7vI,EAAEy4H,MAAM9jI,EAAE8jI,MAAMz4H,EAAE8zI,cAAcn/I,EAAEm/I,cAAc9zI,EAAEs4H,cAAc3jI,EAAE2jI,cAAct4H,EAAEmxI,YAAYx8I,EAAEw8I,YAAYv8I,EAAED,EAAEw6H,aAAanvH,EAAEmvH,aAAa,OAAOv6H,EAAE,KAAK,CAACi7I,eAAej7I,EAAEi7I,eACzfD,aAAah7I,EAAEg7I,aAAaI,WAAWp7I,EAAEo7I,YAAYhwI,EAAE04H,QAAQ/jI,EAAE+jI,QAAQ14H,EAAExN,MAAMmC,EAAEnC,MAAMwN,EAAEkiF,IAAIvtF,EAAEutF,IAAWliF,EAC5G,SAAS2jH,GAAGhvH,EAAEC,EAAEoL,EAAExB,EAAEzW,EAAEE,GAAG,IAAIqY,EAAE,EAAM,GAAJ9B,EAAE7J,EAAK,oBAAoBA,EAAEkjJ,GAAGljJ,KAAK2L,EAAE,QAAQ,GAAG,kBAAkB3L,EAAE2L,EAAE,OAAO3L,EAAE,OAAOA,GAAG,KAAKy8H,EAAG,OAAOrN,GAAG/jH,EAAEk3E,SAASnvF,EAAEE,EAAE2M,GAAG,KAAK68H,EAAGnxH,EAAE,EAAEvY,GAAG,EAAE,MAAM,KAAKspI,EAAG/wH,EAAE,EAAEvY,GAAG,EAAE,MAAM,KAAKupI,EAAG,OAAO38H,EAAEwiJ,GAAG,GAAGn3I,EAAEpL,EAAI,EAAF7M,IAAOyuC,YAAY86F,EAAG38H,EAAE7D,KAAKwgI,EAAG38H,EAAEk7I,eAAe5nJ,EAAE0M,EAAE,KAAKg9H,EAAG,OAAOh9H,EAAEwiJ,GAAG,GAAGn3I,EAAEpL,EAAE7M,IAAK+I,KAAK6gI,EAAGh9H,EAAE6hC,YAAYm7F,EAAGh9H,EAAEk7I,eAAe5nJ,EAAE0M,EAAE,KAAKi9H,EAAG,OAAOj9H,EAAEwiJ,GAAG,GAAGn3I,EAAEpL,EAAE7M,IAAKyuC,YAAYo7F,EAAGj9H,EAAEk7I,eAAe5nJ,EAAE0M,EAAE,QAAQ,GAAG,kBAAkBA,GAAG,OAAOA,EAAE,OAAOA,EAAEw3H,UAAU,KAAKoF,EAAGjxH,EACpf,GAAG,MAAM3L,EAAE,KAAK68H,EAAGlxH,EAAE,EAAE,MAAM3L,EAAE,KAAK+8H,EAAGpxH,EAAE,GAAG,MAAM3L,EAAE,KAAKk9H,EAAGvxH,EAAE,GAAG,MAAM3L,EAAE,KAAKm9H,EAAGxxH,EAAE,GAAG9B,EAAE,KAAK,MAAM7J,EAAE,MAAMlI,MAAMwpG,EAAE,IAAI,MAAMthG,EAAEA,SAASA,EAAE,KAAgE,OAA1DC,EAAEuiJ,GAAG72I,EAAEN,EAAEpL,EAAE7M,IAAKyuC,YAAY7hC,EAAEC,EAAE9D,KAAK0N,EAAE5J,EAAEi7I,eAAe5nJ,EAAS2M,EAAE,SAASmvH,GAAGpvH,EAAEC,EAAEoL,EAAExB,GAAoC,OAAjC7J,EAAEwiJ,GAAG,EAAExiJ,EAAE6J,EAAE5J,IAAKi7I,eAAe7vI,EAASrL,EAAE,SAAS8uH,GAAG9uH,EAAEC,EAAEoL,GAAuC,OAApCrL,EAAEwiJ,GAAG,EAAExiJ,EAAE,KAAKC,IAAKi7I,eAAe7vI,EAASrL,EAChV,SAASkvH,GAAGlvH,EAAEC,EAAEoL,GAAuK,OAApKpL,EAAEuiJ,GAAG,EAAE,OAAOxiJ,EAAEuiF,SAASviF,EAAEuiF,SAAS,GAAGviF,EAAEhQ,IAAIiQ,IAAKi7I,eAAe7vI,EAAEpL,EAAEm8H,UAAU,CAACuJ,cAAc3lI,EAAE2lI,cAAcymB,gBAAgB,KAAK7N,eAAev+I,EAAEu+I,gBAAuBt+I,EAC9L,SAASosJ,GAAGrsJ,EAAEC,EAAEoL,GAAGja,KAAKosI,IAAIv9H,EAAE7O,KAAKu4B,QAAQ,KAAKv4B,KAAKu0I,cAAc3lI,EAAE5O,KAAK24J,UAAU34J,KAAKg7J,gBAAgB,KAAKh7J,KAAKi4J,uBAAuB,EAAEj4J,KAAKg4J,aAAa,KAAKh4J,KAAKo4J,eAAe,EAAEp4J,KAAKwyJ,eAAexyJ,KAAK4pB,QAAQ,KAAK5pB,KAAKs0I,QAAQr6H,EAAEja,KAAKw3J,aAAa,KAAKx3J,KAAKu3J,iBAAiB,GAAGv3J,KAAKi3J,gBAAgBj3J,KAAKo3J,eAAep3J,KAAKq3J,sBAAsBr3J,KAAKk4J,kBAAkBl4J,KAAKk5J,mBAAmBl5J,KAAKm3J,iBAAiB,EACva,SAASD,GAAGtoJ,EAAEC,GAAG,IAAIoL,EAAErL,EAAEsqJ,mBAAyC,OAAtBtqJ,EAAEA,EAAEspJ,kBAAyB,IAAIj+I,GAAGA,GAAGpL,GAAGD,GAAGC,EAAE,SAASioJ,GAAGloJ,EAAEC,GAAG,IAAIoL,EAAErL,EAAEsqJ,mBAAmBzgJ,EAAE7J,EAAEspJ,kBAAkBj+I,EAAEpL,IAAID,EAAEsqJ,mBAAmBrqJ,IAAM4J,EAAE5J,GAAG,IAAIoL,KAAErL,EAAEspJ,kBAAkBrpJ,GAAEA,GAAGD,EAAEwoJ,iBAAiBxoJ,EAAEwoJ,eAAe,GAAGvoJ,GAAGD,EAAEqoJ,kBAAkBroJ,EAAEqoJ,gBAAgB,GAClT,SAASF,GAAGnoJ,EAAEC,GAAGA,EAAED,EAAEuoJ,mBAAmBvoJ,EAAEuoJ,iBAAiBtoJ,GAAG,IAAIoL,EAAErL,EAAEsqJ,mBAAmB,IAAIj/I,IAAIpL,GAAGoL,EAAErL,EAAEsqJ,mBAAmBtqJ,EAAEspJ,kBAAkBtpJ,EAAEyoJ,sBAAsB,EAAExoJ,GAAGD,EAAEspJ,oBAAoBtpJ,EAAEspJ,kBAAkBrpJ,EAAE,GAAGA,EAAED,EAAEyoJ,wBAAwBzoJ,EAAEyoJ,sBAAsBxoJ,IAAI,SAAS6oJ,GAAG9oJ,EAAEC,GAAG,IAAIoL,EAAErL,EAAEqoJ,iBAAmB,IAAIh9I,GAAGA,EAAEpL,KAAED,EAAEqoJ,gBAAgBpoJ,GAC5V,SAASqsJ,GAAGtsJ,EAAEC,EAAEoL,EAAExB,GAAG,IAAIzW,EAAE6M,EAAE0pB,QAAQr2B,EAAEgqJ,KAAK3xI,EAAEsxI,GAAGllB,SAASzkI,EAAEiqJ,GAAGjqJ,EAAEF,EAAEuY,GAAG3L,EAAE,GAAGqL,EAAE,CAAyBpL,EAAE,CAAC,GAAGsjI,GAA9Bl4H,EAAEA,EAAEgyI,uBAAkChyI,GAAG,IAAIA,EAAEmyH,IAAI,MAAM1lI,MAAMwpG,EAAE,MAAM,IAAIr3F,EAAEoB,EAAE,EAAE,CAAC,OAAOpB,EAAEuzH,KAAK,KAAK,EAAEvzH,EAAEA,EAAEmyH,UAAUphH,QAAQ,MAAM/a,EAAE,KAAK,EAAE,GAAG6N,GAAE7D,EAAE9N,MAAM,CAAC8N,EAAEA,EAAEmyH,UAAU4b,0CAA0C,MAAM/3I,GAAGgK,EAAEA,EAAE4zH,aAAa,OAAO5zH,GAAG,MAAMnS,MAAMwpG,EAAE,MAAO,GAAG,IAAIj2F,EAAEmyH,IAAI,CAAC,IAAIt/H,EAAEmN,EAAElP,KAAK,GAAG2R,GAAE5P,GAAG,CAACmN,EAAEysI,GAAGzsI,EAAEnN,EAAE+L,GAAG,MAAMjK,GAAGqL,EAAEpB,OAAOoB,EAAEisI,GAC3W,OAD8W,OAAOr3I,EAAE+a,QAAQ/a,EAAE+a,QAAQ3P,EAAEpL,EAAE2jJ,eAAev4I,GAAEpL,EAAEi8I,GAAG5oJ,EAAEqY,IAAKywI,QAAQ,CAACxvH,QAAQ5sB,GACpe,QADue6J,OAAE,IAClfA,EAAE,KAAKA,KAAa5J,EAAElD,SAAS8M,GAAG0yI,GAAGnpJ,EAAE6M,GAAGu9I,GAAGpqJ,EAAEE,GAAUA,EAAE,SAASi5J,GAAGvsJ,GAAe,KAAZA,EAAEA,EAAE2pB,SAAcm6G,MAAM,OAAO,KAAK,OAAO9jI,EAAE8jI,MAAMtG,KAAK,KAAK,EAA2B,QAAQ,OAAOx9H,EAAE8jI,MAAM1H,WAAW,SAASowB,GAAGxsJ,EAAEC,GAAqB,QAAlBD,EAAEA,EAAE2jI,gBAAwB,OAAO3jI,EAAE4jI,YAAY5jI,EAAEgkJ,UAAU/jJ,IAAID,EAAEgkJ,UAAU/jJ,GAAG,SAASwsJ,GAAGzsJ,EAAEC,GAAGusJ,GAAGxsJ,EAAEC,IAAID,EAAEA,EAAEwjI,YAAYgpB,GAAGxsJ,EAAEC,GACpV,SAASysJ,GAAG1sJ,EAAEC,EAAEoL,GAA6B,IAAIxB,EAAE,IAAIwiJ,GAAGrsJ,EAAEC,EAAzCoL,EAAE,MAAMA,IAAG,IAAKA,EAAEq6H,SAA4BtyI,EAAEovJ,GAAG,EAAE,KAAK,KAAK,IAAIviJ,EAAE,EAAE,IAAIA,EAAE,EAAE,GAAG4J,EAAE8f,QAAQv2B,EAAEA,EAAEgpI,UAAUvyH,EAAE7J,EAAEsvG,IAAIzlG,EAAE8f,QAAQte,GAAG,IAAIpL,GAjOtJ,SAAYD,GAAG,IAAIC,EAAEkwI,GAAGnwI,GAAG4kI,GAAG//H,SAAQ,SAASwG,GAAG+kI,GAAG/kI,EAAErL,EAAEC,MAAK4kI,GAAGhgI,SAAQ,SAASwG,GAAG+kI,GAAG/kI,EAAErL,EAAEC,MAiO6D0sJ,CAAG,IAAI3sJ,EAAEuiI,SAASviI,EAAEA,EAAE+tF,eAAe38F,KAAKw7J,cAAc/iJ,EACjN,SAASgjJ,GAAG7sJ,GAAG,SAASA,GAAG,IAAIA,EAAEuiI,UAAU,IAAIviI,EAAEuiI,UAAU,KAAKviI,EAAEuiI,WAAW,IAAIviI,EAAEuiI,UAAU,iCAAiCviI,EAAEwiI,YAChI,SAASsqB,GAAG9sJ,EAAEC,EAAEoL,EAAExB,EAAEzW,GAAG,IAAIE,EAAE+X,EAAE06I,oBAAoB,GAAGzyJ,EAAE,CAAC,IAAIqY,EAAErY,EAAEs5J,cAAc,GAAG,oBAAoBx5J,EAAE,CAAC,IAAI6W,EAAE7W,EAAEA,EAAE,WAAW,IAAI4M,EAAEusJ,GAAG5gJ,GAAG1B,EAAElU,KAAKiK,IAAIssJ,GAAGrsJ,EAAE0L,EAAE3L,EAAE5M,OAAO,CAAmD,GAAlDE,EAAE+X,EAAE06I,oBAD9B,SAAY/lJ,EAAEC,GAA0H,GAAvHA,IAA2DA,MAAvDA,EAAED,EAAE,IAAIA,EAAEuiI,SAASviI,EAAE6+I,gBAAgB7+I,EAAEoiI,WAAW,OAAa,IAAIniI,EAAEsiI,WAAWtiI,EAAE8sJ,aAAa,qBAAwB9sJ,EAAE,IAAI,IAAIoL,EAAEA,EAAErL,EAAEsiI,WAAWtiI,EAAEstF,YAAYjiF,GAAG,OAAO,IAAIqhJ,GAAG1sJ,EAAE,EAAEC,EAAE,CAACylI,SAAQ,QAAI,GACvKsnB,CAAG3hJ,EAAExB,GAAG8B,EAAErY,EAAEs5J,cAAiB,oBAAoBx5J,EAAE,CAAC,IAAI8K,EAAE9K,EAAEA,EAAE,WAAW,IAAI4M,EAAEusJ,GAAG5gJ,GAAGzN,EAAEnI,KAAKiK,IAAI8pJ,IAAG,WAAWwC,GAAGrsJ,EAAE0L,EAAE3L,EAAE5M,MAAK,OAAOm5J,GAAG5gJ,GAAG,SAASshJ,GAAGjtJ,EAAEC,EAAEoL,GAAG,IAAIxB,EAAE,EAAEtY,UAAU9B,aAAQ,IAAS8B,UAAU,GAAGA,UAAU,GAAG,KAAK,MAAM,CAACimI,SAASgF,EAAGxsI,IAAI,MAAM6Z,EAAE,KAAK,GAAGA,EAAE04E,SAASviF,EAAE2lI,cAAc1lI,EAAEs+I,eAAelzI,GAGxR,SAAS6hJ,GAAGltJ,EAAEC,GAAG,IAAIoL,EAAE,EAAE9Z,UAAU9B,aAAQ,IAAS8B,UAAU,GAAGA,UAAU,GAAG,KAAK,IAAIs7J,GAAG5sJ,GAAG,MAAMnI,MAAMwpG,EAAE,MAAM,OAAO2rD,GAAGjtJ,EAAEC,EAAE,KAAKoL,GALxIqhJ,GAAGr8J,UAAU8+D,OAAO,SAASnvD,EAAEC,GAAGqsJ,GAAGtsJ,EAAE5O,KAAKw7J,cAAc,UAAK,IAAS3sJ,EAAE,KAAKA,IAAIysJ,GAAGr8J,UAAU88J,QAAQ,SAASntJ,GAAG,IAAIC,EAAE7O,KAAKw7J,cAAcvhJ,OAAE,IAASrL,EAAE,KAAKA,EAAE6J,EAAE5J,EAAE0lI,cAAc2mB,GAAG,KAAKrsJ,EAAE,MAAK,WAAW4J,EAAEylG,IAAI,KAAK,OAAOjkG,GAAGA,QAGrb44H,GAAG,SAASjkI,GAAG,GAAG,KAAKA,EAAEw9H,IAAI,CAAC,IAAIv9H,EAAEo6I,GAAGiD,KAAK,IAAI,KAAKE,GAAGx9I,EAAEC,GAAGwsJ,GAAGzsJ,EAAEC,KAAKikI,GAAG,SAASlkI,GAAG,GAAG,KAAKA,EAAEw9H,IAAI,CAAC8f,KAAK,IAAIr9I,EAAEm6I,KAAKoD,GAAGx9I,EAAEC,GAAGwsJ,GAAGzsJ,EAAEC,KAAKkkI,GAAG,SAASnkI,GAAG,GAAG,KAAKA,EAAEw9H,IAAI,CAAC,IAAIv9H,EAAEq9I,KAAoBE,GAAGx9I,EAAlBC,EAAEs9I,GAAGt9I,EAAED,EAAE,OAAcysJ,GAAGzsJ,EAAEC,KAC5M89H,GAAG,SAAS/9H,EAAEC,EAAEoL,GAAG,OAAOpL,GAAG,IAAK,QAAyB,GAAjB2gI,GAAG5gI,EAAEqL,GAAGpL,EAAEoL,EAAE0R,KAAQ,UAAU1R,EAAElP,MAAM,MAAM8D,EAAE,CAAC,IAAIoL,EAAErL,EAAEqL,EAAEghB,YAAYhhB,EAAEA,EAAEghB,WAAsF,IAA3EhhB,EAAEA,EAAE+hJ,iBAAiB,cAAcz8H,KAAKt7B,UAAU,GAAG4K,GAAG,mBAAuBA,EAAE,EAAEA,EAAEoL,EAAE5b,OAAOwQ,IAAI,CAAC,IAAI4J,EAAEwB,EAAEpL,GAAG,GAAG4J,IAAI7J,GAAG6J,EAAEwjJ,OAAOrtJ,EAAEqtJ,KAAK,CAAC,IAAIj6J,EAAEy7G,GAAGhlG,GAAG,IAAIzW,EAAE,MAAM0E,MAAMwpG,EAAE,KAAK4+B,GAAGr2H,GAAG+2H,GAAG/2H,EAAEzW,KAAK,MAAM,IAAK,WAAWouI,GAAGxhI,EAAEqL,GAAG,MAAM,IAAK,SAAmB,OAAVpL,EAAEoL,EAAEva,QAAeowI,GAAGlhI,IAAIqL,EAAE66I,SAASjmJ,GAAE,KAAMm+H,GAAGyrB,GAC9Z5/H,GAAG,SAASjqB,EAAEC,EAAEoL,EAAExB,GAAG,IAAIzW,EAAEka,GAAEA,IAAG,EAAE,IAAI,OAAOysI,GAAG,GAAG/5I,EAAEytC,KAAK,KAAKxtC,EAAEoL,EAAExB,IAAjC,QAzEsC,KAyEOyD,GAAEla,IAAS+mJ,OAAO9b,GAAG,WAzE5B,KAyEyC,GAAD/wH,MA7DhH,WAAc,GAAG,OAAOq6I,GAAG,CAAC,IAAI3nJ,EAAE2nJ,GAAGA,GAAG,KAAK3nJ,EAAE6E,SAAQ,SAAS7E,EAAEqL,GAAGy9I,GAAGz9I,EAAErL,GAAGgN,GAAE3B,MAAK8uI,MA6D+CmT,GAAKvE,OAAOzqB,GAAG,SAASt+H,EAAEC,GAAG,IAAIoL,EAAEiC,GAAEA,IAAG,EAAE,IAAI,OAAOtN,EAAEC,GAAb,QAzErG,KAyE6HqN,GAAEjC,IAAS8uI,OAChN,IAAIoT,GAAG,CAACC,aAAaN,GAAGl7B,YAAY,SAAShyH,GAAG,GAAG,MAAMA,EAAE,OAAO,KAAK,GAAG,IAAIA,EAAEuiI,SAAS,OAAOviI,EAAE,IAAIC,EAAED,EAAEq9I,oBAAoB,QAAG,IAASp9I,EAAE,CAAC,GAAG,oBAAoBD,EAAEmvD,OAAO,MAAMr3D,MAAMwpG,EAAE,MAAM,MAAMxpG,MAAMwpG,EAAE,IAAIxxG,OAAOuN,KAAK2C,KAA0C,OAA5BA,EAAE,QAAVA,EAAE6jI,GAAG5jI,IAAc,KAAKD,EAAEo8H,WAAoBsJ,QAAQ,SAAS1lI,EAAEC,EAAEoL,GAAG,IAAIwhJ,GAAG5sJ,GAAG,MAAMnI,MAAMwpG,EAAE,MAAM,OAAOwrD,GAAG,KAAK9sJ,EAAEC,GAAE,EAAGoL,IAAI8jD,OAAO,SAASnvD,EAAEC,EAAEoL,GAAG,IAAIwhJ,GAAG5sJ,GAAG,MAAMnI,MAAMwpG,EAAE,MAAM,OAAOwrD,GAAG,KAAK9sJ,EAAEC,GAAE,EAAGoL,IAAIoiJ,oCAAoC,SAASztJ,EAAEC,EAAEoL,EAAExB,GAAG,IAAIgjJ,GAAGxhJ,GAAG,MAAMvT,MAAMwpG,EAAE,MAChgB,GAAG,MAAMthG,QAAG,IAASA,EAAEq9I,oBAAoB,MAAMvlJ,MAAMwpG,EAAE,KAAK,OAAOwrD,GAAG9sJ,EAAEC,EAAEoL,GAAE,EAAGxB,IAAI6jJ,uBAAuB,SAAS1tJ,GAAG,IAAI6sJ,GAAG7sJ,GAAG,MAAMlI,MAAMwpG,EAAE,KAAK,QAAOthG,EAAE+lJ,sBAAqB+D,IAAG,WAAWgD,GAAG,KAAK,KAAK9sJ,GAAE,GAAG,WAAWA,EAAE+lJ,oBAAoB,KAAK/lJ,EAAEsvG,IAAI,YAAS,IAAQq+C,sBAAsB,WAAW,OAAOT,GAAG17J,WAAM,EAAOD,YAAYq8J,wBAAwB/D,GAAGgE,UAAU,SAAS7tJ,EAAEC,GAAG,GA3E/T,KA2EoU,GAADqN,IAAe,MAAMxV,MAAMwpG,EAAE,MAAM,IAAIj2F,EAAEiC,GAAEA,IAAG,EAAE,IAAI,OAAOysI,GAAG,GAAG/5I,EAAEytC,KAAK,KAAKxtC,IAA7B,QAAyCqN,GAAEjC,EAAE8uI,OAAO1hB,mDAAmD,CAACq1B,OAAO,CAACzoB,GAC3iBp1B,GAAGpB,GAAGmtB,EAAGE,yBAAyBlyG,EAAG88G,GAAG,SAAS9mI,GAAGu7H,EAAGv7H,EAAE6mI,KAAKzwG,GAAG+nG,GAAG2R,GAAG/T,EAAGgtB,GAAG,CAACp/H,SAAQ,OACtF,SAAU3pB,GAAG,IAAIC,EAAED,EAAE+tJ,yBAtBrB,SAAY/tJ,GAAG,GAAG,qBAAqByoF,+BAA+B,OAAM,EAAG,IAAIxoF,EAAEwoF,+BAA+B,GAAGxoF,EAAE+tJ,aAAa/tJ,EAAEguJ,cAAc,OAAM,EAAG,IAAI,IAAI5iJ,EAAEpL,EAAEiuJ,OAAOluJ,GAAG8rJ,GAAG,SAAS9rJ,GAAG,IAAIC,EAAEkuJ,kBAAkB9iJ,EAAErL,OAAE,EAAO,MAA0B,GAApBA,EAAE2pB,QAAQ85G,YAAe,MAAMrwI,MAAMs8H,GAAG,SAAS1vH,GAAG,IAAIC,EAAEmuJ,qBAAqB/iJ,EAAErL,GAAG,MAAM5M,MAAM,MAAMyW,MAsB/R8N,CAAGxkB,EAAE,GAAG6M,EAAE,CAACquJ,kBAAkB,KAAKC,cAAc,KAAKC,mBAAmB,KAAKC,eAAe,KAAKC,qBAAqBpyB,EAAGxE,uBAAuB62B,wBAAwB,SAAS1uJ,GAAW,OAAO,QAAfA,EAAE6jI,GAAG7jI,IAAmB,KAAKA,EAAEo8H,WAAW2xB,wBAAwB,SAAS/tJ,GAAG,OAAOC,EAAEA,EAAED,GAAG,MAAM2uJ,4BAA4B,KAAKC,gBAAgB,KAAKC,aAAa,KAAKC,kBAAkB,KAAKC,gBAAgB,QAAzb,CAAmc,CAAChB,wBAAwBxoB,GAAGypB,WAAW,EAAEt4F,QAAQ,UACpfu4F,oBAAoB,cAAc,IAAIC,GAAG,CAACh4D,QAAQq2D,IAAI4B,GAAGD,IAAI3B,IAAI2B,GAAGhgK,EAAOC,QAAQggK,GAAGj4D,SAASi4D,I,6BC9R7FjgK,EAAOC,QAAUC,EAAQ,M,6BCMyC,IAAIkE,EAAEqY,EAAE1B,EAAE/L,EAAE8L,EAChF,GADala,OAAOC,eAAeZ,EAAQ,aAAa,CAAC2B,OAAM,IAC5D,qBAAqBsU,QAAQ,oBAAoBgqJ,eAAe,CAAC,IAAIhtJ,EAAE,KAAK6jG,EAAE,KAAKz+F,EAAE,SAAFA,IAAa,GAAG,OAAOpF,EAAE,IAAI,IAAIpC,EAAE7Q,EAAQwpJ,eAAev2I,GAAE,EAAGpC,GAAGoC,EAAE,KAAK,MAAMnC,GAAG,MAAMuuD,WAAWhnD,EAAE,GAAGvH,IAAKqhG,EAAEhsE,KAAKC,MAAMpmC,EAAQwpJ,aAAa,WAAW,OAAOrjH,KAAKC,MAAM+rE,GAAGhuG,EAAE,SAAS0M,GAAG,OAAOoC,EAAEosD,WAAWl7D,EAAE,EAAE0M,IAAIoC,EAAEpC,EAAEwuD,WAAWhnD,EAAE,KAAKmE,EAAE,SAAS3L,EAAEC,GAAGgmG,EAAEz3C,WAAWxuD,EAAEC,IAAIgK,EAAE,WAAWskD,aAAa03C,IAAI/nG,EAAE,WAAW,OAAM,GAAI8L,EAAE7a,EAAQkgK,wBAAwB,iBAAiB,CAAC,IAAInjJ,EAAE9G,OAAOkqJ,YAAYtwJ,EAAEoG,OAAOkwB,KACnfr2B,EAAEmG,OAAOopD,WAAWvR,EAAE73C,OAAOmpD,aAAa,GAAG,qBAAqBvpC,QAAQ,CAAC,IAAI/Z,EAAE7F,OAAOmqJ,qBAAqB,oBAAoBnqJ,OAAOC,uBAAuB2f,QAAQ/yB,MAAM,2IAA2I,oBAAoBgZ,GAAG+Z,QAAQ/yB,MAAM,0IAA0I,GAAG,kBACneia,GAAG,oBAAoBA,EAAEqpB,IAAIpmC,EAAQwpJ,aAAa,WAAW,OAAOzsI,EAAEqpB,WAAW,CAAC,IAAIrqB,EAAElM,EAAEu2B,MAAMpmC,EAAQwpJ,aAAa,WAAW,OAAO35I,EAAEu2B,MAAMrqB,GAAG,IAAIhX,GAAE,EAAGiX,EAAE,KAAKC,GAAG,EAAEnY,EAAE,EAAE+a,EAAE,EAAE9P,EAAE,WAAW,OAAO/O,EAAQwpJ,gBAAgB3qI,GAAGhE,EAAE,aAAa7a,EAAQkgK,wBAAwB,SAASrvJ,GAAG,EAAEA,GAAG,IAAIA,EAAEglB,QAAQ/yB,MAAM,oHAAoHgB,EAAE,EAAE+M,EAAEhM,KAAKuN,MAAM,IAAIvB,GAAG,GAAG,IAAIiO,EAAE,IAAImhJ,eAAelhJ,EAAED,EAAEuhJ,MAAMvhJ,EAAEwhJ,MAAMC,UACnf,WAAW,GAAG,OAAOvkJ,EAAE,CAAC,IAAInL,EAAE7Q,EAAQwpJ,eAAe3qI,EAAEhO,EAAE/M,EAAE,IAAIkY,GAAE,EAAGnL,GAAGkO,EAAEyhJ,YAAY,OAAOz7J,GAAE,EAAGiX,EAAE,MAAM,MAAMlL,GAAG,MAAMiO,EAAEyhJ,YAAY,MAAM1vJ,QAAS/L,GAAE,GAAIZ,EAAE,SAAS0M,GAAGmL,EAAEnL,EAAE9L,IAAIA,GAAE,EAAGga,EAAEyhJ,YAAY,QAAQhkJ,EAAE,SAAS3L,EAAEC,GAAGmL,EAAEnM,GAAE,WAAWe,EAAE7Q,EAAQwpJ,kBAAiB14I,IAAIgK,EAAE,WAAWgzC,EAAE7xC,GAAGA,GAAG,GAAG,SAAS+C,EAAEnO,EAAEC,GAAG,IAAIoL,EAAErL,EAAEvQ,OAAOuQ,EAAEvJ,KAAKwJ,GAAGD,EAAE,OAAO,CAAC,IAAI6J,EAAE7V,KAAKuN,OAAO8J,EAAE,GAAG,GAAGjY,EAAE4M,EAAE6J,GAAG,UAAG,IAASzW,GAAG,EAAE2a,EAAE3a,EAAE6M,IAA0B,MAAMD,EAA7BA,EAAE6J,GAAG5J,EAAED,EAAEqL,GAAGjY,EAAEiY,EAAExB,GAAgB,SAASiE,EAAE9N,GAAU,YAAO,KAAdA,EAAEA,EAAE,IAAqB,KAAKA,EAC1d,SAAS6N,EAAE7N,GAAG,IAAIC,EAAED,EAAE,GAAG,QAAG,IAASC,EAAE,CAAC,IAAIoL,EAAErL,EAAE81B,MAAM,GAAGzqB,IAAIpL,EAAE,CAACD,EAAE,GAAGqL,EAAErL,EAAE,IAAI,IAAI6J,EAAE,EAAEzW,EAAE4M,EAAEvQ,OAAOoa,EAAEzW,GAAG,CAAC,IAAIwW,EAAE,GAAGC,EAAE,GAAG,EAAE1W,EAAE6M,EAAE4J,GAAG7K,EAAE6K,EAAE,EAAExT,EAAE4J,EAAEjB,GAAG,QAAG,IAAS5L,GAAG,EAAE4a,EAAE5a,EAAEkY,QAAG,IAASjV,GAAG,EAAE2X,EAAE3X,EAAEjD,IAAI6M,EAAE6J,GAAGzT,EAAE4J,EAAEjB,GAAGsM,EAAExB,EAAE9K,IAAIiB,EAAE6J,GAAG1W,EAAE6M,EAAE4J,GAAGyB,EAAExB,EAAED,OAAQ,WAAG,IAASxT,GAAG,EAAE2X,EAAE3X,EAAEiV,IAA0B,MAAMrL,EAA7BA,EAAE6J,GAAGzT,EAAE4J,EAAEjB,GAAGsM,EAAExB,EAAE9K,IAAgB,OAAOkB,EAAE,OAAO,KAAK,SAAS8N,EAAE/N,EAAEC,GAAG,IAAIoL,EAAErL,EAAE4vJ,UAAU3vJ,EAAE2vJ,UAAU,OAAO,IAAIvkJ,EAAEA,EAAErL,EAAE/D,GAAGgE,EAAEhE,GAAG,IAAI2R,EAAE,GAAGD,EAAE,GAAGD,EAAE,EAAED,EAAE,KAAKD,EAAE,EAAED,GAAE,EAAGD,GAAE,EAAGD,GAAE,EACja,SAASD,EAAEpN,GAAG,IAAI,IAAIC,EAAE6N,EAAEH,GAAG,OAAO1N,GAAG,CAAC,GAAG,OAAOA,EAAElD,SAAS8Q,EAAEF,OAAQ,MAAG1N,EAAE4vJ,WAAW7vJ,GAAgD,MAA9C6N,EAAEF,GAAG1N,EAAE2vJ,UAAU3vJ,EAAEi7I,eAAe/sI,EAAEP,EAAE3N,GAAcA,EAAE6N,EAAEH,IAAI,SAASR,EAAEnN,GAAa,GAAVqN,GAAE,EAAGD,EAAEpN,IAAOsN,EAAE,GAAG,OAAOQ,EAAEF,GAAGN,GAAE,EAAGha,EAAE4Z,OAAO,CAAC,IAAIjN,EAAE6N,EAAEH,GAAG,OAAO1N,GAAG0L,EAAEwB,EAAElN,EAAE4vJ,UAAU7vJ,IACtP,SAASkN,EAAElN,EAAEC,GAAGqN,GAAE,EAAGD,IAAIA,GAAE,EAAGpD,KAAKsD,GAAE,EAAG,IAAIlC,EAAEmC,EAAE,IAAS,IAALJ,EAAEnN,GAAOwN,EAAEK,EAAEF,GAAG,OAAOH,MAAMA,EAAEytI,eAAej7I,IAAID,IAAI9B,MAAM,CAAC,IAAI2L,EAAE4D,EAAE1Q,SAAS,GAAG,OAAO8M,EAAE,CAAC4D,EAAE1Q,SAAS,KAAKyQ,EAAEC,EAAEqiJ,cAAc,IAAI18J,EAAEyW,EAAE4D,EAAEytI,gBAAgBj7I,GAAGA,EAAE9Q,EAAQwpJ,eAAe,oBAAoBvlJ,EAAEqa,EAAE1Q,SAAS3J,EAAEqa,IAAIK,EAAEF,IAAIC,EAAED,GAAGR,EAAEnN,QAAQ4N,EAAED,GAAGH,EAAEK,EAAEF,GAAG,GAAG,OAAOH,EAAE,IAAI7D,GAAE,MAAO,CAAC,IAAIzW,EAAE2a,EAAEH,GAAG,OAAOxa,GAAGwY,EAAEwB,EAAEha,EAAE08J,UAAU5vJ,GAAG2J,GAAE,EAAG,OAAOA,EAA7U,QAAuV6D,EAAE,KAAKD,EAAEnC,EAAEkC,GAAE,GACpZ,SAASN,EAAEjN,GAAG,OAAOA,GAAG,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,IAAI,KAAK,EAAE,OAAO,WAAW,KAAK,EAAE,OAAO,IAAI,QAAQ,OAAO,KAAK,IAAIgN,EAAEhD,EAAE7a,EAAQ4pJ,2BAA2B,EAAE5pJ,EAAQggJ,8BAA8B,EAAEhgJ,EAAQ+2I,wBAAwB,EAAE/2I,EAAQkqJ,sBAAsB,EAAElqJ,EAAQgqJ,qBAAqB,EAAEhqJ,EAAQq2I,yBAAyB,SAASxlI,EAAEC,GAAG,OAAOD,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,QAAQA,EAAE,EAAE,IAAIqL,EAAEmC,EAAEA,EAAExN,EAAE,IAAI,OAAOC,IAAX,QAAuBuN,EAAEnC,IAClclc,EAAQizJ,cAAc,SAASpiJ,GAAG,OAAOwN,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAIvN,EAAE,EAAE,MAAM,QAAQA,EAAEuN,EAAE,IAAInC,EAAEmC,EAAEA,EAAEvN,EAAE,IAAI,OAAOD,IAAX,QAAuBwN,EAAEnC,IAChIlc,EAAQ82I,0BAA0B,SAASjmI,EAAEC,EAAEoL,GAAG,IAAIxB,EAAE1a,EAAQwpJ,eAAe,GAAG,kBAAkBttI,GAAG,OAAOA,EAAE,CAAC,IAAIjY,EAAEiY,EAAEmsB,MAAMpkC,EAAE,kBAAkBA,GAAG,EAAEA,EAAEyW,EAAEzW,EAAEyW,EAAEwB,EAAE,kBAAkBA,EAAEijD,QAAQjjD,EAAEijD,QAAQrhD,EAAEjN,QAAQqL,EAAE4B,EAAEjN,GAAG5M,EAAEyW,EAAyM,OAAjM7J,EAAE,CAAC/D,GAAGyR,IAAI3Q,SAASkD,EAAE6vJ,cAAc9vJ,EAAE6vJ,UAAUz8J,EAAE8nJ,eAAvD7vI,EAAEjY,EAAEiY,EAAoEukJ,WAAW,GAAGx8J,EAAEyW,GAAG7J,EAAE4vJ,UAAUx8J,EAAE+a,EAAER,EAAE3N,GAAG,OAAO8N,EAAEF,IAAI5N,IAAI8N,EAAEH,KAAKN,EAAEpD,IAAIoD,GAAE,EAAG1B,EAAEwB,EAAE/Z,EAAEyW,MAAM7J,EAAE4vJ,UAAUvkJ,EAAE8C,EAAEP,EAAE5N,GAAGsN,GAAGC,IAAID,GAAE,EAAGha,EAAE4Z,KAAYlN,GAAG7Q,EAAQkpJ,wBAAwB,SAASr4I,GAAGA,EAAEjD,SAAS,MACre5N,EAAQ4gK,sBAAsB,SAAS/vJ,GAAG,IAAIC,EAAEuN,EAAE,OAAO,WAAW,IAAInC,EAAEmC,EAAEA,EAAEvN,EAAE,IAAI,OAAOD,EAAExO,MAAMJ,KAAKG,WAAxB,QAA2Cic,EAAEnC,KAAKlc,EAAQ0pJ,iCAAiC,WAAW,OAAOrrI,GAAGre,EAAQopJ,qBAAqB,WAAW,IAAIv4I,EAAE7Q,EAAQwpJ,eAAevrI,EAAEpN,GAAG,IAAIC,EAAE6N,EAAEF,GAAG,OAAO3N,IAAIwN,GAAG,OAAOA,GAAG,OAAOxN,GAAG,OAAOA,EAAElD,UAAUkD,EAAE4vJ,WAAW7vJ,GAAGC,EAAEi7I,eAAeztI,EAAEytI,gBAAgBh9I,KAAK/O,EAAQspJ,sBAAsBzrI,EAAE7d,EAAQ6gK,2BAA2B,WAAW1iJ,GAAGC,IAAID,GAAE,EAAGha,EAAE4Z,KAC9d/d,EAAQ8gK,wBAAwB,aAAa9gK,EAAQ+gK,8BAA8B,WAAW,OAAOpiJ,EAAEF,IAAIze,EAAQghK,mBAAmB,M,gBCdtI,IAAIC,EAAW,SAAUjhK,GACvB,aAEA,IAAIkhK,EAAKvgK,OAAOO,UACZmjI,EAAS68B,EAAG57J,eAEZ67J,EAA4B,oBAAXz9J,OAAwBA,OAAS,GAClD09J,EAAiBD,EAAQx9J,UAAY,aACrC09J,EAAsBF,EAAQG,eAAiB,kBAC/CC,EAAoBJ,EAAQzqI,aAAe,gBAE/C,SAASg8B,EAAK8uG,EAASC,EAASr+J,EAAMs+J,GAEpC,IAAIC,EAAiBF,GAAWA,EAAQvgK,qBAAqB0gK,EAAYH,EAAUG,EAC/EC,EAAYlhK,OAAOc,OAAOkgK,EAAezgK,WACzC2qB,EAAU,IAAIi2I,EAAQJ,GAAe,IAMzC,OAFAG,EAAUE,QAqMZ,SAA0BP,EAASp+J,EAAMyoB,GACvC,IAAIk/D,EA9KuB,iBAgL3B,OAAO,SAAgB7hD,EAAQtmC,GAC7B,GA/KoB,cA+KhBmoF,EACF,MAAM,IAAIpiF,MAAM,gCAGlB,GAlLoB,cAkLhBoiF,EAA6B,CAC/B,GAAe,UAAX7hD,EACF,MAAMtmC,EAKR,OAAOo/J,IAMT,IAHAn2I,EAAQqd,OAASA,EACjBrd,EAAQjpB,IAAMA,IAED,CACX,IAAIq/J,EAAWp2I,EAAQo2I,SACvB,GAAIA,EAAU,CACZ,IAAIC,EAAiBC,EAAoBF,EAAUp2I,GACnD,GAAIq2I,EAAgB,CAClB,GAAIA,IAAmBE,EAAkB,SACzC,OAAOF,GAIX,GAAuB,SAAnBr2I,EAAQqd,OAGVrd,EAAQw2I,KAAOx2I,EAAQy2I,MAAQz2I,EAAQjpB,SAElC,GAAuB,UAAnBipB,EAAQqd,OAAoB,CACrC,GAlNqB,mBAkNjB6hD,EAEF,MADAA,EAhNc,YAiNRl/D,EAAQjpB,IAGhBipB,EAAQ02I,kBAAkB12I,EAAQjpB,SAEN,WAAnBipB,EAAQqd,QACjBrd,EAAQ22I,OAAO,SAAU32I,EAAQjpB,KAGnCmoF,EA3NkB,YA6NlB,IAAI03E,EAASC,EAASlB,EAASp+J,EAAMyoB,GACrC,GAAoB,WAAhB42I,EAAOz1J,KAAmB,CAO5B,GAJA+9E,EAAQl/D,EAAQ9oB,KAhOA,YAFK,iBAsOjB0/J,EAAO7/J,MAAQw/J,EACjB,SAGF,MAAO,CACLzgK,MAAO8gK,EAAO7/J,IACdG,KAAM8oB,EAAQ9oB,MAGS,UAAhB0/J,EAAOz1J,OAChB+9E,EA9OgB,YAiPhBl/D,EAAQqd,OAAS,QACjBrd,EAAQjpB,IAAM6/J,EAAO7/J,OA7QP+/J,CAAiBnB,EAASp+J,EAAMyoB,GAE7Cg2I,EAcT,SAASa,EAASv/J,EAAIwB,EAAK/B,GACzB,IACE,MAAO,CAAEoK,KAAM,SAAUpK,IAAKO,EAAGyD,KAAKjC,EAAK/B,IAC3C,MAAOU,GACP,MAAO,CAAE0J,KAAM,QAASpK,IAAKU,IAhBjCtD,EAAQ0yD,KAAOA,EAoBf,IAOI0vG,EAAmB,GAMvB,SAASR,KACT,SAASgB,KACT,SAASC,KAIT,IAAIC,EAAoB,GACxBA,EAAkB1B,GAAkB,WAClC,OAAOn/J,MAGT,IAAI8gK,EAAWpiK,OAAO0K,eAClB23J,EAA0BD,GAAYA,EAASA,EAAS13I,EAAO,MAC/D23I,GACAA,IAA4B9B,GAC5B78B,EAAOz9H,KAAKo8J,EAAyB5B,KAGvC0B,EAAoBE,GAGtB,IAAIC,EAAKJ,EAA2B3hK,UAClC0gK,EAAU1gK,UAAYP,OAAOc,OAAOqhK,GAQtC,SAASI,EAAsBhiK,GAC7B,CAAC,OAAQ,QAAS,UAAUwU,SAAQ,SAASwzB,GAC3ChoC,EAAUgoC,GAAU,SAAStmC,GAC3B,OAAOX,KAAK8/J,QAAQ74H,EAAQtmC,OAoClC,SAASugK,EAActB,EAAWuB,GAgChC,IAAIC,EAgCJphK,KAAK8/J,QA9BL,SAAiB74H,EAAQtmC,GACvB,SAAS0gK,IACP,OAAO,IAAIF,GAAY,SAAS5gK,EAASC,IAnC7C,SAAS8gK,EAAOr6H,EAAQtmC,EAAKJ,EAASC,GACpC,IAAIggK,EAASC,EAASb,EAAU34H,GAAS24H,EAAWj/J,GACpD,GAAoB,UAAhB6/J,EAAOz1J,KAEJ,CACL,IAAIlL,EAAS2gK,EAAO7/J,IAChBjB,EAAQG,EAAOH,MACnB,OAAIA,GACiB,kBAAVA,GACP0iI,EAAOz9H,KAAKjF,EAAO,WACdyhK,EAAY5gK,QAAQb,EAAM6hK,SAASvgK,MAAK,SAAStB,GACtD4hK,EAAO,OAAQ5hK,EAAOa,EAASC,MAC9B,SAASa,GACVigK,EAAO,QAASjgK,EAAKd,EAASC,MAI3B2gK,EAAY5gK,QAAQb,GAAOsB,MAAK,SAASwgK,GAI9C3hK,EAAOH,MAAQ8hK,EACfjhK,EAAQV,MACP,SAASgB,GAGV,OAAOygK,EAAO,QAASzgK,EAAON,EAASC,MAvBzCA,EAAOggK,EAAO7/J,KAiCZ2gK,CAAOr6H,EAAQtmC,EAAKJ,EAASC,MAIjC,OAAO4gK,EAaLA,EAAkBA,EAAgBpgK,KAChCqgK,EAGAA,GACEA,KAkHV,SAASnB,EAAoBF,EAAUp2I,GACrC,IAAIqd,EAAS+4H,EAASt+J,SAASkoB,EAAQqd,QACvC,QAvSE3lC,IAuSE2lC,EAAsB,CAKxB,GAFArd,EAAQo2I,SAAW,KAEI,UAAnBp2I,EAAQqd,OAAoB,CAE9B,GAAI+4H,EAASt+J,SAAT,SAGFkoB,EAAQqd,OAAS,SACjBrd,EAAQjpB,SAlTZW,EAmTI4+J,EAAoBF,EAAUp2I,GAEP,UAAnBA,EAAQqd,QAGV,OAAOk5H,EAIXv2I,EAAQqd,OAAS,QACjBrd,EAAQjpB,IAAM,IAAIvB,UAChB,kDAGJ,OAAO+gK,EAGT,IAAIK,EAASC,EAASx5H,EAAQ+4H,EAASt+J,SAAUkoB,EAAQjpB,KAEzD,GAAoB,UAAhB6/J,EAAOz1J,KAIT,OAHA6e,EAAQqd,OAAS,QACjBrd,EAAQjpB,IAAM6/J,EAAO7/J,IACrBipB,EAAQo2I,SAAW,KACZG,EAGT,IAAIv/J,EAAO4/J,EAAO7/J,IAElB,OAAMC,EAOFA,EAAKE,MAGP8oB,EAAQo2I,EAASyB,YAAc7gK,EAAKlB,MAGpCkqB,EAAQrnB,KAAOy9J,EAAS0B,QAQD,WAAnB93I,EAAQqd,SACVrd,EAAQqd,OAAS,OACjBrd,EAAQjpB,SAtWVW,GAgXFsoB,EAAQo2I,SAAW,KACZG,GANEv/J,GA3BPgpB,EAAQqd,OAAS,QACjBrd,EAAQjpB,IAAM,IAAIvB,UAAU,oCAC5BwqB,EAAQo2I,SAAW,KACZG,GAoDX,SAASwB,EAAaC,GACpB,IAAI1uH,EAAQ,CAAE2uH,OAAQD,EAAK,IAEvB,KAAKA,IACP1uH,EAAM4uH,SAAWF,EAAK,IAGpB,KAAKA,IACP1uH,EAAM6uH,WAAaH,EAAK,GACxB1uH,EAAM8uH,SAAWJ,EAAK,IAGxB5hK,KAAKiiK,WAAW58J,KAAK6tC,GAGvB,SAASgvH,EAAchvH,GACrB,IAAIstH,EAASttH,EAAMivH,YAAc,GACjC3B,EAAOz1J,KAAO,gBACPy1J,EAAO7/J,IACduyC,EAAMivH,WAAa3B,EAGrB,SAASX,EAAQJ,GAIfz/J,KAAKiiK,WAAa,CAAC,CAAEJ,OAAQ,SAC7BpC,EAAYhsJ,QAAQkuJ,EAAc3hK,MAClCA,KAAK+G,OAAM,GA8Bb,SAASqiB,EAAOg5I,GACd,GAAIA,EAAU,CACZ,IAAIC,EAAiBD,EAASjD,GAC9B,GAAIkD,EACF,OAAOA,EAAe19J,KAAKy9J,GAG7B,GAA6B,oBAAlBA,EAAS7/J,KAClB,OAAO6/J,EAGT,IAAK9xJ,MAAM8xJ,EAAS/jK,QAAS,CAC3B,IAAID,GAAK,EAAGmE,EAAO,SAASA,IAC1B,OAASnE,EAAIgkK,EAAS/jK,QACpB,GAAI+jI,EAAOz9H,KAAKy9J,EAAUhkK,GAGxB,OAFAmE,EAAK7C,MAAQ0iK,EAAShkK,GACtBmE,EAAKzB,MAAO,EACLyB,EAOX,OAHAA,EAAK7C,WAtdT4B,EAudIiB,EAAKzB,MAAO,EAELyB,GAGT,OAAOA,EAAKA,KAAOA,GAKvB,MAAO,CAAEA,KAAMw9J,GAIjB,SAASA,IACP,MAAO,CAAErgK,WAteP4B,EAseyBR,MAAM,GA+MnC,OA3mBA6/J,EAAkB1hK,UAAY+hK,EAAGvhK,YAAcmhK,EAC/CA,EAA2BnhK,YAAckhK,EACzCC,EAA2BtB,GACzBqB,EAAkBh+B,YAAc,oBAYlC5kI,EAAQukK,oBAAsB,SAASC,GACrC,IAAIC,EAAyB,oBAAXD,GAAyBA,EAAO9iK,YAClD,QAAO+iK,IACHA,IAAS7B,GAG2B,uBAAnC6B,EAAK7/B,aAAe6/B,EAAK72I,QAIhC5tB,EAAQ0kK,KAAO,SAASF,GAUtB,OATI7jK,OAAOyK,eACTzK,OAAOyK,eAAeo5J,EAAQ3B,IAE9B2B,EAAOl5J,UAAYu3J,EACbtB,KAAqBiD,IACzBA,EAAOjD,GAAqB,sBAGhCiD,EAAOtjK,UAAYP,OAAOc,OAAOwhK,GAC1BuB,GAOTxkK,EAAQ2kK,MAAQ,SAAS/hK,GACvB,MAAO,CAAE4gK,QAAS5gK,IAsEpBsgK,EAAsBC,EAAcjiK,WACpCiiK,EAAcjiK,UAAUmgK,GAAuB,WAC7C,OAAOp/J,MAETjC,EAAQmjK,cAAgBA,EAKxBnjK,EAAQ4kK,MAAQ,SAASpD,EAASC,EAASr+J,EAAMs+J,EAAa0B,QACxC,IAAhBA,IAAwBA,EAAcpgK,SAE1C,IAAImJ,EAAO,IAAIg3J,EACbzwG,EAAK8uG,EAASC,EAASr+J,EAAMs+J,GAC7B0B,GAGF,OAAOpjK,EAAQukK,oBAAoB9C,GAC/Bt1J,EACAA,EAAK3H,OAAOvB,MAAK,SAASnB,GACxB,OAAOA,EAAOiB,KAAOjB,EAAOH,MAAQwK,EAAK3H,WAuKjD0+J,EAAsBD,GAEtBA,EAAG1B,GAAqB,YAOxB0B,EAAG7B,GAAkB,WACnB,OAAOn/J,MAGTghK,EAAGt9J,SAAW,WACZ,MAAO,sBAkCT3F,EAAQkO,KAAO,SAASzB,GACtB,IAAIyB,EAAO,GACX,IAAK,IAAIrN,KAAO4L,EACdyB,EAAK5G,KAAKzG,GAMZ,OAJAqN,EAAKF,UAIE,SAASxJ,IACd,KAAO0J,EAAK5N,QAAQ,CAClB,IAAIO,EAAMqN,EAAKy4B,MACf,GAAI9lC,KAAO4L,EAGT,OAFAjI,EAAK7C,MAAQd,EACb2D,EAAKzB,MAAO,EACLyB,EAQX,OADAA,EAAKzB,MAAO,EACLyB,IAsCXxE,EAAQqrB,OAASA,EAMjBy2I,EAAQ5gK,UAAY,CAClBQ,YAAaogK,EAEb94J,MAAO,SAAS67J,GAcd,GAbA5iK,KAAKu6B,KAAO,EACZv6B,KAAKuC,KAAO,EAGZvC,KAAKogK,KAAOpgK,KAAKqgK,WAjfjB/+J,EAkfAtB,KAAKc,MAAO,EACZd,KAAKggK,SAAW,KAEhBhgK,KAAKinC,OAAS,OACdjnC,KAAKW,SAtfLW,EAwfAtB,KAAKiiK,WAAWxuJ,QAAQyuJ,IAEnBU,EACH,IAAK,IAAIj3I,KAAQ3rB,KAEQ,MAAnB2rB,EAAKpd,OAAO,IACZ6zH,EAAOz9H,KAAK3E,KAAM2rB,KACjBrb,OAAOqb,EAAK/mB,MAAM,MACrB5E,KAAK2rB,QAhgBXrqB,IAsgBF06C,KAAM,WACJh8C,KAAKc,MAAO,EAEZ,IACI+hK,EADY7iK,KAAKiiK,WAAW,GACLE,WAC3B,GAAwB,UAApBU,EAAW93J,KACb,MAAM83J,EAAWliK,IAGnB,OAAOX,KAAK8iK,MAGdxC,kBAAmB,SAASyC,GAC1B,GAAI/iK,KAAKc,KACP,MAAMiiK,EAGR,IAAIn5I,EAAU5pB,KACd,SAASomG,EAAO48D,EAAKC,GAYnB,OAXAzC,EAAOz1J,KAAO,QACdy1J,EAAO7/J,IAAMoiK,EACbn5I,EAAQrnB,KAAOygK,EAEXC,IAGFr5I,EAAQqd,OAAS,OACjBrd,EAAQjpB,SAjiBZW,KAoiBY2hK,EAGZ,IAAK,IAAI7kK,EAAI4B,KAAKiiK,WAAW5jK,OAAS,EAAGD,GAAK,IAAKA,EAAG,CACpD,IAAI80C,EAAQlzC,KAAKiiK,WAAW7jK,GACxBoiK,EAASttH,EAAMivH,WAEnB,GAAqB,SAAjBjvH,EAAM2uH,OAIR,OAAOz7D,EAAO,OAGhB,GAAIlzD,EAAM2uH,QAAU7hK,KAAKu6B,KAAM,CAC7B,IAAI2oI,EAAW9gC,EAAOz9H,KAAKuuC,EAAO,YAC9BiwH,EAAa/gC,EAAOz9H,KAAKuuC,EAAO,cAEpC,GAAIgwH,GAAYC,EAAY,CAC1B,GAAInjK,KAAKu6B,KAAO2Y,EAAM4uH,SACpB,OAAO17D,EAAOlzD,EAAM4uH,UAAU,GACzB,GAAI9hK,KAAKu6B,KAAO2Y,EAAM6uH,WAC3B,OAAO37D,EAAOlzD,EAAM6uH,iBAGjB,GAAImB,GACT,GAAIljK,KAAKu6B,KAAO2Y,EAAM4uH,SACpB,OAAO17D,EAAOlzD,EAAM4uH,UAAU,OAG3B,KAAIqB,EAMT,MAAM,IAAIz8J,MAAM,0CALhB,GAAI1G,KAAKu6B,KAAO2Y,EAAM6uH,WACpB,OAAO37D,EAAOlzD,EAAM6uH,gBAU9BxB,OAAQ,SAASx1J,EAAMpK,GACrB,IAAK,IAAIvC,EAAI4B,KAAKiiK,WAAW5jK,OAAS,EAAGD,GAAK,IAAKA,EAAG,CACpD,IAAI80C,EAAQlzC,KAAKiiK,WAAW7jK,GAC5B,GAAI80C,EAAM2uH,QAAU7hK,KAAKu6B,MACrB6nG,EAAOz9H,KAAKuuC,EAAO,eACnBlzC,KAAKu6B,KAAO2Y,EAAM6uH,WAAY,CAChC,IAAIqB,EAAelwH,EACnB,OAIAkwH,IACU,UAATr4J,GACS,aAATA,IACDq4J,EAAavB,QAAUlhK,GACvBA,GAAOyiK,EAAarB,aAGtBqB,EAAe,MAGjB,IAAI5C,EAAS4C,EAAeA,EAAajB,WAAa,GAItD,OAHA3B,EAAOz1J,KAAOA,EACdy1J,EAAO7/J,IAAMA,EAETyiK,GACFpjK,KAAKinC,OAAS,OACdjnC,KAAKuC,KAAO6gK,EAAarB,WAClB5B,GAGFngK,KAAK6kC,SAAS27H,IAGvB37H,SAAU,SAAS27H,EAAQwB,GACzB,GAAoB,UAAhBxB,EAAOz1J,KACT,MAAMy1J,EAAO7/J,IAcf,MAXoB,UAAhB6/J,EAAOz1J,MACS,aAAhBy1J,EAAOz1J,KACT/K,KAAKuC,KAAOi+J,EAAO7/J,IACM,WAAhB6/J,EAAOz1J,MAChB/K,KAAK8iK,KAAO9iK,KAAKW,IAAM6/J,EAAO7/J,IAC9BX,KAAKinC,OAAS,SACdjnC,KAAKuC,KAAO,OACa,WAAhBi+J,EAAOz1J,MAAqBi3J,IACrChiK,KAAKuC,KAAOy/J,GAGP7B,GAGTkD,OAAQ,SAAStB,GACf,IAAK,IAAI3jK,EAAI4B,KAAKiiK,WAAW5jK,OAAS,EAAGD,GAAK,IAAKA,EAAG,CACpD,IAAI80C,EAAQlzC,KAAKiiK,WAAW7jK,GAC5B,GAAI80C,EAAM6uH,aAAeA,EAGvB,OAFA/hK,KAAK6kC,SAASqO,EAAMivH,WAAYjvH,EAAM8uH,UACtCE,EAAchvH,GACPitH,IAKb,MAAS,SAAS0B,GAChB,IAAK,IAAIzjK,EAAI4B,KAAKiiK,WAAW5jK,OAAS,EAAGD,GAAK,IAAKA,EAAG,CACpD,IAAI80C,EAAQlzC,KAAKiiK,WAAW7jK,GAC5B,GAAI80C,EAAM2uH,SAAWA,EAAQ,CAC3B,IAAIrB,EAASttH,EAAMivH,WACnB,GAAoB,UAAhB3B,EAAOz1J,KAAkB,CAC3B,IAAIu4J,EAAS9C,EAAO7/J,IACpBuhK,EAAchvH,GAEhB,OAAOowH,GAMX,MAAM,IAAI58J,MAAM,0BAGlB68J,cAAe,SAASnB,EAAUX,EAAYC,GAa5C,OAZA1hK,KAAKggK,SAAW,CACdt+J,SAAU0nB,EAAOg5I,GACjBX,WAAYA,EACZC,QAASA,GAGS,SAAhB1hK,KAAKinC,SAGPjnC,KAAKW,SA1qBPW,GA6qBO6+J,IAQJpiK,EA1rBM,CAisBgBD,EAAOC,SAGtC,IACEylK,mBAAqBxE,EACrB,MAAOyE,GAUPn0D,SAAS,IAAK,yBAAdA,CAAwC0vD,K,eCxsB1ClhK,EAAOC,QAfP,SAAyB2E,EAAK9D,EAAKc,GAYjC,OAXId,KAAO8D,EACThE,OAAOC,eAAe+D,EAAK9D,EAAK,CAC9Bc,MAAOA,EACPnB,YAAY,EACZC,cAAc,EACdC,UAAU,IAGZiE,EAAI9D,GAAOc,EAGNgD,I,gBCZT,IAAIghK,EAAoB,EAAQ,KAE5BC,EAAkB,EAAQ,KAE1B95J,EAA6B,EAAQ,KAErC+5J,EAAoB,EAAQ,KAMhC9lK,EAAOC,QAJP,SAA4BwL,GAC1B,OAAOm6J,EAAkBn6J,IAAQo6J,EAAgBp6J,IAAQM,EAA2BN,IAAQq6J,M,gBCT9F,IAAI35J,EAAmB,EAAQ,IAM/BnM,EAAOC,QAJP,SAA4BwL,GAC1B,GAAI5H,MAAMC,QAAQ2H,GAAM,OAAOU,EAAiBV,K,cCClDzL,EAAOC,QAJP,SAA0BmM,GACxB,GAAsB,qBAAXzI,QAA0BA,OAAOC,YAAYhD,OAAOwL,GAAO,OAAOvI,MAAMwI,KAAKD,K,gBCD1F,IAAID,EAAmB,EAAQ,IAW/BnM,EAAOC,QATP,SAAqCyD,EAAGg2F,GACtC,GAAKh2F,EAAL,CACA,GAAiB,kBAANA,EAAgB,OAAOyI,EAAiBzI,EAAGg2F,GACtD,IAAIz1F,EAAIrD,OAAOO,UAAUyE,SAASiB,KAAKnD,GAAGoD,MAAM,GAAI,GAEpD,MADU,WAAN7C,GAAkBP,EAAE/B,cAAasC,EAAIP,EAAE/B,YAAYksB,MAC7C,QAAN5pB,GAAqB,QAANA,EAAoBJ,MAAMwI,KAAKpI,GACxC,cAANA,GAAqB,2CAA2C01F,KAAK11F,GAAWkI,EAAiBzI,EAAGg2F,QAAxG,K,cCJF15F,EAAOC,QAJP,WACE,MAAM,IAAIqB,UAAU,0I,sBCDpB,SAAU8pB,EAAMjgB,EAASw4E,GAanB,IAAU9+E,EAVhB7E,EAAOC,SAUS4E,EAVmB3E,EAAQ,IAAWA,EAAQ,IAAeA,EAAQ,KAAsBA,EAAQ,KAAgBA,EAAQ,IAAiBA,EAAQ,IAAUA,EAAQ,IAAWA,EAAQ,IAAaA,EAAQ,KAAaA,EAAQ,IAAaA,EAAQ,KAAaA,EAAQ,KAAWA,EAAQ,KAAgBA,EAAQ,IAAWA,EAAQ,KAAaA,EAAQ,IAAaA,EAAQ,IAAkBA,EAAQ,KAAeA,EAAQ,KAAeA,EAAQ,KAAuBA,EAAQ,KAAeA,EAAQ,KAAeA,EAAQ,KAAmBA,EAAQ,KAAmBA,EAAQ,KAAmBA,EAAQ,KAAsBA,EAAQ,KAAoBA,EAAQ,KAAiBA,EAAQ,KAAUA,EAAQ,KAAgBA,EAAQ,KAAUA,EAAQ,KAAaA,EAAQ,KAYzwB2E,GAfN,I,iBCAA,SAAUumB,EAAMjgB,GAaV,IAAUtG,EAVhB7E,EAAOC,SAUS4E,EAVmB3E,EAAQ,IAY3C,WAEG,GAA0B,mBAAf2zG,YAAX,CAKA,IAEI/tG,EAFIjB,EACMK,IACQY,UAGlBigK,EAAYjgK,EAAUN,MAGZM,EAAUN,KAAO,SAAUwgK,GAqBrC,GAnBIA,aAAsBnyD,cACtBmyD,EAAa,IAAItyD,WAAWsyD,KAK5BA,aAAsBnnD,WACQ,qBAAtBonD,mBAAqCD,aAAsBC,mBACnED,aAAsBlnD,YACtBknD,aAAsBrnD,aACtBqnD,aAAsBjnD,YACtBinD,aAAsBpnD,aACtBonD,aAAsBhnD,cACtBgnD,aAAsB/mD,gBAEtB+mD,EAAa,IAAItyD,WAAWsyD,EAAWhyD,OAAQgyD,EAAWryD,WAAYqyD,EAAWpyD,aAIjFoyD,aAAsBtyD,WAAY,CAMlC,IAJA,IAAIwyD,EAAuBF,EAAWpyD,WAGlC7tG,EAAQ,GACHzF,EAAI,EAAGA,EAAI4lK,EAAsB5lK,IACtCyF,EAAMzF,IAAM,IAAM0lK,EAAW1lK,IAAO,GAAMA,EAAI,EAAK,EAIvDylK,EAAUl/J,KAAK3E,KAAM6D,EAAOmgK,QAG5BH,EAAUzjK,MAAMJ,KAAMG,aAItBlB,UAAY2E,GAtDvB,GA0DMjB,EAASK,IAAIY,WAzEnB,I,iBCAA,SAAUslB,EAAMjgB,GAaV,IAAUtG,EAVhB7E,EAAOC,SAUS4E,EAVmB3E,EAAQ,IAY3C,WAEG,IAAI8E,EAAIH,EAEJiB,EADQd,EAAEE,IACQY,UAClB0B,EAAQxC,EAAEyC,IAwHd,SAAS0+J,EAAWC,GAChB,OAASA,GAAQ,EAAK,WAAgBA,IAAS,EAAK,SApH1C5+J,EAAM6+J,MAAQ7+J,EAAM8+J,QAAU,CAcxCngK,UAAW,SAAUE,GAOjB,IALA,IAAIN,EAAQM,EAAUN,MAClBC,EAAWK,EAAUL,SAGrBugK,EAAa,GACRjmK,EAAI,EAAGA,EAAI0F,EAAU1F,GAAK,EAAG,CAClC,IAAIkmK,EAAazgK,EAAMzF,IAAM,KAAQ,GAAMA,EAAI,EAAK,EAAM,MAC1DimK,EAAWh/J,KAAKa,OAAOC,aAAam+J,IAGxC,OAAOD,EAAW3+J,KAAK,KAgB3BC,MAAO,SAAU4+J,GAMb,IAJA,IAAIC,EAAiBD,EAASlmK,OAG1BwF,EAAQ,GACHzF,EAAI,EAAGA,EAAIomK,EAAgBpmK,IAChCyF,EAAMzF,IAAM,IAAMmmK,EAASj+J,WAAWlI,IAAO,GAAMA,EAAI,EAAK,GAGhE,OAAOwF,EAAUpE,OAAOqE,EAAwB,EAAjB2gK,KAOvCl/J,EAAMm/J,QAAU,CAcZxgK,UAAW,SAAUE,GAOjB,IALA,IAAIN,EAAQM,EAAUN,MAClBC,EAAWK,EAAUL,SAGrBugK,EAAa,GACRjmK,EAAI,EAAGA,EAAI0F,EAAU1F,GAAK,EAAG,CAClC,IAAIkmK,EAAYL,EAAYpgK,EAAMzF,IAAM,KAAQ,GAAMA,EAAI,EAAK,EAAM,OACrEimK,EAAWh/J,KAAKa,OAAOC,aAAam+J,IAGxC,OAAOD,EAAW3+J,KAAK,KAgB3BC,MAAO,SAAU4+J,GAMb,IAJA,IAAIC,EAAiBD,EAASlmK,OAG1BwF,EAAQ,GACHzF,EAAI,EAAGA,EAAIomK,EAAgBpmK,IAChCyF,EAAMzF,IAAM,IAAM6lK,EAAWM,EAASj+J,WAAWlI,IAAO,GAAMA,EAAI,EAAK,IAG3E,OAAOwF,EAAUpE,OAAOqE,EAAwB,EAAjB2gK,KAzH1C,GAmIM7hK,EAAS4C,IAAI4+J,OAlJnB,I,iBCAA,SAAUj7I,EAAMjgB,EAASw4E,GAanB,IAAU9+E,EAVhB7E,EAAOC,SAUS4E,EAVmB3E,EAAQ,IAAWA,EAAQ,IAY9D,WAEG,IAAI8E,EAAIH,EAEJiB,EADQd,EAAEE,IACQY,UAClBuE,EAASrF,EAAEkG,KACXmyH,EAAShzH,EAAOgzH,OAKhBupC,EAASv8J,EAAOu8J,OAASvpC,EAAOj4H,OAAO,CACvCoF,SAAU,WACNtI,KAAKu1F,MAAQ,IAAI3xF,EAAUN,KAAK,CAC5B,WAAY,UAAY,UAAY,WACpC,WAAY,WAAY,WAAY,cAI5CoF,YAAa,WACT,IAAIkgF,EAAOuyC,EAAOzyH,YAAY/D,KAAK3E,MAInC,OAFA4oF,EAAK9kF,UAAY,EAEV8kF,KAkBf9lF,EAAE4hK,OAASvpC,EAAOxyH,cAAc+7J,GAgBhC5hK,EAAE6hK,WAAaxpC,EAAOryH,kBAAkB47J,GA1D3C,GA8DM/hK,EAAS+hK,QA7Ef,I,iBCAA,SAAUx7I,EAAMjgB,EAASw4E,GAanB,IAAU9+E,EAVhB7E,EAAOC,SAUS4E,EAVmB3E,EAAQ,IAAWA,EAAQ,IAAeA,EAAQ,IAYrF,WAEG,IAAI8E,EAAIH,EACJk1F,EAAQ/0F,EAAEg1F,IACV8jC,EAAU/jC,EAAME,KAChB8jC,EAAehkC,EAAMj0F,UACrBuE,EAASrF,EAAEkG,KACX+yH,EAAS5zH,EAAO4zH,OAKhB6oC,EAASz8J,EAAOy8J,OAAS7oC,EAAO74H,OAAO,CACvCoF,SAAU,WACNtI,KAAKu1F,MAAQ,IAAIsmC,EAAav4H,KAAK,CAC/B,IAAIs4H,EAAQt4H,KAAK,WAAY,YAAa,IAAIs4H,EAAQt4H,KAAK,WAAY,WACvE,IAAIs4H,EAAQt4H,KAAK,WAAY,WAAa,IAAIs4H,EAAQt4H,KAAK,UAAY,YACvE,IAAIs4H,EAAQt4H,KAAK,WAAY,YAAa,IAAIs4H,EAAQt4H,KAAK,WAAY,YACvE,IAAIs4H,EAAQt4H,KAAK,WAAY,YAAa,IAAIs4H,EAAQt4H,KAAK,WAAY,eAI/EoF,YAAa,WACT,IAAIkgF,EAAOmzC,EAAOrzH,YAAY/D,KAAK3E,MAInC,OAFA4oF,EAAK9kF,UAAY,GAEV8kF,KAkBf9lF,EAAE8hK,OAAS7oC,EAAOpzH,cAAci8J,GAgBhC9hK,EAAE+hK,WAAa9oC,EAAOjzH,kBAAkB87J,GA7D3C,GAiEMjiK,EAASiiK,QAhFf,I,iBCAA,SAAU17I,EAAMjgB,EAASw4E,GAanB,IAAU9+E,EAVhB7E,EAAOC,SAUS4E,EAVmB3E,EAAQ,IAAWA,EAAQ,IAY9D,SAAU4E,GAEP,IAAIE,EAAIH,EACJI,EAAQD,EAAEE,IACVY,EAAYb,EAAMa,UAClBwE,EAASrF,EAAMqF,OAEfwzH,EADQ94H,EAAEg1F,IACMC,KAChB5vF,EAASrF,EAAEkG,KAGX87J,EAAc,GACdC,EAAc,GACdC,EAAkB,IAGrB,WAGG,IADA,IAAIp3J,EAAI,EAAGC,EAAI,EACNuI,EAAI,EAAGA,EAAI,GAAIA,IAAK,CACzB0uJ,EAAYl3J,EAAI,EAAIC,IAAOuI,EAAI,IAAMA,EAAI,GAAK,EAAK,GAEnD,IACI6uJ,GAAQ,EAAIr3J,EAAI,EAAIC,GAAK,EAC7BD,EAFWC,EAAI,EAGfA,EAAIo3J,EAIR,IAASr3J,EAAI,EAAGA,EAAI,EAAGA,IACnB,IAASC,EAAI,EAAGA,EAAI,EAAGA,IACnBk3J,EAAWn3J,EAAI,EAAIC,GAAKA,GAAM,EAAID,EAAI,EAAIC,GAAK,EAAK,EAM5D,IADA,IAAIq3J,EAAO,EACF9mK,EAAI,EAAGA,EAAI,GAAIA,IAAK,CAIzB,IAHA,IAAI+mK,EAAmB,EACnBC,EAAmB,EAEd9+I,EAAI,EAAGA,EAAI,EAAGA,IAAK,CACxB,GAAW,EAAP4+I,EAAa,CACb,IAAIG,GAAe,GAAK/+I,GAAK,EACzB++I,EAAc,GACdD,GAAoB,GAAKC,EAEzBF,GAAoB,GAAME,EAAc,GAKrC,IAAPH,EAEAA,EAAQA,GAAQ,EAAK,IAErBA,IAAS,EAIjBF,EAAgB5mK,GAAKw9H,EAAQp8H,OAAO2lK,EAAkBC,IA5C7D,GAiDD,IAAIlpJ,EAAI,IACP,WACG,IAAK,IAAI9d,EAAI,EAAGA,EAAI,GAAIA,IACpB8d,EAAE9d,GAAKw9H,EAAQp8H,SAFtB,GASD,IAAI8lK,EAAOn9J,EAAOm9J,KAAOl9J,EAAOlF,OAAO,CASnCmF,IAAKD,EAAOC,IAAInF,OAAO,CACnBqiK,aAAc,MAGlBj9J,SAAU,WAEN,IADA,IAAIwgF,EAAQ9oF,KAAKwlK,OAAS,GACjBpnK,EAAI,EAAGA,EAAI,GAAIA,IACpB0qF,EAAM1qF,GAAK,IAAIw9H,EAAQt4H,KAG3BtD,KAAKwH,WAAa,KAAO,EAAIxH,KAAKqI,IAAIk9J,cAAgB,IAG1Dv9J,gBAAiB,SAAUyU,EAAG1U,GAM1B,IAJA,IAAI+gF,EAAQ9oF,KAAKwlK,OACbC,EAAkBzlK,KAAKwH,UAAY,EAG9BpJ,EAAI,EAAGA,EAAIqnK,EAAiBrnK,IAAK,CAEtC,IAAIsnK,EAAOjpJ,EAAE1U,EAAS,EAAI3J,GACtBunK,EAAOlpJ,EAAE1U,EAAS,EAAI3J,EAAI,GAG9BsnK,EACoC,UAA7BA,GAAO,EAAOA,IAAQ,IACO,YAA7BA,GAAO,GAAOA,IAAQ,GAE7BC,EACsC,UAA/BA,GAAQ,EAAOA,IAAS,IACO,YAA/BA,GAAQ,GAAOA,IAAS,IAI3BC,EAAO98E,EAAM1qF,IACZ45F,MAAQ2tE,EACbC,EAAK3tE,KAAQytE,EAIjB,IAAK,IAAI31J,EAAQ,EAAGA,EAAQ,GAAIA,IAAS,CAErC,IAAK,IAAInC,EAAI,EAAGA,EAAI,EAAGA,IAAK,CAGxB,IADA,IAAIi4J,EAAO,EAAGC,EAAO,EACZj4J,EAAI,EAAGA,EAAI,EAAGA,IAEnBg4J,IADID,EAAO98E,EAAMl7E,EAAI,EAAIC,IACZmqF,KACb8tE,GAAQF,EAAK3tE,IAIjB,IAAI8tE,EAAK7pJ,EAAEtO,GACXm4J,EAAG/tE,KAAO6tE,EACVE,EAAG9tE,IAAO6tE,EAEd,IAASl4J,EAAI,EAAGA,EAAI,EAAGA,IAEnB,KAAIo4J,EAAM9pJ,GAAGtO,EAAI,GAAK,GAClBq4J,EAAM/pJ,GAAGtO,EAAI,GAAK,GAClBs4J,EAASD,EAAIjuE,KACbmuE,EAASF,EAAIhuE,IAKjB,IAFI4tE,EAAOG,EAAIhuE,MAASkuE,GAAU,EAAMC,IAAW,IAC/CL,EAAOE,EAAI/tE,KAASkuE,GAAU,EAAMD,IAAW,IAC1Cr4J,EAAI,EAAGA,EAAI,EAAGA,KACf+3J,EAAO98E,EAAMl7E,EAAI,EAAIC,IACpBmqF,MAAQ6tE,EACbD,EAAK3tE,KAAQ6tE,EAKrB,IAAK,IAAIM,EAAY,EAAGA,EAAY,GAAIA,IAAa,CAEjD,IACIC,GADAT,EAAO98E,EAAMs9E,IACEpuE,KACfsuE,EAAUV,EAAK3tE,IACfsuE,EAAYzB,EAAYsB,GAGxBG,EAAY,IACRV,EAAQQ,GAAWE,EAAcD,IAAa,GAAKC,EACnDT,EAAQQ,GAAWC,EAAcF,IAAa,GAAKE,IAEnDV,EAAQS,GAAYC,EAAY,GAAQF,IAAa,GAAKE,EAC1DT,EAAQO,GAAYE,EAAY,GAAQD,IAAa,GAAKC,GAIlE,IAAIC,EAAUtqJ,EAAE6oJ,EAAWqB,IAC3BI,EAAQxuE,KAAO6tE,EACfW,EAAQvuE,IAAO6tE,EAInB,IAAIW,EAAKvqJ,EAAE,GACPwqJ,EAAS59E,EAAM,GAKnB,IAJA29E,EAAGzuE,KAAO0uE,EAAO1uE,KACjByuE,EAAGxuE,IAAOyuE,EAAOzuE,IAGRrqF,EAAI,EAAGA,EAAI,EAAGA,IACnB,IAASC,EAAI,EAAGA,EAAI,EAAGA,IAAK,CAExB,IACI+3J,EAAO98E,EADPs9E,EAAYx4J,EAAI,EAAIC,GAEpB84J,EAAQzqJ,EAAEkqJ,GACVQ,EAAU1qJ,GAAItO,EAAI,GAAK,EAAK,EAAIC,GAChCg5J,EAAU3qJ,GAAItO,EAAI,GAAK,EAAK,EAAIC,GAGpC+3J,EAAK5tE,KAAO2uE,EAAM3uE,MAAS4uE,EAAQ5uE,KAAO6uE,EAAQ7uE,KAClD4tE,EAAK3tE,IAAO0uE,EAAM1uE,KAAS2uE,EAAQ3uE,IAAO4uE,EAAQ5uE,IAKtD2tE,EAAO98E,EAAM,GAAjB,IACIg+E,EAAgB9B,EAAgBj1J,GACpC61J,EAAK5tE,MAAQ8uE,EAAc9uE,KAC3B4tE,EAAK3tE,KAAQ6uE,EAAc7uE,MAInCvvF,YAAa,WAET,IAAIvB,EAAOnH,KAAKgH,MACZM,EAAYH,EAAKtD,MAEjBkzF,GADa/2F,KAAKiH,YACU,EAAhBE,EAAKrD,UACjBijK,EAAiC,GAAjB/mK,KAAKwH,UAGzBF,EAAUyvF,IAAc,IAAM,GAAQ,GAAKA,EAAY,GACvDzvF,GAAY1E,EAAK8B,MAAMqyF,EAAY,GAAKgwE,GAAiBA,IAAmB,GAAK,IAAM,IACvF5/J,EAAKrD,SAA8B,EAAnBwD,EAAUjJ,OAG1B2B,KAAKoH,WASL,IANA,IAAI0hF,EAAQ9oF,KAAKwlK,OACbwB,EAAoBhnK,KAAKqI,IAAIk9J,aAAe,EAC5C0B,EAAoBD,EAAoB,EAGxCE,EAAY,GACP9oK,EAAI,EAAGA,EAAI6oK,EAAmB7oK,IAAK,CAExC,IAAIwnK,EAAO98E,EAAM1qF,GACbioK,EAAUT,EAAK5tE,KACfsuE,EAAUV,EAAK3tE,IAGnBouE,EAC4C,UAArCA,GAAW,EAAOA,IAAY,IACO,YAArCA,GAAW,GAAOA,IAAY,GAErCC,EAC4C,UAArCA,GAAW,EAAOA,IAAY,IACO,YAArCA,GAAW,GAAOA,IAAY,GAIrCY,EAAU7hK,KAAKihK,GACfY,EAAU7hK,KAAKghK,GAInB,OAAO,IAAIziK,EAAUN,KAAK4jK,EAAWF,IAGzCrjK,MAAO,WAIH,IAHA,IAAIA,EAAQyE,EAAOzE,MAAMgB,KAAK3E,MAE1B8oF,EAAQnlF,EAAM6hK,OAASxlK,KAAKwlK,OAAO5gK,MAAM,GACpCxG,EAAI,EAAGA,EAAI,GAAIA,IACpB0qF,EAAM1qF,GAAK0qF,EAAM1qF,GAAGuF,QAGxB,OAAOA,KAkBfb,EAAEwiK,KAAOl9J,EAAOO,cAAc28J,GAgB9BxiK,EAAEqkK,SAAW/+J,EAAOU,kBAAkBw8J,GA7SzC,CA8SC1iK,MAGKD,EAAS2iK,MAhUf,I,iBCAA,SAAUp8I,EAAMjgB,GAaV,IAAUtG,EAVhB7E,EAAOC,SAUS4E,EAVmB3E,EAAQ,IAuB3C,SAAU4E,GAEP,IAAIE,EAAIH,EACJI,EAAQD,EAAEE,IACVY,EAAYb,EAAMa,UAClBwE,EAASrF,EAAMqF,OACfD,EAASrF,EAAEkG,KAGXo+J,EAAMxjK,EAAUpE,OAAO,CACvB,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAC3D,EAAI,EAAG,GAAK,EAAG,GAAK,EAAG,GAAK,EAAG,GAAK,EAAI,EAAI,EAAI,EAAG,GAAI,GAAK,EAC5D,EAAG,GAAI,GAAK,EAAI,EAAG,GAAK,EAAI,EAAI,EAAI,EAAI,EAAI,EAAG,GAAI,GAAK,EAAG,GAC3D,EAAI,EAAG,GAAI,GAAK,EAAI,EAAG,GAAK,EAAG,GAAK,EAAI,EAAG,GAAI,GAAK,EAAI,EAAI,EAC5D,EAAI,EAAI,EAAI,EAAI,EAAG,GAAK,EAAG,GAAI,GAAK,EAAI,EAAI,EAAG,GAAK,EAAG,GAAI,KAC3D6nK,EAAMzjK,EAAUpE,OAAO,CACvB,EAAG,GAAK,EAAI,EAAI,EAAI,EAAG,GAAK,EAAG,GAAK,EAAG,GAAK,EAAI,EAAG,GAAK,EAAG,GAC3D,EAAG,GAAK,EAAI,EAAI,EAAG,GAAK,EAAG,GAAI,GAAI,GAAK,EAAG,GAAK,EAAI,EAAI,EAAI,EAC5D,GAAK,EAAI,EAAI,EAAI,EAAG,GAAK,EAAI,EAAG,GAAK,EAAG,GAAK,EAAG,GAAK,EAAI,EAAG,GAC5D,EAAI,EAAI,EAAI,EAAI,EAAG,GAAI,GAAK,EAAI,EAAG,GAAK,EAAG,GAAK,EAAI,EAAG,GAAI,GAC3D,GAAI,GAAI,GAAK,EAAI,EAAI,EAAI,EAAI,EAAI,EAAI,EAAG,GAAI,GAAK,EAAI,EAAI,EAAG,KAC5D8nK,EAAM1jK,EAAUpE,OAAO,CACtB,GAAI,GAAI,GAAI,GAAK,EAAI,EAAI,EAAI,EAAG,GAAI,GAAI,GAAI,GAAK,EAAI,EAAI,EAAI,EAC9D,EAAG,EAAK,EAAG,GAAI,GAAK,EAAI,EAAG,GAAK,EAAG,GAAI,GAAK,EAAG,GAAK,EAAG,GAAI,GAC3D,GAAI,GAAK,EAAI,EAAG,GAAK,EAAG,GAAI,GAAI,GAAK,EAAG,GAAK,EAAI,EAAG,GAAK,EAAI,EAC3D,GAAI,GAAI,GAAI,GAAI,GAAI,GAAK,EAAI,EAAI,EAAG,GAAK,EAAI,EAAI,EAAI,EAAI,EAAG,GAC9D,EAAG,GAAK,EAAG,GAAK,EAAI,EAAG,GAAI,GAAK,EAAG,GAAI,GAAI,GAAI,GAAK,EAAI,EAAI,IAC5D+nK,EAAM3jK,EAAUpE,OAAO,CACvB,EAAI,EAAI,EAAG,GAAI,GAAI,GAAI,GAAK,EAAI,EAAI,EAAI,EAAG,GAAI,GAAI,GAAI,GAAK,EAC5D,EAAG,GAAI,GAAK,EAAG,GAAK,EAAI,EAAG,GAAK,EAAI,EAAG,GAAK,EAAI,EAAG,GAAI,GAAI,GAC3D,EAAI,EAAG,GAAI,GAAK,EAAI,EAAI,EAAG,GAAI,GAAI,GAAK,EAAG,GAAI,GAAI,GAAK,EAAI,EAC5D,GAAK,EAAI,EAAG,GAAI,GAAI,GAAK,EAAG,GAAK,EAAI,EAAG,GAAK,EAAG,GAAK,EAAG,GAAK,EAC7D,EAAI,EAAG,GAAK,EAAG,GAAK,EAAG,GAAK,EAAI,EAAG,GAAK,EAAI,EAAG,GAAI,GAAI,GAAI,KAE3DgoK,EAAO5jK,EAAUpE,OAAO,CAAE,EAAY,WAAY,WAAY,WAAY,aAC1EioK,EAAO7jK,EAAUpE,OAAO,CAAE,WAAY,WAAY,WAAY,WAAY,IAK1EkoK,EAAYv/J,EAAOu/J,UAAYt/J,EAAOlF,OAAO,CAC7CoF,SAAU,WACNtI,KAAKu1F,MAAS3xF,EAAUpE,OAAO,CAAC,WAAY,WAAY,WAAY,UAAY,cAGpFwI,gBAAiB,SAAUyU,EAAG1U,GAG1B,IAAK,IAAI3J,EAAI,EAAGA,EAAI,GAAIA,IAAK,CAEzB,IAAIo3F,EAAWztF,EAAS3J,EACpBq3F,EAAah5E,EAAE+4E,GAGnB/4E,EAAE+4E,GACgD,UAA3CC,GAAc,EAAOA,IAAe,IACO,YAA3CA,GAAc,GAAOA,IAAe,GAI/C,IASIgoC,EAAIE,EAAIE,EAAIE,EAAIt/F,EAChBkpI,EAAIjmB,EAAIkmB,EAAIC,EAAIC,EAQhB1xJ,EAlBAyG,EAAK7c,KAAKu1F,MAAM1xF,MAChBw6H,EAAKmpC,EAAI3jK,MACT+9I,EAAK6lB,EAAI5jK,MACTkkK,EAAKX,EAAIvjK,MACTmkK,EAAKX,EAAIxjK,MACTokK,EAAKX,EAAIzjK,MACTqkK,EAAKX,EAAI1jK,MAab,IAPA8jK,EAAKlqC,EAAK5gH,EAAE,GACZ6kI,EAAK/jB,EAAK9gH,EAAE,GACZ+qJ,EAAK/pC,EAAKhhH,EAAE,GACZgrJ,EAAK9pC,EAAKlhH,EAAE,GACZirJ,EAAKrpI,EAAK5hB,EAAE,GAGHze,EAAI,EAAGA,EAAI,GAAIA,GAAK,EACzBgY,EAAKqnH,EAAMhhH,EAAE1U,EAAOggK,EAAG3pK,IAAK,EAE/BgY,GADOhY,EAAE,GACH+pK,EAAGxqC,EAAGE,EAAGE,GAAMM,EAAG,GACVjgI,EAAE,GACVgqK,EAAGzqC,EAAGE,EAAGE,GAAMM,EAAG,GACVjgI,EAAE,GACViqK,EAAG1qC,EAAGE,EAAGE,GAAMM,EAAG,GACVjgI,EAAE,GACVkqK,EAAG3qC,EAAGE,EAAGE,GAAMM,EAAG,GAElBkqC,EAAG5qC,EAAGE,EAAGE,GAAMM,EAAG,GAIrBjoH,GADAA,EAAKoyJ,EADLpyJ,GAAM,EACM6xJ,EAAG7pK,KACRqgC,EAAI,EACXg/F,EAAKh/F,EACLA,EAAKs/F,EACLA,EAAKyqC,EAAK3qC,EAAI,IACdA,EAAKF,EACLA,EAAKvnH,EAELA,EAAKuxJ,EAAKlrJ,EAAE1U,EAAOigK,EAAG5pK,IAAK,EAE9BgY,GADOhY,EAAE,GACHmqK,EAAG7mB,EAAGkmB,EAAGC,GAAMjmB,EAAG,GACVxjJ,EAAE,GACVkqK,EAAG5mB,EAAGkmB,EAAGC,GAAMjmB,EAAG,GACVxjJ,EAAE,GACViqK,EAAG3mB,EAAGkmB,EAAGC,GAAMjmB,EAAG,GACVxjJ,EAAE,GACVgqK,EAAG1mB,EAAGkmB,EAAGC,GAAMjmB,EAAG,GAElBumB,EAAGzmB,EAAGkmB,EAAGC,GAAMjmB,EAAG,GAIrBxrI,GADAA,EAAKoyJ,EADLpyJ,GAAM,EACM8xJ,EAAG9pK,KACR0pK,EAAI,EACXH,EAAKG,EACLA,EAAKD,EACLA,EAAKW,EAAKZ,EAAI,IACdA,EAAKlmB,EACLA,EAAKtrI,EAGTA,EAAQyG,EAAE,GAAKghH,EAAKgqC,EAAI,EACxBhrJ,EAAE,GAAMA,EAAE,GAAKkhH,EAAK+pC,EAAI,EACxBjrJ,EAAE,GAAMA,EAAE,GAAK4hB,EAAKkpI,EAAI,EACxB9qJ,EAAE,GAAMA,EAAE,GAAK4gH,EAAKikB,EAAI,EACxB7kI,EAAE,GAAMA,EAAE,GAAK8gH,EAAKiqC,EAAI,EACxB/qJ,EAAE,GAAMzG,GAGZ1N,YAAa,WAET,IAAIvB,EAAOnH,KAAKgH,MACZM,EAAYH,EAAKtD,MAEjBizF,EAAgC,EAAnB92F,KAAKiH,YAClB8vF,EAA4B,EAAhB5vF,EAAKrD,SAGrBwD,EAAUyvF,IAAc,IAAM,KAAS,GAAKA,EAAY,GACxDzvF,EAA4C,IAA/ByvF,EAAY,KAAQ,GAAM,IACW,UAA3CD,GAAc,EAAOA,IAAe,IACO,YAA3CA,GAAc,GAAOA,IAAe,GAE3C3vF,EAAKrD,SAAoC,GAAxBwD,EAAUjJ,OAAS,GAGpC2B,KAAKoH,WAOL,IAJA,IAAIwhF,EAAO5oF,KAAKu1F,MACZ14E,EAAI+rE,EAAK/kF,MAGJzF,EAAI,EAAGA,EAAI,EAAGA,IAAK,CAExB,IAAI84F,EAAMr6E,EAAEze,GAGZye,EAAEze,GAAqC,UAA7B84F,GAAO,EAAOA,IAAQ,IACO,YAA7BA,GAAO,GAAOA,IAAQ,GAIpC,OAAOtO,GAGXjlF,MAAO,WACH,IAAIA,EAAQyE,EAAOzE,MAAMgB,KAAK3E,MAG9B,OAFA2D,EAAM4xF,MAAQv1F,KAAKu1F,MAAM5xF,QAElBA,KAKf,SAASwkK,EAAGv6J,EAAGC,EAAGg+C,GACd,OAASj+C,EAAMC,EAAMg+C,EAIzB,SAASu8G,EAAGx6J,EAAGC,EAAGg+C,GACd,OAAUj+C,EAAIC,GAASD,EAAIi+C,EAG/B,SAASw8G,EAAGz6J,EAAGC,EAAGg+C,GACd,OAAUj+C,GAAQC,GAAQg+C,EAG9B,SAASy8G,EAAG16J,EAAGC,EAAGg+C,GACd,OAAUj+C,EAAMi+C,EAAQh+C,GAAMg+C,EAGlC,SAAS08G,EAAG36J,EAAGC,EAAGg+C,GACd,OAASj+C,GAAOC,GAAOg+C,GAI3B,SAAS28G,EAAK56J,EAAE7L,GACZ,OAAQ6L,GAAG7L,EAAM6L,IAAK,GAAG7L,EAkB7Be,EAAE4kK,UAAYt/J,EAAOO,cAAc++J,GAgBnC5kK,EAAE2lK,cAAgBrgK,EAAOU,kBAAkB4+J,GA1O9C,CA2OC9kK,MAGKD,EAAS+kK,WAxQf,I,iBCAA,SAAUx+I,EAAMjgB,EAASw4E,GAanB,IAAU9+E,EAVhB7E,EAAOC,SAUS4E,EAVmB3E,EAAQ,IAAWA,EAAQ,IAAWA,EAAQ,IAYjF,WAEG,IAAI8E,EAAIH,EACJI,EAAQD,EAAEE,IACVC,EAAOF,EAAME,KACbW,EAAYb,EAAMa,UAClBuE,EAASrF,EAAEkG,KACXigG,EAAO9gG,EAAO8gG,KACdlgG,EAAOZ,EAAOY,KAKd2/J,EAASvgK,EAAOugK,OAASzlK,EAAKC,OAAO,CAQrCmF,IAAKpF,EAAKC,OAAO,CACbo/E,QAAS,EACT15E,OAAQqgG,EACRzU,WAAY,IAchBlxF,KAAM,SAAU+E,GACZrI,KAAKqI,IAAMrI,KAAKqI,IAAInF,OAAOmF,IAe/Bq9E,QAAS,SAAUD,EAAUV,GAkBzB,IAhBA,IAAI18E,EAAMrI,KAAKqI,IAGXsgK,EAAO5/J,EAAKvJ,OAAO6I,EAAIO,OAAQ68E,GAG/BgP,EAAa7wF,EAAUpE,SACvBopK,EAAahlK,EAAUpE,OAAO,CAAC,IAG/Bk1F,EAAkBD,EAAW5wF,MAC7BglK,EAAkBD,EAAW/kK,MAC7By+E,EAAUj6E,EAAIi6E,QACdkS,EAAansF,EAAImsF,WAGdE,EAAgBr2F,OAASikF,GAAS,CACrC,IAAImB,EAAQklF,EAAKpgK,OAAOw8E,GAAMt8E,SAASmgK,GACvCD,EAAK5hK,QAQL,IALA,IAAI+hK,EAAarlF,EAAM5/E,MACnBklK,EAAmBD,EAAWzqK,OAG9B2qK,EAAevlF,EACVrlF,EAAI,EAAGA,EAAIo2F,EAAYp2F,IAAK,CACjC4qK,EAAeL,EAAKlgK,SAASugK,GAC7BL,EAAK5hK,QAML,IAHA,IAAIkiK,EAAoBD,EAAanlK,MAG5ByiB,EAAI,EAAGA,EAAIyiJ,EAAkBziJ,IAClCwiJ,EAAWxiJ,IAAM2iJ,EAAkB3iJ,GAI3CmuE,EAAWvwF,OAAOu/E,GAClBolF,EAAgB,KAIpB,OAFAp0E,EAAW3wF,SAAqB,EAAVw+E,EAEfmS,KAqBf3xF,EAAE4lK,OAAS,SAAUjjF,EAAUV,EAAM18E,GACjC,OAAOqgK,EAAOlpK,OAAO6I,GAAKq9E,QAAQD,EAAUV,IA1HnD,GA+HMpiF,EAAS+lK,QA9If,I,iBCAA,SAAUx/I,EAAMjgB,EAASw4E,GAanB,IAAU9+E,EAVhB7E,EAAOC,SAUS4E,EAVmB3E,EAAQ,IAAWA,EAAQ,IAe/D2E,EAASkoB,KAAKq+I,IAAO,WACjB,IAAIA,EAAMvmK,EAASK,IAAIigF,gBAAgB//E,SA+BvC,SAASimK,EAA4BtlK,EAAOkE,EAAQP,EAAWm7E,GAE3D,IAAIO,EAAKljF,KAAKsjF,IAGd,GAAIJ,EAAI,CACJ,IAAIkmF,EAAYlmF,EAAGt+E,MAAM,GAGzB5E,KAAKsjF,SAAMhiF,OAEP8nK,EAAYppK,KAAK0jF,WAEzBf,EAAOiB,aAAawlF,EAAW,GAG/B,IAAK,IAAIhrK,EAAI,EAAGA,EAAIoJ,EAAWpJ,IAC3ByF,EAAMkE,EAAS3J,IAAMgrK,EAAUhrK,GAIvC,OAlDA8qK,EAAI/lF,UAAY+lF,EAAIhmK,OAAO,CACvBygF,aAAc,SAAU9/E,EAAOkE,GAE3B,IAAI46E,EAAS3iF,KAAKqjF,QACd77E,EAAYm7E,EAAOn7E,UAEvB2hK,EAA4BxkK,KAAK3E,KAAM6D,EAAOkE,EAAQP,EAAWm7E,GAGjE3iF,KAAK0jF,WAAa7/E,EAAMe,MAAMmD,EAAQA,EAASP,MAIvD0hK,EAAI9lF,UAAY8lF,EAAIhmK,OAAO,CACvBygF,aAAc,SAAU9/E,EAAOkE,GAE3B,IAAI46E,EAAS3iF,KAAKqjF,QACd77E,EAAYm7E,EAAOn7E,UAGnBq8E,EAAYhgF,EAAMe,MAAMmD,EAAQA,EAASP,GAE7C2hK,EAA4BxkK,KAAK3E,KAAM6D,EAAOkE,EAAQP,EAAWm7E,GAGjE3iF,KAAK0jF,WAAaG,KAyBnBqlF,EArDU,GAyDdvmK,EAASkoB,KAAKq+I,KA3EpB,I,iBCAA,SAAUhgJ,EAAMjgB,EAASw4E,GAanB,IAAU9+E,EAVhB7E,EAAOC,SAUS4E,EAVmB3E,EAAQ,IAAWA,EAAQ,IAe/D2E,EAASkoB,KAAKw+I,IAAO,WACjB,IAAIA,EAAM1mK,EAASK,IAAIigF,gBAAgB//E,SAEnCigF,EAAYkmF,EAAIlmF,UAAYkmF,EAAInmK,OAAO,CACvCygF,aAAc,SAAU9/E,EAAOkE,GAE3B,IAAI46E,EAAS3iF,KAAKqjF,QACd77E,EAAYm7E,EAAOn7E,UACnB07E,EAAKljF,KAAKsjF,IACVgmF,EAAUtpK,KAAKupK,SAGfrmF,IACAomF,EAAUtpK,KAAKupK,SAAWrmF,EAAGt+E,MAAM,GAGnC5E,KAAKsjF,SAAMhiF,GAEf,IAAI8nK,EAAYE,EAAQ1kK,MAAM,GAC9B+9E,EAAOiB,aAAawlF,EAAW,GAG/BE,EAAQ9hK,EAAY,GAAM8hK,EAAQ9hK,EAAY,GAAK,EAAK,EAGxD,IAAK,IAAIpJ,EAAI,EAAGA,EAAIoJ,EAAWpJ,IAC3ByF,EAAMkE,EAAS3J,IAAMgrK,EAAUhrK,MAO3C,OAFAirK,EAAIjmF,UAAYD,EAETkmF,EAjCU,GAqCd1mK,EAASkoB,KAAKw+I,KAvDpB,I,iBCAA,SAAUngJ,EAAMjgB,EAASw4E,GAanB,IAAU9+E,EAVhB7E,EAAOC,SAUS4E,EAVmB3E,EAAQ,IAAWA,EAAQ,IAiB/D2E,EAASkoB,KAAK2+I,WAAc,WACxB,IAAIA,EAAa7mK,EAASK,IAAIigF,gBAAgB//E,SAEjD,SAASumK,EAAQvF,GAEhB,GAA8B,OAAxBA,GAAQ,GAAM,KAAgB,CACpC,IAAIwF,EAAMxF,GAAQ,GAAI,IAClByF,EAAMzF,GAAQ,EAAG,IACjB0F,EAAY,IAAP1F,EAEE,MAAPwF,GAEJA,EAAK,EACM,MAAPC,GAEHA,EAAK,EACM,MAAPC,EAEHA,EAAK,IAIHA,KAKDD,KAKDD,EAGFxF,EAAO,EACPA,GAASwF,GAAM,GACfxF,GAASyF,GAAM,EACfzF,GAAQ0F,OAIR1F,GAAS,GAAQ,GAEjB,OAAOA,EAaL,IAAI/gF,EAAYqmF,EAAWrmF,UAAYqmF,EAAWtmK,OAAO,CACrDygF,aAAc,SAAU9/E,EAAOkE,GAE3B,IAAI46E,EAAS3iF,KAAKqjF,QACd77E,EAAYm7E,EAAOn7E,UACnB07E,EAAKljF,KAAKsjF,IACVgmF,EAAUtpK,KAAKupK,SAGfrmF,IACAomF,EAAUtpK,KAAKupK,SAAWrmF,EAAGt+E,MAAM,GAGnC5E,KAAKsjF,SAAMhiF,GAvB1B,SAAoBgoK,GAEwB,KAAtCA,EAAQ,GAAKG,EAAQH,EAAQ,OAGjCA,EAAQ,GAAKG,EAAQH,EAAQ,KAqB7BO,CAAWP,GAEX,IAAIF,EAAYE,EAAQ1kK,MAAM,GACrB+9E,EAAOiB,aAAawlF,EAAW,GAG/B,IAAK,IAAIhrK,EAAI,EAAGA,EAAIoJ,EAAWpJ,IAC3ByF,EAAMkE,EAAS3J,IAAMgrK,EAAUhrK,MAO3C,OAFAorK,EAAWpmF,UAAYD,EAEhBqmF,EAvFiB,GA6FrB7mK,EAASkoB,KAAK2+I,YAjHpB,I,iBCAA,SAAUtgJ,EAAMjgB,EAASw4E,GAanB,IAAU9+E,EAVhB7E,EAAOC,SAUS4E,EAVmB3E,EAAQ,IAAWA,EAAQ,IAe/D2E,EAASkoB,KAAKi/I,IAAO,WACjB,IAAIA,EAAMnnK,EAASK,IAAIigF,gBAAgB//E,SAEnCigF,EAAY2mF,EAAI3mF,UAAY2mF,EAAI5mK,OAAO,CACvCygF,aAAc,SAAU9/E,EAAOkE,GAE3B,IAAI46E,EAAS3iF,KAAKqjF,QACd77E,EAAYm7E,EAAOn7E,UACnB07E,EAAKljF,KAAKsjF,IACV8lF,EAAYppK,KAAK+pK,WAGjB7mF,IACAkmF,EAAYppK,KAAK+pK,WAAa7mF,EAAGt+E,MAAM,GAGvC5E,KAAKsjF,SAAMhiF,GAEfqhF,EAAOiB,aAAawlF,EAAW,GAG/B,IAAK,IAAIhrK,EAAI,EAAGA,EAAIoJ,EAAWpJ,IAC3ByF,EAAMkE,EAAS3J,IAAMgrK,EAAUhrK,MAO3C,OAFA0rK,EAAI1mF,UAAYD,EAET2mF,EA7BU,GAiCdnnK,EAASkoB,KAAKi/I,KAnDpB,I,iBCAA,SAAU5gJ,EAAMjgB,EAASw4E,GAanB,IAAU9+E,EAVhB7E,EAAOC,SAUS4E,EAVmB3E,EAAQ,IAAWA,EAAQ,IAe/D2E,EAASkoB,KAAKm/I,IAAO,WACjB,IAAIA,EAAMrnK,EAASK,IAAIigF,gBAAgB//E,SAcvC,OAZA8mK,EAAI7mF,UAAY6mF,EAAI9mK,OAAO,CACvBygF,aAAc,SAAU9/E,EAAOkE,GAC3B/H,KAAKqjF,QAAQO,aAAa//E,EAAOkE,MAIzCiiK,EAAI5mF,UAAY4mF,EAAI9mK,OAAO,CACvBygF,aAAc,SAAU9/E,EAAOkE,GAC3B/H,KAAKqjF,QAAQS,aAAajgF,EAAOkE,MAIlCiiK,EAfU,GAmBdrnK,EAASkoB,KAAKm/I,KArCpB,I,iBCAA,SAAU9gJ,EAAMjgB,EAASw4E,GAanB,IAAU9+E,EAVhB7E,EAAOC,SAUS4E,EAVmB3E,EAAQ,IAAWA,EAAQ,IAe/D2E,EAASqhF,IAAIimF,SAAW,CACpBjmF,IAAK,SAAU78E,EAAMK,GAEjB,IAAID,EAAeJ,EAAKrD,SACpBmgF,EAA6B,EAAZz8E,EAGjB08E,EAAgBD,EAAiB18E,EAAe08E,EAGhDimF,EAAc3iK,EAAe28E,EAAgB,EAGjD/8E,EAAK3C,QACL2C,EAAKtD,MAAMqmK,IAAgB,IAAMhmF,GAAkB,GAAMgmF,EAAc,EAAK,EAC5E/iK,EAAKrD,UAAYogF,GAGrBG,MAAO,SAAUl9E,GAEb,IAAI+8E,EAAwD,IAAxC/8E,EAAKtD,MAAOsD,EAAKrD,SAAW,IAAO,GAGvDqD,EAAKrD,UAAYogF,IAKlBvhF,EAASqhF,IAAImmF,UA9CnB,I,iBCAA,SAAUjhJ,EAAMjgB,EAASw4E,GAanB,IAAU9+E,EAVhB7E,EAAOC,SAUS4E,EAVmB3E,EAAQ,IAAWA,EAAQ,IAe/D2E,EAASqhF,IAAIomF,SAAW,CACpBpmF,IAAK,SAAU78E,EAAMK,GAEjB,IAAIy8E,EAA6B,EAAZz8E,EAGjB08E,EAAgBD,EAAiB98E,EAAKrD,SAAWmgF,EAGrD98E,EAAKjD,OAAOvB,EAASK,IAAIY,UAAUiB,OAAOq/E,EAAgB,IACrDhgF,OAAOvB,EAASK,IAAIY,UAAUpE,OAAO,CAAC0kF,GAAiB,IAAK,KAGrEG,MAAO,SAAUl9E,GAEb,IAAI+8E,EAAwD,IAAxC/8E,EAAKtD,MAAOsD,EAAKrD,SAAW,IAAO,GAGvDqD,EAAKrD,UAAYogF,IAKlBvhF,EAASqhF,IAAIomF,UAzCnB,I,iBCAA,SAAUlhJ,EAAMjgB,EAASw4E,GAanB,IAAU9+E,EAVhB7E,EAAOC,SAUS4E,EAVmB3E,EAAQ,IAAWA,EAAQ,IAe/D2E,EAASqhF,IAAIqmF,SAAW,CACpBrmF,IAAK,SAAU78E,EAAMK,GAEjBL,EAAKjD,OAAOvB,EAASK,IAAIY,UAAUpE,OAAO,CAAC,YAAa,IAGxDmD,EAASqhF,IAAIsmF,YAAYtmF,IAAI78E,EAAMK,IAGvC68E,MAAO,SAAUl9E,GAEbxE,EAASqhF,IAAIsmF,YAAYjmF,MAAMl9E,GAG/BA,EAAKrD,aAKNnB,EAASqhF,IAAIqmF,UArCnB,I,iBCAA,SAAUnhJ,EAAMjgB,EAASw4E,GAanB,IAAU9+E,EAVhB7E,EAAOC,SAUS4E,EAVmB3E,EAAQ,IAAWA,EAAQ,IAe/D2E,EAASqhF,IAAIsmF,YAAc,CACvBtmF,IAAK,SAAU78E,EAAMK,GAEjB,IAAIy8E,EAA6B,EAAZz8E,EAGrBL,EAAK3C,QACL2C,EAAKrD,UAAYmgF,GAAmB98E,EAAKrD,SAAWmgF,GAAmBA,IAG3EI,MAAO,SAAUl9E,GAMb,IAJA,IAAIG,EAAYH,EAAKtD,MAGjBzF,EAAI+I,EAAKrD,SAAW,IACdwD,EAAUlJ,IAAM,KAAQ,GAAMA,EAAI,EAAK,EAAM,MACnDA,IAEJ+I,EAAKrD,SAAW1F,EAAI,IAKrBuE,EAASqhF,IAAIsmF,aA1CnB,I,iBCAA,SAAUphJ,EAAMjgB,EAASw4E,GAanB,IAAU9+E,EAVhB7E,EAAOC,SAUS4E,EAVmB3E,EAAQ,IAAWA,EAAQ,IAe/D2E,EAASqhF,IAAIumF,UAAY,CACrBvmF,IAAK,aAGLK,MAAO,cAKJ1hF,EAASqhF,IAAIumF,WA3BnB,I,iBCAA,SAAUrhJ,EAAMjgB,EAASw4E,GAanB,IAAU9+E,EAVhB7E,EAAOC,SAUS4E,EAVmB3E,EAAQ,IAAWA,EAAQ,IAY9D,SAAUsD,GAEP,IAAIwB,EAAIH,EAEJ2hF,EADQxhF,EAAEE,IACWshF,aAErBtgF,EADQlB,EAAEyC,IACEvB,IACDlB,EAAE88B,OAEW57B,IAAM,CAc9BC,UAAW,SAAU2gF,GACjB,OAAOA,EAAa9B,WAAWp/E,SAASM,IAgB5C2B,MAAO,SAAU0hB,GACb,IAAIy7D,EAAa9+E,EAAI2B,MAAM0hB,GAC3B,OAAOi9D,EAAa9kF,OAAO,CAAEsjF,WAAYA,MA1CpD,GAgDMngF,EAASi9B,OAAO57B,KA/DtB,I,iBCAA,SAAUklB,EAAMjgB,EAASw4E,GAanB,IAAU9+E,EAVhB7E,EAAOC,SAUS4E,EAVmB3E,EAAQ,IAAWA,EAAQ,IAAiBA,EAAQ,IAAUA,EAAQ,IAAaA,EAAQ,IAY9H,WAEG,IAAI8E,EAAIH,EAEJ4hF,EADQzhF,EAAEE,IACUuhF,YACpBp8E,EAASrF,EAAEkG,KAGXwhK,EAAO,GACPC,EAAW,GACXC,EAAY,GACZC,EAAY,GACZC,EAAY,GACZC,EAAY,GACZC,EAAgB,GAChBC,EAAgB,GAChBC,EAAgB,GAChBC,EAAgB,IAGnB,WAGG,IADA,IAAIxyJ,EAAI,GACCra,EAAI,EAAGA,EAAI,IAAKA,IAEjBqa,EAAEra,GADFA,EAAI,IACGA,GAAK,EAEJA,GAAK,EAAK,IAK1B,IAAIwP,EAAI,EACJ+kJ,EAAK,EACT,IAASv0J,EAAI,EAAGA,EAAI,IAAKA,IAAK,CAE1B,IAAI8sK,EAAKvY,EAAMA,GAAM,EAAMA,GAAM,EAAMA,GAAM,EAAMA,GAAM,EACzDuY,EAAMA,IAAO,EAAW,IAALA,EAAa,GAChCV,EAAK58J,GAAKs9J,EACVT,EAASS,GAAMt9J,EAGf,IAAIw7C,EAAK3wC,EAAE7K,GACPu9J,EAAK1yJ,EAAE2wC,GACPgiH,EAAK3yJ,EAAE0yJ,GAGP/0J,EAAa,IAARqC,EAAEyyJ,GAAqB,SAALA,EAC3BR,EAAU98J,GAAMwI,GAAK,GAAOA,IAAM,EAClCu0J,EAAU/8J,GAAMwI,GAAK,GAAOA,IAAM,GAClCw0J,EAAUh9J,GAAMwI,GAAK,EAAOA,IAAM,GAClCy0J,EAAUj9J,GAAKwI,EAGXA,EAAU,SAALg1J,EAAwB,MAALD,EAAsB,IAAL/hH,EAAmB,SAAJx7C,EAC5Dk9J,EAAcI,GAAO90J,GAAK,GAAOA,IAAM,EACvC20J,EAAcG,GAAO90J,GAAK,GAAOA,IAAM,GACvC40J,EAAcE,GAAO90J,GAAK,EAAOA,IAAM,GACvC60J,EAAcC,GAAM90J,EAGfxI,GAGDA,EAAIw7C,EAAK3wC,EAAEA,EAAEA,EAAE2yJ,EAAKhiH,KACpBupG,GAAMl6I,EAAEA,EAAEk6I,KAHV/kJ,EAAI+kJ,EAAK,GA1CpB,GAmDD,IAAI0Y,EAAO,CAAC,EAAM,EAAM,EAAM,EAAM,EAAM,GAAM,GAAM,GAAM,IAAM,GAAM,IAKpEC,EAAMnjK,EAAOmjK,IAAM/mF,EAAYrhF,OAAO,CACtCoF,SAAU,WAEN,IAAItI,KAAKurK,UAAYvrK,KAAKwrK,iBAAmBxrK,KAAKmiF,KAAlD,CAiBA,IAZA,IAAIvjF,EAAMoB,KAAKwrK,eAAiBxrK,KAAKmiF,KACjCspF,EAAW7sK,EAAIiF,MACfy+E,EAAU1jF,EAAIkF,SAAW,EAMzB4nK,EAAyB,IAHf1rK,KAAKurK,SAAWjpF,EAAU,GAGhB,GAGpBqpF,EAAc3rK,KAAK4rK,aAAe,GAC7BC,EAAQ,EAAGA,EAAQH,EAAQG,IAChC,GAAIA,EAAQvpF,EACRqpF,EAAYE,GAASJ,EAASI,OAC3B,CACH,IAAIz1J,EAAIu1J,EAAYE,EAAQ,GAEtBA,EAAQvpF,EASHA,EAAU,GAAKupF,EAAQvpF,GAAW,IAEzClsE,EAAKo0J,EAAKp0J,IAAM,KAAO,GAAOo0J,EAAMp0J,IAAM,GAAM,MAAS,GAAOo0J,EAAMp0J,IAAM,EAAK,MAAS,EAAKo0J,EAAS,IAAJp0J,KANpGA,EAAKo0J,GAHLp0J,EAAKA,GAAK,EAAMA,IAAM,MAGN,KAAO,GAAOo0J,EAAMp0J,IAAM,GAAM,MAAS,GAAOo0J,EAAMp0J,IAAM,EAAK,MAAS,EAAKo0J,EAAS,IAAJp0J,GAGpGA,GAAKi1J,EAAMQ,EAAQvpF,EAAW,IAAM,IAMxCqpF,EAAYE,GAASF,EAAYE,EAAQvpF,GAAWlsE,EAM5D,IADA,IAAI01J,EAAiB9rK,KAAK+rK,gBAAkB,GACnCC,EAAW,EAAGA,EAAWN,EAAQM,IAClCH,EAAQH,EAASM,EAGb51J,EADJ41J,EAAW,EACHL,EAAYE,GAEZF,EAAYE,EAAQ,GAI5BC,EAAeE,GADfA,EAAW,GAAKH,GAAS,EACEz1J,EAEA00J,EAAcN,EAAKp0J,IAAM,KAAO20J,EAAcP,EAAMp0J,IAAM,GAAM,MAChE40J,EAAcR,EAAMp0J,IAAM,EAAK,MAAS60J,EAAcT,EAAS,IAAJp0J,MAKlGwtE,aAAc,SAAUnnE,EAAG1U,GACvB/H,KAAKisK,cAAcxvJ,EAAG1U,EAAQ/H,KAAK4rK,aAAclB,EAAWC,EAAWC,EAAWC,EAAWL,IAGjG1mF,aAAc,SAAUrnE,EAAG1U,GAEvB,IAAIqO,EAAIqG,EAAE1U,EAAS,GACnB0U,EAAE1U,EAAS,GAAK0U,EAAE1U,EAAS,GAC3B0U,EAAE1U,EAAS,GAAKqO,EAEhBpW,KAAKisK,cAAcxvJ,EAAG1U,EAAQ/H,KAAK+rK,gBAAiBjB,EAAeC,EAAeC,EAAeC,EAAeR,GAG5Gr0J,EAAIqG,EAAE1U,EAAS,GACnB0U,EAAE1U,EAAS,GAAK0U,EAAE1U,EAAS,GAC3B0U,EAAE1U,EAAS,GAAKqO,GAGpB61J,cAAe,SAAUxvJ,EAAG1U,EAAQ4jK,EAAajB,EAAWC,EAAWC,EAAWC,EAAWL,GAczF,IAZA,IAAI0B,EAAUlsK,KAAKurK,SAGfY,EAAK1vJ,EAAE1U,GAAc4jK,EAAY,GACjCS,EAAK3vJ,EAAE1U,EAAS,GAAK4jK,EAAY,GACjCU,EAAK5vJ,EAAE1U,EAAS,GAAK4jK,EAAY,GACjCW,EAAK7vJ,EAAE1U,EAAS,GAAK4jK,EAAY,GAGjCE,EAAQ,EAGH97J,EAAQ,EAAGA,EAAQm8J,EAASn8J,IAAS,CAE1C,IAAIw8J,EAAK7B,EAAUyB,IAAO,IAAMxB,EAAWyB,IAAO,GAAM,KAAQxB,EAAWyB,IAAO,EAAK,KAAQxB,EAAe,IAALyB,GAAaX,EAAYE,KAC9HnwC,EAAKgvC,EAAU0B,IAAO,IAAMzB,EAAW0B,IAAO,GAAM,KAAQzB,EAAW0B,IAAO,EAAK,KAAQzB,EAAe,IAALsB,GAAaR,EAAYE,KAC9HW,EAAK9B,EAAU2B,IAAO,IAAM1B,EAAW2B,IAAO,GAAM,KAAQ1B,EAAWuB,IAAO,EAAK,KAAQtB,EAAe,IAALuB,GAAaT,EAAYE,KAC9HY,EAAK/B,EAAU4B,IAAO,IAAM3B,EAAWwB,IAAO,GAAM,KAAQvB,EAAWwB,IAAO,EAAK,KAAQvB,EAAe,IAALwB,GAAaV,EAAYE,KAGlIM,EAAKI,EACLH,EAAK1wC,EACL2wC,EAAKG,EACLF,EAAKG,EAILF,GAAO/B,EAAK2B,IAAO,KAAO,GAAO3B,EAAM4B,IAAO,GAAM,MAAS,GAAO5B,EAAM6B,IAAO,EAAK,MAAS,EAAK7B,EAAU,IAAL8B,IAAcX,EAAYE,KACnInwC,GAAO8uC,EAAK4B,IAAO,KAAO,GAAO5B,EAAM6B,IAAO,GAAM,MAAS,GAAO7B,EAAM8B,IAAO,EAAK,MAAS,EAAK9B,EAAU,IAAL2B,IAAcR,EAAYE,KACnIW,GAAOhC,EAAK6B,IAAO,KAAO,GAAO7B,EAAM8B,IAAO,GAAM,MAAS,GAAO9B,EAAM2B,IAAO,EAAK,MAAS,EAAK3B,EAAU,IAAL4B,IAAcT,EAAYE,KACnIY,GAAOjC,EAAK8B,IAAO,KAAO,GAAO9B,EAAM2B,IAAO,GAAM,MAAS,GAAO3B,EAAM4B,IAAO,EAAK,MAAS,EAAK5B,EAAU,IAAL6B,IAAcV,EAAYE,KAGvIpvJ,EAAE1U,GAAcwkK,EAChB9vJ,EAAE1U,EAAS,GAAK2zH,EAChBj/G,EAAE1U,EAAS,GAAKykK,EAChB/vJ,EAAE1U,EAAS,GAAK0kK,GAGpBnqF,QAAS,IAWbx/E,EAAEwoK,IAAM/mF,EAAY57E,cAAc2iK,GAlNrC,GAsNM3oK,EAAS2oK,KArOf,I,iBCAA,SAAUpiJ,EAAMjgB,EAASw4E,GAanB,IAAU9+E,EAVhB7E,EAAOC,SAUS4E,EAVmB3E,EAAQ,IAAWA,EAAQ,IAAiBA,EAAQ,IAAUA,EAAQ,IAAaA,EAAQ,IAY9H,WAEG,IAAI8E,EAAIH,EACJI,EAAQD,EAAEE,IACVY,EAAYb,EAAMa,UAClB2gF,EAAcxhF,EAAMwhF,YACpBp8E,EAASrF,EAAEkG,KAGX0jK,EAAM,CACN,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAI,EAC5B,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAC5B,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAC5B,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5B,GAAI,GAAI,GAAI,EAAI,GAAI,GAAI,GAAI,GAC5B,GAAI,GAAI,GAAI,EAAI,GAAI,GAAI,GAAI,GAC5B,GAAI,GAAI,GAAI,EAAI,GAAI,GAAI,GAAI,GAI5BC,EAAM,CACN,GAAI,GAAI,GAAI,GAAI,EAAI,EACpB,EAAI,GAAI,GAAI,EAAI,GAAI,GACpB,GAAI,GAAI,GAAI,EAAI,GAAI,EACpB,GAAI,EAAI,GAAI,GAAI,GAAI,EACpB,GAAI,GAAI,GAAI,GAAI,GAAI,GACpB,GAAI,GAAI,GAAI,GAAI,GAAI,GACpB,GAAI,GAAI,GAAI,GAAI,GAAI,GACpB,GAAI,GAAI,GAAI,GAAI,GAAI,IAIpBC,EAAa,CAAC,EAAI,EAAI,EAAI,EAAI,EAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAG1EC,EAAS,CACT,CACI1zJ,EAAK,QACL,UAAY,MACZ,UAAY,QACZ,UAAY,EACZ,WAAY,IACZ,WAAY,QACZ,WAAY,QACZ,WAAY,QACZ,WAAY,IACZ,WAAY,QACZ,WAAY,MACZ,WAAY,QACZ,WAAY,MACZ,WAAY,QACZ,WAAY,EACZ,WAAY,MACZ,UAAW,EACX,UAAY,QACZ,UAAY,MACZ,UAAY,MACZ,WAAY,QACZ,WAAY,IACZ,WAAY,QACZ,WAAY,EACZ,WAAY,QACZ,WAAY,MACZ,WAAY,QACZ,WAAY,QACZ,WAAY,QACZ,WAAY,MACZ,WAAY,IACZ,WAAY,QACZ,EAAK,MACL,UAAY,EACZ,UAAY,QACZ,UAAY,QACZ,WAAY,QACZ,WAAY,MACZ,WAAY,IACZ,WAAY,QACZ,WAAY,QACZ,WAAY,QACZ,WAAY,QACZ,WAAY,MACZ,WAAY,IACZ,WAAY,QACZ,WAAY,MACZ,WAAY,EACZ,UAAW,QACX,UAAY,QACZ,UAAY,QACZ,UAAY,IACZ,WAAY,MACZ,WAAY,QACZ,WAAY,EACZ,WAAY,MACZ,WAAY,MACZ,WAAY,QACZ,WAAY,IACZ,WAAY,QACZ,WAAY,QACZ,WAAY,EACZ,WAAY,MACZ,WAAY,SAEhB,CACIA,EAAK,WACL,SAAW,MACX,SAAW,OACX,SAAW,WACX,SAAW,WACX,SAAW,WACX,UAAW,WACX,UAAW,GACX,UAAW,OACX,UAAW,WACX,UAAW,WACX,UAAW,OACX,UAAW,OACX,UAAW,EACX,UAAW,MACX,UAAW,WACX,QAAU,WACV,SAAW,OACX,SAAW,GACX,SAAW,WACX,SAAW,WACX,SAAW,WACX,UAAW,OACX,UAAW,WACX,UAAW,OACX,UAAW,EACX,UAAW,MACX,UAAW,WACX,UAAW,WACX,UAAW,OACX,UAAW,WACX,UAAW,MACX,UAAY,EACZ,UAAY,WACZ,UAAY,WACZ,UAAY,WACZ,UAAY,WACZ,UAAY,GACZ,UAAY,OACZ,UAAY,MACZ,UAAY,MACZ,UAAY,OACZ,UAAY,OACZ,UAAY,WACZ,UAAY,OACZ,UAAY,WACZ,UAAY,WACZ,UAAY,WACZ,UAAY,OACZ,UAAY,OACZ,UAAY,WACZ,UAAY,MACZ,UAAY,WACZ,UAAY,WACZ,UAAY,GACZ,UAAY,WACZ,UAAY,WACZ,UAAY,WACZ,UAAY,WACZ,UAAY,OACZ,UAAY,EACZ,UAAY,MACZ,UAAY,WACZ,UAAY,QAEhB,CACIA,EAAK,IACL,QAAU,EACV,QAAU,SACV,QAAU,MACV,QAAU,MACV,QAAU,SACV,QAAU,SACV,QAAU,SACV,QAAU,SACV,QAAU,SACV,SAAU,MACV,SAAU,SACV,SAAU,SACV,SAAU,MACV,SAAU,EACV,SAAU,IACV,OAAS,SACT,QAAU,SACV,QAAU,EACV,QAAU,SACV,QAAU,SACV,QAAU,MACV,QAAU,MACV,QAAU,IACV,QAAU,EACV,QAAU,IACV,SAAU,SACV,SAAU,MACV,SAAU,MACV,SAAU,SACV,SAAU,SACV,SAAU,SACV,SAAW,SACX,SAAW,MACX,SAAW,MACX,SAAW,SACX,SAAW,IACX,SAAW,SACX,SAAW,SACX,SAAW,EACX,SAAW,SACX,SAAW,SACX,SAAW,EACX,SAAW,MACX,SAAW,SACX,SAAW,IACX,SAAW,MACX,SAAW,SACX,SAAW,SACX,SAAW,IACX,SAAW,SACX,SAAW,EACX,SAAW,MACX,SAAW,SACX,SAAW,IACX,SAAW,SACX,SAAW,MACX,SAAW,SACX,SAAW,MACX,SAAW,SACX,SAAW,SACX,SAAW,SACX,SAAW,EACX,SAAW,OAEf,CACIA,EAAK,WACL,MAAS,WACT,OAAS,QACT,OAAS,WACT,OAAS,EACT,OAAS,QACT,OAAS,WACT,OAAS,QACT,OAAS,WACT,OAAS,QACT,OAAS,GACT,OAAS,WACT,OAAS,WACT,OAAS,KACT,OAAS,KACT,OAAS,WACT,MAAQ,WACR,MAAS,GACT,OAAS,WACT,OAAS,WACT,OAAS,QACT,OAAS,WACT,OAAS,EACT,OAAS,WACT,OAAS,KACT,OAAS,WACT,OAAS,QACT,OAAS,KACT,OAAS,WACT,OAAS,QACT,OAAS,QACT,QAAS,WACT,QAAU,QACV,QAAU,QACV,QAAU,WACV,QAAU,EACV,QAAU,KACV,QAAU,WACV,QAAU,WACV,QAAU,WACV,QAAU,WACV,QAAU,WACV,QAAU,WACV,QAAU,QACV,QAAU,WACV,QAAU,QACV,QAAU,GACV,QAAU,KACV,QAAU,WACV,QAAU,WACV,QAAU,EACV,QAAU,QACV,QAAU,QACV,QAAU,WACV,QAAU,WACV,QAAU,GACV,QAAU,WACV,QAAU,KACV,QAAU,WACV,QAAU,WACV,QAAU,KACV,QAAU,WACV,QAAU,QACV,QAAU,SAEd,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","file":"static/js/2.42740c8b.chunk.js","sourcesContent":["'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","function _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, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\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}","module.exports = require(\"regenerator-runtime\");\n","import setPrototypeOf from \"./setPrototypeOf\";\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\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","import getPrototypeOf from \"./getPrototypeOf\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn\";\nexport default function _createSuper(Derived) {\n return function () {\n var Super = getPrototypeOf(Derived),\n result;\n\n if (isNativeReflectConstruct()) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return possibleConstructorReturn(this, result);\n };\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\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\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\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","import unsupportedIterableToArray from \"./unsupportedIterableToArray\";\nexport default function _createForOfIteratorHelper(o) {\n if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) {\n if (Array.isArray(o) || (o = unsupportedIterableToArray(o))) {\n var i = 0;\n\n var F = function F() {};\n\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\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\n var it,\n normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = o[Symbol.iterator]();\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}","/**\n * Copyright (c) 2013-present, Facebook, Inc.\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\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","export default function _defineProperty(obj, key, value) {\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\n return obj;\n}",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory();\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\troot.CryptoJS = factory();\n\t}\n}(this, function () {\n\n\t/**\n\t * CryptoJS core components.\n\t */\n\tvar CryptoJS = CryptoJS || (function (Math, undefined) {\n\t /*\n\t * Local polyfil of Object.create\n\t */\n\t var create = Object.create || (function () {\n\t function F() {};\n\n\t return function (obj) {\n\t var subtype;\n\n\t F.prototype = obj;\n\n\t subtype = new F();\n\n\t F.prototype = null;\n\n\t return subtype;\n\t };\n\t }())\n\n\t /**\n\t * CryptoJS namespace.\n\t */\n\t var C = {};\n\n\t /**\n\t * Library namespace.\n\t */\n\t var C_lib = C.lib = {};\n\n\t /**\n\t * Base object for prototypal inheritance.\n\t */\n\t var Base = C_lib.Base = (function () {\n\n\n\t return {\n\t /**\n\t * Creates a new object that inherits from this object.\n\t *\n\t * @param {Object} overrides Properties to copy into the new object.\n\t *\n\t * @return {Object} The new object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var MyType = CryptoJS.lib.Base.extend({\n\t * field: 'value',\n\t *\n\t * method: function () {\n\t * }\n\t * });\n\t */\n\t extend: function (overrides) {\n\t // Spawn\n\t var subtype = create(this);\n\n\t // Augment\n\t if (overrides) {\n\t subtype.mixIn(overrides);\n\t }\n\n\t // Create default initializer\n\t if (!subtype.hasOwnProperty('init') || this.init === subtype.init) {\n\t subtype.init = function () {\n\t subtype.$super.init.apply(this, arguments);\n\t };\n\t }\n\n\t // Initializer's prototype is the subtype object\n\t subtype.init.prototype = subtype;\n\n\t // Reference supertype\n\t subtype.$super = this;\n\n\t return subtype;\n\t },\n\n\t /**\n\t * Extends this object and runs the init method.\n\t * Arguments to create() will be passed to init().\n\t *\n\t * @return {Object} The new object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var instance = MyType.create();\n\t */\n\t create: function () {\n\t var instance = this.extend();\n\t instance.init.apply(instance, arguments);\n\n\t return instance;\n\t },\n\n\t /**\n\t * Initializes a newly created object.\n\t * Override this method to add some logic when your objects are created.\n\t *\n\t * @example\n\t *\n\t * var MyType = CryptoJS.lib.Base.extend({\n\t * init: function () {\n\t * // ...\n\t * }\n\t * });\n\t */\n\t init: function () {\n\t },\n\n\t /**\n\t * Copies properties into this object.\n\t *\n\t * @param {Object} properties The properties to mix in.\n\t *\n\t * @example\n\t *\n\t * MyType.mixIn({\n\t * field: 'value'\n\t * });\n\t */\n\t mixIn: function (properties) {\n\t for (var propertyName in properties) {\n\t if (properties.hasOwnProperty(propertyName)) {\n\t this[propertyName] = properties[propertyName];\n\t }\n\t }\n\n\t // IE won't copy toString using the loop above\n\t if (properties.hasOwnProperty('toString')) {\n\t this.toString = properties.toString;\n\t }\n\t },\n\n\t /**\n\t * Creates a copy of this object.\n\t *\n\t * @return {Object} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = instance.clone();\n\t */\n\t clone: function () {\n\t return this.init.prototype.extend(this);\n\t }\n\t };\n\t }());\n\n\t /**\n\t * An array of 32-bit words.\n\t *\n\t * @property {Array} words The array of 32-bit words.\n\t * @property {number} sigBytes The number of significant bytes in this word array.\n\t */\n\t var WordArray = C_lib.WordArray = Base.extend({\n\t /**\n\t * Initializes a newly created word array.\n\t *\n\t * @param {Array} words (Optional) An array of 32-bit words.\n\t * @param {number} sigBytes (Optional) The number of significant bytes in the words.\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.lib.WordArray.create();\n\t * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607]);\n\t * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607], 6);\n\t */\n\t init: function (words, sigBytes) {\n\t words = this.words = words || [];\n\n\t if (sigBytes != undefined) {\n\t this.sigBytes = sigBytes;\n\t } else {\n\t this.sigBytes = words.length * 4;\n\t }\n\t },\n\n\t /**\n\t * Converts this word array to a string.\n\t *\n\t * @param {Encoder} encoder (Optional) The encoding strategy to use. Default: CryptoJS.enc.Hex\n\t *\n\t * @return {string} The stringified word array.\n\t *\n\t * @example\n\t *\n\t * var string = wordArray + '';\n\t * var string = wordArray.toString();\n\t * var string = wordArray.toString(CryptoJS.enc.Utf8);\n\t */\n\t toString: function (encoder) {\n\t return (encoder || Hex).stringify(this);\n\t },\n\n\t /**\n\t * Concatenates a word array to this word array.\n\t *\n\t * @param {WordArray} wordArray The word array to append.\n\t *\n\t * @return {WordArray} This word array.\n\t *\n\t * @example\n\t *\n\t * wordArray1.concat(wordArray2);\n\t */\n\t concat: function (wordArray) {\n\t // Shortcuts\n\t var thisWords = this.words;\n\t var thatWords = wordArray.words;\n\t var thisSigBytes = this.sigBytes;\n\t var thatSigBytes = wordArray.sigBytes;\n\n\t // Clamp excess bits\n\t this.clamp();\n\n\t // Concat\n\t if (thisSigBytes % 4) {\n\t // Copy one byte at a time\n\t for (var i = 0; i < thatSigBytes; i++) {\n\t var thatByte = (thatWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t thisWords[(thisSigBytes + i) >>> 2] |= thatByte << (24 - ((thisSigBytes + i) % 4) * 8);\n\t }\n\t } else {\n\t // Copy one word at a time\n\t for (var i = 0; i < thatSigBytes; i += 4) {\n\t thisWords[(thisSigBytes + i) >>> 2] = thatWords[i >>> 2];\n\t }\n\t }\n\t this.sigBytes += thatSigBytes;\n\n\t // Chainable\n\t return this;\n\t },\n\n\t /**\n\t * Removes insignificant bits.\n\t *\n\t * @example\n\t *\n\t * wordArray.clamp();\n\t */\n\t clamp: function () {\n\t // Shortcuts\n\t var words = this.words;\n\t var sigBytes = this.sigBytes;\n\n\t // Clamp\n\t words[sigBytes >>> 2] &= 0xffffffff << (32 - (sigBytes % 4) * 8);\n\t words.length = Math.ceil(sigBytes / 4);\n\t },\n\n\t /**\n\t * Creates a copy of this word array.\n\t *\n\t * @return {WordArray} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = wordArray.clone();\n\t */\n\t clone: function () {\n\t var clone = Base.clone.call(this);\n\t clone.words = this.words.slice(0);\n\n\t return clone;\n\t },\n\n\t /**\n\t * Creates a word array filled with random bytes.\n\t *\n\t * @param {number} nBytes The number of random bytes to generate.\n\t *\n\t * @return {WordArray} The random word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.lib.WordArray.random(16);\n\t */\n\t random: function (nBytes) {\n\t var words = [];\n\n\t var r = (function (m_w) {\n\t var m_w = m_w;\n\t var m_z = 0x3ade68b1;\n\t var mask = 0xffffffff;\n\n\t return function () {\n\t m_z = (0x9069 * (m_z & 0xFFFF) + (m_z >> 0x10)) & mask;\n\t m_w = (0x4650 * (m_w & 0xFFFF) + (m_w >> 0x10)) & mask;\n\t var result = ((m_z << 0x10) + m_w) & mask;\n\t result /= 0x100000000;\n\t result += 0.5;\n\t return result * (Math.random() > .5 ? 1 : -1);\n\t }\n\t });\n\n\t for (var i = 0, rcache; i < nBytes; i += 4) {\n\t var _r = r((rcache || Math.random()) * 0x100000000);\n\n\t rcache = _r() * 0x3ade67b7;\n\t words.push((_r() * 0x100000000) | 0);\n\t }\n\n\t return new WordArray.init(words, nBytes);\n\t }\n\t });\n\n\t /**\n\t * Encoder namespace.\n\t */\n\t var C_enc = C.enc = {};\n\n\t /**\n\t * Hex encoding strategy.\n\t */\n\t var Hex = C_enc.Hex = {\n\t /**\n\t * Converts a word array to a hex string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The hex string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hexString = CryptoJS.enc.Hex.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\n\t // Convert\n\t var hexChars = [];\n\t for (var i = 0; i < sigBytes; i++) {\n\t var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t hexChars.push((bite >>> 4).toString(16));\n\t hexChars.push((bite & 0x0f).toString(16));\n\t }\n\n\t return hexChars.join('');\n\t },\n\n\t /**\n\t * Converts a hex string to a word array.\n\t *\n\t * @param {string} hexStr The hex string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Hex.parse(hexString);\n\t */\n\t parse: function (hexStr) {\n\t // Shortcut\n\t var hexStrLength = hexStr.length;\n\n\t // Convert\n\t var words = [];\n\t for (var i = 0; i < hexStrLength; i += 2) {\n\t words[i >>> 3] |= parseInt(hexStr.substr(i, 2), 16) << (24 - (i % 8) * 4);\n\t }\n\n\t return new WordArray.init(words, hexStrLength / 2);\n\t }\n\t };\n\n\t /**\n\t * Latin1 encoding strategy.\n\t */\n\t var Latin1 = C_enc.Latin1 = {\n\t /**\n\t * Converts a word array to a Latin1 string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The Latin1 string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var latin1String = CryptoJS.enc.Latin1.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\n\t // Convert\n\t var latin1Chars = [];\n\t for (var i = 0; i < sigBytes; i++) {\n\t var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t latin1Chars.push(String.fromCharCode(bite));\n\t }\n\n\t return latin1Chars.join('');\n\t },\n\n\t /**\n\t * Converts a Latin1 string to a word array.\n\t *\n\t * @param {string} latin1Str The Latin1 string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Latin1.parse(latin1String);\n\t */\n\t parse: function (latin1Str) {\n\t // Shortcut\n\t var latin1StrLength = latin1Str.length;\n\n\t // Convert\n\t var words = [];\n\t for (var i = 0; i < latin1StrLength; i++) {\n\t words[i >>> 2] |= (latin1Str.charCodeAt(i) & 0xff) << (24 - (i % 4) * 8);\n\t }\n\n\t return new WordArray.init(words, latin1StrLength);\n\t }\n\t };\n\n\t /**\n\t * UTF-8 encoding strategy.\n\t */\n\t var Utf8 = C_enc.Utf8 = {\n\t /**\n\t * Converts a word array to a UTF-8 string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The UTF-8 string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var utf8String = CryptoJS.enc.Utf8.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t try {\n\t return decodeURIComponent(escape(Latin1.stringify(wordArray)));\n\t } catch (e) {\n\t throw new Error('Malformed UTF-8 data');\n\t }\n\t },\n\n\t /**\n\t * Converts a UTF-8 string to a word array.\n\t *\n\t * @param {string} utf8Str The UTF-8 string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Utf8.parse(utf8String);\n\t */\n\t parse: function (utf8Str) {\n\t return Latin1.parse(unescape(encodeURIComponent(utf8Str)));\n\t }\n\t };\n\n\t /**\n\t * Abstract buffered block algorithm template.\n\t *\n\t * The property blockSize must be implemented in a concrete subtype.\n\t *\n\t * @property {number} _minBufferSize The number of blocks that should be kept unprocessed in the buffer. Default: 0\n\t */\n\t var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm = Base.extend({\n\t /**\n\t * Resets this block algorithm's data buffer to its initial state.\n\t *\n\t * @example\n\t *\n\t * bufferedBlockAlgorithm.reset();\n\t */\n\t reset: function () {\n\t // Initial values\n\t this._data = new WordArray.init();\n\t this._nDataBytes = 0;\n\t },\n\n\t /**\n\t * Adds new data to this block algorithm's buffer.\n\t *\n\t * @param {WordArray|string} data The data to append. Strings are converted to a WordArray using UTF-8.\n\t *\n\t * @example\n\t *\n\t * bufferedBlockAlgorithm._append('data');\n\t * bufferedBlockAlgorithm._append(wordArray);\n\t */\n\t _append: function (data) {\n\t // Convert string to WordArray, else assume WordArray already\n\t if (typeof data == 'string') {\n\t data = Utf8.parse(data);\n\t }\n\n\t // Append\n\t this._data.concat(data);\n\t this._nDataBytes += data.sigBytes;\n\t },\n\n\t /**\n\t * Processes available data blocks.\n\t *\n\t * This method invokes _doProcessBlock(offset), which must be implemented by a concrete subtype.\n\t *\n\t * @param {boolean} doFlush Whether all blocks and partial blocks should be processed.\n\t *\n\t * @return {WordArray} The processed data.\n\t *\n\t * @example\n\t *\n\t * var processedData = bufferedBlockAlgorithm._process();\n\t * var processedData = bufferedBlockAlgorithm._process(!!'flush');\n\t */\n\t _process: function (doFlush) {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\t var dataSigBytes = data.sigBytes;\n\t var blockSize = this.blockSize;\n\t var blockSizeBytes = blockSize * 4;\n\n\t // Count blocks ready\n\t var nBlocksReady = dataSigBytes / blockSizeBytes;\n\t if (doFlush) {\n\t // Round up to include partial blocks\n\t nBlocksReady = Math.ceil(nBlocksReady);\n\t } else {\n\t // Round down to include only full blocks,\n\t // less the number of blocks that must remain in the buffer\n\t nBlocksReady = Math.max((nBlocksReady | 0) - this._minBufferSize, 0);\n\t }\n\n\t // Count words ready\n\t var nWordsReady = nBlocksReady * blockSize;\n\n\t // Count bytes ready\n\t var nBytesReady = Math.min(nWordsReady * 4, dataSigBytes);\n\n\t // Process blocks\n\t if (nWordsReady) {\n\t for (var offset = 0; offset < nWordsReady; offset += blockSize) {\n\t // Perform concrete-algorithm logic\n\t this._doProcessBlock(dataWords, offset);\n\t }\n\n\t // Remove processed words\n\t var processedWords = dataWords.splice(0, nWordsReady);\n\t data.sigBytes -= nBytesReady;\n\t }\n\n\t // Return processed words\n\t return new WordArray.init(processedWords, nBytesReady);\n\t },\n\n\t /**\n\t * Creates a copy of this object.\n\t *\n\t * @return {Object} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = bufferedBlockAlgorithm.clone();\n\t */\n\t clone: function () {\n\t var clone = Base.clone.call(this);\n\t clone._data = this._data.clone();\n\n\t return clone;\n\t },\n\n\t _minBufferSize: 0\n\t });\n\n\t /**\n\t * Abstract hasher template.\n\t *\n\t * @property {number} blockSize The number of 32-bit words this hasher operates on. Default: 16 (512 bits)\n\t */\n\t var Hasher = C_lib.Hasher = BufferedBlockAlgorithm.extend({\n\t /**\n\t * Configuration options.\n\t */\n\t cfg: Base.extend(),\n\n\t /**\n\t * Initializes a newly created hasher.\n\t *\n\t * @param {Object} cfg (Optional) The configuration options to use for this hash computation.\n\t *\n\t * @example\n\t *\n\t * var hasher = CryptoJS.algo.SHA256.create();\n\t */\n\t init: function (cfg) {\n\t // Apply config defaults\n\t this.cfg = this.cfg.extend(cfg);\n\n\t // Set initial values\n\t this.reset();\n\t },\n\n\t /**\n\t * Resets this hasher to its initial state.\n\t *\n\t * @example\n\t *\n\t * hasher.reset();\n\t */\n\t reset: function () {\n\t // Reset data buffer\n\t BufferedBlockAlgorithm.reset.call(this);\n\n\t // Perform concrete-hasher logic\n\t this._doReset();\n\t },\n\n\t /**\n\t * Updates this hasher with a message.\n\t *\n\t * @param {WordArray|string} messageUpdate The message to append.\n\t *\n\t * @return {Hasher} This hasher.\n\t *\n\t * @example\n\t *\n\t * hasher.update('message');\n\t * hasher.update(wordArray);\n\t */\n\t update: function (messageUpdate) {\n\t // Append\n\t this._append(messageUpdate);\n\n\t // Update the hash\n\t this._process();\n\n\t // Chainable\n\t return this;\n\t },\n\n\t /**\n\t * Finalizes the hash computation.\n\t * Note that the finalize operation is effectively a destructive, read-once operation.\n\t *\n\t * @param {WordArray|string} messageUpdate (Optional) A final message update.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @example\n\t *\n\t * var hash = hasher.finalize();\n\t * var hash = hasher.finalize('message');\n\t * var hash = hasher.finalize(wordArray);\n\t */\n\t finalize: function (messageUpdate) {\n\t // Final message update\n\t if (messageUpdate) {\n\t this._append(messageUpdate);\n\t }\n\n\t // Perform concrete-hasher logic\n\t var hash = this._doFinalize();\n\n\t return hash;\n\t },\n\n\t blockSize: 512/32,\n\n\t /**\n\t * Creates a shortcut function to a hasher's object interface.\n\t *\n\t * @param {Hasher} hasher The hasher to create a helper for.\n\t *\n\t * @return {Function} The shortcut function.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var SHA256 = CryptoJS.lib.Hasher._createHelper(CryptoJS.algo.SHA256);\n\t */\n\t _createHelper: function (hasher) {\n\t return function (message, cfg) {\n\t return new hasher.init(cfg).finalize(message);\n\t };\n\t },\n\n\t /**\n\t * Creates a shortcut function to the HMAC's object interface.\n\t *\n\t * @param {Hasher} hasher The hasher to use in this HMAC helper.\n\t *\n\t * @return {Function} The shortcut function.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var HmacSHA256 = CryptoJS.lib.Hasher._createHmacHelper(CryptoJS.algo.SHA256);\n\t */\n\t _createHmacHelper: function (hasher) {\n\t return function (message, key) {\n\t return new C_algo.HMAC.init(hasher, key).finalize(message);\n\t };\n\t }\n\t });\n\n\t /**\n\t * Algorithm namespace.\n\t */\n\t var C_algo = C.algo = {};\n\n\t return C;\n\t}(Math));\n\n\n\treturn CryptoJS;\n\n}));","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","import arrayWithHoles from \"./arrayWithHoles\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray\";\nimport nonIterableRest from \"./nonIterableRest\";\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 if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\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}","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\n return self;\n}","import arrayWithoutHoles from \"./arrayWithoutHoles\";\nimport iterableToArray from \"./iterableToArray\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray\";\nimport nonIterableSpread from \"./nonIterableSpread\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) 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}","import superPropBase from \"./superPropBase\";\nexport default function _get(target, property, receiver) {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n _get = Reflect.get;\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\n if (desc.get) {\n return desc.get.call(receiver);\n }\n\n return desc.value;\n };\n }\n\n return _get(target, property, receiver || target);\n}","import getPrototypeOf from \"./getPrototypeOf\";\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\n return object;\n}","/*!\n * Chart.js v3.9.1\n * https://www.chartjs.org\n * (c) 2022 Chart.js Contributors\n * Released under the MIT License\n */\nfunction noop() {}\nconst uid = (function() {\n let id = 0;\n return function() {\n return id++;\n };\n}());\nfunction isNullOrUndef(value) {\n return value === null || typeof value === 'undefined';\n}\nfunction isArray(value) {\n if (Array.isArray && Array.isArray(value)) {\n return true;\n }\n const type = Object.prototype.toString.call(value);\n if (type.slice(0, 7) === '[object' && type.slice(-6) === 'Array]') {\n return true;\n }\n return false;\n}\nfunction isObject(value) {\n return value !== null && Object.prototype.toString.call(value) === '[object Object]';\n}\nconst isNumberFinite = (value) => (typeof value === 'number' || value instanceof Number) && isFinite(+value);\nfunction finiteOrDefault(value, defaultValue) {\n return isNumberFinite(value) ? value : defaultValue;\n}\nfunction valueOrDefault(value, defaultValue) {\n return typeof value === 'undefined' ? defaultValue : value;\n}\nconst toPercentage = (value, dimension) =>\n typeof value === 'string' && value.endsWith('%') ?\n parseFloat(value) / 100\n : value / dimension;\nconst toDimension = (value, dimension) =>\n typeof value === 'string' && value.endsWith('%') ?\n parseFloat(value) / 100 * dimension\n : +value;\nfunction callback(fn, args, thisArg) {\n if (fn && typeof fn.call === 'function') {\n return fn.apply(thisArg, args);\n }\n}\nfunction each(loopable, fn, thisArg, reverse) {\n let i, len, keys;\n if (isArray(loopable)) {\n len = loopable.length;\n if (reverse) {\n for (i = len - 1; i >= 0; i--) {\n fn.call(thisArg, loopable[i], i);\n }\n } else {\n for (i = 0; i < len; i++) {\n fn.call(thisArg, loopable[i], i);\n }\n }\n } else if (isObject(loopable)) {\n keys = Object.keys(loopable);\n len = keys.length;\n for (i = 0; i < len; i++) {\n fn.call(thisArg, loopable[keys[i]], keys[i]);\n }\n }\n}\nfunction _elementsEqual(a0, a1) {\n let i, ilen, v0, v1;\n if (!a0 || !a1 || a0.length !== a1.length) {\n return false;\n }\n for (i = 0, ilen = a0.length; i < ilen; ++i) {\n v0 = a0[i];\n v1 = a1[i];\n if (v0.datasetIndex !== v1.datasetIndex || v0.index !== v1.index) {\n return false;\n }\n }\n return true;\n}\nfunction clone$1(source) {\n if (isArray(source)) {\n return source.map(clone$1);\n }\n if (isObject(source)) {\n const target = Object.create(null);\n const keys = Object.keys(source);\n const klen = keys.length;\n let k = 0;\n for (; k < klen; ++k) {\n target[keys[k]] = clone$1(source[keys[k]]);\n }\n return target;\n }\n return source;\n}\nfunction isValidKey(key) {\n return ['__proto__', 'prototype', 'constructor'].indexOf(key) === -1;\n}\nfunction _merger(key, target, source, options) {\n if (!isValidKey(key)) {\n return;\n }\n const tval = target[key];\n const sval = source[key];\n if (isObject(tval) && isObject(sval)) {\n merge(tval, sval, options);\n } else {\n target[key] = clone$1(sval);\n }\n}\nfunction merge(target, source, options) {\n const sources = isArray(source) ? source : [source];\n const ilen = sources.length;\n if (!isObject(target)) {\n return target;\n }\n options = options || {};\n const merger = options.merger || _merger;\n for (let i = 0; i < ilen; ++i) {\n source = sources[i];\n if (!isObject(source)) {\n continue;\n }\n const keys = Object.keys(source);\n for (let k = 0, klen = keys.length; k < klen; ++k) {\n merger(keys[k], target, source, options);\n }\n }\n return target;\n}\nfunction mergeIf(target, source) {\n return merge(target, source, {merger: _mergerIf});\n}\nfunction _mergerIf(key, target, source) {\n if (!isValidKey(key)) {\n return;\n }\n const tval = target[key];\n const sval = source[key];\n if (isObject(tval) && isObject(sval)) {\n mergeIf(tval, sval);\n } else if (!Object.prototype.hasOwnProperty.call(target, key)) {\n target[key] = clone$1(sval);\n }\n}\nfunction _deprecated(scope, value, previous, current) {\n if (value !== undefined) {\n console.warn(scope + ': \"' + previous +\n\t\t\t'\" is deprecated. Please use \"' + current + '\" instead');\n }\n}\nconst keyResolvers = {\n '': v => v,\n x: o => o.x,\n y: o => o.y\n};\nfunction resolveObjectKey(obj, key) {\n const resolver = keyResolvers[key] || (keyResolvers[key] = _getKeyResolver(key));\n return resolver(obj);\n}\nfunction _getKeyResolver(key) {\n const keys = _splitKey(key);\n return obj => {\n for (const k of keys) {\n if (k === '') {\n break;\n }\n obj = obj && obj[k];\n }\n return obj;\n };\n}\nfunction _splitKey(key) {\n const parts = key.split('.');\n const keys = [];\n let tmp = '';\n for (const part of parts) {\n tmp += part;\n if (tmp.endsWith('\\\\')) {\n tmp = tmp.slice(0, -1) + '.';\n } else {\n keys.push(tmp);\n tmp = '';\n }\n }\n return keys;\n}\nfunction _capitalize(str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n}\nconst defined = (value) => typeof value !== 'undefined';\nconst isFunction = (value) => typeof value === 'function';\nconst setsEqual = (a, b) => {\n if (a.size !== b.size) {\n return false;\n }\n for (const item of a) {\n if (!b.has(item)) {\n return false;\n }\n }\n return true;\n};\nfunction _isClickEvent(e) {\n return e.type === 'mouseup' || e.type === 'click' || e.type === 'contextmenu';\n}\n\nconst PI = Math.PI;\nconst TAU = 2 * PI;\nconst PITAU = TAU + PI;\nconst INFINITY = Number.POSITIVE_INFINITY;\nconst RAD_PER_DEG = PI / 180;\nconst HALF_PI = PI / 2;\nconst QUARTER_PI = PI / 4;\nconst TWO_THIRDS_PI = PI * 2 / 3;\nconst log10 = Math.log10;\nconst sign = Math.sign;\nfunction niceNum(range) {\n const roundedRange = Math.round(range);\n range = almostEquals(range, roundedRange, range / 1000) ? roundedRange : range;\n const niceRange = Math.pow(10, Math.floor(log10(range)));\n const fraction = range / niceRange;\n const niceFraction = fraction <= 1 ? 1 : fraction <= 2 ? 2 : fraction <= 5 ? 5 : 10;\n return niceFraction * niceRange;\n}\nfunction _factorize(value) {\n const result = [];\n const sqrt = Math.sqrt(value);\n let i;\n for (i = 1; i < sqrt; i++) {\n if (value % i === 0) {\n result.push(i);\n result.push(value / i);\n }\n }\n if (sqrt === (sqrt | 0)) {\n result.push(sqrt);\n }\n result.sort((a, b) => a - b).pop();\n return result;\n}\nfunction isNumber(n) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n}\nfunction almostEquals(x, y, epsilon) {\n return Math.abs(x - y) < epsilon;\n}\nfunction almostWhole(x, epsilon) {\n const rounded = Math.round(x);\n return ((rounded - epsilon) <= x) && ((rounded + epsilon) >= x);\n}\nfunction _setMinAndMaxByKey(array, target, property) {\n let i, ilen, value;\n for (i = 0, ilen = array.length; i < ilen; i++) {\n value = array[i][property];\n if (!isNaN(value)) {\n target.min = Math.min(target.min, value);\n target.max = Math.max(target.max, value);\n }\n }\n}\nfunction toRadians(degrees) {\n return degrees * (PI / 180);\n}\nfunction toDegrees(radians) {\n return radians * (180 / PI);\n}\nfunction _decimalPlaces(x) {\n if (!isNumberFinite(x)) {\n return;\n }\n let e = 1;\n let p = 0;\n while (Math.round(x * e) / e !== x) {\n e *= 10;\n p++;\n }\n return p;\n}\nfunction getAngleFromPoint(centrePoint, anglePoint) {\n const distanceFromXCenter = anglePoint.x - centrePoint.x;\n const distanceFromYCenter = anglePoint.y - centrePoint.y;\n const radialDistanceFromCenter = Math.sqrt(distanceFromXCenter * distanceFromXCenter + distanceFromYCenter * distanceFromYCenter);\n let angle = Math.atan2(distanceFromYCenter, distanceFromXCenter);\n if (angle < (-0.5 * PI)) {\n angle += TAU;\n }\n return {\n angle,\n distance: radialDistanceFromCenter\n };\n}\nfunction distanceBetweenPoints(pt1, pt2) {\n return Math.sqrt(Math.pow(pt2.x - pt1.x, 2) + Math.pow(pt2.y - pt1.y, 2));\n}\nfunction _angleDiff(a, b) {\n return (a - b + PITAU) % TAU - PI;\n}\nfunction _normalizeAngle(a) {\n return (a % TAU + TAU) % TAU;\n}\nfunction _angleBetween(angle, start, end, sameAngleIsFullCircle) {\n const a = _normalizeAngle(angle);\n const s = _normalizeAngle(start);\n const e = _normalizeAngle(end);\n const angleToStart = _normalizeAngle(s - a);\n const angleToEnd = _normalizeAngle(e - a);\n const startToAngle = _normalizeAngle(a - s);\n const endToAngle = _normalizeAngle(a - e);\n return a === s || a === e || (sameAngleIsFullCircle && s === e)\n || (angleToStart > angleToEnd && startToAngle < endToAngle);\n}\nfunction _limitValue(value, min, max) {\n return Math.max(min, Math.min(max, value));\n}\nfunction _int16Range(value) {\n return _limitValue(value, -32768, 32767);\n}\nfunction _isBetween(value, start, end, epsilon = 1e-6) {\n return value >= Math.min(start, end) - epsilon && value <= Math.max(start, end) + epsilon;\n}\n\nfunction _lookup(table, value, cmp) {\n cmp = cmp || ((index) => table[index] < value);\n let hi = table.length - 1;\n let lo = 0;\n let mid;\n while (hi - lo > 1) {\n mid = (lo + hi) >> 1;\n if (cmp(mid)) {\n lo = mid;\n } else {\n hi = mid;\n }\n }\n return {lo, hi};\n}\nconst _lookupByKey = (table, key, value, last) =>\n _lookup(table, value, last\n ? index => table[index][key] <= value\n : index => table[index][key] < value);\nconst _rlookupByKey = (table, key, value) =>\n _lookup(table, value, index => table[index][key] >= value);\nfunction _filterBetween(values, min, max) {\n let start = 0;\n let end = values.length;\n while (start < end && values[start] < min) {\n start++;\n }\n while (end > start && values[end - 1] > max) {\n end--;\n }\n return start > 0 || end < values.length\n ? values.slice(start, end)\n : values;\n}\nconst arrayEvents = ['push', 'pop', 'shift', 'splice', 'unshift'];\nfunction listenArrayEvents(array, listener) {\n if (array._chartjs) {\n array._chartjs.listeners.push(listener);\n return;\n }\n Object.defineProperty(array, '_chartjs', {\n configurable: true,\n enumerable: false,\n value: {\n listeners: [listener]\n }\n });\n arrayEvents.forEach((key) => {\n const method = '_onData' + _capitalize(key);\n const base = array[key];\n Object.defineProperty(array, key, {\n configurable: true,\n enumerable: false,\n value(...args) {\n const res = base.apply(this, args);\n array._chartjs.listeners.forEach((object) => {\n if (typeof object[method] === 'function') {\n object[method](...args);\n }\n });\n return res;\n }\n });\n });\n}\nfunction unlistenArrayEvents(array, listener) {\n const stub = array._chartjs;\n if (!stub) {\n return;\n }\n const listeners = stub.listeners;\n const index = listeners.indexOf(listener);\n if (index !== -1) {\n listeners.splice(index, 1);\n }\n if (listeners.length > 0) {\n return;\n }\n arrayEvents.forEach((key) => {\n delete array[key];\n });\n delete array._chartjs;\n}\nfunction _arrayUnique(items) {\n const set = new Set();\n let i, ilen;\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n set.add(items[i]);\n }\n if (set.size === ilen) {\n return items;\n }\n return Array.from(set);\n}\n\nfunction fontString(pixelSize, fontStyle, fontFamily) {\n return fontStyle + ' ' + pixelSize + 'px ' + fontFamily;\n}\nconst requestAnimFrame = (function() {\n if (typeof window === 'undefined') {\n return function(callback) {\n return callback();\n };\n }\n return window.requestAnimationFrame;\n}());\nfunction throttled(fn, thisArg, updateFn) {\n const updateArgs = updateFn || ((args) => Array.prototype.slice.call(args));\n let ticking = false;\n let args = [];\n return function(...rest) {\n args = updateArgs(rest);\n if (!ticking) {\n ticking = true;\n requestAnimFrame.call(window, () => {\n ticking = false;\n fn.apply(thisArg, args);\n });\n }\n };\n}\nfunction debounce(fn, delay) {\n let timeout;\n return function(...args) {\n if (delay) {\n clearTimeout(timeout);\n timeout = setTimeout(fn, delay, args);\n } else {\n fn.apply(this, args);\n }\n return delay;\n };\n}\nconst _toLeftRightCenter = (align) => align === 'start' ? 'left' : align === 'end' ? 'right' : 'center';\nconst _alignStartEnd = (align, start, end) => align === 'start' ? start : align === 'end' ? end : (start + end) / 2;\nconst _textX = (align, left, right, rtl) => {\n const check = rtl ? 'left' : 'right';\n return align === check ? right : align === 'center' ? (left + right) / 2 : left;\n};\nfunction _getStartAndCountOfVisiblePoints(meta, points, animationsDisabled) {\n const pointCount = points.length;\n let start = 0;\n let count = pointCount;\n if (meta._sorted) {\n const {iScale, _parsed} = meta;\n const axis = iScale.axis;\n const {min, max, minDefined, maxDefined} = iScale.getUserBounds();\n if (minDefined) {\n start = _limitValue(Math.min(\n _lookupByKey(_parsed, iScale.axis, min).lo,\n animationsDisabled ? pointCount : _lookupByKey(points, axis, iScale.getPixelForValue(min)).lo),\n 0, pointCount - 1);\n }\n if (maxDefined) {\n count = _limitValue(Math.max(\n _lookupByKey(_parsed, iScale.axis, max, true).hi + 1,\n animationsDisabled ? 0 : _lookupByKey(points, axis, iScale.getPixelForValue(max), true).hi + 1),\n start, pointCount) - start;\n } else {\n count = pointCount - start;\n }\n }\n return {start, count};\n}\nfunction _scaleRangesChanged(meta) {\n const {xScale, yScale, _scaleRanges} = meta;\n const newRanges = {\n xmin: xScale.min,\n xmax: xScale.max,\n ymin: yScale.min,\n ymax: yScale.max\n };\n if (!_scaleRanges) {\n meta._scaleRanges = newRanges;\n return true;\n }\n const changed = _scaleRanges.xmin !== xScale.min\n\t\t|| _scaleRanges.xmax !== xScale.max\n\t\t|| _scaleRanges.ymin !== yScale.min\n\t\t|| _scaleRanges.ymax !== yScale.max;\n Object.assign(_scaleRanges, newRanges);\n return changed;\n}\n\nconst atEdge = (t) => t === 0 || t === 1;\nconst elasticIn = (t, s, p) => -(Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * TAU / p));\nconst elasticOut = (t, s, p) => Math.pow(2, -10 * t) * Math.sin((t - s) * TAU / p) + 1;\nconst effects = {\n linear: t => t,\n easeInQuad: t => t * t,\n easeOutQuad: t => -t * (t - 2),\n easeInOutQuad: t => ((t /= 0.5) < 1)\n ? 0.5 * t * t\n : -0.5 * ((--t) * (t - 2) - 1),\n easeInCubic: t => t * t * t,\n easeOutCubic: t => (t -= 1) * t * t + 1,\n easeInOutCubic: t => ((t /= 0.5) < 1)\n ? 0.5 * t * t * t\n : 0.5 * ((t -= 2) * t * t + 2),\n easeInQuart: t => t * t * t * t,\n easeOutQuart: t => -((t -= 1) * t * t * t - 1),\n easeInOutQuart: t => ((t /= 0.5) < 1)\n ? 0.5 * t * t * t * t\n : -0.5 * ((t -= 2) * t * t * t - 2),\n easeInQuint: t => t * t * t * t * t,\n easeOutQuint: t => (t -= 1) * t * t * t * t + 1,\n easeInOutQuint: t => ((t /= 0.5) < 1)\n ? 0.5 * t * t * t * t * t\n : 0.5 * ((t -= 2) * t * t * t * t + 2),\n easeInSine: t => -Math.cos(t * HALF_PI) + 1,\n easeOutSine: t => Math.sin(t * HALF_PI),\n easeInOutSine: t => -0.5 * (Math.cos(PI * t) - 1),\n easeInExpo: t => (t === 0) ? 0 : Math.pow(2, 10 * (t - 1)),\n easeOutExpo: t => (t === 1) ? 1 : -Math.pow(2, -10 * t) + 1,\n easeInOutExpo: t => atEdge(t) ? t : t < 0.5\n ? 0.5 * Math.pow(2, 10 * (t * 2 - 1))\n : 0.5 * (-Math.pow(2, -10 * (t * 2 - 1)) + 2),\n easeInCirc: t => (t >= 1) ? t : -(Math.sqrt(1 - t * t) - 1),\n easeOutCirc: t => Math.sqrt(1 - (t -= 1) * t),\n easeInOutCirc: t => ((t /= 0.5) < 1)\n ? -0.5 * (Math.sqrt(1 - t * t) - 1)\n : 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1),\n easeInElastic: t => atEdge(t) ? t : elasticIn(t, 0.075, 0.3),\n easeOutElastic: t => atEdge(t) ? t : elasticOut(t, 0.075, 0.3),\n easeInOutElastic(t) {\n const s = 0.1125;\n const p = 0.45;\n return atEdge(t) ? t :\n t < 0.5\n ? 0.5 * elasticIn(t * 2, s, p)\n : 0.5 + 0.5 * elasticOut(t * 2 - 1, s, p);\n },\n easeInBack(t) {\n const s = 1.70158;\n return t * t * ((s + 1) * t - s);\n },\n easeOutBack(t) {\n const s = 1.70158;\n return (t -= 1) * t * ((s + 1) * t + s) + 1;\n },\n easeInOutBack(t) {\n let s = 1.70158;\n if ((t /= 0.5) < 1) {\n return 0.5 * (t * t * (((s *= (1.525)) + 1) * t - s));\n }\n return 0.5 * ((t -= 2) * t * (((s *= (1.525)) + 1) * t + s) + 2);\n },\n easeInBounce: t => 1 - effects.easeOutBounce(1 - t),\n easeOutBounce(t) {\n const m = 7.5625;\n const d = 2.75;\n if (t < (1 / d)) {\n return m * t * t;\n }\n if (t < (2 / d)) {\n return m * (t -= (1.5 / d)) * t + 0.75;\n }\n if (t < (2.5 / d)) {\n return m * (t -= (2.25 / d)) * t + 0.9375;\n }\n return m * (t -= (2.625 / d)) * t + 0.984375;\n },\n easeInOutBounce: t => (t < 0.5)\n ? effects.easeInBounce(t * 2) * 0.5\n : effects.easeOutBounce(t * 2 - 1) * 0.5 + 0.5,\n};\n\n/*!\n * @kurkle/color v0.2.1\n * https://github.com/kurkle/color#readme\n * (c) 2022 Jukka Kurkela\n * Released under the MIT License\n */\nfunction round(v) {\n return v + 0.5 | 0;\n}\nconst lim = (v, l, h) => Math.max(Math.min(v, h), l);\nfunction p2b(v) {\n return lim(round(v * 2.55), 0, 255);\n}\nfunction n2b(v) {\n return lim(round(v * 255), 0, 255);\n}\nfunction b2n(v) {\n return lim(round(v / 2.55) / 100, 0, 1);\n}\nfunction n2p(v) {\n return lim(round(v * 100), 0, 100);\n}\nconst map$1 = {0: 0, 1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9, A: 10, B: 11, C: 12, D: 13, E: 14, F: 15, a: 10, b: 11, c: 12, d: 13, e: 14, f: 15};\nconst hex = [...'0123456789ABCDEF'];\nconst h1 = b => hex[b & 0xF];\nconst h2 = b => hex[(b & 0xF0) >> 4] + hex[b & 0xF];\nconst eq = b => ((b & 0xF0) >> 4) === (b & 0xF);\nconst isShort = v => eq(v.r) && eq(v.g) && eq(v.b) && eq(v.a);\nfunction hexParse(str) {\n var len = str.length;\n var ret;\n if (str[0] === '#') {\n if (len === 4 || len === 5) {\n ret = {\n r: 255 & map$1[str[1]] * 17,\n g: 255 & map$1[str[2]] * 17,\n b: 255 & map$1[str[3]] * 17,\n a: len === 5 ? map$1[str[4]] * 17 : 255\n };\n } else if (len === 7 || len === 9) {\n ret = {\n r: map$1[str[1]] << 4 | map$1[str[2]],\n g: map$1[str[3]] << 4 | map$1[str[4]],\n b: map$1[str[5]] << 4 | map$1[str[6]],\n a: len === 9 ? (map$1[str[7]] << 4 | map$1[str[8]]) : 255\n };\n }\n }\n return ret;\n}\nconst alpha = (a, f) => a < 255 ? f(a) : '';\nfunction hexString(v) {\n var f = isShort(v) ? h1 : h2;\n return v\n ? '#' + f(v.r) + f(v.g) + f(v.b) + alpha(v.a, f)\n : undefined;\n}\nconst HUE_RE = /^(hsla?|hwb|hsv)\\(\\s*([-+.e\\d]+)(?:deg)?[\\s,]+([-+.e\\d]+)%[\\s,]+([-+.e\\d]+)%(?:[\\s,]+([-+.e\\d]+)(%)?)?\\s*\\)$/;\nfunction hsl2rgbn(h, s, l) {\n const a = s * Math.min(l, 1 - l);\n const f = (n, k = (n + h / 30) % 12) => l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);\n return [f(0), f(8), f(4)];\n}\nfunction hsv2rgbn(h, s, v) {\n const f = (n, k = (n + h / 60) % 6) => v - v * s * Math.max(Math.min(k, 4 - k, 1), 0);\n return [f(5), f(3), f(1)];\n}\nfunction hwb2rgbn(h, w, b) {\n const rgb = hsl2rgbn(h, 1, 0.5);\n let i;\n if (w + b > 1) {\n i = 1 / (w + b);\n w *= i;\n b *= i;\n }\n for (i = 0; i < 3; i++) {\n rgb[i] *= 1 - w - b;\n rgb[i] += w;\n }\n return rgb;\n}\nfunction hueValue(r, g, b, d, max) {\n if (r === max) {\n return ((g - b) / d) + (g < b ? 6 : 0);\n }\n if (g === max) {\n return (b - r) / d + 2;\n }\n return (r - g) / d + 4;\n}\nfunction rgb2hsl(v) {\n const range = 255;\n const r = v.r / range;\n const g = v.g / range;\n const b = v.b / range;\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n const l = (max + min) / 2;\n let h, s, d;\n if (max !== min) {\n d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n h = hueValue(r, g, b, d, max);\n h = h * 60 + 0.5;\n }\n return [h | 0, s || 0, l];\n}\nfunction calln(f, a, b, c) {\n return (\n Array.isArray(a)\n ? f(a[0], a[1], a[2])\n : f(a, b, c)\n ).map(n2b);\n}\nfunction hsl2rgb(h, s, l) {\n return calln(hsl2rgbn, h, s, l);\n}\nfunction hwb2rgb(h, w, b) {\n return calln(hwb2rgbn, h, w, b);\n}\nfunction hsv2rgb(h, s, v) {\n return calln(hsv2rgbn, h, s, v);\n}\nfunction hue(h) {\n return (h % 360 + 360) % 360;\n}\nfunction hueParse(str) {\n const m = HUE_RE.exec(str);\n let a = 255;\n let v;\n if (!m) {\n return;\n }\n if (m[5] !== v) {\n a = m[6] ? p2b(+m[5]) : n2b(+m[5]);\n }\n const h = hue(+m[2]);\n const p1 = +m[3] / 100;\n const p2 = +m[4] / 100;\n if (m[1] === 'hwb') {\n v = hwb2rgb(h, p1, p2);\n } else if (m[1] === 'hsv') {\n v = hsv2rgb(h, p1, p2);\n } else {\n v = hsl2rgb(h, p1, p2);\n }\n return {\n r: v[0],\n g: v[1],\n b: v[2],\n a: a\n };\n}\nfunction rotate(v, deg) {\n var h = rgb2hsl(v);\n h[0] = hue(h[0] + deg);\n h = hsl2rgb(h);\n v.r = h[0];\n v.g = h[1];\n v.b = h[2];\n}\nfunction hslString(v) {\n if (!v) {\n return;\n }\n const a = rgb2hsl(v);\n const h = a[0];\n const s = n2p(a[1]);\n const l = n2p(a[2]);\n return v.a < 255\n ? `hsla(${h}, ${s}%, ${l}%, ${b2n(v.a)})`\n : `hsl(${h}, ${s}%, ${l}%)`;\n}\nconst map = {\n x: 'dark',\n Z: 'light',\n Y: 're',\n X: 'blu',\n W: 'gr',\n V: 'medium',\n U: 'slate',\n A: 'ee',\n T: 'ol',\n S: 'or',\n B: 'ra',\n C: 'lateg',\n D: 'ights',\n R: 'in',\n Q: 'turquois',\n E: 'hi',\n P: 'ro',\n O: 'al',\n N: 'le',\n M: 'de',\n L: 'yello',\n F: 'en',\n K: 'ch',\n G: 'arks',\n H: 'ea',\n I: 'ightg',\n J: 'wh'\n};\nconst names$1 = {\n OiceXe: 'f0f8ff',\n antiquewEte: 'faebd7',\n aqua: 'ffff',\n aquamarRe: '7fffd4',\n azuY: 'f0ffff',\n beige: 'f5f5dc',\n bisque: 'ffe4c4',\n black: '0',\n blanKedOmond: 'ffebcd',\n Xe: 'ff',\n XeviTet: '8a2be2',\n bPwn: 'a52a2a',\n burlywood: 'deb887',\n caMtXe: '5f9ea0',\n KartYuse: '7fff00',\n KocTate: 'd2691e',\n cSO: 'ff7f50',\n cSnflowerXe: '6495ed',\n cSnsilk: 'fff8dc',\n crimson: 'dc143c',\n cyan: 'ffff',\n xXe: '8b',\n xcyan: '8b8b',\n xgTMnPd: 'b8860b',\n xWay: 'a9a9a9',\n xgYF: '6400',\n xgYy: 'a9a9a9',\n xkhaki: 'bdb76b',\n xmagFta: '8b008b',\n xTivegYF: '556b2f',\n xSange: 'ff8c00',\n xScEd: '9932cc',\n xYd: '8b0000',\n xsOmon: 'e9967a',\n xsHgYF: '8fbc8f',\n xUXe: '483d8b',\n xUWay: '2f4f4f',\n xUgYy: '2f4f4f',\n xQe: 'ced1',\n xviTet: '9400d3',\n dAppRk: 'ff1493',\n dApskyXe: 'bfff',\n dimWay: '696969',\n dimgYy: '696969',\n dodgerXe: '1e90ff',\n fiYbrick: 'b22222',\n flSOwEte: 'fffaf0',\n foYstWAn: '228b22',\n fuKsia: 'ff00ff',\n gaRsbSo: 'dcdcdc',\n ghostwEte: 'f8f8ff',\n gTd: 'ffd700',\n gTMnPd: 'daa520',\n Way: '808080',\n gYF: '8000',\n gYFLw: 'adff2f',\n gYy: '808080',\n honeyMw: 'f0fff0',\n hotpRk: 'ff69b4',\n RdianYd: 'cd5c5c',\n Rdigo: '4b0082',\n ivSy: 'fffff0',\n khaki: 'f0e68c',\n lavFMr: 'e6e6fa',\n lavFMrXsh: 'fff0f5',\n lawngYF: '7cfc00',\n NmoncEffon: 'fffacd',\n ZXe: 'add8e6',\n ZcSO: 'f08080',\n Zcyan: 'e0ffff',\n ZgTMnPdLw: 'fafad2',\n ZWay: 'd3d3d3',\n ZgYF: '90ee90',\n ZgYy: 'd3d3d3',\n ZpRk: 'ffb6c1',\n ZsOmon: 'ffa07a',\n ZsHgYF: '20b2aa',\n ZskyXe: '87cefa',\n ZUWay: '778899',\n ZUgYy: '778899',\n ZstAlXe: 'b0c4de',\n ZLw: 'ffffe0',\n lime: 'ff00',\n limegYF: '32cd32',\n lRF: 'faf0e6',\n magFta: 'ff00ff',\n maPon: '800000',\n VaquamarRe: '66cdaa',\n VXe: 'cd',\n VScEd: 'ba55d3',\n VpurpN: '9370db',\n VsHgYF: '3cb371',\n VUXe: '7b68ee',\n VsprRggYF: 'fa9a',\n VQe: '48d1cc',\n VviTetYd: 'c71585',\n midnightXe: '191970',\n mRtcYam: 'f5fffa',\n mistyPse: 'ffe4e1',\n moccasR: 'ffe4b5',\n navajowEte: 'ffdead',\n navy: '80',\n Tdlace: 'fdf5e6',\n Tive: '808000',\n TivedBb: '6b8e23',\n Sange: 'ffa500',\n SangeYd: 'ff4500',\n ScEd: 'da70d6',\n pOegTMnPd: 'eee8aa',\n pOegYF: '98fb98',\n pOeQe: 'afeeee',\n pOeviTetYd: 'db7093',\n papayawEp: 'ffefd5',\n pHKpuff: 'ffdab9',\n peru: 'cd853f',\n pRk: 'ffc0cb',\n plum: 'dda0dd',\n powMrXe: 'b0e0e6',\n purpN: '800080',\n YbeccapurpN: '663399',\n Yd: 'ff0000',\n Psybrown: 'bc8f8f',\n PyOXe: '4169e1',\n saddNbPwn: '8b4513',\n sOmon: 'fa8072',\n sandybPwn: 'f4a460',\n sHgYF: '2e8b57',\n sHshell: 'fff5ee',\n siFna: 'a0522d',\n silver: 'c0c0c0',\n skyXe: '87ceeb',\n UXe: '6a5acd',\n UWay: '708090',\n UgYy: '708090',\n snow: 'fffafa',\n sprRggYF: 'ff7f',\n stAlXe: '4682b4',\n tan: 'd2b48c',\n teO: '8080',\n tEstN: 'd8bfd8',\n tomato: 'ff6347',\n Qe: '40e0d0',\n viTet: 'ee82ee',\n JHt: 'f5deb3',\n wEte: 'ffffff',\n wEtesmoke: 'f5f5f5',\n Lw: 'ffff00',\n LwgYF: '9acd32'\n};\nfunction unpack() {\n const unpacked = {};\n const keys = Object.keys(names$1);\n const tkeys = Object.keys(map);\n let i, j, k, ok, nk;\n for (i = 0; i < keys.length; i++) {\n ok = nk = keys[i];\n for (j = 0; j < tkeys.length; j++) {\n k = tkeys[j];\n nk = nk.replace(k, map[k]);\n }\n k = parseInt(names$1[ok], 16);\n unpacked[nk] = [k >> 16 & 0xFF, k >> 8 & 0xFF, k & 0xFF];\n }\n return unpacked;\n}\nlet names;\nfunction nameParse(str) {\n if (!names) {\n names = unpack();\n names.transparent = [0, 0, 0, 0];\n }\n const a = names[str.toLowerCase()];\n return a && {\n r: a[0],\n g: a[1],\n b: a[2],\n a: a.length === 4 ? a[3] : 255\n };\n}\nconst RGB_RE = /^rgba?\\(\\s*([-+.\\d]+)(%)?[\\s,]+([-+.e\\d]+)(%)?[\\s,]+([-+.e\\d]+)(%)?(?:[\\s,/]+([-+.e\\d]+)(%)?)?\\s*\\)$/;\nfunction rgbParse(str) {\n const m = RGB_RE.exec(str);\n let a = 255;\n let r, g, b;\n if (!m) {\n return;\n }\n if (m[7] !== r) {\n const v = +m[7];\n a = m[8] ? p2b(v) : lim(v * 255, 0, 255);\n }\n r = +m[1];\n g = +m[3];\n b = +m[5];\n r = 255 & (m[2] ? p2b(r) : lim(r, 0, 255));\n g = 255 & (m[4] ? p2b(g) : lim(g, 0, 255));\n b = 255 & (m[6] ? p2b(b) : lim(b, 0, 255));\n return {\n r: r,\n g: g,\n b: b,\n a: a\n };\n}\nfunction rgbString(v) {\n return v && (\n v.a < 255\n ? `rgba(${v.r}, ${v.g}, ${v.b}, ${b2n(v.a)})`\n : `rgb(${v.r}, ${v.g}, ${v.b})`\n );\n}\nconst to = v => v <= 0.0031308 ? v * 12.92 : Math.pow(v, 1.0 / 2.4) * 1.055 - 0.055;\nconst from = v => v <= 0.04045 ? v / 12.92 : Math.pow((v + 0.055) / 1.055, 2.4);\nfunction interpolate(rgb1, rgb2, t) {\n const r = from(b2n(rgb1.r));\n const g = from(b2n(rgb1.g));\n const b = from(b2n(rgb1.b));\n return {\n r: n2b(to(r + t * (from(b2n(rgb2.r)) - r))),\n g: n2b(to(g + t * (from(b2n(rgb2.g)) - g))),\n b: n2b(to(b + t * (from(b2n(rgb2.b)) - b))),\n a: rgb1.a + t * (rgb2.a - rgb1.a)\n };\n}\nfunction modHSL(v, i, ratio) {\n if (v) {\n let tmp = rgb2hsl(v);\n tmp[i] = Math.max(0, Math.min(tmp[i] + tmp[i] * ratio, i === 0 ? 360 : 1));\n tmp = hsl2rgb(tmp);\n v.r = tmp[0];\n v.g = tmp[1];\n v.b = tmp[2];\n }\n}\nfunction clone(v, proto) {\n return v ? Object.assign(proto || {}, v) : v;\n}\nfunction fromObject(input) {\n var v = {r: 0, g: 0, b: 0, a: 255};\n if (Array.isArray(input)) {\n if (input.length >= 3) {\n v = {r: input[0], g: input[1], b: input[2], a: 255};\n if (input.length > 3) {\n v.a = n2b(input[3]);\n }\n }\n } else {\n v = clone(input, {r: 0, g: 0, b: 0, a: 1});\n v.a = n2b(v.a);\n }\n return v;\n}\nfunction functionParse(str) {\n if (str.charAt(0) === 'r') {\n return rgbParse(str);\n }\n return hueParse(str);\n}\nclass Color {\n constructor(input) {\n if (input instanceof Color) {\n return input;\n }\n const type = typeof input;\n let v;\n if (type === 'object') {\n v = fromObject(input);\n } else if (type === 'string') {\n v = hexParse(input) || nameParse(input) || functionParse(input);\n }\n this._rgb = v;\n this._valid = !!v;\n }\n get valid() {\n return this._valid;\n }\n get rgb() {\n var v = clone(this._rgb);\n if (v) {\n v.a = b2n(v.a);\n }\n return v;\n }\n set rgb(obj) {\n this._rgb = fromObject(obj);\n }\n rgbString() {\n return this._valid ? rgbString(this._rgb) : undefined;\n }\n hexString() {\n return this._valid ? hexString(this._rgb) : undefined;\n }\n hslString() {\n return this._valid ? hslString(this._rgb) : undefined;\n }\n mix(color, weight) {\n if (color) {\n const c1 = this.rgb;\n const c2 = color.rgb;\n let w2;\n const p = weight === w2 ? 0.5 : weight;\n const w = 2 * p - 1;\n const a = c1.a - c2.a;\n const w1 = ((w * a === -1 ? w : (w + a) / (1 + w * a)) + 1) / 2.0;\n w2 = 1 - w1;\n c1.r = 0xFF & w1 * c1.r + w2 * c2.r + 0.5;\n c1.g = 0xFF & w1 * c1.g + w2 * c2.g + 0.5;\n c1.b = 0xFF & w1 * c1.b + w2 * c2.b + 0.5;\n c1.a = p * c1.a + (1 - p) * c2.a;\n this.rgb = c1;\n }\n return this;\n }\n interpolate(color, t) {\n if (color) {\n this._rgb = interpolate(this._rgb, color._rgb, t);\n }\n return this;\n }\n clone() {\n return new Color(this.rgb);\n }\n alpha(a) {\n this._rgb.a = n2b(a);\n return this;\n }\n clearer(ratio) {\n const rgb = this._rgb;\n rgb.a *= 1 - ratio;\n return this;\n }\n greyscale() {\n const rgb = this._rgb;\n const val = round(rgb.r * 0.3 + rgb.g * 0.59 + rgb.b * 0.11);\n rgb.r = rgb.g = rgb.b = val;\n return this;\n }\n opaquer(ratio) {\n const rgb = this._rgb;\n rgb.a *= 1 + ratio;\n return this;\n }\n negate() {\n const v = this._rgb;\n v.r = 255 - v.r;\n v.g = 255 - v.g;\n v.b = 255 - v.b;\n return this;\n }\n lighten(ratio) {\n modHSL(this._rgb, 2, ratio);\n return this;\n }\n darken(ratio) {\n modHSL(this._rgb, 2, -ratio);\n return this;\n }\n saturate(ratio) {\n modHSL(this._rgb, 1, ratio);\n return this;\n }\n desaturate(ratio) {\n modHSL(this._rgb, 1, -ratio);\n return this;\n }\n rotate(deg) {\n rotate(this._rgb, deg);\n return this;\n }\n}\nfunction index_esm(input) {\n return new Color(input);\n}\n\nfunction isPatternOrGradient(value) {\n if (value && typeof value === 'object') {\n const type = value.toString();\n return type === '[object CanvasPattern]' || type === '[object CanvasGradient]';\n }\n return false;\n}\nfunction color(value) {\n return isPatternOrGradient(value) ? value : index_esm(value);\n}\nfunction getHoverColor(value) {\n return isPatternOrGradient(value)\n ? value\n : index_esm(value).saturate(0.5).darken(0.1).hexString();\n}\n\nconst overrides = Object.create(null);\nconst descriptors = Object.create(null);\nfunction getScope$1(node, key) {\n if (!key) {\n return node;\n }\n const keys = key.split('.');\n for (let i = 0, n = keys.length; i < n; ++i) {\n const k = keys[i];\n node = node[k] || (node[k] = Object.create(null));\n }\n return node;\n}\nfunction set(root, scope, values) {\n if (typeof scope === 'string') {\n return merge(getScope$1(root, scope), values);\n }\n return merge(getScope$1(root, ''), scope);\n}\nclass Defaults {\n constructor(_descriptors) {\n this.animation = undefined;\n this.backgroundColor = 'rgba(0,0,0,0.1)';\n this.borderColor = 'rgba(0,0,0,0.1)';\n this.color = '#666';\n this.datasets = {};\n this.devicePixelRatio = (context) => context.chart.platform.getDevicePixelRatio();\n this.elements = {};\n this.events = [\n 'mousemove',\n 'mouseout',\n 'click',\n 'touchstart',\n 'touchmove'\n ];\n this.font = {\n family: \"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif\",\n size: 12,\n style: 'normal',\n lineHeight: 1.2,\n weight: null\n };\n this.hover = {};\n this.hoverBackgroundColor = (ctx, options) => getHoverColor(options.backgroundColor);\n this.hoverBorderColor = (ctx, options) => getHoverColor(options.borderColor);\n this.hoverColor = (ctx, options) => getHoverColor(options.color);\n this.indexAxis = 'x';\n this.interaction = {\n mode: 'nearest',\n intersect: true,\n includeInvisible: false\n };\n this.maintainAspectRatio = true;\n this.onHover = null;\n this.onClick = null;\n this.parsing = true;\n this.plugins = {};\n this.responsive = true;\n this.scale = undefined;\n this.scales = {};\n this.showLine = true;\n this.drawActiveElementsOnTop = true;\n this.describe(_descriptors);\n }\n set(scope, values) {\n return set(this, scope, values);\n }\n get(scope) {\n return getScope$1(this, scope);\n }\n describe(scope, values) {\n return set(descriptors, scope, values);\n }\n override(scope, values) {\n return set(overrides, scope, values);\n }\n route(scope, name, targetScope, targetName) {\n const scopeObject = getScope$1(this, scope);\n const targetScopeObject = getScope$1(this, targetScope);\n const privateName = '_' + name;\n Object.defineProperties(scopeObject, {\n [privateName]: {\n value: scopeObject[name],\n writable: true\n },\n [name]: {\n enumerable: true,\n get() {\n const local = this[privateName];\n const target = targetScopeObject[targetName];\n if (isObject(local)) {\n return Object.assign({}, target, local);\n }\n return valueOrDefault(local, target);\n },\n set(value) {\n this[privateName] = value;\n }\n }\n });\n }\n}\nvar defaults = new Defaults({\n _scriptable: (name) => !name.startsWith('on'),\n _indexable: (name) => name !== 'events',\n hover: {\n _fallback: 'interaction'\n },\n interaction: {\n _scriptable: false,\n _indexable: false,\n }\n});\n\nfunction toFontString(font) {\n if (!font || isNullOrUndef(font.size) || isNullOrUndef(font.family)) {\n return null;\n }\n return (font.style ? font.style + ' ' : '')\n\t\t+ (font.weight ? font.weight + ' ' : '')\n\t\t+ font.size + 'px '\n\t\t+ font.family;\n}\nfunction _measureText(ctx, data, gc, longest, string) {\n let textWidth = data[string];\n if (!textWidth) {\n textWidth = data[string] = ctx.measureText(string).width;\n gc.push(string);\n }\n if (textWidth > longest) {\n longest = textWidth;\n }\n return longest;\n}\nfunction _longestText(ctx, font, arrayOfThings, cache) {\n cache = cache || {};\n let data = cache.data = cache.data || {};\n let gc = cache.garbageCollect = cache.garbageCollect || [];\n if (cache.font !== font) {\n data = cache.data = {};\n gc = cache.garbageCollect = [];\n cache.font = font;\n }\n ctx.save();\n ctx.font = font;\n let longest = 0;\n const ilen = arrayOfThings.length;\n let i, j, jlen, thing, nestedThing;\n for (i = 0; i < ilen; i++) {\n thing = arrayOfThings[i];\n if (thing !== undefined && thing !== null && isArray(thing) !== true) {\n longest = _measureText(ctx, data, gc, longest, thing);\n } else if (isArray(thing)) {\n for (j = 0, jlen = thing.length; j < jlen; j++) {\n nestedThing = thing[j];\n if (nestedThing !== undefined && nestedThing !== null && !isArray(nestedThing)) {\n longest = _measureText(ctx, data, gc, longest, nestedThing);\n }\n }\n }\n }\n ctx.restore();\n const gcLen = gc.length / 2;\n if (gcLen > arrayOfThings.length) {\n for (i = 0; i < gcLen; i++) {\n delete data[gc[i]];\n }\n gc.splice(0, gcLen);\n }\n return longest;\n}\nfunction _alignPixel(chart, pixel, width) {\n const devicePixelRatio = chart.currentDevicePixelRatio;\n const halfWidth = width !== 0 ? Math.max(width / 2, 0.5) : 0;\n return Math.round((pixel - halfWidth) * devicePixelRatio) / devicePixelRatio + halfWidth;\n}\nfunction clearCanvas(canvas, ctx) {\n ctx = ctx || canvas.getContext('2d');\n ctx.save();\n ctx.resetTransform();\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n ctx.restore();\n}\nfunction drawPoint(ctx, options, x, y) {\n drawPointLegend(ctx, options, x, y, null);\n}\nfunction drawPointLegend(ctx, options, x, y, w) {\n let type, xOffset, yOffset, size, cornerRadius, width;\n const style = options.pointStyle;\n const rotation = options.rotation;\n const radius = options.radius;\n let rad = (rotation || 0) * RAD_PER_DEG;\n if (style && typeof style === 'object') {\n type = style.toString();\n if (type === '[object HTMLImageElement]' || type === '[object HTMLCanvasElement]') {\n ctx.save();\n ctx.translate(x, y);\n ctx.rotate(rad);\n ctx.drawImage(style, -style.width / 2, -style.height / 2, style.width, style.height);\n ctx.restore();\n return;\n }\n }\n if (isNaN(radius) || radius <= 0) {\n return;\n }\n ctx.beginPath();\n switch (style) {\n default:\n if (w) {\n ctx.ellipse(x, y, w / 2, radius, 0, 0, TAU);\n } else {\n ctx.arc(x, y, radius, 0, TAU);\n }\n ctx.closePath();\n break;\n case 'triangle':\n ctx.moveTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\n rad += TWO_THIRDS_PI;\n ctx.lineTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\n rad += TWO_THIRDS_PI;\n ctx.lineTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\n ctx.closePath();\n break;\n case 'rectRounded':\n cornerRadius = radius * 0.516;\n size = radius - cornerRadius;\n xOffset = Math.cos(rad + QUARTER_PI) * size;\n yOffset = Math.sin(rad + QUARTER_PI) * size;\n ctx.arc(x - xOffset, y - yOffset, cornerRadius, rad - PI, rad - HALF_PI);\n ctx.arc(x + yOffset, y - xOffset, cornerRadius, rad - HALF_PI, rad);\n ctx.arc(x + xOffset, y + yOffset, cornerRadius, rad, rad + HALF_PI);\n ctx.arc(x - yOffset, y + xOffset, cornerRadius, rad + HALF_PI, rad + PI);\n ctx.closePath();\n break;\n case 'rect':\n if (!rotation) {\n size = Math.SQRT1_2 * radius;\n width = w ? w / 2 : size;\n ctx.rect(x - width, y - size, 2 * width, 2 * size);\n break;\n }\n rad += QUARTER_PI;\n case 'rectRot':\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + yOffset, y - xOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n ctx.lineTo(x - yOffset, y + xOffset);\n ctx.closePath();\n break;\n case 'crossRot':\n rad += QUARTER_PI;\n case 'cross':\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n ctx.moveTo(x + yOffset, y - xOffset);\n ctx.lineTo(x - yOffset, y + xOffset);\n break;\n case 'star':\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n ctx.moveTo(x + yOffset, y - xOffset);\n ctx.lineTo(x - yOffset, y + xOffset);\n rad += QUARTER_PI;\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n ctx.moveTo(x + yOffset, y - xOffset);\n ctx.lineTo(x - yOffset, y + xOffset);\n break;\n case 'line':\n xOffset = w ? w / 2 : Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n break;\n case 'dash':\n ctx.moveTo(x, y);\n ctx.lineTo(x + Math.cos(rad) * radius, y + Math.sin(rad) * radius);\n break;\n }\n ctx.fill();\n if (options.borderWidth > 0) {\n ctx.stroke();\n }\n}\nfunction _isPointInArea(point, area, margin) {\n margin = margin || 0.5;\n return !area || (point && point.x > area.left - margin && point.x < area.right + margin &&\n\t\tpoint.y > area.top - margin && point.y < area.bottom + margin);\n}\nfunction clipArea(ctx, area) {\n ctx.save();\n ctx.beginPath();\n ctx.rect(area.left, area.top, area.right - area.left, area.bottom - area.top);\n ctx.clip();\n}\nfunction unclipArea(ctx) {\n ctx.restore();\n}\nfunction _steppedLineTo(ctx, previous, target, flip, mode) {\n if (!previous) {\n return ctx.lineTo(target.x, target.y);\n }\n if (mode === 'middle') {\n const midpoint = (previous.x + target.x) / 2.0;\n ctx.lineTo(midpoint, previous.y);\n ctx.lineTo(midpoint, target.y);\n } else if (mode === 'after' !== !!flip) {\n ctx.lineTo(previous.x, target.y);\n } else {\n ctx.lineTo(target.x, previous.y);\n }\n ctx.lineTo(target.x, target.y);\n}\nfunction _bezierCurveTo(ctx, previous, target, flip) {\n if (!previous) {\n return ctx.lineTo(target.x, target.y);\n }\n ctx.bezierCurveTo(\n flip ? previous.cp1x : previous.cp2x,\n flip ? previous.cp1y : previous.cp2y,\n flip ? target.cp2x : target.cp1x,\n flip ? target.cp2y : target.cp1y,\n target.x,\n target.y);\n}\nfunction renderText(ctx, text, x, y, font, opts = {}) {\n const lines = isArray(text) ? text : [text];\n const stroke = opts.strokeWidth > 0 && opts.strokeColor !== '';\n let i, line;\n ctx.save();\n ctx.font = font.string;\n setRenderOpts(ctx, opts);\n for (i = 0; i < lines.length; ++i) {\n line = lines[i];\n if (stroke) {\n if (opts.strokeColor) {\n ctx.strokeStyle = opts.strokeColor;\n }\n if (!isNullOrUndef(opts.strokeWidth)) {\n ctx.lineWidth = opts.strokeWidth;\n }\n ctx.strokeText(line, x, y, opts.maxWidth);\n }\n ctx.fillText(line, x, y, opts.maxWidth);\n decorateText(ctx, x, y, line, opts);\n y += font.lineHeight;\n }\n ctx.restore();\n}\nfunction setRenderOpts(ctx, opts) {\n if (opts.translation) {\n ctx.translate(opts.translation[0], opts.translation[1]);\n }\n if (!isNullOrUndef(opts.rotation)) {\n ctx.rotate(opts.rotation);\n }\n if (opts.color) {\n ctx.fillStyle = opts.color;\n }\n if (opts.textAlign) {\n ctx.textAlign = opts.textAlign;\n }\n if (opts.textBaseline) {\n ctx.textBaseline = opts.textBaseline;\n }\n}\nfunction decorateText(ctx, x, y, line, opts) {\n if (opts.strikethrough || opts.underline) {\n const metrics = ctx.measureText(line);\n const left = x - metrics.actualBoundingBoxLeft;\n const right = x + metrics.actualBoundingBoxRight;\n const top = y - metrics.actualBoundingBoxAscent;\n const bottom = y + metrics.actualBoundingBoxDescent;\n const yDecoration = opts.strikethrough ? (top + bottom) / 2 : bottom;\n ctx.strokeStyle = ctx.fillStyle;\n ctx.beginPath();\n ctx.lineWidth = opts.decorationWidth || 2;\n ctx.moveTo(left, yDecoration);\n ctx.lineTo(right, yDecoration);\n ctx.stroke();\n }\n}\nfunction addRoundedRectPath(ctx, rect) {\n const {x, y, w, h, radius} = rect;\n ctx.arc(x + radius.topLeft, y + radius.topLeft, radius.topLeft, -HALF_PI, PI, true);\n ctx.lineTo(x, y + h - radius.bottomLeft);\n ctx.arc(x + radius.bottomLeft, y + h - radius.bottomLeft, radius.bottomLeft, PI, HALF_PI, true);\n ctx.lineTo(x + w - radius.bottomRight, y + h);\n ctx.arc(x + w - radius.bottomRight, y + h - radius.bottomRight, radius.bottomRight, HALF_PI, 0, true);\n ctx.lineTo(x + w, y + radius.topRight);\n ctx.arc(x + w - radius.topRight, y + radius.topRight, radius.topRight, 0, -HALF_PI, true);\n ctx.lineTo(x + radius.topLeft, y);\n}\n\nconst LINE_HEIGHT = new RegExp(/^(normal|(\\d+(?:\\.\\d+)?)(px|em|%)?)$/);\nconst FONT_STYLE = new RegExp(/^(normal|italic|initial|inherit|unset|(oblique( -?[0-9]?[0-9]deg)?))$/);\nfunction toLineHeight(value, size) {\n const matches = ('' + value).match(LINE_HEIGHT);\n if (!matches || matches[1] === 'normal') {\n return size * 1.2;\n }\n value = +matches[2];\n switch (matches[3]) {\n case 'px':\n return value;\n case '%':\n value /= 100;\n break;\n }\n return size * value;\n}\nconst numberOrZero = v => +v || 0;\nfunction _readValueToProps(value, props) {\n const ret = {};\n const objProps = isObject(props);\n const keys = objProps ? Object.keys(props) : props;\n const read = isObject(value)\n ? objProps\n ? prop => valueOrDefault(value[prop], value[props[prop]])\n : prop => value[prop]\n : () => value;\n for (const prop of keys) {\n ret[prop] = numberOrZero(read(prop));\n }\n return ret;\n}\nfunction toTRBL(value) {\n return _readValueToProps(value, {top: 'y', right: 'x', bottom: 'y', left: 'x'});\n}\nfunction toTRBLCorners(value) {\n return _readValueToProps(value, ['topLeft', 'topRight', 'bottomLeft', 'bottomRight']);\n}\nfunction toPadding(value) {\n const obj = toTRBL(value);\n obj.width = obj.left + obj.right;\n obj.height = obj.top + obj.bottom;\n return obj;\n}\nfunction toFont(options, fallback) {\n options = options || {};\n fallback = fallback || defaults.font;\n let size = valueOrDefault(options.size, fallback.size);\n if (typeof size === 'string') {\n size = parseInt(size, 10);\n }\n let style = valueOrDefault(options.style, fallback.style);\n if (style && !('' + style).match(FONT_STYLE)) {\n console.warn('Invalid font style specified: \"' + style + '\"');\n style = '';\n }\n const font = {\n family: valueOrDefault(options.family, fallback.family),\n lineHeight: toLineHeight(valueOrDefault(options.lineHeight, fallback.lineHeight), size),\n size,\n style,\n weight: valueOrDefault(options.weight, fallback.weight),\n string: ''\n };\n font.string = toFontString(font);\n return font;\n}\nfunction resolve(inputs, context, index, info) {\n let cacheable = true;\n let i, ilen, value;\n for (i = 0, ilen = inputs.length; i < ilen; ++i) {\n value = inputs[i];\n if (value === undefined) {\n continue;\n }\n if (context !== undefined && typeof value === 'function') {\n value = value(context);\n cacheable = false;\n }\n if (index !== undefined && isArray(value)) {\n value = value[index % value.length];\n cacheable = false;\n }\n if (value !== undefined) {\n if (info && !cacheable) {\n info.cacheable = false;\n }\n return value;\n }\n }\n}\nfunction _addGrace(minmax, grace, beginAtZero) {\n const {min, max} = minmax;\n const change = toDimension(grace, (max - min) / 2);\n const keepZero = (value, add) => beginAtZero && value === 0 ? 0 : value + add;\n return {\n min: keepZero(min, -Math.abs(change)),\n max: keepZero(max, change)\n };\n}\nfunction createContext(parentContext, context) {\n return Object.assign(Object.create(parentContext), context);\n}\n\nfunction _createResolver(scopes, prefixes = [''], rootScopes = scopes, fallback, getTarget = () => scopes[0]) {\n if (!defined(fallback)) {\n fallback = _resolve('_fallback', scopes);\n }\n const cache = {\n [Symbol.toStringTag]: 'Object',\n _cacheable: true,\n _scopes: scopes,\n _rootScopes: rootScopes,\n _fallback: fallback,\n _getTarget: getTarget,\n override: (scope) => _createResolver([scope, ...scopes], prefixes, rootScopes, fallback),\n };\n return new Proxy(cache, {\n deleteProperty(target, prop) {\n delete target[prop];\n delete target._keys;\n delete scopes[0][prop];\n return true;\n },\n get(target, prop) {\n return _cached(target, prop,\n () => _resolveWithPrefixes(prop, prefixes, scopes, target));\n },\n getOwnPropertyDescriptor(target, prop) {\n return Reflect.getOwnPropertyDescriptor(target._scopes[0], prop);\n },\n getPrototypeOf() {\n return Reflect.getPrototypeOf(scopes[0]);\n },\n has(target, prop) {\n return getKeysFromAllScopes(target).includes(prop);\n },\n ownKeys(target) {\n return getKeysFromAllScopes(target);\n },\n set(target, prop, value) {\n const storage = target._storage || (target._storage = getTarget());\n target[prop] = storage[prop] = value;\n delete target._keys;\n return true;\n }\n });\n}\nfunction _attachContext(proxy, context, subProxy, descriptorDefaults) {\n const cache = {\n _cacheable: false,\n _proxy: proxy,\n _context: context,\n _subProxy: subProxy,\n _stack: new Set(),\n _descriptors: _descriptors(proxy, descriptorDefaults),\n setContext: (ctx) => _attachContext(proxy, ctx, subProxy, descriptorDefaults),\n override: (scope) => _attachContext(proxy.override(scope), context, subProxy, descriptorDefaults)\n };\n return new Proxy(cache, {\n deleteProperty(target, prop) {\n delete target[prop];\n delete proxy[prop];\n return true;\n },\n get(target, prop, receiver) {\n return _cached(target, prop,\n () => _resolveWithContext(target, prop, receiver));\n },\n getOwnPropertyDescriptor(target, prop) {\n return target._descriptors.allKeys\n ? Reflect.has(proxy, prop) ? {enumerable: true, configurable: true} : undefined\n : Reflect.getOwnPropertyDescriptor(proxy, prop);\n },\n getPrototypeOf() {\n return Reflect.getPrototypeOf(proxy);\n },\n has(target, prop) {\n return Reflect.has(proxy, prop);\n },\n ownKeys() {\n return Reflect.ownKeys(proxy);\n },\n set(target, prop, value) {\n proxy[prop] = value;\n delete target[prop];\n return true;\n }\n });\n}\nfunction _descriptors(proxy, defaults = {scriptable: true, indexable: true}) {\n const {_scriptable = defaults.scriptable, _indexable = defaults.indexable, _allKeys = defaults.allKeys} = proxy;\n return {\n allKeys: _allKeys,\n scriptable: _scriptable,\n indexable: _indexable,\n isScriptable: isFunction(_scriptable) ? _scriptable : () => _scriptable,\n isIndexable: isFunction(_indexable) ? _indexable : () => _indexable\n };\n}\nconst readKey = (prefix, name) => prefix ? prefix + _capitalize(name) : name;\nconst needsSubResolver = (prop, value) => isObject(value) && prop !== 'adapters' &&\n (Object.getPrototypeOf(value) === null || value.constructor === Object);\nfunction _cached(target, prop, resolve) {\n if (Object.prototype.hasOwnProperty.call(target, prop)) {\n return target[prop];\n }\n const value = resolve();\n target[prop] = value;\n return value;\n}\nfunction _resolveWithContext(target, prop, receiver) {\n const {_proxy, _context, _subProxy, _descriptors: descriptors} = target;\n let value = _proxy[prop];\n if (isFunction(value) && descriptors.isScriptable(prop)) {\n value = _resolveScriptable(prop, value, target, receiver);\n }\n if (isArray(value) && value.length) {\n value = _resolveArray(prop, value, target, descriptors.isIndexable);\n }\n if (needsSubResolver(prop, value)) {\n value = _attachContext(value, _context, _subProxy && _subProxy[prop], descriptors);\n }\n return value;\n}\nfunction _resolveScriptable(prop, value, target, receiver) {\n const {_proxy, _context, _subProxy, _stack} = target;\n if (_stack.has(prop)) {\n throw new Error('Recursion detected: ' + Array.from(_stack).join('->') + '->' + prop);\n }\n _stack.add(prop);\n value = value(_context, _subProxy || receiver);\n _stack.delete(prop);\n if (needsSubResolver(prop, value)) {\n value = createSubResolver(_proxy._scopes, _proxy, prop, value);\n }\n return value;\n}\nfunction _resolveArray(prop, value, target, isIndexable) {\n const {_proxy, _context, _subProxy, _descriptors: descriptors} = target;\n if (defined(_context.index) && isIndexable(prop)) {\n value = value[_context.index % value.length];\n } else if (isObject(value[0])) {\n const arr = value;\n const scopes = _proxy._scopes.filter(s => s !== arr);\n value = [];\n for (const item of arr) {\n const resolver = createSubResolver(scopes, _proxy, prop, item);\n value.push(_attachContext(resolver, _context, _subProxy && _subProxy[prop], descriptors));\n }\n }\n return value;\n}\nfunction resolveFallback(fallback, prop, value) {\n return isFunction(fallback) ? fallback(prop, value) : fallback;\n}\nconst getScope = (key, parent) => key === true ? parent\n : typeof key === 'string' ? resolveObjectKey(parent, key) : undefined;\nfunction addScopes(set, parentScopes, key, parentFallback, value) {\n for (const parent of parentScopes) {\n const scope = getScope(key, parent);\n if (scope) {\n set.add(scope);\n const fallback = resolveFallback(scope._fallback, key, value);\n if (defined(fallback) && fallback !== key && fallback !== parentFallback) {\n return fallback;\n }\n } else if (scope === false && defined(parentFallback) && key !== parentFallback) {\n return null;\n }\n }\n return false;\n}\nfunction createSubResolver(parentScopes, resolver, prop, value) {\n const rootScopes = resolver._rootScopes;\n const fallback = resolveFallback(resolver._fallback, prop, value);\n const allScopes = [...parentScopes, ...rootScopes];\n const set = new Set();\n set.add(value);\n let key = addScopesFromKey(set, allScopes, prop, fallback || prop, value);\n if (key === null) {\n return false;\n }\n if (defined(fallback) && fallback !== prop) {\n key = addScopesFromKey(set, allScopes, fallback, key, value);\n if (key === null) {\n return false;\n }\n }\n return _createResolver(Array.from(set), [''], rootScopes, fallback,\n () => subGetTarget(resolver, prop, value));\n}\nfunction addScopesFromKey(set, allScopes, key, fallback, item) {\n while (key) {\n key = addScopes(set, allScopes, key, fallback, item);\n }\n return key;\n}\nfunction subGetTarget(resolver, prop, value) {\n const parent = resolver._getTarget();\n if (!(prop in parent)) {\n parent[prop] = {};\n }\n const target = parent[prop];\n if (isArray(target) && isObject(value)) {\n return value;\n }\n return target;\n}\nfunction _resolveWithPrefixes(prop, prefixes, scopes, proxy) {\n let value;\n for (const prefix of prefixes) {\n value = _resolve(readKey(prefix, prop), scopes);\n if (defined(value)) {\n return needsSubResolver(prop, value)\n ? createSubResolver(scopes, proxy, prop, value)\n : value;\n }\n }\n}\nfunction _resolve(key, scopes) {\n for (const scope of scopes) {\n if (!scope) {\n continue;\n }\n const value = scope[key];\n if (defined(value)) {\n return value;\n }\n }\n}\nfunction getKeysFromAllScopes(target) {\n let keys = target._keys;\n if (!keys) {\n keys = target._keys = resolveKeysFromAllScopes(target._scopes);\n }\n return keys;\n}\nfunction resolveKeysFromAllScopes(scopes) {\n const set = new Set();\n for (const scope of scopes) {\n for (const key of Object.keys(scope).filter(k => !k.startsWith('_'))) {\n set.add(key);\n }\n }\n return Array.from(set);\n}\nfunction _parseObjectDataRadialScale(meta, data, start, count) {\n const {iScale} = meta;\n const {key = 'r'} = this._parsing;\n const parsed = new Array(count);\n let i, ilen, index, item;\n for (i = 0, ilen = count; i < ilen; ++i) {\n index = i + start;\n item = data[index];\n parsed[i] = {\n r: iScale.parse(resolveObjectKey(item, key), index)\n };\n }\n return parsed;\n}\n\nconst EPSILON = Number.EPSILON || 1e-14;\nconst getPoint = (points, i) => i < points.length && !points[i].skip && points[i];\nconst getValueAxis = (indexAxis) => indexAxis === 'x' ? 'y' : 'x';\nfunction splineCurve(firstPoint, middlePoint, afterPoint, t) {\n const previous = firstPoint.skip ? middlePoint : firstPoint;\n const current = middlePoint;\n const next = afterPoint.skip ? middlePoint : afterPoint;\n const d01 = distanceBetweenPoints(current, previous);\n const d12 = distanceBetweenPoints(next, current);\n let s01 = d01 / (d01 + d12);\n let s12 = d12 / (d01 + d12);\n s01 = isNaN(s01) ? 0 : s01;\n s12 = isNaN(s12) ? 0 : s12;\n const fa = t * s01;\n const fb = t * s12;\n return {\n previous: {\n x: current.x - fa * (next.x - previous.x),\n y: current.y - fa * (next.y - previous.y)\n },\n next: {\n x: current.x + fb * (next.x - previous.x),\n y: current.y + fb * (next.y - previous.y)\n }\n };\n}\nfunction monotoneAdjust(points, deltaK, mK) {\n const pointsLen = points.length;\n let alphaK, betaK, tauK, squaredMagnitude, pointCurrent;\n let pointAfter = getPoint(points, 0);\n for (let i = 0; i < pointsLen - 1; ++i) {\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n if (!pointCurrent || !pointAfter) {\n continue;\n }\n if (almostEquals(deltaK[i], 0, EPSILON)) {\n mK[i] = mK[i + 1] = 0;\n continue;\n }\n alphaK = mK[i] / deltaK[i];\n betaK = mK[i + 1] / deltaK[i];\n squaredMagnitude = Math.pow(alphaK, 2) + Math.pow(betaK, 2);\n if (squaredMagnitude <= 9) {\n continue;\n }\n tauK = 3 / Math.sqrt(squaredMagnitude);\n mK[i] = alphaK * tauK * deltaK[i];\n mK[i + 1] = betaK * tauK * deltaK[i];\n }\n}\nfunction monotoneCompute(points, mK, indexAxis = 'x') {\n const valueAxis = getValueAxis(indexAxis);\n const pointsLen = points.length;\n let delta, pointBefore, pointCurrent;\n let pointAfter = getPoint(points, 0);\n for (let i = 0; i < pointsLen; ++i) {\n pointBefore = pointCurrent;\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n if (!pointCurrent) {\n continue;\n }\n const iPixel = pointCurrent[indexAxis];\n const vPixel = pointCurrent[valueAxis];\n if (pointBefore) {\n delta = (iPixel - pointBefore[indexAxis]) / 3;\n pointCurrent[`cp1${indexAxis}`] = iPixel - delta;\n pointCurrent[`cp1${valueAxis}`] = vPixel - delta * mK[i];\n }\n if (pointAfter) {\n delta = (pointAfter[indexAxis] - iPixel) / 3;\n pointCurrent[`cp2${indexAxis}`] = iPixel + delta;\n pointCurrent[`cp2${valueAxis}`] = vPixel + delta * mK[i];\n }\n }\n}\nfunction splineCurveMonotone(points, indexAxis = 'x') {\n const valueAxis = getValueAxis(indexAxis);\n const pointsLen = points.length;\n const deltaK = Array(pointsLen).fill(0);\n const mK = Array(pointsLen);\n let i, pointBefore, pointCurrent;\n let pointAfter = getPoint(points, 0);\n for (i = 0; i < pointsLen; ++i) {\n pointBefore = pointCurrent;\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n if (!pointCurrent) {\n continue;\n }\n if (pointAfter) {\n const slopeDelta = pointAfter[indexAxis] - pointCurrent[indexAxis];\n deltaK[i] = slopeDelta !== 0 ? (pointAfter[valueAxis] - pointCurrent[valueAxis]) / slopeDelta : 0;\n }\n mK[i] = !pointBefore ? deltaK[i]\n : !pointAfter ? deltaK[i - 1]\n : (sign(deltaK[i - 1]) !== sign(deltaK[i])) ? 0\n : (deltaK[i - 1] + deltaK[i]) / 2;\n }\n monotoneAdjust(points, deltaK, mK);\n monotoneCompute(points, mK, indexAxis);\n}\nfunction capControlPoint(pt, min, max) {\n return Math.max(Math.min(pt, max), min);\n}\nfunction capBezierPoints(points, area) {\n let i, ilen, point, inArea, inAreaPrev;\n let inAreaNext = _isPointInArea(points[0], area);\n for (i = 0, ilen = points.length; i < ilen; ++i) {\n inAreaPrev = inArea;\n inArea = inAreaNext;\n inAreaNext = i < ilen - 1 && _isPointInArea(points[i + 1], area);\n if (!inArea) {\n continue;\n }\n point = points[i];\n if (inAreaPrev) {\n point.cp1x = capControlPoint(point.cp1x, area.left, area.right);\n point.cp1y = capControlPoint(point.cp1y, area.top, area.bottom);\n }\n if (inAreaNext) {\n point.cp2x = capControlPoint(point.cp2x, area.left, area.right);\n point.cp2y = capControlPoint(point.cp2y, area.top, area.bottom);\n }\n }\n}\nfunction _updateBezierControlPoints(points, options, area, loop, indexAxis) {\n let i, ilen, point, controlPoints;\n if (options.spanGaps) {\n points = points.filter((pt) => !pt.skip);\n }\n if (options.cubicInterpolationMode === 'monotone') {\n splineCurveMonotone(points, indexAxis);\n } else {\n let prev = loop ? points[points.length - 1] : points[0];\n for (i = 0, ilen = points.length; i < ilen; ++i) {\n point = points[i];\n controlPoints = splineCurve(\n prev,\n point,\n points[Math.min(i + 1, ilen - (loop ? 0 : 1)) % ilen],\n options.tension\n );\n point.cp1x = controlPoints.previous.x;\n point.cp1y = controlPoints.previous.y;\n point.cp2x = controlPoints.next.x;\n point.cp2y = controlPoints.next.y;\n prev = point;\n }\n }\n if (options.capBezierPoints) {\n capBezierPoints(points, area);\n }\n}\n\nfunction _isDomSupported() {\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n}\nfunction _getParentNode(domNode) {\n let parent = domNode.parentNode;\n if (parent && parent.toString() === '[object ShadowRoot]') {\n parent = parent.host;\n }\n return parent;\n}\nfunction parseMaxStyle(styleValue, node, parentProperty) {\n let valueInPixels;\n if (typeof styleValue === 'string') {\n valueInPixels = parseInt(styleValue, 10);\n if (styleValue.indexOf('%') !== -1) {\n valueInPixels = valueInPixels / 100 * node.parentNode[parentProperty];\n }\n } else {\n valueInPixels = styleValue;\n }\n return valueInPixels;\n}\nconst getComputedStyle = (element) => window.getComputedStyle(element, null);\nfunction getStyle(el, property) {\n return getComputedStyle(el).getPropertyValue(property);\n}\nconst positions = ['top', 'right', 'bottom', 'left'];\nfunction getPositionedStyle(styles, style, suffix) {\n const result = {};\n suffix = suffix ? '-' + suffix : '';\n for (let i = 0; i < 4; i++) {\n const pos = positions[i];\n result[pos] = parseFloat(styles[style + '-' + pos + suffix]) || 0;\n }\n result.width = result.left + result.right;\n result.height = result.top + result.bottom;\n return result;\n}\nconst useOffsetPos = (x, y, target) => (x > 0 || y > 0) && (!target || !target.shadowRoot);\nfunction getCanvasPosition(e, canvas) {\n const touches = e.touches;\n const source = touches && touches.length ? touches[0] : e;\n const {offsetX, offsetY} = source;\n let box = false;\n let x, y;\n if (useOffsetPos(offsetX, offsetY, e.target)) {\n x = offsetX;\n y = offsetY;\n } else {\n const rect = canvas.getBoundingClientRect();\n x = source.clientX - rect.left;\n y = source.clientY - rect.top;\n box = true;\n }\n return {x, y, box};\n}\nfunction getRelativePosition(evt, chart) {\n if ('native' in evt) {\n return evt;\n }\n const {canvas, currentDevicePixelRatio} = chart;\n const style = getComputedStyle(canvas);\n const borderBox = style.boxSizing === 'border-box';\n const paddings = getPositionedStyle(style, 'padding');\n const borders = getPositionedStyle(style, 'border', 'width');\n const {x, y, box} = getCanvasPosition(evt, canvas);\n const xOffset = paddings.left + (box && borders.left);\n const yOffset = paddings.top + (box && borders.top);\n let {width, height} = chart;\n if (borderBox) {\n width -= paddings.width + borders.width;\n height -= paddings.height + borders.height;\n }\n return {\n x: Math.round((x - xOffset) / width * canvas.width / currentDevicePixelRatio),\n y: Math.round((y - yOffset) / height * canvas.height / currentDevicePixelRatio)\n };\n}\nfunction getContainerSize(canvas, width, height) {\n let maxWidth, maxHeight;\n if (width === undefined || height === undefined) {\n const container = _getParentNode(canvas);\n if (!container) {\n width = canvas.clientWidth;\n height = canvas.clientHeight;\n } else {\n const rect = container.getBoundingClientRect();\n const containerStyle = getComputedStyle(container);\n const containerBorder = getPositionedStyle(containerStyle, 'border', 'width');\n const containerPadding = getPositionedStyle(containerStyle, 'padding');\n width = rect.width - containerPadding.width - containerBorder.width;\n height = rect.height - containerPadding.height - containerBorder.height;\n maxWidth = parseMaxStyle(containerStyle.maxWidth, container, 'clientWidth');\n maxHeight = parseMaxStyle(containerStyle.maxHeight, container, 'clientHeight');\n }\n }\n return {\n width,\n height,\n maxWidth: maxWidth || INFINITY,\n maxHeight: maxHeight || INFINITY\n };\n}\nconst round1 = v => Math.round(v * 10) / 10;\nfunction getMaximumSize(canvas, bbWidth, bbHeight, aspectRatio) {\n const style = getComputedStyle(canvas);\n const margins = getPositionedStyle(style, 'margin');\n const maxWidth = parseMaxStyle(style.maxWidth, canvas, 'clientWidth') || INFINITY;\n const maxHeight = parseMaxStyle(style.maxHeight, canvas, 'clientHeight') || INFINITY;\n const containerSize = getContainerSize(canvas, bbWidth, bbHeight);\n let {width, height} = containerSize;\n if (style.boxSizing === 'content-box') {\n const borders = getPositionedStyle(style, 'border', 'width');\n const paddings = getPositionedStyle(style, 'padding');\n width -= paddings.width + borders.width;\n height -= paddings.height + borders.height;\n }\n width = Math.max(0, width - margins.width);\n height = Math.max(0, aspectRatio ? Math.floor(width / aspectRatio) : height - margins.height);\n width = round1(Math.min(width, maxWidth, containerSize.maxWidth));\n height = round1(Math.min(height, maxHeight, containerSize.maxHeight));\n if (width && !height) {\n height = round1(width / 2);\n }\n return {\n width,\n height\n };\n}\nfunction retinaScale(chart, forceRatio, forceStyle) {\n const pixelRatio = forceRatio || 1;\n const deviceHeight = Math.floor(chart.height * pixelRatio);\n const deviceWidth = Math.floor(chart.width * pixelRatio);\n chart.height = deviceHeight / pixelRatio;\n chart.width = deviceWidth / pixelRatio;\n const canvas = chart.canvas;\n if (canvas.style && (forceStyle || (!canvas.style.height && !canvas.style.width))) {\n canvas.style.height = `${chart.height}px`;\n canvas.style.width = `${chart.width}px`;\n }\n if (chart.currentDevicePixelRatio !== pixelRatio\n || canvas.height !== deviceHeight\n || canvas.width !== deviceWidth) {\n chart.currentDevicePixelRatio = pixelRatio;\n canvas.height = deviceHeight;\n canvas.width = deviceWidth;\n chart.ctx.setTransform(pixelRatio, 0, 0, pixelRatio, 0, 0);\n return true;\n }\n return false;\n}\nconst supportsEventListenerOptions = (function() {\n let passiveSupported = false;\n try {\n const options = {\n get passive() {\n passiveSupported = true;\n return false;\n }\n };\n window.addEventListener('test', null, options);\n window.removeEventListener('test', null, options);\n } catch (e) {\n }\n return passiveSupported;\n}());\nfunction readUsedSize(element, property) {\n const value = getStyle(element, property);\n const matches = value && value.match(/^(\\d+)(\\.\\d+)?px$/);\n return matches ? +matches[1] : undefined;\n}\n\nfunction _pointInLine(p1, p2, t, mode) {\n return {\n x: p1.x + t * (p2.x - p1.x),\n y: p1.y + t * (p2.y - p1.y)\n };\n}\nfunction _steppedInterpolation(p1, p2, t, mode) {\n return {\n x: p1.x + t * (p2.x - p1.x),\n y: mode === 'middle' ? t < 0.5 ? p1.y : p2.y\n : mode === 'after' ? t < 1 ? p1.y : p2.y\n : t > 0 ? p2.y : p1.y\n };\n}\nfunction _bezierInterpolation(p1, p2, t, mode) {\n const cp1 = {x: p1.cp2x, y: p1.cp2y};\n const cp2 = {x: p2.cp1x, y: p2.cp1y};\n const a = _pointInLine(p1, cp1, t);\n const b = _pointInLine(cp1, cp2, t);\n const c = _pointInLine(cp2, p2, t);\n const d = _pointInLine(a, b, t);\n const e = _pointInLine(b, c, t);\n return _pointInLine(d, e, t);\n}\n\nconst intlCache = new Map();\nfunction getNumberFormat(locale, options) {\n options = options || {};\n const cacheKey = locale + JSON.stringify(options);\n let formatter = intlCache.get(cacheKey);\n if (!formatter) {\n formatter = new Intl.NumberFormat(locale, options);\n intlCache.set(cacheKey, formatter);\n }\n return formatter;\n}\nfunction formatNumber(num, locale, options) {\n return getNumberFormat(locale, options).format(num);\n}\n\nconst getRightToLeftAdapter = function(rectX, width) {\n return {\n x(x) {\n return rectX + rectX + width - x;\n },\n setWidth(w) {\n width = w;\n },\n textAlign(align) {\n if (align === 'center') {\n return align;\n }\n return align === 'right' ? 'left' : 'right';\n },\n xPlus(x, value) {\n return x - value;\n },\n leftForLtr(x, itemWidth) {\n return x - itemWidth;\n },\n };\n};\nconst getLeftToRightAdapter = function() {\n return {\n x(x) {\n return x;\n },\n setWidth(w) {\n },\n textAlign(align) {\n return align;\n },\n xPlus(x, value) {\n return x + value;\n },\n leftForLtr(x, _itemWidth) {\n return x;\n },\n };\n};\nfunction getRtlAdapter(rtl, rectX, width) {\n return rtl ? getRightToLeftAdapter(rectX, width) : getLeftToRightAdapter();\n}\nfunction overrideTextDirection(ctx, direction) {\n let style, original;\n if (direction === 'ltr' || direction === 'rtl') {\n style = ctx.canvas.style;\n original = [\n style.getPropertyValue('direction'),\n style.getPropertyPriority('direction'),\n ];\n style.setProperty('direction', direction, 'important');\n ctx.prevTextDirection = original;\n }\n}\nfunction restoreTextDirection(ctx, original) {\n if (original !== undefined) {\n delete ctx.prevTextDirection;\n ctx.canvas.style.setProperty('direction', original[0], original[1]);\n }\n}\n\nfunction propertyFn(property) {\n if (property === 'angle') {\n return {\n between: _angleBetween,\n compare: _angleDiff,\n normalize: _normalizeAngle,\n };\n }\n return {\n between: _isBetween,\n compare: (a, b) => a - b,\n normalize: x => x\n };\n}\nfunction normalizeSegment({start, end, count, loop, style}) {\n return {\n start: start % count,\n end: end % count,\n loop: loop && (end - start + 1) % count === 0,\n style\n };\n}\nfunction getSegment(segment, points, bounds) {\n const {property, start: startBound, end: endBound} = bounds;\n const {between, normalize} = propertyFn(property);\n const count = points.length;\n let {start, end, loop} = segment;\n let i, ilen;\n if (loop) {\n start += count;\n end += count;\n for (i = 0, ilen = count; i < ilen; ++i) {\n if (!between(normalize(points[start % count][property]), startBound, endBound)) {\n break;\n }\n start--;\n end--;\n }\n start %= count;\n end %= count;\n }\n if (end < start) {\n end += count;\n }\n return {start, end, loop, style: segment.style};\n}\nfunction _boundSegment(segment, points, bounds) {\n if (!bounds) {\n return [segment];\n }\n const {property, start: startBound, end: endBound} = bounds;\n const count = points.length;\n const {compare, between, normalize} = propertyFn(property);\n const {start, end, loop, style} = getSegment(segment, points, bounds);\n const result = [];\n let inside = false;\n let subStart = null;\n let value, point, prevValue;\n const startIsBefore = () => between(startBound, prevValue, value) && compare(startBound, prevValue) !== 0;\n const endIsBefore = () => compare(endBound, value) === 0 || between(endBound, prevValue, value);\n const shouldStart = () => inside || startIsBefore();\n const shouldStop = () => !inside || endIsBefore();\n for (let i = start, prev = start; i <= end; ++i) {\n point = points[i % count];\n if (point.skip) {\n continue;\n }\n value = normalize(point[property]);\n if (value === prevValue) {\n continue;\n }\n inside = between(value, startBound, endBound);\n if (subStart === null && shouldStart()) {\n subStart = compare(value, startBound) === 0 ? i : prev;\n }\n if (subStart !== null && shouldStop()) {\n result.push(normalizeSegment({start: subStart, end: i, loop, count, style}));\n subStart = null;\n }\n prev = i;\n prevValue = value;\n }\n if (subStart !== null) {\n result.push(normalizeSegment({start: subStart, end, loop, count, style}));\n }\n return result;\n}\nfunction _boundSegments(line, bounds) {\n const result = [];\n const segments = line.segments;\n for (let i = 0; i < segments.length; i++) {\n const sub = _boundSegment(segments[i], line.points, bounds);\n if (sub.length) {\n result.push(...sub);\n }\n }\n return result;\n}\nfunction findStartAndEnd(points, count, loop, spanGaps) {\n let start = 0;\n let end = count - 1;\n if (loop && !spanGaps) {\n while (start < count && !points[start].skip) {\n start++;\n }\n }\n while (start < count && points[start].skip) {\n start++;\n }\n start %= count;\n if (loop) {\n end += start;\n }\n while (end > start && points[end % count].skip) {\n end--;\n }\n end %= count;\n return {start, end};\n}\nfunction solidSegments(points, start, max, loop) {\n const count = points.length;\n const result = [];\n let last = start;\n let prev = points[start];\n let end;\n for (end = start + 1; end <= max; ++end) {\n const cur = points[end % count];\n if (cur.skip || cur.stop) {\n if (!prev.skip) {\n loop = false;\n result.push({start: start % count, end: (end - 1) % count, loop});\n start = last = cur.stop ? end : null;\n }\n } else {\n last = end;\n if (prev.skip) {\n start = end;\n }\n }\n prev = cur;\n }\n if (last !== null) {\n result.push({start: start % count, end: last % count, loop});\n }\n return result;\n}\nfunction _computeSegments(line, segmentOptions) {\n const points = line.points;\n const spanGaps = line.options.spanGaps;\n const count = points.length;\n if (!count) {\n return [];\n }\n const loop = !!line._loop;\n const {start, end} = findStartAndEnd(points, count, loop, spanGaps);\n if (spanGaps === true) {\n return splitByStyles(line, [{start, end, loop}], points, segmentOptions);\n }\n const max = end < start ? end + count : end;\n const completeLoop = !!line._fullLoop && start === 0 && end === count - 1;\n return splitByStyles(line, solidSegments(points, start, max, completeLoop), points, segmentOptions);\n}\nfunction splitByStyles(line, segments, points, segmentOptions) {\n if (!segmentOptions || !segmentOptions.setContext || !points) {\n return segments;\n }\n return doSplitByStyles(line, segments, points, segmentOptions);\n}\nfunction doSplitByStyles(line, segments, points, segmentOptions) {\n const chartContext = line._chart.getContext();\n const baseStyle = readStyle(line.options);\n const {_datasetIndex: datasetIndex, options: {spanGaps}} = line;\n const count = points.length;\n const result = [];\n let prevStyle = baseStyle;\n let start = segments[0].start;\n let i = start;\n function addStyle(s, e, l, st) {\n const dir = spanGaps ? -1 : 1;\n if (s === e) {\n return;\n }\n s += count;\n while (points[s % count].skip) {\n s -= dir;\n }\n while (points[e % count].skip) {\n e += dir;\n }\n if (s % count !== e % count) {\n result.push({start: s % count, end: e % count, loop: l, style: st});\n prevStyle = st;\n start = e % count;\n }\n }\n for (const segment of segments) {\n start = spanGaps ? start : segment.start;\n let prev = points[start % count];\n let style;\n for (i = start + 1; i <= segment.end; i++) {\n const pt = points[i % count];\n style = readStyle(segmentOptions.setContext(createContext(chartContext, {\n type: 'segment',\n p0: prev,\n p1: pt,\n p0DataIndex: (i - 1) % count,\n p1DataIndex: i % count,\n datasetIndex\n })));\n if (styleChanged(style, prevStyle)) {\n addStyle(start, i - 1, segment.loop, prevStyle);\n }\n prev = pt;\n prevStyle = style;\n }\n if (start < i - 1) {\n addStyle(start, i - 1, segment.loop, prevStyle);\n }\n }\n return result;\n}\nfunction readStyle(options) {\n return {\n backgroundColor: options.backgroundColor,\n borderCapStyle: options.borderCapStyle,\n borderDash: options.borderDash,\n borderDashOffset: options.borderDashOffset,\n borderJoinStyle: options.borderJoinStyle,\n borderWidth: options.borderWidth,\n borderColor: options.borderColor\n };\n}\nfunction styleChanged(style, prevStyle) {\n return prevStyle && JSON.stringify(style) !== JSON.stringify(prevStyle);\n}\n\nexport { _isPointInArea as $, _factorize as A, finiteOrDefault as B, callback as C, _addGrace as D, _limitValue as E, toDegrees as F, _measureText as G, HALF_PI as H, _int16Range as I, _alignPixel as J, toPadding as K, clipArea as L, renderText as M, unclipArea as N, toFont as O, PI as P, each as Q, _toLeftRightCenter as R, _alignStartEnd as S, TAU as T, overrides as U, merge as V, _capitalize as W, getRelativePosition as X, _rlookupByKey as Y, _lookupByKey as Z, _arrayUnique as _, resolve as a, toLineHeight as a$, getAngleFromPoint as a0, getMaximumSize as a1, _getParentNode as a2, readUsedSize as a3, throttled as a4, supportsEventListenerOptions as a5, _isDomSupported as a6, descriptors as a7, isFunction as a8, _attachContext as a9, getRtlAdapter as aA, overrideTextDirection as aB, _textX as aC, restoreTextDirection as aD, drawPointLegend as aE, noop as aF, distanceBetweenPoints as aG, _setMinAndMaxByKey as aH, niceNum as aI, almostWhole as aJ, almostEquals as aK, _decimalPlaces as aL, _longestText as aM, _filterBetween as aN, _lookup as aO, isPatternOrGradient as aP, getHoverColor as aQ, clone$1 as aR, _merger as aS, _mergerIf as aT, _deprecated as aU, _splitKey as aV, toFontString as aW, splineCurve as aX, splineCurveMonotone as aY, getStyle as aZ, fontString as a_, _createResolver as aa, _descriptors as ab, mergeIf as ac, uid as ad, debounce as ae, retinaScale as af, clearCanvas as ag, setsEqual as ah, _elementsEqual as ai, _isClickEvent as aj, _isBetween as ak, _readValueToProps as al, _updateBezierControlPoints as am, _computeSegments as an, _boundSegments as ao, _steppedInterpolation as ap, _bezierInterpolation as aq, _pointInLine as ar, _steppedLineTo as as, _bezierCurveTo as at, drawPoint as au, addRoundedRectPath as av, toTRBL as aw, toTRBLCorners as ax, _boundSegment as ay, _normalizeAngle as az, isArray as b, PITAU as b0, INFINITY as b1, RAD_PER_DEG as b2, QUARTER_PI as b3, TWO_THIRDS_PI as b4, _angleDiff as b5, color as c, defaults as d, effects as e, resolveObjectKey as f, isNumberFinite as g, createContext as h, isObject as i, defined as j, isNullOrUndef as k, listenArrayEvents as l, toPercentage as m, toDimension as n, formatNumber as o, _angleBetween as p, _getStartAndCountOfVisiblePoints as q, requestAnimFrame as r, sign as s, toRadians as t, unlistenArrayEvents as u, valueOrDefault as v, _scaleRangesChanged as w, isNumber as x, _parseObjectDataRadialScale as y, log10 as z };\n","/*!\n * Chart.js v3.9.1\n * https://www.chartjs.org\n * (c) 2022 Chart.js Contributors\n * Released under the MIT License\n */\nimport { r as requestAnimFrame, a as resolve, e as effects, c as color, d as defaults, i as isObject, b as isArray, v as valueOrDefault, u as unlistenArrayEvents, l as listenArrayEvents, f as resolveObjectKey, g as isNumberFinite, h as createContext, j as defined, s as sign, k as isNullOrUndef, _ as _arrayUnique, t as toRadians, m as toPercentage, n as toDimension, T as TAU, o as formatNumber, p as _angleBetween, H as HALF_PI, P as PI, q as _getStartAndCountOfVisiblePoints, w as _scaleRangesChanged, x as isNumber, y as _parseObjectDataRadialScale, z as log10, A as _factorize, B as finiteOrDefault, C as callback, D as _addGrace, E as _limitValue, F as toDegrees, G as _measureText, I as _int16Range, J as _alignPixel, K as toPadding, L as clipArea, M as renderText, N as unclipArea, O as toFont, Q as each, R as _toLeftRightCenter, S as _alignStartEnd, U as overrides, V as merge, W as _capitalize, X as getRelativePosition, Y as _rlookupByKey, Z as _lookupByKey, $ as _isPointInArea, a0 as getAngleFromPoint, a1 as getMaximumSize, a2 as _getParentNode, a3 as readUsedSize, a4 as throttled, a5 as supportsEventListenerOptions, a6 as _isDomSupported, a7 as descriptors, a8 as isFunction, a9 as _attachContext, aa as _createResolver, ab as _descriptors, ac as mergeIf, ad as uid, ae as debounce, af as retinaScale, ag as clearCanvas, ah as setsEqual, ai as _elementsEqual, aj as _isClickEvent, ak as _isBetween, al as _readValueToProps, am as _updateBezierControlPoints, an as _computeSegments, ao as _boundSegments, ap as _steppedInterpolation, aq as _bezierInterpolation, ar as _pointInLine, as as _steppedLineTo, at as _bezierCurveTo, au as drawPoint, av as addRoundedRectPath, aw as toTRBL, ax as toTRBLCorners, ay as _boundSegment, az as _normalizeAngle, aA as getRtlAdapter, aB as overrideTextDirection, aC as _textX, aD as restoreTextDirection, aE as drawPointLegend, aF as noop, aG as distanceBetweenPoints, aH as _setMinAndMaxByKey, aI as niceNum, aJ as almostWhole, aK as almostEquals, aL as _decimalPlaces, aM as _longestText, aN as _filterBetween, aO as _lookup } from './chunks/helpers.segment.mjs';\nexport { d as defaults } from './chunks/helpers.segment.mjs';\n\nclass Animator {\n constructor() {\n this._request = null;\n this._charts = new Map();\n this._running = false;\n this._lastDate = undefined;\n }\n _notify(chart, anims, date, type) {\n const callbacks = anims.listeners[type];\n const numSteps = anims.duration;\n callbacks.forEach(fn => fn({\n chart,\n initial: anims.initial,\n numSteps,\n currentStep: Math.min(date - anims.start, numSteps)\n }));\n }\n _refresh() {\n if (this._request) {\n return;\n }\n this._running = true;\n this._request = requestAnimFrame.call(window, () => {\n this._update();\n this._request = null;\n if (this._running) {\n this._refresh();\n }\n });\n }\n _update(date = Date.now()) {\n let remaining = 0;\n this._charts.forEach((anims, chart) => {\n if (!anims.running || !anims.items.length) {\n return;\n }\n const items = anims.items;\n let i = items.length - 1;\n let draw = false;\n let item;\n for (; i >= 0; --i) {\n item = items[i];\n if (item._active) {\n if (item._total > anims.duration) {\n anims.duration = item._total;\n }\n item.tick(date);\n draw = true;\n } else {\n items[i] = items[items.length - 1];\n items.pop();\n }\n }\n if (draw) {\n chart.draw();\n this._notify(chart, anims, date, 'progress');\n }\n if (!items.length) {\n anims.running = false;\n this._notify(chart, anims, date, 'complete');\n anims.initial = false;\n }\n remaining += items.length;\n });\n this._lastDate = date;\n if (remaining === 0) {\n this._running = false;\n }\n }\n _getAnims(chart) {\n const charts = this._charts;\n let anims = charts.get(chart);\n if (!anims) {\n anims = {\n running: false,\n initial: true,\n items: [],\n listeners: {\n complete: [],\n progress: []\n }\n };\n charts.set(chart, anims);\n }\n return anims;\n }\n listen(chart, event, cb) {\n this._getAnims(chart).listeners[event].push(cb);\n }\n add(chart, items) {\n if (!items || !items.length) {\n return;\n }\n this._getAnims(chart).items.push(...items);\n }\n has(chart) {\n return this._getAnims(chart).items.length > 0;\n }\n start(chart) {\n const anims = this._charts.get(chart);\n if (!anims) {\n return;\n }\n anims.running = true;\n anims.start = Date.now();\n anims.duration = anims.items.reduce((acc, cur) => Math.max(acc, cur._duration), 0);\n this._refresh();\n }\n running(chart) {\n if (!this._running) {\n return false;\n }\n const anims = this._charts.get(chart);\n if (!anims || !anims.running || !anims.items.length) {\n return false;\n }\n return true;\n }\n stop(chart) {\n const anims = this._charts.get(chart);\n if (!anims || !anims.items.length) {\n return;\n }\n const items = anims.items;\n let i = items.length - 1;\n for (; i >= 0; --i) {\n items[i].cancel();\n }\n anims.items = [];\n this._notify(chart, anims, Date.now(), 'complete');\n }\n remove(chart) {\n return this._charts.delete(chart);\n }\n}\nvar animator = new Animator();\n\nconst transparent = 'transparent';\nconst interpolators = {\n boolean(from, to, factor) {\n return factor > 0.5 ? to : from;\n },\n color(from, to, factor) {\n const c0 = color(from || transparent);\n const c1 = c0.valid && color(to || transparent);\n return c1 && c1.valid\n ? c1.mix(c0, factor).hexString()\n : to;\n },\n number(from, to, factor) {\n return from + (to - from) * factor;\n }\n};\nclass Animation {\n constructor(cfg, target, prop, to) {\n const currentValue = target[prop];\n to = resolve([cfg.to, to, currentValue, cfg.from]);\n const from = resolve([cfg.from, currentValue, to]);\n this._active = true;\n this._fn = cfg.fn || interpolators[cfg.type || typeof from];\n this._easing = effects[cfg.easing] || effects.linear;\n this._start = Math.floor(Date.now() + (cfg.delay || 0));\n this._duration = this._total = Math.floor(cfg.duration);\n this._loop = !!cfg.loop;\n this._target = target;\n this._prop = prop;\n this._from = from;\n this._to = to;\n this._promises = undefined;\n }\n active() {\n return this._active;\n }\n update(cfg, to, date) {\n if (this._active) {\n this._notify(false);\n const currentValue = this._target[this._prop];\n const elapsed = date - this._start;\n const remain = this._duration - elapsed;\n this._start = date;\n this._duration = Math.floor(Math.max(remain, cfg.duration));\n this._total += elapsed;\n this._loop = !!cfg.loop;\n this._to = resolve([cfg.to, to, currentValue, cfg.from]);\n this._from = resolve([cfg.from, currentValue, to]);\n }\n }\n cancel() {\n if (this._active) {\n this.tick(Date.now());\n this._active = false;\n this._notify(false);\n }\n }\n tick(date) {\n const elapsed = date - this._start;\n const duration = this._duration;\n const prop = this._prop;\n const from = this._from;\n const loop = this._loop;\n const to = this._to;\n let factor;\n this._active = from !== to && (loop || (elapsed < duration));\n if (!this._active) {\n this._target[prop] = to;\n this._notify(true);\n return;\n }\n if (elapsed < 0) {\n this._target[prop] = from;\n return;\n }\n factor = (elapsed / duration) % 2;\n factor = loop && factor > 1 ? 2 - factor : factor;\n factor = this._easing(Math.min(1, Math.max(0, factor)));\n this._target[prop] = this._fn(from, to, factor);\n }\n wait() {\n const promises = this._promises || (this._promises = []);\n return new Promise((res, rej) => {\n promises.push({res, rej});\n });\n }\n _notify(resolved) {\n const method = resolved ? 'res' : 'rej';\n const promises = this._promises || [];\n for (let i = 0; i < promises.length; i++) {\n promises[i][method]();\n }\n }\n}\n\nconst numbers = ['x', 'y', 'borderWidth', 'radius', 'tension'];\nconst colors = ['color', 'borderColor', 'backgroundColor'];\ndefaults.set('animation', {\n delay: undefined,\n duration: 1000,\n easing: 'easeOutQuart',\n fn: undefined,\n from: undefined,\n loop: undefined,\n to: undefined,\n type: undefined,\n});\nconst animationOptions = Object.keys(defaults.animation);\ndefaults.describe('animation', {\n _fallback: false,\n _indexable: false,\n _scriptable: (name) => name !== 'onProgress' && name !== 'onComplete' && name !== 'fn',\n});\ndefaults.set('animations', {\n colors: {\n type: 'color',\n properties: colors\n },\n numbers: {\n type: 'number',\n properties: numbers\n },\n});\ndefaults.describe('animations', {\n _fallback: 'animation',\n});\ndefaults.set('transitions', {\n active: {\n animation: {\n duration: 400\n }\n },\n resize: {\n animation: {\n duration: 0\n }\n },\n show: {\n animations: {\n colors: {\n from: 'transparent'\n },\n visible: {\n type: 'boolean',\n duration: 0\n },\n }\n },\n hide: {\n animations: {\n colors: {\n to: 'transparent'\n },\n visible: {\n type: 'boolean',\n easing: 'linear',\n fn: v => v | 0\n },\n }\n }\n});\nclass Animations {\n constructor(chart, config) {\n this._chart = chart;\n this._properties = new Map();\n this.configure(config);\n }\n configure(config) {\n if (!isObject(config)) {\n return;\n }\n const animatedProps = this._properties;\n Object.getOwnPropertyNames(config).forEach(key => {\n const cfg = config[key];\n if (!isObject(cfg)) {\n return;\n }\n const resolved = {};\n for (const option of animationOptions) {\n resolved[option] = cfg[option];\n }\n (isArray(cfg.properties) && cfg.properties || [key]).forEach((prop) => {\n if (prop === key || !animatedProps.has(prop)) {\n animatedProps.set(prop, resolved);\n }\n });\n });\n }\n _animateOptions(target, values) {\n const newOptions = values.options;\n const options = resolveTargetOptions(target, newOptions);\n if (!options) {\n return [];\n }\n const animations = this._createAnimations(options, newOptions);\n if (newOptions.$shared) {\n awaitAll(target.options.$animations, newOptions).then(() => {\n target.options = newOptions;\n }, () => {\n });\n }\n return animations;\n }\n _createAnimations(target, values) {\n const animatedProps = this._properties;\n const animations = [];\n const running = target.$animations || (target.$animations = {});\n const props = Object.keys(values);\n const date = Date.now();\n let i;\n for (i = props.length - 1; i >= 0; --i) {\n const prop = props[i];\n if (prop.charAt(0) === '$') {\n continue;\n }\n if (prop === 'options') {\n animations.push(...this._animateOptions(target, values));\n continue;\n }\n const value = values[prop];\n let animation = running[prop];\n const cfg = animatedProps.get(prop);\n if (animation) {\n if (cfg && animation.active()) {\n animation.update(cfg, value, date);\n continue;\n } else {\n animation.cancel();\n }\n }\n if (!cfg || !cfg.duration) {\n target[prop] = value;\n continue;\n }\n running[prop] = animation = new Animation(cfg, target, prop, value);\n animations.push(animation);\n }\n return animations;\n }\n update(target, values) {\n if (this._properties.size === 0) {\n Object.assign(target, values);\n return;\n }\n const animations = this._createAnimations(target, values);\n if (animations.length) {\n animator.add(this._chart, animations);\n return true;\n }\n }\n}\nfunction awaitAll(animations, properties) {\n const running = [];\n const keys = Object.keys(properties);\n for (let i = 0; i < keys.length; i++) {\n const anim = animations[keys[i]];\n if (anim && anim.active()) {\n running.push(anim.wait());\n }\n }\n return Promise.all(running);\n}\nfunction resolveTargetOptions(target, newOptions) {\n if (!newOptions) {\n return;\n }\n let options = target.options;\n if (!options) {\n target.options = newOptions;\n return;\n }\n if (options.$shared) {\n target.options = options = Object.assign({}, options, {$shared: false, $animations: {}});\n }\n return options;\n}\n\nfunction scaleClip(scale, allowedOverflow) {\n const opts = scale && scale.options || {};\n const reverse = opts.reverse;\n const min = opts.min === undefined ? allowedOverflow : 0;\n const max = opts.max === undefined ? allowedOverflow : 0;\n return {\n start: reverse ? max : min,\n end: reverse ? min : max\n };\n}\nfunction defaultClip(xScale, yScale, allowedOverflow) {\n if (allowedOverflow === false) {\n return false;\n }\n const x = scaleClip(xScale, allowedOverflow);\n const y = scaleClip(yScale, allowedOverflow);\n return {\n top: y.end,\n right: x.end,\n bottom: y.start,\n left: x.start\n };\n}\nfunction toClip(value) {\n let t, r, b, l;\n if (isObject(value)) {\n t = value.top;\n r = value.right;\n b = value.bottom;\n l = value.left;\n } else {\n t = r = b = l = value;\n }\n return {\n top: t,\n right: r,\n bottom: b,\n left: l,\n disabled: value === false\n };\n}\nfunction getSortedDatasetIndices(chart, filterVisible) {\n const keys = [];\n const metasets = chart._getSortedDatasetMetas(filterVisible);\n let i, ilen;\n for (i = 0, ilen = metasets.length; i < ilen; ++i) {\n keys.push(metasets[i].index);\n }\n return keys;\n}\nfunction applyStack(stack, value, dsIndex, options = {}) {\n const keys = stack.keys;\n const singleMode = options.mode === 'single';\n let i, ilen, datasetIndex, otherValue;\n if (value === null) {\n return;\n }\n for (i = 0, ilen = keys.length; i < ilen; ++i) {\n datasetIndex = +keys[i];\n if (datasetIndex === dsIndex) {\n if (options.all) {\n continue;\n }\n break;\n }\n otherValue = stack.values[datasetIndex];\n if (isNumberFinite(otherValue) && (singleMode || (value === 0 || sign(value) === sign(otherValue)))) {\n value += otherValue;\n }\n }\n return value;\n}\nfunction convertObjectDataToArray(data) {\n const keys = Object.keys(data);\n const adata = new Array(keys.length);\n let i, ilen, key;\n for (i = 0, ilen = keys.length; i < ilen; ++i) {\n key = keys[i];\n adata[i] = {\n x: key,\n y: data[key]\n };\n }\n return adata;\n}\nfunction isStacked(scale, meta) {\n const stacked = scale && scale.options.stacked;\n return stacked || (stacked === undefined && meta.stack !== undefined);\n}\nfunction getStackKey(indexScale, valueScale, meta) {\n return `${indexScale.id}.${valueScale.id}.${meta.stack || meta.type}`;\n}\nfunction getUserBounds(scale) {\n const {min, max, minDefined, maxDefined} = scale.getUserBounds();\n return {\n min: minDefined ? min : Number.NEGATIVE_INFINITY,\n max: maxDefined ? max : Number.POSITIVE_INFINITY\n };\n}\nfunction getOrCreateStack(stacks, stackKey, indexValue) {\n const subStack = stacks[stackKey] || (stacks[stackKey] = {});\n return subStack[indexValue] || (subStack[indexValue] = {});\n}\nfunction getLastIndexInStack(stack, vScale, positive, type) {\n for (const meta of vScale.getMatchingVisibleMetas(type).reverse()) {\n const value = stack[meta.index];\n if ((positive && value > 0) || (!positive && value < 0)) {\n return meta.index;\n }\n }\n return null;\n}\nfunction updateStacks(controller, parsed) {\n const {chart, _cachedMeta: meta} = controller;\n const stacks = chart._stacks || (chart._stacks = {});\n const {iScale, vScale, index: datasetIndex} = meta;\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n const key = getStackKey(iScale, vScale, meta);\n const ilen = parsed.length;\n let stack;\n for (let i = 0; i < ilen; ++i) {\n const item = parsed[i];\n const {[iAxis]: index, [vAxis]: value} = item;\n const itemStacks = item._stacks || (item._stacks = {});\n stack = itemStacks[vAxis] = getOrCreateStack(stacks, key, index);\n stack[datasetIndex] = value;\n stack._top = getLastIndexInStack(stack, vScale, true, meta.type);\n stack._bottom = getLastIndexInStack(stack, vScale, false, meta.type);\n }\n}\nfunction getFirstScaleId(chart, axis) {\n const scales = chart.scales;\n return Object.keys(scales).filter(key => scales[key].axis === axis).shift();\n}\nfunction createDatasetContext(parent, index) {\n return createContext(parent,\n {\n active: false,\n dataset: undefined,\n datasetIndex: index,\n index,\n mode: 'default',\n type: 'dataset'\n }\n );\n}\nfunction createDataContext(parent, index, element) {\n return createContext(parent, {\n active: false,\n dataIndex: index,\n parsed: undefined,\n raw: undefined,\n element,\n index,\n mode: 'default',\n type: 'data'\n });\n}\nfunction clearStacks(meta, items) {\n const datasetIndex = meta.controller.index;\n const axis = meta.vScale && meta.vScale.axis;\n if (!axis) {\n return;\n }\n items = items || meta._parsed;\n for (const parsed of items) {\n const stacks = parsed._stacks;\n if (!stacks || stacks[axis] === undefined || stacks[axis][datasetIndex] === undefined) {\n return;\n }\n delete stacks[axis][datasetIndex];\n }\n}\nconst isDirectUpdateMode = (mode) => mode === 'reset' || mode === 'none';\nconst cloneIfNotShared = (cached, shared) => shared ? cached : Object.assign({}, cached);\nconst createStack = (canStack, meta, chart) => canStack && !meta.hidden && meta._stacked\n && {keys: getSortedDatasetIndices(chart, true), values: null};\nclass DatasetController {\n constructor(chart, datasetIndex) {\n this.chart = chart;\n this._ctx = chart.ctx;\n this.index = datasetIndex;\n this._cachedDataOpts = {};\n this._cachedMeta = this.getMeta();\n this._type = this._cachedMeta.type;\n this.options = undefined;\n this._parsing = false;\n this._data = undefined;\n this._objectData = undefined;\n this._sharedOptions = undefined;\n this._drawStart = undefined;\n this._drawCount = undefined;\n this.enableOptionSharing = false;\n this.supportsDecimation = false;\n this.$context = undefined;\n this._syncList = [];\n this.initialize();\n }\n initialize() {\n const meta = this._cachedMeta;\n this.configure();\n this.linkScales();\n meta._stacked = isStacked(meta.vScale, meta);\n this.addElements();\n }\n updateIndex(datasetIndex) {\n if (this.index !== datasetIndex) {\n clearStacks(this._cachedMeta);\n }\n this.index = datasetIndex;\n }\n linkScales() {\n const chart = this.chart;\n const meta = this._cachedMeta;\n const dataset = this.getDataset();\n const chooseId = (axis, x, y, r) => axis === 'x' ? x : axis === 'r' ? r : y;\n const xid = meta.xAxisID = valueOrDefault(dataset.xAxisID, getFirstScaleId(chart, 'x'));\n const yid = meta.yAxisID = valueOrDefault(dataset.yAxisID, getFirstScaleId(chart, 'y'));\n const rid = meta.rAxisID = valueOrDefault(dataset.rAxisID, getFirstScaleId(chart, 'r'));\n const indexAxis = meta.indexAxis;\n const iid = meta.iAxisID = chooseId(indexAxis, xid, yid, rid);\n const vid = meta.vAxisID = chooseId(indexAxis, yid, xid, rid);\n meta.xScale = this.getScaleForId(xid);\n meta.yScale = this.getScaleForId(yid);\n meta.rScale = this.getScaleForId(rid);\n meta.iScale = this.getScaleForId(iid);\n meta.vScale = this.getScaleForId(vid);\n }\n getDataset() {\n return this.chart.data.datasets[this.index];\n }\n getMeta() {\n return this.chart.getDatasetMeta(this.index);\n }\n getScaleForId(scaleID) {\n return this.chart.scales[scaleID];\n }\n _getOtherScale(scale) {\n const meta = this._cachedMeta;\n return scale === meta.iScale\n ? meta.vScale\n : meta.iScale;\n }\n reset() {\n this._update('reset');\n }\n _destroy() {\n const meta = this._cachedMeta;\n if (this._data) {\n unlistenArrayEvents(this._data, this);\n }\n if (meta._stacked) {\n clearStacks(meta);\n }\n }\n _dataCheck() {\n const dataset = this.getDataset();\n const data = dataset.data || (dataset.data = []);\n const _data = this._data;\n if (isObject(data)) {\n this._data = convertObjectDataToArray(data);\n } else if (_data !== data) {\n if (_data) {\n unlistenArrayEvents(_data, this);\n const meta = this._cachedMeta;\n clearStacks(meta);\n meta._parsed = [];\n }\n if (data && Object.isExtensible(data)) {\n listenArrayEvents(data, this);\n }\n this._syncList = [];\n this._data = data;\n }\n }\n addElements() {\n const meta = this._cachedMeta;\n this._dataCheck();\n if (this.datasetElementType) {\n meta.dataset = new this.datasetElementType();\n }\n }\n buildOrUpdateElements(resetNewElements) {\n const meta = this._cachedMeta;\n const dataset = this.getDataset();\n let stackChanged = false;\n this._dataCheck();\n const oldStacked = meta._stacked;\n meta._stacked = isStacked(meta.vScale, meta);\n if (meta.stack !== dataset.stack) {\n stackChanged = true;\n clearStacks(meta);\n meta.stack = dataset.stack;\n }\n this._resyncElements(resetNewElements);\n if (stackChanged || oldStacked !== meta._stacked) {\n updateStacks(this, meta._parsed);\n }\n }\n configure() {\n const config = this.chart.config;\n const scopeKeys = config.datasetScopeKeys(this._type);\n const scopes = config.getOptionScopes(this.getDataset(), scopeKeys, true);\n this.options = config.createResolver(scopes, this.getContext());\n this._parsing = this.options.parsing;\n this._cachedDataOpts = {};\n }\n parse(start, count) {\n const {_cachedMeta: meta, _data: data} = this;\n const {iScale, _stacked} = meta;\n const iAxis = iScale.axis;\n let sorted = start === 0 && count === data.length ? true : meta._sorted;\n let prev = start > 0 && meta._parsed[start - 1];\n let i, cur, parsed;\n if (this._parsing === false) {\n meta._parsed = data;\n meta._sorted = true;\n parsed = data;\n } else {\n if (isArray(data[start])) {\n parsed = this.parseArrayData(meta, data, start, count);\n } else if (isObject(data[start])) {\n parsed = this.parseObjectData(meta, data, start, count);\n } else {\n parsed = this.parsePrimitiveData(meta, data, start, count);\n }\n const isNotInOrderComparedToPrev = () => cur[iAxis] === null || (prev && cur[iAxis] < prev[iAxis]);\n for (i = 0; i < count; ++i) {\n meta._parsed[i + start] = cur = parsed[i];\n if (sorted) {\n if (isNotInOrderComparedToPrev()) {\n sorted = false;\n }\n prev = cur;\n }\n }\n meta._sorted = sorted;\n }\n if (_stacked) {\n updateStacks(this, parsed);\n }\n }\n parsePrimitiveData(meta, data, start, count) {\n const {iScale, vScale} = meta;\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n const labels = iScale.getLabels();\n const singleScale = iScale === vScale;\n const parsed = new Array(count);\n let i, ilen, index;\n for (i = 0, ilen = count; i < ilen; ++i) {\n index = i + start;\n parsed[i] = {\n [iAxis]: singleScale || iScale.parse(labels[index], index),\n [vAxis]: vScale.parse(data[index], index)\n };\n }\n return parsed;\n }\n parseArrayData(meta, data, start, count) {\n const {xScale, yScale} = meta;\n const parsed = new Array(count);\n let i, ilen, index, item;\n for (i = 0, ilen = count; i < ilen; ++i) {\n index = i + start;\n item = data[index];\n parsed[i] = {\n x: xScale.parse(item[0], index),\n y: yScale.parse(item[1], index)\n };\n }\n return parsed;\n }\n parseObjectData(meta, data, start, count) {\n const {xScale, yScale} = meta;\n const {xAxisKey = 'x', yAxisKey = 'y'} = this._parsing;\n const parsed = new Array(count);\n let i, ilen, index, item;\n for (i = 0, ilen = count; i < ilen; ++i) {\n index = i + start;\n item = data[index];\n parsed[i] = {\n x: xScale.parse(resolveObjectKey(item, xAxisKey), index),\n y: yScale.parse(resolveObjectKey(item, yAxisKey), index)\n };\n }\n return parsed;\n }\n getParsed(index) {\n return this._cachedMeta._parsed[index];\n }\n getDataElement(index) {\n return this._cachedMeta.data[index];\n }\n applyStack(scale, parsed, mode) {\n const chart = this.chart;\n const meta = this._cachedMeta;\n const value = parsed[scale.axis];\n const stack = {\n keys: getSortedDatasetIndices(chart, true),\n values: parsed._stacks[scale.axis]\n };\n return applyStack(stack, value, meta.index, {mode});\n }\n updateRangeFromParsed(range, scale, parsed, stack) {\n const parsedValue = parsed[scale.axis];\n let value = parsedValue === null ? NaN : parsedValue;\n const values = stack && parsed._stacks[scale.axis];\n if (stack && values) {\n stack.values = values;\n value = applyStack(stack, parsedValue, this._cachedMeta.index);\n }\n range.min = Math.min(range.min, value);\n range.max = Math.max(range.max, value);\n }\n getMinMax(scale, canStack) {\n const meta = this._cachedMeta;\n const _parsed = meta._parsed;\n const sorted = meta._sorted && scale === meta.iScale;\n const ilen = _parsed.length;\n const otherScale = this._getOtherScale(scale);\n const stack = createStack(canStack, meta, this.chart);\n const range = {min: Number.POSITIVE_INFINITY, max: Number.NEGATIVE_INFINITY};\n const {min: otherMin, max: otherMax} = getUserBounds(otherScale);\n let i, parsed;\n function _skip() {\n parsed = _parsed[i];\n const otherValue = parsed[otherScale.axis];\n return !isNumberFinite(parsed[scale.axis]) || otherMin > otherValue || otherMax < otherValue;\n }\n for (i = 0; i < ilen; ++i) {\n if (_skip()) {\n continue;\n }\n this.updateRangeFromParsed(range, scale, parsed, stack);\n if (sorted) {\n break;\n }\n }\n if (sorted) {\n for (i = ilen - 1; i >= 0; --i) {\n if (_skip()) {\n continue;\n }\n this.updateRangeFromParsed(range, scale, parsed, stack);\n break;\n }\n }\n return range;\n }\n getAllParsedValues(scale) {\n const parsed = this._cachedMeta._parsed;\n const values = [];\n let i, ilen, value;\n for (i = 0, ilen = parsed.length; i < ilen; ++i) {\n value = parsed[i][scale.axis];\n if (isNumberFinite(value)) {\n values.push(value);\n }\n }\n return values;\n }\n getMaxOverflow() {\n return false;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const iScale = meta.iScale;\n const vScale = meta.vScale;\n const parsed = this.getParsed(index);\n return {\n label: iScale ? '' + iScale.getLabelForValue(parsed[iScale.axis]) : '',\n value: vScale ? '' + vScale.getLabelForValue(parsed[vScale.axis]) : ''\n };\n }\n _update(mode) {\n const meta = this._cachedMeta;\n this.update(mode || 'default');\n meta._clip = toClip(valueOrDefault(this.options.clip, defaultClip(meta.xScale, meta.yScale, this.getMaxOverflow())));\n }\n update(mode) {}\n draw() {\n const ctx = this._ctx;\n const chart = this.chart;\n const meta = this._cachedMeta;\n const elements = meta.data || [];\n const area = chart.chartArea;\n const active = [];\n const start = this._drawStart || 0;\n const count = this._drawCount || (elements.length - start);\n const drawActiveElementsOnTop = this.options.drawActiveElementsOnTop;\n let i;\n if (meta.dataset) {\n meta.dataset.draw(ctx, area, start, count);\n }\n for (i = start; i < start + count; ++i) {\n const element = elements[i];\n if (element.hidden) {\n continue;\n }\n if (element.active && drawActiveElementsOnTop) {\n active.push(element);\n } else {\n element.draw(ctx, area);\n }\n }\n for (i = 0; i < active.length; ++i) {\n active[i].draw(ctx, area);\n }\n }\n getStyle(index, active) {\n const mode = active ? 'active' : 'default';\n return index === undefined && this._cachedMeta.dataset\n ? this.resolveDatasetElementOptions(mode)\n : this.resolveDataElementOptions(index || 0, mode);\n }\n getContext(index, active, mode) {\n const dataset = this.getDataset();\n let context;\n if (index >= 0 && index < this._cachedMeta.data.length) {\n const element = this._cachedMeta.data[index];\n context = element.$context ||\n (element.$context = createDataContext(this.getContext(), index, element));\n context.parsed = this.getParsed(index);\n context.raw = dataset.data[index];\n context.index = context.dataIndex = index;\n } else {\n context = this.$context ||\n (this.$context = createDatasetContext(this.chart.getContext(), this.index));\n context.dataset = dataset;\n context.index = context.datasetIndex = this.index;\n }\n context.active = !!active;\n context.mode = mode;\n return context;\n }\n resolveDatasetElementOptions(mode) {\n return this._resolveElementOptions(this.datasetElementType.id, mode);\n }\n resolveDataElementOptions(index, mode) {\n return this._resolveElementOptions(this.dataElementType.id, mode, index);\n }\n _resolveElementOptions(elementType, mode = 'default', index) {\n const active = mode === 'active';\n const cache = this._cachedDataOpts;\n const cacheKey = elementType + '-' + mode;\n const cached = cache[cacheKey];\n const sharing = this.enableOptionSharing && defined(index);\n if (cached) {\n return cloneIfNotShared(cached, sharing);\n }\n const config = this.chart.config;\n const scopeKeys = config.datasetElementScopeKeys(this._type, elementType);\n const prefixes = active ? [`${elementType}Hover`, 'hover', elementType, ''] : [elementType, ''];\n const scopes = config.getOptionScopes(this.getDataset(), scopeKeys);\n const names = Object.keys(defaults.elements[elementType]);\n const context = () => this.getContext(index, active);\n const values = config.resolveNamedOptions(scopes, names, context, prefixes);\n if (values.$shared) {\n values.$shared = sharing;\n cache[cacheKey] = Object.freeze(cloneIfNotShared(values, sharing));\n }\n return values;\n }\n _resolveAnimations(index, transition, active) {\n const chart = this.chart;\n const cache = this._cachedDataOpts;\n const cacheKey = `animation-${transition}`;\n const cached = cache[cacheKey];\n if (cached) {\n return cached;\n }\n let options;\n if (chart.options.animation !== false) {\n const config = this.chart.config;\n const scopeKeys = config.datasetAnimationScopeKeys(this._type, transition);\n const scopes = config.getOptionScopes(this.getDataset(), scopeKeys);\n options = config.createResolver(scopes, this.getContext(index, active, transition));\n }\n const animations = new Animations(chart, options && options.animations);\n if (options && options._cacheable) {\n cache[cacheKey] = Object.freeze(animations);\n }\n return animations;\n }\n getSharedOptions(options) {\n if (!options.$shared) {\n return;\n }\n return this._sharedOptions || (this._sharedOptions = Object.assign({}, options));\n }\n includeOptions(mode, sharedOptions) {\n return !sharedOptions || isDirectUpdateMode(mode) || this.chart._animationsDisabled;\n }\n _getSharedOptions(start, mode) {\n const firstOpts = this.resolveDataElementOptions(start, mode);\n const previouslySharedOptions = this._sharedOptions;\n const sharedOptions = this.getSharedOptions(firstOpts);\n const includeOptions = this.includeOptions(mode, sharedOptions) || (sharedOptions !== previouslySharedOptions);\n this.updateSharedOptions(sharedOptions, mode, firstOpts);\n return {sharedOptions, includeOptions};\n }\n updateElement(element, index, properties, mode) {\n if (isDirectUpdateMode(mode)) {\n Object.assign(element, properties);\n } else {\n this._resolveAnimations(index, mode).update(element, properties);\n }\n }\n updateSharedOptions(sharedOptions, mode, newOptions) {\n if (sharedOptions && !isDirectUpdateMode(mode)) {\n this._resolveAnimations(undefined, mode).update(sharedOptions, newOptions);\n }\n }\n _setStyle(element, index, mode, active) {\n element.active = active;\n const options = this.getStyle(index, active);\n this._resolveAnimations(index, mode, active).update(element, {\n options: (!active && this.getSharedOptions(options)) || options\n });\n }\n removeHoverStyle(element, datasetIndex, index) {\n this._setStyle(element, index, 'active', false);\n }\n setHoverStyle(element, datasetIndex, index) {\n this._setStyle(element, index, 'active', true);\n }\n _removeDatasetHoverStyle() {\n const element = this._cachedMeta.dataset;\n if (element) {\n this._setStyle(element, undefined, 'active', false);\n }\n }\n _setDatasetHoverStyle() {\n const element = this._cachedMeta.dataset;\n if (element) {\n this._setStyle(element, undefined, 'active', true);\n }\n }\n _resyncElements(resetNewElements) {\n const data = this._data;\n const elements = this._cachedMeta.data;\n for (const [method, arg1, arg2] of this._syncList) {\n this[method](arg1, arg2);\n }\n this._syncList = [];\n const numMeta = elements.length;\n const numData = data.length;\n const count = Math.min(numData, numMeta);\n if (count) {\n this.parse(0, count);\n }\n if (numData > numMeta) {\n this._insertElements(numMeta, numData - numMeta, resetNewElements);\n } else if (numData < numMeta) {\n this._removeElements(numData, numMeta - numData);\n }\n }\n _insertElements(start, count, resetNewElements = true) {\n const meta = this._cachedMeta;\n const data = meta.data;\n const end = start + count;\n let i;\n const move = (arr) => {\n arr.length += count;\n for (i = arr.length - 1; i >= end; i--) {\n arr[i] = arr[i - count];\n }\n };\n move(data);\n for (i = start; i < end; ++i) {\n data[i] = new this.dataElementType();\n }\n if (this._parsing) {\n move(meta._parsed);\n }\n this.parse(start, count);\n if (resetNewElements) {\n this.updateElements(data, start, count, 'reset');\n }\n }\n updateElements(element, start, count, mode) {}\n _removeElements(start, count) {\n const meta = this._cachedMeta;\n if (this._parsing) {\n const removed = meta._parsed.splice(start, count);\n if (meta._stacked) {\n clearStacks(meta, removed);\n }\n }\n meta.data.splice(start, count);\n }\n _sync(args) {\n if (this._parsing) {\n this._syncList.push(args);\n } else {\n const [method, arg1, arg2] = args;\n this[method](arg1, arg2);\n }\n this.chart._dataChanges.push([this.index, ...args]);\n }\n _onDataPush() {\n const count = arguments.length;\n this._sync(['_insertElements', this.getDataset().data.length - count, count]);\n }\n _onDataPop() {\n this._sync(['_removeElements', this._cachedMeta.data.length - 1, 1]);\n }\n _onDataShift() {\n this._sync(['_removeElements', 0, 1]);\n }\n _onDataSplice(start, count) {\n if (count) {\n this._sync(['_removeElements', start, count]);\n }\n const newCount = arguments.length - 2;\n if (newCount) {\n this._sync(['_insertElements', start, newCount]);\n }\n }\n _onDataUnshift() {\n this._sync(['_insertElements', 0, arguments.length]);\n }\n}\nDatasetController.defaults = {};\nDatasetController.prototype.datasetElementType = null;\nDatasetController.prototype.dataElementType = null;\n\nfunction getAllScaleValues(scale, type) {\n if (!scale._cache.$bar) {\n const visibleMetas = scale.getMatchingVisibleMetas(type);\n let values = [];\n for (let i = 0, ilen = visibleMetas.length; i < ilen; i++) {\n values = values.concat(visibleMetas[i].controller.getAllParsedValues(scale));\n }\n scale._cache.$bar = _arrayUnique(values.sort((a, b) => a - b));\n }\n return scale._cache.$bar;\n}\nfunction computeMinSampleSize(meta) {\n const scale = meta.iScale;\n const values = getAllScaleValues(scale, meta.type);\n let min = scale._length;\n let i, ilen, curr, prev;\n const updateMinAndPrev = () => {\n if (curr === 32767 || curr === -32768) {\n return;\n }\n if (defined(prev)) {\n min = Math.min(min, Math.abs(curr - prev) || min);\n }\n prev = curr;\n };\n for (i = 0, ilen = values.length; i < ilen; ++i) {\n curr = scale.getPixelForValue(values[i]);\n updateMinAndPrev();\n }\n prev = undefined;\n for (i = 0, ilen = scale.ticks.length; i < ilen; ++i) {\n curr = scale.getPixelForTick(i);\n updateMinAndPrev();\n }\n return min;\n}\nfunction computeFitCategoryTraits(index, ruler, options, stackCount) {\n const thickness = options.barThickness;\n let size, ratio;\n if (isNullOrUndef(thickness)) {\n size = ruler.min * options.categoryPercentage;\n ratio = options.barPercentage;\n } else {\n size = thickness * stackCount;\n ratio = 1;\n }\n return {\n chunk: size / stackCount,\n ratio,\n start: ruler.pixels[index] - (size / 2)\n };\n}\nfunction computeFlexCategoryTraits(index, ruler, options, stackCount) {\n const pixels = ruler.pixels;\n const curr = pixels[index];\n let prev = index > 0 ? pixels[index - 1] : null;\n let next = index < pixels.length - 1 ? pixels[index + 1] : null;\n const percent = options.categoryPercentage;\n if (prev === null) {\n prev = curr - (next === null ? ruler.end - ruler.start : next - curr);\n }\n if (next === null) {\n next = curr + curr - prev;\n }\n const start = curr - (curr - Math.min(prev, next)) / 2 * percent;\n const size = Math.abs(next - prev) / 2 * percent;\n return {\n chunk: size / stackCount,\n ratio: options.barPercentage,\n start\n };\n}\nfunction parseFloatBar(entry, item, vScale, i) {\n const startValue = vScale.parse(entry[0], i);\n const endValue = vScale.parse(entry[1], i);\n const min = Math.min(startValue, endValue);\n const max = Math.max(startValue, endValue);\n let barStart = min;\n let barEnd = max;\n if (Math.abs(min) > Math.abs(max)) {\n barStart = max;\n barEnd = min;\n }\n item[vScale.axis] = barEnd;\n item._custom = {\n barStart,\n barEnd,\n start: startValue,\n end: endValue,\n min,\n max\n };\n}\nfunction parseValue(entry, item, vScale, i) {\n if (isArray(entry)) {\n parseFloatBar(entry, item, vScale, i);\n } else {\n item[vScale.axis] = vScale.parse(entry, i);\n }\n return item;\n}\nfunction parseArrayOrPrimitive(meta, data, start, count) {\n const iScale = meta.iScale;\n const vScale = meta.vScale;\n const labels = iScale.getLabels();\n const singleScale = iScale === vScale;\n const parsed = [];\n let i, ilen, item, entry;\n for (i = start, ilen = start + count; i < ilen; ++i) {\n entry = data[i];\n item = {};\n item[iScale.axis] = singleScale || iScale.parse(labels[i], i);\n parsed.push(parseValue(entry, item, vScale, i));\n }\n return parsed;\n}\nfunction isFloatBar(custom) {\n return custom && custom.barStart !== undefined && custom.barEnd !== undefined;\n}\nfunction barSign(size, vScale, actualBase) {\n if (size !== 0) {\n return sign(size);\n }\n return (vScale.isHorizontal() ? 1 : -1) * (vScale.min >= actualBase ? 1 : -1);\n}\nfunction borderProps(properties) {\n let reverse, start, end, top, bottom;\n if (properties.horizontal) {\n reverse = properties.base > properties.x;\n start = 'left';\n end = 'right';\n } else {\n reverse = properties.base < properties.y;\n start = 'bottom';\n end = 'top';\n }\n if (reverse) {\n top = 'end';\n bottom = 'start';\n } else {\n top = 'start';\n bottom = 'end';\n }\n return {start, end, reverse, top, bottom};\n}\nfunction setBorderSkipped(properties, options, stack, index) {\n let edge = options.borderSkipped;\n const res = {};\n if (!edge) {\n properties.borderSkipped = res;\n return;\n }\n if (edge === true) {\n properties.borderSkipped = {top: true, right: true, bottom: true, left: true};\n return;\n }\n const {start, end, reverse, top, bottom} = borderProps(properties);\n if (edge === 'middle' && stack) {\n properties.enableBorderRadius = true;\n if ((stack._top || 0) === index) {\n edge = top;\n } else if ((stack._bottom || 0) === index) {\n edge = bottom;\n } else {\n res[parseEdge(bottom, start, end, reverse)] = true;\n edge = top;\n }\n }\n res[parseEdge(edge, start, end, reverse)] = true;\n properties.borderSkipped = res;\n}\nfunction parseEdge(edge, a, b, reverse) {\n if (reverse) {\n edge = swap(edge, a, b);\n edge = startEnd(edge, b, a);\n } else {\n edge = startEnd(edge, a, b);\n }\n return edge;\n}\nfunction swap(orig, v1, v2) {\n return orig === v1 ? v2 : orig === v2 ? v1 : orig;\n}\nfunction startEnd(v, start, end) {\n return v === 'start' ? start : v === 'end' ? end : v;\n}\nfunction setInflateAmount(properties, {inflateAmount}, ratio) {\n properties.inflateAmount = inflateAmount === 'auto'\n ? ratio === 1 ? 0.33 : 0\n : inflateAmount;\n}\nclass BarController extends DatasetController {\n parsePrimitiveData(meta, data, start, count) {\n return parseArrayOrPrimitive(meta, data, start, count);\n }\n parseArrayData(meta, data, start, count) {\n return parseArrayOrPrimitive(meta, data, start, count);\n }\n parseObjectData(meta, data, start, count) {\n const {iScale, vScale} = meta;\n const {xAxisKey = 'x', yAxisKey = 'y'} = this._parsing;\n const iAxisKey = iScale.axis === 'x' ? xAxisKey : yAxisKey;\n const vAxisKey = vScale.axis === 'x' ? xAxisKey : yAxisKey;\n const parsed = [];\n let i, ilen, item, obj;\n for (i = start, ilen = start + count; i < ilen; ++i) {\n obj = data[i];\n item = {};\n item[iScale.axis] = iScale.parse(resolveObjectKey(obj, iAxisKey), i);\n parsed.push(parseValue(resolveObjectKey(obj, vAxisKey), item, vScale, i));\n }\n return parsed;\n }\n updateRangeFromParsed(range, scale, parsed, stack) {\n super.updateRangeFromParsed(range, scale, parsed, stack);\n const custom = parsed._custom;\n if (custom && scale === this._cachedMeta.vScale) {\n range.min = Math.min(range.min, custom.min);\n range.max = Math.max(range.max, custom.max);\n }\n }\n getMaxOverflow() {\n return 0;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const {iScale, vScale} = meta;\n const parsed = this.getParsed(index);\n const custom = parsed._custom;\n const value = isFloatBar(custom)\n ? '[' + custom.start + ', ' + custom.end + ']'\n : '' + vScale.getLabelForValue(parsed[vScale.axis]);\n return {\n label: '' + iScale.getLabelForValue(parsed[iScale.axis]),\n value\n };\n }\n initialize() {\n this.enableOptionSharing = true;\n super.initialize();\n const meta = this._cachedMeta;\n meta.stack = this.getDataset().stack;\n }\n update(mode) {\n const meta = this._cachedMeta;\n this.updateElements(meta.data, 0, meta.data.length, mode);\n }\n updateElements(bars, start, count, mode) {\n const reset = mode === 'reset';\n const {index, _cachedMeta: {vScale}} = this;\n const base = vScale.getBasePixel();\n const horizontal = vScale.isHorizontal();\n const ruler = this._getRuler();\n const {sharedOptions, includeOptions} = this._getSharedOptions(start, mode);\n for (let i = start; i < start + count; i++) {\n const parsed = this.getParsed(i);\n const vpixels = reset || isNullOrUndef(parsed[vScale.axis]) ? {base, head: base} : this._calculateBarValuePixels(i);\n const ipixels = this._calculateBarIndexPixels(i, ruler);\n const stack = (parsed._stacks || {})[vScale.axis];\n const properties = {\n horizontal,\n base: vpixels.base,\n enableBorderRadius: !stack || isFloatBar(parsed._custom) || (index === stack._top || index === stack._bottom),\n x: horizontal ? vpixels.head : ipixels.center,\n y: horizontal ? ipixels.center : vpixels.head,\n height: horizontal ? ipixels.size : Math.abs(vpixels.size),\n width: horizontal ? Math.abs(vpixels.size) : ipixels.size\n };\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, bars[i].active ? 'active' : mode);\n }\n const options = properties.options || bars[i].options;\n setBorderSkipped(properties, options, stack, index);\n setInflateAmount(properties, options, ruler.ratio);\n this.updateElement(bars[i], i, properties, mode);\n }\n }\n _getStacks(last, dataIndex) {\n const {iScale} = this._cachedMeta;\n const metasets = iScale.getMatchingVisibleMetas(this._type)\n .filter(meta => meta.controller.options.grouped);\n const stacked = iScale.options.stacked;\n const stacks = [];\n const skipNull = (meta) => {\n const parsed = meta.controller.getParsed(dataIndex);\n const val = parsed && parsed[meta.vScale.axis];\n if (isNullOrUndef(val) || isNaN(val)) {\n return true;\n }\n };\n for (const meta of metasets) {\n if (dataIndex !== undefined && skipNull(meta)) {\n continue;\n }\n if (stacked === false || stacks.indexOf(meta.stack) === -1 ||\n\t\t\t\t(stacked === undefined && meta.stack === undefined)) {\n stacks.push(meta.stack);\n }\n if (meta.index === last) {\n break;\n }\n }\n if (!stacks.length) {\n stacks.push(undefined);\n }\n return stacks;\n }\n _getStackCount(index) {\n return this._getStacks(undefined, index).length;\n }\n _getStackIndex(datasetIndex, name, dataIndex) {\n const stacks = this._getStacks(datasetIndex, dataIndex);\n const index = (name !== undefined)\n ? stacks.indexOf(name)\n : -1;\n return (index === -1)\n ? stacks.length - 1\n : index;\n }\n _getRuler() {\n const opts = this.options;\n const meta = this._cachedMeta;\n const iScale = meta.iScale;\n const pixels = [];\n let i, ilen;\n for (i = 0, ilen = meta.data.length; i < ilen; ++i) {\n pixels.push(iScale.getPixelForValue(this.getParsed(i)[iScale.axis], i));\n }\n const barThickness = opts.barThickness;\n const min = barThickness || computeMinSampleSize(meta);\n return {\n min,\n pixels,\n start: iScale._startPixel,\n end: iScale._endPixel,\n stackCount: this._getStackCount(),\n scale: iScale,\n grouped: opts.grouped,\n ratio: barThickness ? 1 : opts.categoryPercentage * opts.barPercentage\n };\n }\n _calculateBarValuePixels(index) {\n const {_cachedMeta: {vScale, _stacked}, options: {base: baseValue, minBarLength}} = this;\n const actualBase = baseValue || 0;\n const parsed = this.getParsed(index);\n const custom = parsed._custom;\n const floating = isFloatBar(custom);\n let value = parsed[vScale.axis];\n let start = 0;\n let length = _stacked ? this.applyStack(vScale, parsed, _stacked) : value;\n let head, size;\n if (length !== value) {\n start = length - value;\n length = value;\n }\n if (floating) {\n value = custom.barStart;\n length = custom.barEnd - custom.barStart;\n if (value !== 0 && sign(value) !== sign(custom.barEnd)) {\n start = 0;\n }\n start += value;\n }\n const startValue = !isNullOrUndef(baseValue) && !floating ? baseValue : start;\n let base = vScale.getPixelForValue(startValue);\n if (this.chart.getDataVisibility(index)) {\n head = vScale.getPixelForValue(start + length);\n } else {\n head = base;\n }\n size = head - base;\n if (Math.abs(size) < minBarLength) {\n size = barSign(size, vScale, actualBase) * minBarLength;\n if (value === actualBase) {\n base -= size / 2;\n }\n const startPixel = vScale.getPixelForDecimal(0);\n const endPixel = vScale.getPixelForDecimal(1);\n const min = Math.min(startPixel, endPixel);\n const max = Math.max(startPixel, endPixel);\n base = Math.max(Math.min(base, max), min);\n head = base + size;\n }\n if (base === vScale.getPixelForValue(actualBase)) {\n const halfGrid = sign(size) * vScale.getLineWidthForValue(actualBase) / 2;\n base += halfGrid;\n size -= halfGrid;\n }\n return {\n size,\n base,\n head,\n center: head + size / 2\n };\n }\n _calculateBarIndexPixels(index, ruler) {\n const scale = ruler.scale;\n const options = this.options;\n const skipNull = options.skipNull;\n const maxBarThickness = valueOrDefault(options.maxBarThickness, Infinity);\n let center, size;\n if (ruler.grouped) {\n const stackCount = skipNull ? this._getStackCount(index) : ruler.stackCount;\n const range = options.barThickness === 'flex'\n ? computeFlexCategoryTraits(index, ruler, options, stackCount)\n : computeFitCategoryTraits(index, ruler, options, stackCount);\n const stackIndex = this._getStackIndex(this.index, this._cachedMeta.stack, skipNull ? index : undefined);\n center = range.start + (range.chunk * stackIndex) + (range.chunk / 2);\n size = Math.min(maxBarThickness, range.chunk * range.ratio);\n } else {\n center = scale.getPixelForValue(this.getParsed(index)[scale.axis], index);\n size = Math.min(maxBarThickness, ruler.min * ruler.ratio);\n }\n return {\n base: center - size / 2,\n head: center + size / 2,\n center,\n size\n };\n }\n draw() {\n const meta = this._cachedMeta;\n const vScale = meta.vScale;\n const rects = meta.data;\n const ilen = rects.length;\n let i = 0;\n for (; i < ilen; ++i) {\n if (this.getParsed(i)[vScale.axis] !== null) {\n rects[i].draw(this._ctx);\n }\n }\n }\n}\nBarController.id = 'bar';\nBarController.defaults = {\n datasetElementType: false,\n dataElementType: 'bar',\n categoryPercentage: 0.8,\n barPercentage: 0.9,\n grouped: true,\n animations: {\n numbers: {\n type: 'number',\n properties: ['x', 'y', 'base', 'width', 'height']\n }\n }\n};\nBarController.overrides = {\n scales: {\n _index_: {\n type: 'category',\n offset: true,\n grid: {\n offset: true\n }\n },\n _value_: {\n type: 'linear',\n beginAtZero: true,\n }\n }\n};\n\nclass BubbleController extends DatasetController {\n initialize() {\n this.enableOptionSharing = true;\n super.initialize();\n }\n parsePrimitiveData(meta, data, start, count) {\n const parsed = super.parsePrimitiveData(meta, data, start, count);\n for (let i = 0; i < parsed.length; i++) {\n parsed[i]._custom = this.resolveDataElementOptions(i + start).radius;\n }\n return parsed;\n }\n parseArrayData(meta, data, start, count) {\n const parsed = super.parseArrayData(meta, data, start, count);\n for (let i = 0; i < parsed.length; i++) {\n const item = data[start + i];\n parsed[i]._custom = valueOrDefault(item[2], this.resolveDataElementOptions(i + start).radius);\n }\n return parsed;\n }\n parseObjectData(meta, data, start, count) {\n const parsed = super.parseObjectData(meta, data, start, count);\n for (let i = 0; i < parsed.length; i++) {\n const item = data[start + i];\n parsed[i]._custom = valueOrDefault(item && item.r && +item.r, this.resolveDataElementOptions(i + start).radius);\n }\n return parsed;\n }\n getMaxOverflow() {\n const data = this._cachedMeta.data;\n let max = 0;\n for (let i = data.length - 1; i >= 0; --i) {\n max = Math.max(max, data[i].size(this.resolveDataElementOptions(i)) / 2);\n }\n return max > 0 && max;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const {xScale, yScale} = meta;\n const parsed = this.getParsed(index);\n const x = xScale.getLabelForValue(parsed.x);\n const y = yScale.getLabelForValue(parsed.y);\n const r = parsed._custom;\n return {\n label: meta.label,\n value: '(' + x + ', ' + y + (r ? ', ' + r : '') + ')'\n };\n }\n update(mode) {\n const points = this._cachedMeta.data;\n this.updateElements(points, 0, points.length, mode);\n }\n updateElements(points, start, count, mode) {\n const reset = mode === 'reset';\n const {iScale, vScale} = this._cachedMeta;\n const {sharedOptions, includeOptions} = this._getSharedOptions(start, mode);\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n for (let i = start; i < start + count; i++) {\n const point = points[i];\n const parsed = !reset && this.getParsed(i);\n const properties = {};\n const iPixel = properties[iAxis] = reset ? iScale.getPixelForDecimal(0.5) : iScale.getPixelForValue(parsed[iAxis]);\n const vPixel = properties[vAxis] = reset ? vScale.getBasePixel() : vScale.getPixelForValue(parsed[vAxis]);\n properties.skip = isNaN(iPixel) || isNaN(vPixel);\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n if (reset) {\n properties.options.radius = 0;\n }\n }\n this.updateElement(point, i, properties, mode);\n }\n }\n resolveDataElementOptions(index, mode) {\n const parsed = this.getParsed(index);\n let values = super.resolveDataElementOptions(index, mode);\n if (values.$shared) {\n values = Object.assign({}, values, {$shared: false});\n }\n const radius = values.radius;\n if (mode !== 'active') {\n values.radius = 0;\n }\n values.radius += valueOrDefault(parsed && parsed._custom, radius);\n return values;\n }\n}\nBubbleController.id = 'bubble';\nBubbleController.defaults = {\n datasetElementType: false,\n dataElementType: 'point',\n animations: {\n numbers: {\n type: 'number',\n properties: ['x', 'y', 'borderWidth', 'radius']\n }\n }\n};\nBubbleController.overrides = {\n scales: {\n x: {\n type: 'linear'\n },\n y: {\n type: 'linear'\n }\n },\n plugins: {\n tooltip: {\n callbacks: {\n title() {\n return '';\n }\n }\n }\n }\n};\n\nfunction getRatioAndOffset(rotation, circumference, cutout) {\n let ratioX = 1;\n let ratioY = 1;\n let offsetX = 0;\n let offsetY = 0;\n if (circumference < TAU) {\n const startAngle = rotation;\n const endAngle = startAngle + circumference;\n const startX = Math.cos(startAngle);\n const startY = Math.sin(startAngle);\n const endX = Math.cos(endAngle);\n const endY = Math.sin(endAngle);\n const calcMax = (angle, a, b) => _angleBetween(angle, startAngle, endAngle, true) ? 1 : Math.max(a, a * cutout, b, b * cutout);\n const calcMin = (angle, a, b) => _angleBetween(angle, startAngle, endAngle, true) ? -1 : Math.min(a, a * cutout, b, b * cutout);\n const maxX = calcMax(0, startX, endX);\n const maxY = calcMax(HALF_PI, startY, endY);\n const minX = calcMin(PI, startX, endX);\n const minY = calcMin(PI + HALF_PI, startY, endY);\n ratioX = (maxX - minX) / 2;\n ratioY = (maxY - minY) / 2;\n offsetX = -(maxX + minX) / 2;\n offsetY = -(maxY + minY) / 2;\n }\n return {ratioX, ratioY, offsetX, offsetY};\n}\nclass DoughnutController extends DatasetController {\n constructor(chart, datasetIndex) {\n super(chart, datasetIndex);\n this.enableOptionSharing = true;\n this.innerRadius = undefined;\n this.outerRadius = undefined;\n this.offsetX = undefined;\n this.offsetY = undefined;\n }\n linkScales() {}\n parse(start, count) {\n const data = this.getDataset().data;\n const meta = this._cachedMeta;\n if (this._parsing === false) {\n meta._parsed = data;\n } else {\n let getter = (i) => +data[i];\n if (isObject(data[start])) {\n const {key = 'value'} = this._parsing;\n getter = (i) => +resolveObjectKey(data[i], key);\n }\n let i, ilen;\n for (i = start, ilen = start + count; i < ilen; ++i) {\n meta._parsed[i] = getter(i);\n }\n }\n }\n _getRotation() {\n return toRadians(this.options.rotation - 90);\n }\n _getCircumference() {\n return toRadians(this.options.circumference);\n }\n _getRotationExtents() {\n let min = TAU;\n let max = -TAU;\n for (let i = 0; i < this.chart.data.datasets.length; ++i) {\n if (this.chart.isDatasetVisible(i)) {\n const controller = this.chart.getDatasetMeta(i).controller;\n const rotation = controller._getRotation();\n const circumference = controller._getCircumference();\n min = Math.min(min, rotation);\n max = Math.max(max, rotation + circumference);\n }\n }\n return {\n rotation: min,\n circumference: max - min,\n };\n }\n update(mode) {\n const chart = this.chart;\n const {chartArea} = chart;\n const meta = this._cachedMeta;\n const arcs = meta.data;\n const spacing = this.getMaxBorderWidth() + this.getMaxOffset(arcs) + this.options.spacing;\n const maxSize = Math.max((Math.min(chartArea.width, chartArea.height) - spacing) / 2, 0);\n const cutout = Math.min(toPercentage(this.options.cutout, maxSize), 1);\n const chartWeight = this._getRingWeight(this.index);\n const {circumference, rotation} = this._getRotationExtents();\n const {ratioX, ratioY, offsetX, offsetY} = getRatioAndOffset(rotation, circumference, cutout);\n const maxWidth = (chartArea.width - spacing) / ratioX;\n const maxHeight = (chartArea.height - spacing) / ratioY;\n const maxRadius = Math.max(Math.min(maxWidth, maxHeight) / 2, 0);\n const outerRadius = toDimension(this.options.radius, maxRadius);\n const innerRadius = Math.max(outerRadius * cutout, 0);\n const radiusLength = (outerRadius - innerRadius) / this._getVisibleDatasetWeightTotal();\n this.offsetX = offsetX * outerRadius;\n this.offsetY = offsetY * outerRadius;\n meta.total = this.calculateTotal();\n this.outerRadius = outerRadius - radiusLength * this._getRingWeightOffset(this.index);\n this.innerRadius = Math.max(this.outerRadius - radiusLength * chartWeight, 0);\n this.updateElements(arcs, 0, arcs.length, mode);\n }\n _circumference(i, reset) {\n const opts = this.options;\n const meta = this._cachedMeta;\n const circumference = this._getCircumference();\n if ((reset && opts.animation.animateRotate) || !this.chart.getDataVisibility(i) || meta._parsed[i] === null || meta.data[i].hidden) {\n return 0;\n }\n return this.calculateCircumference(meta._parsed[i] * circumference / TAU);\n }\n updateElements(arcs, start, count, mode) {\n const reset = mode === 'reset';\n const chart = this.chart;\n const chartArea = chart.chartArea;\n const opts = chart.options;\n const animationOpts = opts.animation;\n const centerX = (chartArea.left + chartArea.right) / 2;\n const centerY = (chartArea.top + chartArea.bottom) / 2;\n const animateScale = reset && animationOpts.animateScale;\n const innerRadius = animateScale ? 0 : this.innerRadius;\n const outerRadius = animateScale ? 0 : this.outerRadius;\n const {sharedOptions, includeOptions} = this._getSharedOptions(start, mode);\n let startAngle = this._getRotation();\n let i;\n for (i = 0; i < start; ++i) {\n startAngle += this._circumference(i, reset);\n }\n for (i = start; i < start + count; ++i) {\n const circumference = this._circumference(i, reset);\n const arc = arcs[i];\n const properties = {\n x: centerX + this.offsetX,\n y: centerY + this.offsetY,\n startAngle,\n endAngle: startAngle + circumference,\n circumference,\n outerRadius,\n innerRadius\n };\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, arc.active ? 'active' : mode);\n }\n startAngle += circumference;\n this.updateElement(arc, i, properties, mode);\n }\n }\n calculateTotal() {\n const meta = this._cachedMeta;\n const metaData = meta.data;\n let total = 0;\n let i;\n for (i = 0; i < metaData.length; i++) {\n const value = meta._parsed[i];\n if (value !== null && !isNaN(value) && this.chart.getDataVisibility(i) && !metaData[i].hidden) {\n total += Math.abs(value);\n }\n }\n return total;\n }\n calculateCircumference(value) {\n const total = this._cachedMeta.total;\n if (total > 0 && !isNaN(value)) {\n return TAU * (Math.abs(value) / total);\n }\n return 0;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const chart = this.chart;\n const labels = chart.data.labels || [];\n const value = formatNumber(meta._parsed[index], chart.options.locale);\n return {\n label: labels[index] || '',\n value,\n };\n }\n getMaxBorderWidth(arcs) {\n let max = 0;\n const chart = this.chart;\n let i, ilen, meta, controller, options;\n if (!arcs) {\n for (i = 0, ilen = chart.data.datasets.length; i < ilen; ++i) {\n if (chart.isDatasetVisible(i)) {\n meta = chart.getDatasetMeta(i);\n arcs = meta.data;\n controller = meta.controller;\n break;\n }\n }\n }\n if (!arcs) {\n return 0;\n }\n for (i = 0, ilen = arcs.length; i < ilen; ++i) {\n options = controller.resolveDataElementOptions(i);\n if (options.borderAlign !== 'inner') {\n max = Math.max(max, options.borderWidth || 0, options.hoverBorderWidth || 0);\n }\n }\n return max;\n }\n getMaxOffset(arcs) {\n let max = 0;\n for (let i = 0, ilen = arcs.length; i < ilen; ++i) {\n const options = this.resolveDataElementOptions(i);\n max = Math.max(max, options.offset || 0, options.hoverOffset || 0);\n }\n return max;\n }\n _getRingWeightOffset(datasetIndex) {\n let ringWeightOffset = 0;\n for (let i = 0; i < datasetIndex; ++i) {\n if (this.chart.isDatasetVisible(i)) {\n ringWeightOffset += this._getRingWeight(i);\n }\n }\n return ringWeightOffset;\n }\n _getRingWeight(datasetIndex) {\n return Math.max(valueOrDefault(this.chart.data.datasets[datasetIndex].weight, 1), 0);\n }\n _getVisibleDatasetWeightTotal() {\n return this._getRingWeightOffset(this.chart.data.datasets.length) || 1;\n }\n}\nDoughnutController.id = 'doughnut';\nDoughnutController.defaults = {\n datasetElementType: false,\n dataElementType: 'arc',\n animation: {\n animateRotate: true,\n animateScale: false\n },\n animations: {\n numbers: {\n type: 'number',\n properties: ['circumference', 'endAngle', 'innerRadius', 'outerRadius', 'startAngle', 'x', 'y', 'offset', 'borderWidth', 'spacing']\n },\n },\n cutout: '50%',\n rotation: 0,\n circumference: 360,\n radius: '100%',\n spacing: 0,\n indexAxis: 'r',\n};\nDoughnutController.descriptors = {\n _scriptable: (name) => name !== 'spacing',\n _indexable: (name) => name !== 'spacing',\n};\nDoughnutController.overrides = {\n aspectRatio: 1,\n plugins: {\n legend: {\n labels: {\n generateLabels(chart) {\n const data = chart.data;\n if (data.labels.length && data.datasets.length) {\n const {labels: {pointStyle}} = chart.legend.options;\n return data.labels.map((label, i) => {\n const meta = chart.getDatasetMeta(0);\n const style = meta.controller.getStyle(i);\n return {\n text: label,\n fillStyle: style.backgroundColor,\n strokeStyle: style.borderColor,\n lineWidth: style.borderWidth,\n pointStyle: pointStyle,\n hidden: !chart.getDataVisibility(i),\n index: i\n };\n });\n }\n return [];\n }\n },\n onClick(e, legendItem, legend) {\n legend.chart.toggleDataVisibility(legendItem.index);\n legend.chart.update();\n }\n },\n tooltip: {\n callbacks: {\n title() {\n return '';\n },\n label(tooltipItem) {\n let dataLabel = tooltipItem.label;\n const value = ': ' + tooltipItem.formattedValue;\n if (isArray(dataLabel)) {\n dataLabel = dataLabel.slice();\n dataLabel[0] += value;\n } else {\n dataLabel += value;\n }\n return dataLabel;\n }\n }\n }\n }\n};\n\nclass LineController extends DatasetController {\n initialize() {\n this.enableOptionSharing = true;\n this.supportsDecimation = true;\n super.initialize();\n }\n update(mode) {\n const meta = this._cachedMeta;\n const {dataset: line, data: points = [], _dataset} = meta;\n const animationsDisabled = this.chart._animationsDisabled;\n let {start, count} = _getStartAndCountOfVisiblePoints(meta, points, animationsDisabled);\n this._drawStart = start;\n this._drawCount = count;\n if (_scaleRangesChanged(meta)) {\n start = 0;\n count = points.length;\n }\n line._chart = this.chart;\n line._datasetIndex = this.index;\n line._decimated = !!_dataset._decimated;\n line.points = points;\n const options = this.resolveDatasetElementOptions(mode);\n if (!this.options.showLine) {\n options.borderWidth = 0;\n }\n options.segment = this.options.segment;\n this.updateElement(line, undefined, {\n animated: !animationsDisabled,\n options\n }, mode);\n this.updateElements(points, start, count, mode);\n }\n updateElements(points, start, count, mode) {\n const reset = mode === 'reset';\n const {iScale, vScale, _stacked, _dataset} = this._cachedMeta;\n const {sharedOptions, includeOptions} = this._getSharedOptions(start, mode);\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n const {spanGaps, segment} = this.options;\n const maxGapLength = isNumber(spanGaps) ? spanGaps : Number.POSITIVE_INFINITY;\n const directUpdate = this.chart._animationsDisabled || reset || mode === 'none';\n let prevParsed = start > 0 && this.getParsed(start - 1);\n for (let i = start; i < start + count; ++i) {\n const point = points[i];\n const parsed = this.getParsed(i);\n const properties = directUpdate ? point : {};\n const nullData = isNullOrUndef(parsed[vAxis]);\n const iPixel = properties[iAxis] = iScale.getPixelForValue(parsed[iAxis], i);\n const vPixel = properties[vAxis] = reset || nullData ? vScale.getBasePixel() : vScale.getPixelForValue(_stacked ? this.applyStack(vScale, parsed, _stacked) : parsed[vAxis], i);\n properties.skip = isNaN(iPixel) || isNaN(vPixel) || nullData;\n properties.stop = i > 0 && (Math.abs(parsed[iAxis] - prevParsed[iAxis])) > maxGapLength;\n if (segment) {\n properties.parsed = parsed;\n properties.raw = _dataset.data[i];\n }\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n }\n if (!directUpdate) {\n this.updateElement(point, i, properties, mode);\n }\n prevParsed = parsed;\n }\n }\n getMaxOverflow() {\n const meta = this._cachedMeta;\n const dataset = meta.dataset;\n const border = dataset.options && dataset.options.borderWidth || 0;\n const data = meta.data || [];\n if (!data.length) {\n return border;\n }\n const firstPoint = data[0].size(this.resolveDataElementOptions(0));\n const lastPoint = data[data.length - 1].size(this.resolveDataElementOptions(data.length - 1));\n return Math.max(border, firstPoint, lastPoint) / 2;\n }\n draw() {\n const meta = this._cachedMeta;\n meta.dataset.updateControlPoints(this.chart.chartArea, meta.iScale.axis);\n super.draw();\n }\n}\nLineController.id = 'line';\nLineController.defaults = {\n datasetElementType: 'line',\n dataElementType: 'point',\n showLine: true,\n spanGaps: false,\n};\nLineController.overrides = {\n scales: {\n _index_: {\n type: 'category',\n },\n _value_: {\n type: 'linear',\n },\n }\n};\n\nclass PolarAreaController extends DatasetController {\n constructor(chart, datasetIndex) {\n super(chart, datasetIndex);\n this.innerRadius = undefined;\n this.outerRadius = undefined;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const chart = this.chart;\n const labels = chart.data.labels || [];\n const value = formatNumber(meta._parsed[index].r, chart.options.locale);\n return {\n label: labels[index] || '',\n value,\n };\n }\n parseObjectData(meta, data, start, count) {\n return _parseObjectDataRadialScale.bind(this)(meta, data, start, count);\n }\n update(mode) {\n const arcs = this._cachedMeta.data;\n this._updateRadius();\n this.updateElements(arcs, 0, arcs.length, mode);\n }\n getMinMax() {\n const meta = this._cachedMeta;\n const range = {min: Number.POSITIVE_INFINITY, max: Number.NEGATIVE_INFINITY};\n meta.data.forEach((element, index) => {\n const parsed = this.getParsed(index).r;\n if (!isNaN(parsed) && this.chart.getDataVisibility(index)) {\n if (parsed < range.min) {\n range.min = parsed;\n }\n if (parsed > range.max) {\n range.max = parsed;\n }\n }\n });\n return range;\n }\n _updateRadius() {\n const chart = this.chart;\n const chartArea = chart.chartArea;\n const opts = chart.options;\n const minSize = Math.min(chartArea.right - chartArea.left, chartArea.bottom - chartArea.top);\n const outerRadius = Math.max(minSize / 2, 0);\n const innerRadius = Math.max(opts.cutoutPercentage ? (outerRadius / 100) * (opts.cutoutPercentage) : 1, 0);\n const radiusLength = (outerRadius - innerRadius) / chart.getVisibleDatasetCount();\n this.outerRadius = outerRadius - (radiusLength * this.index);\n this.innerRadius = this.outerRadius - radiusLength;\n }\n updateElements(arcs, start, count, mode) {\n const reset = mode === 'reset';\n const chart = this.chart;\n const opts = chart.options;\n const animationOpts = opts.animation;\n const scale = this._cachedMeta.rScale;\n const centerX = scale.xCenter;\n const centerY = scale.yCenter;\n const datasetStartAngle = scale.getIndexAngle(0) - 0.5 * PI;\n let angle = datasetStartAngle;\n let i;\n const defaultAngle = 360 / this.countVisibleElements();\n for (i = 0; i < start; ++i) {\n angle += this._computeAngle(i, mode, defaultAngle);\n }\n for (i = start; i < start + count; i++) {\n const arc = arcs[i];\n let startAngle = angle;\n let endAngle = angle + this._computeAngle(i, mode, defaultAngle);\n let outerRadius = chart.getDataVisibility(i) ? scale.getDistanceFromCenterForValue(this.getParsed(i).r) : 0;\n angle = endAngle;\n if (reset) {\n if (animationOpts.animateScale) {\n outerRadius = 0;\n }\n if (animationOpts.animateRotate) {\n startAngle = endAngle = datasetStartAngle;\n }\n }\n const properties = {\n x: centerX,\n y: centerY,\n innerRadius: 0,\n outerRadius,\n startAngle,\n endAngle,\n options: this.resolveDataElementOptions(i, arc.active ? 'active' : mode)\n };\n this.updateElement(arc, i, properties, mode);\n }\n }\n countVisibleElements() {\n const meta = this._cachedMeta;\n let count = 0;\n meta.data.forEach((element, index) => {\n if (!isNaN(this.getParsed(index).r) && this.chart.getDataVisibility(index)) {\n count++;\n }\n });\n return count;\n }\n _computeAngle(index, mode, defaultAngle) {\n return this.chart.getDataVisibility(index)\n ? toRadians(this.resolveDataElementOptions(index, mode).angle || defaultAngle)\n : 0;\n }\n}\nPolarAreaController.id = 'polarArea';\nPolarAreaController.defaults = {\n dataElementType: 'arc',\n animation: {\n animateRotate: true,\n animateScale: true\n },\n animations: {\n numbers: {\n type: 'number',\n properties: ['x', 'y', 'startAngle', 'endAngle', 'innerRadius', 'outerRadius']\n },\n },\n indexAxis: 'r',\n startAngle: 0,\n};\nPolarAreaController.overrides = {\n aspectRatio: 1,\n plugins: {\n legend: {\n labels: {\n generateLabels(chart) {\n const data = chart.data;\n if (data.labels.length && data.datasets.length) {\n const {labels: {pointStyle}} = chart.legend.options;\n return data.labels.map((label, i) => {\n const meta = chart.getDatasetMeta(0);\n const style = meta.controller.getStyle(i);\n return {\n text: label,\n fillStyle: style.backgroundColor,\n strokeStyle: style.borderColor,\n lineWidth: style.borderWidth,\n pointStyle: pointStyle,\n hidden: !chart.getDataVisibility(i),\n index: i\n };\n });\n }\n return [];\n }\n },\n onClick(e, legendItem, legend) {\n legend.chart.toggleDataVisibility(legendItem.index);\n legend.chart.update();\n }\n },\n tooltip: {\n callbacks: {\n title() {\n return '';\n },\n label(context) {\n return context.chart.data.labels[context.dataIndex] + ': ' + context.formattedValue;\n }\n }\n }\n },\n scales: {\n r: {\n type: 'radialLinear',\n angleLines: {\n display: false\n },\n beginAtZero: true,\n grid: {\n circular: true\n },\n pointLabels: {\n display: false\n },\n startAngle: 0\n }\n }\n};\n\nclass PieController extends DoughnutController {\n}\nPieController.id = 'pie';\nPieController.defaults = {\n cutout: 0,\n rotation: 0,\n circumference: 360,\n radius: '100%'\n};\n\nclass RadarController extends DatasetController {\n getLabelAndValue(index) {\n const vScale = this._cachedMeta.vScale;\n const parsed = this.getParsed(index);\n return {\n label: vScale.getLabels()[index],\n value: '' + vScale.getLabelForValue(parsed[vScale.axis])\n };\n }\n parseObjectData(meta, data, start, count) {\n return _parseObjectDataRadialScale.bind(this)(meta, data, start, count);\n }\n update(mode) {\n const meta = this._cachedMeta;\n const line = meta.dataset;\n const points = meta.data || [];\n const labels = meta.iScale.getLabels();\n line.points = points;\n if (mode !== 'resize') {\n const options = this.resolveDatasetElementOptions(mode);\n if (!this.options.showLine) {\n options.borderWidth = 0;\n }\n const properties = {\n _loop: true,\n _fullLoop: labels.length === points.length,\n options\n };\n this.updateElement(line, undefined, properties, mode);\n }\n this.updateElements(points, 0, points.length, mode);\n }\n updateElements(points, start, count, mode) {\n const scale = this._cachedMeta.rScale;\n const reset = mode === 'reset';\n for (let i = start; i < start + count; i++) {\n const point = points[i];\n const options = this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n const pointPosition = scale.getPointPositionForValue(i, this.getParsed(i).r);\n const x = reset ? scale.xCenter : pointPosition.x;\n const y = reset ? scale.yCenter : pointPosition.y;\n const properties = {\n x,\n y,\n angle: pointPosition.angle,\n skip: isNaN(x) || isNaN(y),\n options\n };\n this.updateElement(point, i, properties, mode);\n }\n }\n}\nRadarController.id = 'radar';\nRadarController.defaults = {\n datasetElementType: 'line',\n dataElementType: 'point',\n indexAxis: 'r',\n showLine: true,\n elements: {\n line: {\n fill: 'start'\n }\n },\n};\nRadarController.overrides = {\n aspectRatio: 1,\n scales: {\n r: {\n type: 'radialLinear',\n }\n }\n};\n\nclass Element {\n constructor() {\n this.x = undefined;\n this.y = undefined;\n this.active = false;\n this.options = undefined;\n this.$animations = undefined;\n }\n tooltipPosition(useFinalPosition) {\n const {x, y} = this.getProps(['x', 'y'], useFinalPosition);\n return {x, y};\n }\n hasValue() {\n return isNumber(this.x) && isNumber(this.y);\n }\n getProps(props, final) {\n const anims = this.$animations;\n if (!final || !anims) {\n return this;\n }\n const ret = {};\n props.forEach(prop => {\n ret[prop] = anims[prop] && anims[prop].active() ? anims[prop]._to : this[prop];\n });\n return ret;\n }\n}\nElement.defaults = {};\nElement.defaultRoutes = undefined;\n\nconst formatters = {\n values(value) {\n return isArray(value) ? value : '' + value;\n },\n numeric(tickValue, index, ticks) {\n if (tickValue === 0) {\n return '0';\n }\n const locale = this.chart.options.locale;\n let notation;\n let delta = tickValue;\n if (ticks.length > 1) {\n const maxTick = Math.max(Math.abs(ticks[0].value), Math.abs(ticks[ticks.length - 1].value));\n if (maxTick < 1e-4 || maxTick > 1e+15) {\n notation = 'scientific';\n }\n delta = calculateDelta(tickValue, ticks);\n }\n const logDelta = log10(Math.abs(delta));\n const numDecimal = Math.max(Math.min(-1 * Math.floor(logDelta), 20), 0);\n const options = {notation, minimumFractionDigits: numDecimal, maximumFractionDigits: numDecimal};\n Object.assign(options, this.options.ticks.format);\n return formatNumber(tickValue, locale, options);\n },\n logarithmic(tickValue, index, ticks) {\n if (tickValue === 0) {\n return '0';\n }\n const remain = tickValue / (Math.pow(10, Math.floor(log10(tickValue))));\n if (remain === 1 || remain === 2 || remain === 5) {\n return formatters.numeric.call(this, tickValue, index, ticks);\n }\n return '';\n }\n};\nfunction calculateDelta(tickValue, ticks) {\n let delta = ticks.length > 3 ? ticks[2].value - ticks[1].value : ticks[1].value - ticks[0].value;\n if (Math.abs(delta) >= 1 && tickValue !== Math.floor(tickValue)) {\n delta = tickValue - Math.floor(tickValue);\n }\n return delta;\n}\nvar Ticks = {formatters};\n\ndefaults.set('scale', {\n display: true,\n offset: false,\n reverse: false,\n beginAtZero: false,\n bounds: 'ticks',\n grace: 0,\n grid: {\n display: true,\n lineWidth: 1,\n drawBorder: true,\n drawOnChartArea: true,\n drawTicks: true,\n tickLength: 8,\n tickWidth: (_ctx, options) => options.lineWidth,\n tickColor: (_ctx, options) => options.color,\n offset: false,\n borderDash: [],\n borderDashOffset: 0.0,\n borderWidth: 1\n },\n title: {\n display: false,\n text: '',\n padding: {\n top: 4,\n bottom: 4\n }\n },\n ticks: {\n minRotation: 0,\n maxRotation: 50,\n mirror: false,\n textStrokeWidth: 0,\n textStrokeColor: '',\n padding: 3,\n display: true,\n autoSkip: true,\n autoSkipPadding: 3,\n labelOffset: 0,\n callback: Ticks.formatters.values,\n minor: {},\n major: {},\n align: 'center',\n crossAlign: 'near',\n showLabelBackdrop: false,\n backdropColor: 'rgba(255, 255, 255, 0.75)',\n backdropPadding: 2,\n }\n});\ndefaults.route('scale.ticks', 'color', '', 'color');\ndefaults.route('scale.grid', 'color', '', 'borderColor');\ndefaults.route('scale.grid', 'borderColor', '', 'borderColor');\ndefaults.route('scale.title', 'color', '', 'color');\ndefaults.describe('scale', {\n _fallback: false,\n _scriptable: (name) => !name.startsWith('before') && !name.startsWith('after') && name !== 'callback' && name !== 'parser',\n _indexable: (name) => name !== 'borderDash' && name !== 'tickBorderDash',\n});\ndefaults.describe('scales', {\n _fallback: 'scale',\n});\ndefaults.describe('scale.ticks', {\n _scriptable: (name) => name !== 'backdropPadding' && name !== 'callback',\n _indexable: (name) => name !== 'backdropPadding',\n});\n\nfunction autoSkip(scale, ticks) {\n const tickOpts = scale.options.ticks;\n const ticksLimit = tickOpts.maxTicksLimit || determineMaxTicks(scale);\n const majorIndices = tickOpts.major.enabled ? getMajorIndices(ticks) : [];\n const numMajorIndices = majorIndices.length;\n const first = majorIndices[0];\n const last = majorIndices[numMajorIndices - 1];\n const newTicks = [];\n if (numMajorIndices > ticksLimit) {\n skipMajors(ticks, newTicks, majorIndices, numMajorIndices / ticksLimit);\n return newTicks;\n }\n const spacing = calculateSpacing(majorIndices, ticks, ticksLimit);\n if (numMajorIndices > 0) {\n let i, ilen;\n const avgMajorSpacing = numMajorIndices > 1 ? Math.round((last - first) / (numMajorIndices - 1)) : null;\n skip(ticks, newTicks, spacing, isNullOrUndef(avgMajorSpacing) ? 0 : first - avgMajorSpacing, first);\n for (i = 0, ilen = numMajorIndices - 1; i < ilen; i++) {\n skip(ticks, newTicks, spacing, majorIndices[i], majorIndices[i + 1]);\n }\n skip(ticks, newTicks, spacing, last, isNullOrUndef(avgMajorSpacing) ? ticks.length : last + avgMajorSpacing);\n return newTicks;\n }\n skip(ticks, newTicks, spacing);\n return newTicks;\n}\nfunction determineMaxTicks(scale) {\n const offset = scale.options.offset;\n const tickLength = scale._tickSize();\n const maxScale = scale._length / tickLength + (offset ? 0 : 1);\n const maxChart = scale._maxLength / tickLength;\n return Math.floor(Math.min(maxScale, maxChart));\n}\nfunction calculateSpacing(majorIndices, ticks, ticksLimit) {\n const evenMajorSpacing = getEvenSpacing(majorIndices);\n const spacing = ticks.length / ticksLimit;\n if (!evenMajorSpacing) {\n return Math.max(spacing, 1);\n }\n const factors = _factorize(evenMajorSpacing);\n for (let i = 0, ilen = factors.length - 1; i < ilen; i++) {\n const factor = factors[i];\n if (factor > spacing) {\n return factor;\n }\n }\n return Math.max(spacing, 1);\n}\nfunction getMajorIndices(ticks) {\n const result = [];\n let i, ilen;\n for (i = 0, ilen = ticks.length; i < ilen; i++) {\n if (ticks[i].major) {\n result.push(i);\n }\n }\n return result;\n}\nfunction skipMajors(ticks, newTicks, majorIndices, spacing) {\n let count = 0;\n let next = majorIndices[0];\n let i;\n spacing = Math.ceil(spacing);\n for (i = 0; i < ticks.length; i++) {\n if (i === next) {\n newTicks.push(ticks[i]);\n count++;\n next = majorIndices[count * spacing];\n }\n }\n}\nfunction skip(ticks, newTicks, spacing, majorStart, majorEnd) {\n const start = valueOrDefault(majorStart, 0);\n const end = Math.min(valueOrDefault(majorEnd, ticks.length), ticks.length);\n let count = 0;\n let length, i, next;\n spacing = Math.ceil(spacing);\n if (majorEnd) {\n length = majorEnd - majorStart;\n spacing = length / Math.floor(length / spacing);\n }\n next = start;\n while (next < 0) {\n count++;\n next = Math.round(start + count * spacing);\n }\n for (i = Math.max(start, 0); i < end; i++) {\n if (i === next) {\n newTicks.push(ticks[i]);\n count++;\n next = Math.round(start + count * spacing);\n }\n }\n}\nfunction getEvenSpacing(arr) {\n const len = arr.length;\n let i, diff;\n if (len < 2) {\n return false;\n }\n for (diff = arr[0], i = 1; i < len; ++i) {\n if (arr[i] - arr[i - 1] !== diff) {\n return false;\n }\n }\n return diff;\n}\n\nconst reverseAlign = (align) => align === 'left' ? 'right' : align === 'right' ? 'left' : align;\nconst offsetFromEdge = (scale, edge, offset) => edge === 'top' || edge === 'left' ? scale[edge] + offset : scale[edge] - offset;\nfunction sample(arr, numItems) {\n const result = [];\n const increment = arr.length / numItems;\n const len = arr.length;\n let i = 0;\n for (; i < len; i += increment) {\n result.push(arr[Math.floor(i)]);\n }\n return result;\n}\nfunction getPixelForGridLine(scale, index, offsetGridLines) {\n const length = scale.ticks.length;\n const validIndex = Math.min(index, length - 1);\n const start = scale._startPixel;\n const end = scale._endPixel;\n const epsilon = 1e-6;\n let lineValue = scale.getPixelForTick(validIndex);\n let offset;\n if (offsetGridLines) {\n if (length === 1) {\n offset = Math.max(lineValue - start, end - lineValue);\n } else if (index === 0) {\n offset = (scale.getPixelForTick(1) - lineValue) / 2;\n } else {\n offset = (lineValue - scale.getPixelForTick(validIndex - 1)) / 2;\n }\n lineValue += validIndex < index ? offset : -offset;\n if (lineValue < start - epsilon || lineValue > end + epsilon) {\n return;\n }\n }\n return lineValue;\n}\nfunction garbageCollect(caches, length) {\n each(caches, (cache) => {\n const gc = cache.gc;\n const gcLen = gc.length / 2;\n let i;\n if (gcLen > length) {\n for (i = 0; i < gcLen; ++i) {\n delete cache.data[gc[i]];\n }\n gc.splice(0, gcLen);\n }\n });\n}\nfunction getTickMarkLength(options) {\n return options.drawTicks ? options.tickLength : 0;\n}\nfunction getTitleHeight(options, fallback) {\n if (!options.display) {\n return 0;\n }\n const font = toFont(options.font, fallback);\n const padding = toPadding(options.padding);\n const lines = isArray(options.text) ? options.text.length : 1;\n return (lines * font.lineHeight) + padding.height;\n}\nfunction createScaleContext(parent, scale) {\n return createContext(parent, {\n scale,\n type: 'scale'\n });\n}\nfunction createTickContext(parent, index, tick) {\n return createContext(parent, {\n tick,\n index,\n type: 'tick'\n });\n}\nfunction titleAlign(align, position, reverse) {\n let ret = _toLeftRightCenter(align);\n if ((reverse && position !== 'right') || (!reverse && position === 'right')) {\n ret = reverseAlign(ret);\n }\n return ret;\n}\nfunction titleArgs(scale, offset, position, align) {\n const {top, left, bottom, right, chart} = scale;\n const {chartArea, scales} = chart;\n let rotation = 0;\n let maxWidth, titleX, titleY;\n const height = bottom - top;\n const width = right - left;\n if (scale.isHorizontal()) {\n titleX = _alignStartEnd(align, left, right);\n if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n titleY = scales[positionAxisID].getPixelForValue(value) + height - offset;\n } else if (position === 'center') {\n titleY = (chartArea.bottom + chartArea.top) / 2 + height - offset;\n } else {\n titleY = offsetFromEdge(scale, position, offset);\n }\n maxWidth = right - left;\n } else {\n if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n titleX = scales[positionAxisID].getPixelForValue(value) - width + offset;\n } else if (position === 'center') {\n titleX = (chartArea.left + chartArea.right) / 2 - width + offset;\n } else {\n titleX = offsetFromEdge(scale, position, offset);\n }\n titleY = _alignStartEnd(align, bottom, top);\n rotation = position === 'left' ? -HALF_PI : HALF_PI;\n }\n return {titleX, titleY, maxWidth, rotation};\n}\nclass Scale extends Element {\n constructor(cfg) {\n super();\n this.id = cfg.id;\n this.type = cfg.type;\n this.options = undefined;\n this.ctx = cfg.ctx;\n this.chart = cfg.chart;\n this.top = undefined;\n this.bottom = undefined;\n this.left = undefined;\n this.right = undefined;\n this.width = undefined;\n this.height = undefined;\n this._margins = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n };\n this.maxWidth = undefined;\n this.maxHeight = undefined;\n this.paddingTop = undefined;\n this.paddingBottom = undefined;\n this.paddingLeft = undefined;\n this.paddingRight = undefined;\n this.axis = undefined;\n this.labelRotation = undefined;\n this.min = undefined;\n this.max = undefined;\n this._range = undefined;\n this.ticks = [];\n this._gridLineItems = null;\n this._labelItems = null;\n this._labelSizes = null;\n this._length = 0;\n this._maxLength = 0;\n this._longestTextCache = {};\n this._startPixel = undefined;\n this._endPixel = undefined;\n this._reversePixels = false;\n this._userMax = undefined;\n this._userMin = undefined;\n this._suggestedMax = undefined;\n this._suggestedMin = undefined;\n this._ticksLength = 0;\n this._borderValue = 0;\n this._cache = {};\n this._dataLimitsCached = false;\n this.$context = undefined;\n }\n init(options) {\n this.options = options.setContext(this.getContext());\n this.axis = options.axis;\n this._userMin = this.parse(options.min);\n this._userMax = this.parse(options.max);\n this._suggestedMin = this.parse(options.suggestedMin);\n this._suggestedMax = this.parse(options.suggestedMax);\n }\n parse(raw, index) {\n return raw;\n }\n getUserBounds() {\n let {_userMin, _userMax, _suggestedMin, _suggestedMax} = this;\n _userMin = finiteOrDefault(_userMin, Number.POSITIVE_INFINITY);\n _userMax = finiteOrDefault(_userMax, Number.NEGATIVE_INFINITY);\n _suggestedMin = finiteOrDefault(_suggestedMin, Number.POSITIVE_INFINITY);\n _suggestedMax = finiteOrDefault(_suggestedMax, Number.NEGATIVE_INFINITY);\n return {\n min: finiteOrDefault(_userMin, _suggestedMin),\n max: finiteOrDefault(_userMax, _suggestedMax),\n minDefined: isNumberFinite(_userMin),\n maxDefined: isNumberFinite(_userMax)\n };\n }\n getMinMax(canStack) {\n let {min, max, minDefined, maxDefined} = this.getUserBounds();\n let range;\n if (minDefined && maxDefined) {\n return {min, max};\n }\n const metas = this.getMatchingVisibleMetas();\n for (let i = 0, ilen = metas.length; i < ilen; ++i) {\n range = metas[i].controller.getMinMax(this, canStack);\n if (!minDefined) {\n min = Math.min(min, range.min);\n }\n if (!maxDefined) {\n max = Math.max(max, range.max);\n }\n }\n min = maxDefined && min > max ? max : min;\n max = minDefined && min > max ? min : max;\n return {\n min: finiteOrDefault(min, finiteOrDefault(max, min)),\n max: finiteOrDefault(max, finiteOrDefault(min, max))\n };\n }\n getPadding() {\n return {\n left: this.paddingLeft || 0,\n top: this.paddingTop || 0,\n right: this.paddingRight || 0,\n bottom: this.paddingBottom || 0\n };\n }\n getTicks() {\n return this.ticks;\n }\n getLabels() {\n const data = this.chart.data;\n return this.options.labels || (this.isHorizontal() ? data.xLabels : data.yLabels) || data.labels || [];\n }\n beforeLayout() {\n this._cache = {};\n this._dataLimitsCached = false;\n }\n beforeUpdate() {\n callback(this.options.beforeUpdate, [this]);\n }\n update(maxWidth, maxHeight, margins) {\n const {beginAtZero, grace, ticks: tickOpts} = this.options;\n const sampleSize = tickOpts.sampleSize;\n this.beforeUpdate();\n this.maxWidth = maxWidth;\n this.maxHeight = maxHeight;\n this._margins = margins = Object.assign({\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n }, margins);\n this.ticks = null;\n this._labelSizes = null;\n this._gridLineItems = null;\n this._labelItems = null;\n this.beforeSetDimensions();\n this.setDimensions();\n this.afterSetDimensions();\n this._maxLength = this.isHorizontal()\n ? this.width + margins.left + margins.right\n : this.height + margins.top + margins.bottom;\n if (!this._dataLimitsCached) {\n this.beforeDataLimits();\n this.determineDataLimits();\n this.afterDataLimits();\n this._range = _addGrace(this, grace, beginAtZero);\n this._dataLimitsCached = true;\n }\n this.beforeBuildTicks();\n this.ticks = this.buildTicks() || [];\n this.afterBuildTicks();\n const samplingEnabled = sampleSize < this.ticks.length;\n this._convertTicksToLabels(samplingEnabled ? sample(this.ticks, sampleSize) : this.ticks);\n this.configure();\n this.beforeCalculateLabelRotation();\n this.calculateLabelRotation();\n this.afterCalculateLabelRotation();\n if (tickOpts.display && (tickOpts.autoSkip || tickOpts.source === 'auto')) {\n this.ticks = autoSkip(this, this.ticks);\n this._labelSizes = null;\n this.afterAutoSkip();\n }\n if (samplingEnabled) {\n this._convertTicksToLabels(this.ticks);\n }\n this.beforeFit();\n this.fit();\n this.afterFit();\n this.afterUpdate();\n }\n configure() {\n let reversePixels = this.options.reverse;\n let startPixel, endPixel;\n if (this.isHorizontal()) {\n startPixel = this.left;\n endPixel = this.right;\n } else {\n startPixel = this.top;\n endPixel = this.bottom;\n reversePixels = !reversePixels;\n }\n this._startPixel = startPixel;\n this._endPixel = endPixel;\n this._reversePixels = reversePixels;\n this._length = endPixel - startPixel;\n this._alignToPixels = this.options.alignToPixels;\n }\n afterUpdate() {\n callback(this.options.afterUpdate, [this]);\n }\n beforeSetDimensions() {\n callback(this.options.beforeSetDimensions, [this]);\n }\n setDimensions() {\n if (this.isHorizontal()) {\n this.width = this.maxWidth;\n this.left = 0;\n this.right = this.width;\n } else {\n this.height = this.maxHeight;\n this.top = 0;\n this.bottom = this.height;\n }\n this.paddingLeft = 0;\n this.paddingTop = 0;\n this.paddingRight = 0;\n this.paddingBottom = 0;\n }\n afterSetDimensions() {\n callback(this.options.afterSetDimensions, [this]);\n }\n _callHooks(name) {\n this.chart.notifyPlugins(name, this.getContext());\n callback(this.options[name], [this]);\n }\n beforeDataLimits() {\n this._callHooks('beforeDataLimits');\n }\n determineDataLimits() {}\n afterDataLimits() {\n this._callHooks('afterDataLimits');\n }\n beforeBuildTicks() {\n this._callHooks('beforeBuildTicks');\n }\n buildTicks() {\n return [];\n }\n afterBuildTicks() {\n this._callHooks('afterBuildTicks');\n }\n beforeTickToLabelConversion() {\n callback(this.options.beforeTickToLabelConversion, [this]);\n }\n generateTickLabels(ticks) {\n const tickOpts = this.options.ticks;\n let i, ilen, tick;\n for (i = 0, ilen = ticks.length; i < ilen; i++) {\n tick = ticks[i];\n tick.label = callback(tickOpts.callback, [tick.value, i, ticks], this);\n }\n }\n afterTickToLabelConversion() {\n callback(this.options.afterTickToLabelConversion, [this]);\n }\n beforeCalculateLabelRotation() {\n callback(this.options.beforeCalculateLabelRotation, [this]);\n }\n calculateLabelRotation() {\n const options = this.options;\n const tickOpts = options.ticks;\n const numTicks = this.ticks.length;\n const minRotation = tickOpts.minRotation || 0;\n const maxRotation = tickOpts.maxRotation;\n let labelRotation = minRotation;\n let tickWidth, maxHeight, maxLabelDiagonal;\n if (!this._isVisible() || !tickOpts.display || minRotation >= maxRotation || numTicks <= 1 || !this.isHorizontal()) {\n this.labelRotation = minRotation;\n return;\n }\n const labelSizes = this._getLabelSizes();\n const maxLabelWidth = labelSizes.widest.width;\n const maxLabelHeight = labelSizes.highest.height;\n const maxWidth = _limitValue(this.chart.width - maxLabelWidth, 0, this.maxWidth);\n tickWidth = options.offset ? this.maxWidth / numTicks : maxWidth / (numTicks - 1);\n if (maxLabelWidth + 6 > tickWidth) {\n tickWidth = maxWidth / (numTicks - (options.offset ? 0.5 : 1));\n maxHeight = this.maxHeight - getTickMarkLength(options.grid)\n\t\t\t\t- tickOpts.padding - getTitleHeight(options.title, this.chart.options.font);\n maxLabelDiagonal = Math.sqrt(maxLabelWidth * maxLabelWidth + maxLabelHeight * maxLabelHeight);\n labelRotation = toDegrees(Math.min(\n Math.asin(_limitValue((labelSizes.highest.height + 6) / tickWidth, -1, 1)),\n Math.asin(_limitValue(maxHeight / maxLabelDiagonal, -1, 1)) - Math.asin(_limitValue(maxLabelHeight / maxLabelDiagonal, -1, 1))\n ));\n labelRotation = Math.max(minRotation, Math.min(maxRotation, labelRotation));\n }\n this.labelRotation = labelRotation;\n }\n afterCalculateLabelRotation() {\n callback(this.options.afterCalculateLabelRotation, [this]);\n }\n afterAutoSkip() {}\n beforeFit() {\n callback(this.options.beforeFit, [this]);\n }\n fit() {\n const minSize = {\n width: 0,\n height: 0\n };\n const {chart, options: {ticks: tickOpts, title: titleOpts, grid: gridOpts}} = this;\n const display = this._isVisible();\n const isHorizontal = this.isHorizontal();\n if (display) {\n const titleHeight = getTitleHeight(titleOpts, chart.options.font);\n if (isHorizontal) {\n minSize.width = this.maxWidth;\n minSize.height = getTickMarkLength(gridOpts) + titleHeight;\n } else {\n minSize.height = this.maxHeight;\n minSize.width = getTickMarkLength(gridOpts) + titleHeight;\n }\n if (tickOpts.display && this.ticks.length) {\n const {first, last, widest, highest} = this._getLabelSizes();\n const tickPadding = tickOpts.padding * 2;\n const angleRadians = toRadians(this.labelRotation);\n const cos = Math.cos(angleRadians);\n const sin = Math.sin(angleRadians);\n if (isHorizontal) {\n const labelHeight = tickOpts.mirror ? 0 : sin * widest.width + cos * highest.height;\n minSize.height = Math.min(this.maxHeight, minSize.height + labelHeight + tickPadding);\n } else {\n const labelWidth = tickOpts.mirror ? 0 : cos * widest.width + sin * highest.height;\n minSize.width = Math.min(this.maxWidth, minSize.width + labelWidth + tickPadding);\n }\n this._calculatePadding(first, last, sin, cos);\n }\n }\n this._handleMargins();\n if (isHorizontal) {\n this.width = this._length = chart.width - this._margins.left - this._margins.right;\n this.height = minSize.height;\n } else {\n this.width = minSize.width;\n this.height = this._length = chart.height - this._margins.top - this._margins.bottom;\n }\n }\n _calculatePadding(first, last, sin, cos) {\n const {ticks: {align, padding}, position} = this.options;\n const isRotated = this.labelRotation !== 0;\n const labelsBelowTicks = position !== 'top' && this.axis === 'x';\n if (this.isHorizontal()) {\n const offsetLeft = this.getPixelForTick(0) - this.left;\n const offsetRight = this.right - this.getPixelForTick(this.ticks.length - 1);\n let paddingLeft = 0;\n let paddingRight = 0;\n if (isRotated) {\n if (labelsBelowTicks) {\n paddingLeft = cos * first.width;\n paddingRight = sin * last.height;\n } else {\n paddingLeft = sin * first.height;\n paddingRight = cos * last.width;\n }\n } else if (align === 'start') {\n paddingRight = last.width;\n } else if (align === 'end') {\n paddingLeft = first.width;\n } else if (align !== 'inner') {\n paddingLeft = first.width / 2;\n paddingRight = last.width / 2;\n }\n this.paddingLeft = Math.max((paddingLeft - offsetLeft + padding) * this.width / (this.width - offsetLeft), 0);\n this.paddingRight = Math.max((paddingRight - offsetRight + padding) * this.width / (this.width - offsetRight), 0);\n } else {\n let paddingTop = last.height / 2;\n let paddingBottom = first.height / 2;\n if (align === 'start') {\n paddingTop = 0;\n paddingBottom = first.height;\n } else if (align === 'end') {\n paddingTop = last.height;\n paddingBottom = 0;\n }\n this.paddingTop = paddingTop + padding;\n this.paddingBottom = paddingBottom + padding;\n }\n }\n _handleMargins() {\n if (this._margins) {\n this._margins.left = Math.max(this.paddingLeft, this._margins.left);\n this._margins.top = Math.max(this.paddingTop, this._margins.top);\n this._margins.right = Math.max(this.paddingRight, this._margins.right);\n this._margins.bottom = Math.max(this.paddingBottom, this._margins.bottom);\n }\n }\n afterFit() {\n callback(this.options.afterFit, [this]);\n }\n isHorizontal() {\n const {axis, position} = this.options;\n return position === 'top' || position === 'bottom' || axis === 'x';\n }\n isFullSize() {\n return this.options.fullSize;\n }\n _convertTicksToLabels(ticks) {\n this.beforeTickToLabelConversion();\n this.generateTickLabels(ticks);\n let i, ilen;\n for (i = 0, ilen = ticks.length; i < ilen; i++) {\n if (isNullOrUndef(ticks[i].label)) {\n ticks.splice(i, 1);\n ilen--;\n i--;\n }\n }\n this.afterTickToLabelConversion();\n }\n _getLabelSizes() {\n let labelSizes = this._labelSizes;\n if (!labelSizes) {\n const sampleSize = this.options.ticks.sampleSize;\n let ticks = this.ticks;\n if (sampleSize < ticks.length) {\n ticks = sample(ticks, sampleSize);\n }\n this._labelSizes = labelSizes = this._computeLabelSizes(ticks, ticks.length);\n }\n return labelSizes;\n }\n _computeLabelSizes(ticks, length) {\n const {ctx, _longestTextCache: caches} = this;\n const widths = [];\n const heights = [];\n let widestLabelSize = 0;\n let highestLabelSize = 0;\n let i, j, jlen, label, tickFont, fontString, cache, lineHeight, width, height, nestedLabel;\n for (i = 0; i < length; ++i) {\n label = ticks[i].label;\n tickFont = this._resolveTickFontOptions(i);\n ctx.font = fontString = tickFont.string;\n cache = caches[fontString] = caches[fontString] || {data: {}, gc: []};\n lineHeight = tickFont.lineHeight;\n width = height = 0;\n if (!isNullOrUndef(label) && !isArray(label)) {\n width = _measureText(ctx, cache.data, cache.gc, width, label);\n height = lineHeight;\n } else if (isArray(label)) {\n for (j = 0, jlen = label.length; j < jlen; ++j) {\n nestedLabel = label[j];\n if (!isNullOrUndef(nestedLabel) && !isArray(nestedLabel)) {\n width = _measureText(ctx, cache.data, cache.gc, width, nestedLabel);\n height += lineHeight;\n }\n }\n }\n widths.push(width);\n heights.push(height);\n widestLabelSize = Math.max(width, widestLabelSize);\n highestLabelSize = Math.max(height, highestLabelSize);\n }\n garbageCollect(caches, length);\n const widest = widths.indexOf(widestLabelSize);\n const highest = heights.indexOf(highestLabelSize);\n const valueAt = (idx) => ({width: widths[idx] || 0, height: heights[idx] || 0});\n return {\n first: valueAt(0),\n last: valueAt(length - 1),\n widest: valueAt(widest),\n highest: valueAt(highest),\n widths,\n heights,\n };\n }\n getLabelForValue(value) {\n return value;\n }\n getPixelForValue(value, index) {\n return NaN;\n }\n getValueForPixel(pixel) {}\n getPixelForTick(index) {\n const ticks = this.ticks;\n if (index < 0 || index > ticks.length - 1) {\n return null;\n }\n return this.getPixelForValue(ticks[index].value);\n }\n getPixelForDecimal(decimal) {\n if (this._reversePixels) {\n decimal = 1 - decimal;\n }\n const pixel = this._startPixel + decimal * this._length;\n return _int16Range(this._alignToPixels ? _alignPixel(this.chart, pixel, 0) : pixel);\n }\n getDecimalForPixel(pixel) {\n const decimal = (pixel - this._startPixel) / this._length;\n return this._reversePixels ? 1 - decimal : decimal;\n }\n getBasePixel() {\n return this.getPixelForValue(this.getBaseValue());\n }\n getBaseValue() {\n const {min, max} = this;\n return min < 0 && max < 0 ? max :\n min > 0 && max > 0 ? min :\n 0;\n }\n getContext(index) {\n const ticks = this.ticks || [];\n if (index >= 0 && index < ticks.length) {\n const tick = ticks[index];\n return tick.$context ||\n\t\t\t\t(tick.$context = createTickContext(this.getContext(), index, tick));\n }\n return this.$context ||\n\t\t\t(this.$context = createScaleContext(this.chart.getContext(), this));\n }\n _tickSize() {\n const optionTicks = this.options.ticks;\n const rot = toRadians(this.labelRotation);\n const cos = Math.abs(Math.cos(rot));\n const sin = Math.abs(Math.sin(rot));\n const labelSizes = this._getLabelSizes();\n const padding = optionTicks.autoSkipPadding || 0;\n const w = labelSizes ? labelSizes.widest.width + padding : 0;\n const h = labelSizes ? labelSizes.highest.height + padding : 0;\n return this.isHorizontal()\n ? h * cos > w * sin ? w / cos : h / sin\n : h * sin < w * cos ? h / cos : w / sin;\n }\n _isVisible() {\n const display = this.options.display;\n if (display !== 'auto') {\n return !!display;\n }\n return this.getMatchingVisibleMetas().length > 0;\n }\n _computeGridLineItems(chartArea) {\n const axis = this.axis;\n const chart = this.chart;\n const options = this.options;\n const {grid, position} = options;\n const offset = grid.offset;\n const isHorizontal = this.isHorizontal();\n const ticks = this.ticks;\n const ticksLength = ticks.length + (offset ? 1 : 0);\n const tl = getTickMarkLength(grid);\n const items = [];\n const borderOpts = grid.setContext(this.getContext());\n const axisWidth = borderOpts.drawBorder ? borderOpts.borderWidth : 0;\n const axisHalfWidth = axisWidth / 2;\n const alignBorderValue = function(pixel) {\n return _alignPixel(chart, pixel, axisWidth);\n };\n let borderValue, i, lineValue, alignedLineValue;\n let tx1, ty1, tx2, ty2, x1, y1, x2, y2;\n if (position === 'top') {\n borderValue = alignBorderValue(this.bottom);\n ty1 = this.bottom - tl;\n ty2 = borderValue - axisHalfWidth;\n y1 = alignBorderValue(chartArea.top) + axisHalfWidth;\n y2 = chartArea.bottom;\n } else if (position === 'bottom') {\n borderValue = alignBorderValue(this.top);\n y1 = chartArea.top;\n y2 = alignBorderValue(chartArea.bottom) - axisHalfWidth;\n ty1 = borderValue + axisHalfWidth;\n ty2 = this.top + tl;\n } else if (position === 'left') {\n borderValue = alignBorderValue(this.right);\n tx1 = this.right - tl;\n tx2 = borderValue - axisHalfWidth;\n x1 = alignBorderValue(chartArea.left) + axisHalfWidth;\n x2 = chartArea.right;\n } else if (position === 'right') {\n borderValue = alignBorderValue(this.left);\n x1 = chartArea.left;\n x2 = alignBorderValue(chartArea.right) - axisHalfWidth;\n tx1 = borderValue + axisHalfWidth;\n tx2 = this.left + tl;\n } else if (axis === 'x') {\n if (position === 'center') {\n borderValue = alignBorderValue((chartArea.top + chartArea.bottom) / 2 + 0.5);\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n borderValue = alignBorderValue(this.chart.scales[positionAxisID].getPixelForValue(value));\n }\n y1 = chartArea.top;\n y2 = chartArea.bottom;\n ty1 = borderValue + axisHalfWidth;\n ty2 = ty1 + tl;\n } else if (axis === 'y') {\n if (position === 'center') {\n borderValue = alignBorderValue((chartArea.left + chartArea.right) / 2);\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n borderValue = alignBorderValue(this.chart.scales[positionAxisID].getPixelForValue(value));\n }\n tx1 = borderValue - axisHalfWidth;\n tx2 = tx1 - tl;\n x1 = chartArea.left;\n x2 = chartArea.right;\n }\n const limit = valueOrDefault(options.ticks.maxTicksLimit, ticksLength);\n const step = Math.max(1, Math.ceil(ticksLength / limit));\n for (i = 0; i < ticksLength; i += step) {\n const optsAtIndex = grid.setContext(this.getContext(i));\n const lineWidth = optsAtIndex.lineWidth;\n const lineColor = optsAtIndex.color;\n const borderDash = optsAtIndex.borderDash || [];\n const borderDashOffset = optsAtIndex.borderDashOffset;\n const tickWidth = optsAtIndex.tickWidth;\n const tickColor = optsAtIndex.tickColor;\n const tickBorderDash = optsAtIndex.tickBorderDash || [];\n const tickBorderDashOffset = optsAtIndex.tickBorderDashOffset;\n lineValue = getPixelForGridLine(this, i, offset);\n if (lineValue === undefined) {\n continue;\n }\n alignedLineValue = _alignPixel(chart, lineValue, lineWidth);\n if (isHorizontal) {\n tx1 = tx2 = x1 = x2 = alignedLineValue;\n } else {\n ty1 = ty2 = y1 = y2 = alignedLineValue;\n }\n items.push({\n tx1,\n ty1,\n tx2,\n ty2,\n x1,\n y1,\n x2,\n y2,\n width: lineWidth,\n color: lineColor,\n borderDash,\n borderDashOffset,\n tickWidth,\n tickColor,\n tickBorderDash,\n tickBorderDashOffset,\n });\n }\n this._ticksLength = ticksLength;\n this._borderValue = borderValue;\n return items;\n }\n _computeLabelItems(chartArea) {\n const axis = this.axis;\n const options = this.options;\n const {position, ticks: optionTicks} = options;\n const isHorizontal = this.isHorizontal();\n const ticks = this.ticks;\n const {align, crossAlign, padding, mirror} = optionTicks;\n const tl = getTickMarkLength(options.grid);\n const tickAndPadding = tl + padding;\n const hTickAndPadding = mirror ? -padding : tickAndPadding;\n const rotation = -toRadians(this.labelRotation);\n const items = [];\n let i, ilen, tick, label, x, y, textAlign, pixel, font, lineHeight, lineCount, textOffset;\n let textBaseline = 'middle';\n if (position === 'top') {\n y = this.bottom - hTickAndPadding;\n textAlign = this._getXAxisLabelAlignment();\n } else if (position === 'bottom') {\n y = this.top + hTickAndPadding;\n textAlign = this._getXAxisLabelAlignment();\n } else if (position === 'left') {\n const ret = this._getYAxisLabelAlignment(tl);\n textAlign = ret.textAlign;\n x = ret.x;\n } else if (position === 'right') {\n const ret = this._getYAxisLabelAlignment(tl);\n textAlign = ret.textAlign;\n x = ret.x;\n } else if (axis === 'x') {\n if (position === 'center') {\n y = ((chartArea.top + chartArea.bottom) / 2) + tickAndPadding;\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n y = this.chart.scales[positionAxisID].getPixelForValue(value) + tickAndPadding;\n }\n textAlign = this._getXAxisLabelAlignment();\n } else if (axis === 'y') {\n if (position === 'center') {\n x = ((chartArea.left + chartArea.right) / 2) - tickAndPadding;\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n x = this.chart.scales[positionAxisID].getPixelForValue(value);\n }\n textAlign = this._getYAxisLabelAlignment(tl).textAlign;\n }\n if (axis === 'y') {\n if (align === 'start') {\n textBaseline = 'top';\n } else if (align === 'end') {\n textBaseline = 'bottom';\n }\n }\n const labelSizes = this._getLabelSizes();\n for (i = 0, ilen = ticks.length; i < ilen; ++i) {\n tick = ticks[i];\n label = tick.label;\n const optsAtIndex = optionTicks.setContext(this.getContext(i));\n pixel = this.getPixelForTick(i) + optionTicks.labelOffset;\n font = this._resolveTickFontOptions(i);\n lineHeight = font.lineHeight;\n lineCount = isArray(label) ? label.length : 1;\n const halfCount = lineCount / 2;\n const color = optsAtIndex.color;\n const strokeColor = optsAtIndex.textStrokeColor;\n const strokeWidth = optsAtIndex.textStrokeWidth;\n let tickTextAlign = textAlign;\n if (isHorizontal) {\n x = pixel;\n if (textAlign === 'inner') {\n if (i === ilen - 1) {\n tickTextAlign = !this.options.reverse ? 'right' : 'left';\n } else if (i === 0) {\n tickTextAlign = !this.options.reverse ? 'left' : 'right';\n } else {\n tickTextAlign = 'center';\n }\n }\n if (position === 'top') {\n if (crossAlign === 'near' || rotation !== 0) {\n textOffset = -lineCount * lineHeight + lineHeight / 2;\n } else if (crossAlign === 'center') {\n textOffset = -labelSizes.highest.height / 2 - halfCount * lineHeight + lineHeight;\n } else {\n textOffset = -labelSizes.highest.height + lineHeight / 2;\n }\n } else {\n if (crossAlign === 'near' || rotation !== 0) {\n textOffset = lineHeight / 2;\n } else if (crossAlign === 'center') {\n textOffset = labelSizes.highest.height / 2 - halfCount * lineHeight;\n } else {\n textOffset = labelSizes.highest.height - lineCount * lineHeight;\n }\n }\n if (mirror) {\n textOffset *= -1;\n }\n } else {\n y = pixel;\n textOffset = (1 - lineCount) * lineHeight / 2;\n }\n let backdrop;\n if (optsAtIndex.showLabelBackdrop) {\n const labelPadding = toPadding(optsAtIndex.backdropPadding);\n const height = labelSizes.heights[i];\n const width = labelSizes.widths[i];\n let top = y + textOffset - labelPadding.top;\n let left = x - labelPadding.left;\n switch (textBaseline) {\n case 'middle':\n top -= height / 2;\n break;\n case 'bottom':\n top -= height;\n break;\n }\n switch (textAlign) {\n case 'center':\n left -= width / 2;\n break;\n case 'right':\n left -= width;\n break;\n }\n backdrop = {\n left,\n top,\n width: width + labelPadding.width,\n height: height + labelPadding.height,\n color: optsAtIndex.backdropColor,\n };\n }\n items.push({\n rotation,\n label,\n font,\n color,\n strokeColor,\n strokeWidth,\n textOffset,\n textAlign: tickTextAlign,\n textBaseline,\n translation: [x, y],\n backdrop,\n });\n }\n return items;\n }\n _getXAxisLabelAlignment() {\n const {position, ticks} = this.options;\n const rotation = -toRadians(this.labelRotation);\n if (rotation) {\n return position === 'top' ? 'left' : 'right';\n }\n let align = 'center';\n if (ticks.align === 'start') {\n align = 'left';\n } else if (ticks.align === 'end') {\n align = 'right';\n } else if (ticks.align === 'inner') {\n align = 'inner';\n }\n return align;\n }\n _getYAxisLabelAlignment(tl) {\n const {position, ticks: {crossAlign, mirror, padding}} = this.options;\n const labelSizes = this._getLabelSizes();\n const tickAndPadding = tl + padding;\n const widest = labelSizes.widest.width;\n let textAlign;\n let x;\n if (position === 'left') {\n if (mirror) {\n x = this.right + padding;\n if (crossAlign === 'near') {\n textAlign = 'left';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x += (widest / 2);\n } else {\n textAlign = 'right';\n x += widest;\n }\n } else {\n x = this.right - tickAndPadding;\n if (crossAlign === 'near') {\n textAlign = 'right';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x -= (widest / 2);\n } else {\n textAlign = 'left';\n x = this.left;\n }\n }\n } else if (position === 'right') {\n if (mirror) {\n x = this.left + padding;\n if (crossAlign === 'near') {\n textAlign = 'right';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x -= (widest / 2);\n } else {\n textAlign = 'left';\n x -= widest;\n }\n } else {\n x = this.left + tickAndPadding;\n if (crossAlign === 'near') {\n textAlign = 'left';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x += widest / 2;\n } else {\n textAlign = 'right';\n x = this.right;\n }\n }\n } else {\n textAlign = 'right';\n }\n return {textAlign, x};\n }\n _computeLabelArea() {\n if (this.options.ticks.mirror) {\n return;\n }\n const chart = this.chart;\n const position = this.options.position;\n if (position === 'left' || position === 'right') {\n return {top: 0, left: this.left, bottom: chart.height, right: this.right};\n } if (position === 'top' || position === 'bottom') {\n return {top: this.top, left: 0, bottom: this.bottom, right: chart.width};\n }\n }\n drawBackground() {\n const {ctx, options: {backgroundColor}, left, top, width, height} = this;\n if (backgroundColor) {\n ctx.save();\n ctx.fillStyle = backgroundColor;\n ctx.fillRect(left, top, width, height);\n ctx.restore();\n }\n }\n getLineWidthForValue(value) {\n const grid = this.options.grid;\n if (!this._isVisible() || !grid.display) {\n return 0;\n }\n const ticks = this.ticks;\n const index = ticks.findIndex(t => t.value === value);\n if (index >= 0) {\n const opts = grid.setContext(this.getContext(index));\n return opts.lineWidth;\n }\n return 0;\n }\n drawGrid(chartArea) {\n const grid = this.options.grid;\n const ctx = this.ctx;\n const items = this._gridLineItems || (this._gridLineItems = this._computeGridLineItems(chartArea));\n let i, ilen;\n const drawLine = (p1, p2, style) => {\n if (!style.width || !style.color) {\n return;\n }\n ctx.save();\n ctx.lineWidth = style.width;\n ctx.strokeStyle = style.color;\n ctx.setLineDash(style.borderDash || []);\n ctx.lineDashOffset = style.borderDashOffset;\n ctx.beginPath();\n ctx.moveTo(p1.x, p1.y);\n ctx.lineTo(p2.x, p2.y);\n ctx.stroke();\n ctx.restore();\n };\n if (grid.display) {\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n const item = items[i];\n if (grid.drawOnChartArea) {\n drawLine(\n {x: item.x1, y: item.y1},\n {x: item.x2, y: item.y2},\n item\n );\n }\n if (grid.drawTicks) {\n drawLine(\n {x: item.tx1, y: item.ty1},\n {x: item.tx2, y: item.ty2},\n {\n color: item.tickColor,\n width: item.tickWidth,\n borderDash: item.tickBorderDash,\n borderDashOffset: item.tickBorderDashOffset\n }\n );\n }\n }\n }\n }\n drawBorder() {\n const {chart, ctx, options: {grid}} = this;\n const borderOpts = grid.setContext(this.getContext());\n const axisWidth = grid.drawBorder ? borderOpts.borderWidth : 0;\n if (!axisWidth) {\n return;\n }\n const lastLineWidth = grid.setContext(this.getContext(0)).lineWidth;\n const borderValue = this._borderValue;\n let x1, x2, y1, y2;\n if (this.isHorizontal()) {\n x1 = _alignPixel(chart, this.left, axisWidth) - axisWidth / 2;\n x2 = _alignPixel(chart, this.right, lastLineWidth) + lastLineWidth / 2;\n y1 = y2 = borderValue;\n } else {\n y1 = _alignPixel(chart, this.top, axisWidth) - axisWidth / 2;\n y2 = _alignPixel(chart, this.bottom, lastLineWidth) + lastLineWidth / 2;\n x1 = x2 = borderValue;\n }\n ctx.save();\n ctx.lineWidth = borderOpts.borderWidth;\n ctx.strokeStyle = borderOpts.borderColor;\n ctx.beginPath();\n ctx.moveTo(x1, y1);\n ctx.lineTo(x2, y2);\n ctx.stroke();\n ctx.restore();\n }\n drawLabels(chartArea) {\n const optionTicks = this.options.ticks;\n if (!optionTicks.display) {\n return;\n }\n const ctx = this.ctx;\n const area = this._computeLabelArea();\n if (area) {\n clipArea(ctx, area);\n }\n const items = this._labelItems || (this._labelItems = this._computeLabelItems(chartArea));\n let i, ilen;\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n const item = items[i];\n const tickFont = item.font;\n const label = item.label;\n if (item.backdrop) {\n ctx.fillStyle = item.backdrop.color;\n ctx.fillRect(item.backdrop.left, item.backdrop.top, item.backdrop.width, item.backdrop.height);\n }\n let y = item.textOffset;\n renderText(ctx, label, 0, y, tickFont, item);\n }\n if (area) {\n unclipArea(ctx);\n }\n }\n drawTitle() {\n const {ctx, options: {position, title, reverse}} = this;\n if (!title.display) {\n return;\n }\n const font = toFont(title.font);\n const padding = toPadding(title.padding);\n const align = title.align;\n let offset = font.lineHeight / 2;\n if (position === 'bottom' || position === 'center' || isObject(position)) {\n offset += padding.bottom;\n if (isArray(title.text)) {\n offset += font.lineHeight * (title.text.length - 1);\n }\n } else {\n offset += padding.top;\n }\n const {titleX, titleY, maxWidth, rotation} = titleArgs(this, offset, position, align);\n renderText(ctx, title.text, 0, 0, font, {\n color: title.color,\n maxWidth,\n rotation,\n textAlign: titleAlign(align, position, reverse),\n textBaseline: 'middle',\n translation: [titleX, titleY],\n });\n }\n draw(chartArea) {\n if (!this._isVisible()) {\n return;\n }\n this.drawBackground();\n this.drawGrid(chartArea);\n this.drawBorder();\n this.drawTitle();\n this.drawLabels(chartArea);\n }\n _layers() {\n const opts = this.options;\n const tz = opts.ticks && opts.ticks.z || 0;\n const gz = valueOrDefault(opts.grid && opts.grid.z, -1);\n if (!this._isVisible() || this.draw !== Scale.prototype.draw) {\n return [{\n z: tz,\n draw: (chartArea) => {\n this.draw(chartArea);\n }\n }];\n }\n return [{\n z: gz,\n draw: (chartArea) => {\n this.drawBackground();\n this.drawGrid(chartArea);\n this.drawTitle();\n }\n }, {\n z: gz + 1,\n draw: () => {\n this.drawBorder();\n }\n }, {\n z: tz,\n draw: (chartArea) => {\n this.drawLabels(chartArea);\n }\n }];\n }\n getMatchingVisibleMetas(type) {\n const metas = this.chart.getSortedVisibleDatasetMetas();\n const axisID = this.axis + 'AxisID';\n const result = [];\n let i, ilen;\n for (i = 0, ilen = metas.length; i < ilen; ++i) {\n const meta = metas[i];\n if (meta[axisID] === this.id && (!type || meta.type === type)) {\n result.push(meta);\n }\n }\n return result;\n }\n _resolveTickFontOptions(index) {\n const opts = this.options.ticks.setContext(this.getContext(index));\n return toFont(opts.font);\n }\n _maxDigits() {\n const fontSize = this._resolveTickFontOptions(0).lineHeight;\n return (this.isHorizontal() ? this.width : this.height) / fontSize;\n }\n}\n\nclass TypedRegistry {\n constructor(type, scope, override) {\n this.type = type;\n this.scope = scope;\n this.override = override;\n this.items = Object.create(null);\n }\n isForType(type) {\n return Object.prototype.isPrototypeOf.call(this.type.prototype, type.prototype);\n }\n register(item) {\n const proto = Object.getPrototypeOf(item);\n let parentScope;\n if (isIChartComponent(proto)) {\n parentScope = this.register(proto);\n }\n const items = this.items;\n const id = item.id;\n const scope = this.scope + '.' + id;\n if (!id) {\n throw new Error('class does not have id: ' + item);\n }\n if (id in items) {\n return scope;\n }\n items[id] = item;\n registerDefaults(item, scope, parentScope);\n if (this.override) {\n defaults.override(item.id, item.overrides);\n }\n return scope;\n }\n get(id) {\n return this.items[id];\n }\n unregister(item) {\n const items = this.items;\n const id = item.id;\n const scope = this.scope;\n if (id in items) {\n delete items[id];\n }\n if (scope && id in defaults[scope]) {\n delete defaults[scope][id];\n if (this.override) {\n delete overrides[id];\n }\n }\n }\n}\nfunction registerDefaults(item, scope, parentScope) {\n const itemDefaults = merge(Object.create(null), [\n parentScope ? defaults.get(parentScope) : {},\n defaults.get(scope),\n item.defaults\n ]);\n defaults.set(scope, itemDefaults);\n if (item.defaultRoutes) {\n routeDefaults(scope, item.defaultRoutes);\n }\n if (item.descriptors) {\n defaults.describe(scope, item.descriptors);\n }\n}\nfunction routeDefaults(scope, routes) {\n Object.keys(routes).forEach(property => {\n const propertyParts = property.split('.');\n const sourceName = propertyParts.pop();\n const sourceScope = [scope].concat(propertyParts).join('.');\n const parts = routes[property].split('.');\n const targetName = parts.pop();\n const targetScope = parts.join('.');\n defaults.route(sourceScope, sourceName, targetScope, targetName);\n });\n}\nfunction isIChartComponent(proto) {\n return 'id' in proto && 'defaults' in proto;\n}\n\nclass Registry {\n constructor() {\n this.controllers = new TypedRegistry(DatasetController, 'datasets', true);\n this.elements = new TypedRegistry(Element, 'elements');\n this.plugins = new TypedRegistry(Object, 'plugins');\n this.scales = new TypedRegistry(Scale, 'scales');\n this._typedRegistries = [this.controllers, this.scales, this.elements];\n }\n add(...args) {\n this._each('register', args);\n }\n remove(...args) {\n this._each('unregister', args);\n }\n addControllers(...args) {\n this._each('register', args, this.controllers);\n }\n addElements(...args) {\n this._each('register', args, this.elements);\n }\n addPlugins(...args) {\n this._each('register', args, this.plugins);\n }\n addScales(...args) {\n this._each('register', args, this.scales);\n }\n getController(id) {\n return this._get(id, this.controllers, 'controller');\n }\n getElement(id) {\n return this._get(id, this.elements, 'element');\n }\n getPlugin(id) {\n return this._get(id, this.plugins, 'plugin');\n }\n getScale(id) {\n return this._get(id, this.scales, 'scale');\n }\n removeControllers(...args) {\n this._each('unregister', args, this.controllers);\n }\n removeElements(...args) {\n this._each('unregister', args, this.elements);\n }\n removePlugins(...args) {\n this._each('unregister', args, this.plugins);\n }\n removeScales(...args) {\n this._each('unregister', args, this.scales);\n }\n _each(method, args, typedRegistry) {\n [...args].forEach(arg => {\n const reg = typedRegistry || this._getRegistryForType(arg);\n if (typedRegistry || reg.isForType(arg) || (reg === this.plugins && arg.id)) {\n this._exec(method, reg, arg);\n } else {\n each(arg, item => {\n const itemReg = typedRegistry || this._getRegistryForType(item);\n this._exec(method, itemReg, item);\n });\n }\n });\n }\n _exec(method, registry, component) {\n const camelMethod = _capitalize(method);\n callback(component['before' + camelMethod], [], component);\n registry[method](component);\n callback(component['after' + camelMethod], [], component);\n }\n _getRegistryForType(type) {\n for (let i = 0; i < this._typedRegistries.length; i++) {\n const reg = this._typedRegistries[i];\n if (reg.isForType(type)) {\n return reg;\n }\n }\n return this.plugins;\n }\n _get(id, typedRegistry, type) {\n const item = typedRegistry.get(id);\n if (item === undefined) {\n throw new Error('\"' + id + '\" is not a registered ' + type + '.');\n }\n return item;\n }\n}\nvar registry = new Registry();\n\nclass ScatterController extends DatasetController {\n update(mode) {\n const meta = this._cachedMeta;\n const {data: points = []} = meta;\n const animationsDisabled = this.chart._animationsDisabled;\n let {start, count} = _getStartAndCountOfVisiblePoints(meta, points, animationsDisabled);\n this._drawStart = start;\n this._drawCount = count;\n if (_scaleRangesChanged(meta)) {\n start = 0;\n count = points.length;\n }\n if (this.options.showLine) {\n const {dataset: line, _dataset} = meta;\n line._chart = this.chart;\n line._datasetIndex = this.index;\n line._decimated = !!_dataset._decimated;\n line.points = points;\n const options = this.resolveDatasetElementOptions(mode);\n options.segment = this.options.segment;\n this.updateElement(line, undefined, {\n animated: !animationsDisabled,\n options\n }, mode);\n }\n this.updateElements(points, start, count, mode);\n }\n addElements() {\n const {showLine} = this.options;\n if (!this.datasetElementType && showLine) {\n this.datasetElementType = registry.getElement('line');\n }\n super.addElements();\n }\n updateElements(points, start, count, mode) {\n const reset = mode === 'reset';\n const {iScale, vScale, _stacked, _dataset} = this._cachedMeta;\n const firstOpts = this.resolveDataElementOptions(start, mode);\n const sharedOptions = this.getSharedOptions(firstOpts);\n const includeOptions = this.includeOptions(mode, sharedOptions);\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n const {spanGaps, segment} = this.options;\n const maxGapLength = isNumber(spanGaps) ? spanGaps : Number.POSITIVE_INFINITY;\n const directUpdate = this.chart._animationsDisabled || reset || mode === 'none';\n let prevParsed = start > 0 && this.getParsed(start - 1);\n for (let i = start; i < start + count; ++i) {\n const point = points[i];\n const parsed = this.getParsed(i);\n const properties = directUpdate ? point : {};\n const nullData = isNullOrUndef(parsed[vAxis]);\n const iPixel = properties[iAxis] = iScale.getPixelForValue(parsed[iAxis], i);\n const vPixel = properties[vAxis] = reset || nullData ? vScale.getBasePixel() : vScale.getPixelForValue(_stacked ? this.applyStack(vScale, parsed, _stacked) : parsed[vAxis], i);\n properties.skip = isNaN(iPixel) || isNaN(vPixel) || nullData;\n properties.stop = i > 0 && (Math.abs(parsed[iAxis] - prevParsed[iAxis])) > maxGapLength;\n if (segment) {\n properties.parsed = parsed;\n properties.raw = _dataset.data[i];\n }\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n }\n if (!directUpdate) {\n this.updateElement(point, i, properties, mode);\n }\n prevParsed = parsed;\n }\n this.updateSharedOptions(sharedOptions, mode, firstOpts);\n }\n getMaxOverflow() {\n const meta = this._cachedMeta;\n const data = meta.data || [];\n if (!this.options.showLine) {\n let max = 0;\n for (let i = data.length - 1; i >= 0; --i) {\n max = Math.max(max, data[i].size(this.resolveDataElementOptions(i)) / 2);\n }\n return max > 0 && max;\n }\n const dataset = meta.dataset;\n const border = dataset.options && dataset.options.borderWidth || 0;\n if (!data.length) {\n return border;\n }\n const firstPoint = data[0].size(this.resolveDataElementOptions(0));\n const lastPoint = data[data.length - 1].size(this.resolveDataElementOptions(data.length - 1));\n return Math.max(border, firstPoint, lastPoint) / 2;\n }\n}\nScatterController.id = 'scatter';\nScatterController.defaults = {\n datasetElementType: false,\n dataElementType: 'point',\n showLine: false,\n fill: false\n};\nScatterController.overrides = {\n interaction: {\n mode: 'point'\n },\n plugins: {\n tooltip: {\n callbacks: {\n title() {\n return '';\n },\n label(item) {\n return '(' + item.label + ', ' + item.formattedValue + ')';\n }\n }\n }\n },\n scales: {\n x: {\n type: 'linear'\n },\n y: {\n type: 'linear'\n }\n }\n};\n\nvar controllers = /*#__PURE__*/Object.freeze({\n__proto__: null,\nBarController: BarController,\nBubbleController: BubbleController,\nDoughnutController: DoughnutController,\nLineController: LineController,\nPolarAreaController: PolarAreaController,\nPieController: PieController,\nRadarController: RadarController,\nScatterController: ScatterController\n});\n\nfunction abstract() {\n throw new Error('This method is not implemented: Check that a complete date adapter is provided.');\n}\nclass DateAdapter {\n constructor(options) {\n this.options = options || {};\n }\n init(chartOptions) {}\n formats() {\n return abstract();\n }\n parse(value, format) {\n return abstract();\n }\n format(timestamp, format) {\n return abstract();\n }\n add(timestamp, amount, unit) {\n return abstract();\n }\n diff(a, b, unit) {\n return abstract();\n }\n startOf(timestamp, unit, weekday) {\n return abstract();\n }\n endOf(timestamp, unit) {\n return abstract();\n }\n}\nDateAdapter.override = function(members) {\n Object.assign(DateAdapter.prototype, members);\n};\nvar adapters = {\n _date: DateAdapter\n};\n\nfunction binarySearch(metaset, axis, value, intersect) {\n const {controller, data, _sorted} = metaset;\n const iScale = controller._cachedMeta.iScale;\n if (iScale && axis === iScale.axis && axis !== 'r' && _sorted && data.length) {\n const lookupMethod = iScale._reversePixels ? _rlookupByKey : _lookupByKey;\n if (!intersect) {\n return lookupMethod(data, axis, value);\n } else if (controller._sharedOptions) {\n const el = data[0];\n const range = typeof el.getRange === 'function' && el.getRange(axis);\n if (range) {\n const start = lookupMethod(data, axis, value - range);\n const end = lookupMethod(data, axis, value + range);\n return {lo: start.lo, hi: end.hi};\n }\n }\n }\n return {lo: 0, hi: data.length - 1};\n}\nfunction evaluateInteractionItems(chart, axis, position, handler, intersect) {\n const metasets = chart.getSortedVisibleDatasetMetas();\n const value = position[axis];\n for (let i = 0, ilen = metasets.length; i < ilen; ++i) {\n const {index, data} = metasets[i];\n const {lo, hi} = binarySearch(metasets[i], axis, value, intersect);\n for (let j = lo; j <= hi; ++j) {\n const element = data[j];\n if (!element.skip) {\n handler(element, index, j);\n }\n }\n }\n}\nfunction getDistanceMetricForAxis(axis) {\n const useX = axis.indexOf('x') !== -1;\n const useY = axis.indexOf('y') !== -1;\n return function(pt1, pt2) {\n const deltaX = useX ? Math.abs(pt1.x - pt2.x) : 0;\n const deltaY = useY ? Math.abs(pt1.y - pt2.y) : 0;\n return Math.sqrt(Math.pow(deltaX, 2) + Math.pow(deltaY, 2));\n };\n}\nfunction getIntersectItems(chart, position, axis, useFinalPosition, includeInvisible) {\n const items = [];\n if (!includeInvisible && !chart.isPointInArea(position)) {\n return items;\n }\n const evaluationFunc = function(element, datasetIndex, index) {\n if (!includeInvisible && !_isPointInArea(element, chart.chartArea, 0)) {\n return;\n }\n if (element.inRange(position.x, position.y, useFinalPosition)) {\n items.push({element, datasetIndex, index});\n }\n };\n evaluateInteractionItems(chart, axis, position, evaluationFunc, true);\n return items;\n}\nfunction getNearestRadialItems(chart, position, axis, useFinalPosition) {\n let items = [];\n function evaluationFunc(element, datasetIndex, index) {\n const {startAngle, endAngle} = element.getProps(['startAngle', 'endAngle'], useFinalPosition);\n const {angle} = getAngleFromPoint(element, {x: position.x, y: position.y});\n if (_angleBetween(angle, startAngle, endAngle)) {\n items.push({element, datasetIndex, index});\n }\n }\n evaluateInteractionItems(chart, axis, position, evaluationFunc);\n return items;\n}\nfunction getNearestCartesianItems(chart, position, axis, intersect, useFinalPosition, includeInvisible) {\n let items = [];\n const distanceMetric = getDistanceMetricForAxis(axis);\n let minDistance = Number.POSITIVE_INFINITY;\n function evaluationFunc(element, datasetIndex, index) {\n const inRange = element.inRange(position.x, position.y, useFinalPosition);\n if (intersect && !inRange) {\n return;\n }\n const center = element.getCenterPoint(useFinalPosition);\n const pointInArea = !!includeInvisible || chart.isPointInArea(center);\n if (!pointInArea && !inRange) {\n return;\n }\n const distance = distanceMetric(position, center);\n if (distance < minDistance) {\n items = [{element, datasetIndex, index}];\n minDistance = distance;\n } else if (distance === minDistance) {\n items.push({element, datasetIndex, index});\n }\n }\n evaluateInteractionItems(chart, axis, position, evaluationFunc);\n return items;\n}\nfunction getNearestItems(chart, position, axis, intersect, useFinalPosition, includeInvisible) {\n if (!includeInvisible && !chart.isPointInArea(position)) {\n return [];\n }\n return axis === 'r' && !intersect\n ? getNearestRadialItems(chart, position, axis, useFinalPosition)\n : getNearestCartesianItems(chart, position, axis, intersect, useFinalPosition, includeInvisible);\n}\nfunction getAxisItems(chart, position, axis, intersect, useFinalPosition) {\n const items = [];\n const rangeMethod = axis === 'x' ? 'inXRange' : 'inYRange';\n let intersectsItem = false;\n evaluateInteractionItems(chart, axis, position, (element, datasetIndex, index) => {\n if (element[rangeMethod](position[axis], useFinalPosition)) {\n items.push({element, datasetIndex, index});\n intersectsItem = intersectsItem || element.inRange(position.x, position.y, useFinalPosition);\n }\n });\n if (intersect && !intersectsItem) {\n return [];\n }\n return items;\n}\nvar Interaction = {\n evaluateInteractionItems,\n modes: {\n index(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'x';\n const includeInvisible = options.includeInvisible || false;\n const items = options.intersect\n ? getIntersectItems(chart, position, axis, useFinalPosition, includeInvisible)\n : getNearestItems(chart, position, axis, false, useFinalPosition, includeInvisible);\n const elements = [];\n if (!items.length) {\n return [];\n }\n chart.getSortedVisibleDatasetMetas().forEach((meta) => {\n const index = items[0].index;\n const element = meta.data[index];\n if (element && !element.skip) {\n elements.push({element, datasetIndex: meta.index, index});\n }\n });\n return elements;\n },\n dataset(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'xy';\n const includeInvisible = options.includeInvisible || false;\n let items = options.intersect\n ? getIntersectItems(chart, position, axis, useFinalPosition, includeInvisible) :\n getNearestItems(chart, position, axis, false, useFinalPosition, includeInvisible);\n if (items.length > 0) {\n const datasetIndex = items[0].datasetIndex;\n const data = chart.getDatasetMeta(datasetIndex).data;\n items = [];\n for (let i = 0; i < data.length; ++i) {\n items.push({element: data[i], datasetIndex, index: i});\n }\n }\n return items;\n },\n point(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'xy';\n const includeInvisible = options.includeInvisible || false;\n return getIntersectItems(chart, position, axis, useFinalPosition, includeInvisible);\n },\n nearest(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'xy';\n const includeInvisible = options.includeInvisible || false;\n return getNearestItems(chart, position, axis, options.intersect, useFinalPosition, includeInvisible);\n },\n x(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n return getAxisItems(chart, position, 'x', options.intersect, useFinalPosition);\n },\n y(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n return getAxisItems(chart, position, 'y', options.intersect, useFinalPosition);\n }\n }\n};\n\nconst STATIC_POSITIONS = ['left', 'top', 'right', 'bottom'];\nfunction filterByPosition(array, position) {\n return array.filter(v => v.pos === position);\n}\nfunction filterDynamicPositionByAxis(array, axis) {\n return array.filter(v => STATIC_POSITIONS.indexOf(v.pos) === -1 && v.box.axis === axis);\n}\nfunction sortByWeight(array, reverse) {\n return array.sort((a, b) => {\n const v0 = reverse ? b : a;\n const v1 = reverse ? a : b;\n return v0.weight === v1.weight ?\n v0.index - v1.index :\n v0.weight - v1.weight;\n });\n}\nfunction wrapBoxes(boxes) {\n const layoutBoxes = [];\n let i, ilen, box, pos, stack, stackWeight;\n for (i = 0, ilen = (boxes || []).length; i < ilen; ++i) {\n box = boxes[i];\n ({position: pos, options: {stack, stackWeight = 1}} = box);\n layoutBoxes.push({\n index: i,\n box,\n pos,\n horizontal: box.isHorizontal(),\n weight: box.weight,\n stack: stack && (pos + stack),\n stackWeight\n });\n }\n return layoutBoxes;\n}\nfunction buildStacks(layouts) {\n const stacks = {};\n for (const wrap of layouts) {\n const {stack, pos, stackWeight} = wrap;\n if (!stack || !STATIC_POSITIONS.includes(pos)) {\n continue;\n }\n const _stack = stacks[stack] || (stacks[stack] = {count: 0, placed: 0, weight: 0, size: 0});\n _stack.count++;\n _stack.weight += stackWeight;\n }\n return stacks;\n}\nfunction setLayoutDims(layouts, params) {\n const stacks = buildStacks(layouts);\n const {vBoxMaxWidth, hBoxMaxHeight} = params;\n let i, ilen, layout;\n for (i = 0, ilen = layouts.length; i < ilen; ++i) {\n layout = layouts[i];\n const {fullSize} = layout.box;\n const stack = stacks[layout.stack];\n const factor = stack && layout.stackWeight / stack.weight;\n if (layout.horizontal) {\n layout.width = factor ? factor * vBoxMaxWidth : fullSize && params.availableWidth;\n layout.height = hBoxMaxHeight;\n } else {\n layout.width = vBoxMaxWidth;\n layout.height = factor ? factor * hBoxMaxHeight : fullSize && params.availableHeight;\n }\n }\n return stacks;\n}\nfunction buildLayoutBoxes(boxes) {\n const layoutBoxes = wrapBoxes(boxes);\n const fullSize = sortByWeight(layoutBoxes.filter(wrap => wrap.box.fullSize), true);\n const left = sortByWeight(filterByPosition(layoutBoxes, 'left'), true);\n const right = sortByWeight(filterByPosition(layoutBoxes, 'right'));\n const top = sortByWeight(filterByPosition(layoutBoxes, 'top'), true);\n const bottom = sortByWeight(filterByPosition(layoutBoxes, 'bottom'));\n const centerHorizontal = filterDynamicPositionByAxis(layoutBoxes, 'x');\n const centerVertical = filterDynamicPositionByAxis(layoutBoxes, 'y');\n return {\n fullSize,\n leftAndTop: left.concat(top),\n rightAndBottom: right.concat(centerVertical).concat(bottom).concat(centerHorizontal),\n chartArea: filterByPosition(layoutBoxes, 'chartArea'),\n vertical: left.concat(right).concat(centerVertical),\n horizontal: top.concat(bottom).concat(centerHorizontal)\n };\n}\nfunction getCombinedMax(maxPadding, chartArea, a, b) {\n return Math.max(maxPadding[a], chartArea[a]) + Math.max(maxPadding[b], chartArea[b]);\n}\nfunction updateMaxPadding(maxPadding, boxPadding) {\n maxPadding.top = Math.max(maxPadding.top, boxPadding.top);\n maxPadding.left = Math.max(maxPadding.left, boxPadding.left);\n maxPadding.bottom = Math.max(maxPadding.bottom, boxPadding.bottom);\n maxPadding.right = Math.max(maxPadding.right, boxPadding.right);\n}\nfunction updateDims(chartArea, params, layout, stacks) {\n const {pos, box} = layout;\n const maxPadding = chartArea.maxPadding;\n if (!isObject(pos)) {\n if (layout.size) {\n chartArea[pos] -= layout.size;\n }\n const stack = stacks[layout.stack] || {size: 0, count: 1};\n stack.size = Math.max(stack.size, layout.horizontal ? box.height : box.width);\n layout.size = stack.size / stack.count;\n chartArea[pos] += layout.size;\n }\n if (box.getPadding) {\n updateMaxPadding(maxPadding, box.getPadding());\n }\n const newWidth = Math.max(0, params.outerWidth - getCombinedMax(maxPadding, chartArea, 'left', 'right'));\n const newHeight = Math.max(0, params.outerHeight - getCombinedMax(maxPadding, chartArea, 'top', 'bottom'));\n const widthChanged = newWidth !== chartArea.w;\n const heightChanged = newHeight !== chartArea.h;\n chartArea.w = newWidth;\n chartArea.h = newHeight;\n return layout.horizontal\n ? {same: widthChanged, other: heightChanged}\n : {same: heightChanged, other: widthChanged};\n}\nfunction handleMaxPadding(chartArea) {\n const maxPadding = chartArea.maxPadding;\n function updatePos(pos) {\n const change = Math.max(maxPadding[pos] - chartArea[pos], 0);\n chartArea[pos] += change;\n return change;\n }\n chartArea.y += updatePos('top');\n chartArea.x += updatePos('left');\n updatePos('right');\n updatePos('bottom');\n}\nfunction getMargins(horizontal, chartArea) {\n const maxPadding = chartArea.maxPadding;\n function marginForPositions(positions) {\n const margin = {left: 0, top: 0, right: 0, bottom: 0};\n positions.forEach((pos) => {\n margin[pos] = Math.max(chartArea[pos], maxPadding[pos]);\n });\n return margin;\n }\n return horizontal\n ? marginForPositions(['left', 'right'])\n : marginForPositions(['top', 'bottom']);\n}\nfunction fitBoxes(boxes, chartArea, params, stacks) {\n const refitBoxes = [];\n let i, ilen, layout, box, refit, changed;\n for (i = 0, ilen = boxes.length, refit = 0; i < ilen; ++i) {\n layout = boxes[i];\n box = layout.box;\n box.update(\n layout.width || chartArea.w,\n layout.height || chartArea.h,\n getMargins(layout.horizontal, chartArea)\n );\n const {same, other} = updateDims(chartArea, params, layout, stacks);\n refit |= same && refitBoxes.length;\n changed = changed || other;\n if (!box.fullSize) {\n refitBoxes.push(layout);\n }\n }\n return refit && fitBoxes(refitBoxes, chartArea, params, stacks) || changed;\n}\nfunction setBoxDims(box, left, top, width, height) {\n box.top = top;\n box.left = left;\n box.right = left + width;\n box.bottom = top + height;\n box.width = width;\n box.height = height;\n}\nfunction placeBoxes(boxes, chartArea, params, stacks) {\n const userPadding = params.padding;\n let {x, y} = chartArea;\n for (const layout of boxes) {\n const box = layout.box;\n const stack = stacks[layout.stack] || {count: 1, placed: 0, weight: 1};\n const weight = (layout.stackWeight / stack.weight) || 1;\n if (layout.horizontal) {\n const width = chartArea.w * weight;\n const height = stack.size || box.height;\n if (defined(stack.start)) {\n y = stack.start;\n }\n if (box.fullSize) {\n setBoxDims(box, userPadding.left, y, params.outerWidth - userPadding.right - userPadding.left, height);\n } else {\n setBoxDims(box, chartArea.left + stack.placed, y, width, height);\n }\n stack.start = y;\n stack.placed += width;\n y = box.bottom;\n } else {\n const height = chartArea.h * weight;\n const width = stack.size || box.width;\n if (defined(stack.start)) {\n x = stack.start;\n }\n if (box.fullSize) {\n setBoxDims(box, x, userPadding.top, width, params.outerHeight - userPadding.bottom - userPadding.top);\n } else {\n setBoxDims(box, x, chartArea.top + stack.placed, width, height);\n }\n stack.start = x;\n stack.placed += height;\n x = box.right;\n }\n }\n chartArea.x = x;\n chartArea.y = y;\n}\ndefaults.set('layout', {\n autoPadding: true,\n padding: {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n }\n});\nvar layouts = {\n addBox(chart, item) {\n if (!chart.boxes) {\n chart.boxes = [];\n }\n item.fullSize = item.fullSize || false;\n item.position = item.position || 'top';\n item.weight = item.weight || 0;\n item._layers = item._layers || function() {\n return [{\n z: 0,\n draw(chartArea) {\n item.draw(chartArea);\n }\n }];\n };\n chart.boxes.push(item);\n },\n removeBox(chart, layoutItem) {\n const index = chart.boxes ? chart.boxes.indexOf(layoutItem) : -1;\n if (index !== -1) {\n chart.boxes.splice(index, 1);\n }\n },\n configure(chart, item, options) {\n item.fullSize = options.fullSize;\n item.position = options.position;\n item.weight = options.weight;\n },\n update(chart, width, height, minPadding) {\n if (!chart) {\n return;\n }\n const padding = toPadding(chart.options.layout.padding);\n const availableWidth = Math.max(width - padding.width, 0);\n const availableHeight = Math.max(height - padding.height, 0);\n const boxes = buildLayoutBoxes(chart.boxes);\n const verticalBoxes = boxes.vertical;\n const horizontalBoxes = boxes.horizontal;\n each(chart.boxes, box => {\n if (typeof box.beforeLayout === 'function') {\n box.beforeLayout();\n }\n });\n const visibleVerticalBoxCount = verticalBoxes.reduce((total, wrap) =>\n wrap.box.options && wrap.box.options.display === false ? total : total + 1, 0) || 1;\n const params = Object.freeze({\n outerWidth: width,\n outerHeight: height,\n padding,\n availableWidth,\n availableHeight,\n vBoxMaxWidth: availableWidth / 2 / visibleVerticalBoxCount,\n hBoxMaxHeight: availableHeight / 2\n });\n const maxPadding = Object.assign({}, padding);\n updateMaxPadding(maxPadding, toPadding(minPadding));\n const chartArea = Object.assign({\n maxPadding,\n w: availableWidth,\n h: availableHeight,\n x: padding.left,\n y: padding.top\n }, padding);\n const stacks = setLayoutDims(verticalBoxes.concat(horizontalBoxes), params);\n fitBoxes(boxes.fullSize, chartArea, params, stacks);\n fitBoxes(verticalBoxes, chartArea, params, stacks);\n if (fitBoxes(horizontalBoxes, chartArea, params, stacks)) {\n fitBoxes(verticalBoxes, chartArea, params, stacks);\n }\n handleMaxPadding(chartArea);\n placeBoxes(boxes.leftAndTop, chartArea, params, stacks);\n chartArea.x += chartArea.w;\n chartArea.y += chartArea.h;\n placeBoxes(boxes.rightAndBottom, chartArea, params, stacks);\n chart.chartArea = {\n left: chartArea.left,\n top: chartArea.top,\n right: chartArea.left + chartArea.w,\n bottom: chartArea.top + chartArea.h,\n height: chartArea.h,\n width: chartArea.w,\n };\n each(boxes.chartArea, (layout) => {\n const box = layout.box;\n Object.assign(box, chart.chartArea);\n box.update(chartArea.w, chartArea.h, {left: 0, top: 0, right: 0, bottom: 0});\n });\n }\n};\n\nclass BasePlatform {\n acquireContext(canvas, aspectRatio) {}\n releaseContext(context) {\n return false;\n }\n addEventListener(chart, type, listener) {}\n removeEventListener(chart, type, listener) {}\n getDevicePixelRatio() {\n return 1;\n }\n getMaximumSize(element, width, height, aspectRatio) {\n width = Math.max(0, width || element.width);\n height = height || element.height;\n return {\n width,\n height: Math.max(0, aspectRatio ? Math.floor(width / aspectRatio) : height)\n };\n }\n isAttached(canvas) {\n return true;\n }\n updateConfig(config) {\n }\n}\n\nclass BasicPlatform extends BasePlatform {\n acquireContext(item) {\n return item && item.getContext && item.getContext('2d') || null;\n }\n updateConfig(config) {\n config.options.animation = false;\n }\n}\n\nconst EXPANDO_KEY = '$chartjs';\nconst EVENT_TYPES = {\n touchstart: 'mousedown',\n touchmove: 'mousemove',\n touchend: 'mouseup',\n pointerenter: 'mouseenter',\n pointerdown: 'mousedown',\n pointermove: 'mousemove',\n pointerup: 'mouseup',\n pointerleave: 'mouseout',\n pointerout: 'mouseout'\n};\nconst isNullOrEmpty = value => value === null || value === '';\nfunction initCanvas(canvas, aspectRatio) {\n const style = canvas.style;\n const renderHeight = canvas.getAttribute('height');\n const renderWidth = canvas.getAttribute('width');\n canvas[EXPANDO_KEY] = {\n initial: {\n height: renderHeight,\n width: renderWidth,\n style: {\n display: style.display,\n height: style.height,\n width: style.width\n }\n }\n };\n style.display = style.display || 'block';\n style.boxSizing = style.boxSizing || 'border-box';\n if (isNullOrEmpty(renderWidth)) {\n const displayWidth = readUsedSize(canvas, 'width');\n if (displayWidth !== undefined) {\n canvas.width = displayWidth;\n }\n }\n if (isNullOrEmpty(renderHeight)) {\n if (canvas.style.height === '') {\n canvas.height = canvas.width / (aspectRatio || 2);\n } else {\n const displayHeight = readUsedSize(canvas, 'height');\n if (displayHeight !== undefined) {\n canvas.height = displayHeight;\n }\n }\n }\n return canvas;\n}\nconst eventListenerOptions = supportsEventListenerOptions ? {passive: true} : false;\nfunction addListener(node, type, listener) {\n node.addEventListener(type, listener, eventListenerOptions);\n}\nfunction removeListener(chart, type, listener) {\n chart.canvas.removeEventListener(type, listener, eventListenerOptions);\n}\nfunction fromNativeEvent(event, chart) {\n const type = EVENT_TYPES[event.type] || event.type;\n const {x, y} = getRelativePosition(event, chart);\n return {\n type,\n chart,\n native: event,\n x: x !== undefined ? x : null,\n y: y !== undefined ? y : null,\n };\n}\nfunction nodeListContains(nodeList, canvas) {\n for (const node of nodeList) {\n if (node === canvas || node.contains(canvas)) {\n return true;\n }\n }\n}\nfunction createAttachObserver(chart, type, listener) {\n const canvas = chart.canvas;\n const observer = new MutationObserver(entries => {\n let trigger = false;\n for (const entry of entries) {\n trigger = trigger || nodeListContains(entry.addedNodes, canvas);\n trigger = trigger && !nodeListContains(entry.removedNodes, canvas);\n }\n if (trigger) {\n listener();\n }\n });\n observer.observe(document, {childList: true, subtree: true});\n return observer;\n}\nfunction createDetachObserver(chart, type, listener) {\n const canvas = chart.canvas;\n const observer = new MutationObserver(entries => {\n let trigger = false;\n for (const entry of entries) {\n trigger = trigger || nodeListContains(entry.removedNodes, canvas);\n trigger = trigger && !nodeListContains(entry.addedNodes, canvas);\n }\n if (trigger) {\n listener();\n }\n });\n observer.observe(document, {childList: true, subtree: true});\n return observer;\n}\nconst drpListeningCharts = new Map();\nlet oldDevicePixelRatio = 0;\nfunction onWindowResize() {\n const dpr = window.devicePixelRatio;\n if (dpr === oldDevicePixelRatio) {\n return;\n }\n oldDevicePixelRatio = dpr;\n drpListeningCharts.forEach((resize, chart) => {\n if (chart.currentDevicePixelRatio !== dpr) {\n resize();\n }\n });\n}\nfunction listenDevicePixelRatioChanges(chart, resize) {\n if (!drpListeningCharts.size) {\n window.addEventListener('resize', onWindowResize);\n }\n drpListeningCharts.set(chart, resize);\n}\nfunction unlistenDevicePixelRatioChanges(chart) {\n drpListeningCharts.delete(chart);\n if (!drpListeningCharts.size) {\n window.removeEventListener('resize', onWindowResize);\n }\n}\nfunction createResizeObserver(chart, type, listener) {\n const canvas = chart.canvas;\n const container = canvas && _getParentNode(canvas);\n if (!container) {\n return;\n }\n const resize = throttled((width, height) => {\n const w = container.clientWidth;\n listener(width, height);\n if (w < container.clientWidth) {\n listener();\n }\n }, window);\n const observer = new ResizeObserver(entries => {\n const entry = entries[0];\n const width = entry.contentRect.width;\n const height = entry.contentRect.height;\n if (width === 0 && height === 0) {\n return;\n }\n resize(width, height);\n });\n observer.observe(container);\n listenDevicePixelRatioChanges(chart, resize);\n return observer;\n}\nfunction releaseObserver(chart, type, observer) {\n if (observer) {\n observer.disconnect();\n }\n if (type === 'resize') {\n unlistenDevicePixelRatioChanges(chart);\n }\n}\nfunction createProxyAndListen(chart, type, listener) {\n const canvas = chart.canvas;\n const proxy = throttled((event) => {\n if (chart.ctx !== null) {\n listener(fromNativeEvent(event, chart));\n }\n }, chart, (args) => {\n const event = args[0];\n return [event, event.offsetX, event.offsetY];\n });\n addListener(canvas, type, proxy);\n return proxy;\n}\nclass DomPlatform extends BasePlatform {\n acquireContext(canvas, aspectRatio) {\n const context = canvas && canvas.getContext && canvas.getContext('2d');\n if (context && context.canvas === canvas) {\n initCanvas(canvas, aspectRatio);\n return context;\n }\n return null;\n }\n releaseContext(context) {\n const canvas = context.canvas;\n if (!canvas[EXPANDO_KEY]) {\n return false;\n }\n const initial = canvas[EXPANDO_KEY].initial;\n ['height', 'width'].forEach((prop) => {\n const value = initial[prop];\n if (isNullOrUndef(value)) {\n canvas.removeAttribute(prop);\n } else {\n canvas.setAttribute(prop, value);\n }\n });\n const style = initial.style || {};\n Object.keys(style).forEach((key) => {\n canvas.style[key] = style[key];\n });\n canvas.width = canvas.width;\n delete canvas[EXPANDO_KEY];\n return true;\n }\n addEventListener(chart, type, listener) {\n this.removeEventListener(chart, type);\n const proxies = chart.$proxies || (chart.$proxies = {});\n const handlers = {\n attach: createAttachObserver,\n detach: createDetachObserver,\n resize: createResizeObserver\n };\n const handler = handlers[type] || createProxyAndListen;\n proxies[type] = handler(chart, type, listener);\n }\n removeEventListener(chart, type) {\n const proxies = chart.$proxies || (chart.$proxies = {});\n const proxy = proxies[type];\n if (!proxy) {\n return;\n }\n const handlers = {\n attach: releaseObserver,\n detach: releaseObserver,\n resize: releaseObserver\n };\n const handler = handlers[type] || removeListener;\n handler(chart, type, proxy);\n proxies[type] = undefined;\n }\n getDevicePixelRatio() {\n return window.devicePixelRatio;\n }\n getMaximumSize(canvas, width, height, aspectRatio) {\n return getMaximumSize(canvas, width, height, aspectRatio);\n }\n isAttached(canvas) {\n const container = _getParentNode(canvas);\n return !!(container && container.isConnected);\n }\n}\n\nfunction _detectPlatform(canvas) {\n if (!_isDomSupported() || (typeof OffscreenCanvas !== 'undefined' && canvas instanceof OffscreenCanvas)) {\n return BasicPlatform;\n }\n return DomPlatform;\n}\n\nclass PluginService {\n constructor() {\n this._init = [];\n }\n notify(chart, hook, args, filter) {\n if (hook === 'beforeInit') {\n this._init = this._createDescriptors(chart, true);\n this._notify(this._init, chart, 'install');\n }\n const descriptors = filter ? this._descriptors(chart).filter(filter) : this._descriptors(chart);\n const result = this._notify(descriptors, chart, hook, args);\n if (hook === 'afterDestroy') {\n this._notify(descriptors, chart, 'stop');\n this._notify(this._init, chart, 'uninstall');\n }\n return result;\n }\n _notify(descriptors, chart, hook, args) {\n args = args || {};\n for (const descriptor of descriptors) {\n const plugin = descriptor.plugin;\n const method = plugin[hook];\n const params = [chart, args, descriptor.options];\n if (callback(method, params, plugin) === false && args.cancelable) {\n return false;\n }\n }\n return true;\n }\n invalidate() {\n if (!isNullOrUndef(this._cache)) {\n this._oldCache = this._cache;\n this._cache = undefined;\n }\n }\n _descriptors(chart) {\n if (this._cache) {\n return this._cache;\n }\n const descriptors = this._cache = this._createDescriptors(chart);\n this._notifyStateChanges(chart);\n return descriptors;\n }\n _createDescriptors(chart, all) {\n const config = chart && chart.config;\n const options = valueOrDefault(config.options && config.options.plugins, {});\n const plugins = allPlugins(config);\n return options === false && !all ? [] : createDescriptors(chart, plugins, options, all);\n }\n _notifyStateChanges(chart) {\n const previousDescriptors = this._oldCache || [];\n const descriptors = this._cache;\n const diff = (a, b) => a.filter(x => !b.some(y => x.plugin.id === y.plugin.id));\n this._notify(diff(previousDescriptors, descriptors), chart, 'stop');\n this._notify(diff(descriptors, previousDescriptors), chart, 'start');\n }\n}\nfunction allPlugins(config) {\n const localIds = {};\n const plugins = [];\n const keys = Object.keys(registry.plugins.items);\n for (let i = 0; i < keys.length; i++) {\n plugins.push(registry.getPlugin(keys[i]));\n }\n const local = config.plugins || [];\n for (let i = 0; i < local.length; i++) {\n const plugin = local[i];\n if (plugins.indexOf(plugin) === -1) {\n plugins.push(plugin);\n localIds[plugin.id] = true;\n }\n }\n return {plugins, localIds};\n}\nfunction getOpts(options, all) {\n if (!all && options === false) {\n return null;\n }\n if (options === true) {\n return {};\n }\n return options;\n}\nfunction createDescriptors(chart, {plugins, localIds}, options, all) {\n const result = [];\n const context = chart.getContext();\n for (const plugin of plugins) {\n const id = plugin.id;\n const opts = getOpts(options[id], all);\n if (opts === null) {\n continue;\n }\n result.push({\n plugin,\n options: pluginOpts(chart.config, {plugin, local: localIds[id]}, opts, context)\n });\n }\n return result;\n}\nfunction pluginOpts(config, {plugin, local}, opts, context) {\n const keys = config.pluginScopeKeys(plugin);\n const scopes = config.getOptionScopes(opts, keys);\n if (local && plugin.defaults) {\n scopes.push(plugin.defaults);\n }\n return config.createResolver(scopes, context, [''], {\n scriptable: false,\n indexable: false,\n allKeys: true\n });\n}\n\nfunction getIndexAxis(type, options) {\n const datasetDefaults = defaults.datasets[type] || {};\n const datasetOptions = (options.datasets || {})[type] || {};\n return datasetOptions.indexAxis || options.indexAxis || datasetDefaults.indexAxis || 'x';\n}\nfunction getAxisFromDefaultScaleID(id, indexAxis) {\n let axis = id;\n if (id === '_index_') {\n axis = indexAxis;\n } else if (id === '_value_') {\n axis = indexAxis === 'x' ? 'y' : 'x';\n }\n return axis;\n}\nfunction getDefaultScaleIDFromAxis(axis, indexAxis) {\n return axis === indexAxis ? '_index_' : '_value_';\n}\nfunction axisFromPosition(position) {\n if (position === 'top' || position === 'bottom') {\n return 'x';\n }\n if (position === 'left' || position === 'right') {\n return 'y';\n }\n}\nfunction determineAxis(id, scaleOptions) {\n if (id === 'x' || id === 'y') {\n return id;\n }\n return scaleOptions.axis || axisFromPosition(scaleOptions.position) || id.charAt(0).toLowerCase();\n}\nfunction mergeScaleConfig(config, options) {\n const chartDefaults = overrides[config.type] || {scales: {}};\n const configScales = options.scales || {};\n const chartIndexAxis = getIndexAxis(config.type, options);\n const firstIDs = Object.create(null);\n const scales = Object.create(null);\n Object.keys(configScales).forEach(id => {\n const scaleConf = configScales[id];\n if (!isObject(scaleConf)) {\n return console.error(`Invalid scale configuration for scale: ${id}`);\n }\n if (scaleConf._proxy) {\n return console.warn(`Ignoring resolver passed as options for scale: ${id}`);\n }\n const axis = determineAxis(id, scaleConf);\n const defaultId = getDefaultScaleIDFromAxis(axis, chartIndexAxis);\n const defaultScaleOptions = chartDefaults.scales || {};\n firstIDs[axis] = firstIDs[axis] || id;\n scales[id] = mergeIf(Object.create(null), [{axis}, scaleConf, defaultScaleOptions[axis], defaultScaleOptions[defaultId]]);\n });\n config.data.datasets.forEach(dataset => {\n const type = dataset.type || config.type;\n const indexAxis = dataset.indexAxis || getIndexAxis(type, options);\n const datasetDefaults = overrides[type] || {};\n const defaultScaleOptions = datasetDefaults.scales || {};\n Object.keys(defaultScaleOptions).forEach(defaultID => {\n const axis = getAxisFromDefaultScaleID(defaultID, indexAxis);\n const id = dataset[axis + 'AxisID'] || firstIDs[axis] || axis;\n scales[id] = scales[id] || Object.create(null);\n mergeIf(scales[id], [{axis}, configScales[id], defaultScaleOptions[defaultID]]);\n });\n });\n Object.keys(scales).forEach(key => {\n const scale = scales[key];\n mergeIf(scale, [defaults.scales[scale.type], defaults.scale]);\n });\n return scales;\n}\nfunction initOptions(config) {\n const options = config.options || (config.options = {});\n options.plugins = valueOrDefault(options.plugins, {});\n options.scales = mergeScaleConfig(config, options);\n}\nfunction initData(data) {\n data = data || {};\n data.datasets = data.datasets || [];\n data.labels = data.labels || [];\n return data;\n}\nfunction initConfig(config) {\n config = config || {};\n config.data = initData(config.data);\n initOptions(config);\n return config;\n}\nconst keyCache = new Map();\nconst keysCached = new Set();\nfunction cachedKeys(cacheKey, generate) {\n let keys = keyCache.get(cacheKey);\n if (!keys) {\n keys = generate();\n keyCache.set(cacheKey, keys);\n keysCached.add(keys);\n }\n return keys;\n}\nconst addIfFound = (set, obj, key) => {\n const opts = resolveObjectKey(obj, key);\n if (opts !== undefined) {\n set.add(opts);\n }\n};\nclass Config {\n constructor(config) {\n this._config = initConfig(config);\n this._scopeCache = new Map();\n this._resolverCache = new Map();\n }\n get platform() {\n return this._config.platform;\n }\n get type() {\n return this._config.type;\n }\n set type(type) {\n this._config.type = type;\n }\n get data() {\n return this._config.data;\n }\n set data(data) {\n this._config.data = initData(data);\n }\n get options() {\n return this._config.options;\n }\n set options(options) {\n this._config.options = options;\n }\n get plugins() {\n return this._config.plugins;\n }\n update() {\n const config = this._config;\n this.clearCache();\n initOptions(config);\n }\n clearCache() {\n this._scopeCache.clear();\n this._resolverCache.clear();\n }\n datasetScopeKeys(datasetType) {\n return cachedKeys(datasetType,\n () => [[\n `datasets.${datasetType}`,\n ''\n ]]);\n }\n datasetAnimationScopeKeys(datasetType, transition) {\n return cachedKeys(`${datasetType}.transition.${transition}`,\n () => [\n [\n `datasets.${datasetType}.transitions.${transition}`,\n `transitions.${transition}`,\n ],\n [\n `datasets.${datasetType}`,\n ''\n ]\n ]);\n }\n datasetElementScopeKeys(datasetType, elementType) {\n return cachedKeys(`${datasetType}-${elementType}`,\n () => [[\n `datasets.${datasetType}.elements.${elementType}`,\n `datasets.${datasetType}`,\n `elements.${elementType}`,\n ''\n ]]);\n }\n pluginScopeKeys(plugin) {\n const id = plugin.id;\n const type = this.type;\n return cachedKeys(`${type}-plugin-${id}`,\n () => [[\n `plugins.${id}`,\n ...plugin.additionalOptionScopes || [],\n ]]);\n }\n _cachedScopes(mainScope, resetCache) {\n const _scopeCache = this._scopeCache;\n let cache = _scopeCache.get(mainScope);\n if (!cache || resetCache) {\n cache = new Map();\n _scopeCache.set(mainScope, cache);\n }\n return cache;\n }\n getOptionScopes(mainScope, keyLists, resetCache) {\n const {options, type} = this;\n const cache = this._cachedScopes(mainScope, resetCache);\n const cached = cache.get(keyLists);\n if (cached) {\n return cached;\n }\n const scopes = new Set();\n keyLists.forEach(keys => {\n if (mainScope) {\n scopes.add(mainScope);\n keys.forEach(key => addIfFound(scopes, mainScope, key));\n }\n keys.forEach(key => addIfFound(scopes, options, key));\n keys.forEach(key => addIfFound(scopes, overrides[type] || {}, key));\n keys.forEach(key => addIfFound(scopes, defaults, key));\n keys.forEach(key => addIfFound(scopes, descriptors, key));\n });\n const array = Array.from(scopes);\n if (array.length === 0) {\n array.push(Object.create(null));\n }\n if (keysCached.has(keyLists)) {\n cache.set(keyLists, array);\n }\n return array;\n }\n chartOptionScopes() {\n const {options, type} = this;\n return [\n options,\n overrides[type] || {},\n defaults.datasets[type] || {},\n {type},\n defaults,\n descriptors\n ];\n }\n resolveNamedOptions(scopes, names, context, prefixes = ['']) {\n const result = {$shared: true};\n const {resolver, subPrefixes} = getResolver(this._resolverCache, scopes, prefixes);\n let options = resolver;\n if (needContext(resolver, names)) {\n result.$shared = false;\n context = isFunction(context) ? context() : context;\n const subResolver = this.createResolver(scopes, context, subPrefixes);\n options = _attachContext(resolver, context, subResolver);\n }\n for (const prop of names) {\n result[prop] = options[prop];\n }\n return result;\n }\n createResolver(scopes, context, prefixes = [''], descriptorDefaults) {\n const {resolver} = getResolver(this._resolverCache, scopes, prefixes);\n return isObject(context)\n ? _attachContext(resolver, context, undefined, descriptorDefaults)\n : resolver;\n }\n}\nfunction getResolver(resolverCache, scopes, prefixes) {\n let cache = resolverCache.get(scopes);\n if (!cache) {\n cache = new Map();\n resolverCache.set(scopes, cache);\n }\n const cacheKey = prefixes.join();\n let cached = cache.get(cacheKey);\n if (!cached) {\n const resolver = _createResolver(scopes, prefixes);\n cached = {\n resolver,\n subPrefixes: prefixes.filter(p => !p.toLowerCase().includes('hover'))\n };\n cache.set(cacheKey, cached);\n }\n return cached;\n}\nconst hasFunction = value => isObject(value)\n && Object.getOwnPropertyNames(value).reduce((acc, key) => acc || isFunction(value[key]), false);\nfunction needContext(proxy, names) {\n const {isScriptable, isIndexable} = _descriptors(proxy);\n for (const prop of names) {\n const scriptable = isScriptable(prop);\n const indexable = isIndexable(prop);\n const value = (indexable || scriptable) && proxy[prop];\n if ((scriptable && (isFunction(value) || hasFunction(value)))\n || (indexable && isArray(value))) {\n return true;\n }\n }\n return false;\n}\n\nvar version = \"3.9.1\";\n\nconst KNOWN_POSITIONS = ['top', 'bottom', 'left', 'right', 'chartArea'];\nfunction positionIsHorizontal(position, axis) {\n return position === 'top' || position === 'bottom' || (KNOWN_POSITIONS.indexOf(position) === -1 && axis === 'x');\n}\nfunction compare2Level(l1, l2) {\n return function(a, b) {\n return a[l1] === b[l1]\n ? a[l2] - b[l2]\n : a[l1] - b[l1];\n };\n}\nfunction onAnimationsComplete(context) {\n const chart = context.chart;\n const animationOptions = chart.options.animation;\n chart.notifyPlugins('afterRender');\n callback(animationOptions && animationOptions.onComplete, [context], chart);\n}\nfunction onAnimationProgress(context) {\n const chart = context.chart;\n const animationOptions = chart.options.animation;\n callback(animationOptions && animationOptions.onProgress, [context], chart);\n}\nfunction getCanvas(item) {\n if (_isDomSupported() && typeof item === 'string') {\n item = document.getElementById(item);\n } else if (item && item.length) {\n item = item[0];\n }\n if (item && item.canvas) {\n item = item.canvas;\n }\n return item;\n}\nconst instances = {};\nconst getChart = (key) => {\n const canvas = getCanvas(key);\n return Object.values(instances).filter((c) => c.canvas === canvas).pop();\n};\nfunction moveNumericKeys(obj, start, move) {\n const keys = Object.keys(obj);\n for (const key of keys) {\n const intKey = +key;\n if (intKey >= start) {\n const value = obj[key];\n delete obj[key];\n if (move > 0 || intKey > start) {\n obj[intKey + move] = value;\n }\n }\n }\n}\nfunction determineLastEvent(e, lastEvent, inChartArea, isClick) {\n if (!inChartArea || e.type === 'mouseout') {\n return null;\n }\n if (isClick) {\n return lastEvent;\n }\n return e;\n}\nclass Chart {\n constructor(item, userConfig) {\n const config = this.config = new Config(userConfig);\n const initialCanvas = getCanvas(item);\n const existingChart = getChart(initialCanvas);\n if (existingChart) {\n throw new Error(\n 'Canvas is already in use. Chart with ID \\'' + existingChart.id + '\\'' +\n\t\t\t\t' must be destroyed before the canvas with ID \\'' + existingChart.canvas.id + '\\' can be reused.'\n );\n }\n const options = config.createResolver(config.chartOptionScopes(), this.getContext());\n this.platform = new (config.platform || _detectPlatform(initialCanvas))();\n this.platform.updateConfig(config);\n const context = this.platform.acquireContext(initialCanvas, options.aspectRatio);\n const canvas = context && context.canvas;\n const height = canvas && canvas.height;\n const width = canvas && canvas.width;\n this.id = uid();\n this.ctx = context;\n this.canvas = canvas;\n this.width = width;\n this.height = height;\n this._options = options;\n this._aspectRatio = this.aspectRatio;\n this._layers = [];\n this._metasets = [];\n this._stacks = undefined;\n this.boxes = [];\n this.currentDevicePixelRatio = undefined;\n this.chartArea = undefined;\n this._active = [];\n this._lastEvent = undefined;\n this._listeners = {};\n this._responsiveListeners = undefined;\n this._sortedMetasets = [];\n this.scales = {};\n this._plugins = new PluginService();\n this.$proxies = {};\n this._hiddenIndices = {};\n this.attached = false;\n this._animationsDisabled = undefined;\n this.$context = undefined;\n this._doResize = debounce(mode => this.update(mode), options.resizeDelay || 0);\n this._dataChanges = [];\n instances[this.id] = this;\n if (!context || !canvas) {\n console.error(\"Failed to create chart: can't acquire context from the given item\");\n return;\n }\n animator.listen(this, 'complete', onAnimationsComplete);\n animator.listen(this, 'progress', onAnimationProgress);\n this._initialize();\n if (this.attached) {\n this.update();\n }\n }\n get aspectRatio() {\n const {options: {aspectRatio, maintainAspectRatio}, width, height, _aspectRatio} = this;\n if (!isNullOrUndef(aspectRatio)) {\n return aspectRatio;\n }\n if (maintainAspectRatio && _aspectRatio) {\n return _aspectRatio;\n }\n return height ? width / height : null;\n }\n get data() {\n return this.config.data;\n }\n set data(data) {\n this.config.data = data;\n }\n get options() {\n return this._options;\n }\n set options(options) {\n this.config.options = options;\n }\n _initialize() {\n this.notifyPlugins('beforeInit');\n if (this.options.responsive) {\n this.resize();\n } else {\n retinaScale(this, this.options.devicePixelRatio);\n }\n this.bindEvents();\n this.notifyPlugins('afterInit');\n return this;\n }\n clear() {\n clearCanvas(this.canvas, this.ctx);\n return this;\n }\n stop() {\n animator.stop(this);\n return this;\n }\n resize(width, height) {\n if (!animator.running(this)) {\n this._resize(width, height);\n } else {\n this._resizeBeforeDraw = {width, height};\n }\n }\n _resize(width, height) {\n const options = this.options;\n const canvas = this.canvas;\n const aspectRatio = options.maintainAspectRatio && this.aspectRatio;\n const newSize = this.platform.getMaximumSize(canvas, width, height, aspectRatio);\n const newRatio = options.devicePixelRatio || this.platform.getDevicePixelRatio();\n const mode = this.width ? 'resize' : 'attach';\n this.width = newSize.width;\n this.height = newSize.height;\n this._aspectRatio = this.aspectRatio;\n if (!retinaScale(this, newRatio, true)) {\n return;\n }\n this.notifyPlugins('resize', {size: newSize});\n callback(options.onResize, [this, newSize], this);\n if (this.attached) {\n if (this._doResize(mode)) {\n this.render();\n }\n }\n }\n ensureScalesHaveIDs() {\n const options = this.options;\n const scalesOptions = options.scales || {};\n each(scalesOptions, (axisOptions, axisID) => {\n axisOptions.id = axisID;\n });\n }\n buildOrUpdateScales() {\n const options = this.options;\n const scaleOpts = options.scales;\n const scales = this.scales;\n const updated = Object.keys(scales).reduce((obj, id) => {\n obj[id] = false;\n return obj;\n }, {});\n let items = [];\n if (scaleOpts) {\n items = items.concat(\n Object.keys(scaleOpts).map((id) => {\n const scaleOptions = scaleOpts[id];\n const axis = determineAxis(id, scaleOptions);\n const isRadial = axis === 'r';\n const isHorizontal = axis === 'x';\n return {\n options: scaleOptions,\n dposition: isRadial ? 'chartArea' : isHorizontal ? 'bottom' : 'left',\n dtype: isRadial ? 'radialLinear' : isHorizontal ? 'category' : 'linear'\n };\n })\n );\n }\n each(items, (item) => {\n const scaleOptions = item.options;\n const id = scaleOptions.id;\n const axis = determineAxis(id, scaleOptions);\n const scaleType = valueOrDefault(scaleOptions.type, item.dtype);\n if (scaleOptions.position === undefined || positionIsHorizontal(scaleOptions.position, axis) !== positionIsHorizontal(item.dposition)) {\n scaleOptions.position = item.dposition;\n }\n updated[id] = true;\n let scale = null;\n if (id in scales && scales[id].type === scaleType) {\n scale = scales[id];\n } else {\n const scaleClass = registry.getScale(scaleType);\n scale = new scaleClass({\n id,\n type: scaleType,\n ctx: this.ctx,\n chart: this\n });\n scales[scale.id] = scale;\n }\n scale.init(scaleOptions, options);\n });\n each(updated, (hasUpdated, id) => {\n if (!hasUpdated) {\n delete scales[id];\n }\n });\n each(scales, (scale) => {\n layouts.configure(this, scale, scale.options);\n layouts.addBox(this, scale);\n });\n }\n _updateMetasets() {\n const metasets = this._metasets;\n const numData = this.data.datasets.length;\n const numMeta = metasets.length;\n metasets.sort((a, b) => a.index - b.index);\n if (numMeta > numData) {\n for (let i = numData; i < numMeta; ++i) {\n this._destroyDatasetMeta(i);\n }\n metasets.splice(numData, numMeta - numData);\n }\n this._sortedMetasets = metasets.slice(0).sort(compare2Level('order', 'index'));\n }\n _removeUnreferencedMetasets() {\n const {_metasets: metasets, data: {datasets}} = this;\n if (metasets.length > datasets.length) {\n delete this._stacks;\n }\n metasets.forEach((meta, index) => {\n if (datasets.filter(x => x === meta._dataset).length === 0) {\n this._destroyDatasetMeta(index);\n }\n });\n }\n buildOrUpdateControllers() {\n const newControllers = [];\n const datasets = this.data.datasets;\n let i, ilen;\n this._removeUnreferencedMetasets();\n for (i = 0, ilen = datasets.length; i < ilen; i++) {\n const dataset = datasets[i];\n let meta = this.getDatasetMeta(i);\n const type = dataset.type || this.config.type;\n if (meta.type && meta.type !== type) {\n this._destroyDatasetMeta(i);\n meta = this.getDatasetMeta(i);\n }\n meta.type = type;\n meta.indexAxis = dataset.indexAxis || getIndexAxis(type, this.options);\n meta.order = dataset.order || 0;\n meta.index = i;\n meta.label = '' + dataset.label;\n meta.visible = this.isDatasetVisible(i);\n if (meta.controller) {\n meta.controller.updateIndex(i);\n meta.controller.linkScales();\n } else {\n const ControllerClass = registry.getController(type);\n const {datasetElementType, dataElementType} = defaults.datasets[type];\n Object.assign(ControllerClass.prototype, {\n dataElementType: registry.getElement(dataElementType),\n datasetElementType: datasetElementType && registry.getElement(datasetElementType)\n });\n meta.controller = new ControllerClass(this, i);\n newControllers.push(meta.controller);\n }\n }\n this._updateMetasets();\n return newControllers;\n }\n _resetElements() {\n each(this.data.datasets, (dataset, datasetIndex) => {\n this.getDatasetMeta(datasetIndex).controller.reset();\n }, this);\n }\n reset() {\n this._resetElements();\n this.notifyPlugins('reset');\n }\n update(mode) {\n const config = this.config;\n config.update();\n const options = this._options = config.createResolver(config.chartOptionScopes(), this.getContext());\n const animsDisabled = this._animationsDisabled = !options.animation;\n this._updateScales();\n this._checkEventBindings();\n this._updateHiddenIndices();\n this._plugins.invalidate();\n if (this.notifyPlugins('beforeUpdate', {mode, cancelable: true}) === false) {\n return;\n }\n const newControllers = this.buildOrUpdateControllers();\n this.notifyPlugins('beforeElementsUpdate');\n let minPadding = 0;\n for (let i = 0, ilen = this.data.datasets.length; i < ilen; i++) {\n const {controller} = this.getDatasetMeta(i);\n const reset = !animsDisabled && newControllers.indexOf(controller) === -1;\n controller.buildOrUpdateElements(reset);\n minPadding = Math.max(+controller.getMaxOverflow(), minPadding);\n }\n minPadding = this._minPadding = options.layout.autoPadding ? minPadding : 0;\n this._updateLayout(minPadding);\n if (!animsDisabled) {\n each(newControllers, (controller) => {\n controller.reset();\n });\n }\n this._updateDatasets(mode);\n this.notifyPlugins('afterUpdate', {mode});\n this._layers.sort(compare2Level('z', '_idx'));\n const {_active, _lastEvent} = this;\n if (_lastEvent) {\n this._eventHandler(_lastEvent, true);\n } else if (_active.length) {\n this._updateHoverStyles(_active, _active, true);\n }\n this.render();\n }\n _updateScales() {\n each(this.scales, (scale) => {\n layouts.removeBox(this, scale);\n });\n this.ensureScalesHaveIDs();\n this.buildOrUpdateScales();\n }\n _checkEventBindings() {\n const options = this.options;\n const existingEvents = new Set(Object.keys(this._listeners));\n const newEvents = new Set(options.events);\n if (!setsEqual(existingEvents, newEvents) || !!this._responsiveListeners !== options.responsive) {\n this.unbindEvents();\n this.bindEvents();\n }\n }\n _updateHiddenIndices() {\n const {_hiddenIndices} = this;\n const changes = this._getUniformDataChanges() || [];\n for (const {method, start, count} of changes) {\n const move = method === '_removeElements' ? -count : count;\n moveNumericKeys(_hiddenIndices, start, move);\n }\n }\n _getUniformDataChanges() {\n const _dataChanges = this._dataChanges;\n if (!_dataChanges || !_dataChanges.length) {\n return;\n }\n this._dataChanges = [];\n const datasetCount = this.data.datasets.length;\n const makeSet = (idx) => new Set(\n _dataChanges\n .filter(c => c[0] === idx)\n .map((c, i) => i + ',' + c.splice(1).join(','))\n );\n const changeSet = makeSet(0);\n for (let i = 1; i < datasetCount; i++) {\n if (!setsEqual(changeSet, makeSet(i))) {\n return;\n }\n }\n return Array.from(changeSet)\n .map(c => c.split(','))\n .map(a => ({method: a[1], start: +a[2], count: +a[3]}));\n }\n _updateLayout(minPadding) {\n if (this.notifyPlugins('beforeLayout', {cancelable: true}) === false) {\n return;\n }\n layouts.update(this, this.width, this.height, minPadding);\n const area = this.chartArea;\n const noArea = area.width <= 0 || area.height <= 0;\n this._layers = [];\n each(this.boxes, (box) => {\n if (noArea && box.position === 'chartArea') {\n return;\n }\n if (box.configure) {\n box.configure();\n }\n this._layers.push(...box._layers());\n }, this);\n this._layers.forEach((item, index) => {\n item._idx = index;\n });\n this.notifyPlugins('afterLayout');\n }\n _updateDatasets(mode) {\n if (this.notifyPlugins('beforeDatasetsUpdate', {mode, cancelable: true}) === false) {\n return;\n }\n for (let i = 0, ilen = this.data.datasets.length; i < ilen; ++i) {\n this.getDatasetMeta(i).controller.configure();\n }\n for (let i = 0, ilen = this.data.datasets.length; i < ilen; ++i) {\n this._updateDataset(i, isFunction(mode) ? mode({datasetIndex: i}) : mode);\n }\n this.notifyPlugins('afterDatasetsUpdate', {mode});\n }\n _updateDataset(index, mode) {\n const meta = this.getDatasetMeta(index);\n const args = {meta, index, mode, cancelable: true};\n if (this.notifyPlugins('beforeDatasetUpdate', args) === false) {\n return;\n }\n meta.controller._update(mode);\n args.cancelable = false;\n this.notifyPlugins('afterDatasetUpdate', args);\n }\n render() {\n if (this.notifyPlugins('beforeRender', {cancelable: true}) === false) {\n return;\n }\n if (animator.has(this)) {\n if (this.attached && !animator.running(this)) {\n animator.start(this);\n }\n } else {\n this.draw();\n onAnimationsComplete({chart: this});\n }\n }\n draw() {\n let i;\n if (this._resizeBeforeDraw) {\n const {width, height} = this._resizeBeforeDraw;\n this._resize(width, height);\n this._resizeBeforeDraw = null;\n }\n this.clear();\n if (this.width <= 0 || this.height <= 0) {\n return;\n }\n if (this.notifyPlugins('beforeDraw', {cancelable: true}) === false) {\n return;\n }\n const layers = this._layers;\n for (i = 0; i < layers.length && layers[i].z <= 0; ++i) {\n layers[i].draw(this.chartArea);\n }\n this._drawDatasets();\n for (; i < layers.length; ++i) {\n layers[i].draw(this.chartArea);\n }\n this.notifyPlugins('afterDraw');\n }\n _getSortedDatasetMetas(filterVisible) {\n const metasets = this._sortedMetasets;\n const result = [];\n let i, ilen;\n for (i = 0, ilen = metasets.length; i < ilen; ++i) {\n const meta = metasets[i];\n if (!filterVisible || meta.visible) {\n result.push(meta);\n }\n }\n return result;\n }\n getSortedVisibleDatasetMetas() {\n return this._getSortedDatasetMetas(true);\n }\n _drawDatasets() {\n if (this.notifyPlugins('beforeDatasetsDraw', {cancelable: true}) === false) {\n return;\n }\n const metasets = this.getSortedVisibleDatasetMetas();\n for (let i = metasets.length - 1; i >= 0; --i) {\n this._drawDataset(metasets[i]);\n }\n this.notifyPlugins('afterDatasetsDraw');\n }\n _drawDataset(meta) {\n const ctx = this.ctx;\n const clip = meta._clip;\n const useClip = !clip.disabled;\n const area = this.chartArea;\n const args = {\n meta,\n index: meta.index,\n cancelable: true\n };\n if (this.notifyPlugins('beforeDatasetDraw', args) === false) {\n return;\n }\n if (useClip) {\n clipArea(ctx, {\n left: clip.left === false ? 0 : area.left - clip.left,\n right: clip.right === false ? this.width : area.right + clip.right,\n top: clip.top === false ? 0 : area.top - clip.top,\n bottom: clip.bottom === false ? this.height : area.bottom + clip.bottom\n });\n }\n meta.controller.draw();\n if (useClip) {\n unclipArea(ctx);\n }\n args.cancelable = false;\n this.notifyPlugins('afterDatasetDraw', args);\n }\n isPointInArea(point) {\n return _isPointInArea(point, this.chartArea, this._minPadding);\n }\n getElementsAtEventForMode(e, mode, options, useFinalPosition) {\n const method = Interaction.modes[mode];\n if (typeof method === 'function') {\n return method(this, e, options, useFinalPosition);\n }\n return [];\n }\n getDatasetMeta(datasetIndex) {\n const dataset = this.data.datasets[datasetIndex];\n const metasets = this._metasets;\n let meta = metasets.filter(x => x && x._dataset === dataset).pop();\n if (!meta) {\n meta = {\n type: null,\n data: [],\n dataset: null,\n controller: null,\n hidden: null,\n xAxisID: null,\n yAxisID: null,\n order: dataset && dataset.order || 0,\n index: datasetIndex,\n _dataset: dataset,\n _parsed: [],\n _sorted: false\n };\n metasets.push(meta);\n }\n return meta;\n }\n getContext() {\n return this.$context || (this.$context = createContext(null, {chart: this, type: 'chart'}));\n }\n getVisibleDatasetCount() {\n return this.getSortedVisibleDatasetMetas().length;\n }\n isDatasetVisible(datasetIndex) {\n const dataset = this.data.datasets[datasetIndex];\n if (!dataset) {\n return false;\n }\n const meta = this.getDatasetMeta(datasetIndex);\n return typeof meta.hidden === 'boolean' ? !meta.hidden : !dataset.hidden;\n }\n setDatasetVisibility(datasetIndex, visible) {\n const meta = this.getDatasetMeta(datasetIndex);\n meta.hidden = !visible;\n }\n toggleDataVisibility(index) {\n this._hiddenIndices[index] = !this._hiddenIndices[index];\n }\n getDataVisibility(index) {\n return !this._hiddenIndices[index];\n }\n _updateVisibility(datasetIndex, dataIndex, visible) {\n const mode = visible ? 'show' : 'hide';\n const meta = this.getDatasetMeta(datasetIndex);\n const anims = meta.controller._resolveAnimations(undefined, mode);\n if (defined(dataIndex)) {\n meta.data[dataIndex].hidden = !visible;\n this.update();\n } else {\n this.setDatasetVisibility(datasetIndex, visible);\n anims.update(meta, {visible});\n this.update((ctx) => ctx.datasetIndex === datasetIndex ? mode : undefined);\n }\n }\n hide(datasetIndex, dataIndex) {\n this._updateVisibility(datasetIndex, dataIndex, false);\n }\n show(datasetIndex, dataIndex) {\n this._updateVisibility(datasetIndex, dataIndex, true);\n }\n _destroyDatasetMeta(datasetIndex) {\n const meta = this._metasets[datasetIndex];\n if (meta && meta.controller) {\n meta.controller._destroy();\n }\n delete this._metasets[datasetIndex];\n }\n _stop() {\n let i, ilen;\n this.stop();\n animator.remove(this);\n for (i = 0, ilen = this.data.datasets.length; i < ilen; ++i) {\n this._destroyDatasetMeta(i);\n }\n }\n destroy() {\n this.notifyPlugins('beforeDestroy');\n const {canvas, ctx} = this;\n this._stop();\n this.config.clearCache();\n if (canvas) {\n this.unbindEvents();\n clearCanvas(canvas, ctx);\n this.platform.releaseContext(ctx);\n this.canvas = null;\n this.ctx = null;\n }\n this.notifyPlugins('destroy');\n delete instances[this.id];\n this.notifyPlugins('afterDestroy');\n }\n toBase64Image(...args) {\n return this.canvas.toDataURL(...args);\n }\n bindEvents() {\n this.bindUserEvents();\n if (this.options.responsive) {\n this.bindResponsiveEvents();\n } else {\n this.attached = true;\n }\n }\n bindUserEvents() {\n const listeners = this._listeners;\n const platform = this.platform;\n const _add = (type, listener) => {\n platform.addEventListener(this, type, listener);\n listeners[type] = listener;\n };\n const listener = (e, x, y) => {\n e.offsetX = x;\n e.offsetY = y;\n this._eventHandler(e);\n };\n each(this.options.events, (type) => _add(type, listener));\n }\n bindResponsiveEvents() {\n if (!this._responsiveListeners) {\n this._responsiveListeners = {};\n }\n const listeners = this._responsiveListeners;\n const platform = this.platform;\n const _add = (type, listener) => {\n platform.addEventListener(this, type, listener);\n listeners[type] = listener;\n };\n const _remove = (type, listener) => {\n if (listeners[type]) {\n platform.removeEventListener(this, type, listener);\n delete listeners[type];\n }\n };\n const listener = (width, height) => {\n if (this.canvas) {\n this.resize(width, height);\n }\n };\n let detached;\n const attached = () => {\n _remove('attach', attached);\n this.attached = true;\n this.resize();\n _add('resize', listener);\n _add('detach', detached);\n };\n detached = () => {\n this.attached = false;\n _remove('resize', listener);\n this._stop();\n this._resize(0, 0);\n _add('attach', attached);\n };\n if (platform.isAttached(this.canvas)) {\n attached();\n } else {\n detached();\n }\n }\n unbindEvents() {\n each(this._listeners, (listener, type) => {\n this.platform.removeEventListener(this, type, listener);\n });\n this._listeners = {};\n each(this._responsiveListeners, (listener, type) => {\n this.platform.removeEventListener(this, type, listener);\n });\n this._responsiveListeners = undefined;\n }\n updateHoverStyle(items, mode, enabled) {\n const prefix = enabled ? 'set' : 'remove';\n let meta, item, i, ilen;\n if (mode === 'dataset') {\n meta = this.getDatasetMeta(items[0].datasetIndex);\n meta.controller['_' + prefix + 'DatasetHoverStyle']();\n }\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n item = items[i];\n const controller = item && this.getDatasetMeta(item.datasetIndex).controller;\n if (controller) {\n controller[prefix + 'HoverStyle'](item.element, item.datasetIndex, item.index);\n }\n }\n }\n getActiveElements() {\n return this._active || [];\n }\n setActiveElements(activeElements) {\n const lastActive = this._active || [];\n const active = activeElements.map(({datasetIndex, index}) => {\n const meta = this.getDatasetMeta(datasetIndex);\n if (!meta) {\n throw new Error('No dataset found at index ' + datasetIndex);\n }\n return {\n datasetIndex,\n element: meta.data[index],\n index,\n };\n });\n const changed = !_elementsEqual(active, lastActive);\n if (changed) {\n this._active = active;\n this._lastEvent = null;\n this._updateHoverStyles(active, lastActive);\n }\n }\n notifyPlugins(hook, args, filter) {\n return this._plugins.notify(this, hook, args, filter);\n }\n _updateHoverStyles(active, lastActive, replay) {\n const hoverOptions = this.options.hover;\n const diff = (a, b) => a.filter(x => !b.some(y => x.datasetIndex === y.datasetIndex && x.index === y.index));\n const deactivated = diff(lastActive, active);\n const activated = replay ? active : diff(active, lastActive);\n if (deactivated.length) {\n this.updateHoverStyle(deactivated, hoverOptions.mode, false);\n }\n if (activated.length && hoverOptions.mode) {\n this.updateHoverStyle(activated, hoverOptions.mode, true);\n }\n }\n _eventHandler(e, replay) {\n const args = {\n event: e,\n replay,\n cancelable: true,\n inChartArea: this.isPointInArea(e)\n };\n const eventFilter = (plugin) => (plugin.options.events || this.options.events).includes(e.native.type);\n if (this.notifyPlugins('beforeEvent', args, eventFilter) === false) {\n return;\n }\n const changed = this._handleEvent(e, replay, args.inChartArea);\n args.cancelable = false;\n this.notifyPlugins('afterEvent', args, eventFilter);\n if (changed || args.changed) {\n this.render();\n }\n return this;\n }\n _handleEvent(e, replay, inChartArea) {\n const {_active: lastActive = [], options} = this;\n const useFinalPosition = replay;\n const active = this._getActiveElements(e, lastActive, inChartArea, useFinalPosition);\n const isClick = _isClickEvent(e);\n const lastEvent = determineLastEvent(e, this._lastEvent, inChartArea, isClick);\n if (inChartArea) {\n this._lastEvent = null;\n callback(options.onHover, [e, active, this], this);\n if (isClick) {\n callback(options.onClick, [e, active, this], this);\n }\n }\n const changed = !_elementsEqual(active, lastActive);\n if (changed || replay) {\n this._active = active;\n this._updateHoverStyles(active, lastActive, replay);\n }\n this._lastEvent = lastEvent;\n return changed;\n }\n _getActiveElements(e, lastActive, inChartArea, useFinalPosition) {\n if (e.type === 'mouseout') {\n return [];\n }\n if (!inChartArea) {\n return lastActive;\n }\n const hoverOptions = this.options.hover;\n return this.getElementsAtEventForMode(e, hoverOptions.mode, hoverOptions, useFinalPosition);\n }\n}\nconst invalidatePlugins = () => each(Chart.instances, (chart) => chart._plugins.invalidate());\nconst enumerable = true;\nObject.defineProperties(Chart, {\n defaults: {\n enumerable,\n value: defaults\n },\n instances: {\n enumerable,\n value: instances\n },\n overrides: {\n enumerable,\n value: overrides\n },\n registry: {\n enumerable,\n value: registry\n },\n version: {\n enumerable,\n value: version\n },\n getChart: {\n enumerable,\n value: getChart\n },\n register: {\n enumerable,\n value: (...items) => {\n registry.add(...items);\n invalidatePlugins();\n }\n },\n unregister: {\n enumerable,\n value: (...items) => {\n registry.remove(...items);\n invalidatePlugins();\n }\n }\n});\n\nfunction clipArc(ctx, element, endAngle) {\n const {startAngle, pixelMargin, x, y, outerRadius, innerRadius} = element;\n let angleMargin = pixelMargin / outerRadius;\n ctx.beginPath();\n ctx.arc(x, y, outerRadius, startAngle - angleMargin, endAngle + angleMargin);\n if (innerRadius > pixelMargin) {\n angleMargin = pixelMargin / innerRadius;\n ctx.arc(x, y, innerRadius, endAngle + angleMargin, startAngle - angleMargin, true);\n } else {\n ctx.arc(x, y, pixelMargin, endAngle + HALF_PI, startAngle - HALF_PI);\n }\n ctx.closePath();\n ctx.clip();\n}\nfunction toRadiusCorners(value) {\n return _readValueToProps(value, ['outerStart', 'outerEnd', 'innerStart', 'innerEnd']);\n}\nfunction parseBorderRadius$1(arc, innerRadius, outerRadius, angleDelta) {\n const o = toRadiusCorners(arc.options.borderRadius);\n const halfThickness = (outerRadius - innerRadius) / 2;\n const innerLimit = Math.min(halfThickness, angleDelta * innerRadius / 2);\n const computeOuterLimit = (val) => {\n const outerArcLimit = (outerRadius - Math.min(halfThickness, val)) * angleDelta / 2;\n return _limitValue(val, 0, Math.min(halfThickness, outerArcLimit));\n };\n return {\n outerStart: computeOuterLimit(o.outerStart),\n outerEnd: computeOuterLimit(o.outerEnd),\n innerStart: _limitValue(o.innerStart, 0, innerLimit),\n innerEnd: _limitValue(o.innerEnd, 0, innerLimit),\n };\n}\nfunction rThetaToXY(r, theta, x, y) {\n return {\n x: x + r * Math.cos(theta),\n y: y + r * Math.sin(theta),\n };\n}\nfunction pathArc(ctx, element, offset, spacing, end, circular) {\n const {x, y, startAngle: start, pixelMargin, innerRadius: innerR} = element;\n const outerRadius = Math.max(element.outerRadius + spacing + offset - pixelMargin, 0);\n const innerRadius = innerR > 0 ? innerR + spacing + offset + pixelMargin : 0;\n let spacingOffset = 0;\n const alpha = end - start;\n if (spacing) {\n const noSpacingInnerRadius = innerR > 0 ? innerR - spacing : 0;\n const noSpacingOuterRadius = outerRadius > 0 ? outerRadius - spacing : 0;\n const avNogSpacingRadius = (noSpacingInnerRadius + noSpacingOuterRadius) / 2;\n const adjustedAngle = avNogSpacingRadius !== 0 ? (alpha * avNogSpacingRadius) / (avNogSpacingRadius + spacing) : alpha;\n spacingOffset = (alpha - adjustedAngle) / 2;\n }\n const beta = Math.max(0.001, alpha * outerRadius - offset / PI) / outerRadius;\n const angleOffset = (alpha - beta) / 2;\n const startAngle = start + angleOffset + spacingOffset;\n const endAngle = end - angleOffset - spacingOffset;\n const {outerStart, outerEnd, innerStart, innerEnd} = parseBorderRadius$1(element, innerRadius, outerRadius, endAngle - startAngle);\n const outerStartAdjustedRadius = outerRadius - outerStart;\n const outerEndAdjustedRadius = outerRadius - outerEnd;\n const outerStartAdjustedAngle = startAngle + outerStart / outerStartAdjustedRadius;\n const outerEndAdjustedAngle = endAngle - outerEnd / outerEndAdjustedRadius;\n const innerStartAdjustedRadius = innerRadius + innerStart;\n const innerEndAdjustedRadius = innerRadius + innerEnd;\n const innerStartAdjustedAngle = startAngle + innerStart / innerStartAdjustedRadius;\n const innerEndAdjustedAngle = endAngle - innerEnd / innerEndAdjustedRadius;\n ctx.beginPath();\n if (circular) {\n ctx.arc(x, y, outerRadius, outerStartAdjustedAngle, outerEndAdjustedAngle);\n if (outerEnd > 0) {\n const pCenter = rThetaToXY(outerEndAdjustedRadius, outerEndAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, outerEnd, outerEndAdjustedAngle, endAngle + HALF_PI);\n }\n const p4 = rThetaToXY(innerEndAdjustedRadius, endAngle, x, y);\n ctx.lineTo(p4.x, p4.y);\n if (innerEnd > 0) {\n const pCenter = rThetaToXY(innerEndAdjustedRadius, innerEndAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, innerEnd, endAngle + HALF_PI, innerEndAdjustedAngle + Math.PI);\n }\n ctx.arc(x, y, innerRadius, endAngle - (innerEnd / innerRadius), startAngle + (innerStart / innerRadius), true);\n if (innerStart > 0) {\n const pCenter = rThetaToXY(innerStartAdjustedRadius, innerStartAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, innerStart, innerStartAdjustedAngle + Math.PI, startAngle - HALF_PI);\n }\n const p8 = rThetaToXY(outerStartAdjustedRadius, startAngle, x, y);\n ctx.lineTo(p8.x, p8.y);\n if (outerStart > 0) {\n const pCenter = rThetaToXY(outerStartAdjustedRadius, outerStartAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, outerStart, startAngle - HALF_PI, outerStartAdjustedAngle);\n }\n } else {\n ctx.moveTo(x, y);\n const outerStartX = Math.cos(outerStartAdjustedAngle) * outerRadius + x;\n const outerStartY = Math.sin(outerStartAdjustedAngle) * outerRadius + y;\n ctx.lineTo(outerStartX, outerStartY);\n const outerEndX = Math.cos(outerEndAdjustedAngle) * outerRadius + x;\n const outerEndY = Math.sin(outerEndAdjustedAngle) * outerRadius + y;\n ctx.lineTo(outerEndX, outerEndY);\n }\n ctx.closePath();\n}\nfunction drawArc(ctx, element, offset, spacing, circular) {\n const {fullCircles, startAngle, circumference} = element;\n let endAngle = element.endAngle;\n if (fullCircles) {\n pathArc(ctx, element, offset, spacing, startAngle + TAU, circular);\n for (let i = 0; i < fullCircles; ++i) {\n ctx.fill();\n }\n if (!isNaN(circumference)) {\n endAngle = startAngle + circumference % TAU;\n if (circumference % TAU === 0) {\n endAngle += TAU;\n }\n }\n }\n pathArc(ctx, element, offset, spacing, endAngle, circular);\n ctx.fill();\n return endAngle;\n}\nfunction drawFullCircleBorders(ctx, element, inner) {\n const {x, y, startAngle, pixelMargin, fullCircles} = element;\n const outerRadius = Math.max(element.outerRadius - pixelMargin, 0);\n const innerRadius = element.innerRadius + pixelMargin;\n let i;\n if (inner) {\n clipArc(ctx, element, startAngle + TAU);\n }\n ctx.beginPath();\n ctx.arc(x, y, innerRadius, startAngle + TAU, startAngle, true);\n for (i = 0; i < fullCircles; ++i) {\n ctx.stroke();\n }\n ctx.beginPath();\n ctx.arc(x, y, outerRadius, startAngle, startAngle + TAU);\n for (i = 0; i < fullCircles; ++i) {\n ctx.stroke();\n }\n}\nfunction drawBorder(ctx, element, offset, spacing, endAngle, circular) {\n const {options} = element;\n const {borderWidth, borderJoinStyle} = options;\n const inner = options.borderAlign === 'inner';\n if (!borderWidth) {\n return;\n }\n if (inner) {\n ctx.lineWidth = borderWidth * 2;\n ctx.lineJoin = borderJoinStyle || 'round';\n } else {\n ctx.lineWidth = borderWidth;\n ctx.lineJoin = borderJoinStyle || 'bevel';\n }\n if (element.fullCircles) {\n drawFullCircleBorders(ctx, element, inner);\n }\n if (inner) {\n clipArc(ctx, element, endAngle);\n }\n pathArc(ctx, element, offset, spacing, endAngle, circular);\n ctx.stroke();\n}\nclass ArcElement extends Element {\n constructor(cfg) {\n super();\n this.options = undefined;\n this.circumference = undefined;\n this.startAngle = undefined;\n this.endAngle = undefined;\n this.innerRadius = undefined;\n this.outerRadius = undefined;\n this.pixelMargin = 0;\n this.fullCircles = 0;\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n inRange(chartX, chartY, useFinalPosition) {\n const point = this.getProps(['x', 'y'], useFinalPosition);\n const {angle, distance} = getAngleFromPoint(point, {x: chartX, y: chartY});\n const {startAngle, endAngle, innerRadius, outerRadius, circumference} = this.getProps([\n 'startAngle',\n 'endAngle',\n 'innerRadius',\n 'outerRadius',\n 'circumference'\n ], useFinalPosition);\n const rAdjust = this.options.spacing / 2;\n const _circumference = valueOrDefault(circumference, endAngle - startAngle);\n const betweenAngles = _circumference >= TAU || _angleBetween(angle, startAngle, endAngle);\n const withinRadius = _isBetween(distance, innerRadius + rAdjust, outerRadius + rAdjust);\n return (betweenAngles && withinRadius);\n }\n getCenterPoint(useFinalPosition) {\n const {x, y, startAngle, endAngle, innerRadius, outerRadius} = this.getProps([\n 'x',\n 'y',\n 'startAngle',\n 'endAngle',\n 'innerRadius',\n 'outerRadius',\n 'circumference',\n ], useFinalPosition);\n const {offset, spacing} = this.options;\n const halfAngle = (startAngle + endAngle) / 2;\n const halfRadius = (innerRadius + outerRadius + spacing + offset) / 2;\n return {\n x: x + Math.cos(halfAngle) * halfRadius,\n y: y + Math.sin(halfAngle) * halfRadius\n };\n }\n tooltipPosition(useFinalPosition) {\n return this.getCenterPoint(useFinalPosition);\n }\n draw(ctx) {\n const {options, circumference} = this;\n const offset = (options.offset || 0) / 2;\n const spacing = (options.spacing || 0) / 2;\n const circular = options.circular;\n this.pixelMargin = (options.borderAlign === 'inner') ? 0.33 : 0;\n this.fullCircles = circumference > TAU ? Math.floor(circumference / TAU) : 0;\n if (circumference === 0 || this.innerRadius < 0 || this.outerRadius < 0) {\n return;\n }\n ctx.save();\n let radiusOffset = 0;\n if (offset) {\n radiusOffset = offset / 2;\n const halfAngle = (this.startAngle + this.endAngle) / 2;\n ctx.translate(Math.cos(halfAngle) * radiusOffset, Math.sin(halfAngle) * radiusOffset);\n if (this.circumference >= PI) {\n radiusOffset = offset;\n }\n }\n ctx.fillStyle = options.backgroundColor;\n ctx.strokeStyle = options.borderColor;\n const endAngle = drawArc(ctx, this, radiusOffset, spacing, circular);\n drawBorder(ctx, this, radiusOffset, spacing, endAngle, circular);\n ctx.restore();\n }\n}\nArcElement.id = 'arc';\nArcElement.defaults = {\n borderAlign: 'center',\n borderColor: '#fff',\n borderJoinStyle: undefined,\n borderRadius: 0,\n borderWidth: 2,\n offset: 0,\n spacing: 0,\n angle: undefined,\n circular: true,\n};\nArcElement.defaultRoutes = {\n backgroundColor: 'backgroundColor'\n};\n\nfunction setStyle(ctx, options, style = options) {\n ctx.lineCap = valueOrDefault(style.borderCapStyle, options.borderCapStyle);\n ctx.setLineDash(valueOrDefault(style.borderDash, options.borderDash));\n ctx.lineDashOffset = valueOrDefault(style.borderDashOffset, options.borderDashOffset);\n ctx.lineJoin = valueOrDefault(style.borderJoinStyle, options.borderJoinStyle);\n ctx.lineWidth = valueOrDefault(style.borderWidth, options.borderWidth);\n ctx.strokeStyle = valueOrDefault(style.borderColor, options.borderColor);\n}\nfunction lineTo(ctx, previous, target) {\n ctx.lineTo(target.x, target.y);\n}\nfunction getLineMethod(options) {\n if (options.stepped) {\n return _steppedLineTo;\n }\n if (options.tension || options.cubicInterpolationMode === 'monotone') {\n return _bezierCurveTo;\n }\n return lineTo;\n}\nfunction pathVars(points, segment, params = {}) {\n const count = points.length;\n const {start: paramsStart = 0, end: paramsEnd = count - 1} = params;\n const {start: segmentStart, end: segmentEnd} = segment;\n const start = Math.max(paramsStart, segmentStart);\n const end = Math.min(paramsEnd, segmentEnd);\n const outside = paramsStart < segmentStart && paramsEnd < segmentStart || paramsStart > segmentEnd && paramsEnd > segmentEnd;\n return {\n count,\n start,\n loop: segment.loop,\n ilen: end < start && !outside ? count + end - start : end - start\n };\n}\nfunction pathSegment(ctx, line, segment, params) {\n const {points, options} = line;\n const {count, start, loop, ilen} = pathVars(points, segment, params);\n const lineMethod = getLineMethod(options);\n let {move = true, reverse} = params || {};\n let i, point, prev;\n for (i = 0; i <= ilen; ++i) {\n point = points[(start + (reverse ? ilen - i : i)) % count];\n if (point.skip) {\n continue;\n } else if (move) {\n ctx.moveTo(point.x, point.y);\n move = false;\n } else {\n lineMethod(ctx, prev, point, reverse, options.stepped);\n }\n prev = point;\n }\n if (loop) {\n point = points[(start + (reverse ? ilen : 0)) % count];\n lineMethod(ctx, prev, point, reverse, options.stepped);\n }\n return !!loop;\n}\nfunction fastPathSegment(ctx, line, segment, params) {\n const points = line.points;\n const {count, start, ilen} = pathVars(points, segment, params);\n const {move = true, reverse} = params || {};\n let avgX = 0;\n let countX = 0;\n let i, point, prevX, minY, maxY, lastY;\n const pointIndex = (index) => (start + (reverse ? ilen - index : index)) % count;\n const drawX = () => {\n if (minY !== maxY) {\n ctx.lineTo(avgX, maxY);\n ctx.lineTo(avgX, minY);\n ctx.lineTo(avgX, lastY);\n }\n };\n if (move) {\n point = points[pointIndex(0)];\n ctx.moveTo(point.x, point.y);\n }\n for (i = 0; i <= ilen; ++i) {\n point = points[pointIndex(i)];\n if (point.skip) {\n continue;\n }\n const x = point.x;\n const y = point.y;\n const truncX = x | 0;\n if (truncX === prevX) {\n if (y < minY) {\n minY = y;\n } else if (y > maxY) {\n maxY = y;\n }\n avgX = (countX * avgX + x) / ++countX;\n } else {\n drawX();\n ctx.lineTo(x, y);\n prevX = truncX;\n countX = 0;\n minY = maxY = y;\n }\n lastY = y;\n }\n drawX();\n}\nfunction _getSegmentMethod(line) {\n const opts = line.options;\n const borderDash = opts.borderDash && opts.borderDash.length;\n const useFastPath = !line._decimated && !line._loop && !opts.tension && opts.cubicInterpolationMode !== 'monotone' && !opts.stepped && !borderDash;\n return useFastPath ? fastPathSegment : pathSegment;\n}\nfunction _getInterpolationMethod(options) {\n if (options.stepped) {\n return _steppedInterpolation;\n }\n if (options.tension || options.cubicInterpolationMode === 'monotone') {\n return _bezierInterpolation;\n }\n return _pointInLine;\n}\nfunction strokePathWithCache(ctx, line, start, count) {\n let path = line._path;\n if (!path) {\n path = line._path = new Path2D();\n if (line.path(path, start, count)) {\n path.closePath();\n }\n }\n setStyle(ctx, line.options);\n ctx.stroke(path);\n}\nfunction strokePathDirect(ctx, line, start, count) {\n const {segments, options} = line;\n const segmentMethod = _getSegmentMethod(line);\n for (const segment of segments) {\n setStyle(ctx, options, segment.style);\n ctx.beginPath();\n if (segmentMethod(ctx, line, segment, {start, end: start + count - 1})) {\n ctx.closePath();\n }\n ctx.stroke();\n }\n}\nconst usePath2D = typeof Path2D === 'function';\nfunction draw(ctx, line, start, count) {\n if (usePath2D && !line.options.segment) {\n strokePathWithCache(ctx, line, start, count);\n } else {\n strokePathDirect(ctx, line, start, count);\n }\n}\nclass LineElement extends Element {\n constructor(cfg) {\n super();\n this.animated = true;\n this.options = undefined;\n this._chart = undefined;\n this._loop = undefined;\n this._fullLoop = undefined;\n this._path = undefined;\n this._points = undefined;\n this._segments = undefined;\n this._decimated = false;\n this._pointsUpdated = false;\n this._datasetIndex = undefined;\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n updateControlPoints(chartArea, indexAxis) {\n const options = this.options;\n if ((options.tension || options.cubicInterpolationMode === 'monotone') && !options.stepped && !this._pointsUpdated) {\n const loop = options.spanGaps ? this._loop : this._fullLoop;\n _updateBezierControlPoints(this._points, options, chartArea, loop, indexAxis);\n this._pointsUpdated = true;\n }\n }\n set points(points) {\n this._points = points;\n delete this._segments;\n delete this._path;\n this._pointsUpdated = false;\n }\n get points() {\n return this._points;\n }\n get segments() {\n return this._segments || (this._segments = _computeSegments(this, this.options.segment));\n }\n first() {\n const segments = this.segments;\n const points = this.points;\n return segments.length && points[segments[0].start];\n }\n last() {\n const segments = this.segments;\n const points = this.points;\n const count = segments.length;\n return count && points[segments[count - 1].end];\n }\n interpolate(point, property) {\n const options = this.options;\n const value = point[property];\n const points = this.points;\n const segments = _boundSegments(this, {property, start: value, end: value});\n if (!segments.length) {\n return;\n }\n const result = [];\n const _interpolate = _getInterpolationMethod(options);\n let i, ilen;\n for (i = 0, ilen = segments.length; i < ilen; ++i) {\n const {start, end} = segments[i];\n const p1 = points[start];\n const p2 = points[end];\n if (p1 === p2) {\n result.push(p1);\n continue;\n }\n const t = Math.abs((value - p1[property]) / (p2[property] - p1[property]));\n const interpolated = _interpolate(p1, p2, t, options.stepped);\n interpolated[property] = point[property];\n result.push(interpolated);\n }\n return result.length === 1 ? result[0] : result;\n }\n pathSegment(ctx, segment, params) {\n const segmentMethod = _getSegmentMethod(this);\n return segmentMethod(ctx, this, segment, params);\n }\n path(ctx, start, count) {\n const segments = this.segments;\n const segmentMethod = _getSegmentMethod(this);\n let loop = this._loop;\n start = start || 0;\n count = count || (this.points.length - start);\n for (const segment of segments) {\n loop &= segmentMethod(ctx, this, segment, {start, end: start + count - 1});\n }\n return !!loop;\n }\n draw(ctx, chartArea, start, count) {\n const options = this.options || {};\n const points = this.points || [];\n if (points.length && options.borderWidth) {\n ctx.save();\n draw(ctx, this, start, count);\n ctx.restore();\n }\n if (this.animated) {\n this._pointsUpdated = false;\n this._path = undefined;\n }\n }\n}\nLineElement.id = 'line';\nLineElement.defaults = {\n borderCapStyle: 'butt',\n borderDash: [],\n borderDashOffset: 0,\n borderJoinStyle: 'miter',\n borderWidth: 3,\n capBezierPoints: true,\n cubicInterpolationMode: 'default',\n fill: false,\n spanGaps: false,\n stepped: false,\n tension: 0,\n};\nLineElement.defaultRoutes = {\n backgroundColor: 'backgroundColor',\n borderColor: 'borderColor'\n};\nLineElement.descriptors = {\n _scriptable: true,\n _indexable: (name) => name !== 'borderDash' && name !== 'fill',\n};\n\nfunction inRange$1(el, pos, axis, useFinalPosition) {\n const options = el.options;\n const {[axis]: value} = el.getProps([axis], useFinalPosition);\n return (Math.abs(pos - value) < options.radius + options.hitRadius);\n}\nclass PointElement extends Element {\n constructor(cfg) {\n super();\n this.options = undefined;\n this.parsed = undefined;\n this.skip = undefined;\n this.stop = undefined;\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n inRange(mouseX, mouseY, useFinalPosition) {\n const options = this.options;\n const {x, y} = this.getProps(['x', 'y'], useFinalPosition);\n return ((Math.pow(mouseX - x, 2) + Math.pow(mouseY - y, 2)) < Math.pow(options.hitRadius + options.radius, 2));\n }\n inXRange(mouseX, useFinalPosition) {\n return inRange$1(this, mouseX, 'x', useFinalPosition);\n }\n inYRange(mouseY, useFinalPosition) {\n return inRange$1(this, mouseY, 'y', useFinalPosition);\n }\n getCenterPoint(useFinalPosition) {\n const {x, y} = this.getProps(['x', 'y'], useFinalPosition);\n return {x, y};\n }\n size(options) {\n options = options || this.options || {};\n let radius = options.radius || 0;\n radius = Math.max(radius, radius && options.hoverRadius || 0);\n const borderWidth = radius && options.borderWidth || 0;\n return (radius + borderWidth) * 2;\n }\n draw(ctx, area) {\n const options = this.options;\n if (this.skip || options.radius < 0.1 || !_isPointInArea(this, area, this.size(options) / 2)) {\n return;\n }\n ctx.strokeStyle = options.borderColor;\n ctx.lineWidth = options.borderWidth;\n ctx.fillStyle = options.backgroundColor;\n drawPoint(ctx, options, this.x, this.y);\n }\n getRange() {\n const options = this.options || {};\n return options.radius + options.hitRadius;\n }\n}\nPointElement.id = 'point';\nPointElement.defaults = {\n borderWidth: 1,\n hitRadius: 1,\n hoverBorderWidth: 1,\n hoverRadius: 4,\n pointStyle: 'circle',\n radius: 3,\n rotation: 0\n};\nPointElement.defaultRoutes = {\n backgroundColor: 'backgroundColor',\n borderColor: 'borderColor'\n};\n\nfunction getBarBounds(bar, useFinalPosition) {\n const {x, y, base, width, height} = bar.getProps(['x', 'y', 'base', 'width', 'height'], useFinalPosition);\n let left, right, top, bottom, half;\n if (bar.horizontal) {\n half = height / 2;\n left = Math.min(x, base);\n right = Math.max(x, base);\n top = y - half;\n bottom = y + half;\n } else {\n half = width / 2;\n left = x - half;\n right = x + half;\n top = Math.min(y, base);\n bottom = Math.max(y, base);\n }\n return {left, top, right, bottom};\n}\nfunction skipOrLimit(skip, value, min, max) {\n return skip ? 0 : _limitValue(value, min, max);\n}\nfunction parseBorderWidth(bar, maxW, maxH) {\n const value = bar.options.borderWidth;\n const skip = bar.borderSkipped;\n const o = toTRBL(value);\n return {\n t: skipOrLimit(skip.top, o.top, 0, maxH),\n r: skipOrLimit(skip.right, o.right, 0, maxW),\n b: skipOrLimit(skip.bottom, o.bottom, 0, maxH),\n l: skipOrLimit(skip.left, o.left, 0, maxW)\n };\n}\nfunction parseBorderRadius(bar, maxW, maxH) {\n const {enableBorderRadius} = bar.getProps(['enableBorderRadius']);\n const value = bar.options.borderRadius;\n const o = toTRBLCorners(value);\n const maxR = Math.min(maxW, maxH);\n const skip = bar.borderSkipped;\n const enableBorder = enableBorderRadius || isObject(value);\n return {\n topLeft: skipOrLimit(!enableBorder || skip.top || skip.left, o.topLeft, 0, maxR),\n topRight: skipOrLimit(!enableBorder || skip.top || skip.right, o.topRight, 0, maxR),\n bottomLeft: skipOrLimit(!enableBorder || skip.bottom || skip.left, o.bottomLeft, 0, maxR),\n bottomRight: skipOrLimit(!enableBorder || skip.bottom || skip.right, o.bottomRight, 0, maxR)\n };\n}\nfunction boundingRects(bar) {\n const bounds = getBarBounds(bar);\n const width = bounds.right - bounds.left;\n const height = bounds.bottom - bounds.top;\n const border = parseBorderWidth(bar, width / 2, height / 2);\n const radius = parseBorderRadius(bar, width / 2, height / 2);\n return {\n outer: {\n x: bounds.left,\n y: bounds.top,\n w: width,\n h: height,\n radius\n },\n inner: {\n x: bounds.left + border.l,\n y: bounds.top + border.t,\n w: width - border.l - border.r,\n h: height - border.t - border.b,\n radius: {\n topLeft: Math.max(0, radius.topLeft - Math.max(border.t, border.l)),\n topRight: Math.max(0, radius.topRight - Math.max(border.t, border.r)),\n bottomLeft: Math.max(0, radius.bottomLeft - Math.max(border.b, border.l)),\n bottomRight: Math.max(0, radius.bottomRight - Math.max(border.b, border.r)),\n }\n }\n };\n}\nfunction inRange(bar, x, y, useFinalPosition) {\n const skipX = x === null;\n const skipY = y === null;\n const skipBoth = skipX && skipY;\n const bounds = bar && !skipBoth && getBarBounds(bar, useFinalPosition);\n return bounds\n\t\t&& (skipX || _isBetween(x, bounds.left, bounds.right))\n\t\t&& (skipY || _isBetween(y, bounds.top, bounds.bottom));\n}\nfunction hasRadius(radius) {\n return radius.topLeft || radius.topRight || radius.bottomLeft || radius.bottomRight;\n}\nfunction addNormalRectPath(ctx, rect) {\n ctx.rect(rect.x, rect.y, rect.w, rect.h);\n}\nfunction inflateRect(rect, amount, refRect = {}) {\n const x = rect.x !== refRect.x ? -amount : 0;\n const y = rect.y !== refRect.y ? -amount : 0;\n const w = (rect.x + rect.w !== refRect.x + refRect.w ? amount : 0) - x;\n const h = (rect.y + rect.h !== refRect.y + refRect.h ? amount : 0) - y;\n return {\n x: rect.x + x,\n y: rect.y + y,\n w: rect.w + w,\n h: rect.h + h,\n radius: rect.radius\n };\n}\nclass BarElement extends Element {\n constructor(cfg) {\n super();\n this.options = undefined;\n this.horizontal = undefined;\n this.base = undefined;\n this.width = undefined;\n this.height = undefined;\n this.inflateAmount = undefined;\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n draw(ctx) {\n const {inflateAmount, options: {borderColor, backgroundColor}} = this;\n const {inner, outer} = boundingRects(this);\n const addRectPath = hasRadius(outer.radius) ? addRoundedRectPath : addNormalRectPath;\n ctx.save();\n if (outer.w !== inner.w || outer.h !== inner.h) {\n ctx.beginPath();\n addRectPath(ctx, inflateRect(outer, inflateAmount, inner));\n ctx.clip();\n addRectPath(ctx, inflateRect(inner, -inflateAmount, outer));\n ctx.fillStyle = borderColor;\n ctx.fill('evenodd');\n }\n ctx.beginPath();\n addRectPath(ctx, inflateRect(inner, inflateAmount));\n ctx.fillStyle = backgroundColor;\n ctx.fill();\n ctx.restore();\n }\n inRange(mouseX, mouseY, useFinalPosition) {\n return inRange(this, mouseX, mouseY, useFinalPosition);\n }\n inXRange(mouseX, useFinalPosition) {\n return inRange(this, mouseX, null, useFinalPosition);\n }\n inYRange(mouseY, useFinalPosition) {\n return inRange(this, null, mouseY, useFinalPosition);\n }\n getCenterPoint(useFinalPosition) {\n const {x, y, base, horizontal} = this.getProps(['x', 'y', 'base', 'horizontal'], useFinalPosition);\n return {\n x: horizontal ? (x + base) / 2 : x,\n y: horizontal ? y : (y + base) / 2\n };\n }\n getRange(axis) {\n return axis === 'x' ? this.width / 2 : this.height / 2;\n }\n}\nBarElement.id = 'bar';\nBarElement.defaults = {\n borderSkipped: 'start',\n borderWidth: 0,\n borderRadius: 0,\n inflateAmount: 'auto',\n pointStyle: undefined\n};\nBarElement.defaultRoutes = {\n backgroundColor: 'backgroundColor',\n borderColor: 'borderColor'\n};\n\nvar elements = /*#__PURE__*/Object.freeze({\n__proto__: null,\nArcElement: ArcElement,\nLineElement: LineElement,\nPointElement: PointElement,\nBarElement: BarElement\n});\n\nfunction lttbDecimation(data, start, count, availableWidth, options) {\n const samples = options.samples || availableWidth;\n if (samples >= count) {\n return data.slice(start, start + count);\n }\n const decimated = [];\n const bucketWidth = (count - 2) / (samples - 2);\n let sampledIndex = 0;\n const endIndex = start + count - 1;\n let a = start;\n let i, maxAreaPoint, maxArea, area, nextA;\n decimated[sampledIndex++] = data[a];\n for (i = 0; i < samples - 2; i++) {\n let avgX = 0;\n let avgY = 0;\n let j;\n const avgRangeStart = Math.floor((i + 1) * bucketWidth) + 1 + start;\n const avgRangeEnd = Math.min(Math.floor((i + 2) * bucketWidth) + 1, count) + start;\n const avgRangeLength = avgRangeEnd - avgRangeStart;\n for (j = avgRangeStart; j < avgRangeEnd; j++) {\n avgX += data[j].x;\n avgY += data[j].y;\n }\n avgX /= avgRangeLength;\n avgY /= avgRangeLength;\n const rangeOffs = Math.floor(i * bucketWidth) + 1 + start;\n const rangeTo = Math.min(Math.floor((i + 1) * bucketWidth) + 1, count) + start;\n const {x: pointAx, y: pointAy} = data[a];\n maxArea = area = -1;\n for (j = rangeOffs; j < rangeTo; j++) {\n area = 0.5 * Math.abs(\n (pointAx - avgX) * (data[j].y - pointAy) -\n (pointAx - data[j].x) * (avgY - pointAy)\n );\n if (area > maxArea) {\n maxArea = area;\n maxAreaPoint = data[j];\n nextA = j;\n }\n }\n decimated[sampledIndex++] = maxAreaPoint;\n a = nextA;\n }\n decimated[sampledIndex++] = data[endIndex];\n return decimated;\n}\nfunction minMaxDecimation(data, start, count, availableWidth) {\n let avgX = 0;\n let countX = 0;\n let i, point, x, y, prevX, minIndex, maxIndex, startIndex, minY, maxY;\n const decimated = [];\n const endIndex = start + count - 1;\n const xMin = data[start].x;\n const xMax = data[endIndex].x;\n const dx = xMax - xMin;\n for (i = start; i < start + count; ++i) {\n point = data[i];\n x = (point.x - xMin) / dx * availableWidth;\n y = point.y;\n const truncX = x | 0;\n if (truncX === prevX) {\n if (y < minY) {\n minY = y;\n minIndex = i;\n } else if (y > maxY) {\n maxY = y;\n maxIndex = i;\n }\n avgX = (countX * avgX + point.x) / ++countX;\n } else {\n const lastIndex = i - 1;\n if (!isNullOrUndef(minIndex) && !isNullOrUndef(maxIndex)) {\n const intermediateIndex1 = Math.min(minIndex, maxIndex);\n const intermediateIndex2 = Math.max(minIndex, maxIndex);\n if (intermediateIndex1 !== startIndex && intermediateIndex1 !== lastIndex) {\n decimated.push({\n ...data[intermediateIndex1],\n x: avgX,\n });\n }\n if (intermediateIndex2 !== startIndex && intermediateIndex2 !== lastIndex) {\n decimated.push({\n ...data[intermediateIndex2],\n x: avgX\n });\n }\n }\n if (i > 0 && lastIndex !== startIndex) {\n decimated.push(data[lastIndex]);\n }\n decimated.push(point);\n prevX = truncX;\n countX = 0;\n minY = maxY = y;\n minIndex = maxIndex = startIndex = i;\n }\n }\n return decimated;\n}\nfunction cleanDecimatedDataset(dataset) {\n if (dataset._decimated) {\n const data = dataset._data;\n delete dataset._decimated;\n delete dataset._data;\n Object.defineProperty(dataset, 'data', {value: data});\n }\n}\nfunction cleanDecimatedData(chart) {\n chart.data.datasets.forEach((dataset) => {\n cleanDecimatedDataset(dataset);\n });\n}\nfunction getStartAndCountOfVisiblePointsSimplified(meta, points) {\n const pointCount = points.length;\n let start = 0;\n let count;\n const {iScale} = meta;\n const {min, max, minDefined, maxDefined} = iScale.getUserBounds();\n if (minDefined) {\n start = _limitValue(_lookupByKey(points, iScale.axis, min).lo, 0, pointCount - 1);\n }\n if (maxDefined) {\n count = _limitValue(_lookupByKey(points, iScale.axis, max).hi + 1, start, pointCount) - start;\n } else {\n count = pointCount - start;\n }\n return {start, count};\n}\nvar plugin_decimation = {\n id: 'decimation',\n defaults: {\n algorithm: 'min-max',\n enabled: false,\n },\n beforeElementsUpdate: (chart, args, options) => {\n if (!options.enabled) {\n cleanDecimatedData(chart);\n return;\n }\n const availableWidth = chart.width;\n chart.data.datasets.forEach((dataset, datasetIndex) => {\n const {_data, indexAxis} = dataset;\n const meta = chart.getDatasetMeta(datasetIndex);\n const data = _data || dataset.data;\n if (resolve([indexAxis, chart.options.indexAxis]) === 'y') {\n return;\n }\n if (!meta.controller.supportsDecimation) {\n return;\n }\n const xAxis = chart.scales[meta.xAxisID];\n if (xAxis.type !== 'linear' && xAxis.type !== 'time') {\n return;\n }\n if (chart.options.parsing) {\n return;\n }\n let {start, count} = getStartAndCountOfVisiblePointsSimplified(meta, data);\n const threshold = options.threshold || 4 * availableWidth;\n if (count <= threshold) {\n cleanDecimatedDataset(dataset);\n return;\n }\n if (isNullOrUndef(_data)) {\n dataset._data = data;\n delete dataset.data;\n Object.defineProperty(dataset, 'data', {\n configurable: true,\n enumerable: true,\n get: function() {\n return this._decimated;\n },\n set: function(d) {\n this._data = d;\n }\n });\n }\n let decimated;\n switch (options.algorithm) {\n case 'lttb':\n decimated = lttbDecimation(data, start, count, availableWidth, options);\n break;\n case 'min-max':\n decimated = minMaxDecimation(data, start, count, availableWidth);\n break;\n default:\n throw new Error(`Unsupported decimation algorithm '${options.algorithm}'`);\n }\n dataset._decimated = decimated;\n });\n },\n destroy(chart) {\n cleanDecimatedData(chart);\n }\n};\n\nfunction _segments(line, target, property) {\n const segments = line.segments;\n const points = line.points;\n const tpoints = target.points;\n const parts = [];\n for (const segment of segments) {\n let {start, end} = segment;\n end = _findSegmentEnd(start, end, points);\n const bounds = _getBounds(property, points[start], points[end], segment.loop);\n if (!target.segments) {\n parts.push({\n source: segment,\n target: bounds,\n start: points[start],\n end: points[end]\n });\n continue;\n }\n const targetSegments = _boundSegments(target, bounds);\n for (const tgt of targetSegments) {\n const subBounds = _getBounds(property, tpoints[tgt.start], tpoints[tgt.end], tgt.loop);\n const fillSources = _boundSegment(segment, points, subBounds);\n for (const fillSource of fillSources) {\n parts.push({\n source: fillSource,\n target: tgt,\n start: {\n [property]: _getEdge(bounds, subBounds, 'start', Math.max)\n },\n end: {\n [property]: _getEdge(bounds, subBounds, 'end', Math.min)\n }\n });\n }\n }\n }\n return parts;\n}\nfunction _getBounds(property, first, last, loop) {\n if (loop) {\n return;\n }\n let start = first[property];\n let end = last[property];\n if (property === 'angle') {\n start = _normalizeAngle(start);\n end = _normalizeAngle(end);\n }\n return {property, start, end};\n}\nfunction _pointsFromSegments(boundary, line) {\n const {x = null, y = null} = boundary || {};\n const linePoints = line.points;\n const points = [];\n line.segments.forEach(({start, end}) => {\n end = _findSegmentEnd(start, end, linePoints);\n const first = linePoints[start];\n const last = linePoints[end];\n if (y !== null) {\n points.push({x: first.x, y});\n points.push({x: last.x, y});\n } else if (x !== null) {\n points.push({x, y: first.y});\n points.push({x, y: last.y});\n }\n });\n return points;\n}\nfunction _findSegmentEnd(start, end, points) {\n for (;end > start; end--) {\n const point = points[end];\n if (!isNaN(point.x) && !isNaN(point.y)) {\n break;\n }\n }\n return end;\n}\nfunction _getEdge(a, b, prop, fn) {\n if (a && b) {\n return fn(a[prop], b[prop]);\n }\n return a ? a[prop] : b ? b[prop] : 0;\n}\n\nfunction _createBoundaryLine(boundary, line) {\n let points = [];\n let _loop = false;\n if (isArray(boundary)) {\n _loop = true;\n points = boundary;\n } else {\n points = _pointsFromSegments(boundary, line);\n }\n return points.length ? new LineElement({\n points,\n options: {tension: 0},\n _loop,\n _fullLoop: _loop\n }) : null;\n}\nfunction _shouldApplyFill(source) {\n return source && source.fill !== false;\n}\n\nfunction _resolveTarget(sources, index, propagate) {\n const source = sources[index];\n let fill = source.fill;\n const visited = [index];\n let target;\n if (!propagate) {\n return fill;\n }\n while (fill !== false && visited.indexOf(fill) === -1) {\n if (!isNumberFinite(fill)) {\n return fill;\n }\n target = sources[fill];\n if (!target) {\n return false;\n }\n if (target.visible) {\n return fill;\n }\n visited.push(fill);\n fill = target.fill;\n }\n return false;\n}\nfunction _decodeFill(line, index, count) {\n const fill = parseFillOption(line);\n if (isObject(fill)) {\n return isNaN(fill.value) ? false : fill;\n }\n let target = parseFloat(fill);\n if (isNumberFinite(target) && Math.floor(target) === target) {\n return decodeTargetIndex(fill[0], index, target, count);\n }\n return ['origin', 'start', 'end', 'stack', 'shape'].indexOf(fill) >= 0 && fill;\n}\nfunction decodeTargetIndex(firstCh, index, target, count) {\n if (firstCh === '-' || firstCh === '+') {\n target = index + target;\n }\n if (target === index || target < 0 || target >= count) {\n return false;\n }\n return target;\n}\nfunction _getTargetPixel(fill, scale) {\n let pixel = null;\n if (fill === 'start') {\n pixel = scale.bottom;\n } else if (fill === 'end') {\n pixel = scale.top;\n } else if (isObject(fill)) {\n pixel = scale.getPixelForValue(fill.value);\n } else if (scale.getBasePixel) {\n pixel = scale.getBasePixel();\n }\n return pixel;\n}\nfunction _getTargetValue(fill, scale, startValue) {\n let value;\n if (fill === 'start') {\n value = startValue;\n } else if (fill === 'end') {\n value = scale.options.reverse ? scale.min : scale.max;\n } else if (isObject(fill)) {\n value = fill.value;\n } else {\n value = scale.getBaseValue();\n }\n return value;\n}\nfunction parseFillOption(line) {\n const options = line.options;\n const fillOption = options.fill;\n let fill = valueOrDefault(fillOption && fillOption.target, fillOption);\n if (fill === undefined) {\n fill = !!options.backgroundColor;\n }\n if (fill === false || fill === null) {\n return false;\n }\n if (fill === true) {\n return 'origin';\n }\n return fill;\n}\n\nfunction _buildStackLine(source) {\n const {scale, index, line} = source;\n const points = [];\n const segments = line.segments;\n const sourcePoints = line.points;\n const linesBelow = getLinesBelow(scale, index);\n linesBelow.push(_createBoundaryLine({x: null, y: scale.bottom}, line));\n for (let i = 0; i < segments.length; i++) {\n const segment = segments[i];\n for (let j = segment.start; j <= segment.end; j++) {\n addPointsBelow(points, sourcePoints[j], linesBelow);\n }\n }\n return new LineElement({points, options: {}});\n}\nfunction getLinesBelow(scale, index) {\n const below = [];\n const metas = scale.getMatchingVisibleMetas('line');\n for (let i = 0; i < metas.length; i++) {\n const meta = metas[i];\n if (meta.index === index) {\n break;\n }\n if (!meta.hidden) {\n below.unshift(meta.dataset);\n }\n }\n return below;\n}\nfunction addPointsBelow(points, sourcePoint, linesBelow) {\n const postponed = [];\n for (let j = 0; j < linesBelow.length; j++) {\n const line = linesBelow[j];\n const {first, last, point} = findPoint(line, sourcePoint, 'x');\n if (!point || (first && last)) {\n continue;\n }\n if (first) {\n postponed.unshift(point);\n } else {\n points.push(point);\n if (!last) {\n break;\n }\n }\n }\n points.push(...postponed);\n}\nfunction findPoint(line, sourcePoint, property) {\n const point = line.interpolate(sourcePoint, property);\n if (!point) {\n return {};\n }\n const pointValue = point[property];\n const segments = line.segments;\n const linePoints = line.points;\n let first = false;\n let last = false;\n for (let i = 0; i < segments.length; i++) {\n const segment = segments[i];\n const firstValue = linePoints[segment.start][property];\n const lastValue = linePoints[segment.end][property];\n if (_isBetween(pointValue, firstValue, lastValue)) {\n first = pointValue === firstValue;\n last = pointValue === lastValue;\n break;\n }\n }\n return {first, last, point};\n}\n\nclass simpleArc {\n constructor(opts) {\n this.x = opts.x;\n this.y = opts.y;\n this.radius = opts.radius;\n }\n pathSegment(ctx, bounds, opts) {\n const {x, y, radius} = this;\n bounds = bounds || {start: 0, end: TAU};\n ctx.arc(x, y, radius, bounds.end, bounds.start, true);\n return !opts.bounds;\n }\n interpolate(point) {\n const {x, y, radius} = this;\n const angle = point.angle;\n return {\n x: x + Math.cos(angle) * radius,\n y: y + Math.sin(angle) * radius,\n angle\n };\n }\n}\n\nfunction _getTarget(source) {\n const {chart, fill, line} = source;\n if (isNumberFinite(fill)) {\n return getLineByIndex(chart, fill);\n }\n if (fill === 'stack') {\n return _buildStackLine(source);\n }\n if (fill === 'shape') {\n return true;\n }\n const boundary = computeBoundary(source);\n if (boundary instanceof simpleArc) {\n return boundary;\n }\n return _createBoundaryLine(boundary, line);\n}\nfunction getLineByIndex(chart, index) {\n const meta = chart.getDatasetMeta(index);\n const visible = meta && chart.isDatasetVisible(index);\n return visible ? meta.dataset : null;\n}\nfunction computeBoundary(source) {\n const scale = source.scale || {};\n if (scale.getPointPositionForValue) {\n return computeCircularBoundary(source);\n }\n return computeLinearBoundary(source);\n}\nfunction computeLinearBoundary(source) {\n const {scale = {}, fill} = source;\n const pixel = _getTargetPixel(fill, scale);\n if (isNumberFinite(pixel)) {\n const horizontal = scale.isHorizontal();\n return {\n x: horizontal ? pixel : null,\n y: horizontal ? null : pixel\n };\n }\n return null;\n}\nfunction computeCircularBoundary(source) {\n const {scale, fill} = source;\n const options = scale.options;\n const length = scale.getLabels().length;\n const start = options.reverse ? scale.max : scale.min;\n const value = _getTargetValue(fill, scale, start);\n const target = [];\n if (options.grid.circular) {\n const center = scale.getPointPositionForValue(0, start);\n return new simpleArc({\n x: center.x,\n y: center.y,\n radius: scale.getDistanceFromCenterForValue(value)\n });\n }\n for (let i = 0; i < length; ++i) {\n target.push(scale.getPointPositionForValue(i, value));\n }\n return target;\n}\n\nfunction _drawfill(ctx, source, area) {\n const target = _getTarget(source);\n const {line, scale, axis} = source;\n const lineOpts = line.options;\n const fillOption = lineOpts.fill;\n const color = lineOpts.backgroundColor;\n const {above = color, below = color} = fillOption || {};\n if (target && line.points.length) {\n clipArea(ctx, area);\n doFill(ctx, {line, target, above, below, area, scale, axis});\n unclipArea(ctx);\n }\n}\nfunction doFill(ctx, cfg) {\n const {line, target, above, below, area, scale} = cfg;\n const property = line._loop ? 'angle' : cfg.axis;\n ctx.save();\n if (property === 'x' && below !== above) {\n clipVertical(ctx, target, area.top);\n fill(ctx, {line, target, color: above, scale, property});\n ctx.restore();\n ctx.save();\n clipVertical(ctx, target, area.bottom);\n }\n fill(ctx, {line, target, color: below, scale, property});\n ctx.restore();\n}\nfunction clipVertical(ctx, target, clipY) {\n const {segments, points} = target;\n let first = true;\n let lineLoop = false;\n ctx.beginPath();\n for (const segment of segments) {\n const {start, end} = segment;\n const firstPoint = points[start];\n const lastPoint = points[_findSegmentEnd(start, end, points)];\n if (first) {\n ctx.moveTo(firstPoint.x, firstPoint.y);\n first = false;\n } else {\n ctx.lineTo(firstPoint.x, clipY);\n ctx.lineTo(firstPoint.x, firstPoint.y);\n }\n lineLoop = !!target.pathSegment(ctx, segment, {move: lineLoop});\n if (lineLoop) {\n ctx.closePath();\n } else {\n ctx.lineTo(lastPoint.x, clipY);\n }\n }\n ctx.lineTo(target.first().x, clipY);\n ctx.closePath();\n ctx.clip();\n}\nfunction fill(ctx, cfg) {\n const {line, target, property, color, scale} = cfg;\n const segments = _segments(line, target, property);\n for (const {source: src, target: tgt, start, end} of segments) {\n const {style: {backgroundColor = color} = {}} = src;\n const notShape = target !== true;\n ctx.save();\n ctx.fillStyle = backgroundColor;\n clipBounds(ctx, scale, notShape && _getBounds(property, start, end));\n ctx.beginPath();\n const lineLoop = !!line.pathSegment(ctx, src);\n let loop;\n if (notShape) {\n if (lineLoop) {\n ctx.closePath();\n } else {\n interpolatedLineTo(ctx, target, end, property);\n }\n const targetLoop = !!target.pathSegment(ctx, tgt, {move: lineLoop, reverse: true});\n loop = lineLoop && targetLoop;\n if (!loop) {\n interpolatedLineTo(ctx, target, start, property);\n }\n }\n ctx.closePath();\n ctx.fill(loop ? 'evenodd' : 'nonzero');\n ctx.restore();\n }\n}\nfunction clipBounds(ctx, scale, bounds) {\n const {top, bottom} = scale.chart.chartArea;\n const {property, start, end} = bounds || {};\n if (property === 'x') {\n ctx.beginPath();\n ctx.rect(start, top, end - start, bottom - top);\n ctx.clip();\n }\n}\nfunction interpolatedLineTo(ctx, target, point, property) {\n const interpolatedPoint = target.interpolate(point, property);\n if (interpolatedPoint) {\n ctx.lineTo(interpolatedPoint.x, interpolatedPoint.y);\n }\n}\n\nvar index = {\n id: 'filler',\n afterDatasetsUpdate(chart, _args, options) {\n const count = (chart.data.datasets || []).length;\n const sources = [];\n let meta, i, line, source;\n for (i = 0; i < count; ++i) {\n meta = chart.getDatasetMeta(i);\n line = meta.dataset;\n source = null;\n if (line && line.options && line instanceof LineElement) {\n source = {\n visible: chart.isDatasetVisible(i),\n index: i,\n fill: _decodeFill(line, i, count),\n chart,\n axis: meta.controller.options.indexAxis,\n scale: meta.vScale,\n line,\n };\n }\n meta.$filler = source;\n sources.push(source);\n }\n for (i = 0; i < count; ++i) {\n source = sources[i];\n if (!source || source.fill === false) {\n continue;\n }\n source.fill = _resolveTarget(sources, i, options.propagate);\n }\n },\n beforeDraw(chart, _args, options) {\n const draw = options.drawTime === 'beforeDraw';\n const metasets = chart.getSortedVisibleDatasetMetas();\n const area = chart.chartArea;\n for (let i = metasets.length - 1; i >= 0; --i) {\n const source = metasets[i].$filler;\n if (!source) {\n continue;\n }\n source.line.updateControlPoints(area, source.axis);\n if (draw && source.fill) {\n _drawfill(chart.ctx, source, area);\n }\n }\n },\n beforeDatasetsDraw(chart, _args, options) {\n if (options.drawTime !== 'beforeDatasetsDraw') {\n return;\n }\n const metasets = chart.getSortedVisibleDatasetMetas();\n for (let i = metasets.length - 1; i >= 0; --i) {\n const source = metasets[i].$filler;\n if (_shouldApplyFill(source)) {\n _drawfill(chart.ctx, source, chart.chartArea);\n }\n }\n },\n beforeDatasetDraw(chart, args, options) {\n const source = args.meta.$filler;\n if (!_shouldApplyFill(source) || options.drawTime !== 'beforeDatasetDraw') {\n return;\n }\n _drawfill(chart.ctx, source, chart.chartArea);\n },\n defaults: {\n propagate: true,\n drawTime: 'beforeDatasetDraw'\n }\n};\n\nconst getBoxSize = (labelOpts, fontSize) => {\n let {boxHeight = fontSize, boxWidth = fontSize} = labelOpts;\n if (labelOpts.usePointStyle) {\n boxHeight = Math.min(boxHeight, fontSize);\n boxWidth = labelOpts.pointStyleWidth || Math.min(boxWidth, fontSize);\n }\n return {\n boxWidth,\n boxHeight,\n itemHeight: Math.max(fontSize, boxHeight)\n };\n};\nconst itemsEqual = (a, b) => a !== null && b !== null && a.datasetIndex === b.datasetIndex && a.index === b.index;\nclass Legend extends Element {\n constructor(config) {\n super();\n this._added = false;\n this.legendHitBoxes = [];\n this._hoveredItem = null;\n this.doughnutMode = false;\n this.chart = config.chart;\n this.options = config.options;\n this.ctx = config.ctx;\n this.legendItems = undefined;\n this.columnSizes = undefined;\n this.lineWidths = undefined;\n this.maxHeight = undefined;\n this.maxWidth = undefined;\n this.top = undefined;\n this.bottom = undefined;\n this.left = undefined;\n this.right = undefined;\n this.height = undefined;\n this.width = undefined;\n this._margins = undefined;\n this.position = undefined;\n this.weight = undefined;\n this.fullSize = undefined;\n }\n update(maxWidth, maxHeight, margins) {\n this.maxWidth = maxWidth;\n this.maxHeight = maxHeight;\n this._margins = margins;\n this.setDimensions();\n this.buildLabels();\n this.fit();\n }\n setDimensions() {\n if (this.isHorizontal()) {\n this.width = this.maxWidth;\n this.left = this._margins.left;\n this.right = this.width;\n } else {\n this.height = this.maxHeight;\n this.top = this._margins.top;\n this.bottom = this.height;\n }\n }\n buildLabels() {\n const labelOpts = this.options.labels || {};\n let legendItems = callback(labelOpts.generateLabels, [this.chart], this) || [];\n if (labelOpts.filter) {\n legendItems = legendItems.filter((item) => labelOpts.filter(item, this.chart.data));\n }\n if (labelOpts.sort) {\n legendItems = legendItems.sort((a, b) => labelOpts.sort(a, b, this.chart.data));\n }\n if (this.options.reverse) {\n legendItems.reverse();\n }\n this.legendItems = legendItems;\n }\n fit() {\n const {options, ctx} = this;\n if (!options.display) {\n this.width = this.height = 0;\n return;\n }\n const labelOpts = options.labels;\n const labelFont = toFont(labelOpts.font);\n const fontSize = labelFont.size;\n const titleHeight = this._computeTitleHeight();\n const {boxWidth, itemHeight} = getBoxSize(labelOpts, fontSize);\n let width, height;\n ctx.font = labelFont.string;\n if (this.isHorizontal()) {\n width = this.maxWidth;\n height = this._fitRows(titleHeight, fontSize, boxWidth, itemHeight) + 10;\n } else {\n height = this.maxHeight;\n width = this._fitCols(titleHeight, fontSize, boxWidth, itemHeight) + 10;\n }\n this.width = Math.min(width, options.maxWidth || this.maxWidth);\n this.height = Math.min(height, options.maxHeight || this.maxHeight);\n }\n _fitRows(titleHeight, fontSize, boxWidth, itemHeight) {\n const {ctx, maxWidth, options: {labels: {padding}}} = this;\n const hitboxes = this.legendHitBoxes = [];\n const lineWidths = this.lineWidths = [0];\n const lineHeight = itemHeight + padding;\n let totalHeight = titleHeight;\n ctx.textAlign = 'left';\n ctx.textBaseline = 'middle';\n let row = -1;\n let top = -lineHeight;\n this.legendItems.forEach((legendItem, i) => {\n const itemWidth = boxWidth + (fontSize / 2) + ctx.measureText(legendItem.text).width;\n if (i === 0 || lineWidths[lineWidths.length - 1] + itemWidth + 2 * padding > maxWidth) {\n totalHeight += lineHeight;\n lineWidths[lineWidths.length - (i > 0 ? 0 : 1)] = 0;\n top += lineHeight;\n row++;\n }\n hitboxes[i] = {left: 0, top, row, width: itemWidth, height: itemHeight};\n lineWidths[lineWidths.length - 1] += itemWidth + padding;\n });\n return totalHeight;\n }\n _fitCols(titleHeight, fontSize, boxWidth, itemHeight) {\n const {ctx, maxHeight, options: {labels: {padding}}} = this;\n const hitboxes = this.legendHitBoxes = [];\n const columnSizes = this.columnSizes = [];\n const heightLimit = maxHeight - titleHeight;\n let totalWidth = padding;\n let currentColWidth = 0;\n let currentColHeight = 0;\n let left = 0;\n let col = 0;\n this.legendItems.forEach((legendItem, i) => {\n const itemWidth = boxWidth + (fontSize / 2) + ctx.measureText(legendItem.text).width;\n if (i > 0 && currentColHeight + itemHeight + 2 * padding > heightLimit) {\n totalWidth += currentColWidth + padding;\n columnSizes.push({width: currentColWidth, height: currentColHeight});\n left += currentColWidth + padding;\n col++;\n currentColWidth = currentColHeight = 0;\n }\n hitboxes[i] = {left, top: currentColHeight, col, width: itemWidth, height: itemHeight};\n currentColWidth = Math.max(currentColWidth, itemWidth);\n currentColHeight += itemHeight + padding;\n });\n totalWidth += currentColWidth;\n columnSizes.push({width: currentColWidth, height: currentColHeight});\n return totalWidth;\n }\n adjustHitBoxes() {\n if (!this.options.display) {\n return;\n }\n const titleHeight = this._computeTitleHeight();\n const {legendHitBoxes: hitboxes, options: {align, labels: {padding}, rtl}} = this;\n const rtlHelper = getRtlAdapter(rtl, this.left, this.width);\n if (this.isHorizontal()) {\n let row = 0;\n let left = _alignStartEnd(align, this.left + padding, this.right - this.lineWidths[row]);\n for (const hitbox of hitboxes) {\n if (row !== hitbox.row) {\n row = hitbox.row;\n left = _alignStartEnd(align, this.left + padding, this.right - this.lineWidths[row]);\n }\n hitbox.top += this.top + titleHeight + padding;\n hitbox.left = rtlHelper.leftForLtr(rtlHelper.x(left), hitbox.width);\n left += hitbox.width + padding;\n }\n } else {\n let col = 0;\n let top = _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - this.columnSizes[col].height);\n for (const hitbox of hitboxes) {\n if (hitbox.col !== col) {\n col = hitbox.col;\n top = _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - this.columnSizes[col].height);\n }\n hitbox.top = top;\n hitbox.left += this.left + padding;\n hitbox.left = rtlHelper.leftForLtr(rtlHelper.x(hitbox.left), hitbox.width);\n top += hitbox.height + padding;\n }\n }\n }\n isHorizontal() {\n return this.options.position === 'top' || this.options.position === 'bottom';\n }\n draw() {\n if (this.options.display) {\n const ctx = this.ctx;\n clipArea(ctx, this);\n this._draw();\n unclipArea(ctx);\n }\n }\n _draw() {\n const {options: opts, columnSizes, lineWidths, ctx} = this;\n const {align, labels: labelOpts} = opts;\n const defaultColor = defaults.color;\n const rtlHelper = getRtlAdapter(opts.rtl, this.left, this.width);\n const labelFont = toFont(labelOpts.font);\n const {color: fontColor, padding} = labelOpts;\n const fontSize = labelFont.size;\n const halfFontSize = fontSize / 2;\n let cursor;\n this.drawTitle();\n ctx.textAlign = rtlHelper.textAlign('left');\n ctx.textBaseline = 'middle';\n ctx.lineWidth = 0.5;\n ctx.font = labelFont.string;\n const {boxWidth, boxHeight, itemHeight} = getBoxSize(labelOpts, fontSize);\n const drawLegendBox = function(x, y, legendItem) {\n if (isNaN(boxWidth) || boxWidth <= 0 || isNaN(boxHeight) || boxHeight < 0) {\n return;\n }\n ctx.save();\n const lineWidth = valueOrDefault(legendItem.lineWidth, 1);\n ctx.fillStyle = valueOrDefault(legendItem.fillStyle, defaultColor);\n ctx.lineCap = valueOrDefault(legendItem.lineCap, 'butt');\n ctx.lineDashOffset = valueOrDefault(legendItem.lineDashOffset, 0);\n ctx.lineJoin = valueOrDefault(legendItem.lineJoin, 'miter');\n ctx.lineWidth = lineWidth;\n ctx.strokeStyle = valueOrDefault(legendItem.strokeStyle, defaultColor);\n ctx.setLineDash(valueOrDefault(legendItem.lineDash, []));\n if (labelOpts.usePointStyle) {\n const drawOptions = {\n radius: boxHeight * Math.SQRT2 / 2,\n pointStyle: legendItem.pointStyle,\n rotation: legendItem.rotation,\n borderWidth: lineWidth\n };\n const centerX = rtlHelper.xPlus(x, boxWidth / 2);\n const centerY = y + halfFontSize;\n drawPointLegend(ctx, drawOptions, centerX, centerY, labelOpts.pointStyleWidth && boxWidth);\n } else {\n const yBoxTop = y + Math.max((fontSize - boxHeight) / 2, 0);\n const xBoxLeft = rtlHelper.leftForLtr(x, boxWidth);\n const borderRadius = toTRBLCorners(legendItem.borderRadius);\n ctx.beginPath();\n if (Object.values(borderRadius).some(v => v !== 0)) {\n addRoundedRectPath(ctx, {\n x: xBoxLeft,\n y: yBoxTop,\n w: boxWidth,\n h: boxHeight,\n radius: borderRadius,\n });\n } else {\n ctx.rect(xBoxLeft, yBoxTop, boxWidth, boxHeight);\n }\n ctx.fill();\n if (lineWidth !== 0) {\n ctx.stroke();\n }\n }\n ctx.restore();\n };\n const fillText = function(x, y, legendItem) {\n renderText(ctx, legendItem.text, x, y + (itemHeight / 2), labelFont, {\n strikethrough: legendItem.hidden,\n textAlign: rtlHelper.textAlign(legendItem.textAlign)\n });\n };\n const isHorizontal = this.isHorizontal();\n const titleHeight = this._computeTitleHeight();\n if (isHorizontal) {\n cursor = {\n x: _alignStartEnd(align, this.left + padding, this.right - lineWidths[0]),\n y: this.top + padding + titleHeight,\n line: 0\n };\n } else {\n cursor = {\n x: this.left + padding,\n y: _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - columnSizes[0].height),\n line: 0\n };\n }\n overrideTextDirection(this.ctx, opts.textDirection);\n const lineHeight = itemHeight + padding;\n this.legendItems.forEach((legendItem, i) => {\n ctx.strokeStyle = legendItem.fontColor || fontColor;\n ctx.fillStyle = legendItem.fontColor || fontColor;\n const textWidth = ctx.measureText(legendItem.text).width;\n const textAlign = rtlHelper.textAlign(legendItem.textAlign || (legendItem.textAlign = labelOpts.textAlign));\n const width = boxWidth + halfFontSize + textWidth;\n let x = cursor.x;\n let y = cursor.y;\n rtlHelper.setWidth(this.width);\n if (isHorizontal) {\n if (i > 0 && x + width + padding > this.right) {\n y = cursor.y += lineHeight;\n cursor.line++;\n x = cursor.x = _alignStartEnd(align, this.left + padding, this.right - lineWidths[cursor.line]);\n }\n } else if (i > 0 && y + lineHeight > this.bottom) {\n x = cursor.x = x + columnSizes[cursor.line].width + padding;\n cursor.line++;\n y = cursor.y = _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - columnSizes[cursor.line].height);\n }\n const realX = rtlHelper.x(x);\n drawLegendBox(realX, y, legendItem);\n x = _textX(textAlign, x + boxWidth + halfFontSize, isHorizontal ? x + width : this.right, opts.rtl);\n fillText(rtlHelper.x(x), y, legendItem);\n if (isHorizontal) {\n cursor.x += width + padding;\n } else {\n cursor.y += lineHeight;\n }\n });\n restoreTextDirection(this.ctx, opts.textDirection);\n }\n drawTitle() {\n const opts = this.options;\n const titleOpts = opts.title;\n const titleFont = toFont(titleOpts.font);\n const titlePadding = toPadding(titleOpts.padding);\n if (!titleOpts.display) {\n return;\n }\n const rtlHelper = getRtlAdapter(opts.rtl, this.left, this.width);\n const ctx = this.ctx;\n const position = titleOpts.position;\n const halfFontSize = titleFont.size / 2;\n const topPaddingPlusHalfFontSize = titlePadding.top + halfFontSize;\n let y;\n let left = this.left;\n let maxWidth = this.width;\n if (this.isHorizontal()) {\n maxWidth = Math.max(...this.lineWidths);\n y = this.top + topPaddingPlusHalfFontSize;\n left = _alignStartEnd(opts.align, left, this.right - maxWidth);\n } else {\n const maxHeight = this.columnSizes.reduce((acc, size) => Math.max(acc, size.height), 0);\n y = topPaddingPlusHalfFontSize + _alignStartEnd(opts.align, this.top, this.bottom - maxHeight - opts.labels.padding - this._computeTitleHeight());\n }\n const x = _alignStartEnd(position, left, left + maxWidth);\n ctx.textAlign = rtlHelper.textAlign(_toLeftRightCenter(position));\n ctx.textBaseline = 'middle';\n ctx.strokeStyle = titleOpts.color;\n ctx.fillStyle = titleOpts.color;\n ctx.font = titleFont.string;\n renderText(ctx, titleOpts.text, x, y, titleFont);\n }\n _computeTitleHeight() {\n const titleOpts = this.options.title;\n const titleFont = toFont(titleOpts.font);\n const titlePadding = toPadding(titleOpts.padding);\n return titleOpts.display ? titleFont.lineHeight + titlePadding.height : 0;\n }\n _getLegendItemAt(x, y) {\n let i, hitBox, lh;\n if (_isBetween(x, this.left, this.right)\n && _isBetween(y, this.top, this.bottom)) {\n lh = this.legendHitBoxes;\n for (i = 0; i < lh.length; ++i) {\n hitBox = lh[i];\n if (_isBetween(x, hitBox.left, hitBox.left + hitBox.width)\n && _isBetween(y, hitBox.top, hitBox.top + hitBox.height)) {\n return this.legendItems[i];\n }\n }\n }\n return null;\n }\n handleEvent(e) {\n const opts = this.options;\n if (!isListened(e.type, opts)) {\n return;\n }\n const hoveredItem = this._getLegendItemAt(e.x, e.y);\n if (e.type === 'mousemove' || e.type === 'mouseout') {\n const previous = this._hoveredItem;\n const sameItem = itemsEqual(previous, hoveredItem);\n if (previous && !sameItem) {\n callback(opts.onLeave, [e, previous, this], this);\n }\n this._hoveredItem = hoveredItem;\n if (hoveredItem && !sameItem) {\n callback(opts.onHover, [e, hoveredItem, this], this);\n }\n } else if (hoveredItem) {\n callback(opts.onClick, [e, hoveredItem, this], this);\n }\n }\n}\nfunction isListened(type, opts) {\n if ((type === 'mousemove' || type === 'mouseout') && (opts.onHover || opts.onLeave)) {\n return true;\n }\n if (opts.onClick && (type === 'click' || type === 'mouseup')) {\n return true;\n }\n return false;\n}\nvar plugin_legend = {\n id: 'legend',\n _element: Legend,\n start(chart, _args, options) {\n const legend = chart.legend = new Legend({ctx: chart.ctx, options, chart});\n layouts.configure(chart, legend, options);\n layouts.addBox(chart, legend);\n },\n stop(chart) {\n layouts.removeBox(chart, chart.legend);\n delete chart.legend;\n },\n beforeUpdate(chart, _args, options) {\n const legend = chart.legend;\n layouts.configure(chart, legend, options);\n legend.options = options;\n },\n afterUpdate(chart) {\n const legend = chart.legend;\n legend.buildLabels();\n legend.adjustHitBoxes();\n },\n afterEvent(chart, args) {\n if (!args.replay) {\n chart.legend.handleEvent(args.event);\n }\n },\n defaults: {\n display: true,\n position: 'top',\n align: 'center',\n fullSize: true,\n reverse: false,\n weight: 1000,\n onClick(e, legendItem, legend) {\n const index = legendItem.datasetIndex;\n const ci = legend.chart;\n if (ci.isDatasetVisible(index)) {\n ci.hide(index);\n legendItem.hidden = true;\n } else {\n ci.show(index);\n legendItem.hidden = false;\n }\n },\n onHover: null,\n onLeave: null,\n labels: {\n color: (ctx) => ctx.chart.options.color,\n boxWidth: 40,\n padding: 10,\n generateLabels(chart) {\n const datasets = chart.data.datasets;\n const {labels: {usePointStyle, pointStyle, textAlign, color}} = chart.legend.options;\n return chart._getSortedDatasetMetas().map((meta) => {\n const style = meta.controller.getStyle(usePointStyle ? 0 : undefined);\n const borderWidth = toPadding(style.borderWidth);\n return {\n text: datasets[meta.index].label,\n fillStyle: style.backgroundColor,\n fontColor: color,\n hidden: !meta.visible,\n lineCap: style.borderCapStyle,\n lineDash: style.borderDash,\n lineDashOffset: style.borderDashOffset,\n lineJoin: style.borderJoinStyle,\n lineWidth: (borderWidth.width + borderWidth.height) / 4,\n strokeStyle: style.borderColor,\n pointStyle: pointStyle || style.pointStyle,\n rotation: style.rotation,\n textAlign: textAlign || style.textAlign,\n borderRadius: 0,\n datasetIndex: meta.index\n };\n }, this);\n }\n },\n title: {\n color: (ctx) => ctx.chart.options.color,\n display: false,\n position: 'center',\n text: '',\n }\n },\n descriptors: {\n _scriptable: (name) => !name.startsWith('on'),\n labels: {\n _scriptable: (name) => !['generateLabels', 'filter', 'sort'].includes(name),\n }\n },\n};\n\nclass Title extends Element {\n constructor(config) {\n super();\n this.chart = config.chart;\n this.options = config.options;\n this.ctx = config.ctx;\n this._padding = undefined;\n this.top = undefined;\n this.bottom = undefined;\n this.left = undefined;\n this.right = undefined;\n this.width = undefined;\n this.height = undefined;\n this.position = undefined;\n this.weight = undefined;\n this.fullSize = undefined;\n }\n update(maxWidth, maxHeight) {\n const opts = this.options;\n this.left = 0;\n this.top = 0;\n if (!opts.display) {\n this.width = this.height = this.right = this.bottom = 0;\n return;\n }\n this.width = this.right = maxWidth;\n this.height = this.bottom = maxHeight;\n const lineCount = isArray(opts.text) ? opts.text.length : 1;\n this._padding = toPadding(opts.padding);\n const textSize = lineCount * toFont(opts.font).lineHeight + this._padding.height;\n if (this.isHorizontal()) {\n this.height = textSize;\n } else {\n this.width = textSize;\n }\n }\n isHorizontal() {\n const pos = this.options.position;\n return pos === 'top' || pos === 'bottom';\n }\n _drawArgs(offset) {\n const {top, left, bottom, right, options} = this;\n const align = options.align;\n let rotation = 0;\n let maxWidth, titleX, titleY;\n if (this.isHorizontal()) {\n titleX = _alignStartEnd(align, left, right);\n titleY = top + offset;\n maxWidth = right - left;\n } else {\n if (options.position === 'left') {\n titleX = left + offset;\n titleY = _alignStartEnd(align, bottom, top);\n rotation = PI * -0.5;\n } else {\n titleX = right - offset;\n titleY = _alignStartEnd(align, top, bottom);\n rotation = PI * 0.5;\n }\n maxWidth = bottom - top;\n }\n return {titleX, titleY, maxWidth, rotation};\n }\n draw() {\n const ctx = this.ctx;\n const opts = this.options;\n if (!opts.display) {\n return;\n }\n const fontOpts = toFont(opts.font);\n const lineHeight = fontOpts.lineHeight;\n const offset = lineHeight / 2 + this._padding.top;\n const {titleX, titleY, maxWidth, rotation} = this._drawArgs(offset);\n renderText(ctx, opts.text, 0, 0, fontOpts, {\n color: opts.color,\n maxWidth,\n rotation,\n textAlign: _toLeftRightCenter(opts.align),\n textBaseline: 'middle',\n translation: [titleX, titleY],\n });\n }\n}\nfunction createTitle(chart, titleOpts) {\n const title = new Title({\n ctx: chart.ctx,\n options: titleOpts,\n chart\n });\n layouts.configure(chart, title, titleOpts);\n layouts.addBox(chart, title);\n chart.titleBlock = title;\n}\nvar plugin_title = {\n id: 'title',\n _element: Title,\n start(chart, _args, options) {\n createTitle(chart, options);\n },\n stop(chart) {\n const titleBlock = chart.titleBlock;\n layouts.removeBox(chart, titleBlock);\n delete chart.titleBlock;\n },\n beforeUpdate(chart, _args, options) {\n const title = chart.titleBlock;\n layouts.configure(chart, title, options);\n title.options = options;\n },\n defaults: {\n align: 'center',\n display: false,\n font: {\n weight: 'bold',\n },\n fullSize: true,\n padding: 10,\n position: 'top',\n text: '',\n weight: 2000\n },\n defaultRoutes: {\n color: 'color'\n },\n descriptors: {\n _scriptable: true,\n _indexable: false,\n },\n};\n\nconst map = new WeakMap();\nvar plugin_subtitle = {\n id: 'subtitle',\n start(chart, _args, options) {\n const title = new Title({\n ctx: chart.ctx,\n options,\n chart\n });\n layouts.configure(chart, title, options);\n layouts.addBox(chart, title);\n map.set(chart, title);\n },\n stop(chart) {\n layouts.removeBox(chart, map.get(chart));\n map.delete(chart);\n },\n beforeUpdate(chart, _args, options) {\n const title = map.get(chart);\n layouts.configure(chart, title, options);\n title.options = options;\n },\n defaults: {\n align: 'center',\n display: false,\n font: {\n weight: 'normal',\n },\n fullSize: true,\n padding: 0,\n position: 'top',\n text: '',\n weight: 1500\n },\n defaultRoutes: {\n color: 'color'\n },\n descriptors: {\n _scriptable: true,\n _indexable: false,\n },\n};\n\nconst positioners = {\n average(items) {\n if (!items.length) {\n return false;\n }\n let i, len;\n let x = 0;\n let y = 0;\n let count = 0;\n for (i = 0, len = items.length; i < len; ++i) {\n const el = items[i].element;\n if (el && el.hasValue()) {\n const pos = el.tooltipPosition();\n x += pos.x;\n y += pos.y;\n ++count;\n }\n }\n return {\n x: x / count,\n y: y / count\n };\n },\n nearest(items, eventPosition) {\n if (!items.length) {\n return false;\n }\n let x = eventPosition.x;\n let y = eventPosition.y;\n let minDistance = Number.POSITIVE_INFINITY;\n let i, len, nearestElement;\n for (i = 0, len = items.length; i < len; ++i) {\n const el = items[i].element;\n if (el && el.hasValue()) {\n const center = el.getCenterPoint();\n const d = distanceBetweenPoints(eventPosition, center);\n if (d < minDistance) {\n minDistance = d;\n nearestElement = el;\n }\n }\n }\n if (nearestElement) {\n const tp = nearestElement.tooltipPosition();\n x = tp.x;\n y = tp.y;\n }\n return {\n x,\n y\n };\n }\n};\nfunction pushOrConcat(base, toPush) {\n if (toPush) {\n if (isArray(toPush)) {\n Array.prototype.push.apply(base, toPush);\n } else {\n base.push(toPush);\n }\n }\n return base;\n}\nfunction splitNewlines(str) {\n if ((typeof str === 'string' || str instanceof String) && str.indexOf('\\n') > -1) {\n return str.split('\\n');\n }\n return str;\n}\nfunction createTooltipItem(chart, item) {\n const {element, datasetIndex, index} = item;\n const controller = chart.getDatasetMeta(datasetIndex).controller;\n const {label, value} = controller.getLabelAndValue(index);\n return {\n chart,\n label,\n parsed: controller.getParsed(index),\n raw: chart.data.datasets[datasetIndex].data[index],\n formattedValue: value,\n dataset: controller.getDataset(),\n dataIndex: index,\n datasetIndex,\n element\n };\n}\nfunction getTooltipSize(tooltip, options) {\n const ctx = tooltip.chart.ctx;\n const {body, footer, title} = tooltip;\n const {boxWidth, boxHeight} = options;\n const bodyFont = toFont(options.bodyFont);\n const titleFont = toFont(options.titleFont);\n const footerFont = toFont(options.footerFont);\n const titleLineCount = title.length;\n const footerLineCount = footer.length;\n const bodyLineItemCount = body.length;\n const padding = toPadding(options.padding);\n let height = padding.height;\n let width = 0;\n let combinedBodyLength = body.reduce((count, bodyItem) => count + bodyItem.before.length + bodyItem.lines.length + bodyItem.after.length, 0);\n combinedBodyLength += tooltip.beforeBody.length + tooltip.afterBody.length;\n if (titleLineCount) {\n height += titleLineCount * titleFont.lineHeight\n\t\t\t+ (titleLineCount - 1) * options.titleSpacing\n\t\t\t+ options.titleMarginBottom;\n }\n if (combinedBodyLength) {\n const bodyLineHeight = options.displayColors ? Math.max(boxHeight, bodyFont.lineHeight) : bodyFont.lineHeight;\n height += bodyLineItemCount * bodyLineHeight\n\t\t\t+ (combinedBodyLength - bodyLineItemCount) * bodyFont.lineHeight\n\t\t\t+ (combinedBodyLength - 1) * options.bodySpacing;\n }\n if (footerLineCount) {\n height += options.footerMarginTop\n\t\t\t+ footerLineCount * footerFont.lineHeight\n\t\t\t+ (footerLineCount - 1) * options.footerSpacing;\n }\n let widthPadding = 0;\n const maxLineWidth = function(line) {\n width = Math.max(width, ctx.measureText(line).width + widthPadding);\n };\n ctx.save();\n ctx.font = titleFont.string;\n each(tooltip.title, maxLineWidth);\n ctx.font = bodyFont.string;\n each(tooltip.beforeBody.concat(tooltip.afterBody), maxLineWidth);\n widthPadding = options.displayColors ? (boxWidth + 2 + options.boxPadding) : 0;\n each(body, (bodyItem) => {\n each(bodyItem.before, maxLineWidth);\n each(bodyItem.lines, maxLineWidth);\n each(bodyItem.after, maxLineWidth);\n });\n widthPadding = 0;\n ctx.font = footerFont.string;\n each(tooltip.footer, maxLineWidth);\n ctx.restore();\n width += padding.width;\n return {width, height};\n}\nfunction determineYAlign(chart, size) {\n const {y, height} = size;\n if (y < height / 2) {\n return 'top';\n } else if (y > (chart.height - height / 2)) {\n return 'bottom';\n }\n return 'center';\n}\nfunction doesNotFitWithAlign(xAlign, chart, options, size) {\n const {x, width} = size;\n const caret = options.caretSize + options.caretPadding;\n if (xAlign === 'left' && x + width + caret > chart.width) {\n return true;\n }\n if (xAlign === 'right' && x - width - caret < 0) {\n return true;\n }\n}\nfunction determineXAlign(chart, options, size, yAlign) {\n const {x, width} = size;\n const {width: chartWidth, chartArea: {left, right}} = chart;\n let xAlign = 'center';\n if (yAlign === 'center') {\n xAlign = x <= (left + right) / 2 ? 'left' : 'right';\n } else if (x <= width / 2) {\n xAlign = 'left';\n } else if (x >= chartWidth - width / 2) {\n xAlign = 'right';\n }\n if (doesNotFitWithAlign(xAlign, chart, options, size)) {\n xAlign = 'center';\n }\n return xAlign;\n}\nfunction determineAlignment(chart, options, size) {\n const yAlign = size.yAlign || options.yAlign || determineYAlign(chart, size);\n return {\n xAlign: size.xAlign || options.xAlign || determineXAlign(chart, options, size, yAlign),\n yAlign\n };\n}\nfunction alignX(size, xAlign) {\n let {x, width} = size;\n if (xAlign === 'right') {\n x -= width;\n } else if (xAlign === 'center') {\n x -= (width / 2);\n }\n return x;\n}\nfunction alignY(size, yAlign, paddingAndSize) {\n let {y, height} = size;\n if (yAlign === 'top') {\n y += paddingAndSize;\n } else if (yAlign === 'bottom') {\n y -= height + paddingAndSize;\n } else {\n y -= (height / 2);\n }\n return y;\n}\nfunction getBackgroundPoint(options, size, alignment, chart) {\n const {caretSize, caretPadding, cornerRadius} = options;\n const {xAlign, yAlign} = alignment;\n const paddingAndSize = caretSize + caretPadding;\n const {topLeft, topRight, bottomLeft, bottomRight} = toTRBLCorners(cornerRadius);\n let x = alignX(size, xAlign);\n const y = alignY(size, yAlign, paddingAndSize);\n if (yAlign === 'center') {\n if (xAlign === 'left') {\n x += paddingAndSize;\n } else if (xAlign === 'right') {\n x -= paddingAndSize;\n }\n } else if (xAlign === 'left') {\n x -= Math.max(topLeft, bottomLeft) + caretSize;\n } else if (xAlign === 'right') {\n x += Math.max(topRight, bottomRight) + caretSize;\n }\n return {\n x: _limitValue(x, 0, chart.width - size.width),\n y: _limitValue(y, 0, chart.height - size.height)\n };\n}\nfunction getAlignedX(tooltip, align, options) {\n const padding = toPadding(options.padding);\n return align === 'center'\n ? tooltip.x + tooltip.width / 2\n : align === 'right'\n ? tooltip.x + tooltip.width - padding.right\n : tooltip.x + padding.left;\n}\nfunction getBeforeAfterBodyLines(callback) {\n return pushOrConcat([], splitNewlines(callback));\n}\nfunction createTooltipContext(parent, tooltip, tooltipItems) {\n return createContext(parent, {\n tooltip,\n tooltipItems,\n type: 'tooltip'\n });\n}\nfunction overrideCallbacks(callbacks, context) {\n const override = context && context.dataset && context.dataset.tooltip && context.dataset.tooltip.callbacks;\n return override ? callbacks.override(override) : callbacks;\n}\nclass Tooltip extends Element {\n constructor(config) {\n super();\n this.opacity = 0;\n this._active = [];\n this._eventPosition = undefined;\n this._size = undefined;\n this._cachedAnimations = undefined;\n this._tooltipItems = [];\n this.$animations = undefined;\n this.$context = undefined;\n this.chart = config.chart || config._chart;\n this._chart = this.chart;\n this.options = config.options;\n this.dataPoints = undefined;\n this.title = undefined;\n this.beforeBody = undefined;\n this.body = undefined;\n this.afterBody = undefined;\n this.footer = undefined;\n this.xAlign = undefined;\n this.yAlign = undefined;\n this.x = undefined;\n this.y = undefined;\n this.height = undefined;\n this.width = undefined;\n this.caretX = undefined;\n this.caretY = undefined;\n this.labelColors = undefined;\n this.labelPointStyles = undefined;\n this.labelTextColors = undefined;\n }\n initialize(options) {\n this.options = options;\n this._cachedAnimations = undefined;\n this.$context = undefined;\n }\n _resolveAnimations() {\n const cached = this._cachedAnimations;\n if (cached) {\n return cached;\n }\n const chart = this.chart;\n const options = this.options.setContext(this.getContext());\n const opts = options.enabled && chart.options.animation && options.animations;\n const animations = new Animations(this.chart, opts);\n if (opts._cacheable) {\n this._cachedAnimations = Object.freeze(animations);\n }\n return animations;\n }\n getContext() {\n return this.$context ||\n\t\t\t(this.$context = createTooltipContext(this.chart.getContext(), this, this._tooltipItems));\n }\n getTitle(context, options) {\n const {callbacks} = options;\n const beforeTitle = callbacks.beforeTitle.apply(this, [context]);\n const title = callbacks.title.apply(this, [context]);\n const afterTitle = callbacks.afterTitle.apply(this, [context]);\n let lines = [];\n lines = pushOrConcat(lines, splitNewlines(beforeTitle));\n lines = pushOrConcat(lines, splitNewlines(title));\n lines = pushOrConcat(lines, splitNewlines(afterTitle));\n return lines;\n }\n getBeforeBody(tooltipItems, options) {\n return getBeforeAfterBodyLines(options.callbacks.beforeBody.apply(this, [tooltipItems]));\n }\n getBody(tooltipItems, options) {\n const {callbacks} = options;\n const bodyItems = [];\n each(tooltipItems, (context) => {\n const bodyItem = {\n before: [],\n lines: [],\n after: []\n };\n const scoped = overrideCallbacks(callbacks, context);\n pushOrConcat(bodyItem.before, splitNewlines(scoped.beforeLabel.call(this, context)));\n pushOrConcat(bodyItem.lines, scoped.label.call(this, context));\n pushOrConcat(bodyItem.after, splitNewlines(scoped.afterLabel.call(this, context)));\n bodyItems.push(bodyItem);\n });\n return bodyItems;\n }\n getAfterBody(tooltipItems, options) {\n return getBeforeAfterBodyLines(options.callbacks.afterBody.apply(this, [tooltipItems]));\n }\n getFooter(tooltipItems, options) {\n const {callbacks} = options;\n const beforeFooter = callbacks.beforeFooter.apply(this, [tooltipItems]);\n const footer = callbacks.footer.apply(this, [tooltipItems]);\n const afterFooter = callbacks.afterFooter.apply(this, [tooltipItems]);\n let lines = [];\n lines = pushOrConcat(lines, splitNewlines(beforeFooter));\n lines = pushOrConcat(lines, splitNewlines(footer));\n lines = pushOrConcat(lines, splitNewlines(afterFooter));\n return lines;\n }\n _createItems(options) {\n const active = this._active;\n const data = this.chart.data;\n const labelColors = [];\n const labelPointStyles = [];\n const labelTextColors = [];\n let tooltipItems = [];\n let i, len;\n for (i = 0, len = active.length; i < len; ++i) {\n tooltipItems.push(createTooltipItem(this.chart, active[i]));\n }\n if (options.filter) {\n tooltipItems = tooltipItems.filter((element, index, array) => options.filter(element, index, array, data));\n }\n if (options.itemSort) {\n tooltipItems = tooltipItems.sort((a, b) => options.itemSort(a, b, data));\n }\n each(tooltipItems, (context) => {\n const scoped = overrideCallbacks(options.callbacks, context);\n labelColors.push(scoped.labelColor.call(this, context));\n labelPointStyles.push(scoped.labelPointStyle.call(this, context));\n labelTextColors.push(scoped.labelTextColor.call(this, context));\n });\n this.labelColors = labelColors;\n this.labelPointStyles = labelPointStyles;\n this.labelTextColors = labelTextColors;\n this.dataPoints = tooltipItems;\n return tooltipItems;\n }\n update(changed, replay) {\n const options = this.options.setContext(this.getContext());\n const active = this._active;\n let properties;\n let tooltipItems = [];\n if (!active.length) {\n if (this.opacity !== 0) {\n properties = {\n opacity: 0\n };\n }\n } else {\n const position = positioners[options.position].call(this, active, this._eventPosition);\n tooltipItems = this._createItems(options);\n this.title = this.getTitle(tooltipItems, options);\n this.beforeBody = this.getBeforeBody(tooltipItems, options);\n this.body = this.getBody(tooltipItems, options);\n this.afterBody = this.getAfterBody(tooltipItems, options);\n this.footer = this.getFooter(tooltipItems, options);\n const size = this._size = getTooltipSize(this, options);\n const positionAndSize = Object.assign({}, position, size);\n const alignment = determineAlignment(this.chart, options, positionAndSize);\n const backgroundPoint = getBackgroundPoint(options, positionAndSize, alignment, this.chart);\n this.xAlign = alignment.xAlign;\n this.yAlign = alignment.yAlign;\n properties = {\n opacity: 1,\n x: backgroundPoint.x,\n y: backgroundPoint.y,\n width: size.width,\n height: size.height,\n caretX: position.x,\n caretY: position.y\n };\n }\n this._tooltipItems = tooltipItems;\n this.$context = undefined;\n if (properties) {\n this._resolveAnimations().update(this, properties);\n }\n if (changed && options.external) {\n options.external.call(this, {chart: this.chart, tooltip: this, replay});\n }\n }\n drawCaret(tooltipPoint, ctx, size, options) {\n const caretPosition = this.getCaretPosition(tooltipPoint, size, options);\n ctx.lineTo(caretPosition.x1, caretPosition.y1);\n ctx.lineTo(caretPosition.x2, caretPosition.y2);\n ctx.lineTo(caretPosition.x3, caretPosition.y3);\n }\n getCaretPosition(tooltipPoint, size, options) {\n const {xAlign, yAlign} = this;\n const {caretSize, cornerRadius} = options;\n const {topLeft, topRight, bottomLeft, bottomRight} = toTRBLCorners(cornerRadius);\n const {x: ptX, y: ptY} = tooltipPoint;\n const {width, height} = size;\n let x1, x2, x3, y1, y2, y3;\n if (yAlign === 'center') {\n y2 = ptY + (height / 2);\n if (xAlign === 'left') {\n x1 = ptX;\n x2 = x1 - caretSize;\n y1 = y2 + caretSize;\n y3 = y2 - caretSize;\n } else {\n x1 = ptX + width;\n x2 = x1 + caretSize;\n y1 = y2 - caretSize;\n y3 = y2 + caretSize;\n }\n x3 = x1;\n } else {\n if (xAlign === 'left') {\n x2 = ptX + Math.max(topLeft, bottomLeft) + (caretSize);\n } else if (xAlign === 'right') {\n x2 = ptX + width - Math.max(topRight, bottomRight) - caretSize;\n } else {\n x2 = this.caretX;\n }\n if (yAlign === 'top') {\n y1 = ptY;\n y2 = y1 - caretSize;\n x1 = x2 - caretSize;\n x3 = x2 + caretSize;\n } else {\n y1 = ptY + height;\n y2 = y1 + caretSize;\n x1 = x2 + caretSize;\n x3 = x2 - caretSize;\n }\n y3 = y1;\n }\n return {x1, x2, x3, y1, y2, y3};\n }\n drawTitle(pt, ctx, options) {\n const title = this.title;\n const length = title.length;\n let titleFont, titleSpacing, i;\n if (length) {\n const rtlHelper = getRtlAdapter(options.rtl, this.x, this.width);\n pt.x = getAlignedX(this, options.titleAlign, options);\n ctx.textAlign = rtlHelper.textAlign(options.titleAlign);\n ctx.textBaseline = 'middle';\n titleFont = toFont(options.titleFont);\n titleSpacing = options.titleSpacing;\n ctx.fillStyle = options.titleColor;\n ctx.font = titleFont.string;\n for (i = 0; i < length; ++i) {\n ctx.fillText(title[i], rtlHelper.x(pt.x), pt.y + titleFont.lineHeight / 2);\n pt.y += titleFont.lineHeight + titleSpacing;\n if (i + 1 === length) {\n pt.y += options.titleMarginBottom - titleSpacing;\n }\n }\n }\n }\n _drawColorBox(ctx, pt, i, rtlHelper, options) {\n const labelColors = this.labelColors[i];\n const labelPointStyle = this.labelPointStyles[i];\n const {boxHeight, boxWidth, boxPadding} = options;\n const bodyFont = toFont(options.bodyFont);\n const colorX = getAlignedX(this, 'left', options);\n const rtlColorX = rtlHelper.x(colorX);\n const yOffSet = boxHeight < bodyFont.lineHeight ? (bodyFont.lineHeight - boxHeight) / 2 : 0;\n const colorY = pt.y + yOffSet;\n if (options.usePointStyle) {\n const drawOptions = {\n radius: Math.min(boxWidth, boxHeight) / 2,\n pointStyle: labelPointStyle.pointStyle,\n rotation: labelPointStyle.rotation,\n borderWidth: 1\n };\n const centerX = rtlHelper.leftForLtr(rtlColorX, boxWidth) + boxWidth / 2;\n const centerY = colorY + boxHeight / 2;\n ctx.strokeStyle = options.multiKeyBackground;\n ctx.fillStyle = options.multiKeyBackground;\n drawPoint(ctx, drawOptions, centerX, centerY);\n ctx.strokeStyle = labelColors.borderColor;\n ctx.fillStyle = labelColors.backgroundColor;\n drawPoint(ctx, drawOptions, centerX, centerY);\n } else {\n ctx.lineWidth = isObject(labelColors.borderWidth) ? Math.max(...Object.values(labelColors.borderWidth)) : (labelColors.borderWidth || 1);\n ctx.strokeStyle = labelColors.borderColor;\n ctx.setLineDash(labelColors.borderDash || []);\n ctx.lineDashOffset = labelColors.borderDashOffset || 0;\n const outerX = rtlHelper.leftForLtr(rtlColorX, boxWidth - boxPadding);\n const innerX = rtlHelper.leftForLtr(rtlHelper.xPlus(rtlColorX, 1), boxWidth - boxPadding - 2);\n const borderRadius = toTRBLCorners(labelColors.borderRadius);\n if (Object.values(borderRadius).some(v => v !== 0)) {\n ctx.beginPath();\n ctx.fillStyle = options.multiKeyBackground;\n addRoundedRectPath(ctx, {\n x: outerX,\n y: colorY,\n w: boxWidth,\n h: boxHeight,\n radius: borderRadius,\n });\n ctx.fill();\n ctx.stroke();\n ctx.fillStyle = labelColors.backgroundColor;\n ctx.beginPath();\n addRoundedRectPath(ctx, {\n x: innerX,\n y: colorY + 1,\n w: boxWidth - 2,\n h: boxHeight - 2,\n radius: borderRadius,\n });\n ctx.fill();\n } else {\n ctx.fillStyle = options.multiKeyBackground;\n ctx.fillRect(outerX, colorY, boxWidth, boxHeight);\n ctx.strokeRect(outerX, colorY, boxWidth, boxHeight);\n ctx.fillStyle = labelColors.backgroundColor;\n ctx.fillRect(innerX, colorY + 1, boxWidth - 2, boxHeight - 2);\n }\n }\n ctx.fillStyle = this.labelTextColors[i];\n }\n drawBody(pt, ctx, options) {\n const {body} = this;\n const {bodySpacing, bodyAlign, displayColors, boxHeight, boxWidth, boxPadding} = options;\n const bodyFont = toFont(options.bodyFont);\n let bodyLineHeight = bodyFont.lineHeight;\n let xLinePadding = 0;\n const rtlHelper = getRtlAdapter(options.rtl, this.x, this.width);\n const fillLineOfText = function(line) {\n ctx.fillText(line, rtlHelper.x(pt.x + xLinePadding), pt.y + bodyLineHeight / 2);\n pt.y += bodyLineHeight + bodySpacing;\n };\n const bodyAlignForCalculation = rtlHelper.textAlign(bodyAlign);\n let bodyItem, textColor, lines, i, j, ilen, jlen;\n ctx.textAlign = bodyAlign;\n ctx.textBaseline = 'middle';\n ctx.font = bodyFont.string;\n pt.x = getAlignedX(this, bodyAlignForCalculation, options);\n ctx.fillStyle = options.bodyColor;\n each(this.beforeBody, fillLineOfText);\n xLinePadding = displayColors && bodyAlignForCalculation !== 'right'\n ? bodyAlign === 'center' ? (boxWidth / 2 + boxPadding) : (boxWidth + 2 + boxPadding)\n : 0;\n for (i = 0, ilen = body.length; i < ilen; ++i) {\n bodyItem = body[i];\n textColor = this.labelTextColors[i];\n ctx.fillStyle = textColor;\n each(bodyItem.before, fillLineOfText);\n lines = bodyItem.lines;\n if (displayColors && lines.length) {\n this._drawColorBox(ctx, pt, i, rtlHelper, options);\n bodyLineHeight = Math.max(bodyFont.lineHeight, boxHeight);\n }\n for (j = 0, jlen = lines.length; j < jlen; ++j) {\n fillLineOfText(lines[j]);\n bodyLineHeight = bodyFont.lineHeight;\n }\n each(bodyItem.after, fillLineOfText);\n }\n xLinePadding = 0;\n bodyLineHeight = bodyFont.lineHeight;\n each(this.afterBody, fillLineOfText);\n pt.y -= bodySpacing;\n }\n drawFooter(pt, ctx, options) {\n const footer = this.footer;\n const length = footer.length;\n let footerFont, i;\n if (length) {\n const rtlHelper = getRtlAdapter(options.rtl, this.x, this.width);\n pt.x = getAlignedX(this, options.footerAlign, options);\n pt.y += options.footerMarginTop;\n ctx.textAlign = rtlHelper.textAlign(options.footerAlign);\n ctx.textBaseline = 'middle';\n footerFont = toFont(options.footerFont);\n ctx.fillStyle = options.footerColor;\n ctx.font = footerFont.string;\n for (i = 0; i < length; ++i) {\n ctx.fillText(footer[i], rtlHelper.x(pt.x), pt.y + footerFont.lineHeight / 2);\n pt.y += footerFont.lineHeight + options.footerSpacing;\n }\n }\n }\n drawBackground(pt, ctx, tooltipSize, options) {\n const {xAlign, yAlign} = this;\n const {x, y} = pt;\n const {width, height} = tooltipSize;\n const {topLeft, topRight, bottomLeft, bottomRight} = toTRBLCorners(options.cornerRadius);\n ctx.fillStyle = options.backgroundColor;\n ctx.strokeStyle = options.borderColor;\n ctx.lineWidth = options.borderWidth;\n ctx.beginPath();\n ctx.moveTo(x + topLeft, y);\n if (yAlign === 'top') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x + width - topRight, y);\n ctx.quadraticCurveTo(x + width, y, x + width, y + topRight);\n if (yAlign === 'center' && xAlign === 'right') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x + width, y + height - bottomRight);\n ctx.quadraticCurveTo(x + width, y + height, x + width - bottomRight, y + height);\n if (yAlign === 'bottom') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x + bottomLeft, y + height);\n ctx.quadraticCurveTo(x, y + height, x, y + height - bottomLeft);\n if (yAlign === 'center' && xAlign === 'left') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x, y + topLeft);\n ctx.quadraticCurveTo(x, y, x + topLeft, y);\n ctx.closePath();\n ctx.fill();\n if (options.borderWidth > 0) {\n ctx.stroke();\n }\n }\n _updateAnimationTarget(options) {\n const chart = this.chart;\n const anims = this.$animations;\n const animX = anims && anims.x;\n const animY = anims && anims.y;\n if (animX || animY) {\n const position = positioners[options.position].call(this, this._active, this._eventPosition);\n if (!position) {\n return;\n }\n const size = this._size = getTooltipSize(this, options);\n const positionAndSize = Object.assign({}, position, this._size);\n const alignment = determineAlignment(chart, options, positionAndSize);\n const point = getBackgroundPoint(options, positionAndSize, alignment, chart);\n if (animX._to !== point.x || animY._to !== point.y) {\n this.xAlign = alignment.xAlign;\n this.yAlign = alignment.yAlign;\n this.width = size.width;\n this.height = size.height;\n this.caretX = position.x;\n this.caretY = position.y;\n this._resolveAnimations().update(this, point);\n }\n }\n }\n _willRender() {\n return !!this.opacity;\n }\n draw(ctx) {\n const options = this.options.setContext(this.getContext());\n let opacity = this.opacity;\n if (!opacity) {\n return;\n }\n this._updateAnimationTarget(options);\n const tooltipSize = {\n width: this.width,\n height: this.height\n };\n const pt = {\n x: this.x,\n y: this.y\n };\n opacity = Math.abs(opacity) < 1e-3 ? 0 : opacity;\n const padding = toPadding(options.padding);\n const hasTooltipContent = this.title.length || this.beforeBody.length || this.body.length || this.afterBody.length || this.footer.length;\n if (options.enabled && hasTooltipContent) {\n ctx.save();\n ctx.globalAlpha = opacity;\n this.drawBackground(pt, ctx, tooltipSize, options);\n overrideTextDirection(ctx, options.textDirection);\n pt.y += padding.top;\n this.drawTitle(pt, ctx, options);\n this.drawBody(pt, ctx, options);\n this.drawFooter(pt, ctx, options);\n restoreTextDirection(ctx, options.textDirection);\n ctx.restore();\n }\n }\n getActiveElements() {\n return this._active || [];\n }\n setActiveElements(activeElements, eventPosition) {\n const lastActive = this._active;\n const active = activeElements.map(({datasetIndex, index}) => {\n const meta = this.chart.getDatasetMeta(datasetIndex);\n if (!meta) {\n throw new Error('Cannot find a dataset at index ' + datasetIndex);\n }\n return {\n datasetIndex,\n element: meta.data[index],\n index,\n };\n });\n const changed = !_elementsEqual(lastActive, active);\n const positionChanged = this._positionChanged(active, eventPosition);\n if (changed || positionChanged) {\n this._active = active;\n this._eventPosition = eventPosition;\n this._ignoreReplayEvents = true;\n this.update(true);\n }\n }\n handleEvent(e, replay, inChartArea = true) {\n if (replay && this._ignoreReplayEvents) {\n return false;\n }\n this._ignoreReplayEvents = false;\n const options = this.options;\n const lastActive = this._active || [];\n const active = this._getActiveElements(e, lastActive, replay, inChartArea);\n const positionChanged = this._positionChanged(active, e);\n const changed = replay || !_elementsEqual(active, lastActive) || positionChanged;\n if (changed) {\n this._active = active;\n if (options.enabled || options.external) {\n this._eventPosition = {\n x: e.x,\n y: e.y\n };\n this.update(true, replay);\n }\n }\n return changed;\n }\n _getActiveElements(e, lastActive, replay, inChartArea) {\n const options = this.options;\n if (e.type === 'mouseout') {\n return [];\n }\n if (!inChartArea) {\n return lastActive;\n }\n const active = this.chart.getElementsAtEventForMode(e, options.mode, options, replay);\n if (options.reverse) {\n active.reverse();\n }\n return active;\n }\n _positionChanged(active, e) {\n const {caretX, caretY, options} = this;\n const position = positioners[options.position].call(this, active, e);\n return position !== false && (caretX !== position.x || caretY !== position.y);\n }\n}\nTooltip.positioners = positioners;\nvar plugin_tooltip = {\n id: 'tooltip',\n _element: Tooltip,\n positioners,\n afterInit(chart, _args, options) {\n if (options) {\n chart.tooltip = new Tooltip({chart, options});\n }\n },\n beforeUpdate(chart, _args, options) {\n if (chart.tooltip) {\n chart.tooltip.initialize(options);\n }\n },\n reset(chart, _args, options) {\n if (chart.tooltip) {\n chart.tooltip.initialize(options);\n }\n },\n afterDraw(chart) {\n const tooltip = chart.tooltip;\n if (tooltip && tooltip._willRender()) {\n const args = {\n tooltip\n };\n if (chart.notifyPlugins('beforeTooltipDraw', args) === false) {\n return;\n }\n tooltip.draw(chart.ctx);\n chart.notifyPlugins('afterTooltipDraw', args);\n }\n },\n afterEvent(chart, args) {\n if (chart.tooltip) {\n const useFinalPosition = args.replay;\n if (chart.tooltip.handleEvent(args.event, useFinalPosition, args.inChartArea)) {\n args.changed = true;\n }\n }\n },\n defaults: {\n enabled: true,\n external: null,\n position: 'average',\n backgroundColor: 'rgba(0,0,0,0.8)',\n titleColor: '#fff',\n titleFont: {\n weight: 'bold',\n },\n titleSpacing: 2,\n titleMarginBottom: 6,\n titleAlign: 'left',\n bodyColor: '#fff',\n bodySpacing: 2,\n bodyFont: {\n },\n bodyAlign: 'left',\n footerColor: '#fff',\n footerSpacing: 2,\n footerMarginTop: 6,\n footerFont: {\n weight: 'bold',\n },\n footerAlign: 'left',\n padding: 6,\n caretPadding: 2,\n caretSize: 5,\n cornerRadius: 6,\n boxHeight: (ctx, opts) => opts.bodyFont.size,\n boxWidth: (ctx, opts) => opts.bodyFont.size,\n multiKeyBackground: '#fff',\n displayColors: true,\n boxPadding: 0,\n borderColor: 'rgba(0,0,0,0)',\n borderWidth: 0,\n animation: {\n duration: 400,\n easing: 'easeOutQuart',\n },\n animations: {\n numbers: {\n type: 'number',\n properties: ['x', 'y', 'width', 'height', 'caretX', 'caretY'],\n },\n opacity: {\n easing: 'linear',\n duration: 200\n }\n },\n callbacks: {\n beforeTitle: noop,\n title(tooltipItems) {\n if (tooltipItems.length > 0) {\n const item = tooltipItems[0];\n const labels = item.chart.data.labels;\n const labelCount = labels ? labels.length : 0;\n if (this && this.options && this.options.mode === 'dataset') {\n return item.dataset.label || '';\n } else if (item.label) {\n return item.label;\n } else if (labelCount > 0 && item.dataIndex < labelCount) {\n return labels[item.dataIndex];\n }\n }\n return '';\n },\n afterTitle: noop,\n beforeBody: noop,\n beforeLabel: noop,\n label(tooltipItem) {\n if (this && this.options && this.options.mode === 'dataset') {\n return tooltipItem.label + ': ' + tooltipItem.formattedValue || tooltipItem.formattedValue;\n }\n let label = tooltipItem.dataset.label || '';\n if (label) {\n label += ': ';\n }\n const value = tooltipItem.formattedValue;\n if (!isNullOrUndef(value)) {\n label += value;\n }\n return label;\n },\n labelColor(tooltipItem) {\n const meta = tooltipItem.chart.getDatasetMeta(tooltipItem.datasetIndex);\n const options = meta.controller.getStyle(tooltipItem.dataIndex);\n return {\n borderColor: options.borderColor,\n backgroundColor: options.backgroundColor,\n borderWidth: options.borderWidth,\n borderDash: options.borderDash,\n borderDashOffset: options.borderDashOffset,\n borderRadius: 0,\n };\n },\n labelTextColor() {\n return this.options.bodyColor;\n },\n labelPointStyle(tooltipItem) {\n const meta = tooltipItem.chart.getDatasetMeta(tooltipItem.datasetIndex);\n const options = meta.controller.getStyle(tooltipItem.dataIndex);\n return {\n pointStyle: options.pointStyle,\n rotation: options.rotation,\n };\n },\n afterLabel: noop,\n afterBody: noop,\n beforeFooter: noop,\n footer: noop,\n afterFooter: noop\n }\n },\n defaultRoutes: {\n bodyFont: 'font',\n footerFont: 'font',\n titleFont: 'font'\n },\n descriptors: {\n _scriptable: (name) => name !== 'filter' && name !== 'itemSort' && name !== 'external',\n _indexable: false,\n callbacks: {\n _scriptable: false,\n _indexable: false,\n },\n animation: {\n _fallback: false\n },\n animations: {\n _fallback: 'animation'\n }\n },\n additionalOptionScopes: ['interaction']\n};\n\nvar plugins = /*#__PURE__*/Object.freeze({\n__proto__: null,\nDecimation: plugin_decimation,\nFiller: index,\nLegend: plugin_legend,\nSubTitle: plugin_subtitle,\nTitle: plugin_title,\nTooltip: plugin_tooltip\n});\n\nconst addIfString = (labels, raw, index, addedLabels) => {\n if (typeof raw === 'string') {\n index = labels.push(raw) - 1;\n addedLabels.unshift({index, label: raw});\n } else if (isNaN(raw)) {\n index = null;\n }\n return index;\n};\nfunction findOrAddLabel(labels, raw, index, addedLabels) {\n const first = labels.indexOf(raw);\n if (first === -1) {\n return addIfString(labels, raw, index, addedLabels);\n }\n const last = labels.lastIndexOf(raw);\n return first !== last ? index : first;\n}\nconst validIndex = (index, max) => index === null ? null : _limitValue(Math.round(index), 0, max);\nclass CategoryScale extends Scale {\n constructor(cfg) {\n super(cfg);\n this._startValue = undefined;\n this._valueRange = 0;\n this._addedLabels = [];\n }\n init(scaleOptions) {\n const added = this._addedLabels;\n if (added.length) {\n const labels = this.getLabels();\n for (const {index, label} of added) {\n if (labels[index] === label) {\n labels.splice(index, 1);\n }\n }\n this._addedLabels = [];\n }\n super.init(scaleOptions);\n }\n parse(raw, index) {\n if (isNullOrUndef(raw)) {\n return null;\n }\n const labels = this.getLabels();\n index = isFinite(index) && labels[index] === raw ? index\n : findOrAddLabel(labels, raw, valueOrDefault(index, raw), this._addedLabels);\n return validIndex(index, labels.length - 1);\n }\n determineDataLimits() {\n const {minDefined, maxDefined} = this.getUserBounds();\n let {min, max} = this.getMinMax(true);\n if (this.options.bounds === 'ticks') {\n if (!minDefined) {\n min = 0;\n }\n if (!maxDefined) {\n max = this.getLabels().length - 1;\n }\n }\n this.min = min;\n this.max = max;\n }\n buildTicks() {\n const min = this.min;\n const max = this.max;\n const offset = this.options.offset;\n const ticks = [];\n let labels = this.getLabels();\n labels = (min === 0 && max === labels.length - 1) ? labels : labels.slice(min, max + 1);\n this._valueRange = Math.max(labels.length - (offset ? 0 : 1), 1);\n this._startValue = this.min - (offset ? 0.5 : 0);\n for (let value = min; value <= max; value++) {\n ticks.push({value});\n }\n return ticks;\n }\n getLabelForValue(value) {\n const labels = this.getLabels();\n if (value >= 0 && value < labels.length) {\n return labels[value];\n }\n return value;\n }\n configure() {\n super.configure();\n if (!this.isHorizontal()) {\n this._reversePixels = !this._reversePixels;\n }\n }\n getPixelForValue(value) {\n if (typeof value !== 'number') {\n value = this.parse(value);\n }\n return value === null ? NaN : this.getPixelForDecimal((value - this._startValue) / this._valueRange);\n }\n getPixelForTick(index) {\n const ticks = this.ticks;\n if (index < 0 || index > ticks.length - 1) {\n return null;\n }\n return this.getPixelForValue(ticks[index].value);\n }\n getValueForPixel(pixel) {\n return Math.round(this._startValue + this.getDecimalForPixel(pixel) * this._valueRange);\n }\n getBasePixel() {\n return this.bottom;\n }\n}\nCategoryScale.id = 'category';\nCategoryScale.defaults = {\n ticks: {\n callback: CategoryScale.prototype.getLabelForValue\n }\n};\n\nfunction generateTicks$1(generationOptions, dataRange) {\n const ticks = [];\n const MIN_SPACING = 1e-14;\n const {bounds, step, min, max, precision, count, maxTicks, maxDigits, includeBounds} = generationOptions;\n const unit = step || 1;\n const maxSpaces = maxTicks - 1;\n const {min: rmin, max: rmax} = dataRange;\n const minDefined = !isNullOrUndef(min);\n const maxDefined = !isNullOrUndef(max);\n const countDefined = !isNullOrUndef(count);\n const minSpacing = (rmax - rmin) / (maxDigits + 1);\n let spacing = niceNum((rmax - rmin) / maxSpaces / unit) * unit;\n let factor, niceMin, niceMax, numSpaces;\n if (spacing < MIN_SPACING && !minDefined && !maxDefined) {\n return [{value: rmin}, {value: rmax}];\n }\n numSpaces = Math.ceil(rmax / spacing) - Math.floor(rmin / spacing);\n if (numSpaces > maxSpaces) {\n spacing = niceNum(numSpaces * spacing / maxSpaces / unit) * unit;\n }\n if (!isNullOrUndef(precision)) {\n factor = Math.pow(10, precision);\n spacing = Math.ceil(spacing * factor) / factor;\n }\n if (bounds === 'ticks') {\n niceMin = Math.floor(rmin / spacing) * spacing;\n niceMax = Math.ceil(rmax / spacing) * spacing;\n } else {\n niceMin = rmin;\n niceMax = rmax;\n }\n if (minDefined && maxDefined && step && almostWhole((max - min) / step, spacing / 1000)) {\n numSpaces = Math.round(Math.min((max - min) / spacing, maxTicks));\n spacing = (max - min) / numSpaces;\n niceMin = min;\n niceMax = max;\n } else if (countDefined) {\n niceMin = minDefined ? min : niceMin;\n niceMax = maxDefined ? max : niceMax;\n numSpaces = count - 1;\n spacing = (niceMax - niceMin) / numSpaces;\n } else {\n numSpaces = (niceMax - niceMin) / spacing;\n if (almostEquals(numSpaces, Math.round(numSpaces), spacing / 1000)) {\n numSpaces = Math.round(numSpaces);\n } else {\n numSpaces = Math.ceil(numSpaces);\n }\n }\n const decimalPlaces = Math.max(\n _decimalPlaces(spacing),\n _decimalPlaces(niceMin)\n );\n factor = Math.pow(10, isNullOrUndef(precision) ? decimalPlaces : precision);\n niceMin = Math.round(niceMin * factor) / factor;\n niceMax = Math.round(niceMax * factor) / factor;\n let j = 0;\n if (minDefined) {\n if (includeBounds && niceMin !== min) {\n ticks.push({value: min});\n if (niceMin < min) {\n j++;\n }\n if (almostEquals(Math.round((niceMin + j * spacing) * factor) / factor, min, relativeLabelSize(min, minSpacing, generationOptions))) {\n j++;\n }\n } else if (niceMin < min) {\n j++;\n }\n }\n for (; j < numSpaces; ++j) {\n ticks.push({value: Math.round((niceMin + j * spacing) * factor) / factor});\n }\n if (maxDefined && includeBounds && niceMax !== max) {\n if (ticks.length && almostEquals(ticks[ticks.length - 1].value, max, relativeLabelSize(max, minSpacing, generationOptions))) {\n ticks[ticks.length - 1].value = max;\n } else {\n ticks.push({value: max});\n }\n } else if (!maxDefined || niceMax === max) {\n ticks.push({value: niceMax});\n }\n return ticks;\n}\nfunction relativeLabelSize(value, minSpacing, {horizontal, minRotation}) {\n const rad = toRadians(minRotation);\n const ratio = (horizontal ? Math.sin(rad) : Math.cos(rad)) || 0.001;\n const length = 0.75 * minSpacing * ('' + value).length;\n return Math.min(minSpacing / ratio, length);\n}\nclass LinearScaleBase extends Scale {\n constructor(cfg) {\n super(cfg);\n this.start = undefined;\n this.end = undefined;\n this._startValue = undefined;\n this._endValue = undefined;\n this._valueRange = 0;\n }\n parse(raw, index) {\n if (isNullOrUndef(raw)) {\n return null;\n }\n if ((typeof raw === 'number' || raw instanceof Number) && !isFinite(+raw)) {\n return null;\n }\n return +raw;\n }\n handleTickRangeOptions() {\n const {beginAtZero} = this.options;\n const {minDefined, maxDefined} = this.getUserBounds();\n let {min, max} = this;\n const setMin = v => (min = minDefined ? min : v);\n const setMax = v => (max = maxDefined ? max : v);\n if (beginAtZero) {\n const minSign = sign(min);\n const maxSign = sign(max);\n if (minSign < 0 && maxSign < 0) {\n setMax(0);\n } else if (minSign > 0 && maxSign > 0) {\n setMin(0);\n }\n }\n if (min === max) {\n let offset = 1;\n if (max >= Number.MAX_SAFE_INTEGER || min <= Number.MIN_SAFE_INTEGER) {\n offset = Math.abs(max * 0.05);\n }\n setMax(max + offset);\n if (!beginAtZero) {\n setMin(min - offset);\n }\n }\n this.min = min;\n this.max = max;\n }\n getTickLimit() {\n const tickOpts = this.options.ticks;\n let {maxTicksLimit, stepSize} = tickOpts;\n let maxTicks;\n if (stepSize) {\n maxTicks = Math.ceil(this.max / stepSize) - Math.floor(this.min / stepSize) + 1;\n if (maxTicks > 1000) {\n console.warn(`scales.${this.id}.ticks.stepSize: ${stepSize} would result generating up to ${maxTicks} ticks. Limiting to 1000.`);\n maxTicks = 1000;\n }\n } else {\n maxTicks = this.computeTickLimit();\n maxTicksLimit = maxTicksLimit || 11;\n }\n if (maxTicksLimit) {\n maxTicks = Math.min(maxTicksLimit, maxTicks);\n }\n return maxTicks;\n }\n computeTickLimit() {\n return Number.POSITIVE_INFINITY;\n }\n buildTicks() {\n const opts = this.options;\n const tickOpts = opts.ticks;\n let maxTicks = this.getTickLimit();\n maxTicks = Math.max(2, maxTicks);\n const numericGeneratorOptions = {\n maxTicks,\n bounds: opts.bounds,\n min: opts.min,\n max: opts.max,\n precision: tickOpts.precision,\n step: tickOpts.stepSize,\n count: tickOpts.count,\n maxDigits: this._maxDigits(),\n horizontal: this.isHorizontal(),\n minRotation: tickOpts.minRotation || 0,\n includeBounds: tickOpts.includeBounds !== false\n };\n const dataRange = this._range || this;\n const ticks = generateTicks$1(numericGeneratorOptions, dataRange);\n if (opts.bounds === 'ticks') {\n _setMinAndMaxByKey(ticks, this, 'value');\n }\n if (opts.reverse) {\n ticks.reverse();\n this.start = this.max;\n this.end = this.min;\n } else {\n this.start = this.min;\n this.end = this.max;\n }\n return ticks;\n }\n configure() {\n const ticks = this.ticks;\n let start = this.min;\n let end = this.max;\n super.configure();\n if (this.options.offset && ticks.length) {\n const offset = (end - start) / Math.max(ticks.length - 1, 1) / 2;\n start -= offset;\n end += offset;\n }\n this._startValue = start;\n this._endValue = end;\n this._valueRange = end - start;\n }\n getLabelForValue(value) {\n return formatNumber(value, this.chart.options.locale, this.options.ticks.format);\n }\n}\n\nclass LinearScale extends LinearScaleBase {\n determineDataLimits() {\n const {min, max} = this.getMinMax(true);\n this.min = isNumberFinite(min) ? min : 0;\n this.max = isNumberFinite(max) ? max : 1;\n this.handleTickRangeOptions();\n }\n computeTickLimit() {\n const horizontal = this.isHorizontal();\n const length = horizontal ? this.width : this.height;\n const minRotation = toRadians(this.options.ticks.minRotation);\n const ratio = (horizontal ? Math.sin(minRotation) : Math.cos(minRotation)) || 0.001;\n const tickFont = this._resolveTickFontOptions(0);\n return Math.ceil(length / Math.min(40, tickFont.lineHeight / ratio));\n }\n getPixelForValue(value) {\n return value === null ? NaN : this.getPixelForDecimal((value - this._startValue) / this._valueRange);\n }\n getValueForPixel(pixel) {\n return this._startValue + this.getDecimalForPixel(pixel) * this._valueRange;\n }\n}\nLinearScale.id = 'linear';\nLinearScale.defaults = {\n ticks: {\n callback: Ticks.formatters.numeric\n }\n};\n\nfunction isMajor(tickVal) {\n const remain = tickVal / (Math.pow(10, Math.floor(log10(tickVal))));\n return remain === 1;\n}\nfunction generateTicks(generationOptions, dataRange) {\n const endExp = Math.floor(log10(dataRange.max));\n const endSignificand = Math.ceil(dataRange.max / Math.pow(10, endExp));\n const ticks = [];\n let tickVal = finiteOrDefault(generationOptions.min, Math.pow(10, Math.floor(log10(dataRange.min))));\n let exp = Math.floor(log10(tickVal));\n let significand = Math.floor(tickVal / Math.pow(10, exp));\n let precision = exp < 0 ? Math.pow(10, Math.abs(exp)) : 1;\n do {\n ticks.push({value: tickVal, major: isMajor(tickVal)});\n ++significand;\n if (significand === 10) {\n significand = 1;\n ++exp;\n precision = exp >= 0 ? 1 : precision;\n }\n tickVal = Math.round(significand * Math.pow(10, exp) * precision) / precision;\n } while (exp < endExp || (exp === endExp && significand < endSignificand));\n const lastTick = finiteOrDefault(generationOptions.max, tickVal);\n ticks.push({value: lastTick, major: isMajor(tickVal)});\n return ticks;\n}\nclass LogarithmicScale extends Scale {\n constructor(cfg) {\n super(cfg);\n this.start = undefined;\n this.end = undefined;\n this._startValue = undefined;\n this._valueRange = 0;\n }\n parse(raw, index) {\n const value = LinearScaleBase.prototype.parse.apply(this, [raw, index]);\n if (value === 0) {\n this._zero = true;\n return undefined;\n }\n return isNumberFinite(value) && value > 0 ? value : null;\n }\n determineDataLimits() {\n const {min, max} = this.getMinMax(true);\n this.min = isNumberFinite(min) ? Math.max(0, min) : null;\n this.max = isNumberFinite(max) ? Math.max(0, max) : null;\n if (this.options.beginAtZero) {\n this._zero = true;\n }\n this.handleTickRangeOptions();\n }\n handleTickRangeOptions() {\n const {minDefined, maxDefined} = this.getUserBounds();\n let min = this.min;\n let max = this.max;\n const setMin = v => (min = minDefined ? min : v);\n const setMax = v => (max = maxDefined ? max : v);\n const exp = (v, m) => Math.pow(10, Math.floor(log10(v)) + m);\n if (min === max) {\n if (min <= 0) {\n setMin(1);\n setMax(10);\n } else {\n setMin(exp(min, -1));\n setMax(exp(max, +1));\n }\n }\n if (min <= 0) {\n setMin(exp(max, -1));\n }\n if (max <= 0) {\n setMax(exp(min, +1));\n }\n if (this._zero && this.min !== this._suggestedMin && min === exp(this.min, 0)) {\n setMin(exp(min, -1));\n }\n this.min = min;\n this.max = max;\n }\n buildTicks() {\n const opts = this.options;\n const generationOptions = {\n min: this._userMin,\n max: this._userMax\n };\n const ticks = generateTicks(generationOptions, this);\n if (opts.bounds === 'ticks') {\n _setMinAndMaxByKey(ticks, this, 'value');\n }\n if (opts.reverse) {\n ticks.reverse();\n this.start = this.max;\n this.end = this.min;\n } else {\n this.start = this.min;\n this.end = this.max;\n }\n return ticks;\n }\n getLabelForValue(value) {\n return value === undefined\n ? '0'\n : formatNumber(value, this.chart.options.locale, this.options.ticks.format);\n }\n configure() {\n const start = this.min;\n super.configure();\n this._startValue = log10(start);\n this._valueRange = log10(this.max) - log10(start);\n }\n getPixelForValue(value) {\n if (value === undefined || value === 0) {\n value = this.min;\n }\n if (value === null || isNaN(value)) {\n return NaN;\n }\n return this.getPixelForDecimal(value === this.min\n ? 0\n : (log10(value) - this._startValue) / this._valueRange);\n }\n getValueForPixel(pixel) {\n const decimal = this.getDecimalForPixel(pixel);\n return Math.pow(10, this._startValue + decimal * this._valueRange);\n }\n}\nLogarithmicScale.id = 'logarithmic';\nLogarithmicScale.defaults = {\n ticks: {\n callback: Ticks.formatters.logarithmic,\n major: {\n enabled: true\n }\n }\n};\n\nfunction getTickBackdropHeight(opts) {\n const tickOpts = opts.ticks;\n if (tickOpts.display && opts.display) {\n const padding = toPadding(tickOpts.backdropPadding);\n return valueOrDefault(tickOpts.font && tickOpts.font.size, defaults.font.size) + padding.height;\n }\n return 0;\n}\nfunction measureLabelSize(ctx, font, label) {\n label = isArray(label) ? label : [label];\n return {\n w: _longestText(ctx, font.string, label),\n h: label.length * font.lineHeight\n };\n}\nfunction determineLimits(angle, pos, size, min, max) {\n if (angle === min || angle === max) {\n return {\n start: pos - (size / 2),\n end: pos + (size / 2)\n };\n } else if (angle < min || angle > max) {\n return {\n start: pos - size,\n end: pos\n };\n }\n return {\n start: pos,\n end: pos + size\n };\n}\nfunction fitWithPointLabels(scale) {\n const orig = {\n l: scale.left + scale._padding.left,\n r: scale.right - scale._padding.right,\n t: scale.top + scale._padding.top,\n b: scale.bottom - scale._padding.bottom\n };\n const limits = Object.assign({}, orig);\n const labelSizes = [];\n const padding = [];\n const valueCount = scale._pointLabels.length;\n const pointLabelOpts = scale.options.pointLabels;\n const additionalAngle = pointLabelOpts.centerPointLabels ? PI / valueCount : 0;\n for (let i = 0; i < valueCount; i++) {\n const opts = pointLabelOpts.setContext(scale.getPointLabelContext(i));\n padding[i] = opts.padding;\n const pointPosition = scale.getPointPosition(i, scale.drawingArea + padding[i], additionalAngle);\n const plFont = toFont(opts.font);\n const textSize = measureLabelSize(scale.ctx, plFont, scale._pointLabels[i]);\n labelSizes[i] = textSize;\n const angleRadians = _normalizeAngle(scale.getIndexAngle(i) + additionalAngle);\n const angle = Math.round(toDegrees(angleRadians));\n const hLimits = determineLimits(angle, pointPosition.x, textSize.w, 0, 180);\n const vLimits = determineLimits(angle, pointPosition.y, textSize.h, 90, 270);\n updateLimits(limits, orig, angleRadians, hLimits, vLimits);\n }\n scale.setCenterPoint(\n orig.l - limits.l,\n limits.r - orig.r,\n orig.t - limits.t,\n limits.b - orig.b\n );\n scale._pointLabelItems = buildPointLabelItems(scale, labelSizes, padding);\n}\nfunction updateLimits(limits, orig, angle, hLimits, vLimits) {\n const sin = Math.abs(Math.sin(angle));\n const cos = Math.abs(Math.cos(angle));\n let x = 0;\n let y = 0;\n if (hLimits.start < orig.l) {\n x = (orig.l - hLimits.start) / sin;\n limits.l = Math.min(limits.l, orig.l - x);\n } else if (hLimits.end > orig.r) {\n x = (hLimits.end - orig.r) / sin;\n limits.r = Math.max(limits.r, orig.r + x);\n }\n if (vLimits.start < orig.t) {\n y = (orig.t - vLimits.start) / cos;\n limits.t = Math.min(limits.t, orig.t - y);\n } else if (vLimits.end > orig.b) {\n y = (vLimits.end - orig.b) / cos;\n limits.b = Math.max(limits.b, orig.b + y);\n }\n}\nfunction buildPointLabelItems(scale, labelSizes, padding) {\n const items = [];\n const valueCount = scale._pointLabels.length;\n const opts = scale.options;\n const extra = getTickBackdropHeight(opts) / 2;\n const outerDistance = scale.drawingArea;\n const additionalAngle = opts.pointLabels.centerPointLabels ? PI / valueCount : 0;\n for (let i = 0; i < valueCount; i++) {\n const pointLabelPosition = scale.getPointPosition(i, outerDistance + extra + padding[i], additionalAngle);\n const angle = Math.round(toDegrees(_normalizeAngle(pointLabelPosition.angle + HALF_PI)));\n const size = labelSizes[i];\n const y = yForAngle(pointLabelPosition.y, size.h, angle);\n const textAlign = getTextAlignForAngle(angle);\n const left = leftForTextAlign(pointLabelPosition.x, size.w, textAlign);\n items.push({\n x: pointLabelPosition.x,\n y,\n textAlign,\n left,\n top: y,\n right: left + size.w,\n bottom: y + size.h\n });\n }\n return items;\n}\nfunction getTextAlignForAngle(angle) {\n if (angle === 0 || angle === 180) {\n return 'center';\n } else if (angle < 180) {\n return 'left';\n }\n return 'right';\n}\nfunction leftForTextAlign(x, w, align) {\n if (align === 'right') {\n x -= w;\n } else if (align === 'center') {\n x -= (w / 2);\n }\n return x;\n}\nfunction yForAngle(y, h, angle) {\n if (angle === 90 || angle === 270) {\n y -= (h / 2);\n } else if (angle > 270 || angle < 90) {\n y -= h;\n }\n return y;\n}\nfunction drawPointLabels(scale, labelCount) {\n const {ctx, options: {pointLabels}} = scale;\n for (let i = labelCount - 1; i >= 0; i--) {\n const optsAtIndex = pointLabels.setContext(scale.getPointLabelContext(i));\n const plFont = toFont(optsAtIndex.font);\n const {x, y, textAlign, left, top, right, bottom} = scale._pointLabelItems[i];\n const {backdropColor} = optsAtIndex;\n if (!isNullOrUndef(backdropColor)) {\n const borderRadius = toTRBLCorners(optsAtIndex.borderRadius);\n const padding = toPadding(optsAtIndex.backdropPadding);\n ctx.fillStyle = backdropColor;\n const backdropLeft = left - padding.left;\n const backdropTop = top - padding.top;\n const backdropWidth = right - left + padding.width;\n const backdropHeight = bottom - top + padding.height;\n if (Object.values(borderRadius).some(v => v !== 0)) {\n ctx.beginPath();\n addRoundedRectPath(ctx, {\n x: backdropLeft,\n y: backdropTop,\n w: backdropWidth,\n h: backdropHeight,\n radius: borderRadius,\n });\n ctx.fill();\n } else {\n ctx.fillRect(backdropLeft, backdropTop, backdropWidth, backdropHeight);\n }\n }\n renderText(\n ctx,\n scale._pointLabels[i],\n x,\n y + (plFont.lineHeight / 2),\n plFont,\n {\n color: optsAtIndex.color,\n textAlign: textAlign,\n textBaseline: 'middle'\n }\n );\n }\n}\nfunction pathRadiusLine(scale, radius, circular, labelCount) {\n const {ctx} = scale;\n if (circular) {\n ctx.arc(scale.xCenter, scale.yCenter, radius, 0, TAU);\n } else {\n let pointPosition = scale.getPointPosition(0, radius);\n ctx.moveTo(pointPosition.x, pointPosition.y);\n for (let i = 1; i < labelCount; i++) {\n pointPosition = scale.getPointPosition(i, radius);\n ctx.lineTo(pointPosition.x, pointPosition.y);\n }\n }\n}\nfunction drawRadiusLine(scale, gridLineOpts, radius, labelCount) {\n const ctx = scale.ctx;\n const circular = gridLineOpts.circular;\n const {color, lineWidth} = gridLineOpts;\n if ((!circular && !labelCount) || !color || !lineWidth || radius < 0) {\n return;\n }\n ctx.save();\n ctx.strokeStyle = color;\n ctx.lineWidth = lineWidth;\n ctx.setLineDash(gridLineOpts.borderDash);\n ctx.lineDashOffset = gridLineOpts.borderDashOffset;\n ctx.beginPath();\n pathRadiusLine(scale, radius, circular, labelCount);\n ctx.closePath();\n ctx.stroke();\n ctx.restore();\n}\nfunction createPointLabelContext(parent, index, label) {\n return createContext(parent, {\n label,\n index,\n type: 'pointLabel'\n });\n}\nclass RadialLinearScale extends LinearScaleBase {\n constructor(cfg) {\n super(cfg);\n this.xCenter = undefined;\n this.yCenter = undefined;\n this.drawingArea = undefined;\n this._pointLabels = [];\n this._pointLabelItems = [];\n }\n setDimensions() {\n const padding = this._padding = toPadding(getTickBackdropHeight(this.options) / 2);\n const w = this.width = this.maxWidth - padding.width;\n const h = this.height = this.maxHeight - padding.height;\n this.xCenter = Math.floor(this.left + w / 2 + padding.left);\n this.yCenter = Math.floor(this.top + h / 2 + padding.top);\n this.drawingArea = Math.floor(Math.min(w, h) / 2);\n }\n determineDataLimits() {\n const {min, max} = this.getMinMax(false);\n this.min = isNumberFinite(min) && !isNaN(min) ? min : 0;\n this.max = isNumberFinite(max) && !isNaN(max) ? max : 0;\n this.handleTickRangeOptions();\n }\n computeTickLimit() {\n return Math.ceil(this.drawingArea / getTickBackdropHeight(this.options));\n }\n generateTickLabels(ticks) {\n LinearScaleBase.prototype.generateTickLabels.call(this, ticks);\n this._pointLabels = this.getLabels()\n .map((value, index) => {\n const label = callback(this.options.pointLabels.callback, [value, index], this);\n return label || label === 0 ? label : '';\n })\n .filter((v, i) => this.chart.getDataVisibility(i));\n }\n fit() {\n const opts = this.options;\n if (opts.display && opts.pointLabels.display) {\n fitWithPointLabels(this);\n } else {\n this.setCenterPoint(0, 0, 0, 0);\n }\n }\n setCenterPoint(leftMovement, rightMovement, topMovement, bottomMovement) {\n this.xCenter += Math.floor((leftMovement - rightMovement) / 2);\n this.yCenter += Math.floor((topMovement - bottomMovement) / 2);\n this.drawingArea -= Math.min(this.drawingArea / 2, Math.max(leftMovement, rightMovement, topMovement, bottomMovement));\n }\n getIndexAngle(index) {\n const angleMultiplier = TAU / (this._pointLabels.length || 1);\n const startAngle = this.options.startAngle || 0;\n return _normalizeAngle(index * angleMultiplier + toRadians(startAngle));\n }\n getDistanceFromCenterForValue(value) {\n if (isNullOrUndef(value)) {\n return NaN;\n }\n const scalingFactor = this.drawingArea / (this.max - this.min);\n if (this.options.reverse) {\n return (this.max - value) * scalingFactor;\n }\n return (value - this.min) * scalingFactor;\n }\n getValueForDistanceFromCenter(distance) {\n if (isNullOrUndef(distance)) {\n return NaN;\n }\n const scaledDistance = distance / (this.drawingArea / (this.max - this.min));\n return this.options.reverse ? this.max - scaledDistance : this.min + scaledDistance;\n }\n getPointLabelContext(index) {\n const pointLabels = this._pointLabels || [];\n if (index >= 0 && index < pointLabels.length) {\n const pointLabel = pointLabels[index];\n return createPointLabelContext(this.getContext(), index, pointLabel);\n }\n }\n getPointPosition(index, distanceFromCenter, additionalAngle = 0) {\n const angle = this.getIndexAngle(index) - HALF_PI + additionalAngle;\n return {\n x: Math.cos(angle) * distanceFromCenter + this.xCenter,\n y: Math.sin(angle) * distanceFromCenter + this.yCenter,\n angle\n };\n }\n getPointPositionForValue(index, value) {\n return this.getPointPosition(index, this.getDistanceFromCenterForValue(value));\n }\n getBasePosition(index) {\n return this.getPointPositionForValue(index || 0, this.getBaseValue());\n }\n getPointLabelPosition(index) {\n const {left, top, right, bottom} = this._pointLabelItems[index];\n return {\n left,\n top,\n right,\n bottom,\n };\n }\n drawBackground() {\n const {backgroundColor, grid: {circular}} = this.options;\n if (backgroundColor) {\n const ctx = this.ctx;\n ctx.save();\n ctx.beginPath();\n pathRadiusLine(this, this.getDistanceFromCenterForValue(this._endValue), circular, this._pointLabels.length);\n ctx.closePath();\n ctx.fillStyle = backgroundColor;\n ctx.fill();\n ctx.restore();\n }\n }\n drawGrid() {\n const ctx = this.ctx;\n const opts = this.options;\n const {angleLines, grid} = opts;\n const labelCount = this._pointLabels.length;\n let i, offset, position;\n if (opts.pointLabels.display) {\n drawPointLabels(this, labelCount);\n }\n if (grid.display) {\n this.ticks.forEach((tick, index) => {\n if (index !== 0) {\n offset = this.getDistanceFromCenterForValue(tick.value);\n const optsAtIndex = grid.setContext(this.getContext(index - 1));\n drawRadiusLine(this, optsAtIndex, offset, labelCount);\n }\n });\n }\n if (angleLines.display) {\n ctx.save();\n for (i = labelCount - 1; i >= 0; i--) {\n const optsAtIndex = angleLines.setContext(this.getPointLabelContext(i));\n const {color, lineWidth} = optsAtIndex;\n if (!lineWidth || !color) {\n continue;\n }\n ctx.lineWidth = lineWidth;\n ctx.strokeStyle = color;\n ctx.setLineDash(optsAtIndex.borderDash);\n ctx.lineDashOffset = optsAtIndex.borderDashOffset;\n offset = this.getDistanceFromCenterForValue(opts.ticks.reverse ? this.min : this.max);\n position = this.getPointPosition(i, offset);\n ctx.beginPath();\n ctx.moveTo(this.xCenter, this.yCenter);\n ctx.lineTo(position.x, position.y);\n ctx.stroke();\n }\n ctx.restore();\n }\n }\n drawBorder() {}\n drawLabels() {\n const ctx = this.ctx;\n const opts = this.options;\n const tickOpts = opts.ticks;\n if (!tickOpts.display) {\n return;\n }\n const startAngle = this.getIndexAngle(0);\n let offset, width;\n ctx.save();\n ctx.translate(this.xCenter, this.yCenter);\n ctx.rotate(startAngle);\n ctx.textAlign = 'center';\n ctx.textBaseline = 'middle';\n this.ticks.forEach((tick, index) => {\n if (index === 0 && !opts.reverse) {\n return;\n }\n const optsAtIndex = tickOpts.setContext(this.getContext(index));\n const tickFont = toFont(optsAtIndex.font);\n offset = this.getDistanceFromCenterForValue(this.ticks[index].value);\n if (optsAtIndex.showLabelBackdrop) {\n ctx.font = tickFont.string;\n width = ctx.measureText(tick.label).width;\n ctx.fillStyle = optsAtIndex.backdropColor;\n const padding = toPadding(optsAtIndex.backdropPadding);\n ctx.fillRect(\n -width / 2 - padding.left,\n -offset - tickFont.size / 2 - padding.top,\n width + padding.width,\n tickFont.size + padding.height\n );\n }\n renderText(ctx, tick.label, 0, -offset, tickFont, {\n color: optsAtIndex.color,\n });\n });\n ctx.restore();\n }\n drawTitle() {}\n}\nRadialLinearScale.id = 'radialLinear';\nRadialLinearScale.defaults = {\n display: true,\n animate: true,\n position: 'chartArea',\n angleLines: {\n display: true,\n lineWidth: 1,\n borderDash: [],\n borderDashOffset: 0.0\n },\n grid: {\n circular: false\n },\n startAngle: 0,\n ticks: {\n showLabelBackdrop: true,\n callback: Ticks.formatters.numeric\n },\n pointLabels: {\n backdropColor: undefined,\n backdropPadding: 2,\n display: true,\n font: {\n size: 10\n },\n callback(label) {\n return label;\n },\n padding: 5,\n centerPointLabels: false\n }\n};\nRadialLinearScale.defaultRoutes = {\n 'angleLines.color': 'borderColor',\n 'pointLabels.color': 'color',\n 'ticks.color': 'color'\n};\nRadialLinearScale.descriptors = {\n angleLines: {\n _fallback: 'grid'\n }\n};\n\nconst INTERVALS = {\n millisecond: {common: true, size: 1, steps: 1000},\n second: {common: true, size: 1000, steps: 60},\n minute: {common: true, size: 60000, steps: 60},\n hour: {common: true, size: 3600000, steps: 24},\n day: {common: true, size: 86400000, steps: 30},\n week: {common: false, size: 604800000, steps: 4},\n month: {common: true, size: 2.628e9, steps: 12},\n quarter: {common: false, size: 7.884e9, steps: 4},\n year: {common: true, size: 3.154e10}\n};\nconst UNITS = (Object.keys(INTERVALS));\nfunction sorter(a, b) {\n return a - b;\n}\nfunction parse(scale, input) {\n if (isNullOrUndef(input)) {\n return null;\n }\n const adapter = scale._adapter;\n const {parser, round, isoWeekday} = scale._parseOpts;\n let value = input;\n if (typeof parser === 'function') {\n value = parser(value);\n }\n if (!isNumberFinite(value)) {\n value = typeof parser === 'string'\n ? adapter.parse(value, parser)\n : adapter.parse(value);\n }\n if (value === null) {\n return null;\n }\n if (round) {\n value = round === 'week' && (isNumber(isoWeekday) || isoWeekday === true)\n ? adapter.startOf(value, 'isoWeek', isoWeekday)\n : adapter.startOf(value, round);\n }\n return +value;\n}\nfunction determineUnitForAutoTicks(minUnit, min, max, capacity) {\n const ilen = UNITS.length;\n for (let i = UNITS.indexOf(minUnit); i < ilen - 1; ++i) {\n const interval = INTERVALS[UNITS[i]];\n const factor = interval.steps ? interval.steps : Number.MAX_SAFE_INTEGER;\n if (interval.common && Math.ceil((max - min) / (factor * interval.size)) <= capacity) {\n return UNITS[i];\n }\n }\n return UNITS[ilen - 1];\n}\nfunction determineUnitForFormatting(scale, numTicks, minUnit, min, max) {\n for (let i = UNITS.length - 1; i >= UNITS.indexOf(minUnit); i--) {\n const unit = UNITS[i];\n if (INTERVALS[unit].common && scale._adapter.diff(max, min, unit) >= numTicks - 1) {\n return unit;\n }\n }\n return UNITS[minUnit ? UNITS.indexOf(minUnit) : 0];\n}\nfunction determineMajorUnit(unit) {\n for (let i = UNITS.indexOf(unit) + 1, ilen = UNITS.length; i < ilen; ++i) {\n if (INTERVALS[UNITS[i]].common) {\n return UNITS[i];\n }\n }\n}\nfunction addTick(ticks, time, timestamps) {\n if (!timestamps) {\n ticks[time] = true;\n } else if (timestamps.length) {\n const {lo, hi} = _lookup(timestamps, time);\n const timestamp = timestamps[lo] >= time ? timestamps[lo] : timestamps[hi];\n ticks[timestamp] = true;\n }\n}\nfunction setMajorTicks(scale, ticks, map, majorUnit) {\n const adapter = scale._adapter;\n const first = +adapter.startOf(ticks[0].value, majorUnit);\n const last = ticks[ticks.length - 1].value;\n let major, index;\n for (major = first; major <= last; major = +adapter.add(major, 1, majorUnit)) {\n index = map[major];\n if (index >= 0) {\n ticks[index].major = true;\n }\n }\n return ticks;\n}\nfunction ticksFromTimestamps(scale, values, majorUnit) {\n const ticks = [];\n const map = {};\n const ilen = values.length;\n let i, value;\n for (i = 0; i < ilen; ++i) {\n value = values[i];\n map[value] = i;\n ticks.push({\n value,\n major: false\n });\n }\n return (ilen === 0 || !majorUnit) ? ticks : setMajorTicks(scale, ticks, map, majorUnit);\n}\nclass TimeScale extends Scale {\n constructor(props) {\n super(props);\n this._cache = {\n data: [],\n labels: [],\n all: []\n };\n this._unit = 'day';\n this._majorUnit = undefined;\n this._offsets = {};\n this._normalized = false;\n this._parseOpts = undefined;\n }\n init(scaleOpts, opts) {\n const time = scaleOpts.time || (scaleOpts.time = {});\n const adapter = this._adapter = new adapters._date(scaleOpts.adapters.date);\n adapter.init(opts);\n mergeIf(time.displayFormats, adapter.formats());\n this._parseOpts = {\n parser: time.parser,\n round: time.round,\n isoWeekday: time.isoWeekday\n };\n super.init(scaleOpts);\n this._normalized = opts.normalized;\n }\n parse(raw, index) {\n if (raw === undefined) {\n return null;\n }\n return parse(this, raw);\n }\n beforeLayout() {\n super.beforeLayout();\n this._cache = {\n data: [],\n labels: [],\n all: []\n };\n }\n determineDataLimits() {\n const options = this.options;\n const adapter = this._adapter;\n const unit = options.time.unit || 'day';\n let {min, max, minDefined, maxDefined} = this.getUserBounds();\n function _applyBounds(bounds) {\n if (!minDefined && !isNaN(bounds.min)) {\n min = Math.min(min, bounds.min);\n }\n if (!maxDefined && !isNaN(bounds.max)) {\n max = Math.max(max, bounds.max);\n }\n }\n if (!minDefined || !maxDefined) {\n _applyBounds(this._getLabelBounds());\n if (options.bounds !== 'ticks' || options.ticks.source !== 'labels') {\n _applyBounds(this.getMinMax(false));\n }\n }\n min = isNumberFinite(min) && !isNaN(min) ? min : +adapter.startOf(Date.now(), unit);\n max = isNumberFinite(max) && !isNaN(max) ? max : +adapter.endOf(Date.now(), unit) + 1;\n this.min = Math.min(min, max - 1);\n this.max = Math.max(min + 1, max);\n }\n _getLabelBounds() {\n const arr = this.getLabelTimestamps();\n let min = Number.POSITIVE_INFINITY;\n let max = Number.NEGATIVE_INFINITY;\n if (arr.length) {\n min = arr[0];\n max = arr[arr.length - 1];\n }\n return {min, max};\n }\n buildTicks() {\n const options = this.options;\n const timeOpts = options.time;\n const tickOpts = options.ticks;\n const timestamps = tickOpts.source === 'labels' ? this.getLabelTimestamps() : this._generate();\n if (options.bounds === 'ticks' && timestamps.length) {\n this.min = this._userMin || timestamps[0];\n this.max = this._userMax || timestamps[timestamps.length - 1];\n }\n const min = this.min;\n const max = this.max;\n const ticks = _filterBetween(timestamps, min, max);\n this._unit = timeOpts.unit || (tickOpts.autoSkip\n ? determineUnitForAutoTicks(timeOpts.minUnit, this.min, this.max, this._getLabelCapacity(min))\n : determineUnitForFormatting(this, ticks.length, timeOpts.minUnit, this.min, this.max));\n this._majorUnit = !tickOpts.major.enabled || this._unit === 'year' ? undefined\n : determineMajorUnit(this._unit);\n this.initOffsets(timestamps);\n if (options.reverse) {\n ticks.reverse();\n }\n return ticksFromTimestamps(this, ticks, this._majorUnit);\n }\n afterAutoSkip() {\n if (this.options.offsetAfterAutoskip) {\n this.initOffsets(this.ticks.map(tick => +tick.value));\n }\n }\n initOffsets(timestamps) {\n let start = 0;\n let end = 0;\n let first, last;\n if (this.options.offset && timestamps.length) {\n first = this.getDecimalForValue(timestamps[0]);\n if (timestamps.length === 1) {\n start = 1 - first;\n } else {\n start = (this.getDecimalForValue(timestamps[1]) - first) / 2;\n }\n last = this.getDecimalForValue(timestamps[timestamps.length - 1]);\n if (timestamps.length === 1) {\n end = last;\n } else {\n end = (last - this.getDecimalForValue(timestamps[timestamps.length - 2])) / 2;\n }\n }\n const limit = timestamps.length < 3 ? 0.5 : 0.25;\n start = _limitValue(start, 0, limit);\n end = _limitValue(end, 0, limit);\n this._offsets = {start, end, factor: 1 / (start + 1 + end)};\n }\n _generate() {\n const adapter = this._adapter;\n const min = this.min;\n const max = this.max;\n const options = this.options;\n const timeOpts = options.time;\n const minor = timeOpts.unit || determineUnitForAutoTicks(timeOpts.minUnit, min, max, this._getLabelCapacity(min));\n const stepSize = valueOrDefault(timeOpts.stepSize, 1);\n const weekday = minor === 'week' ? timeOpts.isoWeekday : false;\n const hasWeekday = isNumber(weekday) || weekday === true;\n const ticks = {};\n let first = min;\n let time, count;\n if (hasWeekday) {\n first = +adapter.startOf(first, 'isoWeek', weekday);\n }\n first = +adapter.startOf(first, hasWeekday ? 'day' : minor);\n if (adapter.diff(max, min, minor) > 100000 * stepSize) {\n throw new Error(min + ' and ' + max + ' are too far apart with stepSize of ' + stepSize + ' ' + minor);\n }\n const timestamps = options.ticks.source === 'data' && this.getDataTimestamps();\n for (time = first, count = 0; time < max; time = +adapter.add(time, stepSize, minor), count++) {\n addTick(ticks, time, timestamps);\n }\n if (time === max || options.bounds === 'ticks' || count === 1) {\n addTick(ticks, time, timestamps);\n }\n return Object.keys(ticks).sort((a, b) => a - b).map(x => +x);\n }\n getLabelForValue(value) {\n const adapter = this._adapter;\n const timeOpts = this.options.time;\n if (timeOpts.tooltipFormat) {\n return adapter.format(value, timeOpts.tooltipFormat);\n }\n return adapter.format(value, timeOpts.displayFormats.datetime);\n }\n _tickFormatFunction(time, index, ticks, format) {\n const options = this.options;\n const formats = options.time.displayFormats;\n const unit = this._unit;\n const majorUnit = this._majorUnit;\n const minorFormat = unit && formats[unit];\n const majorFormat = majorUnit && formats[majorUnit];\n const tick = ticks[index];\n const major = majorUnit && majorFormat && tick && tick.major;\n const label = this._adapter.format(time, format || (major ? majorFormat : minorFormat));\n const formatter = options.ticks.callback;\n return formatter ? callback(formatter, [label, index, ticks], this) : label;\n }\n generateTickLabels(ticks) {\n let i, ilen, tick;\n for (i = 0, ilen = ticks.length; i < ilen; ++i) {\n tick = ticks[i];\n tick.label = this._tickFormatFunction(tick.value, i, ticks);\n }\n }\n getDecimalForValue(value) {\n return value === null ? NaN : (value - this.min) / (this.max - this.min);\n }\n getPixelForValue(value) {\n const offsets = this._offsets;\n const pos = this.getDecimalForValue(value);\n return this.getPixelForDecimal((offsets.start + pos) * offsets.factor);\n }\n getValueForPixel(pixel) {\n const offsets = this._offsets;\n const pos = this.getDecimalForPixel(pixel) / offsets.factor - offsets.end;\n return this.min + pos * (this.max - this.min);\n }\n _getLabelSize(label) {\n const ticksOpts = this.options.ticks;\n const tickLabelWidth = this.ctx.measureText(label).width;\n const angle = toRadians(this.isHorizontal() ? ticksOpts.maxRotation : ticksOpts.minRotation);\n const cosRotation = Math.cos(angle);\n const sinRotation = Math.sin(angle);\n const tickFontSize = this._resolveTickFontOptions(0).size;\n return {\n w: (tickLabelWidth * cosRotation) + (tickFontSize * sinRotation),\n h: (tickLabelWidth * sinRotation) + (tickFontSize * cosRotation)\n };\n }\n _getLabelCapacity(exampleTime) {\n const timeOpts = this.options.time;\n const displayFormats = timeOpts.displayFormats;\n const format = displayFormats[timeOpts.unit] || displayFormats.millisecond;\n const exampleLabel = this._tickFormatFunction(exampleTime, 0, ticksFromTimestamps(this, [exampleTime], this._majorUnit), format);\n const size = this._getLabelSize(exampleLabel);\n const capacity = Math.floor(this.isHorizontal() ? this.width / size.w : this.height / size.h) - 1;\n return capacity > 0 ? capacity : 1;\n }\n getDataTimestamps() {\n let timestamps = this._cache.data || [];\n let i, ilen;\n if (timestamps.length) {\n return timestamps;\n }\n const metas = this.getMatchingVisibleMetas();\n if (this._normalized && metas.length) {\n return (this._cache.data = metas[0].controller.getAllParsedValues(this));\n }\n for (i = 0, ilen = metas.length; i < ilen; ++i) {\n timestamps = timestamps.concat(metas[i].controller.getAllParsedValues(this));\n }\n return (this._cache.data = this.normalize(timestamps));\n }\n getLabelTimestamps() {\n const timestamps = this._cache.labels || [];\n let i, ilen;\n if (timestamps.length) {\n return timestamps;\n }\n const labels = this.getLabels();\n for (i = 0, ilen = labels.length; i < ilen; ++i) {\n timestamps.push(parse(this, labels[i]));\n }\n return (this._cache.labels = this._normalized ? timestamps : this.normalize(timestamps));\n }\n normalize(values) {\n return _arrayUnique(values.sort(sorter));\n }\n}\nTimeScale.id = 'time';\nTimeScale.defaults = {\n bounds: 'data',\n adapters: {},\n time: {\n parser: false,\n unit: false,\n round: false,\n isoWeekday: false,\n minUnit: 'millisecond',\n displayFormats: {}\n },\n ticks: {\n source: 'auto',\n major: {\n enabled: false\n }\n }\n};\n\nfunction interpolate(table, val, reverse) {\n let lo = 0;\n let hi = table.length - 1;\n let prevSource, nextSource, prevTarget, nextTarget;\n if (reverse) {\n if (val >= table[lo].pos && val <= table[hi].pos) {\n ({lo, hi} = _lookupByKey(table, 'pos', val));\n }\n ({pos: prevSource, time: prevTarget} = table[lo]);\n ({pos: nextSource, time: nextTarget} = table[hi]);\n } else {\n if (val >= table[lo].time && val <= table[hi].time) {\n ({lo, hi} = _lookupByKey(table, 'time', val));\n }\n ({time: prevSource, pos: prevTarget} = table[lo]);\n ({time: nextSource, pos: nextTarget} = table[hi]);\n }\n const span = nextSource - prevSource;\n return span ? prevTarget + (nextTarget - prevTarget) * (val - prevSource) / span : prevTarget;\n}\nclass TimeSeriesScale extends TimeScale {\n constructor(props) {\n super(props);\n this._table = [];\n this._minPos = undefined;\n this._tableRange = undefined;\n }\n initOffsets() {\n const timestamps = this._getTimestampsForTable();\n const table = this._table = this.buildLookupTable(timestamps);\n this._minPos = interpolate(table, this.min);\n this._tableRange = interpolate(table, this.max) - this._minPos;\n super.initOffsets(timestamps);\n }\n buildLookupTable(timestamps) {\n const {min, max} = this;\n const items = [];\n const table = [];\n let i, ilen, prev, curr, next;\n for (i = 0, ilen = timestamps.length; i < ilen; ++i) {\n curr = timestamps[i];\n if (curr >= min && curr <= max) {\n items.push(curr);\n }\n }\n if (items.length < 2) {\n return [\n {time: min, pos: 0},\n {time: max, pos: 1}\n ];\n }\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n next = items[i + 1];\n prev = items[i - 1];\n curr = items[i];\n if (Math.round((next + prev) / 2) !== curr) {\n table.push({time: curr, pos: i / (ilen - 1)});\n }\n }\n return table;\n }\n _getTimestampsForTable() {\n let timestamps = this._cache.all || [];\n if (timestamps.length) {\n return timestamps;\n }\n const data = this.getDataTimestamps();\n const label = this.getLabelTimestamps();\n if (data.length && label.length) {\n timestamps = this.normalize(data.concat(label));\n } else {\n timestamps = data.length ? data : label;\n }\n timestamps = this._cache.all = timestamps;\n return timestamps;\n }\n getDecimalForValue(value) {\n return (interpolate(this._table, value) - this._minPos) / this._tableRange;\n }\n getValueForPixel(pixel) {\n const offsets = this._offsets;\n const decimal = this.getDecimalForPixel(pixel) / offsets.factor - offsets.end;\n return interpolate(this._table, decimal * this._tableRange + this._minPos, true);\n }\n}\nTimeSeriesScale.id = 'timeseries';\nTimeSeriesScale.defaults = TimeScale.defaults;\n\nvar scales = /*#__PURE__*/Object.freeze({\n__proto__: null,\nCategoryScale: CategoryScale,\nLinearScale: LinearScale,\nLogarithmicScale: LogarithmicScale,\nRadialLinearScale: RadialLinearScale,\nTimeScale: TimeScale,\nTimeSeriesScale: TimeSeriesScale\n});\n\nconst registerables = [\n controllers,\n elements,\n plugins,\n scales,\n];\n\nexport { Animation, Animations, ArcElement, BarController, BarElement, BasePlatform, BasicPlatform, BubbleController, CategoryScale, Chart, DatasetController, plugin_decimation as Decimation, DomPlatform, DoughnutController, Element, index as Filler, Interaction, plugin_legend as Legend, LineController, LineElement, LinearScale, LogarithmicScale, PieController, PointElement, PolarAreaController, RadarController, RadialLinearScale, Scale, ScatterController, plugin_subtitle as SubTitle, Ticks, TimeScale, TimeSeriesScale, plugin_title as Title, plugin_tooltip as Tooltip, adapters as _adapters, _detectPlatform, animator, controllers, elements, layouts, plugins, registerables, registry, scales };\n","export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./evpkdf\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./evpkdf\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * Cipher core components.\n\t */\n\tCryptoJS.lib.Cipher || (function (undefined) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var Base = C_lib.Base;\n\t var WordArray = C_lib.WordArray;\n\t var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm;\n\t var C_enc = C.enc;\n\t var Utf8 = C_enc.Utf8;\n\t var Base64 = C_enc.Base64;\n\t var C_algo = C.algo;\n\t var EvpKDF = C_algo.EvpKDF;\n\n\t /**\n\t * Abstract base cipher template.\n\t *\n\t * @property {number} keySize This cipher's key size. Default: 4 (128 bits)\n\t * @property {number} ivSize This cipher's IV size. Default: 4 (128 bits)\n\t * @property {number} _ENC_XFORM_MODE A constant representing encryption mode.\n\t * @property {number} _DEC_XFORM_MODE A constant representing decryption mode.\n\t */\n\t var Cipher = C_lib.Cipher = BufferedBlockAlgorithm.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {WordArray} iv The IV to use for this operation.\n\t */\n\t cfg: Base.extend(),\n\n\t /**\n\t * Creates this cipher in encryption mode.\n\t *\n\t * @param {WordArray} key The key.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @return {Cipher} A cipher instance.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var cipher = CryptoJS.algo.AES.createEncryptor(keyWordArray, { iv: ivWordArray });\n\t */\n\t createEncryptor: function (key, cfg) {\n\t return this.create(this._ENC_XFORM_MODE, key, cfg);\n\t },\n\n\t /**\n\t * Creates this cipher in decryption mode.\n\t *\n\t * @param {WordArray} key The key.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @return {Cipher} A cipher instance.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var cipher = CryptoJS.algo.AES.createDecryptor(keyWordArray, { iv: ivWordArray });\n\t */\n\t createDecryptor: function (key, cfg) {\n\t return this.create(this._DEC_XFORM_MODE, key, cfg);\n\t },\n\n\t /**\n\t * Initializes a newly created cipher.\n\t *\n\t * @param {number} xformMode Either the encryption or decryption transormation mode constant.\n\t * @param {WordArray} key The key.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @example\n\t *\n\t * var cipher = CryptoJS.algo.AES.create(CryptoJS.algo.AES._ENC_XFORM_MODE, keyWordArray, { iv: ivWordArray });\n\t */\n\t init: function (xformMode, key, cfg) {\n\t // Apply config defaults\n\t this.cfg = this.cfg.extend(cfg);\n\n\t // Store transform mode and key\n\t this._xformMode = xformMode;\n\t this._key = key;\n\n\t // Set initial values\n\t this.reset();\n\t },\n\n\t /**\n\t * Resets this cipher to its initial state.\n\t *\n\t * @example\n\t *\n\t * cipher.reset();\n\t */\n\t reset: function () {\n\t // Reset data buffer\n\t BufferedBlockAlgorithm.reset.call(this);\n\n\t // Perform concrete-cipher logic\n\t this._doReset();\n\t },\n\n\t /**\n\t * Adds data to be encrypted or decrypted.\n\t *\n\t * @param {WordArray|string} dataUpdate The data to encrypt or decrypt.\n\t *\n\t * @return {WordArray} The data after processing.\n\t *\n\t * @example\n\t *\n\t * var encrypted = cipher.process('data');\n\t * var encrypted = cipher.process(wordArray);\n\t */\n\t process: function (dataUpdate) {\n\t // Append\n\t this._append(dataUpdate);\n\n\t // Process available blocks\n\t return this._process();\n\t },\n\n\t /**\n\t * Finalizes the encryption or decryption process.\n\t * Note that the finalize operation is effectively a destructive, read-once operation.\n\t *\n\t * @param {WordArray|string} dataUpdate The final data to encrypt or decrypt.\n\t *\n\t * @return {WordArray} The data after final processing.\n\t *\n\t * @example\n\t *\n\t * var encrypted = cipher.finalize();\n\t * var encrypted = cipher.finalize('data');\n\t * var encrypted = cipher.finalize(wordArray);\n\t */\n\t finalize: function (dataUpdate) {\n\t // Final data update\n\t if (dataUpdate) {\n\t this._append(dataUpdate);\n\t }\n\n\t // Perform concrete-cipher logic\n\t var finalProcessedData = this._doFinalize();\n\n\t return finalProcessedData;\n\t },\n\n\t keySize: 128/32,\n\n\t ivSize: 128/32,\n\n\t _ENC_XFORM_MODE: 1,\n\n\t _DEC_XFORM_MODE: 2,\n\n\t /**\n\t * Creates shortcut functions to a cipher's object interface.\n\t *\n\t * @param {Cipher} cipher The cipher to create a helper for.\n\t *\n\t * @return {Object} An object with encrypt and decrypt shortcut functions.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var AES = CryptoJS.lib.Cipher._createHelper(CryptoJS.algo.AES);\n\t */\n\t _createHelper: (function () {\n\t function selectCipherStrategy(key) {\n\t if (typeof key == 'string') {\n\t return PasswordBasedCipher;\n\t } else {\n\t return SerializableCipher;\n\t }\n\t }\n\n\t return function (cipher) {\n\t return {\n\t encrypt: function (message, key, cfg) {\n\t return selectCipherStrategy(key).encrypt(cipher, message, key, cfg);\n\t },\n\n\t decrypt: function (ciphertext, key, cfg) {\n\t return selectCipherStrategy(key).decrypt(cipher, ciphertext, key, cfg);\n\t }\n\t };\n\t };\n\t }())\n\t });\n\n\t /**\n\t * Abstract base stream cipher template.\n\t *\n\t * @property {number} blockSize The number of 32-bit words this cipher operates on. Default: 1 (32 bits)\n\t */\n\t var StreamCipher = C_lib.StreamCipher = Cipher.extend({\n\t _doFinalize: function () {\n\t // Process partial blocks\n\t var finalProcessedBlocks = this._process(!!'flush');\n\n\t return finalProcessedBlocks;\n\t },\n\n\t blockSize: 1\n\t });\n\n\t /**\n\t * Mode namespace.\n\t */\n\t var C_mode = C.mode = {};\n\n\t /**\n\t * Abstract base block cipher mode template.\n\t */\n\t var BlockCipherMode = C_lib.BlockCipherMode = Base.extend({\n\t /**\n\t * Creates this mode for encryption.\n\t *\n\t * @param {Cipher} cipher A block cipher instance.\n\t * @param {Array} iv The IV words.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var mode = CryptoJS.mode.CBC.createEncryptor(cipher, iv.words);\n\t */\n\t createEncryptor: function (cipher, iv) {\n\t return this.Encryptor.create(cipher, iv);\n\t },\n\n\t /**\n\t * Creates this mode for decryption.\n\t *\n\t * @param {Cipher} cipher A block cipher instance.\n\t * @param {Array} iv The IV words.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var mode = CryptoJS.mode.CBC.createDecryptor(cipher, iv.words);\n\t */\n\t createDecryptor: function (cipher, iv) {\n\t return this.Decryptor.create(cipher, iv);\n\t },\n\n\t /**\n\t * Initializes a newly created mode.\n\t *\n\t * @param {Cipher} cipher A block cipher instance.\n\t * @param {Array} iv The IV words.\n\t *\n\t * @example\n\t *\n\t * var mode = CryptoJS.mode.CBC.Encryptor.create(cipher, iv.words);\n\t */\n\t init: function (cipher, iv) {\n\t this._cipher = cipher;\n\t this._iv = iv;\n\t }\n\t });\n\n\t /**\n\t * Cipher Block Chaining mode.\n\t */\n\t var CBC = C_mode.CBC = (function () {\n\t /**\n\t * Abstract base CBC mode.\n\t */\n\t var CBC = BlockCipherMode.extend();\n\n\t /**\n\t * CBC encryptor.\n\t */\n\t CBC.Encryptor = CBC.extend({\n\t /**\n\t * Processes the data block at offset.\n\t *\n\t * @param {Array} words The data words to operate on.\n\t * @param {number} offset The offset where the block starts.\n\t *\n\t * @example\n\t *\n\t * mode.processBlock(data.words, offset);\n\t */\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher;\n\t var blockSize = cipher.blockSize;\n\n\t // XOR and encrypt\n\t xorBlock.call(this, words, offset, blockSize);\n\t cipher.encryptBlock(words, offset);\n\n\t // Remember this block to use with next block\n\t this._prevBlock = words.slice(offset, offset + blockSize);\n\t }\n\t });\n\n\t /**\n\t * CBC decryptor.\n\t */\n\t CBC.Decryptor = CBC.extend({\n\t /**\n\t * Processes the data block at offset.\n\t *\n\t * @param {Array} words The data words to operate on.\n\t * @param {number} offset The offset where the block starts.\n\t *\n\t * @example\n\t *\n\t * mode.processBlock(data.words, offset);\n\t */\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher;\n\t var blockSize = cipher.blockSize;\n\n\t // Remember this block to use with next block\n\t var thisBlock = words.slice(offset, offset + blockSize);\n\n\t // Decrypt and XOR\n\t cipher.decryptBlock(words, offset);\n\t xorBlock.call(this, words, offset, blockSize);\n\n\t // This block becomes the previous block\n\t this._prevBlock = thisBlock;\n\t }\n\t });\n\n\t function xorBlock(words, offset, blockSize) {\n\t // Shortcut\n\t var iv = this._iv;\n\n\t // Choose mixing block\n\t if (iv) {\n\t var block = iv;\n\n\t // Remove IV for subsequent blocks\n\t this._iv = undefined;\n\t } else {\n\t var block = this._prevBlock;\n\t }\n\n\t // XOR blocks\n\t for (var i = 0; i < blockSize; i++) {\n\t words[offset + i] ^= block[i];\n\t }\n\t }\n\n\t return CBC;\n\t }());\n\n\t /**\n\t * Padding namespace.\n\t */\n\t var C_pad = C.pad = {};\n\n\t /**\n\t * PKCS #5/7 padding strategy.\n\t */\n\t var Pkcs7 = C_pad.Pkcs7 = {\n\t /**\n\t * Pads data using the algorithm defined in PKCS #5/7.\n\t *\n\t * @param {WordArray} data The data to pad.\n\t * @param {number} blockSize The multiple that the data should be padded to.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * CryptoJS.pad.Pkcs7.pad(wordArray, 4);\n\t */\n\t pad: function (data, blockSize) {\n\t // Shortcut\n\t var blockSizeBytes = blockSize * 4;\n\n\t // Count padding bytes\n\t var nPaddingBytes = blockSizeBytes - data.sigBytes % blockSizeBytes;\n\n\t // Create padding word\n\t var paddingWord = (nPaddingBytes << 24) | (nPaddingBytes << 16) | (nPaddingBytes << 8) | nPaddingBytes;\n\n\t // Create padding\n\t var paddingWords = [];\n\t for (var i = 0; i < nPaddingBytes; i += 4) {\n\t paddingWords.push(paddingWord);\n\t }\n\t var padding = WordArray.create(paddingWords, nPaddingBytes);\n\n\t // Add padding\n\t data.concat(padding);\n\t },\n\n\t /**\n\t * Unpads data that had been padded using the algorithm defined in PKCS #5/7.\n\t *\n\t * @param {WordArray} data The data to unpad.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * CryptoJS.pad.Pkcs7.unpad(wordArray);\n\t */\n\t unpad: function (data) {\n\t // Get number of padding bytes from last byte\n\t var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff;\n\n\t // Remove padding\n\t data.sigBytes -= nPaddingBytes;\n\t }\n\t };\n\n\t /**\n\t * Abstract base block cipher template.\n\t *\n\t * @property {number} blockSize The number of 32-bit words this cipher operates on. Default: 4 (128 bits)\n\t */\n\t var BlockCipher = C_lib.BlockCipher = Cipher.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {Mode} mode The block mode to use. Default: CBC\n\t * @property {Padding} padding The padding strategy to use. Default: Pkcs7\n\t */\n\t cfg: Cipher.cfg.extend({\n\t mode: CBC,\n\t padding: Pkcs7\n\t }),\n\n\t reset: function () {\n\t // Reset cipher\n\t Cipher.reset.call(this);\n\n\t // Shortcuts\n\t var cfg = this.cfg;\n\t var iv = cfg.iv;\n\t var mode = cfg.mode;\n\n\t // Reset block mode\n\t if (this._xformMode == this._ENC_XFORM_MODE) {\n\t var modeCreator = mode.createEncryptor;\n\t } else /* if (this._xformMode == this._DEC_XFORM_MODE) */ {\n\t var modeCreator = mode.createDecryptor;\n\t // Keep at least one block in the buffer for unpadding\n\t this._minBufferSize = 1;\n\t }\n\n\t if (this._mode && this._mode.__creator == modeCreator) {\n\t this._mode.init(this, iv && iv.words);\n\t } else {\n\t this._mode = modeCreator.call(mode, this, iv && iv.words);\n\t this._mode.__creator = modeCreator;\n\t }\n\t },\n\n\t _doProcessBlock: function (words, offset) {\n\t this._mode.processBlock(words, offset);\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcut\n\t var padding = this.cfg.padding;\n\n\t // Finalize\n\t if (this._xformMode == this._ENC_XFORM_MODE) {\n\t // Pad data\n\t padding.pad(this._data, this.blockSize);\n\n\t // Process final blocks\n\t var finalProcessedBlocks = this._process(!!'flush');\n\t } else /* if (this._xformMode == this._DEC_XFORM_MODE) */ {\n\t // Process final blocks\n\t var finalProcessedBlocks = this._process(!!'flush');\n\n\t // Unpad data\n\t padding.unpad(finalProcessedBlocks);\n\t }\n\n\t return finalProcessedBlocks;\n\t },\n\n\t blockSize: 128/32\n\t });\n\n\t /**\n\t * A collection of cipher parameters.\n\t *\n\t * @property {WordArray} ciphertext The raw ciphertext.\n\t * @property {WordArray} key The key to this ciphertext.\n\t * @property {WordArray} iv The IV used in the ciphering operation.\n\t * @property {WordArray} salt The salt used with a key derivation function.\n\t * @property {Cipher} algorithm The cipher algorithm.\n\t * @property {Mode} mode The block mode used in the ciphering operation.\n\t * @property {Padding} padding The padding scheme used in the ciphering operation.\n\t * @property {number} blockSize The block size of the cipher.\n\t * @property {Format} formatter The default formatting strategy to convert this cipher params object to a string.\n\t */\n\t var CipherParams = C_lib.CipherParams = Base.extend({\n\t /**\n\t * Initializes a newly created cipher params object.\n\t *\n\t * @param {Object} cipherParams An object with any of the possible cipher parameters.\n\t *\n\t * @example\n\t *\n\t * var cipherParams = CryptoJS.lib.CipherParams.create({\n\t * ciphertext: ciphertextWordArray,\n\t * key: keyWordArray,\n\t * iv: ivWordArray,\n\t * salt: saltWordArray,\n\t * algorithm: CryptoJS.algo.AES,\n\t * mode: CryptoJS.mode.CBC,\n\t * padding: CryptoJS.pad.PKCS7,\n\t * blockSize: 4,\n\t * formatter: CryptoJS.format.OpenSSL\n\t * });\n\t */\n\t init: function (cipherParams) {\n\t this.mixIn(cipherParams);\n\t },\n\n\t /**\n\t * Converts this cipher params object to a string.\n\t *\n\t * @param {Format} formatter (Optional) The formatting strategy to use.\n\t *\n\t * @return {string} The stringified cipher params.\n\t *\n\t * @throws Error If neither the formatter nor the default formatter is set.\n\t *\n\t * @example\n\t *\n\t * var string = cipherParams + '';\n\t * var string = cipherParams.toString();\n\t * var string = cipherParams.toString(CryptoJS.format.OpenSSL);\n\t */\n\t toString: function (formatter) {\n\t return (formatter || this.formatter).stringify(this);\n\t }\n\t });\n\n\t /**\n\t * Format namespace.\n\t */\n\t var C_format = C.format = {};\n\n\t /**\n\t * OpenSSL formatting strategy.\n\t */\n\t var OpenSSLFormatter = C_format.OpenSSL = {\n\t /**\n\t * Converts a cipher params object to an OpenSSL-compatible string.\n\t *\n\t * @param {CipherParams} cipherParams The cipher params object.\n\t *\n\t * @return {string} The OpenSSL-compatible string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var openSSLString = CryptoJS.format.OpenSSL.stringify(cipherParams);\n\t */\n\t stringify: function (cipherParams) {\n\t // Shortcuts\n\t var ciphertext = cipherParams.ciphertext;\n\t var salt = cipherParams.salt;\n\n\t // Format\n\t if (salt) {\n\t var wordArray = WordArray.create([0x53616c74, 0x65645f5f]).concat(salt).concat(ciphertext);\n\t } else {\n\t var wordArray = ciphertext;\n\t }\n\n\t return wordArray.toString(Base64);\n\t },\n\n\t /**\n\t * Converts an OpenSSL-compatible string to a cipher params object.\n\t *\n\t * @param {string} openSSLStr The OpenSSL-compatible string.\n\t *\n\t * @return {CipherParams} The cipher params object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var cipherParams = CryptoJS.format.OpenSSL.parse(openSSLString);\n\t */\n\t parse: function (openSSLStr) {\n\t // Parse base64\n\t var ciphertext = Base64.parse(openSSLStr);\n\n\t // Shortcut\n\t var ciphertextWords = ciphertext.words;\n\n\t // Test for salt\n\t if (ciphertextWords[0] == 0x53616c74 && ciphertextWords[1] == 0x65645f5f) {\n\t // Extract salt\n\t var salt = WordArray.create(ciphertextWords.slice(2, 4));\n\n\t // Remove salt from ciphertext\n\t ciphertextWords.splice(0, 4);\n\t ciphertext.sigBytes -= 16;\n\t }\n\n\t return CipherParams.create({ ciphertext: ciphertext, salt: salt });\n\t }\n\t };\n\n\t /**\n\t * A cipher wrapper that returns ciphertext as a serializable cipher params object.\n\t */\n\t var SerializableCipher = C_lib.SerializableCipher = Base.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {Formatter} format The formatting strategy to convert cipher param objects to and from a string. Default: OpenSSL\n\t */\n\t cfg: Base.extend({\n\t format: OpenSSLFormatter\n\t }),\n\n\t /**\n\t * Encrypts a message.\n\t *\n\t * @param {Cipher} cipher The cipher algorithm to use.\n\t * @param {WordArray|string} message The message to encrypt.\n\t * @param {WordArray} key The key.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @return {CipherParams} A cipher params object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key);\n\t * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv });\n\t * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv, format: CryptoJS.format.OpenSSL });\n\t */\n\t encrypt: function (cipher, message, key, cfg) {\n\t // Apply config defaults\n\t cfg = this.cfg.extend(cfg);\n\n\t // Encrypt\n\t var encryptor = cipher.createEncryptor(key, cfg);\n\t var ciphertext = encryptor.finalize(message);\n\n\t // Shortcut\n\t var cipherCfg = encryptor.cfg;\n\n\t // Create and return serializable cipher params\n\t return CipherParams.create({\n\t ciphertext: ciphertext,\n\t key: key,\n\t iv: cipherCfg.iv,\n\t algorithm: cipher,\n\t mode: cipherCfg.mode,\n\t padding: cipherCfg.padding,\n\t blockSize: cipher.blockSize,\n\t formatter: cfg.format\n\t });\n\t },\n\n\t /**\n\t * Decrypts serialized ciphertext.\n\t *\n\t * @param {Cipher} cipher The cipher algorithm to use.\n\t * @param {CipherParams|string} ciphertext The ciphertext to decrypt.\n\t * @param {WordArray} key The key.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @return {WordArray} The plaintext.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, key, { iv: iv, format: CryptoJS.format.OpenSSL });\n\t * var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, key, { iv: iv, format: CryptoJS.format.OpenSSL });\n\t */\n\t decrypt: function (cipher, ciphertext, key, cfg) {\n\t // Apply config defaults\n\t cfg = this.cfg.extend(cfg);\n\n\t // Convert string to CipherParams\n\t ciphertext = this._parse(ciphertext, cfg.format);\n\n\t // Decrypt\n\t var plaintext = cipher.createDecryptor(key, cfg).finalize(ciphertext.ciphertext);\n\n\t return plaintext;\n\t },\n\n\t /**\n\t * Converts serialized ciphertext to CipherParams,\n\t * else assumed CipherParams already and returns ciphertext unchanged.\n\t *\n\t * @param {CipherParams|string} ciphertext The ciphertext.\n\t * @param {Formatter} format The formatting strategy to use to parse serialized ciphertext.\n\t *\n\t * @return {CipherParams} The unserialized ciphertext.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var ciphertextParams = CryptoJS.lib.SerializableCipher._parse(ciphertextStringOrParams, format);\n\t */\n\t _parse: function (ciphertext, format) {\n\t if (typeof ciphertext == 'string') {\n\t return format.parse(ciphertext, this);\n\t } else {\n\t return ciphertext;\n\t }\n\t }\n\t });\n\n\t /**\n\t * Key derivation function namespace.\n\t */\n\t var C_kdf = C.kdf = {};\n\n\t /**\n\t * OpenSSL key derivation function.\n\t */\n\t var OpenSSLKdf = C_kdf.OpenSSL = {\n\t /**\n\t * Derives a key and IV from a password.\n\t *\n\t * @param {string} password The password to derive from.\n\t * @param {number} keySize The size in words of the key to generate.\n\t * @param {number} ivSize The size in words of the IV to generate.\n\t * @param {WordArray|string} salt (Optional) A 64-bit salt to use. If omitted, a salt will be generated randomly.\n\t *\n\t * @return {CipherParams} A cipher params object with the key, IV, and salt.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32);\n\t * var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32, 'saltsalt');\n\t */\n\t execute: function (password, keySize, ivSize, salt) {\n\t // Generate random salt\n\t if (!salt) {\n\t salt = WordArray.random(64/8);\n\t }\n\n\t // Derive key and IV\n\t var key = EvpKDF.create({ keySize: keySize + ivSize }).compute(password, salt);\n\n\t // Separate key and IV\n\t var iv = WordArray.create(key.words.slice(keySize), ivSize * 4);\n\t key.sigBytes = keySize * 4;\n\n\t // Return params\n\t return CipherParams.create({ key: key, iv: iv, salt: salt });\n\t }\n\t };\n\n\t /**\n\t * A serializable cipher wrapper that derives the key from a password,\n\t * and returns ciphertext as a serializable cipher params object.\n\t */\n\t var PasswordBasedCipher = C_lib.PasswordBasedCipher = SerializableCipher.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {KDF} kdf The key derivation function to use to generate a key and IV from a password. Default: OpenSSL\n\t */\n\t cfg: SerializableCipher.cfg.extend({\n\t kdf: OpenSSLKdf\n\t }),\n\n\t /**\n\t * Encrypts a message using a password.\n\t *\n\t * @param {Cipher} cipher The cipher algorithm to use.\n\t * @param {WordArray|string} message The message to encrypt.\n\t * @param {string} password The password.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @return {CipherParams} A cipher params object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password');\n\t * var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password', { format: CryptoJS.format.OpenSSL });\n\t */\n\t encrypt: function (cipher, message, password, cfg) {\n\t // Apply config defaults\n\t cfg = this.cfg.extend(cfg);\n\n\t // Derive key and other params\n\t var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize);\n\n\t // Add IV to config\n\t cfg.iv = derivedParams.iv;\n\n\t // Encrypt\n\t var ciphertext = SerializableCipher.encrypt.call(this, cipher, message, derivedParams.key, cfg);\n\n\t // Mix in derived params\n\t ciphertext.mixIn(derivedParams);\n\n\t return ciphertext;\n\t },\n\n\t /**\n\t * Decrypts serialized ciphertext using a password.\n\t *\n\t * @param {Cipher} cipher The cipher algorithm to use.\n\t * @param {CipherParams|string} ciphertext The ciphertext to decrypt.\n\t * @param {string} password The password.\n\t * @param {Object} cfg (Optional) The configuration options to use for this operation.\n\t *\n\t * @return {WordArray} The plaintext.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, 'password', { format: CryptoJS.format.OpenSSL });\n\t * var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, 'password', { format: CryptoJS.format.OpenSSL });\n\t */\n\t decrypt: function (cipher, ciphertext, password, cfg) {\n\t // Apply config defaults\n\t cfg = this.cfg.extend(cfg);\n\n\t // Convert string to CipherParams\n\t ciphertext = this._parse(ciphertext, cfg.format);\n\n\t // Derive key and other params\n\t var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize, ciphertext.salt);\n\n\t // Add IV to config\n\t cfg.iv = derivedParams.iv;\n\n\t // Decrypt\n\t var plaintext = SerializableCipher.decrypt.call(this, cipher, ciphertext, derivedParams.key, cfg);\n\n\t return plaintext;\n\t }\n\t });\n\t}());\n\n\n}));","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ls\"] = factory();\n\telse\n\t\troot[\"ls\"] = factory();\n})(this, function() {\nreturn ","// The require scope\nvar __webpack_require__ = {};\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","export const NOOP = (...args: unknown[]): unknown => undefined;\n\nexport const escapeRegExp = (text: string): string => text.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\n\nexport const isObject = (item: any): boolean => {\n return item !== null && item.constructor.name === 'Object';\n};\n","/*\n * https://github.com/niketpathak/localstorage-slim\n * Copyright (c) 2021 Niket Pathak\n * MIT License\n */\n\nimport { isObject, NOOP } from './helpers';\nimport type { Encrypter, Decrypter, LocalStorageConfig } from './types';\n\n// private flags\nlet hasLS: boolean;\n\nconst supportsLS = (): boolean => {\n if (hasLS !== undefined) return hasLS;\n hasLS = true;\n\n try {\n if (!localStorage) {\n hasLS = false;\n }\n } catch (e) {\n // some browsers throw an error if you try to access local storage (e.g. brave browser)\n // and some like Safari do not allow access to LS in incognito mode\n hasLS = false;\n }\n\n // flush once on init\n flush();\n\n return hasLS;\n};\n\n// Apex\nconst APX = String.fromCharCode(0);\n\n// tiny obsfuscator\nconst obfus: Encrypter | Decrypter = (str, key, encrypt = true) =>\n encrypt\n ? [...((JSON.stringify(str) as unknown) as string[])]\n .map((x) => String.fromCharCode(x.charCodeAt(0) + (key as number)))\n .join('')\n : JSON.parse([...(str as string[])].map((x) => String.fromCharCode(x.charCodeAt(0) - (key as number))).join(''));\n\nconst decrypter: Decrypter = (str, key) => {\n return obfus(str, key, false);\n};\n\nconst config: LocalStorageConfig = {\n ttl: null,\n encrypt: false,\n encrypter: obfus,\n decrypter,\n secret: 75,\n};\n\nconst set = (key: string, value: T, localConfig: LocalStorageConfig = {}): void | boolean => {\n if (!supportsLS()) return false;\n\n const _conf = {\n ...config,\n ...localConfig,\n encrypt: localConfig.encrypt === false ? false : localConfig.encrypt || config.encrypt,\n ttl: localConfig.ttl === null ? null : localConfig.ttl || config.ttl,\n };\n\n try {\n const hasTTL = _conf.ttl && !isNaN(_conf.ttl) && _conf.ttl > 0;\n let val = hasTTL ? { [APX]: value, ttl: Date.now() + (_conf.ttl as number) * 1e3 } : value;\n\n if (_conf.encrypt) {\n // if ttl exists, only encrypt the value\n if (hasTTL) {\n (val as Record)[APX] = (_conf.encrypter || NOOP)(\n (val as Record)[APX],\n _conf.secret\n ) as string;\n } else {\n val = (_conf.encrypter || NOOP)(val, _conf.secret) as T;\n }\n }\n\n localStorage.setItem(key, JSON.stringify(val));\n } catch (e) {\n // Sometimes stringify fails due to circular refs\n return false;\n }\n};\n\nconst get = (key: string, localConfig: LocalStorageConfig = {}): T | null => {\n if (!supportsLS()) return null;\n\n const str = localStorage.getItem(key);\n\n if (!str) {\n return null;\n }\n\n const _conf = {\n ...config,\n ...localConfig,\n encrypt: localConfig.encrypt === false ? false : localConfig.encrypt || config.encrypt,\n ttl: localConfig.ttl === null ? null : localConfig.ttl || config.ttl,\n };\n\n let item = JSON.parse(str);\n const hasTTL = isObject(item) && APX in item;\n\n if (_conf.decrypt || _conf.encrypt) {\n try {\n if (hasTTL) {\n item[APX] = (_conf.decrypter || NOOP)(item[APX], _conf.secret) as string;\n } else {\n item = (_conf.decrypter || NOOP)(item, _conf.secret) as string;\n }\n } catch (e) {\n // Either the secret is incorrect or there was a parsing error\n // do nothing [i.e. return the encrypted/unparsed value]\n }\n }\n\n // if not using ttl, return immediately\n if (!hasTTL) {\n return item;\n }\n\n if (Date.now() > item.ttl) {\n localStorage.removeItem(key);\n return null;\n }\n\n return item[APX];\n};\n\nconst flush = (force = false): false | void => {\n if (!supportsLS()) return false;\n Object.keys(localStorage).forEach((key) => {\n const str = localStorage.getItem(key);\n if (!str) return; // continue iteration\n let item;\n try {\n item = JSON.parse(str);\n } catch (e) {\n // Some packages write strings to localStorage that are not converted by JSON.stringify(), so we need to ignore it\n return;\n }\n // flush only if ttl was set and is/is not expired\n if (isObject(item) && APX in item && (Date.now() > item.ttl || force)) {\n localStorage.removeItem(key);\n }\n });\n};\n\nconst remove = (key: string): undefined | false => {\n if (!supportsLS()) return false;\n localStorage.removeItem(key);\n};\n\nconst clear = (): undefined | false => {\n if (!supportsLS()) return false;\n localStorage.clear();\n};\n\nexport default {\n config,\n set,\n get,\n flush,\n clear,\n remove,\n};\n","var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n if (isProduction) {\n throw new Error(prefix);\n }\n throw new Error(prefix + \": \" + (message || ''));\n}\n\nexport default invariant;\n","export default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}","function isAbsolute(pathname) {\n return pathname.charAt(0) === '/';\n}\n\n// About 1.5x faster than the two-arg version of Array#splice()\nfunction spliceOne(list, index) {\n for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) {\n list[i] = list[k];\n }\n\n list.pop();\n}\n\n// This implementation is based heavily on node's url.parse\nfunction resolvePathname(to, from) {\n if (from === undefined) from = '';\n\n var toParts = (to && to.split('/')) || [];\n var fromParts = (from && from.split('/')) || [];\n\n var isToAbs = to && isAbsolute(to);\n var isFromAbs = from && isAbsolute(from);\n var mustEndAbs = isToAbs || isFromAbs;\n\n if (to && isAbsolute(to)) {\n // to is absolute\n fromParts = toParts;\n } else if (toParts.length) {\n // to is relative, drop the filename\n fromParts.pop();\n fromParts = fromParts.concat(toParts);\n }\n\n if (!fromParts.length) return '/';\n\n var hasTrailingSlash;\n if (fromParts.length) {\n var last = fromParts[fromParts.length - 1];\n hasTrailingSlash = last === '.' || last === '..' || last === '';\n } else {\n hasTrailingSlash = false;\n }\n\n var up = 0;\n for (var i = fromParts.length; i >= 0; i--) {\n var part = fromParts[i];\n\n if (part === '.') {\n spliceOne(fromParts, i);\n } else if (part === '..') {\n spliceOne(fromParts, i);\n up++;\n } else if (up) {\n spliceOne(fromParts, i);\n up--;\n }\n }\n\n if (!mustEndAbs) for (; up--; up) fromParts.unshift('..');\n\n if (\n mustEndAbs &&\n fromParts[0] !== '' &&\n (!fromParts[0] || !isAbsolute(fromParts[0]))\n )\n fromParts.unshift('');\n\n var result = fromParts.join('/');\n\n if (hasTrailingSlash && result.substr(-1) !== '/') result += '/';\n\n return result;\n}\n\nexport default resolvePathname;\n","function valueOf(obj) {\n return obj.valueOf ? obj.valueOf() : Object.prototype.valueOf.call(obj);\n}\n\nfunction valueEqual(a, b) {\n // Test for strict equality first.\n if (a === b) return true;\n\n // Otherwise, if either of them == null they are not equal.\n if (a == null || b == null) return false;\n\n if (Array.isArray(a)) {\n return (\n Array.isArray(b) &&\n a.length === b.length &&\n a.every(function(item, index) {\n return valueEqual(item, b[index]);\n })\n );\n }\n\n if (typeof a === 'object' || typeof b === 'object') {\n var aValue = valueOf(a);\n var bValue = valueOf(b);\n\n if (aValue !== a || bValue !== b) return valueEqual(aValue, bValue);\n\n return Object.keys(Object.assign({}, a, b)).every(function(key) {\n return valueEqual(a[key], b[key]);\n });\n }\n\n return false;\n}\n\nexport default valueEqual;\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport resolvePathname from 'resolve-pathname';\nimport valueEqual from 'value-equal';\nimport warning from 'tiny-warning';\nimport invariant from 'tiny-invariant';\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === '/' ? path : '/' + path;\n}\nfunction stripLeadingSlash(path) {\n return path.charAt(0) === '/' ? path.substr(1) : path;\n}\nfunction hasBasename(path, prefix) {\n return path.toLowerCase().indexOf(prefix.toLowerCase()) === 0 && '/?#'.indexOf(path.charAt(prefix.length)) !== -1;\n}\nfunction stripBasename(path, prefix) {\n return hasBasename(path, prefix) ? path.substr(prefix.length) : path;\n}\nfunction stripTrailingSlash(path) {\n return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path;\n}\nfunction parsePath(path) {\n var pathname = path || '/';\n var search = '';\n var hash = '';\n var hashIndex = pathname.indexOf('#');\n\n if (hashIndex !== -1) {\n hash = pathname.substr(hashIndex);\n pathname = pathname.substr(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf('?');\n\n if (searchIndex !== -1) {\n search = pathname.substr(searchIndex);\n pathname = pathname.substr(0, searchIndex);\n }\n\n return {\n pathname: pathname,\n search: search === '?' ? '' : search,\n hash: hash === '#' ? '' : hash\n };\n}\nfunction createPath(location) {\n var pathname = location.pathname,\n search = location.search,\n hash = location.hash;\n var path = pathname || '/';\n if (search && search !== '?') path += search.charAt(0) === '?' ? search : \"?\" + search;\n if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : \"#\" + hash;\n return path;\n}\n\nfunction createLocation(path, state, key, currentLocation) {\n var location;\n\n if (typeof path === 'string') {\n // Two-arg form: push(path, state)\n location = parsePath(path);\n location.state = state;\n } else {\n // One-arg form: push(location)\n location = _extends({}, path);\n if (location.pathname === undefined) location.pathname = '';\n\n if (location.search) {\n if (location.search.charAt(0) !== '?') location.search = '?' + location.search;\n } else {\n location.search = '';\n }\n\n if (location.hash) {\n if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;\n } else {\n location.hash = '';\n }\n\n if (state !== undefined && location.state === undefined) location.state = state;\n }\n\n try {\n location.pathname = decodeURI(location.pathname);\n } catch (e) {\n if (e instanceof URIError) {\n throw new URIError('Pathname \"' + location.pathname + '\" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.');\n } else {\n throw e;\n }\n }\n\n if (key) location.key = key;\n\n if (currentLocation) {\n // Resolve incomplete/relative pathname relative to current location.\n if (!location.pathname) {\n location.pathname = currentLocation.pathname;\n } else if (location.pathname.charAt(0) !== '/') {\n location.pathname = resolvePathname(location.pathname, currentLocation.pathname);\n }\n } else {\n // When there is no prior location and pathname is empty, set it to /\n if (!location.pathname) {\n location.pathname = '/';\n }\n }\n\n return location;\n}\nfunction locationsAreEqual(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && valueEqual(a.state, b.state);\n}\n\nfunction createTransitionManager() {\n var prompt = null;\n\n function setPrompt(nextPrompt) {\n process.env.NODE_ENV !== \"production\" ? warning(prompt == null, 'A history supports only one prompt at a time') : void 0;\n prompt = nextPrompt;\n return function () {\n if (prompt === nextPrompt) prompt = null;\n };\n }\n\n function confirmTransitionTo(location, action, getUserConfirmation, callback) {\n // TODO: If another transition starts while we're still confirming\n // the previous one, we may end up in a weird state. Figure out the\n // best way to handle this.\n if (prompt != null) {\n var result = typeof prompt === 'function' ? prompt(location, action) : prompt;\n\n if (typeof result === 'string') {\n if (typeof getUserConfirmation === 'function') {\n getUserConfirmation(result, callback);\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'A history needs a getUserConfirmation function in order to use a prompt message') : void 0;\n callback(true);\n }\n } else {\n // Return false from a transition hook to cancel the transition.\n callback(result !== false);\n }\n } else {\n callback(true);\n }\n }\n\n var listeners = [];\n\n function appendListener(fn) {\n var isActive = true;\n\n function listener() {\n if (isActive) fn.apply(void 0, arguments);\n }\n\n listeners.push(listener);\n return function () {\n isActive = false;\n listeners = listeners.filter(function (item) {\n return item !== listener;\n });\n };\n }\n\n function notifyListeners() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n listeners.forEach(function (listener) {\n return listener.apply(void 0, args);\n });\n }\n\n return {\n setPrompt: setPrompt,\n confirmTransitionTo: confirmTransitionTo,\n appendListener: appendListener,\n notifyListeners: notifyListeners\n };\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction getConfirmation(message, callback) {\n callback(window.confirm(message)); // eslint-disable-line no-alert\n}\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\n\nfunction supportsHistory() {\n var ua = window.navigator.userAgent;\n if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n return window.history && 'pushState' in window.history;\n}\n/**\n * Returns true if browser fires popstate on hash change.\n * IE10 and IE11 do not.\n */\n\nfunction supportsPopStateOnHashChange() {\n return window.navigator.userAgent.indexOf('Trident') === -1;\n}\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\n\nfunction supportsGoWithoutReloadUsingHash() {\n return window.navigator.userAgent.indexOf('Firefox') === -1;\n}\n/**\n * Returns true if a given popstate event is an extraneous WebKit event.\n * Accounts for the fact that Chrome on iOS fires real popstate events\n * containing undefined state when pressing the back button.\n */\n\nfunction isExtraneousPopstateEvent(event) {\n return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n}\n\nvar PopStateEvent = 'popstate';\nvar HashChangeEvent = 'hashchange';\n\nfunction getHistoryState() {\n try {\n return window.history.state || {};\n } catch (e) {\n // IE 11 sometimes throws when accessing window.history.state\n // See https://github.com/ReactTraining/history/pull/289\n return {};\n }\n}\n/**\n * Creates a history object that uses the HTML5 history API including\n * pushState, replaceState, and the popstate event.\n */\n\n\nfunction createBrowserHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Browser history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canUseHistory = supportsHistory();\n var needsHashChangeListener = !supportsPopStateOnHashChange();\n var _props = props,\n _props$forceRefresh = _props.forceRefresh,\n forceRefresh = _props$forceRefresh === void 0 ? false : _props$forceRefresh,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n\n function getDOMLocation(historyState) {\n var _ref = historyState || {},\n key = _ref.key,\n state = _ref.state;\n\n var _window$location = window.location,\n pathname = _window$location.pathname,\n search = _window$location.search,\n hash = _window$location.hash;\n var path = pathname + search + hash;\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path, state, key);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function handlePopState(event) {\n // Ignore extraneous popstate events in WebKit.\n if (isExtraneousPopstateEvent(event)) return;\n handlePop(getDOMLocation(event.state));\n }\n\n function handleHashChange() {\n handlePop(getDOMLocation(getHistoryState()));\n }\n\n var forceNextPop = false;\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of keys we've seen in sessionStorage.\n // Instead, we just default to 0 for keys we don't know.\n\n var toIndex = allKeys.indexOf(toLocation.key);\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allKeys.indexOf(fromLocation.key);\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n }\n\n var initialLocation = getDOMLocation(getHistoryState());\n var allKeys = [initialLocation.key]; // Public interface\n\n function createHref(location) {\n return basename + createPath(location);\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.pushState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.href = href;\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n var nextKeys = allKeys.slice(0, prevIndex + 1);\n nextKeys.push(location.key);\n allKeys = nextKeys;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history') : void 0;\n window.location.href = href;\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.replaceState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.replace(href);\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n if (prevIndex !== -1) allKeys[prevIndex] = location.key;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history') : void 0;\n window.location.replace(href);\n }\n });\n }\n\n function go(n) {\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.addEventListener(HashChangeEvent, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.removeEventListener(HashChangeEvent, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nvar HashChangeEvent$1 = 'hashchange';\nvar HashPathCoders = {\n hashbang: {\n encodePath: function encodePath(path) {\n return path.charAt(0) === '!' ? path : '!/' + stripLeadingSlash(path);\n },\n decodePath: function decodePath(path) {\n return path.charAt(0) === '!' ? path.substr(1) : path;\n }\n },\n noslash: {\n encodePath: stripLeadingSlash,\n decodePath: addLeadingSlash\n },\n slash: {\n encodePath: addLeadingSlash,\n decodePath: addLeadingSlash\n }\n};\n\nfunction stripHash(url) {\n var hashIndex = url.indexOf('#');\n return hashIndex === -1 ? url : url.slice(0, hashIndex);\n}\n\nfunction getHashPath() {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var hashIndex = href.indexOf('#');\n return hashIndex === -1 ? '' : href.substring(hashIndex + 1);\n}\n\nfunction pushHashPath(path) {\n window.location.hash = path;\n}\n\nfunction replaceHashPath(path) {\n window.location.replace(stripHash(window.location.href) + '#' + path);\n}\n\nfunction createHashHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Hash history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canGoWithoutReload = supportsGoWithoutReloadUsingHash();\n var _props = props,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$hashType = _props.hashType,\n hashType = _props$hashType === void 0 ? 'slash' : _props$hashType;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n var _HashPathCoders$hashT = HashPathCoders[hashType],\n encodePath = _HashPathCoders$hashT.encodePath,\n decodePath = _HashPathCoders$hashT.decodePath;\n\n function getDOMLocation() {\n var path = decodePath(getHashPath());\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n var forceNextPop = false;\n var ignorePath = null;\n\n function locationsAreEqual$$1(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash;\n }\n\n function handleHashChange() {\n var path = getHashPath();\n var encodedPath = encodePath(path);\n\n if (path !== encodedPath) {\n // Ensure we always have a properly-encoded hash.\n replaceHashPath(encodedPath);\n } else {\n var location = getDOMLocation();\n var prevLocation = history.location;\n if (!forceNextPop && locationsAreEqual$$1(prevLocation, location)) return; // A hashchange doesn't always == location change.\n\n if (ignorePath === createPath(location)) return; // Ignore this change; we already setState in push/replace.\n\n ignorePath = null;\n handlePop(location);\n }\n }\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of paths we've seen in sessionStorage.\n // Instead, we just default to 0 for paths we don't know.\n\n var toIndex = allPaths.lastIndexOf(createPath(toLocation));\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allPaths.lastIndexOf(createPath(fromLocation));\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n } // Ensure the hash is encoded properly before doing anything else.\n\n\n var path = getHashPath();\n var encodedPath = encodePath(path);\n if (path !== encodedPath) replaceHashPath(encodedPath);\n var initialLocation = getDOMLocation();\n var allPaths = [createPath(initialLocation)]; // Public interface\n\n function createHref(location) {\n var baseTag = document.querySelector('base');\n var href = '';\n\n if (baseTag && baseTag.getAttribute('href')) {\n href = stripHash(window.location.href);\n }\n\n return href + '#' + encodePath(basename + createPath(location));\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot push state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a PUSH, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n pushHashPath(encodedPath);\n var prevIndex = allPaths.lastIndexOf(createPath(history.location));\n var nextPaths = allPaths.slice(0, prevIndex + 1);\n nextPaths.push(path);\n allPaths = nextPaths;\n setState({\n action: action,\n location: location\n });\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Hash history cannot PUSH the same path; a new entry will not be added to the history stack') : void 0;\n setState();\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot replace state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a REPLACE, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n replaceHashPath(encodedPath);\n }\n\n var prevIndex = allPaths.indexOf(createPath(history.location));\n if (prevIndex !== -1) allPaths[prevIndex] = path;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n process.env.NODE_ENV !== \"production\" ? warning(canGoWithoutReload, 'Hash history go(n) causes a full page reload in this browser') : void 0;\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(HashChangeEvent$1, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(HashChangeEvent$1, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nfunction clamp(n, lowerBound, upperBound) {\n return Math.min(Math.max(n, lowerBound), upperBound);\n}\n/**\n * Creates a history object that stores locations in memory.\n */\n\n\nfunction createMemoryHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n var _props = props,\n getUserConfirmation = _props.getUserConfirmation,\n _props$initialEntries = _props.initialEntries,\n initialEntries = _props$initialEntries === void 0 ? ['/'] : _props$initialEntries,\n _props$initialIndex = _props.initialIndex,\n initialIndex = _props$initialIndex === void 0 ? 0 : _props$initialIndex,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = history.entries.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var index = clamp(initialIndex, 0, initialEntries.length - 1);\n var entries = initialEntries.map(function (entry) {\n return typeof entry === 'string' ? createLocation(entry, undefined, createKey()) : createLocation(entry, undefined, entry.key || createKey());\n }); // Public interface\n\n var createHref = createPath;\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var prevIndex = history.index;\n var nextIndex = prevIndex + 1;\n var nextEntries = history.entries.slice(0);\n\n if (nextEntries.length > nextIndex) {\n nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location);\n } else {\n nextEntries.push(location);\n }\n\n setState({\n action: action,\n location: location,\n index: nextIndex,\n entries: nextEntries\n });\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n history.entries[history.index] = location;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n var nextIndex = clamp(history.index + n, 0, history.entries.length - 1);\n var action = 'POP';\n var location = history.entries[nextIndex];\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location,\n index: nextIndex\n });\n } else {\n // Mimic the behavior of DOM histories by\n // causing a render after a cancelled POP.\n setState();\n }\n });\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n function canGo(n) {\n var nextIndex = history.index + n;\n return nextIndex >= 0 && nextIndex < history.entries.length;\n }\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n return transitionManager.setPrompt(prompt);\n }\n\n function listen(listener) {\n return transitionManager.appendListener(listener);\n }\n\n var history = {\n length: entries.length,\n action: 'POP',\n location: entries[index],\n index: index,\n entries: entries,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n canGo: canGo,\n block: block,\n listen: listen\n };\n return history;\n}\n\nexport { createBrowserHistory, createHashHistory, createMemoryHistory, createLocation, locationsAreEqual, parsePath, createPath };\n","import defineProperty from \"./defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}","import React, { Component } from 'react';\nimport _inheritsLoose from '@babel/runtime/helpers/inheritsLoose';\nimport PropTypes from 'prop-types';\nimport gud from 'gud';\nimport warning from 'tiny-warning';\n\nvar MAX_SIGNED_31_BIT_INT = 1073741823;\n\nfunction objectIs(x, y) {\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\n\nfunction createEventEmitter(value) {\n var handlers = [];\n return {\n on: function on(handler) {\n handlers.push(handler);\n },\n off: function off(handler) {\n handlers = handlers.filter(function (h) {\n return h !== handler;\n });\n },\n get: function get() {\n return value;\n },\n set: function set(newValue, changedBits) {\n value = newValue;\n handlers.forEach(function (handler) {\n return handler(value, changedBits);\n });\n }\n };\n}\n\nfunction onlyChild(children) {\n return Array.isArray(children) ? children[0] : children;\n}\n\nfunction createReactContext(defaultValue, calculateChangedBits) {\n var _Provider$childContex, _Consumer$contextType;\n\n var contextProp = '__create-react-context-' + gud() + '__';\n\n var Provider =\n /*#__PURE__*/\n function (_Component) {\n _inheritsLoose(Provider, _Component);\n\n function Provider() {\n var _this;\n\n _this = _Component.apply(this, arguments) || this;\n _this.emitter = createEventEmitter(_this.props.value);\n return _this;\n }\n\n var _proto = Provider.prototype;\n\n _proto.getChildContext = function getChildContext() {\n var _ref;\n\n return _ref = {}, _ref[contextProp] = this.emitter, _ref;\n };\n\n _proto.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n if (this.props.value !== nextProps.value) {\n var oldValue = this.props.value;\n var newValue = nextProps.value;\n var changedBits;\n\n if (objectIs(oldValue, newValue)) {\n changedBits = 0;\n } else {\n changedBits = typeof calculateChangedBits === 'function' ? calculateChangedBits(oldValue, newValue) : MAX_SIGNED_31_BIT_INT;\n\n if (process.env.NODE_ENV !== 'production') {\n warning((changedBits & MAX_SIGNED_31_BIT_INT) === changedBits, 'calculateChangedBits: Expected the return value to be a ' + '31-bit integer. Instead received: ' + changedBits);\n }\n\n changedBits |= 0;\n\n if (changedBits !== 0) {\n this.emitter.set(nextProps.value, changedBits);\n }\n }\n }\n };\n\n _proto.render = function render() {\n return this.props.children;\n };\n\n return Provider;\n }(Component);\n\n Provider.childContextTypes = (_Provider$childContex = {}, _Provider$childContex[contextProp] = PropTypes.object.isRequired, _Provider$childContex);\n\n var Consumer =\n /*#__PURE__*/\n function (_Component2) {\n _inheritsLoose(Consumer, _Component2);\n\n function Consumer() {\n var _this2;\n\n _this2 = _Component2.apply(this, arguments) || this;\n _this2.state = {\n value: _this2.getValue()\n };\n\n _this2.onUpdate = function (newValue, changedBits) {\n var observedBits = _this2.observedBits | 0;\n\n if ((observedBits & changedBits) !== 0) {\n _this2.setState({\n value: _this2.getValue()\n });\n }\n };\n\n return _this2;\n }\n\n var _proto2 = Consumer.prototype;\n\n _proto2.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n var observedBits = nextProps.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits;\n };\n\n _proto2.componentDidMount = function componentDidMount() {\n if (this.context[contextProp]) {\n this.context[contextProp].on(this.onUpdate);\n }\n\n var observedBits = this.props.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits;\n };\n\n _proto2.componentWillUnmount = function componentWillUnmount() {\n if (this.context[contextProp]) {\n this.context[contextProp].off(this.onUpdate);\n }\n };\n\n _proto2.getValue = function getValue() {\n if (this.context[contextProp]) {\n return this.context[contextProp].get();\n } else {\n return defaultValue;\n }\n };\n\n _proto2.render = function render() {\n return onlyChild(this.props.children)(this.state.value);\n };\n\n return Consumer;\n }(Component);\n\n Consumer.contextTypes = (_Consumer$contextType = {}, _Consumer$contextType[contextProp] = PropTypes.object, _Consumer$contextType);\n return {\n Provider: Provider,\n Consumer: Consumer\n };\n}\n\nvar index = React.createContext || createReactContext;\n\nexport default index;\n","// TODO: Replace with React.createContext once we can assume React 16+\nimport createContext from \"mini-create-react-context\";\n\nconst createNamedContext = name => {\n const context = createContext();\n context.displayName = name;\n\n return context;\n};\n\nconst context = /*#__PURE__*/ createNamedContext(\"Router\");\nexport default context;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext\";\n\n/**\n * The public API for putting history on context.\n */\nclass Router extends React.Component {\n static computeRootMatch(pathname) {\n return { path: \"/\", url: \"/\", params: {}, isExact: pathname === \"/\" };\n }\n\n constructor(props) {\n super(props);\n\n this.state = {\n location: props.history.location\n };\n\n // This is a bit of a hack. We have to start listening for location\n // changes here in the constructor in case there are any s\n // on the initial render. If there are, they will replace/push when\n // they mount and since cDM fires in children before parents, we may\n // get a new location before the is mounted.\n this._isMounted = false;\n this._pendingLocation = null;\n\n if (!props.staticContext) {\n this.unlisten = props.history.listen(location => {\n if (this._isMounted) {\n this.setState({ location });\n } else {\n this._pendingLocation = location;\n }\n });\n }\n }\n\n componentDidMount() {\n this._isMounted = true;\n\n if (this._pendingLocation) {\n this.setState({ location: this._pendingLocation });\n }\n }\n\n componentWillUnmount() {\n if (this.unlisten) this.unlisten();\n }\n\n render() {\n return (\n \n );\n }\n}\n\nif (__DEV__) {\n Router.propTypes = {\n children: PropTypes.node,\n history: PropTypes.object.isRequired,\n staticContext: PropTypes.object\n };\n\n Router.prototype.componentDidUpdate = function(prevProps) {\n warning(\n prevProps.history === this.props.history,\n \"You cannot change \"\n );\n };\n}\n\nexport default Router;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createMemoryHistory as createHistory } from \"history\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router\";\n\n/**\n * The public API for a that stores location in memory.\n */\nclass MemoryRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n MemoryRouter.propTypes = {\n initialEntries: PropTypes.array,\n initialIndex: PropTypes.number,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number,\n children: PropTypes.node\n };\n\n MemoryRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { MemoryRouter as Router }`.\"\n );\n };\n}\n\nexport default MemoryRouter;\n","import React from \"react\";\n\nclass Lifecycle extends React.Component {\n componentDidMount() {\n if (this.props.onMount) this.props.onMount.call(this, this);\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.onUpdate) this.props.onUpdate.call(this, this, prevProps);\n }\n\n componentWillUnmount() {\n if (this.props.onUnmount) this.props.onUnmount.call(this, this);\n }\n\n render() {\n return null;\n }\n}\n\nexport default Lifecycle;\n","import pathToRegexp from \"path-to-regexp\";\n\nconst cache = {};\nconst cacheLimit = 10000;\nlet cacheCount = 0;\n\nfunction compilePath(path, options) {\n const cacheKey = `${options.end}${options.strict}${options.sensitive}`;\n const pathCache = cache[cacheKey] || (cache[cacheKey] = {});\n\n if (pathCache[path]) return pathCache[path];\n\n const keys = [];\n const regexp = pathToRegexp(path, keys, options);\n const result = { regexp, keys };\n\n if (cacheCount < cacheLimit) {\n pathCache[path] = result;\n cacheCount++;\n }\n\n return result;\n}\n\n/**\n * Public API for matching a URL pathname to a path.\n */\nfunction matchPath(pathname, options = {}) {\n if (typeof options === \"string\" || Array.isArray(options)) {\n options = { path: options };\n }\n\n const { path, exact = false, strict = false, sensitive = false } = options;\n\n const paths = [].concat(path);\n\n return paths.reduce((matched, path) => {\n if (!path && path !== \"\") return null;\n if (matched) return matched;\n\n const { regexp, keys } = compilePath(path, {\n end: exact,\n strict,\n sensitive\n });\n const match = regexp.exec(pathname);\n\n if (!match) return null;\n\n const [url, ...values] = match;\n const isExact = pathname === url;\n\n if (exact && !isExact) return null;\n\n return {\n path, // the path used to match\n url: path === \"/\" && url === \"\" ? \"/\" : url, // the matched portion of the URL\n isExact, // whether or not we matched exactly\n params: keys.reduce((memo, key, index) => {\n memo[key.name] = values[index];\n return memo;\n }, {})\n };\n }, null);\n}\n\nexport default matchPath;\n","import React from \"react\";\nimport { isValidElementType } from \"react-is\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext\";\nimport matchPath from \"./matchPath\";\n\nfunction isEmptyChildren(children) {\n return React.Children.count(children) === 0;\n}\n\nfunction evalChildrenDev(children, props, path) {\n const value = children(props);\n\n warning(\n value !== undefined,\n \"You returned `undefined` from the `children` function of \" +\n `, but you ` +\n \"should have returned a React element or `null`\"\n );\n\n return value || null;\n}\n\n/**\n * The public API for matching a single path and rendering.\n */\nclass Route extends React.Component {\n render() {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const location = this.props.location || context.location;\n const match = this.props.computedMatch\n ? this.props.computedMatch // already computed the match for us\n : this.props.path\n ? matchPath(location.pathname, this.props)\n : context.match;\n\n const props = { ...context, location, match };\n\n let { children, component, render } = this.props;\n\n // Preact uses an empty array as children by\n // default, so use null if that's the case.\n if (Array.isArray(children) && children.length === 0) {\n children = null;\n }\n\n return (\n \n {props.match\n ? children\n ? typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : children\n : component\n ? React.createElement(component, props)\n : render\n ? render(props)\n : null\n : typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : null}\n \n );\n }}\n \n );\n }\n}\n\nif (__DEV__) {\n Route.propTypes = {\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n component: (props, propName) => {\n if (props[propName] && !isValidElementType(props[propName])) {\n return new Error(\n `Invalid prop 'component' supplied to 'Route': the prop is not a valid React component`\n );\n }\n },\n exact: PropTypes.bool,\n location: PropTypes.object,\n path: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string)\n ]),\n render: PropTypes.func,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool\n };\n\n Route.prototype.componentDidMount = function() {\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.component\n ),\n \"You should not use and in the same route; will be ignored\"\n );\n\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.render\n ),\n \"You should not use and in the same route; will be ignored\"\n );\n\n warning(\n !(this.props.component && this.props.render),\n \"You should not use and in the same route; will be ignored\"\n );\n };\n\n Route.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Route;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createLocation, createPath } from \"history\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router\";\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === \"/\" ? path : \"/\" + path;\n}\n\nfunction addBasename(basename, location) {\n if (!basename) return location;\n\n return {\n ...location,\n pathname: addLeadingSlash(basename) + location.pathname\n };\n}\n\nfunction stripBasename(basename, location) {\n if (!basename) return location;\n\n const base = addLeadingSlash(basename);\n\n if (location.pathname.indexOf(base) !== 0) return location;\n\n return {\n ...location,\n pathname: location.pathname.substr(base.length)\n };\n}\n\nfunction createURL(location) {\n return typeof location === \"string\" ? location : createPath(location);\n}\n\nfunction staticHandler(methodName) {\n return () => {\n invariant(false, \"You cannot %s with \", methodName);\n };\n}\n\nfunction noop() {}\n\n/**\n * The public top-level API for a \"static\" , so-called because it\n * can't actually change the current location. Instead, it just records\n * location changes in a context object. Useful mainly in testing and\n * server-rendering scenarios.\n */\nclass StaticRouter extends React.Component {\n navigateTo(location, action) {\n const { basename = \"\", context = {} } = this.props;\n context.action = action;\n context.location = addBasename(basename, createLocation(location));\n context.url = createURL(context.location);\n }\n\n handlePush = location => this.navigateTo(location, \"PUSH\");\n handleReplace = location => this.navigateTo(location, \"REPLACE\");\n handleListen = () => noop;\n handleBlock = () => noop;\n\n render() {\n const { basename = \"\", context = {}, location = \"/\", ...rest } = this.props;\n\n const history = {\n createHref: path => addLeadingSlash(basename + createURL(path)),\n action: \"POP\",\n location: stripBasename(basename, createLocation(location)),\n push: this.handlePush,\n replace: this.handleReplace,\n go: staticHandler(\"go\"),\n goBack: staticHandler(\"goBack\"),\n goForward: staticHandler(\"goForward\"),\n listen: this.handleListen,\n block: this.handleBlock\n };\n\n return ;\n }\n}\n\nif (__DEV__) {\n StaticRouter.propTypes = {\n basename: PropTypes.string,\n context: PropTypes.object,\n location: PropTypes.oneOfType([PropTypes.string, PropTypes.object])\n };\n\n StaticRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { StaticRouter as Router }`.\"\n );\n };\n}\n\nexport default StaticRouter;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext\";\nimport matchPath from \"./matchPath\";\n\n/**\n * The public API for rendering the first that matches.\n */\nclass Switch extends React.Component {\n render() {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const location = this.props.location || context.location;\n\n let element, match;\n\n // We use React.Children.forEach instead of React.Children.toArray().find()\n // here because toArray adds keys to all child elements and we do not want\n // to trigger an unmount/remount for two s that render the same\n // component at different URLs.\n React.Children.forEach(this.props.children, child => {\n if (match == null && React.isValidElement(child)) {\n element = child;\n\n const path = child.props.path || child.props.from;\n\n match = path\n ? matchPath(location.pathname, { ...child.props, path })\n : context.match;\n }\n });\n\n return match\n ? React.cloneElement(element, { location, computedMatch: match })\n : null;\n }}\n \n );\n }\n}\n\nif (__DEV__) {\n Switch.propTypes = {\n children: PropTypes.node,\n location: PropTypes.object\n };\n\n Switch.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Switch;\n","import React from \"react\";\nimport invariant from \"tiny-invariant\";\n\nimport Context from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nconst useContext = React.useContext;\n\nexport function useHistory() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useHistory()\"\n );\n }\n\n return useContext(Context).history;\n}\n\nexport function useLocation() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useLocation()\"\n );\n }\n\n return useContext(Context).location;\n}\n\nexport function useParams() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useParams()\"\n );\n }\n\n const match = useContext(Context).match;\n return match ? match.params : {};\n}\n\nexport function useRouteMatch(path) {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useRouteMatch()\"\n );\n }\n\n return path\n ? matchPath(useLocation().pathname, path)\n : useContext(Context).match;\n}\n","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","//\n// Main\n//\n\nfunction memoize (fn, options) {\n var cache = options && options.cache\n ? options.cache\n : cacheDefault\n\n var serializer = options && options.serializer\n ? options.serializer\n : serializerDefault\n\n var strategy = options && options.strategy\n ? options.strategy\n : strategyDefault\n\n return strategy(fn, {\n cache: cache,\n serializer: serializer\n })\n}\n\n//\n// Strategy\n//\n\nfunction isPrimitive (value) {\n return value == null || typeof value === 'number' || typeof value === 'boolean' // || typeof value === \"string\" 'unsafe' primitive for our needs\n}\n\nfunction monadic (fn, cache, serializer, arg) {\n var cacheKey = isPrimitive(arg) ? arg : serializer(arg)\n\n var computedValue = cache.get(cacheKey)\n if (typeof computedValue === 'undefined') {\n computedValue = fn.call(this, arg)\n cache.set(cacheKey, computedValue)\n }\n\n return computedValue\n}\n\nfunction variadic (fn, cache, serializer) {\n var args = Array.prototype.slice.call(arguments, 3)\n var cacheKey = serializer(args)\n\n var computedValue = cache.get(cacheKey)\n if (typeof computedValue === 'undefined') {\n computedValue = fn.apply(this, args)\n cache.set(cacheKey, computedValue)\n }\n\n return computedValue\n}\n\nfunction assemble (fn, context, strategy, cache, serialize) {\n return strategy.bind(\n context,\n fn,\n cache,\n serialize\n )\n}\n\nfunction strategyDefault (fn, options) {\n var strategy = fn.length === 1 ? monadic : variadic\n\n return assemble(\n fn,\n this,\n strategy,\n options.cache.create(),\n options.serializer\n )\n}\n\nfunction strategyVariadic (fn, options) {\n var strategy = variadic\n\n return assemble(\n fn,\n this,\n strategy,\n options.cache.create(),\n options.serializer\n )\n}\n\nfunction strategyMonadic (fn, options) {\n var strategy = monadic\n\n return assemble(\n fn,\n this,\n strategy,\n options.cache.create(),\n options.serializer\n )\n}\n\n//\n// Serializer\n//\n\nfunction serializerDefault () {\n return JSON.stringify(arguments)\n}\n\n//\n// Cache\n//\n\nfunction ObjectWithoutPrototypeCache () {\n this.cache = Object.create(null)\n}\n\nObjectWithoutPrototypeCache.prototype.has = function (key) {\n return (key in this.cache)\n}\n\nObjectWithoutPrototypeCache.prototype.get = function (key) {\n return this.cache[key]\n}\n\nObjectWithoutPrototypeCache.prototype.set = function (key, value) {\n this.cache[key] = value\n}\n\nvar cacheDefault = {\n create: function create () {\n return new ObjectWithoutPrototypeCache()\n }\n}\n\n//\n// API\n//\n\nmodule.exports = memoize\nmodule.exports.strategies = {\n variadic: strategyVariadic,\n monadic: strategyMonadic\n}\n",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./sha1\"), require(\"./hmac\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./sha1\", \"./hmac\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var Base = C_lib.Base;\n\t var WordArray = C_lib.WordArray;\n\t var C_algo = C.algo;\n\t var MD5 = C_algo.MD5;\n\n\t /**\n\t * This key derivation function is meant to conform with EVP_BytesToKey.\n\t * www.openssl.org/docs/crypto/EVP_BytesToKey.html\n\t */\n\t var EvpKDF = C_algo.EvpKDF = Base.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {number} keySize The key size in words to generate. Default: 4 (128 bits)\n\t * @property {Hasher} hasher The hash algorithm to use. Default: MD5\n\t * @property {number} iterations The number of iterations to perform. Default: 1\n\t */\n\t cfg: Base.extend({\n\t keySize: 128/32,\n\t hasher: MD5,\n\t iterations: 1\n\t }),\n\n\t /**\n\t * Initializes a newly created key derivation function.\n\t *\n\t * @param {Object} cfg (Optional) The configuration options to use for the derivation.\n\t *\n\t * @example\n\t *\n\t * var kdf = CryptoJS.algo.EvpKDF.create();\n\t * var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8 });\n\t * var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8, iterations: 1000 });\n\t */\n\t init: function (cfg) {\n\t this.cfg = this.cfg.extend(cfg);\n\t },\n\n\t /**\n\t * Derives a key from a password.\n\t *\n\t * @param {WordArray|string} password The password.\n\t * @param {WordArray|string} salt A salt.\n\t *\n\t * @return {WordArray} The derived key.\n\t *\n\t * @example\n\t *\n\t * var key = kdf.compute(password, salt);\n\t */\n\t compute: function (password, salt) {\n\t // Shortcut\n\t var cfg = this.cfg;\n\n\t // Init hasher\n\t var hasher = cfg.hasher.create();\n\n\t // Initial values\n\t var derivedKey = WordArray.create();\n\n\t // Shortcuts\n\t var derivedKeyWords = derivedKey.words;\n\t var keySize = cfg.keySize;\n\t var iterations = cfg.iterations;\n\n\t // Generate key\n\t while (derivedKeyWords.length < keySize) {\n\t if (block) {\n\t hasher.update(block);\n\t }\n\t var block = hasher.update(password).finalize(salt);\n\t hasher.reset();\n\n\t // Iterations\n\t for (var i = 1; i < iterations; i++) {\n\t block = hasher.finalize(block);\n\t hasher.reset();\n\t }\n\n\t derivedKey.concat(block);\n\t }\n\t derivedKey.sigBytes = keySize * 4;\n\n\t return derivedKey;\n\t }\n\t });\n\n\t /**\n\t * Derives a key from a password.\n\t *\n\t * @param {WordArray|string} password The password.\n\t * @param {WordArray|string} salt A salt.\n\t * @param {Object} cfg (Optional) The configuration options to use for this computation.\n\t *\n\t * @return {WordArray} The derived key.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var key = CryptoJS.EvpKDF(password, salt);\n\t * var key = CryptoJS.EvpKDF(password, salt, { keySize: 8 });\n\t * var key = CryptoJS.EvpKDF(password, salt, { keySize: 8, iterations: 1000 });\n\t */\n\t C.EvpKDF = function (password, salt, cfg) {\n\t return EvpKDF.create(cfg).compute(password, salt);\n\t };\n\t}());\n\n\n\treturn CryptoJS.EvpKDF;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var C_enc = C.enc;\n\n\t /**\n\t * Base64 encoding strategy.\n\t */\n\t var Base64 = C_enc.Base64 = {\n\t /**\n\t * Converts a word array to a Base64 string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The Base64 string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var base64String = CryptoJS.enc.Base64.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\t var map = this._map;\n\n\t // Clamp excess bits\n\t wordArray.clamp();\n\n\t // Convert\n\t var base64Chars = [];\n\t for (var i = 0; i < sigBytes; i += 3) {\n\t var byte1 = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n\t var byte2 = (words[(i + 1) >>> 2] >>> (24 - ((i + 1) % 4) * 8)) & 0xff;\n\t var byte3 = (words[(i + 2) >>> 2] >>> (24 - ((i + 2) % 4) * 8)) & 0xff;\n\n\t var triplet = (byte1 << 16) | (byte2 << 8) | byte3;\n\n\t for (var j = 0; (j < 4) && (i + j * 0.75 < sigBytes); j++) {\n\t base64Chars.push(map.charAt((triplet >>> (6 * (3 - j))) & 0x3f));\n\t }\n\t }\n\n\t // Add padding\n\t var paddingChar = map.charAt(64);\n\t if (paddingChar) {\n\t while (base64Chars.length % 4) {\n\t base64Chars.push(paddingChar);\n\t }\n\t }\n\n\t return base64Chars.join('');\n\t },\n\n\t /**\n\t * Converts a Base64 string to a word array.\n\t *\n\t * @param {string} base64Str The Base64 string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Base64.parse(base64String);\n\t */\n\t parse: function (base64Str) {\n\t // Shortcuts\n\t var base64StrLength = base64Str.length;\n\t var map = this._map;\n\t var reverseMap = this._reverseMap;\n\n\t if (!reverseMap) {\n\t reverseMap = this._reverseMap = [];\n\t for (var j = 0; j < map.length; j++) {\n\t reverseMap[map.charCodeAt(j)] = j;\n\t }\n\t }\n\n\t // Ignore padding\n\t var paddingChar = map.charAt(64);\n\t if (paddingChar) {\n\t var paddingIndex = base64Str.indexOf(paddingChar);\n\t if (paddingIndex !== -1) {\n\t base64StrLength = paddingIndex;\n\t }\n\t }\n\n\t // Convert\n\t return parseLoop(base64Str, base64StrLength, reverseMap);\n\n\t },\n\n\t _map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='\n\t };\n\n\t function parseLoop(base64Str, base64StrLength, reverseMap) {\n\t var words = [];\n\t var nBytes = 0;\n\t for (var i = 0; i < base64StrLength; i++) {\n\t if (i % 4) {\n\t var bits1 = reverseMap[base64Str.charCodeAt(i - 1)] << ((i % 4) * 2);\n\t var bits2 = reverseMap[base64Str.charCodeAt(i)] >>> (6 - (i % 4) * 2);\n\t words[nBytes >>> 2] |= (bits1 | bits2) << (24 - (nBytes % 4) * 8);\n\t nBytes++;\n\t }\n\t }\n\t return WordArray.create(words, nBytes);\n\t }\n\t}());\n\n\n\treturn CryptoJS.enc.Base64;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function (Math) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var Hasher = C_lib.Hasher;\n\t var C_algo = C.algo;\n\n\t // Constants table\n\t var T = [];\n\n\t // Compute constants\n\t (function () {\n\t for (var i = 0; i < 64; i++) {\n\t T[i] = (Math.abs(Math.sin(i + 1)) * 0x100000000) | 0;\n\t }\n\t }());\n\n\t /**\n\t * MD5 hash algorithm.\n\t */\n\t var MD5 = C_algo.MD5 = Hasher.extend({\n\t _doReset: function () {\n\t this._hash = new WordArray.init([\n\t 0x67452301, 0xefcdab89,\n\t 0x98badcfe, 0x10325476\n\t ]);\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Swap endian\n\t for (var i = 0; i < 16; i++) {\n\t // Shortcuts\n\t var offset_i = offset + i;\n\t var M_offset_i = M[offset_i];\n\n\t M[offset_i] = (\n\t (((M_offset_i << 8) | (M_offset_i >>> 24)) & 0x00ff00ff) |\n\t (((M_offset_i << 24) | (M_offset_i >>> 8)) & 0xff00ff00)\n\t );\n\t }\n\n\t // Shortcuts\n\t var H = this._hash.words;\n\n\t var M_offset_0 = M[offset + 0];\n\t var M_offset_1 = M[offset + 1];\n\t var M_offset_2 = M[offset + 2];\n\t var M_offset_3 = M[offset + 3];\n\t var M_offset_4 = M[offset + 4];\n\t var M_offset_5 = M[offset + 5];\n\t var M_offset_6 = M[offset + 6];\n\t var M_offset_7 = M[offset + 7];\n\t var M_offset_8 = M[offset + 8];\n\t var M_offset_9 = M[offset + 9];\n\t var M_offset_10 = M[offset + 10];\n\t var M_offset_11 = M[offset + 11];\n\t var M_offset_12 = M[offset + 12];\n\t var M_offset_13 = M[offset + 13];\n\t var M_offset_14 = M[offset + 14];\n\t var M_offset_15 = M[offset + 15];\n\n\t // Working varialbes\n\t var a = H[0];\n\t var b = H[1];\n\t var c = H[2];\n\t var d = H[3];\n\n\t // Computation\n\t a = FF(a, b, c, d, M_offset_0, 7, T[0]);\n\t d = FF(d, a, b, c, M_offset_1, 12, T[1]);\n\t c = FF(c, d, a, b, M_offset_2, 17, T[2]);\n\t b = FF(b, c, d, a, M_offset_3, 22, T[3]);\n\t a = FF(a, b, c, d, M_offset_4, 7, T[4]);\n\t d = FF(d, a, b, c, M_offset_5, 12, T[5]);\n\t c = FF(c, d, a, b, M_offset_6, 17, T[6]);\n\t b = FF(b, c, d, a, M_offset_7, 22, T[7]);\n\t a = FF(a, b, c, d, M_offset_8, 7, T[8]);\n\t d = FF(d, a, b, c, M_offset_9, 12, T[9]);\n\t c = FF(c, d, a, b, M_offset_10, 17, T[10]);\n\t b = FF(b, c, d, a, M_offset_11, 22, T[11]);\n\t a = FF(a, b, c, d, M_offset_12, 7, T[12]);\n\t d = FF(d, a, b, c, M_offset_13, 12, T[13]);\n\t c = FF(c, d, a, b, M_offset_14, 17, T[14]);\n\t b = FF(b, c, d, a, M_offset_15, 22, T[15]);\n\n\t a = GG(a, b, c, d, M_offset_1, 5, T[16]);\n\t d = GG(d, a, b, c, M_offset_6, 9, T[17]);\n\t c = GG(c, d, a, b, M_offset_11, 14, T[18]);\n\t b = GG(b, c, d, a, M_offset_0, 20, T[19]);\n\t a = GG(a, b, c, d, M_offset_5, 5, T[20]);\n\t d = GG(d, a, b, c, M_offset_10, 9, T[21]);\n\t c = GG(c, d, a, b, M_offset_15, 14, T[22]);\n\t b = GG(b, c, d, a, M_offset_4, 20, T[23]);\n\t a = GG(a, b, c, d, M_offset_9, 5, T[24]);\n\t d = GG(d, a, b, c, M_offset_14, 9, T[25]);\n\t c = GG(c, d, a, b, M_offset_3, 14, T[26]);\n\t b = GG(b, c, d, a, M_offset_8, 20, T[27]);\n\t a = GG(a, b, c, d, M_offset_13, 5, T[28]);\n\t d = GG(d, a, b, c, M_offset_2, 9, T[29]);\n\t c = GG(c, d, a, b, M_offset_7, 14, T[30]);\n\t b = GG(b, c, d, a, M_offset_12, 20, T[31]);\n\n\t a = HH(a, b, c, d, M_offset_5, 4, T[32]);\n\t d = HH(d, a, b, c, M_offset_8, 11, T[33]);\n\t c = HH(c, d, a, b, M_offset_11, 16, T[34]);\n\t b = HH(b, c, d, a, M_offset_14, 23, T[35]);\n\t a = HH(a, b, c, d, M_offset_1, 4, T[36]);\n\t d = HH(d, a, b, c, M_offset_4, 11, T[37]);\n\t c = HH(c, d, a, b, M_offset_7, 16, T[38]);\n\t b = HH(b, c, d, a, M_offset_10, 23, T[39]);\n\t a = HH(a, b, c, d, M_offset_13, 4, T[40]);\n\t d = HH(d, a, b, c, M_offset_0, 11, T[41]);\n\t c = HH(c, d, a, b, M_offset_3, 16, T[42]);\n\t b = HH(b, c, d, a, M_offset_6, 23, T[43]);\n\t a = HH(a, b, c, d, M_offset_9, 4, T[44]);\n\t d = HH(d, a, b, c, M_offset_12, 11, T[45]);\n\t c = HH(c, d, a, b, M_offset_15, 16, T[46]);\n\t b = HH(b, c, d, a, M_offset_2, 23, T[47]);\n\n\t a = II(a, b, c, d, M_offset_0, 6, T[48]);\n\t d = II(d, a, b, c, M_offset_7, 10, T[49]);\n\t c = II(c, d, a, b, M_offset_14, 15, T[50]);\n\t b = II(b, c, d, a, M_offset_5, 21, T[51]);\n\t a = II(a, b, c, d, M_offset_12, 6, T[52]);\n\t d = II(d, a, b, c, M_offset_3, 10, T[53]);\n\t c = II(c, d, a, b, M_offset_10, 15, T[54]);\n\t b = II(b, c, d, a, M_offset_1, 21, T[55]);\n\t a = II(a, b, c, d, M_offset_8, 6, T[56]);\n\t d = II(d, a, b, c, M_offset_15, 10, T[57]);\n\t c = II(c, d, a, b, M_offset_6, 15, T[58]);\n\t b = II(b, c, d, a, M_offset_13, 21, T[59]);\n\t a = II(a, b, c, d, M_offset_4, 6, T[60]);\n\t d = II(d, a, b, c, M_offset_11, 10, T[61]);\n\t c = II(c, d, a, b, M_offset_2, 15, T[62]);\n\t b = II(b, c, d, a, M_offset_9, 21, T[63]);\n\n\t // Intermediate hash value\n\t H[0] = (H[0] + a) | 0;\n\t H[1] = (H[1] + b) | 0;\n\t H[2] = (H[2] + c) | 0;\n\t H[3] = (H[3] + d) | 0;\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n\n\t var nBitsTotalH = Math.floor(nBitsTotal / 0x100000000);\n\t var nBitsTotalL = nBitsTotal;\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = (\n\t (((nBitsTotalH << 8) | (nBitsTotalH >>> 24)) & 0x00ff00ff) |\n\t (((nBitsTotalH << 24) | (nBitsTotalH >>> 8)) & 0xff00ff00)\n\t );\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = (\n\t (((nBitsTotalL << 8) | (nBitsTotalL >>> 24)) & 0x00ff00ff) |\n\t (((nBitsTotalL << 24) | (nBitsTotalL >>> 8)) & 0xff00ff00)\n\t );\n\n\t data.sigBytes = (dataWords.length + 1) * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Shortcuts\n\t var hash = this._hash;\n\t var H = hash.words;\n\n\t // Swap endian\n\t for (var i = 0; i < 4; i++) {\n\t // Shortcut\n\t var H_i = H[i];\n\n\t H[i] = (((H_i << 8) | (H_i >>> 24)) & 0x00ff00ff) |\n\t (((H_i << 24) | (H_i >>> 8)) & 0xff00ff00);\n\t }\n\n\t // Return final computed hash\n\t return hash;\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\t clone._hash = this._hash.clone();\n\n\t return clone;\n\t }\n\t });\n\n\t function FF(a, b, c, d, x, s, t) {\n\t var n = a + ((b & c) | (~b & d)) + x + t;\n\t return ((n << s) | (n >>> (32 - s))) + b;\n\t }\n\n\t function GG(a, b, c, d, x, s, t) {\n\t var n = a + ((b & d) | (c & ~d)) + x + t;\n\t return ((n << s) | (n >>> (32 - s))) + b;\n\t }\n\n\t function HH(a, b, c, d, x, s, t) {\n\t var n = a + (b ^ c ^ d) + x + t;\n\t return ((n << s) | (n >>> (32 - s))) + b;\n\t }\n\n\t function II(a, b, c, d, x, s, t) {\n\t var n = a + (c ^ (b | ~d)) + x + t;\n\t return ((n << s) | (n >>> (32 - s))) + b;\n\t }\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.MD5('message');\n\t * var hash = CryptoJS.MD5(wordArray);\n\t */\n\t C.MD5 = Hasher._createHelper(MD5);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacMD5(message, key);\n\t */\n\t C.HmacMD5 = Hasher._createHmacHelper(MD5);\n\t}(Math));\n\n\n\treturn CryptoJS.MD5;\n\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","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","import arrayLikeToArray from \"./arrayLikeToArray\";\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(n);\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\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function (undefined) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var Base = C_lib.Base;\n\t var X32WordArray = C_lib.WordArray;\n\n\t /**\n\t * x64 namespace.\n\t */\n\t var C_x64 = C.x64 = {};\n\n\t /**\n\t * A 64-bit word.\n\t */\n\t var X64Word = C_x64.Word = Base.extend({\n\t /**\n\t * Initializes a newly created 64-bit word.\n\t *\n\t * @param {number} high The high 32 bits.\n\t * @param {number} low The low 32 bits.\n\t *\n\t * @example\n\t *\n\t * var x64Word = CryptoJS.x64.Word.create(0x00010203, 0x04050607);\n\t */\n\t init: function (high, low) {\n\t this.high = high;\n\t this.low = low;\n\t }\n\n\t /**\n\t * Bitwise NOTs this word.\n\t *\n\t * @return {X64Word} A new x64-Word object after negating.\n\t *\n\t * @example\n\t *\n\t * var negated = x64Word.not();\n\t */\n\t // not: function () {\n\t // var high = ~this.high;\n\t // var low = ~this.low;\n\n\t // return X64Word.create(high, low);\n\t // },\n\n\t /**\n\t * Bitwise ANDs this word with the passed word.\n\t *\n\t * @param {X64Word} word The x64-Word to AND with this word.\n\t *\n\t * @return {X64Word} A new x64-Word object after ANDing.\n\t *\n\t * @example\n\t *\n\t * var anded = x64Word.and(anotherX64Word);\n\t */\n\t // and: function (word) {\n\t // var high = this.high & word.high;\n\t // var low = this.low & word.low;\n\n\t // return X64Word.create(high, low);\n\t // },\n\n\t /**\n\t * Bitwise ORs this word with the passed word.\n\t *\n\t * @param {X64Word} word The x64-Word to OR with this word.\n\t *\n\t * @return {X64Word} A new x64-Word object after ORing.\n\t *\n\t * @example\n\t *\n\t * var ored = x64Word.or(anotherX64Word);\n\t */\n\t // or: function (word) {\n\t // var high = this.high | word.high;\n\t // var low = this.low | word.low;\n\n\t // return X64Word.create(high, low);\n\t // },\n\n\t /**\n\t * Bitwise XORs this word with the passed word.\n\t *\n\t * @param {X64Word} word The x64-Word to XOR with this word.\n\t *\n\t * @return {X64Word} A new x64-Word object after XORing.\n\t *\n\t * @example\n\t *\n\t * var xored = x64Word.xor(anotherX64Word);\n\t */\n\t // xor: function (word) {\n\t // var high = this.high ^ word.high;\n\t // var low = this.low ^ word.low;\n\n\t // return X64Word.create(high, low);\n\t // },\n\n\t /**\n\t * Shifts this word n bits to the left.\n\t *\n\t * @param {number} n The number of bits to shift.\n\t *\n\t * @return {X64Word} A new x64-Word object after shifting.\n\t *\n\t * @example\n\t *\n\t * var shifted = x64Word.shiftL(25);\n\t */\n\t // shiftL: function (n) {\n\t // if (n < 32) {\n\t // var high = (this.high << n) | (this.low >>> (32 - n));\n\t // var low = this.low << n;\n\t // } else {\n\t // var high = this.low << (n - 32);\n\t // var low = 0;\n\t // }\n\n\t // return X64Word.create(high, low);\n\t // },\n\n\t /**\n\t * Shifts this word n bits to the right.\n\t *\n\t * @param {number} n The number of bits to shift.\n\t *\n\t * @return {X64Word} A new x64-Word object after shifting.\n\t *\n\t * @example\n\t *\n\t * var shifted = x64Word.shiftR(7);\n\t */\n\t // shiftR: function (n) {\n\t // if (n < 32) {\n\t // var low = (this.low >>> n) | (this.high << (32 - n));\n\t // var high = this.high >>> n;\n\t // } else {\n\t // var low = this.high >>> (n - 32);\n\t // var high = 0;\n\t // }\n\n\t // return X64Word.create(high, low);\n\t // },\n\n\t /**\n\t * Rotates this word n bits to the left.\n\t *\n\t * @param {number} n The number of bits to rotate.\n\t *\n\t * @return {X64Word} A new x64-Word object after rotating.\n\t *\n\t * @example\n\t *\n\t * var rotated = x64Word.rotL(25);\n\t */\n\t // rotL: function (n) {\n\t // return this.shiftL(n).or(this.shiftR(64 - n));\n\t // },\n\n\t /**\n\t * Rotates this word n bits to the right.\n\t *\n\t * @param {number} n The number of bits to rotate.\n\t *\n\t * @return {X64Word} A new x64-Word object after rotating.\n\t *\n\t * @example\n\t *\n\t * var rotated = x64Word.rotR(7);\n\t */\n\t // rotR: function (n) {\n\t // return this.shiftR(n).or(this.shiftL(64 - n));\n\t // },\n\n\t /**\n\t * Adds this word with the passed word.\n\t *\n\t * @param {X64Word} word The x64-Word to add with this word.\n\t *\n\t * @return {X64Word} A new x64-Word object after adding.\n\t *\n\t * @example\n\t *\n\t * var added = x64Word.add(anotherX64Word);\n\t */\n\t // add: function (word) {\n\t // var low = (this.low + word.low) | 0;\n\t // var carry = (low >>> 0) < (this.low >>> 0) ? 1 : 0;\n\t // var high = (this.high + word.high + carry) | 0;\n\n\t // return X64Word.create(high, low);\n\t // }\n\t });\n\n\t /**\n\t * An array of 64-bit words.\n\t *\n\t * @property {Array} words The array of CryptoJS.x64.Word objects.\n\t * @property {number} sigBytes The number of significant bytes in this word array.\n\t */\n\t var X64WordArray = C_x64.WordArray = Base.extend({\n\t /**\n\t * Initializes a newly created word array.\n\t *\n\t * @param {Array} words (Optional) An array of CryptoJS.x64.Word objects.\n\t * @param {number} sigBytes (Optional) The number of significant bytes in the words.\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.x64.WordArray.create();\n\t *\n\t * var wordArray = CryptoJS.x64.WordArray.create([\n\t * CryptoJS.x64.Word.create(0x00010203, 0x04050607),\n\t * CryptoJS.x64.Word.create(0x18191a1b, 0x1c1d1e1f)\n\t * ]);\n\t *\n\t * var wordArray = CryptoJS.x64.WordArray.create([\n\t * CryptoJS.x64.Word.create(0x00010203, 0x04050607),\n\t * CryptoJS.x64.Word.create(0x18191a1b, 0x1c1d1e1f)\n\t * ], 10);\n\t */\n\t init: function (words, sigBytes) {\n\t words = this.words = words || [];\n\n\t if (sigBytes != undefined) {\n\t this.sigBytes = sigBytes;\n\t } else {\n\t this.sigBytes = words.length * 8;\n\t }\n\t },\n\n\t /**\n\t * Converts this 64-bit word array to a 32-bit word array.\n\t *\n\t * @return {CryptoJS.lib.WordArray} This word array's data as a 32-bit word array.\n\t *\n\t * @example\n\t *\n\t * var x32WordArray = x64WordArray.toX32();\n\t */\n\t toX32: function () {\n\t // Shortcuts\n\t var x64Words = this.words;\n\t var x64WordsLength = x64Words.length;\n\n\t // Convert\n\t var x32Words = [];\n\t for (var i = 0; i < x64WordsLength; i++) {\n\t var x64Word = x64Words[i];\n\t x32Words.push(x64Word.high);\n\t x32Words.push(x64Word.low);\n\t }\n\n\t return X32WordArray.create(x32Words, this.sigBytes);\n\t },\n\n\t /**\n\t * Creates a copy of this word array.\n\t *\n\t * @return {X64WordArray} The clone.\n\t *\n\t * @example\n\t *\n\t * var clone = x64WordArray.clone();\n\t */\n\t clone: function () {\n\t var clone = Base.clone.call(this);\n\n\t // Clone \"words\" array\n\t var words = clone.words = this.words.slice(0);\n\n\t // Clone each X64Word object\n\t var wordsLength = words.length;\n\t for (var i = 0; i < wordsLength; i++) {\n\t words[i] = words[i].clone();\n\t }\n\n\t return clone;\n\t }\n\t });\n\t}());\n\n\n\treturn CryptoJS;\n\n}));","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.dontSetMe = dontSetMe;\nexports.findInArray = findInArray;\nexports.int = int;\nexports.isFunction = isFunction;\nexports.isNum = isNum;\n\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nfunction findInArray(array\n/*: Array | TouchList*/\n, callback\n/*: Function*/\n)\n/*: any*/\n{\n for (var i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nfunction isFunction(func\n/*: any*/\n)\n/*: boolean %checks*/\n{\n // $FlowIgnore[method-unbinding]\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\nfunction isNum(num\n/*: any*/\n)\n/*: boolean %checks*/\n{\n return typeof num === 'number' && !isNaN(num);\n}\n\nfunction int(a\n/*: string*/\n)\n/*: number*/\n{\n return parseInt(a, 10);\n}\n\nfunction dontSetMe(props\n/*: Object*/\n, propName\n/*: string*/\n, componentName\n/*: string*/\n)\n/*: ?Error*/\n{\n if (props[propName]) {\n return new Error(\"Invalid prop \".concat(propName, \" passed to \").concat(componentName, \" - do not set this, set it on the child.\"));\n }\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.findInArray = findInArray;\nexports.isFunction = isFunction;\nexports.isNum = isNum;\nexports.int = int;\nexports.dontSetMe = dontSetMe;\n\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nfunction findInArray(array\n/*: Array | TouchList*/\n, callback\n/*: Function*/\n)\n/*: any*/\n{\n for (var i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\n\nfunction isFunction(func\n/*: any*/\n)\n/*: boolean %checks*/\n{\n // $FlowIgnore[method-unbinding]\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\n\nfunction isNum(num\n/*: any*/\n)\n/*: boolean %checks*/\n{\n return typeof num === 'number' && !isNaN(num);\n}\n\nfunction int(a\n/*: string*/\n)\n/*: number*/\n{\n return parseInt(a, 10);\n}\n\nfunction dontSetMe(props\n/*: Object*/\n, propName\n/*: string*/\n, componentName\n/*: string*/\n)\n/*: ?Error*/\n{\n if (props[propName]) {\n return new Error(\"Invalid prop \".concat(propName, \" passed to \").concat(componentName, \" - do not set this, set it on the child.\"));\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\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport * as React from 'react';\nvar styles = {\n top: {\n width: '100%',\n height: '10px',\n top: '-5px',\n left: '0px',\n cursor: 'row-resize',\n },\n right: {\n width: '10px',\n height: '100%',\n top: '0px',\n right: '-5px',\n cursor: 'col-resize',\n },\n bottom: {\n width: '100%',\n height: '10px',\n bottom: '-5px',\n left: '0px',\n cursor: 'row-resize',\n },\n left: {\n width: '10px',\n height: '100%',\n top: '0px',\n left: '-5px',\n cursor: 'col-resize',\n },\n topRight: {\n width: '20px',\n height: '20px',\n position: 'absolute',\n right: '-10px',\n top: '-10px',\n cursor: 'ne-resize',\n },\n bottomRight: {\n width: '20px',\n height: '20px',\n position: 'absolute',\n right: '-10px',\n bottom: '-10px',\n cursor: 'se-resize',\n },\n bottomLeft: {\n width: '20px',\n height: '20px',\n position: 'absolute',\n left: '-10px',\n bottom: '-10px',\n cursor: 'sw-resize',\n },\n topLeft: {\n width: '20px',\n height: '20px',\n position: 'absolute',\n left: '-10px',\n top: '-10px',\n cursor: 'nw-resize',\n },\n};\nvar Resizer = /** @class */ (function (_super) {\n __extends(Resizer, _super);\n function Resizer() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.onMouseDown = function (e) {\n _this.props.onResizeStart(e, _this.props.direction);\n };\n _this.onTouchStart = function (e) {\n _this.props.onResizeStart(e, _this.props.direction);\n };\n return _this;\n }\n Resizer.prototype.render = function () {\n return (React.createElement(\"div\", { className: this.props.className || '', style: __assign(__assign({ position: 'absolute', userSelect: 'none' }, styles[this.props.direction]), (this.props.replaceStyles || {})), onMouseDown: this.onMouseDown, onTouchStart: this.onTouchStart }, this.props.children));\n };\n return Resizer;\n}(React.PureComponent));\nexport { Resizer };\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport * as React from 'react';\nimport { Resizer } from './resizer';\nimport memoize from 'fast-memoize';\nvar DEFAULT_SIZE = {\n width: 'auto',\n height: 'auto',\n};\nvar clamp = memoize(function (n, min, max) { return Math.max(Math.min(n, max), min); });\nvar snap = memoize(function (n, size) { return Math.round(n / size) * size; });\nvar hasDirection = memoize(function (dir, target) {\n return new RegExp(dir, 'i').test(target);\n});\n// INFO: In case of window is a Proxy and does not porxy Events correctly, use isTouchEvent & isMouseEvent to distinguish event type instead of `instanceof`.\nvar isTouchEvent = function (event) {\n return Boolean(event.touches && event.touches.length);\n};\nvar isMouseEvent = function (event) {\n return Boolean((event.clientX || event.clientX === 0) &&\n (event.clientY || event.clientY === 0));\n};\nvar findClosestSnap = memoize(function (n, snapArray, snapGap) {\n if (snapGap === void 0) { snapGap = 0; }\n var closestGapIndex = snapArray.reduce(function (prev, curr, index) { return (Math.abs(curr - n) < Math.abs(snapArray[prev] - n) ? index : prev); }, 0);\n var gap = Math.abs(snapArray[closestGapIndex] - n);\n return snapGap === 0 || gap < snapGap ? snapArray[closestGapIndex] : n;\n});\nvar endsWith = memoize(function (str, searchStr) {\n return str.substr(str.length - searchStr.length, searchStr.length) === searchStr;\n});\nvar getStringSize = memoize(function (n) {\n n = n.toString();\n if (n === 'auto') {\n return n;\n }\n if (endsWith(n, 'px')) {\n return n;\n }\n if (endsWith(n, '%')) {\n return n;\n }\n if (endsWith(n, 'vh')) {\n return n;\n }\n if (endsWith(n, 'vw')) {\n return n;\n }\n if (endsWith(n, 'vmax')) {\n return n;\n }\n if (endsWith(n, 'vmin')) {\n return n;\n }\n return n + \"px\";\n});\nvar getPixelSize = function (size, parentSize, innerWidth, innerHeight) {\n if (size && typeof size === 'string') {\n if (endsWith(size, 'px')) {\n return Number(size.replace('px', ''));\n }\n if (endsWith(size, '%')) {\n var ratio = Number(size.replace('%', '')) / 100;\n return parentSize * ratio;\n }\n if (endsWith(size, 'vw')) {\n var ratio = Number(size.replace('vw', '')) / 100;\n return innerWidth * ratio;\n }\n if (endsWith(size, 'vh')) {\n var ratio = Number(size.replace('vh', '')) / 100;\n return innerHeight * ratio;\n }\n }\n return size;\n};\nvar calculateNewMax = memoize(function (parentSize, innerWidth, innerHeight, maxWidth, maxHeight, minWidth, minHeight) {\n maxWidth = getPixelSize(maxWidth, parentSize.width, innerWidth, innerHeight);\n maxHeight = getPixelSize(maxHeight, parentSize.height, innerWidth, innerHeight);\n minWidth = getPixelSize(minWidth, parentSize.width, innerWidth, innerHeight);\n minHeight = getPixelSize(minHeight, parentSize.height, innerWidth, innerHeight);\n return {\n maxWidth: typeof maxWidth === 'undefined' ? undefined : Number(maxWidth),\n maxHeight: typeof maxHeight === 'undefined' ? undefined : Number(maxHeight),\n minWidth: typeof minWidth === 'undefined' ? undefined : Number(minWidth),\n minHeight: typeof minHeight === 'undefined' ? undefined : Number(minHeight),\n };\n});\nvar definedProps = [\n 'as',\n 'style',\n 'className',\n 'grid',\n 'snap',\n 'bounds',\n 'boundsByDirection',\n 'size',\n 'defaultSize',\n 'minWidth',\n 'minHeight',\n 'maxWidth',\n 'maxHeight',\n 'lockAspectRatio',\n 'lockAspectRatioExtraWidth',\n 'lockAspectRatioExtraHeight',\n 'enable',\n 'handleStyles',\n 'handleClasses',\n 'handleWrapperStyle',\n 'handleWrapperClass',\n 'children',\n 'onResizeStart',\n 'onResize',\n 'onResizeStop',\n 'handleComponent',\n 'scale',\n 'resizeRatio',\n 'snapGap',\n];\n// HACK: This class is used to calculate % size.\nvar baseClassName = '__resizable_base__';\nvar Resizable = /** @class */ (function (_super) {\n __extends(Resizable, _super);\n function Resizable(props) {\n var _this = _super.call(this, props) || this;\n _this.ratio = 1;\n _this.resizable = null;\n // For parent boundary\n _this.parentLeft = 0;\n _this.parentTop = 0;\n // For boundary\n _this.resizableLeft = 0;\n _this.resizableRight = 0;\n _this.resizableTop = 0;\n _this.resizableBottom = 0;\n // For target boundary\n _this.targetLeft = 0;\n _this.targetTop = 0;\n _this.appendBase = function () {\n if (!_this.resizable || !_this.window) {\n return null;\n }\n var parent = _this.parentNode;\n if (!parent) {\n return null;\n }\n var element = _this.window.document.createElement('div');\n element.style.width = '100%';\n element.style.height = '100%';\n element.style.position = 'absolute';\n element.style.transform = 'scale(0, 0)';\n element.style.left = '0';\n element.style.flex = '0 0 100%';\n if (element.classList) {\n element.classList.add(baseClassName);\n }\n else {\n element.className += baseClassName;\n }\n parent.appendChild(element);\n return element;\n };\n _this.removeBase = function (base) {\n var parent = _this.parentNode;\n if (!parent) {\n return;\n }\n parent.removeChild(base);\n };\n _this.ref = function (c) {\n if (c) {\n _this.resizable = c;\n }\n };\n _this.state = {\n isResizing: false,\n width: typeof (_this.propsSize && _this.propsSize.width) === 'undefined'\n ? 'auto'\n : _this.propsSize && _this.propsSize.width,\n height: typeof (_this.propsSize && _this.propsSize.height) === 'undefined'\n ? 'auto'\n : _this.propsSize && _this.propsSize.height,\n direction: 'right',\n original: {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n },\n backgroundStyle: {\n height: '100%',\n width: '100%',\n backgroundColor: 'rgba(0,0,0,0)',\n cursor: 'auto',\n opacity: 0,\n position: 'fixed',\n zIndex: 9999,\n top: '0',\n left: '0',\n bottom: '0',\n right: '0',\n },\n flexBasis: undefined,\n };\n _this.onResizeStart = _this.onResizeStart.bind(_this);\n _this.onMouseMove = _this.onMouseMove.bind(_this);\n _this.onMouseUp = _this.onMouseUp.bind(_this);\n return _this;\n }\n Object.defineProperty(Resizable.prototype, \"parentNode\", {\n get: function () {\n if (!this.resizable) {\n return null;\n }\n return this.resizable.parentNode;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Resizable.prototype, \"window\", {\n get: function () {\n if (!this.resizable) {\n return null;\n }\n if (!this.resizable.ownerDocument) {\n return null;\n }\n return this.resizable.ownerDocument.defaultView;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Resizable.prototype, \"propsSize\", {\n get: function () {\n return this.props.size || this.props.defaultSize || DEFAULT_SIZE;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Resizable.prototype, \"size\", {\n get: function () {\n var width = 0;\n var height = 0;\n if (this.resizable && this.window) {\n var orgWidth = this.resizable.offsetWidth;\n var orgHeight = this.resizable.offsetHeight;\n // HACK: Set position `relative` to get parent size.\n // This is because when re-resizable set `absolute`, I can not get base width correctly.\n var orgPosition = this.resizable.style.position;\n if (orgPosition !== 'relative') {\n this.resizable.style.position = 'relative';\n }\n // INFO: Use original width or height if set auto.\n width = this.resizable.style.width !== 'auto' ? this.resizable.offsetWidth : orgWidth;\n height = this.resizable.style.height !== 'auto' ? this.resizable.offsetHeight : orgHeight;\n // Restore original position\n this.resizable.style.position = orgPosition;\n }\n return { width: width, height: height };\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Resizable.prototype, \"sizeStyle\", {\n get: function () {\n var _this = this;\n var size = this.props.size;\n var getSize = function (key) {\n if (typeof _this.state[key] === 'undefined' || _this.state[key] === 'auto') {\n return 'auto';\n }\n if (_this.propsSize && _this.propsSize[key] && endsWith(_this.propsSize[key].toString(), '%')) {\n if (endsWith(_this.state[key].toString(), '%')) {\n return _this.state[key].toString();\n }\n var parentSize = _this.getParentSize();\n var value = Number(_this.state[key].toString().replace('px', ''));\n var percent = (value / parentSize[key]) * 100;\n return percent + \"%\";\n }\n return getStringSize(_this.state[key]);\n };\n var width = size && typeof size.width !== 'undefined' && !this.state.isResizing\n ? getStringSize(size.width)\n : getSize('width');\n var height = size && typeof size.height !== 'undefined' && !this.state.isResizing\n ? getStringSize(size.height)\n : getSize('height');\n return { width: width, height: height };\n },\n enumerable: false,\n configurable: true\n });\n Resizable.prototype.getParentSize = function () {\n if (!this.parentNode) {\n if (!this.window) {\n return { width: 0, height: 0 };\n }\n return { width: this.window.innerWidth, height: this.window.innerHeight };\n }\n var base = this.appendBase();\n if (!base) {\n return { width: 0, height: 0 };\n }\n // INFO: To calculate parent width with flex layout\n var wrapChanged = false;\n var wrap = this.parentNode.style.flexWrap;\n if (wrap !== 'wrap') {\n wrapChanged = true;\n this.parentNode.style.flexWrap = 'wrap';\n // HACK: Use relative to get parent padding size\n }\n base.style.position = 'relative';\n base.style.minWidth = '100%';\n base.style.minHeight = '100%';\n var size = {\n width: base.offsetWidth,\n height: base.offsetHeight,\n };\n if (wrapChanged) {\n this.parentNode.style.flexWrap = wrap;\n }\n this.removeBase(base);\n return size;\n };\n Resizable.prototype.bindEvents = function () {\n if (this.window) {\n this.window.addEventListener('mouseup', this.onMouseUp);\n this.window.addEventListener('mousemove', this.onMouseMove);\n this.window.addEventListener('mouseleave', this.onMouseUp);\n this.window.addEventListener('touchmove', this.onMouseMove, {\n capture: true,\n passive: false,\n });\n this.window.addEventListener('touchend', this.onMouseUp);\n }\n };\n Resizable.prototype.unbindEvents = function () {\n if (this.window) {\n this.window.removeEventListener('mouseup', this.onMouseUp);\n this.window.removeEventListener('mousemove', this.onMouseMove);\n this.window.removeEventListener('mouseleave', this.onMouseUp);\n this.window.removeEventListener('touchmove', this.onMouseMove, true);\n this.window.removeEventListener('touchend', this.onMouseUp);\n }\n };\n Resizable.prototype.componentDidMount = function () {\n if (!this.resizable || !this.window) {\n return;\n }\n var computedStyle = this.window.getComputedStyle(this.resizable);\n this.setState({\n width: this.state.width || this.size.width,\n height: this.state.height || this.size.height,\n flexBasis: computedStyle.flexBasis !== 'auto' ? computedStyle.flexBasis : undefined,\n });\n };\n Resizable.prototype.componentWillUnmount = function () {\n if (this.window) {\n this.unbindEvents();\n }\n };\n Resizable.prototype.createSizeForCssProperty = function (newSize, kind) {\n var propsSize = this.propsSize && this.propsSize[kind];\n return this.state[kind] === 'auto' &&\n this.state.original[kind] === newSize &&\n (typeof propsSize === 'undefined' || propsSize === 'auto')\n ? 'auto'\n : newSize;\n };\n Resizable.prototype.calculateNewMaxFromBoundary = function (maxWidth, maxHeight) {\n var boundsByDirection = this.props.boundsByDirection;\n var direction = this.state.direction;\n var widthByDirection = boundsByDirection && hasDirection('left', direction);\n var heightByDirection = boundsByDirection && hasDirection('top', direction);\n var boundWidth;\n var boundHeight;\n if (this.props.bounds === 'parent') {\n var parent_1 = this.parentNode;\n if (parent_1) {\n boundWidth = widthByDirection\n ? this.resizableRight - this.parentLeft\n : parent_1.offsetWidth + (this.parentLeft - this.resizableLeft);\n boundHeight = heightByDirection\n ? this.resizableBottom - this.parentTop\n : parent_1.offsetHeight + (this.parentTop - this.resizableTop);\n }\n }\n else if (this.props.bounds === 'window') {\n if (this.window) {\n boundWidth = widthByDirection ? this.resizableRight : this.window.innerWidth - this.resizableLeft;\n boundHeight = heightByDirection ? this.resizableBottom : this.window.innerHeight - this.resizableTop;\n }\n }\n else if (this.props.bounds) {\n boundWidth = widthByDirection\n ? this.resizableRight - this.targetLeft\n : this.props.bounds.offsetWidth + (this.targetLeft - this.resizableLeft);\n boundHeight = heightByDirection\n ? this.resizableBottom - this.targetTop\n : this.props.bounds.offsetHeight + (this.targetTop - this.resizableTop);\n }\n if (boundWidth && Number.isFinite(boundWidth)) {\n maxWidth = maxWidth && maxWidth < boundWidth ? maxWidth : boundWidth;\n }\n if (boundHeight && Number.isFinite(boundHeight)) {\n maxHeight = maxHeight && maxHeight < boundHeight ? maxHeight : boundHeight;\n }\n return { maxWidth: maxWidth, maxHeight: maxHeight };\n };\n Resizable.prototype.calculateNewSizeFromDirection = function (clientX, clientY) {\n var scale = this.props.scale || 1;\n var resizeRatio = this.props.resizeRatio || 1;\n var _a = this.state, direction = _a.direction, original = _a.original;\n var _b = this.props, lockAspectRatio = _b.lockAspectRatio, lockAspectRatioExtraHeight = _b.lockAspectRatioExtraHeight, lockAspectRatioExtraWidth = _b.lockAspectRatioExtraWidth;\n var newWidth = original.width;\n var newHeight = original.height;\n var extraHeight = lockAspectRatioExtraHeight || 0;\n var extraWidth = lockAspectRatioExtraWidth || 0;\n if (hasDirection('right', direction)) {\n newWidth = original.width + ((clientX - original.x) * resizeRatio) / scale;\n if (lockAspectRatio) {\n newHeight = (newWidth - extraWidth) / this.ratio + extraHeight;\n }\n }\n if (hasDirection('left', direction)) {\n newWidth = original.width - ((clientX - original.x) * resizeRatio) / scale;\n if (lockAspectRatio) {\n newHeight = (newWidth - extraWidth) / this.ratio + extraHeight;\n }\n }\n if (hasDirection('bottom', direction)) {\n newHeight = original.height + ((clientY - original.y) * resizeRatio) / scale;\n if (lockAspectRatio) {\n newWidth = (newHeight - extraHeight) * this.ratio + extraWidth;\n }\n }\n if (hasDirection('top', direction)) {\n newHeight = original.height - ((clientY - original.y) * resizeRatio) / scale;\n if (lockAspectRatio) {\n newWidth = (newHeight - extraHeight) * this.ratio + extraWidth;\n }\n }\n return { newWidth: newWidth, newHeight: newHeight };\n };\n Resizable.prototype.calculateNewSizeFromAspectRatio = function (newWidth, newHeight, max, min) {\n var _a = this.props, lockAspectRatio = _a.lockAspectRatio, lockAspectRatioExtraHeight = _a.lockAspectRatioExtraHeight, lockAspectRatioExtraWidth = _a.lockAspectRatioExtraWidth;\n var computedMinWidth = typeof min.width === 'undefined' ? 10 : min.width;\n var computedMaxWidth = typeof max.width === 'undefined' || max.width < 0 ? newWidth : max.width;\n var computedMinHeight = typeof min.height === 'undefined' ? 10 : min.height;\n var computedMaxHeight = typeof max.height === 'undefined' || max.height < 0 ? newHeight : max.height;\n var extraHeight = lockAspectRatioExtraHeight || 0;\n var extraWidth = lockAspectRatioExtraWidth || 0;\n if (lockAspectRatio) {\n var extraMinWidth = (computedMinHeight - extraHeight) * this.ratio + extraWidth;\n var extraMaxWidth = (computedMaxHeight - extraHeight) * this.ratio + extraWidth;\n var extraMinHeight = (computedMinWidth - extraWidth) / this.ratio + extraHeight;\n var extraMaxHeight = (computedMaxWidth - extraWidth) / this.ratio + extraHeight;\n var lockedMinWidth = Math.max(computedMinWidth, extraMinWidth);\n var lockedMaxWidth = Math.min(computedMaxWidth, extraMaxWidth);\n var lockedMinHeight = Math.max(computedMinHeight, extraMinHeight);\n var lockedMaxHeight = Math.min(computedMaxHeight, extraMaxHeight);\n newWidth = clamp(newWidth, lockedMinWidth, lockedMaxWidth);\n newHeight = clamp(newHeight, lockedMinHeight, lockedMaxHeight);\n }\n else {\n newWidth = clamp(newWidth, computedMinWidth, computedMaxWidth);\n newHeight = clamp(newHeight, computedMinHeight, computedMaxHeight);\n }\n return { newWidth: newWidth, newHeight: newHeight };\n };\n Resizable.prototype.setBoundingClientRect = function () {\n // For parent boundary\n if (this.props.bounds === 'parent') {\n var parent_2 = this.parentNode;\n if (parent_2) {\n var parentRect = parent_2.getBoundingClientRect();\n this.parentLeft = parentRect.left;\n this.parentTop = parentRect.top;\n }\n }\n // For target(html element) boundary\n if (this.props.bounds && typeof this.props.bounds !== 'string') {\n var targetRect = this.props.bounds.getBoundingClientRect();\n this.targetLeft = targetRect.left;\n this.targetTop = targetRect.top;\n }\n // For boundary\n if (this.resizable) {\n var _a = this.resizable.getBoundingClientRect(), left = _a.left, top_1 = _a.top, right = _a.right, bottom = _a.bottom;\n this.resizableLeft = left;\n this.resizableRight = right;\n this.resizableTop = top_1;\n this.resizableBottom = bottom;\n }\n };\n Resizable.prototype.onResizeStart = function (event, direction) {\n if (!this.resizable || !this.window) {\n return;\n }\n var clientX = 0;\n var clientY = 0;\n if (event.nativeEvent && isMouseEvent(event.nativeEvent)) {\n clientX = event.nativeEvent.clientX;\n clientY = event.nativeEvent.clientY;\n }\n else if (event.nativeEvent && isTouchEvent(event.nativeEvent)) {\n clientX = event.nativeEvent.touches[0].clientX;\n clientY = event.nativeEvent.touches[0].clientY;\n }\n if (this.props.onResizeStart) {\n if (this.resizable) {\n var startResize = this.props.onResizeStart(event, direction, this.resizable);\n if (startResize === false) {\n return;\n }\n }\n }\n // Fix #168\n if (this.props.size) {\n if (typeof this.props.size.height !== 'undefined' && this.props.size.height !== this.state.height) {\n this.setState({ height: this.props.size.height });\n }\n if (typeof this.props.size.width !== 'undefined' && this.props.size.width !== this.state.width) {\n this.setState({ width: this.props.size.width });\n }\n }\n // For lockAspectRatio case\n this.ratio =\n typeof this.props.lockAspectRatio === 'number' ? this.props.lockAspectRatio : this.size.width / this.size.height;\n var flexBasis;\n var computedStyle = this.window.getComputedStyle(this.resizable);\n if (computedStyle.flexBasis !== 'auto') {\n var parent_3 = this.parentNode;\n if (parent_3) {\n var dir = this.window.getComputedStyle(parent_3).flexDirection;\n this.flexDir = dir.startsWith('row') ? 'row' : 'column';\n flexBasis = computedStyle.flexBasis;\n }\n }\n // For boundary\n this.setBoundingClientRect();\n this.bindEvents();\n var state = {\n original: {\n x: clientX,\n y: clientY,\n width: this.size.width,\n height: this.size.height,\n },\n isResizing: true,\n backgroundStyle: __assign(__assign({}, this.state.backgroundStyle), { cursor: this.window.getComputedStyle(event.target).cursor || 'auto' }),\n direction: direction,\n flexBasis: flexBasis,\n };\n this.setState(state);\n };\n Resizable.prototype.onMouseMove = function (event) {\n if (!this.state.isResizing || !this.resizable || !this.window) {\n return;\n }\n if (this.window.TouchEvent && isTouchEvent(event)) {\n try {\n event.preventDefault();\n event.stopPropagation();\n }\n catch (e) {\n // Ignore on fail\n }\n }\n var _a = this.props, maxWidth = _a.maxWidth, maxHeight = _a.maxHeight, minWidth = _a.minWidth, minHeight = _a.minHeight;\n var clientX = isTouchEvent(event) ? event.touches[0].clientX : event.clientX;\n var clientY = isTouchEvent(event) ? event.touches[0].clientY : event.clientY;\n var _b = this.state, direction = _b.direction, original = _b.original, width = _b.width, height = _b.height;\n var parentSize = this.getParentSize();\n var max = calculateNewMax(parentSize, this.window.innerWidth, this.window.innerHeight, maxWidth, maxHeight, minWidth, minHeight);\n maxWidth = max.maxWidth;\n maxHeight = max.maxHeight;\n minWidth = max.minWidth;\n minHeight = max.minHeight;\n // Calculate new size\n var _c = this.calculateNewSizeFromDirection(clientX, clientY), newHeight = _c.newHeight, newWidth = _c.newWidth;\n // Calculate max size from boundary settings\n var boundaryMax = this.calculateNewMaxFromBoundary(maxWidth, maxHeight);\n if (this.props.snap && this.props.snap.x) {\n newWidth = findClosestSnap(newWidth, this.props.snap.x, this.props.snapGap);\n }\n if (this.props.snap && this.props.snap.y) {\n newHeight = findClosestSnap(newHeight, this.props.snap.y, this.props.snapGap);\n }\n // Calculate new size from aspect ratio\n var newSize = this.calculateNewSizeFromAspectRatio(newWidth, newHeight, { width: boundaryMax.maxWidth, height: boundaryMax.maxHeight }, { width: minWidth, height: minHeight });\n newWidth = newSize.newWidth;\n newHeight = newSize.newHeight;\n if (this.props.grid) {\n var newGridWidth = snap(newWidth, this.props.grid[0]);\n var newGridHeight = snap(newHeight, this.props.grid[1]);\n var gap = this.props.snapGap || 0;\n newWidth = gap === 0 || Math.abs(newGridWidth - newWidth) <= gap ? newGridWidth : newWidth;\n newHeight = gap === 0 || Math.abs(newGridHeight - newHeight) <= gap ? newGridHeight : newHeight;\n }\n var delta = {\n width: newWidth - original.width,\n height: newHeight - original.height,\n };\n if (width && typeof width === 'string') {\n if (endsWith(width, '%')) {\n var percent = (newWidth / parentSize.width) * 100;\n newWidth = percent + \"%\";\n }\n else if (endsWith(width, 'vw')) {\n var vw = (newWidth / this.window.innerWidth) * 100;\n newWidth = vw + \"vw\";\n }\n else if (endsWith(width, 'vh')) {\n var vh = (newWidth / this.window.innerHeight) * 100;\n newWidth = vh + \"vh\";\n }\n }\n if (height && typeof height === 'string') {\n if (endsWith(height, '%')) {\n var percent = (newHeight / parentSize.height) * 100;\n newHeight = percent + \"%\";\n }\n else if (endsWith(height, 'vw')) {\n var vw = (newHeight / this.window.innerWidth) * 100;\n newHeight = vw + \"vw\";\n }\n else if (endsWith(height, 'vh')) {\n var vh = (newHeight / this.window.innerHeight) * 100;\n newHeight = vh + \"vh\";\n }\n }\n var newState = {\n width: this.createSizeForCssProperty(newWidth, 'width'),\n height: this.createSizeForCssProperty(newHeight, 'height'),\n };\n if (this.flexDir === 'row') {\n newState.flexBasis = newState.width;\n }\n else if (this.flexDir === 'column') {\n newState.flexBasis = newState.height;\n }\n this.setState(newState);\n if (this.props.onResize) {\n this.props.onResize(event, direction, this.resizable, delta);\n }\n };\n Resizable.prototype.onMouseUp = function (event) {\n var _a = this.state, isResizing = _a.isResizing, direction = _a.direction, original = _a.original;\n if (!isResizing || !this.resizable) {\n return;\n }\n var delta = {\n width: this.size.width - original.width,\n height: this.size.height - original.height,\n };\n if (this.props.onResizeStop) {\n this.props.onResizeStop(event, direction, this.resizable, delta);\n }\n if (this.props.size) {\n this.setState(this.props.size);\n }\n this.unbindEvents();\n this.setState({\n isResizing: false,\n backgroundStyle: __assign(__assign({}, this.state.backgroundStyle), { cursor: 'auto' }),\n });\n };\n Resizable.prototype.updateSize = function (size) {\n this.setState({ width: size.width, height: size.height });\n };\n Resizable.prototype.renderResizer = function () {\n var _this = this;\n var _a = this.props, enable = _a.enable, handleStyles = _a.handleStyles, handleClasses = _a.handleClasses, handleWrapperStyle = _a.handleWrapperStyle, handleWrapperClass = _a.handleWrapperClass, handleComponent = _a.handleComponent;\n if (!enable) {\n return null;\n }\n var resizers = Object.keys(enable).map(function (dir) {\n if (enable[dir] !== false) {\n return (React.createElement(Resizer, { key: dir, direction: dir, onResizeStart: _this.onResizeStart, replaceStyles: handleStyles && handleStyles[dir], className: handleClasses && handleClasses[dir] }, handleComponent && handleComponent[dir] ? handleComponent[dir] : null));\n }\n return null;\n });\n // #93 Wrap the resize box in span (will not break 100% width/height)\n return (React.createElement(\"div\", { className: handleWrapperClass, style: handleWrapperStyle }, resizers));\n };\n Resizable.prototype.render = function () {\n var _this = this;\n var extendsProps = Object.keys(this.props).reduce(function (acc, key) {\n if (definedProps.indexOf(key) !== -1) {\n return acc;\n }\n acc[key] = _this.props[key];\n return acc;\n }, {});\n var style = __assign(__assign(__assign({ position: 'relative', userSelect: this.state.isResizing ? 'none' : 'auto' }, this.props.style), this.sizeStyle), { maxWidth: this.props.maxWidth, maxHeight: this.props.maxHeight, minWidth: this.props.minWidth, minHeight: this.props.minHeight, boxSizing: 'border-box', flexShrink: 0 });\n if (this.state.flexBasis) {\n style.flexBasis = this.state.flexBasis;\n }\n var Wrapper = this.props.as || 'div';\n return (React.createElement(Wrapper, __assign({ ref: this.ref, style: style, className: this.props.className }, extendsProps),\n this.state.isResizing && React.createElement(\"div\", { style: this.state.backgroundStyle }),\n this.props.children,\n this.renderResizer()));\n };\n Resizable.defaultProps = {\n as: 'div',\n onResizeStart: function () { },\n onResize: function () { },\n onResizeStop: function () { },\n enable: {\n top: true,\n right: true,\n bottom: true,\n left: true,\n topRight: true,\n bottomRight: true,\n bottomLeft: true,\n topLeft: true,\n },\n style: {},\n grid: [1, 1],\n lockAspectRatio: false,\n lockAspectRatioExtraWidth: 0,\n lockAspectRatioExtraHeight: 0,\n scale: 1,\n resizeRatio: 1,\n snapGap: 0,\n };\n return Resizable;\n}(React.PureComponent));\nexport { Resizable };\n","import { createElement, PureComponent } from 'react';\nimport DraggableRoot from 'react-draggable';\nimport { Resizable } from 're-resizable';\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nfunction __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\n\nvar Draggable = DraggableRoot;\r\nvar resizableStyle = {\r\n width: \"auto\",\r\n height: \"auto\",\r\n display: \"inline-block\",\r\n position: \"absolute\",\r\n top: 0,\r\n left: 0,\r\n};\r\nvar getEnableResizingByFlag = function (flag) { return ({\r\n bottom: flag,\r\n bottomLeft: flag,\r\n bottomRight: flag,\r\n left: flag,\r\n right: flag,\r\n top: flag,\r\n topLeft: flag,\r\n topRight: flag,\r\n}); };\r\nvar Rnd = /** @class */ (function (_super) {\r\n __extends(Rnd, _super);\r\n function Rnd(props) {\r\n var _this = _super.call(this, props) || this;\r\n _this.resizingPosition = { x: 0, y: 0 };\r\n _this.offsetFromParent = { left: 0, top: 0 };\r\n _this.resizableElement = { current: null };\r\n _this.originalPosition = { x: 0, y: 0 };\r\n _this.refDraggable = function (c) {\r\n if (!c)\r\n return;\r\n _this.draggable = c;\r\n };\r\n _this.refResizable = function (c) {\r\n if (!c)\r\n return;\r\n _this.resizable = c;\r\n _this.resizableElement.current = c.resizable;\r\n };\r\n _this.state = {\r\n resizing: false,\r\n bounds: {\r\n top: 0,\r\n right: 0,\r\n bottom: 0,\r\n left: 0,\r\n },\r\n maxWidth: props.maxWidth,\r\n maxHeight: props.maxHeight,\r\n };\r\n _this.onResizeStart = _this.onResizeStart.bind(_this);\r\n _this.onResize = _this.onResize.bind(_this);\r\n _this.onResizeStop = _this.onResizeStop.bind(_this);\r\n _this.onDragStart = _this.onDragStart.bind(_this);\r\n _this.onDrag = _this.onDrag.bind(_this);\r\n _this.onDragStop = _this.onDragStop.bind(_this);\r\n _this.getMaxSizesFromProps = _this.getMaxSizesFromProps.bind(_this);\r\n return _this;\r\n }\r\n Rnd.prototype.componentDidMount = function () {\r\n this.updateOffsetFromParent();\r\n var _a = this.offsetFromParent, left = _a.left, top = _a.top;\r\n var _b = this.getDraggablePosition(), x = _b.x, y = _b.y;\r\n this.draggable.setState({\r\n x: x - left,\r\n y: y - top,\r\n });\r\n // HACK: Apply position adjustment\r\n this.forceUpdate();\r\n };\r\n // HACK: To get `react-draggable` state x and y.\r\n Rnd.prototype.getDraggablePosition = function () {\r\n var _a = this.draggable.state, x = _a.x, y = _a.y;\r\n return { x: x, y: y };\r\n };\r\n Rnd.prototype.getParent = function () {\r\n return this.resizable && this.resizable.parentNode;\r\n };\r\n Rnd.prototype.getParentSize = function () {\r\n return this.resizable.getParentSize();\r\n };\r\n Rnd.prototype.getMaxSizesFromProps = function () {\r\n var maxWidth = typeof this.props.maxWidth === \"undefined\" ? Number.MAX_SAFE_INTEGER : this.props.maxWidth;\r\n var maxHeight = typeof this.props.maxHeight === \"undefined\" ? Number.MAX_SAFE_INTEGER : this.props.maxHeight;\r\n return { maxWidth: maxWidth, maxHeight: maxHeight };\r\n };\r\n Rnd.prototype.getSelfElement = function () {\r\n return this.resizable && this.resizable.resizable;\r\n };\r\n Rnd.prototype.getOffsetHeight = function (boundary) {\r\n var scale = this.props.scale;\r\n switch (this.props.bounds) {\r\n case \"window\":\r\n return window.innerHeight / scale;\r\n case \"body\":\r\n return document.body.offsetHeight / scale;\r\n default:\r\n return boundary.offsetHeight;\r\n }\r\n };\r\n Rnd.prototype.getOffsetWidth = function (boundary) {\r\n var scale = this.props.scale;\r\n switch (this.props.bounds) {\r\n case \"window\":\r\n return window.innerWidth / scale;\r\n case \"body\":\r\n return document.body.offsetWidth / scale;\r\n default:\r\n return boundary.offsetWidth;\r\n }\r\n };\r\n Rnd.prototype.onDragStart = function (e, data) {\r\n if (this.props.onDragStart) {\r\n this.props.onDragStart(e, data);\r\n }\r\n var pos = this.getDraggablePosition();\r\n this.originalPosition = pos;\r\n if (!this.props.bounds)\r\n return;\r\n var parent = this.getParent();\r\n var scale = this.props.scale;\r\n var boundary;\r\n if (this.props.bounds === \"parent\") {\r\n boundary = parent;\r\n }\r\n else if (this.props.bounds === \"body\") {\r\n var parentRect_1 = parent.getBoundingClientRect();\r\n var parentLeft_1 = parentRect_1.left;\r\n var parentTop_1 = parentRect_1.top;\r\n var bodyRect = document.body.getBoundingClientRect();\r\n var left_1 = -(parentLeft_1 - parent.offsetLeft * scale - bodyRect.left) / scale;\r\n var top_1 = -(parentTop_1 - parent.offsetTop * scale - bodyRect.top) / scale;\r\n var right = (document.body.offsetWidth - this.resizable.size.width * scale) / scale + left_1;\r\n var bottom = (document.body.offsetHeight - this.resizable.size.height * scale) / scale + top_1;\r\n return this.setState({ bounds: { top: top_1, right: right, bottom: bottom, left: left_1 } });\r\n }\r\n else if (this.props.bounds === \"window\") {\r\n if (!this.resizable)\r\n return;\r\n var parentRect_2 = parent.getBoundingClientRect();\r\n var parentLeft_2 = parentRect_2.left;\r\n var parentTop_2 = parentRect_2.top;\r\n var left_2 = -(parentLeft_2 - parent.offsetLeft * scale) / scale;\r\n var top_2 = -(parentTop_2 - parent.offsetTop * scale) / scale;\r\n var right = (window.innerWidth - this.resizable.size.width * scale) / scale + left_2;\r\n var bottom = (window.innerHeight - this.resizable.size.height * scale) / scale + top_2;\r\n return this.setState({ bounds: { top: top_2, right: right, bottom: bottom, left: left_2 } });\r\n }\r\n else {\r\n boundary = document.querySelector(this.props.bounds);\r\n }\r\n if (!(boundary instanceof HTMLElement) || !(parent instanceof HTMLElement)) {\r\n return;\r\n }\r\n var boundaryRect = boundary.getBoundingClientRect();\r\n var boundaryLeft = boundaryRect.left;\r\n var boundaryTop = boundaryRect.top;\r\n var parentRect = parent.getBoundingClientRect();\r\n var parentLeft = parentRect.left;\r\n var parentTop = parentRect.top;\r\n var left = (boundaryLeft - parentLeft) / scale;\r\n var top = boundaryTop - parentTop;\r\n if (!this.resizable)\r\n return;\r\n this.updateOffsetFromParent();\r\n var offset = this.offsetFromParent;\r\n this.setState({\r\n bounds: {\r\n top: top - offset.top,\r\n right: left + (boundary.offsetWidth - this.resizable.size.width) - offset.left / scale,\r\n bottom: top + (boundary.offsetHeight - this.resizable.size.height) - offset.top,\r\n left: left - offset.left / scale,\r\n },\r\n });\r\n };\r\n Rnd.prototype.onDrag = function (e, data) {\r\n if (!this.props.onDrag)\r\n return;\r\n var _a = this.offsetFromParent, left = _a.left, top = _a.top;\r\n if (!this.props.dragAxis || this.props.dragAxis === \"both\") {\r\n return this.props.onDrag(e, __assign(__assign({}, data), { x: data.x - left, y: data.y - top }));\r\n }\r\n else if (this.props.dragAxis === \"x\") {\r\n return this.props.onDrag(e, __assign(__assign({}, data), { x: data.x + left, y: this.originalPosition.y + top, deltaY: 0 }));\r\n }\r\n else if (this.props.dragAxis === \"y\") {\r\n return this.props.onDrag(e, __assign(__assign({}, data), { x: this.originalPosition.x + left, y: data.y + top, deltaX: 0 }));\r\n }\r\n };\r\n Rnd.prototype.onDragStop = function (e, data) {\r\n if (!this.props.onDragStop)\r\n return;\r\n var _a = this.offsetFromParent, left = _a.left, top = _a.top;\r\n if (!this.props.dragAxis || this.props.dragAxis === \"both\") {\r\n return this.props.onDragStop(e, __assign(__assign({}, data), { x: data.x + left, y: data.y + top }));\r\n }\r\n else if (this.props.dragAxis === \"x\") {\r\n return this.props.onDragStop(e, __assign(__assign({}, data), { x: data.x + left, y: this.originalPosition.y + top, deltaY: 0 }));\r\n }\r\n else if (this.props.dragAxis === \"y\") {\r\n return this.props.onDragStop(e, __assign(__assign({}, data), { x: this.originalPosition.x + left, y: data.y + top, deltaX: 0 }));\r\n }\r\n };\r\n Rnd.prototype.onResizeStart = function (e, dir, elementRef) {\r\n e.stopPropagation();\r\n this.setState({\r\n resizing: true,\r\n });\r\n var scale = this.props.scale;\r\n var offset = this.offsetFromParent;\r\n var pos = this.getDraggablePosition();\r\n this.resizingPosition = { x: pos.x + offset.left, y: pos.y + offset.top };\r\n this.originalPosition = pos;\r\n if (this.props.bounds) {\r\n var parent_1 = this.getParent();\r\n var boundary = void 0;\r\n if (this.props.bounds === \"parent\") {\r\n boundary = parent_1;\r\n }\r\n else if (this.props.bounds === \"body\") {\r\n boundary = document.body;\r\n }\r\n else if (this.props.bounds === \"window\") {\r\n boundary = window;\r\n }\r\n else {\r\n boundary = document.querySelector(this.props.bounds);\r\n }\r\n var self_1 = this.getSelfElement();\r\n if (self_1 instanceof Element &&\r\n (boundary instanceof HTMLElement || boundary === window) &&\r\n parent_1 instanceof HTMLElement) {\r\n var _a = this.getMaxSizesFromProps(), maxWidth = _a.maxWidth, maxHeight = _a.maxHeight;\r\n var parentSize = this.getParentSize();\r\n if (maxWidth && typeof maxWidth === \"string\") {\r\n if (maxWidth.endsWith(\"%\")) {\r\n var ratio = Number(maxWidth.replace(\"%\", \"\")) / 100;\r\n maxWidth = parentSize.width * ratio;\r\n }\r\n else if (maxWidth.endsWith(\"px\")) {\r\n maxWidth = Number(maxWidth.replace(\"px\", \"\"));\r\n }\r\n }\r\n if (maxHeight && typeof maxHeight === \"string\") {\r\n if (maxHeight.endsWith(\"%\")) {\r\n var ratio = Number(maxHeight.replace(\"%\", \"\")) / 100;\r\n maxHeight = parentSize.width * ratio;\r\n }\r\n else if (maxHeight.endsWith(\"px\")) {\r\n maxHeight = Number(maxHeight.replace(\"px\", \"\"));\r\n }\r\n }\r\n var selfRect = self_1.getBoundingClientRect();\r\n var selfLeft = selfRect.left;\r\n var selfTop = selfRect.top;\r\n var boundaryRect = this.props.bounds === \"window\" ? { left: 0, top: 0 } : boundary.getBoundingClientRect();\r\n var boundaryLeft = boundaryRect.left;\r\n var boundaryTop = boundaryRect.top;\r\n var offsetWidth = this.getOffsetWidth(boundary);\r\n var offsetHeight = this.getOffsetHeight(boundary);\r\n var hasLeft = dir.toLowerCase().endsWith(\"left\");\r\n var hasRight = dir.toLowerCase().endsWith(\"right\");\r\n var hasTop = dir.startsWith(\"top\");\r\n var hasBottom = dir.startsWith(\"bottom\");\r\n if ((hasLeft || hasTop) && this.resizable) {\r\n var max = (selfLeft - boundaryLeft) / scale + this.resizable.size.width;\r\n this.setState({ maxWidth: max > Number(maxWidth) ? maxWidth : max });\r\n }\r\n // INFO: To set bounds in `lock aspect ratio with bounds` case. See also that story.\r\n if (hasRight || (this.props.lockAspectRatio && !hasLeft && !hasTop)) {\r\n var max = offsetWidth + (boundaryLeft - selfLeft) / scale;\r\n this.setState({ maxWidth: max > Number(maxWidth) ? maxWidth : max });\r\n }\r\n if ((hasTop || hasLeft) && this.resizable) {\r\n var max = (selfTop - boundaryTop) / scale + this.resizable.size.height;\r\n this.setState({\r\n maxHeight: max > Number(maxHeight) ? maxHeight : max,\r\n });\r\n }\r\n // INFO: To set bounds in `lock aspect ratio with bounds` case. See also that story.\r\n if (hasBottom || (this.props.lockAspectRatio && !hasTop && !hasLeft)) {\r\n var max = offsetHeight + (boundaryTop - selfTop) / scale;\r\n this.setState({\r\n maxHeight: max > Number(maxHeight) ? maxHeight : max,\r\n });\r\n }\r\n }\r\n }\r\n else {\r\n this.setState({\r\n maxWidth: this.props.maxWidth,\r\n maxHeight: this.props.maxHeight,\r\n });\r\n }\r\n if (this.props.onResizeStart) {\r\n this.props.onResizeStart(e, dir, elementRef);\r\n }\r\n };\r\n Rnd.prototype.onResize = function (e, direction, elementRef, delta) {\r\n // INFO: Apply x and y position adjustments caused by resizing to draggable\r\n var newPos = { x: this.originalPosition.x, y: this.originalPosition.y };\r\n var left = -delta.width;\r\n var top = -delta.height;\r\n var directions = [\"top\", \"left\", \"topLeft\", \"bottomLeft\", \"topRight\"];\r\n if (directions.indexOf(direction) !== -1) {\r\n if (direction === \"bottomLeft\") {\r\n newPos.x += left;\r\n }\r\n else if (direction === \"topRight\") {\r\n newPos.y += top;\r\n }\r\n else {\r\n newPos.x += left;\r\n newPos.y += top;\r\n }\r\n }\r\n if (newPos.x !== this.draggable.state.x || newPos.y !== this.draggable.state.y) {\r\n this.draggable.setState(newPos);\r\n }\r\n this.updateOffsetFromParent();\r\n var offset = this.offsetFromParent;\r\n var x = this.getDraggablePosition().x + offset.left;\r\n var y = this.getDraggablePosition().y + offset.top;\r\n this.resizingPosition = { x: x, y: y };\r\n if (!this.props.onResize)\r\n return;\r\n this.props.onResize(e, direction, elementRef, delta, {\r\n x: x,\r\n y: y,\r\n });\r\n };\r\n Rnd.prototype.onResizeStop = function (e, direction, elementRef, delta) {\r\n this.setState({\r\n resizing: false,\r\n });\r\n var _a = this.getMaxSizesFromProps(), maxWidth = _a.maxWidth, maxHeight = _a.maxHeight;\r\n this.setState({ maxWidth: maxWidth, maxHeight: maxHeight });\r\n if (this.props.onResizeStop) {\r\n this.props.onResizeStop(e, direction, elementRef, delta, this.resizingPosition);\r\n }\r\n };\r\n Rnd.prototype.updateSize = function (size) {\r\n if (!this.resizable)\r\n return;\r\n this.resizable.updateSize({ width: size.width, height: size.height });\r\n };\r\n Rnd.prototype.updatePosition = function (position) {\r\n this.draggable.setState(position);\r\n };\r\n Rnd.prototype.updateOffsetFromParent = function () {\r\n var scale = this.props.scale;\r\n var parent = this.getParent();\r\n var self = this.getSelfElement();\r\n if (!parent || self === null) {\r\n return {\r\n top: 0,\r\n left: 0,\r\n };\r\n }\r\n var parentRect = parent.getBoundingClientRect();\r\n var parentLeft = parentRect.left;\r\n var parentTop = parentRect.top;\r\n var selfRect = self.getBoundingClientRect();\r\n var position = this.getDraggablePosition();\r\n var scrollLeft = parent.scrollLeft;\r\n var scrollTop = parent.scrollTop;\r\n this.offsetFromParent = {\r\n left: selfRect.left - parentLeft + scrollLeft - position.x * scale,\r\n top: selfRect.top - parentTop + scrollTop - position.y * scale,\r\n };\r\n };\r\n Rnd.prototype.render = function () {\r\n var _a = this.props, disableDragging = _a.disableDragging, style = _a.style, dragHandleClassName = _a.dragHandleClassName, position = _a.position, onMouseDown = _a.onMouseDown, onMouseUp = _a.onMouseUp, dragAxis = _a.dragAxis, dragGrid = _a.dragGrid, bounds = _a.bounds, enableUserSelectHack = _a.enableUserSelectHack, cancel = _a.cancel, children = _a.children, onResizeStart = _a.onResizeStart, onResize = _a.onResize, onResizeStop = _a.onResizeStop, onDragStart = _a.onDragStart, onDrag = _a.onDrag, onDragStop = _a.onDragStop, resizeHandleStyles = _a.resizeHandleStyles, resizeHandleClasses = _a.resizeHandleClasses, resizeHandleComponent = _a.resizeHandleComponent, enableResizing = _a.enableResizing, resizeGrid = _a.resizeGrid, resizeHandleWrapperClass = _a.resizeHandleWrapperClass, resizeHandleWrapperStyle = _a.resizeHandleWrapperStyle, scale = _a.scale, allowAnyClick = _a.allowAnyClick, resizableProps = __rest(_a, [\"disableDragging\", \"style\", \"dragHandleClassName\", \"position\", \"onMouseDown\", \"onMouseUp\", \"dragAxis\", \"dragGrid\", \"bounds\", \"enableUserSelectHack\", \"cancel\", \"children\", \"onResizeStart\", \"onResize\", \"onResizeStop\", \"onDragStart\", \"onDrag\", \"onDragStop\", \"resizeHandleStyles\", \"resizeHandleClasses\", \"resizeHandleComponent\", \"enableResizing\", \"resizeGrid\", \"resizeHandleWrapperClass\", \"resizeHandleWrapperStyle\", \"scale\", \"allowAnyClick\"]);\r\n var defaultValue = this.props.default ? __assign({}, this.props.default) : undefined;\r\n // Remove unknown props, see also https://reactjs.org/warnings/unknown-prop.html\r\n delete resizableProps.default;\r\n var cursorStyle = disableDragging || dragHandleClassName ? { cursor: \"auto\" } : { cursor: \"move\" };\r\n var innerStyle = __assign(__assign(__assign({}, resizableStyle), cursorStyle), style);\r\n var _b = this.offsetFromParent, left = _b.left, top = _b.top;\r\n var draggablePosition;\r\n if (position) {\r\n draggablePosition = {\r\n x: position.x - left,\r\n y: position.y - top,\r\n };\r\n }\r\n // INFO: Make uncontorolled component when resizing to control position by setPostion.\r\n var pos = this.state.resizing ? undefined : draggablePosition;\r\n var dragAxisOrUndefined = this.state.resizing ? \"both\" : dragAxis;\r\n return (createElement(Draggable, { ref: this.refDraggable, handle: dragHandleClassName ? \".\".concat(dragHandleClassName) : undefined, defaultPosition: defaultValue, onMouseDown: onMouseDown, onMouseUp: onMouseUp, onStart: this.onDragStart, onDrag: this.onDrag, onStop: this.onDragStop, axis: dragAxisOrUndefined, disabled: disableDragging, grid: dragGrid, bounds: bounds ? this.state.bounds : undefined, position: pos, enableUserSelectHack: enableUserSelectHack, cancel: cancel, scale: scale, allowAnyClick: allowAnyClick, nodeRef: this.resizableElement },\r\n createElement(Resizable, __assign({}, resizableProps, { ref: this.refResizable, defaultSize: defaultValue, size: this.props.size, enable: typeof enableResizing === \"boolean\" ? getEnableResizingByFlag(enableResizing) : enableResizing, onResizeStart: this.onResizeStart, onResize: this.onResize, onResizeStop: this.onResizeStop, style: innerStyle, minWidth: this.props.minWidth, minHeight: this.props.minHeight, maxWidth: this.state.resizing ? this.state.maxWidth : this.props.maxWidth, maxHeight: this.state.resizing ? this.state.maxHeight : this.props.maxHeight, grid: resizeGrid, handleWrapperClass: resizeHandleWrapperClass, handleWrapperStyle: resizeHandleWrapperStyle, lockAspectRatio: this.props.lockAspectRatio, lockAspectRatioExtraWidth: this.props.lockAspectRatioExtraWidth, lockAspectRatioExtraHeight: this.props.lockAspectRatioExtraHeight, handleStyles: resizeHandleStyles, handleClasses: resizeHandleClasses, handleComponent: resizeHandleComponent, scale: this.props.scale }), children)));\r\n };\r\n Rnd.defaultProps = {\r\n maxWidth: Number.MAX_SAFE_INTEGER,\r\n maxHeight: Number.MAX_SAFE_INTEGER,\r\n scale: 1,\r\n onResizeStart: function () { },\r\n onResize: function () { },\r\n onResizeStop: function () { },\r\n onDragStart: function () { },\r\n onDrag: function () { },\r\n onDragStop: function () { },\r\n };\r\n return Rnd;\r\n}(PureComponent));\n\nexport { Rnd };\n","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}","import _typeof from \"../../helpers/esm/typeof\";\nimport assertThisInitialized from \"./assertThisInitialized\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","import type { MouseEvent } from 'react';\nimport type {\n ChartType,\n ChartData,\n DefaultDataPoint,\n ChartDataset,\n ChartOptions,\n Chart,\n} from 'chart.js';\n\nimport type { ForwardedRef } from './types';\n\nconst defaultDatasetIdKey = 'label';\n\nexport function reforwardRef(ref: ForwardedRef, value: T) {\n if (typeof ref === 'function') {\n ref(value);\n } else if (ref) {\n ref.current = value;\n }\n}\n\nexport function setOptions<\n TType extends ChartType = ChartType,\n TData = DefaultDataPoint,\n TLabel = unknown\n>(chart: Chart, nextOptions: ChartOptions) {\n Object.assign(chart.options, nextOptions);\n}\n\nexport function setLabels<\n TType extends ChartType = ChartType,\n TData = DefaultDataPoint,\n TLabel = unknown\n>(\n currentData: ChartData,\n nextLabels: TLabel[] | undefined\n) {\n currentData.labels = nextLabels;\n}\n\nexport function setDatasets<\n TType extends ChartType = ChartType,\n TData = DefaultDataPoint,\n TLabel = unknown\n>(\n currentData: ChartData,\n nextDatasets: ChartDataset[],\n datasetIdKey = defaultDatasetIdKey\n) {\n const addedDatasets: ChartDataset[] = [];\n\n currentData.datasets = nextDatasets.map(\n (nextDataset: Record) => {\n // given the new set, find it's current match\n const currentDataset = currentData.datasets.find(\n (dataset: Record) =>\n dataset[datasetIdKey] === nextDataset[datasetIdKey]\n );\n\n // There is no original to update, so simply add new one\n if (\n !currentDataset ||\n !nextDataset.data ||\n addedDatasets.includes(currentDataset)\n ) {\n return { ...nextDataset } as ChartDataset;\n }\n\n addedDatasets.push(currentDataset);\n\n Object.assign(currentDataset, nextDataset);\n\n return currentDataset;\n }\n );\n}\n\nexport function cloneData<\n TType extends ChartType = ChartType,\n TData = DefaultDataPoint,\n TLabel = unknown\n>(data: ChartData, datasetIdKey = defaultDatasetIdKey) {\n const nextData: ChartData = {\n labels: [],\n datasets: [],\n };\n\n setLabels(nextData, data.labels);\n setDatasets(nextData, data.datasets, datasetIdKey);\n\n return nextData;\n}\n\n/**\n * Get dataset from mouse click event\n * @param chart - Chart.js instance\n * @param event - Mouse click event\n * @returns Dataset\n */\nexport function getDatasetAtEvent(\n chart: Chart,\n event: MouseEvent\n) {\n return chart.getElementsAtEventForMode(\n event.nativeEvent,\n 'dataset',\n { intersect: true },\n false\n );\n}\n\n/**\n * Get single dataset element from mouse click event\n * @param chart - Chart.js instance\n * @param event - Mouse click event\n * @returns Dataset\n */\nexport function getElementAtEvent(\n chart: Chart,\n event: MouseEvent\n) {\n return chart.getElementsAtEventForMode(\n event.nativeEvent,\n 'nearest',\n { intersect: true },\n false\n );\n}\n\n/**\n * Get all dataset elements from mouse click event\n * @param chart - Chart.js instance\n * @param event - Mouse click event\n * @returns Dataset\n */\nexport function getElementsAtEvent(\n chart: Chart,\n event: MouseEvent\n) {\n return chart.getElementsAtEventForMode(\n event.nativeEvent,\n 'index',\n { intersect: true },\n false\n );\n}\n","import React, { useEffect, useRef, forwardRef } from 'react';\nimport { Chart as ChartJS } from 'chart.js';\nimport type { ChartType, DefaultDataPoint } from 'chart.js';\n\nimport type { ForwardedRef, ChartProps, TypedChartComponent } from './types';\nimport {\n reforwardRef,\n cloneData,\n setOptions,\n setLabels,\n setDatasets,\n} from './utils';\n\nfunction ChartComponent<\n TType extends ChartType = ChartType,\n TData = DefaultDataPoint,\n TLabel = unknown\n>(\n {\n height = 150,\n width = 300,\n redraw = false,\n datasetIdKey,\n type,\n data,\n options,\n plugins = [],\n fallbackContent,\n updateMode,\n ...props\n }: ChartProps,\n ref: ForwardedRef>\n) {\n type TypedChartJS = ChartJS;\n\n const canvasRef = useRef(null);\n const chartRef = useRef();\n\n const renderChart = () => {\n if (!canvasRef.current) return;\n\n chartRef.current = new ChartJS(canvasRef.current, {\n type,\n data: cloneData(data, datasetIdKey),\n options: options && { ...options },\n plugins,\n });\n\n reforwardRef(ref, chartRef.current);\n };\n\n const destroyChart = () => {\n reforwardRef(ref, null);\n\n if (chartRef.current) {\n chartRef.current.destroy();\n chartRef.current = null;\n }\n };\n\n useEffect(() => {\n if (!redraw && chartRef.current && options) {\n setOptions(chartRef.current, options);\n }\n }, [redraw, options]);\n\n useEffect(() => {\n if (!redraw && chartRef.current) {\n setLabels(chartRef.current.config.data, data.labels);\n }\n }, [redraw, data.labels]);\n\n useEffect(() => {\n if (!redraw && chartRef.current && data.datasets) {\n setDatasets(chartRef.current.config.data, data.datasets, datasetIdKey);\n }\n }, [redraw, data.datasets]);\n\n useEffect(() => {\n if (!chartRef.current) return;\n\n if (redraw) {\n destroyChart();\n setTimeout(renderChart);\n } else {\n chartRef.current.update(updateMode);\n }\n }, [redraw, options, data.labels, data.datasets, updateMode]);\n\n useEffect(() => {\n if (!chartRef.current) return;\n\n destroyChart();\n setTimeout(renderChart);\n }, [type]);\n\n useEffect(() => {\n renderChart();\n\n return () => destroyChart();\n }, []);\n\n return (\n \n {fallbackContent}\n \n );\n}\n\nexport const Chart = forwardRef(ChartComponent) as TypedChartComponent;\n","import React, { forwardRef } from 'react';\nimport {\n Chart as ChartJS,\n LineController,\n BarController,\n RadarController,\n DoughnutController,\n PolarAreaController,\n BubbleController,\n PieController,\n ScatterController,\n} from 'chart.js';\nimport type { ChartType, ChartComponentLike } from 'chart.js';\n\nimport type {\n ChartProps,\n ChartJSOrUndefined,\n TypedChartComponent,\n} from './types';\nimport { Chart } from './chart';\n\nfunction createTypedChart(\n type: T,\n registerables: ChartComponentLike\n) {\n ChartJS.register(registerables);\n\n return forwardRef, Omit, 'type'>>(\n (props, ref) => \n ) as TypedChartComponent;\n}\n\nexport const Line = /* #__PURE__ */ createTypedChart('line', LineController);\n\nexport const Bar = /* #__PURE__ */ createTypedChart('bar', BarController);\n\nexport const Radar = /* #__PURE__ */ createTypedChart('radar', RadarController);\n\nexport const Doughnut = /* #__PURE__ */ createTypedChart(\n 'doughnut',\n DoughnutController\n);\n\nexport const PolarArea = /* #__PURE__ */ createTypedChart(\n 'polarArea',\n PolarAreaController\n);\n\nexport const Bubble = /* #__PURE__ */ createTypedChart(\n 'bubble',\n BubbleController\n);\n\nexport const Pie = /* #__PURE__ */ createTypedChart('pie', PieController);\n\nexport const Scatter = /* #__PURE__ */ createTypedChart(\n 'scatter',\n ScatterController\n);\n",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var Hasher = C_lib.Hasher;\n\t var C_algo = C.algo;\n\n\t // Reusable object\n\t var W = [];\n\n\t /**\n\t * SHA-1 hash algorithm.\n\t */\n\t var SHA1 = C_algo.SHA1 = Hasher.extend({\n\t _doReset: function () {\n\t this._hash = new WordArray.init([\n\t 0x67452301, 0xefcdab89,\n\t 0x98badcfe, 0x10325476,\n\t 0xc3d2e1f0\n\t ]);\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcut\n\t var H = this._hash.words;\n\n\t // Working variables\n\t var a = H[0];\n\t var b = H[1];\n\t var c = H[2];\n\t var d = H[3];\n\t var e = H[4];\n\n\t // Computation\n\t for (var i = 0; i < 80; i++) {\n\t if (i < 16) {\n\t W[i] = M[offset + i] | 0;\n\t } else {\n\t var n = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16];\n\t W[i] = (n << 1) | (n >>> 31);\n\t }\n\n\t var t = ((a << 5) | (a >>> 27)) + e + W[i];\n\t if (i < 20) {\n\t t += ((b & c) | (~b & d)) + 0x5a827999;\n\t } else if (i < 40) {\n\t t += (b ^ c ^ d) + 0x6ed9eba1;\n\t } else if (i < 60) {\n\t t += ((b & c) | (b & d) | (c & d)) - 0x70e44324;\n\t } else /* if (i < 80) */ {\n\t t += (b ^ c ^ d) - 0x359d3e2a;\n\t }\n\n\t e = d;\n\t d = c;\n\t c = (b << 30) | (b >>> 2);\n\t b = a;\n\t a = t;\n\t }\n\n\t // Intermediate hash value\n\t H[0] = (H[0] + a) | 0;\n\t H[1] = (H[1] + b) | 0;\n\t H[2] = (H[2] + c) | 0;\n\t H[3] = (H[3] + d) | 0;\n\t H[4] = (H[4] + e) | 0;\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = Math.floor(nBitsTotal / 0x100000000);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = nBitsTotal;\n\t data.sigBytes = dataWords.length * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Return final computed hash\n\t return this._hash;\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\t clone._hash = this._hash.clone();\n\n\t return clone;\n\t }\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA1('message');\n\t * var hash = CryptoJS.SHA1(wordArray);\n\t */\n\t C.SHA1 = Hasher._createHelper(SHA1);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA1(message, key);\n\t */\n\t C.HmacSHA1 = Hasher._createHmacHelper(SHA1);\n\t}());\n\n\n\treturn CryptoJS.SHA1;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var Base = C_lib.Base;\n\t var C_enc = C.enc;\n\t var Utf8 = C_enc.Utf8;\n\t var C_algo = C.algo;\n\n\t /**\n\t * HMAC algorithm.\n\t */\n\t var HMAC = C_algo.HMAC = Base.extend({\n\t /**\n\t * Initializes a newly created HMAC.\n\t *\n\t * @param {Hasher} hasher The hash algorithm to use.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @example\n\t *\n\t * var hmacHasher = CryptoJS.algo.HMAC.create(CryptoJS.algo.SHA256, key);\n\t */\n\t init: function (hasher, key) {\n\t // Init hasher\n\t hasher = this._hasher = new hasher.init();\n\n\t // Convert string to WordArray, else assume WordArray already\n\t if (typeof key == 'string') {\n\t key = Utf8.parse(key);\n\t }\n\n\t // Shortcuts\n\t var hasherBlockSize = hasher.blockSize;\n\t var hasherBlockSizeBytes = hasherBlockSize * 4;\n\n\t // Allow arbitrary length keys\n\t if (key.sigBytes > hasherBlockSizeBytes) {\n\t key = hasher.finalize(key);\n\t }\n\n\t // Clamp excess bits\n\t key.clamp();\n\n\t // Clone key for inner and outer pads\n\t var oKey = this._oKey = key.clone();\n\t var iKey = this._iKey = key.clone();\n\n\t // Shortcuts\n\t var oKeyWords = oKey.words;\n\t var iKeyWords = iKey.words;\n\n\t // XOR keys with pad constants\n\t for (var i = 0; i < hasherBlockSize; i++) {\n\t oKeyWords[i] ^= 0x5c5c5c5c;\n\t iKeyWords[i] ^= 0x36363636;\n\t }\n\t oKey.sigBytes = iKey.sigBytes = hasherBlockSizeBytes;\n\n\t // Set initial values\n\t this.reset();\n\t },\n\n\t /**\n\t * Resets this HMAC to its initial state.\n\t *\n\t * @example\n\t *\n\t * hmacHasher.reset();\n\t */\n\t reset: function () {\n\t // Shortcut\n\t var hasher = this._hasher;\n\n\t // Reset\n\t hasher.reset();\n\t hasher.update(this._iKey);\n\t },\n\n\t /**\n\t * Updates this HMAC with a message.\n\t *\n\t * @param {WordArray|string} messageUpdate The message to append.\n\t *\n\t * @return {HMAC} This HMAC instance.\n\t *\n\t * @example\n\t *\n\t * hmacHasher.update('message');\n\t * hmacHasher.update(wordArray);\n\t */\n\t update: function (messageUpdate) {\n\t this._hasher.update(messageUpdate);\n\n\t // Chainable\n\t return this;\n\t },\n\n\t /**\n\t * Finalizes the HMAC computation.\n\t * Note that the finalize operation is effectively a destructive, read-once operation.\n\t *\n\t * @param {WordArray|string} messageUpdate (Optional) A final message update.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @example\n\t *\n\t * var hmac = hmacHasher.finalize();\n\t * var hmac = hmacHasher.finalize('message');\n\t * var hmac = hmacHasher.finalize(wordArray);\n\t */\n\t finalize: function (messageUpdate) {\n\t // Shortcut\n\t var hasher = this._hasher;\n\n\t // Compute HMAC\n\t var innerHash = hasher.finalize(messageUpdate);\n\t hasher.reset();\n\t var hmac = hasher.finalize(this._oKey.clone().concat(innerHash));\n\n\t return hmac;\n\t }\n\t });\n\t}());\n\n\n}));","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.addClassName = addClassName;\nexports.addEvent = addEvent;\nexports.addUserSelectStyles = addUserSelectStyles;\nexports.createCSSTransform = createCSSTransform;\nexports.createSVGTransform = createSVGTransform;\nexports.getTouch = getTouch;\nexports.getTouchIdentifier = getTouchIdentifier;\nexports.getTranslation = getTranslation;\nexports.innerHeight = innerHeight;\nexports.innerWidth = innerWidth;\nexports.matchesSelector = matchesSelector;\nexports.matchesSelectorAndParentsTo = matchesSelectorAndParentsTo;\nexports.offsetXYFromParent = offsetXYFromParent;\nexports.outerHeight = outerHeight;\nexports.outerWidth = outerWidth;\nexports.removeClassName = removeClassName;\nexports.removeEvent = removeEvent;\nexports.removeUserSelectStyles = removeUserSelectStyles;\n\nvar _shims = require(\"./shims\");\n\nvar _getPrefix = _interopRequireWildcard(require(\"./getPrefix\"));\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar matchesSelectorFunc = '';\n\nfunction matchesSelector(el\n/*: Node*/\n, selector\n/*: string*/\n)\n/*: boolean*/\n{\n if (!matchesSelectorFunc) {\n matchesSelectorFunc = (0, _shims.findInArray)(['matches', 'webkitMatchesSelector', 'mozMatchesSelector', 'msMatchesSelector', 'oMatchesSelector'], function (method) {\n // $FlowIgnore: Doesn't think elements are indexable\n return (0, _shims.isFunction)(el[method]);\n });\n } // Might not be found entirely (not an Element?) - in that case, bail\n // $FlowIgnore: Doesn't think elements are indexable\n\n\n if (!(0, _shims.isFunction)(el[matchesSelectorFunc])) return false; // $FlowIgnore: Doesn't think elements are indexable\n\n return el[matchesSelectorFunc](selector);\n} // Works up the tree to the draggable itself attempting to match selector.\n\n\nfunction matchesSelectorAndParentsTo(el\n/*: Node*/\n, selector\n/*: string*/\n, baseNode\n/*: Node*/\n)\n/*: boolean*/\n{\n var node = el;\n\n do {\n if (matchesSelector(node, selector)) return true;\n if (node === baseNode) return false;\n node = node.parentNode;\n } while (node);\n\n return false;\n}\n\nfunction addEvent(el\n/*: ?Node*/\n, event\n/*: string*/\n, handler\n/*: Function*/\n, inputOptions\n/*: Object*/\n)\n/*: void*/\n{\n if (!el) return;\n\n var options = _objectSpread({\n capture: true\n }, inputOptions); // $FlowIgnore[method-unbinding]\n\n\n if (el.addEventListener) {\n el.addEventListener(event, handler, options);\n } else if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = handler;\n }\n}\n\nfunction removeEvent(el\n/*: ?Node*/\n, event\n/*: string*/\n, handler\n/*: Function*/\n, inputOptions\n/*: Object*/\n)\n/*: void*/\n{\n if (!el) return;\n\n var options = _objectSpread({\n capture: true\n }, inputOptions); // $FlowIgnore[method-unbinding]\n\n\n if (el.removeEventListener) {\n el.removeEventListener(event, handler, options);\n } else if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = null;\n }\n}\n\nfunction outerHeight(node\n/*: HTMLElement*/\n)\n/*: number*/\n{\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n var height = node.clientHeight;\n var computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height += (0, _shims.int)(computedStyle.borderTopWidth);\n height += (0, _shims.int)(computedStyle.borderBottomWidth);\n return height;\n}\n\nfunction outerWidth(node\n/*: HTMLElement*/\n)\n/*: number*/\n{\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n var width = node.clientWidth;\n var computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width += (0, _shims.int)(computedStyle.borderLeftWidth);\n width += (0, _shims.int)(computedStyle.borderRightWidth);\n return width;\n}\n\nfunction innerHeight(node\n/*: HTMLElement*/\n)\n/*: number*/\n{\n var height = node.clientHeight;\n var computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height -= (0, _shims.int)(computedStyle.paddingTop);\n height -= (0, _shims.int)(computedStyle.paddingBottom);\n return height;\n}\n\nfunction innerWidth(node\n/*: HTMLElement*/\n)\n/*: number*/\n{\n var width = node.clientWidth;\n var computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width -= (0, _shims.int)(computedStyle.paddingLeft);\n width -= (0, _shims.int)(computedStyle.paddingRight);\n return width;\n}\n/*:: interface EventWithOffset {\n clientX: number, clientY: number\n}*/\n\n\n// Get from offsetParent\nfunction offsetXYFromParent(evt\n/*: EventWithOffset*/\n, offsetParent\n/*: HTMLElement*/\n, scale\n/*: number*/\n)\n/*: ControlPosition*/\n{\n var isBody = offsetParent === offsetParent.ownerDocument.body;\n var offsetParentRect = isBody ? {\n left: 0,\n top: 0\n } : offsetParent.getBoundingClientRect();\n var x = (evt.clientX + offsetParent.scrollLeft - offsetParentRect.left) / scale;\n var y = (evt.clientY + offsetParent.scrollTop - offsetParentRect.top) / scale;\n return {\n x: x,\n y: y\n };\n}\n\nfunction createCSSTransform(controlPos\n/*: ControlPosition*/\n, positionOffset\n/*: PositionOffsetControlPosition*/\n)\n/*: Object*/\n{\n var translation = getTranslation(controlPos, positionOffset, 'px');\n return _defineProperty({}, (0, _getPrefix.browserPrefixToKey)('transform', _getPrefix.default), translation);\n}\n\nfunction createSVGTransform(controlPos\n/*: ControlPosition*/\n, positionOffset\n/*: PositionOffsetControlPosition*/\n)\n/*: string*/\n{\n var translation = getTranslation(controlPos, positionOffset, '');\n return translation;\n}\n\nfunction getTranslation(_ref2, positionOffset\n/*: PositionOffsetControlPosition*/\n, unitSuffix\n/*: string*/\n)\n/*: string*/\n{\n var x = _ref2.x,\n y = _ref2.y;\n var translation = \"translate(\".concat(x).concat(unitSuffix, \",\").concat(y).concat(unitSuffix, \")\");\n\n if (positionOffset) {\n var defaultX = \"\".concat(typeof positionOffset.x === 'string' ? positionOffset.x : positionOffset.x + unitSuffix);\n var defaultY = \"\".concat(typeof positionOffset.y === 'string' ? positionOffset.y : positionOffset.y + unitSuffix);\n translation = \"translate(\".concat(defaultX, \", \").concat(defaultY, \")\") + translation;\n }\n\n return translation;\n}\n\nfunction getTouch(e\n/*: MouseTouchEvent*/\n, identifier\n/*: number*/\n)\n/*: ?{clientX: number, clientY: number}*/\n{\n return e.targetTouches && (0, _shims.findInArray)(e.targetTouches, function (t) {\n return identifier === t.identifier;\n }) || e.changedTouches && (0, _shims.findInArray)(e.changedTouches, function (t) {\n return identifier === t.identifier;\n });\n}\n\nfunction getTouchIdentifier(e\n/*: MouseTouchEvent*/\n)\n/*: ?number*/\n{\n if (e.targetTouches && e.targetTouches[0]) return e.targetTouches[0].identifier;\n if (e.changedTouches && e.changedTouches[0]) return e.changedTouches[0].identifier;\n} // User-select Hacks:\n//\n// Useful for preventing blue highlights all over everything when dragging.\n// Note we're passing `document` b/c we could be iframed\n\n\nfunction addUserSelectStyles(doc\n/*: ?Document*/\n) {\n if (!doc) return;\n var styleEl = doc.getElementById('react-draggable-style-el');\n\n if (!styleEl) {\n styleEl = doc.createElement('style');\n styleEl.type = 'text/css';\n styleEl.id = 'react-draggable-style-el';\n styleEl.innerHTML = '.react-draggable-transparent-selection *::-moz-selection {all: inherit;}\\n';\n styleEl.innerHTML += '.react-draggable-transparent-selection *::selection {all: inherit;}\\n';\n doc.getElementsByTagName('head')[0].appendChild(styleEl);\n }\n\n if (doc.body) addClassName(doc.body, 'react-draggable-transparent-selection');\n}\n\nfunction removeUserSelectStyles(doc\n/*: ?Document*/\n) {\n if (!doc) return;\n\n try {\n if (doc.body) removeClassName(doc.body, 'react-draggable-transparent-selection'); // $FlowIgnore: IE\n\n if (doc.selection) {\n // $FlowIgnore: IE\n doc.selection.empty();\n } else {\n // Remove selection caused by scroll, unless it's a focused input\n // (we use doc.defaultView in case we're in an iframe)\n var selection = (doc.defaultView || window).getSelection();\n\n if (selection && selection.type !== 'Caret') {\n selection.removeAllRanges();\n }\n }\n } catch (e) {// probably IE\n }\n}\n\nfunction addClassName(el\n/*: HTMLElement*/\n, className\n/*: string*/\n) {\n if (el.classList) {\n el.classList.add(className);\n } else {\n if (!el.className.match(new RegExp(\"(?:^|\\\\s)\".concat(className, \"(?!\\\\S)\")))) {\n el.className += \" \".concat(className);\n }\n }\n}\n\nfunction removeClassName(el\n/*: HTMLElement*/\n, className\n/*: string*/\n) {\n if (el.classList) {\n el.classList.remove(className);\n } else {\n el.className = el.className.replace(new RegExp(\"(?:^|\\\\s)\".concat(className, \"(?!\\\\S)\"), 'g'), '');\n }\n}","\"use strict\";\n\nfunction _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\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.matchesSelector = matchesSelector;\nexports.matchesSelectorAndParentsTo = matchesSelectorAndParentsTo;\nexports.addEvent = addEvent;\nexports.removeEvent = removeEvent;\nexports.outerHeight = outerHeight;\nexports.outerWidth = outerWidth;\nexports.innerHeight = innerHeight;\nexports.innerWidth = innerWidth;\nexports.offsetXYFromParent = offsetXYFromParent;\nexports.createCSSTransform = createCSSTransform;\nexports.createSVGTransform = createSVGTransform;\nexports.getTranslation = getTranslation;\nexports.getTouch = getTouch;\nexports.getTouchIdentifier = getTouchIdentifier;\nexports.addUserSelectStyles = addUserSelectStyles;\nexports.removeUserSelectStyles = removeUserSelectStyles;\nexports.addClassName = addClassName;\nexports.removeClassName = removeClassName;\n\nvar _shims = require(\"./shims\");\n\nvar _getPrefix = _interopRequireWildcard(require(\"./getPrefix\"));\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar matchesSelectorFunc = '';\n\nfunction matchesSelector(el\n/*: Node*/\n, selector\n/*: string*/\n)\n/*: boolean*/\n{\n if (!matchesSelectorFunc) {\n matchesSelectorFunc = (0, _shims.findInArray)(['matches', 'webkitMatchesSelector', 'mozMatchesSelector', 'msMatchesSelector', 'oMatchesSelector'], function (method) {\n // $FlowIgnore: Doesn't think elements are indexable\n return (0, _shims.isFunction)(el[method]);\n });\n } // Might not be found entirely (not an Element?) - in that case, bail\n // $FlowIgnore: Doesn't think elements are indexable\n\n\n if (!(0, _shims.isFunction)(el[matchesSelectorFunc])) return false; // $FlowIgnore: Doesn't think elements are indexable\n\n return el[matchesSelectorFunc](selector);\n} // Works up the tree to the draggable itself attempting to match selector.\n\n\nfunction matchesSelectorAndParentsTo(el\n/*: Node*/\n, selector\n/*: string*/\n, baseNode\n/*: Node*/\n)\n/*: boolean*/\n{\n var node = el;\n\n do {\n if (matchesSelector(node, selector)) return true;\n if (node === baseNode) return false;\n node = node.parentNode;\n } while (node);\n\n return false;\n}\n\nfunction addEvent(el\n/*: ?Node*/\n, event\n/*: string*/\n, handler\n/*: Function*/\n, inputOptions\n/*: Object*/\n)\n/*: void*/\n{\n if (!el) return;\n\n var options = _objectSpread({\n capture: true\n }, inputOptions); // $FlowIgnore[method-unbinding]\n\n\n if (el.addEventListener) {\n el.addEventListener(event, handler, options);\n } else if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = handler;\n }\n}\n\nfunction removeEvent(el\n/*: ?Node*/\n, event\n/*: string*/\n, handler\n/*: Function*/\n, inputOptions\n/*: Object*/\n)\n/*: void*/\n{\n if (!el) return;\n\n var options = _objectSpread({\n capture: true\n }, inputOptions); // $FlowIgnore[method-unbinding]\n\n\n if (el.removeEventListener) {\n el.removeEventListener(event, handler, options);\n } else if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = null;\n }\n}\n\nfunction outerHeight(node\n/*: HTMLElement*/\n)\n/*: number*/\n{\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n var height = node.clientHeight;\n var computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height += (0, _shims.int)(computedStyle.borderTopWidth);\n height += (0, _shims.int)(computedStyle.borderBottomWidth);\n return height;\n}\n\nfunction outerWidth(node\n/*: HTMLElement*/\n)\n/*: number*/\n{\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n var width = node.clientWidth;\n var computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width += (0, _shims.int)(computedStyle.borderLeftWidth);\n width += (0, _shims.int)(computedStyle.borderRightWidth);\n return width;\n}\n\nfunction innerHeight(node\n/*: HTMLElement*/\n)\n/*: number*/\n{\n var height = node.clientHeight;\n var computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height -= (0, _shims.int)(computedStyle.paddingTop);\n height -= (0, _shims.int)(computedStyle.paddingBottom);\n return height;\n}\n\nfunction innerWidth(node\n/*: HTMLElement*/\n)\n/*: number*/\n{\n var width = node.clientWidth;\n var computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width -= (0, _shims.int)(computedStyle.paddingLeft);\n width -= (0, _shims.int)(computedStyle.paddingRight);\n return width;\n}\n/*:: interface EventWithOffset {\n clientX: number, clientY: number\n}*/\n\n\n// Get from offsetParent\nfunction offsetXYFromParent(evt\n/*: EventWithOffset*/\n, offsetParent\n/*: HTMLElement*/\n, scale\n/*: number*/\n)\n/*: ControlPosition*/\n{\n var isBody = offsetParent === offsetParent.ownerDocument.body;\n var offsetParentRect = isBody ? {\n left: 0,\n top: 0\n } : offsetParent.getBoundingClientRect();\n var x = (evt.clientX + offsetParent.scrollLeft - offsetParentRect.left) / scale;\n var y = (evt.clientY + offsetParent.scrollTop - offsetParentRect.top) / scale;\n return {\n x: x,\n y: y\n };\n}\n\nfunction createCSSTransform(controlPos\n/*: ControlPosition*/\n, positionOffset\n/*: PositionOffsetControlPosition*/\n)\n/*: Object*/\n{\n var translation = getTranslation(controlPos, positionOffset, 'px');\n return _defineProperty({}, (0, _getPrefix.browserPrefixToKey)('transform', _getPrefix.default), translation);\n}\n\nfunction createSVGTransform(controlPos\n/*: ControlPosition*/\n, positionOffset\n/*: PositionOffsetControlPosition*/\n)\n/*: string*/\n{\n var translation = getTranslation(controlPos, positionOffset, '');\n return translation;\n}\n\nfunction getTranslation(_ref2, positionOffset\n/*: PositionOffsetControlPosition*/\n, unitSuffix\n/*: string*/\n)\n/*: string*/\n{\n var x = _ref2.x,\n y = _ref2.y;\n var translation = \"translate(\".concat(x).concat(unitSuffix, \",\").concat(y).concat(unitSuffix, \")\");\n\n if (positionOffset) {\n var defaultX = \"\".concat(typeof positionOffset.x === 'string' ? positionOffset.x : positionOffset.x + unitSuffix);\n var defaultY = \"\".concat(typeof positionOffset.y === 'string' ? positionOffset.y : positionOffset.y + unitSuffix);\n translation = \"translate(\".concat(defaultX, \", \").concat(defaultY, \")\") + translation;\n }\n\n return translation;\n}\n\nfunction getTouch(e\n/*: MouseTouchEvent*/\n, identifier\n/*: number*/\n)\n/*: ?{clientX: number, clientY: number}*/\n{\n return e.targetTouches && (0, _shims.findInArray)(e.targetTouches, function (t) {\n return identifier === t.identifier;\n }) || e.changedTouches && (0, _shims.findInArray)(e.changedTouches, function (t) {\n return identifier === t.identifier;\n });\n}\n\nfunction getTouchIdentifier(e\n/*: MouseTouchEvent*/\n)\n/*: ?number*/\n{\n if (e.targetTouches && e.targetTouches[0]) return e.targetTouches[0].identifier;\n if (e.changedTouches && e.changedTouches[0]) return e.changedTouches[0].identifier;\n} // User-select Hacks:\n//\n// Useful for preventing blue highlights all over everything when dragging.\n// Note we're passing `document` b/c we could be iframed\n\n\nfunction addUserSelectStyles(doc\n/*: ?Document*/\n) {\n if (!doc) return;\n var styleEl = doc.getElementById('react-draggable-style-el');\n\n if (!styleEl) {\n styleEl = doc.createElement('style');\n styleEl.type = 'text/css';\n styleEl.id = 'react-draggable-style-el';\n styleEl.innerHTML = '.react-draggable-transparent-selection *::-moz-selection {all: inherit;}\\n';\n styleEl.innerHTML += '.react-draggable-transparent-selection *::selection {all: inherit;}\\n';\n doc.getElementsByTagName('head')[0].appendChild(styleEl);\n }\n\n if (doc.body) addClassName(doc.body, 'react-draggable-transparent-selection');\n}\n\nfunction removeUserSelectStyles(doc\n/*: ?Document*/\n) {\n if (!doc) return;\n\n try {\n if (doc.body) removeClassName(doc.body, 'react-draggable-transparent-selection'); // $FlowIgnore: IE\n\n if (doc.selection) {\n // $FlowIgnore: IE\n doc.selection.empty();\n } else {\n // Remove selection caused by scroll, unless it's a focused input\n // (we use doc.defaultView in case we're in an iframe)\n var selection = (doc.defaultView || window).getSelection();\n\n if (selection && selection.type !== 'Caret') {\n selection.removeAllRanges();\n }\n }\n } catch (e) {// probably IE\n }\n}\n\nfunction addClassName(el\n/*: HTMLElement*/\n, className\n/*: string*/\n) {\n if (el.classList) {\n el.classList.add(className);\n } else {\n if (!el.className.match(new RegExp(\"(?:^|\\\\s)\".concat(className, \"(?!\\\\S)\")))) {\n el.className += \" \".concat(className);\n }\n }\n}\n\nfunction removeClassName(el\n/*: HTMLElement*/\n, className\n/*: string*/\n) {\n if (el.classList) {\n el.classList.remove(className);\n } else {\n el.className = el.className.replace(new RegExp(\"(?:^|\\\\s)\".concat(className, \"(?!\\\\S)\"), 'g'), '');\n }\n}","function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nmodule.exports = _inheritsLoose;","var isarray = require('isarray')\n\n/**\n * Expose `pathToRegexp`.\n */\nmodule.exports = pathToRegexp\nmodule.exports.parse = parse\nmodule.exports.compile = compile\nmodule.exports.tokensToFunction = tokensToFunction\nmodule.exports.tokensToRegExp = tokensToRegExp\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n // \"/route(\\\\d+)\" => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n // \"/*\" => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'\n].join('|'), 'g')\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = []\n var key = 0\n var index = 0\n var path = ''\n var defaultDelimiter = options && options.delimiter || '/'\n var res\n\n while ((res = PATH_REGEXP.exec(str)) != null) {\n var m = res[0]\n var escaped = res[1]\n var offset = res.index\n path += str.slice(index, offset)\n index = offset + m.length\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1]\n continue\n }\n\n var next = str[index]\n var prefix = res[2]\n var name = res[3]\n var capture = res[4]\n var group = res[5]\n var modifier = res[6]\n var asterisk = res[7]\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path)\n path = ''\n }\n\n var partial = prefix != null && next != null && next !== prefix\n var repeat = modifier === '+' || modifier === '*'\n var optional = modifier === '?' || modifier === '*'\n var delimiter = res[2] || defaultDelimiter\n var pattern = capture || group\n\n tokens.push({\n name: name || key++,\n prefix: prefix || '',\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n partial: partial,\n asterisk: !!asterisk,\n pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?')\n })\n }\n\n // Match any characters still remaining.\n if (index < str.length) {\n path += str.substr(index)\n }\n\n // If the path exists, push it onto the end.\n if (path) {\n tokens.push(path)\n }\n\n return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options), options)\n}\n\n/**\n * Prettier encoding of URI path segments.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeURIComponentPretty (str) {\n return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeAsterisk (str) {\n return encodeURI(str).replace(/[?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens, options) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length)\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$', flags(options))\n }\n }\n\n return function (obj, opts) {\n var path = ''\n var data = obj || {}\n var options = opts || {}\n var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n path += token\n\n continue\n }\n\n var value = data[token.name]\n var segment\n\n if (value == null) {\n if (token.optional) {\n // Prepend partial segment prefixes.\n if (token.partial) {\n path += token.prefix\n }\n\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to be defined')\n }\n }\n\n if (isarray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`')\n }\n\n if (value.length === 0) {\n if (token.optional) {\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j])\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment\n }\n\n continue\n }\n\n segment = token.asterisk ? encodeAsterisk(value) : encode(value)\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n }\n\n path += token.prefix + segment\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$\\/()])/g, '\\\\$1')\n}\n\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param {!RegExp} re\n * @param {Array} keys\n * @return {!RegExp}\n */\nfunction attachKeys (re, keys) {\n re.keys = keys\n return re\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options && options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {!Array} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g)\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n partial: false,\n asterisk: false,\n pattern: null\n })\n }\n }\n\n return attachKeys(path, keys)\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = []\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source)\n }\n\n var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options))\n\n return attachKeys(regexp, keys)\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {!Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n var strict = options.strict\n var end = options.end !== false\n var route = ''\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n route += escapeString(token)\n } else {\n var prefix = escapeString(token.prefix)\n var capture = '(?:' + token.pattern + ')'\n\n keys.push(token)\n\n if (token.repeat) {\n capture += '(?:' + prefix + capture + ')*'\n }\n\n if (token.optional) {\n if (!token.partial) {\n capture = '(?:' + prefix + '(' + capture + '))?'\n } else {\n capture = prefix + '(' + capture + ')?'\n }\n } else {\n capture = prefix + '(' + capture + ')'\n }\n\n route += capture\n }\n }\n\n var delimiter = escapeString(options.delimiter || '/')\n var endsWithDelimiter = route.slice(-delimiter.length) === delimiter\n\n // In non-strict mode we allow a slash at the end of match. If the path to\n // match already ends with a slash, we remove it for consistency. The slash\n // is valid at the end of a path match, not in the middle. This is important\n // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n if (!strict) {\n route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?'\n }\n\n if (end) {\n route += '$'\n } else {\n // In non-ending mode, we need the capturing groups to match as much as\n // possible by using a positive lookahead to the end or next path segment.\n route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)'\n }\n\n return attachKeys(new RegExp('^' + route, flags(options)), keys)\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n if (path instanceof RegExp) {\n return regexpToRegexp(path, /** @type {!Array} */ (keys))\n }\n\n if (isarray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)\n}\n","import setPrototypeOf from \"./setPrototypeOf\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct\";\nexport default function _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}","import getPrototypeOf from \"./getPrototypeOf\";\nimport setPrototypeOf from \"./setPrototypeOf\";\nimport isNativeFunction from \"./isNativeFunction\";\nimport construct from \"./construct\";\nexport default function _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}","export default function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}","var e=\"undefined\"!=typeof self?self:global;const t=\"undefined\"!=typeof navigator,i=t&&\"undefined\"==typeof HTMLImageElement,n=!(\"undefined\"==typeof global||\"undefined\"==typeof process||!process.versions||!process.versions.node),s=e.Buffer,r=e.BigInt,a=!!s,o=e=>e;function l(e,t=o){if(n)try{return\"function\"==typeof require?Promise.resolve(t(require(e))):import(/* webpackIgnore: true */ e).then(t)}catch(t){console.warn(`Couldn't load ${e}`)}}let h=e.fetch;const u=e=>h=e;if(!e.fetch){const e=l(\"http\",(e=>e)),t=l(\"https\",(e=>e)),i=(n,{headers:s}={})=>new Promise((async(r,a)=>{let{port:o,hostname:l,pathname:h,protocol:u,search:c}=new URL(n);const f={method:\"GET\",hostname:l,path:encodeURI(h)+c,headers:s};\"\"!==o&&(f.port=Number(o));const d=(\"https:\"===u?await t:await e).request(f,(e=>{if(301===e.statusCode||302===e.statusCode){let t=new URL(e.headers.location,n).toString();return i(t,{headers:s}).then(r).catch(a)}r({status:e.statusCode,arrayBuffer:()=>new Promise((t=>{let i=[];e.on(\"data\",(e=>i.push(e))),e.on(\"end\",(()=>t(Buffer.concat(i))))}))})}));d.on(\"error\",a),d.end()}));u(i)}function c(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}const f=e=>p(e)?void 0:e,d=e=>void 0!==e;function p(e){return void 0===e||(e instanceof Map?0===e.size:0===Object.values(e).filter(d).length)}function g(e){let t=new Error(e);throw delete t.stack,t}function m(e){return\"\"===(e=function(e){for(;e.endsWith(\"\\0\");)e=e.slice(0,-1);return e}(e).trim())?void 0:e}function S(e){let t=function(e){let t=0;return e.ifd0.enabled&&(t+=1024),e.exif.enabled&&(t+=2048),e.makerNote&&(t+=2048),e.userComment&&(t+=1024),e.gps.enabled&&(t+=512),e.interop.enabled&&(t+=100),e.ifd1.enabled&&(t+=1024),t+2048}(e);return e.jfif.enabled&&(t+=50),e.xmp.enabled&&(t+=2e4),e.iptc.enabled&&(t+=14e3),e.icc.enabled&&(t+=6e3),t}const C=e=>String.fromCharCode.apply(null,e),y=\"undefined\"!=typeof TextDecoder?new TextDecoder(\"utf-8\"):void 0;function b(e){return y?y.decode(e):a?Buffer.from(e).toString(\"utf8\"):decodeURIComponent(escape(C(e)))}class I{static from(e,t){return e instanceof this&&e.le===t?e:new I(e,void 0,void 0,t)}constructor(e,t=0,i,n){if(\"boolean\"==typeof n&&(this.le=n),Array.isArray(e)&&(e=new Uint8Array(e)),0===e)this.byteOffset=0,this.byteLength=0;else if(e instanceof ArrayBuffer){void 0===i&&(i=e.byteLength-t);let n=new DataView(e,t,i);this._swapDataView(n)}else if(e instanceof Uint8Array||e instanceof DataView||e instanceof I){void 0===i&&(i=e.byteLength-t),(t+=e.byteOffset)+i>e.byteOffset+e.byteLength&&g(\"Creating view outside of available memory in ArrayBuffer\");let n=new DataView(e.buffer,t,i);this._swapDataView(n)}else if(\"number\"==typeof e){let t=new DataView(new ArrayBuffer(e));this._swapDataView(t)}else g(\"Invalid input argument for BufferView: \"+e)}_swapArrayBuffer(e){this._swapDataView(new DataView(e))}_swapBuffer(e){this._swapDataView(new DataView(e.buffer,e.byteOffset,e.byteLength))}_swapDataView(e){this.dataView=e,this.buffer=e.buffer,this.byteOffset=e.byteOffset,this.byteLength=e.byteLength}_lengthToEnd(e){return this.byteLength-e}set(e,t,i=I){return e instanceof DataView||e instanceof I?e=new Uint8Array(e.buffer,e.byteOffset,e.byteLength):e instanceof ArrayBuffer&&(e=new Uint8Array(e)),e instanceof Uint8Array||g(\"BufferView.set(): Invalid data argument.\"),this.toUint8().set(e,t),new i(this,t,e.byteLength)}subarray(e,t){return t=t||this._lengthToEnd(e),new I(this,e,t)}toUint8(){return new Uint8Array(this.buffer,this.byteOffset,this.byteLength)}getUint8Array(e,t){return new Uint8Array(this.buffer,this.byteOffset+e,t)}getString(e=0,t=this.byteLength){return b(this.getUint8Array(e,t))}getLatin1String(e=0,t=this.byteLength){let i=this.getUint8Array(e,t);return C(i)}getUnicodeString(e=0,t=this.byteLength){const i=[];for(let n=0;n1e4?v(e,i,\"base64\"):n&&e.includes(\"://\")?x(e,i,\"url\",M):n?v(e,i,\"fs\"):t?x(e,i,\"url\",M):void g(\"Invalid input argument\");var s}async function x(e,t,i,n){return A.has(i)?v(e,t,i):n?async function(e,t){let i=await t(e);return new I(i)}(e,n):void g(`Parser ${i} is not loaded`)}async function v(e,t,i){let n=new(A.get(i))(e,t);return await n.read(),n}const M=e=>h(e).then((e=>e.arrayBuffer())),R=e=>new Promise(((t,i)=>{let n=new FileReader;n.onloadend=()=>t(n.result||new ArrayBuffer),n.onerror=i,n.readAsArrayBuffer(e)}));class L extends Map{get tagKeys(){return this.allKeys||(this.allKeys=Array.from(this.keys())),this.allKeys}get tagValues(){return this.allValues||(this.allValues=Array.from(this.values())),this.allValues}}function U(e,t,i){let n=new L;for(let[e,t]of i)n.set(e,t);if(Array.isArray(t))for(let i of t)e.set(i,n);else e.set(t,n);return n}function F(e,t,i){let n,s=e.get(t);for(n of i)s.set(n[0],n[1])}const E=new Map,B=new Map,N=new Map,G=[\"chunked\",\"firstChunkSize\",\"firstChunkSizeNode\",\"firstChunkSizeBrowser\",\"chunkSize\",\"chunkLimit\"],V=[\"jfif\",\"xmp\",\"icc\",\"iptc\",\"ihdr\"],z=[\"tiff\",...V],H=[\"ifd0\",\"ifd1\",\"exif\",\"gps\",\"interop\"],j=[...z,...H],W=[\"makerNote\",\"userComment\"],K=[\"translateKeys\",\"translateValues\",\"reviveValues\",\"multiSegment\"],X=[...K,\"sanitize\",\"mergeOutput\",\"silentErrors\"];class _{get translate(){return this.translateKeys||this.translateValues||this.reviveValues}}class Y extends _{get needed(){return this.enabled||this.deps.size>0}constructor(e,t,i,n){if(super(),c(this,\"enabled\",!1),c(this,\"skip\",new Set),c(this,\"pick\",new Set),c(this,\"deps\",new Set),c(this,\"translateKeys\",!1),c(this,\"translateValues\",!1),c(this,\"reviveValues\",!1),this.key=e,this.enabled=t,this.parse=this.enabled,this.applyInheritables(n),this.canBeFiltered=H.includes(e),this.canBeFiltered&&(this.dict=E.get(e)),void 0!==i)if(Array.isArray(i))this.parse=this.enabled=!0,this.canBeFiltered&&i.length>0&&this.translateTagSet(i,this.pick);else if(\"object\"==typeof i){if(this.enabled=!0,this.parse=!1!==i.parse,this.canBeFiltered){let{pick:e,skip:t}=i;e&&e.length>0&&this.translateTagSet(e,this.pick),t&&t.length>0&&this.translateTagSet(t,this.skip)}this.applyInheritables(i)}else!0===i||!1===i?this.parse=this.enabled=i:g(`Invalid options argument: ${i}`)}applyInheritables(e){let t,i;for(t of K)i=e[t],void 0!==i&&(this[t]=i)}translateTagSet(e,t){if(this.dict){let i,n,{tagKeys:s,tagValues:r}=this.dict;for(i of e)\"string\"==typeof i?(n=r.indexOf(i),-1===n&&(n=s.indexOf(Number(i))),-1!==n&&t.add(Number(s[n]))):t.add(i)}else for(let i of e)t.add(i)}finalizeFilters(){!this.enabled&&this.deps.size>0?(this.enabled=!0,ee(this.pick,this.deps)):this.enabled&&this.pick.size>0&&ee(this.pick,this.deps)}}var $={jfif:!1,tiff:!0,xmp:!1,icc:!1,iptc:!1,ifd0:!0,ifd1:!1,exif:!0,gps:!0,interop:!1,ihdr:void 0,makerNote:!1,userComment:!1,multiSegment:!1,skip:[],pick:[],translateKeys:!0,translateValues:!0,reviveValues:!0,sanitize:!0,mergeOutput:!0,silentErrors:!0,chunked:!0,firstChunkSize:void 0,firstChunkSizeNode:512,firstChunkSizeBrowser:65536,chunkSize:65536,chunkLimit:5},J=new Map;class q extends _{static useCached(e){let t=J.get(e);return void 0!==t||(t=new this(e),J.set(e,t)),t}constructor(e){super(),!0===e?this.setupFromTrue():void 0===e?this.setupFromUndefined():Array.isArray(e)?this.setupFromArray(e):\"object\"==typeof e?this.setupFromObject(e):g(`Invalid options argument ${e}`),void 0===this.firstChunkSize&&(this.firstChunkSize=t?this.firstChunkSizeBrowser:this.firstChunkSizeNode),this.mergeOutput&&(this.ifd1.enabled=!1),this.filterNestedSegmentTags(),this.traverseTiffDependencyTree(),this.checkLoadedPlugins()}setupFromUndefined(){let e;for(e of G)this[e]=$[e];for(e of X)this[e]=$[e];for(e of W)this[e]=$[e];for(e of j)this[e]=new Y(e,$[e],void 0,this)}setupFromTrue(){let e;for(e of G)this[e]=$[e];for(e of X)this[e]=$[e];for(e of W)this[e]=!0;for(e of j)this[e]=new Y(e,!0,void 0,this)}setupFromArray(e){let t;for(t of G)this[t]=$[t];for(t of X)this[t]=$[t];for(t of W)this[t]=$[t];for(t of j)this[t]=new Y(t,!1,void 0,this);this.setupGlobalFilters(e,void 0,H)}setupFromObject(e){let t;for(t of(H.ifd0=H.ifd0||H.image,H.ifd1=H.ifd1||H.thumbnail,Object.assign(this,e),G))this[t]=Z(e[t],$[t]);for(t of X)this[t]=Z(e[t],$[t]);for(t of W)this[t]=Z(e[t],$[t]);for(t of z)this[t]=new Y(t,$[t],e[t],this);for(t of H)this[t]=new Y(t,$[t],e[t],this.tiff);this.setupGlobalFilters(e.pick,e.skip,H,j),!0===e.tiff?this.batchEnableWithBool(H,!0):!1===e.tiff?this.batchEnableWithUserValue(H,e):Array.isArray(e.tiff)?this.setupGlobalFilters(e.tiff,void 0,H):\"object\"==typeof e.tiff&&this.setupGlobalFilters(e.tiff.pick,e.tiff.skip,H)}batchEnableWithBool(e,t){for(let i of e)this[i].enabled=t}batchEnableWithUserValue(e,t){for(let i of e){let e=t[i];this[i].enabled=!1!==e&&void 0!==e}}setupGlobalFilters(e,t,i,n=i){if(e&&e.length){for(let e of n)this[e].enabled=!1;let t=Q(e,i);for(let[e,i]of t)ee(this[e].pick,i),this[e].enabled=!0}else if(t&&t.length){let e=Q(t,i);for(let[t,i]of e)ee(this[t].skip,i)}}filterNestedSegmentTags(){let{ifd0:e,exif:t,xmp:i,iptc:n,icc:s}=this;this.makerNote?t.deps.add(37500):t.skip.add(37500),this.userComment?t.deps.add(37510):t.skip.add(37510),i.enabled||e.skip.add(700),n.enabled||e.skip.add(33723),s.enabled||e.skip.add(34675)}traverseTiffDependencyTree(){let{ifd0:e,exif:t,gps:i,interop:n}=this;n.needed&&(t.deps.add(40965),e.deps.add(40965)),t.needed&&e.deps.add(34665),i.needed&&e.deps.add(34853),this.tiff.enabled=H.some((e=>!0===this[e].enabled))||this.makerNote||this.userComment;for(let e of H)this[e].finalizeFilters()}get onlyTiff(){return!V.map((e=>this[e].enabled)).some((e=>!0===e))&&this.tiff.enabled}checkLoadedPlugins(){for(let e of z)this[e].enabled&&!T.has(e)&&P(\"segment parser\",e)}}function Q(e,t){let i,n,s,r,a=[];for(s of t){for(r of(i=E.get(s),n=[],i))(e.includes(r[0])||e.includes(r[1]))&&n.push(r[0]);n.length&&a.push([s,n])}return a}function Z(e,t){return void 0!==e?e:void 0!==t?t:void 0}function ee(e,t){for(let i of t)e.add(i)}c(q,\"default\",$);class te{constructor(e){c(this,\"parsers\",{}),c(this,\"output\",{}),c(this,\"errors\",[]),c(this,\"pushToErrors\",(e=>this.errors.push(e))),this.options=q.useCached(e)}async read(e){this.file=await D(e,this.options)}setup(){if(this.fileParser)return;let{file:e}=this,t=e.getUint16(0);for(let[i,n]of w)if(n.canHandle(e,t))return this.fileParser=new n(this.options,this.file,this.parsers),e[i]=!0;this.file.close&&this.file.close(),g(\"Unknown file format\")}async parse(){let{output:e,errors:t}=this;return this.setup(),this.options.silentErrors?(await this.executeParsers().catch(this.pushToErrors),t.push(...this.fileParser.errors)):await this.executeParsers(),this.file.close&&this.file.close(),this.options.silentErrors&&t.length>0&&(e.errors=t),f(e)}async executeParsers(){let{output:e}=this;await this.fileParser.parse();let t=Object.values(this.parsers).map((async t=>{let i=await t.parse();t.assignToOutput(e,i)}));this.options.silentErrors&&(t=t.map((e=>e.catch(this.pushToErrors)))),await Promise.all(t)}async extractThumbnail(){this.setup();let{options:e,file:t}=this,i=T.get(\"tiff\",e);var n;if(t.tiff?n={start:0,type:\"tiff\"}:t.jpeg&&(n=await this.fileParser.getOrFindSegment(\"tiff\")),void 0===n)return;let s=await this.fileParser.ensureSegmentChunk(n),r=this.parsers.tiff=new i(s,e,t),a=await r.extractThumbnail();return t.close&&t.close(),a}}async function ie(e,t){let i=new te(t);return await i.read(e),i.parse()}var ne=Object.freeze({__proto__:null,parse:ie,Exifr:te,fileParsers:w,segmentParsers:T,fileReaders:A,tagKeys:E,tagValues:B,tagRevivers:N,createDictionary:U,extendDictionary:F,fetchUrlAsArrayBuffer:M,readBlobAsArrayBuffer:R,chunkedProps:G,otherSegments:V,segments:z,tiffBlocks:H,segmentsAndBlocks:j,tiffExtractables:W,inheritables:K,allFormatters:X,Options:q});class se{constructor(e,t,i){c(this,\"errors\",[]),c(this,\"ensureSegmentChunk\",(async e=>{let t=e.start,i=e.size||65536;if(this.file.chunked)if(this.file.available(t,i))e.chunk=this.file.subarray(t,i);else try{e.chunk=await this.file.readChunk(t,i)}catch(t){g(`Couldn't read segment: ${JSON.stringify(e)}. ${t.message}`)}else this.file.byteLength>t+i?e.chunk=this.file.subarray(t,i):void 0===e.size?e.chunk=this.file.subarray(t):g(\"Segment unreachable: \"+JSON.stringify(e));return e.chunk})),this.extendOptions&&this.extendOptions(e),this.options=e,this.file=t,this.parsers=i}injectSegment(e,t){this.options[e].enabled&&this.createParser(e,t)}createParser(e,t){let i=new(T.get(e))(t,this.options,this.file);return this.parsers[e]=i}createParsers(e){for(let t of e){let{type:e,chunk:i}=t,n=this.options[e];if(n&&n.enabled){let t=this.parsers[e];t&&t.append||t||this.createParser(e,i)}}}async readSegments(e){let t=e.map(this.ensureSegmentChunk);await Promise.all(t)}}class re{static findPosition(e,t){let i=e.getUint16(t+2)+2,n=\"function\"==typeof this.headerLength?this.headerLength(e,t,i):this.headerLength,s=t+n,r=i-n;return{offset:t,length:i,headerLength:n,start:s,size:r,end:s+r}}static parse(e,t={}){return new this(e,new q({[this.type]:t}),e).parse()}normalizeInput(e){return e instanceof I?e:new I(e)}constructor(e,t={},i){c(this,\"errors\",[]),c(this,\"raw\",new Map),c(this,\"handleError\",(e=>{if(!this.options.silentErrors)throw e;this.errors.push(e.message)})),this.chunk=this.normalizeInput(e),this.file=i,this.type=this.constructor.type,this.globalOptions=this.options=t,this.localOptions=t[this.type],this.canTranslate=this.localOptions&&this.localOptions.translate}translate(){this.canTranslate&&(this.translated=this.translateBlock(this.raw,this.type))}get output(){return this.translated?this.translated:this.raw?Object.fromEntries(this.raw):void 0}translateBlock(e,t){let i=N.get(t),n=B.get(t),s=E.get(t),r=this.options[t],a=r.reviveValues&&!!i,o=r.translateValues&&!!n,l=r.translateKeys&&!!s,h={};for(let[t,r]of e)a&&i.has(t)?r=i.get(t)(r):o&&n.has(t)&&(r=this.translateValue(r,n.get(t))),l&&s.has(t)&&(t=s.get(t)||t),h[t]=r;return h}translateValue(e,t){return t[e]||t.DEFAULT||e}assignToOutput(e,t){this.assignObjectToOutput(e,this.constructor.type,t)}assignObjectToOutput(e,t,i){if(this.globalOptions.mergeOutput)return Object.assign(e,i);e[t]?Object.assign(e[t],i):e[t]=i}}c(re,\"headerLength\",4),c(re,\"type\",void 0),c(re,\"multiSegment\",!1),c(re,\"canHandle\",(()=>!1));function ae(e){return 192===e||194===e||196===e||219===e||221===e||218===e||254===e}function oe(e){return e>=224&&e<=239}function le(e,t,i){for(let[n,s]of T)if(s.canHandle(e,t,i))return n}class he extends se{constructor(...e){super(...e),c(this,\"appSegments\",[]),c(this,\"jpegSegments\",[]),c(this,\"unknownSegments\",[])}static canHandle(e,t){return 65496===t}async parse(){await this.findAppSegments(),await this.readSegments(this.appSegments),this.mergeMultiSegments(),this.createParsers(this.mergedAppSegments||this.appSegments)}setupSegmentFinderArgs(e){!0===e?(this.findAll=!0,this.wanted=new Set(T.keyList())):(e=void 0===e?T.keyList().filter((e=>this.options[e].enabled)):e.filter((e=>this.options[e].enabled&&T.has(e))),this.findAll=!1,this.remaining=new Set(e),this.wanted=new Set(e)),this.unfinishedMultiSegment=!1}async findAppSegments(e=0,t){this.setupSegmentFinderArgs(t);let{file:i,findAll:n,wanted:s,remaining:r}=this;if(!n&&this.file.chunked&&(n=Array.from(s).some((e=>{let t=T.get(e),i=this.options[e];return t.multiSegment&&i.multiSegment})),n&&await this.file.readWhole()),e=this.findAppSegmentsInRange(e,i.byteLength),!this.options.onlyTiff&&i.chunked){let t=!1;for(;r.size>0&&!t&&(i.canReadNextChunk||this.unfinishedMultiSegment);){let{nextChunkOffset:n}=i,s=this.appSegments.some((e=>!this.file.available(e.offset||e.start,e.length||e.size)));if(t=e>n&&!s?!await i.readNextChunk(e):!await i.readNextChunk(n),void 0===(e=this.findAppSegmentsInRange(e,i.byteLength)))return}}}findAppSegmentsInRange(e,t){t-=2;let i,n,s,r,a,o,{file:l,findAll:h,wanted:u,remaining:c,options:f}=this;for(;ee.multiSegment)))return;let e=function(e,t){let i,n,s,r=new Map;for(let a=0;a{let i=T.get(e,this.options);if(i.handleMultiSegments){return{type:e,chunk:i.handleMultiSegments(t)}}return t[0]}))}getSegment(e){return this.appSegments.find((t=>t.type===e))}async getOrFindSegment(e){let t=this.getSegment(e);return void 0===t&&(await this.findAppSegments(0,[e]),t=this.getSegment(e)),t}}c(he,\"type\",\"jpeg\"),w.set(\"jpeg\",he);const ue=[void 0,1,1,2,4,8,1,1,2,4,8,4,8,4];class ce extends re{parseHeader(){var e=this.chunk.getUint16();18761===e?this.le=!0:19789===e&&(this.le=!1),this.chunk.le=this.le,this.headerParsed=!0}parseTags(e,t,i=new Map){let{pick:n,skip:s}=this.options[t];n=new Set(n);let r=n.size>0,a=0===s.size,o=this.chunk.getUint16(e);e+=2;for(let l=0;l13)&&g(`Invalid TIFF value type. block: ${i.toUpperCase()}, tag: ${t.toString(16)}, type: ${s}, offset ${e}`),e>n.byteLength&&g(`Invalid TIFF value offset. block: ${i.toUpperCase()}, tag: ${t.toString(16)}, type: ${s}, offset ${e} is outside of chunk size ${n.byteLength}`),1===s)return n.getUint8Array(e,r);if(2===s)return m(n.getString(e,r));if(7===s)return n.getUint8Array(e,r);if(1===r)return this.parseTagValue(s,e);{let t=new(function(e){switch(e){case 1:return Uint8Array;case 3:return Uint16Array;case 4:return Uint32Array;case 5:return Array;case 6:return Int8Array;case 8:return Int16Array;case 9:return Int32Array;case 10:return Array;case 11:return Float32Array;case 12:return Float64Array;default:return Array}}(s))(r),i=a;for(let n=0;ne.byteLength&&g(`IFD0 offset points to outside of file.\\nthis.ifd0Offset: ${this.ifd0Offset}, file.byteLength: ${e.byteLength}`),e.tiff&&await e.ensureChunk(this.ifd0Offset,S(this.options));let t=this.parseBlock(this.ifd0Offset,\"ifd0\");return 0!==t.size?(this.exifOffset=t.get(34665),this.interopOffset=t.get(40965),this.gpsOffset=t.get(34853),this.xmp=t.get(700),this.iptc=t.get(33723),this.icc=t.get(34675),this.options.sanitize&&(t.delete(34665),t.delete(40965),t.delete(34853),t.delete(700),t.delete(33723),t.delete(34675)),t):void 0}async parseExifBlock(){if(this.exif)return;if(this.ifd0||await this.parseIfd0Block(),void 0===this.exifOffset)return;this.file.tiff&&await this.file.ensureChunk(this.exifOffset,S(this.options));let e=this.parseBlock(this.exifOffset,\"exif\");return this.interopOffset||(this.interopOffset=e.get(40965)),this.makerNote=e.get(37500),this.userComment=e.get(37510),this.options.sanitize&&(e.delete(40965),e.delete(37500),e.delete(37510)),this.unpack(e,41728),this.unpack(e,41729),e}unpack(e,t){let i=e.get(t);i&&1===i.length&&e.set(t,i[0])}async parseGpsBlock(){if(this.gps)return;if(this.ifd0||await this.parseIfd0Block(),void 0===this.gpsOffset)return;let e=this.parseBlock(this.gpsOffset,\"gps\");return e&&e.has(2)&&e.has(4)&&(e.set(\"latitude\",de(...e.get(2),e.get(1))),e.set(\"longitude\",de(...e.get(4),e.get(3)))),e}async parseInteropBlock(){if(!this.interop&&(this.ifd0||await this.parseIfd0Block(),void 0!==this.interopOffset||this.exif||await this.parseExifBlock(),void 0!==this.interopOffset))return this.parseBlock(this.interopOffset,\"interop\")}async parseThumbnailBlock(e=!1){if(!this.ifd1&&!this.ifd1Parsed&&(!this.options.mergeOutput||e))return this.findIfd1Offset(),this.ifd1Offset>0&&(this.parseBlock(this.ifd1Offset,\"ifd1\"),this.ifd1Parsed=!0),this.ifd1}async extractThumbnail(){if(this.headerParsed||this.parseHeader(),this.ifd1Parsed||await this.parseThumbnailBlock(!0),void 0===this.ifd1)return;let e=this.ifd1.get(513),t=this.ifd1.get(514);return this.chunk.getUint8Array(e,t)}get image(){return this.ifd0}get thumbnail(){return this.ifd1}createOutput(){let e,t,i,n={};for(t of H)if(e=this[t],!p(e))if(i=this.canTranslate?this.translateBlock(e,t):Object.fromEntries(e),this.options.mergeOutput){if(\"ifd1\"===t)continue;Object.assign(n,i)}else n[t]=i;return this.makerNote&&(n.makerNote=this.makerNote),this.userComment&&(n.userComment=this.userComment),n}assignToOutput(e,t){if(this.globalOptions.mergeOutput)Object.assign(e,t);else for(let[i,n]of Object.entries(t))this.assignObjectToOutput(e,i,n)}}function de(e,t,i,n){var s=e+t/60+i/3600;return\"S\"!==n&&\"W\"!==n||(s*=-1),s}c(fe,\"type\",\"tiff\"),c(fe,\"headerLength\",10),T.set(\"tiff\",fe);var pe=Object.freeze({__proto__:null,default:ne,Exifr:te,fileParsers:w,segmentParsers:T,fileReaders:A,tagKeys:E,tagValues:B,tagRevivers:N,createDictionary:U,extendDictionary:F,fetchUrlAsArrayBuffer:M,readBlobAsArrayBuffer:R,chunkedProps:G,otherSegments:V,segments:z,tiffBlocks:H,segmentsAndBlocks:j,tiffExtractables:W,inheritables:K,allFormatters:X,Options:q,parse:ie});const ge={ifd0:!1,ifd1:!1,exif:!1,gps:!1,interop:!1,sanitize:!1,reviveValues:!0,translateKeys:!1,translateValues:!1,mergeOutput:!1},me=Object.assign({},ge,{firstChunkSize:4e4,gps:[1,2,3,4]});async function Se(e){let t=new te(me);await t.read(e);let i=await t.parse();if(i&&i.gps){let{latitude:e,longitude:t}=i.gps;return{latitude:e,longitude:t}}}const Ce=Object.assign({},ge,{tiff:!1,ifd1:!0,mergeOutput:!1});async function ye(e){let t=new te(Ce);await t.read(e);let i=await t.extractThumbnail();return i&&a?s.from(i):i}async function be(e){let t=await this.thumbnail(e);if(void 0!==t){let e=new Blob([t]);return URL.createObjectURL(e)}}const Ie=Object.assign({},ge,{firstChunkSize:4e4,ifd0:[274]});async function Pe(e){let t=new te(Ie);await t.read(e);let i=await t.parse();if(i&&i.ifd0)return i.ifd0[274]}const ke=Object.freeze({1:{dimensionSwapped:!1,scaleX:1,scaleY:1,deg:0,rad:0},2:{dimensionSwapped:!1,scaleX:-1,scaleY:1,deg:0,rad:0},3:{dimensionSwapped:!1,scaleX:1,scaleY:1,deg:180,rad:180*Math.PI/180},4:{dimensionSwapped:!1,scaleX:-1,scaleY:1,deg:180,rad:180*Math.PI/180},5:{dimensionSwapped:!0,scaleX:1,scaleY:-1,deg:90,rad:90*Math.PI/180},6:{dimensionSwapped:!0,scaleX:1,scaleY:1,deg:90,rad:90*Math.PI/180},7:{dimensionSwapped:!0,scaleX:1,scaleY:-1,deg:270,rad:270*Math.PI/180},8:{dimensionSwapped:!0,scaleX:1,scaleY:1,deg:270,rad:270*Math.PI/180}});let we=!0,Te=!0;if(\"object\"==typeof navigator){let e=navigator.userAgent;if(e.includes(\"iPad\")||e.includes(\"iPhone\")){let t=e.match(/OS (\\d+)_(\\d+)/);if(t){let[,e,i]=t,n=Number(e)+.1*Number(i);we=n<13.4,Te=!1}}else if(e.includes(\"OS X 10\")){let[,t]=e.match(/OS X 10[_.](\\d+)/);we=Te=Number(t)<15}if(e.includes(\"Chrome/\")){let[,t]=e.match(/Chrome\\/(\\d+)/);we=Te=Number(t)<81}else if(e.includes(\"Firefox/\")){let[,t]=e.match(/Firefox\\/(\\d+)/);we=Te=Number(t)<77}}async function Ae(e){let t=await Pe(e);return Object.assign({canvas:we,css:Te},ke[t])}class De extends I{constructor(...e){super(...e),c(this,\"ranges\",new Oe),0!==this.byteLength&&this.ranges.add(0,this.byteLength)}_tryExtend(e,t,i){if(0===e&&0===this.byteLength&&i){let e=new DataView(i.buffer||i,i.byteOffset,i.byteLength);this._swapDataView(e)}else{let i=e+t;if(i>this.byteLength){let{dataView:e}=this._extend(i);this._swapDataView(e)}}}_extend(e){let t;t=a?s.allocUnsafe(e):new Uint8Array(e);let i=new DataView(t.buffer,t.byteOffset,t.byteLength);return t.set(new Uint8Array(this.buffer,this.byteOffset,this.byteLength),0),{uintView:t,dataView:i}}subarray(e,t,i=!1){return t=t||this._lengthToEnd(e),i&&this._tryExtend(e,t),this.ranges.add(e,t),super.subarray(e,t)}set(e,t,i=!1){i&&this._tryExtend(t,e.byteLength,e);let n=super.set(e,t);return this.ranges.add(t,n.byteLength),n}async ensureChunk(e,t){this.chunked&&(this.ranges.available(e,t)||await this.readChunk(e,t))}available(e,t){return this.ranges.available(e,t)}}class Oe{constructor(){c(this,\"list\",[])}get length(){return this.list.length}add(e,t,i=0){let n=e+t,s=this.list.filter((t=>xe(e,t.offset,n)||xe(e,t.end,n)));if(s.length>0){e=Math.min(e,...s.map((e=>e.offset))),n=Math.max(n,...s.map((e=>e.end))),t=n-e;let i=s.shift();i.offset=e,i.length=t,i.end=n,this.list=this.list.filter((e=>!s.includes(e)))}else this.list.push({offset:e,length:t,end:n})}available(e,t){let i=e+t;return this.list.some((t=>t.offset<=e&&i<=t.end))}}function xe(e,t,i){return e<=t&&t<=i}class ve extends De{constructor(e,t){super(0),c(this,\"chunksRead\",0),this.input=e,this.options=t}async readWhole(){this.chunked=!1,await this.readChunk(this.nextChunkOffset)}async readChunked(){this.chunked=!0,await this.readChunk(0,this.options.firstChunkSize)}async readNextChunk(e=this.nextChunkOffset){if(this.fullyRead)return this.chunksRead++,!1;let t=this.options.chunkSize,i=await this.readChunk(e,t);return!!i&&i.byteLength===t}async readChunk(e,t){if(this.chunksRead++,0!==(t=this.safeWrapAddress(e,t)))return this._readChunk(e,t)}safeWrapAddress(e,t){return void 0!==this.size&&e+t>this.size?Math.max(0,this.size-e):t}get nextChunkOffset(){if(0!==this.ranges.list.length)return this.ranges.list[0].length}get canReadNextChunk(){return this.chunksReade.kind===t))}parseBoxHead(e){let t=this.file.getUint32(e),i=this.file.getString(e+4,4),n=e+8;return 1===t&&(t=this.file.getUint64(e+8),n+=8),{offset:e,length:t,kind:i,start:n}}parseBoxFullHead(e){if(void 0!==e.version)return;let t=this.file.getUint32(e.start);e.version=t>>24,e.start+=4}}class Le extends Re{static canHandle(e,t){if(0!==t)return!1;let i=e.getUint16(2);if(i>50)return!1;let n=16,s=[];for(;n=2&&(n=3===t.version?4:2,s=this.file.getString(i+n+2,4),\"Exif\"===s))return this.file.getUintBytes(i,n);r+=t.length}}get8bits(e){let t=this.file.getUint8(e);return[t>>4,15&t]}findExtentInIloc(e,t){this.parseBoxFullHead(e);let i=e.start,[n,s]=this.get8bits(i++),[r,a]=this.get8bits(i++),o=2===e.version?4:2,l=1===e.version||2===e.version?2:0,h=a+n+s,u=2===e.version?4:2,c=this.file.getUintBytes(i,u);for(i+=u;c--;){let e=this.file.getUintBytes(i,o);i+=o+l+2+r;let u=this.file.getUint16(i);if(i+=2,e===t)return u>1&&console.warn(\"ILOC box has more than one extent but we're only processing one\\nPlease create an issue at https://github.com/MikeKovarik/exifr with this file\"),[this.file.getUintBytes(i+a,n),this.file.getUintBytes(i+a+n,s)];i+=u*h}}}class Ue extends Le{}c(Ue,\"type\",\"heic\");class Fe extends Le{}c(Fe,\"type\",\"avif\"),w.set(\"heic\",Ue),w.set(\"avif\",Fe),U(E,[\"ifd0\",\"ifd1\"],[[256,\"ImageWidth\"],[257,\"ImageHeight\"],[258,\"BitsPerSample\"],[259,\"Compression\"],[262,\"PhotometricInterpretation\"],[270,\"ImageDescription\"],[271,\"Make\"],[272,\"Model\"],[273,\"StripOffsets\"],[274,\"Orientation\"],[277,\"SamplesPerPixel\"],[278,\"RowsPerStrip\"],[279,\"StripByteCounts\"],[282,\"XResolution\"],[283,\"YResolution\"],[284,\"PlanarConfiguration\"],[296,\"ResolutionUnit\"],[301,\"TransferFunction\"],[305,\"Software\"],[306,\"ModifyDate\"],[315,\"Artist\"],[316,\"HostComputer\"],[317,\"Predictor\"],[318,\"WhitePoint\"],[319,\"PrimaryChromaticities\"],[513,\"ThumbnailOffset\"],[514,\"ThumbnailLength\"],[529,\"YCbCrCoefficients\"],[530,\"YCbCrSubSampling\"],[531,\"YCbCrPositioning\"],[532,\"ReferenceBlackWhite\"],[700,\"ApplicationNotes\"],[33432,\"Copyright\"],[33723,\"IPTC\"],[34665,\"ExifIFD\"],[34675,\"ICC\"],[34853,\"GpsIFD\"],[330,\"SubIFD\"],[40965,\"InteropIFD\"],[40091,\"XPTitle\"],[40092,\"XPComment\"],[40093,\"XPAuthor\"],[40094,\"XPKeywords\"],[40095,\"XPSubject\"]]),U(E,\"exif\",[[33434,\"ExposureTime\"],[33437,\"FNumber\"],[34850,\"ExposureProgram\"],[34852,\"SpectralSensitivity\"],[34855,\"ISO\"],[34858,\"TimeZoneOffset\"],[34859,\"SelfTimerMode\"],[34864,\"SensitivityType\"],[34865,\"StandardOutputSensitivity\"],[34866,\"RecommendedExposureIndex\"],[34867,\"ISOSpeed\"],[34868,\"ISOSpeedLatitudeyyy\"],[34869,\"ISOSpeedLatitudezzz\"],[36864,\"ExifVersion\"],[36867,\"DateTimeOriginal\"],[36868,\"CreateDate\"],[36873,\"GooglePlusUploadCode\"],[36880,\"OffsetTime\"],[36881,\"OffsetTimeOriginal\"],[36882,\"OffsetTimeDigitized\"],[37121,\"ComponentsConfiguration\"],[37122,\"CompressedBitsPerPixel\"],[37377,\"ShutterSpeedValue\"],[37378,\"ApertureValue\"],[37379,\"BrightnessValue\"],[37380,\"ExposureCompensation\"],[37381,\"MaxApertureValue\"],[37382,\"SubjectDistance\"],[37383,\"MeteringMode\"],[37384,\"LightSource\"],[37385,\"Flash\"],[37386,\"FocalLength\"],[37393,\"ImageNumber\"],[37394,\"SecurityClassification\"],[37395,\"ImageHistory\"],[37396,\"SubjectArea\"],[37500,\"MakerNote\"],[37510,\"UserComment\"],[37520,\"SubSecTime\"],[37521,\"SubSecTimeOriginal\"],[37522,\"SubSecTimeDigitized\"],[37888,\"AmbientTemperature\"],[37889,\"Humidity\"],[37890,\"Pressure\"],[37891,\"WaterDepth\"],[37892,\"Acceleration\"],[37893,\"CameraElevationAngle\"],[40960,\"FlashpixVersion\"],[40961,\"ColorSpace\"],[40962,\"ExifImageWidth\"],[40963,\"ExifImageHeight\"],[40964,\"RelatedSoundFile\"],[41483,\"FlashEnergy\"],[41486,\"FocalPlaneXResolution\"],[41487,\"FocalPlaneYResolution\"],[41488,\"FocalPlaneResolutionUnit\"],[41492,\"SubjectLocation\"],[41493,\"ExposureIndex\"],[41495,\"SensingMethod\"],[41728,\"FileSource\"],[41729,\"SceneType\"],[41730,\"CFAPattern\"],[41985,\"CustomRendered\"],[41986,\"ExposureMode\"],[41987,\"WhiteBalance\"],[41988,\"DigitalZoomRatio\"],[41989,\"FocalLengthIn35mmFormat\"],[41990,\"SceneCaptureType\"],[41991,\"GainControl\"],[41992,\"Contrast\"],[41993,\"Saturation\"],[41994,\"Sharpness\"],[41996,\"SubjectDistanceRange\"],[42016,\"ImageUniqueID\"],[42032,\"OwnerName\"],[42033,\"SerialNumber\"],[42034,\"LensInfo\"],[42035,\"LensMake\"],[42036,\"LensModel\"],[42037,\"LensSerialNumber\"],[42080,\"CompositeImage\"],[42081,\"CompositeImageCount\"],[42082,\"CompositeImageExposureTimes\"],[42240,\"Gamma\"],[59932,\"Padding\"],[59933,\"OffsetSchema\"],[65e3,\"OwnerName\"],[65001,\"SerialNumber\"],[65002,\"Lens\"],[65100,\"RawFile\"],[65101,\"Converter\"],[65102,\"WhiteBalance\"],[65105,\"Exposure\"],[65106,\"Shadows\"],[65107,\"Brightness\"],[65108,\"Contrast\"],[65109,\"Saturation\"],[65110,\"Sharpness\"],[65111,\"Smoothness\"],[65112,\"MoireFilter\"],[40965,\"InteropIFD\"]]),U(E,\"gps\",[[0,\"GPSVersionID\"],[1,\"GPSLatitudeRef\"],[2,\"GPSLatitude\"],[3,\"GPSLongitudeRef\"],[4,\"GPSLongitude\"],[5,\"GPSAltitudeRef\"],[6,\"GPSAltitude\"],[7,\"GPSTimeStamp\"],[8,\"GPSSatellites\"],[9,\"GPSStatus\"],[10,\"GPSMeasureMode\"],[11,\"GPSDOP\"],[12,\"GPSSpeedRef\"],[13,\"GPSSpeed\"],[14,\"GPSTrackRef\"],[15,\"GPSTrack\"],[16,\"GPSImgDirectionRef\"],[17,\"GPSImgDirection\"],[18,\"GPSMapDatum\"],[19,\"GPSDestLatitudeRef\"],[20,\"GPSDestLatitude\"],[21,\"GPSDestLongitudeRef\"],[22,\"GPSDestLongitude\"],[23,\"GPSDestBearingRef\"],[24,\"GPSDestBearing\"],[25,\"GPSDestDistanceRef\"],[26,\"GPSDestDistance\"],[27,\"GPSProcessingMethod\"],[28,\"GPSAreaInformation\"],[29,\"GPSDateStamp\"],[30,\"GPSDifferential\"],[31,\"GPSHPositioningError\"]]),U(B,[\"ifd0\",\"ifd1\"],[[274,{1:\"Horizontal (normal)\",2:\"Mirror horizontal\",3:\"Rotate 180\",4:\"Mirror vertical\",5:\"Mirror horizontal and rotate 270 CW\",6:\"Rotate 90 CW\",7:\"Mirror horizontal and rotate 90 CW\",8:\"Rotate 270 CW\"}],[296,{1:\"None\",2:\"inches\",3:\"cm\"}]]);let Ee=U(B,\"exif\",[[34850,{0:\"Not defined\",1:\"Manual\",2:\"Normal program\",3:\"Aperture priority\",4:\"Shutter priority\",5:\"Creative program\",6:\"Action program\",7:\"Portrait mode\",8:\"Landscape mode\"}],[37121,{0:\"-\",1:\"Y\",2:\"Cb\",3:\"Cr\",4:\"R\",5:\"G\",6:\"B\"}],[37383,{0:\"Unknown\",1:\"Average\",2:\"CenterWeightedAverage\",3:\"Spot\",4:\"MultiSpot\",5:\"Pattern\",6:\"Partial\",255:\"Other\"}],[37384,{0:\"Unknown\",1:\"Daylight\",2:\"Fluorescent\",3:\"Tungsten (incandescent light)\",4:\"Flash\",9:\"Fine weather\",10:\"Cloudy weather\",11:\"Shade\",12:\"Daylight fluorescent (D 5700 - 7100K)\",13:\"Day white fluorescent (N 4600 - 5400K)\",14:\"Cool white fluorescent (W 3900 - 4500K)\",15:\"White fluorescent (WW 3200 - 3700K)\",17:\"Standard light A\",18:\"Standard light B\",19:\"Standard light C\",20:\"D55\",21:\"D65\",22:\"D75\",23:\"D50\",24:\"ISO studio tungsten\",255:\"Other\"}],[37385,{0:\"Flash did not fire\",1:\"Flash fired\",5:\"Strobe return light not detected\",7:\"Strobe return light detected\",9:\"Flash fired, compulsory flash mode\",13:\"Flash fired, compulsory flash mode, return light not detected\",15:\"Flash fired, compulsory flash mode, return light detected\",16:\"Flash did not fire, compulsory flash mode\",24:\"Flash did not fire, auto mode\",25:\"Flash fired, auto mode\",29:\"Flash fired, auto mode, return light not detected\",31:\"Flash fired, auto mode, return light detected\",32:\"No flash function\",65:\"Flash fired, red-eye reduction mode\",69:\"Flash fired, red-eye reduction mode, return light not detected\",71:\"Flash fired, red-eye reduction mode, return light detected\",73:\"Flash fired, compulsory flash mode, red-eye reduction mode\",77:\"Flash fired, compulsory flash mode, red-eye reduction mode, return light not detected\",79:\"Flash fired, compulsory flash mode, red-eye reduction mode, return light detected\",89:\"Flash fired, auto mode, red-eye reduction mode\",93:\"Flash fired, auto mode, return light not detected, red-eye reduction mode\",95:\"Flash fired, auto mode, return light detected, red-eye reduction mode\"}],[41495,{1:\"Not defined\",2:\"One-chip color area sensor\",3:\"Two-chip color area sensor\",4:\"Three-chip color area sensor\",5:\"Color sequential area sensor\",7:\"Trilinear sensor\",8:\"Color sequential linear sensor\"}],[41728,{1:\"Film Scanner\",2:\"Reflection Print Scanner\",3:\"Digital Camera\"}],[41729,{1:\"Directly photographed\"}],[41985,{0:\"Normal\",1:\"Custom\",2:\"HDR (no original saved)\",3:\"HDR (original saved)\",4:\"Original (for HDR)\",6:\"Panorama\",7:\"Portrait HDR\",8:\"Portrait\"}],[41986,{0:\"Auto\",1:\"Manual\",2:\"Auto bracket\"}],[41987,{0:\"Auto\",1:\"Manual\"}],[41990,{0:\"Standard\",1:\"Landscape\",2:\"Portrait\",3:\"Night\",4:\"Other\"}],[41991,{0:\"None\",1:\"Low gain up\",2:\"High gain up\",3:\"Low gain down\",4:\"High gain down\"}],[41996,{0:\"Unknown\",1:\"Macro\",2:\"Close\",3:\"Distant\"}],[42080,{0:\"Unknown\",1:\"Not a Composite Image\",2:\"General Composite Image\",3:\"Composite Image Captured While Shooting\"}]]);const Be={1:\"No absolute unit of measurement\",2:\"Inch\",3:\"Centimeter\"};Ee.set(37392,Be),Ee.set(41488,Be);const Ne={0:\"Normal\",1:\"Low\",2:\"High\"};function Ge(e){return\"object\"==typeof e&&void 0!==e.length?e[0]:e}function Ve(e){let t=Array.from(e).slice(1);return t[1]>15&&(t=t.map((e=>String.fromCharCode(e)))),\"0\"!==t[2]&&0!==t[2]||t.pop(),t.join(\".\")}function ze(e){if(\"string\"==typeof e){var[t,i,n,s,r,a]=e.trim().split(/[-: ]/g).map(Number),o=new Date(t,i-1,n);return Number.isNaN(s)||Number.isNaN(r)||Number.isNaN(a)||(o.setHours(s),o.setMinutes(r),o.setSeconds(a)),Number.isNaN(+o)?e:o}}function He(e){if(\"string\"==typeof e)return e;let t=[];if(0===e[1]&&0===e[e.length-1])for(let i=0;iArray.from(e).join(\".\")],[7,e=>Array.from(e).join(\":\")]]);class We extends re{static canHandle(e,t){return 225===e.getUint8(t+1)&&1752462448===e.getUint32(t+4)&&\"http://ns.adobe.com/\"===e.getString(t+4,\"http://ns.adobe.com/\".length)}static headerLength(e,t){return\"http://ns.adobe.com/xmp/extension/\"===e.getString(t+4,\"http://ns.adobe.com/xmp/extension/\".length)?79:4+\"http://ns.adobe.com/xap/1.0/\".length+1}static findPosition(e,t){let i=super.findPosition(e,t);return i.multiSegment=i.extended=79===i.headerLength,i.multiSegment?(i.chunkCount=e.getUint8(t+72),i.chunkNumber=e.getUint8(t+76),0!==e.getUint8(t+77)&&i.chunkNumber++):(i.chunkCount=1/0,i.chunkNumber=-1),i}static handleMultiSegments(e){return e.map((e=>e.chunk.getString())).join(\"\")}normalizeInput(e){return\"string\"==typeof e?e:I.from(e).getString()}parse(e=this.chunk){if(!this.localOptions.parse)return e;e=function(e){let t={},i={};for(let e of Ze)t[e]=[],i[e]=0;return e.replace(et,((e,n,s)=>{if(\"<\"===n){let n=++i[s];return t[s].push(n),`${e}#${n}`}return`${e}#${t[s].pop()}`}))}(e);let t=Xe.findAll(e,\"rdf\",\"Description\");0===t.length&&t.push(new Xe(\"rdf\",\"Description\",void 0,e));let i,n={};for(let e of t)for(let t of e.properties)i=Je(t.ns,n),_e(t,i);return function(e){let t;for(let i in e)t=e[i]=f(e[i]),void 0===t&&delete e[i];return f(e)}(n)}assignToOutput(e,t){if(this.localOptions.parse)for(let[i,n]of Object.entries(t))switch(i){case\"tiff\":this.assignObjectToOutput(e,\"ifd0\",n);break;case\"exif\":this.assignObjectToOutput(e,\"exif\",n);break;case\"xmlns\":break;default:this.assignObjectToOutput(e,i,n)}else e.xmp=t}}c(We,\"type\",\"xmp\"),c(We,\"multiSegment\",!0),T.set(\"xmp\",We);class Ke{static findAll(e){return qe(e,/([a-zA-Z0-9-]+):([a-zA-Z0-9-]+)=(\"[^\"]*\"|'[^']*')/gm).map(Ke.unpackMatch)}static unpackMatch(e){let t=e[1],i=e[2],n=e[3].slice(1,-1);return n=Qe(n),new Ke(t,i,n)}constructor(e,t,i){this.ns=e,this.name=t,this.value=i}serialize(){return this.value}}class Xe{static findAll(e,t,i){if(void 0!==t||void 0!==i){t=t||\"[\\\\w\\\\d-]+\",i=i||\"[\\\\w\\\\d-]+\";var n=new RegExp(`<(${t}):(${i})(#\\\\d+)?((\\\\s+?[\\\\w\\\\d-:]+=(\"[^\"]*\"|'[^']*'))*\\\\s*)(\\\\/>|>([\\\\s\\\\S]*?)<\\\\/\\\\1:\\\\2\\\\3>)`,\"gm\")}else n=/<([\\w\\d-]+):([\\w\\d-]+)(#\\d+)?((\\s+?[\\w\\d-:]+=(\"[^\"]*\"|'[^']*'))*\\s*)(\\/>|>([\\s\\S]*?)<\\/\\1:\\2\\3>)/gm;return qe(e,n).map(Xe.unpackMatch)}static unpackMatch(e){let t=e[1],i=e[2],n=e[4],s=e[8];return new Xe(t,i,n,s)}constructor(e,t,i,n){this.ns=e,this.name=t,this.attrString=i,this.innerXml=n,this.attrs=Ke.findAll(i),this.children=Xe.findAll(n),this.value=0===this.children.length?Qe(n):void 0,this.properties=[...this.attrs,...this.children]}get isPrimitive(){return void 0!==this.value&&0===this.attrs.length&&0===this.children.length}get isListContainer(){return 1===this.children.length&&this.children[0].isList}get isList(){let{ns:e,name:t}=this;return\"rdf\"===e&&(\"Seq\"===t||\"Bag\"===t||\"Alt\"===t)}get isListItem(){return\"rdf\"===this.ns&&\"li\"===this.name}serialize(){if(0===this.properties.length&&void 0===this.value)return;if(this.isPrimitive)return this.value;if(this.isListContainer)return this.children[0].serialize();if(this.isList)return $e(this.children.map(Ye));if(this.isListItem&&1===this.children.length&&0===this.attrs.length)return this.children[0].serialize();let e={};for(let t of this.properties)_e(t,e);return void 0!==this.value&&(e.value=this.value),f(e)}}function _e(e,t){let i=e.serialize();void 0!==i&&(t[e.name]=i)}var Ye=e=>e.serialize(),$e=e=>1===e.length?e[0]:e,Je=(e,t)=>t[e]?t[e]:t[e]={};function qe(e,t){let i,n=[];if(!e)return n;for(;null!==(i=t.exec(e));)n.push(i);return n}function Qe(e){if(function(e){return null==e||\"null\"===e||\"undefined\"===e||\"\"===e||\"\"===e.trim()}(e))return;let t=Number(e);if(!Number.isNaN(t))return t;let i=e.toLowerCase();return\"true\"===i||\"false\"!==i&&e.trim()}const Ze=[\"rdf:li\",\"rdf:Seq\",\"rdf:Bag\",\"rdf:Alt\",\"rdf:Description\"],et=new RegExp(`(<|\\\\/)(${Ze.join(\"|\")})`,\"g\");var tt=Object.freeze({__proto__:null,default:Me,Exifr:te,fileParsers:w,segmentParsers:T,fileReaders:A,tagKeys:E,tagValues:B,tagRevivers:N,createDictionary:U,extendDictionary:F,fetchUrlAsArrayBuffer:M,readBlobAsArrayBuffer:R,chunkedProps:G,otherSegments:V,segments:z,tiffBlocks:H,segmentsAndBlocks:j,tiffExtractables:W,inheritables:K,allFormatters:X,Options:q,parse:ie,gpsOnlyOptions:me,gps:Se,thumbnailOnlyOptions:Ce,thumbnail:ye,thumbnailUrl:be,orientationOnlyOptions:Ie,orientation:Pe,rotations:ke,get rotateCanvas(){return we},get rotateCss(){return Te},rotation:Ae});const it=[\"xmp\",\"icc\",\"iptc\",\"tiff\"],nt=()=>{};async function st(e,t,i){let n=new q(t);n.chunked=!1,void 0===i&&\"string\"==typeof e&&(i=function(e){let t=e.toLowerCase().split(\".\").pop();if(function(e){return\"exif\"===e||\"tiff\"===e||\"tif\"===e}(t))return\"tiff\";if(it.includes(t))return t}(e));let s=await D(e,n);if(i){if(it.includes(i))return rt(i,s,n);g(\"Invalid segment type\")}else{if(function(e){let t=e.getString(0,50).trim();return t.includes(\"e.promises));A.set(\"fs\",class extends ve{async readWhole(){this.chunked=!1,this.fs=await at;let e=await this.fs.readFile(this.input);this._swapBuffer(e)}async readChunked(){this.chunked=!0,this.fs=await at,await this.open(),await this.readChunk(0,this.options.firstChunkSize)}async open(){void 0===this.fh&&(this.fh=await this.fs.open(this.input,\"r\"),this.size=(await this.fh.stat(this.input)).size)}async _readChunk(e,t){void 0===this.fh&&await this.open(),e+t>this.size&&(t=this.size-e);var i=this.subarray(e,t,!0);return await this.fh.read(i.dataView,0,t,e),i}async close(){if(this.fh){let e=this.fh;this.fh=void 0,await e.close()}}});A.set(\"base64\",class extends ve{constructor(...e){super(...e),this.input=this.input.replace(/^data:([^;]+);base64,/gim,\"\"),this.size=this.input.length/4*3,this.input.endsWith(\"==\")?this.size-=2:this.input.endsWith(\"=\")&&(this.size-=1)}async _readChunk(e,t){let i,n,r=this.input;void 0===e?(e=0,i=0,n=0):(i=4*Math.floor(e/3),n=e-i/4*3),void 0===t&&(t=this.size);let o=e+t,l=i+4*Math.ceil(o/3);r=r.slice(i,l);let h=Math.min(t,this.size-e);if(a){let t=s.from(r,\"base64\").slice(n,n+h);return this.set(t,e,!0)}{let t=this.subarray(e,h,!0),i=atob(r),s=t.toUint8();for(let e=0;ethis.errors.push(e))),c(this,\"metaChunks\",[]),c(this,\"unknownChunks\",[])}static canHandle(e,t){return 35152===t&&2303741511===e.getUint32(0)&&218765834===e.getUint32(4)}async parse(){let{file:e}=this;await this.findPngChunksInRange(\"‰PNG\\r\\n\u001a\\n\".length,e.byteLength),await this.readSegments(this.metaChunks),this.findIhdr(),this.parseTextChunks(),await this.findExif().catch(this.catchError),await this.findXmp().catch(this.catchError),await this.findIcc().catch(this.catchError)}async findPngChunksInRange(e,t){let{file:i}=this;for(;e\"text\"===e.type));for(let t of e){let[e,i]=this.file.getString(t.start,t.size).split(\"\\0\");this.injectKeyValToIhdr(e,i)}}injectKeyValToIhdr(e,t){let i=this.parsers.ihdr;i&&i.raw.set(e,t)}findIhdr(){let e=this.metaChunks.find((e=>\"ihdr\"===e.type));e&&!1!==this.options.ihdr.enabled&&this.createParser(\"ihdr\",e.chunk)}async findExif(){let e=this.metaChunks.find((e=>\"exif\"===e.type));e&&this.injectSegment(\"tiff\",e.chunk)}async findXmp(){let e=this.metaChunks.filter((e=>\"itxt\"===e.type));for(let t of e){\"XML:com.adobe.xmp\"===t.chunk.getString(0,\"XML:com.adobe.xmp\".length)&&this.injectSegment(\"xmp\",t.chunk)}}async findIcc(){let e=this.metaChunks.find((e=>\"iccp\"===e.type));if(!e)return;let{chunk:t}=e,i=t.getUint8Array(0,81),s=0;for(;s<80&&0!==i[s];)s++;let r=s+2,a=t.getString(0,s);if(this.injectKeyValToIhdr(\"ProfileName\",a),n){let e=await lt,i=t.getUint8Array(r);i=e.inflateSync(i),this.injectSegment(\"icc\",i)}}}c(ut,\"type\",\"png\"),w.set(\"png\",ut),U(E,\"interop\",[[1,\"InteropIndex\"],[2,\"InteropVersion\"],[4096,\"RelatedImageFileFormat\"],[4097,\"RelatedImageWidth\"],[4098,\"RelatedImageHeight\"]]),F(E,\"ifd0\",[[11,\"ProcessingSoftware\"],[254,\"SubfileType\"],[255,\"OldSubfileType\"],[263,\"Thresholding\"],[264,\"CellWidth\"],[265,\"CellLength\"],[266,\"FillOrder\"],[269,\"DocumentName\"],[280,\"MinSampleValue\"],[281,\"MaxSampleValue\"],[285,\"PageName\"],[286,\"XPosition\"],[287,\"YPosition\"],[290,\"GrayResponseUnit\"],[297,\"PageNumber\"],[321,\"HalftoneHints\"],[322,\"TileWidth\"],[323,\"TileLength\"],[332,\"InkSet\"],[337,\"TargetPrinter\"],[18246,\"Rating\"],[18249,\"RatingPercent\"],[33550,\"PixelScale\"],[34264,\"ModelTransform\"],[34377,\"PhotoshopSettings\"],[50706,\"DNGVersion\"],[50707,\"DNGBackwardVersion\"],[50708,\"UniqueCameraModel\"],[50709,\"LocalizedCameraModel\"],[50736,\"DNGLensInfo\"],[50739,\"ShadowScale\"],[50740,\"DNGPrivateData\"],[33920,\"IntergraphMatrix\"],[33922,\"ModelTiePoint\"],[34118,\"SEMInfo\"],[34735,\"GeoTiffDirectory\"],[34736,\"GeoTiffDoubleParams\"],[34737,\"GeoTiffAsciiParams\"],[50341,\"PrintIM\"],[50721,\"ColorMatrix1\"],[50722,\"ColorMatrix2\"],[50723,\"CameraCalibration1\"],[50724,\"CameraCalibration2\"],[50725,\"ReductionMatrix1\"],[50726,\"ReductionMatrix2\"],[50727,\"AnalogBalance\"],[50728,\"AsShotNeutral\"],[50729,\"AsShotWhiteXY\"],[50730,\"BaselineExposure\"],[50731,\"BaselineNoise\"],[50732,\"BaselineSharpness\"],[50734,\"LinearResponseLimit\"],[50735,\"CameraSerialNumber\"],[50741,\"MakerNoteSafety\"],[50778,\"CalibrationIlluminant1\"],[50779,\"CalibrationIlluminant2\"],[50781,\"RawDataUniqueID\"],[50827,\"OriginalRawFileName\"],[50828,\"OriginalRawFileData\"],[50831,\"AsShotICCProfile\"],[50832,\"AsShotPreProfileMatrix\"],[50833,\"CurrentICCProfile\"],[50834,\"CurrentPreProfileMatrix\"],[50879,\"ColorimetricReference\"],[50885,\"SRawType\"],[50898,\"PanasonicTitle\"],[50899,\"PanasonicTitle2\"],[50931,\"CameraCalibrationSig\"],[50932,\"ProfileCalibrationSig\"],[50933,\"ProfileIFD\"],[50934,\"AsShotProfileName\"],[50936,\"ProfileName\"],[50937,\"ProfileHueSatMapDims\"],[50938,\"ProfileHueSatMapData1\"],[50939,\"ProfileHueSatMapData2\"],[50940,\"ProfileToneCurve\"],[50941,\"ProfileEmbedPolicy\"],[50942,\"ProfileCopyright\"],[50964,\"ForwardMatrix1\"],[50965,\"ForwardMatrix2\"],[50966,\"PreviewApplicationName\"],[50967,\"PreviewApplicationVersion\"],[50968,\"PreviewSettingsName\"],[50969,\"PreviewSettingsDigest\"],[50970,\"PreviewColorSpace\"],[50971,\"PreviewDateTime\"],[50972,\"RawImageDigest\"],[50973,\"OriginalRawFileDigest\"],[50981,\"ProfileLookTableDims\"],[50982,\"ProfileLookTableData\"],[51043,\"TimeCodes\"],[51044,\"FrameRate\"],[51058,\"TStop\"],[51081,\"ReelName\"],[51089,\"OriginalDefaultFinalSize\"],[51090,\"OriginalBestQualitySize\"],[51091,\"OriginalDefaultCropSize\"],[51105,\"CameraLabel\"],[51107,\"ProfileHueSatMapEncoding\"],[51108,\"ProfileLookTableEncoding\"],[51109,\"BaselineExposureOffset\"],[51110,\"DefaultBlackRender\"],[51111,\"NewRawImageDigest\"],[51112,\"RawToPreviewGain\"]]);let ct=[[273,\"StripOffsets\"],[279,\"StripByteCounts\"],[288,\"FreeOffsets\"],[289,\"FreeByteCounts\"],[291,\"GrayResponseCurve\"],[292,\"T4Options\"],[293,\"T6Options\"],[300,\"ColorResponseUnit\"],[320,\"ColorMap\"],[324,\"TileOffsets\"],[325,\"TileByteCounts\"],[326,\"BadFaxLines\"],[327,\"CleanFaxData\"],[328,\"ConsecutiveBadFaxLines\"],[330,\"SubIFD\"],[333,\"InkNames\"],[334,\"NumberofInks\"],[336,\"DotRange\"],[338,\"ExtraSamples\"],[339,\"SampleFormat\"],[340,\"SMinSampleValue\"],[341,\"SMaxSampleValue\"],[342,\"TransferRange\"],[343,\"ClipPath\"],[344,\"XClipPathUnits\"],[345,\"YClipPathUnits\"],[346,\"Indexed\"],[347,\"JPEGTables\"],[351,\"OPIProxy\"],[400,\"GlobalParametersIFD\"],[401,\"ProfileType\"],[402,\"FaxProfile\"],[403,\"CodingMethods\"],[404,\"VersionYear\"],[405,\"ModeNumber\"],[433,\"Decode\"],[434,\"DefaultImageColor\"],[435,\"T82Options\"],[437,\"JPEGTables\"],[512,\"JPEGProc\"],[515,\"JPEGRestartInterval\"],[517,\"JPEGLosslessPredictors\"],[518,\"JPEGPointTransforms\"],[519,\"JPEGQTables\"],[520,\"JPEGDCTables\"],[521,\"JPEGACTables\"],[559,\"StripRowCounts\"],[999,\"USPTOMiscellaneous\"],[18247,\"XP_DIP_XML\"],[18248,\"StitchInfo\"],[28672,\"SonyRawFileType\"],[28688,\"SonyToneCurve\"],[28721,\"VignettingCorrection\"],[28722,\"VignettingCorrParams\"],[28724,\"ChromaticAberrationCorrection\"],[28725,\"ChromaticAberrationCorrParams\"],[28726,\"DistortionCorrection\"],[28727,\"DistortionCorrParams\"],[29895,\"SonyCropTopLeft\"],[29896,\"SonyCropSize\"],[32781,\"ImageID\"],[32931,\"WangTag1\"],[32932,\"WangAnnotation\"],[32933,\"WangTag3\"],[32934,\"WangTag4\"],[32953,\"ImageReferencePoints\"],[32954,\"RegionXformTackPoint\"],[32955,\"WarpQuadrilateral\"],[32956,\"AffineTransformMat\"],[32995,\"Matteing\"],[32996,\"DataType\"],[32997,\"ImageDepth\"],[32998,\"TileDepth\"],[33300,\"ImageFullWidth\"],[33301,\"ImageFullHeight\"],[33302,\"TextureFormat\"],[33303,\"WrapModes\"],[33304,\"FovCot\"],[33305,\"MatrixWorldToScreen\"],[33306,\"MatrixWorldToCamera\"],[33405,\"Model2\"],[33421,\"CFARepeatPatternDim\"],[33422,\"CFAPattern2\"],[33423,\"BatteryLevel\"],[33424,\"KodakIFD\"],[33445,\"MDFileTag\"],[33446,\"MDScalePixel\"],[33447,\"MDColorTable\"],[33448,\"MDLabName\"],[33449,\"MDSampleInfo\"],[33450,\"MDPrepDate\"],[33451,\"MDPrepTime\"],[33452,\"MDFileUnits\"],[33589,\"AdventScale\"],[33590,\"AdventRevision\"],[33628,\"UIC1Tag\"],[33629,\"UIC2Tag\"],[33630,\"UIC3Tag\"],[33631,\"UIC4Tag\"],[33918,\"IntergraphPacketData\"],[33919,\"IntergraphFlagRegisters\"],[33921,\"INGRReserved\"],[34016,\"Site\"],[34017,\"ColorSequence\"],[34018,\"IT8Header\"],[34019,\"RasterPadding\"],[34020,\"BitsPerRunLength\"],[34021,\"BitsPerExtendedRunLength\"],[34022,\"ColorTable\"],[34023,\"ImageColorIndicator\"],[34024,\"BackgroundColorIndicator\"],[34025,\"ImageColorValue\"],[34026,\"BackgroundColorValue\"],[34027,\"PixelIntensityRange\"],[34028,\"TransparencyIndicator\"],[34029,\"ColorCharacterization\"],[34030,\"HCUsage\"],[34031,\"TrapIndicator\"],[34032,\"CMYKEquivalent\"],[34152,\"AFCP_IPTC\"],[34232,\"PixelMagicJBIGOptions\"],[34263,\"JPLCartoIFD\"],[34306,\"WB_GRGBLevels\"],[34310,\"LeafData\"],[34687,\"TIFF_FXExtensions\"],[34688,\"MultiProfiles\"],[34689,\"SharedData\"],[34690,\"T88Options\"],[34732,\"ImageLayer\"],[34750,\"JBIGOptions\"],[34856,\"Opto-ElectricConvFactor\"],[34857,\"Interlace\"],[34908,\"FaxRecvParams\"],[34909,\"FaxSubAddress\"],[34910,\"FaxRecvTime\"],[34929,\"FedexEDR\"],[34954,\"LeafSubIFD\"],[37387,\"FlashEnergy\"],[37388,\"SpatialFrequencyResponse\"],[37389,\"Noise\"],[37390,\"FocalPlaneXResolution\"],[37391,\"FocalPlaneYResolution\"],[37392,\"FocalPlaneResolutionUnit\"],[37397,\"ExposureIndex\"],[37398,\"TIFF-EPStandardID\"],[37399,\"SensingMethod\"],[37434,\"CIP3DataFile\"],[37435,\"CIP3Sheet\"],[37436,\"CIP3Side\"],[37439,\"StoNits\"],[37679,\"MSDocumentText\"],[37680,\"MSPropertySetStorage\"],[37681,\"MSDocumentTextPosition\"],[37724,\"ImageSourceData\"],[40965,\"InteropIFD\"],[40976,\"SamsungRawPointersOffset\"],[40977,\"SamsungRawPointersLength\"],[41217,\"SamsungRawByteOrder\"],[41218,\"SamsungRawUnknown\"],[41484,\"SpatialFrequencyResponse\"],[41485,\"Noise\"],[41489,\"ImageNumber\"],[41490,\"SecurityClassification\"],[41491,\"ImageHistory\"],[41494,\"TIFF-EPStandardID\"],[41995,\"DeviceSettingDescription\"],[42112,\"GDALMetadata\"],[42113,\"GDALNoData\"],[44992,\"ExpandSoftware\"],[44993,\"ExpandLens\"],[44994,\"ExpandFilm\"],[44995,\"ExpandFilterLens\"],[44996,\"ExpandScanner\"],[44997,\"ExpandFlashLamp\"],[46275,\"HasselbladRawImage\"],[48129,\"PixelFormat\"],[48130,\"Transformation\"],[48131,\"Uncompressed\"],[48132,\"ImageType\"],[48256,\"ImageWidth\"],[48257,\"ImageHeight\"],[48258,\"WidthResolution\"],[48259,\"HeightResolution\"],[48320,\"ImageOffset\"],[48321,\"ImageByteCount\"],[48322,\"AlphaOffset\"],[48323,\"AlphaByteCount\"],[48324,\"ImageDataDiscard\"],[48325,\"AlphaDataDiscard\"],[50215,\"OceScanjobDesc\"],[50216,\"OceApplicationSelector\"],[50217,\"OceIDNumber\"],[50218,\"OceImageLogic\"],[50255,\"Annotations\"],[50459,\"HasselbladExif\"],[50547,\"OriginalFileName\"],[50560,\"USPTOOriginalContentType\"],[50656,\"CR2CFAPattern\"],[50710,\"CFAPlaneColor\"],[50711,\"CFALayout\"],[50712,\"LinearizationTable\"],[50713,\"BlackLevelRepeatDim\"],[50714,\"BlackLevel\"],[50715,\"BlackLevelDeltaH\"],[50716,\"BlackLevelDeltaV\"],[50717,\"WhiteLevel\"],[50718,\"DefaultScale\"],[50719,\"DefaultCropOrigin\"],[50720,\"DefaultCropSize\"],[50733,\"BayerGreenSplit\"],[50737,\"ChromaBlurRadius\"],[50738,\"AntiAliasStrength\"],[50752,\"RawImageSegmentation\"],[50780,\"BestQualityScale\"],[50784,\"AliasLayerMetadata\"],[50829,\"ActiveArea\"],[50830,\"MaskedAreas\"],[50935,\"NoiseReductionApplied\"],[50974,\"SubTileBlockSize\"],[50975,\"RowInterleaveFactor\"],[51008,\"OpcodeList1\"],[51009,\"OpcodeList2\"],[51022,\"OpcodeList3\"],[51041,\"NoiseProfile\"],[51114,\"CacheVersion\"],[51125,\"DefaultUserCrop\"],[51157,\"NikonNEFInfo\"],[65024,\"KdcIFD\"]];F(E,\"ifd0\",ct),F(E,\"exif\",ct),U(B,\"gps\",[[23,{M:\"Magnetic North\",T:\"True North\"}],[25,{K:\"Kilometers\",M:\"Miles\",N:\"Nautical Miles\"}]]);class ft extends re{static canHandle(e,t){return 224===e.getUint8(t+1)&&1246120262===e.getUint32(t+4)&&0===e.getUint8(t+8)}parse(){return this.parseTags(),this.translate(),this.output}parseTags(){this.raw=new Map([[0,this.chunk.getUint16(0)],[2,this.chunk.getUint8(2)],[3,this.chunk.getUint16(3)],[5,this.chunk.getUint16(5)],[7,this.chunk.getUint8(7)],[8,this.chunk.getUint8(8)]])}}c(ft,\"type\",\"jfif\"),c(ft,\"headerLength\",9),T.set(\"jfif\",ft),U(E,\"jfif\",[[0,\"JFIFVersion\"],[2,\"ResolutionUnit\"],[3,\"XResolution\"],[5,\"YResolution\"],[7,\"ThumbnailWidth\"],[8,\"ThumbnailHeight\"]]);class dt extends re{parse(){return this.parseTags(),this.translate(),this.output}parseTags(){this.raw=new Map([[0,this.chunk.getUint32(0)],[4,this.chunk.getUint32(4)],[8,this.chunk.getUint8(8)],[9,this.chunk.getUint8(9)],[10,this.chunk.getUint8(10)],[11,this.chunk.getUint8(11)],[12,this.chunk.getUint8(12)],...Array.from(this.raw)])}}c(dt,\"type\",\"ihdr\"),T.set(\"ihdr\",dt),U(E,\"ihdr\",[[0,\"ImageWidth\"],[4,\"ImageHeight\"],[8,\"BitDepth\"],[9,\"ColorType\"],[10,\"Compression\"],[11,\"Filter\"],[12,\"Interlace\"]]),U(B,\"ihdr\",[[9,{0:\"Grayscale\",2:\"RGB\",3:\"Palette\",4:\"Grayscale with Alpha\",6:\"RGB with Alpha\",DEFAULT:\"Unknown\"}],[10,{0:\"Deflate/Inflate\",DEFAULT:\"Unknown\"}],[11,{0:\"Adaptive\",DEFAULT:\"Unknown\"}],[12,{0:\"Noninterlaced\",1:\"Adam7 Interlace\",DEFAULT:\"Unknown\"}]]);class pt extends re{static canHandle(e,t){return 226===e.getUint8(t+1)&&1229144927===e.getUint32(t+4)}static findPosition(e,t){let i=super.findPosition(e,t);return i.chunkNumber=e.getUint8(t+16),i.chunkCount=e.getUint8(t+17),i.multiSegment=i.chunkCount>1,i}static handleMultiSegments(e){return function(e){let t=function(e){let t=e[0].constructor,i=0;for(let t of e)i+=t.length;let n=new t(i),s=0;for(let t of e)n.set(t,s),s+=t.length;return n}(e.map((e=>e.chunk.toUint8())));return new I(t)}(e)}parse(){return this.raw=new Map,this.parseHeader(),this.parseTags(),this.translate(),this.output}parseHeader(){let{raw:e}=this;this.chunk.byteLength<84&&g(\"ICC header is too short\");for(let[t,i]of Object.entries(gt)){t=parseInt(t,10);let n=i(this.chunk,t);\"\\0\\0\\0\\0\"!==n&&e.set(t,n)}}parseTags(){let e,t,i,n,s,{raw:r}=this,a=this.chunk.getUint32(128),o=132,l=this.chunk.byteLength;for(;a--;){if(e=this.chunk.getString(o,4),t=this.chunk.getUint32(o+4),i=this.chunk.getUint32(o+8),n=this.chunk.getString(t,4),t+i>l)return void console.warn(\"reached the end of the first ICC chunk. Enable options.tiff.multiSegment to read all ICC segments.\");s=this.parseTag(n,t,i),void 0!==s&&\"\\0\\0\\0\\0\"!==s&&r.set(e,s),o+=12}}parseTag(e,t,i){switch(e){case\"desc\":return this.parseDesc(t);case\"mluc\":return this.parseMluc(t);case\"text\":return this.parseText(t,i);case\"sig \":return this.parseSig(t)}if(!(t+i>this.chunk.byteLength))return this.chunk.getUint8Array(t,i)}parseDesc(e){let t=this.chunk.getUint32(e+8)-1;return m(this.chunk.getString(e+12,t))}parseText(e,t){return m(this.chunk.getString(e+8,t-8))}parseSig(e){return m(this.chunk.getString(e+8,4))}parseMluc(e){let{chunk:t}=this,i=t.getUint32(e+8),n=t.getUint32(e+12),s=e+16,r=[];for(let a=0;a>4,e.getUint8(t+1)%16].map((e=>e.toString(10))).join(\".\")},12:mt,16:mt,20:mt,24:function(e,t){const i=e.getUint16(t),n=e.getUint16(t+2)-1,s=e.getUint16(t+4),r=e.getUint16(t+6),a=e.getUint16(t+8),o=e.getUint16(t+10);return new Date(Date.UTC(i,n,s,r,a,o))},36:mt,40:mt,48:mt,52:mt,64:(e,t)=>e.getUint32(t),80:mt};function mt(e,t){return m(e.getString(t,4))}T.set(\"icc\",pt),U(E,\"icc\",[[4,\"ProfileCMMType\"],[8,\"ProfileVersion\"],[12,\"ProfileClass\"],[16,\"ColorSpaceData\"],[20,\"ProfileConnectionSpace\"],[24,\"ProfileDateTime\"],[36,\"ProfileFileSignature\"],[40,\"PrimaryPlatform\"],[44,\"CMMFlags\"],[48,\"DeviceManufacturer\"],[52,\"DeviceModel\"],[56,\"DeviceAttributes\"],[64,\"RenderingIntent\"],[68,\"ConnectionSpaceIlluminant\"],[80,\"ProfileCreator\"],[84,\"ProfileID\"],[\"Header\",\"ProfileHeader\"],[\"MS00\",\"WCSProfiles\"],[\"bTRC\",\"BlueTRC\"],[\"bXYZ\",\"BlueMatrixColumn\"],[\"bfd\",\"UCRBG\"],[\"bkpt\",\"MediaBlackPoint\"],[\"calt\",\"CalibrationDateTime\"],[\"chad\",\"ChromaticAdaptation\"],[\"chrm\",\"Chromaticity\"],[\"ciis\",\"ColorimetricIntentImageState\"],[\"clot\",\"ColorantTableOut\"],[\"clro\",\"ColorantOrder\"],[\"clrt\",\"ColorantTable\"],[\"cprt\",\"ProfileCopyright\"],[\"crdi\",\"CRDInfo\"],[\"desc\",\"ProfileDescription\"],[\"devs\",\"DeviceSettings\"],[\"dmdd\",\"DeviceModelDesc\"],[\"dmnd\",\"DeviceMfgDesc\"],[\"dscm\",\"ProfileDescriptionML\"],[\"fpce\",\"FocalPlaneColorimetryEstimates\"],[\"gTRC\",\"GreenTRC\"],[\"gXYZ\",\"GreenMatrixColumn\"],[\"gamt\",\"Gamut\"],[\"kTRC\",\"GrayTRC\"],[\"lumi\",\"Luminance\"],[\"meas\",\"Measurement\"],[\"meta\",\"Metadata\"],[\"mmod\",\"MakeAndModel\"],[\"ncl2\",\"NamedColor2\"],[\"ncol\",\"NamedColor\"],[\"ndin\",\"NativeDisplayInfo\"],[\"pre0\",\"Preview0\"],[\"pre1\",\"Preview1\"],[\"pre2\",\"Preview2\"],[\"ps2i\",\"PS2RenderingIntent\"],[\"ps2s\",\"PostScript2CSA\"],[\"psd0\",\"PostScript2CRD0\"],[\"psd1\",\"PostScript2CRD1\"],[\"psd2\",\"PostScript2CRD2\"],[\"psd3\",\"PostScript2CRD3\"],[\"pseq\",\"ProfileSequenceDesc\"],[\"psid\",\"ProfileSequenceIdentifier\"],[\"psvm\",\"PS2CRDVMSize\"],[\"rTRC\",\"RedTRC\"],[\"rXYZ\",\"RedMatrixColumn\"],[\"resp\",\"OutputResponse\"],[\"rhoc\",\"ReflectionHardcopyOrigColorimetry\"],[\"rig0\",\"PerceptualRenderingIntentGamut\"],[\"rig2\",\"SaturationRenderingIntentGamut\"],[\"rpoc\",\"ReflectionPrintOutputColorimetry\"],[\"sape\",\"SceneAppearanceEstimates\"],[\"scoe\",\"SceneColorimetryEstimates\"],[\"scrd\",\"ScreeningDesc\"],[\"scrn\",\"Screening\"],[\"targ\",\"CharTarget\"],[\"tech\",\"Technology\"],[\"vcgt\",\"VideoCardGamma\"],[\"view\",\"ViewingConditions\"],[\"vued\",\"ViewingCondDesc\"],[\"wtpt\",\"MediaWhitePoint\"]]);const St={\"4d2p\":\"Erdt Systems\",AAMA:\"Aamazing Technologies\",ACER:\"Acer\",ACLT:\"Acolyte Color Research\",ACTI:\"Actix Sytems\",ADAR:\"Adara Technology\",ADBE:\"Adobe\",ADI:\"ADI Systems\",AGFA:\"Agfa Graphics\",ALMD:\"Alps Electric\",ALPS:\"Alps Electric\",ALWN:\"Alwan Color Expertise\",AMTI:\"Amiable Technologies\",AOC:\"AOC International\",APAG:\"Apago\",APPL:\"Apple Computer\",AST:\"AST\",\"AT&T\":\"AT&T\",BAEL:\"BARBIERI electronic\",BRCO:\"Barco NV\",BRKP:\"Breakpoint\",BROT:\"Brother\",BULL:\"Bull\",BUS:\"Bus Computer Systems\",\"C-IT\":\"C-Itoh\",CAMR:\"Intel\",CANO:\"Canon\",CARR:\"Carroll Touch\",CASI:\"Casio\",CBUS:\"Colorbus PL\",CEL:\"Crossfield\",CELx:\"Crossfield\",CGS:\"CGS Publishing Technologies International\",CHM:\"Rochester Robotics\",CIGL:\"Colour Imaging Group, London\",CITI:\"Citizen\",CL00:\"Candela\",CLIQ:\"Color IQ\",CMCO:\"Chromaco\",CMiX:\"CHROMiX\",COLO:\"Colorgraphic Communications\",COMP:\"Compaq\",COMp:\"Compeq/Focus Technology\",CONR:\"Conrac Display Products\",CORD:\"Cordata Technologies\",CPQ:\"Compaq\",CPRO:\"ColorPro\",CRN:\"Cornerstone\",CTX:\"CTX International\",CVIS:\"ColorVision\",CWC:\"Fujitsu Laboratories\",DARI:\"Darius Technology\",DATA:\"Dataproducts\",DCP:\"Dry Creek Photo\",DCRC:\"Digital Contents Resource Center, Chung-Ang University\",DELL:\"Dell Computer\",DIC:\"Dainippon Ink and Chemicals\",DICO:\"Diconix\",DIGI:\"Digital\",\"DL&C\":\"Digital Light & Color\",DPLG:\"Doppelganger\",DS:\"Dainippon Screen\",DSOL:\"DOOSOL\",DUPN:\"DuPont\",EPSO:\"Epson\",ESKO:\"Esko-Graphics\",ETRI:\"Electronics and Telecommunications Research Institute\",EVER:\"Everex Systems\",EXAC:\"ExactCODE\",Eizo:\"Eizo\",FALC:\"Falco Data Products\",FF:\"Fuji Photo Film\",FFEI:\"FujiFilm Electronic Imaging\",FNRD:\"Fnord Software\",FORA:\"Fora\",FORE:\"Forefront Technology\",FP:\"Fujitsu\",FPA:\"WayTech Development\",FUJI:\"Fujitsu\",FX:\"Fuji Xerox\",GCC:\"GCC Technologies\",GGSL:\"Global Graphics Software\",GMB:\"Gretagmacbeth\",GMG:\"GMG\",GOLD:\"GoldStar Technology\",GOOG:\"Google\",GPRT:\"Giantprint\",GTMB:\"Gretagmacbeth\",GVC:\"WayTech Development\",GW2K:\"Sony\",HCI:\"HCI\",HDM:\"Heidelberger Druckmaschinen\",HERM:\"Hermes\",HITA:\"Hitachi America\",HP:\"Hewlett-Packard\",HTC:\"Hitachi\",HiTi:\"HiTi Digital\",IBM:\"IBM\",IDNT:\"Scitex\",IEC:\"Hewlett-Packard\",IIYA:\"Iiyama North America\",IKEG:\"Ikegami Electronics\",IMAG:\"Image Systems\",IMI:\"Ingram Micro\",INTC:\"Intel\",INTL:\"N/A (INTL)\",INTR:\"Intra Electronics\",IOCO:\"Iocomm International Technology\",IPS:\"InfoPrint Solutions Company\",IRIS:\"Scitex\",ISL:\"Ichikawa Soft Laboratory\",ITNL:\"N/A (ITNL)\",IVM:\"IVM\",IWAT:\"Iwatsu Electric\",Idnt:\"Scitex\",Inca:\"Inca Digital Printers\",Iris:\"Scitex\",JPEG:\"Joint Photographic Experts Group\",JSFT:\"Jetsoft Development\",JVC:\"JVC Information Products\",KART:\"Scitex\",KFC:\"KFC Computek Components\",KLH:\"KLH Computers\",KMHD:\"Konica Minolta\",KNCA:\"Konica\",KODA:\"Kodak\",KYOC:\"Kyocera\",Kart:\"Scitex\",LCAG:\"Leica\",LCCD:\"Leeds Colour\",LDAK:\"Left Dakota\",LEAD:\"Leading Technology\",LEXM:\"Lexmark International\",LINK:\"Link Computer\",LINO:\"Linotronic\",LITE:\"Lite-On\",Leaf:\"Leaf\",Lino:\"Linotronic\",MAGC:\"Mag Computronic\",MAGI:\"MAG Innovision\",MANN:\"Mannesmann\",MICN:\"Micron Technology\",MICR:\"Microtek\",MICV:\"Microvitec\",MINO:\"Minolta\",MITS:\"Mitsubishi Electronics America\",MITs:\"Mitsuba\",MNLT:\"Minolta\",MODG:\"Modgraph\",MONI:\"Monitronix\",MONS:\"Monaco Systems\",MORS:\"Morse Technology\",MOTI:\"Motive Systems\",MSFT:\"Microsoft\",MUTO:\"MUTOH INDUSTRIES\",Mits:\"Mitsubishi Electric\",NANA:\"NANAO\",NEC:\"NEC\",NEXP:\"NexPress Solutions\",NISS:\"Nissei Sangyo America\",NKON:\"Nikon\",NONE:\"none\",OCE:\"Oce Technologies\",OCEC:\"OceColor\",OKI:\"Oki\",OKID:\"Okidata\",OKIP:\"Okidata\",OLIV:\"Olivetti\",OLYM:\"Olympus\",ONYX:\"Onyx Graphics\",OPTI:\"Optiquest\",PACK:\"Packard Bell\",PANA:\"Matsushita Electric Industrial\",PANT:\"Pantone\",PBN:\"Packard Bell\",PFU:\"PFU\",PHIL:\"Philips Consumer Electronics\",PNTX:\"HOYA\",POne:\"Phase One A/S\",PREM:\"Premier Computer Innovations\",PRIN:\"Princeton Graphic Systems\",PRIP:\"Princeton Publishing Labs\",QLUX:\"Hong Kong\",QMS:\"QMS\",QPCD:\"QPcard AB\",QUAD:\"QuadLaser\",QUME:\"Qume\",RADI:\"Radius\",RDDx:\"Integrated Color Solutions\",RDG:\"Roland DG\",REDM:\"REDMS Group\",RELI:\"Relisys\",RGMS:\"Rolf Gierling Multitools\",RICO:\"Ricoh\",RNLD:\"Edmund Ronald\",ROYA:\"Royal\",RPC:\"Ricoh Printing Systems\",RTL:\"Royal Information Electronics\",SAMP:\"Sampo\",SAMS:\"Samsung\",SANT:\"Jaime Santana Pomares\",SCIT:\"Scitex\",SCRN:\"Dainippon Screen\",SDP:\"Scitex\",SEC:\"Samsung\",SEIK:\"Seiko Instruments\",SEIk:\"Seikosha\",SGUY:\"ScanGuy.com\",SHAR:\"Sharp Laboratories\",SICC:\"International Color Consortium\",SONY:\"Sony\",SPCL:\"SpectraCal\",STAR:\"Star\",STC:\"Sampo Technology\",Scit:\"Scitex\",Sdp:\"Scitex\",Sony:\"Sony\",TALO:\"Talon Technology\",TAND:\"Tandy\",TATU:\"Tatung\",TAXA:\"TAXAN America\",TDS:\"Tokyo Denshi Sekei\",TECO:\"TECO Information Systems\",TEGR:\"Tegra\",TEKT:\"Tektronix\",TI:\"Texas Instruments\",TMKR:\"TypeMaker\",TOSB:\"Toshiba\",TOSH:\"Toshiba\",TOTK:\"TOTOKU ELECTRIC\",TRIU:\"Triumph\",TSBT:\"Toshiba\",TTX:\"TTX Computer Products\",TVM:\"TVM Professional Monitor\",TW:\"TW Casper\",ULSX:\"Ulead Systems\",UNIS:\"Unisys\",UTZF:\"Utz Fehlau & Sohn\",VARI:\"Varityper\",VIEW:\"Viewsonic\",VISL:\"Visual communication\",VIVO:\"Vivo Mobile Communication\",WANG:\"Wang\",WLBR:\"Wilbur Imaging\",WTG2:\"Ware To Go\",WYSE:\"WYSE Technology\",XERX:\"Xerox\",XRIT:\"X-Rite\",ZRAN:\"Zoran\",Zebr:\"Zebra Technologies\",appl:\"Apple Computer\",bICC:\"basICColor\",berg:\"bergdesign\",ceyd:\"Integrated Color Solutions\",clsp:\"MacDermid ColorSpan\",ds:\"Dainippon Screen\",dupn:\"DuPont\",ffei:\"FujiFilm Electronic Imaging\",flux:\"FluxData\",iris:\"Scitex\",kart:\"Scitex\",lcms:\"Little CMS\",lino:\"Linotronic\",none:\"none\",ob4d:\"Erdt Systems\",obic:\"Medigraph\",quby:\"Qubyx Sarl\",scit:\"Scitex\",scrn:\"Dainippon Screen\",sdp:\"Scitex\",siwi:\"SIWI GRAFIKA\",yxym:\"YxyMaster\"},Ct={scnr:\"Scanner\",mntr:\"Monitor\",prtr:\"Printer\",link:\"Device Link\",abst:\"Abstract\",spac:\"Color Space Conversion Profile\",nmcl:\"Named Color\",cenc:\"ColorEncodingSpace profile\",mid:\"MultiplexIdentification profile\",mlnk:\"MultiplexLink profile\",mvis:\"MultiplexVisualization profile\",nkpf:\"Nikon Input Device Profile (NON-STANDARD!)\"};U(B,\"icc\",[[4,St],[12,Ct],[40,Object.assign({},St,Ct)],[48,St],[80,St],[64,{0:\"Perceptual\",1:\"Relative Colorimetric\",2:\"Saturation\",3:\"Absolute Colorimetric\"}],[\"tech\",{amd:\"Active Matrix Display\",crt:\"Cathode Ray Tube Display\",kpcd:\"Photo CD\",pmd:\"Passive Matrix Display\",dcam:\"Digital Camera\",dcpj:\"Digital Cinema Projector\",dmpc:\"Digital Motion Picture Camera\",dsub:\"Dye Sublimation Printer\",epho:\"Electrophotographic Printer\",esta:\"Electrostatic Printer\",flex:\"Flexography\",fprn:\"Film Writer\",fscn:\"Film Scanner\",grav:\"Gravure\",ijet:\"Ink Jet Printer\",imgs:\"Photo Image Setter\",mpfr:\"Motion Picture Film Recorder\",mpfs:\"Motion Picture Film Scanner\",offs:\"Offset Lithography\",pjtv:\"Projection Television\",rpho:\"Photographic Paper Printer\",rscn:\"Reflective Scanner\",silk:\"Silkscreen\",twax:\"Thermal Wax Printer\",vidc:\"Video Camera\",vidm:\"Video Monitor\"}]]);class yt extends re{static canHandle(e,t,i){return 237===e.getUint8(t+1)&&\"Photoshop\"===e.getString(t+4,9)&&void 0!==this.containsIptc8bim(e,t,i)}static headerLength(e,t,i){let n,s=this.containsIptc8bim(e,t,i);if(void 0!==s)return n=e.getUint8(t+s+7),n%2!=0&&(n+=1),0===n&&(n=4),s+8+n}static containsIptc8bim(e,t,i){for(let n=0;n arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nmodule.exports = _arrayLikeToArray;",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function (Math) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var Hasher = C_lib.Hasher;\n\t var C_algo = C.algo;\n\n\t // Initialization and round constants tables\n\t var H = [];\n\t var K = [];\n\n\t // Compute constants\n\t (function () {\n\t function isPrime(n) {\n\t var sqrtN = Math.sqrt(n);\n\t for (var factor = 2; factor <= sqrtN; factor++) {\n\t if (!(n % factor)) {\n\t return false;\n\t }\n\t }\n\n\t return true;\n\t }\n\n\t function getFractionalBits(n) {\n\t return ((n - (n | 0)) * 0x100000000) | 0;\n\t }\n\n\t var n = 2;\n\t var nPrime = 0;\n\t while (nPrime < 64) {\n\t if (isPrime(n)) {\n\t if (nPrime < 8) {\n\t H[nPrime] = getFractionalBits(Math.pow(n, 1 / 2));\n\t }\n\t K[nPrime] = getFractionalBits(Math.pow(n, 1 / 3));\n\n\t nPrime++;\n\t }\n\n\t n++;\n\t }\n\t }());\n\n\t // Reusable object\n\t var W = [];\n\n\t /**\n\t * SHA-256 hash algorithm.\n\t */\n\t var SHA256 = C_algo.SHA256 = Hasher.extend({\n\t _doReset: function () {\n\t this._hash = new WordArray.init(H.slice(0));\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcut\n\t var H = this._hash.words;\n\n\t // Working variables\n\t var a = H[0];\n\t var b = H[1];\n\t var c = H[2];\n\t var d = H[3];\n\t var e = H[4];\n\t var f = H[5];\n\t var g = H[6];\n\t var h = H[7];\n\n\t // Computation\n\t for (var i = 0; i < 64; i++) {\n\t if (i < 16) {\n\t W[i] = M[offset + i] | 0;\n\t } else {\n\t var gamma0x = W[i - 15];\n\t var gamma0 = ((gamma0x << 25) | (gamma0x >>> 7)) ^\n\t ((gamma0x << 14) | (gamma0x >>> 18)) ^\n\t (gamma0x >>> 3);\n\n\t var gamma1x = W[i - 2];\n\t var gamma1 = ((gamma1x << 15) | (gamma1x >>> 17)) ^\n\t ((gamma1x << 13) | (gamma1x >>> 19)) ^\n\t (gamma1x >>> 10);\n\n\t W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16];\n\t }\n\n\t var ch = (e & f) ^ (~e & g);\n\t var maj = (a & b) ^ (a & c) ^ (b & c);\n\n\t var sigma0 = ((a << 30) | (a >>> 2)) ^ ((a << 19) | (a >>> 13)) ^ ((a << 10) | (a >>> 22));\n\t var sigma1 = ((e << 26) | (e >>> 6)) ^ ((e << 21) | (e >>> 11)) ^ ((e << 7) | (e >>> 25));\n\n\t var t1 = h + sigma1 + ch + K[i] + W[i];\n\t var t2 = sigma0 + maj;\n\n\t h = g;\n\t g = f;\n\t f = e;\n\t e = (d + t1) | 0;\n\t d = c;\n\t c = b;\n\t b = a;\n\t a = (t1 + t2) | 0;\n\t }\n\n\t // Intermediate hash value\n\t H[0] = (H[0] + a) | 0;\n\t H[1] = (H[1] + b) | 0;\n\t H[2] = (H[2] + c) | 0;\n\t H[3] = (H[3] + d) | 0;\n\t H[4] = (H[4] + e) | 0;\n\t H[5] = (H[5] + f) | 0;\n\t H[6] = (H[6] + g) | 0;\n\t H[7] = (H[7] + h) | 0;\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = Math.floor(nBitsTotal / 0x100000000);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = nBitsTotal;\n\t data.sigBytes = dataWords.length * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Return final computed hash\n\t return this._hash;\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\t clone._hash = this._hash.clone();\n\n\t return clone;\n\t }\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA256('message');\n\t * var hash = CryptoJS.SHA256(wordArray);\n\t */\n\t C.SHA256 = Hasher._createHelper(SHA256);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA256(message, key);\n\t */\n\t C.HmacSHA256 = Hasher._createHmacHelper(SHA256);\n\t}(Math));\n\n\n\treturn CryptoJS.SHA256;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./x64-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./x64-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var Hasher = C_lib.Hasher;\n\t var C_x64 = C.x64;\n\t var X64Word = C_x64.Word;\n\t var X64WordArray = C_x64.WordArray;\n\t var C_algo = C.algo;\n\n\t function X64Word_create() {\n\t return X64Word.create.apply(X64Word, arguments);\n\t }\n\n\t // Constants\n\t var K = [\n\t X64Word_create(0x428a2f98, 0xd728ae22), X64Word_create(0x71374491, 0x23ef65cd),\n\t X64Word_create(0xb5c0fbcf, 0xec4d3b2f), X64Word_create(0xe9b5dba5, 0x8189dbbc),\n\t X64Word_create(0x3956c25b, 0xf348b538), X64Word_create(0x59f111f1, 0xb605d019),\n\t X64Word_create(0x923f82a4, 0xaf194f9b), X64Word_create(0xab1c5ed5, 0xda6d8118),\n\t X64Word_create(0xd807aa98, 0xa3030242), X64Word_create(0x12835b01, 0x45706fbe),\n\t X64Word_create(0x243185be, 0x4ee4b28c), X64Word_create(0x550c7dc3, 0xd5ffb4e2),\n\t X64Word_create(0x72be5d74, 0xf27b896f), X64Word_create(0x80deb1fe, 0x3b1696b1),\n\t X64Word_create(0x9bdc06a7, 0x25c71235), X64Word_create(0xc19bf174, 0xcf692694),\n\t X64Word_create(0xe49b69c1, 0x9ef14ad2), X64Word_create(0xefbe4786, 0x384f25e3),\n\t X64Word_create(0x0fc19dc6, 0x8b8cd5b5), X64Word_create(0x240ca1cc, 0x77ac9c65),\n\t X64Word_create(0x2de92c6f, 0x592b0275), X64Word_create(0x4a7484aa, 0x6ea6e483),\n\t X64Word_create(0x5cb0a9dc, 0xbd41fbd4), X64Word_create(0x76f988da, 0x831153b5),\n\t X64Word_create(0x983e5152, 0xee66dfab), X64Word_create(0xa831c66d, 0x2db43210),\n\t X64Word_create(0xb00327c8, 0x98fb213f), X64Word_create(0xbf597fc7, 0xbeef0ee4),\n\t X64Word_create(0xc6e00bf3, 0x3da88fc2), X64Word_create(0xd5a79147, 0x930aa725),\n\t X64Word_create(0x06ca6351, 0xe003826f), X64Word_create(0x14292967, 0x0a0e6e70),\n\t X64Word_create(0x27b70a85, 0x46d22ffc), X64Word_create(0x2e1b2138, 0x5c26c926),\n\t X64Word_create(0x4d2c6dfc, 0x5ac42aed), X64Word_create(0x53380d13, 0x9d95b3df),\n\t X64Word_create(0x650a7354, 0x8baf63de), X64Word_create(0x766a0abb, 0x3c77b2a8),\n\t X64Word_create(0x81c2c92e, 0x47edaee6), X64Word_create(0x92722c85, 0x1482353b),\n\t X64Word_create(0xa2bfe8a1, 0x4cf10364), X64Word_create(0xa81a664b, 0xbc423001),\n\t X64Word_create(0xc24b8b70, 0xd0f89791), X64Word_create(0xc76c51a3, 0x0654be30),\n\t X64Word_create(0xd192e819, 0xd6ef5218), X64Word_create(0xd6990624, 0x5565a910),\n\t X64Word_create(0xf40e3585, 0x5771202a), X64Word_create(0x106aa070, 0x32bbd1b8),\n\t X64Word_create(0x19a4c116, 0xb8d2d0c8), X64Word_create(0x1e376c08, 0x5141ab53),\n\t X64Word_create(0x2748774c, 0xdf8eeb99), X64Word_create(0x34b0bcb5, 0xe19b48a8),\n\t X64Word_create(0x391c0cb3, 0xc5c95a63), X64Word_create(0x4ed8aa4a, 0xe3418acb),\n\t X64Word_create(0x5b9cca4f, 0x7763e373), X64Word_create(0x682e6ff3, 0xd6b2b8a3),\n\t X64Word_create(0x748f82ee, 0x5defb2fc), X64Word_create(0x78a5636f, 0x43172f60),\n\t X64Word_create(0x84c87814, 0xa1f0ab72), X64Word_create(0x8cc70208, 0x1a6439ec),\n\t X64Word_create(0x90befffa, 0x23631e28), X64Word_create(0xa4506ceb, 0xde82bde9),\n\t X64Word_create(0xbef9a3f7, 0xb2c67915), X64Word_create(0xc67178f2, 0xe372532b),\n\t X64Word_create(0xca273ece, 0xea26619c), X64Word_create(0xd186b8c7, 0x21c0c207),\n\t X64Word_create(0xeada7dd6, 0xcde0eb1e), X64Word_create(0xf57d4f7f, 0xee6ed178),\n\t X64Word_create(0x06f067aa, 0x72176fba), X64Word_create(0x0a637dc5, 0xa2c898a6),\n\t X64Word_create(0x113f9804, 0xbef90dae), X64Word_create(0x1b710b35, 0x131c471b),\n\t X64Word_create(0x28db77f5, 0x23047d84), X64Word_create(0x32caab7b, 0x40c72493),\n\t X64Word_create(0x3c9ebe0a, 0x15c9bebc), X64Word_create(0x431d67c4, 0x9c100d4c),\n\t X64Word_create(0x4cc5d4be, 0xcb3e42b6), X64Word_create(0x597f299c, 0xfc657e2a),\n\t X64Word_create(0x5fcb6fab, 0x3ad6faec), X64Word_create(0x6c44198c, 0x4a475817)\n\t ];\n\n\t // Reusable objects\n\t var W = [];\n\t (function () {\n\t for (var i = 0; i < 80; i++) {\n\t W[i] = X64Word_create();\n\t }\n\t }());\n\n\t /**\n\t * SHA-512 hash algorithm.\n\t */\n\t var SHA512 = C_algo.SHA512 = Hasher.extend({\n\t _doReset: function () {\n\t this._hash = new X64WordArray.init([\n\t new X64Word.init(0x6a09e667, 0xf3bcc908), new X64Word.init(0xbb67ae85, 0x84caa73b),\n\t new X64Word.init(0x3c6ef372, 0xfe94f82b), new X64Word.init(0xa54ff53a, 0x5f1d36f1),\n\t new X64Word.init(0x510e527f, 0xade682d1), new X64Word.init(0x9b05688c, 0x2b3e6c1f),\n\t new X64Word.init(0x1f83d9ab, 0xfb41bd6b), new X64Word.init(0x5be0cd19, 0x137e2179)\n\t ]);\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcuts\n\t var H = this._hash.words;\n\n\t var H0 = H[0];\n\t var H1 = H[1];\n\t var H2 = H[2];\n\t var H3 = H[3];\n\t var H4 = H[4];\n\t var H5 = H[5];\n\t var H6 = H[6];\n\t var H7 = H[7];\n\n\t var H0h = H0.high;\n\t var H0l = H0.low;\n\t var H1h = H1.high;\n\t var H1l = H1.low;\n\t var H2h = H2.high;\n\t var H2l = H2.low;\n\t var H3h = H3.high;\n\t var H3l = H3.low;\n\t var H4h = H4.high;\n\t var H4l = H4.low;\n\t var H5h = H5.high;\n\t var H5l = H5.low;\n\t var H6h = H6.high;\n\t var H6l = H6.low;\n\t var H7h = H7.high;\n\t var H7l = H7.low;\n\n\t // Working variables\n\t var ah = H0h;\n\t var al = H0l;\n\t var bh = H1h;\n\t var bl = H1l;\n\t var ch = H2h;\n\t var cl = H2l;\n\t var dh = H3h;\n\t var dl = H3l;\n\t var eh = H4h;\n\t var el = H4l;\n\t var fh = H5h;\n\t var fl = H5l;\n\t var gh = H6h;\n\t var gl = H6l;\n\t var hh = H7h;\n\t var hl = H7l;\n\n\t // Rounds\n\t for (var i = 0; i < 80; i++) {\n\t // Shortcut\n\t var Wi = W[i];\n\n\t // Extend message\n\t if (i < 16) {\n\t var Wih = Wi.high = M[offset + i * 2] | 0;\n\t var Wil = Wi.low = M[offset + i * 2 + 1] | 0;\n\t } else {\n\t // Gamma0\n\t var gamma0x = W[i - 15];\n\t var gamma0xh = gamma0x.high;\n\t var gamma0xl = gamma0x.low;\n\t var gamma0h = ((gamma0xh >>> 1) | (gamma0xl << 31)) ^ ((gamma0xh >>> 8) | (gamma0xl << 24)) ^ (gamma0xh >>> 7);\n\t var gamma0l = ((gamma0xl >>> 1) | (gamma0xh << 31)) ^ ((gamma0xl >>> 8) | (gamma0xh << 24)) ^ ((gamma0xl >>> 7) | (gamma0xh << 25));\n\n\t // Gamma1\n\t var gamma1x = W[i - 2];\n\t var gamma1xh = gamma1x.high;\n\t var gamma1xl = gamma1x.low;\n\t var gamma1h = ((gamma1xh >>> 19) | (gamma1xl << 13)) ^ ((gamma1xh << 3) | (gamma1xl >>> 29)) ^ (gamma1xh >>> 6);\n\t var gamma1l = ((gamma1xl >>> 19) | (gamma1xh << 13)) ^ ((gamma1xl << 3) | (gamma1xh >>> 29)) ^ ((gamma1xl >>> 6) | (gamma1xh << 26));\n\n\t // W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16]\n\t var Wi7 = W[i - 7];\n\t var Wi7h = Wi7.high;\n\t var Wi7l = Wi7.low;\n\n\t var Wi16 = W[i - 16];\n\t var Wi16h = Wi16.high;\n\t var Wi16l = Wi16.low;\n\n\t var Wil = gamma0l + Wi7l;\n\t var Wih = gamma0h + Wi7h + ((Wil >>> 0) < (gamma0l >>> 0) ? 1 : 0);\n\t var Wil = Wil + gamma1l;\n\t var Wih = Wih + gamma1h + ((Wil >>> 0) < (gamma1l >>> 0) ? 1 : 0);\n\t var Wil = Wil + Wi16l;\n\t var Wih = Wih + Wi16h + ((Wil >>> 0) < (Wi16l >>> 0) ? 1 : 0);\n\n\t Wi.high = Wih;\n\t Wi.low = Wil;\n\t }\n\n\t var chh = (eh & fh) ^ (~eh & gh);\n\t var chl = (el & fl) ^ (~el & gl);\n\t var majh = (ah & bh) ^ (ah & ch) ^ (bh & ch);\n\t var majl = (al & bl) ^ (al & cl) ^ (bl & cl);\n\n\t var sigma0h = ((ah >>> 28) | (al << 4)) ^ ((ah << 30) | (al >>> 2)) ^ ((ah << 25) | (al >>> 7));\n\t var sigma0l = ((al >>> 28) | (ah << 4)) ^ ((al << 30) | (ah >>> 2)) ^ ((al << 25) | (ah >>> 7));\n\t var sigma1h = ((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9));\n\t var sigma1l = ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9));\n\n\t // t1 = h + sigma1 + ch + K[i] + W[i]\n\t var Ki = K[i];\n\t var Kih = Ki.high;\n\t var Kil = Ki.low;\n\n\t var t1l = hl + sigma1l;\n\t var t1h = hh + sigma1h + ((t1l >>> 0) < (hl >>> 0) ? 1 : 0);\n\t var t1l = t1l + chl;\n\t var t1h = t1h + chh + ((t1l >>> 0) < (chl >>> 0) ? 1 : 0);\n\t var t1l = t1l + Kil;\n\t var t1h = t1h + Kih + ((t1l >>> 0) < (Kil >>> 0) ? 1 : 0);\n\t var t1l = t1l + Wil;\n\t var t1h = t1h + Wih + ((t1l >>> 0) < (Wil >>> 0) ? 1 : 0);\n\n\t // t2 = sigma0 + maj\n\t var t2l = sigma0l + majl;\n\t var t2h = sigma0h + majh + ((t2l >>> 0) < (sigma0l >>> 0) ? 1 : 0);\n\n\t // Update working variables\n\t hh = gh;\n\t hl = gl;\n\t gh = fh;\n\t gl = fl;\n\t fh = eh;\n\t fl = el;\n\t el = (dl + t1l) | 0;\n\t eh = (dh + t1h + ((el >>> 0) < (dl >>> 0) ? 1 : 0)) | 0;\n\t dh = ch;\n\t dl = cl;\n\t ch = bh;\n\t cl = bl;\n\t bh = ah;\n\t bl = al;\n\t al = (t1l + t2l) | 0;\n\t ah = (t1h + t2h + ((al >>> 0) < (t1l >>> 0) ? 1 : 0)) | 0;\n\t }\n\n\t // Intermediate hash value\n\t H0l = H0.low = (H0l + al);\n\t H0.high = (H0h + ah + ((H0l >>> 0) < (al >>> 0) ? 1 : 0));\n\t H1l = H1.low = (H1l + bl);\n\t H1.high = (H1h + bh + ((H1l >>> 0) < (bl >>> 0) ? 1 : 0));\n\t H2l = H2.low = (H2l + cl);\n\t H2.high = (H2h + ch + ((H2l >>> 0) < (cl >>> 0) ? 1 : 0));\n\t H3l = H3.low = (H3l + dl);\n\t H3.high = (H3h + dh + ((H3l >>> 0) < (dl >>> 0) ? 1 : 0));\n\t H4l = H4.low = (H4l + el);\n\t H4.high = (H4h + eh + ((H4l >>> 0) < (el >>> 0) ? 1 : 0));\n\t H5l = H5.low = (H5l + fl);\n\t H5.high = (H5h + fh + ((H5l >>> 0) < (fl >>> 0) ? 1 : 0));\n\t H6l = H6.low = (H6l + gl);\n\t H6.high = (H6h + gh + ((H6l >>> 0) < (gl >>> 0) ? 1 : 0));\n\t H7l = H7.low = (H7l + hl);\n\t H7.high = (H7h + hh + ((H7l >>> 0) < (hl >>> 0) ? 1 : 0));\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n\t dataWords[(((nBitsLeft + 128) >>> 10) << 5) + 30] = Math.floor(nBitsTotal / 0x100000000);\n\t dataWords[(((nBitsLeft + 128) >>> 10) << 5) + 31] = nBitsTotal;\n\t data.sigBytes = dataWords.length * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Convert hash to 32-bit word array before returning\n\t var hash = this._hash.toX32();\n\n\t // Return final computed hash\n\t return hash;\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\t clone._hash = this._hash.clone();\n\n\t return clone;\n\t },\n\n\t blockSize: 1024/32\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA512('message');\n\t * var hash = CryptoJS.SHA512(wordArray);\n\t */\n\t C.SHA512 = Hasher._createHelper(SHA512);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA512(message, key);\n\t */\n\t C.HmacSHA512 = Hasher._createHmacHelper(SHA512);\n\t}());\n\n\n\treturn CryptoJS.SHA512;\n\n}));","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e))for(t=0;t's events\n\n\nfunction createCoreData(draggable\n/*: DraggableCore*/\n, x\n/*: number*/\n, y\n/*: number*/\n)\n/*: DraggableData*/\n{\n var state = draggable.state;\n var isStart = !(0, _shims.isNum)(state.lastX);\n var node = findDOMNode(draggable);\n\n if (isStart) {\n // If this is our first move, use the x and y as last coords.\n return {\n node: node,\n deltaX: 0,\n deltaY: 0,\n lastX: x,\n lastY: y,\n x: x,\n y: y\n };\n } else {\n // Otherwise calculate proper values.\n return {\n node: node,\n deltaX: x - state.lastX,\n deltaY: y - state.lastY,\n lastX: state.lastX,\n lastY: state.lastY,\n x: x,\n y: y\n };\n }\n} // Create an data exposed by 's events\n\n\nfunction createDraggableData(draggable\n/*: Draggable*/\n, coreData\n/*: DraggableData*/\n)\n/*: DraggableData*/\n{\n var scale = draggable.props.scale;\n return {\n node: coreData.node,\n x: draggable.state.x + coreData.deltaX / scale,\n y: draggable.state.y + coreData.deltaY / scale,\n deltaX: coreData.deltaX / scale,\n deltaY: coreData.deltaY / scale,\n lastX: draggable.state.x,\n lastY: draggable.state.y\n };\n} // A lot faster than stringify/parse\n\n\nfunction cloneBounds(bounds\n/*: Bounds*/\n)\n/*: Bounds*/\n{\n return {\n left: bounds.left,\n top: bounds.top,\n right: bounds.right,\n bottom: bounds.bottom\n };\n}\n\nfunction findDOMNode(draggable\n/*: Draggable | DraggableCore*/\n)\n/*: HTMLElement*/\n{\n var node = draggable.findDOMNode();\n\n if (!node) {\n throw new Error(': Unmounted during event!');\n } // $FlowIgnore we can't assert on HTMLElement due to tests... FIXME\n\n\n return node;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = log;\n\n/*eslint no-console:0*/\nfunction log() {\n var _console;\n\n if (undefined) (_console = console).log.apply(_console, arguments);\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getBoundPosition = getBoundPosition;\nexports.snapToGrid = snapToGrid;\nexports.canDragX = canDragX;\nexports.canDragY = canDragY;\nexports.getControlPosition = getControlPosition;\nexports.createCoreData = createCoreData;\nexports.createDraggableData = createDraggableData;\n\nvar _shims = require(\"./shims\");\n\nvar _domFns = require(\"./domFns\");\n\nfunction getBoundPosition(draggable\n/*: Draggable*/\n, x\n/*: number*/\n, y\n/*: number*/\n)\n/*: [number, number]*/\n{\n // If no bounds, short-circuit and move on\n if (!draggable.props.bounds) return [x, y]; // Clone new bounds\n\n var bounds = draggable.props.bounds;\n bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds);\n var node = findDOMNode(draggable);\n\n if (typeof bounds === 'string') {\n var ownerDocument = node.ownerDocument;\n var ownerWindow = ownerDocument.defaultView;\n var boundNode;\n\n if (bounds === 'parent') {\n boundNode = node.parentNode;\n } else {\n boundNode = ownerDocument.querySelector(bounds);\n }\n\n if (!(boundNode instanceof ownerWindow.HTMLElement)) {\n throw new Error('Bounds selector \"' + bounds + '\" could not find an element.');\n }\n\n var boundNodeEl\n /*: HTMLElement*/\n = boundNode; // for Flow, can't seem to refine correctly\n\n var nodeStyle = ownerWindow.getComputedStyle(node);\n var boundNodeStyle = ownerWindow.getComputedStyle(boundNodeEl); // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n\n bounds = {\n left: -node.offsetLeft + (0, _shims.int)(boundNodeStyle.paddingLeft) + (0, _shims.int)(nodeStyle.marginLeft),\n top: -node.offsetTop + (0, _shims.int)(boundNodeStyle.paddingTop) + (0, _shims.int)(nodeStyle.marginTop),\n right: (0, _domFns.innerWidth)(boundNodeEl) - (0, _domFns.outerWidth)(node) - node.offsetLeft + (0, _shims.int)(boundNodeStyle.paddingRight) - (0, _shims.int)(nodeStyle.marginRight),\n bottom: (0, _domFns.innerHeight)(boundNodeEl) - (0, _domFns.outerHeight)(node) - node.offsetTop + (0, _shims.int)(boundNodeStyle.paddingBottom) - (0, _shims.int)(nodeStyle.marginBottom)\n };\n } // Keep x and y below right and bottom limits...\n\n\n if ((0, _shims.isNum)(bounds.right)) x = Math.min(x, bounds.right);\n if ((0, _shims.isNum)(bounds.bottom)) y = Math.min(y, bounds.bottom); // But above left and top limits.\n\n if ((0, _shims.isNum)(bounds.left)) x = Math.max(x, bounds.left);\n if ((0, _shims.isNum)(bounds.top)) y = Math.max(y, bounds.top);\n return [x, y];\n}\n\nfunction snapToGrid(grid\n/*: [number, number]*/\n, pendingX\n/*: number*/\n, pendingY\n/*: number*/\n)\n/*: [number, number]*/\n{\n var x = Math.round(pendingX / grid[0]) * grid[0];\n var y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\n\nfunction canDragX(draggable\n/*: Draggable*/\n)\n/*: boolean*/\n{\n return draggable.props.axis === 'both' || draggable.props.axis === 'x';\n}\n\nfunction canDragY(draggable\n/*: Draggable*/\n)\n/*: boolean*/\n{\n return draggable.props.axis === 'both' || draggable.props.axis === 'y';\n} // Get {x, y} positions from event.\n\n\nfunction getControlPosition(e\n/*: MouseTouchEvent*/\n, touchIdentifier\n/*: ?number*/\n, draggableCore\n/*: DraggableCore*/\n)\n/*: ?ControlPosition*/\n{\n var touchObj = typeof touchIdentifier === 'number' ? (0, _domFns.getTouch)(e, touchIdentifier) : null;\n if (typeof touchIdentifier === 'number' && !touchObj) return null; // not the right touch\n\n var node = findDOMNode(draggableCore); // User can provide an offsetParent if desired.\n\n var offsetParent = draggableCore.props.offsetParent || node.offsetParent || node.ownerDocument.body;\n return (0, _domFns.offsetXYFromParent)(touchObj || e, offsetParent, draggableCore.props.scale);\n} // Create an data object exposed by 's events\n\n\nfunction createCoreData(draggable\n/*: DraggableCore*/\n, x\n/*: number*/\n, y\n/*: number*/\n)\n/*: DraggableData*/\n{\n var state = draggable.state;\n var isStart = !(0, _shims.isNum)(state.lastX);\n var node = findDOMNode(draggable);\n\n if (isStart) {\n // If this is our first move, use the x and y as last coords.\n return {\n node: node,\n deltaX: 0,\n deltaY: 0,\n lastX: x,\n lastY: y,\n x: x,\n y: y\n };\n } else {\n // Otherwise calculate proper values.\n return {\n node: node,\n deltaX: x - state.lastX,\n deltaY: y - state.lastY,\n lastX: state.lastX,\n lastY: state.lastY,\n x: x,\n y: y\n };\n }\n} // Create an data exposed by 's events\n\n\nfunction createDraggableData(draggable\n/*: Draggable*/\n, coreData\n/*: DraggableData*/\n)\n/*: DraggableData*/\n{\n var scale = draggable.props.scale;\n return {\n node: coreData.node,\n x: draggable.state.x + coreData.deltaX / scale,\n y: draggable.state.y + coreData.deltaY / scale,\n deltaX: coreData.deltaX / scale,\n deltaY: coreData.deltaY / scale,\n lastX: draggable.state.x,\n lastY: draggable.state.y\n };\n} // A lot faster than stringify/parse\n\n\nfunction cloneBounds(bounds\n/*: Bounds*/\n)\n/*: Bounds*/\n{\n return {\n left: bounds.left,\n top: bounds.top,\n right: bounds.right,\n bottom: bounds.bottom\n };\n}\n\nfunction findDOMNode(draggable\n/*: Draggable | DraggableCore*/\n)\n/*: HTMLElement*/\n{\n var node = draggable.findDOMNode();\n\n if (!node) {\n throw new Error(': Unmounted during event!');\n } // $FlowIgnore we can't assert on HTMLElement due to tests... FIXME\n\n\n return node;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = log;\n\n/*eslint no-console:0*/\nfunction log() {\n var _console;\n\n if (undefined) (_console = console).log.apply(_console, arguments);\n}","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","\"use strict\";\n\nvar _require = require('./Draggable'),\n Draggable = _require.default,\n DraggableCore = _require.DraggableCore; // Previous versions of this lib exported as the root export. As to no-// them, or TypeScript, we export *both* as the root and as 'default'.\n// See https://github.com/mzabriskie/react-draggable/pull/254\n// and https://github.com/mzabriskie/react-draggable/issues/266\n\n\nmodule.exports = Draggable;\nmodule.exports.default = Draggable;\nmodule.exports.DraggableCore = DraggableCore;","/*!\n Copyright (c) 2017 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg) && arg.length) {\n\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\tif (inner) {\n\t\t\t\t\tclasses.push(inner);\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","// @flow\n'use strict';\n\nvar key = '__global_unique_id__';\n\nmodule.exports = function() {\n return global[key] = (global[key] || 0) + 1;\n};\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createBrowserHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a that uses HTML5 history.\n */\nclass BrowserRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n BrowserRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n forceRefresh: PropTypes.bool,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number\n };\n\n BrowserRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { BrowserRouter as Router }`.\"\n );\n };\n}\n\nexport default BrowserRouter;\n","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createHashHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a that uses window.location.hash.\n */\nclass HashRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n HashRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n getUserConfirmation: PropTypes.func,\n hashType: PropTypes.oneOf([\"hashbang\", \"noslash\", \"slash\"])\n };\n\n HashRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { HashRouter as Router }`.\"\n );\n };\n}\n\nexport default HashRouter;\n","import { createLocation } from \"history\";\n\nexport const resolveToLocation = (to, currentLocation) =>\n typeof to === \"function\" ? to(currentLocation) : to;\n\nexport const normalizeToLocation = (to, currentLocation) => {\n return typeof to === \"string\"\n ? createLocation(to, null, null, currentLocation)\n : to;\n};\n","import React from \"react\";\nimport { __RouterContext as RouterContext } from \"react-router\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport { resolveToLocation, normalizeToLocation } from \"./utils/locationUtils\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction isModifiedEvent(event) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nconst LinkAnchor = forwardRef(\n (\n {\n innerRef, // TODO: deprecate\n navigate,\n onClick,\n ...rest\n },\n forwardedRef\n ) => {\n const { target } = rest;\n\n let props = {\n ...rest,\n onClick: event => {\n try {\n if (onClick) onClick(event);\n } catch (ex) {\n event.preventDefault();\n throw ex;\n }\n\n if (\n !event.defaultPrevented && // onClick prevented default\n event.button === 0 && // ignore everything but left clicks\n (!target || target === \"_self\") && // let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // ignore clicks with modifier keys\n ) {\n event.preventDefault();\n navigate();\n }\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.ref = innerRef;\n }\n\n return ;\n }\n);\n\nif (__DEV__) {\n LinkAnchor.displayName = \"LinkAnchor\";\n}\n\n/**\n * The public API for rendering a history-aware .\n */\nconst Link = forwardRef(\n (\n {\n component = LinkAnchor,\n replace,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const { history } = context;\n\n const location = normalizeToLocation(\n resolveToLocation(to, context.location),\n context.location\n );\n\n const href = location ? history.createHref(location) : \"\";\n const props = {\n ...rest,\n href,\n navigate() {\n const location = resolveToLocation(to, context.location);\n const method = replace ? history.replace : history.push;\n\n method(location);\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return React.createElement(component, props);\n }}\n \n );\n }\n);\n\nif (__DEV__) {\n const toType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.object,\n PropTypes.func\n ]);\n const refType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.any })\n ]);\n\n Link.displayName = \"Link\";\n\n Link.propTypes = {\n innerRef: refType,\n onClick: PropTypes.func,\n replace: PropTypes.bool,\n target: PropTypes.string,\n to: toType.isRequired\n };\n}\n\nexport default Link;\n","import React from \"react\";\nimport { __RouterContext as RouterContext, matchPath } from \"react-router\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport Link from \"./Link\";\nimport { resolveToLocation, normalizeToLocation } from \"./utils/locationUtils\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction joinClassnames(...classnames) {\n return classnames.filter(i => i).join(\" \");\n}\n\n/**\n * A wrapper that knows if it's \"active\" or not.\n */\nconst NavLink = forwardRef(\n (\n {\n \"aria-current\": ariaCurrent = \"page\",\n activeClassName = \"active\",\n activeStyle,\n className: classNameProp,\n exact,\n isActive: isActiveProp,\n location: locationProp,\n strict,\n style: styleProp,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const currentLocation = locationProp || context.location;\n const toLocation = normalizeToLocation(\n resolveToLocation(to, currentLocation),\n currentLocation\n );\n const { pathname: path } = toLocation;\n // Regex taken from: https://github.com/pillarjs/path-to-regexp/blob/master/index.js#L202\n const escapedPath =\n path && path.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, \"\\\\$1\");\n\n const match = escapedPath\n ? matchPath(currentLocation.pathname, {\n path: escapedPath,\n exact,\n strict\n })\n : null;\n const isActive = !!(isActiveProp\n ? isActiveProp(match, currentLocation)\n : match);\n\n const className = isActive\n ? joinClassnames(classNameProp, activeClassName)\n : classNameProp;\n const style = isActive ? { ...styleProp, ...activeStyle } : styleProp;\n\n const props = {\n \"aria-current\": (isActive && ariaCurrent) || null,\n className,\n style,\n to: toLocation,\n ...rest\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return ;\n }}\n \n );\n }\n);\n\nif (__DEV__) {\n NavLink.displayName = \"NavLink\";\n\n const ariaCurrentType = PropTypes.oneOf([\n \"page\",\n \"step\",\n \"location\",\n \"date\",\n \"time\",\n \"true\"\n ]);\n\n NavLink.propTypes = {\n ...Link.propTypes,\n \"aria-current\": ariaCurrentType,\n activeClassName: PropTypes.string,\n activeStyle: PropTypes.object,\n className: PropTypes.string,\n exact: PropTypes.bool,\n isActive: PropTypes.func,\n location: PropTypes.object,\n strict: PropTypes.bool,\n style: PropTypes.object\n };\n}\n\nexport default NavLink;\n","/** @license React v16.14.0\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\n'use strict';var l=require(\"object-assign\"),n=\"function\"===typeof Symbol&&Symbol.for,p=n?Symbol.for(\"react.element\"):60103,q=n?Symbol.for(\"react.portal\"):60106,r=n?Symbol.for(\"react.fragment\"):60107,t=n?Symbol.for(\"react.strict_mode\"):60108,u=n?Symbol.for(\"react.profiler\"):60114,v=n?Symbol.for(\"react.provider\"):60109,w=n?Symbol.for(\"react.context\"):60110,x=n?Symbol.for(\"react.forward_ref\"):60112,y=n?Symbol.for(\"react.suspense\"):60113,z=n?Symbol.for(\"react.memo\"):60115,A=n?Symbol.for(\"react.lazy\"):\n60116,B=\"function\"===typeof Symbol&&Symbol.iterator;function C(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cQ.length&&Q.push(a)}\nfunction T(a,b,c,e){var d=typeof a;if(\"undefined\"===d||\"boolean\"===d)a=null;var g=!1;if(null===a)g=!0;else switch(d){case \"string\":case \"number\":g=!0;break;case \"object\":switch(a.$$typeof){case p:case q:g=!0}}if(g)return c(e,a,\"\"===b?\".\"+U(a,0):b),1;g=0;b=\"\"===b?\".\":b+\":\";if(Array.isArray(a))for(var k=0;kb}return!1}function B(a,b,c,d,e,f){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}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)});[[\"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)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){D[a]=new B(a,2,!1,a.toLowerCase(),null,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){D[a]=new B(a,2,!1,a,null,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture 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)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){D[a]=new B(a,3,!0,a,null,!1)});[\"capture\",\"download\"].forEach(function(a){D[a]=new B(a,4,!1,a,null,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){D[a]=new B(a,6,!1,a,null,!1)});[\"rowSpan\",\"start\"].forEach(function(a){D[a]=new B(a,5,!1,a.toLowerCase(),null,!1)});var sb=/[\\-:]([a-z])/g;function tb(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(sb,\ntb);D[b]=new B(b,1,!1,a,null,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(sb,tb);D[b]=new B(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(sb,tb);D[b]=new B(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!1)});\nD.xlinkHref=new B(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!0)});function ub(a){switch(typeof a){case \"boolean\":case \"number\":case \"object\":case \"string\":case \"undefined\":return a;default:return\"\"}}\nfunction vb(a,b,c,d){var e=D.hasOwnProperty(b)?D[b]:null;var f=null!==e?0===e.type:d?!1:!(2=b.length))throw Error(u(93));b=b[0]}c=b}null==c&&(c=\"\")}a._wrapperState={initialValue:ub(c)}}\nfunction Mb(a,b){var c=ub(b.value),d=ub(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 Nb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}var Ob={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};\nfunction Pb(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 Qb(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?Pb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar Rb,Sb=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!==Ob.svg||\"innerHTML\"in a)a.innerHTML=b;else{Rb=Rb||document.createElement(\"div\");Rb.innerHTML=\"\"+b.valueOf().toString()+\"\";for(b=Rb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction Tb(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}function Ub(a,b){var c={};c[a.toLowerCase()]=b.toLowerCase();c[\"Webkit\"+a]=\"webkit\"+b;c[\"Moz\"+a]=\"moz\"+b;return c}var Vb={animationend:Ub(\"Animation\",\"AnimationEnd\"),animationiteration:Ub(\"Animation\",\"AnimationIteration\"),animationstart:Ub(\"Animation\",\"AnimationStart\"),transitionend:Ub(\"Transition\",\"TransitionEnd\")},Wb={},Xb={};\nYa&&(Xb=document.createElement(\"div\").style,\"AnimationEvent\"in window||(delete Vb.animationend.animation,delete Vb.animationiteration.animation,delete Vb.animationstart.animation),\"TransitionEvent\"in window||delete Vb.transitionend.transition);function Yb(a){if(Wb[a])return Wb[a];if(!Vb[a])return a;var b=Vb[a],c;for(c in b)if(b.hasOwnProperty(c)&&c in Xb)return Wb[a]=b[c];return a}var Zb=Yb(\"animationend\"),$b=Yb(\"animationiteration\"),ac=Yb(\"animationstart\"),bc=Yb(\"transitionend\"),cc=\"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting\".split(\" \");\nfunction ec(a){var b=a,c=a;if(a.alternate)for(;b.return;)b=b.return;else{a=b;do b=a,0!==(b.effectTag&1026)&&(c=b.return),a=b.return;while(a)}return 3===b.tag?c:null}function fc(a){if(13===a.tag){var b=a.memoizedState;null===b&&(a=a.alternate,null!==a&&(b=a.memoizedState));if(null!==b)return b.dehydrated}return null}function gc(a){if(ec(a)!==a)throw Error(u(188));}\nfunction hc(a){var b=a.alternate;if(!b){b=ec(a);if(null===b)throw Error(u(188));return b!==a?null:a}for(var c=a,d=b;;){var e=c.return;if(null===e)break;var f=e.alternate;if(null===f){d=e.return;if(null!==d){c=d;continue}break}if(e.child===f.child){for(f=e.child;f;){if(f===c)return gc(e),a;if(f===d)return gc(e),b;f=f.sibling}throw Error(u(188));}if(c.return!==d.return)c=e,d=f;else{for(var g=!1,h=e.child;h;){if(h===c){g=!0;c=e;d=f;break}if(h===d){g=!0;d=e;c=f;break}h=h.sibling}if(!g){for(h=f.child;h;){if(h===\nc){g=!0;c=f;d=e;break}if(h===d){g=!0;d=f;c=e;break}h=h.sibling}if(!g)throw Error(u(189));}}if(c.alternate!==d)throw Error(u(190));}if(3!==c.tag)throw Error(u(188));return c.stateNode.current===c?a:b}function ic(a){a=hc(a);if(!a)return null;for(var b=a;;){if(5===b.tag||6===b.tag)return b;if(b.child)b.child.return=b,b=b.child;else{if(b===a)break;for(;!b.sibling;){if(!b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}}return null}\nvar jc,kc,lc,mc=!1,nc=[],oc=null,pc=null,qc=null,rc=new Map,sc=new Map,tc=[],uc=\"mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput close cancel copy cut paste click change contextmenu reset submit\".split(\" \"),vc=\"focus blur dragenter dragleave mouseover mouseout pointerover pointerout gotpointercapture lostpointercapture\".split(\" \");\nfunction wc(a){var b=xc(a);uc.forEach(function(c){yc(c,a,b)});vc.forEach(function(c){yc(c,a,b)})}function zc(a,b,c,d){return{blockedOn:a,topLevelType:b,eventSystemFlags:c|32,nativeEvent:d}}function Ac(a,b){switch(a){case \"focus\":case \"blur\":oc=null;break;case \"dragenter\":case \"dragleave\":pc=null;break;case \"mouseover\":case \"mouseout\":qc=null;break;case \"pointerover\":case \"pointerout\":rc.delete(b.pointerId);break;case \"gotpointercapture\":case \"lostpointercapture\":sc.delete(b.pointerId)}}\nfunction Bc(a,b,c,d,e){if(null===a||a.nativeEvent!==e)return a=zc(b,c,d,e),null!==b&&(b=Cc(b),null!==b&&kc(b)),a;a.eventSystemFlags|=d;return a}function Dc(a,b,c,d){switch(b){case \"focus\":return oc=Bc(oc,a,b,c,d),!0;case \"dragenter\":return pc=Bc(pc,a,b,c,d),!0;case \"mouseover\":return qc=Bc(qc,a,b,c,d),!0;case \"pointerover\":var e=d.pointerId;rc.set(e,Bc(rc.get(e)||null,a,b,c,d));return!0;case \"gotpointercapture\":return e=d.pointerId,sc.set(e,Bc(sc.get(e)||null,a,b,c,d)),!0}return!1}\nfunction Ec(a){var b=Fc(a.target);if(null!==b){var c=ec(b);if(null!==c)if(b=c.tag,13===b){if(b=fc(c),null!==b){a.blockedOn=b;q.unstable_runWithPriority(a.priority,function(){lc(c)});return}}else if(3===b&&c.stateNode.hydrate){a.blockedOn=3===c.tag?c.stateNode.containerInfo:null;return}}a.blockedOn=null}function Gc(a){if(null!==a.blockedOn)return!1;var b=Hc(a.topLevelType,a.eventSystemFlags,a.nativeEvent);if(null!==b){var c=Cc(b);null!==c&&kc(c);a.blockedOn=b;return!1}return!0}\nfunction Ic(a,b,c){Gc(a)&&c.delete(b)}function Jc(){for(mc=!1;0this.eventPool.length&&this.eventPool.push(a)}function Vc(a){a.eventPool=[];a.getPooled=Wc;a.release=Xc}var Yc=E.extend({animationName:null,elapsedTime:null,pseudoElement:null}),Zc=E.extend({clipboardData:function(a){return\"clipboardData\"in a?a.clipboardData:window.clipboardData}}),$c=E.extend({view:null,detail:null}),ad=$c.extend({relatedTarget:null});\nfunction bd(a){var b=a.keyCode;\"charCode\"in a?(a=a.charCode,0===a&&13===b&&(a=13)):a=b;10===a&&(a=13);return 32<=a||13===a?a:0}\nvar cd={Esc:\"Escape\",Spacebar:\" \",Left:\"ArrowLeft\",Up:\"ArrowUp\",Right:\"ArrowRight\",Down:\"ArrowDown\",Del:\"Delete\",Win:\"OS\",Menu:\"ContextMenu\",Apps:\"ContextMenu\",Scroll:\"ScrollLock\",MozPrintableKey:\"Unidentified\"},dd={8:\"Backspace\",9:\"Tab\",12:\"Clear\",13:\"Enter\",16:\"Shift\",17:\"Control\",18:\"Alt\",19:\"Pause\",20:\"CapsLock\",27:\"Escape\",32:\" \",33:\"PageUp\",34:\"PageDown\",35:\"End\",36:\"Home\",37:\"ArrowLeft\",38:\"ArrowUp\",39:\"ArrowRight\",40:\"ArrowDown\",45:\"Insert\",46:\"Delete\",112:\"F1\",113:\"F2\",114:\"F3\",115:\"F4\",\n116:\"F5\",117:\"F6\",118:\"F7\",119:\"F8\",120:\"F9\",121:\"F10\",122:\"F11\",123:\"F12\",144:\"NumLock\",145:\"ScrollLock\",224:\"Meta\"},ed={Alt:\"altKey\",Control:\"ctrlKey\",Meta:\"metaKey\",Shift:\"shiftKey\"};function gd(a){var b=this.nativeEvent;return b.getModifierState?b.getModifierState(a):(a=ed[a])?!!b[a]:!1}function hd(){return gd}\nvar id=$c.extend({key:function(a){if(a.key){var b=cd[a.key]||a.key;if(\"Unidentified\"!==b)return b}return\"keypress\"===a.type?(a=bd(a),13===a?\"Enter\":String.fromCharCode(a)):\"keydown\"===a.type||\"keyup\"===a.type?dd[a.keyCode]||\"Unidentified\":\"\"},location:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,repeat:null,locale:null,getModifierState:hd,charCode:function(a){return\"keypress\"===a.type?bd(a):0},keyCode:function(a){return\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0},which:function(a){return\"keypress\"===\na.type?bd(a):\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0}}),jd=0,kd=0,ld=!1,md=!1,nd=$c.extend({screenX:null,screenY:null,clientX:null,clientY:null,pageX:null,pageY:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,getModifierState:hd,button:null,buttons:null,relatedTarget:function(a){return a.relatedTarget||(a.fromElement===a.srcElement?a.toElement:a.fromElement)},movementX:function(a){if(\"movementX\"in a)return a.movementX;var b=jd;jd=a.screenX;return ld?\"mousemove\"===a.type?a.screenX-\nb:0:(ld=!0,0)},movementY:function(a){if(\"movementY\"in a)return a.movementY;var b=kd;kd=a.screenY;return md?\"mousemove\"===a.type?a.screenY-b:0:(md=!0,0)}}),od=nd.extend({pointerId:null,width:null,height:null,pressure:null,tangentialPressure:null,tiltX:null,tiltY:null,twist:null,pointerType:null,isPrimary:null}),pd=nd.extend({dataTransfer:null}),qd=$c.extend({touches:null,targetTouches:null,changedTouches:null,altKey:null,metaKey:null,ctrlKey:null,shiftKey:null,getModifierState:hd}),rd=E.extend({propertyName:null,\nelapsedTime:null,pseudoElement:null}),sd=nd.extend({deltaX:function(a){return\"deltaX\"in a?a.deltaX:\"wheelDeltaX\"in a?-a.wheelDeltaX:0},deltaY:function(a){return\"deltaY\"in a?a.deltaY:\"wheelDeltaY\"in a?-a.wheelDeltaY:\"wheelDelta\"in a?-a.wheelDelta:0},deltaZ:null,deltaMode:null}),td=[[\"blur\",\"blur\",0],[\"cancel\",\"cancel\",0],[\"click\",\"click\",0],[\"close\",\"close\",0],[\"contextmenu\",\"contextMenu\",0],[\"copy\",\"copy\",0],[\"cut\",\"cut\",0],[\"auxclick\",\"auxClick\",0],[\"dblclick\",\"doubleClick\",0],[\"dragend\",\"dragEnd\",\n0],[\"dragstart\",\"dragStart\",0],[\"drop\",\"drop\",0],[\"focus\",\"focus\",0],[\"input\",\"input\",0],[\"invalid\",\"invalid\",0],[\"keydown\",\"keyDown\",0],[\"keypress\",\"keyPress\",0],[\"keyup\",\"keyUp\",0],[\"mousedown\",\"mouseDown\",0],[\"mouseup\",\"mouseUp\",0],[\"paste\",\"paste\",0],[\"pause\",\"pause\",0],[\"play\",\"play\",0],[\"pointercancel\",\"pointerCancel\",0],[\"pointerdown\",\"pointerDown\",0],[\"pointerup\",\"pointerUp\",0],[\"ratechange\",\"rateChange\",0],[\"reset\",\"reset\",0],[\"seeked\",\"seeked\",0],[\"submit\",\"submit\",0],[\"touchcancel\",\"touchCancel\",\n0],[\"touchend\",\"touchEnd\",0],[\"touchstart\",\"touchStart\",0],[\"volumechange\",\"volumeChange\",0],[\"drag\",\"drag\",1],[\"dragenter\",\"dragEnter\",1],[\"dragexit\",\"dragExit\",1],[\"dragleave\",\"dragLeave\",1],[\"dragover\",\"dragOver\",1],[\"mousemove\",\"mouseMove\",1],[\"mouseout\",\"mouseOut\",1],[\"mouseover\",\"mouseOver\",1],[\"pointermove\",\"pointerMove\",1],[\"pointerout\",\"pointerOut\",1],[\"pointerover\",\"pointerOver\",1],[\"scroll\",\"scroll\",1],[\"toggle\",\"toggle\",1],[\"touchmove\",\"touchMove\",1],[\"wheel\",\"wheel\",1],[\"abort\",\"abort\",\n2],[Zb,\"animationEnd\",2],[$b,\"animationIteration\",2],[ac,\"animationStart\",2],[\"canplay\",\"canPlay\",2],[\"canplaythrough\",\"canPlayThrough\",2],[\"durationchange\",\"durationChange\",2],[\"emptied\",\"emptied\",2],[\"encrypted\",\"encrypted\",2],[\"ended\",\"ended\",2],[\"error\",\"error\",2],[\"gotpointercapture\",\"gotPointerCapture\",2],[\"load\",\"load\",2],[\"loadeddata\",\"loadedData\",2],[\"loadedmetadata\",\"loadedMetadata\",2],[\"loadstart\",\"loadStart\",2],[\"lostpointercapture\",\"lostPointerCapture\",2],[\"playing\",\"playing\",2],[\"progress\",\n\"progress\",2],[\"seeking\",\"seeking\",2],[\"stalled\",\"stalled\",2],[\"suspend\",\"suspend\",2],[\"timeupdate\",\"timeUpdate\",2],[bc,\"transitionEnd\",2],[\"waiting\",\"waiting\",2]],ud={},vd={},wd=0;for(;wd=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=ce(c)}}\nfunction ee(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?ee(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}function fe(){for(var a=window,b=be();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=be(a.document)}return b}\nfunction ge(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)}var he=\"$\",ie=\"/$\",je=\"$?\",ke=\"$!\",le=null,me=null;function ne(a,b){switch(a){case \"button\":case \"input\":case \"select\":case \"textarea\":return!!b.autoFocus}return!1}\nfunction oe(a,b){return\"textarea\"===a||\"option\"===a||\"noscript\"===a||\"string\"===typeof b.children||\"number\"===typeof b.children||\"object\"===typeof b.dangerouslySetInnerHTML&&null!==b.dangerouslySetInnerHTML&&null!=b.dangerouslySetInnerHTML.__html}var pe=\"function\"===typeof setTimeout?setTimeout:void 0,qe=\"function\"===typeof clearTimeout?clearTimeout:void 0;function re(a){for(;null!=a;a=a.nextSibling){var b=a.nodeType;if(1===b||3===b)break}return a}\nfunction se(a){a=a.previousSibling;for(var b=0;a;){if(8===a.nodeType){var c=a.data;if(c===he||c===ke||c===je){if(0===b)return a;b--}else c===ie&&b++}a=a.previousSibling}return null}var te=Math.random().toString(36).slice(2),ue=\"__reactInternalInstance$\"+te,ve=\"__reactEventHandlers$\"+te,we=\"__reactContainere$\"+te;\nfunction Fc(a){var b=a[ue];if(b)return b;for(var c=a.parentNode;c;){if(b=c[we]||c[ue]){c=b.alternate;if(null!==b.child||null!==c&&null!==c.child)for(a=se(a);null!==a;){if(c=a[ue])return c;a=se(a)}return b}a=c;c=a.parentNode}return null}function Cc(a){a=a[ue]||a[we];return!a||5!==a.tag&&6!==a.tag&&13!==a.tag&&3!==a.tag?null:a}function xe(a){if(5===a.tag||6===a.tag)return a.stateNode;throw Error(u(33));}function ye(a){return a[ve]||null}var ze=null,Ae=null,Be=null;\nfunction Ce(){if(Be)return Be;var a,b=Ae,c=b.length,d,e=\"value\"in ze?ze.value:ze.textContent,f=e.length;for(a=0;a=He),Ke=String.fromCharCode(32),Le={beforeInput:{phasedRegistrationNames:{bubbled:\"onBeforeInput\",captured:\"onBeforeInputCapture\"},dependencies:[\"compositionend\",\"keypress\",\"textInput\",\"paste\"]},compositionEnd:{phasedRegistrationNames:{bubbled:\"onCompositionEnd\",captured:\"onCompositionEndCapture\"},dependencies:\"blur compositionend keydown keypress keyup mousedown\".split(\" \")},compositionStart:{phasedRegistrationNames:{bubbled:\"onCompositionStart\",\ncaptured:\"onCompositionStartCapture\"},dependencies:\"blur compositionstart keydown keypress keyup mousedown\".split(\" \")},compositionUpdate:{phasedRegistrationNames:{bubbled:\"onCompositionUpdate\",captured:\"onCompositionUpdateCapture\"},dependencies:\"blur compositionupdate keydown keypress keyup mousedown\".split(\" \")}},Me=!1;\nfunction Ne(a,b){switch(a){case \"keyup\":return-1!==Fe.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"blur\":return!0;default:return!1}}function Oe(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var Pe=!1;function Qe(a,b){switch(a){case \"compositionend\":return Oe(b);case \"keypress\":if(32!==b.which)return null;Me=!0;return Ke;case \"textInput\":return a=b.data,a===Ke&&Me?null:a;default:return null}}\nfunction Re(a,b){if(Pe)return\"compositionend\"===a||!Ge&&Ne(a,b)?(a=Ce(),Be=Ae=ze=null,Pe=!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=document.documentMode,sf={select:{phasedRegistrationNames:{bubbled:\"onSelect\",captured:\"onSelectCapture\"},dependencies:\"blur contextmenu dragend focus keydown keyup mousedown mouseup selectionchange\".split(\" \")}},tf=null,uf=null,vf=null,wf=!1;\nfunction xf(a,b){var c=b.window===b?b.document:9===b.nodeType?b:b.ownerDocument;if(wf||null==tf||tf!==be(c))return null;c=tf;\"selectionStart\"in c&&ge(c)?c={start:c.selectionStart,end:c.selectionEnd}:(c=(c.ownerDocument&&c.ownerDocument.defaultView||window).getSelection(),c={anchorNode:c.anchorNode,anchorOffset:c.anchorOffset,focusNode:c.focusNode,focusOffset:c.focusOffset});return vf&&qf(vf,c)?null:(vf=c,a=E.getPooled(sf.select,uf,a,b),a.type=\"select\",a.target=tf,Sc(a),a)}\nvar yf={eventTypes:sf,extractEvents:function(a,b,c,d){var e=d.window===d?d.document:9===d.nodeType?d:d.ownerDocument,f;if(!(f=!e)){a:{e=xc(e);f=ja.onSelect;for(var g=0;gBf||(a.current=Af[Bf],Af[Bf]=null,Bf--)}\nfunction I(a,b){Bf++;Af[Bf]=a.current;a.current=b}var Cf={},J={current:Cf},K={current:!1},Df=Cf;function 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 L(a){a=a.childContextTypes;return null!==a&&void 0!==a}\nfunction Ff(a){G(K,a);G(J,a)}function Gf(a){G(K,a);G(J,a)}function Hf(a,b,c){if(J.current!==Cf)throw Error(u(168));I(J,b,a);I(K,c,a)}function 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(u(108,Wa(b)||\"Unknown\",e));return n({},c,{},d)}function Jf(a){var b=a.stateNode;b=b&&b.__reactInternalMemoizedMergedChildContext||Cf;Df=J.current;I(J,b,a);I(K,K.current,a);return!0}\nfunction Kf(a,b,c){var d=a.stateNode;if(!d)throw Error(u(169));c?(b=If(a,b,Df),d.__reactInternalMemoizedMergedChildContext=b,G(K,a),G(J,a),I(J,b,a)):G(K,a);I(K,c,a)}\nvar Lf=q.unstable_runWithPriority,Mf=q.unstable_scheduleCallback,Nf=q.unstable_cancelCallback,Of=q.unstable_shouldYield,Pf=q.unstable_requestPaint,Qf=q.unstable_now,Rf=q.unstable_getCurrentPriorityLevel,Sf=q.unstable_ImmediatePriority,Tf=q.unstable_UserBlockingPriority,Uf=q.unstable_NormalPriority,Vf=q.unstable_LowPriority,Wf=q.unstable_IdlePriority,Xf={},Yf=void 0!==Pf?Pf:function(){},Zf=null,$f=null,ag=!1,bg=Qf(),cg=1E4>bg?Qf:function(){return Qf()-bg};\nfunction dg(){switch(Rf()){case Sf:return 99;case Tf:return 98;case Uf:return 97;case Vf:return 96;case Wf:return 95;default:throw Error(u(332));}}function eg(a){switch(a){case 99:return Sf;case 98:return Tf;case 97:return Uf;case 96:return Vf;case 95:return Wf;default:throw Error(u(332));}}function fg(a,b){a=eg(a);return Lf(a,b)}function gg(a,b,c){a=eg(a);return Mf(a,b,c)}function hg(a){null===Zf?(Zf=[a],$f=Mf(Sf,ig)):Zf.push(a);return Xf}function jg(){if(null!==$f){var a=$f;$f=null;Nf(a)}ig()}\nfunction ig(){if(!ag&&null!==Zf){ag=!0;var a=0;try{var b=Zf;fg(99,function(){for(;a=b&&(wg=!0),a.firstContext=null)}function xg(a,b){if(qg!==a&&!1!==b&&0!==b){if(\"number\"!==typeof b||1073741823===b)qg=a,b=1073741823;b={context:a,observedBits:b,next:null};if(null===pg){if(null===og)throw Error(u(308));pg=b;og.dependencies={expirationTime:0,firstContext:b,responders:null}}else pg=pg.next=b}return a._currentValue}var yg=!1;\nfunction zg(a){return{baseState:a,firstUpdate:null,lastUpdate:null,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}function Ag(a){return{baseState:a.baseState,firstUpdate:a.firstUpdate,lastUpdate:a.lastUpdate,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}\nfunction Bg(a,b){return{expirationTime:a,suspenseConfig:b,tag:0,payload:null,callback:null,next:null,nextEffect:null}}function Cg(a,b){null===a.lastUpdate?a.firstUpdate=a.lastUpdate=b:(a.lastUpdate.next=b,a.lastUpdate=b)}\nfunction Dg(a,b){var c=a.alternate;if(null===c){var d=a.updateQueue;var e=null;null===d&&(d=a.updateQueue=zg(a.memoizedState))}else d=a.updateQueue,e=c.updateQueue,null===d?null===e?(d=a.updateQueue=zg(a.memoizedState),e=c.updateQueue=zg(c.memoizedState)):d=a.updateQueue=Ag(e):null===e&&(e=c.updateQueue=Ag(d));null===e||d===e?Cg(d,b):null===d.lastUpdate||null===e.lastUpdate?(Cg(d,b),Cg(e,b)):(Cg(d,b),e.lastUpdate=b)}\nfunction Eg(a,b){var c=a.updateQueue;c=null===c?a.updateQueue=zg(a.memoizedState):Fg(a,c);null===c.lastCapturedUpdate?c.firstCapturedUpdate=c.lastCapturedUpdate=b:(c.lastCapturedUpdate.next=b,c.lastCapturedUpdate=b)}function Fg(a,b){var c=a.alternate;null!==c&&b===c.updateQueue&&(b=a.updateQueue=Ag(b));return b}\nfunction Gg(a,b,c,d,e,f){switch(c.tag){case 1:return a=c.payload,\"function\"===typeof a?a.call(f,d,e):a;case 3:a.effectTag=a.effectTag&-4097|64;case 0:a=c.payload;e=\"function\"===typeof a?a.call(f,d,e):a;if(null===e||void 0===e)break;return n({},d,e);case 2:yg=!0}return d}\nfunction Hg(a,b,c,d,e){yg=!1;b=Fg(a,b);for(var f=b.baseState,g=null,h=0,k=b.firstUpdate,l=f;null!==k;){var m=k.expirationTime;mx?(A=r,r=null):A=r.sibling;var p=y(e,r,h[x],k);if(null===p){null===r&&(r=A);break}a&&\nr&&null===p.alternate&&b(e,r);g=f(p,g,x);null===m?l=p:m.sibling=p;m=p;r=A}if(x===h.length)return c(e,r),l;if(null===r){for(;xx?(A=r,r=null):A=r.sibling;var z=y(e,r,p.value,k);if(null===z){null===r&&(r=A);break}a&&r&&null===z.alternate&&b(e,r);g=f(z,g,x);null===m?l=z:m.sibling=z;m=z;r=A}if(p.done)return c(e,r),l;if(null===r){for(;!p.done;x++,p=h.next())p=C(e,p.value,k),null!==p&&(g=f(p,g,x),null===m?l=p:m.sibling=p,m=p);return l}for(r=d(e,r);!p.done;x++,p=h.next())p=H(r,e,x,p.value,k),null!==p&&(a&&null!==\np.alternate&&r.delete(null===p.key?x:p.key),g=f(p,g,x),null===m?l=p:m.sibling=p,m=p);a&&r.forEach(function(a){return b(e,a)});return l}return function(a,d,f,h){var k=\"object\"===typeof f&&null!==f&&f.type===Ia&&null===f.key;k&&(f=f.props.children);var l=\"object\"===typeof f&&null!==f;if(l)switch(f.$$typeof){case Ga:a:{l=f.key;for(k=d;null!==k;){if(k.key===l)if(7===k.tag?f.type===Ia:k.elementType===f.type){c(a,k.sibling);d=e(k,f.type===Ia?f.props.children:f.props,h);d.ref=Yg(a,k,f);d.return=a;a=d;break a}else{c(a,\nk);break}else b(a,k);k=k.sibling}f.type===Ia?(d=eh(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=ch(f.type,f.key,f.props,null,a.mode,h),h.ref=Yg(a,d,f),h.return=a,a=h)}return g(a);case Ha: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||[],h);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=dh(f,a.mode,h);d.return=a;a=d}return g(a)}if(\"string\"===\ntypeof f||\"number\"===typeof f)return f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f,h),d.return=a,a=d):(c(a,d),d=bh(f,a.mode,h),d.return=a,a=d),g(a);if(Xg(f))return z(a,d,f,h);if(Ua(f))return ta(a,d,f,h);l&&Zg(a,f);if(\"undefined\"===typeof f&&!k)switch(a.tag){case 1:case 0:throw a=a.type,Error(u(152,a.displayName||a.name||\"Component\"));}return c(a,d)}}var fh=$g(!0),gh=$g(!1),hh={},ih={current:hh},jh={current:hh},kh={current:hh};function lh(a){if(a===hh)throw Error(u(174));return a}\nfunction mh(a,b){I(kh,b,a);I(jh,a,a);I(ih,hh,a);var c=b.nodeType;switch(c){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:Qb(null,\"\");break;default:c=8===c?b.parentNode:b,b=c.namespaceURI||null,c=c.tagName,b=Qb(b,c)}G(ih,a);I(ih,b,a)}function nh(a){G(ih,a);G(jh,a);G(kh,a)}function oh(a){lh(kh.current);var b=lh(ih.current);var c=Qb(b,a.type);b!==c&&(I(jh,a,a),I(ih,c,a))}function ph(a){jh.current===a&&(G(ih,a),G(jh,a))}var M={current:0};\nfunction qh(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===je||c.data===ke))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.effectTag&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}function rh(a,b){return{responder:a,props:b}}\nvar sh=Ea.ReactCurrentDispatcher,N=Ea.ReactCurrentBatchConfig,th=0,uh=null,O=null,vh=null,wh=null,P=null,xh=null,yh=0,zh=null,Ah=0,Bh=!1,Ch=null,Gh=0;function Q(){throw Error(u(321));}function Hh(a,b){if(null===b)return!1;for(var c=0;cyh&&(yh=m,Jg(yh))):(Ig(m,k.suspenseConfig),f=k.eagerReducer===a?k.eagerState:a(f,k.action));g=k;k=k.next}while(null!==k&&k!==d);l||(h=g,e=f);of(f,b.memoizedState)||(wg=!0);b.memoizedState=f;b.baseUpdate=h;b.baseState=e;c.lastRenderedState=f}return[b.memoizedState,c.dispatch]}\nfunction Rh(a){var b=Nh();\"function\"===typeof a&&(a=a());b.memoizedState=b.baseState=a;a=b.queue={last:null,dispatch:null,lastRenderedReducer:Ph,lastRenderedState:a};a=a.dispatch=Sh.bind(null,uh,a);return[b.memoizedState,a]}function Th(a){return Qh(Ph,a)}function Uh(a,b,c,d){a={tag:a,create:b,destroy:c,deps:d,next:null};null===zh?(zh={lastEffect:null},zh.lastEffect=a.next=a):(b=zh.lastEffect,null===b?zh.lastEffect=a.next=a:(c=b.next,b.next=a,a.next=c,zh.lastEffect=a));return a}\nfunction Vh(a,b,c,d){var e=Nh();Ah|=a;e.memoizedState=Uh(b,c,void 0,void 0===d?null:d)}function Wh(a,b,c,d){var e=Oh();d=void 0===d?null:d;var f=void 0;if(null!==O){var g=O.memoizedState;f=g.destroy;if(null!==d&&Hh(d,g.deps)){Uh(0,c,f,d);return}}Ah|=a;e.memoizedState=Uh(b,c,f,d)}function Xh(a,b){return Vh(516,192,a,b)}function Yh(a,b){return Wh(516,192,a,b)}\nfunction Zh(a,b){if(\"function\"===typeof b)return a=a(),b(a),function(){b(null)};if(null!==b&&void 0!==b)return a=a(),b.current=a,function(){b.current=null}}function $h(){}function ai(a,b){Nh().memoizedState=[a,void 0===b?null:b];return a}function bi(a,b){var c=Oh();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&Hh(b,d[1]))return d[0];c.memoizedState=[a,b];return a}\nfunction Sh(a,b,c){if(!(25>Gh))throw Error(u(301));var d=a.alternate;if(a===uh||null!==d&&d===uh)if(Bh=!0,a={expirationTime:th,suspenseConfig:null,action:c,eagerReducer:null,eagerState:null,next:null},null===Ch&&(Ch=new Map),c=Ch.get(b),void 0===c)Ch.set(b,a);else{for(b=c;null!==b.next;)b=b.next;b.next=a}else{var e=Pg(),f=Mg.suspense;e=Qg(e,a,f);f={expirationTime:e,suspenseConfig:f,action:c,eagerReducer:null,eagerState:null,next:null};var g=b.last;if(null===g)f.next=f;else{var h=g.next;null!==h&&\n(f.next=h);g.next=f}b.last=f;if(0===a.expirationTime&&(null===d||0===d.expirationTime)&&(d=b.lastRenderedReducer,null!==d))try{var k=b.lastRenderedState,l=d(k,c);f.eagerReducer=d;f.eagerState=l;if(of(l,k))return}catch(m){}finally{}Rg(a,e)}}\nvar Lh={readContext:xg,useCallback:Q,useContext:Q,useEffect:Q,useImperativeHandle:Q,useLayoutEffect:Q,useMemo:Q,useReducer:Q,useRef:Q,useState:Q,useDebugValue:Q,useResponder:Q,useDeferredValue:Q,useTransition:Q},Jh={readContext:xg,useCallback:ai,useContext:xg,useEffect:Xh,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return Vh(4,36,Zh.bind(null,b,a),c)},useLayoutEffect:function(a,b){return Vh(4,36,a,b)},useMemo:function(a,b){var c=Nh();b=void 0===b?null:b;a=a();c.memoizedState=\n[a,b];return a},useReducer:function(a,b,c){var d=Nh();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a=d.queue={last:null,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};a=a.dispatch=Sh.bind(null,uh,a);return[d.memoizedState,a]},useRef:function(a){var b=Nh();a={current:a};return b.memoizedState=a},useState:Rh,useDebugValue:$h,useResponder:rh,useDeferredValue:function(a,b){var c=Rh(a),d=c[0],e=c[1];Xh(function(){q.unstable_next(function(){var c=N.suspense;N.suspense=void 0===b?null:b;try{e(a)}finally{N.suspense=\nc}})},[a,b]);return d},useTransition:function(a){var b=Rh(!1),c=b[0],d=b[1];return[ai(function(b){d(!0);q.unstable_next(function(){var c=N.suspense;N.suspense=void 0===a?null:a;try{d(!1),b()}finally{N.suspense=c}})},[a,c]),c]}},Kh={readContext:xg,useCallback:bi,useContext:xg,useEffect:Yh,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return Wh(4,36,Zh.bind(null,b,a),c)},useLayoutEffect:function(a,b){return Wh(4,36,a,b)},useMemo:function(a,b){var c=Oh();b=void 0===b?\nnull:b;var d=c.memoizedState;if(null!==d&&null!==b&&Hh(b,d[1]))return d[0];a=a();c.memoizedState=[a,b];return a},useReducer:Qh,useRef:function(){return Oh().memoizedState},useState:Th,useDebugValue:$h,useResponder:rh,useDeferredValue:function(a,b){var c=Th(a),d=c[0],e=c[1];Yh(function(){q.unstable_next(function(){var c=N.suspense;N.suspense=void 0===b?null:b;try{e(a)}finally{N.suspense=c}})},[a,b]);return d},useTransition:function(a){var b=Th(!1),c=b[0],d=b[1];return[bi(function(b){d(!0);q.unstable_next(function(){var c=\nN.suspense;N.suspense=void 0===a?null:a;try{d(!1),b()}finally{N.suspense=c}})},[a,c]),c]}},ci=null,di=null,ei=!1;function fi(a,b){var c=gi(5,null,null,0);c.elementType=\"DELETED\";c.type=\"DELETED\";c.stateNode=b;c.return=a;c.effectTag=8;null!==a.lastEffect?(a.lastEffect.nextEffect=c,a.lastEffect=c):a.firstEffect=a.lastEffect=c}\nfunction hi(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 ii(a){if(ei){var b=di;if(b){var c=b;if(!hi(a,b)){b=re(c.nextSibling);if(!b||!hi(a,b)){a.effectTag=a.effectTag&-1025|2;ei=!1;ci=a;return}fi(ci,c)}ci=a;di=re(b.firstChild)}else a.effectTag=a.effectTag&-1025|2,ei=!1,ci=a}}function ji(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;ci=a}\nfunction ki(a){if(a!==ci)return!1;if(!ei)return ji(a),ei=!0,!1;var b=a.type;if(5!==a.tag||\"head\"!==b&&\"body\"!==b&&!oe(b,a.memoizedProps))for(b=di;b;)fi(a,b),b=re(b.nextSibling);ji(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(u(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if(c===ie){if(0===b){di=re(a.nextSibling);break a}b--}else c!==he&&c!==ke&&c!==je||b++}a=a.nextSibling}di=null}}else di=ci?re(a.stateNode.nextSibling):null;return!0}\nfunction li(){di=ci=null;ei=!1}var mi=Ea.ReactCurrentOwner,wg=!1;function R(a,b,c,d){b.child=null===a?gh(b,null,c,d):fh(b,a.child,c,d)}function ni(a,b,c,d,e){c=c.render;var f=b.ref;vg(b,e);d=Ih(a,b,c,d,f,e);if(null!==a&&!wg)return b.updateQueue=a.updateQueue,b.effectTag&=-517,a.expirationTime<=e&&(a.expirationTime=0),oi(a,b,e);b.effectTag|=1;R(a,b,d,e);return b.child}\nfunction pi(a,b,c,d,e,f){if(null===a){var g=c.type;if(\"function\"===typeof g&&!qi(g)&&void 0===g.defaultProps&&null===c.compare&&void 0===c.defaultProps)return b.tag=15,b.type=g,ri(a,b,g,d,e,f);a=ch(c.type,null,d,null,b.mode,f);a.ref=b.ref;a.return=b;return b.child=a}g=a.child;if(eb)&&Gj.set(a,b)))}}\nfunction Kj(a,b){a.expirationTimea?b:a}\nfunction Z(a){if(0!==a.lastExpiredTime)a.callbackExpirationTime=1073741823,a.callbackPriority=99,a.callbackNode=hg(Lj.bind(null,a));else{var b=Oj(a),c=a.callbackNode;if(0===b)null!==c&&(a.callbackNode=null,a.callbackExpirationTime=0,a.callbackPriority=90);else{var d=Pg();1073741823===b?d=99:1===b||2===b?d=95:(d=10*(1073741821-b)-10*(1073741821-d),d=0>=d?99:250>=d?98:5250>=d?97:95);if(null!==c){var e=a.callbackPriority;if(a.callbackExpirationTime===b&&e>=d)return;c!==Xf&&Nf(c)}a.callbackExpirationTime=\nb;a.callbackPriority=d;b=1073741823===b?hg(Lj.bind(null,a)):gg(d,Qj.bind(null,a),{timeout:10*(1073741821-b)-cg()});a.callbackNode=b}}}\nfunction Qj(a,b){Jj=0;if(b)return b=Pg(),Rj(a,b),Z(a),null;var c=Oj(a);if(0!==c){b=a.callbackNode;if((T&(oj|pj))!==S)throw Error(u(327));Sj();a===U&&c===W||Tj(a,c);if(null!==V){var d=T;T|=oj;var e=Uj(a);do try{Vj();break}catch(h){Wj(a,h)}while(1);rg();T=d;lj.current=e;if(X===rj)throw b=wj,Tj(a,c),Mj(a,c),Z(a),b;if(null===V)switch(e=a.finishedWork=a.current.alternate,a.finishedExpirationTime=c,d=X,U=null,d){case qj:case rj:throw Error(u(345));case sj:Rj(a,2=c){a.lastPingedTime=c;Tj(a,c);break}}f=Oj(a);if(0!==f&&f!==c)break;if(0!==d&&d!==c){a.lastPingedTime=d;break}a.timeoutHandle=pe(Yj.bind(null,a),e);break}Yj(a);break;case uj:Mj(a,c);d=a.lastSuspendedTime;c===d&&(a.nextKnownPendingLevel=Xj(e));if(Bj&&(e=a.lastPingedTime,0===e||e>=c)){a.lastPingedTime=c;Tj(a,c);break}e=Oj(a);if(0!==e&&e!==c)break;if(0!==d&&d!==c){a.lastPingedTime=\nd;break}1073741823!==yj?d=10*(1073741821-yj)-cg():1073741823===xj?d=0:(d=10*(1073741821-xj)-5E3,e=cg(),c=10*(1073741821-c)-e,d=e-d,0>d&&(d=0),d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*kj(d/1960))-d,c=d?d=0:(e=g.busyDelayMs|0,f=cg()-(10*(1073741821-f)-(g.timeoutMs|0||5E3)),d=f<=e?0:e+d-f);if(10 component higher in the tree to provide a loading indicator or placeholder to display.\"+Xa(e))}X!==vj&&(X=sj);f=Ni(f,e);k=d;do{switch(k.tag){case 3:g=f;k.effectTag|=4096;k.expirationTime=b;var x=fj(k,g,b);Eg(k,x);break a;case 1:g=f;var A=k.type,p=k.stateNode;if(0===(k.effectTag&64)&&(\"function\"===typeof A.getDerivedStateFromError||null!==p&&\"function\"===typeof p.componentDidCatch&&\n(null===jj||!jj.has(p)))){k.effectTag|=4096;k.expirationTime=b;var t=ij(k,g,b);Eg(k,t);break a}}k=k.return}while(null!==k)}V=ek(V)}catch(v){b=v;continue}break}while(1)}function Uj(){var a=lj.current;lj.current=Lh;return null===a?Lh:a}function Ig(a,b){aAj&&(Aj=a)}function Zj(){for(;null!==V;)V=fk(V)}function Vj(){for(;null!==V&&!Of();)V=fk(V)}\nfunction fk(a){var b=gk(a.alternate,a,W);a.memoizedProps=a.pendingProps;null===b&&(b=ek(a));mj.current=null;return b}\nfunction ek(a){V=a;do{var b=V.alternate;a=V.return;if(0===(V.effectTag&2048)){a:{var c=b;b=V;var d=W;var e=b.pendingProps;switch(b.tag){case 2:break;case 16:break;case 15:case 0:break;case 1:L(b.type)&&Ff(b);break;case 3:nh(b);Gf(b);e=b.stateNode;e.pendingContext&&(e.context=e.pendingContext,e.pendingContext=null);(null===c||null===c.child)&&ki(b)&&Ci(b);Ii(b);break;case 5:ph(b);d=lh(kh.current);var f=b.type;if(null!==c&&null!=b.stateNode)Ji(c,b,f,e,d),c.ref!==b.ref&&(b.effectTag|=128);else if(e){var g=\nlh(ih.current);if(ki(b)){e=b;var h=e.stateNode;c=e.type;var k=e.memoizedProps,l=d;h[ue]=e;h[ve]=k;f=void 0;d=h;switch(c){case \"iframe\":case \"object\":case \"embed\":F(\"load\",d);break;case \"video\":case \"audio\":for(h=0;h\\x3c/script>\",h=k.removeChild(k.firstChild)):\"string\"===typeof k.is?h=h.createElement(l,{is:k.is}):(h=h.createElement(l),\"select\"===l&&(l=h,k.multiple?l.multiple=!0:k.size&&(l.size=k.size))):h=h.createElementNS(g,l);k=h;k[ue]=c;k[ve]=e;Hi(k,b,!1,!1);b.stateNode=k;l=f;c=e;var m=d,C=Zd(l,c);switch(l){case \"iframe\":case \"object\":case \"embed\":F(\"load\",\nk);d=c;break;case \"video\":case \"audio\":for(d=0;de.tailExpiration&&1f&&(f=c),k>f&&(f=k),d=d.sibling;e.childExpirationTime=f}if(null!==b)return b;null!==a&&0===(a.effectTag&2048)&&(null===a.firstEffect&&(a.firstEffect=V.firstEffect),null!==V.lastEffect&&(null!==a.lastEffect&&(a.lastEffect.nextEffect=\nV.firstEffect),a.lastEffect=V.lastEffect),1a?b:a}function Yj(a){var b=dg();fg(99,ik.bind(null,a,b));return null}\nfunction ik(a,b){do Sj();while(null!==Ej);if((T&(oj|pj))!==S)throw Error(u(327));var c=a.finishedWork,d=a.finishedExpirationTime;if(null===c)return null;a.finishedWork=null;a.finishedExpirationTime=0;if(c===a.current)throw Error(u(177));a.callbackNode=null;a.callbackExpirationTime=0;a.callbackPriority=90;a.nextKnownPendingLevel=0;var e=Xj(c);a.firstPendingTime=e;d<=a.lastSuspendedTime?a.firstSuspendedTime=a.lastSuspendedTime=a.nextKnownPendingLevel=0:d<=a.firstSuspendedTime&&(a.firstSuspendedTime=\nd-1);d<=a.lastPingedTime&&(a.lastPingedTime=0);d<=a.lastExpiredTime&&(a.lastExpiredTime=0);a===U&&(V=U=null,W=0);1h&&(l=h,h=g,g=l),l=de(p,g),m=de(p,h),l&&m&&(1!==v.rangeCount||v.anchorNode!==l.node||v.anchorOffset!==l.offset||v.focusNode!==m.node||v.focusOffset!==m.offset)&&(t=t.createRange(),t.setStart(l.node,l.offset),v.removeAllRanges(),g>h?(v.addRange(t),v.extend(m.node,m.offset)):(t.setEnd(m.node,m.offset),v.addRange(t))))));t=[];for(v=p;v=v.parentNode;)1===v.nodeType&&t.push({element:v,left:v.scrollLeft,top:v.scrollTop});\n\"function\"===typeof p.focus&&p.focus();for(p=0;p=c)return yi(a,b,c);I(M,M.current&\n1,b);b=oi(a,b,c);return null!==b?b.sibling:null}I(M,M.current&1,b);break;case 19:d=b.childExpirationTime>=c;if(0!==(a.effectTag&64)){if(d)return Bi(a,b,c);b.effectTag|=64}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null);I(M,M.current,b);if(!d)return null}return oi(a,b,c)}wg=!1}}else wg=!1;b.expirationTime=0;switch(b.tag){case 2:d=b.type;null!==a&&(a.alternate=null,b.alternate=null,b.effectTag|=2);a=b.pendingProps;e=Ef(b,J.current);vg(b,c);e=Ih(null,b,d,a,e,c);b.effectTag|=1;if(\"object\"===\ntypeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof){b.tag=1;Mh();if(L(d)){var f=!0;Jf(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;var g=d.getDerivedStateFromProps;\"function\"===typeof g&&Og(b,d,g,a);e.updater=Sg;b.stateNode=e;e._reactInternalFiber=b;Wg(b,d,a,c);b=vi(null,b,d,!0,f,c)}else b.tag=0,R(null,b,e,c),b=b.child;return b;case 16:e=b.elementType;null!==a&&(a.alternate=null,b.alternate=null,b.effectTag|=2);a=b.pendingProps;Va(e);if(1!==e._status)throw e._result;\ne=e._result;b.type=e;f=b.tag=nk(e);a=mg(e,a);switch(f){case 0:b=si(null,b,e,a,c);break;case 1:b=ui(null,b,e,a,c);break;case 11:b=ni(null,b,e,a,c);break;case 14:b=pi(null,b,e,mg(e.type,a),d,c);break;default:throw Error(u(306,e,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:mg(d,e),si(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:mg(d,e),ui(a,b,d,e,c);case 3:wi(b);d=b.updateQueue;if(null===d)throw Error(u(282));e=b.memoizedState;e=null!==e?e.element:\nnull;Hg(b,d,b.pendingProps,null,c);d=b.memoizedState.element;if(d===e)li(),b=oi(a,b,c);else{if(e=b.stateNode.hydrate)di=re(b.stateNode.containerInfo.firstChild),ci=b,e=ei=!0;if(e)for(c=gh(b,null,d,c),b.child=c;c;)c.effectTag=c.effectTag&-3|1024,c=c.sibling;else R(a,b,d,c),li();b=b.child}return b;case 5:return oh(b),null===a&&ii(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,oe(d,e)?g=null:null!==f&&oe(d,f)&&(b.effectTag|=16),ti(a,b),b.mode&4&&1!==c&&e.hidden?(b.expirationTime=\nb.childExpirationTime=1,b=null):(R(a,b,g,c),b=b.child),b;case 6:return null===a&&ii(b),null;case 13:return yi(a,b,c);case 4:return mh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=fh(b,null,d,c):R(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:mg(d,e),ni(a,b,d,e,c);case 7:return R(a,b,b.pendingProps,c),b.child;case 8:return R(a,b,b.pendingProps.children,c),b.child;case 12:return R(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;\ne=b.pendingProps;g=b.memoizedProps;f=e.value;sg(b,f);if(null!==g){var h=g.value;f=of(h,f)?0:(\"function\"===typeof d._calculateChangedBits?d._calculateChangedBits(h,f):1073741823)|0;if(0===f){if(g.children===e.children&&!K.current){b=oi(a,b,c);break a}}else for(h=b.child,null!==h&&(h.return=b);null!==h;){var k=h.dependencies;if(null!==k){g=h.child;for(var l=k.firstContext;null!==l;){if(l.context===d&&0!==(l.observedBits&f)){1===h.tag&&(l=Bg(c,null),l.tag=2,Dg(h,l));h.expirationTime=b&&a<=b}function Mj(a,b){var c=a.firstSuspendedTime,d=a.lastSuspendedTime;cb||0===c)a.lastSuspendedTime=b;b<=a.lastPingedTime&&(a.lastPingedTime=0);b<=a.lastExpiredTime&&(a.lastExpiredTime=0)}\nfunction Nj(a,b){b>a.firstPendingTime&&(a.firstPendingTime=b);var c=a.firstSuspendedTime;0!==c&&(b>=c?a.firstSuspendedTime=a.lastSuspendedTime=a.nextKnownPendingLevel=0:b>=a.lastSuspendedTime&&(a.lastSuspendedTime=b+1),b>a.nextKnownPendingLevel&&(a.nextKnownPendingLevel=b))}function Rj(a,b){var c=a.lastExpiredTime;if(0===c||c>b)a.lastExpiredTime=b}\nfunction rk(a,b,c,d){var e=b.current,f=Pg(),g=Mg.suspense;f=Qg(f,e,g);a:if(c){c=c._reactInternalFiber;b:{if(ec(c)!==c||1!==c.tag)throw Error(u(170));var h=c;do{switch(h.tag){case 3:h=h.stateNode.context;break b;case 1:if(L(h.type)){h=h.stateNode.__reactInternalMemoizedMergedChildContext;break b}}h=h.return}while(null!==h);throw Error(u(171));}if(1===c.tag){var k=c.type;if(L(k)){c=If(c,k,h);break a}}c=h}else c=Cf;null===b.context?b.context=c:b.pendingContext=c;b=Bg(f,g);b.payload={element:a};d=void 0===\nd?null:d;null!==d&&(b.callback=d);Dg(e,b);Rg(e,f);return f}function sk(a){a=a.current;if(!a.child)return null;switch(a.child.tag){case 5:return a.child.stateNode;default:return a.child.stateNode}}function tk(a,b){a=a.memoizedState;null!==a&&null!==a.dehydrated&&a.retryTime=G};l=function(){};exports.unstable_forceFrameRate=function(a){0>a||125K(n,c))void 0!==r&&0>K(r,n)?(a[d]=r,a[v]=c,d=v):(a[d]=n,a[m]=c,d=m);else if(void 0!==r&&0>K(r,c))a[d]=r,a[v]=c,d=v;else break a}}return b}return null}function K(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}var N=[],O=[],P=1,Q=null,R=3,S=!1,T=!1,U=!1;\nfunction V(a){for(var b=L(O);null!==b;){if(null===b.callback)M(O);else if(b.startTime<=a)M(O),b.sortIndex=b.expirationTime,J(N,b);else break;b=L(O)}}function W(a){U=!1;V(a);if(!T)if(null!==L(N))T=!0,f(X);else{var b=L(O);null!==b&&g(W,b.startTime-a)}}\nfunction X(a,b){T=!1;U&&(U=!1,h());S=!0;var c=R;try{V(b);for(Q=L(N);null!==Q&&(!(Q.expirationTime>b)||a&&!k());){var d=Q.callback;if(null!==d){Q.callback=null;R=Q.priorityLevel;var e=d(Q.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?Q.callback=e:Q===L(N)&&M(N);V(b)}else M(N);Q=L(N)}if(null!==Q)var m=!0;else{var n=L(O);null!==n&&g(W,n.startTime-b);m=!1}return m}finally{Q=null,R=c,S=!1}}\nfunction Y(a){switch(a){case 1:return-1;case 2:return 250;case 5:return 1073741823;case 4:return 1E4;default:return 5E3}}var Z=l;exports.unstable_ImmediatePriority=1;exports.unstable_UserBlockingPriority=2;exports.unstable_NormalPriority=3;exports.unstable_IdlePriority=5;exports.unstable_LowPriority=4;exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=R;R=a;try{return b()}finally{R=c}};\nexports.unstable_next=function(a){switch(R){case 1:case 2:case 3:var b=3;break;default:b=R}var c=R;R=b;try{return a()}finally{R=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();if(\"object\"===typeof c&&null!==c){var e=c.delay;e=\"number\"===typeof e&&0d?(a.sortIndex=e,J(O,a),null===L(N)&&a===L(O)&&(U?h():U=!0,g(W,e-d))):(a.sortIndex=c,J(N,a),T||S||(T=!0,f(X)));return a};exports.unstable_cancelCallback=function(a){a.callback=null};\nexports.unstable_wrapCallback=function(a){var b=R;return function(){var c=R;R=b;try{return a.apply(this,arguments)}finally{R=c}}};exports.unstable_getCurrentPriorityLevel=function(){return R};exports.unstable_shouldYield=function(){var a=exports.unstable_now();V(a);var b=L(N);return b!==Q&&null!==Q&&null!==b&&null!==b.callback&&b.startTime<=a&&b.expirationTime result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\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\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n Gp[toStringTagSymbol] = \"Generator\";\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(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 &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(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 (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","function _defineProperty(obj, key, value) {\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\n return obj;\n}\n\nmodule.exports = _defineProperty;","var arrayWithoutHoles = require(\"./arrayWithoutHoles\");\n\nvar iterableToArray = require(\"./iterableToArray\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray\");\n\nvar nonIterableSpread = require(\"./nonIterableSpread\");\n\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}\n\nmodule.exports = _toConsumableArray;","var arrayLikeToArray = require(\"./arrayLikeToArray\");\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}\n\nmodule.exports = _arrayWithoutHoles;","function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n\nmodule.exports = _iterableToArray;","var arrayLikeToArray = require(\"./arrayLikeToArray\");\n\nfunction _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(n);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}\n\nmodule.exports = _unsupportedIterableToArray;","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}\n\nmodule.exports = _nonIterableSpread;",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./x64-core\"), require(\"./lib-typedarrays\"), require(\"./enc-utf16\"), require(\"./enc-base64\"), require(\"./md5\"), require(\"./sha1\"), require(\"./sha256\"), require(\"./sha224\"), require(\"./sha512\"), require(\"./sha384\"), require(\"./sha3\"), require(\"./ripemd160\"), require(\"./hmac\"), require(\"./pbkdf2\"), require(\"./evpkdf\"), require(\"./cipher-core\"), require(\"./mode-cfb\"), require(\"./mode-ctr\"), require(\"./mode-ctr-gladman\"), require(\"./mode-ofb\"), require(\"./mode-ecb\"), require(\"./pad-ansix923\"), require(\"./pad-iso10126\"), require(\"./pad-iso97971\"), require(\"./pad-zeropadding\"), require(\"./pad-nopadding\"), require(\"./format-hex\"), require(\"./aes\"), require(\"./tripledes\"), require(\"./rc4\"), require(\"./rabbit\"), require(\"./rabbit-legacy\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./x64-core\", \"./lib-typedarrays\", \"./enc-utf16\", \"./enc-base64\", \"./md5\", \"./sha1\", \"./sha256\", \"./sha224\", \"./sha512\", \"./sha384\", \"./sha3\", \"./ripemd160\", \"./hmac\", \"./pbkdf2\", \"./evpkdf\", \"./cipher-core\", \"./mode-cfb\", \"./mode-ctr\", \"./mode-ctr-gladman\", \"./mode-ofb\", \"./mode-ecb\", \"./pad-ansix923\", \"./pad-iso10126\", \"./pad-iso97971\", \"./pad-zeropadding\", \"./pad-nopadding\", \"./format-hex\", \"./aes\", \"./tripledes\", \"./rc4\", \"./rabbit\", \"./rabbit-legacy\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\troot.CryptoJS = factory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\treturn CryptoJS;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Check if typed arrays are supported\n\t if (typeof ArrayBuffer != 'function') {\n\t return;\n\t }\n\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\n\t // Reference original init\n\t var superInit = WordArray.init;\n\n\t // Augment WordArray.init to handle typed arrays\n\t var subInit = WordArray.init = function (typedArray) {\n\t // Convert buffers to uint8\n\t if (typedArray instanceof ArrayBuffer) {\n\t typedArray = new Uint8Array(typedArray);\n\t }\n\n\t // Convert other array views to uint8\n\t if (\n\t typedArray instanceof Int8Array ||\n\t (typeof Uint8ClampedArray !== \"undefined\" && typedArray instanceof Uint8ClampedArray) ||\n\t typedArray instanceof Int16Array ||\n\t typedArray instanceof Uint16Array ||\n\t typedArray instanceof Int32Array ||\n\t typedArray instanceof Uint32Array ||\n\t typedArray instanceof Float32Array ||\n\t typedArray instanceof Float64Array\n\t ) {\n\t typedArray = new Uint8Array(typedArray.buffer, typedArray.byteOffset, typedArray.byteLength);\n\t }\n\n\t // Handle Uint8Array\n\t if (typedArray instanceof Uint8Array) {\n\t // Shortcut\n\t var typedArrayByteLength = typedArray.byteLength;\n\n\t // Extract bytes\n\t var words = [];\n\t for (var i = 0; i < typedArrayByteLength; i++) {\n\t words[i >>> 2] |= typedArray[i] << (24 - (i % 4) * 8);\n\t }\n\n\t // Initialize this word array\n\t superInit.call(this, words, typedArrayByteLength);\n\t } else {\n\t // Else call normal init\n\t superInit.apply(this, arguments);\n\t }\n\t };\n\n\t subInit.prototype = WordArray;\n\t}());\n\n\n\treturn CryptoJS.lib.WordArray;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var C_enc = C.enc;\n\n\t /**\n\t * UTF-16 BE encoding strategy.\n\t */\n\t var Utf16BE = C_enc.Utf16 = C_enc.Utf16BE = {\n\t /**\n\t * Converts a word array to a UTF-16 BE string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The UTF-16 BE string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var utf16String = CryptoJS.enc.Utf16.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\n\t // Convert\n\t var utf16Chars = [];\n\t for (var i = 0; i < sigBytes; i += 2) {\n\t var codePoint = (words[i >>> 2] >>> (16 - (i % 4) * 8)) & 0xffff;\n\t utf16Chars.push(String.fromCharCode(codePoint));\n\t }\n\n\t return utf16Chars.join('');\n\t },\n\n\t /**\n\t * Converts a UTF-16 BE string to a word array.\n\t *\n\t * @param {string} utf16Str The UTF-16 BE string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Utf16.parse(utf16String);\n\t */\n\t parse: function (utf16Str) {\n\t // Shortcut\n\t var utf16StrLength = utf16Str.length;\n\n\t // Convert\n\t var words = [];\n\t for (var i = 0; i < utf16StrLength; i++) {\n\t words[i >>> 1] |= utf16Str.charCodeAt(i) << (16 - (i % 2) * 16);\n\t }\n\n\t return WordArray.create(words, utf16StrLength * 2);\n\t }\n\t };\n\n\t /**\n\t * UTF-16 LE encoding strategy.\n\t */\n\t C_enc.Utf16LE = {\n\t /**\n\t * Converts a word array to a UTF-16 LE string.\n\t *\n\t * @param {WordArray} wordArray The word array.\n\t *\n\t * @return {string} The UTF-16 LE string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var utf16Str = CryptoJS.enc.Utf16LE.stringify(wordArray);\n\t */\n\t stringify: function (wordArray) {\n\t // Shortcuts\n\t var words = wordArray.words;\n\t var sigBytes = wordArray.sigBytes;\n\n\t // Convert\n\t var utf16Chars = [];\n\t for (var i = 0; i < sigBytes; i += 2) {\n\t var codePoint = swapEndian((words[i >>> 2] >>> (16 - (i % 4) * 8)) & 0xffff);\n\t utf16Chars.push(String.fromCharCode(codePoint));\n\t }\n\n\t return utf16Chars.join('');\n\t },\n\n\t /**\n\t * Converts a UTF-16 LE string to a word array.\n\t *\n\t * @param {string} utf16Str The UTF-16 LE string.\n\t *\n\t * @return {WordArray} The word array.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var wordArray = CryptoJS.enc.Utf16LE.parse(utf16Str);\n\t */\n\t parse: function (utf16Str) {\n\t // Shortcut\n\t var utf16StrLength = utf16Str.length;\n\n\t // Convert\n\t var words = [];\n\t for (var i = 0; i < utf16StrLength; i++) {\n\t words[i >>> 1] |= swapEndian(utf16Str.charCodeAt(i) << (16 - (i % 2) * 16));\n\t }\n\n\t return WordArray.create(words, utf16StrLength * 2);\n\t }\n\t };\n\n\t function swapEndian(word) {\n\t return ((word << 8) & 0xff00ff00) | ((word >>> 8) & 0x00ff00ff);\n\t }\n\t}());\n\n\n\treturn CryptoJS.enc.Utf16;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./sha256\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./sha256\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var C_algo = C.algo;\n\t var SHA256 = C_algo.SHA256;\n\n\t /**\n\t * SHA-224 hash algorithm.\n\t */\n\t var SHA224 = C_algo.SHA224 = SHA256.extend({\n\t _doReset: function () {\n\t this._hash = new WordArray.init([\n\t 0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939,\n\t 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4\n\t ]);\n\t },\n\n\t _doFinalize: function () {\n\t var hash = SHA256._doFinalize.call(this);\n\n\t hash.sigBytes -= 4;\n\n\t return hash;\n\t }\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA224('message');\n\t * var hash = CryptoJS.SHA224(wordArray);\n\t */\n\t C.SHA224 = SHA256._createHelper(SHA224);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA224(message, key);\n\t */\n\t C.HmacSHA224 = SHA256._createHmacHelper(SHA224);\n\t}());\n\n\n\treturn CryptoJS.SHA224;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./x64-core\"), require(\"./sha512\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./x64-core\", \"./sha512\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_x64 = C.x64;\n\t var X64Word = C_x64.Word;\n\t var X64WordArray = C_x64.WordArray;\n\t var C_algo = C.algo;\n\t var SHA512 = C_algo.SHA512;\n\n\t /**\n\t * SHA-384 hash algorithm.\n\t */\n\t var SHA384 = C_algo.SHA384 = SHA512.extend({\n\t _doReset: function () {\n\t this._hash = new X64WordArray.init([\n\t new X64Word.init(0xcbbb9d5d, 0xc1059ed8), new X64Word.init(0x629a292a, 0x367cd507),\n\t new X64Word.init(0x9159015a, 0x3070dd17), new X64Word.init(0x152fecd8, 0xf70e5939),\n\t new X64Word.init(0x67332667, 0xffc00b31), new X64Word.init(0x8eb44a87, 0x68581511),\n\t new X64Word.init(0xdb0c2e0d, 0x64f98fa7), new X64Word.init(0x47b5481d, 0xbefa4fa4)\n\t ]);\n\t },\n\n\t _doFinalize: function () {\n\t var hash = SHA512._doFinalize.call(this);\n\n\t hash.sigBytes -= 16;\n\n\t return hash;\n\t }\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA384('message');\n\t * var hash = CryptoJS.SHA384(wordArray);\n\t */\n\t C.SHA384 = SHA512._createHelper(SHA384);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA384(message, key);\n\t */\n\t C.HmacSHA384 = SHA512._createHmacHelper(SHA384);\n\t}());\n\n\n\treturn CryptoJS.SHA384;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./x64-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./x64-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function (Math) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var Hasher = C_lib.Hasher;\n\t var C_x64 = C.x64;\n\t var X64Word = C_x64.Word;\n\t var C_algo = C.algo;\n\n\t // Constants tables\n\t var RHO_OFFSETS = [];\n\t var PI_INDEXES = [];\n\t var ROUND_CONSTANTS = [];\n\n\t // Compute Constants\n\t (function () {\n\t // Compute rho offset constants\n\t var x = 1, y = 0;\n\t for (var t = 0; t < 24; t++) {\n\t RHO_OFFSETS[x + 5 * y] = ((t + 1) * (t + 2) / 2) % 64;\n\n\t var newX = y % 5;\n\t var newY = (2 * x + 3 * y) % 5;\n\t x = newX;\n\t y = newY;\n\t }\n\n\t // Compute pi index constants\n\t for (var x = 0; x < 5; x++) {\n\t for (var y = 0; y < 5; y++) {\n\t PI_INDEXES[x + 5 * y] = y + ((2 * x + 3 * y) % 5) * 5;\n\t }\n\t }\n\n\t // Compute round constants\n\t var LFSR = 0x01;\n\t for (var i = 0; i < 24; i++) {\n\t var roundConstantMsw = 0;\n\t var roundConstantLsw = 0;\n\n\t for (var j = 0; j < 7; j++) {\n\t if (LFSR & 0x01) {\n\t var bitPosition = (1 << j) - 1;\n\t if (bitPosition < 32) {\n\t roundConstantLsw ^= 1 << bitPosition;\n\t } else /* if (bitPosition >= 32) */ {\n\t roundConstantMsw ^= 1 << (bitPosition - 32);\n\t }\n\t }\n\n\t // Compute next LFSR\n\t if (LFSR & 0x80) {\n\t // Primitive polynomial over GF(2): x^8 + x^6 + x^5 + x^4 + 1\n\t LFSR = (LFSR << 1) ^ 0x71;\n\t } else {\n\t LFSR <<= 1;\n\t }\n\t }\n\n\t ROUND_CONSTANTS[i] = X64Word.create(roundConstantMsw, roundConstantLsw);\n\t }\n\t }());\n\n\t // Reusable objects for temporary values\n\t var T = [];\n\t (function () {\n\t for (var i = 0; i < 25; i++) {\n\t T[i] = X64Word.create();\n\t }\n\t }());\n\n\t /**\n\t * SHA-3 hash algorithm.\n\t */\n\t var SHA3 = C_algo.SHA3 = Hasher.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {number} outputLength\n\t * The desired number of bits in the output hash.\n\t * Only values permitted are: 224, 256, 384, 512.\n\t * Default: 512\n\t */\n\t cfg: Hasher.cfg.extend({\n\t outputLength: 512\n\t }),\n\n\t _doReset: function () {\n\t var state = this._state = []\n\t for (var i = 0; i < 25; i++) {\n\t state[i] = new X64Word.init();\n\t }\n\n\t this.blockSize = (1600 - 2 * this.cfg.outputLength) / 32;\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcuts\n\t var state = this._state;\n\t var nBlockSizeLanes = this.blockSize / 2;\n\n\t // Absorb\n\t for (var i = 0; i < nBlockSizeLanes; i++) {\n\t // Shortcuts\n\t var M2i = M[offset + 2 * i];\n\t var M2i1 = M[offset + 2 * i + 1];\n\n\t // Swap endian\n\t M2i = (\n\t (((M2i << 8) | (M2i >>> 24)) & 0x00ff00ff) |\n\t (((M2i << 24) | (M2i >>> 8)) & 0xff00ff00)\n\t );\n\t M2i1 = (\n\t (((M2i1 << 8) | (M2i1 >>> 24)) & 0x00ff00ff) |\n\t (((M2i1 << 24) | (M2i1 >>> 8)) & 0xff00ff00)\n\t );\n\n\t // Absorb message into state\n\t var lane = state[i];\n\t lane.high ^= M2i1;\n\t lane.low ^= M2i;\n\t }\n\n\t // Rounds\n\t for (var round = 0; round < 24; round++) {\n\t // Theta\n\t for (var x = 0; x < 5; x++) {\n\t // Mix column lanes\n\t var tMsw = 0, tLsw = 0;\n\t for (var y = 0; y < 5; y++) {\n\t var lane = state[x + 5 * y];\n\t tMsw ^= lane.high;\n\t tLsw ^= lane.low;\n\t }\n\n\t // Temporary values\n\t var Tx = T[x];\n\t Tx.high = tMsw;\n\t Tx.low = tLsw;\n\t }\n\t for (var x = 0; x < 5; x++) {\n\t // Shortcuts\n\t var Tx4 = T[(x + 4) % 5];\n\t var Tx1 = T[(x + 1) % 5];\n\t var Tx1Msw = Tx1.high;\n\t var Tx1Lsw = Tx1.low;\n\n\t // Mix surrounding columns\n\t var tMsw = Tx4.high ^ ((Tx1Msw << 1) | (Tx1Lsw >>> 31));\n\t var tLsw = Tx4.low ^ ((Tx1Lsw << 1) | (Tx1Msw >>> 31));\n\t for (var y = 0; y < 5; y++) {\n\t var lane = state[x + 5 * y];\n\t lane.high ^= tMsw;\n\t lane.low ^= tLsw;\n\t }\n\t }\n\n\t // Rho Pi\n\t for (var laneIndex = 1; laneIndex < 25; laneIndex++) {\n\t // Shortcuts\n\t var lane = state[laneIndex];\n\t var laneMsw = lane.high;\n\t var laneLsw = lane.low;\n\t var rhoOffset = RHO_OFFSETS[laneIndex];\n\n\t // Rotate lanes\n\t if (rhoOffset < 32) {\n\t var tMsw = (laneMsw << rhoOffset) | (laneLsw >>> (32 - rhoOffset));\n\t var tLsw = (laneLsw << rhoOffset) | (laneMsw >>> (32 - rhoOffset));\n\t } else /* if (rhoOffset >= 32) */ {\n\t var tMsw = (laneLsw << (rhoOffset - 32)) | (laneMsw >>> (64 - rhoOffset));\n\t var tLsw = (laneMsw << (rhoOffset - 32)) | (laneLsw >>> (64 - rhoOffset));\n\t }\n\n\t // Transpose lanes\n\t var TPiLane = T[PI_INDEXES[laneIndex]];\n\t TPiLane.high = tMsw;\n\t TPiLane.low = tLsw;\n\t }\n\n\t // Rho pi at x = y = 0\n\t var T0 = T[0];\n\t var state0 = state[0];\n\t T0.high = state0.high;\n\t T0.low = state0.low;\n\n\t // Chi\n\t for (var x = 0; x < 5; x++) {\n\t for (var y = 0; y < 5; y++) {\n\t // Shortcuts\n\t var laneIndex = x + 5 * y;\n\t var lane = state[laneIndex];\n\t var TLane = T[laneIndex];\n\t var Tx1Lane = T[((x + 1) % 5) + 5 * y];\n\t var Tx2Lane = T[((x + 2) % 5) + 5 * y];\n\n\t // Mix rows\n\t lane.high = TLane.high ^ (~Tx1Lane.high & Tx2Lane.high);\n\t lane.low = TLane.low ^ (~Tx1Lane.low & Tx2Lane.low);\n\t }\n\t }\n\n\t // Iota\n\t var lane = state[0];\n\t var roundConstant = ROUND_CONSTANTS[round];\n\t lane.high ^= roundConstant.high;\n\t lane.low ^= roundConstant.low;;\n\t }\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\t var blockSizeBits = this.blockSize * 32;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x1 << (24 - nBitsLeft % 32);\n\t dataWords[((Math.ceil((nBitsLeft + 1) / blockSizeBits) * blockSizeBits) >>> 5) - 1] |= 0x80;\n\t data.sigBytes = dataWords.length * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Shortcuts\n\t var state = this._state;\n\t var outputLengthBytes = this.cfg.outputLength / 8;\n\t var outputLengthLanes = outputLengthBytes / 8;\n\n\t // Squeeze\n\t var hashWords = [];\n\t for (var i = 0; i < outputLengthLanes; i++) {\n\t // Shortcuts\n\t var lane = state[i];\n\t var laneMsw = lane.high;\n\t var laneLsw = lane.low;\n\n\t // Swap endian\n\t laneMsw = (\n\t (((laneMsw << 8) | (laneMsw >>> 24)) & 0x00ff00ff) |\n\t (((laneMsw << 24) | (laneMsw >>> 8)) & 0xff00ff00)\n\t );\n\t laneLsw = (\n\t (((laneLsw << 8) | (laneLsw >>> 24)) & 0x00ff00ff) |\n\t (((laneLsw << 24) | (laneLsw >>> 8)) & 0xff00ff00)\n\t );\n\n\t // Squeeze state to retrieve hash\n\t hashWords.push(laneLsw);\n\t hashWords.push(laneMsw);\n\t }\n\n\t // Return final computed hash\n\t return new WordArray.init(hashWords, outputLengthBytes);\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\n\t var state = clone._state = this._state.slice(0);\n\t for (var i = 0; i < 25; i++) {\n\t state[i] = state[i].clone();\n\t }\n\n\t return clone;\n\t }\n\t });\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.SHA3('message');\n\t * var hash = CryptoJS.SHA3(wordArray);\n\t */\n\t C.SHA3 = Hasher._createHelper(SHA3);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacSHA3(message, key);\n\t */\n\t C.HmacSHA3 = Hasher._createHmacHelper(SHA3);\n\t}(Math));\n\n\n\treturn CryptoJS.SHA3;\n\n}));",";(function (root, factory) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/** @preserve\n\t(c) 2012 by Cédric Mesnil. All rights reserved.\n\n\tRedistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:\n\n\t - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.\n\t - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.\n\n\tTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\t*/\n\n\t(function (Math) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var Hasher = C_lib.Hasher;\n\t var C_algo = C.algo;\n\n\t // Constants table\n\t var _zl = WordArray.create([\n\t 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n\t 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,\n\t 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,\n\t 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,\n\t 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13]);\n\t var _zr = WordArray.create([\n\t 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,\n\t 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,\n\t 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,\n\t 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,\n\t 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11]);\n\t var _sl = WordArray.create([\n\t 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,\n\t 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,\n\t 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,\n\t 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,\n\t 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6 ]);\n\t var _sr = WordArray.create([\n\t 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,\n\t 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,\n\t 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,\n\t 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,\n\t 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11 ]);\n\n\t var _hl = WordArray.create([ 0x00000000, 0x5A827999, 0x6ED9EBA1, 0x8F1BBCDC, 0xA953FD4E]);\n\t var _hr = WordArray.create([ 0x50A28BE6, 0x5C4DD124, 0x6D703EF3, 0x7A6D76E9, 0x00000000]);\n\n\t /**\n\t * RIPEMD160 hash algorithm.\n\t */\n\t var RIPEMD160 = C_algo.RIPEMD160 = Hasher.extend({\n\t _doReset: function () {\n\t this._hash = WordArray.create([0x67452301, 0xEFCDAB89, 0x98BADCFE, 0x10325476, 0xC3D2E1F0]);\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\n\t // Swap endian\n\t for (var i = 0; i < 16; i++) {\n\t // Shortcuts\n\t var offset_i = offset + i;\n\t var M_offset_i = M[offset_i];\n\n\t // Swap\n\t M[offset_i] = (\n\t (((M_offset_i << 8) | (M_offset_i >>> 24)) & 0x00ff00ff) |\n\t (((M_offset_i << 24) | (M_offset_i >>> 8)) & 0xff00ff00)\n\t );\n\t }\n\t // Shortcut\n\t var H = this._hash.words;\n\t var hl = _hl.words;\n\t var hr = _hr.words;\n\t var zl = _zl.words;\n\t var zr = _zr.words;\n\t var sl = _sl.words;\n\t var sr = _sr.words;\n\n\t // Working variables\n\t var al, bl, cl, dl, el;\n\t var ar, br, cr, dr, er;\n\n\t ar = al = H[0];\n\t br = bl = H[1];\n\t cr = cl = H[2];\n\t dr = dl = H[3];\n\t er = el = H[4];\n\t // Computation\n\t var t;\n\t for (var i = 0; i < 80; i += 1) {\n\t t = (al + M[offset+zl[i]])|0;\n\t if (i<16){\n\t\t t += f1(bl,cl,dl) + hl[0];\n\t } else if (i<32) {\n\t\t t += f2(bl,cl,dl) + hl[1];\n\t } else if (i<48) {\n\t\t t += f3(bl,cl,dl) + hl[2];\n\t } else if (i<64) {\n\t\t t += f4(bl,cl,dl) + hl[3];\n\t } else {// if (i<80) {\n\t\t t += f5(bl,cl,dl) + hl[4];\n\t }\n\t t = t|0;\n\t t = rotl(t,sl[i]);\n\t t = (t+el)|0;\n\t al = el;\n\t el = dl;\n\t dl = rotl(cl, 10);\n\t cl = bl;\n\t bl = t;\n\n\t t = (ar + M[offset+zr[i]])|0;\n\t if (i<16){\n\t\t t += f5(br,cr,dr) + hr[0];\n\t } else if (i<32) {\n\t\t t += f4(br,cr,dr) + hr[1];\n\t } else if (i<48) {\n\t\t t += f3(br,cr,dr) + hr[2];\n\t } else if (i<64) {\n\t\t t += f2(br,cr,dr) + hr[3];\n\t } else {// if (i<80) {\n\t\t t += f1(br,cr,dr) + hr[4];\n\t }\n\t t = t|0;\n\t t = rotl(t,sr[i]) ;\n\t t = (t+er)|0;\n\t ar = er;\n\t er = dr;\n\t dr = rotl(cr, 10);\n\t cr = br;\n\t br = t;\n\t }\n\t // Intermediate hash value\n\t t = (H[1] + cl + dr)|0;\n\t H[1] = (H[2] + dl + er)|0;\n\t H[2] = (H[3] + el + ar)|0;\n\t H[3] = (H[4] + al + br)|0;\n\t H[4] = (H[0] + bl + cr)|0;\n\t H[0] = t;\n\t },\n\n\t _doFinalize: function () {\n\t // Shortcuts\n\t var data = this._data;\n\t var dataWords = data.words;\n\n\t var nBitsTotal = this._nDataBytes * 8;\n\t var nBitsLeft = data.sigBytes * 8;\n\n\t // Add padding\n\t dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32);\n\t dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = (\n\t (((nBitsTotal << 8) | (nBitsTotal >>> 24)) & 0x00ff00ff) |\n\t (((nBitsTotal << 24) | (nBitsTotal >>> 8)) & 0xff00ff00)\n\t );\n\t data.sigBytes = (dataWords.length + 1) * 4;\n\n\t // Hash final blocks\n\t this._process();\n\n\t // Shortcuts\n\t var hash = this._hash;\n\t var H = hash.words;\n\n\t // Swap endian\n\t for (var i = 0; i < 5; i++) {\n\t // Shortcut\n\t var H_i = H[i];\n\n\t // Swap\n\t H[i] = (((H_i << 8) | (H_i >>> 24)) & 0x00ff00ff) |\n\t (((H_i << 24) | (H_i >>> 8)) & 0xff00ff00);\n\t }\n\n\t // Return final computed hash\n\t return hash;\n\t },\n\n\t clone: function () {\n\t var clone = Hasher.clone.call(this);\n\t clone._hash = this._hash.clone();\n\n\t return clone;\n\t }\n\t });\n\n\n\t function f1(x, y, z) {\n\t return ((x) ^ (y) ^ (z));\n\n\t }\n\n\t function f2(x, y, z) {\n\t return (((x)&(y)) | ((~x)&(z)));\n\t }\n\n\t function f3(x, y, z) {\n\t return (((x) | (~(y))) ^ (z));\n\t }\n\n\t function f4(x, y, z) {\n\t return (((x) & (z)) | ((y)&(~(z))));\n\t }\n\n\t function f5(x, y, z) {\n\t return ((x) ^ ((y) |(~(z))));\n\n\t }\n\n\t function rotl(x,n) {\n\t return (x<>>(32-n));\n\t }\n\n\n\t /**\n\t * Shortcut function to the hasher's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t *\n\t * @return {WordArray} The hash.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hash = CryptoJS.RIPEMD160('message');\n\t * var hash = CryptoJS.RIPEMD160(wordArray);\n\t */\n\t C.RIPEMD160 = Hasher._createHelper(RIPEMD160);\n\n\t /**\n\t * Shortcut function to the HMAC's object interface.\n\t *\n\t * @param {WordArray|string} message The message to hash.\n\t * @param {WordArray|string} key The secret key.\n\t *\n\t * @return {WordArray} The HMAC.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hmac = CryptoJS.HmacRIPEMD160(message, key);\n\t */\n\t C.HmacRIPEMD160 = Hasher._createHmacHelper(RIPEMD160);\n\t}(Math));\n\n\n\treturn CryptoJS.RIPEMD160;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./sha1\"), require(\"./hmac\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./sha1\", \"./hmac\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var Base = C_lib.Base;\n\t var WordArray = C_lib.WordArray;\n\t var C_algo = C.algo;\n\t var SHA1 = C_algo.SHA1;\n\t var HMAC = C_algo.HMAC;\n\n\t /**\n\t * Password-Based Key Derivation Function 2 algorithm.\n\t */\n\t var PBKDF2 = C_algo.PBKDF2 = Base.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {number} keySize The key size in words to generate. Default: 4 (128 bits)\n\t * @property {Hasher} hasher The hasher to use. Default: SHA1\n\t * @property {number} iterations The number of iterations to perform. Default: 1\n\t */\n\t cfg: Base.extend({\n\t keySize: 128/32,\n\t hasher: SHA1,\n\t iterations: 1\n\t }),\n\n\t /**\n\t * Initializes a newly created key derivation function.\n\t *\n\t * @param {Object} cfg (Optional) The configuration options to use for the derivation.\n\t *\n\t * @example\n\t *\n\t * var kdf = CryptoJS.algo.PBKDF2.create();\n\t * var kdf = CryptoJS.algo.PBKDF2.create({ keySize: 8 });\n\t * var kdf = CryptoJS.algo.PBKDF2.create({ keySize: 8, iterations: 1000 });\n\t */\n\t init: function (cfg) {\n\t this.cfg = this.cfg.extend(cfg);\n\t },\n\n\t /**\n\t * Computes the Password-Based Key Derivation Function 2.\n\t *\n\t * @param {WordArray|string} password The password.\n\t * @param {WordArray|string} salt A salt.\n\t *\n\t * @return {WordArray} The derived key.\n\t *\n\t * @example\n\t *\n\t * var key = kdf.compute(password, salt);\n\t */\n\t compute: function (password, salt) {\n\t // Shortcut\n\t var cfg = this.cfg;\n\n\t // Init HMAC\n\t var hmac = HMAC.create(cfg.hasher, password);\n\n\t // Initial values\n\t var derivedKey = WordArray.create();\n\t var blockIndex = WordArray.create([0x00000001]);\n\n\t // Shortcuts\n\t var derivedKeyWords = derivedKey.words;\n\t var blockIndexWords = blockIndex.words;\n\t var keySize = cfg.keySize;\n\t var iterations = cfg.iterations;\n\n\t // Generate key\n\t while (derivedKeyWords.length < keySize) {\n\t var block = hmac.update(salt).finalize(blockIndex);\n\t hmac.reset();\n\n\t // Shortcuts\n\t var blockWords = block.words;\n\t var blockWordsLength = blockWords.length;\n\n\t // Iterations\n\t var intermediate = block;\n\t for (var i = 1; i < iterations; i++) {\n\t intermediate = hmac.finalize(intermediate);\n\t hmac.reset();\n\n\t // Shortcut\n\t var intermediateWords = intermediate.words;\n\n\t // XOR intermediate with block\n\t for (var j = 0; j < blockWordsLength; j++) {\n\t blockWords[j] ^= intermediateWords[j];\n\t }\n\t }\n\n\t derivedKey.concat(block);\n\t blockIndexWords[0]++;\n\t }\n\t derivedKey.sigBytes = keySize * 4;\n\n\t return derivedKey;\n\t }\n\t });\n\n\t /**\n\t * Computes the Password-Based Key Derivation Function 2.\n\t *\n\t * @param {WordArray|string} password The password.\n\t * @param {WordArray|string} salt A salt.\n\t * @param {Object} cfg (Optional) The configuration options to use for this computation.\n\t *\n\t * @return {WordArray} The derived key.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var key = CryptoJS.PBKDF2(password, salt);\n\t * var key = CryptoJS.PBKDF2(password, salt, { keySize: 8 });\n\t * var key = CryptoJS.PBKDF2(password, salt, { keySize: 8, iterations: 1000 });\n\t */\n\t C.PBKDF2 = function (password, salt, cfg) {\n\t return PBKDF2.create(cfg).compute(password, salt);\n\t };\n\t}());\n\n\n\treturn CryptoJS.PBKDF2;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * Cipher Feedback block mode.\n\t */\n\tCryptoJS.mode.CFB = (function () {\n\t var CFB = CryptoJS.lib.BlockCipherMode.extend();\n\n\t CFB.Encryptor = CFB.extend({\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher;\n\t var blockSize = cipher.blockSize;\n\n\t generateKeystreamAndEncrypt.call(this, words, offset, blockSize, cipher);\n\n\t // Remember this block to use with next block\n\t this._prevBlock = words.slice(offset, offset + blockSize);\n\t }\n\t });\n\n\t CFB.Decryptor = CFB.extend({\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher;\n\t var blockSize = cipher.blockSize;\n\n\t // Remember this block to use with next block\n\t var thisBlock = words.slice(offset, offset + blockSize);\n\n\t generateKeystreamAndEncrypt.call(this, words, offset, blockSize, cipher);\n\n\t // This block becomes the previous block\n\t this._prevBlock = thisBlock;\n\t }\n\t });\n\n\t function generateKeystreamAndEncrypt(words, offset, blockSize, cipher) {\n\t // Shortcut\n\t var iv = this._iv;\n\n\t // Generate keystream\n\t if (iv) {\n\t var keystream = iv.slice(0);\n\n\t // Remove IV for subsequent blocks\n\t this._iv = undefined;\n\t } else {\n\t var keystream = this._prevBlock;\n\t }\n\t cipher.encryptBlock(keystream, 0);\n\n\t // Encrypt\n\t for (var i = 0; i < blockSize; i++) {\n\t words[offset + i] ^= keystream[i];\n\t }\n\t }\n\n\t return CFB;\n\t}());\n\n\n\treturn CryptoJS.mode.CFB;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * Counter block mode.\n\t */\n\tCryptoJS.mode.CTR = (function () {\n\t var CTR = CryptoJS.lib.BlockCipherMode.extend();\n\n\t var Encryptor = CTR.Encryptor = CTR.extend({\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher\n\t var blockSize = cipher.blockSize;\n\t var iv = this._iv;\n\t var counter = this._counter;\n\n\t // Generate keystream\n\t if (iv) {\n\t counter = this._counter = iv.slice(0);\n\n\t // Remove IV for subsequent blocks\n\t this._iv = undefined;\n\t }\n\t var keystream = counter.slice(0);\n\t cipher.encryptBlock(keystream, 0);\n\n\t // Increment counter\n\t counter[blockSize - 1] = (counter[blockSize - 1] + 1) | 0\n\n\t // Encrypt\n\t for (var i = 0; i < blockSize; i++) {\n\t words[offset + i] ^= keystream[i];\n\t }\n\t }\n\t });\n\n\t CTR.Decryptor = Encryptor;\n\n\t return CTR;\n\t}());\n\n\n\treturn CryptoJS.mode.CTR;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/** @preserve\n\t * Counter block mode compatible with Dr Brian Gladman fileenc.c\n\t * derived from CryptoJS.mode.CTR\n\t * Jan Hruby jhruby.web@gmail.com\n\t */\n\tCryptoJS.mode.CTRGladman = (function () {\n\t var CTRGladman = CryptoJS.lib.BlockCipherMode.extend();\n\n\t\tfunction incWord(word)\n\t\t{\n\t\t\tif (((word >> 24) & 0xff) === 0xff) { //overflow\n\t\t\tvar b1 = (word >> 16)&0xff;\n\t\t\tvar b2 = (word >> 8)&0xff;\n\t\t\tvar b3 = word & 0xff;\n\n\t\t\tif (b1 === 0xff) // overflow b1\n\t\t\t{\n\t\t\tb1 = 0;\n\t\t\tif (b2 === 0xff)\n\t\t\t{\n\t\t\t\tb2 = 0;\n\t\t\t\tif (b3 === 0xff)\n\t\t\t\t{\n\t\t\t\t\tb3 = 0;\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\t++b3;\n\t\t\t\t}\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\t++b2;\n\t\t\t}\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t++b1;\n\t\t\t}\n\n\t\t\tword = 0;\n\t\t\tword += (b1 << 16);\n\t\t\tword += (b2 << 8);\n\t\t\tword += b3;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\tword += (0x01 << 24);\n\t\t\t}\n\t\t\treturn word;\n\t\t}\n\n\t\tfunction incCounter(counter)\n\t\t{\n\t\t\tif ((counter[0] = incWord(counter[0])) === 0)\n\t\t\t{\n\t\t\t\t// encr_data in fileenc.c from Dr Brian Gladman's counts only with DWORD j < 8\n\t\t\t\tcounter[1] = incWord(counter[1]);\n\t\t\t}\n\t\t\treturn counter;\n\t\t}\n\n\t var Encryptor = CTRGladman.Encryptor = CTRGladman.extend({\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher\n\t var blockSize = cipher.blockSize;\n\t var iv = this._iv;\n\t var counter = this._counter;\n\n\t // Generate keystream\n\t if (iv) {\n\t counter = this._counter = iv.slice(0);\n\n\t // Remove IV for subsequent blocks\n\t this._iv = undefined;\n\t }\n\n\t\t\t\tincCounter(counter);\n\n\t\t\t\tvar keystream = counter.slice(0);\n\t cipher.encryptBlock(keystream, 0);\n\n\t // Encrypt\n\t for (var i = 0; i < blockSize; i++) {\n\t words[offset + i] ^= keystream[i];\n\t }\n\t }\n\t });\n\n\t CTRGladman.Decryptor = Encryptor;\n\n\t return CTRGladman;\n\t}());\n\n\n\n\n\treturn CryptoJS.mode.CTRGladman;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * Output Feedback block mode.\n\t */\n\tCryptoJS.mode.OFB = (function () {\n\t var OFB = CryptoJS.lib.BlockCipherMode.extend();\n\n\t var Encryptor = OFB.Encryptor = OFB.extend({\n\t processBlock: function (words, offset) {\n\t // Shortcuts\n\t var cipher = this._cipher\n\t var blockSize = cipher.blockSize;\n\t var iv = this._iv;\n\t var keystream = this._keystream;\n\n\t // Generate keystream\n\t if (iv) {\n\t keystream = this._keystream = iv.slice(0);\n\n\t // Remove IV for subsequent blocks\n\t this._iv = undefined;\n\t }\n\t cipher.encryptBlock(keystream, 0);\n\n\t // Encrypt\n\t for (var i = 0; i < blockSize; i++) {\n\t words[offset + i] ^= keystream[i];\n\t }\n\t }\n\t });\n\n\t OFB.Decryptor = Encryptor;\n\n\t return OFB;\n\t}());\n\n\n\treturn CryptoJS.mode.OFB;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * Electronic Codebook block mode.\n\t */\n\tCryptoJS.mode.ECB = (function () {\n\t var ECB = CryptoJS.lib.BlockCipherMode.extend();\n\n\t ECB.Encryptor = ECB.extend({\n\t processBlock: function (words, offset) {\n\t this._cipher.encryptBlock(words, offset);\n\t }\n\t });\n\n\t ECB.Decryptor = ECB.extend({\n\t processBlock: function (words, offset) {\n\t this._cipher.decryptBlock(words, offset);\n\t }\n\t });\n\n\t return ECB;\n\t}());\n\n\n\treturn CryptoJS.mode.ECB;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * ANSI X.923 padding strategy.\n\t */\n\tCryptoJS.pad.AnsiX923 = {\n\t pad: function (data, blockSize) {\n\t // Shortcuts\n\t var dataSigBytes = data.sigBytes;\n\t var blockSizeBytes = blockSize * 4;\n\n\t // Count padding bytes\n\t var nPaddingBytes = blockSizeBytes - dataSigBytes % blockSizeBytes;\n\n\t // Compute last byte position\n\t var lastBytePos = dataSigBytes + nPaddingBytes - 1;\n\n\t // Pad\n\t data.clamp();\n\t data.words[lastBytePos >>> 2] |= nPaddingBytes << (24 - (lastBytePos % 4) * 8);\n\t data.sigBytes += nPaddingBytes;\n\t },\n\n\t unpad: function (data) {\n\t // Get number of padding bytes from last byte\n\t var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff;\n\n\t // Remove padding\n\t data.sigBytes -= nPaddingBytes;\n\t }\n\t};\n\n\n\treturn CryptoJS.pad.Ansix923;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * ISO 10126 padding strategy.\n\t */\n\tCryptoJS.pad.Iso10126 = {\n\t pad: function (data, blockSize) {\n\t // Shortcut\n\t var blockSizeBytes = blockSize * 4;\n\n\t // Count padding bytes\n\t var nPaddingBytes = blockSizeBytes - data.sigBytes % blockSizeBytes;\n\n\t // Pad\n\t data.concat(CryptoJS.lib.WordArray.random(nPaddingBytes - 1)).\n\t concat(CryptoJS.lib.WordArray.create([nPaddingBytes << 24], 1));\n\t },\n\n\t unpad: function (data) {\n\t // Get number of padding bytes from last byte\n\t var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff;\n\n\t // Remove padding\n\t data.sigBytes -= nPaddingBytes;\n\t }\n\t};\n\n\n\treturn CryptoJS.pad.Iso10126;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * ISO/IEC 9797-1 Padding Method 2.\n\t */\n\tCryptoJS.pad.Iso97971 = {\n\t pad: function (data, blockSize) {\n\t // Add 0x80 byte\n\t data.concat(CryptoJS.lib.WordArray.create([0x80000000], 1));\n\n\t // Zero pad the rest\n\t CryptoJS.pad.ZeroPadding.pad(data, blockSize);\n\t },\n\n\t unpad: function (data) {\n\t // Remove zero padding\n\t CryptoJS.pad.ZeroPadding.unpad(data);\n\n\t // Remove one more byte -- the 0x80 byte\n\t data.sigBytes--;\n\t }\n\t};\n\n\n\treturn CryptoJS.pad.Iso97971;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * Zero padding strategy.\n\t */\n\tCryptoJS.pad.ZeroPadding = {\n\t pad: function (data, blockSize) {\n\t // Shortcut\n\t var blockSizeBytes = blockSize * 4;\n\n\t // Pad\n\t data.clamp();\n\t data.sigBytes += blockSizeBytes - ((data.sigBytes % blockSizeBytes) || blockSizeBytes);\n\t },\n\n\t unpad: function (data) {\n\t // Shortcut\n\t var dataWords = data.words;\n\n\t // Unpad\n\t var i = data.sigBytes - 1;\n\t while (!((dataWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff)) {\n\t i--;\n\t }\n\t data.sigBytes = i + 1;\n\t }\n\t};\n\n\n\treturn CryptoJS.pad.ZeroPadding;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t/**\n\t * A noop padding strategy.\n\t */\n\tCryptoJS.pad.NoPadding = {\n\t pad: function () {\n\t },\n\n\t unpad: function () {\n\t }\n\t};\n\n\n\treturn CryptoJS.pad.NoPadding;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function (undefined) {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var CipherParams = C_lib.CipherParams;\n\t var C_enc = C.enc;\n\t var Hex = C_enc.Hex;\n\t var C_format = C.format;\n\n\t var HexFormatter = C_format.Hex = {\n\t /**\n\t * Converts the ciphertext of a cipher params object to a hexadecimally encoded string.\n\t *\n\t * @param {CipherParams} cipherParams The cipher params object.\n\t *\n\t * @return {string} The hexadecimally encoded string.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var hexString = CryptoJS.format.Hex.stringify(cipherParams);\n\t */\n\t stringify: function (cipherParams) {\n\t return cipherParams.ciphertext.toString(Hex);\n\t },\n\n\t /**\n\t * Converts a hexadecimally encoded ciphertext string to a cipher params object.\n\t *\n\t * @param {string} input The hexadecimally encoded string.\n\t *\n\t * @return {CipherParams} The cipher params object.\n\t *\n\t * @static\n\t *\n\t * @example\n\t *\n\t * var cipherParams = CryptoJS.format.Hex.parse(hexString);\n\t */\n\t parse: function (input) {\n\t var ciphertext = Hex.parse(input);\n\t return CipherParams.create({ ciphertext: ciphertext });\n\t }\n\t };\n\t}());\n\n\n\treturn CryptoJS.format.Hex;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./enc-base64\"), require(\"./md5\"), require(\"./evpkdf\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./enc-base64\", \"./md5\", \"./evpkdf\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var BlockCipher = C_lib.BlockCipher;\n\t var C_algo = C.algo;\n\n\t // Lookup tables\n\t var SBOX = [];\n\t var INV_SBOX = [];\n\t var SUB_MIX_0 = [];\n\t var SUB_MIX_1 = [];\n\t var SUB_MIX_2 = [];\n\t var SUB_MIX_3 = [];\n\t var INV_SUB_MIX_0 = [];\n\t var INV_SUB_MIX_1 = [];\n\t var INV_SUB_MIX_2 = [];\n\t var INV_SUB_MIX_3 = [];\n\n\t // Compute lookup tables\n\t (function () {\n\t // Compute double table\n\t var d = [];\n\t for (var i = 0; i < 256; i++) {\n\t if (i < 128) {\n\t d[i] = i << 1;\n\t } else {\n\t d[i] = (i << 1) ^ 0x11b;\n\t }\n\t }\n\n\t // Walk GF(2^8)\n\t var x = 0;\n\t var xi = 0;\n\t for (var i = 0; i < 256; i++) {\n\t // Compute sbox\n\t var sx = xi ^ (xi << 1) ^ (xi << 2) ^ (xi << 3) ^ (xi << 4);\n\t sx = (sx >>> 8) ^ (sx & 0xff) ^ 0x63;\n\t SBOX[x] = sx;\n\t INV_SBOX[sx] = x;\n\n\t // Compute multiplication\n\t var x2 = d[x];\n\t var x4 = d[x2];\n\t var x8 = d[x4];\n\n\t // Compute sub bytes, mix columns tables\n\t var t = (d[sx] * 0x101) ^ (sx * 0x1010100);\n\t SUB_MIX_0[x] = (t << 24) | (t >>> 8);\n\t SUB_MIX_1[x] = (t << 16) | (t >>> 16);\n\t SUB_MIX_2[x] = (t << 8) | (t >>> 24);\n\t SUB_MIX_3[x] = t;\n\n\t // Compute inv sub bytes, inv mix columns tables\n\t var t = (x8 * 0x1010101) ^ (x4 * 0x10001) ^ (x2 * 0x101) ^ (x * 0x1010100);\n\t INV_SUB_MIX_0[sx] = (t << 24) | (t >>> 8);\n\t INV_SUB_MIX_1[sx] = (t << 16) | (t >>> 16);\n\t INV_SUB_MIX_2[sx] = (t << 8) | (t >>> 24);\n\t INV_SUB_MIX_3[sx] = t;\n\n\t // Compute next counter\n\t if (!x) {\n\t x = xi = 1;\n\t } else {\n\t x = x2 ^ d[d[d[x8 ^ x2]]];\n\t xi ^= d[d[xi]];\n\t }\n\t }\n\t }());\n\n\t // Precomputed Rcon lookup\n\t var RCON = [0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36];\n\n\t /**\n\t * AES block cipher algorithm.\n\t */\n\t var AES = C_algo.AES = BlockCipher.extend({\n\t _doReset: function () {\n\t // Skip reset of nRounds has been set before and key did not change\n\t if (this._nRounds && this._keyPriorReset === this._key) {\n\t return;\n\t }\n\n\t // Shortcuts\n\t var key = this._keyPriorReset = this._key;\n\t var keyWords = key.words;\n\t var keySize = key.sigBytes / 4;\n\n\t // Compute number of rounds\n\t var nRounds = this._nRounds = keySize + 6;\n\n\t // Compute number of key schedule rows\n\t var ksRows = (nRounds + 1) * 4;\n\n\t // Compute key schedule\n\t var keySchedule = this._keySchedule = [];\n\t for (var ksRow = 0; ksRow < ksRows; ksRow++) {\n\t if (ksRow < keySize) {\n\t keySchedule[ksRow] = keyWords[ksRow];\n\t } else {\n\t var t = keySchedule[ksRow - 1];\n\n\t if (!(ksRow % keySize)) {\n\t // Rot word\n\t t = (t << 8) | (t >>> 24);\n\n\t // Sub word\n\t t = (SBOX[t >>> 24] << 24) | (SBOX[(t >>> 16) & 0xff] << 16) | (SBOX[(t >>> 8) & 0xff] << 8) | SBOX[t & 0xff];\n\n\t // Mix Rcon\n\t t ^= RCON[(ksRow / keySize) | 0] << 24;\n\t } else if (keySize > 6 && ksRow % keySize == 4) {\n\t // Sub word\n\t t = (SBOX[t >>> 24] << 24) | (SBOX[(t >>> 16) & 0xff] << 16) | (SBOX[(t >>> 8) & 0xff] << 8) | SBOX[t & 0xff];\n\t }\n\n\t keySchedule[ksRow] = keySchedule[ksRow - keySize] ^ t;\n\t }\n\t }\n\n\t // Compute inv key schedule\n\t var invKeySchedule = this._invKeySchedule = [];\n\t for (var invKsRow = 0; invKsRow < ksRows; invKsRow++) {\n\t var ksRow = ksRows - invKsRow;\n\n\t if (invKsRow % 4) {\n\t var t = keySchedule[ksRow];\n\t } else {\n\t var t = keySchedule[ksRow - 4];\n\t }\n\n\t if (invKsRow < 4 || ksRow <= 4) {\n\t invKeySchedule[invKsRow] = t;\n\t } else {\n\t invKeySchedule[invKsRow] = INV_SUB_MIX_0[SBOX[t >>> 24]] ^ INV_SUB_MIX_1[SBOX[(t >>> 16) & 0xff]] ^\n\t INV_SUB_MIX_2[SBOX[(t >>> 8) & 0xff]] ^ INV_SUB_MIX_3[SBOX[t & 0xff]];\n\t }\n\t }\n\t },\n\n\t encryptBlock: function (M, offset) {\n\t this._doCryptBlock(M, offset, this._keySchedule, SUB_MIX_0, SUB_MIX_1, SUB_MIX_2, SUB_MIX_3, SBOX);\n\t },\n\n\t decryptBlock: function (M, offset) {\n\t // Swap 2nd and 4th rows\n\t var t = M[offset + 1];\n\t M[offset + 1] = M[offset + 3];\n\t M[offset + 3] = t;\n\n\t this._doCryptBlock(M, offset, this._invKeySchedule, INV_SUB_MIX_0, INV_SUB_MIX_1, INV_SUB_MIX_2, INV_SUB_MIX_3, INV_SBOX);\n\n\t // Inv swap 2nd and 4th rows\n\t var t = M[offset + 1];\n\t M[offset + 1] = M[offset + 3];\n\t M[offset + 3] = t;\n\t },\n\n\t _doCryptBlock: function (M, offset, keySchedule, SUB_MIX_0, SUB_MIX_1, SUB_MIX_2, SUB_MIX_3, SBOX) {\n\t // Shortcut\n\t var nRounds = this._nRounds;\n\n\t // Get input, add round key\n\t var s0 = M[offset] ^ keySchedule[0];\n\t var s1 = M[offset + 1] ^ keySchedule[1];\n\t var s2 = M[offset + 2] ^ keySchedule[2];\n\t var s3 = M[offset + 3] ^ keySchedule[3];\n\n\t // Key schedule row counter\n\t var ksRow = 4;\n\n\t // Rounds\n\t for (var round = 1; round < nRounds; round++) {\n\t // Shift rows, sub bytes, mix columns, add round key\n\t var t0 = SUB_MIX_0[s0 >>> 24] ^ SUB_MIX_1[(s1 >>> 16) & 0xff] ^ SUB_MIX_2[(s2 >>> 8) & 0xff] ^ SUB_MIX_3[s3 & 0xff] ^ keySchedule[ksRow++];\n\t var t1 = SUB_MIX_0[s1 >>> 24] ^ SUB_MIX_1[(s2 >>> 16) & 0xff] ^ SUB_MIX_2[(s3 >>> 8) & 0xff] ^ SUB_MIX_3[s0 & 0xff] ^ keySchedule[ksRow++];\n\t var t2 = SUB_MIX_0[s2 >>> 24] ^ SUB_MIX_1[(s3 >>> 16) & 0xff] ^ SUB_MIX_2[(s0 >>> 8) & 0xff] ^ SUB_MIX_3[s1 & 0xff] ^ keySchedule[ksRow++];\n\t var t3 = SUB_MIX_0[s3 >>> 24] ^ SUB_MIX_1[(s0 >>> 16) & 0xff] ^ SUB_MIX_2[(s1 >>> 8) & 0xff] ^ SUB_MIX_3[s2 & 0xff] ^ keySchedule[ksRow++];\n\n\t // Update state\n\t s0 = t0;\n\t s1 = t1;\n\t s2 = t2;\n\t s3 = t3;\n\t }\n\n\t // Shift rows, sub bytes, add round key\n\t var t0 = ((SBOX[s0 >>> 24] << 24) | (SBOX[(s1 >>> 16) & 0xff] << 16) | (SBOX[(s2 >>> 8) & 0xff] << 8) | SBOX[s3 & 0xff]) ^ keySchedule[ksRow++];\n\t var t1 = ((SBOX[s1 >>> 24] << 24) | (SBOX[(s2 >>> 16) & 0xff] << 16) | (SBOX[(s3 >>> 8) & 0xff] << 8) | SBOX[s0 & 0xff]) ^ keySchedule[ksRow++];\n\t var t2 = ((SBOX[s2 >>> 24] << 24) | (SBOX[(s3 >>> 16) & 0xff] << 16) | (SBOX[(s0 >>> 8) & 0xff] << 8) | SBOX[s1 & 0xff]) ^ keySchedule[ksRow++];\n\t var t3 = ((SBOX[s3 >>> 24] << 24) | (SBOX[(s0 >>> 16) & 0xff] << 16) | (SBOX[(s1 >>> 8) & 0xff] << 8) | SBOX[s2 & 0xff]) ^ keySchedule[ksRow++];\n\n\t // Set output\n\t M[offset] = t0;\n\t M[offset + 1] = t1;\n\t M[offset + 2] = t2;\n\t M[offset + 3] = t3;\n\t },\n\n\t keySize: 256/32\n\t });\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.AES.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.AES.decrypt(ciphertext, key, cfg);\n\t */\n\t C.AES = BlockCipher._createHelper(AES);\n\t}());\n\n\n\treturn CryptoJS.AES;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./enc-base64\"), require(\"./md5\"), require(\"./evpkdf\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./enc-base64\", \"./md5\", \"./evpkdf\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var WordArray = C_lib.WordArray;\n\t var BlockCipher = C_lib.BlockCipher;\n\t var C_algo = C.algo;\n\n\t // Permuted Choice 1 constants\n\t var PC1 = [\n\t 57, 49, 41, 33, 25, 17, 9, 1,\n\t 58, 50, 42, 34, 26, 18, 10, 2,\n\t 59, 51, 43, 35, 27, 19, 11, 3,\n\t 60, 52, 44, 36, 63, 55, 47, 39,\n\t 31, 23, 15, 7, 62, 54, 46, 38,\n\t 30, 22, 14, 6, 61, 53, 45, 37,\n\t 29, 21, 13, 5, 28, 20, 12, 4\n\t ];\n\n\t // Permuted Choice 2 constants\n\t var PC2 = [\n\t 14, 17, 11, 24, 1, 5,\n\t 3, 28, 15, 6, 21, 10,\n\t 23, 19, 12, 4, 26, 8,\n\t 16, 7, 27, 20, 13, 2,\n\t 41, 52, 31, 37, 47, 55,\n\t 30, 40, 51, 45, 33, 48,\n\t 44, 49, 39, 56, 34, 53,\n\t 46, 42, 50, 36, 29, 32\n\t ];\n\n\t // Cumulative bit shift constants\n\t var BIT_SHIFTS = [1, 2, 4, 6, 8, 10, 12, 14, 15, 17, 19, 21, 23, 25, 27, 28];\n\n\t // SBOXes and round permutation constants\n\t var SBOX_P = [\n\t {\n\t 0x0: 0x808200,\n\t 0x10000000: 0x8000,\n\t 0x20000000: 0x808002,\n\t 0x30000000: 0x2,\n\t 0x40000000: 0x200,\n\t 0x50000000: 0x808202,\n\t 0x60000000: 0x800202,\n\t 0x70000000: 0x800000,\n\t 0x80000000: 0x202,\n\t 0x90000000: 0x800200,\n\t 0xa0000000: 0x8200,\n\t 0xb0000000: 0x808000,\n\t 0xc0000000: 0x8002,\n\t 0xd0000000: 0x800002,\n\t 0xe0000000: 0x0,\n\t 0xf0000000: 0x8202,\n\t 0x8000000: 0x0,\n\t 0x18000000: 0x808202,\n\t 0x28000000: 0x8202,\n\t 0x38000000: 0x8000,\n\t 0x48000000: 0x808200,\n\t 0x58000000: 0x200,\n\t 0x68000000: 0x808002,\n\t 0x78000000: 0x2,\n\t 0x88000000: 0x800200,\n\t 0x98000000: 0x8200,\n\t 0xa8000000: 0x808000,\n\t 0xb8000000: 0x800202,\n\t 0xc8000000: 0x800002,\n\t 0xd8000000: 0x8002,\n\t 0xe8000000: 0x202,\n\t 0xf8000000: 0x800000,\n\t 0x1: 0x8000,\n\t 0x10000001: 0x2,\n\t 0x20000001: 0x808200,\n\t 0x30000001: 0x800000,\n\t 0x40000001: 0x808002,\n\t 0x50000001: 0x8200,\n\t 0x60000001: 0x200,\n\t 0x70000001: 0x800202,\n\t 0x80000001: 0x808202,\n\t 0x90000001: 0x808000,\n\t 0xa0000001: 0x800002,\n\t 0xb0000001: 0x8202,\n\t 0xc0000001: 0x202,\n\t 0xd0000001: 0x800200,\n\t 0xe0000001: 0x8002,\n\t 0xf0000001: 0x0,\n\t 0x8000001: 0x808202,\n\t 0x18000001: 0x808000,\n\t 0x28000001: 0x800000,\n\t 0x38000001: 0x200,\n\t 0x48000001: 0x8000,\n\t 0x58000001: 0x800002,\n\t 0x68000001: 0x2,\n\t 0x78000001: 0x8202,\n\t 0x88000001: 0x8002,\n\t 0x98000001: 0x800202,\n\t 0xa8000001: 0x202,\n\t 0xb8000001: 0x808200,\n\t 0xc8000001: 0x800200,\n\t 0xd8000001: 0x0,\n\t 0xe8000001: 0x8200,\n\t 0xf8000001: 0x808002\n\t },\n\t {\n\t 0x0: 0x40084010,\n\t 0x1000000: 0x4000,\n\t 0x2000000: 0x80000,\n\t 0x3000000: 0x40080010,\n\t 0x4000000: 0x40000010,\n\t 0x5000000: 0x40084000,\n\t 0x6000000: 0x40004000,\n\t 0x7000000: 0x10,\n\t 0x8000000: 0x84000,\n\t 0x9000000: 0x40004010,\n\t 0xa000000: 0x40000000,\n\t 0xb000000: 0x84010,\n\t 0xc000000: 0x80010,\n\t 0xd000000: 0x0,\n\t 0xe000000: 0x4010,\n\t 0xf000000: 0x40080000,\n\t 0x800000: 0x40004000,\n\t 0x1800000: 0x84010,\n\t 0x2800000: 0x10,\n\t 0x3800000: 0x40004010,\n\t 0x4800000: 0x40084010,\n\t 0x5800000: 0x40000000,\n\t 0x6800000: 0x80000,\n\t 0x7800000: 0x40080010,\n\t 0x8800000: 0x80010,\n\t 0x9800000: 0x0,\n\t 0xa800000: 0x4000,\n\t 0xb800000: 0x40080000,\n\t 0xc800000: 0x40000010,\n\t 0xd800000: 0x84000,\n\t 0xe800000: 0x40084000,\n\t 0xf800000: 0x4010,\n\t 0x10000000: 0x0,\n\t 0x11000000: 0x40080010,\n\t 0x12000000: 0x40004010,\n\t 0x13000000: 0x40084000,\n\t 0x14000000: 0x40080000,\n\t 0x15000000: 0x10,\n\t 0x16000000: 0x84010,\n\t 0x17000000: 0x4000,\n\t 0x18000000: 0x4010,\n\t 0x19000000: 0x80000,\n\t 0x1a000000: 0x80010,\n\t 0x1b000000: 0x40000010,\n\t 0x1c000000: 0x84000,\n\t 0x1d000000: 0x40004000,\n\t 0x1e000000: 0x40000000,\n\t 0x1f000000: 0x40084010,\n\t 0x10800000: 0x84010,\n\t 0x11800000: 0x80000,\n\t 0x12800000: 0x40080000,\n\t 0x13800000: 0x4000,\n\t 0x14800000: 0x40004000,\n\t 0x15800000: 0x40084010,\n\t 0x16800000: 0x10,\n\t 0x17800000: 0x40000000,\n\t 0x18800000: 0x40084000,\n\t 0x19800000: 0x40000010,\n\t 0x1a800000: 0x40004010,\n\t 0x1b800000: 0x80010,\n\t 0x1c800000: 0x0,\n\t 0x1d800000: 0x4010,\n\t 0x1e800000: 0x40080010,\n\t 0x1f800000: 0x84000\n\t },\n\t {\n\t 0x0: 0x104,\n\t 0x100000: 0x0,\n\t 0x200000: 0x4000100,\n\t 0x300000: 0x10104,\n\t 0x400000: 0x10004,\n\t 0x500000: 0x4000004,\n\t 0x600000: 0x4010104,\n\t 0x700000: 0x4010000,\n\t 0x800000: 0x4000000,\n\t 0x900000: 0x4010100,\n\t 0xa00000: 0x10100,\n\t 0xb00000: 0x4010004,\n\t 0xc00000: 0x4000104,\n\t 0xd00000: 0x10000,\n\t 0xe00000: 0x4,\n\t 0xf00000: 0x100,\n\t 0x80000: 0x4010100,\n\t 0x180000: 0x4010004,\n\t 0x280000: 0x0,\n\t 0x380000: 0x4000100,\n\t 0x480000: 0x4000004,\n\t 0x580000: 0x10000,\n\t 0x680000: 0x10004,\n\t 0x780000: 0x104,\n\t 0x880000: 0x4,\n\t 0x980000: 0x100,\n\t 0xa80000: 0x4010000,\n\t 0xb80000: 0x10104,\n\t 0xc80000: 0x10100,\n\t 0xd80000: 0x4000104,\n\t 0xe80000: 0x4010104,\n\t 0xf80000: 0x4000000,\n\t 0x1000000: 0x4010100,\n\t 0x1100000: 0x10004,\n\t 0x1200000: 0x10000,\n\t 0x1300000: 0x4000100,\n\t 0x1400000: 0x100,\n\t 0x1500000: 0x4010104,\n\t 0x1600000: 0x4000004,\n\t 0x1700000: 0x0,\n\t 0x1800000: 0x4000104,\n\t 0x1900000: 0x4000000,\n\t 0x1a00000: 0x4,\n\t 0x1b00000: 0x10100,\n\t 0x1c00000: 0x4010000,\n\t 0x1d00000: 0x104,\n\t 0x1e00000: 0x10104,\n\t 0x1f00000: 0x4010004,\n\t 0x1080000: 0x4000000,\n\t 0x1180000: 0x104,\n\t 0x1280000: 0x4010100,\n\t 0x1380000: 0x0,\n\t 0x1480000: 0x10004,\n\t 0x1580000: 0x4000100,\n\t 0x1680000: 0x100,\n\t 0x1780000: 0x4010004,\n\t 0x1880000: 0x10000,\n\t 0x1980000: 0x4010104,\n\t 0x1a80000: 0x10104,\n\t 0x1b80000: 0x4000004,\n\t 0x1c80000: 0x4000104,\n\t 0x1d80000: 0x4010000,\n\t 0x1e80000: 0x4,\n\t 0x1f80000: 0x10100\n\t },\n\t {\n\t 0x0: 0x80401000,\n\t 0x10000: 0x80001040,\n\t 0x20000: 0x401040,\n\t 0x30000: 0x80400000,\n\t 0x40000: 0x0,\n\t 0x50000: 0x401000,\n\t 0x60000: 0x80000040,\n\t 0x70000: 0x400040,\n\t 0x80000: 0x80000000,\n\t 0x90000: 0x400000,\n\t 0xa0000: 0x40,\n\t 0xb0000: 0x80001000,\n\t 0xc0000: 0x80400040,\n\t 0xd0000: 0x1040,\n\t 0xe0000: 0x1000,\n\t 0xf0000: 0x80401040,\n\t 0x8000: 0x80001040,\n\t 0x18000: 0x40,\n\t 0x28000: 0x80400040,\n\t 0x38000: 0x80001000,\n\t 0x48000: 0x401000,\n\t 0x58000: 0x80401040,\n\t 0x68000: 0x0,\n\t 0x78000: 0x80400000,\n\t 0x88000: 0x1000,\n\t 0x98000: 0x80401000,\n\t 0xa8000: 0x400000,\n\t 0xb8000: 0x1040,\n\t 0xc8000: 0x80000000,\n\t 0xd8000: 0x400040,\n\t 0xe8000: 0x401040,\n\t 0xf8000: 0x80000040,\n\t 0x100000: 0x400040,\n\t 0x110000: 0x401000,\n\t 0x120000: 0x80000040,\n\t 0x130000: 0x0,\n\t 0x140000: 0x1040,\n\t 0x150000: 0x80400040,\n\t 0x160000: 0x80401000,\n\t 0x170000: 0x80001040,\n\t 0x180000: 0x80401040,\n\t 0x190000: 0x80000000,\n\t 0x1a0000: 0x80400000,\n\t 0x1b0000: 0x401040,\n\t 0x1c0000: 0x80001000,\n\t 0x1d0000: 0x400000,\n\t 0x1e0000: 0x40,\n\t 0x1f0000: 0x1000,\n\t 0x108000: 0x80400000,\n\t 0x118000: 0x80401040,\n\t 0x128000: 0x0,\n\t 0x138000: 0x401000,\n\t 0x148000: 0x400040,\n\t 0x158000: 0x80000000,\n\t 0x168000: 0x80001040,\n\t 0x178000: 0x40,\n\t 0x188000: 0x80000040,\n\t 0x198000: 0x1000,\n\t 0x1a8000: 0x80001000,\n\t 0x1b8000: 0x80400040,\n\t 0x1c8000: 0x1040,\n\t 0x1d8000: 0x80401000,\n\t 0x1e8000: 0x400000,\n\t 0x1f8000: 0x401040\n\t },\n\t {\n\t 0x0: 0x80,\n\t 0x1000: 0x1040000,\n\t 0x2000: 0x40000,\n\t 0x3000: 0x20000000,\n\t 0x4000: 0x20040080,\n\t 0x5000: 0x1000080,\n\t 0x6000: 0x21000080,\n\t 0x7000: 0x40080,\n\t 0x8000: 0x1000000,\n\t 0x9000: 0x20040000,\n\t 0xa000: 0x20000080,\n\t 0xb000: 0x21040080,\n\t 0xc000: 0x21040000,\n\t 0xd000: 0x0,\n\t 0xe000: 0x1040080,\n\t 0xf000: 0x21000000,\n\t 0x800: 0x1040080,\n\t 0x1800: 0x21000080,\n\t 0x2800: 0x80,\n\t 0x3800: 0x1040000,\n\t 0x4800: 0x40000,\n\t 0x5800: 0x20040080,\n\t 0x6800: 0x21040000,\n\t 0x7800: 0x20000000,\n\t 0x8800: 0x20040000,\n\t 0x9800: 0x0,\n\t 0xa800: 0x21040080,\n\t 0xb800: 0x1000080,\n\t 0xc800: 0x20000080,\n\t 0xd800: 0x21000000,\n\t 0xe800: 0x1000000,\n\t 0xf800: 0x40080,\n\t 0x10000: 0x40000,\n\t 0x11000: 0x80,\n\t 0x12000: 0x20000000,\n\t 0x13000: 0x21000080,\n\t 0x14000: 0x1000080,\n\t 0x15000: 0x21040000,\n\t 0x16000: 0x20040080,\n\t 0x17000: 0x1000000,\n\t 0x18000: 0x21040080,\n\t 0x19000: 0x21000000,\n\t 0x1a000: 0x1040000,\n\t 0x1b000: 0x20040000,\n\t 0x1c000: 0x40080,\n\t 0x1d000: 0x20000080,\n\t 0x1e000: 0x0,\n\t 0x1f000: 0x1040080,\n\t 0x10800: 0x21000080,\n\t 0x11800: 0x1000000,\n\t 0x12800: 0x1040000,\n\t 0x13800: 0x20040080,\n\t 0x14800: 0x20000000,\n\t 0x15800: 0x1040080,\n\t 0x16800: 0x80,\n\t 0x17800: 0x21040000,\n\t 0x18800: 0x40080,\n\t 0x19800: 0x21040080,\n\t 0x1a800: 0x0,\n\t 0x1b800: 0x21000000,\n\t 0x1c800: 0x1000080,\n\t 0x1d800: 0x40000,\n\t 0x1e800: 0x20040000,\n\t 0x1f800: 0x20000080\n\t },\n\t {\n\t 0x0: 0x10000008,\n\t 0x100: 0x2000,\n\t 0x200: 0x10200000,\n\t 0x300: 0x10202008,\n\t 0x400: 0x10002000,\n\t 0x500: 0x200000,\n\t 0x600: 0x200008,\n\t 0x700: 0x10000000,\n\t 0x800: 0x0,\n\t 0x900: 0x10002008,\n\t 0xa00: 0x202000,\n\t 0xb00: 0x8,\n\t 0xc00: 0x10200008,\n\t 0xd00: 0x202008,\n\t 0xe00: 0x2008,\n\t 0xf00: 0x10202000,\n\t 0x80: 0x10200000,\n\t 0x180: 0x10202008,\n\t 0x280: 0x8,\n\t 0x380: 0x200000,\n\t 0x480: 0x202008,\n\t 0x580: 0x10000008,\n\t 0x680: 0x10002000,\n\t 0x780: 0x2008,\n\t 0x880: 0x200008,\n\t 0x980: 0x2000,\n\t 0xa80: 0x10002008,\n\t 0xb80: 0x10200008,\n\t 0xc80: 0x0,\n\t 0xd80: 0x10202000,\n\t 0xe80: 0x202000,\n\t 0xf80: 0x10000000,\n\t 0x1000: 0x10002000,\n\t 0x1100: 0x10200008,\n\t 0x1200: 0x10202008,\n\t 0x1300: 0x2008,\n\t 0x1400: 0x200000,\n\t 0x1500: 0x10000000,\n\t 0x1600: 0x10000008,\n\t 0x1700: 0x202000,\n\t 0x1800: 0x202008,\n\t 0x1900: 0x0,\n\t 0x1a00: 0x8,\n\t 0x1b00: 0x10200000,\n\t 0x1c00: 0x2000,\n\t 0x1d00: 0x10002008,\n\t 0x1e00: 0x10202000,\n\t 0x1f00: 0x200008,\n\t 0x1080: 0x8,\n\t 0x1180: 0x202000,\n\t 0x1280: 0x200000,\n\t 0x1380: 0x10000008,\n\t 0x1480: 0x10002000,\n\t 0x1580: 0x2008,\n\t 0x1680: 0x10202008,\n\t 0x1780: 0x10200000,\n\t 0x1880: 0x10202000,\n\t 0x1980: 0x10200008,\n\t 0x1a80: 0x2000,\n\t 0x1b80: 0x202008,\n\t 0x1c80: 0x200008,\n\t 0x1d80: 0x0,\n\t 0x1e80: 0x10000000,\n\t 0x1f80: 0x10002008\n\t },\n\t {\n\t 0x0: 0x100000,\n\t 0x10: 0x2000401,\n\t 0x20: 0x400,\n\t 0x30: 0x100401,\n\t 0x40: 0x2100401,\n\t 0x50: 0x0,\n\t 0x60: 0x1,\n\t 0x70: 0x2100001,\n\t 0x80: 0x2000400,\n\t 0x90: 0x100001,\n\t 0xa0: 0x2000001,\n\t 0xb0: 0x2100400,\n\t 0xc0: 0x2100000,\n\t 0xd0: 0x401,\n\t 0xe0: 0x100400,\n\t 0xf0: 0x2000000,\n\t 0x8: 0x2100001,\n\t 0x18: 0x0,\n\t 0x28: 0x2000401,\n\t 0x38: 0x2100400,\n\t 0x48: 0x100000,\n\t 0x58: 0x2000001,\n\t 0x68: 0x2000000,\n\t 0x78: 0x401,\n\t 0x88: 0x100401,\n\t 0x98: 0x2000400,\n\t 0xa8: 0x2100000,\n\t 0xb8: 0x100001,\n\t 0xc8: 0x400,\n\t 0xd8: 0x2100401,\n\t 0xe8: 0x1,\n\t 0xf8: 0x100400,\n\t 0x100: 0x2000000,\n\t 0x110: 0x100000,\n\t 0x120: 0x2000401,\n\t 0x130: 0x2100001,\n\t 0x140: 0x100001,\n\t 0x150: 0x2000400,\n\t 0x160: 0x2100400,\n\t 0x170: 0x100401,\n\t 0x180: 0x401,\n\t 0x190: 0x2100401,\n\t 0x1a0: 0x100400,\n\t 0x1b0: 0x1,\n\t 0x1c0: 0x0,\n\t 0x1d0: 0x2100000,\n\t 0x1e0: 0x2000001,\n\t 0x1f0: 0x400,\n\t 0x108: 0x100400,\n\t 0x118: 0x2000401,\n\t 0x128: 0x2100001,\n\t 0x138: 0x1,\n\t 0x148: 0x2000000,\n\t 0x158: 0x100000,\n\t 0x168: 0x401,\n\t 0x178: 0x2100400,\n\t 0x188: 0x2000001,\n\t 0x198: 0x2100000,\n\t 0x1a8: 0x0,\n\t 0x1b8: 0x2100401,\n\t 0x1c8: 0x100401,\n\t 0x1d8: 0x400,\n\t 0x1e8: 0x2000400,\n\t 0x1f8: 0x100001\n\t },\n\t {\n\t 0x0: 0x8000820,\n\t 0x1: 0x20000,\n\t 0x2: 0x8000000,\n\t 0x3: 0x20,\n\t 0x4: 0x20020,\n\t 0x5: 0x8020820,\n\t 0x6: 0x8020800,\n\t 0x7: 0x800,\n\t 0x8: 0x8020000,\n\t 0x9: 0x8000800,\n\t 0xa: 0x20800,\n\t 0xb: 0x8020020,\n\t 0xc: 0x820,\n\t 0xd: 0x0,\n\t 0xe: 0x8000020,\n\t 0xf: 0x20820,\n\t 0x80000000: 0x800,\n\t 0x80000001: 0x8020820,\n\t 0x80000002: 0x8000820,\n\t 0x80000003: 0x8000000,\n\t 0x80000004: 0x8020000,\n\t 0x80000005: 0x20800,\n\t 0x80000006: 0x20820,\n\t 0x80000007: 0x20,\n\t 0x80000008: 0x8000020,\n\t 0x80000009: 0x820,\n\t 0x8000000a: 0x20020,\n\t 0x8000000b: 0x8020800,\n\t 0x8000000c: 0x0,\n\t 0x8000000d: 0x8020020,\n\t 0x8000000e: 0x8000800,\n\t 0x8000000f: 0x20000,\n\t 0x10: 0x20820,\n\t 0x11: 0x8020800,\n\t 0x12: 0x20,\n\t 0x13: 0x800,\n\t 0x14: 0x8000800,\n\t 0x15: 0x8000020,\n\t 0x16: 0x8020020,\n\t 0x17: 0x20000,\n\t 0x18: 0x0,\n\t 0x19: 0x20020,\n\t 0x1a: 0x8020000,\n\t 0x1b: 0x8000820,\n\t 0x1c: 0x8020820,\n\t 0x1d: 0x20800,\n\t 0x1e: 0x820,\n\t 0x1f: 0x8000000,\n\t 0x80000010: 0x20000,\n\t 0x80000011: 0x800,\n\t 0x80000012: 0x8020020,\n\t 0x80000013: 0x20820,\n\t 0x80000014: 0x20,\n\t 0x80000015: 0x8020000,\n\t 0x80000016: 0x8000000,\n\t 0x80000017: 0x8000820,\n\t 0x80000018: 0x8020820,\n\t 0x80000019: 0x8000020,\n\t 0x8000001a: 0x8000800,\n\t 0x8000001b: 0x0,\n\t 0x8000001c: 0x20800,\n\t 0x8000001d: 0x820,\n\t 0x8000001e: 0x20020,\n\t 0x8000001f: 0x8020800\n\t }\n\t ];\n\n\t // Masks that select the SBOX input\n\t var SBOX_MASK = [\n\t 0xf8000001, 0x1f800000, 0x01f80000, 0x001f8000,\n\t 0x0001f800, 0x00001f80, 0x000001f8, 0x8000001f\n\t ];\n\n\t /**\n\t * DES block cipher algorithm.\n\t */\n\t var DES = C_algo.DES = BlockCipher.extend({\n\t _doReset: function () {\n\t // Shortcuts\n\t var key = this._key;\n\t var keyWords = key.words;\n\n\t // Select 56 bits according to PC1\n\t var keyBits = [];\n\t for (var i = 0; i < 56; i++) {\n\t var keyBitPos = PC1[i] - 1;\n\t keyBits[i] = (keyWords[keyBitPos >>> 5] >>> (31 - keyBitPos % 32)) & 1;\n\t }\n\n\t // Assemble 16 subkeys\n\t var subKeys = this._subKeys = [];\n\t for (var nSubKey = 0; nSubKey < 16; nSubKey++) {\n\t // Create subkey\n\t var subKey = subKeys[nSubKey] = [];\n\n\t // Shortcut\n\t var bitShift = BIT_SHIFTS[nSubKey];\n\n\t // Select 48 bits according to PC2\n\t for (var i = 0; i < 24; i++) {\n\t // Select from the left 28 key bits\n\t subKey[(i / 6) | 0] |= keyBits[((PC2[i] - 1) + bitShift) % 28] << (31 - i % 6);\n\n\t // Select from the right 28 key bits\n\t subKey[4 + ((i / 6) | 0)] |= keyBits[28 + (((PC2[i + 24] - 1) + bitShift) % 28)] << (31 - i % 6);\n\t }\n\n\t // Since each subkey is applied to an expanded 32-bit input,\n\t // the subkey can be broken into 8 values scaled to 32-bits,\n\t // which allows the key to be used without expansion\n\t subKey[0] = (subKey[0] << 1) | (subKey[0] >>> 31);\n\t for (var i = 1; i < 7; i++) {\n\t subKey[i] = subKey[i] >>> ((i - 1) * 4 + 3);\n\t }\n\t subKey[7] = (subKey[7] << 5) | (subKey[7] >>> 27);\n\t }\n\n\t // Compute inverse subkeys\n\t var invSubKeys = this._invSubKeys = [];\n\t for (var i = 0; i < 16; i++) {\n\t invSubKeys[i] = subKeys[15 - i];\n\t }\n\t },\n\n\t encryptBlock: function (M, offset) {\n\t this._doCryptBlock(M, offset, this._subKeys);\n\t },\n\n\t decryptBlock: function (M, offset) {\n\t this._doCryptBlock(M, offset, this._invSubKeys);\n\t },\n\n\t _doCryptBlock: function (M, offset, subKeys) {\n\t // Get input\n\t this._lBlock = M[offset];\n\t this._rBlock = M[offset + 1];\n\n\t // Initial permutation\n\t exchangeLR.call(this, 4, 0x0f0f0f0f);\n\t exchangeLR.call(this, 16, 0x0000ffff);\n\t exchangeRL.call(this, 2, 0x33333333);\n\t exchangeRL.call(this, 8, 0x00ff00ff);\n\t exchangeLR.call(this, 1, 0x55555555);\n\n\t // Rounds\n\t for (var round = 0; round < 16; round++) {\n\t // Shortcuts\n\t var subKey = subKeys[round];\n\t var lBlock = this._lBlock;\n\t var rBlock = this._rBlock;\n\n\t // Feistel function\n\t var f = 0;\n\t for (var i = 0; i < 8; i++) {\n\t f |= SBOX_P[i][((rBlock ^ subKey[i]) & SBOX_MASK[i]) >>> 0];\n\t }\n\t this._lBlock = rBlock;\n\t this._rBlock = lBlock ^ f;\n\t }\n\n\t // Undo swap from last round\n\t var t = this._lBlock;\n\t this._lBlock = this._rBlock;\n\t this._rBlock = t;\n\n\t // Final permutation\n\t exchangeLR.call(this, 1, 0x55555555);\n\t exchangeRL.call(this, 8, 0x00ff00ff);\n\t exchangeRL.call(this, 2, 0x33333333);\n\t exchangeLR.call(this, 16, 0x0000ffff);\n\t exchangeLR.call(this, 4, 0x0f0f0f0f);\n\n\t // Set output\n\t M[offset] = this._lBlock;\n\t M[offset + 1] = this._rBlock;\n\t },\n\n\t keySize: 64/32,\n\n\t ivSize: 64/32,\n\n\t blockSize: 64/32\n\t });\n\n\t // Swap bits across the left and right words\n\t function exchangeLR(offset, mask) {\n\t var t = ((this._lBlock >>> offset) ^ this._rBlock) & mask;\n\t this._rBlock ^= t;\n\t this._lBlock ^= t << offset;\n\t }\n\n\t function exchangeRL(offset, mask) {\n\t var t = ((this._rBlock >>> offset) ^ this._lBlock) & mask;\n\t this._lBlock ^= t;\n\t this._rBlock ^= t << offset;\n\t }\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.DES.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.DES.decrypt(ciphertext, key, cfg);\n\t */\n\t C.DES = BlockCipher._createHelper(DES);\n\n\t /**\n\t * Triple-DES block cipher algorithm.\n\t */\n\t var TripleDES = C_algo.TripleDES = BlockCipher.extend({\n\t _doReset: function () {\n\t // Shortcuts\n\t var key = this._key;\n\t var keyWords = key.words;\n\n\t // Create DES instances\n\t this._des1 = DES.createEncryptor(WordArray.create(keyWords.slice(0, 2)));\n\t this._des2 = DES.createEncryptor(WordArray.create(keyWords.slice(2, 4)));\n\t this._des3 = DES.createEncryptor(WordArray.create(keyWords.slice(4, 6)));\n\t },\n\n\t encryptBlock: function (M, offset) {\n\t this._des1.encryptBlock(M, offset);\n\t this._des2.decryptBlock(M, offset);\n\t this._des3.encryptBlock(M, offset);\n\t },\n\n\t decryptBlock: function (M, offset) {\n\t this._des3.decryptBlock(M, offset);\n\t this._des2.encryptBlock(M, offset);\n\t this._des1.decryptBlock(M, offset);\n\t },\n\n\t keySize: 192/32,\n\n\t ivSize: 64/32,\n\n\t blockSize: 64/32\n\t });\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.TripleDES.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.TripleDES.decrypt(ciphertext, key, cfg);\n\t */\n\t C.TripleDES = BlockCipher._createHelper(TripleDES);\n\t}());\n\n\n\treturn CryptoJS.TripleDES;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./enc-base64\"), require(\"./md5\"), require(\"./evpkdf\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./enc-base64\", \"./md5\", \"./evpkdf\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var StreamCipher = C_lib.StreamCipher;\n\t var C_algo = C.algo;\n\n\t /**\n\t * RC4 stream cipher algorithm.\n\t */\n\t var RC4 = C_algo.RC4 = StreamCipher.extend({\n\t _doReset: function () {\n\t // Shortcuts\n\t var key = this._key;\n\t var keyWords = key.words;\n\t var keySigBytes = key.sigBytes;\n\n\t // Init sbox\n\t var S = this._S = [];\n\t for (var i = 0; i < 256; i++) {\n\t S[i] = i;\n\t }\n\n\t // Key setup\n\t for (var i = 0, j = 0; i < 256; i++) {\n\t var keyByteIndex = i % keySigBytes;\n\t var keyByte = (keyWords[keyByteIndex >>> 2] >>> (24 - (keyByteIndex % 4) * 8)) & 0xff;\n\n\t j = (j + S[i] + keyByte) % 256;\n\n\t // Swap\n\t var t = S[i];\n\t S[i] = S[j];\n\t S[j] = t;\n\t }\n\n\t // Counters\n\t this._i = this._j = 0;\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t M[offset] ^= generateKeystreamWord.call(this);\n\t },\n\n\t keySize: 256/32,\n\n\t ivSize: 0\n\t });\n\n\t function generateKeystreamWord() {\n\t // Shortcuts\n\t var S = this._S;\n\t var i = this._i;\n\t var j = this._j;\n\n\t // Generate keystream word\n\t var keystreamWord = 0;\n\t for (var n = 0; n < 4; n++) {\n\t i = (i + 1) % 256;\n\t j = (j + S[i]) % 256;\n\n\t // Swap\n\t var t = S[i];\n\t S[i] = S[j];\n\t S[j] = t;\n\n\t keystreamWord |= S[(S[i] + S[j]) % 256] << (24 - n * 8);\n\t }\n\n\t // Update counters\n\t this._i = i;\n\t this._j = j;\n\n\t return keystreamWord;\n\t }\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.RC4.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.RC4.decrypt(ciphertext, key, cfg);\n\t */\n\t C.RC4 = StreamCipher._createHelper(RC4);\n\n\t /**\n\t * Modified RC4 stream cipher algorithm.\n\t */\n\t var RC4Drop = C_algo.RC4Drop = RC4.extend({\n\t /**\n\t * Configuration options.\n\t *\n\t * @property {number} drop The number of keystream words to drop. Default 192\n\t */\n\t cfg: RC4.cfg.extend({\n\t drop: 192\n\t }),\n\n\t _doReset: function () {\n\t RC4._doReset.call(this);\n\n\t // Drop\n\t for (var i = this.cfg.drop; i > 0; i--) {\n\t generateKeystreamWord.call(this);\n\t }\n\t }\n\t });\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.RC4Drop.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.RC4Drop.decrypt(ciphertext, key, cfg);\n\t */\n\t C.RC4Drop = StreamCipher._createHelper(RC4Drop);\n\t}());\n\n\n\treturn CryptoJS.RC4;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./enc-base64\"), require(\"./md5\"), require(\"./evpkdf\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./enc-base64\", \"./md5\", \"./evpkdf\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var StreamCipher = C_lib.StreamCipher;\n\t var C_algo = C.algo;\n\n\t // Reusable objects\n\t var S = [];\n\t var C_ = [];\n\t var G = [];\n\n\t /**\n\t * Rabbit stream cipher algorithm\n\t */\n\t var Rabbit = C_algo.Rabbit = StreamCipher.extend({\n\t _doReset: function () {\n\t // Shortcuts\n\t var K = this._key.words;\n\t var iv = this.cfg.iv;\n\n\t // Swap endian\n\t for (var i = 0; i < 4; i++) {\n\t K[i] = (((K[i] << 8) | (K[i] >>> 24)) & 0x00ff00ff) |\n\t (((K[i] << 24) | (K[i] >>> 8)) & 0xff00ff00);\n\t }\n\n\t // Generate initial state values\n\t var X = this._X = [\n\t K[0], (K[3] << 16) | (K[2] >>> 16),\n\t K[1], (K[0] << 16) | (K[3] >>> 16),\n\t K[2], (K[1] << 16) | (K[0] >>> 16),\n\t K[3], (K[2] << 16) | (K[1] >>> 16)\n\t ];\n\n\t // Generate initial counter values\n\t var C = this._C = [\n\t (K[2] << 16) | (K[2] >>> 16), (K[0] & 0xffff0000) | (K[1] & 0x0000ffff),\n\t (K[3] << 16) | (K[3] >>> 16), (K[1] & 0xffff0000) | (K[2] & 0x0000ffff),\n\t (K[0] << 16) | (K[0] >>> 16), (K[2] & 0xffff0000) | (K[3] & 0x0000ffff),\n\t (K[1] << 16) | (K[1] >>> 16), (K[3] & 0xffff0000) | (K[0] & 0x0000ffff)\n\t ];\n\n\t // Carry bit\n\t this._b = 0;\n\n\t // Iterate the system four times\n\t for (var i = 0; i < 4; i++) {\n\t nextState.call(this);\n\t }\n\n\t // Modify the counters\n\t for (var i = 0; i < 8; i++) {\n\t C[i] ^= X[(i + 4) & 7];\n\t }\n\n\t // IV setup\n\t if (iv) {\n\t // Shortcuts\n\t var IV = iv.words;\n\t var IV_0 = IV[0];\n\t var IV_1 = IV[1];\n\n\t // Generate four subvectors\n\t var i0 = (((IV_0 << 8) | (IV_0 >>> 24)) & 0x00ff00ff) | (((IV_0 << 24) | (IV_0 >>> 8)) & 0xff00ff00);\n\t var i2 = (((IV_1 << 8) | (IV_1 >>> 24)) & 0x00ff00ff) | (((IV_1 << 24) | (IV_1 >>> 8)) & 0xff00ff00);\n\t var i1 = (i0 >>> 16) | (i2 & 0xffff0000);\n\t var i3 = (i2 << 16) | (i0 & 0x0000ffff);\n\n\t // Modify counter values\n\t C[0] ^= i0;\n\t C[1] ^= i1;\n\t C[2] ^= i2;\n\t C[3] ^= i3;\n\t C[4] ^= i0;\n\t C[5] ^= i1;\n\t C[6] ^= i2;\n\t C[7] ^= i3;\n\n\t // Iterate the system four times\n\t for (var i = 0; i < 4; i++) {\n\t nextState.call(this);\n\t }\n\t }\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcut\n\t var X = this._X;\n\n\t // Iterate the system\n\t nextState.call(this);\n\n\t // Generate four keystream words\n\t S[0] = X[0] ^ (X[5] >>> 16) ^ (X[3] << 16);\n\t S[1] = X[2] ^ (X[7] >>> 16) ^ (X[5] << 16);\n\t S[2] = X[4] ^ (X[1] >>> 16) ^ (X[7] << 16);\n\t S[3] = X[6] ^ (X[3] >>> 16) ^ (X[1] << 16);\n\n\t for (var i = 0; i < 4; i++) {\n\t // Swap endian\n\t S[i] = (((S[i] << 8) | (S[i] >>> 24)) & 0x00ff00ff) |\n\t (((S[i] << 24) | (S[i] >>> 8)) & 0xff00ff00);\n\n\t // Encrypt\n\t M[offset + i] ^= S[i];\n\t }\n\t },\n\n\t blockSize: 128/32,\n\n\t ivSize: 64/32\n\t });\n\n\t function nextState() {\n\t // Shortcuts\n\t var X = this._X;\n\t var C = this._C;\n\n\t // Save old counter values\n\t for (var i = 0; i < 8; i++) {\n\t C_[i] = C[i];\n\t }\n\n\t // Calculate new counter values\n\t C[0] = (C[0] + 0x4d34d34d + this._b) | 0;\n\t C[1] = (C[1] + 0xd34d34d3 + ((C[0] >>> 0) < (C_[0] >>> 0) ? 1 : 0)) | 0;\n\t C[2] = (C[2] + 0x34d34d34 + ((C[1] >>> 0) < (C_[1] >>> 0) ? 1 : 0)) | 0;\n\t C[3] = (C[3] + 0x4d34d34d + ((C[2] >>> 0) < (C_[2] >>> 0) ? 1 : 0)) | 0;\n\t C[4] = (C[4] + 0xd34d34d3 + ((C[3] >>> 0) < (C_[3] >>> 0) ? 1 : 0)) | 0;\n\t C[5] = (C[5] + 0x34d34d34 + ((C[4] >>> 0) < (C_[4] >>> 0) ? 1 : 0)) | 0;\n\t C[6] = (C[6] + 0x4d34d34d + ((C[5] >>> 0) < (C_[5] >>> 0) ? 1 : 0)) | 0;\n\t C[7] = (C[7] + 0xd34d34d3 + ((C[6] >>> 0) < (C_[6] >>> 0) ? 1 : 0)) | 0;\n\t this._b = (C[7] >>> 0) < (C_[7] >>> 0) ? 1 : 0;\n\n\t // Calculate the g-values\n\t for (var i = 0; i < 8; i++) {\n\t var gx = X[i] + C[i];\n\n\t // Construct high and low argument for squaring\n\t var ga = gx & 0xffff;\n\t var gb = gx >>> 16;\n\n\t // Calculate high and low result of squaring\n\t var gh = ((((ga * ga) >>> 17) + ga * gb) >>> 15) + gb * gb;\n\t var gl = (((gx & 0xffff0000) * gx) | 0) + (((gx & 0x0000ffff) * gx) | 0);\n\n\t // High XOR low\n\t G[i] = gh ^ gl;\n\t }\n\n\t // Calculate new state values\n\t X[0] = (G[0] + ((G[7] << 16) | (G[7] >>> 16)) + ((G[6] << 16) | (G[6] >>> 16))) | 0;\n\t X[1] = (G[1] + ((G[0] << 8) | (G[0] >>> 24)) + G[7]) | 0;\n\t X[2] = (G[2] + ((G[1] << 16) | (G[1] >>> 16)) + ((G[0] << 16) | (G[0] >>> 16))) | 0;\n\t X[3] = (G[3] + ((G[2] << 8) | (G[2] >>> 24)) + G[1]) | 0;\n\t X[4] = (G[4] + ((G[3] << 16) | (G[3] >>> 16)) + ((G[2] << 16) | (G[2] >>> 16))) | 0;\n\t X[5] = (G[5] + ((G[4] << 8) | (G[4] >>> 24)) + G[3]) | 0;\n\t X[6] = (G[6] + ((G[5] << 16) | (G[5] >>> 16)) + ((G[4] << 16) | (G[4] >>> 16))) | 0;\n\t X[7] = (G[7] + ((G[6] << 8) | (G[6] >>> 24)) + G[5]) | 0;\n\t }\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.Rabbit.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.Rabbit.decrypt(ciphertext, key, cfg);\n\t */\n\t C.Rabbit = StreamCipher._createHelper(Rabbit);\n\t}());\n\n\n\treturn CryptoJS.Rabbit;\n\n}));",";(function (root, factory, undef) {\n\tif (typeof exports === \"object\") {\n\t\t// CommonJS\n\t\tmodule.exports = exports = factory(require(\"./core\"), require(\"./enc-base64\"), require(\"./md5\"), require(\"./evpkdf\"), require(\"./cipher-core\"));\n\t}\n\telse if (typeof define === \"function\" && define.amd) {\n\t\t// AMD\n\t\tdefine([\"./core\", \"./enc-base64\", \"./md5\", \"./evpkdf\", \"./cipher-core\"], factory);\n\t}\n\telse {\n\t\t// Global (browser)\n\t\tfactory(root.CryptoJS);\n\t}\n}(this, function (CryptoJS) {\n\n\t(function () {\n\t // Shortcuts\n\t var C = CryptoJS;\n\t var C_lib = C.lib;\n\t var StreamCipher = C_lib.StreamCipher;\n\t var C_algo = C.algo;\n\n\t // Reusable objects\n\t var S = [];\n\t var C_ = [];\n\t var G = [];\n\n\t /**\n\t * Rabbit stream cipher algorithm.\n\t *\n\t * This is a legacy version that neglected to convert the key to little-endian.\n\t * This error doesn't affect the cipher's security,\n\t * but it does affect its compatibility with other implementations.\n\t */\n\t var RabbitLegacy = C_algo.RabbitLegacy = StreamCipher.extend({\n\t _doReset: function () {\n\t // Shortcuts\n\t var K = this._key.words;\n\t var iv = this.cfg.iv;\n\n\t // Generate initial state values\n\t var X = this._X = [\n\t K[0], (K[3] << 16) | (K[2] >>> 16),\n\t K[1], (K[0] << 16) | (K[3] >>> 16),\n\t K[2], (K[1] << 16) | (K[0] >>> 16),\n\t K[3], (K[2] << 16) | (K[1] >>> 16)\n\t ];\n\n\t // Generate initial counter values\n\t var C = this._C = [\n\t (K[2] << 16) | (K[2] >>> 16), (K[0] & 0xffff0000) | (K[1] & 0x0000ffff),\n\t (K[3] << 16) | (K[3] >>> 16), (K[1] & 0xffff0000) | (K[2] & 0x0000ffff),\n\t (K[0] << 16) | (K[0] >>> 16), (K[2] & 0xffff0000) | (K[3] & 0x0000ffff),\n\t (K[1] << 16) | (K[1] >>> 16), (K[3] & 0xffff0000) | (K[0] & 0x0000ffff)\n\t ];\n\n\t // Carry bit\n\t this._b = 0;\n\n\t // Iterate the system four times\n\t for (var i = 0; i < 4; i++) {\n\t nextState.call(this);\n\t }\n\n\t // Modify the counters\n\t for (var i = 0; i < 8; i++) {\n\t C[i] ^= X[(i + 4) & 7];\n\t }\n\n\t // IV setup\n\t if (iv) {\n\t // Shortcuts\n\t var IV = iv.words;\n\t var IV_0 = IV[0];\n\t var IV_1 = IV[1];\n\n\t // Generate four subvectors\n\t var i0 = (((IV_0 << 8) | (IV_0 >>> 24)) & 0x00ff00ff) | (((IV_0 << 24) | (IV_0 >>> 8)) & 0xff00ff00);\n\t var i2 = (((IV_1 << 8) | (IV_1 >>> 24)) & 0x00ff00ff) | (((IV_1 << 24) | (IV_1 >>> 8)) & 0xff00ff00);\n\t var i1 = (i0 >>> 16) | (i2 & 0xffff0000);\n\t var i3 = (i2 << 16) | (i0 & 0x0000ffff);\n\n\t // Modify counter values\n\t C[0] ^= i0;\n\t C[1] ^= i1;\n\t C[2] ^= i2;\n\t C[3] ^= i3;\n\t C[4] ^= i0;\n\t C[5] ^= i1;\n\t C[6] ^= i2;\n\t C[7] ^= i3;\n\n\t // Iterate the system four times\n\t for (var i = 0; i < 4; i++) {\n\t nextState.call(this);\n\t }\n\t }\n\t },\n\n\t _doProcessBlock: function (M, offset) {\n\t // Shortcut\n\t var X = this._X;\n\n\t // Iterate the system\n\t nextState.call(this);\n\n\t // Generate four keystream words\n\t S[0] = X[0] ^ (X[5] >>> 16) ^ (X[3] << 16);\n\t S[1] = X[2] ^ (X[7] >>> 16) ^ (X[5] << 16);\n\t S[2] = X[4] ^ (X[1] >>> 16) ^ (X[7] << 16);\n\t S[3] = X[6] ^ (X[3] >>> 16) ^ (X[1] << 16);\n\n\t for (var i = 0; i < 4; i++) {\n\t // Swap endian\n\t S[i] = (((S[i] << 8) | (S[i] >>> 24)) & 0x00ff00ff) |\n\t (((S[i] << 24) | (S[i] >>> 8)) & 0xff00ff00);\n\n\t // Encrypt\n\t M[offset + i] ^= S[i];\n\t }\n\t },\n\n\t blockSize: 128/32,\n\n\t ivSize: 64/32\n\t });\n\n\t function nextState() {\n\t // Shortcuts\n\t var X = this._X;\n\t var C = this._C;\n\n\t // Save old counter values\n\t for (var i = 0; i < 8; i++) {\n\t C_[i] = C[i];\n\t }\n\n\t // Calculate new counter values\n\t C[0] = (C[0] + 0x4d34d34d + this._b) | 0;\n\t C[1] = (C[1] + 0xd34d34d3 + ((C[0] >>> 0) < (C_[0] >>> 0) ? 1 : 0)) | 0;\n\t C[2] = (C[2] + 0x34d34d34 + ((C[1] >>> 0) < (C_[1] >>> 0) ? 1 : 0)) | 0;\n\t C[3] = (C[3] + 0x4d34d34d + ((C[2] >>> 0) < (C_[2] >>> 0) ? 1 : 0)) | 0;\n\t C[4] = (C[4] + 0xd34d34d3 + ((C[3] >>> 0) < (C_[3] >>> 0) ? 1 : 0)) | 0;\n\t C[5] = (C[5] + 0x34d34d34 + ((C[4] >>> 0) < (C_[4] >>> 0) ? 1 : 0)) | 0;\n\t C[6] = (C[6] + 0x4d34d34d + ((C[5] >>> 0) < (C_[5] >>> 0) ? 1 : 0)) | 0;\n\t C[7] = (C[7] + 0xd34d34d3 + ((C[6] >>> 0) < (C_[6] >>> 0) ? 1 : 0)) | 0;\n\t this._b = (C[7] >>> 0) < (C_[7] >>> 0) ? 1 : 0;\n\n\t // Calculate the g-values\n\t for (var i = 0; i < 8; i++) {\n\t var gx = X[i] + C[i];\n\n\t // Construct high and low argument for squaring\n\t var ga = gx & 0xffff;\n\t var gb = gx >>> 16;\n\n\t // Calculate high and low result of squaring\n\t var gh = ((((ga * ga) >>> 17) + ga * gb) >>> 15) + gb * gb;\n\t var gl = (((gx & 0xffff0000) * gx) | 0) + (((gx & 0x0000ffff) * gx) | 0);\n\n\t // High XOR low\n\t G[i] = gh ^ gl;\n\t }\n\n\t // Calculate new state values\n\t X[0] = (G[0] + ((G[7] << 16) | (G[7] >>> 16)) + ((G[6] << 16) | (G[6] >>> 16))) | 0;\n\t X[1] = (G[1] + ((G[0] << 8) | (G[0] >>> 24)) + G[7]) | 0;\n\t X[2] = (G[2] + ((G[1] << 16) | (G[1] >>> 16)) + ((G[0] << 16) | (G[0] >>> 16))) | 0;\n\t X[3] = (G[3] + ((G[2] << 8) | (G[2] >>> 24)) + G[1]) | 0;\n\t X[4] = (G[4] + ((G[3] << 16) | (G[3] >>> 16)) + ((G[2] << 16) | (G[2] >>> 16))) | 0;\n\t X[5] = (G[5] + ((G[4] << 8) | (G[4] >>> 24)) + G[3]) | 0;\n\t X[6] = (G[6] + ((G[5] << 16) | (G[5] >>> 16)) + ((G[4] << 16) | (G[4] >>> 16))) | 0;\n\t X[7] = (G[7] + ((G[6] << 8) | (G[6] >>> 24)) + G[5]) | 0;\n\t }\n\n\t /**\n\t * Shortcut functions to the cipher's object interface.\n\t *\n\t * @example\n\t *\n\t * var ciphertext = CryptoJS.RabbitLegacy.encrypt(message, key, cfg);\n\t * var plaintext = CryptoJS.RabbitLegacy.decrypt(ciphertext, key, cfg);\n\t */\n\t C.RabbitLegacy = StreamCipher._createHelper(RabbitLegacy);\n\t}());\n\n\n\treturn CryptoJS.RabbitLegacy;\n\n}));","\"use strict\";\n\nvar _require = require('./Draggable'),\n Draggable = _require.default,\n DraggableCore = _require.DraggableCore; // Previous versions of this lib exported as the root export. As to no-// them, or TypeScript, we export *both* as the root and as 'default'.\n// See https://github.com/mzabriskie/react-draggable/pull/254\n// and https://github.com/mzabriskie/react-draggable/issues/266\n\n\nmodule.exports = Draggable;\nmodule.exports.default = Draggable;\nmodule.exports.DraggableCore = DraggableCore;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"DraggableCore\", {\n enumerable: true,\n get: function get() {\n return _DraggableCore.default;\n }\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\n\nvar _clsx2 = _interopRequireDefault(require(\"clsx\"));\n\nvar _domFns = require(\"./utils/domFns\");\n\nvar _positionFns = require(\"./utils/positionFns\");\n\nvar _shims = require(\"./utils/shims\");\n\nvar _DraggableCore = _interopRequireDefault(require(\"./DraggableCore\"));\n\nvar _log = _interopRequireDefault(require(\"./utils/log\"));\n\nvar _excluded = [\"axis\", \"bounds\", \"children\", \"defaultPosition\", \"defaultClassName\", \"defaultClassNameDragging\", \"defaultClassNameDragged\", \"position\", \"positionOffset\", \"scale\"];\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { 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\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n//\n// Define \n//\nvar Draggable = /*#__PURE__*/function (_React$Component) {\n _inherits(Draggable, _React$Component);\n\n var _super = _createSuper(Draggable);\n\n function Draggable(props\n /*: DraggableProps*/\n ) {\n var _this;\n\n _classCallCheck(this, Draggable);\n\n _this = _super.call(this, props);\n\n _defineProperty(_assertThisInitialized(_this), \"onDragStart\", function (e, coreData) {\n (0, _log.default)('Draggable: onDragStart: %j', coreData); // Short-circuit if user's callback killed it.\n\n var shouldStart = _this.props.onStart(e, (0, _positionFns.createDraggableData)(_assertThisInitialized(_this), coreData)); // Kills start event on core as well, so move handlers are never bound.\n\n\n if (shouldStart === false) return false;\n\n _this.setState({\n dragging: true,\n dragged: true\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDrag\", function (e, coreData) {\n if (!_this.state.dragging) return false;\n (0, _log.default)('Draggable: onDrag: %j', coreData);\n var uiData = (0, _positionFns.createDraggableData)(_assertThisInitialized(_this), coreData);\n var newState\n /*: $Shape*/\n = {\n x: uiData.x,\n y: uiData.y\n }; // Keep within bounds.\n\n if (_this.props.bounds) {\n // Save original x and y.\n var x = newState.x,\n y = newState.y; // Add slack to the values used to calculate bound position. This will ensure that if\n // we start removing slack, the element won't react to it right away until it's been\n // completely removed.\n\n newState.x += _this.state.slackX;\n newState.y += _this.state.slackY; // Get bound position. This will ceil/floor the x and y within the boundaries.\n\n var _getBoundPosition = (0, _positionFns.getBoundPosition)(_assertThisInitialized(_this), newState.x, newState.y),\n _getBoundPosition2 = _slicedToArray(_getBoundPosition, 2),\n newStateX = _getBoundPosition2[0],\n newStateY = _getBoundPosition2[1];\n\n newState.x = newStateX;\n newState.y = newStateY; // Recalculate slack by noting how much was shaved by the boundPosition handler.\n\n newState.slackX = _this.state.slackX + (x - newState.x);\n newState.slackY = _this.state.slackY + (y - newState.y); // Update the event we fire to reflect what really happened after bounds took effect.\n\n uiData.x = newState.x;\n uiData.y = newState.y;\n uiData.deltaX = newState.x - _this.state.x;\n uiData.deltaY = newState.y - _this.state.y;\n } // Short-circuit if user's callback killed it.\n\n\n var shouldUpdate = _this.props.onDrag(e, uiData);\n\n if (shouldUpdate === false) return false;\n\n _this.setState(newState);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDragStop\", function (e, coreData) {\n if (!_this.state.dragging) return false; // Short-circuit if user's callback killed it.\n\n var shouldContinue = _this.props.onStop(e, (0, _positionFns.createDraggableData)(_assertThisInitialized(_this), coreData));\n\n if (shouldContinue === false) return false;\n (0, _log.default)('Draggable: onDragStop: %j', coreData);\n var newState\n /*: $Shape*/\n = {\n dragging: false,\n slackX: 0,\n slackY: 0\n }; // If this is a controlled component, the result of this operation will be to\n // revert back to the old position. We expect a handler on `onDragStop`, at the least.\n\n var controlled = Boolean(_this.props.position);\n\n if (controlled) {\n var _this$props$position = _this.props.position,\n x = _this$props$position.x,\n y = _this$props$position.y;\n newState.x = x;\n newState.y = y;\n }\n\n _this.setState(newState);\n });\n\n _this.state = {\n // Whether or not we are currently dragging.\n dragging: false,\n // Whether or not we have been dragged before.\n dragged: false,\n // Current transform x and y.\n x: props.position ? props.position.x : props.defaultPosition.x,\n y: props.position ? props.position.y : props.defaultPosition.y,\n prevPropsPosition: _objectSpread({}, props.position),\n // Used for compensating for out-of-bounds drags\n slackX: 0,\n slackY: 0,\n // Can only determine if SVG after mounting\n isElementSVG: false\n };\n\n if (props.position && !(props.onDrag || props.onStop)) {\n // eslint-disable-next-line no-console\n console.warn('A `position` was applied to this , without drag handlers. This will make this ' + 'component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the ' + '`position` of this element.');\n }\n\n return _this;\n }\n\n _createClass(Draggable, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n // Check to see if the element passed is an instanceof SVGElement\n if (typeof window.SVGElement !== 'undefined' && this.findDOMNode() instanceof window.SVGElement) {\n this.setState({\n isElementSVG: true\n });\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.setState({\n dragging: false\n }); // prevents invariant if unmounted while dragging\n } // React Strict Mode compatibility: if `nodeRef` is passed, we will use it instead of trying to find\n // the underlying DOM node ourselves. See the README for more information.\n\n }, {\n key: \"findDOMNode\",\n value: function findDOMNode()\n /*: ?HTMLElement*/\n {\n var _this$props$nodeRef$c, _this$props, _this$props$nodeRef;\n\n return (_this$props$nodeRef$c = (_this$props = this.props) === null || _this$props === void 0 ? void 0 : (_this$props$nodeRef = _this$props.nodeRef) === null || _this$props$nodeRef === void 0 ? void 0 : _this$props$nodeRef.current) !== null && _this$props$nodeRef$c !== void 0 ? _this$props$nodeRef$c : _reactDom.default.findDOMNode(this);\n }\n }, {\n key: \"render\",\n value: function render()\n /*: ReactElement*/\n {\n var _clsx;\n\n var _this$props2 = this.props,\n axis = _this$props2.axis,\n bounds = _this$props2.bounds,\n children = _this$props2.children,\n defaultPosition = _this$props2.defaultPosition,\n defaultClassName = _this$props2.defaultClassName,\n defaultClassNameDragging = _this$props2.defaultClassNameDragging,\n defaultClassNameDragged = _this$props2.defaultClassNameDragged,\n position = _this$props2.position,\n positionOffset = _this$props2.positionOffset,\n scale = _this$props2.scale,\n draggableCoreProps = _objectWithoutProperties(_this$props2, _excluded);\n\n var style = {};\n var svgTransform = null; // If this is controlled, we don't want to move it - unless it's dragging.\n\n var controlled = Boolean(position);\n var draggable = !controlled || this.state.dragging;\n var validPosition = position || defaultPosition;\n var transformOpts = {\n // Set left if horizontal drag is enabled\n x: (0, _positionFns.canDragX)(this) && draggable ? this.state.x : validPosition.x,\n // Set top if vertical drag is enabled\n y: (0, _positionFns.canDragY)(this) && draggable ? this.state.y : validPosition.y\n }; // If this element was SVG, we use the `transform` attribute.\n\n if (this.state.isElementSVG) {\n svgTransform = (0, _domFns.createSVGTransform)(transformOpts, positionOffset);\n } else {\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n style = (0, _domFns.createCSSTransform)(transformOpts, positionOffset);\n } // Mark with class while dragging\n\n\n var className = (0, _clsx2.default)(children.props.className || '', defaultClassName, (_clsx = {}, _defineProperty(_clsx, defaultClassNameDragging, this.state.dragging), _defineProperty(_clsx, defaultClassNameDragged, this.state.dragged), _clsx)); // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n\n return /*#__PURE__*/React.createElement(_DraggableCore.default, _extends({}, draggableCoreProps, {\n onStart: this.onDragStart,\n onDrag: this.onDrag,\n onStop: this.onDragStop\n }), /*#__PURE__*/React.cloneElement(React.Children.only(children), {\n className: className,\n style: _objectSpread(_objectSpread({}, children.props.style), style),\n transform: svgTransform\n }));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: // React 16.3+\n // Arity (props, state)\n function getDerivedStateFromProps(_ref, _ref2)\n /*: ?$Shape*/\n {\n var position = _ref.position;\n var prevPropsPosition = _ref2.prevPropsPosition;\n\n // Set x/y if a new position is provided in props that is different than the previous.\n if (position && (!prevPropsPosition || position.x !== prevPropsPosition.x || position.y !== prevPropsPosition.y)) {\n (0, _log.default)('Draggable: getDerivedStateFromProps %j', {\n position: position,\n prevPropsPosition: prevPropsPosition\n });\n return {\n x: position.x,\n y: position.y,\n prevPropsPosition: _objectSpread({}, position)\n };\n }\n\n return null;\n }\n }]);\n\n return Draggable;\n}(React.Component);\n\nexports.default = Draggable;\n\n_defineProperty(Draggable, \"displayName\", 'Draggable');\n\n_defineProperty(Draggable, \"propTypes\", _objectSpread(_objectSpread({}, _DraggableCore.default.propTypes), {}, {\n /**\n * `axis` determines which axis the draggable can move.\n *\n * Note that all callbacks will still return data as normal. This only\n * controls flushing to the DOM.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n * 'none' limits all movement.\n *\n * Defaults to 'both'.\n */\n axis: _propTypes.default.oneOf(['both', 'x', 'y', 'none']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: _propTypes.default.oneOfType([_propTypes.default.shape({\n left: _propTypes.default.number,\n right: _propTypes.default.number,\n top: _propTypes.default.number,\n bottom: _propTypes.default.number\n }), _propTypes.default.string, _propTypes.default.oneOf([false])]),\n defaultClassName: _propTypes.default.string,\n defaultClassNameDragging: _propTypes.default.string,\n defaultClassNameDragged: _propTypes.default.string,\n\n /**\n * `defaultPosition` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n defaultPosition: _propTypes.default.shape({\n x: _propTypes.default.number,\n y: _propTypes.default.number\n }),\n positionOffset: _propTypes.default.shape({\n x: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),\n y: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string])\n }),\n\n /**\n * `position`, if present, defines the current position of the element.\n *\n * This is similar to how form elements in React work - if no `position` is supplied, the component\n * is uncontrolled.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n position: _propTypes.default.shape({\n x: _propTypes.default.number,\n y: _propTypes.default.number\n }),\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: _shims.dontSetMe,\n style: _shims.dontSetMe,\n transform: _shims.dontSetMe\n}));\n\n_defineProperty(Draggable, \"defaultProps\", _objectSpread(_objectSpread({}, _DraggableCore.default.defaultProps), {}, {\n axis: 'both',\n bounds: false,\n defaultClassName: 'react-draggable',\n defaultClassNameDragging: 'react-draggable-dragging',\n defaultClassNameDragged: 'react-draggable-dragged',\n defaultPosition: {\n x: 0,\n y: 0\n },\n scale: 1\n}));","/**\n * Copyright (c) 2013-present, Facebook, Inc.\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\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\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\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.browserPrefixToKey = browserPrefixToKey;\nexports.browserPrefixToStyle = browserPrefixToStyle;\nexports.default = void 0;\nexports.getPrefix = getPrefix;\nvar prefixes = ['Moz', 'Webkit', 'O', 'ms'];\n\nfunction getPrefix()\n/*: string*/\n{\n var _window$document, _window$document$docu;\n\n var prop\n /*: string*/\n = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'transform';\n // Ensure we're running in an environment where there is actually a global\n // `window` obj\n if (typeof window === 'undefined') return ''; // If we're in a pseudo-browser server-side environment, this access\n // path may not exist, so bail out if it doesn't.\n\n var style = (_window$document = window.document) === null || _window$document === void 0 ? void 0 : (_window$document$docu = _window$document.documentElement) === null || _window$document$docu === void 0 ? void 0 : _window$document$docu.style;\n if (!style) return '';\n if (prop in style) return '';\n\n for (var i = 0; i < prefixes.length; i++) {\n if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i];\n }\n\n return '';\n}\n\nfunction browserPrefixToKey(prop\n/*: string*/\n, prefix\n/*: string*/\n)\n/*: string*/\n{\n return prefix ? \"\".concat(prefix).concat(kebabToTitleCase(prop)) : prop;\n}\n\nfunction browserPrefixToStyle(prop\n/*: string*/\n, prefix\n/*: string*/\n)\n/*: string*/\n{\n return prefix ? \"-\".concat(prefix.toLowerCase(), \"-\").concat(prop) : prop;\n}\n\nfunction kebabToTitleCase(str\n/*: string*/\n)\n/*: string*/\n{\n var out = '';\n var shouldCapitalize = true;\n\n for (var i = 0; i < str.length; i++) {\n if (shouldCapitalize) {\n out += str[i].toUpperCase();\n shouldCapitalize = false;\n } else if (str[i] === '-') {\n shouldCapitalize = true;\n } else {\n out += str[i];\n }\n }\n\n return out;\n} // Default export is the prefix itself, like 'Moz', 'Webkit', etc\n// Note that you may have to re-test for certain things; for instance, Chrome 50\n// can handle unprefixed `transform`, but not unprefixed `user-select`\n\n\nvar _default = (getPrefix()\n/*: string*/\n);\n\nexports.default = _default;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\n\nvar _domFns = require(\"./utils/domFns\");\n\nvar _positionFns = require(\"./utils/positionFns\");\n\nvar _shims = require(\"./utils/shims\");\n\nvar _log = _interopRequireDefault(require(\"./utils/log\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { 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\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// Simple abstraction for dragging events names.\nvar eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n stop: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n stop: 'mouseup'\n }\n}; // Default to mouse events.\n\nvar dragEventFor = eventsFor.mouse;\n/*:: type DraggableCoreState = {\n dragging: boolean,\n lastX: number,\n lastY: number,\n touchIdentifier: ?number\n};*/\n\n/*:: export type DraggableData = {\n node: HTMLElement,\n x: number, y: number,\n deltaX: number, deltaY: number,\n lastX: number, lastY: number,\n};*/\n\n/*:: export type DraggableEventHandler = (e: MouseEvent, data: DraggableData) => void | false;*/\n\n/*:: export type ControlPosition = {x: number, y: number};*/\n\n/*:: export type PositionOffsetControlPosition = {x: number|string, y: number|string};*/\n\n/*:: export type DraggableCoreDefaultProps = {\n allowAnyClick: boolean,\n disabled: boolean,\n enableUserSelectHack: boolean,\n onStart: DraggableEventHandler,\n onDrag: DraggableEventHandler,\n onStop: DraggableEventHandler,\n onMouseDown: (e: MouseEvent) => void,\n scale: number,\n};*/\n\n/*:: export type DraggableCoreProps = {\n ...DraggableCoreDefaultProps,\n cancel: string,\n children: ReactElement,\n offsetParent: HTMLElement,\n grid: [number, number],\n handle: string,\n nodeRef?: ?React.ElementRef,\n};*/\n\n//\n// Define .\n//\n// is for advanced usage of . It maintains minimal internal state so it can\n// work well with libraries that require more control over the element.\n//\nvar DraggableCore = /*#__PURE__*/function (_React$Component) {\n _inherits(DraggableCore, _React$Component);\n\n var _super = _createSuper(DraggableCore);\n\n function DraggableCore() {\n var _this;\n\n _classCallCheck(this, DraggableCore);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n dragging: false,\n // Used while dragging to determine deltas.\n lastX: NaN,\n lastY: NaN,\n touchIdentifier: null\n });\n\n _defineProperty(_assertThisInitialized(_this), \"mounted\", false);\n\n _defineProperty(_assertThisInitialized(_this), \"handleDragStart\", function (e) {\n // Make it possible to attach event handlers on top of this one.\n _this.props.onMouseDown(e); // Only accept left-clicks.\n\n\n if (!_this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false; // Get nodes. Be sure to grab relative document (could be iframed)\n\n var thisNode = _this.findDOMNode();\n\n if (!thisNode || !thisNode.ownerDocument || !thisNode.ownerDocument.body) {\n throw new Error(' not mounted on DragStart!');\n }\n\n var ownerDocument = thisNode.ownerDocument; // Short circuit if handle or cancel prop was provided and selector doesn't match.\n\n if (_this.props.disabled || !(e.target instanceof ownerDocument.defaultView.Node) || _this.props.handle && !(0, _domFns.matchesSelectorAndParentsTo)(e.target, _this.props.handle, thisNode) || _this.props.cancel && (0, _domFns.matchesSelectorAndParentsTo)(e.target, _this.props.cancel, thisNode)) {\n return;\n } // Prevent scrolling on mobile devices, like ipad/iphone.\n // Important that this is after handle/cancel.\n\n\n if (e.type === 'touchstart') e.preventDefault(); // Set touch identifier in component state if this is a touch event. This allows us to\n // distinguish between individual touches on multitouch screens by identifying which\n // touchpoint was set to this element.\n\n var touchIdentifier = (0, _domFns.getTouchIdentifier)(e);\n\n _this.setState({\n touchIdentifier: touchIdentifier\n }); // Get the current drag point from the event. This is used as the offset.\n\n\n var position = (0, _positionFns.getControlPosition)(e, touchIdentifier, _assertThisInitialized(_this));\n if (position == null) return; // not possible but satisfies flow\n\n var x = position.x,\n y = position.y; // Create an event object with all the data parents need to make a decision here.\n\n var coreEvent = (0, _positionFns.createCoreData)(_assertThisInitialized(_this), x, y);\n (0, _log.default)('DraggableCore: handleDragStart: %j', coreEvent); // Call event handler. If it returns explicit false, cancel.\n\n (0, _log.default)('calling', _this.props.onStart);\n\n var shouldUpdate = _this.props.onStart(e, coreEvent);\n\n if (shouldUpdate === false || _this.mounted === false) return; // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n\n if (_this.props.enableUserSelectHack) (0, _domFns.addUserSelectStyles)(ownerDocument); // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n\n _this.setState({\n dragging: true,\n lastX: x,\n lastY: y\n }); // Add events to the document directly so we catch when the user's mouse/touch moves outside of\n // this element. We use different events depending on whether or not we have detected that this\n // is a touch-capable device.\n\n\n (0, _domFns.addEvent)(ownerDocument, dragEventFor.move, _this.handleDrag);\n (0, _domFns.addEvent)(ownerDocument, dragEventFor.stop, _this.handleDragStop);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleDrag\", function (e) {\n // Get the current drag point from the event. This is used as the offset.\n var position = (0, _positionFns.getControlPosition)(e, _this.state.touchIdentifier, _assertThisInitialized(_this));\n if (position == null) return;\n var x = position.x,\n y = position.y; // Snap to grid if prop has been provided\n\n if (Array.isArray(_this.props.grid)) {\n var deltaX = x - _this.state.lastX,\n deltaY = y - _this.state.lastY;\n\n var _snapToGrid = (0, _positionFns.snapToGrid)(_this.props.grid, deltaX, deltaY);\n\n var _snapToGrid2 = _slicedToArray(_snapToGrid, 2);\n\n deltaX = _snapToGrid2[0];\n deltaY = _snapToGrid2[1];\n if (!deltaX && !deltaY) return; // skip useless drag\n\n x = _this.state.lastX + deltaX, y = _this.state.lastY + deltaY;\n }\n\n var coreEvent = (0, _positionFns.createCoreData)(_assertThisInitialized(_this), x, y);\n (0, _log.default)('DraggableCore: handleDrag: %j', coreEvent); // Call event handler. If it returns explicit false, trigger end.\n\n var shouldUpdate = _this.props.onDrag(e, coreEvent);\n\n if (shouldUpdate === false || _this.mounted === false) {\n try {\n // $FlowIgnore\n _this.handleDragStop(new MouseEvent('mouseup'));\n } catch (err) {\n // Old browsers\n var event = ((document.createEvent('MouseEvents')\n /*: any*/\n )\n /*: MouseTouchEvent*/\n ); // I see why this insanity was deprecated\n // $FlowIgnore\n\n event.initMouseEvent('mouseup', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);\n\n _this.handleDragStop(event);\n }\n\n return;\n }\n\n _this.setState({\n lastX: x,\n lastY: y\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleDragStop\", function (e) {\n if (!_this.state.dragging) return;\n var position = (0, _positionFns.getControlPosition)(e, _this.state.touchIdentifier, _assertThisInitialized(_this));\n if (position == null) return;\n var x = position.x,\n y = position.y; // Snap to grid if prop has been provided\n\n if (Array.isArray(_this.props.grid)) {\n var deltaX = x - _this.state.lastX || 0;\n var deltaY = y - _this.state.lastY || 0;\n\n var _snapToGrid3 = (0, _positionFns.snapToGrid)(_this.props.grid, deltaX, deltaY);\n\n var _snapToGrid4 = _slicedToArray(_snapToGrid3, 2);\n\n deltaX = _snapToGrid4[0];\n deltaY = _snapToGrid4[1];\n x = _this.state.lastX + deltaX, y = _this.state.lastY + deltaY;\n }\n\n var coreEvent = (0, _positionFns.createCoreData)(_assertThisInitialized(_this), x, y); // Call event handler\n\n var shouldContinue = _this.props.onStop(e, coreEvent);\n\n if (shouldContinue === false || _this.mounted === false) return false;\n\n var thisNode = _this.findDOMNode();\n\n if (thisNode) {\n // Remove user-select hack\n if (_this.props.enableUserSelectHack) (0, _domFns.removeUserSelectStyles)(thisNode.ownerDocument);\n }\n\n (0, _log.default)('DraggableCore: handleDragStop: %j', coreEvent); // Reset the el.\n\n _this.setState({\n dragging: false,\n lastX: NaN,\n lastY: NaN\n });\n\n if (thisNode) {\n // Remove event handlers\n (0, _log.default)('DraggableCore: Removing handlers');\n (0, _domFns.removeEvent)(thisNode.ownerDocument, dragEventFor.move, _this.handleDrag);\n (0, _domFns.removeEvent)(thisNode.ownerDocument, dragEventFor.stop, _this.handleDragStop);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onMouseDown\", function (e) {\n dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse\n\n return _this.handleDragStart(e);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onMouseUp\", function (e) {\n dragEventFor = eventsFor.mouse;\n return _this.handleDragStop(e);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onTouchStart\", function (e) {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n return _this.handleDragStart(e);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onTouchEnd\", function (e) {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n return _this.handleDragStop(e);\n });\n\n return _this;\n }\n\n _createClass(DraggableCore, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.mounted = true; // Touch handlers must be added with {passive: false} to be cancelable.\n // https://developers.google.com/web/updates/2017/01/scrolling-intervention\n\n var thisNode = this.findDOMNode();\n\n if (thisNode) {\n (0, _domFns.addEvent)(thisNode, eventsFor.touch.start, this.onTouchStart, {\n passive: false\n });\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.mounted = false; // Remove any leftover event handlers. Remove both touch and mouse handlers in case\n // some browser quirk caused a touch event to fire during a mouse move, or vice versa.\n\n var thisNode = this.findDOMNode();\n\n if (thisNode) {\n var ownerDocument = thisNode.ownerDocument;\n (0, _domFns.removeEvent)(ownerDocument, eventsFor.mouse.move, this.handleDrag);\n (0, _domFns.removeEvent)(ownerDocument, eventsFor.touch.move, this.handleDrag);\n (0, _domFns.removeEvent)(ownerDocument, eventsFor.mouse.stop, this.handleDragStop);\n (0, _domFns.removeEvent)(ownerDocument, eventsFor.touch.stop, this.handleDragStop);\n (0, _domFns.removeEvent)(thisNode, eventsFor.touch.start, this.onTouchStart, {\n passive: false\n });\n if (this.props.enableUserSelectHack) (0, _domFns.removeUserSelectStyles)(ownerDocument);\n }\n } // React Strict Mode compatibility: if `nodeRef` is passed, we will use it instead of trying to find\n // the underlying DOM node ourselves. See the README for more information.\n\n }, {\n key: \"findDOMNode\",\n value: function findDOMNode()\n /*: ?HTMLElement*/\n {\n var _this$props, _this$props2, _this$props2$nodeRef;\n\n return (_this$props = this.props) !== null && _this$props !== void 0 && _this$props.nodeRef ? (_this$props2 = this.props) === null || _this$props2 === void 0 ? void 0 : (_this$props2$nodeRef = _this$props2.nodeRef) === null || _this$props2$nodeRef === void 0 ? void 0 : _this$props2$nodeRef.current : _reactDom.default.findDOMNode(this);\n }\n }, {\n key: \"render\",\n value: function render()\n /*: React.Element*/\n {\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return /*#__PURE__*/React.cloneElement(React.Children.only(this.props.children), {\n // Note: mouseMove handler is attached to document so it will still function\n // when the user drags quickly and leaves the bounds of the element.\n onMouseDown: this.onMouseDown,\n onMouseUp: this.onMouseUp,\n // onTouchStart is added on `componentDidMount` so they can be added with\n // {passive: false}, which allows it to cancel. See\n // https://developers.google.com/web/updates/2017/01/scrolling-intervention\n onTouchEnd: this.onTouchEnd\n });\n }\n }]);\n\n return DraggableCore;\n}(React.Component);\n\nexports.default = DraggableCore;\n\n_defineProperty(DraggableCore, \"displayName\", 'DraggableCore');\n\n_defineProperty(DraggableCore, \"propTypes\", {\n /**\n * `allowAnyClick` allows dragging using any mouse button.\n * By default, we only accept the left button.\n *\n * Defaults to `false`.\n */\n allowAnyClick: _propTypes.default.bool,\n\n /**\n * `disabled`, if true, stops the from dragging. All handlers,\n * with the exception of `onMouseDown`, will not fire.\n */\n disabled: _propTypes.default.bool,\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: _propTypes.default.bool,\n\n /**\n * `offsetParent`, if set, uses the passed DOM node to compute drag offsets\n * instead of using the parent node.\n */\n offsetParent: function offsetParent(props\n /*: DraggableCoreProps*/\n , propName\n /*: $Keys*/\n ) {\n if (props[propName] && props[propName].nodeType !== 1) {\n throw new Error('Draggable\\'s offsetParent must be a DOM Node.');\n }\n },\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n */\n grid: _propTypes.default.arrayOf(_propTypes.default.number),\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: _propTypes.default.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: _propTypes.default.string,\n\n /* If running in React Strict mode, ReactDOM.findDOMNode() is deprecated.\n * Unfortunately, in order for to work properly, we need raw access\n * to the underlying DOM node. If you want to avoid the warning, pass a `nodeRef`\n * as in this example:\n *\n * function MyComponent() {\n * const nodeRef = React.useRef(null);\n * return (\n * \n *
Example Target
\n *
\n * );\n * }\n *\n * This can be used for arbitrarily nested components, so long as the ref ends up\n * pointing to the actual child DOM node and not a custom component.\n */\n nodeRef: _propTypes.default.object,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onStart: _propTypes.default.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onDrag: _propTypes.default.func,\n\n /**\n * Called when dragging stops.\n * If this function returns the boolean false, the drag will remain active.\n */\n onStop: _propTypes.default.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (as there is internal use of onMouseDown)\n */\n onMouseDown: _propTypes.default.func,\n\n /**\n * `scale`, if set, applies scaling while dragging an element\n */\n scale: _propTypes.default.number,\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: _shims.dontSetMe,\n style: _shims.dontSetMe,\n transform: _shims.dontSetMe\n});\n\n_defineProperty(DraggableCore, \"defaultProps\", {\n allowAnyClick: false,\n // by default only accept left click\n disabled: false,\n enableUserSelectHack: true,\n onStart: function onStart() {},\n onDrag: function onDrag() {},\n onStop: function onStop() {},\n onMouseDown: function onMouseDown() {},\n scale: 1\n});","\"use strict\";\n\nfunction _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\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"DraggableCore\", {\n enumerable: true,\n get: function get() {\n return _DraggableCore.default;\n }\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\n\nvar _clsx2 = _interopRequireDefault(require(\"clsx\"));\n\nvar _domFns = require(\"./utils/domFns\");\n\nvar _positionFns = require(\"./utils/positionFns\");\n\nvar _shims = require(\"./utils/shims\");\n\nvar _DraggableCore = _interopRequireDefault(require(\"./DraggableCore\"));\n\nvar _log = _interopRequireDefault(require(\"./utils/log\"));\n\nvar _excluded = [\"axis\", \"bounds\", \"children\", \"defaultPosition\", \"defaultClassName\", \"defaultClassNameDragging\", \"defaultClassNameDragged\", \"position\", \"positionOffset\", \"scale\"];\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { 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\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n//\n// Define \n//\nvar Draggable = /*#__PURE__*/function (_React$Component) {\n _inherits(Draggable, _React$Component);\n\n var _super = _createSuper(Draggable);\n\n function Draggable(props\n /*: DraggableProps*/\n ) {\n var _this;\n\n _classCallCheck(this, Draggable);\n\n _this = _super.call(this, props);\n\n _defineProperty(_assertThisInitialized(_this), \"onDragStart\", function (e, coreData) {\n (0, _log.default)('Draggable: onDragStart: %j', coreData); // Short-circuit if user's callback killed it.\n\n var shouldStart = _this.props.onStart(e, (0, _positionFns.createDraggableData)(_assertThisInitialized(_this), coreData)); // Kills start event on core as well, so move handlers are never bound.\n\n\n if (shouldStart === false) return false;\n\n _this.setState({\n dragging: true,\n dragged: true\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDrag\", function (e, coreData) {\n if (!_this.state.dragging) return false;\n (0, _log.default)('Draggable: onDrag: %j', coreData);\n var uiData = (0, _positionFns.createDraggableData)(_assertThisInitialized(_this), coreData);\n var newState\n /*: $Shape*/\n = {\n x: uiData.x,\n y: uiData.y\n }; // Keep within bounds.\n\n if (_this.props.bounds) {\n // Save original x and y.\n var x = newState.x,\n y = newState.y; // Add slack to the values used to calculate bound position. This will ensure that if\n // we start removing slack, the element won't react to it right away until it's been\n // completely removed.\n\n newState.x += _this.state.slackX;\n newState.y += _this.state.slackY; // Get bound position. This will ceil/floor the x and y within the boundaries.\n\n var _getBoundPosition = (0, _positionFns.getBoundPosition)(_assertThisInitialized(_this), newState.x, newState.y),\n _getBoundPosition2 = _slicedToArray(_getBoundPosition, 2),\n newStateX = _getBoundPosition2[0],\n newStateY = _getBoundPosition2[1];\n\n newState.x = newStateX;\n newState.y = newStateY; // Recalculate slack by noting how much was shaved by the boundPosition handler.\n\n newState.slackX = _this.state.slackX + (x - newState.x);\n newState.slackY = _this.state.slackY + (y - newState.y); // Update the event we fire to reflect what really happened after bounds took effect.\n\n uiData.x = newState.x;\n uiData.y = newState.y;\n uiData.deltaX = newState.x - _this.state.x;\n uiData.deltaY = newState.y - _this.state.y;\n } // Short-circuit if user's callback killed it.\n\n\n var shouldUpdate = _this.props.onDrag(e, uiData);\n\n if (shouldUpdate === false) return false;\n\n _this.setState(newState);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDragStop\", function (e, coreData) {\n if (!_this.state.dragging) return false; // Short-circuit if user's callback killed it.\n\n var shouldContinue = _this.props.onStop(e, (0, _positionFns.createDraggableData)(_assertThisInitialized(_this), coreData));\n\n if (shouldContinue === false) return false;\n (0, _log.default)('Draggable: onDragStop: %j', coreData);\n var newState\n /*: $Shape*/\n = {\n dragging: false,\n slackX: 0,\n slackY: 0\n }; // If this is a controlled component, the result of this operation will be to\n // revert back to the old position. We expect a handler on `onDragStop`, at the least.\n\n var controlled = Boolean(_this.props.position);\n\n if (controlled) {\n var _this$props$position = _this.props.position,\n x = _this$props$position.x,\n y = _this$props$position.y;\n newState.x = x;\n newState.y = y;\n }\n\n _this.setState(newState);\n });\n\n _this.state = {\n // Whether or not we are currently dragging.\n dragging: false,\n // Whether or not we have been dragged before.\n dragged: false,\n // Current transform x and y.\n x: props.position ? props.position.x : props.defaultPosition.x,\n y: props.position ? props.position.y : props.defaultPosition.y,\n prevPropsPosition: _objectSpread({}, props.position),\n // Used for compensating for out-of-bounds drags\n slackX: 0,\n slackY: 0,\n // Can only determine if SVG after mounting\n isElementSVG: false\n };\n\n if (props.position && !(props.onDrag || props.onStop)) {\n // eslint-disable-next-line no-console\n console.warn('A `position` was applied to this , without drag handlers. This will make this ' + 'component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the ' + '`position` of this element.');\n }\n\n return _this;\n }\n\n _createClass(Draggable, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n // Check to see if the element passed is an instanceof SVGElement\n if (typeof window.SVGElement !== 'undefined' && this.findDOMNode() instanceof window.SVGElement) {\n this.setState({\n isElementSVG: true\n });\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.setState({\n dragging: false\n }); // prevents invariant if unmounted while dragging\n } // React Strict Mode compatibility: if `nodeRef` is passed, we will use it instead of trying to find\n // the underlying DOM node ourselves. See the README for more information.\n\n }, {\n key: \"findDOMNode\",\n value: function findDOMNode()\n /*: ?HTMLElement*/\n {\n var _this$props$nodeRef$c, _this$props, _this$props$nodeRef;\n\n return (_this$props$nodeRef$c = (_this$props = this.props) === null || _this$props === void 0 ? void 0 : (_this$props$nodeRef = _this$props.nodeRef) === null || _this$props$nodeRef === void 0 ? void 0 : _this$props$nodeRef.current) !== null && _this$props$nodeRef$c !== void 0 ? _this$props$nodeRef$c : _reactDom.default.findDOMNode(this);\n }\n }, {\n key: \"render\",\n value: function render()\n /*: ReactElement*/\n {\n var _clsx;\n\n var _this$props2 = this.props,\n axis = _this$props2.axis,\n bounds = _this$props2.bounds,\n children = _this$props2.children,\n defaultPosition = _this$props2.defaultPosition,\n defaultClassName = _this$props2.defaultClassName,\n defaultClassNameDragging = _this$props2.defaultClassNameDragging,\n defaultClassNameDragged = _this$props2.defaultClassNameDragged,\n position = _this$props2.position,\n positionOffset = _this$props2.positionOffset,\n scale = _this$props2.scale,\n draggableCoreProps = _objectWithoutProperties(_this$props2, _excluded);\n\n var style = {};\n var svgTransform = null; // If this is controlled, we don't want to move it - unless it's dragging.\n\n var controlled = Boolean(position);\n var draggable = !controlled || this.state.dragging;\n var validPosition = position || defaultPosition;\n var transformOpts = {\n // Set left if horizontal drag is enabled\n x: (0, _positionFns.canDragX)(this) && draggable ? this.state.x : validPosition.x,\n // Set top if vertical drag is enabled\n y: (0, _positionFns.canDragY)(this) && draggable ? this.state.y : validPosition.y\n }; // If this element was SVG, we use the `transform` attribute.\n\n if (this.state.isElementSVG) {\n svgTransform = (0, _domFns.createSVGTransform)(transformOpts, positionOffset);\n } else {\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a so \n // has a clean slate.\n style = (0, _domFns.createCSSTransform)(transformOpts, positionOffset);\n } // Mark with class while dragging\n\n\n var className = (0, _clsx2.default)(children.props.className || '', defaultClassName, (_clsx = {}, _defineProperty(_clsx, defaultClassNameDragging, this.state.dragging), _defineProperty(_clsx, defaultClassNameDragged, this.state.dragged), _clsx)); // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n\n return /*#__PURE__*/React.createElement(_DraggableCore.default, _extends({}, draggableCoreProps, {\n onStart: this.onDragStart,\n onDrag: this.onDrag,\n onStop: this.onDragStop\n }), /*#__PURE__*/React.cloneElement(React.Children.only(children), {\n className: className,\n style: _objectSpread(_objectSpread({}, children.props.style), style),\n transform: svgTransform\n }));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: // React 16.3+\n // Arity (props, state)\n function getDerivedStateFromProps(_ref, _ref2)\n /*: ?$Shape*/\n {\n var position = _ref.position;\n var prevPropsPosition = _ref2.prevPropsPosition;\n\n // Set x/y if a new position is provided in props that is different than the previous.\n if (position && (!prevPropsPosition || position.x !== prevPropsPosition.x || position.y !== prevPropsPosition.y)) {\n (0, _log.default)('Draggable: getDerivedStateFromProps %j', {\n position: position,\n prevPropsPosition: prevPropsPosition\n });\n return {\n x: position.x,\n y: position.y,\n prevPropsPosition: _objectSpread({}, position)\n };\n }\n\n return null;\n }\n }]);\n\n return Draggable;\n}(React.Component);\n\nexports.default = Draggable;\n\n_defineProperty(Draggable, \"displayName\", 'Draggable');\n\n_defineProperty(Draggable, \"propTypes\", _objectSpread(_objectSpread({}, _DraggableCore.default.propTypes), {}, {\n /**\n * `axis` determines which axis the draggable can move.\n *\n * Note that all callbacks will still return data as normal. This only\n * controls flushing to the DOM.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n * 'none' limits all movement.\n *\n * Defaults to 'both'.\n */\n axis: _propTypes.default.oneOf(['both', 'x', 'y', 'none']),\n\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
Content
\n *
\n * );\n * }\n * });\n * ```\n */\n bounds: _propTypes.default.oneOfType([_propTypes.default.shape({\n left: _propTypes.default.number,\n right: _propTypes.default.number,\n top: _propTypes.default.number,\n bottom: _propTypes.default.number\n }), _propTypes.default.string, _propTypes.default.oneOf([false])]),\n defaultClassName: _propTypes.default.string,\n defaultClassNameDragging: _propTypes.default.string,\n defaultClassNameDragged: _propTypes.default.string,\n\n /**\n * `defaultPosition` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n defaultPosition: _propTypes.default.shape({\n x: _propTypes.default.number,\n y: _propTypes.default.number\n }),\n positionOffset: _propTypes.default.shape({\n x: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),\n y: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string])\n }),\n\n /**\n * `position`, if present, defines the current position of the element.\n *\n * This is similar to how form elements in React work - if no `position` is supplied, the component\n * is uncontrolled.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
I start with transformX: 25px and transformY: 25px;
\n *
\n * );\n * }\n * });\n * ```\n */\n position: _propTypes.default.shape({\n x: _propTypes.default.number,\n y: _propTypes.default.number\n }),\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: _shims.dontSetMe,\n style: _shims.dontSetMe,\n transform: _shims.dontSetMe\n}));\n\n_defineProperty(Draggable, \"defaultProps\", _objectSpread(_objectSpread({}, _DraggableCore.default.defaultProps), {}, {\n axis: 'both',\n bounds: false,\n defaultClassName: 'react-draggable',\n defaultClassNameDragging: 'react-draggable-dragging',\n defaultClassNameDragged: 'react-draggable-dragged',\n defaultPosition: {\n x: 0,\n y: 0\n },\n scale: 1\n}));","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getPrefix = getPrefix;\nexports.browserPrefixToKey = browserPrefixToKey;\nexports.browserPrefixToStyle = browserPrefixToStyle;\nexports.default = void 0;\nvar prefixes = ['Moz', 'Webkit', 'O', 'ms'];\n\nfunction getPrefix()\n/*: string*/\n{\n var _window$document, _window$document$docu;\n\n var prop\n /*: string*/\n = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'transform';\n // Ensure we're running in an environment where there is actually a global\n // `window` obj\n if (typeof window === 'undefined') return ''; // If we're in a pseudo-browser server-side environment, this access\n // path may not exist, so bail out if it doesn't.\n\n var style = (_window$document = window.document) === null || _window$document === void 0 ? void 0 : (_window$document$docu = _window$document.documentElement) === null || _window$document$docu === void 0 ? void 0 : _window$document$docu.style;\n if (!style) return '';\n if (prop in style) return '';\n\n for (var i = 0; i < prefixes.length; i++) {\n if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i];\n }\n\n return '';\n}\n\nfunction browserPrefixToKey(prop\n/*: string*/\n, prefix\n/*: string*/\n)\n/*: string*/\n{\n return prefix ? \"\".concat(prefix).concat(kebabToTitleCase(prop)) : prop;\n}\n\nfunction browserPrefixToStyle(prop\n/*: string*/\n, prefix\n/*: string*/\n)\n/*: string*/\n{\n return prefix ? \"-\".concat(prefix.toLowerCase(), \"-\").concat(prop) : prop;\n}\n\nfunction kebabToTitleCase(str\n/*: string*/\n)\n/*: string*/\n{\n var out = '';\n var shouldCapitalize = true;\n\n for (var i = 0; i < str.length; i++) {\n if (shouldCapitalize) {\n out += str[i].toUpperCase();\n shouldCapitalize = false;\n } else if (str[i] === '-') {\n shouldCapitalize = true;\n } else {\n out += str[i];\n }\n }\n\n return out;\n} // Default export is the prefix itself, like 'Moz', 'Webkit', etc\n// Note that you may have to re-test for certain things; for instance, Chrome 50\n// can handle unprefixed `transform`, but not unprefixed `user-select`\n\n\nvar _default = (getPrefix()\n/*: string*/\n);\n\nexports.default = _default;","\"use strict\";\n\nfunction _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\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\n\nvar _domFns = require(\"./utils/domFns\");\n\nvar _positionFns = require(\"./utils/positionFns\");\n\nvar _shims = require(\"./utils/shims\");\n\nvar _log = _interopRequireDefault(require(\"./utils/log\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { 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\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// Simple abstraction for dragging events names.\nvar eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n stop: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n stop: 'mouseup'\n }\n}; // Default to mouse events.\n\nvar dragEventFor = eventsFor.mouse;\n/*:: type DraggableCoreState = {\n dragging: boolean,\n lastX: number,\n lastY: number,\n touchIdentifier: ?number\n};*/\n\n/*:: export type DraggableData = {\n node: HTMLElement,\n x: number, y: number,\n deltaX: number, deltaY: number,\n lastX: number, lastY: number,\n};*/\n\n/*:: export type DraggableEventHandler = (e: MouseEvent, data: DraggableData) => void | false;*/\n\n/*:: export type ControlPosition = {x: number, y: number};*/\n\n/*:: export type PositionOffsetControlPosition = {x: number|string, y: number|string};*/\n\n/*:: export type DraggableCoreDefaultProps = {\n allowAnyClick: boolean,\n disabled: boolean,\n enableUserSelectHack: boolean,\n onStart: DraggableEventHandler,\n onDrag: DraggableEventHandler,\n onStop: DraggableEventHandler,\n onMouseDown: (e: MouseEvent) => void,\n scale: number,\n};*/\n\n/*:: export type DraggableCoreProps = {\n ...DraggableCoreDefaultProps,\n cancel: string,\n children: ReactElement,\n offsetParent: HTMLElement,\n grid: [number, number],\n handle: string,\n nodeRef?: ?React.ElementRef,\n};*/\n\n//\n// Define .\n//\n// is for advanced usage of . It maintains minimal internal state so it can\n// work well with libraries that require more control over the element.\n//\nvar DraggableCore = /*#__PURE__*/function (_React$Component) {\n _inherits(DraggableCore, _React$Component);\n\n var _super = _createSuper(DraggableCore);\n\n function DraggableCore() {\n var _this;\n\n _classCallCheck(this, DraggableCore);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n dragging: false,\n // Used while dragging to determine deltas.\n lastX: NaN,\n lastY: NaN,\n touchIdentifier: null\n });\n\n _defineProperty(_assertThisInitialized(_this), \"mounted\", false);\n\n _defineProperty(_assertThisInitialized(_this), \"handleDragStart\", function (e) {\n // Make it possible to attach event handlers on top of this one.\n _this.props.onMouseDown(e); // Only accept left-clicks.\n\n\n if (!_this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false; // Get nodes. Be sure to grab relative document (could be iframed)\n\n var thisNode = _this.findDOMNode();\n\n if (!thisNode || !thisNode.ownerDocument || !thisNode.ownerDocument.body) {\n throw new Error(' not mounted on DragStart!');\n }\n\n var ownerDocument = thisNode.ownerDocument; // Short circuit if handle or cancel prop was provided and selector doesn't match.\n\n if (_this.props.disabled || !(e.target instanceof ownerDocument.defaultView.Node) || _this.props.handle && !(0, _domFns.matchesSelectorAndParentsTo)(e.target, _this.props.handle, thisNode) || _this.props.cancel && (0, _domFns.matchesSelectorAndParentsTo)(e.target, _this.props.cancel, thisNode)) {\n return;\n } // Prevent scrolling on mobile devices, like ipad/iphone.\n // Important that this is after handle/cancel.\n\n\n if (e.type === 'touchstart') e.preventDefault(); // Set touch identifier in component state if this is a touch event. This allows us to\n // distinguish between individual touches on multitouch screens by identifying which\n // touchpoint was set to this element.\n\n var touchIdentifier = (0, _domFns.getTouchIdentifier)(e);\n\n _this.setState({\n touchIdentifier: touchIdentifier\n }); // Get the current drag point from the event. This is used as the offset.\n\n\n var position = (0, _positionFns.getControlPosition)(e, touchIdentifier, _assertThisInitialized(_this));\n if (position == null) return; // not possible but satisfies flow\n\n var x = position.x,\n y = position.y; // Create an event object with all the data parents need to make a decision here.\n\n var coreEvent = (0, _positionFns.createCoreData)(_assertThisInitialized(_this), x, y);\n (0, _log.default)('DraggableCore: handleDragStart: %j', coreEvent); // Call event handler. If it returns explicit false, cancel.\n\n (0, _log.default)('calling', _this.props.onStart);\n\n var shouldUpdate = _this.props.onStart(e, coreEvent);\n\n if (shouldUpdate === false || _this.mounted === false) return; // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n\n if (_this.props.enableUserSelectHack) (0, _domFns.addUserSelectStyles)(ownerDocument); // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n\n _this.setState({\n dragging: true,\n lastX: x,\n lastY: y\n }); // Add events to the document directly so we catch when the user's mouse/touch moves outside of\n // this element. We use different events depending on whether or not we have detected that this\n // is a touch-capable device.\n\n\n (0, _domFns.addEvent)(ownerDocument, dragEventFor.move, _this.handleDrag);\n (0, _domFns.addEvent)(ownerDocument, dragEventFor.stop, _this.handleDragStop);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleDrag\", function (e) {\n // Get the current drag point from the event. This is used as the offset.\n var position = (0, _positionFns.getControlPosition)(e, _this.state.touchIdentifier, _assertThisInitialized(_this));\n if (position == null) return;\n var x = position.x,\n y = position.y; // Snap to grid if prop has been provided\n\n if (Array.isArray(_this.props.grid)) {\n var deltaX = x - _this.state.lastX,\n deltaY = y - _this.state.lastY;\n\n var _snapToGrid = (0, _positionFns.snapToGrid)(_this.props.grid, deltaX, deltaY);\n\n var _snapToGrid2 = _slicedToArray(_snapToGrid, 2);\n\n deltaX = _snapToGrid2[0];\n deltaY = _snapToGrid2[1];\n if (!deltaX && !deltaY) return; // skip useless drag\n\n x = _this.state.lastX + deltaX, y = _this.state.lastY + deltaY;\n }\n\n var coreEvent = (0, _positionFns.createCoreData)(_assertThisInitialized(_this), x, y);\n (0, _log.default)('DraggableCore: handleDrag: %j', coreEvent); // Call event handler. If it returns explicit false, trigger end.\n\n var shouldUpdate = _this.props.onDrag(e, coreEvent);\n\n if (shouldUpdate === false || _this.mounted === false) {\n try {\n // $FlowIgnore\n _this.handleDragStop(new MouseEvent('mouseup'));\n } catch (err) {\n // Old browsers\n var event = ((document.createEvent('MouseEvents')\n /*: any*/\n )\n /*: MouseTouchEvent*/\n ); // I see why this insanity was deprecated\n // $FlowIgnore\n\n event.initMouseEvent('mouseup', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);\n\n _this.handleDragStop(event);\n }\n\n return;\n }\n\n _this.setState({\n lastX: x,\n lastY: y\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"handleDragStop\", function (e) {\n if (!_this.state.dragging) return;\n var position = (0, _positionFns.getControlPosition)(e, _this.state.touchIdentifier, _assertThisInitialized(_this));\n if (position == null) return;\n var x = position.x,\n y = position.y;\n var coreEvent = (0, _positionFns.createCoreData)(_assertThisInitialized(_this), x, y); // Call event handler\n\n var shouldContinue = _this.props.onStop(e, coreEvent);\n\n if (shouldContinue === false || _this.mounted === false) return false;\n\n var thisNode = _this.findDOMNode();\n\n if (thisNode) {\n // Remove user-select hack\n if (_this.props.enableUserSelectHack) (0, _domFns.removeUserSelectStyles)(thisNode.ownerDocument);\n }\n\n (0, _log.default)('DraggableCore: handleDragStop: %j', coreEvent); // Reset the el.\n\n _this.setState({\n dragging: false,\n lastX: NaN,\n lastY: NaN\n });\n\n if (thisNode) {\n // Remove event handlers\n (0, _log.default)('DraggableCore: Removing handlers');\n (0, _domFns.removeEvent)(thisNode.ownerDocument, dragEventFor.move, _this.handleDrag);\n (0, _domFns.removeEvent)(thisNode.ownerDocument, dragEventFor.stop, _this.handleDragStop);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onMouseDown\", function (e) {\n dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse\n\n return _this.handleDragStart(e);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onMouseUp\", function (e) {\n dragEventFor = eventsFor.mouse;\n return _this.handleDragStop(e);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onTouchStart\", function (e) {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n return _this.handleDragStart(e);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onTouchEnd\", function (e) {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n return _this.handleDragStop(e);\n });\n\n return _this;\n }\n\n _createClass(DraggableCore, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.mounted = true; // Touch handlers must be added with {passive: false} to be cancelable.\n // https://developers.google.com/web/updates/2017/01/scrolling-intervention\n\n var thisNode = this.findDOMNode();\n\n if (thisNode) {\n (0, _domFns.addEvent)(thisNode, eventsFor.touch.start, this.onTouchStart, {\n passive: false\n });\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.mounted = false; // Remove any leftover event handlers. Remove both touch and mouse handlers in case\n // some browser quirk caused a touch event to fire during a mouse move, or vice versa.\n\n var thisNode = this.findDOMNode();\n\n if (thisNode) {\n var ownerDocument = thisNode.ownerDocument;\n (0, _domFns.removeEvent)(ownerDocument, eventsFor.mouse.move, this.handleDrag);\n (0, _domFns.removeEvent)(ownerDocument, eventsFor.touch.move, this.handleDrag);\n (0, _domFns.removeEvent)(ownerDocument, eventsFor.mouse.stop, this.handleDragStop);\n (0, _domFns.removeEvent)(ownerDocument, eventsFor.touch.stop, this.handleDragStop);\n (0, _domFns.removeEvent)(thisNode, eventsFor.touch.start, this.onTouchStart, {\n passive: false\n });\n if (this.props.enableUserSelectHack) (0, _domFns.removeUserSelectStyles)(ownerDocument);\n }\n } // React Strict Mode compatibility: if `nodeRef` is passed, we will use it instead of trying to find\n // the underlying DOM node ourselves. See the README for more information.\n\n }, {\n key: \"findDOMNode\",\n value: function findDOMNode()\n /*: ?HTMLElement*/\n {\n var _this$props$nodeRef$c, _this$props, _this$props$nodeRef;\n\n return (_this$props$nodeRef$c = (_this$props = this.props) === null || _this$props === void 0 ? void 0 : (_this$props$nodeRef = _this$props.nodeRef) === null || _this$props$nodeRef === void 0 ? void 0 : _this$props$nodeRef.current) !== null && _this$props$nodeRef$c !== void 0 ? _this$props$nodeRef$c : _reactDom.default.findDOMNode(this);\n }\n }, {\n key: \"render\",\n value: function render()\n /*: React.Element*/\n {\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return /*#__PURE__*/React.cloneElement(React.Children.only(this.props.children), {\n // Note: mouseMove handler is attached to document so it will still function\n // when the user drags quickly and leaves the bounds of the element.\n onMouseDown: this.onMouseDown,\n onMouseUp: this.onMouseUp,\n // onTouchStart is added on `componentDidMount` so they can be added with\n // {passive: false}, which allows it to cancel. See\n // https://developers.google.com/web/updates/2017/01/scrolling-intervention\n onTouchEnd: this.onTouchEnd\n });\n }\n }]);\n\n return DraggableCore;\n}(React.Component);\n\nexports.default = DraggableCore;\n\n_defineProperty(DraggableCore, \"displayName\", 'DraggableCore');\n\n_defineProperty(DraggableCore, \"propTypes\", {\n /**\n * `allowAnyClick` allows dragging using any mouse button.\n * By default, we only accept the left button.\n *\n * Defaults to `false`.\n */\n allowAnyClick: _propTypes.default.bool,\n\n /**\n * `disabled`, if true, stops the from dragging. All handlers,\n * with the exception of `onMouseDown`, will not fire.\n */\n disabled: _propTypes.default.bool,\n\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: _propTypes.default.bool,\n\n /**\n * `offsetParent`, if set, uses the passed DOM node to compute drag offsets\n * instead of using the parent node.\n */\n offsetParent: function offsetParent(props\n /*: DraggableCoreProps*/\n , propName\n /*: $Keys*/\n ) {\n if (props[propName] && props[propName].nodeType !== 1) {\n throw new Error('Draggable\\'s offsetParent must be a DOM Node.');\n }\n },\n\n /**\n * `grid` specifies the x and y that dragging should snap to.\n */\n grid: _propTypes.default.arrayOf(_propTypes.default.number),\n\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * \n *
\n *
Click me to drag
\n *
This is some other content
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n handle: _propTypes.default.string,\n\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return(\n * \n *
\n *
You can't drag from here
\n *
Dragging here works fine
\n *
\n *
\n * );\n * }\n * });\n * ```\n */\n cancel: _propTypes.default.string,\n\n /* If running in React Strict mode, ReactDOM.findDOMNode() is deprecated.\n * Unfortunately, in order for to work properly, we need raw access\n * to the underlying DOM node. If you want to avoid the warning, pass a `nodeRef`\n * as in this example:\n *\n * function MyComponent() {\n * const nodeRef = React.useRef(null);\n * return (\n * \n *
Example Target
\n *
\n * );\n * }\n *\n * This can be used for arbitrarily nested components, so long as the ref ends up\n * pointing to the actual child DOM node and not a custom component.\n */\n nodeRef: _propTypes.default.object,\n\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onStart: _propTypes.default.func,\n\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onDrag: _propTypes.default.func,\n\n /**\n * Called when dragging stops.\n * If this function returns the boolean false, the drag will remain active.\n */\n onStop: _propTypes.default.func,\n\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (as there is internal use of onMouseDown)\n */\n onMouseDown: _propTypes.default.func,\n\n /**\n * `scale`, if set, applies scaling while dragging an element\n */\n scale: _propTypes.default.number,\n\n /**\n * These properties should be defined on the child, not here.\n */\n className: _shims.dontSetMe,\n style: _shims.dontSetMe,\n transform: _shims.dontSetMe\n});\n\n_defineProperty(DraggableCore, \"defaultProps\", {\n allowAnyClick: false,\n // by default only accept left click\n disabled: false,\n enableUserSelectHack: true,\n onStart: function onStart() {},\n onDrag: function onDrag() {},\n onStop: function onStop() {},\n onMouseDown: function onMouseDown() {},\n scale: 1\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","module.exports = Array.isArray || function (arr) {\n return Object.prototype.toString.call(arr) == '[object Array]';\n};\n","/** @license React v16.13.1\n * react-is.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\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\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\n return self;\n}","import PropTypes from 'prop-types'; // https://github.com/twbs/bootstrap/blob/v4.0.0-alpha.4/js/src/modal.js#L436-L443\n\nexport function getScrollbarWidth() {\n var scrollDiv = document.createElement('div'); // .modal-scrollbar-measure styles // https://github.com/twbs/bootstrap/blob/v4.0.0-alpha.4/scss/_modal.scss#L106-L113\n\n scrollDiv.style.position = 'absolute';\n scrollDiv.style.top = '-9999px';\n scrollDiv.style.width = '50px';\n scrollDiv.style.height = '50px';\n scrollDiv.style.overflow = 'scroll';\n document.body.appendChild(scrollDiv);\n var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth;\n document.body.removeChild(scrollDiv);\n return scrollbarWidth;\n}\nexport function setScrollbarWidth(padding) {\n document.body.style.paddingRight = padding > 0 ? padding + \"px\" : null;\n}\nexport function isBodyOverflowing() {\n return document.body.clientWidth < window.innerWidth;\n}\nexport function getOriginalBodyPadding() {\n var style = window.getComputedStyle(document.body, null);\n return parseInt(style && style.getPropertyValue('padding-right') || 0, 10);\n}\nexport function conditionallyUpdateScrollbar() {\n var scrollbarWidth = getScrollbarWidth(); // https://github.com/twbs/bootstrap/blob/v4.0.0-alpha.6/js/src/modal.js#L433\n\n var fixedContent = document.querySelectorAll('.fixed-top, .fixed-bottom, .is-fixed, .sticky-top')[0];\n var bodyPadding = fixedContent ? parseInt(fixedContent.style.paddingRight || 0, 10) : 0;\n\n if (isBodyOverflowing()) {\n setScrollbarWidth(bodyPadding + scrollbarWidth);\n }\n}\nvar globalCssModule;\nexport function setGlobalCssModule(cssModule) {\n globalCssModule = cssModule;\n}\nexport function mapToCssModules(className, cssModule) {\n if (className === void 0) {\n className = '';\n }\n\n if (cssModule === void 0) {\n cssModule = globalCssModule;\n }\n\n if (!cssModule) return className;\n return className.split(' ').map(function (c) {\n return cssModule[c] || c;\n }).join(' ');\n}\n/**\n * Returns a new object with the key/value pairs from `obj` that are not in the array `omitKeys`.\n */\n\nexport function omit(obj, omitKeys) {\n var result = {};\n Object.keys(obj).forEach(function (key) {\n if (omitKeys.indexOf(key) === -1) {\n result[key] = obj[key];\n }\n });\n return result;\n}\n/**\n * Returns a filtered copy of an object with only the specified keys.\n */\n\nexport function pick(obj, keys) {\n var pickKeys = Array.isArray(keys) ? keys : [keys];\n var length = pickKeys.length;\n var key;\n var result = {};\n\n while (length > 0) {\n length -= 1;\n key = pickKeys[length];\n result[key] = obj[key];\n }\n\n return result;\n}\nvar warned = {};\nexport function warnOnce(message) {\n if (!warned[message]) {\n /* istanbul ignore else */\n if (typeof console !== 'undefined') {\n console.error(message); // eslint-disable-line no-console\n }\n\n warned[message] = true;\n }\n}\nexport function deprecated(propType, explanation) {\n return function validate(props, propName, componentName) {\n if (props[propName] !== null && typeof props[propName] !== 'undefined') {\n warnOnce(\"\\\"\" + propName + \"\\\" property of \\\"\" + componentName + \"\\\" has been deprecated.\\n\" + explanation);\n }\n\n for (var _len = arguments.length, rest = new Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) {\n rest[_key - 3] = arguments[_key];\n }\n\n return propType.apply(void 0, [props, propName, componentName].concat(rest));\n };\n} // Shim Element if needed (e.g. in Node environment)\n\nvar Element = typeof window === 'object' && window.Element || function () {};\n\nexport function DOMElement(props, propName, componentName) {\n if (!(props[propName] instanceof Element)) {\n return new Error('Invalid prop `' + propName + '` supplied to `' + componentName + '`. Expected prop to be an instance of Element. Validation failed.');\n }\n}\nexport var targetPropType = PropTypes.oneOfType([PropTypes.string, PropTypes.func, DOMElement, PropTypes.shape({\n current: PropTypes.any\n})]);\nexport var tagPropType = PropTypes.oneOfType([PropTypes.func, PropTypes.string, PropTypes.shape({\n $$typeof: PropTypes.symbol,\n render: PropTypes.func\n}), PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.string, PropTypes.shape({\n $$typeof: PropTypes.symbol,\n render: PropTypes.func\n})]))]);\n/* eslint key-spacing: [\"error\", { afterColon: true, align: \"value\" }] */\n// These are all setup to match what is in the bootstrap _variables.scss\n// https://github.com/twbs/bootstrap/blob/v4-dev/scss/_variables.scss\n\nexport var TransitionTimeouts = {\n Fade: 150,\n // $transition-fade\n Collapse: 350,\n // $transition-collapse\n Modal: 300,\n // $modal-transition\n Carousel: 600 // $carousel-transition\n\n}; // Duplicated Transition.propType keys to ensure that Reactstrap builds\n// for distribution properly exclude these keys for nested child HTML attributes\n// since `react-transition-group` removes propTypes in production builds.\n\nexport var TransitionPropTypeKeys = ['in', 'mountOnEnter', 'unmountOnExit', 'appear', 'enter', 'exit', 'timeout', 'onEnter', 'onEntering', 'onEntered', 'onExit', 'onExiting', 'onExited'];\nexport var TransitionStatuses = {\n ENTERING: 'entering',\n ENTERED: 'entered',\n EXITING: 'exiting',\n EXITED: 'exited'\n};\nexport var keyCodes = {\n esc: 27,\n space: 32,\n enter: 13,\n tab: 9,\n up: 38,\n down: 40,\n home: 36,\n end: 35,\n n: 78,\n p: 80\n};\nexport var PopperPlacements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];\nexport var canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nexport function isReactRefObj(target) {\n if (target && typeof target === 'object') {\n return 'current' in target;\n }\n\n return false;\n}\n\nfunction getTag(value) {\n if (value == null) {\n return value === undefined ? '[object Undefined]' : '[object Null]';\n }\n\n return Object.prototype.toString.call(value);\n}\n\nexport function toNumber(value) {\n var type = typeof value;\n var NAN = 0 / 0;\n\n if (type === 'number') {\n return value;\n }\n\n if (type === 'symbol' || type === 'object' && getTag(value) === '[object Symbol]') {\n return NAN;\n }\n\n if (isObject(value)) {\n var other = typeof value.valueOf === 'function' ? value.valueOf() : value;\n value = isObject(other) ? \"\" + other : other;\n }\n\n if (type !== 'string') {\n return value === 0 ? value : +value;\n }\n\n value = value.replace(/^\\s+|\\s+$/g, '');\n var isBinary = /^0b[01]+$/i.test(value);\n return isBinary || /^0o[0-7]+$/i.test(value) ? parseInt(value.slice(2), isBinary ? 2 : 8) : /^[-+]0x[0-9a-f]+$/i.test(value) ? NAN : +value;\n}\nexport function isObject(value) {\n var type = typeof value;\n return value != null && (type === 'object' || type === 'function');\n}\nexport function isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n\n var tag = getTag(value);\n return tag === '[object Function]' || tag === '[object AsyncFunction]' || tag === '[object GeneratorFunction]' || tag === '[object Proxy]';\n}\nexport function findDOMElements(target) {\n if (isReactRefObj(target)) {\n return target.current;\n }\n\n if (isFunction(target)) {\n return target();\n }\n\n if (typeof target === 'string' && canUseDOM) {\n var selection = document.querySelectorAll(target);\n\n if (!selection.length) {\n selection = document.querySelectorAll(\"#\" + target);\n }\n\n if (!selection.length) {\n throw new Error(\"The target '\" + target + \"' could not be identified in the dom, tip: check spelling\");\n }\n\n return selection;\n }\n\n return target;\n}\nexport function isArrayOrNodeList(els) {\n if (els === null) {\n return false;\n }\n\n return Array.isArray(els) || canUseDOM && typeof els.length === 'number';\n}\nexport function getTarget(target, allElements) {\n var els = findDOMElements(target);\n\n if (allElements) {\n if (isArrayOrNodeList(els)) {\n return els;\n }\n\n if (els === null) {\n return [];\n }\n\n return [els];\n } else {\n if (isArrayOrNodeList(els)) {\n return els[0];\n }\n\n return els;\n }\n}\nexport var defaultToggleEvents = ['touchstart', 'click'];\nexport function addMultipleEventListeners(_els, handler, _events, useCapture) {\n var els = _els;\n\n if (!isArrayOrNodeList(els)) {\n els = [els];\n }\n\n var events = _events;\n\n if (typeof events === 'string') {\n events = events.split(/\\s+/);\n }\n\n if (!isArrayOrNodeList(els) || typeof handler !== 'function' || !Array.isArray(events)) {\n throw new Error(\"\\n The first argument of this function must be DOM node or an array on DOM nodes or NodeList.\\n The second must be a function.\\n The third is a string or an array of strings that represents DOM events\\n \");\n }\n\n Array.prototype.forEach.call(events, function (event) {\n Array.prototype.forEach.call(els, function (el) {\n el.addEventListener(event, handler, useCapture);\n });\n });\n return function removeEvents() {\n Array.prototype.forEach.call(events, function (event) {\n Array.prototype.forEach.call(els, function (el) {\n el.removeEventListener(event, handler, useCapture);\n });\n });\n };\n}\nexport var focusableElements = ['a[href]', 'area[href]', 'input:not([disabled]):not([type=hidden])', 'select:not([disabled])', 'textarea:not([disabled])', 'button:not([disabled])', 'object', 'embed', '[tabindex]:not(.modal)', 'audio[controls]', 'video[controls]', '[contenteditable]:not([contenteditable=\"false\"])'];","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\n\n/* eslint react/prefer-stateless-function: 0 */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, warnOnce, tagPropType } from './utils';\nvar propTypes = {\n children: PropTypes.node,\n type: PropTypes.string,\n size: PropTypes.string,\n bsSize: PropTypes.string,\n valid: PropTypes.bool,\n invalid: PropTypes.bool,\n tag: tagPropType,\n innerRef: PropTypes.oneOfType([PropTypes.object, PropTypes.func, PropTypes.string]),\n plaintext: PropTypes.bool,\n addon: PropTypes.bool,\n className: PropTypes.string,\n cssModule: PropTypes.object\n};\nvar defaultProps = {\n type: 'text'\n};\n\nvar Input =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(Input, _React$Component);\n\n function Input(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this;\n _this.getRef = _this.getRef.bind(_assertThisInitialized(_this));\n _this.focus = _this.focus.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n var _proto = Input.prototype;\n\n _proto.getRef = function getRef(ref) {\n if (this.props.innerRef) {\n this.props.innerRef(ref);\n }\n\n this.ref = ref;\n };\n\n _proto.focus = function focus() {\n if (this.ref) {\n this.ref.focus();\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n className = _this$props.className,\n cssModule = _this$props.cssModule,\n type = _this$props.type,\n bsSize = _this$props.bsSize,\n valid = _this$props.valid,\n invalid = _this$props.invalid,\n tag = _this$props.tag,\n addon = _this$props.addon,\n plaintext = _this$props.plaintext,\n innerRef = _this$props.innerRef,\n attributes = _objectWithoutPropertiesLoose(_this$props, [\"className\", \"cssModule\", \"type\", \"bsSize\", \"valid\", \"invalid\", \"tag\", \"addon\", \"plaintext\", \"innerRef\"]);\n\n var checkInput = ['radio', 'checkbox'].indexOf(type) > -1;\n var isNotaNumber = new RegExp('\\\\D', 'g');\n var fileInput = type === 'file';\n var textareaInput = type === 'textarea';\n var selectInput = type === 'select';\n var Tag = tag || (selectInput || textareaInput ? type : 'input');\n var formControlClass = 'form-control';\n\n if (plaintext) {\n formControlClass = formControlClass + \"-plaintext\";\n Tag = tag || 'input';\n } else if (fileInput) {\n formControlClass = formControlClass + \"-file\";\n } else if (checkInput) {\n if (addon) {\n formControlClass = null;\n } else {\n formControlClass = 'form-check-input';\n }\n }\n\n if (attributes.size && isNotaNumber.test(attributes.size)) {\n warnOnce('Please use the prop \"bsSize\" instead of the \"size\" to bootstrap\\'s input sizing.');\n bsSize = attributes.size;\n delete attributes.size;\n }\n\n var classes = mapToCssModules(classNames(className, invalid && 'is-invalid', valid && 'is-valid', bsSize ? \"form-control-\" + bsSize : false, formControlClass), cssModule);\n\n if (Tag === 'input' || tag && typeof tag === 'function') {\n attributes.type = type;\n }\n\n if (attributes.children && !(plaintext || type === 'select' || typeof Tag !== 'string' || Tag === 'select')) {\n warnOnce(\"Input with a type of \\\"\" + type + \"\\\" cannot have children. Please use \\\"value\\\"/\\\"defaultValue\\\" instead.\");\n delete attributes.children;\n }\n\n return React.createElement(Tag, _extends({}, attributes, {\n ref: innerRef,\n className: classes\n }));\n };\n\n return Input;\n}(React.Component);\n\nInput.propTypes = propTypes;\nInput.defaultProps = defaultProps;\nexport default Input;"],"sourceRoot":""}