{"version":3,"sources":["../node_modules/react/jsx-runtime.js","../node_modules/react/index.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/helpers/esm/createClass.js","../node_modules/tslib/tslib.es6.js","../node_modules/@popperjs/core/lib/enums.js","../node_modules/clsx/dist/clsx.m.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/@formatjs/ecma402-abstract/lib/utils.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/inherits.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/createSuper.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/@formatjs/intl/lib/src/error.js","../node_modules/@babel/runtime/helpers/esm/extends.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/@popperjs/core/lib/dom-utils/instanceOf.js","../../modules/HistoryContext.js","../../modules/createNameContext.js","../../modules/RouterContext.js","../../modules/Router.js","../../modules/MemoryRouter.js","../../modules/Lifecycle.js","../../modules/generatePath.js","../../modules/Redirect.js","../../modules/matchPath.js","../../modules/Route.js","../../modules/StaticRouter.js","../../modules/Switch.js","../../modules/withRouter.js","../../modules/hooks.js","../../modules/BrowserRouter.js","../../modules/HashRouter.js","../../modules/utils/locationUtils.js","../../modules/Link.js","../../modules/NavLink.js","../../src/utils/propValidator.ts","../../src/utils/constant.ts","../../src/utils/cssTransition.tsx","../../src/utils/collapseToast.ts","../../src/core/eventManager.ts","../../src/hooks/useToastContainer.ts","../../src/hooks/useToast.ts","../../src/components/CloseButton.tsx","../../src/components/ProgressBar.tsx","../../src/components/Icons.tsx","../../src/components/Toast.tsx","../../src/components/Transitions.tsx","../../src/components/ToastContainer.tsx","../../src/core/toast.tsx","../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/axios/index.js","../node_modules/chart.js/dist/chunks/helpers.segment.js","../node_modules/chart.js/dist/chart.esm.js","../node_modules/@popperjs/core/lib/utils/math.js","../node_modules/@formatjs/fast-memoize/lib/index.js","../node_modules/lodash-es/_root.js","../node_modules/@popperjs/core/lib/dom-utils/getWindow.js","../node_modules/@formatjs/intl/lib/src/utils.js","../node_modules/@popperjs/core/lib/utils/getBasePlacement.js","../node_modules/@formatjs/icu-messageformat-parser/lib/error.js","../node_modules/@formatjs/icu-messageformat-parser/lib/types.js","../node_modules/@formatjs/icu-messageformat-parser/lib/regex.generated.js","../node_modules/@formatjs/icu-skeleton-parser/lib/date-time.js","../node_modules/@formatjs/icu-skeleton-parser/lib/regex.generated.js","../node_modules/@formatjs/icu-skeleton-parser/lib/number.js","../node_modules/@formatjs/icu-messageformat-parser/lib/parser.js","../node_modules/@formatjs/icu-messageformat-parser/lib/index.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","../node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","../node_modules/nanoclone/src/index.js","../node_modules/yup/es/util/printValue.js","../node_modules/yup/es/locale.js","../node_modules/yup/es/util/isSchema.js","../node_modules/yup/es/Condition.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/yup/es/util/toArray.js","../node_modules/yup/es/ValidationError.js","../node_modules/yup/es/util/runTests.js","../node_modules/yup/es/Reference.js","../node_modules/yup/es/util/createValidation.js","../node_modules/yup/es/util/reach.js","../node_modules/yup/es/util/ReferenceSet.js","../node_modules/yup/es/schema.js","../node_modules/yup/es/mixed.js","../node_modules/yup/es/util/isAbsent.js","../node_modules/yup/es/boolean.js","../node_modules/yup/es/string.js","../node_modules/yup/es/number.js","../node_modules/yup/es/util/isodate.js","../node_modules/yup/es/date.js","../node_modules/yup/es/util/sortFields.js","../node_modules/yup/es/util/sortByKeyOrder.js","../node_modules/yup/es/object.js","../node_modules/yup/es/array.js","../node_modules/axios/lib/utils.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/tiny-warning/dist/tiny-warning.esm.js","../node_modules/tiny-invariant/dist/tiny-invariant.esm.js","../node_modules/classnames/index.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/@popperjs/core/lib/utils/rectToClientRect.js","../node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","../node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","../node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","../node_modules/@popperjs/core/lib/utils/detectOverflow.js","../node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","../node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","../node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","../node_modules/react-intl/lib/src/utils.js","../node_modules/lodash/_root.js","../node_modules/dom-helpers/esm/camelize.js","../node_modules/react-bootstrap-v5/lib/esm/createWithBsPrefix.js","../node_modules/@popperjs/core/lib/utils/getVariation.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/lodash-es/_nodeUtil.js","../node_modules/react-fast-compare/index.js","../node_modules/react-bootstrap-v5/lib/esm/ThemeProvider.js","../node_modules/lodash/isArray.js","../node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","../node_modules/property-expr/index.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/lodash/_getNative.js","../node_modules/@formatjs/ecma402-abstract/lib/CanonicalizeLocaleList.js","../node_modules/@formatjs/ecma402-abstract/lib/CanonicalizeTimeZoneName.js","../node_modules/@formatjs/ecma402-abstract/lib/262.js","../node_modules/@formatjs/ecma402-abstract/lib/CoerceOptionsToObject.js","../node_modules/@formatjs/ecma402-abstract/lib/DefaultNumberOption.js","../node_modules/@formatjs/ecma402-abstract/lib/GetNumberOption.js","../node_modules/@formatjs/ecma402-abstract/lib/GetOption.js","../node_modules/@formatjs/ecma402-abstract/lib/GetOptionsObject.js","../node_modules/@formatjs/ecma402-abstract/lib/IsSanctionedSimpleUnitIdentifier.js","../node_modules/@formatjs/ecma402-abstract/lib/IsValidTimeZoneName.js","../node_modules/@formatjs/ecma402-abstract/lib/IsWellFormedCurrencyCode.js","../node_modules/@formatjs/ecma402-abstract/lib/IsWellFormedUnitIdentifier.js","../node_modules/@formatjs/ecma402-abstract/lib/NumberFormat/ComputeExponentForMagnitude.js","../node_modules/@formatjs/ecma402-abstract/lib/NumberFormat/ToRawPrecision.js","../node_modules/@formatjs/ecma402-abstract/lib/NumberFormat/ToRawFixed.js","../node_modules/@formatjs/ecma402-abstract/lib/NumberFormat/FormatNumericToString.js","../node_modules/@formatjs/ecma402-abstract/lib/NumberFormat/ComputeExponent.js","../node_modules/@formatjs/ecma402-abstract/lib/NumberFormat/CurrencyDigits.js","../node_modules/@formatjs/ecma402-abstract/lib/NumberFormat/digit-mapping.generated.js","../node_modules/@formatjs/ecma402-abstract/lib/regex.generated.js","../node_modules/@formatjs/ecma402-abstract/lib/NumberFormat/format_to_parts.js","../node_modules/@formatjs/ecma402-abstract/lib/NumberFormat/PartitionNumberPattern.js","../node_modules/@formatjs/ecma402-abstract/lib/NumberFormat/FormatNumericToParts.js","../node_modules/@formatjs/ecma402-abstract/lib/BestAvailableLocale.js","../node_modules/@formatjs/ecma402-abstract/lib/UnicodeExtensionValue.js","../node_modules/@formatjs/ecma402-abstract/lib/ResolveLocale.js","../node_modules/@formatjs/ecma402-abstract/lib/LookupMatcher.js","../node_modules/@formatjs/ecma402-abstract/lib/BestFitMatcher.js","../node_modules/@formatjs/ecma402-abstract/lib/NumberFormat/SetNumberFormatUnitOptions.js","../node_modules/@formatjs/ecma402-abstract/lib/NumberFormat/SetNumberFormatDigitOptions.js","../node_modules/@formatjs/ecma402-abstract/lib/NumberFormat/InitializeNumberFormat.js","../node_modules/@formatjs/ecma402-abstract/lib/PartitionPattern.js","../node_modules/@formatjs/ecma402-abstract/lib/LookupSupportedLocales.js","../node_modules/@formatjs/ecma402-abstract/lib/SupportedLocales.js","../node_modules/@formatjs/ecma402-abstract/lib/types/date-time.js","../node_modules/@formatjs/ecma402-abstract/lib/data.js","../node_modules/lodash/has.js","../node_modules/intl-messageformat/lib/src/error.js","../node_modules/formik/node_modules/deepmerge/dist/es.js","../node_modules/lodash-es/_Symbol.js","../node_modules/lodash-es/_getRawTag.js","../node_modules/lodash-es/_objectToString.js","../node_modules/lodash-es/_baseGetTag.js","../node_modules/lodash-es/_overArg.js","../node_modules/lodash-es/_getPrototype.js","../node_modules/lodash-es/isObjectLike.js","../node_modules/lodash-es/isPlainObject.js","../node_modules/lodash-es/_listCacheClear.js","../node_modules/lodash-es/eq.js","../node_modules/lodash-es/_assocIndexOf.js","../node_modules/lodash-es/_listCacheDelete.js","../node_modules/lodash-es/_listCacheGet.js","../node_modules/lodash-es/_listCacheHas.js","../node_modules/lodash-es/_listCacheSet.js","../node_modules/lodash-es/_ListCache.js","../node_modules/lodash-es/_stackClear.js","../node_modules/lodash-es/_stackDelete.js","../node_modules/lodash-es/_stackGet.js","../node_modules/lodash-es/_stackHas.js","../node_modules/lodash-es/isObject.js","../node_modules/lodash-es/isFunction.js","../node_modules/lodash-es/_coreJsData.js","../node_modules/lodash-es/_isMasked.js","../node_modules/lodash-es/_toSource.js","../node_modules/lodash-es/_baseIsNative.js","../node_modules/lodash-es/_getValue.js","../node_modules/lodash-es/_getNative.js","../node_modules/lodash-es/_Map.js","../node_modules/lodash-es/_nativeCreate.js","../node_modules/lodash-es/_hashClear.js","../node_modules/lodash-es/_hashDelete.js","../node_modules/lodash-es/_hashGet.js","../node_modules/lodash-es/_hashHas.js","../node_modules/lodash-es/_hashSet.js","../node_modules/lodash-es/_Hash.js","../node_modules/lodash-es/_mapCacheClear.js","../node_modules/lodash-es/_isKeyable.js","../node_modules/lodash-es/_getMapData.js","../node_modules/lodash-es/_mapCacheDelete.js","../node_modules/lodash-es/_mapCacheGet.js","../node_modules/lodash-es/_mapCacheHas.js","../node_modules/lodash-es/_mapCacheSet.js","../node_modules/lodash-es/_MapCache.js","../node_modules/lodash-es/_stackSet.js","../node_modules/lodash-es/_Stack.js","../node_modules/lodash-es/_arrayEach.js","../node_modules/lodash-es/_defineProperty.js","../node_modules/lodash-es/_baseAssignValue.js","../node_modules/lodash-es/_assignValue.js","../node_modules/lodash-es/_copyObject.js","../node_modules/lodash-es/_baseTimes.js","../node_modules/lodash-es/_baseIsArguments.js","../node_modules/lodash-es/isArguments.js","../node_modules/lodash-es/isArray.js","../node_modules/lodash-es/_isIndex.js","../node_modules/lodash-es/isLength.js","../node_modules/lodash-es/_baseIsTypedArray.js","../node_modules/lodash-es/_baseUnary.js","../node_modules/lodash-es/isTypedArray.js","../node_modules/lodash-es/_arrayLikeKeys.js","../node_modules/lodash-es/_isPrototype.js","../node_modules/lodash-es/_nativeKeys.js","../node_modules/lodash-es/_baseKeys.js","../node_modules/lodash-es/isArrayLike.js","../node_modules/lodash-es/keys.js","../node_modules/lodash-es/_baseAssign.js","../node_modules/lodash-es/_nativeKeysIn.js","../node_modules/lodash-es/_baseKeysIn.js","../node_modules/lodash-es/keysIn.js","../node_modules/lodash-es/_baseAssignIn.js","../node_modules/lodash-es/_copyArray.js","../node_modules/lodash-es/_arrayFilter.js","../node_modules/lodash-es/stubArray.js","../node_modules/lodash-es/_getSymbols.js","../node_modules/lodash-es/_copySymbols.js","../node_modules/lodash-es/_arrayPush.js","../node_modules/lodash-es/_getSymbolsIn.js","../node_modules/lodash-es/_copySymbolsIn.js","../node_modules/lodash-es/_baseGetAllKeys.js","../node_modules/lodash-es/_getAllKeys.js","../node_modules/lodash-es/_getAllKeysIn.js","../node_modules/lodash-es/_DataView.js","../node_modules/lodash-es/_Promise.js","../node_modules/lodash-es/_Set.js","../node_modules/lodash-es/_WeakMap.js","../node_modules/lodash-es/_getTag.js","../node_modules/lodash-es/_initCloneArray.js","../node_modules/lodash-es/_Uint8Array.js","../node_modules/lodash-es/_cloneArrayBuffer.js","../node_modules/lodash-es/_cloneDataView.js","../node_modules/lodash-es/_cloneRegExp.js","../node_modules/lodash-es/_cloneSymbol.js","../node_modules/lodash-es/_cloneTypedArray.js","../node_modules/lodash-es/_initCloneByTag.js","../node_modules/lodash-es/_baseCreate.js","../node_modules/lodash-es/_initCloneObject.js","../node_modules/lodash-es/_baseIsMap.js","../node_modules/lodash-es/isMap.js","../node_modules/lodash-es/_baseIsSet.js","../node_modules/lodash-es/isSet.js","../node_modules/lodash-es/_baseClone.js","../node_modules/lodash-es/clone.js","../node_modules/lodash-es/_arrayMap.js","../node_modules/lodash-es/isSymbol.js","../node_modules/lodash-es/memoize.js","../node_modules/lodash-es/_memoizeCapped.js","../node_modules/lodash-es/_stringToPath.js","../node_modules/lodash-es/_toKey.js","../node_modules/lodash-es/_baseToString.js","../node_modules/lodash-es/toString.js","../node_modules/lodash-es/toPath.js","../node_modules/lodash-es/cloneDeep.js","../../src/utils.ts","../../src/FormikContext.tsx","../../src/Formik.tsx","../../src/Field.tsx","../../src/Form.tsx","../../src/connect.tsx","../../src/FieldArray.tsx","../../src/ErrorMessage.tsx","../../src/FastField.tsx","../node_modules/prop-types/index.js","../node_modules/react-dom/index.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/setPrototypeOf.js","../node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","../node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","../node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","../node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","../node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","../node_modules/@popperjs/core/lib/utils/within.js","../node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","../node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","../node_modules/lodash/_baseGetTag.js","../node_modules/lodash/isObjectLike.js","../node_modules/lodash/toString.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/lodash/_Symbol.js","../node_modules/lodash/_nativeCreate.js","../node_modules/lodash/_ListCache.js","../node_modules/lodash/_assocIndexOf.js","../node_modules/lodash/_getMapData.js","../node_modules/lodash/_toKey.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../node_modules/react-intl/lib/src/components/injectIntl.js","../node_modules/@popperjs/core/lib/utils/computeOffsets.js","../node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","../node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","../node_modules/@popperjs/core/lib/utils/expandToHashMap.js","../node_modules/@popperjs/core/lib/dom-utils/contains.js","../node_modules/lodash-es/_freeGlobal.js","../node_modules/lodash-es/isBuffer.js","../node_modules/lodash/mapValues.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/regenerator/index.js","../node_modules/webpack/buildin/global.js","../node_modules/react-responsive-carousel/lib/js/CSSTranslate.js","../node_modules/webpack/buildin/harmony-module.js","../node_modules/lodash/_isKey.js","../node_modules/lodash/isSymbol.js","../node_modules/lodash/_MapCache.js","../node_modules/lodash/isObject.js","../node_modules/lodash/_Map.js","../node_modules/lodash/isLength.js","../node_modules/lodash/keys.js","../node_modules/react-bootstrap-v5/lib/esm/divWithClassName.js","../node_modules/react-responsive-carousel/lib/js/index.js","../node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","../node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","../node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","../node_modules/@popperjs/core/lib/utils/orderModifiers.js","../node_modules/@popperjs/core/lib/utils/debounce.js","../node_modules/@popperjs/core/lib/createPopper.js","../node_modules/@popperjs/core/lib/utils/mergeByName.js","../node_modules/intl-messageformat/lib/src/formatters.js","../node_modules/mini-create-react-context/dist/esm/index.js","../node_modules/path-to-regexp/index.js","../node_modules/lodash/snakeCase.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","../node_modules/react-bootstrap-v5/lib/esm/SafeAnchor.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../node_modules/object-assign/index.js","../node_modules/webpack/buildin/module.js","../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/defaults.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/core/createError.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/cancel/Cancel.js","../node_modules/@popperjs/core/lib/modifiers/eventListeners.js","../node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","../node_modules/@popperjs/core/lib/modifiers/computeStyles.js","../node_modules/@popperjs/core/lib/modifiers/offset.js","../node_modules/@popperjs/core/lib/modifiers/arrow.js","../node_modules/@popperjs/core/lib/modifiers/hide.js","../node_modules/react-bootstrap-v5/lib/esm/CardContext.js","../node_modules/react-bootstrap-v5/lib/esm/createChainedFunction.js","../../src/chart.tsx","../../src/typedCharts.tsx","../node_modules/react-easy-swipe/lib/index.js","../node_modules/react-responsive-carousel/lib/js/cssClasses.js","../node_modules/react-responsive-carousel/lib/js/components/Thumbs.js","../node_modules/react-responsive-carousel/lib/js/shims/window.js","../node_modules/react-responsive-carousel/lib/js/components/Carousel/utils.js","../node_modules/lodash/_hasPath.js","../node_modules/lodash/_castPath.js","../node_modules/lodash/_freeGlobal.js","../node_modules/lodash/isFunction.js","../node_modules/lodash/_toSource.js","../node_modules/lodash/eq.js","../node_modules/lodash/isArguments.js","../node_modules/lodash/_isIndex.js","../node_modules/lodash/_baseAssignValue.js","../node_modules/lodash/_baseForOwn.js","../node_modules/lodash/isBuffer.js","../node_modules/lodash/isTypedArray.js","../node_modules/lodash/_baseIteratee.js","../node_modules/lodash/_Stack.js","../node_modules/lodash/_baseIsEqual.js","../node_modules/lodash/_equalArrays.js","../node_modules/lodash/_isStrictComparable.js","../node_modules/lodash/_matchesStrictComparable.js","../node_modules/lodash/_baseGet.js","../node_modules/lodash/_createCompounder.js","../node_modules/lodash/_hasUnicode.js","../node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","../node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","../node_modules/@popperjs/core/lib/modifiers/flip.js","../node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","../node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","../node_modules/@popperjs/core/lib/utils/getAltAxis.js","../node_modules/exenv/index.js","../node_modules/lodash-es/stubFalse.js","../node_modules/lodash-es/_cloneBuffer.js","../node_modules/lodash/camelCase.js","../node_modules/lodash/mapKeys.js","../node_modules/toposort/index.js","../../src/helpers.ts","../../src/index.ts","../../src/index.tsx","../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/axios/lib/axios.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/core/transformData.js","../node_modules/process/browser.js","../node_modules/axios/lib/helpers/normalizeHeaderName.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/core/enhanceError.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/core/buildFullPath.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/axios/lib/helpers/isAxiosError.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/@formatjs/intl-relativetimeformat/polyfill.js","../node_modules/@formatjs/intl-relativetimeformat/index.js","../node_modules/@formatjs/intl-relativetimeformat/abstract/InitializeRelativeTimeFormat.js","../node_modules/@formatjs/intl-relativetimeformat/abstract/PartitionRelativeTimePattern.js","../node_modules/@formatjs/intl-relativetimeformat/abstract/SingularRelativeTimeUnit.js","../node_modules/@formatjs/intl-relativetimeformat/abstract/MakePartsList.js","../node_modules/@formatjs/intl-relativetimeformat/get_internal_slots.js","../node_modules/@formatjs/intl-relativetimeformat/should-polyfill.js","../node_modules/@formatjs/intl-relativetimeformat/locale-data/en.js","../node_modules/@formatjs/intl-relativetimeformat/locale-data/de.js","../node_modules/@formatjs/intl-relativetimeformat/locale-data/es.js","../node_modules/@formatjs/intl-relativetimeformat/locale-data/fr.js","../node_modules/@formatjs/intl-relativetimeformat/locale-data/ja.js","../node_modules/@formatjs/intl-relativetimeformat/locale-data/zh.js","../node_modules/hoist-non-react-statics/node_modules/react-is/index.js","../node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/path-to-regexp/node_modules/isarray/index.js","../node_modules/react-router/node_modules/react-is/index.js","../node_modules/react-router/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/regenerator-runtime/runtime.js","../node_modules/react-responsive-carousel/lib/js/components/Carousel/index.js","../node_modules/react-easy-swipe/lib/react-swipe.js","../node_modules/react-responsive-carousel/lib/js/dimensions.js","../node_modules/react-responsive-carousel/lib/js/shims/document.js","../node_modules/react-responsive-carousel/lib/js/components/Carousel/animations.js","../node_modules/lodash/_baseHas.js","../node_modules/lodash/_getRawTag.js","../node_modules/lodash/_objectToString.js","../node_modules/lodash/_stringToPath.js","../node_modules/lodash/_memoizeCapped.js","../node_modules/lodash/memoize.js","../node_modules/lodash/_mapCacheClear.js","../node_modules/lodash/_Hash.js","../node_modules/lodash/_hashClear.js","../node_modules/lodash/_baseIsNative.js","../node_modules/lodash/_isMasked.js","../node_modules/lodash/_coreJsData.js","../node_modules/lodash/_getValue.js","../node_modules/lodash/_hashDelete.js","../node_modules/lodash/_hashGet.js","../node_modules/lodash/_hashHas.js","../node_modules/lodash/_hashSet.js","../node_modules/lodash/_listCacheClear.js","../node_modules/lodash/_listCacheDelete.js","../node_modules/lodash/_listCacheGet.js","../node_modules/lodash/_listCacheHas.js","../node_modules/lodash/_listCacheSet.js","../node_modules/lodash/_mapCacheDelete.js","../node_modules/lodash/_isKeyable.js","../node_modules/lodash/_mapCacheGet.js","../node_modules/lodash/_mapCacheHas.js","../node_modules/lodash/_mapCacheSet.js","../node_modules/lodash/_baseToString.js","../node_modules/lodash/_arrayMap.js","../node_modules/lodash/_baseIsArguments.js","../node_modules/lodash/_defineProperty.js","../node_modules/lodash/_baseFor.js","../node_modules/lodash/_createBaseFor.js","../node_modules/lodash/_arrayLikeKeys.js","../node_modules/lodash/_baseTimes.js","../node_modules/lodash/stubFalse.js","../node_modules/lodash/_baseIsTypedArray.js","../node_modules/lodash/_baseUnary.js","../node_modules/lodash/_nodeUtil.js","../node_modules/lodash/_baseKeys.js","../node_modules/lodash/_isPrototype.js","../node_modules/lodash/_nativeKeys.js","../node_modules/lodash/_overArg.js","../node_modules/lodash/isArrayLike.js","../node_modules/lodash/_baseMatches.js","../node_modules/lodash/_baseIsMatch.js","../node_modules/lodash/_stackClear.js","../node_modules/lodash/_stackDelete.js","../node_modules/lodash/_stackGet.js","../node_modules/lodash/_stackHas.js","../node_modules/lodash/_stackSet.js","../node_modules/lodash/_baseIsEqualDeep.js","../node_modules/lodash/_SetCache.js","../node_modules/lodash/_setCacheAdd.js","../node_modules/lodash/_setCacheHas.js","../node_modules/lodash/_arraySome.js","../node_modules/lodash/_cacheHas.js","../node_modules/lodash/_equalByTag.js","../node_modules/lodash/_Uint8Array.js","../node_modules/lodash/_mapToArray.js","../node_modules/lodash/_setToArray.js","../node_modules/lodash/_equalObjects.js","../node_modules/lodash/_getAllKeys.js","../node_modules/lodash/_baseGetAllKeys.js","../node_modules/lodash/_arrayPush.js","../node_modules/lodash/_getSymbols.js","../node_modules/lodash/_arrayFilter.js","../node_modules/lodash/stubArray.js","../node_modules/lodash/_getTag.js","../node_modules/lodash/_DataView.js","../node_modules/lodash/_Promise.js","../node_modules/lodash/_Set.js","../node_modules/lodash/_WeakMap.js","../node_modules/lodash/_getMatchData.js","../node_modules/lodash/_baseMatchesProperty.js","../node_modules/lodash/get.js","../node_modules/lodash/hasIn.js","../node_modules/lodash/_baseHasIn.js","../node_modules/lodash/identity.js","../node_modules/lodash/property.js","../node_modules/lodash/_baseProperty.js","../node_modules/lodash/_basePropertyDeep.js","../node_modules/lodash/_arrayReduce.js","../node_modules/lodash/deburr.js","../node_modules/lodash/_deburrLetter.js","../node_modules/lodash/_basePropertyOf.js","../node_modules/lodash/words.js","../node_modules/lodash/_asciiWords.js","../node_modules/lodash/_hasUnicodeWord.js","../node_modules/lodash/_unicodeWords.js","../node_modules/lodash/capitalize.js","../node_modules/lodash/upperFirst.js","../node_modules/lodash/_createCaseFirst.js","../node_modules/lodash/_castSlice.js","../node_modules/lodash/_baseSlice.js","../node_modules/lodash/_stringToArray.js","../node_modules/lodash/_asciiToArray.js","../node_modules/lodash/_unicodeToArray.js","../node_modules/intl-messageformat/lib/src/core.js","../node_modules/react-bootstrap-v5/lib/esm/Button.js","../node_modules/react-intl/lib/src/components/useIntl.js","../node_modules/@formatjs/intl/lib/src/message.js","../node_modules/@formatjs/intl/lib/src/number.js","../node_modules/@formatjs/intl/lib/src/relativeTime.js","../node_modules/@formatjs/intl/lib/src/dateTime.js","../node_modules/@formatjs/intl/lib/src/plural.js","../node_modules/@formatjs/intl/lib/src/list.js","../node_modules/@formatjs/intl/lib/src/displayName.js","../node_modules/@formatjs/intl/lib/src/create-intl.js","../node_modules/react-intl/lib/src/components/provider.js","../node_modules/react-bootstrap-v5/lib/esm/CardImg.js","../node_modules/react-bootstrap-v5/lib/esm/Card.js","../node_modules/@popperjs/core/lib/modifiers/applyStyles.js","../node_modules/@popperjs/core/lib/popper.js"],"names":["module","exports","require","_classCallCheck","instance","Constructor","TypeError","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_createClass","protoProps","staticProps","prototype","extendStatics","d","b","setPrototypeOf","__proto__","Array","p","hasOwnProperty","call","__extends","String","__","this","constructor","create","__assign","assign","t","s","n","arguments","apply","__rest","e","indexOf","getOwnPropertySymbols","propertyIsEnumerable","__decorate","decorators","desc","c","r","getOwnPropertyDescriptor","Reflect","decorate","__param","paramIndex","decorator","__metadata","metadataKey","metadataValue","metadata","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","value","step","next","rejected","result","done","then","__generator","body","f","y","g","_","label","sent","trys","ops","verb","Symbol","iterator","v","op","pop","push","__createBinding","o","m","k","k2","undefined","get","__exportStar","__values","__read","ar","error","__spread","concat","__spreadArrays","il","a","j","jl","__spreadArray","to","from","pack","l","slice","__await","__asyncGenerator","asyncIterator","q","resume","fulfill","settle","shift","__asyncDelegator","__asyncValues","__makeTemplateObject","cooked","raw","__setModuleDefault","__importStar","mod","__esModule","__importDefault","default","__classPrivateFieldGet","receiver","state","kind","has","__classPrivateFieldSet","set","top","bottom","right","left","auto","basePlacements","start","end","clippingParents","viewport","popper","reference","variationPlacements","reduce","acc","placement","placements","modifierPhases","toVal","mix","str","isArray","tmp","x","_slicedToArray","arr","_arr","_n","_d","_e","_s","_i","err","unsupportedIterableToArray","getMagnitude","Math","floor","log","LOG10E","repeat","times","join","setInternalSlot","map","pl","field","setMultiInternalSlots","_a","keys","getInternalSlot","getMultiInternalSlots","fields","slots","all","isLiteralPart","patternPart","type","name","UNICODE_EXTENSION_SEQUENCE_REGEX","invariant","condition","message","Err","Error","_getPrototypeOf","getPrototypeOf","_inherits","subClass","superClass","_typeof","obj","_possibleConstructorReturn","self","assertThisInitialized","_createSuper","Derived","hasNativeReflectConstruct","isNativeReflectConstruct","Super","NewTarget","construct","_createForOfIteratorHelper","allowArrayLike","it","F","normalCompletion","didErr","_e2","ownKeys","object","enumerableOnly","symbols","filter","sym","_objectSpread2","source","forEach","getOwnPropertyDescriptors","defineProperties","IntlErrorCode","IntlError","_super","code","exception","_this","stack","captureStackTrace","UnsupportedFormatterError","UNSUPPORTED_FORMATTER","InvalidConfigError","INVALID_CONFIG","MissingDataError","MISSING_DATA","MessageFormatError","locale","FORMAT_ERROR","id","defaultMessage","description","MissingTranslationError","MISSING_TRANSLATION","_extends","property","base","isElement","node","getWindow","Element","isHTMLElement","HTMLElement","isShadowRoot","ShadowRoot","historyContext","context","createContext","displayName","createNamedContext","Router","location","history","_isMounted","_pendingLocation","staticContext","unlisten","listen","setState","computeRootMatch","pathname","path","url","params","isExact","componentDidMount","componentWillUnmount","render","React","RouterContext","Provider","match","HistoryContext","children","Component","Lifecycle","onMount","componentDidUpdate","prevProps","onUpdate","onUnmount","cache","cacheCount","generatePath","pathToRegexp","compile","compilePath","pretty","Redirect","computedMatch","Consumer","method","replace","createLocation","prevLocation","locationsAreEqual","matchPath","options","exact","strict","sensitive","matched","cacheKey","pathCache","regexp","exec","values","memo","index","Route","component","createElement","addLeadingSlash","charAt","stripBasename","basename","substr","createURL","createPath","staticHandler","methodName","noop","Switch","element","Children","child","isValidElement","cloneElement","withRouter","C","wrappedComponentRef","remainingProps","ref","WrappedComponent","hoistStatics","useContext","useHistory","useLocation","Context","useParams","BrowserRouter","createHistory","resolveToLocation","currentLocation","normalizeToLocation","forwardRefShim","forwardRef","LinkAnchor","forwardedRef","innerRef","navigate","onClick","rest","event","ex","preventDefault","defaultPrevented","button","metaKey","altKey","ctrlKey","shiftKey","isModifiedEvent","Link","href","createHref","ariaCurrent","activeClassName","activeStyle","classNameProp","className","isActiveProp","isActive","locationProp","styleProp","style","toLocation","escapedPath","classnames","joinClassnames","isNum","isNaN","isBool","isStr","isFn","parseClassName","isToastIdValid","toastId","canUseDom","window","document","canBeRendered","content","POSITION","TOP_LEFT","TOP_RIGHT","TOP_CENTER","BOTTOM_LEFT","BOTTOM_RIGHT","BOTTOM_CENTER","TYPE","INFO","SUCCESS","WARNING","ERROR","DEFAULT","cssTransition","enter","exit","appendPosition","collapse","collapseDuration","position","preventExitTransition","nodeRef","isIn","enterClassName","exitClassName","baseClassName","useRef","animationStep","onEntered","current","dispatchEvent","Event","removeEventListener","onExited","duration","scrollHeight","requestAnimationFrame","minHeight","height","transition","padding","margin","setTimeout","collapseToast","useLayoutEffect","addEventListener","onEnter","useEffect","onExit","eventManager","list","Map","emitQueue","on","callback","off","cb","cancelEmit","timers","clearTimeout","emit","args","timer","useToastContainer","forceUpdate","useReducer","useState","toastIds","setToastIds","containerRef","toastToRender","isToastActive","toastKey","displayedToast","count","queue","containerId","getToast","clearWaitingQueue","limit","removeToast","dequeueToast","appendToast","toastContent","toastProps","staleId","buildToast","delay","enableMultiContainer","updateId","isNotValid","data","closeToast","isNotAnUpdate","toastAutoClose","containerAutoClose","isLoading","theme","icon","closeButton","rtl","toastClassName","bodyClassName","toastStyle","bodyStyle","pauseOnHover","pauseOnFocusLoss","draggable","draggablePercent","draggableDirection","closeOnClick","progressClassName","progressStyle","autoClose","hideProgressBar","progress","role","deleteToast","queueLen","freeSlot","toDequeue","onOpen","onClose","getToastToRender","toRender","collection","newestOnTop","reverse","toast","getX","targetTouches","clientX","getY","clientY","useToast","isRunning","setIsRunning","setPreventExitTransition","toastRef","drag","delta","removalDistance","canCloseOnClick","canDrag","boundingRect","didMove","syncProps","onDragStart","onDragMove","onDragEnd","getBoundingClientRect","nativeEvent","offsetWidth","offsetHeight","onDragTransitionEnd","pauseToast","playToast","transform","opacity","abs","once","hasFocus","bindFocusEvents","eventHandlers","onMouseDown","onTouchStart","onMouseUp","onTouchEnd","onMouseEnter","onMouseLeave","CloseButton","ariaLabel","stopPropagation","viewBox","fillRule","ProgressBar","hide","userStyle","controlledProgress","animationDuration","animationPlayState","defaultClassName","cx","classNames","animationEvent","defaultProps","Svg","width","fill","Icons","info","warning","success","spinner","Toast","Transition","cssClasses","isProgressControlled","maybeIcon","iconProps","Icon","renderCloseButton","Bounce","ToastContainer","getClassName","toastList","containerStyle","pointerEvents","latestInstance","containerDomNode","containerConfig","containers","lazy","generateToastId","random","toString","substring","getToastId","dispatchToast","size","appendChild","mergeOptions","createToastByType","loading","promise","pending","resetParams","resolver","input","baseParams","update","dismiss","warn","dark","container","oldOptions","oldContent","nextOptions","onChange","configure","config","containerInstance","item","removeChild","_toConsumableArray","arrayLikeToArray","iter","requestAnimFrame","throttled","fn","updateFn","updateArgs","ticking","_toLeftRightCenter","align","_alignStartEnd","uid","isNullOrUndef","isObject","isNumberFinite","Number","isFinite","finiteOrDefault","defaultValue","valueOrDefault","toDimension","dimension","endsWith","parseFloat","each","loopable","len","_elementsEqual","a0","a1","ilen","v0","v1","datasetIndex","clone$1","klen","isValidKey","_merger","tval","sval","merge","sources","merger","mergeIf","_mergerIf","indexOfDotOrLength","idx","resolveObjectKey","pos","_capitalize","toUpperCase","defined","isFunction","setsEqual","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","fraction","isNumber","epsilon","_setMinAndMaxByKey","array","min","max","toRadians","degrees","toDegrees","radians","_decimalPlaces","getAngleFromPoint","centrePoint","anglePoint","distanceFromXCenter","distanceFromYCenter","radialDistanceFromCenter","sqrt","angle","atan2","distance","distanceBetweenPoints","pt1","pt2","_angleDiff","_normalizeAngle","_angleBetween","sameAngleIsFullCircle","angleToStart","angleToEnd","startToAngle","endToAngle","_limitValue","_isBetween","atEdge","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","easeInOutBounce","A","B","D","E","hex","h1","h2","eq","hexString","isShort","lim","h","p2b","n2b","b2n","n2p","RGB_RE","HUE_RE","hsl2rgbn","hsv2rgbn","hwb2rgbn","w","rgb","rgb2hsl","calln","hsl2rgb","hue","hueParse","p1","p2","hwb2rgb","hsv2rgb","names$1","map$1","Z","Y","X","W","V","U","T","S","R","Q","O","N","M","L","K","G","H","I","J","names","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","ok","nk","unpacked","tkeys","parseInt","unpack","transparent","toLowerCase","modHSL","ratio","clone","proto","fromObject","functionParse","rgbParse","Color","ret","hexParse","_rgb","_valid","hslString","color","weight","me","w2","c1","c2","w1","val","deg","rotate","index_esm","isPatternOrGradient","CanvasGradient","CanvasPattern","getHoverColor","saturate","darken","overrides","descriptors","getScope$1","split","root","scope","defaults","_descriptors","animation","backgroundColor","borderColor","datasets","devicePixelRatio","chart","platform","getDevicePixelRatio","elements","events","font","family","lineHeight","hover","hoverBackgroundColor","ctx","hoverBorderColor","hoverColor","indexAxis","interaction","mode","intersect","maintainAspectRatio","onHover","parsing","plugins","responsive","scale","scales","showLine","drawActiveElementsOnTop","describe","targetScope","targetName","scopeObject","targetScopeObject","privateName","local","_scriptable","startsWith","_indexable","_fallback","_measureText","gc","longest","string","textWidth","measureText","_longestText","arrayOfThings","garbageCollect","save","jlen","thing","nestedThing","restore","gcLen","splice","_alignPixel","pixel","currentDevicePixelRatio","halfWidth","clearCanvas","canvas","getContext","resetTransform","clearRect","drawPoint","xOffset","yOffset","cornerRadius","pointStyle","rotation","radius","rad","translate","drawImage","beginPath","arc","closePath","moveTo","lineTo","SQRT1_2","rect","borderWidth","stroke","_isPointInArea","point","area","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","_readValueToProps","objProps","read","prop","toTRBL","toTRBLCorners","toPadding","toFont","fallback","console","toFontString","inputs","cacheable","parentContext","_lookup","table","cmp","mid","hi","lo","_lookupByKey","_rlookupByKey","arrayEvents","unlistenArrayEvents","listener","stub","_chartjs","listeners","_arrayUnique","items","Set","add","_createResolver","scopes","prefixes","rootScopes","getTarget","_resolve","toStringTag","Proxy","deleteProperty","_keys","_cached","_resolveWithPrefixes","_scopes","getKeysFromAllScopes","includes","storage","_storage","_attachContext","proxy","subProxy","descriptorDefaults","_cacheable","_proxy","_context","_subProxy","_stack","setContext","override","isScriptable","delete","needsSubResolver","createSubResolver","_resolveScriptable","isIndexable","_resolveArray","_resolveWithContext","allKeys","scriptable","indexable","_allKeys","readKey","prefix","resolveFallback","getScope","parent","addScopes","parentScopes","parentFallback","_rootScopes","allScopes","addScopesFromKey","_getTarget","subGetTarget","resolveKeysFromAllScopes","EPSILON","getPoint","points","skip","getValueAxis","splineCurve","firstPoint","middlePoint","afterPoint","d01","d12","s01","s12","fa","fb","monotoneAdjust","deltaK","mK","alphaK","betaK","tauK","squaredMagnitude","pointCurrent","pointsLen","pointAfter","monotoneCompute","pointBefore","valueAxis","iPixel","vPixel","capControlPoint","pt","_updateBezierControlPoints","loop","controlPoints","spanGaps","cubicInterpolationMode","slopeDelta","splineCurveMonotone","prev","tension","capBezierPoints","inArea","inAreaPrev","inAreaNext","_isDomSupported","_getParentNode","domNode","parentNode","host","parseMaxStyle","styleValue","parentProperty","valueInPixels","getComputedStyle","positions","getPositionedStyle","styles","suffix","getRelativePosition","evt","borderBox","boxSizing","paddings","borders","native","touches","offsetX","offsetY","box","shadowRoot","useOffsetPos","getCanvasPosition","round1","getMaximumSize","bbWidth","bbHeight","aspectRatio","margins","maxHeight","containerSize","containerBorder","containerPadding","clientWidth","clientHeight","getContainerSize","retinaScale","forceRatio","forceStyle","pixelRatio","deviceHeight","deviceWidth","setTransform","supportsEventListenerOptions","passiveSupported","readUsedSize","el","getPropertyValue","getStyle","_pointInLine","_steppedInterpolation","_bezierInterpolation","cp1","cp2","intlCache","formatNumber","num","JSON","stringify","formatter","Intl","NumberFormat","getNumberFormat","format","getRtlAdapter","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","initial","currentStep","_update","_refresh","Date","now","remaining","running","draw","_active","_total","tick","_notify","charts","complete","_getAnims","cur","_duration","cancel","interpolators","boolean","factor","c0","valid","number","Animation","cfg","currentValue","_fn","_easing","easing","_start","_loop","_target","_prop","_from","_to","_promises","elapsed","remain","promises","res","rej","resolved","animationOptions","colors","properties","numbers","active","resize","show","animations","visible","Animations","_properties","animatedProps","getOwnPropertyNames","option","newOptions","$shared","$animations","resolveTargetOptions","_createAnimations","anim","wait","awaitAll","_animateOptions","scaleClip","allowedOverflow","getSortedDatasetIndices","filterVisible","metasets","_getSortedDatasetMetas","applyStack","dsIndex","otherValue","singleMode","isStacked","meta","stacked","getOrCreateStack","stacks","stackKey","indexValue","subStack","getLastIndexInStack","vScale","positive","getMatchingVisibleMetas","updateStacks","controller","parsed","_cachedMeta","_stacks","iScale","iAxis","axis","vAxis","indexScale","valueScale","getStackKey","_top","_bottom","getFirstScaleId","clearStacks","_parsed","isDirectUpdateMode","cloneIfNotShared","cached","shared","DatasetController","_ctx","_cachedDataOpts","getMeta","_type","_parsing","_data","_objectData","_sharedOptions","_drawStart","_drawCount","enableOptionSharing","$context","_syncList","initialize","linkScales","_stacked","addElements","dataset","getDataset","chooseId","xid","xAxisID","yid","yAxisID","rid","rAxisID","iid","iAxisID","vid","vAxisID","xScale","getScaleForId","yScale","rScale","getDatasetMeta","scaleID","adata","convertObjectDataToArray","isExtensible","_dataCheck","datasetElementType","resetNewElements","stackChanged","oldStacked","_resyncElements","scopeKeys","datasetScopeKeys","getOptionScopes","createResolver","sorted","_sorted","parseArrayData","parseObjectData","parsePrimitiveData","labels","getLabels","singleScale","parse","xAxisKey","yAxisKey","parsedValue","NaN","canStack","otherScale","_getOtherScale","hidden","createStack","NEGATIVE_INFINITY","getUserBounds","minDefined","maxDefined","otherMin","otherMax","_skip","updateRangeFromParsed","getParsed","getLabelForValue","_clip","disabled","toClip","defaultClip","getMaxOverflow","chartArea","resolveDatasetElementOptions","resolveDataElementOptions","dataIndex","createDataContext","createDatasetContext","_resolveElementOptions","dataElementType","elementType","sharing","datasetElementScopeKeys","resolveNamedOptions","freeze","datasetAnimationScopeKeys","sharedOptions","_animationsDisabled","_resolveAnimations","getSharedOptions","_setStyle","arg1","arg2","numMeta","numData","_insertElements","_removeElements","move","updateElements","removed","_dataChanges","_sync","newCount","computeMinSampleSize","curr","_cache","$bar","visibleMetas","getAllParsedValues","sort","getAllScaleValues","_length","updateMinAndPrev","getPixelForValue","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","reset","getBasePixel","isHorizontal","ruler","_getRuler","firstOpts","includeOptions","updateSharedOptions","vpixels","head","_calculateBarValuePixels","ipixels","_calculateBarIndexPixels","center","updateElement","last","grouped","_getStacks","pixels","barThickness","_startPixel","_endPixel","stackCount","_getStackCount","categoryPercentage","barPercentage","baseValue","minBarLength","actualBase","floating","getDataVisibility","barSign","halfGrid","getLineWidthForValue","skipNull","maxBarThickness","Infinity","percent","chunk","computeFlexCategoryTraits","thickness","computeFitCategoryTraits","stackIndex","_getStackIndex","rects","_index_","offset","grid","_value_","beginAtZero","BubbleController","getPixelForDecimal","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","animationsDisabled","pointCount","getStartAndCountOfVisiblePoints","_scaleRanges","newRanges","xmin","xmax","ymin","ymax","changed","scaleRangesChanged","_decimated","animated","maxGapLength","directUpdate","prevParsed","nullData","stop","border","lastPoint","updateControlPoints","PolarAreaController","_updateRadius","minSize","cutoutPercentage","getVisibleDatasetCount","xCenter","yCenter","datasetStartAngle","getIndexAngle","defaultAngle","countVisibleElements","_computeAngle","getDistanceFromCenterForValue","angleLines","display","circular","pointLabels","PieController","RadarController","_fullLoop","pointPosition","getPointPositionForValue","ScatterController","controllers","abstract","DateAdapter","timestamp","amount","unit","weekday","members","adapters","_date","getRelativePosition$1","binarySearch","metaset","lookupMethod","_reversePixels","getRange","optimizedEvaluateItems","handler","getSortedVisibleDatasetMetas","getIntersectItems","useFinalPosition","_minPadding","inRange","getNearestCartesianItems","distanceMetric","useX","useY","deltaX","deltaY","getDistanceMetricForAxis","minDistance","getCenterPoint","getNearestItems","getProps","getNearestRadialItems","getAxisItems","rangeMethod","intersectsItem","evaluateAllVisibleItems","Interaction","modes","nearest","STATIC_POSITIONS","filterByPosition","filterDynamicPositionByAxis","sortByWeight","setLayoutDims","layouts","layout","wrap","stackWeight","placed","buildStacks","vBoxMaxWidth","hBoxMaxHeight","fullSize","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","z","layoutItem","minPadding","layoutBoxes","wrapBoxes","centerHorizontal","centerVertical","leftAndTop","rightAndBottom","vertical","buildLayoutBoxes","verticalBoxes","horizontalBoxes","beforeLayout","visibleVerticalBoxCount","updatePos","change","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","fromNativeEvent","addListener","DomPlatform","renderHeight","getAttribute","renderWidth","displayWidth","displayHeight","initCanvas","removeAttribute","setAttribute","proxies","$proxies","attach","detach","isConnected","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","ceil","skipMajors","evenMajorSpacing","diff","getEvenSpacing","factors","_factorize","calculateSpacing","avgMajorSpacing","majorStart","majorEnd","grace","drawBorder","drawOnChartArea","drawTicks","tickWidth","tickColor","minRotation","maxRotation","mirror","textStrokeWidth","textStrokeColor","autoSkipPadding","labelOffset","minor","crossAlign","showLabelBackdrop","backdropColor","backdropPadding","route","offsetFromEdge","sample","numItems","increment","getPixelForGridLine","offsetGridLines","validIndex","lineValue","getTickMarkLength","getTitleHeight","titleAlign","reverseAlign","Scale","_margins","paddingTop","paddingBottom","paddingLeft","paddingRight","labelRotation","_range","_gridLineItems","_labelItems","_labelSizes","_longestTextCache","_userMax","_userMin","_suggestedMax","_suggestedMin","_ticksLength","_borderValue","_dataLimitsCached","suggestedMin","suggestedMax","metas","getMinMax","xLabels","yLabels","beforeUpdate","sampleSize","beforeSetDimensions","setDimensions","afterSetDimensions","beforeDataLimits","determineDataLimits","afterDataLimits","minmax","keepZero","_addGrace","beforeBuildTicks","buildTicks","afterBuildTicks","samplingEnabled","_convertTicksToLabels","beforeCalculateLabelRotation","calculateLabelRotation","afterCalculateLabelRotation","beforeFit","fit","afterFit","afterUpdate","startPixel","endPixel","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","generateTickLabels","_computeLabelSizes","tickFont","fontString","nestedLabel","caches","widths","heights","widestLabelSize","highestLabelSize","_resolveTickFontOptions","valueAt","decimal","getBaseValue","createTickContext","optionTicks","rot","borderValue","alignedLineValue","tx1","ty1","tx2","ty2","x1","y1","x2","y2","ticksLength","tl","borderOpts","axisWidth","axisHalfWidth","alignBorderValue","positionAxisID","optsAtIndex","lineColor","tickBorderDash","tickBorderDashOffset","lineCount","textOffset","tickAndPadding","hTickAndPadding","_getXAxisLabelAlignment","_getYAxisLabelAlignment","halfCount","backdrop","labelPadding","fillRect","findIndex","_computeGridLineItems","drawLine","setLineDash","lineDashOffset","lastLineWidth","_computeLabelArea","_computeLabelItems","titleX","titleY","titleArgs","drawBackground","drawGrid","drawTitle","drawLabels","tz","gz","axisID","fontSize","TypedRegistry","isPrototypeOf","parentScope","isIChartComponent","register","itemDefaults","routes","propertyParts","sourceName","sourceScope","parts","routeDefaults","registerDefaults","registry","_typedRegistries","_each","_get","typedRegistry","arg","reg","_getRegistryForType","isForType","_exec","itemReg","camelMethod","PluginService","_init","hook","_createDescriptors","plugin","cancelable","_oldCache","_notifyStateChanges","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","debounce","resizeDelay","_initialize","bindEvents","_resizeBeforeDraw","_resize","newSize","newRatio","onResize","axisOptions","scaleOpts","updated","isRadial","dposition","dtype","scaleType","getScale","init","hasUpdated","_destroyDatasetMeta","newControllers","_removeUnreferencedMetasets","order","updateIndex","ControllerClass","getController","getElement","_updateMetasets","_resetElements","animsDisabled","_updateScales","_checkEventBindings","_updateHiddenIndices","invalidate","buildOrUpdateControllers","buildOrUpdateElements","_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","alpha","avNogSpacingRadius","angleOffset","outerStartAdjustedRadius","outerEndAdjustedRadius","outerStartAdjustedAngle","outerEndAdjustedAngle","innerStartAdjustedRadius","innerEndAdjustedRadius","innerStartAdjustedAngle","innerEndAdjustedAngle","pCenter","p4","p8","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","strokePathWithCache","segmentMethod","strokePathDirect","LineElement","_points","_segments","_pointsUpdated","findStartAndEnd","solidSegments","_computeSegments","_interpolate","_getInterpolationMethod","interpolated","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","cleanDecimatedDataset","cleanDecimatedData","plugin_decimation","algorithm","beforeElementsUpdate","xAxis","getStartAndCountOfVisiblePointsSimplified","threshold","decimated","samples","maxAreaPoint","maxArea","nextA","bucketWidth","sampledIndex","endIndex","avgY","avgRangeStart","avgRangeEnd","avgRangeLength","rangeOffs","rangeTo","pointAx","pointAy","lttbDecimation","minIndex","maxIndex","startIndex","xMin","dx","lastIndex","intermediateIndex1","intermediateIndex2","minMaxDecimation","destroy","decodeFill","fillOption","parseFillOption","simpleArc","computeBoundary","computeCircularBoundary","computeLinearBoundary","findSegmentEnd","addPointsBelow","sourcePoint","linesBelow","postponed","findPoint","unshift","interpolate","pointValue","linePoints","firstValue","lastValue","getLineByIndex","sourcePoints","below","getLinesBelow","createBoundaryLine","buildStackLine","boundary","pointsFromSegments","resolveTarget","propagate","visited","clipY","getBounds","_getEdge","clipBounds","interpolatedLineTo","interpolatedPoint","_fill","tpoints","targetSegments","tgt","subBounds","fillSources","fillSource","src","notShape","lineLoop","targetLoop","drawfill","lineOpts","above","doFill","plugin_filler","afterDatasetsUpdate","_args","$filler","beforeDraw","drawTime","beforeDatasetsDraw","beforeDatasetDraw","getBoxSize","labelOpts","boxHeight","boxWidth","usePointStyle","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","adjustHitBoxes","afterEvent","handleEvent","ci","Title","_padding","textSize","fontOpts","_drawArgs","plugin_title","titleBlock","createTitle","WeakMap","plugin_subtitle","positioners","average","hasValue","tooltipPosition","eventPosition","nearestElement","tp","pushOrConcat","toPush","splitNewlines","createTooltipItem","getLabelAndValue","getTooltipSize","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","_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","labelCount","Decimation","Filler","SubTitle","findOrAddLabel","addedLabels","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","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","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","registerables","memoize","cacheDefault","serializer","serializerDefault","strategy","strategyDefault","monadic","computedValue","variadic","assemble","serialize","bind","ObjectWithoutPrototypeCache","strategies","freeSelf","freeGlobal","Function","ownerDocument","defaultView","filterProps","whitelist","filtered","DEFAULT_INTL_CONFIG","messages","timeZone","defaultLocale","defaultFormats","onError","process","createIntlCache","dateTime","relativeTime","pluralRules","displayNames","createFastMemoizeCache","store","createFormatters","RelativeTimeFormat","ListFormat","DisplayNames","getDateTimeFormat","DateTimeFormat","getPluralRules","PluralRules","getMessageFormat","locales","overrideFormats","IntlMessageFormat","getRelativeTimeFormat","getListFormat","getDisplayNames","getNamedFormat","formatType","getBasePlacement","ErrorKind","SKELETON_TYPE","isLiteralElement","literal","isArgumentElement","argument","isNumberElement","isDateElement","isTimeElement","isSelectElement","select","isPluralElement","plural","isPoundElement","pound","isTagElement","tag","isNumberSkeleton","isDateTimeSkeleton","SPACE_SEPARATOR_REGEX","DATE_TIME_REGEX","parseDateTimeSkeleton","skeleton","era","RangeError","hour12","hourCycle","timeZoneName","WHITE_SPACE_REGEX","FRACTION_PRECISION_REGEX","SIGNIFICANT_PRECISION_REGEX","INTEGER_WIDTH_REGEX","CONCISE_INTEGER_WIDTH_REGEX","parseSignificantPrecision","g1","g2","minimumSignificantDigits","maximumSignificantDigits","parseSign","signDisplay","currencySign","parseConciseScientificAndEngineeringStem","stem","test","minimumIntegerDigits","parseNotationOptions","opt","signOpts","parseNumberSkeleton","tokens","tokens_1","token","currency","useGrouping","compactDisplay","currencyDisplay","unitDisplay","g3","g4","g5","conciseScientificAndEngineeringOpts","SPACE_SEPARATOR_START_REGEX","SPACE_SEPARATOR_END_REGEX","hasNativeStartsWith","hasNativeFromCodePoint","fromCodePoint","hasNativeFromEntries","fromEntries","hasNativeCodePointAt","codePointAt","hasTrimStart","trimStart","hasTrimEnd","trimEnd","isSafeInteger","REGEX_SUPPORTS_U_AND_Y","RE","matchIdentifierAtIndex","search","codePoints","fromCharCode","entries_1","charCodeAt","flag","IDENTIFIER_PREFIX_RE_1","_isWhiteSpace","_isPatternSyntax","Parser","column","ignoreTag","requiresOtherClause","shouldParseSkeletons","parseMessage","nestingLevel","parentArgType","expectingCloseTag","isEOF","char","parseArgument","peek","UNMATCHED_CLOSING_TAG","clonePosition","_isAlpha","parseTag","parseLiteral","bump","startPosition","tagName","parseTagName","bumpSpace","bumpIf","childrenResult","endTagStartPosition","INVALID_TAG","closingTagNameStartPosition","UNCLOSED_TAG","startOffset","parseQuoteResult","tryParseQuote","parseUnquotedResult","tryParseUnquoted","parseLeftAngleResult","tryParseLeftAngleBracket","codepoint","ch","openingBracePosition","EXPECT_ARGUMENT_CLOSING_BRACE","EMPTY_ARGUMENT","parseIdentifierIfPossible","MALFORMED_ARGUMENT","parseArgumentOptions","startingPosition","endOffset","bumpTo","typeStartPosition","argType","typeEndPosition","EXPECT_ARGUMENT_TYPE","styleAndLocation","styleStartPosition","parseSimpleArgStyleIfPossible","EXPECT_ARGUMENT_STYLE","styleLocation","argCloseResult","tryParseArgumentClose","location_1","parseNumberSkeletonFromString","EXPECT_DATE_TIME_SKELETON","pattern","parsedOptions","typeEndPosition_1","EXPECT_SELECT_ARGUMENT_OPTIONS","identifierAndLocation","pluralOffset","EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE","tryParseDecimalInteger","INVALID_PLURAL_ARGUMENT_OFFSET_VALUE","optionsResult","tryParsePluralOrSelectOptions","location_2","pluralType","INVALID_ARGUMENT_TYPE","nestedBraces","apostrophePosition","bumpUntil","UNCLOSED_QUOTE_IN_ARGUMENT_STYLE","stringTokens_1","stemAndOptions","options_1","INVALID_NUMBER_SKELETON","expectCloseTag","parsedFirstIdentifier","hasOtherClause","parsedSelectors","selector","selectorLocation","EXPECT_PLURAL_ARGUMENT_SELECTOR","INVALID_PLURAL_ARGUMENT_SELECTOR","DUPLICATE_SELECT_ARGUMENT_SELECTOR","DUPLICATE_PLURAL_ARGUMENT_SELECTOR","EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT","EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT","fragmentResult","EXPECT_SELECT_ARGUMENT_SELECTOR","MISSING_OTHER_CLAUSE","expectNumberError","invalidNumberError","hasDigits","currentOffset","targetOffset","nextCode","pruneLocation","els","SyntaxError","originalMessage","captureLocation","_objectWithoutPropertiesLoose","excluded","sourceKeys","getNodeName","nodeName","_defineProperty","getDocumentElement","documentElement","baseClone","circulars","clones","nodeType","cloneNode","getTime","errorToString","regExpToString","symbolToString","SYMBOL_REGEXP","printNumber","printSimpleValue","quoteStrings","typeOf","toISOString","printValue","mixed","required","oneOf","notOneOf","notType","originalValue","isCast","msg","email","uuid","trim","lowercase","uppercase","lessThan","moreThan","negative","integer","isValue","noUnknown","__isYupSchema__","Condition","refs","otherwise","is","check","every","schema","branch","getValue","isSchema","Parent","Class","Wrapper","toArray","strReg","ValidationError","errorOrErrors","errors","isError","runTests","endEarly","tests","fired","nestedErrors","Reference","isContext","isSibling","__isYupRef","createValidation","validate","_ref","sync","Ref","isRef","createError","nextParams","mapValues","formatError","_ref2","validOrError","OPTIONS","part","getIn","lastPart","lastPartDebug","_part","isBracket","innerType","parentPath","ReferenceSet","newItems","removeItems","BaseSchema","deps","conditions","_whitelist","_blacklist","exclusiveTests","transforms","withMutation","typeError","spec","strip","abortEarly","recursive","nullable","presence","_value","_mutate","_typeError","_whitelistError","_blacklistError","cloneDeep","combined","mergedSpec","_typeCheck","resolvedSchema","_cast","assert","isType","formattedResult","rawValue","getDefault","initialTests","maybeCb","_validate","validateSync","_getDefault","def","isStrict","exclusive","_isPresent","isNullable","isExclusive","dep","enums","valids","invalids","alias","optional","notRequired","Mixed","BooleanSchema","Boolean","valueOf","isAbsent","rEmail","rUrl","rUUID","isTrimmed","objStringTag","StringSchema","strValue","regex","excludeEmptyString","NumberSchema","less","more","isInteger","_method","avail","truncate","isoReg","invalidDate","DateSchema","struct","numericKeys","minutesOffset","UTC","isoParse","param","cast","prepareParam","INVALID_DATE","sortFields","excludes","edges","nodes","addNode","depPath","toposort","ii","_err$path","sortByKeyOrder","unknown","known","defaultSort","ObjectSchema","_sortErrors","_nodes","_excludedEdges","shape","_options$stripUnknown","stripUnknown","intermediateValue","innerOptions","__validating","isChanged","exists","fieldValue","inputValue","fieldSpec","nextFields","schemaOrRef","dft","getDefaultFromShape","additions","picked","fromGetter","newObj","noAllow","unknownKeys","allow","mapKeys","transformKeys","camelCase","snakeCase","ArraySchema","_opts","castArray","castElement","_options$abortEarly","_options$recursive","rejector","isUndefined","isPlainObject","isArrayBuffer","isBuffer","isFormData","FormData","isArrayBufferView","ArrayBuffer","isView","buffer","isString","isDate","isFile","isBlob","isStream","pipe","isURLSearchParams","URLSearchParams","isStandardBrowserEnv","navigator","product","assignValue","extend","stripBOM","_setPrototypeOf","_inheritsLoose","hasOwn","classes","isAbsolute","spliceOne","resolvePathname","hasTrailingSlash","toParts","fromParts","isToAbs","isFromAbs","mustEndAbs","up","valueEqual","aValue","bValue","stripLeadingSlash","hasBasename","stripTrailingSlash","hash","hashIndex","searchIndex","parsePath","decodeURI","URIError","createTransitionManager","prompt","setPrompt","nextPrompt","confirmTransitionTo","action","getUserConfirmation","appendListener","notifyListeners","_len","_key","canUseDOM","getConfirmation","confirm","PopStateEvent","HashChangeEvent","getHistoryState","createBrowserHistory","globalHistory","canUseHistory","ua","userAgent","supportsHistory","needsHashChangeListener","_props","_props$forceRefresh","forceRefresh","_props$getUserConfirm","_props$keyLength","keyLength","getDOMLocation","historyState","_window$location","createKey","transitionManager","nextState","handlePopState","isExtraneousPopstateEvent","handlePop","handleHashChange","forceNextPop","fromLocation","toIndex","fromIndex","go","revertPop","initialLocation","listenerCount","checkDOMListeners","isBlocked","pushState","prevIndex","nextKeys","replaceState","goBack","goForward","block","unblock","HashChangeEvent$1","HashPathCoders","hashbang","encodePath","decodePath","noslash","slash","stripHash","getHashPath","replaceHashPath","createHashHistory","_props$hashType","hashType","_HashPathCoders$hashT","ignorePath","encodedPath","allPaths","baseTag","querySelector","pushHashPath","nextPaths","clamp","lowerBound","upperBound","createMemoryHistory","_props$initialEntries","initialEntries","_props$initialIndex","initialIndex","nextIndex","nextEntries","canGo","rectToClientRect","getClientRectFromMixedType","clippingParent","win","html","visualViewport","offsetTop","getWindowScrollBarX","getViewportRect","clientTop","clientLeft","getInnerBoundingClientRect","_element$ownerDocumen","winScroll","getWindowScroll","scrollWidth","scrollLeft","scrollTop","getDocumentRect","getClippingRect","rootBoundary","mainClippingParents","listScrollParents","getParentNode","clipperElement","getOffsetParent","getClippingParents","firstClippingParent","clippingRect","accRect","detectOverflow","_options$placement","_options$boundary","_options$rootBoundary","_options$elementConte","elementContext","_options$altBoundary","altBoundary","_options$padding","paddingObject","mergePaddingObject","expandToHashMap","altContext","referenceElement","popperRect","clippingClientRect","contextElement","referenceClientRect","popperOffsets","computeOffsets","popperClientRect","elementClientRect","overflowOffsets","offsetData","modifiersData","multiply","includeScale","scaleX","scaleY","isTableElement","getTrueOffsetParent","offsetParent","isFirefox","currentNode","css","perspective","contain","willChange","getContainingBlock","invariantIntlContext","intl","CORE_DEFAULT_INTL_CONFIG","textComponent","assignUniqueKeysToParts","formatXMLElementFn","shallowEqual","objA","objB","aKeys","bKeys","rHyphen","pascalCase","chr","createWithBsPrefix","_temp","_ref$displayName","BsComponent","bsPrefix","_ref2$as","as","Tag","resolvedPrefix","useBootstrapPrefix","getVariation","_assertThisInitialized","ReferenceError","freeExports","freeModule","freeProcess","nodeUtil","types","binding","keyList","hasProp","hasElementType","equal","arrA","arrB","dateA","dateB","regexpA","regexpB","$$typeof","ThemeContext","defaultPrefix","assignedSlot","Cache","_maxSize","_values","SPLIT_REGEX","DIGIT_REGEX","LEAD_DIGIT_REGEX","SPEC_CHAR_REGEX","CLEAN_QUOTES_REGEX","setCache","getCache","normalizePath","isQuoted","shouldBeQuoted","hasLeadingNumber","hasSpecialChars","setter","safe","reactIs","REACT_STATICS","childContextTypes","contextType","contextTypes","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","baseIsNative","CanonicalizeLocaleList","getCanonicalLocales","CanonicalizeTimeZoneName","tzData","uppercaseLinks","uppercasedTz","uppercasedZones","ianaTimeZone","ToString","ToNumber","TimeClip","SameValue","ToInteger","ToObject","ArrayCreate","HasOwnProperty","Type","MS_PER_DAY","Day","WeekDay","DayFromYear","TimeFromYear","YearFromTime","getUTCFullYear","DaysInYear","DayWithinYear","InLeapYear","MonthFromTime","dwy","leap","DateFromTime","mft","MS_PER_SECOND","HourFromTime","MS_PER_MINUTE","MinFromTime","SecFromTime","OrdinaryHasInstance","internalSlots","boundTargetFunction","msFromTime","CoerceOptionsToObject","DefaultNumberOption","GetNumberOption","minimum","maximum","GetOption","GetOptionsObject","SANCTIONED_UNITS","removeUnitNamespace","SIMPLE_UNITS","IsSanctionedSimpleUnitIdentifier","unitIdentifier","IsValidTimeZoneName","zoneNames","linkNames","linkName","NOT_A_Z_REGEX","IsWellFormedCurrencyCode","IsWellFormedUnitIdentifier","units","numerator","denominator","ComputeExponentForMagnitude","numberFormat","magnitude","getInternalSlots","dataLocaleData","numberingSystem","thresholdMap","nu","short","long","thresholds","magnitudeKey","ToRawPrecision","minPrecision","maxPrecision","xFinal","int","xToString","xToStringExponentIndex","xToStringMantissa","xToStringExponent","xToStringMantissaWithoutDecimalPoint","decimalPlaceOffset","adjustDecimalPlace","cut","formattedString","roundedNumber","integerDigitsCount","ToRawFixed","minFraction","maxFraction","mantissa","exponent","FormatNumericToString","intlObject","isNegative","roundingType","minInteger","ComputeExponent","formatNumberResult","CurrencyDigits","currencyDigitsData","digitMapping","S_UNICODE_REGEX","CARET_S_UNICODE_REGEX","S_DOLLAR_UNICODE_REGEX","CLDR_NUMBER_PATTERN","formatToParts","numberResult","nonNameCurrencyPart","numberPattern","defaultNumberingSystem","compactNumberPattern","compactPluralRules","byNumberingSystem","selectPlural","compactPlaralRule","getPatternForSign","getCompactDisplayPattern","byCurrencyDisplay","currencies","symbol","narrow","standard","currencyData","decimalNumberPattern","afterCurrency","currencySpacing","afterInsertBetween","beforeCurrency","beforeInsertBetween","numberPatternParts","numberParts","numberPatternParts_1","paritionNumberIntoParts","minusSign","plusSign","percentSign","unitPattern","unitName","currencyNameData","unitPatternParts_1","unitData","simple","_b","numeratorUnit","denominatorUnit","numeratorUnitPattern","perUnitPattern","perUnit","perPattern","compound","per","denominatorPattern","_c","interpolateMatch","digitReplacementTable","digit","decimalSepIndex","groupSepSymbol","group","groups","patternGroups","primaryGroupingSize","secondaryGroupingSize","integerGroup","exponential","exponentResult","zeroPattern","negativePattern","rules","PartitionNumberPattern","nan","infinity","FormatNumericToParts","nf","implDetails","parts_1","BestAvailableLocale","availableLocales","candidate","UnicodeExtensionValue","extension","searchValue","ResolveLocale","requestedLocales","relevantExtensionKeys","localeData","getDefaultLocale","foundLocale","localeMatcher","requestedLocales_1","noExtensionLocale","availableLocale","LookupMatcher","minimizedAvailableLocaleMap","minimizedAvailableLocales","minimizedLocale","Locale","minimize","maximizedRequestedLocale","maximize","minimizedRequestedLocale","BestFitMatcher","dataLocale","supportedExtension","relevantExtensionKeys_1","foundLocaleData","keyLocaleData","supportedExtensionAddition","requestedValue","optionsValue","privateIndex","preExtension","postExtension","SetNumberFormatUnitOptions","SetNumberFormatDigitOptions","mnfdDefault","mxfdDefault","mnid","mnfd","mxfd","mnsd","mxsd","InitializeNumberFormat","numberingSystemNames","matcher","cDigits","PartitionPattern","beginIndex","LookupSupportedLocales","subset","SupportedLocales","RangePatternType","MissingLocaleDataError","isMissingLocaleDataError","baseHas","hasPath","ErrorCode","FormatError","InvalidValueError","variableId","INVALID_VALUE","InvalidValueTypeError","MissingValueError","MISSING_VALUE","isMergeableObject","isNonNullObject","stringValue","REACT_ELEMENT_TYPE","isReactElement","isSpecial","for","cloneUnlessOtherwiseSpecified","deepmerge","defaultArrayMerge","arrayMerge","sourceIsArray","destination","mergeObject","deepmerge_1","objectProto","nativeObjectToString","symToStringTag","getRawTag","isOwn","unmasked","objectToString","baseGetTag","overArg","func","getPrototype","isObjectLike","funcProto","funcToString","objectCtorString","Ctor","listCacheClear","__data__","assocIndexOf","listCacheDelete","listCacheGet","listCacheHas","listCacheSet","ListCache","stackClear","stackDelete","stackGet","stackHas","coreJsData","maskSrcKey","IE_PROTO","isMasked","toSource","reIsHostCtor","reIsNative","getNative","nativeCreate","hashClear","hashDelete","hashGet","hashHas","hashSet","Hash","mapCacheClear","isKeyable","getMapData","mapCacheDelete","mapCacheGet","mapCacheHas","mapCacheSet","MapCache","stackSet","pairs","LARGE_ARRAY_SIZE","Stack","arrayEach","iteratee","baseAssignValue","objValue","copyObject","customizer","isNew","newValue","baseTimes","baseIsArguments","isArguments","reIsUint","isIndex","isLength","typedArrayTags","baseIsTypedArray","baseUnary","nodeIsTypedArray","isTypedArray","arrayLikeKeys","inherited","isArr","isArg","isBuff","skipIndexes","isPrototype","nativeKeys","baseKeys","isArrayLike","baseAssign","nativeKeysIn","baseKeysIn","isProto","keysIn","baseAssignIn","copyArray","arrayFilter","predicate","resIndex","stubArray","nativeGetSymbols","getSymbols","copySymbols","arrayPush","getSymbolsIn","copySymbolsIn","baseGetAllKeys","keysFunc","symbolsFunc","getAllKeys","getAllKeysIn","DataView","mapTag","promiseTag","setTag","weakMapTag","dataViewTag","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","getTag","ctorString","initCloneArray","Uint8Array","cloneArrayBuffer","arrayBuffer","byteLength","cloneDataView","dataView","isDeep","byteOffset","reFlags","cloneRegExp","symbolProto","symbolValueOf","cloneSymbol","cloneTypedArray","typedArray","initCloneByTag","objectCreate","baseCreate","initCloneObject","baseIsMap","nodeIsMap","isMap","baseIsSet","nodeIsSet","isSet","argsTag","funcTag","objectTag","cloneableTags","bitmask","isFlat","isFull","isFunc","cloneBuffer","subValue","arrayMap","isSymbol","memoized","memoizeCapped","rePropName","reEscapeChar","stringToPath","quote","subString","toKey","baseToString","toPath","CLONE_DEEP_FLAG","isEmptyArray","isEmptyChildren","isPromise","setIn","resVal","pathArray","currentPath","currentObj","nextPath","setNestedObjectValues","response","FormikContext","FormikProvider","FormikConsumer","useFormikContext","formik","formikReducer","payload","touched","isEqual","status","isSubmitting","isValidating","submitCount","emptyErrors","emptyTouched","useFormik","validateOnChange","validateOnBlur","validateOnMount","isInitialValid","enableReinitialize","onSubmit","initialValues","initialErrors","initialTouched","initialStatus","isMounted","fieldRegistry","dispatch","runValidateHandler","maybePromisedErrors","actualException","runValidationSchema","validationSchema","validateAt","validateData","prepareDataForValidation","validateYupSchema","yupError","_ref5","yupToFormErrors","runSingleFieldLevelValidation","runFieldLevelValidations","fieldKeysWithValidation","fieldValidations","fieldErrorsList","runAllValidations","fieldErrors","schemaErrors","validateErrors","validateFormWithHighPriority","useEventCallback","combinedErrors","resetForm","dispatchFn","onReset","maybePromisedOnReset","imperativeMethods","validateField","maybePromise","registerField","unregisterField","setTouched","shouldValidate","setErrors","setValues","resolvedValues","setFieldError","setFieldValue","executeChange","eventOrTextValue","maybePath","persist","currentTarget","checked","outerHTML","multiple","valueProp","currentArrayOfValues","isValueInArray","getValueForCheckbox","selected","getSelectedValues","handleChange","eventOrPath","setFieldTouched","executeBlur","handleBlur","eventOrString","setFormikState","stateOrCb","setStatus","setSubmitting","submitForm","isInstanceOfError","promiseOrUndefined","executeSubmit","_errors","handleSubmit","reason","validateForm","handleReset","getFieldMeta","initialValue","initialError","getFieldHelpers","setValue","setError","getFieldProps","nameOrOptions","isAnObject","valueState","onBlur","dirty","isValid","Formik","formikbag","only","shouldClone","useIsomorphicLayoutEffect","Field","legacyBag","form","asElement","Form","_action","connect","Comp","componentDisplayName","insert","arrayLike","copy","copyArrayLike","FieldArrayInner","alterTouched","alterErrors","prevState","updateErrors","updateTouched","fieldError","fieldTouched","updateArrayField","indexA","indexB","swap","arrayHelpers","handlePush","handleSwap","handleMove","handleInsert","handleReplace","handleUnshift","handleRemove","restOfFormik","FieldArray","ErrorMessage","ErrorMessageImpl","shouldComponentUpdate","touch","checkDCE","__REACT_DEVTOOLS_GLOBAL_HOOK__","_unsupportedIterableToArray","minLen","getMainAxisFromPlacement","pageXOffset","pageYOffset","isScrollParent","_getComputedStyle","overflow","overflowX","overflowY","getLayoutRect","clientRect","within","mathMax","mathMin","getScrollParent","scrollParent","isBody","updatedList","_arrayLikeToArray","arr2","_isNativeReflectConstruct","sham","IntlContext","basePlacement","variation","commonX","commonY","mainAxis","getFreshSideObject","hashMap","rootNode","getRootNode","isSameNode","global","Buffer","stubFalse","baseForOwn","baseIteratee","metric","positionPercent","originalModule","webpackPolyfill","reIsDeepProp","reIsPlainProp","_Carousel","_types","CarouselProps","_Thumbs","_interopRequireDefault","getCompositeRect","elementOrVirtualElement","isFixed","isOffsetParentAnElement","offsetParentIsScaled","isElementScaled","scroll","getNodeScroll","modifiers","modifier","requires","requiresIfExists","depModifier","DEFAULT_OPTIONS","areValidElements","popperGenerator","generatorOptions","_generatorOptions","_generatorOptions$def","defaultModifiers","_generatorOptions$def2","defaultOptions","orderedModifiers","attributes","effectCleanupFns","isDestroyed","setOptions","cleanupModifierEffects","scrollParents","phase","orderModifiers","merged","existing","mergeByName","_ref3","_ref3$options","effect","cleanupFn","noopFn","_state$elements","_state$orderedModifie","_state$orderedModifie2","onFirstUpdate","PART_TYPE","isFormatXMLElementFn","currentPluralValue","els_1","varName","value_1","formatFn","chunks","MISSING_INTL_API","rule","mergeLiteral","MAX_SIGNED_31_BIT_INT","commonjsGlobal","globalThis","createEventEmitter","handlers","changedBits","calculateChangedBits","_Provider$childContex","_Consumer$contextType","contextProp","getUniqueId","_Component","emitter","_proto","getChildContext","componentWillReceiveProps","nextProps","oldValue","PropTypes","isRequired","_Component2","_this2","observedBits","_proto2","isarray","tokensToFunction","tokensToRegExp","PATH_REGEXP","defaultDelimiter","delimiter","escaped","capture","asterisk","partial","escapeGroup","escapeString","encodeURIComponentPretty","encodeURI","flags","encode","encodeURIComponent","attachKeys","re","endsWithDelimiter","regexpToRegexp","arrayToRegexp","stringToRegexp","createCompounder","word","_objectWithoutProperties","sourceSymbolKeys","isTrivialHref","SafeAnchor","_ref$as","onKeyDown","handleClick","tabIndex","createChainedFunction","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","propIsEnumerable","toObject","test1","test2","test3","letter","shouldUseNative","deprecate","paths","utils","paramsSerializer","serializedParams","hashmarkIndex","__CANCEL__","normalizeHeaderName","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","headers","XMLHttpRequest","getDefaultAdapter","transformRequest","transformResponse","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","cookies","buildURL","buildFullPath","parseHeaders","isURLSameOrigin","requestData","requestHeaders","request","auth","username","password","unescape","Authorization","btoa","fullPath","baseURL","open","onreadystatechange","readyState","responseURL","responseHeaders","getAllResponseHeaders","responseType","responseText","statusText","onabort","onerror","ontimeout","timeoutErrorMessage","xsrfValue","withCredentials","setRequestHeader","onDownloadProgress","onUploadProgress","upload","cancelToken","abort","send","enhanceError","config1","config2","valueFromConfig2Keys","mergeDeepPropertiesKeys","defaultToConfig2Keys","directMergeKeys","getMergedValue","mergeDeepProperties","axiosKeys","otherKeys","Cancel","_options$scroll","_options$resize","unsetSides","mapToStyles","_Object$assign2","gpuAcceleration","adaptive","roundOffsets","roundOffsetsByDPR","_ref3$x","_ref3$y","hasX","hasY","sideX","sideY","heightProp","widthProp","_Object$assign","commonStyles","_ref4","_options$gpuAccelerat","_options$adaptive","_options$roundOffsets","arrow","_options$offset","invertDistance","skidding","distanceAndSkiddingToXY","_data$state$placement","_state$modifiersData$","arrowElement","toPaddingObject","arrowRect","minProp","maxProp","endDiff","startDiff","arrowOffsetParent","clientSize","centerToReference","axisProp","centerOffset","_options$element","getSideOffsets","preventedOffsets","isAnySideFullyClipped","side","referenceRect","preventOverflow","referenceOverflow","popperAltOverflow","referenceClippingOffsets","popperEscapeOffsets","isReferenceHidden","hasPopperEscaped","funcs","_len2","_key2","defaultDatasetIdKey","reforwardRef","setLabels","currentData","nextLabels","setDatasets","nextDatasets","datasetIdKey","addedDatasets","nextDataset","currentDataset","find","cloneData","nextData","ChartComponent","redraw","fallbackContent","canvasRef","chartRef","renderChart","ChartJS","destroyChart","createTypedChart","Line","define","_reactSwipe","_reactSwipe2","_classnames","_default","ROOT","customClassName","CAROUSEL","isSlider","carousel","WRAPPER","SLIDER","isSwiping","thumbs","slider","ITEM","thumb","slide","ARROW_PREV","ARROW_NEXT","DOT","dot","_react","_getRequireWildcardCache","hasPropertyDescriptor","_interopRequireWildcard","_cssClasses","_dimensions","_CSSTranslate","_reactEasySwipe","_window","Thumbs","itemsWrapperRef","itemsListRef","thumbsRef","wrapperSize","itemSize","thumbWidth","visibleItems","showArrows","lastPosition","_state","firstItem","getFirstItem","selectedItem","isKeyboardEvent","onSelectItem","swiping","childrenLength","currentPosition","setupThumbs","updateSizes","destroyThumbs","img","itemClass","thumbProps","setThumbsRef","handleClickItem","_this3","itemListStyles","isSwipeable","hasPrev","hasNext","transformProp","transitionTime","WebkitTransform","MozTransform","MsTransform","OTransform","msTransform","WebkitTransitionDuration","MozTransitionDuration","MsTransitionDuration","OTransitionDuration","transitionDuration","msTransitionDuration","setItemsWrapperRef","slideRight","leftArrow","onSwipeLeft","slideLeft","onSwipeRight","onSwipeMove","onSwipeStart","onSwipeEnd","setItemsListRef","allowMouseEvents","emulateTouch","renderItems","rightArrow","setPosition","getPosition","defaultStatusFormatter","infiniteLoop","centerMode","centerSlidePercentage","castPath","hasFunc","isKey","baseFor","baseMatches","baseMatchesProperty","identity","baseIsEqualDeep","baseIsEqual","SetCache","arraySome","cacheHas","equalFunc","isPartial","arrLength","othLength","arrStacked","othStacked","seen","arrValue","othValue","compared","othIndex","srcValue","arrayReduce","deburr","words","reApos","reHasUnicode","getOppositePlacement","getOppositeVariationPlacement","_options$mainAxis","checkMainAxis","_options$altAxis","altAxis","checkAltAxis","specifiedFallbackPlacements","fallbackPlacements","_options$flipVariatio","flipVariations","allowedAutoPlacements","preferredPlacement","oppositePlacement","getExpandedFallbackPlacements","_options$allowedAutoP","allPlacements","allowedPlacements","overflows","computeAutoPlacement","checksMap","makeFallbackChecks","firstFittingPlacement","_basePlacement","isStartVariation","isVertical","mainVariationSide","altVariationSide","checks","fittingPlacement","_options$tether","tether","_options$tetherOffset","tetherOffset","isBasePlacement","tetherOffsetValue","mainSide","altSide","additive","maxLen","arrowPaddingObject","arrowPaddingMin","arrowPaddingMax","arrowLen","minOffset","maxOffset","clientOffset","offsetModifierValue","tetherMin","tetherMax","preventedOffset","_mainSide","_altSide","_offset","_min","_max","_preventedOffset","ExecutionEnvironment","canUseWorkers","Worker","canUseEventListeners","attachEvent","canUseViewport","screen","allocUnsafe","capitalize","outgoingEdges","makeOutgoingEdges","nodesHash","makeNodesHash","visit","predecessors","nodeRep","outgoing","uniqueNodes","noTextChildNodes","possibleStandardNames","acceptcharset","accesskey","allowfullscreen","autocapitalize","autocomplete","autocorrect","autofocus","autoplay","autosave","cellpadding","cellspacing","charset","class","classid","classname","colspan","contenteditable","contextmenu","controlslist","crossorigin","dangerouslysetinnerhtml","defaultchecked","defaultvalue","enctype","formmethod","formaction","formenctype","formnovalidate","formtarget","frameborder","hreflang","htmlfor","httpequiv","innerhtml","inputmode","itemid","itemprop","itemref","itemscope","itemtype","keyparams","keytype","marginwidth","marginheight","maxlength","mediagroup","minlength","nomodule","novalidate","playsinline","radiogroup","readonly","referrerpolicy","rowspan","spellcheck","srcdoc","srclang","srcset","tabindex","typemustmatch","usemap","accentheight","alignmentbaseline","allowreorder","arabicform","attributename","attributetype","autoreverse","basefrequency","baselineshift","baseprofile","calcmode","capheight","clippath","clippathunits","cliprule","colorinterpolation","colorinterpolationfilters","colorprofile","colorrendering","contentscripttype","contentstyletype","diffuseconstant","dominantbaseline","edgemode","enablebackground","externalresourcesrequired","fillopacity","fillrule","filterres","filterunits","floodopacity","floodcolor","fontfamily","fontsize","fontsizeadjust","fontstretch","fontstyle","fontvariant","fontweight","glyphname","glyphorientationhorizontal","glyphorientationvertical","glyphref","gradienttransform","gradientunits","horizadvx","horizoriginx","imagerendering","kernelmatrix","kernelunitlength","keypoints","keysplines","keytimes","lengthadjust","letterspacing","lightingcolor","limitingconeangle","markerend","markerheight","markermid","markerstart","markerunits","markerwidth","maskcontentunits","maskunits","numoctaves","overlineposition","overlinethickness","paintorder","pathlength","patterncontentunits","patterntransform","patternunits","pointerevents","pointsatx","pointsaty","pointsatz","preservealpha","preserveaspectratio","primitiveunits","refx","refy","renderingintent","repeatcount","repeatdur","requiredextensions","requiredfeatures","shaperendering","specularconstant","specularexponent","spreadmethod","startoffset","stddeviation","stitchtiles","stopcolor","stopopacity","strikethroughposition","strikethroughthickness","strokedasharray","strokedashoffset","strokelinecap","strokelinejoin","strokemiterlimit","strokewidth","strokeopacity","suppresscontenteditablewarning","suppresshydrationwarning","surfacescale","systemlanguage","tablevalues","targetx","targety","textanchor","textdecoration","textlength","textrendering","underlineposition","underlinethickness","unicodebidi","unicoderange","unitsperem","unselectable","valphabetic","vectoreffect","vertadvy","vertoriginx","vertoriginy","vhanging","videographic","viewbox","viewtarget","vmathematical","wordspacing","writingmode","xchannelselector","xheight","xlinkactuate","xlinkarcrole","xlinkhref","xlinkrole","xlinkshow","xlinktitle","xlinktype","xmlbase","xmllang","xmlnsxlink","xmlspace","ychannelselector","zoomandpan","onblur","onchange","onclick","oncontextmenu","ondoubleclick","ondrag","ondragend","ondragenter","ondragexit","ondragleave","ondragover","ondragstart","ondrop","onfocus","oninput","oninvalid","onkeydown","onkeypress","onkeyup","onload","onmousedown","onmouseenter","onmouseleave","onmousemove","onmouseout","onmouseover","onmouseup","onscroll","onsubmit","ontouchcancel","ontouchend","ontouchmove","ontouchstart","onwheel","parseAttributes","reactKey","nodeClassNames","_$0","$1","convertFromNode","Node","actions","level","randomKey","characters","randomString","pre","post","childNodeList","parseChildren","childNodes","nodeText","nodeValue","parentNodeName","convert","nodeOnly","DOMParser","parseFromString","convertFromString","STATUS","FAILED","LOADED","LOADING","PENDING","READY","UNSUPPORTED","canUseDOMFlag","isSupportedEnvironment","div","innerHTML","firstChild","namespaceURI","supportsInlineSVG","cacheStore","handleError","handleLoad","cacheRequests","fetchOptions","fetch","contentType","fileType","currentSrc","catch","hasCache","uniqueHash","character","letters","InlineSVG","load","onLoad","preProcessor","uniquifyIDs","replaceableAttributes","linkAttributes","attributes_1","attr","attribute","updateSVGAttributes","processSVG","SVGSVGElement","svg","originalDesc","descElement","prepend","originalTitle","titleElement","getNode","handleCacheQueue","inlineSrc","dataURI","atob","decodeURIComponent","loader","elementProps","output","removeProperties","u","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","updater","isReactComponent","isPureReactComponent","__self","__source","_owner","keyPrefix","escape","aa","ba","ReactCurrentDispatcher","ReactCurrentBatchConfig","suspense","ReactCurrentOwner","IsSomeRendererActing","Fragment","Profiler","PureComponent","StrictMode","Suspense","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","_calculateChangedBits","_currentValue","_currentValue2","_threadCount","createFactory","createRef","_ctor","_status","_result","useCallback","useDebugValue","useImperativeHandle","useMemo","da","ea","ha","ia","ja","la","ma","na","oa","ka","pa","qa","ra","sa","extractEvents","eventTypes","ta","phasedRegistrationNames","registrationName","va","wa","dependencies","xa","ya","za","Aa","Ba","Ca","stateNode","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ka","La","Ma","Na","Oa","Pa","Qa","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","propertyName","sanitizeURL","Ua","Va","xlinkHref","Wa","Xa","Sa","Ta","Ra","setAttributeNS","Ya","Za","$a","ab","bb","db","eb","gb","hb","ib","jb","kb","lb","mb","nb","pb","qb","_debugOwner","_debugSource","fileName","lineNumber","return","rb","sb","xb","_valueTracker","stopTracking","tb","yb","zb","defaultChecked","_wrapperState","initialChecked","Ab","controlled","Bb","Cb","Db","Eb","activeElement","Gb","Fb","Hb","defaultSelected","Ib","dangerouslySetInnerHTML","Jb","Kb","Lb","textContent","Mb","Nb","Ob","Pb","Qb","MSApp","execUnsafeLocalFunction","Rb","lastChild","Sb","Tb","animationend","animationiteration","animationstart","transitionend","Ub","Vb","Wb","Xb","Yb","Zb","$b","ac","bc","cc","dc","alternate","effectTag","ec","memoizedState","dehydrated","fc","hc","sibling","ic","jc","kc","lc","_dispatchListeners","_dispatchInstances","isPropagationStopped","isPersistent","release","mc","nc","srcElement","correspondingUseElement","oc","pc","qc","topLevelType","targetInst","ancestors","rc","eventSystemFlags","sc","containerInfo","tc","uc","vc","wc","xc","yc","zc","Ac","Bc","Cc","Dc","Ec","Fc","Gc","Hc","Ic","Kc","blockedOn","Lc","pointerId","Mc","Nc","Pc","unstable_runWithPriority","priority","hydrate","Qc","Rc","Sc","Tc","Uc","unstable_scheduleCallback","unstable_NormalPriority","Vc","Wc","Yc","Zc","$c","ad","bubbled","captured","eventPriority","bd","cd","dd","unstable_UserBlockingPriority","ed","fd","gd","hd","Oc","jd","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","fontWeight","lineClamp","orphans","tabSize","widows","zIndex","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","kd","ld","md","nd","menuitem","br","embed","hr","keygen","link","track","wbr","od","pd","qd","rd","sd","td","ud","vd","nextSibling","wd","compareDocumentPosition","xd","HTMLIFrameElement","contentWindow","yd","contentEditable","Bd","Cd","Dd","Ed","Fd","autoFocus","Gd","__html","Hd","Id","Jd","Kd","previousSibling","Ld","Md","Nd","Od","Pd","Qd","Rd","Sd","Td","dispatchConfig","Ud","_targetInst","Vd","Wd","Xd","Zd","$d","ae","be","ce","Interface","isDefaultPrevented","returnValue","ee","eventPool","fe","destructor","de","getPooled","cancelBubble","eventPhase","bubbles","timeStamp","isTrusted","ge","he","ie","je","ke","documentMode","le","ne","oe","beforeInput","compositionEnd","compositionStart","compositionUpdate","pe","qe","keyCode","detail","se","ve","which","te","ue","we","tel","xe","ye","ze","Ae","Be","Ce","De","Ee","Fe","Ge","detachEvent","He","Ie","Je","Ke","Le","Me","_isInputEventSupported","Ne","view","Oe","Alt","Control","Meta","Shift","Pe","getModifierState","Re","Se","Te","Ue","Ve","screenX","screenY","pageX","pageY","buttons","relatedTarget","fromElement","toElement","movementX","movementY","We","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","mouseEnter","mouseLeave","pointerEnter","pointerLeave","Ye","parentWindow","$e","af","bf","cf","df","ef","ff","gf","hf","jf","selectionStart","selectionEnd","anchorNode","getSelection","anchorOffset","focusNode","focusOffset","kf","onSelect","lf","animationName","elapsedTime","pseudoElement","mf","clipboardData","of","charCode","pf","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","qf","rf","sf","dataTransfer","tf","changedTouches","uf","vf","wheelDeltaX","wheelDeltaY","wheelDelta","deltaZ","deltaMode","wf","SimpleEventPlugin","EnterLeaveEventPlugin","ChangeEventPlugin","SelectEventPlugin","BeforeInputEventPlugin","yf","zf","Af","Bf","Cf","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Df","Ef","Ff","Gf","__reactInternalMemoizedMergedChildContext","Hf","If","Jf","Kf","unstable_cancelCallback","Lf","unstable_requestPaint","Mf","unstable_now","Nf","unstable_getCurrentPriorityLevel","Of","unstable_ImmediatePriority","Pf","Qf","Rf","unstable_LowPriority","Sf","unstable_IdlePriority","Tf","Uf","unstable_shouldYield","Vf","Wf","Xf","Yf","Zf","$f","ag","bg","cg","dg","eg","fg","gg","hg","ig","jg","kg","lg","mg","ng","og","pg","childExpirationTime","qg","firstContext","expirationTime","rg","sg","responders","tg","ug","updateQueue","baseState","baseQueue","vg","wg","suspenseConfig","xg","yg","zg","ca","Ag","Bg","Cg","Dg","Eg","Fg","Jg","_reactInternalFiber","Gg","Hg","Ig","Kg","Lg","Mg","UNSAFE_componentWillReceiveProps","Ng","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","Og","Pg","_stringRef","Qg","Rg","lastEffect","nextEffect","firstEffect","Sg","Tg","Ug","implementation","Vg","Wg","Xg","Yg","Zg","$g","ah","bh","dh","eh","fh","gh","hh","memoizedProps","revealOrder","ih","responder","jh","kh","mh","nh","oh","ph","qh","rh","sh","th","uh","vh","wh","lastRenderedReducer","eagerReducer","eagerState","lastRenderedState","xh","yh","zh","Ah","Bh","Ch","Dh","Eh","Fh","Gh","Hh","Ih","Jh","Kh","Lh","Mh","Nh","readContext","useResponder","useDeferredValue","useTransition","Oh","Ph","Qh","Rh","Sh","Th","pendingProps","Uh","Vh","Wh","Xh","Yh","Zh","$h","ai","bi","di","ei","fi","UNSAFE_componentWillUpdate","componentWillUpdate","gi","pendingContext","ni","pi","qi","retryTime","ji","unstable_avoidThisFallback","ki","li","isBackwards","rendering","renderingStartTime","tail","tailExpiration","tailMode","mi","ri","si","wasMultiple","createElementNS","createTextNode","ti","ui","vi","wi","xi","yi","zi","Ai","Bi","WeakSet","Ci","Fi","Ei","Gi","__reactInternalSnapshotBeforeUpdate","Hi","Ii","Ji","focus","Ki","Li","Di","Mi","Ni","Oi","Pi","Qi","Ri","insertBefore","_reactRootContainer","Si","Ti","Ui","Vi","Wi","Xi","Yi","Zi","$i","componentDidCatch","aj","componentStack","Rj","bj","cj","dj","fj","gj","kj","lj","mj","nj","oj","qj","rj","sj","tj","uj","vj","wj","timeoutMs","xj","yj","zj","lastExpiredTime","Aj","firstPendingTime","lastPingedTime","nextKnownPendingLevel","callbackExpirationTime","callbackPriority","callbackNode","Bj","Cj","Dj","Ej","Fj","Gj","Hj","finishedWork","finishedExpirationTime","lastSuspendedTime","Ij","timeoutHandle","Jj","busyMinDurationMs","busyDelayMs","Kj","Mj","Nj","pingCache","Oj","ub","Pj","Xc","Qj","Sj","firstSuspendedTime","rangeCount","wb","activeElementDetached","focusedElem","selectionRange","Tj","createRange","setStart","removeAllRanges","addRange","setEnd","vb","Uj","Vj","Wj","ob","Xj","unstable_observedBits","Zj","pendingChildren","ak","bk","ck","dk","ek","fk","Jc","_internalRoot","gk","ik","hasAttribute","hk","jk","kk","unmount","querySelectorAll","Lj","lk","Events","findFiberByHostInstance","isDisabled","supportsFiber","inject","onCommitFiberRoot","onCommitFiberUnmount","Yj","overrideHookState","overrideProps","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","bundleType","rendererPackageName","createPortal","findDOMNode","flushSync","unmountComponentAtNode","unstable_batchedUpdates","unstable_createPortal","unstable_renderSubtreeIntoContainer","MessageChannel","unstable_forceFrameRate","performance","cancelAnimationFrame","port2","port1","onmessage","postMessage","sortIndex","startTime","priorityLevel","unstable_Profiling","unstable_continueExecution","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_wrapCallback","Axios","mergeConfig","createInstance","defaultConfig","axios","instanceConfig","CancelToken","isCancel","spread","isAxiosError","InterceptorManager","dispatchRequest","interceptors","chain","interceptor","getUri","use","eject","transformData","throwIfCancellationRequested","throwIfRequested","fns","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","draining","queueIndex","cleanUpNextTick","drainQueue","run","marker","runClearTimeout","Item","nextTick","browser","env","argv","versions","removeAllListeners","prependListener","prependOnceListener","cwd","chdir","umask","normalizedName","toJSON","columnNumber","write","expires","domain","secure","cookie","toGMTString","isAbsoluteURL","combineURLs","requestedURL","relativeURL","ignoreDuplicateOf","originURL","msie","urlParsingNode","resolveURL","protocol","hostname","port","requestURL","executor","resolvePromise","jsx","jsxs","_1","shouldPolyfill","tslib_1","ecma402_abstract_1","InitializeRelativeTimeFormat_1","PartitionRelativeTimePattern_1","get_internal_slots_1","InitializeRelativeTimeFormat","initializedRelativeTimeFormat","PartitionRelativeTimePattern","resolvedOptions","supportedLocalesOf","__addLocaleData","data_1","__defaultLocale","polyfilled","NUMBERING_SYSTEM_REGEX","rtf","SingularRelativeTimeUnit_1","MakePartsList_1","resolvedUnit","SingularRelativeTimeUnit","patterns","po","fv","MakePartsList","patternParts_1","internalSlotMap","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Lazy","Portal","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isForwardRef","isFragment","isLazy","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","propName","componentName","propFullName","secret","getShim","ReactPropTypes","bigint","bool","any","arrayOf","instanceOf","objectOf","oneOfType","checkPropTypes","runtime","Op","$Symbol","iteratorSymbol","asyncIteratorSymbol","toStringTagSymbol","innerFn","outerFn","tryLocsList","protoGenerator","Generator","_invoke","GenStateSuspendedStart","GenStateExecuting","GenStateCompleted","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","_sent","dispatchException","abrupt","record","tryCatch","GenStateSuspendedYield","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","invoke","unwrapped","previousPromise","callInvokeWithMethodAndArg","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","iterable","iteratorMethod","isGeneratorFunction","genFun","ctor","mark","awrap","async","skipTempReset","rootRecord","rval","handle","loc","caught","hasCatch","hasFinally","finallyEntry","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","_document","_utils","_animations","_objectSpread","Carousel","_React$Component","carouselWrapperRef","listRef","itemsRef","clearAutoPlay","autoPlay","isMouseEntered","isFocusWithinTheCarousel","prevKey","decrement","initialized","hasMount","cancelClick","onClickItem","onClickThumb","swipeMovementStarted","animationHandlerResponse","swipeAnimationHandler","selectItem","resetAutoPlay","newIndex","previousItem","animationHandler","handleOnChange","getElementsByTagName","slideImages","image","onImageLoad","initState","itemListStyle","slideStyle","selectedStyle","fadeAnimationHandler","slideAnimationHandler","setupCarousel","forceFocus","stopSwipingHandler","setupAutoPlay","destroyAutoPlay","destroyCarousel","initialImage","getInitialImage","setMountState","carouselWrapper","stopOnHover","startOnLeave","useKeyboardArrows","navigateWithKeyboard","_this$carouselWrapper","isClone","isSelected","isPrevious","minWidth","slideProps","setItemsRef","renderItem","_this4","_this$props","showIndicators","renderIndicator","changeItem","showStatus","statusFormatter","showThumbs","handleClickThumb","renderThumbs","_this5","swipeable","canShowArrows","itemsClone","firstClone","lastClone","swiperProps","tolerance","swipeScrollTolerance","containerStyles","onSwipeForward","onSwipeBackwards","dynamicHeight","getVariableItemHeight","onSwipeUp","verticalSwipe","onSwipeDown","setCarouselWrapperRef","renderControls","renderArrowPrev","onClickPrev","setListRef","renderArrowNext","onClickNext","renderStatus","preventMovementUntilSwipeScrollTolerance","onClickHandler","images","slideSwipeAnimationHandler","slideStopSwipingHandler","_propTypes","setHasSupportToCaptureOption","_react2","_propTypes2","supportsCaptureOption","hasSupport","getSafeEventHandlerOpts","_event$touches$","ReactSwipe","_handleSwipeStart","_handleSwipeMove","_handleSwipeEnd","_onMouseDown","_onMouseMove","_onMouseUp","_setSwiperRef","swiper","mouseDown","_getPosition","moveStart","_getPosition2","moving","movePosition","marginLeft","marginRight","returnStyles","finalBoundry","axisDelta","handledDelta","hasMoved","transitionTimingFunction","msTransitionTimingFunction","MozTransitionTimingFunction","WebkitTransitionTimingFunction","OTransitionTimingFunction","createBaseFor","fromRight","baseIsMatch","getMatchData","matchesStrictComparable","matchData","noCustomizer","COMPARE_PARTIAL_FLAG","equalArrays","equalByTag","equalObjects","arrayTag","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","setCacheAdd","setCacheHas","mapToArray","setToArray","objLength","objStacked","skipCtor","objCtor","othCtor","isStrictComparable","hasIn","baseGet","baseHasIn","baseProperty","basePropertyDeep","accumulator","initAccum","deburrLetter","reLatin","reComboMark","basePropertyOf","asciiWords","hasUnicodeWord","unicodeWords","guard","reAsciiWord","reHasUnicodeWord","rsDingbatRange","rsLowerRange","rsUpperRange","rsBreakRange","rsMathOpRange","rsBreak","rsDigits","rsDingbat","rsLower","rsMisc","rsRegional","rsSurrPair","rsUpper","rsMiscLower","rsMiscUpper","rsOptContrLower","rsOptContrUpper","reOptMod","rsModifier","rsOptVar","rsSeq","rsEmoji","reUnicodeWord","upperFirst","createCaseFirst","castSlice","hasUnicode","stringToArray","strSymbols","trailing","baseSlice","asciiToArray","unicodeToArray","rsAstral","rsCombo","rsFitz","rsNonAstral","rsSymbol","reUnicode","mergeConfigs","configs","formatterCache","ast","getAst","__parse","memoizedDefaultLocale","medium","full","Button","variant","useIntl","setTimeZoneInOptions","deepMergeOptions","opts1","opts2","deepMergeFormatsAndSetTimeZone","f1","mfFormats","formatMessage","messageDescriptor","defaultRichTextElements","msgId","NUMBER_FORMAT_OPTIONS","getFormatter","formatNumberToParts","RELATIVE_TIME_FORMAT_OPTIONS","formatRelativeTime","DATE_TIME_FORMAT_OPTIONS","filteredOptions","timeStyle","dateStyle","formatDate","formatTime","formatDateTimeRange","formatRange","formatDateToParts","formatTimeToParts","PLURAL_FORMAT_OPTIONS","formatPlural","LIST_FORMAT_OPTIONS","formatList","results","formatListToParts","richValues_1","serializedValues","generateToken","DISPLAY_NAMES_OPTONS","formatDisplayName","verifyConfigMessages","processIntlConfig","wrapRichTextChunksInFragment","assignUniqueKeysToFormatXMLElementFnArgument","rawValues","coreFormatMessage","createIntl","rawDefaultRichTextElements","coreIntl","resolvedConfig","coreCreateIntl","IntlProvider","prevConfig","CardImg","DivStyledAsH5","divWithClassName","DivStyledAsH6","CardBody","CardTitle","CardSubtitle","CardLink","CardText","CardHeader","CardFooter","CardImgOverlay","Card","cardContext","cardHeaderBsPrefix","CardContext","Img","Subtitle","Body","Text","Header","Footer","ImgOverlay","initialStyles","eventListeners","computeStyles","applyStyles","createPopper"],"mappings":"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4lG,QACL,OAAO,KAEX,IAAIp4F,EAAOxN,KAAK6lG,OACZ74C,EAAShtD,KAAKgtD,SACd0+C,EAAW1rG,KAAK+K,QAAQ+5F,WAAW93C,GAAUx/C,GAAQ,MAAU,EAAI,IACvE,OAAoB,OAAbk+F,QAAkC,IAAbA,EAAsBA,EAAW,MAE1DvG,EAtyBiB,GA8yB5B,SAASe,EAASqB,GACd,OAASA,GAAa,IAAMA,GAAa,KACpCA,GAAa,IAAMA,GAAa,GA+BzC,SAAStC,GAAc/jG,GACnB,OAASA,GAAK,GAAUA,GAAK,IACnB,KAANA,GACM,MAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,EAMR,SAASgkG,GAAiBhkG,GACtB,OAASA,GAAK,IAAUA,GAAK,IACnB,KAANA,GACCA,GAAK,IAAUA,GAAK,IACf,KAANA,GACM,KAANA,GACM,KAANA,GACM,KAANA,GACM,KAANA,GACM,KAANA,GACCA,GAAK,IAAUA,GAAK,IACpBA,GAAK,IAAUA,GAAK,IACpBA,GAAK,IAAUA,GAAK,IACpBA,GAAK,IAAUA,GAAK,IACf,KAANA,GACM,KAANA,GACM,KAANA,GACM,KAANA,GACM,KAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACCA,GAAK,KAAUA,GAAK,KACf,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACM,MAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACM,OAANA,GACM,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,KACf,OAANA,GACM,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACpBA,GAAK,MAAUA,GAAK,MACf,OAANA,GACCA,GAAK,MAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACM,QAANA,GACCA,GAAK,OAAUA,GAAK,OACf,QAANA,GACCA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACpBA,GAAK,OAAUA,GAAK,OACf,QAANA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,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,gBAAO,KAAQ,CAAC,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,gBAAO,KAAQ,CAAC,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,UAAM,KAAQ,CAAC,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,UAAM,KAAQ,CAAC,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,UAAM,KAAQ,CAAC,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,UAAM,KAAQ,CAAC,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,UAAM,SAAY,CAAC,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,UAAM,KAAQ,CAAC,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,UAAM,KAAQ,CAAC,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,UAAM,KAAQ,CAAC,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,UAAM,SAAY,CAAC,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,gBAAO,QAAW,CAAC,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,gBAAO,SAAY,CAAC,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,gBAAO,SAAY,CAAC,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,gBAAO,SAAY,CAAC,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,gBAAO,KAAQ,CAAC,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,UAAM,KAAQ,CAAC,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,gBAAO,KAAQ,CAAC,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,UAAM,KAAQ,CAAC,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,gBAAO,KAAQ,CAAC,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,UAAM,KAAQ,CAAC,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,UAAM,SAAY,CAAC,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,UAAM,SAAY,CAAC,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,UAAM,KAAQ,CAAC,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,gBAAO,KAAQ,CAAC,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,UAAM,KAAQ,CAAC,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,UAAM,KAAQ,CAAC,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,UAAM,KAAQ,CAAC,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,gBAAO,KAAQ,CAAC,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,gBAAO,KAAQ,CAAC,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,UAAM,QAAW,CAAC,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,gBAAO,KAAQ,CAAC,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,gBAAO,KAAQ,CAAC,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,gBAAO,KAAQ,CAAC,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,UAAM,KAAQ,CAAC,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,gBAAO,KAAQ,CAAC,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,UAAM,KAAQ,CAAC,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,gBAAO,KAAQ,CAAC,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,UAAM,QAAW,CAAC,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,UAAM,KAAQ,CAAC,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,UAAM,KAAQ,CAAC,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,UAAM,KAAQ,CAAC,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,UAAM,KAAQ,CAAC,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,gBAAO,KAAQ,CAAC,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,SAAK,UAAM,KAAQ,CAAC,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,gBAAO,KAAQ,CAAC,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,eAAM,iBCC7oIC,EAAkB,u8ECKzBC,EAAwB,IAAI9qF,OAAO,IAAM6qF,EAAgB3mH,QAEzD6mH,GAAyB,IAAI/qF,OAAO6qF,EAAgB3mH,OAAS,KAC7D8mH,GAAsB,uBACX,SAASC,GAAcC,EAAc51G,EAAMvU,EAAI4I,GAC1D,IAUIwhH,EAqBAC,EA/BApoG,EAAOkoG,EAAaloG,KAAMknG,EAAWgB,EAAahB,SAAU9B,EAAY8C,EAAa9C,UACrFhzD,EAAWzrD,EAAQyrD,SAAU3mD,EAAQ9E,EAAQ8E,MAAO85G,EAAkB5+G,EAAQ4+G,gBAC9E8C,EAAyB/1G,EAAKo+B,QAAQ+0E,GAAG,GAGzC6C,EAAuB,KAM3B,GALiB,YAAbl2D,GAA0BgzD,IAC1BkD,EAwWR,SAAkCJ,EAAcnqH,EAAIuU,EAAM7G,EAAO0rF,EAAgBC,EAAiBmuB,GAC9F,IAAIrnH,EAIA++F,EAHA2pB,EAAgBsB,EAAatB,cAAe5mG,EAAOkoG,EAAaloG,KAAMolG,EAAY8C,EAAa9C,UAC/FS,EAAe9xH,OAAOuJ,KAAKijB,IAAI,GAAI6kG,IACnCiD,EAAyB/1G,EAAKo+B,QAAQ+0E,GAAG,GAE7C,GAAc,aAAVh6G,GAA4C,SAApB2rF,EAA4B,CACpD,IAIImxB,EAAmD,QAA7BrqH,IAJtBsqH,EAAoBl2G,EAAKo+B,QAAQumD,UACAsuB,IACjCiD,EAAkBH,IAEsB3C,aAA0B,IAAPxnH,OAAgB,EAASA,EAAG2nH,GAC3F,IAAK0C,EACD,OAAO,KAEXtrB,EAAUwrB,GAAa1qH,EAAI6oH,EAAe2B,OAEzC,CACD,IAAIC,EAGAE,IAHAF,EAAoBl2G,EAAKo+B,QAAQ0rB,SACImpD,IACrCiD,EAAkBH,IACmBlxB,GAAgB0uB,GACzD,IAAK6C,EACD,OAAO,KAEXzrB,EAAUwrB,GAAa1qH,EAAI6oH,EAAe8B,GAK9C,GAAgB,MAAZzrB,EACA,OAAO,KAOX,OALAA,EAAU0rB,GAAkB1rB,EAASj9E,GAEhC1Z,QAAQ,uBAAqB,UAE7BA,QAAQ,KAAM,KA7YQsiH,CAAyBV,EAAcnqH,EAAIuU,EAAM7G,EAAO9E,EAAQwwF,eAAgBxwF,EAAQywF,gBAAiBmuB,IAItH,aAAV95G,GAAoD,SAA5B9E,EAAQywF,gBAA4B,CAC5D,IAAIyxB,EAAoBv2G,EAAKw2G,WAAWniH,EAAQswF,UAChD,GAAI4xB,EACA,OAAQliH,EAAQywF,iBACZ,IAAK,OACD+wB,EAAsBxhH,EAAQswF,SAC9B,MACJ,IAAK,SACDkxB,EAAsBU,EAAkBE,OACxC,MACJ,QACIZ,EAAsBU,EAAkBG,YAMhDb,EAAsBxhH,EAAQswF,SAItC,GAAKqxB,EAyBDF,EAAgBE,OAtBhB,GAAc,YAAV78G,GACU,SAAVA,GACW,aAAVA,GAAoD,SAA5B9E,EAAQywF,gBAIjCgxB,EAAgBO,IAFEr2G,EAAKo+B,QAAQ0rB,QAAQmpD,IACnCjzG,EAAKo+B,QAAQ0rB,QAAQisD,IACqBY,SAAUjpG,QAEvD,GAAc,aAAVvU,EAAsB,CAI3B28G,EAAgBO,IAHZO,EAAe52G,EAAKo+B,QAAQumD,SAASsuB,IACrCjzG,EAAKo+B,QAAQumD,SAASoxB,IAEqB1hH,EAAQ0vF,cAAer2E,OAErE,CAIDooG,EAAgBO,GAFKr2G,EAAKo+B,QAAQ8P,QAAQ+kE,IACtCjzG,EAAKo+B,QAAQ8P,QAAQ6nE,GACyBroG,GAQ1D,IAAImpG,EAAuBnB,GAAoB7gH,KAAKihH,GAAe,GAQnE,GAJAA,EAAgBA,EACX9hH,QAAQ0hH,GAAqB,OAC7B1hH,QAAQ,SAAU,MAET,aAAVmF,GAAoD,SAA5B9E,EAAQywF,gBAA4B,CAC5D,IAAI8xB,EAcAE,GAdAF,EAAe52G,EAAKo+B,QAAQumD,SAASsuB,IACrCjzG,EAAKo+B,QAAQumD,SAASoxB,IAaOgB,gBAAgBC,mBAC7CF,IAAkBrB,GAAuBvxB,KAAK2xB,KAC9CC,EAAgBA,EAAc9hH,QAAQ,UAAQ,OAAW8iH,EAAgB,QAE7E,IAAIG,EAAiBL,EAAaG,gBAAgBG,oBAC9CD,IAAmBzB,EAAsBtxB,KAAK2xB,KAC9CC,EAAgBA,EAAc9hH,QAAQ,UAAQ,MAAQijH,EAAiB,SAQ/E,IAJA,IAAIE,EAAqBrB,EAAch0F,MAAM,kCACzCs1F,EAAc,GACd5oH,EAAUwR,EAAKo+B,QAAQ5vC,QAAQykH,IAC/BjzG,EAAKo+B,QAAQ5vC,QAAQunH,GAChBnrH,EAAK,EAAGysH,EAAuBF,EAAoBvsH,EAAKysH,EAAqBl3H,OAAQyK,IAAM,CAEhG,GADIooG,EAAOqkB,EAAqBzsH,GAIhC,OAAQooG,GACJ,IAAK,MAEDokB,EAAY3xH,KAAKrD,MAAMg1H,EAAaE,GAAwB9oH,EAASonH,EAAc91D,EAAU80D,EAAU3B,GAEtG+C,GAAwB3hH,EAAQuwF,YAAaiyB,IAC9C,MAEJ,IAAK,IACDO,EAAY3xH,KAAK,CAAE4G,KAAM,YAAanI,MAAOsK,EAAQ+oH,YACrD,MACJ,IAAK,IACDH,EAAY3xH,KAAK,CAAE4G,KAAM,WAAYnI,MAAOsK,EAAQgpH,WACpD,MACJ,IAAK,IACDJ,EAAY3xH,KAAK,CAAE4G,KAAM,cAAenI,MAAOsK,EAAQipH,cACvD,MACJ,IAAK,OAEDL,EAAY3xH,KAAK,CAAE4G,KAAM,WAAYnI,MAAO2xH,IAC5C,MACJ,QACQ,QAAQ3xB,KAAK8O,GACbokB,EAAY3xH,KAAK,CACb4G,KAAM,UACNnI,MAAO8uG,EAAKnrF,UAAU,EAAGmrF,EAAK7yG,OAAS,KAK3Ci3H,EAAY3xH,KAAK,CAAE4G,KAAM,UAAWnI,MAAO8uG,KAQ3D,OAAQ75F,GACJ,IAAK,WAED,GAAgC,SAA5B9E,EAAQywF,gBAA4B,CACpC,IAAI4yB,GAAe13G,EAAKo+B,QAAQumD,SAASsuB,IACrCjzG,EAAKo+B,QAAQumD,SAASoxB,IAAyB2B,YAE/CC,OAAW,EACXC,EAAmB53G,EAAKw2G,WAAWniH,EAAQswF,UAE3CgzB,EADAC,EACWzB,GAAa1qH,EAAImqH,EAAatB,cAAgBtpH,KAAKijB,IAAI,GAAI2mG,GAAWgD,EAAiBxmH,aAIvFiD,EAAQswF,SAKvB,IAFA,IACIrgG,EAAS,GACJsH,EAAK,EAAGisH,EAFMH,EAAY51F,MAAM,eAEel2B,EAAKisH,EAAmB13H,OAAQyL,IAAM,CAE1F,OADIonG,EAAO6kB,EAAmBjsH,IAE1B,IAAK,MACDtH,EAAOmB,KAAKrD,MAAMkC,EAAQ8yH,GAC1B,MACJ,IAAK,MACD9yH,EAAOmB,KAAK,CAAE4G,KAAM,WAAYnI,MAAOyzH,IACvC,MACJ,QACQ3kB,GACA1uG,EAAOmB,KAAK,CAAE4G,KAAM,UAAWnI,MAAO8uG,KAKtD,OAAO1uG,EAGP,OAAO8yH,EAGf,IAAK,OACD,IAAIrhE,EAAO1hD,EAAQ0hD,KAAMgvC,EAAc1wF,EAAQ0wF,YAC3C+yB,EAAW93G,EAAKyyG,MAAMsF,OAAOhiE,GAC7B2hE,OAAc,EAClB,GAAII,EAEAJ,EAAcvB,GAAa1qH,EAAImqH,EAAatB,cAAgBtpH,KAAKijB,IAAI,GAAI2mG,GAAW50G,EAAKyyG,MAAMsF,OAAOhiE,GAAMgvC,QAE3G,CAID,IAAIizB,EAAKjiE,EAAKj0B,MAAM,SAAUm2F,EAAgBD,EAAG,GAAIE,EAAkBF,EAAG,GAC1EF,EAAW93G,EAAKyyG,MAAMsF,OAAOE,GAC7B,IAAIE,EAAuBhC,GAAa1qH,EAAImqH,EAAatB,cAAgBtpH,KAAKijB,IAAI,GAAI2mG,GAAW50G,EAAKyyG,MAAMsF,OAAOE,GAAelzB,IAC9HqzB,EAAiBp4G,EAAKyyG,MAAMsF,OAAOG,GAAiBG,QAAQtzB,GAChE,GAAIqzB,EAEAV,EAAcU,EAAepkH,QAAQ,MAAOmkH,OAE3C,CAGD,IAAIG,EAAat4G,EAAKyyG,MAAM8F,SAASC,IAAIzzB,GACrC0zB,EAAqBtC,GAAa1qH,EAAI,EAAGuU,EAAKyyG,MAAMsF,OAAOG,GAAiBnzB,IAChF2yB,EAAcA,EAAcY,EACvBtkH,QAAQ,MAAOmkH,GACfnkH,QAAQ,MAAOykH,EAAmBzkH,QAAQ,MAAO,MAG1D1P,EAAS,GAEb,IAFA,IAESo0H,EAAK,EAAGjuH,EAAKitH,EAAY51F,MAAM,iBAAkB42F,EAAKjuH,EAAGtK,OAAQu4H,IAAM,CAC5E,IAAI1lB,EAAOvoG,EAAGiuH,GACVC,EAAmB,oBAAoB9jH,KAAKm+F,GAC5C2lB,GAEIA,EAAiB,IACjBr0H,EAAOmB,KAAK,CAAE4G,KAAM,UAAWnI,MAAOy0H,EAAiB,KAG3Dr0H,EAAOmB,KAAKrD,MAAMkC,EAAQ8yH,GAEtBuB,EAAiB,IACjBr0H,EAAOmB,KAAK,CAAE4G,KAAM,UAAWnI,MAAOy0H,EAAiB,MAGtD3lB,GACL1uG,EAAOmB,KAAK,CAAE4G,KAAM,OAAQnI,MAAO8uG,IAG3C,OAAO1uG,EAEX,QACI,OAAO8yH,GAMnB,SAASE,GAAwB9oH,EAASonH,EAAc91D,EAAU80D,EAAU3B,EAAiBruB,EAQ7FiyB,GACI,IAAIvyH,EAAS,GAETpC,EAAI0zH,EAAavB,gBAAiBjqH,EAAIwrH,EAAatB,cACvD,GAAI76G,MAAMrP,GACN,MAAO,CAAC,CAAEiC,KAAM,MAAOnI,MAAOhC,IAE7B,IAAKwoB,SAAStgB,GACf,MAAO,CAAC,CAAEiC,KAAM,WAAYnI,MAAOhC,IAEvC,IAAI02H,EAAwBtD,EAAarC,GACrC2F,IACA12H,EAAIA,EAAE8R,QAAQ,OAAO,SAAU6kH,GAAS,OAAOD,GAAuBC,IAAUA,MAIpF,IACI1oB,EACAjiF,EAFA4qG,EAAkB52H,EAAEK,QAAQ,KAgBhC,GAbIu2H,EAAkB,GAClB3oB,EAAUjuG,EAAEgF,MAAM,EAAG4xH,GACrB5qG,EAAWhsB,EAAEgF,MAAM4xH,EAAkB,IAGrC3oB,EAAUjuG,EAQV0iG,IAA6B,YAAb9kC,GAA0B11D,GAAK,KAAQ,CACvD,IAAI2uH,EAAiBvqH,EAAQwqH,MACzBC,EAAS,GAOTC,EADuBrC,EAAqB/0F,MAAM,KAAK,GAClBA,MAAM,KAC3Cq3F,EAAsB,EACtBC,EAAwB,EACxBF,EAAc/4H,OAAS,IACvBg5H,EAAsBD,EAAcA,EAAc/4H,OAAS,GAAGA,QAE9D+4H,EAAc/4H,OAAS,IACvBi5H,EAAwBF,EAAcA,EAAc/4H,OAAS,GAAGA,QAEpE,IAAID,EAAIiwG,EAAQhwG,OAASg5H,EACzB,GAAIj5H,EAAI,EAAG,CAKP,IAHA+4H,EAAOxzH,KAAK0qG,EAAQjpG,MAAMhH,EAAGA,EAAIi5H,IAG5Bj5H,GAAKk5H,EAAuBl5H,EAAI,EAAGA,GAAKk5H,EACzCH,EAAOxzH,KAAK0qG,EAAQjpG,MAAMhH,EAAGA,EAAIk5H,IAErCH,EAAOxzH,KAAK0qG,EAAQjpG,MAAM,EAAGhH,EAAIk5H,SAGjCH,EAAOxzH,KAAK0qG,GAEhB,KAAO8oB,EAAO94H,OAAS,GAAG,CACtB,IAAIk5H,EAAeJ,EAAOzzH,MAC1BlB,EAAOmB,KAAK,CAAE4G,KAAM,UAAWnI,MAAOm1H,IAClCJ,EAAO94H,OAAS,GAChBmE,EAAOmB,KAAK,CAAE4G,KAAM,QAASnI,MAAO60H,UAK5Cz0H,EAAOmB,KAAK,CAAE4G,KAAM,UAAWnI,MAAOisG,IAM1C,QAHiBpqG,IAAbmoB,GACA5pB,EAAOmB,KAAK,CAAE4G,KAAM,UAAWnI,MAAOsK,EAAQs7D,SAAW,CAAEz9D,KAAM,WAAYnI,MAAOgqB,KAEtE,eAAb4xC,GAA0C,gBAAbA,IAC9Bp1C,SAAStgB,GAAI,CACb9F,EAAOmB,KAAK,CAAE4G,KAAM,oBAAqBnI,MAAOsK,EAAQ8qH,cACpD1E,EAAW,IACXtwH,EAAOmB,KAAK,CAAE4G,KAAM,oBAAqBnI,MAAOsK,EAAQ+oH,YACxD3C,GAAYA,GAEhB,IAAI2E,EAAiB/E,EAAWI,EAAU,EAAG,GAC7CtwH,EAAOmB,KAAK,CACR4G,KAAM,kBACNnI,MAAOq1H,EAAelF,kBAG9B,OAAO/vH,EAEX,SAAS+xH,GAAkB1rB,EAASj9E,GAC5Bi9E,EAAQpoG,QAAQ,KAAO,IACvBooG,EAAUA,EAAU,KAAOA,GAE/B,IAAI/+F,EAAK++F,EAAQ7oE,MAAM,KAAM03F,EAAc5tH,EAAG,GAAI6tH,EAAkB7tH,EAAG,GACvE,OAAQ8hB,GACJ,KAAK,EACD,OAAO8rG,EACX,KAAM,EACF,OAAOC,EACX,QACI,OAAOA,EAAgBl3H,QAAQ,MAAQ,EACjCk3H,EAAgBzlH,QAAQ,KAAM,KAC9B,IAAMwlH,GAkDxB,SAASrD,GAAa1qH,EAAIrB,EAAGsvH,GACzB,OAAOA,EAAMjuH,EAAGw2F,OAAO73F,KAAOsvH,EAAMz/D,MC5ZjC,SAAS0/D,GAAuB9G,EAAczoH,EAAGwB,GACpD,IAAIosH,EAQA91H,EAuBAwrB,EA9BAqlG,EAAmBnnH,EAAGmnH,iBACtB5B,EAAgB4B,EAAiBF,GACjCpnH,EAAK0lH,EAAc1lH,GAAIunH,EAAiB7B,EAAc6B,eAAgBC,EAAkB9B,EAAc8B,gBACtGzkH,EAAUwkH,EAAe50E,QAAQ5vC,QAAQykH,IACzCD,EAAe50E,QAAQ5vC,QAAQwkH,EAAe50E,QAAQ+0E,GAAG,IACzDL,EAAY,EACZ8B,EAAW,EAEf,GAAIn7G,MAAMrP,GACNlI,EAAIsM,EAAQorH,SAEX,GAAKlvG,SAAStgB,GAGd,CAC2B,YAAxB+mH,EAAch4G,QACd/O,GAAK,KAKLwqH,GAFJoD,EAAK9C,EAAgBrC,EAAczoH,EAAG,CAClC2oH,iBAAkBA,KACJ,GAAID,EAAYkF,EAAG,GAGrC,IAAI7C,EAAqBN,EAAsB1D,EAD/C/mH,EAAIwqH,EAAW,EAAIxqH,EAAIY,KAAKijB,IAAI,IAAK2mG,GAAYxqH,EAAIY,KAAKijB,IAAI,GAAI2mG,IAElE1yH,EAAIizH,EAAmBd,gBACvBjqH,EAAI+qH,EAAmBb,mBAdvBpyH,EAAIsM,EAAQqrH,SAoBhB,OADkB1I,EAAcrtB,aAE5B,IAAK,QACDp2E,EAAO,EACP,MACJ,IAAK,OAEGA,EADA8hG,EAAUplH,EAAG,IAAMA,EAAI,GAAKqP,MAAMrP,GAC3B,GAGC,EAEZ,MACJ,IAAK,SAEGsjB,EADA8hG,EAAUplH,EAAG,IAAMA,EAAI,GAAKqP,MAAMrP,GAC3B,GAGC,EAEZ,MACJ,QAGQsjB,EADM,IAANtjB,GAAWqP,MAAMrP,GACV,EAEFA,EAAI,EACF,GAGC,EAGpB,OAAOurH,GAAc,CAAErB,cAAelqH,EAAGiqH,gBAAiBnyH,EAAG0yH,SAAUA,EAAU9B,UAAWA,EAAWplG,KAAMA,GAAQyjG,EAAc6B,eAAgBvnH,EAAI0lH,GCvEpJ,SAAS2I,GAAqBC,EAAI3vH,EAAG4vH,GAGxC,IAFA,IAAIjsD,EAAQ4rD,GAAuBI,EAAI3vH,EAAG4vH,GACtC11H,EAASqrH,EAAY,GAChB/kH,EAAK,EAAGqvH,EAAUlsD,EAAOnjE,EAAKqvH,EAAQ95H,OAAQyK,IAAM,CACzD,IAAIooG,EAAOinB,EAAQrvH,GACnBtG,EAAOmB,KAAK,CACR4G,KAAM2mG,EAAK3mG,KACXnI,MAAO8uG,EAAK9uG,QAGpB,OAAOI,ECPJ,SAAS41H,GAAoBC,EAAkBpqH,GAElD,IADA,IAAIqqH,EAAYrqH,IACH,CACT,GAAIoqH,EAAiBzxH,IAAI0xH,GACrB,OAAOA,EAEX,IAAI1tG,EAAM0tG,EAAU3mC,YAAY,KAChC,KAAM/mE,EACF,OAEAA,GAAO,GAA4B,MAAvB0tG,EAAU1tG,EAAM,KAC5BA,GAAO,GAEX0tG,EAAYA,EAAUlzH,MAAM,EAAGwlB,ICZhC,SAAS2tG,GAAsBC,EAAW55H,GAC7C8L,YAAyB,IAAf9L,EAAIP,OAAc,4BAC5B,IAAI6nB,EAAOsyG,EAAUn6H,OACjBo6H,EAAc,IAAM75H,EAAM,IAC1BgsB,EAAM4tG,EAAU/3H,QAAQg4H,GAC5B,IAAa,IAAT7tG,EAAY,CAKZ,IAJA,IAAIvjB,EAAQujB,EAAM,EACdtjB,EAAMD,EACNtD,EAAIsD,EACJ5E,GAAO,GACHA,GAAM,CACV,IAAIjC,EAAIg4H,EAAU/3H,QAAQ,IAAKsD,GAQnB,MAND,IAAPvD,EACM0lB,EAAOniB,EAGPvD,EAAIuD,GAGVtB,GAAO,GAEK,IAAPjC,GACL8G,EAAM4e,EACNzjB,GAAO,IAGP6E,EAAM9G,EACNuD,EAAIvD,EAAI,GAGhB,OAAOg4H,EAAUpzH,MAAMiC,EAAOC,GAIlC,GAFAmxH,EAAc,IAAM75H,GAEP,KADbgsB,EAAM4tG,EAAU/3H,QAAQg4H,KACN7tG,EAAM,IAAM1E,EAC1B,MAAO,GCnCR,SAASwyG,GAAcL,EAAkBM,EAAkBpmH,EAASqmH,EAAuBC,EAAYC,GAY1G,IAXA,IACI93H,EAOA+3H,GALA/3H,EADY,WAFFuR,EAAQymH,cCAnB,SAAuBX,EAAkBM,EAAkBG,GAE9D,IADA,IAAIt2H,EAAS,CAAEyL,OAAQ,IACdnF,EAAK,EAAGmwH,EAAqBN,EAAkB7vH,EAAKmwH,EAAmB56H,OAAQyK,IAAM,CAC1F,IAAImF,EAASgrH,EAAmBnwH,GAC5BowH,EAAoBjrH,EAAOiE,QAAQzH,IAAkC,IACrE0uH,EAAkBf,GAAoBC,EAAkBa,GAC5D,GAAIC,EAKA,OAJA32H,EAAOyL,OAASkrH,EACZlrH,IAAWirH,IACX12H,EAAOg2H,UAAYvqH,EAAO7I,MAAM8zH,EAAkB76H,OAAS,EAAG4P,EAAO5P,SAElEmE,EAIf,OADAA,EAAOyL,OAAS6qH,IACTt2H,EDZC42H,CAAcf,EAAkBM,EAAkBG,GEHvD,SAAwBT,EAAkBM,EAAkBG,GAC/D,IASIC,EATAM,EAA8B,GAC9BC,EAA4B,IAAIxuF,IACpCutF,EAAiBtrH,SAAQ,SAAUkB,GAC/B,IAAIsrH,EAAkB,IAAInkF,KAAKokF,OAAOvrH,GACjCwrH,WACA3zG,WACLuzG,EAA4BE,GAAmBtrH,EAC/CqrH,EAA0BvuF,IAAIwuF,MAGlC,IAAK,IAAIzwH,EAAK,EAAGmwH,EAAqBN,EAAkB7vH,EAAKmwH,EAAmB56H,OAAQyK,IAAM,CAC1F,IAAI3D,EAAI8zH,EAAmBnwH,GAC3B,GAAIiwH,EACA,MAEJ,IAAIG,EAAoB/zH,EAAE+M,QAAQzH,IAAkC,IACpE,GAAI4tH,EAAiBzxH,IAAIsyH,GAAoB,CACzCH,EAAcG,EACd,MAEJ,GAAII,EAA0B1yH,IAAIsyH,GAAoB,CAClDH,EAAcM,EAA4BH,GAC1C,MAEJ,IAAIjrH,EAAS,IAAImnC,KAAKokF,OAAON,GACzBQ,EAA2BzrH,EAAO0rH,WAAW7zG,WAC7C8zG,EAA2B3rH,EAAOwrH,WAAW3zG,WAEjD,GAAIwzG,EAA0B1yH,IAAIgzH,GAA2B,CACzDb,EAAcM,EAA4BO,GAC1C,MAGJb,EAAcX,GAAoBkB,EAA2BI,GAEjE,MAAO,CACHzrH,OAAQ8qH,GAAeD,KF/BnBe,CAAexB,EAAkBM,EAAkBG,IAEvC7qH,OAChBzL,EAAS,CAAEyL,OAAQ,GAAI6rH,WAAYf,GACnCgB,EAAqB,KAChBjxH,EAAK,EAAGkxH,EAA0BpB,EAAuB9vH,EAAKkxH,EAAwB37H,OAAQyK,IAAM,CACzG,IAAIlK,EAAMo7H,EAAwBlxH,GAClC4B,YAAUquH,KAAeF,EAAY,2BAA6BE,GAClE,IAAIkB,EAAkBpB,EAAWE,GACjCruH,YAAqC,kBAApBuvH,GAAoD,OAApBA,EAA0B,eAAiBr7H,EAAM,sBAClG,IAAIs7H,EAAgBD,EAAgBr7H,GACpC8L,YAAUpL,MAAM8I,QAAQ8xH,GAAgB,qBAAuBt7H,EAAM,qBACrE,IAAIwD,EAAQ83H,EAAc,GAC1BxvH,YAA2B,kBAAVtI,GAAgC,OAAVA,EAAgB,+CAAiDA,EAAQ,WAAaxD,GAC7H,IAAIu7H,EAA6B,GACjC,GAAIn5H,EAAEw3H,UAAW,CACb,IAAI4B,EAAiB7B,GAAsBv3H,EAAEw3H,UAAW55H,QACjCqF,IAAnBm2H,IACuB,KAAnBA,GACKF,EAAcz5H,QAAQ25H,KAEvBD,EAA6B,IAAMv7H,EAAM,KADzCwD,EAAQg4H,KAINA,EAAe35H,QAAQ,UAC7B2B,EAAQ,OACR+3H,EAA6B,IAAMv7H,IAI/C,GAAIA,KAAO2T,EAAS,CAChB,IAAI8nH,EAAe9nH,EAAQ3T,GAC3B8L,YAAkC,kBAAjB2vH,GACW,qBAAjBA,GACU,OAAjBA,EAAuB,mDACtBH,EAAcz5H,QAAQ45H,IACnBA,IAAiBj4H,IACjBA,EAAQi4H,EACRF,EAA6B,IAIzC33H,EAAO5D,GAAOwD,EACd23H,GAAsBI,EAE1B,GAAIJ,EAAmB17H,OAAS,EAAG,CAC/B,IAAIi8H,EAAevB,EAAYt4H,QAAQ,OACvC,IAAsB,IAAlB65H,EACAvB,GAA4BgB,MAE3B,CACD,IAAIQ,EAAexB,EAAY3zH,MAAM,EAAGk1H,GACpCE,EAAgBzB,EAAY3zH,MAAMk1H,EAAcvB,EAAY16H,QAChE06H,EAAcwB,EAAeR,EAAqBS,EAEtDzB,EAAc3jF,KAAK43E,oBAAoB+L,GAAa,GAGxD,OADAv2H,EAAOyL,OAAS8qH,EACTv2H,EGlEJ,SAASi4H,GAA2BxC,EAAI1lH,EAASzI,QACpC,IAAZyI,IAAsBA,EAAU7T,OAAOqB,OAAO,OAClD,IACIsvH,GAAgB4B,EADGnnH,EAAGmnH,kBACWgH,GACjC5gH,EAAQw4G,EAAUt9G,EAAS,QAAS,SAAU,CAAC,UAAW,UAAW,WAAY,QAAS,WAC9F88G,EAAch4G,MAAQA,EACtB,IAAIwrF,EAAWgtB,EAAUt9G,EAAS,WAAY,cAAUtO,OAAWA,GACnE,QAAiBA,IAAb4+F,IAA2B4tB,EAAyB5tB,GACpD,MAAM5B,WAAW,2BAErB,GAAc,aAAV5pF,QAAqCpT,IAAb4+F,EACxB,MAAM7kG,UAAU,gCAEpB,IAAIglG,EAAkB6sB,EAAUt9G,EAAS,kBAAmB,SAAU,CAAC,OAAQ,SAAU,eAAgB,QAAS,UAC9G0vF,EAAe4tB,EAAUt9G,EAAS,eAAgB,SAAU,CAAC,WAAY,cAAe,YACxF0hD,EAAO47D,EAAUt9G,EAAS,OAAQ,cAAUtO,OAAWA,GAC3D,QAAaA,IAATgwD,IAAuBy8D,EAA2Bz8D,GAClD,MAAMgtC,WAAW,iDAErB,GAAc,SAAV5pF,QAA6BpT,IAATgwD,EACpB,MAAMj2D,UAAU,4BAEpB,IAAIilG,EAAc4sB,EAAUt9G,EAAS,cAAe,SAAU,CAAC,QAAS,SAAU,QAAS,SAC7E,aAAV8E,IACAg4G,EAAcxsB,SAAWA,EAAS/3E,cAClCukG,EAAcrsB,gBAAkBA,EAChCqsB,EAAcptB,aAAeA,GAEnB,SAAV5qF,IACAg4G,EAAcp7D,KAAOA,EACrBo7D,EAAcpsB,YAAcA,GC/B7B,SAASy3B,GAA4BrL,EAAevoF,EAAM6zF,EAAaC,EAAa58D,GACvF,IAAI68D,EAAOnL,EAAgB5oF,EAAM,uBAAwB,EAAG,GAAI,GAC5Dg0F,EAAOh0F,EAAKu3B,sBACZ08D,EAAOj0F,EAAKw3B,sBACZ08D,EAAOl0F,EAAK+6D,yBACZo5B,EAAOn0F,EAAKg7D,yBAEhB,GADAutB,EAAchtB,qBAAuBw4B,OACxB52H,IAAT+2H,QAA+B/2H,IAATg3H,EACtB5L,EAAc6D,aAAe,oBAC7B8H,EAAOvL,EAAoBuL,EAAM,EAAG,GAAI,GACxCC,EAAOxL,EAAoBwL,EAAMD,EAAM,GAAI,IAC3C3L,EAAcxtB,yBAA2Bm5B,EACzC3L,EAAcvtB,yBAA2Bm5B,OAExC,QAAah3H,IAAT62H,QAA+B72H,IAAT82H,EAAoB,CAC/C1L,EAAc6D,aAAe,iBAC7B4H,EAAOrL,EAAoBqL,EAAM,EAAG,GAAIH,GAExCI,EAAOtL,EAAoBsL,EAAMD,EAAM,GADf5xH,KAAKwjB,IAAIouG,EAAMF,IAEvCvL,EAAchxD,sBAAwBy8D,EACtCzL,EAAc/wD,sBAAwBy8D,MAEpB,YAAb/8D,EACLqxD,EAAc6D,aAAe,mBAG7B7D,EAAc6D,aAAe,iBAC7B7D,EAAchxD,sBAAwBs8D,EACtCtL,EAAc/wD,sBAAwBs8D,GCtBvC,SAASM,GAAuBjD,EAAIj5B,EAASl4D,EAAMh9B,GACtD,IAAImnH,EAAmBnnH,EAAGmnH,iBAAkB4H,EAAa/uH,EAAG+uH,WAAYR,EAAmBvuH,EAAGuuH,iBAAkB8C,EAAuBrxH,EAAGqxH,qBAAsBrC,EAAmBhvH,EAAGgvH,iBAAkBvF,EAAqBzpH,EAAGypH,mBAE5NoF,EAAmB5L,EAAuB/tB,GAC1CzsF,EAAUi9G,EAAsB1oF,GAChCy7D,EAAM7jG,OAAOqB,OAAO,MACpBq7H,EAAUvL,EAAUt9G,EAAS,gBAAiB,SAAU,CAAC,SAAU,YAAa,YACpFgwF,EAAIy2B,cAAgBoC,EACpB,IAAIjK,EAAkBtB,EAAUt9G,EAAS,kBAAmB,cAAUtO,OAAWA,GACjF,QAAwBA,IAApBktH,GACAgK,EAAqB16H,QAAQ0wH,GAAmB,EAGhD,MAAMlwB,WAAW,6BAA+BkwB,GAEpD5uB,EAAI8uB,GAAKF,EACT,IAAInwH,EAAI03H,GAAcL,EAAkBM,EAAkBp2B,EAE1D,CAAC,MAAOs2B,EAAYC,GAChB5H,EAAiB2H,EAAW73H,EAAE84H,YAClCpvH,cAAYwmH,EAAgB,2BAA6BlwH,EAAE84H,YAC3D,IAAIzK,EAAgB4B,EAAiBgH,GACrC5I,EAAcphH,OAASjN,EAAEiN,OACzBohH,EAAcyK,WAAa94H,EAAE84H,WAC7BzK,EAAc8B,gBAAkBnwH,EAAEqwH,GAClChC,EAAc6B,eAAiBA,EAC/BuJ,GAA2BxC,EAAI1lH,EAAS,CAAE0+G,iBAAkBA,IAC5D,IACI0J,EACAC,EAFAvjH,EAAQg4G,EAAch4G,MAG1B,GAAc,aAAVA,EAAsB,CACtB,IACIgkH,EAAU/H,EADCjE,EAAcxsB,SACU,CAAE0wB,mBAAoBA,IAC7DoH,EAAcU,EACdT,EAAcS,OAGdV,EAAc,EACdC,EAAwB,YAAVvjH,EAAsB,EAAI,EAE5C,IAAI2mD,EAAW6xD,EAAUt9G,EAAS,WAAY,SAAU,CAAC,WAAY,aAAc,cAAe,WAAY,YAC9G88G,EAAcrxD,SAAWA,EACzB08D,GAA4BrL,EAAe98G,EAASooH,EAAaC,EAAa58D,GAC9E,IAAI+kC,EAAiB8sB,EAAUt9G,EAAS,iBAAkB,SAAU,CAAC,QAAS,QAAS,SACtE,YAAbyrD,IACAqxD,EAActsB,eAAiBA,GAEnC,IAAID,EAAc+sB,EAAUt9G,EAAS,cAAe,eAAWtO,GAAW,GAC1EorH,EAAcvsB,YAAcA,EAC5B,IAAId,EAAc6tB,EAAUt9G,EAAS,cAAe,SAAU,CAAC,OAAQ,QAAS,SAAU,cAAe,QAEzG,OADA88G,EAAcrtB,YAAcA,EACrBi2B,ECzDJ,SAASqD,GAAiBzyB,GAM7B,IALA,IAAIrmG,EAAS,GACT+4H,EAAa1yB,EAAQpoG,QAAQ,KAC7B0/E,EAAW,EACXuiC,EAAY,EACZrkH,EAASwqG,EAAQxqG,OACdk9H,EAAa1yB,EAAQxqG,QAAUk9H,GAAc,GAChDp7C,EAAW0oB,EAAQpoG,QAAQ,IAAK86H,GAChC7wH,YAAUy1E,EAAWo7C,EAAY,mBAAqB1yB,GAClD0yB,EAAa7Y,GACblgH,EAAOmB,KAAK,CACR4G,KAAM,UACNnI,MAAOymG,EAAQ9iF,UAAU28F,EAAW6Y,KAG5C/4H,EAAOmB,KAAK,CACR4G,KAAMs+F,EAAQ9iF,UAAUw1G,EAAa,EAAGp7C,GACxC/9E,WAAO6B,IAEXy+G,EAAYviC,EAAW,EACvBo7C,EAAa1yB,EAAQpoG,QAAQ,IAAKiiH,GAQtC,OANIA,EAAYrkH,GACZmE,EAAOmB,KAAK,CACR4G,KAAM,UACNnI,MAAOymG,EAAQ9iF,UAAU28F,EAAWrkH,KAGrCmE,EC1BJ,SAASg5H,GAAuBnD,EAAkBM,GAErD,IADA,IAAI8C,EAAS,GACJ3yH,EAAK,EAAGmwH,EAAqBN,EAAkB7vH,EAAKmwH,EAAmB56H,OAAQyK,IAAM,CAC1F,IAEIqwH,EAAkBf,GAAoBC,EAF7BY,EAAmBnwH,GACDoJ,QAAQzH,IAAkC,KAErE0uH,GACAsC,EAAO93H,KAAKw1H,GAGpB,OAAOsC,ECRJ,SAASC,GAAiBrD,EAAkBM,EAAkBpmH,GAMjE,YAJgBtO,IAAZsO,GAEUs9G,EADVt9G,EAAUq7G,EAASr7G,GACU,gBAAiB,SAAU,CAAC,SAAU,YAAa,YAGzEipH,GAAuBnD,EAAkBM,G,IChB7CgD,G,SCCiC,SAAUvuH,GAElD,SAASwuH,IACL,IAAIruH,EAAmB,OAAXH,GAAmBA,EAAO9M,MAAMT,KAAMQ,YAAcR,KAEhE,OADA0N,EAAMhD,KAAO,sBACNgD,EAJX7N,qBAAUk8H,EAAwBxuH,GADM,CAQ1CtC,OACK,SAAS+wH,GAAyBr7H,GACrC,MAAkB,wBAAXA,EAAE+J,MDVb,SAAWoxH,GACPA,EAA6B,WAAI,aACjCA,EAAyB,OAAI,SAC7BA,EAA2B,SAAI,WAHnC,CAIGA,KAAqBA,GAAmB,M,gBEL3C,IAAIG,EAAUl+H,EAAQ,KAClBm+H,EAAUn+H,EAAQ,KAiCtBF,EAAOC,QAJP,SAAa6O,EAAQ2D,GACnB,OAAiB,MAAV3D,GAAkBuvH,EAAQvvH,EAAQ2D,EAAM2rH,K,6BC/BjD,8KACWE,EADX,QAEA,SAAWA,GAEPA,EAAyB,cAAI,gBAE7BA,EAAyB,cAAI,gBAE7BA,EAA4B,iBAAI,mBANpC,CAOGA,IAAcA,EAAY,KAC7B,IAAIC,EAA6B,SAAU7uH,GAEvC,SAAS6uH,EAAYruB,EAAKvgG,EAAMs+F,GAC5B,IAAIp+F,EAAQH,EAAO3N,KAAKI,KAAM+tG,IAAQ/tG,KAGtC,OAFA0N,EAAMF,KAAOA,EACbE,EAAMo+F,gBAAkBA,EACjBp+F,EAKX,OAVA7N,oBAAUu8H,EAAa7uH,GAOvB6uH,EAAYj9H,UAAU8mB,SAAW,WAC7B,MAAO,oBAAsBjmB,KAAKwN,KAAO,KAAOxN,KAAK+K,SAElDqxH,EAXsB,CAY/BnxH,OAEEoxH,EAAmC,SAAU9uH,GAE7C,SAAS8uH,EAAkBC,EAAY/5H,EAAOmQ,EAASo5F,GACnD,OAAOv+F,EAAO3N,KAAKI,KAAM,uBAA0Bs8H,EAAa,OAAW/5H,EAAQ,mBAAuB1D,OAAOqL,KAAKwI,GAAS/I,KAAK,QAAU,IAAMwyH,EAAUI,cAAezwB,IAAoB9rG,KAErM,OAJAH,oBAAUw8H,EAAmB9uH,GAItB8uH,EAL4B,CAMrCD,GAEEI,EAAuC,SAAUjvH,GAEjD,SAASivH,EAAsBj6H,EAAOmI,EAAMohG,GACxC,OAAOv+F,EAAO3N,KAAKI,KAAM,cAAiBuC,EAAQ,qBAAwBmI,EAAMyxH,EAAUI,cAAezwB,IAAoB9rG,KAEjI,OAJAH,oBAAU28H,EAAuBjvH,GAI1BivH,EALgC,CAMzCJ,GAEEK,EAAmC,SAAUlvH,GAE7C,SAASkvH,EAAkBH,EAAYxwB,GACnC,OAAOv+F,EAAO3N,KAAKI,KAAM,qCAAwCs8H,EAAa,qCAAyCxwB,EAAkB,IAAMqwB,EAAUO,cAAe5wB,IAAoB9rG,KAEhM,OAJAH,oBAAU48H,EAAmBlvH,GAItBkvH,EAL4B,CAMrCL,I,8SC9CEO,EAAoB,SAA2Bp6H,GAClD,OAID,SAAyBA,GACxB,QAASA,GAA0B,kBAAVA,EALlBq6H,CAAgBr6H,KAQxB,SAAmBA,GAClB,IAAIs6H,EAAch+H,OAAOM,UAAU8mB,SAASrmB,KAAK2C,GAEjD,MAAuB,oBAAhBs6H,GACa,kBAAhBA,GAQL,SAAwBt6H,GACvB,OAAOA,EAAMynH,WAAa8S,EARtBC,CAAex6H,GAZdy6H,CAAUz6H,IAgBhB,IACIu6H,EADiC,oBAAXr5H,QAAyBA,OAAOw5H,IAClBx5H,OAAOw5H,IAAI,iBAAmB,MAUtE,SAASC,EAA8B36H,EAAOmQ,GAC7C,OAA0B,IAAlBA,EAAQ0rB,OAAmB1rB,EAAQiqH,kBAAkBp6H,GAC1D46H,GANiB79F,EAMK/8B,EALlB9C,MAAM8I,QAAQ+2B,GAAO,GAAK,IAKA/8B,EAAOmQ,GACrCnQ,EAPJ,IAAqB+8B,EAUrB,SAAS89F,EAAkB/+H,EAAQ4O,EAAQyF,GAC1C,OAAOrU,EAAOuG,OAAOqI,GAAQpD,KAAI,SAASuK,GACzC,OAAO8oH,EAA8B9oH,EAAS1B,MAqBhD,SAASyqH,EAAU9+H,EAAQ4O,EAAQyF,IAClCA,EAAUA,GAAW,IACb2qH,WAAa3qH,EAAQ2qH,YAAcD,EAC3C1qH,EAAQiqH,kBAAoBjqH,EAAQiqH,mBAAqBA,EAEzD,IAAIW,EAAgB79H,MAAM8I,QAAQ0E,GAIlC,OAFgCqwH,IADZ79H,MAAM8I,QAAQlK,GAKvBi/H,EACH5qH,EAAQ2qH,WAAWh/H,EAAQ4O,EAAQyF,GA7B5C,SAAqBrU,EAAQ4O,EAAQyF,GACpC,IAAI6qH,EAAc,GAalB,OAZI7qH,EAAQiqH,kBAAkBt+H,IAC7BQ,OAAOqL,KAAK7L,GAAQ6O,SAAQ,SAASnO,GACpCw+H,EAAYx+H,GAAOm+H,EAA8B7+H,EAAOU,GAAM2T,MAGhE7T,OAAOqL,KAAK+C,GAAQC,SAAQ,SAASnO,GAC/B2T,EAAQiqH,kBAAkB1vH,EAAOlO,KAAUV,EAAOU,GAGtDw+H,EAAYx+H,GAAOo+H,EAAU9+H,EAAOU,GAAMkO,EAAOlO,GAAM2T,GAFvD6qH,EAAYx+H,GAAOm+H,EAA8BjwH,EAAOlO,GAAM2T,MAKzD6qH,EAiBCC,CAAYn/H,EAAQ4O,EAAQyF,GAJ5BwqH,EAA8BjwH,EAAQyF,GAQ/CyqH,EAAU5yH,IAAM,SAAsBoiB,EAAOja,GAC5C,IAAKjT,MAAM8I,QAAQokB,GAClB,MAAM,IAAI1hB,MAAM,qCAGjB,OAAO0hB,EAAM5kB,QAAO,SAASipC,EAAMvuC,GAClC,OAAO06H,EAAUnsF,EAAMvuC,EAAMiQ,KAC3B,KAGJ,IAEe+qH,EAFGN,E,QCjFH15H,EAFF28B,IAAK38B,OCAdi6H,EAAc7+H,OAAOM,UAGrBQ,EAAiB+9H,EAAY/9H,eAO7Bg+H,EAAuBD,EAAYz3G,SAGnC23G,EAAiBn6H,EAASA,EAAOgoC,iBAAcrnC,EA6BpCy5H,MApBf,SAAmBt7H,GACjB,IAAIu7H,EAAQn+H,EAAeC,KAAK2C,EAAOq7H,GACnCh9B,EAAMr+F,EAAMq7H,GAEhB,IACEr7H,EAAMq7H,QAAkBx5H,EACxB,IAAI25H,GAAW,EACf,MAAOp9H,IAET,IAAIgC,EAASg7H,EAAqB/9H,KAAK2C,GAQvC,OAPIw7H,IACED,EACFv7H,EAAMq7H,GAAkBh9B,SAEjBr+F,EAAMq7H,IAGVj7H,GClCLg7H,EAPc9+H,OAAOM,UAOc8mB,SAaxB+3G,MAJf,SAAwBz7H,GACtB,OAAOo7H,EAAqB/9H,KAAK2C,ICT/Bq7H,EAAiBn6H,EAASA,EAAOgoC,iBAAcrnC,EAkBpC65H,MATf,SAAoB17H,GAClB,OAAa,MAATA,OACe6B,IAAV7B,EAdQ,qBADL,gBAiBJq7H,GAAkBA,KAAkB/+H,OAAO0D,GAC/Cs7H,EAAUt7H,GACVy7H,EAAez7H,ICVN27H,MANf,SAAiBC,EAAM57G,GACrB,OAAO,SAASqqD,GACd,OAAOuxD,EAAK57G,EAAUqqD,MCLXwxD,EAFIF,EAAQr/H,OAAOsM,eAAgBtM,QCyBnCw/H,MAJf,SAAsB97H,GACpB,OAAgB,MAATA,GAAiC,iBAATA,GCjB7B+7H,EAAYhhC,SAASn+F,UACrBu+H,EAAc7+H,OAAOM,UAGrBo/H,EAAeD,EAAUr4G,SAGzBtmB,EAAiB+9H,EAAY/9H,eAG7B6+H,EAAmBD,EAAa3+H,KAAKf,QA2C1Bw7G,MAbf,SAAuB93G,GACrB,IAAK87H,EAAa97H,IA5CJ,mBA4Cc07H,EAAW17H,GACrC,OAAO,EAET,IAAI87B,EAAQ+/F,EAAa77H,GACzB,GAAc,OAAV87B,EACF,OAAO,EAET,IAAIogG,EAAO9+H,EAAeC,KAAKy+B,EAAO,gBAAkBA,EAAMp+B,YAC9D,MAAsB,mBAARw+H,GAAsBA,aAAgBA,GAClDF,EAAa3+H,KAAK6+H,IAASD,GC9ChBE,MALf,WACE1+H,KAAK2+H,SAAW,GAChB3+H,KAAKqmB,KAAO,GC2BCiL,MAJf,SAAY/uB,EAAO+1D,GACjB,OAAO/1D,IAAU+1D,GAAU/1D,IAAUA,GAAS+1D,IAAUA,GCb3CsmE,MAVf,SAAsBjyG,EAAO5tB,GAE3B,IADA,IAAIP,EAASmuB,EAAMnuB,OACZA,KACL,GAAI8yB,EAAG3E,EAAMnuB,GAAQ,GAAIO,GACvB,OAAOP,EAGX,OAAQ,GCXNylC,EAHaxkC,MAAMN,UAGC8kC,OA4BT46F,MAjBf,SAAyB9/H,GACvB,IAAIsf,EAAOre,KAAK2+H,SACZtrH,EAAQurH,EAAavgH,EAAMtf,GAE/B,QAAIsU,EAAQ,KAIRA,GADYgL,EAAK7f,OAAS,EAE5B6f,EAAKxa,MAELogC,EAAOrkC,KAAKye,EAAMhL,EAAO,KAEzBrT,KAAKqmB,MACA,ICbMy4G,MAPf,SAAsB//H,GACpB,IAAIsf,EAAOre,KAAK2+H,SACZtrH,EAAQurH,EAAavgH,EAAMtf,GAE/B,OAAOsU,EAAQ,OAAIjP,EAAYia,EAAKhL,GAAO,ICA9B0rH,MAJf,SAAsBhgI,GACpB,OAAO6/H,EAAa5+H,KAAK2+H,SAAU5/H,IAAQ,GCa9BigI,MAbf,SAAsBjgI,EAAKwD,GACzB,IAAI8b,EAAOre,KAAK2+H,SACZtrH,EAAQurH,EAAavgH,EAAMtf,GAQ/B,OANIsU,EAAQ,KACRrT,KAAKqmB,KACPhI,EAAKva,KAAK,CAAC/E,EAAKwD,KAEhB8b,EAAKhL,GAAO,GAAK9Q,EAEZvC,MCTT,SAASi/H,EAAUvjE,GACjB,IAAIroD,GAAS,EACT7U,EAAoB,MAAXk9D,EAAkB,EAAIA,EAAQl9D,OAG3C,IADAwB,KAAK+vE,UACI18D,EAAQ7U,GAAQ,CACvB,IAAIgqD,EAAQkT,EAAQroD,GACpBrT,KAAKiH,IAAIuhD,EAAM,GAAIA,EAAM,KAK7By2E,EAAU9/H,UAAU4wE,MAAQ2uD,EAC5BO,EAAU9/H,UAAkB,OAAI0/H,EAChCI,EAAU9/H,UAAUkF,IAAMy6H,EAC1BG,EAAU9/H,UAAU4H,IAAMg4H,EAC1BE,EAAU9/H,UAAU8H,IAAM+3H,EAEXC,QCjBAC,MALf,WACEl/H,KAAK2+H,SAAW,IAAIM,EACpBj/H,KAAKqmB,KAAO,GCMC84G,MARf,SAAqBpgI,GACnB,IAAIsf,EAAOre,KAAK2+H,SACZh8H,EAAS0b,EAAa,OAAEtf,GAG5B,OADAiB,KAAKqmB,KAAOhI,EAAKgI,KACV1jB,GCDMy8H,MAJf,SAAkBrgI,GAChB,OAAOiB,KAAK2+H,SAASt6H,IAAItF,ICGZsgI,MAJf,SAAkBtgI,GAChB,OAAOiB,KAAK2+H,SAAS53H,IAAIhI,ICoBZ6pB,MALf,SAAkBrmB,GAChB,IAAImI,SAAcnI,EAClB,OAAgB,MAATA,IAA0B,UAARmI,GAA4B,YAARA,ICShCygB,MAVf,SAAoB5oB,GAClB,IAAKqmB,EAASrmB,GACZ,OAAO,EAIT,IAAIq+F,EAAMq9B,EAAW17H,GACrB,MA5BY,qBA4BLq+F,GA3BI,8BA2BcA,GA7BZ,0BA6B6BA,GA1B7B,kBA0BgDA,GC5BhD0+B,EAFEl/F,IAAK,sBCAlBm/F,EAAc,WAChB,IAAI72G,EAAM,SAASxV,KAAKosH,GAAcA,EAAWp1H,MAAQo1H,EAAWp1H,KAAKs1H,UAAY,IACrF,OAAO92G,EAAO,iBAAmBA,EAAO,GAFxB,GAgBH+2G,MAJf,SAAkBtB,GAChB,QAASoB,GAAeA,KAAcpB,GCZpCI,EAHYjhC,SAASn+F,UAGI8mB,SAqBdy5G,MAZf,SAAkBvB,GAChB,GAAY,MAARA,EAAc,CAChB,IACE,OAAOI,EAAa3+H,KAAKu+H,GACzB,MAAOx9H,IACT,IACE,OAAQw9H,EAAO,GACf,MAAOx9H,KAEX,MAAO,ICVLg/H,EAAe,8BAGfrB,GAAYhhC,SAASn+F,UACrBu+H,GAAc7+H,OAAOM,UAGrBo/H,GAAeD,GAAUr4G,SAGzBtmB,GAAiB+9H,GAAY/9H,eAG7BigI,GAAa72F,OAAO,IACtBw1F,GAAa3+H,KAAKD,IAAgB0S,QAjBjB,sBAiBuC,QACvDA,QAAQ,yDAA0D,SAAW,KAmBjE46G,OARf,SAAsB1qH,GACpB,SAAKqmB,EAASrmB,IAAUk9H,EAASl9H,MAGnB4oB,EAAW5oB,GAASq9H,GAAaD,GAChCp9B,KAAKm9B,EAASn9H,KC/BhB6sG,OAJf,SAAkBziG,EAAQ5N,GACxB,OAAiB,MAAV4N,OAAiBvI,EAAYuI,EAAO5N,ICO9B8gI,OALf,SAAmBlzH,EAAQ5N,GACzB,IAAIwD,EAAQ6sG,GAASziG,EAAQ5N,GAC7B,OAAOkuH,GAAa1qH,GAASA,OAAQ6B,GCPxByX,GAFLgkH,GAAUz/F,IAAM,OCCX0/F,GAFID,GAAUhhI,OAAQ,UCWtBkhI,OALf,WACE//H,KAAK2+H,SAAWmB,GAAeA,GAAa,MAAQ,GACpD9/H,KAAKqmB,KAAO,GCKC25G,OANf,SAAoBjhI,GAClB,IAAI4D,EAAS3C,KAAK+G,IAAIhI,WAAeiB,KAAK2+H,SAAS5/H,GAEnD,OADAiB,KAAKqmB,MAAQ1jB,EAAS,EAAI,EACnBA,GCJLhD,GAHcd,OAAOM,UAGQQ,eAoBlBsgI,OATf,SAAiBlhI,GACf,IAAIsf,EAAOre,KAAK2+H,SAChB,GAAImB,GAAc,CAChB,IAAIn9H,EAAS0b,EAAKtf,GAClB,MArBiB,8BAqBV4D,OAA4ByB,EAAYzB,EAEjD,OAAOhD,GAAeC,KAAKye,EAAMtf,GAAOsf,EAAKtf,QAAOqF,GCpBlDzE,GAHcd,OAAOM,UAGQQ,eAgBlBugI,OALf,SAAiBnhI,GACf,IAAIsf,EAAOre,KAAK2+H,SAChB,OAAOmB,QAA8B17H,IAAdia,EAAKtf,GAAsBY,GAAeC,KAAKye,EAAMtf,ICG/DohI,OAPf,SAAiBphI,EAAKwD,GACpB,IAAI8b,EAAOre,KAAK2+H,SAGhB,OAFA3+H,KAAKqmB,MAAQrmB,KAAK+G,IAAIhI,GAAO,EAAI,EACjCsf,EAAKtf,GAAQ+gI,SAA0B17H,IAAV7B,EAfV,4BAekDA,EAC9DvC,MCNT,SAASogI,GAAK1kE,GACZ,IAAIroD,GAAS,EACT7U,EAAoB,MAAXk9D,EAAkB,EAAIA,EAAQl9D,OAG3C,IADAwB,KAAK+vE,UACI18D,EAAQ7U,GAAQ,CACvB,IAAIgqD,EAAQkT,EAAQroD,GACpBrT,KAAKiH,IAAIuhD,EAAM,GAAIA,EAAM,KAK7B43E,GAAKjhI,UAAU4wE,MAAQgwD,GACvBK,GAAKjhI,UAAkB,OAAI6gI,GAC3BI,GAAKjhI,UAAUkF,IAAM47H,GACrBG,GAAKjhI,UAAU4H,IAAMm5H,GACrBE,GAAKjhI,UAAU8H,IAAMk5H,GAENC,UCXAC,OATf,WACErgI,KAAKqmB,KAAO,EACZrmB,KAAK2+H,SAAW,CACd,KAAQ,IAAIyB,GACZ,IAAO,IAAKvkH,IAAOojH,GACnB,OAAU,IAAImB,KCFHE,OAPf,SAAmB/9H,GACjB,IAAImI,SAAcnI,EAClB,MAAgB,UAARmI,GAA4B,UAARA,GAA4B,UAARA,GAA4B,WAARA,EACrD,cAAVnI,EACU,OAAVA,GCMQg+H,OAPf,SAAoB12H,EAAK9K,GACvB,IAAIsf,EAAOxU,EAAI80H,SACf,OAAO2B,GAAUvhI,GACbsf,EAAmB,iBAAPtf,EAAkB,SAAW,QACzCsf,EAAKxU,KCGI22H,OANf,SAAwBzhI,GACtB,IAAI4D,EAAS49H,GAAWvgI,KAAMjB,GAAa,OAAEA,GAE7C,OADAiB,KAAKqmB,MAAQ1jB,EAAS,EAAI,EACnBA,GCCM89H,OAJf,SAAqB1hI,GACnB,OAAOwhI,GAAWvgI,KAAMjB,GAAKsF,IAAItF,ICGpB2hI,OAJf,SAAqB3hI,GACnB,OAAOwhI,GAAWvgI,KAAMjB,GAAKgI,IAAIhI,ICSpB4hI,OATf,SAAqB5hI,EAAKwD,GACxB,IAAI8b,EAAOkiH,GAAWvgI,KAAMjB,GACxBsnB,EAAOhI,EAAKgI,KAIhB,OAFAhI,EAAKpX,IAAIlI,EAAKwD,GACdvC,KAAKqmB,MAAQhI,EAAKgI,MAAQA,EAAO,EAAI,EAC9BrmB,MCLT,SAAS4gI,GAASllE,GAChB,IAAIroD,GAAS,EACT7U,EAAoB,MAAXk9D,EAAkB,EAAIA,EAAQl9D,OAG3C,IADAwB,KAAK+vE,UACI18D,EAAQ7U,GAAQ,CACvB,IAAIgqD,EAAQkT,EAAQroD,GACpBrT,KAAKiH,IAAIuhD,EAAM,GAAIA,EAAM,KAK7Bo4E,GAASzhI,UAAU4wE,MAAQswD,GAC3BO,GAASzhI,UAAkB,OAAIqhI,GAC/BI,GAASzhI,UAAUkF,IAAMo8H,GACzBG,GAASzhI,UAAU4H,IAAM25H,GACzBE,GAASzhI,UAAU8H,IAAM05H,GAEVC,UCEAC,OAhBf,SAAkB9hI,EAAKwD,GACrB,IAAI8b,EAAOre,KAAK2+H,SAChB,GAAItgH,aAAgB4gH,EAAW,CAC7B,IAAI6B,EAAQziH,EAAKsgH,SACjB,IAAK9iH,IAAQilH,EAAMtiI,OAASuiI,IAG1B,OAFAD,EAAMh9H,KAAK,CAAC/E,EAAKwD,IACjBvC,KAAKqmB,OAAShI,EAAKgI,KACZrmB,KAETqe,EAAOre,KAAK2+H,SAAW,IAAIiC,GAASE,GAItC,OAFAziH,EAAKpX,IAAIlI,EAAKwD,GACdvC,KAAKqmB,KAAOhI,EAAKgI,KACVrmB,MChBT,SAASghI,GAAMtlE,GACb,IAAIr9C,EAAOre,KAAK2+H,SAAW,IAAIM,EAAUvjE,GACzC17D,KAAKqmB,KAAOhI,EAAKgI,KAInB26G,GAAM7hI,UAAU4wE,MAAQmvD,EACxB8B,GAAM7hI,UAAkB,OAAIggI,EAC5B6B,GAAM7hI,UAAUkF,IAAM+6H,EACtB4B,GAAM7hI,UAAU4H,IAAMs4H,EACtB2B,GAAM7hI,UAAU8H,IAAM45H,GAEPG,UCLAC,OAZf,SAAmBt0G,EAAOu0G,GAIxB,IAHA,IAAI7tH,GAAS,EACT7U,EAAkB,MAATmuB,EAAgB,EAAIA,EAAMnuB,SAE9B6U,EAAQ7U,IAC8B,IAAzC0iI,EAASv0G,EAAMtZ,GAAQA,EAAOsZ,KAIpC,OAAOA,GCRM7tB,GARO,WACpB,IACE,IAAIq/H,EAAO0B,GAAUhhI,OAAQ,kBAE7B,OADAs/H,EAAK,GAAI,GAAI,IACNA,EACP,MAAOx9H,KALW,GCsBPwgI,OAbf,SAAyBx0H,EAAQ5N,EAAKwD,GACzB,aAAPxD,GAAsBD,GACxBA,GAAe6N,EAAQ5N,EAAK,CAC1B,cAAgB,EAChB,YAAc,EACd,MAASwD,EACT,UAAY,IAGdoK,EAAO5N,GAAOwD,GCbd5C,GAHcd,OAAOM,UAGQQ,eAoBlB87G,OARf,SAAqB9uG,EAAQ5N,EAAKwD,GAChC,IAAI6+H,EAAWz0H,EAAO5N,GAChBY,GAAeC,KAAK+M,EAAQ5N,IAAQuyB,EAAG8vG,EAAU7+H,UACxC6B,IAAV7B,GAAyBxD,KAAO4N,IACnCw0H,GAAgBx0H,EAAQ5N,EAAKwD,ICgBlB8+H,OA1Bf,SAAoBp0H,EAAQ3O,EAAOqO,EAAQ20H,GACzC,IAAIC,GAAS50H,EACbA,IAAWA,EAAS,IAKpB,IAHA,IAAI0G,GAAS,EACT7U,EAASF,EAAME,SAEV6U,EAAQ7U,GAAQ,CACvB,IAAIO,EAAMT,EAAM+U,GAEZmuH,EAAWF,EACXA,EAAW30H,EAAO5N,GAAMkO,EAAOlO,GAAMA,EAAK4N,EAAQM,QAClD7I,OAEaA,IAAbo9H,IACFA,EAAWv0H,EAAOlO,IAEhBwiI,EACFJ,GAAgBx0H,EAAQ5N,EAAKyiI,GAE7B/lB,GAAY9uG,EAAQ5N,EAAKyiI,GAG7B,OAAO70H,GCjBM80H,OAVf,SAAmBlhI,EAAG2gI,GAIpB,IAHA,IAAI7tH,GAAS,EACT1Q,EAASlD,MAAMc,KAEV8S,EAAQ9S,GACfoC,EAAO0Q,GAAS6tH,EAAS7tH,GAE3B,OAAO1Q,GCCM++H,OAJf,SAAyBn/H,GACvB,OAAO87H,EAAa97H,IAVR,sBAUkB07H,EAAW17H,ICVvCm7H,GAAc7+H,OAAOM,UAGrBQ,GAAiB+9H,GAAY/9H,eAG7BmB,GAAuB48H,GAAY58H,qBAyBxB6gI,GALGD,GAAgB,WAAa,OAAOlhI,UAApB,IAAsCkhI,GAAkB,SAASn/H,GACjG,OAAO87H,EAAa97H,IAAU5C,GAAeC,KAAK2C,EAAO,YACtDzB,GAAqBlB,KAAK2C,EAAO,WCPvBgG,GAFD9I,MAAM8I,Q,UCnBhBq5H,GAAW,mBAoBAC,OAVf,SAAiBt/H,EAAO/D,GACtB,IAAIkM,SAAcnI,EAGlB,SAFA/D,EAAmB,MAAVA,EAfY,iBAewBA,KAGlC,UAARkM,GACU,UAARA,GAAoBk3H,GAASr/B,KAAKhgG,KAChCA,GAAS,GAAKA,EAAQ,GAAK,GAAKA,EAAQ/D,GCalCsjI,OALf,SAAkBv/H,GAChB,MAAuB,iBAATA,GACZA,GAAS,GAAKA,EAAQ,GAAK,GAAKA,GA9Bb,kBC+BnBw/H,GAAiB,GACrBA,GAZiB,yBAYYA,GAXZ,yBAYjBA,GAXc,sBAWYA,GAVX,uBAWfA,GAVe,uBAUYA,GATZ,uBAUfA,GATsB,8BASYA,GARlB,wBAShBA,GARgB,yBAQY,EAC5BA,GAjCc,sBAiCYA,GAhCX,kBAiCfA,GApBqB,wBAoBYA,GAhCnB,oBAiCdA,GApBkB,qBAoBYA,GAhChB,iBAiCdA,GAhCe,kBAgCYA,GA/Bb,qBAgCdA,GA/Ba,gBA+BYA,GA9BT,mBA+BhBA,GA9BgB,mBA8BYA,GA7BZ,mBA8BhBA,GA7Ba,gBA6BYA,GA5BT,mBA6BhBA,GA5BiB,qBA4BY,EAcdC,OALf,SAA0Bz/H,GACxB,OAAO87H,EAAa97H,IAClBu/H,GAASv/H,EAAM/D,WAAaujI,GAAe9D,EAAW17H,KC3C3C0/H,OANf,SAAmB9D,GACjB,OAAO,SAAS57H,GACd,OAAO47H,EAAK57H,K,SCJZ2/H,GAAmB/Y,MAAYA,KAASgZ,aAqB7BA,GAFID,GAAmBD,GAAUC,IAAoBF,GCbhEriI,GAHcd,OAAOM,UAGQQ,eAqClByiI,OA3Bf,SAAuB7/H,EAAO8/H,GAC5B,IAAIC,EAAQ/5H,GAAQhG,GAChBggI,GAASD,GAASX,GAAYp/H,GAC9BigI,GAAUF,IAAUC,GAAShoB,aAASh4G,GACtCoxG,GAAU2uB,IAAUC,IAAUC,GAAUL,GAAa5/H,GACrDkgI,EAAcH,GAASC,GAASC,GAAU7uB,EAC1ChxG,EAAS8/H,EAAchB,GAAUl/H,EAAM/D,OAAQsB,QAAU,GACzDtB,EAASmE,EAAOnE,OAEpB,IAAK,IAAIO,KAAOwD,GACT8/H,IAAa1iI,GAAeC,KAAK2C,EAAOxD,IACvC0jI,IAEQ,UAAP1jI,GAECyjI,IAAkB,UAAPzjI,GAA0B,UAAPA,IAE9B40G,IAAkB,UAAP50G,GAA0B,cAAPA,GAA8B,cAAPA,IAEtD8iI,GAAQ9iI,EAAKP,KAElBmE,EAAOmB,KAAK/E,GAGhB,OAAO4D,GC5CL+6H,GAAc7+H,OAAOM,UAgBVujI,OAPf,SAAqBngI,GACnB,IAAIk8H,EAAOl8H,GAASA,EAAMtC,YAG1B,OAAOsC,KAFqB,mBAARk8H,GAAsBA,EAAKt/H,WAAcu+H,KCPhDiF,GAFEzE,EAAQr/H,OAAOqL,KAAMrL,QCIlCc,GAHcd,OAAOM,UAGQQ,eAsBlBijI,OAbf,SAAkBj2H,GAChB,IAAK+1H,GAAY/1H,GACf,OAAOg2H,GAAWh2H,GAEpB,IAAIhK,EAAS,GACb,IAAK,IAAI5D,KAAOF,OAAO8N,GACjBhN,GAAeC,KAAK+M,EAAQ5N,IAAe,eAAPA,GACtC4D,EAAOmB,KAAK/E,GAGhB,OAAO4D,GCMMkgI,OAJf,SAAqBtgI,GACnB,OAAgB,MAATA,GAAiBu/H,GAASv/H,EAAM/D,UAAY2sB,EAAW5oB,ICOjD2H,OAJf,SAAcyC,GACZ,OAAOk2H,GAAYl2H,GAAUy1H,GAAcz1H,GAAUi2H,GAASj2H,ICjBjDm2H,OAJf,SAAoBn2H,EAAQM,GAC1B,OAAON,GAAU00H,GAAWp0H,EAAQ/C,GAAK+C,GAASN,ICMrCo2H,OAVf,SAAsBp2H,GACpB,IAAIhK,EAAS,GACb,GAAc,MAAVgK,EACF,IAAK,IAAI5N,KAAOF,OAAO8N,GACrBhK,EAAOmB,KAAK/E,GAGhB,OAAO4D,GCRLhD,GAHcd,OAAOM,UAGQQ,eAwBlBqjI,OAff,SAAoBr2H,GAClB,IAAKic,EAASjc,GACZ,OAAOo2H,GAAap2H,GAEtB,IAAIs2H,EAAUP,GAAY/1H,GACtBhK,EAAS,GAEb,IAAK,IAAI5D,KAAO4N,GACD,eAAP5N,IAAyBkkI,GAAYtjI,GAAeC,KAAK+M,EAAQ5N,KACrE4D,EAAOmB,KAAK/E,GAGhB,OAAO4D,GCEMugI,OAJf,SAAgBv2H,GACd,OAAOk2H,GAAYl2H,GAAUy1H,GAAcz1H,GAAQ,GAAQq2H,GAAWr2H,ICZzDw2H,OAJf,SAAsBx2H,EAAQM,GAC5B,OAAON,GAAU00H,GAAWp0H,EAAQi2H,GAAOj2H,GAASN,I,UCMvCy2H,OAXf,SAAmBn2H,EAAQ0f,GACzB,IAAItZ,GAAS,EACT7U,EAASyO,EAAOzO,OAGpB,IADAmuB,IAAUA,EAAQltB,MAAMjB,MACf6U,EAAQ7U,GACfmuB,EAAMtZ,GAASpG,EAAOoG,GAExB,OAAOsZ,GCQM02G,OAff,SAAqB12G,EAAO22G,GAM1B,IALA,IAAIjwH,GAAS,EACT7U,EAAkB,MAATmuB,EAAgB,EAAIA,EAAMnuB,OACnC+kI,EAAW,EACX5gI,EAAS,KAEJ0Q,EAAQ7U,GAAQ,CACvB,IAAI+D,EAAQoqB,EAAMtZ,GACdiwH,EAAU/gI,EAAO8Q,EAAOsZ,KAC1BhqB,EAAO4gI,KAAchhI,GAGzB,OAAOI,GCCM6gI,OAJf,WACE,MAAO,ICZL1iI,GAHcjC,OAAOM,UAGc2B,qBAGnC2iI,GAAmB5kI,OAAOgC,sBAmBf6iI,GAVGD,GAA+B,SAAS92H,GACxD,OAAc,MAAVA,EACK,IAETA,EAAS9N,OAAO8N,GACT02H,GAAYI,GAAiB92H,IAAS,SAASmoH,GACpD,OAAOh0H,GAAqBlB,KAAK+M,EAAQmoH,QANR0O,GCJtBG,OAJf,SAAqB12H,EAAQN,GAC3B,OAAO00H,GAAWp0H,EAAQy2H,GAAWz2H,GAASN,ICOjCi3H,OAXf,SAAmBj3G,EAAOxZ,GAKxB,IAJA,IAAIE,GAAS,EACT7U,EAAS2U,EAAO3U,OAChBwuD,EAASrgC,EAAMnuB,SAEV6U,EAAQ7U,GACfmuB,EAAMqgC,EAAS35C,GAASF,EAAOE,GAEjC,OAAOsZ,GCQMk3G,GAlBQhlI,OAAOgC,sBASqB,SAAS8L,GAE1D,IADA,IAAIhK,EAAS,GACNgK,GACLi3H,GAAUjhI,EAAQ+gI,GAAW/2H,IAC7BA,EAASyxH,EAAazxH,GAExB,OAAOhK,GAN8B6gI,GCAxBM,OAJf,SAAuB72H,EAAQN,GAC7B,OAAO00H,GAAWp0H,EAAQ42H,GAAa52H,GAASN,ICOnCo3H,OALf,SAAwBp3H,EAAQq3H,EAAUC,GACxC,IAAIthI,EAASqhI,EAASr3H,GACtB,OAAOpE,GAAQoE,GAAUhK,EAASihI,GAAUjhI,EAAQshI,EAAYt3H,KCDnDu3H,OAJf,SAAoBv3H,GAClB,OAAOo3H,GAAep3H,EAAQzC,GAAMw5H,KCIvBS,OAJf,SAAsBx3H,GACpB,OAAOo3H,GAAep3H,EAAQu2H,GAAQW,KCPzBO,GAFAvE,GAAUz/F,IAAM,YCEhBj+B,GAFD09H,GAAUz/F,IAAM,WCEf6K,GAFL40F,GAAUz/F,IAAM,OCEXmpD,GAFDs2C,GAAUz/F,IAAM,WCK1BikG,GAAS,eAETC,GAAa,mBACbC,GAAS,eACTC,GAAa,mBAEbC,GAAc,oBAGdC,GAAqBhF,EAAS0E,IAC9BO,GAAgBjF,EAAS7jH,IACzB+oH,GAAoBlF,EAASv9H,IAC7B0iI,GAAgBnF,EAASz0F,IACzB65F,GAAoBpF,EAASn2C,IAS7Bw7C,GAAS9G,GAGRmG,IAAYW,GAAO,IAAIX,GAAS,IAAIzpB,YAAY,MAAQ8pB,IACxD5oH,IAAOkpH,GAAO,IAAIlpH,KAAQwoH,IAC1BliI,IAAW4iI,GAAO5iI,GAAQC,YAAckiI,IACxCr5F,IAAO85F,GAAO,IAAI95F,KAAQs5F,IAC1Bh7C,IAAWw7C,GAAO,IAAIx7C,KAAYi7C,MACrCO,GAAS,SAASxiI,GAChB,IAAII,EAASs7H,EAAW17H,GACpBk8H,EA/BQ,mBA+BD97H,EAAsBJ,EAAMtC,iBAAcmE,EACjD4gI,EAAavG,EAAOiB,EAASjB,GAAQ,GAEzC,GAAIuG,EACF,OAAQA,GACN,KAAKN,GAAoB,OAAOD,GAChC,KAAKE,GAAe,OAAON,GAC3B,KAAKO,GAAmB,OAAON,GAC/B,KAAKO,GAAe,OAAON,GAC3B,KAAKO,GAAmB,OAAON,GAGnC,OAAO7hI,IAIIoiI,UCrDXplI,GAHcd,OAAOM,UAGQQ,eAqBlBslI,OAZf,SAAwBt4G,GACtB,IAAInuB,EAASmuB,EAAMnuB,OACfmE,EAAS,IAAIgqB,EAAM1sB,YAAYzB,GAOnC,OAJIA,GAA6B,iBAAZmuB,EAAM,IAAkBhtB,GAAeC,KAAK+sB,EAAO,WACtEhqB,EAAO0Q,MAAQsZ,EAAMtZ,MACrB1Q,EAAOmkB,MAAQ6F,EAAM7F,OAEhBnkB,GCjBMuiI,GAFE9kG,IAAK8kG,WCYPC,OANf,SAA0BC,GACxB,IAAIziI,EAAS,IAAIyiI,EAAYnlI,YAAYmlI,EAAYC,YAErD,OADA,IAAIH,GAAWviI,GAAQsE,IAAI,IAAIi+H,GAAWE,IACnCziI,GCGM2iI,OALf,SAAuBC,EAAUC,GAC/B,IAAI3qB,EAAS2qB,EAASL,GAAiBI,EAAS1qB,QAAU0qB,EAAS1qB,OACnE,OAAO,IAAI0qB,EAAStlI,YAAY46G,EAAQ0qB,EAASE,WAAYF,EAASF,aCXpEK,GAAU,OAeCC,OANf,SAAqB1yH,GACnB,IAAItQ,EAAS,IAAIsQ,EAAOhT,YAAYgT,EAAOhG,OAAQy4H,GAAQxyH,KAAKD,IAEhE,OADAtQ,EAAO0+E,UAAYpuE,EAAOouE,UACnB1+E,GCVLijI,GAAcniI,EAASA,EAAOtE,eAAYiF,EAC1CyhI,GAAgBD,GAAcA,GAAYxwB,aAAUhxG,EAazC0hI,OAJf,SAAqBhR,GACnB,OAAO+Q,GAAgBhnI,OAAOgnI,GAAcjmI,KAAKk1H,IAAW,ICC/CiR,OALf,SAAyBC,EAAYR,GACnC,IAAI3qB,EAAS2qB,EAASL,GAAiBa,EAAWnrB,QAAUmrB,EAAWnrB,OACvE,OAAO,IAAImrB,EAAW/lI,YAAY46G,EAAQmrB,EAAWP,WAAYO,EAAWxnI,SCgE/DynI,OApCf,SAAwBt5H,EAAQi0F,EAAK4kC,GACnC,IAAI/G,EAAO9xH,EAAO1M,YAClB,OAAQ2gG,GACN,IA3BiB,uBA4Bf,OAAOukC,GAAiBx4H,GAE1B,IAvCU,mBAwCV,IAvCU,gBAwCR,OAAO,IAAI8xH,GAAM9xH,GAEnB,IAjCc,oBAkCZ,OAAO24H,GAAc34H,EAAQ64H,GAE/B,IAnCa,wBAmCI,IAlCJ,wBAmCb,IAlCU,qBAkCI,IAjCH,sBAiCkB,IAhClB,sBAiCX,IAhCW,sBAgCI,IA/BG,6BA+BmB,IA9BzB,uBA8ByC,IA7BzC,uBA8BV,OAAOO,GAAgBp5H,EAAQ64H,GAEjC,IAjDS,eAkDP,OAAO,IAAI/G,EAEb,IAnDY,kBAoDZ,IAjDY,kBAkDV,OAAO,IAAIA,EAAK9xH,GAElB,IAtDY,kBAuDV,OAAOg5H,GAAYh5H,GAErB,IAxDS,eAyDP,OAAO,IAAI8xH,EAEb,IAzDY,kBA0DV,OAAOqH,GAAYn5H,KCrErBu5H,GAAernI,OAAOqB,OA0BXimI,GAhBG,WAChB,SAASx5H,KACT,OAAO,SAAS0xB,GACd,IAAKzV,EAASyV,GACZ,MAAO,GAET,GAAI6nG,GACF,OAAOA,GAAa7nG,GAEtB1xB,EAAOxN,UAAYk/B,EACnB,IAAI17B,EAAS,IAAIgK,EAEjB,OADAA,EAAOxN,eAAYiF,EACZzB,GAZO,GCIHyjI,OANf,SAAyBz5H,GACvB,MAAqC,mBAAtBA,EAAO1M,aAA8ByiI,GAAY/1H,GAE5D,GADAw5H,GAAW/H,EAAazxH,KCIf05H,OAJf,SAAmB9jI,GACjB,OAAO87H,EAAa97H,IAVT,gBAUmBwiI,GAAOxiI,ICTnC+jI,GAAYnd,MAAYA,KAASod,MAqBtBA,GAFHD,GAAYrE,GAAUqE,IAAaD,GCPhCG,OAJf,SAAmBjkI,GACjB,OAAO87H,EAAa97H,IAVT,gBAUmBwiI,GAAOxiI,ICTnCkkI,GAAYtd,MAAYA,KAASud,MAqBtBA,GAFHD,GAAYxE,GAAUwE,IAAaD,GCK3CG,GAAU,qBAKVC,GAAU,oBAIVC,GAAY,kBAoBZC,GAAgB,GACpBA,GAAcH,IAAWG,GA7BV,kBA8BfA,GAfqB,wBAeWA,GAdd,qBAelBA,GA9Bc,oBA8BWA,GA7BX,iBA8BdA,GAfiB,yBAeWA,GAdX,yBAejBA,GAdc,sBAcWA,GAbV,uBAcfA,GAbe,uBAaWA,GA5Bb,gBA6BbA,GA5BgB,mBA4BWA,GAAcD,mBACzCC,GA3BgB,mBA2BWA,GA1Bd,gBA2BbA,GA1BgB,mBA0BWA,GAzBX,mBA0BhBA,GAhBe,uBAgBWA,GAfJ,8BAgBtBA,GAfgB,wBAeWA,GAdX,yBAcsC,EACtDA,GArCe,kBAqCWA,GAAcF,IACxCE,GA5BiB,qBA4BW,EA8Fbt6B,OA5Ef,SAASA,EAAUjqG,EAAOwkI,EAASzF,EAAYviI,EAAK4N,EAAQgB,GAC1D,IAAIhL,EACA6iI,EAnEgB,EAmEPuB,EACTC,EAnEgB,EAmEPD,EACTE,EAnEmB,EAmEVF,EAKb,GAHIzF,IACF3+H,EAASgK,EAAS20H,EAAW/+H,EAAOxD,EAAK4N,EAAQgB,GAAS2zH,EAAW/+H,SAExD6B,IAAXzB,EACF,OAAOA,EAET,IAAKimB,EAASrmB,GACZ,OAAOA,EAET,IAAI+/H,EAAQ/5H,GAAQhG,GACpB,GAAI+/H,GAEF,GADA3/H,EAASsiI,GAAe1iI,IACnBijI,EACH,OAAOpC,GAAU7gI,EAAOI,OAErB,CACL,IAAIi+F,EAAMmkC,GAAOxiI,GACb2kI,EAAStmC,GAAOgmC,IA7EX,8BA6EsBhmC,EAE/B,GAAI2Z,aAASh4G,GACX,OAAO4kI,aAAY5kI,EAAOijI,GAE5B,GAAI5kC,GAAOimC,IAAajmC,GAAO+lC,IAAYO,IAAWv6H,GAEpD,GADAhK,EAAUqkI,GAAUE,EAAU,GAAKd,GAAgB7jI,IAC9CijI,EACH,OAAOwB,EACHlD,GAAcvhI,EAAO4gI,GAAaxgI,EAAQJ,IAC1CohI,GAAYphI,EAAOugI,GAAWngI,EAAQJ,QAEvC,CACL,IAAKukI,GAAclmC,GACjB,OAAOj0F,EAASpK,EAAQ,GAE1BI,EAASsjI,GAAe1jI,EAAOq+F,EAAK4kC,IAIxC73H,IAAUA,EAAQ,IAAIqzH,IACtB,IAAIviF,EAAU9wC,EAAMtJ,IAAI9B,GACxB,GAAIk8C,EACF,OAAOA,EAET9wC,EAAM1G,IAAI1E,EAAOI,GAEb+jI,GAAMnkI,GACRA,EAAM2K,SAAQ,SAASk6H,GACrBzkI,EAAOuoC,IAAIshE,EAAU46B,EAAUL,EAASzF,EAAY8F,EAAU7kI,EAAOoL,OAE9D44H,GAAMhkI,IACfA,EAAM2K,SAAQ,SAASk6H,EAAUroI,GAC/B4D,EAAOsE,IAAIlI,EAAKytG,EAAU46B,EAAUL,EAASzF,EAAYviI,EAAKwD,EAAOoL,OAIzE,IAIIrP,EAAQgkI,OAAQl+H,GAJL6iI,EACVD,EAAS7C,GAAeD,GACxB8C,EAAS9D,GAASh5H,IAEkB3H,GASzC,OARA0+H,GAAU3iI,GAASiE,GAAO,SAAS6kI,EAAUroI,GACvCT,IAEF8oI,EAAW7kI,EADXxD,EAAMqoI,IAIR3rB,GAAY94G,EAAQ5D,EAAKytG,EAAU46B,EAAUL,EAASzF,EAAYviI,EAAKwD,EAAOoL,OAEzEhL,GC/HMy7B,OAJf,SAAe77B,GACb,OAAOiqG,GAAUjqG,EA7BM,ICiBV8kI,OAXf,SAAkB16G,EAAOu0G,GAKvB,IAJA,IAAI7tH,GAAS,EACT7U,EAAkB,MAATmuB,EAAgB,EAAIA,EAAMnuB,OACnCmE,EAASlD,MAAMjB,KAEV6U,EAAQ7U,GACfmE,EAAO0Q,GAAS6tH,EAASv0G,EAAMtZ,GAAQA,EAAOsZ,GAEhD,OAAOhqB,GCWM2kI,OALf,SAAkB/kI,GAChB,MAAuB,iBAATA,GACX87H,EAAa97H,IArBF,mBAqBY07H,EAAW17H,ICwBvC,SAAS+5F,GAAQ6hC,EAAMt3G,GACrB,GAAmB,mBAARs3G,GAAmC,MAAZt3G,GAAuC,mBAAZA,EAC3D,MAAM,IAAI1oB,UAhDQ,uBAkDpB,IAAIopI,EAAW,SAAXA,IACF,IAAIhrH,EAAO/b,UACPzB,EAAM8nB,EAAWA,EAASpmB,MAAMT,KAAMuc,GAAQA,EAAK,GACnD7K,EAAQ61H,EAAS71H,MAErB,GAAIA,EAAM3K,IAAIhI,GACZ,OAAO2S,EAAMrN,IAAItF,GAEnB,IAAI4D,EAASw7H,EAAK19H,MAAMT,KAAMuc,GAE9B,OADAgrH,EAAS71H,MAAQA,EAAMzK,IAAIlI,EAAK4D,IAAW+O,EACpC/O,GAGT,OADA4kI,EAAS71H,MAAQ,IAAK4qF,GAAQ8tB,OAASwW,IAChC2G,EAITjrC,GAAQ8tB,MAAQwW,GAEDtkC,UC/CAkrC,ICtBXC,GAAa,mGAGbC,GAAe,WAoBJC,GDbf,SAAuBxJ,GACrB,IAAIx7H,EAAS25F,GAAQ6hC,GAAM,SAASp/H,GAIlC,OAfmB,MAYf2S,EAAM2U,MACR3U,EAAMq+D,QAEDhxE,KAGL2S,EAAQ/O,EAAO+O,MACnB,OAAO/O,ECPU6kI,EAAc,SAASnkG,GACxC,IAAI1gC,EAAS,GAOb,OAN6B,KAAzB0gC,EAAOyhE,WAAW,IACpBniG,EAAOmB,KAAK,IAEdu/B,EAAOhxB,QAAQo1H,IAAY,SAASz2H,EAAOkqC,EAAQ0sF,EAAOC,GACxDllI,EAAOmB,KAAK8jI,EAAQC,EAAUx1H,QAAQq1H,GAAc,MAASxsF,GAAUlqC,MAElErO,KCHMmlI,OARf,SAAevlI,GACb,GAAoB,iBAATA,GAAqB+kI,GAAS/kI,GACvC,OAAOA,EAET,IAAII,EAAUJ,EAAQ,GACtB,MAAkB,KAAVI,GAAkB,EAAIJ,IAdjB,SAcwC,KAAOI,GCR1DijI,GAAcniI,EAASA,EAAOtE,eAAYiF,EAC1C4oG,GAAiB44B,GAAcA,GAAY3/G,cAAW7hB,EA0B3C2jI,OAhBf,SAASA,EAAaxlI,GAEpB,GAAoB,iBAATA,EACT,OAAOA,EAET,GAAIgG,GAAQhG,GAEV,OAAO8kI,GAAS9kI,EAAOwlI,GAAgB,GAEzC,GAAIT,GAAS/kI,GACX,OAAOyqG,GAAiBA,GAAeptG,KAAK2C,GAAS,GAEvD,IAAII,EAAUJ,EAAQ,GACtB,MAAkB,KAAVI,GAAkB,EAAIJ,IA3BjB,SA2BwC,KAAOI,GCN/CsjB,OAJf,SAAkB1jB,GAChB,OAAgB,MAATA,EAAgB,GAAKwlI,GAAaxlI,ICQ5BylI,OAPf,SAAgBzlI,GACd,OAAIgG,GAAQhG,GACH8kI,GAAS9kI,EAAOulI,IAElBR,GAAS/kI,GAAS,CAACA,GAAS6gI,GAAUuE,GAAa1hH,GAAS1jB,M,6BCDtD6wG,OAJf,SAAmB7wG,GACjB,OAAOiqG,GAAUjqG,EAAO0lI,I,wjBClBbC,GAAe,SAAC3lI,GAAD,OAC1B9C,MAAM8I,QAAQhG,IAA2B,IAAjBA,EAAM/D,QAGnB2sB,GAAa,SAAC3f,GAAD,MACT,oBAARA,GAGIod,GAAW,SAACpd,GAAD,OACd,OAARA,GAA+B,kBAARA,GAGZ0qG,GAAY,SAAC1qG,GAAD,OACvB1L,OAAOuJ,KAAKC,MAAMwf,OAAOtd,OAAWA,GAGzBsvG,GAAW,SAACtvG,GAAD,MACkB,oBAAxC3M,OAAOM,UAAU8mB,SAASrmB,KAAK4L,IAOpB28H,GAAkB,SAACj3H,GAAD,OACM,IAAnCL,WAAeuM,MAAMlM,IAGVk3H,GAAY,SAAC7lI,GAAD,OACvBqmB,GAASrmB,IAAU4oB,GAAW5oB,EAAMM,O,SAgCtByuG,GACd9lG,EACAzM,EACAq1G,EACA10G,kBAAY,GAGZ,IADA,IAAM4Q,EAAO03H,GAAOjpI,GACbyM,GAAO9L,EAAI4Q,EAAK9R,QACrBgN,EAAMA,EAAI8E,EAAK5Q,MAEjB,YAAe0E,IAARoH,EAAoB4oG,EAAM5oG,E,SA2BnB68H,GAAM78H,EAAU8E,EAAc/N,GAM5C,IALA,IAAI45C,EAAW/d,GAAM5yB,GACjB88H,EAAcnsF,EACd59C,EAAI,EACJgqI,EAAYP,GAAO13H,GAEhB/R,EAAIgqI,EAAU/pI,OAAS,EAAGD,IAAK,CACpC,IAAMiqI,EAAsBD,EAAUhqI,GAClCkqI,EAAkBn3B,GAAM9lG,EAAK+8H,EAAUhjI,MAAM,EAAGhH,EAAI,IAExD,GAAIkqI,IAAe7/G,GAAS6/G,IAAehpI,MAAM8I,QAAQkgI,IACvDH,EAASA,EAAOE,GAAepqG,GAAMqqG,OAChC,CACL,IAAMC,EAAmBH,EAAUhqI,EAAI,GACvC+pI,EAASA,EAAOE,GACdtyB,GAAUwyB,IAAa5/G,OAAO4/G,IAAa,EAAI,GAAK,IAK1D,OAAW,IAANnqI,EAAUiN,EAAM88H,GAAQC,EAAUhqI,MAAQgE,EACtCiJ,QAGKpH,IAAV7B,SACK+lI,EAAOC,EAAUhqI,IAExB+pI,EAAOC,EAAUhqI,IAAMgE,EAKf,IAANhE,QAAqB6F,IAAV7B,UACN45C,EAAIosF,EAAUhqI,IAGhB49C,G,SAUOwsF,GACdh8H,EACApK,EACAghF,EACAqlD,QADArlD,UAAe,IAAIgG,cACnBq/C,UAAgB,IAEhB,cAAc/pI,OAAOqL,KAAKyC,GAA1B,eAAmC,CAA9B,IAAIzI,EAAC,KACFo7B,EAAM3yB,EAAOzI,GACf0kB,GAAS0W,GACNikD,EAAQl/E,IAAIi7B,KACfikD,EAAQt8E,IAAIq4B,GAAK,GAIjBspG,EAAS1kI,GAAKzE,MAAM8I,QAAQ+2B,GAAO,GAAK,GACxCqpG,GAAsBrpG,EAAK/8B,EAAOghF,EAASqlD,EAAS1kI,KAGtD0kI,EAAS1kI,GAAK3B,EAIlB,OAAOqmI,E,ICzKIC,GAAgBh4H,6BAC3BzM,GAEFykI,GAAcp5H,YAAc,gBAE5B,IAAaq5H,GAAiBD,GAAc93H,SAC/Bg4H,GAAiBF,GAAc12H,SAE5C,SAAgB62H,KACd,IAAMC,EAASp4H,qBAA4Cg4H,IAO3D,OAJII,GADJ,cAAU,GAKHA,ECkCT,SAASC,GACPriI,EACAknG,GAEA,OAAQA,EAAIrjG,MACV,IAAK,aACH,OAAO,GAAP,GAAY7D,EAAZ,CAAmBsM,OAAQ46F,EAAIo7B,UACjC,IAAK,cACH,OAAO,GAAP,GAAYtiI,EAAZ,CAAmBuiI,QAASr7B,EAAIo7B,UAClC,IAAK,aACH,OAAIE,IAAQxiI,EAAMgpG,OAAQ9B,EAAIo7B,SACrBtiI,EAGF,GAAP,GAAYA,EAAZ,CAAmBgpG,OAAQ9B,EAAIo7B,UACjC,IAAK,aACH,OAAO,GAAP,GAAYtiI,EAAZ,CAAmByiI,OAAQv7B,EAAIo7B,UACjC,IAAK,mBACH,OAAO,GAAP,GAAYtiI,EAAZ,CAAmB0iI,aAAcx7B,EAAIo7B,UACvC,IAAK,mBACH,OAAO,GAAP,GAAYtiI,EAAZ,CAAmB2iI,aAAcz7B,EAAIo7B,UACvC,IAAK,kBACH,OAAO,GAAP,GACKtiI,EADL,CAEEsM,OAAQk1H,GAAMxhI,EAAMsM,OAAQ46F,EAAIo7B,QAAQp/H,MAAOgkG,EAAIo7B,QAAQ5mI,SAE/D,IAAK,oBACH,OAAO,GAAP,GACKsE,EADL,CAEEuiI,QAASf,GAAMxhI,EAAMuiI,QAASr7B,EAAIo7B,QAAQp/H,MAAOgkG,EAAIo7B,QAAQ5mI,SAEjE,IAAK,kBACH,OAAO,GAAP,GACKsE,EADL,CAEEgpG,OAAQw4B,GAAMxhI,EAAMgpG,OAAQ9B,EAAIo7B,QAAQp/H,MAAOgkG,EAAIo7B,QAAQ5mI,SAE/D,IAAK,aACH,OAAO,GAAP,GAAYsE,EAAUknG,EAAIo7B,SAC5B,IAAK,mBACH,OAAOp7B,EAAIo7B,QAAQtiI,GACrB,IAAK,iBACH,OAAO,GAAP,GACKA,EADL,CAEEuiI,QAAST,GACP9hI,EAAMsM,QACN,GAEFo2H,cAAc,EACdE,YAAa5iI,EAAM4iI,YAAc,IAErC,IAAK,iBAKL,IAAK,iBACH,OAAO,GAAP,GACK5iI,EADL,CAEE0iI,cAAc,IAElB,QACE,OAAO1iI,GAKb,IAAM6iI,GAAqC,GACrCC,GAAuC,GAU7C,SAAgBC,M,QACdC,4BAAmBA,GAAA,E,IACnBC,0BAAiBA,GAAA,E,IACjBC,2BAAkBA,GAAA,EAClBC,mB,IACAC,8BAAqBA,GAAA,EACrBC,aACGj0H,iHAEG3X,EAAQ,GAAH,CACTurI,mBACAC,iBACAC,kBACAG,YACGj0H,GAECk0H,EAAgBt5H,iBAAavS,EAAM6rI,eACnCC,EAAgBv5H,iBAAavS,EAAM8rI,eAAiBV,IACpDW,EAAiBx5H,iBAAavS,EAAM+rI,gBAAkBV,IACtDW,EAAgBz5H,iBAAavS,EAAMgsI,eACnCC,EAAY15H,kBAAsB,GAClC25H,EAAgB35H,iBAA4B,IAYlDA,qBAAgB,WAGd,OAFA05H,EAAUhwH,SAAU,EAEb,WACLgwH,EAAUhwH,SAAU,KAErB,I,MAEuB1J,qBAExBq4H,GAAe,CACf/1H,OAAQ7U,EAAM6rI,cACdt6B,OAAQvxG,EAAM8rI,eAAiBV,GAC/BN,QAAS9qI,EAAM+rI,gBAAkBV,GACjCL,OAAQhrI,EAAMgsI,cACdf,cAAc,EACdC,cAAc,EACdC,YAAa,IATR5iI,OAAO4jI,OAYRC,EAAqB75H,uBACzB,SAACsC,EAAgBpJ,GACf,OAAO,IAAI5H,SAAQ,SAACC,EAASC,GAC3B,IAAMsoI,EAAuBrsI,EAAMmyG,SAAiBt9F,EAAQpJ,GACjC,MAAvB4gI,EAEFvoI,EAAQsnI,IACCtB,GAAUuC,GAClBA,EAAqC9nI,MACpC,SAAAgtG,GACEztG,EAAQytG,GAAU65B,OAEpB,SAAAkB,GAQEvoI,EAAOuoI,MAIXxoI,EAAQuoI,QAId,CAACrsI,EAAMmyG,WAMHo6B,EAAsBh6H,uBAC1B,SAACsC,EAAgBpJ,GACf,IAAM+gI,EAAmBxsI,EAAMwsI,iBACzB57B,EAAS/jF,GAAW2/G,GACtBA,EAAiB/gI,GACjB+gI,EACEpkH,EACJ3c,GAASmlG,EAAO67B,WACZ77B,EAAO67B,WAAWhhI,EAAOoJ,GAs0BrC,SACEA,EACA+7F,EACAyB,EACAphG,QADAohG,WAAgB,QAChBphG,UAAe,IAEf,IAAMy7H,EAA6BC,GAAyB93H,GAC5D,OAAO+7F,EAAOyB,EAAO,eAAiB,YAAYq6B,EAAc,CAC9Dr4B,YAAY,EACZpjG,QAASA,IA90BD27H,CAAkB/3H,EAAQ+7F,GAChC,OAAO,IAAI/sG,SAAQ,SAACC,EAASC,GAC3BqkB,EAAQ7jB,MACN,WACET,EAAQsnI,OAEV,SAACxgI,GAKkB,oBAAbA,EAAIyB,KACNvI,EAuyBd,SAAwC+oI,GACtC,IAAIt7B,EAA+B,GACnC,GAAIs7B,EAAS1wD,MAAO,CAClB,GAA8B,IAA1B0wD,EAAS1wD,MAAMj8E,OACjB,OAAO6pI,GAAMx4B,EAAQs7B,EAAS76H,KAAM66H,EAASpgI,SAE1C,IAAL,EAAgBogI,EAAS1wD,MAAzB,wDAAgC,kCAAA2wD,aAAA,KAAAniI,YAAA,WAAAmiI,UAAA,IAAvBliI,EAAuB,EACzBooG,GAAMzB,EAAQ3mG,EAAIoH,QACrBu/F,EAASw4B,GAAMx4B,EAAQ3mG,EAAIoH,KAAMpH,EAAI6B,WAI3C,OAAO8kG,EAnzBaw7B,CAAgBniI,IAUxB7G,EAAO6G,WAMjB,CAAC5K,EAAMwsI,mBAGHQ,EAAgCz6H,uBACpC,SAAC9G,EAAexH,GACd,OAAO,IAAIJ,SAAQ,SAAAC,GAAO,OACxBA,EAAQooI,EAAcjwH,QAAQxQ,GAAO0mG,SAASluG,SAGlD,IAGIgpI,EAA2B16H,uBAC/B,SAACsC,GACC,IAAMq4H,EAAoC3sI,OAAOqL,KAC/CsgI,EAAcjwH,SACdzN,QAAO,SAAA9J,GAAC,OAAImoB,GAAWq/G,EAAcjwH,QAAQvX,GAAGytG,aAG5Cg7B,EACJD,EAAwBhtI,OAAS,EAC7BgtI,EAAwB3hI,KAAI,SAAA7G,GAAC,OAC3BsoI,EAA8BtoI,EAAGsuG,GAAMn+F,EAAQnQ,OAEjD,CAACb,QAAQC,QAAQ,oCAEvB,OAAOD,QAAQoI,IAAIkhI,GAAkB5oI,MAAK,SAAC6oI,GAAD,OACxCA,EAAgB3jI,QAAO,SAACipC,EAAM2W,EAAMt0C,GAClC,MAAa,oCAATs0C,GAGAA,IACF3W,EAAOq3F,GAAMr3F,EAAMw6F,EAAwBn4H,GAAQs0C,IAH5C3W,IAMR,SAGP,CAACs6F,IAIGK,EAAoB96H,uBACxB,SAACsC,GACC,OAAOhR,QAAQoI,IAAI,CACjBghI,EAAyBp4H,GACzB7U,EAAMwsI,iBAAmBD,EAAoB13H,GAAU,GACvD7U,EAAMmyG,SAAWi6B,EAAmBv3H,GAAU,KAC7CtQ,MAAK,Y,IAAE+oI,OAAaC,OAAcC,OAKnC,OAJuB3O,EAAU5yH,IAC/B,CAACqhI,EAAaC,EAAcC,GAC5B,CAAEzO,qBAKR,CACE/+H,EAAMmyG,SACNnyG,EAAMwsI,iBACNS,EACAb,EACAG,IAKEkB,EAA+BC,IACnC,SAAC74H,GAEC,YAFDA,UAAiBtM,EAAMsM,QACtBs3H,EAAS,CAAE//H,KAAM,mBAAoBy+H,SAAS,IACvCwC,EAAkBx4H,GAAQtQ,MAAK,SAAAopI,GAKpC,OAJM1B,EAAUhwH,UACdkwH,EAAS,CAAE//H,KAAM,mBAAoBy+H,SAAS,IAC9CsB,EAAS,CAAE//H,KAAM,aAAcy+H,QAAS8C,KAEnCA,QAKbp7H,qBAAgB,WAEZk5H,IACsB,IAAtBQ,EAAUhwH,SACV8uH,IAAQc,EAAc5vH,QAASjc,EAAM6rI,gBAErC4B,EAA6B5B,EAAc5vH,WAE5C,CAACwvH,EAAiBgC,IAErB,IAAMG,EAAYr7H,uBAChB,SAAC4uG,GACC,IAAMtsG,EACJssG,GAAaA,EAAUtsG,OACnBssG,EAAUtsG,OACVg3H,EAAc5vH,QACds1F,EACJ4P,GAAaA,EAAU5P,OACnB4P,EAAU5P,OACVu6B,EAAc7vH,QACd6vH,EAAc7vH,QACdjc,EAAM8rI,eAAiB,GACvBhB,EACJ3pB,GAAaA,EAAU2pB,QACnB3pB,EAAU2pB,QACViB,EAAe9vH,QACf8vH,EAAe9vH,QACfjc,EAAM+rI,gBAAkB,GACxBf,EACJ7pB,GAAaA,EAAU6pB,OACnB7pB,EAAU6pB,OACVgB,EAAc/vH,QACd+vH,EAAc/vH,QACdjc,EAAMgsI,cACZH,EAAc5vH,QAAUpH,EACxBi3H,EAAc7vH,QAAUs1F,EACxBw6B,EAAe9vH,QAAU6uH,EACzBkB,EAAc/vH,QAAU+uH,EAExB,IAAM6C,EAAa,WACjB1B,EAAS,CACP//H,KAAM,aACNy+H,QAAS,CACPI,eAAgB9pB,KAAeA,EAAU8pB,aACzC15B,SACAu5B,UACAE,SACAn2H,SACAq2H,eAAgB/pB,KAAeA,EAAU+pB,aACzCC,YACIhqB,GACAA,EAAUgqB,aACqB,kBAA1BhqB,EAAUgqB,YACbhqB,EAAUgqB,YACV,MAKZ,GAAInrI,EAAM8tI,QAAS,CACjB,IAAMC,EAAwB/tI,EAAM8tI,QAClCvlI,EAAMsM,OACNm5H,GAGElE,GAAUiE,GACXA,EAAsCxpI,KAAKspI,GAE5CA,SAGFA,MAGJ,CAAC7tI,EAAM8rI,cAAe9rI,EAAMgsI,cAAehsI,EAAM+rI,iBAGnDx5H,qBAAgB,YAEU,IAAtB05H,EAAUhwH,SACT8uH,IAAQc,EAAc5vH,QAASjc,EAAM6rI,iBAElCF,IACFE,EAAc5vH,QAAUjc,EAAM6rI,cAC9B+B,KAGEnC,GACFgC,EAA6B5B,EAAc5vH,YAG9C,CACD0vH,EACA3rI,EAAM6rI,cACN+B,EACAnC,EACAgC,IAGFl7H,qBAAgB,WAEZo5H,IACsB,IAAtBM,EAAUhwH,UACT8uH,IAAQe,EAAc7vH,QAASjc,EAAM8rI,iBAEtCA,EAAc7vH,QAAUjc,EAAM8rI,eAAiBV,GAC/Ce,EAAS,CACP//H,KAAM,aACNy+H,QAAS7qI,EAAM8rI,eAAiBV,QAGnC,CAACO,EAAoB3rI,EAAM8rI,gBAE9Bv5H,qBAAgB,WAEZo5H,IACsB,IAAtBM,EAAUhwH,UACT8uH,IAAQgB,EAAe9vH,QAASjc,EAAM+rI,kBAEvCA,EAAe9vH,QAAUjc,EAAM+rI,gBAAkBV,GACjDc,EAAS,CACP//H,KAAM,cACNy+H,QAAS7qI,EAAM+rI,gBAAkBV,QAGpC,CAACM,EAAoB3rI,EAAM+rI,iBAE9Bx5H,qBAAgB,WAEZo5H,IACsB,IAAtBM,EAAUhwH,UACT8uH,IAAQiB,EAAc/vH,QAASjc,EAAMgsI,iBAEtCA,EAAc/vH,QAAUjc,EAAMgsI,cAC9BG,EAAS,CACP//H,KAAM,aACNy+H,QAAS7qI,EAAMgsI,mBAGlB,CAACL,EAAoB3rI,EAAMgsI,cAAehsI,EAAM+rI,iBAEnD,IAAMkC,EAAgBP,IAAiB,SAACrhI,GAKtC,GACE6/H,EAAcjwH,QAAQ5P,IACtBwgB,GAAWq/G,EAAcjwH,QAAQ5P,GAAM8lG,UACvC,CACA,IAAMluG,EAAQ+uG,GAAMzqG,EAAMsM,OAAQxI,GAC5B6hI,EAAehC,EAAcjwH,QAAQ5P,GAAM8lG,SAASluG,GAC1D,OAAI6lI,GAAUoE,IAEZ/B,EAAS,CAAE//H,KAAM,mBAAoBy+H,SAAS,IACvCqD,EACJ3pI,MAAK,SAAC4F,GAAD,OAAYA,KACjB5F,MAAK,SAAC6B,GACL+lI,EAAS,CACP//H,KAAM,kBACNy+H,QAAS,CAAEp/H,MAAOY,EAAMpI,MAAOmC,KAEjC+lI,EAAS,CAAE//H,KAAM,mBAAoBy+H,SAAS,SAGlDsB,EAAS,CACP//H,KAAM,kBACNy+H,QAAS,CACPp/H,MAAOY,EACPpI,MAAOiqI,KAGJrqI,QAAQC,QAAQoqI,IAEpB,OAAIluI,EAAMwsI,kBACfL,EAAS,CAAE//H,KAAM,mBAAoBy+H,SAAS,IACvC0B,EAAoBhkI,EAAMsM,OAAQxI,GACtC9H,MAAK,SAAC4F,GAAD,OAAYA,KACjB5F,MAAK,SAAC6B,GACL+lI,EAAS,CACP//H,KAAM,kBACNy+H,QAAS,CAAEp/H,MAAOY,EAAMpI,MAAOmC,EAAMiG,MAEvC8/H,EAAS,CAAE//H,KAAM,mBAAoBy+H,SAAS,QAI7ChnI,QAAQC,aAGXqqI,EAAgB57H,uBAAkB,SAAClG,EAAD,G,IAAiB8lG,aACvD+5B,EAAcjwH,QAAQ5P,GAAQ,CAC5B8lG,cAED,IAEGi8B,EAAkB77H,uBAAkB,SAAClG,UAClC6/H,EAAcjwH,QAAQ5P,KAC5B,IAEGgiI,EAAaX,IACjB,SAAC5C,EAAgCwD,GAI/B,OAHAnC,EAAS,CAAE//H,KAAM,cAAey+H,QAASC,UAEpBhlI,IAAnBwoI,EAA+B9C,EAAiB8C,GAE9Cb,EAA6BllI,EAAMsM,QACnChR,QAAQC,aAIVyqI,EAAYh8H,uBAAkB,SAACg/F,GACnC46B,EAAS,CAAE//H,KAAM,aAAcy+H,QAASt5B,MACvC,IAEGi9B,EAAYd,IAChB,SAAC74H,EAAsCy5H,GACrC,IAAMG,EAAiB5hH,GAAWhY,GAAUA,EAAOtM,EAAMsM,QAAUA,EAKnE,OAHAs3H,EAAS,CAAE//H,KAAM,aAAcy+H,QAAS4D,UAEnB3oI,IAAnBwoI,EAA+B/C,EAAmB+C,GAEhDb,EAA6BgB,GAC7B5qI,QAAQC,aAIV4qI,EAAgBn8H,uBACpB,SAAC9G,EAAexH,GACdkoI,EAAS,CACP//H,KAAM,kBACNy+H,QAAS,CAAEp/H,QAAOxH,aAGtB,IAGI0qI,EAAgBjB,IACpB,SAACjiI,EAAexH,EAAYqqI,GAU1B,OATAnC,EAAS,CACP//H,KAAM,kBACNy+H,QAAS,CACPp/H,QACAxH,iBAIiB6B,IAAnBwoI,EAA+B/C,EAAmB+C,GAEhDb,EAA6B1D,GAAMxhI,EAAMsM,OAAQpJ,EAAOxH,IACxDJ,QAAQC,aAIV8qI,EAAgBr8H,uBACpB,SAACs8H,EAAmDC,GAIlD,IAEI/tF,EAFAt1C,EAAQqjI,EACR9tG,EAAM6tG,EAIV,IAAKryB,GAASqyB,GAAmB,CAG1BA,EAAyBE,SAC3BF,EAA4CE,UAE/C,IAAMhvI,EAAS8uI,EAAiB9uI,OAC3B8uI,EAA4C9uI,OAC5C8uI,EAA4CG,cAG/C5iI,EAQErM,EARFqM,KACAC,EAOEtM,EAPFsM,KACA2D,EAMEjQ,EANFiQ,GACA/L,EAKElE,EALFkE,MACAgrI,EAIElvI,EAJFkvI,QAEA76H,GAEErU,EAHFmvI,UAGEnvI,EAFFqU,SACA+6H,EACEpvI,EADFovI,SAGF1jI,EAAQqjI,IAAwBziI,GAAc2D,GAQ9CgxB,EAAM,eAAeijE,KAAK73F,IACpB20C,EAAS/1B,WAAW/mB,GAASuV,MAAMunC,GAAU,GAAKA,GACpD,WAAWkjD,KAAK73F,GA0f5B,SACE2wC,EACAkyF,EACAG,GAGA,GAA4B,mBAAjBryF,EACT,OAAO85D,QAAQo4B,GAIjB,IAAII,EAAuB,GACvBC,GAAiB,EACjBv6H,GAAS,EAEb,GAAK5T,MAAM8I,QAAQ8yC,GAOjBsyF,EAAuBtyF,EAEvBuyF,GADAv6H,EAAQgoC,EAAaz6C,QAAQ8sI,KACH,OAP1B,IAAKA,GAA0B,QAAbA,GAAoC,SAAbA,EACvC,OAAOv4B,QAAQo4B,GAUnB,GAAIA,GAAWG,IAAcE,EAC3B,OAAOD,EAAqB/oI,OAAO8oI,GAIrC,IAAKE,EACH,OAAOD,EAIT,OAAOA,EACJpoI,MAAM,EAAG8N,GACTzO,OAAO+oI,EAAqBpoI,MAAM8N,EAAQ,IAjiBnCw6H,CAAoBv8B,GAAMzqG,EAAMsM,OAAQpJ,GAASwjI,EAAShrI,GAC1DmQ,GAAW+6H,EAifvB,SAA2B/6H,GACzB,OAAOjT,MAAM2F,KAAKsN,GACf5F,QAAO,SAAA2nC,GAAE,OAAIA,EAAGq5F,YAChBjkI,KAAI,SAAA4qC,GAAE,OAAIA,EAAGlyC,SAnfNwrI,CAAkBr7H,GAClBnQ,EAGFwH,GAEFkjI,EAAcljI,EAAOu1B,KAGzB,CAAC2tG,EAAepmI,EAAMsM,SAGlB66H,EAAehC,IACnB,SACEiC,GAEA,GAAInzB,GAASmzB,GACX,OAAO,SAAA/3H,GAAK,OAAIg3H,EAAch3H,EAAO+3H,IAErCf,EAAce,MAKdC,EAAkBlC,IACtB,SAACjiI,EAAeq/H,EAAyBwD,GAUvC,YAVcxD,WAAmB,GACjCqB,EAAS,CACP//H,KAAM,oBACNy+H,QAAS,CACPp/H,QACAxH,MAAO6mI,WAIUhlI,IAAnBwoI,EAA+B9C,EAAiB8C,GAE9Cb,EAA6BllI,EAAMsM,QACnChR,QAAQC,aAIV+rI,EAAct9H,uBAClB,SAAClQ,EAAQ2P,GACH3P,EAAE0sI,SACJ1sI,EAAE0sI,U,MAE4B1sI,EAAEtC,OAA1BsM,SAAM2D,OACRvE,GADYyjI,YACJl9H,IAAc3F,GAAc2D,IAU1C4/H,EAAgBnkI,GAAO,KAEzB,CAACmkI,IAGGE,EAAapC,IACjB,SAACqC,GACC,GAAIvzB,GAASuzB,GACX,OAAO,SAAAn4H,GAAK,OAAIi4H,EAAYj4H,EAAOm4H,IAEnCF,EAAYE,MAKZC,EAAiBz9H,uBACrB,SACE09H,GAIIpjH,GAAWojH,GACb9D,EAAS,CAAE//H,KAAM,mBAAoBy+H,QAASoF,IAE9C9D,EAAS,CAAE//H,KAAM,mBAAoBy+H,QAAS,kBAAMoF,OAGxD,IAGIC,EAAY39H,uBAAkB,SAACy4H,GACnCmB,EAAS,CAAE//H,KAAM,aAAcy+H,QAASG,MACvC,IAEGmF,EAAgB59H,uBAAkB,SAAC04H,GACvCkB,EAAS,CAAE//H,KAAM,mBAAoBy+H,QAASI,MAC7C,IAEGmF,EAAa1C,IAAiB,WAElC,OADAvB,EAAS,CAAE//H,KAAM,mBACVqhI,IAA+BlpI,MACpC,SAACopI,GAQC,IAAM0C,EAAoB1C,aAA0BhhI,MAGpD,IADG0jI,GAA4D,IAAvC9vI,OAAOqL,KAAK+hI,GAAgBztI,OAC/B,CAWnB,IAAIowI,EACJ,IAIE,QAA2BxqI,KAH3BwqI,EAAqBC,KAInB,OAEF,MAAOnqI,GACP,MAAMA,EAGR,OAAOvC,QAAQC,QAAQwsI,GACpB/rI,MAAK,SAAAF,GAIJ,OAHM4nI,EAAUhwH,SACdkwH,EAAS,CAAE//H,KAAM,mBAEZ/H,KALJ,OAOE,SAAAmsI,GACL,GAAMvE,EAAUhwH,QAId,MAHAkwH,EAAS,CAAE//H,KAAM,mBAGXokI,KAGP,GAAMvE,EAAUhwH,UAErBkwH,EAAS,CAAE//H,KAAM,mBAEbikI,GACF,MAAM1C,QAQV8C,EAAe/C,IACnB,SAACrrI,GACKA,GAAKA,EAAEyV,gBAAkB+U,GAAWxqB,EAAEyV,iBACxCzV,EAAEyV,iBAGAzV,GAAKA,EAAE2iB,iBAAmB6H,GAAWxqB,EAAE2iB,kBACzC3iB,EAAE2iB,kBAsBJorH,IAAU,OAAS,SAAAM,GACjBplG,QAAQ1iB,KAAR,2DAEE8nH,SAMF1C,EAA2C,CAC/CJ,YACA+C,aAAclD,EACdQ,gBACAM,YACAG,gBACAkB,kBACAjB,gBACAuB,YACAC,gBACA9B,aACAG,YACAwB,iBACAI,cAGIG,EAAgB7C,IAAiB,WACrC,OAAO9B,EAASrjI,EAAMsM,OAAQm5H,MAG1B4C,EAAclD,IAAiB,SAAArrI,GAC/BA,GAAKA,EAAEyV,gBAAkB+U,GAAWxqB,EAAEyV,iBACxCzV,EAAEyV,iBAGAzV,GAAKA,EAAE2iB,iBAAmB6H,GAAWxqB,EAAE2iB,kBACzC3iB,EAAE2iB,kBAGJ4oH,OAGIiD,EAAet+H,uBACnB,SAAClG,GACC,MAAO,CACLpI,MAAO+uG,GAAMzqG,EAAMsM,OAAQxI,GAC3BjG,MAAO4sG,GAAMzqG,EAAMgpG,OAAQllG,GAC3By+H,UAAW93B,GAAMzqG,EAAMuiI,QAASz+H,GAChCykI,aAAc99B,GAAM64B,EAAc5vH,QAAS5P,GAC3C0/H,iBAAkB/4B,GAAM+4B,EAAe9vH,QAAS5P,GAChD0kI,aAAc/9B,GAAM84B,EAAc7vH,QAAS5P,MAG/C,CAAC9D,EAAMgpG,OAAQhpG,EAAMuiI,QAASviI,EAAMsM,SAGhCm8H,GAAkBz+H,uBACtB,SAAClG,GACC,MAAO,CACL4kI,SAAU,SAAChtI,EAAYqqI,GAAb,OACRK,EAActiI,EAAMpI,EAAOqqI,IAC7BD,WAAY,SAACpqI,EAAgBqqI,GAAjB,OACVsB,EAAgBvjI,EAAMpI,EAAOqqI,IAC/B4C,SAAU,SAACjtI,GAAD,OAAgByqI,EAAcriI,EAAMpI,OAGlD,CAAC0qI,EAAeiB,EAAiBlB,IAG7ByC,GAAgB5+H,uBACpB,SAAC6+H,GACC,IAAMC,EAAa/mH,GAAS8mH,GACtB/kI,EAAOglI,EAAaD,EAAc/kI,KAAO+kI,EACzCE,EAAat+B,GAAMzqG,EAAMsM,OAAQxI,GAEjCZ,EAA8B,CAClCY,OACApI,MAAOqtI,EACPpoH,SAAUwmH,EACV6B,OAAQzB,GAEV,GAAIuB,EAAY,KAEZjlI,EAIEglI,EAJFhlI,KACOgjI,EAGLgC,EAHFntI,MACIwsG,EAEF2gC,EAFFjnB,GACAglB,EACEiC,EADFjC,SAGW,aAAT/iI,OACgBtG,IAAdspI,EACF3jI,EAAMwjI,UAAYqC,GAElB7lI,EAAMwjI,WACJ9tI,MAAM8I,QAAQqnI,MAAgBA,EAAWhvI,QAAQ8sI,IAEnD3jI,EAAMxH,MAAQmrI,GAEE,UAAThjI,GACTX,EAAMwjI,QAAUqC,IAAelC,EAC/B3jI,EAAMxH,MAAQmrI,GACE,WAAP3+B,GAAmB0+B,IAC5B1jI,EAAMxH,MAAQwH,EAAMxH,OAAS,GAC7BwH,EAAM0jI,UAAW,GAGrB,OAAO1jI,IAET,CAACqkI,EAAYJ,EAAcnnI,EAAMsM,SAG7B28H,GAAQj/H,mBACZ,kBAAOw4H,IAAQc,EAAc5vH,QAAS1T,EAAMsM,UAC5C,CAACg3H,EAAc5vH,QAAS1T,EAAMsM,SAG1B48H,GAAUl/H,mBACd,iBAC4B,qBAAnBm5H,EACH8F,GACEjpI,EAAMgpG,QAA+C,IAArChxG,OAAOqL,KAAKrD,EAAMgpG,QAAQrxG,QACvB,IAAnBwrI,GAA4B7+G,GAAW6+G,GACtCA,EAA4D1rI,GAC5D0rI,EACHnjI,EAAMgpG,QAA+C,IAArChxG,OAAOqL,KAAKrD,EAAMgpG,QAAQrxG,SAChD,CAACwrI,EAAgB8F,GAAOjpI,EAAMgpG,OAAQvxG,IAsCxC,OAnCY,GAAH,GACJuI,EADI,CAEPsjI,cAAeA,EAAc5vH,QAC7B6vH,cAAeA,EAAc7vH,QAC7B8vH,eAAgBA,EAAe9vH,QAC/B+vH,cAAeA,EAAc/vH,QAC7B6zH,aACAJ,eACAkB,cACAH,eACA7C,YACAW,YACAyB,iBACAJ,kBACAjB,gBACAD,gBACAwB,YACAC,gBACA9B,aACAG,YACA4B,aACAO,aAAclD,EACdQ,gBACAwD,WACAD,SACApD,kBACAD,gBACAgD,iBACAN,eACAG,mBACAxF,iBACAD,mBACAE,oBAMJ,SAAgBiG,GAGd1xI,GACA,IAAM2xI,EAAYrG,GAAkBtrI,GAC5BiV,EAA0CjV,EAA1CiV,UAAWrC,EAA+B5S,EAA/B4S,SAAUN,EAAqBtS,EAArBsS,OAAQkF,EAAaxX,EAAbwX,SAerC,OAZAjF,8BAA0BiF,GAAU,kBAAMm6H,KAaxCp/H,wBAACi4H,GAAD,CAAgBvmI,MAAO0tI,GACpB18H,EACG1C,wBAAoB0C,EAAkB08H,GACtCr/H,EACAA,EAAOq/H,GACP/+H,EACAia,GAAWja,GACRA,EACC++H,GAED9H,GAAgBj3H,GAEjB,KADAL,WAAeq/H,KAAKh/H,GAEtB,MA2DV,SAAgB+5H,GACd93H,GAEA,IAAIkL,EAAqB5e,MAAM8I,QAAQ4K,GAAU,GAAK,GACtD,IAAK,IAAIjP,KAAKiP,EACZ,GAAItU,OAAOM,UAAUQ,eAAeC,KAAKuT,EAAQjP,GAAI,CACnD,IAAMnF,EAAMe,OAAOoE,IACgB,IAA/BzE,MAAM8I,QAAQ4K,EAAOpU,IACvBsf,EAAKtf,GAAOoU,EAAOpU,GAAK8K,KAAI,SAACtH,GAC3B,OAA6B,IAAzB9C,MAAM8I,QAAQhG,IAAmB83G,EAAc93G,GAC1C0oI,GAAyB1oI,GAEf,KAAVA,EAAeA,OAAQ6B,KAGzBi2G,EAAclnG,EAAOpU,IAC9Bsf,EAAKtf,GAAOksI,GAAyB93H,EAAOpU,IAE5Csf,EAAKtf,GAAuB,KAAhBoU,EAAOpU,GAAcoU,EAAOpU,QAAOqF,EAIrD,OAAOia,EAOT,SAASg/G,GAAWh/H,EAAe4O,EAAeyF,GAChD,IAAM6qH,EAAcl/H,EAAOkH,QAe3B,OAbA0H,EAAOC,SAAQ,SAAevM,EAAQpC,GACpC,GAA8B,qBAAnBg/H,EAAYh/H,GAAoB,CACzC,IACM4xI,GADmC,IAAlBz9H,EAAQ0rB,OACO1rB,EAAQiqH,kBAAkBh8H,GAChE48H,EAAYh/H,GAAK4xI,EACbhT,EAAU19H,MAAM8I,QAAQ5H,GAAK,GAAK,GAAIA,EAAG+R,GACzC/R,OACK+R,EAAQiqH,kBAAkBh8H,GACnC48H,EAAYh/H,GAAK4+H,EAAU9+H,EAAOE,GAAIoC,EAAG+R,IACT,IAAvBrU,EAAOuC,QAAQD,IACxB48H,EAAYz5H,KAAKnD,MAGd48H,EA0DT,IAAM6S,GACc,qBAAX93H,QACoB,qBAApBA,OAAOC,UAC2B,qBAAlCD,OAAOC,SAAS/E,cACnB3C,kBACAA,YAEN,SAASm7H,GAAoD7jH,GAC3D,IAAMtT,EAAWhE,iBAAasX,GAO9B,OAJAioH,IAA0B,WACxBv7H,EAAI0F,QAAU4N,KAGTtX,uBACL,sCAAI0L,EAAJ,yBAAIA,EAAJ,uBAAoB1H,EAAI0F,QAAQ9Z,WAAM,EAAQ8b,KAC9C,IChjCJ,SAAgB8zH,GAAMA,G,IACpB5/B,aACA9lG,SACAiG,WACAM,aACI69F,IAAJ0Z,GACAl1G,cACGjV,iEAGS21G,EAGPg1B,GACDD,KADCC,iC,IA8BGwD,EAAmCxD,EAAnCwD,cAAeC,EAAoBzD,EAApByD,gBACvB77H,qBAAgB,WAId,OAHA47H,EAAc9hI,EAAM,CAClB8lG,SAAUA,IAEL,WACLi8B,EAAgB/hI,MAEjB,CAAC8hI,EAAeC,EAAiB/hI,EAAM8lG,IAC1C,IAAM1mG,EAAQk/H,EAAOwG,cAAP,IAAuB9kI,QAASrM,IACxCkgD,EAAOyqF,EAAOkG,aAAaxkI,GAC3B2lI,EAAY,CAAEvmI,QAAOwmI,KAAMtH,GAEjC,GAAIr4H,EACF,OAAOA,EAAO,GAAD,GAAM0/H,EAAN,CAAiB9xF,UAGhC,GAAIrzB,GAAWja,GACb,OAAOA,EAAS,GAAD,GAAMo/H,EAAN,CAAiB9xF,UAGlC,GAAIjrC,EAAW,CAEb,GAAyB,kBAAdA,EAAwB,KACzBuC,EAAsBxX,EAAtBwX,SAAaG,EADY,GACH3X,EADG,cAEjC,OAAOuS,wBACL0C,EADK,IAEHsB,IAAKiB,GAAa/L,EAAUkM,GAC9B/E,GAIJ,OAAOL,wBACL0C,EADK,IAEHxJ,QAAOwmI,KAAMtH,GAAW3qI,GAC1B4S,GAKJ,IAAMs/H,EAAYzhC,GAAM,QAExB,GAAyB,kBAAdyhC,EAAwB,KACzB16H,EAAsBxX,EAAtBwX,SAAaG,EADY,GACH3X,EADG,cAEjC,OAAOuS,wBACL2/H,EADK,IAEH37H,IAAKiB,GAAa/L,EAAUkM,GAC9B/E,GAIJ,OAAOL,wBAAoB2/H,EAApB,MAAoCzmI,EAAUzL,GAAS4S,G,IChNnDu/H,GAAO5/H,sBAClB,SAACvS,EAAwBuW,G,IAGf8oG,EAAoBr/G,EAApBq/G,OAAW1nG,KAAS3X,cACtBoyI,EAAO,MAAG/yB,IAAU,I,EACYqrB,KAA9BkG,gBAAaH,iBACrB,OACEl+H,8CACEq5H,SAAU6E,EACVl6H,IAAKA,EACLu3H,QAAS8C,EACTvxB,OAAQ+yB,GACJz6H,OChBZ,SAAgB06H,GACdC,GAEA,IAAMl8H,EAA0B,SAACpW,GAAD,OAC9BuS,wBAACk4H,GAAD,MACG,SAAAE,GAKC,OAHIA,GADJ,cAAU,GAIHp4H,wBAAC+/H,EAAD,iBAAUtyI,GAAO2qI,OAAQA,SAIhC4H,EACJD,EAAKnhI,aACLmhI,EAAKjmI,MACJimI,EAAK3wI,aAAe2wI,EAAK3wI,YAAY0K,MACtC,YAUF,OANC+J,EAEEI,iBAAmB87H,EAEtBl8H,EAAEjF,YAAF,iBAAiCohI,EAAjC,IAEOnkB,KACLh4G,EACAk8H,GDRJH,GAAKhhI,YAAc,OEkCnB,IAoBaqhI,GAAS,SACpBC,EACA19H,EACA9Q,GAEA,IAAMyuI,EAAOC,GAAcF,GAE3B,OADAC,EAAK/sG,OAAO5wB,EAAO,EAAG9Q,GACfyuI,GAaHC,GAAgB,SAACF,GACrB,GAAKA,EAEE,IAAItxI,MAAM8I,QAAQwoI,GACvB,MAAO,GAAP,OAAWA,GAEX,IAAM9vD,EAAWpiF,OAAOqL,KAAK6mI,GAC1BlnI,KAAI,SAAA9K,GAAG,OAAI++B,SAAS/+B,MACpBgJ,QAAO,SAAC8kB,EAAK4nB,GAAN,OAAcA,EAAK5nB,EAAM4nB,EAAK5nB,IAAM,GAC9C,OAAOptB,MAAM2F,KAAN,MAAgB2rI,EAAhB,CAA2BvyI,OAAQyiF,EAAW,KAPrD,MAAO,IAWLiwD,GAAeA,YAQnB,WAAY5yI,G,aACVoP,cAAMpP,IAAN,MAsBFoP,iBAAmB,SACjBya,EACAgpH,EACAC,G,MAMI1jI,EAAKpP,MAHPqM,UAIF2jI,EAFYA,EAAVrF,OAAUqF,iBAEG,SAAC+C,GACd,IAAIC,EAAsC,oBAAhBF,EAA6BA,EAAcjpH,EACjEopH,EACsB,oBAAjBJ,EAA8BA,EAAehpH,EAIlDhV,EAASk1H,GACXgJ,EAAUl+H,OACVxI,EACAwd,EAAGmpF,GAAM+/B,EAAUl+H,OAAQxI,KAGzB6mI,EAAaJ,EACbE,EAAahgC,GAAM+/B,EAAUxhC,OAAQllG,SACrCvG,EACAqtI,EAAeN,EACfI,EAAcjgC,GAAM+/B,EAAUjI,QAASz+H,SACvCvG,EASJ,OAPI8jI,GAAasJ,KACfA,OAAaptI,GAEX8jI,GAAauJ,KACfA,OAAertI,GAGV,GAAP,GACKitI,EADL,CAEEl+H,SACA08F,OAAQuhC,EACJ/I,GAAMgJ,EAAUxhC,OAAQllG,EAAM6mI,GAC9BH,EAAUxhC,OACdu5B,QAAS+H,EACL9I,GAAMgJ,EAAUjI,QAASz+H,EAAM8mI,GAC/BJ,EAAUjI,cAKpB17H,OAAO,SAACnL,GAAD,OACLmL,EAAKgkI,kBACH,SAACX,GAAD,gBACKE,GAAcF,GADnB,CAEE39B,GAAU7wG,QAEZ,GACA,IAGJmL,aAAa,SAACnL,GAAD,OAAgB,kBAAMmL,EAAK5J,KAAKvB,KAE7CmL,OAAO,SAACikI,EAAgBC,GAAjB,OACLlkI,EAAKgkI,kBACH,SAAC/kH,GAAD,OA5Ic,SAClBokH,EACAY,EACAC,GAEA,IAAMZ,EAAOC,GAAcF,GACrBhsI,EAAIisI,EAAKW,GAGf,OAFAX,EAAKW,GAAUX,EAAKY,GACpBZ,EAAKY,GAAU7sI,EACRisI,EAmIea,CAAKllH,EAAOglH,EAAQC,MACtC,GACA,IAGJlkI,aAAa,SAACikI,EAAgBC,GAAjB,OAAoC,kBAC/ClkI,EAAKmkI,KAAKF,EAAQC,KAEpBlkI,OAAO,SAACtI,EAAcD,GAAf,OACLuI,EAAKgkI,kBAAiB,SAAC/kH,GAAD,OA7JN,SAACA,EAAcvnB,EAAcD,GAC/C,IAAM6rI,EAAOC,GAActkH,GACrBpqB,EAAQyuI,EAAK5rI,GAGnB,OAFA4rI,EAAK/sG,OAAO7+B,EAAM,GAClB4rI,EAAK/sG,OAAO9+B,EAAI,EAAG5C,GACZyuI,EAwJmC5pF,CAAKz6B,EAAOvnB,EAAMD,MAAK,GAAM,IAEvEuI,aAAa,SAACtI,EAAcD,GAAf,OAA8B,kBAAMuI,EAAK05C,KAAKhiD,EAAMD,KAEjEuI,SAAS,SAAC2F,EAAe9Q,GAAhB,OACPmL,EAAKgkI,kBACH,SAAC/kH,GAAD,OAAkBmkH,GAAOnkH,EAAOtZ,EAAO9Q,MACvC,SAACoqB,GAAD,OAAkBmkH,GAAOnkH,EAAOtZ,EAAO,SACvC,SAACsZ,GAAD,OAAkBmkH,GAAOnkH,EAAOtZ,EAAO,UAG3C3F,eAAe,SAAC2F,EAAe9Q,GAAhB,OAA+B,kBAAMmL,EAAKojI,OAAOz9H,EAAO9Q,KAEvEmL,UAAU,SAAC2F,EAAe9Q,GAAhB,OACRmL,EAAKgkI,kBACH,SAAC/kH,GAAD,OA9IiB,SACrBokH,EACA19H,EACA9Q,GAEA,IAAMyuI,EAAOC,GAAcF,GAE3B,OADAC,EAAK39H,GAAS9Q,EACPyuI,EAuIe3+H,CAAQsa,EAAOtZ,EAAO9Q,MACxC,GACA,IAGJmL,gBAAgB,SAAC2F,EAAe9Q,GAAhB,OAA+B,kBAC7CmL,EAAK2E,QAAQgB,EAAO9Q,KAEtBmL,UAAU,SAACnL,GACT,IAAI/D,GAAU,EAwBd,OAvBAkP,EAAKgkI,kBACH,SAAC/kH,GACC,IAAMhkB,EAAMgkB,EAAQ,CAACpqB,GAAJ,OAAcoqB,GAAS,CAACpqB,GAIzC,OAHI/D,EAAS,IACXA,EAASmK,EAAInK,QAERmK,KAET,SAACgkB,GACC,IAAMhkB,EAAMgkB,EAAQ,CAAC,MAAJ,OAAaA,GAAS,CAAC,MAIxC,OAHInuB,EAAS,IACXA,EAASmK,EAAInK,QAERmK,KAET,SAACgkB,GACC,IAAMhkB,EAAMgkB,EAAQ,CAAC,MAAJ,OAAaA,GAAS,CAAC,MAIxC,OAHInuB,EAAS,IACXA,EAASmK,EAAInK,QAERmK,KAGJnK,GAGTkP,gBAAgB,SAACnL,GAAD,OAAgB,kBAAMmL,EAAK60E,QAAQhgF,KAwBnDmL,eAAe,SAAC2F,GAAD,OAAmB,kBAAM3F,EAAKkpE,OAAYvjE,KAqBzD3F,YAAY,kBAAM,kBAAMA,EAAK7J,QA5L3B6J,EAAKkpE,OAASlpE,EAAKkpE,OAAOqmB,KAAZ,OACdvvF,EAAK7J,IAAM6J,EAAK7J,IAAIo5F,KAAT,O,qCAGb3rF,4BACEC,GAGEvR,KAAK1B,MAAMurI,kBACX7pI,KAAK1B,MAAM2qI,OAAOY,mBACjBR,IACC/3B,GAAM//F,EAAU03H,OAAO91H,OAAQ5B,EAAU5G,MACzC2mG,GAAMtxG,KAAK1B,MAAM2qI,OAAO91H,OAAQnT,KAAK1B,MAAMqM,QAG7C3K,KAAK1B,MAAM2qI,OAAOgG,aAAajvI,KAAK1B,MAAM2qI,OAAO91H,S,EAkIrDyjE,gBAAUvjE,GAER,IAAI1Q,EAiBJ,OAhBA3C,KAAK0xI,kBAEH,SAAC/kH,GACC,IAAMqkH,EAAOrkH,EAAQskH,GAActkH,GAAS,GAO5C,OANKhqB,IACHA,EAASquI,EAAK39H,IAEZ8X,GAAW6lH,EAAK/sG,SAClB+sG,EAAK/sG,OAAO5wB,EAAO,GAEd29H,KAET,GACA,GAGKruI,G,EAKTkB,eAEE,IAAIlB,EAcJ,OAbA3C,KAAK0xI,kBAEH,SAAC/kH,GACC,IAAMnkB,EAAMmkB,EAIZ,OAHKhqB,IACHA,EAAS6F,GAAOA,EAAI3E,KAAO2E,EAAI3E,OAE1B2E,KAET,GACA,GAGK7F,G,EAKTiO,kBACE,IAAMkhI,EAA6B,CACjChuI,KAAM9D,KAAK8D,KACXD,IAAK7D,KAAK6D,IACVguI,KAAM7xI,KAAK6xI,KACXzqF,KAAMpnD,KAAKonD,KACX0pF,OAAQ9wI,KAAK8wI,OACbz+H,QAASrS,KAAKqS,QACdkwE,QAASviF,KAAKuiF,QACd3L,OAAQ52E,KAAK42E,OACbm7D,WAAY/xI,KAAK+xI,WACjBnyB,UAAW5/G,KAAK4/G,UAChBoyB,WAAYhyI,KAAKgyI,WACjBC,WAAYjyI,KAAKiyI,WACjBC,aAAclyI,KAAKkyI,aACnBC,cAAenyI,KAAKmyI,cACpBC,cAAepyI,KAAKoyI,cACpBC,aAAcryI,KAAKqyI,c,EAajBryI,KAAK1B,MATPiV,cACA3C,WACAM,aACAvG,SAQIrM,EAAK,MACNwzI,EADM,CAETvB,KANK+B,G,EAHLrJ,OAGKqJ,iCAOL3nI,SAGF,OAAO4I,EACH1C,wBAAoB0C,EAAkBjV,GACtCsS,EACCA,EAAetS,GAChB4S,EACoB,oBAAbA,EACJA,EAAiB5S,GACjB6pI,GAAgBj3H,GAEjB,KADAL,WAAeq/H,KAAKh/H,GAEtB,M,EA1PaggI,CAAsBrgI,aAIlCqgI,gBAAe,CACpBrH,kBAAkB,GAyPtB,IAAa0I,GAAa5B,GAA+BO,IChU5CsB,GAAe7B,GAzCN8B,Y,qFAGpBC,+BACEp0I,GAEA,OACEgzG,GAAMtxG,KAAK1B,MAAM2qI,OAAOp5B,OAAQ7vG,KAAK1B,MAAMqM,QACzC2mG,GAAMhzG,EAAM2qI,OAAOp5B,OAAQ7vG,KAAK1B,MAAMqM,OACxC2mG,GAAMtxG,KAAK1B,MAAM2qI,OAAOG,QAASppI,KAAK1B,MAAMqM,QAC1C2mG,GAAMhzG,EAAM2qI,OAAOG,QAASppI,KAAK1B,MAAMqM,OACzC9L,OAAOqL,KAAKlK,KAAK1B,OAAOE,SAAWK,OAAOqL,KAAK5L,GAAOE,Q,EAQ1DoS,kB,MAC+D5Q,KAAK1B,MAA5DiV,cAAW01H,WAAQr4H,WAAQM,aAAUvG,SAASsL,0DAE9C08H,EAAQrhC,GAAM23B,EAAOG,QAASz+H,GAC9BjG,EAAQ4sG,GAAM23B,EAAOp5B,OAAQllG,GAEnC,OAASgoI,GAAWjuI,EAChBkM,EACEua,GAAWva,GACTA,EAAOlM,GACP,KACFwM,EACAia,GAAWja,GACTA,EAASxM,GACT,KACF6O,EACA1C,wBAAoB0C,EAAW0C,EAAavR,GAC5CA,EACF,M,EArCc+tI,CAAS5hI,cC6BuBA,a,gBCzBpDhT,EAAOC,QAAUC,EAAQ,IAARA,I,8BCfnB,SAAS60I,IAEP,GAC4C,qBAAnCC,gCAC4C,oBAA5CA,+BAA+BD,SAcxC,IAEEC,+BAA+BD,SAASA,GACxC,MAAO1pI,GAGP0gC,QAAQllC,MAAMwE,IAOhB0pI,GACA/0I,EAAOC,QAAUC,EAAQ,M,gCClC3B,8CACe,SAAS+0I,EAA4B9uI,EAAG+uI,GACrD,GAAK/uI,EAAL,CACA,GAAiB,kBAANA,EAAgB,OAAO,YAAiBA,EAAG+uI,GACtD,IAAIxyI,EAAI1B,OAAOM,UAAU8mB,SAASrmB,KAAKoE,GAAGuB,MAAM,GAAI,GAEpD,MADU,WAANhF,GAAkByD,EAAE/D,cAAaM,EAAIyD,EAAE/D,YAAY0K,MAC7C,QAANpK,GAAqB,QAANA,EAAoBd,MAAM2F,KAAKpB,GACxC,cAANzD,GAAqB,2CAA2CgiG,KAAKhiG,GAAW,YAAiByD,EAAG+uI,QAAxG,K,6BCPa,SAASn3B,EAAgB53G,EAAGtE,GAMzC,OALAk8G,EAAkB/8G,OAAOU,gBAAkB,SAAyByE,EAAGtE,GAErE,OADAsE,EAAExE,UAAYE,EACPsE,IAGcA,EAAGtE,GAN5B,mC,6BCAe,SAASszI,EAAyB/qI,GAC/C,MAAO,CAAC,MAAO,UAAUrH,QAAQqH,IAAc,EAAI,IAAM,IAD3D,mC,6BCAA,8DAGe,SAASs7G,EAAoBnvG,GAQ1C,OAAO4N,YAAsBsqF,YAAmBl4F,IAAU/M,KAAOy8G,YAAgB1vG,GAAS4vG,a,6BCX5F,8CACe,SAASF,EAAgB/0G,GACtC,IAAIo0G,EAAMn0G,YAAUD,GAGpB,MAAO,CACLi1G,WAHeb,EAAI8vB,YAInBhvB,UAHcd,EAAI+vB,e,6BCJtB,8CACe,SAASC,EAAe/+H,GAErC,IAAIg/H,EAAoBrhG,YAAiB39B,GACrCi/H,EAAWD,EAAkBC,SAC7BC,EAAYF,EAAkBE,UAC9BC,EAAYH,EAAkBG,UAElC,MAAO,6BAA6BhxC,KAAK8wC,EAAWE,EAAYD,K,6BCRlE,8CAGe,SAASE,EAAcp/H,GACpC,IAAIq/H,EAAazxH,YAAsB5N,GAGnCiQ,EAAQjQ,EAAQ8N,YAChBlH,EAAS5G,EAAQ+N,aAUrB,OARI9Y,KAAKoZ,IAAIgxH,EAAWpvH,MAAQA,IAAU,IACxCA,EAAQovH,EAAWpvH,OAGjBhb,KAAKoZ,IAAIgxH,EAAWz4H,OAASA,IAAW,IAC1CA,EAASy4H,EAAWz4H,QAGf,CACLvS,EAAG2L,EAAQizD,WACXpkE,EAAGmR,EAAQkvG,UACXj/F,MAAOA,EACPrJ,OAAQA,K,6BCtBZ,8CACe,SAAS04H,EAAO9mH,EAAKrqB,EAAOsqB,GACzC,OAAO8mH,YAAQ/mH,EAAKgnH,YAAQrxI,EAAOsqB,M,mGCEtB,SAASgnH,EAAgB9kI,GACtC,MAAI,CAAC,OAAQ,OAAQ,aAAanO,QAAQurG,YAAYp9F,KAAU,EAEvDA,EAAKwuF,cAAcx6F,KAGxBmM,YAAcH,IAASokI,YAAepkI,GACjCA,EAGF8kI,EAAgBtvB,YAAcx1G,I,YCHxB,SAASu1G,EAAkBlwG,EAASwH,GACjD,IAAIgoG,OAES,IAAThoG,IACFA,EAAO,IAGT,IAAIk4H,EAAeD,EAAgBz/H,GAC/B2/H,EAASD,KAAqE,OAAlDlwB,EAAwBxvG,EAAQmpF,oBAAyB,EAASqmB,EAAsB7gH,MACpHogH,EAAMn0G,YAAU8kI,GAChBz1I,EAAS01I,EAAS,CAAC5wB,GAAKv+G,OAAOu+G,EAAIE,gBAAkB,GAAI8vB,YAAeW,GAAgBA,EAAe,IAAMA,EAC7GE,EAAcp4H,EAAKhX,OAAOvG,GAC9B,OAAO01I,EAASC,EAChBA,EAAYpvI,OAAO0/G,EAAkBC,YAAclmH,O,iBCxBrD,IAAIoF,EAAS1F,EAAQ,IACjB8/H,EAAY9/H,EAAQ,KACpBigI,EAAiBjgI,EAAQ,KAOzB6/H,EAAiBn6H,EAASA,EAAOgoC,iBAAcrnC,EAkBnDvG,EAAOC,QATP,SAAoByE,GAClB,OAAa,MAATA,OACe6B,IAAV7B,EAdQ,qBADL,gBAiBJq7H,GAAkBA,KAAkB/+H,OAAO0D,GAC/Cs7H,EAAUt7H,GACVy7H,EAAez7H,K,cCIrB1E,EAAOC,QAJP,SAAsByE,GACpB,OAAgB,MAATA,GAAiC,iBAATA,I,gBCzBjC,IAAIwlI,EAAehqI,EAAQ,KA2B3BF,EAAOC,QAJP,SAAkByE,GAChB,OAAgB,MAATA,EAAgB,GAAKwlI,EAAaxlI,K,6BCxB5B,SAAS0xI,EAAkBtrI,EAAK8gB,IAClC,MAAPA,GAAeA,EAAM9gB,EAAInK,UAAQirB,EAAM9gB,EAAInK,QAE/C,IAAK,IAAID,EAAI,EAAG21I,EAAO,IAAIz0I,MAAMgqB,GAAMlrB,EAAIkrB,EAAKlrB,IAC9C21I,EAAK31I,GAAKoK,EAAIpK,GAGhB,OAAO21I,EAPT,mC,iBCAA,IAGIzwI,EAHO1F,EAAQ,IAGD0F,OAElB5F,EAAOC,QAAU2F,G,gBCLjB,IAGIq8H,EAHY/hI,EAAQ,GAGL8hI,CAAUhhI,OAAQ,UAErChB,EAAOC,QAAUgiI,G,gBCLjB,IAAIpB,EAAiB3gI,EAAQ,KACzB8gI,EAAkB9gI,EAAQ,KAC1B+gI,EAAe/gI,EAAQ,KACvBghI,EAAehhI,EAAQ,KACvBihI,EAAejhI,EAAQ,KAS3B,SAASkhI,EAAUvjE,GACjB,IAAIroD,GAAS,EACT7U,EAAoB,MAAXk9D,EAAkB,EAAIA,EAAQl9D,OAG3C,IADAwB,KAAK+vE,UACI18D,EAAQ7U,GAAQ,CACvB,IAAIgqD,EAAQkT,EAAQroD,GACpBrT,KAAKiH,IAAIuhD,EAAM,GAAIA,EAAM,KAK7By2E,EAAU9/H,UAAU4wE,MAAQ2uD,EAC5BO,EAAU9/H,UAAkB,OAAI0/H,EAChCI,EAAU9/H,UAAUkF,IAAMy6H,EAC1BG,EAAU9/H,UAAU4H,IAAMg4H,EAC1BE,EAAU9/H,UAAU8H,IAAM+3H,EAE1BnhI,EAAOC,QAAUmhI,G,gBC/BjB,IAAI3tG,EAAKvzB,EAAQ,KAoBjBF,EAAOC,QAVP,SAAsB6uB,EAAO5tB,GAE3B,IADA,IAAIP,EAASmuB,EAAMnuB,OACZA,KACL,GAAI8yB,EAAG3E,EAAMnuB,GAAQ,GAAIO,GACvB,OAAOP,EAGX,OAAQ,I,gBCjBV,IAAI8hI,EAAYviI,EAAQ,KAiBxBF,EAAOC,QAPP,SAAoB+L,EAAK9K,GACvB,IAAIsf,EAAOxU,EAAI80H,SACf,OAAO2B,EAAUvhI,GACbsf,EAAmB,iBAAPtf,EAAkB,SAAW,QACzCsf,EAAKxU,M,gBCdX,IAAIy9H,EAAWvpI,EAAQ,KAoBvBF,EAAOC,QARP,SAAeyE,GACb,GAAoB,iBAATA,GAAqB+kI,EAAS/kI,GACvC,OAAOA,EAET,IAAII,EAAUJ,EAAQ,GACtB,MAAkB,KAAVI,GAAkB,EAAIJ,IAdjB,SAcwC,KAAOI,I,8BCjB/C,SAASwxI,IACtB,GAAuB,qBAAZ9yI,UAA4BA,QAAQ6K,UAAW,OAAO,EACjE,GAAI7K,QAAQ6K,UAAUkoI,KAAM,OAAO,EACnC,GAAqB,oBAAV1oG,MAAsB,OAAO,EAExC,IAEE,OADAoO,KAAK36C,UAAU8mB,SAASrmB,KAAKyB,QAAQ6K,UAAU4tC,KAAM,IAAI,iBAClD,EACP,MAAOn5C,GACP,OAAO,GATX,mC,6BCAA,gGAQA,IAAI0zI,EAAcxjI,gBAAoB,MAE3BE,GADQsjI,EAAYliI,SAAyBkiI,EAAYtjI,UAEzDoE,EAAUk/H,G,6BCXrB,qEAIe,SAASpuB,EAAevV,GACrC,IAOIzV,EAPApzF,EAAY6oG,EAAK7oG,UACjBuM,EAAUs8F,EAAKt8F,QACfnM,EAAYyoG,EAAKzoG,UACjBqsI,EAAgBrsI,EAAY03F,YAAiB13F,GAAa,KAC1DssI,EAAYtsI,EAAY4gH,YAAa5gH,GAAa,KAClDusI,EAAU3sI,EAAUY,EAAIZ,EAAUwc,MAAQ,EAAIjQ,EAAQiQ,MAAQ,EAC9DowH,EAAU5sI,EAAU5E,EAAI4E,EAAUmT,OAAS,EAAI5G,EAAQ4G,OAAS,EAGpE,OAAQs5H,GACN,KAAKptI,IACH+zF,EAAU,CACRxyF,EAAG+rI,EACHvxI,EAAG4E,EAAU5E,EAAImR,EAAQ4G,QAE3B,MAEF,KAAK7T,IACH8zF,EAAU,CACRxyF,EAAG+rI,EACHvxI,EAAG4E,EAAU5E,EAAI4E,EAAUmT,QAE7B,MAEF,KAAK5T,IACH6zF,EAAU,CACRxyF,EAAGZ,EAAUY,EAAIZ,EAAUwc,MAC3BphB,EAAGwxI,GAEL,MAEF,KAAKptI,IACH4zF,EAAU,CACRxyF,EAAGZ,EAAUY,EAAI2L,EAAQiQ,MACzBphB,EAAGwxI,GAEL,MAEF,QACEx5C,EAAU,CACRxyF,EAAGZ,EAAUY,EACbxF,EAAG4E,EAAU5E,GAInB,IAAIyxI,EAAWJ,EAAgBtB,YAAyBsB,GAAiB,KAEzE,GAAgB,MAAZI,EAAkB,CACpB,IAAIjrH,EAAmB,MAAbirH,EAAmB,SAAW,QAExC,OAAQH,GACN,KAAK/sI,IACHyzF,EAAQy5C,GAAYz5C,EAAQy5C,IAAa7sI,EAAU4hB,GAAO,EAAIrV,EAAQqV,GAAO,GAC7E,MAEF,KAAKhiB,IACHwzF,EAAQy5C,GAAYz5C,EAAQy5C,IAAa7sI,EAAU4hB,GAAO,EAAIrV,EAAQqV,GAAO,IAOnF,OAAOwxE,I,6BCpET,+CACe,SAASuqB,EAAmBD,GACzC,OAAO1mH,OAAOuB,OAAO,GAAIu0I,cAAsBpvB,K,6BCFlC,SAASovB,IACtB,MAAO,CACLztI,IAAK,EACLE,MAAO,EACPD,OAAQ,EACRE,KAAM,GALV,mC,6BCAe,SAASo+G,EAAgBljH,EAAO2H,GAC7C,OAAOA,EAAKnC,QAAO,SAAU6sI,EAAS71I,GAEpC,OADA61I,EAAQ71I,GAAOwD,EACRqyI,IACN,IAJL,mC,6BCAA,8CACe,SAASt5E,EAASvtB,EAAQz5B,GACvC,IAAIugI,EAAWvgI,EAAMwgI,aAAexgI,EAAMwgI,cAE1C,GAAI/mG,EAAOutB,SAAShnD,GAClB,OAAO,EAEJ,GAAIugI,GAAYzlI,YAAaylI,GAAW,CACzC,IAAIpyI,EAAO6R,EAEX,EAAG,CACD,GAAI7R,GAAQsrC,EAAOgnG,WAAWtyI,GAC5B,OAAO,EAITA,EAAOA,EAAKgvC,YAAchvC,EAAKivC,WACxBjvC,GAIb,OAAO,I,8BCrBT,YACA,IAAI46F,EAA8B,iBAAV23C,GAAsBA,GAAUA,EAAOn2I,SAAWA,QAAUm2I,EAErE33C,Q,iDCHf,iCAII2rB,EAAgC,iBAAXlrH,SAAuBA,UAAYA,QAAQ6uG,UAAY7uG,QAG5EmrH,EAAaD,GAAgC,iBAAVnrH,GAAsBA,IAAWA,EAAO8uG,UAAY9uG,EAMvFo3I,EAHgBhsB,GAAcA,EAAWnrH,UAAYkrH,EAG5B5oF,IAAK60G,YAAS7wI,EAsBvCm2G,GAnBiB06B,EAASA,EAAO16B,cAAWn2G,IAmBf8wI,IAElB36B,Q,sCCrCf,IAAI4mB,EAAkBpjI,EAAQ,KAC1Bo3I,EAAap3I,EAAQ,KACrBq3I,EAAer3I,EAAQ,KAwC3BF,EAAOC,QAVP,SAAmB6O,EAAQu0H,GACzB,IAAIv+H,EAAS,GAMb,OALAu+H,EAAWkU,EAAalU,EAAU,GAElCiU,EAAWxoI,GAAQ,SAASpK,EAAOxD,EAAK4N,GACtCw0H,EAAgBx+H,EAAQ5D,EAAKmiI,EAAS3+H,EAAOxD,EAAK4N,OAE7ChK,I,gBCvCT9E,EAAOC,QAAU,EAAQ,M,cCAzB,IAAIoF,EAGJA,EAAK,WACJ,OAAOlD,KADH,GAIL,IAECkD,EAAIA,GAAK,IAAIo6F,SAAS,cAAb,GACR,MAAO38F,GAEc,kBAAX2X,SAAqBpV,EAAIoV,QAOrCza,EAAOC,QAAUoF,G,+BCjBjBrE,OAAOC,eAAehB,EAAS,aAAc,CAC3CyE,OAAO,IAETzE,EAAQ4I,aAAU,EAUlB5I,EAAQ4I,QARO,SAAkBmT,EAAUw7H,EAAQ31F,GACjD,IAAI41F,EAA+B,IAAbz7H,EAAiBA,EAAWA,EAAWw7H,EAI7D,MAFqB,eACI,KAFE,eAAT31F,EAAwB,CAAC41F,EAAiB,EAAG,GAAK,CAAC,EAAGA,EAAiB,IAE9C3rI,KAAK,KAAO,O,cCXzD9L,EAAOC,QAAU,SAASy3I,GACzB,IAAKA,EAAeC,gBAAiB,CACpC,IAAI33I,EAASgB,OAAOqB,OAAOq1I,GAEtB13I,EAAOqT,WAAUrT,EAAOqT,SAAW,IACxCrS,OAAOC,eAAejB,EAAQ,SAAU,CACvCa,YAAY,EACZ2F,IAAK,WACJ,OAAOxG,EAAOyH,KAGhBzG,OAAOC,eAAejB,EAAQ,KAAM,CACnCa,YAAY,EACZ2F,IAAK,WACJ,OAAOxG,EAAOU,KAGhBM,OAAOC,eAAejB,EAAQ,UAAW,CACxCa,YAAY,IAEbb,EAAO23I,gBAAkB,EAE1B,OAAO33I,I,gBCtBR,IAAI0K,EAAUxK,EAAQ,IAClBupI,EAAWvpI,EAAQ,KAGnB03I,EAAe,mDACfC,EAAgB,QAuBpB73I,EAAOC,QAbP,SAAeyE,EAAOoK,GACpB,GAAIpE,EAAQhG,GACV,OAAO,EAET,IAAImI,SAAcnI,EAClB,QAAY,UAARmI,GAA4B,UAARA,GAA4B,WAARA,GAC/B,MAATnI,IAAiB+kI,EAAS/kI,MAGvBmzI,EAAcnzC,KAAKhgG,KAAWkzI,EAAalzC,KAAKhgG,IAC1C,MAAVoK,GAAkBpK,KAAS1D,OAAO8N,M,gBCzBvC,IAAIsxH,EAAalgI,EAAQ,IACrBsgI,EAAetgI,EAAQ,IA2B3BF,EAAOC,QALP,SAAkByE,GAChB,MAAuB,iBAATA,GACX87H,EAAa97H,IArBF,mBAqBY07H,EAAW17H,K,gBCzBvC,IAAI89H,EAAgBtiI,EAAQ,KACxByiI,EAAiBziI,EAAQ,KACzB0iI,EAAc1iI,EAAQ,KACtB2iI,EAAc3iI,EAAQ,KACtB4iI,EAAc5iI,EAAQ,KAS1B,SAAS6iI,EAASllE,GAChB,IAAIroD,GAAS,EACT7U,EAAoB,MAAXk9D,EAAkB,EAAIA,EAAQl9D,OAG3C,IADAwB,KAAK+vE,UACI18D,EAAQ7U,GAAQ,CACvB,IAAIgqD,EAAQkT,EAAQroD,GACpBrT,KAAKiH,IAAIuhD,EAAM,GAAIA,EAAM,KAK7Bo4E,EAASzhI,UAAU4wE,MAAQswD,EAC3BO,EAASzhI,UAAkB,OAAIqhI,EAC/BI,EAASzhI,UAAUkF,IAAMo8H,EACzBG,EAASzhI,UAAU4H,IAAM25H,EACzBE,EAASzhI,UAAU8H,IAAM05H,EAEzB9iI,EAAOC,QAAU8iI,G,cCDjB/iI,EAAOC,QALP,SAAkByE,GAChB,IAAImI,SAAcnI,EAClB,OAAgB,MAATA,IAA0B,UAARmI,GAA4B,YAARA,K,gBC3B/C,IAIImR,EAJY9d,EAAQ,GAId8hI,CAHC9hI,EAAQ,IAGO,OAE1BF,EAAOC,QAAU+d,G,cC4BjBhe,EAAOC,QALP,SAAkByE,GAChB,MAAuB,iBAATA,GACZA,GAAS,GAAKA,EAAQ,GAAK,GAAKA,GA9Bb,mB,gBCDvB,IAAI6/H,EAAgBrkI,EAAQ,KACxB6kI,EAAW7kI,EAAQ,KACnB8kI,EAAc9kI,EAAQ,KAkC1BF,EAAOC,QAJP,SAAc6O,GACZ,OAAOk2H,EAAYl2H,GAAUy1H,EAAcz1H,GAAUi2H,EAASj2H,K,6BCjChE,6CAGgB,aAAUwK,GACxB,OAAOtG,IAAM8E,YAAW,SAAUjW,EAAGmV,GACnC,OAAoBhE,IAAM2C,cAAc,MAAO7E,YAAS,GAAIjP,EAAG,CAC7DmV,IAAKA,EACLsC,UAAW8M,IAAWvkB,EAAEyX,UAAWA,W,6BCLzCtY,OAAOC,eAAehB,EAAS,aAAc,CAC3CyE,OAAO,IAET1D,OAAOC,eAAehB,EAAS,WAAY,CACzCY,YAAY,EACZ2F,IAAK,WACH,OAAOsxI,EAAUjvI,WAGrB7H,OAAOC,eAAehB,EAAS,gBAAiB,CAC9CY,YAAY,EACZ2F,IAAK,WACH,OAAOuxI,EAAOC,iBAGlBh3I,OAAOC,eAAehB,EAAS,SAAU,CACvCY,YAAY,EACZ2F,IAAK,WACH,OAAOyxI,EAAQpvI,WAInB,IAAIivI,EAAYI,EAAuBh4I,EAAQ,MAE3C63I,EAAS73I,EAAQ,KAEjB+3I,EAAUC,EAAuBh4I,EAAQ,MAE7C,SAASg4I,EAAuBvqI,GAAO,OAAOA,GAAOA,EAAIhF,WAAagF,EAAM,CAAE9E,QAAS8E,K,uICbxE,SAASwqI,EAAiBC,EAAyBpvB,EAAcqvB,QAC9D,IAAZA,IACFA,GAAU,GAGZ,IAAIC,EAA0BjnI,YAAc23G,GACxCuvB,EAAuBlnI,YAAc23G,IAf3C,SAAyBzyG,GACvB,IAAIuxB,EAAOvxB,EAAQ4N,wBACfykG,EAAS9gF,EAAKthB,MAAQjQ,EAAQ8N,aAAe,EAC7CwkG,EAAS/gF,EAAK3qB,OAAS5G,EAAQ+N,cAAgB,EACnD,OAAkB,IAAXskG,GAA2B,IAAXC,EAWmC2vB,CAAgBxvB,GACtEta,EAAkBD,YAAmBua,GACrClhF,EAAO3jB,YAAsBi0H,EAAyBG,GACtDE,EAAS,CACXtyB,WAAY,EACZC,UAAW,GAEThpB,EAAU,CACZxyF,EAAG,EACHxF,EAAG,GAkBL,OAfIkzI,IAA4BA,IAA4BD,MACxB,SAA9B/pC,YAAY0a,IAChBssB,YAAe5mC,MACb+pC,EClCS,SAAuBvnI,GACpC,OAAIA,IAASC,YAAUD,IAAUG,YAAcH,GCJxC,CACLi1G,YAFyC5vG,EDQbrF,GCNRi1G,WACpBC,UAAW7vG,EAAQ6vG,WDGZH,YAAgB/0G,GCNZ,IAA8BqF,EFsC9BmiI,CAAc1vB,IAGrB33G,YAAc23G,KAChB5rB,EAAUj5E,YAAsB6kG,GAAc,IACtCp+G,GAAKo+G,EAAanD,WAC1BzoB,EAAQh4F,GAAK4jH,EAAapD,WACjBlX,IACTtR,EAAQxyF,EAAI86G,YAAoBhX,KAI7B,CACL9jG,EAAGk9B,EAAKt+B,KAAOivI,EAAOtyB,WAAa/oB,EAAQxyF,EAC3CxF,EAAG0iC,EAAKz+B,IAAMovI,EAAOryB,UAAYhpB,EAAQh4F,EACzCohB,MAAOshB,EAAKthB,MACZrJ,OAAQ2qB,EAAK3qB,Q,mCGpDjB,SAASs5D,EAAMkiE,GACb,IAAI3sI,EAAM,IAAIgS,IACV0nE,EAAU,IAAIt4C,IACdtoC,EAAS,GAKb,SAASqlD,EAAKyuF,GACZlzD,EAAQr4C,IAAIurG,EAAS9rI,MACN,GAAG/F,OAAO6xI,EAASC,UAAY,GAAID,EAASE,kBAAoB,IACtEzpI,SAAQ,SAAUwnG,GACzB,IAAKnxB,EAAQx8E,IAAI2tG,GAAM,CACrB,IAAIkiC,EAAc/sI,EAAIxF,IAAIqwG,GAEtBkiC,GACF5uF,EAAK4uF,OAIXj0I,EAAOmB,KAAK2yI,GASd,OAzBAD,EAAUtpI,SAAQ,SAAUupI,GAC1B5sI,EAAI5C,IAAIwvI,EAAS9rI,KAAM8rI,MAkBzBD,EAAUtpI,SAAQ,SAAUupI,GACrBlzD,EAAQx8E,IAAI0vI,EAAS9rI,OAExBq9C,EAAKyuF,MAGF9zI,EC/BM,SAASqwE,EAAS7qD,GAC/B,IAAIxB,EACJ,OAAO,WAUL,OATKA,IACHA,EAAU,IAAIxkB,SAAQ,SAAUC,GAC9BD,QAAQC,UAAUS,MAAK,WACrB8jB,OAAUviB,EACVhC,EAAQ+lB,YAKPxB,GCEX,IAEIkwH,EAAkB,CACpB5uI,UAAW,SACXuuI,UAAW,GACX95C,SAAU,YAGZ,SAASo6C,IACP,IAAK,IAAI/4B,EAAOv9G,UAAUhC,OAAQ+d,EAAO,IAAI9c,MAAMs+G,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/EzhG,EAAKyhG,GAAQx9G,UAAUw9G,GAGzB,OAAQzhG,EAAK0xD,MAAK,SAAU75D,GAC1B,QAASA,GAAoD,oBAAlCA,EAAQ4N,0BAIhC,SAAS+0H,EAAgBC,QACL,IAArBA,IACFA,EAAmB,IAGrB,IAAIC,EAAoBD,EACpBE,EAAwBD,EAAkBE,iBAC1CA,OAA6C,IAA1BD,EAAmC,GAAKA,EAC3DE,EAAyBH,EAAkBI,eAC3CA,OAA4C,IAA3BD,EAAoCP,EAAkBO,EAC3E,OAAO,SAAsBvvI,EAAWD,EAAQ8K,QAC9B,IAAZA,IACFA,EAAU2kI,GAGZ,IAAIxwI,EAAQ,CACVoB,UAAW,SACXqvI,iBAAkB,GAClB5kI,QAAS7T,OAAOuB,OAAO,GAAIy2I,EAAiBQ,GAC5C/wB,cAAe,GACftlF,SAAU,CACRn5B,UAAWA,EACXD,OAAQA,GAEV2vI,WAAY,GACZrlG,OAAQ,IAENslG,EAAmB,GACnBC,GAAc,EACdx5I,EAAW,CACb4I,MAAOA,EACP6wI,WAAY,SAAoBhlI,GAC9BilI,IACA9wI,EAAM6L,QAAU7T,OAAOuB,OAAO,GAAIi3I,EAAgBxwI,EAAM6L,QAASA,GACjE7L,EAAM+wI,cAAgB,CACpB/vI,UAAWiH,YAAUjH,GAAay8G,YAAkBz8G,GAAaA,EAAUi+G,eAAiBxB,YAAkBz8G,EAAUi+G,gBAAkB,GAC1Il+G,OAAQ08G,YAAkB18G,IAI5B,IAAI0vI,EFtCG,SAAwBd,GAErC,IAAIc,EAAmBhjE,EAAMkiE,GAE7B,OAAOruI,IAAeJ,QAAO,SAAUC,EAAK6vI,GAC1C,OAAO7vI,EAAIpD,OAAO0yI,EAAiBxqI,QAAO,SAAU2pI,GAClD,OAAOA,EAASoB,QAAUA,QAE3B,IE8B0BC,CCxEhB,SAAqBtB,GAClC,IAAIuB,EAASvB,EAAUzuI,QAAO,SAAUgwI,EAAQx9H,GAC9C,IAAIy9H,EAAWD,EAAOx9H,EAAQ5P,MAK9B,OAJAotI,EAAOx9H,EAAQ5P,MAAQqtI,EAAWn5I,OAAOuB,OAAO,GAAI43I,EAAUz9H,EAAS,CACrE7H,QAAS7T,OAAOuB,OAAO,GAAI43I,EAAStlI,QAAS6H,EAAQ7H,SACrD2L,KAAMxf,OAAOuB,OAAO,GAAI43I,EAAS35H,KAAM9D,EAAQ8D,QAC5C9D,EACEw9H,IACN,IAEH,OAAOl5I,OAAOqL,KAAK6tI,GAAQluI,KAAI,SAAU9K,GACvC,OAAOg5I,EAAOh5I,MD6D4Bk5I,CAAY,GAAGrzI,OAAOuyI,EAAkBtwI,EAAM6L,QAAQ8jI,aAyC5F,OAvCA3vI,EAAMywI,iBAAmBA,EAAiBxqI,QAAO,SAAU7I,GACzD,OAAOA,EAAEu7D,WAqJb34D,EAAMywI,iBAAiBpqI,SAAQ,SAAUgrI,GACvC,IAAIvtI,EAAOutI,EAAMvtI,KACbwtI,EAAgBD,EAAMxlI,QACtBA,OAA4B,IAAlBylI,EAA2B,GAAKA,EAC1CC,EAASF,EAAME,OAEnB,GAAsB,oBAAXA,EAAuB,CAChC,IAAIC,EAAYD,EAAO,CACrBvxI,MAAOA,EACP8D,KAAMA,EACN1M,SAAUA,EACVyU,QAASA,IAGP4lI,EAAS,aAEbd,EAAiB1zI,KAAKu0I,GAAaC,OA/H9Br6I,EAAS+oB,UAOlBtK,YAAa,WACX,IAAI+6H,EAAJ,CAIA,IAAIc,EAAkB1xI,EAAMm6B,SACxBn5B,EAAY0wI,EAAgB1wI,UAC5BD,EAAS2wI,EAAgB3wI,OAG7B,GAAKkvI,EAAiBjvI,EAAWD,GAAjC,CASAf,EAAMimD,MAAQ,CACZjlD,UAAWmuI,EAAiBnuI,EAAW48G,YAAgB78G,GAAoC,UAA3Bf,EAAM6L,QAAQgqF,UAC9E90F,OAAQ4rI,YAAc5rI,IAOxBf,EAAMqjD,OAAQ,EACdrjD,EAAMoB,UAAYpB,EAAM6L,QAAQzK,UAKhCpB,EAAMywI,iBAAiBpqI,SAAQ,SAAUupI,GACvC,OAAO5vI,EAAMy/G,cAAcmwB,EAAS9rI,MAAQ9L,OAAOuB,OAAO,GAAIq2I,EAASp4H,SAIzE,IAFA,IAEShL,EAAQ,EAAGA,EAAQxM,EAAMywI,iBAAiB94I,OAAQ6U,IAUzD,IAAoB,IAAhBxM,EAAMqjD,MAAV,CAMA,IAAIsuF,EAAwB3xI,EAAMywI,iBAAiBjkI,GAC/C8U,EAAKqwH,EAAsBrwH,GAC3BswH,EAAyBD,EAAsB9lI,QAC/C0/D,OAAsC,IAA3BqmE,EAAoC,GAAKA,EACpD9tI,EAAO6tI,EAAsB7tI,KAEf,oBAAPwd,IACTthB,EAAQshB,EAAG,CACTthB,MAAOA,EACP6L,QAAS0/D,EACTznE,KAAMA,EACN1M,SAAUA,KACN4I,QAjBNA,EAAMqjD,OAAQ,EACd72C,GAAS,KAsBf2T,OAAQgsD,GAAS,WACf,OAAO,IAAI7wE,SAAQ,SAAUC,GAC3BnE,EAASye,cACTta,EAAQyE,SAGZ46E,QAAS,WACPk2D,IACAF,GAAc,IAIlB,IAAKX,EAAiBjvI,EAAWD,GAK/B,OAAO3J,EAmCT,SAAS05I,IACPH,EAAiBtqI,SAAQ,SAAUib,GACjC,OAAOA,OAETqvH,EAAmB,GAGrB,OAvCAv5I,EAASy5I,WAAWhlI,GAAS7P,MAAK,SAAUgE,IACrC4wI,GAAe/kI,EAAQgmI,eAC1BhmI,EAAQgmI,cAAc7xI,MAqCnB5I,K,6BE5PX,0GAEW06I,EAFX,gBAwBO,SAASC,EAAqBnkG,GACjC,MAAqB,oBAAPA,EAGX,SAASu/E,EAAcpoB,EAAKzM,EAASnhC,EAAY47B,EAASzmF,EAAQ0lI,EAEzE/sC,GAEI,GAAmB,IAAfF,EAAIptG,QAAgBshG,YAAiB8L,EAAI,IACzC,MAAO,CACH,CACIlhG,KAAMiuI,EAAU54C,QAChBx9F,MAAOqpG,EAAI,GAAGrpG,QAK1B,IADA,IAAII,EAAS,GACJsG,EAAK,EAAG6vI,EAAQltC,EAAK3iG,EAAK6vI,EAAMt6I,OAAQyK,IAAM,CACnD,IAAIwrC,EAAKqkG,EAAM7vI,GAEf,GAAI62F,YAAiBrrD,GACjB9xC,EAAOmB,KAAK,CACR4G,KAAMiuI,EAAU54C,QAChBx9F,MAAOkyC,EAAGlyC,aAMlB,GAAIk+F,YAAehsD,GACmB,kBAAvBokG,GACPl2I,EAAOmB,KAAK,CACR4G,KAAMiuI,EAAU54C,QAChBx9F,MAAOy7D,EAAWvoB,gBAAgB0pD,GAASzpD,OAAOmjG,SAJ9D,CASA,IAAIE,EAAUtkG,EAAGlyC,MAEjB,IAAM4Q,KAAU4lI,KAAW5lI,GACvB,MAAM,IAAIspH,IAAkBsc,EAASjtC,GAEzC,IAAIvpG,EAAQ4Q,EAAO4lI,GACnB,GAAI/4C,YAAkBvrD,GACblyC,GAA0B,kBAAVA,GAAuC,kBAAVA,IAC9CA,EACqB,kBAAVA,GAAuC,kBAAVA,EAC9BzC,OAAOyC,GACP,IAEdI,EAAOmB,KAAK,CACR4G,KAAuB,kBAAVnI,EAAqBo2I,EAAU54C,QAAU44C,EAAUhsI,OAChEpK,MAAOA,SAOf,GAAI49F,YAAc1rD,GAAlB,CACI,IAAIj9B,EAA4B,kBAAbi9B,EAAGj9B,MAChBoiF,EAAQrgD,KAAK9E,EAAGj9B,OAChBspF,YAAmBrsD,EAAGj9B,OAClBi9B,EAAGj9B,MAAMyxF,mBACT7kG,EACVzB,EAAOmB,KAAK,CACR4G,KAAMiuI,EAAU54C,QAChBx9F,MAAOy7D,EACF8gC,kBAAkBK,EAAS3nF,GAC3Bk+B,OAAOnzC,UAIpB,GAAI69F,YAAc3rD,GAAlB,CACQj9B,EAA4B,kBAAbi9B,EAAGj9B,MAChBoiF,EAAQX,KAAKxkD,EAAGj9B,OAChBspF,YAAmBrsD,EAAGj9B,OAClBi9B,EAAGj9B,MAAMyxF,mBACT7kG,EACVzB,EAAOmB,KAAK,CACR4G,KAAMiuI,EAAU54C,QAChBx9F,MAAOy7D,EACF8gC,kBAAkBK,EAAS3nF,GAC3Bk+B,OAAOnzC,UAIpB,GAAI29F,YAAgBzrD,GAApB,EACQj9B,EAA4B,kBAAbi9B,EAAGj9B,MAChBoiF,EAAQ1+C,OAAOzG,EAAGj9B,OAClBqpF,YAAiBpsD,EAAGj9B,OAChBi9B,EAAGj9B,MAAMyxF,mBACT7kG,IACGoT,EAAM2qB,QACf5/B,GAESiV,EAAM2qB,OAAS,GAE5Bx/B,EAAOmB,KAAK,CACR4G,KAAMiuI,EAAU54C,QAChBx9F,MAAOy7D,EACFvoB,gBAAgB0pD,EAAS3nF,GACzBk+B,OAAOnzC,SAfpB,CAmBA,GAAIo+F,YAAalsD,GAAK,CAClB,IAAIvjC,EAAWujC,EAAGvjC,SAAU8nI,EAAUvkG,EAAGlyC,MACrC02I,EAAW9lI,EAAO6lI,GACtB,IAAKJ,EAAqBK,GACtB,MAAM,IAAIzc,IAAsBwc,EAAS,WAAYltC,GAEzD,IACIotC,EAASD,EADDjlB,EAAc9iH,EAAUiuF,EAASnhC,EAAY47B,EAASzmF,EAAQ0lI,GAC9ChvI,KAAI,SAAUnK,GAAK,OAAOA,EAAE6C,UACnD9C,MAAM8I,QAAQ2wI,KACfA,EAAS,CAACA,IAEdv2I,EAAOmB,KAAKrD,MAAMkC,EAAQu2I,EAAOrvI,KAAI,SAAU3I,GAC3C,MAAO,CACHwJ,KAAmB,kBAANxJ,EAAiBy3I,EAAU54C,QAAU44C,EAAUhsI,OAC5DpK,MAAOrB,OAInB,GAAIm/F,YAAgB5rD,GAApB,CAEI,KADIiuD,EAAMjuD,EAAG/hC,QAAQnQ,IAAUkyC,EAAG/hC,QAAQ4lD,OAEtC,MAAM,IAAI+jE,IAAkB5nF,EAAGlyC,MAAOA,EAAO1D,OAAOqL,KAAKuqC,EAAG/hC,SAAUo5F,GAE1EnpG,EAAOmB,KAAKrD,MAAMkC,EAAQqxH,EAActxB,EAAIngG,MAAO48F,EAASnhC,EAAY47B,EAASzmF,SAGrF,GAAIotF,YAAgB9rD,GAApB,CACI,IAAIiuD,EACJ,KADIA,EAAMjuD,EAAG/hC,QAAQ,IAAMnQ,IACjB,CACN,IAAKgzC,KAAK0pD,YACN,MAAM,IAAIm9B,IAAY,kHAAqHD,IAAUgd,iBAAkBrtC,GAE3K,IAAIstC,EAAOp7E,EACNghC,eAAeG,EAAS,CAAEz0F,KAAM+pC,EAAGm1D,aACnCtJ,OAAO/9F,GAASkyC,EAAGuY,QAAU,IAClC01C,EAAMjuD,EAAG/hC,QAAQ0mI,IAAS3kG,EAAG/hC,QAAQ4lD,MAEzC,IAAKoqC,EACD,MAAM,IAAI25B,IAAkB5nF,EAAGlyC,MAAOA,EAAO1D,OAAOqL,KAAKuqC,EAAG/hC,SAAUo5F,GAE1EnpG,EAAOmB,KAAKrD,MAAMkC,EAAQqxH,EAActxB,EAAIngG,MAAO48F,EAASnhC,EAAY47B,EAASzmF,EAAQ5Q,GAASkyC,EAAGuY,QAAU,aAIvH,OAxKJ,SAAsBof,GAClB,OAAIA,EAAM5tE,OAAS,EACR4tE,EAEJA,EAAMrkE,QAAO,SAAUwC,EAAK8mG,GAC/B,IAAIE,EAAWhnG,EAAIA,EAAI/L,OAAS,GAShC,OARK+yG,GACDA,EAAS7mG,OAASiuI,EAAU54C,SAC5BsR,EAAK3mG,OAASiuI,EAAU54C,QAIxBwR,EAAShvG,OAAS8uG,EAAK9uG,MAHvBgI,EAAIzG,KAAKutG,GAKN9mG,IACR,IAyJI8uI,CAAa12I,IA5KxB,SAAWg2I,GACPA,EAAUA,EAAmB,QAAI,GAAK,UACtCA,EAAUA,EAAkB,OAAI,GAAK,SAFzC,CAGGA,IAAcA,EAAY,M,8BCN7B,yDAKIW,EAAwB,WACxBC,EAAuC,qBAAfC,WAA6BA,WAA+B,qBAAXlhI,OAAyBA,OAA2B,qBAAX08H,EAAyBA,EAAS,GAexJ,SAASyE,EAAmBl3I,GAC1B,IAAIm3I,EAAW,GACf,MAAO,CACL39H,GAAI,SAAYi5C,GACd0kF,EAAS51I,KAAKkxD,IAEhB/4C,IAAK,SAAa+4C,GAChB0kF,EAAWA,EAAS5sI,QAAO,SAAU4kB,GACnC,OAAOA,IAAMsjC,MAGjB3wD,IAAK,WACH,OAAO9B,GAET0E,IAAK,SAAau6H,EAAUmY,GAC1Bp3I,EAAQi/H,EACRkY,EAASxsI,SAAQ,SAAU8nD,GACzB,OAAOA,EAAQzyD,EAAOo3I,QAuI9B,IAAItmI,EAAQxC,IAAMrB,eA7HlB,SAA4ByZ,EAAc2wH,GACxC,IAAIC,EAAuBC,EAEvBC,EAAc,0BA3CpB,WACE,IAAIh7I,EAAM,uBACV,OAAOw6I,EAAex6I,IAAQw6I,EAAex6I,IAAQ,GAAK,EAyCZi7I,GAAgB,KAE1DjpI,EAAwB,SAAUkpI,GAGpC,SAASlpI,IACP,IAAIrD,EAIJ,OAFAA,EAAQusI,EAAWx5I,MAAMT,KAAMQ,YAAcR,MACvCk6I,QAAUT,EAAmB/rI,EAAMpP,MAAMiE,OACxCmL,EAPTmuG,YAAe9qG,EAAUkpI,GAUzB,IAAIE,EAASppI,EAAS5R,UAoCtB,OAlCAg7I,EAAOC,gBAAkB,WACvB,IAAI1pC,EAEJ,OAAOA,EAAO,IAASqpC,GAAe/5I,KAAKk6I,QAASxpC,GAGtDypC,EAAOE,0BAA4B,SAAmCC,GACpE,GAAIt6I,KAAK1B,MAAMiE,QAAU+3I,EAAU/3I,MAAO,CACxC,IAEIo3I,EAFAY,EAAWv6I,KAAK1B,MAAMiE,MACtBi/H,EAAW8Y,EAAU/3I,QA9DfkG,EAiEG8xI,MAjEAt3I,EAiEUu+H,GA/Dd,IAAN/4H,GAAW,EAAIA,IAAM,EAAIxF,EAEzBwF,IAAMA,GAAKxF,IAAMA,GA8DlB02I,EAAc,GAEdA,EAA8C,oBAAzBC,EAAsCA,EAAqBW,EAAU/Y,GAAY8X,EAQlF,KAFpBK,GAAe,IAGb35I,KAAKk6I,QAAQjzI,IAAIqzI,EAAU/3I,MAAOo3I,IA7E9C,IAAkBlxI,EAAGxF,GAmFjBk3I,EAAOvpI,OAAS,WACd,OAAO5Q,KAAK1B,MAAM4S,UAGbH,EA/CmB,CAgD1BI,aAEFJ,EAASw6G,oBAAqBsuB,EAAwB,IAA0BE,GAAeS,IAAU7tI,OAAO8tI,WAAYZ,GAE5H,IAAI1nI,EAAwB,SAAUuoI,GAGpC,SAASvoI,IACP,IAAIwoI,EAiBJ,OAfAA,EAASD,EAAYj6I,MAAMT,KAAMQ,YAAcR,MACxC6G,MAAQ,CACbtE,MAAOo4I,EAAOvrC,YAGhBurC,EAAOnpI,SAAW,SAAUgwH,EAAUmY,GAGC,MAFI,EAAtBgB,EAAOC,cAENjB,IAClBgB,EAAOxqI,SAAS,CACd5N,MAAOo4I,EAAOvrC,cAKburC,EApBT9+B,YAAe1pG,EAAUuoI,GAuBzB,IAAIG,EAAU1oI,EAAShT,UAkCvB,OAhCA07I,EAAQR,0BAA4B,SAAmCC,GACrE,IAAIM,EAAeN,EAAUM,aAC7B56I,KAAK46I,kBAAgCx2I,IAAjBw2I,GAA+C,OAAjBA,EAAwBtB,EAAwBsB,GAGpGC,EAAQnqI,kBAAoB,WACtB1Q,KAAKuP,QAAQwqI,IACf/5I,KAAKuP,QAAQwqI,GAAah+H,GAAG/b,KAAKwR,UAGpC,IAAIopI,EAAe56I,KAAK1B,MAAMs8I,aAC9B56I,KAAK46I,kBAAgCx2I,IAAjBw2I,GAA+C,OAAjBA,EAAwBtB,EAAwBsB,GAGpGC,EAAQlqI,qBAAuB,WACzB3Q,KAAKuP,QAAQwqI,IACf/5I,KAAKuP,QAAQwqI,GAAa99H,IAAIjc,KAAKwR,WAIvCqpI,EAAQzrC,SAAW,WACjB,OAAIpvG,KAAKuP,QAAQwqI,GACR/5I,KAAKuP,QAAQwqI,GAAa11I,MAE1B4kB,GAIX4xH,EAAQjqI,OAAS,WACf,OApHaM,EAoHIlR,KAAK1B,MAAM4S,SAnHzBzR,MAAM8I,QAAQ2I,GAAYA,EAAS,GAAKA,GAmHLlR,KAAK6G,MAAMtE,OApHvD,IAAmB2O,GAuHRiB,EA1DmB,CA2D1BhB,aAGF,OADAgB,EAASs5G,eAAgBquB,EAAwB,IAA0BC,GAAeS,IAAU7tI,OAAQmtI,GACrG,CACL/oI,SAAUA,EACVoB,SAAUA,IAMCkB,Q,mCC/Kf,IAAIynI,EAAU/8I,EAAQ,KAKtBF,EAAOC,QAAU+T,EACjBhU,EAAOC,QAAQomD,MAAQA,EACvBrmD,EAAOC,QAAQgU,QAsGf,SAAkBxJ,EAAKoK,GACrB,OAAOqoI,EAAiB72F,EAAM57C,EAAKoK,GAAUA,IAtG/C7U,EAAOC,QAAQi9I,iBAAmBA,EAClCl9I,EAAOC,QAAQk9I,eAAiBA,EAOhC,IAAIC,EAAc,IAAIlyG,OAAO,CAG3B,UAOA,0GACAp/B,KAAK,KAAM,KASb,SAASu6C,EAAO57C,EAAKoK,GAQnB,IAPA,IAKIypC,EALA0mD,EAAS,GACT9jG,EAAM,EACNsU,EAAQ,EACR/C,EAAO,GACP4qI,EAAmBxoI,GAAWA,EAAQyoI,WAAa,IAGf,OAAhCh/F,EAAM8+F,EAAY/nI,KAAK5K,KAAe,CAC5C,IAAIrE,EAAIk4C,EAAI,GACRi/F,EAAUj/F,EAAI,GACd6Q,EAAS7Q,EAAI9oC,MAKjB,GAJA/C,GAAQhI,EAAI/C,MAAM8N,EAAO25C,GACzB35C,EAAQ25C,EAAS/oD,EAAEzF,OAGf48I,EACF9qI,GAAQ8qI,EAAQ,OADlB,CAKA,IAAI34I,EAAO6F,EAAI+K,GACXu6B,EAASuO,EAAI,GACbxxC,EAAOwxC,EAAI,GACXk/F,EAAUl/F,EAAI,GACdk7E,EAAQl7E,EAAI,GACZs6F,EAAWt6F,EAAI,GACfm/F,EAAWn/F,EAAI,GAGf7rC,IACFuyF,EAAO/+F,KAAKwM,GACZA,EAAO,IAGT,IAAIirI,EAAoB,MAAV3tG,GAA0B,MAARnrC,GAAgBA,IAASmrC,EACrDnkC,EAAsB,MAAbgtI,GAAiC,MAAbA,EAC7B1hC,EAAwB,MAAb0hC,GAAiC,MAAbA,EAC/B0E,EAAYh/F,EAAI,IAAM++F,EACtBlyC,EAAUqyC,GAAWhkB,EAEzBx0B,EAAO/+F,KAAK,CACV6G,KAAMA,GAAQ5L,IACd6uC,OAAQA,GAAU,GAClButG,UAAWA,EACXpmC,SAAUA,EACVtrG,OAAQA,EACR8xI,QAASA,EACTD,WAAYA,EACZtyC,QAASA,EAAUwyC,EAAYxyC,GAAYsyC,EAAW,KAAO,KAAOG,EAAaN,GAAa,SAclG,OATI9nI,EAAQ/K,EAAI9J,SACd8R,GAAQhI,EAAIuL,OAAOR,IAIjB/C,GACFuyF,EAAO/+F,KAAKwM,GAGPuyF,EAoBT,SAAS64C,EAA0BpzI,GACjC,OAAOqzI,UAAUrzI,GAAK+J,QAAQ,WAAW,SAAUnR,GACjD,MAAO,IAAMA,EAAE4jG,WAAW,GAAG7+E,SAAS,IAAIgF,iBAmB9C,SAAS8vH,EAAkBl4C,EAAQnwF,GAKjC,IAHA,IAAIw2B,EAAU,IAAIzpC,MAAMojG,EAAOrkG,QAGtBD,EAAI,EAAGA,EAAIskG,EAAOrkG,OAAQD,IACR,kBAAdskG,EAAOtkG,KAChB2qC,EAAQ3qC,GAAK,IAAIwqC,OAAO,OAAS85D,EAAOtkG,GAAGyqG,QAAU,KAAM4yC,EAAMlpI,KAIrE,OAAO,SAAUlH,EAAKy7B,GAMpB,IALA,IAAI32B,EAAO,GACP+N,EAAO7S,GAAO,GAEdqwI,GADU50G,GAAQ,IACDj1B,OAAS0pI,EAA2BI,mBAEhDv9I,EAAI,EAAGA,EAAIskG,EAAOrkG,OAAQD,IAAK,CACtC,IAAIwkG,EAAQF,EAAOtkG,GAEnB,GAAqB,kBAAVwkG,EAAX,CAMA,IACI/rD,EADAz0C,EAAQ8b,EAAK0kF,EAAMp4F,MAGvB,GAAa,MAATpI,EAAe,CACjB,GAAIwgG,EAAMgS,SAAU,CAEdhS,EAAMw4C,UACRjrI,GAAQyyF,EAAMn1D,QAGhB,SAEA,MAAM,IAAIzvC,UAAU,aAAe4kG,EAAMp4F,KAAO,mBAIpD,GAAImwI,EAAQv4I,GAAZ,CACE,IAAKwgG,EAAMt5F,OACT,MAAM,IAAItL,UAAU,aAAe4kG,EAAMp4F,KAAO,kCAAoCyqC,KAAKC,UAAU9yC,GAAS,KAG9G,GAAqB,IAAjBA,EAAM/D,OAAc,CACtB,GAAIukG,EAAMgS,SACR,SAEA,MAAM,IAAI52G,UAAU,aAAe4kG,EAAMp4F,KAAO,qBAIpD,IAAK,IAAI3F,EAAI,EAAGA,EAAIzC,EAAM/D,OAAQwG,IAAK,CAGrC,GAFAgyC,EAAU6kG,EAAOt5I,EAAMyC,KAElBkkC,EAAQ3qC,GAAGgkG,KAAKvrD,GACnB,MAAM,IAAI74C,UAAU,iBAAmB4kG,EAAMp4F,KAAO,eAAiBo4F,EAAMiG,QAAU,oBAAsB5zD,KAAKC,UAAU2B,GAAW,KAGvI1mC,IAAe,IAANtL,EAAU+9F,EAAMn1D,OAASm1D,EAAMo4C,WAAankG,OApBzD,CA4BA,GAFAA,EAAU+rD,EAAMu4C,SA5EbK,UA4EuCp5I,GA5ExB8P,QAAQ,SAAS,SAAUnR,GAC/C,MAAO,IAAMA,EAAE4jG,WAAW,GAAG7+E,SAAS,IAAIgF,iBA2EW4wH,EAAOt5I,IAErD2mC,EAAQ3qC,GAAGgkG,KAAKvrD,GACnB,MAAM,IAAI74C,UAAU,aAAe4kG,EAAMp4F,KAAO,eAAiBo4F,EAAMiG,QAAU,oBAAsBhyD,EAAU,KAGnH1mC,GAAQyyF,EAAMn1D,OAASoJ,QArDrB1mC,GAAQyyF,EAwDZ,OAAOzyF,GAUX,SAASmrI,EAAcnzI,GACrB,OAAOA,EAAI+J,QAAQ,6BAA8B,QASnD,SAASmpI,EAAankB,GACpB,OAAOA,EAAMhlH,QAAQ,gBAAiB,QAUxC,SAAS0pI,EAAYC,EAAI9xI,GAEvB,OADA8xI,EAAG9xI,KAAOA,EACH8xI,EAST,SAASJ,EAAOlpI,GACd,OAAOA,GAAWA,EAAQG,UAAY,GAAK,IAwE7C,SAASmoI,EAAgBn4C,EAAQ34F,EAAMwI,GAChCooI,EAAQ5wI,KACXwI,EAAkCxI,GAAQwI,EAC1CxI,EAAO,IAUT,IALA,IAAI0I,GAFJF,EAAUA,GAAW,IAEAE,OACjBnL,GAAsB,IAAhBiL,EAAQjL,IACdi6D,EAAQ,GAGHnjE,EAAI,EAAGA,EAAIskG,EAAOrkG,OAAQD,IAAK,CACtC,IAAIwkG,EAAQF,EAAOtkG,GAEnB,GAAqB,kBAAVwkG,EACTrhC,GAAS+5E,EAAa14C,OACjB,CACL,IAAIn1D,EAAS6tG,EAAa14C,EAAMn1D,QAC5BytG,EAAU,MAAQt4C,EAAMiG,QAAU,IAEtC9+F,EAAKpG,KAAKi/F,GAENA,EAAMt5F,SACR4xI,GAAW,MAAQztG,EAASytG,EAAU,MAaxC35E,GANI25E,EAJAt4C,EAAMgS,SACHhS,EAAMw4C,QAGC3tG,EAAS,IAAMytG,EAAU,KAFzB,MAAQztG,EAAS,IAAMytG,EAAU,MAKnCztG,EAAS,IAAMytG,EAAU,KAOzC,IAAIF,EAAYM,EAAa/oI,EAAQyoI,WAAa,KAC9Cc,EAAoBv6E,EAAMn8D,OAAO41I,EAAU38I,UAAY28I,EAkB3D,OAZKvoI,IACH8uD,GAASu6E,EAAoBv6E,EAAMn8D,MAAM,GAAI41I,EAAU38I,QAAUkjE,GAAS,MAAQy5E,EAAY,WAI9Fz5E,GADEj6D,EACO,IAIAmL,GAAUqpI,EAAoB,GAAK,MAAQd,EAAY,MAG3DY,EAAW,IAAIhzG,OAAO,IAAM24B,EAAOk6E,EAAMlpI,IAAWxI,GAe7D,SAAS2H,EAAcvB,EAAMpG,EAAMwI,GAQjC,OAPKooI,EAAQ5wI,KACXwI,EAAkCxI,GAAQwI,EAC1CxI,EAAO,IAGTwI,EAAUA,GAAW,GAEjBpC,aAAgBy4B,OAlJtB,SAAyBz4B,EAAMpG,GAE7B,IAAIotH,EAAShnH,EAAKrD,OAAO+D,MAAM,aAE/B,GAAIsmH,EACF,IAAK,IAAI/4H,EAAI,EAAGA,EAAI+4H,EAAO94H,OAAQD,IACjC2L,EAAKpG,KAAK,CACR6G,KAAMpM,EACNqvC,OAAQ,KACRutG,UAAW,KACXpmC,UAAU,EACVtrG,QAAQ,EACR8xI,SAAS,EACTD,UAAU,EACVtyC,QAAS,OAKf,OAAO+yC,EAAWzrI,EAAMpG,GAgIfgyI,CAAe5rI,EAA6BpG,GAGjD4wI,EAAQxqI,GAxHd,SAAwBA,EAAMpG,EAAMwI,GAGlC,IAFA,IAAI05D,EAAQ,GAEH7tE,EAAI,EAAGA,EAAI+R,EAAK9R,OAAQD,IAC/B6tE,EAAMtoE,KAAK+N,EAAavB,EAAK/R,GAAI2L,EAAMwI,GAASzF,QAKlD,OAAO8uI,EAFM,IAAIhzG,OAAO,MAAQqjC,EAAMziE,KAAK,KAAO,IAAKiyI,EAAMlpI,IAEnCxI,GAgHjBiyI,CAAqC7rI,EAA8BpG,EAAOwI,GArGrF,SAAyBpC,EAAMpG,EAAMwI,GACnC,OAAOsoI,EAAe92F,EAAM5zC,EAAMoC,GAAUxI,EAAMwI,GAuG3C0pI,CAAsC9rI,EAA8BpG,EAAOwI,K,gBCxapF,IAuBIknG,EAvBmB77G,EAAQ,IAuBfs+I,EAAiB,SAAS15I,EAAQ25I,EAAMjpI,GACtD,OAAO1Q,GAAU0Q,EAAQ,IAAM,IAAMipI,EAAKr+G,iBAG5CpgC,EAAOC,QAAU87G,G,6BC1BF,SAAS2iC,EAAyBtvI,EAAQg/F,GACvD,GAAc,MAAVh/F,EAAgB,MAAO,GAC3B,IACIlO,EAAKR,EADLF,ECHS,SAAuC4O,EAAQg/F,GAC5D,GAAc,MAAVh/F,EAAgB,MAAO,GAC3B,IAEIlO,EAAKR,EAFLF,EAAS,GACT6tG,EAAartG,OAAOqL,KAAK+C,GAG7B,IAAK1O,EAAI,EAAGA,EAAI2tG,EAAW1tG,OAAQD,IACjCQ,EAAMmtG,EAAW3tG,GACb0tG,EAASrrG,QAAQ7B,IAAQ,IAC7BV,EAAOU,GAAOkO,EAAOlO,IAGvB,OAAOV,EDTM,CAA6B4O,EAAQg/F,GAGlD,GAAIptG,OAAOgC,sBAAuB,CAChC,IAAI27I,EAAmB39I,OAAOgC,sBAAsBoM,GAEpD,IAAK1O,EAAI,EAAGA,EAAIi+I,EAAiBh+I,OAAQD,IACvCQ,EAAMy9I,EAAiBj+I,GACnB0tG,EAASrrG,QAAQ7B,IAAQ,GACxBF,OAAOM,UAAU2B,qBAAqBlB,KAAKqN,EAAQlO,KACxDV,EAAOU,GAAOkO,EAAOlO,IAIzB,OAAOV,E,iEEjBT,6CAKA,SAASo+I,EAAc5lI,GACrB,OAAQA,GAAwB,MAAhBA,EAAKq3F,OAWvB,IAAIwuC,EAAa7rI,IAAM8E,YAAW,SAAU+6F,EAAM77F,GAChD,IAAI8nI,EAAUjsC,EAAK+X,GACft3G,OAAwB,IAAZwrI,EAAqB,IAAMA,EACvCp3F,EAAWmrD,EAAKnrD,SAChBq3F,EAAYlsC,EAAKksC,UACjBt+I,EAAQ0tG,YAA8B0E,EAAM,CAAC,KAAM,WAAY,cAE/DmsC,EAAc,SAAqB3mI,GACrC,IAAIW,EAAOvY,EAAMuY,KACbb,EAAU1X,EAAM0X,SAEhBuvC,GAAYk3F,EAAc5lI,KAC5BX,EAAME,iBAGJmvC,EACFrvC,EAAMoN,kBAIJtN,GACFA,EAAQE,IAuBZ,OAZIumI,EAAcn+I,EAAMuY,QACtBvY,EAAMwhB,KAAOxhB,EAAMwhB,MAAQ,SAG3BxhB,EAAMuY,KAAOvY,EAAMuY,MAAQ,KAGzB0uC,IACFjnD,EAAMw+I,UAAY,EAClBx+I,EAAM,kBAAmB,GAGPuS,IAAM2C,cAAcrC,EAAWxC,YAAS,CAC1DkG,IAAKA,GACJvW,EAAO,CACR0X,QAAS6mI,EACTD,UAAWG,aAvBO,SAAuB7mI,GACvB,MAAdA,EAAMnX,MACRmX,EAAME,iBACNymI,EAAY3mI,MAoBkC0mI,SAGpDF,EAAWjtI,YAAc,aACVitI,O,8BCrEf,SAASM,EAAmBC,EAAK76I,EAASC,EAAQ66I,EAAOC,EAAQp+I,EAAK6tE,GACpE,IACE,IAAIpoD,EAAOy4H,EAAIl+I,GAAK6tE,GAChBrqE,EAAQiiB,EAAKjiB,MACjB,MAAOmC,GAEP,YADArC,EAAOqC,GAIL8f,EAAK5hB,KACPR,EAAQG,GAERJ,QAAQC,QAAQG,GAAOM,KAAKq6I,EAAOC,GAIxB,SAASC,EAAkBj1H,GACxC,OAAO,WACL,IAAIzc,EAAO1L,KACPuc,EAAO/b,UACX,OAAO,IAAI2B,SAAQ,SAAUC,EAASC,GACpC,IAAI46I,EAAM90H,EAAG1nB,MAAMiL,EAAM6Q,GAEzB,SAAS2gI,EAAM36I,GACby6I,EAAmBC,EAAK76I,EAASC,EAAQ66I,EAAOC,EAAQ,OAAQ56I,GAGlE,SAAS46I,EAAOj0I,GACd8zI,EAAmBC,EAAK76I,EAASC,EAAQ66I,EAAOC,EAAQ,QAASj0I,GAGnEg0I,OAAM94I,OA/BZ,mC,6BCQA,IAAIvD,EAAwBhC,OAAOgC,sBAC/BlB,EAAiBd,OAAOM,UAAUQ,eAClC09I,EAAmBx+I,OAAOM,UAAU2B,qBAExC,SAASw8I,EAASh+G,GACjB,GAAY,OAARA,QAAwBl7B,IAARk7B,EACnB,MAAM,IAAInhC,UAAU,yDAGrB,OAAOU,OAAOygC,GA+CfzhC,EAAOC,QA5CP,WACC,IACC,IAAKe,OAAOuB,OACX,OAAO,EAMR,IAAIm9I,EAAQ,IAAIz9I,OAAO,OAEvB,GADAy9I,EAAM,GAAK,KACkC,MAAzC1+I,OAAOq+C,oBAAoBqgG,GAAO,GACrC,OAAO,EAKR,IADA,IAAIC,EAAQ,GACHj/I,EAAI,EAAGA,EAAI,GAAIA,IACvBi/I,EAAM,IAAM19I,OAAO8kG,aAAarmG,IAAMA,EAKvC,GAAwB,eAHXM,OAAOq+C,oBAAoBsgG,GAAO3zI,KAAI,SAAUtJ,GAC5D,OAAOi9I,EAAMj9I,MAEHoJ,KAAK,IACf,OAAO,EAIR,IAAI8zI,EAAQ,GAIZ,MAHA,uBAAuBt9G,MAAM,IAAIjzB,SAAQ,SAAUwwI,GAClDD,EAAMC,GAAUA,KAGf,yBADE7+I,OAAOqL,KAAKrL,OAAOuB,OAAO,GAAIq9I,IAAQ9zI,KAAK,IAM9C,MAAOT,GAER,OAAO,GAIQy0I,GAAoB9+I,OAAOuB,OAAS,SAAU/B,EAAQ4O,GAKtE,IAJA,IAAI7H,EAEAyH,EADA1H,EAAKm4I,EAASj/I,GAGTiC,EAAI,EAAGA,EAAIE,UAAUhC,OAAQ8B,IAAK,CAG1C,IAAK,IAAIvB,KAFTqG,EAAOvG,OAAO2B,UAAUF,IAGnBX,EAAeC,KAAKwF,EAAMrG,KAC7BoG,EAAGpG,GAAOqG,EAAKrG,IAIjB,GAAI8B,EAAuB,CAC1BgM,EAAUhM,EAAsBuE,GAChC,IAAK,IAAI7G,EAAI,EAAGA,EAAIsO,EAAQrO,OAAQD,IAC/B8+I,EAAiBz9I,KAAKwF,EAAMyH,EAAQtO,MACvC4G,EAAG0H,EAAQtO,IAAM6G,EAAKyH,EAAQtO,MAMlC,OAAO4G,I,cCxFRtH,EAAOC,QAAU,SAASD,GAoBzB,OAnBKA,EAAO23I,kBACX33I,EAAO+/I,UAAY,aACnB//I,EAAOggJ,MAAQ,GAEVhgJ,EAAOqT,WAAUrT,EAAOqT,SAAW,IACxCrS,OAAOC,eAAejB,EAAQ,SAAU,CACvCa,YAAY,EACZ2F,IAAK,WACJ,OAAOxG,EAAOyH,KAGhBzG,OAAOC,eAAejB,EAAQ,KAAM,CACnCa,YAAY,EACZ2F,IAAK,WACJ,OAAOxG,EAAOU,KAGhBV,EAAO23I,gBAAkB,GAEnB33I,I,8BClBRA,EAAOC,QAAU,SAAcqqB,EAAIpmB,GACjC,OAAO,WAEL,IADA,IAAIwa,EAAO,IAAI9c,MAAMe,UAAUhC,QACtBD,EAAI,EAAGA,EAAIge,EAAK/d,OAAQD,IAC/Bge,EAAKhe,GAAKiC,UAAUjC,GAEtB,OAAO4pB,EAAG1nB,MAAMsB,EAASwa,M,6BCN7B,IAAIuhI,EAAQ//I,EAAQ,IAEpB,SAAS89I,EAAOv8G,GACd,OAAOw8G,mBAAmBx8G,GACxBjtB,QAAQ,QAAS,KACjBA,QAAQ,OAAQ,KAChBA,QAAQ,QAAS,KACjBA,QAAQ,OAAQ,KAChBA,QAAQ,QAAS,KACjBA,QAAQ,QAAS,KAUrBxU,EAAOC,QAAU,SAAkByS,EAAKC,EAAQutI,GAE9C,IAAKvtI,EACH,OAAOD,EAGT,IAAIytI,EACJ,GAAID,EACFC,EAAmBD,EAAiBvtI,QAC/B,GAAIstI,EAAM1iC,kBAAkB5qG,GACjCwtI,EAAmBxtI,EAAOyV,eACrB,CACL,IAAImmD,EAAQ,GAEZ0xE,EAAM5wI,QAAQsD,GAAQ,SAAmB8uB,EAAKvgC,GAChC,OAARugC,GAA+B,qBAARA,IAIvBw+G,EAAMv1I,QAAQ+2B,GAChBvgC,GAAY,KAEZugC,EAAM,CAACA,GAGTw+G,EAAM5wI,QAAQoyB,GAAK,SAAoB37B,GACjCm6I,EAAM/iC,OAAOp3G,GACfA,EAAIA,EAAE2pG,cACGwwC,EAAMl1H,SAASjlB,KACxBA,EAAIyxC,KAAKC,UAAU1xC,IAErByoE,EAAMtoE,KAAK+3I,EAAO98I,GAAO,IAAM88I,EAAOl4I,WAI1Cq6I,EAAmB5xE,EAAMziE,KAAK,KAGhC,GAAIq0I,EAAkB,CACpB,IAAIC,EAAgB1tI,EAAI3P,QAAQ,MACT,IAAnBq9I,IACF1tI,EAAMA,EAAIhL,MAAM,EAAG04I,IAGrB1tI,KAA8B,IAAtBA,EAAI3P,QAAQ,KAAc,IAAM,KAAOo9I,EAGjD,OAAOztI,I,6BClET1S,EAAOC,QAAU,SAAkByE,GACjC,SAAUA,IAASA,EAAM27I,c,8BCH3B,YAEA,IAAIJ,EAAQ//I,EAAQ,IAChBogJ,EAAsBpgJ,EAAQ,KAE9BqgJ,EAAuB,CACzB,eAAgB,qCAGlB,SAASC,EAAsBC,EAAS/7I,IACjCu7I,EAAM1jC,YAAYkkC,IAAYR,EAAM1jC,YAAYkkC,EAAQ,mBAC3DA,EAAQ,gBAAkB/7I,GAgB9B,IAAI+9B,EAAW,CACbg4D,QAbF,WACE,IAAIA,EAQJ,OAP8B,qBAAnBimD,gBAGmB,qBAAZrgD,GAAuE,qBAA5Cr/F,OAAOM,UAAU8mB,SAASrmB,KAAKs+F,MAD1E5F,EAAUv6F,EAAQ,MAKbu6F,EAIEkmD,GAETC,iBAAkB,CAAC,SAA0BpgI,EAAMigI,GAGjD,OAFAH,EAAoBG,EAAS,UAC7BH,EAAoBG,EAAS,gBACzBR,EAAMtjC,WAAWn8F,IACnBy/H,EAAMxjC,cAAcj8F,IACpBy/H,EAAMvjC,SAASl8F,IACfy/H,EAAM5iC,SAAS78F,IACfy/H,EAAM9iC,OAAO38F,IACby/H,EAAM7iC,OAAO58F,GAENA,EAELy/H,EAAMpjC,kBAAkBr8F,GACnBA,EAAKw8F,OAEVijC,EAAM1iC,kBAAkB/8F,IAC1BggI,EAAsBC,EAAS,mDACxBjgI,EAAK4H,YAEV63H,EAAMl1H,SAASvK,IACjBggI,EAAsBC,EAAS,kCACxBlpG,KAAKC,UAAUh3B,IAEjBA,IAGTqgI,kBAAmB,CAAC,SAA2BrgI,GAE7C,GAAoB,kBAATA,EACT,IACEA,EAAO+2B,KAAK8O,MAAM7lC,GAClB,MAAO1d,IAEX,OAAO0d,IAOT00D,QAAS,EAET4rE,eAAgB,aAChBC,eAAgB,eAEhBC,kBAAmB,EACnBC,eAAgB,EAEhBC,eAAgB,SAAwBzV,GACtC,OAAOA,GAAU,KAAOA,EAAS,KAIrChpG,QAAmB,CACjBo3D,OAAQ,CACN,OAAU,uCAIdomD,EAAM5wI,QAAQ,CAAC,SAAU,MAAO,SAAS,SAA6BkF,GACpEkuB,EAASg+G,QAAQlsI,GAAU,MAG7B0rI,EAAM5wI,QAAQ,CAAC,OAAQ,MAAO,UAAU,SAA+BkF,GACrEkuB,EAASg+G,QAAQlsI,GAAU0rI,EAAMvzH,MAAM6zH,MAGzCvgJ,EAAOC,QAAUwiC,I,gDC/FjB,IAAIw9G,EAAQ//I,EAAQ,IAChB+H,EAAS/H,EAAQ,KACjBihJ,EAAUjhJ,EAAQ,KAClBkhJ,EAAWlhJ,EAAQ,KACnBmhJ,EAAgBnhJ,EAAQ,KACxBohJ,EAAephJ,EAAQ,KACvBqhJ,EAAkBrhJ,EAAQ,KAC1B+yG,EAAc/yG,EAAQ,KAE1BF,EAAOC,QAAU,SAAoB4pB,GACnC,OAAO,IAAIvlB,SAAQ,SAA4BC,EAASC,GACtD,IAAIg9I,EAAc33H,EAAOrJ,KACrBihI,EAAiB53H,EAAO42H,QAExBR,EAAMtjC,WAAW6kC,WACZC,EAAe,gBAGxB,IAAIC,EAAU,IAAIhB,eAGlB,GAAI72H,EAAO83H,KAAM,CACf,IAAIC,EAAW/3H,EAAO83H,KAAKC,UAAY,GACnCC,EAAWh4H,EAAO83H,KAAKE,SAAWC,SAAS7D,mBAAmBp0H,EAAO83H,KAAKE,WAAa,GAC3FJ,EAAeM,cAAgB,SAAWC,KAAKJ,EAAW,IAAMC,GAGlE,IAAII,EAAWZ,EAAcx3H,EAAOq4H,QAASr4H,EAAOnX,KA4EpD,GA3EAgvI,EAAQS,KAAKt4H,EAAOtV,OAAO6Y,cAAeg0H,EAASa,EAAUp4H,EAAOlX,OAAQkX,EAAOq2H,mBAAmB,GAGtGwB,EAAQxsE,QAAUrrD,EAAOqrD,QAGzBwsE,EAAQU,mBAAqB,WAC3B,GAAKV,GAAkC,IAAvBA,EAAQW,aAQD,IAAnBX,EAAQjW,QAAkBiW,EAAQY,aAAwD,IAAzCZ,EAAQY,YAAYv/I,QAAQ,UAAjF,CAKA,IAAIw/I,EAAkB,0BAA2Bb,EAAUJ,EAAaI,EAAQc,yBAA2B,KAEvGzX,EAAW,CACbvqH,KAFkBqJ,EAAO44H,cAAwC,SAAxB54H,EAAO44H,aAAiDf,EAAQ3W,SAA/B2W,EAAQgB,aAGlFjX,OAAQiW,EAAQjW,OAChBkX,WAAYjB,EAAQiB,WACpBlC,QAAS8B,EACT14H,OAAQA,EACR63H,QAASA,GAGXz5I,EAAO1D,EAASC,EAAQumI,GAGxB2W,EAAU,OAIZA,EAAQkB,QAAU,WACXlB,IAILl9I,EAAOyuG,EAAY,kBAAmBppF,EAAQ,eAAgB63H,IAG9DA,EAAU,OAIZA,EAAQmB,QAAU,WAGhBr+I,EAAOyuG,EAAY,gBAAiBppF,EAAQ,KAAM63H,IAGlDA,EAAU,MAIZA,EAAQoB,UAAY,WAClB,IAAIC,EAAsB,cAAgBl5H,EAAOqrD,QAAU,cACvDrrD,EAAOk5H,sBACTA,EAAsBl5H,EAAOk5H,qBAE/Bv+I,EAAOyuG,EAAY8vC,EAAqBl5H,EAAQ,eAC9C63H,IAGFA,EAAU,MAMRzB,EAAMxiC,uBAAwB,CAEhC,IAAIulC,GAAan5H,EAAOo5H,iBAAmB1B,EAAgBU,KAAcp4H,EAAOi3H,eAC9EK,EAAQ31G,KAAK3hB,EAAOi3H,qBACpBv6I,EAEEy8I,IACFvB,EAAe53H,EAAOk3H,gBAAkBiC,GAuB5C,GAlBI,qBAAsBtB,GACxBzB,EAAM5wI,QAAQoyI,GAAgB,SAA0BhgH,EAAKvgC,GAChC,qBAAhBsgJ,GAAqD,iBAAtBtgJ,EAAIk/B,qBAErCqhH,EAAevgJ,GAGtBwgJ,EAAQwB,iBAAiBhiJ,EAAKugC,MAM/Bw+G,EAAM1jC,YAAY1yF,EAAOo5H,mBAC5BvB,EAAQuB,kBAAoBp5H,EAAOo5H,iBAIjCp5H,EAAO44H,aACT,IACEf,EAAQe,aAAe54H,EAAO44H,aAC9B,MAAO3/I,GAGP,GAA4B,SAAxB+mB,EAAO44H,aACT,MAAM3/I,EAM6B,oBAA9B+mB,EAAOs5H,oBAChBzB,EAAQhkI,iBAAiB,WAAYmM,EAAOs5H,oBAIP,oBAA5Bt5H,EAAOu5H,kBAAmC1B,EAAQ2B,QAC3D3B,EAAQ2B,OAAO3lI,iBAAiB,WAAYmM,EAAOu5H,kBAGjDv5H,EAAOy5H,aAETz5H,EAAOy5H,YAAYz6H,QAAQ7jB,MAAK,SAAoB+3C,GAC7C2kG,IAILA,EAAQ6B,QACR/+I,EAAOu4C,GAEP2kG,EAAU,SAITF,IACHA,EAAc,MAIhBE,EAAQ8B,KAAKhC,Q,6BC9KjB,IAAIiC,EAAevjJ,EAAQ,KAY3BF,EAAOC,QAAU,SAAqBiN,EAAS2c,EAAQla,EAAM+xI,EAAS3W,GACpE,IAAIlkI,EAAQ,IAAIuG,MAAMF,GACtB,OAAOu2I,EAAa58I,EAAOgjB,EAAQla,EAAM+xI,EAAS3W,K,6BCdpD,IAAIkV,EAAQ//I,EAAQ,IAUpBF,EAAOC,QAAU,SAAqByjJ,EAASC,GAE7CA,EAAUA,GAAW,GACrB,IAAI95H,EAAS,GAET+5H,EAAuB,CAAC,MAAO,SAAU,QACzCC,EAA0B,CAAC,UAAW,OAAQ,QAAS,UACvDC,EAAuB,CACzB,UAAW,mBAAoB,oBAAqB,mBACpD,UAAW,iBAAkB,kBAAmB,UAAW,eAAgB,iBAC3E,iBAAkB,mBAAoB,qBAAsB,aAC5D,mBAAoB,gBAAiB,eAAgB,YAAa,YAClE,aAAc,cAAe,aAAc,oBAEzCC,EAAkB,CAAC,kBAEvB,SAASC,EAAexjJ,EAAQ4O,GAC9B,OAAI6wI,EAAMzjC,cAAch8G,IAAWy/I,EAAMzjC,cAAcptG,GAC9C6wI,EAAMvzH,MAAMlsB,EAAQ4O,GAClB6wI,EAAMzjC,cAAcptG,GACtB6wI,EAAMvzH,MAAM,GAAItd,GACd6wI,EAAMv1I,QAAQ0E,GAChBA,EAAO1H,QAET0H,EAGT,SAAS60I,EAAoBx4G,GACtBw0G,EAAM1jC,YAAYonC,EAAQl4G,IAEnBw0G,EAAM1jC,YAAYmnC,EAAQj4G,MACpC5hB,EAAO4hB,GAAQu4G,OAAez9I,EAAWm9I,EAAQj4G,KAFjD5hB,EAAO4hB,GAAQu4G,EAAeN,EAAQj4G,GAAOk4G,EAAQl4G,IAMzDw0G,EAAM5wI,QAAQu0I,GAAsB,SAA0Bn4G,GACvDw0G,EAAM1jC,YAAYonC,EAAQl4G,MAC7B5hB,EAAO4hB,GAAQu4G,OAAez9I,EAAWo9I,EAAQl4G,QAIrDw0G,EAAM5wI,QAAQw0I,EAAyBI,GAEvChE,EAAM5wI,QAAQy0I,GAAsB,SAA0Br4G,GACvDw0G,EAAM1jC,YAAYonC,EAAQl4G,IAEnBw0G,EAAM1jC,YAAYmnC,EAAQj4G,MACpC5hB,EAAO4hB,GAAQu4G,OAAez9I,EAAWm9I,EAAQj4G,KAFjD5hB,EAAO4hB,GAAQu4G,OAAez9I,EAAWo9I,EAAQl4G,OAMrDw0G,EAAM5wI,QAAQ00I,GAAiB,SAAet4G,GACxCA,KAAQk4G,EACV95H,EAAO4hB,GAAQu4G,EAAeN,EAAQj4G,GAAOk4G,EAAQl4G,IAC5CA,KAAQi4G,IACjB75H,EAAO4hB,GAAQu4G,OAAez9I,EAAWm9I,EAAQj4G,QAIrD,IAAIy4G,EAAYN,EACb78I,OAAO88I,GACP98I,OAAO+8I,GACP/8I,OAAOg9I,GAENI,EAAYnjJ,OACbqL,KAAKq3I,GACL38I,OAAO/F,OAAOqL,KAAKs3I,IACnB10I,QAAO,SAAyB/N,GAC/B,OAAmC,IAA5BgjJ,EAAUnhJ,QAAQ7B,MAK7B,OAFA++I,EAAM5wI,QAAQ80I,EAAWF,GAElBp6H,I,6BC7ET,SAASu6H,EAAOl3I,GACd/K,KAAK+K,QAAUA,EAGjBk3I,EAAO9iJ,UAAU8mB,SAAW,WAC1B,MAAO,UAAYjmB,KAAK+K,QAAU,KAAO/K,KAAK+K,QAAU,KAG1Dk3I,EAAO9iJ,UAAU++I,YAAa,EAE9BrgJ,EAAOC,QAAUmkJ,G,6BClBjB,YAEI/mF,EAAU,CACZA,SAAS,GAsCI,KACbvwD,KAAM,iBACN60D,SAAS,EACTq4E,MAAO,QACP1vH,GAAI,aACJiwH,OAxCF,SAAgB1nC,GACd,IAAI7pG,EAAQ6pG,EAAK7pG,MACb5I,EAAWyyG,EAAKzyG,SAChByU,EAAUg+F,EAAKh+F,QACfwvI,EAAkBxvI,EAAQ4jI,OAC1BA,OAA6B,IAApB4L,GAAoCA,EAC7CC,EAAkBzvI,EAAQiqC,OAC1BA,OAA6B,IAApBwlG,GAAoCA,EAC7C7pI,EAAStJ,YAAUnI,EAAMm6B,SAASp5B,QAClCgwI,EAAgB,GAAGhzI,OAAOiC,EAAM+wI,cAAc/vI,UAAWhB,EAAM+wI,cAAchwI,QAYjF,OAVI0uI,GACFsB,EAAc1qI,SAAQ,SAAU4mI,GAC9BA,EAAav4H,iBAAiB,SAAUtd,EAAS+oB,OAAQk0C,MAIzDve,GACFrkC,EAAOiD,iBAAiB,SAAUtd,EAAS+oB,OAAQk0C,GAG9C,WACDo7E,GACFsB,EAAc1qI,SAAQ,SAAU4mI,GAC9BA,EAAap5H,oBAAoB,SAAUzc,EAAS+oB,OAAQk0C,MAI5Dve,GACFrkC,EAAOoC,oBAAoB,SAAUzc,EAAS+oB,OAAQk0C,KAY1D78C,KAAM,K,6BC/CR,YAkBe,KACb1T,KAAM,gBACN60D,SAAS,EACTq4E,MAAO,OACP1vH,GApBF,SAAuBuoF,GACrB,IAAI7pG,EAAQ6pG,EAAK7pG,MACb8D,EAAO+lG,EAAK/lG,KAKhB9D,EAAMy/G,cAAc37G,GAAQs7G,YAAe,CACzCp+G,UAAWhB,EAAMimD,MAAMjlD,UACvBuM,QAASvN,EAAMimD,MAAMllD,OACrB80F,SAAU,WACVz0F,UAAWpB,EAAMoB,aAUnBoW,KAAM,K,6BCvBR,2DAQI+jI,EAAa,CACfl7I,IAAK,OACLE,MAAO,OACPD,OAAQ,OACRE,KAAM,QAgBD,SAASg7I,EAAYnxC,GAC1B,IAAIoxC,EAEA16I,EAASspG,EAAMtpG,OACfg+G,EAAa1U,EAAM0U,WACnB39G,EAAYipG,EAAMjpG,UAClBgzF,EAAUiW,EAAMjW,QAChBphF,EAAWq3F,EAAMr3F,SACjB0oI,EAAkBrxC,EAAMqxC,gBACxBC,EAAWtxC,EAAMsxC,SACjBC,EAAevxC,EAAMuxC,aAErBvK,GAAyB,IAAjBuK,EAvBd,SAA2B/xC,GACzB,IAAIjoG,EAAIioG,EAAKjoG,EACTxF,EAAIytG,EAAKztG,EAETo5D,EADM/jD,OACIsoB,kBAAoB,EAClC,MAAO,CACLn4B,EAAG0jB,YAAMA,YAAM1jB,EAAI4zD,GAAOA,IAAQ,EAClCp5D,EAAGkpB,YAAMA,YAAMlpB,EAAIo5D,GAAOA,IAAQ,GAgBAqmF,CAAkBznD,GAAmC,oBAAjBwnD,EAA8BA,EAAaxnD,GAAWA,EAC1H0nD,EAAUzK,EAAMzvI,EAChBA,OAAgB,IAAZk6I,EAAqB,EAAIA,EAC7BC,EAAU1K,EAAMj1I,EAChBA,OAAgB,IAAZ2/I,EAAqB,EAAIA,EAE7BC,EAAO5nD,EAAQt7F,eAAe,KAC9BmjJ,EAAO7nD,EAAQt7F,eAAe,KAC9BojJ,EAAQ17I,IACR27I,EAAQ97I,IACRi8G,EAAM7qG,OAEV,GAAIkqI,EAAU,CACZ,IAAI37B,EAAepC,YAAgB78G,GAC/Bq7I,EAAa,eACbC,EAAY,cAEZr8B,IAAiB73G,YAAUpH,KAC7Bi/G,EAAeva,YAAmB1kG,GAEc,WAA5CmqC,YAAiB80E,GAAchtG,WACjCopI,EAAa,eACbC,EAAY,gBAKhBr8B,EAAeA,EAEX5+G,IAAcf,MAChB87I,EAAQ77I,IAERlE,GAAK4jH,EAAao8B,GAAcr9B,EAAW5qG,OAC3C/X,GAAKs/I,EAAkB,GAAK,GAG1Bt6I,IAAcZ,MAChB07I,EAAQ37I,IAERqB,GAAKo+G,EAAaq8B,GAAat9B,EAAWvhG,MAC1C5b,GAAK85I,EAAkB,GAAK,GAIhC,IAKMY,EALFC,EAAevkJ,OAAOuB,OAAO,CAC/ByZ,SAAUA,GACT2oI,GAAYJ,GAEf,OAAIG,EAGK1jJ,OAAOuB,OAAO,GAAIgjJ,IAAeD,EAAiB,IAAmBH,GAASF,EAAO,IAAM,GAAIK,EAAeJ,GAASF,EAAO,IAAM,GAAIM,EAAe5gI,WAAa4gG,EAAIviF,kBAAoB,GAAK,EAAI,aAAen4B,EAAI,OAASxF,EAAI,MAAQ,eAAiBwF,EAAI,OAASxF,EAAI,SAAUkgJ,IAG3RtkJ,OAAOuB,OAAO,GAAIgjJ,IAAed,EAAkB,IAAoBU,GAASF,EAAO7/I,EAAI,KAAO,GAAIq/I,EAAgBS,GAASF,EAAOp6I,EAAI,KAAO,GAAI65I,EAAgB//H,UAAY,GAAI+/H,IAsD/K,KACb33I,KAAM,gBACN60D,SAAS,EACTq4E,MAAO,cACP1vH,GAvDF,SAAuBk7H,GACrB,IAAIx8I,EAAQw8I,EAAMx8I,MACd6L,EAAU2wI,EAAM3wI,QAChB4wI,EAAwB5wI,EAAQ6vI,gBAChCA,OAA4C,IAA1Be,GAA0CA,EAC5DC,EAAoB7wI,EAAQ8vI,SAC5BA,OAAiC,IAAtBe,GAAsCA,EACjDC,EAAwB9wI,EAAQ+vI,aAChCA,OAAyC,IAA1Be,GAA0CA,EAYzDJ,EAAe,CACjBn7I,UAAW03F,YAAiB94F,EAAMoB,WAClCL,OAAQf,EAAMm6B,SAASp5B,OACvBg+G,WAAY/+G,EAAMimD,MAAMllD,OACxB26I,gBAAiBA,GAGsB,MAArC17I,EAAMy/G,cAAcN,gBACtBn/G,EAAMqrC,OAAOtqC,OAAS/I,OAAOuB,OAAO,GAAIyG,EAAMqrC,OAAOtqC,OAAQy6I,EAAYxjJ,OAAOuB,OAAO,GAAIgjJ,EAAc,CACvGnoD,QAASp0F,EAAMy/G,cAAcN,cAC7BnsG,SAAUhT,EAAM6L,QAAQgqF,SACxB8lD,SAAUA,EACVC,aAAcA,OAIe,MAA7B57I,EAAMy/G,cAAcm9B,QACtB58I,EAAMqrC,OAAOuxG,MAAQ5kJ,OAAOuB,OAAO,GAAIyG,EAAMqrC,OAAOuxG,MAAOpB,EAAYxjJ,OAAOuB,OAAO,GAAIgjJ,EAAc,CACrGnoD,QAASp0F,EAAMy/G,cAAcm9B,MAC7B5pI,SAAU,WACV2oI,UAAU,EACVC,aAAcA,OAIlB57I,EAAM0wI,WAAW3vI,OAAS/I,OAAOuB,OAAO,GAAIyG,EAAM0wI,WAAW3vI,OAAQ,CACnE,wBAAyBf,EAAMoB,aAUjCoW,KAAM,K,6BCzJR,mBA8Ce,KACb1T,KAAM,SACN60D,SAAS,EACTq4E,MAAO,OACPnB,SAAU,CAAC,iBACXvuH,GA5BF,SAAgB+oF,GACd,IAAIrqG,EAAQqqG,EAAMrqG,MACd6L,EAAUw+F,EAAMx+F,QAChB/H,EAAOumG,EAAMvmG,KACb+4I,EAAkBhxI,EAAQs6C,OAC1BA,OAA6B,IAApB02F,EAA6B,CAAC,EAAG,GAAKA,EAC/CrlI,EAAOnW,IAAWH,QAAO,SAAUC,EAAKC,GAE1C,OADAD,EAAIC,GA5BD,SAAiCA,EAAW6kD,EAAOE,GACxD,IAAIsnF,EAAgB30C,YAAiB13F,GACjC07I,EAAiB,CAACt8I,IAAMH,KAAKtG,QAAQ0zI,IAAkB,GAAK,EAAI,EAEhE5jC,EAAyB,oBAAX1jD,EAAwBA,EAAOnuD,OAAOuB,OAAO,GAAI0sD,EAAO,CACxE7kD,UAAWA,KACP+kD,EACF42F,EAAWlzC,EAAK,GAChB9iF,EAAW8iF,EAAK,GAIpB,OAFAkzC,EAAWA,GAAY,EACvBh2H,GAAYA,GAAY,GAAK+1H,EACtB,CAACt8I,IAAMD,KAAOxG,QAAQ0zI,IAAkB,EAAI,CACjD7rI,EAAGmlB,EACH3qB,EAAG2gJ,GACD,CACFn7I,EAAGm7I,EACH3gJ,EAAG2qB,GAWci2H,CAAwB57I,EAAWpB,EAAMimD,MAAOE,GAC1DhlD,IACN,IACC87I,EAAwBzlI,EAAKxX,EAAMoB,WACnCQ,EAAIq7I,EAAsBr7I,EAC1BxF,EAAI6gJ,EAAsB7gJ,EAEW,MAArC4D,EAAMy/G,cAAcN,gBACtBn/G,EAAMy/G,cAAcN,cAAcv9G,GAAKA,EACvC5B,EAAMy/G,cAAcN,cAAc/iH,GAAKA,GAGzC4D,EAAMy/G,cAAc37G,GAAQ0T,K,6BC1C9B,6EA4Fe,KACb1T,KAAM,QACN60D,SAAS,EACTq4E,MAAO,OACP1vH,GA9EF,SAAeuoF,GACb,IAAIqzC,EAEAl9I,EAAQ6pG,EAAK7pG,MACb8D,EAAO+lG,EAAK/lG,KACZ+H,EAAUg+F,EAAKh+F,QACfsxI,EAAen9I,EAAMm6B,SAASyiH,MAC9Bz9B,EAAgBn/G,EAAMy/G,cAAcN,cACpCsuB,EAAgB30C,YAAiB94F,EAAMoB,WACvCy3C,EAAOszF,YAAyBsB,GAEhC7qH,EADa,CAACpiB,IAAMD,KAAOxG,QAAQ0zI,IAAkB,EAClC,SAAW,QAElC,GAAK0P,GAAiBh+B,EAAtB,CAIA,IAAIT,EAxBgB,SAAyBrqG,EAASrU,GAItD,OAHAqU,EAA6B,oBAAZA,EAAyBA,EAAQrc,OAAOuB,OAAO,GAAIyG,EAAMimD,MAAO,CAC/E7kD,UAAWpB,EAAMoB,aACbiT,EACCsqG,YAAsC,kBAAZtqG,EAAuBA,EAAUuqG,YAAgBvqG,EAAS3T,MAoBvE08I,CAAgBvxI,EAAQwI,QAASrU,GACjDq9I,EAAY1Q,YAAcwQ,GAC1BG,EAAmB,MAATzkG,EAAex4C,IAAMG,IAC/B+8I,EAAmB,MAAT1kG,EAAev4C,IAASC,IAClCi9I,EAAUx9I,EAAMimD,MAAMjlD,UAAU4hB,GAAO5iB,EAAMimD,MAAMjlD,UAAU63C,GAAQsmE,EAActmE,GAAQ74C,EAAMimD,MAAMllD,OAAO6hB,GAC9G66H,EAAYt+B,EAActmE,GAAQ74C,EAAMimD,MAAMjlD,UAAU63C,GACxD6kG,EAAoB9/B,YAAgBu/B,GACpCQ,EAAaD,EAA6B,MAAT7kG,EAAe6kG,EAAkB1wG,cAAgB,EAAI0wG,EAAkB3wG,aAAe,EAAI,EAC3H6wG,EAAoBJ,EAAU,EAAIC,EAAY,EAG9C13H,EAAM24F,EAAc4+B,GACpBt3H,EAAM23H,EAAaN,EAAUz6H,GAAO87F,EAAc6+B,GAClDr5F,EAASy5F,EAAa,EAAIN,EAAUz6H,GAAO,EAAIg7H,EAC/Cz3F,EAAS0mF,YAAO9mH,EAAKm+B,EAAQl+B,GAE7B63H,EAAWhlG,EACf74C,EAAMy/G,cAAc37G,KAASo5I,EAAwB,IAA0BW,GAAY13F,EAAQ+2F,EAAsBY,aAAe33F,EAASjC,EAAQg5F,KA6CzJ3L,OA1CF,SAAgBlnC,GACd,IAAIrqG,EAAQqqG,EAAMrqG,MAEd+9I,EADU1zC,EAAMx+F,QACW0B,QAC3B4vI,OAAoC,IAArBY,EAA8B,sBAAwBA,EAErD,MAAhBZ,IAKwB,kBAAjBA,IACTA,EAAen9I,EAAMm6B,SAASp5B,OAAOs6G,cAAc8hC,MAahD1oF,YAASz0D,EAAMm6B,SAASp5B,OAAQo8I,KAQrCn9I,EAAMm6B,SAASyiH,MAAQO,IAUvBtN,SAAU,CAAC,iBACXC,iBAAkB,CAAC,qB,6BCnGrB,mBAGA,SAASkO,EAAexR,EAAU1tG,EAAMm/G,GAQtC,YAPyB,IAArBA,IACFA,EAAmB,CACjBr8I,EAAG,EACHxF,EAAG,IAIA,CACLiE,IAAKmsI,EAASnsI,IAAMy+B,EAAK3qB,OAAS8pI,EAAiB7hJ,EACnDmE,MAAOisI,EAASjsI,MAAQu+B,EAAKthB,MAAQygI,EAAiBr8I,EACtDtB,OAAQksI,EAASlsI,OAASw+B,EAAK3qB,OAAS8pI,EAAiB7hJ,EACzDoE,KAAMgsI,EAAShsI,KAAOs+B,EAAKthB,MAAQygI,EAAiBr8I,GAIxD,SAASs8I,EAAsB1R,GAC7B,MAAO,CAACnsI,IAAKE,IAAOD,IAAQE,KAAM4mE,MAAK,SAAU+2E,GAC/C,OAAO3R,EAAS2R,IAAS,KAiCd,KACbr6I,KAAM,OACN60D,SAAS,EACTq4E,MAAO,OACPlB,iBAAkB,CAAC,mBACnBxuH,GAlCF,SAAcuoF,GACZ,IAAI7pG,EAAQ6pG,EAAK7pG,MACb8D,EAAO+lG,EAAK/lG,KACZs6I,EAAgBp+I,EAAMimD,MAAMjlD,UAC5B+9G,EAAa/+G,EAAMimD,MAAMllD,OACzBk9I,EAAmBj+I,EAAMy/G,cAAc4+B,gBACvCC,EAAoBrgC,YAAej+G,EAAO,CAC5Cs+G,eAAgB,cAEdigC,EAAoBtgC,YAAej+G,EAAO,CAC5Cw+G,aAAa,IAEXggC,EAA2BR,EAAeM,EAAmBF,GAC7DK,EAAsBT,EAAeO,EAAmBx/B,EAAYk/B,GACpES,EAAoBR,EAAsBM,GAC1CG,EAAmBT,EAAsBO,GAC7Cz+I,EAAMy/G,cAAc37G,GAAQ,CAC1B06I,yBAA0BA,EAC1BC,oBAAqBA,EACrBC,kBAAmBA,EACnBC,iBAAkBA,GAEpB3+I,EAAM0wI,WAAW3vI,OAAS/I,OAAOuB,OAAO,GAAIyG,EAAM0wI,WAAW3vI,OAAQ,CACnE,+BAAgC29I,EAChC,sBAAuBC,O,6BCjD3B,WACIj2I,EADJ,OACcsB,EAAMrB,cAAc,MAClCD,EAAQE,YAAc,cACPF,O,6BCgCAwtI,IA1Bf,WACE,IAAK,IAAIh/B,EAAOv9G,UAAUhC,OAAQinJ,EAAQ,IAAIhmJ,MAAMs+G,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAChFynC,EAAMznC,GAAQx9G,UAAUw9G,GAG1B,OAAOynC,EAAM34I,QAAO,SAAU9J,GAC5B,OAAY,MAALA,KACN+E,QAAO,SAAUC,EAAKhF,GACvB,GAAiB,oBAANA,EACT,MAAM,IAAIiI,MAAM,2EAGlB,OAAY,OAARjD,EAAqBhF,EAClB,WACL,IAAK,IAAI0iJ,EAAQllJ,UAAUhC,OAAQ+d,EAAO,IAAI9c,MAAMimJ,GAAQC,EAAQ,EAAGA,EAAQD,EAAOC,IACpFppI,EAAKopI,GAASnlJ,UAAUmlJ,GAI1B39I,EAAIvH,MAAMT,KAAMuc,GAEhBvZ,EAAEvC,MAAMT,KAAMuc,MAEf,Q,6MtFpBCqpI,EAAsB,Q,SAEZC,EAAgBhxI,EAAsBtS,GACjC,oBAARsS,EACTA,EAAItS,GACKsS,IACTA,EAAI0F,QAAUhY,G,SAYFujJ,EAKdC,EACAC,GAEAD,EAAYhiG,OAASiiG,E,SAGPC,EAKdF,EACAG,G,IACAC,EAAe,UAAH,6CAAGP,EAETQ,EAA8C,GAEpDL,EAAYplH,SAAWulH,EAAar8I,KAAI,SACrCw8I,GAEC,IAAMC,EAAiBP,EAAYplH,SAAS4lH,MAAK,SAC9C7kG,GAAgC,OAC/BA,EAAQykG,KAAkBE,EAAYF,MAI1C,OACGG,GACAD,EAAYhoI,OACb+nI,EAAcn6G,SAASq6G,IAKzBF,EAActiJ,KAAKwiJ,GAEnBznJ,OAAOuB,OAAOkmJ,EAAgBD,GAEvBC,GAPE,eAAKD,M,SAYJG,EAIdnoI,G,IAAuC8nI,EAAe,UAAH,6CAAGP,EAChDa,EAA4C,CAChD1iG,OAAQ,GACRpjB,SAAU,IAMZ,OAHAmlH,EAAUW,EAAUpoI,EAAK0lC,QACzBkiG,EAAYQ,EAAUpoI,EAAKsiB,SAAUwlH,GAE9BM,E,SuF9EAC,EAKP5vC,EAYAjiG,G,MAZAiiG,EACE97F,cAAM,IAAG,MAAG,IADd87F,EAEEzyF,aAAK,IAAG,MAAG,IAFbyyF,EAGE6vC,cAAM,IAAG,GAAK,EACdR,EAJFrvC,EAIEqvC,aACAz7I,EALFosG,EAKEpsG,KACA2T,EANFy4F,EAMEz4F,KACA3L,EAPFokG,EAOEpkG,QAAO,EAPTokG,EAQE70E,eAAO,IAAG,KAAE,EACZ2kH,EATF9vC,EASE8vC,gBACGtoJ,EAAK,YAVVw4G,EAWmC,GAK7B+vC,EAAYzsI,iBAA0B,MACtC0sI,EAAW1sI,mBAEX2sI,EAAc,WACbF,EAAUtsI,UAEfusI,EAASvsI,QAAU,IAAIysI,IAAQH,EAAUtsI,QAAS,CAChD7P,OACA2T,KAAMmoI,EAAUnoI,EAAM8nI,GACtBzzI,UACAuvB,YAGF4jH,EAAahxI,EAAKiyI,EAASvsI,WAGvB0sI,EAAe,WACnBpB,EAAahxI,EAAK,MAEdiyI,EAASvsI,UACXusI,EAASvsI,QAAQknE,UACjBqlE,EAASvsI,QAAU,OAuCvB,OAnCAkB,qBAAU,W,IvFjCVolB,EAAoCtZ,GuFkC7Bo/H,GAAUG,EAASvsI,SAAW7H,IvFlCrCmuB,EuFmCeimH,EAASvsI,QvFnCYgN,EuFmCH7U,EvFlCjCmuB,EAAMnuB,QAAU,eAAK6U,MuFoClB,CAACo/H,EAAQj0I,IAEZ+I,qBAAU,YACHkrI,GAAUG,EAASvsI,SACtBurI,EAAUgB,EAASvsI,QAAQmN,OAAOrJ,KAAMA,EAAK0lC,UAE9C,CAAC4iG,EAAQtoI,EAAK0lC,SAEjBtoC,qBAAU,YACHkrI,GAAUG,EAASvsI,SAAW8D,EAAKsiB,UACtCslH,EAAYa,EAASvsI,QAAQmN,OAAOrJ,KAAMA,EAAKsiB,SAAUwlH,KAE1D,CAACQ,EAAQtoI,EAAKsiB,WAEjBllB,qBAAU,WACHqrI,EAASvsI,UAEVosI,GACFM,IACA7rI,WAAW2rI,IAEXD,EAASvsI,QAAQyM,YAElB,CAAC2/H,EAAQj0I,EAAS2L,EAAK0lC,OAAQ1lC,EAAKsiB,WAEvCllB,qBAAU,WAGR,OAFAsrI,IAEO,WAAP,OAAaE,OACZ,IAEH,kBACG1iH,wBAAO1vB,IAAKgyI,EAAW/mI,KAAK,MAAM9E,OAAQA,EAAQqJ,MAAOA,GAAW/lB,GAClEsoJ,GAKK,IAACj1E,EAAQh8D,qBAAW+wI,G,SChFvBQ,EACPx8I,EACA2xF,GAIA,OAFA2qD,IAAQl7E,SAASuwB,GAEV1mF,sBAAU,SACdrX,EAAOuW,GAAG,yBAAM88D,EAAK,iBAAKrzE,EAAK,CAAEuW,IAAKA,EAAKnK,KAAMA,QAI1C,IAACy8I,EAAuBD,EAAiB,OAAQj2F,KAEFnH,IAEI4J,IAI7DlG,IAKAgF,IAKApF,IAGyDqG,IAIzDK,K,kCCzDF,UAEIszF,EAAO,CAAC,EAAW,aAAyB,2BAAP,EAUhC,SAAUtpJ,EAASupJ,GAC1B,aAEAxoJ,OAAOC,eAAehB,EAAS,aAAc,CAC3CyE,OAAO,IAGT,IAAI+kJ,EAAevR,EAAuBsR,GAE1C,SAAStR,EAAuBvqI,GAC9B,OAAOA,GAAOA,EAAIhF,WAAagF,EAAM,CACnC9E,QAAS8E,GAIb1N,EAAQ4I,QAAU4gJ,EAAa5gJ,UAzBe,gC,6BCAhD7H,OAAOC,eAAehB,EAAS,aAAc,CAC3CyE,OAAO,IAETzE,EAAQ4I,aAAU,EAElB,IAEgC8E,EAF5B+7I,GAE4B/7I,EAFSzN,EAAQ,MAEIyN,EAAIhF,WAAagF,EAAM,CAAE9E,QAAS8E,GAIvF,IAAIg8I,EAAW,CACbC,KAAM,SAAcC,GAClB,OAAO,EAAIH,EAAY7gJ,SAJ3B,SAAyB8E,EAAKzM,EAAKwD,GAAiK,OAApJxD,KAAOyM,EAAO3M,OAAOC,eAAe0M,EAAKzM,EAAK,CAAEwD,MAAOA,EAAO7D,YAAY,EAAMC,cAAc,EAAMC,UAAU,IAAkB4M,EAAIzM,GAAOwD,EAAgBiJ,EAIvK6gG,CAAgB,CAC9C,iBAAiB,GAChBq7C,GAAmB,KAAMA,KAE9BC,SAAU,SAAkBC,GAC1B,OAAO,EAAIL,EAAY7gJ,SAAS,CAC9BmhJ,UAAU,EACV,kBAAmBD,KAGvBE,QAAS,SAAiBF,EAAUloG,GAClC,OAAO,EAAI6nG,EAAY7gJ,SAAS,CAC9B,kBAAmBkhJ,EACnB,iBAAkBA,EAClB,kBAA4B,eAATloG,EACnB,gBAA0B,eAATA,KAGrBqoG,OAAQ,SAAgBH,EAAUI,GAChC,OAAO,EAAIT,EAAY7gJ,SAAS,CAC9BuhJ,QAASL,EACTM,OAAQN,EACR71F,UAAWi2F,KAGfG,KAAM,SAAcP,EAAU9Z,EAAUznG,GACtC,OAAO,EAAIkhH,EAAY7gJ,SAAS,CAC9B0hJ,OAAQR,EACRS,MAAOT,EACP9Z,SAAUA,EACVznG,SAAUA,KAGdiiH,WAAY,SAAoB/iG,GAC9B,OAAO,EAAIgiG,EAAY7gJ,SAAS,CAC9B,8BAA8B,EAC9B,mBAAoB6+C,KAGxBgjG,WAAY,SAAoBhjG,GAC9B,OAAO,EAAIgiG,EAAY7gJ,SAAS,CAC9B,8BAA8B,EAC9B,mBAAoB6+C,KAGxBijG,IAAK,SAAa1a,GAChB,OAAO,EAAIyZ,EAAY7gJ,SAAS,CAC9B+hJ,KAAK,EACL3a,SAAUA,MAIhBhwI,EAAQ4I,QAAU8gJ,G,6BCjElB3oJ,OAAOC,eAAehB,EAAS,aAAc,CAC3CyE,OAAO,IAETzE,EAAQ4I,aAAU,EAElB,IAAIgiJ,EAgBJ,SAAiCl9I,GAAO,GAAIA,GAAOA,EAAIhF,WAAc,OAAOgF,EAAO,GAAY,OAARA,GAAiC,WAAjBD,EAAQC,IAAoC,oBAARA,EAAsB,MAAO,CAAE9E,QAAS8E,GAAS,IAAIkG,EAAQi3I,IAA4B,GAAIj3I,GAASA,EAAM3K,IAAIyE,GAAQ,OAAOkG,EAAMrN,IAAImH,GAAQ,IAAI6tG,EAAS,GAAQuvC,EAAwB/pJ,OAAOC,gBAAkBD,OAAOuC,yBAA0B,IAAK,IAAIrC,KAAOyM,EAAO,GAAI3M,OAAOM,UAAUQ,eAAeC,KAAK4L,EAAKzM,GAAM,CAAE,IAAIkC,EAAO2nJ,EAAwB/pJ,OAAOuC,yBAAyBoK,EAAKzM,GAAO,KAAUkC,IAASA,EAAKoD,KAAOpD,EAAKgG,KAAQpI,OAAOC,eAAeu6G,EAAQt6G,EAAKkC,GAAgBo4G,EAAOt6G,GAAOyM,EAAIzM,GAAYs6G,EAAO3yG,QAAU8E,EAASkG,GAASA,EAAMzK,IAAIuE,EAAK6tG,GAAW,OAAOA,EAhBntBwvC,CAAwB9qJ,EAAQ,IAEzC+qJ,EAAc/S,EAAuBh4I,EAAQ,MAE7CgrJ,EAAchrJ,EAAQ,KAEtBirJ,EAAgBjT,EAAuBh4I,EAAQ,MAE/CkrJ,EAAkBlT,EAAuBh4I,EAAQ,MAEjDmrJ,EAAUnT,EAAuBh4I,EAAQ,MAE7C,SAASg4I,EAAuBvqI,GAAO,OAAOA,GAAOA,EAAIhF,WAAagF,EAAM,CAAE9E,QAAS8E,GAEvF,SAASm9I,IAA6B,GAAuB,oBAAZp/D,QAAwB,OAAO,KAAM,IAAI73E,EAAQ,IAAI63E,QAA6F,OAAlFo/D,EAA2B,WAAsC,OAAOj3I,GAAiBA,EAI1M,SAASnG,EAAQC,GAAmV,OAAtOD,EAArD,oBAAX9H,QAAoD,kBAApBA,OAAOC,SAAmC,SAAiB8H,GAAO,cAAcA,GAA2B,SAAiBA,GAAO,OAAOA,GAAyB,oBAAX/H,QAAyB+H,EAAIvL,cAAgBwD,QAAU+H,IAAQ/H,OAAOtE,UAAY,gBAAkBqM,IAAyBA,GAEnX,SAASmD,IAA2Q,OAA9PA,EAAW9P,OAAOuB,QAAU,SAAU/B,GAAU,IAAK,IAAIE,EAAI,EAAGA,EAAIiC,UAAUhC,OAAQD,IAAK,CAAE,IAAI0O,EAASzM,UAAUjC,GAAI,IAAK,IAAIQ,KAAOkO,EAAcpO,OAAOM,UAAUQ,eAAeC,KAAKqN,EAAQlO,KAAQV,EAAOU,GAAOkO,EAAOlO,IAAY,OAAOV,IAA2BoC,MAAMT,KAAMQ,WAIhT,SAASpC,EAAkBC,EAAQC,GAAS,IAAK,IAAIC,EAAI,EAAGA,EAAID,EAAME,OAAQD,IAAK,CAAE,IAAIE,EAAaH,EAAMC,GAAIE,EAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,UAAWF,IAAYA,EAAWG,UAAW,GAAMC,OAAOC,eAAeT,EAAQI,EAAWM,IAAKN,IAM7S,SAASm9G,EAAgB53G,EAAGtE,GAA+G,OAA1Gk8G,EAAkB/8G,OAAOU,gBAAkB,SAAyByE,EAAGtE,GAAsB,OAAjBsE,EAAExE,UAAYE,EAAUsE,IAA6BA,EAAGtE,GAErK,SAASkM,EAAaC,GAAW,IAAIC,EAMrC,WAAuC,GAAuB,qBAAZzK,UAA4BA,QAAQ6K,UAAW,OAAO,EAAO,GAAI7K,QAAQ6K,UAAUkoI,KAAM,OAAO,EAAO,GAAqB,oBAAV1oG,MAAsB,OAAO,EAAM,IAAiF,OAA3EoO,KAAK36C,UAAU8mB,SAASrmB,KAAKyB,QAAQ6K,UAAU4tC,KAAM,IAAI,iBAAyB,EAAQ,MAAOn5C,GAAK,OAAO,GANzPwzI,GAA6B,OAAO,WAAkC,IAAsCxxI,EAAlCqJ,EAAQd,EAAgBW,GAAkB,GAAIC,EAA2B,CAAE,IAAIG,EAAYf,EAAgBlL,MAAMC,YAAa0C,EAAStB,QAAQ6K,UAAUF,EAAOxL,UAAWyL,QAAqBtJ,EAASqJ,EAAMvL,MAAMT,KAAMQ,WAAc,OAAOiL,EAA2BzL,KAAM2C,IAE5Z,SAAS8I,EAA2BC,EAAM9L,GAAQ,OAAIA,GAA2B,WAAlB2L,EAAQ3L,IAAsC,oBAATA,EAA8CkpH,EAAuBp9G,GAAtC9L,EAEnI,SAASkpH,EAAuBp9G,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIq9G,eAAe,6DAAgE,OAAOr9G,EAI/J,SAASR,EAAgBlH,GAAwJ,OAAnJkH,EAAkBrM,OAAOU,eAAiBV,OAAOsM,eAAiB,SAAyBnH,GAAK,OAAOA,EAAExE,WAAaX,OAAOsM,eAAenH,KAA8BA,GAExM,SAASqoG,EAAgB7gG,EAAKzM,EAAKwD,GAAiK,OAApJxD,KAAOyM,EAAO3M,OAAOC,eAAe0M,EAAKzM,EAAK,CAAEwD,MAAOA,EAAO7D,YAAY,EAAMC,cAAc,EAAMC,UAAU,IAAkB4M,EAAIzM,GAAOwD,EAAgBiJ,EAE3M,IAII29I,EAAsB,SAAUlP,IApBpC,SAAmB5uI,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAInN,UAAU,sDAAyDkN,EAASlM,UAAYN,OAAOqB,OAAOoL,GAAcA,EAAWnM,UAAW,CAAEc,YAAa,CAAEsC,MAAO8I,EAAUzM,UAAU,EAAMD,cAAc,KAAe2M,GAAYswG,EAAgBvwG,EAAUC,GAqBjXF,CAAU+9I,EAAQlP,GAElB,IAzBoB/7I,EAAae,EAAYC,EAyBzCqO,EAAS3B,EAAau9I,GAE1B,SAASA,EAAOrqC,GACd,IAAIpxG,EAyIJ,OAzKJ,SAAyBzP,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIC,UAAU,qCAkC5GH,CAAgBgC,KAAMmpJ,GAItB98C,EAAgByc,EAFhBp7G,EAAQH,EAAO3N,KAAKI,KAAM8+G,IAEqB,uBAAmB,GAElEzS,EAAgByc,EAAuBp7G,GAAQ,oBAAgB,GAE/D2+F,EAAgByc,EAAuBp7G,GAAQ,iBAAa,GAE5D2+F,EAAgByc,EAAuBp7G,GAAQ,sBAAsB,SAAUqB,GAC7ErB,EAAM07I,gBAAkBr6I,KAG1Bs9F,EAAgByc,EAAuBp7G,GAAQ,mBAAmB,SAAUqB,GAC1ErB,EAAM27I,aAAet6I,KAGvBs9F,EAAgByc,EAAuBp7G,GAAQ,gBAAgB,SAAUqB,EAAMsE,GACxE3F,EAAM47I,YACT57I,EAAM47I,UAAY,IAGpB57I,EAAM47I,UAAUj2I,GAAStE,KAG3Bs9F,EAAgByc,EAAuBp7G,GAAQ,eAAe,WAC5D,GAAKA,EAAMpP,MAAM4S,UAAaxD,EAAM07I,iBAAoB17I,EAAM47I,UAA9D,CAIA,IAAI35F,EAAQ+4F,EAAOr0I,SAAS+I,MAAM1P,EAAMpP,MAAM4S,UAE1Cq4I,EAAc77I,EAAM07I,gBAAgBx1G,YACpC41G,EAAW97I,EAAMpP,MAAMmrJ,WAAa/7I,EAAMpP,MAAMmrJ,YAAa,EAAIV,EAAY/wF,YAAYtqD,EAAM47I,UAAU,IACzGI,EAAergJ,KAAKC,MAAMigJ,EAAcC,GACxCG,EAAaD,EAAe/5F,EAC5Bi6F,EAAeD,EAAah6F,EAAQ+5F,EAAe,EAEvDh8I,EAAMyC,UAAS,SAAU05I,EAAQvrJ,GAC/B,MAAO,CACLkrJ,SAAUA,EACVE,aAAcA,EACdI,UAAWH,EAAaj8I,EAAMq8I,aAAazrJ,EAAM0rJ,cAAgB,EACjEJ,aAAcA,EACdD,WAAYA,UAKlBt9C,EAAgByc,EAAuBp7G,GAAQ,mBAAmB,SAAU2F,EAAOuU,EAAMjnB,GACvF,IA/DgB,SAAyBA,GAC7C,OAAOA,EAAEhB,eAAe,OA8DfsqJ,CAAgBtpJ,IAAgB,UAAVA,EAAE5B,IAAiB,CAC5C,IAAIi2D,EAAUtnD,EAAMpP,MAAM4rJ,aAEH,oBAAZl1F,GACTA,EAAQ3hD,EAAOuU,OAKrBykF,EAAgByc,EAAuBp7G,GAAQ,gBAAgB,WAC7DA,EAAMyC,SAAS,CACbg6I,SAAS,OAIb99C,EAAgByc,EAAuBp7G,GAAQ,cAAc,WAC3DA,EAAMyC,SAAS,CACbg6I,SAAS,OAIb99C,EAAgByc,EAAuBp7G,GAAQ,eAAe,SAAU4T,GACtE,IAAIo0C,EAASp0C,EAAM7Y,EAEnB,IAAKiF,EAAM7G,MAAM2iJ,WAAa97I,EAAM07I,kBAAoB17I,EAAM7G,MAAM6iJ,aAClE,OAAO,EAGT,IAEIU,EAAiB1B,EAAOr0I,SAAS+I,MAAM1P,EAAMpP,MAAM4S,UAEnDm5I,GAA4C,IAAxB38I,EAAM7G,MAAMijJ,UAAmBp8I,EAAM7G,MAAM6iJ,aAJhD,IAQfW,GAAoC30F,EAAS,IAC/CA,EAAS,GAIP20F,IAPmC,KADpBhhJ,KAAKwjB,IAAIu9H,EAAiB18I,EAAM7G,MAAM6iJ,aAAc,GAC1Bh8I,EAAM7G,MAAM6iJ,cAObh0F,EAAS,IACnDA,EAAS,GAGX,IACI77C,EAAWwwI,EAAkB,KADf38I,EAAM07I,gBAAgBx1G,YACc8hB,GAQtD,OANIhoD,EAAM27I,cACR,CAAC,kBAAmB,eAAgB,cAAe,aAAc,YAAa,eAAen8I,SAAQ,SAAUo8B,GAC7G57B,EAAM27I,aAAa7xI,MAAM8xB,IAAQ,EAAI0/G,EAActiJ,SAASmT,EAAU,IAAKnM,EAAMpP,MAAMohD,UAIpF,KAGT2sD,EAAgByc,EAAuBp7G,GAAQ,cAAc,SAAUskC,GACrEtkC,EAAM83B,OAAO93B,EAAM7G,MAAMijJ,WAAkC,kBAAd93G,EAAyBA,EAAY,OAGpFq6D,EAAgByc,EAAuBp7G,GAAQ,aAAa,SAAUskC,GACpEtkC,EAAM83B,OAAO93B,EAAM7G,MAAMijJ,WAAkC,kBAAd93G,EAAyBA,EAAY,OAGpFq6D,EAAgByc,EAAuBp7G,GAAQ,UAAU,SAAUmM,GAIjEA,GAFAA,EAAWA,EAAW,EAAI,EAAIA,IAEPnM,EAAM7G,MAAM+iJ,aAAel8I,EAAM7G,MAAM+iJ,aAAe/vI,EAE7EnM,EAAMyC,SAAS,CACb25I,UAAWjwI,OAIfnM,EAAM7G,MAAQ,CACZmjJ,aAAclrC,EAAOkrC,aACrBG,SAAS,EACTR,YAAY,EACZG,UAAW,EACXJ,aAAc,EACdE,aAAc,GAETl8I,EAyKT,OA9UoBxP,EAwKPirJ,GAxKoBlqJ,EAwKZ,CAAC,CACpBF,IAAK,oBACLwD,MAAO,WACLvC,KAAKsqJ,gBAEN,CACDvrJ,IAAK,qBACLwD,MAAO,SAA4BgP,GAC7BvR,KAAK1B,MAAM0rJ,eAAiBhqJ,KAAK6G,MAAMmjJ,cACzChqJ,KAAKmQ,SAAS,CACZ65I,aAAchqJ,KAAK1B,MAAM0rJ,aACzBF,UAAW9pJ,KAAK+pJ,aAAa/pJ,KAAK1B,MAAM0rJ,gBAIxChqJ,KAAK1B,MAAM4S,WAAaK,EAAUL,UAMtClR,KAAKuqJ,gBAEN,CACDxrJ,IAAK,uBACLwD,MAAO,WACLvC,KAAKwqJ,kBAEN,CACDzrJ,IAAK,cACLwD,MAAO,YAGL,EAAI2mJ,EAAQxiJ,WAAW6U,iBAAiB,SAAUvb,KAAKuqJ,cAEvD,EAAIrB,EAAQxiJ,WAAW6U,iBAAiB,mBAAoBvb,KAAKuqJ,aAGjEvqJ,KAAKuqJ,gBAEN,CACDxrJ,IAAK,gBACLwD,MAAO,YAEL,EAAI2mJ,EAAQxiJ,WAAWgU,oBAAoB,SAAU1a,KAAKuqJ,cAC1D,EAAIrB,EAAQxiJ,WAAWgU,oBAAoB,mBAAoB1a,KAAKuqJ,eAErE,CACDxrJ,IAAK,eACLwD,MAAO,SAAsBynJ,GAC3B,IAAIF,EAAYE,EAchB,OAZIA,GAAgBhqJ,KAAK6G,MAAM+iJ,eAC7BE,EAAY9pJ,KAAK6G,MAAM+iJ,cAGrBI,EAAehqJ,KAAK6G,MAAMijJ,UAAY9pJ,KAAK6G,MAAM6iJ,eACnDI,EAAY9pJ,KAAK6G,MAAMijJ,WAGrBE,EAAehqJ,KAAK6G,MAAMijJ,YAC5BA,EAAYE,GAGPF,IAER,CACD/qJ,IAAK,cACLwD,MAAO,WACL,IAAIo4I,EAAS36I,KAEb,OAAOA,KAAK1B,MAAM4S,SAASrH,KAAI,SAAU4gJ,EAAKp3I,GAC5C,IAAIq3I,EAAY5B,EAAYpiJ,QAAQyhJ,MAAK,EAAO90I,IAAUsnI,EAAO9zI,MAAMmjJ,cAEnEW,EAAa,CACf5rJ,IAAKsU,EACLwB,IAAK,SAAalU,GAChB,OAAOg6I,EAAOiQ,aAAajqJ,EAAG0S,IAEhC8D,UAAWuzI,EACX10I,QAAS2kI,EAAOkQ,gBAAgB5tD,KAAK09C,EAAQtnI,EAAOsnI,EAAOr8I,MAAM4S,SAASmC,IAC1EupI,UAAWjC,EAAOkQ,gBAAgB5tD,KAAK09C,EAAQtnI,EAAOsnI,EAAOr8I,MAAM4S,SAASmC,IAC5E,aAAc,GAAGzO,OAAO+1I,EAAOr8I,MAAMylD,OAAOn8B,KAAM,KAAKhjB,OAAOyO,EAAQ,GACtEmE,MAAO,CACL6M,MAAOs2H,EAAOr8I,MAAMmrJ,aAGxB,OAAoBf,EAAOhiJ,QAAQ8M,cAAc,KAAM7E,EAAS,GAAIg8I,EAAY,CAC9E7qI,KAAM,SACNg9H,SAAU,IACR2N,QAGP,CACD1rJ,IAAK,SACLwD,MAAO,WACL,IAAIuoJ,EAAS9qJ,KAEb,IAAKA,KAAK1B,MAAM4S,SACd,OAAO,KAGT,IAMI65I,EANAC,EAActC,EAAOr0I,SAAS+I,MAAMpd,KAAK1B,MAAM4S,UAAY,EAE3D+5I,EAAUjrJ,KAAK6G,MAAM8iJ,YAAc3pJ,KAAK6G,MAAMijJ,UAAY,EAE1DoB,EAAUlrJ,KAAK6G,MAAM8iJ,YAAc3pJ,KAAK6G,MAAMijJ,UAAY9pJ,KAAK6G,MAAM+iJ,aAGrES,GAAmBrqJ,KAAK6G,MAAMijJ,WAAa9pJ,KAAK6G,MAAM2iJ,UAAY,GAClE2B,GAAgB,EAAInC,EAActiJ,SAAS2jJ,EAAiB,KAAMrqJ,KAAK1B,MAAMohD,MAC7E0rG,EAAiBprJ,KAAK1B,MAAM8sJ,eAAiB,KAejD,OAdAL,EAAiB,CACfM,gBAAiBF,EACjBG,aAAcH,EACdI,YAAaJ,EACbK,WAAYL,EACZ5oI,UAAW4oI,EACXM,YAAaN,EACbO,yBAA0BN,EAC1BO,sBAAuBP,EACvBQ,qBAAsBR,EACtBS,oBAAqBT,EACrBU,mBAAoBV,EACpBW,qBAAsBX,GAEJ1C,EAAOhiJ,QAAQ8M,cAAc,MAAO,CACtD2D,UAAW2xI,EAAYpiJ,QAAQihJ,UAAS,IAC1Be,EAAOhiJ,QAAQ8M,cAAc,MAAO,CAClD2D,UAAW2xI,EAAYpiJ,QAAQohJ,SAAQ,GACvCjzI,IAAK7U,KAAKgsJ,oBACItD,EAAOhiJ,QAAQ8M,cAAc,SAAU,CACrD9I,KAAM,SACNyM,UAAW2xI,EAAYpiJ,QAAQ4hJ,YAAY2C,GAC3Cj1I,QAAS,WACP,OAAO80I,EAAOmB,cAEhB,aAAcjsJ,KAAK1B,MAAMylD,OAAOmoG,YAC9BlB,EAA2BtC,EAAOhiJ,QAAQ8M,cAAcy1I,EAAgBviJ,QAAS,CACnF6/F,QAAS,KACTpvF,UAAW2xI,EAAYpiJ,QAAQqhJ,QAAO,EAAO/nJ,KAAK6G,MAAMsjJ,SACxDgC,YAAansJ,KAAKosJ,UAClBC,aAAcrsJ,KAAKisJ,WACnBK,YAAatsJ,KAAKssJ,YAClBC,aAAcvsJ,KAAKusJ,aACnBC,WAAYxsJ,KAAKwsJ,WACjBh1I,MAAOuzI,EACPj1I,SAAU9V,KAAKysJ,gBACfC,iBAAkB1sJ,KAAK1B,MAAMquJ,cAC5B3sJ,KAAK4sJ,eAA8BlE,EAAOhiJ,QAAQ8M,cAAc,KAAM,CACvE2D,UAAW2xI,EAAYpiJ,QAAQqhJ,QAAO,EAAO/nJ,KAAK6G,MAAMsjJ,SACxDt1I,IAAK,SAAa9F,GAChB,OAAO+7I,EAAO2B,gBAAgB19I,IAEhCyI,MAAOuzI,GACN/qJ,KAAK4sJ,eAA6BlE,EAAOhiJ,QAAQ8M,cAAc,SAAU,CAC1E9I,KAAM,SACNyM,UAAW2xI,EAAYpiJ,QAAQ6hJ,YAAY2C,GAC3Cl1I,QAAS,WACP,OAAO80I,EAAOsB,aAEhB,aAAcpsJ,KAAK1B,MAAMylD,OAAO8oG,oBAzUsCzuJ,EAAkBF,EAAYiB,UAAWF,GAAiBC,GAAad,EAAkBF,EAAagB,GA8U3KiqJ,EAxTiB,CAyTxBT,EAAOv3I,WAETrT,EAAQ4I,QAAUyiJ,EAElB98C,EAAgB88C,EAAQ,cAAe,UAEvC98C,EAAgB88C,EAAQ,eAAgB,CACtCzpG,KAAM,aACNqE,OAAQ,CACNmoG,UAAW,wBACXW,WAAY,oBACZjlI,KAAM,cAERoiI,aAAc,EACdP,WAAY,GACZ2B,eAAgB,O,6BC7XlBvsJ,OAAOC,eAAehB,EAAS,aAAc,CAC3CyE,OAAO,IAETzE,EAAQ4I,aAAU,EAMlB5I,EAAQ4I,QAJO,WACb,OAAO4R,S,6BCNTzZ,OAAOC,eAAehB,EAAS,aAAc,CAC3CyE,OAAO,IAETzE,EAAQgvJ,YAAchvJ,EAAQivJ,YAAcjvJ,EAAQmsJ,gBAAkBnsJ,EAAQkvJ,uBAAyBlvJ,EAAQoW,UAAO,EAEtH,IAIgC1I,EAJ5Bk9I,EAAS3qJ,EAAQ,GAEjBirJ,GAE4Bx9I,EAFWzN,EAAQ,OAEEyN,EAAIhF,WAAagF,EAAM,CAAE9E,QAAS8E,GAIvF1N,EAAQoW,KAFG,aAQXpW,EAAQkvJ,uBAJqB,SAAgCzyI,EAASo1C,GACpE,MAAO,GAAG/qD,OAAO2V,EAAS,QAAQ3V,OAAO+qD,IAc3C7xD,EAAQmsJ,gBATc,SAAyBtpJ,GAC7C,QAAOA,GAAIA,EAAEhB,eAAe,QA4C9B7B,EAAQivJ,YAlCU,SAAqB15I,EAAO/U,GAM5C,GALIA,EAAM2uJ,gBAEN55I,EAGU,IAAVA,EACF,OAAO,EAGT,IAAI+2I,EAAiB1B,EAAOr0I,SAAS+I,MAAM9e,EAAM4S,UAEjD,GAAI5S,EAAM4uJ,YAA6B,eAAf5uJ,EAAMohD,KAAuB,CACnD,IAAI2qG,GAAmBh3I,EAAQ/U,EAAM6uJ,sBACjCvD,EAAeQ,EAAiB,EAQpC,OANI/2I,IAAUA,IAAUu2I,GAAgBtrJ,EAAM2uJ,cAC5C5C,IAAoB,IAAM/rJ,EAAM6uJ,uBAAyB,EAChD95I,IAAUu2I,IACnBS,GAAmB,IAAM/rJ,EAAM6uJ,uBAG1B9C,EAGT,OAAgB,KAARh3I,GAoBVvV,EAAQgvJ,YATU,SAAqBjzI,EAAU6lC,GAC/C,IAAIloC,EAAQ,GAKZ,MAJA,CAAC,kBAAmB,eAAgB,cAAe,aAAc,YAAa,eAAetK,SAAQ,SAAUo8B,GAE7G9xB,EAAM8xB,IAAQ,EAAI0/G,EAActiJ,SAASmT,EAAU,IAAK6lC,MAEnDloC,I,iBC5ET,IAAI41I,EAAWrvJ,EAAQ,KACnB4jI,EAAc5jI,EAAQ,KACtBwK,EAAUxK,EAAQ,IAClB8jI,EAAU9jI,EAAQ,KAClB+jI,EAAW/jI,EAAQ,KACnB+pI,EAAQ/pI,EAAQ,IAiCpBF,EAAOC,QAtBP,SAAiB6O,EAAQ2D,EAAM+8I,GAO7B,IAJA,IAAIh6I,GAAS,EACT7U,GAHJ8R,EAAO88I,EAAS98I,EAAM3D,IAGJnO,OACdmE,GAAS,IAEJ0Q,EAAQ7U,GAAQ,CACvB,IAAIO,EAAM+oI,EAAMx3H,EAAK+C,IACrB,KAAM1Q,EAAmB,MAAVgK,GAAkB0gJ,EAAQ1gJ,EAAQ5N,IAC/C,MAEF4N,EAASA,EAAO5N,GAElB,OAAI4D,KAAY0Q,GAAS7U,EAChBmE,KAETnE,EAAmB,MAAVmO,EAAiB,EAAIA,EAAOnO,SAClBsjI,EAAStjI,IAAWqjI,EAAQ9iI,EAAKP,KACjD+J,EAAQoE,IAAWg1H,EAAYh1H,M,gBCnCpC,IAAIpE,EAAUxK,EAAQ,IAClBuvJ,EAAQvvJ,EAAQ,KAChB4pI,EAAe5pI,EAAQ,KACvBkoB,EAAWloB,EAAQ,IAiBvBF,EAAOC,QAPP,SAAkByE,EAAOoK,GACvB,OAAIpE,EAAQhG,GACHA,EAEF+qJ,EAAM/qJ,EAAOoK,GAAU,CAACpK,GAASolI,EAAa1hH,EAAS1jB,M,iBCjBhE,YACA,IAAI86F,EAA8B,iBAAV23C,GAAsBA,GAAUA,EAAOn2I,SAAWA,QAAUm2I,EAEpFn3I,EAAOC,QAAUu/F,I,mCCHjB,IAAI4gC,EAAalgI,EAAQ,IACrB6qB,EAAW7qB,EAAQ,KAmCvBF,EAAOC,QAVP,SAAoByE,GAClB,IAAKqmB,EAASrmB,GACZ,OAAO,EAIT,IAAIq+F,EAAMq9B,EAAW17H,GACrB,MA5BY,qBA4BLq+F,GA3BI,8BA2BcA,GA7BZ,0BA6B6BA,GA1B7B,kBA0BgDA,I,cChC/D,IAGI29B,EAHYjhC,SAASn+F,UAGI8mB,SAqB7BpoB,EAAOC,QAZP,SAAkBqgI,GAChB,GAAY,MAARA,EAAc,CAChB,IACE,OAAOI,EAAa3+H,KAAKu+H,GACzB,MAAOx9H,IACT,IACE,OAAQw9H,EAAO,GACf,MAAOx9H,KAEX,MAAO,K,cCcT9C,EAAOC,QAJP,SAAYyE,EAAO+1D,GACjB,OAAO/1D,IAAU+1D,GAAU/1D,IAAUA,GAAS+1D,IAAUA,I,gBCjC1D,IAAIopE,EAAkB3jI,EAAQ,KAC1BsgI,EAAetgI,EAAQ,IAGvB2/H,EAAc7+H,OAAOM,UAGrBQ,EAAiB+9H,EAAY/9H,eAG7BmB,EAAuB48H,EAAY58H,qBAoBnC6gI,EAAcD,EAAgB,WAAa,OAAOlhI,UAApB,IAAsCkhI,EAAkB,SAASn/H,GACjG,OAAO87H,EAAa97H,IAAU5C,EAAeC,KAAK2C,EAAO,YACtDzB,EAAqBlB,KAAK2C,EAAO,WAGtC1E,EAAOC,QAAU6jI,G,cClCjB,IAGIC,EAAW,mBAoBf/jI,EAAOC,QAVP,SAAiByE,EAAO/D,GACtB,IAAIkM,SAAcnI,EAGlB,SAFA/D,EAAmB,MAAVA,EAfY,iBAewBA,KAGlC,UAARkM,GACU,UAARA,GAAoBk3H,EAASr/B,KAAKhgG,KAChCA,GAAS,GAAKA,EAAQ,GAAK,GAAKA,EAAQ/D,I,gBCrBjD,IAAIM,EAAiBf,EAAQ,KAwB7BF,EAAOC,QAbP,SAAyB6O,EAAQ5N,EAAKwD,GACzB,aAAPxD,GAAsBD,EACxBA,EAAe6N,EAAQ5N,EAAK,CAC1B,cAAgB,EAChB,YAAc,EACd,MAASwD,EACT,UAAY,IAGdoK,EAAO5N,GAAOwD,I,gBCpBlB,IAAIgrJ,EAAUxvJ,EAAQ,KAClBmM,EAAOnM,EAAQ,KAcnBF,EAAOC,QAJP,SAAoB6O,EAAQu0H,GAC1B,OAAOv0H,GAAU4gJ,EAAQ5gJ,EAAQu0H,EAAUh3H,K,iBCZ7C,gBAAIk2B,EAAOriC,EAAQ,IACfm3I,EAAYn3I,EAAQ,KAGpBirH,EAA4ClrH,IAAYA,EAAQ6uG,UAAY7uG,EAG5EmrH,EAAaD,GAAgC,iBAAVnrH,GAAsBA,IAAWA,EAAO8uG,UAAY9uG,EAMvFo3I,EAHgBhsB,GAAcA,EAAWnrH,UAAYkrH,EAG5B5oF,EAAK60G,YAAS7wI,EAsBvCm2G,GAnBiB06B,EAASA,EAAO16B,cAAWn2G,IAmBf8wI,EAEjCr3I,EAAOC,QAAUy8G,I,sCCrCjB,IAAIynB,EAAmBjkI,EAAQ,KAC3BkkI,EAAYlkI,EAAQ,KACpBorH,EAAWprH,EAAQ,KAGnBmkI,EAAmB/Y,GAAYA,EAASgZ,aAmBxCA,EAAeD,EAAmBD,EAAUC,GAAoBF,EAEpEnkI,EAAOC,QAAUqkI,G,gBC1BjB,IAAIqrB,EAAczvJ,EAAQ,KACtB0vJ,EAAsB1vJ,EAAQ,KAC9B2vJ,EAAW3vJ,EAAQ,KACnBwK,EAAUxK,EAAQ,IAClB6Q,EAAW7Q,EAAQ,KA0BvBF,EAAOC,QAjBP,SAAsByE,GAGpB,MAAoB,mBAATA,EACFA,EAEI,MAATA,EACKmrJ,EAEW,iBAATnrJ,EACFgG,EAAQhG,GACXkrJ,EAAoBlrJ,EAAM,GAAIA,EAAM,IACpCirJ,EAAYjrJ,GAEXqM,EAASrM,K,gBC3BlB,IAAI08H,EAAYlhI,EAAQ,IACpBmhI,EAAanhI,EAAQ,KACrBohI,EAAcphI,EAAQ,KACtBqhI,EAAWrhI,EAAQ,KACnBshI,EAAWthI,EAAQ,KACnB8iI,EAAW9iI,EAAQ,KASvB,SAASijI,EAAMtlE,GACb,IAAIr9C,EAAOre,KAAK2+H,SAAW,IAAIM,EAAUvjE,GACzC17D,KAAKqmB,KAAOhI,EAAKgI,KAInB26G,EAAM7hI,UAAU4wE,MAAQmvD,EACxB8B,EAAM7hI,UAAkB,OAAIggI,EAC5B6B,EAAM7hI,UAAUkF,IAAM+6H,EACtB4B,EAAM7hI,UAAU4H,IAAMs4H,EACtB2B,EAAM7hI,UAAU8H,IAAM45H,EAEtBhjI,EAAOC,QAAUkjI,G,gBC1BjB,IAAI2sB,EAAkB5vJ,EAAQ,KAC1BsgI,EAAetgI,EAAQ,IA0B3BF,EAAOC,QAVP,SAAS8vJ,EAAYrrJ,EAAO+1D,EAAOyuE,EAASzF,EAAY3zH,GACtD,OAAIpL,IAAU+1D,IAGD,MAAT/1D,GAA0B,MAAT+1D,IAAmB+lE,EAAa97H,KAAW87H,EAAa/lE,GACpE/1D,IAAUA,GAAS+1D,IAAUA,EAE/Bq1F,EAAgBprJ,EAAO+1D,EAAOyuE,EAASzF,EAAYssB,EAAajgJ,M,gBCxBzE,IAAIkgJ,EAAW9vJ,EAAQ,KACnB+vJ,EAAY/vJ,EAAQ,KACpBgwJ,EAAWhwJ,EAAQ,KAiFvBF,EAAOC,QA9DP,SAAqB6uB,EAAO2rC,EAAOyuE,EAASzF,EAAY0sB,EAAWrgJ,GACjE,IAAIsgJ,EAjBqB,EAiBTlnB,EACZmnB,EAAYvhI,EAAMnuB,OAClB2vJ,EAAY71F,EAAM95D,OAEtB,GAAI0vJ,GAAaC,KAAeF,GAAaE,EAAYD,GACvD,OAAO,EAGT,IAAIE,EAAazgJ,EAAMtJ,IAAIsoB,GACvB0hI,EAAa1gJ,EAAMtJ,IAAIi0D,GAC3B,GAAI81F,GAAcC,EAChB,OAAOD,GAAc91F,GAAS+1F,GAAc1hI,EAE9C,IAAItZ,GAAS,EACT1Q,GAAS,EACT2rJ,EA/BuB,EA+BfvnB,EAAoC,IAAI8mB,OAAWzpJ,EAM/D,IAJAuJ,EAAM1G,IAAI0lB,EAAO2rC,GACjB3qD,EAAM1G,IAAIqxD,EAAO3rC,KAGRtZ,EAAQ66I,GAAW,CAC1B,IAAIK,EAAW5hI,EAAMtZ,GACjBm7I,EAAWl2F,EAAMjlD,GAErB,GAAIiuH,EACF,IAAImtB,EAAWR,EACX3sB,EAAWktB,EAAUD,EAAUl7I,EAAOilD,EAAO3rC,EAAOhf,GACpD2zH,EAAWitB,EAAUC,EAAUn7I,EAAOsZ,EAAO2rC,EAAO3qD,GAE1D,QAAiBvJ,IAAbqqJ,EAAwB,CAC1B,GAAIA,EACF,SAEF9rJ,GAAS,EACT,MAGF,GAAI2rJ,GACF,IAAKR,EAAUx1F,GAAO,SAASk2F,EAAUE,GACnC,IAAKX,EAASO,EAAMI,KACfH,IAAaC,GAAYR,EAAUO,EAAUC,EAAUznB,EAASzF,EAAY3zH,IAC/E,OAAO2gJ,EAAKxqJ,KAAK4qJ,MAEjB,CACN/rJ,GAAS,EACT,YAEG,GACD4rJ,IAAaC,IACXR,EAAUO,EAAUC,EAAUznB,EAASzF,EAAY3zH,GACpD,CACLhL,GAAS,EACT,OAKJ,OAFAgL,EAAc,OAAEgf,GAChBhf,EAAc,OAAE2qD,GACT31D,I,gBChFT,IAAIimB,EAAW7qB,EAAQ,KAcvBF,EAAOC,QAJP,SAA4ByE,GAC1B,OAAOA,IAAUA,IAAUqmB,EAASrmB,K,cCQtC1E,EAAOC,QAVP,SAAiCiB,EAAK4vJ,GACpC,OAAO,SAAShiJ,GACd,OAAc,MAAVA,IAGGA,EAAO5N,KAAS4vJ,SACPvqJ,IAAbuqJ,GAA2B5vJ,KAAOF,OAAO8N,Q,gBCfhD,IAAIygJ,EAAWrvJ,EAAQ,KACnB+pI,EAAQ/pI,EAAQ,IAsBpBF,EAAOC,QAZP,SAAiB6O,EAAQ2D,GAMvB,IAHA,IAAI+C,EAAQ,EACR7U,GAHJ8R,EAAO88I,EAAS98I,EAAM3D,IAGJnO,OAED,MAAVmO,GAAkB0G,EAAQ7U,GAC/BmO,EAASA,EAAOm7H,EAAMx3H,EAAK+C,OAE7B,OAAQA,GAASA,GAAS7U,EAAUmO,OAASvI,I,gBCpB/C,IAAIwqJ,EAAc7wJ,EAAQ,KACtB8wJ,EAAS9wJ,EAAQ,KACjB+wJ,EAAQ/wJ,EAAQ,KAMhBgxJ,EAAShmH,OAHA,YAGe,KAe5BlrC,EAAOC,QANP,SAA0Bke,GACxB,OAAO,SAASqnB,GACd,OAAOurH,EAAYE,EAAMD,EAAOxrH,GAAQhxB,QAAQ08I,EAAQ,KAAM/yI,EAAU,O,cClB5E,IAWIgzI,EAAejmH,OAAO,uFAa1BlrC,EAAOC,QAJP,SAAoBulC,GAClB,OAAO2rH,EAAazsD,KAAKl/D,K,6BCtB3B,IAAI25E,EAAO,CACT31G,KAAM,QACND,MAAO,OACPD,OAAQ,MACRD,IAAK,UAEQ,SAAS+nJ,EAAqBhnJ,GAC3C,OAAOA,EAAUoK,QAAQ,0BAA0B,SAAUS,GAC3D,OAAOkqG,EAAKlqG,M,YCRZkqG,EAAO,CACTx1G,MAAO,MACPC,IAAK,SAEQ,SAASynJ,EAA8BjnJ,GACpD,OAAOA,EAAUoK,QAAQ,cAAc,SAAUS,GAC/C,OAAOkqG,EAAKlqG,M,2BCmID,KACbnI,KAAM,OACN60D,SAAS,EACTq4E,MAAO,OACP1vH,GA5HF,SAAcuoF,GACZ,IAAI7pG,EAAQ6pG,EAAK7pG,MACb6L,EAAUg+F,EAAKh+F,QACf/H,EAAO+lG,EAAK/lG,KAEhB,IAAI9D,EAAMy/G,cAAc37G,GAAMu6C,MAA9B,CAoCA,IAhCA,IAAIiqG,EAAoBz8I,EAAQgiI,SAC5B0a,OAAsC,IAAtBD,GAAsCA,EACtDE,EAAmB38I,EAAQ48I,QAC3BC,OAAoC,IAArBF,GAAqCA,EACpDG,EAA8B98I,EAAQ+8I,mBACtCv0I,EAAUxI,EAAQwI,QAClBioE,EAAWzwE,EAAQywE,SACnBihC,EAAe1xG,EAAQ0xG,aACvBiB,EAAc3yG,EAAQ2yG,YACtBqqC,EAAwBh9I,EAAQi9I,eAChCA,OAA2C,IAA1BD,GAA0CA,EAC3DE,EAAwBl9I,EAAQk9I,sBAChCC,EAAqBhpJ,EAAM6L,QAAQzK,UACnCqsI,EAAgB30C,YAAiBkwD,GAEjCJ,EAAqBD,IADHlb,IAAkBub,IACqCF,EAAiB,CAACV,EAAqBY,IAjCtH,SAAuC5nJ,GACrC,GAAI03F,YAAiB13F,KAAeX,IAClC,MAAO,GAGT,IAAIwoJ,EAAoBb,EAAqBhnJ,GAC7C,MAAO,CAACinJ,EAA8BjnJ,GAAY6nJ,EAAmBZ,EAA8BY,IA2BwCC,CAA8BF,IACrK3nJ,EAAa,CAAC2nJ,GAAoBjrJ,OAAO6qJ,GAAoB1nJ,QAAO,SAAUC,EAAKC,GACrF,OAAOD,EAAIpD,OAAO+6F,YAAiB13F,KAAeX,ICvCvC,SAA8BT,EAAO6L,QAClC,IAAZA,IACFA,EAAU,IAGZ,IAAI0/D,EAAW1/D,EACXzK,EAAYmqE,EAASnqE,UACrBk7E,EAAW/Q,EAAS+Q,SACpBihC,EAAehyC,EAASgyC,aACxBlpG,EAAUk3D,EAASl3D,QACnBy0I,EAAiBv9E,EAASu9E,eAC1BK,EAAwB59E,EAASw9E,sBACjCA,OAAkD,IAA1BI,EAAmCC,IAAgBD,EAC3Ezb,EAAY1rB,YAAa5gH,GACzBC,EAAaqsI,EAAYob,EAAiB7nJ,IAAsBA,IAAoBgF,QAAO,SAAU7E,GACvG,OAAO4gH,YAAa5gH,KAAessI,KAChChtI,IACD2oJ,EAAoBhoJ,EAAW4E,QAAO,SAAU7E,GAClD,OAAO2nJ,EAAsBhvJ,QAAQqH,IAAc,KAGpB,IAA7BioJ,EAAkB1xJ,SACpB0xJ,EAAoBhoJ,GAQtB,IAAIioJ,EAAYD,EAAkBnoJ,QAAO,SAAUC,EAAKC,GAOtD,OANAD,EAAIC,GAAa68G,YAAej+G,EAAO,CACrCoB,UAAWA,EACXk7E,SAAUA,EACVihC,aAAcA,EACdlpG,QAASA,IACRykF,YAAiB13F,IACbD,IACN,IACH,OAAOnJ,OAAOqL,KAAKimJ,GAAWnoG,MAAK,SAAUjjD,EAAGzF,GAC9C,OAAO6wJ,EAAUprJ,GAAKorJ,EAAU7wJ,MDDyB8wJ,CAAqBvpJ,EAAO,CACnFoB,UAAWA,EACXk7E,SAAUA,EACVihC,aAAcA,EACdlpG,QAASA,EACTy0I,eAAgBA,EAChBC,sBAAuBA,IACpB3nJ,KACJ,IACCg9I,EAAgBp+I,EAAMimD,MAAMjlD,UAC5B+9G,EAAa/+G,EAAMimD,MAAMllD,OACzByoJ,EAAY,IAAIx0I,IAChBy0I,GAAqB,EACrBC,EAAwBroJ,EAAW,GAE9B3J,EAAI,EAAGA,EAAI2J,EAAW1J,OAAQD,IAAK,CAC1C,IAAI0J,EAAYC,EAAW3J,GAEvBiyJ,EAAiB7wD,YAAiB13F,GAElCwoJ,EAAmB5nC,YAAa5gH,KAAeT,IAC/CkpJ,EAAa,CAACxpJ,IAAKC,KAAQvG,QAAQ4vJ,IAAmB,EACtD/mI,EAAMinI,EAAa,QAAU,SAC7Brd,EAAWvuB,YAAej+G,EAAO,CACnCoB,UAAWA,EACXk7E,SAAUA,EACVihC,aAAcA,EACdiB,YAAaA,EACbnqG,QAASA,IAEPy1I,EAAoBD,EAAaD,EAAmBrpJ,IAAQC,IAAOopJ,EAAmBtpJ,IAASD,IAE/F+9I,EAAcx7H,GAAOm8F,EAAWn8F,KAClCknI,EAAoB1B,EAAqB0B,IAG3C,IAAIC,EAAmB3B,EAAqB0B,GACxCE,EAAS,GAUb,GARIzB,GACFyB,EAAO/sJ,KAAKuvI,EAASmd,IAAmB,GAGtCjB,GACFsB,EAAO/sJ,KAAKuvI,EAASsd,IAAsB,EAAGtd,EAASud,IAAqB,GAG1EC,EAAO5hD,OAAM,SAAUD,GACzB,OAAOA,KACL,CACFuhD,EAAwBtoJ,EACxBqoJ,GAAqB,EACrB,MAGFD,EAAUppJ,IAAIgB,EAAW4oJ,GAG3B,GAAIP,EAqBF,IAnBA,IAEI50G,EAAQ,SAAezyC,GACzB,IAAI6nJ,EAAmB5oJ,EAAWq+I,MAAK,SAAUt+I,GAC/C,IAAI4oJ,EAASR,EAAUhsJ,IAAI4D,GAE3B,GAAI4oJ,EACF,OAAOA,EAAOtrJ,MAAM,EAAG0D,GAAIgmG,OAAM,SAAUD,GACzC,OAAOA,QAKb,GAAI8hD,EAEF,OADAP,EAAwBO,EACjB,SAIF7nJ,EAnBY0mJ,EAAiB,EAAI,EAmBZ1mJ,EAAK,EAAGA,IAAM,CAG1C,GAAa,UAFFyyC,EAAMzyC,GAEK,MAItBpC,EAAMoB,YAAcsoJ,IACtB1pJ,EAAMy/G,cAAc37G,GAAMu6C,OAAQ,EAClCr+C,EAAMoB,UAAYsoJ,EAClB1pJ,EAAMqjD,OAAQ,KAUhBysF,iBAAkB,CAAC,UACnBt4H,KAAM,CACJ6mC,OAAO,K,qHE5BI,KACbv6C,KAAM,kBACN60D,SAAS,EACTq4E,MAAO,OACP1vH,GA5GF,SAAyBuoF,GACvB,IAAI7pG,EAAQ6pG,EAAK7pG,MACb6L,EAAUg+F,EAAKh+F,QACf/H,EAAO+lG,EAAK/lG,KACZwkJ,EAAoBz8I,EAAQgiI,SAC5B0a,OAAsC,IAAtBD,GAAsCA,EACtDE,EAAmB38I,EAAQ48I,QAC3BC,OAAoC,IAArBF,GAAsCA,EACrDlsE,EAAWzwE,EAAQywE,SACnBihC,EAAe1xG,EAAQ0xG,aACvBiB,EAAc3yG,EAAQ2yG,YACtBnqG,EAAUxI,EAAQwI,QAClB61I,EAAkBr+I,EAAQs+I,OAC1BA,OAA6B,IAApBD,GAAoCA,EAC7CE,EAAwBv+I,EAAQw+I,aAChCA,OAAyC,IAA1BD,EAAmC,EAAIA,EACtD5d,EAAWvuB,YAAej+G,EAAO,CACnCs8E,SAAUA,EACVihC,aAAcA,EACdlpG,QAASA,EACTmqG,YAAaA,IAEXivB,EAAgB30C,YAAiB94F,EAAMoB,WACvCssI,EAAY1rB,YAAahiH,EAAMoB,WAC/BkpJ,GAAmB5c,EACnBG,EAAW1B,YAAyBsB,GACpCgb,ECrCY,MDqCS5a,ECrCH,IAAM,IDsCxB1uB,EAAgBn/G,EAAMy/G,cAAcN,cACpCi/B,EAAgBp+I,EAAMimD,MAAMjlD,UAC5B+9G,EAAa/+G,EAAMimD,MAAMllD,OACzBwpJ,EAA4C,oBAAjBF,EAA8BA,EAAaryJ,OAAOuB,OAAO,GAAIyG,EAAMimD,MAAO,CACvG7kD,UAAWpB,EAAMoB,aACbipJ,EACF7yI,EAAO,CACT5V,EAAG,EACHxF,EAAG,GAGL,GAAK+iH,EAAL,CAIA,GAAIopC,GAAiBG,EAAc,CACjC,IAAI8B,EAAwB,MAAb3c,EAAmBxtI,IAAMG,IACpCiqJ,EAAuB,MAAb5c,EAAmBvtI,IAASC,IACtCqiB,EAAmB,MAAbirH,EAAmB,SAAW,QACpC1nF,EAASg5D,EAAc0uB,GACvB9nH,EAAMo5F,EAAc0uB,GAAYrB,EAASge,GACzCxkI,EAAMm5F,EAAc0uB,GAAYrB,EAASie,GACzCC,EAAWP,GAAUprC,EAAWn8F,GAAO,EAAI,EAC3CspH,EAASwB,IAAc/sI,IAAQy9I,EAAcx7H,GAAOm8F,EAAWn8F,GAC/D+nI,EAASjd,IAAc/sI,KAASo+G,EAAWn8F,IAAQw7H,EAAcx7H,GAGjEu6H,EAAen9I,EAAMm6B,SAASyiH,MAC9BS,EAAY8M,GAAUhN,EAAexQ,YAAcwQ,GAAgB,CACrE3/H,MAAO,EACPrJ,OAAQ,GAENy2I,EAAqB5qJ,EAAMy/G,cAAc,oBAAsBz/G,EAAMy/G,cAAc,oBAAoBprG,QAAUy5H,cACjH+c,EAAkBD,EAAmBJ,GACrCM,EAAkBF,EAAmBH,GAMrCM,EAAWle,YAAO,EAAGuR,EAAcx7H,GAAMy6H,EAAUz6H,IACnDooI,EAAYV,EAAkBlM,EAAcx7H,GAAO,EAAI8nI,EAAWK,EAAWF,EAAkBN,EAAoBre,EAAS6e,EAAWF,EAAkBN,EACzJU,EAAYX,GAAmBlM,EAAcx7H,GAAO,EAAI8nI,EAAWK,EAAWD,EAAkBP,EAAoBI,EAASI,EAAWD,EAAkBP,EAC1J7M,GAAoB19I,EAAMm6B,SAASyiH,OAASh/B,YAAgB59G,EAAMm6B,SAASyiH,OAC3EsO,GAAexN,GAAiC,MAAb7P,EAAmB6P,GAAkB9gC,WAAa,EAAI8gC,GAAkB7gC,YAAc,EAAI,EAC7HsuC,GAAsBnrJ,EAAMy/G,cAAct5D,OAASnmD,EAAMy/G,cAAct5D,OAAOnmD,EAAMoB,WAAWysI,GAAY,EAC3Gud,GAAYjsC,EAAc0uB,GAAYmd,EAAYG,GAAsBD,GACxEG,GAAYlsC,EAAc0uB,GAAYod,EAAYE,GAEtD,GAAI5C,EAAe,CACjB,IAAI+C,GAAkBze,YAAOsd,EAASpd,YAAQhnH,EAAKqlI,IAAarlI,EAAKogC,EAAQgkG,EAASrd,YAAQ9mH,EAAKqlI,IAAarlI,GAChHm5F,EAAc0uB,GAAYyd,GAC1B9zI,EAAKq2H,GAAYyd,GAAkBnlG,EAGrC,GAAIuiG,EAAc,CAChB,IAAI6C,GAAyB,MAAb1d,EAAmBxtI,IAAMG,IAErCgrJ,GAAwB,MAAb3d,EAAmBvtI,IAASC,IAEvCkrJ,GAAUtsC,EAAcspC,GAExBiD,GAAOD,GAAUjf,EAAS+e,IAE1BI,GAAOF,GAAUjf,EAASgf,IAE1BI,GAAmB/e,YAAOsd,EAASpd,YAAQ2e,GAAMN,IAAaM,GAAMD,GAAStB,EAASrd,YAAQ6e,GAAMN,IAAaM,IAErHxsC,EAAcspC,GAAWmD,GACzBp0I,EAAKixI,GAAWmD,GAAmBH,IAIvCzrJ,EAAMy/G,cAAc37G,GAAQ0T,IAS5Bs4H,iBAAkB,CAAC,Y,sBEzHrB,OAOC,WACA,aAEA,IAAI14B,IACe,qBAAX3lG,SACPA,OAAOC,WACPD,OAAOC,SAAS/E,eAGbk/I,EAAuB,CAE1Bz0C,UAAWA,EAEX00C,cAAiC,qBAAXC,OAEtBC,qBACC50C,MAAgB3lG,OAAOiD,mBAAoBjD,OAAOw6I,aAEnDC,eAAgB90C,KAAe3lG,OAAO06I,aAOrC,KAFD5L,aACC,OAAOsL,GACP,8BAzBF,I,6BCUcxd,IAJf,WACE,OAAO,I,8BCdT,wBAGIlsB,EAAgC,iBAAXlrH,SAAuBA,UAAYA,QAAQ6uG,UAAY7uG,QAG5EmrH,EAAaD,GAAgC,iBAAVnrH,GAAsBA,IAAWA,EAAO8uG,UAAY9uG,EAMvFo3I,EAHgBhsB,GAAcA,EAAWnrH,UAAYkrH,EAG5B5oF,IAAK60G,YAAS7wI,EACvC6uJ,EAAche,EAASA,EAAOge,iBAAc7uJ,EAqBjC+iI,IAXf,SAAqBtsB,EAAQ2qB,GAC3B,GAAIA,EACF,OAAO3qB,EAAOt1G,QAEhB,IAAI/G,EAASq8G,EAAOr8G,OAChBmE,EAASswJ,EAAcA,EAAYz0J,GAAU,IAAIq8G,EAAO56G,YAAYzB,GAGxE,OADAq8G,EAAOm2B,KAAKruI,GACLA,K,sCC/BT,IAAIuwJ,EAAan1J,EAAQ,KAuBrB47G,EAtBmB57G,EAAQ,IAsBfs+I,EAAiB,SAAS15I,EAAQ25I,EAAMjpI,GAEtD,OADAipI,EAAOA,EAAKr+G,cACLt7B,GAAU0Q,EAAQ6/I,EAAW5W,GAAQA,MAG9Cz+I,EAAOC,QAAU67G,G,gBC5BjB,IAAIwnB,EAAkBpjI,EAAQ,KAC1Bo3I,EAAap3I,EAAQ,KACrBq3I,EAAer3I,EAAQ,KAiC3BF,EAAOC,QAVP,SAAiB6O,EAAQu0H,GACvB,IAAIv+H,EAAS,GAMb,OALAu+H,EAAWkU,EAAalU,EAAU,GAElCiU,EAAWxoI,GAAQ,SAASpK,EAAOxD,EAAK4N,GACtCw0H,EAAgBx+H,EAAQu+H,EAAS3+H,EAAOxD,EAAK4N,GAASpK,MAEjDI,I,cClBT,SAAS60G,EAASH,EAAOD,GACvB,IAAIjwB,EAASkwB,EAAM74G,OACfklD,EAAS,IAAIjkD,MAAM0nF,GACnB5D,EAAU,GACVhlF,EAAI4oF,EAEJgsE,EA4DN,SAA2BxqJ,GAEzB,IADA,IAAIyuG,EAAQ,IAAIv7F,IACPtd,EAAI,EAAGkrB,EAAM9gB,EAAInK,OAAQD,EAAIkrB,EAAKlrB,IAAK,CAC9C,IAAI4qD,EAAOxgD,EAAIpK,GACV64G,EAAMrwG,IAAIoiD,EAAK,KAAKiuD,EAAMnwG,IAAIkiD,EAAK,GAAI,IAAIle,KAC3CmsE,EAAMrwG,IAAIoiD,EAAK,KAAKiuD,EAAMnwG,IAAIkiD,EAAK,GAAI,IAAIle,KAChDmsE,EAAM/yG,IAAI8kD,EAAK,IAAIje,IAAIie,EAAK,IAE9B,OAAOiuD,EApEag8C,CAAkBh8C,GAClCi8C,EAsEN,SAAuB1qJ,GAErB,IADA,IAAIwzC,EAAM,IAAItgC,IACLtd,EAAI,EAAGkrB,EAAM9gB,EAAInK,OAAQD,EAAIkrB,EAAKlrB,IACzC49C,EAAIl1C,IAAI0B,EAAIpK,GAAIA,GAElB,OAAO49C,EA3ESm3G,CAAcj8C,GAS9B,IANAD,EAAMlqG,SAAQ,SAASi8C,GACrB,IAAKkqG,EAAUtsJ,IAAIoiD,EAAK,MAAQkqG,EAAUtsJ,IAAIoiD,EAAK,IACjD,MAAM,IAAIl+C,MAAM,oEAIb1M,KACAglF,EAAQhlF,IAAIg1J,EAAMl8C,EAAM94G,GAAIA,EAAG,IAAI0sC,KAG1C,OAAOyY,EAEP,SAAS6vG,EAAMxkJ,EAAMxQ,EAAGi1J,GACtB,GAAGA,EAAazsJ,IAAIgI,GAAO,CACzB,IAAI0kJ,EACJ,IACEA,EAAU,cAAgBr+G,KAAKC,UAAUtmC,GACzC,MAAMpO,GACN8yJ,EAAU,GAEZ,MAAM,IAAIxoJ,MAAM,oBAAsBwoJ,GAGxC,IAAKJ,EAAUtsJ,IAAIgI,GACjB,MAAM,IAAI9D,MAAM,+EAA+EmqC,KAAKC,UAAUtmC,IAGhH,IAAIw0E,EAAQhlF,GAAZ,CACAglF,EAAQhlF,IAAK,EAEb,IAAIm1J,EAAWP,EAAc9uJ,IAAI0K,IAAS,IAAIk8B,IAG9C,GAAI1sC,GAFJm1J,EAAWj0J,MAAM2F,KAAKsuJ,IAELl1J,OAAQ,CACvBg1J,EAAatoH,IAAIn8B,GACjB,EAAG,CACD,IAAIuF,EAAQo/I,IAAWn1J,GACvBg1J,EAAMj/I,EAAO++I,EAAUhvJ,IAAIiQ,GAAQk/I,SAC5Bj1J,GACTi1J,EAAaxmH,OAAOj+B,GAGtB20C,IAASyjC,GAAUp4E,IA1DvBlR,EAAOC,QAAU,SAASs5G,GACxB,OAAOI,EA6DT,SAAqB7uG,GAEnB,IADA,IAAIwzC,EAAM,IAAIlR,IACL1sC,EAAI,EAAGkrB,EAAM9gB,EAAInK,OAAQD,EAAIkrB,EAAKlrB,IAAK,CAC9C,IAAI4qD,EAAOxgD,EAAIpK,GACf49C,EAAIjR,IAAIie,EAAK,IACbhN,EAAIjR,IAAIie,EAAK,IAEf,OAAO1pD,MAAM2F,KAAK+2C,GApEFw3G,CAAYv8C,GAAQA,IAGtCv5G,EAAOC,QAAQ6uB,MAAQ6qF,G,mUCchB,IAAMo8C,EAAmB,CAC9B,KACA,MACA,WACA,KACA,KACA,SACA,MACA,QACA,OACA,WACA,OACA,KACA,QACA,SACA,QACA,QACA,QACA,QACA,KACA,KACA,OAYWC,EAA6C,CAExD,iBAAkB,gBAClBC,cAAe,gBACfC,UAAW,YACXC,gBAAiB,kBACjBC,eAAgB,iBAChBC,aAAc,eACdC,YAAa,cACbC,UAAW,YACXC,SAAU,WACVC,SAAU,WACVC,YAAa,cACbC,YAAa,cACbC,QAAS,UACTC,MAAO,YACPC,QAAS,UACTC,UAAW,YACXC,QAAS,UACTC,gBAAiB,kBACjBC,YAAa,cACbC,aAAc,eACdC,YAAa,cACbC,wBAAyB,0BACzBr6D,SAAU,WACVs6D,eAAgB,iBAChBC,aAAc,eACdC,QAAS,UACTp4B,IAAK,UACLq4B,WAAY,aACZC,WAAY,aACZC,YAAa,cACbC,eAAgB,iBAChBC,WAAY,aACZC,YAAa,cACbC,SAAU,WACVC,QAAS,UACTC,UAAW,YACX,aAAc,YACdl3I,KAAM,OACNm3I,UAAW,YACXC,UAAW,YACXC,OAAQ,SACRC,SAAU,WACVC,QAAS,UACTC,UAAW,YACXC,SAAU,WACVC,UAAW,YACXC,QAAS,UACTC,YAAa,cACbC,aAAc,eACdC,UAAW,YACXC,WAAY,aACZC,UAAW,YACXC,SAAU,WACVC,WAAY,aACZC,YAAa,cACbC,WAAY,aACZC,SAAU,WACVC,eAAgB,iBAChBC,QAAS,UACTC,WAAY,aACZC,OAAQ,SACRC,QAAS,UACTC,OAAQ,SACRC,SAAU,WACVC,cAAe,gBACfC,OAAQ,SAGRC,aAAc,eACd,gBAAiB,eACjBC,kBAAmB,oBACnB,qBAAsB,oBACtBC,aAAc,eACdC,WAAY,aACZ,cAAe,aACfC,cAAe,gBACfC,cAAe,gBACfC,YAAa,cACbC,cAAe,gBACfC,cAAe,gBACf,iBAAkB,gBAClBC,YAAa,cACbC,SAAU,WACVC,UAAW,YACX,aAAc,YACdC,SAAU,WACV,YAAa,WACbC,cAAe,gBACfC,SAAU,WACV,YAAa,WACbC,mBAAoB,qBACpB,sBAAuB,qBACvBC,0BAA2B,4BAC3B,8BAA+B,4BAC/BC,aAAc,eACd,gBAAiB,eACjBC,eAAgB,iBAChB,kBAAmB,iBACnBC,kBAAmB,oBACnBC,iBAAkB,mBAClBC,gBAAiB,kBACjBC,iBAAkB,mBAClB,oBAAqB,mBACrBC,SAAU,WACVC,iBAAkB,mBAClB,oBAAqB,mBACrBC,0BAA2B,4BAC3BC,YAAa,cACb,eAAgB,cAChBC,SAAU,WACV,YAAa,WACbC,UAAW,YACXC,YAAa,cACbC,aAAc,eACd,gBAAiB,eACjBC,WAAY,aACZ,cAAe,aACfC,WAAY,aACZ,cAAe,aACfC,SAAU,WACV,YAAa,WACbC,eAAgB,iBAChB,mBAAoB,iBACpBC,YAAa,cACb,eAAgB,cAChBC,UAAW,YACX,aAAc,YACdC,YAAa,cACb,eAAgB,cAChBC,WAAY,aACZ,cAAe,aACfC,UAAW,YACX,aAAc,YACdC,2BAA4B,6BAC5B,+BAAgC,6BAChCC,yBAA0B,2BAC1B,6BAA8B,2BAC9BC,SAAU,WACVC,kBAAmB,oBACnBC,cAAe,gBACfC,UAAW,YACX,cAAe,YACfC,aAAc,eACd,iBAAkB,eAClBC,eAAgB,iBAChB,kBAAmB,iBACnBC,aAAc,eACdC,iBAAkB,mBAClBC,UAAW,YACXC,WAAY,aACZC,SAAU,WACVC,aAAc,eACdC,cAAe,gBACf,iBAAkB,gBAClBC,cAAe,gBACf,iBAAkB,gBAClBC,kBAAmB,oBACnBC,UAAW,YACX,aAAc,YACdC,aAAc,eACdC,UAAW,YACX,aAAc,YACdC,YAAa,cACb,eAAgB,cAChBC,YAAa,cACbC,YAAa,cACbC,iBAAkB,mBAClBC,UAAW,YACXC,WAAY,aACZC,iBAAkB,mBAClB,oBAAqB,mBACrBC,kBAAmB,oBACnB,qBAAsB,oBACtBC,WAAY,aACZ,cAAe,aACf,WAAY,UACZC,WAAY,aACZC,oBAAqB,sBACrBC,iBAAkB,mBAClBC,aAAc,eACdC,cAAe,gBACf,iBAAkB,gBAClBC,UAAW,YACXC,UAAW,YACXC,UAAW,YACXC,cAAe,gBACfC,oBAAqB,sBACrBC,eAAgB,iBAChBC,KAAM,OACNC,KAAM,OACNC,gBAAiB,kBACjB,mBAAoB,kBACpBC,YAAa,cACbC,UAAW,YACXC,mBAAoB,qBACpBC,iBAAkB,mBAClBC,eAAgB,iBAChB,kBAAmB,iBACnBC,iBAAkB,mBAClBC,iBAAkB,mBAClBC,aAAc,eACdC,YAAa,cACbC,aAAc,eACdC,YAAa,cACbC,UAAW,YACX,aAAc,YACdC,YAAa,cACb,eAAgB,cAChBC,sBAAuB,wBACvB,yBAA0B,wBAC1BC,uBAAwB,yBACxB,0BAA2B,yBAC3BC,gBAAiB,kBACjB,mBAAoB,kBACpBC,iBAAkB,mBAClB,oBAAqB,mBACrBC,cAAe,gBACf,iBAAkB,gBAClBC,eAAgB,iBAChB,kBAAmB,iBACnBC,iBAAkB,mBAClB,oBAAqB,mBACrBC,YAAa,cACb,eAAgB,cAChBC,cAAe,gBACf,iBAAkB,gBAClBC,+BAAgC,iCAChCC,yBAA0B,2BAC1BC,aAAc,eACdC,eAAgB,iBAChBC,YAAa,cACbC,QAAS,UACTC,QAAS,UACTC,WAAY,aACZ,cAAe,aACfC,eAAgB,iBAChB,kBAAmB,iBACnBC,WAAY,aACZC,cAAe,gBACf,iBAAkB,gBAClBC,kBAAmB,oBACnB,qBAAsB,oBACtBC,mBAAoB,qBACpB,sBAAuB,qBACvBC,YAAa,cACb,eAAgB,cAChBC,aAAc,eACd,gBAAiB,eACjBC,WAAY,aACZ,eAAgB,aAChBC,aAAc,eACdC,YAAa,cACb,eAAgB,cAChBC,aAAc,eACd,gBAAiB,eACjBC,SAAU,WACV,aAAc,WACdC,YAAa,cACb,gBAAiB,cACjBC,YAAa,cACb,gBAAiB,cACjBC,SAAU,WACV,YAAa,WACbC,aAAc,eACd,gBAAiB,eACjBC,QAAS,UACTC,WAAY,aACZC,cAAe,gBACf,iBAAkB,gBAClBC,YAAa,cACb,eAAgB,cAChBC,YAAa,cACb,eAAgB,cAChBC,iBAAkB,mBAClBC,QAAS,UACT,WAAY,UACZC,aAAc,eACd,gBAAiB,eACjBC,aAAc,eACd,gBAAiB,eACjBC,UAAW,YACX,aAAc,YACdC,UAAW,YACX,aAAc,YACdC,UAAW,YACX,aAAc,YACdC,WAAY,aACZ,cAAe,aACfC,UAAW,YACX,aAAc,YACdC,QAAS,UACT,WAAY,UACZC,QAAS,UACT,WAAY,UACZ,YAAa,WACbC,WAAY,aACZ,cAAe,aACfC,SAAU,WACVC,iBAAkB,mBAClBC,WAAY,aAGZC,OAAQ,SACRC,SAAU,WACVC,QAAS,UACTC,cAAe,gBACfC,cAAe,gBACfC,OAAQ,SACRC,UAAW,YACXC,YAAa,cACbC,WAAY,aACZC,YAAa,cACbC,WAAY,aACZC,YAAa,cACbC,OAAQ,SACRlhB,QAAS,UACTmhB,QAAS,UACTC,QAAS,UACTC,UAAW,YACXC,UAAW,YACXC,WAAY,aACZC,QAAS,UACTC,OAAQ,SACRC,YAAa,cACbC,aAAc,eACdC,aAAc,eACdC,YAAa,cACbC,WAAY,aACZC,YAAa,cACbC,UAAW,YACXC,SAAU,WACVC,SAAU,WACVC,cAAe,gBACfC,WAAY,aACZC,YAAa,cACbC,aAAc,eACdC,QAAS,W,qkBC5WX,SAASC,EAAgBn0J,EAAYo0J,GACnC,IAAM5rB,EAAyB,CAC7Bx4I,IAAKokK,GAIP,GAAIp0J,aAAgBE,QAAS,CAC3B,IAAMm0J,EAAiBr0J,EAAKmuD,aAAa,SAErCkmG,IACF7rB,EAAWpgI,UAAYisJ,GAGzBz+J,EAAIoK,EAAKwoI,YAAYrqI,SAAQ,SAAC7N,GAC5B,OAAQA,EAAEsL,MAER,IAAK,QACH,MACF,IAAK,QACH4sI,EAAWl4I,EAAEsL,MAAsBtL,EAAEkD,MDnDpB49B,MAAM,SACbp4B,QAAO,SAACC,EAA0B3I,GAC5C,QAAeA,EAAE8gC,MAAM,SAAQ,GAA9BphC,EAAG,KAAEwD,EAAK,KAQjB,OANIxD,GAAOwD,IACTyF,EAAIjJ,EAAIsT,QAAQ,UAAU,SAACgxJ,EAAKC,GAAO,SAAGr4I,kBAAkBnC,OAAOhR,MAAMgR,OAAOvmB,IAC5EA,EACAumB,OAAOvmB,IAGNyF,IACN,ICyCK,MACF,IAAK,kBACL,IAAK,sBACL,IAAK,QACL,IAAK,YACL,IAAK,WACL,IAAK,UACL,IAAK,WACL,IAAK,UACL,IAAK,QACL,IAAK,WACL,IAAK,iBACL,IAAK,SACL,IAAK,QACL,IAAK,YACL,IAAK,OACL,IAAK,WACL,IAAK,QACL,IAAK,WACL,IAAK,aACL,IAAK,OACL,IAAK,WACL,IAAK,WACL,IAAK,WACL,IAAK,WACL,IAAK,gBACHuvI,EAAWsc,EAAsBx0J,EAAEsL,OAAStL,EAAEsL,OAAQ,EACtD,MACF,QACE4sI,EAAWsc,EAAsBx0J,EAAEsL,OAAStL,EAAEsL,MAAQtL,EAAEkD,UAKhE,OAAOg1I,EA6BH,SAAUgsB,EAAgBz8I,EAAapU,G,MAC3C,QAD2C,QAAAA,OACtCoU,KAAWA,aAAiB08I,MAC/B,OAAO,KAGD,IAbSp3D,EAaT,EAAkD15F,EAAO,QAAzD+wJ,OAAO,MAAG,GAAE,EAAE1sC,EAAoCrkH,EAAO,MAA3CW,OAAK,MAAG,EAAC,EAAEvK,EAAyB4J,EAAO,MAAhCgxJ,OAAK,MAAG,EAAC,EAAEC,EAAcjxJ,EAAO,UAE7D3D,EAAO+X,EACP/nB,EAAS2kK,EAAK,IAAIrwJ,EAChB1Q,EAAwC,GAiC9C,GA/BIghK,GAAuB,IAAVD,IACf3kK,EDhHE,SAAuBP,QAAA,QAAAA,KAI3B,IAHA,IAAMolK,EAAa,iEACfjhK,EAAS,GAEJpE,EAAIC,EAAQD,EAAI,IAAKA,EAC5BoE,GAAUihK,EAAWv6J,KAAK8iB,MAAM9iB,KAAK2c,UAAY49I,EAAWplK,OAAS,KAEvE,OAAOmE,ECyGIkhK,GAAc,IAAI9kK,GAIzBU,MAAM8I,QAAQk7J,IAChBA,EAAQv2J,SAAQ,SAACywG,GACXA,EAAO7yG,UAAUiE,EAAMhQ,EAAK2kK,KACJ,oBAAf/lD,EAAOmmD,OAChB/0J,EAAO4uG,EAAOmmD,IAAI/0J,EAAMhQ,EAAK2kK,cAEPF,OACpBz0J,EAAO+X,IAYgB,oBAAhB62F,EAAOomD,MAChBphK,EAAOmB,KAAK65G,EAAOomD,KAAKh1J,EAAMhQ,EAAK2kK,QAMvC/gK,EAAOnE,OACT,OAAOmE,EAGT,OAAQoM,EAAK49F,UACX,KAAK,EAEH,OAAO97F,iBAzDMu7F,EA0DDr9F,EAAKq9F,SAzDjB,qBAAqB7J,KAAK6J,GACrBA,EAGFA,EAASnuE,eAsDVilI,EAAgBn0J,EAAMhQ,GA7E9B,SAAuBilK,EAAyBN,EAAehxJ,GAC7D,IAAMxB,EAA8BvM,EAAIq/J,GACrCn6J,KAAI,SAACkF,EAAMsE,GACV,SAAgBtE,EAAI,OACf2D,GAAO,CACVW,MAAK,EACLqwJ,MAAOA,EAAQ,QAGlB52J,OAAOqoG,SAEV,OAAKjkG,EAAS1S,OAIP0S,EAHE,KAkEH+yJ,CAAcl1J,EAAKm1J,WAAYR,EAAOhxJ,IAG1C,KAAK,EAEH,IAAMyxJ,GAAyB,QAAd,IAAKC,iBAAS,eAAEn+I,aAAc,GAG/C,GAAI,QAAQs8E,KAAK4hE,KAAc,iBAAiB5hE,KAAK4hE,GACnD,OAAO,KAIT,IAAKp1J,EAAK0iC,WACR,OAAO0yH,EAGT,IAAME,EAAiBt1J,EAAK0iC,WAAW26D,SAASnuE,cAEhD,OAAkD,IAA9C21H,EAAiBhzJ,QAAQyjK,IAEvB,KAAK9hE,KAAK4hE,IAEZv6H,QAAQ1iB,KACN,qCAAqCm9I,EAAc,kBAAiBF,EAAQ,qBAGzE,MAGFA,EAET,KAAK,EAKL,QACE,OAAO,MAoCC,SAAUG,EACtBx9I,EACApU,GAEA,YAFA,QAAAA,MAEqB,kBAAVoU,EAnCP,SAA4BA,EAAepU,GAC/C,QAD+C,QAAAA,OAC1CoU,GAA0B,kBAAVA,EACnB,OAAO,KAED,MAAgEpU,EAAO,SAAvE6xJ,OAAQ,OAAQ,EAAEluC,EAA8C3jH,EAAO,SAArDg4F,OAAQ,MAAG,WAAU,EAAEqsB,EAAuBrkH,EAAO,KAA9BhI,OAAI,MAAG,YAAW,EAEnE,IACE,IAEMqE,GAFS,IAAIy1J,WACAC,gBAAgB39I,EAAOpc,GACzBw3G,cAAcxX,GAE/B,KAAM37F,aAAgBy0J,MACpB,MAAM,IAAIv4J,MAAM,uBAGlB,OAAIs5J,EACKx1J,EAGFw0J,EAAgBx0J,EAAM2D,GAC7B,MAAOhO,IAQT,OAAO,KAQEggK,CAAkB59I,EAAOpU,GAG9BoU,aAAiB08I,KACZD,EAAgBz8I,EAAOpU,GAGzB,K,aD1PIiyJ,EAAS,CACpBC,OAAQ,SACRC,OAAQ,SACRC,QAAS,UACTC,QAAS,UACTC,MAAO,QACPC,YAAa,eAGT,SAAUhnD,IACd,OAAOinD,YAGH,SAAUC,IACd,OAGI,WAEJ,IAAK5sJ,SACH,OAAO,EAGT,IAAM6sJ,EAAM7sJ,SAAS/E,cAAc,OAEnC,OADA4xJ,EAAIC,UAAY,YACPD,EAAIE,YAA8C,+BAAhCF,EAAIE,WAAWC,aAXnCC,IAAyC,qBAAXltJ,QAAqC,OAAXA,O,0hCELpDmtJ,EAA6C5mK,OAAOqB,OAAO,MAExE,cACE,WAAY5B,GAAZ,MACEiP,YAAMjP,IAAM,K,OAYNoP,YAAW,EAgOXA,mBAAmB,SAAC+K,GAEH,kBAAZA,EAKX/K,EAAKg4J,YAAYjtJ,GAJf/K,EAAKi4J,WAAWltJ,IAOZ/K,aAAa,SAAC+K,GAEhB/K,EAAK2J,UACP3J,EAAKyC,SACH,CACEsI,QAAO,EACP6wH,OAAQq7B,EAAOE,QAEjBn3J,EAAKgnE,aAKHhnE,cAAc,SAAChJ,GACb,MAAYgJ,EAAKpP,MAAK,QACxBgrI,EACc,iCAAlB5kI,EAAMqG,QAA6C45J,EAAOM,YAAcN,EAAOC,OAG7El3J,EAAK2J,UACP3J,EAAKyC,SAAS,CAAEm5H,OAAM,IAAI,WAED,oBAAZrrC,GACTA,EAAQv5F,OAMRgJ,UAAU,WACV,MAAuCA,EAAKpP,MAA1CsnK,EAAa,gBAAEC,EAAY,eAAExhF,EAAG,MAExC,IAKE,OAJIuhF,IACFH,EAAWphF,GAAO,CAAE5rE,QAAS,GAAI6wH,OAAQq7B,EAAOG,QAASznJ,MAAO,KAG3DyoJ,MAAMzhF,EAAKwhF,GACfhjK,MAAK,SAAC+lI,GACL,IAAMm9B,EAAcn9B,EAAS0V,QAAQj6I,IAAI,gBAClC2hK,EAAD,GAAcD,GAAe,IAAI5lI,MAAM,SAAQ,GAAtC,GAEf,GAAIyoG,EAASU,OAAS,IACpB,MAAM,IAAIr+H,MAAM,aAGlB,IAAK,CAAC,gBAAiB,cAAcgjE,MAAK,SAAC5uE,GAAM,SAASuB,QAAQvB,IAAM,KACtE,MAAM,IAAI4L,MAAM,6BAA6B+6J,GAG/C,OAAOp9B,EAAS7hG,UAEjBlkC,MAAK,SAAC4V,GACG,IAAKwtJ,EAAev4J,EAAKpP,MAAK,IAGtC,GAAI+lF,IAAQ4hF,IAIZv4J,EAAKi4J,WAAWltJ,GAGZmtJ,GAAe,CACjB,IAAMl0J,EAAQ+zJ,EAAWphF,GAGrB3yE,IACFA,EAAM+G,QAAUA,EAChB/G,EAAM43H,OAASq7B,EAAOE,OAEtBnzJ,EAAM2L,MAAQ3L,EAAM2L,MAAMvQ,QAAO,SAACoP,GAGhC,OAFAA,EAAGzD,IAEI,UAKdytJ,OAAM,SAACxhK,GAIN,GAHAgJ,EAAKg4J,YAAYhhK,GAGbkhK,EAAe,CACjB,IAAMl0J,EAAQ+zJ,EAAWphF,GAGrB3yE,IACFA,EAAM2L,MAAMnQ,SAAQ,SAACgP,GACnBA,EAAGxX,aAGE+gK,EAAWphF,QAI1B,MAAO3/E,GACP,OAAOgJ,EAAKg4J,YAAY,IAAIz6J,MAAMvG,EAAMqG,YArV1C2C,EAAK7G,MAAQ,CACX4R,QAAS,GACTrE,QAAS,KACT+xJ,WAAY7nK,EAAMsnK,iBAAmBH,EAAWnnK,EAAM+lF,KACtDilD,OAAQq7B,EAAOI,SAGjBr3J,EAAKsvG,KAAO1+G,EAAM8nK,YFMhB,SAAuB5nK,GAS3B,IARA,IAIyB6nK,EAJnBC,EAAU,6BAEV7R,EAAU,GAAG6R,EAAUA,EAAQr7I,cADrB,aAMZwI,EAAI,GACCl1B,EAAI,EAAGA,EAAIC,EAAQD,IAC1Bk1B,IALuB4yI,EAKF5R,GAJXprJ,KAAKC,MAAMD,KAAK2c,SAAWqgJ,EAAU7nK,SAOjD,OAAOi1B,EEnB2BowI,CAAa,G,EAqXjD,OAhYuChkK,OAsB9B0mK,8BAAP,WAGE,GAFA,KAAKlvJ,UAAW,EAEX4mG,IAAL,CAIQ,MAAW,KAAKp3G,MAAK,OACrB,EAAQ,KAAKvI,MAAK,IAE1B,IAEE,GAAIgrI,IAAWq7B,EAAOI,QAAS,CAE7B,IAAKI,IACH,MAAM,IAAIl6J,MAAM,gCAIlB,IAAKo5E,EACH,MAAM,IAAIp5E,MAAM,eAGlB,KAAKu7J,QAEP,MAAO9hK,GACP,KAAKghK,YAAYhhK,MAId6hK,+BAAP,SAA0Bh1J,EAAkB8/H,GAC1C,GAAKpzB,IAAL,CAIM,MAAuB,KAAKp3G,MAA1Bs/J,EAAQ,WAAE78B,EAAM,SAClB,EAAkB,KAAKhrI,MAArBmoK,EAAM,SAAEpiF,EAAG,MASnB,GAPIgtD,EAAU/H,SAAWq7B,EAAOK,OAAS17B,IAAWq7B,EAAOK,OAErDyB,GACFA,EAAOpiF,EAAK8hF,GAIZ50J,EAAU8yE,MAAQA,EAAK,CACzB,IAAKA,EAEH,YADA,KAAKqhF,YAAY,IAAIz6J,MAAM,gBAI7B,KAAKu7J,UAIFD,iCAAP,WACE,KAAKlvJ,UAAW,GAGVkvJ,uBAAR,WACU,MAAY,KAAK1/J,MAAK,QACtB,EAAiB,KAAKvI,MAAK,aAEnC,OAAIooK,EACKA,EAAajuJ,GAGfA,GAGD8tJ,gCAAR,SAA4Bx3J,GAA5B,WACQ,EAAgC,KAAKzQ,MAAnC+3H,YAAA0pB,OAAO,MAAG,GAAE,EAAE4mB,EAAW,cAC3BC,EAAwB,CAAC,KAAM,OAAQ,aAAc,aAAc,iBACnEC,EAAiB,CAAC,OAAQ,cAIhC,OAAKF,GAILzhK,OAAI6J,EAAKmC,WAAUrH,KAAI,SAACxK,GACtB,GAAIA,EAAEk4I,YAAcl4I,EAAEk4I,WAAW/4I,OAAQ,CACvC,IAAMsoK,EAAajoK,OAAOsU,OAAO9T,EAAEk4I,YAAY1tI,KAAI,SAAC9E,GAClD,IAAMgiK,EAAOhiK,EACPiM,EAAQjM,EAAExC,MAAMyO,MAAM,gBAM5B,OAJIA,GAASA,EAAM,KACjB+1J,EAAKxkK,MAAQwC,EAAExC,MAAM8P,QAAQrB,EAAM,GAAI,OAAO+uI,EAAU/uI,EAAM,GAAE,KAAKtD,EAAKsvG,KAAI,MAGzE+pD,KAGTH,EAAsB15J,SAAQ,SAAC/L,GAC7B,IArBewJ,EAAcpI,EAqBvBykK,EAAYF,EAAWvgB,MAAK,SAACxhJ,GAAM,SAAE4F,OAASxJ,MAEhD6lK,IAvBWr8J,EAuBexJ,EAvBDoB,EAuBIykK,EAAUzkK,MAtB/C,EAAe3B,QAAQ+J,IAAS,GAAMpI,GAAQA,EAAM3B,QAAQ,KAAO,KAuB7DomK,EAAUzkK,MAAWykK,EAAUzkK,MAAK,KAAKmL,EAAKsvG,SAKpD,OAAI39G,EAAE6R,SAAS1S,OACNkP,EAAKu5J,oBAAoB5nK,GAG3BA,KAGF0P,GAhCEA,GAmCHw3J,oBAAR,WACQ,MAAyB,KAAKjoK,MAA5BkQ,EAAW,cAAE++C,EAAK,QAE1B,IACE,IACMx+C,EAAOu1J,EADG,KAAK4C,aACS,CAAE3C,UAAU,IAE1C,IAAKx1J,KAAUA,aAAgBo4J,eAC7B,MAAM,IAAIl8J,MAAM,2CAGlB,IAAMm8J,EAAM,KAAKH,oBAAoBl4J,GAErC,GAAIP,EAAa,CACf,IAAM64J,EAAeD,EAAIllD,cAAc,QAEnCmlD,GAAgBA,EAAa51H,YAC/B41H,EAAa51H,WAAW5pB,YAAYw/I,GAGtC,IAAMC,EAAc/uJ,SAAS/E,cAAc,QAC3C8zJ,EAAYjC,UAAY72J,EACxB44J,EAAIG,QAAQD,GAGd,GAAI/5G,EAAO,CACT,IAAMi6G,EAAgBJ,EAAIllD,cAAc,SAEpCslD,GAAiBA,EAAc/1H,YACjC+1H,EAAc/1H,WAAW5pB,YAAY2/I,GAGvC,IAAMC,EAAelvJ,SAAS/E,cAAc,SAC5Ci0J,EAAapC,UAAY93G,EACzB65G,EAAIG,QAAQE,GAGd,OAAOL,EACP,MAAO1iK,GACP,OAAO,KAAKghK,YAAYhhK,KAIpB6hK,uBAAR,WACE,IACE,IACMnyJ,EAAUkwJ,EADH,KAAKoD,WAGlB,IAAKtzJ,IAAYvD,iBAAqBuD,GACpC,MAAM,IAAInJ,MAAM,gDAGlB,KAAKkF,SAAS,CACZiE,QAAO,EACPk1H,OAAQq7B,EAAOK,QAEjB,MAAOtgK,GACP,KAAKghK,YAAY,IAAIz6J,MAAMvG,EAAMqG,YAI7Bw7J,iBAAR,sBAEM,KAAKlvJ,UACP,KAAKlH,SACH,CACEsI,QAAS,GACTrE,QAAS,KACTk1H,OAAQq7B,EAAOG,UAEjB,WACQ,MAAyBp3J,EAAKpP,MAA5BsnK,EAAa,gBAAEvhF,EAAG,MACpB3yE,EAAQk0J,GAAiBH,EAAWphF,GAC1C,GAAI3yE,EAEEA,EAAM43H,SAAWq7B,EAAOG,QAC1BpzJ,EAAM2L,MAAMvZ,KAAK4J,EAAKi6J,kBACbj2J,EAAM43H,SAAWq7B,EAAOE,QACjCn3J,EAAKi4J,WAAWj0J,EAAM+G,aAL1B,CAUA,IACImvJ,EADEC,EAAUxjF,EAAIrzE,MAAM,wCAGtB62J,EACFD,EAAYC,EAAQ,GAAKC,KAAKD,EAAQ,IAAME,mBAAmBF,EAAQ,IAC9DxjF,EAAIzjF,QAAQ,SAAW,IAChCgnK,EAAYvjF,GAGVujF,EACFl6J,EAAKi4J,WAAWiC,GAIlBl6J,EAAK6xI,eAqHNgnB,mBAAP,WACQ,MAAsB,KAAK1/J,MAAzBuN,EAAO,UAAEk1H,EAAM,SACjB,EAA+C,KAAKhrI,MAAlDy4H,aAAA7lH,OAAQ,MAAG,KAAI,EAAE4E,EAAQ,WAAEhN,WAAAk/J,OAAM,MAAG,KAAI,EAC1CC,EF5TJ,SACJnhJ,G,IACA,aAAA7d,uBAAA6D,oBAEA,IAAMo7J,EAAc,GAEpB,IAAK,IAAMnpK,KAAO+nB,GAEZ,IAAGnnB,eAAeC,KAAKknB,EAAO/nB,KAC3B+N,EAAOm/B,SAAUltC,KACpBmpK,EAAOnpK,GAAO+nB,EAAM/nB,KAK1B,OAAOmpK,EE6SgBC,CACnB,KAAK7pK,MACL,UACA,gBACA,WACA,cACA,eACA,WACA,SACA,UACA,SACA,eACA,MACA,QACA,aACA,eAGF,OAAK2/G,IAID7pG,EACKvD,eAAmBuD,EAA6B,GAAIS,IAAKiB,GAAamyJ,IAG3E,CAACtD,EAAOM,YAAaN,EAAOC,QAAQhkK,QAAQ0oI,IAAW,EAClDp4H,EAGF82J,EAXEA,GAlWGzB,eAAe,CAC3BX,eAAe,EACfe,aAAa,GA6WjB,EAhYA,CAAuC91J,iBAAlB01J,O,sCCNR,IAAIjhK,EAAEvH,EAAQ,KAAiBwC,EAAE,oBAAoBkD,QAAQA,OAAOw5H,IAAIv9H,EAAEa,EAAEkD,OAAOw5H,IAAI,iBAAiB,MAAMt3H,EAAEpF,EAAEkD,OAAOw5H,IAAI,gBAAgB,MAAM97H,EAAEZ,EAAEkD,OAAOw5H,IAAI,kBAAkB,MAAM58H,EAAEE,EAAEkD,OAAOw5H,IAAI,qBAAqB,MAAMmrC,EAAE7nK,EAAEkD,OAAOw5H,IAAI,kBAAkB,MAAMt5H,EAAEpD,EAAEkD,OAAOw5H,IAAI,kBAAkB,MAAM7qG,EAAE7xB,EAAEkD,OAAOw5H,IAAI,iBAAiB,MAAMx0H,EAAElI,EAAEkD,OAAOw5H,IAAI,qBAAqB,MAAMh6H,EAAE1C,EAAEkD,OAAOw5H,IAAI,kBAAkB,MAAM/jE,EAAE34D,EAAEkD,OAAOw5H,IAAI,cAAc,MAAMlsG,EAAExwB,EAAEkD,OAAOw5H,IAAI,cACxe,MAAMjsG,EAAE,oBAAoBvtB,QAAQA,OAAOC,SAAS,SAASgR,EAAE3P,GAAG,IAAI,IAAIzF,EAAE,yDAAyDyF,EAAE7D,EAAE,EAAEA,EAAEV,UAAUhC,OAAO0C,IAAI5B,GAAG,WAAWw8I,mBAAmBt7I,UAAUU,IAAI,MAAM,yBAAyB6D,EAAE,WAAWzF,EAAE,iHAC/P,IAAI2xB,EAAE,CAACs5G,UAAU,WAAW,OAAM,GAAI89B,mBAAmB,aAAaC,oBAAoB,aAAaC,gBAAgB,cAAcr3I,EAAE,GAAG,SAAS5kB,EAAEvH,EAAEzF,EAAE4B,GAAGlB,KAAK1B,MAAMyG,EAAE/E,KAAKuP,QAAQjQ,EAAEU,KAAK6uG,KAAK39E,EAAElxB,KAAKwoK,QAAQtnK,GAAG+vB,EACpN,SAAS+C,KAA6B,SAASC,EAAElvB,EAAEzF,EAAE4B,GAAGlB,KAAK1B,MAAMyG,EAAE/E,KAAKuP,QAAQjQ,EAAEU,KAAK6uG,KAAK39E,EAAElxB,KAAKwoK,QAAQtnK,GAAG+vB,EADsG3kB,EAAEnN,UAAUspK,iBAAiB,GAAGn8J,EAAEnN,UAAUgR,SAAS,SAASpL,EAAEzF,GAAG,GAAG,kBAAkByF,GAAG,oBAAoBA,GAAG,MAAMA,EAAE,MAAMkG,MAAMyJ,EAAE,KAAK1U,KAAKwoK,QAAQD,gBAAgBvoK,KAAK+E,EAAEzF,EAAE,aAAagN,EAAEnN,UAAUud,YAAY,SAAS3X,GAAG/E,KAAKwoK,QAAQH,mBAAmBroK,KAAK+E,EAAE,gBACndivB,EAAE70B,UAAUmN,EAAEnN,UAAsF,IAAI+0B,EAAED,EAAE90B,UAAU,IAAI60B,EAAEE,EAAEj0B,YAAYg0B,EAAE3uB,EAAE4uB,EAAE5nB,EAAEnN,WAAW+0B,EAAEw0I,sBAAqB,EAAG,IAAIv0I,EAAE,CAAC5Z,QAAQ,MAAMwZ,EAAEl1B,OAAOM,UAAUQ,eAAem0B,EAAE,CAAC/0B,KAAI,EAAG8V,KAAI,EAAG8zJ,QAAO,EAAGC,UAAS,GAChS,SAAS/0I,EAAE9uB,EAAEzF,EAAE4B,GAAG,IAAIP,EAAEtB,EAAE,GAAG6D,EAAE,KAAKgB,EAAE,KAAK,GAAG,MAAM5E,EAAE,IAAIqB,UAAK,IAASrB,EAAEuV,MAAM3Q,EAAE5E,EAAEuV,UAAK,IAASvV,EAAEP,MAAMmE,EAAE,GAAG5D,EAAEP,KAAKO,EAAEy0B,EAAEn0B,KAAKN,EAAEqB,KAAKmzB,EAAEn0B,eAAegB,KAAKtB,EAAEsB,GAAGrB,EAAEqB,IAAI,IAAIqC,EAAExC,UAAUhC,OAAO,EAAE,GAAG,IAAIwE,EAAE3D,EAAE6R,SAAShQ,OAAO,GAAG,EAAE8B,EAAE,CAAC,IAAI,IAAI0uB,EAAEjyB,MAAMuD,GAAGiB,EAAE,EAAEA,EAAEjB,EAAEiB,IAAIytB,EAAEztB,GAAGzD,UAAUyD,EAAE,GAAG5E,EAAE6R,SAASwgB,EAAE,GAAG3sB,GAAGA,EAAEof,aAAa,IAAIxjB,KAAKqC,EAAE+B,EAAEof,kBAAe,IAAS9kB,EAAEsB,KAAKtB,EAAEsB,GAAGqC,EAAErC,IAAI,MAAM,CAACqpH,SAAStqH,EAAEgL,KAAK3F,EAAEhG,IAAImE,EAAE2R,IAAI3Q,EAAE5F,MAAMe,EAAEwpK,OAAO10I,EAAE5Z,SACxU,SAASoZ,EAAE5uB,GAAG,MAAM,kBAAkBA,GAAG,OAAOA,GAAGA,EAAEilH,WAAWtqH,EAA0G,IAAIuC,EAAE,OAAOyxB,EAAE,GAAG,SAASD,EAAE1uB,EAAEzF,EAAE4B,EAAEP,GAAG,GAAG+yB,EAAEl1B,OAAO,CAAC,IAAIa,EAAEq0B,EAAE7vB,MAA8D,OAAxDxE,EAAEsD,OAAOoC,EAAE1F,EAAEypK,UAAUxpK,EAAED,EAAE8+H,KAAKj9H,EAAE7B,EAAEkQ,QAAQ5O,EAAEtB,EAAE+d,MAAM,EAAS/d,EAAE,MAAM,CAACsD,OAAOoC,EAAE+jK,UAAUxpK,EAAE6+H,KAAKj9H,EAAEqO,QAAQ5O,EAAEyc,MAAM,GAC5b,SAASoW,EAAEzuB,GAAGA,EAAEpC,OAAO,KAAKoC,EAAE+jK,UAAU,KAAK/jK,EAAEo5H,KAAK,KAAKp5H,EAAEwK,QAAQ,KAAKxK,EAAEqY,MAAM,EAAE,GAAGsW,EAAEl1B,QAAQk1B,EAAE5vB,KAAKiB,GACtG,SAASwuB,EAAExuB,EAAEzF,EAAE4B,EAAEP,GAAG,IAAItB,SAAS0F,EAAK,cAAc1F,GAAG,YAAYA,IAAE0F,EAAE,MAAK,IAAI7B,GAAE,EAAG,GAAG,OAAO6B,EAAE7B,GAAE,OAAQ,OAAO7D,GAAG,IAAK,SAAS,IAAK,SAAS6D,GAAE,EAAG,MAAM,IAAK,SAAS,OAAO6B,EAAEilH,UAAU,KAAKtqH,EAAE,KAAKiG,EAAEzC,GAAE,GAAI,GAAGA,EAAE,OAAOhC,EAAEP,EAAEoE,EAAE,KAAKzF,EAAE,IAAIg0B,EAAEvuB,EAAE,GAAGzF,GAAG,EAAyB,GAAvB4D,EAAE,EAAE5D,EAAE,KAAKA,EAAE,IAAIA,EAAE,IAAOG,MAAM8I,QAAQxD,GAAG,IAAI,IAAIb,EAAE,EAAEA,EAAEa,EAAEvG,OAAO0F,IAAI,CAAQ,IAAIlB,EAAE1D,EAAEg0B,EAAfj0B,EAAE0F,EAAEb,GAAeA,GAAGhB,GAAGqwB,EAAEl0B,EAAE2D,EAAE9B,EAAEP,QAAQ,GAAG,OAAOoE,GAAG,kBAAkBA,EAAE/B,EAAE,KAAiCA,EAAE,oBAA7BA,EAAEguB,GAAGjsB,EAAEisB,IAAIjsB,EAAE,eAAsC/B,EAAE,KAAM,oBAAoBA,EAAE,IAAI+B,EAAE/B,EAAEpD,KAAKmF,GAAGb,EACpf,IAAI7E,EAAE0F,EAAEtC,QAAQG,MAA6BM,GAAGqwB,EAA1Bl0B,EAAEA,EAAEkD,MAAMS,EAAE1D,EAAEg0B,EAAEj0B,EAAE6E,KAAchD,EAAEP,QAAQ,GAAG,WAAWtB,EAAE,MAAM6B,EAAE,GAAG6D,EAAEkG,MAAMyJ,EAAE,GAAG,oBAAoBxT,EAAE,qBAAqBrC,OAAOqL,KAAKnF,GAAG4E,KAAK,MAAM,IAAIzI,EAAE,KAAK,OAAOgC,EAAE,SAASmwB,EAAEtuB,EAAEzF,EAAE4B,GAAG,OAAO,MAAM6D,EAAE,EAAEwuB,EAAExuB,EAAE,GAAGzF,EAAE4B,GAAG,SAASoyB,EAAEvuB,EAAEzF,GAAG,MAAM,kBAAkByF,GAAG,OAAOA,GAAG,MAAMA,EAAEhG,IAH9I,SAAgBgG,GAAG,IAAIzF,EAAE,CAAC,IAAI,KAAK,IAAI,MAAM,MAAM,KAAK,GAAGyF,GAAGsN,QAAQ,SAAQ,SAAStN,GAAG,OAAOzF,EAAEyF,MAG+CgkK,CAAOhkK,EAAEhG,KAAKO,EAAE2mB,SAAS,IAAI,SAASmN,EAAEruB,EAAEzF,GAAGyF,EAAEo5H,KAAKv+H,KAAKmF,EAAEwK,QAAQjQ,EAAEyF,EAAEqY,SACxX,SAAS4rJ,EAAGjkK,EAAEzF,EAAE4B,GAAG,IAAIP,EAAEoE,EAAEpC,OAAOtD,EAAE0F,EAAE+jK,UAAU/jK,EAAEA,EAAEo5H,KAAKv+H,KAAKmF,EAAEwK,QAAQjQ,EAAEyF,EAAEqY,SAAS3d,MAAM8I,QAAQxD,GAAGouB,EAAEpuB,EAAEpE,EAAEO,GAAE,SAAS6D,GAAG,OAAOA,KAAI,MAAMA,IAAI4uB,EAAE5uB,KAAKA,EAJtJ,SAAWA,EAAEzF,GAAG,MAAM,CAAC0qH,SAAStqH,EAAEgL,KAAK3F,EAAE2F,KAAK3L,IAAIO,EAAEuV,IAAI9P,EAAE8P,IAAIvW,MAAMyG,EAAEzG,MAAMuqK,OAAO9jK,EAAE8jK,QAImEj1I,CAAE7uB,EAAE1F,IAAI0F,EAAEhG,KAAKO,GAAGA,EAAEP,MAAMgG,EAAEhG,IAAI,IAAI,GAAGgG,EAAEhG,KAAKsT,QAAQpQ,EAAE,OAAO,KAAKf,IAAIP,EAAEmD,KAAKiB,IAAI,SAASouB,EAAEpuB,EAAEzF,EAAE4B,EAAEP,EAAEtB,GAAG,IAAI6D,EAAE,GAAG,MAAMhC,IAAIgC,GAAG,GAAGhC,GAAGmR,QAAQpQ,EAAE,OAAO,KAAkBoxB,EAAEtuB,EAAEikK,EAAjB1pK,EAAEm0B,EAAEn0B,EAAE4D,EAAEvC,EAAEtB,IAAam0B,EAAEl0B,GAAG,IAAI4zB,EAAE,CAAC3Y,QAAQ,MAAM,SAAS0Y,IAAI,IAAIluB,EAAEmuB,EAAE3Y,QAAQ,GAAG,OAAOxV,EAAE,MAAMkG,MAAMyJ,EAAE,MAAM,OAAO3P,EACxa,IAAIkkK,EAAG,CAACC,uBAAuBh2I,EAAEi2I,wBAAwB,CAACC,SAAS,MAAMC,kBAAkBl1I,EAAEm1I,qBAAqB,CAAC/uJ,SAAQ,GAAIna,OAAOkF,GAAGxH,EAAQuW,SAAS,CAACxK,IAAI,SAAS9E,EAAEzF,EAAE4B,GAAG,GAAG,MAAM6D,EAAE,OAAOA,EAAE,IAAIpE,EAAE,GAAmB,OAAhBwyB,EAAEpuB,EAAEpE,EAAE,KAAKrB,EAAE4B,GAAUP,GAAGuM,QAAQ,SAASnI,EAAEzF,EAAE4B,GAAG,GAAG,MAAM6D,EAAE,OAAOA,EAAqBsuB,EAAEtuB,EAAEquB,EAAvB9zB,EAAEm0B,EAAE,KAAK,KAAKn0B,EAAE4B,IAAYsyB,EAAEl0B,IAAI8d,MAAM,SAASrY,GAAG,OAAOsuB,EAAEtuB,GAAE,WAAW,OAAO,OAAM,OAAO0qG,QAAQ,SAAS1qG,GAAG,IAAIzF,EAAE,GAAqC,OAAlC6zB,EAAEpuB,EAAEzF,EAAE,MAAK,SAASyF,GAAG,OAAOA,KAAWzF,GAAG4wI,KAAK,SAASnrI,GAAG,IAAI4uB,EAAE5uB,GAAG,MAAMkG,MAAMyJ,EAAE,MAAM,OAAO3P,IAC9ejH,EAAQqT,UAAU7E,EAAExO,EAAQyrK,SAASpoK,EAAErD,EAAQ0rK,SAASpB,EAAEtqK,EAAQ2rK,cAAcx1I,EAAEn2B,EAAQ4rK,WAAWrpK,EAAEvC,EAAQ6rK,SAAS1mK,EAAEnF,EAAQ8rK,mDAAmDX,EACrLnrK,EAAQ0W,aAAa,SAASzP,EAAEzF,EAAE4B,GAAG,GAAG,OAAO6D,QAAG,IAASA,EAAE,MAAMkG,MAAMyJ,EAAE,IAAI3P,IAAI,IAAIpE,EAAE2E,EAAE,GAAGP,EAAEzG,OAAOe,EAAE0F,EAAEhG,IAAImE,EAAE6B,EAAE8P,IAAI3Q,EAAEa,EAAE8jK,OAAO,GAAG,MAAMvpK,EAAE,CAAoE,QAAnE,IAASA,EAAEuV,MAAM3R,EAAE5D,EAAEuV,IAAI3Q,EAAEiwB,EAAE5Z,cAAS,IAASjb,EAAEP,MAAMM,EAAE,GAAGC,EAAEP,KAAQgG,EAAE2F,MAAM3F,EAAE2F,KAAKyZ,aAAa,IAAInhB,EAAE+B,EAAE2F,KAAKyZ,aAAa,IAAIuN,KAAKpyB,EAAEy0B,EAAEn0B,KAAKN,EAAEoyB,KAAKoC,EAAEn0B,eAAe+xB,KAAK/wB,EAAE+wB,QAAG,IAASpyB,EAAEoyB,SAAI,IAAS1uB,EAAEA,EAAE0uB,GAAGpyB,EAAEoyB,IAAI,IAAIA,EAAElxB,UAAUhC,OAAO,EAAE,GAAG,IAAIkzB,EAAE/wB,EAAEuQ,SAAShQ,OAAO,GAAG,EAAEwwB,EAAE,CAAC1uB,EAAEvD,MAAMiyB,GAAG,IAAI,IAAIztB,EAAE,EAAEA,EAAEytB,EAAEztB,IAAIjB,EAAEiB,GAAGzD,UAAUyD,EAAE,GAAGtD,EAAEuQ,SAASlO,EAAE,MAAM,CAACgnH,SAAStqH,EAAEgL,KAAK3F,EAAE2F,KACxf3L,IAAIM,EAAEwV,IAAI3R,EAAE5E,MAAMqC,EAAEkoK,OAAO3kK,IAAIpG,EAAQ0R,cAAc,SAASzK,EAAEzF,GAA8K,YAA3K,IAASA,IAAIA,EAAE,OAAMyF,EAAE,CAACilH,SAAS53F,EAAEy3I,sBAAsBvqK,EAAEwqK,cAAc/kK,EAAEglK,eAAehlK,EAAEilK,aAAa,EAAEj5J,SAAS,KAAKoB,SAAS,OAAQpB,SAAS,CAACi5G,SAASrmH,EAAE+oC,SAAS3nC,GAAUA,EAAEoN,SAASpN,GAAGjH,EAAQ0V,cAAcqgB,EAAE/1B,EAAQmsK,cAAc,SAASllK,GAAG,IAAIzF,EAAEu0B,EAAEopE,KAAK,KAAKl4F,GAAY,OAATzF,EAAEoL,KAAK3F,EAASzF,GAAGxB,EAAQosK,UAAU,WAAW,MAAM,CAAC3vJ,QAAQ,OAAOzc,EAAQ6X,WAAW,SAAS5Q,GAAG,MAAM,CAACilH,SAASvhH,EAAEmI,OAAO7L,IAAIjH,EAAQyW,eAAeof,EAC3e71B,EAAQgoB,KAAK,SAAS/gB,GAAG,MAAM,CAACilH,SAASj5F,EAAEo5I,MAAMplK,EAAEqlK,SAAS,EAAEC,QAAQ,OAAOvsK,EAAQsV,KAAK,SAASrO,EAAEzF,GAAG,MAAM,CAAC0qH,SAAS9wD,EAAExuD,KAAK3F,EAAE6xC,aAAQ,IAASt3C,EAAE,KAAKA,IAAIxB,EAAQwsK,YAAY,SAASvlK,EAAEzF,GAAG,OAAO2zB,IAAIq3I,YAAYvlK,EAAEzF,IAAIxB,EAAQkX,WAAW,SAASjQ,EAAEzF,GAAG,OAAO2zB,IAAIje,WAAWjQ,EAAEzF,IAAIxB,EAAQysK,cAAc,aAAazsK,EAAQ2d,UAAU,SAAS1W,EAAEzF,GAAG,OAAO2zB,IAAIxX,UAAU1W,EAAEzF,IAAIxB,EAAQ0sK,oBAAoB,SAASzlK,EAAEzF,EAAE4B,GAAG,OAAO+xB,IAAIu3I,oBAAoBzlK,EAAEzF,EAAE4B,IACtcpD,EAAQwd,gBAAgB,SAASvW,EAAEzF,GAAG,OAAO2zB,IAAI3X,gBAAgBvW,EAAEzF,IAAIxB,EAAQ2sK,QAAQ,SAAS1lK,EAAEzF,GAAG,OAAO2zB,IAAIw3I,QAAQ1lK,EAAEzF,IAAIxB,EAAQ6e,WAAW,SAAS5X,EAAEzF,EAAE4B,GAAG,OAAO+xB,IAAItW,WAAW5X,EAAEzF,EAAE4B,IAAIpD,EAAQsc,OAAO,SAASrV,GAAG,OAAOkuB,IAAI7Y,OAAOrV,IAAIjH,EAAQ8e,SAAS,SAAS7X,GAAG,OAAOkuB,IAAIrW,SAAS7X,IAAIjH,EAAQ+8E,QAAQ,W,6BCZxS,IAAImuF,EAAGjrK,EAAQ,GAASwC,EAAExC,EAAQ,KAAiBoD,EAAEpD,EAAQ,KAAa,SAASqqK,EAAErjK,GAAG,IAAI,IAAIzF,EAAE,yDAAyDyF,EAAE7D,EAAE,EAAEA,EAAEV,UAAUhC,OAAO0C,IAAI5B,GAAG,WAAWw8I,mBAAmBt7I,UAAUU,IAAI,MAAM,yBAAyB6D,EAAE,WAAWzF,EAAE,iHAAiH,IAAI0pK,EAAG,MAAM/9J,MAAMm9J,EAAE,MACxa,SAASa,EAAGlkK,EAAEzF,EAAE4B,EAAE7B,EAAEsB,EAAEqC,EAAEE,EAAEwuB,EAAExtB,GAAG,IAAIoB,EAAE7F,MAAMN,UAAUoG,MAAM3F,KAAKY,UAAU,GAAG,IAAIlB,EAAEmB,MAAMS,EAAEoE,GAAG,MAAMrB,GAAGjE,KAAKi+F,QAAQh6F,IAAI,IAAIymK,GAAG,EAAGC,EAAG,KAAKr7H,GAAG,EAAGs7H,EAAG,KAAKC,EAAG,CAAC5sE,QAAQ,SAASl5F,GAAG2lK,GAAG,EAAGC,EAAG5lK,IAAI,SAAS+lK,EAAG/lK,EAAEzF,EAAE4B,EAAE7B,EAAEsB,EAAEqC,EAAEE,EAAEwuB,EAAExtB,GAAGwmK,GAAG,EAAGC,EAAG,KAAK1B,EAAGxoK,MAAMoqK,EAAGrqK,WAAmJ,IAAIuqK,EAAG,KAAKC,EAAG,KAAKC,EAAG,KACha,SAASC,EAAGnmK,EAAEzF,EAAE4B,GAAG,IAAI7B,EAAE0F,EAAE2F,MAAM,gBAAgB3F,EAAEuoI,cAAc29B,EAAG/pK,GAD6L,SAAY6D,EAAEzF,EAAE4B,EAAE7B,EAAEsB,EAAEqC,EAAEE,EAAEwuB,EAAExtB,GAA4B,GAAzB4mK,EAAGrqK,MAAMT,KAAKQ,WAAckqK,EAAG,CAAC,IAAGA,EAAgC,MAAMz/J,MAAMm9J,EAAE,MAA1C,IAAI9iK,EAAEqlK,EAAGD,GAAG,EAAGC,EAAG,KAA8Br7H,IAAKA,GAAG,EAAGs7H,EAAGtlK,IAC9T6lK,CAAG9rK,EAAEC,OAAE,EAAOyF,GAAGA,EAAEuoI,cAAc,KAAK,IAAI89B,EAAG,KAAKC,EAAG,GAC5H,SAASC,IAAK,GAAGF,EAAG,IAAI,IAAIrmK,KAAKsmK,EAAG,CAAC,IAAI/rK,EAAE+rK,EAAGtmK,GAAG7D,EAAEkqK,EAAGxqK,QAAQmE,GAAG,MAAM,EAAE7D,GAAG,MAAM+J,MAAMm9J,EAAE,GAAGrjK,IAAI,IAAIwmK,EAAGrqK,GAAG,CAAC,IAAI5B,EAAEksK,cAAc,MAAMvgK,MAAMm9J,EAAE,GAAGrjK,IAA2B,IAAI,IAAI1F,KAA/BksK,EAAGrqK,GAAG5B,EAAE4B,EAAE5B,EAAEmsK,WAA0B,CAAC,IAAI9qK,OAAE,EAAWqC,EAAE9B,EAAE7B,GAAG6D,EAAE5D,EAAEoyB,EAAEryB,EAAE,GAAGqsK,EAAG/rK,eAAe+xB,GAAG,MAAMzmB,MAAMm9J,EAAE,GAAG12I,IAAIg6I,EAAGh6I,GAAG1uB,EAAE,IAAIkB,EAAElB,EAAE2oK,wBAAwB,GAAGznK,EAAE,CAAC,IAAIvD,KAAKuD,EAAEA,EAAEvE,eAAegB,IAAI+9G,EAAGx6G,EAAEvD,GAAGuC,EAAEwuB,GAAG/wB,GAAE,OAAQqC,EAAE4oK,kBAAkBltD,EAAG17G,EAAE4oK,iBAAiB1oK,EAAEwuB,GAAG/wB,GAAE,GAAIA,GAAE,EAAG,IAAIA,EAAE,MAAMsK,MAAMm9J,EAAE,GAAG/oK,EAAE0F,OACjc,SAAS25G,EAAG35G,EAAEzF,EAAE4B,GAAG,GAAG2qK,EAAG9mK,GAAG,MAAMkG,MAAMm9J,EAAE,IAAIrjK,IAAI8mK,EAAG9mK,GAAGzF,EAAEwsK,EAAG/mK,GAAGzF,EAAEmsK,WAAWvqK,GAAG6qK,aAAa,IAAIR,EAAG,GAAGG,EAAG,GAAGG,EAAG,GAAGC,EAAG,GAAG,SAASE,EAAGjnK,GAAG,IAAS7D,EAAL5B,GAAE,EAAK,IAAI4B,KAAK6D,EAAE,GAAGA,EAAEpF,eAAeuB,GAAG,CAAC,IAAI7B,EAAE0F,EAAE7D,GAAG,IAAImqK,EAAG1rK,eAAeuB,IAAImqK,EAAGnqK,KAAK7B,EAAE,CAAC,GAAGgsK,EAAGnqK,GAAG,MAAM+J,MAAMm9J,EAAE,IAAIlnK,IAAImqK,EAAGnqK,GAAG7B,EAAEC,GAAE,GAAIA,GAAGgsK,IAAK,IAAIW,IAAK,qBAAqB3zJ,QAAQ,qBAAqBA,OAAOC,UAAU,qBAAqBD,OAAOC,SAAS/E,eAAe04J,EAAG,KAAKC,EAAG,KAAKC,EAAG,KAC9a,SAASC,EAAGtnK,GAAG,GAAGA,EAAEimK,EAAGjmK,GAAG,CAAC,GAAG,oBAAoBmnK,EAAG,MAAMjhK,MAAMm9J,EAAE,MAAM,IAAI9oK,EAAEyF,EAAEunK,UAAUhtK,IAAIA,EAAEyrK,EAAGzrK,GAAG4sK,EAAGnnK,EAAEunK,UAAUvnK,EAAE2F,KAAKpL,KAAK,SAASitK,EAAGxnK,GAAGonK,EAAGC,EAAGA,EAAGtoK,KAAKiB,GAAGqnK,EAAG,CAACrnK,GAAGonK,EAAGpnK,EAAE,SAASynK,IAAK,GAAGL,EAAG,CAAC,IAAIpnK,EAAEonK,EAAG7sK,EAAE8sK,EAAoB,GAAjBA,EAAGD,EAAG,KAAKE,EAAGtnK,GAAMzF,EAAE,IAAIyF,EAAE,EAAEA,EAAEzF,EAAEd,OAAOuG,IAAIsnK,EAAG/sK,EAAEyF,KAAK,SAAS0nK,EAAG1nK,EAAEzF,GAAG,OAAOyF,EAAEzF,GAAG,SAASotK,EAAG3nK,EAAEzF,EAAE4B,EAAE7B,EAAEsB,GAAG,OAAOoE,EAAEzF,EAAE4B,EAAE7B,EAAEsB,GAAG,SAASgsK,KAAM,IAAIC,EAAGH,EAAGI,GAAG,EAAGC,GAAG,EAAG,SAASC,IAAQ,OAAOZ,GAAI,OAAOC,IAAGO,IAAKH,KAC9Z,SAASQ,EAAGjoK,EAAEzF,EAAE4B,GAAG,GAAG4rK,EAAG,OAAO/nK,EAAEzF,EAAE4B,GAAG4rK,GAAG,EAAG,IAAI,OAAOF,EAAG7nK,EAAEzF,EAAE4B,GAAG,QAAQ4rK,GAAG,EAAGC,KAAM,IAAIE,EAAG,8VAA8VC,EAAGruK,OAAOM,UAAUQ,eAAewtK,EAAG,GAAGC,EAAG,GAE/Q,SAASzpK,EAAEoB,EAAEzF,EAAE4B,EAAE7B,EAAEsB,EAAEqC,GAAGhD,KAAKqtK,gBAAgB,IAAI/tK,GAAG,IAAIA,GAAG,IAAIA,EAAEU,KAAKstK,cAAcjuK,EAAEW,KAAKutK,mBAAmB5sK,EAAEX,KAAKwtK,gBAAgBtsK,EAAElB,KAAKytK,aAAa1oK,EAAE/E,KAAK0K,KAAKpL,EAAEU,KAAK0tK,YAAY1qK,EAAE,IAAI0R,EAAE,GACxZ,uIAAuIyrB,MAAM,KAAKjzB,SAAQ,SAASnI,GAAG2P,EAAE3P,GAAG,IAAIpB,EAAEoB,EAAE,GAAE,EAAGA,EAAE,MAAK,MAAM,CAAC,CAAC,gBAAgB,kBAAkB,CAAC,YAAY,SAAS,CAAC,UAAU,OAAO,CAAC,YAAY,eAAemI,SAAQ,SAASnI,GAAG,IAAIzF,EAAEyF,EAAE,GAAG2P,EAAEpV,GAAG,IAAIqE,EAAErE,EAAE,GAAE,EAAGyF,EAAE,GAAG,MAAK,MAAM,CAAC,kBAAkB,YAAY,aAAa,SAASmI,SAAQ,SAASnI,GAAG2P,EAAE3P,GAAG,IAAIpB,EAAEoB,EAAE,GAAE,EAAGA,EAAEk5B,cAAc,MAAK,MAC9d,CAAC,cAAc,4BAA4B,YAAY,iBAAiB/wB,SAAQ,SAASnI,GAAG2P,EAAE3P,GAAG,IAAIpB,EAAEoB,EAAE,GAAE,EAAGA,EAAE,MAAK,MAAM,wNAAwNo7B,MAAM,KAAKjzB,SAAQ,SAASnI,GAAG2P,EAAE3P,GAAG,IAAIpB,EAAEoB,EAAE,GAAE,EAAGA,EAAEk5B,cAAc,MAAK,MACzZ,CAAC,UAAU,WAAW,QAAQ,YAAY/wB,SAAQ,SAASnI,GAAG2P,EAAE3P,GAAG,IAAIpB,EAAEoB,EAAE,GAAE,EAAGA,EAAE,MAAK,MAAM,CAAC,UAAU,YAAYmI,SAAQ,SAASnI,GAAG2P,EAAE3P,GAAG,IAAIpB,EAAEoB,EAAE,GAAE,EAAGA,EAAE,MAAK,MAAM,CAAC,OAAO,OAAO,OAAO,QAAQmI,SAAQ,SAASnI,GAAG2P,EAAE3P,GAAG,IAAIpB,EAAEoB,EAAE,GAAE,EAAGA,EAAE,MAAK,MAAM,CAAC,UAAU,SAASmI,SAAQ,SAASnI,GAAG2P,EAAE3P,GAAG,IAAIpB,EAAEoB,EAAE,GAAE,EAAGA,EAAEk5B,cAAc,MAAK,MAAM,IAAI0vI,EAAG,gBAAgB,SAASC,EAAG7oK,GAAG,OAAOA,EAAE,GAAGkmB,cAC/X,0jCAA0jCkV,MAAM,KAAKjzB,SAAQ,SAASnI,GAAG,IAAIzF,EAAEyF,EAAEsN,QAAQs7J,EACzmCC,GAAIl5J,EAAEpV,GAAG,IAAIqE,EAAErE,EAAE,GAAE,EAAGyF,EAAE,MAAK,MAAM,2EAA2Eo7B,MAAM,KAAKjzB,SAAQ,SAASnI,GAAG,IAAIzF,EAAEyF,EAAEsN,QAAQs7J,EAAGC,GAAIl5J,EAAEpV,GAAG,IAAIqE,EAAErE,EAAE,GAAE,EAAGyF,EAAE,gCAA+B,MAAM,CAAC,WAAW,WAAW,aAAamI,SAAQ,SAASnI,GAAG,IAAIzF,EAAEyF,EAAEsN,QAAQs7J,EAAGC,GAAIl5J,EAAEpV,GAAG,IAAIqE,EAAErE,EAAE,GAAE,EAAGyF,EAAE,wCAAuC,MAAM,CAAC,WAAW,eAAemI,SAAQ,SAASnI,GAAG2P,EAAE3P,GAAG,IAAIpB,EAAEoB,EAAE,GAAE,EAAGA,EAAEk5B,cAAc,MAAK,MACncvpB,EAAEm5J,UAAU,IAAIlqK,EAAE,YAAY,GAAE,EAAG,aAAa,gCAA+B,GAAI,CAAC,MAAM,OAAO,SAAS,cAAcuJ,SAAQ,SAASnI,GAAG2P,EAAE3P,GAAG,IAAIpB,EAAEoB,EAAE,GAAE,EAAGA,EAAEk5B,cAAc,MAAK,MAAM,IAAI6vI,EAAG9E,EAAGY,mDACnM,SAASmE,EAAGhpK,EAAEzF,EAAE4B,EAAE7B,GAAG,IAAIsB,EAAE+T,EAAE/U,eAAeL,GAAGoV,EAAEpV,GAAG,MAAW,OAAOqB,EAAE,IAAIA,EAAE+J,MAAKrL,IAAO,EAAEC,EAAEd,SAAS,MAAMc,EAAE,IAAI,MAAMA,EAAE,MAAI,MAAMA,EAAE,IAAI,MAAMA,EAAE,QAPnJ,SAAYyF,EAAEzF,EAAE4B,EAAE7B,GAAG,GAAG,OAAOC,GAAG,qBAAqBA,GAD4D,SAAYyF,EAAEzF,EAAE4B,EAAE7B,GAAG,GAAG,OAAO6B,GAAG,IAAIA,EAAEwJ,KAAK,OAAM,EAAG,cAAcpL,GAAG,IAAK,WAAW,IAAK,SAAS,OAAM,EAAG,IAAK,UAAU,OAAGD,IAAc,OAAO6B,GAASA,EAAEmsK,gBAAmD,WAAnCtoK,EAAEA,EAAEk5B,cAAc14B,MAAM,EAAE,KAAsB,UAAUR,GAAE,QAAQ,OAAM,GACnTipK,CAAGjpK,EAAEzF,EAAE4B,EAAE7B,GAAG,OAAM,EAAG,GAAGA,EAAE,OAAM,EAAG,GAAG,OAAO6B,EAAE,OAAOA,EAAEwJ,MAAM,KAAK,EAAE,OAAOpL,EAAE,KAAK,EAAE,OAAM,IAAKA,EAAE,KAAK,EAAE,OAAOwY,MAAMxY,GAAG,KAAK,EAAE,OAAOwY,MAAMxY,IAAI,EAAEA,EAAE,OAAM,EAOrD2uK,CAAG3uK,EAAE4B,EAAEP,EAAEtB,KAAK6B,EAAE,MAAM7B,GAAG,OAAOsB,EARhM,SAAYoE,GAAG,QAAGmoK,EAAGttK,KAAKwtK,EAAGroK,KAAemoK,EAAGttK,KAAKutK,EAAGpoK,KAAekoK,EAAG1qE,KAAKx9F,GAAUqoK,EAAGroK,IAAG,GAAGooK,EAAGpoK,IAAG,GAAS,IAQkFmpK,CAAG5uK,KAAK,OAAO4B,EAAE6D,EAAEw4D,gBAAgBj+D,GAAGyF,EAAEy4D,aAAal+D,EAAE,GAAG4B,IAAIP,EAAE6sK,gBAAgBzoK,EAAEpE,EAAE8sK,cAAc,OAAOvsK,EAAE,IAAIP,EAAE+J,MAAQ,GAAGxJ,GAAG5B,EAAEqB,EAAE2sK,cAAcjuK,EAAEsB,EAAE4sK,mBAAmB,OAAOrsK,EAAE6D,EAAEw4D,gBAAgBj+D,IAAa4B,EAAE,KAAXP,EAAEA,EAAE+J,OAAc,IAAI/J,IAAG,IAAKO,EAAE,GAAG,GAAGA,EAAE7B,EAAE0F,EAAEopK,eAAe9uK,EAAEC,EAAE4B,GAAG6D,EAAEy4D,aAAal+D,EAAE4B,MADtO4sK,EAAGnuK,eAAe,4BAA4BmuK,EAAG5E,uBAAuB,CAAC3uJ,QAAQ,OAAOuzJ,EAAGnuK,eAAe,6BAA6BmuK,EAAG3E,wBAAwB,CAACC,SAAS,OAEla,IAAIgF,EAAG,cAAcl9I,EAAE,oBAAoBztB,QAAQA,OAAOw5H,IAAIoxC,GAAGn9I,EAAEztB,OAAOw5H,IAAI,iBAAiB,MAAMqxC,GAAGp9I,EAAEztB,OAAOw5H,IAAI,gBAAgB,MAAMsxC,GAAGr9I,EAAEztB,OAAOw5H,IAAI,kBAAkB,MAAMuxC,GAAGt9I,EAAEztB,OAAOw5H,IAAI,qBAAqB,MAAM/gH,GAAGgV,EAAEztB,OAAOw5H,IAAI,kBAAkB,MAAMwxC,GAAGv9I,EAAEztB,OAAOw5H,IAAI,kBAAkB,MAAMyxC,GAAGx9I,EAAEztB,OAAOw5H,IAAI,iBAAiB,MAAM1tF,GAAGre,EAAEztB,OAAOw5H,IAAI,yBAAyB,MAAM0xC,GAAGz9I,EAAEztB,OAAOw5H,IAAI,qBAAqB,MAAM2xC,GAAG19I,EAAEztB,OAAOw5H,IAAI,kBAAkB,MAAM4xC,GAAG39I,EAAEztB,OAAOw5H,IAAI,uBACve,MAAM6xC,GAAG59I,EAAEztB,OAAOw5H,IAAI,cAAc,MAAM8xC,GAAG79I,EAAEztB,OAAOw5H,IAAI,cAAc,MAAM+xC,GAAG99I,EAAEztB,OAAOw5H,IAAI,eAAe,MAAMgyC,GAAG,oBAAoBxrK,QAAQA,OAAOC,SAAS,SAASwrK,GAAGnqK,GAAG,OAAG,OAAOA,GAAG,kBAAkBA,EAAS,KAAwC,oBAAnCA,EAAEkqK,IAAIlqK,EAAEkqK,KAAKlqK,EAAE,eAA0CA,EAAE,KACzR,SAASoqK,GAAGpqK,GAAG,GAAG,MAAMA,EAAE,OAAO,KAAK,GAAG,oBAAoBA,EAAE,OAAOA,EAAE0K,aAAa1K,EAAE4F,MAAM,KAAK,GAAG,kBAAkB5F,EAAE,OAAOA,EAAE,OAAOA,GAAG,KAAKwpK,GAAG,MAAM,WAAW,KAAKD,GAAG,MAAM,SAAS,KAAKpyJ,GAAG,MAAM,WAAW,KAAKsyJ,GAAG,MAAM,aAAa,KAAKI,GAAG,MAAM,WAAW,KAAKC,GAAG,MAAM,eAAe,GAAG,kBAAkB9pK,EAAE,OAAOA,EAAEilH,UAAU,KAAK0kD,GAAG,MAAM,mBAAmB,KAAKD,GAAG,MAAM,mBAAmB,KAAKE,GAAG,IAAIrvK,EAAEyF,EAAE6L,OAAmC,OAA5BtR,EAAEA,EAAEmQ,aAAanQ,EAAEqL,MAAM,GAAU5F,EAAE0K,cAAc,KAAKnQ,EAAE,cAAcA,EAAE,IACnf,cAAc,KAAKwvK,GAAG,OAAOK,GAAGpqK,EAAE2F,MAAM,KAAKskK,GAAG,OAAOG,GAAGpqK,EAAE6L,QAAQ,KAAKm+J,GAAG,GAAGhqK,EAAE,IAAIA,EAAEqlK,QAAQrlK,EAAEslK,QAAQ,KAAK,OAAO8E,GAAGpqK,GAAG,OAAO,KAAK,SAASqqK,GAAGrqK,GAAG,IAAIzF,EAAE,GAAG,EAAE,CAACyF,EAAE,OAAOA,EAAE67F,KAAK,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK,EAAE,IAAI1/F,EAAE,GAAG,MAAM6D,EAAE,QAAQ,IAAI1F,EAAE0F,EAAEsqK,YAAY1uK,EAAEoE,EAAEuqK,aAAatsK,EAAEmsK,GAAGpqK,EAAE2F,MAAMxJ,EAAE,KAAK7B,IAAI6B,EAAEiuK,GAAG9vK,EAAEqL,OAAOrL,EAAE2D,EAAEA,EAAE,GAAGrC,EAAEqC,EAAE,QAAQrC,EAAE4uK,SAASl9J,QAAQ+7J,EAAG,IAAI,IAAIztK,EAAE6uK,WAAW,IAAItuK,IAAI8B,EAAE,gBAAgB9B,EAAE,KAAKA,EAAE,aAAa7B,GAAG,WAAW2D,EAAE1D,GAAG4B,EAAE6D,EAAEA,EAAE0qK,aAAa1qK,GAAG,OAAOzF,EACje,SAASowK,GAAG3qK,GAAG,cAAcA,GAAG,IAAK,UAAU,IAAK,SAAS,IAAK,SAAS,IAAK,SAAS,IAAK,YAAY,OAAOA,EAAE,QAAQ,MAAM,IAAI,SAAS4qK,GAAG5qK,GAAG,IAAIzF,EAAEyF,EAAE2F,KAAK,OAAO3F,EAAEA,EAAEqnG,WAAW,UAAUrnG,EAAEk5B,gBAAgB,aAAa3+B,GAAG,UAAUA,GAEzN,SAASswK,GAAG7qK,GAAGA,EAAE8qK,gBAAgB9qK,EAAE8qK,cADvD,SAAY9qK,GAAG,IAAIzF,EAAEqwK,GAAG5qK,GAAG,UAAU,QAAQ7D,EAAErC,OAAOuC,yBAAyB2D,EAAE9E,YAAYd,UAAUG,GAAGD,EAAE,GAAG0F,EAAEzF,GAAG,IAAIyF,EAAEpF,eAAeL,IAAI,qBAAqB4B,GAAG,oBAAoBA,EAAEmD,KAAK,oBAAoBnD,EAAE+F,IAAI,CAAC,IAAItG,EAAEO,EAAEmD,IAAIrB,EAAE9B,EAAE+F,IAAiL,OAA7KpI,OAAOC,eAAeiG,EAAEzF,EAAE,CAACX,cAAa,EAAG0F,IAAI,WAAW,OAAO1D,EAAEf,KAAKI,OAAOiH,IAAI,SAASlC,GAAG1F,EAAE,GAAG0F,EAAE/B,EAAEpD,KAAKI,KAAK+E,MAAMlG,OAAOC,eAAeiG,EAAEzF,EAAE,CAACZ,WAAWwC,EAAExC,aAAmB,CAAC0wG,SAAS,WAAW,OAAO/vG,GAAGkwI,SAAS,SAASxqI,GAAG1F,EAAE,GAAG0F,GAAG+qK,aAAa,WAAW/qK,EAAE8qK,cACxf,YAAY9qK,EAAEzF,MAAuDywK,CAAGhrK,IAAI,SAASirK,GAAGjrK,GAAG,IAAIA,EAAE,OAAM,EAAG,IAAIzF,EAAEyF,EAAE8qK,cAAc,IAAIvwK,EAAE,OAAM,EAAG,IAAI4B,EAAE5B,EAAE8vG,WAAe/vG,EAAE,GAAqD,OAAlD0F,IAAI1F,EAAEswK,GAAG5qK,GAAGA,EAAEwoI,QAAQ,OAAO,QAAQxoI,EAAExC,QAAOwC,EAAE1F,KAAa6B,IAAG5B,EAAEiwI,SAASxqI,IAAG,GAAO,SAASkrK,GAAGlrK,EAAEzF,GAAG,IAAI4B,EAAE5B,EAAEiuI,QAAQ,OAAOhtI,EAAE,GAAGjB,EAAE,CAAC4wK,oBAAe,EAAOjnJ,kBAAa,EAAO1mB,WAAM,EAAOgrI,QAAQ,MAAMrsI,EAAEA,EAAE6D,EAAEorK,cAAcC,iBACzY,SAASC,GAAGtrK,EAAEzF,GAAG,IAAI4B,EAAE,MAAM5B,EAAE2pB,aAAa,GAAG3pB,EAAE2pB,aAAa5pB,EAAE,MAAMC,EAAEiuI,QAAQjuI,EAAEiuI,QAAQjuI,EAAE4wK,eAAehvK,EAAEwuK,GAAG,MAAMpwK,EAAEiD,MAAMjD,EAAEiD,MAAMrB,GAAG6D,EAAEorK,cAAc,CAACC,eAAe/wK,EAAE+vI,aAAaluI,EAAEovK,WAAW,aAAahxK,EAAEoL,MAAM,UAAUpL,EAAEoL,KAAK,MAAMpL,EAAEiuI,QAAQ,MAAMjuI,EAAEiD,OAAO,SAASguK,GAAGxrK,EAAEzF,GAAe,OAAZA,EAAEA,EAAEiuI,UAAiBwgC,EAAGhpK,EAAE,UAAUzF,GAAE,GACjU,SAASkxK,GAAGzrK,EAAEzF,GAAGixK,GAAGxrK,EAAEzF,GAAG,IAAI4B,EAAEwuK,GAAGpwK,EAAEiD,OAAOlD,EAAEC,EAAEoL,KAAK,GAAG,MAAMxJ,EAAK,WAAW7B,GAAM,IAAI6B,GAAG,KAAK6D,EAAExC,OAAOwC,EAAExC,OAAOrB,KAAE6D,EAAExC,MAAM,GAAGrB,GAAO6D,EAAExC,QAAQ,GAAGrB,IAAI6D,EAAExC,MAAM,GAAGrB,QAAQ,GAAG,WAAW7B,GAAG,UAAUA,EAA8B,YAA3B0F,EAAEw4D,gBAAgB,SAAgBj+D,EAAEK,eAAe,SAAS8wK,GAAG1rK,EAAEzF,EAAEoL,KAAKxJ,GAAG5B,EAAEK,eAAe,iBAAiB8wK,GAAG1rK,EAAEzF,EAAEoL,KAAKglK,GAAGpwK,EAAE2pB,eAAe,MAAM3pB,EAAEiuI,SAAS,MAAMjuI,EAAE4wK,iBAAiBnrK,EAAEmrK,iBAAiB5wK,EAAE4wK,gBACnZ,SAASQ,GAAG3rK,EAAEzF,EAAE4B,GAAG,GAAG5B,EAAEK,eAAe,UAAUL,EAAEK,eAAe,gBAAgB,CAAC,IAAIN,EAAEC,EAAEoL,KAAK,KAAK,WAAWrL,GAAG,UAAUA,QAAG,IAASC,EAAEiD,OAAO,OAAOjD,EAAEiD,OAAO,OAAOjD,EAAE,GAAGyF,EAAEorK,cAAc/gC,aAAaluI,GAAG5B,IAAIyF,EAAExC,QAAQwC,EAAExC,MAAMjD,GAAGyF,EAAEkkB,aAAa3pB,EAAW,MAAT4B,EAAE6D,EAAE4F,QAAc5F,EAAE4F,KAAK,IAAI5F,EAAEmrK,iBAAiBnrK,EAAEorK,cAAcC,eAAe,KAAKlvK,IAAI6D,EAAE4F,KAAKzJ,GACvV,SAASuvK,GAAG1rK,EAAEzF,EAAE4B,GAAM,WAAW5B,GAAGyF,EAAEw4F,cAAcozE,gBAAgB5rK,IAAE,MAAM7D,EAAE6D,EAAEkkB,aAAa,GAAGlkB,EAAEorK,cAAc/gC,aAAarqI,EAAEkkB,eAAe,GAAG/nB,IAAI6D,EAAEkkB,aAAa,GAAG/nB,IAAwF,SAAS0vK,GAAG7rK,EAAEzF,GAA6D,OAA1DyF,EAAExE,EAAE,CAAC2Q,cAAS,GAAQ5R,IAAMA,EAAlI,SAAYyF,GAAG,IAAIzF,EAAE,GAAuD,OAApD0pK,EAAG30J,SAASnH,QAAQnI,GAAE,SAASA,GAAG,MAAMA,IAAIzF,GAAGyF,MAAYzF,EAAiDuxK,CAAGvxK,EAAE4R,aAAUnM,EAAEmM,SAAS5R,GAASyF,EACjV,SAAS+rK,GAAG/rK,EAAEzF,EAAE4B,EAAE7B,GAAe,GAAZ0F,EAAEA,EAAE2N,QAAWpT,EAAE,CAACA,EAAE,GAAG,IAAI,IAAIqB,EAAE,EAAEA,EAAEO,EAAE1C,OAAOmC,IAAIrB,EAAE,IAAI4B,EAAEP,KAAI,EAAG,IAAIO,EAAE,EAAEA,EAAE6D,EAAEvG,OAAO0C,IAAIP,EAAErB,EAAEK,eAAe,IAAIoF,EAAE7D,GAAGqB,OAAOwC,EAAE7D,GAAG4sI,WAAWntI,IAAIoE,EAAE7D,GAAG4sI,SAASntI,GAAGA,GAAGtB,IAAI0F,EAAE7D,GAAG6vK,iBAAgB,OAAQ,CAAmB,IAAlB7vK,EAAE,GAAGwuK,GAAGxuK,GAAG5B,EAAE,KAASqB,EAAE,EAAEA,EAAEoE,EAAEvG,OAAOmC,IAAI,CAAC,GAAGoE,EAAEpE,GAAG4B,QAAQrB,EAAiD,OAA9C6D,EAAEpE,GAAGmtI,UAAS,OAAGzuI,IAAI0F,EAAEpE,GAAGowK,iBAAgB,IAAW,OAAOzxK,GAAGyF,EAAEpE,GAAG4kD,WAAWjmD,EAAEyF,EAAEpE,IAAI,OAAOrB,IAAIA,EAAEwuI,UAAS,IACpY,SAASkjC,GAAGjsK,EAAEzF,GAAG,GAAG,MAAMA,EAAE2xK,wBAAwB,MAAMhmK,MAAMm9J,EAAE,KAAK,OAAO7nK,EAAE,GAAGjB,EAAE,CAACiD,WAAM,EAAO0mB,kBAAa,EAAO/X,SAAS,GAAGnM,EAAEorK,cAAc/gC,eAAe,SAAS8hC,GAAGnsK,EAAEzF,GAAG,IAAI4B,EAAE5B,EAAEiD,MAAM,GAAG,MAAMrB,EAAE,CAA+B,GAA9BA,EAAE5B,EAAE4R,SAAS5R,EAAEA,EAAE2pB,aAAgB,MAAM/nB,EAAE,CAAC,GAAG,MAAM5B,EAAE,MAAM2L,MAAMm9J,EAAE,KAAK,GAAG3oK,MAAM8I,QAAQrH,GAAG,CAAC,KAAK,GAAGA,EAAE1C,QAAQ,MAAMyM,MAAMm9J,EAAE,KAAKlnK,EAAEA,EAAE,GAAG5B,EAAE4B,EAAE,MAAM5B,IAAIA,EAAE,IAAI4B,EAAE5B,EAAEyF,EAAEorK,cAAc,CAAC/gC,aAAasgC,GAAGxuK,IAC/Y,SAASiwK,GAAGpsK,EAAEzF,GAAG,IAAI4B,EAAEwuK,GAAGpwK,EAAEiD,OAAOlD,EAAEqwK,GAAGpwK,EAAE2pB,cAAc,MAAM/nB,KAAIA,EAAE,GAAGA,KAAM6D,EAAExC,QAAQwC,EAAExC,MAAMrB,GAAG,MAAM5B,EAAE2pB,cAAclkB,EAAEkkB,eAAe/nB,IAAI6D,EAAEkkB,aAAa/nB,IAAI,MAAM7B,IAAI0F,EAAEkkB,aAAa,GAAG5pB,GAAG,SAAS+xK,GAAGrsK,GAAG,IAAIzF,EAAEyF,EAAEssK,YAAY/xK,IAAIyF,EAAEorK,cAAc/gC,cAAc,KAAK9vI,GAAG,OAAOA,IAAIyF,EAAExC,MAAMjD,GAAG,IAAIgyK,GAAS,+BAATA,GAAwF,6BAC9X,SAASC,GAAGxsK,GAAG,OAAOA,GAAG,IAAK,MAAM,MAAM,6BAA6B,IAAK,OAAO,MAAM,qCAAqC,QAAQ,MAAM,gCAAgC,SAASysK,GAAGzsK,EAAEzF,GAAG,OAAO,MAAMyF,GAAG,iCAAiCA,EAAEwsK,GAAGjyK,GAAG,+BAA+ByF,GAAG,kBAAkBzF,EAAE,+BAA+ByF,EAC3U,IAAI0sK,GAAe1sK,GAAZ2sK,IAAY3sK,GAAsJ,SAASA,EAAEzF,GAAG,GAAGyF,EAAEwgK,eAAe+L,IAAQ,cAAcvsK,EAAEA,EAAEsgK,UAAU/lK,MAAM,CAA2F,KAA1FmyK,GAAGA,IAAIl5J,SAAS/E,cAAc,QAAU6xJ,UAAU,QAAQ/lK,EAAE81G,UAAUnvF,WAAW,SAAa3mB,EAAEmyK,GAAGnM,WAAWvgK,EAAEugK,YAAYvgK,EAAE8iB,YAAY9iB,EAAEugK,YAAY,KAAKhmK,EAAEgmK,YAAYvgK,EAAEuhB,YAAYhnB,EAAEgmK,cAArZ,qBAAqBqM,OAAOA,MAAMC,wBAAwB,SAAStyK,EAAE4B,EAAE7B,EAAEsB,GAAGgxK,MAAMC,yBAAwB,WAAW,OAAO7sK,GAAEzF,EAAE4B,OAAU6D,IACtK,SAAS8sK,GAAG9sK,EAAEzF,GAAG,GAAGA,EAAE,CAAC,IAAI4B,EAAE6D,EAAEugK,WAAW,GAAGpkK,GAAGA,IAAI6D,EAAE+sK,WAAW,IAAI5wK,EAAEyrG,SAAwB,YAAdzrG,EAAEkjK,UAAU9kK,GAAUyF,EAAEssK,YAAY/xK,EAAE,SAASyyK,GAAGhtK,EAAEzF,GAAG,IAAI4B,EAAE,GAAkF,OAA/EA,EAAE6D,EAAEk5B,eAAe3+B,EAAE2+B,cAAc/8B,EAAE,SAAS6D,GAAG,SAASzF,EAAE4B,EAAE,MAAM6D,GAAG,MAAMzF,EAAS4B,EAAE,IAAI8wK,GAAG,CAACC,aAAaF,GAAG,YAAY,gBAAgBG,mBAAmBH,GAAG,YAAY,sBAAsBI,eAAeJ,GAAG,YAAY,kBAAkBK,cAAcL,GAAG,aAAa,kBAAkBM,GAAG,GAAGC,GAAG,GAC1M,SAASC,GAAGxtK,GAAG,GAAGstK,GAAGttK,GAAG,OAAOstK,GAAGttK,GAAG,IAAIitK,GAAGjtK,GAAG,OAAOA,EAAE,IAAY7D,EAAR5B,EAAE0yK,GAAGjtK,GAAK,IAAI7D,KAAK5B,EAAE,GAAGA,EAAEK,eAAeuB,IAAIA,KAAKoxK,GAAG,OAAOD,GAAGttK,GAAGzF,EAAE4B,GAAG,OAAO6D,EAA9XknK,IAAKqG,GAAG/5J,SAAS/E,cAAc,OAAOgE,MAAM,mBAAmBc,gBAAgB05J,GAAGC,aAAazxI,iBAAiBwxI,GAAGE,mBAAmB1xI,iBAAiBwxI,GAAGG,eAAe3xI,WAAW,oBAAoBloB,eAAe05J,GAAGI,cAAcn3J,YACxO,IAAIu3J,GAAGD,GAAG,gBAAgBE,GAAGF,GAAG,sBAAsBG,GAAGH,GAAG,kBAAkBI,GAAGJ,GAAG,iBAAiBK,GAAG,sNAAsNzyI,MAAM,KAAK0yI,GAAG,IAAK,oBAAoBtpF,QAAQA,QAAQ1tE,KAAK,SAASi3J,GAAG/tK,GAAG,IAAIzF,EAAEuzK,GAAGxuK,IAAIU,GAAuC,YAApC,IAASzF,IAAIA,EAAE,IAAIuc,IAAIg3J,GAAG5rK,IAAIlC,EAAEzF,IAAWA,EACpc,SAASyzK,GAAGhuK,GAAG,IAAIzF,EAAEyF,EAAE7D,EAAE6D,EAAE,GAAGA,EAAEiuK,UAAU,KAAK1zK,EAAEmwK,QAAQnwK,EAAEA,EAAEmwK,WAAW,CAAC1qK,EAAEzF,EAAE,GAAO,KAAiB,MAArBA,EAAEyF,GAASkuK,aAAkB/xK,EAAE5B,EAAEmwK,QAAQ1qK,EAAEzF,EAAEmwK,aAAa1qK,GAAG,OAAO,IAAIzF,EAAEshG,IAAI1/F,EAAE,KAAK,SAASgyK,GAAGnuK,GAAG,GAAG,KAAKA,EAAE67F,IAAI,CAAC,IAAIthG,EAAEyF,EAAEouK,cAAsE,GAAxD,OAAO7zK,IAAkB,QAAdyF,EAAEA,EAAEiuK,aAAqB1zK,EAAEyF,EAAEouK,gBAAmB,OAAO7zK,EAAE,OAAOA,EAAE8zK,WAAW,OAAO,KAAK,SAASC,GAAGtuK,GAAG,GAAGguK,GAAGhuK,KAAKA,EAAE,MAAMkG,MAAMm9J,EAAE,MAEhK,SAASkL,GAAGvuK,GAAW,KAARA,EADtN,SAAYA,GAAG,IAAIzF,EAAEyF,EAAEiuK,UAAU,IAAI1zK,EAAE,CAAS,GAAG,QAAXA,EAAEyzK,GAAGhuK,IAAe,MAAMkG,MAAMm9J,EAAE,MAAM,OAAO9oK,IAAIyF,EAAE,KAAKA,EAAE,IAAI,IAAI7D,EAAE6D,EAAE1F,EAAEC,IAAI,CAAC,IAAIqB,EAAEO,EAAEuuK,OAAO,GAAG,OAAO9uK,EAAE,MAAM,IAAIqC,EAAErC,EAAEqyK,UAAU,GAAG,OAAOhwK,EAAE,CAAY,GAAG,QAAd3D,EAAEsB,EAAE8uK,QAAmB,CAACvuK,EAAE7B,EAAE,SAAS,MAAM,GAAGsB,EAAE2T,QAAQtR,EAAEsR,MAAM,CAAC,IAAItR,EAAErC,EAAE2T,MAAMtR,GAAG,CAAC,GAAGA,IAAI9B,EAAE,OAAOmyK,GAAG1yK,GAAGoE,EAAE,GAAG/B,IAAI3D,EAAE,OAAOg0K,GAAG1yK,GAAGrB,EAAE0D,EAAEA,EAAEuwK,QAAQ,MAAMtoK,MAAMm9J,EAAE,MAAO,GAAGlnK,EAAEuuK,SAASpwK,EAAEowK,OAAOvuK,EAAEP,EAAEtB,EAAE2D,MAAM,CAAC,IAAI,IAAIE,GAAE,EAAGwuB,EAAE/wB,EAAE2T,MAAMod,GAAG,CAAC,GAAGA,IAAIxwB,EAAE,CAACgC,GAAE,EAAGhC,EAAEP,EAAEtB,EAAE2D,EAAE,MAAM,GAAG0uB,IAAIryB,EAAE,CAAC6D,GAAE,EAAG7D,EAAEsB,EAAEO,EAAE8B,EAAE,MAAM0uB,EAAEA,EAAE6hJ,QAAQ,IAAIrwK,EAAE,CAAC,IAAIwuB,EAAE1uB,EAAEsR,MAAMod,GAAG,CAAC,GAAGA,IAC5fxwB,EAAE,CAACgC,GAAE,EAAGhC,EAAE8B,EAAE3D,EAAEsB,EAAE,MAAM,GAAG+wB,IAAIryB,EAAE,CAAC6D,GAAE,EAAG7D,EAAE2D,EAAE9B,EAAEP,EAAE,MAAM+wB,EAAEA,EAAE6hJ,QAAQ,IAAIrwK,EAAE,MAAM+H,MAAMm9J,EAAE,OAAQ,GAAGlnK,EAAE8xK,YAAY3zK,EAAE,MAAM4L,MAAMm9J,EAAE,MAAO,GAAG,IAAIlnK,EAAE0/F,IAAI,MAAM31F,MAAMm9J,EAAE,MAAM,OAAOlnK,EAAEorK,UAAU/xJ,UAAUrZ,EAAE6D,EAAEzF,EAAmB6jC,CAAGp+B,IAAS,OAAO,KAAK,IAAI,IAAIzF,EAAEyF,IAAI,CAAC,GAAG,IAAIzF,EAAEshG,KAAK,IAAIthG,EAAEshG,IAAI,OAAOthG,EAAE,GAAGA,EAAEgV,MAAMhV,EAAEgV,MAAMm7J,OAAOnwK,EAAEA,EAAEA,EAAEgV,UAAU,CAAC,GAAGhV,IAAIyF,EAAE,MAAM,MAAMzF,EAAEi0K,SAAS,CAAC,IAAIj0K,EAAEmwK,QAAQnwK,EAAEmwK,SAAS1qK,EAAE,OAAO,KAAKzF,EAAEA,EAAEmwK,OAAOnwK,EAAEi0K,QAAQ9D,OAAOnwK,EAAEmwK,OAAOnwK,EAAEA,EAAEi0K,SAAS,OAAO,KAC5c,SAASC,GAAGzuK,EAAEzF,GAAG,GAAG,MAAMA,EAAE,MAAM2L,MAAMm9J,EAAE,KAAK,OAAG,MAAMrjK,EAASzF,EAAKG,MAAM8I,QAAQxD,GAAOtF,MAAM8I,QAAQjJ,IAAUyF,EAAEjB,KAAKrD,MAAMsE,EAAEzF,GAAGyF,IAAEA,EAAEjB,KAAKxE,GAAUyF,GAAStF,MAAM8I,QAAQjJ,GAAG,CAACyF,GAAGH,OAAOtF,GAAG,CAACyF,EAAEzF,GAAG,SAASm0K,GAAG1uK,EAAEzF,EAAE4B,GAAGzB,MAAM8I,QAAQxD,GAAGA,EAAEmI,QAAQ5N,EAAE4B,GAAG6D,GAAGzF,EAAEM,KAAKsB,EAAE6D,GAAG,IAAI2uK,GAAG,KAC/Q,SAASC,GAAG5uK,GAAG,GAAGA,EAAE,CAAC,IAAIzF,EAAEyF,EAAE6uK,mBAAmB1yK,EAAE6D,EAAE8uK,mBAAmB,GAAGp0K,MAAM8I,QAAQjJ,GAAG,IAAI,IAAID,EAAE,EAAEA,EAAEC,EAAEd,SAASuG,EAAE+uK,uBAAuBz0K,IAAI6rK,EAAGnmK,EAAEzF,EAAED,GAAG6B,EAAE7B,SAASC,GAAG4rK,EAAGnmK,EAAEzF,EAAE4B,GAAG6D,EAAE6uK,mBAAmB,KAAK7uK,EAAE8uK,mBAAmB,KAAK9uK,EAAEgvK,gBAAgBhvK,EAAE9E,YAAY+zK,QAAQjvK,IAAI,SAASkvK,GAAGlvK,GAAwC,GAArC,OAAOA,IAAI2uK,GAAGF,GAAGE,GAAG3uK,IAAIA,EAAE2uK,GAAGA,GAAG,KAAQ3uK,EAAE,CAAU,GAAT0uK,GAAG1uK,EAAE4uK,IAAOD,GAAG,MAAMzoK,MAAMm9J,EAAE,KAAK,GAAG94H,EAAG,MAAMvqC,EAAE6lK,EAAGt7H,GAAG,EAAGs7H,EAAG,KAAK7lK,GAC9Y,SAASmvK,GAAGnvK,GAA6F,OAA1FA,EAAEA,EAAE1G,QAAQ0G,EAAEovK,YAAY77J,QAAS87J,0BAA0BrvK,EAAEA,EAAEqvK,yBAAgC,IAAIrvK,EAAE4nG,SAAS5nG,EAAE0sC,WAAW1sC,EAAE,SAASsvK,GAAGtvK,GAAG,IAAIknK,EAAG,OAAM,EAAY,IAAI3sK,GAAbyF,EAAE,KAAKA,KAAawT,SAAqG,OAA5FjZ,KAAIA,EAAEiZ,SAAS/E,cAAc,QAASgqD,aAAaz4D,EAAE,WAAWzF,EAAE,oBAAoBA,EAAEyF,IAAWzF,EAAE,IAAIg1K,GAAG,GAAG,SAASC,GAAGxvK,GAAGA,EAAEyvK,aAAa,KAAKzvK,EAAEkd,YAAY,KAAKld,EAAE0vK,WAAW,KAAK1vK,EAAE2vK,UAAUl2K,OAAO,EAAE,GAAG81K,GAAG91K,QAAQ81K,GAAGxwK,KAAKiB,GAC5a,SAAS4vK,GAAG5vK,EAAEzF,EAAE4B,EAAE7B,GAAG,GAAGi1K,GAAG91K,OAAO,CAAC,IAAImC,EAAE2zK,GAAGzwK,MAA2E,OAArElD,EAAE6zK,aAAazvK,EAAEpE,EAAEi0K,iBAAiBv1K,EAAEsB,EAAEshB,YAAY3iB,EAAEqB,EAAE8zK,WAAWvzK,EAASP,EAAE,MAAM,CAAC6zK,aAAazvK,EAAE6vK,iBAAiBv1K,EAAE4iB,YAAY3iB,EAAEm1K,WAAWvzK,EAAEwzK,UAAU,IAC9M,SAASG,GAAG9vK,GAAG,IAAIzF,EAAEyF,EAAE0vK,WAAWvzK,EAAE5B,EAAE,EAAE,CAAC,IAAI4B,EAAE,CAAC6D,EAAE2vK,UAAU5wK,KAAK5C,GAAG,MAAM,IAAI7B,EAAE6B,EAAE,GAAG,IAAI7B,EAAEuhG,IAAIvhG,EAAEA,EAAEitK,UAAUwI,kBAAkB,CAAC,KAAKz1K,EAAEowK,QAAQpwK,EAAEA,EAAEowK,OAAOpwK,EAAE,IAAIA,EAAEuhG,IAAI,KAAKvhG,EAAEitK,UAAUwI,cAAc,IAAIz1K,EAAE,MAAc,KAARC,EAAE4B,EAAE0/F,MAAW,IAAIthG,GAAGyF,EAAE2vK,UAAU5wK,KAAK5C,GAAGA,EAAE6zK,GAAG11K,SAAS6B,GAAG,IAAIA,EAAE,EAAEA,EAAE6D,EAAE2vK,UAAUl2K,OAAO0C,IAAI,CAAC5B,EAAEyF,EAAE2vK,UAAUxzK,GAAG,IAAIP,EAAEuzK,GAAGnvK,EAAEkd,aAAa5iB,EAAE0F,EAAEyvK,aAAa,IAAIxxK,EAAE+B,EAAEkd,YAAY/e,EAAE6B,EAAE6vK,iBAAiB,IAAI1zK,IAAIgC,GAAG,IAAI,IAAI,IAAIwuB,EAAE,KAAKxtB,EAAE,EAAEA,EAAEqnK,EAAG/sK,OAAO0F,IAAI,CAAC,IAAIoB,EAAEimK,EAAGrnK,GAAGoB,IAAIA,EAAEA,EAAEkmK,cAAcnsK,EAAEC,EAAE0D,EAAErC,EAAEuC,MAAMwuB,EACpf8hJ,GAAG9hJ,EAAEpsB,IAAI2uK,GAAGviJ,IAAI,SAASsjJ,GAAGjwK,EAAEzF,EAAE4B,GAAG,IAAIA,EAAE6F,IAAIhC,GAAG,CAAC,OAAOA,GAAG,IAAK,SAASkwK,GAAG31K,EAAE,UAAS,GAAI,MAAM,IAAK,QAAQ,IAAK,OAAO21K,GAAG31K,EAAE,SAAQ,GAAI21K,GAAG31K,EAAE,QAAO,GAAI4B,EAAE+F,IAAI,OAAO,MAAM/F,EAAE+F,IAAI,QAAQ,MAAM,MAAM,IAAK,SAAS,IAAK,QAAQotK,GAAGtvK,IAAIkwK,GAAG31K,EAAEyF,GAAE,GAAI,MAAM,IAAK,UAAU,IAAK,SAAS,IAAK,QAAQ,MAAM,SAAS,IAAI6tK,GAAGhyK,QAAQmE,IAAIuH,GAAEvH,EAAEzF,GAAG4B,EAAE+F,IAAIlC,EAAE,OACtV,IAAImwK,GAAGC,GAAGC,GAAGC,IAAG,EAAGC,GAAG,GAAGC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,IAAI75J,IAAI85J,GAAG,IAAI95J,IAAI+5J,GAAG,GAAGC,GAAG,0QAA0Q11I,MAAM,KAAK21I,GAAG,gHAAgH31I,MAAM,KAC3X,SAAS41I,GAAGhxK,EAAEzF,EAAE4B,EAAE7B,EAAEsB,GAAG,MAAM,CAACq1K,UAAUjxK,EAAEyvK,aAAal1K,EAAEs1K,iBAAmB,GAAF1zK,EAAK+gB,YAAYthB,EAAEymB,UAAU/nB,GAC1M,SAAS42K,GAAGlxK,EAAEzF,GAAG,OAAOyF,GAAG,IAAK,QAAQ,IAAK,OAAOwwK,GAAG,KAAK,MAAM,IAAK,YAAY,IAAK,YAAYC,GAAG,KAAK,MAAM,IAAK,YAAY,IAAK,WAAWC,GAAG,KAAK,MAAM,IAAK,cAAc,IAAK,aAAaC,GAAG1oI,OAAO1tC,EAAE42K,WAAW,MAAM,IAAK,oBAAoB,IAAK,qBAAqBP,GAAG3oI,OAAO1tC,EAAE42K,YAAY,SAASC,GAAGpxK,EAAEzF,EAAE4B,EAAE7B,EAAEsB,EAAEqC,GAAG,OAAG,OAAO+B,GAAGA,EAAEkd,cAAcjf,GAAS+B,EAAEgxK,GAAGz2K,EAAE4B,EAAE7B,EAAEsB,EAAEqC,GAAG,OAAO1D,IAAY,QAARA,EAAE82K,GAAG92K,KAAa61K,GAAG71K,IAAIyF,IAAEA,EAAE6vK,kBAAkBv1K,EAAS0F,GAEhc,SAASsxK,GAAGtxK,GAAG,IAAIzF,EAAEy1K,GAAGhwK,EAAE1G,QAAQ,GAAG,OAAOiB,EAAE,CAAC,IAAI4B,EAAE6xK,GAAGzzK,GAAG,GAAG,OAAO4B,EAAE,GAAW,MAAR5B,EAAE4B,EAAE0/F,MAAY,GAAW,QAARthG,EAAE4zK,GAAGhyK,IAAoF,OAAvE6D,EAAEixK,UAAU12K,OAAE6B,EAAEm1K,yBAAyBvxK,EAAEwxK,UAAS,WAAWnB,GAAGl0K,WAAkB,GAAG,IAAI5B,GAAG4B,EAAEorK,UAAUkK,QAA8D,YAArDzxK,EAAEixK,UAAU,IAAI90K,EAAE0/F,IAAI1/F,EAAEorK,UAAUwI,cAAc,MAAa/vK,EAAEixK,UAAU,KAAK,SAASS,GAAG1xK,GAAG,GAAG,OAAOA,EAAEixK,UAAU,OAAM,EAAG,IAAI12K,EAAEo3K,GAAG3xK,EAAEyvK,aAAazvK,EAAE6vK,iBAAiB7vK,EAAEqiB,UAAUriB,EAAEkd,aAAa,GAAG,OAAO3iB,EAAE,CAAC,IAAI4B,EAAEk1K,GAAG92K,GAAiC,OAA9B,OAAO4B,GAAGi0K,GAAGj0K,GAAG6D,EAAEixK,UAAU12K,GAAQ,EAAG,OAAM,EAC1e,SAASq3K,GAAG5xK,EAAEzF,EAAE4B,GAAGu1K,GAAG1xK,IAAI7D,EAAE8rC,OAAO1tC,GAAG,SAASs3K,KAAK,IAAIvB,IAAG,EAAG,EAAEC,GAAG92K,QAAQ,CAAC,IAAIuG,EAAEuwK,GAAG,GAAG,GAAG,OAAOvwK,EAAEixK,UAAU,CAAmB,QAAlBjxK,EAAEqxK,GAAGrxK,EAAEixK,aAAqBd,GAAGnwK,GAAG,MAAM,IAAIzF,EAAEo3K,GAAG3xK,EAAEyvK,aAAazvK,EAAE6vK,iBAAiB7vK,EAAEqiB,UAAUriB,EAAEkd,aAAa,OAAO3iB,EAAEyF,EAAEixK,UAAU12K,EAAEg2K,GAAGvvK,QAAQ,OAAOwvK,IAAIkB,GAAGlB,MAAMA,GAAG,MAAM,OAAOC,IAAIiB,GAAGjB,MAAMA,GAAG,MAAM,OAAOC,IAAIgB,GAAGhB,MAAMA,GAAG,MAAMC,GAAGxoK,QAAQypK,IAAIhB,GAAGzoK,QAAQypK,IAAI,SAASE,GAAG9xK,EAAEzF,GAAGyF,EAAEixK,YAAY12K,IAAIyF,EAAEixK,UAAU,KAAKX,KAAKA,IAAG,EAAGl0K,EAAE21K,0BAA0B31K,EAAE41K,wBAAwBH,MACze,SAASI,GAAGjyK,GAAG,SAASzF,EAAEA,GAAG,OAAOu3K,GAAGv3K,EAAEyF,GAAG,GAAG,EAAEuwK,GAAG92K,OAAO,CAACq4K,GAAGvB,GAAG,GAAGvwK,GAAG,IAAI,IAAI7D,EAAE,EAAEA,EAAEo0K,GAAG92K,OAAO0C,IAAI,CAAC,IAAI7B,EAAEi2K,GAAGp0K,GAAG7B,EAAE22K,YAAYjxK,IAAI1F,EAAE22K,UAAU,OAA+F,IAAxF,OAAOT,IAAIsB,GAAGtB,GAAGxwK,GAAG,OAAOywK,IAAIqB,GAAGrB,GAAGzwK,GAAG,OAAO0wK,IAAIoB,GAAGpB,GAAG1wK,GAAG2wK,GAAGxoK,QAAQ5N,GAAGq2K,GAAGzoK,QAAQ5N,GAAO4B,EAAE,EAAEA,EAAE00K,GAAGp3K,OAAO0C,KAAI7B,EAAEu2K,GAAG10K,IAAK80K,YAAYjxK,IAAI1F,EAAE22K,UAAU,MAAM,KAAK,EAAEJ,GAAGp3K,QAAiB,QAAR0C,EAAE00K,GAAG,IAAYI,WAAYK,GAAGn1K,GAAG,OAAOA,EAAE80K,WAAWJ,GAAG7vK,QAC/X,IAAIkxK,GAAG,GAAGC,GAAG,IAAIr7J,IAAIs7J,GAAG,IAAIt7J,IAAIu7J,GAAG,CAAC,QAAQ,QAAQ5E,GAAG,eAAeC,GAAG,qBAAqBC,GAAG,iBAAiB,UAAU,UAAU,iBAAiB,iBAAiB,iBAAiB,iBAAiB,UAAU,UAAU,YAAY,YAAY,QAAQ,QAAQ,QAAQ,QAAQ,oBAAoB,oBAAoB,OAAO,OAAO,aAAa,aAAa,iBAAiB,iBAAiB,YAAY,YAAY,qBAAqB,qBAAqB,UAAU,UAAU,WAAW,WAAW,UACpf,UAAU,UAAU,UAAU,UAAU,UAAU,aAAa,aAAaC,GAAG,gBAAgB,UAAU,WAAW,SAAS0E,GAAGtyK,EAAEzF,GAAG,IAAI,IAAI4B,EAAE,EAAEA,EAAE6D,EAAEvG,OAAO0C,GAAG,EAAE,CAAC,IAAI7B,EAAE0F,EAAE7D,GAAGP,EAAEoE,EAAE7D,EAAE,GAAG8B,EAAE,MAAMrC,EAAE,GAAGsqB,cAActqB,EAAE4E,MAAM,IAAIvC,EAAE,CAAC2oK,wBAAwB,CAAC2L,QAAQt0K,EAAEu0K,SAASv0K,EAAE,WAAW+oK,aAAa,CAAC1sK,GAAGm4K,cAAcl4K,GAAG63K,GAAGlwK,IAAI5H,EAAEC,GAAG43K,GAAGjwK,IAAI5H,EAAE2D,GAAGi0K,GAAGt2K,GAAGqC,GACzVq0K,GAAG,6iBAA6iBl3I,MAAM,KAAK,GAC3jBk3I,GAAG,oRAAoRl3I,MAAM,KAAK,GAAGk3I,GAAGD,GAAG,GAAG,IAAI,IAAIK,GAAG,qFAAqFt3I,MAAM,KAAKu3I,GAAG,EAAEA,GAAGD,GAAGj5K,OAAOk5K,KAAKP,GAAGlwK,IAAIwwK,GAAGC,IAAI,GAC9b,IAAIC,GAAGx2K,EAAEy2K,8BAA8BC,GAAG12K,EAAEm1K,yBAAyBwB,IAAG,EAAG,SAASxrK,GAAEvH,EAAEzF,GAAG21K,GAAG31K,EAAEyF,GAAE,GAAI,SAASkwK,GAAGlwK,EAAEzF,EAAE4B,GAAG,IAAI7B,EAAE83K,GAAG9yK,IAAI/E,GAAG,YAAO,IAASD,EAAE,EAAEA,GAAG,KAAK,EAAEA,EAAE04K,GAAG96E,KAAK,KAAK39F,EAAE,EAAEyF,GAAG,MAAM,KAAK,EAAE1F,EAAE24K,GAAG/6E,KAAK,KAAK39F,EAAE,EAAEyF,GAAG,MAAM,QAAQ1F,EAAEiP,GAAG2uF,KAAK,KAAK39F,EAAE,EAAEyF,GAAG7D,EAAE6D,EAAEwW,iBAAiBjc,EAAED,GAAE,GAAI0F,EAAEwW,iBAAiBjc,EAAED,GAAE,GAAI,SAAS04K,GAAGhzK,EAAEzF,EAAE4B,EAAE7B,GAAGwtK,GAAIF,IAAK,IAAIhsK,EAAE2N,GAAGtL,EAAE6pK,EAAGA,GAAG,EAAG,IAAIH,EAAG/rK,EAAEoE,EAAEzF,EAAE4B,EAAE7B,GAAG,SAASwtK,EAAG7pK,IAAI+pK,KAAM,SAASiL,GAAGjzK,EAAEzF,EAAE4B,EAAE7B,GAAGw4K,GAAGF,GAAGrpK,GAAG2uF,KAAK,KAAKl4F,EAAEzF,EAAE4B,EAAE7B,IACpc,SAASiP,GAAGvJ,EAAEzF,EAAE4B,EAAE7B,GAAG,GAAGy4K,GAAG,GAAG,EAAExC,GAAG92K,SAAS,EAAEq3K,GAAGj1K,QAAQmE,GAAGA,EAAEgxK,GAAG,KAAKhxK,EAAEzF,EAAE4B,EAAE7B,GAAGi2K,GAAGxxK,KAAKiB,OAAO,CAAC,IAAIpE,EAAE+1K,GAAG3xK,EAAEzF,EAAE4B,EAAE7B,GAAG,GAAG,OAAOsB,EAAEs1K,GAAGlxK,EAAE1F,QAAQ,IAAI,EAAEw2K,GAAGj1K,QAAQmE,GAAGA,EAAEgxK,GAAGp1K,EAAEoE,EAAEzF,EAAE4B,EAAE7B,GAAGi2K,GAAGxxK,KAAKiB,QAAQ,IAT9L,SAAYA,EAAEzF,EAAE4B,EAAE7B,EAAEsB,GAAG,OAAOrB,GAAG,IAAK,QAAQ,OAAOi2K,GAAGY,GAAGZ,GAAGxwK,EAAEzF,EAAE4B,EAAE7B,EAAEsB,IAAG,EAAG,IAAK,YAAY,OAAO60K,GAAGW,GAAGX,GAAGzwK,EAAEzF,EAAE4B,EAAE7B,EAAEsB,IAAG,EAAG,IAAK,YAAY,OAAO80K,GAAGU,GAAGV,GAAG1wK,EAAEzF,EAAE4B,EAAE7B,EAAEsB,IAAG,EAAG,IAAK,cAAc,IAAIqC,EAAErC,EAAEu1K,UAAkD,OAAxCR,GAAGzuK,IAAIjE,EAAEmzK,GAAGT,GAAGrxK,IAAIrB,IAAI,KAAK+B,EAAEzF,EAAE4B,EAAE7B,EAAEsB,KAAU,EAAG,IAAK,oBAAoB,OAAOqC,EAAErC,EAAEu1K,UAAUP,GAAG1uK,IAAIjE,EAAEmzK,GAAGR,GAAGtxK,IAAIrB,IAAI,KAAK+B,EAAEzF,EAAE4B,EAAE7B,EAAEsB,KAAI,EAAG,OAAM,EAS7Js3K,CAAGt3K,EAAEoE,EAAEzF,EAAE4B,EAAE7B,GAAG,CAAC42K,GAAGlxK,EAAE1F,GAAG0F,EAAE4vK,GAAG5vK,EAAE1F,EAAE,KAAKC,GAAG,IAAI0tK,EAAG6H,GAAG9vK,GAAG,QAAQwvK,GAAGxvK,MAClQ,SAAS2xK,GAAG3xK,EAAEzF,EAAE4B,EAAE7B,GAAmB,GAAG,QAAX6B,EAAE6zK,GAAV7zK,EAAEgzK,GAAG70K,KAAuB,CAAC,IAAIsB,EAAEoyK,GAAG7xK,GAAG,GAAG,OAAOP,EAAEO,EAAE,SAAS,CAAC,IAAI8B,EAAErC,EAAEigG,IAAI,GAAG,KAAK59F,EAAE,CAAS,GAAG,QAAX9B,EAAEgyK,GAAGvyK,IAAe,OAAOO,EAAEA,EAAE,UAAU,GAAG,IAAI8B,EAAE,CAAC,GAAGrC,EAAE2rK,UAAUkK,QAAQ,OAAO,IAAI71K,EAAEigG,IAAIjgG,EAAE2rK,UAAUwI,cAAc,KAAK5zK,EAAE,UAAUP,IAAIO,IAAIA,EAAE,OAAO6D,EAAE4vK,GAAG5vK,EAAE1F,EAAE6B,EAAE5B,GAAG,IAAI0tK,EAAG6H,GAAG9vK,GAAG,QAAQwvK,GAAGxvK,GAAG,OAAO,KACpT,IAAImzK,GAAG,CAACC,yBAAwB,EAAGC,mBAAkB,EAAGC,kBAAiB,EAAGC,kBAAiB,EAAGC,SAAQ,EAAGC,cAAa,EAAGC,iBAAgB,EAAGC,aAAY,EAAGC,SAAQ,EAAGC,MAAK,EAAGC,UAAS,EAAGC,cAAa,EAAGC,YAAW,EAAGC,cAAa,EAAGC,WAAU,EAAGC,UAAS,EAAGC,SAAQ,EAAGC,YAAW,EAAGC,aAAY,EAAGC,cAAa,EAAGC,YAAW,EAAGC,eAAc,EAAGC,gBAAe,EAAGC,iBAAgB,EAAGC,YAAW,EAAGC,WAAU,EAAGx4I,YAAW,EAAG5e,SAAQ,EAAG8xD,OAAM,EAAGulG,SAAQ,EAAGC,SAAQ,EAAGC,QAAO,EAAGC,QAAO,EAAGC,MAAK,EAAGC,aAAY,EAC1fC,cAAa,EAAGC,aAAY,EAAGC,iBAAgB,EAAGC,kBAAiB,EAAGC,kBAAiB,EAAGC,eAAc,EAAGrzI,aAAY,GAAIszI,GAAG,CAAC,SAAS,KAAK,MAAM,KAA6H,SAASC,GAAG31K,EAAEzF,EAAE4B,GAAG,OAAO,MAAM5B,GAAG,mBAAmBA,GAAG,KAAKA,EAAE,GAAG4B,GAAG,kBAAkB5B,GAAG,IAAIA,GAAG44K,GAAGv4K,eAAeoF,IAAImzK,GAAGnzK,IAAI,GAAGzF,GAAG4uG,OAAO5uG,EAAE,KAC9Z,SAASq7K,GAAG51K,EAAEzF,GAAa,IAAI,IAAI4B,KAAlB6D,EAAEA,EAAEyS,MAAmBlY,EAAE,GAAGA,EAAEK,eAAeuB,GAAG,CAAC,IAAI7B,EAAE,IAAI6B,EAAEN,QAAQ,MAAMD,EAAE+5K,GAAGx5K,EAAE5B,EAAE4B,GAAG7B,GAAG,UAAU6B,IAAIA,EAAE,YAAY7B,EAAE0F,EAAEwxC,YAAYr1C,EAAEP,GAAGoE,EAAE7D,GAAGP,GADT9B,OAAOqL,KAAKguK,IAAIhrK,SAAQ,SAASnI,GAAG01K,GAAGvtK,SAAQ,SAAS5N,GAAGA,EAAEA,EAAEyF,EAAE2O,OAAO,GAAGuX,cAAclmB,EAAEmhB,UAAU,GAAGgyJ,GAAG54K,GAAG44K,GAAGnzK,SACrG,IAAI61K,GAAGr6K,EAAE,CAACs6K,UAAS,GAAI,CAAC70I,MAAK,EAAGn3B,MAAK,EAAGisK,IAAG,EAAG/zF,KAAI,EAAGg0F,OAAM,EAAGC,IAAG,EAAGvwB,KAAI,EAAG3jI,OAAM,EAAGm0J,QAAO,EAAGC,MAAK,EAAG18H,MAAK,EAAGs4D,OAAM,EAAG7pG,QAAO,EAAGkuK,OAAM,EAAGC,KAAI,IAClT,SAASC,GAAGt2K,EAAEzF,GAAG,GAAGA,EAAE,CAAC,GAAGs7K,GAAG71K,KAAK,MAAMzF,EAAE4R,UAAU,MAAM5R,EAAE2xK,yBAAyB,MAAMhmK,MAAMm9J,EAAE,IAAIrjK,EAAE,KAAK,GAAG,MAAMzF,EAAE2xK,wBAAwB,CAAC,GAAG,MAAM3xK,EAAE4R,SAAS,MAAMjG,MAAMm9J,EAAE,KAAK,GAAK,kBAAkB9oK,EAAE2xK,2BAAyB,WAAW3xK,EAAE2xK,yBAAyB,MAAMhmK,MAAMm9J,EAAE,KAAM,GAAG,MAAM9oK,EAAEkY,OAAO,kBAAkBlY,EAAEkY,MAAM,MAAMvM,MAAMm9J,EAAE,GAAG,MAClW,SAASkT,GAAGv2K,EAAEzF,GAAG,IAAI,IAAIyF,EAAEnE,QAAQ,KAAK,MAAM,kBAAkBtB,EAAEyvG,GAAG,OAAOhqG,GAAG,IAAK,iBAAiB,IAAK,gBAAgB,IAAK,YAAY,IAAK,gBAAgB,IAAK,gBAAgB,IAAK,mBAAmB,IAAK,iBAAiB,IAAK,gBAAgB,OAAM,EAAG,QAAQ,OAAM,GAAI,IAAIw2K,GAAGjK,GAAQ,SAASkK,GAAGz2K,EAAEzF,GAAuD,IAAI4B,EAAE4xK,GAA1D/tK,EAAE,IAAIA,EAAE4nG,UAAU,KAAK5nG,EAAE4nG,SAAS5nG,EAAEA,EAAEw4F,eAA0Bj+F,EAAEwsK,EAAGxsK,GAAG,IAAI,IAAID,EAAE,EAAEA,EAAEC,EAAEd,OAAOa,IAAI21K,GAAG11K,EAAED,GAAG0F,EAAE7D,GAAG,SAASu6K,MAC5a,SAASC,GAAG32K,GAAwD,GAAG,qBAAxDA,EAAEA,IAAI,qBAAqBwT,SAASA,cAAS,IAAkC,OAAO,KAAK,IAAI,OAAOxT,EAAE4rK,eAAe5rK,EAAEhC,KAAK,MAAMzD,GAAG,OAAOyF,EAAEhC,MAAM,SAAS44K,GAAG52K,GAAG,KAAKA,GAAGA,EAAEugK,YAAYvgK,EAAEA,EAAEugK,WAAW,OAAOvgK,EAAE,SAAS62K,GAAG72K,EAAEzF,GAAG,IAAwBD,EAApB6B,EAAEy6K,GAAG52K,GAAO,IAAJA,EAAE,EAAY7D,GAAG,CAAC,GAAG,IAAIA,EAAEyrG,SAAS,CAA0B,GAAzBttG,EAAE0F,EAAE7D,EAAEmwK,YAAY7yK,OAAUuG,GAAGzF,GAAGD,GAAGC,EAAE,MAAM,CAACyP,KAAK7N,EAAE8rD,OAAO1tD,EAAEyF,GAAGA,EAAE1F,EAAE0F,EAAE,CAAC,KAAK7D,GAAG,CAAC,GAAGA,EAAE26K,YAAY,CAAC36K,EAAEA,EAAE26K,YAAY,MAAM92K,EAAE7D,EAAEA,EAAEuwC,WAAWvwC,OAAE,EAAOA,EAAEy6K,GAAGz6K,IAC5b,SAAS46K,GAAG/2K,EAAEzF,GAAG,SAAOyF,IAAGzF,KAAEyF,IAAIzF,KAAKyF,GAAG,IAAIA,EAAE4nG,YAAYrtG,GAAG,IAAIA,EAAEqtG,SAASmvE,GAAG/2K,EAAEzF,EAAEmyC,YAAY,aAAa1sC,EAAEA,EAAEu2D,SAASh8D,KAAGyF,EAAEg3K,4BAAwD,GAA7Bh3K,EAAEg3K,wBAAwBz8K,MAAa,SAAS08K,KAAK,IAAI,IAAIj3K,EAAEuT,OAAOhZ,EAAEo8K,KAAKp8K,aAAayF,EAAEk3K,mBAAmB,CAAC,IAAI,IAAI/6K,EAAE,kBAAkB5B,EAAE48K,cAActsK,SAASiH,KAAK,MAAMxX,GAAG6B,GAAE,EAAG,IAAGA,EAAyB,MAAM5B,EAAEo8K,IAA/B32K,EAAEzF,EAAE48K,eAAgC3jK,UAAU,OAAOjZ,EAC5Y,SAAS68K,GAAGp3K,GAAG,IAAIzF,EAAEyF,GAAGA,EAAEqnG,UAAUrnG,EAAEqnG,SAASnuE,cAAc,OAAO3+B,IAAI,UAAUA,IAAI,SAASyF,EAAE2F,MAAM,WAAW3F,EAAE2F,MAAM,QAAQ3F,EAAE2F,MAAM,QAAQ3F,EAAE2F,MAAM,aAAa3F,EAAE2F,OAAO,aAAapL,GAAG,SAASyF,EAAEq3K,iBAAiB,IAAmBC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAK,SAASC,GAAG13K,EAAEzF,GAAG,OAAOyF,GAAG,IAAK,SAAS,IAAK,QAAQ,IAAK,SAAS,IAAK,WAAW,QAAQzF,EAAEo9K,UAAU,OAAM,EAC7X,SAASC,GAAG53K,EAAEzF,GAAG,MAAM,aAAayF,GAAG,WAAWA,GAAG,aAAaA,GAAG,kBAAkBzF,EAAE4R,UAAU,kBAAkB5R,EAAE4R,UAAU,kBAAkB5R,EAAE2xK,yBAAyB,OAAO3xK,EAAE2xK,yBAAyB,MAAM3xK,EAAE2xK,wBAAwB2L,OAAO,IAAIC,GAAG,oBAAoBzhK,WAAWA,gBAAW,EAAO0hK,GAAG,oBAAoBzgK,aAAaA,kBAAa,EAAO,SAAS0gK,GAAGh4K,GAAG,KAAK,MAAMA,EAAEA,EAAEA,EAAE82K,YAAY,CAAC,IAAIv8K,EAAEyF,EAAE4nG,SAAS,GAAG,IAAIrtG,GAAG,IAAIA,EAAE,MAAM,OAAOyF,EAClc,SAASi4K,GAAGj4K,GAAGA,EAAEA,EAAEk4K,gBAAgB,IAAI,IAAI39K,EAAE,EAAEyF,GAAG,CAAC,GAAG,IAAIA,EAAE4nG,SAAS,CAAC,IAAIzrG,EAAE6D,EAAEsZ,KAAK,GAFgJ,MAE7Ind,GAAQA,IAAIo7K,IAAIp7K,IAAIm7K,GAAG,CAAC,GAAG,IAAI/8K,EAAE,OAAOyF,EAAEzF,QAF0G,OAEjG4B,GAAQ5B,IAAIyF,EAAEA,EAAEk4K,gBAAgB,OAAO,KAAK,IAAIC,GAAG7zK,KAAK2c,SAASC,SAAS,IAAI1gB,MAAM,GAAG43K,GAAG,2BAA2BD,GAAGE,GAAG,wBAAwBF,GAAGG,GAAG,qBAAqBH,GACvT,SAASnI,GAAGhwK,GAAG,IAAIzF,EAAEyF,EAAEo4K,IAAI,GAAG79K,EAAE,OAAOA,EAAE,IAAI,IAAI4B,EAAE6D,EAAE0sC,WAAWvwC,GAAG,CAAC,GAAG5B,EAAE4B,EAAEm8K,KAAKn8K,EAAEi8K,IAAI,CAAe,GAAdj8K,EAAE5B,EAAE0zK,UAAa,OAAO1zK,EAAEgV,OAAO,OAAOpT,GAAG,OAAOA,EAAEoT,MAAM,IAAIvP,EAAEi4K,GAAGj4K,GAAG,OAAOA,GAAG,CAAC,GAAG7D,EAAE6D,EAAEo4K,IAAI,OAAOj8K,EAAE6D,EAAEi4K,GAAGj4K,GAAG,OAAOzF,EAAM4B,GAAJ6D,EAAE7D,GAAMuwC,WAAW,OAAO,KAAK,SAAS2kI,GAAGrxK,GAAkB,QAAfA,EAAEA,EAAEo4K,KAAKp4K,EAAEs4K,MAAc,IAAIt4K,EAAE67F,KAAK,IAAI77F,EAAE67F,KAAK,KAAK77F,EAAE67F,KAAK,IAAI77F,EAAE67F,IAAI,KAAK77F,EAAE,SAASu4K,GAAGv4K,GAAG,GAAG,IAAIA,EAAE67F,KAAK,IAAI77F,EAAE67F,IAAI,OAAO77F,EAAEunK,UAAU,MAAMrhK,MAAMm9J,EAAE,KAAM,SAASmV,GAAGx4K,GAAG,OAAOA,EAAEq4K,KAAK,KAClb,SAASI,GAAGz4K,GAAG,GAAGA,EAAEA,EAAE0qK,aAAa1qK,GAAG,IAAIA,EAAE67F,KAAK,OAAO77F,GAAI,KAC5D,SAAS04K,GAAG14K,EAAEzF,GAAG,IAAI4B,EAAE6D,EAAEunK,UAAU,IAAIprK,EAAE,OAAO,KAAK,IAAI7B,EAAE0rK,EAAG7pK,GAAG,IAAI7B,EAAE,OAAO,KAAK6B,EAAE7B,EAAEC,GAAGyF,EAAE,OAAOzF,GAAG,IAAK,UAAU,IAAK,iBAAiB,IAAK,gBAAgB,IAAK,uBAAuB,IAAK,cAAc,IAAK,qBAAqB,IAAK,cAAc,IAAK,qBAAqB,IAAK,YAAY,IAAK,mBAAmB,IAAK,gBAAgBD,GAAGA,EAAEkmD,YAAqBlmD,IAAI,YAAb0F,EAAEA,EAAE2F,OAAuB,UAAU3F,GAAG,WAAWA,GAAG,aAAaA,IAAIA,GAAG1F,EAAE,MAAM0F,EAAE,QAAQA,GAAE,EAAG,GAAGA,EAAE,OAAO,KAAK,GAAG7D,GAAG,oBAAoBA,EAAE,MAAM+J,MAAMm9J,EAAE,IACjgB9oK,SAAS4B,IAAI,OAAOA,EAAE,SAASw8K,GAAG34K,EAAEzF,EAAE4B,IAAM5B,EAAEm+K,GAAG14K,EAAE7D,EAAEy8K,eAAehS,wBAAwBrsK,OAAI4B,EAAE0yK,mBAAmBJ,GAAGtyK,EAAE0yK,mBAAmBt0K,GAAG4B,EAAE2yK,mBAAmBL,GAAGtyK,EAAE2yK,mBAAmB9uK,IAAG,SAAS64K,GAAG74K,GAAG,GAAGA,GAAGA,EAAE44K,eAAehS,wBAAwB,CAAC,IAAI,IAAIrsK,EAAEyF,EAAE84K,YAAY38K,EAAE,GAAG5B,GAAG4B,EAAE4C,KAAKxE,GAAGA,EAAEk+K,GAAGl+K,GAAG,IAAIA,EAAE4B,EAAE1C,OAAO,EAAEc,KAAKo+K,GAAGx8K,EAAE5B,GAAG,WAAWyF,GAAG,IAAIzF,EAAE,EAAEA,EAAE4B,EAAE1C,OAAOc,IAAIo+K,GAAGx8K,EAAE5B,GAAG,UAAUyF,IACtY,SAAS+4K,GAAG/4K,EAAEzF,EAAE4B,GAAG6D,GAAG7D,GAAGA,EAAEy8K,eAAe/R,mBAAmBtsK,EAAEm+K,GAAG14K,EAAE7D,EAAEy8K,eAAe/R,qBAAqB1qK,EAAE0yK,mBAAmBJ,GAAGtyK,EAAE0yK,mBAAmBt0K,GAAG4B,EAAE2yK,mBAAmBL,GAAGtyK,EAAE2yK,mBAAmB9uK,IAAI,SAASg5K,GAAGh5K,GAAGA,GAAGA,EAAE44K,eAAe/R,kBAAkBkS,GAAG/4K,EAAE84K,YAAY,KAAK94K,GAAG,SAASi5K,GAAGj5K,GAAG0uK,GAAG1uK,EAAE64K,IAAI,IAAI/hJ,GAAG,KAAKoiJ,GAAG,KAAKC,GAAG,KACxU,SAASC,KAAK,GAAGD,GAAG,OAAOA,GAAG,IAAIn5K,EAAkB1F,EAAhBC,EAAE2+K,GAAG/8K,EAAE5B,EAAEd,OAASmC,EAAE,UAAUk7B,GAAGA,GAAGt5B,MAAMs5B,GAAGw1I,YAAYruK,EAAErC,EAAEnC,OAAO,IAAIuG,EAAE,EAAEA,EAAE7D,GAAG5B,EAAEyF,KAAKpE,EAAEoE,GAAGA,KAAK,IAAI7B,EAAEhC,EAAE6D,EAAE,IAAI1F,EAAE,EAAEA,GAAG6D,GAAG5D,EAAE4B,EAAE7B,KAAKsB,EAAEqC,EAAE3D,GAAGA,KAAK,OAAO6+K,GAAGv9K,EAAE4E,MAAMR,EAAE,EAAE1F,EAAE,EAAEA,OAAE,GAAQ,SAAS++K,KAAK,OAAM,EAAG,SAASC,KAAK,OAAM,EAClQ,SAASrqJ,GAAEjvB,EAAEzF,EAAE4B,EAAE7B,GAA4F,IAAI,IAAIsB,KAAjGX,KAAK29K,eAAe54K,EAAE/E,KAAK69K,YAAYv+K,EAAEU,KAAKiiB,YAAY/gB,EAAE6D,EAAE/E,KAAKC,YAAYq+K,UAAyBv5K,EAAEpF,eAAegB,MAAMrB,EAAEyF,EAAEpE,IAAIX,KAAKW,GAAGrB,EAAE4B,GAAG,WAAWP,EAAEX,KAAK3B,OAAOgB,EAAEW,KAAKW,GAAGO,EAAEP,IAAgI,OAA5HX,KAAKu+K,oBAAoB,MAAMr9K,EAAEmV,iBAAiBnV,EAAEmV,kBAAiB,IAAKnV,EAAEs9K,aAAaJ,GAAGC,GAAGr+K,KAAK8zK,qBAAqBuK,GAAUr+K,KAGrF,SAASy+K,GAAG15K,EAAEzF,EAAE4B,EAAE7B,GAAG,GAAGW,KAAK0+K,UAAUlgL,OAAO,CAAC,IAAImC,EAAEX,KAAK0+K,UAAU76K,MAA2B,OAArB7D,KAAKJ,KAAKe,EAAEoE,EAAEzF,EAAE4B,EAAE7B,GAAUsB,EAAE,OAAO,IAAIX,KAAK+E,EAAEzF,EAAE4B,EAAE7B,GAC7X,SAASs/K,GAAG55K,GAAG,KAAKA,aAAa/E,MAAM,MAAMiL,MAAMm9J,EAAE,MAAMrjK,EAAE65K,aAAa,GAAG5+K,KAAK0+K,UAAUlgL,QAAQwB,KAAK0+K,UAAU56K,KAAKiB,GAAG,SAAS85K,GAAG95K,GAAGA,EAAE25K,UAAU,GAAG35K,EAAE+5K,UAAUL,GAAG15K,EAAEivK,QAAQ2K,GAHlLp+K,EAAEyzB,GAAE70B,UAAU,CAACiX,eAAe,WAAWpW,KAAKqW,kBAAiB,EAAG,IAAItR,EAAE/E,KAAKiiB,YAAYld,IAAIA,EAAEqR,eAAerR,EAAEqR,iBAAiB,mBAAmBrR,EAAEy5K,cAAcz5K,EAAEy5K,aAAY,GAAIx+K,KAAKu+K,mBAAmBH,KAAK96J,gBAAgB,WAAW,IAAIve,EAAE/E,KAAKiiB,YAAYld,IAAIA,EAAEue,gBAAgBve,EAAEue,kBAAkB,mBAAmBve,EAAEg6K,eAAeh6K,EAAEg6K,cAAa,GAAI/+K,KAAK8zK,qBAAqBsK,KAAK/wC,QAAQ,WAAWrtI,KAAK+zK,aAAaqK,IAAIrK,aAAasK,GAAGO,WAAW,WAAW,IACpdt/K,EADwdyF,EAAE/E,KAAKC,YAAYq+K,UACze,IAAIh/K,KAAKyF,EAAE/E,KAAKV,GAAG,KAAKU,KAAKiiB,YAAYjiB,KAAK69K,YAAY79K,KAAK29K,eAAe,KAAK39K,KAAK8zK,qBAAqB9zK,KAAKu+K,mBAAmBF,GAAGr+K,KAAK6zK,mBAAmB7zK,KAAK4zK,mBAAmB,QAAQ5/I,GAAEsqJ,UAAU,CAAC5zK,KAAK,KAAKrM,OAAO,KAAKivI,cAAc,WAAW,OAAO,MAAM0xC,WAAW,KAAKC,QAAQ,KAAKzxG,WAAW,KAAK0xG,UAAU,SAASn6K,GAAG,OAAOA,EAAEm6K,WAAWplI,KAAKC,OAAO1jC,iBAAiB,KAAK8oK,UAAU,MAC9YnrJ,GAAE0nF,OAAO,SAAS32G,GAAG,SAASzF,KAAK,SAAS4B,IAAI,OAAO7B,EAAEoB,MAAMT,KAAKQ,WAAW,IAAInB,EAAEW,KAAKV,EAAEH,UAAUE,EAAEF,UAAU,IAAIwB,EAAE,IAAIrB,EAAmH,OAAjHiB,EAAEI,EAAEO,EAAE/B,WAAW+B,EAAE/B,UAAUwB,EAAEO,EAAE/B,UAAUc,YAAYiB,EAAEA,EAAEo9K,UAAU/9K,EAAE,GAAGlB,EAAEi/K,UAAUv5K,GAAG7D,EAAEw6G,OAAOr8G,EAAEq8G,OAAOmjE,GAAG39K,GAAUA,GAAG29K,GAAG7qJ,IACvE,IAAIorJ,GAAGprJ,GAAE0nF,OAAO,CAACr9F,KAAK,OAAOghK,GAAGrrJ,GAAE0nF,OAAO,CAACr9F,KAAK,OAAOihK,GAAG,CAAC,EAAE,GAAG,GAAG,IAAIC,GAAGtT,GAAI,qBAAqB3zJ,OAAOknK,GAAG,KAAKvT,GAAI,iBAAiB1zJ,WAAWinK,GAAGjnK,SAASknK,cAClV,IAAIC,GAAGzT,GAAI,cAAc3zJ,SAASknK,GAAGvgJ,GAAGgtI,KAAMsT,IAAIC,IAAI,EAAEA,IAAI,IAAIA,IAAIG,GAAG7/K,OAAO8kG,aAAa,IAAIg7E,GAAG,CAACC,YAAY,CAAClU,wBAAwB,CAAC2L,QAAQ,gBAAgBC,SAAS,wBAAwBxL,aAAa,CAAC,iBAAiB,WAAW,YAAY,UAAU+T,eAAe,CAACnU,wBAAwB,CAAC2L,QAAQ,mBAAmBC,SAAS,2BAA2BxL,aAAa,uDAAuD5rI,MAAM,MAAM4/I,iBAAiB,CAACpU,wBAAwB,CAAC2L,QAAQ,qBAC7eC,SAAS,6BAA6BxL,aAAa,yDAAyD5rI,MAAM,MAAM6/I,kBAAkB,CAACrU,wBAAwB,CAAC2L,QAAQ,sBAAsBC,SAAS,8BAA8BxL,aAAa,0DAA0D5rI,MAAM,OAAO8/I,IAAG,EAChU,SAASC,GAAGn7K,EAAEzF,GAAG,OAAOyF,GAAG,IAAK,QAAQ,OAAO,IAAIu6K,GAAG1+K,QAAQtB,EAAE6gL,SAAS,IAAK,UAAU,OAAO,MAAM7gL,EAAE6gL,QAAQ,IAAK,WAAW,IAAK,YAAY,IAAK,OAAO,OAAM,EAAG,QAAQ,OAAM,GAAI,SAASnkC,GAAGj3I,GAAc,MAAM,kBAAjBA,EAAEA,EAAEq7K,SAAkC,SAASr7K,EAAEA,EAAEsZ,KAAK,KAAK,IAAIgiK,IAAG,EAE1Q,IAAIC,GAAG,CAAC7U,WAAWmU,GAAGpU,cAAc,SAASzmK,EAAEzF,EAAE4B,EAAE7B,GAAG,IAAIsB,EAAE,GAAG4+K,GAAGjgL,EAAE,CAAC,OAAOyF,GAAG,IAAK,mBAAmB,IAAI/B,EAAE48K,GAAGG,iBAAiB,MAAMzgL,EAAE,IAAK,iBAAiB0D,EAAE48K,GAAGE,eAAe,MAAMxgL,EAAE,IAAK,oBAAoB0D,EAAE48K,GAAGI,kBAAkB,MAAM1gL,EAAE0D,OAAE,OAAYq9K,GAAGH,GAAGn7K,EAAE7D,KAAK8B,EAAE48K,GAAGE,gBAAgB,YAAY/6K,GAAG,MAAM7D,EAAEi/K,UAAUn9K,EAAE48K,GAAGG,kBAClL,OADoM/8K,GAAGi8B,IAAI,OAAO/9B,EAAEkN,SAASiyK,IAAIr9K,IAAI48K,GAAGG,iBAAiB/8K,IAAI48K,GAAGE,gBAAgBO,KAAK1/K,EAAEw9K,OAAYF,GAAG,UAARpiJ,GAAGx8B,GAAkBw8B,GAAGt5B,MAAMs5B,GAAGw1I,YAAYgP,IAAG,IAAKr9K,EAAEo8K,GAAGN,UAAU97K,EACzf1D,EAAE4B,EAAE7B,GAAGsB,EAAEqC,EAAEqb,KAAK1d,EAAW,QAARA,EAAEq7I,GAAG96I,MAAc8B,EAAEqb,KAAK1d,GAAIq9K,GAAGh7K,GAAGrC,EAAEqC,GAAGrC,EAAE,MAAMoE,EAAE26K,GAHuM,SAAY36K,EAAEzF,GAAG,OAAOyF,GAAG,IAAK,iBAAiB,OAAOi3I,GAAG18I,GAAG,IAAK,WAAW,OAAG,KAAKA,EAAEihL,MAAa,MAAKN,IAAG,EAAUN,IAAG,IAAK,YAAY,OAAO56K,EAAEzF,EAAE+e,QAASshK,IAAIM,GAAG,KAAKl7K,EAAE,QAAQ,OAAO,MAGhYy7K,CAAGz7K,EAAE7D,GAF9E,SAAY6D,EAAEzF,GAAG,GAAG+gL,GAAG,MAAM,mBAAmBt7K,IAAIw6K,IAAIW,GAAGn7K,EAAEzF,IAAIyF,EAAEo5K,KAAKD,GAAGD,GAAGpiJ,GAAG,KAAKwkJ,IAAG,EAAGt7K,GAAG,KAAK,OAAOA,GAAG,IAAK,QAAQ,OAAO,KAAK,IAAK,WAAW,KAAKzF,EAAEmX,SAASnX,EAAEkX,QAAQlX,EAAEiX,UAAUjX,EAAEmX,SAASnX,EAAEkX,OAAO,CAAC,GAAGlX,EAAEumG,MAAM,EAAEvmG,EAAEumG,KAAKrnG,OAAO,OAAOc,EAAEumG,KAAK,GAAGvmG,EAAEihL,MAAM,OAAOzgL,OAAO8kG,aAAatlG,EAAEihL,OAAO,OAAO,KAAK,IAAK,iBAAiB,OAAOthJ,IAAI,OAAO3/B,EAAE8O,OAAO,KAAK9O,EAAE+e,KAAK,QAAQ,OAAO,MAEjToiK,CAAG17K,EAAE7D,MAAK5B,EAAE+/K,GAAGP,UAAUc,GAAGC,YAAYvgL,EAAE4B,EAAE7B,IAAKgf,KAAKtZ,EAAEi5K,GAAG1+K,IAAIA,EAAE,KAAY,OAAOqB,EAAErB,EAAE,OAAOA,EAAEqB,EAAE,CAACA,EAAErB,KAAKohL,GAAG,CAAC3hJ,OAAM,EAAGwa,MAAK,EAAGshD,UAAS,EAAG,kBAAiB,EAAGmT,OAAM,EAAG/V,OAAM,EAAG/8C,QAAO,EAAGwkG,UAAS,EAAGzzH,OAAM,EAAGy4E,QAAO,EAAGi8E,KAAI,EAAG55I,MAAK,EAAGkyD,MAAK,EAAG1oF,KAAI,EAAGynF,MAAK,GAAI,SAAS4oF,GAAG77K,GAAG,IAAIzF,EAAEyF,GAAGA,EAAEqnG,UAAUrnG,EAAEqnG,SAASnuE,cAAc,MAAM,UAAU3+B,IAAIohL,GAAG37K,EAAE2F,MAAM,aAAapL,EAC5b,IAAIuhL,GAAG,CAAC3mH,OAAO,CAACyxG,wBAAwB,CAAC2L,QAAQ,WAAWC,SAAS,mBAAmBxL,aAAa,8DAA8D5rI,MAAM,OAAO,SAAS2gJ,GAAG/7K,EAAEzF,EAAE4B,GAA8D,OAA3D6D,EAAEivB,GAAE8qJ,UAAU+B,GAAG3mH,OAAOn1D,EAAEzF,EAAE4B,IAAKwJ,KAAK,SAAS6hK,EAAGrrK,GAAG88K,GAAGj5K,GAAUA,EAAE,IAAIg8K,GAAG,KAAKC,GAAG,KAAK,SAASC,GAAGl8K,GAAGkvK,GAAGlvK,GAAG,SAASm8K,GAAGn8K,GAAe,GAAGirK,GAATsN,GAAGv4K,IAAY,OAAOA,EAAE,SAASo8K,GAAGp8K,EAAEzF,GAAG,GAAG,WAAWyF,EAAE,OAAOzF,EAAE,IAAI8hL,IAAG,EAC9Y,SAASC,KAAKN,KAAKA,GAAGO,YAAY,mBAAmBC,IAAIP,GAAGD,GAAG,MAAM,SAASQ,GAAGx8K,GAAG,GAAG,UAAUA,EAAE0oK,cAAcyT,GAAGF,IAAI,GAAGj8K,EAAE+7K,GAAGE,GAAGj8K,EAAEmvK,GAAGnvK,IAAI8nK,EAAGoH,GAAGlvK,OAAO,CAAC8nK,GAAG,EAAG,IAAIJ,EAAGwU,GAAGl8K,GAAG,QAAQ8nK,GAAG,EAAGE,MAAO,SAASyU,GAAGz8K,EAAEzF,EAAE4B,GAAG,UAAU6D,GAAGs8K,KAAUL,GAAG9/K,GAAR6/K,GAAGzhL,GAAUwzJ,YAAY,mBAAmByuB,KAAK,SAASx8K,GAAGs8K,KAAK,SAASI,GAAG18K,GAAG,GAAG,oBAAoBA,GAAG,UAAUA,GAAG,YAAYA,EAAE,OAAOm8K,GAAGF,IAAI,SAASU,GAAG38K,EAAEzF,GAAG,GAAG,UAAUyF,EAAE,OAAOm8K,GAAG5hL,GAAG,SAASqiL,GAAG58K,EAAEzF,GAAG,GAAG,UAAUyF,GAAG,WAAWA,EAAE,OAAOm8K,GAAG5hL,GAD/E2sK,IAAKmV,GAAG/M,GAAG,YAAY97J,SAASknK,cAAc,EAAElnK,SAASknK,eAE1c,IAAImC,GAAG,CAACnW,WAAWoV,GAAGgB,uBAAuBT,GAAG5V,cAAc,SAASzmK,EAAEzF,EAAE4B,EAAE7B,GAAG,IAAIsB,EAAErB,EAAEg+K,GAAGh+K,GAAGgZ,OAAOtV,EAAErC,EAAEyrG,UAAUzrG,EAAEyrG,SAASnuE,cAAc,GAAG,WAAWj7B,GAAG,UAAUA,GAAG,SAASrC,EAAE+J,KAAK,IAAIxH,EAAEi+K,QAAQ,GAAGP,GAAGjgL,GAAG,GAAGygL,GAAGl+K,EAAEy+K,OAAO,CAACz+K,EAAEu+K,GAAG,IAAI/vJ,EAAE8vJ,QAAQx+K,EAAErC,EAAEyrG,WAAW,UAAUppG,EAAEi7B,gBAAgB,aAAat9B,EAAE+J,MAAM,UAAU/J,EAAE+J,QAAQxH,EAAEw+K,IAAI,GAAGx+K,IAAIA,EAAEA,EAAE6B,EAAEzF,IAAI,OAAOwhL,GAAG59K,EAAEhC,EAAE7B,GAAGqyB,GAAGA,EAAE3sB,EAAEpE,EAAErB,GAAG,SAASyF,IAAIA,EAAEpE,EAAEwvK,gBAAgBprK,EAAEurK,YAAY,WAAW3vK,EAAE+J,MAAM+lK,GAAG9vK,EAAE,SAASA,EAAE4B,SAASu/K,GAAG9tJ,GAAE0nF,OAAO,CAACqmE,KAAK,KAAK3B,OAAO,OACrf4B,GAAG,CAACC,IAAI,SAASC,QAAQ,UAAUC,KAAK,UAAUC,MAAM,YAAY,SAASC,GAAGt9K,GAAG,IAAIzF,EAAEU,KAAKiiB,YAAY,OAAO3iB,EAAEgjL,iBAAiBhjL,EAAEgjL,iBAAiBv9K,MAAIA,EAAEi9K,GAAGj9K,OAAMzF,EAAEyF,GAAM,SAASm4B,KAAK,OAAOmlJ,GACnM,IAAIE,GAAG,EAAEC,GAAG,EAAEC,IAAG,EAAGC,IAAG,EAAGC,GAAGb,GAAGpmE,OAAO,CAACknE,QAAQ,KAAKC,QAAQ,KAAKhiK,QAAQ,KAAKE,QAAQ,KAAK+hK,MAAM,KAAKC,MAAM,KAAKtsK,QAAQ,KAAKC,SAAS,KAAKF,OAAO,KAAKD,QAAQ,KAAK+rK,iBAAiBplJ,GAAG5mB,OAAO,KAAK0sK,QAAQ,KAAKC,cAAc,SAASl+K,GAAG,OAAOA,EAAEk+K,gBAAgBl+K,EAAEm+K,cAAcn+K,EAAEovK,WAAWpvK,EAAEo+K,UAAUp+K,EAAEm+K,cAAcE,UAAU,SAASr+K,GAAG,GAAG,cAAcA,EAAE,OAAOA,EAAEq+K,UAAU,IAAI9jL,EAAEijL,GAAgB,OAAbA,GAAGx9K,EAAE69K,QAAeH,GAAG,cAAc19K,EAAE2F,KAAK3F,EAAE69K,QAAQtjL,EAAE,GAAGmjL,IAAG,EAAG,IAAIY,UAAU,SAASt+K,GAAG,GAAG,cAAcA,EAAE,OAAOA,EAAEs+K,UAC3f,IAAI/jL,EAAEkjL,GAAgB,OAAbA,GAAGz9K,EAAE89K,QAAeH,GAAG,cAAc39K,EAAE2F,KAAK3F,EAAE89K,QAAQvjL,EAAE,GAAGojL,IAAG,EAAG,MAAMY,GAAGX,GAAGjnE,OAAO,CAACw6D,UAAU,KAAK7xJ,MAAM,KAAKrJ,OAAO,KAAKuoK,SAAS,KAAKC,mBAAmB,KAAKC,MAAM,KAAKC,MAAM,KAAKC,MAAM,KAAKC,YAAY,KAAKC,UAAU,OAAO/uJ,GAAG,CAACgvJ,WAAW,CAAClY,iBAAiB,eAAeG,aAAa,CAAC,WAAW,cAAcgY,WAAW,CAACnY,iBAAiB,eAAeG,aAAa,CAAC,WAAW,cAAciY,aAAa,CAACpY,iBAAiB,iBAAiBG,aAAa,CAAC,aAAa,gBAAgBkY,aAAa,CAACrY,iBAAiB,iBACjhBG,aAAa,CAAC,aAAa,iBAAiBmY,GAAG,CAACzY,WAAW32I,GAAG02I,cAAc,SAASzmK,EAAEzF,EAAE4B,EAAE7B,EAAEsB,GAAG,IAAIqC,EAAE,cAAc+B,GAAG,gBAAgBA,EAAE7B,EAAE,aAAa6B,GAAG,eAAeA,EAAE,GAAG/B,GAAG,KAAO,GAAFrC,KAAQO,EAAE+hL,eAAe/hL,EAAEgiL,eAAehgL,IAAIF,EAAE,OAAO,MAAKA,EAAE3D,EAAEiZ,SAASjZ,EAAEA,GAAG2D,EAAE3D,EAAEk+F,eAAev6F,EAAEw6F,aAAax6F,EAAEmhL,aAAa7rK,OAAUpV,IAAMA,EAAE5D,EAAgD,QAA9CA,GAAGA,EAAE4B,EAAE+hL,eAAe/hL,EAAEiiL,WAAWpO,GAAGz1K,GAAG,QAA8BA,IAATyzK,GAAGzzK,IAAa,IAAIA,EAAEshG,KAAK,IAAIthG,EAAEshG,OAAIthG,EAAE,OAAW4D,EAAE,KAAK,GAAGA,IAAI5D,EAAE,OAAO,KAAK,GAAG,aAAayF,GAAG,cACzeA,EAAG,IAAIb,EAAEy+K,GAAOr9K,EAAEwvB,GAAGivJ,WAAe9/K,EAAE6wB,GAAGgvJ,WAAepkL,EAAE,YAAgB,eAAeqF,GAAG,gBAAgBA,IAAEb,EAAEo/K,GAAGh+K,EAAEwvB,GAAGmvJ,aAAahgL,EAAE6wB,GAAGkvJ,aAAatkL,EAAE,WAAgM,GAAtLqF,EAAE,MAAM7B,EAAEF,EAAEs6K,GAAGp6K,GAAGF,EAAE,MAAM1D,EAAE0D,EAAEs6K,GAAGh+K,IAAGgG,EAAEpB,EAAE46K,UAAUx5K,EAAEpC,EAAEhC,EAAE7B,IAAKqL,KAAKhL,EAAE,QAAQ4F,EAAEjH,OAAO0G,EAAEO,EAAE29K,cAAcjgL,GAAE9B,EAAEgD,EAAE46K,UAAU76K,EAAE3E,EAAE4B,EAAE7B,IAAKqL,KAAKhL,EAAE,QAAQwB,EAAE7C,OAAO2E,EAAE9B,EAAE+hL,cAAcl+K,EAAMrF,EAAEJ,GAAND,EAAE6D,IAAYxD,EAAEqF,EAAE,CAAa,IAARd,EAAEvE,EAAEwD,EAAE,EAAM6B,EAAhBb,EAAE7E,EAAkB0F,EAAEA,EAAEy4K,GAAGz4K,GAAG7B,IAAQ,IAAJ6B,EAAE,EAAMzF,EAAE2E,EAAE3E,EAAEA,EAAEk+K,GAAGl+K,GAAGyF,IAAI,KAAK,EAAE7B,EAAE6B,GAAGb,EAAEs5K,GAAGt5K,GAAGhB,IAAI,KAAK,EAAE6B,EAAE7B,GAAGe,EAAEu5K,GAAGv5K,GAAGc,IAAI,KAAK7B,KAAK,CAAC,GAAGgB,IAAID,GAAGC,IAAID,EAAE+uK,UAAU,MAAMjuK,EAC3fb,EAAEs5K,GAAGt5K,GAAGD,EAAEu5K,GAAGv5K,GAAGC,EAAE,UAAUA,EAAE,KAAS,IAAJD,EAAEC,EAAMA,EAAE,GAAG7E,GAAGA,IAAI4E,IAAqB,QAAjBf,EAAE7D,EAAE2zK,YAAuB9vK,IAAIe,IAAQC,EAAEJ,KAAKzE,GAAGA,EAAEm+K,GAAGn+K,GAAG,IAAIA,EAAE,GAAGK,GAAGA,IAAIuE,IAAqB,QAAjBf,EAAExD,EAAEszK,YAAuB9vK,IAAIe,IAAQ5E,EAAEyE,KAAKpE,GAAGA,EAAE89K,GAAG99K,GAAG,IAAIA,EAAE,EAAEA,EAAEwE,EAAE1F,OAAOkB,IAAIo+K,GAAG55K,EAAExE,GAAG,UAAU4F,GAAG,IAAI5F,EAAEL,EAAEb,OAAO,EAAEkB,KAAKo+K,GAAGz+K,EAAEK,GAAG,WAAWwB,GAAG,OAAO,KAAO,GAAFP,GAAM,CAAC2E,GAAG,CAACA,EAAEpE,KAAqE,IAAIkjL,GAAG,oBAAoBvlL,OAAOkwG,GAAGlwG,OAAOkwG,GAA5G,SAAYhqG,EAAEzF,GAAG,OAAOyF,IAAIzF,IAAI,IAAIyF,GAAG,EAAEA,IAAI,EAAEzF,IAAIyF,IAAIA,GAAGzF,IAAIA,GAAoD+kL,GAAGxlL,OAAOM,UAAUQ,eAC7b,SAAS2kL,GAAGv/K,EAAEzF,GAAG,GAAG8kL,GAAGr/K,EAAEzF,GAAG,OAAM,EAAG,GAAG,kBAAkByF,GAAG,OAAOA,GAAG,kBAAkBzF,GAAG,OAAOA,EAAE,OAAM,EAAG,IAAI4B,EAAErC,OAAOqL,KAAKnF,GAAG1F,EAAER,OAAOqL,KAAK5K,GAAG,GAAG4B,EAAE1C,SAASa,EAAEb,OAAO,OAAM,EAAG,IAAIa,EAAE,EAAEA,EAAE6B,EAAE1C,OAAOa,IAAI,IAAIglL,GAAGzkL,KAAKN,EAAE4B,EAAE7B,MAAM+kL,GAAGr/K,EAAE7D,EAAE7B,IAAIC,EAAE4B,EAAE7B,KAAK,OAAM,EAAG,OAAM,EACpQ,IAAIklL,GAAGtY,GAAI,iBAAiB1zJ,UAAU,IAAIA,SAASknK,aAAa+E,GAAG,CAAClkF,OAAO,CAACqrE,wBAAwB,CAAC2L,QAAQ,WAAWC,SAAS,mBAAmBxL,aAAa,iFAAiF5rI,MAAM,OAAOskJ,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,IAAG,EAC1R,SAASC,GAAG9/K,EAAEzF,GAAG,IAAI4B,EAAE5B,EAAEgZ,SAAShZ,EAAEA,EAAEiZ,SAAS,IAAIjZ,EAAEqtG,SAASrtG,EAAEA,EAAEi+F,cAAc,OAAGqnF,IAAI,MAAMH,IAAIA,KAAK/I,GAAGx6K,GAAU,MAAU,mBAALA,EAAEujL,KAAyBtI,GAAGj7K,GAAGA,EAAE,CAACsG,MAAMtG,EAAE4jL,eAAer9K,IAAIvG,EAAE6jL,cAAuF7jL,EAAE,CAAC8jL,YAA3E9jL,GAAGA,EAAEq8F,eAAer8F,EAAEq8F,cAAcC,aAAallF,QAAQ2sK,gBAA+BD,WAAWE,aAAahkL,EAAEgkL,aAAaC,UAAUjkL,EAAEikL,UAAUC,YAAYlkL,EAAEkkL,aAAqBT,IAAIL,GAAGK,GAAGzjL,GAAG,MAAMyjL,GAAGzjL,GAAE6D,EAAEivB,GAAE8qJ,UAAU0F,GAAGlkF,OAAOokF,GAAG3/K,EAAEzF,IAAKoL,KAAK,SAAS3F,EAAE1G,OAAOomL,GAAGzG,GAAGj5K,GAAGA,IAC1d,IAAIsgL,GAAG,CAAC5Z,WAAW+Y,GAAGhZ,cAAc,SAASzmK,EAAEzF,EAAE4B,EAAE7B,EAAEsB,EAAEqC,GAAmE,KAAKA,IAArErC,EAAEqC,IAAI3D,EAAEiZ,SAASjZ,EAAEA,EAAEkZ,SAAS,IAAIlZ,EAAEstG,SAASttG,EAAEA,EAAEk+F,iBAA0B,CAACx4F,EAAE,CAACpE,EAAEmyK,GAAGnyK,GAAGqC,EAAE8oK,EAAGwZ,SAAS,IAAI,IAAIpiL,EAAE,EAAEA,EAAEF,EAAExE,OAAO0E,IAAI,IAAIvC,EAAEoG,IAAI/D,EAAEE,IAAI,CAACvC,GAAE,EAAG,MAAMoE,EAAEpE,GAAE,EAAGqC,GAAGrC,EAAE,GAAGqC,EAAE,OAAO,KAAsB,OAAjBrC,EAAErB,EAAEg+K,GAAGh+K,GAAGgZ,OAAcvT,GAAG,IAAK,SAAW67K,GAAGjgL,IAAI,SAASA,EAAEy7K,mBAAgBqI,GAAG9jL,EAAE+jL,GAAGplL,EAAEqlL,GAAG,MAAK,MAAM,IAAK,OAAOA,GAAGD,GAAGD,GAAG,KAAK,MAAM,IAAK,YAAYG,IAAG,EAAG,MAAM,IAAK,cAAc,IAAK,UAAU,IAAK,UAAU,OAAOA,IAAG,EAAGC,GAAG3jL,EAAE7B,GAAG,IAAK,kBAAkB,GAAGklL,GAAG,MACxf,IAAK,UAAU,IAAK,QAAQ,OAAOM,GAAG3jL,EAAE7B,GAAG,OAAO,OAAOkmL,GAAGvxJ,GAAE0nF,OAAO,CAAC8pE,cAAc,KAAKC,YAAY,KAAKC,cAAc,OAAOC,GAAG3xJ,GAAE0nF,OAAO,CAACkqE,cAAc,SAAS7gL,GAAG,MAAM,kBAAkBA,EAAEA,EAAE6gL,cAActtK,OAAOstK,iBAAiBxtD,GAAG0pD,GAAGpmE,OAAO,CAACunE,cAAc,OAAO,SAAS4C,GAAG9gL,GAAG,IAAIzF,EAAEyF,EAAEo7K,QAA+E,MAAvE,aAAap7K,EAAgB,KAAbA,EAAEA,EAAE+gL,WAAgB,KAAKxmL,IAAIyF,EAAE,IAAKA,EAAEzF,EAAE,KAAKyF,IAAIA,EAAE,IAAW,IAAIA,GAAG,KAAKA,EAAEA,EAAE,EACxY,IAAIghL,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,CAAC,EAAE,YAAY,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,WAAW,GAAG,SAAS,GAAG,IAAI,GAAG,SAAS,GAAG,WAAW,GAAG,MAAM,GAAG,OAAO,GAAG,YAAY,GAAG,UAAU,GAAG,aAAa,GAAG,YAAY,GAAG,SAAS,GAAG,SAAS,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAChf,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,IAAI,UAAU,IAAI,aAAa,IAAI,QAAQC,GAAG/E,GAAGpmE,OAAO,CAAC38G,IAAI,SAASgG,GAAG,GAAGA,EAAEhG,IAAI,CAAC,IAAIO,EAAEymL,GAAGhhL,EAAEhG,MAAMgG,EAAEhG,IAAI,GAAG,iBAAiBO,EAAE,OAAOA,EAAE,MAAM,aAAayF,EAAE2F,KAAc,MAAR3F,EAAE8gL,GAAG9gL,IAAU,QAAQjF,OAAO8kG,aAAa7/F,GAAI,YAAYA,EAAE2F,MAAM,UAAU3F,EAAE2F,KAAKk8K,GAAG7hL,EAAEo7K,UAAU,eAAe,IAAIvwK,SAAS,KAAK6G,QAAQ,KAAKC,SAAS,KAAKF,OAAO,KAAKD,QAAQ,KAAK9M,OAAO,KAAK2E,OAAO,KAAKk0K,iBAAiBplJ,GAAG4oJ,SAAS,SAAS/gL,GAAG,MAAM,aAC9eA,EAAE2F,KAAKm7K,GAAG9gL,GAAG,GAAGo7K,QAAQ,SAASp7K,GAAG,MAAM,YAAYA,EAAE2F,MAAM,UAAU3F,EAAE2F,KAAK3F,EAAEo7K,QAAQ,GAAGI,MAAM,SAASx7K,GAAG,MAAM,aAAaA,EAAE2F,KAAKm7K,GAAG9gL,GAAG,YAAYA,EAAE2F,MAAM,UAAU3F,EAAE2F,KAAK3F,EAAEo7K,QAAQ,KAAK2G,GAAGnE,GAAGjnE,OAAO,CAACqrE,aAAa,OAAOC,GAAGlF,GAAGpmE,OAAO,CAAC/oE,QAAQ,KAAK/xB,cAAc,KAAKqmK,eAAe,KAAKzwK,OAAO,KAAKD,QAAQ,KAAKE,QAAQ,KAAKC,SAAS,KAAK4rK,iBAAiBplJ,KAAKgqJ,GAAGlzJ,GAAE0nF,OAAO,CAAC+xD,aAAa,KAAKgY,YAAY,KAAKC,cAAc,OAAOyB,GAAGxE,GAAGjnE,OAAO,CAAChmD,OAAO,SAAS3wD,GAAG,MAAM,WAAWA,EAAEA,EAAE2wD,OAAO,gBAClf3wD,GAAGA,EAAEqiL,YAAY,GAAGzxH,OAAO,SAAS5wD,GAAG,MAAM,WAAWA,EAAEA,EAAE4wD,OAAO,gBAAgB5wD,GAAGA,EAAEsiL,YAAY,eAAetiL,GAAGA,EAAEuiL,WAAW,GAAGC,OAAO,KAAKC,UAAU,OAAOC,GAAG,CAAChc,WAAWwL,GAAGzL,cAAc,SAASzmK,EAAEzF,EAAE4B,EAAE7B,GAAG,IAAIsB,EAAEu2K,GAAG7yK,IAAIU,GAAG,IAAIpE,EAAE,OAAO,KAAK,OAAOoE,GAAG,IAAK,WAAW,GAAG,IAAI8gL,GAAG3kL,GAAG,OAAO,KAAK,IAAK,UAAU,IAAK,QAAQ6D,EAAE8hL,GAAG,MAAM,IAAK,OAAO,IAAK,QAAQ9hL,EAAEqzH,GAAG,MAAM,IAAK,QAAQ,GAAG,IAAIl3H,EAAEoV,OAAO,OAAO,KAAK,IAAK,WAAW,IAAK,WAAW,IAAK,YAAY,IAAK,YAAY,IAAK,UAAU,IAAK,WAAW,IAAK,YAAY,IAAK,cAAcvR,EACniB49K,GAAG,MAAM,IAAK,OAAO,IAAK,UAAU,IAAK,YAAY,IAAK,WAAW,IAAK,YAAY,IAAK,WAAW,IAAK,YAAY,IAAK,OAAO59K,EAAE+hL,GAAG,MAAM,IAAK,cAAc,IAAK,WAAW,IAAK,YAAY,IAAK,aAAa/hL,EAAEiiL,GAAG,MAAM,KAAKxU,GAAG,KAAKC,GAAG,KAAKC,GAAG3tK,EAAEwgL,GAAG,MAAM,KAAK5S,GAAG5tK,EAAEmiL,GAAG,MAAM,IAAK,SAASniL,EAAE+8K,GAAG,MAAM,IAAK,QAAQ/8K,EAAEoiL,GAAG,MAAM,IAAK,OAAO,IAAK,MAAM,IAAK,QAAQpiL,EAAE4gL,GAAG,MAAM,IAAK,oBAAoB,IAAK,qBAAqB,IAAK,gBAAgB,IAAK,cAAc,IAAK,cAAc,IAAK,aAAa,IAAK,cAAc,IAAK,YAAY5gL,EACzhBu+K,GAAG,MAAM,QAAQv+K,EAAEivB,GAA+B,OAANgqJ,GAAvB1+K,EAAEyF,EAAE+5K,UAAUn+K,EAAErB,EAAE4B,EAAE7B,IAAgBC,IAAI,GAAG8rK,EAAG,MAAMngK,MAAMm9J,EAAE,MAAMgD,EAAG3rK,MAAMN,UAAUoG,MAAM3F,KAAK,0HAA0HugC,MAAM,MAAMmrI,IAAeP,EAAGwS,GAAGvS,EAAToL,GAAenL,EAAGqS,GAAGtR,EAAG,CAAC0b,kBAAkBD,GAAGE,sBAAsBzD,GAAG0D,kBAAkBhG,GAAGiG,kBAAkBxC,GAAGyC,uBAAuBxH,KAAK,IAAIyH,GAAG,GAAGC,IAAI,EAAE,SAAS/zJ,GAAElvB,GAAG,EAAEijL,KAAKjjL,EAAEwV,QAAQwtK,GAAGC,IAAID,GAAGC,IAAI,KAAKA,MACtd,SAAS9zJ,GAAEnvB,EAAEzF,GAAG0oL,KAAKD,GAAGC,IAAIjjL,EAAEwV,QAAQxV,EAAEwV,QAAQjb,EAAE,IAAI2oL,GAAG,GAAG9zJ,GAAE,CAAC5Z,QAAQ0tK,IAAIl0J,GAAE,CAACxZ,SAAQ,GAAI2tK,GAAGD,GAAG,SAASE,GAAGpjL,EAAEzF,GAAG,IAAI4B,EAAE6D,EAAE2F,KAAK+gH,aAAa,IAAIvqH,EAAE,OAAO+mL,GAAG,IAAI5oL,EAAE0F,EAAEunK,UAAU,GAAGjtK,GAAGA,EAAE+oL,8CAA8C9oL,EAAE,OAAOD,EAAEgpL,0CAA0C,IAASrlL,EAALrC,EAAE,GAAK,IAAIqC,KAAK9B,EAAEP,EAAEqC,GAAG1D,EAAE0D,GAAoH,OAAjH3D,KAAI0F,EAAEA,EAAEunK,WAAY8b,4CAA4C9oL,EAAEyF,EAAEsjL,0CAA0C1nL,GAAUA,EAAE,SAASmzB,GAAE/uB,GAAyB,OAAO,QAA7BA,EAAEA,EAAEwmH,yBAAmC,IAASxmH,EAChf,SAASujL,KAAKr0J,GAAEF,IAAGE,GAAEE,IAAG,SAASo0J,GAAGxjL,EAAEzF,EAAE4B,GAAG,GAAGizB,GAAE5Z,UAAU0tK,GAAG,MAAMh9K,MAAMm9J,EAAE,MAAMl0I,GAAEC,GAAE70B,GAAG40B,GAAEH,GAAE7yB,GAAG,SAASsnL,GAAGzjL,EAAEzF,EAAE4B,GAAG,IAAI7B,EAAE0F,EAAEunK,UAAgC,GAAtBvnK,EAAEzF,EAAEisH,kBAAqB,oBAAoBlsH,EAAE+6I,gBAAgB,OAAOl5I,EAAwB,IAAI,IAAIP,KAA9BtB,EAAEA,EAAE+6I,kBAAiC,KAAKz5I,KAAKoE,GAAG,MAAMkG,MAAMm9J,EAAE,IAAI+G,GAAG7vK,IAAI,UAAUqB,IAAI,OAAOJ,EAAE,GAAGW,EAAE,GAAG7B,GAAG,SAASopL,GAAG1jL,GAAyG,OAAtGA,GAAGA,EAAEA,EAAEunK,YAAYvnK,EAAE2jL,2CAA2CT,GAAGC,GAAG/zJ,GAAE5Z,QAAQ2Z,GAAEC,GAAEpvB,GAAGmvB,GAAEH,GAAEA,GAAExZ,UAAe,EACpb,SAASouK,GAAG5jL,EAAEzF,EAAE4B,GAAG,IAAI7B,EAAE0F,EAAEunK,UAAU,IAAIjtK,EAAE,MAAM4L,MAAMm9J,EAAE,MAAMlnK,GAAG6D,EAAEyjL,GAAGzjL,EAAEzF,EAAE4oL,IAAI7oL,EAAEqpL,0CAA0C3jL,EAAEkvB,GAAEF,IAAGE,GAAEE,IAAGD,GAAEC,GAAEpvB,IAAIkvB,GAAEF,IAAGG,GAAEH,GAAE7yB,GACxJ,IAAI0nL,GAAGznL,EAAEm1K,yBAAyBuS,GAAG1nL,EAAE21K,0BAA0BgS,GAAG3nL,EAAE4nL,wBAAwBC,GAAG7nL,EAAE8nL,sBAAsBC,GAAG/nL,EAAEgoL,aAAaC,GAAGjoL,EAAEkoL,iCAAiCC,GAAGnoL,EAAEooL,2BAA2BC,GAAGroL,EAAEy2K,8BAA8B6R,GAAGtoL,EAAE41K,wBAAwB2S,GAAGvoL,EAAEwoL,qBAAqBC,GAAGzoL,EAAE0oL,sBAAsBC,GAAG,GAAGC,GAAG5oL,EAAE6oL,qBAAqBC,QAAG,IAASjB,GAAGA,GAAG,aAAakB,GAAG,KAAKC,GAAG,KAAKC,IAAG,EAAGC,GAAGnB,KAAKoB,GAAG,IAAID,GAAGnB,GAAG,WAAW,OAAOA,KAAKmB,IACvc,SAASE,KAAK,OAAOnB,MAAM,KAAKE,GAAG,OAAO,GAAG,KAAKE,GAAG,OAAO,GAAG,KAAKC,GAAG,OAAO,GAAG,KAAKC,GAAG,OAAO,GAAG,KAAKE,GAAG,OAAO,GAAG,QAAQ,MAAM3+K,MAAMm9J,EAAE,OAAQ,SAASoiB,GAAGzlL,GAAG,OAAOA,GAAG,KAAK,GAAG,OAAOukL,GAAG,KAAK,GAAG,OAAOE,GAAG,KAAK,GAAG,OAAOC,GAAG,KAAK,GAAG,OAAOC,GAAG,KAAK,GAAG,OAAOE,GAAG,QAAQ,MAAM3+K,MAAMm9J,EAAE,OAAQ,SAASqiB,GAAG1lL,EAAEzF,GAAW,OAARyF,EAAEylL,GAAGzlL,GAAU6jL,GAAG7jL,EAAEzF,GAAG,SAASorL,GAAG3lL,EAAEzF,EAAE4B,GAAW,OAAR6D,EAAEylL,GAAGzlL,GAAU8jL,GAAG9jL,EAAEzF,EAAE4B,GAAG,SAASypL,GAAG5lL,GAA8C,OAA3C,OAAOmlL,IAAIA,GAAG,CAACnlL,GAAGolL,GAAGtB,GAAGS,GAAGsB,KAAKV,GAAGpmL,KAAKiB,GAAU+kL,GAAG,SAASe,KAAK,GAAG,OAAOV,GAAG,CAAC,IAAIplL,EAAEolL,GAAGA,GAAG,KAAKrB,GAAG/jL,GAAG6lL,KAC/e,SAASA,KAAK,IAAIR,IAAI,OAAOF,GAAG,CAACE,IAAG,EAAG,IAAIrlL,EAAE,EAAE,IAAI,IAAIzF,EAAE4qL,GAAGO,GAAG,IAAG,WAAW,KAAK1lL,EAAEzF,EAAEd,OAAOuG,IAAI,CAAC,IAAI7D,EAAE5B,EAAEyF,GAAG,GAAG7D,EAAEA,GAAE,SAAU,OAAOA,OAAMgpL,GAAG,KAAK,MAAMhpL,GAAG,MAAM,OAAOgpL,KAAKA,GAAGA,GAAG3kL,MAAMR,EAAE,IAAI8jL,GAAGS,GAAGuB,IAAI3pL,EAAG,QAAQkpL,IAAG,IAAK,SAASU,GAAG/lL,EAAEzF,EAAE4B,GAAS,OAAO,YAAsC,IAAxB,WAAW6D,EAAEzF,EAAE,KAA1C4B,GAAG,IAA6C,IAAMA,EAAE,SAAS6pL,GAAGhmL,EAAEzF,GAAG,GAAGyF,GAAGA,EAAEof,aAAyC,IAAI,IAAIjjB,KAAnC5B,EAAEiB,EAAE,GAAGjB,GAAGyF,EAAEA,EAAEof,kBAA4B,IAAS7kB,EAAE4B,KAAK5B,EAAE4B,GAAG6D,EAAE7D,IAAI,OAAO5B,EAAE,IAAI0rL,GAAG,CAACzwK,QAAQ,MAAM0wK,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAK,SAASC,KAAKD,GAAGD,GAAGD,GAAG,KACle,SAASI,GAAGtmL,GAAG,IAAIzF,EAAE0rL,GAAGzwK,QAAQ0Z,GAAE+2J,IAAIjmL,EAAE2F,KAAKgiC,SAASo9H,cAAcxqK,EAAE,SAASgsL,GAAGvmL,EAAEzF,GAAG,KAAK,OAAOyF,GAAG,CAAC,IAAI7D,EAAE6D,EAAEiuK,UAAU,GAAGjuK,EAAEwmL,oBAAoBjsL,EAAEyF,EAAEwmL,oBAAoBjsL,EAAE,OAAO4B,GAAGA,EAAEqqL,oBAAoBjsL,IAAI4B,EAAEqqL,oBAAoBjsL,OAAQ,MAAG,OAAO4B,GAAGA,EAAEqqL,oBAAoBjsL,GAA+B,MAA7B4B,EAAEqqL,oBAAoBjsL,EAAayF,EAAEA,EAAE0qK,QAAQ,SAAS+b,GAAGzmL,EAAEzF,GAAG2rL,GAAGlmL,EAAEomL,GAAGD,GAAG,KAAsB,QAAjBnmL,EAAEA,EAAEgnK,eAAuB,OAAOhnK,EAAE0mL,eAAe1mL,EAAE2mL,gBAAgBpsL,IAAIqsL,IAAG,GAAI5mL,EAAE0mL,aAAa,MAClc,SAASG,GAAG7mL,EAAEzF,GAAG,GAAG6rL,KAAKpmL,IAAG,IAAKzF,GAAG,IAAIA,EAAmG,GAA7F,kBAAkBA,GAAG,aAAaA,IAAE6rL,GAAGpmL,EAAEzF,EAAE,YAAWA,EAAE,CAACiQ,QAAQxK,EAAE61I,aAAat7I,EAAEmD,KAAK,MAAS,OAAOyoL,GAAG,CAAC,GAAG,OAAOD,GAAG,MAAMhgL,MAAMm9J,EAAE,MAAM8iB,GAAG5rL,EAAE2rL,GAAGlf,aAAa,CAAC2f,eAAe,EAAED,aAAansL,EAAEusL,WAAW,WAAWX,GAAGA,GAAGzoL,KAAKnD,EAAE,OAAOyF,EAAE+kK,cAAc,IAAIgiB,IAAG,EAAG,SAASC,GAAGhnL,GAAGA,EAAEinL,YAAY,CAACC,UAAUlnL,EAAEouK,cAAc+Y,UAAU,KAAK3rI,OAAO,CAAC55B,QAAQ,MAAMmI,QAAQ,MACzZ,SAASq9J,GAAGpnL,EAAEzF,GAAGyF,EAAEA,EAAEinL,YAAY1sL,EAAE0sL,cAAcjnL,IAAIzF,EAAE0sL,YAAY,CAACC,UAAUlnL,EAAEknL,UAAUC,UAAUnnL,EAAEmnL,UAAU3rI,OAAOx7C,EAAEw7C,OAAOzxB,QAAQ/pB,EAAE+pB,UAAU,SAASs9J,GAAGrnL,EAAEzF,GAAoF,OAAjFyF,EAAE,CAAC2mL,eAAe3mL,EAAEsnL,eAAe/sL,EAAEshG,IAAI,EAAEuoC,QAAQ,KAAKntH,SAAS,KAAKvZ,KAAK,OAAeA,KAAKsC,EAAE,SAASunL,GAAGvnL,EAAEzF,GAAmB,GAAG,QAAnByF,EAAEA,EAAEinL,aAAwB,CAAY,IAAI9qL,GAAf6D,EAAEA,EAAEw7C,QAAe55B,QAAQ,OAAOzlB,EAAE5B,EAAEmD,KAAKnD,GAAGA,EAAEmD,KAAKvB,EAAEuB,KAAKvB,EAAEuB,KAAKnD,GAAGyF,EAAE4hB,QAAQrnB,GACpY,SAASitL,GAAGxnL,EAAEzF,GAAG,IAAI4B,EAAE6D,EAAEiuK,UAAU,OAAO9xK,GAAGirL,GAAGjrL,EAAE6D,GAAiC,QAAd7D,GAAhB6D,EAAEA,EAAEinL,aAAgBE,YAAoBnnL,EAAEmnL,UAAU5sL,EAAEmD,KAAKnD,EAAEA,EAAEmD,KAAKnD,IAAIA,EAAEmD,KAAKvB,EAAEuB,KAAKvB,EAAEuB,KAAKnD,GAClJ,SAASktL,GAAGznL,EAAEzF,EAAE4B,EAAE7B,GAAG,IAAIsB,EAAEoE,EAAEinL,YAAYF,IAAG,EAAG,IAAI9oL,EAAErC,EAAEurL,UAAUhpL,EAAEvC,EAAE4/C,OAAO55B,QAAQ,GAAG,OAAOzjB,EAAE,CAAC,GAAG,OAAOF,EAAE,CAAC,IAAI0uB,EAAE1uB,EAAEP,KAAKO,EAAEP,KAAKS,EAAET,KAAKS,EAAET,KAAKivB,EAAE1uB,EAAEE,EAAEvC,EAAE4/C,OAAO55B,QAAQ,KAAmB,QAAd+K,EAAE3sB,EAAEiuK,aAAqC,QAAhBthJ,EAAEA,EAAEs6J,eAAuBt6J,EAAEw6J,UAAUhpL,IAAI,GAAG,OAAOF,EAAE,CAAC0uB,EAAE1uB,EAAEP,KAAK,IAAIyB,EAAEvD,EAAEsrL,UAAU3mL,EAAE,EAAErB,EAAE,KAAKvE,EAAE,KAAK+I,EAAE,KAAK,GAAG,OAAOipB,EAAW,IAAR,IAAIwnC,EAAExnC,IAAI,CAAoB,IAAnBxuB,EAAEg2D,EAAEwyH,gBAAoBrsL,EAAE,CAAC,IAAIotL,EAAG,CAACf,eAAexyH,EAAEwyH,eAAeW,eAAenzH,EAAEmzH,eAAezrF,IAAI1nC,EAAE0nC,IAAIuoC,QAAQjwE,EAAEiwE,QAAQntH,SAASk9C,EAAEl9C,SAASvZ,KAAK,MAAM,OAAOgG,GAAG/I,EAAE+I,EACnfgkL,EAAGxoL,EAAEC,GAAGuE,EAAEA,EAAEhG,KAAKgqL,EAAGvpL,EAAEoC,IAAIA,EAAEpC,OAAO,CAAC,OAAOuF,IAAIA,EAAEA,EAAEhG,KAAK,CAACipL,eAAe,WAAWW,eAAenzH,EAAEmzH,eAAezrF,IAAI1nC,EAAE0nC,IAAIuoC,QAAQjwE,EAAEiwE,QAAQntH,SAASk9C,EAAEl9C,SAASvZ,KAAK,OAAOiqL,GAAGxpL,EAAEg2D,EAAEmzH,gBAAgBtnL,EAAE,CAAC,IAAIksB,EAAElsB,EAAE1E,EAAE64D,EAAW,OAATh2D,EAAE5D,EAAEmtL,EAAGvrL,EAASb,EAAEugG,KAAK,KAAK,EAAc,GAAG,oBAAf3vE,EAAE5wB,EAAE8oI,SAAiC,CAACjlI,EAAE+sB,EAAErxB,KAAK6sL,EAAGvoL,EAAEhB,GAAG,MAAM6B,EAAEb,EAAE+sB,EAAE,MAAMlsB,EAAE,KAAK,EAAEksB,EAAEgiJ,WAAuB,KAAbhiJ,EAAEgiJ,UAAgB,GAAG,KAAK,EAAuD,GAAG,QAA5C/vK,EAAE,oBAAd+tB,EAAE5wB,EAAE8oI,SAAgCl4G,EAAErxB,KAAK6sL,EAAGvoL,EAAEhB,GAAG+tB,SAAe,IAAS/tB,EAAE,MAAM6B,EAAEb,EAAE3D,EAAE,GAAG2D,EAAEhB,GAAG,MAAM6B,EAAE,KAAK,EAAE+mL,IAAG,GAAI,OAAO5yH,EAAEl9C,WAC5ejX,EAAEkuK,WAAW,GAAe,QAAZ/vK,EAAEvC,EAAEmuB,SAAiBnuB,EAAEmuB,QAAQ,CAACoqC,GAAGh2D,EAAEY,KAAKo1D,IAAa,GAAG,QAAZA,EAAEA,EAAEz2D,OAAkBy2D,IAAIxnC,EAAE,IAAsB,QAAnBxuB,EAAEvC,EAAE4/C,OAAO55B,SAAiB,MAAWuyC,EAAEl2D,EAAEP,KAAKS,EAAET,KAAKS,EAAET,KAAKivB,EAAE/wB,EAAEurL,UAAUlpL,EAAEE,EAAEvC,EAAE4/C,OAAO55B,QAAQ,MAAc,OAAOle,EAAExE,EAAEC,EAAEuE,EAAEhG,KAAK/C,EAAEiB,EAAEsrL,UAAUhoL,EAAEtD,EAAEurL,UAAUzjL,EAAEkkL,GAAGrnL,GAAGP,EAAE2mL,eAAepmL,EAAEP,EAAEouK,cAAcjvK,GACxS,SAAS0oL,GAAG7nL,EAAEzF,EAAE4B,GAA8B,GAA3B6D,EAAEzF,EAAEwvB,QAAQxvB,EAAEwvB,QAAQ,KAAQ,OAAO/pB,EAAE,IAAIzF,EAAE,EAAEA,EAAEyF,EAAEvG,OAAOc,IAAI,CAAC,IAAID,EAAE0F,EAAEzF,GAAGqB,EAAEtB,EAAE2c,SAAS,GAAG,OAAOrb,EAAE,CAAyB,GAAxBtB,EAAE2c,SAAS,KAAK3c,EAAEsB,EAAEA,EAAEO,EAAK,oBAAoB7B,EAAE,MAAM4L,MAAMm9J,EAAE,IAAI/oK,IAAIA,EAAEO,KAAKe,KAAK,IAAIksL,GAAG/e,EAAG3E,wBAAwB2jB,IAAI,IAAI9jB,EAAG73J,WAAW09F,KAAK,SAASk+E,GAAGhoL,EAAEzF,EAAE4B,EAAE7B,GAA8B6B,EAAE,QAAXA,EAAEA,EAAE7B,EAAtBC,EAAEyF,EAAEouK,sBAAmC,IAASjyK,EAAE5B,EAAEiB,EAAE,GAAGjB,EAAE4B,GAAG6D,EAAEouK,cAAcjyK,EAAE,IAAI6D,EAAE2mL,iBAAiB3mL,EAAEinL,YAAYC,UAAU/qL,GAC3Z,IAAI8rL,GAAG,CAACziD,UAAU,SAASxlI,GAAG,SAAOA,EAAEA,EAAEkoL,sBAAqBla,GAAGhuK,KAAKA,GAAMwjK,gBAAgB,SAASxjK,EAAEzF,EAAE4B,GAAG6D,EAAEA,EAAEkoL,oBAAoB,IAAI5tL,EAAE6tL,KAAKvsL,EAAEksL,GAAGzjB,UAAqBzoK,EAAEyrL,GAAd/sL,EAAE8tL,GAAG9tL,EAAE0F,EAAEpE,GAAUA,IAAKwoI,QAAQ7pI,OAAE,IAAS4B,GAAG,OAAOA,IAAIP,EAAEqb,SAAS9a,GAAGorL,GAAGvnL,EAAEpE,GAAGysL,GAAGroL,EAAE1F,IAAIipK,oBAAoB,SAASvjK,EAAEzF,EAAE4B,GAAG6D,EAAEA,EAAEkoL,oBAAoB,IAAI5tL,EAAE6tL,KAAKvsL,EAAEksL,GAAGzjB,UAAqBzoK,EAAEyrL,GAAd/sL,EAAE8tL,GAAG9tL,EAAE0F,EAAEpE,GAAUA,IAAKigG,IAAI,EAAEjgG,EAAEwoI,QAAQ7pI,OAAE,IAAS4B,GAAG,OAAOA,IAAIP,EAAEqb,SAAS9a,GAAGorL,GAAGvnL,EAAEpE,GAAGysL,GAAGroL,EAAE1F,IAAIgpK,mBAAmB,SAAStjK,EAAEzF,GAAGyF,EAAEA,EAAEkoL,oBAAoB,IAAI/rL,EAAEgsL,KAAK7tL,EAAEwtL,GAAGzjB,UACve/pK,EAAE+sL,GAAdlrL,EAAEisL,GAAGjsL,EAAE6D,EAAE1F,GAAUA,IAAKuhG,IAAI,OAAE,IAASthG,GAAG,OAAOA,IAAID,EAAE2c,SAAS1c,GAAGgtL,GAAGvnL,EAAE1F,GAAG+tL,GAAGroL,EAAE7D,KAAK,SAASmsL,GAAGtoL,EAAEzF,EAAE4B,EAAE7B,EAAEsB,EAAEqC,EAAEE,GAAiB,MAAM,oBAApB6B,EAAEA,EAAEunK,WAAsC55B,sBAAsB3tI,EAAE2tI,sBAAsBrzI,EAAE2D,EAAEE,IAAG5D,EAAEH,YAAWG,EAAEH,UAAUupK,wBAAsB4b,GAAGpjL,EAAE7B,KAAKilL,GAAG3jL,EAAEqC,IAC7Q,SAASsqL,GAAGvoL,EAAEzF,EAAE4B,GAAG,IAAI7B,GAAE,EAAGsB,EAAEsnL,GAAOjlL,EAAE1D,EAAEksH,YAA8W,MAAlW,kBAAkBxoH,GAAG,OAAOA,EAAEA,EAAE4oL,GAAG5oL,IAAIrC,EAAEmzB,GAAEx0B,GAAG4oL,GAAG/zJ,GAAE5Z,QAAyBvX,GAAG3D,EAAE,QAAtBA,EAAEC,EAAEmsH,oBAA4B,IAASpsH,GAAG8oL,GAAGpjL,EAAEpE,GAAGsnL,IAAI3oL,EAAE,IAAIA,EAAE4B,EAAE8B,GAAG+B,EAAEouK,cAAc,OAAO7zK,EAAEuH,YAAO,IAASvH,EAAEuH,MAAMvH,EAAEuH,MAAM,KAAKvH,EAAEkpK,QAAQwkB,GAAGjoL,EAAEunK,UAAUhtK,EAAEA,EAAE2tL,oBAAoBloL,EAAE1F,KAAI0F,EAAEA,EAAEunK,WAAY8b,4CAA4CznL,EAAEoE,EAAEsjL,0CAA0CrlL,GAAU1D,EAC9Z,SAASiuL,GAAGxoL,EAAEzF,EAAE4B,EAAE7B,GAAG0F,EAAEzF,EAAEuH,MAAM,oBAAoBvH,EAAE+6I,2BAA2B/6I,EAAE+6I,0BAA0Bn5I,EAAE7B,GAAG,oBAAoBC,EAAEkuL,kCAAkCluL,EAAEkuL,iCAAiCtsL,EAAE7B,GAAGC,EAAEuH,QAAQ9B,GAAGioL,GAAG1kB,oBAAoBhpK,EAAEA,EAAEuH,MAAM,MAC/P,SAAS4mL,GAAG1oL,EAAEzF,EAAE4B,EAAE7B,GAAG,IAAIsB,EAAEoE,EAAEunK,UAAU3rK,EAAErC,MAAM4C,EAAEP,EAAEkG,MAAM9B,EAAEouK,cAAcxyK,EAAEkuG,KAAKi+E,GAAGf,GAAGhnL,GAAG,IAAI/B,EAAE1D,EAAEksH,YAAY,kBAAkBxoH,GAAG,OAAOA,EAAErC,EAAE4O,QAAQq8K,GAAG5oL,IAAIA,EAAE8wB,GAAEx0B,GAAG4oL,GAAG/zJ,GAAE5Z,QAAQ5Z,EAAE4O,QAAQ44K,GAAGpjL,EAAE/B,IAAIwpL,GAAGznL,EAAE7D,EAAEP,EAAEtB,GAAGsB,EAAEkG,MAAM9B,EAAEouK,cAA2C,oBAA7BnwK,EAAE1D,EAAEssH,4BAAiDmhE,GAAGhoL,EAAEzF,EAAE0D,EAAE9B,GAAGP,EAAEkG,MAAM9B,EAAEouK,eAAe,oBAAoB7zK,EAAEssH,0BAA0B,oBAAoBjrH,EAAE+sL,yBAAyB,oBAAoB/sL,EAAEgtL,2BAA2B,oBAAoBhtL,EAAEitL,qBACtetuL,EAAEqB,EAAEkG,MAAM,oBAAoBlG,EAAEitL,oBAAoBjtL,EAAEitL,qBAAqB,oBAAoBjtL,EAAEgtL,2BAA2BhtL,EAAEgtL,4BAA4BruL,IAAIqB,EAAEkG,OAAOmmL,GAAG1kB,oBAAoB3nK,EAAEA,EAAEkG,MAAM,MAAM2lL,GAAGznL,EAAE7D,EAAEP,EAAEtB,GAAGsB,EAAEkG,MAAM9B,EAAEouK,eAAe,oBAAoBxyK,EAAE+P,oBAAoB3L,EAAEkuK,WAAW,GAAG,IAAI4a,GAAGpuL,MAAM8I,QAC3T,SAASulL,GAAG/oL,EAAEzF,EAAE4B,GAAW,GAAG,QAAX6D,EAAE7D,EAAE2T,MAAiB,oBAAoB9P,GAAG,kBAAkBA,EAAE,CAAC,GAAG7D,EAAE2nK,OAAO,CAAY,GAAX3nK,EAAEA,EAAE2nK,OAAY,CAAC,GAAG,IAAI3nK,EAAE0/F,IAAI,MAAM31F,MAAMm9J,EAAE,MAAM,IAAI/oK,EAAE6B,EAAEorK,UAAU,IAAIjtK,EAAE,MAAM4L,MAAMm9J,EAAE,IAAIrjK,IAAI,IAAIpE,EAAE,GAAGoE,EAAE,OAAG,OAAOzF,GAAG,OAAOA,EAAEuV,KAAK,oBAAoBvV,EAAEuV,KAAKvV,EAAEuV,IAAIk5K,aAAaptL,EAASrB,EAAEuV,MAAIvV,EAAE,SAASyF,GAAG,IAAIzF,EAAED,EAAEwvG,KAAKvvG,IAAIwtL,KAAKxtL,EAAED,EAAEwvG,KAAK,IAAI,OAAO9pG,SAASzF,EAAEqB,GAAGrB,EAAEqB,GAAGoE,IAAKgpL,WAAWptL,EAASrB,GAAE,GAAG,kBAAkByF,EAAE,MAAMkG,MAAMm9J,EAAE,MAAM,IAAIlnK,EAAE2nK,OAAO,MAAM59J,MAAMm9J,EAAE,IAAIrjK,IAAK,OAAOA,EAChe,SAASipL,GAAGjpL,EAAEzF,GAAG,GAAG,aAAayF,EAAE2F,KAAK,MAAMO,MAAMm9J,EAAE,GAAG,oBAAoBvpK,OAAOM,UAAU8mB,SAASrmB,KAAKN,GAAG,qBAAqBT,OAAOqL,KAAK5K,GAAGqK,KAAK,MAAM,IAAIrK,EAAE,KACpK,SAAS2uL,GAAGlpL,GAAG,SAASzF,EAAEA,EAAE4B,GAAG,GAAG6D,EAAE,CAAC,IAAI1F,EAAEC,EAAE4uL,WAAW,OAAO7uL,GAAGA,EAAE8uL,WAAWjtL,EAAE5B,EAAE4uL,WAAWhtL,GAAG5B,EAAE8uL,YAAY9uL,EAAE4uL,WAAWhtL,EAAEA,EAAEitL,WAAW,KAAKjtL,EAAE+xK,UAAU,GAAG,SAAS/xK,EAAEA,EAAE7B,GAAG,IAAI0F,EAAE,OAAO,KAAK,KAAK,OAAO1F,GAAGC,EAAE4B,EAAE7B,GAAGA,EAAEA,EAAEk0K,QAAQ,OAAO,KAAK,SAASl0K,EAAE0F,EAAEzF,GAAG,IAAIyF,EAAE,IAAI8W,IAAI,OAAOvc,GAAG,OAAOA,EAAEP,IAAIgG,EAAEkC,IAAI3H,EAAEP,IAAIO,GAAGyF,EAAEkC,IAAI3H,EAAE+T,MAAM/T,GAAGA,EAAEA,EAAEi0K,QAAQ,OAAOxuK,EAAE,SAASpE,EAAEoE,EAAEzF,GAAsC,OAAnCyF,EAAEspL,GAAGtpL,EAAEzF,IAAK+T,MAAM,EAAEtO,EAAEwuK,QAAQ,KAAYxuK,EAAE,SAAS/B,EAAE1D,EAAE4B,EAAE7B,GAAa,OAAVC,EAAE+T,MAAMhU,EAAM0F,EAA4B,QAAjB1F,EAAEC,EAAE0zK,YAA6B3zK,EAAEA,EAAEgU,OAAQnS,GAAG5B,EAAE2zK,UAClf,EAAE/xK,GAAG7B,GAAEC,EAAE2zK,UAAU,EAAS/xK,GADkaA,EACha,SAASgC,EAAE5D,GAA0C,OAAvCyF,GAAG,OAAOzF,EAAE0zK,YAAY1zK,EAAE2zK,UAAU,GAAU3zK,EAAE,SAASoyB,EAAE3sB,EAAEzF,EAAE4B,EAAE7B,GAAG,OAAG,OAAOC,GAAG,IAAIA,EAAEshG,MAAWthG,EAAEgvL,GAAGptL,EAAE6D,EAAE68B,KAAKviC,IAAKowK,OAAO1qK,EAAEzF,KAAEA,EAAEqB,EAAErB,EAAE4B,IAAKuuK,OAAO1qK,EAASzF,GAAE,SAAS4E,EAAEa,EAAEzF,EAAE4B,EAAE7B,GAAG,OAAG,OAAOC,GAAGA,EAAE6mD,cAAcjlD,EAAEwJ,OAAYrL,EAAEsB,EAAErB,EAAE4B,EAAE5C,QAASuW,IAAIi5K,GAAG/oL,EAAEzF,EAAE4B,GAAG7B,EAAEowK,OAAO1qK,EAAE1F,KAAEA,EAAEkvL,GAAGrtL,EAAEwJ,KAAKxJ,EAAEnC,IAAImC,EAAE5C,MAAM,KAAKyG,EAAE68B,KAAKviC,IAAKwV,IAAIi5K,GAAG/oL,EAAEzF,EAAE4B,GAAG7B,EAAEowK,OAAO1qK,EAAS1F,GAAE,SAASiG,EAAEP,EAAEzF,EAAE4B,EAAE7B,GAAG,OAAG,OAAOC,GAAG,IAAIA,EAAEshG,KAAKthG,EAAEgtK,UAAUwI,gBAAgB5zK,EAAE4zK,eAAex1K,EAAEgtK,UAAUkiB,iBACtettL,EAAEstL,iBAAsBlvL,EAAEmvL,GAAGvtL,EAAE6D,EAAE68B,KAAKviC,IAAKowK,OAAO1qK,EAAEzF,KAAEA,EAAEqB,EAAErB,EAAE4B,EAAEgQ,UAAU,KAAMu+J,OAAO1qK,EAASzF,GAAE,SAAS2E,EAAEc,EAAEzF,EAAE4B,EAAE7B,EAAE2D,GAAG,OAAG,OAAO1D,GAAG,IAAIA,EAAEshG,MAAWthG,EAAEovL,GAAGxtL,EAAE6D,EAAE68B,KAAKviC,EAAE2D,IAAKysK,OAAO1qK,EAAEzF,KAAEA,EAAEqB,EAAErB,EAAE4B,IAAKuuK,OAAO1qK,EAASzF,GAAE,SAASI,EAAEqF,EAAEzF,EAAE4B,GAAG,GAAG,kBAAkB5B,GAAG,kBAAkBA,EAAE,OAAOA,EAAEgvL,GAAG,GAAGhvL,EAAEyF,EAAE68B,KAAK1gC,IAAKuuK,OAAO1qK,EAAEzF,EAAE,GAAG,kBAAkBA,GAAG,OAAOA,EAAE,CAAC,OAAOA,EAAE0qH,UAAU,KAAKqkD,GAAG,OAAOntK,EAAEqtL,GAAGjvL,EAAEoL,KAAKpL,EAAEP,IAAIO,EAAEhB,MAAM,KAAKyG,EAAE68B,KAAK1gC,IAAK2T,IAAIi5K,GAAG/oL,EAAE,KAAKzF,GAAG4B,EAAEuuK,OAAO1qK,EAAE7D,EAAE,KAAKotK,GAAG,OAAOhvK,EAAEmvL,GAAGnvL,EAAEyF,EAAE68B,KAAK1gC,IAAKuuK,OAAO1qK,EAAEzF,EAAE,GAAGuuL,GAAGvuL,IACvf4vK,GAAG5vK,GAAG,OAAOA,EAAEovL,GAAGpvL,EAAEyF,EAAE68B,KAAK1gC,EAAE,OAAQuuK,OAAO1qK,EAAEzF,EAAE0uL,GAAGjpL,EAAEzF,GAAG,OAAO,KAAK,SAASmJ,EAAE1D,EAAEzF,EAAE4B,EAAE7B,GAAG,IAAIsB,EAAE,OAAOrB,EAAEA,EAAEP,IAAI,KAAK,GAAG,kBAAkBmC,GAAG,kBAAkBA,EAAE,OAAO,OAAOP,EAAE,KAAK+wB,EAAE3sB,EAAEzF,EAAE,GAAG4B,EAAE7B,GAAG,GAAG,kBAAkB6B,GAAG,OAAOA,EAAE,CAAC,OAAOA,EAAE8oH,UAAU,KAAKqkD,GAAG,OAAOntK,EAAEnC,MAAM4B,EAAEO,EAAEwJ,OAAO6jK,GAAGtqK,EAAEc,EAAEzF,EAAE4B,EAAE5C,MAAM4S,SAAS7R,EAAEsB,GAAGuD,EAAEa,EAAEzF,EAAE4B,EAAE7B,GAAG,KAAK,KAAKivK,GAAG,OAAOptK,EAAEnC,MAAM4B,EAAE2E,EAAEP,EAAEzF,EAAE4B,EAAE7B,GAAG,KAAK,GAAGwuL,GAAG3sL,IAAIguK,GAAGhuK,GAAG,OAAO,OAAOP,EAAE,KAAKsD,EAAEc,EAAEzF,EAAE4B,EAAE7B,EAAE,MAAM2uL,GAAGjpL,EAAE7D,GAAG,OAAO,KAAK,SAASg4D,EAAEn0D,EAAEzF,EAAE4B,EAAE7B,EAAEsB,GAAG,GAAG,kBAAkBtB,GAAG,kBAAkBA,EAAE,OAC5eqyB,EAAEpyB,EADifyF,EAClgBA,EAAEV,IAAInD,IAAI,KAAW,GAAG7B,EAAEsB,GAAG,GAAG,kBAAkBtB,GAAG,OAAOA,EAAE,CAAC,OAAOA,EAAE2qH,UAAU,KAAKqkD,GAAG,OAAOtpK,EAAEA,EAAEV,IAAI,OAAOhF,EAAEN,IAAImC,EAAE7B,EAAEN,MAAM,KAAKM,EAAEqL,OAAO6jK,GAAGtqK,EAAE3E,EAAEyF,EAAE1F,EAAEf,MAAM4S,SAASvQ,EAAEtB,EAAEN,KAAKmF,EAAE5E,EAAEyF,EAAE1F,EAAEsB,GAAG,KAAK2tK,GAAG,OAA2ChpK,EAAEhG,EAAtCyF,EAAEA,EAAEV,IAAI,OAAOhF,EAAEN,IAAImC,EAAE7B,EAAEN,MAAM,KAAWM,EAAEsB,GAAG,GAAGktL,GAAGxuL,IAAI6vK,GAAG7vK,GAAG,OAAwB4E,EAAE3E,EAAnByF,EAAEA,EAAEV,IAAInD,IAAI,KAAW7B,EAAEsB,EAAE,MAAMqtL,GAAG1uL,EAAED,GAAG,OAAO,KAAK,SAASotL,EAAG9rL,EAAEuC,EAAEwuB,EAAExtB,GAAG,IAAI,IAAIoB,EAAE,KAAKjF,EAAE,KAAK4D,EAAEf,EAAED,EAAEC,EAAE,EAAE6tB,EAAE,KAAK,OAAO9sB,GAAGhB,EAAEyuB,EAAElzB,OAAOyE,IAAI,CAACgB,EAAEoP,MAAMpQ,GAAG8tB,EAAE9sB,EAAEA,EAAE,MAAM8sB,EAAE9sB,EAAEsvK,QAAQ,IAAI5tK,EAAE8C,EAAE9H,EAAEsD,EAAEytB,EAAEzuB,GAAGiB,GAAG,GAAG,OAAOyB,EAAE,CAAC,OAAO1B,IAAIA,EAAE8sB,GAAG,MAAMhsB,GACtfd,GAAG,OAAO0B,EAAEqtK,WAAW1zK,EAAEqB,EAAEsD,GAAGf,EAAEF,EAAE2C,EAAEzC,EAAED,GAAG,OAAO5C,EAAEiF,EAAEK,EAAEtF,EAAEkzK,QAAQ5tK,EAAEtF,EAAEsF,EAAE1B,EAAE8sB,EAAE,GAAG9tB,IAAIyuB,EAAElzB,OAAO,OAAO0C,EAAEP,EAAEsD,GAAGqB,EAAE,GAAG,OAAOrB,EAAE,CAAC,KAAKhB,EAAEyuB,EAAElzB,OAAOyE,IAAkB,QAAdgB,EAAEvE,EAAEiB,EAAE+wB,EAAEzuB,GAAGiB,MAAchB,EAAEF,EAAEiB,EAAEf,EAAED,GAAG,OAAO5C,EAAEiF,EAAErB,EAAE5D,EAAEkzK,QAAQtvK,EAAE5D,EAAE4D,GAAG,OAAOqB,EAAE,IAAIrB,EAAE5E,EAAEsB,EAAEsD,GAAGhB,EAAEyuB,EAAElzB,OAAOyE,IAAsB,QAAlB8tB,EAAEmoC,EAAEj1D,EAAEtD,EAAEsC,EAAEyuB,EAAEzuB,GAAGiB,MAAca,GAAG,OAAOgsB,EAAEiiJ,WAAW/uK,EAAE+oC,OAAO,OAAOjc,EAAEhyB,IAAIkE,EAAE8tB,EAAEhyB,KAAKmE,EAAEF,EAAE+tB,EAAE7tB,EAAED,GAAG,OAAO5C,EAAEiF,EAAEyrB,EAAE1wB,EAAEkzK,QAAQxiJ,EAAE1wB,EAAE0wB,GAA4C,OAAzChsB,GAAGd,EAAEiJ,SAAQ,SAASnI,GAAG,OAAOzF,EAAEqB,EAAEoE,MAAYO,EAAE,SAAS2rB,EAAEtwB,EAAEuC,EAAEwuB,EAAEpsB,GAAG,IAAIpB,EAAEgrK,GAAGx9I,GAAG,GAAG,oBAAoBxtB,EAAE,MAAM+G,MAAMm9J,EAAE,MACve,GAAG,OAD0e12I,EAAExtB,EAAEtE,KAAK8xB,IAC3e,MAAMzmB,MAAMm9J,EAAE,MAAM,IAAI,IAAInkK,EAAEC,EAAE,KAAK7D,EAAE6C,EAAED,EAAEC,EAAE,EAAE6tB,EAAE,KAAKprB,EAAE+rB,EAAEjvB,OAAO,OAAOpC,IAAIsF,EAAE/C,KAAKK,IAAI0C,EAAE+rB,EAAEjvB,OAAO,CAACpC,EAAEgT,MAAMpQ,GAAG8tB,EAAE1wB,EAAEA,EAAE,MAAM0wB,EAAE1wB,EAAEkzK,QAAQ,IAAItiJ,EAAExoB,EAAE9H,EAAEN,EAAEsF,EAAEpD,MAAM+C,GAAG,GAAG,OAAO2rB,EAAE,CAAC,OAAO5wB,IAAIA,EAAE0wB,GAAG,MAAMhsB,GAAG1E,GAAG,OAAO4wB,EAAE+hJ,WAAW1zK,EAAEqB,EAAEN,GAAG6C,EAAEF,EAAEiuB,EAAE/tB,EAAED,GAAG,OAAOgB,EAAEC,EAAE+sB,EAAEhtB,EAAEsvK,QAAQtiJ,EAAEhtB,EAAEgtB,EAAE5wB,EAAE0wB,EAAE,GAAGprB,EAAE/C,KAAK,OAAO1B,EAAEP,EAAEN,GAAG6D,EAAE,GAAG,OAAO7D,EAAE,CAAC,MAAMsF,EAAE/C,KAAKK,IAAI0C,EAAE+rB,EAAEjvB,OAAwB,QAAjBkD,EAAEjG,EAAEiB,EAAEgF,EAAEpD,MAAM+C,MAAcpC,EAAEF,EAAE2C,EAAEzC,EAAED,GAAG,OAAOgB,EAAEC,EAAEyB,EAAE1B,EAAEsvK,QAAQ5tK,EAAE1B,EAAE0B,GAAG,OAAOzB,EAAE,IAAI7D,EAAEhB,EAAEsB,EAAEN,IAAIsF,EAAE/C,KAAKK,IAAI0C,EAAE+rB,EAAEjvB,OAA4B,QAArBkD,EAAEuzD,EAAE74D,EAAEM,EAAEsC,EAAE0C,EAAEpD,MAAM+C,MAAcP,GAAG,OAChfY,EAAEqtK,WAAW3yK,EAAE2sC,OAAO,OAAOrnC,EAAE5G,IAAIkE,EAAE0C,EAAE5G,KAAKmE,EAAEF,EAAE2C,EAAEzC,EAAED,GAAG,OAAOgB,EAAEC,EAAEyB,EAAE1B,EAAEsvK,QAAQ5tK,EAAE1B,EAAE0B,GAA4C,OAAzCZ,GAAG1E,EAAE6M,SAAQ,SAASnI,GAAG,OAAOzF,EAAEqB,EAAEoE,MAAYb,EAAE,OAAO,SAASa,EAAE1F,EAAE2D,EAAE0uB,GAAG,IAAIxtB,EAAE,kBAAkBlB,GAAG,OAAOA,GAAGA,EAAE0H,OAAO6jK,IAAI,OAAOvrK,EAAEjE,IAAImF,IAAIlB,EAAEA,EAAE1E,MAAM4S,UAAU,IAAI5L,EAAE,kBAAkBtC,GAAG,OAAOA,EAAE,GAAGsC,EAAE,OAAOtC,EAAEgnH,UAAU,KAAKqkD,GAAGtpK,EAAE,CAAS,IAARO,EAAEtC,EAAEjE,IAAQmF,EAAE7E,EAAE,OAAO6E,GAAG,CAAC,GAAGA,EAAEnF,MAAMuG,EAAE,CAAC,OAAOpB,EAAE08F,KAAK,KAAK,EAAE,GAAG59F,EAAE0H,OAAO6jK,GAAG,CAACrtK,EAAE6D,EAAEb,EAAEqvK,UAASl0K,EAAEsB,EAAEuD,EAAElB,EAAE1E,MAAM4S,WAAYu+J,OAAO1qK,EAAEA,EAAE1F,EAAE,MAAM0F,EAAE,MAAM,QAAQ,GAAGb,EAAEiiD,cAAcnjD,EAAE0H,KAAK,CAACxJ,EAAE6D,EACrfb,EAAEqvK,UAASl0K,EAAEsB,EAAEuD,EAAElB,EAAE1E,QAASuW,IAAIi5K,GAAG/oL,EAAEb,EAAElB,GAAG3D,EAAEowK,OAAO1qK,EAAEA,EAAE1F,EAAE,MAAM0F,GAAG7D,EAAE6D,EAAEb,GAAG,MAAW5E,EAAEyF,EAAEb,GAAGA,EAAEA,EAAEqvK,QAAQvwK,EAAE0H,OAAO6jK,KAAIlvK,EAAEqvL,GAAG1rL,EAAE1E,MAAM4S,SAASnM,EAAE68B,KAAKlQ,EAAE1uB,EAAEjE,MAAO0wK,OAAO1qK,EAAEA,EAAE1F,KAAIqyB,EAAE68J,GAAGvrL,EAAE0H,KAAK1H,EAAEjE,IAAIiE,EAAE1E,MAAM,KAAKyG,EAAE68B,KAAKlQ,IAAK7c,IAAIi5K,GAAG/oL,EAAE1F,EAAE2D,GAAG0uB,EAAE+9I,OAAO1qK,EAAEA,EAAE2sB,GAAG,OAAOxuB,EAAE6B,GAAG,KAAKupK,GAAGvpK,EAAE,CAAC,IAAIb,EAAElB,EAAEjE,IAAI,OAAOM,GAAG,CAAC,GAAGA,EAAEN,MAAMmF,EAAC,CAAC,GAAG,IAAI7E,EAAEuhG,KAAKvhG,EAAEitK,UAAUwI,gBAAgB9xK,EAAE8xK,eAAez1K,EAAEitK,UAAUkiB,iBAAiBxrL,EAAEwrL,eAAe,CAACttL,EAAE6D,EAAE1F,EAAEk0K,UAASl0K,EAAEsB,EAAEtB,EAAE2D,EAAEkO,UAAU,KAAMu+J,OAAO1qK,EAAEA,EAAE1F,EAAE,MAAM0F,EAAO7D,EAAE6D,EAAE1F,GAAG,MAAWC,EAAEyF,EAAE1F,GAAGA,EACnfA,EAAEk0K,SAAQl0K,EAAEovL,GAAGzrL,EAAE+B,EAAE68B,KAAKlQ,IAAK+9I,OAAO1qK,EAAEA,EAAE1F,EAAE,OAAO6D,EAAE6B,GAAG,GAAG,kBAAkB/B,GAAG,kBAAkBA,EAAE,OAAOA,EAAE,GAAGA,EAAE,OAAO3D,GAAG,IAAIA,EAAEuhG,KAAK1/F,EAAE6D,EAAE1F,EAAEk0K,UAASl0K,EAAEsB,EAAEtB,EAAE2D,IAAKysK,OAAO1qK,EAAEA,EAAE1F,IAAI6B,EAAE6D,EAAE1F,IAAGA,EAAEivL,GAAGtrL,EAAE+B,EAAE68B,KAAKlQ,IAAK+9I,OAAO1qK,EAAEA,EAAE1F,GAAG6D,EAAE6B,GAAG,GAAG8oL,GAAG7qL,GAAG,OAAOypL,EAAG1nL,EAAE1F,EAAE2D,EAAE0uB,GAAG,GAAGw9I,GAAGlsK,GAAG,OAAOiuB,EAAElsB,EAAE1F,EAAE2D,EAAE0uB,GAAc,GAAXpsB,GAAG0oL,GAAGjpL,EAAE/B,GAAM,qBAAqBA,IAAIkB,EAAE,OAAOa,EAAE67F,KAAK,KAAK,EAAE,KAAK,EAAE,MAAM77F,EAAEA,EAAE2F,KAAKO,MAAMm9J,EAAE,IAAIrjK,EAAE0K,aAAa1K,EAAE4F,MAAM,cAAe,OAAOzJ,EAAE6D,EAAE1F,IAAI,IAAIsvL,GAAGV,IAAG,GAAIW,GAAGX,IAAG,GAAIY,GAAG,GAAGC,GAAG,CAACv0K,QAAQs0K,IAAIE,GAAG,CAACx0K,QAAQs0K,IAAIG,GAAG,CAACz0K,QAAQs0K,IACjf,SAASrnF,GAAGziG,GAAG,GAAGA,IAAI8pL,GAAG,MAAM5jL,MAAMm9J,EAAE,MAAM,OAAOrjK,EAAE,SAASkqL,GAAGlqL,EAAEzF,GAAyC,OAAtC40B,GAAE86J,GAAG1vL,GAAG40B,GAAE66J,GAAGhqL,GAAGmvB,GAAE46J,GAAGD,IAAI9pL,EAAEzF,EAAEqtG,UAAmB,KAAK,EAAE,KAAK,GAAGrtG,GAAGA,EAAEA,EAAEitG,iBAAiBjtG,EAAEimK,aAAaiM,GAAG,KAAK,IAAI,MAAM,QAAkElyK,EAAEkyK,GAArClyK,GAAvByF,EAAE,IAAIA,EAAEzF,EAAEmyC,WAAWnyC,GAAMimK,cAAc,KAAKxgK,EAAEA,EAAEwhG,SAAkBtyE,GAAE66J,IAAI56J,GAAE46J,GAAGxvL,GAAG,SAAS4vL,KAAKj7J,GAAE66J,IAAI76J,GAAE86J,IAAI96J,GAAE+6J,IAAI,SAASG,GAAGpqL,GAAGyiG,GAAGwnF,GAAGz0K,SAAS,IAAIjb,EAAEkoG,GAAGsnF,GAAGv0K,SAAarZ,EAAEswK,GAAGlyK,EAAEyF,EAAE2F,MAAMpL,IAAI4B,IAAIgzB,GAAE66J,GAAGhqL,GAAGmvB,GAAE46J,GAAG5tL,IAAI,SAASkuL,GAAGrqL,GAAGgqL,GAAGx0K,UAAUxV,IAAIkvB,GAAE66J,IAAI76J,GAAE86J,KAAK,IAAIl7J,GAAE,CAACtZ,QAAQ,GACpd,SAAS80K,GAAGtqL,GAAG,IAAI,IAAIzF,EAAEyF,EAAE,OAAOzF,GAAG,CAAC,GAAG,KAAKA,EAAEshG,IAAI,CAAC,IAAI1/F,EAAE5B,EAAE6zK,cAAc,GAAG,OAAOjyK,IAAmB,QAAfA,EAAEA,EAAEkyK,aAAqBlyK,EAAEmd,OAAOg+J,IAAIn7K,EAAEmd,OAAOi+J,IAAI,OAAOh9K,OAAO,GAAG,KAAKA,EAAEshG,UAAK,IAASthG,EAAEgwL,cAAcC,aAAa,GAAG,KAAiB,GAAZjwL,EAAE2zK,WAAc,OAAO3zK,OAAO,GAAG,OAAOA,EAAEgV,MAAM,CAAChV,EAAEgV,MAAMm7J,OAAOnwK,EAAEA,EAAEA,EAAEgV,MAAM,SAAS,GAAGhV,IAAIyF,EAAE,MAAM,KAAK,OAAOzF,EAAEi0K,SAAS,CAAC,GAAG,OAAOj0K,EAAEmwK,QAAQnwK,EAAEmwK,SAAS1qK,EAAE,OAAO,KAAKzF,EAAEA,EAAEmwK,OAAOnwK,EAAEi0K,QAAQ9D,OAAOnwK,EAAEmwK,OAAOnwK,EAAEA,EAAEi0K,QAAQ,OAAO,KAAK,SAASic,GAAGzqL,EAAEzF,GAAG,MAAM,CAACmwL,UAAU1qL,EAAEzG,MAAMgB,GACve,IAAIowL,GAAG5hB,EAAG5E,uBAAuBymB,GAAG7hB,EAAG3E,wBAAwBhhF,GAAG,EAAEv0D,GAAE,KAAKD,GAAE,KAAK1xB,GAAE,KAAK2tL,IAAG,EAAG,SAASl8J,KAAI,MAAMzoB,MAAMm9J,EAAE,MAAO,SAASynB,GAAG9qL,EAAEzF,GAAG,GAAG,OAAOA,EAAE,OAAM,EAAG,IAAI,IAAI4B,EAAE,EAAEA,EAAE5B,EAAEd,QAAQ0C,EAAE6D,EAAEvG,OAAO0C,IAAI,IAAIkjL,GAAGr/K,EAAE7D,GAAG5B,EAAE4B,IAAI,OAAM,EAAG,OAAM,EAC/O,SAAS4uL,GAAG/qL,EAAEzF,EAAE4B,EAAE7B,EAAEsB,EAAEqC,GAAkI,GAA/HmlF,GAAGnlF,EAAE4wB,GAAEt0B,EAAEA,EAAE6zK,cAAc,KAAK7zK,EAAE0sL,YAAY,KAAK1sL,EAAEosL,eAAe,EAAEgE,GAAGn1K,QAAQ,OAAOxV,GAAG,OAAOA,EAAEouK,cAAc4c,GAAGC,GAAGjrL,EAAE7D,EAAE7B,EAAEsB,GAAMrB,EAAEosL,iBAAiBvjG,GAAG,CAACnlF,EAAE,EAAE,EAAE,CAAoB,GAAnB1D,EAAEosL,eAAe,IAAO,GAAG1oL,GAAG,MAAMiI,MAAMm9J,EAAE,MAAMplK,GAAG,EAAEf,GAAE0xB,GAAE,KAAKr0B,EAAE0sL,YAAY,KAAK0D,GAAGn1K,QAAQ01K,GAAGlrL,EAAE7D,EAAE7B,EAAEsB,SAASrB,EAAEosL,iBAAiBvjG,IAAkE,GAA9DunG,GAAGn1K,QAAQ21K,GAAG5wL,EAAE,OAAOq0B,IAAG,OAAOA,GAAElxB,KAAK0lF,GAAG,EAAElmF,GAAE0xB,GAAEC,GAAE,KAAKg8J,IAAG,EAAMtwL,EAAE,MAAM2L,MAAMm9J,EAAE,MAAM,OAAOrjK,EAC9Z,SAASorL,KAAK,IAAIprL,EAAE,CAACouK,cAAc,KAAK8Y,UAAU,KAAKC,UAAU,KAAK7uK,MAAM,KAAK5a,KAAK,MAA8C,OAAxC,OAAOR,GAAE2xB,GAAEu/I,cAAclxK,GAAE8C,EAAE9C,GAAEA,GAAEQ,KAAKsC,EAAS9C,GAAE,SAASmuL,KAAK,GAAG,OAAOz8J,GAAE,CAAC,IAAI5uB,EAAE6uB,GAAEo/I,UAAUjuK,EAAE,OAAOA,EAAEA,EAAEouK,cAAc,UAAUpuK,EAAE4uB,GAAElxB,KAAK,IAAInD,EAAE,OAAO2C,GAAE2xB,GAAEu/I,cAAclxK,GAAEQ,KAAK,GAAG,OAAOnD,EAAE2C,GAAE3C,EAAEq0B,GAAE5uB,MAAM,CAAC,GAAG,OAAOA,EAAE,MAAMkG,MAAMm9J,EAAE,MAAUrjK,EAAE,CAACouK,eAAPx/I,GAAE5uB,GAAqBouK,cAAc8Y,UAAUt4J,GAAEs4J,UAAUC,UAAUv4J,GAAEu4J,UAAU7uK,MAAMsW,GAAEtW,MAAM5a,KAAK,MAAM,OAAOR,GAAE2xB,GAAEu/I,cAAclxK,GAAE8C,EAAE9C,GAAEA,GAAEQ,KAAKsC,EAAE,OAAO9C,GAChe,SAASouL,GAAGtrL,EAAEzF,GAAG,MAAM,oBAAoBA,EAAEA,EAAEyF,GAAGzF,EAClD,SAASgxL,GAAGvrL,GAAG,IAAIzF,EAAE8wL,KAAKlvL,EAAE5B,EAAE+d,MAAM,GAAG,OAAOnc,EAAE,MAAM+J,MAAMm9J,EAAE,MAAMlnK,EAAEqvL,oBAAoBxrL,EAAE,IAAI1F,EAAEs0B,GAAEhzB,EAAEtB,EAAE6sL,UAAUlpL,EAAE9B,EAAEylB,QAAQ,GAAG,OAAO3jB,EAAE,CAAC,GAAG,OAAOrC,EAAE,CAAC,IAAIuC,EAAEvC,EAAE8B,KAAK9B,EAAE8B,KAAKO,EAAEP,KAAKO,EAAEP,KAAKS,EAAE7D,EAAE6sL,UAAUvrL,EAAEqC,EAAE9B,EAAEylB,QAAQ,KAAK,GAAG,OAAOhmB,EAAE,CAACA,EAAEA,EAAE8B,KAAKpD,EAAEA,EAAE4sL,UAAU,IAAIv6J,EAAExuB,EAAEF,EAAE,KAAKkB,EAAEvD,EAAE,EAAE,CAAC,IAAI2E,EAAEpB,EAAEwnL,eAAe,GAAGpmL,EAAE6iF,GAAG,CAAC,IAAIlkF,EAAE,CAACynL,eAAexnL,EAAEwnL,eAAeW,eAAenoL,EAAEmoL,eAAe1uE,OAAOz5G,EAAEy5G,OAAO6yE,aAAatsL,EAAEssL,aAAaC,WAAWvsL,EAAEusL,WAAWhuL,KAAK,MAAM,OAAOivB,GAAGxuB,EAAEwuB,EAAEztB,EAAEjB,EAAE3D,GAAGqyB,EAAEA,EAAEjvB,KAAKwB,EAAEqB,EAAEsuB,GAAE83J,iBAC9e93J,GAAE83J,eAAepmL,EAAEqnL,GAAGrnL,SAAS,OAAOosB,IAAIA,EAAEA,EAAEjvB,KAAK,CAACipL,eAAe,WAAWW,eAAenoL,EAAEmoL,eAAe1uE,OAAOz5G,EAAEy5G,OAAO6yE,aAAatsL,EAAEssL,aAAaC,WAAWvsL,EAAEusL,WAAWhuL,KAAK,OAAOiqL,GAAGpnL,EAAEpB,EAAEmoL,gBAAgBhtL,EAAE6E,EAAEssL,eAAezrL,EAAEb,EAAEusL,WAAW1rL,EAAE1F,EAAE6E,EAAEy5G,QAAQz5G,EAAEA,EAAEzB,WAAW,OAAOyB,GAAGA,IAAIvD,GAAG,OAAO+wB,EAAE1uB,EAAE3D,EAAEqyB,EAAEjvB,KAAKS,EAAEkhL,GAAG/kL,EAAEC,EAAE6zK,iBAAiBwY,IAAG,GAAIrsL,EAAE6zK,cAAc9zK,EAAEC,EAAE2sL,UAAUjpL,EAAE1D,EAAE4sL,UAAUx6J,EAAExwB,EAAEwvL,kBAAkBrxL,EAAE,MAAM,CAACC,EAAE6zK,cAAcjyK,EAAEupI,UACxb,SAASkmD,GAAG5rL,GAAG,IAAIzF,EAAE8wL,KAAKlvL,EAAE5B,EAAE+d,MAAM,GAAG,OAAOnc,EAAE,MAAM+J,MAAMm9J,EAAE,MAAMlnK,EAAEqvL,oBAAoBxrL,EAAE,IAAI1F,EAAE6B,EAAEupI,SAAS9pI,EAAEO,EAAEylB,QAAQ3jB,EAAE1D,EAAE6zK,cAAc,GAAG,OAAOxyK,EAAE,CAACO,EAAEylB,QAAQ,KAAK,IAAIzjB,EAAEvC,EAAEA,EAAE8B,KAAK,GAAGO,EAAE+B,EAAE/B,EAAEE,EAAEy6G,QAAQz6G,EAAEA,EAAET,WAAWS,IAAIvC,GAAGyjL,GAAGphL,EAAE1D,EAAE6zK,iBAAiBwY,IAAG,GAAIrsL,EAAE6zK,cAAcnwK,EAAE,OAAO1D,EAAE4sL,YAAY5sL,EAAE2sL,UAAUjpL,GAAG9B,EAAEwvL,kBAAkB1tL,EAAE,MAAM,CAACA,EAAE3D,GACnV,SAASuxL,GAAG7rL,GAAG,IAAIzF,EAAE6wL,KAAmL,MAA9K,oBAAoBprL,IAAIA,EAAEA,KAAKzF,EAAE6zK,cAAc7zK,EAAE2sL,UAAUlnL,EAAoFA,GAAlFA,EAAEzF,EAAE+d,MAAM,CAACsJ,QAAQ,KAAK8jH,SAAS,KAAK8lD,oBAAoBF,GAAGK,kBAAkB3rL,IAAO0lI,SAASomD,GAAG5zF,KAAK,KAAKrpE,GAAE7uB,GAAS,CAACzF,EAAE6zK,cAAcpuK,GAAG,SAAS+rL,GAAG/rL,EAAEzF,EAAE4B,EAAE7B,GAAkO,OAA/N0F,EAAE,CAAC67F,IAAI77F,EAAE7E,OAAOZ,EAAEmiF,QAAQvgF,EAAE+wG,KAAK5yG,EAAEoD,KAAK,MAAsB,QAAhBnD,EAAEs0B,GAAEo4J,cAAsB1sL,EAAE,CAAC4uL,WAAW,MAAMt6J,GAAEo4J,YAAY1sL,EAAEA,EAAE4uL,WAAWnpL,EAAEtC,KAAKsC,GAAmB,QAAf7D,EAAE5B,EAAE4uL,YAAoB5uL,EAAE4uL,WAAWnpL,EAAEtC,KAAKsC,GAAG1F,EAAE6B,EAAEuB,KAAKvB,EAAEuB,KAAKsC,EAAEA,EAAEtC,KAAKpD,EAAEC,EAAE4uL,WAAWnpL,GAAWA,EAC7d,SAASgsL,KAAK,OAAOX,KAAKjd,cAAc,SAAS6d,GAAGjsL,EAAEzF,EAAE4B,EAAE7B,GAAG,IAAIsB,EAAEwvL,KAAKv8J,GAAEq/I,WAAWluK,EAAEpE,EAAEwyK,cAAc2d,GAAG,EAAExxL,EAAE4B,OAAE,OAAO,IAAS7B,EAAE,KAAKA,GAAG,SAAS4xL,GAAGlsL,EAAEzF,EAAE4B,EAAE7B,GAAG,IAAIsB,EAAEyvL,KAAK/wL,OAAE,IAASA,EAAE,KAAKA,EAAE,IAAI2D,OAAE,EAAO,GAAG,OAAO2wB,GAAE,CAAC,IAAIzwB,EAAEywB,GAAEw/I,cAA0B,GAAZnwK,EAAEE,EAAEu+E,QAAW,OAAOpiF,GAAGwwL,GAAGxwL,EAAE6D,EAAE+uG,MAAmB,YAAZ6+E,GAAGxxL,EAAE4B,EAAE8B,EAAE3D,GAAWu0B,GAAEq/I,WAAWluK,EAAEpE,EAAEwyK,cAAc2d,GAAG,EAAExxL,EAAE4B,EAAE8B,EAAE3D,GAAG,SAAS6xL,GAAGnsL,EAAEzF,GAAG,OAAO0xL,GAAG,IAAI,EAAEjsL,EAAEzF,GAAG,SAAS6xL,GAAGpsL,EAAEzF,GAAG,OAAO2xL,GAAG,IAAI,EAAElsL,EAAEzF,GAAG,SAAS8xL,GAAGrsL,EAAEzF,GAAG,OAAO2xL,GAAG,EAAE,EAAElsL,EAAEzF,GACnc,SAAS+xL,GAAGtsL,EAAEzF,GAAG,MAAG,oBAAoBA,GAASyF,EAAEA,IAAIzF,EAAEyF,GAAG,WAAWzF,EAAE,QAAU,OAAOA,QAAG,IAASA,GAASyF,EAAEA,IAAIzF,EAAEib,QAAQxV,EAAE,WAAWzF,EAAEib,QAAQ,YAAtE,EAA4E,SAAS+2K,GAAGvsL,EAAEzF,EAAE4B,GAA6C,OAA1CA,EAAE,OAAOA,QAAG,IAASA,EAAEA,EAAE0D,OAAO,CAACG,IAAI,KAAYksL,GAAG,EAAE,EAAEI,GAAGp0F,KAAK,KAAK39F,EAAEyF,GAAG7D,GAAG,SAASqwL,MAAM,SAASC,GAAGzsL,EAAEzF,GAA4C,OAAzC6wL,KAAKhd,cAAc,CAACpuK,OAAE,IAASzF,EAAE,KAAKA,GAAUyF,EAAE,SAAS0sL,GAAG1sL,EAAEzF,GAAG,IAAI4B,EAAEkvL,KAAK9wL,OAAE,IAASA,EAAE,KAAKA,EAAE,IAAID,EAAE6B,EAAEiyK,cAAc,OAAG,OAAO9zK,GAAG,OAAOC,GAAGuwL,GAAGvwL,EAAED,EAAE,IAAWA,EAAE,IAAG6B,EAAEiyK,cAAc,CAACpuK,EAAEzF,GAAUyF,GAC/d,SAAS2sL,GAAG3sL,EAAEzF,GAAG,IAAI4B,EAAEkvL,KAAK9wL,OAAE,IAASA,EAAE,KAAKA,EAAE,IAAID,EAAE6B,EAAEiyK,cAAc,OAAG,OAAO9zK,GAAG,OAAOC,GAAGuwL,GAAGvwL,EAAED,EAAE,IAAWA,EAAE,IAAG0F,EAAEA,IAAI7D,EAAEiyK,cAAc,CAACpuK,EAAEzF,GAAUyF,GAAE,SAAS4sL,GAAG5sL,EAAEzF,EAAE4B,GAAG,IAAI7B,EAAEkrL,KAAKE,GAAG,GAAGprL,EAAE,GAAGA,GAAE,WAAW0F,GAAE,MAAM0lL,GAAG,GAAGprL,EAAE,GAAGA,GAAE,WAAW,IAAIA,EAAEswL,GAAGvmB,SAASumB,GAAGvmB,cAAS,IAAS9pK,EAAE,KAAKA,EAAE,IAAIyF,GAAE,GAAI7D,IAAI,QAAQyuL,GAAGvmB,SAAS/pK,MACjU,SAASwxL,GAAG9rL,EAAEzF,EAAE4B,GAAG,IAAI7B,EAAE6tL,KAAKvsL,EAAEksL,GAAGzjB,SAAqBzoK,EAAE,CAAC+qL,eAAfrsL,EAAE8tL,GAAG9tL,EAAE0F,EAAEpE,GAAuB0rL,eAAe1rL,EAAEg9G,OAAOz8G,EAAEsvL,aAAa,KAAKC,WAAW,KAAKhuL,KAAK,MAAM,IAAIO,EAAE1D,EAAEqnB,QAA6E,GAArE,OAAO3jB,EAAErC,EAAE8B,KAAK9B,GAAGA,EAAE8B,KAAKO,EAAEP,KAAKO,EAAEP,KAAK9B,GAAGrB,EAAEqnB,QAAQhmB,EAAEqC,EAAE+B,EAAEiuK,UAAajuK,IAAI6uB,IAAG,OAAO5wB,GAAGA,IAAI4wB,GAAEg8J,IAAG,EAAGjvL,EAAE+qL,eAAevjG,GAAGv0D,GAAE83J,eAAevjG,OAAO,CAAC,GAAG,IAAIpjF,EAAE2mL,iBAAiB,OAAO1oL,GAAG,IAAIA,EAAE0oL,iBAA0C,QAAxB1oL,EAAE1D,EAAEixL,qBAA8B,IAAI,IAAIrtL,EAAE5D,EAAEoxL,kBAAkBh/J,EAAE1uB,EAAEE,EAAEhC,GAAmC,GAAhCP,EAAE6vL,aAAaxtL,EAAErC,EAAE8vL,WAAW/+J,EAAK0yJ,GAAG1yJ,EAAExuB,GAAG,OAAO,MAAMgB,IAAakpL,GAAGroL,EAClgB1F,IACA,IAAI6wL,GAAG,CAAC0B,YAAYhG,GAAGthB,YAAY52I,GAAE1e,WAAW0e,GAAEjY,UAAUiY,GAAE82I,oBAAoB92I,GAAEpY,gBAAgBoY,GAAE+2I,QAAQ/2I,GAAE/W,WAAW+W,GAAEtZ,OAAOsZ,GAAE9W,SAAS8W,GAAE62I,cAAc72I,GAAEm+J,aAAan+J,GAAEo+J,iBAAiBp+J,GAAEq+J,cAAcr+J,IAAGq8J,GAAG,CAAC6B,YAAYhG,GAAGthB,YAAYknB,GAAGx8K,WAAW42K,GAAGnwK,UAAUy1K,GAAG1mB,oBAAoB,SAASzlK,EAAEzF,EAAE4B,GAA6C,OAA1CA,EAAE,OAAOA,QAAG,IAASA,EAAEA,EAAE0D,OAAO,CAACG,IAAI,KAAYisL,GAAG,EAAE,EAAEK,GAAGp0F,KAAK,KAAK39F,EAAEyF,GAAG7D,IAAIoa,gBAAgB,SAASvW,EAAEzF,GAAG,OAAO0xL,GAAG,EAAE,EAAEjsL,EAAEzF,IAAImrK,QAAQ,SAAS1lK,EAAEzF,GAAG,IAAI4B,EAAEivL,KAC9c,OADmd7wL,OAAE,IAASA,EAAE,KAAKA,EAAEyF,EAAEA,IAAI7D,EAAEiyK,cAAc,CAACpuK,EACjgBzF,GAAUyF,GAAG4X,WAAW,SAAS5X,EAAEzF,EAAE4B,GAAG,IAAI7B,EAAE8wL,KAAuK,OAAlK7wL,OAAE,IAAS4B,EAAEA,EAAE5B,GAAGA,EAAED,EAAE8zK,cAAc9zK,EAAE4sL,UAAU3sL,EAAmFyF,GAAjFA,EAAE1F,EAAEge,MAAM,CAACsJ,QAAQ,KAAK8jH,SAAS,KAAK8lD,oBAAoBxrL,EAAE2rL,kBAAkBpxL,IAAOmrI,SAASomD,GAAG5zF,KAAK,KAAKrpE,GAAE7uB,GAAS,CAAC1F,EAAE8zK,cAAcpuK,IAAIqV,OAAO,SAASrV,GAA4B,OAAdA,EAAE,CAACwV,QAAQxV,GAAhBorL,KAA4Bhd,cAAcpuK,GAAG6X,SAASg0K,GAAGrmB,cAAcgnB,GAAGM,aAAarC,GAAGsC,iBAAiB,SAAS/sL,EAAEzF,GAAG,IAAI4B,EAAE0vL,GAAG7rL,GAAG1F,EAAE6B,EAAE,GAAGP,EAAEO,EAAE,GAC9Y,OADiZgwL,IAAG,WAAW,IAAIhwL,EAAEyuL,GAAGvmB,SAASumB,GAAGvmB,cAAS,IAAS9pK,EAAE,KAAKA,EAAE,IAAIqB,EAAEoE,GAAG,QAAQ4qL,GAAGvmB,SAC9eloK,KAAI,CAAC6D,EAAEzF,IAAWD,GAAG0yL,cAAc,SAAShtL,GAAG,IAAIzF,EAAEsxL,IAAG,GAAI1vL,EAAE5B,EAAE,GAAU,OAAPA,EAAEA,EAAE,GAAS,CAACkyL,GAAGG,GAAG10F,KAAK,KAAK39F,EAAEyF,GAAG,CAACzF,EAAEyF,IAAI7D,KAAK8uL,GAAG,CAAC4B,YAAYhG,GAAGthB,YAAYmnB,GAAGz8K,WAAW42K,GAAGnwK,UAAU01K,GAAG3mB,oBAAoB8mB,GAAGh2K,gBAAgB81K,GAAG3mB,QAAQinB,GAAG/0K,WAAW2zK,GAAGl2K,OAAO22K,GAAGn0K,SAAS,WAAW,OAAO0zK,GAAGD,KAAK9lB,cAAcgnB,GAAGM,aAAarC,GAAGsC,iBAAiB,SAAS/sL,EAAEzF,GAAG,IAAI4B,EAAEovL,GAAGD,IAAIhxL,EAAE6B,EAAE,GAAGP,EAAEO,EAAE,GAAyG,OAAtGiwL,IAAG,WAAW,IAAIjwL,EAAEyuL,GAAGvmB,SAASumB,GAAGvmB,cAAS,IAAS9pK,EAAE,KAAKA,EAAE,IAAIqB,EAAEoE,GAAG,QAAQ4qL,GAAGvmB,SAASloK,KAAI,CAAC6D,EAAEzF,IAAWD,GAAG0yL,cAAc,SAAShtL,GAAG,IAAIzF,EACxgBgxL,GAAGD,IAAInvL,EAAE5B,EAAE,GAAU,OAAPA,EAAEA,EAAE,GAAS,CAACmyL,GAAGE,GAAG10F,KAAK,KAAK39F,EAAEyF,GAAG,CAACzF,EAAEyF,IAAI7D,KAAK+uL,GAAG,CAAC2B,YAAYhG,GAAGthB,YAAYmnB,GAAGz8K,WAAW42K,GAAGnwK,UAAU01K,GAAG3mB,oBAAoB8mB,GAAGh2K,gBAAgB81K,GAAG3mB,QAAQinB,GAAG/0K,WAAWg0K,GAAGv2K,OAAO22K,GAAGn0K,SAAS,WAAW,OAAO+zK,GAAGN,KAAK9lB,cAAcgnB,GAAGM,aAAarC,GAAGsC,iBAAiB,SAAS/sL,EAAEzF,GAAG,IAAI4B,EAAEyvL,GAAGN,IAAIhxL,EAAE6B,EAAE,GAAGP,EAAEO,EAAE,GAAyG,OAAtGiwL,IAAG,WAAW,IAAIjwL,EAAEyuL,GAAGvmB,SAASumB,GAAGvmB,cAAS,IAAS9pK,EAAE,KAAKA,EAAE,IAAIqB,EAAEoE,GAAG,QAAQ4qL,GAAGvmB,SAASloK,KAAI,CAAC6D,EAAEzF,IAAWD,GAAG0yL,cAAc,SAAShtL,GAAG,IAAIzF,EAAEqxL,GAAGN,IAAInvL,EAAE5B,EAAE,GAAU,OAAPA,EAAEA,EAAE,GAAS,CAACmyL,GAAGE,GAAG10F,KAAK,KAC5f39F,EAAEyF,GAAG,CAACzF,EAAEyF,IAAI7D,KAAK8wL,GAAG,KAAKC,GAAG,KAAKC,IAAG,EAAG,SAASC,GAAGptL,EAAEzF,GAAG,IAAI4B,EAAEkxL,GAAG,EAAE,KAAK,KAAK,GAAGlxL,EAAEilD,YAAY,UAAUjlD,EAAEwJ,KAAK,UAAUxJ,EAAEorK,UAAUhtK,EAAE4B,EAAEuuK,OAAO1qK,EAAE7D,EAAE+xK,UAAU,EAAE,OAAOluK,EAAEmpL,YAAYnpL,EAAEmpL,WAAWC,WAAWjtL,EAAE6D,EAAEmpL,WAAWhtL,GAAG6D,EAAEqpL,YAAYrpL,EAAEmpL,WAAWhtL,EAC1P,SAASmxL,GAAGttL,EAAEzF,GAAG,OAAOyF,EAAE67F,KAAK,KAAK,EAAE,IAAI1/F,EAAE6D,EAAE2F,KAAyE,OAAO,QAA3EpL,EAAE,IAAIA,EAAEqtG,UAAUzrG,EAAE+8B,gBAAgB3+B,EAAE8sG,SAASnuE,cAAc,KAAK3+B,KAAmByF,EAAEunK,UAAUhtK,GAAE,GAAO,KAAK,EAAE,OAAoD,QAA7CA,EAAE,KAAKyF,EAAEutL,cAAc,IAAIhzL,EAAEqtG,SAAS,KAAKrtG,KAAYyF,EAAEunK,UAAUhtK,GAAE,GAAO,KAAK,GAAY,QAAQ,OAAM,GACtR,SAASizL,GAAGxtL,GAAG,GAAGmtL,GAAG,CAAC,IAAI5yL,EAAE2yL,GAAG,GAAG3yL,EAAE,CAAC,IAAI4B,EAAE5B,EAAE,IAAI+yL,GAAGttL,EAAEzF,GAAG,CAAqB,KAApBA,EAAEy9K,GAAG77K,EAAE26K,gBAAqBwW,GAAGttL,EAAEzF,GAA+C,OAA3CyF,EAAEkuK,WAAuB,KAAbluK,EAAEkuK,UAAgB,EAAEif,IAAG,OAAGF,GAAGjtL,GAASotL,GAAGH,GAAG9wL,GAAG8wL,GAAGjtL,EAAEktL,GAAGlV,GAAGz9K,EAAEgmK,iBAAiBvgK,EAAEkuK,WAAuB,KAAbluK,EAAEkuK,UAAgB,EAAEif,IAAG,EAAGF,GAAGjtL,GAAG,SAASytL,GAAGztL,GAAG,IAAIA,EAAEA,EAAE0qK,OAAO,OAAO1qK,GAAG,IAAIA,EAAE67F,KAAK,IAAI77F,EAAE67F,KAAK,KAAK77F,EAAE67F,KAAK77F,EAAEA,EAAE0qK,OAAOuiB,GAAGjtL,EAC5T,SAAS0tL,GAAG1tL,GAAG,GAAGA,IAAIitL,GAAG,OAAM,EAAG,IAAIE,GAAG,OAAOM,GAAGztL,GAAGmtL,IAAG,GAAG,EAAG,IAAI5yL,EAAEyF,EAAE2F,KAAK,GAAG,IAAI3F,EAAE67F,KAAK,SAASthG,GAAG,SAASA,IAAIq9K,GAAGr9K,EAAEyF,EAAEuqL,eAAe,IAAIhwL,EAAE2yL,GAAG3yL,GAAG6yL,GAAGptL,EAAEzF,GAAGA,EAAEy9K,GAAGz9K,EAAEu8K,aAAmB,GAAN2W,GAAGztL,GAAM,KAAKA,EAAE67F,IAAI,CAAgD,KAA7B77F,EAAE,QAApBA,EAAEA,EAAEouK,eAAyBpuK,EAAEquK,WAAW,MAAW,MAAMnoK,MAAMm9J,EAAE,MAAMrjK,EAAE,CAAiB,IAAhBA,EAAEA,EAAE82K,YAAgBv8K,EAAE,EAAEyF,GAAG,CAAC,GAAG,IAAIA,EAAE4nG,SAAS,CAAC,IAAIzrG,EAAE6D,EAAEsZ,KAAK,GA9FpG,OA8FuGnd,EAAO,CAAC,GAAG,IAAI5B,EAAE,CAAC2yL,GAAGlV,GAAGh4K,EAAE82K,aAAa,MAAM92K,EAAEzF,QA9F7J,MA8FsK4B,GAAQA,IAAIo7K,IAAIp7K,IAAIm7K,IAAI/8K,IAAIyF,EAAEA,EAAE82K,YAAYoW,GAAG,WAAWA,GAAGD,GAAGjV,GAAGh4K,EAAEunK,UAAUuP,aAAa,KAAK,OAAM,EAChf,SAAS6W,KAAKT,GAAGD,GAAG,KAAKE,IAAG,EAAG,IAAIS,GAAG7kB,EAAGzE,kBAAkBsiB,IAAG,EAAG,SAASl4J,GAAE1uB,EAAEzF,EAAE4B,EAAE7B,GAAGC,EAAEgV,MAAM,OAAOvP,EAAE6pL,GAAGtvL,EAAE,KAAK4B,EAAE7B,GAAGsvL,GAAGrvL,EAAEyF,EAAEuP,MAAMpT,EAAE7B,GAAG,SAASuzL,GAAG7tL,EAAEzF,EAAE4B,EAAE7B,EAAEsB,GAAGO,EAAEA,EAAE0P,OAAO,IAAI5N,EAAE1D,EAAEuV,IAA8B,OAA1B22K,GAAGlsL,EAAEqB,GAAGtB,EAAEywL,GAAG/qL,EAAEzF,EAAE4B,EAAE7B,EAAE2D,EAAErC,GAAM,OAAOoE,GAAI4mL,IAA4GrsL,EAAE2zK,WAAW,EAAEx/I,GAAE1uB,EAAEzF,EAAED,EAAEsB,GAAUrB,EAAEgV,QAArIhV,EAAE0sL,YAAYjnL,EAAEinL,YAAY1sL,EAAE2zK,YAAY,IAAIluK,EAAE2mL,gBAAgB/qL,IAAIoE,EAAE2mL,eAAe,GAAGmH,GAAG9tL,EAAEzF,EAAEqB,IACtU,SAASmyL,GAAG/tL,EAAEzF,EAAE4B,EAAE7B,EAAEsB,EAAEqC,GAAG,GAAG,OAAO+B,EAAE,CAAC,IAAI7B,EAAEhC,EAAEwJ,KAAK,MAAG,oBAAoBxH,GAAI6vL,GAAG7vL,SAAI,IAASA,EAAEihB,cAAc,OAAOjjB,EAAE01C,cAAS,IAAS11C,EAAEijB,eAAsDpf,EAAEwpL,GAAGrtL,EAAEwJ,KAAK,KAAKrL,EAAE,KAAKC,EAAEsiC,KAAK5+B,IAAK6R,IAAIvV,EAAEuV,IAAI9P,EAAE0qK,OAAOnwK,EAASA,EAAEgV,MAAMvP,IAA1GzF,EAAEshG,IAAI,GAAGthG,EAAEoL,KAAKxH,EAAE4lF,GAAG/jF,EAAEzF,EAAE4D,EAAE7D,EAAEsB,EAAEqC,IAAuF,OAAVE,EAAE6B,EAAEuP,MAAS3T,EAAEqC,IAAIrC,EAAEuC,EAAEosL,eAA0BpuL,EAAE,QAAdA,EAAEA,EAAE01C,SAAmB11C,EAAEojL,IAAK3jL,EAAEtB,IAAI0F,EAAE8P,MAAMvV,EAAEuV,KAAYg+K,GAAG9tL,EAAEzF,EAAE0D,IAAG1D,EAAE2zK,WAAW,GAAEluK,EAAEspL,GAAGnrL,EAAE7D,IAAKwV,IAAIvV,EAAEuV,IAAI9P,EAAE0qK,OAAOnwK,EAASA,EAAEgV,MAAMvP,GACnb,SAAS+jF,GAAG/jF,EAAEzF,EAAE4B,EAAE7B,EAAEsB,EAAEqC,GAAG,OAAO,OAAO+B,GAAGu/K,GAAGv/K,EAAEuqL,cAAcjwL,IAAI0F,EAAE8P,MAAMvV,EAAEuV,MAAM82K,IAAG,EAAGhrL,EAAEqC,IAAI1D,EAAEosL,eAAe3mL,EAAE2mL,eAAemH,GAAG9tL,EAAEzF,EAAE0D,IAAIgwL,GAAGjuL,EAAEzF,EAAE4B,EAAE7B,EAAE2D,GAAG,SAASiwL,GAAGluL,EAAEzF,GAAG,IAAI4B,EAAE5B,EAAEuV,KAAO,OAAO9P,GAAG,OAAO7D,GAAG,OAAO6D,GAAGA,EAAE8P,MAAM3T,KAAE5B,EAAE2zK,WAAW,KAAI,SAAS+f,GAAGjuL,EAAEzF,EAAE4B,EAAE7B,EAAEsB,GAAG,IAAIqC,EAAE8wB,GAAE5yB,GAAGgnL,GAAG/zJ,GAAE5Z,QAA4C,OAApCvX,EAAEmlL,GAAG7oL,EAAE0D,GAAGwoL,GAAGlsL,EAAEqB,GAAGO,EAAE4uL,GAAG/qL,EAAEzF,EAAE4B,EAAE7B,EAAE2D,EAAErC,GAAM,OAAOoE,GAAI4mL,IAA4GrsL,EAAE2zK,WAAW,EAAEx/I,GAAE1uB,EAAEzF,EAAE4B,EAAEP,GAAUrB,EAAEgV,QAArIhV,EAAE0sL,YAAYjnL,EAAEinL,YAAY1sL,EAAE2zK,YAAY,IAAIluK,EAAE2mL,gBAAgB/qL,IAAIoE,EAAE2mL,eAAe,GAAGmH,GAAG9tL,EAAEzF,EAAEqB,IAC3b,SAASuyL,GAAGnuL,EAAEzF,EAAE4B,EAAE7B,EAAEsB,GAAG,GAAGmzB,GAAE5yB,GAAG,CAAC,IAAI8B,GAAE,EAAGylL,GAAGnpL,QAAQ0D,GAAE,EAAW,GAARwoL,GAAGlsL,EAAEqB,GAAM,OAAOrB,EAAEgtK,UAAU,OAAOvnK,IAAIA,EAAEiuK,UAAU,KAAK1zK,EAAE0zK,UAAU,KAAK1zK,EAAE2zK,WAAW,GAAGqa,GAAGhuL,EAAE4B,EAAE7B,GAAGouL,GAAGnuL,EAAE4B,EAAE7B,EAAEsB,GAAGtB,GAAE,OAAQ,GAAG,OAAO0F,EAAE,CAAC,IAAI7B,EAAE5D,EAAEgtK,UAAU56I,EAAEpyB,EAAEgwL,cAAcpsL,EAAE5E,MAAMozB,EAAE,IAAIxtB,EAAEhB,EAAEqM,QAAQjK,EAAEpE,EAAEsqH,YAAY,kBAAkBlmH,GAAG,OAAOA,EAAEA,EAAEsmL,GAAGtmL,GAAwBA,EAAE6iL,GAAG7oL,EAAzBgG,EAAEwuB,GAAE5yB,GAAGgnL,GAAG/zJ,GAAE5Z,SAAmB,IAAItW,EAAE/C,EAAE0qH,yBAAyBlsH,EAAE,oBAAoBuE,GAAG,oBAAoBf,EAAEwqL,wBAAwBhuL,GAAG,oBAAoBwD,EAAEsqL,kCACtd,oBAAoBtqL,EAAEm3I,4BAA4B3oH,IAAIryB,GAAG6E,IAAIoB,IAAIioL,GAAGjuL,EAAE4D,EAAE7D,EAAEiG,GAAGwmL,IAAG,EAAG,IAAIrjL,EAAEnJ,EAAE6zK,cAAcjwK,EAAE2D,MAAM4B,EAAE+jL,GAAGltL,EAAED,EAAE6D,EAAEvC,GAAGuD,EAAE5E,EAAE6zK,cAAczhJ,IAAIryB,GAAGoJ,IAAIvE,GAAG6vB,GAAExZ,SAASuxK,IAAI,oBAAoB7nL,IAAI8oL,GAAGztL,EAAE4B,EAAE+C,EAAE5E,GAAG6E,EAAE5E,EAAE6zK,gBAAgBzhJ,EAAEo6J,IAAIuB,GAAG/tL,EAAE4B,EAAEwwB,EAAEryB,EAAEoJ,EAAEvE,EAAEoB,KAAK5F,GAAG,oBAAoBwD,EAAEyqL,2BAA2B,oBAAoBzqL,EAAE0qL,qBAAqB,oBAAoB1qL,EAAE0qL,oBAAoB1qL,EAAE0qL,qBAAqB,oBAAoB1qL,EAAEyqL,2BAA2BzqL,EAAEyqL,6BAA6B,oBACzezqL,EAAEwN,oBAAoBpR,EAAE2zK,WAAW,KAAK,oBAAoB/vK,EAAEwN,oBAAoBpR,EAAE2zK,WAAW,GAAG3zK,EAAEgwL,cAAcjwL,EAAEC,EAAE6zK,cAAcjvK,GAAGhB,EAAE5E,MAAMe,EAAE6D,EAAE2D,MAAM3C,EAAEhB,EAAEqM,QAAQjK,EAAEjG,EAAEqyB,IAAI,oBAAoBxuB,EAAEwN,oBAAoBpR,EAAE2zK,WAAW,GAAG5zK,GAAE,QAAS6D,EAAE5D,EAAEgtK,UAAU6f,GAAGpnL,EAAEzF,GAAGoyB,EAAEpyB,EAAEgwL,cAAcpsL,EAAE5E,MAAMgB,EAAEoL,OAAOpL,EAAE6mD,YAAYz0B,EAAEq5J,GAAGzrL,EAAEoL,KAAKgnB,GAAGxtB,EAAEhB,EAAEqM,QAAwB,kBAAhBjK,EAAEpE,EAAEsqH,cAAiC,OAAOlmH,EAAEA,EAAEsmL,GAAGtmL,GAAwBA,EAAE6iL,GAAG7oL,EAAzBgG,EAAEwuB,GAAE5yB,GAAGgnL,GAAG/zJ,GAAE5Z,UAAiD7a,EAAE,oBAAhCuE,EAAE/C,EAAE0qH,2BAAmD,oBACje1oH,EAAEwqL,0BAA0B,oBAAoBxqL,EAAEsqL,kCAAkC,oBAAoBtqL,EAAEm3I,4BAA4B3oH,IAAIryB,GAAG6E,IAAIoB,IAAIioL,GAAGjuL,EAAE4D,EAAE7D,EAAEiG,GAAGwmL,IAAG,EAAG5nL,EAAE5E,EAAE6zK,cAAcjwK,EAAE2D,MAAM3C,EAAEsoL,GAAGltL,EAAED,EAAE6D,EAAEvC,GAAG8H,EAAEnJ,EAAE6zK,cAAczhJ,IAAIryB,GAAG6E,IAAIuE,GAAGsrB,GAAExZ,SAASuxK,IAAI,oBAAoB7nL,IAAI8oL,GAAGztL,EAAE4B,EAAE+C,EAAE5E,GAAGoJ,EAAEnJ,EAAE6zK,gBAAgBlvK,EAAE6nL,IAAIuB,GAAG/tL,EAAE4B,EAAEwwB,EAAEryB,EAAE6E,EAAEuE,EAAEnD,KAAK5F,GAAG,oBAAoBwD,EAAEiwL,4BAA4B,oBAAoBjwL,EAAEkwL,sBAAsB,oBAAoBlwL,EAAEkwL,qBAAqBlwL,EAAEkwL,oBAAoB/zL,EACzfoJ,EAAEnD,GAAG,oBAAoBpC,EAAEiwL,4BAA4BjwL,EAAEiwL,2BAA2B9zL,EAAEoJ,EAAEnD,IAAI,oBAAoBpC,EAAEoO,qBAAqBhS,EAAE2zK,WAAW,GAAG,oBAAoB/vK,EAAEwqL,0BAA0BpuL,EAAE2zK,WAAW,OAAO,oBAAoB/vK,EAAEoO,oBAAoBogB,IAAI3sB,EAAEuqL,eAAeprL,IAAIa,EAAEouK,gBAAgB7zK,EAAE2zK,WAAW,GAAG,oBAAoB/vK,EAAEwqL,yBAAyBh8J,IAAI3sB,EAAEuqL,eAAeprL,IAAIa,EAAEouK,gBAAgB7zK,EAAE2zK,WAAW,KAAK3zK,EAAEgwL,cAAcjwL,EAAEC,EAAE6zK,cAAc1qK,GAAGvF,EAAE5E,MAAMe,EAAE6D,EAAE2D,MAAM4B,EAAEvF,EAAEqM,QAAQjK,EAAEjG,EAAE4E,IAClf,oBAAoBf,EAAEoO,oBAAoBogB,IAAI3sB,EAAEuqL,eAAeprL,IAAIa,EAAEouK,gBAAgB7zK,EAAE2zK,WAAW,GAAG,oBAAoB/vK,EAAEwqL,yBAAyBh8J,IAAI3sB,EAAEuqL,eAAeprL,IAAIa,EAAEouK,gBAAgB7zK,EAAE2zK,WAAW,KAAK5zK,GAAE,GAAI,OAAOg0L,GAAGtuL,EAAEzF,EAAE4B,EAAE7B,EAAE2D,EAAErC,GAC5O,SAAS0yL,GAAGtuL,EAAEzF,EAAE4B,EAAE7B,EAAEsB,EAAEqC,GAAGiwL,GAAGluL,EAAEzF,GAAG,IAAI4D,EAAE,KAAiB,GAAZ5D,EAAE2zK,WAAc,IAAI5zK,IAAI6D,EAAE,OAAOvC,GAAGgoL,GAAGrpL,EAAE4B,GAAE,GAAI2xL,GAAG9tL,EAAEzF,EAAE0D,GAAG3D,EAAEC,EAAEgtK,UAAUqmB,GAAGp4K,QAAQjb,EAAE,IAAIoyB,EAAExuB,GAAG,oBAAoBhC,EAAEyqH,yBAAyB,KAAKtsH,EAAEuR,SAA2I,OAAlItR,EAAE2zK,WAAW,EAAE,OAAOluK,GAAG7B,GAAG5D,EAAEgV,MAAMq6K,GAAGrvL,EAAEyF,EAAEuP,MAAM,KAAKtR,GAAG1D,EAAEgV,MAAMq6K,GAAGrvL,EAAE,KAAKoyB,EAAE1uB,IAAIywB,GAAE1uB,EAAEzF,EAAEoyB,EAAE1uB,GAAG1D,EAAE6zK,cAAc9zK,EAAEwH,MAAMlG,GAAGgoL,GAAGrpL,EAAE4B,GAAE,GAAW5B,EAAEgV,MAAM,SAAS+1B,GAAGtlC,GAAG,IAAIzF,EAAEyF,EAAEunK,UAAUhtK,EAAEg0L,eAAe/K,GAAGxjL,EAAEzF,EAAEg0L,eAAeh0L,EAAEg0L,iBAAiBh0L,EAAEiQ,SAASjQ,EAAEiQ,SAASg5K,GAAGxjL,EAAEzF,EAAEiQ,SAAQ,GAAI0/K,GAAGlqL,EAAEzF,EAAEw1K,eACpe,IAOoXye,GAAMC,GAAGC,GAPzXh8E,GAAG,CAAC27D,WAAW,KAAKsgB,UAAU,GAClC,SAASC,GAAG5uL,EAAEzF,EAAE4B,GAAG,IAA+CwwB,EAA3CryB,EAAEC,EAAEsiC,KAAKjhC,EAAErB,EAAEgzL,aAAatvL,EAAE6wB,GAAEtZ,QAAQrX,GAAE,EAAqN,IAA/MwuB,EAAE,KAAiB,GAAZpyB,EAAE2zK,cAAiBvhJ,EAAE,KAAO,EAAF1uB,KAAO,OAAO+B,GAAG,OAAOA,EAAEouK,gBAAgBzhJ,GAAGxuB,GAAE,EAAG5D,EAAE2zK,YAAY,IAAI,OAAOluK,GAAG,OAAOA,EAAEouK,oBAAe,IAASxyK,EAAEgpC,WAAU,IAAKhpC,EAAEizL,6BAA6B5wL,GAAG,GAAGkxB,GAAEL,GAAI,EAAF7wB,GAAQ,OAAO+B,EAAE,CAA4B,QAA3B,IAASpE,EAAEgpC,UAAU4oJ,GAAGjzL,GAAM4D,EAAE,CAA6C,GAA5CA,EAAEvC,EAAEgpC,UAAShpC,EAAE+tL,GAAG,KAAKrvL,EAAE,EAAE,OAAQowK,OAAOnwK,EAAK,KAAY,EAAPA,EAAEsiC,MAAQ,IAAI78B,EAAE,OAAOzF,EAAE6zK,cAAc7zK,EAAEgV,MAAMA,MAAMhV,EAAEgV,MAAM3T,EAAE2T,MAAMvP,EAAE,OAAOA,GAAGA,EAAE0qK,OAAO9uK,EAAEoE,EAAEA,EAAEwuK,QAC3a,OADmbryK,EAAEwtL,GAAGxrL,EAAE7D,EAAE6B,EAAE,OAAQuuK,OACjfnwK,EAAEqB,EAAE4yK,QAAQryK,EAAE5B,EAAE6zK,cAAc17D,GAAGn4G,EAAEgV,MAAM3T,EAASO,EAAoC,OAAlC7B,EAAEsB,EAAEuQ,SAAS5R,EAAE6zK,cAAc,KAAY7zK,EAAEgV,MAAMs6K,GAAGtvL,EAAE,KAAKD,EAAE6B,GAAG,GAAG,OAAO6D,EAAEouK,cAAc,CAAuB,GAAZ9zK,GAAV0F,EAAEA,EAAEuP,OAAUi/J,QAAWrwK,EAAE,CAAgD,GAA/CvC,EAAEA,EAAEgpC,UAASzoC,EAAEmtL,GAAGtpL,EAAEA,EAAEutL,eAAgB7iB,OAAOnwK,EAAK,KAAY,EAAPA,EAAEsiC,QAAU1+B,EAAE,OAAO5D,EAAE6zK,cAAc7zK,EAAEgV,MAAMA,MAAMhV,EAAEgV,SAAUvP,EAAEuP,MAAO,IAAIpT,EAAEoT,MAAMpR,EAAE,OAAOA,GAAGA,EAAEusK,OAAOvuK,EAAEgC,EAAEA,EAAEqwK,QAA8F,OAAtFl0K,EAAEgvL,GAAGhvL,EAAEsB,IAAK8uK,OAAOnwK,EAAE4B,EAAEqyK,QAAQl0K,EAAE6B,EAAEqqL,oBAAoB,EAAEjsL,EAAE6zK,cAAc17D,GAAGn4G,EAAEgV,MAAMpT,EAAS7B,EAAoD,OAAlD6B,EAAEytL,GAAGrvL,EAAEyF,EAAEuP,MAAM3T,EAAEuQ,SAAShQ,GAAG5B,EAAE6zK,cAAc,KAAY7zK,EAAEgV,MACnfpT,EAAY,GAAV6D,EAAEA,EAAEuP,MAASpR,EAAE,CAA8E,GAA7EA,EAAEvC,EAAEgpC,UAAShpC,EAAE+tL,GAAG,KAAKrvL,EAAE,EAAE,OAAQowK,OAAOnwK,EAAEqB,EAAE2T,MAAMvP,EAAE,OAAOA,IAAIA,EAAE0qK,OAAO9uK,GAAM,KAAY,EAAPrB,EAAEsiC,MAAQ,IAAI78B,EAAE,OAAOzF,EAAE6zK,cAAc7zK,EAAEgV,MAAMA,MAAMhV,EAAEgV,MAAM3T,EAAE2T,MAAMvP,EAAE,OAAOA,GAAGA,EAAE0qK,OAAO9uK,EAAEoE,EAAEA,EAAEwuK,QAAoH,OAA5GryK,EAAEwtL,GAAGxrL,EAAE7D,EAAE6B,EAAE,OAAQuuK,OAAOnwK,EAAEqB,EAAE4yK,QAAQryK,EAAEA,EAAE+xK,WAAW,EAAEtyK,EAAE4qL,oBAAoB,EAAEjsL,EAAE6zK,cAAc17D,GAAGn4G,EAAEgV,MAAM3T,EAASO,EAAuB,OAArB5B,EAAE6zK,cAAc,KAAY7zK,EAAEgV,MAAMq6K,GAAGrvL,EAAEyF,EAAEpE,EAAEuQ,SAAShQ,GAC1X,SAAS2yL,GAAG9uL,EAAEzF,GAAGyF,EAAE2mL,eAAepsL,IAAIyF,EAAE2mL,eAAepsL,GAAG,IAAI4B,EAAE6D,EAAEiuK,UAAU,OAAO9xK,GAAGA,EAAEwqL,eAAepsL,IAAI4B,EAAEwqL,eAAepsL,GAAGgsL,GAAGvmL,EAAE0qK,OAAOnwK,GAAG,SAASw0L,GAAG/uL,EAAEzF,EAAE4B,EAAE7B,EAAEsB,EAAEqC,GAAG,IAAIE,EAAE6B,EAAEouK,cAAc,OAAOjwK,EAAE6B,EAAEouK,cAAc,CAAC4gB,YAAYz0L,EAAE00L,UAAU,KAAKC,mBAAmB,EAAEhpI,KAAK5rD,EAAE60L,KAAKhzL,EAAEizL,eAAe,EAAEC,SAASzzL,EAAEutL,WAAWlrL,IAAIE,EAAE6wL,YAAYz0L,EAAE4D,EAAE8wL,UAAU,KAAK9wL,EAAE+wL,mBAAmB,EAAE/wL,EAAE+nD,KAAK5rD,EAAE6D,EAAEgxL,KAAKhzL,EAAEgC,EAAEixL,eAAe,EAAEjxL,EAAEkxL,SAASzzL,EAAEuC,EAAEgrL,WAAWlrL,GACzb,SAASqxL,GAAGtvL,EAAEzF,EAAE4B,GAAG,IAAI7B,EAAEC,EAAEgzL,aAAa3xL,EAAEtB,EAAEkwL,YAAYvsL,EAAE3D,EAAE60L,KAAqC,GAAhCzgK,GAAE1uB,EAAEzF,EAAED,EAAE6R,SAAShQ,GAAkB,KAAO,GAAtB7B,EAAEw0B,GAAEtZ,UAAqBlb,EAAI,EAAFA,EAAI,EAAEC,EAAE2zK,WAAW,OAAO,CAAC,GAAG,OAAOluK,GAAG,KAAiB,GAAZA,EAAEkuK,WAAcluK,EAAE,IAAIA,EAAEzF,EAAEgV,MAAM,OAAOvP,GAAG,CAAC,GAAG,KAAKA,EAAE67F,IAAI,OAAO77F,EAAEouK,eAAe0gB,GAAG9uL,EAAE7D,QAAQ,GAAG,KAAK6D,EAAE67F,IAAIizF,GAAG9uL,EAAE7D,QAAQ,GAAG,OAAO6D,EAAEuP,MAAM,CAACvP,EAAEuP,MAAMm7J,OAAO1qK,EAAEA,EAAEA,EAAEuP,MAAM,SAAS,GAAGvP,IAAIzF,EAAE,MAAMyF,EAAE,KAAK,OAAOA,EAAEwuK,SAAS,CAAC,GAAG,OAAOxuK,EAAE0qK,QAAQ1qK,EAAE0qK,SAASnwK,EAAE,MAAMyF,EAAEA,EAAEA,EAAE0qK,OAAO1qK,EAAEwuK,QAAQ9D,OAAO1qK,EAAE0qK,OAAO1qK,EAAEA,EAAEwuK,QAAQl0K,GAAG,EAAS,GAAP60B,GAAEL,GAAEx0B,GAAM,KAAY,EAAPC,EAAEsiC,MAAQtiC,EAAE6zK,cAChf,UAAU,OAAOxyK,GAAG,IAAK,WAAqB,IAAVO,EAAE5B,EAAEgV,MAAU3T,EAAE,KAAK,OAAOO,GAAiB,QAAd6D,EAAE7D,EAAE8xK,YAAoB,OAAOqc,GAAGtqL,KAAKpE,EAAEO,GAAGA,EAAEA,EAAEqyK,QAAY,QAAJryK,EAAEP,IAAYA,EAAErB,EAAEgV,MAAMhV,EAAEgV,MAAM,OAAO3T,EAAEO,EAAEqyK,QAAQryK,EAAEqyK,QAAQ,MAAMugB,GAAGx0L,GAAE,EAAGqB,EAAEO,EAAE8B,EAAE1D,EAAE4uL,YAAY,MAAM,IAAK,YAA6B,IAAjBhtL,EAAE,KAAKP,EAAErB,EAAEgV,MAAUhV,EAAEgV,MAAM,KAAK,OAAO3T,GAAG,CAAe,GAAG,QAAjBoE,EAAEpE,EAAEqyK,YAAuB,OAAOqc,GAAGtqL,GAAG,CAACzF,EAAEgV,MAAM3T,EAAE,MAAMoE,EAAEpE,EAAE4yK,QAAQ5yK,EAAE4yK,QAAQryK,EAAEA,EAAEP,EAAEA,EAAEoE,EAAE+uL,GAAGx0L,GAAE,EAAG4B,EAAE,KAAK8B,EAAE1D,EAAE4uL,YAAY,MAAM,IAAK,WAAW4F,GAAGx0L,GAAE,EAAG,KAAK,UAAK,EAAOA,EAAE4uL,YAAY,MAAM,QAAQ5uL,EAAE6zK,cAAc,KAAK,OAAO7zK,EAAEgV,MAC/f,SAASu+K,GAAG9tL,EAAEzF,EAAE4B,GAAG,OAAO6D,IAAIzF,EAAEysK,aAAahnK,EAAEgnK,cAAc,IAAI1sK,EAAEC,EAAEosL,eAA4B,GAAb,IAAIrsL,GAAGstL,GAAGttL,GAAMC,EAAEisL,oBAAoBrqL,EAAE,OAAO,KAAK,GAAG,OAAO6D,GAAGzF,EAAEgV,QAAQvP,EAAEuP,MAAM,MAAMrJ,MAAMm9J,EAAE,MAAM,GAAG,OAAO9oK,EAAEgV,MAAM,CAA4C,IAAjCpT,EAAEmtL,GAAZtpL,EAAEzF,EAAEgV,MAAavP,EAAEutL,cAAchzL,EAAEgV,MAAMpT,EAAMA,EAAEuuK,OAAOnwK,EAAE,OAAOyF,EAAEwuK,SAASxuK,EAAEA,EAAEwuK,SAAQryK,EAAEA,EAAEqyK,QAAQ8a,GAAGtpL,EAAEA,EAAEutL,eAAgB7iB,OAAOnwK,EAAE4B,EAAEqyK,QAAQ,KAAK,OAAOj0K,EAAEgV,MAK5T,SAASggL,GAAGvvL,EAAEzF,GAAG,OAAOyF,EAAEqvL,UAAU,IAAK,SAAS90L,EAAEyF,EAAEmvL,KAAK,IAAI,IAAIhzL,EAAE,KAAK,OAAO5B,GAAG,OAAOA,EAAE0zK,YAAY9xK,EAAE5B,GAAGA,EAAEA,EAAEi0K,QAAQ,OAAOryK,EAAE6D,EAAEmvL,KAAK,KAAKhzL,EAAEqyK,QAAQ,KAAK,MAAM,IAAK,YAAYryK,EAAE6D,EAAEmvL,KAAK,IAAI,IAAI70L,EAAE,KAAK,OAAO6B,GAAG,OAAOA,EAAE8xK,YAAY3zK,EAAE6B,GAAGA,EAAEA,EAAEqyK,QAAQ,OAAOl0K,EAAEC,GAAG,OAAOyF,EAAEmvL,KAAKnvL,EAAEmvL,KAAK,KAAKnvL,EAAEmvL,KAAK3gB,QAAQ,KAAKl0K,EAAEk0K,QAAQ,MAC/W,SAASghB,GAAGxvL,EAAEzF,EAAE4B,GAAG,IAAI7B,EAAEC,EAAEgzL,aAAa,OAAOhzL,EAAEshG,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,EAAE,KAAK,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,KAAK,EAAE,KAAK,GAAG,OAAO,KAAK,KAAK,EAAE,OAAO9sE,GAAEx0B,EAAEoL,OAAO49K,KAAK,KAAK,KAAK,EAAE,OAAO4G,KAAKj7J,GAAEF,IAAGE,GAAEE,KAAGjzB,EAAE5B,EAAEgtK,WAAYgnB,iBAAiBpyL,EAAEqO,QAAQrO,EAAEoyL,eAAepyL,EAAEoyL,eAAe,MAAM,OAAOvuL,GAAG,OAAOA,EAAEuP,QAAQm+K,GAAGnzL,KAAKA,EAAE2zK,WAAW,GAAS,KAAK,KAAK,EAAEmc,GAAG9vL,GAAG4B,EAAEsmG,GAAGwnF,GAAGz0K,SAAS,IAAI5Z,EAAErB,EAAEoL,KAAK,GAAG,OAAO3F,GAAG,MAAMzF,EAAEgtK,UAAUknB,GAAGzuL,EAAEzF,EAAEqB,EAAEtB,EAAE6B,GAAG6D,EAAE8P,MAAMvV,EAAEuV,MAAMvV,EAAE2zK,WAAW,SAAS,CAAC,IAAI5zK,EAAE,CAAC,GAAG,OAAOC,EAAEgtK,UAAU,MAAMrhK,MAAMm9J,EAAE,MACxgB,OAAO,KAAsB,GAAjBrjK,EAAEyiG,GAAGsnF,GAAGv0K,SAAYk4K,GAAGnzL,GAAG,CAACD,EAAEC,EAAEgtK,UAAU3rK,EAAErB,EAAEoL,KAAK,IAAI1H,EAAE1D,EAAEgwL,cAA8B,OAAhBjwL,EAAE89K,IAAI79K,EAAED,EAAE+9K,IAAIp6K,EAASrC,GAAG,IAAK,SAAS,IAAK,SAAS,IAAK,QAAQ2L,GAAE,OAAOjN,GAAG,MAAM,IAAK,QAAQ,IAAK,QAAQ,IAAI0F,EAAE,EAAEA,EAAE6tK,GAAGp0K,OAAOuG,IAAIuH,GAAEsmK,GAAG7tK,GAAG1F,GAAG,MAAM,IAAK,SAASiN,GAAE,QAAQjN,GAAG,MAAM,IAAK,MAAM,IAAK,QAAQ,IAAK,OAAOiN,GAAE,QAAQjN,GAAGiN,GAAE,OAAOjN,GAAG,MAAM,IAAK,OAAOiN,GAAE,QAAQjN,GAAGiN,GAAE,SAASjN,GAAG,MAAM,IAAK,UAAUiN,GAAE,SAASjN,GAAG,MAAM,IAAK,QAAQgxK,GAAGhxK,EAAE2D,GAAGsJ,GAAE,UAAUjN,GAAGm8K,GAAGt6K,EAAE,YAAY,MAAM,IAAK,SAAS7B,EAAE8wK,cAC3e,CAACqkB,cAAcxxL,EAAEyqI,UAAUnhI,GAAE,UAAUjN,GAAGm8K,GAAGt6K,EAAE,YAAY,MAAM,IAAK,WAAWgwK,GAAG7xK,EAAE2D,GAAGsJ,GAAE,UAAUjN,GAAGm8K,GAAGt6K,EAAE,YAA2B,IAAI,IAAIgC,KAAvBm4K,GAAG16K,EAAEqC,GAAG+B,EAAE,KAAkB/B,EAAE,GAAGA,EAAErD,eAAeuD,GAAG,CAAC,IAAIwuB,EAAE1uB,EAAEE,GAAG,aAAaA,EAAE,kBAAkBwuB,EAAEryB,EAAEgyK,cAAc3/I,IAAI3sB,EAAE,CAAC,WAAW2sB,IAAI,kBAAkBA,GAAGryB,EAAEgyK,cAAc,GAAG3/I,IAAI3sB,EAAE,CAAC,WAAW,GAAG2sB,IAAIm6I,EAAGlsK,eAAeuD,IAAI,MAAMwuB,GAAG8pJ,GAAGt6K,EAAEgC,GAAG,OAAOvC,GAAG,IAAK,QAAQivK,GAAGvwK,GAAGqxK,GAAGrxK,EAAE2D,GAAE,GAAI,MAAM,IAAK,WAAW4sK,GAAGvwK,GAAG+xK,GAAG/xK,GAAG,MAAM,IAAK,SAAS,IAAK,SAAS,MAAM,QAAQ,oBAAoB2D,EAAEgT,UAC1f3W,EAAE6hK,QAAQua,IAAIv6K,EAAE6D,EAAEzF,EAAE0sL,YAAY9qL,EAAE,OAAOA,IAAI5B,EAAE2zK,WAAW,OAAO,CAAuY,OAAtY/vK,EAAE,IAAIhC,EAAEyrG,SAASzrG,EAAEA,EAAEq8F,cAAcx4F,IAAIw2K,KAAKx2K,EAAEwsK,GAAG5wK,IAAIoE,IAAIw2K,GAAG,WAAW56K,IAAGoE,EAAE7B,EAAEsQ,cAAc,QAAS6xJ,UAAU,qBAAuBtgK,EAAEA,EAAE8iB,YAAY9iB,EAAEugK,aAAa,kBAAkBjmK,EAAE0vG,GAAGhqG,EAAE7B,EAAEsQ,cAAc7S,EAAE,CAACouG,GAAG1vG,EAAE0vG,MAAMhqG,EAAE7B,EAAEsQ,cAAc7S,GAAG,WAAWA,IAAIuC,EAAE6B,EAAE1F,EAAEouI,SAASvqI,EAAEuqI,UAAS,EAAGpuI,EAAEgnB,OAAOnjB,EAAEmjB,KAAKhnB,EAAEgnB,QAAQthB,EAAE7B,EAAEuxL,gBAAgB1vL,EAAEpE,GAAGoE,EAAEo4K,IAAI79K,EAAEyF,EAAEq4K,IAAI/9K,EAAEk0L,GAAGxuL,EAAEzF,GAASA,EAAEgtK,UAAUvnK,EAAE7B,EAAEo4K,GAAG36K,EAAEtB,GAAUsB,GAAG,IAAK,SAAS,IAAK,SAAS,IAAK,QAAQ2L,GAAE,OAC9fvH,GAAG2sB,EAAEryB,EAAE,MAAM,IAAK,QAAQ,IAAK,QAAQ,IAAIqyB,EAAE,EAAEA,EAAEkhJ,GAAGp0K,OAAOkzB,IAAIplB,GAAEsmK,GAAGlhJ,GAAG3sB,GAAG2sB,EAAEryB,EAAE,MAAM,IAAK,SAASiN,GAAE,QAAQvH,GAAG2sB,EAAEryB,EAAE,MAAM,IAAK,MAAM,IAAK,QAAQ,IAAK,OAAOiN,GAAE,QAAQvH,GAAGuH,GAAE,OAAOvH,GAAG2sB,EAAEryB,EAAE,MAAM,IAAK,OAAOiN,GAAE,QAAQvH,GAAGuH,GAAE,SAASvH,GAAG2sB,EAAEryB,EAAE,MAAM,IAAK,UAAUiN,GAAE,SAASvH,GAAG2sB,EAAEryB,EAAE,MAAM,IAAK,QAAQgxK,GAAGtrK,EAAE1F,GAAGqyB,EAAEu+I,GAAGlrK,EAAE1F,GAAGiN,GAAE,UAAUvH,GAAGy2K,GAAGt6K,EAAE,YAAY,MAAM,IAAK,SAASwwB,EAAEk/I,GAAG7rK,EAAE1F,GAAG,MAAM,IAAK,SAAS0F,EAAEorK,cAAc,CAACqkB,cAAcn1L,EAAEouI,UAAU/7G,EAAEnxB,EAAE,GAAGlB,EAAE,CAACkD,WAAM,IAAS+J,GAAE,UAAUvH,GAAGy2K,GAAGt6K,EAAE,YAAY,MAAM,IAAK,WAAWgwK,GAAGnsK,EACtgB1F,GAAGqyB,EAAEs/I,GAAGjsK,EAAE1F,GAAGiN,GAAE,UAAUvH,GAAGy2K,GAAGt6K,EAAE,YAAY,MAAM,QAAQwwB,EAAEryB,EAAEg8K,GAAG16K,EAAE+wB,GAAG,IAAIxtB,EAAEwtB,EAAE,IAAI1uB,KAAKkB,EAAE,GAAGA,EAAEvE,eAAeqD,GAAG,CAAC,IAAIsC,EAAEpB,EAAElB,GAAG,UAAUA,EAAE23K,GAAG51K,EAAEO,GAAG,4BAA4BtC,EAAuB,OAApBsC,EAAEA,EAAEA,EAAEs3K,YAAO,IAAgBlL,GAAG3sK,EAAEO,GAAI,aAAatC,EAAE,kBAAkBsC,GAAG,aAAa3E,GAAG,KAAK2E,IAAIusK,GAAG9sK,EAAEO,GAAG,kBAAkBA,GAAGusK,GAAG9sK,EAAE,GAAGO,GAAG,mCAAmCtC,GAAG,6BAA6BA,GAAG,cAAcA,IAAI6oK,EAAGlsK,eAAeqD,GAAG,MAAMsC,GAAGk2K,GAAGt6K,EAAE8B,GAAG,MAAMsC,GAAGyoK,EAAGhpK,EAAE/B,EAAEsC,EAAEpC,IAAI,OAAOvC,GAAG,IAAK,QAAQivK,GAAG7qK,GAAG2rK,GAAG3rK,EAAE1F,GAAE,GACnf,MAAM,IAAK,WAAWuwK,GAAG7qK,GAAGqsK,GAAGrsK,GAAG,MAAM,IAAK,SAAS,MAAM1F,EAAEkD,OAAOwC,EAAEy4D,aAAa,QAAQ,GAAGkyG,GAAGrwK,EAAEkD,QAAQ,MAAM,IAAK,SAASwC,EAAE0oI,WAAWpuI,EAAEouI,SAAmB,OAAVvsI,EAAE7B,EAAEkD,OAAcuuK,GAAG/rK,IAAI1F,EAAEouI,SAASvsI,GAAE,GAAI,MAAM7B,EAAE4pB,cAAc6nJ,GAAG/rK,IAAI1F,EAAEouI,SAASpuI,EAAE4pB,cAAa,GAAI,MAAM,QAAQ,oBAAoByI,EAAE1b,UAAUjR,EAAEm8J,QAAQua,IAAIgB,GAAG97K,EAAEtB,KAAKC,EAAE2zK,WAAW,GAAG,OAAO3zK,EAAEuV,MAAMvV,EAAE2zK,WAAW,KAAK,OAAO,KAAK,KAAK,EAAE,GAAGluK,GAAG,MAAMzF,EAAEgtK,UAAUmnB,GAAG1uL,EAAEzF,EAAEyF,EAAEuqL,cAAcjwL,OAAO,CAAC,GAAG,kBAAkBA,GAAG,OAAOC,EAAEgtK,UAAU,MAAMrhK,MAAMm9J,EAAE,MACvflnK,EAAEsmG,GAAGwnF,GAAGz0K,SAASitF,GAAGsnF,GAAGv0K,SAASk4K,GAAGnzL,IAAI4B,EAAE5B,EAAEgtK,UAAUjtK,EAAEC,EAAEgwL,cAAcpuL,EAAEi8K,IAAI79K,EAAE4B,EAAEkjK,YAAY/kK,IAAIC,EAAE2zK,WAAW,MAAK/xK,GAAG,IAAIA,EAAEyrG,SAASzrG,EAAEA,EAAEq8F,eAAem3F,eAAer1L,IAAK89K,IAAI79K,EAAEA,EAAEgtK,UAAUprK,GAAG,OAAO,KAAK,KAAK,GAA0B,OAAvB+yB,GAAEJ,IAAGx0B,EAAEC,EAAE6zK,cAAiB,KAAiB,GAAZ7zK,EAAE2zK,YAAqB3zK,EAAEosL,eAAexqL,EAAE5B,IAAE4B,EAAE,OAAO7B,EAAEA,GAAE,EAAG,OAAO0F,OAAE,IAASzF,EAAEgwL,cAAc3lJ,UAAU8oJ,GAAGnzL,IAAsBD,EAAE,QAApBsB,EAAEoE,EAAEouK,eAAyBjyK,GAAG,OAAOP,GAAsB,QAAlBA,EAAEoE,EAAEuP,MAAMi/J,WAAmC,QAAhBvwK,EAAE1D,EAAE8uL,cAAsB9uL,EAAE8uL,YAAYztL,EAAEA,EAAEwtL,WAAWnrL,IAAI1D,EAAE8uL,YAAY9uL,EAAE4uL,WACtfvtL,EAAEA,EAAEwtL,WAAW,MAAMxtL,EAAEsyK,UAAU,IAAQ/xK,IAAI7B,GAAG,KAAY,EAAPC,EAAEsiC,QAAW,OAAO78B,IAAG,IAAKzF,EAAEgwL,cAAcsE,4BAA4B,KAAe,EAAV//J,GAAEtZ,SAAWiZ,KAAImhK,KAAKnhK,GAAEohK,KAAYphK,KAAImhK,IAAInhK,KAAIohK,KAAGphK,GAAEqhK,IAAG,IAAIC,IAAI,OAAOvhK,KAAIwhK,GAAGxhK,GAAED,IAAG0hK,GAAGzhK,GAAEuhK,QAAQ5zL,GAAG7B,KAAEC,EAAE2zK,WAAW,GAAS,MAAK,KAAK,EAAE,OAAOic,KAAW,KAAK,KAAK,GAAG,OAAO7D,GAAG/rL,GAAG,KAAK,KAAK,GAAG,OAAOw0B,GAAEx0B,EAAEoL,OAAO49K,KAAK,KAAK,KAAK,GAA0B,GAAvBr0J,GAAEJ,IAAwB,QAArBx0B,EAAEC,EAAE6zK,eAA0B,OAAO,KAA0C,GAArCxyK,EAAE,KAAiB,GAAZrB,EAAE2zK,WAA+B,QAAjBjwK,EAAE3D,EAAE20L,YAAsB,GAAGrzL,EAAE2zL,GAAGj1L,GAAE,QAAS,GAAGm0B,KAAImhK,IAAI,OAAO5vL,GAAG,KAC9e,GADmfA,EAAEkuK,WACjf,IAAIjwK,EAAE1D,EAAEgV,MAAM,OAAOtR,GAAG,CAAS,GAAG,QAAX+B,EAAEsqL,GAAGrsL,IAAe,CAAyJ,IAAxJ1D,EAAE2zK,WAAW,GAAGqhB,GAAGj1L,GAAE,GAAoB,QAAhBsB,EAAEoE,EAAEinL,eAAuB1sL,EAAE0sL,YAAYrrL,EAAErB,EAAE2zK,WAAW,GAAG,OAAO5zK,EAAE6uL,aAAa5uL,EAAE8uL,YAAY,MAAM9uL,EAAE4uL,WAAW7uL,EAAE6uL,WAAe7uL,EAAEC,EAAEgV,MAAM,OAAOjV,GAAO2D,EAAE9B,GAANP,EAAEtB,GAAQ4zK,WAAW,EAAEtyK,EAAEwtL,WAAW,KAAKxtL,EAAEytL,YAAY,KAAKztL,EAAEutL,WAAW,KAAmB,QAAdnpL,EAAEpE,EAAEqyK,YAAoBryK,EAAE4qL,oBAAoB,EAAE5qL,EAAE+qL,eAAe1oL,EAAErC,EAAE2T,MAAM,KAAK3T,EAAE2uL,cAAc,KAAK3uL,EAAEwyK,cAAc,KAAKxyK,EAAEqrL,YAAY,KAAKrrL,EAAEorK,aAAa,OAAOprK,EAAE4qL,oBAAoBxmL,EAAEwmL,oBAC3e5qL,EAAE+qL,eAAe3mL,EAAE2mL,eAAe/qL,EAAE2T,MAAMvP,EAAEuP,MAAM3T,EAAE2uL,cAAcvqL,EAAEuqL,cAAc3uL,EAAEwyK,cAAcpuK,EAAEouK,cAAcxyK,EAAEqrL,YAAYjnL,EAAEinL,YAAYhpL,EAAE+B,EAAEgnK,aAAaprK,EAAEorK,aAAa,OAAO/oK,EAAE,KAAK,CAAC0oL,eAAe1oL,EAAE0oL,eAAeD,aAAazoL,EAAEyoL,aAAaI,WAAW7oL,EAAE6oL,aAAaxsL,EAAEA,EAAEk0K,QAA2B,OAAnBr/I,GAAEL,GAAY,EAAVA,GAAEtZ,QAAU,GAAUjb,EAAEgV,MAAMtR,EAAEA,EAAEuwK,aAAa,CAAC,IAAI5yK,EAAE,GAAW,QAARoE,EAAEsqL,GAAGrsL,KAAa,GAAG1D,EAAE2zK,WAAW,GAAGtyK,GAAE,EAAmB,QAAhBO,EAAE6D,EAAEinL,eAAuB1sL,EAAE0sL,YAAY9qL,EAAE5B,EAAE2zK,WAAW,GAAGqhB,GAAGj1L,GAAE,GAAI,OAAOA,EAAE60L,MAAM,WAAW70L,EAAE+0L,WAAWpxL,EAAEgwK,UAAU,OACne,QAD0e1zK,EACpgBA,EAAE4uL,WAAW7uL,EAAE6uL,cAAsB5uL,EAAE6uL,WAAW,MAAM,UAAU,EAAE7D,KAAKjrL,EAAE40L,mBAAmB50L,EAAE80L,gBAAgB,EAAEjzL,IAAI5B,EAAE2zK,WAAW,GAAGtyK,GAAE,EAAG2zL,GAAGj1L,GAAE,GAAIC,EAAEosL,eAAepsL,EAAEisL,oBAAoBrqL,EAAE,GAAG7B,EAAE00L,aAAa/wL,EAAEuwK,QAAQj0K,EAAEgV,MAAMhV,EAAEgV,MAAMtR,IAAa,QAAT9B,EAAE7B,EAAE4rD,MAAc/pD,EAAEqyK,QAAQvwK,EAAE1D,EAAEgV,MAAMtR,EAAE3D,EAAE4rD,KAAKjoD,GAAG,OAAO,OAAO3D,EAAE60L,MAAM,IAAI70L,EAAE80L,iBAAiB90L,EAAE80L,eAAe7J,KAAK,KAAKppL,EAAE7B,EAAE60L,KAAK70L,EAAE20L,UAAU9yL,EAAE7B,EAAE60L,KAAKhzL,EAAEqyK,QAAQl0K,EAAE6uL,WAAW5uL,EAAE4uL,WAAW7uL,EAAE40L,mBAAmB3J,KAAKppL,EAAEqyK,QAAQ,KAAKj0K,EAAEu0B,GAAEtZ,QAAQ2Z,GAAEL,GAAElzB,EAAI,EAAFrB,EAAI,EAAI,EAAFA,GAAK4B,GAAG,KAAK,MAAM+J,MAAMm9J,EAAE,IACrgB9oK,EAAEshG,MAAO,SAASq0F,GAAGlwL,GAAG,OAAOA,EAAE67F,KAAK,KAAK,EAAE9sE,GAAE/uB,EAAE2F,OAAO49K,KAAK,IAAIhpL,EAAEyF,EAAEkuK,UAAU,OAAS,KAAF3zK,GAAQyF,EAAEkuK,WAAa,KAAH3zK,EAAQ,GAAGyF,GAAG,KAAK,KAAK,EAA+B,GAA7BmqL,KAAKj7J,GAAEF,IAAGE,GAAEE,IAAoB,KAAO,IAAxB70B,EAAEyF,EAAEkuK,YAAwB,MAAMhoK,MAAMm9J,EAAE,MAA6B,OAAvBrjK,EAAEkuK,WAAa,KAAH3zK,EAAQ,GAAUyF,EAAE,KAAK,EAAE,OAAOqqL,GAAGrqL,GAAG,KAAK,KAAK,GAAG,OAAOkvB,GAAEJ,IAAmB,MAAhBv0B,EAAEyF,EAAEkuK,YAAkBluK,EAAEkuK,WAAa,KAAH3zK,EAAQ,GAAGyF,GAAG,KAAK,KAAK,GAAG,OAAOkvB,GAAEJ,IAAG,KAAK,KAAK,EAAE,OAAOq7J,KAAK,KAAK,KAAK,GAAG,OAAO7D,GAAGtmL,GAAG,KAAK,QAAQ,OAAO,MAAM,SAASmwL,GAAGnwL,EAAEzF,GAAG,MAAM,CAACiD,MAAMwC,EAAEkI,OAAO3N,EAAEqO,MAAMyhK,GAAG9vK,IAjBvdi0L,GAAG,SAASxuL,EAAEzF,GAAG,IAAI,IAAI4B,EAAE5B,EAAEgV,MAAM,OAAOpT,GAAG,CAAC,GAAG,IAAIA,EAAE0/F,KAAK,IAAI1/F,EAAE0/F,IAAI77F,EAAEuhB,YAAYplB,EAAEorK,gBAAgB,GAAG,IAAIprK,EAAE0/F,KAAK,OAAO1/F,EAAEoT,MAAM,CAACpT,EAAEoT,MAAMm7J,OAAOvuK,EAAEA,EAAEA,EAAEoT,MAAM,SAAS,GAAGpT,IAAI5B,EAAE,MAAM,KAAK,OAAO4B,EAAEqyK,SAAS,CAAC,GAAG,OAAOryK,EAAEuuK,QAAQvuK,EAAEuuK,SAASnwK,EAAE,OAAO4B,EAAEA,EAAEuuK,OAAOvuK,EAAEqyK,QAAQ9D,OAAOvuK,EAAEuuK,OAAOvuK,EAAEA,EAAEqyK,UAChSigB,GAAG,SAASzuL,EAAEzF,EAAE4B,EAAE7B,EAAEsB,GAAG,IAAIqC,EAAE+B,EAAEuqL,cAAc,GAAGtsL,IAAI3D,EAAE,CAAC,IAAsWqyB,EAAExtB,EAApWhB,EAAE5D,EAAEgtK,UAAgC,OAAtB9kE,GAAGsnF,GAAGv0K,SAASxV,EAAE,KAAY7D,GAAG,IAAK,QAAQ8B,EAAEitK,GAAG/sK,EAAEF,GAAG3D,EAAE4wK,GAAG/sK,EAAE7D,GAAG0F,EAAE,GAAG,MAAM,IAAK,SAAS/B,EAAE4tK,GAAG1tK,EAAEF,GAAG3D,EAAEuxK,GAAG1tK,EAAE7D,GAAG0F,EAAE,GAAG,MAAM,IAAK,SAAS/B,EAAEzC,EAAE,GAAGyC,EAAE,CAACT,WAAM,IAASlD,EAAEkB,EAAE,GAAGlB,EAAE,CAACkD,WAAM,IAASwC,EAAE,GAAG,MAAM,IAAK,WAAW/B,EAAEguK,GAAG9tK,EAAEF,GAAG3D,EAAE2xK,GAAG9tK,EAAE7D,GAAG0F,EAAE,GAAG,MAAM,QAAQ,oBAAoB/B,EAAEgT,SAAS,oBAAoB3W,EAAE2W,UAAU9S,EAAEg+J,QAAQua,IAA2B,IAAI/pJ,KAA3B2pJ,GAAGn6K,EAAE7B,GAAW6B,EAAE,KAAc8B,EAAE,IAAI3D,EAAEM,eAAe+xB,IAAI1uB,EAAErD,eAAe+xB,IAAI,MAAM1uB,EAAE0uB,GAAG,GAAG,UAC/eA,EAAE,IAAIxtB,KAAKhB,EAAEF,EAAE0uB,GAAKxuB,EAAEvD,eAAeuE,KAAKhD,IAAIA,EAAE,IAAIA,EAAEgD,GAAG,QAAQ,4BAA4BwtB,GAAG,aAAaA,GAAG,mCAAmCA,GAAG,6BAA6BA,GAAG,cAAcA,IAAIm6I,EAAGlsK,eAAe+xB,GAAG3sB,IAAIA,EAAE,KAAKA,EAAEA,GAAG,IAAIjB,KAAK4tB,EAAE,OAAO,IAAIA,KAAKryB,EAAE,CAAC,IAAIiG,EAAEjG,EAAEqyB,GAAyB,GAAtBxuB,EAAE,MAAMF,EAAEA,EAAE0uB,QAAG,EAAUryB,EAAEM,eAAe+xB,IAAIpsB,IAAIpC,IAAI,MAAMoC,GAAG,MAAMpC,GAAG,GAAG,UAAUwuB,EAAE,GAAGxuB,EAAE,CAAC,IAAIgB,KAAKhB,GAAGA,EAAEvD,eAAeuE,IAAIoB,GAAGA,EAAE3F,eAAeuE,KAAKhD,IAAIA,EAAE,IAAIA,EAAEgD,GAAG,IAAI,IAAIA,KAAKoB,EAAEA,EAAE3F,eAAeuE,IAAIhB,EAAEgB,KAAKoB,EAAEpB,KAAKhD,IAAIA,EAAE,IACpfA,EAAEgD,GAAGoB,EAAEpB,SAAShD,IAAI6D,IAAIA,EAAE,IAAIA,EAAEjB,KAAK4tB,EAAExwB,IAAIA,EAAEoE,MAAM,4BAA4BosB,GAAGpsB,EAAEA,EAAEA,EAAEs3K,YAAO,EAAO15K,EAAEA,EAAEA,EAAE05K,YAAO,EAAO,MAAMt3K,GAAGpC,IAAIoC,IAAIP,EAAEA,GAAG,IAAIjB,KAAK4tB,EAAEpsB,IAAI,aAAaosB,EAAExuB,IAAIoC,GAAG,kBAAkBA,GAAG,kBAAkBA,IAAIP,EAAEA,GAAG,IAAIjB,KAAK4tB,EAAE,GAAGpsB,GAAG,mCAAmCosB,GAAG,6BAA6BA,IAAIm6I,EAAGlsK,eAAe+xB,IAAI,MAAMpsB,GAAGk2K,GAAG76K,EAAE+wB,GAAG3sB,GAAG7B,IAAIoC,IAAIP,EAAE,MAAMA,EAAEA,GAAG,IAAIjB,KAAK4tB,EAAEpsB,IAAIpE,IAAI6D,EAAEA,GAAG,IAAIjB,KAAK,QAAQ5C,GAAGP,EAAEoE,GAAKzF,EAAE0sL,YAAYrrL,KAAErB,EAAE2zK,WAAW,KAC5cwgB,GAAG,SAAS1uL,EAAEzF,EAAE4B,EAAE7B,GAAG6B,IAAI7B,IAAIC,EAAE2zK,WAAW,IAc1C,IAAIkiB,GAAG,oBAAoBC,QAAQA,QAAQnqJ,IAAI,SAASoqJ,GAAGtwL,EAAEzF,GAAG,IAAI4B,EAAE5B,EAAE2N,OAAO5N,EAAEC,EAAEqO,MAAM,OAAOtO,GAAG,OAAO6B,IAAI7B,EAAE+vK,GAAGluK,IAAI,OAAOA,GAAGiuK,GAAGjuK,EAAEwJ,MAAMpL,EAAEA,EAAEiD,MAAM,OAAOwC,GAAG,IAAIA,EAAE67F,KAAKuuE,GAAGpqK,EAAE2F,MAAM,IAAIk/B,QAAQllC,MAAMpF,GAAG,MAAMqB,GAAGya,YAAW,WAAW,MAAMza,MAAsH,SAAS20L,GAAGvwL,GAAG,IAAIzF,EAAEyF,EAAE8P,IAAI,GAAG,OAAOvV,EAAE,GAAG,oBAAoBA,EAAE,IAAIA,EAAE,MAAM,MAAM4B,GAAGq0L,GAAGxwL,EAAE7D,QAAQ5B,EAAEib,QAAQ,KACld,SAASi7K,GAAGzwL,EAAEzF,GAAG,OAAOA,EAAEshG,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,OAAO,KAAK,EAAE,GAAe,IAAZthG,EAAE2zK,WAAe,OAAOluK,EAAE,CAAC,IAAI7D,EAAE6D,EAAEuqL,cAAcjwL,EAAE0F,EAAEouK,cAA4B7zK,GAAdyF,EAAEzF,EAAEgtK,WAAcohB,wBAAwBpuL,EAAE6mD,cAAc7mD,EAAEoL,KAAKxJ,EAAE6pL,GAAGzrL,EAAEoL,KAAKxJ,GAAG7B,GAAG0F,EAAE0wL,oCAAoCn2L,EAAE,OAAO,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,MAAM2L,MAAMm9J,EAAE,MAC7U,SAASstB,GAAG3wL,EAAEzF,GAAgD,GAAG,QAAhCA,EAAE,QAAlBA,EAAEA,EAAE0sL,aAAuB1sL,EAAE4uL,WAAW,MAAiB,CAAC,IAAIhtL,EAAE5B,EAAEA,EAAEmD,KAAK,EAAE,CAAC,IAAIvB,EAAE0/F,IAAI77F,KAAKA,EAAE,CAAC,IAAI1F,EAAE6B,EAAEugF,QAAQvgF,EAAEugF,aAAQ,OAAO,IAASpiF,GAAGA,IAAI6B,EAAEA,EAAEuB,WAAWvB,IAAI5B,IAAI,SAASq2L,GAAG5wL,EAAEzF,GAAgD,GAAG,QAAhCA,EAAE,QAAlBA,EAAEA,EAAE0sL,aAAuB1sL,EAAE4uL,WAAW,MAAiB,CAAC,IAAIhtL,EAAE5B,EAAEA,EAAEmD,KAAK,EAAE,CAAC,IAAIvB,EAAE0/F,IAAI77F,KAAKA,EAAE,CAAC,IAAI1F,EAAE6B,EAAEhB,OAAOgB,EAAEugF,QAAQpiF,IAAI6B,EAAEA,EAAEuB,WAAWvB,IAAI5B,IACtV,SAASs2L,GAAG7wL,EAAEzF,EAAE4B,GAAG,OAAOA,EAAE0/F,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAW,YAAR+0F,GAAG,EAAEz0L,GAAU,KAAK,EAAgB,GAAd6D,EAAE7D,EAAEorK,UAAyB,EAAZprK,EAAE+xK,UAAY,GAAG,OAAO3zK,EAAEyF,EAAE2L,wBAAwB,CAAC,IAAIrR,EAAE6B,EAAEilD,cAAcjlD,EAAEwJ,KAAKpL,EAAEgwL,cAAcvE,GAAG7pL,EAAEwJ,KAAKpL,EAAEgwL,eAAevqL,EAAEuM,mBAAmBjS,EAAEC,EAAE6zK,cAAcpuK,EAAE0wL,qCAAyE,YAApB,QAAhBn2L,EAAE4B,EAAE8qL,cAAsBY,GAAG1rL,EAAE5B,EAAEyF,IAAU,KAAK,EAAkB,GAAG,QAAnBzF,EAAE4B,EAAE8qL,aAAwB,CAAQ,GAAPjnL,EAAE,KAAQ,OAAO7D,EAAEoT,MAAM,OAAOpT,EAAEoT,MAAMssF,KAAK,KAAK,EAAE77F,EAAE7D,EAAEoT,MAAMg4J,UAAU,MAAM,KAAK,EAAEvnK,EAAE7D,EAAEoT,MAAMg4J,UAAUsgB,GAAG1rL,EAAE5B,EAAEyF,GAAG,OACpf,KAAK,EAA+E,OAA7EA,EAAE7D,EAAEorK,eAAU,OAAOhtK,GAAe,EAAZ4B,EAAE+xK,WAAawJ,GAAGv7K,EAAEwJ,KAAKxJ,EAAEouL,gBAAgBvqL,EAAE8wL,SAAe,KAAK,EAAS,KAAK,EAAS,KAAK,GAAG,OAAO,KAAK,GAAoH,YAAjH,OAAO30L,EAAEiyK,gBAAgBjyK,EAAEA,EAAE8xK,UAAU,OAAO9xK,IAAIA,EAAEA,EAAEiyK,cAAc,OAAOjyK,IAAIA,EAAEA,EAAEkyK,WAAW,OAAOlyK,GAAG81K,GAAG91K,OAAa,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,OAAO,MAAM+J,MAAMm9J,EAAE,MAC3T,SAAS0tB,GAAG/wL,EAAEzF,EAAE4B,GAAiC,OAA9B,oBAAoB60L,IAAIA,GAAGz2L,GAAUA,EAAEshG,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAmB,GAAG,QAAnB77F,EAAEzF,EAAE0sL,cAAyC,QAAfjnL,EAAEA,EAAEmpL,YAAqB,CAAC,IAAI7uL,EAAE0F,EAAEtC,KAAKgoL,GAAG,GAAGvpL,EAAE,GAAGA,GAAE,WAAW,IAAI6D,EAAE1F,EAAE,EAAE,CAAC,IAAI6B,EAAE6D,EAAE08E,QAAQ,QAAG,IAASvgF,EAAE,CAAC,IAAIgC,EAAE5D,EAAE,IAAI4B,IAAI,MAAMwwB,GAAG6jK,GAAGryL,EAAEwuB,IAAI3sB,EAAEA,EAAEtC,WAAWsC,IAAI1F,MAAK,MAAM,KAAK,EAAEi2L,GAAGh2L,GAAiB,oBAAd4B,EAAE5B,EAAEgtK,WAAgC37J,sBALxG,SAAY5L,EAAEzF,GAAG,IAAIA,EAAEhB,MAAMyG,EAAEuqL,cAAchwL,EAAEuH,MAAM9B,EAAEouK,cAAc7zK,EAAEqR,uBAAuB,MAAMzP,GAAGq0L,GAAGxwL,EAAE7D,IAKkB80L,CAAG12L,EAAE4B,GAAG,MAAM,KAAK,EAAEo0L,GAAGh2L,GAAG,MAAM,KAAK,EAAE22L,GAAGlxL,EAAEzF,EAAE4B,IACna,SAASg1L,GAAGnxL,GAAG,IAAIzF,EAAEyF,EAAEiuK,UAAUjuK,EAAE0qK,OAAO,KAAK1qK,EAAEuP,MAAM,KAAKvP,EAAEouK,cAAc,KAAKpuK,EAAEinL,YAAY,KAAKjnL,EAAEgnK,aAAa,KAAKhnK,EAAEiuK,UAAU,KAAKjuK,EAAEqpL,YAAY,KAAKrpL,EAAEmpL,WAAW,KAAKnpL,EAAEutL,aAAa,KAAKvtL,EAAEuqL,cAAc,KAAKvqL,EAAEunK,UAAU,KAAK,OAAOhtK,GAAG42L,GAAG52L,GAAG,SAAS62L,GAAGpxL,GAAG,OAAO,IAAIA,EAAE67F,KAAK,IAAI77F,EAAE67F,KAAK,IAAI77F,EAAE67F,IAC1S,SAASw1F,GAAGrxL,GAAGA,EAAE,CAAC,IAAI,IAAIzF,EAAEyF,EAAE0qK,OAAO,OAAOnwK,GAAG,CAAC,GAAG62L,GAAG72L,GAAG,CAAC,IAAI4B,EAAE5B,EAAE,MAAMyF,EAAEzF,EAAEA,EAAEmwK,OAAO,MAAMxkK,MAAMm9J,EAAE,MAAqB,OAAd9oK,EAAE4B,EAAEorK,UAAiBprK,EAAE0/F,KAAK,KAAK,EAAE,IAAIvhG,GAAE,EAAG,MAAM,KAAK,EAA+B,KAAK,EAAEC,EAAEA,EAAEw1K,cAAcz1K,GAAE,EAAG,MAAM,QAAQ,MAAM4L,MAAMm9J,EAAE,MAAmB,GAAZlnK,EAAE+xK,YAAepB,GAAGvyK,EAAE,IAAI4B,EAAE+xK,YAAY,IAAIluK,EAAEzF,EAAE,IAAI4B,EAAE6D,IAAI,CAAC,KAAK,OAAO7D,EAAEqyK,SAAS,CAAC,GAAG,OAAOryK,EAAEuuK,QAAQ0mB,GAAGj1L,EAAEuuK,QAAQ,CAACvuK,EAAE,KAAK,MAAM6D,EAAE7D,EAAEA,EAAEuuK,OAAiC,IAA1BvuK,EAAEqyK,QAAQ9D,OAAOvuK,EAAEuuK,OAAWvuK,EAAEA,EAAEqyK,QAAQ,IAAIryK,EAAE0/F,KAAK,IAAI1/F,EAAE0/F,KAAK,KAAK1/F,EAAE0/F,KAAK,CAAC,GAAe,EAAZ1/F,EAAE+xK,UAAY,SAAS3zK,EACvf,GAAG,OAAO4B,EAAEoT,OAAO,IAAIpT,EAAE0/F,IAAI,SAASthG,EAAO4B,EAAEoT,MAAMm7J,OAAOvuK,EAAEA,EAAEA,EAAEoT,MAAM,KAAiB,EAAZpT,EAAE+xK,WAAa,CAAC/xK,EAAEA,EAAEorK,UAAU,MAAMvnK,GAAG1F,EAAEg3L,GAAGtxL,EAAE7D,EAAE5B,GAAGg3L,GAAGvxL,EAAE7D,EAAE5B,GACvI,SAAS+2L,GAAGtxL,EAAEzF,EAAE4B,GAAG,IAAI7B,EAAE0F,EAAE67F,IAAIjgG,EAAE,IAAItB,GAAG,IAAIA,EAAE,GAAGsB,EAAEoE,EAAEpE,EAAEoE,EAAEunK,UAAUvnK,EAAEunK,UAAUruK,SAASqB,EAAE,IAAI4B,EAAEyrG,SAASzrG,EAAEuwC,WAAW8kJ,aAAaxxL,EAAEzF,GAAG4B,EAAEq1L,aAAaxxL,EAAEzF,IAAI,IAAI4B,EAAEyrG,UAAUrtG,EAAE4B,EAAEuwC,YAAa8kJ,aAAaxxL,EAAE7D,IAAK5B,EAAE4B,GAAIolB,YAAYvhB,GAA4B,QAAxB7D,EAAEA,EAAEs1L,2BAA8B,IAASt1L,GAAG,OAAO5B,EAAE4hK,UAAU5hK,EAAE4hK,QAAQua,UAAU,GAAG,IAAIp8K,GAAc,QAAV0F,EAAEA,EAAEuP,OAAgB,IAAI+hL,GAAGtxL,EAAEzF,EAAE4B,GAAG6D,EAAEA,EAAEwuK,QAAQ,OAAOxuK,GAAGsxL,GAAGtxL,EAAEzF,EAAE4B,GAAG6D,EAAEA,EAAEwuK,QAC9Y,SAAS+iB,GAAGvxL,EAAEzF,EAAE4B,GAAG,IAAI7B,EAAE0F,EAAE67F,IAAIjgG,EAAE,IAAItB,GAAG,IAAIA,EAAE,GAAGsB,EAAEoE,EAAEpE,EAAEoE,EAAEunK,UAAUvnK,EAAEunK,UAAUruK,SAASqB,EAAE4B,EAAEq1L,aAAaxxL,EAAEzF,GAAG4B,EAAEolB,YAAYvhB,QAAQ,GAAG,IAAI1F,GAAc,QAAV0F,EAAEA,EAAEuP,OAAgB,IAAIgiL,GAAGvxL,EAAEzF,EAAE4B,GAAG6D,EAAEA,EAAEwuK,QAAQ,OAAOxuK,GAAGuxL,GAAGvxL,EAAEzF,EAAE4B,GAAG6D,EAAEA,EAAEwuK,QACrN,SAAS0iB,GAAGlxL,EAAEzF,EAAE4B,GAAG,IAAI,IAAa8B,EAAEE,EAAX7D,EAAEC,EAAEqB,GAAE,IAAS,CAAC,IAAIA,EAAE,CAACA,EAAEtB,EAAEowK,OAAO1qK,EAAE,OAAO,CAAC,GAAG,OAAOpE,EAAE,MAAMsK,MAAMm9J,EAAE,MAAoB,OAAdplK,EAAErC,EAAE2rK,UAAiB3rK,EAAEigG,KAAK,KAAK,EAAE19F,GAAE,EAAG,MAAM6B,EAAE,KAAK,EAAiC,KAAK,EAAE/B,EAAEA,EAAE8xK,cAAc5xK,GAAE,EAAG,MAAM6B,EAAEpE,EAAEA,EAAE8uK,OAAO9uK,GAAE,EAAG,GAAG,IAAItB,EAAEuhG,KAAK,IAAIvhG,EAAEuhG,IAAI,CAAC77F,EAAE,IAAI,IAAI2sB,EAAE3sB,EAAEb,EAAE7E,EAAEiG,EAAEpE,EAAE+C,EAAEC,IAAI,GAAG4xL,GAAGpkK,EAAEztB,EAAEqB,GAAG,OAAOrB,EAAEqQ,OAAO,IAAIrQ,EAAE28F,IAAI38F,EAAEqQ,MAAMm7J,OAAOxrK,EAAEA,EAAEA,EAAEqQ,UAAU,CAAC,GAAGrQ,IAAIC,EAAE,MAAMa,EAAE,KAAK,OAAOd,EAAEsvK,SAAS,CAAC,GAAG,OAAOtvK,EAAEwrK,QAAQxrK,EAAEwrK,SAASvrK,EAAE,MAAMa,EAAEd,EAAEA,EAAEwrK,OAAOxrK,EAAEsvK,QAAQ9D,OAAOxrK,EAAEwrK,OAAOxrK,EAAEA,EAAEsvK,QAAQrwK,GAAGwuB,EACrf1uB,EAAEkB,EAAE7E,EAAEitK,UAAU,IAAI56I,EAAEi7E,SAASj7E,EAAE+f,WAAW5pB,YAAY3jB,GAAGwtB,EAAE7J,YAAY3jB,IAAIlB,EAAE6kB,YAAYxoB,EAAEitK,gBAAgB,GAAG,IAAIjtK,EAAEuhG,KAAK,GAAG,OAAOvhG,EAAEiV,MAAM,CAACtR,EAAE3D,EAAEitK,UAAUwI,cAAc5xK,GAAE,EAAG7D,EAAEiV,MAAMm7J,OAAOpwK,EAAEA,EAAEA,EAAEiV,MAAM,eAAe,GAAGwhL,GAAG/wL,EAAE1F,EAAE6B,GAAG,OAAO7B,EAAEiV,MAAM,CAACjV,EAAEiV,MAAMm7J,OAAOpwK,EAAEA,EAAEA,EAAEiV,MAAM,SAAS,GAAGjV,IAAIC,EAAE,MAAM,KAAK,OAAOD,EAAEk0K,SAAS,CAAC,GAAG,OAAOl0K,EAAEowK,QAAQpwK,EAAEowK,SAASnwK,EAAE,OAAkB,KAAXD,EAAEA,EAAEowK,QAAa7uE,MAAMjgG,GAAE,GAAItB,EAAEk0K,QAAQ9D,OAAOpwK,EAAEowK,OAAOpwK,EAAEA,EAAEk0K,SACpa,SAASkjB,GAAG1xL,EAAEzF,GAAG,OAAOA,EAAEshG,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAW,YAAR80F,GAAG,EAAEp2L,GAAU,KAAK,EAAE,OAAO,KAAK,EAAE,IAAI4B,EAAE5B,EAAEgtK,UAAU,GAAG,MAAMprK,EAAE,CAAC,IAAI7B,EAAEC,EAAEgwL,cAAc3uL,EAAE,OAAOoE,EAAEA,EAAEuqL,cAAcjwL,EAAE0F,EAAEzF,EAAEoL,KAAK,IAAI1H,EAAE1D,EAAE0sL,YAA+B,GAAnB1sL,EAAE0sL,YAAY,KAAQ,OAAOhpL,EAAE,CAAgF,IAA/E9B,EAAEk8K,IAAI/9K,EAAE,UAAU0F,GAAG,UAAU1F,EAAEqL,MAAM,MAAMrL,EAAEsL,MAAM4lK,GAAGrvK,EAAE7B,GAAGi8K,GAAGv2K,EAAEpE,GAAGrB,EAAEg8K,GAAGv2K,EAAE1F,GAAOsB,EAAE,EAAEA,EAAEqC,EAAExE,OAAOmC,GAAG,EAAE,CAAC,IAAIuC,EAAEF,EAAErC,GAAG+wB,EAAE1uB,EAAErC,EAAE,GAAG,UAAUuC,EAAEy3K,GAAGz5K,EAAEwwB,GAAG,4BAA4BxuB,EAAEwuK,GAAGxwK,EAAEwwB,GAAG,aAAaxuB,EAAE2uK,GAAG3wK,EAAEwwB,GAAGq8I,EAAG7sK,EAAEgC,EAAEwuB,EAAEpyB,GAAG,OAAOyF,GAAG,IAAK,QAAQyrK,GAAGtvK,EAAE7B,GAAG,MAChf,IAAK,WAAW8xK,GAAGjwK,EAAE7B,GAAG,MAAM,IAAK,SAASC,EAAE4B,EAAEivK,cAAcqkB,YAAYtzL,EAAEivK,cAAcqkB,cAAcn1L,EAAEouI,SAAmB,OAAV1oI,EAAE1F,EAAEkD,OAAcuuK,GAAG5vK,IAAI7B,EAAEouI,SAAS1oI,GAAE,GAAIzF,MAAMD,EAAEouI,WAAW,MAAMpuI,EAAE4pB,aAAa6nJ,GAAG5vK,IAAI7B,EAAEouI,SAASpuI,EAAE4pB,cAAa,GAAI6nJ,GAAG5vK,IAAI7B,EAAEouI,SAASpuI,EAAEouI,SAAS,GAAG,IAAG,MAAO,OAAO,KAAK,EAAE,GAAG,OAAOnuI,EAAEgtK,UAAU,MAAMrhK,MAAMm9J,EAAE,MAA4C,YAAtC9oK,EAAEgtK,UAAUlI,UAAU9kK,EAAEgwL,eAAqB,KAAK,EAA8D,aAA5DhwL,EAAEA,EAAEgtK,WAAYkK,UAAUl3K,EAAEk3K,SAAQ,EAAGQ,GAAG13K,EAAEw1K,iBAAuB,KAAK,GAAG,OAAO,KAAK,GACzb,GAD4b5zK,EAAE5B,EAAE,OAAOA,EAAE6zK,cACve9zK,GAAE,GAAIA,GAAE,EAAG6B,EAAE5B,EAAEgV,MAAMoiL,GAAGpM,MAAS,OAAOppL,EAAE6D,EAAE,IAAIA,EAAE7D,IAAI,CAAC,GAAG,IAAI6D,EAAE67F,IAAI59F,EAAE+B,EAAEunK,UAAUjtK,EAAa,oBAAV2D,EAAEA,EAAEwU,OAA4B++B,YAAYvzC,EAAEuzC,YAAY,UAAU,OAAO,aAAavzC,EAAEswD,QAAQ,QAAStwD,EAAE+B,EAAEunK,UAAkC3rK,OAAE,KAA1BA,EAAEoE,EAAEuqL,cAAc93K,QAAoB,OAAO7W,GAAGA,EAAEhB,eAAe,WAAWgB,EAAE2yD,QAAQ,KAAKtwD,EAAEwU,MAAM87C,QAAQonH,GAAG,UAAU/5K,SAAS,GAAG,IAAIoE,EAAE67F,IAAI77F,EAAEunK,UAAUlI,UAAU/kK,EAAE,GAAG0F,EAAEuqL,kBAAmB,IAAG,KAAKvqL,EAAE67F,KAAK,OAAO77F,EAAEouK,eAAe,OAAOpuK,EAAEouK,cAAcC,WAAW,EAACpwK,EAAE+B,EAAEuP,MAAMi/J,SAAU9D,OAAO1qK,EAAEA,EACnf/B,EAAE,SAAc,GAAG,OAAO+B,EAAEuP,MAAM,CAACvP,EAAEuP,MAAMm7J,OAAO1qK,EAAEA,EAAEA,EAAEuP,MAAM,UAAS,GAAGvP,IAAI7D,EAAE,MAAM,KAAK,OAAO6D,EAAEwuK,SAAS,CAAC,GAAG,OAAOxuK,EAAE0qK,QAAQ1qK,EAAE0qK,SAASvuK,EAAE,MAAM6D,EAAEA,EAAEA,EAAE0qK,OAAO1qK,EAAEwuK,QAAQ9D,OAAO1qK,EAAE0qK,OAAO1qK,EAAEA,EAAEwuK,QAAc,YAANojB,GAAGr3L,GAAU,KAAK,GAAS,YAANq3L,GAAGr3L,GAAU,KAAK,GAAG,OAAO,MAAM2L,MAAMm9J,EAAE,MAAO,SAASuuB,GAAG5xL,GAAG,IAAIzF,EAAEyF,EAAEinL,YAAY,GAAG,OAAO1sL,EAAE,CAACyF,EAAEinL,YAAY,KAAK,IAAI9qL,EAAE6D,EAAEunK,UAAU,OAAOprK,IAAIA,EAAE6D,EAAEunK,UAAU,IAAI6oB,IAAI71L,EAAE4N,SAAQ,SAAS5N,GAAG,IAAID,EAAEu3L,GAAG35F,KAAK,KAAKl4F,EAAEzF,GAAG4B,EAAE6F,IAAIzH,KAAK4B,EAAEgqC,IAAI5rC,GAAGA,EAAEuD,KAAKxD,EAAEA,QAC/c,IAAIw3L,GAAG,oBAAoBttG,QAAQA,QAAQ1tE,IAAI,SAASi7K,GAAG/xL,EAAEzF,EAAE4B,IAAGA,EAAEkrL,GAAGlrL,EAAE,OAAQ0/F,IAAI,EAAE1/F,EAAEioI,QAAQ,CAAC/0H,QAAQ,MAAM,IAAI/U,EAAEC,EAAEiD,MAAsD,OAAhDrB,EAAE8a,SAAS,WAAW+6K,KAAKA,IAAG,EAAGC,GAAG33L,GAAGg2L,GAAGtwL,EAAEzF,IAAW4B,EACrL,SAAS+1L,GAAGlyL,EAAEzF,EAAE4B,IAAGA,EAAEkrL,GAAGlrL,EAAE,OAAQ0/F,IAAI,EAAE,IAAIvhG,EAAE0F,EAAE2F,KAAKihH,yBAAyB,GAAG,oBAAoBtsH,EAAE,CAAC,IAAIsB,EAAErB,EAAEiD,MAAMrB,EAAEioI,QAAQ,WAAmB,OAARksD,GAAGtwL,EAAEzF,GAAUD,EAAEsB,IAAI,IAAIqC,EAAE+B,EAAEunK,UAA8O,OAApO,OAAOtpK,GAAG,oBAAoBA,EAAEk0L,oBAAoBh2L,EAAE8a,SAAS,WAAW,oBAAoB3c,IAAI,OAAO83L,GAAGA,GAAG,IAAIlsJ,IAAI,CAACjrC,OAAOm3L,GAAGjsJ,IAAIlrC,MAAMq1L,GAAGtwL,EAAEzF,IAAI,IAAI4B,EAAE5B,EAAEqO,MAAM3N,KAAKk3L,kBAAkB53L,EAAEiD,MAAM,CAAC60L,eAAe,OAAOl2L,EAAEA,EAAE,OAAcA,EAC7Z,IA+B+Tm2L,GA/B3TC,GAAGjuL,KAAKw2D,KAAK03H,GAAGzpB,EAAG5E,uBAAuBsuB,GAAG1pB,EAAGzE,kBAA2BouB,GAAG,GAAGC,GAAG,GAAG/C,GAAG,EAAYC,GAAG,EAAEC,GAAG,EAAOzhK,GAAjD,EAAqDG,GAAE,KAAKJ,GAAE,KAAKG,GAAE,EAAEE,GAAEmhK,GAAGgD,GAAG,KAAKC,GAAG,WAAWC,GAAG,WAAWC,GAAG,KAAKhD,GAAG,EAAEiD,IAAG,EAAGrB,GAAG,EAASxjK,GAAE,KAAK6jK,IAAG,EAAGC,GAAG,KAAKG,GAAG,KAAKa,IAAG,EAAGC,GAAG,KAAKC,GAAG,GAAGC,GAAG,KAAKC,GAAG,EAAEC,GAAG,KAAKC,GAAG,EAAE,SAASpL,KAAK,OAAxO,KAAgP,GAAD95J,IAAe,YAAYk3J,KAAK,GAAG,GAAG,IAAIgO,GAAGA,GAAGA,GAAG,YAAYhO,KAAK,GAAG,GAC9X,SAAS6C,GAAGpoL,EAAEzF,EAAE4B,GAAY,GAAG,KAAO,GAAnB5B,EAAEA,EAAEsiC,OAAkB,OAAO,WAAW,IAAIviC,EAAEkrL,KAAK,GAAG,KAAO,EAAFjrL,GAAK,OAAO,KAAKD,EAAE,WAAW,WAAW,GAD/C,KACmD+zB,GAAEqkK,IAAQ,OAAOnkK,GAAE,GAAG,OAAOpyB,EAAE6D,EAAE+lL,GAAG/lL,EAAc,EAAZ7D,EAAEq3L,WAAa,IAAI,UAAU,OAAOl5L,GAAG,KAAK,GAAG0F,EAAE,WAAW,MAAM,KAAK,GAAGA,EAAE+lL,GAAG/lL,EAAE,IAAI,KAAK,MAAM,KAAK,GAAG,KAAK,GAAGA,EAAE+lL,GAAG/lL,EAAE,IAAI,KAAK,MAAM,KAAK,GAAGA,EAAE,EAAE,MAAM,QAAQ,MAAMkG,MAAMm9J,EAAE,MAA4B,OAArB,OAAO70I,IAAGxuB,IAAIuuB,MAAKvuB,EAASA,EAClX,SAASqoL,GAAGroL,EAAEzF,GAAG,GAAG,GAAG84L,GAAG,MAAMA,GAAG,EAAEC,GAAG,KAAKptL,MAAMm9J,EAAE,MAAgB,GAAG,QAAbrjK,EAAEyzL,GAAGzzL,EAAEzF,IAAe,CAAC,IAAI4B,EAAEqpL,KAAK,aAAajrL,EAFlC,KAAK,EAEgC8zB,KAFrC,KAEkD,GAADA,IAAeqlK,GAAG1zL,IAAIkuB,GAAEluB,GAFzE,IAE4EquB,IAAOy3J,MAAM53J,GAAEluB,GAF3F,KAEiG,EAAFquB,KAAU,KAAKlyB,GAAG,KAAKA,IAAI,OAAOi3L,GAAGA,GAAG,IAAIt8K,IAAI,CAAC,CAAC9W,EAAEzF,WAAmB,KAAb4B,EAAEi3L,GAAG9zL,IAAIU,KAAgB7D,EAAE5B,IAAI64L,GAAGlxL,IAAIlC,EAAEzF,KACzQ,SAASk5L,GAAGzzL,EAAEzF,GAAGyF,EAAE2mL,eAAepsL,IAAIyF,EAAE2mL,eAAepsL,GAAG,IAAI4B,EAAE6D,EAAEiuK,UAAU,OAAO9xK,GAAGA,EAAEwqL,eAAepsL,IAAI4B,EAAEwqL,eAAepsL,GAAG,IAAID,EAAE0F,EAAE0qK,OAAO9uK,EAAE,KAAK,GAAG,OAAOtB,GAAG,IAAI0F,EAAE67F,IAAIjgG,EAAEoE,EAAEunK,eAAe,KAAK,OAAOjtK,GAAG,CAA+H,GAA9H6B,EAAE7B,EAAE2zK,UAAU3zK,EAAEksL,oBAAoBjsL,IAAID,EAAEksL,oBAAoBjsL,GAAG,OAAO4B,GAAGA,EAAEqqL,oBAAoBjsL,IAAI4B,EAAEqqL,oBAAoBjsL,GAAM,OAAOD,EAAEowK,QAAQ,IAAIpwK,EAAEuhG,IAAI,CAACjgG,EAAEtB,EAAEitK,UAAU,MAAMjtK,EAAEA,EAAEowK,OAA0D,OAAnD,OAAO9uK,IAAI4yB,KAAI5yB,IAAIgsL,GAAGrtL,GAAGk0B,KAAIqhK,IAAIE,GAAGp0L,EAAE2yB,KAAI0hK,GAAGr0L,EAAErB,IAAWqB,EACrc,SAAS+3L,GAAG3zL,GAAG,IAAIzF,EAAEyF,EAAE4zL,gBAAgB,GAAG,IAAIr5L,EAAE,OAAOA,EAAuB,IAAIs5L,GAAG7zL,EAA5BzF,EAAEyF,EAAE8zL,kBAA6B,OAAOv5L,EAAE,IAAI4B,EAAE6D,EAAE+zL,eAAmD,OAAO,IAAjB/zL,EAAE7D,GAA5B6D,EAAEA,EAAEg0L,uBAA4B73L,EAAE6D,IAAezF,IAAIyF,EAAE,EAAEA,EACnL,SAASkuB,GAAEluB,GAAG,GAAG,IAAIA,EAAE4zL,gBAAgB5zL,EAAEi0L,uBAAuB,WAAWj0L,EAAEk0L,iBAAiB,GAAGl0L,EAAEm0L,aAAavO,GAAG8N,GAAGx7F,KAAK,KAAKl4F,QAAQ,CAAC,IAAIzF,EAAEo5L,GAAG3zL,GAAG7D,EAAE6D,EAAEm0L,aAAa,GAAG,IAAI55L,EAAE,OAAO4B,IAAI6D,EAAEm0L,aAAa,KAAKn0L,EAAEi0L,uBAAuB,EAAEj0L,EAAEk0L,iBAAiB,QAAQ,CAAC,IAAI55L,EAAE6tL,KAAqH,GAAhH,aAAa5tL,EAAED,EAAE,GAAG,IAAIC,GAAG,IAAIA,EAAED,EAAE,GAA0CA,EAAE,IAAxCA,EAAE,IAAI,WAAWC,GAAG,IAAI,WAAWD,IAAU,GAAG,KAAKA,EAAE,GAAG,MAAMA,EAAE,GAAG,GAAO,OAAO6B,EAAE,CAAC,IAAIP,EAAEoE,EAAEk0L,iBAAiB,GAAGl0L,EAAEi0L,yBAAyB15L,GAAGqB,GAAGtB,EAAE,OAAO6B,IAAI4oL,IAAIhB,GAAG5nL,GAAG6D,EAAEi0L,uBACne15L,EAAEyF,EAAEk0L,iBAAiB55L,EAAEC,EAAE,aAAaA,EAAEqrL,GAAG8N,GAAGx7F,KAAK,KAAKl4F,IAAI2lL,GAAGrrL,EAAE85L,GAAGl8F,KAAK,KAAKl4F,GAAG,CAACguE,QAAQ,IAAI,WAAWzzE,GAAGgrL,OAAOvlL,EAAEm0L,aAAa55L,IAClI,SAAS65L,GAAGp0L,EAAEzF,GAAQ,GAALg5L,GAAG,EAAKh5L,EAAE,OAAc85L,GAAGr0L,EAAVzF,EAAE4tL,MAAaj6J,GAAEluB,GAAG,KAAK,IAAI7D,EAAEw3L,GAAG3zL,GAAG,GAAG,IAAI7D,EAAE,CAAkB,GAAjB5B,EAAEyF,EAAEm0L,aAPb,KAO+B,GAAD9lK,IAAe,MAAMnoB,MAAMm9J,EAAE,MAAiC,GAA3BixB,KAAKt0L,IAAIwuB,IAAGryB,IAAIoyB,IAAGgmK,GAAGv0L,EAAE7D,GAAM,OAAOiyB,GAAE,CAAC,IAAI9zB,EAAE+zB,GAAEA,IAAGqkK,GAAc,IAAX,IAAI92L,EAAE44L,OAAQ,IAAIC,KAAK,MAAM,MAAM9nK,GAAG+nK,GAAG10L,EAAE2sB,GAAkC,GAAtB05J,KAAKh4J,GAAE/zB,EAAEk4L,GAAGh9K,QAAQ5Z,EAPvK,IAO4K6yB,GAAO,MAAMl0B,EAAEq4L,GAAG2B,GAAGv0L,EAAE7D,GAAG6zL,GAAGhwL,EAAE7D,GAAG+xB,GAAEluB,GAAGzF,EAAE,GAAG,OAAO6zB,GAAE,OAAOxyB,EAAEoE,EAAE20L,aAAa30L,EAAEwV,QAAQy4J,UAAUjuK,EAAE40L,uBAAuBz4L,EAAE7B,EAAEm0B,GAAED,GAAE,KAAKl0B,GAAG,KAAKs1L,GAAG,KAP9T,EAOsU,MAAM1pL,MAAMm9J,EAAE,MAAM,KAPrV,EAO6VgxB,GAAGr0L,EAAE,EAAE7D,EAAE,EAAEA,GAAG,MAAM,KAAK0zL,GACvb,GAD0bG,GAAGhwL,EAAE7D,GACteA,KADye7B,EAAE0F,EAAE60L,qBACre70L,EAAEg0L,sBAAsBc,GAAGl5L,IAAO,aAAai3L,IAAkB,IAAbj3L,EAAE+1L,GARqJ,IAQ/IpM,MAAW,CAAC,GAAGyN,GAAG,CAAC,IAAI/0L,EAAE+B,EAAE+zL,eAAe,GAAG,IAAI91L,GAAGA,GAAG9B,EAAE,CAAC6D,EAAE+zL,eAAe53L,EAAEo4L,GAAGv0L,EAAE7D,GAAG,OAAe,GAAG,KAAX8B,EAAE01L,GAAG3zL,KAAa/B,IAAI9B,EAAE,MAAM,GAAG,IAAI7B,GAAGA,IAAI6B,EAAE,CAAC6D,EAAE+zL,eAAez5L,EAAE,MAAM0F,EAAE+0L,cAAcjd,GAAGkd,GAAG98F,KAAK,KAAKl4F,GAAGpE,GAAG,MAAMo5L,GAAGh1L,GAAG,MAAM,KAAK8vL,GAAwE,GAArEE,GAAGhwL,EAAE7D,GAAyBA,KAAtB7B,EAAE0F,EAAE60L,qBAA0B70L,EAAEg0L,sBAAsBc,GAAGl5L,IAAOo3L,KAAwB,KAAnBp3L,EAAEoE,EAAE+zL,iBAAsBn4L,GAAGO,GAAG,CAAC6D,EAAE+zL,eAAe53L,EAAEo4L,GAAGv0L,EAAE7D,GAAG,MAAc,GAAG,KAAXP,EAAE+3L,GAAG3zL,KAAapE,IAAIO,EAAE,MAAM,GAAG,IAAI7B,GAAGA,IAAI6B,EAAE,CAAC6D,EAAE+zL,eACxez5L,EAAE,MAAgP,GAA1O,aAAaw4L,GAAGx4L,EAAE,IAAI,WAAWw4L,IAAIvN,KAAK,aAAasN,GAAGv4L,EAAE,GAAGA,EAAE,IAAI,WAAWu4L,IAAI,IAAuC,GAANv4L,GAA7BsB,EAAE2pL,MAA+BjrL,KAAQA,EAAE,IAApC6B,EAAE,IAAI,WAAWA,GAAGP,IAAmBtB,GAAG,IAAIA,EAAE,IAAI,IAAIA,EAAE,IAAI,KAAKA,EAAE,KAAK,KAAKA,EAAE,KAAK,IAAIA,EAAE,IAAI,KAAKA,EAAE,KAAK,KAAKi4L,GAAGj4L,EAAE,OAAOA,KAAQA,EAAE6B,IAAO,GAAG7B,EAAE,CAAC0F,EAAE+0L,cAAcjd,GAAGkd,GAAG98F,KAAK,KAAKl4F,GAAG1F,GAAG,MAAM06L,GAAGh1L,GAAG,MAAM,KAT5L,EASoM,GAAG,aAAa6yL,IAAI,OAAOE,GAAG,CAAC90L,EAAE40L,GAAG,IAAI10L,EAAE40L,GAAuH,GAA5F,IAAxBz4L,EAAsB,EAApB6D,EAAE82L,mBAAyB36L,EAAE,GAAGsB,EAAgB,EAAduC,EAAE+2L,YAA8D56L,GAAhD2D,EAAEsnL,MAAM,IAAI,WAAWtnL,IAAgB,EAAZE,EAAEq1L,WAAa,QAAW53L,EAAE,EAAEA,EAAEtB,EAAE2D,GAAM,GAAG3D,EAAE,CAAC01L,GAAGhwL,EAAE7D,GAAG6D,EAAE+0L,cAC/ejd,GAAGkd,GAAG98F,KAAK,KAAKl4F,GAAG1F,GAAG,OAAO06L,GAAGh1L,GAAG,MAAM,QAAQ,MAAMkG,MAAMm9J,EAAE,MAAY,GAALn1I,GAAEluB,GAAMA,EAAEm0L,eAAe55L,EAAE,OAAO65L,GAAGl8F,KAAK,KAAKl4F,IAAI,OAAO,KAChI,SAAS0zL,GAAG1zL,GAAG,IAAIzF,EAAEyF,EAAE4zL,gBAAqC,GAArBr5L,EAAE,IAAIA,EAAEA,EAAE,WAXuB,KAWP,GAAD8zB,IAAe,MAAMnoB,MAAMm9J,EAAE,MAAiC,GAA3BixB,KAAKt0L,IAAIwuB,IAAGj0B,IAAIg0B,IAAGgmK,GAAGv0L,EAAEzF,GAAM,OAAO6zB,GAAE,CAAC,IAAIjyB,EAAEkyB,GAAEA,IAAGqkK,GAAc,IAAX,IAAIp4L,EAAEk6L,OAAQ,IAAIW,KAAK,MAAM,MAAMv5L,GAAG84L,GAAG10L,EAAEpE,GAAkC,GAAtByqL,KAAKh4J,GAAElyB,EAAEq2L,GAAGh9K,QAAQlb,EAXjI,IAWsIm0B,GAAO,MAAMtyB,EAAEy2L,GAAG2B,GAAGv0L,EAAEzF,GAAGy1L,GAAGhwL,EAAEzF,GAAG2zB,GAAEluB,GAAG7D,EAAE,GAAG,OAAOiyB,GAAE,MAAMloB,MAAMm9J,EAAE,MAAMrjK,EAAE20L,aAAa30L,EAAEwV,QAAQy4J,UAAUjuK,EAAE40L,uBAAuBr6L,EAAEi0B,GAAE,KAAKwmK,GAAGh1L,GAAGkuB,GAAEluB,GAAG,OAAO,KACzY,SAASo1L,GAAGp1L,EAAEzF,GAAG,IAAI4B,EAAEkyB,GAAEA,IAAG,EAAE,IAAI,OAAOruB,EAAEzF,GAAG,QAZ0B,KAYlB8zB,GAAElyB,IAAS2pL,MAAM,SAASuP,GAAGr1L,EAAEzF,GAAG,IAAI4B,EAAEkyB,GAAEA,KAAI,EAAEA,IAZzB,EAY+B,IAAI,OAAOruB,EAAEzF,GAAG,QAZpD,KAY4D8zB,GAAElyB,IAAS2pL,MAC/I,SAASyO,GAAGv0L,EAAEzF,GAAGyF,EAAE20L,aAAa,KAAK30L,EAAE40L,uBAAuB,EAAE,IAAIz4L,EAAE6D,EAAE+0L,cAAiD,IAAlC,IAAI54L,IAAI6D,EAAE+0L,eAAe,EAAEhd,GAAG57K,IAAO,OAAOiyB,GAAE,IAAIjyB,EAAEiyB,GAAEs8I,OAAO,OAAOvuK,GAAG,CAAC,IAAI7B,EAAE6B,EAAE,OAAO7B,EAAEuhG,KAAK,KAAK,EAA6B,QAA3BvhG,EAAEA,EAAEqL,KAAK6gH,yBAA4B,IAASlsH,GAAGipL,KAAK,MAAM,KAAK,EAAE4G,KAAKj7J,GAAEF,IAAGE,GAAEE,IAAG,MAAM,KAAK,EAAEi7J,GAAG/vL,GAAG,MAAM,KAAK,EAAE6vL,KAAK,MAAM,KAAK,GAAc,KAAK,GAAGj7J,GAAEJ,IAAG,MAAM,KAAK,GAAGw3J,GAAGhsL,GAAG6B,EAAEA,EAAEuuK,OAAOl8I,GAAExuB,EAAEouB,GAAEk7J,GAAGtpL,EAAEwV,QAAQ,MAAM+Y,GAAEh0B,EAAEk0B,GAAEmhK,GAAGgD,GAAG,KAAKE,GAAGD,GAAG,WAAWE,GAAG,KAAKhD,GAAG,EAAEiD,IAAG,EACnc,SAAS0B,GAAG10L,EAAEzF,GAAG,OAAE,CAAC,IAAuB,GAAnB8rL,KAAKsE,GAAGn1K,QAAQ21K,GAAMN,GAAG,IAAI,IAAI1uL,EAAE0yB,GAAEu/I,cAAc,OAAOjyK,GAAG,CAAC,IAAI7B,EAAE6B,EAAEmc,MAAM,OAAOhe,IAAIA,EAAEsnB,QAAQ,MAAMzlB,EAAEA,EAAEuB,KAA2B,GAAtB0lF,GAAG,EAAElmF,GAAE0xB,GAAEC,GAAE,KAAKg8J,IAAG,EAAM,OAAOz8J,IAAG,OAAOA,GAAEs8I,OAAO,OAAOj8I,GAd/F,EAcoGmkK,GAAGr4L,EAAE6zB,GAAE,KAAKpuB,EAAE,CAAC,IAAIpE,EAAEoE,EAAE/B,EAAEmwB,GAAEs8I,OAAOvsK,EAAEiwB,GAAEzB,EAAEpyB,EAAwD,GAAtDA,EAAEg0B,GAAEpwB,EAAE+vK,WAAW,KAAK/vK,EAAEkrL,YAAYlrL,EAAEgrL,WAAW,KAAQ,OAAOx8J,GAAG,kBAAkBA,GAAG,oBAAoBA,EAAE7uB,KAAK,CAAC,IAAIqB,EAAEwtB,EAAE,GAAG,KAAY,EAAPxuB,EAAE0+B,MAAQ,CAAC,IAAIt8B,EAAEpC,EAAE8vK,UAAU1tK,GAAGpC,EAAE8oL,YAAY1mL,EAAE0mL,YAAY9oL,EAAEiwK,cAAc7tK,EAAE6tK,cAAcjwK,EAAEwoL,eAAepmL,EAAEomL,iBAAiBxoL,EAAE8oL,YACvf,KAAK9oL,EAAEiwK,cAAc,MAAM,IAAIlvK,EAAE,KAAe,EAAV4vB,GAAEtZ,SAAW7a,EAAEsD,EAAE,EAAE,CAAC,IAAIyF,EAAE,GAAGA,EAAE,KAAK/I,EAAEkhG,IAAI,CAAC,IAAI1nC,EAAEx5D,EAAEyzK,cAAc,GAAG,OAAOj6G,EAAEzwD,EAAE,OAAOywD,EAAEk6G,eAAqB,CAAC,IAAIqZ,EAAG/sL,EAAE4vL,cAAc7mL,OAAE,IAASgkL,EAAG9iJ,YAAY,IAAK8iJ,EAAGmH,6BAA8B3vL,IAAS,GAAGwE,EAAE,CAAC,IAAIwoB,EAAEvxB,EAAEssL,YAAY,GAAG,OAAO/6J,EAAE,CAAC,IAAI5wB,EAAE,IAAI4qC,IAAI5qC,EAAE6qC,IAAIhnC,GAAGxE,EAAEssL,YAAY3rL,OAAO4wB,EAAEia,IAAIhnC,GAAG,GAAG,KAAY,EAAPxE,EAAEkiC,MAAQ,CAAoC,GAAnCliC,EAAEuzK,WAAW,GAAG/vK,EAAE+vK,YAAY,KAAQ,IAAI/vK,EAAE09F,IAAI,GAAG,OAAO19F,EAAE8vK,UAAU9vK,EAAE09F,IAAI,OAAO,CAAC,IAAI39F,EAAEmpL,GAAG,WAAW,MAAMnpL,EAAE29F,IAAI,EAAE0rF,GAAGppL,EAAED,GAAGC,EAAEwoL,eAAe,WAClf,MAAM3mL,EAAE2sB,OAAE,EAAOxuB,EAAE5D,EAAE,IAAIyxB,EAAEpwB,EAAE05L,UAA+G,GAArG,OAAOtpK,GAAGA,EAAEpwB,EAAE05L,UAAU,IAAIxD,GAAGnlK,EAAE,IAAIuZ,IAAIla,EAAE9pB,IAAI/C,EAAEwtB,SAAgB,KAAXA,EAAEX,EAAE1sB,IAAIH,MAAgBwtB,EAAE,IAAIuZ,IAAIla,EAAE9pB,IAAI/C,EAAEwtB,KAASA,EAAE3qB,IAAI7D,GAAG,CAACwuB,EAAEwZ,IAAIhoC,GAAG,IAAIyC,EAAE20L,GAAGr9F,KAAK,KAAKt8F,EAAEuD,EAAEhB,GAAGgB,EAAErB,KAAK8C,EAAEA,GAAGjG,EAAEuzK,WAAW,KAAKvzK,EAAEgsL,eAAepsL,EAAE,MAAMyF,EAAErF,EAAEA,EAAE+vK,aAAa,OAAO/vK,GAAGgyB,EAAEzmB,OAAOkkK,GAAGjsK,EAAEwH,OAAO,qBAAqB,wLAAwL0kK,GAAGlsK,IAhB/X,IAgBmYswB,KACrfA,GAjBmG,GAiB7F9B,EAAEwjK,GAAGxjK,EAAExuB,GAAGxD,EAAEsD,EAAE,EAAE,CAAC,OAAOtD,EAAEkhG,KAAK,KAAK,EAAE18F,EAAEwtB,EAAEhyB,EAAEuzK,WAAW,KAAKvzK,EAAEgsL,eAAepsL,EAAkBitL,GAAG7sL,EAAbo3L,GAAGp3L,EAAEwE,EAAE5E,IAAW,MAAMyF,EAAE,KAAK,EAAEb,EAAEwtB,EAAE,IAAIU,EAAE1yB,EAAEgL,KAAK6vL,EAAG76L,EAAE4sK,UAAU,GAAG,KAAiB,GAAZ5sK,EAAEuzK,aAAgB,oBAAoB7gJ,EAAEu5F,0BAA0B,OAAO4uE,GAAI,oBAAoBA,EAAGrD,oBAAoB,OAAOC,KAAKA,GAAGpwL,IAAIwzL,KAAM,CAAC76L,EAAEuzK,WAAW,KAAKvzK,EAAEgsL,eAAepsL,EAAmBitL,GAAG7sL,EAAbu3L,GAAGv3L,EAAEwE,EAAE5E,IAAY,MAAMyF,GAAGrF,EAAEA,EAAE+vK,aAAa,OAAO/vK,GAAGyzB,GAAEqnK,GAAGrnK,IAAG,MAAMsnK,GAAIn7L,EAAEm7L,EAAG,SAAS,OAC9b,SAASlB,KAAK,IAAIx0L,EAAEwyL,GAAGh9K,QAAsB,OAAdg9K,GAAGh9K,QAAQ21K,GAAU,OAAOnrL,EAAEmrL,GAAGnrL,EAAE,SAAS2nL,GAAG3nL,EAAEzF,GAAGyF,EAAE6yL,IAAI,EAAE7yL,IAAI6yL,GAAG7yL,GAAG,OAAOzF,GAAGyF,EAAE8yL,IAAI,EAAE9yL,IAAI8yL,GAAG9yL,EAAE+yL,GAAGx4L,GAAG,SAASqtL,GAAG5nL,GAAGA,EAAE+vL,KAAKA,GAAG/vL,GAAG,SAASm1L,KAAK,KAAK,OAAO/mK,IAAGA,GAAEunK,GAAGvnK,IAAG,SAASqmK,KAAK,KAAK,OAAOrmK,KAAI42J,MAAM52J,GAAEunK,GAAGvnK,IAAG,SAASunK,GAAG31L,GAAG,IAAIzF,EAAE+3L,GAAGtyL,EAAEiuK,UAAUjuK,EAAEuuB,IAAsE,OAAnEvuB,EAAEuqL,cAAcvqL,EAAEutL,aAAa,OAAOhzL,IAAIA,EAAEk7L,GAAGz1L,IAAIyyL,GAAGj9K,QAAQ,KAAYjb,EACtW,SAASk7L,GAAGz1L,GAAGouB,GAAEpuB,EAAE,EAAE,CAAC,IAAIzF,EAAE6zB,GAAE6/I,UAAqB,GAAXjuK,EAAEouB,GAAEs8I,OAAU,KAAiB,KAAZt8I,GAAE8/I,WAAgB,CAAa,GAAZ3zK,EAAEi1L,GAAGj1L,EAAE6zB,GAAEG,IAAM,IAAIA,IAAG,IAAIH,GAAEo4J,oBAAoB,CAAC,IAAI,IAAIrqL,EAAE,EAAE7B,EAAE8zB,GAAE7e,MAAM,OAAOjV,GAAG,CAAC,IAAIsB,EAAEtB,EAAEqsL,eAAe1oL,EAAE3D,EAAEksL,oBAAoB5qL,EAAEO,IAAIA,EAAEP,GAAGqC,EAAE9B,IAAIA,EAAE8B,GAAG3D,EAAEA,EAAEk0K,QAAQpgJ,GAAEo4J,oBAAoBrqL,EAAE,GAAG,OAAO5B,EAAE,OAAOA,EAAE,OAAOyF,GAAG,KAAiB,KAAZA,EAAEkuK,aAAkB,OAAOluK,EAAEqpL,cAAcrpL,EAAEqpL,YAAYj7J,GAAEi7J,aAAa,OAAOj7J,GAAE+6J,aAAa,OAAOnpL,EAAEmpL,aAAanpL,EAAEmpL,WAAWC,WAAWh7J,GAAEi7J,aAAarpL,EAAEmpL,WAAW/6J,GAAE+6J,YAAY,EAAE/6J,GAAE8/I,YAAY,OACnfluK,EAAEmpL,WAAWnpL,EAAEmpL,WAAWC,WAAWh7J,GAAEpuB,EAAEqpL,YAAYj7J,GAAEpuB,EAAEmpL,WAAW/6J,SAAQ,CAAS,GAAG,QAAX7zB,EAAE21L,GAAG9hK,KAAe,OAAO7zB,EAAE2zK,WAAW,KAAK3zK,EAAE,OAAOyF,IAAIA,EAAEqpL,YAAYrpL,EAAEmpL,WAAW,KAAKnpL,EAAEkuK,WAAW,MAAkB,GAAG,QAAf3zK,EAAE6zB,GAAEogJ,SAAoB,OAAOj0K,EAAE6zB,GAAEpuB,QAAQ,OAAOouB,IAAkB,OAAfK,KAAImhK,KAAKnhK,GApBjI,GAoB8I,KAAK,SAASqmK,GAAG90L,GAAG,IAAIzF,EAAEyF,EAAE2mL,eAAuC,OAAOpsL,GAA/ByF,EAAEA,EAAEwmL,qBAA+BjsL,EAAEyF,EAAE,SAASg1L,GAAGh1L,GAAG,IAAIzF,EAAEirL,KAA8B,OAAzBE,GAAG,GAAGkQ,GAAG19F,KAAK,KAAKl4F,EAAEzF,IAAW,KACjZ,SAASq7L,GAAG51L,EAAEzF,GAAG,GAAG+5L,WAAW,OAAOpB,IAAI,GArB8B,KAqBzB,GAAD7kK,IAAe,MAAMnoB,MAAMm9J,EAAE,MAAM,IAAIlnK,EAAE6D,EAAE20L,aAAar6L,EAAE0F,EAAE40L,uBAAuB,GAAG,OAAOz4L,EAAE,OAAO,KAAoD,GAA/C6D,EAAE20L,aAAa,KAAK30L,EAAE40L,uBAAuB,EAAKz4L,IAAI6D,EAAEwV,QAAQ,MAAMtP,MAAMm9J,EAAE,MAAMrjK,EAAEm0L,aAAa,KAAKn0L,EAAEi0L,uBAAuB,EAAEj0L,EAAEk0L,iBAAiB,GAAGl0L,EAAEg0L,sBAAsB,EAAE,IAAIp4L,EAAEk5L,GAAG34L,GAClI,GADqI6D,EAAE8zL,iBAAiBl4L,EAAEtB,GAAG0F,EAAE60L,kBAAkB70L,EAAE61L,mBAAmB71L,EAAE60L,kBAAkB70L,EAAEg0L,sBAAsB,EAAE15L,GAAG0F,EAAE61L,qBAAqB71L,EAAE61L,mBACnev7L,EAAE,GAAGA,GAAG0F,EAAE+zL,iBAAiB/zL,EAAE+zL,eAAe,GAAGz5L,GAAG0F,EAAE4zL,kBAAkB5zL,EAAE4zL,gBAAgB,GAAG5zL,IAAIwuB,KAAIJ,GAAEI,GAAE,KAAKD,GAAE,GAAG,EAAEpyB,EAAE+xK,UAAU,OAAO/xK,EAAEgtL,YAAYhtL,EAAEgtL,WAAWC,WAAWjtL,EAAEP,EAAEO,EAAEktL,aAAaztL,EAAEO,EAAEP,EAAEO,EAAEktL,YAAe,OAAOztL,EAAE,CAAC,IAAIqC,EAAEowB,GAAEA,IAAGskK,GAAGF,GAAGj9K,QAAQ,KAAKgiK,GAAGzE,GAAG,IAAI50K,EAAE84K,KAAK,GAAGG,GAAGj5K,GAAG,CAAC,GAAG,mBAAmBA,EAAE,IAAIwuB,EAAE,CAAClqB,MAAMtE,EAAE4hL,eAAer9K,IAAIvE,EAAE6hL,mBAAmBhgL,EAAE,CAA8C,IAAIb,GAAjDwtB,GAAGA,EAAExuB,EAAEq6F,gBAAgB7rE,EAAE8rE,aAAallF,QAAe2sK,cAAcvzJ,EAAEuzJ,eAAe,GAAG/gL,GAAG,IAAIA,EAAE22L,WAAW,CAACnpK,EAAExtB,EAAE8gL,WAAW,IAAI1/K,EAAEpB,EAAEghL,aAC9ejhL,EAAEC,EAAEihL,UAAUjhL,EAAEA,EAAEkhL,YAAY,IAAI1zJ,EAAEi7E,SAAS1oG,EAAE0oG,SAAS,MAAMmuF,GAAIppK,EAAE,KAAK,MAAM3sB,EAAE,IAAIrF,EAAE,EAAE+I,GAAG,EAAEywD,GAAG,EAAEuzH,EAAG,EAAEx7J,EAAE,EAAE5wB,EAAE6C,EAAED,EAAE,KAAK3D,EAAE,OAAO,CAAC,IAAI,IAAIyxB,EAAK1wB,IAAIqxB,GAAG,IAAIpsB,GAAG,IAAIjF,EAAEssG,WAAWlkG,EAAE/I,EAAE4F,GAAGjF,IAAI4D,GAAG,IAAIC,GAAG,IAAI7D,EAAEssG,WAAWzzC,EAAEx5D,EAAEwE,GAAG,IAAI7D,EAAEssG,WAAWjtG,GAAGW,EAAE+jK,UAAU5lK,QAAW,QAAQuyB,EAAE1wB,EAAEilK,aAAkBriK,EAAE5C,EAAEA,EAAE0wB,EAAE,OAAO,CAAC,GAAG1wB,IAAI6C,EAAE,MAAM5D,EAA+C,GAA7C2D,IAAIyuB,KAAK+6J,IAAKnnL,IAAImD,EAAE/I,GAAGuD,IAAIgB,KAAKgtB,IAAI/sB,IAAIg1D,EAAEx5D,GAAM,QAAQqxB,EAAE1wB,EAAEw7K,aAAa,MAAU54K,GAAJ5C,EAAE4C,GAAMwuC,WAAWpxC,EAAE0wB,EAAEW,GAAG,IAAIjpB,IAAI,IAAIywD,EAAE,KAAK,CAAC1xD,MAAMiB,EAAEhB,IAAIyxD,QAAQxnC,EAAE,KAAKA,EAAEA,GAAG,CAAClqB,MAAM,EAAEC,IAAI,QAAQiqB,EACtf,KAAK8qJ,GAAG,CAACue,sBAAsB,KAAKC,YAAY93L,EAAE+3L,eAAevpK,GAAGomJ,IAAG,EAAG5kJ,GAAEvyB,EAAE,GAAG,IAAIu6L,KAAK,MAAMJ,GAAI,GAAG,OAAO5nK,GAAE,MAAMjoB,MAAMm9J,EAAE,MAAMmtB,GAAGriK,GAAE4nK,GAAI5nK,GAAEA,GAAEi7J,kBAAiB,OAAOj7J,IAAGA,GAAEvyB,EAAE,GAAG,IAAI,IAAIuC,EAAE6B,EAAE2sB,EAAEpyB,EAAE,OAAO4zB,IAAG,CAAC,IAAIvtB,EAAEutB,GAAE+/I,UAAmC,GAAvB,GAAFttK,GAAMksK,GAAG3+I,GAAEo5I,UAAU,IAAS,IAAF3mK,EAAM,CAAC,IAAIqrB,EAAEkC,GAAE8/I,UAAU,GAAG,OAAOhiJ,EAAE,CAAC,IAAIoB,EAAEpB,EAAEnc,IAAI,OAAOud,IAAI,oBAAoBA,EAAEA,EAAE,MAAMA,EAAE7X,QAAQ,OAAO,OAAS,KAAF5U,GAAQ,KAAK,EAAEywL,GAAGljK,IAAGA,GAAE+/I,YAAY,EAAE,MAAM,KAAK,EAAEmjB,GAAGljK,IAAGA,GAAE+/I,YAAY,EAAEwjB,GAAGvjK,GAAE8/I,UAAU9/I,IAAG,MAAM,KAAK,KAAKA,GAAE+/I,YAAY,KAAK,MAAM,KAAK,KAAK//I,GAAE+/I,YAC7f,KAAKwjB,GAAGvjK,GAAE8/I,UAAU9/I,IAAG,MAAM,KAAK,EAAEujK,GAAGvjK,GAAE8/I,UAAU9/I,IAAG,MAAM,KAAK,EAAM+iK,GAAG/yL,EAAPoC,EAAE4tB,GAASxB,GAAGwkK,GAAG5wL,GAAG4tB,GAAEA,GAAEi7J,YAAY,MAAM2M,GAAI,GAAG,OAAO5nK,GAAE,MAAMjoB,MAAMm9J,EAAE,MAAMmtB,GAAGriK,GAAE4nK,GAAI5nK,GAAEA,GAAEi7J,kBAAiB,OAAOj7J,IAAkD,GAA/Cd,EAAEoqJ,GAAGxrJ,EAAEgrJ,KAAKr2K,EAAEysB,EAAE4oK,YAAYtpK,EAAEU,EAAE6oK,eAAkBjqK,IAAIrrB,GAAGA,GAAGA,EAAE43F,eAAeu+E,GAAGn2K,EAAE43F,cAAcgP,gBAAgB5mG,GAAG,CAAC,OAAO+rB,GAAGyqJ,GAAGx2K,KAAKqrB,EAAEU,EAAElqB,WAAc,KAAR4qB,EAAEV,EAAEjqB,OAAiB2qB,EAAEpB,GAAG,mBAAmBrrB,GAAGA,EAAEm/K,eAAe9zJ,EAAErrB,EAAEo/K,aAAa17K,KAAKujB,IAAIwF,EAAEzsB,EAAEpD,MAAM/D,UAAU4zB,GAAGpB,EAAErrB,EAAE43F,eAAehlF,WAAWyY,EAAEwsE,aAAallF,QAAS2sK,eACjf7yJ,EAAEA,EAAE6yJ,eAAe3/K,EAAEK,EAAE0rK,YAAY7yK,OAAO0E,EAAEmG,KAAKujB,IAAI8E,EAAElqB,MAAMlC,GAAGosB,OAAE,IAASA,EAAEjqB,IAAIvE,EAAEmG,KAAKujB,IAAI8E,EAAEjqB,IAAInC,IAAI8sB,EAAEspF,QAAQx4G,EAAEwuB,IAAIpsB,EAAEosB,EAAEA,EAAExuB,EAAEA,EAAEoC,GAAGA,EAAEs2K,GAAGj2K,EAAEzC,GAAGe,EAAE23K,GAAGj2K,EAAE+rB,GAAGpsB,GAAGrB,IAAI,IAAImuB,EAAEyoK,YAAYzoK,EAAE4yJ,aAAa1/K,EAAEyJ,MAAMqjB,EAAE8yJ,eAAe5/K,EAAE0nD,QAAQ56B,EAAE+yJ,YAAYlhL,EAAE8K,MAAMqjB,EAAEgzJ,cAAcnhL,EAAE+oD,WAAUh8B,EAAEA,EAAEmqK,eAAgBC,SAAS91L,EAAEyJ,KAAKzJ,EAAE0nD,QAAQ56B,EAAEipK,kBAAkBn4L,EAAEwuB,GAAGU,EAAEkpK,SAAStqK,GAAGoB,EAAEspF,OAAOz3G,EAAE8K,KAAK9K,EAAE+oD,UAAUh8B,EAAEuqK,OAAOt3L,EAAE8K,KAAK9K,EAAE+oD,QAAQ56B,EAAEkpK,SAAStqK,OAAQA,EAAE,GAAG,IAAIoB,EAAEzsB,EAAEysB,EAAEA,EAAEqf,YAAY,IAAIrf,EAAEu6E,UAAU37E,EAAEltB,KAAK,CAACsQ,QAAQge,EAAE/qB,KAAK+qB,EAAE4xF,WACzf98G,IAAIkrB,EAAE6xF,YAAmD,IAAvC,oBAAoBt+G,EAAEkwL,OAAOlwL,EAAEkwL,QAAYlwL,EAAE,EAAEA,EAAEqrB,EAAExyB,OAAOmH,KAAIysB,EAAEpB,EAAErrB,IAAKyO,QAAQ4vG,WAAW5xF,EAAE/qB,KAAK+qB,EAAEhe,QAAQ6vG,UAAU7xF,EAAElrB,IAAI4wK,KAAKyE,GAAGC,GAAGD,GAAG,KAAKx3K,EAAEwV,QAAQrZ,EAAEgyB,GAAEvyB,EAAE,GAAG,IAAI,IAAIgF,EAAEZ,EAAE,OAAOmuB,IAAG,CAAC,IAAIqnK,EAAGrnK,GAAE+/I,UAAqC,GAAxB,GAAHsnB,GAAO3E,GAAGjwL,EAAEutB,GAAE8/I,UAAU9/I,IAAS,IAAHqnK,EAAO,CAACvpK,OAAE,EAAO,IAAIwqK,EAAGtoK,GAAEre,IAAI,GAAG,OAAO2mL,EAAG,CAAC,IAAIf,EAAGvnK,GAAEo5I,UAAU,OAAOp5I,GAAE0tE,KAAK,KAAK,EAAE5vE,EAAEypK,EAAG,MAAM,QAAQzpK,EAAEypK,EAAG,oBAAoBe,EAAGA,EAAGxqK,GAAGwqK,EAAGjhL,QAAQyW,GAAGkC,GAAEA,GAAEi7J,YAAY,MAAM2M,GAAI,GAAG,OAAO5nK,GAAE,MAAMjoB,MAAMm9J,EAAE,MAAMmtB,GAAGriK,GAAE4nK,GAAI5nK,GAAEA,GAAEi7J,kBAAiB,OAAOj7J,IAAGA,GACpf,KAAK+2J,KAAK72J,GAAEpwB,OAAO+B,EAAEwV,QAAQrZ,EAAE,GAAG82L,GAAGA,IAAG,EAAGC,GAAGlzL,EAAEmzL,GAAG54L,OAAO,IAAI4zB,GAAEvyB,EAAE,OAAOuyB,IAAG5zB,EAAE4zB,GAAEi7J,WAAWj7J,GAAEi7J,WAAW,KAAKj7J,GAAE5zB,EAAmI,GAA5G,KAArBA,EAAEyF,EAAE8zL,oBAAyB1B,GAAG,MAAM,aAAa73L,EAAEyF,IAAIszL,GAAGD,MAAMA,GAAG,EAAEC,GAAGtzL,GAAGqzL,GAAG,EAAE,oBAAoBqD,IAAIA,GAAGv6L,EAAEorK,UAAUjtK,GAAG4zB,GAAEluB,GAAMgyL,GAAG,MAAMA,IAAG,EAAGhyL,EAAEiyL,GAAGA,GAAG,KAAKjyL,EAAE,OA5B3M,KAAK,EA4B0MquB,KAAsBy3J,KAAL,KAAsB,SAASqQ,KAAK,KAAK,OAAOhoK,IAAG,CAAC,IAAInuB,EAAEmuB,GAAE+/I,UAAU,KAAO,IAAFluK,IAAQywL,GAAGtiK,GAAE8/I,UAAU9/I,IAAG,KAAO,IAAFnuB,IAAQizL,KAAKA,IAAG,EAAGtN,GAAG,IAAG,WAAgB,OAAL2O,KAAY,SAAQnmK,GAAEA,GAAEi7J,YAC9c,SAASkL,KAAK,GAAG,KAAKnB,GAAG,CAAC,IAAInzL,EAAE,GAAGmzL,GAAG,GAAGA,GAAS,OAANA,GAAG,GAAUzN,GAAG1lL,EAAE22L,KAAK,SAASA,KAAK,GAAG,OAAOzD,GAAG,OAAM,EAAG,IAAIlzL,EAAEkzL,GAAW,GAARA,GAAG,KA7B3C,KA6BqD,GAAD7kK,IAAe,MAAMnoB,MAAMm9J,EAAE,MAAM,IAAI9oK,EAAE8zB,GAAQ,IAANA,IAAGskK,GAAO3yL,EAAEA,EAAEwV,QAAQ6zK,YAAY,OAAOrpL,GAAG,CAAC,IAAI,IAAI7D,EAAE6D,EAAE,GAAG,KAAiB,IAAZ7D,EAAE+xK,WAAe,OAAO/xK,EAAE0/F,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG80F,GAAG,EAAEx0L,GAAGy0L,GAAG,EAAEz0L,IAAI,MAAM7B,GAAG,GAAG,OAAO0F,EAAE,MAAMkG,MAAMm9J,EAAE,MAAMmtB,GAAGxwL,EAAE1F,GAAG6B,EAAE6D,EAAEopL,WAAWppL,EAAEopL,WAAW,KAAKppL,EAAE7D,EAAW,OAATkyB,GAAE9zB,EAAEurL,MAAW,EAC5Z,SAAS8Q,GAAG52L,EAAEzF,EAAE4B,GAAkCorL,GAAGvnL,EAAxBzF,EAAEw3L,GAAG/xL,EAAfzF,EAAE41L,GAAGh0L,EAAE5B,GAAY,aAAuC,QAAnByF,EAAEyzL,GAAGzzL,EAAE,cAAsBkuB,GAAEluB,GAAG,SAASwwL,GAAGxwL,EAAEzF,GAAG,GAAG,IAAIyF,EAAE67F,IAAI+6F,GAAG52L,EAAEA,EAAEzF,QAAQ,IAAI,IAAI4B,EAAE6D,EAAE0qK,OAAO,OAAOvuK,GAAG,CAAC,GAAG,IAAIA,EAAE0/F,IAAI,CAAC+6F,GAAGz6L,EAAE6D,EAAEzF,GAAG,MAAW,GAAG,IAAI4B,EAAE0/F,IAAI,CAAC,IAAIvhG,EAAE6B,EAAEorK,UAAU,GAAG,oBAAoBprK,EAAEwJ,KAAKihH,0BAA0B,oBAAoBtsH,EAAE63L,oBAAoB,OAAOC,KAAKA,GAAGpwL,IAAI1H,IAAI,CAAgCitL,GAAGprL,EAAxB6D,EAAEkyL,GAAG/1L,EAAf6D,EAAEmwL,GAAG51L,EAAEyF,GAAY,aAAuC,QAAnB7D,EAAEs3L,GAAGt3L,EAAE,cAAsB+xB,GAAE/xB,GAAG,OAAOA,EAAEA,EAAEuuK,QACxb,SAAS6qB,GAAGv1L,EAAEzF,EAAE4B,GAAG,IAAI7B,EAAE0F,EAAEs1L,UAAU,OAAOh7L,GAAGA,EAAE2tC,OAAO1tC,GAAGi0B,KAAIxuB,GAAGuuB,KAAIpyB,EAAEsyB,KAAIqhK,IAAIrhK,KAAIohK,IAAI,aAAagD,IAAItN,KAAKoM,GA/BqG,IA+B/F4C,GAAGv0L,EAAEuuB,IAAGykK,IAAG,EAAGa,GAAG7zL,EAAE7D,KAAwB,KAAnB5B,EAAEyF,EAAE+zL,iBAAsBx5L,EAAE4B,IAAI6D,EAAE+zL,eAAe53L,EAAE+xB,GAAEluB,KAAK,SAAS6xL,GAAG7xL,EAAEzF,GAAG,IAAI4B,EAAE6D,EAAEunK,UAAU,OAAOprK,GAAGA,EAAE8rC,OAAO1tC,GAAO,KAAJA,EAAE,KAAiBA,EAAE6tL,GAAT7tL,EAAE4tL,KAAYnoL,EAAE,OAAiB,QAAVA,EAAEyzL,GAAGzzL,EAAEzF,KAAa2zB,GAAEluB,GACxTsyL,GAAG,SAAStyL,EAAEzF,EAAE4B,GAAG,IAAI7B,EAAEC,EAAEosL,eAAe,GAAG,OAAO3mL,EAAE,CAAC,IAAIpE,EAAErB,EAAEgzL,aAAa,GAAGvtL,EAAEuqL,gBAAgB3uL,GAAGozB,GAAExZ,QAAQoxK,IAAG,MAAO,CAAC,GAAGtsL,EAAE6B,EAAE,CAAO,OAANyqL,IAAG,EAAUrsL,EAAEshG,KAAK,KAAK,EAAEv2D,GAAG/qC,GAAGozL,KAAK,MAAM,KAAK,EAAQ,GAANvD,GAAG7vL,GAAa,EAAPA,EAAEsiC,MAAQ,IAAI1gC,GAAGP,EAAE+jD,OAAO,OAAOplD,EAAEosL,eAAepsL,EAAEisL,oBAAoB,EAAE,KAAK,MAAM,KAAK,EAAEz3J,GAAEx0B,EAAEoL,OAAO+9K,GAAGnpL,GAAG,MAAM,KAAK,EAAE2vL,GAAG3vL,EAAEA,EAAEgtK,UAAUwI,eAAe,MAAM,KAAK,GAAGz1K,EAAEC,EAAEgwL,cAAc/sL,MAAM5B,EAAErB,EAAEoL,KAAKgiC,SAASxY,GAAE82J,GAAGrqL,EAAEmpK,eAAenpK,EAAEmpK,cAAczqK,EAAE,MAAM,KAAK,GAAG,GAAG,OAAOC,EAAE6zK,cACjd,OAAG,KAD6d9zK,EAAEC,EAAEgV,MAAMi3K,sBAChelsL,GAAG6B,EAASyyL,GAAG5uL,EAAEzF,EAAE4B,IAAGgzB,GAAEL,GAAY,EAAVA,GAAEtZ,SAA8B,QAAnBjb,EAAEuzL,GAAG9tL,EAAEzF,EAAE4B,IAAmB5B,EAAEi0K,QAAQ,MAAKr/I,GAAEL,GAAY,EAAVA,GAAEtZ,SAAW,MAAM,KAAK,GAA8B,GAA3Blb,EAAEC,EAAEisL,qBAAqBrqL,EAAK,KAAiB,GAAZ6D,EAAEkuK,WAAc,CAAC,GAAG5zK,EAAE,OAAOg1L,GAAGtvL,EAAEzF,EAAE4B,GAAG5B,EAAE2zK,WAAW,GAA6E,GAAxD,QAAlBtyK,EAAErB,EAAE6zK,iBAAyBxyK,EAAEqzL,UAAU,KAAKrzL,EAAEuzL,KAAK,MAAMhgK,GAAEL,GAAEA,GAAEtZ,UAAalb,EAAE,OAAO,KAAK,OAAOwzL,GAAG9tL,EAAEzF,EAAE4B,GAAGyqL,IAAG,QAASA,IAAG,EAAsB,OAAnBrsL,EAAEosL,eAAe,EAASpsL,EAAEshG,KAAK,KAAK,EAChW,GADkWvhG,EAAEC,EAAEoL,KAAK,OAAO3F,IAAIA,EAAEiuK,UAAU,KAAK1zK,EAAE0zK,UAAU,KAAK1zK,EAAE2zK,WAAW,GAAGluK,EAAEzF,EAAEgzL,aAAa3xL,EAAEwnL,GAAG7oL,EAAE60B,GAAE5Z,SAASixK,GAAGlsL,EAAE4B,GAAGP,EAAEmvL,GAAG,KAClfxwL,EAAED,EAAE0F,EAAEpE,EAAEO,GAAG5B,EAAE2zK,WAAW,EAAK,kBAAkBtyK,GAAG,OAAOA,GAAG,oBAAoBA,EAAEiQ,aAAQ,IAASjQ,EAAEqpH,SAAS,CAAiD,GAAhD1qH,EAAEshG,IAAI,EAAEthG,EAAE6zK,cAAc,KAAK7zK,EAAE0sL,YAAY,KAAQl4J,GAAEz0B,GAAG,CAAC,IAAI2D,GAAE,EAAGylL,GAAGnpL,QAAQ0D,GAAE,EAAG1D,EAAE6zK,cAAc,OAAOxyK,EAAEkG,YAAO,IAASlG,EAAEkG,MAAMlG,EAAEkG,MAAM,KAAKklL,GAAGzsL,GAAG,IAAI4D,EAAE7D,EAAEusH,yBAAyB,oBAAoB1oH,GAAG6pL,GAAGztL,EAAED,EAAE6D,EAAE6B,GAAGpE,EAAE6nK,QAAQwkB,GAAG1tL,EAAEgtK,UAAU3rK,EAAEA,EAAEssL,oBAAoB3tL,EAAEmuL,GAAGnuL,EAAED,EAAE0F,EAAE7D,GAAG5B,EAAE+zL,GAAG,KAAK/zL,EAAED,GAAE,EAAG2D,EAAE9B,QAAQ5B,EAAEshG,IAAI,EAAEntE,GAAE,KAAKn0B,EAAEqB,EAAEO,GAAG5B,EAAEA,EAAEgV,MAAM,OAAOhV,EAAE,KAAK,GAAGyF,EAAE,CACzZ,GAD0ZpE,EAAErB,EAAE6mD,YAAY,OAAOphD,IAAIA,EAAEiuK,UACpf,KAAK1zK,EAAE0zK,UAAU,KAAK1zK,EAAE2zK,WAAW,GAAGluK,EAAEzF,EAAEgzL,aAzOoP,SAAYvtL,GAAG,IAAI,IAAIA,EAAEqlK,QAAQ,CAACrlK,EAAEqlK,QAAQ,EAAE,IAAI9qK,EAAEyF,EAAEolK,MAAM7qK,EAAEA,IAAIyF,EAAEslK,QAAQ/qK,EAAEA,EAAEuD,MAAK,SAASvD,GAAG,IAAIyF,EAAEqlK,UAAU9qK,EAAEA,EAAEoH,QAAQ3B,EAAEqlK,QAAQ,EAAErlK,EAAEslK,QAAQ/qK,MAAI,SAASA,GAAG,IAAIyF,EAAEqlK,UAAUrlK,EAAEqlK,QAAQ,EAAErlK,EAAEslK,QAAQ/qK,OAyOhbs8L,CAAGj7L,GAAM,IAAIA,EAAEypK,QAAQ,MAAMzpK,EAAE0pK,QAAqD,OAA7C1pK,EAAEA,EAAE0pK,QAAQ/qK,EAAEoL,KAAK/J,EAAEqC,EAAE1D,EAAEshG,IAQzD,SAAY77F,GAAG,GAAG,oBAAoBA,EAAE,OAAOguL,GAAGhuL,GAAG,EAAE,EAAE,QAAG,IAASA,GAAG,OAAOA,EAAE,CAAc,IAAbA,EAAEA,EAAEilH,YAAgB2kD,GAAG,OAAO,GAAG,GAAG5pK,IAAI+pK,GAAG,OAAO,GAAG,OAAO,EARjF+sB,CAAGl7L,GAAGoE,EAAEgmL,GAAGpqL,EAAEoE,GAAU/B,GAAG,KAAK,EAAE1D,EAAE0zL,GAAG,KAAK1zL,EAAEqB,EAAEoE,EAAE7D,GAAG,MAAM6D,EAAE,KAAK,EAAEzF,EAAE4zL,GAAG,KAAK5zL,EAAEqB,EAAEoE,EAAE7D,GAAG,MAAM6D,EAAE,KAAK,GAAGzF,EAAEszL,GAAG,KAAKtzL,EAAEqB,EAAEoE,EAAE7D,GAAG,MAAM6D,EAAE,KAAK,GAAGzF,EAAEwzL,GAAG,KAAKxzL,EAAEqB,EAAEoqL,GAAGpqL,EAAE+J,KAAK3F,GAAG1F,EAAE6B,GAAG,MAAM6D,EAAE,MAAMkG,MAAMm9J,EAAE,IAAIznK,EAAE,KAAM,OAAOrB,EAAE,KAAK,EAAE,OAAOD,EAAEC,EAAEoL,KAAK/J,EAAErB,EAAEgzL,aAA2CU,GAAGjuL,EAAEzF,EAAED,EAArCsB,EAAErB,EAAE6mD,cAAc9mD,EAAEsB,EAAEoqL,GAAG1rL,EAAEsB,GAAcO,GAAG,KAAK,EAAE,OAAO7B,EAAEC,EAAEoL,KAAK/J,EAAErB,EAAEgzL,aAA2CY,GAAGnuL,EAAEzF,EAAED,EAArCsB,EAAErB,EAAE6mD,cAAc9mD,EAAEsB,EAAEoqL,GAAG1rL,EAAEsB,GAAcO,GACpf,KAAK,EAAwB,GAAtBmpC,GAAG/qC,GAAGD,EAAEC,EAAE0sL,YAAe,OAAOjnL,GAAG,OAAO1F,EAAE,MAAM4L,MAAMm9J,EAAE,MAAoH,GAA9G/oK,EAAEC,EAAEgzL,aAA+B3xL,EAAE,QAApBA,EAAErB,EAAE6zK,eAAyBxyK,EAAEyT,QAAQ,KAAK+3K,GAAGpnL,EAAEzF,GAAGktL,GAAGltL,EAAED,EAAE,KAAK6B,IAAG7B,EAAEC,EAAE6zK,cAAc/+J,WAAezT,EAAE+xL,KAAKpzL,EAAEuzL,GAAG9tL,EAAEzF,EAAE4B,OAAO,CAAmF,IAA/EP,EAAErB,EAAEgtK,UAAUkK,WAAQyb,GAAGlV,GAAGz9K,EAAEgtK,UAAUwI,cAAcxP,YAAY0sB,GAAG1yL,EAAEqB,EAAEuxL,IAAG,GAAMvxL,EAAE,IAAIO,EAAE0tL,GAAGtvL,EAAE,KAAKD,EAAE6B,GAAG5B,EAAEgV,MAAMpT,EAAEA,GAAGA,EAAE+xK,WAAuB,EAAb/xK,EAAE+xK,UAAa,KAAK/xK,EAAEA,EAAEqyK,aAAa9/I,GAAE1uB,EAAEzF,EAAED,EAAE6B,GAAGwxL,KAAKpzL,EAAEA,EAAEgV,MAAM,OAAOhV,EAAE,KAAK,EAAE,OAAO6vL,GAAG7vL,GAAG,OAAOyF,GAAGwtL,GAAGjzL,GAAGD,EAAEC,EAAEoL,KAAK/J,EAAErB,EAAEgzL,aAAatvL,EAAE,OAAO+B,EAAEA,EAAEuqL,cAC5e,KAAKpsL,EAAEvC,EAAEuQ,SAASyrK,GAAGt9K,EAAEsB,GAAGuC,EAAE,KAAK,OAAOF,GAAG25K,GAAGt9K,EAAE2D,KAAK1D,EAAE2zK,WAAW,IAAIggB,GAAGluL,EAAEzF,GAAU,EAAPA,EAAEsiC,MAAQ,IAAI1gC,GAAGP,EAAE+jD,QAAQplD,EAAEosL,eAAepsL,EAAEisL,oBAAoB,EAAEjsL,EAAE,OAAOm0B,GAAE1uB,EAAEzF,EAAE4D,EAAEhC,GAAG5B,EAAEA,EAAEgV,OAAOhV,EAAE,KAAK,EAAE,OAAO,OAAOyF,GAAGwtL,GAAGjzL,GAAG,KAAK,KAAK,GAAG,OAAOq0L,GAAG5uL,EAAEzF,EAAE4B,GAAG,KAAK,EAAE,OAAO+tL,GAAG3vL,EAAEA,EAAEgtK,UAAUwI,eAAez1K,EAAEC,EAAEgzL,aAAa,OAAOvtL,EAAEzF,EAAEgV,MAAMq6K,GAAGrvL,EAAE,KAAKD,EAAE6B,GAAGuyB,GAAE1uB,EAAEzF,EAAED,EAAE6B,GAAG5B,EAAEgV,MAAM,KAAK,GAAG,OAAOjV,EAAEC,EAAEoL,KAAK/J,EAAErB,EAAEgzL,aAA2CM,GAAG7tL,EAAEzF,EAAED,EAArCsB,EAAErB,EAAE6mD,cAAc9mD,EAAEsB,EAAEoqL,GAAG1rL,EAAEsB,GAAcO,GAAG,KAAK,EAAE,OAAOuyB,GAAE1uB,EAAEzF,EAAEA,EAAEgzL,aAAapxL,GAAG5B,EAAEgV,MAAM,KAAK,EACpc,KAAK,GAAG,OAAOmf,GAAE1uB,EAAEzF,EAAEA,EAAEgzL,aAAaphL,SAAShQ,GAAG5B,EAAEgV,MAAM,KAAK,GAAGvP,EAAE,CAAC1F,EAAEC,EAAEoL,KAAKgiC,SAAS/rC,EAAErB,EAAEgzL,aAAapvL,EAAE5D,EAAEgwL,cAActsL,EAAErC,EAAE4B,MAAM,IAAImvB,EAAEpyB,EAAEoL,KAAKgiC,SAAiD,GAAxCxY,GAAE82J,GAAGt5J,EAAEo4I,eAAep4I,EAAEo4I,cAAc9mK,EAAK,OAAOE,EAAE,GAAGwuB,EAAExuB,EAAEX,MAA0G,KAApGS,EAAEohL,GAAG1yJ,EAAE1uB,GAAG,EAAwF,GAArF,oBAAoB3D,EAAEwqK,sBAAsBxqK,EAAEwqK,sBAAsBn4I,EAAE1uB,GAAG,cAAqB,GAAGE,EAAEgO,WAAWvQ,EAAEuQ,WAAW6iB,GAAExZ,QAAQ,CAACjb,EAAEuzL,GAAG9tL,EAAEzF,EAAE4B,GAAG,MAAM6D,QAAQ,IAAc,QAAV2sB,EAAEpyB,EAAEgV,SAAiBod,EAAE+9I,OAAOnwK,GAAG,OAAOoyB,GAAG,CAAC,IAAIxtB,EAAEwtB,EAAEq6I,aAAa,GAAG,OACnf7nK,EAAE,CAAChB,EAAEwuB,EAAEpd,MAAM,IAAI,IAAIhP,EAAEpB,EAAEunL,aAAa,OAAOnmL,GAAG,CAAC,GAAGA,EAAEiK,UAAUlQ,GAAG,KAAKiG,EAAEs1I,aAAa53I,GAAG,CAAC,IAAI0uB,EAAEkvE,OAAMt7F,EAAE8mL,GAAGlrL,EAAE,OAAQ0/F,IAAI,EAAE0rF,GAAG56J,EAAEpsB,IAAIosB,EAAEg6J,eAAexqL,IAAIwwB,EAAEg6J,eAAexqL,GAAiB,QAAdoE,EAAEosB,EAAEshJ,YAAoB1tK,EAAEomL,eAAexqL,IAAIoE,EAAEomL,eAAexqL,GAAGoqL,GAAG55J,EAAE+9I,OAAOvuK,GAAGgD,EAAEwnL,eAAexqL,IAAIgD,EAAEwnL,eAAexqL,GAAG,MAAMoE,EAAEA,EAAE7C,WAAWS,EAAE,KAAKwuB,EAAEkvE,KAAIlvE,EAAEhnB,OAAOpL,EAAEoL,KAAK,KAAagnB,EAAEpd,MAAM,GAAG,OAAOpR,EAAEA,EAAEusK,OAAO/9I,OAAO,IAAIxuB,EAAEwuB,EAAE,OAAOxuB,GAAG,CAAC,GAAGA,IAAI5D,EAAE,CAAC4D,EAAE,KAAK,MAAkB,GAAG,QAAfwuB,EAAExuB,EAAEqwK,SAAoB,CAAC7hJ,EAAE+9I,OAAOvsK,EAAEusK,OAAOvsK,EAAEwuB,EAAE,MAAMxuB,EAAEA,EAAEusK,OAAO/9I,EACpfxuB,EAAEuwB,GAAE1uB,EAAEzF,EAAEqB,EAAEuQ,SAAShQ,GAAG5B,EAAEA,EAAEgV,MAAM,OAAOhV,EAAE,KAAK,EAAE,OAAOqB,EAAErB,EAAEoL,KAAsBrL,GAAjB2D,EAAE1D,EAAEgzL,cAAiBphL,SAASs6K,GAAGlsL,EAAE4B,GAAmC7B,EAAEA,EAAlCsB,EAAEirL,GAAGjrL,EAAEqC,EAAE84L,wBAA8Bx8L,EAAE2zK,WAAW,EAAEx/I,GAAE1uB,EAAEzF,EAAED,EAAE6B,GAAG5B,EAAEgV,MAAM,KAAK,GAAG,OAAgBtR,EAAE+nL,GAAXpqL,EAAErB,EAAEoL,KAAYpL,EAAEgzL,cAA6BQ,GAAG/tL,EAAEzF,EAAEqB,EAAtBqC,EAAE+nL,GAAGpqL,EAAE+J,KAAK1H,GAAc3D,EAAE6B,GAAG,KAAK,GAAG,OAAO4nF,GAAG/jF,EAAEzF,EAAEA,EAAEoL,KAAKpL,EAAEgzL,aAAajzL,EAAE6B,GAAG,KAAK,GAAG,OAAO7B,EAAEC,EAAEoL,KAAK/J,EAAErB,EAAEgzL,aAAa3xL,EAAErB,EAAE6mD,cAAc9mD,EAAEsB,EAAEoqL,GAAG1rL,EAAEsB,GAAG,OAAOoE,IAAIA,EAAEiuK,UAAU,KAAK1zK,EAAE0zK,UAAU,KAAK1zK,EAAE2zK,WAAW,GAAG3zK,EAAEshG,IAAI,EAAE9sE,GAAEz0B,IAAI0F,GAAE,EAAG0jL,GAAGnpL,IAAIyF,GAAE,EAAGymL,GAAGlsL,EAAE4B,GAAGosL,GAAGhuL,EAAED,EAAEsB,GAAG8sL,GAAGnuL,EAAED,EAAEsB,EAAEO,GAAGmyL,GAAG,KAClf/zL,EAAED,GAAE,EAAG0F,EAAE7D,GAAG,KAAK,GAAG,OAAOmzL,GAAGtvL,EAAEzF,EAAE4B,GAAG,MAAM+J,MAAMm9J,EAAE,IAAI9oK,EAAEshG,OAAQ,IAAI66F,GAAG,KAAK1F,GAAG,KAChF,SAASgG,GAAGh3L,EAAEzF,EAAE4B,EAAE7B,GAAGW,KAAK4gG,IAAI77F,EAAE/E,KAAKjB,IAAImC,EAAElB,KAAKuzK,QAAQvzK,KAAKsU,MAAMtU,KAAKyvK,OAAOzvK,KAAKssK,UAAUtsK,KAAK0K,KAAK1K,KAAKmmD,YAAY,KAAKnmD,KAAKqT,MAAM,EAAErT,KAAK6U,IAAI,KAAK7U,KAAKsyL,aAAahzL,EAAEU,KAAK+rK,aAAa/rK,KAAKmzK,cAAcnzK,KAAKgsL,YAAYhsL,KAAKsvL,cAAc,KAAKtvL,KAAK4hC,KAAKviC,EAAEW,KAAKizK,UAAU,EAAEjzK,KAAKkuL,WAAWluL,KAAKouL,YAAYpuL,KAAKmuL,WAAW,KAAKnuL,KAAKurL,oBAAoBvrL,KAAK0rL,eAAe,EAAE1rL,KAAKgzK,UAAU,KAAK,SAASof,GAAGrtL,EAAEzF,EAAE4B,EAAE7B,GAAG,OAAO,IAAI08L,GAAGh3L,EAAEzF,EAAE4B,EAAE7B,GAC1b,SAAS0zL,GAAGhuL,GAAiB,UAAdA,EAAEA,EAAE5F,aAAuB4F,EAAE0jK,kBAC5C,SAAS4lB,GAAGtpL,EAAEzF,GAAG,IAAI4B,EAAE6D,EAAEiuK,UAC4E,OADlE,OAAO9xK,IAAGA,EAAEkxL,GAAGrtL,EAAE67F,IAAIthG,EAAEyF,EAAEhG,IAAIgG,EAAE68B,OAAQukB,YAAYphD,EAAEohD,YAAYjlD,EAAEwJ,KAAK3F,EAAE2F,KAAKxJ,EAAEorK,UAAUvnK,EAAEunK,UAAUprK,EAAE8xK,UAAUjuK,EAAEA,EAAEiuK,UAAU9xK,IAAIA,EAAEoxL,aAAahzL,EAAE4B,EAAE+xK,UAAU,EAAE/xK,EAAEitL,WAAW,KAAKjtL,EAAEktL,YAAY,KAAKltL,EAAEgtL,WAAW,MAAMhtL,EAAEqqL,oBAAoBxmL,EAAEwmL,oBAAoBrqL,EAAEwqL,eAAe3mL,EAAE2mL,eAAexqL,EAAEoT,MAAMvP,EAAEuP,MAAMpT,EAAEouL,cAAcvqL,EAAEuqL,cAAcpuL,EAAEiyK,cAAcpuK,EAAEouK,cAAcjyK,EAAE8qL,YAAYjnL,EAAEinL,YAAY1sL,EAAEyF,EAAEgnK,aAAa7qK,EAAE6qK,aAAa,OAAOzsK,EAAE,KAAK,CAACosL,eAAepsL,EAAEosL,eACzfD,aAAansL,EAAEmsL,aAAaI,WAAWvsL,EAAEusL,YAAY3qL,EAAEqyK,QAAQxuK,EAAEwuK,QAAQryK,EAAEmS,MAAMtO,EAAEsO,MAAMnS,EAAE2T,IAAI9P,EAAE8P,IAAW3T,EAC5G,SAASqtL,GAAGxpL,EAAEzF,EAAE4B,EAAE7B,EAAEsB,EAAEqC,GAAG,IAAIE,EAAE,EAAM,GAAJ7D,EAAE0F,EAAK,oBAAoBA,EAAEguL,GAAGhuL,KAAK7B,EAAE,QAAQ,GAAG,kBAAkB6B,EAAE7B,EAAE,OAAO6B,EAAE,OAAOA,GAAG,KAAKwpK,GAAG,OAAOmgB,GAAGxtL,EAAEgQ,SAASvQ,EAAEqC,EAAE1D,GAAG,KAAKiwC,GAAGrsC,EAAE,EAAEvC,GAAG,EAAE,MAAM,KAAK6tK,GAAGtrK,EAAE,EAAEvC,GAAG,EAAE,MAAM,KAAKub,GAAG,OAAOnX,EAAEqtL,GAAG,GAAGlxL,EAAE5B,EAAI,EAAFqB,IAAOwlD,YAAYjqC,GAAGnX,EAAE2F,KAAKwR,GAAGnX,EAAE2mL,eAAe1oL,EAAE+B,EAAE,KAAK6pK,GAAG,OAAO7pK,EAAEqtL,GAAG,GAAGlxL,EAAE5B,EAAEqB,IAAK+J,KAAKkkK,GAAG7pK,EAAEohD,YAAYyoH,GAAG7pK,EAAE2mL,eAAe1oL,EAAE+B,EAAE,KAAK8pK,GAAG,OAAO9pK,EAAEqtL,GAAG,GAAGlxL,EAAE5B,EAAEqB,IAAKwlD,YAAY0oH,GAAG9pK,EAAE2mL,eAAe1oL,EAAE+B,EAAE,QAAQ,GAAG,kBAAkBA,GAAG,OAAOA,EAAE,OAAOA,EAAEilH,UAAU,KAAKykD,GAAGvrK,EACpf,GAAG,MAAM6B,EAAE,KAAK2pK,GAAGxrK,EAAE,EAAE,MAAM6B,EAAE,KAAK4pK,GAAGzrK,EAAE,GAAG,MAAM6B,EAAE,KAAK+pK,GAAG5rK,EAAE,GAAG,MAAM6B,EAAE,KAAKgqK,GAAG7rK,EAAE,GAAG7D,EAAE,KAAK,MAAM0F,EAAE,KAAKiqK,GAAG9rK,EAAE,GAAG,MAAM6B,EAAE,MAAMkG,MAAMm9J,EAAE,IAAI,MAAMrjK,EAAEA,SAASA,EAAE,KAAgE,OAA1DzF,EAAE8yL,GAAGlvL,EAAEhC,EAAE5B,EAAEqB,IAAKwlD,YAAYphD,EAAEzF,EAAEoL,KAAKrL,EAAEC,EAAEosL,eAAe1oL,EAAS1D,EAAE,SAASovL,GAAG3pL,EAAEzF,EAAE4B,EAAE7B,GAAoC,OAAjC0F,EAAEqtL,GAAG,EAAErtL,EAAE1F,EAAEC,IAAKosL,eAAexqL,EAAS6D,EAAE,SAASupL,GAAGvpL,EAAEzF,EAAE4B,GAAuC,OAApC6D,EAAEqtL,GAAG,EAAErtL,EAAE,KAAKzF,IAAKosL,eAAexqL,EAAS6D,EACrW,SAAS0pL,GAAG1pL,EAAEzF,EAAE4B,GAAuK,OAApK5B,EAAE8yL,GAAG,EAAE,OAAOrtL,EAAEmM,SAASnM,EAAEmM,SAAS,GAAGnM,EAAEhG,IAAIO,IAAKosL,eAAexqL,EAAE5B,EAAEgtK,UAAU,CAACwI,cAAc/vK,EAAE+vK,cAAcknB,gBAAgB,KAAKxN,eAAezpL,EAAEypL,gBAAuBlvL,EAC9L,SAAS28L,GAAGl3L,EAAEzF,EAAE4B,GAAGlB,KAAK4gG,IAAIthG,EAAEU,KAAKua,QAAQ,KAAKva,KAAK80K,cAAc/vK,EAAE/E,KAAKq6L,UAAUr6L,KAAKg8L,gBAAgB,KAAKh8L,KAAK25L,uBAAuB,EAAE35L,KAAK05L,aAAa,KAAK15L,KAAK85L,eAAe,EAAE95L,KAAKszL,eAAetzL,KAAKuP,QAAQ,KAAKvP,KAAKw2K,QAAQt1K,EAAElB,KAAKk5L,aAAa,KAAKl5L,KAAKi5L,iBAAiB,GAAGj5L,KAAK24L,gBAAgB34L,KAAK84L,eAAe94L,KAAK+4L,sBAAsB/4L,KAAK45L,kBAAkB55L,KAAK46L,mBAAmB56L,KAAK64L,iBAAiB,EACva,SAASD,GAAG7zL,EAAEzF,GAAG,IAAI4B,EAAE6D,EAAE61L,mBAAyC,OAAtB71L,EAAEA,EAAE60L,kBAAyB,IAAI14L,GAAGA,GAAG5B,GAAGyF,GAAGzF,EAAE,SAASy1L,GAAGhwL,EAAEzF,GAAG,IAAI4B,EAAE6D,EAAE61L,mBAAmBv7L,EAAE0F,EAAE60L,kBAAkB14L,EAAE5B,IAAIyF,EAAE61L,mBAAmBt7L,IAAMD,EAAEC,GAAG,IAAI4B,KAAE6D,EAAE60L,kBAAkBt6L,GAAEA,GAAGyF,EAAE+zL,iBAAiB/zL,EAAE+zL,eAAe,GAAGx5L,GAAGyF,EAAE4zL,kBAAkB5zL,EAAE4zL,gBAAgB,GAClT,SAAS3D,GAAGjwL,EAAEzF,GAAGA,EAAEyF,EAAE8zL,mBAAmB9zL,EAAE8zL,iBAAiBv5L,GAAG,IAAI4B,EAAE6D,EAAE61L,mBAAmB,IAAI15L,IAAI5B,GAAG4B,EAAE6D,EAAE61L,mBAAmB71L,EAAE60L,kBAAkB70L,EAAEg0L,sBAAsB,EAAEz5L,GAAGyF,EAAE60L,oBAAoB70L,EAAE60L,kBAAkBt6L,EAAE,GAAGA,EAAEyF,EAAEg0L,wBAAwBh0L,EAAEg0L,sBAAsBz5L,IAAI,SAAS85L,GAAGr0L,EAAEzF,GAAG,IAAI4B,EAAE6D,EAAE4zL,iBAAmB,IAAIz3L,GAAGA,EAAE5B,KAAEyF,EAAE4zL,gBAAgBr5L,GAC5V,SAAS48L,GAAGn3L,EAAEzF,EAAE4B,EAAE7B,GAAG,IAAIsB,EAAErB,EAAEib,QAAQvX,EAAEkqL,KAAKhqL,EAAE2pL,GAAGzjB,SAASpmK,EAAEmqL,GAAGnqL,EAAErC,EAAEuC,GAAG6B,EAAE,GAAG7D,EAAE,CAAyB5B,EAAE,CAAC,GAAGyzK,GAA9B7xK,EAAEA,EAAE+rL,uBAAkC/rL,GAAG,IAAIA,EAAE0/F,IAAI,MAAM31F,MAAMm9J,EAAE,MAAM,IAAI12I,EAAExwB,EAAE,EAAE,CAAC,OAAOwwB,EAAEkvE,KAAK,KAAK,EAAElvE,EAAEA,EAAE46I,UAAU/8J,QAAQ,MAAMjQ,EAAE,KAAK,EAAE,GAAGw0B,GAAEpC,EAAEhnB,MAAM,CAACgnB,EAAEA,EAAE46I,UAAUoc,0CAA0C,MAAMppL,GAAGoyB,EAAEA,EAAE+9I,aAAa,OAAO/9I,GAAG,MAAMzmB,MAAMm9J,EAAE,MAAO,GAAG,IAAIlnK,EAAE0/F,IAAI,CAAC,IAAI18F,EAAEhD,EAAEwJ,KAAK,GAAGopB,GAAE5vB,GAAG,CAAChD,EAAEsnL,GAAGtnL,EAAEgD,EAAEwtB,GAAG,MAAM3sB,GAAG7D,EAAEwwB,OAAOxwB,EAAE+mL,GAC3W,OAD8W,OAAO3oL,EAAEiQ,QAAQjQ,EAAEiQ,QAAQrO,EAAE5B,EAAEg0L,eAAepyL,GAAE5B,EAAE8sL,GAAGppL,EAAEE,IAAKimI,QAAQ,CAAC/0H,QAAQrP,GACpe,QADue1F,OAAE,IAClfA,EAAE,KAAKA,KAAaC,EAAE0c,SAAS3c,GAAGitL,GAAG3rL,EAAErB,GAAG8tL,GAAGzsL,EAAEqC,GAAUA,EAAE,SAASm5L,GAAGp3L,GAAe,KAAZA,EAAEA,EAAEwV,SAAcjG,MAAM,OAAO,KAAK,OAAOvP,EAAEuP,MAAMssF,KAAK,KAAK,EAA2B,QAAQ,OAAO77F,EAAEuP,MAAMg4J,WAAW,SAAS8vB,GAAGr3L,EAAEzF,GAAqB,QAAlByF,EAAEA,EAAEouK,gBAAwB,OAAOpuK,EAAEquK,YAAYruK,EAAE2uL,UAAUp0L,IAAIyF,EAAE2uL,UAAUp0L,GAAG,SAAS+8L,GAAGt3L,EAAEzF,GAAG88L,GAAGr3L,EAAEzF,IAAIyF,EAAEA,EAAEiuK,YAAYopB,GAAGr3L,EAAEzF,GACpV,SAASg9L,GAAGv3L,EAAEzF,EAAE4B,GAA6B,IAAI7B,EAAE,IAAI48L,GAAGl3L,EAAEzF,EAAzC4B,EAAE,MAAMA,IAAG,IAAKA,EAAEs1K,SAA4B71K,EAAEyxL,GAAG,EAAE,KAAK,KAAK,IAAI9yL,EAAE,EAAE,IAAIA,EAAE,EAAE,GAAGD,EAAEkb,QAAQ5Z,EAAEA,EAAE2rK,UAAUjtK,EAAE0sL,GAAGprL,GAAGoE,EAAEs4K,IAAIh+K,EAAEkb,QAAQrZ,GAAG,IAAI5B,GAhO5J,SAAYyF,EAAEzF,GAAG,IAAI4B,EAAE4xK,GAAGxzK,GAAGu2K,GAAG3oK,SAAQ,SAASnI,GAAGiwK,GAAGjwK,EAAEzF,EAAE4B,MAAK40K,GAAG5oK,SAAQ,SAASnI,GAAGiwK,GAAGjwK,EAAEzF,EAAE4B,MAgOiEq7L,CAAGx3L,EAAE,IAAIA,EAAE4nG,SAAS5nG,EAAEA,EAAEw4F,eAAev9F,KAAKw8L,cAAcn9L,EACzN,SAASo9L,GAAG13L,GAAG,SAASA,GAAG,IAAIA,EAAE4nG,UAAU,IAAI5nG,EAAE4nG,UAAU,KAAK5nG,EAAE4nG,WAAW,IAAI5nG,EAAE4nG,UAAU,iCAAiC5nG,EAAEq/J,YAChI,SAASs4B,GAAG33L,EAAEzF,EAAE4B,EAAE7B,EAAEsB,GAAG,IAAIqC,EAAE9B,EAAEs1L,oBAAoB,GAAGxzL,EAAE,CAAC,IAAIE,EAAEF,EAAEw5L,cAAc,GAAG,oBAAoB77L,EAAE,CAAC,IAAI+wB,EAAE/wB,EAAEA,EAAE,WAAW,IAAIoE,EAAEo3L,GAAGj5L,GAAGwuB,EAAE9xB,KAAKmF,IAAIm3L,GAAG58L,EAAE4D,EAAE6B,EAAEpE,OAAO,CAAmD,GAAlDqC,EAAE9B,EAAEs1L,oBAD9B,SAAYzxL,EAAEzF,GAA0H,GAAvHA,IAA2DA,MAAvDA,EAAEyF,EAAE,IAAIA,EAAE4nG,SAAS5nG,EAAEwnG,gBAAgBxnG,EAAEugK,WAAW,OAAa,IAAIhmK,EAAEqtG,WAAWrtG,EAAEq9L,aAAa,qBAAwBr9L,EAAE,IAAI,IAAI4B,EAAEA,EAAE6D,EAAE+sK,WAAW/sK,EAAE8iB,YAAY3mB,GAAG,OAAO,IAAIo7L,GAAGv3L,EAAE,EAAEzF,EAAE,CAACk3K,SAAQ,QAAI,GACvKomB,CAAG17L,EAAE7B,GAAG6D,EAAEF,EAAEw5L,cAAiB,oBAAoB77L,EAAE,CAAC,IAAIuD,EAAEvD,EAAEA,EAAE,WAAW,IAAIoE,EAAEo3L,GAAGj5L,GAAGgB,EAAEtE,KAAKmF,IAAIq1L,IAAG,WAAW8B,GAAG58L,EAAE4D,EAAE6B,EAAEpE,MAAK,OAAOw7L,GAAGj5L,GAAG,SAAS25L,GAAG93L,EAAEzF,EAAE4B,GAAG,IAAI7B,EAAE,EAAEmB,UAAUhC,aAAQ,IAASgC,UAAU,GAAGA,UAAU,GAAG,KAAK,MAAM,CAACwpH,SAASskD,GAAGvvK,IAAI,MAAMM,EAAE,KAAK,GAAGA,EAAE6R,SAASnM,EAAE+vK,cAAcx1K,EAAEkvL,eAAettL,GAGpR,SAAS47L,GAAG/3L,EAAEzF,GAAG,IAAI4B,EAAE,EAAEV,UAAUhC,aAAQ,IAASgC,UAAU,GAAGA,UAAU,GAAG,KAAK,IAAIi8L,GAAGn9L,GAAG,MAAM2L,MAAMm9J,EAAE,MAAM,OAAOy0B,GAAG93L,EAAEzF,EAAE,KAAK4B,GALpIo7L,GAAGn9L,UAAUyR,OAAO,SAAS7L,GAAGm3L,GAAGn3L,EAAE/E,KAAKw8L,cAAc,KAAK,OAAOF,GAAGn9L,UAAU49L,QAAQ,WAAW,IAAIh4L,EAAE/E,KAAKw8L,cAAcl9L,EAAEyF,EAAE+vK,cAAconB,GAAG,KAAKn3L,EAAE,MAAK,WAAWzF,EAAE+9K,IAAI,SAG1YnI,GAAG,SAASnwK,GAAG,GAAG,KAAKA,EAAE67F,IAAI,CAAC,IAAIthG,EAAEwrL,GAAGoC,KAAK,IAAI,KAAKE,GAAGroL,EAAEzF,GAAG+8L,GAAGt3L,EAAEzF,KAAK61K,GAAG,SAASpwK,GAAG,KAAKA,EAAE67F,MAAMwsF,GAAGroL,EAAE,GAAGs3L,GAAGt3L,EAAE,KAAKqwK,GAAG,SAASrwK,GAAG,GAAG,KAAKA,EAAE67F,IAAI,CAAC,IAAIthG,EAAE4tL,KAAoBE,GAAGroL,EAAlBzF,EAAE6tL,GAAG7tL,EAAEyF,EAAE,OAAcs3L,GAAGt3L,EAAEzF,KAC1L4sK,EAAG,SAASnnK,EAAEzF,EAAE4B,GAAG,OAAO5B,GAAG,IAAK,QAAyB,GAAjBkxK,GAAGzrK,EAAE7D,GAAG5B,EAAE4B,EAAEyJ,KAAQ,UAAUzJ,EAAEwJ,MAAM,MAAMpL,EAAE,CAAC,IAAI4B,EAAE6D,EAAE7D,EAAEuwC,YAAYvwC,EAAEA,EAAEuwC,WAAsF,IAA3EvwC,EAAEA,EAAE87L,iBAAiB,cAAc5nJ,KAAKC,UAAU,GAAG/1C,GAAG,mBAAuBA,EAAE,EAAEA,EAAE4B,EAAE1C,OAAOc,IAAI,CAAC,IAAID,EAAE6B,EAAE5B,GAAG,GAAGD,IAAI0F,GAAG1F,EAAEkxI,OAAOxrI,EAAEwrI,KAAK,CAAC,IAAI5vI,EAAE48K,GAAGl+K,GAAG,IAAIsB,EAAE,MAAMsK,MAAMm9J,EAAE,KAAK4H,GAAG3wK,GAAGmxK,GAAGnxK,EAAEsB,KAAK,MAAM,IAAK,WAAWwwK,GAAGpsK,EAAE7D,GAAG,MAAM,IAAK,SAAmB,OAAV5B,EAAE4B,EAAEqB,QAAeuuK,GAAG/rK,IAAI7D,EAAEusI,SAASnuI,GAAE,KAAMmtK,EAAG0tB,GAC9ZztB,EAAG,SAAS3nK,EAAEzF,EAAE4B,EAAE7B,EAAEsB,GAAG,IAAIqC,EAAEowB,GAAEA,IAAG,EAAE,IAAI,OAAOq3J,GAAG,GAAG1lL,EAAEk4F,KAAK,KAAK39F,EAAE4B,EAAE7B,EAAEsB,IAAI,QA3DH,KA2DWyyB,GAAEpwB,IAAS6nL,OAAOle,EAAG,WA3DhC,KA2D6C,GAADv5I,MAhD0R,WAAc,GAAG,OAAO+kK,GAAG,CAAC,IAAIpzL,EAAEozL,GAAGA,GAAG,KAAKpzL,EAAEmI,SAAQ,SAASnI,EAAE7D,GAAGk4L,GAAGl4L,EAAE6D,GAAGkuB,GAAE/xB,MAAK2pL,MAgD3VoS,GAAK5D,OAAOzsB,EAAG,SAAS7nK,EAAEzF,GAAG,IAAI4B,EAAEkyB,GAAEA,IAAG,EAAE,IAAI,OAAOruB,EAAEzF,GAAG,QA3DzH,KA2DiI8zB,GAAElyB,IAAS2pL,OAA8I,IAAIqS,GAAG,CAACC,OAAO,CAAC/mB,GAAGkH,GAAGC,GAAGvR,EAAGN,EAAGsS,GAAG,SAASj5K,GAAG0uK,GAAG1uK,EAAEg5K,KAAKxR,EAAGC,EAAGl+J,GAAG2lK,GAAGolB,GAAG,CAAC9+K,SAAQ,MAClb,SAAUxV,GAAG,IAAIzF,EAAEyF,EAAEq4L,yBAnBgE,SAAYr4L,GAAG,GAAG,qBAAqB8tI,+BAA+B,OAAM,EAAG,IAAIvzI,EAAEuzI,+BAA+B,GAAGvzI,EAAE+9L,aAAa/9L,EAAEg+L,cAAc,OAAM,EAAG,IAAI,IAAIp8L,EAAE5B,EAAEi+L,OAAOx4L,GAAG02L,GAAG,SAAS12L,GAAG,IAAIzF,EAAEk+L,kBAAkBt8L,EAAE6D,OAAE,EAAO,MAA0B,GAApBA,EAAEwV,QAAQ04J,YAAe,MAAMtyK,MAAMo1L,GAAG,SAAShxL,GAAG,IAAIzF,EAAEm+L,qBAAqBv8L,EAAE6D,GAAG,MAAMpE,MAAM,MAAMtB,MAmBpXq+L,CAAGn9L,EAAE,GAAGwE,EAAE,CAAC44L,kBAAkB,KAAKC,cAAc,KAAKC,mBAAmB,KAAKC,eAAe,KAAKC,qBAAqBjwB,EAAG5E,uBAAuB80B,wBAAwB,SAASj5L,GAAW,OAAO,QAAfA,EAAEuuK,GAAGvuK,IAAmB,KAAKA,EAAEunK,WAAW8wB,wBAAwB,SAASr4L,GAAG,OAAOzF,EAAEA,EAAEyF,GAAG,MAAMk5L,4BAA4B,KAAKC,gBAAgB,KAAKC,aAAa,KAAKC,kBAAkB,KAAKC,gBAAgB,QAAzb,CAAmc,CAACjB,wBAAwBroB,GAAGupB,WAAW,EAAEzjH,QAAQ,UACpf0jH,oBAAoB,cAAczgM,EAAQ8rK,mDAAmDszB,GAAGp/L,EAAQ0gM,aAAa1B,GAAGh/L,EAAQ2gM,YAAY,SAAS15L,GAAG,GAAG,MAAMA,EAAE,OAAO,KAAK,GAAG,IAAIA,EAAE4nG,SAAS,OAAO5nG,EAAE,IAAIzF,EAAEyF,EAAEkoL,oBAAoB,QAAG,IAAS3tL,EAAE,CAAC,GAAG,oBAAoByF,EAAE6L,OAAO,MAAM3F,MAAMm9J,EAAE,MAAM,MAAMn9J,MAAMm9J,EAAE,IAAIvpK,OAAOqL,KAAKnF,KAA0C,OAA5BA,EAAE,QAAVA,EAAEuuK,GAAGh0K,IAAc,KAAKyF,EAAEunK,WACvWxuK,EAAQ4gM,UAAU,SAAS35L,EAAEzF,GAAG,GA9DwC,KA8DnC,GAAD8zB,IAAe,MAAMnoB,MAAMm9J,EAAE,MAAM,IAAIlnK,EAAEkyB,GAAEA,IAAG,EAAE,IAAI,OAAOq3J,GAAG,GAAG1lL,EAAEk4F,KAAK,KAAK39F,IAAI,QAAQ8zB,GAAElyB,EAAE2pL,OAAO/sL,EAAQ04K,QAAQ,SAASzxK,EAAEzF,EAAE4B,GAAG,IAAIu7L,GAAGn9L,GAAG,MAAM2L,MAAMm9J,EAAE,MAAM,OAAOs0B,GAAG,KAAK33L,EAAEzF,GAAE,EAAG4B,IAAIpD,EAAQ8S,OAAO,SAAS7L,EAAEzF,EAAE4B,GAAG,IAAIu7L,GAAGn9L,GAAG,MAAM2L,MAAMm9J,EAAE,MAAM,OAAOs0B,GAAG,KAAK33L,EAAEzF,GAAE,EAAG4B,IACnTpD,EAAQ6gM,uBAAuB,SAAS55L,GAAG,IAAI03L,GAAG13L,GAAG,MAAMkG,MAAMm9J,EAAE,KAAK,QAAOrjK,EAAEyxL,sBAAqB4D,IAAG,WAAWsC,GAAG,KAAK,KAAK33L,GAAE,GAAG,WAAWA,EAAEyxL,oBAAoB,KAAKzxL,EAAEs4K,IAAI,YAAS,IAAQv/K,EAAQ8gM,wBAAwBzE,GAAGr8L,EAAQ+gM,sBAAsB,SAAS95L,EAAEzF,GAAG,OAAOw9L,GAAG/3L,EAAEzF,EAAE,EAAEkB,UAAUhC,aAAQ,IAASgC,UAAU,GAAGA,UAAU,GAAG,OACvV1C,EAAQghM,oCAAoC,SAAS/5L,EAAEzF,EAAE4B,EAAE7B,GAAG,IAAIo9L,GAAGv7L,GAAG,MAAM+J,MAAMm9J,EAAE,MAAM,GAAG,MAAMrjK,QAAG,IAASA,EAAEkoL,oBAAoB,MAAMhiL,MAAMm9J,EAAE,KAAK,OAAOs0B,GAAG33L,EAAEzF,EAAE4B,GAAE,EAAG7B,IAAIvB,EAAQ+8E,QAAQ,W,6BChS/Lh9E,EAAOC,QAAUC,EAAQ,M,6BCMd,IAAIiF,EAAEE,EAAEwuB,EAAExtB,EAAEoB,EACzB,GAAG,qBAAqBgT,QAAQ,oBAAoBymL,eAAe,CAAC,IAAIr/L,EAAE,KAAKiG,EAAE,KAAKtF,EAAE,SAAFA,IAAa,GAAG,OAAOX,EAAE,IAAI,IAAIqF,EAAEjH,EAAQqrL,eAAezpL,GAAE,EAAGqF,GAAGrF,EAAE,KAAK,MAAMJ,GAAG,MAAM8b,WAAW/a,EAAE,GAAGf,IAAK8oK,EAAEtuH,KAAKC,MAAMj8C,EAAQqrL,aAAa,WAAW,OAAOrvI,KAAKC,MAAMquH,GAAGplK,EAAE,SAAS+B,GAAG,OAAOrF,EAAE0b,WAAWpY,EAAE,EAAE+B,IAAIrF,EAAEqF,EAAEqW,WAAW/a,EAAE,KAAK6C,EAAE,SAAS6B,EAAEzF,GAAGqG,EAAEyV,WAAWrW,EAAEzF,IAAIoyB,EAAE,WAAWrV,aAAa1W,IAAIzB,EAAE,WAAW,OAAM,GAAIoB,EAAExH,EAAQkhM,wBAAwB,iBAAiB,CAAC,IAAI5sK,EAAE9Z,OAAO2mL,YAAYx2L,EAAE6P,OAAOwhC,KACnf72C,EAAEqV,OAAO8C,WAAW89C,EAAE5gD,OAAO+D,aAAa,GAAG,qBAAqButB,QAAQ,CAAC,IAAI7Y,EAAEzY,OAAO4mL,qBAAqB,oBAAoB5mL,OAAOwC,uBAAuB8uB,QAAQllC,MAAM,2IAA2I,oBAAoBqsB,GAAG6Y,QAAQllC,MAAM,0IAA0I,GAAG,kBACne0tB,GAAG,oBAAoBA,EAAE2nB,IAAIj8C,EAAQqrL,aAAa,WAAW,OAAO/2J,EAAE2nB,WAAW,CAAC,IAAI/oB,EAAEvoB,EAAEsxC,MAAMj8C,EAAQqrL,aAAa,WAAW,OAAO1gL,EAAEsxC,MAAM/oB,GAAG,IAAItc,GAAE,EAAGuc,EAAE,KAAKC,GAAG,EAAE5kB,EAAE,EAAE0nB,EAAE,EAAE9vB,EAAE,WAAW,OAAOpG,EAAQqrL,gBAAgBn1J,GAAG1uB,EAAE,aAAaxH,EAAQkhM,wBAAwB,SAASj6L,GAAG,EAAEA,GAAG,IAAIA,EAAE6kC,QAAQllC,MAAM,oHAAoH4H,EAAE,EAAEvH,EAAEsE,KAAKC,MAAM,IAAIvE,GAAG,GAAG,IAAIkvB,EAAE,IAAI8qK,eAAe7qK,EAAED,EAAEkrK,MAAMlrK,EAAEmrK,MAAMC,UACnf,WAAW,GAAG,OAAOpuK,EAAE,CAAC,IAAIlsB,EAAEjH,EAAQqrL,eAAen1J,EAAEjvB,EAAEuH,EAAE,IAAI2kB,GAAE,EAAGlsB,GAAGmvB,EAAEorK,YAAY,OAAO5qL,GAAE,EAAGuc,EAAE,MAAM,MAAM3xB,GAAG,MAAM40B,EAAEorK,YAAY,MAAMhgM,QAASoV,GAAE,GAAI1R,EAAE,SAAS+B,GAAGksB,EAAElsB,EAAE2P,IAAIA,GAAE,EAAGwf,EAAEorK,YAAY,QAAQp8L,EAAE,SAAS6B,EAAEzF,GAAG4xB,EAAEjuB,GAAE,WAAW8B,EAAEjH,EAAQqrL,kBAAiB7pL,IAAIoyB,EAAE,WAAWwnC,EAAEhoC,GAAGA,GAAG,GAAG,SAASiD,EAAEpvB,EAAEzF,GAAG,IAAI4B,EAAE6D,EAAEvG,OAAOuG,EAAEjB,KAAKxE,GAAGyF,EAAE,OAAO,CAAC,IAAI1F,EAAE6B,EAAE,IAAI,EAAEP,EAAEoE,EAAE1F,GAAG,UAAG,IAASsB,GAAG,EAAEozB,EAAEpzB,EAAErB,IAA0B,MAAMyF,EAA7BA,EAAE1F,GAAGC,EAAEyF,EAAE7D,GAAGP,EAAEO,EAAE7B,GAAgB,SAASy0B,EAAE/uB,GAAU,YAAO,KAAdA,EAAEA,EAAE,IAAqB,KAAKA,EAC9c,SAAS8uB,EAAE9uB,GAAG,IAAIzF,EAAEyF,EAAE,GAAG,QAAG,IAASzF,EAAE,CAAC,IAAI4B,EAAE6D,EAAElB,MAAM,GAAG3C,IAAI5B,EAAE,CAACyF,EAAE,GAAG7D,EAAE6D,EAAE,IAAI,IAAI1F,EAAE,EAAEsB,EAAEoE,EAAEvG,OAAOa,EAAEsB,GAAG,CAAC,IAAIsD,EAAE,GAAG5E,EAAE,GAAG,EAAEkB,EAAEwE,EAAEd,GAAGN,EAAEM,EAAE,EAAE9C,EAAE4D,EAAEpB,GAAG,QAAG,IAASpD,GAAG,EAAEwzB,EAAExzB,EAAEW,QAAG,IAASC,GAAG,EAAE4yB,EAAE5yB,EAAEZ,IAAIwE,EAAE1F,GAAG8B,EAAE4D,EAAEpB,GAAGzC,EAAE7B,EAAEsE,IAAIoB,EAAE1F,GAAGkB,EAAEwE,EAAEd,GAAG/C,EAAE7B,EAAE4E,OAAQ,WAAG,IAAS9C,GAAG,EAAE4yB,EAAE5yB,EAAED,IAA0B,MAAM6D,EAA7BA,EAAE1F,GAAG8B,EAAE4D,EAAEpB,GAAGzC,EAAE7B,EAAEsE,IAAgB,OAAOrE,EAAE,OAAO,KAAK,SAASy0B,EAAEhvB,EAAEzF,GAAG,IAAI4B,EAAE6D,EAAEw6L,UAAUjgM,EAAEigM,UAAU,OAAO,IAAIr+L,EAAEA,EAAE6D,EAAEuJ,GAAGhP,EAAEgP,GAAG,IAAIslB,EAAE,GAAGD,EAAE,GAAG1xB,EAAE,EAAEyxB,EAAE,KAAKD,EAAE,EAAED,GAAE,EAAGD,GAAE,EAAGD,GAAE,EACja,SAASD,EAAEtuB,GAAG,IAAI,IAAIzF,EAAEw0B,EAAEH,GAAG,OAAOr0B,GAAG,CAAC,GAAG,OAAOA,EAAE0c,SAAS6X,EAAEF,OAAQ,MAAGr0B,EAAEkgM,WAAWz6L,GAAgD,MAA9C8uB,EAAEF,GAAGr0B,EAAEigM,UAAUjgM,EAAEosL,eAAev3J,EAAEP,EAAEt0B,GAAcA,EAAEw0B,EAAEH,IAAI,SAASP,EAAEruB,GAAa,GAAVuuB,GAAE,EAAGD,EAAEtuB,IAAOwuB,EAAE,GAAG,OAAOO,EAAEF,GAAGL,GAAE,EAAGvwB,EAAEmwB,OAAO,CAAC,IAAI7zB,EAAEw0B,EAAEH,GAAG,OAAOr0B,GAAG4D,EAAEkwB,EAAE9zB,EAAEkgM,UAAUz6L,IACtP,SAASouB,EAAEpuB,EAAEzF,GAAGi0B,GAAE,EAAGD,IAAIA,GAAE,EAAG5B,KAAK8B,GAAE,EAAG,IAAItyB,EAAEuyB,EAAE,IAAS,IAALJ,EAAE/zB,GAAOo0B,EAAEI,EAAEF,GAAG,OAAOF,MAAMA,EAAEg4J,eAAepsL,IAAIyF,IAAIb,MAAM,CAAC,IAAI7E,EAAEq0B,EAAE1X,SAAS,GAAG,OAAO3c,EAAE,CAACq0B,EAAE1X,SAAS,KAAKyX,EAAEC,EAAE+rK,cAAc,IAAI9+L,EAAEtB,EAAEq0B,EAAEg4J,gBAAgBpsL,GAAGA,EAAExB,EAAQqrL,eAAe,oBAAoBxoL,EAAE+yB,EAAE1X,SAASrb,EAAE+yB,IAAII,EAAEF,IAAIC,EAAED,GAAGP,EAAE/zB,QAAQu0B,EAAED,GAAGF,EAAEI,EAAEF,GAAG,GAAG,OAAOF,EAAE,IAAIzvB,GAAE,MAAO,CAAC,IAAI1D,EAAEuzB,EAAEH,GAAG,OAAOpzB,GAAG2C,EAAEkwB,EAAE7yB,EAAEi/L,UAAUlgM,GAAG2E,GAAE,EAAG,OAAOA,EAAE,QAAQyvB,EAAE,KAAKD,EAAEvyB,EAAEsyB,GAAE,GACpZ,SAASN,EAAEnuB,GAAG,OAAOA,GAAG,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,IAAI,KAAK,EAAE,OAAO,WAAW,KAAK,EAAE,OAAO,IAAI,QAAQ,OAAO,KAAK,IAAIkuB,EAAE3tB,EAAExH,EAAQ+rL,sBAAsB,EAAE/rL,EAAQyrL,2BAA2B,EAAEzrL,EAAQ6rL,qBAAqB,EAAE7rL,EAAQi5K,wBAAwB,EAAEj5K,EAAQ4hM,mBAAmB,KAAK5hM,EAAQ85K,8BAA8B,EAAE95K,EAAQirL,wBAAwB,SAAShkL,GAAGA,EAAEiX,SAAS,MAAMle,EAAQ6hM,2BAA2B,WAAWpsK,GAAGC,IAAID,GAAE,EAAGvwB,EAAEmwB,KACxcr1B,EAAQurL,iCAAiC,WAAW,OAAO51J,GAAG31B,EAAQ8hM,8BAA8B,WAAW,OAAO9rK,EAAEF,IAAI91B,EAAQ+hM,cAAc,SAAS96L,GAAG,OAAO0uB,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAIn0B,EAAE,EAAE,MAAM,QAAQA,EAAEm0B,EAAE,IAAIvyB,EAAEuyB,EAAEA,EAAEn0B,EAAE,IAAI,OAAOyF,IAAI,QAAQ0uB,EAAEvyB,IAAIpD,EAAQgiM,wBAAwB,aAAahiM,EAAQmrL,sBAAsBh2J,EAAEn1B,EAAQw4K,yBAAyB,SAASvxK,EAAEzF,GAAG,OAAOyF,GAAG,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,QAAQA,EAAE,EAAE,IAAI7D,EAAEuyB,EAAEA,EAAE1uB,EAAE,IAAI,OAAOzF,IAAI,QAAQm0B,EAAEvyB,IAChepD,EAAQg5K,0BAA0B,SAAS/xK,EAAEzF,EAAE4B,GAAG,IAAI7B,EAAEvB,EAAQqrL,eAAe,GAAG,kBAAkBjoL,GAAG,OAAOA,EAAE,CAAC,IAAIP,EAAEO,EAAE+c,MAAMtd,EAAE,kBAAkBA,GAAG,EAAEA,EAAEtB,EAAEsB,EAAEtB,EAAE6B,EAAE,kBAAkBA,EAAE6xE,QAAQ7xE,EAAE6xE,QAAQ7/C,EAAEnuB,QAAQ7D,EAAEgyB,EAAEnuB,GAAGpE,EAAEtB,EAAyM,OAAjM0F,EAAE,CAACuJ,GAAGrM,IAAI+Z,SAAS1c,EAAEmgM,cAAc16L,EAAEy6L,UAAU7+L,EAAE+qL,eAAvDxqL,EAAEP,EAAEO,EAAoEq+L,WAAW,GAAG5+L,EAAEtB,GAAG0F,EAAEw6L,UAAU5+L,EAAEwzB,EAAER,EAAE5uB,GAAG,OAAO+uB,EAAEF,IAAI7uB,IAAI+uB,EAAEH,KAAKL,EAAE5B,IAAI4B,GAAE,EAAGpwB,EAAEkwB,EAAEzyB,EAAEtB,MAAM0F,EAAEw6L,UAAUr+L,EAAEizB,EAAEP,EAAE7uB,GAAGwuB,GAAGC,IAAID,GAAE,EAAGvwB,EAAEmwB,KAAYpuB,GAC3ajH,EAAQksL,qBAAqB,WAAW,IAAIjlL,EAAEjH,EAAQqrL,eAAe91J,EAAEtuB,GAAG,IAAIzF,EAAEw0B,EAAEF,GAAG,OAAOt0B,IAAIo0B,GAAG,OAAOA,GAAG,OAAOp0B,GAAG,OAAOA,EAAE0c,UAAU1c,EAAEkgM,WAAWz6L,GAAGzF,EAAEosL,eAAeh4J,EAAEg4J,gBAAgBxnL,KAAKpG,EAAQiiM,sBAAsB,SAASh7L,GAAG,IAAIzF,EAAEm0B,EAAE,OAAO,WAAW,IAAIvyB,EAAEuyB,EAAEA,EAAEn0B,EAAE,IAAI,OAAOyF,EAAEtE,MAAMT,KAAKQ,WAAW,QAAQizB,EAAEvyB,M,6BClB/T,IAAI48I,EAAQ//I,EAAQ,IAChBk/F,EAAOl/F,EAAQ,KACfiiM,EAAQjiM,EAAQ,KAChBkiM,EAAcliM,EAAQ,KAS1B,SAASmiM,EAAeC,GACtB,IAAI5wL,EAAU,IAAIywL,EAAMG,GACpBliM,EAAWg/F,EAAK+iG,EAAM7gM,UAAUogJ,QAAShwI,GAQ7C,OALAuuI,EAAMpiC,OAAOz9G,EAAU+hM,EAAM7gM,UAAWoQ,GAGxCuuI,EAAMpiC,OAAOz9G,EAAUsR,GAEhBtR,EAIT,IAAImiM,EAAQF,EAtBGniM,EAAQ,MAyBvBqiM,EAAMJ,MAAQA,EAGdI,EAAMlgM,OAAS,SAAgBmgM,GAC7B,OAAOH,EAAeD,EAAYG,EAAM9/J,SAAU+/J,KAIpDD,EAAMn+C,OAASlkJ,EAAQ,KACvBqiM,EAAME,YAAcviM,EAAQ,KAC5BqiM,EAAMG,SAAWxiM,EAAQ,KAGzBqiM,EAAM71L,IAAM,SAAa2xC,GACvB,OAAO/5C,QAAQoI,IAAI2xC,IAErBkkJ,EAAMI,OAASziM,EAAQ,KAGvBqiM,EAAMK,aAAe1iM,EAAQ,KAE7BF,EAAOC,QAAUsiM,EAGjBviM,EAAOC,QAAQ4I,QAAU05L,G,6BCrDzB,IAAItiD,EAAQ//I,EAAQ,IAChBkhJ,EAAWlhJ,EAAQ,KACnB2iM,EAAqB3iM,EAAQ,KAC7B4iM,EAAkB5iM,EAAQ,KAC1BkiM,EAAcliM,EAAQ,KAO1B,SAASiiM,EAAMK,GACbrgM,KAAKsgC,SAAW+/J,EAChBrgM,KAAK4gM,aAAe,CAClBrhD,QAAS,IAAImhD,EACb93D,SAAU,IAAI83D,GASlBV,EAAM7gM,UAAUogJ,QAAU,SAAiB73H,GAGnB,kBAAXA,GACTA,EAASlnB,UAAU,IAAM,IAClB+P,IAAM/P,UAAU,GAEvBknB,EAASA,GAAU,IAGrBA,EAASu4K,EAAYjgM,KAAKsgC,SAAU5Y,IAGzBtV,OACTsV,EAAOtV,OAASsV,EAAOtV,OAAO6rB,cACrBj+B,KAAKsgC,SAASluB,OACvBsV,EAAOtV,OAASpS,KAAKsgC,SAASluB,OAAO6rB,cAErCvW,EAAOtV,OAAS,MAIlB,IAAIyuL,EAAQ,CAACF,OAAiBv8L,GAC1BsiB,EAAUvkB,QAAQC,QAAQslB,GAU9B,IARA1nB,KAAK4gM,aAAarhD,QAAQryI,SAAQ,SAAoC4zL,GACpED,EAAMt+G,QAAQu+G,EAAYx+L,UAAWw+L,EAAYp+L,aAGnD1C,KAAK4gM,aAAah4D,SAAS17H,SAAQ,SAAkC4zL,GACnED,EAAM/8L,KAAKg9L,EAAYx+L,UAAWw+L,EAAYp+L,aAGzCm+L,EAAMriM,QACXkoB,EAAUA,EAAQ7jB,KAAKg+L,EAAM96L,QAAS86L,EAAM96L,SAG9C,OAAO2gB,GAGTs5K,EAAM7gM,UAAU4hM,OAAS,SAAgBr5K,GAEvC,OADAA,EAASu4K,EAAYjgM,KAAKsgC,SAAU5Y,GAC7Bu3H,EAASv3H,EAAOnX,IAAKmX,EAAOlX,OAAQkX,EAAOq2H,kBAAkB1rI,QAAQ,MAAO,KAIrFyrI,EAAM5wI,QAAQ,CAAC,SAAU,MAAO,OAAQ,YAAY,SAA6BkF,GAE/E4tL,EAAM7gM,UAAUiT,GAAU,SAAS7B,EAAKmX,GACtC,OAAO1nB,KAAKu/I,QAAQ0gD,EAAYv4K,GAAU,GAAI,CAC5CtV,OAAQA,EACR7B,IAAKA,EACL8N,MAAOqJ,GAAU,IAAIrJ,YAK3By/H,EAAM5wI,QAAQ,CAAC,OAAQ,MAAO,UAAU,SAA+BkF,GAErE4tL,EAAM7gM,UAAUiT,GAAU,SAAS7B,EAAK8N,EAAMqJ,GAC5C,OAAO1nB,KAAKu/I,QAAQ0gD,EAAYv4K,GAAU,GAAI,CAC5CtV,OAAQA,EACR7B,IAAKA,EACL8N,KAAMA,SAKZxgB,EAAOC,QAAUkiM,G,6BC5FjB,IAAIliD,EAAQ//I,EAAQ,IAEpB,SAAS2iM,IACP1gM,KAAK05I,SAAW,GAWlBgnD,EAAmBvhM,UAAU6hM,IAAM,SAAa1+L,EAAWI,GAKzD,OAJA1C,KAAK05I,SAAS51I,KAAK,CACjBxB,UAAWA,EACXI,SAAUA,IAEL1C,KAAK05I,SAASl7I,OAAS,GAQhCkiM,EAAmBvhM,UAAU8hM,MAAQ,SAAe3yL,GAC9CtO,KAAK05I,SAASprI,KAChBtO,KAAK05I,SAASprI,GAAM,OAYxBoyL,EAAmBvhM,UAAU+N,QAAU,SAAiBib,GACtD21H,EAAM5wI,QAAQlN,KAAK05I,UAAU,SAAwBhoH,GACzC,OAANA,GACFvJ,EAAGuJ,OAKT7zB,EAAOC,QAAU4iM,G,6BCjDjB,IAAI5iD,EAAQ//I,EAAQ,IAChBmjM,EAAgBnjM,EAAQ,KACxBwiM,EAAWxiM,EAAQ,KACnBuiC,EAAWviC,EAAQ,KAKvB,SAASojM,EAA6Bz5K,GAChCA,EAAOy5H,aACTz5H,EAAOy5H,YAAYigD,mBAUvBvjM,EAAOC,QAAU,SAAyB4pB,GA6BxC,OA5BAy5K,EAA6Bz5K,GAG7BA,EAAO42H,QAAU52H,EAAO42H,SAAW,GAGnC52H,EAAOrJ,KAAO6iL,EACZx5K,EAAOrJ,KACPqJ,EAAO42H,QACP52H,EAAO+2H,kBAIT/2H,EAAO42H,QAAUR,EAAMvzH,MACrB7C,EAAO42H,QAAQ5mD,QAAU,GACzBhwE,EAAO42H,QAAQ52H,EAAOtV,SAAW,GACjCsV,EAAO42H,SAGTR,EAAM5wI,QACJ,CAAC,SAAU,MAAO,OAAQ,OAAQ,MAAO,QAAS,WAClD,SAA2BkF,UAClBsV,EAAO42H,QAAQlsI,OAIZsV,EAAO4wE,SAAWh4D,EAASg4D,SAE1B5wE,GAAQ7kB,MAAK,SAA6B+lI,GAUvD,OATAu4D,EAA6Bz5K,GAG7BkhH,EAASvqH,KAAO6iL,EACdt4D,EAASvqH,KACTuqH,EAAS0V,QACT52H,EAAOg3H,mBAGF9V,KACN,SAA4BoG,GAc7B,OAbKuxD,EAASvxD,KACZmyD,EAA6Bz5K,GAGzBsnH,GAAUA,EAAOpG,WACnBoG,EAAOpG,SAASvqH,KAAO6iL,EACrBlyD,EAAOpG,SAASvqH,KAChB2wH,EAAOpG,SAAS0V,QAChB52H,EAAOg3H,qBAKNv8I,QAAQE,OAAO2sI,Q,6BC1E1B,IAAI8O,EAAQ//I,EAAQ,IAUpBF,EAAOC,QAAU,SAAuBugB,EAAMigI,EAAS+iD,GAMrD,OAJAvjD,EAAM5wI,QAAQm0L,GAAK,SAAmBl5K,GACpC9J,EAAO8J,EAAG9J,EAAMigI,MAGXjgI,I,cCjBT,IAOIijL,EACAC,EARArjG,EAAUrgG,EAAOC,QAAU,GAU/B,SAAS0jM,IACL,MAAM,IAAIv2L,MAAM,mCAEpB,SAASw2L,IACL,MAAM,IAAIx2L,MAAM,qCAsBpB,SAASy2L,EAAWC,GAChB,GAAIL,IAAqBlmL,WAErB,OAAOA,WAAWumL,EAAK,GAG3B,IAAKL,IAAqBE,IAAqBF,IAAqBlmL,WAEhE,OADAkmL,EAAmBlmL,WACZA,WAAWumL,EAAK,GAE3B,IAEI,OAAOL,EAAiBK,EAAK,GAC/B,MAAMhhM,GACJ,IAEI,OAAO2gM,EAAiB1hM,KAAK,KAAM+hM,EAAK,GAC1C,MAAMhhM,GAEJ,OAAO2gM,EAAiB1hM,KAAKI,KAAM2hM,EAAK,MAvCnD,WACG,IAEQL,EADsB,oBAAflmL,WACYA,WAEAomL,EAEzB,MAAO7gM,GACL2gM,EAAmBE,EAEvB,IAEQD,EADwB,oBAAjBllL,aACcA,aAEAolL,EAE3B,MAAO9gM,GACL4gM,EAAqBE,GAjB5B,GAwED,IAEIG,EAFAvkL,EAAQ,GACRwkL,GAAW,EAEXC,GAAc,EAElB,SAASC,IACAF,GAAaD,IAGlBC,GAAW,EACPD,EAAapjM,OACb6e,EAAQukL,EAAah9L,OAAOyY,GAE5BykL,GAAc,EAEdzkL,EAAM7e,QACNwjM,KAIR,SAASA,IACL,IAAIH,EAAJ,CAGA,IAAI9uH,EAAU2uH,EAAWK,GACzBF,GAAW,EAGX,IADA,IAAIp4K,EAAMpM,EAAM7e,OACVirB,GAAK,CAGP,IAFAm4K,EAAevkL,EACfA,EAAQ,KACCykL,EAAar4K,GACdm4K,GACAA,EAAaE,GAAYG,MAGjCH,GAAc,EACdr4K,EAAMpM,EAAM7e,OAEhBojM,EAAe,KACfC,GAAW,EAnEf,SAAyBK,GACrB,GAAIX,IAAuBllL,aAEvB,OAAOA,aAAa6lL,GAGxB,IAAKX,IAAuBE,IAAwBF,IAAuBllL,aAEvE,OADAklL,EAAqBllL,aACdA,aAAa6lL,GAExB,IAEWX,EAAmBW,GAC5B,MAAOvhM,GACL,IAEI,OAAO4gM,EAAmB3hM,KAAK,KAAMsiM,GACvC,MAAOvhM,GAGL,OAAO4gM,EAAmB3hM,KAAKI,KAAMkiM,KAgD7CC,CAAgBpvH,IAiBpB,SAASqvH,EAAKT,EAAKh1K,GACf3sB,KAAK2hM,IAAMA,EACX3hM,KAAK2sB,MAAQA,EAYjB,SAASzY,KA5BTgqF,EAAQmkG,SAAW,SAAUV,GACzB,IAAIplL,EAAO,IAAI9c,MAAMe,UAAUhC,OAAS,GACxC,GAAIgC,UAAUhC,OAAS,EACnB,IAAK,IAAID,EAAI,EAAGA,EAAIiC,UAAUhC,OAAQD,IAClCge,EAAKhe,EAAI,GAAKiC,UAAUjC,GAGhC8e,EAAMvZ,KAAK,IAAIs+L,EAAKT,EAAKplL,IACJ,IAAjBc,EAAM7e,QAAiBqjM,GACvBH,EAAWM,IASnBI,EAAKjjM,UAAU8iM,IAAM,WACjBjiM,KAAK2hM,IAAIlhM,MAAM,KAAMT,KAAK2sB,QAE9BuxE,EAAQ3wC,MAAQ,UAChB2wC,EAAQokG,SAAU,EAClBpkG,EAAQqkG,IAAM,GACdrkG,EAAQskG,KAAO,GACftkG,EAAQrjB,QAAU,GAClBqjB,EAAQukG,SAAW,GAInBvkG,EAAQniF,GAAK7H,EACbgqF,EAAQnhC,YAAc7oD,EACtBgqF,EAAQx7E,KAAOxO,EACfgqF,EAAQjiF,IAAM/H,EACdgqF,EAAQ/iC,eAAiBjnD,EACzBgqF,EAAQwkG,mBAAqBxuL,EAC7BgqF,EAAQ5hF,KAAOpI,EACfgqF,EAAQykG,gBAAkBzuL,EAC1BgqF,EAAQ0kG,oBAAsB1uL,EAE9BgqF,EAAQpzD,UAAY,SAAUngC,GAAQ,MAAO,IAE7CuzF,EAAQmrB,QAAU,SAAU1+G,GACxB,MAAM,IAAIM,MAAM,qCAGpBizF,EAAQ2kG,IAAM,WAAc,MAAO,KACnC3kG,EAAQ4kG,MAAQ,SAAUvqJ,GACtB,MAAM,IAAIttC,MAAM,mCAEpBizF,EAAQ6kG,MAAQ,WAAa,OAAO,I,6BCrLpC,IAAIjlD,EAAQ//I,EAAQ,IAEpBF,EAAOC,QAAU,SAA6BwgJ,EAAS0kD,GACrDllD,EAAM5wI,QAAQoxI,GAAS,SAAuB/7I,EAAOoI,GAC/CA,IAASq4L,GAAkBr4L,EAAKsgB,gBAAkB+3K,EAAe/3K,gBACnEqzH,EAAQ0kD,GAAkBzgM,SACnB+7I,EAAQ3zI,S,6BCNrB,IAAImmG,EAAc/yG,EAAQ,KAS1BF,EAAOC,QAAU,SAAgBsE,EAASC,EAAQumI,GAChD,IAAImW,EAAiBnW,EAASlhH,OAAOq3H,eAChCnW,EAASU,QAAWyV,IAAkBA,EAAenW,EAASU,QAGjEjnI,EAAOyuG,EACL,mCAAqC83B,EAASU,OAC9CV,EAASlhH,OACT,KACAkhH,EAAS2W,QACT3W,IAPFxmI,EAAQwmI,K,6BCFZ/qI,EAAOC,QAAU,SAAsB4G,EAAOgjB,EAAQla,EAAM+xI,EAAS3W,GA4BnE,OA3BAlkI,EAAMgjB,OAASA,EACXla,IACF9I,EAAM8I,KAAOA,GAGf9I,EAAM66I,QAAUA,EAChB76I,EAAMkkI,SAAWA,EACjBlkI,EAAM+7L,cAAe,EAErB/7L,EAAMu+L,OAAS,WACb,MAAO,CAELl4L,QAAS/K,KAAK+K,QACdJ,KAAM3K,KAAK2K,KAEX6D,YAAaxO,KAAKwO,YAClB0sC,OAAQl7C,KAAKk7C,OAEbq0H,SAAUvvK,KAAKuvK,SACfC,WAAYxvK,KAAKwvK,WACjB0zB,aAAcljM,KAAKkjM,aACnBv1L,MAAO3N,KAAK2N,MAEZ+Z,OAAQ1nB,KAAK0nB,OACbla,KAAMxN,KAAKwN,OAGR9I,I,6BCtCT,IAAIo5I,EAAQ//I,EAAQ,IAEpBF,EAAOC,QACLggJ,EAAMxiC,uBAIK,CACL6nF,MAAO,SAAex4L,EAAMpI,EAAO6gM,EAAS9yL,EAAM+yL,EAAQC,GACxD,IAAIC,EAAS,GACbA,EAAOz/L,KAAK6G,EAAO,IAAMmxI,mBAAmBv5I,IAExCu7I,EAAMtxH,SAAS42K,IACjBG,EAAOz/L,KAAK,WAAa,IAAIg2C,KAAKspJ,GAASI,eAGzC1lD,EAAMhjC,SAASxqG,IACjBizL,EAAOz/L,KAAK,QAAUwM,GAGpBwtI,EAAMhjC,SAASuoF,IACjBE,EAAOz/L,KAAK,UAAYu/L,IAGX,IAAXC,GACFC,EAAOz/L,KAAK,UAGdyU,SAASgrL,OAASA,EAAO55L,KAAK,OAGhC0/B,KAAM,SAAc1+B,GAClB,IAAIqG,EAAQuH,SAASgrL,OAAOvyL,MAAM,IAAI+3B,OAAO,aAAep+B,EAAO,cACnE,OAAQqG,EAAQ+2J,mBAAmB/2J,EAAM,IAAM,MAGjD4lE,OAAQ,SAAgBjsE,GACtB3K,KAAKmjM,MAAMx4L,EAAM,GAAImvC,KAAKC,MAAQ,SAO/B,CACLopJ,MAAO,aACP95J,KAAM,WAAkB,OAAO,MAC/ButC,OAAQ,e,6BC/ChB,IAAI6sH,EAAgB1lM,EAAQ,KACxB2lM,EAAc3lM,EAAQ,KAW1BF,EAAOC,QAAU,SAAuBiiJ,EAAS4jD,GAC/C,OAAI5jD,IAAY0jD,EAAcE,GACrBD,EAAY3jD,EAAS4jD,GAEvBA,I,6BCVT9lM,EAAOC,QAAU,SAAuByS,GAItC,MAAO,gCAAgCgyF,KAAKhyF,K,6BCH9C1S,EAAOC,QAAU,SAAqBiiJ,EAAS6jD,GAC7C,OAAOA,EACH7jD,EAAQ1tI,QAAQ,OAAQ,IAAM,IAAMuxL,EAAYvxL,QAAQ,OAAQ,IAChE0tI,I,6BCVN,IAAIjC,EAAQ//I,EAAQ,IAIhB8lM,EAAoB,CACtB,MAAO,gBAAiB,iBAAkB,eAAgB,OAC1D,UAAW,OAAQ,OAAQ,oBAAqB,sBAChD,gBAAiB,WAAY,eAAgB,sBAC7C,UAAW,cAAe,cAgB5BhmM,EAAOC,QAAU,SAAsBwgJ,GACrC,IACIv/I,EACAugC,EACA/gC,EAHA8gD,EAAS,GAKb,OAAKi/F,GAELR,EAAM5wI,QAAQoxI,EAAQn+G,MAAM,OAAO,SAAgB6G,GAKjD,GAJAzoC,EAAIyoC,EAAKpmC,QAAQ,KACjB7B,EAAM++I,EAAM5vC,KAAKlnE,EAAKnzB,OAAO,EAAGtV,IAAI0/B,cACpCqB,EAAMw+G,EAAM5vC,KAAKlnE,EAAKnzB,OAAOtV,EAAI,IAE7BQ,EAAK,CACP,GAAIsgD,EAAOtgD,IAAQ8kM,EAAkBjjM,QAAQ7B,IAAQ,EACnD,OAGAsgD,EAAOtgD,GADG,eAARA,GACasgD,EAAOtgD,GAAOsgD,EAAOtgD,GAAO,IAAI6F,OAAO,CAAC06B,IAEzC+f,EAAOtgD,GAAOsgD,EAAOtgD,GAAO,KAAOugC,EAAMA,MAKtD+f,GAnBgBA,I,6BC9BzB,IAAIy+F,EAAQ//I,EAAQ,IAEpBF,EAAOC,QACLggJ,EAAMxiC,uBAIH,WACC,IAEIwoF,EAFAC,EAAO,kBAAkBxhG,KAAKgZ,UAAUoD,WACxCqlF,EAAiBzrL,SAAS/E,cAAc,KAS5C,SAASywL,EAAW1zL,GAClB,IAAIsG,EAAOtG,EAWX,OATIwzL,IAEFC,EAAexmI,aAAa,OAAQ3mD,GACpCA,EAAOmtL,EAAentL,MAGxBmtL,EAAexmI,aAAa,OAAQ3mD,GAG7B,CACLA,KAAMmtL,EAAentL,KACrBqtL,SAAUF,EAAeE,SAAWF,EAAeE,SAAS7xL,QAAQ,KAAM,IAAM,GAChFq/B,KAAMsyJ,EAAetyJ,KACrBgzD,OAAQs/F,EAAet/F,OAASs/F,EAAet/F,OAAOryF,QAAQ,MAAO,IAAM,GAC3E2qG,KAAMgnF,EAAehnF,KAAOgnF,EAAehnF,KAAK3qG,QAAQ,KAAM,IAAM,GACpE8xL,SAAUH,EAAeG,SACzBC,KAAMJ,EAAeI,KACrB/zL,SAAiD,MAAtC2zL,EAAe3zL,SAASqD,OAAO,GACxCswL,EAAe3zL,SACf,IAAM2zL,EAAe3zL,UAY3B,OARAyzL,EAAYG,EAAW3rL,OAAO1I,SAASiH,MAQhC,SAAyBwtL,GAC9B,IAAIhlJ,EAAUy+F,EAAMhjC,SAASupF,GAAeJ,EAAWI,GAAcA,EACrE,OAAQhlJ,EAAO6kJ,WAAaJ,EAAUI,UAClC7kJ,EAAO3N,OAASoyJ,EAAUpyJ,MAhDjC,GAsDQ,WACL,OAAO,I,6BC9Df,IAAIuwG,EAASlkJ,EAAQ,KAQrB,SAASuiM,EAAYgE,GACnB,GAAwB,oBAAbA,EACT,MAAM,IAAInmM,UAAU,gCAGtB,IAAIomM,EACJvkM,KAAK0mB,QAAU,IAAIvkB,SAAQ,SAAyBC,GAClDmiM,EAAiBniM,KAGnB,IAAI2gG,EAAQ/iG,KACZskM,GAAS,SAAgBv5L,GACnBg4F,EAAMisC,SAKVjsC,EAAMisC,OAAS,IAAIiT,EAAOl3I,GAC1Bw5L,EAAexhG,EAAMisC,YAOzBsxD,EAAYnhM,UAAUiiM,iBAAmB,WACvC,GAAIphM,KAAKgvI,OACP,MAAMhvI,KAAKgvI,QAQfsxD,EAAYrzL,OAAS,WACnB,IAAI2tC,EAIJ,MAAO,CACLmoD,MAJU,IAAIu9F,GAAY,SAAkBp/L,GAC5C05C,EAAS15C,KAIT05C,OAAQA,IAIZ/8C,EAAOC,QAAUwiM,G,6BClCjBziM,EAAOC,QAAU,SAAgBke,GAC/B,OAAO,SAAcrT,GACnB,OAAOqT,EAASvb,MAAM,KAAMkI,M,6BChBhC9K,EAAOC,QAAU,SAAsBqrI,GACrC,MAA2B,kBAAZA,IAAmD,IAAzBA,EAAQs3D,e,6BCDtC,IAAIz9L,EAAEjF,EAAQ,GAASmF,EAAE,MAA6B,GAAvBpF,EAAQyrK,SAAS,MAAS,oBAAoB9lK,QAAQA,OAAOw5H,IAAI,CAAC,IAAIvrG,EAAEjuB,OAAOw5H,IAAI/5H,EAAEwuB,EAAE,iBAAiB5zB,EAAQyrK,SAAS73I,EAAE,kBAAkB,IAAIztB,EAAEjB,EAAE4mK,mDAAmDP,kBAAkB9oK,EAAE1B,OAAOM,UAAUQ,eAAeD,EAAE,CAACX,KAAI,EAAG8V,KAAI,EAAG8zJ,QAAO,EAAGC,UAAS,GAC5U,SAASjjK,EAAEzE,EAAE6D,EAAEb,GAAG,IAAI5E,EAAED,EAAE,GAAGsB,EAAE,KAAK2E,EAAE,KAAiF,IAAIhG,UAAhF,IAAS4E,IAAIvD,EAAE,GAAGuD,QAAG,IAASa,EAAEhG,MAAM4B,EAAE,GAAGoE,EAAEhG,UAAK,IAASgG,EAAE8P,MAAMvP,EAAEP,EAAE8P,KAAc9P,EAAExE,EAAEX,KAAKmF,EAAEzF,KAAKI,EAAEC,eAAeL,KAAKD,EAAEC,GAAGyF,EAAEzF,IAAI,GAAG4B,GAAGA,EAAEijB,aAAa,IAAI7kB,KAAKyF,EAAE7D,EAAEijB,kBAAe,IAAS9kB,EAAEC,KAAKD,EAAEC,GAAGyF,EAAEzF,IAAI,MAAM,CAAC0qH,SAAS9mH,EAAEwH,KAAKxJ,EAAEnC,IAAI4B,EAAEkU,IAAIvP,EAAEhH,MAAMe,EAAEwpK,OAAO5kK,EAAEsW,SAASzc,EAAQ0mM,IAAI7+L,EAAE7H,EAAQ2mM,KAAK9+L,G,6BCRvV9G,OAAOC,eAAehB,EAAS,aAAc,CAAEyE,OAAO,IACtD,IACImiM,EADU3mM,EAAQ,GACL0I,gBAAgB1I,EAAQ,MACjBA,EAAQ,KACV4mM,kBAClB9lM,OAAOC,eAAey2C,KAAM,qBAAsB,CAC9ChzC,MAAOmiM,EAAGh+L,QACV9H,UAAU,EACVF,YAAY,EACZC,cAAc,K,6BCTtBE,OAAOC,eAAehB,EAAS,aAAc,CAAEyE,OAAO,IACtD,IAAIqiM,EAAU7mM,EAAQ,GAClB8mM,EAAqB9mM,EAAQ,IAC7B+mM,EAAiC/mM,EAAQ,KACzCgnM,EAAiChnM,EAAQ,KACzCinM,EAAuBJ,EAAQn+L,gBAAgB1I,EAAQ,MACvD4gG,EAAoC,WACpC,SAASA,EAAmBQ,EAASzsF,GAIjC,KADgB1S,MAAQA,gBAAgB2+F,EAAqB3+F,KAAKC,iBAAc,GAE5E,MAAM,IAAI9B,UAAU,qDAExB,OAAO2mM,EAA+BG,6BAA6BjlM,KAAMm/F,EAASzsF,EAAS,CACvF0+G,iBAAkB4zE,EAAqBt+L,QACvC8xH,iBAAkB75B,EAAmB65B,iBACrCO,sBAAuBp6B,EAAmBo6B,sBAC1CC,WAAYr6B,EAAmBq6B,WAC/BC,iBAAkBt6B,EAAmBs6B,mBAwE7C,OArEAt6B,EAAmBx/F,UAAUu2C,OAAS,SAAUnzC,EAAO6xD,GACnD,GAAoB,kBAATp0D,KACP,MAAM,IAAI7B,UAAU,qCAGxB,IADoB6mM,EAAqBt+L,QAAQ1G,MAC9BklM,8BACf,MAAM,IAAI/mM,UAAU,0CAExB,OAAO4mM,EAA+BI,6BAA6BnlM,KAAM8oB,OAAOvmB,GAAQsiM,EAAmBn3E,SAASt5D,GAAO,CACvHg9D,iBAAkB4zE,EAAqBt+L,UAEtCmD,KAAI,SAAU4qC,GAAM,OAAOA,EAAGlyC,SAC9BoH,KAAK,KAEdg1F,EAAmBx/F,UAAU60H,cAAgB,SAAUzxH,EAAO6xD,GAC1D,GAAoB,kBAATp0D,KACP,MAAM,IAAI7B,UAAU,4CAGxB,IADoB6mM,EAAqBt+L,QAAQ1G,MAC9BklM,8BACf,MAAM,IAAI/mM,UAAU,iDAExB,OAAO4mM,EAA+BI,6BAA6BnlM,KAAM8oB,OAAOvmB,GAAQsiM,EAAmBn3E,SAASt5D,GAAO,CAAEg9D,iBAAkB4zE,EAAqBt+L,WAExKi4F,EAAmBx/F,UAAUimM,gBAAkB,WAC3C,GAAoB,kBAATplM,KACP,MAAM,IAAI7B,UAAU,8CAExB,IAAIqxH,EAAgBw1E,EAAqBt+L,QAAQ1G,MACjD,IAAKwvH,EAAc01E,8BACf,MAAM,IAAI/mM,UAAU,mDAGxB,MAAO,CACHiQ,OAAQohH,EAAcphH,OACtBoJ,MAAOg4G,EAAch4G,MACrBymD,QAASuxD,EAAcvxD,QACvBqzD,gBAAiB9B,EAAc8B,kBAGvC3yB,EAAmB0mG,mBAAqB,SAAUlmG,EAASzsF,GACvD,OAAOmyL,EAAmBhpE,iBAAiBl9B,EAAmB65B,iBAAkBqsE,EAAmB33E,uBAAuB/tB,GAAUzsF,IAExIisF,EAAmB2mG,gBAAkB,WAEjC,IADA,IAAIjnL,EAAO,GACFpV,EAAK,EAAGA,EAAKzI,UAAUhC,OAAQyK,IACpCoV,EAAKpV,GAAMzI,UAAUyI,GAEzB,IAAK,IAAIgB,EAAK,EAAGs7L,EAASlnL,EAAMpU,EAAKs7L,EAAO/mM,OAAQyL,IAAM,CACtD,IAAIosH,EAAKkvE,EAAOt7L,GAAK5K,EAAIg3H,EAAGh4G,KAAMjQ,EAASioH,EAAGjoH,OAC1CsrH,EAAkB,IAAInkF,KAAKokF,OAAOvrH,GACjCwrH,WACA3zG,WACL04E,EAAmBq6B,WAAW5qH,GAAUuwF,EAAmBq6B,WAAWU,GAAmBr6H,EACzFs/F,EAAmB65B,iBAAiBttF,IAAIwuF,GACxC/6B,EAAmB65B,iBAAiBttF,IAAI98B,GACnCuwF,EAAmB6mG,kBACpB7mG,EAAmB6mG,gBAAkB9rE,KAIjD/6B,EAAmBs6B,iBAAmB,WAClC,OAAOt6B,EAAmB6mG,iBAE9B7mG,EAAmBq6B,WAAa,GAChCr6B,EAAmB65B,iBAAmB,IAAIvtF,IAC1C0zD,EAAmB6mG,gBAAkB,GACrC7mG,EAAmBo6B,sBAAwB,CAAC,MAC5Cp6B,EAAmB8mG,YAAa,EACzB9mG,EArF6B,GAuFxC7gG,EAAQ4I,QAAUi4F,EAClB,IAE0B,qBAAXl7F,QACP5E,OAAOC,eAAe6/F,EAAmBx/F,UAAWsE,OAAOgoC,YAAa,CACpElpC,MAAO,0BACP3D,UAAU,EACVF,YAAY,EACZC,cAAc,IAItBE,OAAOC,eAAe6/F,EAAmBx/F,UAAUc,YAAa,SAAU,CACtEsC,MAAO,EACP3D,UAAU,EACVF,YAAY,EACZC,cAAc,IAGlBE,OAAOC,eAAe6/F,EAAmB0mG,mBAAoB,SAAU,CACnE9iM,MAAO,EACP3D,UAAU,EACVF,YAAY,EACZC,cAAc,IAGtB,MAAOgC,M,6BCvHP9B,OAAOC,eAAehB,EAAS,aAAc,CAAEyE,OAAO,IACtDzE,EAAQmnM,kCAA+B,EACvC,IAAIJ,EAAqB9mM,EAAQ,IAC7B2nM,EAAyB,oCAgC7B5nM,EAAQmnM,6BA/BR,SAAsCU,EAAKxmG,EAASzsF,EAASzI,GACzD,IAAImnH,EAAmBnnH,EAAGmnH,iBAAkBoH,EAAmBvuH,EAAGuuH,iBAAkBO,EAAwB9uH,EAAG8uH,sBAAuBC,EAAa/uH,EAAG+uH,WAAYC,EAAmBhvH,EAAGgvH,iBACpLzJ,EAAgB4B,EAAiBu0E,GACrCn2E,EAAc01E,+BAAgC,EAC9C,IAAIpsE,EAAmB+rE,EAAmB33E,uBAAuB/tB,GAC7DuD,EAAM7jG,OAAOqB,OAAO,MACpB+mC,EAAO49J,EAAmBl1E,sBAAsBj9G,GAChD6oH,EAAUspE,EAAmB70E,UAAU/oF,EAAM,gBAAiB,SAAU,CAAC,WAAY,UAAW,YACpGy7D,EAAIy2B,cAAgBoC,EACpB,IAAIjK,EAAkBuzE,EAAmB70E,UAAU/oF,EAEnD,kBAAmB,cAAU7iC,OAAWA,GACxC,QAAwBA,IAApBktH,IACKo0E,EAAuBnjG,KAAK+uB,GAC7B,MAAM,IAAIlwB,WAAW,4BAA8BkwB,GAG3D5uB,EAAI8uB,GAAKF,EACT,IAAInwH,EAAI0jM,EAAmBhsE,cAAcL,EAAkBM,EAAkBp2B,EAAKq2B,EAAuBC,EAAYC,GACjH7qH,EAASjN,EAAEiN,OAAQojH,EAAKrwH,EAAEqwH,GAC9BhC,EAAcphH,OAASA,EACvBohH,EAAch4G,MAAQqtL,EAAmB70E,UAAU/oF,EAAM,QAAS,SAAU,CAAC,OAAQ,SAAU,SAAU,QACzGuoF,EAAcvxD,QAAU4mI,EAAmB70E,UAAU/oF,EAAM,UAAW,SAAU,CAAC,SAAU,QAAS,UACpG,IAAI58B,EAAS2uH,EAAW73H,EAAE84H,YAM1B,OALA4qE,EAAmBh6L,YAAYR,EAAQ,2BAA6BlJ,EAAE84H,YACtEzK,EAAcnlH,OAASA,EACvBmlH,EAAc0B,aAAe,IAAI37E,KAAKC,aAAa2pD,GACnDqwB,EAAclxB,YAAc,IAAI/oD,KAAK0pD,YAAYE,GACjDqwB,EAAc8B,gBAAkBE,EACzBm0E,I,6BCjCX9mM,OAAOC,eAAehB,EAAS,aAAc,CAAEyE,OAAO,IACtDzE,EAAQqnM,kCAA+B,EACvC,IAAIN,EAAqB9mM,EAAQ,IAC7B6nM,EAA6B7nM,EAAQ,KACrC8nM,EAAkB9nM,EAAQ,KAmD9BD,EAAQqnM,6BAlDR,SAAsCQ,EAAKpjM,EAAO6xD,EAAMnqD,GACpD,IAAImnH,EAAmBnnH,EAAGmnH,iBAG1B,GAFAyzE,EAAmBh6L,UAA6C,WAAnCg6L,EAAmB32E,KAAK3rH,GAAqB,4CAA8CA,EAAOpE,WAC/H0mM,EAAmBh6L,UAA4C,WAAlCg6L,EAAmB32E,KAAK95D,GAAoB,2CAA6C7xD,EAAOpE,WACzH2Z,MAAMvV,KAAWwmB,SAASxmB,GAC1B,MAAM,IAAI6+F,WAAW,iBAAmB7+F,GAE5C,IAAIujM,EAAeF,EAA2BG,yBAAyB3xI,GACnEiiE,EAAKjF,EAAiBu0E,GAAMt7L,EAASgsH,EAAGhsH,OAAQmN,EAAQ6+G,EAAG7+G,MAAOymD,EAAUo4D,EAAGp4D,QAASqgC,EAAc+3B,EAAG/3B,YAAa4yB,EAAemF,EAAGnF,aACxI1oE,EAAQs9I,EACE,UAAVtuL,EACAgxC,EAAQs9I,EAAe,SAER,WAAVtuL,IACLgxC,EAAQs9I,EAAe,WAErBt9I,KAASn+C,IACXm+C,EAAQs9I,GAEZ,IAAIE,EAAW37L,EAAOm+C,GACtB,GAAgB,SAAZyV,GACI4mI,EAAmBn3E,SAASnrH,KAAUyjM,EACtC,MAAO,CACH,CACIt7L,KAAM,UACNnI,MAAOyjM,EAASnB,EAAmBn3E,SAASnrH,MAK5D,IAAI4mE,EAAK,UACL07H,EAAmBh3E,UAAUtrH,GAAQ,IAAMA,EAAQ,KACnD4mE,EAAK,QAET,IAAI88H,EAAKD,EAAS78H,GACd+8H,EAA2C,oBAA/Bh1E,EAAa8C,cACvB9C,EAAa8C,cAAc3qH,KAAKoZ,IAAIlgB,IAGlC,CACI,CACImI,KAAM,UACNnI,MAAO2uH,EAAax7E,OAAOrsC,KAAKoZ,IAAIlgB,IACpC6xD,KAAMA,IAIlB40C,EAAUi9F,EADL3nG,EAAYgC,OAAO/9F,IAE5B,OAAOsjM,EAAgBM,cAAcn9F,EAAS88F,EAAcI,K,6BCrDhErnM,OAAOC,eAAehB,EAAS,aAAc,CAAEyE,OAAO,IACtDzE,EAAQioM,8BAA2B,EACnC,IAAIlB,EAAqB9mM,EAAQ,IAmCjCD,EAAQioM,yBA9BR,SAAkC3xI,GAE9B,GADAywI,EAAmBh6L,UAA4C,WAAlCg6L,EAAmB32E,KAAK95D,GAAoB,yBAC5D,YAATA,EACA,MAAO,SACX,GAAa,YAATA,EACA,MAAO,SACX,GAAa,UAATA,EACA,MAAO,OACX,GAAa,SAATA,EACA,MAAO,MACX,GAAa,UAATA,EACA,MAAO,OACX,GAAa,WAATA,EACA,MAAO,QACX,GAAa,aAATA,EACA,MAAO,UACX,GAAa,UAATA,EACA,MAAO,OACX,GAAa,WAATA,GACS,WAATA,GACS,SAATA,GACS,QAATA,GACS,SAATA,GACS,UAATA,GACS,YAATA,GACS,SAATA,EACA,MAAM,IAAIgtC,WAAW,gBAEzB,OAAOhtC,I,6BCnCXv1D,OAAOC,eAAehB,EAAS,aAAc,CAAEyE,OAAO,IACtDzE,EAAQqoM,mBAAgB,EACxB,IAAItB,EAAqB9mM,EAAQ,IA0BjCD,EAAQqoM,cAzBR,SAAuBn9F,EAAS50C,EAAMgY,GAGlC,IAFA,IACIzpE,EAAS,GACJsG,EAAK,EAAGm9L,EAFEvB,EAAmBppE,iBAAiBzyB,GAEP//F,EAAKm9L,EAAe5nM,OAAQyK,IAAM,CAC9E,IAAIwB,EAAc27L,EAAen9L,GACjC,GAAyB,YAArBwB,EAAYC,KACZ/H,EAAOmB,KAAK,CACR4G,KAAM,UACNnI,MAAOkI,EAAYlI,YAGtB,CACDsiM,EAAmBh6L,UAA+B,MAArBJ,EAAYC,KAAc,qBAAuBs+F,GAC9E,IAAK,IAAI/+F,EAAK,EAAGquH,EAAUlsD,EAAOniE,EAAKquH,EAAQ95H,OAAQyL,IAAM,CACzD,IAAIonG,EAAOinB,EAAQruH,GACnBtH,EAAOmB,KAAK,CACR4G,KAAM2mG,EAAK3mG,KACXnI,MAAO8uG,EAAK9uG,MACZ6xD,KAAMA,MAKtB,OAAOzxD,I,6BCxBX9D,OAAOC,eAAehB,EAAS,aAAc,CAAEyE,OAAO,IACtD,IAAI8jM,EAAkB,IAAI98G,QAS1BzrF,EAAQ4I,QARR,SAA0B+B,GACtB,IAAI+mH,EAAgB62E,EAAgBhiM,IAAIoE,GAKxC,OAJK+mH,IACDA,EAAgB3wH,OAAOqB,OAAO,MAC9BmmM,EAAgBp/L,IAAIwB,EAAG+mH,IAEpBA,I,6BCVX3wH,OAAOC,eAAehB,EAAS,aAAc,CAAEyE,OAAO,IACtDzE,EAAQ6mM,oBAAiB,EAIzB7mM,EAAQ6mM,eAHR,WACI,QAAS,uBAAwBpvJ,Q,cCFjCA,KAAKopD,oBAAyE,oBAA5CppD,KAAKopD,mBAAmB2mG,iBAC5D/vJ,KAAKopD,mBAAmB2mG,gBAAgB,CAAC,KAAO,CAAC,GAAK,CAAC,QAAQ,KAAO,CAAC,EAAI,YAAY,EAAI,YAAY,OAAS,CAAC,IAAM,cAAc,MAAQ,gBAAgB,KAAO,CAAC,IAAM,eAAe,MAAQ,iBAAiB,KAAK,aAAa,aAAa,CAAC,EAAI,WAAW,EAAI,WAAW,OAAS,CAAC,IAAM,aAAa,MAAQ,cAAc,KAAO,CAAC,IAAM,cAAc,MAAQ,eAAe,KAAK,YAAY,cAAc,CAAC,EAAI,WAAW,EAAI,WAAW,OAAS,CAAC,IAAM,aAAa,MAAQ,cAAc,KAAO,CAAC,IAAM,cAAc,MAAQ,eAAe,KAAK,YAAY,QAAU,CAAC,EAAI,eAAe,EAAI,eAAe,OAAS,CAAC,IAAM,iBAAiB,MAAQ,mBAAmB,KAAO,CAAC,IAAM,kBAAkB,MAAQ,oBAAoB,KAAK,gBAAgB,gBAAgB,CAAC,EAAI,YAAY,EAAI,YAAY,OAAS,CAAC,IAAM,cAAc,MAAQ,gBAAgB,KAAO,CAAC,IAAM,eAAe,MAAQ,iBAAiB,KAAK,aAAa,iBAAiB,CAAC,EAAI,YAAY,EAAI,YAAY,OAAS,CAAC,IAAM,cAAc,MAAQ,gBAAgB,KAAO,CAAC,IAAM,eAAe,MAAQ,iBAAiB,KAAK,aAAa,MAAQ,CAAC,EAAI,aAAa,EAAI,aAAa,OAAS,CAAC,IAAM,eAAe,MAAQ,iBAAiB,KAAO,CAAC,IAAM,gBAAgB,MAAQ,kBAAkB,KAAK,cAAc,cAAc,CAAC,EAAI,WAAW,EAAI,WAAW,OAAS,CAAC,IAAM,aAAa,MAAQ,cAAc,KAAO,CAAC,IAAM,cAAc,MAAQ,eAAe,KAAK,YAAY,eAAe,CAAC,EAAI,WAAW,EAAI,WAAW,OAAS,CAAC,IAAM,aAAa,MAAQ,cAAc,KAAO,CAAC,IAAM,cAAc,MAAQ,eAAe,KAAK,YAAY,KAAO,CAAC,EAAI,YAAY,EAAI,YAAY,OAAS,CAAC,IAAM,cAAc,MAAQ,gBAAgB,KAAO,CAAC,IAAM,eAAe,MAAQ,iBAAiB,KAAK,aAAa,aAAa,CAAC,EAAI,WAAW,EAAI,WAAW,OAAS,CAAC,IAAM,aAAa,MAAQ,cAAc,KAAO,CAAC,IAAM,cAAc,MAAQ,eAAe,KAAK,YAAY,cAAc,CAAC,EAAI,WAAW,EAAI,WAAW,OAAS,CAAC,IAAM,aAAa,MAAQ,cAAc,KAAO,CAAC,IAAM,cAAc,MAAQ,eAAe,KAAK,YAAY,IAAM,CAAC,EAAI,QAAQ,EAAI,WAAW,OAAS,CAAC,IAAM,aAAa,MAAQ,eAAe,KAAO,CAAC,IAAM,cAAc,MAAQ,gBAAgB,KAAK,aAAa,YAAY,CAAC,EAAI,QAAQ,EAAI,WAAW,OAAS,CAAC,IAAM,aAAa,MAAQ,eAAe,KAAO,CAAC,IAAM,cAAc,MAAQ,gBAAgB,KAAK,aAAa,aAAa,CAAC,EAAI,QAAQ,EAAI,WAAW,OAAS,CAAC,IAAM,aAAa,MAAQ,eAAe,KAAO,CAAC,IAAM,cAAc,MAAQ,gBAAgB,KAAK,aAAa,KAAO,CAAC,EAAI,YAAY,OAAS,CAAC,IAAM,cAAc,MAAQ,gBAAgB,KAAO,CAAC,IAAM,eAAe,MAAQ,kBAAkB,aAAa,CAAC,EAAI,YAAY,OAAS,CAAC,IAAM,aAAa,MAAQ,cAAc,KAAO,CAAC,IAAM,cAAc,MAAQ,gBAAgB,cAAc,CAAC,EAAI,YAAY,OAAS,CAAC,IAAM,aAAa,MAAQ,cAAc,KAAO,CAAC,IAAM,cAAc,MAAQ,gBAAgB,OAAS,CAAC,EAAI,cAAc,OAAS,CAAC,IAAM,gBAAgB,MAAQ,kBAAkB,KAAO,CAAC,IAAM,iBAAiB,MAAQ,oBAAoB,eAAe,CAAC,EAAI,cAAc,OAAS,CAAC,IAAM,cAAc,MAAQ,eAAe,KAAO,CAAC,IAAM,eAAe,MAAQ,iBAAiB,gBAAgB,CAAC,EAAI,cAAc,OAAS,CAAC,IAAM,cAAc,MAAQ,eAAe,KAAO,CAAC,IAAM,eAAe,MAAQ,iBAAiB,OAAS,CAAC,EAAI,MAAM,OAAS,CAAC,IAAM,gBAAgB,MAAQ,kBAAkB,KAAO,CAAC,IAAM,iBAAiB,MAAQ,oBAAoB,eAAe,CAAC,EAAI,MAAM,OAAS,CAAC,IAAM,cAAc,MAAQ,eAAe,KAAO,CAAC,IAAM,eAAe,MAAQ,iBAAiB,gBAAgB,CAAC,EAAI,MAAM,OAAS,CAAC,IAAM,cAAc,MAAQ,eAAe,KAAO,CAAC,IAAM,eAAe,MAAQ,kBAAkB,OAAS,Q,cCDtuH/vJ,KAAKopD,oBAAyE,oBAA5CppD,KAAKopD,mBAAmB2mG,iBAC5D/vJ,KAAKopD,mBAAmB2mG,gBAAgB,CAAC,KAAO,CAAC,GAAK,CAAC,QAAQ,KAAO,CAAC,EAAI,cAAc,EAAI,mBAAgB,OAAS,CAAC,IAAM,cAAc,MAAQ,iBAAiB,KAAO,CAAC,IAAM,eAAe,MAAQ,kBAAkB,KAAK,gBAAgB,aAAa,CAAC,EAAI,cAAc,EAAI,mBAAgB,OAAS,CAAC,IAAM,cAAc,MAAQ,iBAAiB,KAAO,CAAC,IAAM,eAAe,MAAQ,kBAAkB,KAAK,gBAAgB,cAAc,CAAC,EAAI,cAAc,EAAI,mBAAgB,OAAS,CAAC,IAAM,cAAc,MAAQ,iBAAiB,KAAO,CAAC,IAAM,eAAe,MAAQ,kBAAkB,KAAK,gBAAgB,QAAU,CAAC,EAAI,iBAAiB,EAAI,sBAAmB,OAAS,CAAC,IAAM,iBAAiB,MAAQ,oBAAoB,KAAO,CAAC,IAAM,kBAAkB,MAAQ,qBAAqB,KAAK,mBAAmB,gBAAgB,CAAC,EAAI,iBAAiB,EAAI,sBAAmB,OAAS,CAAC,IAAM,gBAAgB,MAAQ,iBAAiB,KAAO,CAAC,IAAM,iBAAiB,MAAQ,kBAAkB,KAAK,mBAAmB,iBAAiB,CAAC,EAAI,iBAAiB,EAAI,sBAAmB,OAAS,CAAC,IAAM,WAAW,MAAQ,YAAY,KAAO,CAAC,IAAM,YAAY,MAAQ,aAAa,KAAK,mBAAmB,MAAQ,CAAC,EAAI,eAAe,EAAI,oBAAiB,OAAS,CAAC,IAAM,eAAe,MAAQ,kBAAkB,KAAO,CAAC,IAAM,gBAAgB,MAAQ,mBAAmB,KAAK,iBAAiB,cAAc,CAAC,EAAI,eAAe,EAAI,oBAAiB,OAAS,CAAC,IAAM,eAAe,MAAQ,kBAAkB,KAAO,CAAC,IAAM,gBAAgB,MAAQ,sBAAmB,KAAK,iBAAiB,eAAe,CAAC,EAAI,eAAe,EAAI,oBAAiB,OAAS,CAAC,IAAM,eAAe,MAAQ,kBAAkB,KAAO,CAAC,IAAM,mBAAgB,MAAQ,mBAAmB,KAAK,iBAAiB,KAAO,CAAC,EAAI,cAAc,EAAI,mBAAgB,OAAS,CAAC,IAAM,eAAe,MAAQ,iBAAiB,KAAO,CAAC,IAAM,gBAAgB,MAAQ,kBAAkB,KAAK,gBAAgB,aAAa,CAAC,EAAI,cAAc,EAAI,mBAAgB,OAAS,CAAC,IAAM,eAAe,MAAQ,iBAAiB,KAAO,CAAC,IAAM,gBAAgB,MAAQ,kBAAkB,KAAK,gBAAgB,cAAc,CAAC,EAAI,cAAc,EAAI,mBAAgB,OAAS,CAAC,IAAM,aAAa,MAAQ,cAAc,KAAO,CAAC,IAAM,cAAc,MAAQ,eAAe,KAAK,gBAAgB,IAAM,CAAC,EAAI,QAAQ,EAAI,SAAS,EAAI,gBAAa,OAAS,CAAC,IAAM,aAAa,MAAQ,gBAAgB,KAAO,CAAC,IAAM,cAAc,MAAQ,iBAAiB,KAAK,aAAa,KAAK,WAAW,YAAY,CAAC,EAAI,QAAQ,EAAI,SAAS,EAAI,gBAAa,OAAS,CAAC,IAAM,aAAa,MAAQ,gBAAgB,KAAO,CAAC,IAAM,cAAc,MAAQ,iBAAiB,KAAK,aAAa,KAAK,WAAW,aAAa,CAAC,EAAI,QAAQ,EAAI,SAAS,EAAI,gBAAa,OAAS,CAAC,IAAM,aAAa,MAAQ,gBAAgB,KAAO,CAAC,IAAM,cAAc,MAAQ,iBAAiB,KAAK,aAAa,KAAK,WAAW,KAAO,CAAC,EAAI,mBAAmB,OAAS,CAAC,IAAM,gBAAgB,MAAQ,kBAAkB,KAAO,CAAC,IAAM,iBAAiB,MAAQ,oBAAoB,aAAa,CAAC,EAAI,mBAAmB,OAAS,CAAC,IAAM,cAAc,MAAQ,eAAe,KAAO,CAAC,IAAM,eAAe,MAAQ,iBAAiB,cAAc,CAAC,EAAI,mBAAmB,OAAS,CAAC,IAAM,cAAc,MAAQ,eAAe,KAAO,CAAC,IAAM,eAAe,MAAQ,iBAAiB,OAAS,CAAC,EAAI,mBAAmB,OAAS,CAAC,IAAM,gBAAgB,MAAQ,kBAAkB,KAAO,CAAC,IAAM,iBAAiB,MAAQ,oBAAoB,eAAe,CAAC,EAAI,mBAAmB,OAAS,CAAC,IAAM,cAAc,MAAQ,eAAe,KAAO,CAAC,IAAM,eAAe,MAAQ,iBAAiB,gBAAgB,CAAC,EAAI,mBAAmB,OAAS,CAAC,IAAM,WAAW,MAAQ,YAAY,KAAO,CAAC,IAAM,YAAY,MAAQ,cAAc,OAAS,CAAC,EAAI,QAAQ,OAAS,CAAC,IAAM,iBAAiB,MAAQ,mBAAmB,KAAO,CAAC,IAAM,kBAAkB,MAAQ,qBAAqB,eAAe,CAAC,EAAI,QAAQ,OAAS,CAAC,IAAM,cAAc,MAAQ,eAAe,KAAO,CAAC,IAAM,eAAe,MAAQ,iBAAiB,gBAAgB,CAAC,EAAI,QAAQ,OAAS,CAAC,IAAM,WAAW,MAAQ,YAAY,KAAO,CAAC,IAAM,YAAY,MAAQ,eAAe,OAAS,Q,cCDzjI/vJ,KAAKopD,oBAAyE,oBAA5CppD,KAAKopD,mBAAmB2mG,iBAC5D/vJ,KAAKopD,mBAAmB2mG,gBAAgB,CAAC,KAAO,CAAC,GAAK,CAAC,QAAQ,KAAO,CAAC,EAAI,cAAW,EAAI,uBAAiB,OAAS,CAAC,IAAM,uBAAoB,MAAQ,yBAAsB,KAAO,CAAC,IAAM,kBAAe,MAAQ,oBAAiB,KAAK,oBAAiB,aAAa,CAAC,EAAI,cAAW,EAAI,uBAAiB,OAAS,CAAC,IAAM,kBAAkB,MAAQ,mBAAmB,KAAO,CAAC,IAAM,aAAa,MAAQ,cAAc,KAAK,oBAAiB,cAAc,CAAC,EAAI,cAAW,EAAI,uBAAiB,OAAS,CAAC,IAAM,kBAAkB,MAAQ,mBAAmB,KAAO,CAAC,IAAM,aAAa,MAAQ,cAAc,KAAK,oBAAiB,QAAU,CAAC,EAAI,iBAAiB,EAAI,0BAAuB,OAAS,CAAC,IAAM,0BAA0B,MAAQ,4BAA4B,KAAO,CAAC,IAAM,qBAAqB,MAAQ,uBAAuB,KAAK,uBAAuB,gBAAgB,CAAC,EAAI,iBAAiB,EAAI,0BAAuB,OAAS,CAAC,IAAM,sBAAsB,MAAQ,uBAAuB,KAAO,CAAC,IAAM,iBAAiB,MAAQ,kBAAkB,KAAK,uBAAuB,iBAAiB,CAAC,EAAI,iBAAiB,EAAI,0BAAuB,OAAS,CAAC,IAAM,sBAAsB,MAAQ,uBAAuB,KAAO,CAAC,IAAM,iBAAiB,MAAQ,kBAAkB,KAAK,uBAAuB,MAAQ,CAAC,EAAI,WAAW,EAAI,oBAAiB,OAAS,CAAC,IAAM,oBAAoB,MAAQ,uBAAuB,KAAO,CAAC,IAAM,eAAe,MAAQ,kBAAkB,KAAK,iBAAiB,cAAc,CAAC,EAAI,WAAW,EAAI,oBAAiB,OAAS,CAAC,IAAM,kBAAkB,MAAQ,mBAAmB,KAAO,CAAC,IAAM,aAAa,MAAQ,cAAc,KAAK,iBAAiB,eAAe,CAAC,EAAI,WAAW,EAAI,oBAAiB,OAAS,CAAC,IAAM,kBAAkB,MAAQ,mBAAmB,KAAO,CAAC,IAAM,aAAa,MAAQ,cAAc,KAAK,iBAAiB,KAAO,CAAC,EAAI,cAAc,EAAI,uBAAoB,OAAS,CAAC,IAAM,uBAAuB,MAAQ,yBAAyB,KAAO,CAAC,IAAM,kBAAkB,MAAQ,oBAAoB,KAAK,oBAAoB,aAAa,CAAC,EAAI,YAAY,EAAI,gBAAa,OAAS,CAAC,IAAM,qBAAqB,MAAQ,sBAAsB,KAAO,CAAC,IAAM,gBAAgB,MAAQ,iBAAiB,KAAK,aAAa,cAAc,CAAC,EAAI,YAAY,EAAI,gBAAa,OAAS,CAAC,IAAM,qBAAqB,MAAQ,sBAAsB,KAAO,CAAC,IAAM,gBAAgB,MAAQ,iBAAiB,KAAK,aAAa,IAAM,CAAC,EAAI,MAAM,EAAI,YAAS,EAAI,mBAAgB,OAAS,CAAC,IAAM,uBAAoB,MAAQ,yBAAsB,KAAO,CAAC,IAAM,kBAAe,MAAQ,oBAAiB,KAAK,WAAW,KAAK,QAAQ,YAAY,CAAC,EAAI,MAAM,EAAI,YAAS,EAAI,mBAAgB,OAAS,CAAC,IAAM,uBAAoB,MAAQ,yBAAsB,KAAO,CAAC,IAAM,kBAAe,MAAQ,oBAAiB,KAAK,WAAW,KAAK,QAAQ,aAAa,CAAC,EAAI,MAAM,EAAI,YAAS,EAAI,mBAAgB,OAAS,CAAC,IAAM,uBAAoB,MAAQ,yBAAsB,KAAO,CAAC,IAAM,kBAAe,MAAQ,oBAAiB,KAAK,WAAW,KAAK,QAAQ,KAAO,CAAC,EAAI,YAAY,OAAS,CAAC,IAAM,qBAAqB,MAAQ,uBAAuB,KAAO,CAAC,IAAM,gBAAgB,MAAQ,mBAAmB,aAAa,CAAC,EAAI,YAAY,OAAS,CAAC,IAAM,kBAAkB,MAAQ,mBAAmB,KAAO,CAAC,IAAM,aAAa,MAAQ,eAAe,cAAc,CAAC,EAAI,YAAY,OAAS,CAAC,IAAM,kBAAkB,MAAQ,mBAAmB,KAAO,CAAC,IAAM,aAAa,MAAQ,eAAe,OAAS,CAAC,EAAI,cAAc,OAAS,CAAC,IAAM,uBAAuB,MAAQ,yBAAyB,KAAO,CAAC,IAAM,kBAAkB,MAAQ,qBAAqB,eAAe,CAAC,EAAI,cAAc,OAAS,CAAC,IAAM,oBAAoB,MAAQ,qBAAqB,KAAO,CAAC,IAAM,eAAe,MAAQ,iBAAiB,gBAAgB,CAAC,EAAI,cAAc,OAAS,CAAC,IAAM,oBAAoB,MAAQ,qBAAqB,KAAO,CAAC,IAAM,eAAe,MAAQ,iBAAiB,OAAS,CAAC,EAAI,QAAQ,OAAS,CAAC,IAAM,wBAAwB,MAAQ,0BAA0B,KAAO,CAAC,IAAM,mBAAmB,MAAQ,sBAAsB,eAAe,CAAC,EAAI,QAAQ,OAAS,CAAC,IAAM,kBAAkB,MAAQ,mBAAmB,KAAO,CAAC,IAAM,aAAa,MAAQ,eAAe,gBAAgB,CAAC,EAAI,QAAQ,OAAS,CAAC,IAAM,kBAAkB,MAAQ,mBAAmB,KAAO,CAAC,IAAM,aAAa,MAAQ,gBAAgB,OAAS,Q,cCD1xI/vJ,KAAKopD,oBAAyE,oBAA5CppD,KAAKopD,mBAAmB2mG,iBAC5D/vJ,KAAKopD,mBAAmB2mG,gBAAgB,CAAC,KAAO,CAAC,GAAK,CAAC,QAAQ,KAAO,CAAC,EAAI,iBAAc,EAAI,4BAAoB,OAAS,CAAC,IAAM,cAAc,MAAQ,gBAAgB,KAAO,CAAC,IAAM,gBAAgB,MAAQ,kBAAkB,KAAK,+BAAoB,aAAa,CAAC,EAAI,iBAAc,EAAI,4BAAoB,OAAS,CAAC,IAAM,aAAa,MAAQ,cAAc,KAAO,CAAC,IAAM,eAAe,MAAQ,gBAAgB,KAAK,+BAAoB,cAAc,CAAC,EAAI,iBAAc,EAAI,4BAAoB,OAAS,CAAC,IAAM,SAAS,MAAQ,UAAU,KAAO,CAAC,IAAM,SAAS,MAAQ,UAAU,KAAK,+BAAoB,QAAU,CAAC,EAAI,eAAe,EAAI,wBAAwB,OAAS,CAAC,IAAM,qBAAqB,MAAQ,uBAAuB,KAAO,CAAC,IAAM,uBAAuB,MAAQ,yBAAyB,KAAK,wBAAwB,gBAAgB,CAAC,EAAI,eAAe,EAAI,wBAAwB,OAAS,CAAC,IAAM,iBAAiB,MAAQ,kBAAkB,KAAO,CAAC,IAAM,mBAAmB,MAAQ,oBAAoB,KAAK,wBAAwB,iBAAiB,CAAC,EAAI,eAAe,EAAI,wBAAwB,OAAS,CAAC,IAAM,aAAa,MAAQ,cAAc,KAAO,CAAC,IAAM,aAAa,MAAQ,cAAc,KAAK,wBAAwB,MAAQ,CAAC,EAAI,aAAa,EAAI,mBAAmB,OAAS,CAAC,IAAM,gBAAgB,MAAQ,iBAAiB,KAAO,CAAC,IAAM,kBAAkB,MAAQ,mBAAmB,KAAK,mBAAmB,cAAc,CAAC,EAAI,aAAa,EAAI,mBAAmB,OAAS,CAAC,IAAM,cAAc,MAAQ,eAAe,KAAO,CAAC,IAAM,gBAAgB,MAAQ,iBAAiB,KAAK,mBAAmB,eAAe,CAAC,EAAI,aAAa,EAAI,mBAAmB,OAAS,CAAC,IAAM,UAAU,MAAQ,WAAW,KAAO,CAAC,IAAM,UAAU,MAAQ,WAAW,KAAK,mBAAmB,KAAO,CAAC,EAAI,gBAAgB,EAAI,uBAAuB,OAAS,CAAC,IAAM,mBAAmB,MAAQ,qBAAqB,KAAO,CAAC,IAAM,qBAAqB,MAAQ,uBAAuB,KAAK,0BAAuB,aAAa,CAAC,EAAI,gBAAgB,EAAI,uBAAuB,OAAS,CAAC,IAAM,gBAAgB,MAAQ,iBAAiB,KAAO,CAAC,IAAM,kBAAkB,MAAQ,mBAAmB,KAAK,0BAAuB,cAAc,CAAC,EAAI,gBAAgB,EAAI,uBAAuB,OAAS,CAAC,IAAM,YAAY,MAAQ,aAAa,KAAO,CAAC,IAAM,YAAY,MAAQ,aAAa,KAAK,0BAAuB,IAAM,CAAC,EAAI,mBAAc,EAAI,SAAS,EAAI,kBAAe,OAAS,CAAC,IAAM,gBAAgB,MAAQ,kBAAkB,KAAO,CAAC,IAAM,kBAAkB,MAAQ,oBAAoB,KAAK,aAAa,KAAK,QAAQ,YAAY,CAAC,EAAI,mBAAc,EAAI,SAAS,EAAI,kBAAe,OAAS,CAAC,IAAM,gBAAa,MAAQ,iBAAc,KAAO,CAAC,IAAM,kBAAe,MAAQ,mBAAgB,KAAK,aAAa,KAAK,QAAQ,aAAa,CAAC,EAAI,mBAAc,EAAI,SAAS,EAAI,kBAAe,OAAS,CAAC,IAAM,SAAS,MAAQ,UAAU,KAAO,CAAC,IAAM,SAAS,MAAQ,UAAU,KAAK,aAAa,KAAK,QAAQ,KAAO,CAAC,EAAI,iBAAiB,OAAS,CAAC,IAAM,iBAAiB,MAAQ,mBAAmB,KAAO,CAAC,IAAM,mBAAmB,MAAQ,sBAAsB,aAAa,CAAC,EAAI,iBAAiB,OAAS,CAAC,IAAM,gBAAa,MAAQ,iBAAc,KAAO,CAAC,IAAM,kBAAe,MAAQ,oBAAiB,cAAc,CAAC,EAAI,iBAAiB,OAAS,CAAC,IAAM,SAAS,MAAQ,UAAU,KAAO,CAAC,IAAM,SAAS,MAAQ,WAAW,OAAS,CAAC,EAAI,kBAAkB,OAAS,CAAC,IAAM,kBAAkB,MAAQ,oBAAoB,KAAO,CAAC,IAAM,oBAAoB,MAAQ,uBAAuB,eAAe,CAAC,EAAI,kBAAkB,OAAS,CAAC,IAAM,kBAAe,MAAQ,mBAAgB,KAAO,CAAC,IAAM,oBAAiB,MAAQ,sBAAmB,gBAAgB,CAAC,EAAI,kBAAkB,OAAS,CAAC,IAAM,WAAW,MAAQ,YAAY,KAAO,CAAC,IAAM,WAAW,MAAQ,aAAa,OAAS,CAAC,EAAI,aAAa,OAAS,CAAC,IAAM,mBAAmB,MAAQ,qBAAqB,KAAO,CAAC,IAAM,qBAAqB,MAAQ,wBAAwB,eAAe,CAAC,EAAI,aAAa,OAAS,CAAC,IAAM,gBAAa,MAAQ,iBAAc,KAAO,CAAC,IAAM,kBAAe,MAAQ,oBAAiB,gBAAgB,CAAC,EAAI,aAAa,OAAS,CAAC,IAAM,SAAS,MAAQ,UAAU,KAAO,CAAC,IAAM,SAAS,MAAQ,YAAY,OAAS,Q,cCDhpI/vJ,KAAKopD,oBAAyE,oBAA5CppD,KAAKopD,mBAAmB2mG,iBAC5D/vJ,KAAKopD,mBAAmB2mG,gBAAgB,CAAC,KAAO,CAAC,GAAK,CAAC,QAAQ,KAAO,CAAC,EAAI,eAAK,EAAI,eAAK,OAAS,CAAC,MAAQ,oBAAU,KAAO,CAAC,MAAQ,oBAAU,KAAK,gBAAM,aAAa,CAAC,EAAI,eAAK,EAAI,eAAK,OAAS,CAAC,MAAQ,oBAAU,KAAO,CAAC,MAAQ,oBAAU,KAAK,gBAAM,cAAc,CAAC,EAAI,eAAK,EAAI,eAAK,OAAS,CAAC,MAAQ,mBAAS,KAAO,CAAC,MAAQ,mBAAS,KAAK,gBAAM,QAAU,CAAC,EAAI,2BAAO,EAAI,2BAAO,OAAS,CAAC,MAAQ,gCAAY,KAAO,CAAC,MAAQ,gCAAY,KAAK,4BAAQ,gBAAgB,CAAC,EAAI,2BAAO,EAAI,2BAAO,OAAS,CAAC,MAAQ,gCAAY,KAAO,CAAC,MAAQ,gCAAY,KAAK,4BAAQ,iBAAiB,CAAC,EAAI,2BAAO,EAAI,2BAAO,OAAS,CAAC,MAAQ,+BAAW,KAAO,CAAC,MAAQ,+BAAW,KAAK,4BAAQ,MAAQ,CAAC,EAAI,eAAK,EAAI,eAAK,OAAS,CAAC,MAAQ,0BAAW,KAAO,CAAC,MAAQ,0BAAW,KAAK,gBAAM,cAAc,CAAC,EAAI,eAAK,EAAI,eAAK,OAAS,CAAC,MAAQ,0BAAW,KAAO,CAAC,MAAQ,0BAAW,KAAK,gBAAM,eAAe,CAAC,EAAI,eAAK,EAAI,eAAK,OAAS,CAAC,MAAQ,yBAAU,KAAO,CAAC,MAAQ,yBAAU,KAAK,gBAAM,KAAO,CAAC,EAAI,eAAK,EAAI,eAAK,OAAS,CAAC,MAAQ,0BAAW,KAAO,CAAC,MAAQ,0BAAW,KAAK,gBAAM,aAAa,CAAC,EAAI,eAAK,EAAI,eAAK,OAAS,CAAC,MAAQ,0BAAW,KAAO,CAAC,MAAQ,0BAAW,KAAK,gBAAM,cAAc,CAAC,EAAI,eAAK,EAAI,eAAK,OAAS,CAAC,MAAQ,yBAAU,KAAO,CAAC,MAAQ,yBAAU,KAAK,gBAAM,IAAM,CAAC,EAAI,eAAK,EAAI,eAAK,EAAI,qBAAM,OAAS,CAAC,MAAQ,oBAAU,KAAO,CAAC,MAAQ,oBAAU,KAAK,qBAAM,KAAK,gBAAM,YAAY,CAAC,EAAI,eAAK,EAAI,eAAK,EAAI,qBAAM,OAAS,CAAC,MAAQ,oBAAU,KAAO,CAAC,MAAQ,oBAAU,KAAK,qBAAM,KAAK,gBAAM,aAAa,CAAC,EAAI,eAAK,EAAI,eAAK,EAAI,qBAAM,OAAS,CAAC,MAAQ,mBAAS,KAAO,CAAC,MAAQ,mBAAS,KAAK,qBAAM,KAAK,gBAAM,KAAO,CAAC,EAAI,6BAAS,OAAS,CAAC,MAAQ,0BAAW,KAAO,CAAC,MAAQ,2BAAY,aAAa,CAAC,EAAI,6BAAS,OAAS,CAAC,MAAQ,0BAAW,KAAO,CAAC,MAAQ,2BAAY,cAAc,CAAC,EAAI,6BAAS,OAAS,CAAC,MAAQ,yBAAU,KAAO,CAAC,MAAQ,0BAAW,OAAS,CAAC,EAAI,uBAAQ,OAAS,CAAC,MAAQ,oBAAU,KAAO,CAAC,MAAQ,qBAAW,eAAe,CAAC,EAAI,uBAAQ,OAAS,CAAC,MAAQ,oBAAU,KAAO,CAAC,MAAQ,qBAAW,gBAAgB,CAAC,EAAI,uBAAQ,OAAS,CAAC,MAAQ,mBAAS,KAAO,CAAC,MAAQ,oBAAU,OAAS,CAAC,EAAI,SAAI,OAAS,CAAC,MAAQ,oBAAU,KAAO,CAAC,MAAQ,qBAAW,eAAe,CAAC,EAAI,SAAI,OAAS,CAAC,MAAQ,oBAAU,KAAO,CAAC,MAAQ,qBAAW,gBAAgB,CAAC,EAAI,SAAI,OAAS,CAAC,MAAQ,mBAAS,KAAO,CAAC,MAAQ,qBAAW,OAAS,Q,cCDlxE/vJ,KAAKopD,oBAAyE,oBAA5CppD,KAAKopD,mBAAmB2mG,iBAC5D/vJ,KAAKopD,mBAAmB2mG,gBAAgB,CAAC,KAAO,CAAC,GAAK,CAAC,QAAQ,KAAO,CAAC,EAAI,eAAK,EAAI,eAAK,OAAS,CAAC,MAAQ,mBAAS,KAAO,CAAC,MAAQ,mBAAS,KAAK,gBAAM,aAAa,CAAC,EAAI,eAAK,EAAI,eAAK,OAAS,CAAC,MAAQ,mBAAS,KAAO,CAAC,MAAQ,mBAAS,KAAK,gBAAM,cAAc,CAAC,EAAI,eAAK,EAAI,eAAK,OAAS,CAAC,MAAQ,mBAAS,KAAO,CAAC,MAAQ,mBAAS,KAAK,gBAAM,QAAU,CAAC,EAAI,qBAAM,EAAI,qBAAM,OAAS,CAAC,MAAQ,+BAAW,KAAO,CAAC,MAAQ,+BAAW,KAAK,sBAAO,gBAAgB,CAAC,EAAI,qBAAM,EAAI,qBAAM,OAAS,CAAC,MAAQ,+BAAW,KAAO,CAAC,MAAQ,+BAAW,KAAK,sBAAO,iBAAiB,CAAC,EAAI,qBAAM,EAAI,qBAAM,OAAS,CAAC,MAAQ,+BAAW,KAAO,CAAC,MAAQ,+BAAW,KAAK,sBAAO,MAAQ,CAAC,EAAI,eAAK,EAAI,qBAAM,OAAS,CAAC,MAAQ,yBAAU,KAAO,CAAC,MAAQ,yBAAU,KAAK,sBAAO,cAAc,CAAC,EAAI,eAAK,EAAI,qBAAM,OAAS,CAAC,MAAQ,yBAAU,KAAO,CAAC,MAAQ,yBAAU,KAAK,sBAAO,eAAe,CAAC,EAAI,eAAK,EAAI,qBAAM,OAAS,CAAC,MAAQ,yBAAU,KAAO,CAAC,MAAQ,yBAAU,KAAK,sBAAO,KAAO,CAAC,EAAI,eAAK,EAAI,eAAK,OAAS,CAAC,MAAQ,mBAAS,KAAO,CAAC,MAAQ,mBAAS,KAAK,gBAAM,aAAa,CAAC,EAAI,eAAK,EAAI,eAAK,OAAS,CAAC,MAAQ,mBAAS,KAAO,CAAC,MAAQ,mBAAS,KAAK,gBAAM,cAAc,CAAC,EAAI,eAAK,EAAI,eAAK,OAAS,CAAC,MAAQ,mBAAS,KAAO,CAAC,MAAQ,mBAAS,KAAK,gBAAM,IAAM,CAAC,EAAI,eAAK,EAAI,eAAK,EAAI,eAAK,OAAS,CAAC,MAAQ,mBAAS,KAAO,CAAC,MAAQ,mBAAS,KAAK,eAAK,KAAK,gBAAM,YAAY,CAAC,EAAI,eAAK,EAAI,eAAK,EAAI,eAAK,OAAS,CAAC,MAAQ,mBAAS,KAAO,CAAC,MAAQ,mBAAS,KAAK,eAAK,KAAK,gBAAM,aAAa,CAAC,EAAI,eAAK,EAAI,eAAK,EAAI,eAAK,OAAS,CAAC,MAAQ,mBAAS,KAAO,CAAC,MAAQ,mBAAS,KAAK,eAAK,KAAK,gBAAM,KAAO,CAAC,EAAI,0CAAY,OAAS,CAAC,MAAQ,yBAAU,KAAO,CAAC,MAAQ,0BAAW,aAAa,CAAC,EAAI,0CAAY,OAAS,CAAC,MAAQ,yBAAU,KAAO,CAAC,MAAQ,0BAAW,cAAc,CAAC,EAAI,0CAAY,OAAS,CAAC,MAAQ,yBAAU,KAAO,CAAC,MAAQ,0BAAW,OAAS,CAAC,EAAI,eAAK,OAAS,CAAC,MAAQ,yBAAU,KAAO,CAAC,MAAQ,0BAAW,eAAe,CAAC,EAAI,eAAK,OAAS,CAAC,MAAQ,yBAAU,KAAO,CAAC,MAAQ,0BAAW,gBAAgB,CAAC,EAAI,eAAK,OAAS,CAAC,MAAQ,yBAAU,KAAO,CAAC,MAAQ,0BAAW,OAAS,CAAC,EAAI,eAAK,OAAS,CAAC,MAAQ,yBAAU,KAAO,CAAC,MAAQ,0BAAW,eAAe,CAAC,EAAI,eAAK,OAAS,CAAC,MAAQ,mBAAS,KAAO,CAAC,MAAQ,oBAAU,gBAAgB,CAAC,EAAI,eAAK,OAAS,CAAC,MAAQ,mBAAS,KAAO,CAAC,MAAQ,qBAAW,OAAS,Q,6BCAhvEznM,EAAOC,QAAUC,EAAQ,M,6BCMd,IAAIuB,EAAE,oBAAoBmE,QAAQA,OAAOw5H,IAAI/7H,EAAE5B,EAAEmE,OAAOw5H,IAAI,iBAAiB,MAAM59H,EAAEC,EAAEmE,OAAOw5H,IAAI,gBAAgB,MAAMt8H,EAAErB,EAAEmE,OAAOw5H,IAAI,kBAAkB,MAAMj6H,EAAE1D,EAAEmE,OAAOw5H,IAAI,qBAAqB,MAAM/5H,EAAE5D,EAAEmE,OAAOw5H,IAAI,kBAAkB,MAAMvrG,EAAEpyB,EAAEmE,OAAOw5H,IAAI,kBAAkB,MAAM/4H,EAAE5E,EAAEmE,OAAOw5H,IAAI,iBAAiB,MAAM33H,EAAEhG,EAAEmE,OAAOw5H,IAAI,oBAAoB,MAAMh5H,EAAE3E,EAAEmE,OAAOw5H,IAAI,yBAAyB,MAAM18H,EAAEjB,EAAEmE,OAAOw5H,IAAI,qBAAqB,MAAMv9H,EAAEJ,EAAEmE,OAAOw5H,IAAI,kBAAkB,MAAMt3H,EAAErG,EACpfmE,OAAOw5H,IAAI,uBAAuB,MAAM97H,EAAE7B,EAAEmE,OAAOw5H,IAAI,cAAc,MAAM58H,EAAEf,EAAEmE,OAAOw5H,IAAI,cAAc,MAAMt5H,EAAErE,EAAEmE,OAAOw5H,IAAI,eAAe,MAAM7qG,EAAE9yB,EAAEmE,OAAOw5H,IAAI,qBAAqB,MAAMx0H,EAAEnJ,EAAEmE,OAAOw5H,IAAI,mBAAmB,MAAMh6H,EAAE3D,EAAEmE,OAAOw5H,IAAI,eAAe,MAClQ,SAAS/jE,EAAEn0D,GAAG,GAAG,kBAAkBA,GAAG,OAAOA,EAAE,CAAC,IAAIqjK,EAAErjK,EAAEilH,SAAS,OAAOo+C,GAAG,KAAKlnK,EAAE,OAAO6D,EAAEA,EAAE2F,MAAQ,KAAKpF,EAAE,KAAKrB,EAAE,KAAKtD,EAAE,KAAKuC,EAAE,KAAKF,EAAE,KAAKtD,EAAE,OAAOqF,EAAE,QAAQ,OAAOA,EAAEA,GAAGA,EAAEilH,UAAY,KAAK9lH,EAAE,KAAK3D,EAAE,KAAKF,EAAE,KAAKc,EAAE,KAAKuwB,EAAE,OAAO3sB,EAAE,QAAQ,OAAOqjK,GAAG,KAAK/oK,EAAE,OAAO+oK,IAAI,SAASr3I,EAAEhsB,GAAG,OAAOm0D,EAAEn0D,KAAKd,EAAEnG,EAAQwoM,UAAUhhM,EAAExH,EAAQyoM,eAAetiM,EAAEnG,EAAQ0oM,gBAAgBtiM,EAAEpG,EAAQ2oM,gBAAgB/0K,EAAE5zB,EAAQmR,QAAQ/N,EAAEpD,EAAQyuH,WAAWhsH,EAAEzC,EAAQyrK,SAAS5oK,EAAE7C,EAAQ4oM,KAAKrmM,EAAEvC,EAAQ0uH,KAAKrrH,EAAErD,EAAQ6oM,OAAOtnM,EAChfvB,EAAQ0rK,SAAStmK,EAAEpF,EAAQ4rK,WAAW1mK,EAAElF,EAAQ6rK,SAASjqK,EAAE5B,EAAQ8oM,YAAY,SAAS7hM,GAAG,OAAOgsB,EAAEhsB,IAAIm0D,EAAEn0D,KAAKO,GAAGxH,EAAQ+oM,iBAAiB91K,EAAEjzB,EAAQgpM,kBAAkB,SAAS/hM,GAAG,OAAOm0D,EAAEn0D,KAAKb,GAAGpG,EAAQipM,kBAAkB,SAAShiM,GAAG,OAAOm0D,EAAEn0D,KAAK2sB,GAAG5zB,EAAQgR,UAAU,SAAS/J,GAAG,MAAM,kBAAkBA,GAAG,OAAOA,GAAGA,EAAEilH,WAAW9oH,GAAGpD,EAAQkpM,aAAa,SAASjiM,GAAG,OAAOm0D,EAAEn0D,KAAKxE,GAAGzC,EAAQmpM,WAAW,SAASliM,GAAG,OAAOm0D,EAAEn0D,KAAKpE,GAAG7C,EAAQopM,OAAO,SAASniM,GAAG,OAAOm0D,EAAEn0D,KAAK1E,GACzdvC,EAAQwuH,OAAO,SAASvnH,GAAG,OAAOm0D,EAAEn0D,KAAK5D,GAAGrD,EAAQqpM,SAAS,SAASpiM,GAAG,OAAOm0D,EAAEn0D,KAAK1F,GAAGvB,EAAQspM,WAAW,SAASriM,GAAG,OAAOm0D,EAAEn0D,KAAK7B,GAAGpF,EAAQupM,aAAa,SAAStiM,GAAG,OAAOm0D,EAAEn0D,KAAK/B,GAAGlF,EAAQwpM,WAAW,SAASviM,GAAG,OAAOm0D,EAAEn0D,KAAKrF,GACzO5B,EAAQypM,mBAAmB,SAASxiM,GAAG,MAAM,kBAAkBA,GAAG,oBAAoBA,GAAGA,IAAIpE,GAAGoE,IAAId,GAAGc,IAAI7B,GAAG6B,IAAI/B,GAAG+B,IAAIrF,GAAGqF,IAAIY,GAAG,kBAAkBZ,GAAG,OAAOA,IAAIA,EAAEilH,WAAW3pH,GAAG0E,EAAEilH,WAAW7oH,GAAG4D,EAAEilH,WAAWt4F,GAAG3sB,EAAEilH,WAAW9lH,GAAGa,EAAEilH,WAAWzpH,GAAGwE,EAAEilH,WAAW53F,GAAGrtB,EAAEilH,WAAWvhH,GAAG1D,EAAEilH,WAAW/mH,GAAG8B,EAAEilH,WAAWrmH,IAAI7F,EAAQuvG,OAAOn0C,G,6BCLnU,IAAIsuI,EAAuBzpM,EAAQ,KAEnC,SAAS0pM,KACT,SAASC,KACTA,EAAuBC,kBAAoBF,EAE3C5pM,EAAOC,QAAU,WACf,SAAS8pM,EAAKtpM,EAAOupM,EAAUC,EAAel4L,EAAUm4L,EAAcC,GACpE,GAAIA,IAAWR,EAAf,CAIA,IAAIt+L,EAAM,IAAI+B,MACZ,mLAKF,MADA/B,EAAIyB,KAAO,sBACLzB,GAGR,SAAS++L,IACP,OAAOL,EAFTA,EAAKntD,WAAamtD,EAMlB,IAAIM,EAAiB,CACnBv7K,MAAOi7K,EACPO,OAAQP,EACRQ,KAAMR,EACNzpE,KAAMypE,EACN1sJ,OAAQ0sJ,EACRj7L,OAAQi7L,EACRvkK,OAAQukK,EACR9yE,OAAQ8yE,EAERS,IAAKT,EACLU,QAASL,EACT7zL,QAASwzL,EACTzhJ,YAAayhJ,EACbW,WAAYN,EACZl5L,KAAM64L,EACNY,SAAUP,EACVv6F,MAAOu6F,EACPQ,UAAWR,EACX9vF,MAAO8vF,EACPt1L,MAAOs1L,EAEPS,eAAgBhB,EAChBC,kBAAmBF,GAKrB,OAFAS,EAAe1tD,UAAY0tD,EAEpBA,I,6BCpDTrqM,EAAOC,QAFoB,gD,cCT3BD,EAAOC,QAAU2B,MAAM8I,SAAW,SAAUI,GAC1C,MAA8C,kBAAvC9J,OAAOM,UAAU8mB,SAASrmB,KAAK+I,K,6BCEtC9K,EAAOC,QAAUC,EAAQ,M,6BCMd,IAAIuB,EAAE,oBAAoBmE,QAAQA,OAAOw5H,IAAI/7H,EAAE5B,EAAEmE,OAAOw5H,IAAI,iBAAiB,MAAM59H,EAAEC,EAAEmE,OAAOw5H,IAAI,gBAAgB,MAAMt8H,EAAErB,EAAEmE,OAAOw5H,IAAI,kBAAkB,MAAMj6H,EAAE1D,EAAEmE,OAAOw5H,IAAI,qBAAqB,MAAM/5H,EAAE5D,EAAEmE,OAAOw5H,IAAI,kBAAkB,MAAMvrG,EAAEpyB,EAAEmE,OAAOw5H,IAAI,kBAAkB,MAAM/4H,EAAE5E,EAAEmE,OAAOw5H,IAAI,iBAAiB,MAAM33H,EAAEhG,EAAEmE,OAAOw5H,IAAI,oBAAoB,MAAMh5H,EAAE3E,EAAEmE,OAAOw5H,IAAI,yBAAyB,MAAM18H,EAAEjB,EAAEmE,OAAOw5H,IAAI,qBAAqB,MAAMv9H,EAAEJ,EAAEmE,OAAOw5H,IAAI,kBAAkB,MAAMt3H,EAAErG,EACpfmE,OAAOw5H,IAAI,uBAAuB,MAAM97H,EAAE7B,EAAEmE,OAAOw5H,IAAI,cAAc,MAAM58H,EAAEf,EAAEmE,OAAOw5H,IAAI,cAAc,MAAMt5H,EAAErE,EAAEmE,OAAOw5H,IAAI,eAAe,MAAM7qG,EAAE9yB,EAAEmE,OAAOw5H,IAAI,qBAAqB,MAAMx0H,EAAEnJ,EAAEmE,OAAOw5H,IAAI,mBAAmB,MAAMh6H,EAAE3D,EAAEmE,OAAOw5H,IAAI,eAAe,MAClQ,SAAS/jE,EAAEn0D,GAAG,GAAG,kBAAkBA,GAAG,OAAOA,EAAE,CAAC,IAAIqjK,EAAErjK,EAAEilH,SAAS,OAAOo+C,GAAG,KAAKlnK,EAAE,OAAO6D,EAAEA,EAAE2F,MAAQ,KAAKpF,EAAE,KAAKrB,EAAE,KAAKtD,EAAE,KAAKuC,EAAE,KAAKF,EAAE,KAAKtD,EAAE,OAAOqF,EAAE,QAAQ,OAAOA,EAAEA,GAAGA,EAAEilH,UAAY,KAAK9lH,EAAE,KAAK3D,EAAE,KAAKF,EAAE,KAAKc,EAAE,KAAKuwB,EAAE,OAAO3sB,EAAE,QAAQ,OAAOqjK,GAAG,KAAK/oK,EAAE,OAAO+oK,IAAI,SAASr3I,EAAEhsB,GAAG,OAAOm0D,EAAEn0D,KAAKd,EAAEnG,EAAQwoM,UAAUhhM,EAAExH,EAAQyoM,eAAetiM,EAAEnG,EAAQ0oM,gBAAgBtiM,EAAEpG,EAAQ2oM,gBAAgB/0K,EAAE5zB,EAAQmR,QAAQ/N,EAAEpD,EAAQyuH,WAAWhsH,EAAEzC,EAAQyrK,SAAS5oK,EAAE7C,EAAQ4oM,KAAKrmM,EAAEvC,EAAQ0uH,KAAKrrH,EAAErD,EAAQ6oM,OAAOtnM,EAChfvB,EAAQ0rK,SAAStmK,EAAEpF,EAAQ4rK,WAAW1mK,EAAElF,EAAQ6rK,SAASjqK,EAAE5B,EAAQ8oM,YAAY,SAAS7hM,GAAG,OAAOgsB,EAAEhsB,IAAIm0D,EAAEn0D,KAAKO,GAAGxH,EAAQ+oM,iBAAiB91K,EAAEjzB,EAAQgpM,kBAAkB,SAAS/hM,GAAG,OAAOm0D,EAAEn0D,KAAKb,GAAGpG,EAAQipM,kBAAkB,SAAShiM,GAAG,OAAOm0D,EAAEn0D,KAAK2sB,GAAG5zB,EAAQgR,UAAU,SAAS/J,GAAG,MAAM,kBAAkBA,GAAG,OAAOA,GAAGA,EAAEilH,WAAW9oH,GAAGpD,EAAQkpM,aAAa,SAASjiM,GAAG,OAAOm0D,EAAEn0D,KAAKxE,GAAGzC,EAAQmpM,WAAW,SAASliM,GAAG,OAAOm0D,EAAEn0D,KAAKpE,GAAG7C,EAAQopM,OAAO,SAASniM,GAAG,OAAOm0D,EAAEn0D,KAAK1E,GACzdvC,EAAQwuH,OAAO,SAASvnH,GAAG,OAAOm0D,EAAEn0D,KAAK5D,GAAGrD,EAAQqpM,SAAS,SAASpiM,GAAG,OAAOm0D,EAAEn0D,KAAK1F,GAAGvB,EAAQspM,WAAW,SAASriM,GAAG,OAAOm0D,EAAEn0D,KAAK7B,GAAGpF,EAAQupM,aAAa,SAAStiM,GAAG,OAAOm0D,EAAEn0D,KAAK/B,GAAGlF,EAAQwpM,WAAW,SAASviM,GAAG,OAAOm0D,EAAEn0D,KAAKrF,GACzO5B,EAAQypM,mBAAmB,SAASxiM,GAAG,MAAM,kBAAkBA,GAAG,oBAAoBA,GAAGA,IAAIpE,GAAGoE,IAAId,GAAGc,IAAI7B,GAAG6B,IAAI/B,GAAG+B,IAAIrF,GAAGqF,IAAIY,GAAG,kBAAkBZ,GAAG,OAAOA,IAAIA,EAAEilH,WAAW3pH,GAAG0E,EAAEilH,WAAW7oH,GAAG4D,EAAEilH,WAAWt4F,GAAG3sB,EAAEilH,WAAW9lH,GAAGa,EAAEilH,WAAWzpH,GAAGwE,EAAEilH,WAAW53F,GAAGrtB,EAAEilH,WAAWvhH,GAAG1D,EAAEilH,WAAW/mH,GAAG8B,EAAEilH,WAAWrmH,IAAI7F,EAAQuvG,OAAOn0C,G,gBCPnU,IAAIyvI,EAAW,SAAU7qM,GACvB,aAEA,IAEIsG,EAFAwkM,EAAK/pM,OAAOM,UACZ28G,EAAS8sF,EAAGjpM,eAEZkpM,EAA4B,oBAAXplM,OAAwBA,OAAS,GAClDqlM,EAAiBD,EAAQnlM,UAAY,aACrCqlM,EAAsBF,EAAQnjM,eAAiB,kBAC/CsjM,EAAoBH,EAAQp9J,aAAe,gBAE/C,SAAS27G,EAAO57I,EAAKzM,EAAKwD,GAOxB,OANA1D,OAAOC,eAAe0M,EAAKzM,EAAK,CAC9BwD,MAAOA,EACP7D,YAAY,EACZC,cAAc,EACdC,UAAU,IAEL4M,EAAIzM,GAEb,IAEEqoJ,EAAO,GAAI,IACX,MAAOl+I,GACPk+I,EAAS,SAAS57I,EAAKzM,EAAKwD,GAC1B,OAAOiJ,EAAIzM,GAAOwD,GAItB,SAASy0D,EAAKiyI,EAASC,EAASx9L,EAAMy9L,GAEpC,IAAIC,EAAiBF,GAAWA,EAAQ/pM,qBAAqBkqM,EAAYH,EAAUG,EAC/EnnM,EAAYrD,OAAOqB,OAAOkpM,EAAejqM,WACzCoQ,EAAU,IAAI4F,EAAQg0L,GAAe,IAMzC,OAFAjnM,EAAUonM,QAuMZ,SAA0BL,EAASv9L,EAAM6D,GACvC,IAAI1I,EAAQ0iM,EAEZ,OAAO,SAAgBn3L,EAAQw6D,GAC7B,GAAI/lE,IAAU2iM,EACZ,MAAM,IAAIv+L,MAAM,gCAGlB,GAAIpE,IAAU4iM,EAAmB,CAC/B,GAAe,UAAXr3L,EACF,MAAMw6D,EAKR,OAAO88H,IAMT,IAHAn6L,EAAQ6C,OAASA,EACjB7C,EAAQq9D,IAAMA,IAED,CACX,IAAI+8H,EAAWp6L,EAAQo6L,SACvB,GAAIA,EAAU,CACZ,IAAIC,EAAiBC,EAAoBF,EAAUp6L,GACnD,GAAIq6L,EAAgB,CAClB,GAAIA,IAAmBE,EAAkB,SACzC,OAAOF,GAIX,GAAuB,SAAnBr6L,EAAQ6C,OAGV7C,EAAQlM,KAAOkM,EAAQw6L,MAAQx6L,EAAQq9D,SAElC,GAAuB,UAAnBr9D,EAAQ6C,OAAoB,CACrC,GAAIvL,IAAU0iM,EAEZ,MADA1iM,EAAQ4iM,EACFl6L,EAAQq9D,IAGhBr9D,EAAQy6L,kBAAkBz6L,EAAQq9D,SAEN,WAAnBr9D,EAAQ6C,QACjB7C,EAAQ06L,OAAO,SAAU16L,EAAQq9D,KAGnC/lE,EAAQ2iM,EAER,IAAIU,EAASC,EAASlB,EAASv9L,EAAM6D,GACrC,GAAoB,WAAhB26L,EAAOx/L,KAAmB,CAO5B,GAJA7D,EAAQ0I,EAAQ3M,KACZ6mM,EACAW,EAEAF,EAAOt9H,MAAQk9H,EACjB,SAGF,MAAO,CACLvnM,MAAO2nM,EAAOt9H,IACdhqE,KAAM2M,EAAQ3M,MAGS,UAAhBsnM,EAAOx/L,OAChB7D,EAAQ4iM,EAGRl6L,EAAQ6C,OAAS,QACjB7C,EAAQq9D,IAAMs9H,EAAOt9H,OA/QPy9H,CAAiBpB,EAASv9L,EAAM6D,GAE7CrN,EAcT,SAASioM,EAAShiL,EAAI3c,EAAKohE,GACzB,IACE,MAAO,CAAEliE,KAAM,SAAUkiE,IAAKzkD,EAAGvoB,KAAK4L,EAAKohE,IAC3C,MAAO1jE,GACP,MAAO,CAAEwB,KAAM,QAASkiE,IAAK1jE,IAhBjCpL,EAAQk5D,KAAOA,EAoBf,IAAIuyI,EAAyB,iBACzBa,EAAyB,iBACzBZ,EAAoB,YACpBC,EAAoB,YAIpBK,EAAmB,GAMvB,SAAST,KACT,SAASiB,KACT,SAASC,KAIT,IAAIC,EAAoB,GACxBpjD,EAAOojD,EAAmB1B,GAAgB,WACxC,OAAO9oM,QAGT,IAAIyqM,EAAW5rM,OAAOsM,eAClBu/L,EAA0BD,GAAYA,EAASA,EAASt3L,EAAO,MAC/Du3L,GACAA,IAA4B9B,GAC5B9sF,EAAOl8G,KAAK8qM,EAAyB5B,KAGvC0B,EAAoBE,GAGtB,IAAIC,EAAKJ,EAA2BprM,UAClCkqM,EAAUlqM,UAAYN,OAAOqB,OAAOsqM,GAYtC,SAASI,EAAsBzrM,GAC7B,CAAC,OAAQ,QAAS,UAAU+N,SAAQ,SAASkF,GAC3Cg1I,EAAOjoJ,EAAWiT,GAAQ,SAASw6D,GACjC,OAAO5sE,KAAKspM,QAAQl3L,EAAQw6D,SAkClC,SAASi+H,EAAc3oM,EAAW4oM,GAChC,SAASC,EAAO34L,EAAQw6D,EAAKxqE,EAASC,GACpC,IAAI6nM,EAASC,EAASjoM,EAAUkQ,GAASlQ,EAAW0qE,GACpD,GAAoB,UAAhBs9H,EAAOx/L,KAEJ,CACL,IAAI/H,EAASunM,EAAOt9H,IAChBrqE,EAAQI,EAAOJ,MACnB,OAAIA,GACiB,kBAAVA,GACPu5G,EAAOl8G,KAAK2C,EAAO,WACduoM,EAAY1oM,QAAQG,EAAMiD,SAAS3C,MAAK,SAASN,GACtDwoM,EAAO,OAAQxoM,EAAOH,EAASC,MAC9B,SAAS6G,GACV6hM,EAAO,QAAS7hM,EAAK9G,EAASC,MAI3ByoM,EAAY1oM,QAAQG,GAAOM,MAAK,SAASmoM,GAI9CroM,EAAOJ,MAAQyoM,EACf5oM,EAAQO,MACP,SAAS+B,GAGV,OAAOqmM,EAAO,QAASrmM,EAAOtC,EAASC,MAvBzCA,EAAO6nM,EAAOt9H,KA4BlB,IAAIq+H,EAgCJjrM,KAAKspM,QA9BL,SAAiBl3L,EAAQw6D,GACvB,SAASs+H,IACP,OAAO,IAAIJ,GAAY,SAAS1oM,EAASC,GACvC0oM,EAAO34L,EAAQw6D,EAAKxqE,EAASC,MAIjC,OAAO4oM,EAaLA,EAAkBA,EAAgBpoM,KAChCqoM,EAGAA,GACEA,KAkHV,SAASrB,EAAoBF,EAAUp6L,GACrC,IAAI6C,EAASu3L,EAASjmM,SAAS6L,EAAQ6C,QACvC,GAAIA,IAAWhO,EAAW,CAKxB,GAFAmL,EAAQo6L,SAAW,KAEI,UAAnBp6L,EAAQ6C,OAAoB,CAE9B,GAAIu3L,EAASjmM,SAAiB,SAG5B6L,EAAQ6C,OAAS,SACjB7C,EAAQq9D,IAAMxoE,EACdylM,EAAoBF,EAAUp6L,GAEP,UAAnBA,EAAQ6C,QAGV,OAAO03L,EAIXv6L,EAAQ6C,OAAS,QACjB7C,EAAQq9D,IAAM,IAAIzuE,UAChB,kDAGJ,OAAO2rM,EAGT,IAAII,EAASC,EAAS/3L,EAAQu3L,EAASjmM,SAAU6L,EAAQq9D,KAEzD,GAAoB,UAAhBs9H,EAAOx/L,KAIT,OAHA6E,EAAQ6C,OAAS,QACjB7C,EAAQq9D,IAAMs9H,EAAOt9H,IACrBr9D,EAAQo6L,SAAW,KACZG,EAGT,IAAItlL,EAAO0lL,EAAOt9H,IAElB,OAAMpoD,EAOFA,EAAK5hB,MAGP2M,EAAQo6L,EAASwB,YAAc3mL,EAAKjiB,MAGpCgN,EAAQ9M,KAAOknM,EAASyB,QAQD,WAAnB77L,EAAQ6C,SACV7C,EAAQ6C,OAAS,OACjB7C,EAAQq9D,IAAMxoE,GAUlBmL,EAAQo6L,SAAW,KACZG,GANEtlL,GA3BPjV,EAAQ6C,OAAS,QACjB7C,EAAQq9D,IAAM,IAAIzuE,UAAU,oCAC5BoR,EAAQo6L,SAAW,KACZG,GAoDX,SAASuB,EAAaC,GACpB,IAAI9iJ,EAAQ,CAAE+iJ,OAAQD,EAAK,IAEvB,KAAKA,IACP9iJ,EAAMgjJ,SAAWF,EAAK,IAGpB,KAAKA,IACP9iJ,EAAMijJ,WAAaH,EAAK,GACxB9iJ,EAAMkjJ,SAAWJ,EAAK,IAGxBtrM,KAAK2rM,WAAW7nM,KAAK0kD,GAGvB,SAASojJ,EAAcpjJ,GACrB,IAAI0hJ,EAAS1hJ,EAAMqjJ,YAAc,GACjC3B,EAAOx/L,KAAO,gBACPw/L,EAAOt9H,IACdpkB,EAAMqjJ,WAAa3B,EAGrB,SAAS/0L,EAAQg0L,GAIfnpM,KAAK2rM,WAAa,CAAC,CAAEJ,OAAQ,SAC7BpC,EAAYj8L,QAAQm+L,EAAcrrM,MAClCA,KAAKkqD,OAAM,GA8Bb,SAAS/2C,EAAO24L,GACd,GAAIA,EAAU,CACZ,IAAIC,EAAiBD,EAAShD,GAC9B,GAAIiD,EACF,OAAOA,EAAensM,KAAKksM,GAG7B,GAA6B,oBAAlBA,EAASrpM,KAClB,OAAOqpM,EAGT,IAAKh0L,MAAMg0L,EAASttM,QAAS,CAC3B,IAAID,GAAK,EAAGkE,EAAO,SAASA,IAC1B,OAASlE,EAAIutM,EAASttM,QACpB,GAAIs9G,EAAOl8G,KAAKksM,EAAUvtM,GAGxB,OAFAkE,EAAKF,MAAQupM,EAASvtM,GACtBkE,EAAKG,MAAO,EACLH,EAOX,OAHAA,EAAKF,MAAQ6B,EACb3B,EAAKG,MAAO,EAELH,GAGT,OAAOA,EAAKA,KAAOA,GAKvB,MAAO,CAAEA,KAAMinM,GAIjB,SAASA,IACP,MAAO,CAAEnnM,MAAO6B,EAAWxB,MAAM,GA+MnC,OA7mBA0nM,EAAkBnrM,UAAYorM,EAC9BnjD,EAAOujD,EAAI,cAAeJ,GAC1BnjD,EAAOmjD,EAA4B,cAAeD,GAClDA,EAAkB76L,YAAc23I,EAC9BmjD,EACAvB,EACA,qBAaFlrM,EAAQkuM,oBAAsB,SAASC,GACrC,IAAIC,EAAyB,oBAAXD,GAAyBA,EAAOhsM,YAClD,QAAOisM,IACHA,IAAS5B,GAG2B,uBAAnC4B,EAAKz8L,aAAey8L,EAAKvhM,QAIhC7M,EAAQquM,KAAO,SAASF,GAQtB,OAPIptM,OAAOU,eACTV,OAAOU,eAAe0sM,EAAQ1B,IAE9B0B,EAAOzsM,UAAY+qM,EACnBnjD,EAAO6kD,EAAQjD,EAAmB,sBAEpCiD,EAAO9sM,UAAYN,OAAOqB,OAAOyqM,GAC1BsB,GAOTnuM,EAAQsuM,MAAQ,SAASx/H,GACvB,MAAO,CAAEpnE,QAASonE,IAsEpBg+H,EAAsBC,EAAc1rM,WACpCioJ,EAAOyjD,EAAc1rM,UAAW4pM,GAAqB,WACnD,OAAO/oM,QAETlC,EAAQ+sM,cAAgBA,EAKxB/sM,EAAQuuM,MAAQ,SAASpD,EAASC,EAASx9L,EAAMy9L,EAAa2B,QACxC,IAAhBA,IAAwBA,EAAc3oM,SAE1C,IAAI6lB,EAAO,IAAI6iL,EACb7zI,EAAKiyI,EAASC,EAASx9L,EAAMy9L,GAC7B2B,GAGF,OAAOhtM,EAAQkuM,oBAAoB9C,GAC/BlhL,EACAA,EAAKvlB,OAAOI,MAAK,SAASF,GACxB,OAAOA,EAAOC,KAAOD,EAAOJ,MAAQylB,EAAKvlB,WAuKjDmoM,EAAsBD,GAEtBvjD,EAAOujD,EAAI3B,EAAmB,aAO9B5hD,EAAOujD,EAAI7B,GAAgB,WACzB,OAAO9oM,QAGTonJ,EAAOujD,EAAI,YAAY,WACrB,MAAO,wBAkCT7sM,EAAQoM,KAAO,SAASyC,GACtB,IAAIzC,EAAO,GACX,IAAK,IAAInL,KAAO4N,EACdzC,EAAKpG,KAAK/E,GAMZ,OAJAmL,EAAKuW,UAIE,SAAShe,IACd,KAAOyH,EAAK1L,QAAQ,CAClB,IAAIO,EAAMmL,EAAKrG,MACf,GAAI9E,KAAO4N,EAGT,OAFAlK,EAAKF,MAAQxD,EACb0D,EAAKG,MAAO,EACLH,EAQX,OADAA,EAAKG,MAAO,EACLH,IAsCX3E,EAAQqV,OAASA,EAMjBgC,EAAQhW,UAAY,CAClBc,YAAakV,EAEb+0C,MAAO,SAASoiJ,GAcd,GAbAtsM,KAAKgxC,KAAO,EACZhxC,KAAKyC,KAAO,EAGZzC,KAAKqD,KAAOrD,KAAK+pM,MAAQ3lM,EACzBpE,KAAK4C,MAAO,EACZ5C,KAAK2pM,SAAW,KAEhB3pM,KAAKoS,OAAS,OACdpS,KAAK4sE,IAAMxoE,EAEXpE,KAAK2rM,WAAWz+L,QAAQ0+L,IAEnBU,EACH,IAAK,IAAI3hM,KAAQ3K,KAEQ,MAAnB2K,EAAK+I,OAAO,IACZooG,EAAOl8G,KAAKI,KAAM2K,KACjBmN,OAAOnN,EAAKpF,MAAM,MACrBvF,KAAK2K,GAAQvG,IAMrBguD,KAAM,WACJpyD,KAAK4C,MAAO,EAEZ,IACI2pM,EADYvsM,KAAK2rM,WAAW,GACLE,WAC3B,GAAwB,UAApBU,EAAW7hM,KACb,MAAM6hM,EAAW3/H,IAGnB,OAAO5sE,KAAKwsM,MAGdxC,kBAAmB,SAASv8L,GAC1B,GAAIzN,KAAK4C,KACP,MAAM6K,EAGR,IAAI8B,EAAUvP,KACd,SAASysM,EAAOC,EAAKC,GAYnB,OAXAzC,EAAOx/L,KAAO,QACdw/L,EAAOt9H,IAAMn/D,EACb8B,EAAQ9M,KAAOiqM,EAEXC,IAGFp9L,EAAQ6C,OAAS,OACjB7C,EAAQq9D,IAAMxoE,KAGNuoM,EAGZ,IAAK,IAAIpuM,EAAIyB,KAAK2rM,WAAWntM,OAAS,EAAGD,GAAK,IAAKA,EAAG,CACpD,IAAIiqD,EAAQxoD,KAAK2rM,WAAWptM,GACxB2rM,EAAS1hJ,EAAMqjJ,WAEnB,GAAqB,SAAjBrjJ,EAAM+iJ,OAIR,OAAOkB,EAAO,OAGhB,GAAIjkJ,EAAM+iJ,QAAUvrM,KAAKgxC,KAAM,CAC7B,IAAI47J,EAAW9wF,EAAOl8G,KAAK4oD,EAAO,YAC9BqkJ,EAAa/wF,EAAOl8G,KAAK4oD,EAAO,cAEpC,GAAIokJ,GAAYC,EAAY,CAC1B,GAAI7sM,KAAKgxC,KAAOwX,EAAMgjJ,SACpB,OAAOiB,EAAOjkJ,EAAMgjJ,UAAU,GACzB,GAAIxrM,KAAKgxC,KAAOwX,EAAMijJ,WAC3B,OAAOgB,EAAOjkJ,EAAMijJ,iBAGjB,GAAImB,GACT,GAAI5sM,KAAKgxC,KAAOwX,EAAMgjJ,SACpB,OAAOiB,EAAOjkJ,EAAMgjJ,UAAU,OAG3B,KAAIqB,EAMT,MAAM,IAAI5hM,MAAM,0CALhB,GAAIjL,KAAKgxC,KAAOwX,EAAMijJ,WACpB,OAAOgB,EAAOjkJ,EAAMijJ,gBAU9BxB,OAAQ,SAASv/L,EAAMkiE,GACrB,IAAK,IAAIruE,EAAIyB,KAAK2rM,WAAWntM,OAAS,EAAGD,GAAK,IAAKA,EAAG,CACpD,IAAIiqD,EAAQxoD,KAAK2rM,WAAWptM,GAC5B,GAAIiqD,EAAM+iJ,QAAUvrM,KAAKgxC,MACrB8qE,EAAOl8G,KAAK4oD,EAAO,eACnBxoD,KAAKgxC,KAAOwX,EAAMijJ,WAAY,CAChC,IAAIqB,EAAetkJ,EACnB,OAIAskJ,IACU,UAATpiM,GACS,aAATA,IACDoiM,EAAavB,QAAU3+H,GACvBA,GAAOkgI,EAAarB,aAGtBqB,EAAe,MAGjB,IAAI5C,EAAS4C,EAAeA,EAAajB,WAAa,GAItD,OAHA3B,EAAOx/L,KAAOA,EACdw/L,EAAOt9H,IAAMA,EAETkgI,GACF9sM,KAAKoS,OAAS,OACdpS,KAAKyC,KAAOqqM,EAAarB,WAClB3B,GAGF9pM,KAAKw6C,SAAS0vJ,IAGvB1vJ,SAAU,SAAS0vJ,EAAQwB,GACzB,GAAoB,UAAhBxB,EAAOx/L,KACT,MAAMw/L,EAAOt9H,IAcf,MAXoB,UAAhBs9H,EAAOx/L,MACS,aAAhBw/L,EAAOx/L,KACT1K,KAAKyC,KAAOynM,EAAOt9H,IACM,WAAhBs9H,EAAOx/L,MAChB1K,KAAKwsM,KAAOxsM,KAAK4sE,IAAMs9H,EAAOt9H,IAC9B5sE,KAAKoS,OAAS,SACdpS,KAAKyC,KAAO,OACa,WAAhBynM,EAAOx/L,MAAqBghM,IACrC1rM,KAAKyC,KAAOipM,GAGP5B,GAGTiD,OAAQ,SAAStB,GACf,IAAK,IAAIltM,EAAIyB,KAAK2rM,WAAWntM,OAAS,EAAGD,GAAK,IAAKA,EAAG,CACpD,IAAIiqD,EAAQxoD,KAAK2rM,WAAWptM,GAC5B,GAAIiqD,EAAMijJ,aAAeA,EAGvB,OAFAzrM,KAAKw6C,SAASgO,EAAMqjJ,WAAYrjJ,EAAMkjJ,UACtCE,EAAcpjJ,GACPshJ,IAKb,MAAS,SAASyB,GAChB,IAAK,IAAIhtM,EAAIyB,KAAK2rM,WAAWntM,OAAS,EAAGD,GAAK,IAAKA,EAAG,CACpD,IAAIiqD,EAAQxoD,KAAK2rM,WAAWptM,GAC5B,GAAIiqD,EAAM+iJ,SAAWA,EAAQ,CAC3B,IAAIrB,EAAS1hJ,EAAMqjJ,WACnB,GAAoB,UAAhB3B,EAAOx/L,KAAkB,CAC3B,IAAIsiM,EAAS9C,EAAOt9H,IACpBg/H,EAAcpjJ,GAEhB,OAAOwkJ,GAMX,MAAM,IAAI/hM,MAAM,0BAGlBgiM,cAAe,SAASnB,EAAUX,EAAYC,GAa5C,OAZAprM,KAAK2pM,SAAW,CACdjmM,SAAUyP,EAAO24L,GACjBX,WAAYA,EACZC,QAASA,GAGS,SAAhBprM,KAAKoS,SAGPpS,KAAK4sE,IAAMxoE,GAGN0lM,IAQJhsM,EA9sBM,CAqtBgBD,EAAOC,SAGtC,IACEovM,mBAAqBvE,EACrB,MAAOwE,GAWmB,kBAAf3zD,WACTA,WAAW0zD,mBAAqBvE,EAEhCrrG,SAAS,IAAK,yBAAdA,CAAwCqrG,K,6BC7uB5C9pM,OAAOC,eAAehB,EAAS,aAAc,CAC3CyE,OAAO,IAETzE,EAAQ4I,aAAU,EAElB,IAAIgiJ,EAoBJ,SAAiCl9I,GAAO,GAAIA,GAAOA,EAAIhF,WAAc,OAAOgF,EAAO,GAAY,OAARA,GAAiC,WAAjBD,EAAQC,IAAoC,oBAARA,EAAsB,MAAO,CAAE9E,QAAS8E,GAAS,IAAIkG,EAAQi3I,IAA4B,GAAIj3I,GAASA,EAAM3K,IAAIyE,GAAQ,OAAOkG,EAAMrN,IAAImH,GAAQ,IAAI6tG,EAAS,GAAQuvC,EAAwB/pJ,OAAOC,gBAAkBD,OAAOuC,yBAA0B,IAAK,IAAIrC,KAAOyM,EAAO,GAAI3M,OAAOM,UAAUQ,eAAeC,KAAK4L,EAAKzM,GAAM,CAAE,IAAIkC,EAAO2nJ,EAAwB/pJ,OAAOuC,yBAAyBoK,EAAKzM,GAAO,KAAUkC,IAASA,EAAKoD,KAAOpD,EAAKgG,KAAQpI,OAAOC,eAAeu6G,EAAQt6G,EAAKkC,GAAgBo4G,EAAOt6G,GAAOyM,EAAIzM,GAAYs6G,EAAO3yG,QAAU8E,EAASkG,GAASA,EAAMzK,IAAIuE,EAAK6tG,GAAW,OAAOA,EApBntBwvC,CAAwB9qJ,EAAQ,IAEzCkrJ,EAAkBlT,EAAuBh4I,EAAQ,MAEjD+qJ,EAAc/S,EAAuBh4I,EAAQ,MAE7C+3I,EAAUC,EAAuBh4I,EAAQ,MAEzCqvM,EAAYr3D,EAAuBh4I,EAAQ,MAE3CmrJ,EAAUnT,EAAuBh4I,EAAQ,MAEzCsvM,EAAStvM,EAAQ,KAEjBuvM,EAAcvvM,EAAQ,KAE1B,SAASg4I,EAAuBvqI,GAAO,OAAOA,GAAOA,EAAIhF,WAAagF,EAAM,CAAE9E,QAAS8E,GAEvF,SAASm9I,IAA6B,GAAuB,oBAAZp/D,QAAwB,OAAO,KAAM,IAAI73E,EAAQ,IAAI63E,QAA6F,OAAlFo/D,EAA2B,WAAsC,OAAOj3I,GAAiBA,EAI1M,SAASnG,EAAQC,GAAmV,OAAtOD,EAArD,oBAAX9H,QAAoD,kBAApBA,OAAOC,SAAmC,SAAiB8H,GAAO,cAAcA,GAA2B,SAAiBA,GAAO,OAAOA,GAAyB,oBAAX/H,QAAyB+H,EAAIvL,cAAgBwD,QAAU+H,IAAQ/H,OAAOtE,UAAY,gBAAkBqM,IAAyBA,GAEnX,SAASmD,IAA2Q,OAA9PA,EAAW9P,OAAOuB,QAAU,SAAU/B,GAAU,IAAK,IAAIE,EAAI,EAAGA,EAAIiC,UAAUhC,OAAQD,IAAK,CAAE,IAAI0O,EAASzM,UAAUjC,GAAI,IAAK,IAAIQ,KAAOkO,EAAcpO,OAAOM,UAAUQ,eAAeC,KAAKqN,EAAQlO,KAAQV,EAAOU,GAAOkO,EAAOlO,IAAY,OAAOV,IAA2BoC,MAAMT,KAAMQ,WAEhT,SAASkM,EAAQC,EAAQC,GAAkB,IAAI1C,EAAOrL,OAAOqL,KAAKyC,GAAS,GAAI9N,OAAOgC,sBAAuB,CAAE,IAAIgM,EAAUhO,OAAOgC,sBAAsB8L,GAAaC,IAAgBC,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOlO,OAAOuC,yBAAyBuL,EAAQI,GAAKrO,eAAgBwL,EAAKpG,KAAKrD,MAAMyJ,EAAM2C,GAAY,OAAO3C,EAE9U,SAASqjM,EAAclvM,GAAU,IAAK,IAAIE,EAAI,EAAGA,EAAIiC,UAAUhC,OAAQD,IAAK,CAAE,IAAI0O,EAAyB,MAAhBzM,UAAUjC,GAAaiC,UAAUjC,GAAK,GAAQA,EAAI,EAAKmO,EAAQ7N,OAAOoO,IAAS,GAAMC,SAAQ,SAAUnO,GAAOstG,EAAgBhuG,EAAQU,EAAKkO,EAAOlO,OAAsBF,OAAOsO,0BAA6BtO,OAAOuO,iBAAiB/O,EAAQQ,OAAOsO,0BAA0BF,IAAmBP,EAAQ7N,OAAOoO,IAASC,SAAQ,SAAUnO,GAAOF,OAAOC,eAAeT,EAAQU,EAAKF,OAAOuC,yBAAyB6L,EAAQlO,OAAe,OAAOV,EAI7gB,SAASD,EAAkBC,EAAQC,GAAS,IAAK,IAAIC,EAAI,EAAGA,EAAID,EAAME,OAAQD,IAAK,CAAE,IAAIE,EAAaH,EAAMC,GAAIE,EAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,UAAWF,IAAYA,EAAWG,UAAW,GAAMC,OAAOC,eAAeT,EAAQI,EAAWM,IAAKN,IAM7S,SAASm9G,EAAgB53G,EAAGtE,GAA+G,OAA1Gk8G,EAAkB/8G,OAAOU,gBAAkB,SAAyByE,EAAGtE,GAAsB,OAAjBsE,EAAExE,UAAYE,EAAUsE,IAA6BA,EAAGtE,GAErK,SAASkM,EAAaC,GAAW,IAAIC,EAMrC,WAAuC,GAAuB,qBAAZzK,UAA4BA,QAAQ6K,UAAW,OAAO,EAAO,GAAI7K,QAAQ6K,UAAUkoI,KAAM,OAAO,EAAO,GAAqB,oBAAV1oG,MAAsB,OAAO,EAAM,IAAiF,OAA3EoO,KAAK36C,UAAU8mB,SAASrmB,KAAKyB,QAAQ6K,UAAU4tC,KAAM,IAAI,iBAAyB,EAAQ,MAAOn5C,GAAK,OAAO,GANzPwzI,GAA6B,OAAO,WAAkC,IAAsCxxI,EAAlCqJ,EAAQd,EAAgBW,GAAkB,GAAIC,EAA2B,CAAE,IAAIG,EAAYf,EAAgBlL,MAAMC,YAAa0C,EAAStB,QAAQ6K,UAAUF,EAAOxL,UAAWyL,QAAqBtJ,EAASqJ,EAAMvL,MAAMT,KAAMQ,WAAc,OAAOiL,EAA2BzL,KAAM2C,IAE5Z,SAAS8I,EAA2BC,EAAM9L,GAAQ,OAAIA,GAA2B,WAAlB2L,EAAQ3L,IAAsC,oBAATA,EAA8CkpH,EAAuBp9G,GAAtC9L,EAEnI,SAASkpH,EAAuBp9G,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIq9G,eAAe,6DAAgE,OAAOr9G,EAI/J,SAASR,EAAgBlH,GAAwJ,OAAnJkH,EAAkBrM,OAAOU,eAAiBV,OAAOsM,eAAiB,SAAyBnH,GAAK,OAAOA,EAAExE,WAAaX,OAAOsM,eAAenH,KAA8BA,GAExM,SAASqoG,EAAgB7gG,EAAKzM,EAAKwD,GAAiK,OAApJxD,KAAOyM,EAAO3M,OAAOC,eAAe0M,EAAKzM,EAAK,CAAEwD,MAAOA,EAAO7D,YAAY,EAAMC,cAAc,EAAMC,UAAU,IAAkB4M,EAAIzM,GAAOwD,EAAgBiJ,EAE3M,IAAIgiM,EAAwB,SAAUC,IAhBtC,SAAmBpiM,EAAUC,GAAc,GAA0B,oBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAInN,UAAU,sDAAyDkN,EAASlM,UAAYN,OAAOqB,OAAOoL,GAAcA,EAAWnM,UAAW,CAAEc,YAAa,CAAEsC,MAAO8I,EAAUzM,UAAU,EAAMD,cAAc,KAAe2M,GAAYswG,EAAgBvwG,EAAUC,GAiBjXF,CAAUoiM,EAAUC,GAEpB,IArBoBvvM,EAAae,EAAYC,EAqBzCqO,EAAS3B,EAAa4hM,GAG1B,SAASA,EAASlvM,GAChB,IAAIoP,GA7BR,SAAyBzP,EAAUC,GAAe,KAAMD,aAAoBC,GAAgB,MAAM,IAAIC,UAAU,qCA+B5GH,CAAgBgC,KAAMwtM,GAItBnhG,EAAgByc,EAFhBp7G,EAAQH,EAAO3N,KAAKI,KAAM1B,IAEqB,iBAAa,GAE5D+tG,EAAgByc,EAAuBp7G,GAAQ,0BAAsB,GAErE2+F,EAAgByc,EAAuBp7G,GAAQ,eAAW,GAE1D2+F,EAAgByc,EAAuBp7G,GAAQ,gBAAY,GAE3D2+F,EAAgByc,EAAuBp7G,GAAQ,aAAS,GAExD2+F,EAAgByc,EAAuBp7G,GAAQ,wBAAoB,GAEnE2+F,EAAgByc,EAAuBp7G,GAAQ,gBAAgB,SAAUqB,GACvErB,EAAM47I,UAAYv6I,KAGpBs9F,EAAgByc,EAAuBp7G,GAAQ,yBAAyB,SAAUqB,GAChFrB,EAAMggM,mBAAqB3+L,KAG7Bs9F,EAAgByc,EAAuBp7G,GAAQ,cAAc,SAAUqB,GACrErB,EAAMigM,QAAU5+L,KAGlBs9F,EAAgByc,EAAuBp7G,GAAQ,eAAe,SAAUqB,EAAMsE,GACvE3F,EAAMkgM,WACTlgM,EAAMkgM,SAAW,IAGnBlgM,EAAMkgM,SAASv6L,GAAStE,KAG1Bs9F,EAAgByc,EAAuBp7G,GAAQ,YAAY,WACrDg7I,EAAOr0I,SAAS+I,MAAM1P,EAAMpP,MAAM4S,WAAa,IAInDxD,EAAMmgM,gBAEDngM,EAAMpP,MAAMwvM,WAIjBpgM,EAAM8O,MAAQpB,YAAW,WACvB1N,EAAMo0D,cACLp0D,EAAMpP,MAAMy6F,eAGjBsT,EAAgByc,EAAuBp7G,GAAQ,iBAAiB,WAC1DA,EAAM8O,OAAOH,aAAa3O,EAAM8O,UAGtC6vF,EAAgByc,EAAuBp7G,GAAQ,iBAAiB,WAC9DA,EAAMmgM,gBAENngM,EAAMogM,cAGRzhG,EAAgByc,EAAuBp7G,GAAQ,eAAe,WAC5DA,EAAMyC,SAAS,CACb49L,gBAAgB,GACfrgM,EAAMmgM,kBAGXxhG,EAAgByc,EAAuBp7G,GAAQ,gBAAgB,WAC7DA,EAAMyC,SAAS,CACb49L,gBAAgB,GACfrgM,EAAMogM,aAGXzhG,EAAgByc,EAAuBp7G,GAAQ,4BAA4B,WACzE,QAAKA,EAAMggM,uBAIP,EAAIN,EAAU1mM,WAAWiqK,gBAAkBjjK,EAAMggM,qBAAsBhgM,EAAMggM,mBAAmBpyI,UAAS,EAAI8xI,EAAU1mM,WAAWiqK,mBAOxItkE,EAAgByc,EAAuBp7G,GAAQ,wBAAwB,SAAU/M,GAC/E,GAAK+M,EAAMsgM,2BAAX,CAIA,IACI5jJ,EAAwB,eADjB18C,EAAMpP,MAAMohD,KASnBuuJ,EAAU7jJ,EAHD,GAHF,IAKGA,EAJA,GACD,MAMGzpD,EAAEw/K,QAChBzyK,EAAMo0D,YACGmsI,IAAYttM,EAAEw/K,SACvBzyK,EAAMwgM,gBAIV7hG,EAAgByc,EAAuBp7G,GAAQ,eAAe,WAC5D,GAAKA,EAAM7G,MAAMsnM,aAAgBzgM,EAAMkgM,UAAsC,IAA1BlgM,EAAMkgM,SAASpvM,OAAlE,CAIA,IAAI4rD,EAAoC,eAArB18C,EAAMpP,MAAMohD,KAC3BoqG,EAAYp8I,EAAMkgM,SAAS,GAE/B,GAAK9jD,EAAL,CAIA,IAAIN,EAAWp/F,EAAe0/F,EAAUl2G,YAAck2G,EAAUj2G,aAEhEnmC,EAAMyC,SAAS,CACbq5I,SAAUA,IAGR97I,EAAM47I,WACR57I,EAAM47I,UAAUiB,mBAIpBl+C,EAAgByc,EAAuBp7G,GAAQ,iBAAiB,WAC9DA,EAAMyC,SAAS,CACbi+L,UAAU,IAGZ1gM,EAAM68I,iBAGRl+C,EAAgByc,EAAuBp7G,GAAQ,mBAAmB,SAAU2F,EAAOuU,GAC7B,IAAhD8gI,EAAOr0I,SAAS+I,MAAM1P,EAAMpP,MAAM4S,YAIlCxD,EAAM7G,MAAMwnM,YACd3gM,EAAMyC,SAAS,CACbk+L,aAAa,KAMjB3gM,EAAMpP,MAAMgwM,YAAYj7L,EAAOuU,GAE3BvU,IAAU3F,EAAM7G,MAAMmjJ,cACxBt8I,EAAMyC,SAAS,CACb65I,aAAc32I,SAKpBg5F,EAAgByc,EAAuBp7G,GAAQ,kBAAkB,SAAU2F,EAAOuU,GAC5E8gI,EAAOr0I,SAAS+I,MAAM1P,EAAMpP,MAAM4S,WAAa,GAInDxD,EAAMpP,MAAMkpB,SAASnU,EAAOuU,MAG9BykF,EAAgByc,EAAuBp7G,GAAQ,oBAAoB,SAAU2F,EAAOuU,GAClFla,EAAMpP,MAAMiwM,aAAal7L,EAAOuU,GAEhCla,EAAM83B,OAAOnyB,MAGfg5F,EAAgByc,EAAuBp7G,GAAQ,gBAAgB,SAAUwI,GACvExI,EAAMyC,SAAS,CACbg6I,SAAS,IAGXz8I,EAAMpP,MAAMiuJ,aAAar2I,MAG3Bm2F,EAAgByc,EAAuBp7G,GAAQ,cAAc,SAAUwI,GACrExI,EAAMyC,SAAS,CACbg6I,SAAS,EACTkkD,aAAa,EACbG,sBAAsB,IAGxB9gM,EAAMpP,MAAMkuJ,WAAWt2I,GAEvBxI,EAAMmgM,gBAEFngM,EAAM7G,MAAMinM,UACdpgM,EAAMogM,cAIVzhG,EAAgByc,EAAuBp7G,GAAQ,eAAe,SAAU4T,EAAOpL,GAC7ExI,EAAMpP,MAAMguJ,YAAYp2I,GAExB,IAAIu4L,EAA2B/gM,EAAMpP,MAAMowM,sBAAsBptL,EAAO5T,EAAMpP,MAAOoP,EAAM7G,MAAO6G,EAAMyC,SAAS8sF,KAAK6rB,EAAuBp7G,KAM7I,OAJAA,EAAMyC,SAASo9L,EAAc,GAAIkB,MAIxB5vM,OAAOqL,KAAKukM,GAA0BjwM,UAGjD6tG,EAAgByc,EAAuBp7G,GAAQ,aAAa,WAC1D,IAAIskC,EAAYxxC,UAAUhC,OAAS,QAAsB4F,IAAjB5D,UAAU,GAAmBA,UAAU,GAAK,EAEpFkN,EAAM83B,OAAO93B,EAAM7G,MAAMmjJ,cAAqC,kBAAdh4G,EAAyBA,EAAY,OAGvFq6D,EAAgByc,EAAuBp7G,GAAQ,aAAa,WAC1D,IAAIskC,EAAYxxC,UAAUhC,OAAS,QAAsB4F,IAAjB5D,UAAU,GAAmBA,UAAU,GAAK,EAEpFkN,EAAM83B,OAAO93B,EAAM7G,MAAMmjJ,cAAqC,kBAAdh4G,EAAyBA,EAAY,OAGvFq6D,EAAgByc,EAAuBp7G,GAAQ,UAAU,SAAUmM,GACjE,GAAwB,kBAAbA,EAAX,CAIA,IAAI+vI,EAAelB,EAAOr0I,SAAS+I,MAAM1P,EAAMpP,MAAM4S,UAAY,EAE7D2I,EAAW,IACbA,EAAWnM,EAAMpP,MAAM2uJ,aAAerD,EAAe,GAGnD/vI,EAAW+vI,IACb/vI,EAAWnM,EAAMpP,MAAM2uJ,aAAe,EAAIrD,GAG5Cl8I,EAAMihM,WAAW,CAEf3kD,aAAcnwI,IAKZnM,EAAM7G,MAAMinM,WAA2C,IAA/BpgM,EAAM7G,MAAMknM,gBACtCrgM,EAAMkhM,oBAIVviG,EAAgByc,EAAuBp7G,GAAQ,eAAe,WAC5DA,EAAMo0D,UAAU,MAGlBuqC,EAAgByc,EAAuBp7G,GAAQ,eAAe,WAC5DA,EAAMwgM,UAAU,MAGlB7hG,EAAgByc,EAAuBp7G,GAAQ,kBAAkB,WAC/DA,EAAMo0D,UAAU,GAEZp0D,EAAMpP,MAAMquJ,cACdj/I,EAAMyC,SAAS,CACbk+L,aAAa,OAKnBhiG,EAAgByc,EAAuBp7G,GAAQ,oBAAoB,WACjEA,EAAMwgM,UAAU,GAEZxgM,EAAMpP,MAAMquJ,cACdj/I,EAAMyC,SAAS,CACbk+L,aAAa,OAKnBhiG,EAAgByc,EAAuBp7G,GAAQ,cAAc,SAAUmhM,GACrE,OAAO,SAAUluM,IACV,EAAI0sM,EAAOpjD,iBAAiBtpJ,IAAgB,UAAVA,EAAE5B,KACvC2O,EAAM83B,OAAOqpK,OAKnBxiG,EAAgByc,EAAuBp7G,GAAQ,cAAc,SAAU7G,GAErE6G,EAAMyC,SAASo9L,EAAc,CAC3BuB,aAAcphM,EAAM7G,MAAMmjJ,cACzBnjJ,IAAQ,WAET6G,EAAMyC,SAASzC,EAAMqhM,iBAAiBrhM,EAAMpP,MAAOoP,EAAM7G,WAG3D6G,EAAMshM,eAAenoM,EAAMmjJ,aAActB,EAAOr0I,SAASo7F,QAAQ/hG,EAAMpP,MAAM4S,UAAUrK,EAAMmjJ,kBAG/F39C,EAAgByc,EAAuBp7G,GAAQ,mBAAmB,WAChE,IAAIs8I,EAAet8I,EAAMpP,MAAM0rJ,aAC3BpiI,EAAOla,EAAMkgM,UAAYlgM,EAAMkgM,SAAS5jD,GAE5C,OADapiI,GAAQA,EAAKqnL,qBAAqB,QAAU,IAC3C,MAGhB5iG,EAAgByc,EAAuBp7G,GAAQ,yBAAyB,SAAUmM,GAChF,IAAI+N,EAAOla,EAAMkgM,UAAYlgM,EAAMkgM,SAAS/zL,GAE5C,GAAInM,EAAM7G,MAAMunM,UAAYxmL,GAAQA,EAAK1W,SAAS1S,OAAQ,CACxD,IAAI0wM,EAActnL,EAAK1W,SAAS,GAAG+9L,qBAAqB,QAAU,GAElE,GAAIC,EAAY1wM,OAAS,EAAG,CAC1B,IAAI2wM,EAAQD,EAAY,GAExB,IAAKC,EAAM30J,SAAU,CAQnB20J,EAAM5zL,iBAAiB,QANL,SAAS6zL,IACzB1hM,EAAMgP,cAENyyL,EAAMz0L,oBAAoB,OAAQ00L,OAQxC,IACIp0L,GADck0L,EAAY,IAAMtnL,EAAK1W,SAAS,IACzB2iC,aACzB,OAAO74B,EAAS,EAAIA,EAAS,KAG/B,OAAO,QAGT,IAAIq0L,EAAY,CACdlB,aAAa,EACbW,aAAcxwM,EAAM0rJ,aACpBA,aAAc1rJ,EAAM0rJ,aACpBokD,UAAU,EACVL,gBAAgB,EAChBD,SAAUxvM,EAAMwvM,SAChB3jD,SAAS,EACTqkD,sBAAsB,EACtBH,aAAa,EACb7kD,SAAU,EACV8lD,cAAe,GACfC,WAAY,GACZC,cAAe,GACfp3J,UAAW,IAIb,OAFA1qC,EAAMqhM,iBAAqD,oBAA3BzwM,EAAMywM,kBAAmCzwM,EAAMywM,kBAA+C,SAA3BzwM,EAAMywM,kBAA+BzB,EAAYmC,sBAAwBnC,EAAYoC,sBACxLhiM,EAAM7G,MAAQ0mM,EAAcA,EAAc,GAAI8B,GAAY3hM,EAAMqhM,iBAAiBzwM,EAAO+wM,IACjF3hM,EAqTT,OAlrBoBxP,EAgYPsvM,GAhYoBvuM,EAgYV,CAAC,CACtBF,IAAK,oBACLwD,MAAO,WACAvC,KAAK1B,MAAM4S,UAIhBlR,KAAK2vM,kBAEN,CACD5wM,IAAK,qBACLwD,MAAO,SAA4BgP,EAAW8/H,GACvC9/H,EAAUL,WAAYlR,KAAK1B,MAAM4S,UAAalR,KAAK6G,MAAMsnM,aAC5DnuM,KAAK2vM,iBAGFp+L,EAAUmrK,WAAa18K,KAAK1B,MAAMo+K,WACrC18K,KAAK4vM,aAGHv+D,EAAU8Y,UAAYnqJ,KAAK6G,MAAMsjJ,SAEnCnqJ,KAAKmQ,SAASo9L,EAAc,GAAIvtM,KAAK1B,MAAMuxM,mBAAmB7vM,KAAK1B,MAAO0B,KAAK6G,SAG7E0K,EAAUy4I,eAAiBhqJ,KAAK1B,MAAM0rJ,cAAgBz4I,EAAU27I,aAAeltJ,KAAK1B,MAAM4uJ,aAC5FltJ,KAAKuqJ,cACLvqJ,KAAKwlC,OAAOxlC,KAAK1B,MAAM0rJ,eAGrBz4I,EAAUu8L,WAAa9tM,KAAK1B,MAAMwvM,WAChC9tM,KAAK1B,MAAMwvM,SACb9tM,KAAK8vM,gBAEL9vM,KAAK+vM,kBAGP/vM,KAAKmQ,SAAS,CACZ29L,SAAU9tM,KAAK1B,MAAMwvM,cAI1B,CACD/uM,IAAK,uBACLwD,MAAO,WACLvC,KAAKgwM,oBAEN,CACDjxM,IAAK,gBACLwD,MAAO,WACL,IAAIo4I,EAAS36I,KAEbA,KAAKmzE,aAEDnzE,KAAK6G,MAAMinM,UAAYplD,EAAOr0I,SAAS+I,MAAMpd,KAAK1B,MAAM4S,UAAY,GACtElR,KAAK8vM,gBAGH9vM,KAAK1B,MAAMo+K,WACb18K,KAAK4vM,aAGP5vM,KAAKmQ,SAAS,CACZg+L,aAAa,IACZ,WACD,IAAI8B,EAAet1D,EAAOu1D,kBAEtBD,IAAiBA,EAAaz1J,SAEhCy1J,EAAa10L,iBAAiB,OAAQo/H,EAAOw1D,eAE7Cx1D,EAAOw1D,qBAIZ,CACDpxM,IAAK,kBACLwD,MAAO,WACDvC,KAAK6G,MAAMsnM,cACbnuM,KAAK41E,eACL51E,KAAK+vM,qBAGR,CACDhxM,IAAK,gBACLwD,MAAO,WACLvC,KAAK8tM,WACL,IAAIsC,EAAkBpwM,KAAK0tM,mBAEvB1tM,KAAK1B,MAAM+xM,aAAeD,IAC5BA,EAAgB70L,iBAAiB,aAAcvb,KAAKqwM,aACpDD,EAAgB70L,iBAAiB,aAAcvb,KAAKswM,iBAGvD,CACDvxM,IAAK,kBACLwD,MAAO,WACLvC,KAAK6tM,gBACL,IAAIuC,EAAkBpwM,KAAK0tM,mBAEvB1tM,KAAK1B,MAAM+xM,aAAeD,IAC5BA,EAAgB11L,oBAAoB,aAAc1a,KAAKqwM,aACvDD,EAAgB11L,oBAAoB,aAAc1a,KAAKswM,iBAG1D,CACDvxM,IAAK,aACLwD,MAAO,YAGL,EAAI2mJ,EAAQxiJ,WAAW6U,iBAAiB,SAAUvb,KAAKuqJ,cAEvD,EAAIrB,EAAQxiJ,WAAW6U,iBAAiB,mBAAoBvb,KAAKuqJ,aAE7DvqJ,KAAK1B,MAAMiyM,oBACb,EAAInD,EAAU1mM,WAAW6U,iBAAiB,UAAWvb,KAAKwwM,wBAG7D,CACDzxM,IAAK,eACLwD,MAAO,YAEL,EAAI2mJ,EAAQxiJ,WAAWgU,oBAAoB,SAAU1a,KAAKuqJ,cAC1D,EAAIrB,EAAQxiJ,WAAWgU,oBAAoB,mBAAoB1a,KAAKuqJ,aACpE,IAAI0lD,EAAejwM,KAAKkwM,kBAEpBD,GACFA,EAAav1L,oBAAoB,OAAQ1a,KAAKmwM,eAG5CnwM,KAAK1B,MAAMiyM,oBACb,EAAInD,EAAU1mM,WAAWgU,oBAAoB,UAAW1a,KAAKwwM,wBAGhE,CACDzxM,IAAK,aACLwD,MAAO,WACL,IAAIkuM,EAEkD,QAArDA,EAAwBzwM,KAAK0tM,0BAA0D,IAA1B+C,GAA4CA,EAAsB5a,UAEjI,CACD92L,IAAK,cACLwD,MAAO,SAAqBmuM,GAC1B,IAAI5lD,EAAS9qJ,KAEb,OAAKA,KAAK1B,MAAM4S,SAITw3I,EAAOr0I,SAASxK,IAAI7J,KAAK1B,MAAM4S,UAAU,SAAU0W,EAAMvU,GAC9D,IAAIs9L,EAAat9L,IAAUy3I,EAAOjkJ,MAAMmjJ,aACpC4mD,EAAav9L,IAAUy3I,EAAOjkJ,MAAMioM,aACpCt3L,EAAQm5L,GAAc7lD,EAAOjkJ,MAAM2oM,eAAiBoB,GAAc9lD,EAAOjkJ,MAAMuxC,WAAa0yG,EAAOjkJ,MAAM0oM,YAAc,GAEvHzkD,EAAOxsJ,MAAM4uJ,YAAoC,eAAtBpC,EAAOxsJ,MAAMohD,OAC1CloC,EAAQ+1L,EAAcA,EAAc,GAAI/1L,GAAQ,GAAI,CAClDq5L,SAAU/lD,EAAOxsJ,MAAM6uJ,sBAAwB,OAI/CrC,EAAOjkJ,MAAMsjJ,SAAWW,EAAOjkJ,MAAM2nM,uBACvCh3L,EAAQ+1L,EAAcA,EAAc,GAAI/1L,GAAQ,GAAI,CAClDiO,cAAe,UAInB,IAAIqrL,EAAa,CACfj8L,IAAK,SAAalU,GAChB,OAAOmqJ,EAAOimD,YAAYpwM,EAAG0S,IAE/BtU,IAAK,UAAYsU,GAASq9L,EAAU,QAAU,IAC9Cv5L,UAAW2xI,EAAYpiJ,QAAQyhJ,MAAK,EAAM90I,IAAUy3I,EAAOjkJ,MAAMmjJ,aAAc32I,IAAUy3I,EAAOjkJ,MAAMioM,cACtG94L,QAAS80I,EAAOD,gBAAgB5tD,KAAK6tD,EAAQz3I,EAAOuU,GACpDpQ,MAAOA,GAET,OAAoBkxI,EAAOhiJ,QAAQ8M,cAAc,KAAMs9L,EAAYhmD,EAAOxsJ,MAAM0yM,WAAWppL,EAAM,CAC/F+oL,WAAYt9L,IAAUy3I,EAAOjkJ,MAAMmjJ,aACnC4mD,WAAYv9L,IAAUy3I,EAAOjkJ,MAAMioM,mBA/B9B,KAmCV,CACD/vM,IAAK,iBACLwD,MAAO,WACL,IAAI0uM,EAASjxM,KAETkxM,EAAclxM,KAAK1B,MACnB6yM,EAAiBD,EAAYC,eAC7BptJ,EAASmtJ,EAAYntJ,OACrBqtJ,EAAkBF,EAAYE,gBAC9BlgM,EAAWggM,EAAYhgM,SAE3B,OAAKigM,EAIezoD,EAAOhiJ,QAAQ8M,cAAc,KAAM,CACrD2D,UAAW,gBACVuxI,EAAOr0I,SAASxK,IAAIqH,GAAU,SAAU/N,EAAGkQ,GAC5C,OAAO+9L,GAAmBA,EAAgBH,EAAOI,WAAWh+L,GAAQA,IAAU49L,EAAOpqM,MAAMmjJ,aAAc32I,EAAO0wC,EAAOn8B,UANhH,OASV,CACD7oB,IAAK,eACLwD,MAAO,WACL,OAAKvC,KAAK1B,MAAMgzM,WAII5oD,EAAOhiJ,QAAQ8M,cAAc,IAAK,CACpD2D,UAAW,mBACVnX,KAAK1B,MAAMizM,gBAAgBvxM,KAAK6G,MAAMmjJ,aAAe,EAAGtB,EAAOr0I,SAAS+I,MAAMpd,KAAK1B,MAAM4S,YALnF,OAOV,CACDnS,IAAK,eACLwD,MAAO,WACL,OAAKvC,KAAK1B,MAAMkzM,YAAexxM,KAAK1B,MAAM4S,UAA2D,IAA/Cw3I,EAAOr0I,SAAS+I,MAAMpd,KAAK1B,MAAM4S,UAInEw3I,EAAOhiJ,QAAQ8M,cAAcsiI,EAAQpvI,QAAS,CAChEmO,IAAK7U,KAAK4qJ,aACVV,aAAclqJ,KAAKyxM,iBACnBznD,aAAchqJ,KAAK6G,MAAMmjJ,aACzBoB,eAAgBprJ,KAAK1B,MAAM8sJ,eAC3B3B,WAAYzpJ,KAAK1B,MAAMmrJ,WACvB1lG,OAAQ/jD,KAAK1B,MAAMylD,OACnB4oG,aAAc3sJ,KAAK1B,MAAMquJ,cACxB3sJ,KAAK1B,MAAMozM,aAAa1xM,KAAK1B,MAAM4S,WAX7B,OAaV,CACDnS,IAAK,SACLwD,MAAO,WACL,IAAIovM,EAAS3xM,KAEb,IAAKA,KAAK1B,MAAM4S,UAA2D,IAA/Cw3I,EAAOr0I,SAAS+I,MAAMpd,KAAK1B,MAAM4S,UAC3D,OAAO,KAGT,IAAI85I,EAAchrJ,KAAK1B,MAAMszM,WAAalpD,EAAOr0I,SAAS+I,MAAMpd,KAAK1B,MAAM4S,UAAY,EACnFk5C,EAAmC,eAApBpqD,KAAK1B,MAAMohD,KAC1BmyJ,EAAgB7xM,KAAK1B,MAAMqrJ,YAAcjB,EAAOr0I,SAAS+I,MAAMpd,KAAK1B,MAAM4S,UAAY,EAEtF+5I,EAAU4mD,IAAkB7xM,KAAK6G,MAAMmjJ,aAAe,GAAKhqJ,KAAK1B,MAAM2uJ,gBAAiB,EAEvF/B,EAAU2mD,IAAkB7xM,KAAK6G,MAAMmjJ,aAAetB,EAAOr0I,SAAS+I,MAAMpd,KAAK1B,MAAM4S,UAAY,GAAKlR,KAAK1B,MAAM2uJ,gBAAiB,EACpI6kD,EAAa9xM,KAAK4sJ,aAAY,GAC9BmlD,EAAaD,EAAW/rM,QACxBisM,EAAYF,EAAWjuM,MACvBouM,EAAc,CAChB96L,UAAW2xI,EAAYpiJ,QAAQqhJ,QAAO,EAAM/nJ,KAAK6G,MAAMsjJ,SACvDmC,YAAatsJ,KAAKssJ,YAClBC,aAAcvsJ,KAAKusJ,aACnBC,WAAYxsJ,KAAKwsJ,WACjBh1I,MAAOxX,KAAK6G,MAAMyoM,cAClB4C,UAAWlyM,KAAK1B,MAAM6zM,sBAEpBC,EAAkB,GAEtB,GAAIhoJ,GAIF,GAHA6nJ,EAAY9lD,YAAcnsJ,KAAKqyM,eAC/BJ,EAAY5lD,aAAersJ,KAAKsyM,iBAE5BtyM,KAAK1B,MAAMi0M,cAAe,CAC5B,IAAI7sH,EAAa1lF,KAAKwyM,sBAAsBxyM,KAAK6G,MAAMmjJ,cAEvDooD,EAAgBp3L,OAAS0qE,GAAc,aAGzCusH,EAAYQ,UAAyC,YAA7BzyM,KAAK1B,MAAMo0M,cAA8B1yM,KAAKsyM,iBAAmBtyM,KAAKqyM,eAC9FJ,EAAYU,YAA2C,YAA7B3yM,KAAK1B,MAAMo0M,cAA8B1yM,KAAKqyM,eAAiBryM,KAAKsyM,iBAC9FL,EAAYz6L,MAAQ+1L,EAAcA,EAAc,GAAI0E,EAAYz6L,OAAQ,GAAI,CAC1EwD,OAAQhb,KAAK6G,MAAM2iJ,WAErB4oD,EAAgBp3L,OAAShb,KAAK6G,MAAM2iJ,SAGtC,OAAoBd,EAAOhiJ,QAAQ8M,cAAc,MAAO,CACtD,aAAcxT,KAAK1B,MAAM+kB,UACzBlM,UAAW2xI,EAAYpiJ,QAAQ+gJ,KAAKznJ,KAAK1B,MAAM6Y,WAC/CtC,IAAK7U,KAAK4yM,sBACV91D,SAAU98I,KAAK1B,MAAMiyM,kBAAoB,OAAInsM,GAC/BskJ,EAAOhiJ,QAAQ8M,cAAc,MAAO,CAClD2D,UAAW2xI,EAAYpiJ,QAAQihJ,UAAS,GACxCnwI,MAAO,CACL6M,MAAOrkB,KAAK1B,MAAM+lB,QAEnBrkB,KAAK6yM,iBAAkB7yM,KAAK1B,MAAMw0M,gBAAgB9yM,KAAK+yM,YAAa9nD,EAASjrJ,KAAK1B,MAAMylD,OAAOmoG,WAAyBxD,EAAOhiJ,QAAQ8M,cAAc,MAAO,CAC7J2D,UAAW2xI,EAAYpiJ,QAAQohJ,SAAQ,EAAM9nJ,KAAK1B,MAAMohD,MACxDloC,MAAO46L,GACNpnD,EAA2BtC,EAAOhiJ,QAAQ8M,cAAcy1I,EAAgBviJ,QAASiI,EAAS,CAC3F43F,QAAS,KACTzwF,SAAU9V,KAAKgzM,YACdf,EAAa,CACdvlD,iBAAkB1sJ,KAAK1B,MAAMquJ,eAC3B3sJ,KAAK1B,MAAM2uJ,cAAgB+kD,EAAWhyM,KAAK4sJ,cAAe5sJ,KAAK1B,MAAM2uJ,cAAgB8kD,GAA2BrpD,EAAOhiJ,QAAQ8M,cAAc,KAAM,CACrJ2D,UAAW2xI,EAAYpiJ,QAAQqhJ,QAAO,EAAM/nJ,KAAK6G,MAAMsjJ,SACvDt1I,IAAK,SAAa9F,GAChB,OAAO4iM,EAAOqB,WAAWjkM,IAE3ByI,MAAOxX,KAAK6G,MAAMyoM,eAAiB,IAClCtvM,KAAK1B,MAAM2uJ,cAAgB+kD,EAAWhyM,KAAK4sJ,cAAe5sJ,KAAK1B,MAAM2uJ,cAAgB8kD,IAAc/xM,KAAK1B,MAAM20M,gBAAgBjzM,KAAKkzM,YAAahoD,EAASlrJ,KAAK1B,MAAMylD,OAAO8oG,YAAa7sJ,KAAKmzM,gBAAiBnzM,KAAK0xM,qBA9qB9ItzM,EAAkBF,EAAYiB,UAAWF,GAAiBC,GAAad,EAAkBF,EAAagB,GAkrB3KsuM,EAhqBmB,CAiqB1B9kD,EAAOhiJ,QAAQyK,WAEjBrT,EAAQ4I,QAAU8mM,EAElBnhG,EAAgBmhG,EAAU,cAAe,YAEzCnhG,EAAgBmhG,EAAU,eAAgB,CACxCnqL,eAAWjf,EACXs7C,KAAM,aACNytG,sBAAuB,GACvBp0D,SAAU,IACVh1C,OAAQ,CACNmoG,UAAW,wBACXW,WAAY,oBACZjlI,KAAM,cAER0mL,YAAajB,EAAOn5L,KACpBq6L,aAAclB,EAAOn5L,KACrBsT,SAAU6lL,EAAOn5L,KACjBq4I,aAAc,aACdC,WAAY,aACZF,YAAa,WACX,OAAO,GAET8mD,0CAA0C,EAC1CN,gBAAiB,SAAyBO,EAAgBpoD,EAAS7nJ,GACjE,OAAoBslJ,EAAOhiJ,QAAQ8M,cAAc,SAAU,CACzD9I,KAAM,SACN,aAActH,EACd+T,UAAW2xI,EAAYpiJ,QAAQ4hJ,YAAY2C,GAC3Cj1I,QAASq9L,KAGbJ,gBAAiB,SAAyBI,EAAgBnoD,EAAS9nJ,GACjE,OAAoBslJ,EAAOhiJ,QAAQ8M,cAAc,SAAU,CACzD9I,KAAM,SACN,aAActH,EACd+T,UAAW2xI,EAAYpiJ,QAAQ6hJ,YAAY2C,GAC3Cl1I,QAASq9L,KAGbjC,gBAAiB,SAAyBiC,EAAgB1C,EAAYt9L,EAAOjQ,GAC3E,OAAoBslJ,EAAOhiJ,QAAQ8M,cAAc,KAAM,CACrD2D,UAAW2xI,EAAYpiJ,QAAQ8hJ,IAAImoD,GACnC36L,QAASq9L,EACTz2D,UAAWy2D,EACX9wM,MAAO8Q,EACPtU,IAAKsU,EACLyM,KAAM,SACNg9H,SAAU,EACV,aAAc,GAAGl4I,OAAOxB,EAAO,KAAKwB,OAAOyO,EAAQ,MAGvD29L,WAAY,SAAoBppL,GAC9B,OAAOA,GAET8pL,aAAc,SAAsBxgM,GAClC,IAAIoiM,EAAS5qD,EAAOr0I,SAASxK,IAAIqH,GAAU,SAAU0W,GACnD,IAAI6iI,EAAM7iI,EAQV,GANkB,QAAdA,EAAKld,OACP+/I,EAAM/B,EAAOr0I,SAASo7F,QAAQ7nF,EAAKtpB,MAAM4S,UAAUq1I,MAAK,SAAUr1I,GAChE,MAAyB,QAAlBA,EAASxG,SAIf+/I,EAIL,OAAOA,KAGT,OAEc,IAFV6oD,EAAOxmM,QAAO,SAAUqiM,GAC1B,OAAOA,KACN3wM,QACDorC,QAAQ1iB,KAAK,iTACN,IAGFosL,GAET/B,gBAAiBlE,EAAOrgD,uBACxBhD,aAAc,EACdL,YAAY,EACZwnD,gBAAgB,EAChBG,YAAY,EACZE,YAAY,EACZnB,aAAa,EACb8B,qBAAsB,EACtBP,WAAW,EACXxmD,eAAgB,IAChBsnD,cAAe,WACfruL,MAAO,OACP0qL,iBAAkB,QAClBL,sBAAuBpB,EAAYiG,2BACnC1D,mBAAoBvC,EAAYkG,2B,gBC5zBlC,UAEIpsD,EAAO,CAAC,EAAW,KAAS,YAAsB,2BAAP,EAUtC,SAAUtpJ,EAAS4qJ,EAAQ+qD,GAClC,aAEA50M,OAAOC,eAAehB,EAAS,aAAc,CAC3CyE,OAAO,IAETzE,EAAQ41M,6BAA+BA,EAEvC,IAAIC,EAAU59D,EAAuB2S,GAEjCkrD,EAAc79D,EAAuB09D,GAEzC,SAAS19D,EAAuBvqI,GAC9B,OAAOA,GAAOA,EAAIhF,WAAagF,EAAM,CACnC9E,QAAS8E,GAIb,IAAImD,EAAW9P,OAAOuB,QAAU,SAAU/B,GACxC,IAAK,IAAIE,EAAI,EAAGA,EAAIiC,UAAUhC,OAAQD,IAAK,CACzC,IAAI0O,EAASzM,UAAUjC,GAEvB,IAAK,IAAIQ,KAAOkO,EACVpO,OAAOM,UAAUQ,eAAeC,KAAKqN,EAAQlO,KAC/CV,EAAOU,GAAOkO,EAAOlO,IAK3B,OAAOV,GAGT,SAASk+I,EAAyB/wI,EAAKtB,GACrC,IAAI7L,EAAS,GAEb,IAAK,IAAIE,KAAKiN,EACRtB,EAAKtJ,QAAQrC,IAAM,GAClBM,OAAOM,UAAUQ,eAAeC,KAAK4L,EAAKjN,KAC/CF,EAAOE,GAAKiN,EAAIjN,IAGlB,OAAOF,EAGT,SAASL,EAAgBC,EAAUC,GACjC,KAAMD,aAAoBC,GACxB,MAAM,IAAIC,UAAU,qCAIxB,IAAIa,EAAe,WACjB,SAASoO,EAAiB/O,EAAQC,GAChC,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,IAIlD,OAAO,SAAUP,EAAae,EAAYC,GAGxC,OAFID,GAAYmO,EAAiBlP,EAAYiB,UAAWF,GACpDC,GAAakO,EAAiBlP,EAAagB,GACxChB,GAdQ,GAkBnB,SAASuN,EAA2BC,EAAM9L,GACxC,IAAK8L,EACH,MAAM,IAAIq9G,eAAe,6DAG3B,OAAOnpH,GAAyB,kBAATA,GAAqC,oBAATA,EAA8B8L,EAAP9L,EAG5E,SAASwL,EAAUC,EAAUC,GAC3B,GAA0B,oBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAInN,UAAU,kEAAoEmN,GAG1FD,EAASlM,UAAYN,OAAOqB,OAAOoL,GAAcA,EAAWnM,UAAW,CACrEc,YAAa,CACXsC,MAAO8I,EACP3M,YAAY,EACZE,UAAU,EACVD,cAAc,KAGd2M,IAAYzM,OAAOU,eAAiBV,OAAOU,eAAe8L,EAAUC,GAAcD,EAAS7L,UAAY8L,GAG7G,IAAIuoM,GAAwB,EAC5B,SAASH,EAA6BI,GACpCD,EAAwBC,EAG1B,IACEv4L,iBAAiB,OAAQ,KAAM1c,OAAOC,eAAe,GAAI,UAAW,CAAEuF,IAAK,WACvEqvM,GAA6B,OAEjC,MAAO/yM,IAET,SAASozM,IACP,IAAIrhM,EAAUlS,UAAUhC,OAAS,QAAsB4F,IAAjB5D,UAAU,GAAmBA,UAAU,GAAK,CAAE66I,SAAS,GAE7F,OAAOw4D,EAAwBnhM,EAAUA,EAAQ2oI,QAQnD,SAAS0R,EAAY72I,GACnB,GAAI,YAAaA,EAAO,CACtB,IAAI89L,EAAkB99L,EAAMy8B,QAAQ,GAIpC,MAAO,CAAElqC,EAHGurM,EAAgBlxB,MAGT7/K,EAFP+wM,EAAgBjxB,OAQ9B,MAAO,CAAEt6K,EAHKyN,EAAM0sK,QAGC3/K,EAFPiT,EAAM2sK,SAKtB,IAAIoxB,EAAa,SAAUh6D,GAGzB,SAASg6D,IACP,IAAIvjG,EAEJ1yG,EAAgBgC,KAAMi0M,GAEtB,IAAK,IAAIl2F,EAAOv9G,UAAUhC,OAAQ+d,EAAO9c,MAAMs+G,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC3EzhG,EAAKyhG,GAAQx9G,UAAUw9G,GAGzB,IAAItwG,EAAQjC,EAA2BzL,MAAO0wG,EAAOujG,EAAWz0M,WAAaX,OAAOsM,eAAe8oM,IAAar0M,KAAKa,MAAMiwG,EAAM,CAAC1wG,MAAM4E,OAAO2X,KAW/I,OATA7O,EAAMwmM,kBAAoBxmM,EAAMwmM,kBAAkBj3G,KAAKvvF,GACvDA,EAAMymM,iBAAmBzmM,EAAMymM,iBAAiBl3G,KAAKvvF,GACrDA,EAAM0mM,gBAAkB1mM,EAAM0mM,gBAAgBn3G,KAAKvvF,GAEnDA,EAAM2mM,aAAe3mM,EAAM2mM,aAAap3G,KAAKvvF,GAC7CA,EAAM4mM,aAAe5mM,EAAM4mM,aAAar3G,KAAKvvF,GAC7CA,EAAM6mM,WAAa7mM,EAAM6mM,WAAWt3G,KAAKvvF,GAEzCA,EAAM8mM,cAAgB9mM,EAAM8mM,cAAcv3G,KAAKvvF,GACxCA,EAgKT,OAtLAtC,EAAU6oM,EAAYh6D,GAyBtBj7I,EAAai1M,EAAY,CAAC,CACxBl1M,IAAK,oBACLwD,MAAO,WACDvC,KAAKy0M,QACPz0M,KAAKy0M,OAAOl5L,iBAAiB,YAAavb,KAAKm0M,iBAAkBJ,EAAwB,CACvF14D,SAAS,EACTngF,SAAS,OAId,CACDn8D,IAAK,uBACLwD,MAAO,WACDvC,KAAKy0M,QACPz0M,KAAKy0M,OAAO/5L,oBAAoB,YAAa1a,KAAKm0M,iBAAkBJ,EAAwB,CAC1F14D,SAAS,EACTngF,SAAS,OAId,CACDn8D,IAAK,eACLwD,MAAO,SAAsB2T,GACtBlW,KAAK1B,MAAMouJ,mBAIhB1sJ,KAAK00M,WAAY,EAEjBn8L,SAASgD,iBAAiB,UAAWvb,KAAKu0M,YAC1Ch8L,SAASgD,iBAAiB,YAAavb,KAAKs0M,cAE5Ct0M,KAAKk0M,kBAAkBh+L,MAExB,CACDnX,IAAK,eACLwD,MAAO,SAAsB2T,GACtBlW,KAAK00M,WAIV10M,KAAKm0M,iBAAiBj+L,KAEvB,CACDnX,IAAK,aACLwD,MAAO,SAAoB2T,GACzBlW,KAAK00M,WAAY,EAEjBn8L,SAASmC,oBAAoB,UAAW1a,KAAKu0M,YAC7Ch8L,SAASmC,oBAAoB,YAAa1a,KAAKs0M,cAE/Ct0M,KAAKo0M,gBAAgBl+L,KAEtB,CACDnX,IAAK,oBACLwD,MAAO,SAA2B2T,GAChC,IAAIy+L,EAAe5nD,EAAY72I,GAC3BzN,EAAIksM,EAAalsM,EACjBxF,EAAI0xM,EAAa1xM,EAErBjD,KAAK40M,UAAY,CAAEnsM,EAAGA,EAAGxF,EAAGA,GAC5BjD,KAAK1B,MAAMiuJ,aAAar2I,KAEzB,CACDnX,IAAK,mBACLwD,MAAO,SAA0B2T,GAC/B,GAAKlW,KAAK40M,UAAV,CAIA,IAAIC,EAAgB9nD,EAAY72I,GAC5BzN,EAAIosM,EAAcpsM,EAClBxF,EAAI4xM,EAAc5xM,EAElByyD,EAASjtD,EAAIzI,KAAK40M,UAAUnsM,EAC5BktD,EAAS1yD,EAAIjD,KAAK40M,UAAU3xM,EAChCjD,KAAK80M,QAAS,EAIa90M,KAAK1B,MAAMguJ,YAAY,CAChD7jJ,EAAGitD,EACHzyD,EAAG0yD,GACFz/C,IAEyBA,EAAMs3D,YAChCt3D,EAAME,iBAGRpW,KAAK+0M,aAAe,CAAEr/I,OAAQA,EAAQC,OAAQA,MAE/C,CACD52D,IAAK,kBACLwD,MAAO,SAAyB2T,GAC9BlW,KAAK1B,MAAMkuJ,WAAWt2I,GAEtB,IAAIg8L,EAAYlyM,KAAK1B,MAAM4zM,UAGvBlyM,KAAK80M,QAAU90M,KAAK+0M,eAClB/0M,KAAK+0M,aAAar/I,QAAUw8I,EAC9BlyM,KAAK1B,MAAM6tJ,YAAY,EAAGj2I,GACjBlW,KAAK+0M,aAAar/I,OAASw8I,GACpClyM,KAAK1B,MAAM+tJ,aAAa,EAAGn2I,GAEzBlW,KAAK+0M,aAAap/I,QAAUu8I,EAC9BlyM,KAAK1B,MAAMm0M,UAAU,EAAGv8L,GACflW,KAAK+0M,aAAap/I,OAASu8I,GACpClyM,KAAK1B,MAAMq0M,YAAY,EAAGz8L,IAI9BlW,KAAK40M,UAAY,KACjB50M,KAAK80M,QAAS,EACd90M,KAAK+0M,aAAe,OAErB,CACDh2M,IAAK,gBACLwD,MAAO,SAAuBwM,GAC5B/O,KAAKy0M,OAAS1lM,EACd/O,KAAK1B,MAAMwX,SAAS/G,KAErB,CACDhQ,IAAK,SACLwD,MAAO,WACL,IAAIu8G,EAAS9+G,KAAK1B,MAEd6Y,GADU2nG,EAAOvY,QACLuY,EAAO3nG,WACnBK,EAAQsnG,EAAOtnG,MACftG,EAAW4tG,EAAO5tG,SAWlB5S,GAVmBwgH,EAAO4tC,iBACd5tC,EAAO2zF,UACL3zF,EAAO6zF,YACP7zF,EAAOqtC,YACNrtC,EAAOutC,aACPvtC,EAAOytC,aACRztC,EAAOwtC,YACRxtC,EAAO0tC,WACT1tC,EAAOhpG,SACNgpG,EAAOozF,UACX31D,EAAyBz9B,EAAQ,CAAC,UAAW,YAAa,QAAS,WAAY,mBAAoB,YAAa,cAAe,cAAe,eAAgB,eAAgB,cAAe,aAAc,WAAY,eAEnO,OAAO60F,EAAQjtM,QAAQ8M,cACrBxT,KAAK1B,MAAMioG,QACX53F,EAAS,CACPkG,IAAK7U,KAAKw0M,cACV1xL,YAAa9iB,KAAKq0M,aAClBtxL,aAAc/iB,KAAKk0M,kBACnBjxL,WAAYjjB,KAAKo0M,gBACjBj9L,UAAWA,EACXK,MAAOA,GACNlZ,GACH4S,OAKC+iM,EAvLQ,CAwLfvrD,EAAOv3I,WAET8iM,EAAWxkM,YAAc,aACzBwkM,EAAWnoF,UAAY,CACrBvlB,QAASqtG,EAAYltM,QAAQ28B,OAC7BlsB,UAAWy8L,EAAYltM,QAAQ28B,OAC/B7rB,MAAOo8L,EAAYltM,QAAQiG,OAC3BuE,SAAU0iM,EAAYltM,QAAQqI,KAC9B29I,iBAAkBknD,EAAYltM,QAAQ0hM,KACtCqK,UAAWmB,EAAYltM,QAAQy3H,KAC/Bw0E,YAAaiB,EAAYltM,QAAQy3H,KACjCguB,YAAaynD,EAAYltM,QAAQy3H,KACjCkuB,aAAcunD,EAAYltM,QAAQy3H,KAClCouB,aAAcqnD,EAAYltM,QAAQy3H,KAClCmuB,YAAasnD,EAAYltM,QAAQy3H,KACjCquB,WAAYonD,EAAYltM,QAAQy3H,KAChCroH,SAAU89L,EAAYltM,QAAQy3H,KAC9B+zE,UAAW0B,EAAYltM,QAAQw0C,OAAOu/F,YAExCw5D,EAAW9vL,aAAe,CACxBoiF,QAAS,MACTmmD,kBAAkB,EAClB+lD,UAAW,aACXE,YAAa,aACbxmD,YAAa,aACbE,aAAc,aACdE,aAAc,aACdD,YAAa,aACbE,WAAY,aACZ12I,SAAU,aAEVo8L,UAAW,GAEbp0M,EAAQ4I,QAAUutM,IApWkC,gC,6BCAtDp1M,OAAOC,eAAehB,EAAS,aAAc,CAC3CyE,OAAO,IAETzE,EAAQk6D,gBAAa,EASrBl6D,EAAQk6D,WAPS,SAAoBvjB,GACnC,IAAIpwB,EAAQowB,EAAGvyB,YACX1K,EAAQu6B,iBAAiB0C,GAE7B,OADApwB,GAASyZ,SAAStmB,EAAMw9L,YAAcl3K,SAAStmB,EAAMy9L,e,6BCRvDp2M,OAAOC,eAAehB,EAAS,aAAc,CAC3CyE,OAAO,IAETzE,EAAQ4I,aAAU,EAMlB5I,EAAQ4I,QAJO,WACb,OAAO6R,W,6BCNT1Z,OAAOC,eAAehB,EAAS,aAAc,CAC3CyE,OAAO,IAETzE,EAAQ2xM,qBAAuB3xM,EAAQ01M,wBAA0B11M,EAAQy1M,2BAA6Bz1M,EAAQ4xM,2BAAwB,EAEtI,IAMgClkM,EAN5Bk9I,EAAS3qJ,EAAQ,GAEjBirJ,GAI4Bx9I,EAJWzN,EAAQ,OAIEyN,EAAIhF,WAAagF,EAAM,CAAE9E,QAAS8E,GAFnF6hM,EAAStvM,EAAQ,KAIrB,SAAS2O,EAAQC,EAAQC,GAAkB,IAAI1C,EAAOrL,OAAOqL,KAAKyC,GAAS,GAAI9N,OAAOgC,sBAAuB,CAAE,IAAIgM,EAAUhO,OAAOgC,sBAAsB8L,GAAaC,IAAgBC,EAAUA,EAAQC,QAAO,SAAUC,GAAO,OAAOlO,OAAOuC,yBAAyBuL,EAAQI,GAAKrO,eAAgBwL,EAAKpG,KAAKrD,MAAMyJ,EAAM2C,GAAY,OAAO3C,EAE9U,SAASqjM,EAAclvM,GAAU,IAAK,IAAIE,EAAI,EAAGA,EAAIiC,UAAUhC,OAAQD,IAAK,CAAE,IAAI0O,EAAyB,MAAhBzM,UAAUjC,GAAaiC,UAAUjC,GAAK,GAAQA,EAAI,EAAKmO,EAAQ7N,OAAOoO,IAAS,GAAMC,SAAQ,SAAUnO,GAAOstG,EAAgBhuG,EAAQU,EAAKkO,EAAOlO,OAAsBF,OAAOsO,0BAA6BtO,OAAOuO,iBAAiB/O,EAAQQ,OAAOsO,0BAA0BF,IAAmBP,EAAQ7N,OAAOoO,IAASC,SAAQ,SAAUnO,GAAOF,OAAOC,eAAeT,EAAQU,EAAKF,OAAOuC,yBAAyB6L,EAAQlO,OAAe,OAAOV,EAE7gB,SAASguG,EAAgB7gG,EAAKzM,EAAKwD,GAAiK,OAApJxD,KAAOyM,EAAO3M,OAAOC,eAAe0M,EAAKzM,EAAK,CAAEwD,MAAOA,EAAO7D,YAAY,EAAMC,cAAc,EAAMC,UAAU,IAAkB4M,EAAIzM,GAAOwD,EAAgBiJ,EA4D3M1N,EAAQ4xM,sBArDoB,SAA+BpxM,EAAOuI,GAChE,IAAIquM,EAAe,GACflrD,EAAenjJ,EAAMmjJ,aACrB8kD,EAAe9kD,EACfJ,EAAelB,EAAOr0I,SAAS+I,MAAM9e,EAAM4S,UAAY,EAG3D,GAFsB5S,EAAM2uJ,eAAiBjD,EAAe,GAAKA,EAAeJ,GAa9E,OAVIklD,EAAe,EACbxwM,EAAM4uJ,YAAc5uJ,EAAM6uJ,uBAAwC,eAAf7uJ,EAAMohD,KAC3Dw1J,EAAa5F,eAAgB,EAAIjC,EAAOvgD,eAAelD,EAAe,GAAKtrJ,EAAM6uJ,uBAAyB,IAAM7uJ,EAAM6uJ,uBAAyB,EAAG7uJ,EAAMohD,MAExJw1J,EAAa5F,eAAgB,EAAIjC,EAAOvgD,aAAmC,MAApBlD,EAAe,GAAUtrJ,EAAMohD,MAE/EovJ,EAAellD,IACxBsrD,EAAa5F,eAAgB,EAAIjC,EAAOvgD,aAAa,EAAGxuJ,EAAMohD,OAGzDw1J,EAGT,IAAI7qD,GAAkB,EAAIgjD,EAAOtgD,aAAa/C,EAAc1rJ,GAExD6sJ,GAAgB,EAAInC,EAActiJ,SAAS2jJ,EAAiB,IAAK/rJ,EAAMohD,MACvE0rG,EAAiB9sJ,EAAM8sJ,eAAiB,KAkB5C,OAjBA8pD,EAAa5F,cAAgB,CAC3BjkD,gBAAiBF,EACjBM,YAAaN,EACbK,WAAYL,EACZ5oI,UAAW4oI,GAGRtkJ,EAAMsjJ,UACT+qD,EAAa5F,cAAgB/B,EAAcA,EAAc,GAAI2H,EAAa5F,eAAgB,GAAI,CAC5F5jD,yBAA0BN,EAC1BO,sBAAuBP,EACvBS,oBAAqBT,EACrBU,mBAAoBV,EACpBW,qBAAsBX,KAInB8pD,GAyETp3M,EAAQy1M,2BA5DyB,SAAoCjyL,EAAOhjB,EAAOuI,EAAOsJ,GACxF,IAAI+kM,EAAe,GACf9qJ,EAA8B,eAAf9rD,EAAMohD,KAErB0qG,EAAiB1B,EAAOr0I,SAAS+I,MAAM9e,EAAM4S,UAG7Cm5I,GAAkB,EAAIgjD,EAAOtgD,aAAalmJ,EAAMmjJ,aAAc1rJ,GAC9D62M,EAAe72M,EAAM2uJ,cAAe,EAAIogD,EAAOtgD,aAAa3C,EAAiB,EAAG9rJ,GAAS,KAAM,EAAI+uM,EAAOtgD,aAAa3C,EAAiB,EAAG9rJ,GAC3I82M,EAAYhrJ,EAAe9oC,EAAM7Y,EAAI6Y,EAAMre,EAC3CoyM,EAAeD,EAJE,IAMjB/qD,GAAsC+qD,EAAY,IACpDC,EAAe,GAIbhrD,IAAoB8qD,GAAgBC,EAAY,IAClDC,EAAe,GAGjB,IAAIx7L,EAAWwwI,EAAkB,KAAOxjJ,EAAM2iJ,SAAW6rD,GACrDC,EAAWjsM,KAAKoZ,IAAI2yL,GAAa92M,EAAM6zM,qBA6B3C,OA3BI7zM,EAAM2uJ,cAAgBqoD,IAGG,IAAvBzuM,EAAMmjJ,cAAsBnwI,GAAY,IAC1CA,GAA6B,IAAjBuwI,EACHvjJ,EAAMmjJ,eAAiBI,EAAiB,GAAKvwI,EAA6B,KAAjBuwI,IAClEvwI,GAA6B,IAAjBuwI,MAIX9rJ,EAAM80M,0CAA4CkC,GAAYzuM,EAAM2nM,wBAClE3nM,EAAM2nM,sBACTr+L,EAAS,CACPq+L,sBAAsB,IAI1B0G,EAAa5F,eAAgB,EAAIjC,EAAOvgD,aAAajzI,EAAUvb,EAAMohD,OAInE41J,IAAazuM,EAAMwnM,aACrBl+L,EAAS,CACPk+L,aAAa,IAIV6G,GAyBTp3M,EAAQ01M,wBAdsB,SAAiCl1M,EAAOuI,GACpE,IAAIwjJ,GAAkB,EAAIgjD,EAAOtgD,aAAalmJ,EAAMmjJ,aAAc1rJ,GAElE,MAAO,CACLgxM,eAFkB,EAAIjC,EAAOvgD,aAAazC,EAAiB/rJ,EAAMohD,QAsDrE5hD,EAAQ2xM,qBAxCmB,SAA8BnxM,EAAOuI,GAC9D,IAAIukJ,EAAiB9sJ,EAAM8sJ,eAAiB,KACxCmqD,EAA2B,cAC3BhG,EAAa,CACf11L,SAAU,WACVy5C,QAAS,QACT0mH,QAAS,EACTj/J,UAAW,OACXyH,QAAS,EACTtb,IAAK,EACLE,MAAO,EACPC,KAAM,EACNF,OAAQ,EACRouM,yBAA0BA,EAC1BC,2BAA4BD,EAC5BE,4BAA6BF,EAC7BG,+BAAgCH,EAChCI,0BAA2BJ,GAa7B,OAVK1uM,EAAMsjJ,UACTolD,EAAahC,EAAcA,EAAc,GAAIgC,GAAa,GAAI,CAC5D7jD,yBAA0BN,EAC1BO,sBAAuBP,EACvBS,oBAAqBT,EACrBU,mBAAoBV,EACpBW,qBAAsBX,KAInB,CACLmkD,WAAYA,EACZC,cAAejC,EAAcA,EAAc,GAAIgC,GAAa,GAAI,CAC9D/sL,QAAS,EACT3I,SAAU,aAEZu+B,UAAWm1J,EAAc,GAAIgC,M,gCClMjC,IAGI5vM,EAHcd,OAAOM,UAGQQ,eAcjC9B,EAAOC,QAJP,SAAiB6O,EAAQ5N,GACvB,OAAiB,MAAV4N,GAAkBhN,EAAeC,KAAK+M,EAAQ5N,K,gBCfvD,IAAI0E,EAAS1F,EAAQ,IAGjB2/H,EAAc7+H,OAAOM,UAGrBQ,EAAiB+9H,EAAY/9H,eAO7Bg+H,EAAuBD,EAAYz3G,SAGnC23G,EAAiBn6H,EAASA,EAAOgoC,iBAAcrnC,EA6BnDvG,EAAOC,QApBP,SAAmByE,GACjB,IAAIu7H,EAAQn+H,EAAeC,KAAK2C,EAAOq7H,GACnCh9B,EAAMr+F,EAAMq7H,GAEhB,IACEr7H,EAAMq7H,QAAkBx5H,EACxB,IAAI25H,GAAW,EACf,MAAOp9H,IAET,IAAIgC,EAASg7H,EAAqB/9H,KAAK2C,GAQvC,OAPIw7H,IACED,EACFv7H,EAAMq7H,GAAkBh9B,SAEjBr+F,EAAMq7H,IAGVj7H,I,cCzCT,IAOIg7H,EAPc9+H,OAAOM,UAOc8mB,SAavCpoB,EAAOC,QAJP,SAAwByE,GACtB,OAAOo7H,EAAqB/9H,KAAK2C,K,gBClBnC,IAAIilI,EAAgBzpI,EAAQ,KAGxB0pI,EAAa,mGAGbC,EAAe,WASfC,EAAeH,GAAc,SAASnkG,GACxC,IAAI1gC,EAAS,GAOb,OAN6B,KAAzB0gC,EAAOyhE,WAAW,IACpBniG,EAAOmB,KAAK,IAEdu/B,EAAOhxB,QAAQo1H,GAAY,SAASz2H,EAAOkqC,EAAQ0sF,EAAOC,GACxDllI,EAAOmB,KAAK8jI,EAAQC,EAAUx1H,QAAQq1H,EAAc,MAASxsF,GAAUlqC,MAElErO,KAGT9E,EAAOC,QAAU6pI,G,gBC1BjB,IAAIrrC,EAAUv+F,EAAQ,KAyBtBF,EAAOC,QAZP,SAAuBqgI,GACrB,IAAIx7H,EAAS25F,EAAQ6hC,GAAM,SAASp/H,GAIlC,OAfmB,MAYf2S,EAAM2U,MACR3U,EAAMq+D,QAEDhxE,KAGL2S,EAAQ/O,EAAO+O,MACnB,OAAO/O,I,gBCtBT,IAAIi+H,EAAW7iI,EAAQ,KAiDvB,SAASu+F,EAAQ6hC,EAAMt3G,GACrB,GAAmB,mBAARs3G,GAAmC,MAAZt3G,GAAuC,mBAAZA,EAC3D,MAAM,IAAI1oB,UAhDQ,uBAkDpB,IAAIopI,EAAW,SAAXA,IACF,IAAIhrH,EAAO/b,UACPzB,EAAM8nB,EAAWA,EAASpmB,MAAMT,KAAMuc,GAAQA,EAAK,GACnD7K,EAAQ61H,EAAS71H,MAErB,GAAIA,EAAM3K,IAAIhI,GACZ,OAAO2S,EAAMrN,IAAItF,GAEnB,IAAI4D,EAASw7H,EAAK19H,MAAMT,KAAMuc,GAE9B,OADAgrH,EAAS71H,MAAQA,EAAMzK,IAAIlI,EAAK4D,IAAW+O,EACpC/O,GAGT,OADA4kI,EAAS71H,MAAQ,IAAK4qF,EAAQ8tB,OAASwW,GAChC2G,EAITjrC,EAAQ8tB,MAAQwW,EAEhB/iI,EAAOC,QAAUw+F,G,gBCxEjB,IAAI8jC,EAAOriI,EAAQ,KACfkhI,EAAYlhI,EAAQ,IACpB8d,EAAM9d,EAAQ,KAkBlBF,EAAOC,QATP,WACEkC,KAAKqmB,KAAO,EACZrmB,KAAK2+H,SAAW,CACd,KAAQ,IAAIyB,EACZ,IAAO,IAAKvkH,GAAOojH,GACnB,OAAU,IAAImB,K,gBChBlB,IAAIL,EAAYhiI,EAAQ,KACpBiiI,EAAajiI,EAAQ,KACrBkiI,EAAUliI,EAAQ,KAClBmiI,EAAUniI,EAAQ,KAClBoiI,EAAUpiI,EAAQ,KAStB,SAASqiI,EAAK1kE,GACZ,IAAIroD,GAAS,EACT7U,EAAoB,MAAXk9D,EAAkB,EAAIA,EAAQl9D,OAG3C,IADAwB,KAAK+vE,UACI18D,EAAQ7U,GAAQ,CACvB,IAAIgqD,EAAQkT,EAAQroD,GACpBrT,KAAKiH,IAAIuhD,EAAM,GAAIA,EAAM,KAK7B43E,EAAKjhI,UAAU4wE,MAAQgwD,EACvBK,EAAKjhI,UAAkB,OAAI6gI,EAC3BI,EAAKjhI,UAAUkF,IAAM47H,EACrBG,EAAKjhI,UAAU4H,IAAMm5H,EACrBE,EAAKjhI,UAAU8H,IAAMk5H,EAErBtiI,EAAOC,QAAUsiI,G,gBC/BjB,IAAIN,EAAe/hI,EAAQ,IAc3BF,EAAOC,QALP,WACEkC,KAAK2+H,SAAWmB,EAAeA,EAAa,MAAQ,GACpD9/H,KAAKqmB,KAAO,I,gBCXd,IAAI8E,EAAaptB,EAAQ,KACrB0hI,EAAW1hI,EAAQ,KACnB6qB,EAAW7qB,EAAQ,KACnB2hI,EAAW3hI,EAAQ,KASnB4hI,EAAe,8BAGfrB,EAAYhhC,SAASn+F,UACrBu+H,EAAc7+H,OAAOM,UAGrBo/H,EAAeD,EAAUr4G,SAGzBtmB,EAAiB+9H,EAAY/9H,eAG7BigI,EAAa72F,OAAO,IACtBw1F,EAAa3+H,KAAKD,GAAgB0S,QAjBjB,sBAiBuC,QACvDA,QAAQ,yDAA0D,SAAW,KAmBhFxU,EAAOC,QARP,SAAsByE,GACpB,SAAKqmB,EAASrmB,IAAUk9H,EAASl9H,MAGnB4oB,EAAW5oB,GAASq9H,EAAaD,GAChCp9B,KAAKm9B,EAASn9H,M,gBC3C/B,IAAI+8H,EAAavhI,EAAQ,KAGrBwhI,EAAc,WAChB,IAAI72G,EAAM,SAASxV,KAAKosH,GAAcA,EAAWp1H,MAAQo1H,EAAWp1H,KAAKs1H,UAAY,IACrF,OAAO92G,EAAO,iBAAmBA,EAAO,GAFxB,GAgBlB7qB,EAAOC,QAJP,SAAkBqgI,GAChB,QAASoB,GAAeA,KAAcpB,I,gBChBxC,IAGImB,EAHOvhI,EAAQ,IAGG,sBAEtBF,EAAOC,QAAUwhI,G,cCOjBzhI,EAAOC,QAJP,SAAkB6O,EAAQ5N,GACxB,OAAiB,MAAV4N,OAAiBvI,EAAYuI,EAAO5N,K,cCO7ClB,EAAOC,QANP,SAAoBiB,GAClB,IAAI4D,EAAS3C,KAAK+G,IAAIhI,WAAeiB,KAAK2+H,SAAS5/H,GAEnD,OADAiB,KAAKqmB,MAAQ1jB,EAAS,EAAI,EACnBA,I,gBCbT,IAAIm9H,EAAe/hI,EAAQ,IASvB4B,EAHcd,OAAOM,UAGQQ,eAoBjC9B,EAAOC,QATP,SAAiBiB,GACf,IAAIsf,EAAOre,KAAK2+H,SAChB,GAAImB,EAAc,CAChB,IAAIn9H,EAAS0b,EAAKtf,GAClB,MArBiB,8BAqBV4D,OAA4ByB,EAAYzB,EAEjD,OAAOhD,EAAeC,KAAKye,EAAMtf,GAAOsf,EAAKtf,QAAOqF,I,gBC1BtD,IAAI07H,EAAe/hI,EAAQ,IAMvB4B,EAHcd,OAAOM,UAGQQ,eAgBjC9B,EAAOC,QALP,SAAiBiB,GACf,IAAIsf,EAAOre,KAAK2+H,SAChB,OAAOmB,OAA8B17H,IAAdia,EAAKtf,GAAsBY,EAAeC,KAAKye,EAAMtf,K,gBCnB9E,IAAI+gI,EAAe/hI,EAAQ,IAsB3BF,EAAOC,QAPP,SAAiBiB,EAAKwD,GACpB,IAAI8b,EAAOre,KAAK2+H,SAGhB,OAFA3+H,KAAKqmB,MAAQrmB,KAAK+G,IAAIhI,GAAO,EAAI,EACjCsf,EAAKtf,GAAQ+gI,QAA0B17H,IAAV7B,EAfV,4BAekDA,EAC9DvC,O,cCPTnC,EAAOC,QALP,WACEkC,KAAK2+H,SAAW,GAChB3+H,KAAKqmB,KAAO,I,gBCTd,IAAIu4G,EAAe7gI,EAAQ,IAMvBkmC,EAHaxkC,MAAMN,UAGC8kC,OA4BxBpmC,EAAOC,QAjBP,SAAyBiB,GACvB,IAAIsf,EAAOre,KAAK2+H,SACZtrH,EAAQurH,EAAavgH,EAAMtf,GAE/B,QAAIsU,EAAQ,KAIRA,GADYgL,EAAK7f,OAAS,EAE5B6f,EAAKxa,MAELogC,EAAOrkC,KAAKye,EAAMhL,EAAO,KAEzBrT,KAAKqmB,MACA,K,gBC/BT,IAAIu4G,EAAe7gI,EAAQ,IAkB3BF,EAAOC,QAPP,SAAsBiB,GACpB,IAAIsf,EAAOre,KAAK2+H,SACZtrH,EAAQurH,EAAavgH,EAAMtf,GAE/B,OAAOsU,EAAQ,OAAIjP,EAAYia,EAAKhL,GAAO,K,gBCf7C,IAAIurH,EAAe7gI,EAAQ,IAe3BF,EAAOC,QAJP,SAAsBiB,GACpB,OAAO6/H,EAAa5+H,KAAK2+H,SAAU5/H,IAAQ,I,gBCZ7C,IAAI6/H,EAAe7gI,EAAQ,IAyB3BF,EAAOC,QAbP,SAAsBiB,EAAKwD,GACzB,IAAI8b,EAAOre,KAAK2+H,SACZtrH,EAAQurH,EAAavgH,EAAMtf,GAQ/B,OANIsU,EAAQ,KACRrT,KAAKqmB,KACPhI,EAAKva,KAAK,CAAC/E,EAAKwD,KAEhB8b,EAAKhL,GAAO,GAAK9Q,EAEZvC,O,gBCtBT,IAAIugI,EAAaxiI,EAAQ,IAiBzBF,EAAOC,QANP,SAAwBiB,GACtB,IAAI4D,EAAS49H,EAAWvgI,KAAMjB,GAAa,OAAEA,GAE7C,OADAiB,KAAKqmB,MAAQ1jB,EAAS,EAAI,EACnBA,I,cCAT9E,EAAOC,QAPP,SAAmByE,GACjB,IAAImI,SAAcnI,EAClB,MAAgB,UAARmI,GAA4B,UAARA,GAA4B,UAARA,GAA4B,WAARA,EACrD,cAAVnI,EACU,OAAVA,I,gBCXP,IAAIg+H,EAAaxiI,EAAQ,IAezBF,EAAOC,QAJP,SAAqBiB,GACnB,OAAOwhI,EAAWvgI,KAAMjB,GAAKsF,IAAItF,K,gBCZnC,IAAIwhI,EAAaxiI,EAAQ,IAezBF,EAAOC,QAJP,SAAqBiB,GACnB,OAAOwhI,EAAWvgI,KAAMjB,GAAKgI,IAAIhI,K,gBCZnC,IAAIwhI,EAAaxiI,EAAQ,IAqBzBF,EAAOC,QATP,SAAqBiB,EAAKwD,GACxB,IAAI8b,EAAOkiH,EAAWvgI,KAAMjB,GACxBsnB,EAAOhI,EAAKgI,KAIhB,OAFAhI,EAAKpX,IAAIlI,EAAKwD,GACdvC,KAAKqmB,MAAQhI,EAAKgI,MAAQA,EAAO,EAAI,EAC9BrmB,O,gBClBT,IAAIyD,EAAS1F,EAAQ,IACjBspI,EAAWtpI,EAAQ,KACnBwK,EAAUxK,EAAQ,IAClBupI,EAAWvpI,EAAQ,KAMnB6nI,EAAcniI,EAASA,EAAOtE,eAAYiF,EAC1C4oG,EAAiB44B,EAAcA,EAAY3/G,cAAW7hB,EA0B1DvG,EAAOC,QAhBP,SAASiqI,EAAaxlI,GAEpB,GAAoB,iBAATA,EACT,OAAOA,EAET,GAAIgG,EAAQhG,GAEV,OAAO8kI,EAAS9kI,EAAOwlI,GAAgB,GAEzC,GAAIT,EAAS/kI,GACX,OAAOyqG,EAAiBA,EAAeptG,KAAK2C,GAAS,GAEvD,IAAII,EAAUJ,EAAQ,GACtB,MAAkB,KAAVI,GAAkB,EAAIJ,IA3BjB,SA2BwC,KAAOI,I,cCb9D9E,EAAOC,QAXP,SAAkB6uB,EAAOu0G,GAKvB,IAJA,IAAI7tH,GAAS,EACT7U,EAAkB,MAATmuB,EAAgB,EAAIA,EAAMnuB,OACnCmE,EAASlD,MAAMjB,KAEV6U,EAAQ7U,GACfmE,EAAO0Q,GAAS6tH,EAASv0G,EAAMtZ,GAAQA,EAAOsZ,GAEhD,OAAOhqB,I,gBCjBT,IAAIs7H,EAAalgI,EAAQ,IACrBsgI,EAAetgI,EAAQ,IAgB3BF,EAAOC,QAJP,SAAyByE,GACvB,OAAO87H,EAAa97H,IAVR,sBAUkB07H,EAAW17H,K,gBCd3C,IAAIs9H,EAAY9hI,EAAQ,IAEpBe,EAAkB,WACpB,IACE,IAAIq/H,EAAO0B,EAAUhhI,OAAQ,kBAE7B,OADAs/H,EAAK,GAAI,GAAI,IACNA,EACP,MAAOx9H,KALW,GAQtB9C,EAAOC,QAAUgB,G,gBCVjB,IAaIyuJ,EAbgBxvJ,EAAQ,IAad63M,GAEd/3M,EAAOC,QAAUyvJ,G,cCSjB1vJ,EAAOC,QAjBP,SAAuB+3M,GACrB,OAAO,SAASlpM,EAAQu0H,EAAU8C,GAMhC,IALA,IAAI3wH,GAAS,EACTy4L,EAAWjtM,OAAO8N,GAClBrO,EAAQ0lI,EAASr3H,GACjBnO,EAASF,EAAME,OAEZA,KAAU,CACf,IAAIO,EAAMT,EAAMu3M,EAAYr3M,IAAW6U,GACvC,IAA+C,IAA3C6tH,EAAS4qE,EAAS/sM,GAAMA,EAAK+sM,GAC/B,MAGJ,OAAOn/L,K,gBCpBX,IAAI80H,EAAY1jI,EAAQ,KACpB4jI,EAAc5jI,EAAQ,KACtBwK,EAAUxK,EAAQ,IAClBw8G,EAAWx8G,EAAQ,KACnB8jI,EAAU9jI,EAAQ,KAClBokI,EAAepkI,EAAQ,KAMvB4B,EAHcd,OAAOM,UAGQQ,eAqCjC9B,EAAOC,QA3BP,SAAuByE,EAAO8/H,GAC5B,IAAIC,EAAQ/5H,EAAQhG,GAChBggI,GAASD,GAASX,EAAYp/H,GAC9BigI,GAAUF,IAAUC,GAAShoB,EAASh4G,GACtCoxG,GAAU2uB,IAAUC,IAAUC,GAAUL,EAAa5/H,GACrDkgI,EAAcH,GAASC,GAASC,GAAU7uB,EAC1ChxG,EAAS8/H,EAAchB,EAAUl/H,EAAM/D,OAAQsB,QAAU,GACzDtB,EAASmE,EAAOnE,OAEpB,IAAK,IAAIO,KAAOwD,GACT8/H,IAAa1iI,EAAeC,KAAK2C,EAAOxD,IACvC0jI,IAEQ,UAAP1jI,GAECyjI,IAAkB,UAAPzjI,GAA0B,UAAPA,IAE9B40G,IAAkB,UAAP50G,GAA0B,cAAPA,GAA8B,cAAPA,IAEtD8iI,EAAQ9iI,EAAKP,KAElBmE,EAAOmB,KAAK/E,GAGhB,OAAO4D,I,cC1BT9E,EAAOC,QAVP,SAAmByC,EAAG2gI,GAIpB,IAHA,IAAI7tH,GAAS,EACT1Q,EAASlD,MAAMc,KAEV8S,EAAQ9S,GACfoC,EAAO0Q,GAAS6tH,EAAS7tH,GAE3B,OAAO1Q,I,cCCT9E,EAAOC,QAJP,WACE,OAAO,I,gBCdT,IAAImgI,EAAalgI,EAAQ,IACrB+jI,EAAW/jI,EAAQ,KACnBsgI,EAAetgI,EAAQ,IA8BvBgkI,EAAiB,GACrBA,EAZiB,yBAYYA,EAXZ,yBAYjBA,EAXc,sBAWYA,EAVX,uBAWfA,EAVe,uBAUYA,EATZ,uBAUfA,EATsB,8BASYA,EARlB,wBAShBA,EARgB,yBAQY,EAC5BA,EAjCc,sBAiCYA,EAhCX,kBAiCfA,EApBqB,wBAoBYA,EAhCnB,oBAiCdA,EApBkB,qBAoBYA,EAhChB,iBAiCdA,EAhCe,kBAgCYA,EA/Bb,qBAgCdA,EA/Ba,gBA+BYA,EA9BT,mBA+BhBA,EA9BgB,mBA8BYA,EA7BZ,mBA8BhBA,EA7Ba,gBA6BYA,EA5BT,mBA6BhBA,EA5BiB,qBA4BY,EAc7BlkI,EAAOC,QALP,SAA0ByE,GACxB,OAAO87H,EAAa97H,IAClBu/H,EAASv/H,EAAM/D,WAAaujI,EAAe9D,EAAW17H,M,cC3C1D1E,EAAOC,QANP,SAAmBqgI,GACjB,OAAO,SAAS57H,GACd,OAAO47H,EAAK57H,M,iBCThB,gBAAI86F,EAAat/F,EAAQ,KAGrBirH,EAA4ClrH,IAAYA,EAAQ6uG,UAAY7uG,EAG5EmrH,EAAaD,GAAgC,iBAAVnrH,GAAsBA,IAAWA,EAAO8uG,UAAY9uG,EAMvFqrH,EAHgBD,GAAcA,EAAWnrH,UAAYkrH,GAGtB3rB,EAAWa,QAG1CirB,EAAY,WACd,IAEE,IAAIC,EAAQH,GAAcA,EAAWlrH,SAAWkrH,EAAWlrH,QAAQ,QAAQqrH,MAE3E,OAAIA,GAKGF,GAAeA,EAAYG,SAAWH,EAAYG,QAAQ,QACjE,MAAO1oH,KAXK,GAchB9C,EAAOC,QAAUqrH,I,sCC7BjB,IAAIuZ,EAAc3kI,EAAQ,KACtB4kI,EAAa5kI,EAAQ,KAMrB4B,EAHcd,OAAOM,UAGQQ,eAsBjC9B,EAAOC,QAbP,SAAkB6O,GAChB,IAAK+1H,EAAY/1H,GACf,OAAOg2H,EAAWh2H,GAEpB,IAAIhK,EAAS,GACb,IAAK,IAAI5D,KAAOF,OAAO8N,GACjBhN,EAAeC,KAAK+M,EAAQ5N,IAAe,eAAPA,GACtC4D,EAAOmB,KAAK/E,GAGhB,OAAO4D,I,cCzBT,IAAI+6H,EAAc7+H,OAAOM,UAgBzBtB,EAAOC,QAPP,SAAqByE,GACnB,IAAIk8H,EAAOl8H,GAASA,EAAMtC,YAG1B,OAAOsC,KAFqB,mBAARk8H,GAAsBA,EAAKt/H,WAAcu+H,K,gBCZ/D,IAGIiF,EAHU5kI,EAAQ,IAGLmgI,CAAQr/H,OAAOqL,KAAMrL,QAEtChB,EAAOC,QAAU6kI,G,cCSjB9kI,EAAOC,QANP,SAAiBqgI,EAAM57G,GACrB,OAAO,SAASqqD,GACd,OAAOuxD,EAAK57G,EAAUqqD,O,gBCV1B,IAAIzhD,EAAaptB,EAAQ,KACrB+jI,EAAW/jI,EAAQ,KA+BvBF,EAAOC,QAJP,SAAqByE,GACnB,OAAgB,MAATA,GAAiBu/H,EAASv/H,EAAM/D,UAAY2sB,EAAW5oB,K,gBC7BhE,IAAIuzM,EAAc/3M,EAAQ,KACtBg4M,EAAeh4M,EAAQ,KACvBi4M,EAA0Bj4M,EAAQ,KAmBtCF,EAAOC,QAVP,SAAqBmP,GACnB,IAAIgpM,EAAYF,EAAa9oM,GAC7B,OAAwB,GAApBgpM,EAAUz3M,QAAey3M,EAAU,GAAG,GACjCD,EAAwBC,EAAU,GAAG,GAAIA,EAAU,GAAG,IAExD,SAAStpM,GACd,OAAOA,IAAWM,GAAU6oM,EAAYnpM,EAAQM,EAAQgpM,M,gBCjB5D,IAAIj1E,EAAQjjI,EAAQ,KAChB6vJ,EAAc7vJ,EAAQ,KA4D1BF,EAAOC,QA5CP,SAAqB6O,EAAQM,EAAQgpM,EAAW30E,GAC9C,IAAIjuH,EAAQ4iM,EAAUz3M,OAClBA,EAAS6U,EACT6iM,GAAgB50E,EAEpB,GAAc,MAAV30H,EACF,OAAQnO,EAGV,IADAmO,EAAS9N,OAAO8N,GACT0G,KAAS,CACd,IAAIgL,EAAO43L,EAAU5iM,GACrB,GAAK6iM,GAAgB73L,EAAK,GAClBA,EAAK,KAAO1R,EAAO0R,EAAK,MACtBA,EAAK,KAAM1R,GAEnB,OAAO,EAGX,OAAS0G,EAAQ7U,GAAQ,CAEvB,IAAIO,GADJsf,EAAO43L,EAAU5iM,IACF,GACX+tH,EAAWz0H,EAAO5N,GAClB4vJ,EAAWtwI,EAAK,GAEpB,GAAI63L,GAAgB73L,EAAK,IACvB,QAAiBja,IAAbg9H,KAA4BriI,KAAO4N,GACrC,OAAO,MAEJ,CACL,IAAIgB,EAAQ,IAAIqzH,EAChB,GAAIM,EACF,IAAI3+H,EAAS2+H,EAAWF,EAAUutB,EAAU5vJ,EAAK4N,EAAQM,EAAQU,GAEnE,UAAiBvJ,IAAXzB,EACEirJ,EAAYe,EAAUvtB,EAAU+0E,EAA+C70E,EAAY3zH,GAC3FhL,GAEN,OAAO,GAIb,OAAO,I,gBC1DT,IAAIs8H,EAAYlhI,EAAQ,IAcxBF,EAAOC,QALP,WACEkC,KAAK2+H,SAAW,IAAIM,EACpBj/H,KAAKqmB,KAAO,I,cCMdxoB,EAAOC,QARP,SAAqBiB,GACnB,IAAIsf,EAAOre,KAAK2+H,SACZh8H,EAAS0b,EAAa,OAAEtf,GAG5B,OADAiB,KAAKqmB,KAAOhI,EAAKgI,KACV1jB,I,cCDT9E,EAAOC,QAJP,SAAkBiB,GAChB,OAAOiB,KAAK2+H,SAASt6H,IAAItF,K,cCG3BlB,EAAOC,QAJP,SAAkBiB,GAChB,OAAOiB,KAAK2+H,SAAS53H,IAAIhI,K,gBCV3B,IAAIkgI,EAAYlhI,EAAQ,IACpB8d,EAAM9d,EAAQ,KACd6iI,EAAW7iI,EAAQ,KA+BvBF,EAAOC,QAhBP,SAAkBiB,EAAKwD,GACrB,IAAI8b,EAAOre,KAAK2+H,SAChB,GAAItgH,aAAgB4gH,EAAW,CAC7B,IAAI6B,EAAQziH,EAAKsgH,SACjB,IAAK9iH,GAAQilH,EAAMtiI,OAASuiI,IAG1B,OAFAD,EAAMh9H,KAAK,CAAC/E,EAAKwD,IACjBvC,KAAKqmB,OAAShI,EAAKgI,KACZrmB,KAETqe,EAAOre,KAAK2+H,SAAW,IAAIiC,EAASE,GAItC,OAFAziH,EAAKpX,IAAIlI,EAAKwD,GACdvC,KAAKqmB,KAAOhI,EAAKgI,KACVrmB,O,gBC9BT,IAAIghI,EAAQjjI,EAAQ,KAChBq4M,EAAcr4M,EAAQ,KACtBs4M,EAAat4M,EAAQ,KACrBu4M,EAAev4M,EAAQ,KACvBgnI,EAAShnI,EAAQ,KACjBwK,EAAUxK,EAAQ,IAClBw8G,EAAWx8G,EAAQ,KACnBokI,EAAepkI,EAAQ,KAMvB4oI,EAAU,qBACV4vE,EAAW,iBACX1vE,EAAY,kBAMZlnI,EAHcd,OAAOM,UAGQQ,eA6DjC9B,EAAOC,QA7CP,SAAyB6O,EAAQ2rD,EAAOyuE,EAASzF,EAAY0sB,EAAWrgJ,GACtE,IAAI6oM,EAAWjuM,EAAQoE,GACnB8pM,EAAWluM,EAAQ+vD,GACnBo+I,EAASF,EAAWD,EAAWxxE,EAAOp4H,GACtCgqM,EAASF,EAAWF,EAAWxxE,EAAOzsE,GAKtCs+I,GAHJF,EAASA,GAAU/vE,EAAUE,EAAY6vE,IAGhB7vE,EACrBgwE,GAHJF,EAASA,GAAUhwE,EAAUE,EAAY8vE,IAGhB9vE,EACrBiwE,EAAYJ,GAAUC,EAE1B,GAAIG,GAAav8F,EAAS5tG,GAAS,CACjC,IAAK4tG,EAASjiD,GACZ,OAAO,EAETk+I,GAAW,EACXI,GAAW,EAEb,GAAIE,IAAcF,EAEhB,OADAjpM,IAAUA,EAAQ,IAAIqzH,GACdw1E,GAAYr0E,EAAax1H,GAC7BypM,EAAYzpM,EAAQ2rD,EAAOyuE,EAASzF,EAAY0sB,EAAWrgJ,GAC3D0oM,EAAW1pM,EAAQ2rD,EAAOo+I,EAAQ3vE,EAASzF,EAAY0sB,EAAWrgJ,GAExE,KArDyB,EAqDnBo5H,GAAiC,CACrC,IAAIgwE,EAAeH,GAAYj3M,EAAeC,KAAK+M,EAAQ,eACvDqqM,EAAeH,GAAYl3M,EAAeC,KAAK04D,EAAO,eAE1D,GAAIy+I,GAAgBC,EAAc,CAChC,IAAIC,EAAeF,EAAepqM,EAAOpK,QAAUoK,EAC/CuqM,EAAeF,EAAe1+I,EAAM/1D,QAAU+1D,EAGlD,OADA3qD,IAAUA,EAAQ,IAAIqzH,GACfgtB,EAAUipD,EAAcC,EAAcnwE,EAASzF,EAAY3zH,IAGtE,QAAKmpM,IAGLnpM,IAAUA,EAAQ,IAAIqzH,GACfs1E,EAAa3pM,EAAQ2rD,EAAOyuE,EAASzF,EAAY0sB,EAAWrgJ,M,gBC/ErE,IAAIizH,EAAW7iI,EAAQ,KACnBo5M,EAAcp5M,EAAQ,KACtBq5M,EAAcr5M,EAAQ,KAU1B,SAAS8vJ,EAAS16I,GAChB,IAAIE,GAAS,EACT7U,EAAmB,MAAV2U,EAAiB,EAAIA,EAAO3U,OAGzC,IADAwB,KAAK2+H,SAAW,IAAIiC,IACXvtH,EAAQ7U,GACfwB,KAAKkrC,IAAI/3B,EAAOE,IAKpBw6I,EAAS1uJ,UAAU+rC,IAAM2iH,EAAS1uJ,UAAU2E,KAAOqzM,EACnDtpD,EAAS1uJ,UAAU4H,IAAMqwM,EAEzBv5M,EAAOC,QAAU+vJ,G,cCRjBhwJ,EAAOC,QALP,SAAqByE,GAEnB,OADAvC,KAAK2+H,SAAS13H,IAAI1E,EAbC,6BAcZvC,O,cCFTnC,EAAOC,QAJP,SAAqByE,GACnB,OAAOvC,KAAK2+H,SAAS53H,IAAIxE,K,cCY3B1E,EAAOC,QAZP,SAAmB6uB,EAAO22G,GAIxB,IAHA,IAAIjwH,GAAS,EACT7U,EAAkB,MAATmuB,EAAgB,EAAIA,EAAMnuB,SAE9B6U,EAAQ7U,GACf,GAAI8kI,EAAU32G,EAAMtZ,GAAQA,EAAOsZ,GACjC,OAAO,EAGX,OAAO,I,cCPT9uB,EAAOC,QAJP,SAAkB4T,EAAO3S,GACvB,OAAO2S,EAAM3K,IAAIhI,K,gBCTnB,IAAI0E,EAAS1F,EAAQ,IACjBmnI,EAAannI,EAAQ,KACrBuzB,EAAKvzB,EAAQ,KACbq4M,EAAcr4M,EAAQ,KACtBs5M,EAAat5M,EAAQ,KACrBu5M,EAAav5M,EAAQ,KAqBrB6nI,EAAcniI,EAASA,EAAOtE,eAAYiF,EAC1CyhI,EAAgBD,EAAcA,EAAYxwB,aAAUhxG,EAoFxDvG,EAAOC,QAjEP,SAAoB6O,EAAQ2rD,EAAOsoC,EAAKmmC,EAASzF,EAAY0sB,EAAWrgJ,GACtE,OAAQizF,GACN,IAzBc,oBA0BZ,GAAKj0F,EAAO04H,YAAc/sE,EAAM+sE,YAC3B14H,EAAO84H,YAAcntE,EAAMmtE,WAC9B,OAAO,EAET94H,EAASA,EAAOkuG,OAChBviD,EAAQA,EAAMuiD,OAEhB,IAlCiB,uBAmCf,QAAKluG,EAAO04H,YAAc/sE,EAAM+sE,aAC3B2oB,EAAU,IAAI9oB,EAAWv4H,GAAS,IAAIu4H,EAAW5sE,KAKxD,IAnDU,mBAoDV,IAnDU,gBAoDV,IAjDY,kBAoDV,OAAOhnC,GAAI3kB,GAAS2rD,GAEtB,IAxDW,iBAyDT,OAAO3rD,EAAOhC,MAAQ2tD,EAAM3tD,MAAQgC,EAAO5B,SAAWutD,EAAMvtD,QAE9D,IAxDY,kBAyDZ,IAvDY,kBA2DV,OAAO4B,GAAW2rD,EAAQ,GAE5B,IAjES,eAkEP,IAAIgsG,EAAU+yC,EAEhB,IAjES,eAkEP,IAAIppD,EA5EiB,EA4ELlnB,EAGhB,GAFAu9B,IAAYA,EAAUgzC,GAElB3qM,EAAO0Z,MAAQiyC,EAAMjyC,OAAS4nI,EAChC,OAAO,EAGT,IAAIxvG,EAAU9wC,EAAMtJ,IAAIsI,GACxB,GAAI8xC,EACF,OAAOA,GAAW6Z,EAEpByuE,GAtFuB,EAyFvBp5H,EAAM1G,IAAI0F,EAAQ2rD,GAClB,IAAI31D,EAASyzM,EAAY9xC,EAAQ33J,GAAS23J,EAAQhsG,GAAQyuE,EAASzF,EAAY0sB,EAAWrgJ,GAE1F,OADAA,EAAc,OAAEhB,GACThK,EAET,IAnFY,kBAoFV,GAAIkjI,EACF,OAAOA,EAAcjmI,KAAK+M,IAAWk5H,EAAcjmI,KAAK04D,GAG9D,OAAO,I,gBC5GT,IAGI4sE,EAHOnnI,EAAQ,IAGGmnI,WAEtBrnI,EAAOC,QAAUonI,G,cCYjBrnI,EAAOC,QAVP,SAAoB+L,GAClB,IAAIwJ,GAAS,EACT1Q,EAASlD,MAAMoK,EAAIwc,MAKvB,OAHAxc,EAAIqD,SAAQ,SAAS3K,EAAOxD,GAC1B4D,IAAS0Q,GAAS,CAACtU,EAAKwD,MAEnBI,I,cCGT9E,EAAOC,QAVP,SAAoBmJ,GAClB,IAAIoM,GAAS,EACT1Q,EAASlD,MAAMwH,EAAIof,MAKvB,OAHApf,EAAIiG,SAAQ,SAAS3K,GACnBI,IAAS0Q,GAAS9Q,KAEbI,I,gBCdT,IAAIuhI,EAAanmI,EAAQ,KASrB4B,EAHcd,OAAOM,UAGQQ,eAgFjC9B,EAAOC,QAjEP,SAAsB6O,EAAQ2rD,EAAOyuE,EAASzF,EAAY0sB,EAAWrgJ,GACnE,IAAIsgJ,EAtBqB,EAsBTlnB,EACZ39F,EAAW86F,EAAWv3H,GACtB4qM,EAAYnuK,EAAS5qC,OAIzB,GAAI+4M,GAHWrzE,EAAW5rE,GACD95D,SAEMyvJ,EAC7B,OAAO,EAGT,IADA,IAAI56I,EAAQkkM,EACLlkM,KAAS,CACd,IAAItU,EAAMqqC,EAAS/1B,GACnB,KAAM46I,EAAYlvJ,KAAOu5D,EAAQ34D,EAAeC,KAAK04D,EAAOv5D,IAC1D,OAAO,EAIX,IAAIy4M,EAAa7pM,EAAMtJ,IAAIsI,GACvB0hJ,EAAa1gJ,EAAMtJ,IAAIi0D,GAC3B,GAAIk/I,GAAcnpD,EAChB,OAAOmpD,GAAcl/I,GAAS+1F,GAAc1hJ,EAE9C,IAAIhK,GAAS,EACbgL,EAAM1G,IAAI0F,EAAQ2rD,GAClB3qD,EAAM1G,IAAIqxD,EAAO3rD,GAGjB,IADA,IAAI8qM,EAAWxpD,IACN56I,EAAQkkM,GAAW,CAE1B,IAAIn2E,EAAWz0H,EADf5N,EAAMqqC,EAAS/1B,IAEXm7I,EAAWl2F,EAAMv5D,GAErB,GAAIuiI,EACF,IAAImtB,EAAWR,EACX3sB,EAAWktB,EAAUptB,EAAUriI,EAAKu5D,EAAO3rD,EAAQgB,GACnD2zH,EAAWF,EAAUotB,EAAUzvJ,EAAK4N,EAAQ2rD,EAAO3qD,GAGzD,UAAmBvJ,IAAbqqJ,EACGrtB,IAAaotB,GAAYR,EAAU5sB,EAAUotB,EAAUznB,EAASzF,EAAY3zH,GAC7E8gJ,GACD,CACL9rJ,GAAS,EACT,MAEF80M,IAAaA,EAAkB,eAAP14M,GAE1B,GAAI4D,IAAW80M,EAAU,CACvB,IAAIC,EAAU/qM,EAAO1M,YACjB03M,EAAUr/I,EAAMr4D,YAGhBy3M,GAAWC,KACV,gBAAiBhrM,MAAU,gBAAiB2rD,IACzB,mBAAXo/I,GAAyBA,aAAmBA,GACjC,mBAAXC,GAAyBA,aAAmBA,IACvDh1M,GAAS,GAKb,OAFAgL,EAAc,OAAEhB,GAChBgB,EAAc,OAAE2qD,GACT31D,I,gBCtFT,IAAIohI,EAAiBhmI,EAAQ,KACzB2lI,EAAa3lI,EAAQ,KACrBmM,EAAOnM,EAAQ,KAanBF,EAAOC,QAJP,SAAoB6O,GAClB,OAAOo3H,EAAep3H,EAAQzC,EAAMw5H,K,gBCZtC,IAAIE,EAAY7lI,EAAQ,KACpBwK,EAAUxK,EAAQ,IAkBtBF,EAAOC,QALP,SAAwB6O,EAAQq3H,EAAUC,GACxC,IAAIthI,EAASqhI,EAASr3H,GACtB,OAAOpE,EAAQoE,GAAUhK,EAASihI,EAAUjhI,EAAQshI,EAAYt3H,M,cCGlE9O,EAAOC,QAXP,SAAmB6uB,EAAOxZ,GAKxB,IAJA,IAAIE,GAAS,EACT7U,EAAS2U,EAAO3U,OAChBwuD,EAASrgC,EAAMnuB,SAEV6U,EAAQ7U,GACfmuB,EAAMqgC,EAAS35C,GAASF,EAAOE,GAEjC,OAAOsZ,I,gBChBT,IAAI02G,EAActlI,EAAQ,KACtBylI,EAAYzlI,EAAQ,KAMpB+C,EAHcjC,OAAOM,UAGc2B,qBAGnC2iI,EAAmB5kI,OAAOgC,sBAS1B6iI,EAAcD,EAA+B,SAAS92H,GACxD,OAAc,MAAVA,EACK,IAETA,EAAS9N,OAAO8N,GACT02H,EAAYI,EAAiB92H,IAAS,SAASmoH,GACpD,OAAOh0H,EAAqBlB,KAAK+M,EAAQmoH,QANR0O,EAUrC3lI,EAAOC,QAAU4lI,G,cCLjB7lI,EAAOC,QAfP,SAAqB6uB,EAAO22G,GAM1B,IALA,IAAIjwH,GAAS,EACT7U,EAAkB,MAATmuB,EAAgB,EAAIA,EAAMnuB,OACnC+kI,EAAW,EACX5gI,EAAS,KAEJ0Q,EAAQ7U,GAAQ,CACvB,IAAI+D,EAAQoqB,EAAMtZ,GACdiwH,EAAU/gI,EAAO8Q,EAAOsZ,KAC1BhqB,EAAO4gI,KAAchhI,GAGzB,OAAOI,I,cCCT9E,EAAOC,QAJP,WACE,MAAO,K,gBCnBT,IAAIsmI,EAAWrmI,EAAQ,KACnB8d,EAAM9d,EAAQ,KACdoE,EAAUpE,EAAQ,KAClBktC,EAAMltC,EAAQ,KACdwrF,EAAUxrF,EAAQ,KAClBkgI,EAAalgI,EAAQ,IACrB2hI,EAAW3hI,EAAQ,KAGnBsmI,EAAS,eAETC,EAAa,mBACbC,EAAS,eACTC,EAAa,mBAEbC,EAAc,oBAGdC,EAAqBhF,EAAS0E,GAC9BO,EAAgBjF,EAAS7jH,GACzB+oH,EAAoBlF,EAASv9H,GAC7B0iI,EAAgBnF,EAASz0F,GACzB65F,EAAoBpF,EAASn2C,GAS7Bw7C,EAAS9G,GAGRmG,GAAYW,EAAO,IAAIX,EAAS,IAAIzpB,YAAY,MAAQ8pB,GACxD5oH,GAAOkpH,EAAO,IAAIlpH,IAAQwoH,GAC1BliI,GAAW4iI,EAAO5iI,EAAQC,YAAckiI,GACxCr5F,GAAO85F,EAAO,IAAI95F,IAAQs5F,GAC1Bh7C,GAAWw7C,EAAO,IAAIx7C,IAAYi7C,KACrCO,EAAS,SAASxiI,GAChB,IAAII,EAASs7H,EAAW17H,GACpBk8H,EA/BQ,mBA+BD97H,EAAsBJ,EAAMtC,iBAAcmE,EACjD4gI,EAAavG,EAAOiB,EAASjB,GAAQ,GAEzC,GAAIuG,EACF,OAAQA,GACN,KAAKN,EAAoB,OAAOD,EAChC,KAAKE,EAAe,OAAON,EAC3B,KAAKO,EAAmB,OAAON,EAC/B,KAAKO,EAAe,OAAON,EAC3B,KAAKO,EAAmB,OAAON,EAGnC,OAAO7hI,IAIX9E,EAAOC,QAAUinI,G,gBCzDjB,IAIIX,EAJYrmI,EAAQ,GAIT8hI,CAHJ9hI,EAAQ,IAGY,YAE/BF,EAAOC,QAAUsmI,G,gBCNjB,IAIIjiI,EAJYpE,EAAQ,GAIV8hI,CAHH9hI,EAAQ,IAGW,WAE9BF,EAAOC,QAAUqE,G,gBCNjB,IAII8oC,EAJYltC,EAAQ,GAId8hI,CAHC9hI,EAAQ,IAGO,OAE1BF,EAAOC,QAAUmtC,G,gBCNjB,IAIIs+C,EAJYxrF,EAAQ,GAIV8hI,CAHH9hI,EAAQ,IAGW,WAE9BF,EAAOC,QAAUyrF,G,gBCNjB,IAAIquH,EAAqB75M,EAAQ,KAC7BmM,EAAOnM,EAAQ,KAsBnBF,EAAOC,QAbP,SAAsB6O,GAIpB,IAHA,IAAIhK,EAASuH,EAAKyC,GACdnO,EAASmE,EAAOnE,OAEbA,KAAU,CACf,IAAIO,EAAM4D,EAAOnE,GACb+D,EAAQoK,EAAO5N,GAEnB4D,EAAOnE,GAAU,CAACO,EAAKwD,EAAOq1M,EAAmBr1M,IAEnD,OAAOI,I,gBCpBT,IAAIirJ,EAAc7vJ,EAAQ,KACtBsG,EAAMtG,EAAQ,KACd85M,EAAQ95M,EAAQ,KAChBuvJ,EAAQvvJ,EAAQ,KAChB65M,EAAqB75M,EAAQ,KAC7Bi4M,EAA0Bj4M,EAAQ,KAClC+pI,EAAQ/pI,EAAQ,IA0BpBF,EAAOC,QAZP,SAA6BwS,EAAMq+I,GACjC,OAAIrB,EAAMh9I,IAASsnM,EAAmBjpD,GAC7BqnD,EAAwBluE,EAAMx3H,GAAOq+I,GAEvC,SAAShiJ,GACd,IAAIy0H,EAAW/8H,EAAIsI,EAAQ2D,GAC3B,YAAqBlM,IAAbg9H,GAA0BA,IAAautB,EAC3CkpD,EAAMlrM,EAAQ2D,GACds9I,EAAYe,EAAUvtB,EAAU+0E,M,gBC5BxC,IAAI2B,EAAU/5M,EAAQ,KAgCtBF,EAAOC,QALP,SAAa6O,EAAQ2D,EAAM2Y,GACzB,IAAItmB,EAAmB,MAAVgK,OAAiBvI,EAAY0zM,EAAQnrM,EAAQ2D,GAC1D,YAAkBlM,IAAXzB,EAAuBsmB,EAAetmB,I,gBC7B/C,IAAIo1M,EAAYh6M,EAAQ,KACpBm+H,EAAUn+H,EAAQ,KAgCtBF,EAAOC,QAJP,SAAe6O,EAAQ2D,GACrB,OAAiB,MAAV3D,GAAkBuvH,EAAQvvH,EAAQ2D,EAAMynM,K,cClBjDl6M,EAAOC,QAJP,SAAmB6O,EAAQ5N,GACzB,OAAiB,MAAV4N,GAAkB5N,KAAOF,OAAO8N,K,cCWzC9O,EAAOC,QAJP,SAAkByE,GAChB,OAAOA,I,gBCjBT,IAAIy1M,EAAej6M,EAAQ,KACvBk6M,EAAmBl6M,EAAQ,KAC3BuvJ,EAAQvvJ,EAAQ,KAChB+pI,EAAQ/pI,EAAQ,IA4BpBF,EAAOC,QAJP,SAAkBwS,GAChB,OAAOg9I,EAAMh9I,GAAQ0nM,EAAalwE,EAAMx3H,IAAS2nM,EAAiB3nM,K,cCfpEzS,EAAOC,QANP,SAAsBiB,GACpB,OAAO,SAAS4N,GACd,OAAiB,MAAVA,OAAiBvI,EAAYuI,EAAO5N,M,gBCT/C,IAAI+4M,EAAU/5M,EAAQ,KAetBF,EAAOC,QANP,SAA0BwS,GACxB,OAAO,SAAS3D,GACd,OAAOmrM,EAAQnrM,EAAQ2D,M,cCc3BzS,EAAOC,QAbP,SAAqB6uB,EAAOu0G,EAAUg3E,EAAaC,GACjD,IAAI9kM,GAAS,EACT7U,EAAkB,MAATmuB,EAAgB,EAAIA,EAAMnuB,OAKvC,IAHI25M,GAAa35M,IACf05M,EAAcvrL,IAAQtZ,MAEfA,EAAQ7U,GACf05M,EAAch3E,EAASg3E,EAAavrL,EAAMtZ,GAAQA,EAAOsZ,GAE3D,OAAOurL,I,gBCtBT,IAAIE,EAAer6M,EAAQ,KACvBkoB,EAAWloB,EAAQ,IAGnBs6M,EAAU,8CAeVC,EAAcvvK,OANJ,kDAMoB,KAyBlClrC,EAAOC,QALP,SAAgBulC,GAEd,OADAA,EAASpd,EAASod,KACDA,EAAOhxB,QAAQgmM,EAASD,GAAc/lM,QAAQimM,EAAa,M,gBCzC9E,IAoEIF,EApEiBr6M,EAAQ,IAoEVw6M,CAjEG,CAEpB,OAAQ,IAAM,OAAQ,IAAK,OAAQ,IAAK,OAAQ,IAAK,OAAQ,IAAK,OAAQ,IAC1E,OAAQ,IAAM,OAAQ,IAAK,OAAQ,IAAK,OAAQ,IAAK,OAAQ,IAAK,OAAQ,IAC1E,OAAQ,IAAM,OAAQ,IACtB,OAAQ,IAAM,OAAQ,IACtB,OAAQ,IAAM,OAAQ,IAAK,OAAQ,IAAK,OAAQ,IAChD,OAAQ,IAAM,OAAQ,IAAK,OAAQ,IAAK,OAAQ,IAChD,OAAQ,IAAM,OAAQ,IAAK,OAAQ,IAAK,OAAQ,IAChD,OAAQ,IAAM,OAAQ,IAAK,OAAQ,IAAK,OAAQ,IAChD,OAAQ,IAAM,OAAQ,IACtB,OAAQ,IAAM,OAAQ,IAAK,OAAQ,IAAK,OAAQ,IAAK,OAAQ,IAAK,OAAQ,IAC1E,OAAQ,IAAM,OAAQ,IAAK,OAAQ,IAAK,OAAQ,IAAK,OAAQ,IAAK,OAAQ,IAC1E,OAAQ,IAAM,OAAQ,IAAK,OAAQ,IAAK,OAAQ,IAChD,OAAQ,IAAM,OAAQ,IAAK,OAAQ,IAAK,OAAQ,IAChD,OAAQ,IAAM,OAAQ,IAAK,OAAQ,IACnC,OAAQ,KAAM,OAAQ,KACtB,OAAQ,KAAM,OAAQ,KACtB,OAAQ,KAER,SAAU,IAAM,SAAU,IAAK,SAAU,IACzC,SAAU,IAAM,SAAU,IAAK,SAAU,IACzC,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IACxD,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IACxD,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IACxD,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IAAK,SAAU,IACvE,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IAAK,SAAU,IACvE,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IACxD,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IACxD,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IACxD,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IAAK,SAAU,IACvE,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IAAK,SAAU,IACvE,SAAU,IAAM,SAAU,IAC1B,SAAU,IAAM,SAAU,IAAK,SAAU,IACzC,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IAAK,SAAU,IACvE,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IAAK,SAAU,IACvE,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IACxD,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IACxD,SAAU,IAAM,SAAU,IAAK,SAAU,IACzC,SAAU,IAAM,SAAU,IAAK,SAAU,IACzC,SAAU,IAAM,SAAU,IAAK,SAAU,IACzC,SAAU,IAAM,SAAU,IAAK,SAAU,IACzC,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IACxD,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IACxD,SAAU,IAAM,SAAU,IAAK,SAAU,IACzC,SAAU,IAAM,SAAU,IAAK,SAAU,IACzC,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IAAK,SAAU,IAAK,SAAU,IACtF,SAAU,IAAM,SAAU,IAAK,SAAU,IAAK,SAAU,IAAK,SAAU,IAAK,SAAU,IACtF,SAAU,IAAM,SAAU,IAC1B,SAAU,IAAM,SAAU,IAAK,SAAU,IACzC,SAAU,IAAM,SAAU,IAAK,SAAU,IACzC,SAAU,IAAM,SAAU,IAA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","file":"static/js/7.4da0636f.chunk.js","sourcesContent":["'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\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}","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","export var top = 'top';\nexport var bottom = 'bottom';\nexport var right = 'right';\nexport var left = 'left';\nexport var auto = 'auto';\nexport var basePlacements = [top, bottom, right, left];\nexport var start = 'start';\nexport var end = 'end';\nexport var clippingParents = 'clippingParents';\nexport var viewport = 'viewport';\nexport var popper = 'popper';\nexport var reference = 'reference';\nexport var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {\n return acc.concat([placement + \"-\" + start, placement + \"-\" + end]);\n}, []);\nexport var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {\n return acc.concat([placement, placement + \"-\" + start, placement + \"-\" + end]);\n}, []); // modifiers that need to read the DOM\n\nexport var beforeRead = 'beforeRead';\nexport var read = 'read';\nexport var afterRead = 'afterRead'; // pure-logic modifiers\n\nexport var beforeMain = 'beforeMain';\nexport var main = 'main';\nexport var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)\n\nexport var beforeWrite = 'beforeWrite';\nexport var write = 'write';\nexport var afterWrite = 'afterWrite';\nexport var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];","function toVal(mix) {\n\tvar k, y, str='';\n\n\tif (typeof mix === 'string' || typeof mix === 'number') {\n\t\tstr += mix;\n\t} else if (typeof mix === 'object') {\n\t\tif (Array.isArray(mix)) {\n\t\t\tfor (k=0; k < mix.length; k++) {\n\t\t\t\tif (mix[k]) {\n\t\t\t\t\tif (y = toVal(mix[k])) {\n\t\t\t\t\t\tstr && (str += ' ');\n\t\t\t\t\t\tstr += y;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor (k in mix) {\n\t\t\t\tif (mix[k]) {\n\t\t\t\t\tstr && (str += ' ');\n\t\t\t\t\tstr += k;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn str;\n}\n\nexport default function () {\n\tvar i=0, tmp, x, str='';\n\twhile (i < arguments.length) {\n\t\tif (tmp = arguments[i++]) {\n\t\t\tif (x = toVal(tmp)) {\n\t\t\t\tstr && (str += ' ');\n\t\t\t\tstr += x\n\t\t\t}\n\t\t}\n\t}\n\treturn str;\n}\n","import arrayWithHoles from \"@babel/runtime/helpers/esm/arrayWithHoles\";\nimport iterableToArrayLimit from \"@babel/runtime/helpers/esm/iterableToArrayLimit\";\nimport unsupportedIterableToArray from \"@babel/runtime/helpers/esm/unsupportedIterableToArray\";\nimport nonIterableRest from \"@babel/runtime/helpers/esm/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}","/**\n * Cannot do Math.log(x) / Math.log(10) bc if IEEE floating point issue\n * @param x number\n */\nexport function getMagnitude(x) {\n // Cannot count string length via Number.toString because it may use scientific notation\n // for very small or very large numbers.\n return Math.floor(Math.log(x) * Math.LOG10E);\n}\nexport function repeat(s, times) {\n if (typeof s.repeat === 'function') {\n return s.repeat(times);\n }\n var arr = new Array(times);\n for (var i = 0; i < arr.length; i++) {\n arr[i] = s;\n }\n return arr.join('');\n}\nexport function setInternalSlot(map, pl, field, value) {\n if (!map.get(pl)) {\n map.set(pl, Object.create(null));\n }\n var slots = map.get(pl);\n slots[field] = value;\n}\nexport function setMultiInternalSlots(map, pl, props) {\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\n var k = _a[_i];\n setInternalSlot(map, pl, k, props[k]);\n }\n}\nexport function getInternalSlot(map, pl, field) {\n return getMultiInternalSlots(map, pl, field)[field];\n}\nexport function getMultiInternalSlots(map, pl) {\n var fields = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n fields[_i - 2] = arguments[_i];\n }\n var slots = map.get(pl);\n if (!slots) {\n throw new TypeError(pl + \" InternalSlot has not been initialized\");\n }\n return fields.reduce(function (all, f) {\n all[f] = slots[f];\n return all;\n }, Object.create(null));\n}\nexport function isLiteralPart(patternPart) {\n return patternPart.type === 'literal';\n}\n/*\n 17 ECMAScript Standard Built-in Objects:\n Every built-in Function object, including constructors, that is not\n identified as an anonymous function has a name property whose value\n is a String.\n\n Unless otherwise specified, the name property of a built-in Function\n object, if it exists, has the attributes { [[Writable]]: false,\n [[Enumerable]]: false, [[Configurable]]: true }.\n*/\nexport function defineProperty(target, name, _a) {\n var value = _a.value;\n Object.defineProperty(target, name, {\n configurable: true,\n enumerable: false,\n writable: true,\n value: value,\n });\n}\nexport var UNICODE_EXTENSION_SEQUENCE_REGEX = /-u(?:-[0-9a-z]{2,8})+/gi;\nexport function invariant(condition, message, Err) {\n if (Err === void 0) { Err = Error; }\n if (!condition) {\n throw new Err(message);\n }\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 setPrototypeOf from \"@babel/runtime/helpers/esm/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}","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 \"@babel/runtime/helpers/esm/typeof\";\nimport assertThisInitialized from \"@babel/runtime/helpers/esm/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 getPrototypeOf from \"@babel/runtime/helpers/esm/getPrototypeOf\";\nimport isNativeReflectConstruct from \"@babel/runtime/helpers/esm/isNativeReflectConstruct\";\nimport possibleConstructorReturn from \"@babel/runtime/helpers/esm/possibleConstructorReturn\";\nexport default function _createSuper(Derived) {\n var hasNativeReflectConstruct = isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return possibleConstructorReturn(this, result);\n };\n}","import unsupportedIterableToArray from \"@babel/runtime/helpers/esm/unsupportedIterableToArray\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it;\n\n if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\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 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}","import defineProperty from \"@babel/runtime/helpers/esm/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 { __extends } from \"tslib\";\nexport var IntlErrorCode;\n(function (IntlErrorCode) {\n IntlErrorCode[\"FORMAT_ERROR\"] = \"FORMAT_ERROR\";\n IntlErrorCode[\"UNSUPPORTED_FORMATTER\"] = \"UNSUPPORTED_FORMATTER\";\n IntlErrorCode[\"INVALID_CONFIG\"] = \"INVALID_CONFIG\";\n IntlErrorCode[\"MISSING_DATA\"] = \"MISSING_DATA\";\n IntlErrorCode[\"MISSING_TRANSLATION\"] = \"MISSING_TRANSLATION\";\n})(IntlErrorCode || (IntlErrorCode = {}));\nvar IntlError = /** @class */ (function (_super) {\n __extends(IntlError, _super);\n function IntlError(code, message, exception) {\n var _this = _super.call(this, \"[@formatjs/intl Error \" + code + \"] \" + message + \" \\n\" + (exception ? \"\\n\" + exception.message + \"\\n\" + exception.stack : '')) || this;\n _this.code = code;\n if (typeof Error.captureStackTrace === 'function') {\n Error.captureStackTrace(_this, IntlError);\n }\n return _this;\n }\n return IntlError;\n}(Error));\nexport { IntlError };\nvar UnsupportedFormatterError = /** @class */ (function (_super) {\n __extends(UnsupportedFormatterError, _super);\n function UnsupportedFormatterError(message, exception) {\n return _super.call(this, IntlErrorCode.UNSUPPORTED_FORMATTER, message, exception) || this;\n }\n return UnsupportedFormatterError;\n}(IntlError));\nexport { UnsupportedFormatterError };\nvar InvalidConfigError = /** @class */ (function (_super) {\n __extends(InvalidConfigError, _super);\n function InvalidConfigError(message, exception) {\n return _super.call(this, IntlErrorCode.INVALID_CONFIG, message, exception) || this;\n }\n return InvalidConfigError;\n}(IntlError));\nexport { InvalidConfigError };\nvar MissingDataError = /** @class */ (function (_super) {\n __extends(MissingDataError, _super);\n function MissingDataError(message, exception) {\n return _super.call(this, IntlErrorCode.MISSING_DATA, message, exception) || this;\n }\n return MissingDataError;\n}(IntlError));\nexport { MissingDataError };\nvar MessageFormatError = /** @class */ (function (_super) {\n __extends(MessageFormatError, _super);\n function MessageFormatError(message, locale, descriptor, exception) {\n var _this = _super.call(this, IntlErrorCode.FORMAT_ERROR, message + \" \\nLocale: \" + locale + \"\\nMessageID: \" + (descriptor === null || descriptor === void 0 ? void 0 : descriptor.id) + \"\\nDefault Message: \" + (descriptor === null || descriptor === void 0 ? void 0 : descriptor.defaultMessage) + \"\\nDescription: \" + (descriptor === null || descriptor === void 0 ? void 0 : descriptor.description) + \" \\n\", exception) || this;\n _this.descriptor = descriptor;\n return _this;\n }\n return MessageFormatError;\n}(IntlError));\nexport { MessageFormatError };\nvar MissingTranslationError = /** @class */ (function (_super) {\n __extends(MissingTranslationError, _super);\n function MissingTranslationError(descriptor, locale) {\n var _this = _super.call(this, IntlErrorCode.MISSING_TRANSLATION, \"Missing message: \\\"\" + descriptor.id + \"\\\" for locale \\\"\" + locale + \"\\\", using \" + (descriptor.defaultMessage ? 'default message' : 'id') + \" as fallback.\") || this;\n _this.descriptor = descriptor;\n return _this;\n }\n return MissingTranslationError;\n}(IntlError));\nexport { MissingTranslationError };\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}","import superPropBase from \"@babel/runtime/helpers/esm/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 \"@babel/runtime/helpers/esm/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}","import getWindow from \"./getWindow.js\";\n\nfunction isElement(node) {\n var OwnElement = getWindow(node).Element;\n return node instanceof OwnElement || node instanceof Element;\n}\n\nfunction isHTMLElement(node) {\n var OwnElement = getWindow(node).HTMLElement;\n return node instanceof OwnElement || node instanceof HTMLElement;\n}\n\nfunction isShadowRoot(node) {\n // IE 11 has no ShadowRoot\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n\n var OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\nexport { isElement, isHTMLElement, isShadowRoot };","import createNamedContext from \"./createNameContext\";\n\nconst historyContext = /*#__PURE__*/ createNamedContext(\"Router-History\");\nexport default historyContext;\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\nexport default createNamedContext;\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 HistoryContext from \"./HistoryContext.js\";\nimport RouterContext from \"./RouterContext.js\";\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 }\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.js\";\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) {\n if (cache[path]) return cache[path];\n\n const generator = pathToRegexp.compile(path);\n\n if (cacheCount < cacheLimit) {\n cache[path] = generator;\n cacheCount++;\n }\n\n return generator;\n}\n\n/**\n * Public API for generating a URL pathname from a path and parameters.\n */\nfunction generatePath(path = \"/\", params = {}) {\n return path === \"/\" ? path : compilePath(path)(params, { pretty: true });\n}\n\nexport default generatePath;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createLocation, locationsAreEqual } from \"history\";\nimport invariant from \"tiny-invariant\";\n\nimport Lifecycle from \"./Lifecycle.js\";\nimport RouterContext from \"./RouterContext.js\";\nimport generatePath from \"./generatePath.js\";\n\n/**\n * The public API for navigating programmatically with a component.\n */\nfunction Redirect({ computedMatch, to, push = false }) {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const { history, staticContext } = context;\n\n const method = push ? history.push : history.replace;\n const location = createLocation(\n computedMatch\n ? typeof to === \"string\"\n ? generatePath(to, computedMatch.params)\n : {\n ...to,\n pathname: generatePath(to.pathname, computedMatch.params)\n }\n : to\n );\n\n // When rendering in a static context,\n // set the new location immediately.\n if (staticContext) {\n method(location);\n return null;\n }\n\n return (\n {\n method(location);\n }}\n onUpdate={(self, prevProps) => {\n const prevLocation = createLocation(prevProps.to);\n if (\n !locationsAreEqual(prevLocation, {\n ...location,\n key: prevLocation.key\n })\n ) {\n method(location);\n }\n }}\n to={to}\n />\n );\n }}\n \n );\n}\n\nif (__DEV__) {\n Redirect.propTypes = {\n push: PropTypes.bool,\n from: PropTypes.string,\n to: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired\n };\n}\n\nexport default Redirect;\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.js\";\nimport matchPath from \"./matchPath.js\";\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.js\";\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.js\";\nimport matchPath from \"./matchPath.js\";\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 PropTypes from \"prop-types\";\nimport hoistStatics from \"hoist-non-react-statics\";\nimport invariant from \"tiny-invariant\";\n\nimport RouterContext from \"./RouterContext.js\";\n\n/**\n * A public higher-order component to access the imperative API\n */\nfunction withRouter(Component) {\n const displayName = `withRouter(${Component.displayName || Component.name})`;\n const C = props => {\n const { wrappedComponentRef, ...remainingProps } = props;\n\n return (\n \n {context => {\n invariant(\n context,\n `You should not use <${displayName} /> outside a `\n );\n return (\n \n );\n }}\n \n );\n };\n\n C.displayName = displayName;\n C.WrappedComponent = Component;\n\n if (__DEV__) {\n C.propTypes = {\n wrappedComponentRef: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.object\n ])\n };\n }\n\n return hoistStatics(C, Component);\n}\n\nexport default withRouter;\n","import React from \"react\";\nimport invariant from \"tiny-invariant\";\n\nimport Context from \"./RouterContext.js\";\nimport HistoryContext from \"./HistoryContext.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(HistoryContext);\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 const location = useLocation();\n const match = useContext(Context).match;\n\n return path ? matchPath(location.pathname, path) : match;\n}\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 {\n resolveToLocation,\n normalizeToLocation\n} from \"./utils/locationUtils.js\";\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 /* eslint-disable-next-line jsx-a11y/anchor-has-content */\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.js\";\nimport {\n resolveToLocation,\n normalizeToLocation\n} from \"./utils/locationUtils.js\";\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 sensitive,\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 sensitive,\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 sensitive: PropTypes.bool,\n strict: PropTypes.bool,\n style: PropTypes.object\n };\n}\n\nexport default NavLink;\n","import { isValidElement } from 'react';\n\nimport { Id } from '../types';\n\nexport function isNum(v: any): v is Number {\n return typeof v === 'number' && !isNaN(v);\n}\n\nexport function isBool(v: any): v is Boolean {\n return typeof v === 'boolean';\n}\n\nexport function isStr(v: any): v is String {\n return typeof v === 'string';\n}\n\nexport function isFn(v: any): v is Function {\n return typeof v === 'function';\n}\n\nexport function parseClassName(v: any) {\n return isStr(v) || isFn(v) ? v : null;\n}\n\nexport function isToastIdValid(toastId?: Id) {\n return toastId === 0 || toastId;\n}\n\nexport function getAutoCloseDelay(\n toastAutoClose?: false | number,\n containerAutoClose?: false | number\n) {\n return toastAutoClose === false ||\n (isNum(toastAutoClose) && toastAutoClose > 0)\n ? toastAutoClose\n : containerAutoClose;\n}\n\nexport const canUseDom = !!(\n typeof window !== 'undefined' &&\n window.document &&\n window.document.createElement\n);\n\nexport function canBeRendered(content: T): boolean {\n return (\n isValidElement(content) || isStr(content) || isFn(content) || isNum(content)\n );\n}\n","import { ToastPosition, TypeOptions } from '../types';\n\ntype KeyOfPosition =\n | 'TOP_LEFT'\n | 'TOP_RIGHT'\n | 'TOP_CENTER'\n | 'BOTTOM_LEFT'\n | 'BOTTOM_RIGHT'\n | 'BOTTOM_CENTER';\n\ntype KeyOfType = 'INFO' | 'SUCCESS' | 'WARNING' | 'ERROR' | 'DEFAULT';\n\nexport const POSITION: { [key in KeyOfPosition]: ToastPosition } = {\n TOP_LEFT: 'top-left',\n TOP_RIGHT: 'top-right',\n TOP_CENTER: 'top-center',\n BOTTOM_LEFT: 'bottom-left',\n BOTTOM_RIGHT: 'bottom-right',\n BOTTOM_CENTER: 'bottom-center'\n};\n\nexport const TYPE: { [key in KeyOfType]: TypeOptions } = {\n INFO: 'info',\n SUCCESS: 'success',\n WARNING: 'warning',\n ERROR: 'error',\n DEFAULT: 'default'\n};\n\nexport const enum Default {\n COLLAPSE_DURATION = 300,\n DEBOUNCE_DURATION = 50,\n CSS_NAMESPACE = 'Toastify',\n DRAGGABLE_PERCENT = 80\n}\n\nexport const enum Direction {\n X = 'x',\n Y = 'y'\n}\n\nexport const enum SyntheticEvent {\n ENTRANCE_ANIMATION_END = 'd'\n}\n","import React, { useEffect, useLayoutEffect, useRef } from 'react';\n\nimport { collapseToast } from './collapseToast';\nimport { Default, SyntheticEvent } from './constant';\n\nimport { ToastTransitionProps } from '../types';\n\nexport interface CSSTransitionProps {\n /**\n * Css class to apply when toast enter\n */\n enter: string;\n\n /**\n * Css class to apply when toast leave\n */\n exit: string;\n\n /**\n * Append current toast position to the classname.\n * If multiple classes are provided, only the last one will get the position\n * For instance `myclass--top-center`...\n * `Default: false`\n */\n appendPosition?: boolean;\n\n /**\n * Collapse toast smoothly when exit animation end\n * `Default: true`\n */\n collapse?: boolean;\n\n /**\n * Collapse transition duration\n * `Default: 300`\n */\n collapseDuration?: number;\n}\n\nconst enum AnimationStep {\n Enter,\n Exit\n}\n\n/**\n * Css animation that just work.\n * You could use animate.css for instance\n *\n *\n * ```\n * cssTransition({\n * enter: \"animate__animated animate__bounceIn\",\n * exit: \"animate__animated animate__bounceOut\"\n * })\n * ```\n *\n */\nexport function cssTransition({\n enter,\n exit,\n appendPosition = false,\n collapse = true,\n collapseDuration = Default.COLLAPSE_DURATION\n}: CSSTransitionProps) {\n return function ToastTransition({\n children,\n position,\n preventExitTransition,\n done,\n nodeRef,\n isIn\n }: ToastTransitionProps) {\n const enterClassName = appendPosition ? `${enter}--${position}` : enter;\n const exitClassName = appendPosition ? `${exit}--${position}` : exit;\n const baseClassName = useRef();\n const animationStep = useRef(AnimationStep.Enter);\n\n useLayoutEffect(() => {\n onEnter();\n }, []);\n\n useEffect(() => {\n if (!isIn) preventExitTransition ? onExited() : onExit();\n }, [isIn]);\n\n function onEnter() {\n const node = nodeRef.current!;\n baseClassName.current = node.className;\n node.className += ` ${enterClassName}`;\n node.addEventListener('animationend', onEntered);\n node.addEventListener('animationcancel', onEntered);\n }\n\n function onEntered(e: AnimationEvent) {\n if (e.target !== nodeRef.current) return;\n\n const node = nodeRef.current!;\n node.dispatchEvent(new Event(SyntheticEvent.ENTRANCE_ANIMATION_END));\n node.removeEventListener('animationend', onEntered);\n node.removeEventListener('animationcancel', onEntered);\n if (animationStep.current === AnimationStep.Enter) {\n node.className = baseClassName.current!;\n }\n }\n\n function onExit() {\n animationStep.current = AnimationStep.Exit;\n const node = nodeRef.current!;\n\n node.className += ` ${exitClassName}`;\n node.addEventListener('animationend', onExited);\n }\n\n function onExited() {\n const node = nodeRef.current!;\n\n node.removeEventListener('animationend', onExited);\n collapse ? collapseToast(node, done, collapseDuration) : done();\n }\n\n return <>{children};\n };\n}\n","import { Default } from './constant';\n\n/**\n * Used to collapse toast after exit animation\n */\nexport function collapseToast(\n node: HTMLElement,\n done: () => void,\n duration = Default.COLLAPSE_DURATION\n) {\n const { scrollHeight, style } = node;\n\n requestAnimationFrame(() => {\n style.minHeight = 'initial';\n style.height = scrollHeight + 'px';\n style.transition = `all ${duration}ms`;\n\n requestAnimationFrame(() => {\n style.height = '0';\n style.padding = '0';\n style.margin = '0';\n setTimeout(done, duration as number);\n });\n });\n}\n","import {\n Id,\n ToastContent,\n ClearWaitingQueueParams,\n NotValidatedToastProps\n} from '../types';\nimport { ContainerInstance } from '../hooks';\n\nexport const enum Event {\n Show,\n Clear,\n DidMount,\n WillUnmount,\n Change,\n ClearWaitingQueue\n}\n\ntype OnShowCallback = (\n content: ToastContent,\n options: NotValidatedToastProps\n) => void;\ntype OnClearCallback = (id?: Id) => void;\ntype OnClearWaitingQueue = (params: ClearWaitingQueueParams) => void;\ntype OnDidMountCallback = (containerInstance: ContainerInstance) => void;\ntype OnWillUnmountCallback = OnDidMountCallback;\nexport type OnChangeCallback = (\n toast: number,\n containerId?: number | string\n) => void;\ntype Callback =\n | OnShowCallback\n | OnClearCallback\n | OnClearWaitingQueue\n | OnDidMountCallback\n | OnWillUnmountCallback\n | OnChangeCallback;\ntype TimeoutId = ReturnType;\n\nexport interface EventManager {\n list: Map;\n emitQueue: Map;\n on(event: Event.Show, callback: OnShowCallback): EventManager;\n on(event: Event.Clear, callback: OnClearCallback): EventManager;\n on(\n event: Event.ClearWaitingQueue,\n callback: OnClearWaitingQueue\n ): EventManager;\n on(event: Event.DidMount, callback: OnDidMountCallback): EventManager;\n on(event: Event.WillUnmount, callback: OnWillUnmountCallback): EventManager;\n on(event: Event.Change, callback: OnChangeCallback): EventManager;\n off(event: Event, callback?: Callback): EventManager;\n cancelEmit(event: Event): EventManager;\n emit(\n event: Event.Show,\n content: React.ReactNode,\n options: NotValidatedToastProps\n ): void;\n emit(event: Event.Clear, id?: string | number): void;\n emit(event: Event.ClearWaitingQueue, params: ClearWaitingQueueParams): void;\n emit(event: Event.DidMount, containerInstance: ContainerInstance): void;\n emit(event: Event.WillUnmount, containerInstance: ContainerInstance): void;\n emit(event: Event.Change, toast: number, containerId?: number | string): void;\n}\n\nexport const eventManager: EventManager = {\n list: new Map(),\n emitQueue: new Map(),\n\n on(event: Event, callback: Callback) {\n this.list.has(event) || this.list.set(event, []);\n this.list.get(event)!.push(callback);\n return this;\n },\n\n off(event, callback) {\n if (callback) {\n const cb = this.list.get(event)!.filter(cb => cb !== callback);\n this.list.set(event, cb);\n return this;\n }\n this.list.delete(event);\n return this;\n },\n\n cancelEmit(event) {\n const timers = this.emitQueue.get(event);\n if (timers) {\n timers.forEach(clearTimeout);\n this.emitQueue.delete(event);\n }\n\n return this;\n },\n\n /**\n * Enqueue the event at the end of the call stack\n * Doing so let the user call toast as follow:\n * toast('1')\n * toast('2')\n * toast('3')\n * Without setTimemout the code above will not work\n */\n emit(event: Event, ...args: any[]) {\n this.list.has(event) &&\n this.list.get(event)!.forEach((callback: Callback) => {\n const timer: TimeoutId = setTimeout(() => {\n // @ts-ignore\n callback(...args);\n }, 0);\n\n this.emitQueue.has(event) || this.emitQueue.set(event, []);\n this.emitQueue.get(event)!.push(timer);\n });\n }\n};\n","import {\n useEffect,\n useRef,\n useReducer,\n cloneElement,\n isValidElement,\n useState\n} from 'react';\nimport {\n parseClassName,\n canBeRendered,\n isBool,\n isFn,\n isNum,\n isStr,\n isToastIdValid,\n getAutoCloseDelay\n} from '../utils';\nimport { eventManager, Event } from '../core/eventManager';\n\nimport {\n Id,\n ToastContainerProps,\n ToastProps,\n ToastContent,\n Toast,\n ToastPosition,\n ClearWaitingQueueParams,\n NotValidatedToastProps,\n ToastTransition\n} from '../types';\n\ninterface QueuedToast {\n toastContent: ToastContent;\n toastProps: ToastProps;\n staleId?: Id;\n}\n\nexport interface ContainerInstance {\n toastKey: number;\n displayedToast: number;\n props: ToastContainerProps;\n containerId?: Id | null;\n isToastActive: (toastId: Id) => boolean;\n getToast: (id: Id) => Toast | null | undefined;\n queue: QueuedToast[];\n count: number;\n}\n\nexport function useToastContainer(props: ToastContainerProps) {\n const [, forceUpdate] = useReducer(x => x + 1, 0);\n const [toastIds, setToastIds] = useState([]);\n const containerRef = useRef(null);\n const toastToRender = useRef(new Map()).current;\n const isToastActive = (id: Id) => toastIds.indexOf(id) !== -1;\n const instance = useRef({\n toastKey: 1,\n displayedToast: 0,\n count: 0,\n queue: [],\n props,\n containerId: null,\n isToastActive,\n getToast: id => toastToRender.get(id)\n }).current;\n\n useEffect(() => {\n instance.containerId = props.containerId;\n eventManager\n .cancelEmit(Event.WillUnmount)\n .on(Event.Show, buildToast)\n .on(Event.Clear, toastId => containerRef.current && removeToast(toastId))\n .on(Event.ClearWaitingQueue, clearWaitingQueue)\n .emit(Event.DidMount, instance);\n\n return () => eventManager.emit(Event.WillUnmount, instance);\n }, []);\n\n useEffect(() => {\n instance.isToastActive = isToastActive;\n instance.displayedToast = toastIds.length;\n eventManager.emit(Event.Change, toastIds.length, props.containerId);\n }, [toastIds]);\n\n useEffect(() => {\n instance.props = props;\n });\n\n function clearWaitingQueue({ containerId }: ClearWaitingQueueParams) {\n const { limit } = instance.props;\n if (limit && (!containerId || instance.containerId === containerId)) {\n instance.count -= instance.queue.length;\n instance.queue = [];\n }\n }\n\n function removeToast(toastId?: Id) {\n setToastIds(state =>\n isToastIdValid(toastId) ? state.filter(id => id !== toastId) : []\n );\n }\n\n function dequeueToast() {\n const {\n toastContent,\n toastProps,\n staleId\n } = instance.queue.shift() as QueuedToast;\n appendToast(toastContent, toastProps, staleId);\n }\n\n /**\n * check if a container is attached to the dom\n * check for multi-container, build only if associated\n * check for duplicate toastId if no update\n */\n function isNotValid(options: NotValidatedToastProps) {\n return (\n !containerRef.current ||\n (instance.props.enableMultiContainer &&\n options.containerId !== instance.props.containerId) ||\n (toastToRender.has(options.toastId) && options.updateId == null)\n );\n }\n\n // this function and all the function called inside needs to rely on refs\n function buildToast(\n content: ToastContent,\n { delay, staleId, ...options }: NotValidatedToastProps\n ) {\n if (!canBeRendered(content) || isNotValid(options)) return;\n\n const { toastId, updateId, data } = options;\n const { props } = instance;\n const closeToast = () => removeToast(toastId);\n const isNotAnUpdate = updateId == null;\n\n if (isNotAnUpdate) instance.count++;\n\n const toastProps: ToastProps = {\n toastId,\n updateId,\n isLoading: options.isLoading,\n theme: options.theme || props.theme!,\n icon: options.icon != null ? options.icon : props.icon,\n isIn: false,\n key: options.key || instance.toastKey++,\n type: options.type!,\n closeToast: closeToast,\n closeButton: options.closeButton,\n rtl: props.rtl,\n position: options.position || (props.position as ToastPosition),\n transition: options.transition || (props.transition as ToastTransition),\n className: parseClassName(options.className || props.toastClassName),\n bodyClassName: parseClassName(\n options.bodyClassName || props.bodyClassName\n ),\n style: options.style || props.toastStyle,\n bodyStyle: options.bodyStyle || props.bodyStyle,\n onClick: options.onClick || props.onClick,\n pauseOnHover: isBool(options.pauseOnHover)\n ? options.pauseOnHover\n : props.pauseOnHover,\n pauseOnFocusLoss: isBool(options.pauseOnFocusLoss)\n ? options.pauseOnFocusLoss\n : props.pauseOnFocusLoss,\n draggable: isBool(options.draggable)\n ? options.draggable\n : props.draggable,\n draggablePercent:\n options.draggablePercent || (props.draggablePercent as number),\n draggableDirection:\n options.draggableDirection || props.draggableDirection,\n closeOnClick: isBool(options.closeOnClick)\n ? options.closeOnClick\n : props.closeOnClick,\n progressClassName: parseClassName(\n options.progressClassName || props.progressClassName\n ),\n progressStyle: options.progressStyle || props.progressStyle,\n autoClose: options.isLoading\n ? false\n : getAutoCloseDelay(options.autoClose, props.autoClose),\n hideProgressBar: isBool(options.hideProgressBar)\n ? options.hideProgressBar\n : props.hideProgressBar,\n progress: options.progress,\n role: options.role || props.role,\n deleteToast() {\n toastToRender.delete(toastId);\n const queueLen = instance.queue.length;\n instance.count = isToastIdValid(toastId)\n ? instance.count - 1\n : instance.count - instance.displayedToast;\n\n if (instance.count < 0) instance.count = 0;\n\n if (queueLen > 0) {\n const freeSlot = isToastIdValid(toastId) ? 1 : instance.props.limit!;\n\n if (queueLen === 1 || freeSlot === 1) {\n instance.displayedToast++;\n dequeueToast();\n } else {\n const toDequeue = freeSlot > queueLen ? queueLen : freeSlot;\n instance.displayedToast = toDequeue;\n\n for (let i = 0; i < toDequeue; i++) dequeueToast();\n }\n } else {\n forceUpdate();\n }\n }\n };\n\n if (isFn(options.onOpen)) toastProps.onOpen = options.onOpen;\n if (isFn(options.onClose)) toastProps.onClose = options.onClose;\n\n toastProps.closeButton = props.closeButton;\n\n if (options.closeButton === false || canBeRendered(options.closeButton)) {\n toastProps.closeButton = options.closeButton;\n } else if (options.closeButton === true) {\n toastProps.closeButton = canBeRendered(props.closeButton)\n ? props.closeButton\n : true;\n }\n\n let toastContent = content;\n\n if (isValidElement(content) && !isStr(content.type)) {\n toastContent = cloneElement(content, {\n closeToast,\n toastProps,\n data\n });\n } else if (isFn(content)) {\n toastContent = content({ closeToast, toastProps, data });\n }\n\n // not handling limit + delay by design. Waiting for user feedback first\n if (\n props.limit &&\n props.limit > 0 &&\n instance.count > props.limit &&\n isNotAnUpdate\n ) {\n instance.queue.push({ toastContent, toastProps, staleId });\n } else if (isNum(delay) && (delay as number) > 0) {\n setTimeout(() => {\n appendToast(toastContent, toastProps, staleId);\n }, delay);\n } else {\n appendToast(toastContent, toastProps, staleId);\n }\n }\n\n function appendToast(\n content: ToastContent,\n toastProps: ToastProps,\n staleId?: Id\n ) {\n const { toastId } = toastProps;\n\n if (staleId) toastToRender.delete(staleId);\n\n toastToRender.set(toastId, {\n content,\n props: toastProps\n });\n setToastIds(state => [...state, toastId].filter(id => id !== staleId));\n }\n\n function getToastToRender(\n cb: (position: ToastPosition, toastList: Toast[]) => T\n ) {\n const toRender = new Map();\n const collection = Array.from(toastToRender.values());\n\n if (props.newestOnTop) collection.reverse();\n\n collection.forEach(toast => {\n const { position } = toast.props;\n toRender.has(position) || toRender.set(position, []);\n toRender.get(position)!.push(toast);\n });\n\n return Array.from(toRender, p => cb(p[0], p[1]));\n }\n\n return {\n getToastToRender,\n containerRef,\n isToastActive\n };\n}\n","import {\n useState,\n useRef,\n useEffect,\n isValidElement,\n DOMAttributes\n} from 'react';\n\nimport { isFn, Default, Direction, SyntheticEvent } from '../utils';\nimport { ToastProps } from '../types';\n\ninterface Draggable {\n start: number;\n x: number;\n y: number;\n delta: number;\n removalDistance: number;\n canCloseOnClick: boolean;\n canDrag: boolean;\n boundingRect: DOMRect | null;\n didMove: boolean;\n}\n\ntype DragEvent = MouseEvent & TouchEvent;\n\nfunction getX(e: DragEvent) {\n return e.targetTouches && e.targetTouches.length >= 1\n ? e.targetTouches[0].clientX\n : e.clientX;\n}\n\nfunction getY(e: DragEvent) {\n return e.targetTouches && e.targetTouches.length >= 1\n ? e.targetTouches[0].clientY\n : e.clientY;\n}\n\nexport function useToast(props: ToastProps) {\n const [isRunning, setIsRunning] = useState(false);\n const [preventExitTransition, setPreventExitTransition] = useState(false);\n const toastRef = useRef(null);\n const drag = useRef({\n start: 0,\n x: 0,\n y: 0,\n delta: 0,\n removalDistance: 0,\n canCloseOnClick: true,\n canDrag: false,\n boundingRect: null,\n didMove: false\n }).current;\n const syncProps = useRef(props);\n const { autoClose, pauseOnHover, closeToast, onClick, closeOnClick } = props;\n\n useEffect(() => {\n syncProps.current = props;\n });\n\n useEffect(() => {\n if (toastRef.current)\n toastRef.current.addEventListener(\n SyntheticEvent.ENTRANCE_ANIMATION_END,\n playToast,\n { once: true }\n );\n\n if (isFn(props.onOpen))\n props.onOpen(isValidElement(props.children) && props.children.props);\n\n return () => {\n const props = syncProps.current;\n if (isFn(props.onClose))\n props.onClose(isValidElement(props.children) && props.children.props);\n };\n }, []);\n\n useEffect(() => {\n props.pauseOnFocusLoss && bindFocusEvents();\n return () => {\n props.pauseOnFocusLoss && unbindFocusEvents();\n };\n }, [props.pauseOnFocusLoss]);\n\n function onDragStart(\n e: React.MouseEvent | React.TouchEvent\n ) {\n if (props.draggable) {\n bindDragEvents();\n const toast = toastRef.current!;\n drag.canCloseOnClick = true;\n drag.canDrag = true;\n drag.boundingRect = toast.getBoundingClientRect();\n toast.style.transition = '';\n drag.x = getX(e.nativeEvent as DragEvent);\n drag.y = getY(e.nativeEvent as DragEvent);\n\n if (props.draggableDirection === Direction.X) {\n drag.start = drag.x;\n drag.removalDistance =\n toast.offsetWidth * (props.draggablePercent / 100);\n } else {\n drag.start = drag.y;\n drag.removalDistance =\n toast.offsetHeight *\n (props.draggablePercent === Default.DRAGGABLE_PERCENT\n ? props.draggablePercent * 1.5\n : props.draggablePercent / 100);\n }\n }\n }\n\n function onDragTransitionEnd() {\n if (drag.boundingRect) {\n const { top, bottom, left, right } = drag.boundingRect;\n\n if (\n props.pauseOnHover &&\n drag.x >= left &&\n drag.x <= right &&\n drag.y >= top &&\n drag.y <= bottom\n ) {\n pauseToast();\n } else {\n playToast();\n }\n }\n }\n\n function playToast() {\n setIsRunning(true);\n }\n\n function pauseToast() {\n setIsRunning(false);\n }\n\n function bindFocusEvents() {\n if (!document.hasFocus()) pauseToast();\n\n window.addEventListener('focus', playToast);\n window.addEventListener('blur', pauseToast);\n }\n\n function unbindFocusEvents() {\n window.removeEventListener('focus', playToast);\n window.removeEventListener('blur', pauseToast);\n }\n\n function bindDragEvents() {\n drag.didMove = false;\n document.addEventListener('mousemove', onDragMove);\n document.addEventListener('mouseup', onDragEnd);\n\n document.addEventListener('touchmove', onDragMove);\n document.addEventListener('touchend', onDragEnd);\n }\n\n function unbindDragEvents() {\n document.removeEventListener('mousemove', onDragMove);\n document.removeEventListener('mouseup', onDragEnd);\n\n document.removeEventListener('touchmove', onDragMove);\n document.removeEventListener('touchend', onDragEnd);\n }\n\n function onDragMove(e: MouseEvent | TouchEvent) {\n const toast = toastRef.current!;\n if (drag.canDrag && toast) {\n drag.didMove = true;\n if (isRunning) pauseToast();\n drag.x = getX(e as DragEvent);\n drag.y = getY(e as DragEvent);\n if (props.draggableDirection === Direction.X) {\n drag.delta = drag.x - drag.start;\n } else {\n drag.delta = drag.y - drag.start;\n }\n\n // prevent false positif during a toast click\n if (drag.start !== drag.x) drag.canCloseOnClick = false;\n toast.style.transform = `translate${props.draggableDirection}(${drag.delta}px)`;\n toast.style.opacity = `${1 -\n Math.abs(drag.delta / drag.removalDistance)}`;\n }\n }\n\n function onDragEnd() {\n unbindDragEvents();\n const toast = toastRef.current!;\n if (drag.canDrag && drag.didMove && toast) {\n drag.canDrag = false;\n if (Math.abs(drag.delta) > drag.removalDistance) {\n setPreventExitTransition(true);\n props.closeToast();\n return;\n }\n toast.style.transition = 'transform 0.2s, opacity 0.2s';\n toast.style.transform = `translate${props.draggableDirection}(0)`;\n toast.style.opacity = '1';\n }\n }\n\n const eventHandlers: DOMAttributes = {\n onMouseDown: onDragStart,\n onTouchStart: onDragStart,\n onMouseUp: onDragTransitionEnd,\n onTouchEnd: onDragTransitionEnd\n };\n\n if (autoClose && pauseOnHover) {\n eventHandlers.onMouseEnter = pauseToast;\n eventHandlers.onMouseLeave = playToast;\n }\n\n // prevent toast from closing when user drags the toast\n if (closeOnClick) {\n eventHandlers.onClick = (e: React.MouseEvent) => {\n onClick && onClick(e);\n drag.canCloseOnClick && closeToast();\n };\n }\n\n return {\n playToast,\n pauseToast,\n isRunning,\n preventExitTransition,\n toastRef,\n eventHandlers\n };\n}\n","import * as React from 'react';\nimport { Default } from '../utils';\nimport { Theme, TypeOptions } from '../types';\n\nexport interface CloseButtonProps {\n closeToast: (e: React.MouseEvent) => void;\n type: TypeOptions;\n ariaLabel?: string;\n theme: Theme;\n}\n\nexport function CloseButton({\n closeToast,\n theme,\n ariaLabel = 'close'\n}: CloseButtonProps) {\n return (\n {\n e.stopPropagation();\n closeToast(e);\n }}\n aria-label={ariaLabel}\n >\n \n \n \n \n );\n}\n","import * as React from 'react';\nimport cx from 'clsx';\n\nimport { TYPE, Default, isFn } from './../utils';\nimport { TypeOptions, ToastClassName, Theme } from '../types';\n\nexport interface ProgressBarProps {\n /**\n * The animation delay which determine when to close the toast\n */\n delay: number;\n\n /**\n * Whether or not the animation is running or paused\n */\n isRunning: boolean;\n\n /**\n * Func to close the current toast\n */\n closeToast: () => void;\n\n /**\n * Optional type : info, success ...\n */\n type: TypeOptions;\n\n /**\n * The theme that is currently used\n */\n theme: Theme;\n\n /**\n * Hide or not the progress bar\n */\n hide?: boolean;\n\n /**\n * Optionnal className\n */\n className?: ToastClassName;\n\n /**\n * Optionnal inline style\n */\n style?: React.CSSProperties;\n\n /**\n * Tell wether or not controlled progress bar is used\n */\n controlledProgress?: boolean;\n\n /**\n * Controlled progress value\n */\n progress?: number | string;\n\n /**\n * Support rtl content\n */\n rtl?: boolean;\n\n /**\n * Tell if the component is visible on screen or not\n */\n isIn?: boolean;\n}\n\nexport function ProgressBar({\n delay,\n isRunning,\n closeToast,\n type,\n hide,\n className,\n style: userStyle,\n controlledProgress,\n progress,\n rtl,\n isIn,\n theme\n}: ProgressBarProps) {\n const style: React.CSSProperties = {\n ...userStyle,\n animationDuration: `${delay}ms`,\n animationPlayState: isRunning ? 'running' : 'paused',\n opacity: hide ? 0 : 1\n };\n\n if (controlledProgress) style.transform = `scaleX(${progress})`;\n const defaultClassName = cx(\n `${Default.CSS_NAMESPACE}__progress-bar`,\n controlledProgress\n ? `${Default.CSS_NAMESPACE}__progress-bar--controlled`\n : `${Default.CSS_NAMESPACE}__progress-bar--animated`,\n `${Default.CSS_NAMESPACE}__progress-bar-theme--${theme}`,\n `${Default.CSS_NAMESPACE}__progress-bar--${type}`,\n {\n [`${Default.CSS_NAMESPACE}__progress-bar--rtl`]: rtl\n }\n );\n const classNames = isFn(className)\n ? className({\n rtl,\n type,\n defaultClassName\n })\n : cx(defaultClassName, className);\n\n // 🧐 controlledProgress is derived from progress\n // so if controlledProgress is set\n // it means that this is also the case for progress\n const animationEvent = {\n [controlledProgress && progress! >= 1\n ? 'onTransitionEnd'\n : 'onAnimationEnd']:\n controlledProgress && progress! < 1\n ? null\n : () => {\n isIn && closeToast();\n }\n };\n\n // TODO: add aria-valuenow, aria-valuemax, aria-valuemin\n\n return (\n \n );\n}\n\nProgressBar.defaultProps = {\n type: TYPE.DEFAULT,\n hide: false\n};\n","import * as React from 'react';\n\nimport { Theme, TypeOptions } from '../types';\nimport { Default } from '../utils';\n\n/**\n * Used when providing custom icon\n */\nexport interface IconProps {\n theme: Theme;\n type: TypeOptions;\n}\n\nexport type BuiltInIconProps = React.SVGProps & IconProps;\n\nconst Svg: React.FC = ({ theme, type, ...rest }) => (\n \n);\n\nfunction Warning(props: BuiltInIconProps) {\n return (\n \n \n \n );\n}\n\nfunction Info(props: BuiltInIconProps) {\n return (\n \n \n \n );\n}\n\nfunction Success(props: BuiltInIconProps) {\n return (\n \n \n \n );\n}\n\nfunction Error(props: BuiltInIconProps) {\n return (\n \n \n \n );\n}\n\nfunction Spinner() {\n return
;\n}\n\nexport const Icons = {\n info: Info,\n warning: Warning,\n success: Success,\n error: Error,\n spinner: Spinner\n};\n","import * as React from 'react';\nimport cx from 'clsx';\n\nimport { ProgressBar } from './ProgressBar';\nimport { Icons } from './Icons';\nimport { ToastProps } from '../types';\nimport { Default, isFn, isStr } from '../utils';\nimport { useToast } from '../hooks';\n\nexport const Toast: React.FC = props => {\n const {\n isRunning,\n preventExitTransition,\n toastRef,\n eventHandlers\n } = useToast(props);\n const {\n closeButton,\n children,\n autoClose,\n onClick,\n type,\n hideProgressBar,\n closeToast,\n transition: Transition,\n position,\n className,\n style,\n bodyClassName,\n bodyStyle,\n progressClassName,\n progressStyle,\n updateId,\n role,\n progress,\n rtl,\n toastId,\n deleteToast,\n isIn,\n isLoading,\n icon,\n theme\n } = props;\n const defaultClassName = cx(\n `${Default.CSS_NAMESPACE}__toast`,\n `${Default.CSS_NAMESPACE}__toast-theme--${theme}`,\n `${Default.CSS_NAMESPACE}__toast--${type}`,\n {\n [`${Default.CSS_NAMESPACE}__toast--rtl`]: rtl\n }\n );\n const cssClasses = isFn(className)\n ? className({\n rtl,\n position,\n type,\n defaultClassName\n })\n : cx(defaultClassName, className);\n const isProgressControlled = !!progress;\n const maybeIcon = Icons[type as keyof typeof Icons];\n const iconProps = { theme, type };\n let Icon: React.ReactNode = maybeIcon && maybeIcon(iconProps);\n\n if (icon === false) {\n Icon = void 0;\n } else if (isFn(icon)) {\n Icon = icon(iconProps);\n } else if (React.isValidElement(icon)) {\n Icon = React.cloneElement(icon, iconProps);\n } else if (isStr(icon)) {\n Icon = icon;\n } else if (isLoading) {\n Icon = Icons.spinner();\n }\n\n function renderCloseButton(closeButton: any) {\n if (!closeButton) return;\n\n const props = { closeToast, type, theme };\n\n if (isFn(closeButton)) return closeButton(props);\n\n if (React.isValidElement(closeButton))\n return React.cloneElement(closeButton, props);\n }\n\n return (\n \n \n \n {Icon && (\n \n {Icon}\n
\n )}\n
{children}
\n \n {renderCloseButton(closeButton)}\n {(autoClose || isProgressControlled) && (\n \n )}\n \n \n );\n};\n","import { Default, cssTransition } from '../utils';\n\nconst Bounce = cssTransition({\n enter: `${Default.CSS_NAMESPACE}--animate ${Default.CSS_NAMESPACE}__bounce-enter`,\n exit: `${Default.CSS_NAMESPACE}--animate ${Default.CSS_NAMESPACE}__bounce-exit`,\n appendPosition: true\n});\n\nconst Slide = cssTransition({\n enter: `${Default.CSS_NAMESPACE}--animate ${Default.CSS_NAMESPACE}__slide-enter`,\n exit: `${Default.CSS_NAMESPACE}--animate ${Default.CSS_NAMESPACE}__slide-exit`,\n appendPosition: true\n});\n\nconst Zoom = cssTransition({\n enter: `${Default.CSS_NAMESPACE}--animate ${Default.CSS_NAMESPACE}__zoom-enter`,\n exit: `${Default.CSS_NAMESPACE}--animate ${Default.CSS_NAMESPACE}__zoom-exit`\n});\n\nconst Flip = cssTransition({\n enter: `${Default.CSS_NAMESPACE}--animate ${Default.CSS_NAMESPACE}__flip-enter`,\n exit: `${Default.CSS_NAMESPACE}--animate ${Default.CSS_NAMESPACE}__flip-exit`\n});\n\nexport { Bounce, Slide, Zoom, Flip };\n","import * as React from 'react';\nimport cx from 'clsx';\n\nimport { Toast } from './Toast';\nimport { CloseButton } from './CloseButton';\nimport { Bounce } from './Transitions';\nimport { POSITION, Direction, Default, parseClassName, isFn } from '../utils';\nimport { useToastContainer } from '../hooks';\nimport { ToastContainerProps, ToastPosition } from '../types';\n\nexport const ToastContainer: React.FC = props => {\n const { getToastToRender, containerRef, isToastActive } = useToastContainer(\n props\n );\n const { className, style, rtl, containerId } = props;\n\n function getClassName(position: ToastPosition) {\n const defaultClassName = cx(\n `${Default.CSS_NAMESPACE}__toast-container`,\n `${Default.CSS_NAMESPACE}__toast-container--${position}`,\n { [`${Default.CSS_NAMESPACE}__toast-container--rtl`]: rtl }\n );\n return isFn(className)\n ? className({\n position,\n rtl,\n defaultClassName\n })\n : cx(defaultClassName, parseClassName(className));\n }\n\n return (\n \n {getToastToRender((position, toastList) => {\n const containerStyle: React.CSSProperties = !toastList.length\n ? { ...style, pointerEvents: 'none' }\n : { ...style };\n\n return (\n \n {toastList.map(({ content, props: toastProps }) => {\n return (\n \n {content}\n \n );\n })}\n \n );\n })}\n \n );\n};\n\nToastContainer.defaultProps = {\n position: POSITION.TOP_RIGHT as ToastPosition,\n transition: Bounce,\n rtl: false,\n autoClose: 5000,\n hideProgressBar: false,\n closeButton: CloseButton,\n pauseOnHover: true,\n pauseOnFocusLoss: true,\n closeOnClick: true,\n newestOnTop: false,\n draggable: true,\n draggablePercent: Default.DRAGGABLE_PERCENT as number,\n draggableDirection: Direction.X,\n role: 'alert',\n theme: 'light'\n};\n","import * as React from 'react';\nimport { render } from 'react-dom';\n\nimport { POSITION, TYPE, canUseDom, isStr, isNum, isFn } from '../utils';\nimport { eventManager, OnChangeCallback, Event } from './eventManager';\nimport {\n ToastContent,\n ToastOptions,\n ToastProps,\n Id,\n ToastContainerProps,\n UpdateOptions,\n ClearWaitingQueueParams,\n NotValidatedToastProps,\n TypeOptions\n} from '../types';\nimport { ContainerInstance } from '../hooks';\nimport { ToastContainer } from '../components';\n\ninterface EnqueuedToast {\n content: ToastContent;\n options: NotValidatedToastProps;\n}\n\nlet containers = new Map();\nlet latestInstance: ContainerInstance | Id;\nlet containerDomNode: HTMLElement;\nlet containerConfig: ToastContainerProps;\nlet queue: EnqueuedToast[] = [];\nlet lazy = false;\n\n/**\n * Get the toast by id, given it's in the DOM, otherwise returns null\n */\nfunction getToast(toastId: Id, { containerId }: ToastOptions) {\n const container = containers.get(containerId || latestInstance);\n if (!container) return null;\n\n return container.getToast(toastId);\n}\n\n/**\n * Generate a random toastId\n */\nfunction generateToastId() {\n return Math.random()\n .toString(36)\n .substring(2, 9);\n}\n\n/**\n * Generate a toastId or use the one provided\n */\nfunction getToastId(options?: ToastOptions) {\n if (options && (isStr(options.toastId) || isNum(options.toastId))) {\n return options.toastId;\n }\n\n return generateToastId();\n}\n\n/**\n * If the container is not mounted, the toast is enqueued and\n * the container lazy mounted\n */\nfunction dispatchToast(\n content: ToastContent,\n options: NotValidatedToastProps\n): Id {\n if (containers.size > 0) {\n eventManager.emit(Event.Show, content, options);\n } else {\n queue.push({ content, options });\n if (lazy && canUseDom) {\n lazy = false;\n containerDomNode = document.createElement('div');\n document.body.appendChild(containerDomNode);\n render(, containerDomNode);\n }\n }\n\n return options.toastId;\n}\n\n/**\n * Merge provided options with the defaults settings and generate the toastId\n */\nfunction mergeOptions(type: string, options?: ToastOptions) {\n return {\n ...options,\n type: (options && options.type) || type,\n toastId: getToastId(options)\n } as NotValidatedToastProps;\n}\n\nfunction createToastByType(type: string) {\n return (content: ToastContent, options?: ToastOptions) =>\n dispatchToast(content, mergeOptions(type, options));\n}\n\nfunction toast(content: ToastContent, options?: ToastOptions) {\n return dispatchToast(content, mergeOptions(TYPE.DEFAULT, options));\n}\n\ntoast.loading = (content: ToastContent, options?: ToastOptions) =>\n dispatchToast(\n content,\n mergeOptions(TYPE.DEFAULT, {\n isLoading: true,\n autoClose: false,\n closeOnClick: false,\n closeButton: false,\n draggable: false,\n ...options\n })\n );\n\nexport interface ToastPromiseParams {\n pending?: string | UpdateOptions;\n success?: string | UpdateOptions;\n error?: string | UpdateOptions;\n}\n\nfunction handlePromise(\n promise: Promise | (() => Promise),\n { pending, error, success }: ToastPromiseParams,\n options?: ToastOptions\n) {\n let id: Id;\n\n if (pending) {\n id = isStr(pending)\n ? toast.loading(pending, options)\n : toast.loading(pending.render, {\n ...options,\n ...(pending as ToastOptions)\n });\n }\n\n const resetParams = {\n isLoading: null,\n autoClose: null,\n closeOnClick: null,\n closeButton: null,\n draggable: null\n };\n\n const resolver = (\n type: TypeOptions,\n input: string | UpdateOptions | undefined,\n result: T\n ) => {\n // Remove the toast if the input has not been provided. This prevents the toast from hanging\n // in the pending state if a success/error toast has not been provided.\n if (input == null) {\n toast.dismiss(id);\n return;\n }\n\n const baseParams = {\n type,\n ...resetParams,\n ...options,\n data: result\n };\n const params = isStr(input) ? { render: input } : input;\n\n // if the id is set we know that it's an update\n if (id) {\n toast.update(id, {\n ...baseParams,\n ...params\n });\n } else {\n // using toast.promise without loading\n toast(params.render, {\n ...baseParams,\n ...params\n } as ToastOptions);\n }\n\n return result;\n };\n\n const p = isFn(promise) ? promise() : promise;\n\n //call the resolvers only when needed\n p.then(result => resolver('success', success, result)).catch(err =>\n resolver('error', error, err)\n );\n\n return p;\n}\n\ntoast.promise = handlePromise;\ntoast.success = createToastByType(TYPE.SUCCESS);\ntoast.info = createToastByType(TYPE.INFO);\ntoast.error = createToastByType(TYPE.ERROR);\ntoast.warning = createToastByType(TYPE.WARNING);\ntoast.warn = toast.warning;\ntoast.dark = (content: ToastContent, options?: ToastOptions) =>\n dispatchToast(\n content,\n mergeOptions(TYPE.DEFAULT, {\n theme: 'dark',\n ...options\n })\n );\n\n/**\n * Remove toast programmaticaly\n */\ntoast.dismiss = (id?: Id) => eventManager.emit(Event.Clear, id);\n\n/**\n * Clear waiting queue when limit is used\n */\ntoast.clearWaitingQueue = (params: ClearWaitingQueueParams = {}) =>\n eventManager.emit(Event.ClearWaitingQueue, params);\n\n/**\n * return true if one container is displaying the toast\n */\ntoast.isActive = (id: Id) => {\n let isToastActive = false;\n\n containers.forEach(container => {\n if (container.isToastActive && container.isToastActive(id)) {\n isToastActive = true;\n }\n });\n\n return isToastActive;\n};\n\ntoast.update = (toastId: Id, options: UpdateOptions = {}) => {\n // if you call toast and toast.update directly nothing will be displayed\n // this is why I defered the update\n setTimeout(() => {\n const toast = getToast(toastId, options as ToastOptions);\n if (toast) {\n const { props: oldOptions, content: oldContent } = toast;\n\n const nextOptions = {\n ...oldOptions,\n ...options,\n toastId: options.toastId || toastId,\n updateId: generateToastId()\n } as ToastProps & UpdateOptions;\n\n if (nextOptions.toastId !== toastId) nextOptions.staleId = toastId;\n\n const content = nextOptions.render || oldContent;\n delete nextOptions.render;\n\n dispatchToast(content, nextOptions);\n }\n }, 0);\n};\n\n/**\n * Used for controlled progress bar.\n */\ntoast.done = (id: Id) => {\n toast.update(id, {\n progress: 1\n });\n};\n\n/**\n * @deprecated\n * API will change in the next major release\n *\n * Track changes. The callback get the number of toast displayed\n */\ntoast.onChange = (callback: OnChangeCallback) => {\n if (isFn(callback)) {\n eventManager.on(Event.Change, callback);\n }\n return () => {\n isFn(callback) && eventManager.off(Event.Change, callback);\n };\n};\n\n/**\n * @deprecated\n * will be removed in the next major release\n *\n * Configure the ToastContainer when lazy mounted\n * Prefer ToastContainer over this one\n */\ntoast.configure = (config: ToastContainerProps = {}) => {\n lazy = true;\n containerConfig = config;\n};\n\ntoast.POSITION = POSITION;\ntoast.TYPE = TYPE;\n\n/**\n * Wait until the ToastContainer is mounted to dispatch the toast\n * and attach isActive method\n */\neventManager\n .on(Event.DidMount, (containerInstance: ContainerInstance) => {\n latestInstance = containerInstance.containerId || containerInstance;\n containers.set(latestInstance, containerInstance);\n\n queue.forEach(item => {\n eventManager.emit(Event.Show, item.content, item.options);\n });\n\n queue = [];\n })\n .on(Event.WillUnmount, (containerInstance: ContainerInstance) => {\n containers.delete(containerInstance.containerId || containerInstance);\n\n if (containers.size === 0) {\n eventManager\n .off(Event.Show)\n .off(Event.Clear)\n .off(Event.ClearWaitingQueue);\n }\n\n if (canUseDom && containerDomNode) {\n document.body.removeChild(containerDomNode);\n }\n });\n\nexport { toast };\n","import arrayWithoutHoles from \"@babel/runtime/helpers/esm/arrayWithoutHoles\";\nimport iterableToArray from \"@babel/runtime/helpers/esm/iterableToArray\";\nimport unsupportedIterableToArray from \"@babel/runtime/helpers/esm/unsupportedIterableToArray\";\nimport nonIterableSpread from \"@babel/runtime/helpers/esm/nonIterableSpread\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"@babel/runtime/helpers/esm/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}","module.exports = require('./lib/axios');","/*!\n * Chart.js v3.7.0\n * https://www.chartjs.org\n * (c) 2021 Chart.js Contributors\n * Released under the MIT License\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};\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.substr(0, 7) === '[object' && type.substr(-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 emptyString = '';\nconst dot = '.';\nfunction indexOfDotOrLength(key, start) {\n const idx = key.indexOf(dot, start);\n return idx === -1 ? key.length : idx;\n}\nfunction resolveObjectKey(obj, key) {\n if (key === emptyString) {\n return obj;\n }\n let pos = 0;\n let idx = indexOfDotOrLength(key, pos);\n while (obj && idx > pos) {\n obj = obj[key.substr(pos, idx - pos)];\n pos = idx + 1;\n idx = indexOfDotOrLength(key, pos);\n }\n return obj;\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\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.1.9\n * https://github.com/kurkle/color#readme\n * (c) 2020 Jukka Kurkela\n * Released under the MIT License\n */\nconst map = {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));\nfunction isShort(v) {\n\treturn eq(v.r) && eq(v.g) && eq(v.b) && eq(v.a);\n}\nfunction hexParse(str) {\n\tvar len = str.length;\n\tvar ret;\n\tif (str[0] === '#') {\n\t\tif (len === 4 || len === 5) {\n\t\t\tret = {\n\t\t\t\tr: 255 & map[str[1]] * 17,\n\t\t\t\tg: 255 & map[str[2]] * 17,\n\t\t\t\tb: 255 & map[str[3]] * 17,\n\t\t\t\ta: len === 5 ? map[str[4]] * 17 : 255\n\t\t\t};\n\t\t} else if (len === 7 || len === 9) {\n\t\t\tret = {\n\t\t\t\tr: map[str[1]] << 4 | map[str[2]],\n\t\t\t\tg: map[str[3]] << 4 | map[str[4]],\n\t\t\t\tb: map[str[5]] << 4 | map[str[6]],\n\t\t\t\ta: len === 9 ? (map[str[7]] << 4 | map[str[8]]) : 255\n\t\t\t};\n\t\t}\n\t}\n\treturn ret;\n}\nfunction hexString(v) {\n\tvar f = isShort(v) ? h1 : h2;\n\treturn v\n\t\t? '#' + f(v.r) + f(v.g) + f(v.b) + (v.a < 255 ? f(v.a) : '')\n\t\t: v;\n}\nfunction round(v) {\n\treturn v + 0.5 | 0;\n}\nconst lim = (v, l, h) => Math.max(Math.min(v, h), l);\nfunction p2b(v) {\n\treturn lim(round(v * 2.55), 0, 255);\n}\nfunction n2b(v) {\n\treturn lim(round(v * 255), 0, 255);\n}\nfunction b2n(v) {\n\treturn lim(round(v / 2.55) / 100, 0, 1);\n}\nfunction n2p(v) {\n\treturn lim(round(v * 100), 0, 100);\n}\nconst RGB_RE = /^rgba?\\(\\s*([-+.\\d]+)(%)?[\\s,]+([-+.e\\d]+)(%)?[\\s,]+([-+.e\\d]+)(%)?(?:[\\s,/]+([-+.e\\d]+)(%)?)?\\s*\\)$/;\nfunction rgbParse(str) {\n\tconst m = RGB_RE.exec(str);\n\tlet a = 255;\n\tlet r, g, b;\n\tif (!m) {\n\t\treturn;\n\t}\n\tif (m[7] !== r) {\n\t\tconst v = +m[7];\n\t\ta = 255 & (m[8] ? p2b(v) : v * 255);\n\t}\n\tr = +m[1];\n\tg = +m[3];\n\tb = +m[5];\n\tr = 255 & (m[2] ? p2b(r) : r);\n\tg = 255 & (m[4] ? p2b(g) : g);\n\tb = 255 & (m[6] ? p2b(b) : b);\n\treturn {\n\t\tr: r,\n\t\tg: g,\n\t\tb: b,\n\t\ta: a\n\t};\n}\nfunction rgbString(v) {\n\treturn v && (\n\t\tv.a < 255\n\t\t\t? `rgba(${v.r}, ${v.g}, ${v.b}, ${b2n(v.a)})`\n\t\t\t: `rgb(${v.r}, ${v.g}, ${v.b})`\n\t);\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\tconst a = s * Math.min(l, 1 - l);\n\tconst f = (n, k = (n + h / 30) % 12) => l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);\n\treturn [f(0), f(8), f(4)];\n}\nfunction hsv2rgbn(h, s, v) {\n\tconst f = (n, k = (n + h / 60) % 6) => v - v * s * Math.max(Math.min(k, 4 - k, 1), 0);\n\treturn [f(5), f(3), f(1)];\n}\nfunction hwb2rgbn(h, w, b) {\n\tconst rgb = hsl2rgbn(h, 1, 0.5);\n\tlet i;\n\tif (w + b > 1) {\n\t\ti = 1 / (w + b);\n\t\tw *= i;\n\t\tb *= i;\n\t}\n\tfor (i = 0; i < 3; i++) {\n\t\trgb[i] *= 1 - w - b;\n\t\trgb[i] += w;\n\t}\n\treturn rgb;\n}\nfunction rgb2hsl(v) {\n\tconst range = 255;\n\tconst r = v.r / range;\n\tconst g = v.g / range;\n\tconst b = v.b / range;\n\tconst max = Math.max(r, g, b);\n\tconst min = Math.min(r, g, b);\n\tconst l = (max + min) / 2;\n\tlet h, s, d;\n\tif (max !== min) {\n\t\td = max - min;\n\t\ts = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n\t\th = max === r\n\t\t\t? ((g - b) / d) + (g < b ? 6 : 0)\n\t\t\t: max === g\n\t\t\t\t? (b - r) / d + 2\n\t\t\t\t: (r - g) / d + 4;\n\t\th = h * 60 + 0.5;\n\t}\n\treturn [h | 0, s || 0, l];\n}\nfunction calln(f, a, b, c) {\n\treturn (\n\t\tArray.isArray(a)\n\t\t\t? f(a[0], a[1], a[2])\n\t\t\t: f(a, b, c)\n\t).map(n2b);\n}\nfunction hsl2rgb(h, s, l) {\n\treturn calln(hsl2rgbn, h, s, l);\n}\nfunction hwb2rgb(h, w, b) {\n\treturn calln(hwb2rgbn, h, w, b);\n}\nfunction hsv2rgb(h, s, v) {\n\treturn calln(hsv2rgbn, h, s, v);\n}\nfunction hue(h) {\n\treturn (h % 360 + 360) % 360;\n}\nfunction hueParse(str) {\n\tconst m = HUE_RE.exec(str);\n\tlet a = 255;\n\tlet v;\n\tif (!m) {\n\t\treturn;\n\t}\n\tif (m[5] !== v) {\n\t\ta = m[6] ? p2b(+m[5]) : n2b(+m[5]);\n\t}\n\tconst h = hue(+m[2]);\n\tconst p1 = +m[3] / 100;\n\tconst p2 = +m[4] / 100;\n\tif (m[1] === 'hwb') {\n\t\tv = hwb2rgb(h, p1, p2);\n\t} else if (m[1] === 'hsv') {\n\t\tv = hsv2rgb(h, p1, p2);\n\t} else {\n\t\tv = hsl2rgb(h, p1, p2);\n\t}\n\treturn {\n\t\tr: v[0],\n\t\tg: v[1],\n\t\tb: v[2],\n\t\ta: a\n\t};\n}\nfunction rotate(v, deg) {\n\tvar h = rgb2hsl(v);\n\th[0] = hue(h[0] + deg);\n\th = hsl2rgb(h);\n\tv.r = h[0];\n\tv.g = h[1];\n\tv.b = h[2];\n}\nfunction hslString(v) {\n\tif (!v) {\n\t\treturn;\n\t}\n\tconst a = rgb2hsl(v);\n\tconst h = a[0];\n\tconst s = n2p(a[1]);\n\tconst l = n2p(a[2]);\n\treturn v.a < 255\n\t\t? `hsla(${h}, ${s}%, ${l}%, ${b2n(v.a)})`\n\t\t: `hsl(${h}, ${s}%, ${l}%)`;\n}\nconst map$1 = {\n\tx: 'dark',\n\tZ: 'light',\n\tY: 're',\n\tX: 'blu',\n\tW: 'gr',\n\tV: 'medium',\n\tU: 'slate',\n\tA: 'ee',\n\tT: 'ol',\n\tS: 'or',\n\tB: 'ra',\n\tC: 'lateg',\n\tD: 'ights',\n\tR: 'in',\n\tQ: 'turquois',\n\tE: 'hi',\n\tP: 'ro',\n\tO: 'al',\n\tN: 'le',\n\tM: 'de',\n\tL: 'yello',\n\tF: 'en',\n\tK: 'ch',\n\tG: 'arks',\n\tH: 'ea',\n\tI: 'ightg',\n\tJ: 'wh'\n};\nconst names = {\n\tOiceXe: 'f0f8ff',\n\tantiquewEte: 'faebd7',\n\taqua: 'ffff',\n\taquamarRe: '7fffd4',\n\tazuY: 'f0ffff',\n\tbeige: 'f5f5dc',\n\tbisque: 'ffe4c4',\n\tblack: '0',\n\tblanKedOmond: 'ffebcd',\n\tXe: 'ff',\n\tXeviTet: '8a2be2',\n\tbPwn: 'a52a2a',\n\tburlywood: 'deb887',\n\tcaMtXe: '5f9ea0',\n\tKartYuse: '7fff00',\n\tKocTate: 'd2691e',\n\tcSO: 'ff7f50',\n\tcSnflowerXe: '6495ed',\n\tcSnsilk: 'fff8dc',\n\tcrimson: 'dc143c',\n\tcyan: 'ffff',\n\txXe: '8b',\n\txcyan: '8b8b',\n\txgTMnPd: 'b8860b',\n\txWay: 'a9a9a9',\n\txgYF: '6400',\n\txgYy: 'a9a9a9',\n\txkhaki: 'bdb76b',\n\txmagFta: '8b008b',\n\txTivegYF: '556b2f',\n\txSange: 'ff8c00',\n\txScEd: '9932cc',\n\txYd: '8b0000',\n\txsOmon: 'e9967a',\n\txsHgYF: '8fbc8f',\n\txUXe: '483d8b',\n\txUWay: '2f4f4f',\n\txUgYy: '2f4f4f',\n\txQe: 'ced1',\n\txviTet: '9400d3',\n\tdAppRk: 'ff1493',\n\tdApskyXe: 'bfff',\n\tdimWay: '696969',\n\tdimgYy: '696969',\n\tdodgerXe: '1e90ff',\n\tfiYbrick: 'b22222',\n\tflSOwEte: 'fffaf0',\n\tfoYstWAn: '228b22',\n\tfuKsia: 'ff00ff',\n\tgaRsbSo: 'dcdcdc',\n\tghostwEte: 'f8f8ff',\n\tgTd: 'ffd700',\n\tgTMnPd: 'daa520',\n\tWay: '808080',\n\tgYF: '8000',\n\tgYFLw: 'adff2f',\n\tgYy: '808080',\n\thoneyMw: 'f0fff0',\n\thotpRk: 'ff69b4',\n\tRdianYd: 'cd5c5c',\n\tRdigo: '4b0082',\n\tivSy: 'fffff0',\n\tkhaki: 'f0e68c',\n\tlavFMr: 'e6e6fa',\n\tlavFMrXsh: 'fff0f5',\n\tlawngYF: '7cfc00',\n\tNmoncEffon: 'fffacd',\n\tZXe: 'add8e6',\n\tZcSO: 'f08080',\n\tZcyan: 'e0ffff',\n\tZgTMnPdLw: 'fafad2',\n\tZWay: 'd3d3d3',\n\tZgYF: '90ee90',\n\tZgYy: 'd3d3d3',\n\tZpRk: 'ffb6c1',\n\tZsOmon: 'ffa07a',\n\tZsHgYF: '20b2aa',\n\tZskyXe: '87cefa',\n\tZUWay: '778899',\n\tZUgYy: '778899',\n\tZstAlXe: 'b0c4de',\n\tZLw: 'ffffe0',\n\tlime: 'ff00',\n\tlimegYF: '32cd32',\n\tlRF: 'faf0e6',\n\tmagFta: 'ff00ff',\n\tmaPon: '800000',\n\tVaquamarRe: '66cdaa',\n\tVXe: 'cd',\n\tVScEd: 'ba55d3',\n\tVpurpN: '9370db',\n\tVsHgYF: '3cb371',\n\tVUXe: '7b68ee',\n\tVsprRggYF: 'fa9a',\n\tVQe: '48d1cc',\n\tVviTetYd: 'c71585',\n\tmidnightXe: '191970',\n\tmRtcYam: 'f5fffa',\n\tmistyPse: 'ffe4e1',\n\tmoccasR: 'ffe4b5',\n\tnavajowEte: 'ffdead',\n\tnavy: '80',\n\tTdlace: 'fdf5e6',\n\tTive: '808000',\n\tTivedBb: '6b8e23',\n\tSange: 'ffa500',\n\tSangeYd: 'ff4500',\n\tScEd: 'da70d6',\n\tpOegTMnPd: 'eee8aa',\n\tpOegYF: '98fb98',\n\tpOeQe: 'afeeee',\n\tpOeviTetYd: 'db7093',\n\tpapayawEp: 'ffefd5',\n\tpHKpuff: 'ffdab9',\n\tperu: 'cd853f',\n\tpRk: 'ffc0cb',\n\tplum: 'dda0dd',\n\tpowMrXe: 'b0e0e6',\n\tpurpN: '800080',\n\tYbeccapurpN: '663399',\n\tYd: 'ff0000',\n\tPsybrown: 'bc8f8f',\n\tPyOXe: '4169e1',\n\tsaddNbPwn: '8b4513',\n\tsOmon: 'fa8072',\n\tsandybPwn: 'f4a460',\n\tsHgYF: '2e8b57',\n\tsHshell: 'fff5ee',\n\tsiFna: 'a0522d',\n\tsilver: 'c0c0c0',\n\tskyXe: '87ceeb',\n\tUXe: '6a5acd',\n\tUWay: '708090',\n\tUgYy: '708090',\n\tsnow: 'fffafa',\n\tsprRggYF: 'ff7f',\n\tstAlXe: '4682b4',\n\ttan: 'd2b48c',\n\tteO: '8080',\n\ttEstN: 'd8bfd8',\n\ttomato: 'ff6347',\n\tQe: '40e0d0',\n\tviTet: 'ee82ee',\n\tJHt: 'f5deb3',\n\twEte: 'ffffff',\n\twEtesmoke: 'f5f5f5',\n\tLw: 'ffff00',\n\tLwgYF: '9acd32'\n};\nfunction unpack() {\n\tconst unpacked = {};\n\tconst keys = Object.keys(names);\n\tconst tkeys = Object.keys(map$1);\n\tlet i, j, k, ok, nk;\n\tfor (i = 0; i < keys.length; i++) {\n\t\tok = nk = keys[i];\n\t\tfor (j = 0; j < tkeys.length; j++) {\n\t\t\tk = tkeys[j];\n\t\t\tnk = nk.replace(k, map$1[k]);\n\t\t}\n\t\tk = parseInt(names[ok], 16);\n\t\tunpacked[nk] = [k >> 16 & 0xFF, k >> 8 & 0xFF, k & 0xFF];\n\t}\n\treturn unpacked;\n}\nlet names$1;\nfunction nameParse(str) {\n\tif (!names$1) {\n\t\tnames$1 = unpack();\n\t\tnames$1.transparent = [0, 0, 0, 0];\n\t}\n\tconst a = names$1[str.toLowerCase()];\n\treturn a && {\n\t\tr: a[0],\n\t\tg: a[1],\n\t\tb: a[2],\n\t\ta: a.length === 4 ? a[3] : 255\n\t};\n}\nfunction modHSL(v, i, ratio) {\n\tif (v) {\n\t\tlet tmp = rgb2hsl(v);\n\t\ttmp[i] = Math.max(0, Math.min(tmp[i] + tmp[i] * ratio, i === 0 ? 360 : 1));\n\t\ttmp = hsl2rgb(tmp);\n\t\tv.r = tmp[0];\n\t\tv.g = tmp[1];\n\t\tv.b = tmp[2];\n\t}\n}\nfunction clone(v, proto) {\n\treturn v ? Object.assign(proto || {}, v) : v;\n}\nfunction fromObject(input) {\n\tvar v = {r: 0, g: 0, b: 0, a: 255};\n\tif (Array.isArray(input)) {\n\t\tif (input.length >= 3) {\n\t\t\tv = {r: input[0], g: input[1], b: input[2], a: 255};\n\t\t\tif (input.length > 3) {\n\t\t\t\tv.a = n2b(input[3]);\n\t\t\t}\n\t\t}\n\t} else {\n\t\tv = clone(input, {r: 0, g: 0, b: 0, a: 1});\n\t\tv.a = n2b(v.a);\n\t}\n\treturn v;\n}\nfunction functionParse(str) {\n\tif (str.charAt(0) === 'r') {\n\t\treturn rgbParse(str);\n\t}\n\treturn hueParse(str);\n}\nclass Color {\n\tconstructor(input) {\n\t\tif (input instanceof Color) {\n\t\t\treturn input;\n\t\t}\n\t\tconst type = typeof input;\n\t\tlet v;\n\t\tif (type === 'object') {\n\t\t\tv = fromObject(input);\n\t\t} else if (type === 'string') {\n\t\t\tv = hexParse(input) || nameParse(input) || functionParse(input);\n\t\t}\n\t\tthis._rgb = v;\n\t\tthis._valid = !!v;\n\t}\n\tget valid() {\n\t\treturn this._valid;\n\t}\n\tget rgb() {\n\t\tvar v = clone(this._rgb);\n\t\tif (v) {\n\t\t\tv.a = b2n(v.a);\n\t\t}\n\t\treturn v;\n\t}\n\tset rgb(obj) {\n\t\tthis._rgb = fromObject(obj);\n\t}\n\trgbString() {\n\t\treturn this._valid ? rgbString(this._rgb) : this._rgb;\n\t}\n\thexString() {\n\t\treturn this._valid ? hexString(this._rgb) : this._rgb;\n\t}\n\thslString() {\n\t\treturn this._valid ? hslString(this._rgb) : this._rgb;\n\t}\n\tmix(color, weight) {\n\t\tconst me = this;\n\t\tif (color) {\n\t\t\tconst c1 = me.rgb;\n\t\t\tconst c2 = color.rgb;\n\t\t\tlet w2;\n\t\t\tconst p = weight === w2 ? 0.5 : weight;\n\t\t\tconst w = 2 * p - 1;\n\t\t\tconst a = c1.a - c2.a;\n\t\t\tconst w1 = ((w * a === -1 ? w : (w + a) / (1 + w * a)) + 1) / 2.0;\n\t\t\tw2 = 1 - w1;\n\t\t\tc1.r = 0xFF & w1 * c1.r + w2 * c2.r + 0.5;\n\t\t\tc1.g = 0xFF & w1 * c1.g + w2 * c2.g + 0.5;\n\t\t\tc1.b = 0xFF & w1 * c1.b + w2 * c2.b + 0.5;\n\t\t\tc1.a = p * c1.a + (1 - p) * c2.a;\n\t\t\tme.rgb = c1;\n\t\t}\n\t\treturn me;\n\t}\n\tclone() {\n\t\treturn new Color(this.rgb);\n\t}\n\talpha(a) {\n\t\tthis._rgb.a = n2b(a);\n\t\treturn this;\n\t}\n\tclearer(ratio) {\n\t\tconst rgb = this._rgb;\n\t\trgb.a *= 1 - ratio;\n\t\treturn this;\n\t}\n\tgreyscale() {\n\t\tconst rgb = this._rgb;\n\t\tconst val = round(rgb.r * 0.3 + rgb.g * 0.59 + rgb.b * 0.11);\n\t\trgb.r = rgb.g = rgb.b = val;\n\t\treturn this;\n\t}\n\topaquer(ratio) {\n\t\tconst rgb = this._rgb;\n\t\trgb.a *= 1 + ratio;\n\t\treturn this;\n\t}\n\tnegate() {\n\t\tconst v = this._rgb;\n\t\tv.r = 255 - v.r;\n\t\tv.g = 255 - v.g;\n\t\tv.b = 255 - v.b;\n\t\treturn this;\n\t}\n\tlighten(ratio) {\n\t\tmodHSL(this._rgb, 2, ratio);\n\t\treturn this;\n\t}\n\tdarken(ratio) {\n\t\tmodHSL(this._rgb, 2, -ratio);\n\t\treturn this;\n\t}\n\tsaturate(ratio) {\n\t\tmodHSL(this._rgb, 1, ratio);\n\t\treturn this;\n\t}\n\tdesaturate(ratio) {\n\t\tmodHSL(this._rgb, 1, -ratio);\n\t\treturn this;\n\t}\n\trotate(deg) {\n\t\trotate(this._rgb, deg);\n\t\treturn this;\n\t}\n}\nfunction index_esm(input) {\n\treturn new Color(input);\n}\n\nconst isPatternOrGradient = (value) => value instanceof CanvasGradient || value instanceof CanvasPattern;\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 };\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 let type, xOffset, yOffset, size, cornerRadius;\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 ctx.arc(x, y, radius, 0, TAU);\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 ctx.rect(x - size, y - size, 2 * size, 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 = 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 _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) =>\n _lookup(table, value, 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 _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}\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(evt, canvas) {\n const e = evt.native || evt;\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 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 { _toLeftRightCenter as $, _rlookupByKey as A, getAngleFromPoint as B, toPadding as C, each as D, getMaximumSize as E, _getParentNode as F, readUsedSize as G, HALF_PI as H, throttled as I, supportsEventListenerOptions as J, _isDomSupported as K, log10 as L, _factorize as M, finiteOrDefault as N, callback as O, PI as P, _addGrace as Q, toDegrees as R, _measureText as S, TAU as T, _int16Range as U, _alignPixel as V, clipArea as W, renderText as X, unclipArea as Y, toFont as Z, _arrayUnique as _, resolve as a, _angleDiff as a$, _alignStartEnd as a0, overrides as a1, merge as a2, _capitalize as a3, descriptors as a4, isFunction as a5, _attachContext as a6, _createResolver as a7, _descriptors as a8, mergeIf as a9, restoreTextDirection as aA, noop as aB, distanceBetweenPoints as aC, _setMinAndMaxByKey as aD, niceNum as aE, almostWhole as aF, almostEquals as aG, _decimalPlaces as aH, _longestText as aI, _filterBetween as aJ, _lookup as aK, getHoverColor as aL, clone$1 as aM, _merger as aN, _mergerIf as aO, _deprecated as aP, toFontString as aQ, splineCurve as aR, splineCurveMonotone as aS, getStyle as aT, fontString as aU, toLineHeight as aV, PITAU as aW, INFINITY as aX, RAD_PER_DEG as aY, QUARTER_PI as aZ, TWO_THIRDS_PI as a_, uid as aa, debounce as ab, retinaScale as ac, clearCanvas as ad, setsEqual as ae, _elementsEqual as af, _isClickEvent as ag, _isBetween as ah, _readValueToProps as ai, _updateBezierControlPoints as aj, _computeSegments as ak, _boundSegments as al, _steppedInterpolation as am, _bezierInterpolation as an, _pointInLine as ao, _steppedLineTo as ap, _bezierCurveTo as aq, drawPoint as ar, addRoundedRectPath as as, toTRBL as at, toTRBLCorners as au, _boundSegment as av, _normalizeAngle as aw, getRtlAdapter as ax, overrideTextDirection as ay, _textX as az, isArray as b, 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, isNumber as q, requestAnimFrame as r, sign as s, toRadians as t, unlistenArrayEvents as u, valueOrDefault as v, _limitValue as w, _lookupByKey as x, getRelativePosition as y, _isPointInArea as z };\n","/*!\n * Chart.js v3.7.0\n * https://www.chartjs.org\n * (c) 2021 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 isNumber, w as _limitValue, x as _lookupByKey, y as getRelativePosition$1, z as _isPointInArea, A as _rlookupByKey, B as getAngleFromPoint, C as toPadding, D as each, E as getMaximumSize, F as _getParentNode, G as readUsedSize, I as throttled, J as supportsEventListenerOptions, K as _isDomSupported, L as log10, M as _factorize, N as finiteOrDefault, O as callback, Q as _addGrace, R as toDegrees, S as _measureText, U as _int16Range, V as _alignPixel, W as clipArea, X as renderText, Y as unclipArea, Z as toFont, $ as _toLeftRightCenter, a0 as _alignStartEnd, a1 as overrides, a2 as merge, a3 as _capitalize, a4 as descriptors, a5 as isFunction, a6 as _attachContext, a7 as _createResolver, a8 as _descriptors, a9 as mergeIf, aa as uid, ab as debounce, ac as retinaScale, ad as clearCanvas, ae as setsEqual, af as _elementsEqual, ag as _isClickEvent, ah as _isBetween, ai as _readValueToProps, aj as _updateBezierControlPoints, ak as _computeSegments, al as _boundSegments, am as _steppedInterpolation, an as _bezierInterpolation, ao as _pointInLine, ap as _steppedLineTo, aq as _bezierCurveTo, ar as drawPoint, as as addRoundedRectPath, at as toTRBL, au as toTRBLCorners, av as _boundSegment, aw as _normalizeAngle, ax as getRtlAdapter, ay as overrideTextDirection, az as _textX, aA as restoreTextDirection, aB as noop, aC as distanceBetweenPoints, aD as _setMinAndMaxByKey, aE as niceNum, aF as almostWhole, aG as almostEquals, aH as _decimalPlaces, aI as _longestText, aJ as _filterBetween, aK as _lookup } from './chunks/helpers.segment.js';\nexport { d as defaults } from './chunks/helpers.segment.js';\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.$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 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 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 firstOpts = this.resolveDataElementOptions(start, mode);\n const sharedOptions = this.getSharedOptions(firstOpts);\n const includeOptions = this.includeOptions(mode, sharedOptions);\n this.updateSharedOptions(sharedOptions, mode, firstOpts);\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 meta = this._cachedMeta;\n const iScale = meta.iScale;\n const metasets = iScale.getMatchingVisibleMetas(this._type);\n const stacked = iScale.options.stacked;\n const ilen = metasets.length;\n const stacks = [];\n let i, item;\n for (i = 0; i < ilen; ++i) {\n item = metasets[i];\n if (!item.controller.options.grouped) {\n continue;\n }\n if (typeof dataIndex !== 'undefined') {\n const val = item.controller.getParsed(dataIndex)[\n item.controller._cachedMeta.vScale.axis\n ];\n if (isNullOrUndef(val) || isNaN(val)) {\n continue;\n }\n }\n if (stacked === false || stacks.indexOf(item.stack) === -1 ||\n\t\t\t\t(stacked === undefined && item.stack === undefined)) {\n stacks.push(item.stack);\n }\n if (item.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 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 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 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 = 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 this.updateSharedOptions(sharedOptions, mode, firstOpts);\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 firstOpts = this.resolveDataElementOptions(start, mode);\n const sharedOptions = this.getSharedOptions(firstOpts);\n const includeOptions = this.includeOptions(mode, sharedOptions);\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 this.updateSharedOptions(sharedOptions, mode, firstOpts);\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 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 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 && (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 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};\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).hi + 1,\n animationsDisabled ? 0 : _lookupByKey(points, axis, iScale.getPixelForValue(max)).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\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 update(mode) {\n const arcs = this._cachedMeta.data;\n this._updateRadius();\n this.updateElements(arcs, 0, arcs.length, mode);\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 dataset = this.getDataset();\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(dataset.data[i]) : 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 dataset = this.getDataset();\n const meta = this._cachedMeta;\n let count = 0;\n meta.data.forEach((element, index) => {\n if (!isNaN(dataset.data[index]) && 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 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 dataset = this.getDataset();\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, dataset.data[i]);\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 ScatterController extends LineController {\n}\nScatterController.id = 'scatter';\nScatterController.defaults = {\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 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 getRelativePosition(e, chart) {\n if ('native' in e) {\n return {\n x: e.x,\n y: e.y\n };\n }\n return getRelativePosition$1(e, chart);\n}\nfunction evaluateAllVisibleItems(chart, handler) {\n const metasets = chart.getSortedVisibleDatasetMetas();\n let index, data, element;\n for (let i = 0, ilen = metasets.length; i < ilen; ++i) {\n ({index, data} = metasets[i]);\n for (let j = 0, jlen = data.length; j < jlen; ++j) {\n element = data[j];\n if (!element.skip) {\n handler(element, index, j);\n }\n }\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 optimizedEvaluateItems(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) {\n const items = [];\n if (!_isPointInArea(position, chart.chartArea, chart._minPadding)) {\n return items;\n }\n const evaluationFunc = function(element, datasetIndex, index) {\n if (element.inRange(position.x, position.y, useFinalPosition)) {\n items.push({element, datasetIndex, index});\n }\n };\n optimizedEvaluateItems(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 optimizedEvaluateItems(chart, axis, position, evaluationFunc);\n return items;\n}\nfunction getNearestCartesianItems(chart, position, axis, intersect, useFinalPosition) {\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 = _isPointInArea(center, chart.chartArea, chart._minPadding);\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 optimizedEvaluateItems(chart, axis, position, evaluationFunc);\n return items;\n}\nfunction getNearestItems(chart, position, axis, intersect, useFinalPosition) {\n if (!_isPointInArea(position, chart.chartArea, chart._minPadding)) {\n return [];\n }\n return axis === 'r' && !intersect\n ? getNearestRadialItems(chart, position, axis, useFinalPosition)\n : getNearestCartesianItems(chart, position, axis, intersect, useFinalPosition);\n}\nfunction getAxisItems(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const items = [];\n const axis = options.axis;\n const rangeMethod = axis === 'x' ? 'inXRange' : 'inYRange';\n let intersectsItem = false;\n evaluateAllVisibleItems(chart, (element, datasetIndex, index) => {\n if (element[rangeMethod](position[axis], useFinalPosition)) {\n items.push({element, datasetIndex, index});\n }\n if (element.inRange(position.x, position.y, useFinalPosition)) {\n intersectsItem = true;\n }\n });\n if (options.intersect && !intersectsItem) {\n return [];\n }\n return items;\n}\nvar Interaction = {\n modes: {\n index(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'x';\n const items = options.intersect\n ? getIntersectItems(chart, position, axis, useFinalPosition)\n : getNearestItems(chart, position, axis, false, useFinalPosition);\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 let items = options.intersect\n ? getIntersectItems(chart, position, axis, useFinalPosition) :\n getNearestItems(chart, position, axis, false, useFinalPosition);\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 return getIntersectItems(chart, position, axis, useFinalPosition);\n },\n nearest(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'xy';\n return getNearestItems(chart, position, axis, options.intersect, useFinalPosition);\n },\n x(chart, e, options, useFinalPosition) {\n return getAxisItems(chart, e, {axis: 'x', intersect: options.intersect}, useFinalPosition);\n },\n y(chart, e, options, useFinalPosition) {\n return getAxisItems(chart, e, {axis: 'y', intersect: 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$1(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 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 }\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 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 {\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 = grid.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 if (isHorizontal) {\n x = pixel;\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,\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 }\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 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 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 }\n }\n return plugins;\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, options, all) {\n const result = [];\n const context = chart.getContext();\n for (let i = 0; i < plugins.length; i++) {\n const plugin = plugins[i];\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, opts, context)\n });\n }\n return result;\n}\nfunction pluginOpts(config, plugin, opts, context) {\n const keys = config.pluginScopeKeys(plugin);\n const scopes = config.getOptionScopes(opts, keys);\n return config.createResolver(scopes, context, [''], {scriptable: false, indexable: false, allKeys: true});\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.7.0\";\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 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 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: _isPointInArea(e, this.chartArea, this._minPadding)\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) {\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 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 ctx.closePath();\n}\nfunction drawArc(ctx, element, offset, spacing) {\n const {fullCircles, startAngle, circumference} = element;\n let endAngle = element.endAngle;\n if (fullCircles) {\n pathArc(ctx, element, offset, spacing, startAngle + TAU);\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);\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) {\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);\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 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);\n drawBorder(ctx, this, radiusOffset, spacing, endAngle);\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};\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.type !== 'line') {\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 getLineByIndex(chart, index) {\n const meta = chart.getDatasetMeta(index);\n const visible = meta && chart.isDatasetVisible(index);\n return visible ? meta.dataset : null;\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}\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 if (fill[0] === '-' || fill[0] === '+') {\n target = index + target;\n }\n if (target === index || target < 0 || target >= count) {\n return false;\n }\n return target;\n }\n return ['origin', 'start', 'end', 'stack', 'shape'].indexOf(fill) >= 0 && fill;\n}\nfunction computeLinearBoundary(source) {\n const {scale = {}, fill} = source;\n let target = null;\n let horizontal;\n if (fill === 'start') {\n target = scale.bottom;\n } else if (fill === 'end') {\n target = scale.top;\n } else if (isObject(fill)) {\n target = scale.getPixelForValue(fill.value);\n } else if (scale.getBasePixel) {\n target = scale.getBasePixel();\n }\n if (isNumberFinite(target)) {\n horizontal = scale.isHorizontal();\n return {\n x: horizontal ? target : null,\n y: horizontal ? null : target\n };\n }\n return null;\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}\nfunction computeCircularBoundary(source) {\n const {scale, fill} = source;\n const options = scale.options;\n const length = scale.getLabels().length;\n const target = [];\n const start = options.reverse ? scale.max : scale.min;\n const end = options.reverse ? scale.min : scale.max;\n let i, center, value;\n if (fill === 'start') {\n value = start;\n } else if (fill === 'end') {\n value = end;\n } else if (isObject(fill)) {\n value = fill.value;\n } else {\n value = scale.getBaseValue();\n }\n if (options.grid.circular) {\n 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 (i = 0; i < length; ++i) {\n target.push(scale.getPointPositionForValue(i, value));\n }\n return target;\n}\nfunction computeBoundary(source) {\n const scale = source.scale || {};\n if (scale.getPointPositionForValue) {\n return computeCircularBoundary(source);\n }\n return computeLinearBoundary(source);\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 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 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}\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 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 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 _clip(ctx, target, clipY) {\n ctx.beginPath();\n target.path(ctx);\n ctx.lineTo(target.last().x, clipY);\n ctx.lineTo(target.first().x, clipY);\n ctx.closePath();\n ctx.clip();\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 _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}\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 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}\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 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 _clip(ctx, target, area.top);\n _fill(ctx, {line, target, color: above, scale, property});\n ctx.restore();\n ctx.save();\n _clip(ctx, target, area.bottom);\n }\n _fill(ctx, {line, target, color: below, scale, property});\n ctx.restore();\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}\nvar plugin_filler = {\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) {\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 (source) {\n drawfill(chart.ctx, source, chart.chartArea);\n }\n }\n },\n beforeDatasetDraw(chart, args, options) {\n const source = args.meta.$filler;\n if (!source || source.fill === false || 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 = 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: boxWidth * 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 drawPoint(ctx, drawOptions, centerX, centerY);\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') {\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' && (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 = 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 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 const args = {\n tooltip\n };\n if (chart.notifyPlugins('beforeTooltipDraw', args) === false) {\n return;\n }\n if (tooltip) {\n tooltip.draw(chart.ctx);\n }\n chart.notifyPlugins('afterTooltipDraw', args);\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: plugin_filler,\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 padding = toPadding(optsAtIndex.backdropPadding);\n ctx.fillStyle = backdropColor;\n ctx.fillRect(left - padding.left, top - padding.top, right - left + padding.width, bottom - top + padding.height);\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 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 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, plugin_filler 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 var max = Math.max;\nexport var min = Math.min;\nexport var round = Math.round;","//\n// Main\n//\nexport default function memoize(fn, options) {\n var cache = options && options.cache ? options.cache : cacheDefault;\n var serializer = options && options.serializer ? options.serializer : serializerDefault;\n var strategy = options && options.strategy ? options.strategy : strategyDefault;\n return strategy(fn, {\n cache: cache,\n serializer: serializer,\n });\n}\n//\n// Strategy\n//\nfunction isPrimitive(value) {\n return (value == null || typeof value === 'number' || typeof value === 'boolean'); // || typeof value === \"string\" 'unsafe' primitive for our needs\n}\nfunction monadic(fn, cache, serializer, arg) {\n var cacheKey = isPrimitive(arg) ? arg : serializer(arg);\n var computedValue = cache.get(cacheKey);\n if (typeof computedValue === 'undefined') {\n computedValue = fn.call(this, arg);\n cache.set(cacheKey, computedValue);\n }\n return computedValue;\n}\nfunction variadic(fn, cache, serializer) {\n var args = Array.prototype.slice.call(arguments, 3);\n var cacheKey = serializer(args);\n var computedValue = cache.get(cacheKey);\n if (typeof computedValue === 'undefined') {\n computedValue = fn.apply(this, args);\n cache.set(cacheKey, computedValue);\n }\n return computedValue;\n}\nfunction assemble(fn, context, strategy, cache, serialize) {\n return strategy.bind(context, fn, cache, serialize);\n}\nfunction strategyDefault(fn, options) {\n var strategy = fn.length === 1 ? monadic : variadic;\n return assemble(fn, this, strategy, options.cache.create(), options.serializer);\n}\nfunction strategyVariadic(fn, options) {\n return assemble(fn, this, variadic, options.cache.create(), options.serializer);\n}\nfunction strategyMonadic(fn, options) {\n return assemble(fn, this, monadic, options.cache.create(), options.serializer);\n}\n//\n// Serializer\n//\nvar serializerDefault = function () {\n return JSON.stringify(arguments);\n};\n//\n// Cache\n//\nfunction ObjectWithoutPrototypeCache() {\n this.cache = Object.create(null);\n}\nObjectWithoutPrototypeCache.prototype.has = function (key) {\n return key in this.cache;\n};\nObjectWithoutPrototypeCache.prototype.get = function (key) {\n return this.cache[key];\n};\nObjectWithoutPrototypeCache.prototype.set = function (key, value) {\n this.cache[key] = value;\n};\nvar cacheDefault = {\n create: function create() {\n // @ts-ignore\n return new ObjectWithoutPrototypeCache();\n },\n};\nexport var strategies = {\n variadic: strategyVariadic,\n monadic: strategyMonadic,\n};\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nexport default root;\n","export default function getWindow(node) {\n if (node == null) {\n return window;\n }\n\n if (node.toString() !== '[object Window]') {\n var ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n\n return node;\n}","import { __assign, __spreadArray } from \"tslib\";\nimport { IntlMessageFormat } from 'intl-messageformat';\nimport memoize, { strategies } from '@formatjs/fast-memoize';\nimport { UnsupportedFormatterError } from './error';\nexport function filterProps(props, whitelist, defaults) {\n if (defaults === void 0) { defaults = {}; }\n return whitelist.reduce(function (filtered, name) {\n if (name in props) {\n filtered[name] = props[name];\n }\n else if (name in defaults) {\n filtered[name] = defaults[name];\n }\n return filtered;\n }, {});\n}\nvar defaultErrorHandler = function (error) {\n if (process.env.NODE_ENV !== 'production') {\n console.error(error);\n }\n};\nexport var DEFAULT_INTL_CONFIG = {\n formats: {},\n messages: {},\n timeZone: undefined,\n defaultLocale: 'en',\n defaultFormats: {},\n onError: defaultErrorHandler,\n};\nexport function createIntlCache() {\n return {\n dateTime: {},\n number: {},\n message: {},\n relativeTime: {},\n pluralRules: {},\n list: {},\n displayNames: {},\n };\n}\nfunction createFastMemoizeCache(store) {\n return {\n create: function () {\n return {\n has: function (key) {\n return key in store;\n },\n get: function (key) {\n return store[key];\n },\n set: function (key, value) {\n store[key] = value;\n },\n };\n },\n };\n}\n/**\n * Create intl formatters and populate cache\n * @param cache explicit cache to prevent leaking memory\n */\nexport function createFormatters(cache) {\n if (cache === void 0) { cache = createIntlCache(); }\n var RelativeTimeFormat = Intl.RelativeTimeFormat;\n var ListFormat = Intl.ListFormat;\n var DisplayNames = Intl.DisplayNames;\n var getDateTimeFormat = memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.DateTimeFormat).bind.apply(_a, __spreadArray([void 0], args)))();\n }, {\n cache: createFastMemoizeCache(cache.dateTime),\n strategy: strategies.variadic,\n });\n var getNumberFormat = memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.NumberFormat).bind.apply(_a, __spreadArray([void 0], args)))();\n }, {\n cache: createFastMemoizeCache(cache.number),\n strategy: strategies.variadic,\n });\n var getPluralRules = memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.PluralRules).bind.apply(_a, __spreadArray([void 0], args)))();\n }, {\n cache: createFastMemoizeCache(cache.pluralRules),\n strategy: strategies.variadic,\n });\n return {\n getDateTimeFormat: getDateTimeFormat,\n getNumberFormat: getNumberFormat,\n getMessageFormat: memoize(function (message, locales, overrideFormats, opts) {\n return new IntlMessageFormat(message, locales, overrideFormats, __assign({ formatters: {\n getNumberFormat: getNumberFormat,\n getDateTimeFormat: getDateTimeFormat,\n getPluralRules: getPluralRules,\n } }, (opts || {})));\n }, {\n cache: createFastMemoizeCache(cache.message),\n strategy: strategies.variadic,\n }),\n getRelativeTimeFormat: memoize(function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new (RelativeTimeFormat.bind.apply(RelativeTimeFormat, __spreadArray([void 0], args)))();\n }, {\n cache: createFastMemoizeCache(cache.relativeTime),\n strategy: strategies.variadic,\n }),\n getPluralRules: getPluralRules,\n getListFormat: memoize(function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new (ListFormat.bind.apply(ListFormat, __spreadArray([void 0], args)))();\n }, {\n cache: createFastMemoizeCache(cache.list),\n strategy: strategies.variadic,\n }),\n getDisplayNames: memoize(function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new (DisplayNames.bind.apply(DisplayNames, __spreadArray([void 0], args)))();\n }, {\n cache: createFastMemoizeCache(cache.displayNames),\n strategy: strategies.variadic,\n }),\n };\n}\nexport function getNamedFormat(formats, type, name, onError) {\n var formatType = formats && formats[type];\n var format;\n if (formatType) {\n format = formatType[name];\n }\n if (format) {\n return format;\n }\n onError(new UnsupportedFormatterError(\"No \" + type + \" format named: \" + name));\n}\n","import { auto } from \"../enums.js\";\nexport default function getBasePlacement(placement) {\n return placement.split('-')[0];\n}","export var ErrorKind;\n(function (ErrorKind) {\n /** Argument is unclosed (e.g. `{0`) */\n ErrorKind[ErrorKind[\"EXPECT_ARGUMENT_CLOSING_BRACE\"] = 1] = \"EXPECT_ARGUMENT_CLOSING_BRACE\";\n /** Argument is empty (e.g. `{}`). */\n ErrorKind[ErrorKind[\"EMPTY_ARGUMENT\"] = 2] = \"EMPTY_ARGUMENT\";\n /** Argument is malformed (e.g. `{foo!}``) */\n ErrorKind[ErrorKind[\"MALFORMED_ARGUMENT\"] = 3] = \"MALFORMED_ARGUMENT\";\n /** Expect an argument type (e.g. `{foo,}`) */\n ErrorKind[ErrorKind[\"EXPECT_ARGUMENT_TYPE\"] = 4] = \"EXPECT_ARGUMENT_TYPE\";\n /** Unsupported argument type (e.g. `{foo,foo}`) */\n ErrorKind[ErrorKind[\"INVALID_ARGUMENT_TYPE\"] = 5] = \"INVALID_ARGUMENT_TYPE\";\n /** Expect an argument style (e.g. `{foo, number, }`) */\n ErrorKind[ErrorKind[\"EXPECT_ARGUMENT_STYLE\"] = 6] = \"EXPECT_ARGUMENT_STYLE\";\n /** The number skeleton is invalid. */\n ErrorKind[ErrorKind[\"INVALID_NUMBER_SKELETON\"] = 7] = \"INVALID_NUMBER_SKELETON\";\n /** The date time skeleton is invalid. */\n ErrorKind[ErrorKind[\"INVALID_DATE_TIME_SKELETON\"] = 8] = \"INVALID_DATE_TIME_SKELETON\";\n /** Exepct a number skeleton following the `::` (e.g. `{foo, number, ::}`) */\n ErrorKind[ErrorKind[\"EXPECT_NUMBER_SKELETON\"] = 9] = \"EXPECT_NUMBER_SKELETON\";\n /** Exepct a date time skeleton following the `::` (e.g. `{foo, date, ::}`) */\n ErrorKind[ErrorKind[\"EXPECT_DATE_TIME_SKELETON\"] = 10] = \"EXPECT_DATE_TIME_SKELETON\";\n /** Unmatched apostrophes in the argument style (e.g. `{foo, number, 'test`) */\n ErrorKind[ErrorKind[\"UNCLOSED_QUOTE_IN_ARGUMENT_STYLE\"] = 11] = \"UNCLOSED_QUOTE_IN_ARGUMENT_STYLE\";\n /** Missing select argument options (e.g. `{foo, select}`) */\n ErrorKind[ErrorKind[\"EXPECT_SELECT_ARGUMENT_OPTIONS\"] = 12] = \"EXPECT_SELECT_ARGUMENT_OPTIONS\";\n /** Expecting an offset value in `plural` or `selectordinal` argument (e.g `{foo, plural, offset}`) */\n ErrorKind[ErrorKind[\"EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE\"] = 13] = \"EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE\";\n /** Offset value in `plural` or `selectordinal` is invalid (e.g. `{foo, plural, offset: x}`) */\n ErrorKind[ErrorKind[\"INVALID_PLURAL_ARGUMENT_OFFSET_VALUE\"] = 14] = \"INVALID_PLURAL_ARGUMENT_OFFSET_VALUE\";\n /** Expecting a selector in `select` argument (e.g `{foo, select}`) */\n ErrorKind[ErrorKind[\"EXPECT_SELECT_ARGUMENT_SELECTOR\"] = 15] = \"EXPECT_SELECT_ARGUMENT_SELECTOR\";\n /** Expecting a selector in `plural` or `selectordinal` argument (e.g `{foo, plural}`) */\n ErrorKind[ErrorKind[\"EXPECT_PLURAL_ARGUMENT_SELECTOR\"] = 16] = \"EXPECT_PLURAL_ARGUMENT_SELECTOR\";\n /** Expecting a message fragment after the `select` selector (e.g. `{foo, select, apple}`) */\n ErrorKind[ErrorKind[\"EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT\"] = 17] = \"EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT\";\n /**\n * Expecting a message fragment after the `plural` or `selectordinal` selector\n * (e.g. `{foo, plural, one}`)\n */\n ErrorKind[ErrorKind[\"EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT\"] = 18] = \"EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT\";\n /** Selector in `plural` or `selectordinal` is malformed (e.g. `{foo, plural, =x {#}}`) */\n ErrorKind[ErrorKind[\"INVALID_PLURAL_ARGUMENT_SELECTOR\"] = 19] = \"INVALID_PLURAL_ARGUMENT_SELECTOR\";\n /**\n * Duplicate selectors in `plural` or `selectordinal` argument.\n * (e.g. {foo, plural, one {#} one {#}})\n */\n ErrorKind[ErrorKind[\"DUPLICATE_PLURAL_ARGUMENT_SELECTOR\"] = 20] = \"DUPLICATE_PLURAL_ARGUMENT_SELECTOR\";\n /** Duplicate selectors in `select` argument.\n * (e.g. {foo, select, apple {apple} apple {apple}})\n */\n ErrorKind[ErrorKind[\"DUPLICATE_SELECT_ARGUMENT_SELECTOR\"] = 21] = \"DUPLICATE_SELECT_ARGUMENT_SELECTOR\";\n /** Plural or select argument option must have `other` clause. */\n ErrorKind[ErrorKind[\"MISSING_OTHER_CLAUSE\"] = 22] = \"MISSING_OTHER_CLAUSE\";\n /** The tag is malformed. (e.g. `foo) */\n ErrorKind[ErrorKind[\"INVALID_TAG\"] = 23] = \"INVALID_TAG\";\n /** The tag name is invalid. (e.g. `<123>foo`) */\n ErrorKind[ErrorKind[\"INVALID_TAG_NAME\"] = 25] = \"INVALID_TAG_NAME\";\n /** The closing tag does not match the opening tag. (e.g. `foo`) */\n ErrorKind[ErrorKind[\"UNMATCHED_CLOSING_TAG\"] = 26] = \"UNMATCHED_CLOSING_TAG\";\n /** The opening tag has unmatched closing tag. (e.g. `foo`) */\n ErrorKind[ErrorKind[\"UNCLOSED_TAG\"] = 27] = \"UNCLOSED_TAG\";\n})(ErrorKind || (ErrorKind = {}));\n","export var TYPE;\n(function (TYPE) {\n /**\n * Raw text\n */\n TYPE[TYPE[\"literal\"] = 0] = \"literal\";\n /**\n * Variable w/o any format, e.g `var` in `this is a {var}`\n */\n TYPE[TYPE[\"argument\"] = 1] = \"argument\";\n /**\n * Variable w/ number format\n */\n TYPE[TYPE[\"number\"] = 2] = \"number\";\n /**\n * Variable w/ date format\n */\n TYPE[TYPE[\"date\"] = 3] = \"date\";\n /**\n * Variable w/ time format\n */\n TYPE[TYPE[\"time\"] = 4] = \"time\";\n /**\n * Variable w/ select format\n */\n TYPE[TYPE[\"select\"] = 5] = \"select\";\n /**\n * Variable w/ plural format\n */\n TYPE[TYPE[\"plural\"] = 6] = \"plural\";\n /**\n * Only possible within plural argument.\n * This is the `#` symbol that will be substituted with the count.\n */\n TYPE[TYPE[\"pound\"] = 7] = \"pound\";\n /**\n * XML-like tag\n */\n TYPE[TYPE[\"tag\"] = 8] = \"tag\";\n})(TYPE || (TYPE = {}));\nexport var SKELETON_TYPE;\n(function (SKELETON_TYPE) {\n SKELETON_TYPE[SKELETON_TYPE[\"number\"] = 0] = \"number\";\n SKELETON_TYPE[SKELETON_TYPE[\"dateTime\"] = 1] = \"dateTime\";\n})(SKELETON_TYPE || (SKELETON_TYPE = {}));\n/**\n * Type Guards\n */\nexport function isLiteralElement(el) {\n return el.type === TYPE.literal;\n}\nexport function isArgumentElement(el) {\n return el.type === TYPE.argument;\n}\nexport function isNumberElement(el) {\n return el.type === TYPE.number;\n}\nexport function isDateElement(el) {\n return el.type === TYPE.date;\n}\nexport function isTimeElement(el) {\n return el.type === TYPE.time;\n}\nexport function isSelectElement(el) {\n return el.type === TYPE.select;\n}\nexport function isPluralElement(el) {\n return el.type === TYPE.plural;\n}\nexport function isPoundElement(el) {\n return el.type === TYPE.pound;\n}\nexport function isTagElement(el) {\n return el.type === TYPE.tag;\n}\nexport function isNumberSkeleton(el) {\n return !!(el && typeof el === 'object' && el.type === SKELETON_TYPE.number);\n}\nexport function isDateTimeSkeleton(el) {\n return !!(el && typeof el === 'object' && el.type === SKELETON_TYPE.dateTime);\n}\nexport function createLiteralElement(value) {\n return {\n type: TYPE.literal,\n value: value,\n };\n}\nexport function createNumberElement(value, style) {\n return {\n type: TYPE.number,\n value: value,\n style: style,\n };\n}\n","// @generated from regex-gen.ts\nexport var SPACE_SEPARATOR_REGEX = /[ \\xA0\\u1680\\u2000-\\u200A\\u202F\\u205F\\u3000]/;\nexport var WHITE_SPACE_REGEX = /[\\t-\\r \\x85\\u200E\\u200F\\u2028\\u2029]/;\n","/**\n * https://unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * Credit: https://github.com/caridy/intl-datetimeformat-pattern/blob/master/index.js\n * with some tweaks\n */\nvar DATE_TIME_REGEX = /(?:[Eec]{1,6}|G{1,5}|[Qq]{1,5}|(?:[yYur]+|U{1,5})|[ML]{1,5}|d{1,2}|D{1,3}|F{1}|[abB]{1,5}|[hkHK]{1,2}|w{1,2}|W{1}|m{1,2}|s{1,2}|[zZOvVxX]{1,4})(?=([^']*'[^']*')*[^']*$)/g;\n/**\n * Parse Date time skeleton into Intl.DateTimeFormatOptions\n * Ref: https://unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * @public\n * @param skeleton skeleton string\n */\nexport function parseDateTimeSkeleton(skeleton) {\n var result = {};\n skeleton.replace(DATE_TIME_REGEX, function (match) {\n var len = match.length;\n switch (match[0]) {\n // Era\n case 'G':\n result.era = len === 4 ? 'long' : len === 5 ? 'narrow' : 'short';\n break;\n // Year\n case 'y':\n result.year = len === 2 ? '2-digit' : 'numeric';\n break;\n case 'Y':\n case 'u':\n case 'U':\n case 'r':\n throw new RangeError('`Y/u/U/r` (year) patterns are not supported, use `y` instead');\n // Quarter\n case 'q':\n case 'Q':\n throw new RangeError('`q/Q` (quarter) patterns are not supported');\n // Month\n case 'M':\n case 'L':\n result.month = ['numeric', '2-digit', 'short', 'long', 'narrow'][len - 1];\n break;\n // Week\n case 'w':\n case 'W':\n throw new RangeError('`w/W` (week) patterns are not supported');\n case 'd':\n result.day = ['numeric', '2-digit'][len - 1];\n break;\n case 'D':\n case 'F':\n case 'g':\n throw new RangeError('`D/F/g` (day) patterns are not supported, use `d` instead');\n // Weekday\n case 'E':\n result.weekday = len === 4 ? 'short' : len === 5 ? 'narrow' : 'short';\n break;\n case 'e':\n if (len < 4) {\n throw new RangeError('`e..eee` (weekday) patterns are not supported');\n }\n result.weekday = ['short', 'long', 'narrow', 'short'][len - 4];\n break;\n case 'c':\n if (len < 4) {\n throw new RangeError('`c..ccc` (weekday) patterns are not supported');\n }\n result.weekday = ['short', 'long', 'narrow', 'short'][len - 4];\n break;\n // Period\n case 'a': // AM, PM\n result.hour12 = true;\n break;\n case 'b': // am, pm, noon, midnight\n case 'B': // flexible day periods\n throw new RangeError('`b/B` (period) patterns are not supported, use `a` instead');\n // Hour\n case 'h':\n result.hourCycle = 'h12';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'H':\n result.hourCycle = 'h23';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'K':\n result.hourCycle = 'h11';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'k':\n result.hourCycle = 'h24';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'j':\n case 'J':\n case 'C':\n throw new RangeError('`j/J/C` (hour) patterns are not supported, use `h/H/K/k` instead');\n // Minute\n case 'm':\n result.minute = ['numeric', '2-digit'][len - 1];\n break;\n // Second\n case 's':\n result.second = ['numeric', '2-digit'][len - 1];\n break;\n case 'S':\n case 'A':\n throw new RangeError('`S/A` (second) patterns are not supported, use `s` instead');\n // Zone\n case 'z': // 1..3, 4: specific non-location format\n result.timeZoneName = len < 4 ? 'short' : 'long';\n break;\n case 'Z': // 1..3, 4, 5: The ISO8601 varios formats\n case 'O': // 1, 4: miliseconds in day short, long\n case 'v': // 1, 4: generic non-location format\n case 'V': // 1, 2, 3, 4: time zone ID or city\n case 'X': // 1, 2, 3, 4: The ISO8601 varios formats\n case 'x': // 1, 2, 3, 4: The ISO8601 varios formats\n throw new RangeError('`Z/O/v/V/X/x` (timeZone) patterns are not supported, use `z` instead');\n }\n return '';\n });\n return result;\n}\n","// @generated from regex-gen.ts\nexport var WHITE_SPACE_REGEX = /[\\t-\\r \\x85\\u200E\\u200F\\u2028\\u2029]/i;\n","import { __assign } from \"tslib\";\nimport { WHITE_SPACE_REGEX } from './regex.generated';\nexport function parseNumberSkeletonFromString(skeleton) {\n if (skeleton.length === 0) {\n throw new Error('Number skeleton cannot be empty');\n }\n // Parse the skeleton\n var stringTokens = skeleton\n .split(WHITE_SPACE_REGEX)\n .filter(function (x) { return x.length > 0; });\n var tokens = [];\n for (var _i = 0, stringTokens_1 = stringTokens; _i < stringTokens_1.length; _i++) {\n var stringToken = stringTokens_1[_i];\n var stemAndOptions = stringToken.split('/');\n if (stemAndOptions.length === 0) {\n throw new Error('Invalid number skeleton');\n }\n var stem = stemAndOptions[0], options = stemAndOptions.slice(1);\n for (var _a = 0, options_1 = options; _a < options_1.length; _a++) {\n var option = options_1[_a];\n if (option.length === 0) {\n throw new Error('Invalid number skeleton');\n }\n }\n tokens.push({ stem: stem, options: options });\n }\n return tokens;\n}\nfunction icuUnitToEcma(unit) {\n return unit.replace(/^(.*?)-/, '');\n}\nvar FRACTION_PRECISION_REGEX = /^\\.(?:(0+)(\\*)?|(#+)|(0+)(#+))$/g;\nvar SIGNIFICANT_PRECISION_REGEX = /^(@+)?(\\+|#+)?$/g;\nvar INTEGER_WIDTH_REGEX = /(\\*)(0+)|(#+)(0+)|(0+)/g;\nvar CONCISE_INTEGER_WIDTH_REGEX = /^(0+)$/;\nfunction parseSignificantPrecision(str) {\n var result = {};\n str.replace(SIGNIFICANT_PRECISION_REGEX, function (_, g1, g2) {\n // @@@ case\n if (typeof g2 !== 'string') {\n result.minimumSignificantDigits = g1.length;\n result.maximumSignificantDigits = g1.length;\n }\n // @@@+ case\n else if (g2 === '+') {\n result.minimumSignificantDigits = g1.length;\n }\n // .### case\n else if (g1[0] === '#') {\n result.maximumSignificantDigits = g1.length;\n }\n // .@@## or .@@@ case\n else {\n result.minimumSignificantDigits = g1.length;\n result.maximumSignificantDigits =\n g1.length + (typeof g2 === 'string' ? g2.length : 0);\n }\n return '';\n });\n return result;\n}\nfunction parseSign(str) {\n switch (str) {\n case 'sign-auto':\n return {\n signDisplay: 'auto',\n };\n case 'sign-accounting':\n case '()':\n return {\n currencySign: 'accounting',\n };\n case 'sign-always':\n case '+!':\n return {\n signDisplay: 'always',\n };\n case 'sign-accounting-always':\n case '()!':\n return {\n signDisplay: 'always',\n currencySign: 'accounting',\n };\n case 'sign-except-zero':\n case '+?':\n return {\n signDisplay: 'exceptZero',\n };\n case 'sign-accounting-except-zero':\n case '()?':\n return {\n signDisplay: 'exceptZero',\n currencySign: 'accounting',\n };\n case 'sign-never':\n case '+_':\n return {\n signDisplay: 'never',\n };\n }\n}\nfunction parseConciseScientificAndEngineeringStem(stem) {\n // Engineering\n var result;\n if (stem[0] === 'E' && stem[1] === 'E') {\n result = {\n notation: 'engineering',\n };\n stem = stem.slice(2);\n }\n else if (stem[0] === 'E') {\n result = {\n notation: 'scientific',\n };\n stem = stem.slice(1);\n }\n if (result) {\n var signDisplay = stem.slice(0, 2);\n if (signDisplay === '+!') {\n result.signDisplay = 'always';\n stem = stem.slice(2);\n }\n else if (signDisplay === '+?') {\n result.signDisplay = 'exceptZero';\n stem = stem.slice(2);\n }\n if (!CONCISE_INTEGER_WIDTH_REGEX.test(stem)) {\n throw new Error('Malformed concise eng/scientific notation');\n }\n result.minimumIntegerDigits = stem.length;\n }\n return result;\n}\nfunction parseNotationOptions(opt) {\n var result = {};\n var signOpts = parseSign(opt);\n if (signOpts) {\n return signOpts;\n }\n return result;\n}\n/**\n * https://github.com/unicode-org/icu/blob/master/docs/userguide/format_parse/numbers/skeletons.md#skeleton-stems-and-options\n */\nexport function parseNumberSkeleton(tokens) {\n var result = {};\n for (var _i = 0, tokens_1 = tokens; _i < tokens_1.length; _i++) {\n var token = tokens_1[_i];\n switch (token.stem) {\n case 'percent':\n case '%':\n result.style = 'percent';\n continue;\n case '%x100':\n result.style = 'percent';\n result.scale = 100;\n continue;\n case 'currency':\n result.style = 'currency';\n result.currency = token.options[0];\n continue;\n case 'group-off':\n case ',_':\n result.useGrouping = false;\n continue;\n case 'precision-integer':\n case '.':\n result.maximumFractionDigits = 0;\n continue;\n case 'measure-unit':\n case 'unit':\n result.style = 'unit';\n result.unit = icuUnitToEcma(token.options[0]);\n continue;\n case 'compact-short':\n case 'K':\n result.notation = 'compact';\n result.compactDisplay = 'short';\n continue;\n case 'compact-long':\n case 'KK':\n result.notation = 'compact';\n result.compactDisplay = 'long';\n continue;\n case 'scientific':\n result = __assign(__assign(__assign({}, result), { notation: 'scientific' }), token.options.reduce(function (all, opt) { return (__assign(__assign({}, all), parseNotationOptions(opt))); }, {}));\n continue;\n case 'engineering':\n result = __assign(__assign(__assign({}, result), { notation: 'engineering' }), token.options.reduce(function (all, opt) { return (__assign(__assign({}, all), parseNotationOptions(opt))); }, {}));\n continue;\n case 'notation-simple':\n result.notation = 'standard';\n continue;\n // https://github.com/unicode-org/icu/blob/master/icu4c/source/i18n/unicode/unumberformatter.h\n case 'unit-width-narrow':\n result.currencyDisplay = 'narrowSymbol';\n result.unitDisplay = 'narrow';\n continue;\n case 'unit-width-short':\n result.currencyDisplay = 'code';\n result.unitDisplay = 'short';\n continue;\n case 'unit-width-full-name':\n result.currencyDisplay = 'name';\n result.unitDisplay = 'long';\n continue;\n case 'unit-width-iso-code':\n result.currencyDisplay = 'symbol';\n continue;\n case 'scale':\n result.scale = parseFloat(token.options[0]);\n continue;\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#integer-width\n case 'integer-width':\n if (token.options.length > 1) {\n throw new RangeError('integer-width stems only accept a single optional option');\n }\n token.options[0].replace(INTEGER_WIDTH_REGEX, function (_, g1, g2, g3, g4, g5) {\n if (g1) {\n result.minimumIntegerDigits = g2.length;\n }\n else if (g3 && g4) {\n throw new Error('We currently do not support maximum integer digits');\n }\n else if (g5) {\n throw new Error('We currently do not support exact integer digits');\n }\n return '';\n });\n continue;\n }\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#integer-width\n if (CONCISE_INTEGER_WIDTH_REGEX.test(token.stem)) {\n result.minimumIntegerDigits = token.stem.length;\n continue;\n }\n if (FRACTION_PRECISION_REGEX.test(token.stem)) {\n // Precision\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#fraction-precision\n // precision-integer case\n if (token.options.length > 1) {\n throw new RangeError('Fraction-precision stems only accept a single optional option');\n }\n token.stem.replace(FRACTION_PRECISION_REGEX, function (_, g1, g2, g3, g4, g5) {\n // .000* case (before ICU67 it was .000+)\n if (g2 === '*') {\n result.minimumFractionDigits = g1.length;\n }\n // .### case\n else if (g3 && g3[0] === '#') {\n result.maximumFractionDigits = g3.length;\n }\n // .00## case\n else if (g4 && g5) {\n result.minimumFractionDigits = g4.length;\n result.maximumFractionDigits = g4.length + g5.length;\n }\n else {\n result.minimumFractionDigits = g1.length;\n result.maximumFractionDigits = g1.length;\n }\n return '';\n });\n if (token.options.length) {\n result = __assign(__assign({}, result), parseSignificantPrecision(token.options[0]));\n }\n continue;\n }\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#significant-digits-precision\n if (SIGNIFICANT_PRECISION_REGEX.test(token.stem)) {\n result = __assign(__assign({}, result), parseSignificantPrecision(token.stem));\n continue;\n }\n var signOpts = parseSign(token.stem);\n if (signOpts) {\n result = __assign(__assign({}, result), signOpts);\n }\n var conciseScientificAndEngineeringOpts = parseConciseScientificAndEngineeringStem(token.stem);\n if (conciseScientificAndEngineeringOpts) {\n result = __assign(__assign({}, result), conciseScientificAndEngineeringOpts);\n }\n }\n return result;\n}\n","var _a;\nimport { __assign } from \"tslib\";\nimport { ErrorKind } from './error';\nimport { SKELETON_TYPE, TYPE, } from './types';\nimport { SPACE_SEPARATOR_REGEX } from './regex.generated';\nimport { parseNumberSkeleton, parseNumberSkeletonFromString, parseDateTimeSkeleton, } from '@formatjs/icu-skeleton-parser';\nvar SPACE_SEPARATOR_START_REGEX = new RegExp(\"^\" + SPACE_SEPARATOR_REGEX.source + \"*\");\nvar SPACE_SEPARATOR_END_REGEX = new RegExp(SPACE_SEPARATOR_REGEX.source + \"*$\");\nfunction createLocation(start, end) {\n return { start: start, end: end };\n}\n// #region Ponyfills\n// Consolidate these variables up top for easier toggling during debugging\nvar hasNativeStartsWith = !!String.prototype.startsWith;\nvar hasNativeFromCodePoint = !!String.fromCodePoint;\nvar hasNativeFromEntries = !!Object.fromEntries;\nvar hasNativeCodePointAt = !!String.prototype.codePointAt;\nvar hasTrimStart = !!String.prototype.trimStart;\nvar hasTrimEnd = !!String.prototype.trimEnd;\nvar hasNativeIsSafeInteger = !!Number.isSafeInteger;\nvar isSafeInteger = hasNativeIsSafeInteger\n ? Number.isSafeInteger\n : function (n) {\n return (typeof n === 'number' &&\n isFinite(n) &&\n Math.floor(n) === n &&\n Math.abs(n) <= 0x1fffffffffffff);\n };\n// IE11 does not support y and u.\nvar REGEX_SUPPORTS_U_AND_Y = true;\ntry {\n var re = RE('([^\\\\p{White_Space}\\\\p{Pattern_Syntax}]*)', 'yu');\n /**\n * legacy Edge or Xbox One browser\n * Unicode flag support: supported\n * Pattern_Syntax support: not supported\n * See https://github.com/formatjs/formatjs/issues/2822\n */\n REGEX_SUPPORTS_U_AND_Y = ((_a = re.exec('a')) === null || _a === void 0 ? void 0 : _a[0]) === 'a';\n}\ncatch (_) {\n REGEX_SUPPORTS_U_AND_Y = false;\n}\nvar startsWith = hasNativeStartsWith\n ? // Native\n function startsWith(s, search, position) {\n return s.startsWith(search, position);\n }\n : // For IE11\n function startsWith(s, search, position) {\n return s.slice(position, position + search.length) === search;\n };\nvar fromCodePoint = hasNativeFromCodePoint\n ? String.fromCodePoint\n : // IE11\n function fromCodePoint() {\n var codePoints = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n codePoints[_i] = arguments[_i];\n }\n var elements = '';\n var length = codePoints.length;\n var i = 0;\n var code;\n while (length > i) {\n code = codePoints[i++];\n if (code > 0x10ffff)\n throw RangeError(code + ' is not a valid code point');\n elements +=\n code < 0x10000\n ? String.fromCharCode(code)\n : String.fromCharCode(((code -= 0x10000) >> 10) + 0xd800, (code % 0x400) + 0xdc00);\n }\n return elements;\n };\nvar fromEntries = \n// native\nhasNativeFromEntries\n ? Object.fromEntries\n : // Ponyfill\n function fromEntries(entries) {\n var obj = {};\n for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {\n var _a = entries_1[_i], k = _a[0], v = _a[1];\n obj[k] = v;\n }\n return obj;\n };\nvar codePointAt = hasNativeCodePointAt\n ? // Native\n function codePointAt(s, index) {\n return s.codePointAt(index);\n }\n : // IE 11\n function codePointAt(s, index) {\n var size = s.length;\n if (index < 0 || index >= size) {\n return undefined;\n }\n var first = s.charCodeAt(index);\n var second;\n return first < 0xd800 ||\n first > 0xdbff ||\n index + 1 === size ||\n (second = s.charCodeAt(index + 1)) < 0xdc00 ||\n second > 0xdfff\n ? first\n : ((first - 0xd800) << 10) + (second - 0xdc00) + 0x10000;\n };\nvar trimStart = hasTrimStart\n ? // Native\n function trimStart(s) {\n return s.trimStart();\n }\n : // Ponyfill\n function trimStart(s) {\n return s.replace(SPACE_SEPARATOR_START_REGEX, '');\n };\nvar trimEnd = hasTrimEnd\n ? // Native\n function trimEnd(s) {\n return s.trimEnd();\n }\n : // Ponyfill\n function trimEnd(s) {\n return s.replace(SPACE_SEPARATOR_END_REGEX, '');\n };\n// Prevent minifier to translate new RegExp to literal form that might cause syntax error on IE11.\nfunction RE(s, flag) {\n return new RegExp(s, flag);\n}\n// #endregion\nvar matchIdentifierAtIndex;\nif (REGEX_SUPPORTS_U_AND_Y) {\n // Native\n var IDENTIFIER_PREFIX_RE_1 = RE('([^\\\\p{White_Space}\\\\p{Pattern_Syntax}]*)', 'yu');\n matchIdentifierAtIndex = function matchIdentifierAtIndex(s, index) {\n var _a;\n IDENTIFIER_PREFIX_RE_1.lastIndex = index;\n var match = IDENTIFIER_PREFIX_RE_1.exec(s);\n return (_a = match[1]) !== null && _a !== void 0 ? _a : '';\n };\n}\nelse {\n // IE11\n matchIdentifierAtIndex = function matchIdentifierAtIndex(s, index) {\n var match = [];\n while (true) {\n var c = codePointAt(s, index);\n if (c === undefined || _isWhiteSpace(c) || _isPatternSyntax(c)) {\n break;\n }\n match.push(c);\n index += c >= 0x10000 ? 2 : 1;\n }\n return fromCodePoint.apply(void 0, match);\n };\n}\nvar Parser = /** @class */ (function () {\n function Parser(message, options) {\n if (options === void 0) { options = {}; }\n this.message = message;\n this.position = { offset: 0, line: 1, column: 1 };\n this.ignoreTag = !!options.ignoreTag;\n this.requiresOtherClause = !!options.requiresOtherClause;\n this.shouldParseSkeletons = !!options.shouldParseSkeletons;\n }\n Parser.prototype.parse = function () {\n if (this.offset() !== 0) {\n throw Error('parser can only be used once');\n }\n return this.parseMessage(0, '', false);\n };\n Parser.prototype.parseMessage = function (nestingLevel, parentArgType, expectingCloseTag) {\n var elements = [];\n while (!this.isEOF()) {\n var char = this.char();\n if (char === 123 /* `{` */) {\n var result = this.parseArgument(nestingLevel, expectingCloseTag);\n if (result.err) {\n return result;\n }\n elements.push(result.val);\n }\n else if (char === 125 /* `}` */ && nestingLevel > 0) {\n break;\n }\n else if (char === 35 /* `#` */ &&\n (parentArgType === 'plural' || parentArgType === 'selectordinal')) {\n var position = this.clonePosition();\n this.bump();\n elements.push({\n type: TYPE.pound,\n location: createLocation(position, this.clonePosition()),\n });\n }\n else if (char === 60 /* `<` */ &&\n !this.ignoreTag &&\n this.peek() === 47 // char code for '/'\n ) {\n if (expectingCloseTag) {\n break;\n }\n else {\n return this.error(ErrorKind.UNMATCHED_CLOSING_TAG, createLocation(this.clonePosition(), this.clonePosition()));\n }\n }\n else if (char === 60 /* `<` */ &&\n !this.ignoreTag &&\n _isAlpha(this.peek() || 0)) {\n var result = this.parseTag(nestingLevel, parentArgType);\n if (result.err) {\n return result;\n }\n elements.push(result.val);\n }\n else {\n var result = this.parseLiteral(nestingLevel, parentArgType);\n if (result.err) {\n return result;\n }\n elements.push(result.val);\n }\n }\n return { val: elements, err: null };\n };\n /**\n * A tag name must start with an ASCII lower/upper case letter. The grammar is based on the\n * [custom element name][] except that a dash is NOT always mandatory and uppercase letters\n * are accepted:\n *\n * ```\n * tag ::= \"<\" tagName (whitespace)* \"/>\" | \"<\" tagName (whitespace)* \">\" message \"\"\n * tagName ::= [a-z] (PENChar)*\n * PENChar ::=\n * \"-\" | \".\" | [0-9] | \"_\" | [a-z] | [A-Z] | #xB7 | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x37D] |\n * [#x37F-#x1FFF] | [#x200C-#x200D] | [#x203F-#x2040] | [#x2070-#x218F] | [#x2C00-#x2FEF] |\n * [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF]\n * ```\n *\n * [custom element name]: https://html.spec.whatwg.org/multipage/custom-elements.html#valid-custom-element-name\n * NOTE: We're a bit more lax here since HTML technically does not allow uppercase HTML element but we do\n * since other tag-based engines like React allow it\n */\n Parser.prototype.parseTag = function (nestingLevel, parentArgType) {\n var startPosition = this.clonePosition();\n this.bump(); // `<`\n var tagName = this.parseTagName();\n this.bumpSpace();\n if (this.bumpIf('/>')) {\n // Self closing tag\n return {\n val: {\n type: TYPE.literal,\n value: \"<\" + tagName + \"/>\",\n location: createLocation(startPosition, this.clonePosition()),\n },\n err: null,\n };\n }\n else if (this.bumpIf('>')) {\n var childrenResult = this.parseMessage(nestingLevel + 1, parentArgType, true);\n if (childrenResult.err) {\n return childrenResult;\n }\n var children = childrenResult.val;\n // Expecting a close tag\n var endTagStartPosition = this.clonePosition();\n if (this.bumpIf('')) {\n return this.error(ErrorKind.INVALID_TAG, createLocation(endTagStartPosition, this.clonePosition()));\n }\n return {\n val: {\n type: TYPE.tag,\n value: tagName,\n children: children,\n location: createLocation(startPosition, this.clonePosition()),\n },\n err: null,\n };\n }\n else {\n return this.error(ErrorKind.UNCLOSED_TAG, createLocation(startPosition, this.clonePosition()));\n }\n }\n else {\n return this.error(ErrorKind.INVALID_TAG, createLocation(startPosition, this.clonePosition()));\n }\n };\n /**\n * This method assumes that the caller has peeked ahead for the first tag character.\n */\n Parser.prototype.parseTagName = function () {\n var startOffset = this.offset();\n this.bump(); // the first tag name character\n while (!this.isEOF() && _isPotentialElementNameChar(this.char())) {\n this.bump();\n }\n return this.message.slice(startOffset, this.offset());\n };\n Parser.prototype.parseLiteral = function (nestingLevel, parentArgType) {\n var start = this.clonePosition();\n var value = '';\n while (true) {\n var parseQuoteResult = this.tryParseQuote(parentArgType);\n if (parseQuoteResult) {\n value += parseQuoteResult;\n continue;\n }\n var parseUnquotedResult = this.tryParseUnquoted(nestingLevel, parentArgType);\n if (parseUnquotedResult) {\n value += parseUnquotedResult;\n continue;\n }\n var parseLeftAngleResult = this.tryParseLeftAngleBracket();\n if (parseLeftAngleResult) {\n value += parseLeftAngleResult;\n continue;\n }\n break;\n }\n var location = createLocation(start, this.clonePosition());\n return {\n val: { type: TYPE.literal, value: value, location: location },\n err: null,\n };\n };\n Parser.prototype.tryParseLeftAngleBracket = function () {\n if (!this.isEOF() &&\n this.char() === 60 /* `<` */ &&\n (this.ignoreTag ||\n // If at the opening tag or closing tag position, bail.\n !_isAlphaOrSlash(this.peek() || 0))) {\n this.bump(); // `<`\n return '<';\n }\n return null;\n };\n /**\n * Starting with ICU 4.8, an ASCII apostrophe only starts quoted text if it immediately precedes\n * a character that requires quoting (that is, \"only where needed\"), and works the same in\n * nested messages as on the top level of the pattern. The new behavior is otherwise compatible.\n */\n Parser.prototype.tryParseQuote = function (parentArgType) {\n if (this.isEOF() || this.char() !== 39 /* `'` */) {\n return null;\n }\n // Parse escaped char following the apostrophe, or early return if there is no escaped char.\n // Check if is valid escaped character\n switch (this.peek()) {\n case 39 /* `'` */:\n // double quote, should return as a single quote.\n this.bump();\n this.bump();\n return \"'\";\n // '{', '<', '>', '}'\n case 123:\n case 60:\n case 62:\n case 125:\n break;\n case 35: // '#'\n if (parentArgType === 'plural' || parentArgType === 'selectordinal') {\n break;\n }\n return null;\n default:\n return null;\n }\n this.bump(); // apostrophe\n var codePoints = [this.char()]; // escaped char\n this.bump();\n // read chars until the optional closing apostrophe is found\n while (!this.isEOF()) {\n var ch = this.char();\n if (ch === 39 /* `'` */) {\n if (this.peek() === 39 /* `'` */) {\n codePoints.push(39);\n // Bump one more time because we need to skip 2 characters.\n this.bump();\n }\n else {\n // Optional closing apostrophe.\n this.bump();\n break;\n }\n }\n else {\n codePoints.push(ch);\n }\n this.bump();\n }\n return fromCodePoint.apply(void 0, codePoints);\n };\n Parser.prototype.tryParseUnquoted = function (nestingLevel, parentArgType) {\n if (this.isEOF()) {\n return null;\n }\n var ch = this.char();\n if (ch === 60 /* `<` */ ||\n ch === 123 /* `{` */ ||\n (ch === 35 /* `#` */ &&\n (parentArgType === 'plural' || parentArgType === 'selectordinal')) ||\n (ch === 125 /* `}` */ && nestingLevel > 0)) {\n return null;\n }\n else {\n this.bump();\n return fromCodePoint(ch);\n }\n };\n Parser.prototype.parseArgument = function (nestingLevel, expectingCloseTag) {\n var openingBracePosition = this.clonePosition();\n this.bump(); // `{`\n this.bumpSpace();\n if (this.isEOF()) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n if (this.char() === 125 /* `}` */) {\n this.bump();\n return this.error(ErrorKind.EMPTY_ARGUMENT, createLocation(openingBracePosition, this.clonePosition()));\n }\n // argument name\n var value = this.parseIdentifierIfPossible().value;\n if (!value) {\n return this.error(ErrorKind.MALFORMED_ARGUMENT, createLocation(openingBracePosition, this.clonePosition()));\n }\n this.bumpSpace();\n if (this.isEOF()) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n switch (this.char()) {\n // Simple argument: `{name}`\n case 125 /* `}` */: {\n this.bump(); // `}`\n return {\n val: {\n type: TYPE.argument,\n // value does not include the opening and closing braces.\n value: value,\n location: createLocation(openingBracePosition, this.clonePosition()),\n },\n err: null,\n };\n }\n // Argument with options: `{name, format, ...}`\n case 44 /* `,` */: {\n this.bump(); // `,`\n this.bumpSpace();\n if (this.isEOF()) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n return this.parseArgumentOptions(nestingLevel, expectingCloseTag, value, openingBracePosition);\n }\n default:\n return this.error(ErrorKind.MALFORMED_ARGUMENT, createLocation(openingBracePosition, this.clonePosition()));\n }\n };\n /**\n * Advance the parser until the end of the identifier, if it is currently on\n * an identifier character. Return an empty string otherwise.\n */\n Parser.prototype.parseIdentifierIfPossible = function () {\n var startingPosition = this.clonePosition();\n var startOffset = this.offset();\n var value = matchIdentifierAtIndex(this.message, startOffset);\n var endOffset = startOffset + value.length;\n this.bumpTo(endOffset);\n var endPosition = this.clonePosition();\n var location = createLocation(startingPosition, endPosition);\n return { value: value, location: location };\n };\n Parser.prototype.parseArgumentOptions = function (nestingLevel, expectingCloseTag, value, openingBracePosition) {\n var _a;\n // Parse this range:\n // {name, type, style}\n // ^---^\n var typeStartPosition = this.clonePosition();\n var argType = this.parseIdentifierIfPossible().value;\n var typeEndPosition = this.clonePosition();\n switch (argType) {\n case '':\n // Expecting a style string number, date, time, plural, selectordinal, or select.\n return this.error(ErrorKind.EXPECT_ARGUMENT_TYPE, createLocation(typeStartPosition, typeEndPosition));\n case 'number':\n case 'date':\n case 'time': {\n // Parse this range:\n // {name, number, style}\n // ^-------^\n this.bumpSpace();\n var styleAndLocation = null;\n if (this.bumpIf(',')) {\n this.bumpSpace();\n var styleStartPosition = this.clonePosition();\n var result = this.parseSimpleArgStyleIfPossible();\n if (result.err) {\n return result;\n }\n var style = trimEnd(result.val);\n if (style.length === 0) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_STYLE, createLocation(this.clonePosition(), this.clonePosition()));\n }\n var styleLocation = createLocation(styleStartPosition, this.clonePosition());\n styleAndLocation = { style: style, styleLocation: styleLocation };\n }\n var argCloseResult = this.tryParseArgumentClose(openingBracePosition);\n if (argCloseResult.err) {\n return argCloseResult;\n }\n var location_1 = createLocation(openingBracePosition, this.clonePosition());\n // Extract style or skeleton\n if (styleAndLocation && startsWith(styleAndLocation === null || styleAndLocation === void 0 ? void 0 : styleAndLocation.style, '::', 0)) {\n // Skeleton starts with `::`.\n var skeleton = trimStart(styleAndLocation.style.slice(2));\n if (argType === 'number') {\n var result = this.parseNumberSkeletonFromString(skeleton, styleAndLocation.styleLocation);\n if (result.err) {\n return result;\n }\n return {\n val: { type: TYPE.number, value: value, location: location_1, style: result.val },\n err: null,\n };\n }\n else {\n if (skeleton.length === 0) {\n return this.error(ErrorKind.EXPECT_DATE_TIME_SKELETON, location_1);\n }\n var style = {\n type: SKELETON_TYPE.dateTime,\n pattern: skeleton,\n location: styleAndLocation.styleLocation,\n parsedOptions: this.shouldParseSkeletons\n ? parseDateTimeSkeleton(skeleton)\n : {},\n };\n var type = argType === 'date' ? TYPE.date : TYPE.time;\n return {\n val: { type: type, value: value, location: location_1, style: style },\n err: null,\n };\n }\n }\n // Regular style or no style.\n return {\n val: {\n type: argType === 'number'\n ? TYPE.number\n : argType === 'date'\n ? TYPE.date\n : TYPE.time,\n value: value,\n location: location_1,\n style: (_a = styleAndLocation === null || styleAndLocation === void 0 ? void 0 : styleAndLocation.style) !== null && _a !== void 0 ? _a : null,\n },\n err: null,\n };\n }\n case 'plural':\n case 'selectordinal':\n case 'select': {\n // Parse this range:\n // {name, plural, options}\n // ^---------^\n var typeEndPosition_1 = this.clonePosition();\n this.bumpSpace();\n if (!this.bumpIf(',')) {\n return this.error(ErrorKind.EXPECT_SELECT_ARGUMENT_OPTIONS, createLocation(typeEndPosition_1, __assign({}, typeEndPosition_1)));\n }\n this.bumpSpace();\n // Parse offset:\n // {name, plural, offset:1, options}\n // ^-----^\n //\n // or the first option:\n //\n // {name, plural, one {...} other {...}}\n // ^--^\n var identifierAndLocation = this.parseIdentifierIfPossible();\n var pluralOffset = 0;\n if (argType !== 'select' && identifierAndLocation.value === 'offset') {\n if (!this.bumpIf(':')) {\n return this.error(ErrorKind.EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE, createLocation(this.clonePosition(), this.clonePosition()));\n }\n this.bumpSpace();\n var result = this.tryParseDecimalInteger(ErrorKind.EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE, ErrorKind.INVALID_PLURAL_ARGUMENT_OFFSET_VALUE);\n if (result.err) {\n return result;\n }\n // Parse another identifier for option parsing\n this.bumpSpace();\n identifierAndLocation = this.parseIdentifierIfPossible();\n pluralOffset = result.val;\n }\n var optionsResult = this.tryParsePluralOrSelectOptions(nestingLevel, argType, expectingCloseTag, identifierAndLocation);\n if (optionsResult.err) {\n return optionsResult;\n }\n var argCloseResult = this.tryParseArgumentClose(openingBracePosition);\n if (argCloseResult.err) {\n return argCloseResult;\n }\n var location_2 = createLocation(openingBracePosition, this.clonePosition());\n if (argType === 'select') {\n return {\n val: {\n type: TYPE.select,\n value: value,\n options: fromEntries(optionsResult.val),\n location: location_2,\n },\n err: null,\n };\n }\n else {\n return {\n val: {\n type: TYPE.plural,\n value: value,\n options: fromEntries(optionsResult.val),\n offset: pluralOffset,\n pluralType: argType === 'plural' ? 'cardinal' : 'ordinal',\n location: location_2,\n },\n err: null,\n };\n }\n }\n default:\n return this.error(ErrorKind.INVALID_ARGUMENT_TYPE, createLocation(typeStartPosition, typeEndPosition));\n }\n };\n Parser.prototype.tryParseArgumentClose = function (openingBracePosition) {\n // Parse: {value, number, ::currency/GBP }\n //\n if (this.isEOF() || this.char() !== 125 /* `}` */) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n this.bump(); // `}`\n return { val: true, err: null };\n };\n /**\n * See: https://github.com/unicode-org/icu/blob/af7ed1f6d2298013dc303628438ec4abe1f16479/icu4c/source/common/messagepattern.cpp#L659\n */\n Parser.prototype.parseSimpleArgStyleIfPossible = function () {\n var nestedBraces = 0;\n var startPosition = this.clonePosition();\n while (!this.isEOF()) {\n var ch = this.char();\n switch (ch) {\n case 39 /* `'` */: {\n // Treat apostrophe as quoting but include it in the style part.\n // Find the end of the quoted literal text.\n this.bump();\n var apostrophePosition = this.clonePosition();\n if (!this.bumpUntil(\"'\")) {\n return this.error(ErrorKind.UNCLOSED_QUOTE_IN_ARGUMENT_STYLE, createLocation(apostrophePosition, this.clonePosition()));\n }\n this.bump();\n break;\n }\n case 123 /* `{` */: {\n nestedBraces += 1;\n this.bump();\n break;\n }\n case 125 /* `}` */: {\n if (nestedBraces > 0) {\n nestedBraces -= 1;\n }\n else {\n return {\n val: this.message.slice(startPosition.offset, this.offset()),\n err: null,\n };\n }\n break;\n }\n default:\n this.bump();\n break;\n }\n }\n return {\n val: this.message.slice(startPosition.offset, this.offset()),\n err: null,\n };\n };\n Parser.prototype.parseNumberSkeletonFromString = function (skeleton, location) {\n var tokens = [];\n try {\n tokens = parseNumberSkeletonFromString(skeleton);\n }\n catch (e) {\n return this.error(ErrorKind.INVALID_NUMBER_SKELETON, location);\n }\n return {\n val: {\n type: SKELETON_TYPE.number,\n tokens: tokens,\n location: location,\n parsedOptions: this.shouldParseSkeletons\n ? parseNumberSkeleton(tokens)\n : {},\n },\n err: null,\n };\n };\n /**\n * @param nesting_level The current nesting level of messages.\n * This can be positive when parsing message fragment in select or plural argument options.\n * @param parent_arg_type The parent argument's type.\n * @param parsed_first_identifier If provided, this is the first identifier-like selector of\n * the argument. It is a by-product of a previous parsing attempt.\n * @param expecting_close_tag If true, this message is directly or indirectly nested inside\n * between a pair of opening and closing tags. The nested message will not parse beyond\n * the closing tag boundary.\n */\n Parser.prototype.tryParsePluralOrSelectOptions = function (nestingLevel, parentArgType, expectCloseTag, parsedFirstIdentifier) {\n var _a;\n var hasOtherClause = false;\n var options = [];\n var parsedSelectors = new Set();\n var selector = parsedFirstIdentifier.value, selectorLocation = parsedFirstIdentifier.location;\n // Parse:\n // one {one apple}\n // ^--^\n while (true) {\n if (selector.length === 0) {\n var startPosition = this.clonePosition();\n if (parentArgType !== 'select' && this.bumpIf('=')) {\n // Try parse `={number}` selector\n var result = this.tryParseDecimalInteger(ErrorKind.EXPECT_PLURAL_ARGUMENT_SELECTOR, ErrorKind.INVALID_PLURAL_ARGUMENT_SELECTOR);\n if (result.err) {\n return result;\n }\n selectorLocation = createLocation(startPosition, this.clonePosition());\n selector = this.message.slice(startPosition.offset, this.offset());\n }\n else {\n break;\n }\n }\n // Duplicate selector clauses\n if (parsedSelectors.has(selector)) {\n return this.error(parentArgType === 'select'\n ? ErrorKind.DUPLICATE_SELECT_ARGUMENT_SELECTOR\n : ErrorKind.DUPLICATE_PLURAL_ARGUMENT_SELECTOR, selectorLocation);\n }\n if (selector === 'other') {\n hasOtherClause = true;\n }\n // Parse:\n // one {one apple}\n // ^----------^\n this.bumpSpace();\n var openingBracePosition = this.clonePosition();\n if (!this.bumpIf('{')) {\n return this.error(parentArgType === 'select'\n ? ErrorKind.EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT\n : ErrorKind.EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT, createLocation(this.clonePosition(), this.clonePosition()));\n }\n var fragmentResult = this.parseMessage(nestingLevel + 1, parentArgType, expectCloseTag);\n if (fragmentResult.err) {\n return fragmentResult;\n }\n var argCloseResult = this.tryParseArgumentClose(openingBracePosition);\n if (argCloseResult.err) {\n return argCloseResult;\n }\n options.push([\n selector,\n {\n value: fragmentResult.val,\n location: createLocation(openingBracePosition, this.clonePosition()),\n },\n ]);\n // Keep track of the existing selectors\n parsedSelectors.add(selector);\n // Prep next selector clause.\n this.bumpSpace();\n (_a = this.parseIdentifierIfPossible(), selector = _a.value, selectorLocation = _a.location);\n }\n if (options.length === 0) {\n return this.error(parentArgType === 'select'\n ? ErrorKind.EXPECT_SELECT_ARGUMENT_SELECTOR\n : ErrorKind.EXPECT_PLURAL_ARGUMENT_SELECTOR, createLocation(this.clonePosition(), this.clonePosition()));\n }\n if (this.requiresOtherClause && !hasOtherClause) {\n return this.error(ErrorKind.MISSING_OTHER_CLAUSE, createLocation(this.clonePosition(), this.clonePosition()));\n }\n return { val: options, err: null };\n };\n Parser.prototype.tryParseDecimalInteger = function (expectNumberError, invalidNumberError) {\n var sign = 1;\n var startingPosition = this.clonePosition();\n if (this.bumpIf('+')) {\n }\n else if (this.bumpIf('-')) {\n sign = -1;\n }\n var hasDigits = false;\n var decimal = 0;\n while (!this.isEOF()) {\n var ch = this.char();\n if (ch >= 48 /* `0` */ && ch <= 57 /* `9` */) {\n hasDigits = true;\n decimal = decimal * 10 + (ch - 48);\n this.bump();\n }\n else {\n break;\n }\n }\n var location = createLocation(startingPosition, this.clonePosition());\n if (!hasDigits) {\n return this.error(expectNumberError, location);\n }\n decimal *= sign;\n if (!isSafeInteger(decimal)) {\n return this.error(invalidNumberError, location);\n }\n return { val: decimal, err: null };\n };\n Parser.prototype.offset = function () {\n return this.position.offset;\n };\n Parser.prototype.isEOF = function () {\n return this.offset() === this.message.length;\n };\n Parser.prototype.clonePosition = function () {\n // This is much faster than `Object.assign` or spread.\n return {\n offset: this.position.offset,\n line: this.position.line,\n column: this.position.column,\n };\n };\n /**\n * Return the code point at the current position of the parser.\n * Throws if the index is out of bound.\n */\n Parser.prototype.char = function () {\n var offset = this.position.offset;\n if (offset >= this.message.length) {\n throw Error('out of bound');\n }\n var code = codePointAt(this.message, offset);\n if (code === undefined) {\n throw Error(\"Offset \" + offset + \" is at invalid UTF-16 code unit boundary\");\n }\n return code;\n };\n Parser.prototype.error = function (kind, location) {\n return {\n val: null,\n err: {\n kind: kind,\n message: this.message,\n location: location,\n },\n };\n };\n /** Bump the parser to the next UTF-16 code unit. */\n Parser.prototype.bump = function () {\n if (this.isEOF()) {\n return;\n }\n var code = this.char();\n if (code === 10 /* '\\n' */) {\n this.position.line += 1;\n this.position.column = 1;\n this.position.offset += 1;\n }\n else {\n this.position.column += 1;\n // 0 ~ 0x10000 -> unicode BMP, otherwise skip the surrogate pair.\n this.position.offset += code < 0x10000 ? 1 : 2;\n }\n };\n /**\n * If the substring starting at the current position of the parser has\n * the given prefix, then bump the parser to the character immediately\n * following the prefix and return true. Otherwise, don't bump the parser\n * and return false.\n */\n Parser.prototype.bumpIf = function (prefix) {\n if (startsWith(this.message, prefix, this.offset())) {\n for (var i = 0; i < prefix.length; i++) {\n this.bump();\n }\n return true;\n }\n return false;\n };\n /**\n * Bump the parser until the pattern character is found and return `true`.\n * Otherwise bump to the end of the file and return `false`.\n */\n Parser.prototype.bumpUntil = function (pattern) {\n var currentOffset = this.offset();\n var index = this.message.indexOf(pattern, currentOffset);\n if (index >= 0) {\n this.bumpTo(index);\n return true;\n }\n else {\n this.bumpTo(this.message.length);\n return false;\n }\n };\n /**\n * Bump the parser to the target offset.\n * If target offset is beyond the end of the input, bump the parser to the end of the input.\n */\n Parser.prototype.bumpTo = function (targetOffset) {\n if (this.offset() > targetOffset) {\n throw Error(\"targetOffset \" + targetOffset + \" must be greater than or equal to the current offset \" + this.offset());\n }\n targetOffset = Math.min(targetOffset, this.message.length);\n while (true) {\n var offset = this.offset();\n if (offset === targetOffset) {\n break;\n }\n if (offset > targetOffset) {\n throw Error(\"targetOffset \" + targetOffset + \" is at invalid UTF-16 code unit boundary\");\n }\n this.bump();\n if (this.isEOF()) {\n break;\n }\n }\n };\n /** advance the parser through all whitespace to the next non-whitespace code unit. */\n Parser.prototype.bumpSpace = function () {\n while (!this.isEOF() && _isWhiteSpace(this.char())) {\n this.bump();\n }\n };\n /**\n * Peek at the *next* Unicode codepoint in the input without advancing the parser.\n * If the input has been exhausted, then this returns null.\n */\n Parser.prototype.peek = function () {\n if (this.isEOF()) {\n return null;\n }\n var code = this.char();\n var offset = this.offset();\n var nextCode = this.message.charCodeAt(offset + (code >= 0x10000 ? 2 : 1));\n return nextCode !== null && nextCode !== void 0 ? nextCode : null;\n };\n return Parser;\n}());\nexport { Parser };\n/**\n * This check if codepoint is alphabet (lower & uppercase)\n * @param codepoint\n * @returns\n */\nfunction _isAlpha(codepoint) {\n return ((codepoint >= 97 && codepoint <= 122) ||\n (codepoint >= 65 && codepoint <= 90));\n}\nfunction _isAlphaOrSlash(codepoint) {\n return _isAlpha(codepoint) || codepoint === 47; /* '/' */\n}\n/** See `parseTag` function docs. */\nfunction _isPotentialElementNameChar(c) {\n return (c === 45 /* '-' */ ||\n c === 46 /* '.' */ ||\n (c >= 48 && c <= 57) /* 0..9 */ ||\n c === 95 /* '_' */ ||\n (c >= 97 && c <= 122) /** a..z */ ||\n (c >= 65 && c <= 90) /* A..Z */ ||\n c == 0xb7 ||\n (c >= 0xc0 && c <= 0xd6) ||\n (c >= 0xd8 && c <= 0xf6) ||\n (c >= 0xf8 && c <= 0x37d) ||\n (c >= 0x37f && c <= 0x1fff) ||\n (c >= 0x200c && c <= 0x200d) ||\n (c >= 0x203f && c <= 0x2040) ||\n (c >= 0x2070 && c <= 0x218f) ||\n (c >= 0x2c00 && c <= 0x2fef) ||\n (c >= 0x3001 && c <= 0xd7ff) ||\n (c >= 0xf900 && c <= 0xfdcf) ||\n (c >= 0xfdf0 && c <= 0xfffd) ||\n (c >= 0x10000 && c <= 0xeffff));\n}\n/**\n * Code point equivalent of regex `\\p{White_Space}`.\n * From: https://www.unicode.org/Public/UCD/latest/ucd/PropList.txt\n */\nfunction _isWhiteSpace(c) {\n return ((c >= 0x0009 && c <= 0x000d) ||\n c === 0x0020 ||\n c === 0x0085 ||\n (c >= 0x200e && c <= 0x200f) ||\n c === 0x2028 ||\n c === 0x2029);\n}\n/**\n * Code point equivalent of regex `\\p{Pattern_Syntax}`.\n * See https://www.unicode.org/Public/UCD/latest/ucd/PropList.txt\n */\nfunction _isPatternSyntax(c) {\n return ((c >= 0x0021 && c <= 0x0023) ||\n c === 0x0024 ||\n (c >= 0x0025 && c <= 0x0027) ||\n c === 0x0028 ||\n c === 0x0029 ||\n c === 0x002a ||\n c === 0x002b ||\n c === 0x002c ||\n c === 0x002d ||\n (c >= 0x002e && c <= 0x002f) ||\n (c >= 0x003a && c <= 0x003b) ||\n (c >= 0x003c && c <= 0x003e) ||\n (c >= 0x003f && c <= 0x0040) ||\n c === 0x005b ||\n c === 0x005c ||\n c === 0x005d ||\n c === 0x005e ||\n c === 0x0060 ||\n c === 0x007b ||\n c === 0x007c ||\n c === 0x007d ||\n c === 0x007e ||\n c === 0x00a1 ||\n (c >= 0x00a2 && c <= 0x00a5) ||\n c === 0x00a6 ||\n c === 0x00a7 ||\n c === 0x00a9 ||\n c === 0x00ab ||\n c === 0x00ac ||\n c === 0x00ae ||\n c === 0x00b0 ||\n c === 0x00b1 ||\n c === 0x00b6 ||\n c === 0x00bb ||\n c === 0x00bf ||\n c === 0x00d7 ||\n c === 0x00f7 ||\n (c >= 0x2010 && c <= 0x2015) ||\n (c >= 0x2016 && c <= 0x2017) ||\n c === 0x2018 ||\n c === 0x2019 ||\n c === 0x201a ||\n (c >= 0x201b && c <= 0x201c) ||\n c === 0x201d ||\n c === 0x201e ||\n c === 0x201f ||\n (c >= 0x2020 && c <= 0x2027) ||\n (c >= 0x2030 && c <= 0x2038) ||\n c === 0x2039 ||\n c === 0x203a ||\n (c >= 0x203b && c <= 0x203e) ||\n (c >= 0x2041 && c <= 0x2043) ||\n c === 0x2044 ||\n c === 0x2045 ||\n c === 0x2046 ||\n (c >= 0x2047 && c <= 0x2051) ||\n c === 0x2052 ||\n c === 0x2053 ||\n (c >= 0x2055 && c <= 0x205e) ||\n (c >= 0x2190 && c <= 0x2194) ||\n (c >= 0x2195 && c <= 0x2199) ||\n (c >= 0x219a && c <= 0x219b) ||\n (c >= 0x219c && c <= 0x219f) ||\n c === 0x21a0 ||\n (c >= 0x21a1 && c <= 0x21a2) ||\n c === 0x21a3 ||\n (c >= 0x21a4 && c <= 0x21a5) ||\n c === 0x21a6 ||\n (c >= 0x21a7 && c <= 0x21ad) ||\n c === 0x21ae ||\n (c >= 0x21af && c <= 0x21cd) ||\n (c >= 0x21ce && c <= 0x21cf) ||\n (c >= 0x21d0 && c <= 0x21d1) ||\n c === 0x21d2 ||\n c === 0x21d3 ||\n c === 0x21d4 ||\n (c >= 0x21d5 && c <= 0x21f3) ||\n (c >= 0x21f4 && c <= 0x22ff) ||\n (c >= 0x2300 && c <= 0x2307) ||\n c === 0x2308 ||\n c === 0x2309 ||\n c === 0x230a ||\n c === 0x230b ||\n (c >= 0x230c && c <= 0x231f) ||\n (c >= 0x2320 && c <= 0x2321) ||\n (c >= 0x2322 && c <= 0x2328) ||\n c === 0x2329 ||\n c === 0x232a ||\n (c >= 0x232b && c <= 0x237b) ||\n c === 0x237c ||\n (c >= 0x237d && c <= 0x239a) ||\n (c >= 0x239b && c <= 0x23b3) ||\n (c >= 0x23b4 && c <= 0x23db) ||\n (c >= 0x23dc && c <= 0x23e1) ||\n (c >= 0x23e2 && c <= 0x2426) ||\n (c >= 0x2427 && c <= 0x243f) ||\n (c >= 0x2440 && c <= 0x244a) ||\n (c >= 0x244b && c <= 0x245f) ||\n (c >= 0x2500 && c <= 0x25b6) ||\n c === 0x25b7 ||\n (c >= 0x25b8 && c <= 0x25c0) ||\n c === 0x25c1 ||\n (c >= 0x25c2 && c <= 0x25f7) ||\n (c >= 0x25f8 && c <= 0x25ff) ||\n (c >= 0x2600 && c <= 0x266e) ||\n c === 0x266f ||\n (c >= 0x2670 && c <= 0x2767) ||\n c === 0x2768 ||\n c === 0x2769 ||\n c === 0x276a ||\n c === 0x276b ||\n c === 0x276c ||\n c === 0x276d ||\n c === 0x276e ||\n c === 0x276f ||\n c === 0x2770 ||\n c === 0x2771 ||\n c === 0x2772 ||\n c === 0x2773 ||\n c === 0x2774 ||\n c === 0x2775 ||\n (c >= 0x2794 && c <= 0x27bf) ||\n (c >= 0x27c0 && c <= 0x27c4) ||\n c === 0x27c5 ||\n c === 0x27c6 ||\n (c >= 0x27c7 && c <= 0x27e5) ||\n c === 0x27e6 ||\n c === 0x27e7 ||\n c === 0x27e8 ||\n c === 0x27e9 ||\n c === 0x27ea ||\n c === 0x27eb ||\n c === 0x27ec ||\n c === 0x27ed ||\n c === 0x27ee ||\n c === 0x27ef ||\n (c >= 0x27f0 && c <= 0x27ff) ||\n (c >= 0x2800 && c <= 0x28ff) ||\n (c >= 0x2900 && c <= 0x2982) ||\n c === 0x2983 ||\n c === 0x2984 ||\n c === 0x2985 ||\n c === 0x2986 ||\n c === 0x2987 ||\n c === 0x2988 ||\n c === 0x2989 ||\n c === 0x298a ||\n c === 0x298b ||\n c === 0x298c ||\n c === 0x298d ||\n c === 0x298e ||\n c === 0x298f ||\n c === 0x2990 ||\n c === 0x2991 ||\n c === 0x2992 ||\n c === 0x2993 ||\n c === 0x2994 ||\n c === 0x2995 ||\n c === 0x2996 ||\n c === 0x2997 ||\n c === 0x2998 ||\n (c >= 0x2999 && c <= 0x29d7) ||\n c === 0x29d8 ||\n c === 0x29d9 ||\n c === 0x29da ||\n c === 0x29db ||\n (c >= 0x29dc && c <= 0x29fb) ||\n c === 0x29fc ||\n c === 0x29fd ||\n (c >= 0x29fe && c <= 0x2aff) ||\n (c >= 0x2b00 && c <= 0x2b2f) ||\n (c >= 0x2b30 && c <= 0x2b44) ||\n (c >= 0x2b45 && c <= 0x2b46) ||\n (c >= 0x2b47 && c <= 0x2b4c) ||\n (c >= 0x2b4d && c <= 0x2b73) ||\n (c >= 0x2b74 && c <= 0x2b75) ||\n (c >= 0x2b76 && c <= 0x2b95) ||\n c === 0x2b96 ||\n (c >= 0x2b97 && c <= 0x2bff) ||\n (c >= 0x2e00 && c <= 0x2e01) ||\n c === 0x2e02 ||\n c === 0x2e03 ||\n c === 0x2e04 ||\n c === 0x2e05 ||\n (c >= 0x2e06 && c <= 0x2e08) ||\n c === 0x2e09 ||\n c === 0x2e0a ||\n c === 0x2e0b ||\n c === 0x2e0c ||\n c === 0x2e0d ||\n (c >= 0x2e0e && c <= 0x2e16) ||\n c === 0x2e17 ||\n (c >= 0x2e18 && c <= 0x2e19) ||\n c === 0x2e1a ||\n c === 0x2e1b ||\n c === 0x2e1c ||\n c === 0x2e1d ||\n (c >= 0x2e1e && c <= 0x2e1f) ||\n c === 0x2e20 ||\n c === 0x2e21 ||\n c === 0x2e22 ||\n c === 0x2e23 ||\n c === 0x2e24 ||\n c === 0x2e25 ||\n c === 0x2e26 ||\n c === 0x2e27 ||\n c === 0x2e28 ||\n c === 0x2e29 ||\n (c >= 0x2e2a && c <= 0x2e2e) ||\n c === 0x2e2f ||\n (c >= 0x2e30 && c <= 0x2e39) ||\n (c >= 0x2e3a && c <= 0x2e3b) ||\n (c >= 0x2e3c && c <= 0x2e3f) ||\n c === 0x2e40 ||\n c === 0x2e41 ||\n c === 0x2e42 ||\n (c >= 0x2e43 && c <= 0x2e4f) ||\n (c >= 0x2e50 && c <= 0x2e51) ||\n c === 0x2e52 ||\n (c >= 0x2e53 && c <= 0x2e7f) ||\n (c >= 0x3001 && c <= 0x3003) ||\n c === 0x3008 ||\n c === 0x3009 ||\n c === 0x300a ||\n c === 0x300b ||\n c === 0x300c ||\n c === 0x300d ||\n c === 0x300e ||\n c === 0x300f ||\n c === 0x3010 ||\n c === 0x3011 ||\n (c >= 0x3012 && c <= 0x3013) ||\n c === 0x3014 ||\n c === 0x3015 ||\n c === 0x3016 ||\n c === 0x3017 ||\n c === 0x3018 ||\n c === 0x3019 ||\n c === 0x301a ||\n c === 0x301b ||\n c === 0x301c ||\n c === 0x301d ||\n (c >= 0x301e && c <= 0x301f) ||\n c === 0x3020 ||\n c === 0x3030 ||\n c === 0xfd3e ||\n c === 0xfd3f ||\n (c >= 0xfe45 && c <= 0xfe46));\n}\n","import { __assign } from \"tslib\";\nimport { ErrorKind } from './error';\nimport { Parser } from './parser';\nimport { isDateElement, isDateTimeSkeleton, isNumberElement, isNumberSkeleton, isPluralElement, isSelectElement, isTagElement, isTimeElement, } from './types';\nfunction pruneLocation(els) {\n els.forEach(function (el) {\n delete el.location;\n if (isSelectElement(el) || isPluralElement(el)) {\n for (var k in el.options) {\n delete el.options[k].location;\n pruneLocation(el.options[k].value);\n }\n }\n else if (isNumberElement(el) && isNumberSkeleton(el.style)) {\n delete el.style.location;\n }\n else if ((isDateElement(el) || isTimeElement(el)) &&\n isDateTimeSkeleton(el.style)) {\n delete el.style.location;\n }\n else if (isTagElement(el)) {\n pruneLocation(el.children);\n }\n });\n}\nexport function parse(message, opts) {\n if (opts === void 0) { opts = {}; }\n opts = __assign({ shouldParseSkeletons: true, requiresOtherClause: true }, opts);\n var result = new Parser(message, opts).parse();\n if (result.err) {\n var error = SyntaxError(ErrorKind[result.err.kind]);\n // @ts-expect-error Assign to error object\n error.location = result.err.location;\n // @ts-expect-error Assign to error object\n error.originalMessage = result.err.message;\n throw error;\n }\n if (!(opts === null || opts === void 0 ? void 0 : opts.captureLocation)) {\n pruneLocation(result.val);\n }\n return result.val;\n}\nexport * from './types';\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}","export default function getNodeName(element) {\n return element ? (element.nodeName || '').toLowerCase() : null;\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}","import { isElement } from \"./instanceOf.js\";\nexport default function getDocumentElement(element) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return ((isElement(element) ? element.ownerDocument : // $FlowFixMe[prop-missing]\n element.document) || window.document).documentElement;\n}","import getWindow from \"./getWindow.js\";\nexport default function getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}","// ES6 Map\nvar map\ntry {\n map = Map\n} catch (_) { }\nvar set\n\n// ES6 Set\ntry {\n set = Set\n} catch (_) { }\n\nfunction baseClone (src, circulars, clones) {\n // Null/undefined/functions/etc\n if (!src || typeof src !== 'object' || typeof src === 'function') {\n return src\n }\n\n // DOM Node\n if (src.nodeType && 'cloneNode' in src) {\n return src.cloneNode(true)\n }\n\n // Date\n if (src instanceof Date) {\n return new Date(src.getTime())\n }\n\n // RegExp\n if (src instanceof RegExp) {\n return new RegExp(src)\n }\n\n // Arrays\n if (Array.isArray(src)) {\n return src.map(clone)\n }\n\n // ES6 Maps\n if (map && src instanceof map) {\n return new Map(Array.from(src.entries()))\n }\n\n // ES6 Sets\n if (set && src instanceof set) {\n return new Set(Array.from(src.values()))\n }\n\n // Object\n if (src instanceof Object) {\n circulars.push(src)\n var obj = Object.create(src)\n clones.push(obj)\n for (var key in src) {\n var idx = circulars.findIndex(function (i) {\n return i === src[key]\n })\n obj[key] = idx > -1 ? clones[idx] : baseClone(src[key], circulars, clones)\n }\n return obj\n }\n\n // ???\n return src\n}\n\nexport default function clone (src) {\n return baseClone(src, [], [])\n}\n","const toString = Object.prototype.toString;\nconst errorToString = Error.prototype.toString;\nconst regExpToString = RegExp.prototype.toString;\nconst symbolToString = typeof Symbol !== 'undefined' ? Symbol.prototype.toString : () => '';\nconst SYMBOL_REGEXP = /^Symbol\\((.*)\\)(.*)$/;\n\nfunction printNumber(val) {\n if (val != +val) return 'NaN';\n const isNegativeZero = val === 0 && 1 / val < 0;\n return isNegativeZero ? '-0' : '' + val;\n}\n\nfunction printSimpleValue(val, quoteStrings = false) {\n if (val == null || val === true || val === false) return '' + val;\n const typeOf = typeof val;\n if (typeOf === 'number') return printNumber(val);\n if (typeOf === 'string') return quoteStrings ? `\"${val}\"` : val;\n if (typeOf === 'function') return '[Function ' + (val.name || 'anonymous') + ']';\n if (typeOf === 'symbol') return symbolToString.call(val).replace(SYMBOL_REGEXP, 'Symbol($1)');\n const tag = toString.call(val).slice(8, -1);\n if (tag === 'Date') return isNaN(val.getTime()) ? '' + val : val.toISOString(val);\n if (tag === 'Error' || val instanceof Error) return '[' + errorToString.call(val) + ']';\n if (tag === 'RegExp') return regExpToString.call(val);\n return null;\n}\n\nexport default function printValue(value, quoteStrings) {\n let result = printSimpleValue(value, quoteStrings);\n if (result !== null) return result;\n return JSON.stringify(value, function (key, value) {\n let result = printSimpleValue(this[key], quoteStrings);\n if (result !== null) return result;\n return value;\n }, 2);\n}","import printValue from './util/printValue';\nexport let mixed = {\n default: '${path} is invalid',\n required: '${path} is a required field',\n oneOf: '${path} must be one of the following values: ${values}',\n notOneOf: '${path} must not be one of the following values: ${values}',\n notType: ({\n path,\n type,\n value,\n originalValue\n }) => {\n let isCast = originalValue != null && originalValue !== value;\n let msg = `${path} must be a \\`${type}\\` type, ` + `but the final value was: \\`${printValue(value, true)}\\`` + (isCast ? ` (cast from the value \\`${printValue(originalValue, true)}\\`).` : '.');\n\n if (value === null) {\n msg += `\\n If \"null\" is intended as an empty value be sure to mark the schema as \\`.nullable()\\``;\n }\n\n return msg;\n },\n defined: '${path} must be defined'\n};\nexport let string = {\n length: '${path} must be exactly ${length} characters',\n min: '${path} must be at least ${min} characters',\n max: '${path} must be at most ${max} characters',\n matches: '${path} must match the following: \"${regex}\"',\n email: '${path} must be a valid email',\n url: '${path} must be a valid URL',\n uuid: '${path} must be a valid UUID',\n trim: '${path} must be a trimmed string',\n lowercase: '${path} must be a lowercase string',\n uppercase: '${path} must be a upper case string'\n};\nexport let number = {\n min: '${path} must be greater than or equal to ${min}',\n max: '${path} must be less than or equal to ${max}',\n lessThan: '${path} must be less than ${less}',\n moreThan: '${path} must be greater than ${more}',\n positive: '${path} must be a positive number',\n negative: '${path} must be a negative number',\n integer: '${path} must be an integer'\n};\nexport let date = {\n min: '${path} field must be later than ${min}',\n max: '${path} field must be at earlier than ${max}'\n};\nexport let boolean = {\n isValue: '${path} field must be ${value}'\n};\nexport let object = {\n noUnknown: '${path} field has unspecified keys: ${unknown}'\n};\nexport let array = {\n min: '${path} field must have at least ${min} items',\n max: '${path} field must have less than or equal to ${max} items',\n length: '${path} must be have ${length} items'\n};\nexport default Object.assign(Object.create(null), {\n mixed,\n string,\n number,\n date,\n object,\n array,\n boolean\n});","export default (obj => obj && obj.__isYupSchema__);","import has from 'lodash/has';\nimport isSchema from './util/isSchema';\n\nclass Condition {\n constructor(refs, options) {\n this.refs = refs;\n this.refs = refs;\n\n if (typeof options === 'function') {\n this.fn = options;\n return;\n }\n\n if (!has(options, 'is')) throw new TypeError('`is:` is required for `when()` conditions');\n if (!options.then && !options.otherwise) throw new TypeError('either `then:` or `otherwise:` is required for `when()` conditions');\n let {\n is,\n then,\n otherwise\n } = options;\n let check = typeof is === 'function' ? is : (...values) => values.every(value => value === is);\n\n this.fn = function (...args) {\n let options = args.pop();\n let schema = args.pop();\n let branch = check(...args) ? then : otherwise;\n if (!branch) return undefined;\n if (typeof branch === 'function') return branch(schema);\n return schema.concat(branch.resolve(options));\n };\n }\n\n resolve(base, options) {\n let values = this.refs.map(ref => ref.getValue(options == null ? void 0 : options.value, options == null ? void 0 : options.parent, options == null ? void 0 : options.context));\n let schema = this.fn.apply(base, values.concat(base, options));\n if (schema === undefined || schema === base) return base;\n if (!isSchema(schema)) throw new TypeError('conditions must return a schema object');\n return schema.resolve(options);\n }\n\n}\n\nexport default Condition;","import setPrototypeOf from \"@babel/runtime/helpers/esm/setPrototypeOf\";\nimport isNativeReflectConstruct from \"@babel/runtime/helpers/esm/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 \"@babel/runtime/helpers/esm/getPrototypeOf\";\nimport setPrototypeOf from \"@babel/runtime/helpers/esm/setPrototypeOf\";\nimport isNativeFunction from \"@babel/runtime/helpers/esm/isNativeFunction\";\nimport construct from \"@babel/runtime/helpers/esm/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}","export default function toArray(value) {\n return value == null ? [] : [].concat(value);\n}","function _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\nimport printValue from './util/printValue';\nimport toArray from './util/toArray';\nlet strReg = /\\$\\{\\s*(\\w+)\\s*\\}/g;\nexport default class ValidationError extends Error {\n static formatError(message, params) {\n const path = params.label || params.path || 'this';\n if (path !== params.path) params = _extends({}, params, {\n path\n });\n if (typeof message === 'string') return message.replace(strReg, (_, key) => printValue(params[key]));\n if (typeof message === 'function') return message(params);\n return message;\n }\n\n static isError(err) {\n return err && err.name === 'ValidationError';\n }\n\n constructor(errorOrErrors, value, field, type) {\n super();\n this.name = 'ValidationError';\n this.value = value;\n this.path = field;\n this.type = type;\n this.errors = [];\n this.inner = [];\n toArray(errorOrErrors).forEach(err => {\n if (ValidationError.isError(err)) {\n this.errors.push(...err.errors);\n this.inner = this.inner.concat(err.inner.length ? err.inner : err);\n } else {\n this.errors.push(err);\n }\n });\n this.message = this.errors.length > 1 ? `${this.errors.length} errors occurred` : this.errors[0];\n if (Error.captureStackTrace) Error.captureStackTrace(this, ValidationError);\n }\n\n}","import ValidationError from '../ValidationError';\n\nconst once = cb => {\n let fired = false;\n return (...args) => {\n if (fired) return;\n fired = true;\n cb(...args);\n };\n};\n\nexport default function runTests(options, cb) {\n let {\n endEarly,\n tests,\n args,\n value,\n errors,\n sort,\n path\n } = options;\n let callback = once(cb);\n let count = tests.length;\n const nestedErrors = [];\n errors = errors ? errors : [];\n if (!count) return errors.length ? callback(new ValidationError(errors, value, path)) : callback(null, value);\n\n for (let i = 0; i < tests.length; i++) {\n const test = tests[i];\n test(args, function finishTestRun(err) {\n if (err) {\n // always return early for non validation errors\n if (!ValidationError.isError(err)) {\n return callback(err, value);\n }\n\n if (endEarly) {\n err.value = value;\n return callback(err, value);\n }\n\n nestedErrors.push(err);\n }\n\n if (--count <= 0) {\n if (nestedErrors.length) {\n if (sort) nestedErrors.sort(sort); //show parent errors after the nested ones: name.first, name\n\n if (errors.length) nestedErrors.push(...errors);\n errors = nestedErrors;\n }\n\n if (errors.length) {\n callback(new ValidationError(errors, value, path), value);\n return;\n }\n\n callback(null, value);\n }\n });\n }\n}","import { getter } from 'property-expr';\nconst prefixes = {\n context: '$',\n value: '.'\n};\nexport function create(key, options) {\n return new Reference(key, options);\n}\nexport default class Reference {\n constructor(key, options = {}) {\n if (typeof key !== 'string') throw new TypeError('ref must be a string, got: ' + key);\n this.key = key.trim();\n if (key === '') throw new TypeError('ref must be a non-empty string');\n this.isContext = this.key[0] === prefixes.context;\n this.isValue = this.key[0] === prefixes.value;\n this.isSibling = !this.isContext && !this.isValue;\n let prefix = this.isContext ? prefixes.context : this.isValue ? prefixes.value : '';\n this.path = this.key.slice(prefix.length);\n this.getter = this.path && getter(this.path, true);\n this.map = options.map;\n }\n\n getValue(value, parent, context) {\n let result = this.isContext ? context : this.isValue ? value : parent;\n if (this.getter) result = this.getter(result || {});\n if (this.map) result = this.map(result);\n return result;\n }\n /**\n *\n * @param {*} value\n * @param {Object} options\n * @param {Object=} options.context\n * @param {Object=} options.parent\n */\n\n\n cast(value, options) {\n return this.getValue(value, options == null ? void 0 : options.parent, options == null ? void 0 : options.context);\n }\n\n resolve() {\n return this;\n }\n\n describe() {\n return {\n type: 'ref',\n key: this.key\n };\n }\n\n toString() {\n return `Ref(${this.key})`;\n }\n\n static isRef(value) {\n return value && value.__isYupRef;\n }\n\n} // @ts-ignore\n\nReference.prototype.__isYupRef = true;","function _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 _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\nimport mapValues from 'lodash/mapValues';\nimport ValidationError from '../ValidationError';\nimport Ref from '../Reference';\nexport default function createValidation(config) {\n function validate(_ref, cb) {\n let {\n value,\n path = '',\n label,\n options,\n originalValue,\n sync\n } = _ref,\n rest = _objectWithoutPropertiesLoose(_ref, [\"value\", \"path\", \"label\", \"options\", \"originalValue\", \"sync\"]);\n\n const {\n name,\n test,\n params,\n message\n } = config;\n let {\n parent,\n context\n } = options;\n\n function resolve(item) {\n return Ref.isRef(item) ? item.getValue(value, parent, context) : item;\n }\n\n function createError(overrides = {}) {\n const nextParams = mapValues(_extends({\n value,\n originalValue,\n label,\n path: overrides.path || path\n }, params, overrides.params), resolve);\n const error = new ValidationError(ValidationError.formatError(overrides.message || message, nextParams), value, nextParams.path, overrides.type || name);\n error.params = nextParams;\n return error;\n }\n\n let ctx = _extends({\n path,\n parent,\n type: name,\n createError,\n resolve,\n options,\n originalValue\n }, rest);\n\n if (!sync) {\n try {\n Promise.resolve(test.call(ctx, value, ctx)).then(validOrError => {\n if (ValidationError.isError(validOrError)) cb(validOrError);else if (!validOrError) cb(createError());else cb(null, validOrError);\n });\n } catch (err) {\n cb(err);\n }\n\n return;\n }\n\n let result;\n\n try {\n var _ref2;\n\n result = test.call(ctx, value, ctx);\n\n if (typeof ((_ref2 = result) == null ? void 0 : _ref2.then) === 'function') {\n throw new Error(`Validation test of type: \"${ctx.type}\" returned a Promise during a synchronous validate. ` + `This test will finish after the validate call has returned`);\n }\n } catch (err) {\n cb(err);\n return;\n }\n\n if (ValidationError.isError(result)) cb(result);else if (!result) cb(createError());else cb(null, result);\n }\n\n validate.OPTIONS = config;\n return validate;\n}","import { forEach } from 'property-expr';\n\nlet trim = part => part.substr(0, part.length - 1).substr(1);\n\nexport function getIn(schema, path, value, context = value) {\n let parent, lastPart, lastPartDebug; // root path: ''\n\n if (!path) return {\n parent,\n parentPath: path,\n schema\n };\n forEach(path, (_part, isBracket, isArray) => {\n let part = isBracket ? trim(_part) : _part;\n schema = schema.resolve({\n context,\n parent,\n value\n });\n\n if (schema.innerType) {\n let idx = isArray ? parseInt(part, 10) : 0;\n\n if (value && idx >= value.length) {\n throw new Error(`Yup.reach cannot resolve an array item at index: ${_part}, in the path: ${path}. ` + `because there is no value at that index. `);\n }\n\n parent = value;\n value = value && value[idx];\n schema = schema.innerType;\n } // sometimes the array index part of a path doesn't exist: \"nested.arr.child\"\n // in these cases the current part is the next schema and should be processed\n // in this iteration. For cases where the index signature is included this\n // check will fail and we'll handle the `child` part on the next iteration like normal\n\n\n if (!isArray) {\n if (!schema.fields || !schema.fields[part]) throw new Error(`The schema does not contain the path: ${path}. ` + `(failed at: ${lastPartDebug} which is a type: \"${schema._type}\")`);\n parent = value;\n value = value && value[part];\n schema = schema.fields[part];\n }\n\n lastPart = part;\n lastPartDebug = isBracket ? '[' + _part + ']' : '.' + _part;\n });\n return {\n schema,\n parent,\n parentPath: lastPart\n };\n}\n\nconst reach = (obj, path, value, context) => getIn(obj, path, value, context).schema;\n\nexport default reach;","import Reference from '../Reference';\nexport default class ReferenceSet {\n constructor() {\n this.list = new Set();\n this.refs = new Map();\n }\n\n get size() {\n return this.list.size + this.refs.size;\n }\n\n describe() {\n const description = [];\n\n for (const item of this.list) description.push(item);\n\n for (const [, ref] of this.refs) description.push(ref.describe());\n\n return description;\n }\n\n toArray() {\n return Array.from(this.list).concat(Array.from(this.refs.values()));\n }\n\n add(value) {\n Reference.isRef(value) ? this.refs.set(value.key, value) : this.list.add(value);\n }\n\n delete(value) {\n Reference.isRef(value) ? this.refs.delete(value.key) : this.list.delete(value);\n }\n\n has(value, resolve) {\n if (this.list.has(value)) return true;\n let item,\n values = this.refs.values();\n\n while (item = values.next(), !item.done) if (resolve(item.value) === value) return true;\n\n return false;\n }\n\n clone() {\n const next = new ReferenceSet();\n next.list = new Set(this.list);\n next.refs = new Map(this.refs);\n return next;\n }\n\n merge(newItems, removeItems) {\n const next = this.clone();\n newItems.list.forEach(value => next.add(value));\n newItems.refs.forEach(value => next.add(value));\n removeItems.list.forEach(value => next.delete(value));\n removeItems.refs.forEach(value => next.delete(value));\n return next;\n }\n\n}","function _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\n// @ts-ignore\nimport cloneDeep from 'nanoclone';\nimport { mixed as locale } from './locale';\nimport Condition from './Condition';\nimport runTests from './util/runTests';\nimport createValidation from './util/createValidation';\nimport printValue from './util/printValue';\nimport Ref from './Reference';\nimport { getIn } from './util/reach';\nimport toArray from './util/toArray';\nimport ValidationError from './ValidationError';\nimport ReferenceSet from './util/ReferenceSet';\nexport default class BaseSchema {\n constructor(options) {\n this.deps = [];\n this.conditions = [];\n this._whitelist = new ReferenceSet();\n this._blacklist = new ReferenceSet();\n this.exclusiveTests = Object.create(null);\n this.tests = [];\n this.transforms = [];\n this.withMutation(() => {\n this.typeError(locale.notType);\n });\n this.type = (options == null ? void 0 : options.type) || 'mixed';\n this.spec = _extends({\n strip: false,\n strict: false,\n abortEarly: true,\n recursive: true,\n nullable: false,\n presence: 'optional'\n }, options == null ? void 0 : options.spec);\n } // TODO: remove\n\n\n get _type() {\n return this.type;\n }\n\n _typeCheck(_value) {\n return true;\n }\n\n clone(spec) {\n if (this._mutate) {\n if (spec) Object.assign(this.spec, spec);\n return this;\n } // if the nested value is a schema we can skip cloning, since\n // they are already immutable\n\n\n const next = Object.create(Object.getPrototypeOf(this)); // @ts-expect-error this is readonly\n\n next.type = this.type;\n next._typeError = this._typeError;\n next._whitelistError = this._whitelistError;\n next._blacklistError = this._blacklistError;\n next._whitelist = this._whitelist.clone();\n next._blacklist = this._blacklist.clone();\n next.exclusiveTests = _extends({}, this.exclusiveTests); // @ts-expect-error this is readonly\n\n next.deps = [...this.deps];\n next.conditions = [...this.conditions];\n next.tests = [...this.tests];\n next.transforms = [...this.transforms];\n next.spec = cloneDeep(_extends({}, this.spec, spec));\n return next;\n }\n\n label(label) {\n var next = this.clone();\n next.spec.label = label;\n return next;\n }\n\n meta(...args) {\n if (args.length === 0) return this.spec.meta;\n let next = this.clone();\n next.spec.meta = Object.assign(next.spec.meta || {}, args[0]);\n return next;\n } // withContext(): BaseSchema<\n // TCast,\n // TContext,\n // TOutput\n // > {\n // return this as any;\n // }\n\n\n withMutation(fn) {\n let before = this._mutate;\n this._mutate = true;\n let result = fn(this);\n this._mutate = before;\n return result;\n }\n\n concat(schema) {\n if (!schema || schema === this) return this;\n if (schema.type !== this.type && this.type !== 'mixed') throw new TypeError(`You cannot \\`concat()\\` schema's of different types: ${this.type} and ${schema.type}`);\n let base = this;\n let combined = schema.clone();\n\n const mergedSpec = _extends({}, base.spec, combined.spec); // if (combined.spec.nullable === UNSET)\n // mergedSpec.nullable = base.spec.nullable;\n // if (combined.spec.presence === UNSET)\n // mergedSpec.presence = base.spec.presence;\n\n\n combined.spec = mergedSpec;\n combined._typeError || (combined._typeError = base._typeError);\n combined._whitelistError || (combined._whitelistError = base._whitelistError);\n combined._blacklistError || (combined._blacklistError = base._blacklistError); // manually merge the blacklist/whitelist (the other `schema` takes\n // precedence in case of conflicts)\n\n combined._whitelist = base._whitelist.merge(schema._whitelist, schema._blacklist);\n combined._blacklist = base._blacklist.merge(schema._blacklist, schema._whitelist); // start with the current tests\n\n combined.tests = base.tests;\n combined.exclusiveTests = base.exclusiveTests; // manually add the new tests to ensure\n // the deduping logic is consistent\n\n combined.withMutation(next => {\n schema.tests.forEach(fn => {\n next.test(fn.OPTIONS);\n });\n });\n return combined;\n }\n\n isType(v) {\n if (this.spec.nullable && v === null) return true;\n return this._typeCheck(v);\n }\n\n resolve(options) {\n let schema = this;\n\n if (schema.conditions.length) {\n let conditions = schema.conditions;\n schema = schema.clone();\n schema.conditions = [];\n schema = conditions.reduce((schema, condition) => condition.resolve(schema, options), schema);\n schema = schema.resolve(options);\n }\n\n return schema;\n }\n /**\n *\n * @param {*} value\n * @param {Object} options\n * @param {*=} options.parent\n * @param {*=} options.context\n */\n\n\n cast(value, options = {}) {\n let resolvedSchema = this.resolve(_extends({\n value\n }, options));\n\n let result = resolvedSchema._cast(value, options);\n\n if (value !== undefined && options.assert !== false && resolvedSchema.isType(result) !== true) {\n let formattedValue = printValue(value);\n let formattedResult = printValue(result);\n throw new TypeError(`The value of ${options.path || 'field'} could not be cast to a value ` + `that satisfies the schema type: \"${resolvedSchema._type}\". \\n\\n` + `attempted value: ${formattedValue} \\n` + (formattedResult !== formattedValue ? `result of cast: ${formattedResult}` : ''));\n }\n\n return result;\n }\n\n _cast(rawValue, _options) {\n let value = rawValue === undefined ? rawValue : this.transforms.reduce((value, fn) => fn.call(this, value, rawValue, this), rawValue);\n\n if (value === undefined) {\n value = this.getDefault();\n }\n\n return value;\n }\n\n _validate(_value, options = {}, cb) {\n let {\n sync,\n path,\n from = [],\n originalValue = _value,\n strict = this.spec.strict,\n abortEarly = this.spec.abortEarly\n } = options;\n let value = _value;\n\n if (!strict) {\n // this._validating = true;\n value = this._cast(value, _extends({\n assert: false\n }, options)); // this._validating = false;\n } // value is cast, we can check if it meets type requirements\n\n\n let args = {\n value,\n path,\n options,\n originalValue,\n schema: this,\n label: this.spec.label,\n sync,\n from\n };\n let initialTests = [];\n if (this._typeError) initialTests.push(this._typeError);\n if (this._whitelistError) initialTests.push(this._whitelistError);\n if (this._blacklistError) initialTests.push(this._blacklistError);\n runTests({\n args,\n value,\n path,\n sync,\n tests: initialTests,\n endEarly: abortEarly\n }, err => {\n if (err) return void cb(err, value);\n runTests({\n tests: this.tests,\n args,\n path,\n sync,\n value,\n endEarly: abortEarly\n }, cb);\n });\n }\n\n validate(value, options, maybeCb) {\n let schema = this.resolve(_extends({}, options, {\n value\n })); // callback case is for nested validations\n\n return typeof maybeCb === 'function' ? schema._validate(value, options, maybeCb) : new Promise((resolve, reject) => schema._validate(value, options, (err, value) => {\n if (err) reject(err);else resolve(value);\n }));\n }\n\n validateSync(value, options) {\n let schema = this.resolve(_extends({}, options, {\n value\n }));\n let result;\n\n schema._validate(value, _extends({}, options, {\n sync: true\n }), (err, value) => {\n if (err) throw err;\n result = value;\n });\n\n return result;\n }\n\n isValid(value, options) {\n return this.validate(value, options).then(() => true, err => {\n if (ValidationError.isError(err)) return false;\n throw err;\n });\n }\n\n isValidSync(value, options) {\n try {\n this.validateSync(value, options);\n return true;\n } catch (err) {\n if (ValidationError.isError(err)) return false;\n throw err;\n }\n }\n\n _getDefault() {\n let defaultValue = this.spec.default;\n\n if (defaultValue == null) {\n return defaultValue;\n }\n\n return typeof defaultValue === 'function' ? defaultValue.call(this) : cloneDeep(defaultValue);\n }\n\n getDefault(options) {\n let schema = this.resolve(options || {});\n return schema._getDefault();\n }\n\n default(def) {\n if (arguments.length === 0) {\n return this._getDefault();\n }\n\n let next = this.clone({\n default: def\n });\n return next;\n }\n\n strict(isStrict = true) {\n var next = this.clone();\n next.spec.strict = isStrict;\n return next;\n }\n\n _isPresent(value) {\n return value != null;\n }\n\n defined(message = locale.defined) {\n return this.test({\n message,\n name: 'defined',\n exclusive: true,\n\n test(value) {\n return value !== undefined;\n }\n\n });\n }\n\n required(message = locale.required) {\n return this.clone({\n presence: 'required'\n }).withMutation(s => s.test({\n message,\n name: 'required',\n exclusive: true,\n\n test(value) {\n return this.schema._isPresent(value);\n }\n\n }));\n }\n\n notRequired() {\n var next = this.clone({\n presence: 'optional'\n });\n next.tests = next.tests.filter(test => test.OPTIONS.name !== 'required');\n return next;\n }\n\n nullable(isNullable = true) {\n var next = this.clone({\n nullable: isNullable !== false\n });\n return next;\n }\n\n transform(fn) {\n var next = this.clone();\n next.transforms.push(fn);\n return next;\n }\n /**\n * Adds a test function to the schema's queue of tests.\n * tests can be exclusive or non-exclusive.\n *\n * - exclusive tests, will replace any existing tests of the same name.\n * - non-exclusive: can be stacked\n *\n * If a non-exclusive test is added to a schema with an exclusive test of the same name\n * the exclusive test is removed and further tests of the same name will be stacked.\n *\n * If an exclusive test is added to a schema with non-exclusive tests of the same name\n * the previous tests are removed and further tests of the same name will replace each other.\n */\n\n\n test(...args) {\n let opts;\n\n if (args.length === 1) {\n if (typeof args[0] === 'function') {\n opts = {\n test: args[0]\n };\n } else {\n opts = args[0];\n }\n } else if (args.length === 2) {\n opts = {\n name: args[0],\n test: args[1]\n };\n } else {\n opts = {\n name: args[0],\n message: args[1],\n test: args[2]\n };\n }\n\n if (opts.message === undefined) opts.message = locale.default;\n if (typeof opts.test !== 'function') throw new TypeError('`test` is a required parameters');\n let next = this.clone();\n let validate = createValidation(opts);\n let isExclusive = opts.exclusive || opts.name && next.exclusiveTests[opts.name] === true;\n\n if (opts.exclusive) {\n if (!opts.name) throw new TypeError('Exclusive tests must provide a unique `name` identifying the test');\n }\n\n if (opts.name) next.exclusiveTests[opts.name] = !!opts.exclusive;\n next.tests = next.tests.filter(fn => {\n if (fn.OPTIONS.name === opts.name) {\n if (isExclusive) return false;\n if (fn.OPTIONS.test === validate.OPTIONS.test) return false;\n }\n\n return true;\n });\n next.tests.push(validate);\n return next;\n }\n\n when(keys, options) {\n if (!Array.isArray(keys) && typeof keys !== 'string') {\n options = keys;\n keys = '.';\n }\n\n let next = this.clone();\n let deps = toArray(keys).map(key => new Ref(key));\n deps.forEach(dep => {\n // @ts-ignore\n if (dep.isSibling) next.deps.push(dep.key);\n });\n next.conditions.push(new Condition(deps, options));\n return next;\n }\n\n typeError(message) {\n var next = this.clone();\n next._typeError = createValidation({\n message,\n name: 'typeError',\n\n test(value) {\n if (value !== undefined && !this.schema.isType(value)) return this.createError({\n params: {\n type: this.schema._type\n }\n });\n return true;\n }\n\n });\n return next;\n }\n\n oneOf(enums, message = locale.oneOf) {\n var next = this.clone();\n enums.forEach(val => {\n next._whitelist.add(val);\n\n next._blacklist.delete(val);\n });\n next._whitelistError = createValidation({\n message,\n name: 'oneOf',\n\n test(value) {\n if (value === undefined) return true;\n let valids = this.schema._whitelist;\n return valids.has(value, this.resolve) ? true : this.createError({\n params: {\n values: valids.toArray().join(', ')\n }\n });\n }\n\n });\n return next;\n }\n\n notOneOf(enums, message = locale.notOneOf) {\n var next = this.clone();\n enums.forEach(val => {\n next._blacklist.add(val);\n\n next._whitelist.delete(val);\n });\n next._blacklistError = createValidation({\n message,\n name: 'notOneOf',\n\n test(value) {\n let invalids = this.schema._blacklist;\n if (invalids.has(value, this.resolve)) return this.createError({\n params: {\n values: invalids.toArray().join(', ')\n }\n });\n return true;\n }\n\n });\n return next;\n }\n\n strip(strip = true) {\n let next = this.clone();\n next.spec.strip = strip;\n return next;\n }\n\n describe() {\n const next = this.clone();\n const {\n label,\n meta\n } = next.spec;\n const description = {\n meta,\n label,\n type: next.type,\n oneOf: next._whitelist.describe(),\n notOneOf: next._blacklist.describe(),\n tests: next.tests.map(fn => ({\n name: fn.OPTIONS.name,\n params: fn.OPTIONS.params\n })).filter((n, idx, list) => list.findIndex(c => c.name === n.name) === idx)\n };\n return description;\n }\n\n}\n// @ts-expect-error\nBaseSchema.prototype.__isYupSchema__ = true;\n\nfor (const method of ['validate', 'validateSync']) BaseSchema.prototype[`${method}At`] = function (path, value, options = {}) {\n const {\n parent,\n parentPath,\n schema\n } = getIn(this, path, value, options.context);\n return schema[method](parent && parent[parentPath], _extends({}, options, {\n parent,\n path\n }));\n};\n\nfor (const alias of ['equals', 'is']) BaseSchema.prototype[alias] = BaseSchema.prototype.oneOf;\n\nfor (const alias of ['not', 'nope']) BaseSchema.prototype[alias] = BaseSchema.prototype.notOneOf;\n\nBaseSchema.prototype.optional = BaseSchema.prototype.notRequired;","import BaseSchema from './schema';\nconst Mixed = BaseSchema;\nexport default Mixed;\nexport function create() {\n return new Mixed();\n} // XXX: this is using the Base schema so that `addMethod(mixed)` works as a base class\n\ncreate.prototype = Mixed.prototype;","export default (value => value == null);","import BaseSchema from './schema';\nimport { boolean as locale } from './locale';\nimport isAbsent from './util/isAbsent';\nexport function create() {\n return new BooleanSchema();\n}\nexport default class BooleanSchema extends BaseSchema {\n constructor() {\n super({\n type: 'boolean'\n });\n this.withMutation(() => {\n this.transform(function (value) {\n if (!this.isType(value)) {\n if (/^(true|1)$/i.test(String(value))) return true;\n if (/^(false|0)$/i.test(String(value))) return false;\n }\n\n return value;\n });\n });\n }\n\n _typeCheck(v) {\n if (v instanceof Boolean) v = v.valueOf();\n return typeof v === 'boolean';\n }\n\n isTrue(message = locale.isValue) {\n return this.test({\n message,\n name: 'is-value',\n exclusive: true,\n params: {\n value: 'true'\n },\n\n test(value) {\n return isAbsent(value) || value === true;\n }\n\n });\n }\n\n isFalse(message = locale.isValue) {\n return this.test({\n message,\n name: 'is-value',\n exclusive: true,\n params: {\n value: 'false'\n },\n\n test(value) {\n return isAbsent(value) || value === false;\n }\n\n });\n }\n\n}\ncreate.prototype = BooleanSchema.prototype;","import { string as locale } from './locale';\nimport isAbsent from './util/isAbsent';\nimport BaseSchema from './schema'; // eslint-disable-next-line\n\nlet rEmail = /^((([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+(\\.([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+)*)|((\\x22)((((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(([\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f]|\\x21|[\\x23-\\x5b]|[\\x5d-\\x7e]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(\\\\([\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))))*(((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(\\x22)))@((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))$/i; // eslint-disable-next-line\n\nlet rUrl = /^((https?|ftp):)?\\/\\/(((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:)*@)?(((\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5]))|((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.?)(:\\d*)?)(\\/((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)+(\\/(([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)*)*)?)?(\\?((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)|[\\uE000-\\uF8FF]|\\/|\\?)*)?(\\#((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)|\\/|\\?)*)?$/i; // eslint-disable-next-line\n\nlet rUUID = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;\n\nlet isTrimmed = value => isAbsent(value) || value === value.trim();\n\nlet objStringTag = {}.toString();\nexport function create() {\n return new StringSchema();\n}\nexport default class StringSchema extends BaseSchema {\n constructor() {\n super({\n type: 'string'\n });\n this.withMutation(() => {\n this.transform(function (value) {\n if (this.isType(value)) return value;\n if (Array.isArray(value)) return value;\n const strValue = value != null && value.toString ? value.toString() : value;\n if (strValue === objStringTag) return value;\n return strValue;\n });\n });\n }\n\n _typeCheck(value) {\n if (value instanceof String) value = value.valueOf();\n return typeof value === 'string';\n }\n\n _isPresent(value) {\n return super._isPresent(value) && !!value.length;\n }\n\n length(length, message = locale.length) {\n return this.test({\n message,\n name: 'length',\n exclusive: true,\n params: {\n length\n },\n\n test(value) {\n return isAbsent(value) || value.length === this.resolve(length);\n }\n\n });\n }\n\n min(min, message = locale.min) {\n return this.test({\n message,\n name: 'min',\n exclusive: true,\n params: {\n min\n },\n\n test(value) {\n return isAbsent(value) || value.length >= this.resolve(min);\n }\n\n });\n }\n\n max(max, message = locale.max) {\n return this.test({\n name: 'max',\n exclusive: true,\n message,\n params: {\n max\n },\n\n test(value) {\n return isAbsent(value) || value.length <= this.resolve(max);\n }\n\n });\n }\n\n matches(regex, options) {\n let excludeEmptyString = false;\n let message;\n let name;\n\n if (options) {\n if (typeof options === 'object') {\n ({\n excludeEmptyString = false,\n message,\n name\n } = options);\n } else {\n message = options;\n }\n }\n\n return this.test({\n name: name || 'matches',\n message: message || locale.matches,\n params: {\n regex\n },\n test: value => isAbsent(value) || value === '' && excludeEmptyString || value.search(regex) !== -1\n });\n }\n\n email(message = locale.email) {\n return this.matches(rEmail, {\n name: 'email',\n message,\n excludeEmptyString: true\n });\n }\n\n url(message = locale.url) {\n return this.matches(rUrl, {\n name: 'url',\n message,\n excludeEmptyString: true\n });\n }\n\n uuid(message = locale.uuid) {\n return this.matches(rUUID, {\n name: 'uuid',\n message,\n excludeEmptyString: false\n });\n } //-- transforms --\n\n\n ensure() {\n return this.default('').transform(val => val === null ? '' : val);\n }\n\n trim(message = locale.trim) {\n return this.transform(val => val != null ? val.trim() : val).test({\n message,\n name: 'trim',\n test: isTrimmed\n });\n }\n\n lowercase(message = locale.lowercase) {\n return this.transform(value => !isAbsent(value) ? value.toLowerCase() : value).test({\n message,\n name: 'string_case',\n exclusive: true,\n test: value => isAbsent(value) || value === value.toLowerCase()\n });\n }\n\n uppercase(message = locale.uppercase) {\n return this.transform(value => !isAbsent(value) ? value.toUpperCase() : value).test({\n message,\n name: 'string_case',\n exclusive: true,\n test: value => isAbsent(value) || value === value.toUpperCase()\n });\n }\n\n}\ncreate.prototype = StringSchema.prototype; //\n// String Interfaces\n//","import { number as locale } from './locale';\nimport isAbsent from './util/isAbsent';\nimport BaseSchema from './schema';\n\nlet isNaN = value => value != +value;\n\nexport function create() {\n return new NumberSchema();\n}\nexport default class NumberSchema extends BaseSchema {\n constructor() {\n super({\n type: 'number'\n });\n this.withMutation(() => {\n this.transform(function (value) {\n let parsed = value;\n\n if (typeof parsed === 'string') {\n parsed = parsed.replace(/\\s/g, '');\n if (parsed === '') return NaN; // don't use parseFloat to avoid positives on alpha-numeric strings\n\n parsed = +parsed;\n }\n\n if (this.isType(parsed)) return parsed;\n return parseFloat(parsed);\n });\n });\n }\n\n _typeCheck(value) {\n if (value instanceof Number) value = value.valueOf();\n return typeof value === 'number' && !isNaN(value);\n }\n\n min(min, message = locale.min) {\n return this.test({\n message,\n name: 'min',\n exclusive: true,\n params: {\n min\n },\n\n test(value) {\n return isAbsent(value) || value >= this.resolve(min);\n }\n\n });\n }\n\n max(max, message = locale.max) {\n return this.test({\n message,\n name: 'max',\n exclusive: true,\n params: {\n max\n },\n\n test(value) {\n return isAbsent(value) || value <= this.resolve(max);\n }\n\n });\n }\n\n lessThan(less, message = locale.lessThan) {\n return this.test({\n message,\n name: 'max',\n exclusive: true,\n params: {\n less\n },\n\n test(value) {\n return isAbsent(value) || value < this.resolve(less);\n }\n\n });\n }\n\n moreThan(more, message = locale.moreThan) {\n return this.test({\n message,\n name: 'min',\n exclusive: true,\n params: {\n more\n },\n\n test(value) {\n return isAbsent(value) || value > this.resolve(more);\n }\n\n });\n }\n\n positive(msg = locale.positive) {\n return this.moreThan(0, msg);\n }\n\n negative(msg = locale.negative) {\n return this.lessThan(0, msg);\n }\n\n integer(message = locale.integer) {\n return this.test({\n name: 'integer',\n message,\n test: val => isAbsent(val) || Number.isInteger(val)\n });\n }\n\n truncate() {\n return this.transform(value => !isAbsent(value) ? value | 0 : value);\n }\n\n round(method) {\n var _method;\n\n var avail = ['ceil', 'floor', 'round', 'trunc'];\n method = ((_method = method) == null ? void 0 : _method.toLowerCase()) || 'round'; // this exists for symemtry with the new Math.trunc\n\n if (method === 'trunc') return this.truncate();\n if (avail.indexOf(method.toLowerCase()) === -1) throw new TypeError('Only valid options for round() are: ' + avail.join(', '));\n return this.transform(value => !isAbsent(value) ? Math[method](value) : value);\n }\n\n}\ncreate.prototype = NumberSchema.prototype; //\n// Number Interfaces\n//","/* eslint-disable */\n\n/**\n *\n * Date.parse with progressive enhancement for ISO 8601 \n * NON-CONFORMANT EDITION.\n * © 2011 Colin Snover \n * Released under MIT license.\n */\n// 1 YYYY 2 MM 3 DD 4 HH 5 mm 6 ss 7 msec 8 Z 9 ± 10 tzHH 11 tzmm\nvar isoReg = /^(\\d{4}|[+\\-]\\d{6})(?:-?(\\d{2})(?:-?(\\d{2}))?)?(?:[ T]?(\\d{2}):?(\\d{2})(?::?(\\d{2})(?:[,\\.](\\d{1,}))?)?(?:(Z)|([+\\-])(\\d{2})(?::?(\\d{2}))?)?)?$/;\nexport default function parseIsoDate(date) {\n var numericKeys = [1, 4, 5, 6, 7, 10, 11],\n minutesOffset = 0,\n timestamp,\n struct;\n\n if (struct = isoReg.exec(date)) {\n // avoid NaN timestamps caused by “undefined” values being passed to Date.UTC\n for (var i = 0, k; k = numericKeys[i]; ++i) struct[k] = +struct[k] || 0; // allow undefined days and months\n\n\n struct[2] = (+struct[2] || 1) - 1;\n struct[3] = +struct[3] || 1; // allow arbitrary sub-second precision beyond milliseconds\n\n struct[7] = struct[7] ? String(struct[7]).substr(0, 3) : 0; // timestamps without timezone identifiers should be considered local time\n\n if ((struct[8] === undefined || struct[8] === '') && (struct[9] === undefined || struct[9] === '')) timestamp = +new Date(struct[1], struct[2], struct[3], struct[4], struct[5], struct[6], struct[7]);else {\n if (struct[8] !== 'Z' && struct[9] !== undefined) {\n minutesOffset = struct[10] * 60 + struct[11];\n if (struct[9] === '+') minutesOffset = 0 - minutesOffset;\n }\n\n timestamp = Date.UTC(struct[1], struct[2], struct[3], struct[4], struct[5] + minutesOffset, struct[6], struct[7]);\n }\n } else timestamp = Date.parse ? Date.parse(date) : NaN;\n\n return timestamp;\n}","// @ts-ignore\nimport isoParse from './util/isodate';\nimport { date as locale } from './locale';\nimport isAbsent from './util/isAbsent';\nimport Ref from './Reference';\nimport BaseSchema from './schema';\nlet invalidDate = new Date('');\n\nlet isDate = obj => Object.prototype.toString.call(obj) === '[object Date]';\n\nexport function create() {\n return new DateSchema();\n}\nexport default class DateSchema extends BaseSchema {\n constructor() {\n super({\n type: 'date'\n });\n this.withMutation(() => {\n this.transform(function (value) {\n if (this.isType(value)) return value;\n value = isoParse(value); // 0 is a valid timestamp equivalent to 1970-01-01T00:00:00Z(unix epoch) or before.\n\n return !isNaN(value) ? new Date(value) : invalidDate;\n });\n });\n }\n\n _typeCheck(v) {\n return isDate(v) && !isNaN(v.getTime());\n }\n\n prepareParam(ref, name) {\n let param;\n\n if (!Ref.isRef(ref)) {\n let cast = this.cast(ref);\n if (!this._typeCheck(cast)) throw new TypeError(`\\`${name}\\` must be a Date or a value that can be \\`cast()\\` to a Date`);\n param = cast;\n } else {\n param = ref;\n }\n\n return param;\n }\n\n min(min, message = locale.min) {\n let limit = this.prepareParam(min, 'min');\n return this.test({\n message,\n name: 'min',\n exclusive: true,\n params: {\n min\n },\n\n test(value) {\n return isAbsent(value) || value >= this.resolve(limit);\n }\n\n });\n }\n\n max(max, message = locale.max) {\n var limit = this.prepareParam(max, 'max');\n return this.test({\n message,\n name: 'max',\n exclusive: true,\n params: {\n max\n },\n\n test(value) {\n return isAbsent(value) || value <= this.resolve(limit);\n }\n\n });\n }\n\n}\nDateSchema.INVALID_DATE = invalidDate;\ncreate.prototype = DateSchema.prototype;\ncreate.INVALID_DATE = invalidDate;","import has from 'lodash/has'; // @ts-expect-error\n\nimport toposort from 'toposort';\nimport { split } from 'property-expr';\nimport Ref from '../Reference';\nimport isSchema from './isSchema';\nexport default function sortFields(fields, excludes = []) {\n let edges = [];\n let nodes = [];\n\n function addNode(depPath, key) {\n var node = split(depPath)[0];\n if (!~nodes.indexOf(node)) nodes.push(node);\n if (!~excludes.indexOf(`${key}-${node}`)) edges.push([key, node]);\n }\n\n for (const key in fields) if (has(fields, key)) {\n let value = fields[key];\n if (!~nodes.indexOf(key)) nodes.push(key);\n if (Ref.isRef(value) && value.isSibling) addNode(value.path, key);else if (isSchema(value) && 'deps' in value) value.deps.forEach(path => addNode(path, key));\n }\n\n return toposort.array(nodes, edges).reverse();\n}","function findIndex(arr, err) {\n let idx = Infinity;\n arr.some((key, ii) => {\n var _err$path;\n\n if (((_err$path = err.path) == null ? void 0 : _err$path.indexOf(key)) !== -1) {\n idx = ii;\n return true;\n }\n });\n return idx;\n}\n\nexport default function sortByKeyOrder(keys) {\n return (a, b) => {\n return findIndex(keys, a) - findIndex(keys, b);\n };\n}","function _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\nimport has from 'lodash/has';\nimport snakeCase from 'lodash/snakeCase';\nimport camelCase from 'lodash/camelCase';\nimport mapKeys from 'lodash/mapKeys';\nimport mapValues from 'lodash/mapValues';\nimport { getter } from 'property-expr';\nimport { object as locale } from './locale';\nimport sortFields from './util/sortFields';\nimport sortByKeyOrder from './util/sortByKeyOrder';\nimport runTests from './util/runTests';\nimport ValidationError from './ValidationError';\nimport BaseSchema from './schema';\n\nlet isObject = obj => Object.prototype.toString.call(obj) === '[object Object]';\n\nfunction unknown(ctx, value) {\n let known = Object.keys(ctx.fields);\n return Object.keys(value).filter(key => known.indexOf(key) === -1);\n}\n\nconst defaultSort = sortByKeyOrder([]);\nexport default class ObjectSchema extends BaseSchema {\n constructor(spec) {\n super({\n type: 'object'\n });\n this.fields = Object.create(null);\n this._sortErrors = defaultSort;\n this._nodes = [];\n this._excludedEdges = [];\n this.withMutation(() => {\n this.transform(function coerce(value) {\n if (typeof value === 'string') {\n try {\n value = JSON.parse(value);\n } catch (err) {\n value = null;\n }\n }\n\n if (this.isType(value)) return value;\n return null;\n });\n\n if (spec) {\n this.shape(spec);\n }\n });\n }\n\n _typeCheck(value) {\n return isObject(value) || typeof value === 'function';\n }\n\n _cast(_value, options = {}) {\n var _options$stripUnknown;\n\n let value = super._cast(_value, options); //should ignore nulls here\n\n\n if (value === undefined) return this.getDefault();\n if (!this._typeCheck(value)) return value;\n let fields = this.fields;\n let strip = (_options$stripUnknown = options.stripUnknown) != null ? _options$stripUnknown : this.spec.noUnknown;\n\n let props = this._nodes.concat(Object.keys(value).filter(v => this._nodes.indexOf(v) === -1));\n\n let intermediateValue = {}; // is filled during the transform below\n\n let innerOptions = _extends({}, options, {\n parent: intermediateValue,\n __validating: options.__validating || false\n });\n\n let isChanged = false;\n\n for (const prop of props) {\n let field = fields[prop];\n let exists = has(value, prop);\n\n if (field) {\n let fieldValue;\n let inputValue = value[prop]; // safe to mutate since this is fired in sequence\n\n innerOptions.path = (options.path ? `${options.path}.` : '') + prop; // innerOptions.value = value[prop];\n\n field = field.resolve({\n value: inputValue,\n context: options.context,\n parent: intermediateValue\n });\n let fieldSpec = 'spec' in field ? field.spec : undefined;\n let strict = fieldSpec == null ? void 0 : fieldSpec.strict;\n\n if (fieldSpec == null ? void 0 : fieldSpec.strip) {\n isChanged = isChanged || prop in value;\n continue;\n }\n\n fieldValue = !options.__validating || !strict ? // TODO: use _cast, this is double resolving\n field.cast(value[prop], innerOptions) : value[prop];\n\n if (fieldValue !== undefined) {\n intermediateValue[prop] = fieldValue;\n }\n } else if (exists && !strip) {\n intermediateValue[prop] = value[prop];\n }\n\n if (intermediateValue[prop] !== value[prop]) {\n isChanged = true;\n }\n }\n\n return isChanged ? intermediateValue : value;\n }\n\n _validate(_value, opts = {}, callback) {\n let errors = [];\n let {\n sync,\n from = [],\n originalValue = _value,\n abortEarly = this.spec.abortEarly,\n recursive = this.spec.recursive\n } = opts;\n from = [{\n schema: this,\n value: originalValue\n }, ...from]; // this flag is needed for handling `strict` correctly in the context of\n // validation vs just casting. e.g strict() on a field is only used when validating\n\n opts.__validating = true;\n opts.originalValue = originalValue;\n opts.from = from;\n\n super._validate(_value, opts, (err, value) => {\n if (err) {\n if (!ValidationError.isError(err) || abortEarly) {\n return void callback(err, value);\n }\n\n errors.push(err);\n }\n\n if (!recursive || !isObject(value)) {\n callback(errors[0] || null, value);\n return;\n }\n\n originalValue = originalValue || value;\n\n let tests = this._nodes.map(key => (_, cb) => {\n let path = key.indexOf('.') === -1 ? (opts.path ? `${opts.path}.` : '') + key : `${opts.path || ''}[\"${key}\"]`;\n let field = this.fields[key];\n\n if (field && 'validate' in field) {\n field.validate(value[key], _extends({}, opts, {\n // @ts-ignore\n path,\n from,\n // inner fields are always strict:\n // 1. this isn't strict so the casting will also have cast inner values\n // 2. this is strict in which case the nested values weren't cast either\n strict: true,\n parent: value,\n originalValue: originalValue[key]\n }), cb);\n return;\n }\n\n cb(null);\n });\n\n runTests({\n sync,\n tests,\n value,\n errors,\n endEarly: abortEarly,\n sort: this._sortErrors,\n path: opts.path\n }, callback);\n });\n }\n\n clone(spec) {\n const next = super.clone(spec);\n next.fields = _extends({}, this.fields);\n next._nodes = this._nodes;\n next._excludedEdges = this._excludedEdges;\n next._sortErrors = this._sortErrors;\n return next;\n }\n\n concat(schema) {\n let next = super.concat(schema);\n let nextFields = next.fields;\n\n for (let [field, schemaOrRef] of Object.entries(this.fields)) {\n const target = nextFields[field];\n\n if (target === undefined) {\n nextFields[field] = schemaOrRef;\n } else if (target instanceof BaseSchema && schemaOrRef instanceof BaseSchema) {\n nextFields[field] = schemaOrRef.concat(target);\n }\n }\n\n return next.withMutation(() => next.shape(nextFields));\n }\n\n getDefaultFromShape() {\n let dft = {};\n\n this._nodes.forEach(key => {\n const field = this.fields[key];\n dft[key] = 'default' in field ? field.getDefault() : undefined;\n });\n\n return dft;\n }\n\n _getDefault() {\n if ('default' in this.spec) {\n return super._getDefault();\n } // if there is no default set invent one\n\n\n if (!this._nodes.length) {\n return undefined;\n }\n\n return this.getDefaultFromShape();\n }\n\n shape(additions, excludes = []) {\n let next = this.clone();\n let fields = Object.assign(next.fields, additions);\n next.fields = fields;\n next._sortErrors = sortByKeyOrder(Object.keys(fields));\n\n if (excludes.length) {\n if (!Array.isArray(excludes[0])) excludes = [excludes];\n let keys = excludes.map(([first, second]) => `${first}-${second}`);\n next._excludedEdges = next._excludedEdges.concat(keys);\n }\n\n next._nodes = sortFields(fields, next._excludedEdges);\n return next;\n }\n\n pick(keys) {\n const picked = {};\n\n for (const key of keys) {\n if (this.fields[key]) picked[key] = this.fields[key];\n }\n\n return this.clone().withMutation(next => {\n next.fields = {};\n return next.shape(picked);\n });\n }\n\n omit(keys) {\n const next = this.clone();\n const fields = next.fields;\n next.fields = {};\n\n for (const key of keys) {\n delete fields[key];\n }\n\n return next.withMutation(() => next.shape(fields));\n }\n\n from(from, to, alias) {\n let fromGetter = getter(from, true);\n return this.transform(obj => {\n if (obj == null) return obj;\n let newObj = obj;\n\n if (has(obj, from)) {\n newObj = _extends({}, obj);\n if (!alias) delete newObj[from];\n newObj[to] = fromGetter(obj);\n }\n\n return newObj;\n });\n }\n\n noUnknown(noAllow = true, message = locale.noUnknown) {\n if (typeof noAllow === 'string') {\n message = noAllow;\n noAllow = true;\n }\n\n let next = this.test({\n name: 'noUnknown',\n exclusive: true,\n message: message,\n\n test(value) {\n if (value == null) return true;\n const unknownKeys = unknown(this.schema, value);\n return !noAllow || unknownKeys.length === 0 || this.createError({\n params: {\n unknown: unknownKeys.join(', ')\n }\n });\n }\n\n });\n next.spec.noUnknown = noAllow;\n return next;\n }\n\n unknown(allow = true, message = locale.noUnknown) {\n return this.noUnknown(!allow, message);\n }\n\n transformKeys(fn) {\n return this.transform(obj => obj && mapKeys(obj, (_, key) => fn(key)));\n }\n\n camelCase() {\n return this.transformKeys(camelCase);\n }\n\n snakeCase() {\n return this.transformKeys(snakeCase);\n }\n\n constantCase() {\n return this.transformKeys(key => snakeCase(key).toUpperCase());\n }\n\n describe() {\n let base = super.describe();\n base.fields = mapValues(this.fields, value => value.describe());\n return base;\n }\n\n}\nexport function create(spec) {\n return new ObjectSchema(spec);\n}\ncreate.prototype = ObjectSchema.prototype;","function _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\nimport isAbsent from './util/isAbsent';\nimport isSchema from './util/isSchema';\nimport printValue from './util/printValue';\nimport { array as locale } from './locale';\nimport runTests from './util/runTests';\nimport ValidationError from './ValidationError';\nimport BaseSchema from './schema';\nexport function create(type) {\n return new ArraySchema(type);\n}\nexport default class ArraySchema extends BaseSchema {\n constructor(type) {\n super({\n type: 'array'\n }); // `undefined` specifically means uninitialized, as opposed to\n // \"no subtype\"\n\n this.innerType = type;\n this.withMutation(() => {\n this.transform(function (values) {\n if (typeof values === 'string') try {\n values = JSON.parse(values);\n } catch (err) {\n values = null;\n }\n return this.isType(values) ? values : null;\n });\n });\n }\n\n _typeCheck(v) {\n return Array.isArray(v);\n }\n\n get _subType() {\n return this.innerType;\n }\n\n _cast(_value, _opts) {\n const value = super._cast(_value, _opts); //should ignore nulls here\n\n\n if (!this._typeCheck(value) || !this.innerType) return value;\n let isChanged = false;\n const castArray = value.map((v, idx) => {\n const castElement = this.innerType.cast(v, _extends({}, _opts, {\n path: `${_opts.path || ''}[${idx}]`\n }));\n\n if (castElement !== v) {\n isChanged = true;\n }\n\n return castElement;\n });\n return isChanged ? castArray : value;\n }\n\n _validate(_value, options = {}, callback) {\n var _options$abortEarly, _options$recursive;\n\n let errors = [];\n let sync = options.sync;\n let path = options.path;\n let innerType = this.innerType;\n let endEarly = (_options$abortEarly = options.abortEarly) != null ? _options$abortEarly : this.spec.abortEarly;\n let recursive = (_options$recursive = options.recursive) != null ? _options$recursive : this.spec.recursive;\n let originalValue = options.originalValue != null ? options.originalValue : _value;\n\n super._validate(_value, options, (err, value) => {\n if (err) {\n if (!ValidationError.isError(err) || endEarly) {\n return void callback(err, value);\n }\n\n errors.push(err);\n }\n\n if (!recursive || !innerType || !this._typeCheck(value)) {\n callback(errors[0] || null, value);\n return;\n }\n\n originalValue = originalValue || value; // #950 Ensure that sparse array empty slots are validated\n\n let tests = new Array(value.length);\n\n for (let idx = 0; idx < value.length; idx++) {\n let item = value[idx];\n let path = `${options.path || ''}[${idx}]`; // object._validate note for isStrict explanation\n\n let innerOptions = _extends({}, options, {\n path,\n strict: true,\n parent: value,\n index: idx,\n originalValue: originalValue[idx]\n });\n\n tests[idx] = (_, cb) => innerType.validate(item, innerOptions, cb);\n }\n\n runTests({\n sync,\n path,\n value,\n errors,\n endEarly,\n tests\n }, callback);\n });\n }\n\n clone(spec) {\n const next = super.clone(spec);\n next.innerType = this.innerType;\n return next;\n }\n\n concat(schema) {\n let next = super.concat(schema);\n next.innerType = this.innerType;\n if (schema.innerType) next.innerType = next.innerType ? // @ts-expect-error Lazy doesn't have concat()\n next.innerType.concat(schema.innerType) : schema.innerType;\n return next;\n }\n\n of(schema) {\n // FIXME: this should return a new instance of array without the default to be\n let next = this.clone();\n if (!isSchema(schema)) throw new TypeError('`array.of()` sub-schema must be a valid yup schema not: ' + printValue(schema)); // FIXME(ts):\n\n next.innerType = schema;\n return next;\n }\n\n length(length, message = locale.length) {\n return this.test({\n message,\n name: 'length',\n exclusive: true,\n params: {\n length\n },\n\n test(value) {\n return isAbsent(value) || value.length === this.resolve(length);\n }\n\n });\n }\n\n min(min, message) {\n message = message || locale.min;\n return this.test({\n message,\n name: 'min',\n exclusive: true,\n params: {\n min\n },\n\n // FIXME(ts): Array\n test(value) {\n return isAbsent(value) || value.length >= this.resolve(min);\n }\n\n });\n }\n\n max(max, message) {\n message = message || locale.max;\n return this.test({\n message,\n name: 'max',\n exclusive: true,\n params: {\n max\n },\n\n test(value) {\n return isAbsent(value) || value.length <= this.resolve(max);\n }\n\n });\n }\n\n ensure() {\n return this.default(() => []).transform((val, original) => {\n // We don't want to return `null` for nullable schema\n if (this._typeCheck(val)) return val;\n return original == null ? [] : [].concat(original);\n });\n }\n\n compact(rejector) {\n let reject = !rejector ? v => !!v : (v, i, a) => !rejector(v, i, a);\n return this.transform(values => values != null ? values.filter(reject) : values);\n }\n\n describe() {\n let base = super.describe();\n if (this.innerType) base.innerType = this.innerType.describe();\n return base;\n }\n\n nullable(isNullable = true) {\n return super.nullable(isNullable);\n }\n\n defined() {\n return super.defined();\n }\n\n required(msg) {\n return super.required(msg);\n }\n\n}\ncreate.prototype = ArraySchema.prototype; //\n// Interfaces\n//","'use strict';\n\nvar bind = require('./helpers/bind');\n\n/*global toString:true*/\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\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 setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}","var isProduction = process.env.NODE_ENV === 'production';\nfunction warning(condition, message) {\n if (!isProduction) {\n if (condition) {\n return;\n }\n\n var text = \"Warning: \" + message;\n\n if (typeof console !== 'undefined') {\n console.warn(text);\n }\n\n try {\n throw Error(text);\n } catch (x) {}\n }\n}\n\nexport default warning;\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","/*!\n Copyright (c) 2018 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)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString === Object.prototype.toString) {\n\t\t\t\t\tfor (var key in arg) {\n\t\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tclasses.push(arg.toString());\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","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","export default function rectToClientRect(rect) {\n return Object.assign({}, rect, {\n left: rect.x,\n top: rect.y,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n });\n}","import { viewport } from \"../enums.js\";\nimport getViewportRect from \"./getViewportRect.js\";\nimport getDocumentRect from \"./getDocumentRect.js\";\nimport listScrollParents from \"./listScrollParents.js\";\nimport getOffsetParent from \"./getOffsetParent.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport contains from \"./contains.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport rectToClientRect from \"../utils/rectToClientRect.js\";\nimport { max, min } from \"../utils/math.js\";\n\nfunction getInnerBoundingClientRect(element) {\n var rect = getBoundingClientRect(element);\n rect.top = rect.top + element.clientTop;\n rect.left = rect.left + element.clientLeft;\n rect.bottom = rect.top + element.clientHeight;\n rect.right = rect.left + element.clientWidth;\n rect.width = element.clientWidth;\n rect.height = element.clientHeight;\n rect.x = rect.left;\n rect.y = rect.top;\n return rect;\n}\n\nfunction getClientRectFromMixedType(element, clippingParent) {\n return clippingParent === viewport ? rectToClientRect(getViewportRect(element)) : isHTMLElement(clippingParent) ? getInnerBoundingClientRect(clippingParent) : rectToClientRect(getDocumentRect(getDocumentElement(element)));\n} // A \"clipping parent\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\n\n\nfunction getClippingParents(element) {\n var clippingParents = listScrollParents(getParentNode(element));\n var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0;\n var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;\n\n if (!isElement(clipperElement)) {\n return [];\n } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414\n\n\n return clippingParents.filter(function (clippingParent) {\n return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body';\n });\n} // Gets the maximum area that the element is visible in due to any number of\n// clipping parents\n\n\nexport default function getClippingRect(element, boundary, rootBoundary) {\n var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);\n var clippingParents = [].concat(mainClippingParents, [rootBoundary]);\n var firstClippingParent = clippingParents[0];\n var clippingRect = clippingParents.reduce(function (accRect, clippingParent) {\n var rect = getClientRectFromMixedType(element, clippingParent);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromMixedType(element, firstClippingParent));\n clippingRect.width = clippingRect.right - clippingRect.left;\n clippingRect.height = clippingRect.bottom - clippingRect.top;\n clippingRect.x = clippingRect.left;\n clippingRect.y = clippingRect.top;\n return clippingRect;\n}","import getWindow from \"./getWindow.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nexport default function getViewportRect(element) {\n var win = getWindow(element);\n var html = getDocumentElement(element);\n var visualViewport = win.visualViewport;\n var width = html.clientWidth;\n var height = html.clientHeight;\n var x = 0;\n var y = 0; // NB: This isn't supported on iOS <= 12. If the keyboard is open, the popper\n // can be obscured underneath it.\n // Also, `html.clientHeight` adds the bottom bar height in Safari iOS, even\n // if it isn't open, so if this isn't available, the popper will be detected\n // to overflow the bottom of the screen too early.\n\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height; // Uses Layout Viewport (like Chrome; Safari does not currently)\n // In Chrome, it returns a value very close to 0 (+/-) but contains rounding\n // errors due to floating point numbers, so we need to check precision.\n // Safari returns a number <= 0, usually < -1 when pinch-zoomed\n // Feature detection fails in mobile emulation mode in Chrome.\n // Math.abs(win.innerWidth / visualViewport.scale - visualViewport.width) <\n // 0.001\n // Fallback here: \"Not Safari\" userAgent\n\n if (!/^((?!chrome|android).)*safari/i.test(navigator.userAgent)) {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n\n return {\n width: width,\n height: height,\n x: x + getWindowScrollBarX(element),\n y: y\n };\n}","import getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nimport { max } from \"../utils/math.js\"; // Gets the entire size of the scrollable document area, even extending outside\n// of the `` and `` rect bounds if horizontally scrollable\n\nexport default function getDocumentRect(element) {\n var _element$ownerDocumen;\n\n var html = getDocumentElement(element);\n var winScroll = getWindowScroll(element);\n var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;\n var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);\n var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);\n var x = -winScroll.scrollLeft + getWindowScrollBarX(element);\n var y = -winScroll.scrollTop;\n\n if (getComputedStyle(body || html).direction === 'rtl') {\n x += max(html.clientWidth, body ? body.clientWidth : 0) - width;\n }\n\n return {\n width: width,\n height: height,\n x: x,\n y: y\n };\n}","import getBoundingClientRect from \"../dom-utils/getBoundingClientRect.js\";\nimport getClippingRect from \"../dom-utils/getClippingRect.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport computeOffsets from \"./computeOffsets.js\";\nimport rectToClientRect from \"./rectToClientRect.js\";\nimport { clippingParents, reference, popper, bottom, top, right, basePlacements, viewport } from \"../enums.js\";\nimport { isElement } from \"../dom-utils/instanceOf.js\";\nimport mergePaddingObject from \"./mergePaddingObject.js\";\nimport expandToHashMap from \"./expandToHashMap.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport default function detectOverflow(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$placement = _options.placement,\n placement = _options$placement === void 0 ? state.placement : _options$placement,\n _options$boundary = _options.boundary,\n boundary = _options$boundary === void 0 ? clippingParents : _options$boundary,\n _options$rootBoundary = _options.rootBoundary,\n rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary,\n _options$elementConte = _options.elementContext,\n elementContext = _options$elementConte === void 0 ? popper : _options$elementConte,\n _options$altBoundary = _options.altBoundary,\n altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary,\n _options$padding = _options.padding,\n padding = _options$padding === void 0 ? 0 : _options$padding;\n var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n var altContext = elementContext === popper ? reference : popper;\n var referenceElement = state.elements.reference;\n var popperRect = state.rects.popper;\n var element = state.elements[altBoundary ? altContext : elementContext];\n var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary);\n var referenceClientRect = getBoundingClientRect(referenceElement);\n var popperOffsets = computeOffsets({\n reference: referenceClientRect,\n element: popperRect,\n strategy: 'absolute',\n placement: placement\n });\n var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets));\n var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect\n // 0 or negative = within the clipping rect\n\n var overflowOffsets = {\n top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,\n left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n right: elementClientRect.right - clippingClientRect.right + paddingObject.right\n };\n var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element\n\n if (elementContext === popper && offsetData) {\n var offset = offsetData[placement];\n Object.keys(overflowOffsets).forEach(function (key) {\n var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;\n var axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';\n overflowOffsets[key] += offset[axis] * multiply;\n });\n }\n\n return overflowOffsets;\n}","import { isHTMLElement } from \"./instanceOf.js\";\nvar round = Math.round;\nexport default function getBoundingClientRect(element, includeScale) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n\n var rect = element.getBoundingClientRect();\n var scaleX = 1;\n var scaleY = 1;\n\n if (isHTMLElement(element) && includeScale) {\n // Fallback to 1 in case both values are `0`\n scaleX = rect.width / element.offsetWidth || 1;\n scaleY = rect.height / element.offsetHeight || 1;\n }\n\n return {\n width: round(rect.width / scaleX),\n height: round(rect.height / scaleY),\n top: round(rect.top / scaleY),\n right: round(rect.right / scaleX),\n bottom: round(rect.bottom / scaleY),\n left: round(rect.left / scaleX),\n x: round(rect.left / scaleX),\n y: round(rect.top / scaleY)\n };\n}","import getNodeName from \"./getNodeName.js\";\nexport default function isTableElement(element) {\n return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;\n}","import getWindow from \"./getWindow.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport isTableElement from \"./isTableElement.js\";\nimport getParentNode from \"./getParentNode.js\";\n\nfunction getTrueOffsetParent(element) {\n if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837\n getComputedStyle(element).position === 'fixed') {\n return null;\n }\n\n return element.offsetParent;\n} // `.offsetParent` reports `null` for fixed elements, while absolute elements\n// return the containing block\n\n\nfunction getContainingBlock(element) {\n var isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox') !== -1;\n var isIE = navigator.userAgent.indexOf('Trident') !== -1;\n\n if (isIE && isHTMLElement(element)) {\n // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport\n var elementCss = getComputedStyle(element);\n\n if (elementCss.position === 'fixed') {\n return null;\n }\n }\n\n var currentNode = getParentNode(element);\n\n while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) {\n var css = getComputedStyle(currentNode); // This is non-exhaustive but covers the most common CSS properties that\n // create a containing block.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n\n if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') {\n return currentNode;\n } else {\n currentNode = currentNode.parentNode;\n }\n }\n\n return null;\n} // Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\n\n\nexport default function getOffsetParent(element) {\n var window = getWindow(element);\n var offsetParent = getTrueOffsetParent(element);\n\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static')) {\n return window;\n }\n\n return offsetParent || getContainingBlock(element) || window;\n}","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { invariant } from '@formatjs/ecma402-abstract';\nimport { DEFAULT_INTL_CONFIG as CORE_DEFAULT_INTL_CONFIG } from '@formatjs/intl';\nexport function invariantIntlContext(intl) {\n invariant(intl, '[React Intl] Could not find required `intl` object. ' +\n ' needs to exist in the component ancestry.');\n}\nexport var DEFAULT_INTL_CONFIG = __assign(__assign({}, CORE_DEFAULT_INTL_CONFIG), { textComponent: React.Fragment });\n/**\n * Takes a `formatXMLElementFn`, and composes it in function, which passes\n * argument `parts` through, assigning unique key to each part, to prevent\n * \"Each child in a list should have a unique \"key\"\" React error.\n * @param formatXMLElementFn\n */\nexport function assignUniqueKeysToParts(formatXMLElementFn) {\n return function (parts) {\n // eslint-disable-next-line prefer-rest-params\n return formatXMLElementFn(React.Children.toArray(parts));\n };\n}\nexport function shallowEqual(objA, objB) {\n if (objA === objB) {\n return true;\n }\n if (!objA || !objB) {\n return false;\n }\n var aKeys = Object.keys(objA);\n var bKeys = Object.keys(objB);\n var len = aKeys.length;\n if (bKeys.length !== len) {\n return false;\n }\n for (var i = 0; i < len; i++) {\n var key = aKeys[i];\n if (objA[key] !== objB[key] ||\n !Object.prototype.hasOwnProperty.call(objB, key)) {\n return false;\n }\n }\n return true;\n}\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","var rHyphen = /-(.)/g;\nexport default function camelize(string) {\n return string.replace(rHyphen, function (_, chr) {\n return chr.toUpperCase();\n });\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport classNames from 'classnames';\nimport camelize from 'dom-helpers/camelize';\nimport React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\n\nvar pascalCase = function pascalCase(str) {\n return str[0].toUpperCase() + camelize(str).slice(1);\n};\n\n// TODO: emstricten & fix the typing here! `createWithBsPrefix...`\nexport default function createWithBsPrefix(prefix, _temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$displayName = _ref.displayName,\n displayName = _ref$displayName === void 0 ? pascalCase(prefix) : _ref$displayName,\n Component = _ref.Component,\n defaultProps = _ref.defaultProps;\n\n var BsComponent = React.forwardRef(function (_ref2, ref) {\n var className = _ref2.className,\n bsPrefix = _ref2.bsPrefix,\n _ref2$as = _ref2.as,\n Tag = _ref2$as === void 0 ? Component || 'div' : _ref2$as,\n props = _objectWithoutPropertiesLoose(_ref2, [\"className\", \"bsPrefix\", \"as\"]);\n\n var resolvedPrefix = useBootstrapPrefix(bsPrefix, prefix);\n return /*#__PURE__*/React.createElement(Tag, _extends({\n ref: ref,\n className: classNames(className, resolvedPrefix)\n }, props));\n });\n BsComponent.defaultProps = defaultProps;\n BsComponent.displayName = displayName;\n return BsComponent;\n}","export default function getVariation(placement) {\n return placement.split('-')[1];\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 freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nexport default nodeUtil;\n","'use strict';\n\nvar isArray = Array.isArray;\nvar keyList = Object.keys;\nvar hasProp = Object.prototype.hasOwnProperty;\nvar hasElementType = typeof Element !== 'undefined';\n\nfunction equal(a, b) {\n // fast-deep-equal index.js 2.0.1\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n var arrA = isArray(a)\n , arrB = isArray(b)\n , i\n , length\n , key;\n\n if (arrA && arrB) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n if (arrA != arrB) return false;\n\n var dateA = a instanceof Date\n , dateB = b instanceof Date;\n if (dateA != dateB) return false;\n if (dateA && dateB) return a.getTime() == b.getTime();\n\n var regexpA = a instanceof RegExp\n , regexpB = b instanceof RegExp;\n if (regexpA != regexpB) return false;\n if (regexpA && regexpB) return a.toString() == b.toString();\n\n var keys = keyList(a);\n length = keys.length;\n\n if (length !== keyList(b).length)\n return false;\n\n for (i = length; i-- !== 0;)\n if (!hasProp.call(b, keys[i])) return false;\n // end fast-deep-equal\n\n // start react-fast-compare\n // custom handling for DOM elements\n if (hasElementType && a instanceof Element && b instanceof Element)\n return a === b;\n\n // custom handling for React\n for (i = length; i-- !== 0;) {\n key = keys[i];\n if (key === '_owner' && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner.\n // _owner contains circular references\n // and is not needed when comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of a react element\n continue;\n } else {\n // all other properties should be traversed as usual\n if (!equal(a[key], b[key])) return false;\n }\n }\n // end react-fast-compare\n\n // fast-deep-equal index.js 2.0.1\n return true;\n }\n\n return a !== a && b !== b;\n}\n// end fast-deep-equal\n\nmodule.exports = function exportedEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if ((error.message && error.message.match(/stack|recursion/i)) || (error.number === -2146828260)) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('Warning: react-fast-compare does not handle circular references.', error.name, error.message);\n return false;\n }\n // some other error. we should definitely know about these\n throw error;\n }\n};\n","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport React, { useContext, useMemo } from 'react';\nvar ThemeContext = React.createContext({});\nvar Consumer = ThemeContext.Consumer,\n Provider = ThemeContext.Provider;\n\nfunction ThemeProvider(_ref) {\n var prefixes = _ref.prefixes,\n children = _ref.children;\n var copiedPrefixes = useMemo(function () {\n return _extends({}, prefixes);\n }, [prefixes]);\n return /*#__PURE__*/React.createElement(Provider, {\n value: copiedPrefixes\n }, children);\n}\n\nexport function useBootstrapPrefix(prefix, defaultPrefix) {\n var prefixes = useContext(ThemeContext);\n return prefix || prefixes[defaultPrefix] || defaultPrefix;\n}\n\nfunction createBootstrapComponent(Component, opts) {\n if (typeof opts === 'string') opts = {\n prefix: opts\n };\n var isClassy = Component.prototype && Component.prototype.isReactComponent; // If it's a functional component make sure we don't break it with a ref\n\n var _opts = opts,\n prefix = _opts.prefix,\n _opts$forwardRefAs = _opts.forwardRefAs,\n forwardRefAs = _opts$forwardRefAs === void 0 ? isClassy ? 'ref' : 'innerRef' : _opts$forwardRefAs;\n var Wrapped = React.forwardRef(function (_ref2, ref) {\n var props = _extends({}, _ref2);\n\n props[forwardRefAs] = ref;\n var bsPrefix = useBootstrapPrefix(props.bsPrefix, prefix);\n return /*#__PURE__*/React.createElement(Component, _extends({}, props, {\n bsPrefix: bsPrefix\n }));\n });\n Wrapped.displayName = \"Bootstrap(\" + (Component.displayName || Component.name) + \")\";\n return Wrapped;\n}\n\nexport { createBootstrapComponent, Consumer as ThemeConsumer };\nexport default ThemeProvider;","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","import getNodeName from \"./getNodeName.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport { isShadowRoot } from \"./instanceOf.js\";\nexport default function getParentNode(element) {\n if (getNodeName(element) === 'html') {\n return element;\n }\n\n return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle\n // $FlowFixMe[incompatible-return]\n // $FlowFixMe[prop-missing]\n element.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n element.parentNode || ( // DOM Element detected\n isShadowRoot(element) ? element.host : null) || // ShadowRoot detected\n // $FlowFixMe[incompatible-call]: HTMLElement is a Node\n getDocumentElement(element) // fallback\n\n );\n}","/**\n * Based on Kendo UI Core expression code \n */\n'use strict'\n\nfunction Cache(maxSize) {\n this._maxSize = maxSize\n this.clear()\n}\nCache.prototype.clear = function () {\n this._size = 0\n this._values = Object.create(null)\n}\nCache.prototype.get = function (key) {\n return this._values[key]\n}\nCache.prototype.set = function (key, value) {\n this._size >= this._maxSize && this.clear()\n if (!(key in this._values)) this._size++\n\n return (this._values[key] = value)\n}\n\nvar SPLIT_REGEX = /[^.^\\]^[]+|(?=\\[\\]|\\.\\.)/g,\n DIGIT_REGEX = /^\\d+$/,\n LEAD_DIGIT_REGEX = /^\\d/,\n SPEC_CHAR_REGEX = /[~`!#$%\\^&*+=\\-\\[\\]\\\\';,/{}|\\\\\":<>\\?]/g,\n CLEAN_QUOTES_REGEX = /^\\s*(['\"]?)(.*?)(\\1)\\s*$/,\n MAX_CACHE_SIZE = 512\n\nvar pathCache = new Cache(MAX_CACHE_SIZE),\n setCache = new Cache(MAX_CACHE_SIZE),\n getCache = new Cache(MAX_CACHE_SIZE)\n\nvar config\n\nmodule.exports = {\n Cache: Cache,\n\n split: split,\n\n normalizePath: normalizePath,\n\n setter: function (path) {\n var parts = normalizePath(path)\n\n return (\n setCache.get(path) ||\n setCache.set(path, function setter(obj, value) {\n var index = 0\n var len = parts.length\n var data = obj\n\n while (index < len - 1) {\n var part = parts[index]\n if (\n part === '__proto__' ||\n part === 'constructor' ||\n part === 'prototype'\n ) {\n return obj\n }\n\n data = data[parts[index++]]\n }\n data[parts[index]] = value\n })\n )\n },\n\n getter: function (path, safe) {\n var parts = normalizePath(path)\n return (\n getCache.get(path) ||\n getCache.set(path, function getter(data) {\n var index = 0,\n len = parts.length\n while (index < len) {\n if (data != null || !safe) data = data[parts[index++]]\n else return\n }\n return data\n })\n )\n },\n\n join: function (segments) {\n return segments.reduce(function (path, part) {\n return (\n path +\n (isQuoted(part) || DIGIT_REGEX.test(part)\n ? '[' + part + ']'\n : (path ? '.' : '') + part)\n )\n }, '')\n },\n\n forEach: function (path, cb, thisArg) {\n forEach(Array.isArray(path) ? path : split(path), cb, thisArg)\n },\n}\n\nfunction normalizePath(path) {\n return (\n pathCache.get(path) ||\n pathCache.set(\n path,\n split(path).map(function (part) {\n return part.replace(CLEAN_QUOTES_REGEX, '$2')\n })\n )\n )\n}\n\nfunction split(path) {\n return path.match(SPLIT_REGEX)\n}\n\nfunction forEach(parts, iter, thisArg) {\n var len = parts.length,\n part,\n idx,\n isArray,\n isBracket\n\n for (idx = 0; idx < len; idx++) {\n part = parts[idx]\n\n if (part) {\n if (shouldBeQuoted(part)) {\n part = '\"' + part + '\"'\n }\n\n isBracket = isQuoted(part)\n isArray = !isBracket && /^\\d+$/.test(part)\n\n iter.call(thisArg, part, isBracket, isArray, idx, parts)\n }\n }\n}\n\nfunction isQuoted(str) {\n return (\n typeof str === 'string' && str && [\"'\", '\"'].indexOf(str.charAt(0)) !== -1\n )\n}\n\nfunction hasLeadingNumber(part) {\n return part.match(LEAD_DIGIT_REGEX) && !part.match(DIGIT_REGEX)\n}\n\nfunction hasSpecialChars(part) {\n return SPEC_CHAR_REGEX.test(part)\n}\n\nfunction shouldBeQuoted(part) {\n return !isQuoted(part) && (hasLeadingNumber(part) || hasSpecialChars(part))\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","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","/**\n * http://ecma-international.org/ecma-402/7.0/index.html#sec-canonicalizelocalelist\n * @param locales\n */\nexport function CanonicalizeLocaleList(locales) {\n // TODO\n return Intl.getCanonicalLocales(locales);\n}\n","/**\n * https://tc39.es/ecma402/#sec-canonicalizetimezonename\n * @param tz\n */\nexport function CanonicalizeTimeZoneName(tz, _a) {\n var tzData = _a.tzData, uppercaseLinks = _a.uppercaseLinks;\n var uppercasedTz = tz.toUpperCase();\n var uppercasedZones = Object.keys(tzData).reduce(function (all, z) {\n all[z.toUpperCase()] = z;\n return all;\n }, {});\n var ianaTimeZone = uppercaseLinks[uppercasedTz] || uppercasedZones[uppercasedTz];\n if (ianaTimeZone === 'Etc/UTC' || ianaTimeZone === 'Etc/GMT') {\n return 'UTC';\n }\n return ianaTimeZone;\n}\n","/**\n * https://tc39.es/ecma262/#sec-tostring\n */\nexport function ToString(o) {\n // Only symbol is irregular...\n if (typeof o === 'symbol') {\n throw TypeError('Cannot convert a Symbol value to a string');\n }\n return String(o);\n}\n/**\n * https://tc39.es/ecma262/#sec-tonumber\n * @param val\n */\nexport function ToNumber(val) {\n if (val === undefined) {\n return NaN;\n }\n if (val === null) {\n return +0;\n }\n if (typeof val === 'boolean') {\n return val ? 1 : +0;\n }\n if (typeof val === 'number') {\n return val;\n }\n if (typeof val === 'symbol' || typeof val === 'bigint') {\n throw new TypeError('Cannot convert symbol/bigint to number');\n }\n return Number(val);\n}\n/**\n * https://tc39.es/ecma262/#sec-tointeger\n * @param n\n */\nfunction ToInteger(n) {\n var number = ToNumber(n);\n if (isNaN(number) || SameValue(number, -0)) {\n return 0;\n }\n if (isFinite(number)) {\n return number;\n }\n var integer = Math.floor(Math.abs(number));\n if (number < 0) {\n integer = -integer;\n }\n if (SameValue(integer, -0)) {\n return 0;\n }\n return integer;\n}\n/**\n * https://tc39.es/ecma262/#sec-timeclip\n * @param time\n */\nexport function TimeClip(time) {\n if (!isFinite(time)) {\n return NaN;\n }\n if (Math.abs(time) > 8.64 * 1e15) {\n return NaN;\n }\n return ToInteger(time);\n}\n/**\n * https://tc39.es/ecma262/#sec-toobject\n * @param arg\n */\nexport function ToObject(arg) {\n if (arg == null) {\n throw new TypeError('undefined/null cannot be converted to object');\n }\n return Object(arg);\n}\n/**\n * https://www.ecma-international.org/ecma-262/11.0/index.html#sec-samevalue\n * @param x\n * @param y\n */\nexport function SameValue(x, y) {\n if (Object.is) {\n return Object.is(x, y);\n }\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n }\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n}\n/**\n * https://www.ecma-international.org/ecma-262/11.0/index.html#sec-arraycreate\n * @param len\n */\nexport function ArrayCreate(len) {\n return new Array(len);\n}\n/**\n * https://www.ecma-international.org/ecma-262/11.0/index.html#sec-hasownproperty\n * @param o\n * @param prop\n */\nexport function HasOwnProperty(o, prop) {\n return Object.prototype.hasOwnProperty.call(o, prop);\n}\n/**\n * https://www.ecma-international.org/ecma-262/11.0/index.html#sec-type\n * @param x\n */\nexport function Type(x) {\n if (x === null) {\n return 'Null';\n }\n if (typeof x === 'undefined') {\n return 'Undefined';\n }\n if (typeof x === 'function' || typeof x === 'object') {\n return 'Object';\n }\n if (typeof x === 'number') {\n return 'Number';\n }\n if (typeof x === 'boolean') {\n return 'Boolean';\n }\n if (typeof x === 'string') {\n return 'String';\n }\n if (typeof x === 'symbol') {\n return 'Symbol';\n }\n if (typeof x === 'bigint') {\n return 'BigInt';\n }\n}\nvar MS_PER_DAY = 86400000;\n/**\n * https://www.ecma-international.org/ecma-262/11.0/index.html#eqn-modulo\n * @param x\n * @param y\n * @return k of the same sign as y\n */\nfunction mod(x, y) {\n return x - Math.floor(x / y) * y;\n}\n/**\n * https://tc39.es/ecma262/#eqn-Day\n * @param t\n */\nexport function Day(t) {\n return Math.floor(t / MS_PER_DAY);\n}\n/**\n * https://tc39.es/ecma262/#sec-week-day\n * @param t\n */\nexport function WeekDay(t) {\n return mod(Day(t) + 4, 7);\n}\n/**\n * https://tc39.es/ecma262/#sec-year-number\n * @param y\n */\nexport function DayFromYear(y) {\n return Date.UTC(y, 0) / MS_PER_DAY;\n}\n/**\n * https://tc39.es/ecma262/#sec-year-number\n * @param y\n */\nexport function TimeFromYear(y) {\n return Date.UTC(y, 0);\n}\n/**\n * https://tc39.es/ecma262/#sec-year-number\n * @param t\n */\nexport function YearFromTime(t) {\n return new Date(t).getUTCFullYear();\n}\nexport function DaysInYear(y) {\n if (y % 4 !== 0) {\n return 365;\n }\n if (y % 100 !== 0) {\n return 366;\n }\n if (y % 400 !== 0) {\n return 365;\n }\n return 366;\n}\nexport function DayWithinYear(t) {\n return Day(t) - DayFromYear(YearFromTime(t));\n}\nexport function InLeapYear(t) {\n return DaysInYear(YearFromTime(t)) === 365 ? 0 : 1;\n}\n/**\n * https://tc39.es/ecma262/#sec-month-number\n * @param t\n */\nexport function MonthFromTime(t) {\n var dwy = DayWithinYear(t);\n var leap = InLeapYear(t);\n if (dwy >= 0 && dwy < 31) {\n return 0;\n }\n if (dwy < 59 + leap) {\n return 1;\n }\n if (dwy < 90 + leap) {\n return 2;\n }\n if (dwy < 120 + leap) {\n return 3;\n }\n if (dwy < 151 + leap) {\n return 4;\n }\n if (dwy < 181 + leap) {\n return 5;\n }\n if (dwy < 212 + leap) {\n return 6;\n }\n if (dwy < 243 + leap) {\n return 7;\n }\n if (dwy < 273 + leap) {\n return 8;\n }\n if (dwy < 304 + leap) {\n return 9;\n }\n if (dwy < 334 + leap) {\n return 10;\n }\n if (dwy < 365 + leap) {\n return 11;\n }\n throw new Error('Invalid time');\n}\nexport function DateFromTime(t) {\n var dwy = DayWithinYear(t);\n var mft = MonthFromTime(t);\n var leap = InLeapYear(t);\n if (mft === 0) {\n return dwy + 1;\n }\n if (mft === 1) {\n return dwy - 30;\n }\n if (mft === 2) {\n return dwy - 58 - leap;\n }\n if (mft === 3) {\n return dwy - 89 - leap;\n }\n if (mft === 4) {\n return dwy - 119 - leap;\n }\n if (mft === 5) {\n return dwy - 150 - leap;\n }\n if (mft === 6) {\n return dwy - 180 - leap;\n }\n if (mft === 7) {\n return dwy - 211 - leap;\n }\n if (mft === 8) {\n return dwy - 242 - leap;\n }\n if (mft === 9) {\n return dwy - 272 - leap;\n }\n if (mft === 10) {\n return dwy - 303 - leap;\n }\n if (mft === 11) {\n return dwy - 333 - leap;\n }\n throw new Error('Invalid time');\n}\nvar HOURS_PER_DAY = 24;\nvar MINUTES_PER_HOUR = 60;\nvar SECONDS_PER_MINUTE = 60;\nvar MS_PER_SECOND = 1e3;\nvar MS_PER_MINUTE = MS_PER_SECOND * SECONDS_PER_MINUTE;\nvar MS_PER_HOUR = MS_PER_MINUTE * MINUTES_PER_HOUR;\nexport function HourFromTime(t) {\n return mod(Math.floor(t / MS_PER_HOUR), HOURS_PER_DAY);\n}\nexport function MinFromTime(t) {\n return mod(Math.floor(t / MS_PER_MINUTE), MINUTES_PER_HOUR);\n}\nexport function SecFromTime(t) {\n return mod(Math.floor(t / MS_PER_SECOND), SECONDS_PER_MINUTE);\n}\nfunction IsCallable(fn) {\n return typeof fn === 'function';\n}\n/**\n * The abstract operation OrdinaryHasInstance implements\n * the default algorithm for determining if an object O\n * inherits from the instance object inheritance path\n * provided by constructor C.\n * @param C class\n * @param O object\n * @param internalSlots internalSlots\n */\nexport function OrdinaryHasInstance(C, O, internalSlots) {\n if (!IsCallable(C)) {\n return false;\n }\n if (internalSlots === null || internalSlots === void 0 ? void 0 : internalSlots.boundTargetFunction) {\n var BC = internalSlots === null || internalSlots === void 0 ? void 0 : internalSlots.boundTargetFunction;\n return O instanceof BC;\n }\n if (typeof O !== 'object') {\n return false;\n }\n var P = C.prototype;\n if (typeof P !== 'object') {\n throw new TypeError('OrdinaryHasInstance called on an object with an invalid prototype property.');\n }\n return Object.prototype.isPrototypeOf.call(P, O);\n}\nexport function msFromTime(t) {\n return mod(t, MS_PER_SECOND);\n}\n","import { ToObject } from './262';\n/**\n * https://tc39.es/ecma402/#sec-coerceoptionstoobject\n * @param options\n * @returns\n */\nexport function CoerceOptionsToObject(options) {\n if (typeof options === 'undefined') {\n return Object.create(null);\n }\n return ToObject(options);\n}\n","export function DefaultNumberOption(val, min, max, fallback) {\n if (val !== undefined) {\n val = Number(val);\n if (isNaN(val) || val < min || val > max) {\n throw new RangeError(val + \" is outside of range [\" + min + \", \" + max + \"]\");\n }\n return Math.floor(val);\n }\n return fallback;\n}\n","/**\n * https://tc39.es/ecma402/#sec-getnumberoption\n * @param options\n * @param property\n * @param min\n * @param max\n * @param fallback\n */\nimport { DefaultNumberOption } from './DefaultNumberOption';\nexport function GetNumberOption(options, property, minimum, maximum, fallback) {\n var val = options[property];\n // @ts-expect-error\n return DefaultNumberOption(val, minimum, maximum, fallback);\n}\n","import { ToString } from './262';\n/**\n * https://tc39.es/ecma402/#sec-getoption\n * @param opts\n * @param prop\n * @param type\n * @param values\n * @param fallback\n */\nexport function GetOption(opts, prop, type, values, fallback) {\n if (typeof opts !== 'object') {\n throw new TypeError('Options must be an object');\n }\n var value = opts[prop];\n if (value !== undefined) {\n if (type !== 'boolean' && type !== 'string') {\n throw new TypeError('invalid type');\n }\n if (type === 'boolean') {\n value = Boolean(value);\n }\n if (type === 'string') {\n value = ToString(value);\n }\n if (values !== undefined && !values.filter(function (val) { return val == value; }).length) {\n throw new RangeError(value + \" is not within \" + values.join(', '));\n }\n return value;\n }\n return fallback;\n}\n","/**\n * https://tc39.es/ecma402/#sec-getoptionsobject\n * @param options\n * @returns\n */\nexport function GetOptionsObject(options) {\n if (typeof options === 'undefined') {\n return Object.create(null);\n }\n if (typeof options === 'object') {\n return options;\n }\n throw new TypeError('Options must be an object');\n}\n","/**\n * https://tc39.es/ecma402/#table-sanctioned-simple-unit-identifiers\n */\nexport var SANCTIONED_UNITS = [\n 'angle-degree',\n 'area-acre',\n 'area-hectare',\n 'concentr-percent',\n 'digital-bit',\n 'digital-byte',\n 'digital-gigabit',\n 'digital-gigabyte',\n 'digital-kilobit',\n 'digital-kilobyte',\n 'digital-megabit',\n 'digital-megabyte',\n 'digital-petabyte',\n 'digital-terabit',\n 'digital-terabyte',\n 'duration-day',\n 'duration-hour',\n 'duration-millisecond',\n 'duration-minute',\n 'duration-month',\n 'duration-second',\n 'duration-week',\n 'duration-year',\n 'length-centimeter',\n 'length-foot',\n 'length-inch',\n 'length-kilometer',\n 'length-meter',\n 'length-mile-scandinavian',\n 'length-mile',\n 'length-millimeter',\n 'length-yard',\n 'mass-gram',\n 'mass-kilogram',\n 'mass-ounce',\n 'mass-pound',\n 'mass-stone',\n 'temperature-celsius',\n 'temperature-fahrenheit',\n 'volume-fluid-ounce',\n 'volume-gallon',\n 'volume-liter',\n 'volume-milliliter',\n];\n// In CLDR, the unit name always follows the form `namespace-unit` pattern.\n// For example: `digital-bit` instead of `bit`. This function removes the namespace prefix.\nexport function removeUnitNamespace(unit) {\n return unit.slice(unit.indexOf('-') + 1);\n}\n/**\n * https://tc39.es/ecma402/#table-sanctioned-simple-unit-identifiers\n */\nexport var SIMPLE_UNITS = SANCTIONED_UNITS.map(removeUnitNamespace);\n/**\n * https://tc39.es/ecma402/#sec-issanctionedsimpleunitidentifier\n */\nexport function IsSanctionedSimpleUnitIdentifier(unitIdentifier) {\n return SIMPLE_UNITS.indexOf(unitIdentifier) > -1;\n}\n","/**\n * https://tc39.es/ecma402/#sec-isvalidtimezonename\n * @param tz\n * @param implDetails implementation details\n */\nexport function IsValidTimeZoneName(tz, _a) {\n var tzData = _a.tzData, uppercaseLinks = _a.uppercaseLinks;\n var uppercasedTz = tz.toUpperCase();\n var zoneNames = new Set();\n var linkNames = new Set();\n Object.keys(tzData)\n .map(function (z) { return z.toUpperCase(); })\n .forEach(function (z) { return zoneNames.add(z); });\n Object.keys(uppercaseLinks).forEach(function (linkName) {\n linkNames.add(linkName.toUpperCase());\n zoneNames.add(uppercaseLinks[linkName].toUpperCase());\n });\n return zoneNames.has(uppercasedTz) || linkNames.has(uppercasedTz);\n}\n","/**\n * This follows https://tc39.es/ecma402/#sec-case-sensitivity-and-case-mapping\n * @param str string to convert\n */\nfunction toUpperCase(str) {\n return str.replace(/([a-z])/g, function (_, c) { return c.toUpperCase(); });\n}\nvar NOT_A_Z_REGEX = /[^A-Z]/;\n/**\n * https://tc39.es/ecma402/#sec-iswellformedcurrencycode\n */\nexport function IsWellFormedCurrencyCode(currency) {\n currency = toUpperCase(currency);\n if (currency.length !== 3) {\n return false;\n }\n if (NOT_A_Z_REGEX.test(currency)) {\n return false;\n }\n return true;\n}\n","import { IsSanctionedSimpleUnitIdentifier } from './IsSanctionedSimpleUnitIdentifier';\n/**\n * This follows https://tc39.es/ecma402/#sec-case-sensitivity-and-case-mapping\n * @param str string to convert\n */\nfunction toLowerCase(str) {\n return str.replace(/([A-Z])/g, function (_, c) { return c.toLowerCase(); });\n}\n/**\n * https://tc39.es/ecma402/#sec-iswellformedunitidentifier\n * @param unit\n */\nexport function IsWellFormedUnitIdentifier(unit) {\n unit = toLowerCase(unit);\n if (IsSanctionedSimpleUnitIdentifier(unit)) {\n return true;\n }\n var units = unit.split('-per-');\n if (units.length !== 2) {\n return false;\n }\n var numerator = units[0], denominator = units[1];\n if (!IsSanctionedSimpleUnitIdentifier(numerator) ||\n !IsSanctionedSimpleUnitIdentifier(denominator)) {\n return false;\n }\n return true;\n}\n","/**\n * The abstract operation ComputeExponentForMagnitude computes an exponent by which to scale a\n * number of the given magnitude (power of ten of the most significant digit) according to the\n * locale and the desired notation (scientific, engineering, or compact).\n */\nexport function ComputeExponentForMagnitude(numberFormat, magnitude, _a) {\n var getInternalSlots = _a.getInternalSlots;\n var internalSlots = getInternalSlots(numberFormat);\n var notation = internalSlots.notation, dataLocaleData = internalSlots.dataLocaleData, numberingSystem = internalSlots.numberingSystem;\n switch (notation) {\n case 'standard':\n return 0;\n case 'scientific':\n return magnitude;\n case 'engineering':\n return Math.floor(magnitude / 3) * 3;\n default: {\n // Let exponent be an implementation- and locale-dependent (ILD) integer by which to scale a\n // number of the given magnitude in compact notation for the current locale.\n var compactDisplay = internalSlots.compactDisplay, style = internalSlots.style, currencyDisplay = internalSlots.currencyDisplay;\n var thresholdMap = void 0;\n if (style === 'currency' && currencyDisplay !== 'name') {\n var currency = dataLocaleData.numbers.currency[numberingSystem] ||\n dataLocaleData.numbers.currency[dataLocaleData.numbers.nu[0]];\n thresholdMap = currency.short;\n }\n else {\n var decimal = dataLocaleData.numbers.decimal[numberingSystem] ||\n dataLocaleData.numbers.decimal[dataLocaleData.numbers.nu[0]];\n thresholdMap = compactDisplay === 'long' ? decimal.long : decimal.short;\n }\n if (!thresholdMap) {\n return 0;\n }\n var num = String(Math.pow(10, magnitude));\n var thresholds = Object.keys(thresholdMap); // TODO: this can be pre-processed\n if (num < thresholds[0]) {\n return 0;\n }\n if (num > thresholds[thresholds.length - 1]) {\n return thresholds[thresholds.length - 1].length - 1;\n }\n var i = thresholds.indexOf(num);\n if (i === -1) {\n return 0;\n }\n // See https://unicode.org/reports/tr35/tr35-numbers.html#Compact_Number_Formats\n // Special handling if the pattern is precisely `0`.\n var magnitudeKey = thresholds[i];\n // TODO: do we need to handle plural here?\n var compactPattern = thresholdMap[magnitudeKey].other;\n if (compactPattern === '0') {\n return 0;\n }\n // Example: in zh-TW, `10000000` maps to `0000萬`. So we need to return 8 - 4 = 4 here.\n return (magnitudeKey.length -\n thresholdMap[magnitudeKey].other.match(/0+/)[0].length);\n }\n }\n}\n","import { repeat, getMagnitude } from '../utils';\nexport function ToRawPrecision(x, minPrecision, maxPrecision) {\n var p = maxPrecision;\n var m;\n var e;\n var xFinal;\n if (x === 0) {\n m = repeat('0', p);\n e = 0;\n xFinal = 0;\n }\n else {\n var xToString = x.toString();\n // If xToString is formatted as scientific notation, the number is either very small or very\n // large. If the precision of the formatted string is lower that requested max precision, we\n // should still infer them from the formatted string, otherwise the formatted result might have\n // precision loss (e.g. 1e41 will not have 0 in every trailing digits).\n var xToStringExponentIndex = xToString.indexOf('e');\n var _a = xToString.split('e'), xToStringMantissa = _a[0], xToStringExponent = _a[1];\n var xToStringMantissaWithoutDecimalPoint = xToStringMantissa.replace('.', '');\n if (xToStringExponentIndex >= 0 &&\n xToStringMantissaWithoutDecimalPoint.length <= p) {\n e = +xToStringExponent;\n m =\n xToStringMantissaWithoutDecimalPoint +\n repeat('0', p - xToStringMantissaWithoutDecimalPoint.length);\n xFinal = x;\n }\n else {\n e = getMagnitude(x);\n var decimalPlaceOffset = e - p + 1;\n // n is the integer containing the required precision digits. To derive the formatted string,\n // we will adjust its decimal place in the logic below.\n var n = Math.round(adjustDecimalPlace(x, decimalPlaceOffset));\n // The rounding caused the change of magnitude, so we should increment `e` by 1.\n if (adjustDecimalPlace(n, p - 1) >= 10) {\n e = e + 1;\n // Divide n by 10 to swallow one precision.\n n = Math.floor(n / 10);\n }\n m = n.toString();\n // Equivalent of n * 10 ** (e - p + 1)\n xFinal = adjustDecimalPlace(n, p - 1 - e);\n }\n }\n var int;\n if (e >= p - 1) {\n m = m + repeat('0', e - p + 1);\n int = e + 1;\n }\n else if (e >= 0) {\n m = m.slice(0, e + 1) + \".\" + m.slice(e + 1);\n int = e + 1;\n }\n else {\n m = \"0.\" + repeat('0', -e - 1) + m;\n int = 1;\n }\n if (m.indexOf('.') >= 0 && maxPrecision > minPrecision) {\n var cut = maxPrecision - minPrecision;\n while (cut > 0 && m[m.length - 1] === '0') {\n m = m.slice(0, -1);\n cut--;\n }\n if (m[m.length - 1] === '.') {\n m = m.slice(0, -1);\n }\n }\n return { formattedString: m, roundedNumber: xFinal, integerDigitsCount: int };\n // x / (10 ** magnitude), but try to preserve as much floating point precision as possible.\n function adjustDecimalPlace(x, magnitude) {\n return magnitude < 0 ? x * Math.pow(10, -magnitude) : x / Math.pow(10, magnitude);\n }\n}\n","import { repeat } from '../utils';\n/**\n * TODO: dedup with intl-pluralrules and support BigInt\n * https://tc39.es/ecma402/#sec-torawfixed\n * @param x a finite non-negative Number or BigInt\n * @param minFraction and integer between 0 and 20\n * @param maxFraction and integer between 0 and 20\n */\nexport function ToRawFixed(x, minFraction, maxFraction) {\n var f = maxFraction;\n var n = Math.round(x * Math.pow(10, f));\n var xFinal = n / Math.pow(10, f);\n // n is a positive integer, but it is possible to be greater than 1e21.\n // In such case we will go the slow path.\n // See also: https://tc39.es/ecma262/#sec-numeric-types-number-tostring\n var m;\n if (n < 1e21) {\n m = n.toString();\n }\n else {\n m = n.toString();\n var _a = m.split('e'), mantissa = _a[0], exponent = _a[1];\n m = mantissa.replace('.', '');\n m = m + repeat('0', Math.max(+exponent - m.length + 1, 0));\n }\n var int;\n if (f !== 0) {\n var k = m.length;\n if (k <= f) {\n var z = repeat('0', f + 1 - k);\n m = z + m;\n k = f + 1;\n }\n var a = m.slice(0, k - f);\n var b = m.slice(k - f);\n m = a + \".\" + b;\n int = a.length;\n }\n else {\n int = m.length;\n }\n var cut = maxFraction - minFraction;\n while (cut > 0 && m[m.length - 1] === '0') {\n m = m.slice(0, -1);\n cut--;\n }\n if (m[m.length - 1] === '.') {\n m = m.slice(0, -1);\n }\n return { formattedString: m, roundedNumber: xFinal, integerDigitsCount: int };\n}\n","import { SameValue } from '../262';\nimport { ToRawPrecision } from './ToRawPrecision';\nimport { repeat } from '../utils';\nimport { ToRawFixed } from './ToRawFixed';\n/**\n * https://tc39.es/ecma402/#sec-formatnumberstring\n */\nexport function FormatNumericToString(intlObject, x) {\n var isNegative = x < 0 || SameValue(x, -0);\n if (isNegative) {\n x = -x;\n }\n var result;\n var rourndingType = intlObject.roundingType;\n switch (rourndingType) {\n case 'significantDigits':\n result = ToRawPrecision(x, intlObject.minimumSignificantDigits, intlObject.maximumSignificantDigits);\n break;\n case 'fractionDigits':\n result = ToRawFixed(x, intlObject.minimumFractionDigits, intlObject.maximumFractionDigits);\n break;\n default:\n result = ToRawPrecision(x, 1, 2);\n if (result.integerDigitsCount > 1) {\n result = ToRawFixed(x, 0, 0);\n }\n break;\n }\n x = result.roundedNumber;\n var string = result.formattedString;\n var int = result.integerDigitsCount;\n var minInteger = intlObject.minimumIntegerDigits;\n if (int < minInteger) {\n var forwardZeros = repeat('0', minInteger - int);\n string = forwardZeros + string;\n }\n if (isNegative) {\n x = -x;\n }\n return { roundedNumber: x, formattedString: string };\n}\n","import { getMagnitude } from '../utils';\nimport { ComputeExponentForMagnitude } from './ComputeExponentForMagnitude';\nimport { FormatNumericToString } from './FormatNumericToString';\n/**\n * The abstract operation ComputeExponent computes an exponent (power of ten) by which to scale x\n * according to the number formatting settings. It handles cases such as 999 rounding up to 1000,\n * requiring a different exponent.\n *\n * NOT IN SPEC: it returns [exponent, magnitude].\n */\nexport function ComputeExponent(numberFormat, x, _a) {\n var getInternalSlots = _a.getInternalSlots;\n if (x === 0) {\n return [0, 0];\n }\n if (x < 0) {\n x = -x;\n }\n var magnitude = getMagnitude(x);\n var exponent = ComputeExponentForMagnitude(numberFormat, magnitude, {\n getInternalSlots: getInternalSlots,\n });\n // Preserve more precision by doing multiplication when exponent is negative.\n x = exponent < 0 ? x * Math.pow(10, -exponent) : x / Math.pow(10, exponent);\n var formatNumberResult = FormatNumericToString(getInternalSlots(numberFormat), x);\n if (formatNumberResult.roundedNumber === 0) {\n return [exponent, magnitude];\n }\n var newMagnitude = getMagnitude(formatNumberResult.roundedNumber);\n if (newMagnitude === magnitude - exponent) {\n return [exponent, magnitude];\n }\n return [\n ComputeExponentForMagnitude(numberFormat, magnitude + 1, {\n getInternalSlots: getInternalSlots,\n }),\n magnitude + 1,\n ];\n}\n","import { HasOwnProperty } from '../262';\n/**\n * https://tc39.es/ecma402/#sec-currencydigits\n */\nexport function CurrencyDigits(c, _a) {\n var currencyDigitsData = _a.currencyDigitsData;\n return HasOwnProperty(currencyDigitsData, c)\n ? currencyDigitsData[c]\n : 2;\n}\n","export var digitMapping = { \"adlm\": [\"𞥐\", \"𞥑\", \"𞥒\", \"𞥓\", \"𞥔\", \"𞥕\", \"𞥖\", \"𞥗\", \"𞥘\", \"𞥙\"], \"ahom\": [\"𑜰\", \"𑜱\", \"𑜲\", \"𑜳\", \"𑜴\", \"𑜵\", \"𑜶\", \"𑜷\", \"𑜸\", \"𑜹\"], \"arab\": [\"٠\", \"١\", \"٢\", \"٣\", \"٤\", \"٥\", \"٦\", \"٧\", \"٨\", \"٩\"], \"arabext\": [\"۰\", \"۱\", \"۲\", \"۳\", \"۴\", \"۵\", \"۶\", \"۷\", \"۸\", \"۹\"], \"bali\": [\"᭐\", \"᭑\", \"᭒\", \"᭓\", \"᭔\", \"᭕\", \"᭖\", \"᭗\", \"᭘\", \"᭙\"], \"beng\": [\"০\", \"১\", \"২\", \"৩\", \"৪\", \"৫\", \"৬\", \"৭\", \"৮\", \"৯\"], \"bhks\": [\"𑱐\", \"𑱑\", \"𑱒\", \"𑱓\", \"𑱔\", \"𑱕\", \"𑱖\", \"𑱗\", \"𑱘\", \"𑱙\"], \"brah\": [\"𑁦\", \"𑁧\", \"𑁨\", \"𑁩\", \"𑁪\", \"𑁫\", \"𑁬\", \"𑁭\", \"𑁮\", \"𑁯\"], \"cakm\": [\"𑄶\", \"𑄷\", \"𑄸\", \"𑄹\", \"𑄺\", \"𑄻\", \"𑄼\", \"𑄽\", \"𑄾\", \"𑄿\"], \"cham\": [\"꩐\", \"꩑\", \"꩒\", \"꩓\", \"꩔\", \"꩕\", \"꩖\", \"꩗\", \"꩘\", \"꩙\"], \"deva\": [\"०\", \"१\", \"२\", \"३\", \"४\", \"५\", \"६\", \"७\", \"८\", \"९\"], \"diak\": [\"𑥐\", \"𑥑\", \"𑥒\", \"𑥓\", \"𑥔\", \"𑥕\", \"𑥖\", \"𑥗\", \"𑥘\", \"𑥙\"], \"fullwide\": [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\"], \"gong\": [\"𑶠\", \"𑶡\", \"𑶢\", \"𑶣\", \"𑶤\", \"𑶥\", \"𑶦\", \"𑶧\", \"𑶨\", \"𑶩\"], \"gonm\": [\"𑵐\", \"𑵑\", \"𑵒\", \"𑵓\", \"𑵔\", \"𑵕\", \"𑵖\", \"𑵗\", \"𑵘\", \"𑵙\"], \"gujr\": [\"૦\", \"૧\", \"૨\", \"૩\", \"૪\", \"૫\", \"૬\", \"૭\", \"૮\", \"૯\"], \"guru\": [\"੦\", \"੧\", \"੨\", \"੩\", \"੪\", \"੫\", \"੬\", \"੭\", \"੮\", \"੯\"], \"hanidec\": [\"〇\", \"一\", \"二\", \"三\", \"四\", \"五\", \"六\", \"七\", \"八\", \"九\"], \"hmng\": [\"𖭐\", \"𖭑\", \"𖭒\", \"𖭓\", \"𖭔\", \"𖭕\", \"𖭖\", \"𖭗\", \"𖭘\", \"𖭙\"], \"hmnp\": [\"𞅀\", \"𞅁\", \"𞅂\", \"𞅃\", \"𞅄\", \"𞅅\", \"𞅆\", \"𞅇\", \"𞅈\", \"𞅉\"], \"java\": [\"꧐\", \"꧑\", \"꧒\", \"꧓\", \"꧔\", \"꧕\", \"꧖\", \"꧗\", \"꧘\", \"꧙\"], \"kali\": [\"꤀\", \"꤁\", \"꤂\", \"꤃\", \"꤄\", \"꤅\", \"꤆\", \"꤇\", \"꤈\", \"꤉\"], \"khmr\": [\"០\", \"១\", \"២\", \"៣\", \"៤\", \"៥\", \"៦\", \"៧\", \"៨\", \"៩\"], \"knda\": [\"೦\", \"೧\", \"೨\", \"೩\", \"೪\", \"೫\", \"೬\", \"೭\", \"೮\", \"೯\"], \"lana\": [\"᪀\", \"᪁\", \"᪂\", \"᪃\", \"᪄\", \"᪅\", \"᪆\", \"᪇\", \"᪈\", \"᪉\"], \"lanatham\": [\"᪐\", \"᪑\", \"᪒\", \"᪓\", \"᪔\", \"᪕\", \"᪖\", \"᪗\", \"᪘\", \"᪙\"], \"laoo\": [\"໐\", \"໑\", \"໒\", \"໓\", \"໔\", \"໕\", \"໖\", \"໗\", \"໘\", \"໙\"], \"lepc\": [\"᪐\", \"᪑\", \"᪒\", \"᪓\", \"᪔\", \"᪕\", \"᪖\", \"᪗\", \"᪘\", \"᪙\"], \"limb\": [\"᥆\", \"᥇\", \"᥈\", \"᥉\", \"᥊\", \"᥋\", \"᥌\", \"᥍\", \"᥎\", \"᥏\"], \"mathbold\": [\"𝟎\", \"𝟏\", \"𝟐\", \"𝟑\", \"𝟒\", \"𝟓\", \"𝟔\", \"𝟕\", \"𝟖\", \"𝟗\"], \"mathdbl\": [\"𝟘\", \"𝟙\", \"𝟚\", \"𝟛\", \"𝟜\", \"𝟝\", \"𝟞\", \"𝟟\", \"𝟠\", \"𝟡\"], \"mathmono\": [\"𝟶\", \"𝟷\", \"𝟸\", \"𝟹\", \"𝟺\", \"𝟻\", \"𝟼\", \"𝟽\", \"𝟾\", \"𝟿\"], \"mathsanb\": [\"𝟬\", \"𝟭\", \"𝟮\", \"𝟯\", \"𝟰\", \"𝟱\", \"𝟲\", \"𝟳\", \"𝟴\", \"𝟵\"], \"mathsans\": [\"𝟢\", \"𝟣\", \"𝟤\", \"𝟥\", \"𝟦\", \"𝟧\", \"𝟨\", \"𝟩\", \"𝟪\", \"𝟫\"], \"mlym\": [\"൦\", \"൧\", \"൨\", \"൩\", \"൪\", \"൫\", \"൬\", \"൭\", \"൮\", \"൯\"], \"modi\": [\"𑙐\", \"𑙑\", \"𑙒\", \"𑙓\", \"𑙔\", \"𑙕\", \"𑙖\", \"𑙗\", \"𑙘\", \"𑙙\"], \"mong\": [\"᠐\", \"᠑\", \"᠒\", \"᠓\", \"᠔\", \"᠕\", \"᠖\", \"᠗\", \"᠘\", \"᠙\"], \"mroo\": [\"𖩠\", \"𖩡\", \"𖩢\", \"𖩣\", \"𖩤\", \"𖩥\", \"𖩦\", \"𖩧\", \"𖩨\", \"𖩩\"], \"mtei\": [\"꯰\", \"꯱\", \"꯲\", \"꯳\", \"꯴\", \"꯵\", \"꯶\", \"꯷\", \"꯸\", \"꯹\"], \"mymr\": [\"၀\", \"၁\", \"၂\", \"၃\", \"၄\", \"၅\", \"၆\", \"၇\", \"၈\", \"၉\"], \"mymrshan\": [\"႐\", \"႑\", \"႒\", \"႓\", \"႔\", \"႕\", \"႖\", \"႗\", \"႘\", \"႙\"], \"mymrtlng\": [\"꧰\", \"꧱\", \"꧲\", \"꧳\", \"꧴\", \"꧵\", \"꧶\", \"꧷\", \"꧸\", \"꧹\"], \"newa\": [\"𑑐\", \"𑑑\", \"𑑒\", \"𑑓\", \"𑑔\", \"𑑕\", \"𑑖\", \"𑑗\", \"𑑘\", \"𑑙\"], \"nkoo\": [\"߀\", \"߁\", \"߂\", \"߃\", \"߄\", \"߅\", \"߆\", \"߇\", \"߈\", \"߉\"], \"olck\": [\"᱐\", \"᱑\", \"᱒\", \"᱓\", \"᱔\", \"᱕\", \"᱖\", \"᱗\", \"᱘\", \"᱙\"], \"orya\": [\"୦\", \"୧\", \"୨\", \"୩\", \"୪\", \"୫\", \"୬\", \"୭\", \"୮\", \"୯\"], \"osma\": [\"𐒠\", \"𐒡\", \"𐒢\", \"𐒣\", \"𐒤\", \"𐒥\", \"𐒦\", \"𐒧\", \"𐒨\", \"𐒩\"], \"rohg\": [\"𐴰\", \"𐴱\", \"𐴲\", \"𐴳\", \"𐴴\", \"𐴵\", \"𐴶\", \"𐴷\", \"𐴸\", \"𐴹\"], \"saur\": [\"꣐\", \"꣑\", \"꣒\", \"꣓\", \"꣔\", \"꣕\", \"꣖\", \"꣗\", \"꣘\", \"꣙\"], \"segment\": [\"🯰\", \"🯱\", \"🯲\", \"🯳\", \"🯴\", \"🯵\", \"🯶\", \"🯷\", \"🯸\", \"🯹\"], \"shrd\": [\"𑇐\", \"𑇑\", \"𑇒\", \"𑇓\", \"𑇔\", \"𑇕\", \"𑇖\", \"𑇗\", \"𑇘\", \"𑇙\"], \"sind\": [\"𑋰\", \"𑋱\", \"𑋲\", \"𑋳\", \"𑋴\", \"𑋵\", \"𑋶\", \"𑋷\", \"𑋸\", \"𑋹\"], \"sinh\": [\"෦\", \"෧\", \"෨\", \"෩\", \"෪\", \"෫\", \"෬\", \"෭\", \"෮\", \"෯\"], \"sora\": [\"𑃰\", \"𑃱\", \"𑃲\", \"𑃳\", \"𑃴\", \"𑃵\", \"𑃶\", \"𑃷\", \"𑃸\", \"𑃹\"], \"sund\": [\"᮰\", \"᮱\", \"᮲\", \"᮳\", \"᮴\", \"᮵\", \"᮶\", \"᮷\", \"᮸\", \"᮹\"], \"takr\": [\"𑛀\", \"𑛁\", \"𑛂\", \"𑛃\", \"𑛄\", \"𑛅\", \"𑛆\", \"𑛇\", \"𑛈\", \"𑛉\"], \"talu\": [\"᧐\", \"᧑\", \"᧒\", \"᧓\", \"᧔\", \"᧕\", \"᧖\", \"᧗\", \"᧘\", \"᧙\"], \"tamldec\": [\"௦\", \"௧\", \"௨\", \"௩\", \"௪\", \"௫\", \"௬\", \"௭\", \"௮\", \"௯\"], \"telu\": [\"౦\", \"౧\", \"౨\", \"౩\", \"౪\", \"౫\", \"౬\", \"౭\", \"౮\", \"౯\"], \"thai\": [\"๐\", \"๑\", \"๒\", \"๓\", \"๔\", \"๕\", \"๖\", \"๗\", \"๘\", \"๙\"], \"tibt\": [\"༠\", \"༡\", \"༢\", \"༣\", \"༤\", \"༥\", \"༦\", \"༧\", \"༨\", \"༩\"], \"tirh\": [\"𑓐\", \"𑓑\", \"𑓒\", \"𑓓\", \"𑓔\", \"𑓕\", \"𑓖\", \"𑓗\", \"𑓘\", \"𑓙\"], \"vaii\": [\"ᘠ\", \"ᘡ\", \"ᘢ\", \"ᘣ\", \"ᘤ\", \"ᘥ\", \"ᘦ\", \"ᘧ\", \"ᘨ\", \"ᘩ\"], \"wara\": [\"𑣠\", \"𑣡\", \"𑣢\", \"𑣣\", \"𑣤\", \"𑣥\", \"𑣦\", \"𑣧\", \"𑣨\", \"𑣩\"], \"wcho\": [\"𞋰\", \"𞋱\", \"𞋲\", \"𞋳\", \"𞋴\", \"𞋵\", \"𞋶\", \"𞋷\", \"𞋸\", \"𞋹\"] };\n","// @generated from regex-gen.ts\nexport var S_UNICODE_REGEX = /[\\$\\+<->\\^`\\|~\\xA2-\\xA6\\xA8\\xA9\\xAC\\xAE-\\xB1\\xB4\\xB8\\xD7\\xF7\\u02C2-\\u02C5\\u02D2-\\u02DF\\u02E5-\\u02EB\\u02ED\\u02EF-\\u02FF\\u0375\\u0384\\u0385\\u03F6\\u0482\\u058D-\\u058F\\u0606-\\u0608\\u060B\\u060E\\u060F\\u06DE\\u06E9\\u06FD\\u06FE\\u07F6\\u07FE\\u07FF\\u09F2\\u09F3\\u09FA\\u09FB\\u0AF1\\u0B70\\u0BF3-\\u0BFA\\u0C7F\\u0D4F\\u0D79\\u0E3F\\u0F01-\\u0F03\\u0F13\\u0F15-\\u0F17\\u0F1A-\\u0F1F\\u0F34\\u0F36\\u0F38\\u0FBE-\\u0FC5\\u0FC7-\\u0FCC\\u0FCE\\u0FCF\\u0FD5-\\u0FD8\\u109E\\u109F\\u1390-\\u1399\\u166D\\u17DB\\u1940\\u19DE-\\u19FF\\u1B61-\\u1B6A\\u1B74-\\u1B7C\\u1FBD\\u1FBF-\\u1FC1\\u1FCD-\\u1FCF\\u1FDD-\\u1FDF\\u1FED-\\u1FEF\\u1FFD\\u1FFE\\u2044\\u2052\\u207A-\\u207C\\u208A-\\u208C\\u20A0-\\u20BF\\u2100\\u2101\\u2103-\\u2106\\u2108\\u2109\\u2114\\u2116-\\u2118\\u211E-\\u2123\\u2125\\u2127\\u2129\\u212E\\u213A\\u213B\\u2140-\\u2144\\u214A-\\u214D\\u214F\\u218A\\u218B\\u2190-\\u2307\\u230C-\\u2328\\u232B-\\u2426\\u2440-\\u244A\\u249C-\\u24E9\\u2500-\\u2767\\u2794-\\u27C4\\u27C7-\\u27E5\\u27F0-\\u2982\\u2999-\\u29D7\\u29DC-\\u29FB\\u29FE-\\u2B73\\u2B76-\\u2B95\\u2B97-\\u2BFF\\u2CE5-\\u2CEA\\u2E50\\u2E51\\u2E80-\\u2E99\\u2E9B-\\u2EF3\\u2F00-\\u2FD5\\u2FF0-\\u2FFB\\u3004\\u3012\\u3013\\u3020\\u3036\\u3037\\u303E\\u303F\\u309B\\u309C\\u3190\\u3191\\u3196-\\u319F\\u31C0-\\u31E3\\u3200-\\u321E\\u322A-\\u3247\\u3250\\u3260-\\u327F\\u328A-\\u32B0\\u32C0-\\u33FF\\u4DC0-\\u4DFF\\uA490-\\uA4C6\\uA700-\\uA716\\uA720\\uA721\\uA789\\uA78A\\uA828-\\uA82B\\uA836-\\uA839\\uAA77-\\uAA79\\uAB5B\\uAB6A\\uAB6B\\uFB29\\uFBB2-\\uFBC1\\uFDFC\\uFDFD\\uFE62\\uFE64-\\uFE66\\uFE69\\uFF04\\uFF0B\\uFF1C-\\uFF1E\\uFF3E\\uFF40\\uFF5C\\uFF5E\\uFFE0-\\uFFE6\\uFFE8-\\uFFEE\\uFFFC\\uFFFD]|\\uD800[\\uDD37-\\uDD3F\\uDD79-\\uDD89\\uDD8C-\\uDD8E\\uDD90-\\uDD9C\\uDDA0\\uDDD0-\\uDDFC]|\\uD802[\\uDC77\\uDC78\\uDEC8]|\\uD805\\uDF3F|\\uD807[\\uDFD5-\\uDFF1]|\\uD81A[\\uDF3C-\\uDF3F\\uDF45]|\\uD82F\\uDC9C|\\uD834[\\uDC00-\\uDCF5\\uDD00-\\uDD26\\uDD29-\\uDD64\\uDD6A-\\uDD6C\\uDD83\\uDD84\\uDD8C-\\uDDA9\\uDDAE-\\uDDE8\\uDE00-\\uDE41\\uDE45\\uDF00-\\uDF56]|\\uD835[\\uDEC1\\uDEDB\\uDEFB\\uDF15\\uDF35\\uDF4F\\uDF6F\\uDF89\\uDFA9\\uDFC3]|\\uD836[\\uDC00-\\uDDFF\\uDE37-\\uDE3A\\uDE6D-\\uDE74\\uDE76-\\uDE83\\uDE85\\uDE86]|\\uD838[\\uDD4F\\uDEFF]|\\uD83B[\\uDCAC\\uDCB0\\uDD2E\\uDEF0\\uDEF1]|\\uD83C[\\uDC00-\\uDC2B\\uDC30-\\uDC93\\uDCA0-\\uDCAE\\uDCB1-\\uDCBF\\uDCC1-\\uDCCF\\uDCD1-\\uDCF5\\uDD0D-\\uDDAD\\uDDE6-\\uDE02\\uDE10-\\uDE3B\\uDE40-\\uDE48\\uDE50\\uDE51\\uDE60-\\uDE65\\uDF00-\\uDFFF]|\\uD83D[\\uDC00-\\uDED7\\uDEE0-\\uDEEC\\uDEF0-\\uDEFC\\uDF00-\\uDF73\\uDF80-\\uDFD8\\uDFE0-\\uDFEB]|\\uD83E[\\uDC00-\\uDC0B\\uDC10-\\uDC47\\uDC50-\\uDC59\\uDC60-\\uDC87\\uDC90-\\uDCAD\\uDCB0\\uDCB1\\uDD00-\\uDD78\\uDD7A-\\uDDCB\\uDDCD-\\uDE53\\uDE60-\\uDE6D\\uDE70-\\uDE74\\uDE78-\\uDE7A\\uDE80-\\uDE86\\uDE90-\\uDEA8\\uDEB0-\\uDEB6\\uDEC0-\\uDEC2\\uDED0-\\uDED6\\uDF00-\\uDF92\\uDF94-\\uDFCA]/;\n","import { ToRawFixed } from './ToRawFixed';\nimport { digitMapping } from './digit-mapping.generated';\nimport { S_UNICODE_REGEX } from '../regex.generated';\n// This is from: unicode-12.1.0/General_Category/Symbol/regex.js\n// IE11 does not support unicode flag, otherwise this is just /\\p{S}/u.\n// /^\\p{S}/u\nvar CARET_S_UNICODE_REGEX = new RegExp(\"^\" + S_UNICODE_REGEX.source);\n// /\\p{S}$/u\nvar S_DOLLAR_UNICODE_REGEX = new RegExp(S_UNICODE_REGEX.source + \"$\");\nvar CLDR_NUMBER_PATTERN = /[#0](?:[\\.,][#0]+)*/g;\nexport default function formatToParts(numberResult, data, pl, options) {\n var sign = numberResult.sign, exponent = numberResult.exponent, magnitude = numberResult.magnitude;\n var notation = options.notation, style = options.style, numberingSystem = options.numberingSystem;\n var defaultNumberingSystem = data.numbers.nu[0];\n // #region Part 1: partition and interpolate the CLDR number pattern.\n // ----------------------------------------------------------\n var compactNumberPattern = null;\n if (notation === 'compact' && magnitude) {\n compactNumberPattern = getCompactDisplayPattern(numberResult, pl, data, style, options.compactDisplay, options.currencyDisplay, numberingSystem);\n }\n // This is used multiple times\n var nonNameCurrencyPart;\n if (style === 'currency' && options.currencyDisplay !== 'name') {\n var byCurrencyDisplay = data.currencies[options.currency];\n if (byCurrencyDisplay) {\n switch (options.currencyDisplay) {\n case 'code':\n nonNameCurrencyPart = options.currency;\n break;\n case 'symbol':\n nonNameCurrencyPart = byCurrencyDisplay.symbol;\n break;\n default:\n nonNameCurrencyPart = byCurrencyDisplay.narrow;\n break;\n }\n }\n else {\n // Fallback for unknown currency\n nonNameCurrencyPart = options.currency;\n }\n }\n var numberPattern;\n if (!compactNumberPattern) {\n // Note: if the style is unit, or is currency and the currency display is name,\n // its unit parts will be interpolated in part 2. So here we can fallback to decimal.\n if (style === 'decimal' ||\n style === 'unit' ||\n (style === 'currency' && options.currencyDisplay === 'name')) {\n // Shortcut for decimal\n var decimalData = data.numbers.decimal[numberingSystem] ||\n data.numbers.decimal[defaultNumberingSystem];\n numberPattern = getPatternForSign(decimalData.standard, sign);\n }\n else if (style === 'currency') {\n var currencyData = data.numbers.currency[numberingSystem] ||\n data.numbers.currency[defaultNumberingSystem];\n // We replace number pattern part with `0` for easier postprocessing.\n numberPattern = getPatternForSign(currencyData[options.currencySign], sign);\n }\n else {\n // percent\n var percentPattern = data.numbers.percent[numberingSystem] ||\n data.numbers.percent[defaultNumberingSystem];\n numberPattern = getPatternForSign(percentPattern, sign);\n }\n }\n else {\n numberPattern = compactNumberPattern;\n }\n // Extract the decimal number pattern string. It looks like \"#,##0,00\", which will later be\n // used to infer decimal group sizes.\n var decimalNumberPattern = CLDR_NUMBER_PATTERN.exec(numberPattern)[0];\n // Now we start to substitute patterns\n // 1. replace strings like `0` and `#,##0.00` with `{0}`\n // 2. unquote characters (invariant: the quoted characters does not contain the special tokens)\n numberPattern = numberPattern\n .replace(CLDR_NUMBER_PATTERN, '{0}')\n .replace(/'(.)'/g, '$1');\n // Handle currency spacing (both compact and non-compact).\n if (style === 'currency' && options.currencyDisplay !== 'name') {\n var currencyData = data.numbers.currency[numberingSystem] ||\n data.numbers.currency[defaultNumberingSystem];\n // See `currencySpacing` substitution rule in TR-35.\n // Here we always assume the currencyMatch is \"[:^S:]\" and surroundingMatch is \"[:digit:]\".\n //\n // Example 1: for pattern \"#,##0.00¤\" with symbol \"US$\", we replace \"¤\" with the symbol,\n // but insert an extra non-break space before the symbol, because \"[:^S:]\" matches \"U\" in\n // \"US$\" and \"[:digit:]\" matches the latn numbering system digits.\n //\n // Example 2: for pattern \"¤#,##0.00\" with symbol \"US$\", there is no spacing between symbol\n // and number, because `$` does not match \"[:^S:]\".\n //\n // Implementation note: here we do the best effort to infer the insertion.\n // We also assume that `beforeInsertBetween` and `afterInsertBetween` will never be `;`.\n var afterCurrency = currencyData.currencySpacing.afterInsertBetween;\n if (afterCurrency && !S_DOLLAR_UNICODE_REGEX.test(nonNameCurrencyPart)) {\n numberPattern = numberPattern.replace('¤{0}', \"\\u00A4\" + afterCurrency + \"{0}\");\n }\n var beforeCurrency = currencyData.currencySpacing.beforeInsertBetween;\n if (beforeCurrency && !CARET_S_UNICODE_REGEX.test(nonNameCurrencyPart)) {\n numberPattern = numberPattern.replace('{0}¤', \"{0}\" + beforeCurrency + \"\\u00A4\");\n }\n }\n // The following tokens are special: `{0}`, `¤`, `%`, `-`, `+`, `{c:...}.\n var numberPatternParts = numberPattern.split(/({c:[^}]+}|\\{0\\}|[¤%\\-\\+])/g);\n var numberParts = [];\n var symbols = data.numbers.symbols[numberingSystem] ||\n data.numbers.symbols[defaultNumberingSystem];\n for (var _i = 0, numberPatternParts_1 = numberPatternParts; _i < numberPatternParts_1.length; _i++) {\n var part = numberPatternParts_1[_i];\n if (!part) {\n continue;\n }\n switch (part) {\n case '{0}': {\n // We only need to handle scientific and engineering notation here.\n numberParts.push.apply(numberParts, paritionNumberIntoParts(symbols, numberResult, notation, exponent, numberingSystem, \n // If compact number pattern exists, do not insert group separators.\n !compactNumberPattern && options.useGrouping, decimalNumberPattern));\n break;\n }\n case '-':\n numberParts.push({ type: 'minusSign', value: symbols.minusSign });\n break;\n case '+':\n numberParts.push({ type: 'plusSign', value: symbols.plusSign });\n break;\n case '%':\n numberParts.push({ type: 'percentSign', value: symbols.percentSign });\n break;\n case '¤':\n // Computed above when handling currency spacing.\n numberParts.push({ type: 'currency', value: nonNameCurrencyPart });\n break;\n default:\n if (/^\\{c:/.test(part)) {\n numberParts.push({\n type: 'compact',\n value: part.substring(3, part.length - 1),\n });\n }\n else {\n // literal\n numberParts.push({ type: 'literal', value: part });\n }\n break;\n }\n }\n // #endregion\n // #region Part 2: interpolate unit pattern if necessary.\n // ----------------------------------------------\n switch (style) {\n case 'currency': {\n // `currencyDisplay: 'name'` has similar pattern handling as units.\n if (options.currencyDisplay === 'name') {\n var unitPattern = (data.numbers.currency[numberingSystem] ||\n data.numbers.currency[defaultNumberingSystem]).unitPattern;\n // Select plural\n var unitName = void 0;\n var currencyNameData = data.currencies[options.currency];\n if (currencyNameData) {\n unitName = selectPlural(pl, numberResult.roundedNumber * Math.pow(10, exponent), currencyNameData.displayName);\n }\n else {\n // Fallback for unknown currency\n unitName = options.currency;\n }\n // Do {0} and {1} substitution\n var unitPatternParts = unitPattern.split(/(\\{[01]\\})/g);\n var result = [];\n for (var _a = 0, unitPatternParts_1 = unitPatternParts; _a < unitPatternParts_1.length; _a++) {\n var part = unitPatternParts_1[_a];\n switch (part) {\n case '{0}':\n result.push.apply(result, numberParts);\n break;\n case '{1}':\n result.push({ type: 'currency', value: unitName });\n break;\n default:\n if (part) {\n result.push({ type: 'literal', value: part });\n }\n break;\n }\n }\n return result;\n }\n else {\n return numberParts;\n }\n }\n case 'unit': {\n var unit = options.unit, unitDisplay = options.unitDisplay;\n var unitData = data.units.simple[unit];\n var unitPattern = void 0;\n if (unitData) {\n // Simple unit pattern\n unitPattern = selectPlural(pl, numberResult.roundedNumber * Math.pow(10, exponent), data.units.simple[unit][unitDisplay]);\n }\n else {\n // See: http://unicode.org/reports/tr35/tr35-general.html#perUnitPatterns\n // If cannot find unit in the simple pattern, it must be \"per\" compound pattern.\n // Implementation note: we are not following TR-35 here because we need to format to parts!\n var _b = unit.split('-per-'), numeratorUnit = _b[0], denominatorUnit = _b[1];\n unitData = data.units.simple[numeratorUnit];\n var numeratorUnitPattern = selectPlural(pl, numberResult.roundedNumber * Math.pow(10, exponent), data.units.simple[numeratorUnit][unitDisplay]);\n var perUnitPattern = data.units.simple[denominatorUnit].perUnit[unitDisplay];\n if (perUnitPattern) {\n // perUnitPattern exists, combine it with numeratorUnitPattern\n unitPattern = perUnitPattern.replace('{0}', numeratorUnitPattern);\n }\n else {\n // get compoundUnit pattern (e.g. \"{0} per {1}\"), repalce {0} with numerator pattern and {1} with\n // the denominator pattern in singular form.\n var perPattern = data.units.compound.per[unitDisplay];\n var denominatorPattern = selectPlural(pl, 1, data.units.simple[denominatorUnit][unitDisplay]);\n unitPattern = unitPattern = perPattern\n .replace('{0}', numeratorUnitPattern)\n .replace('{1}', denominatorPattern.replace('{0}', ''));\n }\n }\n var result = [];\n // We need spacing around \"{0}\" because they are not treated as \"unit\" parts, but \"literal\".\n for (var _c = 0, _d = unitPattern.split(/(\\s*\\{0\\}\\s*)/); _c < _d.length; _c++) {\n var part = _d[_c];\n var interpolateMatch = /^(\\s*)\\{0\\}(\\s*)$/.exec(part);\n if (interpolateMatch) {\n // Space before \"{0}\"\n if (interpolateMatch[1]) {\n result.push({ type: 'literal', value: interpolateMatch[1] });\n }\n // \"{0}\" itself\n result.push.apply(result, numberParts);\n // Space after \"{0}\"\n if (interpolateMatch[2]) {\n result.push({ type: 'literal', value: interpolateMatch[2] });\n }\n }\n else if (part) {\n result.push({ type: 'unit', value: part });\n }\n }\n return result;\n }\n default:\n return numberParts;\n }\n // #endregion\n}\n// A subset of https://tc39.es/ecma402/#sec-partitionnotationsubpattern\n// Plus the exponent parts handling.\nfunction paritionNumberIntoParts(symbols, numberResult, notation, exponent, numberingSystem, useGrouping, \n/**\n * This is the decimal number pattern without signs or symbols.\n * It is used to infer the group size when `useGrouping` is true.\n *\n * A typical value looks like \"#,##0.00\" (primary group size is 3).\n * Some locales like Hindi has secondary group size of 2 (e.g. \"#,##,##0.00\").\n */\ndecimalNumberPattern) {\n var result = [];\n // eslint-disable-next-line prefer-const\n var n = numberResult.formattedString, x = numberResult.roundedNumber;\n if (isNaN(x)) {\n return [{ type: 'nan', value: n }];\n }\n else if (!isFinite(x)) {\n return [{ type: 'infinity', value: n }];\n }\n var digitReplacementTable = digitMapping[numberingSystem];\n if (digitReplacementTable) {\n n = n.replace(/\\d/g, function (digit) { return digitReplacementTable[+digit] || digit; });\n }\n // TODO: Else use an implementation dependent algorithm to map n to the appropriate\n // representation of n in the given numbering system.\n var decimalSepIndex = n.indexOf('.');\n var integer;\n var fraction;\n if (decimalSepIndex > 0) {\n integer = n.slice(0, decimalSepIndex);\n fraction = n.slice(decimalSepIndex + 1);\n }\n else {\n integer = n;\n }\n // #region Grouping integer digits\n // The weird compact and x >= 10000 check is to ensure consistency with Node.js and Chrome.\n // Note that `de` does not have compact form for thousands, but Node.js does not insert grouping separator\n // unless the rounded number is greater than 10000:\n // NumberFormat('de', {notation: 'compact', compactDisplay: 'short'}).format(1234) //=> \"1234\"\n // NumberFormat('de').format(1234) //=> \"1.234\"\n if (useGrouping && (notation !== 'compact' || x >= 10000)) {\n var groupSepSymbol = symbols.group;\n var groups = [];\n // > There may be two different grouping sizes: The primary grouping size used for the least\n // > significant integer group, and the secondary grouping size used for more significant groups.\n // > If a pattern contains multiple grouping separators, the interval between the last one and the\n // > end of the integer defines the primary grouping size, and the interval between the last two\n // > defines the secondary grouping size. All others are ignored.\n var integerNumberPattern = decimalNumberPattern.split('.')[0];\n var patternGroups = integerNumberPattern.split(',');\n var primaryGroupingSize = 3;\n var secondaryGroupingSize = 3;\n if (patternGroups.length > 1) {\n primaryGroupingSize = patternGroups[patternGroups.length - 1].length;\n }\n if (patternGroups.length > 2) {\n secondaryGroupingSize = patternGroups[patternGroups.length - 2].length;\n }\n var i = integer.length - primaryGroupingSize;\n if (i > 0) {\n // Slice the least significant integer group\n groups.push(integer.slice(i, i + primaryGroupingSize));\n // Then iteratively push the more signicant groups\n // TODO: handle surrogate pairs in some numbering system digits\n for (i -= secondaryGroupingSize; i > 0; i -= secondaryGroupingSize) {\n groups.push(integer.slice(i, i + secondaryGroupingSize));\n }\n groups.push(integer.slice(0, i + secondaryGroupingSize));\n }\n else {\n groups.push(integer);\n }\n while (groups.length > 0) {\n var integerGroup = groups.pop();\n result.push({ type: 'integer', value: integerGroup });\n if (groups.length > 0) {\n result.push({ type: 'group', value: groupSepSymbol });\n }\n }\n }\n else {\n result.push({ type: 'integer', value: integer });\n }\n // #endregion\n if (fraction !== undefined) {\n result.push({ type: 'decimal', value: symbols.decimal }, { type: 'fraction', value: fraction });\n }\n if ((notation === 'scientific' || notation === 'engineering') &&\n isFinite(x)) {\n result.push({ type: 'exponentSeparator', value: symbols.exponential });\n if (exponent < 0) {\n result.push({ type: 'exponentMinusSign', value: symbols.minusSign });\n exponent = -exponent;\n }\n var exponentResult = ToRawFixed(exponent, 0, 0);\n result.push({\n type: 'exponentInteger',\n value: exponentResult.formattedString,\n });\n }\n return result;\n}\nfunction getPatternForSign(pattern, sign) {\n if (pattern.indexOf(';') < 0) {\n pattern = pattern + \";-\" + pattern;\n }\n var _a = pattern.split(';'), zeroPattern = _a[0], negativePattern = _a[1];\n switch (sign) {\n case 0:\n return zeroPattern;\n case -1:\n return negativePattern;\n default:\n return negativePattern.indexOf('-') >= 0\n ? negativePattern.replace(/-/g, '+')\n : \"+\" + zeroPattern;\n }\n}\n// Find the CLDR pattern for compact notation based on the magnitude of data and style.\n//\n// Example return value: \"¤ {c:laki}000;¤{c:laki} -0\" (`sw` locale):\n// - Notice the `{c:...}` token that wraps the compact literal.\n// - The consecutive zeros are normalized to single zero to match CLDR_NUMBER_PATTERN.\n//\n// Returning null means the compact display pattern cannot be found.\nfunction getCompactDisplayPattern(numberResult, pl, data, style, compactDisplay, currencyDisplay, numberingSystem) {\n var _a;\n var roundedNumber = numberResult.roundedNumber, sign = numberResult.sign, magnitude = numberResult.magnitude;\n var magnitudeKey = String(Math.pow(10, magnitude));\n var defaultNumberingSystem = data.numbers.nu[0];\n var pattern;\n if (style === 'currency' && currencyDisplay !== 'name') {\n var byNumberingSystem = data.numbers.currency;\n var currencyData = byNumberingSystem[numberingSystem] ||\n byNumberingSystem[defaultNumberingSystem];\n // NOTE: compact notation ignores currencySign!\n var compactPluralRules = (_a = currencyData.short) === null || _a === void 0 ? void 0 : _a[magnitudeKey];\n if (!compactPluralRules) {\n return null;\n }\n pattern = selectPlural(pl, roundedNumber, compactPluralRules);\n }\n else {\n var byNumberingSystem = data.numbers.decimal;\n var byCompactDisplay = byNumberingSystem[numberingSystem] ||\n byNumberingSystem[defaultNumberingSystem];\n var compactPlaralRule = byCompactDisplay[compactDisplay][magnitudeKey];\n if (!compactPlaralRule) {\n return null;\n }\n pattern = selectPlural(pl, roundedNumber, compactPlaralRule);\n }\n // See https://unicode.org/reports/tr35/tr35-numbers.html#Compact_Number_Formats\n // > If the value is precisely “0”, either explicit or defaulted, then the normal number format\n // > pattern for that sort of object is supplied.\n if (pattern === '0') {\n return null;\n }\n pattern = getPatternForSign(pattern, sign)\n // Extract compact literal from the pattern\n .replace(/([^\\s;\\-\\+\\d¤]+)/g, '{c:$1}')\n // We replace one or more zeros with a single zero so it matches `CLDR_NUMBER_PATTERN`.\n .replace(/0+/, '0');\n return pattern;\n}\nfunction selectPlural(pl, x, rules) {\n return rules[pl.select(x)] || rules.other;\n}\n","import { FormatNumericToString } from './FormatNumericToString';\nimport { SameValue } from '../262';\nimport { ComputeExponent } from './ComputeExponent';\nimport formatToParts from './format_to_parts';\n/**\n * https://tc39.es/ecma402/#sec-formatnumberstring\n */\nexport function PartitionNumberPattern(numberFormat, x, _a) {\n var _b;\n var getInternalSlots = _a.getInternalSlots;\n var internalSlots = getInternalSlots(numberFormat);\n var pl = internalSlots.pl, dataLocaleData = internalSlots.dataLocaleData, numberingSystem = internalSlots.numberingSystem;\n var symbols = dataLocaleData.numbers.symbols[numberingSystem] ||\n dataLocaleData.numbers.symbols[dataLocaleData.numbers.nu[0]];\n var magnitude = 0;\n var exponent = 0;\n var n;\n if (isNaN(x)) {\n n = symbols.nan;\n }\n else if (!isFinite(x)) {\n n = symbols.infinity;\n }\n else {\n if (internalSlots.style === 'percent') {\n x *= 100;\n }\n ;\n _b = ComputeExponent(numberFormat, x, {\n getInternalSlots: getInternalSlots,\n }), exponent = _b[0], magnitude = _b[1];\n // Preserve more precision by doing multiplication when exponent is negative.\n x = exponent < 0 ? x * Math.pow(10, -exponent) : x / Math.pow(10, exponent);\n var formatNumberResult = FormatNumericToString(internalSlots, x);\n n = formatNumberResult.formattedString;\n x = formatNumberResult.roundedNumber;\n }\n // Based on https://tc39.es/ecma402/#sec-getnumberformatpattern\n // We need to do this before `x` is rounded.\n var sign;\n var signDisplay = internalSlots.signDisplay;\n switch (signDisplay) {\n case 'never':\n sign = 0;\n break;\n case 'auto':\n if (SameValue(x, 0) || x > 0 || isNaN(x)) {\n sign = 0;\n }\n else {\n sign = -1;\n }\n break;\n case 'always':\n if (SameValue(x, 0) || x > 0 || isNaN(x)) {\n sign = 1;\n }\n else {\n sign = -1;\n }\n break;\n default:\n // x === 0 -> x is 0 or x is -0\n if (x === 0 || isNaN(x)) {\n sign = 0;\n }\n else if (x > 0) {\n sign = 1;\n }\n else {\n sign = -1;\n }\n }\n return formatToParts({ roundedNumber: x, formattedString: n, exponent: exponent, magnitude: magnitude, sign: sign }, internalSlots.dataLocaleData, pl, internalSlots);\n}\n","import { PartitionNumberPattern } from './PartitionNumberPattern';\nimport { ArrayCreate } from '../262';\nexport function FormatNumericToParts(nf, x, implDetails) {\n var parts = PartitionNumberPattern(nf, x, implDetails);\n var result = ArrayCreate(0);\n for (var _i = 0, parts_1 = parts; _i < parts_1.length; _i++) {\n var part = parts_1[_i];\n result.push({\n type: part.type,\n value: part.value,\n });\n }\n return result;\n}\n","/**\n * https://tc39.es/ecma402/#sec-bestavailablelocale\n * @param availableLocales\n * @param locale\n */\nexport function BestAvailableLocale(availableLocales, locale) {\n var candidate = locale;\n while (true) {\n if (availableLocales.has(candidate)) {\n return candidate;\n }\n var pos = candidate.lastIndexOf('-');\n if (!~pos) {\n return undefined;\n }\n if (pos >= 2 && candidate[pos - 2] === '-') {\n pos -= 2;\n }\n candidate = candidate.slice(0, pos);\n }\n}\n","import { invariant } from './utils';\n/**\n * https://tc39.es/ecma402/#sec-unicodeextensionvalue\n * @param extension\n * @param key\n */\nexport function UnicodeExtensionValue(extension, key) {\n invariant(key.length === 2, 'key must have 2 elements');\n var size = extension.length;\n var searchValue = \"-\" + key + \"-\";\n var pos = extension.indexOf(searchValue);\n if (pos !== -1) {\n var start = pos + 4;\n var end = start;\n var k = start;\n var done = false;\n while (!done) {\n var e = extension.indexOf('-', k);\n var len = void 0;\n if (e === -1) {\n len = size - k;\n }\n else {\n len = e - k;\n }\n if (len === 2) {\n done = true;\n }\n else if (e === -1) {\n end = size;\n done = true;\n }\n else {\n end = e;\n k = e + 1;\n }\n }\n return extension.slice(start, end);\n }\n searchValue = \"-\" + key;\n pos = extension.indexOf(searchValue);\n if (pos !== -1 && pos + 3 === size) {\n return '';\n }\n return undefined;\n}\n","import { LookupMatcher } from './LookupMatcher';\nimport { BestFitMatcher } from './BestFitMatcher';\nimport { invariant } from './utils';\nimport { UnicodeExtensionValue } from './UnicodeExtensionValue';\n/**\n * https://tc39.es/ecma402/#sec-resolvelocale\n */\nexport function ResolveLocale(availableLocales, requestedLocales, options, relevantExtensionKeys, localeData, getDefaultLocale) {\n var matcher = options.localeMatcher;\n var r;\n if (matcher === 'lookup') {\n r = LookupMatcher(availableLocales, requestedLocales, getDefaultLocale);\n }\n else {\n r = BestFitMatcher(availableLocales, requestedLocales, getDefaultLocale);\n }\n var foundLocale = r.locale;\n var result = { locale: '', dataLocale: foundLocale };\n var supportedExtension = '-u';\n for (var _i = 0, relevantExtensionKeys_1 = relevantExtensionKeys; _i < relevantExtensionKeys_1.length; _i++) {\n var key = relevantExtensionKeys_1[_i];\n invariant(foundLocale in localeData, \"Missing locale data for \" + foundLocale);\n var foundLocaleData = localeData[foundLocale];\n invariant(typeof foundLocaleData === 'object' && foundLocaleData !== null, \"locale data \" + key + \" must be an object\");\n var keyLocaleData = foundLocaleData[key];\n invariant(Array.isArray(keyLocaleData), \"keyLocaleData for \" + key + \" must be an array\");\n var value = keyLocaleData[0];\n invariant(typeof value === 'string' || value === null, \"value must be string or null but got \" + typeof value + \" in key \" + key);\n var supportedExtensionAddition = '';\n if (r.extension) {\n var requestedValue = UnicodeExtensionValue(r.extension, key);\n if (requestedValue !== undefined) {\n if (requestedValue !== '') {\n if (~keyLocaleData.indexOf(requestedValue)) {\n value = requestedValue;\n supportedExtensionAddition = \"-\" + key + \"-\" + value;\n }\n }\n else if (~requestedValue.indexOf('true')) {\n value = 'true';\n supportedExtensionAddition = \"-\" + key;\n }\n }\n }\n if (key in options) {\n var optionsValue = options[key];\n invariant(typeof optionsValue === 'string' ||\n typeof optionsValue === 'undefined' ||\n optionsValue === null, 'optionsValue must be String, Undefined or Null');\n if (~keyLocaleData.indexOf(optionsValue)) {\n if (optionsValue !== value) {\n value = optionsValue;\n supportedExtensionAddition = '';\n }\n }\n }\n result[key] = value;\n supportedExtension += supportedExtensionAddition;\n }\n if (supportedExtension.length > 2) {\n var privateIndex = foundLocale.indexOf('-x-');\n if (privateIndex === -1) {\n foundLocale = foundLocale + supportedExtension;\n }\n else {\n var preExtension = foundLocale.slice(0, privateIndex);\n var postExtension = foundLocale.slice(privateIndex, foundLocale.length);\n foundLocale = preExtension + supportedExtension + postExtension;\n }\n foundLocale = Intl.getCanonicalLocales(foundLocale)[0];\n }\n result.locale = foundLocale;\n return result;\n}\n","import { UNICODE_EXTENSION_SEQUENCE_REGEX } from './utils';\nimport { BestAvailableLocale } from './BestAvailableLocale';\n/**\n * https://tc39.es/ecma402/#sec-lookupmatcher\n * @param availableLocales\n * @param requestedLocales\n * @param getDefaultLocale\n */\nexport function LookupMatcher(availableLocales, requestedLocales, getDefaultLocale) {\n var result = { locale: '' };\n for (var _i = 0, requestedLocales_1 = requestedLocales; _i < requestedLocales_1.length; _i++) {\n var locale = requestedLocales_1[_i];\n var noExtensionLocale = locale.replace(UNICODE_EXTENSION_SEQUENCE_REGEX, '');\n var availableLocale = BestAvailableLocale(availableLocales, noExtensionLocale);\n if (availableLocale) {\n result.locale = availableLocale;\n if (locale !== noExtensionLocale) {\n result.extension = locale.slice(noExtensionLocale.length + 1, locale.length);\n }\n return result;\n }\n }\n result.locale = getDefaultLocale();\n return result;\n}\n","import { BestAvailableLocale } from './BestAvailableLocale';\nimport { UNICODE_EXTENSION_SEQUENCE_REGEX } from './utils';\n/**\n * https://tc39.es/ecma402/#sec-bestfitmatcher\n * @param availableLocales\n * @param requestedLocales\n * @param getDefaultLocale\n */\nexport function BestFitMatcher(availableLocales, requestedLocales, getDefaultLocale) {\n var minimizedAvailableLocaleMap = {};\n var minimizedAvailableLocales = new Set();\n availableLocales.forEach(function (locale) {\n var minimizedLocale = new Intl.Locale(locale)\n .minimize()\n .toString();\n minimizedAvailableLocaleMap[minimizedLocale] = locale;\n minimizedAvailableLocales.add(minimizedLocale);\n });\n var foundLocale;\n for (var _i = 0, requestedLocales_1 = requestedLocales; _i < requestedLocales_1.length; _i++) {\n var l = requestedLocales_1[_i];\n if (foundLocale) {\n break;\n }\n var noExtensionLocale = l.replace(UNICODE_EXTENSION_SEQUENCE_REGEX, '');\n if (availableLocales.has(noExtensionLocale)) {\n foundLocale = noExtensionLocale;\n break;\n }\n if (minimizedAvailableLocales.has(noExtensionLocale)) {\n foundLocale = minimizedAvailableLocaleMap[noExtensionLocale];\n break;\n }\n var locale = new Intl.Locale(noExtensionLocale);\n var maximizedRequestedLocale = locale.maximize().toString();\n var minimizedRequestedLocale = locale.minimize().toString();\n // Check minimized locale\n if (minimizedAvailableLocales.has(minimizedRequestedLocale)) {\n foundLocale = minimizedAvailableLocaleMap[minimizedRequestedLocale];\n break;\n }\n // Lookup algo on maximized locale\n foundLocale = BestAvailableLocale(minimizedAvailableLocales, maximizedRequestedLocale);\n }\n return {\n locale: foundLocale || getDefaultLocale(),\n };\n}\n","import { GetOption } from '../GetOption';\nimport { IsWellFormedCurrencyCode } from '../IsWellFormedCurrencyCode';\nimport { IsWellFormedUnitIdentifier } from '../IsWellFormedUnitIdentifier';\n/**\n * https://tc39.es/ecma402/#sec-setnumberformatunitoptions\n */\nexport function SetNumberFormatUnitOptions(nf, options, _a) {\n if (options === void 0) { options = Object.create(null); }\n var getInternalSlots = _a.getInternalSlots;\n var internalSlots = getInternalSlots(nf);\n var style = GetOption(options, 'style', 'string', ['decimal', 'percent', 'currency', 'unit'], 'decimal');\n internalSlots.style = style;\n var currency = GetOption(options, 'currency', 'string', undefined, undefined);\n if (currency !== undefined && !IsWellFormedCurrencyCode(currency)) {\n throw RangeError('Malformed currency code');\n }\n if (style === 'currency' && currency === undefined) {\n throw TypeError('currency cannot be undefined');\n }\n var currencyDisplay = GetOption(options, 'currencyDisplay', 'string', ['code', 'symbol', 'narrowSymbol', 'name'], 'symbol');\n var currencySign = GetOption(options, 'currencySign', 'string', ['standard', 'accounting'], 'standard');\n var unit = GetOption(options, 'unit', 'string', undefined, undefined);\n if (unit !== undefined && !IsWellFormedUnitIdentifier(unit)) {\n throw RangeError('Invalid unit argument for Intl.NumberFormat()');\n }\n if (style === 'unit' && unit === undefined) {\n throw TypeError('unit cannot be undefined');\n }\n var unitDisplay = GetOption(options, 'unitDisplay', 'string', ['short', 'narrow', 'long'], 'short');\n if (style === 'currency') {\n internalSlots.currency = currency.toUpperCase();\n internalSlots.currencyDisplay = currencyDisplay;\n internalSlots.currencySign = currencySign;\n }\n if (style === 'unit') {\n internalSlots.unit = unit;\n internalSlots.unitDisplay = unitDisplay;\n }\n}\n","import { GetNumberOption } from '../GetNumberOption';\nimport { DefaultNumberOption } from '../DefaultNumberOption';\n/**\n * https://tc39.es/ecma402/#sec-setnfdigitoptions\n */\nexport function SetNumberFormatDigitOptions(internalSlots, opts, mnfdDefault, mxfdDefault, notation) {\n var mnid = GetNumberOption(opts, 'minimumIntegerDigits', 1, 21, 1);\n var mnfd = opts.minimumFractionDigits;\n var mxfd = opts.maximumFractionDigits;\n var mnsd = opts.minimumSignificantDigits;\n var mxsd = opts.maximumSignificantDigits;\n internalSlots.minimumIntegerDigits = mnid;\n if (mnsd !== undefined || mxsd !== undefined) {\n internalSlots.roundingType = 'significantDigits';\n mnsd = DefaultNumberOption(mnsd, 1, 21, 1);\n mxsd = DefaultNumberOption(mxsd, mnsd, 21, 21);\n internalSlots.minimumSignificantDigits = mnsd;\n internalSlots.maximumSignificantDigits = mxsd;\n }\n else if (mnfd !== undefined || mxfd !== undefined) {\n internalSlots.roundingType = 'fractionDigits';\n mnfd = DefaultNumberOption(mnfd, 0, 20, mnfdDefault);\n var mxfdActualDefault = Math.max(mnfd, mxfdDefault);\n mxfd = DefaultNumberOption(mxfd, mnfd, 20, mxfdActualDefault);\n internalSlots.minimumFractionDigits = mnfd;\n internalSlots.maximumFractionDigits = mxfd;\n }\n else if (notation === 'compact') {\n internalSlots.roundingType = 'compactRounding';\n }\n else {\n internalSlots.roundingType = 'fractionDigits';\n internalSlots.minimumFractionDigits = mnfdDefault;\n internalSlots.maximumFractionDigits = mxfdDefault;\n }\n}\n","import { CanonicalizeLocaleList } from '../CanonicalizeLocaleList';\nimport { GetOption } from '../GetOption';\nimport { ResolveLocale } from '../ResolveLocale';\nimport { SetNumberFormatUnitOptions } from './SetNumberFormatUnitOptions';\nimport { CurrencyDigits } from './CurrencyDigits';\nimport { SetNumberFormatDigitOptions } from './SetNumberFormatDigitOptions';\nimport { invariant } from '../utils';\nimport { CoerceOptionsToObject } from '../CoerceOptionsToObject';\n/**\n * https://tc39.es/ecma402/#sec-initializenumberformat\n */\nexport function InitializeNumberFormat(nf, locales, opts, _a) {\n var getInternalSlots = _a.getInternalSlots, localeData = _a.localeData, availableLocales = _a.availableLocales, numberingSystemNames = _a.numberingSystemNames, getDefaultLocale = _a.getDefaultLocale, currencyDigitsData = _a.currencyDigitsData;\n // @ts-ignore\n var requestedLocales = CanonicalizeLocaleList(locales);\n var options = CoerceOptionsToObject(opts);\n var opt = Object.create(null);\n var matcher = GetOption(options, 'localeMatcher', 'string', ['lookup', 'best fit'], 'best fit');\n opt.localeMatcher = matcher;\n var numberingSystem = GetOption(options, 'numberingSystem', 'string', undefined, undefined);\n if (numberingSystem !== undefined &&\n numberingSystemNames.indexOf(numberingSystem) < 0) {\n // 8.a. If numberingSystem does not match the Unicode Locale Identifier type nonterminal,\n // throw a RangeError exception.\n throw RangeError(\"Invalid numberingSystems: \" + numberingSystem);\n }\n opt.nu = numberingSystem;\n var r = ResolveLocale(availableLocales, requestedLocales, opt, \n // [[RelevantExtensionKeys]] slot, which is a constant\n ['nu'], localeData, getDefaultLocale);\n var dataLocaleData = localeData[r.dataLocale];\n invariant(!!dataLocaleData, \"Missing locale data for \" + r.dataLocale);\n var internalSlots = getInternalSlots(nf);\n internalSlots.locale = r.locale;\n internalSlots.dataLocale = r.dataLocale;\n internalSlots.numberingSystem = r.nu;\n internalSlots.dataLocaleData = dataLocaleData;\n SetNumberFormatUnitOptions(nf, options, { getInternalSlots: getInternalSlots });\n var style = internalSlots.style;\n var mnfdDefault;\n var mxfdDefault;\n if (style === 'currency') {\n var currency = internalSlots.currency;\n var cDigits = CurrencyDigits(currency, { currencyDigitsData: currencyDigitsData });\n mnfdDefault = cDigits;\n mxfdDefault = cDigits;\n }\n else {\n mnfdDefault = 0;\n mxfdDefault = style === 'percent' ? 0 : 3;\n }\n var notation = GetOption(options, 'notation', 'string', ['standard', 'scientific', 'engineering', 'compact'], 'standard');\n internalSlots.notation = notation;\n SetNumberFormatDigitOptions(internalSlots, options, mnfdDefault, mxfdDefault, notation);\n var compactDisplay = GetOption(options, 'compactDisplay', 'string', ['short', 'long'], 'short');\n if (notation === 'compact') {\n internalSlots.compactDisplay = compactDisplay;\n }\n var useGrouping = GetOption(options, 'useGrouping', 'boolean', undefined, true);\n internalSlots.useGrouping = useGrouping;\n var signDisplay = GetOption(options, 'signDisplay', 'string', ['auto', 'never', 'always', 'exceptZero'], 'auto');\n internalSlots.signDisplay = signDisplay;\n return nf;\n}\n","import { invariant } from './utils';\n/**\n * https://tc39.es/ecma402/#sec-partitionpattern\n * @param pattern\n */\nexport function PartitionPattern(pattern) {\n var result = [];\n var beginIndex = pattern.indexOf('{');\n var endIndex = 0;\n var nextIndex = 0;\n var length = pattern.length;\n while (beginIndex < pattern.length && beginIndex > -1) {\n endIndex = pattern.indexOf('}', beginIndex);\n invariant(endIndex > beginIndex, \"Invalid pattern \" + pattern);\n if (beginIndex > nextIndex) {\n result.push({\n type: 'literal',\n value: pattern.substring(nextIndex, beginIndex),\n });\n }\n result.push({\n type: pattern.substring(beginIndex + 1, endIndex),\n value: undefined,\n });\n nextIndex = endIndex + 1;\n beginIndex = pattern.indexOf('{', nextIndex);\n }\n if (nextIndex < length) {\n result.push({\n type: 'literal',\n value: pattern.substring(nextIndex, length),\n });\n }\n return result;\n}\n","import { UNICODE_EXTENSION_SEQUENCE_REGEX } from './utils';\nimport { BestAvailableLocale } from './BestAvailableLocale';\n/**\n * https://tc39.es/ecma402/#sec-lookupsupportedlocales\n * @param availableLocales\n * @param requestedLocales\n */\nexport function LookupSupportedLocales(availableLocales, requestedLocales) {\n var subset = [];\n for (var _i = 0, requestedLocales_1 = requestedLocales; _i < requestedLocales_1.length; _i++) {\n var locale = requestedLocales_1[_i];\n var noExtensionLocale = locale.replace(UNICODE_EXTENSION_SEQUENCE_REGEX, '');\n var availableLocale = BestAvailableLocale(availableLocales, noExtensionLocale);\n if (availableLocale) {\n subset.push(availableLocale);\n }\n }\n return subset;\n}\n","import { ToObject } from './262';\nimport { GetOption } from './GetOption';\nimport { LookupSupportedLocales } from './LookupSupportedLocales';\n/**\n * https://tc39.es/ecma402/#sec-supportedlocales\n * @param availableLocales\n * @param requestedLocales\n * @param options\n */\nexport function SupportedLocales(availableLocales, requestedLocales, options) {\n var matcher = 'best fit';\n if (options !== undefined) {\n options = ToObject(options);\n matcher = GetOption(options, 'localeMatcher', 'string', ['lookup', 'best fit'], 'best fit');\n }\n if (matcher === 'best fit') {\n return LookupSupportedLocales(availableLocales, requestedLocales);\n }\n return LookupSupportedLocales(availableLocales, requestedLocales);\n}\n","export var RangePatternType;\n(function (RangePatternType) {\n RangePatternType[\"startRange\"] = \"startRange\";\n RangePatternType[\"shared\"] = \"shared\";\n RangePatternType[\"endRange\"] = \"endRange\";\n})(RangePatternType || (RangePatternType = {}));\n","import { __extends } from \"tslib\";\nvar MissingLocaleDataError = /** @class */ (function (_super) {\n __extends(MissingLocaleDataError, _super);\n function MissingLocaleDataError() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = 'MISSING_LOCALE_DATA';\n return _this;\n }\n return MissingLocaleDataError;\n}(Error));\nexport function isMissingLocaleDataError(e) {\n return e.type === 'MISSING_LOCALE_DATA';\n}\n","var baseHas = require('./_baseHas'),\n hasPath = require('./_hasPath');\n\n/**\n * Checks if `path` is a direct property of `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = { 'a': { 'b': 2 } };\n * var other = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.has(object, 'a');\n * // => true\n *\n * _.has(object, 'a.b');\n * // => true\n *\n * _.has(object, ['a', 'b']);\n * // => true\n *\n * _.has(other, 'a');\n * // => false\n */\nfunction has(object, path) {\n return object != null && hasPath(object, path, baseHas);\n}\n\nmodule.exports = has;\n","import { __extends } from \"tslib\";\nexport var ErrorCode;\n(function (ErrorCode) {\n // When we have a placeholder but no value to format\n ErrorCode[\"MISSING_VALUE\"] = \"MISSING_VALUE\";\n // When value supplied is invalid\n ErrorCode[\"INVALID_VALUE\"] = \"INVALID_VALUE\";\n // When we need specific Intl API but it's not available\n ErrorCode[\"MISSING_INTL_API\"] = \"MISSING_INTL_API\";\n})(ErrorCode || (ErrorCode = {}));\nvar FormatError = /** @class */ (function (_super) {\n __extends(FormatError, _super);\n function FormatError(msg, code, originalMessage) {\n var _this = _super.call(this, msg) || this;\n _this.code = code;\n _this.originalMessage = originalMessage;\n return _this;\n }\n FormatError.prototype.toString = function () {\n return \"[formatjs Error: \" + this.code + \"] \" + this.message;\n };\n return FormatError;\n}(Error));\nexport { FormatError };\nvar InvalidValueError = /** @class */ (function (_super) {\n __extends(InvalidValueError, _super);\n function InvalidValueError(variableId, value, options, originalMessage) {\n return _super.call(this, \"Invalid values for \\\"\" + variableId + \"\\\": \\\"\" + value + \"\\\". Options are \\\"\" + Object.keys(options).join('\", \"') + \"\\\"\", ErrorCode.INVALID_VALUE, originalMessage) || this;\n }\n return InvalidValueError;\n}(FormatError));\nexport { InvalidValueError };\nvar InvalidValueTypeError = /** @class */ (function (_super) {\n __extends(InvalidValueTypeError, _super);\n function InvalidValueTypeError(value, type, originalMessage) {\n return _super.call(this, \"Value for \\\"\" + value + \"\\\" must be of type \" + type, ErrorCode.INVALID_VALUE, originalMessage) || this;\n }\n return InvalidValueTypeError;\n}(FormatError));\nexport { InvalidValueTypeError };\nvar MissingValueError = /** @class */ (function (_super) {\n __extends(MissingValueError, _super);\n function MissingValueError(variableId, originalMessage) {\n return _super.call(this, \"The intl string context variable \\\"\" + variableId + \"\\\" was not provided to the string \\\"\" + originalMessage + \"\\\"\", ErrorCode.MISSING_VALUE, originalMessage) || this;\n }\n return MissingValueError;\n}(FormatError));\nexport { MissingValueError };\n","var isMergeableObject = function isMergeableObject(value) {\n\treturn isNonNullObject(value)\n\t\t&& !isSpecial(value)\n};\n\nfunction isNonNullObject(value) {\n\treturn !!value && typeof value === 'object'\n}\n\nfunction isSpecial(value) {\n\tvar stringValue = Object.prototype.toString.call(value);\n\n\treturn stringValue === '[object RegExp]'\n\t\t|| stringValue === '[object Date]'\n\t\t|| isReactElement(value)\n}\n\n// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\nfunction isReactElement(value) {\n\treturn value.$$typeof === REACT_ELEMENT_TYPE\n}\n\nfunction emptyTarget(val) {\n\treturn Array.isArray(val) ? [] : {}\n}\n\nfunction cloneUnlessOtherwiseSpecified(value, options) {\n\treturn (options.clone !== false && options.isMergeableObject(value))\n\t\t? deepmerge(emptyTarget(value), value, options)\n\t\t: value\n}\n\nfunction defaultArrayMerge(target, source, options) {\n\treturn target.concat(source).map(function(element) {\n\t\treturn cloneUnlessOtherwiseSpecified(element, options)\n\t})\n}\n\nfunction mergeObject(target, source, options) {\n\tvar destination = {};\n\tif (options.isMergeableObject(target)) {\n\t\tObject.keys(target).forEach(function(key) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n\t\t});\n\t}\n\tObject.keys(source).forEach(function(key) {\n\t\tif (!options.isMergeableObject(source[key]) || !target[key]) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n\t\t} else {\n\t\t\tdestination[key] = deepmerge(target[key], source[key], options);\n\t\t}\n\t});\n\treturn destination\n}\n\nfunction deepmerge(target, source, options) {\n\toptions = options || {};\n\toptions.arrayMerge = options.arrayMerge || defaultArrayMerge;\n\toptions.isMergeableObject = options.isMergeableObject || isMergeableObject;\n\n\tvar sourceIsArray = Array.isArray(source);\n\tvar targetIsArray = Array.isArray(target);\n\tvar sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n\tif (!sourceAndTargetTypesMatch) {\n\t\treturn cloneUnlessOtherwiseSpecified(source, options)\n\t} else if (sourceIsArray) {\n\t\treturn options.arrayMerge(target, source, options)\n\t} else {\n\t\treturn mergeObject(target, source, options)\n\t}\n}\n\ndeepmerge.all = function deepmergeAll(array, options) {\n\tif (!Array.isArray(array)) {\n\t\tthrow new Error('first argument should be an array')\n\t}\n\n\treturn array.reduce(function(prev, next) {\n\t\treturn deepmerge(prev, next, options)\n\t}, {})\n};\n\nvar deepmerge_1 = deepmerge;\n\nexport default deepmerge_1;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nexport default Symbol;\n","import Symbol from './_Symbol.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nexport default getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nexport default objectToString;\n","import Symbol from './_Symbol.js';\nimport getRawTag from './_getRawTag.js';\nimport objectToString from './_objectToString.js';\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nexport default baseGetTag;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nexport default overArg;\n","import overArg from './_overArg.js';\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nexport default getPrototype;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nexport default isObjectLike;\n","import baseGetTag from './_baseGetTag.js';\nimport getPrototype from './_getPrototype.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\nexport default isPlainObject;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nexport default listCacheClear;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nexport default eq;\n","import eq from './eq.js';\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nexport default assocIndexOf;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nexport default listCacheDelete;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nexport default listCacheGet;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nexport default listCacheHas;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nexport default listCacheSet;\n","import listCacheClear from './_listCacheClear.js';\nimport listCacheDelete from './_listCacheDelete.js';\nimport listCacheGet from './_listCacheGet.js';\nimport listCacheHas from './_listCacheHas.js';\nimport listCacheSet from './_listCacheSet.js';\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nexport default ListCache;\n","import ListCache from './_ListCache.js';\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nexport default stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nexport default stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nexport default stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nexport default stackHas;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nexport default isObject;\n","import baseGetTag from './_baseGetTag.js';\nimport isObject from './isObject.js';\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nexport default isFunction;\n","import root from './_root.js';\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nexport default coreJsData;\n","import coreJsData from './_coreJsData.js';\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nexport default isMasked;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nexport default toSource;\n","import isFunction from './isFunction.js';\nimport isMasked from './_isMasked.js';\nimport isObject from './isObject.js';\nimport toSource from './_toSource.js';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nexport default baseIsNative;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nexport default getValue;\n","import baseIsNative from './_baseIsNative.js';\nimport getValue from './_getValue.js';\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nexport default getNative;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nexport default Map;\n","import getNative from './_getNative.js';\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nexport default nativeCreate;\n","import nativeCreate from './_nativeCreate.js';\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nexport default hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nexport default hashDelete;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nexport default hashGet;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nexport default hashHas;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nexport default hashSet;\n","import hashClear from './_hashClear.js';\nimport hashDelete from './_hashDelete.js';\nimport hashGet from './_hashGet.js';\nimport hashHas from './_hashHas.js';\nimport hashSet from './_hashSet.js';\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nexport default Hash;\n","import Hash from './_Hash.js';\nimport ListCache from './_ListCache.js';\nimport Map from './_Map.js';\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nexport default mapCacheClear;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nexport default isKeyable;\n","import isKeyable from './_isKeyable.js';\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nexport default getMapData;\n","import getMapData from './_getMapData.js';\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nexport default mapCacheDelete;\n","import getMapData from './_getMapData.js';\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nexport default mapCacheGet;\n","import getMapData from './_getMapData.js';\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nexport default mapCacheHas;\n","import getMapData from './_getMapData.js';\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nexport default mapCacheSet;\n","import mapCacheClear from './_mapCacheClear.js';\nimport mapCacheDelete from './_mapCacheDelete.js';\nimport mapCacheGet from './_mapCacheGet.js';\nimport mapCacheHas from './_mapCacheHas.js';\nimport mapCacheSet from './_mapCacheSet.js';\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nexport default MapCache;\n","import ListCache from './_ListCache.js';\nimport Map from './_Map.js';\nimport MapCache from './_MapCache.js';\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nexport default stackSet;\n","import ListCache from './_ListCache.js';\nimport stackClear from './_stackClear.js';\nimport stackDelete from './_stackDelete.js';\nimport stackGet from './_stackGet.js';\nimport stackHas from './_stackHas.js';\nimport stackSet from './_stackSet.js';\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nexport default Stack;\n","/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\nexport default arrayEach;\n","import getNative from './_getNative.js';\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nexport default defineProperty;\n","import defineProperty from './_defineProperty.js';\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nexport default baseAssignValue;\n","import baseAssignValue from './_baseAssignValue.js';\nimport eq from './eq.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nexport default assignValue;\n","import assignValue from './_assignValue.js';\nimport baseAssignValue from './_baseAssignValue.js';\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nexport default copyObject;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nexport default baseTimes;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nexport default baseIsArguments;\n","import baseIsArguments from './_baseIsArguments.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nexport default isArguments;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nexport default isArray;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nexport default isIndex;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nexport default isLength;\n","import baseGetTag from './_baseGetTag.js';\nimport isLength from './isLength.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nexport default baseIsTypedArray;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nexport default baseUnary;\n","import baseIsTypedArray from './_baseIsTypedArray.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nexport default isTypedArray;\n","import baseTimes from './_baseTimes.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isIndex from './_isIndex.js';\nimport isTypedArray from './isTypedArray.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default arrayLikeKeys;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nexport default isPrototype;\n","import overArg from './_overArg.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nexport default nativeKeys;\n","import isPrototype from './_isPrototype.js';\nimport nativeKeys from './_nativeKeys.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default baseKeys;\n","import isFunction from './isFunction.js';\nimport isLength from './isLength.js';\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nexport default isArrayLike;\n","import arrayLikeKeys from './_arrayLikeKeys.js';\nimport baseKeys from './_baseKeys.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nexport default keys;\n","import copyObject from './_copyObject.js';\nimport keys from './keys.js';\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n}\n\nexport default baseAssign;\n","/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default nativeKeysIn;\n","import isObject from './isObject.js';\nimport isPrototype from './_isPrototype.js';\nimport nativeKeysIn from './_nativeKeysIn.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default baseKeysIn;\n","import arrayLikeKeys from './_arrayLikeKeys.js';\nimport baseKeysIn from './_baseKeysIn.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\nexport default keysIn;\n","import copyObject from './_copyObject.js';\nimport keysIn from './keysIn.js';\n\n/**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssignIn(object, source) {\n return object && copyObject(source, keysIn(source), object);\n}\n\nexport default baseAssignIn;\n","/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\nexport default copyArray;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nexport default arrayFilter;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nexport default stubArray;\n","import arrayFilter from './_arrayFilter.js';\nimport stubArray from './stubArray.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nexport default getSymbols;\n","import copyObject from './_copyObject.js';\nimport getSymbols from './_getSymbols.js';\n\n/**\n * Copies own symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n}\n\nexport default copySymbols;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nexport default arrayPush;\n","import arrayPush from './_arrayPush.js';\nimport getPrototype from './_getPrototype.js';\nimport getSymbols from './_getSymbols.js';\nimport stubArray from './stubArray.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own and inherited enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n var result = [];\n while (object) {\n arrayPush(result, getSymbols(object));\n object = getPrototype(object);\n }\n return result;\n};\n\nexport default getSymbolsIn;\n","import copyObject from './_copyObject.js';\nimport getSymbolsIn from './_getSymbolsIn.js';\n\n/**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\n}\n\nexport default copySymbolsIn;\n","import arrayPush from './_arrayPush.js';\nimport isArray from './isArray.js';\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nexport default baseGetAllKeys;\n","import baseGetAllKeys from './_baseGetAllKeys.js';\nimport getSymbols from './_getSymbols.js';\nimport keys from './keys.js';\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nexport default getAllKeys;\n","import baseGetAllKeys from './_baseGetAllKeys.js';\nimport getSymbolsIn from './_getSymbolsIn.js';\nimport keysIn from './keysIn.js';\n\n/**\n * Creates an array of own and inherited enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n}\n\nexport default getAllKeysIn;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nexport default DataView;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nexport default Promise;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nexport default Set;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nexport default WeakMap;\n","import DataView from './_DataView.js';\nimport Map from './_Map.js';\nimport Promise from './_Promise.js';\nimport Set from './_Set.js';\nimport WeakMap from './_WeakMap.js';\nimport baseGetTag from './_baseGetTag.js';\nimport toSource from './_toSource.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nexport default getTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n var length = array.length,\n result = new array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n}\n\nexport default initCloneArray;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nexport default Uint8Array;\n","import Uint8Array from './_Uint8Array.js';\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\nexport default cloneArrayBuffer;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\nexport default cloneDataView;\n","/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\nexport default cloneRegExp;\n","import Symbol from './_Symbol.js';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\nexport default cloneSymbol;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\nexport default cloneTypedArray;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\nimport cloneDataView from './_cloneDataView.js';\nimport cloneRegExp from './_cloneRegExp.js';\nimport cloneSymbol from './_cloneSymbol.js';\nimport cloneTypedArray from './_cloneTypedArray.js';\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return new Ctor;\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return new Ctor;\n\n case symbolTag:\n return cloneSymbol(object);\n }\n}\n\nexport default initCloneByTag;\n","import isObject from './isObject.js';\n\n/** Built-in value references. */\nvar objectCreate = Object.create;\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\nexport default baseCreate;\n","import baseCreate from './_baseCreate.js';\nimport getPrototype from './_getPrototype.js';\nimport isPrototype from './_isPrototype.js';\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\nexport default initCloneObject;\n","import getTag from './_getTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]';\n\n/**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\nfunction baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n}\n\nexport default baseIsMap;\n","import baseIsMap from './_baseIsMap.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsMap = nodeUtil && nodeUtil.isMap;\n\n/**\n * Checks if `value` is classified as a `Map` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\nvar isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n\nexport default isMap;\n","import getTag from './_getTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar setTag = '[object Set]';\n\n/**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\nfunction baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n}\n\nexport default baseIsSet;\n","import baseIsSet from './_baseIsSet.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsSet = nodeUtil && nodeUtil.isSet;\n\n/**\n * Checks if `value` is classified as a `Set` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\nvar isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n\nexport default isSet;\n","import Stack from './_Stack.js';\nimport arrayEach from './_arrayEach.js';\nimport assignValue from './_assignValue.js';\nimport baseAssign from './_baseAssign.js';\nimport baseAssignIn from './_baseAssignIn.js';\nimport cloneBuffer from './_cloneBuffer.js';\nimport copyArray from './_copyArray.js';\nimport copySymbols from './_copySymbols.js';\nimport copySymbolsIn from './_copySymbolsIn.js';\nimport getAllKeys from './_getAllKeys.js';\nimport getAllKeysIn from './_getAllKeysIn.js';\nimport getTag from './_getTag.js';\nimport initCloneArray from './_initCloneArray.js';\nimport initCloneByTag from './_initCloneByTag.js';\nimport initCloneObject from './_initCloneObject.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isMap from './isMap.js';\nimport isObject from './isObject.js';\nimport isSet from './isSet.js';\nimport keys from './keys.js';\nimport keysIn from './keysIn.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n result = (isFlat || isFunc) ? {} : initCloneObject(value);\n if (!isDeep) {\n return isFlat\n ? copySymbolsIn(value, baseAssignIn(result, value))\n : copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (isSet(value)) {\n value.forEach(function(subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if (isMap(value)) {\n value.forEach(function(subValue, key) {\n result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n }\n\n var keysFunc = isFull\n ? (isFlat ? getAllKeysIn : getAllKeys)\n : (isFlat ? keysIn : keys);\n\n var props = isArr ? undefined : keysFunc(value);\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n return result;\n}\n\nexport default baseClone;\n","import baseClone from './_baseClone.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * Creates a shallow clone of `value`.\n *\n * **Note:** This method is loosely based on the\n * [structured clone algorithm](https://mdn.io/Structured_clone_algorithm)\n * and supports cloning arrays, array buffers, booleans, date objects, maps,\n * numbers, `Object` objects, regexes, sets, strings, symbols, and typed\n * arrays. The own enumerable properties of `arguments` objects are cloned\n * as plain objects. An empty object is returned for uncloneable values such\n * as error objects, functions, DOM nodes, and WeakMaps.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to clone.\n * @returns {*} Returns the cloned value.\n * @see _.cloneDeep\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var shallow = _.clone(objects);\n * console.log(shallow[0] === objects[0]);\n * // => true\n */\nfunction clone(value) {\n return baseClone(value, CLONE_SYMBOLS_FLAG);\n}\n\nexport default clone;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nexport default arrayMap;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nexport default isSymbol;\n","import MapCache from './_MapCache.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nexport default memoize;\n","import memoize from './memoize.js';\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nexport default memoizeCapped;\n","import memoizeCapped from './_memoizeCapped.js';\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nexport default stringToPath;\n","import isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nexport default toKey;\n","import Symbol from './_Symbol.js';\nimport arrayMap from './_arrayMap.js';\nimport isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nexport default baseToString;\n","import baseToString from './_baseToString.js';\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nexport default toString;\n","import arrayMap from './_arrayMap.js';\nimport copyArray from './_copyArray.js';\nimport isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\nimport stringToPath from './_stringToPath.js';\nimport toKey from './_toKey.js';\nimport toString from './toString.js';\n\n/**\n * Converts `value` to a property path array.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Util\n * @param {*} value The value to convert.\n * @returns {Array} Returns the new property path array.\n * @example\n *\n * _.toPath('a.b.c');\n * // => ['a', 'b', 'c']\n *\n * _.toPath('a[0].b.c');\n * // => ['a', '0', 'b', 'c']\n */\nfunction toPath(value) {\n if (isArray(value)) {\n return arrayMap(value, toKey);\n }\n return isSymbol(value) ? [value] : copyArray(stringToPath(toString(value)));\n}\n\nexport default toPath;\n","import baseClone from './_baseClone.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\nfunction cloneDeep(value) {\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);\n}\n\nexport default cloneDeep;\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 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 * as React from 'react';\nimport { FormikContextType } from './types';\nimport invariant from 'tiny-warning';\n\nexport const FormikContext = React.createContext>(\n undefined as any\n);\nFormikContext.displayName = 'FormikContext';\n\nexport const FormikProvider = FormikContext.Provider;\nexport const FormikConsumer = FormikContext.Consumer;\n\nexport function useFormikContext() {\n const formik = React.useContext>(FormikContext);\n\n invariant(\n !!formik,\n `Formik context is undefined, please verify you are calling useFormikContext() as child of a component.`\n );\n\n return formik;\n}\n","import * as React from 'react';\nimport isEqual from 'react-fast-compare';\nimport deepmerge from 'deepmerge';\nimport isPlainObject from 'lodash/isPlainObject';\nimport {\n FormikConfig,\n FormikErrors,\n FormikState,\n FormikTouched,\n FormikValues,\n FormikProps,\n FieldMetaProps,\n FieldHelperProps,\n FieldInputProps,\n FormikHelpers,\n FormikHandlers,\n} from './types';\nimport {\n isFunction,\n isString,\n setIn,\n isEmptyChildren,\n isPromise,\n setNestedObjectValues,\n getActiveElement,\n getIn,\n isObject,\n} from './utils';\nimport { FormikProvider } from './FormikContext';\nimport invariant from 'tiny-warning';\n\ntype FormikMessage =\n | { type: 'SUBMIT_ATTEMPT' }\n | { type: 'SUBMIT_FAILURE' }\n | { type: 'SUBMIT_SUCCESS' }\n | { type: 'SET_ISVALIDATING'; payload: boolean }\n | { type: 'SET_ISSUBMITTING'; payload: boolean }\n | { type: 'SET_VALUES'; payload: Values }\n | { type: 'SET_FIELD_VALUE'; payload: { field: string; value?: any } }\n | { type: 'SET_FIELD_TOUCHED'; payload: { field: string; value?: boolean } }\n | { type: 'SET_FIELD_ERROR'; payload: { field: string; value?: string } }\n | { type: 'SET_TOUCHED'; payload: FormikTouched }\n | { type: 'SET_ERRORS'; payload: FormikErrors }\n | { type: 'SET_STATUS'; payload: any }\n | {\n type: 'SET_FORMIK_STATE';\n payload: (s: FormikState) => FormikState;\n }\n | {\n type: 'RESET_FORM';\n payload: FormikState;\n };\n\n// State reducer\nfunction formikReducer(\n state: FormikState,\n msg: FormikMessage\n) {\n switch (msg.type) {\n case 'SET_VALUES':\n return { ...state, values: msg.payload };\n case 'SET_TOUCHED':\n return { ...state, touched: msg.payload };\n case 'SET_ERRORS':\n if (isEqual(state.errors, msg.payload)) {\n return state;\n }\n\n return { ...state, errors: msg.payload };\n case 'SET_STATUS':\n return { ...state, status: msg.payload };\n case 'SET_ISSUBMITTING':\n return { ...state, isSubmitting: msg.payload };\n case 'SET_ISVALIDATING':\n return { ...state, isValidating: msg.payload };\n case 'SET_FIELD_VALUE':\n return {\n ...state,\n values: setIn(state.values, msg.payload.field, msg.payload.value),\n };\n case 'SET_FIELD_TOUCHED':\n return {\n ...state,\n touched: setIn(state.touched, msg.payload.field, msg.payload.value),\n };\n case 'SET_FIELD_ERROR':\n return {\n ...state,\n errors: setIn(state.errors, msg.payload.field, msg.payload.value),\n };\n case 'RESET_FORM':\n return { ...state, ...msg.payload };\n case 'SET_FORMIK_STATE':\n return msg.payload(state);\n case 'SUBMIT_ATTEMPT':\n return {\n ...state,\n touched: setNestedObjectValues>(\n state.values,\n true\n ),\n isSubmitting: true,\n submitCount: state.submitCount + 1,\n };\n case 'SUBMIT_FAILURE':\n return {\n ...state,\n isSubmitting: false,\n };\n case 'SUBMIT_SUCCESS':\n return {\n ...state,\n isSubmitting: false,\n };\n default:\n return state;\n }\n}\n\n// Initial empty states // objects\nconst emptyErrors: FormikErrors = {};\nconst emptyTouched: FormikTouched = {};\n\n// This is an object that contains a map of all registered fields\n// and their validate functions\ninterface FieldRegistry {\n [field: string]: {\n validate: (value: any) => string | Promise | undefined;\n };\n}\n\nexport function useFormik({\n validateOnChange = true,\n validateOnBlur = true,\n validateOnMount = false,\n isInitialValid,\n enableReinitialize = false,\n onSubmit,\n ...rest\n}: FormikConfig) {\n const props = {\n validateOnChange,\n validateOnBlur,\n validateOnMount,\n onSubmit,\n ...rest,\n };\n const initialValues = React.useRef(props.initialValues);\n const initialErrors = React.useRef(props.initialErrors || emptyErrors);\n const initialTouched = React.useRef(props.initialTouched || emptyTouched);\n const initialStatus = React.useRef(props.initialStatus);\n const isMounted = React.useRef(false);\n const fieldRegistry = React.useRef({});\n if (__DEV__) {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useEffect(() => {\n invariant(\n typeof isInitialValid === 'undefined',\n 'isInitialValid has been deprecated and will be removed in future versions of Formik. Please use initialErrors or validateOnMount instead.'\n );\n // eslint-disable-next-line\n }, []);\n }\n\n React.useEffect(() => {\n isMounted.current = true;\n\n return () => {\n isMounted.current = false;\n };\n }, []);\n\n const [state, dispatch] = React.useReducer<\n React.Reducer, FormikMessage>\n >(formikReducer, {\n values: props.initialValues,\n errors: props.initialErrors || emptyErrors,\n touched: props.initialTouched || emptyTouched,\n status: props.initialStatus,\n isSubmitting: false,\n isValidating: false,\n submitCount: 0,\n });\n\n const runValidateHandler = React.useCallback(\n (values: Values, field?: string): Promise> => {\n return new Promise((resolve, reject) => {\n const maybePromisedErrors = (props.validate as any)(values, field);\n if (maybePromisedErrors == null) {\n // use loose null check here on purpose\n resolve(emptyErrors);\n } else if (isPromise(maybePromisedErrors)) {\n (maybePromisedErrors as Promise).then(\n errors => {\n resolve(errors || emptyErrors);\n },\n actualException => {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\n `Warning: An unhandled error was caught during validation in `,\n actualException\n );\n }\n\n reject(actualException);\n }\n );\n } else {\n resolve(maybePromisedErrors);\n }\n });\n },\n [props.validate]\n );\n\n /**\n * Run validation against a Yup schema and optionally run a function if successful\n */\n const runValidationSchema = React.useCallback(\n (values: Values, field?: string): Promise> => {\n const validationSchema = props.validationSchema;\n const schema = isFunction(validationSchema)\n ? validationSchema(field)\n : validationSchema;\n const promise =\n field && schema.validateAt\n ? schema.validateAt(field, values)\n : validateYupSchema(values, schema);\n return new Promise((resolve, reject) => {\n promise.then(\n () => {\n resolve(emptyErrors);\n },\n (err: any) => {\n // Yup will throw a validation error if validation fails. We catch those and\n // resolve them into Formik errors. We can sniff if something is a Yup error\n // by checking error.name.\n // @see https://github.com/jquense/yup#validationerrorerrors-string--arraystring-value-any-path-string\n if (err.name === 'ValidationError') {\n resolve(yupToFormErrors(err));\n } else {\n // We throw any other errors\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\n `Warning: An unhandled error was caught during validation in `,\n err\n );\n }\n\n reject(err);\n }\n }\n );\n });\n },\n [props.validationSchema]\n );\n\n const runSingleFieldLevelValidation = React.useCallback(\n (field: string, value: void | string): Promise => {\n return new Promise(resolve =>\n resolve(fieldRegistry.current[field].validate(value) as string)\n );\n },\n []\n );\n\n const runFieldLevelValidations = React.useCallback(\n (values: Values): Promise> => {\n const fieldKeysWithValidation: string[] = Object.keys(\n fieldRegistry.current\n ).filter(f => isFunction(fieldRegistry.current[f].validate));\n\n // Construct an array with all of the field validation functions\n const fieldValidations: Promise[] =\n fieldKeysWithValidation.length > 0\n ? fieldKeysWithValidation.map(f =>\n runSingleFieldLevelValidation(f, getIn(values, f))\n )\n : [Promise.resolve('DO_NOT_DELETE_YOU_WILL_BE_FIRED')]; // use special case ;)\n\n return Promise.all(fieldValidations).then((fieldErrorsList: string[]) =>\n fieldErrorsList.reduce((prev, curr, index) => {\n if (curr === 'DO_NOT_DELETE_YOU_WILL_BE_FIRED') {\n return prev;\n }\n if (curr) {\n prev = setIn(prev, fieldKeysWithValidation[index], curr);\n }\n return prev;\n }, {})\n );\n },\n [runSingleFieldLevelValidation]\n );\n\n // Run all validations and return the result\n const runAllValidations = React.useCallback(\n (values: Values) => {\n return Promise.all([\n runFieldLevelValidations(values),\n props.validationSchema ? runValidationSchema(values) : {},\n props.validate ? runValidateHandler(values) : {},\n ]).then(([fieldErrors, schemaErrors, validateErrors]) => {\n const combinedErrors = deepmerge.all>(\n [fieldErrors, schemaErrors, validateErrors],\n { arrayMerge }\n );\n return combinedErrors;\n });\n },\n [\n props.validate,\n props.validationSchema,\n runFieldLevelValidations,\n runValidateHandler,\n runValidationSchema,\n ]\n );\n\n // Run all validations methods and update state accordingly\n const validateFormWithHighPriority = useEventCallback(\n (values: Values = state.values) => {\n dispatch({ type: 'SET_ISVALIDATING', payload: true });\n return runAllValidations(values).then(combinedErrors => {\n if (!!isMounted.current) {\n dispatch({ type: 'SET_ISVALIDATING', payload: false });\n dispatch({ type: 'SET_ERRORS', payload: combinedErrors });\n }\n return combinedErrors;\n });\n }\n );\n\n React.useEffect(() => {\n if (\n validateOnMount &&\n isMounted.current === true &&\n isEqual(initialValues.current, props.initialValues)\n ) {\n validateFormWithHighPriority(initialValues.current);\n }\n }, [validateOnMount, validateFormWithHighPriority]);\n\n const resetForm = React.useCallback(\n (nextState?: Partial>) => {\n const values =\n nextState && nextState.values\n ? nextState.values\n : initialValues.current;\n const errors =\n nextState && nextState.errors\n ? nextState.errors\n : initialErrors.current\n ? initialErrors.current\n : props.initialErrors || {};\n const touched =\n nextState && nextState.touched\n ? nextState.touched\n : initialTouched.current\n ? initialTouched.current\n : props.initialTouched || {};\n const status =\n nextState && nextState.status\n ? nextState.status\n : initialStatus.current\n ? initialStatus.current\n : props.initialStatus;\n initialValues.current = values;\n initialErrors.current = errors;\n initialTouched.current = touched;\n initialStatus.current = status;\n\n const dispatchFn = () => {\n dispatch({\n type: 'RESET_FORM',\n payload: {\n isSubmitting: !!nextState && !!nextState.isSubmitting,\n errors,\n touched,\n status,\n values,\n isValidating: !!nextState && !!nextState.isValidating,\n submitCount:\n !!nextState &&\n !!nextState.submitCount &&\n typeof nextState.submitCount === 'number'\n ? nextState.submitCount\n : 0,\n },\n });\n };\n\n if (props.onReset) {\n const maybePromisedOnReset = (props.onReset as any)(\n state.values,\n imperativeMethods\n );\n\n if (isPromise(maybePromisedOnReset)) {\n (maybePromisedOnReset as Promise).then(dispatchFn);\n } else {\n dispatchFn();\n }\n } else {\n dispatchFn();\n }\n },\n [props.initialErrors, props.initialStatus, props.initialTouched]\n );\n\n React.useEffect(() => {\n if (\n isMounted.current === true &&\n !isEqual(initialValues.current, props.initialValues)\n ) {\n if (enableReinitialize) {\n initialValues.current = props.initialValues;\n resetForm();\n }\n\n if (validateOnMount) {\n validateFormWithHighPriority(initialValues.current);\n }\n }\n }, [\n enableReinitialize,\n props.initialValues,\n resetForm,\n validateOnMount,\n validateFormWithHighPriority,\n ]);\n\n React.useEffect(() => {\n if (\n enableReinitialize &&\n isMounted.current === true &&\n !isEqual(initialErrors.current, props.initialErrors)\n ) {\n initialErrors.current = props.initialErrors || emptyErrors;\n dispatch({\n type: 'SET_ERRORS',\n payload: props.initialErrors || emptyErrors,\n });\n }\n }, [enableReinitialize, props.initialErrors]);\n\n React.useEffect(() => {\n if (\n enableReinitialize &&\n isMounted.current === true &&\n !isEqual(initialTouched.current, props.initialTouched)\n ) {\n initialTouched.current = props.initialTouched || emptyTouched;\n dispatch({\n type: 'SET_TOUCHED',\n payload: props.initialTouched || emptyTouched,\n });\n }\n }, [enableReinitialize, props.initialTouched]);\n\n React.useEffect(() => {\n if (\n enableReinitialize &&\n isMounted.current === true &&\n !isEqual(initialStatus.current, props.initialStatus)\n ) {\n initialStatus.current = props.initialStatus;\n dispatch({\n type: 'SET_STATUS',\n payload: props.initialStatus,\n });\n }\n }, [enableReinitialize, props.initialStatus, props.initialTouched]);\n\n const validateField = useEventCallback((name: string) => {\n // This will efficiently validate a single field by avoiding state\n // changes if the validation function is synchronous. It's different from\n // what is called when using validateForm.\n\n if (\n fieldRegistry.current[name] &&\n isFunction(fieldRegistry.current[name].validate)\n ) {\n const value = getIn(state.values, name);\n const maybePromise = fieldRegistry.current[name].validate(value);\n if (isPromise(maybePromise)) {\n // Only flip isValidating if the function is async.\n dispatch({ type: 'SET_ISVALIDATING', payload: true });\n return maybePromise\n .then((x: any) => x)\n .then((error: string) => {\n dispatch({\n type: 'SET_FIELD_ERROR',\n payload: { field: name, value: error },\n });\n dispatch({ type: 'SET_ISVALIDATING', payload: false });\n });\n } else {\n dispatch({\n type: 'SET_FIELD_ERROR',\n payload: {\n field: name,\n value: maybePromise as string | undefined,\n },\n });\n return Promise.resolve(maybePromise as string | undefined);\n }\n } else if (props.validationSchema) {\n dispatch({ type: 'SET_ISVALIDATING', payload: true });\n return runValidationSchema(state.values, name)\n .then((x: any) => x)\n .then((error: any) => {\n dispatch({\n type: 'SET_FIELD_ERROR',\n payload: { field: name, value: error[name] },\n });\n dispatch({ type: 'SET_ISVALIDATING', payload: false });\n });\n }\n\n return Promise.resolve();\n });\n\n const registerField = React.useCallback((name: string, { validate }: any) => {\n fieldRegistry.current[name] = {\n validate,\n };\n }, []);\n\n const unregisterField = React.useCallback((name: string) => {\n delete fieldRegistry.current[name];\n }, []);\n\n const setTouched = useEventCallback(\n (touched: FormikTouched, shouldValidate?: boolean) => {\n dispatch({ type: 'SET_TOUCHED', payload: touched });\n const willValidate =\n shouldValidate === undefined ? validateOnBlur : shouldValidate;\n return willValidate\n ? validateFormWithHighPriority(state.values)\n : Promise.resolve();\n }\n );\n\n const setErrors = React.useCallback((errors: FormikErrors) => {\n dispatch({ type: 'SET_ERRORS', payload: errors });\n }, []);\n\n const setValues = useEventCallback(\n (values: React.SetStateAction, shouldValidate?: boolean) => {\n const resolvedValues = isFunction(values) ? values(state.values) : values;\n\n dispatch({ type: 'SET_VALUES', payload: resolvedValues });\n const willValidate =\n shouldValidate === undefined ? validateOnChange : shouldValidate;\n return willValidate\n ? validateFormWithHighPriority(resolvedValues)\n : Promise.resolve();\n }\n );\n\n const setFieldError = React.useCallback(\n (field: string, value: string | undefined) => {\n dispatch({\n type: 'SET_FIELD_ERROR',\n payload: { field, value },\n });\n },\n []\n );\n\n const setFieldValue = useEventCallback(\n (field: string, value: any, shouldValidate?: boolean) => {\n dispatch({\n type: 'SET_FIELD_VALUE',\n payload: {\n field,\n value,\n },\n });\n const willValidate =\n shouldValidate === undefined ? validateOnChange : shouldValidate;\n return willValidate\n ? validateFormWithHighPriority(setIn(state.values, field, value))\n : Promise.resolve();\n }\n );\n\n const executeChange = React.useCallback(\n (eventOrTextValue: string | React.ChangeEvent, maybePath?: string) => {\n // By default, assume that the first argument is a string. This allows us to use\n // handleChange with React Native and React Native Web's onChangeText prop which\n // provides just the value of the input.\n let field = maybePath;\n let val = eventOrTextValue;\n let parsed;\n // If the first argument is not a string though, it has to be a synthetic React Event (or a fake one),\n // so we handle like we would a normal HTML change event.\n if (!isString(eventOrTextValue)) {\n // If we can, persist the event\n // @see https://reactjs.org/docs/events.html#event-pooling\n if ((eventOrTextValue as any).persist) {\n (eventOrTextValue as React.ChangeEvent).persist();\n }\n const target = eventOrTextValue.target\n ? (eventOrTextValue as React.ChangeEvent).target\n : (eventOrTextValue as React.ChangeEvent).currentTarget;\n\n const {\n type,\n name,\n id,\n value,\n checked,\n outerHTML,\n options,\n multiple,\n } = target;\n\n field = maybePath ? maybePath : name ? name : id;\n if (!field && __DEV__) {\n warnAboutMissingIdentifier({\n htmlContent: outerHTML,\n documentationAnchorLink: 'handlechange-e-reactchangeeventany--void',\n handlerName: 'handleChange',\n });\n }\n val = /number|range/.test(type)\n ? ((parsed = parseFloat(value)), isNaN(parsed) ? '' : parsed)\n : /checkbox/.test(type) // checkboxes\n ? getValueForCheckbox(getIn(state.values, field!), checked, value)\n : options && multiple //